From 8c6022b78ae1e376ce0db95e1d49738e8b1ee2dd Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 16 Mar 2022 22:37:34 +0100 Subject: [PATCH 001/736] QL: add query detecting inconsistent deprecations --- .../queries/bugs/InconsistentDeprecation.ql | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 ql/ql/src/queries/bugs/InconsistentDeprecation.ql diff --git a/ql/ql/src/queries/bugs/InconsistentDeprecation.ql b/ql/ql/src/queries/bugs/InconsistentDeprecation.ql new file mode 100644 index 00000000000..366d2daa4f5 --- /dev/null +++ b/ql/ql/src/queries/bugs/InconsistentDeprecation.ql @@ -0,0 +1,24 @@ +/** + * @name Inconsistent deprecation + * @description A deprecated predicate that overrides a non-deprecated predicate is an indication that the super-predicate should be deprecated. + * @kind problem + * @problem.severity warning + * @id ql/inconsistent-deprecation + * @tags correctness + * maintanability + * @precision very-high + */ + +import ql + +predicate overrides(ClassPredicate sub, ClassPredicate sup, string description, string overrides) { + sub.overrides(sup) and description = "predicate" and overrides = "predicate" +} + +from AstNode sub, AstNode sup, string description, string overrides +where + overrides(sub, sup, description, overrides) and + sub.hasAnnotation("deprecated") and + not sup.hasAnnotation("deprecated") +select sub, "This deprecated " + description + " overrides $@. Consider deprecating both.", sup, + "a non-deprecated " + overrides From af112a011a031a4d7be4cb3a30e5f62730e2409f Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sat, 18 Dec 2021 14:35:38 +0100 Subject: [PATCH 002/736] QL: Add query detecting suspiciously missing parameters from the QLDoc of a predicate --- .../queries/style/MissingParameterInQlDoc.ql | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 ql/ql/src/queries/style/MissingParameterInQlDoc.ql diff --git a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql new file mode 100644 index 00000000000..1fe962154f8 --- /dev/null +++ b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql @@ -0,0 +1,83 @@ +/** + * @name Missing QLDoc for parameter + * @description It is suspicious when a predicate has a parameter that is + * unmentioned in the qldoc, and the qldoc contains a + * code-fragment mentioning a non-parameter. + * @kind problem + * @problem.severity warning + * @precision high + * @id ql/missing-parameter-qldoc + * @tags maintainability + */ + +import ql + +/** + * Gets a fragment enclosed in backticks (`) from a QLDoc of the predicate `p`. + * Skips code-blocks that are triple-quoted. + */ +private string getACodeFragment(Predicate p) { + result = p.getQLDoc().getContents().regexpFind("`([^`]*)`(?!`)", _, _) +} + +/** Gets a parameter name from `p`. */ +private string getAParameterName(Predicate p) { result = p.getParameter(_).getName() } + +/** + * Gets the name of a parameter of `p` that is mentioned in any way in the QLDoc of `p`. + * Also includes names that are mentioned in non-code fragments. + */ +private string getADocumentedParameter(Predicate p) { + result = p.getQLDoc().getContents().regexpFind("\\b\\w[\\w_]*\\b", _, _) and + result.toLowerCase() = getAParameterName(p).toLowerCase() +} + +/** + * Get something that looks like a parameter name from the QLDoc, + * but which is not a parameter of `p`. + */ +private string getAMentionedNonParameter(Predicate p) { + exists(string fragment | fragment = getACodeFragment(p) | + result = fragment.substring(1, fragment.length() - 1) + ) and + result.regexpMatch("^[a-z]\\w+$") and + not result.toLowerCase() = getAParameterName(p).toLowerCase() and + not result = ["true", "false", "NaN"] and // keywords + not result.regexpMatch("\\d+") and // numbers + // predicates get mentioned all the time, it's fine. + not result = + any(Predicate pred | pred.getLocation().getFile() = p.getLocation().getFile()).getName() and + // classes get mentioned all the time, it's fine. + not result = + any(TypeExpr t | t.getLocation().getFile() = p.getLocation().getFile()) + .getResolvedType() + .getName() +} + +/** Gets a parameter name from `p` that is not mentioned in the qldoc. */ +private string getAnUndocumentedParameter(Predicate p) { + result = getAParameterName(p) and + not result.toLowerCase() = getADocumentedParameter(p).toLowerCase() and + not result = ["config", "conf", "cfg"] // DataFlow configurations are often undocumented, and that's fine. +} + +/** Holds if `p` has documented parameters, but `param` is undocumented */ +private predicate missingDocumentation(Predicate p, string param) { + param = getAnUndocumentedParameter(p) and + exists(getADocumentedParameter(p)) +} + +/** Gets the one string containing the undocumented parameters from `p` */ +private string getUndocumentedParameters(Predicate p) { + result = strictconcat(string param | missingDocumentation(p, param) | param, ", or ") +} + +/** Gets the parameter-like names mentioned in the QLDoc of `p` that are not parameters. */ +private string getMentionedNonParameters(Predicate p) { + result = strictconcat(string param | param = getAMentionedNonParameter(p) | param, ", and ") +} + +from Predicate p +select p, + "The QLDoc has no documentation for " + getUndocumentedParameters(p) + ", but the QLDoc mentions " + + getMentionedNonParameters(p) From ecd3aceb078c15135e516b9856fde261251fae85 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 20 Dec 2021 09:43:22 +0100 Subject: [PATCH 003/736] QL: add test for ql/missing-parameter-qldoc --- .../queries/style/MissingParameterInQlDoc/Foo.qll | 14 ++++++++++++++ .../MissingParameterInQlDoc.expected | 2 ++ .../MissingParameterInQlDoc.qlref | 1 + 3 files changed, 17 insertions(+) create mode 100644 ql/ql/test/queries/style/MissingParameterInQlDoc/Foo.qll create mode 100644 ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.expected create mode 100644 ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.qlref diff --git a/ql/ql/test/queries/style/MissingParameterInQlDoc/Foo.qll b/ql/ql/test/queries/style/MissingParameterInQlDoc/Foo.qll new file mode 100644 index 00000000000..13509dbe521 --- /dev/null +++ b/ql/ql/test/queries/style/MissingParameterInQlDoc/Foo.qll @@ -0,0 +1,14 @@ +/** `param1`, `param2`, and `param3` are the parameters. */ +predicate test1(int param1, int param2, int param3) { none() } // OK + +/** `param1`, `par2` */ +predicate test2(int param1, int param2) { none() } // NOT OK - `par2` is not a parameter, and `param2` has no documentation + +/** `param1`, `par2 + par3` */ +predicate test3(int param1, int par2, int par3) { none() } // OK + +/** this mentions no parameters */ +predicate test4(int param1, int param2) { none() } // OK - the QLDoc mentions none of the parameters, that's OK + +/** the param1 parameter is mentioned in a non-code block, but the `par2` parameter is misspelled */ +predicate test5(int param1, int param2) { none() } // NOT OK - the `param1` parameter is "documented" in clear text, but `par2` is misspelled diff --git a/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.expected b/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.expected new file mode 100644 index 00000000000..cca5b457ec4 --- /dev/null +++ b/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.expected @@ -0,0 +1,2 @@ +| Foo.qll:5:1:5:50 | ClasslessPredicate test2 | The QLDoc has no documentation for param2, but the QLDoc mentions par2 | +| Foo.qll:14:1:14:50 | ClasslessPredicate test5 | The QLDoc has no documentation for param2, but the QLDoc mentions par2 | diff --git a/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.qlref b/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.qlref new file mode 100644 index 00000000000..0539e4f5de2 --- /dev/null +++ b/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.qlref @@ -0,0 +1 @@ +queries/style/MissingParameterInQlDoc.ql \ No newline at end of file From efba220b45f42f6643fdc55b4714cbb269535ee2 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sun, 19 Dec 2021 23:01:53 +0100 Subject: [PATCH 004/736] JS: fix most `ql/missing-parameter-qldoc` issues --- .../ql/lib/semmle/javascript/BasicBlocks.qll | 2 +- .../semmle/javascript/CharacterEscapes.qll | 2 +- .../lib/semmle/javascript/ES2015Modules.qll | 2 +- javascript/ql/lib/semmle/javascript/Paths.qll | 4 ++-- .../lib/semmle/javascript/RangeAnalysis.qll | 22 +++++++++---------- javascript/ql/lib/semmle/javascript/SSA.qll | 2 +- .../javascript/dataflow/Configuration.qll | 12 +++++----- .../semmle/javascript/dataflow/DataFlow.qll | 2 +- .../semmle/javascript/dataflow/Portals.qll | 2 +- .../javascript/dataflow/TaintTracking.qll | 2 +- .../AngularJS/AngularJSExpressions.qll | 6 ++--- .../AngularJS/ServiceDefinitions.qll | 4 ++-- .../semmle/javascript/frameworks/Fastify.qll | 2 +- .../javascript/frameworks/NodeJSLib.qll | 8 +++---- .../security/performance/ReDoSUtil.qll | 2 +- .../src/Declarations/DeadStoreOfProperty.ql | 4 ++-- .../TemplateSyntaxInStringLiteral.ql | 4 ++-- javascript/ql/src/Metrics/ES20xxFeatures.qll | 2 +- javascript/ql/src/NodeJS/InvalidExport.ql | 8 +++---- .../Security/CWE-020/HostnameRegexpShared.qll | 2 +- .../CWE-020/IncompleteUrlSchemeCheck.ql | 4 ++-- .../Security/CWE-020/IncorrectSuffixCheck.ql | 2 +- javascript/ql/src/definitions.qll | 2 +- javascript/ql/src/external/DefectFilter.qll | 4 ++-- javascript/ql/src/external/MetricFilter.qll | 4 ++-- 25 files changed, 55 insertions(+), 55 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/BasicBlocks.qll b/javascript/ql/lib/semmle/javascript/BasicBlocks.qll index 2b02b6b6486..6e6579d6f7e 100644 --- a/javascript/ql/lib/semmle/javascript/BasicBlocks.qll +++ b/javascript/ql/lib/semmle/javascript/BasicBlocks.qll @@ -146,7 +146,7 @@ class BasicBlock extends @cfg_node, NodeInStmtContainer { /** Holds if this basic block uses variable `v` in its `i`th node `u`. */ predicate useAt(int i, Variable v, VarUse u) { useAt(this, i, v, u) } - /** Holds if this basic block defines variable `v` in its `i`th node `u`. */ + /** Holds if this basic block defines variable `v` in its `i`th node `d`. */ predicate defAt(int i, Variable v, VarDef d) { defAt(this, i, v, d) } /** diff --git a/javascript/ql/lib/semmle/javascript/CharacterEscapes.qll b/javascript/ql/lib/semmle/javascript/CharacterEscapes.qll index 1a19112cee3..5c8dd2bdd06 100644 --- a/javascript/ql/lib/semmle/javascript/CharacterEscapes.qll +++ b/javascript/ql/lib/semmle/javascript/CharacterEscapes.qll @@ -75,7 +75,7 @@ module CharacterEscapes { } /** - * Gets a character in `n` that is preceded by a single useless backslash, resulting in a likely regular expression mistake explained by `mistake`. + * Gets a character in `src` that is preceded by a single useless backslash, resulting in a likely regular expression mistake explained by `mistake`. * * The character is the `i`th character of the raw string value of `rawStringNode`. */ diff --git a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll index 7ee6311393b..e584167a73b 100644 --- a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll +++ b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll @@ -337,7 +337,7 @@ class BulkReExportDeclaration extends ReExportDeclaration, @export_all_declarati } /** - * Holds if the given bulk export should not re-export `name` because there is an explicit export + * Holds if the given bulk export `reExport` should not re-export `name` because there is an explicit export * of that name in the same module. * * At compile time, shadowing works across declaration spaces. diff --git a/javascript/ql/lib/semmle/javascript/Paths.qll b/javascript/ql/lib/semmle/javascript/Paths.qll index e22d5ad6132..7574fe1e301 100644 --- a/javascript/ql/lib/semmle/javascript/Paths.qll +++ b/javascript/ql/lib/semmle/javascript/Paths.qll @@ -180,7 +180,7 @@ private Path resolveUpTo(PathString p, int n, Folder root, boolean inTS) { } /** - * Gets the `i`th component of the path `str`, where `base` is the resolved path one level up. + * Gets the `n`th component of the path `str`, where `base` is the resolved path one level up. * Supports that the root directory might be compiled output from TypeScript. * `inTS` is true if the result is TypeScript that is compiled into the path specified by `str`. */ @@ -227,7 +227,7 @@ private module TypeScriptOutDir { } /** - * Gets the `outDir` option from a tsconfig file from the folder `parent`. + * Gets the "outDir" option from a `tsconfig` file from the folder `parent`. */ private string getOutDir(JsonObject tsconfig, Folder parent) { tsconfig.getFile().getBaseName().regexpMatch("tsconfig.*\\.json") and diff --git a/javascript/ql/lib/semmle/javascript/RangeAnalysis.qll b/javascript/ql/lib/semmle/javascript/RangeAnalysis.qll index 5c15ea3d3aa..9d8b3967b1c 100644 --- a/javascript/ql/lib/semmle/javascript/RangeAnalysis.qll +++ b/javascript/ql/lib/semmle/javascript/RangeAnalysis.qll @@ -260,7 +260,7 @@ module RangeAnalysis { } /** - * Holds if the given comparison can be modeled as `A B + bias` where `` is the comparison operator, + * Holds if the given `comparison` can be modeled as `A B + bias` where `` is the comparison operator, * and `A` is `a * asign` and likewise `B` is `b * bsign`. */ predicate linearComparison( @@ -310,18 +310,18 @@ module RangeAnalysis { * Holds if `guard` asserts that the outcome of `A B + bias` is true, where `` is a comparison operator. */ predicate linearComparisonGuard( - ConditionGuardNode guard, DataFlow::Node a, int asign, string operator, DataFlow::Node b, - int bsign, Bias bias + ConditionGuardNode guard, DataFlow::Node a, int asign, string op, DataFlow::Node b, int bsign, + Bias bias ) { exists(Comparison compare | compare = guard.getTest().flow().getImmediatePredecessor*().asExpr() and linearComparison(compare, a, asign, b, bsign, bias) and ( - guard.getOutcome() = true and operator = compare.getOperator() + guard.getOutcome() = true and op = compare.getOperator() or not hasNaNIndicator(guard.getContainer()) and guard.getOutcome() = false and - operator = negateOperator(compare.getOperator()) + op = negateOperator(compare.getOperator()) ) ) } @@ -657,13 +657,13 @@ module RangeAnalysis { */ pragma[noopt] private predicate reachableByNegativeEdges( - DataFlow::Node a, int asign, DataFlow::Node b, int bsign, ControlFlowNode cfg + DataFlow::Node src, int asign, DataFlow::Node dst, int bsign, ControlFlowNode cfg ) { - negativeEdge(a, asign, b, bsign, cfg) + negativeEdge(src, asign, dst, bsign, cfg) or exists(DataFlow::Node mid, int midx, ControlFlowNode midcfg | - reachableByNegativeEdges(a, asign, mid, midx, cfg) and - negativeEdge(mid, midx, b, bsign, midcfg) and + reachableByNegativeEdges(src, asign, mid, midx, cfg) and + negativeEdge(mid, midx, dst, bsign, midcfg) and exists(BasicBlock bb, int i, int j | bb.getNode(i) = midcfg and bb.getNode(j) = cfg and @@ -676,8 +676,8 @@ module RangeAnalysis { DataFlow::Node mid, int midx, ControlFlowNode midcfg, BasicBlock midBB, ReachableBasicBlock midRBB, BasicBlock cfgBB | - reachableByNegativeEdges(a, asign, mid, midx, cfg) and - negativeEdge(mid, midx, b, bsign, midcfg) and + reachableByNegativeEdges(src, asign, mid, midx, cfg) and + negativeEdge(mid, midx, dst, bsign, midcfg) and midBB = midcfg.getBasicBlock() and midRBB = midBB.(ReachableBasicBlock) and cfgBB = cfg.getBasicBlock() and diff --git a/javascript/ql/lib/semmle/javascript/SSA.qll b/javascript/ql/lib/semmle/javascript/SSA.qll index 41831a282ac..8e60fb0c3e4 100644 --- a/javascript/ql/lib/semmle/javascript/SSA.qll +++ b/javascript/ql/lib/semmle/javascript/SSA.qll @@ -501,7 +501,7 @@ class SsaExplicitDefinition extends SsaDefinition, TExplicitDef { } /** This SSA definition corresponds to the definition of `v` at `def`. */ - predicate defines(VarDef d, SsaSourceVariable v) { this = TExplicitDef(_, _, d, v) } + predicate defines(VarDef def, SsaSourceVariable v) { this = TExplicitDef(_, _, def, v) } /** Gets the variable definition wrapped by this SSA definition. */ VarDef getDef() { this = TExplicitDef(_, _, result, _) } diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll b/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll index 5a9b3de4a9b..48ebd583c83 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll @@ -353,7 +353,7 @@ abstract class BarrierGuardNode extends DataFlow::Node { } /** - * Holds if data flow node `nd` acts as a barrier for data flow. + * Holds if data flow node `guard` acts as a barrier for data flow. * * `label` is bound to the blocked label, or the empty string if all labels should be blocked. */ @@ -382,7 +382,7 @@ private predicate barrierGuardIsRelevant(BarrierGuardNode guard) { } /** - * Holds if data flow node `nd` acts as a barrier for data flow due to aliasing through + * Holds if data flow node `guard` acts as a barrier for data flow due to aliasing through * an access path. * * `label` is bound to the blocked label, or the empty string if all labels should be blocked. @@ -1155,7 +1155,7 @@ private predicate appendStep( } /** - * Holds if a function invoked at `invk` may return an expression into which `input`, + * Holds if a function invoked at `output` may return an expression into which `input`, * which is either an argument or a definition captured by the function, flows under * configuration `cfg`, possibly through callees. */ @@ -1391,7 +1391,7 @@ private predicate reachableFromStoreBase( } /** - * Holds if `base` is the base of a write to property `prop`, and `nd` is reachable + * Holds if `base` is the base of a write to property `endProp`, and `nd` is reachable * from `base` under configuration `cfg` (possibly through callees) along a path whose * last step is summarized by `newSummary`, and the previous steps are summarized * by `oldSummary`. @@ -1752,7 +1752,7 @@ class PathNode extends TPathNode { this = MkSinkNode(nd, cfg) } - /** Holds if this path node wraps data-flow node `nd` and configuration `c`. */ + /** Holds if this path node wraps data-flow node `n` and configuration `c`. */ predicate wraps(DataFlow::Node n, DataFlow::Configuration c) { nd = n and cfg = c } /** Gets the underlying configuration of this path node. */ @@ -1867,7 +1867,7 @@ class MidPathNode extends PathNode, MkMidNode { MidPathNode() { this = MkMidNode(nd, cfg, summary) } - /** Holds if this path node wraps data-flow node `nd`, configuration `c` and summary `s`. */ + /** Holds if this path node wraps data-flow node `n`, configuration `c` and summary `s`. */ predicate wraps(DataFlow::Node n, DataFlow::Configuration c, PathSummary s) { nd = n and cfg = c and summary = s } diff --git a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll index 247c9dfd319..eda5c2ff54f 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll @@ -1613,7 +1613,7 @@ module DataFlow { } /** - * Holds if the flow information for this node is incomplete. + * Holds if the flow information for the node `nd`. * * This predicate holds if there may be a source flow node from which data flows into * this node, but that node is not a result of `getALocalSource()` due to analysis incompleteness. diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Portals.qll b/javascript/ql/lib/semmle/javascript/dataflow/Portals.qll index 299819de4cd..3a8e0b477fb 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Portals.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Portals.qll @@ -498,7 +498,7 @@ private module ReturnPortal { invk = callee.getAnExitNode(isRemote).getAnInvocation() } - /** Holds if `ret` is a return node of a function flowing through `callee`. */ + /** Holds if `ret` is a return node of a function flowing through `base`. */ predicate returns(Portal base, DataFlow::Node ret, boolean escapes) { ret = base.getAnEntryNode(escapes).getALocalSource().(DataFlow::FunctionNode).getAReturn() } diff --git a/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll b/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll index 184e8a255a7..45a8920cfd8 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll @@ -831,7 +831,7 @@ module TaintTracking { } /** - * Holds if the property `loadStep` should be copied from the object `pred` to the property `storeStep` of object `succ`. + * Holds if the property `loadProp` should be copied from the object `pred` to the property `storeProp` of object `succ`. * * This step is used to copy the value of our pseudo-property that can later be accessed using a `get` or `getAll` call. * For an expression `url.searchParams`, the property `hiddenUrlPseudoProperty()` from the `url` object is stored in the property `getableUrlPseudoProperty()` on `url.searchParams`. diff --git a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSExpressions.qll b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSExpressions.qll index 56fca49cd10..050c123e30a 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSExpressions.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSExpressions.qll @@ -15,11 +15,11 @@ import javascript abstract class NgSourceProvider extends Locatable { /** * Holds if this element provides the source as `src` for an AngularJS expression at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. + * The location spans column `startColumn` of line `startLine` to + * column `endColumn` of line `endLine` in file `filepath`. */ abstract predicate providesSourceAt( - string src, string path, int startLine, int startColumn, int endLine, int endColumn + string src, string filepath, int startLine, int startColumn, int endLine, int endColumn ); /** diff --git a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/ServiceDefinitions.qll b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/ServiceDefinitions.qll index dcce784cd1a..6d421de851c 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/ServiceDefinitions.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/ServiceDefinitions.qll @@ -278,11 +278,11 @@ abstract private class CustomSpecialServiceDefinition extends CustomServiceDefin bindingset[moduleMethodName] private predicate isCustomServiceDefinitionOnModule( DataFlow::CallNode mce, string moduleMethodName, string serviceName, - DataFlow::Node factoryArgument + DataFlow::Node factoryFunction ) { mce = moduleRef(_).getAMethodCall(moduleMethodName) and mce.getArgument(0).asExpr().mayHaveStringValue(serviceName) and - factoryArgument = mce.getArgument(1) + factoryFunction = mce.getArgument(1) } pragma[inline] diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll b/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll index a0007de194d..3516935cf54 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll @@ -299,7 +299,7 @@ module Fastify { } /** - * Holds if `rh` uses `plugin`. + * Holds if `rh` uses `middleware`. */ private predicate usesMiddleware(RouteHandler rh, DataFlow::SourceNode middleware) { exists(RouteSetup setup | diff --git a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll index 8f2576d58d4..0c5b9bcdfa2 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll @@ -474,17 +474,17 @@ module NodeJSLib { * that receives the data. * * We determine this by looking for an externs declaration for - * `fs.methodName` where the `i`th parameter's name is `data` or + * `fs.methodName` where the `i`th parameter's name (`paramName`) is `data` or * `buffer` or a `callback`. */ - private predicate fsDataParam(string methodName, int i, string n) { + private predicate fsDataParam(string methodName, int i, string paramName) { exists(ExternalMemberDecl decl, Function f, JSDocParamTag p | decl.hasQualifiedName("fs", methodName) and f = decl.getInit() and p.getDocumentedParameter() = f.getParameter(i).getAVariable() and - n = p.getName().toLowerCase() + paramName = p.getName().toLowerCase() | - n = "data" or n = "buffer" or n = "callback" + paramName = ["data", "buffer", "callback"] ) } diff --git a/javascript/ql/lib/semmle/javascript/security/performance/ReDoSUtil.qll b/javascript/ql/lib/semmle/javascript/security/performance/ReDoSUtil.qll index 91b2d1d0378..b05435cf1f4 100644 --- a/javascript/ql/lib/semmle/javascript/security/performance/ReDoSUtil.qll +++ b/javascript/ql/lib/semmle/javascript/security/performance/ReDoSUtil.qll @@ -32,7 +32,7 @@ abstract class ReDoSConfiguration extends string { } /** - * Holds if repeating `pump' starting at `state` is a candidate for causing backtracking. + * Holds if repeating `pump` starting at `state` is a candidate for causing backtracking. * No check whether a rejected suffix exists has been made. */ private predicate isReDoSCandidate(State state, string pump) { diff --git a/javascript/ql/src/Declarations/DeadStoreOfProperty.ql b/javascript/ql/src/Declarations/DeadStoreOfProperty.ql index 48b574f8cd1..c8cb0d8536e 100644 --- a/javascript/ql/src/Declarations/DeadStoreOfProperty.ql +++ b/javascript/ql/src/Declarations/DeadStoreOfProperty.ql @@ -154,7 +154,7 @@ predicate maybeAssignsAccessedPropInBlock(DataFlow::PropWrite assign, boolean af */ private module PurityCheck { /** - * Holds if a ControlFlowNode `c` is before an impure expression inside `bb`. + * Holds if `write` is before an impure expression inside `bb`. */ predicate isBeforeImpure(DataFlow::PropWrite write, ReachableBasicBlock bb) { getANodeAfterWrite(write, bb).(Expr).isImpure() @@ -181,7 +181,7 @@ private module PurityCheck { } /** - * Holds if a ControlFlowNode `c` is after an impure expression inside `bb`. + * Holds if `write` is after an impure expression inside `bb`. */ predicate isAfterImpure(DataFlow::PropWrite write, ReachableBasicBlock bb) { getANodeBeforeWrite(write, bb).(Expr).isImpure() diff --git a/javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql b/javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql index daa34825939..f22b9779560 100644 --- a/javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql +++ b/javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql @@ -84,10 +84,10 @@ predicate hasObjectProvidingTemplateVariables(CandidateStringLiteral lit) { * Gets a declaration of variable `v` in `tl`, where `v` has the given `name` and * belongs to `scope`. */ -VarDecl getDeclIn(Variable v, Scope s, string name, CandidateTopLevel tl) { +VarDecl getDeclIn(Variable v, Scope scope, string name, CandidateTopLevel tl) { v.getName() = name and v.getADeclaration() = result and - v.getScope() = s and + v.getScope() = scope and result.getTopLevel() = tl } diff --git a/javascript/ql/src/Metrics/ES20xxFeatures.qll b/javascript/ql/src/Metrics/ES20xxFeatures.qll index 8069ba5e50f..4aaed2d0fda 100644 --- a/javascript/ql/src/Metrics/ES20xxFeatures.qll +++ b/javascript/ql/src/Metrics/ES20xxFeatures.qll @@ -6,7 +6,7 @@ import javascript /** - * Holds if `nd` is a use of a feature introduced in ECMAScript version `ver` + * Holds if `nd` is a use of a feature introduced in ECMAScript `version` * from the given category. * * Categories are taken from Kangax' [ECMAScript 6 compatibility table] diff --git a/javascript/ql/src/NodeJS/InvalidExport.ql b/javascript/ql/src/NodeJS/InvalidExport.ql index 9daa363e888..e0b4a73fd69 100644 --- a/javascript/ql/src/NodeJS/InvalidExport.ql +++ b/javascript/ql/src/NodeJS/InvalidExport.ql @@ -16,14 +16,14 @@ import javascript /** * Holds if `assign` assigns the value of `nd` to `exportsVar`, which is an `exports` variable */ -predicate exportsAssign(Assignment assgn, Variable exportsVar, DataFlow::Node nd) { +predicate exportsAssign(Assignment assign, Variable exportsVar, DataFlow::Node nd) { exists(NodeModule m | exportsVar = m.getScope().getVariable("exports") and - assgn.getLhs() = exportsVar.getAnAccess() and - nd = assgn.getRhs().flow() + assign.getLhs() = exportsVar.getAnAccess() and + nd = assign.getRhs().flow() ) or - exportsAssign(assgn, exportsVar, nd.getASuccessor()) + exportsAssign(assign, exportsVar, nd.getASuccessor()) } /** diff --git a/javascript/ql/src/Security/CWE-020/HostnameRegexpShared.qll b/javascript/ql/src/Security/CWE-020/HostnameRegexpShared.qll index 97d75d4a524..428f8992bc7 100644 --- a/javascript/ql/src/Security/CWE-020/HostnameRegexpShared.qll +++ b/javascript/ql/src/Security/CWE-020/HostnameRegexpShared.qll @@ -53,7 +53,7 @@ predicate matchesBeginningOfString(RegExpTerm term) { } /** - * Holds if the given sequence contains top-level domain preceded by a dot, such as `.com`, + * Holds if the given sequence `seq` contains top-level domain preceded by a dot, such as `.com`, * excluding cases where this is at the very beginning of the regexp. * * `i` is bound to the index of the last child in the top-level domain part. diff --git a/javascript/ql/src/Security/CWE-020/IncompleteUrlSchemeCheck.ql b/javascript/ql/src/Security/CWE-020/IncompleteUrlSchemeCheck.ql index c5fb503d176..b84e9730ed4 100644 --- a/javascript/ql/src/Security/CWE-020/IncompleteUrlSchemeCheck.ql +++ b/javascript/ql/src/Security/CWE-020/IncompleteUrlSchemeCheck.ql @@ -88,8 +88,8 @@ DataFlow::Node schemeCheck(DataFlow::Node nd, DangerousScheme scheme) { } /** Gets a data-flow node that checks an instance of `ap` against the given `scheme`. */ -DataFlow::Node schemeCheckOn(DataFlow::SourceNode root, string path, DangerousScheme scheme) { - result = schemeCheck(AccessPath::getAReferenceTo(root, path), scheme) +DataFlow::Node schemeCheckOn(DataFlow::SourceNode root, string ap, DangerousScheme scheme) { + result = schemeCheck(AccessPath::getAReferenceTo(root, ap), scheme) } from DataFlow::SourceNode root, string path, int n diff --git a/javascript/ql/src/Security/CWE-020/IncorrectSuffixCheck.ql b/javascript/ql/src/Security/CWE-020/IncorrectSuffixCheck.ql index 03a7a75828b..650b71dd62f 100644 --- a/javascript/ql/src/Security/CWE-020/IncorrectSuffixCheck.ql +++ b/javascript/ql/src/Security/CWE-020/IncorrectSuffixCheck.ql @@ -84,7 +84,7 @@ class LiteralLengthExpr extends DotExpr { } /** - * Holds if `length` is derived from the length of the given `indexOf`-operand. + * Holds if `length` is derived from the length of the given indexOf `operand`. */ predicate isDerivedFromLength(DataFlow::Node length, DataFlow::Node operand) { exists(IndexOfCall call | operand = call.getAnOperand() | diff --git a/javascript/ql/src/definitions.qll b/javascript/ql/src/definitions.qll index 4d0c0d50176..7b4806b1478 100644 --- a/javascript/ql/src/definitions.qll +++ b/javascript/ql/src/definitions.qll @@ -45,7 +45,7 @@ private predicate variableDefLookup(VarAccess va, AstNode def, string kind) { /** * Holds if variable access `va` is of kind `kind` and refers to the - * variable declaration. + * variable declaration `decl`. * * For example, in the statement `var x = 42, y = x;`, the initializing * expression of `y` is a variable access `x` of kind `"V"` that refers to diff --git a/javascript/ql/src/external/DefectFilter.qll b/javascript/ql/src/external/DefectFilter.qll index 40c9527e96d..558d5ef77b6 100644 --- a/javascript/ql/src/external/DefectFilter.qll +++ b/javascript/ql/src/external/DefectFilter.qll @@ -5,8 +5,8 @@ import semmle.javascript.Files /** * Holds if `id` in the opaque identifier of a result reported by query `queryPath`, * such that `message` is the associated message and the location of the result spans - * column `startcolumn` of line `startline` to column `endcolumn` of line `endline` - * in file `filepath`. + * column `startcol` of line `startline` to column `endcol` of line `endline` + * in `file`. * * For more information, see [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ diff --git a/javascript/ql/src/external/MetricFilter.qll b/javascript/ql/src/external/MetricFilter.qll index a857a4fad3e..f195060b60c 100644 --- a/javascript/ql/src/external/MetricFilter.qll +++ b/javascript/ql/src/external/MetricFilter.qll @@ -5,8 +5,8 @@ import javascript /** * Holds if `id` in the opaque identifier of a result reported by query `queryPath`, * such that `value` is the reported metric value and the location of the result spans - * column `startcolumn` of line `startline` to column `endcolumn` of line `endline` - * in file `filepath`. + * column `startcol` of line `startline` to column `endcol` of line `endline` + * in `file`. * * For more information, see [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ From 53760799fc2c18cc929d7b359d54e2b570aa188b Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sun, 19 Dec 2021 23:03:36 +0100 Subject: [PATCH 005/736] sync files --- python/ql/lib/semmle/python/security/performance/ReDoSUtil.qll | 2 +- ruby/ql/lib/codeql/ruby/security/performance/ReDoSUtil.qll | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/security/performance/ReDoSUtil.qll b/python/ql/lib/semmle/python/security/performance/ReDoSUtil.qll index 91b2d1d0378..b05435cf1f4 100644 --- a/python/ql/lib/semmle/python/security/performance/ReDoSUtil.qll +++ b/python/ql/lib/semmle/python/security/performance/ReDoSUtil.qll @@ -32,7 +32,7 @@ abstract class ReDoSConfiguration extends string { } /** - * Holds if repeating `pump' starting at `state` is a candidate for causing backtracking. + * Holds if repeating `pump` starting at `state` is a candidate for causing backtracking. * No check whether a rejected suffix exists has been made. */ private predicate isReDoSCandidate(State state, string pump) { diff --git a/ruby/ql/lib/codeql/ruby/security/performance/ReDoSUtil.qll b/ruby/ql/lib/codeql/ruby/security/performance/ReDoSUtil.qll index 91b2d1d0378..b05435cf1f4 100644 --- a/ruby/ql/lib/codeql/ruby/security/performance/ReDoSUtil.qll +++ b/ruby/ql/lib/codeql/ruby/security/performance/ReDoSUtil.qll @@ -32,7 +32,7 @@ abstract class ReDoSConfiguration extends string { } /** - * Holds if repeating `pump' starting at `state` is a candidate for causing backtracking. + * Holds if repeating `pump` starting at `state` is a candidate for causing backtracking. * No check whether a rejected suffix exists has been made. */ private predicate isReDoSCandidate(State state, string pump) { From f204a411220eecd6816d6e600951e73a4bdfe58d Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 20 Dec 2021 11:15:21 +0100 Subject: [PATCH 006/736] QL: fix ql/missing-parameter-qldoc error in QL-for-QL --- ql/ql/src/codeql_ql/ast/internal/Module.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/Module.qll b/ql/ql/src/codeql_ql/ast/internal/Module.qll index 50416337bf4..225fa4c4d3a 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Module.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Module.qll @@ -239,7 +239,7 @@ boolean getPublicBool(AstNode n) { /** * Holds if `container` defines module `m` with name `name`. * - * `m` may be defined either directly or through `import`s. + * `m` may be defined either directly or through imports. */ private predicate definesModule( ContainerOrModule container, string name, ContainerOrModule m, boolean public From 3762ce2c72c3c13cf5e2ef680f829d00f3c18279 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 20 Dec 2021 13:46:02 +0100 Subject: [PATCH 007/736] QL: also report missing QLDoc for parameters when no parameters are documented --- .../queries/style/MissingParameterInQlDoc.ql | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql index 1fe962154f8..1b9f82a566e 100644 --- a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql +++ b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql @@ -42,34 +42,35 @@ private string getAMentionedNonParameter(Predicate p) { ) and result.regexpMatch("^[a-z]\\w+$") and not result.toLowerCase() = getAParameterName(p).toLowerCase() and - not result = ["true", "false", "NaN"] and // keywords - not result.regexpMatch("\\d+") and // numbers + not result = ["true", "false", "NaN", "this"] and // keywords + not result = getMentionedPredicates(p.getLocation().getFile()) and + // variables inside the predicate are also fine + not result = any(VarDecl var | var.getEnclosingPredicate() = p).getName() +} + +/** Gets the names of all predicates that are mentioned in `file`. */ +pragma[noinline] +private string getMentionedPredicates(File file) { // predicates get mentioned all the time, it's fine. - not result = - any(Predicate pred | pred.getLocation().getFile() = p.getLocation().getFile()).getName() and - // classes get mentioned all the time, it's fine. - not result = - any(TypeExpr t | t.getLocation().getFile() = p.getLocation().getFile()) - .getResolvedType() - .getName() + result = any(Predicate pred | pred.getLocation().getFile() = file).getName() or + result = any(Call c | c.getLocation().getFile() = file).getTarget().getName() } /** Gets a parameter name from `p` that is not mentioned in the qldoc. */ private string getAnUndocumentedParameter(Predicate p) { result = getAParameterName(p) and not result.toLowerCase() = getADocumentedParameter(p).toLowerCase() and - not result = ["config", "conf", "cfg"] // DataFlow configurations are often undocumented, and that's fine. -} - -/** Holds if `p` has documented parameters, but `param` is undocumented */ -private predicate missingDocumentation(Predicate p, string param) { - param = getAnUndocumentedParameter(p) and - exists(getADocumentedParameter(p)) + not result = ["config", "conf", "cfg"] and // DataFlow configurations are often undocumented, and that's fine. + not ( + // "the given" often refers to the first parameter. + p.getQLDoc().getContents().regexpMatch("(?s).*\\bthe given\\b.*") and + result = p.getParameter(0).getName() + ) } /** Gets the one string containing the undocumented parameters from `p` */ private string getUndocumentedParameters(Predicate p) { - result = strictconcat(string param | missingDocumentation(p, param) | param, ", or ") + result = strictconcat(string param | param = getAnUndocumentedParameter(p) | param, ", or ") } /** Gets the parameter-like names mentioned in the QLDoc of `p` that are not parameters. */ @@ -78,6 +79,7 @@ private string getMentionedNonParameters(Predicate p) { } from Predicate p +where not p.getLocation().getFile().getBaseName() = "Aliases.qll" // these are OK select p, "The QLDoc has no documentation for " + getUndocumentedParameters(p) + ", but the QLDoc mentions " + getMentionedNonParameters(p) From daed33f5afe8d5c0a9ea835be1264c160f37fde1 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 20 Dec 2021 13:46:15 +0100 Subject: [PATCH 008/736] JS: fix more instances of `ql/missing-parameter-qldoc` --- .../dataflow/TemplateInjection/TemplateInjection.ql | 2 +- javascript/ql/lib/semmle/javascript/Classes.qll | 2 +- javascript/ql/lib/semmle/javascript/ES2015Modules.qll | 2 +- javascript/ql/lib/semmle/javascript/PrintAst.qll | 2 +- javascript/ql/lib/semmle/javascript/Routing.qll | 2 +- javascript/ql/lib/semmle/javascript/TypeScript.qll | 2 +- .../ql/lib/semmle/javascript/frameworks/Bundling.qll | 6 +++--- .../javascript/frameworks/ConnectExpressShared.qll | 2 +- .../ql/lib/semmle/javascript/frameworks/NoSQL.qll | 6 +++--- .../ql/lib/semmle/javascript/frameworks/SocketIO.qll | 4 ++-- .../ql/lib/semmle/javascript/frameworks/jQuery.qll | 11 ++++++----- javascript/ql/src/RegExp/RegExpAlwaysMatches.ql | 8 ++++---- .../ql/src/Security/CWE-200/PrivateFileExposure.ql | 10 +++++----- javascript/ql/src/Security/CWE-384/SessionFixation.ql | 2 +- 14 files changed, 31 insertions(+), 30 deletions(-) diff --git a/javascript/ql/examples/queries/dataflow/TemplateInjection/TemplateInjection.ql b/javascript/ql/examples/queries/dataflow/TemplateInjection/TemplateInjection.ql index 2286fdc2121..ea4a99c69d8 100644 --- a/javascript/ql/examples/queries/dataflow/TemplateInjection/TemplateInjection.ql +++ b/javascript/ql/examples/queries/dataflow/TemplateInjection/TemplateInjection.ql @@ -14,7 +14,7 @@ import DataFlow::PathGraph /** * Gets the name of an unescaped placeholder in a lodash template. * - * For example, the string `

<%= title %>

` contains the placeholder `title`. + * For example, the string "

<%= title %>

" contains the placeholder "title". */ bindingset[s] string getAPlaceholderInString(string s) { diff --git a/javascript/ql/lib/semmle/javascript/Classes.qll b/javascript/ql/lib/semmle/javascript/Classes.qll index 309e2aae615..2b39eac9f42 100644 --- a/javascript/ql/lib/semmle/javascript/Classes.qll +++ b/javascript/ql/lib/semmle/javascript/Classes.qll @@ -172,7 +172,7 @@ class ClassDefinition extends @class_definition, ClassOrInterface, AST::ValueNod /** Gets the expression denoting the super class of the defined class, if any. */ override Expr getSuperClass() { result = this.getChildExpr(1) } - /** Gets the `n`th type from the `implements` clause of this class, starting at 0. */ + /** Gets the `i`th type from the `implements` clause of this class, starting at 0. */ override TypeExpr getSuperInterface(int i) { // AST indices for super interfaces: -1, -4, -7, ... exists(int astIndex | typeexprs(result, _, this, astIndex, _) | diff --git a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll index e584167a73b..89e0f92a13d 100644 --- a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll +++ b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll @@ -54,7 +54,7 @@ private predicate hasNamedExports(ES2015Module mod) { } /** - * Holds if this module contains a `default` export. + * Holds if this module contains a default export. */ private predicate hasDefaultExport(ES2015Module mod) { // export default foo; diff --git a/javascript/ql/lib/semmle/javascript/PrintAst.qll b/javascript/ql/lib/semmle/javascript/PrintAst.qll index f60b19ccb4e..be762640327 100644 --- a/javascript/ql/lib/semmle/javascript/PrintAst.qll +++ b/javascript/ql/lib/semmle/javascript/PrintAst.qll @@ -195,7 +195,7 @@ private module PrintJavaScript { * Gets the `i`th child of `element`. * Can be overriden in subclasses to get more specific behavior for `getChild()`. */ - AstNode getChildNode(int childIndex) { result = getLocationSortedChild(element, childIndex) } + AstNode getChildNode(int i) { result = getLocationSortedChild(element, i) } } /** Provides predicates for pretty printing `AstNode`s. */ diff --git a/javascript/ql/lib/semmle/javascript/Routing.qll b/javascript/ql/lib/semmle/javascript/Routing.qll index ad75132f9f9..84c83956d07 100644 --- a/javascript/ql/lib/semmle/javascript/Routing.qll +++ b/javascript/ql/lib/semmle/javascript/Routing.qll @@ -229,7 +229,7 @@ module Routing { } /** - * Holds if `node` has processed the incoming request strictly prior to this node. + * Holds if `guard` has processed the incoming request strictly prior to this node. */ pragma[inline] private predicate isGuardedByNodeInternal(Node guard) { diff --git a/javascript/ql/lib/semmle/javascript/TypeScript.qll b/javascript/ql/lib/semmle/javascript/TypeScript.qll index 70a1ed98830..4f421eb5d4d 100644 --- a/javascript/ql/lib/semmle/javascript/TypeScript.qll +++ b/javascript/ql/lib/semmle/javascript/TypeScript.qll @@ -751,7 +751,7 @@ class TypeAccess extends @typeaccess, TypeExpr, TypeRef { } /** - * Gets a suitable name for the library imported by `import`. + * Gets a suitable name for the library imported by `imprt`. * * For relative imports, this is the snapshot-relative path to the imported module. * For non-relative imports, it is the import path itself. diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Bundling.qll b/javascript/ql/lib/semmle/javascript/frameworks/Bundling.qll index d7fd51c1b82..1315ac651d5 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Bundling.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Bundling.qll @@ -102,9 +102,9 @@ private predicate isBrowserifyDependencyMap(ObjectExpr deps) { * Holds if `m` is a function that looks like a bundled module created * by Webpack. * - * Parameters must be named either `module` or `exports`, - * or their name must contain the substring `webpack_require` - * or `webpack_module_template_argument`. + * Parameters must be named either "module" or "exports", + * or their name must contain the substring "webpack_require" + * or "webpack_module_template_argument". */ private predicate isWebpackModule(FunctionExpr m) { forex(Parameter parm | parm = m.getAParameter() | diff --git a/javascript/ql/lib/semmle/javascript/frameworks/ConnectExpressShared.qll b/javascript/ql/lib/semmle/javascript/frameworks/ConnectExpressShared.qll index 9da7c959cb0..489fcf550c4 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/ConnectExpressShared.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/ConnectExpressShared.qll @@ -50,7 +50,7 @@ module ConnectExpressShared { } /** - * Holds if `fun` appears to match the given signature based on parameter naming. + * Holds if `function` appears to match the given signature based on parameter naming. */ private predicate matchesSignature(Function function, RouteHandlerSignature sig) { function.getNumParameter() = sig.getArity() and diff --git a/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.qll b/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.qll index 6889161696f..fb64d054ed7 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/NoSQL.qll @@ -584,11 +584,11 @@ private module Minimongo { */ module CollectionMethodSignatures { /** - * Holds if Collection method `name` interprets parameter `n` as a query. + * Holds if Collection method `name` interprets parameter `queryArgIdx` as a query. */ - predicate interpretsArgumentAsQuery(string m, int queryArgIdx) { + predicate interpretsArgumentAsQuery(string name, int queryArgIdx) { // implements most of the MongoDB interface - MongoDB::CollectionMethodSignatures::interpretsArgumentAsQuery(m, queryArgIdx) + MongoDB::CollectionMethodSignatures::interpretsArgumentAsQuery(name, queryArgIdx) } } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/SocketIO.qll b/javascript/ql/lib/semmle/javascript/frameworks/SocketIO.qll index df761420e29..4ffdf1432ac 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/SocketIO.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/SocketIO.qll @@ -55,7 +55,7 @@ module SocketIO { /** Gets the namespace with the given path of this server. */ NamespaceObject getNamespace(string path) { result = MkNamespace(this, path) } - /** Gets a api node that may refer to the socket.io server created at `srv`. */ + /** Gets a api node that may refer to a socket.io server. */ private API::Node server() { result = node or @@ -144,7 +144,7 @@ module SocketIO { override NamespaceObject getNamespace() { result = ns } /** - * Gets a data flow node that may refer to the socket.io namespace created at `ns`. + * Gets a data flow node that may refer a the socket.io namespace. */ private API::Node namespace() { result = node diff --git a/javascript/ql/lib/semmle/javascript/frameworks/jQuery.qll b/javascript/ql/lib/semmle/javascript/frameworks/jQuery.qll index 28a01dba7ab..54833514e69 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/jQuery.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/jQuery.qll @@ -309,12 +309,13 @@ private module JQueryClientRequest { /** * Gets a node refering to the response contained in an `jqXHR` object. */ - private DataFlow::SourceNode getAResponseNodeFromAnXHRObject(DataFlow::SourceNode obj) { + private DataFlow::SourceNode getAResponseNodeFromAnXHRObject(DataFlow::SourceNode jqXHR) { result = - obj.getAPropertyRead(any(string s | - s = "responseText" or - s = "responseXML" - )) + jqXHR + .getAPropertyRead(any(string s | + s = "responseText" or + s = "responseXML" + )) } /** diff --git a/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql b/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql index e352617337f..06e0a8146ef 100644 --- a/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql +++ b/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql @@ -39,10 +39,10 @@ RegExpTerm getEffectiveRoot(RegExpTerm actualRoot) { /** * Holds if `term` contains an anchor on both ends. */ -predicate isPossiblyAnchoredOnBothEnds(RegExpSequence node) { - node.getAChild*() instanceof RegExpCaret and - node.getAChild*() instanceof RegExpDollar and - node.getNumChild() >= 2 +predicate isPossiblyAnchoredOnBothEnds(RegExpSequence term) { + term.getAChild*() instanceof RegExpCaret and + term.getAChild*() instanceof RegExpDollar and + term.getNumChild() >= 2 } /** diff --git a/javascript/ql/src/Security/CWE-200/PrivateFileExposure.ql b/javascript/ql/src/Security/CWE-200/PrivateFileExposure.ql index 99ca8cba8a7..add8679dee7 100644 --- a/javascript/ql/src/Security/CWE-200/PrivateFileExposure.ql +++ b/javascript/ql/src/Security/CWE-200/PrivateFileExposure.ql @@ -72,11 +72,11 @@ pragma[noinline] Folder getAPackageJsonFolder() { result = any(PackageJson json).getFile().getParentContainer() } /** - * Gets a reference to `dirname`, the home folder, the current working folder, or the root folder. + * Gets a reference to a directory that has a `package.json` in the same folder, the home folder, + * the current working folder, or the root folder. * All of these might cause information to be leaked. * - * For `dirname` that can happen if there is a `package.json` file in the same folder. - * It is assumed that the presence of a `package.json` file means that a `node_modules` folder can also exist. + * For the first case it is assumed that the presence of a `package.json` file means that a `node_modules` folder can also exist. * * For the root/home/working folder, they contain so much information that they must leak information somehow (e.g. ssh keys in the `~/.ssh` folder). */ @@ -108,7 +108,7 @@ DataFlow::Node getALeakingFolder(string description) { } /** - * Gets a data-flow node that represents a path to the private folder `path`. + * Gets a data-flow node that represents the private folder descriped by `description`. */ DataFlow::Node getAPrivateFolderPath(string description) { exists(string path | @@ -119,7 +119,7 @@ DataFlow::Node getAPrivateFolderPath(string description) { } /** - * Gest a call that serves the folder `path` to the public. + * Gest a call that serves the folder descriped by `description` to the public. */ DataFlow::CallNode servesAPrivateFolder(string description) { result = DataFlow::moduleMember(["express", "connect"], "static").getACall() and diff --git a/javascript/ql/src/Security/CWE-384/SessionFixation.ql b/javascript/ql/src/Security/CWE-384/SessionFixation.ql index aec00f22d45..7fccf16b01b 100644 --- a/javascript/ql/src/Security/CWE-384/SessionFixation.ql +++ b/javascript/ql/src/Security/CWE-384/SessionFixation.ql @@ -36,7 +36,7 @@ predicate isLoginSetup(Express::RouteSetup setup) { } /** - * Holds if `handler` regenerates its session using `req.session.regenerate`. + * Holds if `setup` regenerates its session using `req.session.regenerate`. */ pragma[inline] predicate regeneratesSession(Express::RouteSetup setup) { From 35c3c62f9e7e5acea9441e5989961ded1a290fd1 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Tue, 4 Jan 2022 13:42:30 +0100 Subject: [PATCH 009/736] apply suggestions from code review --- .../queries/dataflow/TemplateInjection/TemplateInjection.ql | 2 +- ql/ql/src/queries/style/MissingParameterInQlDoc.ql | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/javascript/ql/examples/queries/dataflow/TemplateInjection/TemplateInjection.ql b/javascript/ql/examples/queries/dataflow/TemplateInjection/TemplateInjection.ql index ea4a99c69d8..b146b19e54d 100644 --- a/javascript/ql/examples/queries/dataflow/TemplateInjection/TemplateInjection.ql +++ b/javascript/ql/examples/queries/dataflow/TemplateInjection/TemplateInjection.ql @@ -14,7 +14,7 @@ import DataFlow::PathGraph /** * Gets the name of an unescaped placeholder in a lodash template. * - * For example, the string "

<%= title %>

" contains the placeholder "title". + * For example, the string `"

<%= title %>

"` contains the placeholder "title". */ bindingset[s] string getAPlaceholderInString(string s) { diff --git a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql index 1b9f82a566e..ccf587d9611 100644 --- a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql +++ b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql @@ -42,7 +42,8 @@ private string getAMentionedNonParameter(Predicate p) { ) and result.regexpMatch("^[a-z]\\w+$") and not result.toLowerCase() = getAParameterName(p).toLowerCase() and - not result = ["true", "false", "NaN", "this"] and // keywords + not result = ["true", "false", "NaN", "this", "forall", "exists", "null", "break", "return"] and // keywords + not result = any(Aggregate a).getKind() and // min, max, sum, count, etc. not result = getMentionedPredicates(p.getLocation().getFile()) and // variables inside the predicate are also fine not result = any(VarDecl var | var.getEnclosingPredicate() = p).getName() From 86c8737250596bc5988b033ce03339b2e0233639 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Tue, 4 Jan 2022 13:51:49 +0100 Subject: [PATCH 010/736] remove string constants from mentioned non-params --- ql/ql/src/queries/style/MissingParameterInQlDoc.ql | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql index ccf587d9611..d4acb329a23 100644 --- a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql +++ b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql @@ -44,17 +44,18 @@ private string getAMentionedNonParameter(Predicate p) { not result.toLowerCase() = getAParameterName(p).toLowerCase() and not result = ["true", "false", "NaN", "this", "forall", "exists", "null", "break", "return"] and // keywords not result = any(Aggregate a).getKind() and // min, max, sum, count, etc. - not result = getMentionedPredicates(p.getLocation().getFile()) and + not result = getMentionedThings(p.getLocation().getFile()) and // variables inside the predicate are also fine not result = any(VarDecl var | var.getEnclosingPredicate() = p).getName() } -/** Gets the names of all predicates that are mentioned in `file`. */ +/** Gets the names of all predicates and string constants that are mentioned in `file`. */ pragma[noinline] -private string getMentionedPredicates(File file) { +private string getMentionedThings(File file) { // predicates get mentioned all the time, it's fine. result = any(Predicate pred | pred.getLocation().getFile() = file).getName() or - result = any(Call c | c.getLocation().getFile() = file).getTarget().getName() + result = any(Call c | c.getLocation().getFile() = file).getTarget().getName() or + result = any(String s | s.getLocation().getFile() = file).getValue() } /** Gets a parameter name from `p` that is not mentioned in the qldoc. */ From 2a196611af2a199449eb26d9fb818e9e35d83e0c Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Tue, 4 Jan 2022 13:54:53 +0100 Subject: [PATCH 011/736] add `not` as a keyword --- ql/ql/src/queries/style/MissingParameterInQlDoc.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql index d4acb329a23..730b5a89a1f 100644 --- a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql +++ b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql @@ -42,7 +42,9 @@ private string getAMentionedNonParameter(Predicate p) { ) and result.regexpMatch("^[a-z]\\w+$") and not result.toLowerCase() = getAParameterName(p).toLowerCase() and - not result = ["true", "false", "NaN", "this", "forall", "exists", "null", "break", "return"] and // keywords + // keywords + not result = + ["true", "false", "NaN", "this", "forall", "exists", "null", "break", "return", "not"] and not result = any(Aggregate a).getKind() and // min, max, sum, count, etc. not result = getMentionedThings(p.getLocation().getFile()) and // variables inside the predicate are also fine From 4b50c68934df4faf20a3155e7c0d3dec9675e95f Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Tue, 4 Jan 2022 14:13:48 +0100 Subject: [PATCH 012/736] exclude annotation names --- ql/ql/src/queries/style/MissingParameterInQlDoc.ql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql index 730b5a89a1f..b378803822a 100644 --- a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql +++ b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql @@ -47,6 +47,8 @@ private string getAMentionedNonParameter(Predicate p) { ["true", "false", "NaN", "this", "forall", "exists", "null", "break", "return", "not"] and not result = any(Aggregate a).getKind() and // min, max, sum, count, etc. not result = getMentionedThings(p.getLocation().getFile()) and + not result = any(Annotation a).getName() and // private, final, etc. + not result = any(Annotation a).getArgs(_).getValue() and // noinline, etc. // variables inside the predicate are also fine not result = any(VarDecl var | var.getEnclosingPredicate() = p).getName() } From a7c69ba6abf9b6a1ab12a1bf8b9a8b3d84706841 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 9 May 2022 13:15:27 +0000 Subject: [PATCH 013/736] create new branchihsinme-patch-87 in fork --- .../CWE/CWE-125/DangerousUseMbtowc.cpp | 6 + .../CWE/CWE-125/DangerousUseMbtowc.qhelp | 23 +++ .../CWE/CWE-125/DangerousUseMbtowc.ql | 106 ++++++++++ .../semmle/tests/DangerousUseMbtowc.expected | 8 + .../semmle/tests/DangerousUseMbtowc.qlref | 1 + .../CWE/CWE-125/semmle/tests/test.cpp | 194 ++++++++++++++++++ 6 files changed, 338 insertions(+) create mode 100644 cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.cpp create mode 100644 cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp create mode 100644 cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.qlref create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test.cpp diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.cpp b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.cpp new file mode 100644 index 00000000000..3b71c4f3005 --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.cpp @@ -0,0 +1,6 @@ + +... +mbtowc(&wc, ptr, 4)); // BAD:we can get unpredictable results +... +mbtowc(&wc, ptr, MB_LEN_MAX); // GOOD +... diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp new file mode 100644 index 00000000000..8634b9b66ba --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp @@ -0,0 +1,23 @@ + + + +

Using function mbtowc with an invalid length argument can result in an out-of-bounds access error or unexpected result. If you are sure you are working with a null-terminated string, use the length macros, if not, use the correctly computed length.

+ +
+ + +

The following example shows the erroneous and corrected method of using function mbtowc.

+ + +
+ + +
  • + CERT Coding Standard: + ARR30-C. Do not form or use out-of-bounds pointers or array subscripts - SEI CERT C Coding Standard - Confluence. +
  • + +
    +
    \ No newline at end of file diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql new file mode 100644 index 00000000000..0940c899312 --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql @@ -0,0 +1,106 @@ +/** + * @name Dangerous use mbtowc. + * @description Using function mbtowc with an invalid length argument can result in an out-of-bounds access error or unexpected result. + * @kind problem + * @id cpp/dangerous-use-mbtowc + * @problem.severity warning + * @precision medium + * @tags correctness + * security + * external/cwe/cwe-125 + */ + +import cpp +import semmle.code.cpp.valuenumbering.GlobalValueNumbering + +/** Holds if there are indications that the variable is treated as a string. */ +predicate exprMayBeString(Expr exp) { + ( + exists(StringLiteral sl | globalValueNumber(exp) = globalValueNumber(sl)) + or + exists(FunctionCall fctmp | + globalValueNumber(fctmp.getAnArgument()) = globalValueNumber(exp) and + fctmp.getTarget().hasGlobalOrStdName(["strlen", "strcat", "strncat", "strcpy", "sptintf"]) + ) + or + exists(AssignExpr astmp | + astmp.getRValue().getValue() = "0" and + astmp.getLValue().(ArrayExpr).getArrayBase().(VariableAccess).getTarget() = + exp.(VariableAccess).getTarget() + ) + or + exists(ComparisonOperation cotmp, Expr exptmp1, Expr exptmp2 | + exptmp1.getValue() = "0" and + ( + exptmp2.(PointerDereferenceExpr).getOperand().(VariableAccess).getTarget() = + exp.(VariableAccess).getTarget() or + exptmp2.(ArrayExpr).getArrayBase().(VariableAccess).getTarget() = + exp.getAChild().(VariableAccess).getTarget() + ) and + cotmp.hasOperands(exptmp1, exptmp2) + ) + ) +} + +/** Holds if expression is constant or operator call `sizeof`. */ +predicate argConstOrSizeof(Expr exp) { + exp.getValue().toInt() > 1 or + exp.(SizeofTypeOperator).getTypeOperand().getSize() > 1 +} + +/** Holds if expression is macro. */ +predicate argMacro(Expr exp) { + exists(MacroInvocation matmp | + exp = matmp.getExpr() and + ( + matmp.getMacroName() = "MB_LEN_MAX" or + matmp.getMacroName() = "MB_CUR_MAX" + ) + ) +} + +from FunctionCall fc, string msg +where + exists(Loop lptmp | lptmp = fc.getEnclosingStmt().getParentStmt*()) and + fc.getTarget().hasGlobalOrStdName(["mbtowc", "mbrtowc"]) and + not fc.getArgument(0).isConstant() and + not fc.getArgument(1).isConstant() and + ( + exprMayBeString(fc.getArgument(1)) and + argConstOrSizeof(fc.getArgument(2)) and + fc.getArgument(2).getValue().toInt() < 5 and + not argMacro(fc.getArgument(2)) and + msg = "Size can be less than maximum character length, use macro MB_CUR_MAX." + or + not exprMayBeString(fc.getArgument(1)) and + ( + argConstOrSizeof(fc.getArgument(2)) + or + argMacro(fc.getArgument(2)) + or + exists(DecrementOperation dotmp | + globalValueNumber(dotmp.getAnOperand()) = globalValueNumber(fc.getArgument(2)) and + not exists(AssignSubExpr aetmp | + ( + aetmp.getLValue().(VariableAccess).getTarget() = + fc.getArgument(2).(VariableAccess).getTarget() or + globalValueNumber(aetmp.getLValue()) = globalValueNumber(fc.getArgument(2)) + ) and + globalValueNumber(aetmp.getRValue()) = globalValueNumber(fc) + ) + ) + ) and + msg = + "Access beyond the allocated memory is possible, the length can change without changing the pointer." + or + exists(AssignPointerAddExpr aetmp | + ( + aetmp.getLValue().(VariableAccess).getTarget() = + fc.getArgument(0).(VariableAccess).getTarget() or + globalValueNumber(aetmp.getLValue()) = globalValueNumber(fc.getArgument(0)) + ) and + globalValueNumber(aetmp.getRValue()) = globalValueNumber(fc) + ) and + msg = "Maybe you're using the function's return value incorrectly." + ) +select fc, msg diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected new file mode 100644 index 00000000000..463515526da --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected @@ -0,0 +1,8 @@ +| test.cpp:61:27:61:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | +| test.cpp:70:27:70:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | +| test.cpp:98:11:98:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:114:11:114:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:130:11:130:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:147:11:147:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:169:11:169:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:185:11:185:16 | call to mbtowc | Maybe you're using the function's return value incorrectly. | diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.qlref b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.qlref new file mode 100644 index 00000000000..f8b0cddbb28 --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.qlref @@ -0,0 +1 @@ +experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test.cpp b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test.cpp new file mode 100644 index 00000000000..3945f46103e --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test.cpp @@ -0,0 +1,194 @@ +typedef unsigned long size_t; +#define MB_CUR_MAX 6 +#define MB_LEN_MAX 16 +int mbtowc(wchar_t *out, const char *in, size_t size); +int wprintf (const wchar_t* format, ...); +int strlen( const char * string ); +int checkErrors(); + +void goodTest0() +{ + char * ptr = "123456789"; + int ret; + int len; + len = 9; + for (wchar_t wc; (ret = mbtowc(&wc, ptr, len)) > 0; len-=ret) { // GOOD + wprintf(L"%lc", wc); + } +} +void goodTest1(const char* ptr) +{ + int ret; + int len; + len = strlen(ptr); + for (wchar_t wc; (ret = mbtowc(&wc, ptr, len)) > 0; len-=ret) { // GOOD + wprintf(L"%lc", wc); + } +} +void goodTest2(char* ptr) +{ + int ret; + ptr[10]=0; + int len = 9; + for (wchar_t wc; (ret = mbtowc(&wc, ptr, 16)) > 0; len-=ret) { // GOOD + wprintf(L"%lc", wc); + } +} + +void goodTest3(const char* ptr) +{ + int ret; + int len; + len = strlen(ptr); + for (wchar_t wc; (ret = mbtowc(&wc, ptr, MB_CUR_MAX)) > 0; len-=ret) { // GOOD + wprintf(L"%lc", wc); + } +} +void goodTest4(const char* ptr) +{ + int ret; + int len; + len = strlen(ptr); + for (wchar_t wc; (ret = mbtowc(&wc, ptr, MB_LEN_MAX)) > 0; len-=ret) { // GOOD + wprintf(L"%lc", wc); + } +} +void badTest1(const char* ptr) +{ + int ret; + int len; + len = strlen(ptr); + for (wchar_t wc; (ret = mbtowc(&wc, ptr, 4)) > 0; len-=ret) { // BAD:we can get unpredictable results + wprintf(L"%lc", wc); + } +} +void badTest2(const char* ptr) +{ + int ret; + int len; + len = strlen(ptr); + for (wchar_t wc; (ret = mbtowc(&wc, ptr, sizeof(wchar_t))) > 0; len-=ret) { // BAD:we can get unpredictable results + wprintf(L"%lc", wc); + } +} + +void goodTest5(const char* ptr,wchar_t *wc,int wc_len) +{ + int ret; + int len; + len = wc_len; + while (*ptr && len > 0) { + ret = mbtowc(wc, ptr, len); // GOOD + if (ret <0) + break; + if (ret == 0 || ret > len) + break; + len-=ret; + ptr+=ret; + wc++; + } +} + +void badTest3(const char* ptr,wchar_t *wc,int wc_len) +{ + int ret; + int len; + len = wc_len; + while (*ptr && len > 0) { + ret = mbtowc(wc, ptr, MB_CUR_MAX); // BAD + if (ret <0) + break; + if (ret == 0 || ret > len) + break; + len-=ret; + ptr+=ret; + wc++; + } +} +void badTest4(const char* ptr,wchar_t *wc,int wc_len) +{ + int ret; + int len; + len = wc_len; + while (*ptr && len > 0) { + ret = mbtowc(wc, ptr, 16); // BAD + if (ret <0) + break; + if (ret == 0 || ret > len) + break; + len-=ret; + ptr+=ret; + wc++; + } +} +void badTest5(const char* ptr,wchar_t *wc,int wc_len) +{ + int ret; + int len; + len = wc_len; + while (*ptr && len > 0) { + ret = mbtowc(wc, ptr, sizeof(wchar_t)); // BAD + if (ret <0) + break; + if (ret == 0 || ret > len) + break; + len-=ret; + ptr+=ret; + wc++; + } +} + +void badTest6(const char* ptr,wchar_t *wc,int wc_len) +{ + int ret; + int len; + len = wc_len; + while (*ptr && wc_len > 0) { + ret = mbtowc(wc, ptr, wc_len); // BAD + if (ret <0) + if (checkErrors()) { + ++ptr; + --len; + continue; + } else + break; + if (ret == 0 || ret > len) + break; + wc_len--; + len-=ret; + wc++; + ptr+=ret; + } +} +void badTest7(const char* ptr,wchar_t *wc,int wc_len) +{ + int ret; + int len; + len = wc_len; + while (*ptr && wc_len > 0) { + ret = mbtowc(wc, ptr, len); // BAD + if (ret <0) + break; + if (ret == 0 || ret > len) + break; + len--; + wc++; + ptr+=ret; + } +} +void badTest8(const char* ptr,wchar_t *wc) +{ + int ret; + int len; + len = strlen(ptr); + while (*ptr && len > 0) { + ret = mbtowc(wc, ptr, len); // BAD + if (ret <0) + break; + if (ret == 0 || ret > len) + break; + len-=ret; + ptr++; + wc+=ret; + } +} From 57127a534330b67712a997f07d8c48ee8ef7a154 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Wed, 25 May 2022 09:38:02 +0300 Subject: [PATCH 014/736] Update cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com> --- .../experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp index 8634b9b66ba..5a9aa77214d 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp @@ -3,7 +3,7 @@ "qhelp.dtd"> -

    Using function mbtowc with an invalid length argument can result in an out-of-bounds access error or unexpected result. If you are sure you are working with a null-terminated string, use the length macros, if not, use the correctly computed length.

    +

    Using function mbtowc with an invalid length argument can result in an out-of-bounds access error or unexpected result. If you are sure you are working with a null-terminated string, use the length macros, if not, use the correctly computed length.

    From 85fab200867f1adf87f0102452be5bc96aa48774 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Thu, 12 May 2022 12:49:02 +0200 Subject: [PATCH 015/736] Add Expr::getUnderlyingExpr predicate --- .../change-notes/2022-05-12-get-underlying-expr.md | 4 ++++ java/ql/lib/semmle/code/java/Expr.qll | 12 ++++++++++++ .../security/CleartextStorageSharedPrefsQuery.qll | 4 ++-- .../code/java/security/UnsafeAndroidAccess.qll | 5 ++++- 4 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 java/ql/lib/change-notes/2022-05-12-get-underlying-expr.md diff --git a/java/ql/lib/change-notes/2022-05-12-get-underlying-expr.md b/java/ql/lib/change-notes/2022-05-12-get-underlying-expr.md new file mode 100644 index 00000000000..f24c9379abb --- /dev/null +++ b/java/ql/lib/change-notes/2022-05-12-get-underlying-expr.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* The QL predicate `Expr::getUnderlyingExpr` has been added. It can be used to look through casts and not-null expressions and obtain the underlying expression to which they apply. diff --git a/java/ql/lib/semmle/code/java/Expr.qll b/java/ql/lib/semmle/code/java/Expr.qll index 48023e135af..2c969a8d442 100755 --- a/java/ql/lib/semmle/code/java/Expr.qll +++ b/java/ql/lib/semmle/code/java/Expr.qll @@ -100,6 +100,18 @@ class Expr extends ExprParent, @expr { /** Holds if this expression is parenthesized. */ predicate isParenthesized() { isParenthesized(this, _) } + + /** + * Gets the underlying expression looking through casts and not-nulls, if any. + * Otherwise just gets this expression. + */ + Expr getUnderlyingExpr() { + if this instanceof CastingExpr or this instanceof NotNullExpr + then + result = this.(CastingExpr).getExpr().getUnderlyingExpr() or + result = this.(NotNullExpr).getExpr().getUnderlyingExpr() + else result = this + } } /** diff --git a/java/ql/lib/semmle/code/java/security/CleartextStorageSharedPrefsQuery.qll b/java/ql/lib/semmle/code/java/security/CleartextStorageSharedPrefsQuery.qll index 30a8ffc3a12..e67a2d1aa21 100644 --- a/java/ql/lib/semmle/code/java/security/CleartextStorageSharedPrefsQuery.qll +++ b/java/ql/lib/semmle/code/java/security/CleartextStorageSharedPrefsQuery.qll @@ -51,7 +51,7 @@ private predicate sharedPreferencesInput(DataFlow::Node editor, Expr input) { exists(MethodAccess m | m.getMethod() instanceof PutSharedPreferenceMethod and input = m.getArgument(1) and - editor.asExpr() = m.getQualifier() + editor.asExpr() = m.getQualifier().getUnderlyingExpr() ) } @@ -61,7 +61,7 @@ private predicate sharedPreferencesInput(DataFlow::Node editor, Expr input) { */ private predicate sharedPreferencesStore(DataFlow::Node editor, MethodAccess m) { m.getMethod() instanceof StoreSharedPreferenceMethod and - editor.asExpr() = m.getQualifier() + editor.asExpr() = m.getQualifier().getUnderlyingExpr() } /** Flow from `SharedPreferences.Editor` to either a setter or a store method. */ diff --git a/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccess.qll b/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccess.qll index 176b093b68a..ba162ede986 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccess.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccess.qll @@ -75,6 +75,8 @@ private predicate webViewLoadUrl(Argument urlArg, WebViewRef webview) { loadUrl.getArgument(0) = urlArg and loadUrl.getMethod() instanceof WebViewLoadUrlMethod | + webview.getAnAccess() = DataFlow::exprNode(loadUrl.getQualifier().getUnderlyingExpr()) + or webview.getAnAccess() = DataFlow::getInstanceArgument(loadUrl) or // `webview` is received as a parameter of an event method in a custom `WebViewClient`, @@ -82,8 +84,9 @@ private predicate webViewLoadUrl(Argument urlArg, WebViewRef webview) { exists(WebViewClientEventMethod eventMethod, MethodAccess setWebClient | setWebClient.getMethod() instanceof WebViewSetWebViewClientMethod and setWebClient.getArgument(0).getType() = eventMethod.getDeclaringType() and - loadUrl.getQualifier() = eventMethod.getWebViewParameter().getAnAccess() + loadUrl.getQualifier().getUnderlyingExpr() = eventMethod.getWebViewParameter().getAnAccess() | + webview.getAnAccess() = DataFlow::exprNode(setWebClient.getQualifier().getUnderlyingExpr()) or webview.getAnAccess() = DataFlow::getInstanceArgument(setWebClient) ) ) From f0b90b391f2ed866cda8df311835b8a06051d869 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Fri, 13 May 2022 17:55:55 +0200 Subject: [PATCH 016/736] Add Kotlin test for CleartextStorageSharedPrefs --- .../CWE-312/CleartextStorageSharedPrefsTestKt.kt | 11 +++++++++++ java/ql/test/query-tests/security/CWE-312/options | 1 + 2 files changed, 12 insertions(+) create mode 100644 java/ql/test/query-tests/security/CWE-312/CleartextStorageSharedPrefsTestKt.kt diff --git a/java/ql/test/query-tests/security/CWE-312/CleartextStorageSharedPrefsTestKt.kt b/java/ql/test/query-tests/security/CWE-312/CleartextStorageSharedPrefsTestKt.kt new file mode 100644 index 00000000000..f2f18eaeb0a --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-312/CleartextStorageSharedPrefsTestKt.kt @@ -0,0 +1,11 @@ +import android.app.Activity +import android.content.Context +import android.content.SharedPreferences + +class CleartextStorageSharedPrefsTestKt : Activity() { + fun testSetSharedPrefs1(context: Context, name: String, password: String) { + val sharedPrefs = context.getSharedPreferences("user_prefs", Context.MODE_PRIVATE); + sharedPrefs.edit().putString("name", name).apply(); // Safe + sharedPrefs.edit().putString("password", password).apply(); // $ hasCleartextStorageSharedPrefs + } +} diff --git a/java/ql/test/query-tests/security/CWE-312/options b/java/ql/test/query-tests/security/CWE-312/options index f017f81ff2f..93845c4b2a8 100644 --- a/java/ql/test/query-tests/security/CWE-312/options +++ b/java/ql/test/query-tests/security/CWE-312/options @@ -1 +1,2 @@ // semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/google-android-9.0.0 +// codeql-extractor-kotlin-options: ${testdir}/../../../stubs/google-android-9.0.0 From 9c941dc7ab54249ca88cf66fdbdcf56daec3b0f6 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 24 May 2022 10:51:31 +0200 Subject: [PATCH 017/736] Add Kotlin test for UnsafeAndroidAccess --- .../security/CWE-749/AndroidManifest.xml | 1 + .../security/CWE-749/UnsafeActivityKt.kt | 20 +++++++++++++++++++ .../test/query-tests/security/CWE-749/options | 3 ++- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 java/ql/test/query-tests/security/CWE-749/UnsafeActivityKt.kt diff --git a/java/ql/test/query-tests/security/CWE-749/AndroidManifest.xml b/java/ql/test/query-tests/security/CWE-749/AndroidManifest.xml index b215e4d3466..79d79d0cd10 100755 --- a/java/ql/test/query-tests/security/CWE-749/AndroidManifest.xml +++ b/java/ql/test/query-tests/security/CWE-749/AndroidManifest.xml @@ -44,6 +44,7 @@ + diff --git a/java/ql/test/query-tests/security/CWE-749/UnsafeActivityKt.kt b/java/ql/test/query-tests/security/CWE-749/UnsafeActivityKt.kt new file mode 100644 index 00000000000..d20845f5c77 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-749/UnsafeActivityKt.kt @@ -0,0 +1,20 @@ +package com.example.app + +import android.app.Activity +import android.os.Bundle +import android.webkit.WebSettings +import android.webkit.WebView +import android.webkit.WebViewClient + +class UnsafeActivityKt : Activity() { + override fun onCreate(savedInstanceState : Bundle) { + + val wv = findViewById(-1) + // Implicit not-nulls happening here + wv.settings.setJavaScriptEnabled(true) + wv.settings.setAllowFileAccessFromFileURLs(true) + + val thisUrl : String = intent.extras.getString("url") + wv.loadUrl(thisUrl) // $ hasUnsafeAndroidAccess + } +} diff --git a/java/ql/test/query-tests/security/CWE-749/options b/java/ql/test/query-tests/security/CWE-749/options index d6a9adcece3..49f527db1db 100644 --- a/java/ql/test/query-tests/security/CWE-749/options +++ b/java/ql/test/query-tests/security/CWE-749/options @@ -1 +1,2 @@ -//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/android +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/google-android-9.0.0 +//codeql-extractor-kotlin-options: ${testdir}/../../../stubs/google-android-9.0.0 From b715a6b63b31a6544870e62974fce9ac31444e4f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 26 May 2022 09:06:13 +0100 Subject: [PATCH 018/736] Swift: Add test containing local declarations. --- .../controlflow/graph/Cfg.expected | 96 +++++++++++++++++++ .../library-tests/controlflow/graph/cfg.swift | 37 +++++++ 2 files changed, 133 insertions(+) diff --git a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected index 181ae94bf32..09a945976a0 100644 --- a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -4785,3 +4785,99 @@ cfg.swift: # 405| DeclRefExpr #-----| -> TupleExpr + +# 410| TBD (YieldStmt) +#-----| -> exit AccessorDecl (normal) + +# 410| enter AccessorDecl + +# 410| enter AccessorDecl + +# 410| enter AccessorDecl +#-----| -> TBD (YieldStmt) + +# 410| exit AccessorDecl + +# 410| exit AccessorDecl + +# 410| exit AccessorDecl + +# 410| exit AccessorDecl (normal) +#-----| -> exit AccessorDecl + +# 410| exit AccessorDecl (normal) +#-----| -> exit AccessorDecl + +# 410| exit AccessorDecl (normal) +#-----| -> exit AccessorDecl + +# 411| enter ConstructorDecl +#-----| -> DeclRefExpr + +# 411| exit ConstructorDecl + +# 411| exit ConstructorDecl (normal) +#-----| -> exit ConstructorDecl + +# 412| DeclRefExpr +#-----| -> MemberRefExpr + +# 412| MemberRefExpr +#-----| -> IntegerLiteralExpr + +# 412| AssignExpr +#-----| -> ReturnStmt + +# 412| IntegerLiteralExpr +#-----| -> AssignExpr + +# 413| ReturnStmt +#-----| return -> exit ConstructorDecl (normal) + +# 417| TBD (YieldStmt) +#-----| -> exit AccessorDecl (normal) + +# 417| enter AccessorDecl + +# 417| enter AccessorDecl + +# 417| enter AccessorDecl +#-----| -> TBD (YieldStmt) + +# 417| exit AccessorDecl + +# 417| exit AccessorDecl + +# 417| exit AccessorDecl + +# 417| exit AccessorDecl (normal) +#-----| -> exit AccessorDecl + +# 417| exit AccessorDecl (normal) +#-----| -> exit AccessorDecl + +# 417| exit AccessorDecl (normal) +#-----| -> exit AccessorDecl + +# 418| enter ConstructorDecl +#-----| -> DeclRefExpr + +# 418| exit ConstructorDecl + +# 418| exit ConstructorDecl (normal) +#-----| -> exit ConstructorDecl + +# 419| DeclRefExpr +#-----| -> MemberRefExpr + +# 419| MemberRefExpr +#-----| -> IntegerLiteralExpr + +# 419| AssignExpr +#-----| -> ReturnStmt + +# 419| IntegerLiteralExpr +#-----| -> AssignExpr + +# 420| ReturnStmt +#-----| return -> exit ConstructorDecl (normal) diff --git a/swift/ql/test/library-tests/controlflow/graph/cfg.swift b/swift/ql/test/library-tests/controlflow/graph/cfg.swift index ae07cd05b71..9af52fce6c1 100644 --- a/swift/ql/test/library-tests/controlflow/graph/cfg.swift +++ b/swift/ql/test/library-tests/controlflow/graph/cfg.swift @@ -403,4 +403,41 @@ class Structors { func dictionaryLiteral(x: Int, y: Int) -> [String: Int] { return ["x": x, "y": y] +} + +func localDeclarations() -> Int { + class MyLocalClass { + var x: Int + init() { + x = 10 + } + } + + struct MyLocalStruct { + var x: Int + init() { + x = 10 + } + } + + enum MyLocalEnum { + case A + case B + } + + var myLocalVar : Int; + + // Error: declaration is only valid at file scope + // extension Int { + // func myExtensionMethod() -> Int { + // return self + // } + // } + + // protocol 'MyProtocol' cannot be nested inside another declaration + // protocol MyProtocol { + // func myMethod() + // } + + return 0 } \ No newline at end of file From df2c1972e9f120c984dfa7c4fe13f630c99940b0 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 26 May 2022 09:09:17 +0100 Subject: [PATCH 019/736] Swift: Add CFG trees for local declarations and accept test changes. --- .../internal/ControlFlowGraphImpl.qll | 8 + .../controlflow/graph/Cfg.expected | 139 ++++++++++++++++++ 2 files changed, 147 insertions(+) diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index cc89ab2f836..036e235c3d1 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -884,6 +884,14 @@ module Decls { ) } } + + private class AbstractFunctionDeclTree extends AstLeafTree { + override AbstractFunctionDecl ast; + } + + private class TypeDeclTree extends AstLeafTree { + override TypeDecl ast; + } } module Exprs { diff --git a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected index 09a945976a0..9de7bce1b0b 100644 --- a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -357,6 +357,17 @@ cfg.swift: # 46| ClosureExpr #-----| -> ReturnStmt +# 51| enter ConcreteFuncDecl +#-----| -> ConcreteFuncDecl + +# 51| exit ConcreteFuncDecl + +# 51| exit ConcreteFuncDecl (normal) +#-----| -> exit ConcreteFuncDecl + +# 52| ConcreteFuncDecl +#-----| -> DeclRefExpr + # 52| enter ConcreteFuncDecl #-----| -> DeclRefExpr @@ -387,6 +398,12 @@ cfg.swift: # 53| DeclRefExpr #-----| -> BinaryExpr +# 55| ReturnStmt +#-----| return -> exit ConcreteFuncDecl (normal) + +# 55| DeclRefExpr +#-----| -> ReturnStmt + # 58| enter ConcreteFuncDecl #-----| -> ClosureExpr @@ -611,10 +628,16 @@ cfg.swift: # 81| enter ConcreteFuncDecl #-----| -> NamedPattern +# 81| exit ConcreteFuncDecl + +# 81| exit ConcreteFuncDecl (normal) +#-----| -> exit ConcreteFuncDecl + # 82| PatternBindingDecl #-----| -> ConcreteVarDecl # 82| ConcreteVarDecl +#-----| -> ConcreteFuncDecl # 82| NamedPattern #-----| -> IntegerLiteralExpr @@ -622,6 +645,9 @@ cfg.swift: # 82| IntegerLiteralExpr #-----| -> PatternBindingDecl +# 84| ConcreteFuncDecl +#-----| -> ConcreteFuncDecl + # 84| enter ConcreteFuncDecl #-----| -> DeclRefExpr @@ -658,6 +684,9 @@ cfg.swift: # 85| IntegerLiteralExpr #-----| -> BinaryExpr +# 88| ConcreteFuncDecl +#-----| -> DeclRefExpr + # 88| enter ConcreteFuncDecl #-----| -> DeclRefExpr @@ -675,6 +704,81 @@ cfg.swift: # 89| NilLiteralExpr #-----| -> AssignExpr +# 92| DeclRefExpr +#-----| -> DeclRefExpr + +# 92| CallExpr +#-----| exception -> exit ConcreteFuncDecl (normal) +#-----| -> NamedPattern + +# 92| InOutExpr +#-----| -> CallExpr + +# 92| DeclRefExpr +#-----| -> InOutExpr + +# 93| PatternBindingDecl +#-----| -> ConcreteVarDecl + +# 93| ConcreteVarDecl +#-----| -> DeclRefExpr + +# 93| NamedPattern +#-----| -> TypedPattern + +# 93| TypedPattern +#-----| -> IntegerLiteralExpr + +# 93| InjectIntoOptionalExpr +#-----| -> PatternBindingDecl + +# 93| IntegerLiteralExpr +#-----| -> InjectIntoOptionalExpr + +# 94| DeclRefExpr +#-----| -> DeclRefExpr + +# 94| CallExpr +#-----| exception -> exit ConcreteFuncDecl (normal) +#-----| -> DeclRefExpr + +# 94| InOutExpr +#-----| -> CallExpr + +# 94| DeclRefExpr +#-----| -> InOutExpr + +# 95| ReturnStmt +#-----| return -> exit ConcreteFuncDecl (normal) + +# 95| DeclRefExpr +#-----| -> LoadExpr + +# 95| LoadExpr +#-----| -> DeclRefExpr + +# 95| BinaryExpr +#-----| -> ReturnStmt + +# 95| DeclRefExpr +#-----| -> TypeExpr + +# 95| DotSyntaxCallExpr +#-----| exception -> exit ConcreteFuncDecl (normal) +#-----| -> DeclRefExpr + +# 95| TypeExpr +#-----| -> DotSyntaxCallExpr + +# 95| DeclRefExpr +#-----| -> LoadExpr + +# 95| LoadExpr +#-----| -> ForceValueExpr + +# 95| ForceValueExpr +#-----| -> BinaryExpr + # 99| enter AccessorDecl # 99| exit AccessorDecl @@ -4786,6 +4890,17 @@ cfg.swift: # 405| DeclRefExpr #-----| -> TupleExpr +# 408| enter ConcreteFuncDecl +#-----| -> ClassDecl + +# 408| exit ConcreteFuncDecl + +# 408| exit ConcreteFuncDecl (normal) +#-----| -> exit ConcreteFuncDecl + +# 409| ClassDecl +#-----| -> StructDecl + # 410| TBD (YieldStmt) #-----| -> exit AccessorDecl (normal) @@ -4834,6 +4949,9 @@ cfg.swift: # 413| ReturnStmt #-----| return -> exit ConstructorDecl (normal) +# 416| StructDecl +#-----| -> EnumDecl + # 417| TBD (YieldStmt) #-----| -> exit AccessorDecl (normal) @@ -4881,3 +4999,24 @@ cfg.swift: # 420| ReturnStmt #-----| return -> exit ConstructorDecl (normal) + +# 423| EnumDecl +#-----| -> NamedPattern + +# 428| PatternBindingDecl +#-----| -> ConcreteVarDecl + +# 428| ConcreteVarDecl +#-----| -> IntegerLiteralExpr + +# 428| NamedPattern +#-----| -> TypedPattern + +# 428| TypedPattern +#-----| -> PatternBindingDecl + +# 442| ReturnStmt +#-----| return -> exit ConcreteFuncDecl (normal) + +# 442| IntegerLiteralExpr +#-----| -> ReturnStmt From 872dd0d59f8a34c39825d05d743bd9a445240365 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Thu, 2 Jun 2022 14:33:06 +0300 Subject: [PATCH 020/736] Update DangerousUseMbtowc.expected --- .../semmle/tests/DangerousUseMbtowc.expected | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected index 463515526da..89feb7bf82e 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected @@ -1,8 +1,8 @@ -| test.cpp:61:27:61:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | -| test.cpp:70:27:70:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | -| test.cpp:98:11:98:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:114:11:114:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:130:11:130:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:147:11:147:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:169:11:169:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:185:11:185:16 | call to mbtowc | Maybe you're using the function's return value incorrectly. | +| test.cpp:66:27:66:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | +| test.cpp:76:27:76:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | +| test.cpp:106:11:106:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:123:11:123:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:140:11:140:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:158:11:158:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:181:11:181:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:197:11:197:16 | call to mbtowc | Maybe you're using the function's return value incorrectly. | From 77e4d05ea344a131a7d7a39061056db62dcd962a Mon Sep 17 00:00:00 2001 From: ihsinme Date: Thu, 2 Jun 2022 14:33:59 +0300 Subject: [PATCH 021/736] Update test.cpp --- .../CWE/CWE-125/semmle/tests/test.cpp | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test.cpp b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test.cpp index 3945f46103e..b5e8096af2a 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test.cpp +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test.cpp @@ -14,6 +14,7 @@ void goodTest0() len = 9; for (wchar_t wc; (ret = mbtowc(&wc, ptr, len)) > 0; len-=ret) { // GOOD wprintf(L"%lc", wc); + ptr += ret; } } void goodTest1(const char* ptr) @@ -23,6 +24,7 @@ void goodTest1(const char* ptr) len = strlen(ptr); for (wchar_t wc; (ret = mbtowc(&wc, ptr, len)) > 0; len-=ret) { // GOOD wprintf(L"%lc", wc); + ptr += ret; } } void goodTest2(char* ptr) @@ -32,6 +34,7 @@ void goodTest2(char* ptr) int len = 9; for (wchar_t wc; (ret = mbtowc(&wc, ptr, 16)) > 0; len-=ret) { // GOOD wprintf(L"%lc", wc); + ptr += ret; } } @@ -42,6 +45,7 @@ void goodTest3(const char* ptr) len = strlen(ptr); for (wchar_t wc; (ret = mbtowc(&wc, ptr, MB_CUR_MAX)) > 0; len-=ret) { // GOOD wprintf(L"%lc", wc); + ptr += ret; } } void goodTest4(const char* ptr) @@ -51,6 +55,7 @@ void goodTest4(const char* ptr) len = strlen(ptr); for (wchar_t wc; (ret = mbtowc(&wc, ptr, MB_LEN_MAX)) > 0; len-=ret) { // GOOD wprintf(L"%lc", wc); + ptr += ret; } } void badTest1(const char* ptr) @@ -60,6 +65,7 @@ void badTest1(const char* ptr) len = strlen(ptr); for (wchar_t wc; (ret = mbtowc(&wc, ptr, 4)) > 0; len-=ret) { // BAD:we can get unpredictable results wprintf(L"%lc", wc); + ptr += ret; } } void badTest2(const char* ptr) @@ -69,6 +75,7 @@ void badTest2(const char* ptr) len = strlen(ptr); for (wchar_t wc; (ret = mbtowc(&wc, ptr, sizeof(wchar_t))) > 0; len-=ret) { // BAD:we can get unpredictable results wprintf(L"%lc", wc); + ptr += ret; } } @@ -89,11 +96,12 @@ void goodTest5(const char* ptr,wchar_t *wc,int wc_len) } } -void badTest3(const char* ptr,wchar_t *wc,int wc_len) +void badTest3(const char* ptr,int wc_len) { int ret; int len; len = wc_len; + wchar_t *wc = new wchar_t[wc_len]; while (*ptr && len > 0) { ret = mbtowc(wc, ptr, MB_CUR_MAX); // BAD if (ret <0) @@ -105,11 +113,12 @@ void badTest3(const char* ptr,wchar_t *wc,int wc_len) wc++; } } -void badTest4(const char* ptr,wchar_t *wc,int wc_len) +void badTest4(const char* ptr,int wc_len) { int ret; int len; len = wc_len; + wchar_t *wc = new wchar_t[wc_len]; while (*ptr && len > 0) { ret = mbtowc(wc, ptr, 16); // BAD if (ret <0) @@ -121,11 +130,12 @@ void badTest4(const char* ptr,wchar_t *wc,int wc_len) wc++; } } -void badTest5(const char* ptr,wchar_t *wc,int wc_len) +void badTest5(const char* ptr,int wc_len) { int ret; int len; len = wc_len; + wchar_t *wc = new wchar_t[wc_len]; while (*ptr && len > 0) { ret = mbtowc(wc, ptr, sizeof(wchar_t)); // BAD if (ret <0) @@ -138,11 +148,12 @@ void badTest5(const char* ptr,wchar_t *wc,int wc_len) } } -void badTest6(const char* ptr,wchar_t *wc,int wc_len) +void badTest6(const char* ptr,int wc_len) { int ret; int len; len = wc_len; + wchar_t *wc = new wchar_t[wc_len]; while (*ptr && wc_len > 0) { ret = mbtowc(wc, ptr, wc_len); // BAD if (ret <0) @@ -160,11 +171,12 @@ void badTest6(const char* ptr,wchar_t *wc,int wc_len) ptr+=ret; } } -void badTest7(const char* ptr,wchar_t *wc,int wc_len) +void badTest7(const char* ptr,int wc_len) { int ret; int len; len = wc_len; + wchar_t *wc = new wchar_t[wc_len]; while (*ptr && wc_len > 0) { ret = mbtowc(wc, ptr, len); // BAD if (ret <0) From 9d12f1be53c4f1a5a7d42d2e384e91fbe8509002 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Thu, 2 Jun 2022 14:34:38 +0300 Subject: [PATCH 022/736] Update DangerousUseMbtowc.ql --- .../experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql index 0940c899312..2b668025794 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql @@ -19,7 +19,10 @@ predicate exprMayBeString(Expr exp) { exists(StringLiteral sl | globalValueNumber(exp) = globalValueNumber(sl)) or exists(FunctionCall fctmp | - globalValueNumber(fctmp.getAnArgument()) = globalValueNumber(exp) and + ( + fctmp.getAnArgument().(VariableAccess).getTarget() = exp.(VariableAccess).getTarget() or + globalValueNumber(fctmp.getAnArgument()) = globalValueNumber(exp) + ) and fctmp.getTarget().hasGlobalOrStdName(["strlen", "strcat", "strncat", "strcpy", "sptintf"]) ) or From c012c235c6efb1628ed75c7fb3d7594ddd51f544 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 14 Jun 2022 01:06:39 +0000 Subject: [PATCH 023/736] rough draft of check request verb query --- .../ManuallyCheckHttpVerb.ql | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql diff --git a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql new file mode 100644 index 00000000000..ab71ba45d46 --- /dev/null +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -0,0 +1,78 @@ +/** + * @name Manually checking http verb instead of using built in rails routes and protections + * @description 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 mappting resources and verbs to specific methods. + * @kind problem + * @problem.severity error + * @security-severity 7.0 + * @precision medium + * @id rb/manually-checking-http-verb + * @tags security + */ + +import ruby +import codeql.ruby.DataFlow + +class ManuallyCheckHttpVerb extends DataFlow::CallNode { + ManuallyCheckHttpVerb() { + this instanceof CheckGetRequest or + this instanceof CheckPostRequest or + this instanceof CheckPatchRequest or + this instanceof CheckPostRequest or + this instanceof CheckDeleteRequest or + this instanceof CheckHeadRequest or + this.asExpr().getExpr() instanceof CheckRequestMethodFromEnv + } +} + +class CheckRequestMethodFromEnv extends ComparisonOperation { + CheckRequestMethodFromEnv() { + this.getAnOperand() instanceof GetRequestMethodFromEnv + } +} + +class GetRequestMethodFromEnv extends ElementReference { + GetRequestMethodFromEnv() { + this.getAChild+().toString() = "REQUEST_METHOD" // and + // this.getReceiver().toString() = "env" + } +} + +class CheckGetRequest extends DataFlow::CallNode { + CheckGetRequest() { + this.getMethodName() = "get?" + } +} + +class CheckPostRequest extends DataFlow::CallNode { + CheckPostRequest() { + this.getMethodName() = "post?" + } +} + +class CheckPutRequest extends DataFlow::CallNode { + CheckPutRequest() { + this.getMethodName() = "put?" + } +} + +class CheckPatchRequest extends DataFlow::CallNode { + CheckPatchRequest() { + this.getMethodName() = "patch?" + } +} + +class CheckDeleteRequest extends DataFlow::CallNode { + CheckDeleteRequest() { + this.getMethodName() = "delete?" + } +} + +class CheckHeadRequest extends DataFlow::CallNode { + CheckHeadRequest() { + this.getMethodName() = "head?" + } +} + +from ManuallyCheckHttpVerb check +where check.asExpr().getExpr().getAControlFlowNode().isCondition() +select check, "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 mappting resources and verbs to specific methods." \ No newline at end of file From 7bdec98e6f73764028038476dc8c2c14d51e99f5 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 14 Jun 2022 02:13:15 +0000 Subject: [PATCH 024/736] draft tests --- .../ExampleController.rb | 51 +++++++++++++++++++ .../ManuallyCheckHttpVerb.qlref | 1 + .../manually-check-http-verb/NotController.rb | 28 ++++++++++ 3 files changed, 80 insertions(+) create mode 100644 ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb create mode 100644 ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.qlref create mode 100644 ruby/ql/test/query-tests/security/manually-check-http-verb/NotController.rb diff --git a/ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb b/ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb new file mode 100644 index 00000000000..a67d4e5306a --- /dev/null +++ b/ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb @@ -0,0 +1,51 @@ +class ExampleController < ActionController::Base + # This function should have 6 vulnerable lines + def example_action + if request.get? + Example.find(params[:example_id]) + elsif request.post? + Example.new(params[:example_name], params[:example_details]) + elsif request.delete? + example = Example.find(params[:example_id]) + example.delete + elsif request.put? + Example.upsert(params[:example_name], params[:example_details]) + elsif request.path? + Example.update(params[:example_name], params[:example_details]) + elsif request.head? + "This is the endpoint for the Example resource." + end + end +end + +class ResourceController < ActionController::Base + # This method should have 1 vulnerable line + def resource_action + case env['REQUEST_METHOD'] + when "GET" + Resource.find(params[:id]) + when "POST" + Resource.new(params[:id], params[:details]) + end + end +end + +class SafeController < ActionController::Base + # this method should have no hits because controllers rely on conventional Rails routes + def index + Safe.find(params[:id]) + end + + def create + Safe.new(params[:id], params[:details]) + end + + def update + Safe.update(params[:id], params[:details]) + end + + def delete + s = Safe.find(params[:id]) + s.delete + end +end \ No newline at end of file diff --git a/ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.qlref b/ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.qlref new file mode 100644 index 00000000000..463c21cd0f2 --- /dev/null +++ b/ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.qlref @@ -0,0 +1 @@ +experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql \ No newline at end of file diff --git a/ruby/ql/test/query-tests/security/manually-check-http-verb/NotController.rb b/ruby/ql/test/query-tests/security/manually-check-http-verb/NotController.rb new file mode 100644 index 00000000000..81a73d72410 --- /dev/null +++ b/ruby/ql/test/query-tests/security/manually-check-http-verb/NotController.rb @@ -0,0 +1,28 @@ +# There should be no hits from this class because it does not inherit from ActionController +class NotAController + def example_action + if request.get? + Example.find(params[:example_id]) + elsif request.post? + Example.new(params[:example_name], params[:example_details]) + elsif request.delete? + example = Example.find(params[:example_id]) + example.delete + elsif request.put? + Example.upsert(params[:example_name], params[:example_details]) + elsif request.path? + Example.update(params[:example_name], params[:example_details]) + elsif request.head? + "This is the endpoint for the Example resource." + end + end + + def resource_action + case env['REQUEST_METHOD'] + when "GET" + Resource.find(params[:id]) + when "POST" + Resource.new(params[:id], params[:details]) + end + end +end \ No newline at end of file From 6bef71ea2ca8960082507da96b1967265fb3f943 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 14 Jun 2022 02:17:12 +0000 Subject: [PATCH 025/736] tweaks to tests --- .../manually-check-http-verb/ExampleController.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb b/ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb index a67d4e5306a..c3e913367b8 100644 --- a/ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb +++ b/ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb @@ -18,8 +18,16 @@ class ExampleController < ActionController::Base end end +class OtherController < ActionController::Base + def other_action + if env['REQUEST_METHOD'] == "GET" + Other.find(params[:id]) + end + end +end + class ResourceController < ActionController::Base - # This method should have 1 vulnerable line + # This method should have 1 vulnerable line, but is currently failing because it's not a comparison node def resource_action case env['REQUEST_METHOD'] when "GET" From 92d1c84f051e35fb4006244088852ca519bf5066 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Tue, 14 Jun 2022 13:22:09 +0200 Subject: [PATCH 026/736] bind the result in JsonValue::getBooleanValue --- javascript/ql/lib/semmle/javascript/JSON.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/JSON.qll b/javascript/ql/lib/semmle/javascript/JSON.qll index d474965051e..8230099818c 100644 --- a/javascript/ql/lib/semmle/javascript/JSON.qll +++ b/javascript/ql/lib/semmle/javascript/JSON.qll @@ -54,7 +54,9 @@ class JsonValue extends @json_value, Locatable { int getIntValue() { result = this.(JsonNumber).getValue().toInt() } /** If this is a boolean constant, gets its boolean value. */ - boolean getBooleanValue() { result.toString() = this.(JsonBoolean).getValue() } + boolean getBooleanValue() { + result.toString() = this.(JsonBoolean).getValue() and result = [true, false] + } override string getAPrimaryQlClass() { result = "JsonValue" } } From cb0a6936adb154a1c1361154d9bf36b7a5d16bfb Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Tue, 14 Jun 2022 13:31:47 +0200 Subject: [PATCH 027/736] add support for the "exports" property in a package.json --- .../javascript/NodeModuleResolutionImpl.qll | 9 ++++++++- .../ReDoS/PolynomialBackTracking.expected | 2 ++ .../Performance/ReDoS/PolynomialReDoS.expected | 18 ++++++++++++++++++ .../Performance/ReDoS/lib/subLib5/feature.js | 3 +++ .../Performance/ReDoS/lib/subLib5/main.js | 3 +++ .../Performance/ReDoS/lib/subLib5/package.json | 11 +++++++++++ 6 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/feature.js create mode 100644 javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/main.js create mode 100644 javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/package.json diff --git a/javascript/ql/lib/semmle/javascript/NodeModuleResolutionImpl.qll b/javascript/ql/lib/semmle/javascript/NodeModuleResolutionImpl.qll index 70f27ccb12d..e264a78f230 100644 --- a/javascript/ql/lib/semmle/javascript/NodeModuleResolutionImpl.qll +++ b/javascript/ql/lib/semmle/javascript/NodeModuleResolutionImpl.qll @@ -148,7 +148,11 @@ private string getASrcFolderName() { result = ["ts", "js", "src", "lib"] } class MainModulePath extends PathExpr, @json_string { PackageJson pkg; - MainModulePath() { this = pkg.getPropValue(["main", "module"]) } + MainModulePath() { + this = pkg.getPropValue(["main", "module"]) + or + this = getAJsonChild*(pkg.getPropValue("exports")) + } /** Gets the `package.json` file in which this path occurs. */ PackageJson getPackageJson() { result = pkg } @@ -164,6 +168,9 @@ class MainModulePath extends PathExpr, @json_string { } } +/** Gets the value of a property from the JSON object `obj`. */ +private JsonValue getAJsonChild(JsonObject obj) { result = obj.getPropValue(_) } + module MainModulePath { MainModulePath of(PackageJson pkg) { result.getPackageJson() = pkg } } diff --git a/javascript/ql/test/query-tests/Performance/ReDoS/PolynomialBackTracking.expected b/javascript/ql/test/query-tests/Performance/ReDoS/PolynomialBackTracking.expected index 96919f8717d..7df8bece899 100644 --- a/javascript/ql/test/query-tests/Performance/ReDoS/PolynomialBackTracking.expected +++ b/javascript/ql/test/query-tests/Performance/ReDoS/PolynomialBackTracking.expected @@ -38,6 +38,8 @@ | lib/snapdragon.js:15:26:15:27 | a* | Strings starting with 'a' and with many repetitions of 'a' can start matching anywhere after the start of the preceeding aa*$ | | lib/snapdragon.js:23:22:23:23 | a* | Strings starting with 'a' and with many repetitions of 'a' can start matching anywhere after the start of the preceeding aa*$ | | lib/subLib4/factory.js:8:3:8:4 | f* | Strings with many repetitions of 'f' can start matching anywhere after the start of the preceeding f*g | +| lib/subLib5/feature.js:2:3:2:4 | a* | Strings with many repetitions of 'a' can start matching anywhere after the start of the preceeding a*b | +| lib/subLib5/main.js:2:3:2:4 | a* | Strings with many repetitions of 'a' can start matching anywhere after the start of the preceeding a*b | | lib/sublib/factory.js:13:14:13:15 | f* | Strings with many repetitions of 'f' can start matching anywhere after the start of the preceeding f*g | | polynomial-redos.js:7:24:7:26 | \\s+ | Strings with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s+$ | | polynomial-redos.js:8:17:8:18 | * | Strings with many repetitions of ' ' can start matching anywhere after the start of the preceeding *, * | diff --git a/javascript/ql/test/query-tests/Performance/ReDoS/PolynomialReDoS.expected b/javascript/ql/test/query-tests/Performance/ReDoS/PolynomialReDoS.expected index dccfcc03ed3..d03213a37d0 100644 --- a/javascript/ql/test/query-tests/Performance/ReDoS/PolynomialReDoS.expected +++ b/javascript/ql/test/query-tests/Performance/ReDoS/PolynomialReDoS.expected @@ -51,6 +51,14 @@ nodes | lib/subLib4/factory.js:7:27:7:30 | name | | lib/subLib4/factory.js:8:13:8:16 | name | | lib/subLib4/factory.js:8:13:8:16 | name | +| lib/subLib5/feature.js:1:28:1:31 | name | +| lib/subLib5/feature.js:1:28:1:31 | name | +| lib/subLib5/feature.js:2:13:2:16 | name | +| lib/subLib5/feature.js:2:13:2:16 | name | +| lib/subLib5/main.js:1:28:1:31 | name | +| lib/subLib5/main.js:1:28:1:31 | name | +| lib/subLib5/main.js:2:13:2:16 | name | +| lib/subLib5/main.js:2:13:2:16 | name | | lib/sublib/factory.js:12:26:12:29 | name | | lib/sublib/factory.js:12:26:12:29 | name | | lib/sublib/factory.js:13:24:13:27 | name | @@ -256,6 +264,14 @@ edges | lib/subLib4/factory.js:7:27:7:30 | name | lib/subLib4/factory.js:8:13:8:16 | name | | lib/subLib4/factory.js:7:27:7:30 | name | lib/subLib4/factory.js:8:13:8:16 | name | | lib/subLib4/factory.js:7:27:7:30 | name | lib/subLib4/factory.js:8:13:8:16 | name | +| lib/subLib5/feature.js:1:28:1:31 | name | lib/subLib5/feature.js:2:13:2:16 | name | +| lib/subLib5/feature.js:1:28:1:31 | name | lib/subLib5/feature.js:2:13:2:16 | name | +| lib/subLib5/feature.js:1:28:1:31 | name | lib/subLib5/feature.js:2:13:2:16 | name | +| lib/subLib5/feature.js:1:28:1:31 | name | lib/subLib5/feature.js:2:13:2:16 | name | +| lib/subLib5/main.js:1:28:1:31 | name | lib/subLib5/main.js:2:13:2:16 | name | +| lib/subLib5/main.js:1:28:1:31 | name | lib/subLib5/main.js:2:13:2:16 | name | +| lib/subLib5/main.js:1:28:1:31 | name | lib/subLib5/main.js:2:13:2:16 | name | +| lib/subLib5/main.js:1:28:1:31 | name | lib/subLib5/main.js:2:13:2:16 | name | | lib/sublib/factory.js:12:26:12:29 | name | lib/sublib/factory.js:13:24:13:27 | name | | lib/sublib/factory.js:12:26:12:29 | name | lib/sublib/factory.js:13:24:13:27 | name | | lib/sublib/factory.js:12:26:12:29 | name | lib/sublib/factory.js:13:24:13:27 | name | @@ -418,6 +434,8 @@ edges | lib/snapdragon.js:15:13:15:30 | this.match(/aa*$/) | lib/snapdragon.js:12:34:12:38 | input | lib/snapdragon.js:15:13:15:16 | this | This $@ that depends on $@ may run slow on strings starting with 'a' and with many repetitions of 'a'. | lib/snapdragon.js:15:26:15:27 | a* | regular expression | lib/snapdragon.js:12:34:12:38 | input | library input | | lib/snapdragon.js:23:5:23:26 | node.va ... /aa*$/) | lib/snapdragon.js:20:34:20:38 | input | lib/snapdragon.js:23:5:23:12 | node.val | This $@ that depends on $@ may run slow on strings starting with 'a' and with many repetitions of 'a'. | lib/snapdragon.js:23:22:23:23 | a* | regular expression | lib/snapdragon.js:20:34:20:38 | input | library input | | lib/subLib4/factory.js:8:2:8:17 | /f*g/.test(name) | lib/subLib4/factory.js:7:27:7:30 | name | lib/subLib4/factory.js:8:13:8:16 | name | This $@ that depends on $@ may run slow on strings with many repetitions of 'f'. | lib/subLib4/factory.js:8:3:8:4 | f* | regular expression | lib/subLib4/factory.js:7:27:7:30 | name | library input | +| lib/subLib5/feature.js:2:2:2:17 | /a*b/.test(name) | lib/subLib5/feature.js:1:28:1:31 | name | lib/subLib5/feature.js:2:13:2:16 | name | This $@ that depends on $@ may run slow on strings with many repetitions of 'a'. | lib/subLib5/feature.js:2:3:2:4 | a* | regular expression | lib/subLib5/feature.js:1:28:1:31 | name | library input | +| lib/subLib5/main.js:2:2:2:17 | /a*b/.test(name) | lib/subLib5/main.js:1:28:1:31 | name | lib/subLib5/main.js:2:13:2:16 | name | This $@ that depends on $@ may run slow on strings with many repetitions of 'a'. | lib/subLib5/main.js:2:3:2:4 | a* | regular expression | lib/subLib5/main.js:1:28:1:31 | name | library input | | lib/sublib/factory.js:13:13:13:28 | /f*g/.test(name) | lib/sublib/factory.js:12:26:12:29 | name | lib/sublib/factory.js:13:24:13:27 | name | This $@ that depends on $@ may run slow on strings with many repetitions of 'f'. | lib/sublib/factory.js:13:14:13:15 | f* | regular expression | lib/sublib/factory.js:12:26:12:29 | name | library input | | polynomial-redos.js:7:2:7:34 | tainted ... /g, '') | polynomial-redos.js:5:16:5:32 | req.query.tainted | polynomial-redos.js:7:2:7:8 | tainted | This $@ that depends on $@ may run slow on strings with many repetitions of ' '. | polynomial-redos.js:7:24:7:26 | \\s+ | regular expression | polynomial-redos.js:5:16:5:32 | req.query.tainted | a user-provided value | | polynomial-redos.js:8:2:8:23 | tainted ... *, */) | polynomial-redos.js:5:16:5:32 | req.query.tainted | polynomial-redos.js:8:2:8:8 | tainted | This $@ that depends on $@ may run slow on strings with many repetitions of ' '. | polynomial-redos.js:8:17:8:18 | * | regular expression | polynomial-redos.js:5:16:5:32 | req.query.tainted | a user-provided value | diff --git a/javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/feature.js b/javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/feature.js new file mode 100644 index 00000000000..4326227e86b --- /dev/null +++ b/javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/feature.js @@ -0,0 +1,3 @@ +module.exports = function (name) { + /a*b/.test(name); // NOT OK +}; diff --git a/javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/main.js b/javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/main.js new file mode 100644 index 00000000000..4326227e86b --- /dev/null +++ b/javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/main.js @@ -0,0 +1,3 @@ +module.exports = function (name) { + /a*b/.test(name); // NOT OK +}; diff --git a/javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/package.json b/javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/package.json new file mode 100644 index 00000000000..f10fc5e5788 --- /dev/null +++ b/javascript/ql/test/query-tests/Performance/ReDoS/lib/subLib5/package.json @@ -0,0 +1,11 @@ +{ + "name": "my-sub-lib", + "version": "0.0.7", + "main": "./main.js", + "exports": { + ".": "./main.js", + "./feature": { + "default": "./feature.js" + } + } +} From 7b5d9ec7df7129aeae2d0bc596b09baa5d157f72 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Tue, 14 Jun 2022 14:59:59 +0200 Subject: [PATCH 028/736] python: Straight port of tarslip --- .../python/security/dataflow/TarSlip.qll | 29 +++ .../dataflow/TarSlipCustomizations.qll | 145 +++++++++++++++ python/ql/src/Security/CWE-022/TarSlip.ql | 170 +----------------- .../Security/CWE-022-TarSlip/options | 1 - 4 files changed, 179 insertions(+), 166 deletions(-) create mode 100644 python/ql/lib/semmle/python/security/dataflow/TarSlip.qll create mode 100644 python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll delete mode 100644 python/ql/test/query-tests/Security/CWE-022-TarSlip/options diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlip.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlip.qll new file mode 100644 index 00000000000..90c79da1f04 --- /dev/null +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlip.qll @@ -0,0 +1,29 @@ +/** + * Provides a taint-tracking configuration for detecting "command injection" vulnerabilities. + * + * Note, for performance reasons: only import this file if + * `TarSlip::Configuration` is needed, otherwise + * `TarSlipCustomizations` should be imported instead. + */ + +private import python +import semmle.python.dataflow.new.DataFlow +import semmle.python.dataflow.new.TaintTracking +import TarSlipCustomizations::TarSlip + +/** + * A taint-tracking configuration for detecting "command injection" vulnerabilities. + */ +class Configuration extends TaintTracking::Configuration { + Configuration() { this = "TarSlip" } + + override predicate isSource(DataFlow::Node source) { source instanceof Source } + + override predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } + + override predicate isSanitizerGuard(DataFlow::BarrierGuard guard) { + guard instanceof SanitizerGuard + } +} diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll new file mode 100644 index 00000000000..7393b129f37 --- /dev/null +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll @@ -0,0 +1,145 @@ +/** + * Provides default sources, sinks and sanitizers for detecting + * "tar slip" + * vulnerabilities, as well as extension points for adding your own. + */ + +private import python +private import semmle.python.dataflow.new.DataFlow +private import semmle.python.Concepts +private import semmle.python.dataflow.new.BarrierGuards +private import semmle.python.ApiGraphs + +/** + * Provides default sources, sinks and sanitizers for detecting + * "tar slip" + * vulnerabilities, as well as extension points for adding your own. + */ +module TarSlip { + /** + * A data flow source for "tar slip" vulnerabilities. + */ + abstract class Source extends DataFlow::Node { } + + /** + * A data flow sink for "tar slip" vulnerabilities. + */ + abstract class Sink extends DataFlow::Node { } + + /** + * A sanitizer for "tar slip" vulnerabilities. + */ + abstract class Sanitizer extends DataFlow::Node { } + + /** + * A sanitizer guard for "tar slip" vulnerabilities. + */ + abstract class SanitizerGuard extends DataFlow::BarrierGuard { } + + /** + * A source of exception info, considered as a flow source. + */ + class TarfileOpen extends Source { + TarfileOpen() { + this = API::moduleImport("tarfile").getMember("open").getACall() and + // If argument refers to a string object, then it's a hardcoded path and + // this tarfile is safe. + not this.(DataFlow::CallCfgNode).getArg(0).getALocalSource().asExpr() instanceof StrConst and + /* Ignore opens within the tarfile module itself */ + not this.getLocation().getFile().getBaseName() = "tarfile.py" + } + } + + /** + * For efficiency we don't want to track the flow of taint + * around the tarfile module. + */ + class ExcludeTarFilePy extends Sanitizer { + ExcludeTarFilePy() { this.getLocation().getFile().getBaseName() = "tarfile.py" } + } + + /** + * For a call to `file.extractall` without arguments, `file` is considered a sink. + */ + class ExtractAllSink extends Sink { + ExtractAllSink() { + exists(DataFlow::CallCfgNode call | + call = + API::moduleImport("tarfile") + .getMember("open") + .getReturn() + .getMember("extractall") + .getACall() and + not exists(call.getArg(_)) and + not exists(call.getArgByName(_)) and + this = call.(DataFlow::MethodCallNode).getObject() + ) + } + } + + /** + * An argument to `extract` is considered a sink. + */ + class ExtractSink extends Sink { + ExtractSink() { + exists(DataFlow::CallCfgNode call | + call = + API::moduleImport("tarfile").getMember("open").getReturn().getMember("extract").getACall() and + this = call.getArg(0) + ) + } + } + + /* Members argument to extract method */ + class ExtractMembersSink extends Sink { + ExtractMembersSink() { + exists(DataFlow::CallCfgNode call | + call = + API::moduleImport("tarfile") + .getMember("open") + .getReturn() + .getMember("extractall") + .getACall() and + this in [call.getArg(0), call.getArgByName("members")] + ) + } + } + + class TarFileInfoSanitizer extends SanitizerGuard { + ControlFlowNode tarInfo; + + TarFileInfoSanitizer() { + exists(CallNode call, AttrNode attr | + this = call and + // We must test the name of the tar info object. + attr = call.getAnArg() and + attr.getName() = "name" and + attr.getObject() = tarInfo + | + // Assume that any test with "path" in it is a sanitizer + call.getAChild*().(AttrNode).getName().matches("%path") + or + call.getAChild*().(NameNode).getId().matches("%path") + ) + } + + override predicate checks(ControlFlowNode checked, boolean branch) { + checked = tarInfo and + branch in [true, false] + } + + DataFlow::ExprNode shouldGuard() { + tarInfo.dominates(result.asCfgNode()) and + // exists(EssaDefinition def | + // def.getAUse() = tarInfo and + // def.getAUse() = result.asCfgNode() + // ) and + exists(SsaSourceVariable v | + v.getAUse() = tarInfo and + v.getAUse() = result.asCfgNode() + ) + } + } + + DataFlow::ExprNode getAGuardedNode(TarFileInfoSanitizer tfis) { result = tfis.getAGuardedNode() } +} diff --git a/python/ql/src/Security/CWE-022/TarSlip.ql b/python/ql/src/Security/CWE-022/TarSlip.ql index 76d799a0aca..1528be7377d 100644 --- a/python/ql/src/Security/CWE-022/TarSlip.ql +++ b/python/ql/src/Security/CWE-022/TarSlip.ql @@ -13,170 +13,10 @@ */ import python -import semmle.python.security.Paths -import semmle.python.dataflow.TaintTracking -import semmle.python.security.strings.Basic +import semmle.python.security.dataflow.TarSlip +import DataFlow::PathGraph -/** A TaintKind to represent open tarfile objects. That is, the result of calling `tarfile.open(...)` */ -class OpenTarFile extends TaintKind { - OpenTarFile() { this = "tarfile.open" } - - override TaintKind getTaintOfMethodResult(string name) { - name = "getmember" and result instanceof TarFileInfo - or - name = "getmembers" and result.(SequenceKind).getItem() instanceof TarFileInfo - } - - override ClassValue getType() { result = Value::named("tarfile.TarFile") } - - override TaintKind getTaintForIteration() { result instanceof TarFileInfo } -} - -/** The source of open tarfile objects. That is, any call to `tarfile.open(...)` */ -class TarfileOpen extends TaintSource { - TarfileOpen() { - Value::named("tarfile.open").getACall() = this and - /* - * If argument refers to a string object, then it's a hardcoded path and - * this tarfile is safe. - */ - - not this.(CallNode).getAnArg().pointsTo(any(StringValue str)) and - /* Ignore opens within the tarfile module itself */ - not this.(ControlFlowNode).getLocation().getFile().getBaseName() = "tarfile.py" - } - - override predicate isSourceOf(TaintKind kind) { kind instanceof OpenTarFile } -} - -class TarFileInfo extends TaintKind { - TarFileInfo() { this = "tarfile.entry" } - - override TaintKind getTaintOfMethodResult(string name) { name = "next" and result = this } - - override TaintKind getTaintOfAttribute(string name) { - name = "name" and result instanceof TarFileInfo - } -} - -/* - * For efficiency we don't want to track the flow of taint - * around the tarfile module. - */ - -class ExcludeTarFilePy extends Sanitizer { - ExcludeTarFilePy() { this = "Tar sanitizer" } - - override predicate sanitizingNode(TaintKind taint, ControlFlowNode node) { - node.getLocation().getFile().getBaseName() = "tarfile.py" and - ( - taint instanceof OpenTarFile - or - taint instanceof TarFileInfo - or - taint.(SequenceKind).getItem() instanceof TarFileInfo - ) - } -} - -/* Any call to an extractall method */ -class ExtractAllSink extends TaintSink { - ExtractAllSink() { - exists(CallNode call | - this = call.getFunction().(AttrNode).getObject("extractall") and - not exists(call.getAnArg()) - ) - } - - override predicate sinks(TaintKind kind) { kind instanceof OpenTarFile } -} - -/* Argument to extract method */ -class ExtractSink extends TaintSink { - CallNode call; - - ExtractSink() { - call.getFunction().(AttrNode).getName() = "extract" and - this = call.getArg(0) - } - - override predicate sinks(TaintKind kind) { kind instanceof TarFileInfo } -} - -/* Members argument to extract method */ -class ExtractMembersSink extends TaintSink { - CallNode call; - - ExtractMembersSink() { - call.getFunction().(AttrNode).getName() = "extractall" and - (this = call.getArg(0) or this = call.getArgByName("members")) - } - - override predicate sinks(TaintKind kind) { - kind.(SequenceKind).getItem() instanceof TarFileInfo - or - kind instanceof OpenTarFile - } -} - -class TarFileInfoSanitizer extends Sanitizer { - TarFileInfoSanitizer() { this = "TarInfo sanitizer" } - - /* The test `if :` clears taint on its `false` edge. */ - override predicate sanitizingEdge(TaintKind taint, PyEdgeRefinement test) { - taint instanceof TarFileInfo and - clears_taint_on_false_edge(test.getTest(), test.getSense()) - } - - private predicate clears_taint_on_false_edge(ControlFlowNode test, boolean sense) { - path_sanitizing_test(test) and - sense = false - or - // handle `not` (also nested) - test.(UnaryExprNode).getNode().getOp() instanceof Not and - clears_taint_on_false_edge(test.(UnaryExprNode).getOperand(), sense.booleanNot()) - } -} - -private predicate path_sanitizing_test(ControlFlowNode test) { - /* Assume that any test with "path" in it is a sanitizer */ - test.getAChild+().(AttrNode).getName().matches("%path") - or - test.getAChild+().(NameNode).getId().matches("%path") -} - -class TarSlipConfiguration extends TaintTracking::Configuration { - TarSlipConfiguration() { this = "TarSlip configuration" } - - override predicate isSource(TaintTracking::Source source) { source instanceof TarfileOpen } - - override predicate isSink(TaintTracking::Sink sink) { - sink instanceof ExtractSink or - sink instanceof ExtractAllSink or - sink instanceof ExtractMembersSink - } - - override predicate isSanitizer(Sanitizer sanitizer) { - sanitizer instanceof TarFileInfoSanitizer - or - sanitizer instanceof ExcludeTarFilePy - } - - override predicate isBarrier(DataFlow::Node node) { - // Avoid flow into the tarfile module - exists(ParameterDefinition def | - node.asVariable().getDefinition() = def - or - node.asCfgNode() = def.getDefiningNode() - | - def.getScope() = Value::named("tarfile.open").(CallableValue).getScope() - or - def.isSelf() and def.getScope().getEnclosingModule().getName() = "tarfile" - ) - } -} - -from TarSlipConfiguration config, TaintedPathSource src, TaintedPathSink sink -where config.hasFlowPath(src, sink) -select sink.getSink(), src, sink, "Extraction of tarfile from $@", src.getSource(), +from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink +where config.hasFlowPath(source, sink) +select sink.getNode(), source, sink, "Extraction of tarfile from $@", source.getNode(), "a potentially untrusted source" diff --git a/python/ql/test/query-tests/Security/CWE-022-TarSlip/options b/python/ql/test/query-tests/Security/CWE-022-TarSlip/options deleted file mode 100644 index 492768b3481..00000000000 --- a/python/ql/test/query-tests/Security/CWE-022-TarSlip/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: -p ../lib/ --max-import-depth=3 From 304e2926c9ee67b2cff89152482e9ee28e2a4c0c Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 14 Jun 2022 10:56:15 +0100 Subject: [PATCH 029/736] Java: Fix RefType.getAStrictAncestor() in the presence of type hierarchy cycles --- java/ql/lib/semmle/code/java/Type.qll | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/Type.qll b/java/ql/lib/semmle/code/java/Type.qll index a37f9810c44..323513b6a44 100755 --- a/java/ql/lib/semmle/code/java/Type.qll +++ b/java/ql/lib/semmle/code/java/Type.qll @@ -413,8 +413,12 @@ class RefType extends Type, Annotatable, Modifiable, @reftype { /** Gets a direct or indirect supertype of this type, including itself. */ RefType getAnAncestor() { hasDescendant(result, this) } - /** Gets a direct or indirect supertype of this type, not including itself. */ - RefType getAStrictAncestor() { result = this.getAnAncestor() and result != this } + /** + * Gets a direct or indirect supertype of this type. + * This does not including itself, unless this type is part of a cycle + * in the type hierarchy. + */ + RefType getAStrictAncestor() { result = this.getASupertype().getAnAncestor() } /** * Gets the source declaration of a direct supertype of this type, excluding itself. From b524fb4f3ae369f67dfc91e51fff37f083224e77 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 14 Jun 2022 10:58:26 +0100 Subject: [PATCH 030/736] Java: Add a test for cycles in the type hierarchy --- java/ql/test/library-tests/types/cycles/Test.java | 2 ++ java/ql/test/library-tests/types/cycles/cycles.expected | 6 ++++++ java/ql/test/library-tests/types/cycles/cycles.ql | 5 +++++ 3 files changed, 13 insertions(+) create mode 100644 java/ql/test/library-tests/types/cycles/Test.java create mode 100644 java/ql/test/library-tests/types/cycles/cycles.expected create mode 100644 java/ql/test/library-tests/types/cycles/cycles.ql diff --git a/java/ql/test/library-tests/types/cycles/Test.java b/java/ql/test/library-tests/types/cycles/Test.java new file mode 100644 index 00000000000..a06540728b9 --- /dev/null +++ b/java/ql/test/library-tests/types/cycles/Test.java @@ -0,0 +1,2 @@ +public class Test { +} diff --git a/java/ql/test/library-tests/types/cycles/cycles.expected b/java/ql/test/library-tests/types/cycles/cycles.expected new file mode 100644 index 00000000000..7c0e79d7252 --- /dev/null +++ b/java/ql/test/library-tests/types/cycles/cycles.expected @@ -0,0 +1,6 @@ +| BiFunction | +| BiFunction | +| Function | +| Function | +| Map | +| Map | diff --git a/java/ql/test/library-tests/types/cycles/cycles.ql b/java/ql/test/library-tests/types/cycles/cycles.ql new file mode 100644 index 00000000000..dd4d6e1f757 --- /dev/null +++ b/java/ql/test/library-tests/types/cycles/cycles.ql @@ -0,0 +1,5 @@ +import java + +from RefType t +where t = t.getAStrictAncestor() +select t.toString() From 1959f491658d8ae892034d623ef1983042c35d10 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 29 Mar 2022 10:44:11 +0100 Subject: [PATCH 031/736] Add Improper Intent Verification query --- .../ImproperIntentVerificationQuery.qll | 154 ++++++++++++++++++ .../CWE/CWE-925/ImproperIntentVerification.ql | 18 ++ 2 files changed, 172 insertions(+) create mode 100644 java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll create mode 100644 java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql diff --git a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll new file mode 100644 index 00000000000..f300697a6ed --- /dev/null +++ b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll @@ -0,0 +1,154 @@ +/** Definitions for the improper intent verification query. */ + +import java +import semmle.code.java.dataflow.DataFlow + +/** An `onRecieve` method of a `BroadcastReciever` */ +private class OnReceiveMethod extends Method { + OnReceiveMethod() { + this.getASourceOverriddenMethod*() + .hasQualifiedName("android.content", "BroadcastReciever", "onReceeve") + } + + /** Gets the paramter of this method that holds the received `Intent`. */ + Parameter getIntentParameter() { result = this.getParameter(1) } +} + +/** A configuration to detect whether the `action` of an `Intent` is checked. */ +private class VerifiedIntentConfig extends DataFlow::Configuration { + VerifiedIntentConfig() { this = "VerifiedIntentConfig" } + + override predicate isSource(DataFlow::Node src) { + src.asParameter() = any(OnReceiveMethod orm).getIntentParameter() + } + + override predicate isSink(DataFlow::Node sink) { + exists(MethodAccess ma | + ma.getMethod().hasQualifiedName("android.content", "Intent", "getAction") and + sink.asExpr() = ma.getQualifier() + ) + } +} + +/** An `onRecieve` method that doesn't verify the action of the intent it recieves. */ +class UnverifiedOnReceiveMethod extends OnReceiveMethod { + UnverifiedOnReceiveMethod() { + not any(VerifiedIntentConfig c).hasFlow(DataFlow::parameterNode(this.getIntentParameter()), _) + } +} + +/** Gets the name of an intent action that can only be sent by the system. */ +string getASystemActionName() { + result = + [ + "AIRPLANE_MODE", "AIRPLANE_MODE_CHANGED", "APPLICATION_LOCALE_CHANGED", + "APPLICATION_RESTRICTIONS_CHANGED", "BATTERY_CHANGED", "BATTERY_LOW", "BATTERY_OKAY", + "BOOT_COMPLETED", "CONFIGURATION_CHANGED", "DEVICE_STORAGE_LOW", "DEVICE_STORAGE_OK", + "DREAMING_STARTED", "DREAMING_STOPPED", "EXTERNAL_APPLICATIONS_AVAILABLE", + "EXTERNAL_APPLICATIONS_UNAVAILABLE", "LOCALE_CHANGED", "LOCKED_BOOT_COMPLETED", + "MY_PACKAGE_REPLACED", "MY_PACKAGE_SUSPENDED", "MY_PACKAGE_UNSUSPENDED", "NEW_OUTGOING_CALL", + "PACKAGES_SUSPENDED", "PACKAGES_UNSUSPENDED", "PACKAGE_ADDED", "PACKAGE_CHANGED", + "PACKAGE_DATA_CLEARED", "PACKAGE_FIRST_LAUNCH", "PACKAGE_FULLY_REMOVED", "PACKAGE_INSTALL", + "PACKAGE_NEEDS_VERIFICATION", "PACKAGE_REMOVED", "PACKAGE_REPLACED", "PACKAGE_RESTARTED", + "PACKAGE_VERIFIED", "POWER_CONNECTED", "POWER_DISCONNECTED", "REBOOT", "SCREEN_OFF", + "SCREEN_ON", "SHUTDOWN", "TIMEZONE_CHANGED", "TIME_TICK", "UID_REMOVED", "USER_PRESENT" + ] +} + +/** An expression or XML attribute that contains the name of a system intent action. */ +class SystemActionName extends Top { + string name; + + SystemActionName() { + name = getASystemActionName() and + ( + this.(StringLiteral).getValue() = "android.intent.action." + name + or + this.(FieldRead).getField().hasQualifiedName("android.content", "Intent", "ACTION_" + name) + or + this.(XMLAttribute).getValue() = "android.intent.action." + name + ) + } + + /** Gets the name of the system intent that this expression or attriute represents. */ + string getName() { result = name } +} + +/** A call to `Context.registerReciever` */ +private class RegisterReceiverCall extends MethodAccess { + RegisterReceiverCall() { + this.getMethod() + .getASourceOverriddenMethod*() + .hasQualifiedName("android.content", "Context", "registerReceiver") + } + + /** Gets the `BroadcastReceiver` argument to this call. */ + Expr getReceiverArgument() { result = this.getArgument(0) } + + /** Gets the `IntentFilter` argument to this call. */ + Expr getFilterArgument() { result = this.getArgument(1) } +} + +/** A configuration to detect uses of `registerReciever` with system intent actions. */ +private class RegisterSystemActionConfig extends DataFlow::Configuration { + RegisterSystemActionConfig() { this = "RegisterSystemActionConfig" } + + override predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SystemActionName } + + override predicate isSink(DataFlow::Node node) { + exists(RegisterReceiverCall ma | node.asExpr() = ma.getFilterArgument()) + } + + override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + exists(ConstructorCall cc | + cc.getConstructedType().hasQualifiedName("android.content", "IntentFilter") and + node1.asExpr() = cc.getArgument(0) and + node2.asExpr() = cc + ) + or + exists(MethodAccess ma | + ma.getMethod().hasQualifiedName("android.content", "IntentFilter", "create") and + node1.asExpr() = ma.getArgument(0) and + node2.asExpr() = ma + ) + or + exists(MethodAccess ma | + ma.getMethod().hasQualifiedName("android.content", "IntentFilter", "addAction") and + node1.asExpr() = ma.getArgument(0) and + node2.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr() = ma.getQualifier() + ) + } +} + +/** Holds if `rrc` registers a reciever `orm` to recieve the system action `sa` that doesn't verifiy intents it recieves. */ +predicate registeredUnverifiedSystemReciever( + RegisterReceiverCall rrc, UnverifiedOnReceiveMethod orm, SystemActionName sa +) { + exists(RegisterSystemActionConfig conf, ConstructorCall cc | + conf.hasFlow(DataFlow::exprNode(sa), DataFlow::exprNode(rrc.getFilterArgument())) and + cc.getConstructedType() = orm.getDeclaringType() and + DataFlow::localExprFlow(cc, rrc.getReceiverArgument()) + ) +} + +/** Holds if the XML element `rec` declares a reciever `orm` to recieve the system action named `sa` that doesn't verifiy intents it recieves. */ +predicate xmlUnverifiedSystemReciever( + XMLElement rec, UnverifiedOnReceiveMethod orm, SystemActionName sa +) { + exists(XMLElement filter, XMLElement action, Class ormty | + rec.hasName("receiver") and + filter.hasName("intent-filter") and + action.hasName("action") and + filter = rec.getAChild() and + action = rec.getAChild() and + ormty = orm.getDeclaringType() and + rec.getAttribute("android:name").getValue() = ["." + ormty.getName(), ormty.getQualifiedName()] and + action.getAttribute("android:name") = sa + ) +} + +/** Holds if `reg` registers (either explicitly or through XML) a reciever `orm` to recieve the system action named `sa` that doesn't verify intents it recieves. */ +predicate unverifiedSystemReciever(Top reg, Method orm, SystemActionName sa) { + registeredUnverifiedSystemReciever(reg, orm, sa) or + xmlUnverifiedSystemReciever(reg, orm, sa) +} diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql new file mode 100644 index 00000000000..249da869250 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql @@ -0,0 +1,18 @@ +/** + * @name Improper Verification of Intent by Broadcast Reciever + * @description The Android application uses a Broadcast Receiver that receives an Intent but does not properly verify that the Intent came from an authorized source. + * @kind problem + * @problem.severity warning + * @precision high + * @id java/improper-intent-verification + * @tags security + * external/cwe/cwe-925 + */ + +import java +import semmle.code.java.security.ImproperIntentVerificationQuery + +from Top reg, Method orm, SystemActionName sa +where unverifiedSystemReciever(reg, orm, sa) +select orm, "This reciever doesn't verify intents it recieves, and is registered $@ to recieve $@.", + reg, "here", sa, "the system action " + sa.getName() From 87f26bf0337f5549c2486e3c64f20a0da03bec68 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 5 Apr 2022 12:32:31 +0100 Subject: [PATCH 032/736] Fix typos --- .../ImproperIntentVerificationQuery.qll | 20 +++++++++---------- .../CWE/CWE-925/ImproperIntentVerification.ql | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll index f300697a6ed..e8ed1f17b42 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll @@ -3,11 +3,11 @@ import java import semmle.code.java.dataflow.DataFlow -/** An `onRecieve` method of a `BroadcastReciever` */ +/** An `onReceive` method of a `BroadcastReceiver` */ private class OnReceiveMethod extends Method { OnReceiveMethod() { this.getASourceOverriddenMethod*() - .hasQualifiedName("android.content", "BroadcastReciever", "onReceeve") + .hasQualifiedName("android.content", "BroadcastReceiver", "onReceive") } /** Gets the paramter of this method that holds the received `Intent`. */ @@ -30,7 +30,7 @@ private class VerifiedIntentConfig extends DataFlow::Configuration { } } -/** An `onRecieve` method that doesn't verify the action of the intent it recieves. */ +/** An `onReceive` method that doesn't verify the action of the intent it recieves. */ class UnverifiedOnReceiveMethod extends OnReceiveMethod { UnverifiedOnReceiveMethod() { not any(VerifiedIntentConfig c).hasFlow(DataFlow::parameterNode(this.getIntentParameter()), _) @@ -74,7 +74,7 @@ class SystemActionName extends Top { string getName() { result = name } } -/** A call to `Context.registerReciever` */ +/** A call to `Context.registerReceiver` */ private class RegisterReceiverCall extends MethodAccess { RegisterReceiverCall() { this.getMethod() @@ -89,7 +89,7 @@ private class RegisterReceiverCall extends MethodAccess { Expr getFilterArgument() { result = this.getArgument(1) } } -/** A configuration to detect uses of `registerReciever` with system intent actions. */ +/** A configuration to detect uses of `registerReceiver` with system intent actions. */ private class RegisterSystemActionConfig extends DataFlow::Configuration { RegisterSystemActionConfig() { this = "RegisterSystemActionConfig" } @@ -121,7 +121,7 @@ private class RegisterSystemActionConfig extends DataFlow::Configuration { } /** Holds if `rrc` registers a reciever `orm` to recieve the system action `sa` that doesn't verifiy intents it recieves. */ -predicate registeredUnverifiedSystemReciever( +predicate registeredUnverifiedSystemReceiver( RegisterReceiverCall rrc, UnverifiedOnReceiveMethod orm, SystemActionName sa ) { exists(RegisterSystemActionConfig conf, ConstructorCall cc | @@ -132,7 +132,7 @@ predicate registeredUnverifiedSystemReciever( } /** Holds if the XML element `rec` declares a reciever `orm` to recieve the system action named `sa` that doesn't verifiy intents it recieves. */ -predicate xmlUnverifiedSystemReciever( +predicate xmlUnverifiedSystemReceiver( XMLElement rec, UnverifiedOnReceiveMethod orm, SystemActionName sa ) { exists(XMLElement filter, XMLElement action, Class ormty | @@ -148,7 +148,7 @@ predicate xmlUnverifiedSystemReciever( } /** Holds if `reg` registers (either explicitly or through XML) a reciever `orm` to recieve the system action named `sa` that doesn't verify intents it recieves. */ -predicate unverifiedSystemReciever(Top reg, Method orm, SystemActionName sa) { - registeredUnverifiedSystemReciever(reg, orm, sa) or - xmlUnverifiedSystemReciever(reg, orm, sa) +predicate unverifiedSystemReceiver(Top reg, Method orm, SystemActionName sa) { + registeredUnverifiedSystemReceiver(reg, orm, sa) or + xmlUnverifiedSystemReceiver(reg, orm, sa) } diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql index 249da869250..867f2733954 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql @@ -13,6 +13,6 @@ import java import semmle.code.java.security.ImproperIntentVerificationQuery from Top reg, Method orm, SystemActionName sa -where unverifiedSystemReciever(reg, orm, sa) +where unverifiedSystemReceiver(reg, orm, sa) select orm, "This reciever doesn't verify intents it recieves, and is registered $@ to recieve $@.", reg, "here", sa, "the system action " + sa.getName() From 4aed1a1e235c737a09ed87becef3ba9222412af3 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 22 Apr 2022 16:41:01 +0100 Subject: [PATCH 033/736] Add test cases; fix handling of recievers declared through xml --- .../ImproperIntentVerificationQuery.qll | 11 +++++-- .../security/CWE-925/AndroidManifest.xml | 9 ++++++ .../security/CWE-925/BootReceiverXml.java | 13 ++++++++ .../ImproperIntentVerification.expected | 0 .../CWE-925/ImproperIntentVerification.ql | 18 +++++++++++ .../ImproperIntentVerificationTest.java | 31 +++++++++++++++++++ .../test/query-tests/security/CWE-925/options | 1 + 7 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 java/ql/test/query-tests/security/CWE-925/AndroidManifest.xml create mode 100644 java/ql/test/query-tests/security/CWE-925/BootReceiverXml.java create mode 100644 java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.expected create mode 100644 java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.ql create mode 100644 java/ql/test/query-tests/security/CWE-925/ImproperIntentVerificationTest.java create mode 100644 java/ql/test/query-tests/security/CWE-925/options diff --git a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll index e8ed1f17b42..9004414664a 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll @@ -72,6 +72,11 @@ class SystemActionName extends Top { /** Gets the name of the system intent that this expression or attriute represents. */ string getName() { result = name } + + override string toString() { + result = + [this.(StringLiteral).toString(), this.(FieldRead).toString(), this.(XMLAttribute).toString()] + } } /** A call to `Context.registerReceiver` */ @@ -140,10 +145,10 @@ predicate xmlUnverifiedSystemReceiver( filter.hasName("intent-filter") and action.hasName("action") and filter = rec.getAChild() and - action = rec.getAChild() and + action = filter.getAChild() and ormty = orm.getDeclaringType() and - rec.getAttribute("android:name").getValue() = ["." + ormty.getName(), ormty.getQualifiedName()] and - action.getAttribute("android:name") = sa + rec.getAttribute("name").getValue() = ["." + ormty.getName(), ormty.getQualifiedName()] and + action.getAttribute("name") = sa ) } diff --git a/java/ql/test/query-tests/security/CWE-925/AndroidManifest.xml b/java/ql/test/query-tests/security/CWE-925/AndroidManifest.xml new file mode 100644 index 00000000000..f9e11a1ee81 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-925/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-925/BootReceiverXml.java b/java/ql/test/query-tests/security/CWE-925/BootReceiverXml.java new file mode 100644 index 00000000000..3a9f8498396 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-925/BootReceiverXml.java @@ -0,0 +1,13 @@ +package test; +import android.content.Intent; +import android.content.Context; +import android.content.BroadcastReceiver; + +class BootReceiverXml extends BroadcastReceiver { + void doStuff(Intent intent) {} + + @Override + public void onReceive(Context ctx, Intent intent) { // $hasResult + doStuff(intent); + } +} \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.expected b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.ql b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.ql new file mode 100644 index 00000000000..30ced62b2ed --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.ql @@ -0,0 +1,18 @@ +import java +import semmle.code.java.security.ImproperIntentVerificationQuery +import TestUtilities.InlineExpectationsTest + +class HasFlowTest extends InlineExpectationsTest { + HasFlowTest() { this = "HasFlowTest" } + + override string getARelevantTag() { result = "hasResult" } + + override predicate hasActualResult(Location location, string element, string tag, string value) { + tag = "hasResult" and + exists(Method orm | unverifiedSystemReceiver(_, orm, _) | + orm.getLocation() = location and + element = orm.toString() and + value = "" + ) + } +} diff --git a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerificationTest.java b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerificationTest.java new file mode 100644 index 00000000000..736410eb9f0 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerificationTest.java @@ -0,0 +1,31 @@ +package test; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.Context; +import android.content.BroadcastReceiver; + +class ImproperIntentVerificationTest { + static void doStuff(Intent intent) {} + + class ShutdownBroadcastReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context ctx, Intent intent) { // $hasResult + doStuff(intent); + } + } + + class ShutdownBroadcastReceiverSafe extends BroadcastReceiver { + @Override + public void onReceive(Context ctx, Intent intent) { + if (!intent.getAction().equals(Intent.ACTION_SHUTDOWN)) { + return; + } + doStuff(intent); + } + } + + void test(Context c) { + c.registerReceiver(new ShutdownBroadcastReceiver(), new IntentFilter(Intent.ACTION_SHUTDOWN)); + c.registerReceiver(new ShutdownBroadcastReceiverSafe(), new IntentFilter(Intent.ACTION_SHUTDOWN)); + } +} \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-925/options b/java/ql/test/query-tests/security/CWE-925/options new file mode 100644 index 00000000000..5a47a1d8fd3 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-925/options @@ -0,0 +1 @@ +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/google-android-9.0.0 \ No newline at end of file From 8e2e8cc77feba695d92465f64e1efcee2c94b698 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 27 Apr 2022 16:04:06 +0100 Subject: [PATCH 034/736] Add qhelp --- java/ql/src/Security/CWE/CWE-925/Bad.java | 13 +++++++ java/ql/src/Security/CWE/CWE-925/Good.java | 16 ++++++++ .../CWE-925/ImproperIntentVerification.qhelp | 39 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 java/ql/src/Security/CWE/CWE-925/Bad.java create mode 100644 java/ql/src/Security/CWE/CWE-925/Good.java create mode 100644 java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp diff --git a/java/ql/src/Security/CWE/CWE-925/Bad.java b/java/ql/src/Security/CWE/CWE-925/Bad.java new file mode 100644 index 00000000000..a2703d83cf4 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-925/Bad.java @@ -0,0 +1,13 @@ +... +IntentFilter filter = new IntentFilter(Intent.ACTION_SHUTDOWN); +BroadcastReceiver sReceiver = new ShutDownReceiver(); +context.registerReceiver(sReceiver, filter); +... + +public class ShutdownReceiver extends BroadcastReceiver { + @Override + public void onReceive(final Context context, final Intent intent) { + mainActivity.saveLocalData(); + mainActivity.stopActivity(); + } +} \ No newline at end of file diff --git a/java/ql/src/Security/CWE/CWE-925/Good.java b/java/ql/src/Security/CWE/CWE-925/Good.java new file mode 100644 index 00000000000..3830b8c4bc3 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-925/Good.java @@ -0,0 +1,16 @@ +... +IntentFilter filter = new IntentFilter(Intent.ACTION_SHUTDOWN); +BroadcastReceiver sReceiver = new ShutDownReceiver(); +context.registerReceiver(sReceiver, filter); +... + +public class ShutdownReceiver extends BroadcastReceiver { + @Override + public void onReceive(final Context context, final Intent intent) { + if (!intent.getAction().equals(Intent.ACTION_SHUTDOWN)) { + return; + } + mainActivity.saveLocalData(); + mainActivity.stopActivity(); + } +} \ No newline at end of file diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp new file mode 100644 index 00000000000..d4218c228fb --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp @@ -0,0 +1,39 @@ + + + + + +

    +When an android application uses a BroadcastReciever to receive Intents, +it is also able to receive explicit Intents that are sent drctly to it, egardless of its filter. + +Certain intent actions are only able to be sent by the operating system, not third-party applications. +However, a BroadcastReceiver that is registered to recieve system intents is still able to recieve +other intents from a third-party application, so it should check that the intent received has the expected action. +Otherwise, a third-party application could impersonate the system this way and cause unintended behaviour, such as a denial of service. +

    +
    + + +

    In the following code, the ShutdownReceiver initiates a shutdown procedure upon receiving an Intent, + without checking that the received action is indeed ACTION_SHUTDOWN. This allows third-party applications to + send explicit intents to this receiver to cause a denial of service.

    + +
    + + +

    +In the onReceive method of a BroadcastReciever, the action of the received Intent should be checked. The following code demonstrates this. +

    + +
    + + + + + + + +
    From 2fc142f41f38ece9f04109b530e309bc869b4ff0 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 27 Apr 2022 16:31:02 +0100 Subject: [PATCH 035/736] Add security severity --- java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql | 1 + 1 file changed, 1 insertion(+) diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql index 867f2733954..3790ce3bb4d 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql @@ -3,6 +3,7 @@ * @description The Android application uses a Broadcast Receiver that receives an Intent but does not properly verify that the Intent came from an authorized source. * @kind problem * @problem.severity warning + * @security-severity 8.2 * @precision high * @id java/improper-intent-verification * @tags security From d88d216388c3d7c50ca15d75a3372c5e77bcff38 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 27 Apr 2022 16:37:58 +0100 Subject: [PATCH 036/736] Add change note --- .../src/Security/CWE/CWE-925/ImproperIntentVerification.ql | 2 +- java/ql/src/change-notes/2022-04-27-intent-verification.md | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 java/ql/src/change-notes/2022-04-27-intent-verification.md diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql index 3790ce3bb4d..222e8ada5be 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql @@ -1,5 +1,5 @@ /** - * @name Improper Verification of Intent by Broadcast Reciever + * @name Improper Verification of Intent by Broadcast Receiver * @description The Android application uses a Broadcast Receiver that receives an Intent but does not properly verify that the Intent came from an authorized source. * @kind problem * @problem.severity warning diff --git a/java/ql/src/change-notes/2022-04-27-intent-verification.md b/java/ql/src/change-notes/2022-04-27-intent-verification.md new file mode 100644 index 00000000000..e0ed5f5ef27 --- /dev/null +++ b/java/ql/src/change-notes/2022-04-27-intent-verification.md @@ -0,0 +1,6 @@ +--- +category: newQuery +--- +* A new query "Improper Verification of Intent by Broadcast Receiver" (`java/improper-intent-verification`) has been added. +This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received Intents when registered +to receive system intents. \ No newline at end of file From 9d048e78af6cafc735cf3a6ef6c5a4b87a1d1237 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 28 Apr 2022 12:45:20 +0100 Subject: [PATCH 037/736] Apply suggestions from code review - fix typos/style, make things private Co-authored-by: Tony Torralba --- .../security/ImproperIntentVerificationQuery.qll | 16 ++++++++-------- java/ql/src/Security/CWE/CWE-925/Bad.java | 4 ++-- java/ql/src/Security/CWE/CWE-925/Good.java | 4 ++-- .../CWE/CWE-925/ImproperIntentVerification.qhelp | 10 +++++----- .../2022-04-27-intent-verification.md | 2 +- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll index 9004414664a..82885a65807 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll @@ -10,7 +10,7 @@ private class OnReceiveMethod extends Method { .hasQualifiedName("android.content", "BroadcastReceiver", "onReceive") } - /** Gets the paramter of this method that holds the received `Intent`. */ + /** Gets the parameter of this method that holds the received `Intent`. */ Parameter getIntentParameter() { result = this.getParameter(1) } } @@ -30,7 +30,7 @@ private class VerifiedIntentConfig extends DataFlow::Configuration { } } -/** An `onReceive` method that doesn't verify the action of the intent it recieves. */ +/** An `onReceive` method that doesn't verify the action of the intent it receives. */ class UnverifiedOnReceiveMethod extends OnReceiveMethod { UnverifiedOnReceiveMethod() { not any(VerifiedIntentConfig c).hasFlow(DataFlow::parameterNode(this.getIntentParameter()), _) @@ -70,7 +70,7 @@ class SystemActionName extends Top { ) } - /** Gets the name of the system intent that this expression or attriute represents. */ + /** Gets the name of the system intent that this expression or attribute represents. */ string getName() { result = name } override string toString() { @@ -125,8 +125,8 @@ private class RegisterSystemActionConfig extends DataFlow::Configuration { } } -/** Holds if `rrc` registers a reciever `orm` to recieve the system action `sa` that doesn't verifiy intents it recieves. */ -predicate registeredUnverifiedSystemReceiver( +/** Holds if `rrc` registers a receiver `orm` to receive the system action `sa` that doesn't verify the intents it receives. */ +private predicate registeredUnverifiedSystemReceiver( RegisterReceiverCall rrc, UnverifiedOnReceiveMethod orm, SystemActionName sa ) { exists(RegisterSystemActionConfig conf, ConstructorCall cc | @@ -136,8 +136,8 @@ predicate registeredUnverifiedSystemReceiver( ) } -/** Holds if the XML element `rec` declares a reciever `orm` to recieve the system action named `sa` that doesn't verifiy intents it recieves. */ -predicate xmlUnverifiedSystemReceiver( +/** Holds if the XML element `rec` declares a receiver `orm` to receive the system action named `sa` that doesn't verify intents it receives. */ +private predicate xmlUnverifiedSystemReceiver( XMLElement rec, UnverifiedOnReceiveMethod orm, SystemActionName sa ) { exists(XMLElement filter, XMLElement action, Class ormty | @@ -152,7 +152,7 @@ predicate xmlUnverifiedSystemReceiver( ) } -/** Holds if `reg` registers (either explicitly or through XML) a reciever `orm` to recieve the system action named `sa` that doesn't verify intents it recieves. */ +/** Holds if `reg` registers (either explicitly or through XML) a receiver `orm` to receive the system action named `sa` that doesn't verify the intents it receives. */ predicate unverifiedSystemReceiver(Top reg, Method orm, SystemActionName sa) { registeredUnverifiedSystemReceiver(reg, orm, sa) or xmlUnverifiedSystemReceiver(reg, orm, sa) diff --git a/java/ql/src/Security/CWE/CWE-925/Bad.java b/java/ql/src/Security/CWE/CWE-925/Bad.java index a2703d83cf4..52a5d0c29f8 100644 --- a/java/ql/src/Security/CWE/CWE-925/Bad.java +++ b/java/ql/src/Security/CWE/CWE-925/Bad.java @@ -1,8 +1,8 @@ -... +// ... IntentFilter filter = new IntentFilter(Intent.ACTION_SHUTDOWN); BroadcastReceiver sReceiver = new ShutDownReceiver(); context.registerReceiver(sReceiver, filter); -... +// ... public class ShutdownReceiver extends BroadcastReceiver { @Override diff --git a/java/ql/src/Security/CWE/CWE-925/Good.java b/java/ql/src/Security/CWE/CWE-925/Good.java index 3830b8c4bc3..6f3a718487a 100644 --- a/java/ql/src/Security/CWE/CWE-925/Good.java +++ b/java/ql/src/Security/CWE/CWE-925/Good.java @@ -1,8 +1,8 @@ -... +// ... IntentFilter filter = new IntentFilter(Intent.ACTION_SHUTDOWN); BroadcastReceiver sReceiver = new ShutDownReceiver(); context.registerReceiver(sReceiver, filter); -... +// ... public class ShutdownReceiver extends BroadcastReceiver { @Override diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp index d4218c228fb..2fd06e9817b 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp @@ -6,18 +6,18 @@

    -When an android application uses a BroadcastReciever to receive Intents, -it is also able to receive explicit Intents that are sent drctly to it, egardless of its filter. +When an android application uses a BroadcastReciever to receive intents, +it is also able to receive explicit intents that are sent directly to it, regardless of its filter. Certain intent actions are only able to be sent by the operating system, not third-party applications. -However, a BroadcastReceiver that is registered to recieve system intents is still able to recieve +However, a BroadcastReceiver that is registered to receive system intents is still able to receive other intents from a third-party application, so it should check that the intent received has the expected action. -Otherwise, a third-party application could impersonate the system this way and cause unintended behaviour, such as a denial of service. +Otherwise, a third-party application could impersonate the system this way and cause unintended behavior, such as a denial of service.

    -

    In the following code, the ShutdownReceiver initiates a shutdown procedure upon receiving an Intent, +

    In the following code, the ShutdownReceiver initiates a shutdown procedure upon receiving an intent, without checking that the received action is indeed ACTION_SHUTDOWN. This allows third-party applications to send explicit intents to this receiver to cause a denial of service.

    diff --git a/java/ql/src/change-notes/2022-04-27-intent-verification.md b/java/ql/src/change-notes/2022-04-27-intent-verification.md index e0ed5f5ef27..143b0bcd39b 100644 --- a/java/ql/src/change-notes/2022-04-27-intent-verification.md +++ b/java/ql/src/change-notes/2022-04-27-intent-verification.md @@ -2,5 +2,5 @@ category: newQuery --- * A new query "Improper Verification of Intent by Broadcast Receiver" (`java/improper-intent-verification`) has been added. -This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received Intents when registered +This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received intents when registered to receive system intents. \ No newline at end of file From 320c671b73dcb6a30428e6292a925fa586464da8 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 28 Apr 2022 14:14:02 +0100 Subject: [PATCH 038/736] Adress reveiw comments - make use of existing ql libraries --- .../ImproperIntentVerificationQuery.qll | 31 +++++++------------ .../CWE/CWE-925/ImproperIntentVerification.ql | 2 +- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll index 82885a65807..f161c67cfbb 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll @@ -2,13 +2,12 @@ import java import semmle.code.java.dataflow.DataFlow +import semmle.code.xml.AndroidManifest +import semmle.code.java.frameworks.android.Intent /** An `onReceive` method of a `BroadcastReceiver` */ private class OnReceiveMethod extends Method { - OnReceiveMethod() { - this.getASourceOverriddenMethod*() - .hasQualifiedName("android.content", "BroadcastReceiver", "onReceive") - } + OnReceiveMethod() { this.getASourceOverriddenMethod*() instanceof AndroidReceiveIntentMethod } /** Gets the parameter of this method that holds the received `Intent`. */ Parameter getIntentParameter() { result = this.getParameter(1) } @@ -31,7 +30,7 @@ private class VerifiedIntentConfig extends DataFlow::Configuration { } /** An `onReceive` method that doesn't verify the action of the intent it receives. */ -class UnverifiedOnReceiveMethod extends OnReceiveMethod { +private class UnverifiedOnReceiveMethod extends OnReceiveMethod { UnverifiedOnReceiveMethod() { not any(VerifiedIntentConfig c).hasFlow(DataFlow::parameterNode(this.getIntentParameter()), _) } @@ -62,21 +61,18 @@ class SystemActionName extends Top { SystemActionName() { name = getASystemActionName() and ( - this.(StringLiteral).getValue() = "android.intent.action." + name + this.(CompileTimeConstantExpr).getStringValue() = "android.intent.action." + name or this.(FieldRead).getField().hasQualifiedName("android.content", "Intent", "ACTION_" + name) or - this.(XMLAttribute).getValue() = "android.intent.action." + name + this.(AndroidActionXmlElement).getActionName() = "android.intent.action." + name ) } /** Gets the name of the system intent that this expression or attribute represents. */ string getName() { result = name } - override string toString() { - result = - [this.(StringLiteral).toString(), this.(FieldRead).toString(), this.(XMLAttribute).toString()] - } + override string toString() { result = [this.(Expr).toString(), this.(XMLAttribute).toString()] } } /** A call to `Context.registerReceiver` */ @@ -138,17 +134,12 @@ private predicate registeredUnverifiedSystemReceiver( /** Holds if the XML element `rec` declares a receiver `orm` to receive the system action named `sa` that doesn't verify intents it receives. */ private predicate xmlUnverifiedSystemReceiver( - XMLElement rec, UnverifiedOnReceiveMethod orm, SystemActionName sa + AndroidReceiverXmlElement rec, UnverifiedOnReceiveMethod orm, SystemActionName sa ) { - exists(XMLElement filter, XMLElement action, Class ormty | - rec.hasName("receiver") and - filter.hasName("intent-filter") and - action.hasName("action") and - filter = rec.getAChild() and - action = filter.getAChild() and + exists(Class ormty | ormty = orm.getDeclaringType() and - rec.getAttribute("name").getValue() = ["." + ormty.getName(), ormty.getQualifiedName()] and - action.getAttribute("name") = sa + rec.getComponentName() = ["." + ormty.getName(), ormty.getQualifiedName()] and + rec.getAnIntentFilterElement().getAnActionElement() = sa ) } diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql index 222e8ada5be..87fcf3c659b 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql @@ -15,5 +15,5 @@ import semmle.code.java.security.ImproperIntentVerificationQuery from Top reg, Method orm, SystemActionName sa where unverifiedSystemReceiver(reg, orm, sa) -select orm, "This reciever doesn't verify intents it recieves, and is registered $@ to recieve $@.", +select orm, "This reciever doesn't verify intents it receives, and is registered $@ to receive $@.", reg, "here", sa, "the system action " + sa.getName() From c71586e1f8baa3e439fdf20acc763da701e9c7cc Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 31 May 2022 15:26:48 +0100 Subject: [PATCH 039/736] Remove checks for dynamically registered recievers --- .../ImproperIntentVerificationQuery.qll | 79 +------------------ .../Security/CWE/CWE-925/AndroidManifest.xml | 9 +++ java/ql/src/Security/CWE/CWE-925/Bad.java | 6 -- java/ql/src/Security/CWE/CWE-925/Good.java | 6 -- .../CWE-925/ImproperIntentVerification.qhelp | 1 + .../CWE/CWE-925/ImproperIntentVerification.ql | 2 +- .../ImproperIntentVerificationTest.java | 31 -------- 7 files changed, 15 insertions(+), 119 deletions(-) create mode 100644 java/ql/src/Security/CWE/CWE-925/AndroidManifest.xml delete mode 100644 java/ql/test/query-tests/security/CWE-925/ImproperIntentVerificationTest.java diff --git a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll index f161c67cfbb..00a6dae69e9 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperIntentVerificationQuery.qll @@ -55,85 +55,20 @@ string getASystemActionName() { } /** An expression or XML attribute that contains the name of a system intent action. */ -class SystemActionName extends Top { +class SystemActionName extends AndroidActionXmlElement { string name; SystemActionName() { name = getASystemActionName() and - ( - this.(CompileTimeConstantExpr).getStringValue() = "android.intent.action." + name - or - this.(FieldRead).getField().hasQualifiedName("android.content", "Intent", "ACTION_" + name) - or - this.(AndroidActionXmlElement).getActionName() = "android.intent.action." + name - ) + this.getActionName() = "android.intent.action." + name } /** Gets the name of the system intent that this expression or attribute represents. */ - string getName() { result = name } - - override string toString() { result = [this.(Expr).toString(), this.(XMLAttribute).toString()] } -} - -/** A call to `Context.registerReceiver` */ -private class RegisterReceiverCall extends MethodAccess { - RegisterReceiverCall() { - this.getMethod() - .getASourceOverriddenMethod*() - .hasQualifiedName("android.content", "Context", "registerReceiver") - } - - /** Gets the `BroadcastReceiver` argument to this call. */ - Expr getReceiverArgument() { result = this.getArgument(0) } - - /** Gets the `IntentFilter` argument to this call. */ - Expr getFilterArgument() { result = this.getArgument(1) } -} - -/** A configuration to detect uses of `registerReceiver` with system intent actions. */ -private class RegisterSystemActionConfig extends DataFlow::Configuration { - RegisterSystemActionConfig() { this = "RegisterSystemActionConfig" } - - override predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SystemActionName } - - override predicate isSink(DataFlow::Node node) { - exists(RegisterReceiverCall ma | node.asExpr() = ma.getFilterArgument()) - } - - override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - exists(ConstructorCall cc | - cc.getConstructedType().hasQualifiedName("android.content", "IntentFilter") and - node1.asExpr() = cc.getArgument(0) and - node2.asExpr() = cc - ) - or - exists(MethodAccess ma | - ma.getMethod().hasQualifiedName("android.content", "IntentFilter", "create") and - node1.asExpr() = ma.getArgument(0) and - node2.asExpr() = ma - ) - or - exists(MethodAccess ma | - ma.getMethod().hasQualifiedName("android.content", "IntentFilter", "addAction") and - node1.asExpr() = ma.getArgument(0) and - node2.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr() = ma.getQualifier() - ) - } -} - -/** Holds if `rrc` registers a receiver `orm` to receive the system action `sa` that doesn't verify the intents it receives. */ -private predicate registeredUnverifiedSystemReceiver( - RegisterReceiverCall rrc, UnverifiedOnReceiveMethod orm, SystemActionName sa -) { - exists(RegisterSystemActionConfig conf, ConstructorCall cc | - conf.hasFlow(DataFlow::exprNode(sa), DataFlow::exprNode(rrc.getFilterArgument())) and - cc.getConstructedType() = orm.getDeclaringType() and - DataFlow::localExprFlow(cc, rrc.getReceiverArgument()) - ) + string getSystemActionName() { result = name } } /** Holds if the XML element `rec` declares a receiver `orm` to receive the system action named `sa` that doesn't verify intents it receives. */ -private predicate xmlUnverifiedSystemReceiver( +predicate unverifiedSystemReceiver( AndroidReceiverXmlElement rec, UnverifiedOnReceiveMethod orm, SystemActionName sa ) { exists(Class ormty | @@ -142,9 +77,3 @@ private predicate xmlUnverifiedSystemReceiver( rec.getAnIntentFilterElement().getAnActionElement() = sa ) } - -/** Holds if `reg` registers (either explicitly or through XML) a receiver `orm` to receive the system action named `sa` that doesn't verify the intents it receives. */ -predicate unverifiedSystemReceiver(Top reg, Method orm, SystemActionName sa) { - registeredUnverifiedSystemReceiver(reg, orm, sa) or - xmlUnverifiedSystemReceiver(reg, orm, sa) -} diff --git a/java/ql/src/Security/CWE/CWE-925/AndroidManifest.xml b/java/ql/src/Security/CWE/CWE-925/AndroidManifest.xml new file mode 100644 index 00000000000..f9e11a1ee81 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-925/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/java/ql/src/Security/CWE/CWE-925/Bad.java b/java/ql/src/Security/CWE/CWE-925/Bad.java index 52a5d0c29f8..376805f824e 100644 --- a/java/ql/src/Security/CWE/CWE-925/Bad.java +++ b/java/ql/src/Security/CWE/CWE-925/Bad.java @@ -1,9 +1,3 @@ -// ... -IntentFilter filter = new IntentFilter(Intent.ACTION_SHUTDOWN); -BroadcastReceiver sReceiver = new ShutDownReceiver(); -context.registerReceiver(sReceiver, filter); -// ... - public class ShutdownReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { diff --git a/java/ql/src/Security/CWE/CWE-925/Good.java b/java/ql/src/Security/CWE/CWE-925/Good.java index 6f3a718487a..b6ad1c43193 100644 --- a/java/ql/src/Security/CWE/CWE-925/Good.java +++ b/java/ql/src/Security/CWE/CWE-925/Good.java @@ -1,9 +1,3 @@ -// ... -IntentFilter filter = new IntentFilter(Intent.ACTION_SHUTDOWN); -BroadcastReceiver sReceiver = new ShutDownReceiver(); -context.registerReceiver(sReceiver, filter); -// ... - public class ShutdownReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp index 2fd06e9817b..edc9b6269f9 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp @@ -21,6 +21,7 @@ Otherwise, a third-party application could impersonate the system this way and c without checking that the received action is indeed ACTION_SHUTDOWN. This allows third-party applications to send explicit intents to this receiver to cause a denial of service.

    +
    diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql index 87fcf3c659b..fb49d00cafa 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql @@ -13,7 +13,7 @@ import java import semmle.code.java.security.ImproperIntentVerificationQuery -from Top reg, Method orm, SystemActionName sa +from AndroidReceiverXmlElement reg, Method orm, SystemActionName sa where unverifiedSystemReceiver(reg, orm, sa) select orm, "This reciever doesn't verify intents it receives, and is registered $@ to receive $@.", reg, "here", sa, "the system action " + sa.getName() diff --git a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerificationTest.java b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerificationTest.java deleted file mode 100644 index 736410eb9f0..00000000000 --- a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerificationTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package test; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.Context; -import android.content.BroadcastReceiver; - -class ImproperIntentVerificationTest { - static void doStuff(Intent intent) {} - - class ShutdownBroadcastReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context ctx, Intent intent) { // $hasResult - doStuff(intent); - } - } - - class ShutdownBroadcastReceiverSafe extends BroadcastReceiver { - @Override - public void onReceive(Context ctx, Intent intent) { - if (!intent.getAction().equals(Intent.ACTION_SHUTDOWN)) { - return; - } - doStuff(intent); - } - } - - void test(Context c) { - c.registerReceiver(new ShutdownBroadcastReceiver(), new IntentFilter(Intent.ACTION_SHUTDOWN)); - c.registerReceiver(new ShutdownBroadcastReceiverSafe(), new IntentFilter(Intent.ACTION_SHUTDOWN)); - } -} \ No newline at end of file From a6736a99e4059df26f0be42fd5b700009c4058f8 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 14 Jun 2022 14:55:37 +0100 Subject: [PATCH 040/736] Apply doc review suggestions - fix typos and capitilisation; reword description. --- .../Security/CWE/CWE-925/ImproperIntentVerification.qhelp | 6 +++--- .../src/Security/CWE/CWE-925/ImproperIntentVerification.ql | 4 ++-- java/ql/src/change-notes/2022-04-27-intent-verification.md | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp index edc9b6269f9..e489e411379 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.qhelp @@ -6,13 +6,13 @@

    -When an android application uses a BroadcastReciever to receive intents, +When an Android application uses a BroadcastReceiver to receive intents, it is also able to receive explicit intents that are sent directly to it, regardless of its filter. Certain intent actions are only able to be sent by the operating system, not third-party applications. However, a BroadcastReceiver that is registered to receive system intents is still able to receive -other intents from a third-party application, so it should check that the intent received has the expected action. -Otherwise, a third-party application could impersonate the system this way and cause unintended behavior, such as a denial of service. +intents from a third-party application, so it should check that the intent received has the expected action. +Otherwise, a third-party application could impersonate the system this way to cause unintended behavior, such as a denial of service.

    diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql index fb49d00cafa..1314f91a2bd 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql @@ -1,6 +1,6 @@ /** - * @name Improper Verification of Intent by Broadcast Receiver - * @description The Android application uses a Broadcast Receiver that receives an Intent but does not properly verify that the Intent came from an authorized source. + * @name Improper verification of intent by broadcast receiver + * @description A broadcast reciever that does not verify intents it recieves may be susceptible to unintended behaviour by third party applications sending it explicit intents. * @kind problem * @problem.severity warning * @security-severity 8.2 diff --git a/java/ql/src/change-notes/2022-04-27-intent-verification.md b/java/ql/src/change-notes/2022-04-27-intent-verification.md index 143b0bcd39b..e5e0e287753 100644 --- a/java/ql/src/change-notes/2022-04-27-intent-verification.md +++ b/java/ql/src/change-notes/2022-04-27-intent-verification.md @@ -1,6 +1,6 @@ --- category: newQuery --- -* A new query "Improper Verification of Intent by Broadcast Receiver" (`java/improper-intent-verification`) has been added. +* A new query "Improper verification of intent by broadcast receiver" (`java/improper-intent-verification`) has been added. This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received intents when registered to receive system intents. \ No newline at end of file From f46dd8cc85d5202527b3135b4437cbb7446f7319 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 14 Jun 2022 15:34:08 +0100 Subject: [PATCH 041/736] Fix misspellings --- java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql index 1314f91a2bd..51c54e288ac 100644 --- a/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql +++ b/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql @@ -1,6 +1,6 @@ /** * @name Improper verification of intent by broadcast receiver - * @description A broadcast reciever that does not verify intents it recieves may be susceptible to unintended behaviour by third party applications sending it explicit intents. + * @description A broadcast receiver that does not verify intents it receives may be susceptible to unintended behavior by third party applications sending it explicit intents. * @kind problem * @problem.severity warning * @security-severity 8.2 From f4ce382b7da04c17a3215d95b8a2cc6d3403c42e Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 15 Jun 2022 12:40:14 +0200 Subject: [PATCH 042/736] python: update test expectations --- .../Security/CWE-022-TarSlip/TarSlip.expected | 61 +++++++++++-------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected b/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected index edcdaf88e48..2ddfe7143d0 100644 --- a/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected +++ b/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected @@ -1,29 +1,36 @@ edges -| tarslip.py:12:7:12:39 | tarfile.open | tarslip.py:13:1:13:3 | tarfile.open | -| tarslip.py:12:7:12:39 | tarfile.open | tarslip.py:13:1:13:3 | tarfile.open | -| tarslip.py:16:7:16:39 | tarfile.open | tarslip.py:17:14:17:16 | tarfile.open | -| tarslip.py:16:7:16:39 | tarfile.open | tarslip.py:17:14:17:16 | tarfile.open | -| tarslip.py:17:1:17:17 | tarfile.entry | tarslip.py:18:17:18:21 | tarfile.entry | -| tarslip.py:17:1:17:17 | tarfile.entry | tarslip.py:18:17:18:21 | tarfile.entry | -| tarslip.py:17:14:17:16 | tarfile.open | tarslip.py:17:1:17:17 | tarfile.entry | -| tarslip.py:17:14:17:16 | tarfile.open | tarslip.py:17:1:17:17 | tarfile.entry | -| tarslip.py:33:7:33:39 | tarfile.open | tarslip.py:34:14:34:16 | tarfile.open | -| tarslip.py:33:7:33:39 | tarfile.open | tarslip.py:34:14:34:16 | tarfile.open | -| tarslip.py:34:1:34:17 | tarfile.entry | tarslip.py:37:17:37:21 | tarfile.entry | -| tarslip.py:34:1:34:17 | tarfile.entry | tarslip.py:37:17:37:21 | tarfile.entry | -| tarslip.py:34:14:34:16 | tarfile.open | tarslip.py:34:1:34:17 | tarfile.entry | -| tarslip.py:34:14:34:16 | tarfile.open | tarslip.py:34:1:34:17 | tarfile.entry | -| tarslip.py:40:7:40:39 | tarfile.open | tarslip.py:41:24:41:26 | tarfile.open | -| tarslip.py:40:7:40:39 | tarfile.open | tarslip.py:41:24:41:26 | tarfile.open | -| tarslip.py:56:7:56:39 | tarfile.open | tarslip.py:57:14:57:16 | tarfile.open | -| tarslip.py:56:7:56:39 | tarfile.open | tarslip.py:57:14:57:16 | tarfile.open | -| tarslip.py:57:1:57:17 | tarfile.entry | tarslip.py:59:21:59:25 | tarfile.entry | -| tarslip.py:57:1:57:17 | tarfile.entry | tarslip.py:59:21:59:25 | tarfile.entry | -| tarslip.py:57:14:57:16 | tarfile.open | tarslip.py:57:1:57:17 | tarfile.entry | -| tarslip.py:57:14:57:16 | tarfile.open | tarslip.py:57:1:57:17 | tarfile.entry | +| tarslip.py:12:7:12:39 | ControlFlowNode for Attribute() | tarslip.py:13:1:13:3 | ControlFlowNode for tar | +| tarslip.py:16:7:16:39 | ControlFlowNode for Attribute() | tarslip.py:17:5:17:9 | GSSA Variable entry | +| tarslip.py:17:5:17:9 | GSSA Variable entry | tarslip.py:18:17:18:21 | ControlFlowNode for entry | +| tarslip.py:33:7:33:39 | ControlFlowNode for Attribute() | tarslip.py:34:5:34:9 | GSSA Variable entry | +| tarslip.py:34:5:34:9 | GSSA Variable entry | tarslip.py:37:17:37:21 | ControlFlowNode for entry | +| tarslip.py:40:7:40:39 | ControlFlowNode for Attribute() | tarslip.py:41:24:41:26 | ControlFlowNode for tar | +| tarslip.py:56:7:56:39 | ControlFlowNode for Attribute() | tarslip.py:57:5:57:9 | GSSA Variable entry | +| tarslip.py:57:5:57:9 | GSSA Variable entry | tarslip.py:59:21:59:25 | ControlFlowNode for entry | +| tarslip.py:79:7:79:39 | ControlFlowNode for Attribute() | tarslip.py:80:5:80:9 | GSSA Variable entry | +| tarslip.py:80:5:80:9 | GSSA Variable entry | tarslip.py:82:21:82:25 | ControlFlowNode for entry | +nodes +| tarslip.py:12:7:12:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tarslip.py:13:1:13:3 | ControlFlowNode for tar | semmle.label | ControlFlowNode for tar | +| tarslip.py:16:7:16:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tarslip.py:17:5:17:9 | GSSA Variable entry | semmle.label | GSSA Variable entry | +| tarslip.py:18:17:18:21 | ControlFlowNode for entry | semmle.label | ControlFlowNode for entry | +| tarslip.py:33:7:33:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tarslip.py:34:5:34:9 | GSSA Variable entry | semmle.label | GSSA Variable entry | +| tarslip.py:37:17:37:21 | ControlFlowNode for entry | semmle.label | ControlFlowNode for entry | +| tarslip.py:40:7:40:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tarslip.py:41:24:41:26 | ControlFlowNode for tar | semmle.label | ControlFlowNode for tar | +| tarslip.py:56:7:56:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tarslip.py:57:5:57:9 | GSSA Variable entry | semmle.label | GSSA Variable entry | +| tarslip.py:59:21:59:25 | ControlFlowNode for entry | semmle.label | ControlFlowNode for entry | +| tarslip.py:79:7:79:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tarslip.py:80:5:80:9 | GSSA Variable entry | semmle.label | GSSA Variable entry | +| tarslip.py:82:21:82:25 | ControlFlowNode for entry | semmle.label | ControlFlowNode for entry | +subpaths #select -| tarslip.py:13:1:13:3 | tar | tarslip.py:12:7:12:39 | tarfile.open | tarslip.py:13:1:13:3 | tarfile.open | Extraction of tarfile from $@ | tarslip.py:12:7:12:39 | Attribute() | a potentially untrusted source | -| tarslip.py:18:17:18:21 | entry | tarslip.py:16:7:16:39 | tarfile.open | tarslip.py:18:17:18:21 | tarfile.entry | Extraction of tarfile from $@ | tarslip.py:16:7:16:39 | Attribute() | a potentially untrusted source | -| tarslip.py:37:17:37:21 | entry | tarslip.py:33:7:33:39 | tarfile.open | tarslip.py:37:17:37:21 | tarfile.entry | Extraction of tarfile from $@ | tarslip.py:33:7:33:39 | Attribute() | a potentially untrusted source | -| tarslip.py:41:24:41:26 | tar | tarslip.py:40:7:40:39 | tarfile.open | tarslip.py:41:24:41:26 | tarfile.open | Extraction of tarfile from $@ | tarslip.py:40:7:40:39 | Attribute() | a potentially untrusted source | -| tarslip.py:59:21:59:25 | entry | tarslip.py:56:7:56:39 | tarfile.open | tarslip.py:59:21:59:25 | tarfile.entry | Extraction of tarfile from $@ | tarslip.py:56:7:56:39 | Attribute() | a potentially untrusted source | +| tarslip.py:13:1:13:3 | ControlFlowNode for tar | tarslip.py:12:7:12:39 | ControlFlowNode for Attribute() | tarslip.py:13:1:13:3 | ControlFlowNode for tar | Extraction of tarfile from $@ | tarslip.py:12:7:12:39 | ControlFlowNode for Attribute() | a potentially untrusted source | +| tarslip.py:18:17:18:21 | ControlFlowNode for entry | tarslip.py:16:7:16:39 | ControlFlowNode for Attribute() | tarslip.py:18:17:18:21 | ControlFlowNode for entry | Extraction of tarfile from $@ | tarslip.py:16:7:16:39 | ControlFlowNode for Attribute() | a potentially untrusted source | +| tarslip.py:37:17:37:21 | ControlFlowNode for entry | tarslip.py:33:7:33:39 | ControlFlowNode for Attribute() | tarslip.py:37:17:37:21 | ControlFlowNode for entry | Extraction of tarfile from $@ | tarslip.py:33:7:33:39 | ControlFlowNode for Attribute() | a potentially untrusted source | +| tarslip.py:41:24:41:26 | ControlFlowNode for tar | tarslip.py:40:7:40:39 | ControlFlowNode for Attribute() | tarslip.py:41:24:41:26 | ControlFlowNode for tar | Extraction of tarfile from $@ | tarslip.py:40:7:40:39 | ControlFlowNode for Attribute() | a potentially untrusted source | +| tarslip.py:59:21:59:25 | ControlFlowNode for entry | tarslip.py:56:7:56:39 | ControlFlowNode for Attribute() | tarslip.py:59:21:59:25 | ControlFlowNode for entry | Extraction of tarfile from $@ | tarslip.py:56:7:56:39 | ControlFlowNode for Attribute() | a potentially untrusted source | +| tarslip.py:82:21:82:25 | ControlFlowNode for entry | tarslip.py:79:7:79:39 | ControlFlowNode for Attribute() | tarslip.py:82:21:82:25 | ControlFlowNode for entry | Extraction of tarfile from $@ | tarslip.py:79:7:79:39 | ControlFlowNode for Attribute() | a potentially untrusted source | From 40b61fa85fef5e758cba013c68b756177b0af98c Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 15 Jun 2022 14:07:35 +0200 Subject: [PATCH 043/736] python: fix qldocs and clean-up dead code --- .../dataflow/TarSlipCustomizations.qll | 24 ++++++------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll index 7393b129f37..21d7cc03e74 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll @@ -90,7 +90,7 @@ module TarSlip { } } - /* Members argument to extract method */ + /** The `members` argument `extractall` is considered a sink. */ class ExtractMembersSink extends Sink { ExtractMembersSink() { exists(DataFlow::CallCfgNode call | @@ -105,6 +105,10 @@ module TarSlip { } } + /** + * For a "check-like function name" (matching `"%path"`), `checkPath`, + * and a call `checkPath(info.name)`, the variable `info` is considered checked. + */ class TarFileInfoSanitizer extends SanitizerGuard { ControlFlowNode tarInfo; @@ -117,9 +121,9 @@ module TarSlip { attr.getObject() = tarInfo | // Assume that any test with "path" in it is a sanitizer - call.getAChild*().(AttrNode).getName().matches("%path") + call.getAChild*().(AttrNode).getName().toLowerCase().matches("%path") or - call.getAChild*().(NameNode).getId().matches("%path") + call.getAChild*().(NameNode).getId().toLowerCase().matches("%path") ) } @@ -127,19 +131,5 @@ module TarSlip { checked = tarInfo and branch in [true, false] } - - DataFlow::ExprNode shouldGuard() { - tarInfo.dominates(result.asCfgNode()) and - // exists(EssaDefinition def | - // def.getAUse() = tarInfo and - // def.getAUse() = result.asCfgNode() - // ) and - exists(SsaSourceVariable v | - v.getAUse() = tarInfo and - v.getAUse() = result.asCfgNode() - ) - } } - - DataFlow::ExprNode getAGuardedNode(TarFileInfoSanitizer tfis) { result = tfis.getAGuardedNode() } } From 0608d4d2f991180cff54881d08296938eee9f907 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Wed, 15 Jun 2022 14:18:29 +0200 Subject: [PATCH 044/736] python: fix alerts Also, remove the `toLowerCase` again, as I do not know what effect it will have. --- .../security/dataflow/TarSlipCustomizations.qll | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll index 21d7cc03e74..d767f90c5c6 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll @@ -51,6 +51,8 @@ module TarSlip { } /** + * A sanitizer based on file name. This beacuse we extract the standard library. + * * For efficiency we don't want to track the flow of taint * around the tarfile module. */ @@ -59,6 +61,8 @@ module TarSlip { } /** + * A sink capturing method calls to `extractall`. + * * For a call to `file.extractall` without arguments, `file` is considered a sink. */ class ExtractAllSink extends Sink { @@ -106,7 +110,9 @@ module TarSlip { } /** - * For a "check-like function name" (matching `"%path"`), `checkPath`, + * A sanitizer guard heuristic. + * + * For a "check-like function-name" (matching `"%path"`), `checkPath`, * and a call `checkPath(info.name)`, the variable `info` is considered checked. */ class TarFileInfoSanitizer extends SanitizerGuard { @@ -121,9 +127,9 @@ module TarSlip { attr.getObject() = tarInfo | // Assume that any test with "path" in it is a sanitizer - call.getAChild*().(AttrNode).getName().toLowerCase().matches("%path") + call.getAChild*().(AttrNode).getName().matches("%path") or - call.getAChild*().(NameNode).getId().toLowerCase().matches("%path") + call.getAChild*().(NameNode).getId().matches("%path") ) } From 24c9aff2fc477a011d6175dedfd4ead005955378 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Wed, 15 Jun 2022 15:58:17 +0200 Subject: [PATCH 045/736] Python: Fix a type-tracking test --- python/ql/test/experimental/dataflow/typetracking/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/test/experimental/dataflow/typetracking/test.py b/python/ql/test/experimental/dataflow/typetracking/test.py index 4392e3bbf46..407524d949d 100644 --- a/python/ql/test/experimental/dataflow/typetracking/test.py +++ b/python/ql/test/experimental/dataflow/typetracking/test.py @@ -135,7 +135,7 @@ class Bar(Foo): def track_self(self): # $ tracked_self self.meth1() # $ tracked_self super().meth2() - super(Bar, self).foo3() # $ tracked_self + super(Bar, self).meth3() # $ tracked_self # ------------------------------------------------------------------------------ # Tracking of attribute lookup after "long" import chain From b2c8e0fe8d5edca2fc2b473b5e418260b8e4bcb3 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Wed, 15 Jun 2022 15:59:54 +0200 Subject: [PATCH 046/736] Python: Add comment to test --- python/ql/test/experimental/dataflow/typetracking/test.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python/ql/test/experimental/dataflow/typetracking/test.py b/python/ql/test/experimental/dataflow/typetracking/test.py index 407524d949d..819d85c1d8a 100644 --- a/python/ql/test/experimental/dataflow/typetracking/test.py +++ b/python/ql/test/experimental/dataflow/typetracking/test.py @@ -65,6 +65,9 @@ def to_inner_scope(): also_x = foo() # $ MISSING: tracked print(also_x) # $ MISSING: tracked +# ------------------------------------------------------------------------------ +# Function decorator +# ------------------------------------------------------------------------------ def my_decorator(func): # This part doesn't make any sense in a normal decorator, but just shows how we From 5f32f898d5bb55fa8c61df132419cebb161b370c Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Wed, 15 Jun 2022 16:16:34 +0200 Subject: [PATCH 047/736] Python: API-graphs: test class decorators and subclass A class decorator could change the class definition in any way. In this specific case, it would be better if we allowed the subclass to be found with API graphs still. inspired by https://github.com/django/django/blob/c2250cfb80e27cdf8d098428824da2800a18cadf/tests/auth_tests/test_views.py#L40-L46 --- .../library-tests/ApiGraphs/py3/deftest2.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/python/ql/test/library-tests/ApiGraphs/py3/deftest2.py b/python/ql/test/library-tests/ApiGraphs/py3/deftest2.py index 63234fa11fc..276b5ca3212 100644 --- a/python/ql/test/library-tests/ApiGraphs/py3/deftest2.py +++ b/python/ql/test/library-tests/ApiGraphs/py3/deftest2.py @@ -16,4 +16,19 @@ def internal(): def my_internal_method(self): #$ def=moduleImport("pflask").getMember("views").getMember("View").getASubclass().getMember("my_internal_method") pass - int_instance = IntMyView() #$ use=moduleImport("pflask").getMember("views").getMember("View").getASubclass().getReturn() \ No newline at end of file + int_instance = IntMyView() #$ use=moduleImport("pflask").getMember("views").getMember("View").getASubclass().getReturn() + +# ------------------------------------------------------------------------------ +# Class decorator +# ------------------------------------------------------------------------------ + +def my_class_decorator(cls): + print("dummy decorator") + return cls + +@my_class_decorator +class MyViewWithDecorator(View): #$ use=moduleImport("flask").getMember("views").getMember("View").getASubclass() + pass + +class SubclassFromDecorated(MyViewWithDecorator): #$ MISSING: use=moduleImport("flask").getMember("views").getMember("View").getASubclass().getASubclass() + pass From d6e68258a4398111d56cf486c6656b269379aa4b Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Wed, 15 Jun 2022 17:30:21 +0200 Subject: [PATCH 048/736] Python: API-graphs: allow class decorators in `.getASubclass()` --- .../2022-06-15-class-decorator-api-subclass.md | 4 ++++ python/ql/lib/semmle/python/ApiGraphs.qll | 14 ++++++++++++-- .../test/library-tests/ApiGraphs/py3/deftest2.py | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 python/ql/lib/change-notes/2022-06-15-class-decorator-api-subclass.md diff --git a/python/ql/lib/change-notes/2022-06-15-class-decorator-api-subclass.md b/python/ql/lib/change-notes/2022-06-15-class-decorator-api-subclass.md new file mode 100644 index 00000000000..04beefb14b6 --- /dev/null +++ b/python/ql/lib/change-notes/2022-06-15-class-decorator-api-subclass.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Change `.getASubclass()` on `API::Node` so it allows to follow subclasses even if the class has a class decorator. diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index fcb89e5f866..1023347b832 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -591,8 +591,18 @@ module API { or // Subclassing a node lbl = Label::subclass() and - exists(DataFlow::Node superclass | pred.flowsTo(superclass) | - ref.asExpr().(PY::ClassExpr).getABase() = superclass.asExpr() + exists(PY::ClassExpr clsExpr, DataFlow::Node superclass | pred.flowsTo(superclass) | + clsExpr.getABase() = superclass.asExpr() and + // Potentially a class decorator could do anything, but we assume they are + // "benign" and let subclasses edges flow through anyway. + // see example in https://github.com/django/django/blob/c2250cfb80e27cdf8d098428824da2800a18cadf/tests/auth_tests/test_views.py#L40-L46 + ( + not exists(clsExpr.getADecorator()) and + ref.asExpr() = clsExpr + or + ref.asExpr() = clsExpr.getADecoratorCall() and + not exists(PY::Call otherDecorator | otherDecorator.getArg(0) = ref.asExpr()) + ) ) or // awaiting diff --git a/python/ql/test/library-tests/ApiGraphs/py3/deftest2.py b/python/ql/test/library-tests/ApiGraphs/py3/deftest2.py index 276b5ca3212..ef15ece04f6 100644 --- a/python/ql/test/library-tests/ApiGraphs/py3/deftest2.py +++ b/python/ql/test/library-tests/ApiGraphs/py3/deftest2.py @@ -30,5 +30,5 @@ def my_class_decorator(cls): class MyViewWithDecorator(View): #$ use=moduleImport("flask").getMember("views").getMember("View").getASubclass() pass -class SubclassFromDecorated(MyViewWithDecorator): #$ MISSING: use=moduleImport("flask").getMember("views").getMember("View").getASubclass().getASubclass() +class SubclassFromDecorated(MyViewWithDecorator): #$ use=moduleImport("flask").getMember("views").getMember("View").getASubclass().getASubclass() pass From b993558987e3e9286e83b397a0e3b6473b6953e1 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Wed, 15 Jun 2022 10:14:51 -0700 Subject: [PATCH 049/736] Update docs to include how to run a pack with path `scope/name@range:path` is a valid way to specify a set of queries. --- ...nalyzing-databases-with-the-codeql-cli.rst | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst index d3b04a32a0b..cac63f6d01f 100644 --- a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst +++ b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst @@ -135,6 +135,60 @@ pack names and use the ``--download`` flag:: The ``analyze`` command above runs the default suite from ``microsoft/coding-standards v1.0.0`` and the latest version of ``github/security-queries`` on the specified database. For further information about default suites, see ":ref:`Publishing and using CodeQL packs `". +Running a subset of queries in a CodeQL pack +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Additionally, you can include a path at the end of a pack specification to run a subset of queries inside the pack. This applies to any command that locates or runs queries within a pack. + +The complete way to specify a set of queries is in the form ``scope/name@range:path``, where: + +- ``scope/name`` is the qualified name of a CodeQL pack. +- ``range`` is a `semver range `_. +- ``path`` is a file system path to a single query, a directory containing queries, or a query suite file. + +If a ``scope/name`` is specified, the ``range`` and ``path`` are +optional. A missing ``range`` implies the latest version of the +specified pack. A missing ``path`` implies the default query suite +of the specified pack. + +The ``path`` can be one of a ``*.ql`` query file, a directory +containing one or more queries, or a ``.qls`` query suite file. If +there is no pack name specified, then a ``path`` must be provided, +and will be interpreted relative to the current working directory +of the current process. + +If a ``scope/name`` and ``path`` are specified, then the ``path`` cannot +be absolute. It is considered relative to the root of the CodeQL +pack. + +The relevant commands are: + +* `codeql database analyze <../manual/database-analyze>`__. +* `codeql database run-queries <../manual/database-run-queries>`__. +* `codeql execute queries <../manual/execute-queries>`__. +* `codeql resolve queries <../manual/resolve-queries>`__. + +For example:: + + # Analyze a database using all queries in the experimental/Security folder within the codeql/cpp-queries + # CodeQL query pack. + codeql database analyze --format=sarif-latest --output=results \ + codeql/cpp-queries:experimental/Security + + # Analyse using only the RedundantNullCheckParam.ql query in the codeql/cpp-queries CodeQL query pack. + codeql database analyze --format=sarif-latest --output=results \ + 'codeql/cpp-queries:experimental/Likely Bugs/RedundantNullCheckParam.ql' + + # Analyse using the cpp-security-and-quality.qls query suite in the codeql/cpp-queries CodeQL query pack. + codeql database analyze --format=sarif-latest --output=results \ + 'codeql/cpp-queries:codeql-suites/cpp-security-and-quality.qls' + + # Analyse using the cpp-security-and-quality.qls query suite from a version of the codeql/cpp-queries pack + # that is >= 0.0.3 and < 0.1.0 (the highest compatible version will be chosen). + # All valid semver ranges are allowed. See https://docs.npmjs.com/cli/v6/using-npm/semver#ranges + codeql database analyze --format=sarif-latest --output=results \ + 'codeql/cpp-queries@~0.0.3:codeql-suites/cpp-security-and-quality.qls' + For more information about CodeQL packs, see :doc:`About CodeQL Packs `. Running query suites From 5931ea4ab80113b66dfa5bf26df30cd80aefe102 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Wed, 15 Jun 2022 16:42:32 -0700 Subject: [PATCH 050/736] Add section on managing packs on GHES --- .../publishing-and-using-codeql-packs.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst index d28e27e10d7..0a1affb782b 100644 --- a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst +++ b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst @@ -72,3 +72,21 @@ The ``analyze`` command will run the default suite of any specified CodeQL packs :: codeql analyze / / + +Managing packs on GitHub Enterprise Server +------------------------------------------ + +By default, CodeQL will download packs from and publish packs to the GitHub.com Container registry. +You can manage packs on GitHub Enterprise Server 3.6 and later by creating a ``qlconfig.yml`` file to tell CodeQL which Container registry to use for each pack. +Create the ``~/.codeql/qlconfig.yml`` file using your preferred text editor, and add entries to specify which registry to use for each pack name pattern. +For example, the following ``qlconfig.yml`` file associates all packs with the Container registry for the GitHub Enterprise Server at ``GHE_HOSTNAME``, except packs matching ``codeql/*``, which are associated with the GitHub.com Container registry: + +.. code-block:: yaml + + registries: + - packages: '*' + url: https://containers.GHE_HOSTNAME/v2/ + - packages: 'codeql/*' + url: https://ghcr.io/v2/ + +You can now use ``codeql pack publish``, ``codeql pack download``, and ``codeql database analyze`` to manage packs on GitHub Enterprise Server. From e4462b7aacd5ea62ea3676c2f7d8603a47c7b3aa Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Thu, 16 Jun 2022 14:35:55 -0700 Subject: [PATCH 051/736] Add a section on authenticating to Container registries --- .../publishing-and-using-codeql-packs.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst index 0a1affb782b..4e7b8d452ac 100644 --- a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst +++ b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst @@ -90,3 +90,21 @@ For example, the following ``qlconfig.yml`` file associates all packs with the C url: https://ghcr.io/v2/ You can now use ``codeql pack publish``, ``codeql pack download``, and ``codeql database analyze`` to manage packs on GitHub Enterprise Server. + +Authenticating to GitHub Container registries +--------------------------------------------- + +You can download a private pack or publish a pack by authenticating to the appropriate GitHub Container registry. + +You can authenticate to the GitHub.com Container registry in two ways: + +1. Pass the ``--github-auth-stdin`` option to the CodeQL CLI, then supply a GitHub Apps token or personal access token via standard input. +2. Set the ``GITHUB_TOKEN`` environment variable to a GitHub Apps token or personal access token. + +Similarly, you can authenticate to a GHES Container registry, or authenticate to multiple registries simultaneously (for example to download or analyze private packs from multiple registries) in two ways: + +1. Pass the ``--registries-auth-stdin`` option to the CodeQL CLI, then supply a registry authentication string via standard input. +2. Set the ``CODEQL_REGISTRIES_AUTH`` environment variable to a registry authentication string. + +A registry authentication string is a comma-separated list of ``=`` pairs, where ``registry-url`` is a GitHub Container registry URL, for example ``https://containers.GHE_HOSTNAME/v2/`` and ``token`` is a GitHub Apps token or personal access token for that GitHub Container registry. +This ensures that each token is only passed to the Container registry you specify. From 4733653939b7d895c0f624086e7c8ad5d1b36652 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Thu, 16 Jun 2022 15:08:16 -0700 Subject: [PATCH 052/736] Add a note on how to install dependencies from GHES --- .../codeql-cli/creating-and-working-with-codeql-packs.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/codeql/codeql-cli/creating-and-working-with-codeql-packs.rst b/docs/codeql/codeql-cli/creating-and-working-with-codeql-packs.rst index 6373440bcbb..e6a679c89a9 100644 --- a/docs/codeql/codeql-cli/creating-and-working-with-codeql-packs.rst +++ b/docs/codeql/codeql-cli/creating-and-working-with-codeql-packs.rst @@ -68,3 +68,11 @@ This command downloads all dependencies to the shared cache on the local disk. Note Running the ``codeql pack add`` and ``codeql pack install`` commands will generate or update the ``qlpack.lock.yml`` file. This file should be checked-in to version control. The ``qlpack.lock.yml`` file contains the precise version numbers used by the pack. + +.. pull-quote:: + + Note + + By default ``codeql pack install`` will install dependencies from the GitHub.com Container registry. + You can install dependencies from a GitHub Enterprise Server Container registry by creating a ``qlconfig.yml`` file. + For more information, see ":doc:`Publishing and using CodeQL packs `." From f1b0a814e057d02a72e95a1cc99313359199fe3d Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 17 Jun 2022 15:04:57 +0200 Subject: [PATCH 053/736] Python: Apply suggestions from code review Co-authored-by: yoff --- python/ql/lib/semmle/python/ApiGraphs.qll | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index 1023347b832..256fe6442f4 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -597,11 +597,9 @@ module API { // "benign" and let subclasses edges flow through anyway. // see example in https://github.com/django/django/blob/c2250cfb80e27cdf8d098428824da2800a18cadf/tests/auth_tests/test_views.py#L40-L46 ( - not exists(clsExpr.getADecorator()) and ref.asExpr() = clsExpr or - ref.asExpr() = clsExpr.getADecoratorCall() and - not exists(PY::Call otherDecorator | otherDecorator.getArg(0) = ref.asExpr()) + ref.asExpr() = clsExpr.getADecoratorCall() ) ) or From 8aa2602d9e24a0e2b3ebae1836630c818116f376 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Sat, 18 Jun 2022 03:09:04 +0000 Subject: [PATCH 054/736] trying to hone in on eq comparison and include? --- .../ManuallyCheckHttpVerb.ql | 56 ++++++++++--------- 1 file changed, 30 insertions(+), 26 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 ab71ba45d46..ac34ad34088 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -1,6 +1,6 @@ /** * @name Manually checking http verb instead of using built in rails routes and protections - * @description 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 mappting resources and verbs to specific methods. + * @description 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 mappting resources and verbs to specific methods. * @kind problem * @problem.severity error * @security-severity 7.0 @@ -20,59 +20,63 @@ class ManuallyCheckHttpVerb extends DataFlow::CallNode { this instanceof CheckPostRequest or this instanceof CheckDeleteRequest or this instanceof CheckHeadRequest or - this.asExpr().getExpr() instanceof CheckRequestMethodFromEnv + this instanceof CheckRequestMethodFromEnv } } -class CheckRequestMethodFromEnv extends ComparisonOperation { +class CheckRequestMethodFromEnv extends DataFlow::CallNode { CheckRequestMethodFromEnv() { - this.getAnOperand() instanceof GetRequestMethodFromEnv + // is this node an instance of `env["REQUEST_METHOD"] + this.getExprNode().getNode() instanceof GetRequestMethodFromEnv and + ( + // and is this node a param of a call to `.include?` + exists(MethodCall call | call.getAnArgument() = this.getExprNode().getNode() | + call.getMethodName() = "include?" + ) + or + exists(DataFlow::Node node | + node.asExpr().getExpr().(MethodCall).getMethodName() = "include?" + | + node.getALocalSource() = this + ) + or + // or is this node on either size of an equality comparison + exists(EqualityOperation eq | eq.getAChild() = this.getExprNode().getNode()) + ) } } class GetRequestMethodFromEnv extends ElementReference { GetRequestMethodFromEnv() { - this.getAChild+().toString() = "REQUEST_METHOD" // and - // this.getReceiver().toString() = "env" + this.getAChild+().toString() = "REQUEST_METHOD" and + this.getAChild+().toString() = "env" } } class CheckGetRequest extends DataFlow::CallNode { - CheckGetRequest() { - this.getMethodName() = "get?" - } + CheckGetRequest() { this.getMethodName() = "get?" } } class CheckPostRequest extends DataFlow::CallNode { - CheckPostRequest() { - this.getMethodName() = "post?" - } + CheckPostRequest() { this.getMethodName() = "post?" } } class CheckPutRequest extends DataFlow::CallNode { - CheckPutRequest() { - this.getMethodName() = "put?" - } + CheckPutRequest() { this.getMethodName() = "put?" } } class CheckPatchRequest extends DataFlow::CallNode { - CheckPatchRequest() { - this.getMethodName() = "patch?" - } + CheckPatchRequest() { this.getMethodName() = "patch?" } } class CheckDeleteRequest extends DataFlow::CallNode { - CheckDeleteRequest() { - this.getMethodName() = "delete?" - } + CheckDeleteRequest() { this.getMethodName() = "delete?" } } class CheckHeadRequest extends DataFlow::CallNode { - CheckHeadRequest() { - this.getMethodName() = "head?" - } + CheckHeadRequest() { this.getMethodName() = "head?" } } from ManuallyCheckHttpVerb check -where check.asExpr().getExpr().getAControlFlowNode().isCondition() -select check, "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 mappting resources and verbs to specific methods." \ No newline at end of file +select check, + "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 mappting resources and verbs to specific methods." From 059c4d38ad97b4972f0be1e4e878fbd32ad3b10c Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Sat, 18 Jun 2022 18:26:45 +0000 Subject: [PATCH 055/736] refine query to use appropriate types --- .../ManuallyCheckHttpVerb.ql | 26 ++++++++++--------- .../ManuallyCheckHttpVerb.expected | 0 2 files changed, 14 insertions(+), 12 deletions(-) create mode 100644 ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.expected 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 ac34ad34088..7396e75b920 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -12,15 +12,14 @@ import ruby import codeql.ruby.DataFlow -class ManuallyCheckHttpVerb extends DataFlow::CallNode { - ManuallyCheckHttpVerb() { +class HttpVerbMethod extends MethodCall { + HttpVerbMethod() { this instanceof CheckGetRequest or this instanceof CheckPostRequest or this instanceof CheckPatchRequest or this instanceof CheckPostRequest or this instanceof CheckDeleteRequest or - this instanceof CheckHeadRequest or - this instanceof CheckRequestMethodFromEnv + this instanceof CheckHeadRequest } } @@ -53,30 +52,33 @@ class GetRequestMethodFromEnv extends ElementReference { } } -class CheckGetRequest extends DataFlow::CallNode { +class CheckGetRequest extends MethodCall { CheckGetRequest() { this.getMethodName() = "get?" } } -class CheckPostRequest extends DataFlow::CallNode { +class CheckPostRequest extends MethodCall { CheckPostRequest() { this.getMethodName() = "post?" } } -class CheckPutRequest extends DataFlow::CallNode { +class CheckPutRequest extends MethodCall { CheckPutRequest() { this.getMethodName() = "put?" } } -class CheckPatchRequest extends DataFlow::CallNode { +class CheckPatchRequest extends MethodCall { CheckPatchRequest() { this.getMethodName() = "patch?" } } -class CheckDeleteRequest extends DataFlow::CallNode { +class CheckDeleteRequest extends MethodCall { CheckDeleteRequest() { this.getMethodName() = "delete?" } } -class CheckHeadRequest extends DataFlow::CallNode { +class CheckHeadRequest extends MethodCall { CheckHeadRequest() { this.getMethodName() = "head?" } } -from ManuallyCheckHttpVerb check -select check, +from CheckRequestMethodFromEnv env, AstNode node +where + node instanceof HttpVerbMethod or + node = env.asExpr().getExpr() +select node, "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 mappting resources and verbs to specific methods." diff --git a/ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.expected b/ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.expected new file mode 100644 index 00000000000..e69de29bb2d From 8b3619102395283814944424ed142ee843a22a97 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Sat, 18 Jun 2022 18:38:58 +0000 Subject: [PATCH 056/736] drop precision to low for now --- .../manually-check-http-verb/ManuallyCheckHttpVerb.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 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 7396e75b920..5be00b48464 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -3,8 +3,8 @@ * @description 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 mappting resources and verbs to specific methods. * @kind problem * @problem.severity error - * @security-severity 7.0 - * @precision medium + * @security-severity 5.0 + * @precision low * @id rb/manually-checking-http-verb * @tags security */ From ecb2114b7bb709a67160334db0234172caed31e3 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Sat, 18 Jun 2022 19:21:17 +0000 Subject: [PATCH 057/736] replace duplicate post with put --- .../manually-check-http-verb/ManuallyCheckHttpVerb.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5be00b48464..6946d26a7e8 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -17,7 +17,7 @@ class HttpVerbMethod extends MethodCall { this instanceof CheckGetRequest or this instanceof CheckPostRequest or this instanceof CheckPatchRequest or - this instanceof CheckPostRequest or + this instanceof CheckPutRequest or this instanceof CheckDeleteRequest or this instanceof CheckHeadRequest } From 3478e7e9109fc216e741c42a999f56697c70bf1d Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Sat, 18 Jun 2022 20:43:58 +0000 Subject: [PATCH 058/736] first draft of weak params query --- .../experimental/weak-params/WeakParams.ql | 46 +++++++++++++++++++ .../security/weak-params/WeakParams.expected | 0 .../security/weak-params/WeakParams.qlref | 1 + .../security/weak-params/WeakParams.rb | 15 ++++++ 4 files changed, 62 insertions(+) create mode 100644 ruby/ql/src/experimental/weak-params/WeakParams.ql create mode 100644 ruby/ql/test/query-tests/security/weak-params/WeakParams.expected create mode 100644 ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref create mode 100644 ruby/ql/test/query-tests/security/weak-params/WeakParams.rb diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql new file mode 100644 index 00000000000..b756d6ed8b8 --- /dev/null +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -0,0 +1,46 @@ +/** + * @name Weak or direct parameter references are used + * @description Directly checking request parameters without following a strong params pattern can lead to unintentional avenues for injection attacks. + * @kind problem + * @problem.severity error + * @security-severity 5.0 + * @precision low + * @id rb/weak-params + * @tags security + */ + +import ruby + +class WeakParams extends AstNode { + WeakParams() { + this instanceof UnspecificParamsMethod or + this instanceof ParamsReference + } +} + +class StrongParamsMethod extends Method { + StrongParamsMethod() { this.getName().regexpMatch(".*_params") } +} + +class UnspecificParamsMethod extends MethodCall { + UnspecificParamsMethod() { + ( + this.getMethodName() = "expose_all" or + this.getMethodName() = "original_hash" or + this.getMethodName() = "path_parametes" or + this.getMethodName() = "query_parameters" or + this.getMethodName() = "request_parameters" or + this.getMethodName() = "GET" or + this.getMethodName() = "POST" + ) + } +} + +class ParamsReference extends ElementReference { + ParamsReference() { this.getAChild().toString() = "params" } +} + +from WeakParams params +where not params.getEnclosingMethod() instanceof StrongParamsMethod +select params, + "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." diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.expected b/ruby/ql/test/query-tests/security/weak-params/WeakParams.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref b/ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref new file mode 100644 index 00000000000..5350e4bf40a --- /dev/null +++ b/ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref @@ -0,0 +1 @@ +experimental/weak-params/WeakParams.ql \ No newline at end of file diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb b/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb new file mode 100644 index 00000000000..cc0dc80341f --- /dev/null +++ b/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb @@ -0,0 +1,15 @@ +class TestController < ActionController::Base + def create + TestObject.new(request.request_parameters) + end + + def create_query + TestObject.new(request.query_parameters) + end + + # + def object_params + p = params.query_parameters + params.require(:uuid).permit(:notes) + end +end \ No newline at end of file From 3a4f0299c728b9fc81f65405dd3ee68d606c9546 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Fri, 17 Jun 2022 15:15:25 +0200 Subject: [PATCH 059/736] fix typo --- javascript/ql/src/Expressions/TypoDatabase.qll | 2 ++ ql/ql/src/codeql_ql/ast/internal/Predicate.qll | 2 +- ql/ql/src/codeql_ql/style/TypoDatabase.qll | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/javascript/ql/src/Expressions/TypoDatabase.qll b/javascript/ql/src/Expressions/TypoDatabase.qll index aad43d9d0cc..fadc1b8af75 100644 --- a/javascript/ql/src/Expressions/TypoDatabase.qll +++ b/javascript/ql/src/Expressions/TypoDatabase.qll @@ -5793,6 +5793,8 @@ predicate typos(string wrong, string right) { or wrong = "paramters" and right = "parameters" or + wrong = "parametarized" and right = "parameterized" + or wrong = "paranthesis" and right = "parenthesis" or wrong = "paraphenalia" and right = "paraphernalia" diff --git a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll index eb7e298b7cd..0e614c23c25 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll @@ -176,7 +176,7 @@ module PredConsistency { c > 1 and resolvePredicateExpr(pe, p) } - // This can happen with parametarized modules + // This can happen with parameterized modules /* * query predicate multipleResolveCall(Call call, int c, PredicateOrBuiltin p) { * c = diff --git a/ql/ql/src/codeql_ql/style/TypoDatabase.qll b/ql/ql/src/codeql_ql/style/TypoDatabase.qll index aad43d9d0cc..fadc1b8af75 100644 --- a/ql/ql/src/codeql_ql/style/TypoDatabase.qll +++ b/ql/ql/src/codeql_ql/style/TypoDatabase.qll @@ -5793,6 +5793,8 @@ predicate typos(string wrong, string right) { or wrong = "paramters" and right = "parameters" or + wrong = "parametarized" and right = "parameterized" + or wrong = "paranthesis" and right = "parenthesis" or wrong = "paraphenalia" and right = "paraphernalia" From a59f0d36f55fac849e2fa97d7db40dbddd929c2e Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Fri, 17 Jun 2022 18:06:12 +0200 Subject: [PATCH 060/736] run the implicit-this patch on QL-for-QL --- ql/ql/src/codeql_ql/ast/Ast.qll | 2 +- ql/ql/src/codeql_ql/dataflow/DataFlow.qll | 16 +++++++++------- ql/ql/src/queries/reports/FrameworkCoverage.ql | 6 ++++-- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index fa551b0de83..ffd8d07cd2a 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -1167,7 +1167,7 @@ class Import extends TImport, ModuleMember, TypeRef { */ string getImportString() { exists(string selec | - not exists(getSelectionName(_)) and selec = "" + not exists(this.getSelectionName(_)) and selec = "" or selec = "::" + strictconcat(int i, string q | q = this.getSelectionName(i) | q, "::" order by i) diff --git a/ql/ql/src/codeql_ql/dataflow/DataFlow.qll b/ql/ql/src/codeql_ql/dataflow/DataFlow.qll index da8bc1da837..c9043416bae 100644 --- a/ql/ql/src/codeql_ql/dataflow/DataFlow.qll +++ b/ql/ql/src/codeql_ql/dataflow/DataFlow.qll @@ -204,7 +204,7 @@ class SuperNode extends LocalFlow::TSuperNode { Node getANode() { LocalFlow::getRepr(result) = repr } /** Gets an AST node from any of the nodes in this super node. */ - AstNode asAstNode() { result = getANode().asAstNode() } + AstNode asAstNode() { result = this.getANode().asAstNode() } /** * Gets a single node from this super node. @@ -214,23 +214,25 @@ class SuperNode extends LocalFlow::TSuperNode { * - An `AstNodeNode` is preferred over other nodes. * - A node occurring earlier is preferred over one occurring later. */ - Node getArbitraryRepr() { result = min(Node n | n = getANode() | n order by getInternalId(n)) } + Node getArbitraryRepr() { + result = min(Node n | n = this.getANode() | n order by getInternalId(n)) + } /** * Gets the predicate containing all nodes that are part of this super node. */ - Predicate getEnclosingPredicate() { result = getANode().getEnclosingPredicate() } + Predicate getEnclosingPredicate() { result = this.getANode().getEnclosingPredicate() } /** Gets a string representation of this super node. */ string toString() { exists(int c | - c = strictcount(getANode()) and - result = "Super node of " + c + " nodes in " + getEnclosingPredicate().getName() + c = strictcount(this.getANode()) and + result = "Super node of " + c + " nodes in " + this.getEnclosingPredicate().getName() ) } /** Gets the location of an arbitrary node in this super node. */ - Location getLocation() { result = getArbitraryRepr().getLocation() } + Location getLocation() { result = this.getArbitraryRepr().getLocation() } /** Gets any member call whose receiver is in the same super node. */ MemberCall getALocalMemberCall() { superNode(result.getBase()) = this } @@ -287,7 +289,7 @@ class SuperNode extends LocalFlow::TSuperNode { cached private string getAStringValue(Tracker t) { t.start() and - result = asAstNode().(String).getValue() + result = this.asAstNode().(String).getValue() or exists(SuperNode pred, Tracker t2 | this = pred.track(t2, t) and diff --git a/ql/ql/src/queries/reports/FrameworkCoverage.ql b/ql/ql/src/queries/reports/FrameworkCoverage.ql index 7f5eb7f5310..f394a5a0091 100644 --- a/ql/ql/src/queries/reports/FrameworkCoverage.ql +++ b/ql/ql/src/queries/reports/FrameworkCoverage.ql @@ -18,11 +18,13 @@ class PackageImportCall extends PredicateCall { PackageImportCall() { this.getQualifier().getName() = ["API", "DataFlow"] and this.getPredicateName() = ["moduleImport", "moduleMember"] and - not isExcludedFile(getLocation().getFile()) + not isExcludedFile(this.getLocation().getFile()) } /** Gets the name of a package referenced by this call */ - string getAPackageName() { result = DataFlow::superNode(getArgument(0)).getAStringValueNoCall() } + string getAPackageName() { + result = DataFlow::superNode(this.getArgument(0)).getAStringValueNoCall() + } } /** Gets a reference to `package` or any transitive member thereof. */ From 7e93416e9728ba24d2936027d033607c952621e1 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Fri, 17 Jun 2022 21:32:19 +0200 Subject: [PATCH 061/736] only resolve module types if we know that the TypeExpr could possibly resolve to a module --- ql/ql/src/codeql_ql/ast/Ast.qll | 13 +++++++++++-- ql/ql/test/queries/style/RedundantCast/Foo.qll | 11 +++++++++++ .../style/RedundantCast/RedundantCast.expected | 3 +++ .../queries/style/RedundantCast/RedundantCast.qlref | 1 + 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 ql/ql/test/queries/style/RedundantCast/Foo.qll create mode 100644 ql/ql/test/queries/style/RedundantCast/RedundantCast.expected create mode 100644 ql/ql/test/queries/style/RedundantCast/RedundantCast.qlref diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index ffd8d07cd2a..09f6e35171f 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -682,8 +682,17 @@ class TypeExpr extends TType, TypeRef { // resolve type resolveTypeExpr(this, result) or - // if it resolves to a module - exists(FileOrModule mod | resolveModuleRef(this, mod) | result = mod.toType()) + // if it resolves to a module, + exists(FileOrModule mod | resolveModuleRef(this, mod) | result = mod.toType()) and + result instanceof ModuleType and + // we can get spurious results in some cases, so we restrict to where it is possible to have a module. + ( + // only possible if this is inside a moduleInstantiation. + this = any(ModuleExpr mod).getArgument(_).asType() + or + // or if it's a parameter to a parameterized module + this = any(SignatureExpr sig, Module mod | mod.hasParameter(_, _, sig) | sig).asType() + ) } override AstNode getAChild(string pred) { diff --git a/ql/ql/test/queries/style/RedundantCast/Foo.qll b/ql/ql/test/queries/style/RedundantCast/Foo.qll new file mode 100644 index 00000000000..d993f654bc4 --- /dev/null +++ b/ql/ql/test/queries/style/RedundantCast/Foo.qll @@ -0,0 +1,11 @@ +class Foo extends string { + Foo() { this = "Foo" } +} + +predicate test(Foo f) { f.(Foo).toString() = "X" } + +predicate test2(Foo a, Foo b) { a.(Foo) = b } + +predicate called(Foo a) { a.toString() = "X" } + +predicate test3(string s) { called(s.(Foo)) } diff --git a/ql/ql/test/queries/style/RedundantCast/RedundantCast.expected b/ql/ql/test/queries/style/RedundantCast/RedundantCast.expected new file mode 100644 index 00000000000..e4e57083633 --- /dev/null +++ b/ql/ql/test/queries/style/RedundantCast/RedundantCast.expected @@ -0,0 +1,3 @@ +| Foo.qll:5:25:5:31 | InlineCast | Redundant cast to $@ | Foo.qll:5:28:5:30 | TypeExpr | Foo | +| Foo.qll:7:33:7:39 | InlineCast | Redundant cast to $@ | Foo.qll:7:36:7:38 | TypeExpr | Foo | +| Foo.qll:11:36:11:42 | InlineCast | Redundant cast to $@ | Foo.qll:11:39:11:41 | TypeExpr | Foo | diff --git a/ql/ql/test/queries/style/RedundantCast/RedundantCast.qlref b/ql/ql/test/queries/style/RedundantCast/RedundantCast.qlref new file mode 100644 index 00000000000..659062d3ae5 --- /dev/null +++ b/ql/ql/test/queries/style/RedundantCast/RedundantCast.qlref @@ -0,0 +1 @@ +queries/style/RedundantCast.ql From 0391db67876892ef943108e44d52725f9dbbcfb5 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Fri, 17 Jun 2022 22:52:17 +0200 Subject: [PATCH 062/736] simplify some code based on review --- ql/ql/src/codeql_ql/ast/Ast.qll | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index 09f6e35171f..a237e1f6b58 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -2226,9 +2226,7 @@ class ModuleExpr extends TModuleExpr, TypeRef { or not exists(me.getName()) and result = me.getChild().(QL::SimpleId).getValue() or - exists(QL::ModuleInstantiation instantiation | instantiation.getParent() = me | - result = instantiation.getName().getChild().getValue() - ) + result = me.getChild().(QL::ModuleInstantiation).getName().getChild().getValue() } /** @@ -2263,9 +2261,7 @@ class ModuleExpr extends TModuleExpr, TypeRef { * The result is either a `PredicateExpr` or a `TypeExpr`. */ SignatureExpr getArgument(int i) { - exists(QL::ModuleInstantiation instantiation | instantiation.getParent() = me | - result.toQL() = instantiation.getChild(i) - ) + result.toQL() = me.getChild().(QL::ModuleInstantiation).getChild(i) } } From 638a886dfef9d4601feca560df5225071a22e1a8 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sat, 18 Jun 2022 16:43:56 +0200 Subject: [PATCH 063/736] move create-extractor-pack to a `scripts` folder --- .github/workflows/ql-for-ql-dataset_measure.yml | 2 +- .github/workflows/ql-for-ql-tests.yml | 2 +- ql/README.md | 4 ++-- ql/{ => scripts}/create-extractor-pack.ps1 | 0 ql/{ => scripts}/create-extractor-pack.sh | 0 5 files changed, 4 insertions(+), 4 deletions(-) rename ql/{ => scripts}/create-extractor-pack.ps1 (100%) rename ql/{ => scripts}/create-extractor-pack.sh (100%) diff --git a/.github/workflows/ql-for-ql-dataset_measure.yml b/.github/workflows/ql-for-ql-dataset_measure.yml index cf3b696f3b8..a5ed2e9b266 100644 --- a/.github/workflows/ql-for-ql-dataset_measure.yml +++ b/.github/workflows/ql-for-ql-dataset_measure.yml @@ -36,7 +36,7 @@ jobs: ql/target key: ${{ runner.os }}-qltest-cargo-${{ hashFiles('ql/**/Cargo.lock') }} - name: Build Extractor - run: cd ql; env "PATH=$PATH:`dirname ${CODEQL}`" ./create-extractor-pack.sh + run: cd ql; env "PATH=$PATH:`dirname ${CODEQL}`" ./scripts/create-extractor-pack.sh env: CODEQL: ${{ steps.find-codeql.outputs.codeql-path }} - name: Checkout ${{ matrix.repo }} diff --git a/.github/workflows/ql-for-ql-tests.yml b/.github/workflows/ql-for-ql-tests.yml index 3b0a4963b79..b016f21f2b9 100644 --- a/.github/workflows/ql-for-ql-tests.yml +++ b/.github/workflows/ql-for-ql-tests.yml @@ -36,7 +36,7 @@ jobs: run: | cd ql; codeqlpath=$(dirname ${{ steps.find-codeql.outputs.codeql-path }}); - env "PATH=$PATH:$codeqlpath" ./create-extractor-pack.sh + env "PATH=$PATH:$codeqlpath" ./scripts/create-extractor-pack.sh - name: Run QL tests run: | "${CODEQL}" test run --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --search-path "${{ github.workspace }}/ql/extractor-pack" --consistency-queries ql/ql/consistency-queries ql/ql/test diff --git a/ql/README.md b/ql/README.md index 4bb5e30ba84..29b5aaef63c 100644 --- a/ql/README.md +++ b/ql/README.md @@ -21,14 +21,14 @@ cargo build --release The generated `ql/src/ql.dbscheme` and `ql/src/codeql_ql/ast/internal/TreeSitter.qll` files are included in the repository, but they can be re-generated as follows: ```bash -./create-extractor-pack.sh +./scripts/create-extractor-pack.sh ``` ## Building a CodeQL database for a QL program First, get an extractor pack: -Run `./create-extractor-pack.sh` (Linux/Mac) or `.\create-extractor-pack.ps1` (Windows PowerShell) and the pack will be created in the `extractor-pack` directory. +Run `./scripts/create-extractor-pack.sh` (Linux/Mac) or `.\scripts\create-extractor-pack.ps1` (Windows PowerShell) and the pack will be created in the `extractor-pack` directory. Then run diff --git a/ql/create-extractor-pack.ps1 b/ql/scripts/create-extractor-pack.ps1 similarity index 100% rename from ql/create-extractor-pack.ps1 rename to ql/scripts/create-extractor-pack.ps1 diff --git a/ql/create-extractor-pack.sh b/ql/scripts/create-extractor-pack.sh similarity index 100% rename from ql/create-extractor-pack.sh rename to ql/scripts/create-extractor-pack.sh From 6e2f3e2fcb8097e48195491326f96e975587504e Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sat, 18 Jun 2022 16:44:10 +0200 Subject: [PATCH 064/736] merge all .sarif files at the end of the QL-for-QL workflow --- .github/workflows/ql-for-ql-build.yml | 27 ++++++++++++++++++++++++--- ql/scripts/merge-sarif.js | 26 ++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 ql/scripts/merge-sarif.js diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index 6b4f6a0abee..ffb4ad1cbc0 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -50,9 +50,6 @@ jobs: path: ${{ runner.temp }}/query-pack.zip extractors: - strategy: - fail-fast: false - runs-on: ubuntu-latest steps: @@ -201,3 +198,27 @@ jobs: name: ${{ matrix.folder }}.sarif path: ${{ matrix.folder }}.sarif + combine: + runs-on: ubuntu-latest + needs: + - analyze + + steps: + - uses: actions/checkout@v3 + - name: Make a folder for artifacts. + run: mkdir -p results + - name: Download all sarif files + uses: actions/download-artifact@v3 + with: + path: results + - uses: actions/setup-node@v3 + with: + node-version: 16 + - name: Combine all sarif files + run: | + node ./ql/scripts/merge-sarif.js results/**/*.sarif combined.sarif + - name: Upload combined sarif file + uses: actions/upload-artifact@v3 + with: + name: combined.sarif + path: combined.sarif diff --git a/ql/scripts/merge-sarif.js b/ql/scripts/merge-sarif.js new file mode 100644 index 00000000000..c7507986d5a --- /dev/null +++ b/ql/scripts/merge-sarif.js @@ -0,0 +1,26 @@ +var fs = require("fs"); + +// first a list of files to merge, and the last argument is the output file. +async function main(files) { + const inputs = files + .slice(0, -1) + .map((file) => fs.readFileSync(file)) + .map((data) => JSON.parse(data)); + const out = inputs[0]; // just arbitrarily take the first one + const outFile = files[files.length - 1]; + + const combinedResults = []; + + for (const sarif of inputs) { + combinedResults.push(...sarif.runs[0].results); + } + + out.runs[0].artifacts = []; // the indexes in these won't make sense, so I hope this works. + out.runs[0].results = combinedResults; + + // workaround until https://github.com/microsoft/sarif-vscode-extension/pull/436/ is part of a release + out["$schema"] = "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0"; + + fs.writeFileSync(outFile, JSON.stringify(out, null, 2)); +} +main(process.argv.splice(2)); From 1856e2b3891c6b2e534057bdd763332208729aa3 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sun, 19 Jun 2022 13:12:38 +0200 Subject: [PATCH 065/736] fixup the $schema in all .sarif files --- .github/workflows/ql-for-ql-build.yml | 3 +++ ql/scripts/merge-sarif.js | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index ffb4ad1cbc0..95b93dd772c 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -192,6 +192,9 @@ jobs: category: "ql-for-ql-${{ matrix.folder }}" - name: Copy sarif file to CWD run: cp ../results/ql.sarif ./${{ matrix.folder }}.sarif + - name: Fixup the $scema in sarif # Until https://github.com/microsoft/sarif-vscode-extension/pull/436/ is part in a stable release + run: | + sed -i 's/\$schema.*/\$schema": "https:\/\/raw.githubusercontent.com\/oasis-tcs\/sarif-spec\/master\/Schemata\/sarif-schema-2.1.0",/' ${{ matrix.folder }}.sarif - name: Sarif as artifact uses: actions/upload-artifact@v3 with: diff --git a/ql/scripts/merge-sarif.js b/ql/scripts/merge-sarif.js index c7507986d5a..5c781f1b67d 100644 --- a/ql/scripts/merge-sarif.js +++ b/ql/scripts/merge-sarif.js @@ -18,9 +18,6 @@ async function main(files) { out.runs[0].artifacts = []; // the indexes in these won't make sense, so I hope this works. out.runs[0].results = combinedResults; - // workaround until https://github.com/microsoft/sarif-vscode-extension/pull/436/ is part of a release - out["$schema"] = "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0"; - fs.writeFileSync(outFile, JSON.stringify(out, null, 2)); } main(process.argv.splice(2)); From 26df367a8a9b6be00fcabed22e9f0c352e167cfe Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sun, 19 Jun 2022 18:59:00 +0200 Subject: [PATCH 066/736] fix some instances of spuriously resolving to multiple predicates --- .../src/codeql_ql/ast/internal/Predicate.qll | 7 +++-- ql/ql/test/callgraph/MultiResolve.qll | 26 +++++++++++++++++++ ql/ql/test/callgraph/callgraph.expected | 5 ++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 ql/ql/test/callgraph/MultiResolve.qll diff --git a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll index 0e614c23c25..b4a5eaa6574 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll @@ -31,7 +31,8 @@ private predicate definesPredicate( name = alias.getName() and resolvePredicateExpr(alias.getAlias(), p) and public = getPublicBool(alias) and - arity = alias.getArity() + arity = alias.getArity() and + arity = p.getArity() ) ) } @@ -53,10 +54,12 @@ private module Cached { } private predicate resolvePredicateCall(PredicateCall pc, PredicateOrBuiltin p) { + // calls to class methods exists(Class c, ClassType t | c = pc.getParent*() and t = c.getType() and - p = t.getClassPredicate(pc.getPredicateName(), pc.getNumberOfArguments()) + p = t.getClassPredicate(pc.getPredicateName(), pc.getNumberOfArguments()) and + not exists(pc.getQualifier()) // no module qualifier, because then it's not a call to a class method. ) or exists(FileOrModule m, boolean public | diff --git a/ql/ql/test/callgraph/MultiResolve.qll b/ql/ql/test/callgraph/MultiResolve.qll new file mode 100644 index 00000000000..161d86077ad --- /dev/null +++ b/ql/ql/test/callgraph/MultiResolve.qll @@ -0,0 +1,26 @@ +predicate foo(int a, int b) { + a = 2 and + b = 2 +} + +predicate foo(int a, int b, int c) { + a = 2 and + b = 2 and + c = 2 +} + +predicate myFoo = foo/2; + +predicate test(int i) { myFoo(i, i) } // <- should only resolve to the `foo` with 2 arguments (and the `myFoo` alias). + +module MyMod { + predicate bar() { any() } + + class Bar extends int { + Bar() { this = 42 } + + predicate bar() { + MyMod::bar() // <- should resolve to the module's predicate. + } + } +} diff --git a/ql/ql/test/callgraph/callgraph.expected b/ql/ql/test/callgraph/callgraph.expected index 97c84034602..b640afaecc6 100644 --- a/ql/ql/test/callgraph/callgraph.expected +++ b/ql/ql/test/callgraph/callgraph.expected @@ -14,6 +14,9 @@ getTarget | Foo.qll:31:5:31:12 | PredicateCall | Foo.qll:24:3:24:32 | ClasslessPredicate alias0 | | Foo.qll:36:36:36:65 | MemberCall | file://:0:0:0:0 | replaceAll | | Foo.qll:38:39:38:67 | MemberCall | file://:0:0:0:0 | regexpCapture | +| MultiResolve.qll:14:25:14:35 | PredicateCall | MultiResolve.qll:1:1:4:1 | ClasslessPredicate foo | +| MultiResolve.qll:14:25:14:35 | PredicateCall | MultiResolve.qll:12:1:12:24 | ClasslessPredicate myFoo | +| MultiResolve.qll:25:7:25:18 | PredicateCall | MultiResolve.qll:17:3:19:3 | ClasslessPredicate bar | | Overrides.qll:8:30:8:39 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | | Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | | Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:14:12:14:43 | ClassPredicate bar | @@ -43,5 +46,7 @@ exprPredicate | Foo.qll:26:22:26:31 | predicate | Foo.qll:20:3:20:54 | ClasslessPredicate myThing2 | | Foo.qll:47:55:47:62 | predicate | Foo.qll:42:20:42:27 | NewTypeBranch MkRoot | | Foo.qll:47:65:47:70 | predicate | Foo.qll:44:9:44:56 | ClasslessPredicate edge | +| MultiResolve.qll:12:19:12:23 | predicate | MultiResolve.qll:1:1:4:1 | ClasslessPredicate foo | +| MultiResolve.qll:12:19:12:23 | predicate | MultiResolve.qll:6:1:10:1 | ClasslessPredicate foo | | ParamModules.qll:4:18:4:25 | predicate | ParamModules.qll:2:13:2:36 | ClasslessPredicate fooSig | | ParamModules.qll:10:34:10:40 | predicate | ParamModules.qll:8:3:8:35 | ClasslessPredicate myFoo | From 115110475d3ba345a21b38c8b8891cba5835730d Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sun, 19 Jun 2022 20:09:01 +0200 Subject: [PATCH 067/736] fix `getName()` on module instantiations --- ql/ql/src/codeql_ql/ast/Ast.qll | 4 ++-- ql/ql/src/codeql_ql/ast/internal/Module.qll | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index a237e1f6b58..3a0063aaa76 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -2226,7 +2226,7 @@ class ModuleExpr extends TModuleExpr, TypeRef { or not exists(me.getName()) and result = me.getChild().(QL::SimpleId).getValue() or - result = me.getChild().(QL::ModuleInstantiation).getName().getChild().getValue() + result = me.getAFieldOrChild().(QL::ModuleInstantiation).getName().getChild().getValue() } /** @@ -2261,7 +2261,7 @@ class ModuleExpr extends TModuleExpr, TypeRef { * The result is either a `PredicateExpr` or a `TypeExpr`. */ SignatureExpr getArgument(int i) { - result.toQL() = me.getChild().(QL::ModuleInstantiation).getChild(i) + result.toQL() = me.getAFieldOrChild().(QL::ModuleInstantiation).getChild(i) } } diff --git a/ql/ql/src/codeql_ql/ast/internal/Module.qll b/ql/ql/src/codeql_ql/ast/internal/Module.qll index b487c98cc7e..d84f0b8122e 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Module.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Module.qll @@ -332,7 +332,19 @@ module ModConsistency { * } */ - query predicate noName(Module mod) { not exists(mod.getName()) } + query predicate noName(AstNode mod) { + mod instanceof Module and + not exists(mod.(Module).getName()) + or + mod instanceof ModuleExpr and + not exists(mod.(ModuleExpr).getName()) + } - query predicate nonUniqueName(Module mod) { count(mod.getName()) >= 2 } + query predicate nonUniqueName(AstNode mod) { + mod instanceof Module and + count(mod.(Module).getName()) >= 2 + or + mod instanceof ModuleExpr and + count(mod.(ModuleExpr).getName()) >= 2 + } } From f08f02ed66724fe55482746e5ade7f826ad64ddd Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sun, 19 Jun 2022 20:38:16 +0200 Subject: [PATCH 068/736] use the explicit super type to resolve calls --- ql/ql/src/codeql_ql/ast/internal/Predicate.qll | 17 +++++++++++++---- ql/ql/test/callgraph/MultiResolve.qll | 16 ++++++++++++++++ ql/ql/test/callgraph/callgraph.expected | 3 ++- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll index b4a5eaa6574..60b52c3241f 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll @@ -95,15 +95,24 @@ private module Cached { ) or // super calls - and `this.method()` calls in charpreds. (Basically: in charpreds there is no difference between super and this.) - exists(AstNode sup, ClassType type, Type supertype | + exists(AstNode sup, Type supertype | sup instanceof Super or sup.(ThisAccess).getEnclosingPredicate() instanceof CharPred | mc.getBase() = sup and - sup.getEnclosingPredicate().getParent().(Class).getType() = type and - supertype in [type.getASuperType(), type.getAnInstanceofType()] and - p = supertype.getClassPredicate(mc.getMemberName(), mc.getNumberOfArguments()) + p = supertype.getClassPredicate(mc.getMemberName(), mc.getNumberOfArguments()) and + ( + // super.method() + not exists(mc.getSuperType()) and + exists(ClassType type | + sup.getEnclosingPredicate().getParent().(Class).getType() = type and + supertype in [type.getASuperType(), type.getAnInstanceofType()] + ) + or + // Class.super.method() + supertype = mc.getSuperType().getResolvedType() + ) ) } diff --git a/ql/ql/test/callgraph/MultiResolve.qll b/ql/ql/test/callgraph/MultiResolve.qll index 161d86077ad..aabb680709d 100644 --- a/ql/ql/test/callgraph/MultiResolve.qll +++ b/ql/ql/test/callgraph/MultiResolve.qll @@ -24,3 +24,19 @@ module MyMod { } } } + +class Super1 extends int { + Super1() { this = 42 } + + predicate foo() { any() } +} + +class Super2 extends int { + Super2() { this = 42 } + + predicate foo() { none() } +} + +class Sub extends Super1, Super2 { + override predicate foo() { Super1.super.foo() } // <- should resolve to Super1::foo() +} diff --git a/ql/ql/test/callgraph/callgraph.expected b/ql/ql/test/callgraph/callgraph.expected index b640afaecc6..52cd12bcb53 100644 --- a/ql/ql/test/callgraph/callgraph.expected +++ b/ql/ql/test/callgraph/callgraph.expected @@ -16,7 +16,8 @@ getTarget | Foo.qll:38:39:38:67 | MemberCall | file://:0:0:0:0 | regexpCapture | | MultiResolve.qll:14:25:14:35 | PredicateCall | MultiResolve.qll:1:1:4:1 | ClasslessPredicate foo | | MultiResolve.qll:14:25:14:35 | PredicateCall | MultiResolve.qll:12:1:12:24 | ClasslessPredicate myFoo | -| MultiResolve.qll:25:7:25:18 | PredicateCall | MultiResolve.qll:17:3:19:3 | ClasslessPredicate bar | +| MultiResolve.qll:23:7:23:18 | PredicateCall | MultiResolve.qll:17:3:17:27 | ClasslessPredicate bar | +| MultiResolve.qll:41:30:41:47 | MemberCall | MultiResolve.qll:31:3:31:27 | ClassPredicate foo | | Overrides.qll:8:30:8:39 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | | Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | | Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:14:12:14:43 | ClassPredicate bar | From f8b451a514bcd55db4a5c3ae645171744fb64bdc Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sun, 19 Jun 2022 22:38:09 +0200 Subject: [PATCH 069/736] get all calls to resolve to a unique predicate (within reason) --- ql/ql/src/codeql_ql/ast/internal/Module.qll | 3 +- .../src/codeql_ql/ast/internal/Predicate.qll | 46 +++++++++++++------ .../queries/diagnostics/EmptyConsistencies.ql | 2 + ql/ql/test/callgraph/MultiResolve.qll | 16 +++++++ ql/ql/test/callgraph/callgraph.expected | 5 +- 5 files changed, 54 insertions(+), 18 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/Module.qll b/ql/ql/src/codeql_ql/ast/internal/Module.qll index d84f0b8122e..4b224ad4adf 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Module.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Module.qll @@ -229,7 +229,8 @@ private module Cached { pragma[noinline] private predicate resolveModuleRefHelper(TypeRef me, ContainerOrModule enclosing, string name) { enclosing = getEnclosingModule(me).getEnclosing*() and - name = [me.(ModuleExpr).getName(), me.(TypeExpr).getClassName()] + name = [me.(ModuleExpr).getName(), me.(TypeExpr).getClassName()] and + (not me instanceof ModuleExpr or not enclosing instanceof Folder_) // module expressions are not imports, so they can't resolve to a file (which is contained in a folder). } } diff --git a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll index 60b52c3241f..e2da87b1904 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll @@ -88,7 +88,23 @@ private module Cached { ) } + /** + * Holds if `mc` is a `this.method()` call to a predicate defined in the same class. + * helps avoid spuriously resolving to predicates in super-classes. + */ + private predicate resolveSelfClassCalls(MemberCall mc, PredicateOrBuiltin p) { + exists(Class c | + mc.getBase() instanceof ThisAccess and + c = mc.getEnclosingPredicate().getParent() and + p = c.getClassPredicate(mc.getMemberName()) and + p.getArity() = mc.getNumberOfArguments() + ) + } + private predicate resolveMemberCall(MemberCall mc, PredicateOrBuiltin p) { + resolveSelfClassCalls(mc, p) + or + not resolveSelfClassCalls(mc, _) and exists(Type t | t = mc.getBase().getType() and p = t.getClassPredicate(mc.getMemberName(), mc.getNumberOfArguments()) @@ -188,20 +204,20 @@ module PredConsistency { c > 1 and resolvePredicateExpr(pe, p) } - // This can happen with parameterized modules - /* - * query predicate multipleResolveCall(Call call, int c, PredicateOrBuiltin p) { - * c = - * strictcount(PredicateOrBuiltin p0 | - * resolveCall(call, p0) and - * // aliases are expected to resolve to multiple. - * not exists(p0.(ClasslessPredicate).getAlias()) and - * // overridden predicates may have multiple targets - * not p0.(ClassPredicate).isOverride() - * ) and - * c > 1 and - * resolveCall(call, p) - * } - */ + query predicate multipleResolveCall(Call call, int c, PredicateOrBuiltin p) { + c = + strictcount(PredicateOrBuiltin p0 | + resolveCall(call, p0) and + // aliases are expected to resolve to multiple. + not exists(p0.(ClasslessPredicate).getAlias()) and + // overridden predicates may have multiple targets + not p0.(ClassPredicate).isOverride() and + not p0 instanceof Relation // <- DB relations resolve to both a relation and a predicate. + ) and + c > 1 and + resolveCall(call, p) and + // parameterized modules are expected to resolve to multiple. + not exists(Predicate sig | not exists(sig.getBody()) and resolveCall(call, sig)) } +} diff --git a/ql/ql/src/queries/diagnostics/EmptyConsistencies.ql b/ql/ql/src/queries/diagnostics/EmptyConsistencies.ql index 7f95fec935e..8cd89f7fd37 100644 --- a/ql/ql/src/queries/diagnostics/EmptyConsistencies.ql +++ b/ql/ql/src/queries/diagnostics/EmptyConsistencies.ql @@ -22,6 +22,8 @@ where or PredConsistency::noResolvePredicateExpr(node) and msg = "PredConsistency::noResolvePredicateExpr" or + PredConsistency::multipleResolveCall(node, _, _) and msg = "PredConsistency::multipleResolveCall" + or TypeConsistency::exprNoType(node) and msg = "TypeConsistency::exprNoType" or TypeConsistency::varDefNoType(node) and msg = "TypeConsistency::varDefNoType" diff --git a/ql/ql/test/callgraph/MultiResolve.qll b/ql/ql/test/callgraph/MultiResolve.qll index aabb680709d..dce88d01689 100644 --- a/ql/ql/test/callgraph/MultiResolve.qll +++ b/ql/ql/test/callgraph/MultiResolve.qll @@ -40,3 +40,19 @@ class Super2 extends int { class Sub extends Super1, Super2 { override predicate foo() { Super1.super.foo() } // <- should resolve to Super1::foo() } + +module Foo { + predicate foo() { any() } +} + +predicate test() { + Foo::foo() // <- should resolve to `foo` from the module above, and not from the `Foo.qll` file. +} + +class Sub2 extends Super1, Super2 { + override predicate foo() { Super2.super.foo() } // <- should resolve to Super2::foo() + + predicate test() { + this.foo() // <- should resolve to only the above `foo` predicate, but currently it resolves to that, and all the overrides [INCONSISTENCY] + } +} diff --git a/ql/ql/test/callgraph/callgraph.expected b/ql/ql/test/callgraph/callgraph.expected index 52cd12bcb53..4d7840383cf 100644 --- a/ql/ql/test/callgraph/callgraph.expected +++ b/ql/ql/test/callgraph/callgraph.expected @@ -18,10 +18,11 @@ getTarget | MultiResolve.qll:14:25:14:35 | PredicateCall | MultiResolve.qll:12:1:12:24 | ClasslessPredicate myFoo | | MultiResolve.qll:23:7:23:18 | PredicateCall | MultiResolve.qll:17:3:17:27 | ClasslessPredicate bar | | MultiResolve.qll:41:30:41:47 | MemberCall | MultiResolve.qll:31:3:31:27 | ClassPredicate foo | +| MultiResolve.qll:49:3:49:12 | PredicateCall | MultiResolve.qll:45:3:45:27 | ClasslessPredicate foo | +| MultiResolve.qll:53:30:53:47 | MemberCall | MultiResolve.qll:37:3:37:28 | ClassPredicate foo | +| MultiResolve.qll:56:5:56:14 | MemberCall | MultiResolve.qll:53:12:53:49 | ClassPredicate foo | | Overrides.qll:8:30:8:39 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | -| Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | | Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:14:12:14:43 | ClassPredicate bar | -| Overrides.qll:24:39:24:48 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | | Overrides.qll:24:39:24:48 | MemberCall | Overrides.qll:22:12:22:44 | ClassPredicate bar | | Overrides.qll:28:3:28:9 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | | Overrides.qll:29:3:29:10 | MemberCall | Overrides.qll:8:3:8:41 | ClassPredicate baz | From 15f9e084d5962b1d3b5930d935574a8d2c8c7d77 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sun, 19 Jun 2022 22:43:41 +0200 Subject: [PATCH 070/736] fix spurious resolved predicate expressions --- ql/ql/src/codeql_ql/ast/internal/Predicate.qll | 10 ++++++++-- ql/ql/src/queries/diagnostics/EmptyConsistencies.ql | 3 +++ ql/ql/test/callgraph/callgraph.expected | 1 - 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll index e2da87b1904..6b17216b9aa 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll @@ -49,7 +49,8 @@ private module Cached { m = pe.getQualifier().getResolvedModule() and public = true | - definesPredicate(m, pe.getName(), p.getArity(), p, public) + definesPredicate(m, pe.getName(), p.getArity(), p, public) and + p.getArity() = pe.getArity() ) } @@ -200,7 +201,12 @@ module PredConsistency { } query predicate multipleResolvePredicateExpr(PredicateExpr pe, int c, ClasslessPredicate p) { - c = strictcount(ClasslessPredicate p0 | resolvePredicateExpr(pe, p0)) and + c = + strictcount(ClasslessPredicate p0 | + resolvePredicateExpr(pe, p0) and + // aliases are expected to resolve to multiple. + not exists(p0.(ClasslessPredicate).getAlias()) + ) and c > 1 and resolvePredicateExpr(pe, p) } diff --git a/ql/ql/src/queries/diagnostics/EmptyConsistencies.ql b/ql/ql/src/queries/diagnostics/EmptyConsistencies.ql index 8cd89f7fd37..8691aa2168c 100644 --- a/ql/ql/src/queries/diagnostics/EmptyConsistencies.ql +++ b/ql/ql/src/queries/diagnostics/EmptyConsistencies.ql @@ -24,6 +24,9 @@ where or PredConsistency::multipleResolveCall(node, _, _) and msg = "PredConsistency::multipleResolveCall" or + PredConsistency::multipleResolvePredicateExpr(node, _, _) and + msg = "PredConsistency::multipleResolvePredicateExpr" + or TypeConsistency::exprNoType(node) and msg = "TypeConsistency::exprNoType" or TypeConsistency::varDefNoType(node) and msg = "TypeConsistency::varDefNoType" diff --git a/ql/ql/test/callgraph/callgraph.expected b/ql/ql/test/callgraph/callgraph.expected index 4d7840383cf..de11b0d658c 100644 --- a/ql/ql/test/callgraph/callgraph.expected +++ b/ql/ql/test/callgraph/callgraph.expected @@ -49,6 +49,5 @@ exprPredicate | Foo.qll:47:55:47:62 | predicate | Foo.qll:42:20:42:27 | NewTypeBranch MkRoot | | Foo.qll:47:65:47:70 | predicate | Foo.qll:44:9:44:56 | ClasslessPredicate edge | | MultiResolve.qll:12:19:12:23 | predicate | MultiResolve.qll:1:1:4:1 | ClasslessPredicate foo | -| MultiResolve.qll:12:19:12:23 | predicate | MultiResolve.qll:6:1:10:1 | ClasslessPredicate foo | | ParamModules.qll:4:18:4:25 | predicate | ParamModules.qll:2:13:2:36 | ClasslessPredicate fooSig | | ParamModules.qll:10:34:10:40 | predicate | ParamModules.qll:8:3:8:35 | ClasslessPredicate myFoo | From 6d3808bd899210863868c42b4f41369481bbd73f Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Sun, 19 Jun 2022 23:19:01 +0200 Subject: [PATCH 071/736] remove redundant cast --- ql/ql/src/codeql_ql/ast/internal/Predicate.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll index 6b17216b9aa..d419534788b 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll @@ -205,7 +205,7 @@ module PredConsistency { strictcount(ClasslessPredicate p0 | resolvePredicateExpr(pe, p0) and // aliases are expected to resolve to multiple. - not exists(p0.(ClasslessPredicate).getAlias()) + not exists(p0.getAlias()) ) and c > 1 and resolvePredicateExpr(pe, p) From 94145e9e74bf91641d1dfeca221bb9201ad4d29f Mon Sep 17 00:00:00 2001 From: yoff Date: Mon, 20 Jun 2022 10:14:52 +0200 Subject: [PATCH 072/736] Update python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll --- .../semmle/python/security/dataflow/TarSlipCustomizations.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll index d767f90c5c6..8795bd31c27 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll @@ -51,7 +51,7 @@ module TarSlip { } /** - * A sanitizer based on file name. This beacuse we extract the standard library. + * A sanitizer based on file name. This because we extract the standard library. * * For efficiency we don't want to track the flow of taint * around the tarfile module. From 7d62b9e13179c8712ad9aa0994de24fd75442e94 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 20 Jun 2022 12:12:57 +0200 Subject: [PATCH 073/736] move the pruning for module resolution of TypeExprs --- ql/ql/src/codeql_ql/ast/Ast.qll | 11 +---------- ql/ql/src/codeql_ql/ast/internal/Module.qll | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index 3a0063aaa76..c411f287fbc 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -683,16 +683,7 @@ class TypeExpr extends TType, TypeRef { resolveTypeExpr(this, result) or // if it resolves to a module, - exists(FileOrModule mod | resolveModuleRef(this, mod) | result = mod.toType()) and - result instanceof ModuleType and - // we can get spurious results in some cases, so we restrict to where it is possible to have a module. - ( - // only possible if this is inside a moduleInstantiation. - this = any(ModuleExpr mod).getArgument(_).asType() - or - // or if it's a parameter to a parameterized module - this = any(SignatureExpr sig, Module mod | mod.hasParameter(_, _, sig) | sig).asType() - ) + exists(FileOrModule mod | resolveModuleRef(this, mod) | result = mod.toType()) } override AstNode getAChild(string pred) { diff --git a/ql/ql/src/codeql_ql/ast/internal/Module.qll b/ql/ql/src/codeql_ql/ast/internal/Module.qll index 4b224ad4adf..1ca459ac108 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Module.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Module.qll @@ -218,6 +218,20 @@ private module Cached { not exists(me.(ModuleExpr).getQualifier()) and exists(ContainerOrModule enclosing, string name | resolveModuleRefHelper(me, enclosing, name) | definesModule(enclosing, name, m, _) + ) and + ( + not me instanceof TypeExpr + or + // remove some spurious results that can happen with `TypeExpr` + me instanceof TypeExpr and + m instanceof Module_ and // TypeExpr can only resolve to a Module, and only in some scenarios + ( + // only possible if this is inside a moduleInstantiation. + me = any(ModuleExpr mod).getArgument(_).asType() + or + // or if it's a parameter to a parameterized module + me = any(SignatureExpr sig, Module mod | mod.hasParameter(_, _, sig) | sig).asType() + ) ) or exists(FileOrModule mid | From 9d6b1bf14255d07234924585eafbd4ff9a0ee672 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Mon, 20 Jun 2022 10:24:56 -0700 Subject: [PATCH 074/736] Apply suggestions from code review Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com> --- ...nalyzing-databases-with-the-codeql-cli.rst | 22 +++++-------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst index cac63f6d01f..e6ee13c7823 100644 --- a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst +++ b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst @@ -161,34 +161,22 @@ If a ``scope/name`` and ``path`` are specified, then the ``path`` cannot be absolute. It is considered relative to the root of the CodeQL pack. -The relevant commands are: - -* `codeql database analyze <../manual/database-analyze>`__. -* `codeql database run-queries <../manual/database-run-queries>`__. -* `codeql execute queries <../manual/execute-queries>`__. -* `codeql resolve queries <../manual/resolve-queries>`__. - For example:: - # Analyze a database using all queries in the experimental/Security folder within the codeql/cpp-queries - # CodeQL query pack. +To analyze a database using all queries in the `experimental/Security` folder within the `codeql/cpp-queries` CodeQL pack you can use:: + codeql database analyze --format=sarif-latest --output=results \ codeql/cpp-queries:experimental/Security - # Analyse using only the RedundantNullCheckParam.ql query in the codeql/cpp-queries CodeQL query pack. +To run the `RedundantNullCheckParam.ql` query in the `codeql/cpp-queries` CodeQL pack use:: + codeql database analyze --format=sarif-latest --output=results \ 'codeql/cpp-queries:experimental/Likely Bugs/RedundantNullCheckParam.ql' - # Analyse using the cpp-security-and-quality.qls query suite in the codeql/cpp-queries CodeQL query pack. - codeql database analyze --format=sarif-latest --output=results \ - 'codeql/cpp-queries:codeql-suites/cpp-security-and-quality.qls' +To analyze your database using the `cpp-security-and-quality.qls` query suite from a version of the `codeql/cpp-queries` CodeQL pack that is >= 0.0.3 and < 0.1.0 (the highest compatible version will be chosen) you can use:: - # Analyse using the cpp-security-and-quality.qls query suite from a version of the codeql/cpp-queries pack - # that is >= 0.0.3 and < 0.1.0 (the highest compatible version will be chosen). - # All valid semver ranges are allowed. See https://docs.npmjs.com/cli/v6/using-npm/semver#ranges codeql database analyze --format=sarif-latest --output=results \ 'codeql/cpp-queries@~0.0.3:codeql-suites/cpp-security-and-quality.qls' - For more information about CodeQL packs, see :doc:`About CodeQL Packs `. Running query suites From 767b0cfdfb85b1f6fc5327af6091a990fc8f44fb Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Fri, 29 Apr 2022 11:45:10 -0400 Subject: [PATCH 075/736] Revert "Merge pull request #8933 from MathiasVP/revert-globals" This reverts commit 2517371a37e5da44e5f19903df9d543649b6dca3, reversing changes made to db856798b94e9d02db24273b036a84723ae776f7. --- cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll | 3 + .../cpp/ir/implementation/IRConfiguration.qll | 4 +- .../ir/implementation/aliased_ssa/IRBlock.qll | 2 +- .../aliased_ssa/Instruction.qll | 2 +- .../ir/implementation/aliased_ssa/PrintIR.qll | 8 +- .../internal/IRFunctionBase.qll | 17 ++- .../cpp/ir/implementation/raw/IRBlock.qll | 2 +- .../cpp/ir/implementation/raw/Instruction.qll | 2 +- .../cpp/ir/implementation/raw/PrintIR.qll | 8 +- .../raw/internal/IRConstruction.qll | 11 +- .../raw/internal/TranslatedCall.qll | 11 +- .../raw/internal/TranslatedElement.qll | 22 +++- .../raw/internal/TranslatedExpr.qll | 11 +- .../raw/internal/TranslatedFunction.qll | 2 +- .../raw/internal/TranslatedGlobalVar.qll | 104 ++++++++++++++++++ .../raw/internal/TranslatedInitialization.qll | 16 ++- .../implementation/unaliased_ssa/IRBlock.qll | 2 +- .../unaliased_ssa/Instruction.qll | 2 +- .../implementation/unaliased_ssa/PrintIR.qll | 8 +- .../code/cpp/ir/internal/IRCppLanguage.qll | 4 + .../dataflow-ir-consistency.expected | 16 +++ .../test/library-tests/ir/ir/PrintConfig.qll | 9 +- cpp/ql/test/library-tests/ir/ir/ir.cpp | 12 ++ .../ir/ir/operand_locations.expected | 75 +++++++++++++ .../test/library-tests/ir/ir/raw_ir.expected | 104 ++++++++++++++++++ cpp/ql/test/library-tests/ir/ir/raw_ir.ql | 2 +- .../ir/ssa/aliased_ssa_ir.expected | 2 + .../ir/ssa/aliased_ssa_ir_unsound.expected | 2 + .../ir/ssa/unaliased_ssa_ir.expected | 2 + .../ir/ssa/unaliased_ssa_ir_unsound.expected | 2 + .../aliased_ssa_consistency.expected | 4 + .../dataflow-ir-consistency.expected | 46 ++++++++ .../diff_ir_expr.expected | 3 - .../GlobalValueNumbering/ir_gvn.expected | 55 +++++++++ .../ir/implementation/IRConfiguration.qll | 4 +- .../internal/IRFunctionBase.qll | 17 ++- .../ir/implementation/raw/IRBlock.qll | 2 +- .../ir/implementation/raw/Instruction.qll | 2 +- .../ir/implementation/raw/PrintIR.qll | 8 +- .../raw/internal/IRConstruction.qll | 3 + .../implementation/unaliased_ssa/IRBlock.qll | 2 +- .../unaliased_ssa/Instruction.qll | 2 +- .../implementation/unaliased_ssa/PrintIR.qll | 8 +- .../ir/internal/IRCSharpLanguage.qll | 6 + 44 files changed, 553 insertions(+), 76 deletions(-) create mode 100644 cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedGlobalVar.qll diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll index 14399078231..55a59cc9588 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll @@ -49,6 +49,9 @@ class Expr extends StmtParent, @expr { /** Gets the enclosing variable of this expression, if any. */ Variable getEnclosingVariable() { result = exprEnclosingElement(this) } + /** Gets the enclosing variable or function of this expression. */ + Declaration getEnclosingDeclaration() { result = exprEnclosingElement(this) } + /** Gets a child of this expression. */ Expr getAChild() { exists(int n | result = this.getChild(n)) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/IRConfiguration.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/IRConfiguration.qll index 37ac2fccdd9..90cdb9e0f5f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/IRConfiguration.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/IRConfiguration.qll @@ -16,7 +16,7 @@ class IRConfiguration extends TIRConfiguration { /** * Holds if IR should be created for function `func`. By default, holds for all functions. */ - predicate shouldCreateIRForFunction(Language::Function func) { any() } + predicate shouldCreateIRForFunction(Language::Declaration func) { any() } /** * Holds if the strings used as part of an IR dump should be generated for function `func`. @@ -25,7 +25,7 @@ class IRConfiguration extends TIRConfiguration { * of debug strings for IR that will not be dumped. We still generate the actual IR for these * functions, however, to preserve the results of any interprocedural analysis. */ - predicate shouldEvaluateDebugStringsForFunction(Language::Function func) { any() } + predicate shouldEvaluateDebugStringsForFunction(Language::Declaration func) { any() } } private newtype TIREscapeAnalysisConfiguration = MkIREscapeAnalysisConfiguration() diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRBlock.qll index bac7634cbd0..78008a6c69b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRBlock.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRBlock.qll @@ -97,7 +97,7 @@ class IRBlockBase extends TIRBlock { /** * Gets the `Function` that contains this block. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = getFirstInstruction(this).getEnclosingFunction() } } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/Instruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/Instruction.qll index e5a908bbf9a..8e863ddf635 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/Instruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/Instruction.qll @@ -194,7 +194,7 @@ class Instruction extends Construction::TStageInstruction { /** * Gets the function that contains this instruction. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = this.getEnclosingIRFunction().getFunction() } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/PrintIR.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/PrintIR.qll index 59dadee7154..53cdc75512b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/PrintIR.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/PrintIR.qll @@ -26,20 +26,20 @@ class PrintIRConfiguration extends TPrintIRConfiguration { * Holds if the IR for `func` should be printed. By default, holds for all * functions. */ - predicate shouldPrintFunction(Language::Function func) { any() } + predicate shouldPrintFunction(Language::Declaration decl) { any() } } /** * Override of `IRConfiguration` to only evaluate debug strings for the functions that are to be dumped. */ private class FilteredIRConfiguration extends IRConfiguration { - override predicate shouldEvaluateDebugStringsForFunction(Language::Function func) { + override predicate shouldEvaluateDebugStringsForFunction(Language::Declaration func) { shouldPrintFunction(func) } } -private predicate shouldPrintFunction(Language::Function func) { - exists(PrintIRConfiguration config | config.shouldPrintFunction(func)) +private predicate shouldPrintFunction(Language::Declaration decl) { + exists(PrintIRConfiguration config | config.shouldPrintFunction(decl)) } private string getAdditionalInstructionProperty(Instruction instr, string key) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/internal/IRFunctionBase.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/internal/IRFunctionBase.qll index 60895ce3d26..576b4f9adf1 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/internal/IRFunctionBase.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/internal/IRFunctionBase.qll @@ -5,23 +5,28 @@ private import IRFunctionBaseInternal private newtype TIRFunction = - MkIRFunction(Language::Function func) { IRConstruction::Raw::functionHasIR(func) } + TFunctionIRFunction(Language::Function func) { IRConstruction::Raw::functionHasIR(func) } or + TVarInitIRFunction(Language::GlobalVariable var) { IRConstruction::Raw::varHasIRFunc(var) } /** * The IR for a function. This base class contains only the predicates that are the same between all * phases of the IR. Each instantiation of `IRFunction` extends this class. */ class IRFunctionBase extends TIRFunction { - Language::Function func; + Language::Declaration decl; - IRFunctionBase() { this = MkIRFunction(func) } + IRFunctionBase() { + this = TFunctionIRFunction(decl) + or + this = TVarInitIRFunction(decl) + } /** Gets a textual representation of this element. */ - final string toString() { result = "IR: " + func.toString() } + final string toString() { result = "IR: " + decl.toString() } /** Gets the function whose IR is represented. */ - final Language::Function getFunction() { result = func } + final Language::Declaration getFunction() { result = decl } /** Gets the location of the function. */ - final Language::Location getLocation() { result = func.getLocation() } + final Language::Location getLocation() { result = decl.getLocation() } } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRBlock.qll index bac7634cbd0..78008a6c69b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRBlock.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRBlock.qll @@ -97,7 +97,7 @@ class IRBlockBase extends TIRBlock { /** * Gets the `Function` that contains this block. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = getFirstInstruction(this).getEnclosingFunction() } } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/Instruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/Instruction.qll index e5a908bbf9a..8e863ddf635 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/Instruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/Instruction.qll @@ -194,7 +194,7 @@ class Instruction extends Construction::TStageInstruction { /** * Gets the function that contains this instruction. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = this.getEnclosingIRFunction().getFunction() } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/PrintIR.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/PrintIR.qll index 59dadee7154..53cdc75512b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/PrintIR.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/PrintIR.qll @@ -26,20 +26,20 @@ class PrintIRConfiguration extends TPrintIRConfiguration { * Holds if the IR for `func` should be printed. By default, holds for all * functions. */ - predicate shouldPrintFunction(Language::Function func) { any() } + predicate shouldPrintFunction(Language::Declaration decl) { any() } } /** * Override of `IRConfiguration` to only evaluate debug strings for the functions that are to be dumped. */ private class FilteredIRConfiguration extends IRConfiguration { - override predicate shouldEvaluateDebugStringsForFunction(Language::Function func) { + override predicate shouldEvaluateDebugStringsForFunction(Language::Declaration func) { shouldPrintFunction(func) } } -private predicate shouldPrintFunction(Language::Function func) { - exists(PrintIRConfiguration config | config.shouldPrintFunction(func)) +private predicate shouldPrintFunction(Language::Declaration decl) { + exists(PrintIRConfiguration config | config.shouldPrintFunction(decl)) } private string getAdditionalInstructionProperty(Instruction instr, string key) { 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 94bfc53875f..ddd9ab50635 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 @@ -35,6 +35,9 @@ module Raw { cached predicate functionHasIR(Function func) { exists(getTranslatedFunction(func)) } + cached + predicate varHasIRFunc(GlobalOrNamespaceVariable var) { any() } // TODO: restrict? + cached predicate hasInstruction(TranslatedElement element, InstructionTag tag) { element.hasInstruction(_, tag, _) @@ -46,18 +49,18 @@ module Raw { } cached - predicate hasTempVariable(Function func, Locatable ast, TempVariableTag tag, CppType type) { + predicate hasTempVariable(Declaration decl, Locatable ast, TempVariableTag tag, CppType type) { exists(TranslatedElement element | element.getAst() = ast and - func = element.getFunction() and + decl = element.getFunction() and element.hasTempVariable(tag, type) ) } cached - predicate hasStringLiteral(Function func, Locatable ast, CppType type, StringLiteral literal) { + predicate hasStringLiteral(Declaration decl, Locatable ast, CppType type, StringLiteral literal) { literal = ast and - literal.getEnclosingFunction() = func and + literal.getEnclosingDeclaration() = decl and getTypeForPRValue(literal.getType()) = type } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedCall.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedCall.qll index 66c601736af..f8960cd205d 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedCall.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedCall.qll @@ -180,7 +180,7 @@ abstract class TranslatedSideEffects extends TranslatedElement { /** DEPRECATED: Alias for getAst */ deprecated override Locatable getAST() { result = getAst() } - final override Function getFunction() { result = getExpr().getEnclosingFunction() } + final override Declaration getFunction() { result = getExpr().getEnclosingDeclaration() } final override TranslatedElement getChild(int i) { result = @@ -375,7 +375,7 @@ abstract class TranslatedSideEffect extends TranslatedElement { kind instanceof GotoEdge } - final override Function getFunction() { result = getParent().getFunction() } + final override Declaration getFunction() { result = getParent().getFunction() } final override Instruction getPrimaryInstructionForSideEffect(InstructionTag tag) { tag = OnlyInstructionTag() and @@ -436,13 +436,6 @@ abstract class TranslatedArgumentSideEffect extends TranslatedSideEffect { result = index } - /** - * Gets the `TranslatedFunction` containing this expression. - */ - final TranslatedFunction getEnclosingFunction() { - result = getTranslatedFunction(call.getEnclosingFunction()) - } - final override predicate sideEffectInstruction(Opcode opcode, CppType type) { opcode = sideEffectOpcode and ( 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 d11d718e215..8c53fe086a8 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 @@ -67,7 +67,8 @@ private predicate ignoreExprAndDescendants(Expr expr) { exists(Initializer init, StaticStorageDurationVariable var | init = var.getInitializer() and not var.hasDynamicInitialization() and - expr = init.getExpr().getFullyConverted() + expr = init.getExpr().getFullyConverted() and + not var instanceof GlobalOrNamespaceVariable ) or // Ignore descendants of `__assume` expressions, since we translated these to `NoOp`. @@ -117,7 +118,8 @@ private predicate ignoreExprOnly(Expr expr) { // should not be translated. exists(NewOrNewArrayExpr new | expr = new.getAllocatorCall().getArgument(0)) or - not translateFunction(expr.getEnclosingFunction()) + not translateFunction(expr.getEnclosingFunction()) and + not expr.getEnclosingVariable() instanceof GlobalOrNamespaceVariable or // We do not yet translate destructors properly, so for now we ignore the // destructor call. We do, however, translate the expression being @@ -662,7 +664,8 @@ newtype TTranslatedElement = opcode = getASideEffectOpcode(call, -1) } or // The side effect that initializes newly-allocated memory. - TTranslatedAllocationSideEffect(AllocationExpr expr) { not ignoreSideEffects(expr) } + TTranslatedAllocationSideEffect(AllocationExpr expr) { not ignoreSideEffects(expr) } or + TTranslatedGlobalOrNamespaceVarInit(GlobalOrNamespaceVariable var) { var.hasInitializer() } /** * Gets the index of the first explicitly initialized element in `initList` @@ -792,7 +795,7 @@ abstract class TranslatedElement extends TTranslatedElement { /** * Gets the `Function` that contains this element. */ - abstract Function getFunction(); + abstract Declaration getFunction(); /** * Gets the successor instruction of the instruction that was generated by @@ -942,3 +945,14 @@ abstract class TranslatedElement extends TTranslatedElement { */ final TranslatedElement getParent() { result.getAChild() = this } } + +/** + * Represents the IR translation of a root element, either a function or a global variable. + */ +abstract class TranslatedRootElement extends TranslatedElement { + TranslatedRootElement() { + this instanceof TTranslatedFunction + or + this instanceof TTranslatedGlobalOrNamespaceVarInit + } +} 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 c81b7c5943a..5148122be05 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 @@ -12,6 +12,7 @@ private import TranslatedElement private import TranslatedFunction private import TranslatedInitialization private import TranslatedStmt +private import TranslatedGlobalVar import TranslatedCall /** @@ -78,7 +79,7 @@ abstract class TranslatedExpr extends TranslatedElement { /** DEPRECATED: Alias for getAst */ deprecated override Locatable getAST() { result = this.getAst() } - final override Function getFunction() { result = expr.getEnclosingFunction() } + final override Declaration getFunction() { result = expr.getEnclosingDeclaration() } /** * Gets the expression from which this `TranslatedExpr` is generated. @@ -88,8 +89,10 @@ abstract class TranslatedExpr extends TranslatedElement { /** * Gets the `TranslatedFunction` containing this expression. */ - final TranslatedFunction getEnclosingFunction() { + final TranslatedRootElement getEnclosingFunction() { result = getTranslatedFunction(expr.getEnclosingFunction()) + or + result = getTranslatedVarInit(expr.getEnclosingVariable()) } } @@ -787,7 +790,7 @@ class TranslatedThisExpr extends TranslatedNonConstantExpr { override IRVariable getInstructionVariable(InstructionTag tag) { tag = ThisAddressTag() and - result = this.getEnclosingFunction().getThisVariable() + result = this.getEnclosingFunction().(TranslatedFunction).getThisVariable() } } @@ -2522,7 +2525,7 @@ class TranslatedVarArgsStart extends TranslatedNonConstantExpr { final override IRVariable getInstructionVariable(InstructionTag tag) { tag = VarArgsStartEllipsisAddressTag() and - result = this.getEnclosingFunction().getEllipsisVariable() + result = this.getEnclosingFunction().(TranslatedFunction).getEllipsisVariable() } final override Instruction getInstructionRegisterOperand(InstructionTag tag, OperandTag operandTag) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll index 0f781cb2244..b4746ae58de 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll @@ -58,7 +58,7 @@ predicate hasReturnValue(Function func) { not func.getUnspecifiedType() instance * Represents the IR translation of a function. This is the root elements for * all other elements associated with this function. */ -class TranslatedFunction extends TranslatedElement, TTranslatedFunction { +class TranslatedFunction extends TranslatedRootElement, TTranslatedFunction { Function func; TranslatedFunction() { this = TTranslatedFunction(func) } 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 new file mode 100644 index 00000000000..abc175b7040 --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedGlobalVar.qll @@ -0,0 +1,104 @@ +import semmle.code.cpp.ir.implementation.raw.internal.TranslatedElement +private import cpp +private import semmle.code.cpp.ir.implementation.IRType +private import semmle.code.cpp.ir.implementation.Opcode +private import semmle.code.cpp.ir.implementation.internal.OperandTag +private import semmle.code.cpp.ir.internal.CppType +private import TranslatedInitialization +private import InstructionTag + +class TranslatedGlobalOrNamespaceVarInit extends TranslatedRootElement, + TTranslatedGlobalOrNamespaceVarInit, InitializationContext { + GlobalOrNamespaceVariable var; + + TranslatedGlobalOrNamespaceVarInit() { this = TTranslatedGlobalOrNamespaceVarInit(var) } + + override string toString() { result = var.toString() } + + final override GlobalOrNamespaceVariable getAst() { result = var } + + final override Declaration getFunction() { result = var } + + final Location getLocation() { result = var.getLocation() } + + override Instruction getFirstInstruction() { result = this.getInstruction(EnterFunctionTag()) } + + override TranslatedElement getChild(int n) { + n = 1 and + result = getTranslatedInitialization(var.getInitializer().getExpr().getFullyConverted()) + } + + override predicate hasInstruction(Opcode op, InstructionTag tag, CppType type) { + op instanceof Opcode::EnterFunction and + tag = EnterFunctionTag() and + type = getVoidType() + or + op instanceof Opcode::AliasedDefinition and + tag = AliasedDefinitionTag() and + type = getUnknownType() + or + op instanceof Opcode::VariableAddress and + tag = InitializerVariableAddressTag() and + type = getTypeForGLValue(var.getType()) + or + op instanceof Opcode::ReturnVoid and + tag = ReturnTag() and + type = getVoidType() + or + op instanceof Opcode::AliasedUse and + tag = AliasedUseTag() and + type = getVoidType() + or + op instanceof Opcode::ExitFunction and + tag = ExitFunctionTag() and + type = getVoidType() + } + + override Instruction getInstructionSuccessor(InstructionTag tag, EdgeKind kind) { + kind instanceof GotoEdge and + ( + tag = EnterFunctionTag() and + result = getInstruction(AliasedDefinitionTag()) + or + tag = AliasedDefinitionTag() and + result = getInstruction(InitializerVariableAddressTag()) + or + tag = InitializerVariableAddressTag() and + result = getChild(1).getFirstInstruction() + or + tag = ReturnTag() and + result = getInstruction(AliasedUseTag()) + or + tag = AliasedUseTag() and + result = getInstruction(ExitFunctionTag()) + ) + } + + override Instruction getChildSuccessor(TranslatedElement child) { + child = getChild(1) and + result = getInstruction(ReturnTag()) + } + + final override CppType getInstructionMemoryOperandType( + InstructionTag tag, TypedOperandTag operandTag + ) { + tag = AliasedUseTag() and + operandTag instanceof SideEffectOperandTag and + result = getUnknownType() + } + + override IRUserVariable getInstructionVariable(InstructionTag tag) { + tag = InitializerVariableAddressTag() and + result.getVariable() = var + } + + override Instruction getTargetAddress() { + result = getInstruction(InitializerVariableAddressTag()) + } + + override Type getTargetType() { result = var.getUnspecifiedType() } +} + +TranslatedGlobalOrNamespaceVarInit getTranslatedVarInit(GlobalOrNamespaceVariable var) { + result.getAst() = var +} diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedInitialization.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedInitialization.qll index 1a9d7ad9d70..b800405a73b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedInitialization.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedInitialization.qll @@ -137,7 +137,10 @@ abstract class TranslatedInitialization extends TranslatedElement, TTranslatedIn final override string toString() { result = "init: " + expr.toString() } - final override Function getFunction() { result = expr.getEnclosingFunction() } + final override Declaration getFunction() { + result = expr.getEnclosingFunction() or + result = expr.getEnclosingVariable().(GlobalOrNamespaceVariable) + } final override Locatable getAst() { result = expr } @@ -486,7 +489,10 @@ abstract class TranslatedFieldInitialization extends TranslatedElement { /** DEPRECATED: Alias for getAst */ deprecated override Locatable getAST() { result = getAst() } - final override Function getFunction() { result = ast.getEnclosingFunction() } + final override Declaration getFunction() { + result = ast.getEnclosingFunction() or + result = ast.getEnclosingVariable().(GlobalOrNamespaceVariable) + } final override Instruction getFirstInstruction() { result = getInstruction(getFieldAddressTag()) } @@ -633,7 +639,11 @@ abstract class TranslatedElementInitialization extends TranslatedElement { /** DEPRECATED: Alias for getAst */ deprecated override Locatable getAST() { result = getAst() } - final override Function getFunction() { result = initList.getEnclosingFunction() } + final override Declaration getFunction() { + result = initList.getEnclosingFunction() + or + result = initList.getEnclosingVariable().(GlobalOrNamespaceVariable) + } final override Instruction getFirstInstruction() { result = getInstruction(getElementIndexTag()) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRBlock.qll index bac7634cbd0..78008a6c69b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRBlock.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRBlock.qll @@ -97,7 +97,7 @@ class IRBlockBase extends TIRBlock { /** * Gets the `Function` that contains this block. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = getFirstInstruction(this).getEnclosingFunction() } } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/Instruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/Instruction.qll index e5a908bbf9a..8e863ddf635 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/Instruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/Instruction.qll @@ -194,7 +194,7 @@ class Instruction extends Construction::TStageInstruction { /** * Gets the function that contains this instruction. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = this.getEnclosingIRFunction().getFunction() } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/PrintIR.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/PrintIR.qll index 59dadee7154..53cdc75512b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/PrintIR.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/PrintIR.qll @@ -26,20 +26,20 @@ class PrintIRConfiguration extends TPrintIRConfiguration { * Holds if the IR for `func` should be printed. By default, holds for all * functions. */ - predicate shouldPrintFunction(Language::Function func) { any() } + predicate shouldPrintFunction(Language::Declaration decl) { any() } } /** * Override of `IRConfiguration` to only evaluate debug strings for the functions that are to be dumped. */ private class FilteredIRConfiguration extends IRConfiguration { - override predicate shouldEvaluateDebugStringsForFunction(Language::Function func) { + override predicate shouldEvaluateDebugStringsForFunction(Language::Declaration func) { shouldPrintFunction(func) } } -private predicate shouldPrintFunction(Language::Function func) { - exists(PrintIRConfiguration config | config.shouldPrintFunction(func)) +private predicate shouldPrintFunction(Language::Declaration decl) { + exists(PrintIRConfiguration config | config.shouldPrintFunction(decl)) } private string getAdditionalInstructionProperty(Instruction instr, string key) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll b/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll index f047d6c4753..46e3e6dec1c 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll @@ -50,12 +50,16 @@ class AutomaticVariable = Cpp::StackVariable; class StaticVariable = Cpp::Variable; +class GlobalVariable = Cpp::GlobalOrNamespaceVariable; + class Parameter = Cpp::Parameter; class Field = Cpp::Field; class BuiltInOperation = Cpp::BuiltInOperation; +class Declaration = Cpp::Declaration; + // TODO: Remove necessity for these. class Expr = Cpp::Expr; 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 f04db828a25..056d4b6bfe3 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 @@ -1,4 +1,18 @@ uniqueEnclosingCallable +| globals.cpp:9:5:9:19 | Address | Node should have one enclosing callable but has 0. | +| globals.cpp:9:5:9:19 | VariableAddress | Node should have one enclosing callable but has 0. | +| globals.cpp:9:5:9:19 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | +| globals.cpp:9:23:9:23 | 0 | Node should have one enclosing callable but has 0. | +| globals.cpp:9:23:9:23 | ChiPartial | Node should have one enclosing callable but has 0. | +| globals.cpp:9:23:9:23 | Store | Node should have one enclosing callable but has 0. | +| globals.cpp:9:23:9:23 | StoreValue | Node should have one enclosing callable but has 0. | +| globals.cpp:16:12:16:26 | Address | Node should have one enclosing callable but has 0. | +| globals.cpp:16:12:16:26 | VariableAddress | Node should have one enclosing callable but has 0. | +| globals.cpp:16:12:16:26 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | +| globals.cpp:16:30:16:30 | 0 | Node should have one enclosing callable but has 0. | +| globals.cpp:16:30:16:30 | ChiPartial | Node should have one enclosing callable but has 0. | +| globals.cpp:16:30:16:30 | Store | Node should have one enclosing callable but has 0. | +| globals.cpp:16:30:16:30 | StoreValue | Node should have one enclosing callable but has 0. | uniqueType uniqueNodeLocation | BarrierGuard.cpp:2:11:2:13 | (unnamed parameter 0) | Node should have one location but has 6. | @@ -199,7 +213,9 @@ postWithInFlow | example.c:28:22:28:25 | & ... [post update] | PostUpdateNode should not be the target of local flow. | | example.c:28:23:28:25 | pos [post update] | PostUpdateNode should not be the target of local flow. | | globals.cpp:5:9:5:13 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | +| globals.cpp:9:5:9:19 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | globals.cpp:13:5:13:19 | flowTestGlobal1 [post update] | PostUpdateNode should not be the target of local flow. | +| globals.cpp:16:12:16:26 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | globals.cpp:23:5:23:19 | flowTestGlobal2 [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:8:6:8:6 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:9:6:9:6 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | diff --git a/cpp/ql/test/library-tests/ir/ir/PrintConfig.qll b/cpp/ql/test/library-tests/ir/ir/PrintConfig.qll index ccf243386fe..a9167597691 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintConfig.qll +++ b/cpp/ql/test/library-tests/ir/ir/PrintConfig.qll @@ -12,4 +12,11 @@ predicate locationIsInStandardHeaders(Location loc) { * * This predicate excludes functions defined in standard headers. */ -predicate shouldDumpFunction(Function func) { not locationIsInStandardHeaders(func.getLocation()) } +predicate shouldDumpFunction(Declaration decl) { + not locationIsInStandardHeaders(decl.getLocation()) and + ( + not decl instanceof Variable + or + decl.(GlobalOrNamespaceVariable).hasInitializer() + ) +} diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index e85c5f1b505..a07036da2ba 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -1816,4 +1816,16 @@ void switch_initialization(int x) { } } +int global_1; + +int global_2 = 1; + +const int global_3 = 2; + +constructor_only global_4(1); + +constructor_only global_5 = constructor_only(2); + +char *global_string = "global string"; + // 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 1581085efc6..e0e04301e6f 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -4743,6 +4743,16 @@ | ir.cpp:1034:6:1034:20 | ChiTotal | total:m1034_2 | | ir.cpp:1034:6:1034:20 | SideEffect | m1034_3 | | ir.cpp:1035:15:1035:15 | Address | &:r1035_1 | +| ir.cpp:1038:6:1038:8 | Address | &:r1038_3 | +| ir.cpp:1038:6:1038:8 | SideEffect | ~m1038_9 | +| ir.cpp:1038:12:1038:18 | Address | &:r1038_4 | +| ir.cpp:1038:12:1038:18 | Address | &:r1038_4 | +| ir.cpp:1038:12:1038:18 | ChiPartial | partial:m1038_5 | +| ir.cpp:1038:12:1038:18 | ChiPartial | partial:m1038_8 | +| ir.cpp:1038:12:1038:18 | ChiTotal | total:m1038_2 | +| ir.cpp:1038:12:1038:18 | ChiTotal | total:m1038_6 | +| ir.cpp:1038:12:1038:18 | Load | ~m1038_6 | +| ir.cpp:1038:12:1038:18 | StoreValue | r1038_7 | | ir.cpp:1038:14:1038:14 | Address | &:r1038_5 | | ir.cpp:1038:14:1038:14 | Address | &:r1038_5 | | ir.cpp:1038:14:1038:14 | Address | &:r1038_5 | @@ -8457,6 +8467,43 @@ | ir.cpp:1815:14:1815:15 | Address | &:r1815_1 | | ir.cpp:1815:14:1815:15 | Load | m1813_4 | | ir.cpp:1815:14:1815:15 | Right | r1815_2 | +| ir.cpp:1821:5:1821:12 | Address | &:r1821_3 | +| ir.cpp:1821:5:1821:12 | SideEffect | ~m1821_6 | +| ir.cpp:1821:16:1821:16 | ChiPartial | partial:m1821_5 | +| ir.cpp:1821:16:1821:16 | ChiTotal | total:m1821_2 | +| ir.cpp:1821:16:1821:16 | StoreValue | r1821_4 | +| ir.cpp:1823:11:1823:18 | Address | &:r1823_3 | +| ir.cpp:1823:11:1823:18 | SideEffect | ~m1823_6 | +| ir.cpp:1823:22:1823:22 | ChiPartial | partial:m1823_5 | +| ir.cpp:1823:22:1823:22 | ChiTotal | total:m1823_2 | +| ir.cpp:1823:22:1823:22 | StoreValue | r1823_4 | +| ir.cpp:1825:18:1825:25 | Address | &:r1825_3 | +| ir.cpp:1825:18:1825:25 | Arg(this) | this:r1825_3 | +| ir.cpp:1825:18:1825:25 | SideEffect | ~m1825_10 | +| ir.cpp:1825:27:1825:27 | Arg(0) | 0:r1825_5 | +| ir.cpp:1825:27:1825:28 | CallTarget | func:r1825_4 | +| ir.cpp:1825:27:1825:28 | ChiPartial | partial:m1825_7 | +| ir.cpp:1825:27:1825:28 | ChiPartial | partial:m1825_9 | +| ir.cpp:1825:27:1825:28 | ChiTotal | total:m1825_2 | +| ir.cpp:1825:27:1825:28 | ChiTotal | total:m1825_8 | +| ir.cpp:1825:27:1825:28 | SideEffect | ~m1825_2 | +| ir.cpp:1827:18:1827:25 | Address | &:r1827_3 | +| ir.cpp:1827:18:1827:25 | Arg(this) | this:r1827_3 | +| ir.cpp:1827:18:1827:25 | SideEffect | ~m1827_10 | +| ir.cpp:1827:28:1827:47 | CallTarget | func:r1827_4 | +| ir.cpp:1827:28:1827:47 | ChiPartial | partial:m1827_7 | +| ir.cpp:1827:28:1827:47 | ChiPartial | partial:m1827_9 | +| ir.cpp:1827:28:1827:47 | ChiTotal | total:m1827_2 | +| ir.cpp:1827:28:1827:47 | ChiTotal | total:m1827_8 | +| ir.cpp:1827:28:1827:47 | SideEffect | ~m1827_2 | +| ir.cpp:1827:46:1827:46 | Arg(0) | 0:r1827_5 | +| ir.cpp:1829:7:1829:19 | Address | &:r1829_3 | +| ir.cpp:1829:7:1829:19 | SideEffect | ~m1829_8 | +| ir.cpp:1829:23:1829:37 | ChiPartial | partial:m1829_7 | +| ir.cpp:1829:23:1829:37 | ChiTotal | total:m1829_2 | +| ir.cpp:1829:23:1829:37 | StoreValue | r1829_6 | +| ir.cpp:1829:23:1829:37 | Unary | r1829_4 | +| ir.cpp:1829:23:1829:37 | Unary | r1829_5 | | 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 | @@ -8700,6 +8747,34 @@ | smart_ptr.cpp:47:43:47:63 | SideEffect | ~m47_16 | | smart_ptr.cpp:47:43:47:63 | Unary | r47_5 | | smart_ptr.cpp:47:43:47:63 | Unary | r47_6 | +| struct_init.cpp:9:13:9:25 | Left | r9_3 | +| struct_init.cpp:9:13:9:25 | Left | r9_3 | +| struct_init.cpp:9:13:9:25 | SideEffect | ~m11_10 | +| struct_init.cpp:9:31:12:1 | Right | r9_4 | +| struct_init.cpp:9:31:12:1 | Right | r9_6 | +| struct_init.cpp:9:31:12:1 | Unary | r9_5 | +| struct_init.cpp:9:31:12:1 | Unary | r9_5 | +| struct_init.cpp:9:31:12:1 | Unary | r9_7 | +| struct_init.cpp:9:31:12:1 | Unary | r9_7 | +| struct_init.cpp:10:5:10:21 | Address | &:r10_1 | +| struct_init.cpp:10:5:10:21 | Address | &:r10_6 | +| struct_init.cpp:10:7:10:9 | ChiPartial | partial:m10_4 | +| struct_init.cpp:10:7:10:9 | ChiTotal | total:m9_2 | +| struct_init.cpp:10:7:10:9 | StoreValue | r10_3 | +| struct_init.cpp:10:7:10:9 | Unary | r10_2 | +| struct_init.cpp:10:12:10:19 | ChiPartial | partial:m10_8 | +| struct_init.cpp:10:12:10:19 | ChiTotal | total:m10_5 | +| struct_init.cpp:10:12:10:19 | StoreValue | r10_7 | +| struct_init.cpp:11:5:11:22 | Address | &:r11_1 | +| struct_init.cpp:11:5:11:22 | Address | &:r11_6 | +| struct_init.cpp:11:7:11:9 | ChiPartial | partial:m11_4 | +| struct_init.cpp:11:7:11:9 | ChiTotal | total:m10_9 | +| struct_init.cpp:11:7:11:9 | StoreValue | r11_3 | +| struct_init.cpp:11:7:11:9 | Unary | r11_2 | +| struct_init.cpp:11:12:11:20 | ChiPartial | partial:m11_9 | +| struct_init.cpp:11:12:11:20 | ChiTotal | total:m11_5 | +| struct_init.cpp:11:12:11:20 | StoreValue | r11_8 | +| struct_init.cpp:11:13:11:20 | Unary | r11_7 | | struct_init.cpp:16:6:16:20 | ChiPartial | partial:m16_3 | | struct_init.cpp:16:6:16:20 | ChiTotal | total:m16_2 | | struct_init.cpp:16:6:16:20 | SideEffect | ~m17_5 | 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 17c59485eb9..849dad025bb 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -5650,6 +5650,19 @@ ir.cpp: # 1034| v1034_5(void) = AliasedUse : ~m? # 1034| v1034_6(void) = ExitFunction : +# 1038| (lambda [] type at line 1038, col. 12) lam +# 1038| Block 0 +# 1038| v1038_1(void) = EnterFunction : +# 1038| mu1038_2(unknown) = AliasedDefinition : +# 1038| r1038_3(glval) = VariableAddress : +# 1038| r1038_4(glval) = VariableAddress : +# 1038| mu1038_5(decltype([...](...){...})) = Uninitialized : &:r1038_4 +# 1038| r1038_6(decltype([...](...){...})) = Load[?] : &:r1038_4, ~m? +# 1038| mu1038_7(decltype([...](...){...})) = Store[?] : &:r1038_3, r1038_6 +# 1038| v1038_8(void) = ReturnVoid : +# 1038| v1038_9(void) = AliasedUse : ~m? +# 1038| v1038_10(void) = ExitFunction : + # 1038| void (lambda [] type at line 1038, col. 12)::operator()() const # 1038| Block 0 # 1038| v1038_1(void) = EnterFunction : @@ -9720,6 +9733,69 @@ ir.cpp: # 1785| v1785_7(void) = AliasedUse : ~m? # 1785| v1785_8(void) = ExitFunction : +# 1821| int global_2 +# 1821| Block 0 +# 1821| v1821_1(void) = EnterFunction : +# 1821| mu1821_2(unknown) = AliasedDefinition : +# 1821| r1821_3(glval) = VariableAddress : +# 1821| r1821_4(int) = Constant[1] : +# 1821| mu1821_5(int) = Store[?] : &:r1821_3, r1821_4 +# 1821| v1821_6(void) = ReturnVoid : +# 1821| v1821_7(void) = AliasedUse : ~m? +# 1821| v1821_8(void) = ExitFunction : + +# 1823| int const global_3 +# 1823| Block 0 +# 1823| v1823_1(void) = EnterFunction : +# 1823| mu1823_2(unknown) = AliasedDefinition : +# 1823| r1823_3(glval) = VariableAddress : +# 1823| r1823_4(int) = Constant[2] : +# 1823| mu1823_5(int) = Store[?] : &:r1823_3, r1823_4 +# 1823| v1823_6(void) = ReturnVoid : +# 1823| v1823_7(void) = AliasedUse : ~m? +# 1823| v1823_8(void) = ExitFunction : + +# 1825| constructor_only global_4 +# 1825| Block 0 +# 1825| v1825_1(void) = EnterFunction : +# 1825| mu1825_2(unknown) = AliasedDefinition : +# 1825| r1825_3(glval) = VariableAddress : +# 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| mu1825_7(unknown) = ^CallSideEffect : ~m? +# 1825| mu1825_8(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1825_3 +# 1825| v1825_9(void) = ReturnVoid : +# 1825| v1825_10(void) = AliasedUse : ~m? +# 1825| v1825_11(void) = ExitFunction : + +# 1827| constructor_only global_5 +# 1827| Block 0 +# 1827| v1827_1(void) = EnterFunction : +# 1827| mu1827_2(unknown) = AliasedDefinition : +# 1827| r1827_3(glval) = VariableAddress : +# 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| mu1827_7(unknown) = ^CallSideEffect : ~m? +# 1827| mu1827_8(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1827_3 +# 1827| v1827_9(void) = ReturnVoid : +# 1827| v1827_10(void) = AliasedUse : ~m? +# 1827| v1827_11(void) = ExitFunction : + +# 1829| char* global_string +# 1829| Block 0 +# 1829| v1829_1(void) = EnterFunction : +# 1829| mu1829_2(unknown) = AliasedDefinition : +# 1829| r1829_3(glval) = VariableAddress : +# 1829| r1829_4(glval) = StringConstant : +# 1829| r1829_5(char *) = Convert : r1829_4 +# 1829| r1829_6(char *) = Convert : r1829_5 +# 1829| mu1829_7(char *) = Store[?] : &:r1829_3, r1829_6 +# 1829| v1829_8(void) = ReturnVoid : +# 1829| v1829_9(void) = AliasedUse : ~m? +# 1829| v1829_10(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 @@ -9941,6 +10017,34 @@ smart_ptr.cpp: # 28| v28_6(void) = ExitFunction : struct_init.cpp: +# 9| Info infos_in_file[] +# 9| Block 0 +# 9| v9_1(void) = EnterFunction : +# 9| mu9_2(unknown) = AliasedDefinition : +# 9| r9_3(glval) = VariableAddress : +# 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 : +# 10| r10_3(char *) = Convert : r10_2 +# 10| mu10_4(char *) = Store[?] : &:r10_1, r10_3 +# 10| r10_5(glval<..(*)(..)>) = FieldAddress[handler] : r9_5 +# 10| r10_6(..(*)(..)) = FunctionAddress[handler1] : +# 10| mu10_7(..(*)(..)) = Store[?] : &:r10_5, r10_6 +# 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 : +# 11| r11_3(char *) = Convert : r11_2 +# 11| mu11_4(char *) = Store[?] : &:r11_1, r11_3 +# 11| r11_5(glval<..(*)(..)>) = FieldAddress[handler] : r9_7 +# 11| r11_6(glval<..()(..)>) = FunctionAddress[handler2] : +# 11| r11_7(..(*)(..)) = CopyValue : r11_6 +# 11| mu11_8(..(*)(..)) = Store[?] : &:r11_5, r11_7 +# 9| v9_8(void) = ReturnVoid : +# 9| v9_9(void) = AliasedUse : ~m? +# 9| v9_10(void) = ExitFunction : + # 16| void let_info_escape(Info*) # 16| Block 0 # 16| v16_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.ql b/cpp/ql/test/library-tests/ir/ir/raw_ir.ql index a0ebe4d2bdd..ae37a4a932b 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.ql +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.ql @@ -7,5 +7,5 @@ private import semmle.code.cpp.ir.implementation.raw.PrintIR private import PrintConfig private class PrintConfig extends PrintIRConfiguration { - override predicate shouldPrintFunction(Function func) { shouldDumpFunction(func) } + override predicate shouldPrintFunction(Declaration decl) { shouldDumpFunction(decl) } } diff --git a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected index 147c10b7c7f..1893ab5c0d5 100644 --- a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected +++ b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected @@ -1234,6 +1234,8 @@ ssa.cpp: # 268| v268_14(void) = AliasedUse : ~m269_7 # 268| v268_15(void) = ExitFunction : +# 274| Point* pp + # 275| void EscapedButNotConflated(bool, Point, int) # 275| Block 0 # 275| v275_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected index 396b7532d68..faedd418ed2 100644 --- a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected @@ -1229,6 +1229,8 @@ ssa.cpp: # 268| v268_14(void) = AliasedUse : ~m269_7 # 268| v268_15(void) = ExitFunction : +# 274| Point* pp + # 275| void EscapedButNotConflated(bool, Point, int) # 275| Block 0 # 275| v275_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected index 3fc07bf6950..6d1e8f4d03d 100644 --- a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected +++ b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected @@ -1140,6 +1140,8 @@ ssa.cpp: # 268| v268_13(void) = AliasedUse : ~m? # 268| v268_14(void) = ExitFunction : +# 274| Point* pp + # 275| void EscapedButNotConflated(bool, Point, int) # 275| Block 0 # 275| v275_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir_unsound.expected b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir_unsound.expected index 3fc07bf6950..6d1e8f4d03d 100644 --- a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir_unsound.expected @@ -1140,6 +1140,8 @@ ssa.cpp: # 268| v268_13(void) = AliasedUse : ~m? # 268| v268_14(void) = ExitFunction : +# 274| Point* pp + # 275| void EscapedButNotConflated(bool, Point, int) # 275| Block 0 # 275| v275_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/syntax-zoo/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/syntax-zoo/aliased_ssa_consistency.expected index fcfef712b56..db803126364 100644 --- a/cpp/ql/test/library-tests/syntax-zoo/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/syntax-zoo/aliased_ssa_consistency.expected @@ -4,6 +4,8 @@ unexpectedOperand duplicateOperand missingPhiOperand missingOperandType +| cpp11.cpp:36:18:36:18 | ChiTotal | Operand 'ChiTotal' of instruction 'Chi' is missing a type in function '$@'. | cpp11.cpp:36:5:36:14 | int global_int | int global_int | +| misc.c:210:24:210:28 | ChiTotal | Operand 'ChiTotal' of instruction 'Chi' is missing a type in function '$@'. | misc.c:210:5:210:20 | int global_with_init | int global_with_init | duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor @@ -91,6 +93,8 @@ useNotDominatedByDefinition switchInstructionWithoutDefaultEdge notMarkedAsConflated wronglyMarkedAsConflated +| cpp11.cpp:36:18:36:18 | Chi: 5 | Instruction 'Chi: 5' should not be marked as having a conflated result in function '$@'. | cpp11.cpp:36:5:36:14 | int global_int | int global_int | +| misc.c:210:24:210:28 | Chi: ... + ... | Instruction 'Chi: ... + ...' should not be marked as having a conflated result in function '$@'. | misc.c:210:5:210:20 | int global_with_init | int global_with_init | invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer diff --git a/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected index e37a676565c..53bdffc3be3 100644 --- a/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected @@ -1,4 +1,45 @@ uniqueEnclosingCallable +| cpp11.cpp:35:11:35:22 | Address | Node should have one enclosing callable but has 0. | +| cpp11.cpp:35:11:35:22 | AliasedDefinition | Node should have one enclosing callable but has 0. | +| cpp11.cpp:35:11:35:22 | VariableAddress | Node should have one enclosing callable but has 0. | +| cpp11.cpp:35:11:35:22 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | +| cpp11.cpp:35:26:35:26 | 5 | Node should have one enclosing callable but has 0. | +| cpp11.cpp:35:26:35:26 | ChiPartial | Node should have one enclosing callable but has 0. | +| cpp11.cpp:35:26:35:26 | ChiTotal | Node should have one enclosing callable but has 0. | +| cpp11.cpp:35:26:35:26 | Store | Node should have one enclosing callable but has 0. | +| cpp11.cpp:35:26:35:26 | StoreValue | Node should have one enclosing callable but has 0. | +| cpp11.cpp:36:5:36:14 | Address | Node should have one enclosing callable but has 0. | +| cpp11.cpp:36:5:36:14 | VariableAddress | Node should have one enclosing callable but has 0. | +| cpp11.cpp:36:5:36:14 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | +| cpp11.cpp:36:18:36:18 | 5 | Node should have one enclosing callable but has 0. | +| cpp11.cpp:36:18:36:18 | ChiPartial | Node should have one enclosing callable but has 0. | +| cpp11.cpp:36:18:36:18 | Store | Node should have one enclosing callable but has 0. | +| cpp11.cpp:36:18:36:18 | StoreValue | Node should have one enclosing callable but has 0. | +| misc.c:10:5:10:13 | Address | Node should have one enclosing callable but has 0. | +| misc.c:10:5:10:13 | AliasedDefinition | Node should have one enclosing callable but has 0. | +| misc.c:10:5:10:13 | VariableAddress | Node should have one enclosing callable but has 0. | +| misc.c:10:5:10:13 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | +| misc.c:10:17:10:17 | 1 | Node should have one enclosing callable but has 0. | +| misc.c:10:17:10:17 | ChiPartial | Node should have one enclosing callable but has 0. | +| misc.c:10:17:10:17 | ChiTotal | Node should have one enclosing callable but has 0. | +| misc.c:10:17:10:17 | Store | Node should have one enclosing callable but has 0. | +| misc.c:10:17:10:17 | StoreValue | Node should have one enclosing callable but has 0. | +| misc.c:11:5:11:13 | Address | Node should have one enclosing callable but has 0. | +| misc.c:11:5:11:13 | AliasedDefinition | Node should have one enclosing callable but has 0. | +| misc.c:11:5:11:13 | VariableAddress | Node should have one enclosing callable but has 0. | +| misc.c:11:5:11:13 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | +| misc.c:11:17:11:21 | ... + ... | Node should have one enclosing callable but has 0. | +| misc.c:11:17:11:21 | ChiPartial | Node should have one enclosing callable but has 0. | +| misc.c:11:17:11:21 | ChiTotal | Node should have one enclosing callable but has 0. | +| misc.c:11:17:11:21 | Store | Node should have one enclosing callable but has 0. | +| misc.c:11:17:11:21 | StoreValue | Node should have one enclosing callable but has 0. | +| misc.c:210:5:210:20 | Address | Node should have one enclosing callable but has 0. | +| misc.c:210:5:210:20 | VariableAddress | Node should have one enclosing callable but has 0. | +| misc.c:210:5:210:20 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | +| misc.c:210:24:210:28 | ... + ... | Node should have one enclosing callable but has 0. | +| misc.c:210:24:210:28 | ChiPartial | Node should have one enclosing callable but has 0. | +| misc.c:210:24:210:28 | Store | Node should have one enclosing callable but has 0. | +| misc.c:210:24:210:28 | StoreValue | Node should have one enclosing callable but has 0. | uniqueType uniqueNodeLocation | aggregateinitializer.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. | @@ -1622,6 +1663,8 @@ postWithInFlow | cpp11.cpp:28:21:28:34 | temporary object [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:29:7:29:16 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:31:5:31:13 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | +| cpp11.cpp:35:11:35:22 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | +| cpp11.cpp:36:5:36:14 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:56:14:56:15 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:56:14:56:15 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:60:15:60:16 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | @@ -2230,6 +2273,8 @@ postWithInFlow | ltrbinopexpr.c:37:5:37:5 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | ltrbinopexpr.c:39:5:39:5 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | ltrbinopexpr.c:40:5:40:5 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | +| misc.c:10:5:10:13 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | +| misc.c:11:5:11:13 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:18:5:18:5 | i [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:19:5:19:5 | i [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:20:7:20:7 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | @@ -2289,6 +2334,7 @@ postWithInFlow | misc.c:200:24:200:27 | args [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:200:24:200:27 | array to pointer conversion [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:208:1:208:3 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | +| misc.c:210:5:210:20 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:216:3:216:26 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:220:3:220:5 | * ... [post update] | PostUpdateNode should not be the target of local flow. | | misc.c:220:4:220:5 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | diff --git a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/diff_ir_expr.expected b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/diff_ir_expr.expected index 7322e9723ec..b838a13d5af 100644 --- a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/diff_ir_expr.expected +++ b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/diff_ir_expr.expected @@ -1,18 +1,15 @@ | test.cpp:5:3:5:13 | ... = ... | test.cpp:5:3:5:13 | ... = ... | AST only | | test.cpp:6:3:6:13 | ... = ... | test.cpp:6:3:6:13 | ... = ... | AST only | | test.cpp:7:3:7:7 | ... = ... | test.cpp:7:3:7:7 | ... = ... | AST only | -| test.cpp:10:16:10:16 | 1 | test.cpp:10:16:10:16 | 1 | AST only | | test.cpp:16:3:16:24 | ... = ... | test.cpp:16:3:16:24 | ... = ... | AST only | | test.cpp:17:3:17:24 | ... = ... | test.cpp:17:3:17:24 | ... = ... | AST only | | test.cpp:18:3:18:7 | ... = ... | test.cpp:18:3:18:7 | ... = ... | AST only | -| test.cpp:21:16:21:16 | 2 | test.cpp:21:16:21:16 | 2 | AST only | | test.cpp:29:3:29:3 | x | test.cpp:31:3:31:3 | x | IR only | | test.cpp:29:3:29:24 | ... = ... | test.cpp:29:3:29:24 | ... = ... | AST only | | test.cpp:30:3:30:17 | call to change_global02 | test.cpp:30:3:30:17 | call to change_global02 | AST only | | test.cpp:31:3:31:3 | x | test.cpp:29:3:29:3 | x | IR only | | test.cpp:31:3:31:24 | ... = ... | test.cpp:31:3:31:24 | ... = ... | AST only | | test.cpp:32:3:32:7 | ... = ... | test.cpp:32:3:32:7 | ... = ... | AST only | -| test.cpp:35:16:35:16 | 3 | test.cpp:35:16:35:16 | 3 | AST only | | test.cpp:43:3:43:3 | x | test.cpp:45:3:45:3 | x | IR only | | test.cpp:43:3:43:24 | ... = ... | test.cpp:43:3:43:24 | ... = ... | AST only | | test.cpp:43:7:43:24 | ... + ... | test.cpp:45:7:45:24 | ... + ... | IR only | diff --git a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected index 24dc1c1ab44..94941f4a70b 100644 --- a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected +++ b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected @@ -69,6 +69,23 @@ test.cpp: # 1| v1_10(void) = AliasedUse : m1_3 # 1| v1_11(void) = ExitFunction : +# 10| int global01 +# 10| Block 0 +# 10| v10_1(void) = EnterFunction : +# 10| m10_2(unknown) = AliasedDefinition : +# 10| valnum = unique +# 10| r10_3(glval) = VariableAddress[global01] : +# 10| valnum = unique +# 10| r10_4(int) = Constant[1] : +# 10| valnum = m10_5, r10_4 +# 10| m10_5(int) = Store[global01] : &:r10_3, r10_4 +# 10| valnum = m10_5, r10_4 +# 10| m10_6(unknown) = Chi : total:~m?, partial:m10_5 +# 10| valnum = unique +# 10| v10_7(void) = ReturnVoid : +# 10| v10_8(void) = AliasedUse : ~m10_2 +# 10| v10_9(void) = ExitFunction : + # 12| void test01(int, int) # 12| Block 0 # 12| v12_1(void) = EnterFunction : @@ -151,6 +168,23 @@ test.cpp: # 12| v12_10(void) = AliasedUse : m12_3 # 12| v12_11(void) = ExitFunction : +# 21| int global02 +# 21| Block 0 +# 21| v21_1(void) = EnterFunction : +# 21| m21_2(unknown) = AliasedDefinition : +# 21| valnum = unique +# 21| r21_3(glval) = VariableAddress[global02] : +# 21| valnum = unique +# 21| r21_4(int) = Constant[2] : +# 21| valnum = m21_5, r21_4 +# 21| m21_5(int) = Store[global02] : &:r21_3, r21_4 +# 21| valnum = m21_5, r21_4 +# 21| m21_6(unknown) = Chi : total:~m?, partial:m21_5 +# 21| valnum = unique +# 21| v21_7(void) = ReturnVoid : +# 21| v21_8(void) = AliasedUse : ~m21_2 +# 21| v21_9(void) = ExitFunction : + # 25| void test02(int, int) # 25| Block 0 # 25| v25_1(void) = EnterFunction : @@ -240,6 +274,23 @@ test.cpp: # 25| v25_10(void) = AliasedUse : ~m30_4 # 25| v25_11(void) = ExitFunction : +# 35| int global03 +# 35| Block 0 +# 35| v35_1(void) = EnterFunction : +# 35| m35_2(unknown) = AliasedDefinition : +# 35| valnum = unique +# 35| r35_3(glval) = VariableAddress[global03] : +# 35| valnum = unique +# 35| r35_4(int) = Constant[3] : +# 35| valnum = m35_5, r35_4 +# 35| m35_5(int) = Store[global03] : &:r35_3, r35_4 +# 35| valnum = m35_5, r35_4 +# 35| m35_6(unknown) = Chi : total:~m?, partial:m35_5 +# 35| valnum = unique +# 35| v35_7(void) = ReturnVoid : +# 35| v35_8(void) = AliasedUse : ~m35_2 +# 35| v35_9(void) = ExitFunction : + # 39| void test03(int, int, int*) # 39| Block 0 # 39| v39_1(void) = EnterFunction : @@ -890,6 +941,10 @@ test.cpp: # 124| v124_13(void) = AliasedUse : m124_3 # 124| v124_14(void) = ExitFunction : +# 132| A* global_a + +# 133| int global_n + # 135| void test_read_global_same() # 135| Block 0 # 135| v135_1(void) = EnterFunction : diff --git a/csharp/ql/src/experimental/ir/implementation/IRConfiguration.qll b/csharp/ql/src/experimental/ir/implementation/IRConfiguration.qll index 37ac2fccdd9..90cdb9e0f5f 100644 --- a/csharp/ql/src/experimental/ir/implementation/IRConfiguration.qll +++ b/csharp/ql/src/experimental/ir/implementation/IRConfiguration.qll @@ -16,7 +16,7 @@ class IRConfiguration extends TIRConfiguration { /** * Holds if IR should be created for function `func`. By default, holds for all functions. */ - predicate shouldCreateIRForFunction(Language::Function func) { any() } + predicate shouldCreateIRForFunction(Language::Declaration func) { any() } /** * Holds if the strings used as part of an IR dump should be generated for function `func`. @@ -25,7 +25,7 @@ class IRConfiguration extends TIRConfiguration { * of debug strings for IR that will not be dumped. We still generate the actual IR for these * functions, however, to preserve the results of any interprocedural analysis. */ - predicate shouldEvaluateDebugStringsForFunction(Language::Function func) { any() } + predicate shouldEvaluateDebugStringsForFunction(Language::Declaration func) { any() } } private newtype TIREscapeAnalysisConfiguration = MkIREscapeAnalysisConfiguration() diff --git a/csharp/ql/src/experimental/ir/implementation/internal/IRFunctionBase.qll b/csharp/ql/src/experimental/ir/implementation/internal/IRFunctionBase.qll index 60895ce3d26..576b4f9adf1 100644 --- a/csharp/ql/src/experimental/ir/implementation/internal/IRFunctionBase.qll +++ b/csharp/ql/src/experimental/ir/implementation/internal/IRFunctionBase.qll @@ -5,23 +5,28 @@ private import IRFunctionBaseInternal private newtype TIRFunction = - MkIRFunction(Language::Function func) { IRConstruction::Raw::functionHasIR(func) } + TFunctionIRFunction(Language::Function func) { IRConstruction::Raw::functionHasIR(func) } or + TVarInitIRFunction(Language::GlobalVariable var) { IRConstruction::Raw::varHasIRFunc(var) } /** * The IR for a function. This base class contains only the predicates that are the same between all * phases of the IR. Each instantiation of `IRFunction` extends this class. */ class IRFunctionBase extends TIRFunction { - Language::Function func; + Language::Declaration decl; - IRFunctionBase() { this = MkIRFunction(func) } + IRFunctionBase() { + this = TFunctionIRFunction(decl) + or + this = TVarInitIRFunction(decl) + } /** Gets a textual representation of this element. */ - final string toString() { result = "IR: " + func.toString() } + final string toString() { result = "IR: " + decl.toString() } /** Gets the function whose IR is represented. */ - final Language::Function getFunction() { result = func } + final Language::Declaration getFunction() { result = decl } /** Gets the location of the function. */ - final Language::Location getLocation() { result = func.getLocation() } + final Language::Location getLocation() { result = decl.getLocation() } } diff --git a/csharp/ql/src/experimental/ir/implementation/raw/IRBlock.qll b/csharp/ql/src/experimental/ir/implementation/raw/IRBlock.qll index bac7634cbd0..78008a6c69b 100644 --- a/csharp/ql/src/experimental/ir/implementation/raw/IRBlock.qll +++ b/csharp/ql/src/experimental/ir/implementation/raw/IRBlock.qll @@ -97,7 +97,7 @@ class IRBlockBase extends TIRBlock { /** * Gets the `Function` that contains this block. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = getFirstInstruction(this).getEnclosingFunction() } } diff --git a/csharp/ql/src/experimental/ir/implementation/raw/Instruction.qll b/csharp/ql/src/experimental/ir/implementation/raw/Instruction.qll index e5a908bbf9a..8e863ddf635 100644 --- a/csharp/ql/src/experimental/ir/implementation/raw/Instruction.qll +++ b/csharp/ql/src/experimental/ir/implementation/raw/Instruction.qll @@ -194,7 +194,7 @@ class Instruction extends Construction::TStageInstruction { /** * Gets the function that contains this instruction. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = this.getEnclosingIRFunction().getFunction() } diff --git a/csharp/ql/src/experimental/ir/implementation/raw/PrintIR.qll b/csharp/ql/src/experimental/ir/implementation/raw/PrintIR.qll index 59dadee7154..53cdc75512b 100644 --- a/csharp/ql/src/experimental/ir/implementation/raw/PrintIR.qll +++ b/csharp/ql/src/experimental/ir/implementation/raw/PrintIR.qll @@ -26,20 +26,20 @@ class PrintIRConfiguration extends TPrintIRConfiguration { * Holds if the IR for `func` should be printed. By default, holds for all * functions. */ - predicate shouldPrintFunction(Language::Function func) { any() } + predicate shouldPrintFunction(Language::Declaration decl) { any() } } /** * Override of `IRConfiguration` to only evaluate debug strings for the functions that are to be dumped. */ private class FilteredIRConfiguration extends IRConfiguration { - override predicate shouldEvaluateDebugStringsForFunction(Language::Function func) { + override predicate shouldEvaluateDebugStringsForFunction(Language::Declaration func) { shouldPrintFunction(func) } } -private predicate shouldPrintFunction(Language::Function func) { - exists(PrintIRConfiguration config | config.shouldPrintFunction(func)) +private predicate shouldPrintFunction(Language::Declaration decl) { + exists(PrintIRConfiguration config | config.shouldPrintFunction(decl)) } private string getAdditionalInstructionProperty(Instruction instr, string key) { diff --git a/csharp/ql/src/experimental/ir/implementation/raw/internal/IRConstruction.qll b/csharp/ql/src/experimental/ir/implementation/raw/internal/IRConstruction.qll index db6bd5c24e5..80002ffc020 100644 --- a/csharp/ql/src/experimental/ir/implementation/raw/internal/IRConstruction.qll +++ b/csharp/ql/src/experimental/ir/implementation/raw/internal/IRConstruction.qll @@ -46,6 +46,9 @@ module Raw { cached predicate functionHasIR(Callable callable) { exists(getTranslatedFunction(callable)) } + cached + predicate varHasIRFunc(Field field) { none() } + cached predicate hasInstruction(TranslatedElement element, InstructionTag tag) { element.hasInstruction(_, tag, _) diff --git a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRBlock.qll b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRBlock.qll index bac7634cbd0..78008a6c69b 100644 --- a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRBlock.qll +++ b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRBlock.qll @@ -97,7 +97,7 @@ class IRBlockBase extends TIRBlock { /** * Gets the `Function` that contains this block. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = getFirstInstruction(this).getEnclosingFunction() } } diff --git a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/Instruction.qll b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/Instruction.qll index e5a908bbf9a..8e863ddf635 100644 --- a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/Instruction.qll +++ b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/Instruction.qll @@ -194,7 +194,7 @@ class Instruction extends Construction::TStageInstruction { /** * Gets the function that contains this instruction. */ - final Language::Function getEnclosingFunction() { + final Language::Declaration getEnclosingFunction() { result = this.getEnclosingIRFunction().getFunction() } diff --git a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/PrintIR.qll b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/PrintIR.qll index 59dadee7154..53cdc75512b 100644 --- a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/PrintIR.qll +++ b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/PrintIR.qll @@ -26,20 +26,20 @@ class PrintIRConfiguration extends TPrintIRConfiguration { * Holds if the IR for `func` should be printed. By default, holds for all * functions. */ - predicate shouldPrintFunction(Language::Function func) { any() } + predicate shouldPrintFunction(Language::Declaration decl) { any() } } /** * Override of `IRConfiguration` to only evaluate debug strings for the functions that are to be dumped. */ private class FilteredIRConfiguration extends IRConfiguration { - override predicate shouldEvaluateDebugStringsForFunction(Language::Function func) { + override predicate shouldEvaluateDebugStringsForFunction(Language::Declaration func) { shouldPrintFunction(func) } } -private predicate shouldPrintFunction(Language::Function func) { - exists(PrintIRConfiguration config | config.shouldPrintFunction(func)) +private predicate shouldPrintFunction(Language::Declaration decl) { + exists(PrintIRConfiguration config | config.shouldPrintFunction(decl)) } private string getAdditionalInstructionProperty(Instruction instr, string key) { diff --git a/csharp/ql/src/experimental/ir/internal/IRCSharpLanguage.qll b/csharp/ql/src/experimental/ir/internal/IRCSharpLanguage.qll index 88c27315c2f..11fbe784ca0 100644 --- a/csharp/ql/src/experimental/ir/internal/IRCSharpLanguage.qll +++ b/csharp/ql/src/experimental/ir/internal/IRCSharpLanguage.qll @@ -8,6 +8,12 @@ class OpaqueTypeTag = CSharp::ValueOrRefType; class Function = CSharp::Callable; +class GlobalVariable extends CSharp::Field { + GlobalVariable() { this.isStatic() } +} + +class Declaration = CSharp::Declaration; + class Location = CSharp::Location; class UnknownLocation = CSharp::EmptyLocation; From e0878d7d3c95695b3b281831ce4424855ef282a7 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 27 Apr 2022 16:35:58 -0400 Subject: [PATCH 076/736] C++: Fix IR variable reuse for global var inits --- .../implementation/aliased_ssa/IRVariable.qll | 6 +-- .../implementation/internal/TIRVariable.qll | 8 +-- .../cpp/ir/implementation/raw/IRVariable.qll | 6 +-- .../raw/internal/TranslatedGlobalVar.qll | 3 +- .../unaliased_ssa/IRVariable.qll | 6 +-- .../dataflow-ir-consistency.expected | 6 ++- .../ir/ir/operand_locations.expected | 10 ++-- .../test/library-tests/ir/ir/raw_ir.expected | 44 +++++++-------- .../GlobalValueNumbering/ir_gvn.expected | 54 +++++++++---------- .../implementation/internal/TIRVariable.qll | 8 +-- .../ir/implementation/raw/IRVariable.qll | 6 +-- .../unaliased_ssa/IRVariable.qll | 6 +-- 12 files changed, 83 insertions(+), 80 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRVariable.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRVariable.qll index ca4708857a7..c92082d767d 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRVariable.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRVariable.qll @@ -18,7 +18,7 @@ private import Imports::IRType * by the AST-to-IR translation (`IRTempVariable`). */ class IRVariable extends TIRVariable { - Language::Function func; + Language::Declaration func; IRVariable() { this = TIRUserVariable(_, _, func) or @@ -79,7 +79,7 @@ class IRVariable extends TIRVariable { /** * Gets the function that references this variable. */ - final Language::Function getEnclosingFunction() { result = func } + final Language::Declaration getEnclosingFunction() { result = func } } /** @@ -246,7 +246,7 @@ class IREllipsisVariable extends IRTempVariable, IRParameter { final override string toString() { result = "#ellipsis" } - final override int getIndex() { result = func.getNumberOfParameters() } + final override int getIndex() { result = func.(Language::Function).getNumberOfParameters() } } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/internal/TIRVariable.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/internal/TIRVariable.qll index 12a0c6e7898..fe72263249f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/internal/TIRVariable.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/internal/TIRVariable.qll @@ -2,21 +2,21 @@ private import TIRVariableInternal private import Imports::TempVariableTag newtype TIRVariable = - TIRUserVariable(Language::Variable var, Language::LanguageType type, Language::Function func) { + TIRUserVariable(Language::Variable var, Language::LanguageType type, Language::Declaration func) { Construction::hasUserVariable(func, var, type) } or TIRTempVariable( - Language::Function func, Language::AST ast, TempVariableTag tag, Language::LanguageType type + Language::Declaration func, Language::AST ast, TempVariableTag tag, Language::LanguageType type ) { Construction::hasTempVariable(func, ast, tag, type) } or TIRDynamicInitializationFlag( - Language::Function func, Language::Variable var, Language::LanguageType type + Language::Declaration func, Language::Variable var, Language::LanguageType type ) { Construction::hasDynamicInitializationFlag(func, var, type) } or TIRStringLiteral( - Language::Function func, Language::AST ast, Language::LanguageType type, + Language::Declaration func, Language::AST ast, Language::LanguageType type, Language::StringLiteral literal ) { Construction::hasStringLiteral(func, ast, type, literal) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRVariable.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRVariable.qll index ca4708857a7..c92082d767d 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRVariable.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRVariable.qll @@ -18,7 +18,7 @@ private import Imports::IRType * by the AST-to-IR translation (`IRTempVariable`). */ class IRVariable extends TIRVariable { - Language::Function func; + Language::Declaration func; IRVariable() { this = TIRUserVariable(_, _, func) or @@ -79,7 +79,7 @@ class IRVariable extends TIRVariable { /** * Gets the function that references this variable. */ - final Language::Function getEnclosingFunction() { result = func } + final Language::Declaration getEnclosingFunction() { result = func } } /** @@ -246,7 +246,7 @@ class IREllipsisVariable extends IRTempVariable, IRParameter { final override string toString() { result = "#ellipsis" } - final override int getIndex() { result = func.getNumberOfParameters() } + final override int getIndex() { result = func.(Language::Function).getNumberOfParameters() } } /** 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 abc175b7040..bef32ede64a 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 @@ -89,7 +89,8 @@ class TranslatedGlobalOrNamespaceVarInit extends TranslatedRootElement, override IRUserVariable getInstructionVariable(InstructionTag tag) { tag = InitializerVariableAddressTag() and - result.getVariable() = var + result.getVariable() = var and + result.getEnclosingFunction() = var } override Instruction getTargetAddress() { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRVariable.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRVariable.qll index ca4708857a7..c92082d767d 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRVariable.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRVariable.qll @@ -18,7 +18,7 @@ private import Imports::IRType * by the AST-to-IR translation (`IRTempVariable`). */ class IRVariable extends TIRVariable { - Language::Function func; + Language::Declaration func; IRVariable() { this = TIRUserVariable(_, _, func) or @@ -79,7 +79,7 @@ class IRVariable extends TIRVariable { /** * Gets the function that references this variable. */ - final Language::Function getEnclosingFunction() { result = func } + final Language::Declaration getEnclosingFunction() { result = func } } /** @@ -246,7 +246,7 @@ class IREllipsisVariable extends IRTempVariable, IRParameter { final override string toString() { result = "#ellipsis" } - final override int getIndex() { result = func.getNumberOfParameters() } + final override int getIndex() { result = func.(Language::Function).getNumberOfParameters() } } /** 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 056d4b6bfe3..f4a3d208614 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 @@ -1,16 +1,20 @@ uniqueEnclosingCallable | globals.cpp:9:5:9:19 | Address | Node should have one enclosing callable but has 0. | +| globals.cpp:9:5:9:19 | AliasedDefinition | Node should have one enclosing callable but has 0. | | globals.cpp:9:5:9:19 | VariableAddress | Node should have one enclosing callable but has 0. | | globals.cpp:9:5:9:19 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | | globals.cpp:9:23:9:23 | 0 | Node should have one enclosing callable but has 0. | | globals.cpp:9:23:9:23 | ChiPartial | Node should have one enclosing callable but has 0. | +| globals.cpp:9:23:9:23 | ChiTotal | Node should have one enclosing callable but has 0. | | globals.cpp:9:23:9:23 | Store | Node should have one enclosing callable but has 0. | | globals.cpp:9:23:9:23 | StoreValue | Node should have one enclosing callable but has 0. | | globals.cpp:16:12:16:26 | Address | Node should have one enclosing callable but has 0. | +| globals.cpp:16:12:16:26 | AliasedDefinition | Node should have one enclosing callable but has 0. | | globals.cpp:16:12:16:26 | VariableAddress | Node should have one enclosing callable but has 0. | | globals.cpp:16:12:16:26 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | | globals.cpp:16:30:16:30 | 0 | Node should have one enclosing callable but has 0. | | globals.cpp:16:30:16:30 | ChiPartial | Node should have one enclosing callable but has 0. | +| globals.cpp:16:30:16:30 | ChiTotal | Node should have one enclosing callable but has 0. | | globals.cpp:16:30:16:30 | Store | Node should have one enclosing callable but has 0. | | globals.cpp:16:30:16:30 | StoreValue | Node should have one enclosing callable but has 0. | uniqueType @@ -234,10 +238,10 @@ postWithInFlow | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | +| lambdas.cpp:23:3:23:3 | (reference dereference) [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | v [post update] | PostUpdateNode should not be the target of local flow. | -| lambdas.cpp:23:15:23:15 | (reference dereference) [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:7:28:7 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:10:31:2 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:10:31:2 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | 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 e0e04301e6f..58f3b25feb2 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -4744,15 +4744,13 @@ | ir.cpp:1034:6:1034:20 | SideEffect | m1034_3 | | ir.cpp:1035:15:1035:15 | Address | &:r1035_1 | | ir.cpp:1038:6:1038:8 | Address | &:r1038_3 | -| ir.cpp:1038:6:1038:8 | SideEffect | ~m1038_9 | +| ir.cpp:1038:6:1038:8 | SideEffect | ~m1038_8 | | ir.cpp:1038:12:1038:18 | Address | &:r1038_4 | | ir.cpp:1038:12:1038:18 | Address | &:r1038_4 | -| ir.cpp:1038:12:1038:18 | ChiPartial | partial:m1038_5 | -| ir.cpp:1038:12:1038:18 | ChiPartial | partial:m1038_8 | +| ir.cpp:1038:12:1038:18 | ChiPartial | partial:m1038_7 | | ir.cpp:1038:12:1038:18 | ChiTotal | total:m1038_2 | -| ir.cpp:1038:12:1038:18 | ChiTotal | total:m1038_6 | -| ir.cpp:1038:12:1038:18 | Load | ~m1038_6 | -| ir.cpp:1038:12:1038:18 | StoreValue | r1038_7 | +| ir.cpp:1038:12:1038:18 | Load | m1038_5 | +| ir.cpp:1038:12:1038:18 | StoreValue | r1038_6 | | ir.cpp:1038:14:1038:14 | Address | &:r1038_5 | | ir.cpp:1038:14:1038:14 | Address | &:r1038_5 | | ir.cpp:1038:14:1038:14 | Address | &:r1038_5 | 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 849dad025bb..397f2bb288c 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -5652,16 +5652,16 @@ ir.cpp: # 1038| (lambda [] type at line 1038, col. 12) lam # 1038| Block 0 -# 1038| v1038_1(void) = EnterFunction : -# 1038| mu1038_2(unknown) = AliasedDefinition : -# 1038| r1038_3(glval) = VariableAddress : -# 1038| r1038_4(glval) = VariableAddress : -# 1038| mu1038_5(decltype([...](...){...})) = Uninitialized : &:r1038_4 -# 1038| r1038_6(decltype([...](...){...})) = Load[?] : &:r1038_4, ~m? -# 1038| mu1038_7(decltype([...](...){...})) = Store[?] : &:r1038_3, r1038_6 -# 1038| v1038_8(void) = ReturnVoid : -# 1038| v1038_9(void) = AliasedUse : ~m? -# 1038| v1038_10(void) = ExitFunction : +# 1038| v1038_1(void) = EnterFunction : +# 1038| mu1038_2(unknown) = AliasedDefinition : +# 1038| r1038_3(glval) = VariableAddress : +# 1038| r1038_4(glval) = VariableAddress[#temp1038:12] : +# 1038| mu1038_5(decltype([...](...){...})) = Uninitialized[#temp1038:12] : &:r1038_4 +# 1038| r1038_6(decltype([...](...){...})) = Load[#temp1038:12] : &:r1038_4, ~m? +# 1038| mu1038_7(decltype([...](...){...})) = Store[?] : &:r1038_3, r1038_6 +# 1038| v1038_8(void) = ReturnVoid : +# 1038| v1038_9(void) = AliasedUse : ~m? +# 1038| v1038_10(void) = ExitFunction : # 1038| void (lambda [] type at line 1038, col. 12)::operator()() const # 1038| Block 0 @@ -9785,16 +9785,16 @@ ir.cpp: # 1829| char* global_string # 1829| Block 0 -# 1829| v1829_1(void) = EnterFunction : -# 1829| mu1829_2(unknown) = AliasedDefinition : -# 1829| r1829_3(glval) = VariableAddress : -# 1829| r1829_4(glval) = StringConstant : -# 1829| r1829_5(char *) = Convert : r1829_4 -# 1829| r1829_6(char *) = Convert : r1829_5 -# 1829| mu1829_7(char *) = Store[?] : &:r1829_3, r1829_6 -# 1829| v1829_8(void) = ReturnVoid : -# 1829| v1829_9(void) = AliasedUse : ~m? -# 1829| v1829_10(void) = ExitFunction : +# 1829| v1829_1(void) = EnterFunction : +# 1829| mu1829_2(unknown) = AliasedDefinition : +# 1829| r1829_3(glval) = VariableAddress : +# 1829| r1829_4(glval) = StringConstant["global string"] : +# 1829| r1829_5(char *) = Convert : r1829_4 +# 1829| r1829_6(char *) = Convert : r1829_5 +# 1829| mu1829_7(char *) = Store[?] : &:r1829_3, r1829_6 +# 1829| v1829_8(void) = ReturnVoid : +# 1829| v1829_9(void) = AliasedUse : ~m? +# 1829| v1829_10(void) = ExitFunction : perf-regression.cpp: # 6| void Big::Big() @@ -10025,7 +10025,7 @@ struct_init.cpp: # 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 : +# 10| r10_2(glval) = StringConstant["1"] : # 10| r10_3(char *) = Convert : r10_2 # 10| mu10_4(char *) = Store[?] : &:r10_1, r10_3 # 10| r10_5(glval<..(*)(..)>) = FieldAddress[handler] : r9_5 @@ -10034,7 +10034,7 @@ struct_init.cpp: # 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 : +# 11| r11_2(glval) = StringConstant["3"] : # 11| r11_3(char *) = Convert : r11_2 # 11| mu11_4(char *) = Store[?] : &:r11_1, r11_3 # 11| r11_5(glval<..(*)(..)>) = FieldAddress[handler] : r9_7 diff --git a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected index 94941f4a70b..28306e20866 100644 --- a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected +++ b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected @@ -71,20 +71,20 @@ test.cpp: # 10| int global01 # 10| Block 0 -# 10| v10_1(void) = EnterFunction : -# 10| m10_2(unknown) = AliasedDefinition : +# 10| v10_1(void) = EnterFunction : +# 10| m10_2(unknown) = AliasedDefinition : # 10| valnum = unique -# 10| r10_3(glval) = VariableAddress[global01] : +# 10| r10_3(glval) = VariableAddress : # 10| valnum = unique -# 10| r10_4(int) = Constant[1] : +# 10| r10_4(int) = Constant[1] : # 10| valnum = m10_5, r10_4 -# 10| m10_5(int) = Store[global01] : &:r10_3, r10_4 +# 10| m10_5(int) = Store[?] : &:r10_3, r10_4 # 10| valnum = m10_5, r10_4 -# 10| m10_6(unknown) = Chi : total:~m?, partial:m10_5 +# 10| m10_6(unknown) = Chi : total:m10_2, partial:m10_5 # 10| valnum = unique -# 10| v10_7(void) = ReturnVoid : -# 10| v10_8(void) = AliasedUse : ~m10_2 -# 10| v10_9(void) = ExitFunction : +# 10| v10_7(void) = ReturnVoid : +# 10| v10_8(void) = AliasedUse : ~m10_6 +# 10| v10_9(void) = ExitFunction : # 12| void test01(int, int) # 12| Block 0 @@ -170,20 +170,20 @@ test.cpp: # 21| int global02 # 21| Block 0 -# 21| v21_1(void) = EnterFunction : -# 21| m21_2(unknown) = AliasedDefinition : +# 21| v21_1(void) = EnterFunction : +# 21| m21_2(unknown) = AliasedDefinition : # 21| valnum = unique -# 21| r21_3(glval) = VariableAddress[global02] : +# 21| r21_3(glval) = VariableAddress : # 21| valnum = unique -# 21| r21_4(int) = Constant[2] : +# 21| r21_4(int) = Constant[2] : # 21| valnum = m21_5, r21_4 -# 21| m21_5(int) = Store[global02] : &:r21_3, r21_4 +# 21| m21_5(int) = Store[?] : &:r21_3, r21_4 # 21| valnum = m21_5, r21_4 -# 21| m21_6(unknown) = Chi : total:~m?, partial:m21_5 +# 21| m21_6(unknown) = Chi : total:m21_2, partial:m21_5 # 21| valnum = unique -# 21| v21_7(void) = ReturnVoid : -# 21| v21_8(void) = AliasedUse : ~m21_2 -# 21| v21_9(void) = ExitFunction : +# 21| v21_7(void) = ReturnVoid : +# 21| v21_8(void) = AliasedUse : ~m21_6 +# 21| v21_9(void) = ExitFunction : # 25| void test02(int, int) # 25| Block 0 @@ -276,20 +276,20 @@ test.cpp: # 35| int global03 # 35| Block 0 -# 35| v35_1(void) = EnterFunction : -# 35| m35_2(unknown) = AliasedDefinition : +# 35| v35_1(void) = EnterFunction : +# 35| m35_2(unknown) = AliasedDefinition : # 35| valnum = unique -# 35| r35_3(glval) = VariableAddress[global03] : +# 35| r35_3(glval) = VariableAddress : # 35| valnum = unique -# 35| r35_4(int) = Constant[3] : +# 35| r35_4(int) = Constant[3] : # 35| valnum = m35_5, r35_4 -# 35| m35_5(int) = Store[global03] : &:r35_3, r35_4 +# 35| m35_5(int) = Store[?] : &:r35_3, r35_4 # 35| valnum = m35_5, r35_4 -# 35| m35_6(unknown) = Chi : total:~m?, partial:m35_5 +# 35| m35_6(unknown) = Chi : total:m35_2, partial:m35_5 # 35| valnum = unique -# 35| v35_7(void) = ReturnVoid : -# 35| v35_8(void) = AliasedUse : ~m35_2 -# 35| v35_9(void) = ExitFunction : +# 35| v35_7(void) = ReturnVoid : +# 35| v35_8(void) = AliasedUse : ~m35_6 +# 35| v35_9(void) = ExitFunction : # 39| void test03(int, int, int*) # 39| Block 0 diff --git a/csharp/ql/src/experimental/ir/implementation/internal/TIRVariable.qll b/csharp/ql/src/experimental/ir/implementation/internal/TIRVariable.qll index 12a0c6e7898..fe72263249f 100644 --- a/csharp/ql/src/experimental/ir/implementation/internal/TIRVariable.qll +++ b/csharp/ql/src/experimental/ir/implementation/internal/TIRVariable.qll @@ -2,21 +2,21 @@ private import TIRVariableInternal private import Imports::TempVariableTag newtype TIRVariable = - TIRUserVariable(Language::Variable var, Language::LanguageType type, Language::Function func) { + TIRUserVariable(Language::Variable var, Language::LanguageType type, Language::Declaration func) { Construction::hasUserVariable(func, var, type) } or TIRTempVariable( - Language::Function func, Language::AST ast, TempVariableTag tag, Language::LanguageType type + Language::Declaration func, Language::AST ast, TempVariableTag tag, Language::LanguageType type ) { Construction::hasTempVariable(func, ast, tag, type) } or TIRDynamicInitializationFlag( - Language::Function func, Language::Variable var, Language::LanguageType type + Language::Declaration func, Language::Variable var, Language::LanguageType type ) { Construction::hasDynamicInitializationFlag(func, var, type) } or TIRStringLiteral( - Language::Function func, Language::AST ast, Language::LanguageType type, + Language::Declaration func, Language::AST ast, Language::LanguageType type, Language::StringLiteral literal ) { Construction::hasStringLiteral(func, ast, type, literal) diff --git a/csharp/ql/src/experimental/ir/implementation/raw/IRVariable.qll b/csharp/ql/src/experimental/ir/implementation/raw/IRVariable.qll index ca4708857a7..c92082d767d 100644 --- a/csharp/ql/src/experimental/ir/implementation/raw/IRVariable.qll +++ b/csharp/ql/src/experimental/ir/implementation/raw/IRVariable.qll @@ -18,7 +18,7 @@ private import Imports::IRType * by the AST-to-IR translation (`IRTempVariable`). */ class IRVariable extends TIRVariable { - Language::Function func; + Language::Declaration func; IRVariable() { this = TIRUserVariable(_, _, func) or @@ -79,7 +79,7 @@ class IRVariable extends TIRVariable { /** * Gets the function that references this variable. */ - final Language::Function getEnclosingFunction() { result = func } + final Language::Declaration getEnclosingFunction() { result = func } } /** @@ -246,7 +246,7 @@ class IREllipsisVariable extends IRTempVariable, IRParameter { final override string toString() { result = "#ellipsis" } - final override int getIndex() { result = func.getNumberOfParameters() } + final override int getIndex() { result = func.(Language::Function).getNumberOfParameters() } } /** diff --git a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRVariable.qll b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRVariable.qll index ca4708857a7..c92082d767d 100644 --- a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRVariable.qll +++ b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRVariable.qll @@ -18,7 +18,7 @@ private import Imports::IRType * by the AST-to-IR translation (`IRTempVariable`). */ class IRVariable extends TIRVariable { - Language::Function func; + Language::Declaration func; IRVariable() { this = TIRUserVariable(_, _, func) or @@ -79,7 +79,7 @@ class IRVariable extends TIRVariable { /** * Gets the function that references this variable. */ - final Language::Function getEnclosingFunction() { result = func } + final Language::Declaration getEnclosingFunction() { result = func } } /** @@ -246,7 +246,7 @@ class IREllipsisVariable extends IRTempVariable, IRParameter { final override string toString() { result = "#ellipsis" } - final override int getIndex() { result = func.getNumberOfParameters() } + final override int getIndex() { result = func.(Language::Function).getNumberOfParameters() } } /** From 89d4f847312523c53ce2fa527cecba842bed9324 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 28 Apr 2022 07:59:06 +0200 Subject: [PATCH 077/736] C++: Update tests for frontend update --- .../dataflow/dataflow-tests/dataflow-ir-consistency.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f4a3d208614..c61b0254f67 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 @@ -238,10 +238,10 @@ postWithInFlow | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | -| lambdas.cpp:23:3:23:3 | (reference dereference) [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | v [post update] | PostUpdateNode should not be the target of local flow. | +| lambdas.cpp:23:15:23:15 | (reference dereference) [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:7:28:7 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:10:31:2 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:10:31:2 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | From f0634140b638ec14a47d03bbf80454edcff0b715 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Fri, 29 Apr 2022 14:56:13 -0400 Subject: [PATCH 078/736] C++: fix inconsistencies from IR global vars --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 16 +++++------ .../ir/implementation/raw/IRConsistency.qll | 19 +++++++++++++ .../raw/internal/IRConstruction.qll | 7 +++-- .../raw/internal/TranslatedGlobalVar.qll | 28 +++++++++++++++++++ .../dataflow-ir-consistency.expected | 20 +------------ .../ir/ir/raw_consistency.expected | 8 ++++++ 6 files changed, 69 insertions(+), 29 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 4171f5a5227..2bfded52441 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 @@ -100,7 +100,7 @@ class Node extends TIRDataFlowNode { Declaration getEnclosingCallable() { none() } // overridden in subclasses /** Gets the function to which this node belongs, if any. */ - Function getFunction() { none() } // overridden in subclasses + Declaration getFunction() { none() } // overridden in subclasses /** Gets the type of this node. */ IRType getType() { none() } // overridden in subclasses @@ -196,7 +196,7 @@ class InstructionNode extends Node, TInstructionNode { override Declaration getEnclosingCallable() { result = this.getFunction() } - override Function getFunction() { result = instr.getEnclosingFunction() } + override Declaration getFunction() { result = instr.getEnclosingFunction() } override IRType getType() { result = instr.getResultIRType() } @@ -222,7 +222,7 @@ class OperandNode extends Node, TOperandNode { override Declaration getEnclosingCallable() { result = this.getFunction() } - override Function getFunction() { result = op.getUse().getEnclosingFunction() } + override Declaration getFunction() { result = op.getUse().getEnclosingFunction() } override IRType getType() { result = op.getIRType() } @@ -274,7 +274,7 @@ class StoreNodeInstr extends StoreNode, TStoreNodeInstr { /** Gets the underlying instruction. */ Instruction getInstruction() { result = instr } - override Function getFunction() { result = this.getInstruction().getEnclosingFunction() } + override Declaration getFunction() { result = this.getInstruction().getEnclosingFunction() } override IRType getType() { result = this.getInstruction().getResultIRType() } @@ -328,7 +328,7 @@ class StoreNodeOperand extends StoreNode, TStoreNodeOperand { /** Gets the underlying operand. */ Operand getOperand() { result = operand } - override Function getFunction() { result = operand.getDef().getEnclosingFunction() } + override Declaration getFunction() { result = operand.getDef().getEnclosingFunction() } override IRType getType() { result = operand.getIRType() } @@ -384,7 +384,7 @@ class ReadNode extends Node, TReadNode { override Declaration getEnclosingCallable() { result = this.getFunction() } - override Function getFunction() { result = this.getInstruction().getEnclosingFunction() } + override Declaration getFunction() { result = this.getInstruction().getEnclosingFunction() } override IRType getType() { result = this.getInstruction().getResultIRType() } @@ -436,7 +436,7 @@ class SsaPhiNode extends Node, TSsaPhiNode { override Declaration getEnclosingCallable() { result = this.getFunction() } - override Function getFunction() { result = phi.getBasicBlock().getEnclosingFunction() } + override Declaration getFunction() { result = phi.getBasicBlock().getEnclosingFunction() } override IRType getType() { result instanceof IRVoidType } @@ -673,7 +673,7 @@ class VariableNode extends Node, TVariableNode { /** Gets the variable corresponding to this node. */ Variable getVariable() { result = v } - override Function getFunction() { none() } + override Declaration getFunction() { none() } override Declaration getEnclosingCallable() { // When flow crosses from one _enclosing callable_ to another, the diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRConsistency.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRConsistency.qll index 31983d34247..45b44b14a3c 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRConsistency.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRConsistency.qll @@ -524,4 +524,23 @@ module InstructionConsistency { "' has a `this` argument operand that is not an address, in function '$@'." and irFunc = getInstructionIRFunction(instr, irFuncText) } + + query predicate nonUniqueIRVariable( + Instruction instr, string message, OptionalIRFunction irFunc, string irFuncText + ) { + exists(VariableInstruction vi, IRVariable v1, IRVariable v2 | + instr = vi and vi.getIRVariable() = v1 and vi.getIRVariable() = v2 and v1 != v2 + ) and + message = + "Variable instruction '" + instr.toString() + + "' has multiple associated variables, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + or + instr.getOpcode() instanceof Opcode::VariableAddress and + not instr instanceof VariableInstruction and + message = + "Variable address instruction '" + instr.toString() + + "' has no associated variable, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + } } 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 ddd9ab50635..c798f33c045 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 @@ -13,6 +13,7 @@ private import TranslatedElement private import TranslatedExpr private import TranslatedStmt private import TranslatedFunction +private import TranslatedGlobalVar TranslatedElement getInstructionTranslatedElement(Instruction instruction) { instruction = TRawInstruction(result, _) @@ -44,8 +45,10 @@ module Raw { } cached - predicate hasUserVariable(Function func, Variable var, CppType type) { - getTranslatedFunction(func).hasUserVariable(var, type) + predicate hasUserVariable(Declaration decl, Variable var, CppType type) { + getTranslatedFunction(decl).hasUserVariable(var, type) + or + getTranslatedVarInit(decl).hasUserVariable(var, type) } cached 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 bef32ede64a..351c6b4a1cc 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 @@ -6,6 +6,7 @@ private import semmle.code.cpp.ir.implementation.internal.OperandTag private import semmle.code.cpp.ir.internal.CppType private import TranslatedInitialization private import InstructionTag +private import semmle.code.cpp.ir.internal.IRUtilities class TranslatedGlobalOrNamespaceVarInit extends TranslatedRootElement, TTranslatedGlobalOrNamespaceVarInit, InitializationContext { @@ -98,6 +99,33 @@ class TranslatedGlobalOrNamespaceVarInit extends TranslatedRootElement, } override Type getTargetType() { result = var.getUnspecifiedType() } + + /** + * Holds if this variable defines or accesses variable `var` with type `type`. This includes all + * parameters and local variables, plus any global variables or static data members that are + * directly accessed by the function. + */ + final predicate hasUserVariable(Variable varUsed, CppType type) { + ( + ( + varUsed instanceof GlobalOrNamespaceVariable + or + varUsed instanceof MemberVariable and not varUsed instanceof Field + ) and + exists(VariableAccess access | + access.getTarget() = varUsed and + access.getEnclosingVariable() = var + ) + or + var = varUsed + or + varUsed.(LocalScopeVariable).getEnclosingElement*() = var + or + varUsed.(Parameter).getCatchBlock().getEnclosingElement*() = var + ) and + type = getTypeForPRValue(getVariableType(varUsed)) + } + } TranslatedGlobalOrNamespaceVarInit getTranslatedVarInit(GlobalOrNamespaceVariable var) { 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 c61b0254f67..1c802f3eeec 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 @@ -1,22 +1,4 @@ uniqueEnclosingCallable -| globals.cpp:9:5:9:19 | Address | Node should have one enclosing callable but has 0. | -| globals.cpp:9:5:9:19 | AliasedDefinition | Node should have one enclosing callable but has 0. | -| globals.cpp:9:5:9:19 | VariableAddress | Node should have one enclosing callable but has 0. | -| globals.cpp:9:5:9:19 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | -| globals.cpp:9:23:9:23 | 0 | Node should have one enclosing callable but has 0. | -| globals.cpp:9:23:9:23 | ChiPartial | Node should have one enclosing callable but has 0. | -| globals.cpp:9:23:9:23 | ChiTotal | Node should have one enclosing callable but has 0. | -| globals.cpp:9:23:9:23 | Store | Node should have one enclosing callable but has 0. | -| globals.cpp:9:23:9:23 | StoreValue | Node should have one enclosing callable but has 0. | -| globals.cpp:16:12:16:26 | Address | Node should have one enclosing callable but has 0. | -| globals.cpp:16:12:16:26 | AliasedDefinition | Node should have one enclosing callable but has 0. | -| globals.cpp:16:12:16:26 | VariableAddress | Node should have one enclosing callable but has 0. | -| globals.cpp:16:12:16:26 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | -| globals.cpp:16:30:16:30 | 0 | Node should have one enclosing callable but has 0. | -| globals.cpp:16:30:16:30 | ChiPartial | Node should have one enclosing callable but has 0. | -| globals.cpp:16:30:16:30 | ChiTotal | Node should have one enclosing callable but has 0. | -| globals.cpp:16:30:16:30 | Store | Node should have one enclosing callable but has 0. | -| globals.cpp:16:30:16:30 | StoreValue | Node should have one enclosing callable but has 0. | uniqueType uniqueNodeLocation | BarrierGuard.cpp:2:11:2:13 | (unnamed parameter 0) | Node should have one location but has 6. | @@ -238,10 +220,10 @@ postWithInFlow | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | +| lambdas.cpp:23:3:23:3 | (reference dereference) [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | v [post update] | PostUpdateNode should not be the target of local flow. | -| lambdas.cpp:23:15:23:15 | (reference dereference) [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:7:28:7 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:10:31:2 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:10:31:2 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | 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 9575759051e..d987e1520b3 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -27,6 +27,14 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer +nonUniqueIRVariable +| ir.cpp:1038:6:1038:8 | VariableAddress: lam | Variable address instruction 'VariableAddress: lam' has no associated variable, in function '$@'. | ir.cpp:1038:6:1038:8 | (lambda [] type at line 1038, col. 12) lam | (lambda [] type at line 1038, col. 12) lam | +| ir.cpp:1759:5:1759:12 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1759:5:1759:12 | int global_2 | int global_2 | +| ir.cpp:1761:11:1761:18 | VariableAddress: global_3 | Variable address instruction 'VariableAddress: global_3' has no associated variable, in function '$@'. | ir.cpp:1761:11:1761:18 | int const global_3 | int const global_3 | +| ir.cpp:1763:18:1763:25 | VariableAddress: global_4 | Variable address instruction 'VariableAddress: global_4' has no associated variable, in function '$@'. | ir.cpp:1763:18:1763:25 | constructor_only global_4 | constructor_only global_4 | +| ir.cpp:1765:18:1765:25 | VariableAddress: global_5 | Variable address instruction 'VariableAddress: global_5' has no associated variable, in function '$@'. | ir.cpp:1765:18:1765:25 | constructor_only global_5 | constructor_only global_5 | +| ir.cpp:1767:7:1767:19 | VariableAddress: global_string | Variable address instruction 'VariableAddress: global_string' has no associated variable, in function '$@'. | ir.cpp:1767:7:1767:19 | char* global_string | char* global_string | +| struct_init.cpp:9:13:9:25 | VariableAddress: infos_in_file | Variable address instruction 'VariableAddress: infos_in_file' has no associated variable, in function '$@'. | struct_init.cpp:9:13:9:25 | Info infos_in_file[] | Info infos_in_file[] | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType From 3547c338ef95346b5561fd64ee77b5bbf1ca10fd Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Mon, 20 Jun 2022 12:00:43 -0700 Subject: [PATCH 079/736] Update docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com> --- .../codeql-cli/analyzing-databases-with-the-codeql-cli.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst index e6ee13c7823..84b76615520 100644 --- a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst +++ b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst @@ -160,9 +160,6 @@ of the current process. If a ``scope/name`` and ``path`` are specified, then the ``path`` cannot be absolute. It is considered relative to the root of the CodeQL pack. - -For example:: - To analyze a database using all queries in the `experimental/Security` folder within the `codeql/cpp-queries` CodeQL pack you can use:: codeql database analyze --format=sarif-latest --output=results \ From c216176de136fa831c6111588d5d987fe78913a3 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Fri, 29 Apr 2022 15:29:07 -0400 Subject: [PATCH 080/736] C++: sync and accept new consistency test --- .../aliased_ssa/IRConsistency.qll | 19 ++++ .../unaliased_ssa/IRConsistency.qll | 19 ++++ .../ir/ir/aliased_ssa_consistency.expected | 1 + .../aliased_ssa_consistency_unsound.expected | 1 + .../ir/ir/raw_consistency.expected | 7 -- .../test/library-tests/ir/ir/raw_ir.expected | 94 +++++++++---------- .../ir/ir/unaliased_ssa_consistency.expected | 1 + ...unaliased_ssa_consistency_unsound.expected | 1 + .../ir/ssa/aliased_ssa_consistency.expected | 1 + .../aliased_ssa_consistency_unsound.expected | 1 + .../ir/ssa/unaliased_ssa_consistency.expected | 1 + ...unaliased_ssa_consistency_unsound.expected | 1 + .../aliased_ssa_consistency.expected | 7 +- .../dataflow-ir-consistency.expected | 41 -------- .../syntax-zoo/raw_consistency.expected | 3 + .../unaliased_ssa_consistency.expected | 3 + .../GlobalValueNumbering/ir_gvn.expected | 54 +++++------ .../ir/implementation/raw/IRConsistency.qll | 19 ++++ .../unaliased_ssa/IRConsistency.qll | 19 ++++ .../ir/ir/raw_ir_consistency.expected | 1 + .../ir/ir/unaliased_ssa_consistency.expected | 1 + 21 files changed, 169 insertions(+), 126 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRConsistency.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRConsistency.qll index 31983d34247..45b44b14a3c 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRConsistency.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRConsistency.qll @@ -524,4 +524,23 @@ module InstructionConsistency { "' has a `this` argument operand that is not an address, in function '$@'." and irFunc = getInstructionIRFunction(instr, irFuncText) } + + query predicate nonUniqueIRVariable( + Instruction instr, string message, OptionalIRFunction irFunc, string irFuncText + ) { + exists(VariableInstruction vi, IRVariable v1, IRVariable v2 | + instr = vi and vi.getIRVariable() = v1 and vi.getIRVariable() = v2 and v1 != v2 + ) and + message = + "Variable instruction '" + instr.toString() + + "' has multiple associated variables, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + or + instr.getOpcode() instanceof Opcode::VariableAddress and + not instr instanceof VariableInstruction and + message = + "Variable address instruction '" + instr.toString() + + "' has no associated variable, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + } } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRConsistency.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRConsistency.qll index 31983d34247..45b44b14a3c 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRConsistency.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRConsistency.qll @@ -524,4 +524,23 @@ module InstructionConsistency { "' has a `this` argument operand that is not an address, in function '$@'." and irFunc = getInstructionIRFunction(instr, irFuncText) } + + query predicate nonUniqueIRVariable( + Instruction instr, string message, OptionalIRFunction irFunc, string irFuncText + ) { + exists(VariableInstruction vi, IRVariable v1, IRVariable v2 | + instr = vi and vi.getIRVariable() = v1 and vi.getIRVariable() = v2 and v1 != v2 + ) and + message = + "Variable instruction '" + instr.toString() + + "' has multiple associated variables, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + or + instr.getOpcode() instanceof Opcode::VariableAddress and + not instr instanceof VariableInstruction and + message = + "Variable address instruction '" + instr.toString() + + "' has no associated variable, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + } } diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected index 31e5b01229c..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected @@ -23,6 +23,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected index 31e5b01229c..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected @@ -23,6 +23,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType 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 d987e1520b3..cc50472385b 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -28,13 +28,6 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -| ir.cpp:1038:6:1038:8 | VariableAddress: lam | Variable address instruction 'VariableAddress: lam' has no associated variable, in function '$@'. | ir.cpp:1038:6:1038:8 | (lambda [] type at line 1038, col. 12) lam | (lambda [] type at line 1038, col. 12) lam | -| ir.cpp:1759:5:1759:12 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1759:5:1759:12 | int global_2 | int global_2 | -| ir.cpp:1761:11:1761:18 | VariableAddress: global_3 | Variable address instruction 'VariableAddress: global_3' has no associated variable, in function '$@'. | ir.cpp:1761:11:1761:18 | int const global_3 | int const global_3 | -| ir.cpp:1763:18:1763:25 | VariableAddress: global_4 | Variable address instruction 'VariableAddress: global_4' has no associated variable, in function '$@'. | ir.cpp:1763:18:1763:25 | constructor_only global_4 | constructor_only global_4 | -| ir.cpp:1765:18:1765:25 | VariableAddress: global_5 | Variable address instruction 'VariableAddress: global_5' has no associated variable, in function '$@'. | ir.cpp:1765:18:1765:25 | constructor_only global_5 | constructor_only global_5 | -| ir.cpp:1767:7:1767:19 | VariableAddress: global_string | Variable address instruction 'VariableAddress: global_string' has no associated variable, in function '$@'. | ir.cpp:1767:7:1767:19 | char* global_string | char* global_string | -| struct_init.cpp:9:13:9:25 | VariableAddress: infos_in_file | Variable address instruction 'VariableAddress: infos_in_file' has no associated variable, in function '$@'. | struct_init.cpp:9:13:9:25 | Info infos_in_file[] | Info infos_in_file[] | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType 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 397f2bb288c..512bae7184d 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -5654,11 +5654,11 @@ ir.cpp: # 1038| Block 0 # 1038| v1038_1(void) = EnterFunction : # 1038| mu1038_2(unknown) = AliasedDefinition : -# 1038| r1038_3(glval) = VariableAddress : +# 1038| r1038_3(glval) = VariableAddress[lam] : # 1038| r1038_4(glval) = VariableAddress[#temp1038:12] : # 1038| mu1038_5(decltype([...](...){...})) = Uninitialized[#temp1038:12] : &:r1038_4 # 1038| r1038_6(decltype([...](...){...})) = Load[#temp1038:12] : &:r1038_4, ~m? -# 1038| mu1038_7(decltype([...](...){...})) = Store[?] : &:r1038_3, r1038_6 +# 1038| mu1038_7(decltype([...](...){...})) = Store[lam] : &:r1038_3, r1038_6 # 1038| v1038_8(void) = ReturnVoid : # 1038| v1038_9(void) = AliasedUse : ~m? # 1038| v1038_10(void) = ExitFunction : @@ -9735,31 +9735,31 @@ ir.cpp: # 1821| int global_2 # 1821| Block 0 -# 1821| v1821_1(void) = EnterFunction : -# 1821| mu1821_2(unknown) = AliasedDefinition : -# 1821| r1821_3(glval) = VariableAddress : -# 1821| r1821_4(int) = Constant[1] : -# 1821| mu1821_5(int) = Store[?] : &:r1821_3, r1821_4 -# 1821| v1821_6(void) = ReturnVoid : -# 1821| v1821_7(void) = AliasedUse : ~m? -# 1821| v1821_8(void) = ExitFunction : +# 1821| v1821_1(void) = EnterFunction : +# 1821| mu1821_2(unknown) = AliasedDefinition : +# 1821| r1821_3(glval) = VariableAddress[global_2] : +# 1821| r1821_4(int) = Constant[1] : +# 1821| mu1821_5(int) = Store[global_2] : &:r1821_3, r1821_4 +# 1821| v1821_6(void) = ReturnVoid : +# 1821| v1821_7(void) = AliasedUse : ~m? +# 1821| v1821_8(void) = ExitFunction : # 1823| int const global_3 # 1823| Block 0 -# 1823| v1823_1(void) = EnterFunction : -# 1823| mu1823_2(unknown) = AliasedDefinition : -# 1823| r1823_3(glval) = VariableAddress : -# 1823| r1823_4(int) = Constant[2] : -# 1823| mu1823_5(int) = Store[?] : &:r1823_3, r1823_4 -# 1823| v1823_6(void) = ReturnVoid : -# 1823| v1823_7(void) = AliasedUse : ~m? -# 1823| v1823_8(void) = ExitFunction : +# 1823| v1823_1(void) = EnterFunction : +# 1823| mu1823_2(unknown) = AliasedDefinition : +# 1823| r1823_3(glval) = VariableAddress[global_3] : +# 1823| r1823_4(int) = Constant[2] : +# 1823| mu1823_5(int) = Store[global_3] : &:r1823_3, r1823_4 +# 1823| v1823_6(void) = ReturnVoid : +# 1823| v1823_7(void) = AliasedUse : ~m? +# 1823| v1823_8(void) = ExitFunction : # 1825| constructor_only global_4 # 1825| Block 0 # 1825| v1825_1(void) = EnterFunction : # 1825| mu1825_2(unknown) = AliasedDefinition : -# 1825| r1825_3(glval) = VariableAddress : +# 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 @@ -9773,7 +9773,7 @@ ir.cpp: # 1827| Block 0 # 1827| v1827_1(void) = EnterFunction : # 1827| mu1827_2(unknown) = AliasedDefinition : -# 1827| r1827_3(glval) = VariableAddress : +# 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 @@ -9787,11 +9787,11 @@ ir.cpp: # 1829| Block 0 # 1829| v1829_1(void) = EnterFunction : # 1829| mu1829_2(unknown) = AliasedDefinition : -# 1829| r1829_3(glval) = VariableAddress : +# 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| mu1829_7(char *) = Store[?] : &:r1829_3, r1829_6 +# 1829| mu1829_7(char *) = Store[global_string] : &:r1829_3, r1829_6 # 1829| v1829_8(void) = ReturnVoid : # 1829| v1829_9(void) = AliasedUse : ~m? # 1829| v1829_10(void) = ExitFunction : @@ -10019,31 +10019,31 @@ smart_ptr.cpp: struct_init.cpp: # 9| Info infos_in_file[] # 9| Block 0 -# 9| v9_1(void) = EnterFunction : -# 9| mu9_2(unknown) = AliasedDefinition : -# 9| r9_3(glval) = VariableAddress : -# 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| mu10_4(char *) = Store[?] : &:r10_1, r10_3 -# 10| r10_5(glval<..(*)(..)>) = FieldAddress[handler] : r9_5 -# 10| r10_6(..(*)(..)) = FunctionAddress[handler1] : -# 10| mu10_7(..(*)(..)) = Store[?] : &:r10_5, r10_6 -# 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| mu11_4(char *) = Store[?] : &:r11_1, r11_3 -# 11| r11_5(glval<..(*)(..)>) = FieldAddress[handler] : r9_7 -# 11| r11_6(glval<..()(..)>) = FunctionAddress[handler2] : -# 11| r11_7(..(*)(..)) = CopyValue : r11_6 -# 11| mu11_8(..(*)(..)) = Store[?] : &:r11_5, r11_7 -# 9| v9_8(void) = ReturnVoid : -# 9| v9_9(void) = AliasedUse : ~m? -# 9| v9_10(void) = ExitFunction : +# 9| v9_1(void) = EnterFunction : +# 9| mu9_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| mu10_4(char *) = Store[?] : &:r10_1, r10_3 +# 10| r10_5(glval<..(*)(..)>) = FieldAddress[handler] : r9_5 +# 10| r10_6(..(*)(..)) = FunctionAddress[handler1] : +# 10| mu10_7(..(*)(..)) = Store[?] : &:r10_5, r10_6 +# 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| mu11_4(char *) = Store[?] : &:r11_1, r11_3 +# 11| r11_5(glval<..(*)(..)>) = FieldAddress[handler] : r9_7 +# 11| r11_6(glval<..()(..)>) = FunctionAddress[handler2] : +# 11| r11_7(..(*)(..)) = CopyValue : r11_6 +# 11| mu11_8(..(*)(..)) = Store[?] : &:r11_5, r11_7 +# 9| v9_8(void) = ReturnVoid : +# 9| v9_9(void) = AliasedUse : ~m? +# 9| v9_10(void) = ExitFunction : # 16| void let_info_escape(Info*) # 16| Block 0 diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected index 31e5b01229c..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected @@ -23,6 +23,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected index 31e5b01229c..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected @@ -23,6 +23,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_consistency.expected index 31e5b01229c..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_consistency.expected @@ -23,6 +23,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_consistency_unsound.expected index 31e5b01229c..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_consistency_unsound.expected @@ -23,6 +23,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_consistency.expected index 31e5b01229c..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_consistency.expected @@ -23,6 +23,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_consistency_unsound.expected index 31e5b01229c..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_consistency_unsound.expected @@ -23,6 +23,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/syntax-zoo/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/syntax-zoo/aliased_ssa_consistency.expected index db803126364..665d30605ee 100644 --- a/cpp/ql/test/library-tests/syntax-zoo/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/syntax-zoo/aliased_ssa_consistency.expected @@ -4,8 +4,6 @@ unexpectedOperand duplicateOperand missingPhiOperand missingOperandType -| cpp11.cpp:36:18:36:18 | ChiTotal | Operand 'ChiTotal' of instruction 'Chi' is missing a type in function '$@'. | cpp11.cpp:36:5:36:14 | int global_int | int global_int | -| misc.c:210:24:210:28 | ChiTotal | Operand 'ChiTotal' of instruction 'Chi' is missing a type in function '$@'. | misc.c:210:5:210:20 | int global_with_init | int global_with_init | duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor @@ -93,8 +91,6 @@ useNotDominatedByDefinition switchInstructionWithoutDefaultEdge notMarkedAsConflated wronglyMarkedAsConflated -| cpp11.cpp:36:18:36:18 | Chi: 5 | Instruction 'Chi: 5' should not be marked as having a conflated result in function '$@'. | cpp11.cpp:36:5:36:14 | int global_int | int global_int | -| misc.c:210:24:210:28 | Chi: ... + ... | Instruction 'Chi: ... + ...' should not be marked as having a conflated result in function '$@'. | misc.c:210:5:210:20 | int global_with_init | int global_with_init | invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer @@ -102,6 +98,9 @@ thisArgumentIsNonPointer | pmcallexpr.cpp:8:2:8:15 | Call: call to expression | Call instruction 'Call: call to expression' has a `this` argument operand that is not an address, in function '$@'. | array_delete.cpp:5:6:5:6 | void f() | void f() | | 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 +| misc.c:178:22:178:40 | VariableAddress: __PRETTY_FUNCTION__ | Variable address instruction 'VariableAddress: __PRETTY_FUNCTION__' has no associated variable, in function '$@'. | misc.c:177:6:177:14 | void magicvars() | void magicvars() | +| misc.c:179:27:179:34 | VariableAddress: __func__ | Variable address instruction 'VariableAddress: __func__' has no associated variable, in function '$@'. | misc.c:177:6:177:14 | void magicvars() | void magicvars() | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected index 53bdffc3be3..e92e527e1df 100644 --- a/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected @@ -1,45 +1,4 @@ uniqueEnclosingCallable -| cpp11.cpp:35:11:35:22 | Address | Node should have one enclosing callable but has 0. | -| cpp11.cpp:35:11:35:22 | AliasedDefinition | Node should have one enclosing callable but has 0. | -| cpp11.cpp:35:11:35:22 | VariableAddress | Node should have one enclosing callable but has 0. | -| cpp11.cpp:35:11:35:22 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | -| cpp11.cpp:35:26:35:26 | 5 | Node should have one enclosing callable but has 0. | -| cpp11.cpp:35:26:35:26 | ChiPartial | Node should have one enclosing callable but has 0. | -| cpp11.cpp:35:26:35:26 | ChiTotal | Node should have one enclosing callable but has 0. | -| cpp11.cpp:35:26:35:26 | Store | Node should have one enclosing callable but has 0. | -| cpp11.cpp:35:26:35:26 | StoreValue | Node should have one enclosing callable but has 0. | -| cpp11.cpp:36:5:36:14 | Address | Node should have one enclosing callable but has 0. | -| cpp11.cpp:36:5:36:14 | VariableAddress | Node should have one enclosing callable but has 0. | -| cpp11.cpp:36:5:36:14 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | -| cpp11.cpp:36:18:36:18 | 5 | Node should have one enclosing callable but has 0. | -| cpp11.cpp:36:18:36:18 | ChiPartial | Node should have one enclosing callable but has 0. | -| cpp11.cpp:36:18:36:18 | Store | Node should have one enclosing callable but has 0. | -| cpp11.cpp:36:18:36:18 | StoreValue | Node should have one enclosing callable but has 0. | -| misc.c:10:5:10:13 | Address | Node should have one enclosing callable but has 0. | -| misc.c:10:5:10:13 | AliasedDefinition | Node should have one enclosing callable but has 0. | -| misc.c:10:5:10:13 | VariableAddress | Node should have one enclosing callable but has 0. | -| misc.c:10:5:10:13 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | -| misc.c:10:17:10:17 | 1 | Node should have one enclosing callable but has 0. | -| misc.c:10:17:10:17 | ChiPartial | Node should have one enclosing callable but has 0. | -| misc.c:10:17:10:17 | ChiTotal | Node should have one enclosing callable but has 0. | -| misc.c:10:17:10:17 | Store | Node should have one enclosing callable but has 0. | -| misc.c:10:17:10:17 | StoreValue | Node should have one enclosing callable but has 0. | -| misc.c:11:5:11:13 | Address | Node should have one enclosing callable but has 0. | -| misc.c:11:5:11:13 | AliasedDefinition | Node should have one enclosing callable but has 0. | -| misc.c:11:5:11:13 | VariableAddress | Node should have one enclosing callable but has 0. | -| misc.c:11:5:11:13 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | -| misc.c:11:17:11:21 | ... + ... | Node should have one enclosing callable but has 0. | -| misc.c:11:17:11:21 | ChiPartial | Node should have one enclosing callable but has 0. | -| misc.c:11:17:11:21 | ChiTotal | Node should have one enclosing callable but has 0. | -| misc.c:11:17:11:21 | Store | Node should have one enclosing callable but has 0. | -| misc.c:11:17:11:21 | StoreValue | Node should have one enclosing callable but has 0. | -| misc.c:210:5:210:20 | Address | Node should have one enclosing callable but has 0. | -| misc.c:210:5:210:20 | VariableAddress | Node should have one enclosing callable but has 0. | -| misc.c:210:5:210:20 | VariableAddress [post update] | Node should have one enclosing callable but has 0. | -| misc.c:210:24:210:28 | ... + ... | Node should have one enclosing callable but has 0. | -| misc.c:210:24:210:28 | ChiPartial | Node should have one enclosing callable but has 0. | -| misc.c:210:24:210:28 | Store | Node should have one enclosing callable but has 0. | -| misc.c:210:24:210:28 | StoreValue | Node should have one enclosing callable but has 0. | uniqueType uniqueNodeLocation | aggregateinitializer.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. | 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 4a4bea025a8..69f6429c080 100644 --- a/cpp/ql/test/library-tests/syntax-zoo/raw_consistency.expected +++ b/cpp/ql/test/library-tests/syntax-zoo/raw_consistency.expected @@ -148,6 +148,9 @@ thisArgumentIsNonPointer | pmcallexpr.cpp:8:2:8:15 | Call: call to expression | Call instruction 'Call: call to expression' has a `this` argument operand that is not an address, in function '$@'. | array_delete.cpp:5:6:5:6 | void f() | void f() | | 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 +| misc.c:178:22:178:40 | VariableAddress: __PRETTY_FUNCTION__ | Variable address instruction 'VariableAddress: __PRETTY_FUNCTION__' has no associated variable, in function '$@'. | misc.c:177:6:177:14 | void magicvars() | void magicvars() | +| misc.c:179:27:179:34 | VariableAddress: __func__ | Variable address instruction 'VariableAddress: __func__' has no associated variable, in function '$@'. | misc.c:177:6:177:14 | void magicvars() | void magicvars() | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/syntax-zoo/unaliased_ssa_consistency.expected b/cpp/ql/test/library-tests/syntax-zoo/unaliased_ssa_consistency.expected index 56e9f2e881a..83e97d12a7d 100644 --- a/cpp/ql/test/library-tests/syntax-zoo/unaliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/syntax-zoo/unaliased_ssa_consistency.expected @@ -98,6 +98,9 @@ thisArgumentIsNonPointer | pmcallexpr.cpp:8:2:8:15 | Call: call to expression | Call instruction 'Call: call to expression' has a `this` argument operand that is not an address, in function '$@'. | array_delete.cpp:5:6:5:6 | void f() | void f() | | 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 +| misc.c:178:22:178:40 | VariableAddress: __PRETTY_FUNCTION__ | Variable address instruction 'VariableAddress: __PRETTY_FUNCTION__' has no associated variable, in function '$@'. | misc.c:177:6:177:14 | void magicvars() | void magicvars() | +| misc.c:179:27:179:34 | VariableAddress: __func__ | Variable address instruction 'VariableAddress: __func__' has no associated variable, in function '$@'. | misc.c:177:6:177:14 | void magicvars() | void magicvars() | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected index 28306e20866..5ef74834a60 100644 --- a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected +++ b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected @@ -71,20 +71,20 @@ test.cpp: # 10| int global01 # 10| Block 0 -# 10| v10_1(void) = EnterFunction : -# 10| m10_2(unknown) = AliasedDefinition : +# 10| v10_1(void) = EnterFunction : +# 10| m10_2(unknown) = AliasedDefinition : # 10| valnum = unique -# 10| r10_3(glval) = VariableAddress : +# 10| r10_3(glval) = VariableAddress[global01] : # 10| valnum = unique -# 10| r10_4(int) = Constant[1] : +# 10| r10_4(int) = Constant[1] : # 10| valnum = m10_5, r10_4 -# 10| m10_5(int) = Store[?] : &:r10_3, r10_4 +# 10| m10_5(int) = Store[global01] : &:r10_3, r10_4 # 10| valnum = m10_5, r10_4 -# 10| m10_6(unknown) = Chi : total:m10_2, partial:m10_5 +# 10| m10_6(unknown) = Chi : total:m10_2, partial:m10_5 # 10| valnum = unique -# 10| v10_7(void) = ReturnVoid : -# 10| v10_8(void) = AliasedUse : ~m10_6 -# 10| v10_9(void) = ExitFunction : +# 10| v10_7(void) = ReturnVoid : +# 10| v10_8(void) = AliasedUse : ~m10_6 +# 10| v10_9(void) = ExitFunction : # 12| void test01(int, int) # 12| Block 0 @@ -170,20 +170,20 @@ test.cpp: # 21| int global02 # 21| Block 0 -# 21| v21_1(void) = EnterFunction : -# 21| m21_2(unknown) = AliasedDefinition : +# 21| v21_1(void) = EnterFunction : +# 21| m21_2(unknown) = AliasedDefinition : # 21| valnum = unique -# 21| r21_3(glval) = VariableAddress : +# 21| r21_3(glval) = VariableAddress[global02] : # 21| valnum = unique -# 21| r21_4(int) = Constant[2] : +# 21| r21_4(int) = Constant[2] : # 21| valnum = m21_5, r21_4 -# 21| m21_5(int) = Store[?] : &:r21_3, r21_4 +# 21| m21_5(int) = Store[global02] : &:r21_3, r21_4 # 21| valnum = m21_5, r21_4 -# 21| m21_6(unknown) = Chi : total:m21_2, partial:m21_5 +# 21| m21_6(unknown) = Chi : total:m21_2, partial:m21_5 # 21| valnum = unique -# 21| v21_7(void) = ReturnVoid : -# 21| v21_8(void) = AliasedUse : ~m21_6 -# 21| v21_9(void) = ExitFunction : +# 21| v21_7(void) = ReturnVoid : +# 21| v21_8(void) = AliasedUse : ~m21_6 +# 21| v21_9(void) = ExitFunction : # 25| void test02(int, int) # 25| Block 0 @@ -276,20 +276,20 @@ test.cpp: # 35| int global03 # 35| Block 0 -# 35| v35_1(void) = EnterFunction : -# 35| m35_2(unknown) = AliasedDefinition : +# 35| v35_1(void) = EnterFunction : +# 35| m35_2(unknown) = AliasedDefinition : # 35| valnum = unique -# 35| r35_3(glval) = VariableAddress : +# 35| r35_3(glval) = VariableAddress[global03] : # 35| valnum = unique -# 35| r35_4(int) = Constant[3] : +# 35| r35_4(int) = Constant[3] : # 35| valnum = m35_5, r35_4 -# 35| m35_5(int) = Store[?] : &:r35_3, r35_4 +# 35| m35_5(int) = Store[global03] : &:r35_3, r35_4 # 35| valnum = m35_5, r35_4 -# 35| m35_6(unknown) = Chi : total:m35_2, partial:m35_5 +# 35| m35_6(unknown) = Chi : total:m35_2, partial:m35_5 # 35| valnum = unique -# 35| v35_7(void) = ReturnVoid : -# 35| v35_8(void) = AliasedUse : ~m35_6 -# 35| v35_9(void) = ExitFunction : +# 35| v35_7(void) = ReturnVoid : +# 35| v35_8(void) = AliasedUse : ~m35_6 +# 35| v35_9(void) = ExitFunction : # 39| void test03(int, int, int*) # 39| Block 0 diff --git a/csharp/ql/src/experimental/ir/implementation/raw/IRConsistency.qll b/csharp/ql/src/experimental/ir/implementation/raw/IRConsistency.qll index 31983d34247..45b44b14a3c 100644 --- a/csharp/ql/src/experimental/ir/implementation/raw/IRConsistency.qll +++ b/csharp/ql/src/experimental/ir/implementation/raw/IRConsistency.qll @@ -524,4 +524,23 @@ module InstructionConsistency { "' has a `this` argument operand that is not an address, in function '$@'." and irFunc = getInstructionIRFunction(instr, irFuncText) } + + query predicate nonUniqueIRVariable( + Instruction instr, string message, OptionalIRFunction irFunc, string irFuncText + ) { + exists(VariableInstruction vi, IRVariable v1, IRVariable v2 | + instr = vi and vi.getIRVariable() = v1 and vi.getIRVariable() = v2 and v1 != v2 + ) and + message = + "Variable instruction '" + instr.toString() + + "' has multiple associated variables, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + or + instr.getOpcode() instanceof Opcode::VariableAddress and + not instr instanceof VariableInstruction and + message = + "Variable address instruction '" + instr.toString() + + "' has no associated variable, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + } } diff --git a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRConsistency.qll b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRConsistency.qll index 31983d34247..45b44b14a3c 100644 --- a/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRConsistency.qll +++ b/csharp/ql/src/experimental/ir/implementation/unaliased_ssa/IRConsistency.qll @@ -524,4 +524,23 @@ module InstructionConsistency { "' has a `this` argument operand that is not an address, in function '$@'." and irFunc = getInstructionIRFunction(instr, irFuncText) } + + query predicate nonUniqueIRVariable( + Instruction instr, string message, OptionalIRFunction irFunc, string irFuncText + ) { + exists(VariableInstruction vi, IRVariable v1, IRVariable v2 | + instr = vi and vi.getIRVariable() = v1 and vi.getIRVariable() = v2 and v1 != v2 + ) and + message = + "Variable instruction '" + instr.toString() + + "' has multiple associated variables, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + or + instr.getOpcode() instanceof Opcode::VariableAddress and + not instr instanceof VariableInstruction and + message = + "Variable address instruction '" + instr.toString() + + "' has no associated variable, in function '$@'." and + irFunc = getInstructionIRFunction(instr, irFuncText) + } } diff --git a/csharp/ql/test/experimental/ir/ir/raw_ir_consistency.expected b/csharp/ql/test/experimental/ir/ir/raw_ir_consistency.expected index 7231134d5e2..05ab9037c87 100644 --- a/csharp/ql/test/experimental/ir/ir/raw_ir_consistency.expected +++ b/csharp/ql/test/experimental/ir/ir/raw_ir_consistency.expected @@ -28,6 +28,7 @@ fieldAddressOnNonPointer thisArgumentIsNonPointer | inoutref.cs:32:22:32:35 | Call: object creation of type MyStruct | Call instruction 'Call: object creation of type MyStruct' has a `this` argument operand that is not an address, in function '$@'. | inoutref.cs:29:17:29:20 | System.Void InOutRef.Main() | System.Void InOutRef.Main() | | pointers.cs:27:22:27:35 | Call: object creation of type MyStruct | Call instruction 'Call: object creation of type MyStruct' has a `this` argument operand that is not an address, in function '$@'. | pointers.cs:25:17:25:20 | System.Void Pointers.Main() | System.Void Pointers.Main() | +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/csharp/ql/test/experimental/ir/ir/unaliased_ssa_consistency.expected b/csharp/ql/test/experimental/ir/ir/unaliased_ssa_consistency.expected index 7231134d5e2..05ab9037c87 100644 --- a/csharp/ql/test/experimental/ir/ir/unaliased_ssa_consistency.expected +++ b/csharp/ql/test/experimental/ir/ir/unaliased_ssa_consistency.expected @@ -28,6 +28,7 @@ fieldAddressOnNonPointer thisArgumentIsNonPointer | inoutref.cs:32:22:32:35 | Call: object creation of type MyStruct | Call instruction 'Call: object creation of type MyStruct' has a `this` argument operand that is not an address, in function '$@'. | inoutref.cs:29:17:29:20 | System.Void InOutRef.Main() | System.Void InOutRef.Main() | | pointers.cs:27:22:27:35 | Call: object creation of type MyStruct | Call instruction 'Call: object creation of type MyStruct' has a `this` argument operand that is not an address, in function '$@'. | pointers.cs:25:17:25:20 | System.Void Pointers.Main() | System.Void Pointers.Main() | +nonUniqueIRVariable missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType From 048e5d8474c4219a6969ce1885ccbe5c4b68e109 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 23 Mar 2022 14:52:00 -0400 Subject: [PATCH 081/736] C++: IR data flow through global variables --- .../ir/dataflow/internal/DataFlowPrivate.qll | 20 ++- .../dataflow/dataflow-tests/test.cpp | 8 +- .../dataflow/taint-tests/taint.cpp | 6 +- .../UncontrolledFormatString.expected | 130 ++++++++++++++++++ 4 files changed, 156 insertions(+), 8 deletions(-) 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 9dcd7f176df..e035df824e2 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 @@ -244,7 +244,25 @@ OutNode getAnOutNode(DataFlowCall call, ReturnKind kind) { * calling context. For example, this would happen with flow through a * global or static variable. */ -predicate jumpStep(Node n1, Node n2) { none() } +predicate jumpStep(Node n1, Node n2) { + exists(GlobalOrNamespaceVariable v | + v = + n1.asInstruction() + .(StoreInstruction) + .getResultAddress() + .(VariableAddressInstruction) + .getAstVariable() and + v = n2.asVariable() + or + v = + n2.asInstruction() + .(LoadInstruction) + .getSourceAddress() + .(VariableAddressInstruction) + .getAstVariable() and + v = n1.asVariable() + ) +} /** * Holds if data can flow from `node1` to `node2` via an assignment to `f`. diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp index 5e5c5279f16..18eb893e540 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp @@ -334,19 +334,19 @@ namespace FlowThroughGlobals { } int f() { - sink(globalVar); // tainted or clean? Not sure. + sink(globalVar); // $ ir=333:17 ir=347:17 // tainted or clean? Not sure. taintGlobal(); - sink(globalVar); // $ MISSING: ast,ir + sink(globalVar); // $ ir=333:17 ir=347:17 MISSING: ast } int calledAfterTaint() { - sink(globalVar); // $ MISSING: ast,ir + sink(globalVar); // $ ir=333:17 ir=347:17 MISSING: ast } int taintAndCall() { globalVar = source(); calledAfterTaint(); - sink(globalVar); // $ ast,ir + sink(globalVar); // $ ast ir=333:17 ir=347:17 } } 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 ebbde802ff3..945c6ff3481 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.cpp +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.cpp @@ -52,9 +52,9 @@ void do_sink() sink(global4); // $ MISSING: ast,ir sink(global5); sink(global6); - sink(global7); // $ MISSING: ast,ir - sink(global8); // $ MISSING: ast,ir - sink(global9); // $ MISSING: ast,ir + sink(global7); // $ ir MISSING: ast + sink(global8); // $ ir MISSING: ast + sink(global9); // $ ir MISSING: ast sink(global10); } 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 7cefb7cfafc..885e188be64 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,4 +1,134 @@ 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 | +| globalVars.c:8:7:8:10 | copy | globalVars.c:33:15:33: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: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:12:2:12:15 | Store | +| globalVars.c:11:22:11:25 | argv | globalVars.c:12:2:12:15 | Store | +| globalVars.c:12:2:12:15 | Store | globalVars.c:8:7:8:10 | copy | +| globalVars.c:15:21:15:23 | val | globalVars.c:16:2:16:12 | Store | +| globalVars.c:16:2:16:12 | Store | globalVars.c:9:7:9:11 | copy2 | +| globalVars.c:19:25:19:27 | *str | globalVars.c:19:25:19:27 | ReturnIndirection | +| globalVars.c:24:11:24:14 | argv | globalVars.c:11:22:11:25 | argv | +| globalVars.c:24:11:24:14 | argv | globalVars.c:24:11:24:14 | argv | +| globalVars.c:24:11:24:14 | argv | globalVars.c:24:11:24:14 | argv | +| globalVars.c:24:11:24:14 | argv | globalVars.c:24:11:24:14 | argv indirection | +| globalVars.c:24:11:24:14 | argv | globalVars.c:24:11:24:14 | argv indirection | +| globalVars.c:24:11:24:14 | argv indirection | globalVars.c:11:22:11:25 | *argv | +| globalVars.c:27:9:27:12 | copy | globalVars.c:27:9:27:12 | (const char *)... | +| globalVars.c:27:9:27:12 | copy | globalVars.c:27:9:27:12 | copy | +| globalVars.c:27:9:27:12 | copy | globalVars.c:27:9:27:12 | copy indirection | +| globalVars.c:30:15:30:18 | copy | globalVars.c:30:15:30:18 | copy | +| globalVars.c:30:15:30:18 | copy | globalVars.c:30:15:30:18 | copy | +| globalVars.c:30:15:30:18 | copy | globalVars.c:30:15:30:18 | copy | +| globalVars.c:30:15:30:18 | copy | globalVars.c:30:15:30:18 | copy indirection | +| globalVars.c:30:15:30:18 | copy | globalVars.c:30:15:30:18 | copy indirection | +| globalVars.c:30:15:30:18 | copy | globalVars.c:35:11:35:14 | copy | +| globalVars.c:30:15:30:18 | copy indirection | globalVars.c:19:25:19:27 | *str | +| globalVars.c:30:15:30:18 | copy indirection | globalVars.c:30:15:30:18 | printWrapper output argument | +| globalVars.c:30:15:30:18 | printWrapper output argument | globalVars.c:35:11:35:14 | copy | +| globalVars.c:33:15:33:18 | copy | globalVars.c:35:11:35:14 | copy | +| globalVars.c:35:11:35:14 | copy | globalVars.c:15:21:15:23 | val | +| globalVars.c:35:11:35:14 | copy | globalVars.c:35:11:35:14 | copy | +| globalVars.c:38:9:38:13 | copy2 | globalVars.c:38:9:38:13 | (const char *)... | +| globalVars.c:38:9:38:13 | copy2 | globalVars.c:38:9:38:13 | copy2 | +| globalVars.c:38:9:38:13 | copy2 | globalVars.c:38:9:38:13 | copy2 indirection | +| globalVars.c:41:15:41:19 | copy2 | globalVars.c:41:15:41:19 | copy2 | +| globalVars.c:41:15:41:19 | copy2 | globalVars.c:41:15:41:19 | copy2 | +| globalVars.c:41:15:41:19 | copy2 | globalVars.c:41:15:41:19 | copy2 | +| globalVars.c:41:15:41:19 | copy2 | globalVars.c:41:15:41:19 | copy2 indirection | +| globalVars.c:41:15:41:19 | copy2 | globalVars.c:41:15:41:19 | copy2 indirection | +| globalVars.c:41:15:41:19 | copy2 | globalVars.c:50:9:50:13 | (const char *)... | +| 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:41:15:41:19 | copy2 | globalVars.c:50:9:50:13 | copy2 indirection | +| globalVars.c:41:15:41:19 | copy2 indirection | globalVars.c:19:25:19:27 | *str | +| globalVars.c:41:15:41:19 | copy2 indirection | globalVars.c:41:15:41:19 | printWrapper output argument | +| globalVars.c:41:15:41:19 | printWrapper output argument | globalVars.c:50:9:50:13 | (const char *)... | +| globalVars.c:41:15:41:19 | printWrapper output argument | globalVars.c:50:9:50:13 | copy2 | +| globalVars.c:41:15:41:19 | printWrapper output argument | globalVars.c:50:9:50:13 | copy2 | +| globalVars.c:41:15:41:19 | printWrapper output argument | globalVars.c:50:9:50:13 | copy2 | +| globalVars.c:41:15:41:19 | printWrapper output argument | globalVars.c:50:9:50:13 | copy2 indirection | +| globalVars.c:44:15:44:19 | copy2 | globalVars.c:50:9:50:13 | (const char *)... | +| 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 | +| globalVars.c:44:15:44:19 | copy2 | globalVars.c:50:9:50:13 | copy2 indirection | +| globalVars.c:50:9:50:13 | copy2 | globalVars.c:50:9:50:13 | (const char *)... | +| globalVars.c:50:9:50:13 | copy2 | globalVars.c:50:9:50:13 | copy2 | +| globalVars.c:50:9:50:13 | copy2 | globalVars.c:50:9:50:13 | copy2 indirection | subpaths +| globalVars.c:30:15:30:18 | copy indirection | globalVars.c:19:25:19:27 | *str | globalVars.c:19:25:19:27 | ReturnIndirection | globalVars.c:30:15:30:18 | printWrapper output argument | +| globalVars.c:41:15:41:19 | copy2 indirection | globalVars.c:19:25:19:27 | *str | globalVars.c:19:25:19:27 | ReturnIndirection | globalVars.c:41:15:41:19 | printWrapper output argument | nodes +| globalVars.c:8:7:8:10 | copy | semmle.label | copy | +| globalVars.c:9:7:9:11 | copy2 | semmle.label | copy2 | +| globalVars.c:11:22:11:25 | *argv | semmle.label | *argv | +| globalVars.c:11:22:11:25 | argv | semmle.label | argv | +| globalVars.c:12:2:12:15 | Store | semmle.label | Store | +| globalVars.c:15:21:15:23 | val | semmle.label | val | +| globalVars.c:16:2:16:12 | Store | semmle.label | Store | +| globalVars.c:19:25:19:27 | *str | semmle.label | *str | +| globalVars.c:19:25:19:27 | ReturnIndirection | semmle.label | ReturnIndirection | +| globalVars.c:24:11:24:14 | argv | semmle.label | argv | +| globalVars.c:24:11:24:14 | argv | semmle.label | argv | +| globalVars.c:24:11:24:14 | argv | semmle.label | argv | +| globalVars.c:24:11:24:14 | argv indirection | semmle.label | argv indirection | +| globalVars.c:27:9:27:12 | (const char *)... | semmle.label | (const char *)... | +| globalVars.c:27:9:27:12 | (const char *)... | semmle.label | (const char *)... | +| 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:27:9:27:12 | copy indirection | semmle.label | copy indirection | +| globalVars.c:27:9:27:12 | copy indirection | semmle.label | copy indirection | +| 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 | +| globalVars.c:30:15:30:18 | copy indirection | semmle.label | copy indirection | +| globalVars.c:30:15:30:18 | copy indirection | semmle.label | copy indirection | +| globalVars.c:30:15:30:18 | printWrapper output argument | semmle.label | printWrapper output argument | +| globalVars.c:33:15:33:18 | copy | semmle.label | copy | +| globalVars.c:35:11:35:14 | copy | semmle.label | copy | +| globalVars.c:35:11:35:14 | copy | semmle.label | copy | +| globalVars.c:38:9:38:13 | (const char *)... | semmle.label | (const char *)... | +| globalVars.c:38:9:38:13 | (const char *)... | semmle.label | (const char *)... | +| 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:38:9:38:13 | copy2 indirection | semmle.label | copy2 indirection | +| globalVars.c:38:9:38:13 | copy2 indirection | semmle.label | copy2 indirection | +| 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:41:15:41:19 | copy2 indirection | semmle.label | copy2 indirection | +| globalVars.c:41:15:41:19 | copy2 indirection | semmle.label | copy2 indirection | +| globalVars.c:41:15:41:19 | printWrapper output argument | semmle.label | printWrapper output argument | +| globalVars.c:44:15:44:19 | copy2 | semmle.label | copy2 | +| globalVars.c:50:9:50:13 | (const char *)... | semmle.label | (const char *)... | +| globalVars.c:50:9:50:13 | (const char *)... | semmle.label | (const char *)... | +| 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 | +| globalVars.c:50:9:50:13 | copy2 indirection | semmle.label | copy2 indirection | +| globalVars.c:50:9:50:13 | copy2 indirection | semmle.label | copy2 indirection | #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 | +| globalVars.c:38:9:38:13 | copy2 | globalVars.c:24:11:24:14 | argv | globalVars.c:38:9:38:13 | copy2 | 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:41:15:41:19 | copy2 | globalVars.c:24:11:24:14 | argv | globalVars.c:41:15:41:19 | copy2 | 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 | +| globalVars.c:50:9:50:13 | copy2 | globalVars.c:24:11:24:14 | argv | globalVars.c:50:9:50:13 | copy2 | 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 | From a3f1d6191313eb11230c934b0b55fdd604105881 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Mon, 2 May 2022 12:07:01 -0400 Subject: [PATCH 082/736] C++: test for global var access in a global var --- .../ir/ir/aliased_ssa_consistency.expected | 1 + .../ir/ir/aliased_ssa_consistency_unsound.expected | 1 + cpp/ql/test/library-tests/ir/ir/ir.cpp | 2 ++ .../library-tests/ir/ir/operand_locations.expected | 7 +++++++ .../library-tests/ir/ir/raw_consistency.expected | 1 + cpp/ql/test/library-tests/ir/ir/raw_ir.expected | 12 ++++++++++++ .../ir/ir/unaliased_ssa_consistency.expected | 1 + .../ir/ir/unaliased_ssa_consistency_unsound.expected | 1 + 8 files changed, 26 insertions(+) diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected index 79887fffc1f..65d385881e6 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected @@ -24,6 +24,7 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable +| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected index 79887fffc1f..65d385881e6 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected @@ -24,6 +24,7 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable +| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index a07036da2ba..4c49d95d453 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -1828,4 +1828,6 @@ constructor_only global_5 = constructor_only(2); char *global_string = "global string"; +int global_6 = global_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 58f3b25feb2..7e3252978ab 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -8502,6 +8502,13 @@ | ir.cpp:1829:23:1829:37 | StoreValue | r1829_6 | | ir.cpp:1829:23:1829:37 | Unary | r1829_4 | | ir.cpp:1829:23:1829:37 | Unary | r1829_5 | +| ir.cpp:1831:5:1831:12 | Address | &:r1831_3 | +| ir.cpp:1831:5:1831:12 | SideEffect | ~m1831_7 | +| ir.cpp:1831:16:1831:23 | Address | &:r1831_4 | +| ir.cpp:1831:16:1831:23 | ChiPartial | partial:m1831_6 | +| ir.cpp:1831:16:1831:23 | ChiTotal | total:m1831_2 | +| ir.cpp:1831:16:1831:23 | Load | ~m1831_2 | +| ir.cpp:1831:16:1831:23 | StoreValue | r1831_5 | | 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_consistency.expected b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected index cc50472385b..9d45b494ab5 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -28,6 +28,7 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable +| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType 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 512bae7184d..87a8f921afa 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -9796,6 +9796,18 @@ ir.cpp: # 1829| v1829_9(void) = AliasedUse : ~m? # 1829| v1829_10(void) = ExitFunction : +# 1831| int global_6 +# 1831| Block 0 +# 1831| v1831_1(void) = EnterFunction : +# 1831| mu1831_2(unknown) = AliasedDefinition : +# 1831| r1831_3(glval) = VariableAddress[global_6] : +# 1831| r1831_4(glval) = VariableAddress : +# 1831| r1831_5(int) = Load[?] : &:r1831_4, ~m? +# 1831| mu1831_6(int) = Store[global_6] : &:r1831_3, r1831_5 +# 1831| v1831_7(void) = ReturnVoid : +# 1831| v1831_8(void) = AliasedUse : ~m? +# 1831| v1831_9(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected index 79887fffc1f..65d385881e6 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected @@ -24,6 +24,7 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable +| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected index 79887fffc1f..65d385881e6 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected @@ -24,6 +24,7 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable +| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType From 54488eb49b69a6e29778a8496eb8ea5cca647473 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Mon, 2 May 2022 12:27:10 -0400 Subject: [PATCH 083/736] C++: fix global vars accesses in global vars --- .../cpp/ir/implementation/raw/internal/TranslatedElement.qll | 4 ++-- .../cpp/ir/implementation/raw/internal/TranslatedExpr.qll | 2 +- .../test/library-tests/ir/ir/aliased_ssa_consistency.expected | 1 - .../ir/ir/aliased_ssa_consistency_unsound.expected | 1 - cpp/ql/test/library-tests/ir/ir/raw_consistency.expected | 1 - cpp/ql/test/library-tests/ir/ir/raw_ir.expected | 4 ++-- .../library-tests/ir/ir/unaliased_ssa_consistency.expected | 1 - .../ir/ir/unaliased_ssa_consistency_unsound.expected | 1 - 8 files changed, 5 insertions(+), 10 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 8c53fe086a8..82663e7b125 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 @@ -25,9 +25,9 @@ private Element getRealParent(Expr expr) { result.(Destructor).getADestruction() = expr } -IRUserVariable getIRUserVariable(Function func, Variable var) { +IRUserVariable getIRUserVariable(Declaration decl, Variable var) { result.getVariable() = var and - result.getEnclosingFunction() = func + result.getEnclosingFunction() = decl } IRTempVariable getIRTempVariable(Locatable ast, TempVariableTag tag) { 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 5148122be05..f91486833ff 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 @@ -841,7 +841,7 @@ class TranslatedNonFieldVariableAccess extends TranslatedVariableAccess { override IRVariable getInstructionVariable(InstructionTag tag) { tag = OnlyInstructionTag() and - result = getIRUserVariable(expr.getEnclosingFunction(), expr.getTarget()) + result = getIRUserVariable(expr.getEnclosingDeclaration(), expr.getTarget()) } } diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected index 65d385881e6..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected @@ -24,7 +24,6 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected index 65d385881e6..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected @@ -24,7 +24,6 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType 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 9d45b494ab5..cc50472385b 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -28,7 +28,6 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType 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 87a8f921afa..defcc9fbc06 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -9801,8 +9801,8 @@ ir.cpp: # 1831| v1831_1(void) = EnterFunction : # 1831| mu1831_2(unknown) = AliasedDefinition : # 1831| r1831_3(glval) = VariableAddress[global_6] : -# 1831| r1831_4(glval) = VariableAddress : -# 1831| r1831_5(int) = Load[?] : &:r1831_4, ~m? +# 1831| r1831_4(glval) = VariableAddress[global_2] : +# 1831| r1831_5(int) = Load[global_2] : &:r1831_4, ~m? # 1831| mu1831_6(int) = Store[global_6] : &:r1831_3, r1831_5 # 1831| v1831_7(void) = ReturnVoid : # 1831| v1831_8(void) = AliasedUse : ~m? diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected index 65d385881e6..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected @@ -24,7 +24,6 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected index 65d385881e6..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected @@ -24,7 +24,6 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -| ir.cpp:1831:16:1831:23 | VariableAddress: global_2 | Variable address instruction 'VariableAddress: global_2' has no associated variable, in function '$@'. | ir.cpp:1831:5:1831:12 | int global_6 | int global_6 | missingCanonicalLanguageType multipleCanonicalLanguageTypes missingIRType From 7818dafeccfc2e9262a66e58a6a2cabc0684acd5 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Mon, 2 May 2022 12:38:04 -0400 Subject: [PATCH 084/736] C++: cleanup some implicit `this` usage --- .../raw/internal/TranslatedGlobalVar.qll | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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 351c6b4a1cc..93f5d4fc56d 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 @@ -59,25 +59,25 @@ class TranslatedGlobalOrNamespaceVarInit extends TranslatedRootElement, kind instanceof GotoEdge and ( tag = EnterFunctionTag() and - result = getInstruction(AliasedDefinitionTag()) + result = this.getInstruction(AliasedDefinitionTag()) or tag = AliasedDefinitionTag() and - result = getInstruction(InitializerVariableAddressTag()) + result = this.getInstruction(InitializerVariableAddressTag()) or tag = InitializerVariableAddressTag() and result = getChild(1).getFirstInstruction() or tag = ReturnTag() and - result = getInstruction(AliasedUseTag()) + result = this.getInstruction(AliasedUseTag()) or tag = AliasedUseTag() and - result = getInstruction(ExitFunctionTag()) + result = this.getInstruction(ExitFunctionTag()) ) } override Instruction getChildSuccessor(TranslatedElement child) { - child = getChild(1) and - result = getInstruction(ReturnTag()) + child = this.getChild(1) and + result = this.getInstruction(ReturnTag()) } final override CppType getInstructionMemoryOperandType( @@ -95,7 +95,7 @@ class TranslatedGlobalOrNamespaceVarInit extends TranslatedRootElement, } override Instruction getTargetAddress() { - result = getInstruction(InitializerVariableAddressTag()) + result = this.getInstruction(InitializerVariableAddressTag()) } override Type getTargetType() { result = var.getUnspecifiedType() } From 33910a85b920a697f048caa21688d3eacecd3b35 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Tue, 3 May 2022 16:50:53 -0400 Subject: [PATCH 085/736] C++: restrict global variable IR generation --- .../ir/implementation/raw/internal/IRConstruction.qll | 9 ++++++++- .../implementation/raw/internal/TranslatedElement.qll | 4 ++-- .../library-tests/ir/ir/operand_locations.expected | 5 ----- cpp/ql/test/library-tests/ir/ir/raw_ir.expected | 11 ----------- .../test/library-tests/ir/ssa/aliased_ssa_ir.expected | 2 -- .../ir/ssa/aliased_ssa_ir_unsound.expected | 2 -- .../library-tests/ir/ssa/unaliased_ssa_ir.expected | 2 -- .../ir/ssa/unaliased_ssa_ir_unsound.expected | 2 -- .../GlobalValueNumbering/ir_gvn.expected | 4 ---- 9 files changed, 10 insertions(+), 31 deletions(-) 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 c798f33c045..44e9ecbfe5e 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 @@ -37,7 +37,14 @@ module Raw { predicate functionHasIR(Function func) { exists(getTranslatedFunction(func)) } cached - predicate varHasIRFunc(GlobalOrNamespaceVariable var) { any() } // TODO: restrict? + predicate varHasIRFunc(GlobalOrNamespaceVariable var) { + var.hasInitializer() and + ( + not var.getType().isDeeplyConst() + or + var.getInitializer().getExpr() instanceof StringLiteral + ) + } cached predicate hasInstruction(TranslatedElement element, InstructionTag tag) { 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 82663e7b125..103b5424197 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 @@ -119,7 +119,7 @@ private predicate ignoreExprOnly(Expr expr) { exists(NewOrNewArrayExpr new | expr = new.getAllocatorCall().getArgument(0)) or not translateFunction(expr.getEnclosingFunction()) and - not expr.getEnclosingVariable() instanceof GlobalOrNamespaceVariable + not Raw::varHasIRFunc(expr.getEnclosingVariable()) or // We do not yet translate destructors properly, so for now we ignore the // destructor call. We do, however, translate the expression being @@ -665,7 +665,7 @@ newtype TTranslatedElement = } or // The side effect that initializes newly-allocated memory. TTranslatedAllocationSideEffect(AllocationExpr expr) { not ignoreSideEffects(expr) } or - TTranslatedGlobalOrNamespaceVarInit(GlobalOrNamespaceVariable var) { var.hasInitializer() } + TTranslatedGlobalOrNamespaceVarInit(GlobalOrNamespaceVariable var) { Raw::varHasIRFunc(var) } /** * Gets the index of the first explicitly initialized element in `initList` 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 7e3252978ab..29d5e6cdfcb 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -8470,11 +8470,6 @@ | ir.cpp:1821:16:1821:16 | ChiPartial | partial:m1821_5 | | ir.cpp:1821:16:1821:16 | ChiTotal | total:m1821_2 | | ir.cpp:1821:16:1821:16 | StoreValue | r1821_4 | -| ir.cpp:1823:11:1823:18 | Address | &:r1823_3 | -| ir.cpp:1823:11:1823:18 | SideEffect | ~m1823_6 | -| ir.cpp:1823:22:1823:22 | ChiPartial | partial:m1823_5 | -| ir.cpp:1823:22:1823:22 | ChiTotal | total:m1823_2 | -| ir.cpp:1823:22:1823:22 | StoreValue | r1823_4 | | ir.cpp:1825:18:1825:25 | Address | &:r1825_3 | | ir.cpp:1825:18:1825:25 | Arg(this) | this:r1825_3 | | ir.cpp:1825:18:1825:25 | SideEffect | ~m1825_10 | 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 defcc9fbc06..8f67435f3c1 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -9744,17 +9744,6 @@ ir.cpp: # 1821| v1821_7(void) = AliasedUse : ~m? # 1821| v1821_8(void) = ExitFunction : -# 1823| int const global_3 -# 1823| Block 0 -# 1823| v1823_1(void) = EnterFunction : -# 1823| mu1823_2(unknown) = AliasedDefinition : -# 1823| r1823_3(glval) = VariableAddress[global_3] : -# 1823| r1823_4(int) = Constant[2] : -# 1823| mu1823_5(int) = Store[global_3] : &:r1823_3, r1823_4 -# 1823| v1823_6(void) = ReturnVoid : -# 1823| v1823_7(void) = AliasedUse : ~m? -# 1823| v1823_8(void) = ExitFunction : - # 1825| constructor_only global_4 # 1825| Block 0 # 1825| v1825_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected index 1893ab5c0d5..147c10b7c7f 100644 --- a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected +++ b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected @@ -1234,8 +1234,6 @@ ssa.cpp: # 268| v268_14(void) = AliasedUse : ~m269_7 # 268| v268_15(void) = ExitFunction : -# 274| Point* pp - # 275| void EscapedButNotConflated(bool, Point, int) # 275| Block 0 # 275| v275_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected index faedd418ed2..396b7532d68 100644 --- a/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.expected @@ -1229,8 +1229,6 @@ ssa.cpp: # 268| v268_14(void) = AliasedUse : ~m269_7 # 268| v268_15(void) = ExitFunction : -# 274| Point* pp - # 275| void EscapedButNotConflated(bool, Point, int) # 275| Block 0 # 275| v275_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected index 6d1e8f4d03d..3fc07bf6950 100644 --- a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected +++ b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected @@ -1140,8 +1140,6 @@ ssa.cpp: # 268| v268_13(void) = AliasedUse : ~m? # 268| v268_14(void) = ExitFunction : -# 274| Point* pp - # 275| void EscapedButNotConflated(bool, Point, int) # 275| Block 0 # 275| v275_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir_unsound.expected b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir_unsound.expected index 6d1e8f4d03d..3fc07bf6950 100644 --- a/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir_unsound.expected @@ -1140,8 +1140,6 @@ ssa.cpp: # 268| v268_13(void) = AliasedUse : ~m? # 268| v268_14(void) = ExitFunction : -# 274| Point* pp - # 275| void EscapedButNotConflated(bool, Point, int) # 275| Block 0 # 275| v275_1(void) = EnterFunction : diff --git a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected index 5ef74834a60..88e365023a1 100644 --- a/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected +++ b/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected @@ -941,10 +941,6 @@ test.cpp: # 124| v124_13(void) = AliasedUse : m124_3 # 124| v124_14(void) = ExitFunction : -# 132| A* global_a - -# 133| int global_n - # 135| void test_read_global_same() # 135| Block 0 # 135| v135_1(void) = EnterFunction : From 5a3e546bfef78101c27a667a311c1c36da60c689 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Tue, 14 Jun 2022 11:43:05 -0400 Subject: [PATCH 086/736] C++: update test expectations --- .../dataflow/dataflow-tests/dataflow-ir-consistency.expected | 2 +- .../library-tests/syntax-zoo/dataflow-ir-consistency.expected | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) 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 1c802f3eeec..b408f888383 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 @@ -220,10 +220,10 @@ postWithInFlow | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:20:11:20:11 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | -| lambdas.cpp:23:3:23:3 | (reference dereference) [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:23:3:23:14 | v [post update] | PostUpdateNode should not be the target of local flow. | +| lambdas.cpp:23:15:23:15 | (reference dereference) [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:7:28:7 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:10:31:2 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | | lambdas.cpp:28:10:31:2 | FieldAddress [post update] | PostUpdateNode should not be the target of local flow. | diff --git a/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected index e92e527e1df..044257ed952 100644 --- a/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected @@ -1622,7 +1622,6 @@ postWithInFlow | cpp11.cpp:28:21:28:34 | temporary object [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:29:7:29:16 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:31:5:31:13 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | -| cpp11.cpp:35:11:35:22 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:36:5:36:14 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:56:14:56:15 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | | cpp11.cpp:56:14:56:15 | VariableAddress [post update] | PostUpdateNode should not be the target of local flow. | From 8b47b838cae89ca20db7d678dec8e12761f6796d Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Tue, 14 Jun 2022 15:59:47 -0400 Subject: [PATCH 087/736] C++: autoformat --- .../cpp/ir/implementation/raw/internal/TranslatedGlobalVar.qll | 1 - 1 file changed, 1 deletion(-) 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 93f5d4fc56d..31174d8ba5f 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 @@ -125,7 +125,6 @@ class TranslatedGlobalOrNamespaceVarInit extends TranslatedRootElement, ) and type = getTypeForPRValue(getVariableType(varUsed)) } - } TranslatedGlobalOrNamespaceVarInit getTranslatedVarInit(GlobalOrNamespaceVariable var) { From d28c39cd734861e9e3135d350192262cd153a5e3 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 15 Jun 2022 15:00:37 -0400 Subject: [PATCH 088/736] C++: update test expectations --- cpp/ql/test/library-tests/dataflow/taint-tests/taint.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 945c6ff3481..2ae093098d2 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.cpp +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.cpp @@ -47,9 +47,9 @@ void do_source() void do_sink() { sink(global1); - sink(global2); // $ MISSING: ast,ir - sink(global3); // $ MISSING: ast,ir - sink(global4); // $ MISSING: ast,ir + sink(global2); // $ ir MISSING: ast + sink(global3); // $ ir MISSING: ast + sink(global4); // $ ir MISSING: ast sink(global5); sink(global6); sink(global7); // $ ir MISSING: ast From 73b657ce2595a0d52763b832febf06b173e225e5 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Tue, 21 Jun 2022 12:23:20 +0200 Subject: [PATCH 089/736] QL: focus alert locations --- ql/ql/src/codeql_ql/ast/Ast.qll | 22 ++++- .../performance/VarUnusedInDisjunct.ql | 20 ++--- ql/ql/src/queries/style/LibraryAnnotation.ql | 7 +- .../queries/style/UseInstanceofExtension.ql | 2 +- ql/ql/test/callgraph/callgraph.expected | 80 +++++++++---------- ql/ql/test/printAst/printAst.expected | 68 ++++++++-------- .../AcronymsShouldBeCamelCase.expected | 6 +- .../queries/style/DeadCode/DeadCode.expected | 4 +- .../MissingOverride/MissingOverride.expected | 2 +- .../style/Misspelling/Misspelling.expected | 6 +- ql/ql/test/type/type.expected | 36 ++++----- 11 files changed, 136 insertions(+), 117 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index fa551b0de83..d12239de072 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -21,11 +21,13 @@ private string stringIndexedMember(string name, string index) { class AstNode extends TAstNode { string toString() { result = this.getAPrimaryQlClass() } - /** - * Gets the location of the AST node. - */ + /** Gets the location of the AST node. */ cached - Location getLocation() { + Location getLocation() { result = this.getFullLocation() } // overriden in some subclasses + + /** Gets the location that spans the entire AST node. */ + cached + final Location getFullLocation() { exists(QL::AstNode node | not node instanceof QL::ParExpr | node = toQL(this) and result = node.getLocation() @@ -434,6 +436,8 @@ class ClasslessPredicate extends TClasslessPredicate, Predicate, ModuleDeclarati ClasslessPredicate() { this = TClasslessPredicate(pred) } + override Location getLocation() { result = pred.getName().getLocation() } + /** * Gets the aliased value if this predicate is an alias * E.g. for `predicate foo = Module::bar/2;` gets `Module::bar/2`. @@ -484,6 +488,8 @@ class ClassPredicate extends TClassPredicate, Predicate { ClassPredicate() { this = TClassPredicate(pred) } + override Location getLocation() { result = pred.getName().getLocation() } + override string getName() { result = pred.getName().getValue() } override Formula getBody() { toQL(result) = pred.getChild(_).(QL::Body).getChild() } @@ -701,6 +707,8 @@ class Module extends TModule, ModuleDeclaration { Module() { this = TModule(mod) } + override Location getLocation() { result = mod.getName().getLocation() } + override string getAPrimaryQlClass() { result = "Module" } override string getName() { result = mod.getName().getChild().getValue() } @@ -784,6 +792,8 @@ class Class extends TClass, TypeDeclaration, ModuleDeclaration { Class() { this = TClass(cls) } + override Location getLocation() { result = cls.getName().getLocation() } + override string getAPrimaryQlClass() { result = "Class" } override string getName() { result = cls.getName().getValue() } @@ -871,6 +881,8 @@ class NewType extends TNewType, TypeDeclaration, ModuleDeclaration { NewType() { this = TNewType(type) } + override Location getLocation() { result = type.getName().getLocation() } + override string getName() { result = type.getName().getValue() } override string getAPrimaryQlClass() { result = "NewType" } @@ -896,6 +908,8 @@ class NewTypeBranch extends TNewTypeBranch, Predicate, TypeDeclaration { NewTypeBranch() { this = TNewTypeBranch(branch) } + override Location getLocation() { result = branch.getName().getLocation() } + override string getAPrimaryQlClass() { result = "NewTypeBranch" } override string getName() { result = branch.getName().getValue() } diff --git a/ql/ql/src/queries/performance/VarUnusedInDisjunct.ql b/ql/ql/src/queries/performance/VarUnusedInDisjunct.ql index 2317cdc80c4..c26b47554fe 100644 --- a/ql/ql/src/queries/performance/VarUnusedInDisjunct.ql +++ b/ql/ql/src/queries/performance/VarUnusedInDisjunct.ql @@ -119,12 +119,14 @@ class EffectiveDisjunction extends AstNode { * Holds if `disj` only uses `var` in one of its branches. */ pragma[noinline] -predicate onlyUseInOneBranch(EffectiveDisjunction disj, VarDef var) { +predicate onlyUseInOneBranch(EffectiveDisjunction disj, VarDef var, AstNode notBoundIn) { alwaysBindsVar(var, disj.getLeft()) and - not alwaysBindsVar(var, disj.getRight()) + not alwaysBindsVar(var, disj.getRight()) and + notBoundIn = disj.getRight() or not alwaysBindsVar(var, disj.getLeft()) and - alwaysBindsVar(var, disj.getRight()) + alwaysBindsVar(var, disj.getRight()) and + notBoundIn = disj.getLeft() } /** @@ -170,7 +172,7 @@ class EffectiveConjunction extends AstNode { predicate varIsAlwaysBound(VarDef var, AstNode node) { // base case alwaysBindsVar(var, node) and - onlyUseInOneBranch(_, var) // <- manual magic + onlyUseInOneBranch(_, var, _) // <- manual magic or // recursive cases exists(AstNode parent | node.getParent() = parent | varIsAlwaysBound(var, parent)) @@ -194,8 +196,8 @@ predicate varIsAlwaysBound(VarDef var, AstNode node) { * Holds if `disj` only uses `var` in one of its branches. * And we should report it as being a bad thing. */ -predicate badDisjunction(EffectiveDisjunction disj, VarDef var) { - onlyUseInOneBranch(disj, var) and +predicate badDisjunction(EffectiveDisjunction disj, VarDef var, AstNode notBoundIn) { + onlyUseInOneBranch(disj, var, notBoundIn) and // it's fine if it's always bound further up not varIsAlwaysBound(var, disj) and // none() on one side makes everything fine. (this happens, it's a type-system hack) @@ -213,9 +215,9 @@ predicate badDisjunction(EffectiveDisjunction disj, VarDef var) { not isTinyAssignment(disj.getAnOperand()) } -from EffectiveDisjunction disj, VarDef var, string type +from EffectiveDisjunction disj, VarDef var, AstNode notBoundIn, string type where - badDisjunction(disj, var) and - not badDisjunction(disj.getParent(), var) and // avoid duplicate reporting of the same error + badDisjunction(disj, var, notBoundIn) and + not badDisjunction(disj.getParent(), var, _) and // avoid duplicate reporting of the same error if var.getParent() instanceof FieldDecl then type = "field" else type = "variable" select disj, "The $@ is only used in one side of disjunct.", var, type + " " + var.getName() diff --git a/ql/ql/src/queries/style/LibraryAnnotation.ql b/ql/ql/src/queries/style/LibraryAnnotation.ql index cf4a4bc8232..99b80f97fb9 100644 --- a/ql/ql/src/queries/style/LibraryAnnotation.ql +++ b/ql/ql/src/queries/style/LibraryAnnotation.ql @@ -10,6 +10,9 @@ import ql -from AstNode n -where n.hasAnnotation("library") and not n.hasAnnotation("deprecated") +from AstNode n, Annotation library +where + library = n.getAnAnnotation() and + library.getName() = "library" and + not n.hasAnnotation("deprecated") select n, "Don't use the library annotation." diff --git a/ql/ql/src/queries/style/UseInstanceofExtension.ql b/ql/ql/src/queries/style/UseInstanceofExtension.ql index 2e7b8e3de80..da27e5cbb47 100644 --- a/ql/ql/src/queries/style/UseInstanceofExtension.ql +++ b/ql/ql/src/queries/style/UseInstanceofExtension.ql @@ -18,4 +18,4 @@ where usesFieldBasedInstanceof(c, any(TypeExpr te | te.getResolvedType() = type), _, _) ) and message = "consider defining $@ as non-extending subtype of $@" -select c, message, c, c.getName(), type, type.getName() +select c, message, c, c.getName(), type.getDeclaration(), type.getName() diff --git a/ql/ql/test/callgraph/callgraph.expected b/ql/ql/test/callgraph/callgraph.expected index 97c84034602..dae7a03b047 100644 --- a/ql/ql/test/callgraph/callgraph.expected +++ b/ql/ql/test/callgraph/callgraph.expected @@ -1,47 +1,47 @@ getTarget -| Bar.qll:5:38:5:47 | PredicateCall | Bar.qll:8:3:8:31 | ClasslessPredicate snapshot | -| Bar.qll:24:12:24:32 | MemberCall | Bar.qll:19:3:19:47 | ClassPredicate getParameter | -| Bar.qll:26:12:26:31 | MemberCall | Bar.qll:19:3:19:47 | ClassPredicate getParameter | -| Bar.qll:30:12:30:32 | MemberCall | Bar.qll:19:3:19:47 | ClassPredicate getParameter | -| Baz.qll:8:18:8:44 | MemberCall | Baz.qll:4:3:4:37 | ClassPredicate getImportedPath | -| Foo.qll:5:26:5:30 | PredicateCall | Foo.qll:3:1:3:26 | ClasslessPredicate foo | -| Foo.qll:10:21:10:25 | PredicateCall | Foo.qll:8:3:8:28 | ClassPredicate bar | -| Foo.qll:14:30:14:40 | MemberCall | Foo.qll:10:3:10:27 | ClassPredicate baz | -| Foo.qll:17:27:17:42 | MemberCall | Foo.qll:8:3:8:28 | ClassPredicate bar | -| Foo.qll:29:5:29:16 | PredicateCall | Foo.qll:20:3:20:54 | ClasslessPredicate myThing2 | -| Foo.qll:29:5:29:16 | PredicateCall | Foo.qll:26:3:26:32 | ClasslessPredicate alias2 | -| Foo.qll:31:5:31:12 | PredicateCall | Foo.qll:22:3:22:32 | ClasslessPredicate myThing0 | -| Foo.qll:31:5:31:12 | PredicateCall | Foo.qll:24:3:24:32 | ClasslessPredicate alias0 | +| Bar.qll:5:38:5:47 | PredicateCall | Bar.qll:8:7:8:14 | ClasslessPredicate snapshot | +| Bar.qll:24:12:24:32 | MemberCall | Bar.qll:19:7:19:18 | ClassPredicate getParameter | +| Bar.qll:26:12:26:31 | MemberCall | Bar.qll:19:7:19:18 | ClassPredicate getParameter | +| Bar.qll:30:12:30:32 | MemberCall | Bar.qll:19:7:19:18 | ClassPredicate getParameter | +| Baz.qll:8:18:8:44 | MemberCall | Baz.qll:4:10:4:24 | ClassPredicate getImportedPath | +| Foo.qll:5:26:5:30 | PredicateCall | Foo.qll:3:11:3:13 | ClasslessPredicate foo | +| Foo.qll:10:21:10:25 | PredicateCall | Foo.qll:8:13:8:15 | ClassPredicate bar | +| Foo.qll:14:30:14:40 | MemberCall | Foo.qll:10:13:10:15 | ClassPredicate baz | +| Foo.qll:17:27:17:42 | MemberCall | Foo.qll:8:13:8:15 | ClassPredicate bar | +| Foo.qll:29:5:29:16 | PredicateCall | Foo.qll:20:13:20:20 | ClasslessPredicate myThing2 | +| Foo.qll:29:5:29:16 | PredicateCall | Foo.qll:26:13:26:18 | ClasslessPredicate alias2 | +| Foo.qll:31:5:31:12 | PredicateCall | Foo.qll:22:13:22:20 | ClasslessPredicate myThing0 | +| Foo.qll:31:5:31:12 | PredicateCall | Foo.qll:24:13:24:18 | ClasslessPredicate alias0 | | Foo.qll:36:36:36:65 | MemberCall | file://:0:0:0:0 | replaceAll | | Foo.qll:38:39:38:67 | MemberCall | file://:0:0:0:0 | regexpCapture | -| Overrides.qll:8:30:8:39 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | -| Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | -| Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:14:12:14:43 | ClassPredicate bar | -| Overrides.qll:24:39:24:48 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | -| Overrides.qll:24:39:24:48 | MemberCall | Overrides.qll:22:12:22:44 | ClassPredicate bar | -| Overrides.qll:28:3:28:9 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar | -| Overrides.qll:29:3:29:10 | MemberCall | Overrides.qll:8:3:8:41 | ClassPredicate baz | -| ParamModules.qll:5:28:5:41 | PredicateCall | ParamModules.qll:2:13:2:36 | ClasslessPredicate fooSig | -| ParamModules.qll:5:28:5:41 | PredicateCall | ParamModules.qll:8:3:8:35 | ClasslessPredicate myFoo | -| ParamModules.qll:10:26:10:49 | PredicateCall | ParamModules.qll:5:5:5:43 | ClasslessPredicate bar | -| ParamModules.qll:26:27:26:53 | PredicateCall | ParamModules.qll:17:5:17:42 | ClasslessPredicate getAnEven | -| ParamModules.qll:26:27:26:61 | MemberCall | ParamModules.qll:23:5:23:39 | ClassPredicate myFoo | -| ParamModules.qll:37:29:37:47 | PredicateCall | ParamModules.qll:33:5:33:17 | ClasslessPredicate getThing | -| ParamModules.qll:37:29:37:47 | PredicateCall | ParamModules.qll:51:5:51:26 | ClasslessPredicate getThing | -| ParamModules.qll:59:30:59:45 | PredicateCall | ParamModules.qll:37:5:37:49 | ClasslessPredicate getThing | -| ParamModules.qll:59:30:59:53 | MemberCall | ParamModules.qll:46:7:46:41 | ClassPredicate myFoo | -| ParamModules.qll:61:39:61:47 | MemberCall | ParamModules.qll:46:7:46:41 | ClassPredicate myFoo | -| packs/other/OtherThing.qll:5:3:5:8 | PredicateCall | packs/lib/LibThing/Foo.qll:1:1:1:30 | ClasslessPredicate foo | -| packs/other/OtherThing.qll:6:3:6:8 | PredicateCall | packs/src/SrcThing.qll:8:1:8:30 | ClasslessPredicate bar | -| packs/src/SrcThing.qll:4:3:4:8 | PredicateCall | packs/lib/LibThing/Foo.qll:1:1:1:30 | ClasslessPredicate foo | -| packs/src/SrcThing.qll:5:3:5:8 | PredicateCall | packs/src/SrcThing.qll:8:1:8:30 | ClasslessPredicate bar | +| Overrides.qll:8:30:8:39 | MemberCall | Overrides.qll:6:7:6:9 | ClassPredicate bar | +| Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:6:7:6:9 | ClassPredicate bar | +| Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:14:16:14:18 | ClassPredicate bar | +| Overrides.qll:24:39:24:48 | MemberCall | Overrides.qll:6:7:6:9 | ClassPredicate bar | +| Overrides.qll:24:39:24:48 | MemberCall | Overrides.qll:22:16:22:18 | ClassPredicate bar | +| Overrides.qll:28:3:28:9 | MemberCall | Overrides.qll:6:7:6:9 | ClassPredicate bar | +| Overrides.qll:29:3:29:10 | MemberCall | Overrides.qll:8:13:8:15 | ClassPredicate baz | +| ParamModules.qll:5:28:5:41 | PredicateCall | ParamModules.qll:2:23:2:28 | ClasslessPredicate fooSig | +| ParamModules.qll:5:28:5:41 | PredicateCall | ParamModules.qll:8:13:8:17 | ClasslessPredicate myFoo | +| ParamModules.qll:10:26:10:49 | PredicateCall | ParamModules.qll:5:15:5:17 | ClasslessPredicate bar | +| ParamModules.qll:26:27:26:53 | PredicateCall | ParamModules.qll:17:13:17:21 | ClasslessPredicate getAnEven | +| ParamModules.qll:26:27:26:61 | MemberCall | ParamModules.qll:23:12:23:16 | ClassPredicate myFoo | +| ParamModules.qll:37:29:37:47 | PredicateCall | ParamModules.qll:33:7:33:14 | ClasslessPredicate getThing | +| ParamModules.qll:37:29:37:47 | PredicateCall | ParamModules.qll:51:7:51:14 | ClasslessPredicate getThing | +| ParamModules.qll:59:30:59:45 | PredicateCall | ParamModules.qll:37:7:37:14 | ClasslessPredicate getThing | +| ParamModules.qll:59:30:59:53 | MemberCall | ParamModules.qll:46:14:46:18 | ClassPredicate myFoo | +| ParamModules.qll:61:39:61:47 | MemberCall | ParamModules.qll:46:14:46:18 | ClassPredicate myFoo | +| packs/other/OtherThing.qll:5:3:5:8 | PredicateCall | packs/lib/LibThing/Foo.qll:1:11:1:13 | ClasslessPredicate foo | +| packs/other/OtherThing.qll:6:3:6:8 | PredicateCall | packs/src/SrcThing.qll:8:11:8:13 | ClasslessPredicate bar | +| packs/src/SrcThing.qll:4:3:4:8 | PredicateCall | packs/lib/LibThing/Foo.qll:1:11:1:13 | ClasslessPredicate foo | +| packs/src/SrcThing.qll:5:3:5:8 | PredicateCall | packs/src/SrcThing.qll:8:11:8:13 | ClasslessPredicate bar | dependsOn | packs/other/qlpack.yml:1:1:1:4 | ql-other-pack-thing | packs/src/qlpack.yml:1:1:1:4 | ql-testing-src-pack | | packs/src/qlpack.yml:1:1:1:4 | ql-testing-src-pack | packs/lib/qlpack.yml:1:1:1:4 | ql-testing-lib-pack | exprPredicate -| Foo.qll:24:22:24:31 | predicate | Foo.qll:22:3:22:32 | ClasslessPredicate myThing0 | -| Foo.qll:26:22:26:31 | predicate | Foo.qll:20:3:20:54 | ClasslessPredicate myThing2 | -| Foo.qll:47:55:47:62 | predicate | Foo.qll:42:20:42:27 | NewTypeBranch MkRoot | -| Foo.qll:47:65:47:70 | predicate | Foo.qll:44:9:44:56 | ClasslessPredicate edge | -| ParamModules.qll:4:18:4:25 | predicate | ParamModules.qll:2:13:2:36 | ClasslessPredicate fooSig | -| ParamModules.qll:10:34:10:40 | predicate | ParamModules.qll:8:3:8:35 | ClasslessPredicate myFoo | +| Foo.qll:24:22:24:31 | predicate | Foo.qll:22:13:22:20 | ClasslessPredicate myThing0 | +| Foo.qll:26:22:26:31 | predicate | Foo.qll:20:13:20:20 | ClasslessPredicate myThing2 | +| Foo.qll:47:55:47:62 | predicate | Foo.qll:42:20:42:25 | NewTypeBranch MkRoot | +| Foo.qll:47:65:47:70 | predicate | Foo.qll:44:19:44:22 | ClasslessPredicate edge | +| ParamModules.qll:4:18:4:25 | predicate | ParamModules.qll:2:23:2:28 | ClasslessPredicate fooSig | +| ParamModules.qll:10:34:10:40 | predicate | ParamModules.qll:8:13:8:17 | ClasslessPredicate myFoo | diff --git a/ql/ql/test/printAst/printAst.expected b/ql/ql/test/printAst/printAst.expected index 603608355d7..daa299215d3 100644 --- a/ql/ql/test/printAst/printAst.expected +++ b/ql/ql/test/printAst/printAst.expected @@ -3,8 +3,8 @@ nodes | Foo.qll:1:1:1:17 | Import | semmle.order | 1 | | Foo.qll:1:1:27:2 | TopLevel | semmle.label | [TopLevel] TopLevel | | Foo.qll:1:1:27:2 | TopLevel | semmle.order | 1 | -| Foo.qll:3:1:7:1 | Class Foo | semmle.label | [Class] Class Foo | -| Foo.qll:3:1:7:1 | Class Foo | semmle.order | 3 | +| Foo.qll:3:7:3:9 | Class Foo | semmle.label | [Class] Class Foo | +| Foo.qll:3:7:3:9 | Class Foo | semmle.order | 3 | | Foo.qll:3:19:3:22 | TypeExpr | semmle.label | [TypeExpr] TypeExpr | | Foo.qll:3:19:3:22 | TypeExpr | semmle.order | 4 | | Foo.qll:4:3:4:17 | CharPred Foo | semmle.label | [CharPred] CharPred Foo | @@ -17,8 +17,8 @@ nodes | Foo.qll:4:15:4:15 | Integer | semmle.order | 8 | | Foo.qll:6:3:6:8 | TypeExpr | semmle.label | [TypeExpr] TypeExpr | | Foo.qll:6:3:6:8 | TypeExpr | semmle.order | 9 | -| Foo.qll:6:3:6:38 | ClassPredicate toString | semmle.label | [ClassPredicate] ClassPredicate toString | -| Foo.qll:6:3:6:38 | ClassPredicate toString | semmle.order | 9 | +| Foo.qll:6:10:6:17 | ClassPredicate toString | semmle.label | [ClassPredicate] ClassPredicate toString | +| Foo.qll:6:10:6:17 | ClassPredicate toString | semmle.order | 10 | | Foo.qll:6:23:6:28 | result | semmle.label | [ResultAccess] result | | Foo.qll:6:23:6:28 | result | semmle.order | 11 | | Foo.qll:6:23:6:36 | ComparisonFormula | semmle.label | [ComparisonFormula] ComparisonFormula | @@ -27,8 +27,8 @@ nodes | Foo.qll:6:32:6:36 | String | semmle.order | 13 | | Foo.qll:9:1:9:5 | annotation | semmle.label | [Annotation] annotation | | Foo.qll:9:1:9:5 | annotation | semmle.order | 14 | -| Foo.qll:9:7:11:1 | ClasslessPredicate foo | semmle.label | [ClasslessPredicate] ClasslessPredicate foo | -| Foo.qll:9:7:11:1 | ClasslessPredicate foo | semmle.order | 15 | +| Foo.qll:9:17:9:19 | ClasslessPredicate foo | semmle.label | [ClasslessPredicate] ClasslessPredicate foo | +| Foo.qll:9:17:9:19 | ClasslessPredicate foo | semmle.order | 15 | | Foo.qll:9:21:9:23 | TypeExpr | semmle.label | [TypeExpr] TypeExpr | | Foo.qll:9:21:9:23 | TypeExpr | semmle.order | 16 | | Foo.qll:9:21:9:25 | f | semmle.label | [VarDecl] f | @@ -59,8 +59,8 @@ nodes | Foo.qll:10:69:10:73 | inner | semmle.order | 29 | | Foo.qll:10:69:10:84 | MemberCall | semmle.label | [MemberCall] MemberCall | | Foo.qll:10:69:10:84 | MemberCall | semmle.order | 29 | -| Foo.qll:13:1:27:1 | ClasslessPredicate calls | semmle.label | [ClasslessPredicate] ClasslessPredicate calls | -| Foo.qll:13:1:27:1 | ClasslessPredicate calls | semmle.order | 31 | +| Foo.qll:13:11:13:15 | ClasslessPredicate calls | semmle.label | [ClasslessPredicate] ClasslessPredicate calls | +| Foo.qll:13:11:13:15 | ClasslessPredicate calls | semmle.order | 31 | | Foo.qll:13:17:13:19 | TypeExpr | semmle.label | [TypeExpr] TypeExpr | | Foo.qll:13:17:13:19 | TypeExpr | semmle.order | 32 | | Foo.qll:13:17:13:21 | f | semmle.label | [VarDecl] f | @@ -239,38 +239,38 @@ nodes edges | Foo.qll:1:1:27:2 | TopLevel | Foo.qll:1:1:1:17 | Import | semmle.label | getAnImport() | | Foo.qll:1:1:27:2 | TopLevel | Foo.qll:1:1:1:17 | Import | semmle.order | 1 | -| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:3:1:7:1 | Class Foo | semmle.label | getAClass() | -| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:3:1:7:1 | Class Foo | semmle.order | 3 | -| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:9:7:11:1 | ClasslessPredicate foo | semmle.label | getAPredicate() | -| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:9:7:11:1 | ClasslessPredicate foo | semmle.order | 15 | -| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:13:1:27:1 | ClasslessPredicate calls | semmle.label | getAPredicate() | -| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:13:1:27:1 | ClasslessPredicate calls | semmle.order | 31 | -| Foo.qll:3:1:7:1 | Class Foo | Foo.qll:3:19:3:22 | TypeExpr | semmle.label | getASuperType() | -| Foo.qll:3:1:7:1 | Class Foo | Foo.qll:3:19:3:22 | TypeExpr | semmle.order | 4 | -| Foo.qll:3:1:7:1 | Class Foo | Foo.qll:4:3:4:17 | CharPred Foo | semmle.label | getCharPred() | -| Foo.qll:3:1:7:1 | Class Foo | Foo.qll:4:3:4:17 | CharPred Foo | semmle.order | 5 | -| Foo.qll:3:1:7:1 | Class Foo | Foo.qll:6:3:6:38 | ClassPredicate toString | semmle.label | getClassPredicate(_) | -| Foo.qll:3:1:7:1 | Class Foo | Foo.qll:6:3:6:38 | ClassPredicate toString | semmle.order | 9 | +| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:3:7:3:9 | Class Foo | semmle.label | getAClass() | +| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:3:7:3:9 | Class Foo | semmle.order | 3 | +| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:9:17:9:19 | ClasslessPredicate foo | semmle.label | getAPredicate() | +| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:9:17:9:19 | ClasslessPredicate foo | semmle.order | 15 | +| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:13:11:13:15 | ClasslessPredicate calls | semmle.label | getAPredicate() | +| Foo.qll:1:1:27:2 | TopLevel | Foo.qll:13:11:13:15 | ClasslessPredicate calls | semmle.order | 31 | +| Foo.qll:3:7:3:9 | Class Foo | Foo.qll:3:19:3:22 | TypeExpr | semmle.label | getASuperType() | +| Foo.qll:3:7:3:9 | Class Foo | Foo.qll:3:19:3:22 | TypeExpr | semmle.order | 4 | +| Foo.qll:3:7:3:9 | Class Foo | Foo.qll:4:3:4:17 | CharPred Foo | semmle.label | getCharPred() | +| Foo.qll:3:7:3:9 | Class Foo | Foo.qll:4:3:4:17 | CharPred Foo | semmle.order | 5 | +| Foo.qll:3:7:3:9 | Class Foo | Foo.qll:6:10:6:17 | ClassPredicate toString | semmle.label | getClassPredicate(_) | +| Foo.qll:3:7:3:9 | Class Foo | Foo.qll:6:10:6:17 | ClassPredicate toString | semmle.order | 10 | | Foo.qll:4:3:4:17 | CharPred Foo | Foo.qll:4:11:4:15 | ComparisonFormula | semmle.label | getBody() | | Foo.qll:4:3:4:17 | CharPred Foo | Foo.qll:4:11:4:15 | ComparisonFormula | semmle.order | 6 | | Foo.qll:4:11:4:15 | ComparisonFormula | Foo.qll:4:11:4:11 | Integer | semmle.label | getLeftOperand() | | Foo.qll:4:11:4:15 | ComparisonFormula | Foo.qll:4:11:4:11 | Integer | semmle.order | 6 | | Foo.qll:4:11:4:15 | ComparisonFormula | Foo.qll:4:15:4:15 | Integer | semmle.label | getRightOperand() | | Foo.qll:4:11:4:15 | ComparisonFormula | Foo.qll:4:15:4:15 | Integer | semmle.order | 8 | -| Foo.qll:6:3:6:38 | ClassPredicate toString | Foo.qll:6:3:6:8 | TypeExpr | semmle.label | getReturnTypeExpr() | -| Foo.qll:6:3:6:38 | ClassPredicate toString | Foo.qll:6:3:6:8 | TypeExpr | semmle.order | 9 | -| Foo.qll:6:3:6:38 | ClassPredicate toString | Foo.qll:6:23:6:36 | ComparisonFormula | semmle.label | getBody() | -| Foo.qll:6:3:6:38 | ClassPredicate toString | Foo.qll:6:23:6:36 | ComparisonFormula | semmle.order | 11 | +| Foo.qll:6:10:6:17 | ClassPredicate toString | Foo.qll:6:3:6:8 | TypeExpr | semmle.label | getReturnTypeExpr() | +| Foo.qll:6:10:6:17 | ClassPredicate toString | Foo.qll:6:3:6:8 | TypeExpr | semmle.order | 9 | +| Foo.qll:6:10:6:17 | ClassPredicate toString | Foo.qll:6:23:6:36 | ComparisonFormula | semmle.label | getBody() | +| Foo.qll:6:10:6:17 | ClassPredicate toString | Foo.qll:6:23:6:36 | ComparisonFormula | semmle.order | 11 | | Foo.qll:6:23:6:36 | ComparisonFormula | Foo.qll:6:23:6:28 | result | semmle.label | getLeftOperand() | | Foo.qll:6:23:6:36 | ComparisonFormula | Foo.qll:6:23:6:28 | result | semmle.order | 11 | | Foo.qll:6:23:6:36 | ComparisonFormula | Foo.qll:6:32:6:36 | String | semmle.label | getRightOperand() | | Foo.qll:6:23:6:36 | ComparisonFormula | Foo.qll:6:32:6:36 | String | semmle.order | 13 | -| Foo.qll:9:7:11:1 | ClasslessPredicate foo | Foo.qll:9:1:9:5 | annotation | semmle.label | getAnAnnotation() | -| Foo.qll:9:7:11:1 | ClasslessPredicate foo | Foo.qll:9:1:9:5 | annotation | semmle.order | 14 | -| Foo.qll:9:7:11:1 | ClasslessPredicate foo | Foo.qll:9:21:9:25 | f | semmle.label | getParameter(_) | -| Foo.qll:9:7:11:1 | ClasslessPredicate foo | Foo.qll:9:21:9:25 | f | semmle.order | 16 | -| Foo.qll:9:7:11:1 | ClasslessPredicate foo | Foo.qll:10:3:10:85 | ComparisonFormula | semmle.label | getBody() | -| Foo.qll:9:7:11:1 | ClasslessPredicate foo | Foo.qll:10:3:10:85 | ComparisonFormula | semmle.order | 18 | +| Foo.qll:9:17:9:19 | ClasslessPredicate foo | Foo.qll:9:1:9:5 | annotation | semmle.label | getAnAnnotation() | +| Foo.qll:9:17:9:19 | ClasslessPredicate foo | Foo.qll:9:1:9:5 | annotation | semmle.order | 14 | +| Foo.qll:9:17:9:19 | ClasslessPredicate foo | Foo.qll:9:21:9:25 | f | semmle.label | getParameter(_) | +| Foo.qll:9:17:9:19 | ClasslessPredicate foo | Foo.qll:9:21:9:25 | f | semmle.order | 16 | +| Foo.qll:9:17:9:19 | ClasslessPredicate foo | Foo.qll:10:3:10:85 | ComparisonFormula | semmle.label | getBody() | +| Foo.qll:9:17:9:19 | ClasslessPredicate foo | Foo.qll:10:3:10:85 | ComparisonFormula | semmle.order | 18 | | Foo.qll:9:21:9:25 | f | Foo.qll:9:21:9:23 | TypeExpr | semmle.label | getTypeExpr() | | Foo.qll:9:21:9:25 | f | Foo.qll:9:21:9:23 | TypeExpr | semmle.order | 16 | | Foo.qll:10:3:10:85 | ComparisonFormula | Foo.qll:10:3:10:3 | f | semmle.label | getLeftOperand() | @@ -297,10 +297,10 @@ edges | Foo.qll:10:27:10:50 | ComparisonFormula | Foo.qll:10:46:10:50 | String | semmle.order | 27 | | Foo.qll:10:69:10:84 | MemberCall | Foo.qll:10:69:10:73 | inner | semmle.label | getBase() | | Foo.qll:10:69:10:84 | MemberCall | Foo.qll:10:69:10:73 | inner | semmle.order | 29 | -| Foo.qll:13:1:27:1 | ClasslessPredicate calls | Foo.qll:13:17:13:21 | f | semmle.label | getParameter(_) | -| Foo.qll:13:1:27:1 | ClasslessPredicate calls | Foo.qll:13:17:13:21 | f | semmle.order | 32 | -| Foo.qll:13:1:27:1 | ClasslessPredicate calls | Foo.qll:14:3:26:14 | Disjunction | semmle.label | getBody() | -| Foo.qll:13:1:27:1 | ClasslessPredicate calls | Foo.qll:14:3:26:14 | Disjunction | semmle.order | 34 | +| Foo.qll:13:11:13:15 | ClasslessPredicate calls | Foo.qll:13:17:13:21 | f | semmle.label | getParameter(_) | +| Foo.qll:13:11:13:15 | ClasslessPredicate calls | Foo.qll:13:17:13:21 | f | semmle.order | 32 | +| Foo.qll:13:11:13:15 | ClasslessPredicate calls | Foo.qll:14:3:26:14 | Disjunction | semmle.label | getBody() | +| Foo.qll:13:11:13:15 | ClasslessPredicate calls | Foo.qll:14:3:26:14 | Disjunction | semmle.order | 34 | | Foo.qll:13:17:13:21 | f | Foo.qll:13:17:13:19 | TypeExpr | semmle.label | getTypeExpr() | | Foo.qll:13:17:13:21 | f | Foo.qll:13:17:13:19 | TypeExpr | semmle.order | 32 | | Foo.qll:14:3:14:10 | PredicateCall | Foo.qll:14:9:14:9 | f | semmle.label | getArgument(_) | diff --git a/ql/ql/test/queries/style/AcronymsShouldBeCamelCase/AcronymsShouldBeCamelCase.expected b/ql/ql/test/queries/style/AcronymsShouldBeCamelCase/AcronymsShouldBeCamelCase.expected index bd6bc99489d..de23b92bafa 100644 --- a/ql/ql/test/queries/style/AcronymsShouldBeCamelCase/AcronymsShouldBeCamelCase.expected +++ b/ql/ql/test/queries/style/AcronymsShouldBeCamelCase/AcronymsShouldBeCamelCase.expected @@ -1,3 +1,3 @@ -| Test.qll:2:1:2:27 | ClasslessPredicate isXML | Acronyms in isXML should be PascalCase/camelCase | -| Test.qll:8:1:10:15 | NewType TXMLElements | Acronyms in TXMLElements should be PascalCase/camelCase | -| Test.qll:10:3:10:15 | NewTypeBranch TXMLElement | Acronyms in TXMLElement should be PascalCase/camelCase | +| Test.qll:2:11:2:15 | ClasslessPredicate isXML | Acronyms in isXML should be PascalCase/camelCase | +| Test.qll:8:9:8:20 | NewType TXMLElements | Acronyms in TXMLElements should be PascalCase/camelCase | +| Test.qll:10:3:10:13 | NewTypeBranch TXMLElement | Acronyms in TXMLElement should be PascalCase/camelCase | diff --git a/ql/ql/test/queries/style/DeadCode/DeadCode.expected b/ql/ql/test/queries/style/DeadCode/DeadCode.expected index d3b3115e729..39a2b034390 100644 --- a/ql/ql/test/queries/style/DeadCode/DeadCode.expected +++ b/ql/ql/test/queries/style/DeadCode/DeadCode.expected @@ -1,2 +1,2 @@ -| Foo.qll:2:11:2:38 | ClasslessPredicate dead1 | Code is dead | -| Foo.qll:6:3:6:30 | ClasslessPredicate dead2 | Code is dead | +| Foo.qll:2:21:2:25 | ClasslessPredicate dead1 | Code is dead | +| Foo.qll:6:13:6:17 | ClasslessPredicate dead2 | Code is dead | diff --git a/ql/ql/test/queries/style/MissingOverride/MissingOverride.expected b/ql/ql/test/queries/style/MissingOverride/MissingOverride.expected index f59b21d0d73..2ef0dd4b1ad 100644 --- a/ql/ql/test/queries/style/MissingOverride/MissingOverride.expected +++ b/ql/ql/test/queries/style/MissingOverride/MissingOverride.expected @@ -1 +1 @@ -| Test.qll:12:3:12:33 | ClassPredicate test | Wrong.test overrides $@ but does not have an override annotation. | Test.qll:4:3:4:40 | ClassPredicate test | Super.test | +| Test.qll:12:13:12:16 | ClassPredicate test | Wrong.test overrides $@ but does not have an override annotation. | Test.qll:4:13:4:16 | ClassPredicate test | Super.test | diff --git a/ql/ql/test/queries/style/Misspelling/Misspelling.expected b/ql/ql/test/queries/style/Misspelling/Misspelling.expected index dc028c412d8..65f9f245d3b 100644 --- a/ql/ql/test/queries/style/Misspelling/Misspelling.expected +++ b/ql/ql/test/queries/style/Misspelling/Misspelling.expected @@ -1,6 +1,6 @@ | Test.qll:1:1:3:3 | QLDoc | This QLDoc comment contains the common misspelling 'mispelled', which should instead be 'misspelled'. | -| Test.qll:4:1:11:1 | Class PublicallyAccessible | This class name contains the common misspelling 'publically', which should instead be 'publicly'. | +| Test.qll:4:7:4:26 | Class PublicallyAccessible | This class name contains the common misspelling 'publically', which should instead be 'publicly'. | | Test.qll:5:3:5:20 | FieldDecl | This field name contains the common misspelling 'occurences', which should instead be 'occurrences'. | -| Test.qll:10:3:10:36 | ClassPredicate hasAgrument | This classPredicate name contains the common misspelling 'agrument', which should instead be 'argument'. | +| Test.qll:10:13:10:23 | ClassPredicate hasAgrument | This classPredicate name contains the common misspelling 'agrument', which should instead be 'argument'. | | Test.qll:13:1:16:3 | QLDoc | This QLDoc comment contains the non-US spelling 'colour', which should instead be 'color'. | -| Test.qll:17:1:22:1 | Class AnalysedInt | This class name contains the non-US spelling 'analysed', which should instead be 'analyzed'. | +| Test.qll:17:7:17:17 | Class AnalysedInt | This class name contains the non-US spelling 'analysed', which should instead be 'analyzed'. | diff --git a/ql/ql/test/type/type.expected b/ql/ql/test/type/type.expected index 773a9244a22..fd3a34c27f6 100644 --- a/ql/ql/test/type/type.expected +++ b/ql/ql/test/type/type.expected @@ -1,6 +1,6 @@ -| Test.qll:4:15:4:18 | this | Test.qll:3:1:5:1 | Strings | -| Test.qll:4:15:4:18 | this | Test.qll:3:1:5:1 | Strings.Strings | -| Test.qll:4:15:4:18 | this | Test.qll:3:1:5:1 | Strings.extends | +| Test.qll:4:15:4:18 | this | Test.qll:3:7:3:13 | Strings | +| Test.qll:4:15:4:18 | this | Test.qll:3:7:3:13 | Strings.Strings | +| Test.qll:4:15:4:18 | this | Test.qll:3:7:3:13 | Strings.extends | | Test.qll:4:22:4:76 | Set | file://:0:0:0:0 | string | | Test.qll:4:23:4:24 | String | file://:0:0:0:0 | string | | Test.qll:4:27:4:29 | String | file://:0:0:0:0 | string | @@ -12,9 +12,9 @@ | Test.qll:4:61:4:63 | String | file://:0:0:0:0 | string | | Test.qll:4:66:4:69 | String | file://:0:0:0:0 | string | | Test.qll:4:72:4:75 | String | file://:0:0:0:0 | string | -| Test.qll:8:14:8:17 | this | Test.qll:7:1:9:1 | Floats | -| Test.qll:8:14:8:17 | this | Test.qll:7:1:9:1 | Floats.Floats | -| Test.qll:8:14:8:17 | this | Test.qll:7:1:9:1 | Floats.extends | +| Test.qll:8:14:8:17 | this | Test.qll:7:7:7:12 | Floats | +| Test.qll:8:14:8:17 | this | Test.qll:7:7:7:12 | Floats.Floats | +| Test.qll:8:14:8:17 | this | Test.qll:7:7:7:12 | Floats.extends | | Test.qll:8:21:8:70 | Set | file://:0:0:0:0 | float | | Test.qll:8:22:8:24 | Float | file://:0:0:0:0 | float | | Test.qll:8:27:8:29 | Float | file://:0:0:0:0 | float | @@ -27,28 +27,28 @@ | Test.qll:8:62:8:64 | Float | file://:0:0:0:0 | float | | Test.qll:8:67:8:69 | Float | file://:0:0:0:0 | float | | Test.qll:11:37:11:42 | result | file://:0:0:0:0 | string | -| Test.qll:11:46:11:46 | a | Test.qll:3:1:5:1 | Strings | +| Test.qll:11:46:11:46 | a | Test.qll:3:7:3:13 | Strings | | Test.qll:11:46:11:50 | AddExpr | file://:0:0:0:0 | string | -| Test.qll:11:50:11:50 | b | Test.qll:3:1:5:1 | Strings | +| Test.qll:11:50:11:50 | b | Test.qll:3:7:3:13 | Strings | | Test.qll:13:36:13:41 | result | file://:0:0:0:0 | float | -| Test.qll:13:45:13:45 | a | Test.qll:7:1:9:1 | Floats | +| Test.qll:13:45:13:45 | a | Test.qll:7:7:7:12 | Floats | | Test.qll:13:45:13:49 | AddExpr | file://:0:0:0:0 | float | -| Test.qll:13:49:13:49 | b | Test.qll:7:1:9:1 | Floats | -| Test.qll:16:12:16:15 | this | Test.qll:15:1:19:1 | Base | -| Test.qll:16:12:16:15 | this | Test.qll:15:1:19:1 | Base.Base | -| Test.qll:16:12:16:15 | this | Test.qll:15:1:19:1 | Base.extends | +| Test.qll:13:49:13:49 | b | Test.qll:7:7:7:12 | Floats | +| Test.qll:16:12:16:15 | this | Test.qll:15:7:15:10 | Base | +| Test.qll:16:12:16:15 | this | Test.qll:15:7:15:10 | Base.Base | +| Test.qll:16:12:16:15 | this | Test.qll:15:7:15:10 | Base.extends | | Test.qll:16:19:16:23 | String | file://:0:0:0:0 | string | | Test.qll:18:15:18:20 | result | file://:0:0:0:0 | int | | Test.qll:18:24:18:24 | Integer | file://:0:0:0:0 | int | -| Test.qll:22:11:22:14 | this | Test.qll:21:1:27:1 | Sub | -| Test.qll:22:11:22:14 | this | Test.qll:21:1:27:1 | Sub.Sub | -| Test.qll:22:11:22:14 | this | Test.qll:21:1:27:1 | Sub.extends | +| Test.qll:22:11:22:14 | this | Test.qll:21:7:21:9 | Sub | +| Test.qll:22:11:22:14 | this | Test.qll:21:7:21:9 | Sub.Sub | +| Test.qll:22:11:22:14 | this | Test.qll:21:7:21:9 | Sub.extends | | Test.qll:22:18:22:22 | String | file://:0:0:0:0 | string | | Test.qll:24:15:24:20 | result | file://:0:0:0:0 | int | -| Test.qll:24:24:24:33 | Super | Test.qll:15:1:19:1 | Base | +| Test.qll:24:24:24:33 | Super | Test.qll:15:7:15:10 | Base | | Test.qll:24:24:24:39 | MemberCall | file://:0:0:0:0 | int | | Test.qll:26:16:26:21 | result | file://:0:0:0:0 | int | -| Test.qll:26:25:26:29 | Super | Test.qll:15:1:19:1 | Base | +| Test.qll:26:25:26:29 | Super | Test.qll:15:7:15:10 | Base | | Test.qll:26:25:26:35 | MemberCall | file://:0:0:0:0 | int | | Test.qll:30:32:30:37 | result | file://:0:0:0:0 | int | | Test.qll:30:41:30:41 | a | file://:0:0:0:0 | int | From 8f259d4bb6a774a088b7468493cfafd6660c41dc Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 30 May 2022 14:10:34 +0200 Subject: [PATCH 090/736] Python: port API graph doc comment --- python/ql/lib/semmle/python/ApiGraphs.qll | 77 ++++++++++++++++++++++- 1 file changed, 74 insertions(+), 3 deletions(-) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index fcb89e5f866..16fa18adea0 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -12,12 +12,83 @@ import semmle.python.dataflow.new.DataFlow private import semmle.python.internal.CachedStages /** - * Provides classes and predicates for working with APIs used in a database. + * Provides classes and predicates for working with the API boundary between the current + * codebase and external libraries. + * + * See `API::Node` for more in-depth documentation. */ module API { /** - * An abstract representation of a definition or use of an API component such as a function - * exported by a Python package, or its result. + * A node in the API graph, representing a value that has crossed the boundary between this + * codebase and an external library (or in general, any external codebase). + * + * ### Basic usage + * + * API graphs are typically used to identify "API calls", that is, calls to an external function + * whose implementation is not necessarily part of the current codebase. + * + * The most basic use of API graphs is typically as follows: + * 1. Start with `API::moduleImport` for the relevant library. + * 2. Follow up with a chain of accessors such as `getMember` describing how to get to the relevant API function. + * 3. Map the resulting API graph nodes to data-flow nodes, using `asSource` or `asSink`. + * + * For example, a simplified way to get arguments to `json.dumps` would be + * ```ql + * API::moduleImport("json").getMember("dumps").getParameter(0).asSink() + * ``` + * + * The most commonly used accessors are `getMember`, `getParameter`, and `getReturn`. + * + * ### API graph nodes + * + * There are two kinds of nodes in the API graphs, distinguished by who is "holding" the value: + * - **Use-nodes** represent values held by the current codebase, which came from an external library. + * (The current codebase is "using" a value that came from the library). + * - **Def-nodes** represent values held by the external library, which came from this codebase. + * (The current codebase "defines" the value seen by the library). + * + * API graph nodes are associated with data-flow nodes in the current codebase. + * (Since external libraries are not part of the database, there is no way to associate with concrete + * data-flow nodes from the external library). + * - **Use-nodes** are associated with data-flow nodes where a value enters the current codebase, + * such as the return value of a call to an external function. + * - **Def-nodes** are associated with data-flow nodes where a value leaves the current codebase, + * such as an argument passed in a call to an external function. + * + * + * ### Access paths and edge labels + * + * Nodes in the API graph are associated with a set of access paths, describing a series of operations + * that may be performed to obtain that value. + * + * For example, the access path `API::moduleImport("json").getMember("dumps")` represents the action of + * importing `json` and then accessing the member `dumps` on the resulting object. + * + * Each edge in the graph is labelled by such an "operation". For an edge `A->B`, the type of the `A` node + * determines who is performing the operation, and the type of the `B` node determines who ends up holding + * the result: + * - An edge starting from a use-node describes what the current codebase is doing to a value that + * came from a library. + * - An edge starting from a def-node describes what the external library might do to a value that + * came from the current codebase. + * - An edge ending in a use-node means the result ends up in the current codebase (at its associated data-flow node). + * - An edge ending in a def-node means the result ends up in external code (its associated data-flow node is + * the place where it was "last seen" in the current codebase before flowing out) + * + * Because the implementation of the external library is not visible, it is not known exactly what operations + * it will perform on values that flow there. Instead, the edges starting from a def-node are operations that would + * lead to an observable effect within the current codebase; without knowing for certain if the library will actually perform + * those operations. (When constructing these edges, we assume the library is somewhat well-behaved). + * + * For example, given this snippet: + * ```python + * import foo + * foo.bar(lambda x: doSomething(x)) + * ``` + * A callback is passed to the external function `foo.bar`. We can't know if `foo.bar` will actually invoke this callback. + * But _if_ the library should decide to invoke the callback, then a value will flow into the current codebase via the `x` parameter. + * For that reason, an edge is generated representing the argument-passing operation that might be performed by `foo.bar`. + * This edge is going from the def-node associated with the callback to the use-node associated with the parameter `x`. */ class Node extends Impl::TApiNode { /** From 60fde3c031e4b3c2f1c92bd91c23a459daa1bab4 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 13 Jun 2022 09:56:10 +0200 Subject: [PATCH 091/736] Python: Rename getARhs -> asSink --- python/ql/lib/semmle/python/ApiGraphs.qll | 10 +++++----- python/ql/lib/semmle/python/frameworks/Aiomysql.qll | 4 ++-- python/ql/lib/semmle/python/frameworks/Aiopg.qll | 4 ++-- python/ql/lib/semmle/python/frameworks/Asyncpg.qll | 4 ++-- python/ql/lib/semmle/python/frameworks/Requests.qll | 2 +- python/ql/lib/semmle/python/frameworks/Stdlib.qll | 12 ++++++------ .../semmle/python/frameworks/data/ModelsAsData.qll | 2 +- .../dataflow/PathInjectionCustomizations.qll | 2 +- .../security/dataflow/SqlInjectionCustomizations.qll | 2 +- python/ql/test/TestUtilities/VerifyApiGraphs.qll | 2 +- python/ql/test/experimental/meta/MaDTest.qll | 2 +- python/ql/test/library-tests/frameworks/data/test.ql | 4 ++-- 12 files changed, 25 insertions(+), 25 deletions(-) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index 16fa18adea0..9be1419f230 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -128,13 +128,13 @@ module API { * ``` * `x` is the right-hand side of a definition of the first parameter of `bar` from the `mypkg.foo` module. */ - DataFlow::Node getARhs() { Impl::rhs(this, result) } + DataFlow::Node asSink() { Impl::rhs(this, result) } /** * Gets a data-flow node that may interprocedurally flow to the right-hand side of a definition * of the API component represented by this node. */ - DataFlow::Node getAValueReachingRhs() { result = Impl::trackDefNode(this.getARhs()) } + DataFlow::Node getAValueReachingRhs() { result = Impl::trackDefNode(this.asSink()) } /** * Gets an immediate use of the API component represented by this node. @@ -390,14 +390,14 @@ module API { * Gets an API node where a RHS of the node is the `i`th argument to this call. */ pragma[noinline] - private Node getAParameterCandidate(int i) { result.getARhs() = this.getArg(i) } + private Node getAParameterCandidate(int i) { result.asSink() = this.getArg(i) } /** Gets the API node for a parameter of this invocation. */ Node getAParameter() { result = this.getParameter(_) } /** Gets the object that this method-call is being called on, if this is a method-call */ Node getSelfParameter() { - result.getARhs() = this.(DataFlow::MethodCallNode).getObject() and + result.asSink() = this.(DataFlow::MethodCallNode).getObject() and result = callee.getSelfParameter() } @@ -417,7 +417,7 @@ module API { pragma[noinline] private Node getAKeywordParameterCandidate(string name) { - result.getARhs() = this.getArgByName(name) + result.asSink() = this.getArgByName(name) } /** Gets the API node for the return value of this call. */ diff --git a/python/ql/lib/semmle/python/frameworks/Aiomysql.qll b/python/ql/lib/semmle/python/frameworks/Aiomysql.qll index fdcf21afc34..aa676e8fe82 100644 --- a/python/ql/lib/semmle/python/frameworks/Aiomysql.qll +++ b/python/ql/lib/semmle/python/frameworks/Aiomysql.qll @@ -53,7 +53,7 @@ private module Aiomysql { class CursorExecuteCall extends SqlConstruction::Range, API::CallNode { CursorExecuteCall() { this = cursor().getMember("execute").getACall() } - override DataFlow::Node getSql() { result = this.getParameter(0, "operation").getARhs() } + override DataFlow::Node getSql() { result = this.getParameter(0, "operation").asSink() } } /** @@ -94,7 +94,7 @@ private module Aiomysql { class SAConnectionExecuteCall extends SqlConstruction::Range, API::CallNode { SAConnectionExecuteCall() { this = saConnection().getMember("execute").getACall() } - override DataFlow::Node getSql() { result = this.getParameter(0, "query").getARhs() } + override DataFlow::Node getSql() { result = this.getParameter(0, "query").asSink() } } /** diff --git a/python/ql/lib/semmle/python/frameworks/Aiopg.qll b/python/ql/lib/semmle/python/frameworks/Aiopg.qll index afc553fe04b..27c754fb344 100644 --- a/python/ql/lib/semmle/python/frameworks/Aiopg.qll +++ b/python/ql/lib/semmle/python/frameworks/Aiopg.qll @@ -53,7 +53,7 @@ private module Aiopg { class CursorExecuteCall extends SqlConstruction::Range, API::CallNode { CursorExecuteCall() { this = cursor().getMember("execute").getACall() } - override DataFlow::Node getSql() { result = this.getParameter(0, "operation").getARhs() } + override DataFlow::Node getSql() { result = this.getParameter(0, "operation").asSink() } } /** @@ -90,7 +90,7 @@ private module Aiopg { class SAConnectionExecuteCall extends SqlConstruction::Range, API::CallNode { SAConnectionExecuteCall() { this = saConnection().getMember("execute").getACall() } - override DataFlow::Node getSql() { result = this.getParameter(0, "query").getARhs() } + override DataFlow::Node getSql() { result = this.getParameter(0, "query").asSink() } } /** diff --git a/python/ql/lib/semmle/python/frameworks/Asyncpg.qll b/python/ql/lib/semmle/python/frameworks/Asyncpg.qll index 81da12a015c..26361366022 100644 --- a/python/ql/lib/semmle/python/frameworks/Asyncpg.qll +++ b/python/ql/lib/semmle/python/frameworks/Asyncpg.qll @@ -61,7 +61,7 @@ private module Asyncpg { this = ModelOutput::getATypeNode("asyncpg", "Connection").getMember("cursor").getACall() } - override DataFlow::Node getSql() { result = this.getParameter(0, "query").getARhs() } + override DataFlow::Node getSql() { result = this.getParameter(0, "query").asSink() } } /** The creation of a `Cursor` executes the associated query. */ @@ -78,7 +78,7 @@ private module Asyncpg { prepareCall = ModelOutput::getATypeNode("asyncpg", "Connection").getMember("prepare").getACall() | - sql = prepareCall.getParameter(0, "query").getARhs() and + sql = prepareCall.getParameter(0, "query").asSink() and this = prepareCall .getReturn() diff --git a/python/ql/lib/semmle/python/frameworks/Requests.qll b/python/ql/lib/semmle/python/frameworks/Requests.qll index 6c9028d6135..05e08b45166 100644 --- a/python/ql/lib/semmle/python/frameworks/Requests.qll +++ b/python/ql/lib/semmle/python/frameworks/Requests.qll @@ -61,7 +61,7 @@ private module Requests { override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - disablingNode = this.getKeywordParameter("verify").getARhs() and + disablingNode = this.getKeywordParameter("verify").asSink() and argumentOrigin = this.getKeywordParameter("verify").getAValueReachingRhs() and // requests treats `None` as the default and all other "falsey" values as `False`. argumentOrigin.asExpr().(ImmutableLiteral).booleanValue() = false and diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index a273511979c..bb1b6073d16 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -2553,7 +2553,7 @@ private module StdlibPrivate { override DataFlow::Node getAPathArgument() { result = super.getAPathArgument() or - result = this.getParameter(0, "target").getARhs() + result = this.getParameter(0, "target").asSink() } } @@ -2570,7 +2570,7 @@ private module StdlibPrivate { override DataFlow::Node getAPathArgument() { result = super.getAPathArgument() or - result = this.getParameter(0, "target").getARhs() + result = this.getParameter(0, "target").asSink() } } @@ -2585,7 +2585,7 @@ private module StdlibPrivate { override DataFlow::Node getAPathArgument() { result = super.getAPathArgument() or - result = this.getParameter(0, "other_path").getARhs() + result = this.getParameter(0, "other_path").asSink() } } @@ -2670,7 +2670,7 @@ private module StdlibPrivate { override Cryptography::CryptographicAlgorithm getAlgorithm() { result.matchesName(hashName) } - override DataFlow::Node getAnInput() { result = this.getParameter(1, "data").getARhs() } + override DataFlow::Node getAnInput() { result = this.getParameter(1, "data").asSink() } override Cryptography::BlockMode getBlockMode() { none() } } @@ -3433,7 +3433,7 @@ private module StdlibPrivate { private DataFlow::Node saxParserWithFeatureExternalGesTurnedOn(DataFlow::TypeTracker t) { t.start() and exists(SaxParserSetFeatureCall call | - call.getFeatureArg().getARhs() = + call.getFeatureArg().asSink() = API::moduleImport("xml") .getMember("sax") .getMember("handler") @@ -3449,7 +3449,7 @@ private module StdlibPrivate { // take account of that we can set the feature to False, which makes the parser safe again not exists(SaxParserSetFeatureCall call | call.getObject() = result and - call.getFeatureArg().getARhs() = + call.getFeatureArg().asSink() = API::moduleImport("xml") .getMember("sax") .getMember("handler") diff --git a/python/ql/lib/semmle/python/frameworks/data/ModelsAsData.qll b/python/ql/lib/semmle/python/frameworks/data/ModelsAsData.qll index 2af91a69432..e80e9f7ad0b 100644 --- a/python/ql/lib/semmle/python/frameworks/data/ModelsAsData.qll +++ b/python/ql/lib/semmle/python/frameworks/data/ModelsAsData.qll @@ -34,7 +34,7 @@ private class RemoteFlowSourceFromCsv extends RemoteFlowSource { private predicate summaryStepNodes(DataFlow::Node pred, DataFlow::Node succ, string kind) { exists(API::Node predNode, API::Node succNode | Specific::summaryStep(predNode, succNode, kind) and - pred = predNode.getARhs() and + pred = predNode.asSink() and succ = succNode.getAnImmediateUse() ) } diff --git a/python/ql/lib/semmle/python/security/dataflow/PathInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/PathInjectionCustomizations.qll index 5a033664823..fe7053ef4d2 100644 --- a/python/ql/lib/semmle/python/security/dataflow/PathInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/PathInjectionCustomizations.qll @@ -62,7 +62,7 @@ module PathInjection { private import semmle.python.frameworks.data.ModelsAsData private class DataAsFileSink extends Sink { - DataAsFileSink() { this = ModelOutput::getASinkNode("path-injection").getARhs() } + DataAsFileSink() { this = ModelOutput::getASinkNode("path-injection").asSink() } } /** diff --git a/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll index cf21a5c0e94..ae011c00f11 100644 --- a/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/SqlInjectionCustomizations.qll @@ -65,6 +65,6 @@ module SqlInjection { /** A sink for sql-injection from model data. */ private class DataAsSqlSink extends Sink { - DataAsSqlSink() { this = ModelOutput::getASinkNode("sql-injection").getARhs() } + DataAsSqlSink() { this = ModelOutput::getASinkNode("sql-injection").asSink() } } } diff --git a/python/ql/test/TestUtilities/VerifyApiGraphs.qll b/python/ql/test/TestUtilities/VerifyApiGraphs.qll index 22d7ae365d4..03af20dbabe 100644 --- a/python/ql/test/TestUtilities/VerifyApiGraphs.qll +++ b/python/ql/test/TestUtilities/VerifyApiGraphs.qll @@ -21,7 +21,7 @@ import semmle.python.ApiGraphs private DataFlow::Node getNode(API::Node nd, string kind) { kind = "def" and - result = nd.getARhs() + result = nd.asSink() or kind = "use" and result = nd.getAUse() diff --git a/python/ql/test/experimental/meta/MaDTest.qll b/python/ql/test/experimental/meta/MaDTest.qll index 3d75ba0d2e7..92b8afef422 100644 --- a/python/ql/test/experimental/meta/MaDTest.qll +++ b/python/ql/test/experimental/meta/MaDTest.qll @@ -19,7 +19,7 @@ class MadSinkTest extends InlineExpectationsTest { override predicate hasActualResult(Location location, string element, string tag, string value) { exists(location.getFile().getRelativePath()) and exists(DataFlow::Node sink, string kind | - sink = ModelOutput::getASinkNode(kind).getARhs() and + sink = ModelOutput::getASinkNode(kind).asSink() and location = sink.getLocation() and element = sink.toString() and value = prettyNodeForInlineTest(sink) and diff --git a/python/ql/test/library-tests/frameworks/data/test.ql b/python/ql/test/library-tests/frameworks/data/test.ql index 86f960b1adf..c1bc85eaf49 100644 --- a/python/ql/test/library-tests/frameworks/data/test.ql +++ b/python/ql/test/library-tests/frameworks/data/test.ql @@ -91,7 +91,7 @@ class BasicTaintTracking extends TaintTracking::Configuration { } override predicate isSink(DataFlow::Node sink) { - sink = ModelOutput::getASinkNode("test-sink").getARhs() + sink = ModelOutput::getASinkNode("test-sink").asSink() } } @@ -100,7 +100,7 @@ query predicate taintFlow(DataFlow::Node source, DataFlow::Node sink) { } query predicate isSink(DataFlow::Node node, string kind) { - node = ModelOutput::getASinkNode(kind).getARhs() + node = ModelOutput::getASinkNode(kind).asSink() } query predicate isSource(DataFlow::Node node, string kind) { From 181a53bd03837c620feb63aa68145fa0e58bbc9f Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 13 Jun 2022 09:59:24 +0200 Subject: [PATCH 092/736] Python: Rename getAnImmediateUse -> asSource --- python/ql/lib/semmle/python/ApiGraphs.qll | 8 ++++---- python/ql/lib/semmle/python/filters/Tests.qll | 2 +- python/ql/lib/semmle/python/frameworks/Aiohttp.qll | 4 +--- .../ql/lib/semmle/python/frameworks/Aiomysql.qll | 4 ++-- python/ql/lib/semmle/python/frameworks/Aiopg.qll | 4 ++-- python/ql/lib/semmle/python/frameworks/Asyncpg.qll | 4 ++-- .../lib/semmle/python/frameworks/Cryptography.qll | 4 +--- python/ql/lib/semmle/python/frameworks/Django.qll | 14 ++++++-------- python/ql/lib/semmle/python/frameworks/FastApi.qll | 2 +- python/ql/lib/semmle/python/frameworks/Flask.qll | 14 ++++++-------- .../semmle/python/frameworks/FlaskSqlAlchemy.qll | 4 ++-- .../lib/semmle/python/frameworks/RestFramework.qll | 2 +- python/ql/lib/semmle/python/frameworks/Stdlib.qll | 12 ++++++------ python/ql/lib/semmle/python/frameworks/Tornado.qll | 2 +- python/ql/lib/semmle/python/frameworks/Twisted.qll | 2 +- .../semmle/python/frameworks/data/ModelsAsData.qll | 4 ++-- .../python/frameworks/internal/SubclassFinder.qll | 2 +- python/ql/lib/semmle/python/regex.qll | 2 +- .../dataflow/typetracking/moduleattr.ql | 2 +- .../experimental/dataflow/typetracking/tracked.ql | 6 +++--- python/ql/test/experimental/meta/MaDTest.qll | 2 +- .../ql/test/library-tests/frameworks/data/test.ql | 4 ++-- 22 files changed, 48 insertions(+), 56 deletions(-) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index 9be1419f230..61a42f812a7 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -147,12 +147,12 @@ module API { * to the `escape` member of `re`, neither `x` nor any node that `x` flows to is a reference to * this API component. */ - DataFlow::LocalSourceNode getAnImmediateUse() { Impl::use(this, result) } + DataFlow::LocalSourceNode asSource() { Impl::use(this, result) } /** * Gets a call to the function represented by this API component. */ - CallNode getACall() { result = this.getReturn().getAnImmediateUse() } + CallNode getACall() { result = this.getReturn().asSource() } /** * Gets a node representing member `m` of this API component. @@ -377,7 +377,7 @@ module API { class CallNode extends DataFlow::CallCfgNode { API::Node callee; - CallNode() { this = callee.getReturn().getAnImmediateUse() } + CallNode() { this = callee.getReturn().asSource() } /** Gets the API node for the `i`th parameter of this invocation. */ pragma[nomagic] @@ -423,7 +423,7 @@ module API { /** Gets the API node for the return value of this call. */ Node getReturn() { result = callee.getReturn() and - result.getAnImmediateUse() = this + result.asSource() = this } /** diff --git a/python/ql/lib/semmle/python/filters/Tests.qll b/python/ql/lib/semmle/python/filters/Tests.qll index 44ea2edebe4..20f6713a837 100644 --- a/python/ql/lib/semmle/python/filters/Tests.qll +++ b/python/ql/lib/semmle/python/filters/Tests.qll @@ -9,7 +9,7 @@ class UnitTestClass extends TestScope, Class { testCaseString.matches("%TestCase") and testCaseClass = any(API::Node mod).getMember(testCaseString) | - this.getParent() = testCaseClass.getASubclass*().getAnImmediateUse().asExpr() + this.getParent() = testCaseClass.getASubclass*().asSource().asExpr() ) } } diff --git a/python/ql/lib/semmle/python/frameworks/Aiohttp.qll b/python/ql/lib/semmle/python/frameworks/Aiohttp.qll index 359c8c14159..733845de30b 100644 --- a/python/ql/lib/semmle/python/frameworks/Aiohttp.qll +++ b/python/ql/lib/semmle/python/frameworks/Aiohttp.qll @@ -243,9 +243,7 @@ module AiohttpWebModel { /** A class that has a super-type which is an aiohttp.web View class. */ class AiohttpViewClassFromSuperClass extends AiohttpViewClass { - AiohttpViewClassFromSuperClass() { - this.getParent() = View::subclassRef().getAnImmediateUse().asExpr() - } + AiohttpViewClassFromSuperClass() { this.getParent() = View::subclassRef().asSource().asExpr() } } /** A class that is used in a route-setup, therefore being considered an aiohttp.web View class. */ diff --git a/python/ql/lib/semmle/python/frameworks/Aiomysql.qll b/python/ql/lib/semmle/python/frameworks/Aiomysql.qll index aa676e8fe82..3d43c13b91a 100644 --- a/python/ql/lib/semmle/python/frameworks/Aiomysql.qll +++ b/python/ql/lib/semmle/python/frameworks/Aiomysql.qll @@ -63,7 +63,7 @@ private module Aiomysql { class AwaitedCursorExecuteCall extends SqlExecution::Range { CursorExecuteCall executeCall; - AwaitedCursorExecuteCall() { this = executeCall.getReturn().getAwaited().getAnImmediateUse() } + AwaitedCursorExecuteCall() { this = executeCall.getReturn().getAwaited().asSource() } override DataFlow::Node getSql() { result = executeCall.getSql() } } @@ -104,7 +104,7 @@ private module Aiomysql { class AwaitedSAConnectionExecuteCall extends SqlExecution::Range { SAConnectionExecuteCall execute; - AwaitedSAConnectionExecuteCall() { this = execute.getReturn().getAwaited().getAnImmediateUse() } + AwaitedSAConnectionExecuteCall() { this = execute.getReturn().getAwaited().asSource() } override DataFlow::Node getSql() { result = execute.getSql() } } diff --git a/python/ql/lib/semmle/python/frameworks/Aiopg.qll b/python/ql/lib/semmle/python/frameworks/Aiopg.qll index 27c754fb344..053d59df51a 100644 --- a/python/ql/lib/semmle/python/frameworks/Aiopg.qll +++ b/python/ql/lib/semmle/python/frameworks/Aiopg.qll @@ -63,7 +63,7 @@ private module Aiopg { class AwaitedCursorExecuteCall extends SqlExecution::Range { CursorExecuteCall execute; - AwaitedCursorExecuteCall() { this = execute.getReturn().getAwaited().getAnImmediateUse() } + AwaitedCursorExecuteCall() { this = execute.getReturn().getAwaited().asSource() } override DataFlow::Node getSql() { result = execute.getSql() } } @@ -100,7 +100,7 @@ private module Aiopg { class AwaitedSAConnectionExecuteCall extends SqlExecution::Range { SAConnectionExecuteCall excute; - AwaitedSAConnectionExecuteCall() { this = excute.getReturn().getAwaited().getAnImmediateUse() } + AwaitedSAConnectionExecuteCall() { this = excute.getReturn().getAwaited().asSource() } override DataFlow::Node getSql() { result = excute.getSql() } } diff --git a/python/ql/lib/semmle/python/frameworks/Asyncpg.qll b/python/ql/lib/semmle/python/frameworks/Asyncpg.qll index 26361366022..ca28dca550f 100644 --- a/python/ql/lib/semmle/python/frameworks/Asyncpg.qll +++ b/python/ql/lib/semmle/python/frameworks/Asyncpg.qll @@ -71,7 +71,7 @@ private module Asyncpg { CursorCreation() { exists(CursorConstruction c | sql = c.getSql() and - this = c.getReturn().getAwaited().getAnImmediateUse() + this = c.getReturn().getAwaited().asSource() ) or exists(API::CallNode prepareCall | @@ -86,7 +86,7 @@ private module Asyncpg { .getMember("cursor") .getReturn() .getAwaited() - .getAnImmediateUse() + .asSource() ) } diff --git a/python/ql/lib/semmle/python/frameworks/Cryptography.qll b/python/ql/lib/semmle/python/frameworks/Cryptography.qll index 954def9e7da..1520f17e883 100644 --- a/python/ql/lib/semmle/python/frameworks/Cryptography.qll +++ b/python/ql/lib/semmle/python/frameworks/Cryptography.qll @@ -144,9 +144,7 @@ private module CryptographyModel { DataFlow::Node getCurveArg() { result in [this.getArg(0), this.getArgByName("curve")] } override int getKeySizeWithOrigin(DataFlow::Node origin) { - exists(API::Node n | - n = Ecc::predefinedCurveClass(result) and origin = n.getAnImmediateUse() - | + exists(API::Node n | n = Ecc::predefinedCurveClass(result) and origin = n.asSource() | this.getCurveArg() = n.getAUse() or this.getCurveArg() = n.getReturn().getAUse() diff --git a/python/ql/lib/semmle/python/frameworks/Django.qll b/python/ql/lib/semmle/python/frameworks/Django.qll index a22957d1fe0..a955de7a01a 100644 --- a/python/ql/lib/semmle/python/frameworks/Django.qll +++ b/python/ql/lib/semmle/python/frameworks/Django.qll @@ -562,7 +562,7 @@ module PrivateDjango { /** A `django.db.connection` is a PEP249 compliant DB connection. */ class DjangoDbConnection extends PEP249::Connection::InstanceSource { - DjangoDbConnection() { this = connection().getAnImmediateUse() } + DjangoDbConnection() { this = connection().asSource() } } // ------------------------------------------------------------------------- @@ -869,7 +869,7 @@ module PrivateDjango { /** Gets the (AST) class of the Django model class `modelClass`. */ Class getModelClassClass(API::Node modelClass) { - result.getParent() = modelClass.getAnImmediateUse().asExpr() and + result.getParent() = modelClass.asSource().asExpr() and modelClass = Model::subclassRef() } @@ -2202,9 +2202,7 @@ module PrivateDjango { * thereby handling user input. */ class DjangoFormClass extends Class, SelfRefMixin { - DjangoFormClass() { - this.getParent() = Django::Forms::Form::subclassRef().getAnImmediateUse().asExpr() - } + DjangoFormClass() { this.getParent() = Django::Forms::Form::subclassRef().asSource().asExpr() } } /** @@ -2237,7 +2235,7 @@ module PrivateDjango { */ class DjangoFormFieldClass extends Class { DjangoFormFieldClass() { - this.getParent() = Django::Forms::Field::subclassRef().getAnImmediateUse().asExpr() + this.getParent() = Django::Forms::Field::subclassRef().asSource().asExpr() } } @@ -2340,7 +2338,7 @@ module PrivateDjango { */ class DjangoViewClassFromSuperClass extends DjangoViewClass { DjangoViewClassFromSuperClass() { - this.getParent() = Django::Views::View::subclassRef().getAnImmediateUse().asExpr() + this.getParent() = Django::Views::View::subclassRef().asSource().asExpr() } } @@ -2743,7 +2741,7 @@ module PrivateDjango { .getMember("utils") .getMember("log") .getMember("request_logger") - .getAnImmediateUse() + .asSource() } } diff --git a/python/ql/lib/semmle/python/frameworks/FastApi.qll b/python/ql/lib/semmle/python/frameworks/FastApi.qll index 1c48562eb70..3a683108f4c 100644 --- a/python/ql/lib/semmle/python/frameworks/FastApi.qll +++ b/python/ql/lib/semmle/python/frameworks/FastApi.qll @@ -166,7 +166,7 @@ private module FastApi { exists(Class cls, API::Node base | base = getModeledResponseClass(_).getASubclass*() and cls.getABase() = base.getAUse().asExpr() and - responseClass.getAnImmediateUse().asExpr() = cls.getParent() + responseClass.asSource().asExpr() = cls.getParent() | exists(Assign assign | assign = cls.getAStmt() | assign.getATarget().(Name).getId() = "media_type" and diff --git a/python/ql/lib/semmle/python/frameworks/Flask.qll b/python/ql/lib/semmle/python/frameworks/Flask.qll index 02331ed316e..8df9295c285 100644 --- a/python/ql/lib/semmle/python/frameworks/Flask.qll +++ b/python/ql/lib/semmle/python/frameworks/Flask.qll @@ -195,7 +195,7 @@ module Flask { FlaskViewClass() { api_node = Views::View::subclassRef() and - this.getParent() = api_node.getAnImmediateUse().asExpr() + this.getParent() = api_node.asSource().asExpr() } /** Gets a function that could handle incoming requests, if any. */ @@ -220,7 +220,7 @@ module Flask { class FlaskMethodViewClass extends FlaskViewClass { FlaskMethodViewClass() { api_node = Views::MethodView::subclassRef() and - this.getParent() = api_node.getAnImmediateUse().asExpr() + this.getParent() = api_node.asSource().asExpr() } override Function getARequestHandler() { @@ -404,7 +404,7 @@ module Flask { private class RequestAttrMultiDict extends Werkzeug::MultiDict::InstanceSource { RequestAttrMultiDict() { - this = request().getMember(["args", "values", "form", "files"]).getAnImmediateUse() + this = request().getMember(["args", "values", "form", "files"]).asSource() } } @@ -427,14 +427,12 @@ module Flask { /** An `Headers` instance that originates from a flask request. */ private class FlaskRequestHeadersInstances extends Werkzeug::Headers::InstanceSource { - FlaskRequestHeadersInstances() { this = request().getMember("headers").getAnImmediateUse() } + FlaskRequestHeadersInstances() { this = request().getMember("headers").asSource() } } /** An `Authorization` instance that originates from a flask request. */ private class FlaskRequestAuthorizationInstances extends Werkzeug::Authorization::InstanceSource { - FlaskRequestAuthorizationInstances() { - this = request().getMember("authorization").getAnImmediateUse() - } + FlaskRequestAuthorizationInstances() { this = request().getMember("authorization").asSource() } } // --------------------------------------------------------------------------- @@ -574,6 +572,6 @@ module Flask { * - https://flask.palletsprojects.com/en/2.0.x/logging/ */ private class FlaskLogger extends Stdlib::Logger::InstanceSource { - FlaskLogger() { this = FlaskApp::instance().getMember("logger").getAnImmediateUse() } + FlaskLogger() { this = FlaskApp::instance().getMember("logger").asSource() } } } diff --git a/python/ql/lib/semmle/python/frameworks/FlaskSqlAlchemy.qll b/python/ql/lib/semmle/python/frameworks/FlaskSqlAlchemy.qll index 6269baee9d5..535e32426b2 100644 --- a/python/ql/lib/semmle/python/frameworks/FlaskSqlAlchemy.qll +++ b/python/ql/lib/semmle/python/frameworks/FlaskSqlAlchemy.qll @@ -35,7 +35,7 @@ private module FlaskSqlAlchemy { /** Access on a DB resulting in an Engine */ private class DbEngine extends SqlAlchemy::Engine::InstanceSource { DbEngine() { - this = dbInstance().getMember("engine").getAnImmediateUse() + this = dbInstance().getMember("engine").asSource() or this = dbInstance().getMember("get_engine").getACall() } @@ -44,7 +44,7 @@ private module FlaskSqlAlchemy { /** Access on a DB resulting in a Session */ private class DbSession extends SqlAlchemy::Session::InstanceSource { DbSession() { - this = dbInstance().getMember("session").getAnImmediateUse() + this = dbInstance().getMember("session").asSource() or this = dbInstance().getMember("create_session").getReturn().getACall() or diff --git a/python/ql/lib/semmle/python/frameworks/RestFramework.qll b/python/ql/lib/semmle/python/frameworks/RestFramework.qll index 61f031576de..c8f73f909c2 100644 --- a/python/ql/lib/semmle/python/frameworks/RestFramework.qll +++ b/python/ql/lib/semmle/python/frameworks/RestFramework.qll @@ -115,7 +115,7 @@ private module RestFramework { */ class RestFrameworkApiViewClass extends PrivateDjango::DjangoViewClassFromSuperClass { RestFrameworkApiViewClass() { - this.getParent() = any(ModeledApiViewClasses c).getASubclass*().getAnImmediateUse().asExpr() + this.getParent() = any(ModeledApiViewClasses c).getASubclass*().asSource().asExpr() } override Function getARequestHandler() { diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index bb1b6073d16..b0629d94b2c 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -274,7 +274,7 @@ module Stdlib { ClassInstantiation() { this = subclassRef().getACall() or - this = API::moduleImport("logging").getMember("root").getAnImmediateUse() + this = API::moduleImport("logging").getMember("root").asSource() or this = API::moduleImport("logging").getMember("getLogger").getACall() } @@ -1767,11 +1767,11 @@ private module StdlibPrivate { or nodeFrom.asCfgNode() = nodeTo.asCfgNode().(CallNode).getFunction() and ( - nodeFrom = getvalueRef().getAUse() and nodeTo = getvalueResult().getAnImmediateUse() + nodeFrom = getvalueRef().getAUse() and nodeTo = getvalueResult().asSource() or - nodeFrom = getfirstRef().getAUse() and nodeTo = getfirstResult().getAnImmediateUse() + nodeFrom = getfirstRef().getAUse() and nodeTo = getfirstResult().asSource() or - nodeFrom = getlistRef().getAUse() and nodeTo = getlistResult().getAnImmediateUse() + nodeFrom = getlistRef().getAUse() and nodeTo = getlistResult().asSource() ) or // Indexing @@ -1939,7 +1939,7 @@ private module StdlibPrivate { /** A HttpRequestHandler class definition (most likely in project code). */ class HttpRequestHandlerClassDef extends Class { - HttpRequestHandlerClassDef() { this.getParent() = subclassRef().getAnImmediateUse().asExpr() } + HttpRequestHandlerClassDef() { this.getParent() = subclassRef().asSource().asExpr() } } /** DEPRECATED: Alias for HttpRequestHandlerClassDef */ @@ -2037,7 +2037,7 @@ private module StdlibPrivate { .getMember("simple_server") .getMember("WSGIServer") .getASubclass*() - .getAnImmediateUse() + .asSource() .asExpr() } } diff --git a/python/ql/lib/semmle/python/frameworks/Tornado.qll b/python/ql/lib/semmle/python/frameworks/Tornado.qll index 9c604afc1ec..d66da17aa5d 100644 --- a/python/ql/lib/semmle/python/frameworks/Tornado.qll +++ b/python/ql/lib/semmle/python/frameworks/Tornado.qll @@ -92,7 +92,7 @@ private module Tornado { /** A RequestHandler class (most likely in project code). */ class RequestHandlerClass extends Class { - RequestHandlerClass() { this.getParent() = subclassRef().getAnImmediateUse().asExpr() } + RequestHandlerClass() { this.getParent() = subclassRef().asSource().asExpr() } /** Gets a function that could handle incoming requests, if any. */ Function getARequestHandler() { diff --git a/python/ql/lib/semmle/python/frameworks/Twisted.qll b/python/ql/lib/semmle/python/frameworks/Twisted.qll index 513f5c942d0..c316321555e 100644 --- a/python/ql/lib/semmle/python/frameworks/Twisted.qll +++ b/python/ql/lib/semmle/python/frameworks/Twisted.qll @@ -33,7 +33,7 @@ private module Twisted { .getMember("resource") .getMember("Resource") .getASubclass*() - .getAnImmediateUse() + .asSource() .asExpr() } diff --git a/python/ql/lib/semmle/python/frameworks/data/ModelsAsData.qll b/python/ql/lib/semmle/python/frameworks/data/ModelsAsData.qll index e80e9f7ad0b..f8d7ae75ad0 100644 --- a/python/ql/lib/semmle/python/frameworks/data/ModelsAsData.qll +++ b/python/ql/lib/semmle/python/frameworks/data/ModelsAsData.qll @@ -23,7 +23,7 @@ private import semmle.python.dataflow.new.TaintTracking * A remote flow source originating from a CSV source row. */ private class RemoteFlowSourceFromCsv extends RemoteFlowSource { - RemoteFlowSourceFromCsv() { this = ModelOutput::getASourceNode("remote").getAnImmediateUse() } + RemoteFlowSourceFromCsv() { this = ModelOutput::getASourceNode("remote").asSource() } override string getSourceType() { result = "Remote flow (from model)" } } @@ -35,7 +35,7 @@ private predicate summaryStepNodes(DataFlow::Node pred, DataFlow::Node succ, str exists(API::Node predNode, API::Node succNode | Specific::summaryStep(predNode, succNode, kind) and pred = predNode.asSink() and - succ = succNode.getAnImmediateUse() + succ = succNode.asSource() ) } diff --git a/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll b/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll index 8bef349f417..100d8165b51 100644 --- a/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll +++ b/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll @@ -204,7 +204,7 @@ private module NotExposed { FindSubclassesSpec spec, string newSubclassQualified, ClassExpr classExpr, Module mod, Location loc ) { - classExpr = newOrExistingModeling(spec).getASubclass*().getAnImmediateUse().asExpr() and + classExpr = newOrExistingModeling(spec).getASubclass*().asSource().asExpr() and classExpr.getScope() = mod and newSubclassQualified = mod.getName() + "." + classExpr.getName() and loc = classExpr.getLocation() and diff --git a/python/ql/lib/semmle/python/regex.qll b/python/ql/lib/semmle/python/regex.qll index b72adba1716..5431d5df320 100644 --- a/python/ql/lib/semmle/python/regex.qll +++ b/python/ql/lib/semmle/python/regex.qll @@ -75,7 +75,7 @@ private string canonical_name(API::Node flag) { */ private DataFlow::TypeTrackingNode re_flag_tracker(string flag_name, DataFlow::TypeTracker t) { t.start() and - exists(API::Node flag | flag_name = canonical_name(flag) and result = flag.getAnImmediateUse()) + exists(API::Node flag | flag_name = canonical_name(flag) and result = flag.asSource()) or exists(BinaryExprNode binop, DataFlow::Node operand | operand.getALocalSource() = re_flag_tracker(flag_name, t.continue()) and diff --git a/python/ql/test/experimental/dataflow/typetracking/moduleattr.ql b/python/ql/test/experimental/dataflow/typetracking/moduleattr.ql index 91375904043..74f5f259319 100644 --- a/python/ql/test/experimental/dataflow/typetracking/moduleattr.ql +++ b/python/ql/test/experimental/dataflow/typetracking/moduleattr.ql @@ -5,7 +5,7 @@ import semmle.python.ApiGraphs private DataFlow::TypeTrackingNode module_tracker(TypeTracker t) { t.start() and - result = API::moduleImport("module").getAnImmediateUse() + result = API::moduleImport("module").asSource() or exists(TypeTracker t2 | result = module_tracker(t2).track(t2, t)) } diff --git a/python/ql/test/experimental/dataflow/typetracking/tracked.ql b/python/ql/test/experimental/dataflow/typetracking/tracked.ql index 142e5b11639..c35775d0046 100644 --- a/python/ql/test/experimental/dataflow/typetracking/tracked.ql +++ b/python/ql/test/experimental/dataflow/typetracking/tracked.ql @@ -120,7 +120,7 @@ class TrackedSelfTest extends InlineExpectationsTest { /** Gets a reference to `foo` (fictive module). */ private DataFlow::TypeTrackingNode foo(DataFlow::TypeTracker t) { t.start() and - result = API::moduleImport("foo").getAnImmediateUse() + result = API::moduleImport("foo").asSource() or exists(DataFlow::TypeTracker t2 | result = foo(t2).track(t2, t)) } @@ -131,7 +131,7 @@ DataFlow::Node foo() { foo(DataFlow::TypeTracker::end()).flowsTo(result) } /** Gets a reference to `foo.bar` (fictive module). */ private DataFlow::TypeTrackingNode foo_bar(DataFlow::TypeTracker t) { t.start() and - result = API::moduleImport("foo").getMember("bar").getAnImmediateUse() + result = API::moduleImport("foo").getMember("bar").asSource() or t.startInAttr("bar") and result = foo() @@ -145,7 +145,7 @@ DataFlow::Node foo_bar() { foo_bar(DataFlow::TypeTracker::end()).flowsTo(result) /** Gets a reference to `foo.bar.baz` (fictive attribute on `foo.bar` module). */ private DataFlow::TypeTrackingNode foo_bar_baz(DataFlow::TypeTracker t) { t.start() and - result = API::moduleImport("foo").getMember("bar").getMember("baz").getAnImmediateUse() + result = API::moduleImport("foo").getMember("bar").getMember("baz").asSource() or t.startInAttr("baz") and result = foo_bar() diff --git a/python/ql/test/experimental/meta/MaDTest.qll b/python/ql/test/experimental/meta/MaDTest.qll index 92b8afef422..a4b5877f5ea 100644 --- a/python/ql/test/experimental/meta/MaDTest.qll +++ b/python/ql/test/experimental/meta/MaDTest.qll @@ -38,7 +38,7 @@ class MadSourceTest extends InlineExpectationsTest { override predicate hasActualResult(Location location, string element, string tag, string value) { exists(location.getFile().getRelativePath()) and exists(DataFlow::Node source, string kind | - source = ModelOutput::getASourceNode(kind).getAnImmediateUse() and + source = ModelOutput::getASourceNode(kind).asSource() and location = source.getLocation() and element = source.toString() and value = prettyNodeForInlineTest(source) and diff --git a/python/ql/test/library-tests/frameworks/data/test.ql b/python/ql/test/library-tests/frameworks/data/test.ql index c1bc85eaf49..cdd1782052a 100644 --- a/python/ql/test/library-tests/frameworks/data/test.ql +++ b/python/ql/test/library-tests/frameworks/data/test.ql @@ -87,7 +87,7 @@ class BasicTaintTracking extends TaintTracking::Configuration { BasicTaintTracking() { this = "BasicTaintTracking" } override predicate isSource(DataFlow::Node source) { - source = ModelOutput::getASourceNode("test-source").getAnImmediateUse() + source = ModelOutput::getASourceNode("test-source").asSource() } override predicate isSink(DataFlow::Node sink) { @@ -104,7 +104,7 @@ query predicate isSink(DataFlow::Node node, string kind) { } query predicate isSource(DataFlow::Node node, string kind) { - node = ModelOutput::getASourceNode(kind).getAnImmediateUse() + node = ModelOutput::getASourceNode(kind).asSource() } class SyntaxErrorTest extends ModelInput::SinkModelCsv { From b096f9ec72064fd68a2f850b4d67737d5bc69145 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 13 Jun 2022 10:02:14 +0200 Subject: [PATCH 093/736] Python: Rename getAUse -> getAValueReachableFromSource --- python/ql/lib/semmle/python/ApiGraphs.qll | 2 +- .../lib/semmle/python/frameworks/Aiohttp.qll | 3 +- .../semmle/python/frameworks/Cryptodome.qll | 2 +- .../semmle/python/frameworks/Cryptography.qll | 12 +++---- .../lib/semmle/python/frameworks/Django.qll | 2 +- .../lib/semmle/python/frameworks/Fabric.qll | 2 +- .../lib/semmle/python/frameworks/FastApi.qll | 16 ++++++---- .../ql/lib/semmle/python/frameworks/Flask.qll | 11 ++++--- .../lib/semmle/python/frameworks/Invoke.qll | 3 +- .../semmle/python/frameworks/RuamelYaml.qll | 2 +- .../lib/semmle/python/frameworks/Stdlib.qll | 32 +++++++++++-------- .../lib/semmle/python/frameworks/Werkzeug.qll | 6 ++-- .../ql/lib/semmle/python/frameworks/Yaml.qll | 2 +- .../python/frameworks/internal/PEP249Impl.qll | 4 ++- .../frameworks/internal/SubclassFinder.qll | 4 +-- .../semmle/python/internal/CachedStages.qll | 2 +- .../CWE-295/MissingHostKeyValidation.ql | 4 +-- python/ql/src/Security/CWE-327/PyOpenSSL.qll | 10 +++--- python/ql/src/Security/CWE-327/Ssl.qll | 25 ++++++++++++--- .../semmle/python/frameworks/Django.qll | 6 ++-- .../semmle/python/frameworks/Flask.qll | 6 +++- .../semmle/python/frameworks/LDAP.qll | 4 ++- .../semmle/python/frameworks/NoSQL.qll | 4 +-- .../ql/test/TestUtilities/VerifyApiGraphs.qll | 2 +- .../test/library-tests/ApiGraphs/py2/use.ql | 2 +- 25 files changed, 103 insertions(+), 65 deletions(-) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index 61a42f812a7..538d4fe8818 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -106,7 +106,7 @@ module API { * ``` * both `obj.foo` and `x` are uses of the `foo` member from `obj`. */ - DataFlow::Node getAUse() { + DataFlow::Node getAValueReachableFromSource() { exists(DataFlow::LocalSourceNode src | Impl::use(this, src) | Impl::trackUseNode(src).flowsTo(result) ) diff --git a/python/ql/lib/semmle/python/frameworks/Aiohttp.qll b/python/ql/lib/semmle/python/frameworks/Aiohttp.qll index 733845de30b..b78feb217c6 100644 --- a/python/ql/lib/semmle/python/frameworks/Aiohttp.qll +++ b/python/ql/lib/semmle/python/frameworks/Aiohttp.qll @@ -626,7 +626,8 @@ module AiohttpWebModel { // and just go with the LHS this.asCfgNode() = subscript | - subscript.getObject() = aiohttpResponseInstance().getMember("cookies").getAUse().asCfgNode() and + subscript.getObject() = + aiohttpResponseInstance().getMember("cookies").getAValueReachableFromSource().asCfgNode() and value.asCfgNode() = subscript.(DefinitionNode).getValue() and index.asCfgNode() = subscript.getIndex() ) diff --git a/python/ql/lib/semmle/python/frameworks/Cryptodome.qll b/python/ql/lib/semmle/python/frameworks/Cryptodome.qll index 8d1e47d0ff3..0c3e8968c23 100644 --- a/python/ql/lib/semmle/python/frameworks/Cryptodome.qll +++ b/python/ql/lib/semmle/python/frameworks/Cryptodome.qll @@ -164,7 +164,7 @@ private module CryptodomeModel { .getMember("Cipher") .getMember(cipherName) .getMember(modeName) - .getAUse() + .getAValueReachableFromSource() | result = modeName.splitAt("_", 1) ) diff --git a/python/ql/lib/semmle/python/frameworks/Cryptography.qll b/python/ql/lib/semmle/python/frameworks/Cryptography.qll index 1520f17e883..021da3ef0a0 100644 --- a/python/ql/lib/semmle/python/frameworks/Cryptography.qll +++ b/python/ql/lib/semmle/python/frameworks/Cryptography.qll @@ -145,9 +145,9 @@ private module CryptographyModel { override int getKeySizeWithOrigin(DataFlow::Node origin) { exists(API::Node n | n = Ecc::predefinedCurveClass(result) and origin = n.asSource() | - this.getCurveArg() = n.getAUse() + this.getCurveArg() = n.getAValueReachableFromSource() or - this.getCurveArg() = n.getReturn().getAUse() + this.getCurveArg() = n.getReturn().getAValueReachableFromSource() ) } @@ -189,12 +189,12 @@ private module CryptographyModel { .getMember("ciphers") .getMember("Cipher") .getACall() and - algorithmClassRef(algorithmName).getReturn().getAUse() in [ + algorithmClassRef(algorithmName).getReturn().getAValueReachableFromSource() in [ call.getArg(0), call.getArgByName("algorithm") ] and exists(DataFlow::Node modeArg | modeArg in [call.getArg(1), call.getArgByName("mode")] | - if modeArg = modeClassRef(_).getReturn().getAUse() - then modeArg = modeClassRef(modeName).getReturn().getAUse() + if modeArg = modeClassRef(_).getReturn().getAValueReachableFromSource() + then modeArg = modeClassRef(modeName).getReturn().getAValueReachableFromSource() else modeName = "" ) ) @@ -252,7 +252,7 @@ private module CryptographyModel { .getMember("hashes") .getMember("Hash") .getACall() and - algorithmClassRef(algorithmName).getReturn().getAUse() in [ + algorithmClassRef(algorithmName).getReturn().getAValueReachableFromSource() in [ call.getArg(0), call.getArgByName("algorithm") ] ) diff --git a/python/ql/lib/semmle/python/frameworks/Django.qll b/python/ql/lib/semmle/python/frameworks/Django.qll index a955de7a01a..a430513cb62 100644 --- a/python/ql/lib/semmle/python/frameworks/Django.qll +++ b/python/ql/lib/semmle/python/frameworks/Django.qll @@ -2799,7 +2799,7 @@ module PrivateDjango { .getMember("decorators") .getMember("csrf") .getMember(decoratorName) - .getAUse() and + .getAValueReachableFromSource() and this.asExpr() = function.getADecorator() } diff --git a/python/ql/lib/semmle/python/frameworks/Fabric.qll b/python/ql/lib/semmle/python/frameworks/Fabric.qll index bb1500965f4..5fd9d2afe18 100644 --- a/python/ql/lib/semmle/python/frameworks/Fabric.qll +++ b/python/ql/lib/semmle/python/frameworks/Fabric.qll @@ -179,7 +179,7 @@ private module FabricV2 { DataFlow::ParameterNode { FabricTaskFirstParamConnectionInstance() { exists(Function func | - func.getADecorator() = Fabric::Tasks::task().getAUse().asExpr() and + func.getADecorator() = Fabric::Tasks::task().getAValueReachableFromSource().asExpr() and this.getParameter() = func.getArg(0) ) } diff --git a/python/ql/lib/semmle/python/frameworks/FastApi.qll b/python/ql/lib/semmle/python/frameworks/FastApi.qll index 3a683108f4c..f042dafea59 100644 --- a/python/ql/lib/semmle/python/frameworks/FastApi.qll +++ b/python/ql/lib/semmle/python/frameworks/FastApi.qll @@ -90,7 +90,8 @@ private module FastApi { private class PydanticModelRequestHandlerParam extends Pydantic::BaseModel::InstanceSource, DataFlow::ParameterNode { PydanticModelRequestHandlerParam() { - this.getParameter().getAnnotation() = Pydantic::BaseModel::subclassRef().getAUse().asExpr() and + this.getParameter().getAnnotation() = + Pydantic::BaseModel::subclassRef().getAValueReachableFromSource().asExpr() and any(FastApiRouteSetup rs).getARequestHandler().getArgByName(_) = this.getParameter() } } @@ -104,7 +105,8 @@ private module FastApi { private class WebSocketRequestHandlerParam extends Starlette::WebSocket::InstanceSource, DataFlow::ParameterNode { WebSocketRequestHandlerParam() { - this.getParameter().getAnnotation() = Starlette::WebSocket::classRef().getAUse().asExpr() and + this.getParameter().getAnnotation() = + Starlette::WebSocket::classRef().getAValueReachableFromSource().asExpr() and any(FastApiRouteSetup rs).getARequestHandler().getArgByName(_) = this.getParameter() } } @@ -165,7 +167,7 @@ private module FastApi { // user-defined subclasses exists(Class cls, API::Node base | base = getModeledResponseClass(_).getASubclass*() and - cls.getABase() = base.getAUse().asExpr() and + cls.getABase() = base.getAValueReachableFromSource().asExpr() and responseClass.asSource().asExpr() = cls.getParent() | exists(Assign assign | assign = cls.getAStmt() | @@ -257,7 +259,7 @@ private module FastApi { override string getMimetypeDefault() { exists(API::Node responseClass | - responseClass.getAUse() = routeSetup.getResponseClassArg() and + responseClass.getAValueReachableFromSource() = routeSetup.getResponseClassArg() and result = getDefaultMimeType(responseClass) ) or @@ -274,7 +276,7 @@ private module FastApi { FileSystemAccess::Range { FastApiRequestHandlerFileResponseReturn() { exists(API::Node responseClass | - responseClass.getAUse() = routeSetup.getResponseClassArg() and + responseClass.getAValueReachableFromSource() = routeSetup.getResponseClassArg() and responseClass = getModeledResponseClass("FileResponse").getASubclass*() ) } @@ -292,7 +294,7 @@ private module FastApi { HTTP::Server::HttpRedirectResponse::Range { FastApiRequestHandlerRedirectReturn() { exists(API::Node responseClass | - responseClass.getAUse() = routeSetup.getResponseClassArg() and + responseClass.getAValueReachableFromSource() = routeSetup.getResponseClassArg() and responseClass = getModeledResponseClass("RedirectResponse").getASubclass*() ) } @@ -311,7 +313,7 @@ private module FastApi { class RequestHandlerParam extends InstanceSource, DataFlow::ParameterNode { RequestHandlerParam() { this.getParameter().getAnnotation() = - getModeledResponseClass(_).getASubclass*().getAUse().asExpr() and + getModeledResponseClass(_).getASubclass*().getAValueReachableFromSource().asExpr() and any(FastApiRouteSetup rs).getARequestHandler().getArgByName(_) = this.getParameter() } } diff --git a/python/ql/lib/semmle/python/frameworks/Flask.qll b/python/ql/lib/semmle/python/frameworks/Flask.qll index 8df9295c285..8ee93fcec52 100644 --- a/python/ql/lib/semmle/python/frameworks/Flask.qll +++ b/python/ql/lib/semmle/python/frameworks/Flask.qll @@ -305,7 +305,7 @@ module Flask { ) or exists(FlaskViewClass vc | - this.getViewArg() = vc.asViewResult().getAUse() and + this.getViewArg() = vc.asViewResult().getAValueReachableFromSource() and result = vc.getARequestHandler() ) } @@ -339,7 +339,7 @@ module Flask { */ private class FlaskRequestSource extends RemoteFlowSource::Range { FlaskRequestSource() { - this = request().getAUse() and + this = request().getAValueReachableFromSource() and not any(Import imp).contains(this.asExpr()) and not exists(ControlFlowNode def | this.asVar().getSourceVariable().hasDefiningNode(def) | any(Import imp).contains(def.getNode()) @@ -357,7 +357,7 @@ module Flask { private class InstanceTaintSteps extends InstanceTaintStepsHelper { InstanceTaintSteps() { this = "flask.Request" } - override DataFlow::Node getInstance() { result = request().getAUse() } + override DataFlow::Node getInstance() { result = request().getAValueReachableFromSource() } override string getAttributeName() { result in [ @@ -415,12 +415,13 @@ module Flask { // be able to do something more structured for providing modeling of the members // of a container-object. exists(API::Node files | files = request().getMember("files") | - this.asCfgNode().(SubscriptNode).getObject() = files.getAUse().asCfgNode() + this.asCfgNode().(SubscriptNode).getObject() = + files.getAValueReachableFromSource().asCfgNode() or this = files.getMember("get").getACall() or this.asCfgNode().(SubscriptNode).getObject() = - files.getMember("getlist").getReturn().getAUse().asCfgNode() + files.getMember("getlist").getReturn().getAValueReachableFromSource().asCfgNode() ) } } diff --git a/python/ql/lib/semmle/python/frameworks/Invoke.qll b/python/ql/lib/semmle/python/frameworks/Invoke.qll index 435536dda9f..b1ceb078907 100644 --- a/python/ql/lib/semmle/python/frameworks/Invoke.qll +++ b/python/ql/lib/semmle/python/frameworks/Invoke.qll @@ -39,7 +39,8 @@ private module Invoke { result = InvokeModule::Context::ContextClass::classRef().getACall() or exists(Function func | - func.getADecorator() = invoke().getMember("task").getAUse().asExpr() and + func.getADecorator() = + invoke().getMember("task").getAValueReachableFromSource().asExpr() and result.(DataFlow::ParameterNode).getParameter() = func.getArg(0) ) ) diff --git a/python/ql/lib/semmle/python/frameworks/RuamelYaml.qll b/python/ql/lib/semmle/python/frameworks/RuamelYaml.qll index 2d553c409b0..d9ba39814eb 100644 --- a/python/ql/lib/semmle/python/frameworks/RuamelYaml.qll +++ b/python/ql/lib/semmle/python/frameworks/RuamelYaml.qll @@ -44,7 +44,7 @@ private module RuamelYaml { API::moduleImport("ruamel") .getMember("yaml") .getMember(["SafeLoader", "BaseLoader", "CSafeLoader", "CBaseLoader"]) - .getAUse() + .getAValueReachableFromSource() ) } diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index b0629d94b2c..74f80b1d478 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -1727,15 +1727,16 @@ private module StdlibPrivate { private DataFlow::TypeTrackingNode fieldList(DataFlow::TypeTracker t) { t.start() and // TODO: Should have better handling of subscripting - result.asCfgNode().(SubscriptNode).getObject() = instance().getAUse().asCfgNode() + result.asCfgNode().(SubscriptNode).getObject() = + instance().getAValueReachableFromSource().asCfgNode() or exists(DataFlow::TypeTracker t2 | result = fieldList(t2).track(t2, t)) } /** Gets a reference to a list of fields. */ DataFlow::Node fieldList() { - result = getlistResult().getAUse() or - result = getvalueResult().getAUse() or + result = getlistResult().getAValueReachableFromSource() or + result = getvalueResult().getAValueReachableFromSource() or fieldList(DataFlow::TypeTracker::end()).flowsTo(result) } @@ -1744,16 +1745,16 @@ private module StdlibPrivate { t.start() and // TODO: Should have better handling of subscripting result.asCfgNode().(SubscriptNode).getObject() = - [instance().getAUse(), fieldList()].asCfgNode() + [instance().getAValueReachableFromSource(), fieldList()].asCfgNode() or exists(DataFlow::TypeTracker t2 | result = field(t2).track(t2, t)) } /** Gets a reference to a field. */ DataFlow::Node field() { - result = getfirstResult().getAUse() + result = getfirstResult().getAValueReachableFromSource() or - result = getvalueResult().getAUse() + result = getvalueResult().getAValueReachableFromSource() or field(DataFlow::TypeTracker::end()).flowsTo(result) } @@ -1762,20 +1763,23 @@ private module StdlibPrivate { override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { // Methods nodeFrom = nodeTo.(DataFlow::AttrRead).getObject() and - nodeFrom = instance().getAUse() and - nodeTo = [getvalueRef(), getfirstRef(), getlistRef()].getAUse() + nodeFrom = instance().getAValueReachableFromSource() and + nodeTo = [getvalueRef(), getfirstRef(), getlistRef()].getAValueReachableFromSource() or nodeFrom.asCfgNode() = nodeTo.asCfgNode().(CallNode).getFunction() and ( - nodeFrom = getvalueRef().getAUse() and nodeTo = getvalueResult().asSource() + nodeFrom = getvalueRef().getAValueReachableFromSource() and + nodeTo = getvalueResult().asSource() or - nodeFrom = getfirstRef().getAUse() and nodeTo = getfirstResult().asSource() + nodeFrom = getfirstRef().getAValueReachableFromSource() and + nodeTo = getfirstResult().asSource() or - nodeFrom = getlistRef().getAUse() and nodeTo = getlistResult().asSource() + nodeFrom = getlistRef().getAValueReachableFromSource() and + nodeTo = getlistResult().asSource() ) or // Indexing - nodeFrom in [instance().getAUse(), fieldList()] and + nodeFrom in [instance().getAValueReachableFromSource(), fieldList()] and nodeTo.asCfgNode().(SubscriptNode).getObject() = nodeFrom.asCfgNode() or // Attributes on Field @@ -3438,7 +3442,7 @@ private module StdlibPrivate { .getMember("sax") .getMember("handler") .getMember("feature_external_ges") - .getAUse() and + .getAValueReachableFromSource() and call.getStateArg().getAValueReachingRhs().asExpr().(BooleanLiteral).booleanValue() = true and result = call.getObject() ) @@ -3454,7 +3458,7 @@ private module StdlibPrivate { .getMember("sax") .getMember("handler") .getMember("feature_external_ges") - .getAUse() and + .getAValueReachableFromSource() and call.getStateArg().getAValueReachingRhs().asExpr().(BooleanLiteral).booleanValue() = false ) } diff --git a/python/ql/lib/semmle/python/frameworks/Werkzeug.qll b/python/ql/lib/semmle/python/frameworks/Werkzeug.qll index e9e3f257871..5e318f59e73 100644 --- a/python/ql/lib/semmle/python/frameworks/Werkzeug.qll +++ b/python/ql/lib/semmle/python/frameworks/Werkzeug.qll @@ -285,7 +285,7 @@ private module WerkzeugOld { * See https://werkzeug.palletsprojects.com/en/1.0.x/datastructures/#werkzeug.datastructures.Headers.getlist */ deprecated DataFlow::Node getlist() { - result = any(InstanceSourceApiNode a).getMember("getlist").getAUse() + result = any(InstanceSourceApiNode a).getMember("getlist").getAValueReachableFromSource() } private class MultiDictAdditionalTaintStep extends TaintTracking::AdditionalTaintStep { @@ -331,7 +331,9 @@ private module WerkzeugOld { abstract deprecated class InstanceSourceApiNode extends API::Node { } /** Gets a reference to an instance of `werkzeug.datastructures.FileStorage`. */ - deprecated DataFlow::Node instance() { result = any(InstanceSourceApiNode a).getAUse() } + deprecated DataFlow::Node instance() { + result = any(InstanceSourceApiNode a).getAValueReachableFromSource() + } private class FileStorageAdditionalTaintStep extends TaintTracking::AdditionalTaintStep { override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { diff --git a/python/ql/lib/semmle/python/frameworks/Yaml.qll b/python/ql/lib/semmle/python/frameworks/Yaml.qll index 07a98ec2ba3..670fad75e6e 100644 --- a/python/ql/lib/semmle/python/frameworks/Yaml.qll +++ b/python/ql/lib/semmle/python/frameworks/Yaml.qll @@ -64,7 +64,7 @@ private module Yaml { loader_arg = API::moduleImport("yaml") .getMember(["SafeLoader", "BaseLoader", "CSafeLoader", "CBaseLoader"]) - .getAUse() + .getAValueReachableFromSource() ) } diff --git a/python/ql/lib/semmle/python/frameworks/internal/PEP249Impl.qll b/python/ql/lib/semmle/python/frameworks/internal/PEP249Impl.qll index 57e7131c2b7..5feaa7f61da 100644 --- a/python/ql/lib/semmle/python/frameworks/internal/PEP249Impl.qll +++ b/python/ql/lib/semmle/python/frameworks/internal/PEP249Impl.qll @@ -33,7 +33,9 @@ module PEP249 { } /** Gets a reference to the `connect` function of a module that implements PEP 249. */ - DataFlow::Node connect() { result = any(PEP249ModuleApiNode a).getMember("connect").getAUse() } + DataFlow::Node connect() { + result = any(PEP249ModuleApiNode a).getMember("connect").getAValueReachableFromSource() + } /** * Provides models for database connections (following PEP 249). diff --git a/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll b/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll index 100d8165b51..47521ac0b31 100644 --- a/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll +++ b/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll @@ -152,7 +152,7 @@ private module NotExposed { FindSubclassesSpec spec, string newAliasFullyQualified, ImportMember importMember, Module mod, Location loc ) { - importMember = newOrExistingModeling(spec).getAUse().asExpr() and + importMember = newOrExistingModeling(spec).getAValueReachableFromSource().asExpr() and importMember.getScope() = mod and loc = importMember.getLocation() and ( @@ -182,7 +182,7 @@ private module NotExposed { // WHAT A HACK :D :D relevantClass.getPath() = relevantClass.getAPredecessor().getPath() + ".getMember(\"" + relevantName + "\")" and - relevantClass.getAPredecessor().getAUse().asExpr() = importStar.getModule() and + relevantClass.getAPredecessor().getAValueReachableFromSource().asExpr() = importStar.getModule() and ( mod.isPackageInit() and newAliasFullyQualified = mod.getPackageName() + "." + relevantName diff --git a/python/ql/lib/semmle/python/internal/CachedStages.qll b/python/ql/lib/semmle/python/internal/CachedStages.qll index ad4fe98ccee..290a90f5a73 100644 --- a/python/ql/lib/semmle/python/internal/CachedStages.qll +++ b/python/ql/lib/semmle/python/internal/CachedStages.qll @@ -121,7 +121,7 @@ module Stages { or exists(any(NewDataFlow::TypeTracker t).append(_)) or - exists(any(API::Node n).getAMember().getAUse()) + exists(any(API::Node n).getAMember().getAValueReachableFromSource()) } } diff --git a/python/ql/src/Security/CWE-295/MissingHostKeyValidation.ql b/python/ql/src/Security/CWE-295/MissingHostKeyValidation.ql index 89548d714ce..713354c84a0 100644 --- a/python/ql/src/Security/CWE-295/MissingHostKeyValidation.ql +++ b/python/ql/src/Security/CWE-295/MissingHostKeyValidation.ql @@ -29,7 +29,7 @@ where call = paramikoSSHClientInstance().getMember("set_missing_host_key_policy").getACall() and arg in [call.getArg(0), call.getArgByName("policy")] and ( - arg = unsafe_paramiko_policy(name).getAUse() or - arg = unsafe_paramiko_policy(name).getReturn().getAUse() + arg = unsafe_paramiko_policy(name).getAValueReachableFromSource() or + arg = unsafe_paramiko_policy(name).getReturn().getAValueReachableFromSource() ) select call, "Setting missing host key policy to " + name + " may be unsafe." diff --git a/python/ql/src/Security/CWE-327/PyOpenSSL.qll b/python/ql/src/Security/CWE-327/PyOpenSSL.qll index a0008cdc7c1..7f7b9184570 100644 --- a/python/ql/src/Security/CWE-327/PyOpenSSL.qll +++ b/python/ql/src/Security/CWE-327/PyOpenSSL.qll @@ -17,7 +17,8 @@ class PyOpenSSLContextCreation extends ContextCreation, DataFlow::CallCfgNode { protocolArg in [this.getArg(0), this.getArgByName("method")] | protocolArg in [ - pyo.specific_version(result).getAUse(), pyo.unspecific_version(result).getAUse() + pyo.specific_version(result).getAValueReachableFromSource(), + pyo.unspecific_version(result).getAValueReachableFromSource() ] ) } @@ -43,9 +44,10 @@ class SetOptionsCall extends ProtocolRestriction, DataFlow::CallCfgNode { } override ProtocolVersion getRestriction() { - API::moduleImport("OpenSSL").getMember("SSL").getMember("OP_NO_" + result).getAUse() in [ - this.getArg(0), this.getArgByName("options") - ] + API::moduleImport("OpenSSL") + .getMember("SSL") + .getMember("OP_NO_" + result) + .getAValueReachableFromSource() in [this.getArg(0), this.getArgByName("options")] } } diff --git a/python/ql/src/Security/CWE-327/Ssl.qll b/python/ql/src/Security/CWE-327/Ssl.qll index 80ef32c8de6..d1122f82ed9 100644 --- a/python/ql/src/Security/CWE-327/Ssl.qll +++ b/python/ql/src/Security/CWE-327/Ssl.qll @@ -15,7 +15,10 @@ class SSLContextCreation extends ContextCreation, DataFlow::CallCfgNode { protocolArg in [this.getArg(0), this.getArgByName("protocol")] | protocolArg = - [ssl.specific_version(result).getAUse(), ssl.unspecific_version(result).getAUse()] + [ + ssl.specific_version(result).getAValueReachableFromSource(), + ssl.unspecific_version(result).getAValueReachableFromSource() + ] ) or not exists(this.getArg(_)) and @@ -54,7 +57,11 @@ class OptionsAugOr extends ProtocolRestriction, DataFlow::CfgNode { aa.getTarget() = attr.getNode() and attr.getName() = "options" and attr.getObject() = node and - flag = API::moduleImport("ssl").getMember("OP_NO_" + restriction).getAUse().asExpr() and + flag = + API::moduleImport("ssl") + .getMember("OP_NO_" + restriction) + .getAValueReachableFromSource() + .asExpr() and ( aa.getValue() = flag or @@ -79,7 +86,11 @@ class OptionsAugAndNot extends ProtocolUnrestriction, DataFlow::CfgNode { attr.getObject() = node and notFlag.getOp() instanceof Invert and notFlag.getOperand() = flag and - flag = API::moduleImport("ssl").getMember("OP_NO_" + restriction).getAUse().asExpr() and + flag = + API::moduleImport("ssl") + .getMember("OP_NO_" + restriction) + .getAValueReachableFromSource() + .asExpr() and ( aa.getValue() = notFlag or @@ -134,7 +145,10 @@ class ContextSetVersion extends ProtocolRestriction, ProtocolUnrestriction, Data this = aw.getObject() and aw.getAttributeName() = "minimum_version" and aw.getValue() = - API::moduleImport("ssl").getMember("TLSVersion").getMember(restriction).getAUse() + API::moduleImport("ssl") + .getMember("TLSVersion") + .getMember(restriction) + .getAValueReachableFromSource() ) } @@ -188,7 +202,8 @@ class Ssl extends TlsLibrary { override DataFlow::CallCfgNode insecure_connection_creation(ProtocolVersion version) { result = API::moduleImport("ssl").getMember("wrap_socket").getACall() and - this.specific_version(version).getAUse() = result.getArgByName("ssl_version") and + this.specific_version(version).getAValueReachableFromSource() = + result.getArgByName("ssl_version") and version.isInsecure() } diff --git a/python/ql/src/experimental/semmle/python/frameworks/Django.qll b/python/ql/src/experimental/semmle/python/frameworks/Django.qll index 6853f9c3f6a..f1895af0ea9 100644 --- a/python/ql/src/experimental/semmle/python/frameworks/Django.qll +++ b/python/ql/src/experimental/semmle/python/frameworks/Django.qll @@ -86,11 +86,13 @@ private module ExperimentalPrivateDjango { t.start() and ( exists(SubscriptNode subscript | - subscript.getObject() = baseClassRef().getReturn().getAUse().asCfgNode() and + subscript.getObject() = + baseClassRef().getReturn().getAValueReachableFromSource().asCfgNode() and result.asCfgNode() = subscript ) or - result.(DataFlow::AttrRead).getObject() = baseClassRef().getReturn().getAUse() + result.(DataFlow::AttrRead).getObject() = + baseClassRef().getReturn().getAValueReachableFromSource() ) or exists(DataFlow::TypeTracker t2 | result = headerInstance(t2).track(t2, t)) diff --git a/python/ql/src/experimental/semmle/python/frameworks/Flask.qll b/python/ql/src/experimental/semmle/python/frameworks/Flask.qll index 5444a692b26..3252acf24fd 100644 --- a/python/ql/src/experimental/semmle/python/frameworks/Flask.qll +++ b/python/ql/src/experimental/semmle/python/frameworks/Flask.qll @@ -29,7 +29,11 @@ module ExperimentalFlask { /** Gets a reference to a header instance. */ private DataFlow::LocalSourceNode headerInstance() { - result = [Flask::Response::classRef(), flaskMakeResponse()].getReturn().getAMember().getAUse() + result = + [Flask::Response::classRef(), flaskMakeResponse()] + .getReturn() + .getAMember() + .getAValueReachableFromSource() } /** Gets a reference to a header instance call/subscript */ diff --git a/python/ql/src/experimental/semmle/python/frameworks/LDAP.qll b/python/ql/src/experimental/semmle/python/frameworks/LDAP.qll index 6085dddf5f8..871b47b48c9 100644 --- a/python/ql/src/experimental/semmle/python/frameworks/LDAP.qll +++ b/python/ql/src/experimental/semmle/python/frameworks/LDAP.qll @@ -90,7 +90,9 @@ private module LDAP { /**List of SSL-demanding options */ private class LDAPSSLOptions extends DataFlow::Node { - LDAPSSLOptions() { this = ldap().getMember("OPT_X_TLS_" + ["DEMAND", "HARD"]).getAUse() } + LDAPSSLOptions() { + this = ldap().getMember("OPT_X_TLS_" + ["DEMAND", "HARD"]).getAValueReachableFromSource() + } } /** diff --git a/python/ql/src/experimental/semmle/python/frameworks/NoSQL.qll b/python/ql/src/experimental/semmle/python/frameworks/NoSQL.qll index c5efb3dd833..2d7c93c3029 100644 --- a/python/ql/src/experimental/semmle/python/frameworks/NoSQL.qll +++ b/python/ql/src/experimental/semmle/python/frameworks/NoSQL.qll @@ -50,11 +50,11 @@ private module NoSql { t.start() and ( exists(SubscriptNode subscript | - subscript.getObject() = mongoClientInstance().getAUse().asCfgNode() and + subscript.getObject() = mongoClientInstance().getAValueReachableFromSource().asCfgNode() and result.asCfgNode() = subscript ) or - result.(DataFlow::AttrRead).getObject() = mongoClientInstance().getAUse() + result.(DataFlow::AttrRead).getObject() = mongoClientInstance().getAValueReachableFromSource() or result = mongoEngine().getMember(["get_db", "connect"]).getACall() or diff --git a/python/ql/test/TestUtilities/VerifyApiGraphs.qll b/python/ql/test/TestUtilities/VerifyApiGraphs.qll index 03af20dbabe..f2d43a08867 100644 --- a/python/ql/test/TestUtilities/VerifyApiGraphs.qll +++ b/python/ql/test/TestUtilities/VerifyApiGraphs.qll @@ -24,7 +24,7 @@ private DataFlow::Node getNode(API::Node nd, string kind) { result = nd.asSink() or kind = "use" and - result = nd.getAUse() + result = nd.getAValueReachableFromSource() } private string getLocStr(Location loc) { diff --git a/python/ql/test/library-tests/ApiGraphs/py2/use.ql b/python/ql/test/library-tests/ApiGraphs/py2/use.ql index f02bb048c58..6b18b2c1dd7 100644 --- a/python/ql/test/library-tests/ApiGraphs/py2/use.ql +++ b/python/ql/test/library-tests/ApiGraphs/py2/use.ql @@ -9,7 +9,7 @@ class ApiUseTest extends InlineExpectationsTest { override string getARelevantTag() { result = "use" } private predicate relevant_node(API::Node a, DataFlow::Node n, Location l) { - n = a.getAUse() and l = n.getLocation() + n = a.getAValueReachableFromSource() and l = n.getLocation() } override predicate hasActualResult(Location location, string element, string tag, string value) { From 3a669a8d213e2e341d07b8b43cf30ef1a6aa6144 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 13 Jun 2022 10:03:32 +0200 Subject: [PATCH 094/736] Python: getAValueReachingRhs -> getAValueReachingSink --- python/ql/lib/semmle/python/ApiGraphs.qll | 2 +- .../ql/lib/semmle/python/frameworks/Aiohttp.qll | 4 ++-- .../ql/lib/semmle/python/frameworks/Httpx.qll | 8 ++++---- python/ql/lib/semmle/python/frameworks/Lxml.qll | 17 +++++++++-------- .../lib/semmle/python/frameworks/Requests.qll | 2 +- .../ql/lib/semmle/python/frameworks/Stdlib.qll | 6 +++--- .../ql/lib/semmle/python/frameworks/Urllib3.qll | 9 +++++---- .../lib/semmle/python/frameworks/Xmltodict.qll | 2 +- .../Security/CWE-079/Jinja2WithoutEscaping.ql | 2 +- .../ql/src/Security/CWE-285/PamAuthorization.ql | 4 ++-- .../src/Security/CWE-732/WeakFilePermissions.ql | 4 ++-- 11 files changed, 31 insertions(+), 29 deletions(-) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index 538d4fe8818..72f49c859ef 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -134,7 +134,7 @@ module API { * Gets a data-flow node that may interprocedurally flow to the right-hand side of a definition * of the API component represented by this node. */ - DataFlow::Node getAValueReachingRhs() { result = Impl::trackDefNode(this.asSink()) } + DataFlow::Node getAValueReachingSink() { result = Impl::trackDefNode(this.asSink()) } /** * Gets an immediate use of the API component represented by this node. diff --git a/python/ql/lib/semmle/python/frameworks/Aiohttp.qll b/python/ql/lib/semmle/python/frameworks/Aiohttp.qll index b78feb217c6..5f687a01b49 100644 --- a/python/ql/lib/semmle/python/frameworks/Aiohttp.qll +++ b/python/ql/lib/semmle/python/frameworks/Aiohttp.qll @@ -685,8 +685,8 @@ private module AiohttpClientModel { DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { exists(API::Node param | param = this.getKeywordParameter(["ssl", "verify_ssl"]) | - disablingNode = param.getARhs() and - argumentOrigin = param.getAValueReachingRhs() and + disablingNode = param.asSink() and + argumentOrigin = param.getAValueReachingSink() and // aiohttp.client treats `None` as the default and all other "falsey" values as `False`. argumentOrigin.asExpr().(ImmutableLiteral).booleanValue() = false and not argumentOrigin.asExpr() instanceof None diff --git a/python/ql/lib/semmle/python/frameworks/Httpx.qll b/python/ql/lib/semmle/python/frameworks/Httpx.qll index 67dbbffbd9f..b746de6ee5e 100644 --- a/python/ql/lib/semmle/python/frameworks/Httpx.qll +++ b/python/ql/lib/semmle/python/frameworks/Httpx.qll @@ -44,8 +44,8 @@ private module HttpxModel { override predicate disablesCertificateValidation( DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { - disablingNode = this.getKeywordParameter("verify").getARhs() and - argumentOrigin = this.getKeywordParameter("verify").getAValueReachingRhs() and + disablingNode = this.getKeywordParameter("verify").asSink() and + argumentOrigin = this.getKeywordParameter("verify").getAValueReachingSink() and // unlike `requests`, httpx treats `None` as turning off verify (and not as the default) argumentOrigin.asExpr().(ImmutableLiteral).booleanValue() = false // TODO: Handling of insecure SSLContext passed to verify argument @@ -89,8 +89,8 @@ private module HttpxModel { constructor = classRef().getACall() and this = constructor.getReturn().getMember(methodName).getACall() | - disablingNode = constructor.getKeywordParameter("verify").getARhs() and - argumentOrigin = constructor.getKeywordParameter("verify").getAValueReachingRhs() and + disablingNode = constructor.getKeywordParameter("verify").asSink() and + argumentOrigin = constructor.getKeywordParameter("verify").getAValueReachingSink() and // unlike `requests`, httpx treats `None` as turning off verify (and not as the default) argumentOrigin.asExpr().(ImmutableLiteral).booleanValue() = false // TODO: Handling of insecure SSLContext passed to verify argument diff --git a/python/ql/lib/semmle/python/frameworks/Lxml.qll b/python/ql/lib/semmle/python/frameworks/Lxml.qll index 70e46a6d3b0..63c71a67110 100644 --- a/python/ql/lib/semmle/python/frameworks/Lxml.qll +++ b/python/ql/lib/semmle/python/frameworks/Lxml.qll @@ -141,17 +141,18 @@ private module Lxml { // resolve_entities has default True not exists(this.getArgByName("resolve_entities")) or - this.getKeywordParameter("resolve_entities").getAValueReachingRhs().asExpr() = any(True t) + this.getKeywordParameter("resolve_entities").getAValueReachingSink().asExpr() = + any(True t) ) or kind.isXmlBomb() and - this.getKeywordParameter("huge_tree").getAValueReachingRhs().asExpr() = any(True t) and - not this.getKeywordParameter("resolve_entities").getAValueReachingRhs().asExpr() = + this.getKeywordParameter("huge_tree").getAValueReachingSink().asExpr() = any(True t) and + not this.getKeywordParameter("resolve_entities").getAValueReachingSink().asExpr() = any(False t) or kind.isDtdRetrieval() and - this.getKeywordParameter("load_dtd").getAValueReachingRhs().asExpr() = any(True t) and - this.getKeywordParameter("no_network").getAValueReachingRhs().asExpr() = any(False t) + this.getKeywordParameter("load_dtd").getAValueReachingSink().asExpr() = any(True t) and + this.getKeywordParameter("no_network").getAValueReachingSink().asExpr() = any(False t) } } @@ -318,11 +319,11 @@ private module Lxml { kind.isXxe() or kind.isXmlBomb() and - this.getKeywordParameter("huge_tree").getAValueReachingRhs().asExpr() = any(True t) + this.getKeywordParameter("huge_tree").getAValueReachingSink().asExpr() = any(True t) or kind.isDtdRetrieval() and - this.getKeywordParameter("load_dtd").getAValueReachingRhs().asExpr() = any(True t) and - this.getKeywordParameter("no_network").getAValueReachingRhs().asExpr() = any(False t) + this.getKeywordParameter("load_dtd").getAValueReachingSink().asExpr() = any(True t) and + this.getKeywordParameter("no_network").getAValueReachingSink().asExpr() = any(False t) } override predicate mayExecuteInput() { none() } diff --git a/python/ql/lib/semmle/python/frameworks/Requests.qll b/python/ql/lib/semmle/python/frameworks/Requests.qll index 05e08b45166..0c944d889d2 100644 --- a/python/ql/lib/semmle/python/frameworks/Requests.qll +++ b/python/ql/lib/semmle/python/frameworks/Requests.qll @@ -62,7 +62,7 @@ private module Requests { DataFlow::Node disablingNode, DataFlow::Node argumentOrigin ) { disablingNode = this.getKeywordParameter("verify").asSink() and - argumentOrigin = this.getKeywordParameter("verify").getAValueReachingRhs() and + argumentOrigin = this.getKeywordParameter("verify").getAValueReachingSink() and // requests treats `None` as the default and all other "falsey" values as `False`. argumentOrigin.asExpr().(ImmutableLiteral).booleanValue() = false and not argumentOrigin.asExpr() instanceof None diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index 74f80b1d478..df9301a46c3 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -2657,7 +2657,7 @@ private module StdlibPrivate { /** Gets a call to `hashlib.new` with `algorithmName` as the first argument. */ private API::CallNode hashlibNewCall(string algorithmName) { algorithmName = - result.getParameter(0, "name").getAValueReachingRhs().asExpr().(StrConst).getText() and + result.getParameter(0, "name").getAValueReachingSink().asExpr().(StrConst).getText() and result = API::moduleImport("hashlib").getMember("new").getACall() } @@ -3443,7 +3443,7 @@ private module StdlibPrivate { .getMember("handler") .getMember("feature_external_ges") .getAValueReachableFromSource() and - call.getStateArg().getAValueReachingRhs().asExpr().(BooleanLiteral).booleanValue() = true and + call.getStateArg().getAValueReachingSink().asExpr().(BooleanLiteral).booleanValue() = true and result = call.getObject() ) or @@ -3459,7 +3459,7 @@ private module StdlibPrivate { .getMember("handler") .getMember("feature_external_ges") .getAValueReachableFromSource() and - call.getStateArg().getAValueReachingRhs().asExpr().(BooleanLiteral).booleanValue() = false + call.getStateArg().getAValueReachingSink().asExpr().(BooleanLiteral).booleanValue() = false ) } diff --git a/python/ql/lib/semmle/python/frameworks/Urllib3.qll b/python/ql/lib/semmle/python/frameworks/Urllib3.qll index 568591d64f9..418a135fbfc 100644 --- a/python/ql/lib/semmle/python/frameworks/Urllib3.qll +++ b/python/ql/lib/semmle/python/frameworks/Urllib3.qll @@ -71,14 +71,15 @@ private module Urllib3 { | // cert_reqs // see https://urllib3.readthedocs.io/en/stable/user-guide.html?highlight=cert_reqs#certificate-verification - disablingNode = constructor.getKeywordParameter("cert_reqs").getARhs() and - argumentOrigin = constructor.getKeywordParameter("cert_reqs").getAValueReachingRhs() and + disablingNode = constructor.getKeywordParameter("cert_reqs").asSink() and + argumentOrigin = constructor.getKeywordParameter("cert_reqs").getAValueReachingSink() and argumentOrigin.asExpr().(StrConst).getText() = "CERT_NONE" or // assert_hostname // see https://urllib3.readthedocs.io/en/stable/reference/urllib3.connectionpool.html?highlight=assert_hostname#urllib3.HTTPSConnectionPool - disablingNode = constructor.getKeywordParameter("assert_hostname").getARhs() and - argumentOrigin = constructor.getKeywordParameter("assert_hostname").getAValueReachingRhs() and + disablingNode = constructor.getKeywordParameter("assert_hostname").asSink() and + argumentOrigin = + constructor.getKeywordParameter("assert_hostname").getAValueReachingSink() and argumentOrigin.asExpr().(BooleanLiteral).booleanValue() = false ) } diff --git a/python/ql/lib/semmle/python/frameworks/Xmltodict.qll b/python/ql/lib/semmle/python/frameworks/Xmltodict.qll index f63fec7afe4..495725e9a76 100644 --- a/python/ql/lib/semmle/python/frameworks/Xmltodict.qll +++ b/python/ql/lib/semmle/python/frameworks/Xmltodict.qll @@ -29,7 +29,7 @@ private module Xmltodict { override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) { kind.isXmlBomb() and - this.getKeywordParameter("disable_entities").getAValueReachingRhs().asExpr() = any(False f) + this.getKeywordParameter("disable_entities").getAValueReachingSink().asExpr() = any(False f) } override predicate mayExecuteInput() { none() } diff --git a/python/ql/src/Security/CWE-079/Jinja2WithoutEscaping.ql b/python/ql/src/Security/CWE-079/Jinja2WithoutEscaping.ql index 820937f8649..97bbb72edec 100644 --- a/python/ql/src/Security/CWE-079/Jinja2WithoutEscaping.ql +++ b/python/ql/src/Security/CWE-079/Jinja2WithoutEscaping.ql @@ -42,7 +42,7 @@ where not exists(call.getArgByName("autoescape")) or call.getKeywordParameter("autoescape") - .getAValueReachingRhs() + .getAValueReachingSink() .asExpr() .(ImmutableLiteral) .booleanValue() = false diff --git a/python/ql/src/Security/CWE-285/PamAuthorization.ql b/python/ql/src/Security/CWE-285/PamAuthorization.ql index 233e42e6239..affb59ff7db 100644 --- a/python/ql/src/Security/CWE-285/PamAuthorization.ql +++ b/python/ql/src/Security/CWE-285/PamAuthorization.ql @@ -18,9 +18,9 @@ import semmle.python.dataflow.new.TaintTracking API::Node libPam() { exists(API::CallNode findLibCall, API::CallNode cdllCall | findLibCall = API::moduleImport("ctypes").getMember("util").getMember("find_library").getACall() and - findLibCall.getParameter(0).getAValueReachingRhs().asExpr().(StrConst).getText() = "pam" and + findLibCall.getParameter(0).getAValueReachingSink().asExpr().(StrConst).getText() = "pam" and cdllCall = API::moduleImport("ctypes").getMember("CDLL").getACall() and - cdllCall.getParameter(0).getAValueReachingRhs() = findLibCall + cdllCall.getParameter(0).getAValueReachingSink() = findLibCall | result = cdllCall.getReturn() ) diff --git a/python/ql/src/Security/CWE-732/WeakFilePermissions.ql b/python/ql/src/Security/CWE-732/WeakFilePermissions.ql index 393198cf72e..90921b99fb9 100644 --- a/python/ql/src/Security/CWE-732/WeakFilePermissions.ql +++ b/python/ql/src/Security/CWE-732/WeakFilePermissions.ql @@ -36,13 +36,13 @@ string permissive_permission(int p) { predicate chmod_call(API::CallNode call, string name, int mode) { call = API::moduleImport("os").getMember("chmod").getACall() and - mode = call.getParameter(1, "mode").getAValueReachingRhs().asExpr().(IntegerLiteral).getValue() and + mode = call.getParameter(1, "mode").getAValueReachingSink().asExpr().(IntegerLiteral).getValue() and name = "chmod" } predicate open_call(API::CallNode call, string name, int mode) { call = API::moduleImport("os").getMember("open").getACall() and - mode = call.getParameter(2, "mode").getAValueReachingRhs().asExpr().(IntegerLiteral).getValue() and + mode = call.getParameter(2, "mode").getAValueReachingSink().asExpr().(IntegerLiteral).getValue() and name = "open" } From fecbfa6ca37e70a308f5fdd8e8d07b1361798ebd Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 30 May 2022 14:15:48 +0200 Subject: [PATCH 095/736] Python: add deprecation --- python/ql/lib/semmle/python/ApiGraphs.qll | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index 72f49c859ef..7d59b14696f 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -149,6 +149,18 @@ module API { */ DataFlow::LocalSourceNode asSource() { Impl::use(this, result) } + /** DEPRECATED. This predicate has been renamed to `getAValueReachableFromSource()`. */ + deprecated DataFlow::Node getAUse() { result = this.getAValueReachableFromSource() } + + /** DEPRECATED. This predicate has been renamed to `asSource()`. */ + deprecated DataFlow::LocalSourceNode getAnImmediateUse() { result = this.asSource() } + + /** DEPRECATED. This predicate has been renamed to `asSink()`. */ + deprecated DataFlow::Node getARhs() { result = this.asSink() } + + /** DEPRECATED. This predicate has been renamed to `getAValueReachingSink()`. */ + deprecated DataFlow::Node getAValueReachingRhs() { result = this.getAValueReachingSink() } + /** * Gets a call to the function represented by this API component. */ From 092a6a01ac71d57baa80d0639907ccad8113eacb Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 14 Jun 2022 10:44:30 +0200 Subject: [PATCH 096/736] Python: Update member documentation --- python/ql/lib/semmle/python/ApiGraphs.qll | 60 +++++++++++------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index 7d59b14696f..65fffc9aee1 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -92,19 +92,10 @@ module API { */ class Node extends Impl::TApiNode { /** - * Gets a data-flow node corresponding to a use of the API component represented by this node. + * Gets a data-flow node where this value may flow after entering the current codebase. * - * For example, `import re; re.escape` is a use of the `escape` function from the - * `re` module, and `import re; re.escape("hello")` is a use of the return of that function. - * - * This includes indirect uses found via data flow, meaning that in - * ```python - * def f(x): - * pass - * - * f(obj.foo) - * ``` - * both `obj.foo` and `x` are uses of the `foo` member from `obj`. + * This is similar to `asSource()` but additionally includes nodes that are transitively reachable by data flow. + * See `asSource()` for examples. */ DataFlow::Node getAValueReachableFromSource() { exists(DataFlow::LocalSourceNode src | Impl::use(this, src) | @@ -113,39 +104,48 @@ module API { } /** - * Gets a data-flow node corresponding to the right-hand side of a definition of the API - * component represented by this node. + * Gets a data-flow node where this value leaves the current codebase and flows into an + * external library (or in general, any external codebase). * - * For example, in the property write `foo.bar = x`, variable `x` is the the right-hand side - * of a write to the `bar` property of `foo`. + * Concretely, this is either an argument passed to a call to external code, + * or the right-hand side of a property write on an object flowing into such a call. * - * Note that for parameters, it is the arguments flowing into that parameter that count as - * right-hand sides of the definition, not the declaration of the parameter itself. - * Consequently, in : + * For example: * ```python - * from mypkg import foo; + * import foo + * + * # 'x' is matched by API::moduleImport("foo").getMember("bar").getParameter(0).asSink() * foo.bar(x) + * + * # 'x' is matched by API::moduleImport("foo").getMember("bar").getParameter(0).getMember("prop").asSink() + * obj.prop = x + * foo.bar(obj); * ``` - * `x` is the right-hand side of a definition of the first parameter of `bar` from the `mypkg.foo` module. */ DataFlow::Node asSink() { Impl::rhs(this, result) } /** - * Gets a data-flow node that may interprocedurally flow to the right-hand side of a definition - * of the API component represented by this node. + * Gets a data-flow node that transitively flows to an external library (or in general, any external codebase). + * + * This is similar to `asSink()` but additionally includes nodes that transitively reach a sink by data flow. + * See `asSink()` for examples. */ DataFlow::Node getAValueReachingSink() { result = Impl::trackDefNode(this.asSink()) } /** - * Gets an immediate use of the API component represented by this node. + * Gets a data-flow node where this value enters the current codebase. * - * For example, `import re; re.escape` is a an immediate use of the `escape` member - * from the `re` module. + * For example: + * ```python + * # API::moduleImport("re").asSource() + * import re * - * Unlike `getAUse()`, this predicate only gets the immediate references, not the indirect uses - * found via data flow. This means that in `x = re.escape` only `re.escape` is a reference - * to the `escape` member of `re`, neither `x` nor any node that `x` flows to is a reference to - * this API component. + * # API::moduleImport("re").getMember("escape").asSource() + * re.escape + * + * # API::moduleImport("re").getMember("escape").getReturn().asSource() + * re.escape() + * ``` */ DataFlow::LocalSourceNode asSource() { Impl::use(this, result) } From 1ec838e671f1eeeb81ad1abfa3124f1bcdb2b863 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Tue, 21 Jun 2022 09:14:23 -0700 Subject: [PATCH 097/736] Update docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com> --- .../codeql-cli/analyzing-databases-with-the-codeql-cli.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst index 84b76615520..6c7169634bb 100644 --- a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst +++ b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst @@ -174,6 +174,7 @@ To analyze your database using the `cpp-security-and-quality.qls` query suite fr codeql database analyze --format=sarif-latest --output=results \ 'codeql/cpp-queries@~0.0.3:codeql-suites/cpp-security-and-quality.qls' + For more information about CodeQL packs, see :doc:`About CodeQL Packs `. Running query suites From a2e2dcdfd5d743edd3eafd1bc34989f3332dcdb2 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Tue, 21 Jun 2022 14:44:52 -0400 Subject: [PATCH 098/736] Make ActiveRecordInstanceMethodCall Public --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 0846e30d047..5809b35baf4 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -331,7 +331,7 @@ class ActiveRecordInstance extends DataFlow::Node { } // A call whose receiver may be an active record model object -private class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { +class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { private ActiveRecordInstance instance; ActiveRecordInstanceMethodCall() { this.getReceiver() = instance } From 83b720d730c90f932b8fb1a2862645045233c804 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Sat, 18 Jun 2022 20:43:58 +0000 Subject: [PATCH 099/736] first draft of weak params query --- .../experimental/weak-params/WeakParams.ql | 46 +++++++++++++++++++ .../security/weak-params/WeakParams.expected | 0 .../security/weak-params/WeakParams.qlref | 1 + .../security/weak-params/WeakParams.rb | 15 ++++++ 4 files changed, 62 insertions(+) create mode 100644 ruby/ql/src/experimental/weak-params/WeakParams.ql create mode 100644 ruby/ql/test/query-tests/security/weak-params/WeakParams.expected create mode 100644 ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref create mode 100644 ruby/ql/test/query-tests/security/weak-params/WeakParams.rb diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql new file mode 100644 index 00000000000..b756d6ed8b8 --- /dev/null +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -0,0 +1,46 @@ +/** + * @name Weak or direct parameter references are used + * @description Directly checking request parameters without following a strong params pattern can lead to unintentional avenues for injection attacks. + * @kind problem + * @problem.severity error + * @security-severity 5.0 + * @precision low + * @id rb/weak-params + * @tags security + */ + +import ruby + +class WeakParams extends AstNode { + WeakParams() { + this instanceof UnspecificParamsMethod or + this instanceof ParamsReference + } +} + +class StrongParamsMethod extends Method { + StrongParamsMethod() { this.getName().regexpMatch(".*_params") } +} + +class UnspecificParamsMethod extends MethodCall { + UnspecificParamsMethod() { + ( + this.getMethodName() = "expose_all" or + this.getMethodName() = "original_hash" or + this.getMethodName() = "path_parametes" or + this.getMethodName() = "query_parameters" or + this.getMethodName() = "request_parameters" or + this.getMethodName() = "GET" or + this.getMethodName() = "POST" + ) + } +} + +class ParamsReference extends ElementReference { + ParamsReference() { this.getAChild().toString() = "params" } +} + +from WeakParams params +where not params.getEnclosingMethod() instanceof StrongParamsMethod +select params, + "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." diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.expected b/ruby/ql/test/query-tests/security/weak-params/WeakParams.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref b/ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref new file mode 100644 index 00000000000..5350e4bf40a --- /dev/null +++ b/ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref @@ -0,0 +1 @@ +experimental/weak-params/WeakParams.ql \ No newline at end of file diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb b/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb new file mode 100644 index 00000000000..cc0dc80341f --- /dev/null +++ b/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb @@ -0,0 +1,15 @@ +class TestController < ActionController::Base + def create + TestObject.new(request.request_parameters) + end + + def create_query + TestObject.new(request.query_parameters) + end + + # + def object_params + p = params.query_parameters + params.require(:uuid).permit(:notes) + end +end \ No newline at end of file From 53729f99c5b0e5eb08903bd27797446b2f7ec23f Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 21 Jun 2022 20:28:29 +0000 Subject: [PATCH 100/736] restrict findings to just controller classes --- ruby/ql/src/experimental/weak-params/WeakParams.ql | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index b756d6ed8b8..d7408f8bea7 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -18,6 +18,10 @@ class WeakParams extends AstNode { } } +class ControllerClass extends ModuleBase { + ControllerClass() { this.getModule().getSuperClass+().toString() = "ApplicationController" } +} + class StrongParamsMethod extends Method { StrongParamsMethod() { this.getName().regexpMatch(".*_params") } } @@ -41,6 +45,8 @@ class ParamsReference extends ElementReference { } from WeakParams params -where not params.getEnclosingMethod() instanceof StrongParamsMethod +where + not params.getEnclosingMethod() instanceof StrongParamsMethod and + params.getEnclosingModule() instanceof ControllerClass select params, "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." From 990747cd229b83f467c018d50ebd0ffdea93607d Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 21 Jun 2022 21:27:18 +0000 Subject: [PATCH 101/736] Limit findings to just those called in Controllers --- .../manually-check-http-verb/ManuallyCheckHttpVerb.ql | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 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 6946d26a7e8..98c2c266cab 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -23,6 +23,10 @@ class HttpVerbMethod extends MethodCall { } } +class ControllerClass extends ModuleBase { + ControllerClass() { this.getModule().getSuperClass+().toString() = "ApplicationController" } +} + class CheckRequestMethodFromEnv extends DataFlow::CallNode { CheckRequestMethodFromEnv() { // is this node an instance of `env["REQUEST_METHOD"] @@ -78,7 +82,10 @@ class CheckHeadRequest extends MethodCall { from CheckRequestMethodFromEnv env, AstNode node where - node instanceof HttpVerbMethod or - node = env.asExpr().getExpr() + ( + node instanceof HttpVerbMethod or + node = env.asExpr().getExpr() + ) and + node.getEnclosingModule() instanceof ControllerClass select node, "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 mappting resources and verbs to specific methods." From c767f241ad919d67b7a718207f669a457b464d53 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Wed, 22 Jun 2022 02:12:23 +0000 Subject: [PATCH 102/736] narrow query scope --- .../ManuallyCheckHttpVerb.ql | 65 +++++-------------- 1 file changed, 16 insertions(+), 49 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 98c2c266cab..6e48255d4d6 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -12,39 +12,30 @@ import ruby import codeql.ruby.DataFlow -class HttpVerbMethod extends MethodCall { - HttpVerbMethod() { - this instanceof CheckGetRequest or - this instanceof CheckPostRequest or - this instanceof CheckPatchRequest or - this instanceof CheckPutRequest or - this instanceof CheckDeleteRequest or - this instanceof CheckHeadRequest - } +class CheckNotGetRequest extends ConditionalExpr { + CheckNotGetRequest() { this.getCondition() instanceof CheckGetRequest } +} + +class CheckGetRequest extends MethodCall { + CheckGetRequest() { this.getMethodName() = "get?" } } class ControllerClass extends ModuleBase { ControllerClass() { this.getModule().getSuperClass+().toString() = "ApplicationController" } } -class CheckRequestMethodFromEnv extends DataFlow::CallNode { - CheckRequestMethodFromEnv() { +class CheckGetFromEnv extends AstNode { + CheckGetFromEnv() { // is this node an instance of `env["REQUEST_METHOD"] - this.getExprNode().getNode() instanceof GetRequestMethodFromEnv and + this instanceof GetRequestMethodFromEnv and ( // and is this node a param of a call to `.include?` - exists(MethodCall call | call.getAnArgument() = this.getExprNode().getNode() | - call.getMethodName() = "include?" - ) + exists(MethodCall call | call.getAnArgument() = this | call.getMethodName() = "include?") or - exists(DataFlow::Node node | - node.asExpr().getExpr().(MethodCall).getMethodName() = "include?" - | - node.getALocalSource() = this + // check if env["REQUEST_METHOD"] is compared to GET + exists(EqualityOperation eq | eq.getAChild() = this | + eq.getAChild().(StringLiteral).toString() = "GET" ) - or - // or is this node on either size of an equality comparison - exists(EqualityOperation eq | eq.getAChild() = this.getExprNode().getNode()) ) } } @@ -56,35 +47,11 @@ class GetRequestMethodFromEnv extends ElementReference { } } -class CheckGetRequest extends MethodCall { - CheckGetRequest() { this.getMethodName() = "get?" } -} - -class CheckPostRequest extends MethodCall { - CheckPostRequest() { this.getMethodName() = "post?" } -} - -class CheckPutRequest extends MethodCall { - CheckPutRequest() { this.getMethodName() = "put?" } -} - -class CheckPatchRequest extends MethodCall { - CheckPatchRequest() { this.getMethodName() = "patch?" } -} - -class CheckDeleteRequest extends MethodCall { - CheckDeleteRequest() { this.getMethodName() = "delete?" } -} - -class CheckHeadRequest extends MethodCall { - CheckHeadRequest() { this.getMethodName() = "head?" } -} - -from CheckRequestMethodFromEnv env, AstNode node +from AstNode node where ( - node instanceof HttpVerbMethod or - node = env.asExpr().getExpr() + node instanceof CheckNotGetRequest or + node instanceof CheckGetFromEnv ) and node.getEnclosingModule() instanceof ControllerClass select node, From 995f36556847cb5997750f5d3d92600764b26d93 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Wed, 22 Jun 2022 02:17:01 +0000 Subject: [PATCH 103/736] just check string literal --- .../manually-check-http-verb/ManuallyCheckHttpVerb.ql | 11 +++-------- 1 file changed, 3 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 6e48255d4d6..a006587a13e 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -28,14 +28,9 @@ class CheckGetFromEnv extends AstNode { CheckGetFromEnv() { // is this node an instance of `env["REQUEST_METHOD"] this instanceof GetRequestMethodFromEnv and - ( - // and is this node a param of a call to `.include?` - exists(MethodCall call | call.getAnArgument() = this | call.getMethodName() = "include?") - or - // check if env["REQUEST_METHOD"] is compared to GET - exists(EqualityOperation eq | eq.getAChild() = this | - eq.getAChild().(StringLiteral).toString() = "GET" - ) + // check if env["REQUEST_METHOD"] is compared to GET + exists(EqualityOperation eq | eq.getAChild() = this | + eq.getAChild().(StringLiteral).toString() = "GET" ) } } From 0ef97b41c8fab10f56581f40f6f325cbcdae4594 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 22 Jun 2022 13:03:10 +0200 Subject: [PATCH 104/736] C#: Update .NET Runtime models and add sources and sinks. --- .../frameworks/generated/dotnet/Runtime.qll | 256 +----------------- 1 file changed, 13 insertions(+), 243 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/generated/dotnet/Runtime.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/generated/dotnet/Runtime.qll index b3f247ede94..f4c5596c973 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/generated/dotnet/Runtime.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/generated/dotnet/Runtime.qll @@ -1,11 +1,23 @@ /** * THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. - * Definitions of taint steps in the dotnetruntime framework. + * Definitions of taint steps in the Runtime framework. */ import csharp private import semmle.code.csharp.dataflow.ExternalFlow +private class RuntimeSinksCsv extends SinkModelCsv { + override predicate row(string row) { + row = + [ + "System.Data.Odbc;OdbcDataAdapter;false;OdbcDataAdapter;(System.String,System.Data.Odbc.OdbcConnection);;Argument[0];sql;generated", + "System.Data.Odbc;OdbcDataAdapter;false;OdbcDataAdapter;(System.String,System.String);;Argument[0];sql;generated", + "System.Net.Http;StringContent;false;StringContent;(System.String);;Argument[0];xss;generated", + "System.Net.Http;StringContent;false;StringContent;(System.String,System.Text.Encoding);;Argument[0];xss;generated" + ] + } +} + private class RuntimeSummaryCsv extends SummaryModelCsv { override predicate row(string row) { row = @@ -529,11 +541,8 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.CodeDom.Compiler;GeneratedCodeAttribute;false;GeneratedCodeAttribute;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated", "System.CodeDom.Compiler;GeneratedCodeAttribute;false;get_Tool;();;Argument[Qualifier];ReturnValue;taint;generated", "System.CodeDom.Compiler;GeneratedCodeAttribute;false;get_Version;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.CodeDom.Compiler;IndentedTextWriter;false;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated", "System.CodeDom.Compiler;IndentedTextWriter;false;IndentedTextWriter;(System.IO.TextWriter,System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.CodeDom.Compiler;IndentedTextWriter;false;IndentedTextWriter;(System.IO.TextWriter,System.String);;Argument[1];Argument[Qualifier];taint;generated", - "System.CodeDom.Compiler;IndentedTextWriter;false;WriteLineNoTabsAsync;(System.String);;Argument[0];ReturnValue;taint;generated", - "System.CodeDom.Compiler;IndentedTextWriter;false;WriteLineNoTabsAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.CodeDom.Compiler;IndentedTextWriter;false;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated", "System.CodeDom.Compiler;IndentedTextWriter;false;get_InnerWriter;();;Argument[Qualifier];ReturnValue;taint;generated", "System.CodeDom.Compiler;IndentedTextWriter;false;get_NewLine;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -746,7 +755,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.CodeDom;CodeNamespaceImport;false;set_Namespace;(System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.CodeDom;CodeNamespaceImportCollection;false;Add;(System.CodeDom.CodeNamespaceImport);;Argument[0];Argument[Qualifier];taint;generated", "System.CodeDom;CodeNamespaceImportCollection;false;AddRange;(System.CodeDom.CodeNamespaceImport[]);;Argument[0].Element;Argument[Qualifier];taint;generated", - "System.CodeDom;CodeNamespaceImportCollection;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.CodeDom;CodeNamespaceImportCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.CodeDom;CodeNamespaceImportCollection;false;set_Item;(System.Int32,System.CodeDom.CodeNamespaceImport);;Argument[1];Argument[Qualifier];taint;generated", "System.CodeDom;CodeObject;false;get_UserData;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -919,7 +927,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Concurrent;ConcurrentBag<>;false;TryAdd;(T);;Argument[0];Argument[Qualifier];taint;generated", "System.Collections.Concurrent;ConcurrentBag<>;false;TryPeek;(T);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Concurrent;ConcurrentBag<>;false;TryTake;(T);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,TValue);;Argument[1];ReturnValue;taint;generated", "System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Concurrent;ConcurrentStack<>;false;ConcurrentStack;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated", @@ -933,7 +940,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Concurrent;Partitioner;false;Create<>;(System.Collections.Generic.IEnumerable,System.Collections.Concurrent.EnumerablePartitionerOptions);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Concurrent;Partitioner;false;Create<>;(System.Collections.Generic.IList,System.Boolean);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Concurrent;Partitioner;false;Create<>;(TSource[],System.Boolean);;Argument[0].Element;ReturnValue;taint;generated", - "System.Collections.Generic;CollectionExtensions;false;AsReadOnly<,>;(System.Collections.Generic.IDictionary);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Generic;CollectionExtensions;false;AsReadOnly<>;(System.Collections.Generic.IList);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Generic;CollectionExtensions;false;GetDefaultAssets;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Generic;CollectionExtensions;false;GetDefaultGroup;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated", @@ -945,9 +951,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Generic;CollectionExtensions;false;GetValueOrDefault<,>;(System.Collections.Generic.IReadOnlyDictionary,TKey,TValue);;Argument[1];ReturnValue;taint;generated", "System.Collections.Generic;CollectionExtensions;false;GetValueOrDefault<,>;(System.Collections.Generic.IReadOnlyDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;generated", "System.Collections.Generic;CollectionExtensions;false;Remove<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[0].Element;ReturnValue;taint;generated", - "System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[0].Element;Argument[2];taint;generated", - "System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[1];Argument[0].Element;taint;generated", - "System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[2];Argument[0].Element;taint;generated", "System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Entry;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -967,8 +970,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Generic;HashSet<>;false;HashSet;(System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[Qualifier];taint;generated", "System.Collections.Generic;HashSet<>;false;TryGetValue;(T,T);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Generic;HashSet<>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Collections.Generic;KeyValuePair;false;Create<,>;(TKey,TValue);;Argument[0];ReturnValue;taint;generated", - "System.Collections.Generic;KeyValuePair;false;Create<,>;(TKey,TValue);;Argument[1];ReturnValue;taint;generated", "System.Collections.Generic;KeyValuePair<,>;false;Deconstruct;(TKey,TValue);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Generic;KeyValuePair<,>;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Generic;KeyValuePair<,>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -1120,12 +1121,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableDictionary;false;Create<,>;(System.Collections.Generic.IEqualityComparer);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary;false;Create<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary;false;Create<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1].Element;ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary;false;GetValueOrDefault<,>;(System.Collections.Immutable.IImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;taint;generated", @@ -1142,7 +1137,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;get_ValueComparer;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;set_KeyComparer;(System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[Qualifier];taint;generated", "System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;set_ValueComparer;(System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[Qualifier];taint;generated", - "System.Collections.Immutable;ImmutableDictionary<,>;false;Clear;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary<,>;false;Remove;(TKey);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary<,>;false;RemoveRange;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary<,>;false;SetItem;(TKey,TValue);;Argument[Qualifier];ReturnValue;taint;generated", @@ -1155,8 +1149,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableDictionary<,>;false;get_KeyComparer;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableDictionary<,>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", "System.Collections.Immutable;ImmutableDictionary<,>;false;get_ValueComparer;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableHashSet;false;Create<>;(System.Collections.Generic.IEqualityComparer,T);;Argument[1];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableHashSet;false;Create<>;(T);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableHashSet;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableHashSet;false;CreateRange<>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableHashSet;false;ToImmutableHashSet<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated", @@ -1166,7 +1158,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableHashSet<>+Builder;false;TryGetValue;(T,T);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableHashSet<>+Builder;false;get_KeyComparer;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableHashSet<>+Builder;false;set_KeyComparer;(System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[Qualifier];taint;generated", - "System.Collections.Immutable;ImmutableHashSet<>;false;Clear;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableHashSet<>;false;Except;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableHashSet<>;false;Intersect;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableHashSet<>;false;Remove;(T);;Argument[Qualifier];ReturnValue;taint;generated", @@ -1179,9 +1170,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableHashSet<>;false;get_KeyComparer;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableHashSet<>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", "System.Collections.Immutable;ImmutableInterlocked;false;GetOrAdd<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableList;false;Create<>;(T);;Argument[0];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableList;false;Create<>;(T[]);;Argument[0].Element;ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableList;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableList;false;Remove<>;(System.Collections.Immutable.IImmutableList,T);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableList;false;RemoveRange<>;(System.Collections.Immutable.IImmutableList,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableList;false;Replace<>;(System.Collections.Immutable.IImmutableList,T,T);;Argument[0].Element;ReturnValue;taint;generated", @@ -1240,12 +1228,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableSortedDictionary;false;CreateBuilder<,>;(System.Collections.Generic.IComparer);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary;false;CreateBuilder<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary;false;CreateBuilder<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);;Argument[1].Element;ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[1];ReturnValue;taint;generated", @@ -1262,8 +1244,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;get_ValueComparer;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;set_KeyComparer;(System.Collections.Generic.IComparer);;Argument[0];Argument[Qualifier];taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;set_ValueComparer;(System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[Qualifier];taint;generated", - "System.Collections.Immutable;ImmutableSortedDictionary<,>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Clear;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Remove;(TKey);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary<,>;false;RemoveRange;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedDictionary<,>;false;SetItem;(TKey,TValue);;Argument[0];ReturnValue;taint;generated", @@ -1281,10 +1261,7 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", "System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_ValueComparer;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer);;Argument[0];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer,T);;Argument[0];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer,T);;Argument[1];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer,T[]);;Argument[0];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(T);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet;false;CreateBuilder<>;(System.Collections.Generic.IComparer);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet;false;CreateRange<>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet;false;CreateRange<>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated", @@ -1294,7 +1271,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableSortedSet;false;ToImmutableSortedSet<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[1];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet;false;ToImmutableSortedSet<>;(System.Collections.Immutable.ImmutableSortedSet+Builder);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;IntersectWith;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated", - "System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;SymmetricExceptWith;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;ToImmutable;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;TryGetValue;(T,T);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;TryGetValue;(T,T);;Argument[Qualifier];ReturnValue;taint;generated", @@ -1305,13 +1281,8 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;set_KeyComparer;(System.Collections.Generic.IComparer);;Argument[0];Argument[Qualifier];taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedSet<>;false;Clear;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>;false;Except;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedSet<>;false;Intersect;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>;false;Remove;(T);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedSet<>;false;SymmetricExcept;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated", - "System.Collections.Immutable;ImmutableSortedSet<>;false;SymmetricExcept;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated", - "System.Collections.Immutable;ImmutableSortedSet<>;false;SymmetricExcept;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>;false;ToBuilder;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>;false;TryGetValue;(T,T);;Argument[0];ReturnValue;taint;generated", "System.Collections.Immutable;ImmutableSortedSet<>;false;TryGetValue;(T,T);;Argument[Qualifier];ReturnValue;taint;generated", @@ -1335,23 +1306,17 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections.Immutable;ImmutableStack<>;false;Push;(T);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.ObjectModel;Collection<>;false;Collection;(System.Collections.Generic.IList);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Collections.ObjectModel;Collection<>;false;InsertItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated", - "System.Collections.ObjectModel;Collection<>;false;InsertItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated", "System.Collections.ObjectModel;Collection<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated", - "System.Collections.ObjectModel;Collection<>;false;SetItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated", "System.Collections.ObjectModel;Collection<>;false;get_Items;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.ObjectModel;Collection<>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.ObjectModel;KeyedCollection<,>;false;InsertItem;(System.Int32,TItem);;Argument[1];Argument[Qualifier];taint;generated", - "System.Collections.ObjectModel;KeyedCollection<,>;false;InsertItem;(System.Int32,TItem);;Argument[Qualifier];Argument[1];taint;generated", "System.Collections.ObjectModel;KeyedCollection<,>;false;KeyedCollection;(System.Collections.Generic.IEqualityComparer,System.Int32);;Argument[0];Argument[Qualifier];taint;generated", "System.Collections.ObjectModel;KeyedCollection<,>;false;SetItem;(System.Int32,TItem);;Argument[1];Argument[Qualifier];taint;generated", - "System.Collections.ObjectModel;KeyedCollection<,>;false;SetItem;(System.Int32,TItem);;Argument[Qualifier];Argument[1];taint;generated", "System.Collections.ObjectModel;KeyedCollection<,>;false;TryGetValue;(TKey,TItem);;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.ObjectModel;KeyedCollection<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.ObjectModel;KeyedCollection<,>;false;get_Dictionary;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.ObjectModel;ObservableCollection<>;false;InsertItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated", - "System.Collections.ObjectModel;ObservableCollection<>;false;InsertItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated", "System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated", - "System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated", "System.Collections.ObjectModel;ReadOnlyCollection<>;false;ReadOnlyCollection;(System.Collections.Generic.IList);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Collections.ObjectModel;ReadOnlyCollection<>;false;get_Items;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections.ObjectModel;ReadOnlyCollection<>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -1430,7 +1395,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections;BitArray;false;Xor;(System.Collections.BitArray);;Argument[Qualifier];ReturnValue;value;generated", "System.Collections;BitArray;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", "System.Collections;CollectionBase;false;Remove;(System.Object);;Argument[0];Argument[Qualifier];taint;generated", - "System.Collections;CollectionBase;false;Remove;(System.Object);;Argument[Qualifier];Argument[0];taint;generated", "System.Collections;CollectionBase;false;get_InnerList;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections;CollectionBase;false;get_List;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections;CollectionBase;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -1480,7 +1444,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Collections;Stack;false;Synchronized;(System.Collections.Stack);;Argument[0].Element;ReturnValue;taint;generated", "System.Collections;Stack;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Collections;Stack;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", - "System.ComponentModel.Composition.Hosting;AggregateCatalog;false;GetExports;(System.ComponentModel.Composition.Primitives.ImportDefinition);;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;AggregateCatalog;false;get_Catalogs;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;AggregateExportProvider;false;AggregateExportProvider;(System.ComponentModel.Composition.Hosting.ExportProvider[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;AggregateExportProvider;false;GetExportsCore;(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition);;Argument[Qualifier];ReturnValue;taint;generated", @@ -1489,7 +1452,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.ComponentModel.Composition.Hosting;ApplicationCatalog;false;ApplicationCatalog;(System.Reflection.ReflectionContext);;Argument[0];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;ApplicationCatalog;false;ApplicationCatalog;(System.Reflection.ReflectionContext,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[0];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;ApplicationCatalog;false;ApplicationCatalog;(System.Reflection.ReflectionContext,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[1];Argument[Qualifier];taint;generated", - "System.ComponentModel.Composition.Hosting;ApplicationCatalog;false;GetExports;(System.ComponentModel.Composition.Primitives.ImportDefinition);;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;AssemblyCatalog;(System.Reflection.Assembly);;Argument[0];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;AssemblyCatalog;(System.Reflection.Assembly,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[0];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;AssemblyCatalog;(System.Reflection.Assembly,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[1];Argument[Qualifier];taint;generated", @@ -1502,7 +1464,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;AssemblyCatalog;(System.String,System.Reflection.ReflectionContext);;Argument[1];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;AssemblyCatalog;(System.String,System.Reflection.ReflectionContext,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[1];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;AssemblyCatalog;(System.String,System.Reflection.ReflectionContext,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[2];Argument[Qualifier];taint;generated", - "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;GetExports;(System.ComponentModel.Composition.Primitives.ImportDefinition);;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;get_Assembly;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;AssemblyCatalog;false;get_DisplayName;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -1539,7 +1500,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.ComponentModel.Composition.Hosting;CompositionScopeDefinition;false;CompositionScopeDefinition;(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;CompositionScopeDefinition;false;CompositionScopeDefinition;(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;CompositionScopeDefinition;false;CompositionScopeDefinition;(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);;Argument[2].Element;Argument[Qualifier];taint;generated", - "System.ComponentModel.Composition.Hosting;CompositionScopeDefinition;false;GetExports;(System.ComponentModel.Composition.Primitives.ImportDefinition);;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;CompositionScopeDefinition;false;get_Children;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;CompositionScopeDefinition;false;get_PublicSurface;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;DirectoryCatalog;false;DirectoryCatalog;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated", @@ -1554,7 +1514,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.ComponentModel.Composition.Hosting;DirectoryCatalog;false;DirectoryCatalog;(System.String,System.String,System.Reflection.ReflectionContext,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[1];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;DirectoryCatalog;false;DirectoryCatalog;(System.String,System.String,System.Reflection.ReflectionContext,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[2];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;DirectoryCatalog;false;DirectoryCatalog;(System.String,System.String,System.Reflection.ReflectionContext,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[3];Argument[Qualifier];taint;generated", - "System.ComponentModel.Composition.Hosting;DirectoryCatalog;false;GetExports;(System.ComponentModel.Composition.Primitives.ImportDefinition);;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;DirectoryCatalog;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;DirectoryCatalog;false;get_DisplayName;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;DirectoryCatalog;false;get_FullPath;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -1573,14 +1532,12 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.ComponentModel.Composition.Hosting;ExportsChangeEventArgs;false;get_AddedExports;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;ExportsChangeEventArgs;false;get_ChangedContractNames;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;ExportsChangeEventArgs;false;get_RemovedExports;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.ComponentModel.Composition.Hosting;FilteredCatalog;false;GetExports;(System.ComponentModel.Composition.Primitives.ImportDefinition);;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;FilteredCatalog;false;get_Complement;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Hosting;ImportEngine;false;ImportEngine;(System.ComponentModel.Composition.Hosting.ExportProvider,System.ComponentModel.Composition.Hosting.CompositionOptions);;Argument[0];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;TypeCatalog;false;TypeCatalog;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;TypeCatalog;false;TypeCatalog;(System.Collections.Generic.IEnumerable,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;TypeCatalog;false;TypeCatalog;(System.Collections.Generic.IEnumerable,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[1];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Hosting;TypeCatalog;false;TypeCatalog;(System.Collections.Generic.IEnumerable,System.Reflection.ReflectionContext,System.ComponentModel.Composition.Primitives.ICompositionElement);;Argument[2];Argument[Qualifier];taint;generated", - "System.ComponentModel.Composition.Primitives;ComposablePartCatalog;true;GetExports;(System.ComponentModel.Composition.Primitives.ImportDefinition);;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Primitives;ComposablePartCatalog;true;get_Parts;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel.Composition.Primitives;ComposablePartException;false;ComposablePartException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[Qualifier];taint;generated", "System.ComponentModel.Composition.Primitives;ComposablePartException;false;ComposablePartException;(System.String,System.ComponentModel.Composition.Primitives.ICompositionElement,System.Exception);;Argument[1];Argument[Qualifier];taint;generated", @@ -1781,9 +1738,7 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.ComponentModel;BaseNumberConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[1];ReturnValue;taint;generated", "System.ComponentModel;BaseNumberConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;generated", "System.ComponentModel;BindingList<>;false;InsertItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated", - "System.ComponentModel;BindingList<>;false;InsertItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated", "System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated", - "System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated", "System.ComponentModel;CategoryAttribute;false;CategoryAttribute;(System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.ComponentModel;CategoryAttribute;false;get_Category;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel;CharConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;generated", @@ -1917,7 +1872,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.ComponentModel;ToolboxItemAttribute;false;get_ToolboxItemTypeName;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel;ToolboxItemFilterAttribute;false;get_TypeId;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel;TypeConverter+StandardValuesCollection;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;generated", - "System.ComponentModel;TypeConverter+StandardValuesCollection;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel;TypeConverter+StandardValuesCollection;false;StandardValuesCollection;(System.Collections.ICollection);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.ComponentModel;TypeConverter+StandardValuesCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.ComponentModel;TypeConverter;false;ConvertFrom;(System.Object);;Argument[0];ReturnValue;taint;generated", @@ -2380,10 +2334,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Data.Common;DataTableMappingCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", "System.Data.Common;DbCommand;false;ExecuteReader;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbCommand;false;ExecuteReader;(System.Data.CommandBehavior);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data.Common;DbCommand;false;ExecuteReaderAsync;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data.Common;DbCommand;false;ExecuteReaderAsync;(System.Data.CommandBehavior);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data.Common;DbCommand;false;ExecuteReaderAsync;(System.Data.CommandBehavior,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data.Common;DbCommand;false;ExecuteReaderAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbCommand;false;get_Connection;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbCommand;false;get_Parameters;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbCommand;false;get_Transaction;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -2391,7 +2341,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Data.Common;DbCommand;false;set_Connection;(System.Data.IDbConnection);;Argument[0];Argument[Qualifier];taint;generated", "System.Data.Common;DbCommand;false;set_Transaction;(System.Data.Common.DbTransaction);;Argument[0];Argument[Qualifier];taint;generated", "System.Data.Common;DbCommand;false;set_Transaction;(System.Data.IDbTransaction);;Argument[0];Argument[Qualifier];taint;generated", - "System.Data.Common;DbCommand;true;ExecuteDbDataReaderAsync;(System.Data.CommandBehavior,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbCommand;true;PrepareAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Data.Common;DbCommandBuilder;false;GetDeleteCommand;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbCommandBuilder;false;GetDeleteCommand;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated", @@ -2418,7 +2367,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Data.Common;DbConnectionStringBuilder;false;AppendKeyValuePair;(System.Text.StringBuilder,System.String,System.String);;Argument[2];Argument[0];taint;generated", "System.Data.Common;DbConnectionStringBuilder;false;AppendKeyValuePair;(System.Text.StringBuilder,System.String,System.String,System.Boolean);;Argument[1];Argument[0];taint;generated", "System.Data.Common;DbConnectionStringBuilder;false;AppendKeyValuePair;(System.Text.StringBuilder,System.String,System.String,System.Boolean);;Argument[2];Argument[0];taint;generated", - "System.Data.Common;DbConnectionStringBuilder;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbConnectionStringBuilder;false;GetProperties;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbConnectionStringBuilder;false;GetProperties;(System.Attribute[]);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbConnectionStringBuilder;false;GetPropertyOwner;(System.ComponentModel.PropertyDescriptor);;Argument[Qualifier];ReturnValue;value;generated", @@ -2445,12 +2393,9 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Data.Common;DbDataAdapter;true;CreateRowUpdatingEvent;(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping);;Argument[0];ReturnValue;taint;generated", "System.Data.Common;DbDataAdapter;true;CreateRowUpdatingEvent;(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping);;Argument[1];ReturnValue;taint;generated", "System.Data.Common;DbDataAdapter;true;CreateRowUpdatingEvent;(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping);;Argument[3];ReturnValue;taint;generated", - "System.Data.Common;DbDataReader;false;GetFieldValueAsync<>;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbDataReader;true;GetFieldValue<>;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data.Common;DbDataReader;true;GetFieldValueAsync<>;(System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbDataReader;true;GetProviderSpecificValue;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbDataReader;true;GetProviderSpecificValues;(System.Object[]);;Argument[Qualifier];Argument[0].Element;taint;generated", - "System.Data.Common;DbDataReader;true;GetSchemaTableAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbDataReader;true;GetTextReader;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Common;DbDataRecord;false;GetPropertyOwner;(System.ComponentModel.PropertyDescriptor);;Argument[Qualifier];ReturnValue;value;generated", "System.Data.Common;DbEnumerator;false;DbEnumerator;(System.Data.IDataReader);;Argument[0];Argument[Qualifier];taint;generated", @@ -2595,7 +2540,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Data.Odbc;OdbcParameter;false;set_Value;(System.Object);;Argument[0];Argument[Qualifier];taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;Add;(System.Data.Odbc.OdbcParameter);;Argument[0];Argument[Qualifier];taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;Add;(System.Data.Odbc.OdbcParameter);;Argument[0];ReturnValue;taint;generated", - "System.Data.Odbc;OdbcParameterCollection;false;Add;(System.Data.Odbc.OdbcParameter);;Argument[Qualifier];Argument[0];taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;Add;(System.String,System.Data.Odbc.OdbcType);;Argument[0];Argument[Qualifier];taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;Add;(System.String,System.Data.Odbc.OdbcType);;Argument[0];ReturnValue;taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;Add;(System.String,System.Data.Odbc.OdbcType,System.Int32);;Argument[0];Argument[Qualifier];taint;generated", @@ -2617,7 +2561,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Data.Odbc;OdbcParameterCollection;false;GetParameter;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;GetParameter;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;Insert;(System.Int32,System.Data.Odbc.OdbcParameter);;Argument[1];Argument[Qualifier];taint;generated", - "System.Data.Odbc;OdbcParameterCollection;false;Insert;(System.Int32,System.Data.Odbc.OdbcParameter);;Argument[Qualifier];Argument[1];taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;SetParameter;(System.Int32,System.Data.Common.DbParameter);;Argument[Qualifier];Argument[1];taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;SetParameter;(System.String,System.Data.Common.DbParameter);;Argument[Qualifier];Argument[1];taint;generated", "System.Data.Odbc;OdbcParameterCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", @@ -2729,15 +2672,11 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Data;DataColumn;false;set_Prefix;(System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.Data;DataColumnChangeEventArgs;false;DataColumnChangeEventArgs;(System.Data.DataRow,System.Data.DataColumn,System.Object);;Argument[1];Argument[Qualifier];taint;generated", "System.Data;DataColumnChangeEventArgs;false;get_Column;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data;DataColumnCollection;false;Add;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data;DataColumnCollection;false;Add;(System.String,System.Type);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data;DataColumnCollection;false;Add;(System.String,System.Type,System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataColumnCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataColumnCollection;false;get_Item;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataColumnCollection;false;get_List;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataReaderExtensions;false;GetDateTime;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated", "System.Data;DataReaderExtensions;false;GetFieldValue<>;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated", - "System.Data;DataReaderExtensions;false;GetFieldValueAsync<>;(System.Data.Common.DbDataReader,System.String,System.Threading.CancellationToken);;Argument[0].Element;ReturnValue;taint;generated", "System.Data;DataReaderExtensions;false;GetGuid;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated", "System.Data;DataReaderExtensions;false;GetProviderSpecificValue;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated", "System.Data;DataReaderExtensions;false;GetString;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated", @@ -2767,16 +2706,10 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Data;DataRelation;false;get_RelationName;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataRelation;false;set_RelationName;(System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.Data;DataRelationCollection;false;Remove;(System.Data.DataRelation);;Argument[0];Argument[Qualifier];taint;generated", - "System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn,System.Data.DataColumn);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", "System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn,System.Boolean);;Argument[0];ReturnValue;taint;generated", - "System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn,System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", "System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean);;Argument[0];ReturnValue;taint;generated", - "System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataRow;false;DataRow;(System.Data.DataRowBuilder);;Argument[0];Argument[Qualifier];taint;generated", "System.Data;DataRow;false;GetChildRows;(System.Data.DataRelation);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataRow;false;GetChildRows;(System.Data.DataRelation,System.Data.DataRowVersion);;Argument[Qualifier];ReturnValue;taint;generated", @@ -2874,10 +2807,8 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Data;DataTable;false;set_PrimaryKey;(System.Data.DataColumn[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Data;DataTable;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[Qualifier];taint;generated", "System.Data;DataTable;false;set_TableName;(System.String);;Argument[0];Argument[Qualifier];taint;generated", - "System.Data;DataTableCollection;false;Add;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataTableCollection;false;Add;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated", "System.Data;DataTableCollection;false;Add;(System.String,System.String);;Argument[1];ReturnValue;taint;generated", - "System.Data;DataTableCollection;false;Add;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataTableCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataTableCollection;false;get_Item;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.Data;DataTableCollection;false;get_Item;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated", @@ -3180,29 +3111,20 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.DirectoryServices.Protocols;DirSyncRequestControl;false;DirSyncRequestControl;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.DirectoryServices.Protocols;DirSyncRequestControl;false;set_Cookie;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;Add;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated", - "System.DirectoryServices.Protocols;DirectoryAttribute;false;Add;(System.Byte[]);;Argument[Qualifier];Argument[0].Element;taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;Add;(System.String);;Argument[0];Argument[Qualifier];taint;generated", - "System.DirectoryServices.Protocols;DirectoryAttribute;false;Add;(System.String);;Argument[Qualifier];Argument[0];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;Add;(System.Uri);;Argument[0];Argument[Qualifier];taint;generated", - "System.DirectoryServices.Protocols;DirectoryAttribute;false;Add;(System.Uri);;Argument[Qualifier];Argument[0];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;AddRange;(System.Object[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;CopyTo;(System.Object[],System.Int32);;Argument[Qualifier];Argument[0].Element;taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;DirectoryAttribute;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;DirectoryAttribute;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated", - "System.DirectoryServices.Protocols;DirectoryAttribute;false;DirectoryAttribute;(System.String,System.Object[]);;Argument[Qualifier];Argument[1].Element;taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;GetValues;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;Insert;(System.Int32,System.Byte[]);;Argument[1].Element;Argument[Qualifier];taint;generated", - "System.DirectoryServices.Protocols;DirectoryAttribute;false;Insert;(System.Int32,System.Byte[]);;Argument[Qualifier];Argument[1].Element;taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;Insert;(System.Int32,System.String);;Argument[1];Argument[Qualifier];taint;generated", - "System.DirectoryServices.Protocols;DirectoryAttribute;false;Insert;(System.Int32,System.String);;Argument[Qualifier];Argument[1];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;Insert;(System.Int32,System.Uri);;Argument[1];Argument[Qualifier];taint;generated", - "System.DirectoryServices.Protocols;DirectoryAttribute;false;Insert;(System.Int32,System.Uri);;Argument[Qualifier];Argument[1];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;Remove;(System.Object);;Argument[0];Argument[Qualifier];taint;generated", - "System.DirectoryServices.Protocols;DirectoryAttribute;false;Remove;(System.Object);;Argument[Qualifier];Argument[0];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[Qualifier];taint;generated", - "System.DirectoryServices.Protocols;DirectoryAttribute;false;set_Item;(System.Int32,System.Object);;Argument[Qualifier];Argument[1];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttribute;false;set_Name;(System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttributeCollection;false;Add;(System.DirectoryServices.Protocols.DirectoryAttribute);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.DirectoryServices.Protocols;DirectoryAttributeCollection;false;AddRange;(System.DirectoryServices.Protocols.DirectoryAttributeCollection);;Argument[0].Element;Argument[Qualifier];taint;generated", @@ -3391,22 +3313,18 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Drawing.Printing;PrintPageEventArgs;false;get_PageBounds;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrintPageEventArgs;false;get_PageSettings;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrinterSettings+PaperSizeCollection;false;Add;(System.Drawing.Printing.PaperSize);;Argument[0];Argument[Qualifier];taint;generated", - "System.Drawing.Printing;PrinterSettings+PaperSizeCollection;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrinterSettings+PaperSizeCollection;false;PaperSizeCollection;(System.Drawing.Printing.PaperSize[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Drawing.Printing;PrinterSettings+PaperSizeCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrinterSettings+PaperSizeCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", "System.Drawing.Printing;PrinterSettings+PaperSourceCollection;false;Add;(System.Drawing.Printing.PaperSource);;Argument[0];Argument[Qualifier];taint;generated", - "System.Drawing.Printing;PrinterSettings+PaperSourceCollection;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrinterSettings+PaperSourceCollection;false;PaperSourceCollection;(System.Drawing.Printing.PaperSource[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Drawing.Printing;PrinterSettings+PaperSourceCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrinterSettings+PaperSourceCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", "System.Drawing.Printing;PrinterSettings+PrinterResolutionCollection;false;Add;(System.Drawing.Printing.PrinterResolution);;Argument[0];Argument[Qualifier];taint;generated", - "System.Drawing.Printing;PrinterSettings+PrinterResolutionCollection;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrinterSettings+PrinterResolutionCollection;false;PrinterResolutionCollection;(System.Drawing.Printing.PrinterResolution[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Drawing.Printing;PrinterSettings+PrinterResolutionCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrinterSettings+PrinterResolutionCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", "System.Drawing.Printing;PrinterSettings+StringCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier];taint;generated", - "System.Drawing.Printing;PrinterSettings+StringCollection;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrinterSettings+StringCollection;false;StringCollection;(System.String[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Drawing.Printing;PrinterSettings+StringCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Drawing.Printing;PrinterSettings+StringCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", @@ -3663,14 +3581,10 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.IO.Compression;BrotliStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.IO.Compression;BrotliStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO.Compression;DeflateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.IO.Compression;DeflateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO.Compression;DeflateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO.Compression;DeflateStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO.Compression;GZipStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.IO.Compression;GZipStream;false;GZipStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", "System.IO.Compression;GZipStream;false;GZipStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", - "System.IO.Compression;GZipStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO.Compression;GZipStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO.Compression;GZipStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO.Compression;ZLibException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated", "System.IO.Compression;ZLibException;false;ZLibException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[Qualifier];taint;generated", @@ -3709,7 +3623,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.IO.IsolatedStorage;IsolatedStorage;false;get_AssemblyIdentity;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO.IsolatedStorage;IsolatedStorage;false;get_DomainIdentity;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO.IsolatedStorage;IsolatedStorageFileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.IO.IsolatedStorage;IsolatedStorageFileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO.IsolatedStorage;IsolatedStorageFileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.IO.IsolatedStorage;IsolatedStorageFileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO.IsolatedStorage;IsolatedStorageFileStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", @@ -3830,7 +3743,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.IO;BinaryReader;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;BinaryWriter;false;BinaryWriter;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;BinaryWriter;false;BinaryWriter;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated", - "System.IO;BinaryWriter;false;DisposeAsync;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;BinaryWriter;false;Write;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.IO;BinaryWriter;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.IO;BinaryWriter;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -3899,7 +3811,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.IO;FileNotFoundException;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;FileNotFoundException;false;get_Message;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;FileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.IO;FileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;FileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.IO;FileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;FileStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", @@ -3956,26 +3867,14 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.IO;RenamedEventArgs;false;RenamedEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String,System.String);;Argument[3];Argument[Qualifier];taint;generated", "System.IO;RenamedEventArgs;false;get_OldFullPath;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;RenamedEventArgs;false;get_OldName;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;Stream;false;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;Stream;false;Synchronized;(System.IO.Stream);;Argument[0];ReturnValue;taint;generated", - "System.IO;Stream;true;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;Stream;true;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;Stream;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;StreamReader;false;StreamReader;(System.IO.Stream,System.Text.Encoding,System.Boolean,System.Int32,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;StreamReader;false;StreamReader;(System.IO.Stream,System.Text.Encoding,System.Boolean,System.Int32,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated", "System.IO;StreamReader;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;StreamReader;false;get_CurrentEncoding;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;StreamWriter;false;StreamWriter;(System.IO.Stream,System.Text.Encoding,System.Int32,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;StreamWriter;false;StreamWriter;(System.IO.Stream,System.Text.Encoding,System.Int32,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated", - "System.IO;StreamWriter;false;WriteAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.IO;StreamWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteAsync;(System.String);;Argument[0];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;StreamWriter;false;WriteLine;(System.String,System.Object);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;StreamWriter;false;WriteLine;(System.String,System.Object);;Argument[1];Argument[Qualifier];taint;generated", "System.IO;StreamWriter;false;WriteLine;(System.String,System.Object,System.Object);;Argument[0];Argument[Qualifier];taint;generated", @@ -3987,15 +3886,7 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.IO;StreamWriter;false;WriteLine;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier];taint;generated", "System.IO;StreamWriter;false;WriteLine;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;StreamWriter;false;WriteLine;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated", - "System.IO;StreamWriter;false;WriteLineAsync;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteLineAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.IO;StreamWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteLineAsync;(System.String);;Argument[0];ReturnValue;taint;generated", - "System.IO;StreamWriter;false;WriteLineAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;StreamWriter;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;StreamWriter;false;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;StringWriter;false;GetStringBuilder;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -4003,29 +3894,19 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.IO;StringWriter;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;StringWriter;false;Write;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.IO;StringWriter;false;Write;(System.String);;Argument[0];Argument[Qualifier];taint;generated", - "System.IO;StringWriter;false;Write;(System.Text.StringBuilder);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;StringWriter;false;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.IO;StringWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.IO;StringWriter;false;WriteAsync;(System.String);;Argument[0];Argument[Qualifier];taint;generated", - "System.IO;StringWriter;false;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;StringWriter;false;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", - "System.IO;StringWriter;false;WriteLine;(System.Text.StringBuilder);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;StringWriter;false;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.IO;StringWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.IO;StringWriter;false;WriteLineAsync;(System.String);;Argument[0];Argument[Qualifier];taint;generated", - "System.IO;StringWriter;false;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;StringWriter;false;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", - "System.IO;StringWriter;false;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;TextReader;false;Synchronized;(System.IO.TextReader);;Argument[0];ReturnValue;taint;generated", "System.IO;TextWriter;false;Synchronized;(System.IO.TextWriter);;Argument[0];ReturnValue;taint;generated", "System.IO;TextWriter;false;TextWriter;(System.IFormatProvider);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;TextWriter;false;WriteAsync;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated", - "System.IO;TextWriter;false;WriteAsync;(System.Char[]);;Argument[0].Element;ReturnValue;taint;generated", - "System.IO;TextWriter;false;WriteAsync;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;TextWriter;false;WriteLineAsync;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated", - "System.IO;TextWriter;false;WriteLineAsync;(System.Char[]);;Argument[0].Element;ReturnValue;taint;generated", - "System.IO;TextWriter;false;WriteLineAsync;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;TextWriter;true;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;TextWriter;true;Write;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.IO;TextWriter;true;Write;(System.Object);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;TextWriter;true;Write;(System.String,System.Object);;Argument[0];Argument[Qualifier];taint;generated", @@ -4039,14 +3920,7 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.IO;TextWriter;true;Write;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier];taint;generated", "System.IO;TextWriter;true;Write;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;TextWriter;true;Write;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated", - "System.IO;TextWriter;true;WriteAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.IO;TextWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteAsync;(System.String);;Argument[0];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;TextWriter;true;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.IO;TextWriter;true;WriteLine;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.IO;TextWriter;true;WriteLine;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated", @@ -4063,18 +3937,8 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.IO;TextWriter;true;WriteLine;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier];taint;generated", "System.IO;TextWriter;true;WriteLine;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated", "System.IO;TextWriter;true;WriteLine;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated", - "System.IO;TextWriter;true;WriteLine;(System.Text.StringBuilder);;Argument[0];Argument[Qualifier];taint;generated", - "System.IO;TextWriter;true;WriteLineAsync;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteLineAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.IO;TextWriter;true;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteLineAsync;(System.String);;Argument[0];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteLineAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;TextWriter;true;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", - "System.IO;TextWriter;true;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;TextWriter;true;get_FormatProvider;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;TextWriter;true;get_NewLine;();;Argument[Qualifier];ReturnValue;taint;generated", "System.IO;TextWriter;true;set_NewLine;(System.String);;Argument[0];Argument[Qualifier];taint;generated", @@ -4673,7 +4537,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Http.Headers;HeaderStringValues;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http.Headers;HttpHeaders;false;get_NonValidated;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http.Headers;HttpHeadersNonValidated+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Http.Headers;HttpHeadersNonValidated;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http.Headers;HttpHeadersNonValidated;false;TryGetValue;(System.String,System.Net.Http.Headers.HeaderStringValues);;Argument[0];ReturnValue;taint;generated", "System.Net.Http.Headers;HttpHeadersNonValidated;false;TryGetValues;(System.String,System.Net.Http.Headers.HeaderStringValues);;Argument[0];ReturnValue;taint;generated", "System.Net.Http.Headers;HttpHeadersNonValidated;false;get_Item;(System.String);;Argument[0];ReturnValue;taint;generated", @@ -4774,23 +4637,14 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Http;ByteArrayContent;false;ByteArrayContent;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Net.Http;ByteArrayContent;false;ByteArrayContent;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Net.Http;ByteArrayContent;false;CreateContentReadStream;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Http;ByteArrayContent;false;CreateContentReadStreamAsync;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;ByteArrayContent;false;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[0];ReturnValue;taint;generated", "System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated", "System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;DelegatingHandler;false;DelegatingHandler;(System.Net.Http.HttpMessageHandler);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Http;DelegatingHandler;false;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.Net.Http;DelegatingHandler;false;get_InnerHandler;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;DelegatingHandler;false;set_InnerHandler;(System.Net.Http.HttpMessageHandler);;Argument[0];Argument[Qualifier];taint;generated", - "System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated", "System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage);;Argument[Qualifier];Argument[0];taint;generated", "System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption);;Argument[Qualifier];Argument[0];taint;generated", "System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated", @@ -4817,10 +4671,7 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Http;HttpContent;false;ReadAsStreamAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;HttpContent;false;get_Headers;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;HttpContent;true;CreateContentReadStream;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Http;HttpContent;true;CreateContentReadStreamAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Http;HttpContent;true;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Http;HttpContent;true;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Http;HttpContent;true;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;HttpMessageInvoker;false;HttpMessageInvoker;(System.Net.Http.HttpMessageHandler,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Http;HttpMessageInvoker;false;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.Net.Http;HttpMethod;false;HttpMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated", @@ -4855,7 +4706,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent,System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Http;MultipartFormDataContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated", "System.Net.Http;ReadOnlyMemoryContent;false;CreateContentReadStream;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Http;ReadOnlyMemoryContent;false;CreateContentReadStreamAsync;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;ReadOnlyMemoryContent;false;ReadOnlyMemoryContent;(System.ReadOnlyMemory);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Http;SocketsHttpConnectionContext;false;get_DnsEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;SocketsHttpConnectionContext;false;get_InitialRequestMessage;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -4894,19 +4744,11 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Http;SocketsHttpPlaintextStreamFilterContext;false;get_NegotiatedHttpVersion;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;SocketsHttpPlaintextStreamFilterContext;false;get_PlaintextStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;StreamContent;false;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[0];ReturnValue;taint;generated", "System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated", "System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Http;StreamContent;false;StreamContent;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Http;StreamContent;false;StreamContent;(System.IO.Stream,System.Int32);;Argument[0];Argument[Qualifier];taint;generated", - "System.Net.Http;StringContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.Net.Http;StringContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated", "System.Net.Http;StringContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Http;StringContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Mail;AlternateView;false;CreateAlternateViewFromString;(System.String);;Argument[0];ReturnValue;taint;generated", "System.Net.Mail;AlternateView;false;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);;Argument[0];ReturnValue;taint;generated", "System.Net.Mail;AlternateView;false;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);;Argument[1];ReturnValue;taint;generated", @@ -5039,7 +4881,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Quic;QuicListener;false;QuicListener;(System.Net.Quic.Implementations.QuicImplementationProvider,System.Net.Quic.QuicListenerOptions);;Argument[1];Argument[Qualifier];taint;generated", "System.Net.Quic;QuicListener;false;get_ListenEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Security;AuthenticatedStream;false;AuthenticatedStream;(System.IO.Stream,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", - "System.Net.Security;AuthenticatedStream;false;DisposeAsync;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Security;AuthenticatedStream;false;get_InnerStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[1];Argument[Qualifier];taint;generated", "System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[2];Argument[Qualifier];taint;generated", @@ -5058,7 +4899,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "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[Qualifier];taint;generated", "System.Net.Security;NegotiateStream;false;AuthenticateAsServerAsync;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Security;NegotiateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.Net.Security;NegotiateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Security;NegotiateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Security;NegotiateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.Net.Security;NegotiateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", @@ -5071,7 +4911,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Security;SslCertificateTrust;false;CreateForX509Collection;(System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean);;Argument[0].Element;ReturnValue;taint;generated", "System.Net.Security;SslCertificateTrust;false;CreateForX509Store;(System.Security.Cryptography.X509Certificates.X509Store,System.Boolean);;Argument[0];ReturnValue;taint;generated", "System.Net.Security;SslStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.Net.Security;SslStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Security;SslStream;false;Write;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Net.Security;SslStream;false;get_LocalCertificate;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Security;SslStream;false;get_NegotiatedApplicationProtocol;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -5102,7 +4941,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Sockets;NetworkStream;false;get_Socket;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Sockets;SafeSocketHandle;false;SafeSocketHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Sockets;Socket;false;Accept;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", @@ -5126,7 +4964,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Sockets;Socket;false;DisconnectAsync;(System.Boolean,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;DisconnectAsync;(System.Boolean,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;DisconnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated", - "System.Net.Sockets;Socket;false;EndAccept;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", @@ -5146,8 +4983,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.EndPoint);;Argument[1];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated", "System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];ReturnValue;taint;generated", - "System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.ArraySegment,System.Net.EndPoint);;Argument[1];ReturnValue;taint;generated", - "System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated", @@ -5161,8 +4996,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[4];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[2];Argument[Qualifier];taint;generated", "System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[2];ReturnValue;taint;generated", - "System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.ArraySegment,System.Net.EndPoint);;Argument[1];ReturnValue;taint;generated", - "System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated", @@ -5221,7 +5054,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Sockets;SocketAsyncEventArgs;false;set_SendPacketsElements;(System.Net.Sockets.SendPacketsElement[]);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Net.Sockets;SocketAsyncEventArgs;false;set_UserToken;(System.Object);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Sockets;SocketException;false;get_Message;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Sockets;SocketTaskExtensions;false;AcceptAsync;(System.Net.Sockets.Socket,System.Net.Sockets.Socket);;Argument[1];ReturnValue;taint;generated", "System.Net.Sockets;SocketTaskExtensions;false;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint);;Argument[1];Argument[0];taint;generated", "System.Net.Sockets;SocketTaskExtensions;false;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;SocketTaskExtensions;false;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[1];Argument[0];taint;generated", @@ -5233,8 +5065,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Sockets;SocketTaskExtensions;false;ReceiveAsync;(System.Net.Sockets.Socket,System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;SocketTaskExtensions;false;ReceiveAsync;(System.Net.Sockets.Socket,System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated", "System.Net.Sockets;SocketTaskExtensions;false;ReceiveAsync;(System.Net.Sockets.Socket,System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated", - "System.Net.Sockets;SocketTaskExtensions;false;ReceiveFromAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];ReturnValue;taint;generated", - "System.Net.Sockets;SocketTaskExtensions;false;ReceiveMessageFromAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];ReturnValue;taint;generated", "System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;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;generated", @@ -5249,8 +5079,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net.Sockets;TcpListener;false;AcceptTcpClient;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net.Sockets;TcpListener;false;EndAcceptSocket;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", - "System.Net.Sockets;TcpListener;false;EndAcceptTcpClient;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", "System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated", "System.Net.Sockets;TcpListener;false;get_LocalEndpoint;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -5335,17 +5163,11 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net;CookieCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated", "System.Net;CookieException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated", "System.Net;CredentialCache;false;GetCredential;(System.Uri,System.String);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net;Dns;false;EndGetHostAddresses;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", - "System.Net;Dns;false;EndGetHostByName;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", - "System.Net;Dns;false;EndGetHostEntry;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", - "System.Net;Dns;false;EndResolve;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", "System.Net;DnsEndPoint;false;DnsEndPoint;(System.String,System.Int32,System.Net.Sockets.AddressFamily);;Argument[0];Argument[Qualifier];taint;generated", "System.Net;DnsEndPoint;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;DnsEndPoint;false;get_Host;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;DownloadDataCompletedEventArgs;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;DownloadStringCompletedEventArgs;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net;FileWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", - "System.Net;FileWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", "System.Net;FileWebRequest;false;GetRequestStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;FileWebRequest;false;GetResponse;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;FileWebRequest;false;get_ContentType;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -5419,9 +5241,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net;HttpListenerTimeoutManager;false;get_IdleConnection;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;HttpListenerTimeoutManager;false;set_DrainEntityBody;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated", "System.Net;HttpListenerTimeoutManager;false;set_IdleConnection;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated", - "System.Net;HttpWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", - "System.Net;HttpWebRequest;false;EndGetRequestStream;(System.IAsyncResult,System.Net.TransportContext);;Argument[0];ReturnValue;taint;generated", - "System.Net;HttpWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", "System.Net;HttpWebRequest;false;GetRequestStream;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;HttpWebRequest;false;GetRequestStream;(System.Net.TransportContext);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;HttpWebRequest;false;GetResponse;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -5478,7 +5297,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net;OpenWriteCompletedEventArgs;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;PathList;false;get_Item;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;PathList;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Net;PathList;false;get_Values;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;ProtocolViolationException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated", "System.Net;UploadDataCompletedEventArgs;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Net;UploadFileCompletedEventArgs;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -5508,8 +5326,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest);;Argument[0];ReturnValue;taint;generated", "System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[0];Argument[Qualifier];taint;generated", "System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[0];ReturnValue;taint;generated", - "System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[1];Argument[Qualifier];taint;generated", - "System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[1];ReturnValue;taint;generated", "System.Net;WebClient;false;OpenRead;(System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.Net;WebClient;false;OpenRead;(System.String);;Argument[0];ReturnValue;taint;generated", "System.Net;WebClient;false;OpenRead;(System.String);;Argument[Qualifier];ReturnValue;taint;generated", @@ -6425,7 +6241,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Resources;ResourceReader;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Resources;ResourceReader;false;GetResourceData;(System.String,System.String,System.Byte[]);;Argument[Qualifier];ReturnValue;taint;generated", "System.Resources;ResourceReader;false;ResourceReader;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated", - "System.Resources;ResourceSet;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Resources;ResourceSet;false;ResourceSet;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated", "System.Resources;ResourceSet;false;ResourceSet;(System.Resources.IResourceReader);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Resources;ResourceWriter;false;ResourceWriter;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated", @@ -6836,7 +6651,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Security.Cryptography.Pkcs;Pkcs12SafeBag;false;set_Attributes;(System.Security.Cryptography.CryptographicAttributeObjectCollection);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Security.Cryptography.Pkcs;Pkcs12SafeContents;false;AddSafeBag;(System.Security.Cryptography.Pkcs.Pkcs12SafeBag);;Argument[0];Argument[Qualifier];taint;generated", "System.Security.Cryptography.Pkcs;Pkcs12SafeContents;false;AddSecret;(System.Security.Cryptography.Oid,System.ReadOnlyMemory);;Argument[0];ReturnValue;taint;generated", - "System.Security.Cryptography.Pkcs;Pkcs12SafeContents;false;GetBags;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.Pkcs;Pkcs12SecretBag;false;GetSecretType;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.Pkcs;Pkcs12SecretBag;false;get_SecretValue;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.Pkcs;Pkcs9AttributeObject;false;CopyFrom;(System.Security.Cryptography.AsnEncodedData);;Argument[0];Argument[Qualifier];taint;generated", @@ -6923,7 +6737,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Security.Cryptography.X509Certificates;X509Certificate;false;ToString;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.X509Certificates;X509Certificate;false;get_Issuer;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.X509Certificates;X509Certificate;false;get_Subject;();;Argument[Qualifier];ReturnValue;taint;generated", - "System.Security.Cryptography.X509Certificates;X509CertificateCollection+X509CertificateEnumerator;false;X509CertificateEnumerator;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Security.Cryptography.X509Certificates;X509CertificateCollection+X509CertificateEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;Remove;(System.Security.Cryptography.X509Certificates.X509Certificate);;Argument[0];Argument[Qualifier];taint;generated", "System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;X509CertificateCollection;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[Qualifier];taint;generated", @@ -7044,7 +6857,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;set_ItemOf;(System.Int32,System.Security.Cryptography.Xml.EncryptionProperty);;Argument[1];Argument[Qualifier];taint;generated", "System.Security.Cryptography.Xml;KeyInfo;false;AddClause;(System.Security.Cryptography.Xml.KeyInfoClause);;Argument[0];Argument[Qualifier];taint;generated", - "System.Security.Cryptography.Xml;KeyInfo;false;GetEnumerator;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.Xml;KeyInfo;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Security.Cryptography.Xml;KeyInfo;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.Xml;KeyInfo;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated", @@ -7157,7 +6969,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Security.Cryptography.Xml;Transform;false;set_Context;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated", "System.Security.Cryptography.Xml;Transform;false;set_Resolver;(System.Xml.XmlResolver);;Argument[0];Argument[Qualifier];taint;generated", "System.Security.Cryptography.Xml;TransformChain;false;Add;(System.Security.Cryptography.Xml.Transform);;Argument[0];Argument[Qualifier];taint;generated", - "System.Security.Cryptography.Xml;TransformChain;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.Xml;TransformChain;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography.Xml;XmlDecryptionTransform;false;AddExceptUri;(System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.Security.Cryptography.Xml;XmlDecryptionTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -7223,7 +7034,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Security.Cryptography;CryptoStream;false;CryptoStream;(System.IO.Stream,System.Security.Cryptography.ICryptoTransform,System.Security.Cryptography.CryptoStreamMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", "System.Security.Cryptography;CryptoStream;false;CryptoStream;(System.IO.Stream,System.Security.Cryptography.ICryptoTransform,System.Security.Cryptography.CryptoStreamMode,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated", "System.Security.Cryptography;CryptoStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.Security.Cryptography;CryptoStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography;CryptographicAttributeObject;false;CryptographicAttributeObject;(System.Security.Cryptography.Oid,System.Security.Cryptography.AsnEncodedDataCollection);;Argument[0];Argument[Qualifier];taint;generated", "System.Security.Cryptography;CryptographicAttributeObject;false;get_Oid;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Security.Cryptography;CryptographicAttributeObjectCollection;false;Add;(System.Security.Cryptography.CryptographicAttributeObject);;Argument[0];Argument[Qualifier];taint;generated", @@ -7488,7 +7298,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Text.Encodings.Web;TextEncoder;true;Encode;(System.IO.TextWriter,System.String,System.Int32,System.Int32);;Argument[1];Argument[0];taint;generated", "System.Text.Encodings.Web;TextEncoder;true;Encode;(System.String);;Argument[0];ReturnValue;taint;generated", "System.Text.Json.Nodes;JsonArray;false;Add<>;(T);;Argument[0];Argument[Qualifier];taint;generated", - "System.Text.Json.Nodes;JsonArray;false;Add<>;(T);;Argument[Qualifier];Argument[0];taint;generated", "System.Text.Json.Nodes;JsonArray;false;Create;(System.Text.Json.JsonElement,System.Nullable);;Argument[0];ReturnValue;taint;generated", "System.Text.Json.Nodes;JsonArray;false;JsonArray;(System.Text.Json.Nodes.JsonNodeOptions,System.Text.Json.Nodes.JsonNode[]);;Argument[Qualifier];Argument[1].Element;taint;generated", "System.Text.Json.Nodes;JsonArray;false;JsonArray;(System.Text.Json.Nodes.JsonNode[]);;Argument[Qualifier];Argument[0].Element;taint;generated", @@ -7508,7 +7317,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[Qualifier];Argument[0];taint;generated", "System.Text.Json.Serialization;JsonSerializerContext;false;get_Options;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Text.Json.Serialization;JsonStringEnumConverter;false;JsonStringEnumConverter;(System.Text.Json.JsonNamingPolicy,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", - "System.Text.Json.SourceGeneration;JsonSourceGenerator;false;GetSerializableTypes;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Text.Json;JsonDocument;false;Parse;(System.Buffers.ReadOnlySequence,System.Text.Json.JsonDocumentOptions);;Argument[0];ReturnValue;taint;generated", "System.Text.Json;JsonDocument;false;Parse;(System.IO.Stream,System.Text.Json.JsonDocumentOptions);;Argument[0];ReturnValue;taint;generated", "System.Text.Json;JsonDocument;false;Parse;(System.ReadOnlyMemory,System.Text.Json.JsonDocumentOptions);;Argument[0];ReturnValue;taint;generated", @@ -7733,7 +7541,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Threading.RateLimiting;MetadataName<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Threading.RateLimiting;MetadataName<>;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Threading.RateLimiting;RateLimitLease;false;TryGetMetadata<>;(System.Threading.RateLimiting.MetadataName,T);;Argument[Qualifier];ReturnValue;taint;generated", - "System.Threading.RateLimiting;RateLimitLease;true;GetAllMetadata;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Threading.RateLimiting;RateLimiter;false;Acquire;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated", "System.Threading.RateLimiting;RateLimiter;false;WaitAsync;(System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated", "System.Threading.RateLimiting;TokenBucketRateLimiter;false;TokenBucketRateLimiter;(System.Threading.RateLimiting.TokenBucketRateLimiterOptions);;Argument[0];Argument[Qualifier];taint;generated", @@ -7775,10 +7582,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan);;Argument[0];ReturnValue;taint;generated", "System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[0];ReturnValue;taint;generated", - "System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", - "System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan);;Argument[0];ReturnValue;taint;generated", - "System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated", "System.Threading.Tasks.Dataflow;DataflowBlock;false;SendAsync<>;(System.Threading.Tasks.Dataflow.ITargetBlock,TInput,System.Threading.CancellationToken);;Argument[1];Argument[0];taint;generated", "System.Threading.Tasks.Dataflow;DataflowBlock;false;TryReceive<>;(System.Threading.Tasks.Dataflow.IReceivableSourceBlock,TOutput);;Argument[0];ReturnValue;taint;generated", "System.Threading.Tasks.Dataflow;DataflowBlockOptions;false;get_CancellationToken;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -8374,12 +8177,9 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Xml.Schema;XmlSchemaSet;false;Add;(System.String,System.Xml.XmlReader);;Argument[Qualifier];ReturnValue;taint;generated", "System.Xml.Schema;XmlSchemaSet;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[Qualifier];taint;generated", "System.Xml.Schema;XmlSchemaSet;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;generated", - "System.Xml.Schema;XmlSchemaSet;false;Add;(System.Xml.Schema.XmlSchemaSet);;Argument[0];Argument[Qualifier];taint;generated", - "System.Xml.Schema;XmlSchemaSet;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[Qualifier];Argument[0].Element;taint;generated", "System.Xml.Schema;XmlSchemaSet;false;Remove;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;generated", "System.Xml.Schema;XmlSchemaSet;false;Reprocess;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[Qualifier];taint;generated", "System.Xml.Schema;XmlSchemaSet;false;Reprocess;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;generated", - "System.Xml.Schema;XmlSchemaSet;false;Schemas;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Xml.Schema;XmlSchemaSet;false;XmlSchemaSet;(System.Xml.XmlNameTable);;Argument[0];Argument[Qualifier];taint;generated", "System.Xml.Schema;XmlSchemaSet;false;get_CompilationSettings;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Xml.Schema;XmlSchemaSet;false;get_GlobalAttributes;();;Argument[Qualifier];ReturnValue;taint;generated", @@ -8466,10 +8266,8 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Xml.Schema;XmlSchemaXPath;false;get_XPath;();;Argument[Qualifier];ReturnValue;taint;generated", "System.Xml.Schema;XmlSchemaXPath;false;set_XPath;(System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[1];Argument[Qualifier];taint;generated", - "System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[Qualifier];Argument[1];taint;generated", "System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[0];ReturnValue;taint;generated", "System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[1];Argument[Qualifier];taint;generated", - "System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[Qualifier];Argument[1];taint;generated", "System.Xml.Serialization;CodeIdentifiers;false;MakeUnique;(System.String);;Argument[0];ReturnValue;taint;generated", "System.Xml.Serialization;CodeIdentifiers;false;ToArray;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated", "System.Xml.Serialization;ImportContext;false;ImportContext;(System.Xml.Serialization.CodeIdentifiers,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", @@ -8752,7 +8550,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Xml.Serialization;XmlSerializationWriter;false;WriteElementStringRaw;(System.String,System.String,System.String);;Argument[2];Argument[Qualifier];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WriteElementStringRaw;(System.String,System.String,System.String,System.Xml.XmlQualifiedName);;Argument[2];Argument[Qualifier];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WriteElementStringRaw;(System.String,System.String,System.Xml.XmlQualifiedName);;Argument[1];Argument[Qualifier];taint;generated", - "System.Xml.Serialization;XmlSerializationWriter;false;WriteId;(System.Object);;Argument[Qualifier];Argument[0];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringEncoded;(System.String,System.String,System.String,System.Xml.XmlQualifiedName);;Argument[2];Argument[Qualifier];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringEncodedRaw;(System.String,System.String,System.Byte[],System.Xml.XmlQualifiedName);;Argument[2].Element;Argument[Qualifier];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringEncodedRaw;(System.String,System.String,System.String,System.Xml.XmlQualifiedName);;Argument[2];Argument[Qualifier];taint;generated", @@ -8760,15 +8557,9 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringLiteralRaw;(System.String,System.String,System.Byte[]);;Argument[2].Element;Argument[Qualifier];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringLiteralRaw;(System.String,System.String,System.String);;Argument[2];Argument[Qualifier];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object);;Argument[2];Argument[Qualifier];taint;generated", - "System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object);;Argument[Qualifier];Argument[2];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type);;Argument[2];Argument[Qualifier];taint;generated", - "System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type);;Argument[Qualifier];Argument[2];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated", - "System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean);;Argument[Qualifier];Argument[2];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated", - "System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean,System.Boolean);;Argument[Qualifier];Argument[2];taint;generated", - "System.Xml.Serialization;XmlSerializationWriter;false;WriteReferencingElement;(System.String,System.String,System.Object);;Argument[Qualifier];Argument[2];taint;generated", - "System.Xml.Serialization;XmlSerializationWriter;false;WriteReferencingElement;(System.String,System.String,System.Object,System.Boolean);;Argument[Qualifier];Argument[2];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WriteRpcResult;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WriteRpcResult;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated", "System.Xml.Serialization;XmlSerializationWriter;false;WriteSerializable;(System.Xml.Serialization.IXmlSerializable,System.String,System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated", @@ -9945,27 +9736,6 @@ private class RuntimeSummaryCsv extends SummaryModelCsv { "System;Tuple<,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated", "System;Tuple<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated", "System;Tuple<>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated", - "System;TupleExtensions;false;ToTuple<>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated", "System;TupleExtensions;false;ToValueTuple<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple>>);;Argument[0];ReturnValue;taint;generated", "System;TupleExtensions;false;ToValueTuple<,,,,,,,,,,,,,,,,,,,>;(System.Tuple>>);;Argument[0];ReturnValue;taint;generated", "System;TupleExtensions;false;ToValueTuple<,,,,,,,,,,,,,,,,,,>;(System.Tuple>>);;Argument[0];ReturnValue;taint;generated", From 8899bf7f059ad0630366c53557419af1b0cf5084 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 22 Jun 2022 13:03:23 +0200 Subject: [PATCH 105/736] C#: Update tests. --- .../dataflow/library/FlowSummaries.expected | 241 ------------------ .../library/FlowSummariesFiltered.expected | 170 +----------- 2 files changed, 8 insertions(+), 403 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index b6d827ca880..2d9fce246fb 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -336,7 +336,6 @@ | System.Collections.Concurrent;ConcurrentDictionary<,>;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | -| System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,TValue);;Argument[1];ReturnValue;taint;generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | @@ -370,9 +369,6 @@ | System.Collections.Generic;CollectionExtensions;false;GetValueOrDefault<,>;(System.Collections.Generic.IReadOnlyDictionary,TKey,TValue);;Argument[1];ReturnValue;taint;generated | | System.Collections.Generic;CollectionExtensions;false;GetValueOrDefault<,>;(System.Collections.Generic.IReadOnlyDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;generated | | System.Collections.Generic;CollectionExtensions;false;Remove<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[0].Element;ReturnValue;taint;generated | -| System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[0].Element;Argument[2];taint;generated | -| System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[1];Argument[0].Element;taint;generated | -| System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[2];Argument[0].Element;taint;generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Entry;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -451,8 +447,6 @@ | System.Collections.Generic;IList<>;true;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | | System.Collections.Generic;IList<>;true;set_Item;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.Generic;ISet<>;true;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual | -| System.Collections.Generic;KeyValuePair;false;Create<,>;(TKey,TValue);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Generic;KeyValuePair;false;Create<,>;(TKey,TValue);;Argument[1];ReturnValue;taint;generated | | System.Collections.Generic;KeyValuePair<,>;false;Deconstruct;(TKey,TValue);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -726,12 +720,6 @@ | System.Collections.Immutable;ImmutableDictionary;false;Create<,>;(System.Collections.Generic.IEqualityComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;Create<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;Create<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;GetValueOrDefault<,>;(System.Collections.Immutable.IImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;taint;generated | @@ -802,8 +790,6 @@ | System.Collections.Immutable;ImmutableDictionary<,>;false;set_Item;(System.Object,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Immutable;ImmutableDictionary<,>;false;set_Item;(TKey,TValue);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary<,>;false;set_Item;(TKey,TValue);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Immutable;ImmutableHashSet;false;Create<>;(System.Collections.Generic.IEqualityComparer,T);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableHashSet;false;Create<>;(T);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableHashSet;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableHashSet;false;CreateRange<>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableHashSet;false;ToImmutableHashSet<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | @@ -836,9 +822,6 @@ | System.Collections.Immutable;ImmutableHashSet<>;false;get_KeyComparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableHashSet<>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | | System.Collections.Immutable;ImmutableInterlocked;false;GetOrAdd<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableList;false;Create<>;(T);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableList;false;Create<>;(T[]);;Argument[0].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableList;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableList;false;Remove<>;(System.Collections.Immutable.IImmutableList,T);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableList;false;RemoveRange<>;(System.Collections.Immutable.IImmutableList,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableList;false;Replace<>;(System.Collections.Immutable.IImmutableList,T,T);;Argument[0].Element;ReturnValue;taint;generated | @@ -945,12 +928,6 @@ | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateBuilder<,>;(System.Collections.Generic.IComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateBuilder<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateBuilder<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);;Argument[1].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[1];ReturnValue;taint;generated | @@ -988,7 +965,6 @@ | System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;set_Item;(TKey,TValue);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;set_KeyComparer;(System.Collections.Generic.IComparer);;Argument[0];Argument[Qualifier];taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;set_ValueComparer;(System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[Qualifier];taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary<,>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | @@ -1027,10 +1003,7 @@ | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;set_Item;(TKey,TValue);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;set_Item;(TKey,TValue);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer,T);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer,T);;Argument[1];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer,T[]);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(T);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet;false;CreateBuilder<>;(System.Collections.Generic.IComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet;false;CreateRange<>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet;false;CreateRange<>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated | @@ -1047,7 +1020,6 @@ | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet<>+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;IntersectWith;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;SymmetricExceptWith;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;ToImmutable;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;TryGetValue;(T,T);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;TryGetValue;(T,T);;Argument[Qualifier];ReturnValue;taint;generated | @@ -1068,12 +1040,8 @@ | System.Collections.Immutable;ImmutableSortedSet<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet<>+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet<>;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet<>;false;Insert;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet<>;false;Intersect;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;Remove;(T);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet<>;false;SymmetricExcept;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | -| System.Collections.Immutable;ImmutableSortedSet<>;false;SymmetricExcept;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedSet<>;false;SymmetricExcept;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;ToBuilder;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;TryGetValue;(T,T);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;TryGetValue;(T,T);;Argument[Qualifier];ReturnValue;taint;generated | @@ -1111,27 +1079,21 @@ | System.Collections.ObjectModel;Collection<>;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.ObjectModel;Collection<>;false;Insert;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.ObjectModel;Collection<>;false;InsertItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;Collection<>;false;InsertItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;Collection<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;Collection<>;false;SetItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;Collection<>;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | | System.Collections.ObjectModel;Collection<>;false;get_Items;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;Collection<>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;Collection<>;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.ObjectModel;Collection<>;false;set_Item;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.ObjectModel;KeyedCollection<,>;false;InsertItem;(System.Int32,TItem);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;KeyedCollection<,>;false;InsertItem;(System.Int32,TItem);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;KeyedCollection;(System.Collections.Generic.IEqualityComparer,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;SetItem;(System.Int32,TItem);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;KeyedCollection<,>;false;SetItem;(System.Int32,TItem);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;TryGetValue;(TKey,TItem);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;get_Dictionary;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;get_Item;(TKey);;Argument[Qualifier].Element;ReturnValue;value;manual | | System.Collections.ObjectModel;ObservableCollection<>;false;InsertItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;ObservableCollection<>;false;InsertItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;Add;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | @@ -1328,7 +1290,6 @@ | System.Collections;CollectionBase;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections;CollectionBase;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections;CollectionBase;false;Remove;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | -| System.Collections;CollectionBase;false;Remove;(System.Object);;Argument[Qualifier];Argument[0];taint;generated | | System.Collections;CollectionBase;false;get_InnerList;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections;CollectionBase;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | | System.Collections;CollectionBase;false;get_List;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -1559,9 +1520,7 @@ | System.ComponentModel;BaseNumberConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;generated | | System.ComponentModel;BindingList<>;false;Find;(System.ComponentModel.PropertyDescriptor,System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual | | System.ComponentModel;BindingList<>;false;InsertItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.ComponentModel;BindingList<>;false;InsertItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.ComponentModel;CategoryAttribute;false;CategoryAttribute;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.ComponentModel;CategoryAttribute;false;get_Category;();;Argument[Qualifier];ReturnValue;taint;generated | | System.ComponentModel;CharConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;generated | @@ -1882,10 +1841,6 @@ | System.Data.Common;DataTableMappingCollection;false;set_Item;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Data.Common;DbCommand;false;ExecuteReader;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;ExecuteReader;(System.Data.CommandBehavior);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbCommand;false;ExecuteReaderAsync;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbCommand;false;ExecuteReaderAsync;(System.Data.CommandBehavior);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbCommand;false;ExecuteReaderAsync;(System.Data.CommandBehavior,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbCommand;false;ExecuteReaderAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;get_Connection;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;get_Parameters;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;get_Transaction;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -1893,7 +1848,6 @@ | System.Data.Common;DbCommand;false;set_Connection;(System.Data.IDbConnection);;Argument[0];Argument[Qualifier];taint;generated | | System.Data.Common;DbCommand;false;set_Transaction;(System.Data.Common.DbTransaction);;Argument[0];Argument[Qualifier];taint;generated | | System.Data.Common;DbCommand;false;set_Transaction;(System.Data.IDbTransaction);;Argument[0];Argument[Qualifier];taint;generated | -| System.Data.Common;DbCommand;true;ExecuteDbDataReaderAsync;(System.Data.CommandBehavior,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;true;PrepareAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Data.Common;DbCommandBuilder;false;GetDeleteCommand;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommandBuilder;false;GetDeleteCommand;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | @@ -1926,7 +1880,6 @@ | System.Data.Common;DbConnectionStringBuilder;false;AppendKeyValuePair;(System.Text.StringBuilder,System.String,System.String,System.Boolean);;Argument[2];Argument[0];taint;generated | | System.Data.Common;DbConnectionStringBuilder;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Data.Common;DbConnectionStringBuilder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | -| System.Data.Common;DbConnectionStringBuilder;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbConnectionStringBuilder;false;GetProperties;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbConnectionStringBuilder;false;GetProperties;(System.Attribute[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbConnectionStringBuilder;false;GetPropertyOwner;(System.ComponentModel.PropertyDescriptor);;Argument[Qualifier];ReturnValue;value;generated | @@ -1961,13 +1914,10 @@ | System.Data.Common;DbDataAdapter;true;CreateRowUpdatingEvent;(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping);;Argument[0];ReturnValue;taint;generated | | System.Data.Common;DbDataAdapter;true;CreateRowUpdatingEvent;(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping);;Argument[1];ReturnValue;taint;generated | | System.Data.Common;DbDataAdapter;true;CreateRowUpdatingEvent;(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping);;Argument[3];ReturnValue;taint;generated | -| System.Data.Common;DbDataReader;false;GetFieldValueAsync<>;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataReader;true;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Data.Common;DbDataReader;true;GetFieldValue<>;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbDataReader;true;GetFieldValueAsync<>;(System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataReader;true;GetProviderSpecificValue;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataReader;true;GetProviderSpecificValues;(System.Object[]);;Argument[Qualifier];Argument[0].Element;taint;generated | -| System.Data.Common;DbDataReader;true;GetSchemaTableAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataReader;true;GetTextReader;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataRecord;false;GetPropertyOwner;(System.ComponentModel.PropertyDescriptor);;Argument[Qualifier];ReturnValue;value;generated | | System.Data.Common;DbEnumerator;false;DbEnumerator;(System.Data.IDataReader);;Argument[0];Argument[Qualifier];taint;generated | @@ -2108,11 +2058,8 @@ | System.Data;DataColumn;false;set_Prefix;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataColumnChangeEventArgs;false;DataColumnChangeEventArgs;(System.Data.DataRow,System.Data.DataColumn,System.Object);;Argument[1];Argument[Qualifier];taint;generated | | System.Data;DataColumnChangeEventArgs;false;get_Column;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataColumnCollection;false;Add;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataColumnCollection;false;Add;(System.Data.DataColumn);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Data;DataColumnCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual | -| System.Data;DataColumnCollection;false;Add;(System.String,System.Type);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataColumnCollection;false;Add;(System.String,System.Type,System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataColumnCollection;false;AddRange;(System.Data.DataColumn[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual | | System.Data;DataColumnCollection;false;CopyTo;(System.Data.DataColumn[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Data;DataColumnCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2120,7 +2067,6 @@ | System.Data;DataColumnCollection;false;get_List;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetDateTime;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetFieldValue<>;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | -| System.Data;DataReaderExtensions;false;GetFieldValueAsync<>;(System.Data.Common.DbDataReader,System.String,System.Threading.CancellationToken);;Argument[0].Element;ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetGuid;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetProviderSpecificValue;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetString;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | @@ -2152,16 +2098,10 @@ | System.Data;DataRelationCollection;false;Add;(System.Data.DataRelation);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Data;DataRelationCollection;false;CopyTo;(System.Data.DataRelation[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Data;DataRelationCollection;false;Remove;(System.Data.DataRelation);;Argument[0];Argument[Qualifier];taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn,System.Data.DataColumn);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn,System.Boolean);;Argument[0];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn,System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean);;Argument[0];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataRelationCollection;true;AddRange;(System.Data.DataRelation[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual | | System.Data;DataRow;false;DataRow;(System.Data.DataRowBuilder);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataRow;false;GetChildRows;(System.Data.DataRelation);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2267,12 +2207,10 @@ | System.Data;DataTable;false;set_PrimaryKey;(System.Data.DataColumn[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Data;DataTable;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataTable;false;set_TableName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.Data;DataTableCollection;false;Add;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataTableCollection;false;Add;(System.Data.DataTable);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Data;DataTableCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Data;DataTableCollection;false;Add;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.Data;DataTableCollection;false;Add;(System.String,System.String);;Argument[1];ReturnValue;taint;generated | -| System.Data;DataTableCollection;false;Add;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataTableCollection;false;AddRange;(System.Data.DataTable[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual | | System.Data;DataTableCollection;false;CopyTo;(System.Data.DataTable[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Data;DataTableCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2867,13 +2805,10 @@ | System.IO.Compression;BrotliStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO.Compression;BrotliStream;false;BrotliStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO.Compression;BrotliStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.IO.Compression;BrotliStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;BrotliStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO.Compression;BrotliStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.IO.Compression;BrotliStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;BrotliStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO.Compression;BrotliStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.IO.Compression;BrotliStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;BrotliStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;DeflateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | @@ -2884,28 +2819,22 @@ | System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];ReturnValue;taint;manual | | System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];ReturnValue;taint;manual | | System.IO.Compression;DeflateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.IO.Compression;DeflateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;DeflateStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO.Compression;DeflateStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.IO.Compression;DeflateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;DeflateStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO.Compression;DeflateStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.IO.Compression;DeflateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;DeflateStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;GZipStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | | System.IO.Compression;GZipStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | | System.IO.Compression;GZipStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | | System.IO.Compression;GZipStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.IO.Compression;GZipStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;GZipStream;false;GZipStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO.Compression;GZipStream;false;GZipStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO.Compression;GZipStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO.Compression;GZipStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.IO.Compression;GZipStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;GZipStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO.Compression;GZipStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.IO.Compression;GZipStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;GZipStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;ZipArchive;false;CreateEntry;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO.Compression;ZipArchive;false;CreateEntry;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2939,7 +2868,6 @@ | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | @@ -2965,14 +2893,11 @@ | System.IO.Pipes;NamedPipeServerStream;false;WaitForConnectionAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO.Pipes;PipeStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | -| System.IO.Pipes;PipeStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Pipes;PipeStream;false;InitializeHandle;(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Boolean,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO.Pipes;PipeStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO.Pipes;PipeStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.IO.Pipes;PipeStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Pipes;PipeStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO.Pipes;PipeStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.IO.Pipes;PipeStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Pipes;PipeStream;false;get_SafePipeHandle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;BinaryReader;false;BinaryReader;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;BinaryReader;false;BinaryReader;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated | @@ -2982,7 +2907,6 @@ | System.IO;BinaryReader;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;BinaryWriter;false;BinaryWriter;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;BinaryWriter;false;BinaryWriter;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated | -| System.IO;BinaryWriter;false;DisposeAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;BinaryWriter;false;Write;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;BinaryWriter;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;BinaryWriter;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -2991,13 +2915,10 @@ | System.IO;BufferedStream;false;BufferedStream;(System.IO.Stream,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;BufferedStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;BufferedStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | -| System.IO;BufferedStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;BufferedStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;BufferedStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.IO;BufferedStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;BufferedStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;BufferedStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.IO;BufferedStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;BufferedStream;false;get_UnderlyingStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;Directory;false;CreateDirectory;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;Directory;false;GetParent;(System.String);;Argument[0];ReturnValue;taint;generated | @@ -3057,7 +2978,6 @@ | System.IO;FileStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;FileStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;FileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.IO;FileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;FileStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;FileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | @@ -3091,7 +3011,6 @@ | System.IO;MemoryStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;MemoryStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;MemoryStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.IO;MemoryStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;MemoryStream;false;GetBuffer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];ReturnValue;taint;manual | | System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | @@ -3100,12 +3019,10 @@ | System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | | System.IO;MemoryStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;MemoryStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.IO;MemoryStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;MemoryStream;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;MemoryStream;false;TryGetBuffer;(System.ArraySegment);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;MemoryStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;MemoryStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.IO;MemoryStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;MemoryStream;false;WriteTo;(System.IO.Stream);;Argument[Qualifier];Argument[0];taint;generated | | System.IO;Path;false;ChangeExtension;(System.String,System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;Path;false;Combine;(System.String,System.String);;Argument[0];ReturnValue;taint;manual | @@ -3150,7 +3067,6 @@ | System.IO;Stream;false;CopyToAsync;(System.IO.Stream);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | -| System.IO;Stream;false;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;Stream;false;Synchronized;(System.IO.Stream);;Argument[0];ReturnValue;taint;generated | | System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | @@ -3158,13 +3074,10 @@ | System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;Stream;true;CopyTo;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;Stream;true;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | -| System.IO;Stream;true;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;Stream;true;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;Stream;true;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.IO;Stream;true;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;Stream;true;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;Stream;true;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.IO;Stream;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StreamReader;false;Read;();;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;StreamReader;false;Read;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;StreamReader;false;Read;(System.Span);;Argument[Qualifier];ReturnValue;taint;manual | @@ -3182,7 +3095,6 @@ | System.IO;StreamReader;false;StreamReader;(System.IO.Stream,System.Text.Encoding,System.Boolean,System.Int32,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated | | System.IO;StreamReader;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StreamReader;false;get_CurrentEncoding;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StreamWriter;false;StreamWriter;(System.IO.Stream,System.Text.Encoding,System.Int32,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StreamWriter;false;StreamWriter;(System.IO.Stream,System.Text.Encoding,System.Int32,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated | | System.IO;StreamWriter;false;Write;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | @@ -3197,14 +3109,7 @@ | System.IO;StreamWriter;false;Write;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier];taint;generated | | System.IO;StreamWriter;false;Write;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StreamWriter;false;Write;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated | -| System.IO;StreamWriter;false;WriteAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;StreamWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteAsync;(System.String);;Argument[0];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StreamWriter;false;WriteLine;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StreamWriter;false;WriteLine;(System.String,System.Object);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StreamWriter;false;WriteLine;(System.String,System.Object);;Argument[1];Argument[Qualifier];taint;generated | @@ -3217,15 +3122,7 @@ | System.IO;StreamWriter;false;WriteLine;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier];taint;generated | | System.IO;StreamWriter;false;WriteLine;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StreamWriter;false;WriteLine;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated | -| System.IO;StreamWriter;false;WriteLineAsync;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteLineAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;StreamWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteLineAsync;(System.String);;Argument[0];ReturnValue;taint;generated | -| System.IO;StreamWriter;false;WriteLineAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StreamWriter;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StreamWriter;false;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringReader;false;Read;();;Argument[Qualifier];ReturnValue;taint;manual | @@ -3241,39 +3138,19 @@ | System.IO;StringReader;false;ReadToEnd;();;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;StringReader;false;ReadToEndAsync;();;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;StringReader;false;StringReader;(System.String);;Argument[0];ReturnValue;taint;manual | -| System.IO;StringWriter;false;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;GetStringBuilder;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;StringWriter;(System.Text.StringBuilder,System.IFormatProvider);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;Write;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;Write;(System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;Write;(System.Text.StringBuilder);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;WriteAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;StringWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;WriteAsync;(System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;WriteAsync;(System.String);;Argument[0];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteLine;(System.Text.StringBuilder);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;StringWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;WriteLineAsync;(System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.String);;Argument[0];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextReader;false;Synchronized;(System.IO.TextReader);;Argument[0];ReturnValue;taint;generated | | System.IO;TextReader;true;Read;();;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;TextReader;true;Read;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | @@ -3291,12 +3168,7 @@ | System.IO;TextWriter;false;Synchronized;(System.IO.TextWriter);;Argument[0];ReturnValue;taint;generated | | System.IO;TextWriter;false;TextWriter;(System.IFormatProvider);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;TextWriter;false;WriteAsync;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | -| System.IO;TextWriter;false;WriteAsync;(System.Char[]);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;TextWriter;false;WriteAsync;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;false;WriteLineAsync;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | -| System.IO;TextWriter;false;WriteLineAsync;(System.Char[]);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;TextWriter;false;WriteLineAsync;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;Write;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;Write;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;Write;(System.String,System.Object);;Argument[0];Argument[Qualifier];taint;generated | @@ -3310,14 +3182,7 @@ | System.IO;TextWriter;true;Write;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;Write;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;Write;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.String);;Argument[0];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteLine;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;WriteLine;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | @@ -3334,18 +3199,8 @@ | System.IO;TextWriter;true;WriteLine;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;WriteLine;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;WriteLine;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated | -| System.IO;TextWriter;true;WriteLine;(System.Text.StringBuilder);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.String);;Argument[0];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;get_FormatProvider;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;get_NewLine;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;set_NewLine;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -3353,19 +3208,16 @@ | System.IO;UnmanagedMemoryAccessor;false;UnmanagedMemoryAccessor;(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;UnmanagedMemoryAccessor;false;UnmanagedMemoryAccessor;(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;UnmanagedMemoryStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.IO;UnmanagedMemoryStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;UnmanagedMemoryStream;false;Initialize;(System.Byte*,System.Int64,System.Int64,System.IO.FileAccess);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;UnmanagedMemoryStream;false;Initialize;(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;UnmanagedMemoryStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;UnmanagedMemoryStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.IO;UnmanagedMemoryStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;UnmanagedMemoryStream;false;UnmanagedMemoryStream;(System.Byte*,System.Int64);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;UnmanagedMemoryStream;false;UnmanagedMemoryStream;(System.Byte*,System.Int64,System.Int64,System.IO.FileAccess);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;UnmanagedMemoryStream;false;UnmanagedMemoryStream;(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;UnmanagedMemoryStream;false;UnmanagedMemoryStream;(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;UnmanagedMemoryStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;UnmanagedMemoryStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.IO;UnmanagedMemoryStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;UnmanagedMemoryStream;false;get_PositionPointer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Linq.Expressions;BinaryExpression;false;Accept;(System.Linq.Expressions.ExpressionVisitor);;Argument[Qualifier];Argument[0];taint;generated | | System.Linq.Expressions;BinaryExpression;false;Accept;(System.Linq.Expressions.ExpressionVisitor);;Argument[Qualifier];ReturnValue;taint;generated | @@ -4687,29 +4539,18 @@ | System.Net.Http.Headers;WarningHeaderValue;false;get_Text;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Json;JsonContent;false;Create;(System.Object,System.Type,System.Net.Http.Headers.MediaTypeHeaderValue,System.Text.Json.JsonSerializerOptions);;Argument[3];ReturnValue;taint;generated | | System.Net.Http.Json;JsonContent;false;Create<>;(T,System.Net.Http.Headers.MediaTypeHeaderValue,System.Text.Json.JsonSerializerOptions);;Argument[2];ReturnValue;taint;generated | -| System.Net.Http.Json;JsonContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Http.Json;JsonContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http.Json;JsonContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;ByteArrayContent;false;ByteArrayContent;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Net.Http;ByteArrayContent;false;ByteArrayContent;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Net.Http;ByteArrayContent;false;CreateContentReadStream;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;ByteArrayContent;false;CreateContentReadStreamAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;ByteArrayContent;false;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[0];ReturnValue;taint;generated | | System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;DelegatingHandler;false;DelegatingHandler;(System.Net.Http.HttpMessageHandler);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;DelegatingHandler;false;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.Net.Http;DelegatingHandler;false;get_InnerHandler;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;DelegatingHandler;false;set_InnerHandler;(System.Net.Http.HttpMessageHandler);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | @@ -4736,10 +4577,7 @@ | System.Net.Http;HttpContent;false;ReadAsStreamAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;HttpContent;false;get_Headers;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;HttpContent;true;CreateContentReadStream;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;HttpContent;true;CreateContentReadStreamAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;HttpContent;true;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Http;HttpContent;true;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;HttpContent;true;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;HttpMessageInvoker;false;HttpMessageInvoker;(System.Net.Http.HttpMessageHandler,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;HttpMessageInvoker;false;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.Net.Http;HttpMethod;false;HttpMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -4781,27 +4619,19 @@ | System.Net.Http;MessageProcessingHandler;false;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.Net.Http;MultipartContent;false;Add;(System.Net.Http.HttpContent);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Net.Http;MultipartContent;false;CreateContentReadStream;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;MultipartContent;false;CreateContentReadStreamAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;MultipartContent;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Net.Http;MultipartContent;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Net.Http;MultipartContent;false;MultipartContent;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.Net.Http;MultipartContent;false;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Http;MultipartContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;MultipartContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Http;MultipartContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;MultipartContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent,System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net.Http;MultipartFormDataContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Http;MultipartFormDataContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;MultipartFormDataContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;ReadOnlyMemoryContent;false;CreateContentReadStream;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;ReadOnlyMemoryContent;false;CreateContentReadStreamAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;ReadOnlyMemoryContent;false;ReadOnlyMemoryContent;(System.ReadOnlyMemory);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net.Http;ReadOnlyMemoryContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Http;ReadOnlyMemoryContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;ReadOnlyMemoryContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpConnectionContext;false;get_DnsEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpConnectionContext;false;get_InitialRequestMessage;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_ConnectCallback;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4838,19 +4668,11 @@ | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;false;get_PlaintextStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;StreamContent;false;CreateContentReadStream;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;StreamContent;false;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[0];ReturnValue;taint;generated | | System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;StreamContent;false;StreamContent;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;StreamContent;false;StreamContent;(System.IO.Stream,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net.Http;StringContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Net.Http;StringContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.Net.Http;StringContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;StringContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Mail;AlternateView;false;CreateAlternateViewFromString;(System.String);;Argument[0];ReturnValue;taint;generated | | System.Net.Mail;AlternateView;false;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);;Argument[0];ReturnValue;taint;generated | | System.Net.Mail;AlternateView;false;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);;Argument[1];ReturnValue;taint;generated | @@ -4996,7 +4818,6 @@ | System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;AuthenticatedStream;false;AuthenticatedStream;(System.IO.Stream,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net.Security;AuthenticatedStream;false;DisposeAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;AuthenticatedStream;false;get_InnerStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[2];Argument[Qualifier];taint;generated | @@ -5017,7 +4838,6 @@ | System.Net.Security;NegotiateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | | System.Net.Security;NegotiateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Net.Security;NegotiateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;NegotiateStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.Net.Security;NegotiateStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.Net.Security;NegotiateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | @@ -5034,14 +4854,11 @@ | System.Net.Security;SslStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | | System.Net.Security;SslStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Net.Security;SslStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.Net.Security;SslStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.Net.Security;SslStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;Write;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Net.Security;SslStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.Net.Security;SslStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.Net.Security;SslStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;get_LocalCertificate;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;get_NegotiatedApplicationProtocol;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;get_RemoteCertificate;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -5062,7 +4879,6 @@ | System.Net.Sockets;MulticastOption;false;set_LocalAddress;(System.Net.IPAddress);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;NetworkStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | -| System.Net.Sockets;NetworkStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;NetworkStream;false;NetworkStream;(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;NetworkStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.Net.Sockets;NetworkStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | @@ -5084,7 +4900,6 @@ | System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;DisconnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Sockets;Socket;false;EndAccept;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];ReturnValue;taint;generated | @@ -5127,7 +4942,6 @@ | System.Net.Sockets;SocketAsyncEventArgs;false;set_SendPacketsElements;(System.Net.Sockets.SendPacketsElement[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Net.Sockets;SocketAsyncEventArgs;false;set_UserToken;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;SocketException;false;get_Message;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Sockets;SocketTaskExtensions;false;AcceptAsync;(System.Net.Sockets.Socket,System.Net.Sockets.Socket);;Argument[1];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint);;Argument[1];Argument[0];taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[1];Argument[0];taint;generated | @@ -5139,8 +4953,6 @@ | System.Net.Sockets;SocketTaskExtensions;false;ReceiveAsync;(System.Net.Sockets.Socket,System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ReceiveAsync;(System.Net.Sockets.Socket,System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ReceiveAsync;(System.Net.Sockets.Socket,System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | -| System.Net.Sockets;SocketTaskExtensions;false;ReceiveFromAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];ReturnValue;taint;generated | -| System.Net.Sockets;SocketTaskExtensions;false;ReceiveMessageFromAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;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;generated | @@ -5151,8 +4963,6 @@ | System.Net.Sockets;TcpClient;false;set_Client;(System.Net.Sockets.Socket);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;AcceptSocket;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpListener;false;AcceptTcpClient;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Sockets;TcpListener;false;EndAcceptSocket;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net.Sockets;TcpListener;false;EndAcceptTcpClient;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;get_LocalEndpoint;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -5230,17 +5040,11 @@ | System.Net;CookieException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | | System.Net;CredentialCache;false;GetCredential;(System.Uri,System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;CredentialCache;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | -| System.Net;Dns;false;EndGetHostAddresses;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;Dns;false;EndGetHostByName;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;Dns;false;EndGetHostEntry;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;Dns;false;EndResolve;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net;DnsEndPoint;false;DnsEndPoint;(System.String,System.Int32,System.Net.Sockets.AddressFamily);;Argument[0];Argument[Qualifier];taint;generated | | System.Net;DnsEndPoint;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;DnsEndPoint;false;get_Host;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;DownloadDataCompletedEventArgs;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;DownloadStringCompletedEventArgs;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net;FileWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;FileWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net;FileWebRequest;false;GetRequestStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;FileWebRequest;false;GetResponse;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;FileWebRequest;false;get_ContentType;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -5319,9 +5123,6 @@ | System.Net;HttpListenerTimeoutManager;false;get_IdleConnection;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;HttpListenerTimeoutManager;false;set_DrainEntityBody;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | | System.Net;HttpListenerTimeoutManager;false;set_IdleConnection;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net;HttpWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;HttpWebRequest;false;EndGetRequestStream;(System.IAsyncResult,System.Net.TransportContext);;Argument[0];ReturnValue;taint;generated | -| System.Net;HttpWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net;HttpWebRequest;false;GetRequestStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;HttpWebRequest;false;GetRequestStream;(System.Net.TransportContext);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;HttpWebRequest;false;GetResponse;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -5407,8 +5208,6 @@ | System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest);;Argument[0];ReturnValue;taint;generated | | System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[0];Argument[Qualifier];taint;generated | | System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[1];Argument[Qualifier];taint;generated | -| System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[1];ReturnValue;taint;generated | | System.Net;WebClient;false;OpenRead;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Net;WebClient;false;OpenRead;(System.String);;Argument[0];ReturnValue;taint;generated | | System.Net;WebClient;false;OpenRead;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | @@ -6342,7 +6141,6 @@ | System.Resources;ResourceReader;false;GetResourceData;(System.String,System.String,System.Byte[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.Resources;ResourceReader;false;ResourceReader;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | | System.Resources;ResourceSet;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | -| System.Resources;ResourceSet;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Resources;ResourceSet;false;ResourceSet;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | | System.Resources;ResourceSet;false;ResourceSet;(System.Resources.IResourceReader);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Resources;ResourceWriter;false;ResourceWriter;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | @@ -6725,7 +6523,6 @@ | System.Security.Cryptography.X509Certificates;X509Certificate;false;ToString;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography.X509Certificates;X509Certificate;false;get_Issuer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography.X509Certificates;X509Certificate;false;get_Subject;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Security.Cryptography.X509Certificates;X509CertificateCollection+X509CertificateEnumerator;false;X509CertificateEnumerator;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Security.Cryptography.X509Certificates;X509CertificateCollection+X509CertificateEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;Add;(System.Security.Cryptography.X509Certificates.X509Certificate);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[Qualifier].Element;value;manual | @@ -6794,7 +6591,6 @@ | System.Security.Cryptography;CryptoStream;false;CryptoStream;(System.IO.Stream,System.Security.Cryptography.ICryptoTransform,System.Security.Cryptography.CryptoStreamMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;CryptoStream;false;CryptoStream;(System.IO.Stream,System.Security.Cryptography.ICryptoTransform,System.Security.Cryptography.CryptoStreamMode,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated | | System.Security.Cryptography;CryptoStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Security.Cryptography;CryptoStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography;CryptoStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.Security.Cryptography;CryptoStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.Security.Cryptography;CryptoStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | @@ -7313,10 +7109,6 @@ | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[0];ReturnValue;taint;generated | -| System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | -| System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;SendAsync<>;(System.Threading.Tasks.Dataflow.ITargetBlock,TInput,System.Threading.CancellationToken);;Argument[1];Argument[0];taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;TryReceive<>;(System.Threading.Tasks.Dataflow.IReceivableSourceBlock,TOutput);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlockOptions;false;get_CancellationToken;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -8103,12 +7895,9 @@ | System.Xml.Schema;XmlSchemaSet;false;Add;(System.String,System.Xml.XmlReader);;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;generated | -| System.Xml.Schema;XmlSchemaSet;false;Add;(System.Xml.Schema.XmlSchemaSet);;Argument[0];Argument[Qualifier];taint;generated | -| System.Xml.Schema;XmlSchemaSet;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[Qualifier];Argument[0].Element;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Remove;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Reprocess;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Reprocess;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;generated | -| System.Xml.Schema;XmlSchemaSet;false;Schemas;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;XmlSchemaSet;(System.Xml.XmlNameTable);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Schema;XmlSchemaSet;false;get_CompilationSettings;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;get_GlobalAttributes;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -8195,10 +7984,8 @@ | System.Xml.Schema;XmlSchemaXPath;false;get_XPath;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaXPath;false;set_XPath;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[1];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[Qualifier];Argument[1];taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[0];ReturnValue;taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[1];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[Qualifier];Argument[1];taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;MakeUnique;(System.String);;Argument[0];ReturnValue;taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;ToArray;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Serialization;ImportContext;false;ImportContext;(System.Xml.Serialization.CodeIdentifiers,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | @@ -8505,7 +8292,6 @@ | System.Xml.Serialization;XmlSerializationWriter;false;WriteElementStringRaw;(System.String,System.String,System.String);;Argument[2];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteElementStringRaw;(System.String,System.String,System.String,System.Xml.XmlQualifiedName);;Argument[2];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteElementStringRaw;(System.String,System.String,System.Xml.XmlQualifiedName);;Argument[1];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WriteId;(System.Object);;Argument[Qualifier];Argument[0];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringEncoded;(System.String,System.String,System.String,System.Xml.XmlQualifiedName);;Argument[2];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringEncodedRaw;(System.String,System.String,System.Byte[],System.Xml.XmlQualifiedName);;Argument[2].Element;Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringEncodedRaw;(System.String,System.String,System.String,System.Xml.XmlQualifiedName);;Argument[2];Argument[Qualifier];taint;generated | @@ -8513,15 +8299,9 @@ | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringLiteralRaw;(System.String,System.String,System.Byte[]);;Argument[2].Element;Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringLiteralRaw;(System.String,System.String,System.String);;Argument[2];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object);;Argument[2];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object);;Argument[Qualifier];Argument[2];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type);;Argument[2];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type);;Argument[Qualifier];Argument[2];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean);;Argument[Qualifier];Argument[2];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean,System.Boolean);;Argument[Qualifier];Argument[2];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WriteReferencingElement;(System.String,System.String,System.Object);;Argument[Qualifier];Argument[2];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WriteReferencingElement;(System.String,System.String,System.Object,System.Boolean);;Argument[Qualifier];Argument[2];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteRpcResult;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteRpcResult;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteSerializable;(System.Xml.Serialization.IXmlSerializable,System.String,System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | @@ -10357,27 +10137,6 @@ | System;TupleExtensions;false;Deconstruct<,>;(System.Tuple,T1,T2);;Argument[0].Property[System.Tuple<,>.Item1];Argument[1];value;manual | | System;TupleExtensions;false;Deconstruct<,>;(System.Tuple,T1,T2);;Argument[0].Property[System.Tuple<,>.Item2];Argument[2];value;manual | | System;TupleExtensions;false;Deconstruct<>;(System.Tuple,T1);;Argument[0].Property[System.Tuple<>.Item1];Argument[1];value;manual | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | | System;TupleExtensions;false;ToValueTuple<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple>>);;Argument[0];ReturnValue;taint;generated | | System;TupleExtensions;false;ToValueTuple<,,,,,,,,,,,,,,,,,,,>;(System.Tuple>>);;Argument[0];ReturnValue;taint;generated | | System;TupleExtensions;false;ToValueTuple<,,,,,,,,,,,,,,,,,,>;(System.Tuple>>);;Argument[0];ReturnValue;taint;generated | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index 1a2f70f48e8..a77b56ab64b 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -255,7 +255,6 @@ | System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];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<,>.Key];ReturnValue.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];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,TValue);;Argument[1];ReturnValue;taint;generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | @@ -275,9 +274,6 @@ | System.Collections.Generic;CollectionExtensions;false;GetValueOrDefault<,>;(System.Collections.Generic.IReadOnlyDictionary,TKey,TValue);;Argument[1];ReturnValue;taint;generated | | System.Collections.Generic;CollectionExtensions;false;GetValueOrDefault<,>;(System.Collections.Generic.IReadOnlyDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;generated | | System.Collections.Generic;CollectionExtensions;false;Remove<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[0].Element;ReturnValue;taint;generated | -| System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[0].Element;Argument[2];taint;generated | -| System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[1];Argument[0].Element;taint;generated | -| System.Collections.Generic;CollectionExtensions;false;TryAdd<,>;(System.Collections.Generic.IDictionary,TKey,TValue);;Argument[2];Argument[0].Element;taint;generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Entry;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;Dictionary<,>+Enumerator;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -327,8 +323,6 @@ | System.Collections.Generic;IList<>;true;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | | System.Collections.Generic;IList<>;true;set_Item;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.Generic;ISet<>;true;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual | -| System.Collections.Generic;KeyValuePair;false;Create<,>;(TKey,TValue);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Generic;KeyValuePair;false;Create<,>;(TKey,TValue);;Argument[1];ReturnValue;taint;generated | | System.Collections.Generic;KeyValuePair<,>;false;Deconstruct;(TKey,TValue);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | @@ -518,12 +512,6 @@ | System.Collections.Immutable;ImmutableDictionary;false;Create<,>;(System.Collections.Generic.IEqualityComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;Create<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;Create<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableDictionary;false;CreateRange<,>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;GetValueOrDefault<,>;(System.Collections.Immutable.IImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary;false;ToImmutableDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element;ReturnValue;taint;generated | @@ -567,8 +555,6 @@ | System.Collections.Immutable;ImmutableDictionary<,>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | | System.Collections.Immutable;ImmutableDictionary<,>;false;get_ValueComparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | -| System.Collections.Immutable;ImmutableHashSet;false;Create<>;(System.Collections.Generic.IEqualityComparer,T);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableHashSet;false;Create<>;(T);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableHashSet;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableHashSet;false;CreateRange<>;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableHashSet;false;ToImmutableHashSet<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | @@ -593,9 +579,6 @@ | System.Collections.Immutable;ImmutableHashSet<>;false;get_KeyComparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableHashSet<>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | | System.Collections.Immutable;ImmutableInterlocked;false;GetOrAdd<,>;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue);;Argument[2];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableList;false;Create<>;(T);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableList;false;Create<>;(T[]);;Argument[0].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableList;false;CreateRange<>;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableList;false;Remove<>;(System.Collections.Immutable.IImmutableList,T);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableList;false;RemoveRange<>;(System.Collections.Immutable.IImmutableList,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableList;false;Replace<>;(System.Collections.Immutable.IImmutableList,T,T);;Argument[0].Element;ReturnValue;taint;generated | @@ -681,12 +664,6 @@ | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateBuilder<,>;(System.Collections.Generic.IComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateBuilder<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;CreateBuilder<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);;Argument[1].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[1];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);;Argument[2].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary;false;CreateRange<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary;false;ToImmutableSortedDictionary<,>;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[1];ReturnValue;taint;generated | @@ -709,7 +686,6 @@ | System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;set_KeyComparer;(System.Collections.Generic.IComparer);;Argument[0];Argument[Qualifier];taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;set_ValueComparer;(System.Collections.Generic.IEqualityComparer);;Argument[0];Argument[Qualifier];taint;generated | -| System.Collections.Immutable;ImmutableSortedDictionary<,>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(TKey,TValue);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | @@ -736,10 +712,7 @@ | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_ValueComparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer,T);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer,T);;Argument[1];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(System.Collections.Generic.IComparer,T[]);;Argument[0];ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedSet;false;Create<>;(T);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet;false;CreateBuilder<>;(System.Collections.Generic.IComparer);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet;false;CreateRange<>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet;false;CreateRange<>;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated | @@ -751,7 +724,6 @@ | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet<>+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;IntersectWith;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;SymmetricExceptWith;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;ToImmutable;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;TryGetValue;(T,T);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;TryGetValue;(T,T);;Argument[Qualifier];ReturnValue;taint;generated | @@ -765,12 +737,8 @@ | System.Collections.Immutable;ImmutableSortedSet<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet<>;false;Except;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet<>+Enumerator.Current];value;manual | -| System.Collections.Immutable;ImmutableSortedSet<>;false;Intersect;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;Remove;(T);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet<>;false;SymmetricExcept;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | -| System.Collections.Immutable;ImmutableSortedSet<>;false;SymmetricExcept;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | -| System.Collections.Immutable;ImmutableSortedSet<>;false;SymmetricExcept;(System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;ToBuilder;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;TryGetValue;(T,T);;Argument[0];ReturnValue;taint;generated | | System.Collections.Immutable;ImmutableSortedSet<>;false;TryGetValue;(T,T);;Argument[Qualifier];ReturnValue;taint;generated | @@ -796,24 +764,18 @@ | System.Collections.Immutable;ImmutableStack<>;false;Push;(T);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;Collection<>;false;Collection;(System.Collections.Generic.IList);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Collections.ObjectModel;Collection<>;false;InsertItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;Collection<>;false;InsertItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;Collection<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;Collection<>;false;SetItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;Collection<>;false;get_Items;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;Collection<>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;InsertItem;(System.Int32,TItem);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;KeyedCollection<,>;false;InsertItem;(System.Int32,TItem);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;KeyedCollection;(System.Collections.Generic.IEqualityComparer,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;SetItem;(System.Int32,TItem);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;KeyedCollection<,>;false;SetItem;(System.Int32,TItem);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;TryGetValue;(TKey,TItem);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;get_Dictionary;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;KeyedCollection<,>;false;get_Item;(TKey);;Argument[Qualifier].Element;ReturnValue;value;manual | | System.Collections.ObjectModel;ObservableCollection<>;false;InsertItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;ObservableCollection<>;false;InsertItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.Collections.ObjectModel;ObservableCollection<>;false;SetItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;ReadOnlyCollection;(System.Collections.Generic.IList);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | | System.Collections.ObjectModel;ReadOnlyCollection<>;false;get_Items;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -924,7 +886,6 @@ | System.Collections;BitArray;false;Xor;(System.Collections.BitArray);;Argument[Qualifier];ReturnValue;value;generated | | System.Collections;BitArray;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | | System.Collections;CollectionBase;false;Remove;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | -| System.Collections;CollectionBase;false;Remove;(System.Object);;Argument[Qualifier];Argument[0];taint;generated | | System.Collections;CollectionBase;false;get_InnerList;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections;CollectionBase;false;get_List;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections;CollectionBase;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -1101,9 +1062,7 @@ | System.ComponentModel;BaseNumberConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[1];ReturnValue;taint;generated | | System.ComponentModel;BaseNumberConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;generated | | System.ComponentModel;BindingList<>;false;InsertItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.ComponentModel;BindingList<>;false;InsertItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[1];Argument[Qualifier];taint;generated | -| System.ComponentModel;BindingList<>;false;SetItem;(System.Int32,T);;Argument[Qualifier];Argument[1];taint;generated | | System.ComponentModel;CategoryAttribute;false;CategoryAttribute;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.ComponentModel;CategoryAttribute;false;get_Category;();;Argument[Qualifier];ReturnValue;taint;generated | | System.ComponentModel;CharConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;generated | @@ -1388,10 +1347,6 @@ | System.Data.Common;DataTableMappingCollection;false;set_Item;(System.String,System.Data.Common.DataTableMapping);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Data.Common;DbCommand;false;ExecuteReader;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;ExecuteReader;(System.Data.CommandBehavior);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbCommand;false;ExecuteReaderAsync;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbCommand;false;ExecuteReaderAsync;(System.Data.CommandBehavior);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbCommand;false;ExecuteReaderAsync;(System.Data.CommandBehavior,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbCommand;false;ExecuteReaderAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;get_Connection;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;get_Parameters;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;get_Transaction;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -1399,7 +1354,6 @@ | System.Data.Common;DbCommand;false;set_Connection;(System.Data.IDbConnection);;Argument[0];Argument[Qualifier];taint;generated | | System.Data.Common;DbCommand;false;set_Transaction;(System.Data.Common.DbTransaction);;Argument[0];Argument[Qualifier];taint;generated | | System.Data.Common;DbCommand;false;set_Transaction;(System.Data.IDbTransaction);;Argument[0];Argument[Qualifier];taint;generated | -| System.Data.Common;DbCommand;true;ExecuteDbDataReaderAsync;(System.Data.CommandBehavior,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;true;PrepareAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Data.Common;DbCommandBuilder;false;GetDeleteCommand;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommandBuilder;false;GetDeleteCommand;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | @@ -1428,7 +1382,6 @@ | System.Data.Common;DbConnectionStringBuilder;false;AppendKeyValuePair;(System.Text.StringBuilder,System.String,System.String);;Argument[2];Argument[0];taint;generated | | System.Data.Common;DbConnectionStringBuilder;false;AppendKeyValuePair;(System.Text.StringBuilder,System.String,System.String,System.Boolean);;Argument[1];Argument[0];taint;generated | | System.Data.Common;DbConnectionStringBuilder;false;AppendKeyValuePair;(System.Text.StringBuilder,System.String,System.String,System.Boolean);;Argument[2];Argument[0];taint;generated | -| System.Data.Common;DbConnectionStringBuilder;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbConnectionStringBuilder;false;GetProperties;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbConnectionStringBuilder;false;GetProperties;(System.Attribute[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbConnectionStringBuilder;false;GetPropertyOwner;(System.ComponentModel.PropertyDescriptor);;Argument[Qualifier];ReturnValue;value;generated | @@ -1458,12 +1411,9 @@ | System.Data.Common;DbDataAdapter;true;CreateRowUpdatingEvent;(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping);;Argument[0];ReturnValue;taint;generated | | System.Data.Common;DbDataAdapter;true;CreateRowUpdatingEvent;(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping);;Argument[1];ReturnValue;taint;generated | | System.Data.Common;DbDataAdapter;true;CreateRowUpdatingEvent;(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping);;Argument[3];ReturnValue;taint;generated | -| System.Data.Common;DbDataReader;false;GetFieldValueAsync<>;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataReader;true;GetFieldValue<>;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data.Common;DbDataReader;true;GetFieldValueAsync<>;(System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataReader;true;GetProviderSpecificValue;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataReader;true;GetProviderSpecificValues;(System.Object[]);;Argument[Qualifier];Argument[0].Element;taint;generated | -| System.Data.Common;DbDataReader;true;GetSchemaTableAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataReader;true;GetTextReader;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbDataRecord;false;GetPropertyOwner;(System.ComponentModel.PropertyDescriptor);;Argument[Qualifier];ReturnValue;value;generated | | System.Data.Common;DbEnumerator;false;DbEnumerator;(System.Data.IDataReader);;Argument[0];Argument[Qualifier];taint;generated | @@ -1598,11 +1548,8 @@ | System.Data;DataColumn;false;set_Prefix;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataColumnChangeEventArgs;false;DataColumnChangeEventArgs;(System.Data.DataRow,System.Data.DataColumn,System.Object);;Argument[1];Argument[Qualifier];taint;generated | | System.Data;DataColumnChangeEventArgs;false;get_Column;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataColumnCollection;false;Add;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataColumnCollection;false;Add;(System.Data.DataColumn);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Data;DataColumnCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual | -| System.Data;DataColumnCollection;false;Add;(System.String,System.Type);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataColumnCollection;false;Add;(System.String,System.Type,System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataColumnCollection;false;AddRange;(System.Data.DataColumn[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual | | System.Data;DataColumnCollection;false;CopyTo;(System.Data.DataColumn[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Data;DataColumnCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | @@ -1610,7 +1557,6 @@ | System.Data;DataColumnCollection;false;get_List;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetDateTime;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetFieldValue<>;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | -| System.Data;DataReaderExtensions;false;GetFieldValueAsync<>;(System.Data.Common.DbDataReader,System.String,System.Threading.CancellationToken);;Argument[0].Element;ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetGuid;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetProviderSpecificValue;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | | System.Data;DataReaderExtensions;false;GetString;(System.Data.Common.DbDataReader,System.String);;Argument[0].Element;ReturnValue;taint;generated | @@ -1642,16 +1588,10 @@ | System.Data;DataRelationCollection;false;Add;(System.Data.DataRelation);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Data;DataRelationCollection;false;CopyTo;(System.Data.DataRelation[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Data;DataRelationCollection;false;Remove;(System.Data.DataRelation);;Argument[0];Argument[Qualifier];taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn,System.Data.DataColumn);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn,System.Boolean);;Argument[0];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn,System.Data.DataColumn,System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean);;Argument[0];ReturnValue;taint;generated | -| System.Data;DataRelationCollection;true;Add;(System.String,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataRelationCollection;true;AddRange;(System.Data.DataRelation[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual | | System.Data;DataRow;false;DataRow;(System.Data.DataRowBuilder);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataRow;false;GetChildRows;(System.Data.DataRelation);;Argument[Qualifier];ReturnValue;taint;generated | @@ -1755,12 +1695,10 @@ | System.Data;DataTable;false;set_PrimaryKey;(System.Data.DataColumn[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Data;DataTable;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[Qualifier];taint;generated | | System.Data;DataTable;false;set_TableName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.Data;DataTableCollection;false;Add;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataTableCollection;false;Add;(System.Data.DataTable);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Data;DataTableCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Data;DataTableCollection;false;Add;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.Data;DataTableCollection;false;Add;(System.String,System.String);;Argument[1];ReturnValue;taint;generated | -| System.Data;DataTableCollection;false;Add;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data;DataTableCollection;false;AddRange;(System.Data.DataTable[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual | | System.Data;DataTableCollection;false;CopyTo;(System.Data.DataTable[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Data;DataTableCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2341,8 +2279,10 @@ | System.IO.IsolatedStorage;IsolatedStorage;false;get_DomainIdentity;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO.IsolatedStorage;IsolatedStorageFileStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.MemoryMappedFiles;MemoryMappedFile;false;CreateFromFile;(System.IO.FileStream,System.String,System.Int64,System.IO.MemoryMappedFiles.MemoryMappedFileAccess,System.IO.HandleInheritability,System.Boolean);;Argument[0];ReturnValue;taint;generated | | System.IO.MemoryMappedFiles;MemoryMappedFile;false;get_SafeMemoryMappedFileHandle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.MemoryMappedFiles;MemoryMappedViewAccessor;false;get_SafeMemoryMappedViewHandle;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -2367,7 +2307,6 @@ | System.IO;BinaryReader;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;BinaryWriter;false;BinaryWriter;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;BinaryWriter;false;BinaryWriter;(System.IO.Stream,System.Text.Encoding,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated | -| System.IO;BinaryWriter;false;DisposeAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;BinaryWriter;false;Write;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;BinaryWriter;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;BinaryWriter;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -2427,8 +2366,10 @@ | System.IO;FileNotFoundException;false;get_Message;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;FileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO;FileStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;FileStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO;FileStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileStream;false;get_SafeFileHandle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemEventArgs;false;FileSystemEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.IO;FileSystemEventArgs;false;FileSystemEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String);;Argument[2];Argument[Qualifier];taint;generated | @@ -2501,7 +2442,6 @@ | System.IO;Stream;false;CopyToAsync;(System.IO.Stream);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | -| System.IO;Stream;false;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;Stream;false;Synchronized;(System.IO.Stream);;Argument[0];ReturnValue;taint;generated | | System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | @@ -2509,13 +2449,10 @@ | System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;Stream;true;CopyTo;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;Stream;true;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | -| System.IO;Stream;true;FlushAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;Stream;true;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;Stream;true;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | -| System.IO;Stream;true;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;Stream;true;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;Stream;true;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | -| System.IO;Stream;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StreamReader;false;StreamReader;(System.IO.Stream,System.Text.Encoding,System.Boolean,System.Int32,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StreamReader;false;StreamReader;(System.IO.Stream,System.Text.Encoding,System.Boolean,System.Int32,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated | | System.IO;StreamReader;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -2530,13 +2467,10 @@ | System.IO;StringWriter;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;Write;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;Write;(System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;Write;(System.Text.StringBuilder);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;WriteAsync;(System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;WriteLineAsync;(System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;StringWriter;false;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;TextReader;false;Synchronized;(System.IO.TextReader);;Argument[0];ReturnValue;taint;generated | | System.IO;TextReader;true;Read;();;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;TextReader;true;Read;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | @@ -2554,12 +2488,7 @@ | System.IO;TextWriter;false;Synchronized;(System.IO.TextWriter);;Argument[0];ReturnValue;taint;generated | | System.IO;TextWriter;false;TextWriter;(System.IFormatProvider);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;TextWriter;false;WriteAsync;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | -| System.IO;TextWriter;false;WriteAsync;(System.Char[]);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;TextWriter;false;WriteAsync;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;false;WriteLineAsync;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | -| System.IO;TextWriter;false;WriteLineAsync;(System.Char[]);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;TextWriter;false;WriteLineAsync;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;FlushAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;Write;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;Write;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;Write;(System.String,System.Object);;Argument[0];Argument[Qualifier];taint;generated | @@ -2573,14 +2502,7 @@ | System.IO;TextWriter;true;Write;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;Write;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;Write;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.String);;Argument[0];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteLine;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;WriteLine;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | @@ -2597,18 +2519,8 @@ | System.IO;TextWriter;true;WriteLine;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;WriteLine;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;TextWriter;true;WriteLine;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated | -| System.IO;TextWriter;true;WriteLine;(System.Text.StringBuilder);;Argument[0];Argument[Qualifier];taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.Char);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.String);;Argument[0];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | -| System.IO;TextWriter;true;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;get_FormatProvider;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;get_NewLine;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;TextWriter;true;set_NewLine;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -3879,17 +3791,12 @@ | System.Net.Http.Json;JsonContent;false;Create<>;(T,System.Net.Http.Headers.MediaTypeHeaderValue,System.Text.Json.JsonSerializerOptions);;Argument[2];ReturnValue;taint;generated | | System.Net.Http;ByteArrayContent;false;ByteArrayContent;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Net.Http;ByteArrayContent;false;ByteArrayContent;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | -| System.Net.Http;ByteArrayContent;false;CreateContentReadStreamAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;ByteArrayContent;false;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[0];ReturnValue;taint;generated | | System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;ByteArrayContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.Net.Http;DelegatingHandler;false;DelegatingHandler;(System.Net.Http.HttpMessageHandler);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;DelegatingHandler;false;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.Net.Http;DelegatingHandler;false;get_InnerHandler;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;DelegatingHandler;false;set_InnerHandler;(System.Net.Http.HttpMessageHandler);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net.Http;FormUrlEncodedContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Http;HttpClient;false;Send;(System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | @@ -3916,10 +3823,7 @@ | System.Net.Http;HttpContent;false;ReadAsStreamAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;HttpContent;false;get_Headers;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;HttpContent;true;CreateContentReadStream;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;HttpContent;true;CreateContentReadStreamAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;HttpContent;true;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Http;HttpContent;true;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;HttpContent;true;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;HttpMessageInvoker;false;HttpMessageInvoker;(System.Net.Http.HttpMessageHandler,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;HttpMessageInvoker;false;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.Net.Http;HttpMethod;false;HttpMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -3955,7 +3859,6 @@ | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent,System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net.Http;ReadOnlyMemoryContent;false;CreateContentReadStreamAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;ReadOnlyMemoryContent;false;ReadOnlyMemoryContent;(System.ReadOnlyMemory);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;SocketsHttpConnectionContext;false;get_DnsEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpConnectionContext;false;get_InitialRequestMessage;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -3992,13 +3895,9 @@ | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;false;get_NegotiatedHttpVersion;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;false;get_PlaintextStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;StreamContent;false;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[0];ReturnValue;taint;generated | | System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Http;StreamContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.Net.Http;StreamContent;false;StreamContent;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;StreamContent;false;StreamContent;(System.IO.Stream,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net.Http;StringContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.Net.Mail;AlternateView;false;CreateAlternateViewFromString;(System.String);;Argument[0];ReturnValue;taint;generated | | System.Net.Mail;AlternateView;false;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);;Argument[0];ReturnValue;taint;generated | | System.Net.Mail;AlternateView;false;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);;Argument[1];ReturnValue;taint;generated | @@ -4124,7 +4023,6 @@ | System.Net.NetworkInformation;PhysicalAddress;false;PhysicalAddress;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;AuthenticatedStream;false;AuthenticatedStream;(System.IO.Stream,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net.Security;AuthenticatedStream;false;DisposeAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;AuthenticatedStream;false;get_InnerStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.Net.Security;NegotiateStream;false;AuthenticateAsClient;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ChannelBinding,System.String);;Argument[2];Argument[Qualifier];taint;generated | @@ -4145,8 +4043,10 @@ | System.Net.Security;NegotiateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Security;NegotiateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Security;NegotiateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Security;NegotiateStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;NegotiateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Security;NegotiateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Security;NegotiateStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;NegotiateStream;false;get_RemoteIdentity;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslApplicationProtocol;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslApplicationProtocol;false;get_Protocol;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4173,7 +4073,9 @@ | System.Net.Sockets;NetworkStream;false;NetworkStream;(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;NetworkStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;NetworkStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;NetworkStream;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;NetworkStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;NetworkStream;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;NetworkStream;false;get_Socket;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;SafeSocketHandle;false;SafeSocketHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;Accept;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4185,7 +4087,6 @@ | System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;DisconnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | -| System.Net.Sockets;Socket;false;EndAccept;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];ReturnValue;taint;generated | @@ -4228,7 +4129,6 @@ | System.Net.Sockets;SocketAsyncEventArgs;false;set_SendPacketsElements;(System.Net.Sockets.SendPacketsElement[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Net.Sockets;SocketAsyncEventArgs;false;set_UserToken;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;SocketException;false;get_Message;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Sockets;SocketTaskExtensions;false;AcceptAsync;(System.Net.Sockets.Socket,System.Net.Sockets.Socket);;Argument[1];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint);;Argument[1];Argument[0];taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[1];Argument[0];taint;generated | @@ -4240,8 +4140,6 @@ | System.Net.Sockets;SocketTaskExtensions;false;ReceiveAsync;(System.Net.Sockets.Socket,System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ReceiveAsync;(System.Net.Sockets.Socket,System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;ReceiveAsync;(System.Net.Sockets.Socket,System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | -| System.Net.Sockets;SocketTaskExtensions;false;ReceiveFromAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];ReturnValue;taint;generated | -| System.Net.Sockets;SocketTaskExtensions;false;ReceiveMessageFromAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;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;generated | @@ -4252,8 +4150,6 @@ | System.Net.Sockets;TcpClient;false;set_Client;(System.Net.Sockets.Socket);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;AcceptSocket;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpListener;false;AcceptTcpClient;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net.Sockets;TcpListener;false;EndAcceptSocket;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net.Sockets;TcpListener;false;EndAcceptTcpClient;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;get_LocalEndpoint;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4325,17 +4221,11 @@ | System.Net;CookieCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | | System.Net;CookieException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | | System.Net;CredentialCache;false;GetCredential;(System.Uri,System.String);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net;Dns;false;EndGetHostAddresses;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;Dns;false;EndGetHostByName;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;Dns;false;EndGetHostEntry;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;Dns;false;EndResolve;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net;DnsEndPoint;false;DnsEndPoint;(System.String,System.Int32,System.Net.Sockets.AddressFamily);;Argument[0];Argument[Qualifier];taint;generated | | System.Net;DnsEndPoint;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;DnsEndPoint;false;get_Host;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;DownloadDataCompletedEventArgs;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;DownloadStringCompletedEventArgs;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Net;FileWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;FileWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net;FileWebRequest;false;GetRequestStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;FileWebRequest;false;GetResponse;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;FileWebRequest;false;get_ContentType;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4410,9 +4300,6 @@ | System.Net;HttpListenerTimeoutManager;false;get_IdleConnection;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;HttpListenerTimeoutManager;false;set_DrainEntityBody;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | | System.Net;HttpListenerTimeoutManager;false;set_IdleConnection;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | -| System.Net;HttpWebRequest;false;EndGetRequestStream;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;HttpWebRequest;false;EndGetRequestStream;(System.IAsyncResult,System.Net.TransportContext);;Argument[0];ReturnValue;taint;generated | -| System.Net;HttpWebRequest;false;EndGetResponse;(System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | | System.Net;HttpWebRequest;false;GetRequestStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;HttpWebRequest;false;GetRequestStream;(System.Net.TransportContext);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;HttpWebRequest;false;GetResponse;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4498,8 +4385,6 @@ | System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest);;Argument[0];ReturnValue;taint;generated | | System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[0];Argument[Qualifier];taint;generated | | System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[0];ReturnValue;taint;generated | -| System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[1];Argument[Qualifier];taint;generated | -| System.Net;WebClient;false;GetWebResponse;(System.Net.WebRequest,System.IAsyncResult);;Argument[1];ReturnValue;taint;generated | | System.Net;WebClient;false;OpenRead;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Net;WebClient;false;OpenRead;(System.String);;Argument[0];ReturnValue;taint;generated | | System.Net;WebClient;false;OpenRead;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | @@ -5368,7 +5253,6 @@ | System.Resources;ResourceReader;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Resources;ResourceReader;false;GetResourceData;(System.String,System.String,System.Byte[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.Resources;ResourceReader;false;ResourceReader;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | -| System.Resources;ResourceSet;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Resources;ResourceSet;false;ResourceSet;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | | System.Resources;ResourceSet;false;ResourceSet;(System.Resources.IResourceReader);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Resources;ResourceWriter;false;ResourceWriter;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | @@ -5733,7 +5617,6 @@ | System.Security.Cryptography.X509Certificates;X509Certificate;false;ToString;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography.X509Certificates;X509Certificate;false;get_Issuer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography.X509Certificates;X509Certificate;false;get_Subject;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Security.Cryptography.X509Certificates;X509CertificateCollection+X509CertificateEnumerator;false;X509CertificateEnumerator;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Security.Cryptography.X509Certificates;X509CertificateCollection+X509CertificateEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;Add;(System.Security.Cryptography.X509Certificates.X509Certificate);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[Qualifier].Element;value;manual | @@ -6224,10 +6107,6 @@ | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;Receive<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock);;Argument[0];ReturnValue;taint;generated | -| System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | -| System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | -| System.Threading.Tasks.Dataflow;DataflowBlock;false;ReceiveAsync<>;(System.Threading.Tasks.Dataflow.ISourceBlock,System.TimeSpan,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;SendAsync<>;(System.Threading.Tasks.Dataflow.ITargetBlock,TInput,System.Threading.CancellationToken);;Argument[1];Argument[0];taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlock;false;TryReceive<>;(System.Threading.Tasks.Dataflow.IReceivableSourceBlock,TOutput);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks.Dataflow;DataflowBlockOptions;false;get_CancellationToken;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -7010,12 +6889,9 @@ | System.Xml.Schema;XmlSchemaSet;false;Add;(System.String,System.Xml.XmlReader);;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;generated | -| System.Xml.Schema;XmlSchemaSet;false;Add;(System.Xml.Schema.XmlSchemaSet);;Argument[0];Argument[Qualifier];taint;generated | -| System.Xml.Schema;XmlSchemaSet;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[Qualifier];Argument[0].Element;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Remove;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Reprocess;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Schema;XmlSchemaSet;false;Reprocess;(System.Xml.Schema.XmlSchema);;Argument[0];ReturnValue;taint;generated | -| System.Xml.Schema;XmlSchemaSet;false;Schemas;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;XmlSchemaSet;(System.Xml.XmlNameTable);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Schema;XmlSchemaSet;false;get_CompilationSettings;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaSet;false;get_GlobalAttributes;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -7102,10 +6978,8 @@ | System.Xml.Schema;XmlSchemaXPath;false;get_XPath;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Schema;XmlSchemaXPath;false;set_XPath;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[1];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;CodeIdentifiers;false;Add;(System.String,System.Object);;Argument[Qualifier];Argument[1];taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[0];ReturnValue;taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[1];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;CodeIdentifiers;false;AddUnique;(System.String,System.Object);;Argument[Qualifier];Argument[1];taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;MakeUnique;(System.String);;Argument[0];ReturnValue;taint;generated | | System.Xml.Serialization;CodeIdentifiers;false;ToArray;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | | System.Xml.Serialization;ImportContext;false;ImportContext;(System.Xml.Serialization.CodeIdentifiers,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | @@ -7411,7 +7285,6 @@ | System.Xml.Serialization;XmlSerializationWriter;false;WriteElementStringRaw;(System.String,System.String,System.String);;Argument[2];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteElementStringRaw;(System.String,System.String,System.String,System.Xml.XmlQualifiedName);;Argument[2];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteElementStringRaw;(System.String,System.String,System.Xml.XmlQualifiedName);;Argument[1];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WriteId;(System.Object);;Argument[Qualifier];Argument[0];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringEncoded;(System.String,System.String,System.String,System.Xml.XmlQualifiedName);;Argument[2];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringEncodedRaw;(System.String,System.String,System.Byte[],System.Xml.XmlQualifiedName);;Argument[2].Element;Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringEncodedRaw;(System.String,System.String,System.String,System.Xml.XmlQualifiedName);;Argument[2];Argument[Qualifier];taint;generated | @@ -7419,15 +7292,9 @@ | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringLiteralRaw;(System.String,System.String,System.Byte[]);;Argument[2].Element;Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteNullableStringLiteralRaw;(System.String,System.String,System.String);;Argument[2];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object);;Argument[2];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object);;Argument[Qualifier];Argument[2];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type);;Argument[2];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type);;Argument[Qualifier];Argument[2];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean);;Argument[Qualifier];Argument[2];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WritePotentiallyReferencingElement;(System.String,System.String,System.Object,System.Type,System.Boolean,System.Boolean);;Argument[Qualifier];Argument[2];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WriteReferencingElement;(System.String,System.String,System.Object);;Argument[Qualifier];Argument[2];taint;generated | -| System.Xml.Serialization;XmlSerializationWriter;false;WriteReferencingElement;(System.String,System.String,System.Object,System.Boolean);;Argument[Qualifier];Argument[2];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteRpcResult;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteRpcResult;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.Xml.Serialization;XmlSerializationWriter;false;WriteSerializable;(System.Xml.Serialization.IXmlSerializable,System.String,System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | @@ -9087,27 +8954,6 @@ | System;TupleExtensions;false;Deconstruct<,>;(System.Tuple,T1,T2);;Argument[0].Property[System.Tuple<,>.Item1];Argument[1];value;manual | | System;TupleExtensions;false;Deconstruct<,>;(System.Tuple,T1,T2);;Argument[0].Property[System.Tuple<,>.Item2];Argument[2];value;manual | | System;TupleExtensions;false;Deconstruct<>;(System.Tuple,T1);;Argument[0].Property[System.Tuple<>.Item1];Argument[1];value;manual | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,,>;(System.ValueTuple>>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,,>;(System.ValueTuple>);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<,>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | -| System;TupleExtensions;false;ToTuple<>;(System.ValueTuple);;Argument[0];ReturnValue;taint;generated | | System;TupleExtensions;false;ToValueTuple<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple>>);;Argument[0];ReturnValue;taint;generated | | System;TupleExtensions;false;ToValueTuple<,,,,,,,,,,,,,,,,,,,>;(System.Tuple>>);;Argument[0];ReturnValue;taint;generated | | System;TupleExtensions;false;ToValueTuple<,,,,,,,,,,,,,,,,,,>;(System.Tuple>>);;Argument[0];ReturnValue;taint;generated | From 813a8548d7271144696e9838d4b5aa1f72468253 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Wed, 22 Jun 2022 16:42:42 -0400 Subject: [PATCH 106/736] C++: accept test changes for globals in data flow --- .../semmle/tests/ExposedSystemData.expected | 12 ++++++ .../PotentiallyExposedSystemData.expected | 17 ++++++++ .../CWE/CWE-497/semmle/tests/tests.cpp | 4 +- .../CWE/CWE-497/semmle/tests/tests2.cpp | 2 +- .../Security/CWE/CWE-611/XXE.expected | 40 +++++++++++++++++++ .../Security/CWE/CWE-611/tests3.cpp | 6 +-- .../Security/CWE/CWE-611/tests5.cpp | 4 +- 7 files changed, 77 insertions(+), 8 deletions(-) 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 80b195bd0bd..11ec8e849a5 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,4 +1,8 @@ edges +| tests2.cpp:50:13:50:19 | global1 | tests2.cpp:82:14:82:20 | global1 | +| tests2.cpp:50:13:50:19 | global1 | tests2.cpp:82:14:82:20 | global1 | +| tests2.cpp:50:23:50:43 | Store | tests2.cpp:50:13:50:19 | global1 | +| tests2.cpp:50:23:50:43 | call to mysql_get_client_info | tests2.cpp:50:23:50:43 | Store | | tests2.cpp:63:13:63:18 | call to getenv | tests2.cpp:63:13:63:26 | (const char *)... | | tests2.cpp:64:13:64:18 | call to getenv | tests2.cpp:64:13:64:26 | (const char *)... | | tests2.cpp:65:13:65:18 | call to getenv | tests2.cpp:65:13:65:30 | (const char *)... | @@ -6,6 +10,8 @@ edges | tests2.cpp:78:18:78:38 | call to mysql_get_client_info | tests2.cpp:81:14:81:19 | (const char *)... | | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | +| tests2.cpp:82:14:82:20 | global1 | tests2.cpp:82:14:82:20 | global1 | +| tests2.cpp:82:14:82:20 | global1 | tests2.cpp:82:14:82:20 | global1 | | tests2.cpp:91:42:91:45 | str1 | tests2.cpp:93:14:93:17 | str1 | | tests2.cpp:101:8:101:15 | call to getpwuid | tests2.cpp:102:14:102:15 | pw | | tests2.cpp:109:3:109:4 | c1 [post update] [ptr] | tests2.cpp:111:14:111:15 | c1 [read] [ptr] | @@ -23,6 +29,9 @@ edges | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | (const void *)... | | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf | nodes +| tests2.cpp:50:13:50:19 | global1 | semmle.label | global1 | +| tests2.cpp:50:23:50:43 | Store | semmle.label | Store | +| tests2.cpp:50:23:50:43 | call to mysql_get_client_info | semmle.label | call to mysql_get_client_info | | tests2.cpp:63:13:63:18 | call to getenv | semmle.label | call to getenv | | tests2.cpp:63:13:63:18 | call to getenv | semmle.label | call to getenv | | tests2.cpp:63:13:63:26 | (const char *)... | semmle.label | (const char *)... | @@ -39,6 +48,8 @@ nodes | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | semmle.label | call to mysql_get_client_info | | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | semmle.label | call to mysql_get_client_info | | tests2.cpp:81:14:81:19 | (const char *)... | semmle.label | (const char *)... | +| tests2.cpp:82:14:82:20 | global1 | semmle.label | global1 | +| tests2.cpp:82:14:82:20 | global1 | semmle.label | global1 | | tests2.cpp:91:42:91:45 | str1 | semmle.label | str1 | | tests2.cpp:93:14:93:17 | str1 | semmle.label | str1 | | tests2.cpp:101:8:101:15 | call to getpwuid | semmle.label | call to getpwuid | @@ -70,6 +81,7 @@ subpaths | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | This operation exposes system data from $@. | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | call to mysql_get_client_info | | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | This operation exposes system data from $@. | tests2.cpp:80:14:80:34 | call to mysql_get_client_info | call to mysql_get_client_info | | tests2.cpp:81:14:81:19 | (const char *)... | tests2.cpp:78:18:78:38 | call to mysql_get_client_info | tests2.cpp:81:14:81:19 | (const char *)... | This operation exposes system data from $@. | tests2.cpp:78:18:78:38 | call to mysql_get_client_info | call to mysql_get_client_info | +| tests2.cpp:82:14:82:20 | global1 | tests2.cpp:50:23:50:43 | call to mysql_get_client_info | tests2.cpp:82:14:82:20 | global1 | This operation exposes system data from $@. | tests2.cpp:50:23:50:43 | call to mysql_get_client_info | call to mysql_get_client_info | | tests2.cpp:93:14:93:17 | str1 | tests2.cpp:91:42:91:45 | str1 | tests2.cpp:93:14:93:17 | str1 | This operation exposes system data from $@. | tests2.cpp:91:42:91:45 | str1 | str1 | | tests2.cpp:102:14:102:15 | pw | tests2.cpp:101:8:101:15 | call to getpwuid | tests2.cpp:102:14:102:15 | pw | This operation exposes system data from $@. | tests2.cpp:101:8:101:15 | call to getpwuid | call to getpwuid | | tests2.cpp:111:14:111:19 | (const char *)... | tests2.cpp:109:12:109:17 | call to getenv | tests2.cpp:111:14:111:19 | (const char *)... | This operation exposes system data from $@. | tests2.cpp:109:12:109:17 | call to getenv | call to getenv | 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 62fe44dcc23..ff10a3b9c1c 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 @@ -5,6 +5,14 @@ edges | tests.cpp:57:18:57:23 | call to getenv | tests.cpp:57:18:57:39 | (const char_type *)... | | tests.cpp:58:41:58:46 | call to getenv | tests.cpp:58:41:58:62 | (const char_type *)... | | tests.cpp:59:43:59:48 | call to getenv | tests.cpp:59:43:59:64 | (const char *)... | +| tests.cpp:62:7:62:18 | global_token | tests.cpp:69:17:69:28 | global_token | +| tests.cpp:62:7:62:18 | global_token | tests.cpp:71:27:71:38 | global_token | +| tests.cpp:62:7:62:18 | global_token | tests.cpp:71:27:71:38 | global_token | +| tests.cpp:62:22:62:27 | Store | tests.cpp:62:7:62:18 | global_token | +| tests.cpp:62:22:62:27 | call to getenv | tests.cpp:62:22:62:27 | Store | +| tests.cpp:69:17:69:28 | global_token | tests.cpp:73:27:73:31 | maybe | +| tests.cpp:71:27:71:38 | global_token | tests.cpp:71:27:71:38 | global_token | +| tests.cpp:71:27:71:38 | global_token | tests.cpp:71:27:71:38 | global_token | | tests.cpp:86:29:86:31 | *msg | tests.cpp:88:15:88:17 | msg | | tests.cpp:86:29:86:31 | msg | tests.cpp:88:15:88:17 | msg | | tests.cpp:97:13:97:18 | call to getenv | tests.cpp:97:13:97:34 | (const char *)... | @@ -52,6 +60,13 @@ nodes | tests.cpp:59:43:59:48 | call to getenv | semmle.label | call to getenv | | tests.cpp:59:43:59:48 | call to getenv | semmle.label | call to getenv | | tests.cpp:59:43:59:64 | (const char *)... | semmle.label | (const char *)... | +| tests.cpp:62:7:62:18 | global_token | semmle.label | global_token | +| tests.cpp:62:22:62:27 | Store | semmle.label | Store | +| tests.cpp:62:22:62:27 | call to getenv | semmle.label | call to getenv | +| tests.cpp:69:17:69:28 | global_token | semmle.label | global_token | +| tests.cpp:71:27:71:38 | global_token | semmle.label | global_token | +| tests.cpp:71:27:71:38 | global_token | semmle.label | global_token | +| tests.cpp:73:27:73:31 | maybe | semmle.label | maybe | | tests.cpp:86:29:86:31 | *msg | semmle.label | *msg | | tests.cpp:86:29:86:31 | msg | semmle.label | msg | | tests.cpp:88:15:88:17 | msg | semmle.label | msg | @@ -97,6 +112,8 @@ subpaths | tests.cpp:58:41:58:62 | (const char_type *)... | tests.cpp:58:41:58:46 | call to getenv | tests.cpp:58:41:58:62 | (const char_type *)... | This operation potentially exposes sensitive system data from $@. | tests.cpp:58:41:58:46 | call to getenv | call to getenv | | tests.cpp:59:43:59:48 | call to getenv | tests.cpp:59:43:59:48 | call to getenv | tests.cpp:59:43:59:48 | call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:59:43:59:48 | call to getenv | call to getenv | | tests.cpp:59:43:59:64 | (const char *)... | tests.cpp:59:43:59:48 | call to getenv | tests.cpp:59:43:59:64 | (const char *)... | This operation potentially exposes sensitive system data from $@. | tests.cpp:59:43:59:48 | call to getenv | call to getenv | +| tests.cpp:71:27:71:38 | global_token | tests.cpp:62:22:62:27 | call to getenv | tests.cpp:71:27:71:38 | global_token | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | call to getenv | call to getenv | +| tests.cpp:73:27:73:31 | maybe | tests.cpp:62:22:62:27 | call to getenv | tests.cpp:73:27:73:31 | maybe | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | call to getenv | call to getenv | | tests.cpp:88:15:88:17 | msg | tests.cpp:97:13:97:18 | call to getenv | tests.cpp:88:15:88:17 | msg | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv | call to getenv | | tests.cpp:97:13:97:18 | call to getenv | tests.cpp:97:13:97:18 | call to getenv | tests.cpp:97:13:97:18 | call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv | call to getenv | | tests.cpp:97:13:97:34 | (const char *)... | tests.cpp:97:13:97:18 | call to getenv | tests.cpp:97:13:97:34 | (const char *)... | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv | call to getenv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/tests.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/tests.cpp index e61fc582fc3..843d579386b 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/tests.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/tests.cpp @@ -68,9 +68,9 @@ void test2(bool cond) maybe = cond ? global_token : global_other; - printf("token = '%s'\n", global_token); // BAD: outputs SECRET_TOKEN environment variable [NOT DETECTED] + printf("token = '%s'\n", global_token); // BAD: outputs SECRET_TOKEN environment variable printf("other = '%s'\n", global_other); - printf("maybe = '%s'\n", maybe); // BAD: may output SECRET_TOKEN environment variable [NOT DETECTED] + printf("maybe = '%s'\n", maybe); // BAD: may output SECRET_TOKEN environment variable } void test3() diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/tests2.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/tests2.cpp index 763f1ecfafc..e1399eab343 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/tests2.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/tests2.cpp @@ -79,7 +79,7 @@ void test1() send(sock, mysql_get_client_info(), val(), val()); // BAD send(sock, buffer, val(), val()); // BAD - send(sock, global1, val(), val()); // BAD [NOT DETECTED] + send(sock, global1, val(), val()); // BAD send(sock, global2, val(), val()); // GOOD: not system data } 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 a4db6155e31..7403cba893a 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 @@ -2,11 +2,26 @@ edges | tests2.cpp:20:17:20:31 | SAXParser output argument | tests2.cpp:22:2:22:2 | p | | tests2.cpp:33:17:33:31 | SAXParser output argument | tests2.cpp:37:2:37:2 | p | | tests3.cpp:23:21:23:53 | call to createXMLReader | tests3.cpp:25:2:25:2 | p | +| tests3.cpp:35:16:35:20 | p_3_3 | tests3.cpp:38:2:38:6 | p_3_3 | +| tests3.cpp:35:24:35:56 | Store | tests3.cpp:35:16:35:20 | p_3_3 | +| tests3.cpp:35:24:35:56 | call to createXMLReader | tests3.cpp:35:24:35:56 | Store | +| tests3.cpp:41:16:41:20 | p_3_4 | tests3.cpp:45:2:45:6 | p_3_4 | +| tests3.cpp:41:24:41:56 | Store | tests3.cpp:41:16:41:20 | p_3_4 | +| tests3.cpp:41:24:41:56 | call to createXMLReader | tests3.cpp:41:24:41:56 | Store | +| tests3.cpp:48:16:48:20 | p_3_5 | tests3.cpp:56:2:56:6 | p_3_5 | +| tests3.cpp:48:24:48:56 | Store | tests3.cpp:48:16:48:20 | p_3_5 | +| tests3.cpp:48:24:48:56 | call to createXMLReader | tests3.cpp:48:24:48:56 | Store | | tests3.cpp:60:21:60:53 | call to createXMLReader | tests3.cpp:63:2:63:2 | p | | tests3.cpp:67:21:67:53 | call to createXMLReader | tests3.cpp:70:2:70:2 | p | | tests5.cpp:27:25:27:38 | call to createLSParser | tests5.cpp:29:2:29:2 | p | | tests5.cpp:40:25:40:38 | call to createLSParser | tests5.cpp:43:2:43:2 | p | | tests5.cpp:55:25:55:38 | call to createLSParser | tests5.cpp:59:2:59:2 | p | +| tests5.cpp:63:14:63:17 | g_p1 | tests5.cpp:76:2:76:5 | g_p1 | +| tests5.cpp:63:21:63:24 | g_p2 | tests5.cpp:77:2:77:5 | g_p2 | +| tests5.cpp:67:2:67:32 | Store | tests5.cpp:63:14:63:17 | g_p1 | +| tests5.cpp:67:17:67:30 | call to createLSParser | tests5.cpp:67:2:67:32 | Store | +| tests5.cpp:70:2:70:32 | Store | tests5.cpp:63:21:63:24 | g_p2 | +| tests5.cpp:70:17:70:30 | call to createLSParser | tests5.cpp:70:2:70:32 | Store | | tests5.cpp:81:25:81:38 | call to createLSParser | tests5.cpp:83:2:83:2 | p | | tests5.cpp:81:25:81:38 | call to createLSParser | tests5.cpp:83:2:83:2 | p | | tests5.cpp:83:2:83:2 | p | tests5.cpp:85:2:85:2 | p | @@ -46,6 +61,18 @@ nodes | tests2.cpp:37:2:37:2 | p | semmle.label | p | | tests3.cpp:23:21:23:53 | call to createXMLReader | semmle.label | call to createXMLReader | | tests3.cpp:25:2:25:2 | p | semmle.label | p | +| tests3.cpp:35:16:35:20 | p_3_3 | semmle.label | p_3_3 | +| tests3.cpp:35:24:35:56 | Store | semmle.label | Store | +| tests3.cpp:35:24:35:56 | call to createXMLReader | semmle.label | call to createXMLReader | +| tests3.cpp:38:2:38:6 | p_3_3 | semmle.label | p_3_3 | +| tests3.cpp:41:16:41:20 | p_3_4 | semmle.label | p_3_4 | +| tests3.cpp:41:24:41:56 | Store | semmle.label | Store | +| tests3.cpp:41:24:41:56 | call to createXMLReader | semmle.label | call to createXMLReader | +| tests3.cpp:45:2:45:6 | p_3_4 | semmle.label | p_3_4 | +| tests3.cpp:48:16:48:20 | p_3_5 | semmle.label | p_3_5 | +| tests3.cpp:48:24:48:56 | Store | semmle.label | Store | +| tests3.cpp:48:24:48:56 | call to createXMLReader | semmle.label | call to createXMLReader | +| tests3.cpp:56:2:56:6 | p_3_5 | semmle.label | p_3_5 | | tests3.cpp:60:21:60:53 | call to createXMLReader | semmle.label | call to createXMLReader | | tests3.cpp:63:2:63:2 | p | semmle.label | p | | tests3.cpp:67:21:67:53 | call to createXMLReader | semmle.label | call to createXMLReader | @@ -61,6 +88,14 @@ nodes | tests5.cpp:43:2:43:2 | p | semmle.label | p | | tests5.cpp:55:25:55:38 | call to createLSParser | semmle.label | call to createLSParser | | tests5.cpp:59:2:59:2 | p | semmle.label | p | +| tests5.cpp:63:14:63:17 | g_p1 | semmle.label | g_p1 | +| tests5.cpp:63:21:63:24 | g_p2 | semmle.label | g_p2 | +| tests5.cpp:67:2:67:32 | Store | semmle.label | Store | +| tests5.cpp:67:17:67:30 | call to createLSParser | semmle.label | call to createLSParser | +| tests5.cpp:70:2:70:32 | Store | semmle.label | Store | +| tests5.cpp:70:17:70:30 | call to createLSParser | semmle.label | call to createLSParser | +| tests5.cpp:76:2:76:5 | g_p1 | semmle.label | g_p1 | +| tests5.cpp:77:2:77:5 | g_p2 | semmle.label | g_p2 | | tests5.cpp:81:25:81:38 | call to createLSParser | semmle.label | call to createLSParser | | tests5.cpp:83:2:83:2 | p | semmle.label | p | | tests5.cpp:83:2:83:2 | p | semmle.label | p | @@ -108,6 +143,9 @@ subpaths | tests2.cpp:22:2:22:2 | p | tests2.cpp:20:17:20:31 | SAXParser output argument | tests2.cpp:22:2:22:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests2.cpp:20:17:20:31 | SAXParser output argument | XML parser | | tests2.cpp:37:2:37:2 | p | tests2.cpp:33:17:33:31 | SAXParser output argument | tests2.cpp:37:2:37:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests2.cpp:33:17:33:31 | SAXParser output argument | XML parser | | tests3.cpp:25:2:25:2 | p | tests3.cpp:23:21:23:53 | call to createXMLReader | tests3.cpp:25:2:25:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:23:21:23:53 | call to createXMLReader | XML parser | +| tests3.cpp:38:2:38:6 | p_3_3 | tests3.cpp:35:24:35:56 | call to createXMLReader | tests3.cpp:38:2:38:6 | p_3_3 | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:35:24:35:56 | call to createXMLReader | XML parser | +| tests3.cpp:45:2:45:6 | p_3_4 | tests3.cpp:41:24:41:56 | call to createXMLReader | tests3.cpp:45:2:45:6 | p_3_4 | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:41:24:41:56 | call to createXMLReader | XML parser | +| tests3.cpp:56:2:56:6 | p_3_5 | tests3.cpp:48:24:48:56 | call to createXMLReader | tests3.cpp:56:2:56:6 | p_3_5 | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:48:24:48:56 | call to createXMLReader | XML parser | | tests3.cpp:63:2:63:2 | p | tests3.cpp:60:21:60:53 | call to createXMLReader | tests3.cpp:63:2:63:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:60:21:60:53 | call to createXMLReader | XML parser | | tests3.cpp:70:2:70:2 | p | tests3.cpp:67:21:67:53 | call to createXMLReader | tests3.cpp:70:2:70:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:67:21:67:53 | call to createXMLReader | XML parser | | tests4.cpp:26:34:26:48 | (int)... | tests4.cpp:26:34:26:48 | (int)... | tests4.cpp:26:34:26:48 | (int)... | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests4.cpp:26:34:26:48 | (int)... | XML parser | @@ -118,6 +156,8 @@ subpaths | tests5.cpp:29:2:29:2 | p | tests5.cpp:27:25:27:38 | call to createLSParser | tests5.cpp:29:2:29:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:27:25:27:38 | call to createLSParser | XML parser | | tests5.cpp:43:2:43:2 | p | tests5.cpp:40:25:40:38 | call to createLSParser | tests5.cpp:43:2:43:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:40:25:40:38 | call to createLSParser | XML parser | | tests5.cpp:59:2:59:2 | p | tests5.cpp:55:25:55:38 | call to createLSParser | tests5.cpp:59:2:59:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:55:25:55:38 | call to createLSParser | XML parser | +| tests5.cpp:76:2:76:5 | g_p1 | tests5.cpp:67:17:67:30 | call to createLSParser | tests5.cpp:76:2:76:5 | g_p1 | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:67:17:67:30 | call to createLSParser | XML parser | +| tests5.cpp:77:2:77:5 | g_p2 | tests5.cpp:70:17:70:30 | call to createLSParser | tests5.cpp:77:2:77:5 | g_p2 | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:70:17:70:30 | call to createLSParser | XML parser | | tests5.cpp:83:2:83:2 | p | tests5.cpp:81:25:81:38 | call to createLSParser | tests5.cpp:83:2:83:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:81:25:81:38 | call to createLSParser | XML parser | | tests5.cpp:89:2:89:2 | p | tests5.cpp:81:25:81:38 | call to createLSParser | tests5.cpp:89:2:89:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:81:25:81:38 | call to createLSParser | XML parser | | tests.cpp:17:2:17:2 | p | tests.cpp:15:23:15:43 | XercesDOMParser output argument | tests.cpp:17:2:17:2 | p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:15:23:15:43 | XercesDOMParser output argument | XML parser | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-611/tests3.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-611/tests3.cpp index 15e518daf13..8af560a8e6d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-611/tests3.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-611/tests3.cpp @@ -35,14 +35,14 @@ void test3_2(InputSource &data) { SAX2XMLReader *p_3_3 = XMLReaderFactory::createXMLReader(); void test3_3(InputSource &data) { - p_3_3->parse(data); // BAD (parser not correctly configured) [NOT DETECTED] + p_3_3->parse(data); // BAD (parser not correctly configured) } SAX2XMLReader *p_3_4 = XMLReaderFactory::createXMLReader(); void test3_4(InputSource &data) { p_3_4->setFeature(XMLUni::fgXercesDisableDefaultEntityResolution, true); - p_3_4->parse(data); // GOOD + p_3_4->parse(data); // GOOD [FALSE POSITIVE] } SAX2XMLReader *p_3_5 = XMLReaderFactory::createXMLReader(); @@ -53,7 +53,7 @@ void test3_5_init() { void test3_5(InputSource &data) { test3_5_init(); - p_3_5->parse(data); // GOOD + p_3_5->parse(data); // GOOD [FALSE POSITIVE] } void test3_6(InputSource &data) { diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-611/tests5.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-611/tests5.cpp index 99027c9bd93..0d55be455da 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-611/tests5.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-611/tests5.cpp @@ -73,8 +73,8 @@ void test5_6_init() { void test5_6() { test5_6_init(); - g_p1->parse(*g_data); // GOOD - g_p2->parse(*g_data); // BAD (parser not correctly configured) [NOT DETECTED] + g_p1->parse(*g_data); // GOOD [FALSE POSITIVE] + g_p2->parse(*g_data); // BAD (parser not correctly configured) } void test5_7(DOMImplementationLS *impl, InputSource &data) { From e838b83f5f47fe5b2e086d9ee06ff09bb6213173 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 23 Jun 2022 02:21:47 +0000 Subject: [PATCH 107/736] attempt to introduce dataflow tracking --- .../experimental/weak-params/WeakParams.ql | 69 +++++++++++++------ 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index d7408f8bea7..1d8ef89e70a 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -1,7 +1,7 @@ /** * @name Weak or direct parameter references are used * @description Directly checking request parameters without following a strong params pattern can lead to unintentional avenues for injection attacks. - * @kind problem + * @kind path-problem * @problem.severity error * @security-severity 5.0 * @precision low @@ -10,10 +10,13 @@ */ import ruby +import codeql.ruby.DataFlow +import codeql.ruby.TaintTracking +import DataFlow::PathGraph -class WeakParams extends AstNode { +class WeakParams extends Expr { WeakParams() { - this instanceof UnspecificParamsMethod or + allParamsAccess(this) or this instanceof ParamsReference } } @@ -26,27 +29,51 @@ class StrongParamsMethod extends Method { StrongParamsMethod() { this.getName().regexpMatch(".*_params") } } -class UnspecificParamsMethod extends MethodCall { - UnspecificParamsMethod() { - ( - this.getMethodName() = "expose_all" or - this.getMethodName() = "original_hash" or - this.getMethodName() = "path_parametes" or - this.getMethodName() = "query_parameters" or - this.getMethodName() = "request_parameters" or - this.getMethodName() = "GET" or - this.getMethodName() = "POST" - ) - } +predicate allParamsAccess(MethodCall call) { + call.getMethodName() = "expose_all" or + call.getMethodName() = "original_hash" or + call.getMethodName() = "path_parametes" or + call.getMethodName() = "query_parameters" or + call.getMethodName() = "request_parameters" or + call.getMethodName() = "GET" or + call.getMethodName() = "POST" } class ParamsReference extends ElementReference { ParamsReference() { this.getAChild().toString() = "params" } } -from WeakParams params -where - not params.getEnclosingMethod() instanceof StrongParamsMethod and - params.getEnclosingModule() instanceof ControllerClass -select params, - "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." +class ModelClass extends ModuleBase { + ModelClass() { + this.getModule().getSuperClass+().toString() = "ViewModel" or + this.getModule().getSuperClass+().getAnIncludedModule().toString() = "ActionModel::Model" + } +} + +class ModelClassMethodArgument extends DataFlow::Node { + private DataFlow::CallNode call; + + ModelClassMethodArgument() { + this = call.getArgument(_) and + call.getExprNode().getNode().getParent+() instanceof ModelClass + } +} + +class Configuration extends TaintTracking::Configuration { + Configuration() { this = "Configuration" } + + override predicate isSource(DataFlow::Node node) { node.asExpr().getNode() instanceof WeakParams } + + // the sink is an instance of a Model class that receives a method call + override predicate isSink(DataFlow::Node node) { node instanceof ModelClassMethodArgument } +} + +from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink +where config.hasFlowPath(source, sink) +select sink.getNode().(ModelClassMethodArgument), source, sink, "This is bad" +// from WeakParams params +// where +// not params.getEnclosingMethod() instanceof StrongParamsMethod and +// params.getEnclosingModule() instanceof ControllerClass +// select params, +// "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." From a74051c658adef6dd58f0c097eb115df12428f5a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Jun 2022 11:17:46 +0000 Subject: [PATCH 108/736] Release preparation for version 2.10.0 --- cpp/ql/lib/CHANGELOG.md | 14 ++++++++++++++ .../change-notes/2022-05-30-braced-initializers.md | 4 ---- .../2022-06-22-class-declaration-entry-fix.md | 4 ---- cpp/ql/lib/change-notes/released/0.3.0.md | 13 +++++++++++++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 2 ++ cpp/ql/src/change-notes/released/0.2.0.md | 1 + cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 2 ++ .../Solorigate/lib/change-notes/released/1.2.0.md | 1 + .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 2 ++ .../Solorigate/src/change-notes/released/1.2.0.md | 1 + .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 6 ++++++ .../ql/lib/change-notes/released/0.3.0.md | 7 ++++--- csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 11 +++++++++++ .../2022-06-02-aspnetcoretaintedmembers.md | 4 ---- .../src/change-notes/2022-06-14-madformatchange.md | 4 ---- .../2022-06-15-diagnostic-query-metadata.md | 4 ---- csharp/ql/src/change-notes/released/0.2.0.md | 10 ++++++++++ csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 6 ++++++ .../ql/lib/change-notes/released/0.2.0.md | 7 ++++--- go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 2 ++ go/ql/src/change-notes/released/0.2.0.md | 1 + go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 10 ++++++++++ .../2022-05-25-string-valueof-editable-step.md | 4 ---- java/ql/lib/change-notes/released/0.3.0.md | 9 +++++++++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 6 ++++++ .../0.2.0.md} | 7 ++++--- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 10 ++++++++++ .../lib/change-notes/2022-05-24-ecmascript-2022.md | 4 ---- .../lib/change-notes/2022-05-24-typescript-4-7.md | 4 ---- javascript/ql/lib/change-notes/released/0.2.0.md | 9 +++++++++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 7 +++++++ .../0.2.0.md} | 7 ++++--- javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 6 ++++++ .../2022-06-21-barrierguard-deprecation.md | 4 ---- .../ql/lib/change-notes/released/0.5.0.md | 7 ++++--- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 10 ++++++++++ .../2022-05-16-broken-crypto-block-mode.md | 4 ---- ...uest-without-certificate-validation-modeling.md | 4 ---- python/ql/src/change-notes/released/0.2.0.md | 9 +++++++++ python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 10 ++++++++++ .../2022-06-21-barrierguard-deprecation.md | 4 ---- .../ql/lib/change-notes/released/0.3.0.md | 7 ++++--- ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 10 ++++++++++ .../2022-05-16-broken-crypto-message.md | 4 ---- .../2022-05-24-improper-memoization.md | 4 ---- ruby/ql/src/change-notes/released/0.2.0.md | 9 +++++++++ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- 78 files changed, 233 insertions(+), 106 deletions(-) delete mode 100644 cpp/ql/lib/change-notes/2022-05-30-braced-initializers.md delete mode 100644 cpp/ql/lib/change-notes/2022-06-22-class-declaration-entry-fix.md create mode 100644 cpp/ql/lib/change-notes/released/0.3.0.md create mode 100644 cpp/ql/src/change-notes/released/0.2.0.md create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.0.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.0.md rename go/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md => csharp/ql/lib/change-notes/released/0.3.0.md (83%) delete mode 100644 csharp/ql/src/change-notes/2022-06-02-aspnetcoretaintedmembers.md delete mode 100644 csharp/ql/src/change-notes/2022-06-14-madformatchange.md delete mode 100644 csharp/ql/src/change-notes/2022-06-15-diagnostic-query-metadata.md create mode 100644 csharp/ql/src/change-notes/released/0.2.0.md rename cpp/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md => go/ql/lib/change-notes/released/0.2.0.md (83%) create mode 100644 go/ql/src/change-notes/released/0.2.0.md delete mode 100644 java/ql/lib/change-notes/2022-05-25-string-valueof-editable-step.md create mode 100644 java/ql/lib/change-notes/released/0.3.0.md rename java/ql/src/change-notes/{2022-06-22-log-injection-location.md => released/0.2.0.md} (86%) delete mode 100644 javascript/ql/lib/change-notes/2022-05-24-ecmascript-2022.md delete mode 100644 javascript/ql/lib/change-notes/2022-05-24-typescript-4-7.md create mode 100644 javascript/ql/lib/change-notes/released/0.2.0.md rename javascript/ql/src/change-notes/{2022-05-24-resource-exhaustion-no-buffer.from.md => released/0.2.0.md} (77%) delete mode 100644 python/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md rename java/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md => python/ql/lib/change-notes/released/0.5.0.md (83%) delete mode 100644 python/ql/src/change-notes/2022-05-16-broken-crypto-block-mode.md delete mode 100644 python/ql/src/change-notes/2022-06-08-request-without-certificate-validation-modeling.md create mode 100644 python/ql/src/change-notes/released/0.2.0.md delete mode 100644 ruby/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md rename csharp/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md => ruby/ql/lib/change-notes/released/0.3.0.md (83%) delete mode 100644 ruby/ql/src/change-notes/2022-05-16-broken-crypto-message.md delete mode 100644 ruby/ql/src/change-notes/2022-05-24-improper-memoization.md create mode 100644 ruby/ql/src/change-notes/released/0.2.0.md diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 52dd2c7a843..3b815104efd 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,17 @@ +## 0.3.0 + +### Deprecated APIs + +* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. + +### New Features + +* An `isBraced` predicate was added to the `Initializer` class which holds when a C++ braced initializer was used in the initialization. + +### Bug Fixes + +* `UserType.getADeclarationEntry()` now yields all forward declarations when the user type is a `class`, `struct`, or `union`. + ## 0.2.3 ### New Features diff --git a/cpp/ql/lib/change-notes/2022-05-30-braced-initializers.md b/cpp/ql/lib/change-notes/2022-05-30-braced-initializers.md deleted file mode 100644 index 8a31f06ab98..00000000000 --- a/cpp/ql/lib/change-notes/2022-05-30-braced-initializers.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* An `isBraced` predicate was added to the `Initializer` class which holds when a C++ braced initializer was used in the initialization. diff --git a/cpp/ql/lib/change-notes/2022-06-22-class-declaration-entry-fix.md b/cpp/ql/lib/change-notes/2022-06-22-class-declaration-entry-fix.md deleted file mode 100644 index fb301705e79..00000000000 --- a/cpp/ql/lib/change-notes/2022-06-22-class-declaration-entry-fix.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* `UserType.getADeclarationEntry()` now yields all forward declarations when the user type is a `class`, `struct`, or `union`. diff --git a/cpp/ql/lib/change-notes/released/0.3.0.md b/cpp/ql/lib/change-notes/released/0.3.0.md new file mode 100644 index 00000000000..c266a3cfa65 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/0.3.0.md @@ -0,0 +1,13 @@ +## 0.3.0 + +### Deprecated APIs + +* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. + +### New Features + +* An `isBraced` predicate was added to the `Initializer` class which holds when a C++ braced initializer was used in the initialization. + +### Bug Fixes + +* `UserType.getADeclarationEntry()` now yields all forward declarations when the user type is a `class`, `struct`, or `union`. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 0b605901b42..95f6e3a0ba6 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.3 +lastReleaseVersion: 0.3.0 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 28cddcb3b00..ad716ce6145 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.3.0-dev +version: 0.3.0 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 449af46b6b8..2b404ff5288 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.2.0 + ## 0.1.4 ## 0.1.3 diff --git a/cpp/ql/src/change-notes/released/0.2.0.md b/cpp/ql/src/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..79a5f33514f --- /dev/null +++ b/cpp/ql/src/change-notes/released/0.2.0.md @@ -0,0 +1 @@ +## 0.2.0 diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index e8ee3af8ef9..5274e27ed52 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.4 +lastReleaseVersion: 0.2.0 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index a373e4717d8..4d5444cdb80 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.2.0-dev +version: 0.2.0 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 0bb47844d19..30c583ee913 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,5 @@ +## 1.2.0 + ## 1.1.4 ## 1.1.3 diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.0.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.0.md new file mode 100644 index 00000000000..0ff42339575 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.0.md @@ -0,0 +1 @@ +## 1.2.0 diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 26cbcd3f123..75430e73d1c 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.1.4 +lastReleaseVersion: 1.2.0 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 9cb7bec181f..f411871c1c7 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.2.0-dev +version: 1.2.0 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 0bb47844d19..30c583ee913 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 1.2.0 + ## 1.1.4 ## 1.1.3 diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.0.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.0.md new file mode 100644 index 00000000000..0ff42339575 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.0.md @@ -0,0 +1 @@ +## 1.2.0 diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 26cbcd3f123..75430e73d1c 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.1.4 +lastReleaseVersion: 1.2.0 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 07419f1b469..5f5ac8e59e2 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.2.0-dev +version: 1.2.0 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 3df8b95eeb6..3f49fe5ade3 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.0 + +### Deprecated APIs + +* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. + ## 0.2.3 ## 0.2.2 diff --git a/go/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md b/csharp/ql/lib/change-notes/released/0.3.0.md similarity index 83% rename from go/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md rename to csharp/ql/lib/change-notes/released/0.3.0.md index 2bd95798f89..54af6e00ac0 100644 --- a/go/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md +++ b/csharp/ql/lib/change-notes/released/0.3.0.md @@ -1,4 +1,5 @@ ---- -category: deprecated ---- +## 0.3.0 + +### Deprecated APIs + * The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 0b605901b42..95f6e3a0ba6 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.3 +lastReleaseVersion: 0.3.0 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 2e2d17e36fa..11897f937b9 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.3.0-dev +version: 0.3.0 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index bc553b74fe4..e7ce0b0b471 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.2.0 + +### Query Metadata Changes + +* The `kind` query metadata was changed to `diagnostic` on `cs/compilation-error`, `cs/compilation-message`, `cs/extraction-error`, and `cs/extraction-message`. + +### Minor Analysis Improvements + +* The syntax of the (source|sink|summary)model CSV format has been changed slightly for Java and C#. A new column called `provenance` has been introduced, where the allowed values are `manual` and `generated`. The value used to indicate whether a model as been written by hand (`manual`) or create by the CSV model generator (`generated`). +* All auto implemented public properties with public getters and setters on ASP.NET Core remote flow sources are now also considered to be tainted. + ## 0.1.4 ## 0.1.3 diff --git a/csharp/ql/src/change-notes/2022-06-02-aspnetcoretaintedmembers.md b/csharp/ql/src/change-notes/2022-06-02-aspnetcoretaintedmembers.md deleted file mode 100644 index b80e90e0434..00000000000 --- a/csharp/ql/src/change-notes/2022-06-02-aspnetcoretaintedmembers.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* All auto implemented public properties with public getters and setters on ASP.NET Core remote flow sources are now also considered to be tainted. \ No newline at end of file diff --git a/csharp/ql/src/change-notes/2022-06-14-madformatchange.md b/csharp/ql/src/change-notes/2022-06-14-madformatchange.md deleted file mode 100644 index 1dd215a89c7..00000000000 --- a/csharp/ql/src/change-notes/2022-06-14-madformatchange.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The syntax of the (source|sink|summary)model CSV format has been changed slightly for Java and C#. A new column called `provenance` has been introduced, where the allowed values are `manual` and `generated`. The value used to indicate whether a model as been written by hand (`manual`) or create by the CSV model generator (`generated`). \ No newline at end of file diff --git a/csharp/ql/src/change-notes/2022-06-15-diagnostic-query-metadata.md b/csharp/ql/src/change-notes/2022-06-15-diagnostic-query-metadata.md deleted file mode 100644 index d5cfc4d35e1..00000000000 --- a/csharp/ql/src/change-notes/2022-06-15-diagnostic-query-metadata.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* The `kind` query metadata was changed to `diagnostic` on `cs/compilation-error`, `cs/compilation-message`, `cs/extraction-error`, and `cs/extraction-message`. diff --git a/csharp/ql/src/change-notes/released/0.2.0.md b/csharp/ql/src/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..1b7d3928c1c --- /dev/null +++ b/csharp/ql/src/change-notes/released/0.2.0.md @@ -0,0 +1,10 @@ +## 0.2.0 + +### Query Metadata Changes + +* The `kind` query metadata was changed to `diagnostic` on `cs/compilation-error`, `cs/compilation-message`, `cs/extraction-error`, and `cs/extraction-message`. + +### Minor Analysis Improvements + +* The syntax of the (source|sink|summary)model CSV format has been changed slightly for Java and C#. A new column called `provenance` has been introduced, where the allowed values are `manual` and `generated`. The value used to indicate whether a model as been written by hand (`manual`) or create by the CSV model generator (`generated`). +* All auto implemented public properties with public getters and setters on ASP.NET Core remote flow sources are now also considered to be tainted. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index e8ee3af8ef9..5274e27ed52 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.4 +lastReleaseVersion: 0.2.0 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index a9d6dcf0e69..675f8d4a1b0 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.2.0-dev +version: 0.2.0 groups: - csharp - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 1767b297fc6..112f4fab585 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.2.0 + +### Deprecated APIs + +* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. + ## 0.1.4 ## 0.1.3 diff --git a/cpp/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md b/go/ql/lib/change-notes/released/0.2.0.md similarity index 83% rename from cpp/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md rename to go/ql/lib/change-notes/released/0.2.0.md index 2bd95798f89..ded60d11b7e 100644 --- a/cpp/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md +++ b/go/ql/lib/change-notes/released/0.2.0.md @@ -1,4 +1,5 @@ ---- -category: deprecated ---- +## 0.2.0 + +### Deprecated APIs + * The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index e8ee3af8ef9..5274e27ed52 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.4 +lastReleaseVersion: 0.2.0 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index f416a2612a8..8806039a710 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.2.0-dev +version: 0.2.0 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 541c8c95377..bed2509f5d3 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.2.0 + ## 0.1.4 ## 0.1.3 diff --git a/go/ql/src/change-notes/released/0.2.0.md b/go/ql/src/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..79a5f33514f --- /dev/null +++ b/go/ql/src/change-notes/released/0.2.0.md @@ -0,0 +1 @@ +## 0.2.0 diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index e8ee3af8ef9..5274e27ed52 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.4 +lastReleaseVersion: 0.2.0 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 062631cb68b..f30de39c94e 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.2.0-dev +version: 0.2.0 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 02f489ea9c5..41b23a74d1f 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.3.0 + +### Deprecated APIs + +* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. + +### Minor Analysis Improvements + +Added a flow step for `String.valueOf` calls on tainted `android.text.Editable` objects. + ## 0.2.3 ## 0.2.2 diff --git a/java/ql/lib/change-notes/2022-05-25-string-valueof-editable-step.md b/java/ql/lib/change-notes/2022-05-25-string-valueof-editable-step.md deleted file mode 100644 index 60b8a5a8a9d..00000000000 --- a/java/ql/lib/change-notes/2022-05-25-string-valueof-editable-step.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -Added a flow step for `String.valueOf` calls on tainted `android.text.Editable` objects. diff --git a/java/ql/lib/change-notes/released/0.3.0.md b/java/ql/lib/change-notes/released/0.3.0.md new file mode 100644 index 00000000000..0c908384d1e --- /dev/null +++ b/java/ql/lib/change-notes/released/0.3.0.md @@ -0,0 +1,9 @@ +## 0.3.0 + +### Deprecated APIs + +* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. + +### Minor Analysis Improvements + +Added a flow step for `String.valueOf` calls on tainted `android.text.Editable` objects. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 0b605901b42..95f6e3a0ba6 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.3 +lastReleaseVersion: 0.3.0 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 0eb686d7f94..0b359cd7722 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.3.0-dev +version: 0.3.0 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 4e3bacee693..1f8a00fb1ff 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.2.0 + +### Minor Analysis Improvements + +* The query `java/log-injection` now reports problems at the source (user-controlled data) instead of at the ultimate logging call. This was changed because user functions that wrap the ultimate logging call could result in most alerts being reported in an uninformative location. + ## 0.1.4 ## 0.1.3 diff --git a/java/ql/src/change-notes/2022-06-22-log-injection-location.md b/java/ql/src/change-notes/released/0.2.0.md similarity index 86% rename from java/ql/src/change-notes/2022-06-22-log-injection-location.md rename to java/ql/src/change-notes/released/0.2.0.md index b74f7d5faf9..2deabd93b15 100644 --- a/java/ql/src/change-notes/2022-06-22-log-injection-location.md +++ b/java/ql/src/change-notes/released/0.2.0.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 0.2.0 + +### Minor Analysis Improvements + * The query `java/log-injection` now reports problems at the source (user-controlled data) instead of at the ultimate logging call. This was changed because user functions that wrap the ultimate logging call could result in most alerts being reported in an uninformative location. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index e8ee3af8ef9..5274e27ed52 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.4 +lastReleaseVersion: 0.2.0 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index e9a69afa178..d68826094c7 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.2.0-dev +version: 0.2.0 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index a3699882eab..9df72979ef3 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.2.0 + +### Major Analysis Improvements + +* Added support for TypeScript 4.7. + +### Minor Analysis Improvements + +* All new ECMAScript 2022 features are now supported. + ## 0.1.4 ## 0.1.3 diff --git a/javascript/ql/lib/change-notes/2022-05-24-ecmascript-2022.md b/javascript/ql/lib/change-notes/2022-05-24-ecmascript-2022.md deleted file mode 100644 index 389b7c9044b..00000000000 --- a/javascript/ql/lib/change-notes/2022-05-24-ecmascript-2022.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* All new ECMAScript 2022 features are now supported. diff --git a/javascript/ql/lib/change-notes/2022-05-24-typescript-4-7.md b/javascript/ql/lib/change-notes/2022-05-24-typescript-4-7.md deleted file mode 100644 index 16fe46c675f..00000000000 --- a/javascript/ql/lib/change-notes/2022-05-24-typescript-4-7.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* Added support for TypeScript 4.7. diff --git a/javascript/ql/lib/change-notes/released/0.2.0.md b/javascript/ql/lib/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..6656adbcab5 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/0.2.0.md @@ -0,0 +1,9 @@ +## 0.2.0 + +### Major Analysis Improvements + +* Added support for TypeScript 4.7. + +### Minor Analysis Improvements + +* All new ECMAScript 2022 features are now supported. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index e8ee3af8ef9..5274e27ed52 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.4 +lastReleaseVersion: 0.2.0 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 7c558ea66e8..a817864032e 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.2.0-dev +version: 0.2.0 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index d9daf9a44e1..68660fcbb52 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.2.0 + +### Minor Analysis Improvements + +* The `js/resource-exhaustion` query no longer treats the 3-argument version of `Buffer.from` as a sink, + since it does not allocate a new buffer. + ## 0.1.4 ## 0.1.3 diff --git a/javascript/ql/src/change-notes/2022-05-24-resource-exhaustion-no-buffer.from.md b/javascript/ql/src/change-notes/released/0.2.0.md similarity index 77% rename from javascript/ql/src/change-notes/2022-05-24-resource-exhaustion-no-buffer.from.md rename to javascript/ql/src/change-notes/released/0.2.0.md index 8dadbdb4c93..3663154efb6 100644 --- a/javascript/ql/src/change-notes/2022-05-24-resource-exhaustion-no-buffer.from.md +++ b/javascript/ql/src/change-notes/released/0.2.0.md @@ -1,5 +1,6 @@ ---- -category: minorAnalysis ---- +## 0.2.0 + +### Minor Analysis Improvements + * The `js/resource-exhaustion` query no longer treats the 3-argument version of `Buffer.from` as a sink, since it does not allocate a new buffer. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index e8ee3af8ef9..5274e27ed52 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.4 +lastReleaseVersion: 0.2.0 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 0b8615cb8e8..0b5bfa5824e 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.2.0-dev +version: 0.2.0 groups: - javascript - queries diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 01b052d3a72..83861bcf61d 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.5.0 + +### Deprecated APIs + +* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. + ## 0.4.1 ## 0.4.0 diff --git a/python/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md b/python/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md deleted file mode 100644 index 2bd95798f89..00000000000 --- a/python/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. diff --git a/java/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md b/python/ql/lib/change-notes/released/0.5.0.md similarity index 83% rename from java/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md rename to python/ql/lib/change-notes/released/0.5.0.md index 2bd95798f89..db19d4ebfec 100644 --- a/java/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md +++ b/python/ql/lib/change-notes/released/0.5.0.md @@ -1,4 +1,5 @@ ---- -category: deprecated ---- +## 0.5.0 + +### Deprecated APIs + * The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 89fa3a87180..30e271c5361 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.1 +lastReleaseVersion: 0.5.0 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 10320703ecd..e4da90cbc2b 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.5.0-dev +version: 0.5.0 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 80db3bd9944..cf3b5f9b4eb 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.2.0 + +### Major Analysis Improvements + +* Improved library modeling for the query "Request without certificate validation" (`py/request-without-cert-validation`), so it now also covers `httpx`, `aiohttp.client`, and `urllib3`. + +### Minor Analysis Improvements + +* The query "Use of a broken or weak cryptographic algorithm" (`py/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. + ## 0.1.4 ## 0.1.3 diff --git a/python/ql/src/change-notes/2022-05-16-broken-crypto-block-mode.md b/python/ql/src/change-notes/2022-05-16-broken-crypto-block-mode.md deleted file mode 100644 index 3ddf8c2c884..00000000000 --- a/python/ql/src/change-notes/2022-05-16-broken-crypto-block-mode.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The query "Use of a broken or weak cryptographic algorithm" (`py/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. diff --git a/python/ql/src/change-notes/2022-06-08-request-without-certificate-validation-modeling.md b/python/ql/src/change-notes/2022-06-08-request-without-certificate-validation-modeling.md deleted file mode 100644 index f21f7cb93ba..00000000000 --- a/python/ql/src/change-notes/2022-06-08-request-without-certificate-validation-modeling.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* Improved library modeling for the query "Request without certificate validation" (`py/request-without-cert-validation`), so it now also covers `httpx`, `aiohttp.client`, and `urllib3`. diff --git a/python/ql/src/change-notes/released/0.2.0.md b/python/ql/src/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..3786d910a80 --- /dev/null +++ b/python/ql/src/change-notes/released/0.2.0.md @@ -0,0 +1,9 @@ +## 0.2.0 + +### Major Analysis Improvements + +* Improved library modeling for the query "Request without certificate validation" (`py/request-without-cert-validation`), so it now also covers `httpx`, `aiohttp.client`, and `urllib3`. + +### Minor Analysis Improvements + +* The query "Use of a broken or weak cryptographic algorithm" (`py/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index e8ee3af8ef9..5274e27ed52 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.4 +lastReleaseVersion: 0.2.0 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 85db089100e..91284be3afa 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.2.0-dev +version: 0.2.0 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 2da583dd23c..1b060e46141 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,5 +1,15 @@ +## 0.3.0 + +### Deprecated APIs + +* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. + ## 0.2.3 +### Minor Analysis Improvements + +- Calls to `Zip::File.open` and `Zip::File.new` have been added as `FileSystemAccess` sinks. As a result queries like `rb/path-injection` now flag up cases where users may access arbitrary archive files. + ## 0.2.2 ### Major Analysis Improvements diff --git a/ruby/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md b/ruby/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md deleted file mode 100644 index 2bd95798f89..00000000000 --- a/ruby/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. diff --git a/csharp/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md b/ruby/ql/lib/change-notes/released/0.3.0.md similarity index 83% rename from csharp/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md rename to ruby/ql/lib/change-notes/released/0.3.0.md index 2bd95798f89..54af6e00ac0 100644 --- a/csharp/ql/lib/change-notes/2022-06-21-barrierguard-deprecation.md +++ b/ruby/ql/lib/change-notes/released/0.3.0.md @@ -1,4 +1,5 @@ ---- -category: deprecated ---- +## 0.3.0 + +### Deprecated APIs + * The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 0b605901b42..95f6e3a0ba6 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.3 +lastReleaseVersion: 0.3.0 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index cf53cc3484e..1b419d0bdcf 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.3.0-dev +version: 0.3.0 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index d507f26cb11..0fbab5b5bbf 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.2.0 + +### New Queries + +* Added a new query, `rb/improper-memoization`. The query finds cases where the parameter of a memoization method is not used in the memoization key. + +### Minor Analysis Improvements + +* The query "Use of a broken or weak cryptographic algorithm" (`rb/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. + ## 0.1.4 ## 0.1.3 diff --git a/ruby/ql/src/change-notes/2022-05-16-broken-crypto-message.md b/ruby/ql/src/change-notes/2022-05-16-broken-crypto-message.md deleted file mode 100644 index 9f851c54819..00000000000 --- a/ruby/ql/src/change-notes/2022-05-16-broken-crypto-message.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The query "Use of a broken or weak cryptographic algorithm" (`rb/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. diff --git a/ruby/ql/src/change-notes/2022-05-24-improper-memoization.md b/ruby/ql/src/change-notes/2022-05-24-improper-memoization.md deleted file mode 100644 index 940c6ab102a..00000000000 --- a/ruby/ql/src/change-notes/2022-05-24-improper-memoization.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* Added a new query, `rb/improper-memoization`. The query finds cases where the parameter of a memoization method is not used in the memoization key. diff --git a/ruby/ql/src/change-notes/released/0.2.0.md b/ruby/ql/src/change-notes/released/0.2.0.md new file mode 100644 index 00000000000..ed13e617ebe --- /dev/null +++ b/ruby/ql/src/change-notes/released/0.2.0.md @@ -0,0 +1,9 @@ +## 0.2.0 + +### New Queries + +* Added a new query, `rb/improper-memoization`. The query finds cases where the parameter of a memoization method is not used in the memoization key. + +### Minor Analysis Improvements + +* The query "Use of a broken or weak cryptographic algorithm" (`rb/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index e8ee3af8ef9..5274e27ed52 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.4 +lastReleaseVersion: 0.2.0 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 914fb852b4e..159f92016a1 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.2.0-dev +version: 0.2.0 groups: - ruby - queries From bef38a64c3c2c738c800aee896ecf7819c494267 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 23 Jun 2022 14:10:09 +0200 Subject: [PATCH 109/736] Update cpp/ql/lib/CHANGELOG.md --- cpp/ql/lib/CHANGELOG.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 3b815104efd..c1cefbed8f9 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -4,10 +4,6 @@ * The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. -### New Features - -* An `isBraced` predicate was added to the `Initializer` class which holds when a C++ braced initializer was used in the initialization. - ### Bug Fixes * `UserType.getADeclarationEntry()` now yields all forward declarations when the user type is a `class`, `struct`, or `union`. From d3df2033f0ef480ee4ccc9f6713f1eb3bca0912d Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 23 Jun 2022 14:11:11 +0200 Subject: [PATCH 110/736] Update cpp/ql/lib/change-notes/released/0.3.0.md --- cpp/ql/lib/change-notes/released/0.3.0.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cpp/ql/lib/change-notes/released/0.3.0.md b/cpp/ql/lib/change-notes/released/0.3.0.md index c266a3cfa65..8c45dc21817 100644 --- a/cpp/ql/lib/change-notes/released/0.3.0.md +++ b/cpp/ql/lib/change-notes/released/0.3.0.md @@ -4,10 +4,6 @@ * The `BarrierGuard` class has been deprecated. Such barriers and sanitizers can now instead be created using the new `BarrierGuard` parameterized module. -### New Features - -* An `isBraced` predicate was added to the `Initializer` class which holds when a C++ braced initializer was used in the initialization. - ### Bug Fixes * `UserType.getADeclarationEntry()` now yields all forward declarations when the user type is a `class`, `struct`, or `union`. From d94010c244833b49d94203515f0abf52c1ba1bc5 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 23 Jun 2022 14:17:52 +0200 Subject: [PATCH 111/736] Grammar: report -> reports --- python/ql/src/CHANGELOG.md | 2 +- python/ql/src/change-notes/released/0.2.0.md | 2 +- ruby/ql/src/CHANGELOG.md | 2 +- ruby/ql/src/change-notes/released/0.2.0.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index cf3b5f9b4eb..3be12c71c5f 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -6,7 +6,7 @@ ### Minor Analysis Improvements -* The query "Use of a broken or weak cryptographic algorithm" (`py/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. +* The query "Use of a broken or weak cryptographic algorithm" (`py/weak-cryptographic-algorithm`) now reports if a cryptographic operation is potentially insecure due to use of a weak block mode. ## 0.1.4 diff --git a/python/ql/src/change-notes/released/0.2.0.md b/python/ql/src/change-notes/released/0.2.0.md index 3786d910a80..d9816a102f4 100644 --- a/python/ql/src/change-notes/released/0.2.0.md +++ b/python/ql/src/change-notes/released/0.2.0.md @@ -6,4 +6,4 @@ ### Minor Analysis Improvements -* The query "Use of a broken or weak cryptographic algorithm" (`py/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. +* The query "Use of a broken or weak cryptographic algorithm" (`py/weak-cryptographic-algorithm`) now reports if a cryptographic operation is potentially insecure due to use of a weak block mode. diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 0fbab5b5bbf..0905f133d16 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -6,7 +6,7 @@ ### Minor Analysis Improvements -* The query "Use of a broken or weak cryptographic algorithm" (`rb/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. +* The query "Use of a broken or weak cryptographic algorithm" (`rb/weak-cryptographic-algorithm`) now reports if a cryptographic operation is potentially insecure due to use of a weak block mode. ## 0.1.4 diff --git a/ruby/ql/src/change-notes/released/0.2.0.md b/ruby/ql/src/change-notes/released/0.2.0.md index ed13e617ebe..4e00c192dce 100644 --- a/ruby/ql/src/change-notes/released/0.2.0.md +++ b/ruby/ql/src/change-notes/released/0.2.0.md @@ -6,4 +6,4 @@ ### Minor Analysis Improvements -* The query "Use of a broken or weak cryptographic algorithm" (`rb/weak-cryptographic-algorithm`) now report if a cryptographic operation is potentially insecure due to use of a weak block mode. +* The query "Use of a broken or weak cryptographic algorithm" (`rb/weak-cryptographic-algorithm`) now reports if a cryptographic operation is potentially insecure due to use of a weak block mode. From c27290563ad3f5a90d076ac359871acbe1e32677 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 23 Jun 2022 14:34:05 +0200 Subject: [PATCH 112/736] Dataflow: Perf fix, avoid node scans. --- .../java/dataflow/internal/DataFlowImpl2.qll | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } From 4a317a25d32b56dc826b188071135b6cb941b375 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 23 Jun 2022 14:34:52 +0200 Subject: [PATCH 113/736] Dataflow: Sync. --- .../code/cpp/dataflow/internal/DataFlowImpl.qll | 16 ++++++++-------- .../code/cpp/dataflow/internal/DataFlowImpl2.qll | 16 ++++++++-------- .../code/cpp/dataflow/internal/DataFlowImpl3.qll | 16 ++++++++-------- .../code/cpp/dataflow/internal/DataFlowImpl4.qll | 16 ++++++++-------- .../cpp/dataflow/internal/DataFlowImplLocal.qll | 16 ++++++++-------- .../cpp/ir/dataflow/internal/DataFlowImpl.qll | 16 ++++++++-------- .../cpp/ir/dataflow/internal/DataFlowImpl2.qll | 16 ++++++++-------- .../cpp/ir/dataflow/internal/DataFlowImpl3.qll | 16 ++++++++-------- .../cpp/ir/dataflow/internal/DataFlowImpl4.qll | 16 ++++++++-------- .../csharp/dataflow/internal/DataFlowImpl.qll | 16 ++++++++-------- .../csharp/dataflow/internal/DataFlowImpl2.qll | 16 ++++++++-------- .../csharp/dataflow/internal/DataFlowImpl3.qll | 16 ++++++++-------- .../csharp/dataflow/internal/DataFlowImpl4.qll | 16 ++++++++-------- .../csharp/dataflow/internal/DataFlowImpl5.qll | 16 ++++++++-------- .../internal/DataFlowImplForContentDataFlow.qll | 16 ++++++++-------- .../code/java/dataflow/internal/DataFlowImpl.qll | 16 ++++++++-------- .../java/dataflow/internal/DataFlowImpl3.qll | 16 ++++++++-------- .../java/dataflow/internal/DataFlowImpl4.qll | 16 ++++++++-------- .../java/dataflow/internal/DataFlowImpl5.qll | 16 ++++++++-------- .../java/dataflow/internal/DataFlowImpl6.qll | 16 ++++++++-------- .../internal/DataFlowImplForOnActivityResult.qll | 16 ++++++++-------- .../internal/DataFlowImplForSerializability.qll | 16 ++++++++-------- .../dataflow/new/internal/DataFlowImpl.qll | 16 ++++++++-------- .../dataflow/new/internal/DataFlowImpl2.qll | 16 ++++++++-------- .../dataflow/new/internal/DataFlowImpl3.qll | 16 ++++++++-------- .../dataflow/new/internal/DataFlowImpl4.qll | 16 ++++++++-------- .../ruby/dataflow/internal/DataFlowImpl.qll | 16 ++++++++-------- .../ruby/dataflow/internal/DataFlowImpl2.qll | 16 ++++++++-------- .../internal/DataFlowImplForLibraries.qll | 16 ++++++++-------- .../swift/dataflow/internal/DataFlowImpl.qll | 16 ++++++++-------- 30 files changed, 240 insertions(+), 240 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 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 @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 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 @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 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 @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 7b9e78d2c4b..18e0b54cc73 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index 7b9e78d2c4b..18e0b54cc73 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -428,7 +428,7 @@ private predicate localFlowStep(NodeEx node1, NodeEx node2, Configuration config exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - simpleLocalFlowStepExt(n1, n2) and + simpleLocalFlowStepExt(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) ) or @@ -447,7 +447,7 @@ private predicate additionalLocalFlowStep(NodeEx node1, NodeEx node2, Configurat exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) ) @@ -466,7 +466,7 @@ private predicate additionalLocalStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) = getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -481,7 +481,7 @@ private predicate jumpStep(NodeEx node1, NodeEx node2, Configuration config) { exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - jumpStepCached(n1, n2) and + jumpStepCached(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext ) @@ -494,7 +494,7 @@ private predicate additionalJumpStep(NodeEx node1, NodeEx node2, Configuration c exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, n2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), pragma[only_bind_into](n2)) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not config.getAFeature() instanceof FeatureEqualSourceSinkCallContext @@ -507,7 +507,7 @@ private predicate additionalJumpStateStep( exists(Node n1, Node n2 | node1.asNode() = n1 and node2.asNode() = n2 and - config.isAdditionalFlowStep(n1, s1, n2, s2) and + config.isAdditionalFlowStep(pragma[only_bind_into](n1), s1, pragma[only_bind_into](n2), s2) and getNodeEnclosingCallable(n1) != getNodeEnclosingCallable(n2) and stepFilter(node1, node2, config) and not stateBarrier(node1, s1, config) and @@ -518,7 +518,7 @@ private predicate additionalJumpStateStep( pragma[nomagic] private predicate readSet(NodeEx node1, ContentSet c, NodeEx node2, Configuration config) { - readSet(node1.asNode(), c, node2.asNode()) and + readSet(pragma[only_bind_into](node1.asNode()), c, pragma[only_bind_into](node2.asNode())) and stepFilter(node1, node2, config) or exists(Node n | @@ -562,7 +562,7 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(node1.asNode(), tc, node2.asNode(), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } From dc517a758e104ce6a91c4f1bcff04548558afe63 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 23 Jun 2022 14:44:40 +0200 Subject: [PATCH 114/736] Autoformat --- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll | 3 ++- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll | 3 ++- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll | 3 ++- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll | 3 ++- .../semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll | 3 ++- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 3 ++- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 3 ++- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 3 ++- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 3 ++- .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll | 3 ++- .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll | 3 ++- .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll | 3 ++- .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll | 3 ++- .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll | 3 ++- .../dataflow/internal/DataFlowImplForContentDataFlow.qll | 3 ++- .../ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll | 3 ++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll | 3 ++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll | 3 ++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll | 3 ++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll | 3 ++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll | 3 ++- .../java/dataflow/internal/DataFlowImplForOnActivityResult.qll | 3 ++- .../java/dataflow/internal/DataFlowImplForSerializability.qll | 3 ++- .../lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll | 3 ++- .../lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll | 3 ++- .../lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll | 3 ++- .../lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll | 3 ++- ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll | 3 ++- ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll | 3 ++- .../codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll | 3 ++- swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll | 3 ++- 31 files changed, 62 insertions(+), 31 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 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 @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 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 @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 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 @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } 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 18e0b54cc73..a076f7a2e45 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index 18e0b54cc73..a076f7a2e45 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -562,7 +562,8 @@ pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { - store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and + store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), + contentType) and read(_, tc.getContent(), _, config) and stepFilter(node1, node2, config) } From fa622f551a2766ff641a8f0b13ddd3f48f37a148 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Thu, 23 Jun 2022 12:16:50 -0400 Subject: [PATCH 115/736] Update ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll Co-authored-by: Alex Ford --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 5809b35baf4..6ce74550610 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -331,6 +331,9 @@ class ActiveRecordInstance extends DataFlow::Node { } // A call whose receiver may be an active record model object +/** + * A call whose receiver may be an `ActiveRecordInstance`. + */ class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { private ActiveRecordInstance instance; From 173bea25795588544433fd2628979de0cbd2d72f Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Thu, 23 Jun 2022 12:18:26 -0400 Subject: [PATCH 116/736] Update ActiveRecord.qll --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 6ce74550610..225e9b30842 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -331,9 +331,7 @@ class ActiveRecordInstance extends DataFlow::Node { } // A call whose receiver may be an active record model object -/** - * A call whose receiver may be an `ActiveRecordInstance`. - */ +/** Gets the `ActiveRecordInstance` receiver of this call. */ class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { private ActiveRecordInstance instance; From caeef68bde589ecaf4cbdc674ceba55bceeed65a Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Thu, 23 Jun 2022 12:31:05 -0400 Subject: [PATCH 117/736] Update ActiveRecord.qll --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 225e9b30842..3742157a56f 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -331,7 +331,7 @@ class ActiveRecordInstance extends DataFlow::Node { } // A call whose receiver may be an active record model object -/** Gets the `ActiveRecordInstance` receiver of this call. */ +/** The `ActiveRecordInstance` receiver of this call. */ class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { private ActiveRecordInstance instance; From e45c982dd114aa47c13d1f63a51a4c616bfc0012 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 23 Jun 2022 14:32:52 -0400 Subject: [PATCH 118/736] C++: change note for global variables in dataflow --- cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md diff --git a/cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md b/cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md new file mode 100644 index 00000000000..695c40dbc74 --- /dev/null +++ b/cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md @@ -0,0 +1,4 @@ +--- +category: minor-analysis +--- +* The IR dataflow library now includes flow through global variables. From 4a522831c4155fff716c8e37ff311d0c8d6fa4af Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Thu, 23 Jun 2022 14:39:13 -0400 Subject: [PATCH 119/736] C++: update change note for IR global var flow --- cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md b/cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md index 695c40dbc74..ce931ef8de0 100644 --- a/cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md +++ b/cpp/ql/lib/change-notes/2022-06-23-global-var-flow.md @@ -1,4 +1,4 @@ --- -category: minor-analysis +category: majorAnalysis --- -* The IR dataflow library now includes flow through global variables. +* The IR dataflow library now includes flow through global variables. This enables new findings in many scenarios. From 45dd38df6eb5da24325ebcc0456e250429e7c2b6 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 24 Jun 2022 01:50:20 +0000 Subject: [PATCH 120/736] polish up dataflow query --- .../experimental/weak-params/WeakParams.ql | 45 +++++++++++++++---- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index 1d8ef89e70a..e3f63b9bfd8 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -14,21 +14,38 @@ import codeql.ruby.DataFlow import codeql.ruby.TaintTracking import DataFlow::PathGraph +/** + * any direct parameters reference that happens outside of a strong params method but inside + * of a controller class + */ class WeakParams extends Expr { WeakParams() { - allParamsAccess(this) or - this instanceof ParamsReference + ( + allParamsAccess(this) or + this instanceof ParamsReference + ) and + this.getEnclosingModule() instanceof ControllerClass and + not this.getEnclosingMethod() instanceof StrongParamsMethod } } +/** + * A controller class, which extendsd `ApplicationController` + */ class ControllerClass extends ModuleBase { ControllerClass() { this.getModule().getSuperClass+().toString() = "ApplicationController" } } +/** + * A method that follows the strong params naming convention + */ class StrongParamsMethod extends Method { StrongParamsMethod() { this.getName().regexpMatch(".*_params") } } +/** + * a call to a method that exposes or accesses all parameters from an inbound HTTP request + */ predicate allParamsAccess(MethodCall call) { call.getMethodName() = "expose_all" or call.getMethodName() = "original_hash" or @@ -39,10 +56,17 @@ predicate allParamsAccess(MethodCall call) { call.getMethodName() = "POST" } +/** + * A reference to an element in the `params` object + */ class ParamsReference extends ElementReference { ParamsReference() { this.getAChild().toString() = "params" } } +/** + * returns either Model or ViewModel classes with a base class of `ViewModel` or includes `ActionModel::Model`, + * which are required to support the strong parameters pattern + */ class ModelClass extends ModuleBase { ModelClass() { this.getModule().getSuperClass+().toString() = "ViewModel" or @@ -50,6 +74,10 @@ class ModelClass extends ModuleBase { } } +/** + * A DataFlow::Node representation that corresponds to any argument passed into a method call + * where the receiver is an instance of ModelClass + */ class ModelClassMethodArgument extends DataFlow::Node { private DataFlow::CallNode call; @@ -59,6 +87,10 @@ class ModelClassMethodArgument extends DataFlow::Node { } } +/** + * 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 = "Configuration" } @@ -70,10 +102,5 @@ class Configuration extends TaintTracking::Configuration { from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink where config.hasFlowPath(source, sink) -select sink.getNode().(ModelClassMethodArgument), source, sink, "This is bad" -// from WeakParams params -// where -// not params.getEnclosingMethod() instanceof StrongParamsMethod and -// params.getEnclosingModule() instanceof ControllerClass -// select params, -// "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." +select sink.getNode().(ModelClassMethodArgument), 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 cf36333082139ae016d3ed1a1c41aa05f9bb50e9 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 24 Jun 2022 02:18:48 +0000 Subject: [PATCH 121/736] forgot to finish this test --- ruby/ql/test/query-tests/security/weak-params/WeakParams.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb b/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb index cc0dc80341f..a2fedd6ef26 100644 --- a/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb +++ b/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb @@ -7,9 +7,12 @@ class TestController < ActionController::Base TestObject.new(request.query_parameters) end + def update + TestObect.update(object_params) + end + # def object_params - p = params.query_parameters params.require(:uuid).permit(:notes) end end \ No newline at end of file From ca074e2275060a7ad41882d922a14418289605f1 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 24 Jun 2022 02:19:06 +0000 Subject: [PATCH 122/736] add qhelp file --- .../experimental/weak-params/WeakParams.qhelp | 28 +++++++++++++++++++ .../experimental/weak-params/WeakParams.ql | 6 ++-- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 ruby/ql/src/experimental/weak-params/WeakParams.qhelp diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.qhelp b/ruby/ql/src/experimental/weak-params/WeakParams.qhelp new file mode 100644 index 00000000000..9bccf15d03d --- /dev/null +++ b/ruby/ql/src/experimental/weak-params/WeakParams.qhelp @@ -0,0 +1,28 @@ + + + +

    + Directly checking request parameters without following a strong params + pattern can lead to unintentional avenues for injection attacks. +

    +
    + +

    + Instead of manually checking parameters from the `param` object, it is + recommended that you follow the strong parameters pattern established in + Rails: https://api.rubyonrails.org/classes/ActionController/StrongParameters.html +

    +

    + In the strong parameters pattern, you are able to specify required and allowed + parameters for each action called by your controller methods. This acts as an + additional layer of data validation before being passed along to other areas + of your application, such as the model. +

    +
    + + + + +
    diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index e3f63b9bfd8..85bb31a7372 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -4,9 +4,10 @@ * @kind path-problem * @problem.severity error * @security-severity 5.0 - * @precision low + * @precision medium * @id rb/weak-params * @tags security + * external/cwe/cwe-223 */ import ruby @@ -64,12 +65,13 @@ class ParamsReference extends ElementReference { } /** - * returns either Model or ViewModel classes with a base class of `ViewModel` or includes `ActionModel::Model`, + * returns either Model or ViewModel classes with a base class of `ViewModel`, `ApplicationRecord` or includes `ActionModel::Model`, * which are required to support the strong parameters pattern */ class ModelClass extends ModuleBase { ModelClass() { this.getModule().getSuperClass+().toString() = "ViewModel" or + this.getModule().getSuperClass+().toString() = "ApplicationRecord" or this.getModule().getSuperClass+().getAnIncludedModule().toString() = "ActionModel::Model" } } From ce2edd4b28c7895292dfa291b130776c846b4105 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 24 Jun 2022 02:46:48 +0000 Subject: [PATCH 123/736] style tweaks --- ruby/ql/src/experimental/weak-params/WeakParams.ql | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index 85bb31a7372..5d77b0e066a 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -16,7 +16,7 @@ import codeql.ruby.TaintTracking import DataFlow::PathGraph /** - * any direct parameters reference that happens outside of a strong params method but inside + * A direct parameters reference that happens outside of a strong params method but inside * of a controller class */ class WeakParams extends Expr { @@ -45,7 +45,7 @@ class StrongParamsMethod extends Method { } /** - * a call to a method that exposes or accesses all parameters from an inbound HTTP request + * A call to a method that exposes or accesses all parameters from an inbound HTTP request */ predicate allParamsAccess(MethodCall call) { call.getMethodName() = "expose_all" or @@ -65,7 +65,7 @@ class ParamsReference extends ElementReference { } /** - * returns either Model or ViewModel classes with a base class of `ViewModel`, `ApplicationRecord` or includes `ActionModel::Model`, + * A Model or ViewModel classes with a base class of `ViewModel`, `ApplicationRecord` or includes `ActionModel::Model`, * which are required to support the strong parameters pattern */ class ModelClass extends ModuleBase { @@ -81,16 +81,15 @@ class ModelClass extends ModuleBase { * where the receiver is an instance of ModelClass */ class ModelClassMethodArgument extends DataFlow::Node { - private DataFlow::CallNode call; ModelClassMethodArgument() { - this = call.getArgument(_) and - call.getExprNode().getNode().getParent+() instanceof ModelClass + exists( DataFlow::CallNode call | this = call.getArgument(_) | + call.getExprNode().getNode().getParent+() instanceof ModelClass ) } } /** - * Taint tracking config where the source is a weak params access in a controller and the sink + * 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 { From 6ea1aad5fc95445067420ffe91382e37824a5505 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 23 Jun 2022 22:57:51 -0400 Subject: [PATCH 124/736] more style fixes --- ruby/ql/src/experimental/weak-params/WeakParams.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index 5d77b0e066a..f9af2e5c08c 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -45,7 +45,7 @@ class StrongParamsMethod extends Method { } /** - * A call to a method that exposes or accesses all parameters from an inbound HTTP request + * Holds call to a method that exposes or accesses all parameters from an inbound HTTP request */ predicate allParamsAccess(MethodCall call) { call.getMethodName() = "expose_all" or From d506f448ef1855aa849638bd347fdd09a55d1ad9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 24 Jun 2022 07:36:33 +0000 Subject: [PATCH 125/736] Post-release preparation for codeql-cli-2.10.0 --- 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/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/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 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index ad716ce6145..a20077271d7 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.3.0 +version: 0.3.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 4d5444cdb80..62cac967801 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.2.0 +version: 0.2.1-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index f411871c1c7..bc7eaf4142c 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.2.0 +version: 1.2.1-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 5f5ac8e59e2..00725e23666 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.2.0 +version: 1.2.1-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 11897f937b9..3f371c01e92 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.3.0 +version: 0.3.1-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 675f8d4a1b0..1002c6a56ad 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.2.0 +version: 0.2.1-dev groups: - csharp - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 8806039a710..964f5d4dd13 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.2.0 +version: 0.2.1-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index f30de39c94e..80a4430b8da 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.2.0 +version: 0.2.1-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 0b359cd7722..541fad197e0 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.3.0 +version: 0.3.1-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index d68826094c7..2366eef3778 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.2.0 +version: 0.2.1-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index a817864032e..b16a8912ccf 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.2.0 +version: 0.2.1-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 0b5bfa5824e..4f54f7dc5bc 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.2.0 +version: 0.2.1-dev groups: - javascript - queries diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index e4da90cbc2b..65145e40d74 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.5.0 +version: 0.5.1-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 91284be3afa..af722116e41 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.2.0 +version: 0.2.1-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 1b419d0bdcf..062d906c9a2 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.3.0 +version: 0.3.1-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 159f92016a1..0bd19b5bdeb 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.2.0 +version: 0.2.1-dev groups: - ruby - queries From 03d0f66247d1c0fe5c171b67bd39e9c5d2c145a9 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Thu, 23 Jun 2022 10:03:43 +0100 Subject: [PATCH 126/736] Ruby: add flow summaries for Pathname class --- ruby/ql/lib/codeql/ruby/frameworks/Core.qll | 1 + .../codeql/ruby/frameworks/core/Pathname.qll | 118 ++++++++++++++++++ .../pathname-flow/pathame-flow.expected | 90 +++++++++++++ .../dataflow/pathname-flow/pathame-flow.ql | 11 ++ .../dataflow/pathname-flow/pathname_flow.rb | 61 +++++++++ 5 files changed, 281 insertions(+) create mode 100644 ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll create mode 100644 ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.expected create mode 100644 ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.ql create mode 100644 ruby/ql/test/library-tests/dataflow/pathname-flow/pathname_flow.rb diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Core.qll b/ruby/ql/lib/codeql/ruby/frameworks/Core.qll index 1ef6d8d65e5..b428029c829 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Core.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Core.qll @@ -14,6 +14,7 @@ import core.Hash import core.String import core.Regexp import core.IO +import core.Pathname /** * A system command executed via subshell literal syntax. diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll new file mode 100644 index 00000000000..b88ca128283 --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll @@ -0,0 +1,118 @@ +/** Modeling of the `Pathname` class from the Ruby standard library. */ + +private import codeql.ruby.AST +private import codeql.ruby.ApiGraphs +private import codeql.ruby.DataFlow +private import codeql.ruby.dataflow.FlowSummary +private import codeql.ruby.dataflow.internal.DataFlowDispatch +private import codeql.ruby.controlflow.CfgNodes + +/** + * Modeling of the `Pathname` class from the Ruby standard library. + * + * https://docs.ruby-lang.org/en/3.1/Pathname.html + */ +module Pathname { + /// Flow summary for `Pathname.new`. + private class NewSummary extends SummarizedCallable { + NewSummary() { this = "Pathname.new" } + + override MethodCall getACall() { + result = API::getTopLevelMember("Pathname").getAnInstantiation().getExprNode().getExpr() + } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[0]" and + output = "ReturnValue" and + preservesValue = false + } + } + + /// Flow summary for `Pathname#dirname`. + private class DirnameSummary extends SimpleSummarizedCallable { + DirnameSummary() { this = "dirname" } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[self]" and + output = "ReturnValue" and + preservesValue = false + } + } + + /// Flow summary for `Pathname#each_filename`. + private class EachFilenameSummary extends SimpleSummarizedCallable { + EachFilenameSummary() { this = "each_filename" } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[self]" and + output = "Argument[block].Parameter[0]" and + preservesValue = false + } + } + + /// Flow summary for `Pathname#expand_path`. + private class ExpandPathSummary extends SimpleSummarizedCallable { + ExpandPathSummary() { this = "expand_path" } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[self]" and + output = "ReturnValue" and + preservesValue = false + } + } + + /// Flow summary for `Pathname#join`. + private class JoinSummary extends SimpleSummarizedCallable { + JoinSummary() { this = "join" } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = ["Argument[self]", "Argument[any]"] and + output = "ReturnValue" and + preservesValue = false + } + } + + /// Flow summary for `Pathname#parent`. + private class ParentSummary extends SimpleSummarizedCallable { + ParentSummary() { this = "parent" } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[self]" and + output = "ReturnValue" and + preservesValue = false + } + } + + /// Flow summary for `Pathname#realpath`. + private class RealpathSummary extends SimpleSummarizedCallable { + RealpathSummary() { this = "realpath" } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[self]" and + output = "ReturnValue" and + preservesValue = false + } + } + + /// Flow summary for `Pathname#relative_path_from`. + private class RelativePathFromSummary extends SimpleSummarizedCallable { + RelativePathFromSummary() { this = "relative_path_from" } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[self]" and + output = "ReturnValue" and + preservesValue = false + } + } + + /// Flow summary for `Pathname#to_path`. + private class ToPathSummary extends SimpleSummarizedCallable { + ToPathSummary() { this = "to_path" } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[self]" and + output = "ReturnValue" and + preservesValue = false + } + } +} 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 new file mode 100644 index 00000000000..8e3a792af46 --- /dev/null +++ b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.expected @@ -0,0 +1,90 @@ +failures +edges +| pathname_flow.rb:4:10:4:33 | call to new : | pathname_flow.rb:5:10:5:11 | 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:6:9:29 | call to new : | pathname_flow.rb:11:7:11:11 | ... + ... | +| pathname_flow.rb:9:19:9:28 | call to source : | pathname_flow.rb:9:6:9:29 | call to new : | +| pathname_flow.rb:10:6:10:29 | call to new : | pathname_flow.rb:11:7:11:11 | ... + ... | +| pathname_flow.rb:10:19:10:28 | call to source : | pathname_flow.rb:10:6:10:29 | call to new : | +| pathname_flow.rb:15:7:15:30 | call to new : | pathname_flow.rb:16:7:16:8 | pn : | +| pathname_flow.rb:15:20:15:29 | call to source : | pathname_flow.rb:15:7:15:30 | call to new : | +| pathname_flow.rb:16:7:16:8 | pn : | pathname_flow.rb:16:7:16:16 | call to dirname | +| pathname_flow.rb:20:6:20:29 | call to new : | pathname_flow.rb:21:2:21:2 | a : | +| pathname_flow.rb:20:19:20:28 | call to source : | pathname_flow.rb:20:6:20:29 | call to new : | +| pathname_flow.rb:21:2:21:2 | a : | pathname_flow.rb:21:22:21:22 | x : | +| pathname_flow.rb:21:22:21:22 | x : | pathname_flow.rb:22:8:22:8 | x | +| pathname_flow.rb:27:6:27:29 | call to new : | pathname_flow.rb:28:7:28:7 | a : | +| pathname_flow.rb:27:19:27:28 | call to source : | pathname_flow.rb:27:6:27:29 | call to new : | +| pathname_flow.rb:28:7:28:7 | a : | pathname_flow.rb:28:7:28:21 | call to expand_path | +| pathname_flow.rb:32:6:32:29 | call to new : | pathname_flow.rb:35:7:35:7 | a : | +| pathname_flow.rb:32:19:32:28 | call to source : | pathname_flow.rb:32:6:32:29 | call to new : | +| pathname_flow.rb:34:6:34:29 | call to new : | pathname_flow.rb:35:17:35:17 | c : | +| pathname_flow.rb:34:19:34:28 | call to source : | pathname_flow.rb:34:6:34:29 | call to new : | +| pathname_flow.rb:35:7:35:7 | a : | pathname_flow.rb:35:7:35:18 | call to join | +| pathname_flow.rb:35:17:35:17 | c : | pathname_flow.rb:35:7:35:18 | call to join | +| pathname_flow.rb:39:6:39:29 | call to new : | pathname_flow.rb:40:7:40:7 | a : | +| pathname_flow.rb:39:19:39:28 | call to source : | pathname_flow.rb:39:6:39:29 | call to new : | +| pathname_flow.rb:40:7:40:7 | a : | pathname_flow.rb:40:7:40:16 | call to parent | +| pathname_flow.rb:44:6:44:29 | call to new : | pathname_flow.rb:45:7:45:7 | a : | +| pathname_flow.rb:44:19:44:28 | call to source : | pathname_flow.rb:44:6:44:29 | call to new : | +| pathname_flow.rb:45:7:45:7 | a : | pathname_flow.rb:45:7:45:18 | call to realpath | +| pathname_flow.rb:49:6:49:29 | call to new : | pathname_flow.rb:50:7:50:7 | a : | +| pathname_flow.rb:49:19:49:28 | call to source : | pathname_flow.rb:49:6:49:29 | call to new : | +| pathname_flow.rb:50:7:50:7 | a : | pathname_flow.rb:50:7:50:38 | call to relative_path_from | +| pathname_flow.rb:54:6:54:29 | call to new : | pathname_flow.rb:55:7:55:7 | a : | +| pathname_flow.rb:54:19:54:28 | call to source : | pathname_flow.rb:54:6:54:29 | call to new : | +| pathname_flow.rb:55:7:55:7 | a : | pathname_flow.rb:55:7:55:15 | call to to_path | +| pathname_flow.rb:59:6:59:29 | call to new : | pathname_flow.rb:60:7:60:7 | a : | +| pathname_flow.rb:59:19:59:28 | call to source : | pathname_flow.rb:59:6:59:29 | call to new : | +| pathname_flow.rb:60:7:60:7 | a : | pathname_flow.rb:60:7:60:12 | call to to_s | +nodes +| 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:6:9:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:9:19:9:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:10:6:10:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:10:19:10:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:11:7:11:11 | ... + ... | semmle.label | ... + ... | +| pathname_flow.rb:15:7:15:30 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:15:20:15:29 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:16:7:16:8 | pn : | semmle.label | pn : | +| pathname_flow.rb:16:7:16:16 | call to dirname | semmle.label | call to dirname | +| pathname_flow.rb:20:6:20:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:20:19:20:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:21:2:21:2 | a : | semmle.label | a : | +| pathname_flow.rb:21:22:21:22 | x : | semmle.label | x : | +| pathname_flow.rb:22:8:22:8 | x | semmle.label | x | +| pathname_flow.rb:27:6:27:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:27:19:27:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:28:7:28:7 | a : | semmle.label | a : | +| pathname_flow.rb:28:7:28:21 | call to expand_path | semmle.label | call to expand_path | +| pathname_flow.rb:32:6:32:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:32:19:32:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:34:6:34:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:34:19:34:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:35:7:35:7 | a : | semmle.label | a : | +| pathname_flow.rb:35:7:35:18 | call to join | semmle.label | call to join | +| pathname_flow.rb:35:17:35:17 | c : | semmle.label | c : | +| pathname_flow.rb:39:6:39:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:39:19:39:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:40:7:40:7 | a : | semmle.label | a : | +| pathname_flow.rb:40:7:40:16 | call to parent | semmle.label | call to parent | +| pathname_flow.rb:44:6:44:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:44:19:44:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:45:7:45:7 | a : | semmle.label | a : | +| pathname_flow.rb:45:7:45:18 | call to realpath | semmle.label | call to realpath | +| pathname_flow.rb:49:6:49:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:49:19:49:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:50:7:50:7 | a : | semmle.label | a : | +| pathname_flow.rb:50:7:50:38 | call to relative_path_from | semmle.label | call to relative_path_from | +| pathname_flow.rb:54:6:54:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:54:19:54:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:55:7:55:7 | a : | semmle.label | a : | +| pathname_flow.rb:55:7:55:15 | call to to_path | semmle.label | call to to_path | +| pathname_flow.rb:59:6:59:29 | call to new : | semmle.label | call to new : | +| pathname_flow.rb:59:19:59:28 | call to source : | semmle.label | call to source : | +| pathname_flow.rb:60:7:60:7 | a : | semmle.label | a : | +| pathname_flow.rb:60:7:60:12 | call to to_s | semmle.label | call to to_s | +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 new file mode 100644 index 00000000000..4e812d32daa --- /dev/null +++ b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathame-flow.ql @@ -0,0 +1,11 @@ +/** + * @kind path-problem + */ + +import ruby +import TestUtilities.InlineFlowTest +import PathGraph + +from DataFlow::PathNode source, DataFlow::PathNode sink, DefaultValueFlowConf conf +where conf.hasFlowPath(source, sink) +select sink, source, sink, "$@", source, source.toString() diff --git a/ruby/ql/test/library-tests/dataflow/pathname-flow/pathname_flow.rb b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathname_flow.rb new file mode 100644 index 00000000000..3434b6093b6 --- /dev/null +++ b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathname_flow.rb @@ -0,0 +1,61 @@ +require 'pathname' + +def m_new + pn = Pathname.new(source 'a') + sink pn # $ hasTaintFlow=a +end + +def m_plus + a = Pathname.new(source 'a') + b = Pathname.new(source 'b') + sink(a + b) # $ hasTaintFlow=a $ hasTaintFlow=b +end + +def m_dirname + pn = Pathname.new(source 'a') + sink pn.dirname # $ hasTaintFlow=a +end + +def m_each_filename + a = Pathname.new(source 'a') + a.each_filename do |x| + sink x # $ hasTaintFlow=a + end +end + +def m_expand_path + a = Pathname.new(source 'a') + sink a.expand_path() # $ hasTaintFlow=a +end + +def m_join + a = Pathname.new(source 'a') + b = Pathname.new('foo') + c = Pathname.new(source 'c') + sink a.join(b, c) # $ hasTaintFlow=a $ hasTaintFlow=c +end + +def m_parent + a = Pathname.new(source 'a') + sink a.parent() # $ hasTaintFlow=a +end + +def m_realpath + a = Pathname.new(source 'a') + sink a.realpath() # $ hasTaintFlow=a +end + +def m_relative_path_from + a = Pathname.new(source 'a') + sink a.relative_path_from('/foo/bar') # $ hasTaintFlow=a +end + +def m_to_path + a = Pathname.new(source 'a') + sink a.to_path # $ hasTaintFlow=a +end + +def m_to_s + a = Pathname.new(source 'a') + sink a.to_s # $ hasTaintFlow=a +end \ No newline at end of file From c1515db09c93e65a72a2a6b6af6be9cc464c1ef5 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Fri, 24 Jun 2022 14:13:02 +0100 Subject: [PATCH 127/736] Ruby: modeling of some file-related concepts for the Pathname class --- .../codeql/ruby/frameworks/core/Pathname.qll | 120 ++++++++++++++-- .../frameworks/pathname/Pathname.expected | 134 ++++++++++++++++++ .../frameworks/pathname/Pathname.ql | 26 ++++ .../frameworks/pathname/Pathname.rb | 42 ++++++ 4 files changed, 312 insertions(+), 10 deletions(-) create mode 100644 ruby/ql/test/library-tests/frameworks/pathname/Pathname.expected create mode 100644 ruby/ql/test/library-tests/frameworks/pathname/Pathname.ql create mode 100644 ruby/ql/test/library-tests/frameworks/pathname/Pathname.rb diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll index b88ca128283..d296d9c75ea 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll @@ -2,10 +2,10 @@ private import codeql.ruby.AST private import codeql.ruby.ApiGraphs +private import codeql.ruby.Concepts private import codeql.ruby.DataFlow private import codeql.ruby.dataflow.FlowSummary private import codeql.ruby.dataflow.internal.DataFlowDispatch -private import codeql.ruby.controlflow.CfgNodes /** * Modeling of the `Pathname` class from the Ruby standard library. @@ -13,7 +13,107 @@ private import codeql.ruby.controlflow.CfgNodes * https://docs.ruby-lang.org/en/3.1/Pathname.html */ module Pathname { - /// Flow summary for `Pathname.new`. + /** + * An instance of the `Pathname` class. For example, in + * + * ```rb + * pn = Pathname.new "foo.txt'" + * puts pn.read + * ``` + * + * there are three `PathnameInstance`s – the call to `Pathname.new`, the + * assignment `pn = ...`, and the read access to `pn` on the second line. + * + * Every `PathnameInstance` is considered to be a `FileNameSource`. + */ + class PathnameInstance extends FileNameSource, DataFlow::Node { + PathnameInstance() { this = pathnameInstance() } + } + + private DataFlow::Node pathnameInstance() { + // A call to `Pathname.new`. + result = API::getTopLevelMember("Pathname").getAnInstantiation() + or + // Class methods on `Pathname` that return a new `Pathname`. + result = API::getTopLevelMember("Pathname").getAMethodCall(["getwd", "pwd",]) + or + // Instance methods on `Pathname` that return a new `Pathname`. + exists(DataFlow::CallNode c | result = c | + c.getReceiver() = pathnameInstance() and + c.getMethodName() = + [ + "+", "/", "basename", "cleanpath", "expand_path", "join", "realpath", + "relative_path_from", "sub", "sub_ext", "to_path" + ] + ) + or + exists(DataFlow::Node inst | + inst = pathnameInstance() and + inst.(DataFlow::LocalSourceNode).flowsTo(result) + ) + } + + /** A call where the receiver is a `Pathname`. */ + class PathnameCall extends DataFlow::CallNode { + PathnameCall() { this.getReceiver() instanceof PathnameInstance } + } + + /** + * A call to `Pathname#open` or `Pathname#opendir`, considered as a + * `FileSystemAccess`. + */ + class PathnameOpen extends FileSystemAccess::Range, PathnameCall { + PathnameOpen() { this.getMethodName() = ["open", "opendir"] } + + override DataFlow::Node getAPathArgument() { result = this.getReceiver() } + } + + /** A call to `Pathname#read`, considered as a `FileSystemReadAccess`. */ + class PathnameRead extends FileSystemReadAccess::Range, PathnameCall { + PathnameRead() { this.getMethodName() = "read" } + + // The path is the receiver (the `Pathname` object). + override DataFlow::Node getAPathArgument() { result = this.getReceiver() } + + // The read data is the return value of the call. + override DataFlow::Node getADataNode() { result = this } + } + + /** A call to `Pathname#write`, considered as a `FileSystemWriteAccess`. */ + class PathnameWrite extends FileSystemWriteAccess::Range, PathnameCall { + PathnameWrite() { this.getMethodName() = "write" } + + // The path is the receiver (the `Pathname` object). + override DataFlow::Node getAPathArgument() { result = this.getReceiver() } + + // The data to write is the 0th argument. + override DataFlow::Node getADataNode() { result = this.getArgument(0) } + } + + /** A call to `Pathname#to_s`, considered as a `FileNameSource`. */ + class PathnameToSFilenameSource extends FileNameSource, PathnameCall { + PathnameToSFilenameSource() { this.getMethodName() = "to_s" } + } + + private class PathnamePermissionModification extends FileSystemPermissionModification::Range, + PathnameCall { + private DataFlow::Node permissionArg; + + PathnamePermissionModification() { + exists(string methodName | this.getMethodName() = methodName | + methodName = ["chmod", "mkdir"] and permissionArg = this.getArgument(0) + or + methodName = "mkpath" and permissionArg = this.getKeywordArgument("mode") + or + methodName = "open" and permissionArg = this.getArgument(1) + // TODO: defaults for optional args? This may depend on the umask + ) + } + + override DataFlow::Node getAPermissionNode() { result = permissionArg } + } + + /** Flow summary for `Pathname.new`. */ private class NewSummary extends SummarizedCallable { NewSummary() { this = "Pathname.new" } @@ -28,7 +128,7 @@ module Pathname { } } - /// Flow summary for `Pathname#dirname`. + /** Flow summary for `Pathname#dirname`. */ private class DirnameSummary extends SimpleSummarizedCallable { DirnameSummary() { this = "dirname" } @@ -39,7 +139,7 @@ module Pathname { } } - /// Flow summary for `Pathname#each_filename`. + /** Flow summary for `Pathname#each_filename`. */ private class EachFilenameSummary extends SimpleSummarizedCallable { EachFilenameSummary() { this = "each_filename" } @@ -50,7 +150,7 @@ module Pathname { } } - /// Flow summary for `Pathname#expand_path`. + /** Flow summary for `Pathname#expand_path`. */ private class ExpandPathSummary extends SimpleSummarizedCallable { ExpandPathSummary() { this = "expand_path" } @@ -61,7 +161,7 @@ module Pathname { } } - /// Flow summary for `Pathname#join`. + /** Flow summary for `Pathname#join`. */ private class JoinSummary extends SimpleSummarizedCallable { JoinSummary() { this = "join" } @@ -72,7 +172,7 @@ module Pathname { } } - /// Flow summary for `Pathname#parent`. + /** Flow summary for `Pathname#parent`. */ private class ParentSummary extends SimpleSummarizedCallable { ParentSummary() { this = "parent" } @@ -83,7 +183,7 @@ module Pathname { } } - /// Flow summary for `Pathname#realpath`. + /** Flow summary for `Pathname#realpath`. */ private class RealpathSummary extends SimpleSummarizedCallable { RealpathSummary() { this = "realpath" } @@ -94,7 +194,7 @@ module Pathname { } } - /// Flow summary for `Pathname#relative_path_from`. + /** Flow summary for `Pathname#relative_path_from`. */ private class RelativePathFromSummary extends SimpleSummarizedCallable { RelativePathFromSummary() { this = "relative_path_from" } @@ -105,7 +205,7 @@ module Pathname { } } - /// Flow summary for `Pathname#to_path`. + /** Flow summary for `Pathname#to_path`. */ private class ToPathSummary extends SimpleSummarizedCallable { ToPathSummary() { this = "to_path" } diff --git a/ruby/ql/test/library-tests/frameworks/pathname/Pathname.expected b/ruby/ql/test/library-tests/frameworks/pathname/Pathname.expected new file mode 100644 index 00000000000..2550c5b4f0d --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/pathname/Pathname.expected @@ -0,0 +1,134 @@ +pathnameInstances +| Pathname.rb:2:1:2:33 | ... = ... | +| Pathname.rb:2:1:2:33 | ... = ... | +| Pathname.rb:2:12:2:33 | call to new | +| Pathname.rb:3:1:3:20 | ... = ... | +| Pathname.rb:3:13:3:20 | foo_path | +| Pathname.rb:4:1:4:8 | foo_path | +| Pathname.rb:6:1:6:29 | ... = ... | +| Pathname.rb:6:1:6:29 | ... = ... | +| Pathname.rb:6:12:6:29 | call to new | +| Pathname.rb:9:1:9:21 | ... = ... | +| Pathname.rb:9:1:9:21 | ... = ... | +| Pathname.rb:9:8:9:21 | call to getwd | +| Pathname.rb:10:1:10:21 | ... = ... | +| Pathname.rb:10:7:10:10 | pwd1 | +| Pathname.rb:10:7:10:21 | ... + ... | +| Pathname.rb:10:14:10:21 | foo_path | +| Pathname.rb:11:1:11:21 | ... = ... | +| Pathname.rb:11:1:11:21 | ... = ... | +| Pathname.rb:11:7:11:10 | pwd1 | +| Pathname.rb:11:7:11:21 | ... / ... | +| Pathname.rb:11:14:11:21 | bar_path | +| Pathname.rb:12:1:12:19 | ... = ... | +| Pathname.rb:12:7:12:10 | pwd1 | +| Pathname.rb:12:7:12:19 | call to basename | +| Pathname.rb:13:1:13:46 | ... = ... | +| Pathname.rb:13:7:13:36 | call to new | +| Pathname.rb:13:7:13:46 | call to cleanpath | +| Pathname.rb:14:1:14:26 | ... = ... | +| Pathname.rb:14:7:14:14 | foo_path | +| Pathname.rb:14:7:14:26 | call to expand_path | +| Pathname.rb:15:1:15:39 | ... = ... | +| Pathname.rb:15:7:15:10 | pwd1 | +| Pathname.rb:15:7:15:39 | call to join | +| Pathname.rb:16:1:16:23 | ... = ... | +| Pathname.rb:16:7:16:14 | foo_path | +| Pathname.rb:16:7:16:23 | call to realpath | +| Pathname.rb:17:1:17:59 | ... = ... | +| Pathname.rb:17:7:17:33 | call to new | +| Pathname.rb:17:7:17:59 | call to relative_path_from | +| Pathname.rb:18:1:18:33 | ... = ... | +| Pathname.rb:18:1:18:33 | ... = ... | +| Pathname.rb:18:7:18:10 | pwd1 | +| Pathname.rb:18:7:18:33 | call to sub | +| Pathname.rb:19:1:19:29 | ... = ... | +| Pathname.rb:19:7:19:14 | foo_path | +| Pathname.rb:19:7:19:29 | call to sub_ext | +| Pathname.rb:20:1:20:22 | ... = ... | +| Pathname.rb:20:7:20:14 | foo_path | +| Pathname.rb:20:7:20:22 | call to to_path | +| Pathname.rb:23:14:23:21 | foo_path | +| Pathname.rb:26:12:26:19 | foo_path | +| Pathname.rb:28:11:28:14 | pwd1 | +| Pathname.rb:32:12:32:19 | foo_path | +| Pathname.rb:35:1:35:8 | foo_path | +| Pathname.rb:38:1:38:8 | foo_path | +| Pathname.rb:39:12:39:19 | foo_path | +| Pathname.rb:41:1:41:3 | p08 | +| Pathname.rb:42:1:42:3 | p01 | +fileSystemAccesses +| Pathname.rb:26:12:26:24 | call to open | Pathname.rb:26:12:26:19 | foo_path | +| Pathname.rb:28:11:28:22 | call to opendir | Pathname.rb:28:11:28:14 | pwd1 | +| Pathname.rb:32:12:32:24 | call to read | Pathname.rb:32:12:32:19 | foo_path | +| Pathname.rb:35:1:35:23 | call to write | Pathname.rb:35:1:35:8 | foo_path | +| Pathname.rb:39:12:39:34 | call to open | Pathname.rb:39:12:39:19 | foo_path | +fileNameSources +| Pathname.rb:2:1:2:33 | ... = ... | +| Pathname.rb:2:1:2:33 | ... = ... | +| Pathname.rb:2:12:2:33 | call to new | +| Pathname.rb:3:1:3:20 | ... = ... | +| Pathname.rb:3:13:3:20 | foo_path | +| Pathname.rb:4:1:4:8 | foo_path | +| Pathname.rb:6:1:6:29 | ... = ... | +| Pathname.rb:6:1:6:29 | ... = ... | +| Pathname.rb:6:12:6:29 | call to new | +| Pathname.rb:9:1:9:21 | ... = ... | +| Pathname.rb:9:1:9:21 | ... = ... | +| Pathname.rb:9:8:9:21 | call to getwd | +| Pathname.rb:10:1:10:21 | ... = ... | +| Pathname.rb:10:7:10:10 | pwd1 | +| Pathname.rb:10:7:10:21 | ... + ... | +| Pathname.rb:10:14:10:21 | foo_path | +| Pathname.rb:11:1:11:21 | ... = ... | +| Pathname.rb:11:1:11:21 | ... = ... | +| Pathname.rb:11:7:11:10 | pwd1 | +| Pathname.rb:11:7:11:21 | ... / ... | +| Pathname.rb:11:14:11:21 | bar_path | +| Pathname.rb:12:1:12:19 | ... = ... | +| Pathname.rb:12:7:12:10 | pwd1 | +| Pathname.rb:12:7:12:19 | call to basename | +| Pathname.rb:13:1:13:46 | ... = ... | +| Pathname.rb:13:7:13:36 | call to new | +| Pathname.rb:13:7:13:46 | call to cleanpath | +| Pathname.rb:14:1:14:26 | ... = ... | +| Pathname.rb:14:7:14:14 | foo_path | +| Pathname.rb:14:7:14:26 | call to expand_path | +| Pathname.rb:15:1:15:39 | ... = ... | +| Pathname.rb:15:7:15:10 | pwd1 | +| Pathname.rb:15:7:15:39 | call to join | +| Pathname.rb:16:1:16:23 | ... = ... | +| Pathname.rb:16:7:16:14 | foo_path | +| Pathname.rb:16:7:16:23 | call to realpath | +| Pathname.rb:17:1:17:59 | ... = ... | +| Pathname.rb:17:7:17:33 | call to new | +| Pathname.rb:17:7:17:59 | call to relative_path_from | +| Pathname.rb:18:1:18:33 | ... = ... | +| Pathname.rb:18:1:18:33 | ... = ... | +| Pathname.rb:18:7:18:10 | pwd1 | +| Pathname.rb:18:7:18:33 | call to sub | +| Pathname.rb:19:1:19:29 | ... = ... | +| Pathname.rb:19:7:19:14 | foo_path | +| Pathname.rb:19:7:19:29 | call to sub_ext | +| Pathname.rb:20:1:20:22 | ... = ... | +| Pathname.rb:20:7:20:14 | foo_path | +| Pathname.rb:20:7:20:22 | call to to_path | +| Pathname.rb:23:14:23:21 | foo_path | +| Pathname.rb:23:14:23:26 | call to to_s | +| Pathname.rb:26:12:26:19 | foo_path | +| Pathname.rb:28:11:28:14 | pwd1 | +| Pathname.rb:32:12:32:19 | foo_path | +| Pathname.rb:35:1:35:8 | foo_path | +| Pathname.rb:38:1:38:8 | foo_path | +| Pathname.rb:39:12:39:19 | foo_path | +| Pathname.rb:41:1:41:3 | p08 | +| Pathname.rb:42:1:42:3 | p01 | +fileSystemReadAccesses +| Pathname.rb:32:12:32:24 | call to read | Pathname.rb:32:12:32:24 | call to read | +fileSystemWriteAccesses +| Pathname.rb:35:1:35:23 | call to write | Pathname.rb:35:16:35:23 | "output" | +fileSystemPermissionModifications +| Pathname.rb:38:1:38:19 | call to chmod | Pathname.rb:38:16:38:19 | 0644 | +| Pathname.rb:39:12:39:34 | call to open | Pathname.rb:39:31:39:34 | 0666 | +| Pathname.rb:41:1:41:14 | call to mkdir | Pathname.rb:41:11:41:14 | 0755 | +| Pathname.rb:42:1:42:22 | call to mkpath | Pathname.rb:42:18:42:21 | 0644 | diff --git a/ruby/ql/test/library-tests/frameworks/pathname/Pathname.ql b/ruby/ql/test/library-tests/frameworks/pathname/Pathname.ql new file mode 100644 index 00000000000..d624cff3aa3 --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/pathname/Pathname.ql @@ -0,0 +1,26 @@ +private import ruby +private import codeql.ruby.Concepts +private import codeql.ruby.DataFlow +private import codeql.ruby.frameworks.core.Pathname + +query predicate pathnameInstances(Pathname::PathnameInstance i) { any() } + +query predicate fileSystemAccesses(FileSystemAccess a, DataFlow::Node p) { + p = a.getAPathArgument() +} + +query predicate fileNameSources(FileNameSource s) { any() } + +query predicate fileSystemReadAccesses(FileSystemReadAccess a, DataFlow::Node d) { + d = a.getADataNode() +} + +query predicate fileSystemWriteAccesses(FileSystemWriteAccess a, DataFlow::Node d) { + d = a.getADataNode() +} + +query predicate fileSystemPermissionModifications( + FileSystemPermissionModification m, DataFlow::Node p +) { + p = m.getAPermissionNode() +} diff --git a/ruby/ql/test/library-tests/frameworks/pathname/Pathname.rb b/ruby/ql/test/library-tests/frameworks/pathname/Pathname.rb new file mode 100644 index 00000000000..ea8f9812281 --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/pathname/Pathname.rb @@ -0,0 +1,42 @@ + +foo_path = Pathname.new "foo.txt" +foo_path2 = foo_path +foo_path + +bar_path = Pathname.new 'bar' + +# All these calls return new `Pathname` instances +pwd1 = Pathname.getwd +p00 = pwd1 + foo_path +p01 = pwd1 / bar_path +p02 = pwd1.basename +p03 = Pathname.new('bar/../baz.txt').cleanpath +p04 = foo_path.expand_path +p05 = pwd1.join 'bar', 'baz', 'qux.txt' +p06 = foo_path.realpath +p07 = Pathname.new('foo/bar.txt').relative_path_from('foo') +p08 = pwd1.sub 'wibble', 'wobble' +p09 = foo_path.sub_ext '.log' +p10 = foo_path.to_path + +# `Pathname#to_s` returns a string that we consider to be a filename source. +foo_string = foo_path.to_s + +# File-system accesses +foo_file = foo_path.open +foo_file.close +pwd_dir = pwd1.opendir +pwd_dir.close + +# Read from a file +foo_data = foo_path.read + +# Write to a file +foo_path.write 'output' + +# Permission modifications +foo_path.chmod 0644 +foo_file = foo_path.open 'w', 0666 +foo_file.close +p08.mkdir 0755 +p01.mkpath(mode: 0644) From ff9a7244c25cd334313d726c1f2b4e2f41025313 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Fri, 24 Jun 2022 15:28:09 -0400 Subject: [PATCH 128/736] Update ActiveRecord.qll --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 3742157a56f..59bd2c699de 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -336,7 +336,7 @@ class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { private ActiveRecordInstance instance; ActiveRecordInstanceMethodCall() { this.getReceiver() = instance } - + /** Gets the `ActiveRecordInstance` that this is the receiver of this call. */ ActiveRecordInstance getInstance() { result = instance } } From 463c096d4cb3714caaf72088519d0a6e6ff744d3 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Fri, 24 Jun 2022 15:33:02 -0400 Subject: [PATCH 129/736] Update ActiveRecord.qll --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 59bd2c699de..4f25ae20030 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -330,13 +330,14 @@ class ActiveRecordInstance extends DataFlow::Node { ActiveRecordModelClass getClass() { result = instantiation.getClass() } } -// A call whose receiver may be an active record model object -/** The `ActiveRecordInstance` receiver of this call. */ +/** + * The `ActiveRecordInstance` receiver of this call. + */ class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { private ActiveRecordInstance instance; ActiveRecordInstanceMethodCall() { this.getReceiver() = instance } - /** Gets the `ActiveRecordInstance` that this is the receiver of this call. */ + // Gets the `ActiveRecordInstance` that this is the receiver of this call. */ ActiveRecordInstance getInstance() { result = instance } } From 29e73e1a046a16d414c1a6a80e416257985a7c9c Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Fri, 24 Jun 2022 15:35:36 -0400 Subject: [PATCH 130/736] Update ActiveRecord.qll --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 4f25ae20030..ba42a92d626 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -330,14 +330,12 @@ class ActiveRecordInstance extends DataFlow::Node { ActiveRecordModelClass getClass() { result = instantiation.getClass() } } -/** - * The `ActiveRecordInstance` receiver of this call. - */ +/** The `ActiveRecordInstance` receiver of this call. */ class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { private ActiveRecordInstance instance; ActiveRecordInstanceMethodCall() { this.getReceiver() = instance } - // Gets the `ActiveRecordInstance` that this is the receiver of this call. */ + /** Gets the `ActiveRecordInstance` that this is the receiver of this call. */ ActiveRecordInstance getInstance() { result = instance } } From 9e4116618ae79337cb9ee3fc6c3157028c551c93 Mon Sep 17 00:00:00 2001 From: Asger F Date: Sat, 18 Jun 2022 19:51:21 +0200 Subject: [PATCH 131/736] JS: Add CaseSensitiveMiddlewarePath query --- .../ql/lib/semmle/javascript/Routing.qll | 12 ++ .../semmle/javascript/frameworks/Express.qll | 23 ++++ .../CWE-178/CaseSensitiveMiddlewarePath.ql | 112 ++++++++++++++++++ .../CaseSensitiveMiddlewarePath.expected | 3 + .../CWE-178/CaseSensitiveMiddlewarePath.qlref | 1 + .../test/query-tests/Security/CWE-178/tst.js | 61 ++++++++++ 6 files changed, 212 insertions(+) create mode 100644 javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql create mode 100644 javascript/ql/test/query-tests/Security/CWE-178/CaseSensitiveMiddlewarePath.expected create mode 100644 javascript/ql/test/query-tests/Security/CWE-178/CaseSensitiveMiddlewarePath.qlref create mode 100644 javascript/ql/test/query-tests/Security/CWE-178/tst.js diff --git a/javascript/ql/lib/semmle/javascript/Routing.qll b/javascript/ql/lib/semmle/javascript/Routing.qll index 858ec1ad238..46fdabba6dc 100644 --- a/javascript/ql/lib/semmle/javascript/Routing.qll +++ b/javascript/ql/lib/semmle/javascript/Routing.qll @@ -148,6 +148,18 @@ module Routing { this instanceof MkRouter } + /** + * Like `mayResumeDispatch` but without the assumption that functions with an unknown + * implementation invoke their continuation. + */ + predicate definitelyResumesDispatch() { + this.getLastChild().definitelyResumesDispatch() + or + exists(this.(RouteHandler).getAContinuationInvocation()) + or + this instanceof MkRouter + } + /** Gets the parent of this node, provided that this node may invoke its continuation. */ private Node getContinuationParent() { result = this.getParent() and diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Express.qll b/javascript/ql/lib/semmle/javascript/frameworks/Express.qll index ca9a151e3c6..5a2ad7cc928 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Express.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Express.qll @@ -33,6 +33,11 @@ module Express { or // `app = [new] express.Router()` result = DataFlow::moduleMember("express", "Router").getAnInvocation() + or + exists(DataFlow::SourceNode app | + app.hasUnderlyingType("probot/lib/application", "Application") and + result = app.getAMethodCall("route") + ) } /** @@ -1043,4 +1048,22 @@ module Express { override DataFlow::SourceNode getOutput() { result = this.getCallback(2).getParameter(1) } } + + private class ResumeDispatchRefinement extends Routing::RouteHandler { + ResumeDispatchRefinement() { getFunction() instanceof RouteHandler } + + override predicate mayResumeDispatch() { getAParameter().getName() = "next" } + + override predicate definitelyResumesDispatch() { getAParameter().getName() = "next" } + } + + private class ExpressStaticResumeDispatchRefinement extends Routing::Node { + ExpressStaticResumeDispatchRefinement() { + this = Routing::getNode(DataFlow::moduleMember("express", "static").getACall()) + } + + override predicate mayResumeDispatch() { none() } + + override predicate definitelyResumesDispatch() { none() } + } } diff --git a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql new file mode 100644 index 00000000000..50c5894037e --- /dev/null +++ b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql @@ -0,0 +1,112 @@ +/** + * @name Case-sensitive middleware path + * @description Middleware with case-sensitive paths do not protect endpoints with case-insensitive paths + * @kind problem + * @problem.severity warning + * @security-severity 7.3 + * @precision high + * @id js/case-sensitive-middleware-path + * @tags security + * external/cwe/cwe-178 + */ + +import javascript + +/** + * Converts `s` to upper case, or to lower-case if it was already upper case. + */ +bindingset[s] +string invertCase(string s) { + if s.regexpMatch(".*[a-z].*") then result = s.toUpperCase() else result = s.toLowerCase() +} + +/** + * Holds if `term` distinguishes between upper and lower case letters, assuming the `i` flag is not present. + */ +pragma[inline] +predicate isCaseSensitiveRegExp(RegExpTerm term) { + exists(RegExpConstant const | + const = term.getAChild*() and + const.getValue().regexpMatch(".*[a-zA-Z].*") and + not const.getParent().(RegExpCharacterClass).getAChild().(RegExpConstant).getValue() = + invertCase(const.getValue()) and + not const.getParent*() instanceof RegExpNegativeLookahead and + not const.getParent*() instanceof RegExpNegativeLookbehind + ) +} + +/** + * Gets a string matched by `term`, or part of such a string. + */ +string getExampleString(RegExpTerm term) { + result = term.getAMatchedString() + or + // getAMatchedString does not recurse into sequences. Perform one step manually. + exists(RegExpSequence seq | seq = term | + result = + strictconcat(RegExpTerm child, int i, string text | + child = seq.getChild(i) and + ( + text = child.getAMatchedString() + or + not exists(child.getAMatchedString()) and + text = "" + ) + | + text order by i + ) + ) +} + +string getCaseSensitiveBypassExample(RegExpTerm term) { + result = invertCase(getExampleString(term)) and + result != "" +} + +/** + * Holds if `setup` has a path-argument `arg` referring to the given case-sensitive `regexp`. + */ +predicate isCaseSensitiveMiddleware( + Routing::RouteSetup setup, DataFlow::RegExpCreationNode regexp, DataFlow::Node arg +) { + exists(DataFlow::MethodCallNode call | + setup = Routing::getRouteSetupNode(call) and + ( + setup.definitelyResumesDispatch() + or + // If applied to all HTTP methods, be a bit more lenient in detecting middleware + setup.mayResumeDispatch() and + not exists(setup.getOwnHttpMethod()) + ) and + arg = call.getArgument(0) and + regexp.getAReference().flowsTo(arg) and + isCaseSensitiveRegExp(regexp.getRoot()) and + exists(string flags | + flags = regexp.getFlags() and + not flags.matches("%i%") + ) + ) +} + +predicate isGuardedCaseInsensitiveEndpoint( + Routing::RouteSetup endpoint, Routing::RouteSetup middleware +) { + isCaseSensitiveMiddleware(middleware, _, _) and + exists(DataFlow::MethodCallNode call | + endpoint = Routing::getRouteSetupNode(call) and + endpoint.isGuardedByNode(middleware) and + call.getArgument(0).mayHaveStringValue(_) + ) +} + +from + DataFlow::RegExpCreationNode regexp, Routing::RouteSetup middleware, Routing::RouteSetup endpoint, + DataFlow::Node arg, string example +where + isCaseSensitiveMiddleware(middleware, regexp, arg) and + example = getCaseSensitiveBypassExample(regexp.getRoot()) and + isGuardedCaseInsensitiveEndpoint(endpoint, middleware) and + exists(endpoint.getRelativePath().toLowerCase().indexOf(example.toLowerCase())) +select arg, + "This route uses a case-sensitive path $@, but is guarding a case-insensitive path $@. A path such as '" + + example + "' will bypass the middleware.", regexp, "pattern", endpoint, "here" diff --git a/javascript/ql/test/query-tests/Security/CWE-178/CaseSensitiveMiddlewarePath.expected b/javascript/ql/test/query-tests/Security/CWE-178/CaseSensitiveMiddlewarePath.expected new file mode 100644 index 00000000000..a79b3100a80 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-178/CaseSensitiveMiddlewarePath.expected @@ -0,0 +1,3 @@ +| tst.js:8:9:8:19 | /\\/foo\\/.*/ | This route uses a case-sensitive path $@, but is guarding a case-insensitive path $@. A path such as '/FOO/' will bypass the middleware. | tst.js:8:9:8:19 | /\\/foo\\/.*/ | pattern | tst.js:60:1:61:2 | app.get ... ware\\n}) | here | +| tst.js:14:5:14:28 | new Reg ... (.*)?') | This route uses a case-sensitive path $@, but is guarding a case-insensitive path $@. A path such as '/FOO' will bypass the middleware. | tst.js:14:5:14:28 | new Reg ... (.*)?') | pattern | tst.js:60:1:61:2 | app.get ... ware\\n}) | here | +| tst.js:41:9:41:25 | /\\/foo\\/([0-9]+)/ | This route uses a case-sensitive path $@, but is guarding a case-insensitive path $@. A path such as '/FOO/' will bypass the middleware. | tst.js:41:9:41:25 | /\\/foo\\/([0-9]+)/ | pattern | tst.js:60:1:61:2 | app.get ... ware\\n}) | here | diff --git a/javascript/ql/test/query-tests/Security/CWE-178/CaseSensitiveMiddlewarePath.qlref b/javascript/ql/test/query-tests/Security/CWE-178/CaseSensitiveMiddlewarePath.qlref new file mode 100644 index 00000000000..75705303770 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-178/CaseSensitiveMiddlewarePath.qlref @@ -0,0 +1 @@ +Security/CWE-178/CaseSensitiveMiddlewarePath.ql diff --git a/javascript/ql/test/query-tests/Security/CWE-178/tst.js b/javascript/ql/test/query-tests/Security/CWE-178/tst.js new file mode 100644 index 00000000000..1acb57b16ea --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-178/tst.js @@ -0,0 +1,61 @@ +const express = require('express'); +const app = express(); +const unknown = require('~something/blah'); + +app.all(/\/.*/, unknown()); // OK - does not contain letters +app.all(/\/.*/i, unknown()); // OK + +app.all(/\/foo\/.*/, unknown()); // NOT OK +app.all(/\/foo\/.*/i, unknown()); // OK - case insensitive + +app.use(/\/x\/#\d{6}/, express.static('images/')); // OK - not a middleware + +app.get( + new RegExp('^/foo(.*)?'), // NOT OK - case sensitive + unknown(), + function(req, res, next) { + if (req.params.blah) { + next(); + } + } +); + +app.get( + new RegExp('^/foo(.*)?', 'i'), // OK - case insensitive + unknown(), + function(req, res, next) { + if (req.params.blah) { + next(); + } + } +); + +app.get( + new RegExp('^/foo(.*)?'), // OK - not a middleware + unknown(), + function(req,res) { + res.send('Hello World!'); + } +); + +app.use(/\/foo\/([0-9]+)/, (req, res, next) => { // NOT OK - case sensitive + unknown(req); + next(); +}); + +app.use(/\/foo\/([0-9]+)/i, (req, res, next) => { // OK - case insensitive + unknown(req); + next(); +}); + + +app.use(/\/foo\/([0-9]+)/, (req, res) => { // OK - not middleware + unknown(req, res); +}); + +app.use(/\/foo\/([0-9]+)/i, (req, res) => { // OK - not middleware (also case insensitive) + unknown(req, res); +}); + +app.get('/foo/:param', (req, res) => { // OK - not a middleware +}); From d92430b0e79b60cc1047a4a0e84d3aa889b09eb0 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 24 Jun 2022 12:01:36 +0200 Subject: [PATCH 132/736] JS: Fix FP from char class --- .../CWE-178/CaseSensitiveMiddlewarePath.ql | 17 +++++++++++++---- .../query-tests/Security/CWE-178/charclass.js | 9 +++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 javascript/ql/test/query-tests/Security/CWE-178/charclass.js diff --git a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql index 50c5894037e..8aca0553c00 100644 --- a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql +++ b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql @@ -20,6 +20,12 @@ string invertCase(string s) { if s.regexpMatch(".*[a-z].*") then result = s.toUpperCase() else result = s.toLowerCase() } +RegExpCharacterClass getEnclosingClass(RegExpTerm term) { + term = result.getAChild() + or + term = result.getAChild().(RegExpRange).getAChild() +} + /** * Holds if `term` distinguishes between upper and lower case letters, assuming the `i` flag is not present. */ @@ -28,7 +34,7 @@ predicate isCaseSensitiveRegExp(RegExpTerm term) { exists(RegExpConstant const | const = term.getAChild*() and const.getValue().regexpMatch(".*[a-zA-Z].*") and - not const.getParent().(RegExpCharacterClass).getAChild().(RegExpConstant).getValue() = + not getEnclosingClass(const).getAChild().(RegExpConstant).getValue() = invertCase(const.getValue()) and not const.getParent*() instanceof RegExpNegativeLookahead and not const.getParent*() instanceof RegExpNegativeLookbehind @@ -59,8 +65,11 @@ string getExampleString(RegExpTerm term) { } string getCaseSensitiveBypassExample(RegExpTerm term) { - result = invertCase(getExampleString(term)) and - result != "" + exists(string example | + example = getExampleString(term) and + result = invertCase(example) and + result != example // getting an example string is approximate; ensure we got a proper case-change example + ) } /** @@ -83,7 +92,7 @@ predicate isCaseSensitiveMiddleware( isCaseSensitiveRegExp(regexp.getRoot()) and exists(string flags | flags = regexp.getFlags() and - not flags.matches("%i%") + not RegExp::isIgnoreCase(flags) ) ) } diff --git a/javascript/ql/test/query-tests/Security/CWE-178/charclass.js b/javascript/ql/test/query-tests/Security/CWE-178/charclass.js new file mode 100644 index 00000000000..f10e0a2d7ab --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-178/charclass.js @@ -0,0 +1,9 @@ +const express = require('express'); +const app = express(); + +app.get(/\/[a-zA-Z]+/, (req, res, next) => { // OK - regexp term is case insensitive + next(); +}); + +app.get('/foo', (req, res) => { +}); From 051b86523092604d661e13ae6da60b25fbc790c4 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 24 Jun 2022 15:04:08 +0200 Subject: [PATCH 133/736] Ruby: update tree-sitter-ruby --- ruby/Cargo.lock | Bin 15139 -> 15139 bytes ruby/extractor/Cargo.toml | 2 +- ruby/generator/Cargo.toml | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/Cargo.lock b/ruby/Cargo.lock index 3ea76573fa4658c2a03a14b1cab73b03e9c0976a..1be66824a3e4184f0dabbebc3fec55848f3da549 100644 GIT binary patch delta 102 zcmZ2nwzzDAw^^WRlCgnlvT<^Xu~ABrp@E5|NpfmRijldAaZ0LLQc|k1QJP_*skyN- Uu?iv9U>tSz?lLih)U@shPP^N}`#iX^L@@p{Z$dqOq}op{b!^nnj8- Uu?i Date: Mon, 27 Jun 2022 13:53:44 +0200 Subject: [PATCH 134/736] sanitize non-strings from unsafe-html-construction --- .../javascript/dataflow/TaintTracking.qll | 15 +++++++++++++++ .../UnsafeHtmlConstructionCustomizations.qll | 14 ++++++++++++++ .../security/dataflow/XssThroughDomQuery.qll | 19 ++----------------- .../UnsafeHtmlConstruction.expected | 9 +++++++++ .../CWE-079/UnsafeHtmlConstruction/main.js | 10 ++++++++++ 5 files changed, 50 insertions(+), 17 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll b/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll index 0f82ec2e8e6..3e930b652d6 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll @@ -1126,6 +1126,21 @@ module TaintTracking { ) } + /** + * Holds if `test` is of the form `typeof x === "something"`, preventing `x` from being a string in some cases. + */ + predicate isStringTypeGuard(EqualityTest test, Expr operand, boolean polarity) { + exists(TypeofTag tag | TaintTracking::isTypeofGuard(test, operand, tag) | + // typeof x === "string" sanitizes `x` when it evaluates to false + tag = "string" and + polarity = test.getPolarity().booleanNot() + or + // typeof x === "object" sanitizes `x` when it evaluates to true + tag != "string" and + polarity = test.getPolarity() + ) + } + /** Holds if `guard` is a test that checks if `operand` is a number. */ predicate isNumberGuard(DataFlow::Node guard, Expr operand, boolean polarity) { exists(DataFlow::CallNode isNaN | diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll index 6ee16daa78f..ffb731aface 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll @@ -180,4 +180,18 @@ module UnsafeHtmlConstruction { override string describe() { result = "Markdown rendering" } } + + /** A test of form `typeof x === "something"`, preventing `x` from being a string in some cases. */ + class TypeTestGuard extends TaintTracking::SanitizerGuardNode, DataFlow::ValueNode { + override EqualityTest astNode; + Expr operand; + boolean polarity; + + TypeTestGuard() { TaintTracking::isStringTypeGuard(astNode, operand, polarity) } + + override predicate sanitizes(boolean outcome, Expr e) { + polarity = outcome and + e = operand + } + } } diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/XssThroughDomQuery.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/XssThroughDomQuery.qll index 767bd66f61c..5863a0db92f 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/XssThroughDomQuery.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/XssThroughDomQuery.qll @@ -4,7 +4,6 @@ */ import javascript -private import semmle.javascript.dataflow.InferredTypes private import XssThroughDomCustomizations::XssThroughDom private import semmle.javascript.security.dataflow.DomBasedXssCustomizations private import semmle.javascript.security.dataflow.UnsafeJQueryPluginCustomizations::UnsafeJQueryPlugin as UnsafeJQuery @@ -52,27 +51,13 @@ class Configuration extends TaintTracking::Configuration { } } -/** - * A test of form `typeof x === "something"`, preventing `x` from being a string in some cases. - * - * This sanitizer helps prune infeasible paths in type-overloaded functions. - */ +/** A test of form `typeof x === "something"`, preventing `x` from being a string in some cases. */ class TypeTestGuard extends TaintTracking::SanitizerGuardNode, DataFlow::ValueNode { override EqualityTest astNode; Expr operand; boolean polarity; - TypeTestGuard() { - exists(TypeofTag tag | TaintTracking::isTypeofGuard(astNode, operand, tag) | - // typeof x === "string" sanitizes `x` when it evaluates to false - tag = "string" and - polarity = astNode.getPolarity().booleanNot() - or - // typeof x === "object" sanitizes `x` when it evaluates to true - tag != "string" and - polarity = astNode.getPolarity() - ) - } + TypeTestGuard() { TaintTracking::isStringTypeGuard(astNode, operand, polarity) } override predicate sanitizes(boolean outcome, Expr e) { polarity = outcome and diff --git a/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/UnsafeHtmlConstruction.expected b/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/UnsafeHtmlConstruction.expected index 713db4aa08b..c604f4ab2d2 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/UnsafeHtmlConstruction.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/UnsafeHtmlConstruction.expected @@ -46,6 +46,10 @@ nodes | main.js:66:35:66:41 | attrVal | | main.js:67:63:67:69 | attrVal | | main.js:67:63:67:69 | attrVal | +| main.js:79:34:79:36 | val | +| main.js:79:34:79:36 | val | +| main.js:81:35:81:37 | val | +| main.js:81:35:81:37 | val | | typed.ts:1:39:1:39 | s | | typed.ts:1:39:1:39 | s | | typed.ts:2:29:2:29 | s | @@ -107,6 +111,10 @@ edges | main.js:66:35:66:41 | attrVal | main.js:67:63:67:69 | attrVal | | main.js:66:35:66:41 | attrVal | main.js:67:63:67:69 | attrVal | | main.js:66:35:66:41 | attrVal | main.js:67:63:67:69 | attrVal | +| main.js:79:34:79:36 | val | main.js:81:35:81:37 | val | +| main.js:79:34:79:36 | val | main.js:81:35:81:37 | val | +| main.js:79:34:79:36 | val | main.js:81:35:81:37 | val | +| main.js:79:34:79:36 | val | main.js:81:35:81:37 | val | | typed.ts:1:39:1:39 | s | typed.ts:2:29:2:29 | s | | typed.ts:1:39:1:39 | s | typed.ts:2:29:2:29 | s | | typed.ts:1:39:1:39 | s | typed.ts:2:29:2:29 | s | @@ -132,5 +140,6 @@ edges | main.js:47:65:47:73 | this.step | main.js:52:41:52:41 | s | main.js:47:65:47:73 | this.step | $@ based on $@ might later cause $@. | main.js:47:65:47:73 | this.step | HTML construction | main.js:52:41:52:41 | s | library input | main.js:47:54:47:85 | " ... /span>" | cross-site scripting | | main.js:62:19:62:31 | settings.name | main.js:56:28:56:34 | options | main.js:62:19:62:31 | settings.name | $@ based on $@ might later cause $@. | main.js:62:19:62:31 | settings.name | HTML construction | main.js:56:28:56:34 | options | library input | main.js:62:11:62:40 | "" + ... "" | cross-site scripting | | main.js:67:63:67:69 | attrVal | main.js:66:35:66:41 | attrVal | main.js:67:63:67:69 | attrVal | $@ based on $@ might later cause $@. | main.js:67:63:67:69 | attrVal | HTML construction | main.js:66:35:66:41 | attrVal | library input | main.js:67:47:67:78 | "" | cross-site scripting | +| main.js:81:35:81:37 | val | main.js:79:34:79:36 | val | main.js:81:35:81:37 | val | $@ based on $@ might later cause $@. | main.js:81:35:81:37 | val | HTML construction | main.js:79:34:79:36 | val | library input | main.js:81:24:81:49 | " ... /span>" | cross-site scripting | | typed.ts:2:29:2:29 | s | typed.ts:1:39:1:39 | s | typed.ts:2:29:2:29 | s | $@ based on $@ might later cause $@. | typed.ts:2:29:2:29 | s | HTML construction | typed.ts:1:39:1:39 | s | library input | typed.ts:3:31:3:34 | html | cross-site scripting | | typed.ts:8:40:8:40 | s | typed.ts:6:43:6:43 | s | typed.ts:8:40:8:40 | s | $@ based on $@ might later cause $@. | typed.ts:8:40:8:40 | s | HTML construction | typed.ts:6:43:6:43 | s | library input | typed.ts:8:29:8:52 | " ... /span>" | cross-site scripting | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/main.js b/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/main.js index 1097e126feb..1547ae86b24 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/main.js +++ b/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/main.js @@ -75,3 +75,13 @@ module.exports.intentionalTemplate = function (obj) { const html = "" + obj.spanTemplate + ""; // OK document.querySelector("#template").innerHTML = html; } + +module.exports.types = function (val) { + if (typeof val === "string") { + $("#foo").html("" + val + ""); // NOT OK + } else if (typeof val === "number") { + $("#foo").html("" + val + ""); // OK + } else if (typeof val === "boolean") { + $("#foo").html("" + val + ""); // OK + } +} From 52290fd4aee9b7d370c6427032dc9cde22134269 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Mon, 27 Jun 2022 10:01:40 -0400 Subject: [PATCH 135/736] run codeql query format --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index ba42a92d626..bc8a78349c3 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -335,6 +335,7 @@ class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { private ActiveRecordInstance instance; ActiveRecordInstanceMethodCall() { this.getReceiver() = instance } + /** Gets the `ActiveRecordInstance` that this is the receiver of this call. */ ActiveRecordInstance getInstance() { result = instance } } From 17d139c87dd9d0aae3db23062ab3febb60fcc75c Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 27 Jun 2022 16:14:30 +0200 Subject: [PATCH 136/736] JS: Add qhelp --- .../CWE-178/CaseSensitiveMiddlewarePath.qhelp | 43 +++++++++++++++++++ .../examples/CaseSensitiveMiddlewarePath.js | 13 ++++++ .../CaseSensitiveMiddlewarePathGood.js | 13 ++++++ 3 files changed, 69 insertions(+) create mode 100644 javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp create mode 100644 javascript/ql/src/Security/CWE-178/examples/CaseSensitiveMiddlewarePath.js create mode 100644 javascript/ql/src/Security/CWE-178/examples/CaseSensitiveMiddlewarePathGood.js diff --git a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp new file mode 100644 index 00000000000..bc91fcf9be0 --- /dev/null +++ b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp @@ -0,0 +1,43 @@ + + + + +

    +Using a case-sensitive regular expression path in a middleware route enables an attacker to bypass that middleware +when accessing an endpoint with a case-insensitive path. +

    +
    + + +

    +When using a regular expression as a middlware path, make sure the regular expression is +case insensitive by adding the i flag. +

    +
    + + +

    +The following example restricts access to paths in the /admin path to users logged in as +an administrator: +

    + +

    +A path such as /admin/users/45 can only be accessed by an administrator. However, the path +/ADMIN/USERS/45 can be accessed by anyone because the upper-case path doesn't match the case-sensitive regular expression, whereas +Express considers it to match the path string /admin/users. +

    +

    +The issue can be fixed by adding the i flag to the regular expression: +

    + +
    + + +
  • +MDN +Regular Expression Flags. +
  • +
    +
    diff --git a/javascript/ql/src/Security/CWE-178/examples/CaseSensitiveMiddlewarePath.js b/javascript/ql/src/Security/CWE-178/examples/CaseSensitiveMiddlewarePath.js new file mode 100644 index 00000000000..3ae6e071bdd --- /dev/null +++ b/javascript/ql/src/Security/CWE-178/examples/CaseSensitiveMiddlewarePath.js @@ -0,0 +1,13 @@ +const app = require('express')(); + +app.use(/\/admin\/.*/, (req, res, next) => { + if (!req.user.isAdmin) { + res.status(401).send('Unauthorized'); + } else { + next(); + } +}); + +app.get('/admin/users/:id', (req, res) => { + res.send(app.database.users[req.params.id]); +}); diff --git a/javascript/ql/src/Security/CWE-178/examples/CaseSensitiveMiddlewarePathGood.js b/javascript/ql/src/Security/CWE-178/examples/CaseSensitiveMiddlewarePathGood.js new file mode 100644 index 00000000000..1c803bf795d --- /dev/null +++ b/javascript/ql/src/Security/CWE-178/examples/CaseSensitiveMiddlewarePathGood.js @@ -0,0 +1,13 @@ +const app = require('express')(); + +app.use(/\/admin\/.*/i, (req, res, next) => { + if (!req.user.isAdmin) { + res.status(401).send('Unauthorized'); + } else { + next(); + } +}); + +app.get('/admin/users/:id', (req, res) => { + res.send(app.database.users[req.params.id]); +}); From 3c9e7434957b64da523f6b63e1e38e43c9db26ab Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 27 Jun 2022 16:16:38 +0200 Subject: [PATCH 137/736] JS: Add change note --- .../change-notes/2022-06-27-case-sensitive-middleware.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md diff --git a/javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md b/javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md new file mode 100644 index 00000000000..1593596e939 --- /dev/null +++ b/javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md @@ -0,0 +1,6 @@ +--- +category: newQuery +--- + +- A new query "case sensitive middleware path" (`js/case-sensitive-middleware-path`) has been added. + It highlights middleware routes that can be bypassed due to having a case-sensitive regular expression path. From 7f694f3b901bdfcd9e82e0048290032cd8eca0fa Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 27 Jun 2022 16:24:51 +0200 Subject: [PATCH 138/736] Swift: add EnumIsCase test --- .../expr/EnumIsCaseExpr/EnumIsCaseExpr.expected | 6 ++++++ .../expr/EnumIsCaseExpr/EnumIsCaseExpr.ql | 12 ++++++++++++ .../EnumIsCaseExpr/EnumIsCaseExpr_getType.expected | 6 ++++++ .../expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql | 7 +++++++ .../expr/EnumIsCaseExpr/MISSING_SOURCE.txt | 4 ---- .../expr/EnumIsCaseExpr/enum_is_case.swift | 14 ++++++++++++++ 6 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/enum_is_case.swift diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected new file mode 100644 index 00000000000..0a4d95cbfee --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected @@ -0,0 +1,6 @@ +| enum_is_case.swift:4:1:4:17 | ... is some | getSubExpr: | enum_is_case.swift:4:1:4:17 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:4:22:4:22 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:5:1:5:32 | ... is some | getSubExpr: | enum_is_case.swift:5:1:5:32 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:5:37:5:37 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:6:1:6:1 | ... is some | getSubExpr: | enum_is_case.swift:6:1:6:1 | 42 | getTypeRepr: | enum_is_case.swift:6:7:6:10 | ...? | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:7:1:7:1 | ... is some | getSubExpr: | enum_is_case.swift:7:1:7:1 | 42 | getTypeRepr: | enum_is_case.swift:7:7:7:11 | ...? | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:9:1:9:19 | ... is some | getSubExpr: | enum_is_case.swift:9:1:9:19 | [...] | getTypeRepr: | enum_is_case.swift:9:24:9:28 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:14:1:14:18 | ... is some | getSubExpr: | enum_is_case.swift:14:1:14:18 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:14:23:14:23 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql new file mode 100644 index 00000000000..e35700dcbe0 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql @@ -0,0 +1,12 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from EnumIsCaseExpr x, Expr getSubExpr, TypeRepr getTypeRepr, EnumElementDecl getElement +where + toBeTested(x) and + not x.isUnknown() and + getSubExpr = x.getSubExpr() and + getTypeRepr = x.getTypeRepr() and + getElement = x.getElement() +select x, "getSubExpr:", getSubExpr, "getTypeRepr:", getTypeRepr, "getElement:", getElement diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected new file mode 100644 index 00000000000..a6c49a471c9 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected @@ -0,0 +1,6 @@ +| enum_is_case.swift:4:1:4:17 | ... is some | Bool | +| enum_is_case.swift:5:1:5:32 | ... is some | Bool | +| enum_is_case.swift:6:1:6:1 | ... is some | Bool | +| enum_is_case.swift:7:1:7:1 | ... is some | Bool | +| enum_is_case.swift:9:1:9:19 | ... is some | Bool | +| enum_is_case.swift:14:1:14:18 | ... is some | Bool | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql new file mode 100644 index 00000000000..b8d841b545c --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from EnumIsCaseExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/enum_is_case.swift b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/enum_is_case.swift new file mode 100644 index 00000000000..63937f330bf --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/enum_is_case.swift @@ -0,0 +1,14 @@ +// EnumIsCaseExpr despite its generic nature is actually only generated when an `is` expression passes through an +// intrinsic Optional check + +Optional.some(42) is Int +Optional.some(Optional.some(42)) is Int +42 is Int? +42 is Int?? + +[Optional.some(42)] is [Int] +[42] is [Int?] + +class X {} +class Y: X {} +Optional.some(Y()) is X From 9d97fe7f307a3f8789228c2e5dc6041ab182ff1e Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 27 Jun 2022 17:22:48 +0200 Subject: [PATCH 139/736] Swift: generalize EnumIsCaseExpr test --- .../expr/EnumIsCaseExpr/EnumIsCaseExpr.expected | 6 +++++- .../EnumIsCaseExpr/EnumIsCaseExpr_getType.expected | 6 +++++- .../expr/EnumIsCaseExpr/enum_is_case.swift | 14 ++++++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected index 0a4d95cbfee..cdf97ccd73a 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected @@ -3,4 +3,8 @@ | enum_is_case.swift:6:1:6:1 | ... is some | getSubExpr: | enum_is_case.swift:6:1:6:1 | 42 | getTypeRepr: | enum_is_case.swift:6:7:6:10 | ...? | getElement: | file://:0:0:0:0 | some | | enum_is_case.swift:7:1:7:1 | ... is some | getSubExpr: | enum_is_case.swift:7:1:7:1 | 42 | getTypeRepr: | enum_is_case.swift:7:7:7:11 | ...? | getElement: | file://:0:0:0:0 | some | | enum_is_case.swift:9:1:9:19 | ... is some | getSubExpr: | enum_is_case.swift:9:1:9:19 | [...] | getTypeRepr: | enum_is_case.swift:9:24:9:28 | [...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:14:1:14:18 | ... is some | getSubExpr: | enum_is_case.swift:14:1:14:18 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:14:23:14:23 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:20:1:20:18 | ... is some | getSubExpr: | enum_is_case.swift:20:1:20:18 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:20:23:20:23 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:22:1:22:5 | ... is some | getSubExpr: | enum_is_case.swift:22:1:22:5 | [...] | getTypeRepr: | enum_is_case.swift:22:10:22:12 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:23:1:23:10 | ... is some | getSubExpr: | enum_is_case.swift:23:1:23:10 | [...] | getTypeRepr: | enum_is_case.swift:23:15:23:25 | [... : ...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:24:1:24:10 | ... is some | getSubExpr: | enum_is_case.swift:24:1:24:10 | [...] | getTypeRepr: | enum_is_case.swift:24:15:24:25 | [... : ...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:25:1:25:8 | ... is some | getSubExpr: | enum_is_case.swift:25:1:25:8 | call to ... | getTypeRepr: | enum_is_case.swift:25:13:25:18 | ...<...> | getElement: | file://:0:0:0:0 | some | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected index a6c49a471c9..b3a0100a061 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected @@ -3,4 +3,8 @@ | enum_is_case.swift:6:1:6:1 | ... is some | Bool | | enum_is_case.swift:7:1:7:1 | ... is some | Bool | | enum_is_case.swift:9:1:9:19 | ... is some | Bool | -| enum_is_case.swift:14:1:14:18 | ... is some | Bool | +| enum_is_case.swift:20:1:20:18 | ... is some | Bool | +| enum_is_case.swift:22:1:22:5 | ... is some | Bool | +| enum_is_case.swift:23:1:23:10 | ... is some | Bool | +| enum_is_case.swift:24:1:24:10 | ... is some | Bool | +| enum_is_case.swift:25:1:25:8 | ... is some | Bool | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/enum_is_case.swift b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/enum_is_case.swift index 63937f330bf..f33edd6c0c7 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/enum_is_case.swift +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/enum_is_case.swift @@ -1,5 +1,5 @@ // EnumIsCaseExpr despite its generic nature is actually only generated when an `is` expression passes through an -// intrinsic Optional check +// intrinsic Optional check, or an array, dictionary or set downcast Optional.some(42) is Int Optional.some(Optional.some(42)) is Int @@ -9,6 +9,16 @@ Optional.some(Optional.some(42)) is Int [Optional.some(42)] is [Int] [42] is [Int?] -class X {} +class X : Hashable { + static func == (lhs: X, rhs: X) -> Bool { return true } + func hash(into hasher: inout Hasher) {} +} + class Y: X {} + Optional.some(Y()) is X + +[X()] is [Y] +["x": X()] is [String: Y] +["x": X()] is [String: Y] +Set() is Set From 7430a413ad660311ae1aebc8620159b78822670a Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 27 Jun 2022 17:57:40 +0100 Subject: [PATCH 140/736] Kotlin: Mark DELEGATED_PROPERTY_ACCESSORs as compiler-generated --- .../src/main/kotlin/KotlinFileExtractor.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 29376368adc..88288b26fc6 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -881,6 +881,9 @@ open class KotlinFileExtractor( val getterId = extractFunction(getter, parentId, extractBody = extractFunctionBodies, extractMethodAndParameterTypeAccesses = extractFunctionBodies, typeSubstitution, classTypeArgsIncludingOuterClasses)?.cast() if (getterId != null) { tw.writeKtPropertyGetters(id, getterId) + if (getter.origin == IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR) { + tw.writeCompiler_generated(getterId, CompilerGeneratedKinds.DELEGATED_PROPERTY_GETTER.kind) + } } } else { if (p.modality != Modality.FINAL || !isExternalDeclaration(p)) { @@ -895,6 +898,9 @@ open class KotlinFileExtractor( val setterId = extractFunction(setter, parentId, extractBody = extractFunctionBodies, extractMethodAndParameterTypeAccesses = extractFunctionBodies, typeSubstitution, classTypeArgsIncludingOuterClasses)?.cast() if (setterId != null) { tw.writeKtPropertySetters(id, setterId) + if (setter.origin == IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR) { + tw.writeCompiler_generated(setterId, CompilerGeneratedKinds.DELEGATED_PROPERTY_SETTER.kind) + } } } else { if (p.isVar && !isExternalDeclaration(p)) { @@ -4383,6 +4389,8 @@ open class KotlinFileExtractor( GENERATED_DATA_CLASS_MEMBER(2), DEFAULT_PROPERTY_ACCESSOR(3), CLASS_INITIALISATION_METHOD(4), - ENUM_CLASS_SPECIAL_MEMBER(5) + ENUM_CLASS_SPECIAL_MEMBER(5), + DELEGATED_PROPERTY_GETTER(6), + DELEGATED_PROPERTY_SETTER(7), } } From 7dc490ff7cd3e53aed21877bab3d2e0de8413481 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 27 Jun 2022 17:59:52 +0100 Subject: [PATCH 141/736] Kotlin: Enhance methods test --- .../kotlin/library-tests/methods/delegates.kt | 12 +++ .../library-tests/methods/exprs.expected | 91 +++++++++++++++++++ .../library-tests/methods/methods.expected | 19 ++++ .../library-tests/methods/parameters.expected | 14 +++ 4 files changed, 136 insertions(+) create mode 100644 java/ql/test/kotlin/library-tests/methods/delegates.kt diff --git a/java/ql/test/kotlin/library-tests/methods/delegates.kt b/java/ql/test/kotlin/library-tests/methods/delegates.kt new file mode 100644 index 00000000000..cd475a51cec --- /dev/null +++ b/java/ql/test/kotlin/library-tests/methods/delegates.kt @@ -0,0 +1,12 @@ +import kotlin.properties.Delegates + +class MyClass { + val lazyProp by lazy { + 5 + } + + var observableProp: String by Delegates.observable("") { + prop, old, new -> + println("Was $old, now $new") + } +} diff --git a/java/ql/test/kotlin/library-tests/methods/exprs.expected b/java/ql/test/kotlin/library-tests/methods/exprs.expected index abad65d5f83..46b61a1edb9 100644 --- a/java/ql/test/kotlin/library-tests/methods/exprs.expected +++ b/java/ql/test/kotlin/library-tests/methods/exprs.expected @@ -104,6 +104,97 @@ | dataClass.kt:1:34:1:46 | this.y | VarAccess | | dataClass.kt:1:34:1:46 | y | VarAccess | | dataClass.kt:1:34:1:46 | y | VarAccess | +| delegates.kt:1:9:1:12 | this | ThisAccess | +| delegates.kt:1:9:1:12 | this | ThisAccess | +| delegates.kt:1:9:1:12 | this | ThisAccess | +| delegates.kt:4:18:6:5 | ...::... | PropertyRefExpr | +| delegates.kt:4:18:6:5 | ...=... | KtInitializerAssignExpr | +| delegates.kt:4:18:6:5 | Integer | TypeAccess | +| delegates.kt:4:18:6:5 | Integer | TypeAccess | +| delegates.kt:4:18:6:5 | KProperty1 | TypeAccess | +| delegates.kt:4:18:6:5 | Lazy | TypeAccess | +| delegates.kt:4:18:6:5 | MyClass | TypeAccess | +| delegates.kt:4:18:6:5 | a0 | VarAccess | +| delegates.kt:4:18:6:5 | a0 | VarAccess | +| delegates.kt:4:18:6:5 | get(...) | MethodAccess | +| delegates.kt:4:18:6:5 | getLazyProp(...) | MethodAccess | +| delegates.kt:4:18:6:5 | int | TypeAccess | +| delegates.kt:4:18:6:5 | lazyProp$delegate | VarAccess | +| delegates.kt:4:18:6:5 | this | ThisAccess | +| delegates.kt:4:18:6:5 | this | ThisAccess | +| delegates.kt:4:18:6:5 | this.lazyProp$delegate | VarAccess | +| delegates.kt:4:21:6:5 | Integer | TypeAccess | +| delegates.kt:4:21:6:5 | Integer | TypeAccess | +| delegates.kt:4:21:6:5 | LazyKt | TypeAccess | +| delegates.kt:4:21:6:5 | LazyKt | TypeAccess | +| delegates.kt:4:21:6:5 | getValue(...) | MethodAccess | +| delegates.kt:4:21:6:5 | lazy(...) | MethodAccess | +| delegates.kt:4:26:6:5 | ...->... | LambdaExpr | +| delegates.kt:4:26:6:5 | Function0 | TypeAccess | +| delegates.kt:4:26:6:5 | Integer | TypeAccess | +| delegates.kt:4:26:6:5 | int | TypeAccess | +| delegates.kt:5:9:5:9 | 5 | IntegerLiteral | +| delegates.kt:8:32:11:5 | ...::... | PropertyRefExpr | +| delegates.kt:8:32:11:5 | ...::... | PropertyRefExpr | +| delegates.kt:8:32:11:5 | ...=... | KtInitializerAssignExpr | +| delegates.kt:8:32:11:5 | KMutableProperty1 | TypeAccess | +| delegates.kt:8:32:11:5 | KMutableProperty1 | TypeAccess | +| delegates.kt:8:32:11:5 | MyClass | TypeAccess | +| delegates.kt:8:32:11:5 | MyClass | TypeAccess | +| delegates.kt:8:32:11:5 | Object | TypeAccess | +| delegates.kt:8:32:11:5 | ReadWriteProperty | TypeAccess | +| delegates.kt:8:32:11:5 | String | TypeAccess | +| delegates.kt:8:32:11:5 | String | TypeAccess | +| delegates.kt:8:32:11:5 | String | TypeAccess | +| delegates.kt:8:32:11:5 | String | TypeAccess | +| delegates.kt:8:32:11:5 | String | TypeAccess | +| delegates.kt:8:32:11:5 | Unit | TypeAccess | +| delegates.kt:8:32:11:5 | a0 | VarAccess | +| delegates.kt:8:32:11:5 | a0 | VarAccess | +| delegates.kt:8:32:11:5 | a0 | VarAccess | +| delegates.kt:8:32:11:5 | a0 | VarAccess | +| delegates.kt:8:32:11:5 | a0 | VarAccess | +| delegates.kt:8:32:11:5 | a0 | VarAccess | +| delegates.kt:8:32:11:5 | a1 | VarAccess | +| delegates.kt:8:32:11:5 | a1 | VarAccess | +| delegates.kt:8:32:11:5 | get(...) | MethodAccess | +| delegates.kt:8:32:11:5 | get(...) | MethodAccess | +| delegates.kt:8:32:11:5 | getObservableProp(...) | MethodAccess | +| delegates.kt:8:32:11:5 | getObservableProp(...) | MethodAccess | +| delegates.kt:8:32:11:5 | observableProp$delegate | VarAccess | +| delegates.kt:8:32:11:5 | setObservableProp(...) | MethodAccess | +| delegates.kt:8:32:11:5 | setObservableProp(...) | MethodAccess | +| delegates.kt:8:32:11:5 | this | ThisAccess | +| delegates.kt:8:32:11:5 | this | ThisAccess | +| delegates.kt:8:32:11:5 | this | ThisAccess | +| delegates.kt:8:32:11:5 | this | ThisAccess | +| delegates.kt:8:32:11:5 | this.observableProp$delegate | VarAccess | +| delegates.kt:8:32:11:5 | this.observableProp$delegate | VarAccess | +| delegates.kt:8:35:8:43 | INSTANCE | VarAccess | +| delegates.kt:8:35:11:5 | | VarAccess | +| delegates.kt:8:35:11:5 | getValue(...) | MethodAccess | +| delegates.kt:8:35:11:5 | setValue(...) | MethodAccess | +| delegates.kt:8:45:11:5 | String | TypeAccess | +| delegates.kt:8:45:11:5 | observable(...) | MethodAccess | +| delegates.kt:8:57:8:62 | | StringLiteral | +| delegates.kt:8:66:11:5 | ...->... | LambdaExpr | +| delegates.kt:8:66:11:5 | Function3,String,String,Unit> | TypeAccess | +| delegates.kt:8:66:11:5 | KProperty | TypeAccess | +| delegates.kt:8:66:11:5 | String | TypeAccess | +| delegates.kt:8:66:11:5 | String | TypeAccess | +| delegates.kt:8:66:11:5 | Unit | TypeAccess | +| delegates.kt:8:66:11:5 | Unit | TypeAccess | +| delegates.kt:9:9:9:12 | ? ... | WildcardTypeAccess | +| delegates.kt:9:9:9:12 | KProperty | TypeAccess | +| delegates.kt:9:15:9:17 | String | TypeAccess | +| delegates.kt:9:20:9:22 | String | TypeAccess | +| delegates.kt:10:9:10:37 | ConsoleKt | TypeAccess | +| delegates.kt:10:9:10:37 | println(...) | MethodAccess | +| delegates.kt:10:17:10:36 | "..." | StringTemplateExpr | +| delegates.kt:10:18:10:21 | Was | StringLiteral | +| delegates.kt:10:23:10:25 | old | VarAccess | +| delegates.kt:10:26:10:31 | , now | StringLiteral | +| delegates.kt:10:33:10:35 | new | VarAccess | | enumClass.kt:0:0:0:0 | EnumClass | TypeAccess | | enumClass.kt:0:0:0:0 | EnumClass | TypeAccess | | enumClass.kt:0:0:0:0 | EnumClass[] | TypeAccess | diff --git a/java/ql/test/kotlin/library-tests/methods/methods.expected b/java/ql/test/kotlin/library-tests/methods/methods.expected index 144e71e5d48..cd9ea6d5bc5 100644 --- a/java/ql/test/kotlin/library-tests/methods/methods.expected +++ b/java/ql/test/kotlin/library-tests/methods/methods.expected @@ -11,6 +11,19 @@ methods | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:22:1:31 | getX | getX() | public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:34:1:46 | getY | getY() | public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:34:1:46 | setY | setY(java.lang.String) | public | Compiler generated | +| delegates.kt:3:1:12:1 | MyClass | delegates.kt:4:18:6:5 | getLazyProp | getLazyProp() | public | Compiler generated | +| delegates.kt:3:1:12:1 | MyClass | delegates.kt:8:32:11:5 | getObservableProp | getObservableProp() | public | Compiler generated | +| delegates.kt:3:1:12:1 | MyClass | delegates.kt:8:32:11:5 | setObservableProp | setObservableProp(java.lang.String) | public | Compiler generated | +| delegates.kt:4:18:6:5 | new KProperty1(...) { ... } | delegates.kt:4:18:6:5 | get | get(MyClass) | override, public | | +| delegates.kt:4:18:6:5 | new KProperty1(...) { ... } | delegates.kt:4:18:6:5 | invoke | invoke(MyClass) | override, public | | +| delegates.kt:4:26:6:5 | new Function0(...) { ... } | delegates.kt:4:26:6:5 | invoke | invoke() | override, public | | +| delegates.kt:8:32:11:5 | new KMutableProperty1(...) { ... } | delegates.kt:8:32:11:5 | get | get(MyClass) | override, public | | +| delegates.kt:8:32:11:5 | new KMutableProperty1(...) { ... } | delegates.kt:8:32:11:5 | get | get(MyClass) | override, public | | +| delegates.kt:8:32:11:5 | new KMutableProperty1(...) { ... } | delegates.kt:8:32:11:5 | invoke | invoke(MyClass) | override, public | | +| delegates.kt:8:32:11:5 | new KMutableProperty1(...) { ... } | delegates.kt:8:32:11:5 | invoke | invoke(MyClass) | override, public | | +| delegates.kt:8:32:11:5 | new KMutableProperty1(...) { ... } | delegates.kt:8:32:11:5 | set | set(MyClass,java.lang.String) | override, public | | +| delegates.kt:8:32:11:5 | new KMutableProperty1(...) { ... } | delegates.kt:8:32:11:5 | set | set(MyClass,java.lang.String) | override, public | | +| delegates.kt:8:66:11:5 | new Function3,String,String,Unit>(...) { ... } | delegates.kt:8:66:11:5 | invoke | invoke(kotlin.reflect.KProperty,java.lang.String,java.lang.String) | override, public | | | enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:0:0:0:0 | | () | | Compiler generated | | enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:0:0:0:0 | valueOf | valueOf(java.lang.String) | public, static | Compiler generated | | enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:0:0:0:0 | values | values() | public, static | Compiler generated | @@ -33,6 +46,12 @@ methods | methods.kt:5:1:19:1 | Class | methods.kt:18:5:18:36 | noExplicitVisibilityFun | noExplicitVisibilityFun() | public | | constructors | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:6:1:47 | DataClass | DataClass(int,java.lang.String) | +| delegates.kt:3:1:12:1 | MyClass | delegates.kt:3:1:12:1 | MyClass | MyClass() | +| delegates.kt:4:18:6:5 | new KProperty1(...) { ... } | delegates.kt:4:18:6:5 | | | +| delegates.kt:4:26:6:5 | new Function0(...) { ... } | delegates.kt:4:26:6:5 | | | +| delegates.kt:8:32:11:5 | new KMutableProperty1(...) { ... } | delegates.kt:8:32:11:5 | | | +| delegates.kt:8:32:11:5 | new KMutableProperty1(...) { ... } | delegates.kt:8:32:11:5 | | | +| delegates.kt:8:66:11:5 | new Function3,String,String,Unit>(...) { ... } | delegates.kt:8:66:11:5 | | | | enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:1:6:4:1 | EnumClass | EnumClass(int) | | methods2.kt:7:1:10:1 | Class2 | methods2.kt:7:1:10:1 | Class2 | Class2() | | methods3.kt:5:1:7:1 | Class3 | methods3.kt:5:1:7:1 | Class3 | Class3() | diff --git a/java/ql/test/kotlin/library-tests/methods/parameters.expected b/java/ql/test/kotlin/library-tests/methods/parameters.expected index 8a1ee3fa42f..2b35e69e502 100644 --- a/java/ql/test/kotlin/library-tests/methods/parameters.expected +++ b/java/ql/test/kotlin/library-tests/methods/parameters.expected @@ -3,6 +3,20 @@ | dataClass.kt:0:0:0:0 | copy | dataClass.kt:1:34:1:46 | y | 1 | | dataClass.kt:0:0:0:0 | equals | dataClass.kt:0:0:0:0 | other | 0 | | dataClass.kt:1:34:1:46 | setY | dataClass.kt:1:34:1:46 | | 0 | +| delegates.kt:4:18:6:5 | get | delegates.kt:4:18:6:5 | a0 | 0 | +| delegates.kt:4:18:6:5 | invoke | delegates.kt:4:18:6:5 | a0 | 0 | +| delegates.kt:8:32:11:5 | get | delegates.kt:8:32:11:5 | a0 | 0 | +| delegates.kt:8:32:11:5 | get | delegates.kt:8:32:11:5 | a0 | 0 | +| delegates.kt:8:32:11:5 | invoke | delegates.kt:8:32:11:5 | a0 | 0 | +| delegates.kt:8:32:11:5 | invoke | delegates.kt:8:32:11:5 | a0 | 0 | +| delegates.kt:8:32:11:5 | set | delegates.kt:8:32:11:5 | a0 | 0 | +| delegates.kt:8:32:11:5 | set | delegates.kt:8:32:11:5 | a0 | 0 | +| delegates.kt:8:32:11:5 | set | delegates.kt:8:32:11:5 | a1 | 1 | +| delegates.kt:8:32:11:5 | set | delegates.kt:8:32:11:5 | a1 | 1 | +| delegates.kt:8:32:11:5 | setObservableProp | delegates.kt:8:32:11:5 | | 0 | +| delegates.kt:8:66:11:5 | invoke | delegates.kt:9:9:9:12 | prop | 0 | +| delegates.kt:8:66:11:5 | invoke | delegates.kt:9:15:9:17 | old | 1 | +| delegates.kt:8:66:11:5 | invoke | delegates.kt:9:20:9:22 | new | 2 | | enumClass.kt:0:0:0:0 | valueOf | enumClass.kt:0:0:0:0 | value | 0 | | methods2.kt:4:1:5:1 | fooBarTopLevelMethod | methods2.kt:4:26:4:31 | x | 0 | | methods2.kt:4:1:5:1 | fooBarTopLevelMethod | methods2.kt:4:34:4:39 | y | 1 | From 4e4b34290bbe59df72b573f695fafc0e981a1901 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 27 Jun 2022 18:08:06 +0100 Subject: [PATCH 142/736] Kotlin: Make more methods private --- .../src/main/kotlin/KotlinFileExtractor.kt | 66 +++++++++---------- .../src/main/kotlin/KotlinUsesExtractor.kt | 46 ++++++------- .../src/main/kotlin/utils/ClassNames.kt | 4 +- 3 files changed, 58 insertions(+), 58 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 29376368adc..6a8185d9128 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -181,7 +181,7 @@ open class KotlinFileExtractor( } } - fun extractTypeParameter(tp: IrTypeParameter, apparentIndex: Int, javaTypeParameter: JavaTypeParameter?): Label? { + private fun extractTypeParameter(tp: IrTypeParameter, apparentIndex: Int, javaTypeParameter: JavaTypeParameter?): Label? { with("type parameter", tp) { val parentId = getTypeParameterParentLabel(tp) ?: return null val id = tw.getLabelFor(getTypeParameterLabel(tp)) @@ -216,7 +216,7 @@ open class KotlinFileExtractor( } } - fun extractVisibility(elementForLocation: IrElement, id: Label, v: DescriptorVisibility) { + private fun extractVisibility(elementForLocation: IrElement, id: Label, v: DescriptorVisibility) { with("visibility", elementForLocation) { when (v) { DescriptorVisibilities.PRIVATE -> addModifiers(id, "private") @@ -250,7 +250,7 @@ open class KotlinFileExtractor( } } - fun extractClassModifiers(c: IrClass, id: Label) { + private fun extractClassModifiers(c: IrClass, id: Label) { with("class modifiers", c) { when (c.modality) { Modality.FINAL -> addModifiers(id, "final") @@ -371,7 +371,7 @@ open class KotlinFileExtractor( tw.writeHasLocation(stmtId, locId) } - fun extractObinitFunction(c: IrClass, parentId: Label) { + private fun extractObinitFunction(c: IrClass, parentId: Label) { // add method: val obinitLabel = getObinitLabel(c) val obinitId = tw.getLabelFor(obinitLabel) @@ -506,7 +506,7 @@ open class KotlinFileExtractor( data class FieldResult(val id: Label, val name: String) - fun useCompanionObjectClassInstance(c: IrClass): FieldResult? { + private fun useCompanionObjectClassInstance(c: IrClass): FieldResult? { val parent = c.parent if(!c.isCompanion) { logger.error("Using companion instance for non-companion class") @@ -524,7 +524,7 @@ open class KotlinFileExtractor( } } - fun useObjectClassInstance(c: IrClass): FieldResult { + private fun useObjectClassInstance(c: IrClass): FieldResult { if(!c.isNonCompanionObject) { logger.error("Using instance for non-object class") } @@ -719,13 +719,13 @@ open class KotlinFileExtractor( } } - fun extractFunction(f: IrFunction, parentId: Label, extractBody: Boolean, extractMethodAndParameterTypeAccesses: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?) = + private fun extractFunction(f: IrFunction, parentId: Label, extractBody: Boolean, extractMethodAndParameterTypeAccesses: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?) = if (isFake(f)) null else forceExtractFunction(f, parentId, extractBody, extractMethodAndParameterTypeAccesses, typeSubstitution, classTypeArgsIncludingOuterClasses, null, null) - fun forceExtractFunction(f: IrFunction, parentId: Label, extractBody: Boolean, extractMethodAndParameterTypeAccesses: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?, idOverride: Label?, locOverride: Label?): Label { + private fun forceExtractFunction(f: IrFunction, parentId: Label, extractBody: Boolean, extractMethodAndParameterTypeAccesses: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?, idOverride: Label?, locOverride: Label?): Label { with("function", f) { DeclarationStackAdjuster(f).use { @@ -828,7 +828,7 @@ open class KotlinFileExtractor( && f.symbol !is IrConstructorSymbol // not a constructor } - fun extractField(f: IrField, parentId: Label): Label { + private fun extractField(f: IrField, parentId: Label): Label { with("field", f) { DeclarationStackAdjuster(f).use { declarationStack.push(f) @@ -862,7 +862,7 @@ open class KotlinFileExtractor( return id } - fun extractProperty(p: IrProperty, parentId: Label, extractBackingField: Boolean, extractFunctionBodies: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?) { + private fun extractProperty(p: IrProperty, parentId: Label, extractBackingField: Boolean, extractFunctionBodies: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?) { with("property", p) { if (isFake(p)) return @@ -931,7 +931,7 @@ open class KotlinFileExtractor( } } - fun extractEnumEntry(ee: IrEnumEntry, parentId: Label, extractTypeAccess: Boolean) { + private fun extractEnumEntry(ee: IrEnumEntry, parentId: Label, extractTypeAccess: Boolean) { with("enum entry", ee) { DeclarationStackAdjuster(ee).use { val id = useEnumEntry(ee) @@ -953,7 +953,7 @@ open class KotlinFileExtractor( } } - fun extractTypeAlias(ta: IrTypeAlias) { + private fun extractTypeAlias(ta: IrTypeAlias) { with("type alias", ta) { if (ta.typeParameters.isNotEmpty()) { // TODO: Extract this information @@ -968,7 +968,7 @@ open class KotlinFileExtractor( } } - fun extractBody(b: IrBody, callable: Label) { + private fun extractBody(b: IrBody, callable: Label) { with("body", b) { when (b) { is IrBlockBody -> extractBlockBody(b, callable) @@ -981,7 +981,7 @@ open class KotlinFileExtractor( } } - fun extractBlockBody(b: IrBlockBody, callable: Label) { + private fun extractBlockBody(b: IrBlockBody, callable: Label) { with("block body", b) { val id = tw.getFreshIdLabel() val locId = tw.getLocation(b) @@ -993,7 +993,7 @@ open class KotlinFileExtractor( } } - fun extractSyntheticBody(b: IrSyntheticBody, callable: Label) { + private fun extractSyntheticBody(b: IrSyntheticBody, callable: Label) { with("synthetic body", b) { when (b.kind) { IrSyntheticBodyKind.ENUM_VALUES -> tw.writeKtSyntheticBody(callable, 1) @@ -1002,7 +1002,7 @@ open class KotlinFileExtractor( } } - fun extractExpressionBody(b: IrExpressionBody, callable: Label) { + private fun extractExpressionBody(b: IrExpressionBody, callable: Label) { with("expression body", b) { val blockId = tw.getFreshIdLabel() val locId = tw.getLocation(b) @@ -1026,7 +1026,7 @@ open class KotlinFileExtractor( return v } - fun extractVariable(v: IrVariable, callable: Label, parent: Label, idx: Int) { + private fun extractVariable(v: IrVariable, callable: Label, parent: Label, idx: Int) { with("variable", v) { val stmtId = tw.getFreshIdLabel() val locId = tw.getLocation(getVariableLocationProvider(v)) @@ -1036,7 +1036,7 @@ open class KotlinFileExtractor( } } - fun extractVariableExpr(v: IrVariable, callable: Label, parent: Label, idx: Int, enclosingStmt: Label) { + private fun extractVariableExpr(v: IrVariable, callable: Label, parent: Label, idx: Int, enclosingStmt: Label) { with("variable expr", v) { val varId = useVariable(v) val exprId = tw.getFreshIdLabel() @@ -1060,7 +1060,7 @@ open class KotlinFileExtractor( } } - fun extractStatement(s: IrStatement, callable: Label, parent: Label, idx: Int) { + private fun extractStatement(s: IrStatement, callable: Label, parent: Label, idx: Int) { with("statement", s) { when(s) { is IrExpression -> { @@ -1399,7 +1399,7 @@ open class KotlinFileExtractor( } } - fun findFunction(cls: IrClass, name: String): IrFunction? = cls.declarations.find { it is IrFunction && it.name.asString() == name } as IrFunction? + private fun findFunction(cls: IrClass, name: String): IrFunction? = cls.declarations.find { it is IrFunction && it.name.asString() == name } as IrFunction? val jvmIntrinsicsClass by lazy { val result = pluginContext.referenceClass(FqName("kotlin.jvm.internal.Intrinsics"))?.owner @@ -1407,7 +1407,7 @@ open class KotlinFileExtractor( result } - fun findJdkIntrinsicOrWarn(name: String, warnAgainstElement: IrElement): IrFunction? { + private fun findJdkIntrinsicOrWarn(name: String, warnAgainstElement: IrElement): IrFunction? { val result = jvmIntrinsicsClass?.let { findFunction(it, name) } if(result == null) { logger.errorElement("Couldn't find JVM intrinsic function $name", warnAgainstElement) @@ -1501,7 +1501,7 @@ open class KotlinFileExtractor( result } - fun isFunction(target: IrFunction, pkgName: String, classNameLogged: String, classNamePredicate: (String) -> Boolean, fName: String, hasQuestionMark: Boolean? = false): Boolean { + private fun isFunction(target: IrFunction, pkgName: String, classNameLogged: String, classNamePredicate: (String) -> Boolean, fName: String, hasQuestionMark: Boolean? = false): Boolean { val verbose = false fun verboseln(s: String) { if(verbose) println(s) } verboseln("Attempting match for $pkgName $classNameLogged $fName") @@ -1545,10 +1545,10 @@ open class KotlinFileExtractor( return true } - fun isFunction(target: IrFunction, pkgName: String, className: String, fName: String, hasQuestionMark: Boolean? = false) = + private fun isFunction(target: IrFunction, pkgName: String, className: String, fName: String, hasQuestionMark: Boolean? = false) = isFunction(target, pkgName, className, { it == className }, fName, hasQuestionMark) - fun isNumericFunction(target: IrFunction, fName: String): Boolean { + private fun isNumericFunction(target: IrFunction, fName: String): Boolean { return isFunction(target, "kotlin", "Int", fName) || isFunction(target, "kotlin", "Byte", fName) || isFunction(target, "kotlin", "Short", fName) || @@ -1557,7 +1557,7 @@ open class KotlinFileExtractor( isFunction(target, "kotlin", "Double", fName) } - fun isArrayType(typeName: String) = + private fun isArrayType(typeName: String) = when(typeName) { "Array" -> true "IntArray" -> true @@ -1571,7 +1571,7 @@ open class KotlinFileExtractor( else -> false } - fun extractCall(c: IrCall, callable: Label, stmtExprParent: StmtExprParent) { + private fun extractCall(c: IrCall, callable: Label, stmtExprParent: StmtExprParent) { with("call", c) { val target = tryReplaceSyntheticFunction(c.symbol.owner) @@ -2250,7 +2250,7 @@ open class KotlinFileExtractor( else -> null } - fun getUpdateInPlaceRHS(origin: IrStatementOrigin?, isExpectedLhs: (IrExpression?) -> Boolean, updateRhs: IrExpression): IrExpression? { + private fun getUpdateInPlaceRHS(origin: IrStatementOrigin?, isExpectedLhs: (IrExpression?) -> Boolean, updateRhs: IrExpression): IrExpression? { // Check for a desugared in-place update operator, such as "v += e": return getStatementOriginOperator(origin)?.let { if (updateRhs is IrCall && @@ -2265,7 +2265,7 @@ open class KotlinFileExtractor( } } - fun writeUpdateInPlaceExpr(origin: IrStatementOrigin, tw: TrapWriter, id: Label, type: TypeResults, exprParent: ExprParent): Boolean { + private fun writeUpdateInPlaceExpr(origin: IrStatementOrigin, tw: TrapWriter, id: Label, type: TypeResults, exprParent: ExprParent): Boolean { when(origin) { IrStatementOrigin.PLUSEQ -> tw.writeExprs_assignaddexpr(id.cast(), type.javaResult.id, exprParent.parent, exprParent.idx) IrStatementOrigin.MINUSEQ -> tw.writeExprs_assignsubexpr(id.cast(), type.javaResult.id, exprParent.parent, exprParent.idx) @@ -2277,7 +2277,7 @@ open class KotlinFileExtractor( return true } - fun tryExtractArrayUpdate(e: IrContainerExpression, callable: Label, parent: StmtExprParent): Boolean { + private fun tryExtractArrayUpdate(e: IrContainerExpression, callable: Label, parent: StmtExprParent): Boolean { /* * We're expecting the pattern * { @@ -2348,7 +2348,7 @@ open class KotlinFileExtractor( return false } - fun extractExpressionStmt(e: IrExpression, callable: Label, parent: Label, idx: Int) { + private fun extractExpressionStmt(e: IrExpression, callable: Label, parent: Label, idx: Int) { extractExpression(e, callable, StmtParent(parent, idx)) } @@ -2356,7 +2356,7 @@ open class KotlinFileExtractor( extractExpression(e, callable, ExprParent(parent, idx, enclosingStmt)) } - fun extractExpression(e: IrExpression, callable: Label, parent: StmtExprParent) { + private fun extractExpression(e: IrExpression, callable: Label, parent: StmtExprParent) { with("expression", e) { when(e) { is IrDelegatingConstructorCall -> { @@ -3819,7 +3819,7 @@ open class KotlinFileExtractor( } } - fun extractVarargElement(e: IrVarargElement, callable: Label, parent: Label, idx: Int, enclosingStmt: Label) { + private fun extractVarargElement(e: IrVarargElement, callable: Label, parent: Label, idx: Int, enclosingStmt: Label) { with("vararg element", e) { val argExpr = when(e) { is IrExpression -> e @@ -4011,7 +4011,7 @@ open class KotlinFileExtractor( return initId } - fun extractTypeOperatorCall(e: IrTypeOperatorCall, callable: Label, parent: Label, idx: Int, enclosingStmt: Label) { + private fun extractTypeOperatorCall(e: IrTypeOperatorCall, callable: Label, parent: Label, idx: Int, enclosingStmt: Label) { with("type operator call", e) { when(e.operator) { IrTypeOperator.CAST -> { diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 0e2202b583a..530ff47e8ab 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -49,7 +49,7 @@ open class KotlinUsesExtractor( javaLangObject?.typeWith() } - fun usePackage(pkg: String): Label { + private fun usePackage(pkg: String): Label { return extractPackage(pkg) } @@ -154,12 +154,12 @@ open class KotlinUsesExtractor( } ?: argsIncludingOuterClasses } - fun isStaticClass(c: IrClass) = c.visibility != DescriptorVisibilities.LOCAL && !c.isInner + private fun isStaticClass(c: IrClass) = c.visibility != DescriptorVisibilities.LOCAL && !c.isInner // Gets nested inner classes starting at `c` and proceeding outwards to the innermost enclosing static class. // For example, for (java syntax) `class A { static class B { class C { class D { } } } }`, // `nonStaticParentsWithSelf(D)` = `[D, C, B]`. - fun parentsWithTypeParametersInScope(c: IrClass): List { + private fun parentsWithTypeParametersInScope(c: IrClass): List { val parentsList = c.parentsWithSelf.toList() val firstOuterClassIdx = parentsList.indexOfFirst { it is IrClass && isStaticClass(it) } return if (firstOuterClassIdx == -1) parentsList else parentsList.subList(0, firstOuterClassIdx + 1) @@ -168,14 +168,14 @@ open class KotlinUsesExtractor( // Gets the type parameter symbols that are in scope for class `c` in Kotlin order (i.e. for // `class NotInScope { static class OutermostInScope { class QueryClass { } } }`, // `getTypeParametersInScope(QueryClass)` = `[C, D, A, B]`. - fun getTypeParametersInScope(c: IrClass) = + private fun getTypeParametersInScope(c: IrClass) = parentsWithTypeParametersInScope(c).mapNotNull({ getTypeParameters(it) }).flatten() // Returns a map from `c`'s type variables in scope to type arguments `argsIncludingOuterClasses`. // Hack for the time being: the substituted types are always nullable, to prevent downstream code // from replacing a generic parameter by a primitive. As and when we extract Kotlin types we will // need to track this information in more detail. - fun makeTypeGenericSubstitutionMap(c: IrClass, argsIncludingOuterClasses: List) = + private fun makeTypeGenericSubstitutionMap(c: IrClass, argsIncludingOuterClasses: List) = getTypeParametersInScope(c).map({ it.symbol }).zip(argsIncludingOuterClasses.map { it.withQuestionMark(true) }).toMap() fun makeGenericSubstitutionFunction(c: IrClass, argsIncludingOuterClasses: List) = @@ -239,13 +239,13 @@ open class KotlinUsesExtractor( private fun isArray(t: IrSimpleType) = t.isBoxedArray || t.isPrimitiveArray() - fun extractClassLaterIfExternal(c: IrClass) { + private fun extractClassLaterIfExternal(c: IrClass) { if (isExternalDeclaration(c)) { extractExternalClassLater(c) } } - fun extractExternalEnclosingClassLater(d: IrDeclaration) { + private fun extractExternalEnclosingClassLater(d: IrDeclaration) { when (val parent = d.parent) { is IrClass -> extractExternalClassLater(parent) is IrFunction -> extractExternalEnclosingClassLater(parent) @@ -254,7 +254,7 @@ open class KotlinUsesExtractor( } } - fun extractPropertyLaterIfExternalFileMember(p: IrProperty) { + private fun extractPropertyLaterIfExternalFileMember(p: IrProperty) { if (isExternalFileClassMember(p)) { extractExternalClassLater(p.parentAsClass) dependencyCollector?.addDependency(p, externalClassExtractor.propertySignature) @@ -262,7 +262,7 @@ open class KotlinUsesExtractor( } } - fun extractFieldLaterIfExternalFileMember(f: IrField) { + private fun extractFieldLaterIfExternalFileMember(f: IrField) { if (isExternalFileClassMember(f)) { extractExternalClassLater(f.parentAsClass) dependencyCollector?.addDependency(f, externalClassExtractor.fieldSignature) @@ -270,7 +270,7 @@ open class KotlinUsesExtractor( } } - fun extractFunctionLaterIfExternalFileMember(f: IrFunction) { + private fun extractFunctionLaterIfExternalFileMember(f: IrFunction) { if (isExternalFileClassMember(f)) { extractExternalClassLater(f.parentAsClass) (f as? IrSimpleFunction)?.correspondingPropertySymbol?.let { @@ -301,7 +301,7 @@ open class KotlinUsesExtractor( externalClassExtractor.extractLater(c) } - fun tryReplaceAndroidSyntheticClass(c: IrClass): IrClass { + private fun tryReplaceAndroidSyntheticClass(c: IrClass): IrClass { // The Android Kotlin Extensions Gradle plugin introduces synthetic functions, fields and classes. The most // obvious signature is that they lack any supertype information even though they are not root classes. // If possible, replace them by a real version of the same class. @@ -503,7 +503,7 @@ open class KotlinUsesExtractor( // but returns boxed arrays with a nullable, invariant component type, with any nested arrays // similarly transformed. For example, Array> would become Array?> // Array<*> will become Array. - fun getInvariantNullableArrayType(arrayType: IrSimpleType): IrSimpleType = + private fun getInvariantNullableArrayType(arrayType: IrSimpleType): IrSimpleType = if (arrayType.isPrimitiveArray()) arrayType else { @@ -528,7 +528,7 @@ open class KotlinUsesExtractor( ) } - fun useArrayType(arrayType: IrSimpleType, componentType: IrType, elementType: IrType, dimensions: Int, isPrimitiveArray: Boolean): TypeResults { + private fun useArrayType(arrayType: IrSimpleType, componentType: IrType, elementType: IrType, dimensions: Int, isPrimitiveArray: Boolean): TypeResults { // Ensure we extract Array as Integer[], not int[], for example: fun nullableIfNotPrimitive(type: IrType) = if (type.isPrimitiveType() && !isPrimitiveArray) type.makeNullable() else type @@ -579,7 +579,7 @@ open class KotlinUsesExtractor( RETURN, GENERIC_ARGUMENT, OTHER } - fun useSimpleType(s: IrSimpleType, context: TypeContext): TypeResults { + private fun useSimpleType(s: IrSimpleType, context: TypeContext): TypeResults { if (s.abbreviation != null) { // TODO: Extract this information } @@ -810,14 +810,14 @@ open class KotlinUsesExtractor( return if (f is IrConstructor) f.typeParameters else f.typeParameters.filter { it.parent == f } } - fun getTypeParameters(dp: IrDeclarationParent): List = + private fun getTypeParameters(dp: IrDeclarationParent): List = when(dp) { is IrClass -> dp.typeParameters is IrFunction -> getFunctionTypeParameters(dp) else -> listOf() } - fun getEnclosingClass(it: IrDeclarationParent): IrClass? = + private fun getEnclosingClass(it: IrDeclarationParent): IrClass? = when(it) { is IrClass -> it is IrFunction -> getEnclosingClass(it.parent) @@ -924,7 +924,7 @@ open class KotlinUsesExtractor( null } ?: t - fun getJavaTypeArgument(jt: JavaType, idx: Int) = + private fun getJavaTypeArgument(jt: JavaType, idx: Int) = when(jt) { is JavaClassifierType -> jt.typeArguments.getOrNull(idx) is JavaArrayType -> if (idx == 0) jt.componentType else null @@ -970,7 +970,7 @@ open class KotlinUsesExtractor( * allow it to be passed in. */ @OptIn(ObsoleteDescriptorBasedAPI::class) - fun getFunctionLabel(f: IrFunction, maybeParentId: Label?, classTypeArgsIncludingOuterClasses: List?) = + private fun getFunctionLabel(f: IrFunction, maybeParentId: Label?, classTypeArgsIncludingOuterClasses: List?) = getFunctionLabel( f.parent, maybeParentId, @@ -1153,7 +1153,7 @@ open class KotlinUsesExtractor( "kotlin.Boolean", "kotlin.Byte", "kotlin.Char", "kotlin.Double", "kotlin.Float", "kotlin.Int", "kotlin.Long", "kotlin.Number", "kotlin.Short" ) - fun kotlinFunctionToJavaEquivalent(f: IrFunction, noReplace: Boolean) = + private fun kotlinFunctionToJavaEquivalent(f: IrFunction, noReplace: Boolean) = if (noReplace) f else @@ -1346,14 +1346,14 @@ open class KotlinUsesExtractor( return "@\"typevar;{$parentLabel};${param.name}\"" } - fun useTypeParameter(param: IrTypeParameter) = + private fun useTypeParameter(param: IrTypeParameter) = TypeResult( tw.getLabelFor(getTypeParameterLabel(param)), useType(eraseTypeParameter(param)).javaResult.signature, param.name.asString() ) - fun extractModifier(m: String): Label { + private fun extractModifier(m: String): Label { val modifierLabel = "@\"modifier;$m\"" val id: Label = tw.getLabelFor(modifierLabel, { tw.writeModifiers(it, m) @@ -1435,7 +1435,7 @@ open class KotlinUsesExtractor( * Note that `Array` is retained (with `T` itself erased) because these are expected to be lowered to Java * arrays, which are not generic. */ - fun erase (t: IrType): IrType { + private fun erase (t: IrType): IrType { if (t is IrSimpleType) { val classifier = t.classifier val owner = classifier.owner @@ -1488,7 +1488,7 @@ open class KotlinUsesExtractor( fun useValueParameter(vp: IrValueParameter, parent: Label?): Label = tw.getLabelFor(getValueParameterLabel(vp, parent)) - fun isDirectlyExposedCompanionObjectField(f: IrField) = + private fun isDirectlyExposedCompanionObjectField(f: IrField) = f.hasAnnotation(FqName("kotlin.jvm.JvmField")) || f.correspondingPropertySymbol?.owner?.let { it.isConst || it.isLateinit diff --git a/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt b/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt index 6f3954cfc34..15ca35a1438 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt @@ -68,7 +68,7 @@ fun getIrClassVirtualFile(irClass: IrClass): VirtualFile? { return null } -fun getRawIrClassBinaryPath(irClass: IrClass) = +private fun getRawIrClassBinaryPath(irClass: IrClass) = getIrClassVirtualFile(irClass)?.let { val path = it.path if(it.fileSystem.protocol == StandardFileSystems.JRT_PROTOCOL) @@ -92,4 +92,4 @@ fun getContainingClassOrSelf(decl: IrDeclaration): IrClass? { } fun getJavaEquivalentClassId(c: IrClass) = - c.fqNameWhenAvailable?.toUnsafe()?.let { JavaToKotlinClassMap.mapKotlinToJava(it) } \ No newline at end of file + c.fqNameWhenAvailable?.toUnsafe()?.let { JavaToKotlinClassMap.mapKotlinToJava(it) } From 06060954ec6c7708e67db0ae44851c70f9caf5b6 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 27 Jun 2022 19:25:56 +0100 Subject: [PATCH 143/736] Kotlin: Extract inlineability of functions --- java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 29376368adc..f8b7ab35048 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -809,6 +809,9 @@ open class KotlinFileExtractor( } extractVisibility(f, id, f.visibility) + if (f.isInline) { + addModifiers(id, "inline") + } if (isStaticFunction(f)) { addModifiers(id, "static") } From 4a404aee76aa2f42feda2a7fa2734cccd76a791b Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 27 Jun 2022 19:27:26 +0100 Subject: [PATCH 144/736] Kotlin: Add inline info to methods test --- .../kotlin/library-tests/methods/exprs.expected | 1 + .../library-tests/methods/methods.expected | 17 +++++++++-------- .../kotlin/library-tests/methods/methods.kt | 1 + 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/java/ql/test/kotlin/library-tests/methods/exprs.expected b/java/ql/test/kotlin/library-tests/methods/exprs.expected index abad65d5f83..586df6856c8 100644 --- a/java/ql/test/kotlin/library-tests/methods/exprs.expected +++ b/java/ql/test/kotlin/library-tests/methods/exprs.expected @@ -205,3 +205,4 @@ | methods.kt:16:13:16:31 | Unit | TypeAccess | | methods.kt:17:14:17:33 | Unit | TypeAccess | | methods.kt:18:5:18:36 | Unit | TypeAccess | +| methods.kt:19:12:19:29 | Unit | TypeAccess | diff --git a/java/ql/test/kotlin/library-tests/methods/methods.expected b/java/ql/test/kotlin/library-tests/methods/methods.expected index 144e71e5d48..cb824d228dd 100644 --- a/java/ql/test/kotlin/library-tests/methods/methods.expected +++ b/java/ql/test/kotlin/library-tests/methods/methods.expected @@ -24,13 +24,14 @@ methods | methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | a | a(int) | public | | | methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | f1 | f1(foo.bar.C1,int) | public | | | methods.kt:0:0:0:0 | MethodsKt | methods.kt:2:1:3:1 | topLevelMethod | topLevelMethod(int,int) | public, static | | -| methods.kt:5:1:19:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | public | | -| methods.kt:5:1:19:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | public | | -| methods.kt:5:1:19:1 | Class | methods.kt:14:12:14:29 | publicFun | publicFun() | public | | -| methods.kt:5:1:19:1 | Class | methods.kt:15:15:15:35 | protectedFun | protectedFun() | protected | | -| methods.kt:5:1:19:1 | Class | methods.kt:16:13:16:31 | privateFun | privateFun() | private | | -| methods.kt:5:1:19:1 | Class | methods.kt:17:14:17:33 | internalFun | internalFun() | internal | | -| methods.kt:5:1:19:1 | Class | methods.kt:18:5:18:36 | noExplicitVisibilityFun | noExplicitVisibilityFun() | public | | +| methods.kt:5:1:20:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | public | | +| methods.kt:5:1:20:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | public | | +| methods.kt:5:1:20:1 | Class | methods.kt:14:12:14:29 | publicFun | publicFun() | public | | +| methods.kt:5:1:20:1 | Class | methods.kt:15:15:15:35 | protectedFun | protectedFun() | protected | | +| methods.kt:5:1:20:1 | Class | methods.kt:16:13:16:31 | privateFun | privateFun() | private | | +| methods.kt:5:1:20:1 | Class | methods.kt:17:14:17:33 | internalFun | internalFun() | internal | | +| methods.kt:5:1:20:1 | Class | methods.kt:18:5:18:36 | noExplicitVisibilityFun | noExplicitVisibilityFun() | public | | +| methods.kt:5:1:20:1 | Class | methods.kt:19:12:19:29 | inlineFun | inlineFun() | inline, public | | constructors | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:6:1:47 | DataClass | DataClass(int,java.lang.String) | | enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:1:6:4:1 | EnumClass | EnumClass(int) | @@ -41,7 +42,7 @@ constructors | methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | | | | methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | | | | methods5.kt:13:1:13:14 | C1 | methods5.kt:13:1:13:14 | C1 | C1() | -| methods.kt:5:1:19:1 | Class | methods.kt:5:1:19:1 | Class | Class() | +| methods.kt:5:1:20:1 | Class | methods.kt:5:1:20:1 | Class | Class() | extensions | methods3.kt:3:1:3:42 | fooBarTopLevelMethodExt | file://:0:0:0:0 | int | | methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | file://:0:0:0:0 | int | diff --git a/java/ql/test/kotlin/library-tests/methods/methods.kt b/java/ql/test/kotlin/library-tests/methods/methods.kt index b59937bc861..48f480f8748 100644 --- a/java/ql/test/kotlin/library-tests/methods/methods.kt +++ b/java/ql/test/kotlin/library-tests/methods/methods.kt @@ -16,5 +16,6 @@ class Class { private fun privateFun() {} internal fun internalFun() {} fun noExplicitVisibilityFun() {} + inline fun inlineFun() {} } From af672b48997fb9e2a3c7cc55d1ab2eb42b9111a8 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 27 Jun 2022 19:31:01 +0100 Subject: [PATCH 145/736] Kotlin: Add a changenote for Modifier.isInline() --- java/ql/lib/change-notes/2022-06-27-isInline.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2022-06-27-isInline.md diff --git a/java/ql/lib/change-notes/2022-06-27-isInline.md b/java/ql/lib/change-notes/2022-06-27-isInline.md new file mode 100644 index 00000000000..ad73ed8bf82 --- /dev/null +++ b/java/ql/lib/change-notes/2022-06-27-isInline.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +Added `Modifier.isInline()`. From 44e69e1c09d0911a157fcf146b009160c1e359dd Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 27 Jun 2022 19:33:08 +0100 Subject: [PATCH 146/736] Kotlin: Add Modifier.isInline() --- java/ql/lib/semmle/code/java/Modifier.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/ql/lib/semmle/code/java/Modifier.qll b/java/ql/lib/semmle/code/java/Modifier.qll index d3971e42e59..8f947383d1e 100755 --- a/java/ql/lib/semmle/code/java/Modifier.qll +++ b/java/ql/lib/semmle/code/java/Modifier.qll @@ -58,6 +58,9 @@ abstract class Modifiable extends Element { /** Holds if this element has an `internal` modifier. */ predicate isInternal() { this.hasModifier("internal") } + /** Holds if this element has an `inline` modifier. */ + predicate isInline() { this.hasModifier("inline") } + /** Holds if this element has a `volatile` modifier. */ predicate isVolatile() { this.hasModifier("volatile") } From 43bb439b8286cd76730764e367724ce2d2fe0287 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Mon, 27 Jun 2022 12:03:23 -0700 Subject: [PATCH 147/736] Add version info for running subset of queries --- .../codeql-cli/analyzing-databases-with-the-codeql-cli.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst index 6c7169634bb..e52cd53e2bd 100644 --- a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst +++ b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst @@ -138,7 +138,7 @@ For further information about default suites, see ":ref:`Publishing and using Co Running a subset of queries in a CodeQL pack ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Additionally, you can include a path at the end of a pack specification to run a subset of queries inside the pack. This applies to any command that locates or runs queries within a pack. +Additionally, CodeQL CLI v2.10.0 or later, you can include a path at the end of a pack specification to run a subset of queries inside the pack. This applies to any command that locates or runs queries within a pack. The complete way to specify a set of queries is in the form ``scope/name@range:path``, where: @@ -174,7 +174,7 @@ To analyze your database using the `cpp-security-and-quality.qls` query suite fr codeql database analyze --format=sarif-latest --output=results \ 'codeql/cpp-queries@~0.0.3:codeql-suites/cpp-security-and-quality.qls' - + For more information about CodeQL packs, see :doc:`About CodeQL Packs `. Running query suites @@ -263,7 +263,7 @@ you can include the query help for your custom queries in SARIF files generated After uploading the SARIF file to GitHub, the query help is shown in the code scanning UI for any alerts generated by the custom queries. -From CodeQL CLI 2.7.1 onwards, you can include markdown-rendered query help in SARIF files +From CodeQL CLI v2.7.1 onwards, you can include markdown-rendered query help in SARIF files by providing the ``--sarif-add-query-help`` option when running ``codeql database analyze``. For more information, see `Configuring CodeQL CLI in your CI system `__ From 829fdd1ff69b345a9963363eabf78a9594261f07 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Mon, 27 Jun 2022 15:28:14 -0400 Subject: [PATCH 148/736] C++: fix join order in UsingExpiredStackAddress --- .../Likely Bugs/Memory Management/UsingExpiredStackAddress.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Likely Bugs/Memory Management/UsingExpiredStackAddress.ql b/cpp/ql/src/Likely Bugs/Memory Management/UsingExpiredStackAddress.ql index 27aeabbaf49..3f3997315d4 100644 --- a/cpp/ql/src/Likely Bugs/Memory Management/UsingExpiredStackAddress.ql +++ b/cpp/ql/src/Likely Bugs/Memory Management/UsingExpiredStackAddress.ql @@ -133,7 +133,9 @@ TGlobalAddress globalAddress(Instruction instr) { ) or exists(FieldAddressInstruction fai | instr = fai | - result = TFieldAddress(globalAddress(fai.getObjectAddress()), fai.getField()) + result = + TFieldAddress(globalAddress(pragma[only_bind_into](fai.getObjectAddress())), + pragma[only_bind_out](fai.getField())) ) or result = globalAddress(instr.(PointerOffsetInstruction).getLeft()) From 8fc9ce96996067a9b4003452feda951a6cfb833f Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 27 Jun 2022 13:12:16 +0000 Subject: [PATCH 149/736] Python: Fix bad join in MRO Fixes a bad join in `list_of_linearization_of_bases_plus_bases`. Previvously, we joined together `ConsList` and `getBase` before filtering these out using the recursive call. Now we do the recursion first. Co-authored-by: yoff --- python/ql/lib/semmle/python/pointsto/MRO.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/pointsto/MRO.qll b/python/ql/lib/semmle/python/pointsto/MRO.qll index b1ea92b8c24..da9e610ab5d 100644 --- a/python/ql/lib/semmle/python/pointsto/MRO.qll +++ b/python/ql/lib/semmle/python/pointsto/MRO.qll @@ -419,7 +419,9 @@ private ClassListList list_of_linearization_of_bases_plus_bases(ClassObjectInter result = ConsList(bases(cls), EmptyList()) and n = Types::base_count(cls) and n > 1 or exists(ClassListList partial | - partial = list_of_linearization_of_bases_plus_bases(cls, n + 1) and + partial = + list_of_linearization_of_bases_plus_bases(pragma[only_bind_into](cls), + pragma[only_bind_into](n + 1)) and result = ConsList(Mro::newStyleMro(Types::getBase(cls, n)), partial) ) } From dc0f50d49afcb5cde41e61e92ffcda2f7e5ac63b Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 27 Jun 2022 13:14:35 +0000 Subject: [PATCH 150/736] Python: Clean up variable names Makes it more consistent with the names used in `legalMergeCandidateNonEmpty`. --- python/ql/lib/semmle/python/pointsto/MRO.qll | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/ql/lib/semmle/python/pointsto/MRO.qll b/python/ql/lib/semmle/python/pointsto/MRO.qll index da9e610ab5d..e7248c18c06 100644 --- a/python/ql/lib/semmle/python/pointsto/MRO.qll +++ b/python/ql/lib/semmle/python/pointsto/MRO.qll @@ -344,12 +344,12 @@ private class ClassListList extends TClassListList { ) } - private predicate legalMergeCandidate(ClassObjectInternal cls, ClassListList remaining) { - cls = this.getAHead() and remaining = this + private predicate legalMergeCandidate(ClassObjectInternal cls, ClassListList remainingList) { + cls = this.getAHead() and remainingList = this or - this.legalMergeCandidate(cls, ConsList(Empty(), remaining)) + this.legalMergeCandidate(cls, ConsList(Empty(), remainingList)) or - this.legalMergeCandidateNonEmpty(cls, remaining, Empty()) + this.legalMergeCandidateNonEmpty(cls, remainingList, Empty()) } pragma[noinline] From 882000afb3017fcc2814c3dfaa0aa9cd88bdc83e Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 16 Jun 2022 11:47:34 +0200 Subject: [PATCH 151/736] python: `not` is confusing our logic - added `is_unsafe` - added "negated version" of two tests. These versions do not use `not` and the analysis gets the taint right. --- .../customSanitizer/InlineTaintTest.expected | 16 ++++++------ .../customSanitizer/InlineTaintTest.ql | 8 ++++++ .../customSanitizer/test_logical.py | 25 +++++++++++++++++++ 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected index c8c41375538..6e67de96c62 100644 --- a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected +++ b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected @@ -6,12 +6,14 @@ isSanitizer | TestTaintTrackingConfiguration | test.py:34:39:34:39 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test.py:52:28:52:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test.py:66:10:66:29 | ControlFlowNode for emulated_escaping() | -| TestTaintTrackingConfiguration | test_logical.py:30:28:30:28 | ControlFlowNode for s | -| TestTaintTrackingConfiguration | test_logical.py:45:28:45:28 | ControlFlowNode for s | -| TestTaintTrackingConfiguration | test_logical.py:50:28:50:28 | ControlFlowNode for s | -| TestTaintTrackingConfiguration | test_logical.py:89:28:89:28 | ControlFlowNode for s | -| TestTaintTrackingConfiguration | test_logical.py:100:28:100:28 | ControlFlowNode for s | -| TestTaintTrackingConfiguration | test_logical.py:145:28:145:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:33:28:33:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:48:28:48:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:53:28:53:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:92:28:92:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:103:28:103:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:148:28:148:28 | ControlFlowNode for s | -| TestTaintTrackingConfiguration | test_logical.py:155:28:155:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:151:28:151:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:158:28:158:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:176:24:176:24 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:193:24:193:24 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_reference.py:31:28:31:28 | ControlFlowNode for s | diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.ql b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.ql index c68bd2d274d..984cf74d036 100644 --- a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.ql +++ b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.ql @@ -6,6 +6,12 @@ predicate isSafeCheck(DataFlow::GuardNode g, ControlFlowNode node, boolean branc branch = true } +predicate isUnsafeCheck(DataFlow::GuardNode g, ControlFlowNode node, boolean branch) { + g.(CallNode).getNode().getFunc().(Name).getId() in ["is_unsafe", "emulated_is_unsafe"] and + node = g.(CallNode).getAnArg() and + branch = false +} + class CustomSanitizerOverrides extends TestTaintTrackingConfiguration { override predicate isSanitizer(DataFlow::Node node) { exists(Call call | @@ -16,6 +22,8 @@ class CustomSanitizerOverrides extends TestTaintTrackingConfiguration { node.asExpr().(Call).getFunc().(Name).getId() = "emulated_escaping" or node = DataFlow::BarrierGuard::getABarrierNode() + or + node = DataFlow::BarrierGuard::getABarrierNode() } } diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py index a879c3c332c..dc2cc7a5522 100644 --- a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py +++ b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py @@ -22,6 +22,9 @@ def random_choice(): def is_safe(arg): return arg == "safe" +def is_unsafe(arg): + return arg == TAINTED_STRING + def test_basic(): s = TAINTED_STRING @@ -164,6 +167,15 @@ def test_with_return(): ensure_not_tainted(s) # $ SPURIOUS: tainted +def test_with_return_neg(): + s = TAINTED_STRING + + if is_unsafe(s): + return + + ensure_not_tainted(s) + + def test_with_exception(): s = TAINTED_STRING @@ -172,6 +184,14 @@ def test_with_exception(): ensure_not_tainted(s) # $ SPURIOUS: tainted +def test_with_exception_neg(): + s = TAINTED_STRING + + if is_unsafe(s): + raise Exception("unsafe") + + ensure_not_tainted(s) + # Make tests runable test_basic() @@ -182,7 +202,12 @@ test_tricky() test_nesting_not() test_nesting_not_with_and_true() test_with_return() +test_with_return_neg() try: test_with_exception() except: pass +try: + test_with_exception_neg() +except: + pass From a1fe8a5b2b2d9967c47f3c86db3ce430cc8b6605 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Thu, 16 Jun 2022 13:53:05 +0200 Subject: [PATCH 152/736] python: handle `not` in BarrierGuard in the program ```python if not is_safe(path): return ``` the last node in the `ConditionBlock` is `not is_safe(path)`, so it would never match "a call to is_safe". Thus, guards inside `not` would not be part of `GuardNode` (nor `BarrierGuard`). Now they can. --- .../dataflow/new/internal/DataFlowPublic.qll | 20 +++++++++++++++++-- .../test_string_const_compare.py | 4 ++-- .../customSanitizer/InlineTaintTest.expected | 6 ++++++ .../customSanitizer/test_logical.py | 12 +++++------ 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll index 406f1fb6b12..3ab007b3657 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll @@ -527,16 +527,32 @@ class StarPatternElementNode extends Node, TStarPatternElementNode { override Location getLocation() { result = consumer.getLocation() } } +ControlFlowNode guardNode(ConditionBlock conditionBlock, boolean flipped) { + result = conditionBlock.getLastNode() and + flipped = false + or + exists(UnaryExprNode notNode | + result = notNode.getOperand() and + notNode.getNode().getOp() instanceof Not + | + notNode = guardNode(conditionBlock, flipped.booleanNot()) + ) +} + /** * A node that controls whether other nodes are evaluated. */ class GuardNode extends ControlFlowNode { ConditionBlock conditionBlock; + boolean flipped; - GuardNode() { this = conditionBlock.getLastNode() } + GuardNode() { this = guardNode(conditionBlock, flipped) } /** Holds if this guard controls block `b` upon evaluating to `branch`. */ - predicate controlsBlock(BasicBlock b, boolean branch) { conditionBlock.controls(b, branch) } + predicate controlsBlock(BasicBlock b, boolean branch) { + branch in [true, false] and + conditionBlock.controls(b, branch.booleanXor(flipped)) + } } /** diff --git a/python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/test_string_const_compare.py b/python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/test_string_const_compare.py index 2fc809cf18f..f1b01f4f84a 100644 --- a/python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/test_string_const_compare.py +++ b/python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/test_string_const_compare.py @@ -50,7 +50,7 @@ def test_non_eq2(): if not ts == "safe": ensure_tainted(ts) # $ tainted else: - ensure_not_tainted(ts) # $ SPURIOUS: tainted + ensure_not_tainted(ts) def test_in_list(): @@ -157,7 +157,7 @@ def test_not_in2(): if not ts in ["safe", "also_safe"]: ensure_tainted(ts) # $ tainted else: - ensure_not_tainted(ts) # $ SPURIOUS: tainted + ensure_not_tainted(ts) def is_safe(x): diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected index 6e67de96c62..fdad063534b 100644 --- a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected +++ b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected @@ -7,13 +7,19 @@ isSanitizer | TestTaintTrackingConfiguration | test.py:52:28:52:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test.py:66:10:66:29 | ControlFlowNode for emulated_escaping() | | TestTaintTrackingConfiguration | test_logical.py:33:28:33:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:40:28:40:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:48:28:48:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:53:28:53:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:92:28:92:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:103:28:103:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:111:28:111:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:130:28:130:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:137:28:137:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:148:28:148:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:151:28:151:28 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:158:28:158:28 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:167:24:167:24 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:176:24:176:24 | ControlFlowNode for s | +| TestTaintTrackingConfiguration | test_logical.py:185:24:185:24 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_logical.py:193:24:193:24 | ControlFlowNode for s | | TestTaintTrackingConfiguration | test_reference.py:31:28:31:28 | ControlFlowNode for s | diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py index dc2cc7a5522..26e69b8fc05 100644 --- a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py +++ b/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py @@ -37,7 +37,7 @@ def test_basic(): if not is_safe(s): ensure_tainted(s) # $ tainted else: - ensure_not_tainted(s) # $ SPURIOUS: tainted + ensure_not_tainted(s) def test_if_in_depth(): @@ -108,7 +108,7 @@ def test_and(): ensure_tainted(s) # $ tainted else: # cannot be tainted - ensure_not_tainted(s) # $ SPURIOUS: tainted + ensure_not_tainted(s) def test_tricky(): @@ -127,14 +127,14 @@ def test_nesting_not(): s = TAINTED_STRING if not(not(is_safe(s))): - ensure_not_tainted(s) # $ SPURIOUS: tainted + ensure_not_tainted(s) else: ensure_tainted(s) # $ tainted if not(not(not(is_safe(s)))): ensure_tainted(s) # $ tainted else: - ensure_not_tainted(s) # $ SPURIOUS: tainted + ensure_not_tainted(s) # Adding `and True` makes the sanitizer trigger when it would otherwise not. See output in @@ -164,7 +164,7 @@ def test_with_return(): if not is_safe(s): return - ensure_not_tainted(s) # $ SPURIOUS: tainted + ensure_not_tainted(s) def test_with_return_neg(): @@ -182,7 +182,7 @@ def test_with_exception(): if not is_safe(s): raise Exception("unsafe") - ensure_not_tainted(s) # $ SPURIOUS: tainted + ensure_not_tainted(s) def test_with_exception_neg(): s = TAINTED_STRING From 1788507571971a084b6d518033805e2182002a1d Mon Sep 17 00:00:00 2001 From: yoff Date: Mon, 27 Jun 2022 21:00:12 +0000 Subject: [PATCH 153/736] python: add qldoc --- .../dataflow/new/internal/DataFlowPublic.qll | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll index 3ab007b3657..8ab76dc56df 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll @@ -527,10 +527,30 @@ class StarPatternElementNode extends Node, TStarPatternElementNode { override Location getLocation() { result = consumer.getLocation() } } +/** + * Gets a node that controls whether other nodes are evaluated. + * + * In the base case, this is the last node of `conditionBlock`, and `flipped` is `false`. + * This definition accounts for (short circuting) `and`- and `or`-expressions, as the structure + * of basic blocks will reflect their semantics. + * + * However, in the program + * ```python + * if not is_safe(path): + * return + * ``` + * the last node in the `ConditionBlock` is `not is_safe(path)`. + * + * We would like to consider also `is_safe(path)` a guard node, albeit with `flipped` being `true`. + * Thus we recurse through `not`-expressions. + */ ControlFlowNode guardNode(ConditionBlock conditionBlock, boolean flipped) { + // Base case: the last node truly does determine which successor is chosen result = conditionBlock.getLastNode() and flipped = false or + // Recursive case: if a guard node is a `not`-expression, + // the operand is also a guard node, but with inverted polarity. exists(UnaryExprNode notNode | result = notNode.getOperand() and notNode.getNode().getOp() instanceof Not @@ -541,6 +561,9 @@ ControlFlowNode guardNode(ConditionBlock conditionBlock, boolean flipped) { /** * A node that controls whether other nodes are evaluated. + * + * The field `flipped` allows us to match `GuardNode`s underneath + * `not`-expressions and still choose the appropriate branch. */ class GuardNode extends ControlFlowNode { ConditionBlock conditionBlock; From 67b6f215dc0b315a5d5ee6021943dc6ecc98664e Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 28 Jun 2022 08:05:53 +0200 Subject: [PATCH 154/736] Apply suggestions from code review Co-authored-by: Rasmus Wriedt Larsen --- .../python/security/dataflow/TarSlipCustomizations.qll | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll index 8795bd31c27..db062a23088 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll @@ -112,8 +112,9 @@ module TarSlip { /** * A sanitizer guard heuristic. * - * For a "check-like function-name" (matching `"%path"`), `checkPath`, - * and a call `checkPath(info.name)`, the variable `info` is considered checked. + * The test `if (info.name)` should clear taint for `info`, + * where `` is any function matching `"%path"`. + * `info` is assumed to be a `TarInfo` instance. */ class TarFileInfoSanitizer extends SanitizerGuard { ControlFlowNode tarInfo; From 9b27a7cbcdf2590d2ad17aae66e1414e1806a1c4 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 09:28:26 +0200 Subject: [PATCH 155/736] Python: Dont claim that external libraries are excluded from the database --- python/ql/lib/semmle/python/ApiGraphs.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index 65fffc9aee1..c3aa91b4213 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -48,8 +48,8 @@ module API { * (The current codebase "defines" the value seen by the library). * * API graph nodes are associated with data-flow nodes in the current codebase. - * (Since external libraries are not part of the database, there is no way to associate with concrete - * data-flow nodes from the external library). + * (API graphs are designed to work when external libraries are not part of the database, + * so we do not associate with concrete data-flow nodes from the external library). * - **Use-nodes** are associated with data-flow nodes where a value enters the current codebase, * such as the return value of a call to an external function. * - **Def-nodes** are associated with data-flow nodes where a value leaves the current codebase, From a033338d20edb3a4458181badf014c87939b74ab Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 09:46:26 +0200 Subject: [PATCH 156/736] Python: Explicitly mention lack of transitive flow in asSource/asSink --- python/ql/lib/semmle/python/ApiGraphs.qll | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index c3aa91b4213..a17f93b96d5 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -121,6 +121,9 @@ module API { * obj.prop = x * foo.bar(obj); * ``` + * + * This predicate does not include nodes transitively reaching the sink by data flow; + * use `getAValueReachingSink` for that. */ DataFlow::Node asSink() { Impl::rhs(this, result) } @@ -146,6 +149,9 @@ module API { * # API::moduleImport("re").getMember("escape").getReturn().asSource() * re.escape() * ``` + * + * This predicate does not include nodes transitively reachable by data flow; + * use `getAValueReachableFromSource` for that. */ DataFlow::LocalSourceNode asSource() { Impl::use(this, result) } From 4c73ab2679c442bd6eb8db66e8063e53f5ec52fb Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 09:48:53 +0200 Subject: [PATCH 157/736] Apply suggestions from code review Co-authored-by: Taus --- python/ql/lib/semmle/python/ApiGraphs.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index a17f93b96d5..cf4e4fb3cd5 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -32,7 +32,7 @@ module API { * 2. Follow up with a chain of accessors such as `getMember` describing how to get to the relevant API function. * 3. Map the resulting API graph nodes to data-flow nodes, using `asSource` or `asSink`. * - * For example, a simplified way to get arguments to `json.dumps` would be + * For example, a simplified way to get the first argument of a call to `json.dumps` would be * ```ql * API::moduleImport("json").getMember("dumps").getParameter(0).asSink() * ``` @@ -108,7 +108,7 @@ module API { * external library (or in general, any external codebase). * * Concretely, this is either an argument passed to a call to external code, - * or the right-hand side of a property write on an object flowing into such a call. + * or the right-hand side of an attribute write on an object flowing into such a call. * * For example: * ```python From b1251f0c6357db5c2eedbf09f2cf4574173612a8 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 10:07:57 +0200 Subject: [PATCH 158/736] JS: invertCase -> toOtherCase --- .../ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql index 8aca0553c00..a497f03f076 100644 --- a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql +++ b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql @@ -16,7 +16,7 @@ import javascript * Converts `s` to upper case, or to lower-case if it was already upper case. */ bindingset[s] -string invertCase(string s) { +string toOtherCase(string s) { if s.regexpMatch(".*[a-z].*") then result = s.toUpperCase() else result = s.toLowerCase() } @@ -35,7 +35,7 @@ predicate isCaseSensitiveRegExp(RegExpTerm term) { const = term.getAChild*() and const.getValue().regexpMatch(".*[a-zA-Z].*") and not getEnclosingClass(const).getAChild().(RegExpConstant).getValue() = - invertCase(const.getValue()) and + toOtherCase(const.getValue()) and not const.getParent*() instanceof RegExpNegativeLookahead and not const.getParent*() instanceof RegExpNegativeLookbehind ) @@ -67,7 +67,7 @@ string getExampleString(RegExpTerm term) { string getCaseSensitiveBypassExample(RegExpTerm term) { exists(string example | example = getExampleString(term) and - result = invertCase(example) and + result = toOtherCase(example) and result != example // getting an example string is approximate; ensure we got a proper case-change example ) } From 9cf48fc8042b6a5c4b9a3befc4956994dc875c27 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 10:09:56 +0200 Subject: [PATCH 159/736] JS: Clarify that strings are case insensitive by default --- .../ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp | 1 + 1 file changed, 1 insertion(+) diff --git a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp index bc91fcf9be0..7acfb8c95da 100644 --- a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp +++ b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp @@ -7,6 +7,7 @@

    Using a case-sensitive regular expression path in a middleware route enables an attacker to bypass that middleware when accessing an endpoint with a case-insensitive path. +Paths specified using a string are case insensitive, whereas regular expressions are case sensitive by default.

    From fd283970562191a1561d9c93c026850ccad35baf Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 10:10:23 +0200 Subject: [PATCH 160/736] JS: Fix typo --- .../ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp index 7acfb8c95da..13e2331bc62 100644 --- a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp +++ b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp @@ -13,7 +13,7 @@ Paths specified using a string are case insensitive, whereas regular expressions

    -When using a regular expression as a middlware path, make sure the regular expression is +When using a regular expression as a middleware path, make sure the regular expression is case insensitive by adding the i flag.

    From 0e04f2b2e8322e240bfe0ebdfedce69ad97d6818 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 13 May 2022 11:36:43 +0100 Subject: [PATCH 161/736] Add external storage souces --- .../code/java/dataflow/ExternalFlow.qll | 1 + .../semmle/code/java/dataflow/FlowSources.qll | 7 +++ .../frameworks/android/ExternalStorage.qll | 46 +++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index db1b5a61ef6..f518dbd2802 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -84,6 +84,7 @@ private module Frameworks { private import internal.ContainerFlow private import semmle.code.java.frameworks.android.Android private import semmle.code.java.frameworks.android.ContentProviders + private import semmle.code.java.frameworks.android.ExternalStorage private import semmle.code.java.frameworks.android.Intent private import semmle.code.java.frameworks.android.Notifications private import semmle.code.java.frameworks.android.SharedPreferences diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll index 2c44d7a15b6..fcd4fe90b6d 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll @@ -17,6 +17,7 @@ import semmle.code.java.frameworks.android.WebView import semmle.code.java.frameworks.JaxWS import semmle.code.java.frameworks.javase.WebSocket import semmle.code.java.frameworks.android.Android +import semmle.code.java.frameworks.android.ExternalStorage import semmle.code.java.frameworks.android.OnActivityResultSource import semmle.code.java.frameworks.android.Intent import semmle.code.java.frameworks.play.Play @@ -152,6 +153,12 @@ private class ThriftIfaceParameterSource extends RemoteFlowSource { override string getSourceType() { result = "Thrift Iface parameter" } } +private class AndroidExternalStorageSource extends RemoteFlowSource { + AndroidExternalStorageSource() { androidExternalStorageSource(this) } + + override string getSourceType() { result = "Android external storage" } +} + /** Class for `tainted` user input. */ abstract class UserInput extends DataFlow::Node { } diff --git a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll new file mode 100644 index 00000000000..60214f8861a --- /dev/null +++ b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll @@ -0,0 +1,46 @@ +/** Provides definitions for working with uses of Android external storage */ + +import java +import semmle.code.java.dataflow.DataFlow +private import semmle.code.java.dataflow.ExternalFlow + +private class ExternalStorageDirSourceModel extends SourceModelCsv { + override predicate row(string row) { + row = + [ + //"package;type;overrides;name;signature;ext;spec;kind" + "android.content;Context;true;getExternalFilesDir;(String);;ReturnValue;android-external-storage-dir", + "android.content;Context;true;getExternalFilesDirs;(String);;ReturnValue.ArrayElement;android-external-storage-dir", + "android.content;Context;true;getExternalCachesDir;(String);;ReturnValue;android-external-storage-dir", + "android.content;Context;true;getExternalCachesDirs;(String);;ReturnValue.ArrayElement;android-external-storage-dir", + "android.os;Environment;false;getExternalStorageDirectory;(String);;ReturnValue.ArrayElement;android-external-storage-dir", + "android.os;Environment;false;getExternalStoragePublicDirectory;(String);;ReturnValue.ArrayElement;android-external-storage-dir", + ] + } +} + +private predicate externalStorageFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + DataFlow::localFlowStep(node1, node2) + or + exists(ConstructorCall c | c.getConstructedType() instanceof TypeFile | + node1.asExpr() = c.getArgument(1) and + node2.asExpr() = c + ) +} + +private predicate externalStorageFlow(DataFlow::Node node1, DataFlow::Node node2) { + externalStorageFlowStep*(node1, node2) +} + +/** + * Holds if `n` is a node that reads the contents of an external file in Android. + * This may be controlable by third-party applications, so is treated as a remote flow source. + */ +predicate androidExternalStorageSource(DataFlow::Node n) { + exists(ConstructorCall fInp, DataFlow::Node externalDir | + fInp.getConstructedType().hasQualifiedName("java.io", "FileInputStream") and + n.asExpr() = fInp and + sourceNode(externalDir, "android-external-storage-dir") and + externalStorageFlow(externalDir, DataFlow::exprNode(fInp.getArgument(0))) + ) +} From 810854d6b529abd031253df0688fa147fe791e8c Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 17 May 2022 18:25:43 +0100 Subject: [PATCH 162/736] Add tests --- .../frameworks/android/ExternalStorage.qll | 2 +- .../android/external-storage/Test.java | 51 +++++++++++++++++++ .../android/external-storage/options | 1 + .../android/external-storage/test.expected | 0 .../android/external-storage/test.ql | 20 ++++++++ .../android/os/Environment.java | 50 ++++++++++++++++++ 6 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 java/ql/test/library-tests/frameworks/android/external-storage/Test.java create mode 100644 java/ql/test/library-tests/frameworks/android/external-storage/options create mode 100644 java/ql/test/library-tests/frameworks/android/external-storage/test.expected create mode 100644 java/ql/test/library-tests/frameworks/android/external-storage/test.ql create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/os/Environment.java diff --git a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll index 60214f8861a..b52fad076ed 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll @@ -34,7 +34,7 @@ private predicate externalStorageFlow(DataFlow::Node node1, DataFlow::Node node2 /** * Holds if `n` is a node that reads the contents of an external file in Android. - * This may be controlable by third-party applications, so is treated as a remote flow source. + * This is controlable by third-party applications, so is treated as a remote flow source. */ predicate androidExternalStorageSource(DataFlow::Node n) { exists(ConstructorCall fInp, DataFlow::Node externalDir | diff --git a/java/ql/test/library-tests/frameworks/android/external-storage/Test.java b/java/ql/test/library-tests/frameworks/android/external-storage/Test.java new file mode 100644 index 00000000000..92eb50368ae --- /dev/null +++ b/java/ql/test/library-tests/frameworks/android/external-storage/Test.java @@ -0,0 +1,51 @@ +import java.io.File; +import java.io.InputStream; +import java.io.FileInputStream; +import java.io.IOException; +import android.content.Context; +import android.os.Environment; + +class Test { + void sink(Object o) {} + + void test1(Context ctx) throws IOException { + File f = new File(ctx.getExternalFilesDir(null), "file.txt"); + InputStream is = new FileInputStream(f); + byte[] data = new byte[is.available()]; + is.read(data); + sink(data); // $hasTaintFlow + is.close(); + } + + void test2(Context ctx) throws IOException { + File f = new File(new File(new File(ctx.getExternalFilesDirs(null)[0], "things"), "stuff"), "file.txt"); + sink(new FileInputStream(f)); // $hasTaintFlow + } + + void test3(Context ctx) throws IOException { + File f = new File(ctx.getExternalCacheDir(), "file.txt"); + sink(new FileInputStream(f)); // $hasTaintFlow + } + + void test4(Context ctx) throws IOException { + File f = new File(ctx.getExternalCacheDirs()[0], "file.txt"); + sink(new FileInputStream(f)); // $hasTaintFlow + } + + void test5(Context ctx) throws IOException { + File f = new File(Environment.getExternalStorageDirectory(), "file.txt"); + sink(new FileInputStream(f)); // $hasTaintFlow + } + + void test6(Context ctx) throws IOException { + File f = new File(Environment.getExternalStoragePublicDirectory(null), "file.txt"); + sink(new FileInputStream(f)); // $hasTaintFlow + } + + static final File dir = Environment.getExternalStorageDirectory(); + + void test7(Context ctx) throws IOException { + File f = new File(dir, "file.txt"); + sink(new FileInputStream(f)); // $hasTaintFlow + } + } \ No newline at end of file diff --git a/java/ql/test/library-tests/frameworks/android/external-storage/options b/java/ql/test/library-tests/frameworks/android/external-storage/options new file mode 100644 index 00000000000..33cdc1ea940 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/android/external-storage/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/google-android-9.0.0 diff --git a/java/ql/test/library-tests/frameworks/android/external-storage/test.expected b/java/ql/test/library-tests/frameworks/android/external-storage/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/frameworks/android/external-storage/test.ql b/java/ql/test/library-tests/frameworks/android/external-storage/test.ql new file mode 100644 index 00000000000..03509c2d46d --- /dev/null +++ b/java/ql/test/library-tests/frameworks/android/external-storage/test.ql @@ -0,0 +1,20 @@ +import java +import semmle.code.java.dataflow.DataFlow +import semmle.code.java.dataflow.FlowSources +import TestUtilities.InlineFlowTest + +class Conf extends TaintTracking::Configuration { + Conf() { this = "test:AndroidExternalFlowConf" } + + override predicate isSource(DataFlow::Node src) { src instanceof RemoteFlowSource } + + override predicate isSink(DataFlow::Node sink) { + sink.asExpr().(Argument).getCall().getCallee().hasName("sink") + } +} + +class ExternalStorageTest extends InlineFlowTest { + override DataFlow::Configuration getValueFlowConfig() { none() } + + override DataFlow::Configuration getTaintFlowConfig() { result instanceof Conf } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/os/Environment.java b/java/ql/test/stubs/google-android-9.0.0/android/os/Environment.java new file mode 100644 index 00000000000..1d7b49061e7 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/os/Environment.java @@ -0,0 +1,50 @@ +// Generated automatically from android.os.Environment for testing purposes + +package android.os; + +import java.io.File; + +public class Environment +{ + public Environment(){} + public static File getDataDirectory(){ return null; } + public static File getDownloadCacheDirectory(){ return null; } + public static File getExternalStorageDirectory(){ return null; } + public static File getExternalStoragePublicDirectory(String p0){ return null; } + public static File getRootDirectory(){ return null; } + public static File getStorageDirectory(){ return null; } + public static String DIRECTORY_ALARMS = null; + public static String DIRECTORY_AUDIOBOOKS = null; + public static String DIRECTORY_DCIM = null; + public static String DIRECTORY_DOCUMENTS = null; + public static String DIRECTORY_DOWNLOADS = null; + public static String DIRECTORY_MOVIES = null; + public static String DIRECTORY_MUSIC = null; + public static String DIRECTORY_NOTIFICATIONS = null; + public static String DIRECTORY_PICTURES = null; + public static String DIRECTORY_PODCASTS = null; + public static String DIRECTORY_RINGTONES = null; + public static String DIRECTORY_SCREENSHOTS = null; + public static String MEDIA_BAD_REMOVAL = null; + public static String MEDIA_CHECKING = null; + public static String MEDIA_EJECTING = null; + public static String MEDIA_MOUNTED = null; + public static String MEDIA_MOUNTED_READ_ONLY = null; + public static String MEDIA_NOFS = null; + public static String MEDIA_REMOVED = null; + public static String MEDIA_SHARED = null; + public static String MEDIA_UNKNOWN = null; + public static String MEDIA_UNMOUNTABLE = null; + public static String MEDIA_UNMOUNTED = null; + public static String getExternalStorageState(){ return null; } + public static String getExternalStorageState(File p0){ return null; } + public static String getStorageState(File p0){ return null; } + public static boolean isExternalStorageEmulated(){ return false; } + public static boolean isExternalStorageEmulated(File p0){ return false; } + public static boolean isExternalStorageLegacy(){ return false; } + public static boolean isExternalStorageLegacy(File p0){ return false; } + public static boolean isExternalStorageManager(){ return false; } + public static boolean isExternalStorageManager(File p0){ return false; } + public static boolean isExternalStorageRemovable(){ return false; } + public static boolean isExternalStorageRemovable(File p0){ return false; } +} From cb717a22bf981f59a518b6f73f83a5677abdcad9 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 18 May 2022 17:49:38 +0100 Subject: [PATCH 163/736] Fix failing test cases --- .../frameworks/android/ExternalStorage.qll | 18 +++++++++++------- .../android/external-storage/Test.java | 14 +++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll index b52fad076ed..8fa914d6dfc 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll @@ -1,7 +1,7 @@ /** Provides definitions for working with uses of Android external storage */ import java -import semmle.code.java.dataflow.DataFlow +private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.dataflow.ExternalFlow private class ExternalStorageDirSourceModel extends SourceModelCsv { @@ -10,11 +10,11 @@ private class ExternalStorageDirSourceModel extends SourceModelCsv { [ //"package;type;overrides;name;signature;ext;spec;kind" "android.content;Context;true;getExternalFilesDir;(String);;ReturnValue;android-external-storage-dir", - "android.content;Context;true;getExternalFilesDirs;(String);;ReturnValue.ArrayElement;android-external-storage-dir", - "android.content;Context;true;getExternalCachesDir;(String);;ReturnValue;android-external-storage-dir", - "android.content;Context;true;getExternalCachesDirs;(String);;ReturnValue.ArrayElement;android-external-storage-dir", - "android.os;Environment;false;getExternalStorageDirectory;(String);;ReturnValue.ArrayElement;android-external-storage-dir", - "android.os;Environment;false;getExternalStoragePublicDirectory;(String);;ReturnValue.ArrayElement;android-external-storage-dir", + "android.content;Context;true;getExternalFilesDirs;(String);;ReturnValue;android-external-storage-dir", + "android.content;Context;true;getExternalCacheDir;();;ReturnValue;android-external-storage-dir", + "android.content;Context;true;getExternalCacheDirs;();;ReturnValue;android-external-storage-dir", + "android.os;Environment;false;getExternalStorageDirectory;();;ReturnValue;android-external-storage-dir", + "android.os;Environment;false;getExternalStoragePublicDirectory;(String);;ReturnValue;android-external-storage-dir", ] } } @@ -23,9 +23,13 @@ private predicate externalStorageFlowStep(DataFlow::Node node1, DataFlow::Node n DataFlow::localFlowStep(node1, node2) or exists(ConstructorCall c | c.getConstructedType() instanceof TypeFile | - node1.asExpr() = c.getArgument(1) and + node1.asExpr() = c.getArgument(0) and node2.asExpr() = c ) + or + node2.asExpr().(ArrayAccess).getArray() = node1.asExpr() + or + node2.asExpr().(FieldRead).getField().getInitializer() = node1.asExpr() } private predicate externalStorageFlow(DataFlow::Node node1, DataFlow::Node node2) { diff --git a/java/ql/test/library-tests/frameworks/android/external-storage/Test.java b/java/ql/test/library-tests/frameworks/android/external-storage/Test.java index 92eb50368ae..0955abc4828 100644 --- a/java/ql/test/library-tests/frameworks/android/external-storage/Test.java +++ b/java/ql/test/library-tests/frameworks/android/external-storage/Test.java @@ -13,39 +13,39 @@ class Test { InputStream is = new FileInputStream(f); byte[] data = new byte[is.available()]; is.read(data); - sink(data); // $hasTaintFlow + sink(data); // $ hasTaintFlow is.close(); } void test2(Context ctx) throws IOException { File f = new File(new File(new File(ctx.getExternalFilesDirs(null)[0], "things"), "stuff"), "file.txt"); - sink(new FileInputStream(f)); // $hasTaintFlow + sink(new FileInputStream(f)); // $ hasTaintFlow } void test3(Context ctx) throws IOException { File f = new File(ctx.getExternalCacheDir(), "file.txt"); - sink(new FileInputStream(f)); // $hasTaintFlow + sink(new FileInputStream(f)); // $ hasTaintFlow } void test4(Context ctx) throws IOException { File f = new File(ctx.getExternalCacheDirs()[0], "file.txt"); - sink(new FileInputStream(f)); // $hasTaintFlow + sink(new FileInputStream(f)); // $ hasTaintFlow } void test5(Context ctx) throws IOException { File f = new File(Environment.getExternalStorageDirectory(), "file.txt"); - sink(new FileInputStream(f)); // $hasTaintFlow + sink(new FileInputStream(f)); // $ hasTaintFlow } void test6(Context ctx) throws IOException { File f = new File(Environment.getExternalStoragePublicDirectory(null), "file.txt"); - sink(new FileInputStream(f)); // $hasTaintFlow + sink(new FileInputStream(f)); // $ hasTaintFlow } static final File dir = Environment.getExternalStorageDirectory(); void test7(Context ctx) throws IOException { File f = new File(dir, "file.txt"); - sink(new FileInputStream(f)); // $hasTaintFlow + sink(new FileInputStream(f)); // $ hasTaintFlow } } \ No newline at end of file From 58fba206899202d17980b3c18184d273e9fa5455 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 18 May 2022 17:59:01 +0100 Subject: [PATCH 164/736] Add change note --- .../lib/change-notes/2022-05-18-android-external-storage.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2022-05-18-android-external-storage.md diff --git a/java/ql/lib/change-notes/2022-05-18-android-external-storage.md b/java/ql/lib/change-notes/2022-05-18-android-external-storage.md new file mode 100644 index 00000000000..b3d5fa793b3 --- /dev/null +++ b/java/ql/lib/change-notes/2022-05-18-android-external-storage.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +Added additional flow sources for uses of external storage on Android. \ No newline at end of file From a41f28ebe5902a656050753fa6ecb3f89da70da2 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 20 May 2022 16:27:45 +0100 Subject: [PATCH 165/736] Use more file openning methods --- .../frameworks/android/ExternalStorage.qll | 8 +++---- .../code/java/security/FileReadWrite.qll | 23 +++++++++++++++++-- .../android/external-storage/Test.java | 8 +++++++ 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll index 8fa914d6dfc..dd1c680641d 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll @@ -1,6 +1,7 @@ /** Provides definitions for working with uses of Android external storage */ import java +private import semmle.code.java.security.FileReadWrite private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.dataflow.ExternalFlow @@ -41,10 +42,9 @@ private predicate externalStorageFlow(DataFlow::Node node1, DataFlow::Node node2 * This is controlable by third-party applications, so is treated as a remote flow source. */ predicate androidExternalStorageSource(DataFlow::Node n) { - exists(ConstructorCall fInp, DataFlow::Node externalDir | - fInp.getConstructedType().hasQualifiedName("java.io", "FileInputStream") and - n.asExpr() = fInp and + exists(DataFlow::Node externalDir, DirectFileReadExpr read | sourceNode(externalDir, "android-external-storage-dir") and - externalStorageFlow(externalDir, DataFlow::exprNode(fInp.getArgument(0))) + n.asExpr() = read and + externalStorageFlow(externalDir, DataFlow::exprNode(read.getFileExpr())) ) } diff --git a/java/ql/lib/semmle/code/java/security/FileReadWrite.qll b/java/ql/lib/semmle/code/java/security/FileReadWrite.qll index e79f98bdca4..bcb2c378902 100644 --- a/java/ql/lib/semmle/code/java/security/FileReadWrite.qll +++ b/java/ql/lib/semmle/code/java/security/FileReadWrite.qll @@ -1,9 +1,9 @@ import java /** - * Holds if `fileAccess` is used in the `fileReadingExpr` to read the represented file. + * Holds if `fileAccess` is directly used in the `fileReadingExpr` to read the represented file. */ -private predicate fileRead(VarAccess fileAccess, Expr fileReadingExpr) { +predicate directFileRead(Expr fileAccess, Expr fileReadingExpr) { // `fileAccess` used to construct a class that reads a file. exists(ClassInstanceExpr cie | cie = fileReadingExpr and @@ -28,6 +28,13 @@ private predicate fileRead(VarAccess fileAccess, Expr fileReadingExpr) { ]) ) ) +} + +/** + * Holds if `fileAccess` is used in the `fileReadingExpr` to read the represented file. + */ +private predicate fileRead(VarAccess fileAccess, Expr fileReadingExpr) { + directFileRead(fileAccess, fileReadingExpr) or // The `fileAccess` is used in a call which directly or indirectly accesses the file. exists(Call call, int parameterPos, VarAccess nestedFileAccess, Expr nestedFileReadingExpr | @@ -49,3 +56,15 @@ class FileReadExpr extends Expr { */ VarAccess getFileVarAccess() { fileRead(result, this) } } + +/** + * An expression that directly reads from a file and returns its contents. + */ +class DirectFileReadExpr extends Expr { + DirectFileReadExpr() { directFileRead(_, this) } + + /** + * Gets the `Expr` representing the file that is read + */ + Expr getFileExpr() { directFileRead(result, this) } +} diff --git a/java/ql/test/library-tests/frameworks/android/external-storage/Test.java b/java/ql/test/library-tests/frameworks/android/external-storage/Test.java index 0955abc4828..2b4aec0c86a 100644 --- a/java/ql/test/library-tests/frameworks/android/external-storage/Test.java +++ b/java/ql/test/library-tests/frameworks/android/external-storage/Test.java @@ -2,6 +2,8 @@ import java.io.File; import java.io.InputStream; import java.io.FileInputStream; import java.io.IOException; +import java.io.FileReader; +import java.io.RandomAccessFile; import android.content.Context; import android.os.Environment; @@ -48,4 +50,10 @@ class Test { File f = new File(dir, "file.txt"); sink(new FileInputStream(f)); // $ hasTaintFlow } + + void test8() throws IOException { + File f = new File(dir, "file.txt"); + sink(new FileReader(f)); // $ hasTaintFlow + sink(new RandomAccessFile(f, "r")); // $ hasTaintFlow + } } \ No newline at end of file From 55e78e3e25b03565fb7e05191d7d693029f1728c Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 24 May 2022 13:53:51 +0100 Subject: [PATCH 166/736] Minor doc fixes + making directFileRead private --- .../semmle/code/java/frameworks/android/ExternalStorage.qll | 2 +- java/ql/lib/semmle/code/java/security/FileReadWrite.qll | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll index dd1c680641d..364145cd430 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll @@ -39,7 +39,7 @@ private predicate externalStorageFlow(DataFlow::Node node1, DataFlow::Node node2 /** * Holds if `n` is a node that reads the contents of an external file in Android. - * This is controlable by third-party applications, so is treated as a remote flow source. + * This is controllable by third-party applications, so is treated as a remote flow source. */ predicate androidExternalStorageSource(DataFlow::Node n) { exists(DataFlow::Node externalDir, DirectFileReadExpr read | diff --git a/java/ql/lib/semmle/code/java/security/FileReadWrite.qll b/java/ql/lib/semmle/code/java/security/FileReadWrite.qll index bcb2c378902..84be71d6a04 100644 --- a/java/ql/lib/semmle/code/java/security/FileReadWrite.qll +++ b/java/ql/lib/semmle/code/java/security/FileReadWrite.qll @@ -3,7 +3,7 @@ import java /** * Holds if `fileAccess` is directly used in the `fileReadingExpr` to read the represented file. */ -predicate directFileRead(Expr fileAccess, Expr fileReadingExpr) { +private predicate directFileRead(Expr fileAccess, Expr fileReadingExpr) { // `fileAccess` used to construct a class that reads a file. exists(ClassInstanceExpr cie | cie = fileReadingExpr and @@ -64,7 +64,7 @@ class DirectFileReadExpr extends Expr { DirectFileReadExpr() { directFileRead(_, this) } /** - * Gets the `Expr` representing the file that is read + * Gets the `Expr` representing the file that is read. */ Expr getFileExpr() { directFileRead(result, this) } } From 49b419c52ec0cacafc66631819e18c46e24b0240 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 22 Jun 2022 14:29:41 +0100 Subject: [PATCH 167/736] Update models to include `manual` tag --- .../code/java/frameworks/android/ExternalStorage.qll | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll index 364145cd430..1e6919c023b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll @@ -10,12 +10,12 @@ private class ExternalStorageDirSourceModel extends SourceModelCsv { row = [ //"package;type;overrides;name;signature;ext;spec;kind" - "android.content;Context;true;getExternalFilesDir;(String);;ReturnValue;android-external-storage-dir", - "android.content;Context;true;getExternalFilesDirs;(String);;ReturnValue;android-external-storage-dir", - "android.content;Context;true;getExternalCacheDir;();;ReturnValue;android-external-storage-dir", - "android.content;Context;true;getExternalCacheDirs;();;ReturnValue;android-external-storage-dir", - "android.os;Environment;false;getExternalStorageDirectory;();;ReturnValue;android-external-storage-dir", - "android.os;Environment;false;getExternalStoragePublicDirectory;(String);;ReturnValue;android-external-storage-dir", + "android.content;Context;true;getExternalFilesDir;(String);;ReturnValue;android-external-storage-dir;manual", + "android.content;Context;true;getExternalFilesDirs;(String);;ReturnValue;android-external-storage-dir;manual", + "android.content;Context;true;getExternalCacheDir;();;ReturnValue;android-external-storage-dir;manual", + "android.content;Context;true;getExternalCacheDirs;();;ReturnValue;android-external-storage-dir;manual", + "android.os;Environment;false;getExternalStorageDirectory;();;ReturnValue;android-external-storage-dir;manual", + "android.os;Environment;false;getExternalStoragePublicDirectory;(String);;ReturnValue;android-external-storage-dir;manual", ] } } From e0b4c63a5368a9024d90a726b4ccff6cb7d4d202 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 28 Jun 2022 10:16:40 +0200 Subject: [PATCH 168/736] Add new source kind to CsvValidation --- java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index f518dbd2802..e8c1034a83a 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -647,7 +647,7 @@ module CsvValidation { or exists(string row, string kind | sourceModel(row) | kind = row.splitAt(";", 7) and - not kind = ["remote", "contentprovider", "android-widget"] and + not kind = ["remote", "contentprovider", "android-widget", "android-external-storage-dir"] and not kind.matches("qltest%") and msg = "Invalid kind \"" + kind + "\" in source model." ) From c1a2e2abe06bbdc533bb434150b9c00e7743d07c Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 10:21:33 +0200 Subject: [PATCH 169/736] JS: Rename to `isLikelyCaseSensitiveRegExp` --- .../ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql index a497f03f076..df3beecfb13 100644 --- a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql +++ b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql @@ -27,10 +27,10 @@ RegExpCharacterClass getEnclosingClass(RegExpTerm term) { } /** - * Holds if `term` distinguishes between upper and lower case letters, assuming the `i` flag is not present. + * Holds if `term` seems to distinguish between upper and lower case letters, assuming the `i` flag is not present. */ pragma[inline] -predicate isCaseSensitiveRegExp(RegExpTerm term) { +predicate isLikelyCaseSensitiveRegExp(RegExpTerm term) { exists(RegExpConstant const | const = term.getAChild*() and const.getValue().regexpMatch(".*[a-zA-Z].*") and @@ -89,7 +89,7 @@ predicate isCaseSensitiveMiddleware( ) and arg = call.getArgument(0) and regexp.getAReference().flowsTo(arg) and - isCaseSensitiveRegExp(regexp.getRoot()) and + isLikelyCaseSensitiveRegExp(regexp.getRoot()) and exists(string flags | flags = regexp.getFlags() and not RegExp::isIgnoreCase(flags) From c33690381eca82f3292f0bd526cba5e9b7780d97 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 10:21:44 +0200 Subject: [PATCH 170/736] JS: Add explicit 'this' --- javascript/ql/lib/semmle/javascript/frameworks/Express.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Express.qll b/javascript/ql/lib/semmle/javascript/frameworks/Express.qll index 5a2ad7cc928..19616530763 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Express.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Express.qll @@ -1050,11 +1050,11 @@ module Express { } private class ResumeDispatchRefinement extends Routing::RouteHandler { - ResumeDispatchRefinement() { getFunction() instanceof RouteHandler } + ResumeDispatchRefinement() { this.getFunction() instanceof RouteHandler } - override predicate mayResumeDispatch() { getAParameter().getName() = "next" } + override predicate mayResumeDispatch() { this.getAParameter().getName() = "next" } - override predicate definitelyResumesDispatch() { getAParameter().getName() = "next" } + override predicate definitelyResumesDispatch() { this.getAParameter().getName() = "next" } } private class ExpressStaticResumeDispatchRefinement extends Routing::Node { From 6d25fb69882858862b7b2d2735611ceb933b179e Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 11:27:28 +0200 Subject: [PATCH 171/736] Python: add change note --- python/ql/lib/change-notes/api-graph-api.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 python/ql/lib/change-notes/api-graph-api.md diff --git a/python/ql/lib/change-notes/api-graph-api.md b/python/ql/lib/change-notes/api-graph-api.md new file mode 100644 index 00000000000..caae8e33a70 --- /dev/null +++ b/python/ql/lib/change-notes/api-graph-api.md @@ -0,0 +1,10 @@ +--- +category: library +--- + +* The documentation of API graphs (the `API` module) has been expanded, and some of the members predicates of `API::Node` + have been renamed as follows: + - `getAnImmediateUse` -> `asSource` + - `getARhs` -> `asSink` + - `getAUse` -> `getAValueReachableFromSource` + - `getAValueReachingRhs` -> `getAValueReachingSink` From d9f57e6d23d0d430b37d5a1b4828b675f6d007f6 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 11:41:07 +0200 Subject: [PATCH 172/736] Python: rename change note file --- .../{api-graph-api.md => 2022-28-06-api-graph-api.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename python/ql/lib/change-notes/{api-graph-api.md => 2022-28-06-api-graph-api.md} (100%) diff --git a/python/ql/lib/change-notes/api-graph-api.md b/python/ql/lib/change-notes/2022-28-06-api-graph-api.md similarity index 100% rename from python/ql/lib/change-notes/api-graph-api.md rename to python/ql/lib/change-notes/2022-28-06-api-graph-api.md From f2b589743a3fe9431f0deafa8e2e5562989e7110 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 28 Jun 2022 11:51:06 +0200 Subject: [PATCH 173/736] Swift: add possibility to collapse class hierarchy in tests --- swift/codegen/generators/qlgen.py | 23 ++++++-- swift/codegen/lib/ql.py | 6 ++- swift/codegen/test/test_qlgen.py | 54 ++++++++++++++++--- .../extractor-tests/generated/File/File.ql | 5 +- .../generated/Location/MISSING_SOURCE.txt | 4 ++ .../decl/AccessorDecl/AccessorDecl.ql | 9 ++-- .../AccessorDecl/AccessorDecl_getLocation.ql | 7 +++ .../AssociatedTypeDecl/AssociatedTypeDecl.ql | 5 +- .../AssociatedTypeDecl_getLocation.ql | 7 +++ .../generated/decl/ClassDecl/ClassDecl.ql | 6 ++- .../decl/ClassDecl/ClassDecl_getLocation.ql | 7 +++ .../decl/ConcreteFuncDecl/ConcreteFuncDecl.ql | 5 +- .../ConcreteFuncDecl_getLocation.ql | 7 +++ .../generated/decl/EnumDecl/EnumDecl.ql | 6 ++- .../decl/EnumDecl/EnumDecl_getLocation.ql | 7 +++ .../BridgeFromObjCExpr/MISSING_SOURCE.txt | 4 ++ .../expr/BridgeToObjCExpr/BridgeToObjCExpr.ql | 11 ++++ .../BridgeToObjCExpr_getLocation.ql | 7 +++ .../BridgeToObjCExpr_getType.ql | 7 +++ .../MISSING_SOURCE.txt | 4 ++ .../generated/expr/DotSelfExpr/DotSelfExpr.ql | 5 +- .../DotSelfExpr/DotSelfExpr_getLocation.ql | 7 +++ .../expr/ErrorExpr/MISSING_SOURCE.txt | 4 ++ .../expr/ObjCSelectorExpr/MISSING_SOURCE.txt | 4 ++ .../expr/SequenceExpr/MISSING_SOURCE.txt | 4 ++ .../UnresolvedDeclRefExpr/MISSING_SOURCE.txt | 4 ++ .../UnresolvedDotExpr/UnresolvedDotExpr.ql | 5 +- .../UnresolvedDotExpr_getLocation.ql | 7 +++ .../UnresolvedMemberExpr/MISSING_SOURCE.txt | 4 ++ .../UnresolvedPatternExpr/MISSING_SOURCE.txt | 4 ++ .../MISSING_SOURCE.txt | 4 ++ .../type/DynamicSelfType/DynamicSelfType.ql | 9 ++-- .../type/ExistentialType/ExistentialType.ql | 9 ++-- .../generated/type/InOutType/InOutType.ql | 9 ++-- .../NestedArchetypeType.ql | 12 +++-- .../PrimaryArchetypeType.ql | 9 ++-- .../UnmanagedStorageType.ql | 9 ++-- .../UnownedStorageType/UnownedStorageType.ql | 9 ++-- .../VariadicSequenceType.ql | 9 ++-- .../type/WeakStorageType/WeakStorageType.ql | 9 ++-- 40 files changed, 267 insertions(+), 60 deletions(-) create mode 100644 swift/ql/test/extractor-tests/generated/Location/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getLocation.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getLocation.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getLocation.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl_getLocation.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getLocation.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/BridgeFromObjCExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getLocation.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getType.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/ConditionalBridgeFromObjCExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr_getLocation.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/ErrorExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/ObjCSelectorExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/SequenceExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getLocation.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedMemberExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedSpecializeExpr/MISSING_SOURCE.txt diff --git a/swift/codegen/generators/qlgen.py b/swift/codegen/generators/qlgen.py index 26cce2ec430..b2e65cf86cb 100755 --- a/swift/codegen/generators/qlgen.py +++ b/swift/codegen/generators/qlgen.py @@ -30,7 +30,7 @@ class ModifiedStubMarkedAsGeneratedError(Error): def get_ql_property(cls: schema.Class, prop: schema.Property): common_args = dict( type=prop.type if not prop.is_predicate else "predicate", - skip_qltest="skip_qltest" in prop.pragmas, + qltest_skip="qltest_skip" in prop.pragmas, is_child=prop.is_child, is_optional=prop.is_optional, is_predicate=prop.is_predicate, @@ -69,13 +69,14 @@ def get_ql_property(cls: schema.Class, prop: schema.Property): def get_ql_class(cls: schema.Class): + pragmas = {k: True for k in cls.pragmas if k.startswith("ql")} return ql.Class( name=cls.name, bases=cls.bases, final=not cls.derived, properties=[get_ql_property(cls, p) for p in cls.properties], dir=cls.dir, - skip_qltest="skip_qltest" in cls.pragmas, + **pragmas, ) @@ -143,7 +144,7 @@ def _get_all_properties_to_be_tested(cls: ql.Class, lookup: typing.Dict[str, ql. # deduplicate using id already_seen = set() for c, p in _get_all_properties(cls, lookup): - if not (c.skip_qltest or p.skip_qltest or id(p) in already_seen): + if not (c.qltest_skip or p.qltest_skip or id(p) in already_seen): already_seen.add(id(p)) yield ql.PropertyForTest(p.getter, p.type, p.is_single, p.is_predicate, p.is_repeated) @@ -156,6 +157,20 @@ def _partition(l, pred): return res +def _is_in_qltest_collapsed_hierachy(cls: ql.Class, lookup: typing.Dict[str, ql.Class]): + return cls.qltest_collapse_hierarchy or _is_under_qltest_collapsed_hierachy(cls, lookup) + + +def _is_under_qltest_collapsed_hierachy(cls: ql.Class, lookup: typing.Dict[str, ql.Class]): + return not cls.qltest_uncollapse_hierarchy and any( + _is_in_qltest_collapsed_hierachy(lookup[b], lookup) for b in cls.bases) + + +def _should_skip_qltest(cls: ql.Class, lookup: typing.Dict[str, ql.Class]): + return cls.qltest_skip or not (cls.final or cls.qltest_collapse_hierarchy) or _is_under_qltest_collapsed_hierachy( + cls, lookup) + + def generate(opts, renderer): input = opts.schema out = opts.ql_output @@ -196,7 +211,7 @@ def generate(opts, renderer): classes), out / 'GetImmediateParent.qll') for c in classes: - if not c.final or c.skip_qltest: + if _should_skip_qltest(c, lookup): continue test_dir = test_out / c.path test_dir.mkdir(parents=True, exist_ok=True) diff --git a/swift/codegen/lib/ql.py b/swift/codegen/lib/ql.py index ce8dbed3a90..1635fd70689 100644 --- a/swift/codegen/lib/ql.py +++ b/swift/codegen/lib/ql.py @@ -37,7 +37,7 @@ class Property: is_optional: bool = False is_predicate: bool = False is_child: bool = False - skip_qltest: bool = False + qltest_skip: bool = False def __post_init__(self): if self.tableparams: @@ -79,7 +79,9 @@ class Class: properties: List[Property] = field(default_factory=list) dir: pathlib.Path = pathlib.Path() imports: List[str] = field(default_factory=list) - skip_qltest: bool = False + qltest_skip: bool = False + qltest_collapse_hierarchy: bool = False + qltest_uncollapse_hierarchy: bool = False def __post_init__(self): self.bases = sorted(self.bases) diff --git a/swift/codegen/test/test_qlgen.py b/swift/codegen/test/test_qlgen.py index 78f67012077..f861d14f2de 100644 --- a/swift/codegen/test/test_qlgen.py +++ b/swift/codegen/test/test_qlgen.py @@ -480,13 +480,13 @@ def test_test_properties_skipped(opts, generate_tests): write(opts.ql_test_output / "Derived" / "test.swift") assert generate_tests([ schema.Class("Base", derived={"Derived"}, properties=[ - schema.SingleProperty("x", "string", pragmas=["skip_qltest", "foo"]), - schema.RepeatedProperty("y", "int", pragmas=["bar", "skip_qltest"]), + schema.SingleProperty("x", "string", pragmas=["qltest_skip", "foo"]), + schema.RepeatedProperty("y", "int", pragmas=["bar", "qltest_skip"]), ]), schema.Class("Derived", bases={"Base"}, properties=[ - schema.PredicateProperty("a", pragmas=["skip_qltest"]), + schema.PredicateProperty("a", pragmas=["qltest_skip"]), schema.OptionalProperty( - "b", "int", pragmas=["bar", "skip_qltest", "baz"]), + "b", "int", pragmas=["bar", "qltest_skip", "baz"]), ]), ]) == { "Derived/Derived.ql": ql.ClassTester(class_name="Derived"), @@ -496,7 +496,7 @@ def test_test_properties_skipped(opts, generate_tests): def test_test_base_class_skipped(opts, generate_tests): write(opts.ql_test_output / "Derived" / "test.swift") assert generate_tests([ - schema.Class("Base", derived={"Derived"}, pragmas=["skip_qltest", "foo"], properties=[ + schema.Class("Base", derived={"Derived"}, pragmas=["qltest_skip", "foo"], properties=[ schema.SingleProperty("x", "string"), schema.RepeatedProperty("y", "int"), ]), @@ -510,12 +510,54 @@ def test_test_final_class_skipped(opts, generate_tests): write(opts.ql_test_output / "Derived" / "test.swift") assert generate_tests([ schema.Class("Base", derived={"Derived"}), - schema.Class("Derived", bases={"Base"}, pragmas=["skip_qltest", "foo"], properties=[ + schema.Class("Derived", bases={"Base"}, pragmas=["qltest_skip", "foo"], properties=[ schema.SingleProperty("x", "string"), schema.RepeatedProperty("y", "int"), ]), ]) == {} +def test_test_class_hierarchy_collapse(opts, generate_tests): + write(opts.ql_test_output / "Base" / "test.swift") + assert generate_tests([ + schema.Class("Base", derived={"D1", "D2"}, pragmas=["foo", "qltest_collapse_hierarchy"]), + schema.Class("D1", bases={"Base"}, properties=[schema.SingleProperty("x", "string")]), + schema.Class("D2", bases={"Base"}, derived={"D3"}, properties=[schema.SingleProperty("y", "string")]), + schema.Class("D3", bases={"D2"}, properties=[schema.SingleProperty("z", "string")]), + ]) == { + "Base/Base.ql": ql.ClassTester(class_name="Base"), + } + + +def test_test_class_hierarchy_uncollapse(opts, generate_tests): + for d in ("Base", "D3", "D4"): + write(opts.ql_test_output / d / "test.swift") + assert generate_tests([ + schema.Class("Base", derived={"D1", "D2"}, pragmas=["foo", "qltest_collapse_hierarchy"]), + schema.Class("D1", bases={"Base"}, properties=[schema.SingleProperty("x", "string")]), + schema.Class("D2", bases={"Base"}, derived={"D3", "D4"}, pragmas=["qltest_uncollapse_hierarchy", "bar"]), + schema.Class("D3", bases={"D2"}), + schema.Class("D4", bases={"D2"}), + ]) == { + "Base/Base.ql": ql.ClassTester(class_name="Base"), + "D3/D3.ql": ql.ClassTester(class_name="D3"), + "D4/D4.ql": ql.ClassTester(class_name="D4"), + } + + +def test_test_class_hierarchy_uncollapse_at_final(opts, generate_tests): + for d in ("Base", "D3"): + write(opts.ql_test_output / d / "test.swift") + assert generate_tests([ + schema.Class("Base", derived={"D1", "D2"}, pragmas=["foo", "qltest_collapse_hierarchy"]), + schema.Class("D1", bases={"Base"}, properties=[schema.SingleProperty("x", "string")]), + schema.Class("D2", bases={"Base"}, derived={"D3"}), + schema.Class("D3", bases={"D2"}, pragmas=["qltest_uncollapse_hierarchy", "bar"]), + ]) == { + "Base/Base.ql": ql.ClassTester(class_name="Base"), + "D3/D3.ql": ql.ClassTester(class_name="D3"), + } + + if __name__ == '__main__': sys.exit(pytest.main([__file__] + sys.argv[1:])) diff --git a/swift/ql/test/extractor-tests/generated/File/File.ql b/swift/ql/test/extractor-tests/generated/File/File.ql index 158dca707f5..9307342f2ff 100644 --- a/swift/ql/test/extractor-tests/generated/File/File.ql +++ b/swift/ql/test/extractor-tests/generated/File/File.ql @@ -2,9 +2,10 @@ import codeql.swift.elements import TestUtils -from File x, string getName +from File x, string isUnknown, string getName where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getName = x.getName() -select x, "getName:", getName +select x, "isUnknown:", isUnknown, "getName:", getName diff --git a/swift/ql/test/extractor-tests/generated/Location/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/Location/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/Location/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql b/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql index 34180566f00..99207338efe 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql @@ -3,16 +3,17 @@ import codeql.swift.elements import TestUtils from - AccessorDecl x, Type getInterfaceType, string getName, string isGetter, string isSetter, - string isWillSet, string isDidSet + AccessorDecl x, string isUnknown, Type getInterfaceType, string getName, string isGetter, + string isSetter, string isWillSet, string isDidSet where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() and (if x.isGetter() then isGetter = "yes" else isGetter = "no") and (if x.isSetter() then isSetter = "yes" else isSetter = "no") and (if x.isWillSet() then isWillSet = "yes" else isWillSet = "no") and if x.isDidSet() then isDidSet = "yes" else isDidSet = "no" -select x, "getInterfaceType:", getInterfaceType, "getName:", getName, "isGetter:", isGetter, - "isSetter:", isSetter, "isWillSet:", isWillSet, "isDidSet:", isDidSet +select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName, + "isGetter:", isGetter, "isSetter:", isSetter, "isWillSet:", isWillSet, "isDidSet:", isDidSet diff --git a/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getLocation.ql new file mode 100644 index 00000000000..92be90de057 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getLocation.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from AccessorDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getLocation() 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 d49e513615c..5db864bfc22 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql @@ -2,10 +2,11 @@ import codeql.swift.elements import TestUtils -from AssociatedTypeDecl x, Type getInterfaceType, string getName +from AssociatedTypeDecl x, string isUnknown, Type getInterfaceType, string getName where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() -select x, "getInterfaceType:", getInterfaceType, "getName:", getName +select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getLocation.ql new file mode 100644 index 00000000000..0a3561ae7b1 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getLocation.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from AssociatedTypeDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getLocation() 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 89f9f86507f..9cef07648fa 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql @@ -2,11 +2,13 @@ import codeql.swift.elements import TestUtils -from ClassDecl x, Type getInterfaceType, string getName, Type getType +from ClassDecl x, string isUnknown, Type getInterfaceType, string getName, Type getType where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() and getType = x.getType() -select x, "getInterfaceType:", getInterfaceType, "getName:", getName, "getType:", getType +select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName, + "getType:", getType diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getLocation.ql new file mode 100644 index 00000000000..3231b1dd58a --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getLocation.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ClassDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.ql index 7b10f703bff..28736643fdb 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.ql @@ -2,10 +2,11 @@ import codeql.swift.elements import TestUtils -from ConcreteFuncDecl x, Type getInterfaceType, string getName +from ConcreteFuncDecl x, string isUnknown, Type getInterfaceType, string getName where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() -select x, "getInterfaceType:", getInterfaceType, "getName:", getName +select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl_getLocation.ql new file mode 100644 index 00000000000..eeb02bedc0f --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl_getLocation.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ConcreteFuncDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getLocation() 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 6f5c19ec720..6575ebfb2cd 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql @@ -2,11 +2,13 @@ import codeql.swift.elements import TestUtils -from EnumDecl x, Type getInterfaceType, string getName, Type getType +from EnumDecl x, string isUnknown, Type getInterfaceType, string getName, Type getType where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() and getType = x.getType() -select x, "getInterfaceType:", getInterfaceType, "getName:", getName, "getType:", getType +select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName, + "getType:", getType diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getLocation.ql new file mode 100644 index 00000000000..4f8482a4e06 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getLocation.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from EnumDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/expr/BridgeFromObjCExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/BridgeFromObjCExpr/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/BridgeFromObjCExpr/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr.ql b/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr.ql new file mode 100644 index 00000000000..7412b7819fe --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr.ql @@ -0,0 +1,11 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from BridgeToObjCExpr x, string isUnknown, Expr getSubExpr +where + toBeTested(x) and + not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and + getSubExpr = x.getSubExpr() +select x, "isUnknown:", isUnknown, "getSubExpr:", getSubExpr diff --git a/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getLocation.ql b/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getLocation.ql new file mode 100644 index 00000000000..605f328ed19 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getLocation.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from BridgeToObjCExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getType.ql new file mode 100644 index 00000000000..077a2a9e82e --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getType.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from BridgeToObjCExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/ConditionalBridgeFromObjCExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/ConditionalBridgeFromObjCExpr/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/ConditionalBridgeFromObjCExpr/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr.ql b/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr.ql index 91ec5342fb6..3c66ef1f469 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr.ql @@ -2,9 +2,10 @@ import codeql.swift.elements import TestUtils -from DotSelfExpr x, Expr getSubExpr +from DotSelfExpr x, string isUnknown, Expr getSubExpr where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getSubExpr = x.getSubExpr() -select x, "getSubExpr:", getSubExpr +select x, "isUnknown:", isUnknown, "getSubExpr:", getSubExpr diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr_getLocation.ql b/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr_getLocation.ql new file mode 100644 index 00000000000..a337b217c60 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr_getLocation.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from DotSelfExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/expr/ErrorExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/ErrorExpr/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/ErrorExpr/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjCSelectorExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/ObjCSelectorExpr/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/ObjCSelectorExpr/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/SequenceExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/SequenceExpr/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/SequenceExpr/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql index 29327a3f86c..774f1119727 100644 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql @@ -2,10 +2,11 @@ import codeql.swift.elements import TestUtils -from UnresolvedDotExpr x, Expr getBase, string getName +from UnresolvedDotExpr x, string isUnknown, Expr getBase, string getName where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getBase = x.getBase() and getName = x.getName() -select x, "getBase:", getBase, "getName:", getName +select x, "isUnknown:", isUnknown, "getBase:", getBase, "getName:", getName diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getLocation.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getLocation.ql new file mode 100644 index 00000000000..562131422a2 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getLocation.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from UnresolvedDotExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedMemberExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/UnresolvedMemberExpr/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedMemberExpr/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedSpecializeExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/UnresolvedSpecializeExpr/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedSpecializeExpr/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql index a9ae23f6bab..68468498ea9 100644 --- a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql +++ b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql @@ -2,12 +2,15 @@ import codeql.swift.elements import TestUtils -from DynamicSelfType x, string getDiagnosticsName, Type getCanonicalType, Type getStaticSelfType +from + DynamicSelfType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, + Type getStaticSelfType where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getStaticSelfType = x.getStaticSelfType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getStaticSelfType:", getStaticSelfType +select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", + getCanonicalType, "getStaticSelfType:", getStaticSelfType diff --git a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql index b679d5d89a2..22ad73eb91e 100644 --- a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql @@ -2,12 +2,15 @@ import codeql.swift.elements import TestUtils -from ExistentialType x, string getDiagnosticsName, Type getCanonicalType, Type getConstraint +from + ExistentialType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, + Type getConstraint where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getConstraint = x.getConstraint() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getConstraint:", getConstraint +select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", + getCanonicalType, "getConstraint:", getConstraint diff --git a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql index 973d0257381..cb004070ca5 100644 --- a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql +++ b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql @@ -2,12 +2,15 @@ import codeql.swift.elements import TestUtils -from InOutType x, string getDiagnosticsName, Type getCanonicalType, Type getObjectType +from + InOutType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, + Type getObjectType where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getObjectType = x.getObjectType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getObjectType:", getObjectType +select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", + getCanonicalType, "getObjectType:", getObjectType diff --git a/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql index 8306bfeacac..e5862e67de7 100644 --- a/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql @@ -3,17 +3,19 @@ import codeql.swift.elements import TestUtils from - NestedArchetypeType x, string getDiagnosticsName, Type getCanonicalType, string getName, - Type getInterfaceType, ArchetypeType getParent, AssociatedTypeDecl getAssociatedTypeDeclaration + NestedArchetypeType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, + string getName, Type getInterfaceType, ArchetypeType getParent, + AssociatedTypeDecl getAssociatedTypeDeclaration where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getName = x.getName() and getInterfaceType = x.getInterfaceType() and getParent = x.getParent() and getAssociatedTypeDeclaration = x.getAssociatedTypeDeclaration() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getName:", getName, "getInterfaceType:", getInterfaceType, "getParent:", getParent, - "getAssociatedTypeDeclaration:", getAssociatedTypeDeclaration +select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", + getCanonicalType, "getName:", getName, "getInterfaceType:", getInterfaceType, "getParent:", + getParent, "getAssociatedTypeDeclaration:", getAssociatedTypeDeclaration diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql index 925bf85dcbf..63a04cfb03c 100644 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql @@ -3,14 +3,15 @@ import codeql.swift.elements import TestUtils from - PrimaryArchetypeType x, string getDiagnosticsName, Type getCanonicalType, string getName, - Type getInterfaceType + PrimaryArchetypeType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, + string getName, Type getInterfaceType where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getName = x.getName() and getInterfaceType = x.getInterfaceType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getName:", getName, "getInterfaceType:", getInterfaceType +select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", + getCanonicalType, "getName:", getName, "getInterfaceType:", getInterfaceType diff --git a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql index 396988db25e..8f1acefdf8e 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql @@ -2,12 +2,15 @@ import codeql.swift.elements import TestUtils -from UnmanagedStorageType x, string getDiagnosticsName, Type getCanonicalType, Type getReferentType +from + UnmanagedStorageType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, + Type getReferentType where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getReferentType = x.getReferentType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getReferentType:", getReferentType +select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", + getCanonicalType, "getReferentType:", getReferentType diff --git a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql index 17744a437d7..fbe93938336 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql @@ -2,12 +2,15 @@ import codeql.swift.elements import TestUtils -from UnownedStorageType x, string getDiagnosticsName, Type getCanonicalType, Type getReferentType +from + UnownedStorageType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, + Type getReferentType where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getReferentType = x.getReferentType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getReferentType:", getReferentType +select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", + getCanonicalType, "getReferentType:", getReferentType diff --git a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql index 5a89dbcafab..7dc29f0861c 100644 --- a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql +++ b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql @@ -2,12 +2,15 @@ import codeql.swift.elements import TestUtils -from VariadicSequenceType x, string getDiagnosticsName, Type getCanonicalType, Type getBaseType +from + VariadicSequenceType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, + Type getBaseType where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getBaseType = x.getBaseType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getBaseType:", getBaseType +select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", + getCanonicalType, "getBaseType:", getBaseType diff --git a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql index 3209b0e7d3d..03e8331f3ab 100644 --- a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql @@ -2,12 +2,15 @@ import codeql.swift.elements import TestUtils -from WeakStorageType x, string getDiagnosticsName, Type getCanonicalType, Type getReferentType +from + WeakStorageType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, + Type getReferentType where toBeTested(x) and not x.isUnknown() and + (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getReferentType = x.getReferentType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getReferentType:", getReferentType +select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", + getCanonicalType, "getReferentType:", getReferentType From b41cbaec33909a891103aa5961abc3b6c76701dc Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 28 Jun 2022 11:54:11 +0200 Subject: [PATCH 174/736] Swift: add possibility to add flags in tests --- swift/tools/qltest.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/swift/tools/qltest.sh b/swift/tools/qltest.sh index 59d576af431..2232350c5b0 100755 --- a/swift/tools/qltest.sh +++ b/swift/tools/qltest.sh @@ -7,5 +7,8 @@ QLTEST_LOG="$CODEQL_EXTRACTOR_SWIFT_LOG_DIR"/qltest.log export LD_LIBRARY_PATH="$CODEQL_EXTRACTOR_SWIFT_ROOT/tools/$CODEQL_PLATFORM" for src in *.swift; do - "$CODEQL_EXTRACTOR_SWIFT_ROOT/tools/$CODEQL_PLATFORM/extractor" -sdk "$CODEQL_EXTRACTOR_SWIFT_ROOT/qltest/$CODEQL_PLATFORM/sdk" -c -primary-file $src >> $QLTEST_LOG 2>&1 + opts=(-sdk "$CODEQL_EXTRACTOR_SWIFT_ROOT/qltest/$CODEQL_PLATFORM/sdk" -c -primary-file $src) + opts+=($(sed -n '1 s=//codeql-extractor-options:==p' $src)) + echo -e "calling extractor with flags: ${opts[@]}\n" >> $QLTEST_LOG + "$CODEQL_EXTRACTOR_SWIFT_ROOT/tools/$CODEQL_PLATFORM/extractor" "${opts[@]}" >> $QLTEST_LOG 2>&1 done From 57981384dfef209bfc508c787a5bfc7ef4bb647c Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 28 Jun 2022 11:57:11 +0200 Subject: [PATCH 175/736] Swift: extract ProtocolComposition- and BuiltinType --- swift/codegen/schema.yml | 29 ++++---- swift/extractor/visitors/TypeVisitor.cpp | 70 +++++++++++++++++++ swift/extractor/visitors/TypeVisitor.h | 28 ++++++++ .../swift/elements/type/ExistentialType.qll | 6 +- .../type/ProtocolCompositionType.qll | 11 +++ swift/ql/lib/swift.dbscheme | 7 ++ swift/ql/test/TestUtils.qll | 19 +++-- .../extractor-tests/generated/File/File.ql | 5 +- .../generated/Location/MISSING_SOURCE.txt | 4 -- .../decl/AccessorDecl/AccessorDecl.ql | 9 ++- .../AccessorDecl/AccessorDecl_getLocation.ql | 7 -- .../AssociatedTypeDecl/AssociatedTypeDecl.ql | 5 +- .../AssociatedTypeDecl_getLocation.ql | 7 -- .../generated/decl/ClassDecl/ClassDecl.ql | 6 +- .../decl/ClassDecl/ClassDecl_getLocation.ql | 7 -- .../decl/ConcreteFuncDecl/ConcreteFuncDecl.ql | 5 +- .../generated/decl/EnumDecl/EnumDecl.ql | 6 +- .../decl/EnumDecl/EnumDecl_getLocation.ql | 7 -- .../BridgeFromObjCExpr/MISSING_SOURCE.txt | 4 -- .../expr/BridgeToObjCExpr/BridgeToObjCExpr.ql | 11 --- .../BridgeToObjCExpr_getLocation.ql | 7 -- .../MISSING_SOURCE.txt | 4 -- .../generated/expr/DotSelfExpr/DotSelfExpr.ql | 5 +- .../DotSelfExpr/DotSelfExpr_getLocation.ql | 7 -- .../expr/ErrorExpr/MISSING_SOURCE.txt | 4 -- .../expr/ObjCSelectorExpr/MISSING_SOURCE.txt | 4 -- .../expr/SequenceExpr/MISSING_SOURCE.txt | 4 -- .../UnresolvedDeclRefExpr/MISSING_SOURCE.txt | 4 -- .../UnresolvedDotExpr/UnresolvedDotExpr.ql | 5 +- .../UnresolvedDotExpr_getLocation.ql | 7 -- .../UnresolvedMemberExpr/MISSING_SOURCE.txt | 4 -- .../UnresolvedPatternExpr/MISSING_SOURCE.txt | 4 -- .../MISSING_SOURCE.txt | 4 -- .../MISSING_SOURCE.txt | 4 -- .../MISSING_SOURCE.txt | 4 -- .../BuiltinExecutorType/MISSING_SOURCE.txt | 4 -- .../type/BuiltinFloatType/MISSING_SOURCE.txt | 4 -- .../MISSING_SOURCE.txt | 4 -- .../BuiltinIntegerType.expected | 5 ++ .../BuiltinIntegerType/BuiltinIntegerType.ql | 11 +++ .../BuiltinIntegerType_getWidth.expected | 4 ++ .../BuiltinIntegerType_getWidth.ql} | 4 +- .../BuiltinIntegerType/MISSING_SOURCE.txt | 4 -- .../builtin_integer_types.swift | 8 +++ .../type/BuiltinJobType/MISSING_SOURCE.txt | 4 -- .../MISSING_SOURCE.txt | 4 -- .../BuiltinRawPointerType/MISSING_SOURCE.txt | 4 -- .../MISSING_SOURCE.txt | 4 -- .../type/BuiltinType/BuiltinType.expected | 11 +++ .../generated/type/BuiltinType/BuiltinType.ql | 11 +++ .../type/BuiltinType/builtin_types.swift | 14 ++++ .../MISSING_SOURCE.txt | 4 -- .../type/BuiltinVectorType/MISSING_SOURCE.txt | 4 -- .../type/DynamicSelfType/DynamicSelfType.ql | 9 +-- .../ExistentialType/ExistentialType.expected | 1 + .../type/ExistentialType/ExistentialType.ql | 9 +-- .../ExistentialType/existential_types.swift | 3 + .../generated/type/InOutType/InOutType.ql | 9 +-- .../NestedArchetypeType.ql | 12 ++-- .../PrimaryArchetypeType.ql | 9 ++- .../MISSING_SOURCE.txt | 4 -- .../ProtocolCompositionType.expected | 4 ++ .../ProtocolCompositionType.ql | 11 +++ ...ProtocolCompositionType_getMember.expected | 9 +++ .../ProtocolCompositionType_getMember.ql} | 4 +- .../protocol_composition.swift | 13 ++++ .../UnmanagedStorageType.ql | 9 +-- .../UnownedStorageType/UnownedStorageType.ql | 9 +-- .../VariadicSequenceType.ql | 9 +-- .../type/WeakStorageType/WeakStorageType.ql | 9 +-- 70 files changed, 303 insertions(+), 262 deletions(-) delete mode 100644 swift/ql/test/extractor-tests/generated/Location/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getLocation.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getLocation.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getLocation.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getLocation.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/BridgeFromObjCExpr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getLocation.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ConditionalBridgeFromObjCExpr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr_getLocation.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ErrorExpr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ObjCSelectorExpr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/expr/SequenceExpr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getLocation.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedMemberExpr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedSpecializeExpr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinBridgeObjectType/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinDefaultActorStorageType/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinExecutorType/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinFloatType/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinIntegerLiteralType/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.expected rename swift/ql/test/extractor-tests/generated/{expr/BridgeToObjCExpr/BridgeToObjCExpr_getType.ql => type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql} (71%) delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/builtin_integer_types.swift delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinJobType/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinNativeObjectType/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinRawPointerType/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinRawUnsafeContinuationType/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinType/builtin_types.swift delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinUnsafeValueBufferType/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinVectorType/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected create mode 100644 swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql create mode 100644 swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.expected rename swift/ql/test/extractor-tests/generated/{decl/ConcreteFuncDecl/ConcreteFuncDecl_getLocation.ql => type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql} (61%) create mode 100644 swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/protocol_composition.swift diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index ce071b930d2..b95fedc10a9 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -14,14 +14,14 @@ _directories: Element: is_unknown: predicate - _pragma: skip_qltest + _pragma: qltest_skip File: name: string Locatable: location: Location? - _pragma: skip_qltest + _pragma: qltest_skip Location: file: File @@ -29,7 +29,7 @@ Location: start_column: int end_line: int end_column: int - _pragma: skip_qltest + _pragma: qltest_skip Type: diagnostics_name: string @@ -85,6 +85,7 @@ AnyMetatypeType: BuiltinType: _extends: Type + _pragma: qltest_collapse_hierarchy DependentMemberType: _extends: Type @@ -114,6 +115,7 @@ PlaceholderType: ProtocolCompositionType: _extends: Type + members: Type* ExistentialType: _extends: Type @@ -393,7 +395,7 @@ EnumIsCaseExpr: ErrorExpr: _extends: Expr - _pragma: skip_qltest # unexpected emission + _pragma: qltest_skip # unexpected emission ExplicitCastExpr: _extends: Expr @@ -468,7 +470,7 @@ ObjCSelectorExpr: _children: sub_expr: Expr method: AbstractFunctionDecl - _pragma: skip_qltest # to be tested in integration tests + _pragma: qltest_skip # to be tested in integration tests OneWayExpr: _extends: Expr @@ -510,7 +512,7 @@ SequenceExpr: _extends: Expr _children: elements: Expr* - _pragma: skip_qltest # we should really never extract these, as these should be resolved to trees of operations + _pragma: qltest_skip # we should really never extract these, as these should be resolved to trees of operations SuperRefExpr: _extends: Expr @@ -542,7 +544,7 @@ TypeExpr: UnresolvedDeclRefExpr: _extends: Expr name: string? - _pragma: skip_qltest # we should really never extract these + _pragma: qltest_skip # we should really never extract these UnresolvedDotExpr: _extends: Expr @@ -553,15 +555,15 @@ UnresolvedDotExpr: UnresolvedMemberExpr: _extends: Expr name: string - _pragma: skip_qltest # we should really never extract these + _pragma: qltest_skip # we should really never extract these UnresolvedPatternExpr: _extends: Expr - _pragma: skip_qltest # we should really never extract these + _pragma: qltest_skip # we should really never extract these UnresolvedSpecializeExpr: _extends: Expr - _pragma: skip_qltest # we should really never extract these + _pragma: qltest_skip # we should really never extract these VarargExpansionExpr: _extends: Expr @@ -698,6 +700,7 @@ BuiltinIntegerLiteralType: BuiltinIntegerType: _extends: AnyBuiltinIntegerType + _pragma: qltest_uncollapse_hierarchy width: int? NestedArchetypeType: @@ -830,11 +833,11 @@ ArrayToPointerExpr: BridgeFromObjCExpr: _extends: ImplicitConversionExpr - _pragma: skip_qltest # to be tested in integration tests + _pragma: qltest_skip # to be tested in integration tests BridgeToObjCExpr: _extends: ImplicitConversionExpr - _pragma: skip_qltest # to be tested in integration tests + _pragma: qltest_skip # to be tested in integration tests ClassMetatypeToObjectExpr: _extends: ImplicitConversionExpr @@ -844,7 +847,7 @@ CollectionUpcastConversionExpr: ConditionalBridgeFromObjCExpr: _extends: ImplicitConversionExpr - _pragma: skip_qltest # to be tested in integration tests + _pragma: qltest_skip # to be tested in integration tests CovariantFunctionConversionExpr: _extends: ImplicitConversionExpr diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index 897cc58625e..807e484e2d3 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -304,4 +304,74 @@ void TypeVisitor::fillReferenceStorageType(const swift::ReferenceStorageType& ty fillType(type, entry); } +codeql::ProtocolCompositionType TypeVisitor::translateProtocolCompositionType( + const swift::ProtocolCompositionType& type) { + auto entry = createEntry(type); + entry.members = dispatcher_.fetchRepeatedLabels(type.getMembers()); + return entry; +} + +codeql::BuiltinIntegerLiteralType TypeVisitor::translateBuiltinIntegerLiteralType( + const swift::BuiltinIntegerLiteralType& type) { + return createEntry(type); +} + +codeql::BuiltinIntegerType TypeVisitor::translateBuiltinIntegerType( + const swift::BuiltinIntegerType& type) { + auto entry = createEntry(type); + if (type.isFixedWidth()) { + entry.width = type.getFixedWidth(); + } + return entry; +} + +codeql::BuiltinBridgeObjectType TypeVisitor::translateBuiltinBridgeObjectType( + const swift::BuiltinBridgeObjectType& type) { + return createEntry(type); +} + +codeql::BuiltinDefaultActorStorageType TypeVisitor::translateBuiltinDefaultActorStorageType( + const swift::BuiltinDefaultActorStorageType& type) { + return createEntry(type); +} + +codeql::BuiltinExecutorType TypeVisitor::translateBuiltinExecutorType( + const swift::BuiltinExecutorType& type) { + return createEntry(type); +} + +codeql::BuiltinFloatType TypeVisitor::translateBuiltinFloatType( + const swift::BuiltinFloatType& type) { + return createEntry(type); +} + +codeql::BuiltinJobType TypeVisitor::translateBuiltinJobType(const swift::BuiltinJobType& type) { + return createEntry(type); +} + +codeql::BuiltinNativeObjectType TypeVisitor::translateBuiltinNativeObjectType( + const swift::BuiltinNativeObjectType& type) { + return createEntry(type); +} + +codeql::BuiltinRawPointerType TypeVisitor::translateBuiltinRawPointerType( + const swift::BuiltinRawPointerType& type) { + return createEntry(type); +} + +codeql::BuiltinRawUnsafeContinuationType TypeVisitor::translateBuiltinRawUnsafeContinuationType( + const swift::BuiltinRawUnsafeContinuationType& type) { + return createEntry(type); +} + +codeql::BuiltinUnsafeValueBufferType TypeVisitor::translateBuiltinUnsafeValueBufferType( + const swift::BuiltinUnsafeValueBufferType& type) { + return createEntry(type); +} + +codeql::BuiltinVectorType TypeVisitor::translateBuiltinVectorType( + const swift::BuiltinVectorType& type) { + return createEntry(type); +} + } // namespace codeql diff --git a/swift/extractor/visitors/TypeVisitor.h b/swift/extractor/visitors/TypeVisitor.h index fa8c0d0ed09..99d1ca7fdbb 100644 --- a/swift/extractor/visitors/TypeVisitor.h +++ b/swift/extractor/visitors/TypeVisitor.h @@ -47,6 +47,27 @@ class TypeVisitor : public TypeVisitorBase { const swift::UnmanagedStorageType& type); codeql::WeakStorageType translateWeakStorageType(const swift::WeakStorageType& type); codeql::UnownedStorageType translateUnownedStorageType(const swift::UnownedStorageType& type); + codeql::ProtocolCompositionType translateProtocolCompositionType( + const swift::ProtocolCompositionType& type); + codeql::BuiltinIntegerLiteralType translateBuiltinIntegerLiteralType( + const swift::BuiltinIntegerLiteralType& type); + codeql::BuiltinIntegerType translateBuiltinIntegerType(const swift::BuiltinIntegerType& type); + codeql::BuiltinBridgeObjectType translateBuiltinBridgeObjectType( + const swift::BuiltinBridgeObjectType& type); + codeql::BuiltinDefaultActorStorageType translateBuiltinDefaultActorStorageType( + const swift::BuiltinDefaultActorStorageType& type); + codeql::BuiltinExecutorType translateBuiltinExecutorType(const swift::BuiltinExecutorType& type); + codeql::BuiltinFloatType translateBuiltinFloatType(const swift::BuiltinFloatType& type); + codeql::BuiltinJobType translateBuiltinJobType(const swift::BuiltinJobType& type); + codeql::BuiltinNativeObjectType translateBuiltinNativeObjectType( + const swift::BuiltinNativeObjectType& type); + codeql::BuiltinRawPointerType translateBuiltinRawPointerType( + const swift::BuiltinRawPointerType& type); + codeql::BuiltinRawUnsafeContinuationType translateBuiltinRawUnsafeContinuationType( + const swift::BuiltinRawUnsafeContinuationType& type); + codeql::BuiltinUnsafeValueBufferType translateBuiltinUnsafeValueBufferType( + const swift::BuiltinUnsafeValueBufferType& type); + codeql::BuiltinVectorType translateBuiltinVectorType(const swift::BuiltinVectorType& type); private: void fillType(const swift::TypeBase& type, codeql::Type& entry); @@ -58,6 +79,13 @@ class TypeVisitor : public TypeVisitorBase { void emitAnyFunctionType(const swift::AnyFunctionType* type, TrapLabel label); void emitBoundGenericType(swift::BoundGenericType* type, TrapLabel label); void emitAnyGenericType(swift::AnyGenericType* type, TrapLabel label); + + template + auto createEntry(const T& type) { + TrapClassOf entry{dispatcher_.assignNewLabel(type)}; + fillType(type, entry); + return entry; + } }; } // namespace codeql diff --git a/swift/ql/lib/codeql/swift/elements/type/ExistentialType.qll b/swift/ql/lib/codeql/swift/elements/type/ExistentialType.qll index 2f3241dcc44..6730daf49cf 100644 --- a/swift/ql/lib/codeql/swift/elements/type/ExistentialType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/ExistentialType.qll @@ -1,6 +1,4 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file private import codeql.swift.generated.type.ExistentialType -private import codeql.swift.elements.type.ProtocolType -class ExistentialType extends ExistentialTypeBase { - override ProtocolType getConstraint() { result = super.getConstraint() } -} +class ExistentialType extends ExistentialTypeBase { } diff --git a/swift/ql/lib/codeql/swift/generated/type/ProtocolCompositionType.qll b/swift/ql/lib/codeql/swift/generated/type/ProtocolCompositionType.qll index 863f8c8ca8b..594338def93 100644 --- a/swift/ql/lib/codeql/swift/generated/type/ProtocolCompositionType.qll +++ b/swift/ql/lib/codeql/swift/generated/type/ProtocolCompositionType.qll @@ -3,4 +3,15 @@ import codeql.swift.elements.type.Type class ProtocolCompositionTypeBase extends @protocol_composition_type, Type { override string getAPrimaryQlClass() { result = "ProtocolCompositionType" } + + Type getMember(int index) { + exists(Type x | + protocol_composition_type_members(this, index, x) and + result = x.resolve() + ) + } + + Type getAMember() { result = getMember(_) } + + int getNumberOfMembers() { result = count(getAMember()) } } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index f306d471380..c726cd7635b 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -274,6 +274,13 @@ 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 ref +); + existential_types( //dir=type unique int id: @existential_type, int constraint: @type ref diff --git a/swift/ql/test/TestUtils.qll b/swift/ql/test/TestUtils.qll index 9bfff38db4f..9359944fe90 100644 --- a/swift/ql/test/TestUtils.qll +++ b/swift/ql/test/TestUtils.qll @@ -9,13 +9,18 @@ predicate toBeTested(Element e) { ( e = loc or - e = loc.(ValueDecl).getInterfaceType() - or - e = loc.(NominalTypeDecl).getType() - or - e = loc.(VarDecl).getType() - or - e = loc.(Expr).getType() + exists(Type t | + (e = t or e = t.(ExistentialType).getConstraint() or e = t.getCanonicalType()) and + ( + t = loc.(ValueDecl).getInterfaceType() + or + t = loc.(NominalTypeDecl).getType() + or + t = loc.(VarDecl).getType() + or + t = loc.(Expr).getType() + ) + ) ) ) } diff --git a/swift/ql/test/extractor-tests/generated/File/File.ql b/swift/ql/test/extractor-tests/generated/File/File.ql index 9307342f2ff..158dca707f5 100644 --- a/swift/ql/test/extractor-tests/generated/File/File.ql +++ b/swift/ql/test/extractor-tests/generated/File/File.ql @@ -2,10 +2,9 @@ import codeql.swift.elements import TestUtils -from File x, string isUnknown, string getName +from File x, string getName where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getName = x.getName() -select x, "isUnknown:", isUnknown, "getName:", getName +select x, "getName:", getName diff --git a/swift/ql/test/extractor-tests/generated/Location/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/Location/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/Location/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql b/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql index 99207338efe..34180566f00 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql @@ -3,17 +3,16 @@ import codeql.swift.elements import TestUtils from - AccessorDecl x, string isUnknown, Type getInterfaceType, string getName, string isGetter, - string isSetter, string isWillSet, string isDidSet + AccessorDecl x, Type getInterfaceType, string getName, string isGetter, string isSetter, + string isWillSet, string isDidSet where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() and (if x.isGetter() then isGetter = "yes" else isGetter = "no") and (if x.isSetter() then isSetter = "yes" else isSetter = "no") and (if x.isWillSet() then isWillSet = "yes" else isWillSet = "no") and if x.isDidSet() then isDidSet = "yes" else isDidSet = "no" -select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName, - "isGetter:", isGetter, "isSetter:", isSetter, "isWillSet:", isWillSet, "isDidSet:", isDidSet +select x, "getInterfaceType:", getInterfaceType, "getName:", getName, "isGetter:", isGetter, + "isSetter:", isSetter, "isWillSet:", isWillSet, "isDidSet:", isDidSet diff --git a/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getLocation.ql deleted file mode 100644 index 92be90de057..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getLocation.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from AccessorDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getLocation() 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 5db864bfc22..d49e513615c 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql @@ -2,11 +2,10 @@ import codeql.swift.elements import TestUtils -from AssociatedTypeDecl x, string isUnknown, Type getInterfaceType, string getName +from AssociatedTypeDecl x, Type getInterfaceType, string getName where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() -select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName +select x, "getInterfaceType:", getInterfaceType, "getName:", getName diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getLocation.ql deleted file mode 100644 index 0a3561ae7b1..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getLocation.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from AssociatedTypeDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getLocation() 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 9cef07648fa..89f9f86507f 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql @@ -2,13 +2,11 @@ import codeql.swift.elements import TestUtils -from ClassDecl x, string isUnknown, Type getInterfaceType, string getName, Type getType +from ClassDecl x, Type getInterfaceType, string getName, Type getType where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() and getType = x.getType() -select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName, - "getType:", getType +select x, "getInterfaceType:", getInterfaceType, "getName:", getName, "getType:", getType diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getLocation.ql deleted file mode 100644 index 3231b1dd58a..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getLocation.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from ClassDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.ql index 28736643fdb..7b10f703bff 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.ql @@ -2,11 +2,10 @@ import codeql.swift.elements import TestUtils -from ConcreteFuncDecl x, string isUnknown, Type getInterfaceType, string getName +from ConcreteFuncDecl x, Type getInterfaceType, string getName where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() -select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName +select x, "getInterfaceType:", getInterfaceType, "getName:", getName 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 6575ebfb2cd..6f5c19ec720 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql @@ -2,13 +2,11 @@ import codeql.swift.elements import TestUtils -from EnumDecl x, string isUnknown, Type getInterfaceType, string getName, Type getType +from EnumDecl x, Type getInterfaceType, string getName, Type getType where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getInterfaceType = x.getInterfaceType() and getName = x.getName() and getType = x.getType() -select x, "isUnknown:", isUnknown, "getInterfaceType:", getInterfaceType, "getName:", getName, - "getType:", getType +select x, "getInterfaceType:", getInterfaceType, "getName:", getName, "getType:", getType diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getLocation.ql deleted file mode 100644 index 4f8482a4e06..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getLocation.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from EnumDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/expr/BridgeFromObjCExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/BridgeFromObjCExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/BridgeFromObjCExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr.ql b/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr.ql deleted file mode 100644 index 7412b7819fe..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr.ql +++ /dev/null @@ -1,11 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from BridgeToObjCExpr x, string isUnknown, Expr getSubExpr -where - toBeTested(x) and - not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and - getSubExpr = x.getSubExpr() -select x, "isUnknown:", isUnknown, "getSubExpr:", getSubExpr diff --git a/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getLocation.ql b/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getLocation.ql deleted file mode 100644 index 605f328ed19..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getLocation.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from BridgeToObjCExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/expr/ConditionalBridgeFromObjCExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/ConditionalBridgeFromObjCExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ConditionalBridgeFromObjCExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr.ql b/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr.ql index 3c66ef1f469..91ec5342fb6 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr.ql @@ -2,10 +2,9 @@ import codeql.swift.elements import TestUtils -from DotSelfExpr x, string isUnknown, Expr getSubExpr +from DotSelfExpr x, Expr getSubExpr where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getSubExpr = x.getSubExpr() -select x, "isUnknown:", isUnknown, "getSubExpr:", getSubExpr +select x, "getSubExpr:", getSubExpr diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr_getLocation.ql b/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr_getLocation.ql deleted file mode 100644 index a337b217c60..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/DotSelfExpr/DotSelfExpr_getLocation.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from DotSelfExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/expr/ErrorExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/ErrorExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ErrorExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjCSelectorExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/ObjCSelectorExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ObjCSelectorExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/SequenceExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/SequenceExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/SequenceExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql index 774f1119727..29327a3f86c 100644 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql @@ -2,11 +2,10 @@ import codeql.swift.elements import TestUtils -from UnresolvedDotExpr x, string isUnknown, Expr getBase, string getName +from UnresolvedDotExpr x, Expr getBase, string getName where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getBase = x.getBase() and getName = x.getName() -select x, "isUnknown:", isUnknown, "getBase:", getBase, "getName:", getName +select x, "getBase:", getBase, "getName:", getName diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getLocation.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getLocation.ql deleted file mode 100644 index 562131422a2..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getLocation.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from UnresolvedDotExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLocation() diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedMemberExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/UnresolvedMemberExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedMemberExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedSpecializeExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/UnresolvedSpecializeExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedSpecializeExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinBridgeObjectType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinBridgeObjectType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinBridgeObjectType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinDefaultActorStorageType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinDefaultActorStorageType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinDefaultActorStorageType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinExecutorType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinExecutorType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinExecutorType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinFloatType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinFloatType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinFloatType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerLiteralType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerLiteralType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerLiteralType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected new file mode 100644 index 00000000000..f50efd8d8d7 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected @@ -0,0 +1,5 @@ +| Builtin.Int8 | getDiagnosticsName: | Builtin.Int8 | getCanonicalType: | Builtin.Int8 | +| Builtin.Int16 | getDiagnosticsName: | Builtin.Int16 | getCanonicalType: | Builtin.Int16 | +| Builtin.Int32 | getDiagnosticsName: | Builtin.Int32 | getCanonicalType: | Builtin.Int32 | +| Builtin.Int64 | getDiagnosticsName: | Builtin.Int64 | getCanonicalType: | Builtin.Int64 | +| Builtin.Word | getDiagnosticsName: | Builtin.Word | getCanonicalType: | Builtin.Word | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql new file mode 100644 index 00000000000..6828ace5d1f --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql @@ -0,0 +1,11 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from BuiltinIntegerType x, string getDiagnosticsName, Type getCanonicalType +where + toBeTested(x) and + not x.isUnknown() and + getDiagnosticsName = x.getDiagnosticsName() and + getCanonicalType = x.getCanonicalType() +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.expected new file mode 100644 index 00000000000..350ab9ee53a --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.expected @@ -0,0 +1,4 @@ +| Builtin.Int8 | 8 | +| Builtin.Int16 | 16 | +| Builtin.Int32 | 32 | +| Builtin.Int64 | 64 | diff --git a/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql similarity index 71% rename from swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getType.ql rename to swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql index 077a2a9e82e..ebe05b7b0cb 100644 --- a/swift/ql/test/extractor-tests/generated/expr/BridgeToObjCExpr/BridgeToObjCExpr_getType.ql +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql @@ -2,6 +2,6 @@ import codeql.swift.elements import TestUtils -from BridgeToObjCExpr x +from BuiltinIntegerType x where toBeTested(x) and not x.isUnknown() -select x, x.getType() +select x, x.getWidth() diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/builtin_integer_types.swift b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/builtin_integer_types.swift new file mode 100644 index 00000000000..66c832a5ebc --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/builtin_integer_types.swift @@ -0,0 +1,8 @@ +//codeql-extractor-options: -parse-stdlib +func foo( + _: Builtin.Int8, + _: Builtin.Int16, + _: Builtin.Int32, + _: Builtin.Int64, + _: Builtin.Word +) {} diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinJobType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinJobType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinJobType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinNativeObjectType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinNativeObjectType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinNativeObjectType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinRawPointerType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinRawPointerType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinRawPointerType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinRawUnsafeContinuationType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinRawUnsafeContinuationType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinRawUnsafeContinuationType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected new file mode 100644 index 00000000000..be0aaa1c1ca --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected @@ -0,0 +1,11 @@ +| Builtin.BridgeObject | getDiagnosticsName: | Builtin.BridgeObject | getCanonicalType: | Builtin.BridgeObject | +| Builtin.DefaultActorStorage | getDiagnosticsName: | Builtin.DefaultActorStorage | getCanonicalType: | Builtin.DefaultActorStorage | +| Builtin.Executor | getDiagnosticsName: | Builtin.Executor | getCanonicalType: | Builtin.Executor | +| Builtin.FPIEEE32 | getDiagnosticsName: | Builtin.FPIEEE32 | getCanonicalType: | Builtin.FPIEEE32 | +| Builtin.FPIEEE64 | getDiagnosticsName: | Builtin.FPIEEE64 | getCanonicalType: | Builtin.FPIEEE64 | +| Builtin.IntLiteral | getDiagnosticsName: | Builtin.IntLiteral | getCanonicalType: | Builtin.IntLiteral | +| Builtin.Job | getDiagnosticsName: | Builtin.Job | getCanonicalType: | Builtin.Job | +| Builtin.NativeObject | getDiagnosticsName: | Builtin.NativeObject | getCanonicalType: | Builtin.NativeObject | +| Builtin.RawPointer | getDiagnosticsName: | Builtin.RawPointer | getCanonicalType: | Builtin.RawPointer | +| Builtin.RawUnsafeContinuation | getDiagnosticsName: | Builtin.RawUnsafeContinuation | getCanonicalType: | Builtin.RawUnsafeContinuation | +| Builtin.UnsafeValueBuffer | getDiagnosticsName: | Builtin.UnsafeValueBuffer | getCanonicalType: | Builtin.UnsafeValueBuffer | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql new file mode 100644 index 00000000000..d858afd70c8 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql @@ -0,0 +1,11 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from BuiltinType x, string getDiagnosticsName, Type getCanonicalType +where + toBeTested(x) and + not x.isUnknown() and + getDiagnosticsName = x.getDiagnosticsName() and + getCanonicalType = x.getCanonicalType() +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/builtin_types.swift b/swift/ql/test/extractor-tests/generated/type/BuiltinType/builtin_types.swift new file mode 100644 index 00000000000..671a1b8eca7 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/builtin_types.swift @@ -0,0 +1,14 @@ +//codeql-extractor-options: -parse-stdlib +func foo( + _: Builtin.IntLiteral, + _: Builtin.FPIEEE32, + _: Builtin.FPIEEE64, + _: Builtin.BridgeObject, + _: Builtin.DefaultActorStorage, + _: Builtin.Executor, + _: Builtin.Job, + _: Builtin.NativeObject, + _: Builtin.RawPointer, + _: Builtin.RawUnsafeContinuation, + _: Builtin.UnsafeValueBuffer +) {} diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinUnsafeValueBufferType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinUnsafeValueBufferType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinUnsafeValueBufferType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinVectorType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/BuiltinVectorType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinVectorType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql index 68468498ea9..a9ae23f6bab 100644 --- a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql +++ b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql @@ -2,15 +2,12 @@ import codeql.swift.elements import TestUtils -from - DynamicSelfType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, - Type getStaticSelfType +from DynamicSelfType x, string getDiagnosticsName, Type getCanonicalType, Type getStaticSelfType where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getStaticSelfType = x.getStaticSelfType() -select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", - getCanonicalType, "getStaticSelfType:", getStaticSelfType +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, + "getStaticSelfType:", getStaticSelfType diff --git a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.expected b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.expected index 30cd19ebd4e..22277bec084 100644 --- a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.expected +++ b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.expected @@ -1,2 +1,3 @@ | ExplicitExistential | getDiagnosticsName: | ExplicitExistential | getCanonicalType: | ExplicitExistential | getConstraint: | ExplicitExistential | | ImplicitExistential | getDiagnosticsName: | ImplicitExistential | getCanonicalType: | ImplicitExistential | getConstraint: | ImplicitExistential | +| P1 & P2 | getDiagnosticsName: | P1 & P2 | getCanonicalType: | P1 & P2 | getConstraint: | P1 & P2 | diff --git a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql index 22ad73eb91e..b679d5d89a2 100644 --- a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql @@ -2,15 +2,12 @@ import codeql.swift.elements import TestUtils -from - ExistentialType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, - Type getConstraint +from ExistentialType x, string getDiagnosticsName, Type getCanonicalType, Type getConstraint where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getConstraint = x.getConstraint() -select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", - getCanonicalType, "getConstraint:", getConstraint +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, + "getConstraint:", getConstraint diff --git a/swift/ql/test/extractor-tests/generated/type/ExistentialType/existential_types.swift b/swift/ql/test/extractor-tests/generated/type/ExistentialType/existential_types.swift index ade646efc74..8fad6cce47a 100644 --- a/swift/ql/test/extractor-tests/generated/type/ExistentialType/existential_types.swift +++ b/swift/ql/test/extractor-tests/generated/type/ExistentialType/existential_types.swift @@ -1,5 +1,8 @@ protocol ExplicitExistential {} protocol ImplicitExistential {} +protocol P1 {} +protocol P2 {} func foo1(_: any ExplicitExistential) {} func foo2(_: ImplicitExistential) {} // valid for now, will be an error in some future swift release +func foo3(_: any P1 & P2) {} diff --git a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql index cb004070ca5..973d0257381 100644 --- a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql +++ b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql @@ -2,15 +2,12 @@ import codeql.swift.elements import TestUtils -from - InOutType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, - Type getObjectType +from InOutType x, string getDiagnosticsName, Type getCanonicalType, Type getObjectType where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getObjectType = x.getObjectType() -select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", - getCanonicalType, "getObjectType:", getObjectType +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, + "getObjectType:", getObjectType diff --git a/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql index e5862e67de7..8306bfeacac 100644 --- a/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql @@ -3,19 +3,17 @@ import codeql.swift.elements import TestUtils from - NestedArchetypeType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, - string getName, Type getInterfaceType, ArchetypeType getParent, - AssociatedTypeDecl getAssociatedTypeDeclaration + NestedArchetypeType x, string getDiagnosticsName, Type getCanonicalType, string getName, + Type getInterfaceType, ArchetypeType getParent, AssociatedTypeDecl getAssociatedTypeDeclaration where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getName = x.getName() and getInterfaceType = x.getInterfaceType() and getParent = x.getParent() and getAssociatedTypeDeclaration = x.getAssociatedTypeDeclaration() -select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", - getCanonicalType, "getName:", getName, "getInterfaceType:", getInterfaceType, "getParent:", - getParent, "getAssociatedTypeDeclaration:", getAssociatedTypeDeclaration +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, + "getName:", getName, "getInterfaceType:", getInterfaceType, "getParent:", getParent, + "getAssociatedTypeDeclaration:", getAssociatedTypeDeclaration diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql index 63a04cfb03c..925bf85dcbf 100644 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql @@ -3,15 +3,14 @@ import codeql.swift.elements import TestUtils from - PrimaryArchetypeType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, - string getName, Type getInterfaceType + PrimaryArchetypeType x, string getDiagnosticsName, Type getCanonicalType, string getName, + Type getInterfaceType where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getName = x.getName() and getInterfaceType = x.getInterfaceType() -select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", - getCanonicalType, "getName:", getName, "getInterfaceType:", getInterfaceType +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, + "getName:", getName, "getInterfaceType:", getInterfaceType diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected new file mode 100644 index 00000000000..31d909f4c17 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected @@ -0,0 +1,4 @@ +| P1 & (P2 & P3) | getDiagnosticsName: | P1 & (P2 & P3) | getCanonicalType: | P1 & P2 & P3 | +| P1 & P2 & P3 | getDiagnosticsName: | P1 & P2 & P3 | getCanonicalType: | P1 & P2 & P3 | +| P1 & P23 | getDiagnosticsName: | P1 & P23 | getCanonicalType: | P1 & P2 & P3 | +| P2 & P4 | getDiagnosticsName: | P2 & P4 | getCanonicalType: | P2 & P4 | diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql new file mode 100644 index 00000000000..2253a888b1f --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql @@ -0,0 +1,11 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ProtocolCompositionType x, string getDiagnosticsName, Type getCanonicalType +where + toBeTested(x) and + not x.isUnknown() and + getDiagnosticsName = x.getDiagnosticsName() and + getCanonicalType = x.getCanonicalType() +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.expected b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.expected new file mode 100644 index 00000000000..4792394a757 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.expected @@ -0,0 +1,9 @@ +| P1 & (P2 & P3) | 0 | P1 | +| P1 & (P2 & P3) | 1 | (P2 & P3) | +| P1 & P2 & P3 | 0 | P1 | +| P1 & P2 & P3 | 1 | P2 | +| P1 & P2 & P3 | 2 | P3 | +| P1 & P23 | 0 | P1 | +| P1 & P23 | 1 | P23 | +| P2 & P4 | 0 | P2 | +| P2 & P4 | 1 | P4 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl_getLocation.ql b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql similarity index 61% rename from swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl_getLocation.ql rename to swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql index eeb02bedc0f..4804b223727 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl_getLocation.ql +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql @@ -2,6 +2,6 @@ import codeql.swift.elements import TestUtils -from ConcreteFuncDecl x +from ProtocolCompositionType x, int index where toBeTested(x) and not x.isUnknown() -select x, x.getLocation() +select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/protocol_composition.swift b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/protocol_composition.swift new file mode 100644 index 00000000000..ba760d00ef6 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/protocol_composition.swift @@ -0,0 +1,13 @@ +protocol P1 {} +protocol P2 {} +protocol P3 {} + +var x: P1 & P2 & P3 + +protocol P4: P1 {} +var y: P1 & P2 & P4 + +var z: P1 & (P2 & P3) + +typealias P23 = P2 & P3 +var zz: P1 & P23 diff --git a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql index 8f1acefdf8e..396988db25e 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql @@ -2,15 +2,12 @@ import codeql.swift.elements import TestUtils -from - UnmanagedStorageType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, - Type getReferentType +from UnmanagedStorageType x, string getDiagnosticsName, Type getCanonicalType, Type getReferentType where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getReferentType = x.getReferentType() -select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", - getCanonicalType, "getReferentType:", getReferentType +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, + "getReferentType:", getReferentType diff --git a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql index fbe93938336..17744a437d7 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql @@ -2,15 +2,12 @@ import codeql.swift.elements import TestUtils -from - UnownedStorageType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, - Type getReferentType +from UnownedStorageType x, string getDiagnosticsName, Type getCanonicalType, Type getReferentType where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getReferentType = x.getReferentType() -select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", - getCanonicalType, "getReferentType:", getReferentType +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, + "getReferentType:", getReferentType diff --git a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql index 7dc29f0861c..5a89dbcafab 100644 --- a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql +++ b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql @@ -2,15 +2,12 @@ import codeql.swift.elements import TestUtils -from - VariadicSequenceType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, - Type getBaseType +from VariadicSequenceType x, string getDiagnosticsName, Type getCanonicalType, Type getBaseType where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getBaseType = x.getBaseType() -select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", - getCanonicalType, "getBaseType:", getBaseType +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, + "getBaseType:", getBaseType diff --git a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql index 03e8331f3ab..3209b0e7d3d 100644 --- a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql @@ -2,15 +2,12 @@ import codeql.swift.elements import TestUtils -from - WeakStorageType x, string isUnknown, string getDiagnosticsName, Type getCanonicalType, - Type getReferentType +from WeakStorageType x, string getDiagnosticsName, Type getCanonicalType, Type getReferentType where toBeTested(x) and not x.isUnknown() and - (if x.isUnknown() then isUnknown = "yes" else isUnknown = "no") and getDiagnosticsName = x.getDiagnosticsName() and getCanonicalType = x.getCanonicalType() and getReferentType = x.getReferentType() -select x, "isUnknown:", isUnknown, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", - getCanonicalType, "getReferentType:", getReferentType +select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, + "getReferentType:", getReferentType From 68a341d72c373c5131bef21782f400da39f1320b Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 28 Jun 2022 12:06:19 +0200 Subject: [PATCH 176/736] Swift: use `createEntry` in the whole type visitor --- swift/extractor/visitors/TypeVisitor.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index 807e484e2d3..5754abf7aba 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -122,13 +122,13 @@ void TypeVisitor::visitParenType(swift::ParenType* type) { } codeql::OptionalType TypeVisitor::translateOptionalType(const swift::OptionalType& type) { - codeql::OptionalType entry{dispatcher_.assignNewLabel(type)}; + auto entry = createEntry(type); fillUnarySyntaxSugarType(type, entry); return entry; } codeql::ArraySliceType TypeVisitor::translateArraySliceType(const swift::ArraySliceType& type) { - codeql::ArraySliceType entry{dispatcher_.assignNewLabel(type)}; + auto entry = createEntry(type); fillUnarySyntaxSugarType(type, entry); return entry; } @@ -163,7 +163,7 @@ void TypeVisitor::visitLValueType(swift::LValueType* type) { codeql::PrimaryArchetypeType TypeVisitor::translatePrimaryArchetypeType( const swift::PrimaryArchetypeType& type) { - PrimaryArchetypeType entry{dispatcher_.assignNewLabel(type)}; + auto entry = createEntry(type); fillArchetypeType(type, entry); return entry; } @@ -183,7 +183,6 @@ void TypeVisitor::fillUnarySyntaxSugarType(const swift::UnarySyntaxSugarType& ty codeql::UnarySyntaxSugarType& entry) { assert(type.getBaseType() && "expect UnarySyntaxSugarType to have BaseType"); entry.base_type = dispatcher_.fetchLabel(type.getBaseType()); - fillType(type, entry); } void TypeVisitor::emitAnyFunctionType(const swift::AnyFunctionType* type, @@ -230,7 +229,7 @@ void TypeVisitor::emitAnyGenericType(swift::AnyGenericType* type, codeql::NestedArchetypeType TypeVisitor::translateNestedArchetypeType( const swift::NestedArchetypeType& type) { - codeql::NestedArchetypeType entry{dispatcher_.assignNewLabel(type)}; + auto entry = createEntry(type); entry.parent = dispatcher_.fetchLabel(type.getParent()); entry.associated_type_declaration = dispatcher_.fetchLabel(type.getAssocType()); fillArchetypeType(type, entry); @@ -247,34 +246,30 @@ void TypeVisitor::fillArchetypeType(const swift::ArchetypeType& type, ArchetypeT entry.name = type.getName().str().str(); entry.protocols = dispatcher_.fetchRepeatedLabels(type.getConformsTo()); entry.superclass = dispatcher_.fetchOptionalLabel(type.getSuperclass()); - fillType(type, entry); } codeql::ExistentialType TypeVisitor::translateExistentialType(const swift::ExistentialType& type) { - codeql::ExistentialType entry{dispatcher_.assignNewLabel(type)}; + auto entry = createEntry(type); entry.constraint = dispatcher_.fetchLabel(type.getConstraintType()); - fillType(type, entry); return entry; } codeql::DynamicSelfType TypeVisitor::translateDynamicSelfType(const swift::DynamicSelfType& type) { - codeql::DynamicSelfType entry{dispatcher_.assignNewLabel(type)}; + auto entry = createEntry(type); entry.static_self_type = dispatcher_.fetchLabel(type.getSelfType()); - fillType(type, entry); return entry; } codeql::VariadicSequenceType TypeVisitor::translateVariadicSequenceType( const swift::VariadicSequenceType& type) { - codeql::VariadicSequenceType entry{dispatcher_.assignNewLabel(type)}; + auto entry = createEntry(type); fillUnarySyntaxSugarType(type, entry); return entry; } codeql::InOutType TypeVisitor::translateInOutType(const swift::InOutType& type) { - codeql::InOutType entry{dispatcher_.assignNewLabel(type)}; + auto entry = createEntry(type); entry.object_type = dispatcher_.fetchLabel(type.getObjectType()); - fillType(type, entry); return entry; } From 5dfc3c65373d938acba55f2a69b998dad1c39d31 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 12:10:26 +0200 Subject: [PATCH 177/736] Python: rename change note again --- .../{2022-28-06-api-graph-api.md => 2022-06-28-api-graph-api.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename python/ql/lib/change-notes/{2022-28-06-api-graph-api.md => 2022-06-28-api-graph-api.md} (100%) diff --git a/python/ql/lib/change-notes/2022-28-06-api-graph-api.md b/python/ql/lib/change-notes/2022-06-28-api-graph-api.md similarity index 100% rename from python/ql/lib/change-notes/2022-28-06-api-graph-api.md rename to python/ql/lib/change-notes/2022-06-28-api-graph-api.md From b3b53360ae80fbcd54be1ef5cf413117a382298a Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 28 Jun 2022 12:14:28 +0200 Subject: [PATCH 178/736] Python: change category to deprecated because library is apparently supported anymore --- python/ql/lib/change-notes/2022-06-28-api-graph-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/change-notes/2022-06-28-api-graph-api.md b/python/ql/lib/change-notes/2022-06-28-api-graph-api.md index caae8e33a70..ef6ff3d4f76 100644 --- a/python/ql/lib/change-notes/2022-06-28-api-graph-api.md +++ b/python/ql/lib/change-notes/2022-06-28-api-graph-api.md @@ -1,8 +1,8 @@ --- -category: library +category: deprecated --- -* The documentation of API graphs (the `API` module) has been expanded, and some of the members predicates of `API::Node` +- The documentation of API graphs (the `API` module) has been expanded, and some of the members predicates of `API::Node` have been renamed as follows: - `getAnImmediateUse` -> `asSource` - `getARhs` -> `asSink` From 131524d867e2b63d892decf4872a7cd2c2e29fd1 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 28 Jun 2022 12:16:08 +0200 Subject: [PATCH 179/736] Swift: accept test changes These are due to the changes on `toBeTested` that include canonical types. --- .../type/UnmanagedStorageType/UnmanagedStorageType.expected | 1 + .../type/UnownedStorageType/UnownedStorageType.expected | 1 + .../generated/type/WeakStorageType/WeakStorageType.expected | 1 + 3 files changed, 3 insertions(+) diff --git a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.expected b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.expected index 1841fffc8c2..bd7b78838c7 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.expected +++ b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.expected @@ -1 +1,2 @@ | A? | getDiagnosticsName: | A? | getCanonicalType: | Optional | getReferentType: | A? | +| Optional | getDiagnosticsName: | Optional | getCanonicalType: | Optional | getReferentType: | Optional | diff --git a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.expected b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.expected index 1841fffc8c2..bd7b78838c7 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.expected +++ b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.expected @@ -1 +1,2 @@ | A? | getDiagnosticsName: | A? | getCanonicalType: | Optional | getReferentType: | A? | +| Optional | getDiagnosticsName: | Optional | getCanonicalType: | Optional | getReferentType: | Optional | diff --git a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.expected b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.expected index 1841fffc8c2..bd7b78838c7 100644 --- a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.expected +++ b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.expected @@ -1 +1,2 @@ | A? | getDiagnosticsName: | A? | getCanonicalType: | Optional | getReferentType: | A? | +| Optional | getDiagnosticsName: | Optional | getCanonicalType: | Optional | getReferentType: | Optional | From 834d2603a27c70bb3d884b5539350b792d1eedff Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 28 Jun 2022 11:15:37 +0000 Subject: [PATCH 180/736] python: update use of barrier guard --- .../dataflow/TarSlipCustomizations.qll | 53 +++++++++++-------- .../{TarSlip.qll => TarSlipQuery.qll} | 2 +- python/ql/src/Security/CWE-022/TarSlip.ql | 2 +- 3 files changed, 32 insertions(+), 25 deletions(-) rename python/ql/lib/semmle/python/security/dataflow/{TarSlip.qll => TarSlipQuery.qll} (91%) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll index db062a23088..38fb99c49c3 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll @@ -32,12 +32,14 @@ module TarSlip { abstract class Sanitizer extends DataFlow::Node { } /** + * DEPRECATED: Use `Sanitizer` instead. + * * A sanitizer guard for "tar slip" vulnerabilities. */ - abstract class SanitizerGuard extends DataFlow::BarrierGuard { } + abstract deprecated class SanitizerGuard extends DataFlow::BarrierGuard { } /** - * A source of exception info, considered as a flow source. + * A call to `tarfile.open`, considered as a flow source. */ class TarfileOpen extends Source { TarfileOpen() { @@ -45,7 +47,7 @@ module TarSlip { // If argument refers to a string object, then it's a hardcoded path and // this tarfile is safe. not this.(DataFlow::CallCfgNode).getArg(0).getALocalSource().asExpr() instanceof StrConst and - /* Ignore opens within the tarfile module itself */ + // Ignore opens within the tarfile module itself not this.getLocation().getFile().getBaseName() = "tarfile.py" } } @@ -109,6 +111,29 @@ module TarSlip { } } + /** + * Holds if `g` clears taint for `tarInfo`. + * + * The test `if (info.name)` should clear taint for `info`, + * where `` is any function matching `"%path"`. + * `info` is assumed to be a `TarInfo` instance. + */ + predicate tarFileInfoSanitizer(DataFlow::GuardNode g, ControlFlowNode tarInfo, boolean branch) { + exists(CallNode call, AttrNode attr | + g = call and + // We must test the name of the tar info object. + attr = call.getAnArg() and + attr.getName() = "name" and + attr.getObject() = tarInfo + | + // Assume that any test with "path" in it is a sanitizer + call.getAChild*().(AttrNode).getName().matches("%path") + or + call.getAChild*().(NameNode).getId().matches("%path") + ) and + branch in [true, false] + } + /** * A sanitizer guard heuristic. * @@ -116,27 +141,9 @@ module TarSlip { * where `` is any function matching `"%path"`. * `info` is assumed to be a `TarInfo` instance. */ - class TarFileInfoSanitizer extends SanitizerGuard { - ControlFlowNode tarInfo; - + class TarFileInfoSanitizer extends Sanitizer { TarFileInfoSanitizer() { - exists(CallNode call, AttrNode attr | - this = call and - // We must test the name of the tar info object. - attr = call.getAnArg() and - attr.getName() = "name" and - attr.getObject() = tarInfo - | - // Assume that any test with "path" in it is a sanitizer - call.getAChild*().(AttrNode).getName().matches("%path") - or - call.getAChild*().(NameNode).getId().matches("%path") - ) - } - - override predicate checks(ControlFlowNode checked, boolean branch) { - checked = tarInfo and - branch in [true, false] + this = DataFlow::BarrierGuard::getABarrierNode() } } } diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlip.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll similarity index 91% rename from python/ql/lib/semmle/python/security/dataflow/TarSlip.qll rename to python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll index 90c79da1f04..e69d63fedbc 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlip.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll @@ -23,7 +23,7 @@ class Configuration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } - override predicate isSanitizerGuard(DataFlow::BarrierGuard guard) { + deprecated override predicate isSanitizerGuard(DataFlow::BarrierGuard guard) { guard instanceof SanitizerGuard } } diff --git a/python/ql/src/Security/CWE-022/TarSlip.ql b/python/ql/src/Security/CWE-022/TarSlip.ql index 1528be7377d..b2ad6cb3372 100644 --- a/python/ql/src/Security/CWE-022/TarSlip.ql +++ b/python/ql/src/Security/CWE-022/TarSlip.ql @@ -13,7 +13,7 @@ */ import python -import semmle.python.security.dataflow.TarSlip +import semmle.python.security.dataflow.TarSlipQuery import DataFlow::PathGraph from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink From 112caa3f5d851b8d372af44cfa8768b688a10df0 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Tue, 28 Jun 2022 13:23:44 +0200 Subject: [PATCH 181/736] rewrite qldoc based on review --- .../ql/lib/semmle/javascript/dataflow/TaintTracking.qll | 4 +--- .../dataflow/UnsafeHtmlConstructionCustomizations.qll | 2 +- .../javascript/security/dataflow/XssThroughDomQuery.qll | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll b/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll index 3e930b652d6..6b5604f9135 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/TaintTracking.qll @@ -1126,9 +1126,7 @@ module TaintTracking { ) } - /** - * Holds if `test` is of the form `typeof x === "something"`, preventing `x` from being a string in some cases. - */ + /** A test for the value of `typeof x`, restricting the potential types of `x`. */ predicate isStringTypeGuard(EqualityTest test, Expr operand, boolean polarity) { exists(TypeofTag tag | TaintTracking::isTypeofGuard(test, operand, tag) | // typeof x === "string" sanitizes `x` when it evaluates to false diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll index ffb731aface..d594da271b8 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll @@ -181,7 +181,7 @@ module UnsafeHtmlConstruction { override string describe() { result = "Markdown rendering" } } - /** A test of form `typeof x === "something"`, preventing `x` from being a string in some cases. */ + /** A test for the value of `typeof x`, restricting the potential types of `x`. */ class TypeTestGuard extends TaintTracking::SanitizerGuardNode, DataFlow::ValueNode { override EqualityTest astNode; Expr operand; diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/XssThroughDomQuery.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/XssThroughDomQuery.qll index 5863a0db92f..38246762c49 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/XssThroughDomQuery.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/XssThroughDomQuery.qll @@ -51,7 +51,7 @@ class Configuration extends TaintTracking::Configuration { } } -/** A test of form `typeof x === "something"`, preventing `x` from being a string in some cases. */ +/** A test for the value of `typeof x`, restricting the potential types of `x`. */ class TypeTestGuard extends TaintTracking::SanitizerGuardNode, DataFlow::ValueNode { override EqualityTest astNode; Expr operand; From 1dc26a0ca3a37ea2fdd1f484679b7f06afc25871 Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Tue, 28 Jun 2022 08:50:54 -0400 Subject: [PATCH 182/736] Update ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll Co-authored-by: Harry Maclean --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 16e52f62ff5..30e2e0e992f 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -336,7 +336,7 @@ class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { ActiveRecordInstanceMethodCall() { this.getReceiver() = instance } - /** Gets the `ActiveRecordInstance` that this is the receiver of this call. */ + /** Gets the `ActiveRecordInstance` that is the receiver of this call. */ ActiveRecordInstance getInstance() { result = instance } } From 33d1aae92a67ff2446f355d834a7801c6d5eefab Mon Sep 17 00:00:00 2001 From: Brandon Stewart <20469703+boveus@users.noreply.github.com> Date: Tue, 28 Jun 2022 08:51:01 -0400 Subject: [PATCH 183/736] Update ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll Co-authored-by: Harry Maclean --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 30e2e0e992f..cc63e64a083 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -330,7 +330,7 @@ class ActiveRecordInstance extends DataFlow::Node { ActiveRecordModelClass getClass() { result = instantiation.getClass() } } -/** The `ActiveRecordInstance` receiver of this call. */ +/** A call whose receiver may be an active record model object */ class ActiveRecordInstanceMethodCall extends DataFlow::CallNode { private ActiveRecordInstance instance; From a7bd2030b670d6d73766b5b7c514af15b2e4044c Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 28 Jun 2022 13:52:26 +0100 Subject: [PATCH 184/736] Address review comments --- .../creating-and-working-with-codeql-packs.rst | 2 +- .../codeql-cli/publishing-and-using-codeql-packs.rst | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/codeql/codeql-cli/creating-and-working-with-codeql-packs.rst b/docs/codeql/codeql-cli/creating-and-working-with-codeql-packs.rst index e6a679c89a9..da7a0872803 100644 --- a/docs/codeql/codeql-cli/creating-and-working-with-codeql-packs.rst +++ b/docs/codeql/codeql-cli/creating-and-working-with-codeql-packs.rst @@ -73,6 +73,6 @@ This command downloads all dependencies to the shared cache on the local disk. Note - By default ``codeql pack install`` will install dependencies from the GitHub.com Container registry. + By default ``codeql pack install`` will install dependencies from the Container registry on GitHub.com. You can install dependencies from a GitHub Enterprise Server Container registry by creating a ``qlconfig.yml`` file. For more information, see ":doc:`Publishing and using CodeQL packs `." diff --git a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst index 4e7b8d452ac..e58277d3113 100644 --- a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst +++ b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst @@ -76,10 +76,16 @@ The ``analyze`` command will run the default suite of any specified CodeQL packs Managing packs on GitHub Enterprise Server ------------------------------------------ -By default, CodeQL will download packs from and publish packs to the GitHub.com Container registry. +.. pull-quote:: + + Note + + Managing packs on GitHub Enterprise Server is only available for GitHub Enterprise Server 3.6 and later. + +By default, CodeQL will download packs from and publish packs to the Container registry on GitHub.com. You can manage packs on GitHub Enterprise Server 3.6 and later by creating a ``qlconfig.yml`` file to tell CodeQL which Container registry to use for each pack. Create the ``~/.codeql/qlconfig.yml`` file using your preferred text editor, and add entries to specify which registry to use for each pack name pattern. -For example, the following ``qlconfig.yml`` file associates all packs with the Container registry for the GitHub Enterprise Server at ``GHE_HOSTNAME``, except packs matching ``codeql/*``, which are associated with the GitHub.com Container registry: +For example, the following ``qlconfig.yml`` file associates all packs with the Container registry for the GitHub Enterprise Server at ``GHE_HOSTNAME``, except packs matching ``codeql/*``, which are associated with the Container registry on GitHub.com: .. code-block:: yaml @@ -96,7 +102,7 @@ Authenticating to GitHub Container registries You can download a private pack or publish a pack by authenticating to the appropriate GitHub Container registry. -You can authenticate to the GitHub.com Container registry in two ways: +You can authenticate to the Container registry on GitHub.com in two ways: 1. Pass the ``--github-auth-stdin`` option to the CodeQL CLI, then supply a GitHub Apps token or personal access token via standard input. 2. Set the ``GITHUB_TOKEN`` environment variable to a GitHub Apps token or personal access token. From 71758695189bbbfc581c36296193b36ab82f8596 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 28 Jun 2022 15:17:18 +0200 Subject: [PATCH 185/736] Swift: add missing newlines in trap This is mostly cosmetic and for debugging, as the trap importer is perfectly happy with trap entries on the same line without spaces between them. --- swift/codegen/templates/cpp_classes_cpp.mustache | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/codegen/templates/cpp_classes_cpp.mustache b/swift/codegen/templates/cpp_classes_cpp.mustache index fbe403bcc0f..d78c89fc3c7 100644 --- a/swift/codegen/templates/cpp_classes_cpp.mustache +++ b/swift/codegen/templates/cpp_classes_cpp.mustache @@ -24,10 +24,10 @@ void {{name}}::emit({{^final}}TrapLabel<{{name}}Tag> id, {{/final}}std::ostream& {{#is_repeated}} for (auto i = 0u; i < {{field_name}}.size(); ++i) { {{^is_optional}} - out << {{trap_name}}Trap{id, i, {{field_name}}[i]}; + out << {{trap_name}}Trap{id, i, {{field_name}}[i]} << '\n'; {{/is_optional}} {{#is_optional}} - if ({{field_name}}[i]) out << {{trap_name}}Trap{id, i, *{{field_name}}[i]}; + if ({{field_name}}[i]) out << {{trap_name}}Trap{id, i, *{{field_name}}[i]} << '\n'; {{/is_optional}} } {{/is_repeated}} From 82c9b8b49485ff0b54300464fc4b785f9e90a5f0 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 23 Jun 2022 18:19:30 +0200 Subject: [PATCH 186/736] C++: Ensure only one `Variable` exists for every global variable Depending on the extraction order, before this change there might be multiple `GlobalVariable`s per declared global variable. See the tests in `cpp/ql/test/library-tests/variables/global`. This change ensures that only one of those `GlobalVariable`s is visible to the user if we can locate a unique definition. If not, the old situation persists. Note that an exception needs to be made for templated variables. Here, the definition refers to the non-instantiated template, while a declaration that is not a definition refers to an instantiation. In case the instantiation refers to a template parameter, the mangled names of the template and the instantiation will be identical. This happens for example in the following case: ``` template T x = T(42); // Uninstantiated templated variable template class C { T y = x; // Instantiation using a template parameter }; ``` Since the uninstantiated template and the instantiation are two different entities, we do not unify them as described above. --- cpp/ql/lib/semmle/code/cpp/Element.qll | 4 ++ cpp/ql/lib/semmle/code/cpp/Variable.qll | 3 + .../cpp/internal/ResolveGlobalVariable.qll | 60 +++++++++++++++++++ .../variables/global/variables.expected | 4 -- 4 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 cpp/ql/lib/semmle/code/cpp/internal/ResolveGlobalVariable.qll diff --git a/cpp/ql/lib/semmle/code/cpp/Element.qll b/cpp/ql/lib/semmle/code/cpp/Element.qll index 9e4ef7f5f8d..79df774d80f 100644 --- a/cpp/ql/lib/semmle/code/cpp/Element.qll +++ b/cpp/ql/lib/semmle/code/cpp/Element.qll @@ -6,6 +6,7 @@ import semmle.code.cpp.Location private import semmle.code.cpp.Enclosing private import semmle.code.cpp.internal.ResolveClass +private import semmle.code.cpp.internal.ResolveGlobalVariable /** * Get the `Element` that represents this `@element`. @@ -28,9 +29,12 @@ Element mkElement(@element e) { unresolveElement(result) = e } pragma[inline] @element unresolveElement(Element e) { not result instanceof @usertype and + not result instanceof @variable and result = e or e = resolveClass(result) + or + e = resolveGlobalVariable(result) } /** diff --git a/cpp/ql/lib/semmle/code/cpp/Variable.qll b/cpp/ql/lib/semmle/code/cpp/Variable.qll index 2e3d6bf3ca2..7e188980b9c 100644 --- a/cpp/ql/lib/semmle/code/cpp/Variable.qll +++ b/cpp/ql/lib/semmle/code/cpp/Variable.qll @@ -6,6 +6,7 @@ import semmle.code.cpp.Element import semmle.code.cpp.exprs.Access import semmle.code.cpp.Initializer private import semmle.code.cpp.internal.ResolveClass +private import semmle.code.cpp.internal.ResolveGlobalVariable /** * A C/C++ variable. For example, in the following code there are four @@ -32,6 +33,8 @@ private import semmle.code.cpp.internal.ResolveClass * can have multiple declarations. */ class Variable extends Declaration, @variable { + Variable() { isVariable(underlyingElement(this)) } + override string getAPrimaryQlClass() { result = "Variable" } /** Gets the initializer of this variable, if any. */ diff --git a/cpp/ql/lib/semmle/code/cpp/internal/ResolveGlobalVariable.qll b/cpp/ql/lib/semmle/code/cpp/internal/ResolveGlobalVariable.qll new file mode 100644 index 00000000000..219d45e2991 --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/internal/ResolveGlobalVariable.qll @@ -0,0 +1,60 @@ +private predicate hasDefinition(@globalvariable g) { + exists(@var_decl vd | var_decls(vd, g, _, _, _) | var_def(vd)) +} + +pragma[noinline] +private predicate onlyOneCompleteGlobalVariableExistsWithMangledName(@mangledname name) { + strictcount(@globalvariable g | hasDefinition(g) and mangled_name(g, name)) = 1 +} + +/** Holds if `g` is a unique global variable with a definition named `name`. */ +pragma[noinline] +private predicate isGlobalWithMangledNameAndWithDefinition(@mangledname name, @globalvariable g) { + hasDefinition(g) and + mangled_name(g, name) and + onlyOneCompleteGlobalVariableExistsWithMangledName(name) +} + +/** Holds if `g` is a global variable without a definition named `name`. */ +pragma[noinline] +private predicate isGlobalWithMangledNameAndWithoutDefinition(@mangledname name, @globalvariable g) { + not hasDefinition(g) and + mangled_name(g, name) +} + +/** + * Holds if `incomplete` is a global variable without a definition, and there exists + * a unique global variable `complete` with the same name that does have a definition. + */ +private predicate hasTwinWithDefinition(@globalvariable incomplete, @globalvariable complete) { + exists(@mangledname name | + not variable_instantiation(incomplete, complete) and + isGlobalWithMangledNameAndWithoutDefinition(name, incomplete) and + isGlobalWithMangledNameAndWithDefinition(name, complete) + ) +} + +import Cached + +cached +private module Cached { + /** + * If `v` is a global variable without a definition, and there exists a unique + * global variable with the same name that does have a definition, then the + * result is that unique global variable. Otherwise, the result is `v`. + */ + cached + @variable resolveGlobalVariable(@variable v) { + hasTwinWithDefinition(v, result) + or + not hasTwinWithDefinition(v, _) and + result = v + } + + cached + predicate isVariable(@variable v) { + not v instanceof @globalvariable + or + v = resolveGlobalVariable(_) + } +} diff --git a/cpp/ql/test/library-tests/variables/global/variables.expected b/cpp/ql/test/library-tests/variables/global/variables.expected index d66899e62fa..9d022a98264 100644 --- a/cpp/ql/test/library-tests/variables/global/variables.expected +++ b/cpp/ql/test/library-tests/variables/global/variables.expected @@ -4,11 +4,7 @@ | c.c:6:5:6:6 | ls | array of 4 {int} | 1 | | c.c:8:5:8:7 | iss | array of 4 {array of 2 {int}} | 1 | | c.c:12:11:12:11 | i | typedef {int} as "int_alias" | 1 | -| c.h:4:12:4:13 | ks | array of {int} | 1 | -| c.h:8:12:8:14 | iss | array of {array of 2 {int}} | 1 | -| c.h:10:12:10:12 | i | int | 1 | | d.cpp:3:7:3:8 | xs | array of {int} | 1 | -| d.h:3:14:3:15 | xs | array of 2 {int} | 1 | | file://:0:0:0:0 | (unnamed parameter 0) | reference to {const {struct __va_list_tag}} | 1 | | file://:0:0:0:0 | (unnamed parameter 0) | rvalue reference to {struct __va_list_tag} | 1 | | file://:0:0:0:0 | fp_offset | unsigned int | 1 | From a7956ad422d6a8d46128b69824dc87d2b5dccc27 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 24 Jun 2022 10:15:17 +0200 Subject: [PATCH 187/736] C++: Add change note --- cpp/ql/lib/change-notes/2022-06-24-unique-variable.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2022-06-24-unique-variable.md diff --git a/cpp/ql/lib/change-notes/2022-06-24-unique-variable.md b/cpp/ql/lib/change-notes/2022-06-24-unique-variable.md new file mode 100644 index 00000000000..e04dde1290a --- /dev/null +++ b/cpp/ql/lib/change-notes/2022-06-24-unique-variable.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Under certain circumstances a variable declaration that is not also a definition could be associated with a `Variable` that did not have the definition as a `VariableDeclarationEntry`. This is now fixed, and a unique `Variable` will exist that has both the declaration and the definition as a `VariableDeclarationEntry`. From 3026456a39b77361ae5821e95ca2a6aee17b8688 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 28 Jun 2022 14:38:13 +0100 Subject: [PATCH 188/736] Kotlin: Make more methods private --- java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt | 4 ++-- .../src/main/kotlin/utils/TypeSubstitution.kt | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt b/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt index dce49790e0e..57a3e92e6b2 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt @@ -55,7 +55,7 @@ private val specialFunctions = mapOf( private val specialFunctionShortNames = specialFunctions.keys.map { it.functionName }.toSet() -fun getSpecialJvmName(f: IrFunction): String? { +private fun getSpecialJvmName(f: IrFunction): String? { if (specialFunctionShortNames.contains(f.name) && f is IrSimpleFunction) { f.allOverridden(true).forEach { overriddenFunc -> overriddenFunc.parentClassOrNull?.fqNameWhenAvailable?.let { parentFqName -> @@ -87,4 +87,4 @@ fun getJvmName(container: IrAnnotationContainer): String? { } } return (container as? IrFunction)?.let { getSpecialJvmName(container) } -} \ No newline at end of file +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt b/java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt index b249bb0091a..694b3dff289 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt @@ -37,7 +37,7 @@ fun IrType.substituteTypeArguments(params: List, arguments: Lis else -> this } -fun IrSimpleType.substituteTypeArguments(substitutionMap: Map): IrSimpleType { +private fun IrSimpleType.substituteTypeArguments(substitutionMap: Map): IrSimpleType { if (substitutionMap.isEmpty()) return this val newArguments = arguments.map { @@ -100,7 +100,7 @@ private fun subProjectedType(substitutionMap: Map context.irBuiltIns.anyNType is IrTypeProjection -> when(this.variance) { @@ -111,7 +111,7 @@ fun IrTypeArgument.upperBound(context: IrPluginContext) = else -> context.irBuiltIns.anyNType } -fun IrTypeArgument.lowerBound(context: IrPluginContext) = +private fun IrTypeArgument.lowerBound(context: IrPluginContext) = when(this) { is IrStarProjection -> context.irBuiltIns.nothingType is IrTypeProjection -> when(this.variance) { @@ -200,7 +200,7 @@ fun IrTypeArgument.withQuestionMark(b: Boolean): IrTypeArgument = typealias TypeSubstitution = (IrType, KotlinUsesExtractor.TypeContext, IrPluginContext) -> IrType -fun matchingTypeParameters(l: IrTypeParameter?, r: IrTypeParameter): Boolean { +private fun matchingTypeParameters(l: IrTypeParameter?, r: IrTypeParameter): Boolean { if (l === r) return true if (l == null) From 364085a596592f0f28ec9afff6339aa7616dfcf5 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 28 Jun 2022 15:44:42 +0200 Subject: [PATCH 189/736] Swift: add DotSyntaxCallExpr tests --- .../expr/DotSyntaxCallExpr/DotSyntaxCallExpr.expected | 2 ++ .../expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql | 11 +++++++++++ .../DotSyntaxCallExpr_getArgument.expected | 2 ++ .../DotSyntaxCallExpr_getArgument.ql | 7 +++++++ .../DotSyntaxCallExpr_getType.expected | 2 ++ .../DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql | 7 +++++++ .../expr/DotSyntaxCallExpr/MISSING_SOURCE.txt | 4 ---- .../expr/DotSyntaxCallExpr/dot_syntax_call.swift | 7 +++++++ 8 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/dot_syntax_call.swift diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.expected b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.expected new file mode 100644 index 00000000000..d9f729ea4ac --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.expected @@ -0,0 +1,2 @@ +| dot_syntax_call.swift:6:1:6:3 | call to foo(_:_:) | getFunction: | dot_syntax_call.swift:6:3:6:3 | foo(_:_:) | getBaseExpr: | dot_syntax_call.swift:6:1:6:1 | X.Type | +| dot_syntax_call.swift:7:1:7:3 | call to bar() | getFunction: | dot_syntax_call.swift:7:3:7:3 | bar() | getBaseExpr: | dot_syntax_call.swift:7:1:7:1 | X.Type | diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql new file mode 100644 index 00000000000..d4fce9de8bc --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql @@ -0,0 +1,11 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from DotSyntaxCallExpr x, Expr getFunction, Expr getBaseExpr +where + toBeTested(x) and + not x.isUnknown() and + getFunction = x.getFunction() and + getBaseExpr = x.getBaseExpr() +select x, "getFunction:", getFunction, "getBaseExpr:", getBaseExpr diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected new file mode 100644 index 00000000000..64bdae371b7 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected @@ -0,0 +1,2 @@ +| dot_syntax_call.swift:6:1:6:3 | call to foo(_:_:) | 0 | : X.Type | +| dot_syntax_call.swift:7:1:7:3 | call to bar() | 0 | : X.Type | diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql new file mode 100644 index 00000000000..384f99edb51 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from DotSyntaxCallExpr x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getArgument(index) diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.expected new file mode 100644 index 00000000000..f59178625cf --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.expected @@ -0,0 +1,2 @@ +| dot_syntax_call.swift:6:1:6:3 | call to foo(_:_:) | (Int, Int) -> () | +| dot_syntax_call.swift:7:1:7:3 | call to bar() | () -> () | diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql new file mode 100644 index 00000000000..b7711a5d67c --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from DotSyntaxCallExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/dot_syntax_call.swift b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/dot_syntax_call.swift new file mode 100644 index 00000000000..f8b97e23898 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/dot_syntax_call.swift @@ -0,0 +1,7 @@ +class X { + static func foo(_: Int, _:Int) {} + class func bar() {} +} + +X.foo(1, 2) +X.bar() From 63376da90f1b3181654c394e7aff21dbb61e70f7 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Jun 2022 17:39:48 +0100 Subject: [PATCH 190/736] Swift: Add tests for LogicalOperaion.qll. --- .../expr/logicaloperation/logicaloperation.expected | 0 .../expr/logicaloperation/logicaloperation.ql | 12 ++++++++++++ .../expr/logicaloperation/logicaloperation.swift | 8 ++++++++ 3 files changed, 20 insertions(+) create mode 100644 swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.expected create mode 100644 swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.ql create mode 100644 swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.swift diff --git a/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.expected b/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.ql b/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.ql new file mode 100644 index 00000000000..8d943f725b2 --- /dev/null +++ b/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.ql @@ -0,0 +1,12 @@ +import swift + +string describe(LogicalOperation e) { + (e instanceof BinaryLogicalOperation and result = "BinaryLogicalExpr") or + (e instanceof LogicalAndExpr and result = "LogicalAndExpr") or + (e instanceof LogicalOrExpr and result = "LogicalOrExpr") or + (e instanceof UnaryLogicalOperation and result = "UnaryLogicalOperation") or + (e instanceof NotExpr and result = "NotExpr") +} + +from LogicalOperation e +select e, concat(describe(e), ", ") diff --git a/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.swift b/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.swift new file mode 100644 index 00000000000..a1af03ab2c0 --- /dev/null +++ b/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.swift @@ -0,0 +1,8 @@ + +func test(a: Bool, b: Bool, c: Bool) { + // logical operations + if (a && b) {} + if (a || b) {} + if (!a) {} + if (!((a && b) || c)) {} +} From 5c6ac2a5f2b14f761fed6974ac48d9731c0604c5 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 28 Jun 2022 16:15:05 +0200 Subject: [PATCH 191/736] Swift: accept test results --- .../generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected | 8 ++++---- .../expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected index cdf97ccd73a..9b22d5b34d4 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected @@ -3,8 +3,8 @@ | enum_is_case.swift:6:1:6:1 | ... is some | getSubExpr: | enum_is_case.swift:6:1:6:1 | 42 | getTypeRepr: | enum_is_case.swift:6:7:6:10 | ...? | getElement: | file://:0:0:0:0 | some | | enum_is_case.swift:7:1:7:1 | ... is some | getSubExpr: | enum_is_case.swift:7:1:7:1 | 42 | getTypeRepr: | enum_is_case.swift:7:7:7:11 | ...? | getElement: | file://:0:0:0:0 | some | | enum_is_case.swift:9:1:9:19 | ... is some | getSubExpr: | enum_is_case.swift:9:1:9:19 | [...] | getTypeRepr: | enum_is_case.swift:9:24:9:28 | [...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:20:1:20:18 | ... is some | getSubExpr: | enum_is_case.swift:20:1:20:18 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:20:23:20:23 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:22:1:22:5 | ... is some | getSubExpr: | enum_is_case.swift:22:1:22:5 | [...] | getTypeRepr: | enum_is_case.swift:22:10:22:12 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:19:1:19:18 | ... is some | getSubExpr: | enum_is_case.swift:19:1:19:18 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:19:23:19:23 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:21:1:21:5 | ... is some | getSubExpr: | enum_is_case.swift:21:1:21:5 | [...] | getTypeRepr: | enum_is_case.swift:21:10:21:12 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:22:1:22:10 | ... is some | getSubExpr: | enum_is_case.swift:22:1:22:10 | [...] | getTypeRepr: | enum_is_case.swift:22:15:22:25 | [... : ...] | getElement: | file://:0:0:0:0 | some | | enum_is_case.swift:23:1:23:10 | ... is some | getSubExpr: | enum_is_case.swift:23:1:23:10 | [...] | getTypeRepr: | enum_is_case.swift:23:15:23:25 | [... : ...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:24:1:24:10 | ... is some | getSubExpr: | enum_is_case.swift:24:1:24:10 | [...] | getTypeRepr: | enum_is_case.swift:24:15:24:25 | [... : ...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:25:1:25:8 | ... is some | getSubExpr: | enum_is_case.swift:25:1:25:8 | call to ... | getTypeRepr: | enum_is_case.swift:25:13:25:18 | ...<...> | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:24:1:24:8 | ... is some | getSubExpr: | enum_is_case.swift:24:1:24:8 | call to ... | getTypeRepr: | enum_is_case.swift:24:13:24:18 | ...<...> | getElement: | file://:0:0:0:0 | some | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected index b3a0100a061..f1a8bd34fda 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected @@ -3,8 +3,8 @@ | enum_is_case.swift:6:1:6:1 | ... is some | Bool | | enum_is_case.swift:7:1:7:1 | ... is some | Bool | | enum_is_case.swift:9:1:9:19 | ... is some | Bool | -| enum_is_case.swift:20:1:20:18 | ... is some | Bool | -| enum_is_case.swift:22:1:22:5 | ... is some | Bool | +| enum_is_case.swift:19:1:19:18 | ... is some | Bool | +| enum_is_case.swift:21:1:21:5 | ... is some | Bool | +| enum_is_case.swift:22:1:22:10 | ... is some | Bool | | enum_is_case.swift:23:1:23:10 | ... is some | Bool | -| enum_is_case.swift:24:1:24:10 | ... is some | Bool | -| enum_is_case.swift:25:1:25:8 | ... is some | Bool | +| enum_is_case.swift:24:1:24:8 | ... is some | Bool | From b98c482c47daf1f9b199e76ec9e5a725d8103e7b Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 28 Jun 2022 14:00:56 +0000 Subject: [PATCH 192/736] Python: Fix bad join in MRO `flatten_list` This bad join was identified by the join-order-badness report, which showed that: py/use-of-input:MRO::flatten_list#f4eaf05f#fff#9c5fe54whnlqffdgu65vhb8uhpg# (order_500000) calculated a whopping 212,820,108 tuples in order to produce an output of size 55516, roughly 3833 times more effort than needed. Here's a snippet of the slowest iteration of that predicate: ``` Tuple counts for MRO::flatten_list#f4eaf05f#fff/3@i1839#0265eb3w after 14ms: 0 ~0% {3} r1 = JOIN MRO::need_flattening#f4eaf05f#f#prev_delta WITH MRO::ConsList#f4eaf05f#fff#reorder_2_0_1#prev ON FIRST 1 OUTPUT Rhs.1, Lhs.0 'list', Rhs.2 0 ~0% {3} r2 = JOIN r1 WITH MRO::ClassList::length#f0820431#ff#prev ON FIRST 1 OUTPUT Lhs.2, Lhs.1 'list', Rhs.1 'n' 0 ~0% {3} r3 = JOIN r2 WITH MRO::ClassListList::flatten#dispred#f0820431#ff#prev ON FIRST 1 OUTPUT Lhs.1 'list', Lhs.2 'n', Rhs.1 'result' 0 ~0% {3} r4 = SCAN MRO::ConsList#f4eaf05f#fff#prev_delta OUTPUT In.2 'list', In.0, In.1 0 ~0% {3} r5 = JOIN r4 WITH MRO::need_flattening#f4eaf05f#f#prev ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.0 'list' 0 ~0% {3} r6 = JOIN r5 WITH MRO::ClassList::length#f0820431#ff#prev ON FIRST 1 OUTPUT Lhs.1, Lhs.2 'list', Rhs.1 'n' 0 ~0% {3} r7 = JOIN r6 WITH MRO::ClassListList::flatten#dispred#f0820431#ff#prev ON FIRST 1 OUTPUT Lhs.1 'list', Lhs.2 'n', Rhs.1 'result' 0 ~0% {3} r8 = r3 UNION r7 26355 ~2% {3} r9 = SCAN MRO::ConsList#f4eaf05f#fff#prev OUTPUT In.2 'list', In.0, In.1 0 ~0% {3} r10 = JOIN r9 WITH MRO::need_flattening#f4eaf05f#f#prev ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.0 'list' 0 ~0% {3} r11 = JOIN r10 WITH MRO::ClassList::length#f0820431#ff#prev_delta ON FIRST 1 OUTPUT Lhs.1, Lhs.2 'list', Rhs.1 'n' 0 ~0% {3} r12 = JOIN r11 WITH MRO::ClassListList::flatten#dispred#f0820431#ff#prev ON FIRST 1 OUTPUT Lhs.1 'list', Lhs.2 'n', Rhs.1 'result' ... ``` (... and a bunch more lines. The same construction appears several times, but the join order is the same each time.) Clearly it would be better to start with whatever is in `need_flattening`, and then do the other joins. This is what the present fix does (by unbinding `list` in all but the `needs_flattening` call). After the fix, the slowest iteration is as follows: ``` Tuple counts for MRO::flatten_list#f4eaf05f#fff/3@i2617#8155ab3w after 9ms: 0 ~0% {2} r1 = SCAN MRO::need_flattening#f4eaf05f#f#prev_delta OUTPUT In.0 'list', In.0 'list' 0 ~0% {3} r2 = JOIN r1 WITH MRO::ConsList#f4eaf05f#fff#reorder_2_0_1#prev ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'list', Rhs.2 0 ~0% {3} r3 = JOIN r2 WITH MRO::ClassList::length#f0820431#ff#prev ON FIRST 1 OUTPUT Lhs.2, Lhs.1 'list', Rhs.1 'n' 0 ~0% {3} r4 = JOIN r3 WITH MRO::ClassListList::flatten#dispred#f0820431#ff#prev ON FIRST 1 OUTPUT Lhs.1 'list', Lhs.2 'n', Rhs.1 'result' 1 ~0% {2} r5 = SCAN MRO::need_flattening#f4eaf05f#f#prev OUTPUT In.0 'list', In.0 'list' 0 ~0% {3} r6 = JOIN r5 WITH MRO::ConsList#f4eaf05f#fff#reorder_2_0_1#prev_delta ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'list', Rhs.2 0 ~0% {3} r7 = JOIN r6 WITH MRO::ClassList::length#f0820431#ff#prev ON FIRST 1 OUTPUT Lhs.2, Lhs.1 'list', Rhs.1 'n' 0 ~0% {3} r8 = JOIN r7 WITH MRO::ClassListList::flatten#dispred#f0820431#ff#prev ON FIRST 1 OUTPUT Lhs.1 'list', Lhs.2 'n', Rhs.1 'result' ... ``` (... and so on. The remainder is 0 tuples all the way.) In total, we went from ``` 40.6s | 7614 | 15ms @ 1839 | MRO::flatten_list#f4eaf05f#fff@0265eb3w ``` to ``` 7.8s | 7614 | 11ms @ 2617 | MRO::flatten_list#f4eaf05f#fff@8155ab3w ``` --- python/ql/lib/semmle/python/pointsto/MRO.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/pointsto/MRO.qll b/python/ql/lib/semmle/python/pointsto/MRO.qll index b1ea92b8c24..c1b9e859925 100644 --- a/python/ql/lib/semmle/python/pointsto/MRO.qll +++ b/python/ql/lib/semmle/python/pointsto/MRO.qll @@ -386,10 +386,10 @@ private class ClassListList extends TClassListList { private ClassList flatten_list(ClassListList list, int n) { need_flattening(list) and - exists(ClassList head, ClassListList tail | list = ConsList(head, tail) | + exists(ClassList head, ClassListList tail | pragma[only_bind_out](list) = ConsList(head, tail) | n = head.length() and result = tail.flatten() or - result = Cons(head.getItem(n), flatten_list(list, n + 1)) + result = Cons(head.getItem(n), flatten_list(pragma[only_bind_out](list), n + 1)) ) } From 363f7a88a9ac9c14d68c03473eeb707ea0c60ddc Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 28 Jun 2022 16:30:25 +0200 Subject: [PATCH 193/736] Swift: fix QL warnings about overriding methods The `getName` in `Type.qll` was issuing a warning in other generated classes having a `getName` from a `name` property in `schema.yml`. To fix the possible inconsistency, `diagnostic_name` is being renamed to `name` in the schema. Despite the scary doc comment on `swift::Type::getString` (namely `for use in diagnostics only`), that seems to be the right generic naming mechanism for types, and it coincides with the name we were extracting on types with an explicit `name` property. In case we find a case where `Type::getString` gives something wrong, we can probably just patch it on that specific type class. --- swift/codegen/schema.yml | 4 +--- swift/extractor/visitors/TypeVisitor.cpp | 5 ++--- .../swift/elements/type/AnyGenericType.qll | 6 ++--- .../lib/codeql/swift/elements/type/Type.qll | 4 +--- .../swift/generated/type/ArchetypeType.qll | 4 +--- .../generated/type/GenericTypeParamType.qll | 2 -- .../lib/codeql/swift/generated/type/Type.qll | 2 +- swift/ql/lib/swift.dbscheme | 6 ++--- .../BuiltinIntegerType.expected | 10 ++++----- .../BuiltinIntegerType/BuiltinIntegerType.ql | 6 ++--- .../type/BuiltinType/BuiltinType.expected | 22 +++++++++---------- .../generated/type/BuiltinType/BuiltinType.ql | 6 ++--- .../DynamicSelfType/DynamicSelfType.expected | 2 +- .../type/DynamicSelfType/DynamicSelfType.ql | 8 +++---- .../ExistentialType/ExistentialType.expected | 6 ++--- .../type/ExistentialType/ExistentialType.ql | 8 +++---- .../type/InOutType/InOutType.expected | 4 ++-- .../generated/type/InOutType/InOutType.ql | 8 +++---- .../NestedArchetypeType.expected | 8 +++---- .../NestedArchetypeType.ql | 13 +++++------ .../PrimaryArchetypeType.expected | 8 +++---- .../PrimaryArchetypeType.ql | 11 ++++------ .../ProtocolCompositionType.expected | 8 +++---- .../ProtocolCompositionType.ql | 6 ++--- .../UnmanagedStorageType.expected | 4 ++-- .../UnmanagedStorageType.ql | 8 +++---- .../UnownedStorageType.expected | 4 ++-- .../UnownedStorageType/UnownedStorageType.ql | 8 +++---- .../VariadicSequenceType.expected | 6 ++--- .../VariadicSequenceType.ql | 7 +++--- .../WeakStorageType/WeakStorageType.expected | 4 ++-- .../type/WeakStorageType/WeakStorageType.ql | 8 +++---- 32 files changed, 99 insertions(+), 117 deletions(-) diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index b95fedc10a9..f2e7837f2b2 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -32,7 +32,7 @@ Location: _pragma: qltest_skip Type: - diagnostics_name: string + name: string canonical_type: Type IterableDeclContext: @@ -245,14 +245,12 @@ WeakStorageType: ArchetypeType: _extends: SubstitutableType - name: string interface_type: Type superclass: Type? protocols: ProtocolDecl* GenericTypeParamType: _extends: SubstitutableType - name: string ParenType: _extends: SugarType diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index 5754abf7aba..4514692421e 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -152,7 +152,7 @@ void TypeVisitor::visitGenericFunctionType(swift::GenericFunctionType* type) { void TypeVisitor::visitGenericTypeParamType(swift::GenericTypeParamType* type) { auto label = dispatcher_.assignNewLabel(type); - dispatcher_.emit(GenericTypeParamTypesTrap{label, type->getName().str().str()}); + dispatcher_.emit(GenericTypeParamTypesTrap{label}); } void TypeVisitor::visitLValueType(swift::LValueType* type) { @@ -237,13 +237,12 @@ codeql::NestedArchetypeType TypeVisitor::translateNestedArchetypeType( } void TypeVisitor::fillType(const swift::TypeBase& type, codeql::Type& entry) { - entry.diagnostics_name = type.getString(); + entry.name = type.getString(); entry.canonical_type = dispatcher_.fetchLabel(type.getCanonicalType()); } void TypeVisitor::fillArchetypeType(const swift::ArchetypeType& type, ArchetypeType& entry) { entry.interface_type = dispatcher_.fetchLabel(type.getInterfaceType()); - entry.name = type.getName().str().str(); entry.protocols = dispatcher_.fetchRepeatedLabels(type.getConformsTo()); entry.superclass = dispatcher_.fetchOptionalLabel(type.getSuperclass()); } diff --git a/swift/ql/lib/codeql/swift/elements/type/AnyGenericType.qll b/swift/ql/lib/codeql/swift/elements/type/AnyGenericType.qll index dbdf4a9b27b..1dac1499152 100644 --- a/swift/ql/lib/codeql/swift/elements/type/AnyGenericType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/AnyGenericType.qll @@ -1,6 +1,4 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file private import codeql.swift.generated.type.AnyGenericType -private import codeql.swift.elements.decl.GenericTypeDecl -class AnyGenericType extends AnyGenericTypeBase { - string getName() { result = this.getDeclaration().(GenericTypeDecl).getName() } -} +class AnyGenericType extends AnyGenericTypeBase { } diff --git a/swift/ql/lib/codeql/swift/elements/type/Type.qll b/swift/ql/lib/codeql/swift/elements/type/Type.qll index 18d37ff8b40..1b357e65560 100644 --- a/swift/ql/lib/codeql/swift/elements/type/Type.qll +++ b/swift/ql/lib/codeql/swift/elements/type/Type.qll @@ -1,7 +1,5 @@ private import codeql.swift.generated.type.Type class Type extends TypeBase { - override string toString() { result = this.getDiagnosticsName() } - - string getName() { result = this.getDiagnosticsName() } + override string toString() { result = this.getName() } } diff --git a/swift/ql/lib/codeql/swift/generated/type/ArchetypeType.qll b/swift/ql/lib/codeql/swift/generated/type/ArchetypeType.qll index a3184728112..ef257500f64 100644 --- a/swift/ql/lib/codeql/swift/generated/type/ArchetypeType.qll +++ b/swift/ql/lib/codeql/swift/generated/type/ArchetypeType.qll @@ -4,11 +4,9 @@ import codeql.swift.elements.type.SubstitutableType import codeql.swift.elements.type.Type class ArchetypeTypeBase extends @archetype_type, SubstitutableType { - string getName() { archetype_types(this, result, _) } - Type getInterfaceType() { exists(Type x | - archetype_types(this, _, x) and + archetype_types(this, x) and result = x.resolve() ) } diff --git a/swift/ql/lib/codeql/swift/generated/type/GenericTypeParamType.qll b/swift/ql/lib/codeql/swift/generated/type/GenericTypeParamType.qll index c0b13904806..9f286d86cc7 100644 --- a/swift/ql/lib/codeql/swift/generated/type/GenericTypeParamType.qll +++ b/swift/ql/lib/codeql/swift/generated/type/GenericTypeParamType.qll @@ -3,6 +3,4 @@ import codeql.swift.elements.type.SubstitutableType class GenericTypeParamTypeBase extends @generic_type_param_type, SubstitutableType { override string getAPrimaryQlClass() { result = "GenericTypeParamType" } - - string getName() { generic_type_param_types(this, result) } } diff --git a/swift/ql/lib/codeql/swift/generated/type/Type.qll b/swift/ql/lib/codeql/swift/generated/type/Type.qll index cfe4b638da3..ee55d9ce9d6 100644 --- a/swift/ql/lib/codeql/swift/generated/type/Type.qll +++ b/swift/ql/lib/codeql/swift/generated/type/Type.qll @@ -3,7 +3,7 @@ import codeql.swift.elements.Element import codeql.swift.elements.type.Type class TypeBase extends @type, Element { - string getDiagnosticsName() { types(this, result, _) } + string getName() { types(this, result, _) } Type getCanonicalType() { exists(Type x | diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index c726cd7635b..7937e938e70 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -82,7 +82,7 @@ locations( #keyset[id] types( //dir=type int id: @type ref, - string diagnostics_name: string ref, + string name: string ref, int canonical_type: @type ref ); @@ -593,7 +593,6 @@ weak_storage_types( //dir=type #keyset[id] archetype_types( //dir=type int id: @archetype_type ref, - string name: string ref, int interface_type: @type ref ); @@ -611,8 +610,7 @@ archetype_type_protocols( //dir=type ); generic_type_param_types( //dir=type - unique int id: @generic_type_param_type, - string name: string ref + unique int id: @generic_type_param_type ); paren_types( //dir=type diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected index f50efd8d8d7..410b13be428 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected @@ -1,5 +1,5 @@ -| Builtin.Int8 | getDiagnosticsName: | Builtin.Int8 | getCanonicalType: | Builtin.Int8 | -| Builtin.Int16 | getDiagnosticsName: | Builtin.Int16 | getCanonicalType: | Builtin.Int16 | -| Builtin.Int32 | getDiagnosticsName: | Builtin.Int32 | getCanonicalType: | Builtin.Int32 | -| Builtin.Int64 | getDiagnosticsName: | Builtin.Int64 | getCanonicalType: | Builtin.Int64 | -| Builtin.Word | getDiagnosticsName: | Builtin.Word | getCanonicalType: | Builtin.Word | +| Builtin.Int8 | getName: | Builtin.Int8 | getCanonicalType: | Builtin.Int8 | +| Builtin.Int16 | getName: | Builtin.Int16 | getCanonicalType: | Builtin.Int16 | +| Builtin.Int32 | getName: | Builtin.Int32 | getCanonicalType: | Builtin.Int32 | +| Builtin.Int64 | getName: | Builtin.Int64 | getCanonicalType: | Builtin.Int64 | +| Builtin.Word | getName: | Builtin.Word | getCanonicalType: | Builtin.Word | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql index 6828ace5d1f..05131e5b9fd 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql @@ -2,10 +2,10 @@ import codeql.swift.elements import TestUtils -from BuiltinIntegerType x, string getDiagnosticsName, Type getCanonicalType +from BuiltinIntegerType x, string getName, Type getCanonicalType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected index be0aaa1c1ca..5df760136c3 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected @@ -1,11 +1,11 @@ -| Builtin.BridgeObject | getDiagnosticsName: | Builtin.BridgeObject | getCanonicalType: | Builtin.BridgeObject | -| Builtin.DefaultActorStorage | getDiagnosticsName: | Builtin.DefaultActorStorage | getCanonicalType: | Builtin.DefaultActorStorage | -| Builtin.Executor | getDiagnosticsName: | Builtin.Executor | getCanonicalType: | Builtin.Executor | -| Builtin.FPIEEE32 | getDiagnosticsName: | Builtin.FPIEEE32 | getCanonicalType: | Builtin.FPIEEE32 | -| Builtin.FPIEEE64 | getDiagnosticsName: | Builtin.FPIEEE64 | getCanonicalType: | Builtin.FPIEEE64 | -| Builtin.IntLiteral | getDiagnosticsName: | Builtin.IntLiteral | getCanonicalType: | Builtin.IntLiteral | -| Builtin.Job | getDiagnosticsName: | Builtin.Job | getCanonicalType: | Builtin.Job | -| Builtin.NativeObject | getDiagnosticsName: | Builtin.NativeObject | getCanonicalType: | Builtin.NativeObject | -| Builtin.RawPointer | getDiagnosticsName: | Builtin.RawPointer | getCanonicalType: | Builtin.RawPointer | -| Builtin.RawUnsafeContinuation | getDiagnosticsName: | Builtin.RawUnsafeContinuation | getCanonicalType: | Builtin.RawUnsafeContinuation | -| Builtin.UnsafeValueBuffer | getDiagnosticsName: | Builtin.UnsafeValueBuffer | getCanonicalType: | Builtin.UnsafeValueBuffer | +| Builtin.BridgeObject | getName: | Builtin.BridgeObject | getCanonicalType: | Builtin.BridgeObject | +| Builtin.DefaultActorStorage | getName: | Builtin.DefaultActorStorage | getCanonicalType: | Builtin.DefaultActorStorage | +| Builtin.Executor | getName: | Builtin.Executor | getCanonicalType: | Builtin.Executor | +| Builtin.FPIEEE32 | getName: | Builtin.FPIEEE32 | getCanonicalType: | Builtin.FPIEEE32 | +| Builtin.FPIEEE64 | getName: | Builtin.FPIEEE64 | getCanonicalType: | Builtin.FPIEEE64 | +| Builtin.IntLiteral | getName: | Builtin.IntLiteral | getCanonicalType: | Builtin.IntLiteral | +| Builtin.Job | getName: | Builtin.Job | getCanonicalType: | Builtin.Job | +| Builtin.NativeObject | getName: | Builtin.NativeObject | getCanonicalType: | Builtin.NativeObject | +| Builtin.RawPointer | getName: | Builtin.RawPointer | getCanonicalType: | Builtin.RawPointer | +| Builtin.RawUnsafeContinuation | getName: | Builtin.RawUnsafeContinuation | getCanonicalType: | Builtin.RawUnsafeContinuation | +| Builtin.UnsafeValueBuffer | getName: | Builtin.UnsafeValueBuffer | getCanonicalType: | Builtin.UnsafeValueBuffer | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql index d858afd70c8..d6b019a4a6d 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql @@ -2,10 +2,10 @@ import codeql.swift.elements import TestUtils -from BuiltinType x, string getDiagnosticsName, Type getCanonicalType +from BuiltinType x, string getName, Type getCanonicalType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType diff --git a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.expected b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.expected index 833a3098c1f..6e36cc0e55f 100644 --- a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.expected +++ b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.expected @@ -1 +1 @@ -| Self | getDiagnosticsName: | Self | getCanonicalType: | Self | getStaticSelfType: | X | +| Self | getName: | Self | getCanonicalType: | Self | getStaticSelfType: | X | diff --git a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql index a9ae23f6bab..24168993ef3 100644 --- a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql +++ b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql @@ -2,12 +2,12 @@ import codeql.swift.elements import TestUtils -from DynamicSelfType x, string getDiagnosticsName, Type getCanonicalType, Type getStaticSelfType +from DynamicSelfType x, string getName, Type getCanonicalType, Type getStaticSelfType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() and getStaticSelfType = x.getStaticSelfType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getStaticSelfType:", getStaticSelfType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getStaticSelfType:", + getStaticSelfType diff --git a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.expected b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.expected index 22277bec084..39ad24b358b 100644 --- a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.expected +++ b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.expected @@ -1,3 +1,3 @@ -| ExplicitExistential | getDiagnosticsName: | ExplicitExistential | getCanonicalType: | ExplicitExistential | getConstraint: | ExplicitExistential | -| ImplicitExistential | getDiagnosticsName: | ImplicitExistential | getCanonicalType: | ImplicitExistential | getConstraint: | ImplicitExistential | -| P1 & P2 | getDiagnosticsName: | P1 & P2 | getCanonicalType: | P1 & P2 | getConstraint: | P1 & P2 | +| ExplicitExistential | getName: | ExplicitExistential | getCanonicalType: | ExplicitExistential | getConstraint: | ExplicitExistential | +| ImplicitExistential | getName: | ImplicitExistential | getCanonicalType: | ImplicitExistential | getConstraint: | ImplicitExistential | +| P1 & P2 | getName: | P1 & P2 | getCanonicalType: | P1 & P2 | getConstraint: | P1 & P2 | diff --git a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql index b679d5d89a2..70fd9f1ea2b 100644 --- a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql @@ -2,12 +2,12 @@ import codeql.swift.elements import TestUtils -from ExistentialType x, string getDiagnosticsName, Type getCanonicalType, Type getConstraint +from ExistentialType x, string getName, Type getCanonicalType, Type getConstraint where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() and getConstraint = x.getConstraint() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getConstraint:", getConstraint +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getConstraint:", + getConstraint diff --git a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.expected b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.expected index b227fccd42b..a9d0e530015 100644 --- a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.expected +++ b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.expected @@ -1,2 +1,2 @@ -| inout Int | getDiagnosticsName: | inout Int | getCanonicalType: | inout Int | getObjectType: | Int | -| inout S | getDiagnosticsName: | inout S | getCanonicalType: | inout S | getObjectType: | S | +| inout Int | getName: | inout Int | getCanonicalType: | inout Int | getObjectType: | Int | +| inout S | getName: | inout S | getCanonicalType: | inout S | getObjectType: | S | diff --git a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql index 973d0257381..1120208101d 100644 --- a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql +++ b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql @@ -2,12 +2,12 @@ import codeql.swift.elements import TestUtils -from InOutType x, string getDiagnosticsName, Type getCanonicalType, Type getObjectType +from InOutType x, string getName, Type getCanonicalType, Type getObjectType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() and getObjectType = x.getObjectType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getObjectType:", getObjectType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getObjectType:", + getObjectType diff --git a/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.expected index 30f113c662f..0575e43769c 100644 --- a/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.expected @@ -1,4 +1,4 @@ -| Impl1.Associated | getDiagnosticsName: | Impl1.Associated | getCanonicalType: | Impl1.Associated | getName: | Associated | getInterfaceType: | Impl1.Associated | getParent: | Impl1 | getAssociatedTypeDeclaration: | nested_archetypes.swift:2:5:2:20 | Associated | -| Impl2.AssociatedWithProtocols | getDiagnosticsName: | Impl2.AssociatedWithProtocols | getCanonicalType: | Impl2.AssociatedWithProtocols | getName: | AssociatedWithProtocols | getInterfaceType: | Impl2.AssociatedWithProtocols | getParent: | Impl2 | getAssociatedTypeDeclaration: | nested_archetypes.swift:6:5:6:57 | AssociatedWithProtocols | -| Impl3.AssociatedWithSuperclass | getDiagnosticsName: | Impl3.AssociatedWithSuperclass | getCanonicalType: | Impl3.AssociatedWithSuperclass | getName: | AssociatedWithSuperclass | getInterfaceType: | Impl3.AssociatedWithSuperclass | getParent: | Impl3 | getAssociatedTypeDeclaration: | nested_archetypes.swift:12:5:12:47 | AssociatedWithSuperclass | -| Impl4.AssociatedWithSuperclassAndProtocols | getDiagnosticsName: | Impl4.AssociatedWithSuperclassAndProtocols | getCanonicalType: | Impl4.AssociatedWithSuperclassAndProtocols | getName: | AssociatedWithSuperclassAndProtocols | getInterfaceType: | Impl4.AssociatedWithSuperclassAndProtocols | getParent: | Impl4 | getAssociatedTypeDeclaration: | nested_archetypes.swift:16:5:16:73 | AssociatedWithSuperclassAndProtocols | +| Impl1.Associated | getName: | Impl1.Associated | getCanonicalType: | Impl1.Associated | getInterfaceType: | Impl1.Associated | getParent: | Impl1 | getAssociatedTypeDeclaration: | nested_archetypes.swift:2:5:2:20 | Associated | +| Impl2.AssociatedWithProtocols | getName: | Impl2.AssociatedWithProtocols | getCanonicalType: | Impl2.AssociatedWithProtocols | getInterfaceType: | Impl2.AssociatedWithProtocols | getParent: | Impl2 | getAssociatedTypeDeclaration: | nested_archetypes.swift:6:5:6:57 | AssociatedWithProtocols | +| Impl3.AssociatedWithSuperclass | getName: | Impl3.AssociatedWithSuperclass | getCanonicalType: | Impl3.AssociatedWithSuperclass | getInterfaceType: | Impl3.AssociatedWithSuperclass | getParent: | Impl3 | getAssociatedTypeDeclaration: | nested_archetypes.swift:12:5:12:47 | AssociatedWithSuperclass | +| Impl4.AssociatedWithSuperclassAndProtocols | getName: | Impl4.AssociatedWithSuperclassAndProtocols | getCanonicalType: | Impl4.AssociatedWithSuperclassAndProtocols | getInterfaceType: | Impl4.AssociatedWithSuperclassAndProtocols | getParent: | Impl4 | getAssociatedTypeDeclaration: | nested_archetypes.swift:16:5:16:73 | AssociatedWithSuperclassAndProtocols | diff --git a/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql index 8306bfeacac..b74c0e43099 100644 --- a/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/NestedArchetypeType/NestedArchetypeType.ql @@ -3,17 +3,16 @@ import codeql.swift.elements import TestUtils from - NestedArchetypeType x, string getDiagnosticsName, Type getCanonicalType, string getName, - Type getInterfaceType, ArchetypeType getParent, AssociatedTypeDecl getAssociatedTypeDeclaration + NestedArchetypeType x, string getName, Type getCanonicalType, Type getInterfaceType, + ArchetypeType getParent, AssociatedTypeDecl getAssociatedTypeDeclaration where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and - getCanonicalType = x.getCanonicalType() and getName = x.getName() and + getCanonicalType = x.getCanonicalType() and getInterfaceType = x.getInterfaceType() and getParent = x.getParent() and getAssociatedTypeDeclaration = x.getAssociatedTypeDeclaration() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getName:", getName, "getInterfaceType:", getInterfaceType, "getParent:", getParent, - "getAssociatedTypeDeclaration:", getAssociatedTypeDeclaration +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getInterfaceType:", + getInterfaceType, "getParent:", getParent, "getAssociatedTypeDeclaration:", + getAssociatedTypeDeclaration diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected index 47d540c489a..c29242f0b27 100644 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected @@ -1,4 +1,4 @@ -| Param | getDiagnosticsName: | Param | getCanonicalType: | Param | getName: | Param | getInterfaceType: | Param | -| ParamWithProtocols | getDiagnosticsName: | ParamWithProtocols | getCanonicalType: | ParamWithProtocols | getName: | ParamWithProtocols | getInterfaceType: | ParamWithProtocols | -| ParamWithSuperclass | getDiagnosticsName: | ParamWithSuperclass | getCanonicalType: | ParamWithSuperclass | getName: | ParamWithSuperclass | getInterfaceType: | ParamWithSuperclass | -| ParamWithSuperclassAndProtocols | getDiagnosticsName: | ParamWithSuperclassAndProtocols | getCanonicalType: | ParamWithSuperclassAndProtocols | getName: | ParamWithSuperclassAndProtocols | getInterfaceType: | ParamWithSuperclassAndProtocols | +| Param | getName: | Param | getCanonicalType: | Param | getInterfaceType: | Param | +| ParamWithProtocols | getName: | ParamWithProtocols | getCanonicalType: | ParamWithProtocols | getInterfaceType: | ParamWithProtocols | +| ParamWithSuperclass | getName: | ParamWithSuperclass | getCanonicalType: | ParamWithSuperclass | getInterfaceType: | ParamWithSuperclass | +| ParamWithSuperclassAndProtocols | getName: | ParamWithSuperclassAndProtocols | getCanonicalType: | ParamWithSuperclassAndProtocols | getInterfaceType: | ParamWithSuperclassAndProtocols | diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql index 925bf85dcbf..32cb2204418 100644 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql @@ -2,15 +2,12 @@ import codeql.swift.elements import TestUtils -from - PrimaryArchetypeType x, string getDiagnosticsName, Type getCanonicalType, string getName, - Type getInterfaceType +from PrimaryArchetypeType x, string getName, Type getCanonicalType, Type getInterfaceType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and - getCanonicalType = x.getCanonicalType() and getName = x.getName() and + getCanonicalType = x.getCanonicalType() and getInterfaceType = x.getInterfaceType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getName:", getName, "getInterfaceType:", getInterfaceType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getInterfaceType:", + getInterfaceType diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected index 31d909f4c17..7be629a81ca 100644 --- a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected @@ -1,4 +1,4 @@ -| P1 & (P2 & P3) | getDiagnosticsName: | P1 & (P2 & P3) | getCanonicalType: | P1 & P2 & P3 | -| P1 & P2 & P3 | getDiagnosticsName: | P1 & P2 & P3 | getCanonicalType: | P1 & P2 & P3 | -| P1 & P23 | getDiagnosticsName: | P1 & P23 | getCanonicalType: | P1 & P2 & P3 | -| P2 & P4 | getDiagnosticsName: | P2 & P4 | getCanonicalType: | P2 & P4 | +| P1 & (P2 & P3) | getName: | P1 & (P2 & P3) | getCanonicalType: | P1 & P2 & P3 | +| P1 & P2 & P3 | getName: | P1 & P2 & P3 | getCanonicalType: | P1 & P2 & P3 | +| P1 & P23 | getName: | P1 & P23 | getCanonicalType: | P1 & P2 & P3 | +| P2 & P4 | getName: | P2 & P4 | getCanonicalType: | P2 & P4 | diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql index 2253a888b1f..8d3b769eff5 100644 --- a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql @@ -2,10 +2,10 @@ import codeql.swift.elements import TestUtils -from ProtocolCompositionType x, string getDiagnosticsName, Type getCanonicalType +from ProtocolCompositionType x, string getName, Type getCanonicalType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType diff --git a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.expected b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.expected index bd7b78838c7..fd0739cefbc 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.expected +++ b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.expected @@ -1,2 +1,2 @@ -| A? | getDiagnosticsName: | A? | getCanonicalType: | Optional | getReferentType: | A? | -| Optional | getDiagnosticsName: | Optional | getCanonicalType: | Optional | getReferentType: | Optional | +| A? | getName: | A? | getCanonicalType: | Optional | getReferentType: | A? | +| Optional | getName: | Optional | getCanonicalType: | Optional | getReferentType: | Optional | diff --git a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql index 396988db25e..747bfa62e43 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql @@ -2,12 +2,12 @@ import codeql.swift.elements import TestUtils -from UnmanagedStorageType x, string getDiagnosticsName, Type getCanonicalType, Type getReferentType +from UnmanagedStorageType x, string getName, Type getCanonicalType, Type getReferentType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() and getReferentType = x.getReferentType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getReferentType:", getReferentType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getReferentType:", + getReferentType diff --git a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.expected b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.expected index bd7b78838c7..fd0739cefbc 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.expected +++ b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.expected @@ -1,2 +1,2 @@ -| A? | getDiagnosticsName: | A? | getCanonicalType: | Optional | getReferentType: | A? | -| Optional | getDiagnosticsName: | Optional | getCanonicalType: | Optional | getReferentType: | Optional | +| A? | getName: | A? | getCanonicalType: | Optional | getReferentType: | A? | +| Optional | getName: | Optional | getCanonicalType: | Optional | getReferentType: | Optional | diff --git a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql index 17744a437d7..85a48fd3710 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql @@ -2,12 +2,12 @@ import codeql.swift.elements import TestUtils -from UnownedStorageType x, string getDiagnosticsName, Type getCanonicalType, Type getReferentType +from UnownedStorageType x, string getName, Type getCanonicalType, Type getReferentType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() and getReferentType = x.getReferentType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getReferentType:", getReferentType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getReferentType:", + getReferentType diff --git a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.expected b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.expected index 117748421b6..3bc4a94f39b 100644 --- a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.expected +++ b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.expected @@ -1,3 +1,3 @@ -| Int... | getDiagnosticsName: | Int... | getCanonicalType: | Array | getBaseType: | Int | -| T... | getDiagnosticsName: | T... | getCanonicalType: | Array | getBaseType: | T | -| T... | getDiagnosticsName: | T... | getCanonicalType: | Array<\u03c4_0_0> | getBaseType: | T | +| Int... | getName: | Int... | getCanonicalType: | Array | getBaseType: | Int | +| T... | getName: | T... | getCanonicalType: | Array | getBaseType: | T | +| T... | getName: | T... | getCanonicalType: | Array<\u03c4_0_0> | getBaseType: | T | diff --git a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql index 5a89dbcafab..7d4a8ea1af7 100644 --- a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql +++ b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql @@ -2,12 +2,11 @@ import codeql.swift.elements import TestUtils -from VariadicSequenceType x, string getDiagnosticsName, Type getCanonicalType, Type getBaseType +from VariadicSequenceType x, string getName, Type getCanonicalType, Type getBaseType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() and getBaseType = x.getBaseType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getBaseType:", getBaseType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getBaseType:", getBaseType diff --git a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.expected b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.expected index bd7b78838c7..fd0739cefbc 100644 --- a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.expected +++ b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.expected @@ -1,2 +1,2 @@ -| A? | getDiagnosticsName: | A? | getCanonicalType: | Optional | getReferentType: | A? | -| Optional | getDiagnosticsName: | Optional | getCanonicalType: | Optional | getReferentType: | Optional | +| A? | getName: | A? | getCanonicalType: | Optional | getReferentType: | A? | +| Optional | getName: | Optional | getCanonicalType: | Optional | getReferentType: | Optional | diff --git a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql index 3209b0e7d3d..e332f518a40 100644 --- a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql @@ -2,12 +2,12 @@ import codeql.swift.elements import TestUtils -from WeakStorageType x, string getDiagnosticsName, Type getCanonicalType, Type getReferentType +from WeakStorageType x, string getName, Type getCanonicalType, Type getReferentType where toBeTested(x) and not x.isUnknown() and - getDiagnosticsName = x.getDiagnosticsName() and + getName = x.getName() and getCanonicalType = x.getCanonicalType() and getReferentType = x.getReferentType() -select x, "getDiagnosticsName:", getDiagnosticsName, "getCanonicalType:", getCanonicalType, - "getReferentType:", getReferentType +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getReferentType:", + getReferentType From 9e0cf62cdae127b96ef70f49d2e0f56bc1ccc959 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 28 Jun 2022 14:57:52 +0100 Subject: [PATCH 194/736] Swift: Fix + simplify LogicalOperation.qll. --- .../swift/elements/expr/LogicalOperation.qll | 22 +++++-------------- .../logicaloperation.expected | 6 +++++ 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/swift/ql/lib/codeql/swift/elements/expr/LogicalOperation.qll b/swift/ql/lib/codeql/swift/elements/expr/LogicalOperation.qll index 928e25cccfd..5a550923199 100644 --- a/swift/ql/lib/codeql/swift/elements/expr/LogicalOperation.qll +++ b/swift/ql/lib/codeql/swift/elements/expr/LogicalOperation.qll @@ -6,31 +6,19 @@ private import codeql.swift.elements.expr.DeclRefExpr private import codeql.swift.elements.decl.ConcreteFuncDecl private predicate unaryHasName(PrefixUnaryExpr e, string name) { - e.getFunction() - .(DotSyntaxCallExpr) - .getFunction() - .(DeclRefExpr) - .getDecl() - .(ConcreteFuncDecl) - .getName() = name + e.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = name } private predicate binaryHasName(BinaryExpr e, string name) { - e.getFunction() - .(DotSyntaxCallExpr) - .getFunction() - .(DeclRefExpr) - .getDecl() - .(ConcreteFuncDecl) - .getName() = name + e.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = name } class LogicalAndExpr extends BinaryExpr { - LogicalAndExpr() { binaryHasName(this, "&&") } + LogicalAndExpr() { binaryHasName(this, "&&(_:_:)") } } class LogicalOrExpr extends BinaryExpr { - LogicalOrExpr() { binaryHasName(this, "||") } + LogicalOrExpr() { binaryHasName(this, "||(_:_:)") } } class BinaryLogicalOperation extends BinaryExpr { @@ -41,7 +29,7 @@ class BinaryLogicalOperation extends BinaryExpr { } class NotExpr extends PrefixUnaryExpr { - NotExpr() { unaryHasName(this, "!") } + NotExpr() { unaryHasName(this, "!(_:)") } } class UnaryLogicalOperation extends PrefixUnaryExpr { diff --git a/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.expected b/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.expected index e69de29bb2d..1b3ccaab17f 100644 --- a/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.expected +++ b/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.expected @@ -0,0 +1,6 @@ +| logicaloperation.swift:4:6:4:11 | ... call to &&(_:_:) ... | BinaryLogicalExpr, LogicalAndExpr | +| logicaloperation.swift:5:6:5:11 | ... call to \|\|(_:_:) ... | BinaryLogicalExpr, LogicalOrExpr | +| logicaloperation.swift:6:6:6:7 | call to ... | NotExpr, UnaryLogicalOperation | +| logicaloperation.swift:7:6:7:21 | call to ... | NotExpr, UnaryLogicalOperation | +| logicaloperation.swift:7:8:7:20 | ... call to \|\|(_:_:) ... | BinaryLogicalExpr, LogicalOrExpr | +| logicaloperation.swift:7:9:7:14 | ... call to &&(_:_:) ... | BinaryLogicalExpr, LogicalAndExpr | From a5fff9af5d20350fc3d62ac61139747ec2259948 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Jun 2022 18:08:19 +0100 Subject: [PATCH 195/736] Swift: Create ArithmeticOperation.qll. --- .../elements/expr/ArithmeticOperation.qll | 99 +++++++++++++++++++ swift/ql/lib/swift.qll | 1 + 2 files changed, 100 insertions(+) create mode 100644 swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll diff --git a/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll b/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll new file mode 100644 index 00000000000..04d2185aab6 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll @@ -0,0 +1,99 @@ +private import codeql.swift.elements.expr.Expr +private import codeql.swift.elements.expr.BinaryExpr +private import codeql.swift.elements.expr.PrefixUnaryExpr +private import codeql.swift.elements.expr.DotSyntaxCallExpr + +/** + * An arithmetic operation, such as: + * ``` + * a + b + * ``` + */ +class ArithmeticOperation extends Expr { + ArithmeticOperation() { + this instanceof BinaryArithmeticOperation or + this instanceof UnaryArithmeticOperation + } + + Expr getAnOperand() { + result = this.(BinaryArithmeticOperation).getAnOperand() + or + result = this.(UnaryArithmeticOperation).getOperand() + } +} + +/** + * A binary arithmetic operation, such as: + * ``` + * a + b + * ``` + */ +abstract class BinaryArithmeticOperation extends BinaryExpr { } + +/** + * An add expression. + * ``` + * a + b + * ``` + */ +class AddExpr extends BinaryArithmeticOperation { + AddExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "+(_:_:)" } +} + +/** + * A subtract expression. + * ``` + * a - b + * ``` + */ +class SubExpr extends BinaryArithmeticOperation { + SubExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "-(_:_:)" } +} + +/** + * A multiply expression. + * ``` + * a * b + * ``` + */ +class MulExpr extends BinaryArithmeticOperation { + MulExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "*(_:_:)" } +} + +/** + * A divide expression. + * ``` + * a / b + * ``` + */ +class DivExpr extends BinaryArithmeticOperation { + DivExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "/(_:_:)" } +} + +/** + * A remainder expression. + * ``` + * a % b + * ``` + */ +class RemExpr extends BinaryArithmeticOperation { + RemExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "%(_:_:)" } +} + +/** + * A unary arithmetic operation, such as: + * ``` + * -a + * ``` + */ +abstract class UnaryArithmeticOperation extends PrefixUnaryExpr { } + +/** + * A unary minus expression. + * ``` + * -a + * ``` + */ +class UnaryMinusExpr extends UnaryArithmeticOperation { + UnaryMinusExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "-(_:)" } +} diff --git a/swift/ql/lib/swift.qll b/swift/ql/lib/swift.qll index a0b0f019400..d9281ba1093 100644 --- a/swift/ql/lib/swift.qll +++ b/swift/ql/lib/swift.qll @@ -1,5 +1,6 @@ /** Top-level import for the Swift language pack */ import codeql.swift.elements +import codeql.swift.elements.expr.ArithmeticOperation import codeql.swift.elements.expr.LogicalOperation import codeql.swift.elements.decl.MethodDecl From 8a8a7ead9b707b89399fcb0b43afc1a2453e0427 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Jun 2022 17:42:20 +0100 Subject: [PATCH 196/736] Swift: Add tests for ArithmeticOperation.qll. --- .../arithmeticoperation.expected | 6 ++++++ .../arithmeticoperation/arithmeticoperation.ql | 15 +++++++++++++++ .../arithmeticoperation/arithmeticoperation.swift | 12 ++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.expected create mode 100644 swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.ql create mode 100644 swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.swift diff --git a/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.expected b/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.expected new file mode 100644 index 00000000000..3d20366aec6 --- /dev/null +++ b/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.expected @@ -0,0 +1,6 @@ +| arithmeticoperation.swift:6:6:6:10 | ... call to +(_:_:) ... | AddExpr, BinaryArithmeticOperation | +| arithmeticoperation.swift:7:6:7:10 | ... call to -(_:_:) ... | BinaryArithmeticOperation, SubExpr | +| arithmeticoperation.swift:8:6:8:10 | ... call to *(_:_:) ... | BinaryArithmeticOperation, MulExpr | +| arithmeticoperation.swift:9:6:9:10 | ... call to /(_:_:) ... | BinaryArithmeticOperation, DivExpr | +| arithmeticoperation.swift:10:6:10:10 | ... call to %(_:_:) ... | BinaryArithmeticOperation, RemExpr | +| arithmeticoperation.swift:11:6:11:7 | call to ... | UnaryArithmeticOperation, UnaryMinusExpr | diff --git a/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.ql b/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.ql new file mode 100644 index 00000000000..2aeba5981b8 --- /dev/null +++ b/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.ql @@ -0,0 +1,15 @@ +import swift + +string describe(ArithmeticOperation e) { + (e instanceof BinaryArithmeticOperation and result = "BinaryArithmeticOperation") or + (e instanceof AddExpr and result = "AddExpr") or + (e instanceof SubExpr and result = "SubExpr") or + (e instanceof MulExpr and result = "MulExpr") or + (e instanceof DivExpr and result = "DivExpr") or + (e instanceof RemExpr and result = "RemExpr") or + (e instanceof UnaryArithmeticOperation and result = "UnaryArithmeticOperation") or + (e instanceof UnaryMinusExpr and result = "UnaryMinusExpr") +} + +from ArithmeticOperation e +select e, concat(describe(e), ", ") diff --git a/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.swift b/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.swift new file mode 100644 index 00000000000..096b6709600 --- /dev/null +++ b/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.swift @@ -0,0 +1,12 @@ + +func test(c: Bool, x: Int, y: Int, z: Int) { + var v = 0 + + // arithmetic operations + v = x + y; + v = x - 1; + v = 2 * y; + v = 3 / 4; + v = x % y; + v = -x; +} From ff06e3cb6bb9614288f9b050bb9194feeb151583 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 28 Jun 2022 09:12:23 +0100 Subject: [PATCH 197/736] Swift: Add a Locatable.getFile() shortcut similar to the one in CPP. --- swift/ql/lib/codeql/swift/elements/Locatable.qll | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/swift/ql/lib/codeql/swift/elements/Locatable.qll b/swift/ql/lib/codeql/swift/elements/Locatable.qll index 19b5cc4818e..f07641af07b 100644 --- a/swift/ql/lib/codeql/swift/elements/Locatable.qll +++ b/swift/ql/lib/codeql/swift/elements/Locatable.qll @@ -1,4 +1,5 @@ private import codeql.swift.generated.Locatable +private import codeql.swift.elements.File class Locatable extends LocatableBase { pragma[nomagic] @@ -7,4 +8,9 @@ class Locatable extends LocatableBase { or not exists(LocatableBase.super.getLocation()) and result instanceof UnknownLocation } + + /** + * Gets the primary file where this element occurs. + */ + File getFile() { result = getLocation().getFile() } } From 1a7f5db8e2815b32d6bc15b885206725bfac9fc8 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 28 Jun 2022 17:01:06 +0100 Subject: [PATCH 198/736] Swift: Set 'swift/string-length-conflation' to precision high and delete the placeholder query. --- .../queries/Security/CWE-135/StringLengthConflation.ql | 2 +- swift/ql/src/queries/placeholder.ql | 9 --------- 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 swift/ql/src/queries/placeholder.ql diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 9dd758e7d33..461b1741e24 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -4,7 +4,7 @@ * @kind problem * @problem.severity error * @security-severity 7.8 - * @precision TODO + * @precision high * @id swift/string-length-conflation * @tags security * external/cwe/cwe-135 diff --git a/swift/ql/src/queries/placeholder.ql b/swift/ql/src/queries/placeholder.ql deleted file mode 100644 index 24a95c4899c..00000000000 --- a/swift/ql/src/queries/placeholder.ql +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @kind problem - * @id swift/placeholder - */ - -import swift - -from IntegerLiteralExpr lit -select lit, "A literal" From 0f8ffb12e63389cf30228fe2e197bd5fd5deca88 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Tue, 28 Jun 2022 09:45:54 -0700 Subject: [PATCH 199/736] Update docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst --- .../codeql-cli/analyzing-databases-with-the-codeql-cli.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst index e52cd53e2bd..6953d67f81b 100644 --- a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst +++ b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst @@ -138,7 +138,7 @@ For further information about default suites, see ":ref:`Publishing and using Co Running a subset of queries in a CodeQL pack ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Additionally, CodeQL CLI v2.10.0 or later, you can include a path at the end of a pack specification to run a subset of queries inside the pack. This applies to any command that locates or runs queries within a pack. +Additionally, CodeQL CLI v2.8.1 or later, you can include a path at the end of a pack specification to run a subset of queries inside the pack. This applies to any command that locates or runs queries within a pack. The complete way to specify a set of queries is in the form ``scope/name@range:path``, where: From 38b86405827c7a76e83cd2c6bf69d5e341166589 Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 28 Jun 2022 16:39:20 +0000 Subject: [PATCH 200/736] Python: Fix bad join in `RegExpBackRef::getGroup` Although this wasn't (as far as I know) causing any performance issues, it was making the join-order badness report quite noisy, and so I figured it was worth fixing. Before: ``` Tuple counts for RegexTreeView::RegExpBackRef::getGroup#dispred#f0820431#ff/2@d3441d0b after 84ms: 1501195 ~3% {2} r1 = JOIN RegexTreeView::RegExpTerm::getLiteral#dispred#f0820431#ff_10#join_rhs WITH RegexTreeView::RegExpTerm::getLiteral#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1 'result', Lhs.1 'result' 149 ~0% {5} r2 = JOIN r1 WITH RegexTreeView::RegExpBackRef#class#31aac2a7#ffff ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Rhs.3, Lhs.1 'result', Lhs.0 'this' 149 ~1% {3} r3 = JOIN r2 WITH regex::RegexString::numbered_backreference#dispred#f0820431#ffff ON FIRST 3 OUTPUT Lhs.3 'result', Rhs.3, Lhs.4 'this' 4 ~0% {2} r4 = JOIN r3 WITH RegexTreeView::RegExpGroup::getNumber#dispred#f0820431#ff ON FIRST 2 OUTPUT Lhs.2 'this', Lhs.0 'result' 1501195 ~3% {2} r5 = JOIN RegexTreeView::RegExpTerm::getLiteral#dispred#f0820431#ff_10#join_rhs WITH RegexTreeView::RegExpTerm::getLiteral#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'result', Rhs.1 'result' 42526 ~0% {5} r6 = JOIN r5 WITH RegexTreeView::RegExpGroup#31aac2a7#ffff ON FIRST 1 OUTPUT Lhs.1 'this', Lhs.0 'result', Rhs.1, Rhs.2, Rhs.3 22 ~0% {8} r7 = JOIN r6 WITH RegexTreeView::RegExpBackRef#class#31aac2a7#ffff ON FIRST 1 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.1 'result', Lhs.0 'this', Rhs.1, Rhs.2, Rhs.3 0 ~0% {6} r8 = JOIN r7 WITH regex::RegexString::getGroupName#dispred#f0820431#ffff ON FIRST 3 OUTPUT Lhs.5, Lhs.6, Lhs.7, Rhs.3, Lhs.3 'result', Lhs.4 'this' 0 ~0% {2} r9 = JOIN r8 WITH regex::RegexString::named_backreference#dispred#f0820431#ffff ON FIRST 4 OUTPUT Lhs.5 'this', Lhs.4 'result' 4 ~0% {2} r10 = r4 UNION r9 return r10 ``` In this case I opted for a classical solution: tying together the literal and number (or name) part of the backreference in order to encourage a two-column join. After: ``` Tuple counts for RegexTreeView::RegExpBackRef::getGroup#dispred#f0820431#ff/2@b0cc4d5n after 0ms: 898 ~1% {3} r1 = JOIN RegexTreeView::RegExpTerm::getLiteral#dispred#f0820431#ff WITH RegexTreeView::RegExpGroup::getNumber#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.0 'result' 4 ~0% {2} r2 = JOIN r1 WITH RegexTreeView::RegExpBackRef::hasLiteralAndNumber#f0820431#fff_120#join_rhs ON FIRST 2 OUTPUT Rhs.2 'this', Lhs.2 'result' 1110 ~0% {5} r3 = JOIN RegexTreeView::RegExpGroup#31aac2a7#ffff WITH RegexTreeView::RegExpTerm::getLiteral#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.0 'result', Rhs.1 146 ~0% {3} r4 = JOIN r3 WITH regex::RegexString::getGroupName#dispred#f0820431#ffff ON FIRST 3 OUTPUT Lhs.4, Rhs.3, Lhs.3 'result' 0 ~0% {2} r5 = JOIN r4 WITH RegexTreeView::RegExpBackRef::hasLiteralAndName#f0820431#fff_120#join_rhs ON FIRST 2 OUTPUT Rhs.2 'this', Lhs.2 'result' 4 ~0% {2} r6 = r2 UNION r5 return r6 ``` --- python/ql/lib/semmle/python/RegexTreeView.qll | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/RegexTreeView.qll b/python/ql/lib/semmle/python/RegexTreeView.qll index 8e2ae1e90f3..80a5e6a4be4 100644 --- a/python/ql/lib/semmle/python/RegexTreeView.qll +++ b/python/ql/lib/semmle/python/RegexTreeView.qll @@ -1000,11 +1000,22 @@ class RegExpBackRef extends RegExpTerm, TRegExpBackRef { /** Gets the capture group this back reference refers to. */ RegExpGroup getGroup() { - result.getLiteral() = this.getLiteral() and - ( - result.getNumber() = this.getNumber() or - result.getName() = this.getName() - ) + this.hasLiteralAndNumber(result.getLiteral(), result.getNumber()) or + this.hasLiteralAndName(result.getLiteral(), result.getName()) + } + + /** Join-order helper for `getGroup`. */ + pragma[nomagic] + private predicate hasLiteralAndNumber(RegExpLiteral literal, int number) { + literal = this.getLiteral() and + number = this.getNumber() + } + + /** Join-order helper for `getGroup`. */ + pragma[nomagic] + private predicate hasLiteralAndName(RegExpLiteral literal, string name) { + literal = this.getLiteral() and + name = this.getName() } override RegExpTerm getChild(int i) { none() } From ac0c8d238f3c44f4121dffe16837ee3c494f3fc5 Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 28 Jun 2022 20:14:52 +0000 Subject: [PATCH 201/736] python: only clear taint on false-edge --- .../semmle/python/security/dataflow/TarSlipCustomizations.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll index 38fb99c49c3..8e742c61288 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll @@ -131,7 +131,7 @@ module TarSlip { or call.getAChild*().(NameNode).getId().matches("%path") ) and - branch in [true, false] + branch = false } /** From c2e57c3c9bbead36d0ef41fd61566285c90c239d Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 28 Jun 2022 22:33:28 +0100 Subject: [PATCH 202/736] Swift: Fix 'kind' in 'swift/string-length-conflation'. --- swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 461b1741e24..78a19e0949d 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -1,7 +1,7 @@ /** * @name String length conflation * @description Using a length value from an `NSString` in a `String`, or a count from a `String` in an `NSString`, may cause unexpected behavior. - * @kind problem + * @kind path-problem * @problem.severity error * @security-severity 7.8 * @precision high From 488befb57760b7b6caf493c9021d45facd950c2a Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Wed, 29 Jun 2022 07:16:59 +0200 Subject: [PATCH 203/736] Swift: store TRAP files in a temporary folder until the extraction is complete Currently, we have a number of assertions in the codebase and certain assumptions about the AST. These don't always hold, sometimes leading to a crash in the extractor. The crashes leave incomplete TRAP files that cannot be imported into the database. With this change, we still get those incomplete TRAP files, but we also get a database in the end (even thoough it is also incomplete as we cannot import everything). --- swift/extractor/SwiftExtractor.cpp | 17 ++++++++++++----- swift/extractor/SwiftExtractorConfiguration.h | 9 ++++++++- swift/extractor/main.cpp | 4 ++++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 6c210bdeefe..2708b0241a4 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -62,13 +62,13 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, // TODO: find a more robust approach to avoid collisions? llvm::StringRef filename = primaryFile ? primaryFile->getFilename() : module.getModuleFilename(); std::string tempTrapName = filename.str() + '.' + std::to_string(getpid()) + ".trap"; - llvm::SmallString tempTrapPath(config.trapDir); + llvm::SmallString tempTrapPath(config.tempTrapDir); llvm::sys::path::append(tempTrapPath, tempTrapName); - llvm::StringRef trapParent = llvm::sys::path::parent_path(tempTrapPath); - if (std::error_code ec = llvm::sys::fs::create_directories(trapParent)) { - std::cerr << "Cannot create trap directory '" << trapParent.str() << "': " << ec.message() - << "\n"; + llvm::StringRef tempTrapParent = llvm::sys::path::parent_path(tempTrapPath); + if (std::error_code ec = llvm::sys::fs::create_directories(tempTrapParent)) { + std::cerr << "Cannot create temp trap directory '" << tempTrapParent.str() + << "': " << ec.message() << "\n"; return; } @@ -117,6 +117,13 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, llvm::SmallString trapPath(config.trapDir); llvm::sys::path::append(trapPath, trapName); + llvm::StringRef trapParent = llvm::sys::path::parent_path(trapPath); + if (std::error_code ec = llvm::sys::fs::create_directories(trapParent)) { + std::cerr << "Cannot create trap directory '" << trapParent.str() << "': " << ec.message() + << "\n"; + return; + } + // TODO: The last process wins. Should we do better than that? if (std::error_code ec = llvm::sys::fs::rename(tempTrapPath, trapPath)) { std::cerr << "Cannot rename temp trap file '" << tempTrapPath.str().str() << "' -> '" diff --git a/swift/extractor/SwiftExtractorConfiguration.h b/swift/extractor/SwiftExtractorConfiguration.h index bf75fdb3b41..b953e589e46 100644 --- a/swift/extractor/SwiftExtractorConfiguration.h +++ b/swift/extractor/SwiftExtractorConfiguration.h @@ -9,7 +9,14 @@ struct SwiftExtractorConfiguration { std::string trapDir; // The location for storing extracted source files. std::string sourceArchiveDir; - // The arguments passed to the extractor. Used for debugging. + // A temporary directory that exists during database creation, but is deleted once the DB is + // finalized. + std::string scratchDir; + // A temporary directory that contains TRAP files before they moved into the final destination. + // Subdirectory of the scratchDir. + std::string tempTrapDir; + + // The original arguments passed to the extractor. Used for debugging. std::vector frontendOptions; }; } // namespace codeql diff --git a/swift/extractor/main.cpp b/swift/extractor/main.cpp index 547225d6cd9..a493a501411 100644 --- a/swift/extractor/main.cpp +++ b/swift/extractor/main.cpp @@ -51,6 +51,10 @@ int main(int argc, char** argv) { codeql::SwiftExtractorConfiguration configuration{}; configuration.trapDir = getenv_or("CODEQL_EXTRACTOR_SWIFT_TRAP_DIR", "."); configuration.sourceArchiveDir = getenv_or("CODEQL_EXTRACTOR_SWIFT_SOURCE_ARCHIVE_DIR", "."); + configuration.scratchDir = getenv_or("CODEQL_EXTRACTOR_SWIFT_SCRATCH_DIR", "."); + + configuration.tempTrapDir = configuration.scratchDir + "/swift-trap-temp"; + std::vector args; for (int i = 1; i < argc; i++) { args.push_back(argv[i]); From 57811a4efcbc3cb75f13af46586c931b68c6849f Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Tue, 21 Jun 2022 16:58:13 +0200 Subject: [PATCH 204/736] Swift: add a test case showing module loading problem Extractor fails to load separate modules that were built by another version of an actual compiler. --- .../partial-modules/A/Package.swift | 18 +++++++++++++++ .../partial-modules/A/Sources/A/A.swift | 5 ++++ .../partial-modules/A/Sources/A/Asup.swift | 1 + .../partial-modules/B/Package.swift | 18 +++++++++++++++ .../partial-modules/B/Sources/B/B.swift | 5 ++++ .../partial-modules/B/Sources/B/Bsup.swift | 1 + .../partial-modules/Package.swift | 23 +++++++++++++++++++ .../partial-modules/partial_modules.swift | 11 +++++++++ .../partial-modules/Unknown.expected | 0 .../partial-modules/Unknown.ql | 4 ++++ .../integration-tests/partial-modules/test.py | 7 ++++++ 11 files changed, 93 insertions(+) create mode 100644 swift/integration-tests/partial-modules/A/Package.swift create mode 100644 swift/integration-tests/partial-modules/A/Sources/A/A.swift create mode 100644 swift/integration-tests/partial-modules/A/Sources/A/Asup.swift create mode 100644 swift/integration-tests/partial-modules/B/Package.swift create mode 100644 swift/integration-tests/partial-modules/B/Sources/B/B.swift create mode 100644 swift/integration-tests/partial-modules/B/Sources/B/Bsup.swift create mode 100644 swift/integration-tests/partial-modules/Package.swift create mode 100644 swift/integration-tests/partial-modules/Sources/partial-modules/partial_modules.swift create mode 100644 swift/integration-tests/partial-modules/Unknown.expected create mode 100644 swift/integration-tests/partial-modules/Unknown.ql create mode 100644 swift/integration-tests/partial-modules/test.py diff --git a/swift/integration-tests/partial-modules/A/Package.swift b/swift/integration-tests/partial-modules/A/Package.swift new file mode 100644 index 00000000000..41bf0b6d70d --- /dev/null +++ b/swift/integration-tests/partial-modules/A/Package.swift @@ -0,0 +1,18 @@ +// swift-tools-version: 5.5 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "A", + products: [ + .library( + name: "A", + targets: ["A"]), + ], + targets: [ + .target( + name: "A", + dependencies: []), + ] +) diff --git a/swift/integration-tests/partial-modules/A/Sources/A/A.swift b/swift/integration-tests/partial-modules/A/Sources/A/A.swift new file mode 100644 index 00000000000..b8554b24b6c --- /dev/null +++ b/swift/integration-tests/partial-modules/A/Sources/A/A.swift @@ -0,0 +1,5 @@ +public struct A { + public private(set) var text = Atext + + public init() {} +} diff --git a/swift/integration-tests/partial-modules/A/Sources/A/Asup.swift b/swift/integration-tests/partial-modules/A/Sources/A/Asup.swift new file mode 100644 index 00000000000..a2af1709c3c --- /dev/null +++ b/swift/integration-tests/partial-modules/A/Sources/A/Asup.swift @@ -0,0 +1 @@ +let Atext = "Hello, A" diff --git a/swift/integration-tests/partial-modules/B/Package.swift b/swift/integration-tests/partial-modules/B/Package.swift new file mode 100644 index 00000000000..dffa5b10771 --- /dev/null +++ b/swift/integration-tests/partial-modules/B/Package.swift @@ -0,0 +1,18 @@ +// swift-tools-version: 5.5 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "B", + products: [ + .library( + name: "B", + targets: ["B"]), + ], + targets: [ + .target( + name: "B", + dependencies: []), + ] +) diff --git a/swift/integration-tests/partial-modules/B/Sources/B/B.swift b/swift/integration-tests/partial-modules/B/Sources/B/B.swift new file mode 100644 index 00000000000..1954601508c --- /dev/null +++ b/swift/integration-tests/partial-modules/B/Sources/B/B.swift @@ -0,0 +1,5 @@ +public struct B { + public private(set) var text = Btext + + public init() {} +} diff --git a/swift/integration-tests/partial-modules/B/Sources/B/Bsup.swift b/swift/integration-tests/partial-modules/B/Sources/B/Bsup.swift new file mode 100644 index 00000000000..80634b1065d --- /dev/null +++ b/swift/integration-tests/partial-modules/B/Sources/B/Bsup.swift @@ -0,0 +1 @@ +let Btext = "Hello, B" diff --git a/swift/integration-tests/partial-modules/Package.swift b/swift/integration-tests/partial-modules/Package.swift new file mode 100644 index 00000000000..362476ab0c4 --- /dev/null +++ b/swift/integration-tests/partial-modules/Package.swift @@ -0,0 +1,23 @@ +// swift-tools-version: 5.5 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "partial-modules", + products: [ + .library( + name: "partial-modules", + targets: ["partial-modules"]), + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + .package(path: "./A"), + .package(path: "./B"), + ], + targets: [ + .target( + name: "partial-modules", + dependencies: ["A", "B"]), + ] +) diff --git a/swift/integration-tests/partial-modules/Sources/partial-modules/partial_modules.swift b/swift/integration-tests/partial-modules/Sources/partial-modules/partial_modules.swift new file mode 100644 index 00000000000..ee70ae483c8 --- /dev/null +++ b/swift/integration-tests/partial-modules/Sources/partial-modules/partial_modules.swift @@ -0,0 +1,11 @@ +import A +import B + +public struct partial_modules { + public init() { + let a = A() + let b = B() + print(a.text) + print(b.text) + } +} diff --git a/swift/integration-tests/partial-modules/Unknown.expected b/swift/integration-tests/partial-modules/Unknown.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/integration-tests/partial-modules/Unknown.ql b/swift/integration-tests/partial-modules/Unknown.ql new file mode 100644 index 00000000000..222ef6339a7 --- /dev/null +++ b/swift/integration-tests/partial-modules/Unknown.ql @@ -0,0 +1,4 @@ +import swift + +from UnresolvedDotExpr e +select e diff --git a/swift/integration-tests/partial-modules/test.py b/swift/integration-tests/partial-modules/test.py new file mode 100644 index 00000000000..ae89d5da5d7 --- /dev/null +++ b/swift/integration-tests/partial-modules/test.py @@ -0,0 +1,7 @@ +from create_database_utils import * + +run_codeql_database_create([ + 'env', + 'swift package clean', + 'swift build' +], lang='swift', keep_trap=True) From e1ef637c5479eb93f25273bd687feb05e9573ab7 Mon Sep 17 00:00:00 2001 From: AlexDenisov Date: Wed, 29 Jun 2022 10:16:14 +0200 Subject: [PATCH 205/736] Update swift/extractor/SwiftExtractorConfiguration.h Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com> --- swift/extractor/SwiftExtractorConfiguration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/extractor/SwiftExtractorConfiguration.h b/swift/extractor/SwiftExtractorConfiguration.h index b953e589e46..a8bba93e498 100644 --- a/swift/extractor/SwiftExtractorConfiguration.h +++ b/swift/extractor/SwiftExtractorConfiguration.h @@ -12,7 +12,7 @@ struct SwiftExtractorConfiguration { // A temporary directory that exists during database creation, but is deleted once the DB is // finalized. std::string scratchDir; - // A temporary directory that contains TRAP files before they moved into the final destination. + // A temporary directory that contains TRAP files before they are moved into their final destination. // Subdirectory of the scratchDir. std::string tempTrapDir; From 4d81206a877f52481be8dccd2585699956ad7a22 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Thu, 23 Jun 2022 09:17:02 +0200 Subject: [PATCH 206/736] Swift: teach extractor to emit build artifacts for later consumption --- swift/extractor/BUILD.bazel | 2 + swift/extractor/SwiftExtractor.cpp | 12 +- swift/extractor/SwiftExtractorConfiguration.h | 15 + swift/extractor/SwiftOutputRewrite.cpp | 318 ++++++++++++++++++ swift/extractor/SwiftOutputRewrite.h | 30 ++ swift/extractor/main.cpp | 37 +- swift/tools/tracing-config.lua | 3 - 7 files changed, 402 insertions(+), 15 deletions(-) create mode 100644 swift/extractor/SwiftOutputRewrite.cpp create mode 100644 swift/extractor/SwiftOutputRewrite.h diff --git a/swift/extractor/BUILD.bazel b/swift/extractor/BUILD.bazel index b81778e8fe2..b22841ca819 100644 --- a/swift/extractor/BUILD.bazel +++ b/swift/extractor/BUILD.bazel @@ -3,6 +3,8 @@ load("//swift:rules.bzl", "swift_cc_binary") swift_cc_binary( name = "extractor", srcs = [ + "SwiftOutputRewrite.cpp", + "SwiftOutputRewrite.h", "SwiftExtractor.cpp", "SwiftExtractor.h", "SwiftExtractorConfiguration.h", diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 2708b0241a4..9e65c77838a 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -80,11 +80,17 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, << "': " << ec.message() << "\n"; return; } - trapStream << "// extractor-args: "; + trapStream << "/* extractor-args:\n"; for (auto opt : config.frontendOptions) { - trapStream << std::quoted(opt) << " "; + trapStream << " " << std::quoted(opt) << " \\\n"; } - trapStream << "\n\n"; + trapStream << "\n*/\n"; + + trapStream << "/* swift-frontend-args:\n"; + for (auto opt : config.patchedFrontendOptions) { + trapStream << " " << std::quoted(opt) << " \\\n"; + } + trapStream << "\n*/\n"; TrapOutput trap{trapStream}; TrapArena arena{}; diff --git a/swift/extractor/SwiftExtractorConfiguration.h b/swift/extractor/SwiftExtractorConfiguration.h index a8bba93e498..230ee661ac2 100644 --- a/swift/extractor/SwiftExtractorConfiguration.h +++ b/swift/extractor/SwiftExtractorConfiguration.h @@ -16,7 +16,22 @@ struct SwiftExtractorConfiguration { // Subdirectory of the scratchDir. std::string tempTrapDir; + // VFS (virtual file system) support. + // A temporary directory that contains VFS files used during extraction. + // Subdirectory of the scratchDir. + std::string VFSDir; + // A temporary directory that contains temp VFS files before they moved into VFSDir. + // Subdirectory of the scratchDir. + std::string tempVFSDir; + + // A temporary directory that contains build artifacts generated by the extractor during the + // overall extraction process. + // Subdirectory of the scratchDir. + std::string tempArtifactDir; + // The original arguments passed to the extractor. Used for debugging. std::vector frontendOptions; + // The patched arguments passed to the swift::performFrontend/ Used for debugging. + std::vector patchedFrontendOptions; }; } // namespace codeql diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp new file mode 100644 index 00000000000..b48fd4cfc3e --- /dev/null +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -0,0 +1,318 @@ +#include "SwiftOutputRewrite.h" +#include "swift/extractor/SwiftExtractorConfiguration.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Creates a copy of the output file map and updated remapping table in place +// It does not change the original map file as it is dependent upon by the original compiler +// Returns path to the newly created output file map on success, or None in a case of failure +static std::optional rewriteOutputFileMap( + const codeql::SwiftExtractorConfiguration& config, + const std::string& outputFileMapPath, + const std::vector& inputs, + std::unordered_map& remapping) { + auto newPath = config.tempArtifactDir + '/' + outputFileMapPath; + + // TODO: do not assume absolute path for the second parameter + auto outputMapOrError = swift::OutputFileMap::loadFromPath(outputFileMapPath, ""); + if (!outputMapOrError) { + return std::nullopt; + } + auto oldOutputMap = outputMapOrError.get(); + swift::OutputFileMap newOutputMap; + std::vector keys; + for (auto& key : inputs) { + auto oldMap = oldOutputMap.getOutputMapForInput(key); + if (!oldMap) { + continue; + } + keys.push_back(key); + auto& newMap = newOutputMap.getOrCreateOutputMapForInput(key); + newMap.copyFrom(*oldMap); + for (auto& entry : newMap) { + auto oldPath = entry.getSecond(); + auto newPath = config.tempArtifactDir + '/' + oldPath; + entry.getSecond() = newPath; + remapping[oldPath] = newPath; + } + } + std::error_code ec; + llvm::SmallString filepath(newPath); + llvm::StringRef parent = llvm::sys::path::parent_path(filepath); + if (std::error_code ec = llvm::sys::fs::create_directories(parent)) { + std::cerr << "Cannot create relocated output map dir: '" << parent.str() + << "': " << ec.message() << "\n"; + return std::nullopt; + } + + llvm::raw_fd_ostream fd(newPath, ec, llvm::sys::fs::OF_None); + newOutputMap.write(fd, keys); + return newPath; +} + +// This is Xcode-specific workaround to produce alias names for an existing .swiftmodule file. +// In the case of Xcode, it calls the Swift compiler and asks it to produce a Swift module. +// Once it's done, Xcode moves the .swiftmodule file in another location, and the location is +// rather arbitrary. Here are examples of such locations: +// Original file produced by the frontend: +// DerivedData//Build/Intermediates.noindex/.build/-/.build/Objects-normal//.swiftmodule +// where: +// Project: name of a project, target, or scheme +// BuildType: Debug, Release, etc. +// Target: macOS, iphoneos, appletvsimulator, etc. +// Arch: arm64, x86_64, etc. +// +// So far we observed that Xcode can move the module into different locations, and it's not +// entirely clear how to deduce the destination from the context available for the extractor. +// 1. First case: +// DerivedData//Build/Products/-/.swiftmodule/.swiftmodule +// DerivedData//Build/Products/-/.swiftmodule/.swiftmodule +// 2. Second case: +// DerivedData//Build/Products/-//.swiftmodule/.swiftmodule +// DerivedData//Build/Products/-//.swiftmodule/.swiftmodule +// 2. Third case: +// DerivedData//Build/Products/-//.framework/Modules/.swiftmodule/.swiftmodule +// DerivedData//Build/Products/-//.framework/Modules/.swiftmodule/.swiftmodule +// The here is a normalized target triple (e.g. arm64-apple-iphoneos15.4 -> +// arm64-apple-iphoneos). +// +// This method construct those aliases for a module only if it comes from Xcode, which is detected +// by the presence of `Intermediates.noindex` directory in the module path. +// +// In the case of Swift Package Manager (`swift build`) this is not needed. +static std::vector computeModuleAliases(llvm::StringRef modulePath, + const std::string& targetTriple) { + if (modulePath.empty()) { + return {}; + } + if (!modulePath.endswith(".swiftmodule")) { + return {}; + } + + llvm::SmallVector chunks; + modulePath.split(chunks, '/'); + size_t intermediatesDirIndex = 0; + for (size_t i = 0; i < chunks.size(); i++) { + if (chunks[i] == "Intermediates.noindex") { + intermediatesDirIndex = i; + break; + } + } + // Not built by Xcode, skipping + if (intermediatesDirIndex == 0) { + return {}; + } + // e.g. Debug-iphoneos, Release-iphonesimulator, etc. + auto destinationDir = chunks[intermediatesDirIndex + 2].str(); + auto arch = chunks[intermediatesDirIndex + 5].str(); + auto moduleNameWithExt = chunks.back(); + auto moduleName = moduleNameWithExt.substr(0, moduleNameWithExt.find_last_of('.')); + std::string relocatedModulePath = chunks[0].str(); + for (size_t i = 1; i < intermediatesDirIndex; i++) { + relocatedModulePath += '/' + chunks[i].str(); + } + relocatedModulePath += "/Products/"; + relocatedModulePath += destinationDir + '/'; + + std::vector moduleLocations; + + std::string firstCase = relocatedModulePath; + firstCase += moduleNameWithExt.str() + '/'; + moduleLocations.push_back(firstCase); + + std::string secondCase = relocatedModulePath; + secondCase += moduleName.str() + '/'; + secondCase += moduleNameWithExt.str() + '/'; + moduleLocations.push_back(secondCase); + + std::string thirdCase = relocatedModulePath; + thirdCase += moduleName.str() + '/'; + thirdCase += moduleName.str() + ".framework/Modules/"; + thirdCase += moduleNameWithExt.str() + '/'; + moduleLocations.push_back(thirdCase); + + std::vector aliases; + for (auto& location : moduleLocations) { + aliases.push_back(location + arch + ".swiftmodule"); + if (!targetTriple.empty()) { + llvm::Triple triple(targetTriple); + auto moduleTriple = swift::getTargetSpecificModuleTriple(triple); + aliases.push_back(location + moduleTriple.normalize() + ".swiftmodule"); + } + } + + return aliases; +} + +namespace codeql { + +std::unordered_map rewriteOutputsInPlace( + SwiftExtractorConfiguration& config, + std::vector& CLIArgs) { + std::unordered_map remapping; + + // TODO: handle filelists? + std::unordered_set pathRewriteOptions({ + "-emit-dependencies-path", + "-emit-module-path", + "-emit-module-doc-path", + "-emit-module-source-info-path", + "-emit-objc-header-path", + "-emit-reference-dependencies-path", + "-index-store-path", + "-module-cache-path", + "-o", + "-pch-output-dir", + "-serialize-diagnostics-path", + }); + + std::unordered_set outputFileMaps( + {"-supplementary-output-file-map", "-output-file-map"}); + + std::vector outputFileMapIndexes; + std::vector maybeInput; + std::string targetTriple; + + std::vector newLocations; + for (size_t i = 0; i < CLIArgs.size(); i++) { + if (pathRewriteOptions.count(CLIArgs[i])) { + auto oldPath = CLIArgs[i + 1]; + auto newPath = config.tempArtifactDir + '/' + oldPath; + CLIArgs[++i] = newPath; + newLocations.push_back(newPath); + + remapping[oldPath] = newPath; + } else if (outputFileMaps.count(CLIArgs[i])) { + // collect output map indexes for further rewriting and skip the following argument + // We don't patch the map in place as we need to collect all the input files first + outputFileMapIndexes.push_back(++i); + } else if (CLIArgs[i] == "-target") { + targetTriple = CLIArgs[++i]; + } else if (CLIArgs[i][0] != '-') { + // TODO: add support for input file lists? + // We need to collect input file names to later use them to extract information from the + // output file maps. + maybeInput.push_back(CLIArgs[i]); + } + } + + for (auto index : outputFileMapIndexes) { + auto oldPath = CLIArgs[index]; + auto maybeNewPath = rewriteOutputFileMap(config, oldPath, maybeInput, remapping); + if (maybeNewPath) { + auto newPath = maybeNewPath.value(); + CLIArgs[index] = newPath; + remapping[oldPath] = newPath; + } + } + + // This doesn't really belong here, but we've got Xcode... + for (auto& [oldPath, newPath] : remapping) { + llvm::StringRef path(oldPath); + auto aliases = computeModuleAliases(path, targetTriple); + for (auto& alias : aliases) { + remapping[alias] = newPath; + } + } + + return remapping; +} + +void ensureNewPathsExist(const std::unordered_map& remapping) { + for (auto& [_, newPath] : remapping) { + llvm::SmallString filepath(newPath); + llvm::StringRef parent = llvm::sys::path::parent_path(filepath); + if (std::error_code ec = llvm::sys::fs::create_directories(parent)) { + std::cerr << "Cannot create redirected directory: " << ec.message() << "\n"; + } + } +} + +void storeRemappingForVFS(const SwiftExtractorConfiguration& config, + const std::unordered_map& remapping) { + // Only create remapping for the .swiftmodule files + std::unordered_map modules; + for (auto& [oldPath, newPath] : remapping) { + if (llvm::StringRef(oldPath).endswith(".swiftmodule")) { + modules[oldPath] = newPath; + } + } + + if (modules.empty()) { + return; + } + + if (std::error_code ec = llvm::sys::fs::create_directories(config.tempVFSDir)) { + std::cerr << "Cannot create temp VFS directory: " << ec.message() << "\n"; + return; + } + + if (std::error_code ec = llvm::sys::fs::create_directories(config.VFSDir)) { + std::cerr << "Cannot create VFS directory: " << ec.message() << "\n"; + return; + } + + // Constructing the VFS yaml file in a temp folder so that the other process doesn't read it + // while it is not complete + // TODO: Pick a more robust way to not collide with files from other processes + auto tempVfsPath = config.tempVFSDir + '/' + std::to_string(getpid()) + "-vfs.yaml"; + std::error_code ec; + llvm::raw_fd_ostream fd(tempVfsPath, ec, llvm::sys::fs::OF_None); + if (ec) { + std::cerr << "Cannot create temp VFS file: '" << tempVfsPath << "': " << ec.message() << "\n"; + return; + } + // TODO: there must be a better API than this + // LLVM expects the version to be 0 + fd << "{ version: 0,\n"; + // This tells the FS not to fallback to the physical file system in case the remapped file is not + // present + fd << " fallthrough: false,\n"; + fd << " roots: [\n"; + for (auto& [oldPath, newPath] : modules) { + fd << " {\n"; + fd << " type: 'file',\n"; + fd << " name: '" << oldPath << "\',\n"; + fd << " external-contents: '" << newPath << "\'\n"; + fd << " },\n"; + } + fd << " ]\n"; + fd << "}\n"; + + fd.flush(); + auto vfsPath = config.VFSDir + '/' + std::to_string(getpid()) + "-vfs.yaml"; + if (std::error_code ec = llvm::sys::fs::rename(tempVfsPath, vfsPath)) { + std::cerr << "Cannot move temp VFS file '" << tempVfsPath << "' -> '" << vfsPath + << "': " << ec.message() << "\n"; + return; + } +} + +std::vector collectVFSFiles(const SwiftExtractorConfiguration& config) { + auto vfsDir = config.VFSDir + '/'; + if (!llvm::sys::fs::exists(vfsDir)) { + return {}; + } + std::vector overlays; + std::error_code ec; + llvm::sys::fs::directory_iterator it(vfsDir, ec); + while (!ec && it != llvm::sys::fs::directory_iterator()) { + llvm::StringRef path(it->path()); + if (path.endswith("vfs.yaml")) { + overlays.push_back(path.str()); + } + it.increment(ec); + } + + return overlays; +} + +} // namespace codeql diff --git a/swift/extractor/SwiftOutputRewrite.h b/swift/extractor/SwiftOutputRewrite.h new file mode 100644 index 00000000000..3f96608b501 --- /dev/null +++ b/swift/extractor/SwiftOutputRewrite.h @@ -0,0 +1,30 @@ +#pragma once + +#include +#include +#include + +namespace codeql { + +struct SwiftExtractorConfiguration; + +// Rewrites all the output CLI args to point to a scratch dir instead of the actual locations. +// This is needed to ensure that the artifacts produced by the extractor do not collide with the +// artifacts produced by the actual Swift compiler. +// Returns the map containing remapping oldpath -> newPath. +std::unordered_map rewriteOutputsInPlace( + SwiftExtractorConfiguration& config, + std::vector& CLIArgs); + +// Recreate all the redirected new paths as the Swift compiler expects them to be present +void ensureNewPathsExist(const std::unordered_map& remapping); + +// Stores remapped `.swiftmoduile`s in a YAML file for later consumption by the +// llvm::RedirectingFileSystem via Swift's VFSOverlayFiles. +void storeRemappingForVFS(const SwiftExtractorConfiguration& config, + const std::unordered_map& remapping); + +// Returns a list of VFS YAML files produced by all the extractor processes. +std::vector collectVFSFiles(const SwiftExtractorConfiguration& config); + +} // namespace codeql diff --git a/swift/extractor/main.cpp b/swift/extractor/main.cpp index a493a501411..2a3d23e87e5 100644 --- a/swift/extractor/main.cpp +++ b/swift/extractor/main.cpp @@ -1,27 +1,32 @@ #include #include #include +#include +#include +#include +#include #include #include #include "SwiftExtractor.h" +#include "SwiftOutputRewrite.h" using namespace std::string_literals; // This is part of the swiftFrontendTool interface, we hook into the // compilation pipeline and extract files after the Swift frontend performed -// semantic analysys +// semantic analysis class Observer : public swift::FrontendObserver { public: explicit Observer(const codeql::SwiftExtractorConfiguration& config) : config{config} {} void parsedArgs(swift::CompilerInvocation& invocation) override { - // Original compiler and the extractor-compiler get into conflicts when - // both produce the same output files. - // TODO: change the final artifact destinations instead of disabling - // the artifact generation completely? - invocation.getFrontendOptions().RequestedAction = swift::FrontendOptions::ActionType::Typecheck; + auto& overlays = invocation.getSearchPathOptions().VFSOverlayFiles; + auto vfsFiles = codeql::collectVFSFiles(config); + for (auto& vfsFile : vfsFiles) { + overlays.push_back(vfsFile); + } } void performedSemanticAnalysis(swift::CompilerInstance& compiler) override { @@ -54,12 +59,26 @@ int main(int argc, char** argv) { configuration.scratchDir = getenv_or("CODEQL_EXTRACTOR_SWIFT_SCRATCH_DIR", "."); configuration.tempTrapDir = configuration.scratchDir + "/swift-trap-temp"; + configuration.VFSDir = configuration.scratchDir + "/swift-vfs"; + configuration.tempVFSDir = configuration.scratchDir + "/swift-vfs-temp"; + configuration.tempArtifactDir = configuration.scratchDir + "/swift-extraction-artifacts"; + + configuration.frontendOptions.reserve(argc - 1); + for (int i = 1; i < argc; i++) { + configuration.frontendOptions.push_back(argv[i]); + } + configuration.patchedFrontendOptions = configuration.frontendOptions; + + auto remapping = + codeql::rewriteOutputsInPlace(configuration, configuration.patchedFrontendOptions); + codeql::ensureNewPathsExist(remapping); + codeql::storeRemappingForVFS(configuration, remapping); std::vector args; - for (int i = 1; i < argc; i++) { - args.push_back(argv[i]); + for (auto& arg : configuration.patchedFrontendOptions) { + args.push_back(arg.c_str()); } - std::copy(std::begin(args), std::end(args), std::back_inserter(configuration.frontendOptions)); + Observer observer(configuration); int frontend_rc = swift::performFrontend(args, "swift-extractor", (void*)main, &observer); return frontend_rc; diff --git a/swift/tools/tracing-config.lua b/swift/tools/tracing-config.lua index 558d6a95d3f..d9343285099 100644 --- a/swift/tools/tracing-config.lua +++ b/swift/tools/tracing-config.lua @@ -67,9 +67,6 @@ function RegisterExtractorPack(id) return nil end - -- Skip actions in which we cannot extract anything - if compilerArguments.argv[1] == '-merge-modules' then return nil end - strip_unsupported_args(compilerArguments.argv) insert_resource_dir_if_needed(compilerPath, compilerArguments.argv) From cc25e2644f2c85137d7f337f83e236eb5aae9188 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 29 Jun 2022 11:40:46 +0100 Subject: [PATCH 207/736] Swift: Don't join on index in 'swift/string-length-conflation'. --- .../queries/Security/CWE-135/StringLengthConflation.ql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 78a19e0949d..2bccba41b25 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -63,8 +63,8 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { c.getAMember() = f and // TODO: will this even work if its defined in a parent class? call.getFunction().(ApplyExpr).getStaticTarget() = f and f.getName() = methodName and - f.getParam(arg).getName() = paramName and - call.getArgument(arg).getExpr() = node.asExpr() and + f.getParam(pragma[only_bind_into](arg)).getName() = paramName and + call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and flowstate = "String" // `String` length flowing into `NSString` ) or @@ -74,8 +74,8 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { funcName = "NSMakeRange(_:_:)" and paramName = ["loc", "len"] and call.getStaticTarget().getName() = funcName and - call.getStaticTarget().getParam(arg).getName() = paramName and - call.getArgument(arg).getExpr() = node.asExpr() and + call.getStaticTarget().getParam(pragma[only_bind_into](arg)).getName() = paramName and + call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and flowstate = "String" // `String` length flowing into `NSString` ) } From 822002d37d7546c6246d1e0700eec4626fdce780 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 28 Jun 2022 15:42:19 +0100 Subject: [PATCH 208/736] Swift: Missing qldoc. --- .../ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll b/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll index 04d2185aab6..cca41098f9c 100644 --- a/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll +++ b/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll @@ -15,6 +15,9 @@ class ArithmeticOperation extends Expr { this instanceof UnaryArithmeticOperation } + /** + * Gets an operand of this arithmetic operation. + */ Expr getAnOperand() { result = this.(BinaryArithmeticOperation).getAnOperand() or From 2cf65c7d35dae24b6d1e281aa0f3db62819a5019 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 28 Jun 2022 16:39:11 +0100 Subject: [PATCH 209/736] Swift: Autoformat tests. --- .../arithmeticoperation.ql | 23 ++++++++++++------- .../expr/logicaloperation/logicaloperation.ql | 14 +++++++---- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.ql b/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.ql index 2aeba5981b8..9d98daa68af 100644 --- a/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.ql +++ b/swift/ql/test/library-tests/elements/expr/arithmeticoperation/arithmeticoperation.ql @@ -1,14 +1,21 @@ import swift string describe(ArithmeticOperation e) { - (e instanceof BinaryArithmeticOperation and result = "BinaryArithmeticOperation") or - (e instanceof AddExpr and result = "AddExpr") or - (e instanceof SubExpr and result = "SubExpr") or - (e instanceof MulExpr and result = "MulExpr") or - (e instanceof DivExpr and result = "DivExpr") or - (e instanceof RemExpr and result = "RemExpr") or - (e instanceof UnaryArithmeticOperation and result = "UnaryArithmeticOperation") or - (e instanceof UnaryMinusExpr and result = "UnaryMinusExpr") + e instanceof BinaryArithmeticOperation and result = "BinaryArithmeticOperation" + or + e instanceof AddExpr and result = "AddExpr" + or + e instanceof SubExpr and result = "SubExpr" + or + e instanceof MulExpr and result = "MulExpr" + or + e instanceof DivExpr and result = "DivExpr" + or + e instanceof RemExpr and result = "RemExpr" + or + e instanceof UnaryArithmeticOperation and result = "UnaryArithmeticOperation" + or + e instanceof UnaryMinusExpr and result = "UnaryMinusExpr" } from ArithmeticOperation e diff --git a/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.ql b/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.ql index 8d943f725b2..f9c361ed214 100644 --- a/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.ql +++ b/swift/ql/test/library-tests/elements/expr/logicaloperation/logicaloperation.ql @@ -1,11 +1,15 @@ import swift string describe(LogicalOperation e) { - (e instanceof BinaryLogicalOperation and result = "BinaryLogicalExpr") or - (e instanceof LogicalAndExpr and result = "LogicalAndExpr") or - (e instanceof LogicalOrExpr and result = "LogicalOrExpr") or - (e instanceof UnaryLogicalOperation and result = "UnaryLogicalOperation") or - (e instanceof NotExpr and result = "NotExpr") + e instanceof BinaryLogicalOperation and result = "BinaryLogicalExpr" + or + e instanceof LogicalAndExpr and result = "LogicalAndExpr" + or + e instanceof LogicalOrExpr and result = "LogicalOrExpr" + or + e instanceof UnaryLogicalOperation and result = "UnaryLogicalOperation" + or + e instanceof NotExpr and result = "NotExpr" } from LogicalOperation e From 8b7535af81b18a20e49bae79bb4b0e575f1d31b2 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 28 Jun 2022 16:47:44 +0100 Subject: [PATCH 210/736] Swift: Don't use abstract classes. --- .../elements/expr/ArithmeticOperation.qll | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll b/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll index cca41098f9c..27e7e42e4fa 100644 --- a/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll +++ b/swift/ql/lib/codeql/swift/elements/expr/ArithmeticOperation.qll @@ -31,7 +31,15 @@ class ArithmeticOperation extends Expr { * a + b * ``` */ -abstract class BinaryArithmeticOperation extends BinaryExpr { } +class BinaryArithmeticOperation extends BinaryExpr { + BinaryArithmeticOperation() { + this instanceof AddExpr or + this instanceof SubExpr or + this instanceof MulExpr or + this instanceof DivExpr or + this instanceof RemExpr + } +} /** * An add expression. @@ -39,7 +47,7 @@ abstract class BinaryArithmeticOperation extends BinaryExpr { } * a + b * ``` */ -class AddExpr extends BinaryArithmeticOperation { +class AddExpr extends BinaryExpr { AddExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "+(_:_:)" } } @@ -49,7 +57,7 @@ class AddExpr extends BinaryArithmeticOperation { * a - b * ``` */ -class SubExpr extends BinaryArithmeticOperation { +class SubExpr extends BinaryExpr { SubExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "-(_:_:)" } } @@ -59,7 +67,7 @@ class SubExpr extends BinaryArithmeticOperation { * a * b * ``` */ -class MulExpr extends BinaryArithmeticOperation { +class MulExpr extends BinaryExpr { MulExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "*(_:_:)" } } @@ -69,7 +77,7 @@ class MulExpr extends BinaryArithmeticOperation { * a / b * ``` */ -class DivExpr extends BinaryArithmeticOperation { +class DivExpr extends BinaryExpr { DivExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "/(_:_:)" } } @@ -79,7 +87,7 @@ class DivExpr extends BinaryArithmeticOperation { * a % b * ``` */ -class RemExpr extends BinaryArithmeticOperation { +class RemExpr extends BinaryExpr { RemExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "%(_:_:)" } } @@ -89,7 +97,9 @@ class RemExpr extends BinaryArithmeticOperation { * -a * ``` */ -abstract class UnaryArithmeticOperation extends PrefixUnaryExpr { } +class UnaryArithmeticOperation extends PrefixUnaryExpr { + UnaryArithmeticOperation() { this instanceof UnaryMinusExpr } +} /** * A unary minus expression. @@ -97,6 +107,6 @@ abstract class UnaryArithmeticOperation extends PrefixUnaryExpr { } * -a * ``` */ -class UnaryMinusExpr extends UnaryArithmeticOperation { +class UnaryMinusExpr extends PrefixUnaryExpr { UnaryMinusExpr() { this.getFunction().(DotSyntaxCallExpr).getStaticTarget().getName() = "-(_:)" } } From f35ab7c2924b27137bc12e5f6bf0e98c6bd16533 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 29 Jun 2022 12:20:07 +0100 Subject: [PATCH 211/736] Swift: Accept test changes to the cfg. These happen due to the fixes in 9e0cf62cdae127b96ef70f49d2e0f56bc1ccc959. --- .../controlflow/graph/Cfg.expected | 136 +++++++++--------- 1 file changed, 72 insertions(+), 64 deletions(-) diff --git a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected index 3164022150d..ff9094e0f98 100644 --- a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -1670,11 +1670,17 @@ cfg.swift: #-----| -> 2 # 185| ... call to <=(_:_:) ... -#-----| -> { ... } +#-----| false -> [false] ... call to &&(_:_:) ... +#-----| true -> { ... } # 185| ... call to &&(_:_:) ... #-----| exception -> exit m1(x:) (normal) -#-----| -> { ... } +#-----| false -> [false] ... call to &&(_:_:) ... +#-----| true -> { ... } + +# 185| [false] ... call to &&(_:_:) ... +#-----| exception -> exit m1(x:) (normal) +#-----| false -> [false] ... call to &&(_:_:) ... # 185| ... call to &&(_:_:) ... #-----| exception -> exit m1(x:) (normal) @@ -1682,7 +1688,11 @@ cfg.swift: #-----| false -> print(_:separator:terminator:) # 185| StmtCondition -#-----| -> &&(_:_:) +#-----| -> <=(_:_:) + +# 185| [false] ... call to &&(_:_:) ... +#-----| exception -> exit m1(x:) (normal) +#-----| false -> print(_:separator:terminator:) # 185| <=(_:_:) #-----| -> Int.Type @@ -1696,29 +1706,59 @@ cfg.swift: # 185| 2 #-----| -> ... call to <=(_:_:) ... -# 185| &&(_:_:) -#-----| -> Bool.Type +# 185| x +#-----| -> 0 -# 185| Bool.Type -#-----| -> call to &&(_:_:) +# 185| ... call to >(_:_:) ... +#-----| -> return ... -# 185| call to &&(_:_:) -#-----| -> <=(_:_:) - -# 185| { ... } +# 185| return ... #-----| -> ... call to &&(_:_:) ... -# 185| &&(_:_:) -#-----| -> Bool.Type +# 185| { ... } +#-----| -> >(_:_:) -# 185| Bool.Type -#-----| -> call to &&(_:_:) +# 185| >(_:_:) +#-----| -> Int.Type -# 185| call to &&(_:_:) -#-----| -> &&(_:_:) +# 185| Int.Type +#-----| -> call to >(_:_:) + +# 185| call to >(_:_:) +#-----| -> x + +# 185| 0 +#-----| -> ... call to >(_:_:) ... + +# 185| call to ... +#-----| -> return ... + +# 185| return ... +#-----| -> ... call to &&(_:_:) ... # 185| { ... } -#-----| -> ... call to &&(_:_:) ... +#-----| -> ==(_:_:) + +# 185| (...) +#-----| -> call to ... + +# 185| x +#-----| -> 5 + +# 185| ... call to ==(_:_:) ... +#-----| -> (...) + +# 185| ==(_:_:) +#-----| -> Int.Type + +# 185| Int.Type +#-----| -> call to ==(_:_:) + +# 185| call to ==(_:_:) +#-----| -> x + +# 185| 5 +#-----| -> ... call to ==(_:_:) ... # 186| print(_:separator:terminator:) #-----| -> x is 1 @@ -2058,48 +2098,14 @@ cfg.swift: # 224| if ... then { ... } #-----| -> StmtCondition -# 224| !(_:) -#-----| -> Bool.Type - -# 224| Bool.Type -#-----| -> call to !(_:) - -# 224| call to !(_:) +# 224| StmtCondition #-----| -> true -# 224| StmtCondition -#-----| -> !(_:) - -# 224| call to ... +# 224| [false] call to ... #-----| false -> exit constant_condition() (normal) -#-----| true -> print(_:separator:terminator:) # 224| true -#-----| -> call to ... - -# 225| print(_:separator:terminator:) -#-----| -> Impossible - -# 225| call to print(_:separator:terminator:) -#-----| -> exit constant_condition() (normal) - -# 225| default separator -#-----| -> default terminator - -# 225| default terminator -#-----| -> call to print(_:separator:terminator:) - -# 225| (Any) ... -#-----| -> [...] - -# 225| Impossible -#-----| -> (Any) ... - -# 225| [...] -#-----| -> default separator - -# 225| [...] -#-----| -> [...] +#-----| true -> [false] call to ... # 229| empty_else(b:) #-----| -> b @@ -2197,7 +2203,7 @@ cfg.swift: #-----| -> StmtCondition # 238| StmtCondition -#-----| -> ||(_:_:) +#-----| -> b1 # 238| [false] (...) #-----| false -> exit disjunct(b1:b2:) (normal) @@ -2206,24 +2212,26 @@ cfg.swift: #-----| true -> print(_:separator:terminator:) # 238| b1 -#-----| -> { ... } +#-----| true -> [true] ... call to ||(_:_:) ... +#-----| false -> { ... } # 238| ... call to ||(_:_:) ... #-----| exception -> exit disjunct(b1:b2:) (normal) #-----| false -> [false] (...) #-----| true -> [true] (...) -# 238| Bool.Type -#-----| -> call to ||(_:_:) +# 238| [true] ... call to ||(_:_:) ... +#-----| exception -> exit disjunct(b1:b2:) (normal) +#-----| true -> [true] (...) -# 238| call to ||(_:_:) -#-----| -> b1 +# 238| b2 +#-----| -> return ... -# 238| ||(_:_:) -#-----| -> Bool.Type +# 238| return ... +#-----| -> ... call to ||(_:_:) ... # 238| { ... } -#-----| -> ... call to ||(_:_:) ... +#-----| -> b2 # 239| print(_:separator:terminator:) #-----| -> b1 or b2 From c1302a90e0201f98ada5aa0cb0edff76767a26ae Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Wed, 29 Jun 2022 13:16:18 +0100 Subject: [PATCH 212/736] Ruby: use MaD for more precise Pathname flow summaries --- .../codeql/ruby/frameworks/core/Pathname.qll | 164 ++++------ .../pathname-flow/pathame-flow.expected | 289 +++++++++++++----- .../dataflow/pathname-flow/pathname_flow.rb | 124 ++++++-- 3 files changed, 375 insertions(+), 202 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll index d296d9c75ea..e2cea924838 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll @@ -6,6 +6,7 @@ private import codeql.ruby.Concepts private import codeql.ruby.DataFlow private import codeql.ruby.dataflow.FlowSummary private import codeql.ruby.dataflow.internal.DataFlowDispatch +private import codeql.ruby.frameworks.data.ModelsAsData /** * Modeling of the `Pathname` class from the Ruby standard library. @@ -113,106 +114,75 @@ module Pathname { override DataFlow::Node getAPermissionNode() { result = permissionArg } } - /** Flow summary for `Pathname.new`. */ - private class NewSummary extends SummarizedCallable { - NewSummary() { this = "Pathname.new" } - - override MethodCall getACall() { - result = API::getTopLevelMember("Pathname").getAnInstantiation().getExprNode().getExpr() - } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[0]" and - output = "ReturnValue" and - preservesValue = false + /** + * Type summaries for the `Pathname` class, i.e. method calls that produce new + * `Pathname` instances. + */ + private class PathnameTypeSummary extends ModelInput::TypeModelCsv { + override predicate row(string row) { + // package1;type1;package2;type2;path + row = + [ + // Pathname.new : Pathname + ";Pathname;;;Member[Pathname].Instance", + // Pathname#+(path) : Pathname + ";Pathname;;Pathname;Method[+].ReturnValue", + // Pathname#/(path) : Pathname + ";Pathname;;Pathname;Method[/].ReturnValue", + // Pathname#basename(path) : Pathname + ";Pathname;;Pathname;Method[basename].ReturnValue", + // Pathname#cleanpath(path) : Pathname + ";Pathname;;Pathname;Method[cleanpath].ReturnValue", + // Pathname#expand_path(path) : Pathname + ";Pathname;;Pathname;Method[expand_path].ReturnValue", + // Pathname#join(path) : Pathname + ";Pathname;;Pathname;Method[join].ReturnValue", + // Pathname#realpath(path) : Pathname + ";Pathname;;Pathname;Method[realpath].ReturnValue", + // Pathname#relative_path_from(path) : Pathname + ";Pathname;;Pathname;Method[relative_path_from].ReturnValue", + // Pathname#sub(path) : Pathname + ";Pathname;;Pathname;Method[sub].ReturnValue", + // Pathname#sub_ext(path) : Pathname + ";Pathname;;Pathname;Method[sub_ext].ReturnValue", + // Pathname#to_path(path) : Pathname + ";Pathname;;Pathname;Method[to_path].ReturnValue", + ] } } - /** Flow summary for `Pathname#dirname`. */ - private class DirnameSummary extends SimpleSummarizedCallable { - DirnameSummary() { this = "dirname" } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[self]" and - output = "ReturnValue" and - preservesValue = false - } - } - - /** Flow summary for `Pathname#each_filename`. */ - private class EachFilenameSummary extends SimpleSummarizedCallable { - EachFilenameSummary() { this = "each_filename" } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[self]" and - output = "Argument[block].Parameter[0]" and - preservesValue = false - } - } - - /** Flow summary for `Pathname#expand_path`. */ - private class ExpandPathSummary extends SimpleSummarizedCallable { - ExpandPathSummary() { this = "expand_path" } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[self]" and - output = "ReturnValue" and - preservesValue = false - } - } - - /** Flow summary for `Pathname#join`. */ - private class JoinSummary extends SimpleSummarizedCallable { - JoinSummary() { this = "join" } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = ["Argument[self]", "Argument[any]"] and - output = "ReturnValue" and - preservesValue = false - } - } - - /** Flow summary for `Pathname#parent`. */ - private class ParentSummary extends SimpleSummarizedCallable { - ParentSummary() { this = "parent" } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[self]" and - output = "ReturnValue" and - preservesValue = false - } - } - - /** Flow summary for `Pathname#realpath`. */ - private class RealpathSummary extends SimpleSummarizedCallable { - RealpathSummary() { this = "realpath" } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[self]" and - output = "ReturnValue" and - preservesValue = false - } - } - - /** Flow summary for `Pathname#relative_path_from`. */ - private class RelativePathFromSummary extends SimpleSummarizedCallable { - RelativePathFromSummary() { this = "relative_path_from" } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[self]" and - output = "ReturnValue" and - preservesValue = false - } - } - - /** Flow summary for `Pathname#to_path`. */ - private class ToPathSummary extends SimpleSummarizedCallable { - ToPathSummary() { this = "to_path" } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - input = "Argument[self]" and - output = "ReturnValue" and - preservesValue = false + /** Taint flow summaries for the `Pathname` class. */ + private class PathnameTaintSummary extends ModelInput::SummaryModelCsv { + override predicate row(string row) { + row = + [ + // Pathname.new(path) + ";;Member[Pathname].Method[new];Argument[0];ReturnValue;taint", + // Pathname#dirname + ";Pathname;Method[dirname];Argument[self];ReturnValue;taint", + // Pathname#each_filename + ";Pathname;Method[each_filename];Argument[self];Argument[block].Parameter[0];taint", + // Pathname#expand_path + ";Pathname;Method[expand_path];Argument[self];ReturnValue;taint", + // Pathname#join + ";Pathname;Method[join];Argument[self,any];ReturnValue;taint", + // Pathname#parent + ";Pathname;Method[parent];Argument[self];ReturnValue;taint", + // Pathname#realpath + ";Pathname;Method[realpath];Argument[self];ReturnValue;taint", + // Pathname#relative_path_from + ";Pathname;Method[relative_path_from];Argument[self];ReturnValue;taint", + // Pathname#to_path + ";Pathname;Method[to_path];Argument[self];ReturnValue;taint", + // Pathname#basename + ";Pathname;Method[basename];Argument[self];ReturnValue;taint", + // Pathname#cleanpath + ";Pathname;Method[cleanpath];Argument[self];ReturnValue;taint", + // Pathname#sub + ";Pathname;Method[sub];Argument[self];ReturnValue;taint", + // Pathname#sub_ext + ";Pathname;Method[sub_ext];Argument[self];ReturnValue;taint", + ] } } } 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 8e3a792af46..a13e860bd04 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 @@ -2,89 +2,218 @@ failures edges | pathname_flow.rb:4:10:4:33 | call to new : | pathname_flow.rb:5:10:5:11 | 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:6:9:29 | call to new : | pathname_flow.rb:11:7:11:11 | ... + ... | -| pathname_flow.rb:9:19:9:28 | call to source : | pathname_flow.rb:9:6:9:29 | call to new : | -| pathname_flow.rb:10:6:10:29 | call to new : | pathname_flow.rb:11:7:11:11 | ... + ... | -| pathname_flow.rb:10:19:10:28 | call to source : | pathname_flow.rb:10:6:10:29 | call to new : | -| pathname_flow.rb:15:7:15:30 | call to new : | pathname_flow.rb:16:7:16:8 | pn : | -| pathname_flow.rb:15:20:15:29 | call to source : | pathname_flow.rb:15:7:15:30 | call to new : | -| pathname_flow.rb:16:7:16:8 | pn : | pathname_flow.rb:16:7:16:16 | call to dirname | -| pathname_flow.rb:20:6:20:29 | call to new : | pathname_flow.rb:21:2:21:2 | a : | -| pathname_flow.rb:20:19:20:28 | call to source : | pathname_flow.rb:20:6:20:29 | call to new : | -| pathname_flow.rb:21:2:21:2 | a : | pathname_flow.rb:21:22:21:22 | x : | -| pathname_flow.rb:21:22:21:22 | x : | pathname_flow.rb:22:8:22:8 | x | -| pathname_flow.rb:27:6:27:29 | call to new : | pathname_flow.rb:28:7:28:7 | a : | -| pathname_flow.rb:27:19:27:28 | call to source : | pathname_flow.rb:27:6:27:29 | call to new : | -| pathname_flow.rb:28:7:28:7 | a : | pathname_flow.rb:28:7:28:21 | call to expand_path | -| pathname_flow.rb:32:6:32:29 | call to new : | pathname_flow.rb:35:7:35:7 | a : | -| pathname_flow.rb:32:19:32:28 | call to source : | pathname_flow.rb:32:6:32:29 | call to new : | -| pathname_flow.rb:34:6:34:29 | call to new : | pathname_flow.rb:35:17:35:17 | c : | -| pathname_flow.rb:34:19:34:28 | call to source : | pathname_flow.rb:34:6:34:29 | call to new : | -| pathname_flow.rb:35:7:35:7 | a : | pathname_flow.rb:35:7:35:18 | call to join | -| pathname_flow.rb:35:17:35:17 | c : | pathname_flow.rb:35:7:35:18 | call to join | -| pathname_flow.rb:39:6:39:29 | call to new : | pathname_flow.rb:40:7:40:7 | a : | -| pathname_flow.rb:39:19:39:28 | call to source : | pathname_flow.rb:39:6:39:29 | call to new : | -| pathname_flow.rb:40:7:40:7 | a : | pathname_flow.rb:40:7:40:16 | call to parent | -| pathname_flow.rb:44:6:44:29 | call to new : | pathname_flow.rb:45:7:45:7 | a : | -| pathname_flow.rb:44:19:44:28 | call to source : | pathname_flow.rb:44:6:44:29 | call to new : | -| pathname_flow.rb:45:7:45:7 | a : | pathname_flow.rb:45:7:45:18 | call to realpath | -| pathname_flow.rb:49:6:49:29 | call to new : | pathname_flow.rb:50:7:50:7 | a : | -| pathname_flow.rb:49:19:49:28 | call to source : | pathname_flow.rb:49:6:49:29 | call to new : | -| pathname_flow.rb:50:7:50:7 | a : | pathname_flow.rb:50:7:50:38 | call to relative_path_from | -| pathname_flow.rb:54:6:54:29 | call to new : | pathname_flow.rb:55:7:55:7 | a : | -| pathname_flow.rb:54:19:54:28 | call to source : | pathname_flow.rb:54:6:54:29 | call to new : | -| pathname_flow.rb:55:7:55:7 | a : | pathname_flow.rb:55:7:55:15 | call to to_path | -| pathname_flow.rb:59:6:59:29 | call to new : | pathname_flow.rb:60:7:60:7 | a : | -| pathname_flow.rb:59:19:59:28 | call to source : | pathname_flow.rb:59:6:59:29 | call to new : | -| pathname_flow.rb:60:7:60:7 | a : | pathname_flow.rb:60:7:60:12 | call to to_s | +| pathname_flow.rb:9:7:9:30 | call to new : | pathname_flow.rb:11:8:11:12 | ... + ... | +| pathname_flow.rb:9:20:9:29 | call to source : | pathname_flow.rb:9:7:9:30 | call to new : | +| pathname_flow.rb:10:7:10:30 | call to new : | pathname_flow.rb:11:8:11:12 | ... + ... | +| pathname_flow.rb:10:20:10:29 | call to source : | pathname_flow.rb:10:7:10:30 | call to new : | +| pathname_flow.rb:15:8:15:31 | call to new : | pathname_flow.rb:16:8:16:9 | 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:7:20:30 | call to new : | pathname_flow.rb:21:3:21: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:7:27:30 | call to new : | pathname_flow.rb:28:8:28:8 | 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:7:32:30 | call to new : | pathname_flow.rb:35:8:35:8 | 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:7:34:30 | call to new : | pathname_flow.rb:35:18:35:18 | 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:7:39:30 | call to new : | pathname_flow.rb:40:8:40:8 | 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:7:44:30 | call to new : | pathname_flow.rb:45:8:45:8 | 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:7:49:30 | call to new : | pathname_flow.rb:50:8:50:8 | 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:7:54:30 | call to new : | pathname_flow.rb:55:8:55:8 | 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:7:59:30 | call to new : | pathname_flow.rb:60:8:60:8 | 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:7:64:30 | call to new : | pathname_flow.rb:66:8:66:8 | b | +| pathname_flow.rb:64:20:64:29 | call to source : | pathname_flow.rb:64:7:64:30 | call to new : | +| pathname_flow.rb:70:7:70:30 | call to new : | pathname_flow.rb:72:8:72:8 | b | +| pathname_flow.rb:70:20:70:29 | call to source : | pathname_flow.rb:70:7:70:30 | call to new : | +| pathname_flow.rb:76:7:76:30 | call to new : | pathname_flow.rb:77:7:77:7 | 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: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:78:8:78:8 | b | +| pathname_flow.rb:82:7:82:30 | call to new : | pathname_flow.rb:83:7:83:7 | 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: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:84:8:84:8 | b | +| pathname_flow.rb:88:7:88:30 | call to new : | pathname_flow.rb:89:7:89:7 | 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: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:90:8:90:8 | b | +| pathname_flow.rb:94:7:94:30 | call to new : | pathname_flow.rb:95:7:95:7 | 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: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:96:8:96:8 | b | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:104:8:104:8 | b : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:107:8:107:8 | c : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:109:7:109:7 | a : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:112:7:112:7 | a : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:115:7:115:7 | a : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:118:7:118:7 | a : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:121:7:121:7 | a : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:124:7:124:7 | a : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:127:7:127:7 | a : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:130:7:130:7 | a : | +| pathname_flow.rb:101:7:101:30 | call to new : | pathname_flow.rb:133:7:133:7 | a : | +| pathname_flow.rb:101:20:101:29 | call to source : | pathname_flow.rb:101:7:101:30 | call to new : | +| pathname_flow.rb:104:8:104:8 | b : | pathname_flow.rb:104:8:104:17 | call to realpath | +| pathname_flow.rb:107:8:107:8 | c : | pathname_flow.rb:107:8:107:17 | call to realpath | +| 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:110:8:110:8 | d : | +| pathname_flow.rb:110:8:110:8 | d : | pathname_flow.rb:110:8:110:17 | call to realpath | +| 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:113:8:113:8 | e : | +| pathname_flow.rb:113:8:113:8 | e : | pathname_flow.rb:113:8:113:17 | call to realpath | +| 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:116:8:116:8 | f : | +| pathname_flow.rb:116:8:116:8 | f : | pathname_flow.rb:116:8:116:17 | call to realpath | +| 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:119:8:119:8 | g : | +| pathname_flow.rb:119:8:119:8 | g : | pathname_flow.rb:119:8:119:17 | call to realpath | +| 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:122:8:122:8 | h : | +| pathname_flow.rb:122:8:122:8 | h : | pathname_flow.rb:122:8:122:17 | call to realpath | +| 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:125:8:125:8 | i : | +| pathname_flow.rb:125:8:125:8 | i : | pathname_flow.rb:125:8:125:17 | call to realpath | +| 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:128:8:128:8 | j : | +| pathname_flow.rb:128:8:128:8 | j : | pathname_flow.rb:128:8:128:17 | call to realpath | +| 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:131:8:131:8 | k : | +| pathname_flow.rb:131:8:131:8 | k : | pathname_flow.rb:131:8:131:17 | call to realpath | +| 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:134:8:134:8 | l : | +| pathname_flow.rb:134:8:134:8 | l : | pathname_flow.rb:134:8:134:17 | call to realpath | nodes | 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:6:9:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:9:19:9:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:10:6:10:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:10:19:10:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:11:7:11:11 | ... + ... | semmle.label | ... + ... | -| pathname_flow.rb:15:7:15:30 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:15:20:15:29 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:16:7:16:8 | pn : | semmle.label | pn : | -| pathname_flow.rb:16:7:16:16 | call to dirname | semmle.label | call to dirname | -| pathname_flow.rb:20:6:20:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:20:19:20:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:21:2:21:2 | a : | semmle.label | a : | -| pathname_flow.rb:21:22:21:22 | x : | semmle.label | x : | -| pathname_flow.rb:22:8:22:8 | x | semmle.label | x | -| pathname_flow.rb:27:6:27:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:27:19:27:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:28:7:28:7 | a : | semmle.label | a : | -| pathname_flow.rb:28:7:28:21 | call to expand_path | semmle.label | call to expand_path | -| pathname_flow.rb:32:6:32:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:32:19:32:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:34:6:34:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:34:19:34:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:35:7:35:7 | a : | semmle.label | a : | -| pathname_flow.rb:35:7:35:18 | call to join | semmle.label | call to join | -| pathname_flow.rb:35:17:35:17 | c : | semmle.label | c : | -| pathname_flow.rb:39:6:39:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:39:19:39:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:40:7:40:7 | a : | semmle.label | a : | -| pathname_flow.rb:40:7:40:16 | call to parent | semmle.label | call to parent | -| pathname_flow.rb:44:6:44:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:44:19:44:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:45:7:45:7 | a : | semmle.label | a : | -| pathname_flow.rb:45:7:45:18 | call to realpath | semmle.label | call to realpath | -| pathname_flow.rb:49:6:49:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:49:19:49:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:50:7:50:7 | a : | semmle.label | a : | -| pathname_flow.rb:50:7:50:38 | call to relative_path_from | semmle.label | call to relative_path_from | -| pathname_flow.rb:54:6:54:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:54:19:54:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:55:7:55:7 | a : | semmle.label | a : | -| pathname_flow.rb:55:7:55:15 | call to to_path | semmle.label | call to to_path | -| pathname_flow.rb:59:6:59:29 | call to new : | semmle.label | call to new : | -| pathname_flow.rb:59:19:59:28 | call to source : | semmle.label | call to source : | -| pathname_flow.rb:60:7:60:7 | a : | semmle.label | a : | -| pathname_flow.rb:60:7:60:12 | call to to_s | semmle.label | call to to_s | +| 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: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: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: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: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: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: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: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: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: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: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: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: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:66:8:66:8 | b | semmle.label | b | +| 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:72:8:72:8 | b | semmle.label | b | +| 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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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/pathname_flow.rb b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathname_flow.rb index 3434b6093b6..dab4adec6c6 100644 --- a/ruby/ql/test/library-tests/dataflow/pathname-flow/pathname_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/pathname-flow/pathname_flow.rb @@ -6,56 +6,130 @@ def m_new end def m_plus - a = Pathname.new(source 'a') - b = Pathname.new(source 'b') - sink(a + b) # $ hasTaintFlow=a $ hasTaintFlow=b + a = Pathname.new(source 'a') + b = Pathname.new(source 'b') + sink(a + b) # $ hasTaintFlow=a $ hasTaintFlow=b end def m_dirname - pn = Pathname.new(source 'a') - sink pn.dirname # $ hasTaintFlow=a + pn = Pathname.new(source 'a') + sink pn.dirname # $ hasTaintFlow=a end def m_each_filename - a = Pathname.new(source 'a') - a.each_filename do |x| - sink x # $ hasTaintFlow=a - end + a = Pathname.new(source 'a') + a.each_filename do |x| + sink x # $ hasTaintFlow=a + end end def m_expand_path - a = Pathname.new(source 'a') - sink a.expand_path() # $ hasTaintFlow=a + a = Pathname.new(source 'a') + sink a.expand_path() # $ hasTaintFlow=a end def m_join - a = Pathname.new(source 'a') - b = Pathname.new('foo') - c = Pathname.new(source 'c') - sink a.join(b, c) # $ hasTaintFlow=a $ hasTaintFlow=c + a = Pathname.new(source 'a') + b = Pathname.new('foo') + c = Pathname.new(source 'c') + sink a.join(b, c) # $ hasTaintFlow=a $ hasTaintFlow=c end def m_parent - a = Pathname.new(source 'a') - sink a.parent() # $ hasTaintFlow=a + a = Pathname.new(source 'a') + sink a.parent() # $ hasTaintFlow=a end def m_realpath - a = Pathname.new(source 'a') - sink a.realpath() # $ hasTaintFlow=a + a = Pathname.new(source 'a') + sink a.realpath() # $ hasTaintFlow=a end def m_relative_path_from - a = Pathname.new(source 'a') - sink a.relative_path_from('/foo/bar') # $ hasTaintFlow=a + a = Pathname.new(source 'a') + sink a.relative_path_from('/foo/bar') # $ hasTaintFlow=a end def m_to_path - a = Pathname.new(source 'a') - sink a.to_path # $ hasTaintFlow=a + a = Pathname.new(source 'a') + sink a.to_path # $ hasTaintFlow=a end def m_to_s - a = Pathname.new(source 'a') - sink a.to_s # $ hasTaintFlow=a + a = Pathname.new(source 'a') + sink a.to_s # $ hasTaintFlow=a +end + +def m_plus + a = Pathname.new(source 'a') + b = a + 'foo' + sink b # $ hasTaintFlow=a +end + +def m_slash + a = Pathname.new(source 'a') + b = a / 'foo' + sink b # $ hasTaintFlow=a +end + +def m_basename + a = Pathname.new(source 'a') + b = a.basename + sink b # $ hasTaintFlow=a +end + +def m_cleanpath + a = Pathname.new(source 'a') + b = a.cleanpath + sink b # $ hasTaintFlow=a +end + +def m_sub + a = Pathname.new(source 'a') + b = a.sub('foo', 'bar') + sink b # $ hasTaintFlow=a +end + +def m_sub_ext + a = Pathname.new(source 'a') + b = a.sub_ext('.txt') + sink b # $ hasTaintFlow=a +end + +# Test flow through intermediate pathnames +def intermediate_pathnames + a = Pathname.new(source 'a') + + b = a + 'foo' + sink b.realpath # $ hasTaintFlow=a + + c = a / 'foo' + sink c.realpath # $ hasTaintFlow=a + + d = a.basename + sink d.realpath # $ hasTaintFlow=a + + e = a.cleanpath + sink e.realpath # $ hasTaintFlow=a + + f = a.expand_path + sink f.realpath # $ hasTaintFlow=a + + g = a.join('foo') + sink g.realpath # $ hasTaintFlow=a + + h = a.realpath + sink h.realpath # $ hasTaintFlow=a + + i = a.relative_path_from('/foo/bar') + sink i.realpath # $ hasTaintFlow=a + + j = a.sub('foo', 'bar') + sink j.realpath # $ hasTaintFlow=a + + k = a.sub_ext('.txt') + sink k.realpath # $ hasTaintFlow=a + + l = a.to_path + sink l.realpath # $ hasTaintFlow=a end \ No newline at end of file From 0e4954a68cce78906282243d88fa2de2cd6a4f7c Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 29 Jun 2022 14:56:20 +0200 Subject: [PATCH 213/736] add navigation.navigate as an XSS / URL sink --- .../dataflow/ClientSideUrlRedirectCustomizations.qll | 4 ++++ .../Security/CWE-079/DomBasedXss/Xss.expected | 9 +++++++++ .../DomBasedXss/XssWithAdditionalSources.expected | 8 ++++++++ .../test/query-tests/Security/CWE-079/DomBasedXss/tst.js | 4 +++- 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/ClientSideUrlRedirectCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/ClientSideUrlRedirectCustomizations.qll index e643387c5e4..1884496fff9 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/ClientSideUrlRedirectCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/ClientSideUrlRedirectCustomizations.qll @@ -106,6 +106,10 @@ module ClientSideUrlRedirect { ) and xss = true or + // A call to `navigation.navigate` + this = DataFlow::globalVarRef("navigation").getAMethodCall("navigate").getArgument(0) and + xss = true + or // An assignment to `location` exists(Assignment assgn | isLocation(assgn.getTarget()) and astNode = assgn.getRhs()) and xss = true diff --git a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/Xss.expected b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/Xss.expected index e81dbd4d99a..3af55bfd598 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/Xss.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/Xss.expected @@ -1026,6 +1026,10 @@ nodes | tst.js:476:20:476:22 | url | | tst.js:486:22:486:24 | url | | tst.js:486:22:486:24 | url | +| tst.js:491:23:491:35 | location.hash | +| tst.js:491:23:491:35 | location.hash | +| tst.js:491:23:491:45 | locatio ... bstr(1) | +| tst.js:491:23:491:45 | locatio ... bstr(1) | | typeahead.js:20:13:20:45 | target | | typeahead.js:20:22:20:45 | documen ... .search | | typeahead.js:20:22:20:45 | documen ... .search | @@ -2081,6 +2085,10 @@ edges | tst.js:471:13:471:36 | documen ... .search | tst.js:471:13:471:46 | documen ... bstr(1) | | tst.js:471:13:471:36 | documen ... .search | tst.js:471:13:471:46 | documen ... bstr(1) | | tst.js:471:13:471:46 | documen ... bstr(1) | tst.js:471:7:471:46 | url | +| tst.js:491:23:491:35 | location.hash | tst.js:491:23:491:45 | locatio ... bstr(1) | +| tst.js:491:23:491:35 | location.hash | tst.js:491:23:491:45 | locatio ... bstr(1) | +| tst.js:491:23:491:35 | location.hash | tst.js:491:23:491:45 | locatio ... bstr(1) | +| tst.js:491:23:491:35 | location.hash | tst.js:491:23:491:45 | locatio ... bstr(1) | | typeahead.js:20:13:20:45 | target | typeahead.js:21:12:21:17 | target | | typeahead.js:20:22:20:45 | documen ... .search | typeahead.js:20:13:20:45 | target | | typeahead.js:20:22:20:45 | documen ... .search | typeahead.js:20:13:20:45 | target | @@ -2354,6 +2362,7 @@ edges | tst.js:475:25:475:27 | url | tst.js:471:13:471:36 | documen ... .search | tst.js:475:25:475:27 | url | Cross-site scripting vulnerability due to $@. | tst.js:471:13:471:36 | documen ... .search | user-provided value | | tst.js:476:20:476:22 | url | tst.js:471:13:471:36 | documen ... .search | tst.js:476:20:476:22 | url | Cross-site scripting vulnerability due to $@. | tst.js:471:13:471:36 | documen ... .search | user-provided value | | tst.js:486:22:486:24 | url | tst.js:471:13:471:36 | documen ... .search | tst.js:486:22:486:24 | url | Cross-site scripting vulnerability due to $@. | tst.js:471:13:471:36 | documen ... .search | user-provided value | +| tst.js:491:23:491:45 | locatio ... bstr(1) | tst.js:491:23:491:35 | location.hash | tst.js:491:23:491:45 | locatio ... bstr(1) | Cross-site scripting vulnerability due to $@. | tst.js:491:23:491:35 | location.hash | user-provided value | | typeahead.js:25:18:25:20 | val | typeahead.js:20:22:20:45 | documen ... .search | typeahead.js:25:18:25:20 | val | Cross-site scripting vulnerability due to $@. | typeahead.js:20:22:20:45 | documen ... .search | user-provided value | | v-html.vue:2:8:2:23 | v-html=tainted | v-html.vue:6:42:6:58 | document.location | v-html.vue:2:8:2:23 | v-html=tainted | Cross-site scripting vulnerability due to $@. | v-html.vue:6:42:6:58 | document.location | user-provided value | | various-concat-obfuscations.js:4:4:4:31 | "
    " ...
    " | various-concat-obfuscations.js:2:16:2:39 | documen ... .search | various-concat-obfuscations.js:4:4:4:31 | "
    " ...
    " | Cross-site scripting vulnerability due to $@. | various-concat-obfuscations.js:2:16:2:39 | documen ... .search | user-provided value | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/XssWithAdditionalSources.expected b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/XssWithAdditionalSources.expected index e72df859347..f8f72db0b4a 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/XssWithAdditionalSources.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/XssWithAdditionalSources.expected @@ -1038,6 +1038,10 @@ nodes | tst.js:476:20:476:22 | url | | tst.js:486:22:486:24 | url | | tst.js:486:22:486:24 | url | +| tst.js:491:23:491:35 | location.hash | +| tst.js:491:23:491:35 | location.hash | +| tst.js:491:23:491:45 | locatio ... bstr(1) | +| tst.js:491:23:491:45 | locatio ... bstr(1) | | typeahead.js:9:28:9:30 | loc | | typeahead.js:9:28:9:30 | loc | | typeahead.js:9:28:9:30 | loc | @@ -2143,6 +2147,10 @@ edges | tst.js:471:13:471:36 | documen ... .search | tst.js:471:13:471:46 | documen ... bstr(1) | | tst.js:471:13:471:36 | documen ... .search | tst.js:471:13:471:46 | documen ... bstr(1) | | tst.js:471:13:471:46 | documen ... bstr(1) | tst.js:471:7:471:46 | url | +| tst.js:491:23:491:35 | location.hash | tst.js:491:23:491:45 | locatio ... bstr(1) | +| tst.js:491:23:491:35 | location.hash | tst.js:491:23:491:45 | locatio ... bstr(1) | +| tst.js:491:23:491:35 | location.hash | tst.js:491:23:491:45 | locatio ... bstr(1) | +| tst.js:491:23:491:35 | location.hash | tst.js:491:23:491:45 | locatio ... bstr(1) | | typeahead.js:9:28:9:30 | loc | typeahead.js:10:16:10:18 | loc | | typeahead.js:9:28:9:30 | loc | typeahead.js:10:16:10:18 | loc | | typeahead.js:9:28:9:30 | loc | typeahead.js:10:16:10:18 | loc | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/tst.js b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/tst.js index bc2b9a6a358..3c609ddcc92 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/tst.js +++ b/javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/tst.js @@ -487,4 +487,6 @@ function urlStuff() { } window.open(location.hash.substr(1)); // OK - any JavaScript is executed in another context -} \ No newline at end of file + + navigation.navigate(location.hash.substr(1)); // NOT OK +} From a3f4d1bf669f51dc4452113b060ba70df7a2c004 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Tue, 28 Jun 2022 14:36:07 -0700 Subject: [PATCH 214/736] Move contextual queries from src to lib With this change, users are now able to run View AST command in vscode within vscode workspaces that do not include the core libraries. The relevant core library only needs to be installed in the package cache. --- config/identical-files.json | 10 +++++----- cpp/ql/{src => lib}/IDEContextual.qll | 0 cpp/ql/{src => lib}/definitions.qll | 0 cpp/ql/{src => lib}/localDefinitions.ql | 0 cpp/ql/{src => lib}/localReferences.ql | 0 cpp/ql/{src => lib}/printAst.ql | 0 csharp/ql/{src => lib}/IDEContextual.qll | 0 csharp/ql/{src => lib}/definitions.qll | 0 csharp/ql/{src => lib}/localDefinitions.ql | 0 csharp/ql/{src => lib}/localReferences.ql | 0 csharp/ql/{src => lib}/printAst.ql | 0 java/ql/{src => lib}/IDEContextual.qll | 0 java/ql/{src => lib}/definitions.qll | 0 java/ql/{src => lib}/localDefinitions.ql | 0 java/ql/{src => lib}/localReferences.ql | 0 java/ql/{src => lib}/printAst.ql | 0 .../ql/{src => lib}/Declarations/Declarations.qll | 0 javascript/ql/{src => lib}/IDEContextual.qll | 0 javascript/ql/{src => lib}/definitions.ql | 0 javascript/ql/{src => lib}/definitions.qll | 0 javascript/ql/{src => lib}/localDefinitions.ql | 0 javascript/ql/{src => lib}/localReferences.ql | 0 javascript/ql/{src => lib}/printAst.ql | 0 python/ql/{src => lib}/analysis/DefinitionTracking.qll | 0 python/ql/{src => lib}/analysis/IDEContextual.qll | 0 python/ql/{src => lib}/printAst.ql | 0 .../ide-contextual-queries/localDefinitions.ql | 0 .../ide-contextual-queries/localReferences.ql | 0 .../ql/{src => lib}/ide-contextual-queries/printAst.ql | 0 29 files changed, 5 insertions(+), 5 deletions(-) rename cpp/ql/{src => lib}/IDEContextual.qll (100%) rename cpp/ql/{src => lib}/definitions.qll (100%) rename cpp/ql/{src => lib}/localDefinitions.ql (100%) rename cpp/ql/{src => lib}/localReferences.ql (100%) rename cpp/ql/{src => lib}/printAst.ql (100%) rename csharp/ql/{src => lib}/IDEContextual.qll (100%) rename csharp/ql/{src => lib}/definitions.qll (100%) rename csharp/ql/{src => lib}/localDefinitions.ql (100%) rename csharp/ql/{src => lib}/localReferences.ql (100%) rename csharp/ql/{src => lib}/printAst.ql (100%) rename java/ql/{src => lib}/IDEContextual.qll (100%) rename java/ql/{src => lib}/definitions.qll (100%) rename java/ql/{src => lib}/localDefinitions.ql (100%) rename java/ql/{src => lib}/localReferences.ql (100%) rename java/ql/{src => lib}/printAst.ql (100%) rename javascript/ql/{src => lib}/Declarations/Declarations.qll (100%) rename javascript/ql/{src => lib}/IDEContextual.qll (100%) rename javascript/ql/{src => lib}/definitions.ql (100%) rename javascript/ql/{src => lib}/definitions.qll (100%) rename javascript/ql/{src => lib}/localDefinitions.ql (100%) rename javascript/ql/{src => lib}/localReferences.ql (100%) rename javascript/ql/{src => lib}/printAst.ql (100%) rename python/ql/{src => lib}/analysis/DefinitionTracking.qll (100%) rename python/ql/{src => lib}/analysis/IDEContextual.qll (100%) rename python/ql/{src => lib}/printAst.ql (100%) rename ruby/ql/{src => lib}/ide-contextual-queries/localDefinitions.ql (100%) rename ruby/ql/{src => lib}/ide-contextual-queries/localReferences.ql (100%) rename ruby/ql/{src => lib}/ide-contextual-queries/printAst.ql (100%) diff --git a/config/identical-files.json b/config/identical-files.json index 77e39399cec..990ba49f033 100644 --- a/config/identical-files.json +++ b/config/identical-files.json @@ -453,11 +453,11 @@ "python/ql/src/Lexical/CommentedOutCodeReferences.inc.qhelp" ], "IDE Contextual Queries": [ - "cpp/ql/src/IDEContextual.qll", - "csharp/ql/src/IDEContextual.qll", - "java/ql/src/IDEContextual.qll", - "javascript/ql/src/IDEContextual.qll", - "python/ql/src/analysis/IDEContextual.qll" + "cpp/ql/lib/IDEContextual.qll", + "csharp/ql/lib/IDEContextual.qll", + "java/ql/lib/IDEContextual.qll", + "javascript/ql/lib/IDEContextual.qll", + "python/ql/lib/analysis/IDEContextual.qll" ], "SSA C#": [ "csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImplCommon.qll", diff --git a/cpp/ql/src/IDEContextual.qll b/cpp/ql/lib/IDEContextual.qll similarity index 100% rename from cpp/ql/src/IDEContextual.qll rename to cpp/ql/lib/IDEContextual.qll diff --git a/cpp/ql/src/definitions.qll b/cpp/ql/lib/definitions.qll similarity index 100% rename from cpp/ql/src/definitions.qll rename to cpp/ql/lib/definitions.qll diff --git a/cpp/ql/src/localDefinitions.ql b/cpp/ql/lib/localDefinitions.ql similarity index 100% rename from cpp/ql/src/localDefinitions.ql rename to cpp/ql/lib/localDefinitions.ql diff --git a/cpp/ql/src/localReferences.ql b/cpp/ql/lib/localReferences.ql similarity index 100% rename from cpp/ql/src/localReferences.ql rename to cpp/ql/lib/localReferences.ql diff --git a/cpp/ql/src/printAst.ql b/cpp/ql/lib/printAst.ql similarity index 100% rename from cpp/ql/src/printAst.ql rename to cpp/ql/lib/printAst.ql diff --git a/csharp/ql/src/IDEContextual.qll b/csharp/ql/lib/IDEContextual.qll similarity index 100% rename from csharp/ql/src/IDEContextual.qll rename to csharp/ql/lib/IDEContextual.qll diff --git a/csharp/ql/src/definitions.qll b/csharp/ql/lib/definitions.qll similarity index 100% rename from csharp/ql/src/definitions.qll rename to csharp/ql/lib/definitions.qll diff --git a/csharp/ql/src/localDefinitions.ql b/csharp/ql/lib/localDefinitions.ql similarity index 100% rename from csharp/ql/src/localDefinitions.ql rename to csharp/ql/lib/localDefinitions.ql diff --git a/csharp/ql/src/localReferences.ql b/csharp/ql/lib/localReferences.ql similarity index 100% rename from csharp/ql/src/localReferences.ql rename to csharp/ql/lib/localReferences.ql diff --git a/csharp/ql/src/printAst.ql b/csharp/ql/lib/printAst.ql similarity index 100% rename from csharp/ql/src/printAst.ql rename to csharp/ql/lib/printAst.ql diff --git a/java/ql/src/IDEContextual.qll b/java/ql/lib/IDEContextual.qll similarity index 100% rename from java/ql/src/IDEContextual.qll rename to java/ql/lib/IDEContextual.qll diff --git a/java/ql/src/definitions.qll b/java/ql/lib/definitions.qll similarity index 100% rename from java/ql/src/definitions.qll rename to java/ql/lib/definitions.qll diff --git a/java/ql/src/localDefinitions.ql b/java/ql/lib/localDefinitions.ql similarity index 100% rename from java/ql/src/localDefinitions.ql rename to java/ql/lib/localDefinitions.ql diff --git a/java/ql/src/localReferences.ql b/java/ql/lib/localReferences.ql similarity index 100% rename from java/ql/src/localReferences.ql rename to java/ql/lib/localReferences.ql diff --git a/java/ql/src/printAst.ql b/java/ql/lib/printAst.ql similarity index 100% rename from java/ql/src/printAst.ql rename to java/ql/lib/printAst.ql diff --git a/javascript/ql/src/Declarations/Declarations.qll b/javascript/ql/lib/Declarations/Declarations.qll similarity index 100% rename from javascript/ql/src/Declarations/Declarations.qll rename to javascript/ql/lib/Declarations/Declarations.qll diff --git a/javascript/ql/src/IDEContextual.qll b/javascript/ql/lib/IDEContextual.qll similarity index 100% rename from javascript/ql/src/IDEContextual.qll rename to javascript/ql/lib/IDEContextual.qll diff --git a/javascript/ql/src/definitions.ql b/javascript/ql/lib/definitions.ql similarity index 100% rename from javascript/ql/src/definitions.ql rename to javascript/ql/lib/definitions.ql diff --git a/javascript/ql/src/definitions.qll b/javascript/ql/lib/definitions.qll similarity index 100% rename from javascript/ql/src/definitions.qll rename to javascript/ql/lib/definitions.qll diff --git a/javascript/ql/src/localDefinitions.ql b/javascript/ql/lib/localDefinitions.ql similarity index 100% rename from javascript/ql/src/localDefinitions.ql rename to javascript/ql/lib/localDefinitions.ql diff --git a/javascript/ql/src/localReferences.ql b/javascript/ql/lib/localReferences.ql similarity index 100% rename from javascript/ql/src/localReferences.ql rename to javascript/ql/lib/localReferences.ql diff --git a/javascript/ql/src/printAst.ql b/javascript/ql/lib/printAst.ql similarity index 100% rename from javascript/ql/src/printAst.ql rename to javascript/ql/lib/printAst.ql diff --git a/python/ql/src/analysis/DefinitionTracking.qll b/python/ql/lib/analysis/DefinitionTracking.qll similarity index 100% rename from python/ql/src/analysis/DefinitionTracking.qll rename to python/ql/lib/analysis/DefinitionTracking.qll diff --git a/python/ql/src/analysis/IDEContextual.qll b/python/ql/lib/analysis/IDEContextual.qll similarity index 100% rename from python/ql/src/analysis/IDEContextual.qll rename to python/ql/lib/analysis/IDEContextual.qll diff --git a/python/ql/src/printAst.ql b/python/ql/lib/printAst.ql similarity index 100% rename from python/ql/src/printAst.ql rename to python/ql/lib/printAst.ql diff --git a/ruby/ql/src/ide-contextual-queries/localDefinitions.ql b/ruby/ql/lib/ide-contextual-queries/localDefinitions.ql similarity index 100% rename from ruby/ql/src/ide-contextual-queries/localDefinitions.ql rename to ruby/ql/lib/ide-contextual-queries/localDefinitions.ql diff --git a/ruby/ql/src/ide-contextual-queries/localReferences.ql b/ruby/ql/lib/ide-contextual-queries/localReferences.ql similarity index 100% rename from ruby/ql/src/ide-contextual-queries/localReferences.ql rename to ruby/ql/lib/ide-contextual-queries/localReferences.ql diff --git a/ruby/ql/src/ide-contextual-queries/printAst.ql b/ruby/ql/lib/ide-contextual-queries/printAst.ql similarity index 100% rename from ruby/ql/src/ide-contextual-queries/printAst.ql rename to ruby/ql/lib/ide-contextual-queries/printAst.ql From 5233a5e17bf43c12830bacd4c2c19245ef8a1b91 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Wed, 29 Jun 2022 17:03:04 +0200 Subject: [PATCH 215/736] Swift: also extract imported modules --- swift/extractor/SwiftExtractor.cpp | 40 +++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 2708b0241a4..6fefc77e2c7 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -51,6 +52,18 @@ static void archiveFile(const SwiftExtractorConfiguration& config, swift::Source } } +static std::string getTrapFilename(swift::ModuleDecl& module, swift::SourceFile* primaryFile) { + if (primaryFile) { + return primaryFile->getFilename().str(); + } + // Several modules with different name might come from .pcm (clang module) files + // In this case we want to differentiate them + std::string filename = module.getModuleFilename().str(); + filename += "-"; + filename += module.getName().str(); + return filename; +} + static void extractDeclarations(const SwiftExtractorConfiguration& config, llvm::ArrayRef topLevelDecls, swift::CompilerInstance& compiler, @@ -60,7 +73,8 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, // the same input file(s) // We are using PID to avoid concurrent access // TODO: find a more robust approach to avoid collisions? - llvm::StringRef filename = primaryFile ? primaryFile->getFilename() : module.getModuleFilename(); + auto name = getTrapFilename(module, primaryFile); + llvm::StringRef filename(name); std::string tempTrapName = filename.str() + '.' + std::to_string(getpid()) + ".trap"; llvm::SmallString tempTrapPath(config.tempTrapDir); llvm::sys::path::append(tempTrapPath, tempTrapName); @@ -144,7 +158,31 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, } } + // getASTContext().getLoadedModules() does not provide all the modules available within the + // program. + // We need to iterate over all the imported modules (recursively) to see the whole "universe." + std::unordered_set allModules; + std::queue worklist; for (auto& [_, module] : compiler.getASTContext().getLoadedModules()) { + worklist.push(module); + allModules.insert(module); + } + + while (!worklist.empty()) { + auto module = worklist.front(); + worklist.pop(); + llvm::SmallVector importedModules; + // TODO: we may need more than just Exported ones + module->getImportedModules(importedModules, swift::ModuleDecl::ImportFilterKind::Exported); + for (auto& imported : importedModules) { + if (allModules.count(imported.importedModule) == 0) { + worklist.push(imported.importedModule); + allModules.insert(imported.importedModule); + } + } + } + + for (auto& module : allModules) { // We only extract system and builtin modules here as the other "user" modules can be built // during the build process and then re-used at a later stage. In this case, we extract the // user code twice: once during the module build in a form of a source file, and then as From 4dcec2b98ca49e66935976c2816345b396ce954b Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Wed, 29 Jun 2022 17:49:59 +0100 Subject: [PATCH 216/736] Apply suggestions from code review Co-authored-by: Felicity Chapman Co-authored-by: Andrew Eisenberg --- .../publishing-and-using-codeql-packs.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst index e58277d3113..c3a3a2d9ed2 100644 --- a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst +++ b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst @@ -73,27 +73,27 @@ The ``analyze`` command will run the default suite of any specified CodeQL packs codeql analyze / / -Managing packs on GitHub Enterprise Server +Working with CodeQL packs on GitHub Enterprise Server ------------------------------------------ .. pull-quote:: Note - Managing packs on GitHub Enterprise Server is only available for GitHub Enterprise Server 3.6 and later. + The Container registry for GitHub Enterprise Server supports CodeQL query packs from GitHub Enterprise Server 3.6 onward. -By default, CodeQL will download packs from and publish packs to the Container registry on GitHub.com. -You can manage packs on GitHub Enterprise Server 3.6 and later by creating a ``qlconfig.yml`` file to tell CodeQL which Container registry to use for each pack. -Create the ``~/.codeql/qlconfig.yml`` file using your preferred text editor, and add entries to specify which registry to use for each pack name pattern. +By default, the CodeQL CLI expects to download CodeQL packs from and publish packs to the Container registry on GitHub.com. However, you can also work with CodeQL packs in a Container registry on GitHub Enterprise Server 3.6, and later, by creating a ``qlconfig.yml`` file to tell the CLI which Container registry to use for each pack. + +Create a ``~/.codeql/qlconfig.yml`` file using your preferred text editor, and add entries to specify which registry to use for one or more package name patterns. For example, the following ``qlconfig.yml`` file associates all packs with the Container registry for the GitHub Enterprise Server at ``GHE_HOSTNAME``, except packs matching ``codeql/*``, which are associated with the Container registry on GitHub.com: .. code-block:: yaml registries: - packages: '*' - url: https://containers.GHE_HOSTNAME/v2/ + url: https://containers.GHE_HOSTNAME/v2/ - packages: 'codeql/*' - url: https://ghcr.io/v2/ + url: https://ghcr.io/v2/ You can now use ``codeql pack publish``, ``codeql pack download``, and ``codeql database analyze`` to manage packs on GitHub Enterprise Server. @@ -107,7 +107,7 @@ You can authenticate to the Container registry on GitHub.com in two ways: 1. Pass the ``--github-auth-stdin`` option to the CodeQL CLI, then supply a GitHub Apps token or personal access token via standard input. 2. Set the ``GITHUB_TOKEN`` environment variable to a GitHub Apps token or personal access token. -Similarly, you can authenticate to a GHES Container registry, or authenticate to multiple registries simultaneously (for example to download or analyze private packs from multiple registries) in two ways: +Similarly, you can authenticate to a GHES Container registry, or authenticate to multiple registries simultaneously (for example, to download or run private packs from multiple registries) in two ways: 1. Pass the ``--registries-auth-stdin`` option to the CodeQL CLI, then supply a registry authentication string via standard input. 2. Set the ``CODEQL_REGISTRIES_AUTH`` environment variable to a registry authentication string. From ddf06f861776450f491712cfa0e36df1396472ab Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Wed, 29 Jun 2022 10:03:12 -0700 Subject: [PATCH 217/736] Add change notes and qldoc for moved files --- cpp/ql/src/change-notes/2022-06-29-move-contextual-queries.md | 4 ++++ .../ql/src/change-notes/2022-06-29-move-contextual-queries.md | 4 ++++ .../ql/src/change-notes/2022-06-29-move-contextual-queries.md | 4 ++++ .../ql/src/change-notes/2022-06-29-move-contextual-queries.md | 4 ++++ python/ql/lib/analysis/DefinitionTracking.qll | 3 +++ .../ql/src/change-notes/2022-06-29-move-contextual-queries.md | 4 ++++ .../ql/src/change-notes/2022-06-29-move-contextual-queries.md | 4 ++++ 7 files changed, 27 insertions(+) create mode 100644 cpp/ql/src/change-notes/2022-06-29-move-contextual-queries.md create mode 100644 csharp/ql/src/change-notes/2022-06-29-move-contextual-queries.md create mode 100644 java/ql/src/change-notes/2022-06-29-move-contextual-queries.md create mode 100644 javascript/ql/src/change-notes/2022-06-29-move-contextual-queries.md create mode 100644 python/ql/src/change-notes/2022-06-29-move-contextual-queries.md create mode 100644 ruby/ql/src/change-notes/2022-06-29-move-contextual-queries.md diff --git a/cpp/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/cpp/ql/src/change-notes/2022-06-29-move-contextual-queries.md new file mode 100644 index 00000000000..cc5464d58b3 --- /dev/null +++ b/cpp/ql/src/change-notes/2022-06-29-move-contextual-queries.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* Contextual queries and the query libraries they depend on have been moved to the `codeql/cpp-all` package. diff --git a/csharp/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/csharp/ql/src/change-notes/2022-06-29-move-contextual-queries.md new file mode 100644 index 00000000000..a27c68766c0 --- /dev/null +++ b/csharp/ql/src/change-notes/2022-06-29-move-contextual-queries.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* Contextual queries and the query libraries they depend on have been moved to the `codeql/csharp-all` package. diff --git a/java/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/java/ql/src/change-notes/2022-06-29-move-contextual-queries.md new file mode 100644 index 00000000000..02ff5b6d59c --- /dev/null +++ b/java/ql/src/change-notes/2022-06-29-move-contextual-queries.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* Contextual queries and the query libraries they depend on have been moved to the `codeql/java-all` package. diff --git a/javascript/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/javascript/ql/src/change-notes/2022-06-29-move-contextual-queries.md new file mode 100644 index 00000000000..ff190788cd4 --- /dev/null +++ b/javascript/ql/src/change-notes/2022-06-29-move-contextual-queries.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* Contextual queries and the query libraries they depend on have been moved to the `codeql/javascript-all` package. diff --git a/python/ql/lib/analysis/DefinitionTracking.qll b/python/ql/lib/analysis/DefinitionTracking.qll index 90166b84991..dafbffad64e 100644 --- a/python/ql/lib/analysis/DefinitionTracking.qll +++ b/python/ql/lib/analysis/DefinitionTracking.qll @@ -14,10 +14,13 @@ class Definition extends TLocalDefinition { /** Gets a textual representation of this element. */ string toString() { result = "Definition " + this.getAstNode().getLocation().toString() } + /** Gets the AST Node associated with this element */ AstNode getAstNode() { this = TLocalDefinition(result) } + /** Gets the Module associated with this element */ Module getModule() { result = this.getAstNode().getScope().getEnclosingModule() } + /** Gets the source location of the AST Node associated with this element */ Location getLocation() { result = this.getAstNode().getLocation() } } diff --git a/python/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/python/ql/src/change-notes/2022-06-29-move-contextual-queries.md new file mode 100644 index 00000000000..2e8562e66f8 --- /dev/null +++ b/python/ql/src/change-notes/2022-06-29-move-contextual-queries.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* Contextual queries and the query libraries they depend on have been moved to the `codeql/python-all` package. diff --git a/ruby/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/ruby/ql/src/change-notes/2022-06-29-move-contextual-queries.md new file mode 100644 index 00000000000..bc85eb9361e --- /dev/null +++ b/ruby/ql/src/change-notes/2022-06-29-move-contextual-queries.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* Contextual queries and the query libraries they depend on have been moved to the `codeql/ruby-all` package. From 41244180b3bcdfea10d063d2cd7ce7b168aad67f Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Wed, 29 Jun 2022 10:18:13 -0700 Subject: [PATCH 218/736] Apply suggestions from code review Co-authored-by: Felicity Chapman --- .../analyzing-databases-with-the-codeql-cli.rst | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst index 6953d67f81b..bb428f2c00d 100644 --- a/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst +++ b/docs/codeql/codeql-cli/analyzing-databases-with-the-codeql-cli.rst @@ -138,7 +138,7 @@ For further information about default suites, see ":ref:`Publishing and using Co Running a subset of queries in a CodeQL pack ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Additionally, CodeQL CLI v2.8.1 or later, you can include a path at the end of a pack specification to run a subset of queries inside the pack. This applies to any command that locates or runs queries within a pack. +If you are using CodeQL CLI v2.8.1 or later, you can include a path at the end of a pack specification to run a subset of queries inside the pack. This applies to any command that locates or runs queries within a pack. The complete way to specify a set of queries is in the form ``scope/name@range:path``, where: @@ -146,20 +146,21 @@ The complete way to specify a set of queries is in the form ``scope/name@range:p - ``range`` is a `semver range `_. - ``path`` is a file system path to a single query, a directory containing queries, or a query suite file. -If a ``scope/name`` is specified, the ``range`` and ``path`` are -optional. A missing ``range`` implies the latest version of the -specified pack. A missing ``path`` implies the default query suite -of the specified pack. +When you specify a ``scope/name``, the ``range`` and ``path`` are +optional. If you omit a ``range`` then the latest version of the +specified pack is used. If you omit a ``path`` then the default query suite +of the specified pack is used. The ``path`` can be one of a ``*.ql`` query file, a directory containing one or more queries, or a ``.qls`` query suite file. If -there is no pack name specified, then a ``path`` must be provided, -and will be interpreted relative to the current working directory +you omit a pack name, then you must provide a ``path``, +which will be interpreted relative to the working directory of the current process. -If a ``scope/name`` and ``path`` are specified, then the ``path`` cannot +If you specify a ``scope/name`` and ``path``, then the ``path`` cannot be absolute. It is considered relative to the root of the CodeQL pack. + To analyze a database using all queries in the `experimental/Security` folder within the `codeql/cpp-queries` CodeQL pack you can use:: codeql database analyze --format=sarif-latest --output=results \ From 7864a7580e8d3b8eefe72a083a2283cd63465e5c Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Wed, 29 Jun 2022 10:22:45 -0700 Subject: [PATCH 219/736] Fix import statements --- javascript/ql/src/Declarations/DeclBeforeUse.ql | 2 +- javascript/ql/src/Declarations/RedeclaredVariable.ql | 2 +- python/ql/src/analysis/Consistency.ql | 2 +- python/ql/src/analysis/Definitions.ql | 2 +- python/ql/src/analysis/LocalDefinitions.ql | 2 +- python/ql/src/analysis/LocalReferences.ql | 2 +- python/ql/src/analysis/RatioOfDefinitions.ql | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/javascript/ql/src/Declarations/DeclBeforeUse.ql b/javascript/ql/src/Declarations/DeclBeforeUse.ql index 49a7a3f01c8..b58fab9e465 100644 --- a/javascript/ql/src/Declarations/DeclBeforeUse.ql +++ b/javascript/ql/src/Declarations/DeclBeforeUse.ql @@ -10,7 +10,7 @@ */ import javascript -private import Declarations +private import Declarations.Declarations from VarAccess acc, VarDecl decl, Variable var, StmtContainer sc where diff --git a/javascript/ql/src/Declarations/RedeclaredVariable.ql b/javascript/ql/src/Declarations/RedeclaredVariable.ql index cdce959e66d..7f07378cef7 100644 --- a/javascript/ql/src/Declarations/RedeclaredVariable.ql +++ b/javascript/ql/src/Declarations/RedeclaredVariable.ql @@ -10,7 +10,7 @@ */ import javascript -private import Declarations +private import Declarations.Declarations from Variable v, TopLevel tl, VarDecl decl, VarDecl redecl where diff --git a/python/ql/src/analysis/Consistency.ql b/python/ql/src/analysis/Consistency.ql index d6f1bbc32c5..9f739d18415 100644 --- a/python/ql/src/analysis/Consistency.ql +++ b/python/ql/src/analysis/Consistency.ql @@ -5,7 +5,7 @@ */ import python -import DefinitionTracking +import analysis.DefinitionTracking predicate uniqueness_error(int number, string what, string problem) { what in [ diff --git a/python/ql/src/analysis/Definitions.ql b/python/ql/src/analysis/Definitions.ql index a2ed4f36bf6..bf2458dd8ab 100644 --- a/python/ql/src/analysis/Definitions.ql +++ b/python/ql/src/analysis/Definitions.ql @@ -6,7 +6,7 @@ */ import python -import DefinitionTracking +import analysis.DefinitionTracking from NiceLocationExpr use, Definition defn, string kind where defn = definitionOf(use, kind) diff --git a/python/ql/src/analysis/LocalDefinitions.ql b/python/ql/src/analysis/LocalDefinitions.ql index fae19995f57..d86e3e9254b 100644 --- a/python/ql/src/analysis/LocalDefinitions.ql +++ b/python/ql/src/analysis/LocalDefinitions.ql @@ -8,7 +8,7 @@ */ import python -import DefinitionTracking +import analysis.DefinitionTracking external string selectedSourceFile(); diff --git a/python/ql/src/analysis/LocalReferences.ql b/python/ql/src/analysis/LocalReferences.ql index cf254e9fc3d..6eea0846e85 100644 --- a/python/ql/src/analysis/LocalReferences.ql +++ b/python/ql/src/analysis/LocalReferences.ql @@ -8,7 +8,7 @@ */ import python -import DefinitionTracking +import analysis.DefinitionTracking external string selectedSourceFile(); diff --git a/python/ql/src/analysis/RatioOfDefinitions.ql b/python/ql/src/analysis/RatioOfDefinitions.ql index f7ef4741ee6..562deb75005 100644 --- a/python/ql/src/analysis/RatioOfDefinitions.ql +++ b/python/ql/src/analysis/RatioOfDefinitions.ql @@ -3,7 +3,7 @@ */ import python -import DefinitionTracking +import analysis.DefinitionTracking predicate want_to_have_definition(Expr e) { /* not builtin object like len, tuple, etc. */ From 3c8f415f69f0a41be5638be7a3fe77dc14de6b2c Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Wed, 29 Jun 2022 10:33:27 -0700 Subject: [PATCH 220/736] Recommend installing the latest version of the CLI to use packaging --- docs/codeql/reusables/beta-note-package-management.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/reusables/beta-note-package-management.rst b/docs/codeql/reusables/beta-note-package-management.rst index a4fd362a70c..7697c9a47d9 100644 --- a/docs/codeql/reusables/beta-note-package-management.rst +++ b/docs/codeql/reusables/beta-note-package-management.rst @@ -2,4 +2,4 @@ Note - The CodeQL package management functionality, including CodeQL packs, is currently available as a beta release and is subject to change. During the beta release, CodeQL packs are available only using GitHub Packages - the GitHub Container registry. To use this beta functionality, install version 2.6.0 or higher of the CodeQL CLI bundle from: https://github.com/github/codeql-action/releases. \ No newline at end of file + The CodeQL package management functionality, including CodeQL packs, is currently available as a beta release and is subject to change. During the beta release, CodeQL packs are available only using GitHub Packages - the GitHub Container registry. To use this beta functionality, install the latest version of the CodeQL CLI bundle from: https://github.com/github/codeql-action/releases. From 7cef4322e70e10c0c62e9ce933ca9f6db44b6ec1 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 29 Jun 2022 22:09:23 +0200 Subject: [PATCH 221/736] add model for chownr --- javascript/externs/nodejs/fs.js | 1 - .../semmle/javascript/frameworks/Files.qll | 12 ++ .../CWE-022/TaintedPath/TaintedPath.expected | 199 ++++++++++++++++++ .../TaintedPath/tainted-access-paths.js | 9 +- 4 files changed, 219 insertions(+), 2 deletions(-) diff --git a/javascript/externs/nodejs/fs.js b/javascript/externs/nodejs/fs.js index a1ce1f83a7e..1afdf83bcd0 100644 --- a/javascript/externs/nodejs/fs.js +++ b/javascript/externs/nodejs/fs.js @@ -1696,4 +1696,3 @@ module.exports.R_OK = fs.R_OK; module.exports.W_OK = fs.W_OK; module.exports.X_OK = fs.X_OK; - diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Files.qll b/javascript/ql/lib/semmle/javascript/frameworks/Files.qll index f03f5ee1458..244c9c502c2 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Files.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Files.qll @@ -192,6 +192,18 @@ private class WriteFileAtomic extends FileSystemWriteAccess, DataFlow::CallNode override DataFlow::Node getADataNode() { result = this.getArgument(1) } } +/** + * A call to the library `chownr`. + * The library changes the owner of a file or directory recursively. + */ +private class Chownr extends FileSystemWriteAccess, DataFlow::CallNode { + Chownr() { this = DataFlow::moduleImport("chownr").getACall() } + + override DataFlow::Node getAPathArgument() { result = this.getArgument(0) } + + override DataFlow::Node getADataNode() { none() } +} + /** * A call to the library `recursive-readdir`. */ diff --git a/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/TaintedPath.expected b/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/TaintedPath.expected index e8ca5f0f5ff..887b95b2b96 100644 --- a/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/TaintedPath.expected +++ b/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/TaintedPath.expected @@ -3235,6 +3235,92 @@ nodes | tainted-access-paths.js:40:23:40:26 | path | | tainted-access-paths.js:40:23:40:26 | path | | tainted-access-paths.js:40:23:40:26 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:24:48:30 | req.url | +| tainted-access-paths.js:48:24:48:30 | req.url | +| tainted-access-paths.js:48:24:48:30 | req.url | +| tainted-access-paths.js:48:24:48:30 | req.url | +| tainted-access-paths.js:48:24:48:30 | req.url | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:49:10:49:13 | path | | tainted-require.js:7:19:7:37 | req.param("module") | | tainted-require.js:7:19:7:37 | req.param("module") | | tainted-require.js:7:19:7:37 | req.param("module") | @@ -8759,6 +8845,118 @@ edges | tainted-access-paths.js:39:24:39:30 | req.url | tainted-access-paths.js:39:14:39:37 | url.par ... , true) | | tainted-access-paths.js:39:24:39:30 | req.url | tainted-access-paths.js:39:14:39:37 | url.par ... , true) | | tainted-access-paths.js:39:24:39:30 | req.url | tainted-access-paths.js:39:14:39:37 | url.par ... , true) | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:7:48:48 | path | tainted-access-paths.js:49:10:49:13 | path | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:37 | url.par ... , true) | tainted-access-paths.js:48:14:48:43 | url.par ... ).query | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:43 | url.par ... ).query | tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:14:48:48 | url.par ... ry.path | tainted-access-paths.js:48:7:48:48 | path | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | +| tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:48:14:48:37 | url.par ... , true) | | tainted-require.js:7:19:7:37 | req.param("module") | tainted-require.js:7:19:7:37 | req.param("module") | | tainted-require.js:12:29:12:47 | req.param("module") | tainted-require.js:12:29:12:47 | req.param("module") | | tainted-require.js:14:11:14:29 | req.param("module") | tainted-require.js:14:11:14:29 | req.param("module") | @@ -10000,6 +10198,7 @@ edges | tainted-access-paths.js:30:23:30:30 | obj.sub4 | tainted-access-paths.js:6:24:6:30 | req.url | tainted-access-paths.js:30:23:30:30 | obj.sub4 | This path depends on $@. | tainted-access-paths.js:6:24:6:30 | req.url | a user-provided value | | tainted-access-paths.js:31:23:31:30 | obj.sub4 | tainted-access-paths.js:6:24:6:30 | req.url | tainted-access-paths.js:31:23:31:30 | obj.sub4 | This path depends on $@. | tainted-access-paths.js:6:24:6:30 | req.url | a user-provided value | | tainted-access-paths.js:40:23:40:26 | path | tainted-access-paths.js:39:24:39:30 | req.url | tainted-access-paths.js:40:23:40:26 | path | This path depends on $@. | tainted-access-paths.js:39:24:39:30 | req.url | a user-provided value | +| tainted-access-paths.js:49:10:49:13 | path | tainted-access-paths.js:48:24:48:30 | req.url | tainted-access-paths.js:49:10:49:13 | path | This path depends on $@. | tainted-access-paths.js:48:24:48:30 | req.url | a user-provided value | | tainted-require.js:7:19:7:37 | req.param("module") | tainted-require.js:7:19:7:37 | req.param("module") | tainted-require.js:7:19:7:37 | req.param("module") | This path depends on $@. | tainted-require.js:7:19:7:37 | req.param("module") | a user-provided value | | tainted-require.js:12:29:12:47 | req.param("module") | tainted-require.js:12:29:12:47 | req.param("module") | tainted-require.js:12:29:12:47 | req.param("module") | This path depends on $@. | tainted-require.js:12:29:12:47 | req.param("module") | a user-provided value | | tainted-require.js:14:11:14:29 | req.param("module") | tainted-require.js:14:11:14:29 | req.param("module") | tainted-require.js:14:11:14:29 | req.param("module") | This path depends on $@. | tainted-require.js:14:11:14:29 | req.param("module") | a user-provided value | diff --git a/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/tainted-access-paths.js b/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/tainted-access-paths.js index e439628d065..465b5b70b69 100644 --- a/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/tainted-access-paths.js +++ b/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/tainted-access-paths.js @@ -40,4 +40,11 @@ var server2 = http.createServer(function(req, res) { nodefs.readFileSync(path); // NOT OK }); -server2.listen(); \ No newline at end of file +server2.listen(); + +const chownr = require("chownr"); + +var server3 = http.createServer(function (req, res) { + let path = url.parse(req.url, true).query.path; + chownr(path, "someuid", "somegid", function (err) {}); // NOT OK +}); From e9d3f658a3e6dd917075df2e1a660a4ea9aeee57 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 30 Jun 2022 00:18:31 +0000 Subject: [PATCH 222/736] Add changed framework coverage reports --- .../library-coverage/coverage.csv | 242 +++++++++--------- .../library-coverage/coverage.rst | 4 +- 2 files changed, 123 insertions(+), 123 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index b9d52d9d75e..06ec8d978d4 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -1,121 +1,121 @@ -package,sink,source,summary,sink:bean-validation,sink:create-file,sink:groovy,sink:header-splitting,sink:information-leak,sink:intent-start,sink:jdbc-url,sink:jexl,sink:jndi-injection,sink:ldap,sink:logging,sink:mvel,sink:ognl-injection,sink:open-url,sink:pending-intent-sent,sink:regex-use[-1],sink:regex-use[0],sink:regex-use[],sink:regex-use[f-1],sink:regex-use[f1],sink:regex-use[f],sink:set-hostname-verifier,sink:sql,sink:url-open-stream,sink:url-redirect,sink:write-file,sink:xpath,sink:xslt,sink:xss,source:android-widget,source:contentprovider,source:remote,summary:taint,summary:value -android.app,16,,103,,,,,,7,,,,,,,,,9,,,,,,,,,,,,,,,,,,18,85 -android.content,24,27,108,,,,,,16,,,,,,,,,,,,,,,,,8,,,,,,,,27,,31,77 -android.database,59,,30,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,30, -android.net,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,15 -android.os,,,122,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,41,81 -android.util,6,16,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,16,, -android.webkit,3,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,2,, -android.widget,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1, -androidx.slice,2,5,88,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,5,,27,61 -cn.hutool.core.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.esotericsoftware.kryo.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.esotericsoftware.kryo5.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.fasterxml.jackson.core,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.fasterxml.jackson.databind,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, -com.google.common.base,4,,85,,,,,,,,,,,,,,,,,3,1,,,,,,,,,,,,,,,62,23 -com.google.common.cache,,,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17 -com.google.common.collect,,,553,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,551 -com.google.common.flogger,29,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,,, -com.google.common.io,6,,73,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,72,1 -com.opensymphony.xwork2.ognl,3,,,,,,,,,,,,,,,3,,,,,,,,,,,,,,,,,,,,, -com.rabbitmq.client,,21,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,21,7, -com.unboundid.ldap.sdk,17,,,,,,,,,,,,17,,,,,,,,,,,,,,,,,,,,,,,, -com.zaxxer.hikari,2,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,, -flexjson,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 -groovy.lang,26,,,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -groovy.util,5,,,,,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -jakarta.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,7,, -jakarta.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 -jakarta.ws.rs.client,1,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,, -jakarta.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,, -jakarta.ws.rs.core,2,,149,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,94,55 -java.beans,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -java.io,37,,39,,15,,,,,,,,,,,,,,,,,,,,,,,,22,,,,,,,39, -java.lang,13,,58,,,,,,,,,,,8,,,,,4,,,1,,,,,,,,,,,,,,46,12 -java.net,10,3,7,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,3,7, -java.nio,15,,6,,13,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,6, -java.sql,11,,,,,,,,,4,,,,,,,,,,,,,,,,7,,,,,,,,,,, -java.util,44,,438,,,,,,,,,,,34,,,,,,5,2,,1,2,,,,,,,,,,,,24,414 -javax.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,7,, -javax.jms,,9,57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,57, -javax.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 -javax.management.remote,2,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,, -javax.naming,7,,,,,,,,,,,6,1,,,,,,,,,,,,,,,,,,,,,,,, -javax.net.ssl,2,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,, -javax.script,1,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,, -javax.servlet,4,21,2,,,,3,1,,,,,,,,,,,,,,,,,,,,,,,,,,,21,2, -javax.validation,1,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, -javax.ws.rs.client,1,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,, -javax.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,, -javax.ws.rs.core,3,,149,,,,1,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,94,55 -javax.xml.transform,1,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,6, -javax.xml.xpath,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,, -jodd.json,,,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10 -kotlin.jvm.internal,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 -net.sf.saxon.s9api,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5,,,,,, -ognl,6,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,, -okhttp3,2,,47,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,22,25 -org.apache.commons.codec,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, -org.apache.commons.collections,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 -org.apache.commons.collections4,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 -org.apache.commons.io,104,,561,,89,,,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,547,14 -org.apache.commons.jexl2,15,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.jexl3,15,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.lang3,,,424,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,293,131 -org.apache.commons.logging,6,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.ognl,6,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.text,,,272,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,220,52 -org.apache.directory.ldap.client.api,1,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.hc.core5.function,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.hc.core5.http,1,2,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,2,39, -org.apache.hc.core5.net,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2, -org.apache.hc.core5.util,,,24,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,18,6 -org.apache.http,27,3,70,,,,,,,,,,,,,,25,,,,,,,,,,,,,,,2,,,3,62,8 -org.apache.ibatis.jdbc,6,,57,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,57, -org.apache.log4j,11,,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,, -org.apache.logging.log4j,359,,8,,,,,,,,,,,359,,,,,,,,,,,,,,,,,,,,,,4,4 -org.apache.shiro.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.shiro.jndi,1,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.codehaus.groovy.control,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.dom4j,20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,,,,,,, -org.hibernate,7,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,, -org.jboss.logging,324,,,,,,,,,,,,,324,,,,,,,,,,,,,,,,,,,,,,, -org.jdbi.v3.core,6,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.jooq,1,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -org.json,,,236,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,198,38 -org.mvel2,16,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,,, -org.scijava.log,13,,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,,,,,, -org.slf4j,55,,6,,,,,,,,,,,55,,,,,,,,,,,,,,,,,,,,,,2,4 -org.springframework.beans,,,30,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,30 -org.springframework.boot.jdbc,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.springframework.cache,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13 -org.springframework.context,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, -org.springframework.http,14,,70,,,,,,,,,,,,,,14,,,,,,,,,,,,,,,,,,,60,10 -org.springframework.jdbc.core,10,,,,,,,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,, -org.springframework.jdbc.datasource,4,,,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.springframework.jdbc.object,9,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,, -org.springframework.jndi,1,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.springframework.ldap,47,,,,,,,,,,,33,14,,,,,,,,,,,,,,,,,,,,,,,, -org.springframework.security.web.savedrequest,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,, -org.springframework.ui,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32 -org.springframework.util,,,139,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,87,52 -org.springframework.validation,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13, -org.springframework.web.client,13,3,,,,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,3,, -org.springframework.web.context.request,,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,, -org.springframework.web.multipart,,12,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12,13, -org.springframework.web.reactive.function.client,2,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,, -org.springframework.web.util,,,163,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,138,25 -org.xml.sax,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.xmlpull.v1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,, -play.mvc,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,, -ratpack.core.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, -ratpack.core.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,4, -ratpack.core.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,10, -ratpack.exec,,,48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48 -ratpack.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, -ratpack.func,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35 -ratpack.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,4, -ratpack.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,10, -ratpack.util,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35 -retrofit2,1,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,, +package,sink,source,summary,sink:bean-validation,sink:create-file,sink:groovy,sink:header-splitting,sink:information-leak,sink:intent-start,sink:jdbc-url,sink:jexl,sink:jndi-injection,sink:ldap,sink:logging,sink:mvel,sink:ognl-injection,sink:open-url,sink:pending-intent-sent,sink:regex-use[-1],sink:regex-use[0],sink:regex-use[],sink:regex-use[f-1],sink:regex-use[f1],sink:regex-use[f],sink:set-hostname-verifier,sink:sql,sink:url-open-stream,sink:url-redirect,sink:write-file,sink:xpath,sink:xslt,sink:xss,source:android-external-storage-dir,source:android-widget,source:contentprovider,source:remote,summary:taint,summary:value +android.app,16,,103,,,,,,7,,,,,,,,,9,,,,,,,,,,,,,,,,,,,18,85 +android.content,24,31,108,,,,,,16,,,,,,,,,,,,,,,,,8,,,,,,,4,,27,,31,77 +android.database,59,,30,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,,30, +android.net,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,15 +android.os,,2,122,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,41,81 +android.util,6,16,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,16,, +android.webkit,3,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,2,, +android.widget,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1, +androidx.slice,2,5,88,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,5,,27,61 +cn.hutool.core.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.esotericsoftware.kryo.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.esotericsoftware.kryo5.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.fasterxml.jackson.core,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.fasterxml.jackson.databind,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, +com.google.common.base,4,,85,,,,,,,,,,,,,,,,,3,1,,,,,,,,,,,,,,,,62,23 +com.google.common.cache,,,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17 +com.google.common.collect,,,553,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,551 +com.google.common.flogger,29,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,,,, +com.google.common.io,6,,73,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,72,1 +com.opensymphony.xwork2.ognl,3,,,,,,,,,,,,,,,3,,,,,,,,,,,,,,,,,,,,,, +com.rabbitmq.client,,21,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,21,7, +com.unboundid.ldap.sdk,17,,,,,,,,,,,,17,,,,,,,,,,,,,,,,,,,,,,,,, +com.zaxxer.hikari,2,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,, +flexjson,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 +groovy.lang,26,,,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +groovy.util,5,,,,,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +jakarta.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,7,, +jakarta.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 +jakarta.ws.rs.client,1,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,, +jakarta.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,, +jakarta.ws.rs.core,2,,149,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,94,55 +java.beans,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +java.io,37,,39,,15,,,,,,,,,,,,,,,,,,,,,,,,22,,,,,,,,39, +java.lang,13,,58,,,,,,,,,,,8,,,,,4,,,1,,,,,,,,,,,,,,,46,12 +java.net,10,3,7,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,3,7, +java.nio,15,,6,,13,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,6, +java.sql,11,,,,,,,,,4,,,,,,,,,,,,,,,,7,,,,,,,,,,,, +java.util,44,,438,,,,,,,,,,,34,,,,,,5,2,,1,2,,,,,,,,,,,,,24,414 +javax.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,7,, +javax.jms,,9,57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,57, +javax.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 +javax.management.remote,2,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,, +javax.naming,7,,,,,,,,,,,6,1,,,,,,,,,,,,,,,,,,,,,,,,, +javax.net.ssl,2,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,, +javax.script,1,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,, +javax.servlet,4,21,2,,,,3,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,21,2, +javax.validation,1,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +javax.ws.rs.client,1,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,, +javax.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,, +javax.ws.rs.core,3,,149,,,,1,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,94,55 +javax.xml.transform,1,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,6, +javax.xml.xpath,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,, +jodd.json,,,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10 +kotlin.jvm.internal,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 +net.sf.saxon.s9api,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5,,,,,,, +ognl,6,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,, +okhttp3,2,,47,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,22,25 +org.apache.commons.codec,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, +org.apache.commons.collections,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 +org.apache.commons.collections4,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 +org.apache.commons.io,104,,561,,89,,,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,,547,14 +org.apache.commons.jexl2,15,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.jexl3,15,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.lang3,,,424,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,293,131 +org.apache.commons.logging,6,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.ognl,6,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.text,,,272,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,220,52 +org.apache.directory.ldap.client.api,1,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.hc.core5.function,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.hc.core5.http,1,2,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,2,39, +org.apache.hc.core5.net,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2, +org.apache.hc.core5.util,,,24,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,18,6 +org.apache.http,27,3,70,,,,,,,,,,,,,,25,,,,,,,,,,,,,,,2,,,,3,62,8 +org.apache.ibatis.jdbc,6,,57,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,57, +org.apache.log4j,11,,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.logging.log4j,359,,8,,,,,,,,,,,359,,,,,,,,,,,,,,,,,,,,,,,4,4 +org.apache.shiro.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.shiro.jndi,1,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.codehaus.groovy.control,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.dom4j,20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,,,,,,,, +org.hibernate,7,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,, +org.jboss.logging,324,,,,,,,,,,,,,324,,,,,,,,,,,,,,,,,,,,,,,, +org.jdbi.v3.core,6,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.jooq,1,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, +org.json,,,236,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,198,38 +org.mvel2,16,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,,,, +org.scijava.log,13,,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,,,,,,, +org.slf4j,55,,6,,,,,,,,,,,55,,,,,,,,,,,,,,,,,,,,,,,2,4 +org.springframework.beans,,,30,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,30 +org.springframework.boot.jdbc,1,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.springframework.cache,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13 +org.springframework.context,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, +org.springframework.http,14,,70,,,,,,,,,,,,,,14,,,,,,,,,,,,,,,,,,,,60,10 +org.springframework.jdbc.core,10,,,,,,,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,,, +org.springframework.jdbc.datasource,4,,,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.springframework.jdbc.object,9,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,, +org.springframework.jndi,1,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.springframework.ldap,47,,,,,,,,,,,33,14,,,,,,,,,,,,,,,,,,,,,,,,, +org.springframework.security.web.savedrequest,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,, +org.springframework.ui,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32 +org.springframework.util,,,139,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,87,52 +org.springframework.validation,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13, +org.springframework.web.client,13,3,,,,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,,3,, +org.springframework.web.context.request,,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,, +org.springframework.web.multipart,,12,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12,13, +org.springframework.web.reactive.function.client,2,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,, +org.springframework.web.util,,,163,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,138,25 +org.xml.sax,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.xmlpull.v1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,, +play.mvc,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,, +ratpack.core.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, +ratpack.core.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,4, +ratpack.core.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,10, +ratpack.exec,,,48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48 +ratpack.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, +ratpack.func,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35 +ratpack.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,4, +ratpack.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,10, +ratpack.util,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35 +retrofit2,1,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index cd8995b77d5..7b45a3115b1 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -7,7 +7,7 @@ Java framework & library support :widths: auto Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE‑022` :sub:`Path injection`,`CWE‑036` :sub:`Path traversal`,`CWE‑079` :sub:`Cross-site scripting`,`CWE‑089` :sub:`SQL injection`,`CWE‑090` :sub:`LDAP injection`,`CWE‑094` :sub:`Code injection`,`CWE‑319` :sub:`Cleartext transmission` - Android,``android.*``,46,424,108,,,3,67,,, + Android,``android.*``,52,424,108,,,3,67,,, `Apache Commons Collections `_,"``org.apache.commons.collections``, ``org.apache.commons.collections4``",,1600,,,,,,,, `Apache Commons IO `_,``org.apache.commons.io``,,561,104,89,,,,,,15 `Apache Commons Lang `_,``org.apache.commons.lang3``,,424,,,,,,,, @@ -19,5 +19,5 @@ Java framework & library support Java extensions,"``javax.*``, ``jakarta.*``",63,609,32,,,4,,1,1,2 `Spring `_,``org.springframework.*``,29,476,101,,,,19,14,,29 Others,"``androidx.slice``, ``cn.hutool.core.codec``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.opensymphony.xwork2.ognl``, ``com.rabbitmq.client``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``groovy.lang``, ``groovy.util``, ``jodd.json``, ``kotlin.jvm.internal``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.apache.commons.codec``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.logging``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.logging.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.hibernate``, ``org.jboss.logging``, ``org.jdbi.v3.core``, ``org.jooq``, ``org.mvel2``, ``org.scijava.log``, ``org.slf4j``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",65,395,932,,,,14,18,,3 - Totals,,211,6410,1474,117,6,10,107,33,1,84 + Totals,,217,6410,1474,117,6,10,107,33,1,84 From 5d5f3f82b1ba752d4b41d66498aff62535020dc7 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Thu, 30 Jun 2022 07:41:28 +0200 Subject: [PATCH 223/736] Swift: fix test case --- .../test/extractor-tests/generated/type/InOutType/in_out.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/test/extractor-tests/generated/type/InOutType/in_out.swift b/swift/ql/test/extractor-tests/generated/type/InOutType/in_out.swift index ae15ad1b884..54bf9be192d 100644 --- a/swift/ql/test/extractor-tests/generated/type/InOutType/in_out.swift +++ b/swift/ql/test/extractor-tests/generated/type/InOutType/in_out.swift @@ -8,5 +8,5 @@ struct S { mutating func bar() {} } -var s: S +var s: S = S() s.bar() From 522d48aa33b02ec6f7e9ab9aa55850af34716efa Mon Sep 17 00:00:00 2001 From: AlexDenisov Date: Thu, 30 Jun 2022 08:47:17 +0200 Subject: [PATCH 224/736] Apply suggestions from code review Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com> --- swift/extractor/SwiftOutputRewrite.cpp | 10 +++++----- swift/extractor/SwiftOutputRewrite.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp index b48fd4cfc3e..cb6e4729928 100644 --- a/swift/extractor/SwiftOutputRewrite.cpp +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -12,7 +12,7 @@ #include // Creates a copy of the output file map and updated remapping table in place -// It does not change the original map file as it is dependent upon by the original compiler +// It does not change the original map file as it is depended upon by the original compiler // Returns path to the newly created output file map on success, or None in a case of failure static std::optional rewriteOutputFileMap( const codeql::SwiftExtractorConfiguration& config, @@ -58,7 +58,7 @@ static std::optional rewriteOutputFileMap( return newPath; } -// This is Xcode-specific workaround to produce alias names for an existing .swiftmodule file. +// This is an Xcode-specific workaround to produce alias names for an existing .swiftmodule file. // In the case of Xcode, it calls the Swift compiler and asks it to produce a Swift module. // Once it's done, Xcode moves the .swiftmodule file in another location, and the location is // rather arbitrary. Here are examples of such locations: @@ -84,10 +84,10 @@ static std::optional rewriteOutputFileMap( // The here is a normalized target triple (e.g. arm64-apple-iphoneos15.4 -> // arm64-apple-iphoneos). // -// This method construct those aliases for a module only if it comes from Xcode, which is detected -// by the presence of `Intermediates.noindex` directory in the module path. +// This method constructs those aliases for a module only if it comes from Xcode, which is detected +// by the presence of an `Intermediates.noindex` directory in the module path. // -// In the case of Swift Package Manager (`swift build`) this is not needed. +// In the case of the Swift Package Manager (`swift build`) this is not needed. static std::vector computeModuleAliases(llvm::StringRef modulePath, const std::string& targetTriple) { if (modulePath.empty()) { diff --git a/swift/extractor/SwiftOutputRewrite.h b/swift/extractor/SwiftOutputRewrite.h index 3f96608b501..03b247bd3dd 100644 --- a/swift/extractor/SwiftOutputRewrite.h +++ b/swift/extractor/SwiftOutputRewrite.h @@ -16,8 +16,8 @@ std::unordered_map rewriteOutputsInPlace( SwiftExtractorConfiguration& config, std::vector& CLIArgs); -// Recreate all the redirected new paths as the Swift compiler expects them to be present -void ensureNewPathsExist(const std::unordered_map& remapping); +// Create directories for all the redirected new paths as the Swift compiler expects them to exist. +void ensureDirectoriesForNewPathsExist(const std::unordered_map& remapping); // Stores remapped `.swiftmoduile`s in a YAML file for later consumption by the // llvm::RedirectingFileSystem via Swift's VFSOverlayFiles. From 35da75f68542883a42bc37059b09f5141eb43ee7 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Thu, 30 Jun 2022 08:48:36 +0200 Subject: [PATCH 225/736] Swift: rename method --- swift/extractor/SwiftOutputRewrite.cpp | 3 ++- swift/extractor/main.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp index cb6e4729928..153526f9fde 100644 --- a/swift/extractor/SwiftOutputRewrite.cpp +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -226,7 +226,8 @@ std::unordered_map rewriteOutputsInPlace( return remapping; } -void ensureNewPathsExist(const std::unordered_map& remapping) { +void ensureDirectoriesForNewPathsExist( + const std::unordered_map& remapping) { for (auto& [_, newPath] : remapping) { llvm::SmallString filepath(newPath); llvm::StringRef parent = llvm::sys::path::parent_path(filepath); diff --git a/swift/extractor/main.cpp b/swift/extractor/main.cpp index 2a3d23e87e5..59bbfa690f0 100644 --- a/swift/extractor/main.cpp +++ b/swift/extractor/main.cpp @@ -71,7 +71,7 @@ int main(int argc, char** argv) { auto remapping = codeql::rewriteOutputsInPlace(configuration, configuration.patchedFrontendOptions); - codeql::ensureNewPathsExist(remapping); + codeql::ensureDirectoriesForNewPathsExist(remapping); codeql::storeRemappingForVFS(configuration, remapping); std::vector args; From 1dd3141e2d1e4559550766c81334572168576f24 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Thu, 30 Jun 2022 08:57:22 +0200 Subject: [PATCH 226/736] Swift: address more code review comments --- swift/extractor/SwiftOutputRewrite.cpp | 18 ++++++++++++++---- swift/extractor/SwiftOutputRewrite.h | 4 +++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp index 153526f9fde..ff3a860be83 100644 --- a/swift/extractor/SwiftOutputRewrite.cpp +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -11,7 +11,7 @@ #include #include -// Creates a copy of the output file map and updated remapping table in place +// Creates a copy of the output file map and updates remapping table in place // It does not change the original map file as it is depended upon by the original compiler // Returns path to the newly created output file map on success, or None in a case of failure static std::optional rewriteOutputFileMap( @@ -96,7 +96,12 @@ static std::vector computeModuleAliases(llvm::StringRef modulePath, if (!modulePath.endswith(".swiftmodule")) { return {}; } - + // Deconstructing the Xcode generated path + // + // clang-format off + // intermediatesDirIndex destinationDir (2) arch(5) + // DerivedData/FooBar/Build/Intermediates.noindex/FooBar.build/Debug-iphonesimulator/FooBar.build/Objects-normal/x86_64/FooBar.swiftmodule + // clang-format on llvm::SmallVector chunks; modulePath.split(chunks, '/'); size_t intermediatesDirIndex = 0; @@ -110,9 +115,14 @@ static std::vector computeModuleAliases(llvm::StringRef modulePath, if (intermediatesDirIndex == 0) { return {}; } + size_t destinationDirIndex = intermediatesDirIndex + 2; + size_t archIndex = intermediatesDirIndex + 5; + if (archIndex >= chunks.size()) { + return {}; + } // e.g. Debug-iphoneos, Release-iphonesimulator, etc. - auto destinationDir = chunks[intermediatesDirIndex + 2].str(); - auto arch = chunks[intermediatesDirIndex + 5].str(); + auto destinationDir = chunks[destinationDirIndex].str(); + auto arch = chunks[archIndex].str(); auto moduleNameWithExt = chunks.back(); auto moduleName = moduleNameWithExt.substr(0, moduleNameWithExt.find_last_of('.')); std::string relocatedModulePath = chunks[0].str(); diff --git a/swift/extractor/SwiftOutputRewrite.h b/swift/extractor/SwiftOutputRewrite.h index 03b247bd3dd..b7ee7fa3829 100644 --- a/swift/extractor/SwiftOutputRewrite.h +++ b/swift/extractor/SwiftOutputRewrite.h @@ -17,7 +17,8 @@ std::unordered_map rewriteOutputsInPlace( std::vector& CLIArgs); // Create directories for all the redirected new paths as the Swift compiler expects them to exist. -void ensureDirectoriesForNewPathsExist(const std::unordered_map& remapping); +void ensureDirectoriesForNewPathsExist( + const std::unordered_map& remapping); // Stores remapped `.swiftmoduile`s in a YAML file for later consumption by the // llvm::RedirectingFileSystem via Swift's VFSOverlayFiles. @@ -25,6 +26,7 @@ void storeRemappingForVFS(const SwiftExtractorConfiguration& config, const std::unordered_map& remapping); // Returns a list of VFS YAML files produced by all the extractor processes. +// This is separate from storeRemappingForVFS as we also collect files produced by other processes. std::vector collectVFSFiles(const SwiftExtractorConfiguration& config); } // namespace codeql From 22d285f77766e690f6b52862e013875f1bebd110 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 29 Jun 2022 23:11:10 +0200 Subject: [PATCH 227/736] add model for the gray-matter libary to js/code-injection --- .../2022-06-22-sensitive-common-words copy.md | 4 ++++ .../dataflow/CodeInjectionCustomizations.qll | 5 +++++ .../CodeInjection/UnsafeCodeConstruction.expected | 9 +++++++++ .../Security/CWE-094/CodeInjection/lib/index.js | 14 +++++++++++++- 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words copy.md diff --git a/javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words copy.md b/javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words copy.md new file mode 100644 index 00000000000..8a0151df015 --- /dev/null +++ b/javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words copy.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `gray-matter` library is now modeled as a sink for the `js/code-injection` query. diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll index 69427e12d7b..a500d737b36 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll @@ -51,6 +51,11 @@ module CodeInjection { } } + /** An expression parsed by the `gray-matter` library. */ + class GrayMatterSink extends Sink { + GrayMatterSink() { this = DataFlow::moduleImport("gray-matter").getACall().getArgument(0) } + } + /** * A template tag occurring in JS code, viewed as a code injection sink. */ diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/UnsafeCodeConstruction.expected b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/UnsafeCodeConstruction.expected index dfc86af8cf1..9109bbc239b 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/UnsafeCodeConstruction.expected +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/UnsafeCodeConstruction.expected @@ -11,6 +11,10 @@ nodes | lib/index.js:13:38:13:41 | data | | lib/index.js:14:21:14:24 | data | | lib/index.js:14:21:14:24 | data | +| lib/index.js:19:26:19:29 | data | +| lib/index.js:19:26:19:29 | data | +| lib/index.js:22:7:22:10 | data | +| lib/index.js:22:7:22:10 | data | edges | lib/index.js:1:35:1:38 | data | lib/index.js:2:21:2:24 | data | | lib/index.js:1:35:1:38 | data | lib/index.js:2:21:2:24 | data | @@ -24,7 +28,12 @@ edges | lib/index.js:13:38:13:41 | data | lib/index.js:14:21:14:24 | data | | lib/index.js:13:38:13:41 | data | lib/index.js:14:21:14:24 | data | | lib/index.js:13:38:13:41 | data | lib/index.js:14:21:14:24 | data | +| lib/index.js:19:26:19:29 | data | lib/index.js:22:7:22:10 | data | +| lib/index.js:19:26:19:29 | data | lib/index.js:22:7:22:10 | data | +| lib/index.js:19:26:19:29 | data | lib/index.js:22:7:22:10 | data | +| lib/index.js:19:26:19:29 | data | lib/index.js:22:7:22:10 | data | #select | lib/index.js:2:21:2:24 | data | lib/index.js:1:35:1:38 | data | lib/index.js:2:21:2:24 | data | $@ flows to here and is later $@. | lib/index.js:1:35:1:38 | data | Library input | lib/index.js:2:15:2:30 | "(" + data + ")" | interpreted as code | | lib/index.js:6:26:6:29 | name | lib/index.js:5:35:5:38 | name | lib/index.js:6:26:6:29 | name | $@ flows to here and is later $@. | lib/index.js:5:35:5:38 | name | Library input | lib/index.js:6:17:6:29 | "obj." + name | interpreted as code | | lib/index.js:14:21:14:24 | data | lib/index.js:13:38:13:41 | data | lib/index.js:14:21:14:24 | data | $@ flows to here and is later $@. | lib/index.js:13:38:13:41 | data | Library input | lib/index.js:14:15:14:30 | "(" + data + ")" | interpreted as code | +| lib/index.js:22:7:22:10 | data | lib/index.js:19:26:19:29 | data | lib/index.js:22:7:22:10 | data | $@ flows to here and is later $@. | lib/index.js:19:26:19:29 | data | Library input | lib/index.js:25:32:25:34 | str | interpreted as code | diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/lib/index.js b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/lib/index.js index b5df26c11d5..764925cae84 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/lib/index.js +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/lib/index.js @@ -12,4 +12,16 @@ export function safeAssignment(obj, value) { global.unsafeDeserialize = function (data) { return eval("(" + data + ")"); // NOT OK -} \ No newline at end of file +} + +const matter = require("gray-matter"); + +export function greySink(data) { + const str = ` + ---js + ${data} + --- + ` + const { content } = matter(str); + console.log(content); +} From f71a64b99d7e80b395b82694d7c02d201432fe0c Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 29 Jun 2022 23:32:41 +0200 Subject: [PATCH 228/736] recognize when the js engine in gray-matter is set to something safe --- .../dataflow/CodeInjectionCustomizations.qll | 9 ++++++++- .../CodeInjection/UnsafeCodeConstruction.expected | 2 +- .../Security/CWE-094/CodeInjection/lib/index.js | 12 ++++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll index a500d737b36..b691e00e541 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll @@ -53,7 +53,14 @@ module CodeInjection { /** An expression parsed by the `gray-matter` library. */ class GrayMatterSink extends Sink { - GrayMatterSink() { this = DataFlow::moduleImport("gray-matter").getACall().getArgument(0) } + API::CallNode call; + + GrayMatterSink() { + call = DataFlow::moduleImport("gray-matter").getACall() and + this = call.getArgument(0) and + // if the js/javascript engine is set, then we assume they are set to something safe. + not exists(call.getParameter(1).getMember("engines").getMember(["js", "javascript"])) + } } /** diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/UnsafeCodeConstruction.expected b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/UnsafeCodeConstruction.expected index 9109bbc239b..49511750e6f 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/UnsafeCodeConstruction.expected +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/UnsafeCodeConstruction.expected @@ -36,4 +36,4 @@ edges | lib/index.js:2:21:2:24 | data | lib/index.js:1:35:1:38 | data | lib/index.js:2:21:2:24 | data | $@ flows to here and is later $@. | lib/index.js:1:35:1:38 | data | Library input | lib/index.js:2:15:2:30 | "(" + data + ")" | interpreted as code | | lib/index.js:6:26:6:29 | name | lib/index.js:5:35:5:38 | name | lib/index.js:6:26:6:29 | name | $@ flows to here and is later $@. | lib/index.js:5:35:5:38 | name | Library input | lib/index.js:6:17:6:29 | "obj." + name | interpreted as code | | lib/index.js:14:21:14:24 | data | lib/index.js:13:38:13:41 | data | lib/index.js:14:21:14:24 | data | $@ flows to here and is later $@. | lib/index.js:13:38:13:41 | data | Library input | lib/index.js:14:15:14:30 | "(" + data + ")" | interpreted as code | -| lib/index.js:22:7:22:10 | data | lib/index.js:19:26:19:29 | data | lib/index.js:22:7:22:10 | data | $@ flows to here and is later $@. | lib/index.js:19:26:19:29 | data | Library input | lib/index.js:25:32:25:34 | str | interpreted as code | +| lib/index.js:22:7:22:10 | data | lib/index.js:19:26:19:29 | data | lib/index.js:22:7:22:10 | data | $@ flows to here and is later $@. | lib/index.js:19:26:19:29 | data | Library input | lib/index.js:25:24:25:26 | str | interpreted as code | diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/lib/index.js b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/lib/index.js index 764925cae84..4289ebfc686 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/lib/index.js +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/lib/index.js @@ -22,6 +22,14 @@ export function greySink(data) { ${data} --- ` - const { content } = matter(str); - console.log(content); + const res = matter(str); + console.log(res); + + matter(str, { // OK + engines: { + js: function (data) { + console.log("NOPE"); + } + } + }); } From 11be15aab1c67f44248a4d0bbd6da4c69299b258 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 30 Jun 2022 08:59:50 +0200 Subject: [PATCH 229/736] inline field into the charpred --- .../dataflow/CodeInjectionCustomizations.qll | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll index b691e00e541..9e72cc9ee82 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll @@ -53,13 +53,13 @@ module CodeInjection { /** An expression parsed by the `gray-matter` library. */ class GrayMatterSink extends Sink { - API::CallNode call; - GrayMatterSink() { - call = DataFlow::moduleImport("gray-matter").getACall() and - this = call.getArgument(0) and - // if the js/javascript engine is set, then we assume they are set to something safe. - not exists(call.getParameter(1).getMember("engines").getMember(["js", "javascript"])) + exists(API::CallNode call | + call = DataFlow::moduleImport("gray-matter").getACall() and + this = call.getArgument(0) and + // if the js/javascript engine is set, then we assume they are set to something safe. + not exists(call.getParameter(1).getMember("engines").getMember(["js", "javascript"])) + ) } } From 6b0e734c470bd086f19cd0f60d495125f5de7a62 Mon Sep 17 00:00:00 2001 From: AlexDenisov Date: Thu, 30 Jun 2022 11:06:03 +0200 Subject: [PATCH 230/736] Update swift/extractor/SwiftOutputRewrite.cpp Co-authored-by: Paolo Tranquilli --- swift/extractor/SwiftOutputRewrite.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp index ff3a860be83..b014b0a9afd 100644 --- a/swift/extractor/SwiftOutputRewrite.cpp +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -170,7 +170,7 @@ std::unordered_map rewriteOutputsInPlace( std::unordered_map remapping; // TODO: handle filelists? - std::unordered_set pathRewriteOptions({ + const std::unordered_set pathRewriteOptions({ "-emit-dependencies-path", "-emit-module-path", "-emit-module-doc-path", From b5c1ec895896aee35e8cc077fd5467dcd6f89edd Mon Sep 17 00:00:00 2001 From: AlexDenisov Date: Thu, 30 Jun 2022 11:08:23 +0200 Subject: [PATCH 231/736] Update swift/extractor/SwiftOutputRewrite.cpp Co-authored-by: Paolo Tranquilli --- swift/extractor/SwiftOutputRewrite.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp index b014b0a9afd..d1e9fc313ca 100644 --- a/swift/extractor/SwiftOutputRewrite.cpp +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -225,7 +225,7 @@ std::unordered_map rewriteOutputsInPlace( } // This doesn't really belong here, but we've got Xcode... - for (auto& [oldPath, newPath] : remapping) { + for (const auto& [oldPath, newPath] : remapping) { llvm::StringRef path(oldPath); auto aliases = computeModuleAliases(path, targetTriple); for (auto& alias : aliases) { From 02dd933e5f51932c45893f5fad18dea1c1b53c1f Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Thu, 30 Jun 2022 09:32:23 +0100 Subject: [PATCH 232/736] Ruby: move Pathname from core to stdlib --- ruby/ql/lib/codeql/ruby/frameworks/Core.qll | 1 - ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll | 1 + .../ql/lib/codeql/ruby/frameworks/{core => stdlib}/Pathname.qll | 0 ruby/ql/test/library-tests/frameworks/pathname/Pathname.ql | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) rename ruby/ql/lib/codeql/ruby/frameworks/{core => stdlib}/Pathname.qll (100%) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Core.qll b/ruby/ql/lib/codeql/ruby/frameworks/Core.qll index b428029c829..1ef6d8d65e5 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Core.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Core.qll @@ -14,7 +14,6 @@ import core.Hash import core.String import core.Regexp import core.IO -import core.Pathname /** * A system command executed via subshell literal syntax. diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll b/ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll index 11c993b1170..f735f9daf8b 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll @@ -4,3 +4,4 @@ import stdlib.Open3 import stdlib.Logger +import stdlib.Pathname diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll similarity index 100% rename from ruby/ql/lib/codeql/ruby/frameworks/core/Pathname.qll rename to ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll diff --git a/ruby/ql/test/library-tests/frameworks/pathname/Pathname.ql b/ruby/ql/test/library-tests/frameworks/pathname/Pathname.ql index d624cff3aa3..71150ae5376 100644 --- a/ruby/ql/test/library-tests/frameworks/pathname/Pathname.ql +++ b/ruby/ql/test/library-tests/frameworks/pathname/Pathname.ql @@ -1,7 +1,7 @@ private import ruby private import codeql.ruby.Concepts private import codeql.ruby.DataFlow -private import codeql.ruby.frameworks.core.Pathname +private import codeql.ruby.frameworks.stdlib.Pathname query predicate pathnameInstances(Pathname::PathnameInstance i) { any() } From d42b752c6d8773bbf4dc723b199312b04409f6c3 Mon Sep 17 00:00:00 2001 From: AlexDenisov Date: Thu, 30 Jun 2022 11:10:43 +0200 Subject: [PATCH 233/736] Apply suggestions from code review Co-authored-by: Paolo Tranquilli --- swift/extractor/SwiftOutputRewrite.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp index d1e9fc313ca..978f8417f81 100644 --- a/swift/extractor/SwiftOutputRewrite.cpp +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -251,9 +251,9 @@ void storeRemappingForVFS(const SwiftExtractorConfiguration& config, const std::unordered_map& remapping) { // Only create remapping for the .swiftmodule files std::unordered_map modules; - for (auto& [oldPath, newPath] : remapping) { + for (const auto& [oldPath, newPath] : remapping) { if (llvm::StringRef(oldPath).endswith(".swiftmodule")) { - modules[oldPath] = newPath; + modules.emplace(oldPath, newPath); } } From 2d98eb591eb173781790ac2ccd9b4c45987f0f1f Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 24 Jun 2022 11:33:18 +0100 Subject: [PATCH 234/736] Kotlin: note that raw inner classes nest within a raw outer. Previously the Java extractor did this but the Kotlin extractor nested them within an unbound outer type. --- .../src/main/kotlin/KotlinFileExtractor.kt | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index b82b71faccf..147df667ddf 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -6,6 +6,7 @@ import com.github.codeql.utils.versions.functionN import com.github.codeql.utils.versions.getIrStubFromDescriptor import com.semmle.extractor.java.OdasaOutput import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.backend.common.lower.parents import org.jetbrains.kotlin.backend.common.pop import org.jetbrains.kotlin.builtins.functions.BuiltInFunctionArity import org.jetbrains.kotlin.descriptors.* @@ -314,8 +315,21 @@ open class KotlinFileExtractor( val locId = getLocation(c, argsIncludingOuterClasses) tw.writeHasLocation(id, locId) - // Extract the outer <-> inner class relationship, passing on any type arguments in excess to this class' parameters. - extractEnclosingClass(c, id, locId, argsIncludingOuterClasses?.drop(c.typeParameters.size) ?: listOf()) + // Extract the outer <-> inner class relationship, passing on any type arguments in excess to this class' parameters if this is an inner class. + // For example, in `class Outer { inner class Inner { } }`, `Inner` nests within `Outer` and raw `Inner<>` within `Outer<>`, + // but for a similar non-`inner` (in Java terms, static nested) class both `Inner` and `Inner<>` nest within the unbound type `Outer`. + val useBoundOuterType = (c.isInner || c.isLocal) && (c.parents.firstNotNullOfOrNull { + when(it) { + is IrClass -> when { + it.typeParameters.isNotEmpty() -> true // Type parameters visible to this class -- extract an enclosing bound or raw type. + !(it.isInner || it.isLocal) -> false // No type parameters seen yet, and this is a static class -- extract an enclosing unbound type. + else -> null // No type parameters seen here, but may be visible enclosing type parameters; keep searching. + } + else -> null // Look through enclosing non-class entities (this may need to change) + } + } ?: false) + + extractEnclosingClass(c, id, locId, if (useBoundOuterType) argsIncludingOuterClasses?.drop(c.typeParameters.size) else listOf()) return id } @@ -458,7 +472,8 @@ open class KotlinFileExtractor( } } - private fun extractEnclosingClass(innerDeclaration: IrDeclaration, innerId: Label, innerLocId: Label, parentClassTypeArguments: List) { + // If `parentClassTypeArguments` is null, the parent class is a raw type. + private fun extractEnclosingClass(innerDeclaration: IrDeclaration, innerId: Label, innerLocId: Label, parentClassTypeArguments: List?) { with("enclosing class", innerDeclaration) { var parent: IrDeclarationParent? = innerDeclaration.parent while (parent != null) { From 8e5bbea9f96b94bc2eb46b3ab862fdf5f9da2a63 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 24 Jun 2022 14:22:45 +0100 Subject: [PATCH 235/736] Use map...firstOrNull not firstNotNullOfOrNull The latter was introduced in Kotlin 1.5, so we can't use it in all supported versions. --- java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt | 4 ++-- 1 file 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 147df667ddf..a0e3004985a 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -318,7 +318,7 @@ open class KotlinFileExtractor( // Extract the outer <-> inner class relationship, passing on any type arguments in excess to this class' parameters if this is an inner class. // For example, in `class Outer { inner class Inner { } }`, `Inner` nests within `Outer` and raw `Inner<>` within `Outer<>`, // but for a similar non-`inner` (in Java terms, static nested) class both `Inner` and `Inner<>` nest within the unbound type `Outer`. - val useBoundOuterType = (c.isInner || c.isLocal) && (c.parents.firstNotNullOfOrNull { + val useBoundOuterType = (c.isInner || c.isLocal) && (c.parents.map { // Would use `firstNotNullOfOrNull`, but this doesn't exist in Kotlin 1.4 when(it) { is IrClass -> when { it.typeParameters.isNotEmpty() -> true // Type parameters visible to this class -- extract an enclosing bound or raw type. @@ -327,7 +327,7 @@ open class KotlinFileExtractor( } else -> null // Look through enclosing non-class entities (this may need to change) } - } ?: false) + }.firstOrNull { it != null } ?: false) extractEnclosingClass(c, id, locId, if (useBoundOuterType) argsIncludingOuterClasses?.drop(c.typeParameters.size) else listOf()) From ab52a020fa6760cb0acf3aa56de9a6082f0cabca Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 10:22:56 +0100 Subject: [PATCH 236/736] Add test --- .../kotlin/nested_generic_types/JavaUser.java | 9 ++ .../kotlin/nested_generic_types/KotlinUser.kt | 9 ++ .../libsrc/extlib/OuterGeneric.java | 2 + .../libsrc/extlib/OuterNotGeneric.java | 6 + .../libsrc/extlib/TypeParamVisibility.java | 29 +++++ .../kotlin/nested_generic_types/test.expected | 103 ++++++++++++++++++ 6 files changed, 158 insertions(+) create mode 100644 java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/TypeParamVisibility.java diff --git a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/JavaUser.java b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/JavaUser.java index 3c79f5828c8..f54b65bde92 100644 --- a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/JavaUser.java +++ b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/JavaUser.java @@ -21,6 +21,15 @@ public class JavaUser { String result4 = d.identity("goodbye"); Short result5 = e.returnSixth(1, "hello", 1.0f, 1.0, 1L, (short)1); + OuterGeneric.InnerNotGeneric innerGetterTest = (new OuterGeneric()).getInnerNotGeneric(); + OuterNotGeneric.InnerGeneric innerGetterTest2 = (new OuterNotGeneric()).getInnerGeneric(); + + TypeParamVisibility tpv = new TypeParamVisibility(); + TypeParamVisibility.VisibleBecauseInner visibleBecauseInner = tpv.getVisibleBecauseInner(); + TypeParamVisibility.VisibleBecauseInnerIndirectContainer.VisibleBecauseInnerIndirect visibleBecauseInnerIndirect = tpv.getVisibleBecauseInnerIndirect(); + TypeParamVisibility.NotVisibleBecauseStatic notVisibleBecauseStatic = tpv.getNotVisibleBecauseStatic(); + TypeParamVisibility.NotVisibleBecauseStaticIndirectContainer.NotVisibleBecauseStaticIndirect notVisibleBecauseStaticIndirect = tpv.getNotVisibleBecauseStaticIndirect(); + } } diff --git a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/KotlinUser.kt b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/KotlinUser.kt index 01102e86881..44474b84619 100644 --- a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/KotlinUser.kt +++ b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/KotlinUser.kt @@ -22,6 +22,15 @@ class User { val result4 = d.identity("goodbye") val result5 = e.returnSixth(1, "hello", 1.0f, 1.0, 1L, 1.toShort()) + val innerGetterTest = OuterGeneric().getInnerNotGeneric() + val innerGetterTest2 = OuterNotGeneric().getInnerGeneric() + + val tpv = TypeParamVisibility() + val visibleBecauseInner = tpv.getVisibleBecauseInner(); + val visibleBecauseInnerIndirect = tpv.getVisibleBecauseInnerIndirect() + val notVisibleBecauseStatic = tpv.getNotVisibleBecauseStatic() + val notVisibleBecauseStaticIndirect = tpv.getNotVisibleBecauseStaticIndirect() + } } diff --git a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/OuterGeneric.java b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/OuterGeneric.java index 36706f2cd42..b98950ad6dc 100644 --- a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/OuterGeneric.java +++ b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/OuterGeneric.java @@ -8,6 +8,8 @@ public class OuterGeneric { } + public InnerNotGeneric getInnerNotGeneric() { return null; } + public class InnerGeneric { public InnerGeneric(R r) { } diff --git a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/OuterNotGeneric.java b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/OuterNotGeneric.java index 8f998968960..68a0f62d768 100644 --- a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/OuterNotGeneric.java +++ b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/OuterNotGeneric.java @@ -8,4 +8,10 @@ public class OuterNotGeneric { } + public InnerGeneric getInnerGeneric() { + + return new InnerGeneric(); + + } + } diff --git a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/TypeParamVisibility.java b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/TypeParamVisibility.java new file mode 100644 index 00000000000..1ac6d4892e3 --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/libsrc/extlib/TypeParamVisibility.java @@ -0,0 +1,29 @@ +package extlib; + +public class TypeParamVisibility { + + public class VisibleBecauseInner { } + + public class VisibleBecauseInnerIndirectContainer { + + public class VisibleBecauseInnerIndirect { } + + } + + public static class NotVisibleBecauseStatic { } + + public static class NotVisibleBecauseStaticIndirectContainer { + + public class NotVisibleBecauseStaticIndirect { } + + } + + public VisibleBecauseInner getVisibleBecauseInner() { return new VisibleBecauseInner(); } + + public VisibleBecauseInnerIndirectContainer.VisibleBecauseInnerIndirect getVisibleBecauseInnerIndirect() { return (new VisibleBecauseInnerIndirectContainer()).new VisibleBecauseInnerIndirect(); } + + public NotVisibleBecauseStatic getNotVisibleBecauseStatic() { return new NotVisibleBecauseStatic(); } + + public NotVisibleBecauseStaticIndirectContainer.NotVisibleBecauseStaticIndirect getNotVisibleBecauseStaticIndirect() { return (new NotVisibleBecauseStaticIndirectContainer()).new NotVisibleBecauseStaticIndirect(); } + +} diff --git a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/test.expected b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/test.expected index e7c0acaa8f6..1c37ebd0eff 100644 --- a/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/test.expected +++ b/java/ql/integration-tests/posix-only/kotlin/nested_generic_types/test.expected @@ -59,6 +59,15 @@ callArgs | JavaUser.java:22:21:22:70 | returnSixth(...) | JavaUser.java:22:53:22:55 | 1.0 | 3 | | JavaUser.java:22:21:22:70 | returnSixth(...) | JavaUser.java:22:58:22:59 | 1L | 4 | | JavaUser.java:22:21:22:70 | returnSixth(...) | JavaUser.java:22:62:22:69 | (...)... | 5 | +| JavaUser.java:24:60:24:108 | getInnerNotGeneric(...) | JavaUser.java:24:61:24:86 | new OuterGeneric(...) | -1 | +| JavaUser.java:24:61:24:86 | new OuterGeneric(...) | JavaUser.java:24:65:24:84 | OuterGeneric | -3 | +| JavaUser.java:25:61:25:101 | getInnerGeneric(...) | JavaUser.java:25:62:25:82 | new OuterNotGeneric(...) | -1 | +| JavaUser.java:25:62:25:82 | new OuterNotGeneric(...) | JavaUser.java:25:66:25:80 | OuterNotGeneric | -3 | +| JavaUser.java:27:39:27:71 | new TypeParamVisibility(...) | JavaUser.java:27:43:27:69 | TypeParamVisibility | -3 | +| JavaUser.java:28:83:28:110 | getVisibleBecauseInner(...) | JavaUser.java:28:83:28:85 | tpv | -1 | +| JavaUser.java:29:136:29:171 | getVisibleBecauseInnerIndirect(...) | JavaUser.java:29:136:29:138 | tpv | -1 | +| JavaUser.java:30:83:30:114 | getNotVisibleBecauseStatic(...) | JavaUser.java:30:83:30:85 | tpv | -1 | +| JavaUser.java:31:140:31:179 | getNotVisibleBecauseStaticIndirect(...) | JavaUser.java:31:140:31:142 | tpv | -1 | | KotlinUser.kt:9:13:9:31 | new OuterGeneric(...) | KotlinUser.kt:9:13:9:31 | OuterGeneric | -3 | | KotlinUser.kt:9:33:9:63 | new InnerGeneric(...) | KotlinUser.kt:9:13:9:31 | new OuterGeneric(...) | -2 | | KotlinUser.kt:9:33:9:63 | new InnerGeneric(...) | KotlinUser.kt:9:33:9:63 | InnerGeneric | -3 | @@ -116,6 +125,15 @@ callArgs | KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:56:23:57 | 1 | 4 | | KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:62:23:70 | shortValue(...) | 5 | | KotlinUser.kt:23:62:23:70 | shortValue(...) | KotlinUser.kt:23:60:23:60 | 1 | -1 | +| KotlinUser.kt:25:27:25:48 | new OuterGeneric(...) | KotlinUser.kt:25:27:25:48 | OuterGeneric | -3 | +| KotlinUser.kt:25:50:25:69 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:48 | new OuterGeneric(...) | -1 | +| KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | KotlinUser.kt:26:28:26:44 | OuterNotGeneric | -3 | +| KotlinUser.kt:26:46:26:62 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | -1 | +| KotlinUser.kt:28:15:28:43 | new TypeParamVisibility(...) | KotlinUser.kt:28:15:28:43 | TypeParamVisibility | -3 | +| KotlinUser.kt:29:35:29:58 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:33 | tpv | -1 | +| KotlinUser.kt:30:43:30:74 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:41 | tpv | -1 | +| KotlinUser.kt:31:39:31:66 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:37 | tpv | -1 | +| KotlinUser.kt:32:47:32:82 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:45 | tpv | -1 | genericTypes | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | S | | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | InnerStaticGeneric | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | S | @@ -127,6 +145,11 @@ genericTypes | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | A | | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | B | | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | S | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStatic.class:0:0:0:0 | NotVisibleBecauseStatic | extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStatic.class:0:0:0:0 | S | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer$NotVisibleBecauseStaticIndirect.class:0:0:0:0 | NotVisibleBecauseStaticIndirect | extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer$NotVisibleBecauseStaticIndirect.class:0:0:0:0 | S | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner | extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | S | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect | extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | S | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | T | paramTypes | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | S | | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | String | @@ -149,6 +172,18 @@ paramTypes | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | String | | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | S | | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | String | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStatic.class:0:0:0:0 | NotVisibleBecauseStatic | S | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStatic.class:0:0:0:0 | NotVisibleBecauseStatic | String | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer$NotVisibleBecauseStaticIndirect.class:0:0:0:0 | NotVisibleBecauseStaticIndirect | S | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer$NotVisibleBecauseStaticIndirect.class:0:0:0:0 | NotVisibleBecauseStaticIndirect | String | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner | S | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner | String | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner | String | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect | S | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect | String | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect | String | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | T | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | String | constructors | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | InnerGeneric(java.lang.Object) | | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | InnerGeneric(java.lang.Object,java.lang.Object) | @@ -171,6 +206,14 @@ constructors | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | InnerGeneric() | | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | InnerGeneric() | | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | OuterNotGeneric | OuterNotGeneric() | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStatic.class:0:0:0:0 | NotVisibleBecauseStatic | NotVisibleBecauseStatic() | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer$NotVisibleBecauseStaticIndirect.class:0:0:0:0 | NotVisibleBecauseStaticIndirect | NotVisibleBecauseStaticIndirect() | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer.class:0:0:0:0 | NotVisibleBecauseStaticIndirectContainer | NotVisibleBecauseStaticIndirectContainer() | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner | VisibleBecauseInner() | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect | VisibleBecauseInnerIndirect() | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer | VisibleBecauseInnerIndirectContainer() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | TypeParamVisibility() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | TypeParamVisibility() | methods | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | returnsecond(java.lang.Object,java.lang.Object) | | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | returnsecond(java.lang.Object,java.lang.Object,java.lang.Object) | @@ -181,14 +224,27 @@ methods | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | identity | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric<> | identity(java.lang.String) | | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | identity | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | InnerStaticGeneric | identity(java.lang.Object) | | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | identity | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | InnerStaticGeneric | identity(java.lang.String) | +| extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | getInnerNotGeneric() | +| extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | getInnerNotGeneric() | +| extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | getInnerNotGeneric() | | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | returnSixth | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | InnerManyParams | returnSixth(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object) | | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | returnSixth | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | InnerManyParams | returnSixth(java.lang.Integer,java.lang.String,java.lang.Float,java.lang.Double,java.lang.Long,java.lang.Short) | | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | identity | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | identity(java.lang.Object) | | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | identity | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | identity(java.lang.String) | +| extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | getInnerGeneric | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | OuterNotGeneric | getInnerGeneric() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStatic | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | getNotVisibleBecauseStatic() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStatic | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | getNotVisibleBecauseStatic() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStaticIndirect | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | getNotVisibleBecauseStaticIndirect() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStaticIndirect | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | getNotVisibleBecauseStaticIndirect() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInner | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | getVisibleBecauseInner() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInner | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | getVisibleBecauseInner() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInnerIndirect | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | getVisibleBecauseInnerIndirect() | +| extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInnerIndirect | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | getVisibleBecauseInnerIndirect() | nestedTypes | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | +| extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric<> | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric<> | | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric<> | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric<> | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | InnerStaticGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | @@ -198,7 +254,26 @@ nestedTypes | extlib.jar/extlib/OuterManyParams$MiddleManyParams.class:0:0:0:0 | MiddleManyParams | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | | extlib.jar/extlib/OuterManyParams$MiddleManyParams.class:0:0:0:0 | MiddleManyParams | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | OuterNotGeneric | +| extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric<> | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | OuterNotGeneric | | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | OuterNotGeneric | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStatic.class:0:0:0:0 | NotVisibleBecauseStatic | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStatic.class:0:0:0:0 | NotVisibleBecauseStatic<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStatic.class:0:0:0:0 | NotVisibleBecauseStatic | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer$NotVisibleBecauseStaticIndirect.class:0:0:0:0 | NotVisibleBecauseStaticIndirect | extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer.class:0:0:0:0 | NotVisibleBecauseStaticIndirectContainer | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer$NotVisibleBecauseStaticIndirect.class:0:0:0:0 | NotVisibleBecauseStaticIndirect<> | extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer.class:0:0:0:0 | NotVisibleBecauseStaticIndirectContainer | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer$NotVisibleBecauseStaticIndirect.class:0:0:0:0 | NotVisibleBecauseStaticIndirect | extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer.class:0:0:0:0 | NotVisibleBecauseStaticIndirectContainer | +| extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer.class:0:0:0:0 | NotVisibleBecauseStaticIndirectContainer | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility<> | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect | extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect<> | extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect | extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect | extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility<> | +| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | javaKotlinCalleeAgreement | JavaUser.java:16:22:16:47 | returnsecond(...) | KotlinUser.kt:17:21:17:44 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond | | JavaUser.java:17:23:17:53 | returnsecond(...) | KotlinUser.kt:18:22:18:50 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond | @@ -207,6 +282,12 @@ javaKotlinCalleeAgreement | JavaUser.java:20:22:20:40 | identity(...) | KotlinUser.kt:21:21:21:37 | identity(...) | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | identity | | JavaUser.java:21:22:21:42 | identity(...) | KotlinUser.kt:22:21:22:39 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | identity | | JavaUser.java:22:21:22:70 | returnSixth(...) | KotlinUser.kt:23:21:23:71 | returnSixth(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | returnSixth | +| JavaUser.java:24:60:24:108 | getInnerNotGeneric(...) | KotlinUser.kt:25:50:25:69 | getInnerNotGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric | +| JavaUser.java:25:61:25:101 | getInnerGeneric(...) | KotlinUser.kt:26:46:26:62 | getInnerGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | getInnerGeneric | +| JavaUser.java:28:83:28:110 | getVisibleBecauseInner(...) | KotlinUser.kt:29:35:29:58 | getVisibleBecauseInner(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInner | +| JavaUser.java:29:136:29:171 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:43:30:74 | getVisibleBecauseInnerIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInnerIndirect | +| JavaUser.java:30:83:30:114 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:39:31:66 | getNotVisibleBecauseStatic(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStatic | +| JavaUser.java:31:140:31:179 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:47:32:82 | getNotVisibleBecauseStaticIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStaticIndirect | javaKotlinConstructorAgreement | JavaUser.java:7:52:7:110 | new InnerGeneric(...) | KotlinUser.kt:9:33:9:63 | new InnerGeneric(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | | JavaUser.java:7:53:7:79 | new OuterGeneric(...) | KotlinUser.kt:9:13:9:31 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | @@ -224,12 +305,19 @@ javaKotlinConstructorAgreement | JavaUser.java:10:48:10:74 | new OuterGeneric(...) | KotlinUser.kt:10:14:10:32 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | | JavaUser.java:10:48:10:74 | new OuterGeneric(...) | KotlinUser.kt:11:13:11:31 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | | JavaUser.java:11:48:11:73 | new OuterGeneric(...) | KotlinUser.kt:12:14:12:35 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | +| JavaUser.java:11:48:11:73 | new OuterGeneric(...) | KotlinUser.kt:25:27:25:48 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | | JavaUser.java:12:46:12:95 | new InnerGeneric(...) | KotlinUser.kt:13:31:13:52 | new InnerGeneric(...) | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | | JavaUser.java:12:47:12:67 | new OuterNotGeneric(...) | KotlinUser.kt:13:13:13:29 | new OuterNotGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | OuterNotGeneric | +| JavaUser.java:12:47:12:67 | new OuterNotGeneric(...) | KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | OuterNotGeneric | | JavaUser.java:13:49:13:111 | new InnerStaticGeneric(...) | KotlinUser.kt:14:26:14:63 | new InnerStaticGeneric(...) | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | InnerStaticGeneric | | JavaUser.java:14:103:14:248 | new InnerManyParams(...) | KotlinUser.kt:15:69:15:100 | new InnerManyParams(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | InnerManyParams | | JavaUser.java:14:104:14:200 | new MiddleManyParams(...) | KotlinUser.kt:15:41:15:67 | new MiddleManyParams(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams.class:0:0:0:0 | MiddleManyParams | | JavaUser.java:14:105:14:152 | new OuterManyParams(...) | KotlinUser.kt:15:13:15:39 | new OuterManyParams(...) | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | +| JavaUser.java:24:61:24:86 | new OuterGeneric(...) | KotlinUser.kt:12:14:12:35 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | +| JavaUser.java:24:61:24:86 | new OuterGeneric(...) | KotlinUser.kt:25:27:25:48 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | +| JavaUser.java:25:62:25:82 | new OuterNotGeneric(...) | KotlinUser.kt:13:13:13:29 | new OuterNotGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | OuterNotGeneric | +| JavaUser.java:25:62:25:82 | new OuterNotGeneric(...) | KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | OuterNotGeneric | +| JavaUser.java:27:39:27:71 | new TypeParamVisibility(...) | KotlinUser.kt:28:15:28:43 | new TypeParamVisibility(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | javaKotlinLocalTypeAgreement | JavaUser.java:7:5:7:111 | InnerGeneric a | KotlinUser.kt:9:5:9:63 | InnerGeneric a | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | | JavaUser.java:7:5:7:111 | InnerGeneric a | KotlinUser.kt:10:5:10:65 | InnerGeneric a2 | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | @@ -239,9 +327,20 @@ javaKotlinLocalTypeAgreement | JavaUser.java:9:5:9:139 | InnerGeneric a3 | KotlinUser.kt:10:5:10:65 | InnerGeneric a2 | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | | JavaUser.java:10:5:10:98 | InnerNotGeneric<> b | KotlinUser.kt:11:5:11:49 | InnerNotGeneric<> b | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric<> | | JavaUser.java:11:5:11:97 | InnerNotGeneric<> b2 | KotlinUser.kt:12:5:12:53 | InnerNotGeneric<> b2 | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric<> | +| JavaUser.java:11:5:11:97 | InnerNotGeneric<> b2 | KotlinUser.kt:25:5:25:69 | InnerNotGeneric<> innerGetterTest | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric<> | | JavaUser.java:12:5:12:96 | InnerGeneric c | KotlinUser.kt:13:5:13:52 | InnerGeneric c | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | +| JavaUser.java:12:5:12:96 | InnerGeneric c | KotlinUser.kt:26:5:26:62 | InnerGeneric innerGetterTest2 | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | | JavaUser.java:13:5:13:112 | InnerStaticGeneric d | KotlinUser.kt:14:5:14:63 | InnerStaticGeneric d | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | InnerStaticGeneric | | JavaUser.java:14:5:14:249 | InnerManyParams e | KotlinUser.kt:15:5:15:100 | InnerManyParams e | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | InnerManyParams | +| JavaUser.java:24:5:24:109 | InnerNotGeneric<> innerGetterTest | KotlinUser.kt:12:5:12:53 | InnerNotGeneric<> b2 | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric<> | +| JavaUser.java:24:5:24:109 | InnerNotGeneric<> innerGetterTest | KotlinUser.kt:25:5:25:69 | InnerNotGeneric<> innerGetterTest | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | InnerNotGeneric<> | +| JavaUser.java:25:5:25:102 | InnerGeneric innerGetterTest2 | KotlinUser.kt:13:5:13:52 | InnerGeneric c | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | +| JavaUser.java:25:5:25:102 | InnerGeneric innerGetterTest2 | KotlinUser.kt:26:5:26:62 | InnerGeneric innerGetterTest2 | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | +| JavaUser.java:27:5:27:72 | TypeParamVisibility tpv | KotlinUser.kt:28:5:28:43 | TypeParamVisibility tpv | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | +| JavaUser.java:28:5:28:111 | VisibleBecauseInner visibleBecauseInner | KotlinUser.kt:29:5:29:58 | VisibleBecauseInner visibleBecauseInner | extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInner.class:0:0:0:0 | VisibleBecauseInner | +| JavaUser.java:29:5:29:172 | VisibleBecauseInnerIndirect visibleBecauseInnerIndirect | KotlinUser.kt:30:5:30:74 | VisibleBecauseInnerIndirect visibleBecauseInnerIndirect | extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer$VisibleBecauseInnerIndirect.class:0:0:0:0 | VisibleBecauseInnerIndirect | +| JavaUser.java:30:5:30:115 | NotVisibleBecauseStatic notVisibleBecauseStatic | KotlinUser.kt:31:5:31:66 | NotVisibleBecauseStatic notVisibleBecauseStatic | extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStatic.class:0:0:0:0 | NotVisibleBecauseStatic | +| JavaUser.java:31:5:31:180 | NotVisibleBecauseStaticIndirect notVisibleBecauseStaticIndirect | KotlinUser.kt:32:5:32:82 | NotVisibleBecauseStaticIndirect notVisibleBecauseStaticIndirect | extlib.jar/extlib/TypeParamVisibility$NotVisibleBecauseStaticIndirectContainer$NotVisibleBecauseStaticIndirect.class:0:0:0:0 | NotVisibleBecauseStaticIndirect | #select | JavaUser.java:7:52:7:110 | new InnerGeneric(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | JavaUser.java:7:99:7:104 | String | | JavaUser.java:7:53:7:79 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | JavaUser.java:7:70:7:76 | Integer | @@ -259,6 +358,8 @@ javaKotlinLocalTypeAgreement | JavaUser.java:14:104:14:200 | new MiddleManyParams(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams.class:0:0:0:0 | MiddleManyParams | extlib.jar/extlib/OuterManyParams$MiddleManyParams.class:0:0:0:0 | MiddleManyParams | JavaUser.java:14:183:14:188 | Double | | JavaUser.java:14:105:14:152 | new OuterManyParams(...) | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | JavaUser.java:14:125:14:131 | Integer | | JavaUser.java:14:105:14:152 | new OuterManyParams(...) | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | extlib.jar/extlib/OuterManyParams.class:0:0:0:0 | OuterManyParams | JavaUser.java:14:134:14:139 | String | +| JavaUser.java:24:61:24:86 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | JavaUser.java:24:78:24:83 | String | +| JavaUser.java:27:39:27:71 | new TypeParamVisibility(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | JavaUser.java:27:63:27:68 | String | | KotlinUser.kt:9:13:9:31 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | KotlinUser.kt:9:13:9:31 | Integer | | KotlinUser.kt:9:33:9:63 | new InnerGeneric(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | KotlinUser.kt:9:33:9:63 | String | | KotlinUser.kt:10:14:10:32 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | KotlinUser.kt:10:14:10:32 | Integer | @@ -273,3 +374,5 @@ javaKotlinLocalTypeAgreement | KotlinUser.kt:15:41:15:67 | new MiddleManyParams(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams.class:0:0:0:0 | MiddleManyParams | extlib.jar/extlib/OuterManyParams$MiddleManyParams.class:0:0:0:0 | MiddleManyParams | KotlinUser.kt:15:41:15:67 | Float | | KotlinUser.kt:15:69:15:100 | new InnerManyParams(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | InnerManyParams | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | InnerManyParams | KotlinUser.kt:15:69:15:100 | Long | | KotlinUser.kt:15:69:15:100 | new InnerManyParams(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | InnerManyParams | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | InnerManyParams | KotlinUser.kt:15:69:15:100 | Short | +| KotlinUser.kt:25:27:25:48 | new OuterGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric | KotlinUser.kt:25:27:25:48 | String | +| KotlinUser.kt:28:15:28:43 | new TypeParamVisibility(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility | KotlinUser.kt:28:15:28:43 | String | From 133a6caaa386f17770f3b202d45fda55c787ed8a Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Thu, 30 Jun 2022 12:03:53 +0200 Subject: [PATCH 237/736] Swift: cleanup output rewriting code --- swift/extractor/SwiftExtractor.cpp | 2 +- swift/extractor/SwiftExtractorConfiguration.h | 31 +++++----- swift/extractor/SwiftOutputRewrite.cpp | 60 +++++++++---------- swift/extractor/main.cpp | 5 -- 4 files changed, 45 insertions(+), 53 deletions(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 175975be8ed..91d25ce9c1b 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -76,7 +76,7 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, auto name = getTrapFilename(module, primaryFile); llvm::StringRef filename(name); std::string tempTrapName = filename.str() + '.' + std::to_string(getpid()) + ".trap"; - llvm::SmallString tempTrapPath(config.tempTrapDir); + llvm::SmallString tempTrapPath(config.getTempTrapDir()); llvm::sys::path::append(tempTrapPath, tempTrapName); llvm::StringRef tempTrapParent = llvm::sys::path::parent_path(tempTrapPath); diff --git a/swift/extractor/SwiftExtractorConfiguration.h b/swift/extractor/SwiftExtractorConfiguration.h index 230ee661ac2..3365da5f268 100644 --- a/swift/extractor/SwiftExtractorConfiguration.h +++ b/swift/extractor/SwiftExtractorConfiguration.h @@ -12,26 +12,25 @@ struct SwiftExtractorConfiguration { // A temporary directory that exists during database creation, but is deleted once the DB is // finalized. std::string scratchDir; - // A temporary directory that contains TRAP files before they are moved into their final destination. - // Subdirectory of the scratchDir. - std::string tempTrapDir; - - // VFS (virtual file system) support. - // A temporary directory that contains VFS files used during extraction. - // Subdirectory of the scratchDir. - std::string VFSDir; - // A temporary directory that contains temp VFS files before they moved into VFSDir. - // Subdirectory of the scratchDir. - std::string tempVFSDir; - - // A temporary directory that contains build artifacts generated by the extractor during the - // overall extraction process. - // Subdirectory of the scratchDir. - std::string tempArtifactDir; // The original arguments passed to the extractor. Used for debugging. std::vector frontendOptions; // The patched arguments passed to the swift::performFrontend/ Used for debugging. std::vector patchedFrontendOptions; + + // A temporary directory that contains TRAP files before they are moved into their final + // destination. + std::string getTempTrapDir() const { return scratchDir + "/swift-trap-temp"; } + + // VFS (virtual file system) support. + // A temporary directory that contains VFS files used during extraction. + std::string getVFSDir() const { return scratchDir + "/swift-vfs"; } + + // A temporary directory that contains temp VFS files before they moved into VFSDir. + std::string getTempVFSDir() const { return scratchDir + "/swift-vfs-temp"; } + + // A temporary directory that contains build artifacts generated by the extractor during the + // overall extraction process. + std::string getTempArtifactDir() const { return scratchDir + "/swift-extraction-artifacts"; } }; } // namespace codeql diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp index 978f8417f81..35a38512ff8 100644 --- a/swift/extractor/SwiftOutputRewrite.cpp +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -19,11 +19,12 @@ static std::optional rewriteOutputFileMap( const std::string& outputFileMapPath, const std::vector& inputs, std::unordered_map& remapping) { - auto newPath = config.tempArtifactDir + '/' + outputFileMapPath; + auto newMapPath = config.getTempArtifactDir() + '/' + outputFileMapPath; // TODO: do not assume absolute path for the second parameter auto outputMapOrError = swift::OutputFileMap::loadFromPath(outputFileMapPath, ""); if (!outputMapOrError) { + std::cerr << "Cannot load output map: '" << outputFileMapPath << "'\n"; return std::nullopt; } auto oldOutputMap = outputMapOrError.get(); @@ -39,13 +40,13 @@ static std::optional rewriteOutputFileMap( newMap.copyFrom(*oldMap); for (auto& entry : newMap) { auto oldPath = entry.getSecond(); - auto newPath = config.tempArtifactDir + '/' + oldPath; + auto newPath = config.getTempArtifactDir() + '/' + oldPath; entry.getSecond() = newPath; remapping[oldPath] = newPath; } } std::error_code ec; - llvm::SmallString filepath(newPath); + llvm::SmallString filepath(newMapPath); llvm::StringRef parent = llvm::sys::path::parent_path(filepath); if (std::error_code ec = llvm::sys::fs::create_directories(parent)) { std::cerr << "Cannot create relocated output map dir: '" << parent.str() @@ -53,9 +54,9 @@ static std::optional rewriteOutputFileMap( return std::nullopt; } - llvm::raw_fd_ostream fd(newPath, ec, llvm::sys::fs::OF_None); + llvm::raw_fd_ostream fd(newMapPath, ec, llvm::sys::fs::OF_None); newOutputMap.write(fd, keys); - return newPath; + return newMapPath; } // This is an Xcode-specific workaround to produce alias names for an existing .swiftmodule file. @@ -132,30 +133,27 @@ static std::vector computeModuleAliases(llvm::StringRef modulePath, relocatedModulePath += "/Products/"; relocatedModulePath += destinationDir + '/'; - std::vector moduleLocations; + // clang-format off + std::vector moduleLocations = { + // First case + relocatedModulePath + moduleNameWithExt.str() + '/', + // Second case + relocatedModulePath + moduleName.str() + '/' + moduleNameWithExt.str() + '/', + // Third case + relocatedModulePath + moduleName.str() + '/' + moduleName.str() + ".framework/Modules/" + moduleNameWithExt.str() + '/', + }; + // clang-format on - std::string firstCase = relocatedModulePath; - firstCase += moduleNameWithExt.str() + '/'; - moduleLocations.push_back(firstCase); - - std::string secondCase = relocatedModulePath; - secondCase += moduleName.str() + '/'; - secondCase += moduleNameWithExt.str() + '/'; - moduleLocations.push_back(secondCase); - - std::string thirdCase = relocatedModulePath; - thirdCase += moduleName.str() + '/'; - thirdCase += moduleName.str() + ".framework/Modules/"; - thirdCase += moduleNameWithExt.str() + '/'; - moduleLocations.push_back(thirdCase); + std::vector archs({arch}); + if (!targetTriple.empty()) { + llvm::Triple triple(targetTriple); + archs.push_back(swift::getTargetSpecificModuleTriple(triple).normalize()); + } std::vector aliases; for (auto& location : moduleLocations) { - aliases.push_back(location + arch + ".swiftmodule"); - if (!targetTriple.empty()) { - llvm::Triple triple(targetTriple); - auto moduleTriple = swift::getTargetSpecificModuleTriple(triple); - aliases.push_back(location + moduleTriple.normalize() + ".swiftmodule"); + for (auto& a : archs) { + aliases.push_back(location + a + ".swiftmodule"); } } @@ -195,7 +193,7 @@ std::unordered_map rewriteOutputsInPlace( for (size_t i = 0; i < CLIArgs.size(); i++) { if (pathRewriteOptions.count(CLIArgs[i])) { auto oldPath = CLIArgs[i + 1]; - auto newPath = config.tempArtifactDir + '/' + oldPath; + auto newPath = config.getTempArtifactDir() + '/' + oldPath; CLIArgs[++i] = newPath; newLocations.push_back(newPath); @@ -261,12 +259,12 @@ void storeRemappingForVFS(const SwiftExtractorConfiguration& config, return; } - if (std::error_code ec = llvm::sys::fs::create_directories(config.tempVFSDir)) { + if (std::error_code ec = llvm::sys::fs::create_directories(config.getTempVFSDir())) { std::cerr << "Cannot create temp VFS directory: " << ec.message() << "\n"; return; } - if (std::error_code ec = llvm::sys::fs::create_directories(config.VFSDir)) { + if (std::error_code ec = llvm::sys::fs::create_directories(config.getVFSDir())) { std::cerr << "Cannot create VFS directory: " << ec.message() << "\n"; return; } @@ -274,7 +272,7 @@ void storeRemappingForVFS(const SwiftExtractorConfiguration& config, // Constructing the VFS yaml file in a temp folder so that the other process doesn't read it // while it is not complete // TODO: Pick a more robust way to not collide with files from other processes - auto tempVfsPath = config.tempVFSDir + '/' + std::to_string(getpid()) + "-vfs.yaml"; + auto tempVfsPath = config.getTempVFSDir() + '/' + std::to_string(getpid()) + "-vfs.yaml"; std::error_code ec; llvm::raw_fd_ostream fd(tempVfsPath, ec, llvm::sys::fs::OF_None); if (ec) { @@ -299,7 +297,7 @@ void storeRemappingForVFS(const SwiftExtractorConfiguration& config, fd << "}\n"; fd.flush(); - auto vfsPath = config.VFSDir + '/' + std::to_string(getpid()) + "-vfs.yaml"; + auto vfsPath = config.getVFSDir() + '/' + std::to_string(getpid()) + "-vfs.yaml"; if (std::error_code ec = llvm::sys::fs::rename(tempVfsPath, vfsPath)) { std::cerr << "Cannot move temp VFS file '" << tempVfsPath << "' -> '" << vfsPath << "': " << ec.message() << "\n"; @@ -308,7 +306,7 @@ void storeRemappingForVFS(const SwiftExtractorConfiguration& config, } std::vector collectVFSFiles(const SwiftExtractorConfiguration& config) { - auto vfsDir = config.VFSDir + '/'; + auto vfsDir = config.getVFSDir() + '/'; if (!llvm::sys::fs::exists(vfsDir)) { return {}; } diff --git a/swift/extractor/main.cpp b/swift/extractor/main.cpp index 59bbfa690f0..bde37b0ccb5 100644 --- a/swift/extractor/main.cpp +++ b/swift/extractor/main.cpp @@ -58,11 +58,6 @@ int main(int argc, char** argv) { configuration.sourceArchiveDir = getenv_or("CODEQL_EXTRACTOR_SWIFT_SOURCE_ARCHIVE_DIR", "."); configuration.scratchDir = getenv_or("CODEQL_EXTRACTOR_SWIFT_SCRATCH_DIR", "."); - configuration.tempTrapDir = configuration.scratchDir + "/swift-trap-temp"; - configuration.VFSDir = configuration.scratchDir + "/swift-vfs"; - configuration.tempVFSDir = configuration.scratchDir + "/swift-vfs-temp"; - configuration.tempArtifactDir = configuration.scratchDir + "/swift-extraction-artifacts"; - configuration.frontendOptions.reserve(argc - 1); for (int i = 1; i < argc; i++) { configuration.frontendOptions.push_back(argv[i]); From 5a04d6296999ed2c84119717276c1b82cb282982 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Thu, 30 Jun 2022 12:32:03 +0200 Subject: [PATCH 238/736] Swift: cleanup extraction --- swift/extractor/SwiftExtractor.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 91d25ce9c1b..65f0ae150cc 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -151,8 +151,7 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, } } -void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, - swift::CompilerInstance& compiler) { +static std::unordered_set collectInputFilenames(swift::CompilerInstance& compiler) { // The frontend can be called in many different ways. // At each invocation we only extract system and builtin modules and any input source files that // have an output associated with them. @@ -163,7 +162,10 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, sourceFiles.insert(input.getFileName()); } } + return sourceFiles; +} +static std::unordered_set collectModules(swift::CompilerInstance& compiler) { // getASTContext().getLoadedModules() does not provide all the modules available within the // program. // We need to iterate over all the imported modules (recursively) to see the whole "universe." @@ -187,8 +189,15 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, } } } + return allModules; +} - for (auto& module : allModules) { +void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, + swift::CompilerInstance& compiler) { + auto inputFiles = collectInputFilenames(compiler); + auto modules = collectModules(compiler); + + for (auto& module : modules) { // We only extract system and builtin modules here as the other "user" modules can be built // during the build process and then re-used at a later stage. In this case, we extract the // user code twice: once during the module build in a form of a source file, and then as @@ -201,7 +210,7 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, } else { for (auto file : module->getFiles()) { auto sourceFile = llvm::dyn_cast(file); - if (!sourceFile || sourceFiles.count(sourceFile->getFilename().str()) == 0) { + if (!sourceFile || inputFiles.count(sourceFile->getFilename().str()) == 0) { continue; } archiveFile(config, *sourceFile); From 2bd25fc58945d0b32019f06dc0964add5db5f822 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Jun 2022 17:13:17 +0100 Subject: [PATCH 239/736] Swift: Add QLDoc. --- .../src/queries/Security/CWE-135/StringLengthConflation.ql | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 2bccba41b25..9db5eaca5fa 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -14,6 +14,11 @@ import swift import codeql.swift.dataflow.DataFlow import DataFlow::PathGraph +/** + * A configuration for tracking string lengths originating from source that is + * a `String` or an `NSString` object, to a sink of a different kind that + * expects an incompatible measure of length. + */ class StringLengthConflationConfiguration extends DataFlow::Configuration { StringLengthConflationConfiguration() { this = "StringLengthConflationConfiguration" } From 0251fb2d3538a22c142cc6b15ddcb9791b6ed4ef Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 30 Jun 2022 11:50:32 +0100 Subject: [PATCH 240/736] Swift: Add result annotations to test. --- .../CWE-135/StringLengthConflation.swift | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index b8174455f9d..c104d71f886 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -50,28 +50,28 @@ func test(s: String) { // --- constructing a String.Index from integer --- let ix1 = String.Index(encodedOffset: s.count) // GOOD - let ix2 = String.Index(encodedOffset: ns.length) // BAD: NSString length used in String.Index - let ix3 = String.Index(encodedOffset: s.utf8.count) // BAD: String.utf8 length used in String.Index - let ix4 = String.Index(encodedOffset: s.utf16.count) // BAD: String.utf16 length used in String.Index - let ix5 = String.Index(encodedOffset: s.unicodeScalars.count) // BAD: string.unicodeScalars length used in String.Index + let ix2 = String.Index(encodedOffset: ns.length) // BAD: NSString length used in String.Index [NOT DETECTED] + let ix3 = String.Index(encodedOffset: s.utf8.count) // BAD: String.utf8 length used in String.Index [NOT DETECTED] + let ix4 = String.Index(encodedOffset: s.utf16.count) // BAD: String.utf16 length used in String.Index [NOT DETECTED] + let ix5 = String.Index(encodedOffset: s.unicodeScalars.count) // BAD: string.unicodeScalars length used in String.Index [NOT DETECTED] print("String.Index '\(ix1.encodedOffset)' / '\(ix2.encodedOffset)' '\(ix3.encodedOffset)' '\(ix4.encodedOffset)' '\(ix5.encodedOffset)'") let ix6 = s.index(s.startIndex, offsetBy: s.count / 2) // GOOD - let ix7 = s.index(s.startIndex, offsetBy: ns.length / 2) // BAD: NSString length used in String.Index + let ix7 = s.index(s.startIndex, offsetBy: ns.length / 2) // BAD: NSString length used in String.Index [NOT DETECTED] print("index '\(ix6.encodedOffset)' / '\(ix7.encodedOffset)'") var ix8 = s.startIndex s.formIndex(&ix8, offsetBy: s.count / 2) // GOOD var ix9 = s.startIndex - s.formIndex(&ix9, offsetBy: ns.length / 2) // BAD: NSString length used in String.Index + s.formIndex(&ix9, offsetBy: ns.length / 2) // BAD: NSString length used in String.Index [NOT DETECTED] print("formIndex '\(ix8.encodedOffset)' / '\(ix9.encodedOffset)'") // --- constructing an NSRange from integers --- let range1 = NSMakeRange(0, ns.length) // GOOD let range2 = NSMakeRange(0, s.count) // BAD: String length used in NSMakeRange - let range3 = NSMakeRange(0, s.reversed().count) // BAD: String length used in NSMakeRange - let range4 = NSMakeRange(0, s.distance(from: s.startIndex, to: s.endIndex)) // BAD: String length used in NSMakeRange + let range3 = NSMakeRange(0, s.reversed().count) // BAD: String length used in NSMakeRange [NOT DETECTED] + let range4 = NSMakeRange(0, s.distance(from: s.startIndex, to: s.endIndex)) // BAD: String length used in NSMakeRange [NOT DETECTED] print("NSMakeRange '\(range1.description)' / '\(range2.description)' '\(range3.description)' '\(range4.description)'") let range5 = NSRange(location: 0, length: ns.length) // GOOD @@ -81,43 +81,43 @@ func test(s: String) { // --- String operations using an integer directly --- let str1 = s.dropFirst(s.count - 1) // GOOD - let str2 = s.dropFirst(ns.length - 1) // BAD: NSString length used in String + let str2 = s.dropFirst(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] print("dropFirst '\(str1)' / '\(str2)'") let str3 = s.dropLast(s.count - 1) // GOOD - let str4 = s.dropLast(ns.length - 1) // BAD: NSString length used in String + let str4 = s.dropLast(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] print("dropLast '\(str3)' / '\(str4)'") let str5 = s.prefix(s.count - 1) // GOOD - let str6 = s.prefix(ns.length - 1) // BAD: NSString length used in String + let str6 = s.prefix(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] print("prefix '\(str5)' / '\(str6)'") let str7 = s.suffix(s.count - 1) // GOOD - let str8 = s.suffix(ns.length - 1) // BAD: NSString length used in String + let str8 = s.suffix(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] print("suffix '\(str7)' / '\(str8)'") let nstr1 = ns.character(at: ns.length - 1) // GOOD let nmstr1 = nms.character(at: nms.length - 1) // GOOD - let nstr2 = ns.character(at: s.count - 1) // BAD: String length used in NSString - let nmstr2 = nms.character(at: s.count - 1) // BAD: String length used in NString + let nstr2 = ns.character(at: s.count - 1) // BAD: String length used in NSString [NOT DETECTED] + let nmstr2 = nms.character(at: s.count - 1) // BAD: String length used in NString [NOT DETECTED] print("character '\(nstr1)' '\(nmstr1)' / '\(nstr2)' '\(nmstr2)'") let nstr3 = ns.substring(from: ns.length - 1) // GOOD let nmstr3 = nms.substring(from: nms.length - 1) // GOOD - let nstr4 = ns.substring(from: s.count - 1) // BAD: String length used in NSString - let nmstr4 = nms.substring(from: s.count - 1) // BAD: String length used in NString + let nstr4 = ns.substring(from: s.count - 1) // BAD: String length used in NSString [NOT DETECTED] + let nmstr4 = nms.substring(from: s.count - 1) // BAD: String length used in NString [NOT DETECTED] print("substring from '\(nstr3)' '\(nmstr3)' / '\(nstr4)' '\(nmstr4)'") let nstr5 = ns.substring(to: ns.length - 1) // GOOD let nmstr5 = nms.substring(to: nms.length - 1) // GOOD - let nstr6 = ns.substring(to: s.count - 1) // BAD: String length used in NSString - let nmstr6 = nms.substring(to: s.count - 1) // BAD: String length used in NString + let nstr6 = ns.substring(to: s.count - 1) // BAD: String length used in NSString [NOT DETECTED] + let nmstr6 = nms.substring(to: s.count - 1) // BAD: String length used in NString [NOT DETECTED] print("substring to '\(nstr5)' '\(nmstr5)' / '\(nstr6)' '\(nmstr6)'") let nmstr7 = NSMutableString(string: s) nmstr7.insert("*", at: nms.length - 1) // GOOD let nmstr8 = NSMutableString(string: s) - nmstr8.insert("*", at: s.count - 1) // BAD: String length used in NSString + nmstr8.insert("*", at: s.count - 1) // BAD: String length used in NSString [NOT DETECTED] print("insert '\(nmstr7)' / '\(nmstr8)'") } From 68c76006bdc04407e4c17968e9d989e68571affb Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 30 Jun 2022 11:48:08 +0100 Subject: [PATCH 241/736] Swift: Allow trivial taint-like flow. --- .../CWE-135/StringLengthConflation.ql | 6 ++++ .../CWE-135/StringLengthConflation.expected | 28 +++++++++++++++++++ .../CWE-135/StringLengthConflation.swift | 14 +++++----- 3 files changed, 41 insertions(+), 7 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 9db5eaca5fa..a4e731e18ea 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -84,6 +84,12 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { flowstate = "String" // `String` length flowing into `NSString` ) } + + override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + // allow flow through `+` and `-`. + node2.asExpr().(AddExpr).getAnOperand() = node1.asExpr() or + node2.asExpr().(SubExpr).getAnOperand() = node1.asExpr() + } } from diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index 0dd91ca7b53..1bb4de15325 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -1,8 +1,36 @@ edges +| StringLengthConflation.swift:101:34:101:36 | .count : | StringLengthConflation.swift:101:34:101:44 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:102:36:102:38 | .count : | StringLengthConflation.swift:102:36:102:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:107:36:107:38 | .count : | StringLengthConflation.swift:107:36:107:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:108:38:108:40 | .count : | StringLengthConflation.swift:108:38:108:48 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:113:34:113:36 | .count : | StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:114:36:114:38 | .count : | StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:120:28:120:30 | .count : | StringLengthConflation.swift:120:28:120:38 | ... call to -(_:_:) ... | nodes | StringLengthConflation.swift:72:33:72:35 | .count | semmle.label | .count | | StringLengthConflation.swift:78:47:78:49 | .count | semmle.label | .count | +| StringLengthConflation.swift:101:34:101:36 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:101:34:101:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:102:36:102:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:102:36:102:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:107:36:107:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:107:36:107:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:108:38:108:40 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:108:38:108:48 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:113:34:113:36 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:114:36:114:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:120:28:120:30 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:120:28:120:38 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | subpaths #select | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:101:34:101:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:101:34:101:36 | .count : | StringLengthConflation.swift:101:34:101:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:102:36:102:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:102:36:102:38 | .count : | StringLengthConflation.swift:102:36:102:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:107:36:107:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:107:36:107:38 | .count : | StringLengthConflation.swift:107:36:107:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:108:38:108:48 | ... call to -(_:_:) ... | StringLengthConflation.swift:108:38:108:40 | .count : | StringLengthConflation.swift:108:38:108:48 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:113:34:113:36 | .count : | StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:114:36:114:38 | .count : | StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:120:28:120:38 | ... call to -(_:_:) ... | StringLengthConflation.swift:120:28:120:30 | .count : | StringLengthConflation.swift:120:28:120:38 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index c104d71f886..8cb698009b6 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -98,26 +98,26 @@ func test(s: String) { let nstr1 = ns.character(at: ns.length - 1) // GOOD let nmstr1 = nms.character(at: nms.length - 1) // GOOD - let nstr2 = ns.character(at: s.count - 1) // BAD: String length used in NSString [NOT DETECTED] - let nmstr2 = nms.character(at: s.count - 1) // BAD: String length used in NString [NOT DETECTED] + let nstr2 = ns.character(at: s.count - 1) // BAD: String length used in NSString + let nmstr2 = nms.character(at: s.count - 1) // BAD: String length used in NString print("character '\(nstr1)' '\(nmstr1)' / '\(nstr2)' '\(nmstr2)'") let nstr3 = ns.substring(from: ns.length - 1) // GOOD let nmstr3 = nms.substring(from: nms.length - 1) // GOOD - let nstr4 = ns.substring(from: s.count - 1) // BAD: String length used in NSString [NOT DETECTED] - let nmstr4 = nms.substring(from: s.count - 1) // BAD: String length used in NString [NOT DETECTED] + let nstr4 = ns.substring(from: s.count - 1) // BAD: String length used in NSString + let nmstr4 = nms.substring(from: s.count - 1) // BAD: String length used in NString print("substring from '\(nstr3)' '\(nmstr3)' / '\(nstr4)' '\(nmstr4)'") let nstr5 = ns.substring(to: ns.length - 1) // GOOD let nmstr5 = nms.substring(to: nms.length - 1) // GOOD - let nstr6 = ns.substring(to: s.count - 1) // BAD: String length used in NSString [NOT DETECTED] - let nmstr6 = nms.substring(to: s.count - 1) // BAD: String length used in NString [NOT DETECTED] + let nstr6 = ns.substring(to: s.count - 1) // BAD: String length used in NSString + let nmstr6 = nms.substring(to: s.count - 1) // BAD: String length used in NString print("substring to '\(nstr5)' '\(nmstr5)' / '\(nstr6)' '\(nmstr6)'") let nmstr7 = NSMutableString(string: s) nmstr7.insert("*", at: nms.length - 1) // GOOD let nmstr8 = NSMutableString(string: s) - nmstr8.insert("*", at: s.count - 1) // BAD: String length used in NSString [NOT DETECTED] + nmstr8.insert("*", at: s.count - 1) // BAD: String length used in NSString print("insert '\(nmstr7)' / '\(nmstr8)'") } From bfdb21d5517e57a13513c2b41891ce8623d90614 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 29 Jun 2022 21:54:41 +0100 Subject: [PATCH 242/736] Kotlin: support JvmStatic annotation This makes non-companion object methods into static methods, and for companion objects introduces static proxy methods that call the companion instance method. Note this doesn't quite implement what kotlinc does, since it will also eliminate getters and setters by promoting an object field into a static field, but our translation is simpler and only differs in private members' details. --- .../src/main/kotlin/KotlinFileExtractor.kt | 315 ++++++++++++------ .../src/main/kotlin/KotlinUsesExtractor.kt | 2 +- 2 files changed, 222 insertions(+), 95 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index a0e3004985a..89e61b4ca96 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -406,6 +406,8 @@ open class KotlinFileExtractor( extractDeclInitializers(c.declarations, false) { Pair(blockId, obinitId) } } + val jvmStaticFqName = FqName("kotlin.jvm.JvmStatic") + fun extractClassSource(c: IrClass, extractDeclarations: Boolean, extractStaticInitializer: Boolean, extractPrivateMembers: Boolean, extractFunctionBodies: Boolean): Label { with("class source", c) { DeclarationStackAdjuster(c).use { @@ -442,9 +444,10 @@ open class KotlinFileExtractor( c.typeParameters.mapIndexed { idx, param -> extractTypeParameter(param, idx, javaClass?.typeParameters?.getOrNull(idx)) } if (extractDeclarations) { - c.declarations.map { extractDeclaration(it, extractPrivateMembers = extractPrivateMembers, extractFunctionBodies = extractFunctionBodies) } + c.declarations.forEach { extractDeclaration(it, extractPrivateMembers = extractPrivateMembers, extractFunctionBodies = extractFunctionBodies) } if (extractStaticInitializer) extractStaticInitializer(c, id) + extractJvmStaticProxyMethods(c, id, extractPrivateMembers, extractFunctionBodies) } if (c.isNonCompanionObject) { // For `object MyObject { ... }`, the .class has an @@ -472,6 +475,75 @@ open class KotlinFileExtractor( } } + private fun extractJvmStaticProxyMethods(c: IrClass, classId: Label, extractPrivateMembers: Boolean, extractFunctionBodies: Boolean) { + + // Add synthetic forwarders for any JvmStatic methods or properties: + val companionObject = c.companionObject() ?: return + + val cType = c.typeWith() + val companionType = companionObject.typeWith() + + fun makeProxyFunction(f: IrFunction) { + // Emit a function in class `c` that delegates to the same function defined on `c.CompanionInstance`. + val proxyFunctionId = tw.getLabelFor(getFunctionLabel(f, classId, listOf())) + // We extract the function prototype with its ID overridden to belong to `c` not the companion object, + // but suppress outputting the body, which we will replace with a delegating call below. + forceExtractFunction(f, classId, extractBody = false, extractMethodAndParameterTypeAccesses = extractFunctionBodies, typeSubstitution = null, classTypeArgsIncludingOuterClasses = listOf(), idOverride = proxyFunctionId, locOverride = null) + addModifiers(proxyFunctionId, "static") + if (extractFunctionBodies) { + val realFunctionLocId = tw.getLocation(f) + extractExpressionBody(proxyFunctionId, realFunctionLocId).also { returnId -> + extractRawMethodAccess( + f, + realFunctionLocId, + f.returnType, + proxyFunctionId, + returnId, + 0, + returnId, + f.valueParameters.size, + { argParent, idxOffset -> + f.valueParameters.forEachIndexed { idx, param -> + val syntheticParamId = useValueParameter(param, proxyFunctionId) + extractVariableAccess(syntheticParamId, param.type, realFunctionLocId, argParent, idxOffset + idx, proxyFunctionId, returnId) + } + }, + companionType, + { callId -> + val companionField = useCompanionObjectClassInstance(companionObject)?.id + extractVariableAccess(companionField, companionType, realFunctionLocId, callId, -1, proxyFunctionId, returnId).also { varAccessId -> + extractTypeAccessRecursive(cType, realFunctionLocId, varAccessId, -1, proxyFunctionId, returnId) + } + }, + null + ) + } + } + } + + companionObject.declarations.forEach { + if (shouldExtractDecl(it, extractPrivateMembers)) { + val wholeDeclAnnotated = it.hasAnnotation(jvmStaticFqName) + when(it) { + is IrFunction -> { + if (wholeDeclAnnotated) + makeProxyFunction(it) + } + is IrProperty -> { + it.getter?.let { getter -> + if (wholeDeclAnnotated || getter.hasAnnotation(jvmStaticFqName)) + makeProxyFunction(getter) + } + it.setter?.let { setter -> + if (wholeDeclAnnotated || setter.hasAnnotation(jvmStaticFqName)) + makeProxyFunction(setter) + } + } + } + } + } + } + // If `parentClassTypeArguments` is null, the parent class is a raw type. private fun extractEnclosingClass(innerDeclaration: IrDeclaration, innerId: Label, innerLocId: Label, parentClassTypeArguments: List?) { with("enclosing class", innerDeclaration) { @@ -824,13 +896,13 @@ open class KotlinFileExtractor( } extractVisibility(f, id, f.visibility) + if (f.isInline) { addModifiers(id, "inline") } - if (isStaticFunction(f)) { + if (f.willExtractAsStatic) { addModifiers(id, "static") } - if (f is IrSimpleFunction && f.overriddenSymbols.isNotEmpty()) { addModifiers(id, "override") } @@ -1028,15 +1100,21 @@ open class KotlinFileExtractor( private fun extractExpressionBody(b: IrExpressionBody, callable: Label) { with("expression body", b) { - val blockId = tw.getFreshIdLabel() val locId = tw.getLocation(b) - tw.writeStmts_block(blockId, callable, 0, callable) - tw.writeHasLocation(blockId, locId) + extractExpressionBody(callable, locId).also { returnId -> + extractExpressionExpr(b.expression, callable, returnId, 0, returnId) + } + } + } - val returnId = tw.getFreshIdLabel() + fun extractExpressionBody(callable: Label, locId: Label): Label { + val blockId = tw.getFreshIdLabel() + tw.writeStmts_block(blockId, callable, 0, callable) + tw.writeHasLocation(blockId, locId) + + return tw.getFreshIdLabel().also { returnId -> tw.writeStmts_returnstmt(returnId, blockId, 0, callable) tw.writeHasLocation(returnId, locId) - extractExpressionExpr(b.expression, callable, returnId, 0, returnId) } } @@ -1307,10 +1385,48 @@ open class KotlinFileExtractor( typeArguments: List = listOf(), extractClassTypeArguments: Boolean = false) { + val locId = tw.getLocation(callsite) + + extractRawMethodAccess( + syntacticCallTarget, + locId, + callsite.type, + enclosingCallable, + callsiteParent, + childIdx, + enclosingStmt, + valueArguments.size, + { argParent, idxOffset -> extractCallValueArguments(argParent, valueArguments, enclosingStmt, enclosingCallable, idxOffset) }, + dispatchReceiver?.type, + dispatchReceiver?.let { { callId -> extractExpressionExpr(dispatchReceiver, enclosingCallable, callId, -1, enclosingStmt) } }, + extensionReceiver?.let { { argParent -> extractExpressionExpr(extensionReceiver, enclosingCallable, argParent, 0, enclosingStmt) } }, + typeArguments, + extractClassTypeArguments + ) + + } + + + fun extractRawMethodAccess( + syntacticCallTarget: IrFunction, + locId: Label, + returnType: IrType, + enclosingCallable: Label, + callsiteParent: Label, + childIdx: Int, + enclosingStmt: Label, + nValueArguments: Int, + extractValueArguments: (Label, Int) -> Unit, + drType: IrType?, + extractDispatchReceiver: ((Label) -> Unit)?, + extractExtensionReceiver: ((Label) -> Unit)?, + typeArguments: List = listOf(), + extractClassTypeArguments: Boolean = false) { + val callTarget = syntacticCallTarget.target.realOverrideTarget val id = tw.getFreshIdLabel() - val type = useType(callsite.type) - val locId = tw.getLocation(callsite) + val type = useType(returnType) + tw.writeExprs_methodaccess(id, type.javaResult.id, callsiteParent, childIdx) tw.writeExprsKotlinType(id, type.kotlinResult.id) tw.writeHasLocation(id, locId) @@ -1320,8 +1436,6 @@ open class KotlinFileExtractor( // type arguments at index -2, -3, ... extractTypeArguments(typeArguments, locId, id, enclosingCallable, enclosingStmt, -2, true) - val drType = dispatchReceiver?.type - val isFunctionInvoke = drType != null && drType is IrSimpleType && drType.isFunctionOrKFunction() @@ -1364,44 +1478,48 @@ open class KotlinFileExtractor( tw.writeCallableBinding(id, methodId) - if (dispatchReceiver != null) { - extractExpressionExpr(dispatchReceiver, enclosingCallable, id, -1, enclosingStmt) - } else if (isStaticFunction(callTarget)) { + if (callTarget.willExtractAsStatic) { extractStaticTypeAccessQualifier(callTarget, id, locId, enclosingCallable, enclosingStmt) + } else if (extractDispatchReceiver != null) { + extractDispatchReceiver(id) } } - val idxOffset = if (extensionReceiver != null) 1 else 0 + val idxOffset = if (extractExtensionReceiver != null) 1 else 0 val argParent = if (isBigArityFunctionInvoke) { - extractArrayCreationWithInitializer(id, valueArguments.size + idxOffset, locId, enclosingCallable, enclosingStmt) + extractArrayCreationWithInitializer(id, nValueArguments + idxOffset, locId, enclosingCallable, enclosingStmt) } else { id } - if (extensionReceiver != null) { - extractExpressionExpr(extensionReceiver, enclosingCallable, argParent, 0, enclosingStmt) + if (extractExtensionReceiver != null) { + extractExtensionReceiver(argParent) } - extractCallValueArguments(argParent, valueArguments, enclosingStmt, enclosingCallable, idxOffset) + extractValueArguments(argParent, idxOffset) } private fun extractStaticTypeAccessQualifier(target: IrDeclaration, parentExpr: Label, locId: Label, enclosingCallable: Label, enclosingStmt: Label) { - if (target.isStaticOfClass) { + if (target.willExtractAsStaticMemberOfClass) { extractTypeAccessRecursive(target.parentAsClass.toRawType(), locId, parentExpr, -1, enclosingCallable, enclosingStmt) - } else if (target.isStaticOfFile) { + } else if (target.willExtractAsStaticMemberOfFile) { extractTypeAccess(useFileClassType(target.parent as IrFile), locId, parentExpr, -1, enclosingCallable, enclosingStmt) } } - private val IrDeclaration.isStaticOfClass: Boolean - get() = this.isStatic && parent is IrClass + private val IrDeclaration.willExtractAsStaticMemberOfClass: Boolean + get() = this.willExtractAsStatic && parent is IrClass - private val IrDeclaration.isStaticOfFile: Boolean - get() = this.isStatic && parent is IrFile + private val IrDeclaration.willExtractAsStaticMemberOfFile: Boolean + get() = this.willExtractAsStatic && parent is IrFile - private val IrDeclaration.isStatic: Boolean - get() = this is IrSimpleFunction && dispatchReceiverParameter == null || + private fun isStaticAnnotatedNonCompanionMember(f: IrSimpleFunction) = + f.parentClassOrNull?.isNonCompanionObject == true && + (f.hasAnnotation(jvmStaticFqName) || f.correspondingPropertySymbol?.owner?.hasAnnotation(jvmStaticFqName) == true) + + private val IrDeclaration.willExtractAsStatic: Boolean + get() = this is IrSimpleFunction && (isStaticFunction(this) || isStaticAnnotatedNonCompanionMember(this)) || this is IrField && this.isStatic || this is IrEnumEntry @@ -2623,78 +2741,22 @@ open class KotlinFileExtractor( val exprParent = parent.expr(e, callable) val owner = e.symbol.owner if (owner is IrValueParameter && owner.index == -1 && !owner.isExtensionReceiver()) { - val id = tw.getFreshIdLabel() - val type = useType(e.type) - val locId = tw.getLocation(e) - tw.writeExprs_thisaccess(id, type.javaResult.id, exprParent.parent, exprParent.idx) - tw.writeExprsKotlinType(id, type.kotlinResult.id) - tw.writeHasLocation(id, locId) - tw.writeCallableEnclosingExpr(id, callable) - tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt) - - - fun extractTypeAccess(parent: IrClass){ - extractTypeAccessRecursive(parent.typeWith(listOf()), locId, id, 0, callable, exprParent.enclosingStmt) - } - - when(val ownerParent = owner.parent) { - is IrFunction -> { - if (ownerParent.dispatchReceiverParameter == owner && - ownerParent.extensionReceiverParameter != null) { - - val ownerParent2 = ownerParent.parent - if (ownerParent2 is IrClass){ - extractTypeAccess(ownerParent2) - } else { - logger.errorElement("Unhandled qualifier for this", e) - } - } - } - is IrClass -> { - if (ownerParent.thisReceiver == owner) { - extractTypeAccess(ownerParent) - } - } - else -> { - logger.errorElement("Unexpected owner parent for this access: " + ownerParent.javaClass, e) - } - } + extractThisAccess(e, exprParent, callable) } else { - val id = tw.getFreshIdLabel() - val type = useType(e.type) - val locId = tw.getLocation(e) - tw.writeExprs_varaccess(id, type.javaResult.id, exprParent.parent, exprParent.idx) - tw.writeExprsKotlinType(id, type.kotlinResult.id) - tw.writeHasLocation(id, locId) - tw.writeCallableEnclosingExpr(id, callable) - tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt) - - val vId = useValueDeclaration(owner) - if (vId != null) { - tw.writeVariableBinding(id, vId) - } + extractVariableAccess(useValueDeclaration(owner), e.type, tw.getLocation(e), exprParent.parent, exprParent.idx, callable, exprParent.enclosingStmt) } } is IrGetField -> { val exprParent = parent.expr(e, callable) - val id = tw.getFreshIdLabel() - val type = useType(e.type) - val locId = tw.getLocation(e) - tw.writeExprs_varaccess(id, type.javaResult.id, exprParent.parent, exprParent.idx) - tw.writeExprsKotlinType(id, type.kotlinResult.id) - tw.writeHasLocation(id, locId) - tw.writeCallableEnclosingExpr(id, callable) - tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt) val owner = tryReplaceAndroidSyntheticField(e.symbol.owner) - val vId = useField(owner) - tw.writeVariableBinding(id, vId) - tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt) - - val receiver = e.receiver - if (receiver != null) { - extractExpressionExpr(receiver, callable, id, -1, exprParent.enclosingStmt) - } else if (owner.isStatic) { - extractStaticTypeAccessQualifier(owner, id, locId, callable, exprParent.enclosingStmt) + val locId = tw.getLocation(e) + extractVariableAccess(useField(owner), e.type, locId, exprParent.parent, exprParent.idx, callable, exprParent.enclosingStmt).also { id -> + val receiver = e.receiver + if (receiver != null) { + extractExpressionExpr(receiver, callable, id, -1, exprParent.enclosingStmt) + } else if (owner.isStatic) { + extractStaticTypeAccessQualifier(owner, id, locId, callable, exprParent.enclosingStmt) + } } } is IrGetEnumValue -> { @@ -2995,6 +3057,71 @@ open class KotlinFileExtractor( } } + private fun extractThisAccess(e: IrGetValue, exprParent: ExprParent, callable: Label) { + val containingDeclaration = declarationStack.peek() + val locId = tw.getLocation(e) + val type = useType(e.type) + + if (containingDeclaration.willExtractAsStatic && containingDeclaration.parentClassOrNull?.isNonCompanionObject == true) { + // Use of `this` in a non-companion object member that will be lowered to a static function -- replace with a reference + // to the corresponding static object instance. + val instanceField = useObjectClassInstance(containingDeclaration.parentAsClass) + extractVariableAccess(instanceField.id, e.type, locId, exprParent.parent, exprParent.idx, callable, exprParent.enclosingStmt).also { varAccessId -> + extractStaticTypeAccessQualifier(containingDeclaration, varAccessId, locId, callable, exprParent.enclosingStmt) + } + } else { + val id = tw.getFreshIdLabel() + + tw.writeExprs_thisaccess(id, type.javaResult.id, exprParent.parent, exprParent.idx) + tw.writeExprsKotlinType(id, type.kotlinResult.id) + tw.writeHasLocation(id, locId) + tw.writeCallableEnclosingExpr(id, callable) + tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt) + + fun extractTypeAccess(parent: IrClass) { + extractTypeAccessRecursive(parent.typeWith(listOf()), locId, id, 0, callable, exprParent.enclosingStmt) + } + + val owner = e.symbol.owner + when(val ownerParent = owner.parent) { + is IrFunction -> { + if (ownerParent.dispatchReceiverParameter == owner && + ownerParent.extensionReceiverParameter != null) { + + val ownerParent2 = ownerParent.parent + if (ownerParent2 is IrClass){ + extractTypeAccess(ownerParent2) + } else { + logger.errorElement("Unhandled qualifier for this", e) + } + } + } + is IrClass -> { + if (ownerParent.thisReceiver == owner) { + extractTypeAccess(ownerParent) + } + } + else -> { + logger.errorElement("Unexpected owner parent for this access: " + ownerParent.javaClass, e) + } + } + } + } + + private fun extractVariableAccess(variable: Label?, irType: IrType, locId: Label, parent: Label, idx: Int, callable: Label, enclosingStmt: Label) = + tw.getFreshIdLabel().also { + val type = useType(irType) + tw.writeExprs_varaccess(it, type.javaResult.id, parent, idx) + tw.writeExprsKotlinType(it, type.kotlinResult.id) + tw.writeHasLocation(it, locId) + tw.writeCallableEnclosingExpr(it, callable) + tw.writeStatementEnclosingExpr(it, enclosingStmt) + + if (variable != null) { + tw.writeVariableBinding(it, variable) + } + } + private fun extractLoop( loop: IrLoop, stmtExprParent: StmtExprParent, diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 530ff47e8ab..2412131af25 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -970,7 +970,7 @@ open class KotlinUsesExtractor( * allow it to be passed in. */ @OptIn(ObsoleteDescriptorBasedAPI::class) - private fun getFunctionLabel(f: IrFunction, maybeParentId: Label?, classTypeArgsIncludingOuterClasses: List?) = + fun getFunctionLabel(f: IrFunction, maybeParentId: Label?, classTypeArgsIncludingOuterClasses: List?) = getFunctionLabel( f.parent, maybeParentId, From b4124ac553cd8cc5d4b9ac78c3cda635e6b342d5 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 11:26:29 +0100 Subject: [PATCH 243/736] Add test --- .../jvmstatic-annotation/JavaUser.java | 22 ++++++ .../jvmstatic-annotation/test.expected | 74 +++++++++++++++++++ .../jvmstatic-annotation/test.kt | 67 +++++++++++++++++ .../jvmstatic-annotation/test.ql | 14 ++++ 4 files changed, 177 insertions(+) create mode 100644 java/ql/test/kotlin/library-tests/jvmstatic-annotation/JavaUser.java create mode 100644 java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.expected create mode 100644 java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.kt create mode 100644 java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.ql diff --git a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/JavaUser.java b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/JavaUser.java new file mode 100644 index 00000000000..fc079df1ba8 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/JavaUser.java @@ -0,0 +1,22 @@ +public class JavaUser { + + public static void test() { + + HasCompanion.staticMethod("1"); + HasCompanion.Companion.nonStaticMethod("2"); + HasCompanion.setStaticProp(HasCompanion.Companion.getNonStaticProp()); + HasCompanion.Companion.setNonStaticProp(HasCompanion.getStaticProp()); + HasCompanion.Companion.setPropWithStaticGetter(HasCompanion.Companion.getPropWithStaticSetter()); + HasCompanion.setPropWithStaticSetter(HasCompanion.getPropWithStaticGetter()); + + // These extract as static methods, since there is no proxy method in the non-companion object case. + NonCompanion.staticMethod("1"); + NonCompanion.INSTANCE.nonStaticMethod("2"); + NonCompanion.setStaticProp(NonCompanion.INSTANCE.getNonStaticProp()); + NonCompanion.INSTANCE.setNonStaticProp(NonCompanion.getStaticProp()); + NonCompanion.INSTANCE.setPropWithStaticGetter(NonCompanion.INSTANCE.getPropWithStaticSetter()); + NonCompanion.setPropWithStaticSetter(NonCompanion.getPropWithStaticGetter()); + + } + +} diff --git a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.expected b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.expected new file mode 100644 index 00000000000..ae431e80343 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.expected @@ -0,0 +1,74 @@ +staticMembers +| JavaUser.java:1:14:1:21 | JavaUser | JavaUser.java:3:22:3:25 | test | Method | +| test.kt:0:0:0:0 | TestKt | test.kt:49:1:67:1 | externalUser | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:11:3:27:3 | Companion | Class | +| test.kt:9:1:29:1 | HasCompanion | test.kt:11:3:27:3 | Companion | Field | +| test.kt:9:1:29:1 | HasCompanion | test.kt:13:16:13:71 | staticMethod | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:16:16:16:43 | getStaticProp | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:16:16:16:43 | setStaticProp | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:20:18:20:45 | getPropWithStaticGetter | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:25:18:25:60 | setPropWithStaticSetter | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:31:1:47:1 | INSTANCE | Field | +| test.kt:31:1:47:1 | NonCompanion | test.kt:33:14:33:69 | staticMethod | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:41 | getStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:41 | setStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:40:16:40:43 | getPropWithStaticGetter | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:45:16:45:58 | setPropWithStaticSetter | Method | +#select +| test.kt:9:1:29:1 | HasCompanion | JavaUser.java:5:5:5:34 | staticMethod(...) | JavaUser.java:5:5:5:16 | HasCompanion | static | +| test.kt:9:1:29:1 | HasCompanion | JavaUser.java:7:5:7:73 | setStaticProp(...) | JavaUser.java:7:5:7:16 | HasCompanion | static | +| test.kt:9:1:29:1 | HasCompanion | JavaUser.java:8:45:8:72 | getStaticProp(...) | JavaUser.java:8:45:8:56 | HasCompanion | static | +| test.kt:9:1:29:1 | HasCompanion | JavaUser.java:10:5:10:80 | setPropWithStaticSetter(...) | JavaUser.java:10:5:10:16 | HasCompanion | static | +| test.kt:9:1:29:1 | HasCompanion | JavaUser.java:10:42:10:79 | getPropWithStaticGetter(...) | JavaUser.java:10:42:10:53 | HasCompanion | static | +| test.kt:11:3:27:3 | Companion | JavaUser.java:6:5:6:47 | nonStaticMethod(...) | JavaUser.java:6:5:6:26 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | JavaUser.java:7:32:7:72 | getNonStaticProp(...) | JavaUser.java:7:32:7:53 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | JavaUser.java:8:5:8:73 | setNonStaticProp(...) | JavaUser.java:8:5:8:26 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | JavaUser.java:9:5:9:100 | setPropWithStaticGetter(...) | JavaUser.java:9:5:9:26 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | JavaUser.java:9:52:9:99 | getPropWithStaticSetter(...) | JavaUser.java:9:52:9:73 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:13:16:13:71 | staticMethod(...) | test.kt:13:16:13:71 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:13:54:13:71 | nonStaticMethod(...) | test.kt:13:54:13:71 | this | instance | +| test.kt:11:3:27:3 | Companion | test.kt:14:46:14:60 | staticMethod(...) | test.kt:14:46:14:60 | this | instance | +| test.kt:11:3:27:3 | Companion | test.kt:16:16:16:43 | getStaticProp(...) | test.kt:16:16:16:43 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:16:16:16:43 | setStaticProp(...) | test.kt:16:16:16:43 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:20:18:20:45 | getPropWithStaticGetter(...) | test.kt:20:18:20:45 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:20:26:20:45 | getPropWithStaticSetter(...) | test.kt:20:26:20:45 | this | instance | +| test.kt:11:3:27:3 | Companion | test.kt:21:24:21:43 | setPropWithStaticSetter(...) | test.kt:21:24:21:43 | this | instance | +| test.kt:11:3:27:3 | Companion | test.kt:24:15:24:34 | getPropWithStaticGetter(...) | test.kt:24:15:24:34 | this | instance | +| test.kt:11:3:27:3 | Companion | test.kt:25:18:25:60 | setPropWithStaticSetter(...) | test.kt:25:18:25:60 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:25:35:25:54 | setPropWithStaticGetter(...) | test.kt:25:35:25:54 | this | instance | +| test.kt:11:3:27:3 | Companion | test.kt:52:16:52:32 | staticMethod(...) | test.kt:52:3:52:14 | Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:53:16:53:35 | nonStaticMethod(...) | test.kt:53:3:53:14 | Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:54:3:54:25 | setStaticProp(...) | test.kt:54:3:54:14 | Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:54:42:54:54 | getNonStaticProp(...) | test.kt:54:29:54:40 | Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:55:3:55:28 | setNonStaticProp(...) | test.kt:55:3:55:14 | Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:55:45:55:54 | getStaticProp(...) | test.kt:55:32:55:43 | Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:56:3:56:35 | setPropWithStaticGetter(...) | test.kt:56:3:56:14 | Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:56:52:56:71 | getPropWithStaticSetter(...) | test.kt:56:39:56:50 | Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:57:3:57:35 | setPropWithStaticSetter(...) | test.kt:57:3:57:14 | Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:57:52:57:71 | getPropWithStaticGetter(...) | test.kt:57:39:57:50 | Companion | instance | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:13:5:13:34 | staticMethod(...) | JavaUser.java:13:5:13:16 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:14:5:14:46 | nonStaticMethod(...) | JavaUser.java:14:5:14:25 | NonCompanion.INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:15:5:15:72 | setStaticProp(...) | JavaUser.java:15:5:15:16 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:15:32:15:71 | getNonStaticProp(...) | JavaUser.java:15:32:15:52 | NonCompanion.INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:16:5:16:72 | setNonStaticProp(...) | JavaUser.java:16:5:16:25 | NonCompanion.INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:16:44:16:71 | getStaticProp(...) | JavaUser.java:16:44:16:55 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:17:5:17:98 | setPropWithStaticGetter(...) | JavaUser.java:17:5:17:25 | NonCompanion.INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:17:51:17:97 | getPropWithStaticSetter(...) | JavaUser.java:17:51:17:71 | NonCompanion.INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:18:5:18:80 | setPropWithStaticSetter(...) | JavaUser.java:18:5:18:16 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:18:42:18:79 | getPropWithStaticGetter(...) | JavaUser.java:18:42:18:53 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | test.kt:33:52:33:69 | nonStaticMethod(...) | test.kt:33:52:33:69 | NonCompanion.INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | test.kt:34:44:34:58 | staticMethod(...) | test.kt:34:44:34:58 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | test.kt:40:24:40:43 | getPropWithStaticSetter(...) | test.kt:40:24:40:43 | NonCompanion.INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | test.kt:41:22:41:41 | setPropWithStaticSetter(...) | test.kt:41:22:41:41 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | test.kt:44:13:44:32 | getPropWithStaticGetter(...) | test.kt:44:13:44:32 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | test.kt:45:33:45:52 | setPropWithStaticGetter(...) | test.kt:45:33:45:52 | NonCompanion.INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | test.kt:60:16:60:32 | staticMethod(...) | test.kt:60:16:60:32 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | test.kt:61:16:61:35 | nonStaticMethod(...) | test.kt:61:3:61:14 | INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | test.kt:62:3:62:25 | setStaticProp(...) | test.kt:62:3:62:25 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | test.kt:62:42:62:54 | getNonStaticProp(...) | test.kt:62:29:62:40 | INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | test.kt:63:3:63:28 | setNonStaticProp(...) | test.kt:63:3:63:14 | INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | test.kt:63:45:63:54 | getStaticProp(...) | test.kt:63:45:63:54 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | test.kt:64:3:64:35 | setPropWithStaticGetter(...) | test.kt:64:3:64:14 | INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | test.kt:64:52:64:71 | getPropWithStaticSetter(...) | test.kt:64:39:64:50 | INSTANCE | instance | +| test.kt:31:1:47:1 | NonCompanion | test.kt:65:3:65:35 | setPropWithStaticSetter(...) | test.kt:65:3:65:35 | NonCompanion | static | +| test.kt:31:1:47:1 | NonCompanion | test.kt:65:52:65:71 | getPropWithStaticGetter(...) | test.kt:65:52:65:71 | NonCompanion | static | diff --git a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.kt b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.kt new file mode 100644 index 00000000000..cbf553725b4 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.kt @@ -0,0 +1,67 @@ +// Test both definining static members, and referring to an object's other static members, in companion object and non-companion object contexts. +// For the companion object all the references to other properties and methods should extract as ordinary instance calls and field read and writes, +// but those methods / getters / setters that are annotated static should get an additional static proxy method defined on the surrounding class-- +// for example, we should see (using Java notation) public static String HasCompanion.staticMethod(String s) { return Companion.staticMethod(s); }. +// For the non-companion object, the static-annotated methods should themselves be extracted as static members, and calls / gets / sets that use them +// should extract as static calls. Static members using non-static ones should extract like staticMethod(...) { INSTANCE.nonStaticMethod(...) }, +// where the reference to INSTANCE replaces what would normally be a `this` reference. + +public class HasCompanion { + + companion object { + + @JvmStatic fun staticMethod(s: String): String = nonStaticMethod(s) + fun nonStaticMethod(s: String): String = staticMethod(s) + + @JvmStatic var staticProp: String = "a" + var nonStaticProp: String = "b" + + var propWithStaticGetter: String + @JvmStatic get() = propWithStaticSetter + set(s: String) { propWithStaticSetter = s } + + var propWithStaticSetter: String + get() = propWithStaticGetter + @JvmStatic set(s: String) { propWithStaticGetter = s } + + } + +} + +object NonCompanion { + + @JvmStatic fun staticMethod(s: String): String = nonStaticMethod(s) + fun nonStaticMethod(s: String): String = staticMethod(s) + + @JvmStatic var staticProp: String = "a" + var nonStaticProp: String = "b" + + var propWithStaticGetter: String + @JvmStatic get() = propWithStaticSetter + set(s: String) { propWithStaticSetter = s } + + var propWithStaticSetter: String + get() = propWithStaticGetter + @JvmStatic set(s: String) { propWithStaticGetter = s } + +} + +fun externalUser() { + + // These all extract as instance calls (to HasCompanion.Companion), since a Kotlin caller won't use the static proxy methods generated by the @JvmStatic annotation. + HasCompanion.staticMethod("1") + HasCompanion.nonStaticMethod("2") + HasCompanion.staticProp = HasCompanion.nonStaticProp + HasCompanion.nonStaticProp = HasCompanion.staticProp + HasCompanion.propWithStaticGetter = HasCompanion.propWithStaticSetter + HasCompanion.propWithStaticSetter = HasCompanion.propWithStaticGetter + + // These extract as static methods, since there is no proxy method in the non-companion object case. + NonCompanion.staticMethod("1") + NonCompanion.nonStaticMethod("2") + NonCompanion.staticProp = NonCompanion.nonStaticProp + NonCompanion.nonStaticProp = NonCompanion.staticProp + NonCompanion.propWithStaticGetter = NonCompanion.propWithStaticSetter + NonCompanion.propWithStaticSetter = NonCompanion.propWithStaticGetter + +} diff --git a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.ql b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.ql new file mode 100644 index 00000000000..555182c6bbd --- /dev/null +++ b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.ql @@ -0,0 +1,14 @@ +import java + +query predicate staticMembers(RefType declType, Member m, string kind) { + + m.fromSource() and m.isStatic() and m.getDeclaringType() = declType and kind = m.getAPrimaryQlClass() + +} + +from Call call, Callable callable, RefType declType, Expr qualifier, string callType +where call.getCallee() = callable and +declType = callable.getDeclaringType() and +qualifier = call.getQualifier() and +if callable.isStatic() then callType = "static" else callType = "instance" +select declType, call, qualifier, callType From 466cf7573bf4b5a1d2aeb4b7903f9476eafd7d14 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 12:13:00 +0100 Subject: [PATCH 244/736] Autoformat --- .../library-tests/jvmstatic-annotation/test.ql | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.ql b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.ql index 555182c6bbd..725ba05a106 100644 --- a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.ql +++ b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/test.ql @@ -1,14 +1,16 @@ import java query predicate staticMembers(RefType declType, Member m, string kind) { - - m.fromSource() and m.isStatic() and m.getDeclaringType() = declType and kind = m.getAPrimaryQlClass() - + m.fromSource() and + m.isStatic() and + m.getDeclaringType() = declType and + kind = m.getAPrimaryQlClass() } from Call call, Callable callable, RefType declType, Expr qualifier, string callType -where call.getCallee() = callable and -declType = callable.getDeclaringType() and -qualifier = call.getQualifier() and -if callable.isStatic() then callType = "static" else callType = "instance" +where + call.getCallee() = callable and + declType = callable.getDeclaringType() and + qualifier = call.getQualifier() and + if callable.isStatic() then callType = "static" else callType = "instance" select declType, call, qualifier, callType From 5a47e1dd9594a3808731b886e06b0dbf9496f67a Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 12:48:11 +0100 Subject: [PATCH 245/736] Annotate generated static proxy methods as compiler-generated --- .../kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt | 2 ++ java/ql/lib/semmle/code/java/Element.qll | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 89e61b4ca96..b425aa965be 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -490,6 +490,7 @@ open class KotlinFileExtractor( // but suppress outputting the body, which we will replace with a delegating call below. forceExtractFunction(f, classId, extractBody = false, extractMethodAndParameterTypeAccesses = extractFunctionBodies, typeSubstitution = null, classTypeArgsIncludingOuterClasses = listOf(), idOverride = proxyFunctionId, locOverride = null) addModifiers(proxyFunctionId, "static") + tw.writeCompiler_generated(proxyFunctionId, CompilerGeneratedKinds.JVMSTATIC_PROXY_METHOD.kind) if (extractFunctionBodies) { val realFunctionLocId = tw.getLocation(f) extractExpressionBody(proxyFunctionId, realFunctionLocId).also { returnId -> @@ -4537,5 +4538,6 @@ open class KotlinFileExtractor( ENUM_CLASS_SPECIAL_MEMBER(5), DELEGATED_PROPERTY_GETTER(6), DELEGATED_PROPERTY_SETTER(7), + JVMSTATIC_PROXY_METHOD(8), } } diff --git a/java/ql/lib/semmle/code/java/Element.qll b/java/ql/lib/semmle/code/java/Element.qll index dbf2efc71b5..96c8a8c5c21 100755 --- a/java/ql/lib/semmle/code/java/Element.qll +++ b/java/ql/lib/semmle/code/java/Element.qll @@ -57,6 +57,12 @@ class Element extends @element, Top { i = 4 and result = "Class initialisation method " or i = 5 and result = "Enum class special member" + or + i = 6 and result = "Getter for a Kotlin delegated property" + or + i = 7 and result = "Setter for a Kotlin delegated property" + or + i = 8 and result = "Proxy static method for a @JvmStatic-annotated function or property" ) } } From bf581b971ca4c706da18486526de51dee62a3875 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 12:51:09 +0100 Subject: [PATCH 246/736] Rename willExtract properties to shouldExtract --- .../src/main/kotlin/KotlinFileExtractor.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index b425aa965be..5143855386d 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -901,7 +901,7 @@ open class KotlinFileExtractor( if (f.isInline) { addModifiers(id, "inline") } - if (f.willExtractAsStatic) { + if (f.shouldExtractAsStatic) { addModifiers(id, "static") } if (f is IrSimpleFunction && f.overriddenSymbols.isNotEmpty()) { @@ -1479,7 +1479,7 @@ open class KotlinFileExtractor( tw.writeCallableBinding(id, methodId) - if (callTarget.willExtractAsStatic) { + if (callTarget.shouldExtractAsStatic) { extractStaticTypeAccessQualifier(callTarget, id, locId, enclosingCallable, enclosingStmt) } else if (extractDispatchReceiver != null) { extractDispatchReceiver(id) @@ -1502,24 +1502,24 @@ open class KotlinFileExtractor( } private fun extractStaticTypeAccessQualifier(target: IrDeclaration, parentExpr: Label, locId: Label, enclosingCallable: Label, enclosingStmt: Label) { - if (target.willExtractAsStaticMemberOfClass) { + if (target.shouldExtractAsStaticMemberOfClass) { extractTypeAccessRecursive(target.parentAsClass.toRawType(), locId, parentExpr, -1, enclosingCallable, enclosingStmt) - } else if (target.willExtractAsStaticMemberOfFile) { + } else if (target.shouldExtractAsStaticMemberOfFile) { extractTypeAccess(useFileClassType(target.parent as IrFile), locId, parentExpr, -1, enclosingCallable, enclosingStmt) } } - private val IrDeclaration.willExtractAsStaticMemberOfClass: Boolean - get() = this.willExtractAsStatic && parent is IrClass + private val IrDeclaration.shouldExtractAsStaticMemberOfClass: Boolean + get() = this.shouldExtractAsStatic && parent is IrClass - private val IrDeclaration.willExtractAsStaticMemberOfFile: Boolean - get() = this.willExtractAsStatic && parent is IrFile + private val IrDeclaration.shouldExtractAsStaticMemberOfFile: Boolean + get() = this.shouldExtractAsStatic && parent is IrFile private fun isStaticAnnotatedNonCompanionMember(f: IrSimpleFunction) = f.parentClassOrNull?.isNonCompanionObject == true && (f.hasAnnotation(jvmStaticFqName) || f.correspondingPropertySymbol?.owner?.hasAnnotation(jvmStaticFqName) == true) - private val IrDeclaration.willExtractAsStatic: Boolean + private val IrDeclaration.shouldExtractAsStatic: Boolean get() = this is IrSimpleFunction && (isStaticFunction(this) || isStaticAnnotatedNonCompanionMember(this)) || this is IrField && this.isStatic || this is IrEnumEntry @@ -3063,7 +3063,7 @@ open class KotlinFileExtractor( val locId = tw.getLocation(e) val type = useType(e.type) - if (containingDeclaration.willExtractAsStatic && containingDeclaration.parentClassOrNull?.isNonCompanionObject == true) { + if (containingDeclaration.shouldExtractAsStatic && containingDeclaration.parentClassOrNull?.isNonCompanionObject == true) { // Use of `this` in a non-companion object member that will be lowered to a static function -- replace with a reference // to the corresponding static object instance. val instanceField = useObjectClassInstance(containingDeclaration.parentAsClass) From 98761041f1547bf9bdce2f8a8a7ac87b9df05303 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 13:11:00 +0100 Subject: [PATCH 247/736] Prevent labelling proxies of default getters and setters as themselves default getters and setters --- .../src/main/kotlin/KotlinFileExtractor.kt | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 5143855386d..3a55214d34a 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -488,7 +488,7 @@ open class KotlinFileExtractor( val proxyFunctionId = tw.getLabelFor(getFunctionLabel(f, classId, listOf())) // We extract the function prototype with its ID overridden to belong to `c` not the companion object, // but suppress outputting the body, which we will replace with a delegating call below. - forceExtractFunction(f, classId, extractBody = false, extractMethodAndParameterTypeAccesses = extractFunctionBodies, typeSubstitution = null, classTypeArgsIncludingOuterClasses = listOf(), idOverride = proxyFunctionId, locOverride = null) + forceExtractFunction(f, classId, extractBody = false, extractMethodAndParameterTypeAccesses = extractFunctionBodies, typeSubstitution = null, classTypeArgsIncludingOuterClasses = listOf(), idOverride = proxyFunctionId, locOverride = null, extractOrigin = false) addModifiers(proxyFunctionId, "static") tw.writeCompiler_generated(proxyFunctionId, CompilerGeneratedKinds.JVMSTATIC_PROXY_METHOD.kind) if (extractFunctionBodies) { @@ -813,7 +813,7 @@ open class KotlinFileExtractor( else forceExtractFunction(f, parentId, extractBody, extractMethodAndParameterTypeAccesses, typeSubstitution, classTypeArgsIncludingOuterClasses, null, null) - private fun forceExtractFunction(f: IrFunction, parentId: Label, extractBody: Boolean, extractMethodAndParameterTypeAccesses: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?, idOverride: Label?, locOverride: Label?): Label { + private fun forceExtractFunction(f: IrFunction, parentId: Label, extractBody: Boolean, extractMethodAndParameterTypeAccesses: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?, idOverride: Label?, locOverride: Label?, extractOrigin: Boolean = true): Label { with("function", f) { DeclarationStackAdjuster(f).use { @@ -870,13 +870,15 @@ open class KotlinFileExtractor( val methodId = id.cast() tw.writeMethods(methodId, shortName.nameInDB, "${shortName.nameInDB}$paramsSignature", returnType.javaResult.id, parentId, sourceDeclaration.cast()) tw.writeMethodsKotlinType(methodId, returnType.kotlinResult.id) - when (f.origin) { - IrDeclarationOrigin.GENERATED_DATA_CLASS_MEMBER -> - tw.writeCompiler_generated(methodId, CompilerGeneratedKinds.GENERATED_DATA_CLASS_MEMBER.kind) - IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR -> - tw.writeCompiler_generated(methodId, CompilerGeneratedKinds.DEFAULT_PROPERTY_ACCESSOR.kind) - IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER -> - tw.writeCompiler_generated(methodId, CompilerGeneratedKinds.ENUM_CLASS_SPECIAL_MEMBER.kind) + if (extractOrigin) { + when (f.origin) { + IrDeclarationOrigin.GENERATED_DATA_CLASS_MEMBER -> + tw.writeCompiler_generated(methodId, CompilerGeneratedKinds.GENERATED_DATA_CLASS_MEMBER.kind) + IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR -> + tw.writeCompiler_generated(methodId, CompilerGeneratedKinds.DEFAULT_PROPERTY_ACCESSOR.kind) + IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER -> + tw.writeCompiler_generated(methodId, CompilerGeneratedKinds.ENUM_CLASS_SPECIAL_MEMBER.kind) + } } if (extractMethodAndParameterTypeAccesses) { From 8214c3b78eadc9bb8a2b86d48db1524edb203411 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 13:11:43 +0100 Subject: [PATCH 248/736] Add AST dump for JvmStatic annotation test --- .../jvmstatic-annotation/PrintAst.expected | 441 ++++++++++++++++++ .../jvmstatic-annotation/PrintAst.qlref | 1 + 2 files changed, 442 insertions(+) create mode 100644 java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.expected create mode 100644 java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.qlref diff --git a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.expected b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.expected new file mode 100644 index 00000000000..5a17ed98591 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.expected @@ -0,0 +1,441 @@ +JavaUser.java: +# 0| [CompilationUnit] JavaUser +# 1| 1: [Class] JavaUser +# 3| 2: [Method] test +# 3| 3: [TypeAccess] void +# 3| 5: [BlockStmt] { ... } +# 5| 0: [ExprStmt] ; +# 5| 0: [MethodAccess] staticMethod(...) +# 5| -1: [TypeAccess] HasCompanion +# 5| 0: [StringLiteral] "1" +# 6| 1: [ExprStmt] ; +# 6| 0: [MethodAccess] nonStaticMethod(...) +# 6| -1: [VarAccess] HasCompanion.Companion +# 6| -1: [TypeAccess] HasCompanion +# 6| 0: [StringLiteral] "2" +# 7| 2: [ExprStmt] ; +# 7| 0: [MethodAccess] setStaticProp(...) +# 7| -1: [TypeAccess] HasCompanion +# 7| 0: [MethodAccess] getNonStaticProp(...) +# 7| -1: [VarAccess] HasCompanion.Companion +# 7| -1: [TypeAccess] HasCompanion +# 8| 3: [ExprStmt] ; +# 8| 0: [MethodAccess] setNonStaticProp(...) +# 8| -1: [VarAccess] HasCompanion.Companion +# 8| -1: [TypeAccess] HasCompanion +# 8| 0: [MethodAccess] getStaticProp(...) +# 8| -1: [TypeAccess] HasCompanion +# 9| 4: [ExprStmt] ; +# 9| 0: [MethodAccess] setPropWithStaticGetter(...) +# 9| -1: [VarAccess] HasCompanion.Companion +# 9| -1: [TypeAccess] HasCompanion +# 9| 0: [MethodAccess] getPropWithStaticSetter(...) +# 9| -1: [VarAccess] HasCompanion.Companion +# 9| -1: [TypeAccess] HasCompanion +# 10| 5: [ExprStmt] ; +# 10| 0: [MethodAccess] setPropWithStaticSetter(...) +# 10| -1: [TypeAccess] HasCompanion +# 10| 0: [MethodAccess] getPropWithStaticGetter(...) +# 10| -1: [TypeAccess] HasCompanion +# 13| 6: [ExprStmt] ; +# 13| 0: [MethodAccess] staticMethod(...) +# 13| -1: [TypeAccess] NonCompanion +# 13| 0: [StringLiteral] "1" +# 14| 7: [ExprStmt] ; +# 14| 0: [MethodAccess] nonStaticMethod(...) +# 14| -1: [VarAccess] NonCompanion.INSTANCE +# 14| -1: [TypeAccess] NonCompanion +# 14| 0: [StringLiteral] "2" +# 15| 8: [ExprStmt] ; +# 15| 0: [MethodAccess] setStaticProp(...) +# 15| -1: [TypeAccess] NonCompanion +# 15| 0: [MethodAccess] getNonStaticProp(...) +# 15| -1: [VarAccess] NonCompanion.INSTANCE +# 15| -1: [TypeAccess] NonCompanion +# 16| 9: [ExprStmt] ; +# 16| 0: [MethodAccess] setNonStaticProp(...) +# 16| -1: [VarAccess] NonCompanion.INSTANCE +# 16| -1: [TypeAccess] NonCompanion +# 16| 0: [MethodAccess] getStaticProp(...) +# 16| -1: [TypeAccess] NonCompanion +# 17| 10: [ExprStmt] ; +# 17| 0: [MethodAccess] setPropWithStaticGetter(...) +# 17| -1: [VarAccess] NonCompanion.INSTANCE +# 17| -1: [TypeAccess] NonCompanion +# 17| 0: [MethodAccess] getPropWithStaticSetter(...) +# 17| -1: [VarAccess] NonCompanion.INSTANCE +# 17| -1: [TypeAccess] NonCompanion +# 18| 11: [ExprStmt] ; +# 18| 0: [MethodAccess] setPropWithStaticSetter(...) +# 18| -1: [TypeAccess] NonCompanion +# 18| 0: [MethodAccess] getPropWithStaticGetter(...) +# 18| -1: [TypeAccess] NonCompanion +test.kt: +# 0| [CompilationUnit] test +# 0| 1: [Class] TestKt +# 49| 1: [Method] externalUser +# 49| 3: [TypeAccess] Unit +# 49| 5: [BlockStmt] { ... } +# 52| 0: [ExprStmt] ; +# 52| 0: [ImplicitCoercionToUnitExpr] +# 52| 0: [TypeAccess] Unit +# 52| 1: [MethodAccess] staticMethod(...) +# 52| -1: [VarAccess] Companion +# 52| 0: [StringLiteral] 1 +# 53| 1: [ExprStmt] ; +# 53| 0: [ImplicitCoercionToUnitExpr] +# 53| 0: [TypeAccess] Unit +# 53| 1: [MethodAccess] nonStaticMethod(...) +# 53| -1: [VarAccess] Companion +# 53| 0: [StringLiteral] 2 +# 54| 2: [ExprStmt] ; +# 54| 0: [MethodAccess] setStaticProp(...) +# 54| -1: [VarAccess] Companion +# 54| 0: [MethodAccess] getNonStaticProp(...) +# 54| -1: [VarAccess] Companion +# 55| 3: [ExprStmt] ; +# 55| 0: [MethodAccess] setNonStaticProp(...) +# 55| -1: [VarAccess] Companion +# 55| 0: [MethodAccess] getStaticProp(...) +# 55| -1: [VarAccess] Companion +# 56| 4: [ExprStmt] ; +# 56| 0: [MethodAccess] setPropWithStaticGetter(...) +# 56| -1: [VarAccess] Companion +# 56| 0: [MethodAccess] getPropWithStaticSetter(...) +# 56| -1: [VarAccess] Companion +# 57| 5: [ExprStmt] ; +# 57| 0: [MethodAccess] setPropWithStaticSetter(...) +# 57| -1: [VarAccess] Companion +# 57| 0: [MethodAccess] getPropWithStaticGetter(...) +# 57| -1: [VarAccess] Companion +# 60| 6: [ExprStmt] ; +# 60| 0: [ImplicitCoercionToUnitExpr] +# 60| 0: [TypeAccess] Unit +# 60| 1: [MethodAccess] staticMethod(...) +# 60| -1: [TypeAccess] NonCompanion +# 60| 0: [StringLiteral] 1 +# 61| 7: [ExprStmt] ; +# 61| 0: [ImplicitCoercionToUnitExpr] +# 61| 0: [TypeAccess] Unit +# 61| 1: [MethodAccess] nonStaticMethod(...) +# 61| -1: [VarAccess] INSTANCE +# 61| 0: [StringLiteral] 2 +# 62| 8: [ExprStmt] ; +# 62| 0: [MethodAccess] setStaticProp(...) +# 62| -1: [TypeAccess] NonCompanion +# 62| 0: [MethodAccess] getNonStaticProp(...) +# 62| -1: [VarAccess] INSTANCE +# 63| 9: [ExprStmt] ; +# 63| 0: [MethodAccess] setNonStaticProp(...) +# 63| -1: [VarAccess] INSTANCE +# 63| 0: [MethodAccess] getStaticProp(...) +# 63| -1: [TypeAccess] NonCompanion +# 64| 10: [ExprStmt] ; +# 64| 0: [MethodAccess] setPropWithStaticGetter(...) +# 64| -1: [VarAccess] INSTANCE +# 64| 0: [MethodAccess] getPropWithStaticSetter(...) +# 64| -1: [VarAccess] INSTANCE +# 65| 11: [ExprStmt] ; +# 65| 0: [MethodAccess] setPropWithStaticSetter(...) +# 65| -1: [TypeAccess] NonCompanion +# 65| 0: [MethodAccess] getPropWithStaticGetter(...) +# 65| -1: [TypeAccess] NonCompanion +# 9| 2: [Class] HasCompanion +#-----| -3: (Annotations) +# 9| 2: [Constructor] HasCompanion +# 9| 5: [BlockStmt] { ... } +# 9| 0: [SuperConstructorInvocationStmt] super(...) +# 9| 1: [BlockStmt] { ... } +# 11| 3: [Class] Companion +#-----| -3: (Annotations) +# 11| 1: [Constructor] Companion +# 11| 5: [BlockStmt] { ... } +# 11| 0: [SuperConstructorInvocationStmt] super(...) +# 11| 1: [BlockStmt] { ... } +# 16| 0: [ExprStmt] ; +# 16| 0: [KtInitializerAssignExpr] ...=... +# 16| 0: [VarAccess] staticProp +# 17| 1: [ExprStmt] ; +# 17| 0: [KtInitializerAssignExpr] ...=... +# 17| 0: [VarAccess] nonStaticProp +# 13| 2: [Method] staticMethod +#-----| 1: (Annotations) +# 13| 3: [TypeAccess] String +#-----| 4: (Parameters) +# 13| 0: [Parameter] s +#-----| -1: (Annotations) +# 13| 0: [TypeAccess] String +# 13| 5: [BlockStmt] { ... } +# 13| 0: [ReturnStmt] return ... +# 13| 0: [MethodAccess] nonStaticMethod(...) +# 13| -1: [ThisAccess] this +# 13| 0: [VarAccess] s +# 14| 3: [Method] nonStaticMethod +#-----| 1: (Annotations) +# 14| 3: [TypeAccess] String +#-----| 4: (Parameters) +# 14| 0: [Parameter] s +#-----| -1: (Annotations) +# 14| 0: [TypeAccess] String +# 14| 5: [BlockStmt] { ... } +# 14| 0: [ReturnStmt] return ... +# 14| 0: [MethodAccess] staticMethod(...) +# 14| -1: [ThisAccess] this +# 14| 0: [VarAccess] s +# 16| 4: [FieldDeclaration] String staticProp; +# 16| -1: [TypeAccess] String +# 16| 0: [StringLiteral] a +# 16| 5: [Method] getStaticProp +#-----| 1: (Annotations) +# 16| 3: [TypeAccess] String +# 16| 5: [BlockStmt] { ... } +# 16| 0: [ReturnStmt] return ... +# 16| 0: [VarAccess] this.staticProp +# 16| -1: [ThisAccess] this +# 16| 5: [Method] setStaticProp +# 16| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 16| 0: [Parameter] +#-----| -1: (Annotations) +# 16| 0: [TypeAccess] String +# 16| 5: [BlockStmt] { ... } +# 16| 0: [ExprStmt] ; +# 16| 0: [AssignExpr] ...=... +# 16| 0: [VarAccess] this.staticProp +# 16| -1: [ThisAccess] this +# 16| 1: [VarAccess] +# 17| 7: [Method] getNonStaticProp +#-----| 1: (Annotations) +# 17| 3: [TypeAccess] String +# 17| 5: [BlockStmt] { ... } +# 17| 0: [ReturnStmt] return ... +# 17| 0: [VarAccess] this.nonStaticProp +# 17| -1: [ThisAccess] this +# 17| 7: [Method] setNonStaticProp +# 17| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 17| 0: [Parameter] +#-----| -1: (Annotations) +# 17| 0: [TypeAccess] String +# 17| 5: [BlockStmt] { ... } +# 17| 0: [ExprStmt] ; +# 17| 0: [AssignExpr] ...=... +# 17| 0: [VarAccess] this.nonStaticProp +# 17| -1: [ThisAccess] this +# 17| 1: [VarAccess] +# 17| 7: [FieldDeclaration] String nonStaticProp; +# 17| -1: [TypeAccess] String +# 17| 0: [StringLiteral] b +# 20| 10: [Method] getPropWithStaticGetter +#-----| 1: (Annotations) +# 20| 3: [TypeAccess] String +# 20| 5: [BlockStmt] { ... } +# 20| 0: [ReturnStmt] return ... +# 20| 0: [MethodAccess] getPropWithStaticSetter(...) +# 20| -1: [ThisAccess] this +# 21| 11: [Method] setPropWithStaticGetter +# 21| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 21| 0: [Parameter] s +#-----| -1: (Annotations) +# 21| 0: [TypeAccess] String +# 21| 5: [BlockStmt] { ... } +# 21| 0: [ExprStmt] ; +# 21| 0: [MethodAccess] setPropWithStaticSetter(...) +# 21| -1: [ThisAccess] this +# 21| 0: [VarAccess] s +# 24| 12: [Method] getPropWithStaticSetter +#-----| 1: (Annotations) +# 24| 3: [TypeAccess] String +# 24| 5: [BlockStmt] { ... } +# 24| 0: [ReturnStmt] return ... +# 24| 0: [MethodAccess] getPropWithStaticGetter(...) +# 24| -1: [ThisAccess] this +# 25| 13: [Method] setPropWithStaticSetter +#-----| 1: (Annotations) +# 25| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 25| 0: [Parameter] s +#-----| -1: (Annotations) +# 25| 0: [TypeAccess] String +# 25| 5: [BlockStmt] { ... } +# 25| 0: [ExprStmt] ; +# 25| 0: [MethodAccess] setPropWithStaticGetter(...) +# 25| -1: [ThisAccess] this +# 25| 0: [VarAccess] s +# 13| 4: [Method] staticMethod +#-----| 1: (Annotations) +# 13| 3: [TypeAccess] String +#-----| 4: (Parameters) +# 13| 0: [Parameter] s +#-----| -1: (Annotations) +# 13| 0: [TypeAccess] String +# 13| 5: [BlockStmt] { ... } +# 13| 0: [ReturnStmt] return ... +# 13| 0: [MethodAccess] staticMethod(...) +# 13| -1: [VarAccess] HasCompanion.Companion +# 13| -1: [TypeAccess] HasCompanion +# 13| 0: [VarAccess] s +# 16| 5: [Method] setStaticProp +# 16| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 16| 0: [Parameter] +#-----| -1: (Annotations) +# 16| 0: [TypeAccess] String +# 16| 5: [BlockStmt] { ... } +# 16| 0: [ReturnStmt] return ... +# 16| 0: [MethodAccess] setStaticProp(...) +# 16| -1: [VarAccess] HasCompanion.Companion +# 16| -1: [TypeAccess] HasCompanion +# 16| 0: [VarAccess] +# 16| 5: [Method] getStaticProp +#-----| 1: (Annotations) +# 16| 3: [TypeAccess] String +# 16| 5: [BlockStmt] { ... } +# 16| 0: [ReturnStmt] return ... +# 16| 0: [MethodAccess] getStaticProp(...) +# 16| -1: [VarAccess] HasCompanion.Companion +# 16| -1: [TypeAccess] HasCompanion +# 20| 7: [Method] getPropWithStaticGetter +#-----| 1: (Annotations) +# 20| 3: [TypeAccess] String +# 20| 5: [BlockStmt] { ... } +# 20| 0: [ReturnStmt] return ... +# 20| 0: [MethodAccess] getPropWithStaticGetter(...) +# 20| -1: [VarAccess] HasCompanion.Companion +# 20| -1: [TypeAccess] HasCompanion +# 25| 8: [Method] setPropWithStaticSetter +#-----| 1: (Annotations) +# 25| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 25| 0: [Parameter] s +#-----| -1: (Annotations) +# 25| 0: [TypeAccess] String +# 25| 5: [BlockStmt] { ... } +# 25| 0: [ReturnStmt] return ... +# 25| 0: [MethodAccess] setPropWithStaticSetter(...) +# 25| -1: [VarAccess] HasCompanion.Companion +# 25| -1: [TypeAccess] HasCompanion +# 25| 0: [VarAccess] s +# 31| 3: [Class] NonCompanion +#-----| -3: (Annotations) +# 31| 2: [Constructor] NonCompanion +# 31| 5: [BlockStmt] { ... } +# 31| 0: [SuperConstructorInvocationStmt] super(...) +# 31| 1: [BlockStmt] { ... } +# 36| 0: [ExprStmt] ; +# 36| 0: [KtInitializerAssignExpr] ...=... +# 36| 0: [VarAccess] staticProp +# 37| 1: [ExprStmt] ; +# 37| 0: [KtInitializerAssignExpr] ...=... +# 37| 0: [VarAccess] nonStaticProp +# 33| 3: [Method] staticMethod +#-----| 1: (Annotations) +# 33| 3: [TypeAccess] String +#-----| 4: (Parameters) +# 33| 0: [Parameter] s +#-----| -1: (Annotations) +# 33| 0: [TypeAccess] String +# 33| 5: [BlockStmt] { ... } +# 33| 0: [ReturnStmt] return ... +# 33| 0: [MethodAccess] nonStaticMethod(...) +# 33| -1: [VarAccess] NonCompanion.INSTANCE +# 33| -1: [TypeAccess] NonCompanion +# 33| 0: [VarAccess] s +# 34| 4: [Method] nonStaticMethod +#-----| 1: (Annotations) +# 34| 3: [TypeAccess] String +#-----| 4: (Parameters) +# 34| 0: [Parameter] s +#-----| -1: (Annotations) +# 34| 0: [TypeAccess] String +# 34| 5: [BlockStmt] { ... } +# 34| 0: [ReturnStmt] return ... +# 34| 0: [MethodAccess] staticMethod(...) +# 34| -1: [TypeAccess] NonCompanion +# 34| 0: [VarAccess] s +# 36| 5: [FieldDeclaration] String staticProp; +# 36| -1: [TypeAccess] String +# 36| 0: [StringLiteral] a +# 36| 6: [Method] setStaticProp +# 36| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 36| 0: [Parameter] +#-----| -1: (Annotations) +# 36| 0: [TypeAccess] String +# 36| 5: [BlockStmt] { ... } +# 36| 0: [ExprStmt] ; +# 36| 0: [AssignExpr] ...=... +# 36| 0: [VarAccess] NonCompanion.INSTANCE.staticProp +# 36| -1: [VarAccess] NonCompanion.INSTANCE +# 36| -1: [TypeAccess] NonCompanion +# 36| 1: [VarAccess] +# 36| 6: [Method] getStaticProp +#-----| 1: (Annotations) +# 36| 3: [TypeAccess] String +# 36| 5: [BlockStmt] { ... } +# 36| 0: [ReturnStmt] return ... +# 36| 0: [VarAccess] NonCompanion.INSTANCE.staticProp +# 36| -1: [VarAccess] NonCompanion.INSTANCE +# 36| -1: [TypeAccess] NonCompanion +# 37| 8: [Method] getNonStaticProp +#-----| 1: (Annotations) +# 37| 3: [TypeAccess] String +# 37| 5: [BlockStmt] { ... } +# 37| 0: [ReturnStmt] return ... +# 37| 0: [VarAccess] this.nonStaticProp +# 37| -1: [ThisAccess] this +# 37| 8: [Method] setNonStaticProp +# 37| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 37| 0: [Parameter] +#-----| -1: (Annotations) +# 37| 0: [TypeAccess] String +# 37| 5: [BlockStmt] { ... } +# 37| 0: [ExprStmt] ; +# 37| 0: [AssignExpr] ...=... +# 37| 0: [VarAccess] this.nonStaticProp +# 37| -1: [ThisAccess] this +# 37| 1: [VarAccess] +# 37| 8: [FieldDeclaration] String nonStaticProp; +# 37| -1: [TypeAccess] String +# 37| 0: [StringLiteral] b +# 40| 11: [Method] getPropWithStaticGetter +#-----| 1: (Annotations) +# 40| 3: [TypeAccess] String +# 40| 5: [BlockStmt] { ... } +# 40| 0: [ReturnStmt] return ... +# 40| 0: [MethodAccess] getPropWithStaticSetter(...) +# 40| -1: [VarAccess] NonCompanion.INSTANCE +# 40| -1: [TypeAccess] NonCompanion +# 41| 12: [Method] setPropWithStaticGetter +# 41| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 41| 0: [Parameter] s +#-----| -1: (Annotations) +# 41| 0: [TypeAccess] String +# 41| 5: [BlockStmt] { ... } +# 41| 0: [ExprStmt] ; +# 41| 0: [MethodAccess] setPropWithStaticSetter(...) +# 41| -1: [TypeAccess] NonCompanion +# 41| 0: [VarAccess] s +# 44| 13: [Method] getPropWithStaticSetter +#-----| 1: (Annotations) +# 44| 3: [TypeAccess] String +# 44| 5: [BlockStmt] { ... } +# 44| 0: [ReturnStmt] return ... +# 44| 0: [MethodAccess] getPropWithStaticGetter(...) +# 44| -1: [TypeAccess] NonCompanion +# 45| 14: [Method] setPropWithStaticSetter +#-----| 1: (Annotations) +# 45| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 45| 0: [Parameter] s +#-----| -1: (Annotations) +# 45| 0: [TypeAccess] String +# 45| 5: [BlockStmt] { ... } +# 45| 0: [ExprStmt] ; +# 45| 0: [MethodAccess] setPropWithStaticGetter(...) +# 45| -1: [VarAccess] NonCompanion.INSTANCE +# 45| -1: [TypeAccess] NonCompanion +# 45| 0: [VarAccess] s diff --git a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.qlref b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.qlref new file mode 100644 index 00000000000..c7fd5faf239 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.qlref @@ -0,0 +1 @@ +semmle/code/java/PrintAst.ql \ No newline at end of file From 0e56e50d189f89e15470d985bbe4d043bb6fd9be Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 30 Jun 2022 13:50:22 +0100 Subject: [PATCH 249/736] Kotlin: Replace a map call with forEach --- java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index b82b71faccf..d48acf2da61 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -80,7 +80,7 @@ open class KotlinFileExtractor( } } - file.declarations.map { extractDeclaration(it, extractPrivateMembers = true, extractFunctionBodies = true) } + file.declarations.forEach { extractDeclaration(it, extractPrivateMembers = true, extractFunctionBodies = true) } extractStaticInitializer(file, null) CommentExtractor(this, file, tw.fileId).extract() } From df7ffb28806d0c1e136229b0ff5c3ca1f25d9c58 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 30 Jun 2022 14:53:49 +0200 Subject: [PATCH 250/736] Update python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll Co-authored-by: Rasmus Wriedt Larsen --- .../python/security/dataflow/TarSlipCustomizations.qll | 7 ------- 1 file changed, 7 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll index 8e742c61288..22788453ebf 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll @@ -31,13 +31,6 @@ module TarSlip { */ abstract class Sanitizer extends DataFlow::Node { } - /** - * DEPRECATED: Use `Sanitizer` instead. - * - * A sanitizer guard for "tar slip" vulnerabilities. - */ - abstract deprecated class SanitizerGuard extends DataFlow::BarrierGuard { } - /** * A call to `tarfile.open`, considered as a flow source. */ From b0a29b146a7d7ca4fec773298f1851de77411fc0 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 30 Jun 2022 14:54:01 +0200 Subject: [PATCH 251/736] Update python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll Co-authored-by: Rasmus Wriedt Larsen --- .../ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll | 4 ---- 1 file changed, 4 deletions(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll index e69d63fedbc..6cf41742a66 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipQuery.qll @@ -22,8 +22,4 @@ class Configuration extends TaintTracking::Configuration { 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 - } } From cf9b69b5f24d295f1d1dd7ecc2eac029b0c421b9 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 30 Jun 2022 13:07:13 +0000 Subject: [PATCH 252/736] python: More helpful comment --- .../semmle/python/security/dataflow/TarSlipCustomizations.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll index 22788453ebf..1a3df320358 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TarSlipCustomizations.qll @@ -119,7 +119,7 @@ module TarSlip { attr.getName() = "name" and attr.getObject() = tarInfo | - // Assume that any test with "path" in it is a sanitizer + // The assumption that any test that matches %path is a sanitizer might be too broad. call.getAChild*().(AttrNode).getName().matches("%path") or call.getAChild*().(NameNode).getId().matches("%path") From eaec1ac56181722200be70fff1e933766cde4585 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 30 Jun 2022 15:11:49 +0200 Subject: [PATCH 253/736] add change-note --- javascript/ql/lib/change-notes/2022-06-30-chownr.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2022-06-30-chownr.md diff --git a/javascript/ql/lib/change-notes/2022-06-30-chownr.md b/javascript/ql/lib/change-notes/2022-06-30-chownr.md new file mode 100644 index 00000000000..1ad13fb8113 --- /dev/null +++ b/javascript/ql/lib/change-notes/2022-06-30-chownr.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `chownr` library is now modeled as a sink for the `js/path-injection` query. From 0d0d240fd4272cac927c84945a5075869a3b7f69 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 15:29:20 +0100 Subject: [PATCH 254/736] Accept test changes re: new compiler-generated nodes --- .../test/kotlin/library-tests/reflection/reflection.expected | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/ql/test/kotlin/library-tests/reflection/reflection.expected b/java/ql/test/kotlin/library-tests/reflection/reflection.expected index 1e249da402d..9b6899f4b6e 100644 --- a/java/ql/test/kotlin/library-tests/reflection/reflection.expected +++ b/java/ql/test/kotlin/library-tests/reflection/reflection.expected @@ -232,6 +232,9 @@ modifiers compGenerated | file:///Class2.class:0:0:0:0 | getValue | 3 | | file:///Class2.class:0:0:0:0 | getValue | 3 | +| file:///KTypeProjection.class:0:0:0:0 | contravariant | 8 | +| file:///KTypeProjection.class:0:0:0:0 | covariant | 8 | +| file:///KTypeProjection.class:0:0:0:0 | invariant | 8 | | reflection.kt:33:9:33:23 | getP0 | 3 | | reflection.kt:34:9:34:23 | getP1 | 3 | | reflection.kt:34:9:34:23 | setP1 | 3 | From ec95cbace42471066863f3442b697e24bfd7d022 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 15:29:56 +0100 Subject: [PATCH 255/736] PrintAst: Tie-break multiple class members created at the same source location Otherwise Kotlin introducing a getter, setter and field declaration based on the same property tied in the sort order, and so could be output in different orders on different machines. --- java/ql/lib/semmle/code/java/PrintAst.qll | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/java/ql/lib/semmle/code/java/PrintAst.qll b/java/ql/lib/semmle/code/java/PrintAst.qll index 05453baa045..d6e263e778a 100644 --- a/java/ql/lib/semmle/code/java/PrintAst.qll +++ b/java/ql/lib/semmle/code/java/PrintAst.qll @@ -534,10 +534,12 @@ final class ClassInterfaceNode extends ElementNode { or childIndex >= 0 and result.(ElementNode).getElement() = - rank[childIndex](Element e, string file, int line, int column | - e = this.getADeclaration() and locationSortKeys(e, file, line, column) + rank[childIndex](Element e, string file, int line, int column, string childStr | + e = this.getADeclaration() and + locationSortKeys(e, file, line, column) and + childStr = result.toString() | - e order by file, line, column + e order by file, line, column, childStr ) } } From 570e418b22ff1e22a7ffc38795188a0389e053b3 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 16:07:32 +0100 Subject: [PATCH 256/736] Fix ordering PrintAst nodes --- java/ql/lib/semmle/code/java/PrintAst.qll | 2 +- .../library-tests/classes/PrintAst.expected | 122 +- .../data-classes/PrintAst.expected | 104 +- .../library-tests/exprs/PrintAst.expected | 1134 ++++++++--------- .../exprs_typeaccess/PrintAst.expected | 10 +- .../library-tests/generics/PrintAst.expected | 8 +- .../jvmstatic-annotation/PrintAst.expected | 58 +- .../reflection/PrintAst.expected | 182 +-- 8 files changed, 810 insertions(+), 810 deletions(-) diff --git a/java/ql/lib/semmle/code/java/PrintAst.qll b/java/ql/lib/semmle/code/java/PrintAst.qll index d6e263e778a..9d88550faa3 100644 --- a/java/ql/lib/semmle/code/java/PrintAst.qll +++ b/java/ql/lib/semmle/code/java/PrintAst.qll @@ -537,7 +537,7 @@ final class ClassInterfaceNode extends ElementNode { rank[childIndex](Element e, string file, int line, int column, string childStr | e = this.getADeclaration() and locationSortKeys(e, file, line, column) and - childStr = result.toString() + childStr = e.toString() | e order by file, line, column, childStr ) diff --git a/java/ql/test/kotlin/library-tests/classes/PrintAst.expected b/java/ql/test/kotlin/library-tests/classes/PrintAst.expected index 0346a4e0292..1ba8a3396bf 100644 --- a/java/ql/test/kotlin/library-tests/classes/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/classes/PrintAst.expected @@ -32,7 +32,7 @@ classes.kt: # 4| 0: [ReturnStmt] return ... # 4| 0: [VarAccess] this.arg # 4| -1: [ThisAccess] this -# 4| 2: [FieldDeclaration] int arg; +# 4| 3: [FieldDeclaration] int arg; # 4| -1: [TypeAccess] int # 4| 0: [VarAccess] arg # 5| 4: [Method] getX @@ -41,7 +41,7 @@ classes.kt: # 5| 0: [ReturnStmt] return ... # 5| 0: [VarAccess] this.x # 5| -1: [ThisAccess] this -# 5| 4: [FieldDeclaration] int x; +# 5| 5: [FieldDeclaration] int x; # 5| -1: [TypeAccess] int # 5| 0: [IntegerLiteral] 3 # 8| 4: [Class] ClassThree @@ -118,18 +118,18 @@ classes.kt: # 42| 0: [ReturnStmt] return ... # 42| 0: [VarAccess] this.x # 42| -1: [ThisAccess] this -# 42| 2: [FieldDeclaration] int x; +# 42| 3: [FieldDeclaration] int x; # 42| -1: [TypeAccess] int # 42| 0: [IntegerLiteral] 3 # 49| 11: [Class] Direction -# 0| 1: [Method] values -# 0| 3: [TypeAccess] Direction[] -# 0| 0: [TypeAccess] Direction -# 0| 1: [Method] valueOf +# 0| 2: [Method] valueOf # 0| 3: [TypeAccess] Direction #-----| 4: (Parameters) # 0| 0: [Parameter] value # 0| 0: [TypeAccess] String +# 0| 3: [Method] values +# 0| 3: [TypeAccess] Direction[] +# 0| 0: [TypeAccess] Direction # 49| 4: [Constructor] Direction # 49| 5: [BlockStmt] { ... } # 49| 0: [ExprStmt] ; @@ -154,14 +154,14 @@ classes.kt: # 50| 0: [ClassInstanceExpr] new Direction(...) # 50| -3: [TypeAccess] Direction # 53| 12: [Class] Color -# 0| 1: [Method] values -# 0| 3: [TypeAccess] Color[] -# 0| 0: [TypeAccess] Color -# 0| 1: [Method] valueOf +# 0| 2: [Method] valueOf # 0| 3: [TypeAccess] Color #-----| 4: (Parameters) # 0| 0: [Parameter] value # 0| 0: [TypeAccess] String +# 0| 3: [Method] values +# 0| 3: [TypeAccess] Color[] +# 0| 0: [TypeAccess] Color # 53| 4: [Constructor] Color #-----| 4: (Parameters) # 53| 0: [Parameter] rgb @@ -181,7 +181,7 @@ classes.kt: # 53| 0: [ReturnStmt] return ... # 53| 0: [VarAccess] this.rgb # 53| -1: [ThisAccess] this -# 53| 5: [FieldDeclaration] int rgb; +# 53| 6: [FieldDeclaration] int rgb; # 53| -1: [TypeAccess] int # 53| 0: [VarAccess] rgb # 54| 7: [FieldDeclaration] Color RED; @@ -266,7 +266,7 @@ classes.kt: # 73| 0: [ReturnStmt] return ... # 73| 0: [VarAccess] this.x # 73| -1: [ThisAccess] this -# 73| 2: [FieldDeclaration] int x; +# 73| 3: [FieldDeclaration] int x; # 73| -1: [TypeAccess] int # 73| 0: [IntegerLiteral] 1 # 74| 4: [Method] foo @@ -434,7 +434,7 @@ classes.kt: # 118| 1: [Constructor] # 118| 5: [BlockStmt] { ... } # 118| 0: [SuperConstructorInvocationStmt] super(...) -# 118| 1: [Method] localFn +# 118| 2: [Method] localFn # 118| 3: [TypeAccess] Unit # 118| 5: [BlockStmt] { ... } # 119| 0: [LocalTypeDeclStmt] class ... @@ -541,15 +541,15 @@ generic_anonymous.kt: # 3| 1: [ExprStmt] ; # 3| 0: [KtInitializerAssignExpr] ...=... # 3| 0: [VarAccess] x -# 1| 2: [Method] getT +# 1| 2: [FieldDeclaration] T t; +# 1| -1: [TypeAccess] T +# 1| 0: [VarAccess] t +# 1| 3: [Method] getT # 1| 3: [TypeAccess] T # 1| 5: [BlockStmt] { ... } # 1| 0: [ReturnStmt] return ... # 1| 0: [VarAccess] this.t # 1| -1: [ThisAccess] this -# 1| 2: [FieldDeclaration] T t; -# 1| -1: [TypeAccess] T -# 1| 0: [VarAccess] t # 3| 4: [FieldDeclaration] new Object(...) { ... } x; # 3| -1: [TypeAccess] new Object(...) { ... } # 3| 0: [TypeAccess] T @@ -564,17 +564,17 @@ generic_anonymous.kt: # 4| 0: [ExprStmt] ; # 4| 0: [KtInitializerAssignExpr] ...=... # 4| 0: [VarAccess] member -# 4| 2: [Method] getMember -# 4| 3: [TypeAccess] T -# 4| 5: [BlockStmt] { ... } -# 4| 0: [ReturnStmt] return ... -# 4| 0: [VarAccess] this.member -# 4| -1: [ThisAccess] this # 4| 2: [FieldDeclaration] T member; # 4| -1: [TypeAccess] T # 4| 0: [MethodAccess] getT(...) # 4| -1: [ThisAccess] Generic.this # 4| 0: [TypeAccess] Generic +# 4| 3: [Method] getMember +# 4| 3: [TypeAccess] T +# 4| 5: [BlockStmt] { ... } +# 4| 0: [ReturnStmt] return ... +# 4| 0: [VarAccess] this.member +# 4| -1: [ThisAccess] this # 3| 1: [ExprStmt] ; # 3| 0: [ClassInstanceExpr] new (...) # 3| -3: [TypeAccess] Object @@ -605,12 +605,6 @@ localClassField.kt: # 7| 1: [ExprStmt] ; # 7| 0: [KtInitializerAssignExpr] ...=... # 7| 0: [VarAccess] y -# 2| 2: [Method] getX -# 2| 3: [TypeAccess] Object -# 2| 5: [BlockStmt] { ... } -# 2| 0: [ReturnStmt] return ... -# 2| 0: [VarAccess] this.x -# 2| -1: [ThisAccess] this # 2| 2: [FieldDeclaration] Object x; # 2| -1: [TypeAccess] Object # 2| 0: [WhenExpr] when ... @@ -629,12 +623,12 @@ localClassField.kt: # 2| 1: [WhenBranch] ... -> ... # 2| 0: [BooleanLiteral] true # 5| 1: [BlockStmt] { ... } -# 7| 4: [Method] getY -# 7| 3: [TypeAccess] Object -# 7| 5: [BlockStmt] { ... } -# 7| 0: [ReturnStmt] return ... -# 7| 0: [VarAccess] this.y -# 7| -1: [ThisAccess] this +# 2| 3: [Method] getX +# 2| 3: [TypeAccess] Object +# 2| 5: [BlockStmt] { ... } +# 2| 0: [ReturnStmt] return ... +# 2| 0: [VarAccess] this.x +# 2| -1: [ThisAccess] this # 7| 4: [FieldDeclaration] Object y; # 7| -1: [TypeAccess] Object # 7| 0: [WhenExpr] when ... @@ -653,6 +647,12 @@ localClassField.kt: # 7| 1: [WhenBranch] ... -> ... # 7| 0: [BooleanLiteral] true # 10| 1: [BlockStmt] { ... } +# 7| 5: [Method] getY +# 7| 3: [TypeAccess] Object +# 7| 5: [BlockStmt] { ... } +# 7| 0: [ReturnStmt] return ... +# 7| 0: [VarAccess] this.y +# 7| -1: [ThisAccess] this local_anonymous.kt: # 0| [CompilationUnit] local_anonymous # 3| 1: [Class] Class1 @@ -686,7 +686,7 @@ local_anonymous.kt: # 11| 1: [Constructor] # 11| 5: [BlockStmt] { ... } # 11| 0: [SuperConstructorInvocationStmt] super(...) -# 11| 1: [Method] fnLocal +# 11| 2: [Method] fnLocal # 11| 3: [TypeAccess] Unit # 11| 5: [BlockStmt] { ... } # 12| 1: [ExprStmt] ; @@ -703,7 +703,7 @@ local_anonymous.kt: # 16| 1: [Constructor] # 16| 5: [BlockStmt] { ... } # 16| 0: [SuperConstructorInvocationStmt] super(...) -# 16| 1: [Method] invoke +# 16| 2: [Method] invoke # 16| 3: [TypeAccess] int #-----| 4: (Parameters) # 16| 0: [Parameter] a @@ -726,7 +726,7 @@ local_anonymous.kt: # 17| 1: [Constructor] # 17| 5: [BlockStmt] { ... } # 17| 0: [SuperConstructorInvocationStmt] super(...) -# 17| 1: [Method] invoke +# 17| 2: [Method] invoke # 17| 3: [TypeAccess] int #-----| 4: (Parameters) # 17| 0: [Parameter] a @@ -752,7 +752,7 @@ local_anonymous.kt: # 21| 1: [Constructor] # 21| 5: [BlockStmt] { ... } # 21| 0: [SuperConstructorInvocationStmt] super(...) -# 21| 1: [Method] invoke +# 21| 2: [Method] invoke #-----| 4: (Parameters) # 21| 0: [Parameter] a0 # 21| 5: [BlockStmt] { ... } @@ -797,7 +797,10 @@ local_anonymous.kt: # 30| 0: [ReturnStmt] return ... # 30| 0: [VarAccess] this.x # 30| -1: [ThisAccess] this -# 30| 2: [Method] setX +# 30| 3: [FieldDeclaration] int x; +# 30| -1: [TypeAccess] int +# 30| 0: [IntegerLiteral] 1 +# 30| 4: [Method] setX # 30| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 30| 0: [Parameter] @@ -808,9 +811,6 @@ local_anonymous.kt: # 30| 0: [VarAccess] this.x # 30| -1: [ThisAccess] this # 30| 1: [VarAccess] -# 30| 2: [FieldDeclaration] int x; -# 30| -1: [TypeAccess] int -# 30| 0: [IntegerLiteral] 1 # 32| 5: [Method] member # 32| 3: [TypeAccess] Unit # 32| 5: [BlockStmt] { ... } @@ -840,23 +840,6 @@ local_anonymous.kt: # 40| 0: [ExprStmt] ; # 40| 0: [KtInitializerAssignExpr] ...=... # 40| 0: [VarAccess] i -# 40| 2: [Method] getI -# 40| 3: [TypeAccess] Interface2 -# 40| 5: [BlockStmt] { ... } -# 40| 0: [ReturnStmt] return ... -# 40| 0: [VarAccess] this.i -# 40| -1: [ThisAccess] this -# 40| 2: [Method] setI -# 40| 3: [TypeAccess] Unit -#-----| 4: (Parameters) -# 40| 0: [Parameter] -# 40| 0: [TypeAccess] Interface2 -# 40| 5: [BlockStmt] { ... } -# 40| 0: [ExprStmt] ; -# 40| 0: [AssignExpr] ...=... -# 40| 0: [VarAccess] this.i -# 40| -1: [ThisAccess] this -# 40| 1: [VarAccess] # 40| 2: [FieldDeclaration] Interface2 i; # 40| -1: [TypeAccess] Interface2 # 40| 0: [StmtExpr] @@ -873,6 +856,23 @@ local_anonymous.kt: # 40| 1: [ExprStmt] ; # 40| 0: [ClassInstanceExpr] new (...) # 40| -3: [TypeAccess] Interface2 +# 40| 3: [Method] getI +# 40| 3: [TypeAccess] Interface2 +# 40| 5: [BlockStmt] { ... } +# 40| 0: [ReturnStmt] return ... +# 40| 0: [VarAccess] this.i +# 40| -1: [ThisAccess] this +# 40| 4: [Method] setI +# 40| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 40| 0: [Parameter] +# 40| 0: [TypeAccess] Interface2 +# 40| 5: [BlockStmt] { ... } +# 40| 0: [ExprStmt] ; +# 40| 0: [AssignExpr] ...=... +# 40| 0: [VarAccess] this.i +# 40| -1: [ThisAccess] this +# 40| 1: [VarAccess] superChain.kt: # 0| [CompilationUnit] superChain # 1| 1: [Class,GenericType,ParameterizedType] SuperChain1 diff --git a/java/ql/test/kotlin/library-tests/data-classes/PrintAst.expected b/java/ql/test/kotlin/library-tests/data-classes/PrintAst.expected index 06f6a78ce60..aa31626daeb 100644 --- a/java/ql/test/kotlin/library-tests/data-classes/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/data-classes/PrintAst.expected @@ -7,14 +7,14 @@ dc.kt: # 0| 0: [ReturnStmt] return ... # 0| 0: [VarAccess] this.bytes # 0| -1: [ThisAccess] this -# 0| 1: [Method] component2 +# 0| 2: [Method] component2 # 0| 3: [TypeAccess] String[] # 0| 0: [TypeAccess] String # 0| 5: [BlockStmt] { ... } # 0| 0: [ReturnStmt] return ... # 0| 0: [VarAccess] this.strs # 0| -1: [ThisAccess] this -# 0| 1: [Method] copy +# 0| 3: [Method] copy # 0| 3: [TypeAccess] ProtoMapValue #-----| 4: (Parameters) # 1| 0: [Parameter] bytes @@ -28,47 +28,7 @@ dc.kt: # 0| -3: [TypeAccess] ProtoMapValue # 0| 0: [VarAccess] bytes # 0| 1: [VarAccess] strs -# 0| 1: [Method] toString -# 0| 3: [TypeAccess] String -# 0| 5: [BlockStmt] { ... } -# 0| 0: [ReturnStmt] return ... -# 0| 0: [StringTemplateExpr] "..." -# 0| 0: [StringLiteral] ProtoMapValue( -# 0| 1: [StringLiteral] bytes= -# 0| 2: [MethodAccess] toString(...) -# 0| -1: [TypeAccess] Arrays -# 0| 0: [VarAccess] this.bytes -# 0| -1: [ThisAccess] this -# 0| 3: [StringLiteral] , -# 0| 4: [StringLiteral] strs= -# 0| 5: [MethodAccess] toString(...) -# 0| -1: [TypeAccess] Arrays -# 0| 0: [VarAccess] this.strs -# 0| -1: [ThisAccess] this -# 0| 6: [StringLiteral] ) -# 0| 1: [Method] hashCode -# 0| 3: [TypeAccess] int -# 0| 5: [BlockStmt] { ... } -# 0| 0: [LocalVariableDeclStmt] var ...; -# 0| 1: [LocalVariableDeclExpr] result -# 0| 0: [MethodAccess] hashCode(...) -# 0| -1: [TypeAccess] Arrays -# 0| 0: [VarAccess] this.bytes -# 0| -1: [ThisAccess] this -# 0| 1: [ExprStmt] ; -# 0| 0: [AssignExpr] ...=... -# 0| 0: [VarAccess] result -# 0| 1: [MethodAccess] plus(...) -# 0| -1: [MethodAccess] times(...) -# 0| -1: [VarAccess] result -# 0| 0: [IntegerLiteral] 31 -# 0| 0: [MethodAccess] hashCode(...) -# 0| -1: [TypeAccess] Arrays -# 0| 0: [VarAccess] this.strs -# 0| -1: [ThisAccess] this -# 0| 2: [ReturnStmt] return ... -# 0| 0: [VarAccess] result -# 0| 1: [Method] equals +# 0| 4: [Method] equals # 0| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 0| 0: [Parameter] other @@ -117,6 +77,46 @@ dc.kt: # 0| 0: [BooleanLiteral] false # 0| 5: [ReturnStmt] return ... # 0| 0: [BooleanLiteral] true +# 0| 5: [Method] hashCode +# 0| 3: [TypeAccess] int +# 0| 5: [BlockStmt] { ... } +# 0| 0: [LocalVariableDeclStmt] var ...; +# 0| 1: [LocalVariableDeclExpr] result +# 0| 0: [MethodAccess] hashCode(...) +# 0| -1: [TypeAccess] Arrays +# 0| 0: [VarAccess] this.bytes +# 0| -1: [ThisAccess] this +# 0| 1: [ExprStmt] ; +# 0| 0: [AssignExpr] ...=... +# 0| 0: [VarAccess] result +# 0| 1: [MethodAccess] plus(...) +# 0| -1: [MethodAccess] times(...) +# 0| -1: [VarAccess] result +# 0| 0: [IntegerLiteral] 31 +# 0| 0: [MethodAccess] hashCode(...) +# 0| -1: [TypeAccess] Arrays +# 0| 0: [VarAccess] this.strs +# 0| -1: [ThisAccess] this +# 0| 2: [ReturnStmt] return ... +# 0| 0: [VarAccess] result +# 0| 6: [Method] toString +# 0| 3: [TypeAccess] String +# 0| 5: [BlockStmt] { ... } +# 0| 0: [ReturnStmt] return ... +# 0| 0: [StringTemplateExpr] "..." +# 0| 0: [StringLiteral] ProtoMapValue( +# 0| 1: [StringLiteral] bytes= +# 0| 2: [MethodAccess] toString(...) +# 0| -1: [TypeAccess] Arrays +# 0| 0: [VarAccess] this.bytes +# 0| -1: [ThisAccess] this +# 0| 3: [StringLiteral] , +# 0| 4: [StringLiteral] strs= +# 0| 5: [MethodAccess] toString(...) +# 0| -1: [TypeAccess] Arrays +# 0| 0: [VarAccess] this.strs +# 0| -1: [ThisAccess] this +# 0| 6: [StringLiteral] ) # 1| 7: [Constructor] ProtoMapValue #-----| 4: (Parameters) # 1| 0: [Parameter] bytes @@ -133,23 +133,23 @@ dc.kt: # 1| 1: [ExprStmt] ; # 1| 0: [KtInitializerAssignExpr] ...=... # 1| 0: [VarAccess] strs -# 1| 8: [Method] getBytes +# 1| 8: [FieldDeclaration] byte[] bytes; +# 1| -1: [TypeAccess] byte[] +# 1| 0: [VarAccess] bytes +# 1| 9: [Method] getBytes # 1| 3: [TypeAccess] byte[] # 1| 5: [BlockStmt] { ... } # 1| 0: [ReturnStmt] return ... # 1| 0: [VarAccess] this.bytes # 1| -1: [ThisAccess] this -# 1| 8: [FieldDeclaration] byte[] bytes; -# 1| -1: [TypeAccess] byte[] -# 1| 0: [VarAccess] bytes -# 1| 10: [Method] getStrs +# 1| 10: [FieldDeclaration] String[] strs; +# 1| -1: [TypeAccess] String[] +# 1| 0: [TypeAccess] String +# 1| 0: [VarAccess] strs +# 1| 11: [Method] getStrs # 1| 3: [TypeAccess] String[] # 1| 0: [TypeAccess] String # 1| 5: [BlockStmt] { ... } # 1| 0: [ReturnStmt] return ... # 1| 0: [VarAccess] this.strs # 1| -1: [ThisAccess] this -# 1| 10: [FieldDeclaration] String[] strs; -# 1| -1: [TypeAccess] String[] -# 1| 0: [TypeAccess] String -# 1| 0: [VarAccess] strs diff --git a/java/ql/test/kotlin/library-tests/exprs/PrintAst.expected b/java/ql/test/kotlin/library-tests/exprs/PrintAst.expected index 8696254be8f..879eb93c94e 100644 --- a/java/ql/test/kotlin/library-tests/exprs/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/exprs/PrintAst.expected @@ -7,7 +7,10 @@ delegatedProperties.kt: # 60| 0: [ReturnStmt] return ... # 60| 0: [VarAccess] DelegatedPropertiesKt.topLevelInt # 60| -1: [TypeAccess] DelegatedPropertiesKt -# 60| 2: [Method] setTopLevelInt +# 60| 3: [FieldDeclaration] int topLevelInt; +# 60| -1: [TypeAccess] int +# 60| 0: [IntegerLiteral] 0 +# 60| 4: [Method] setTopLevelInt # 60| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 60| 0: [Parameter] @@ -18,10 +21,35 @@ delegatedProperties.kt: # 60| 0: [VarAccess] DelegatedPropertiesKt.topLevelInt # 60| -1: [TypeAccess] DelegatedPropertiesKt # 60| 1: [VarAccess] -# 60| 2: [FieldDeclaration] int topLevelInt; -# 60| -1: [TypeAccess] int -# 60| 0: [IntegerLiteral] 0 -# 87| 5: [ExtensionMethod] getExtDelegated +# 87| 5: [FieldDeclaration] KMutableProperty0 extDelegated$delegateMyClass; +# 87| -1: [TypeAccess] KMutableProperty0 +# 87| 0: [TypeAccess] Integer +# 87| 0: [PropertyRefExpr] ...::... +# 87| -4: [AnonymousClass] new KMutableProperty0(...) { ... } +# 87| 1: [Constructor] +# 87| 5: [BlockStmt] { ... } +# 87| 0: [SuperConstructorInvocationStmt] super(...) +# 87| 2: [Method] get +# 87| 5: [BlockStmt] { ... } +# 87| 0: [ReturnStmt] return ... +# 87| 0: [MethodAccess] getTopLevelInt(...) +# 87| -1: [TypeAccess] DelegatedPropertiesKt +# 87| 3: [Method] invoke +# 87| 5: [BlockStmt] { ... } +# 87| 0: [ReturnStmt] return ... +# 87| 0: [MethodAccess] get(...) +# 87| -1: [ThisAccess] this +# 87| 4: [Method] set +#-----| 4: (Parameters) +# 87| 0: [Parameter] a0 +# 87| 5: [BlockStmt] { ... } +# 87| 0: [ReturnStmt] return ... +# 87| 0: [MethodAccess] setTopLevelInt(...) +# 87| -1: [TypeAccess] DelegatedPropertiesKt +# 87| 0: [VarAccess] a0 +# 87| -3: [TypeAccess] KMutableProperty0 +# 87| 0: [TypeAccess] Integer +# 87| 6: [ExtensionMethod] getExtDelegated # 87| 3: [TypeAccess] int #-----| 4: (Parameters) # 87| 0: [Parameter] @@ -39,7 +67,7 @@ delegatedProperties.kt: # 87| 1: [Constructor] # 87| 5: [BlockStmt] { ... } # 87| 0: [SuperConstructorInvocationStmt] super(...) -# 87| 1: [Method] get +# 87| 2: [Method] get #-----| 4: (Parameters) # 87| 0: [Parameter] a0 # 87| 5: [BlockStmt] { ... } @@ -47,7 +75,7 @@ delegatedProperties.kt: # 87| 0: [MethodAccess] getExtDelegated(...) # 87| -1: [TypeAccess] DelegatedPropertiesKt # 87| 0: [VarAccess] a0 -# 87| 1: [Method] invoke +# 87| 3: [Method] invoke #-----| 4: (Parameters) # 87| 0: [Parameter] a0 # 87| 5: [BlockStmt] { ... } @@ -55,7 +83,7 @@ delegatedProperties.kt: # 87| 0: [MethodAccess] get(...) # 87| -1: [ThisAccess] this # 87| 0: [VarAccess] a0 -# 87| 1: [Method] set +# 87| 4: [Method] set #-----| 4: (Parameters) # 87| 0: [Parameter] a0 # 87| 1: [Parameter] a1 @@ -68,7 +96,7 @@ delegatedProperties.kt: # 87| -3: [TypeAccess] KMutableProperty1 # 87| 0: [TypeAccess] MyClass # 87| 1: [TypeAccess] Integer -# 87| 5: [ExtensionMethod] setExtDelegated +# 87| 7: [ExtensionMethod] setExtDelegated # 87| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 87| 0: [Parameter] @@ -88,7 +116,7 @@ delegatedProperties.kt: # 87| 1: [Constructor] # 87| 5: [BlockStmt] { ... } # 87| 0: [SuperConstructorInvocationStmt] super(...) -# 87| 1: [Method] get +# 87| 2: [Method] get #-----| 4: (Parameters) # 87| 0: [Parameter] a0 # 87| 5: [BlockStmt] { ... } @@ -96,7 +124,7 @@ delegatedProperties.kt: # 87| 0: [MethodAccess] getExtDelegated(...) # 87| -1: [TypeAccess] DelegatedPropertiesKt # 87| 0: [VarAccess] a0 -# 87| 1: [Method] invoke +# 87| 3: [Method] invoke #-----| 4: (Parameters) # 87| 0: [Parameter] a0 # 87| 5: [BlockStmt] { ... } @@ -104,7 +132,7 @@ delegatedProperties.kt: # 87| 0: [MethodAccess] get(...) # 87| -1: [ThisAccess] this # 87| 0: [VarAccess] a0 -# 87| 1: [Method] set +# 87| 4: [Method] set #-----| 4: (Parameters) # 87| 0: [Parameter] a0 # 87| 1: [Parameter] a1 @@ -118,34 +146,6 @@ delegatedProperties.kt: # 87| 0: [TypeAccess] MyClass # 87| 1: [TypeAccess] Integer # 87| 3: [VarAccess] -# 87| 5: [FieldDeclaration] KMutableProperty0 extDelegated$delegateMyClass; -# 87| -1: [TypeAccess] KMutableProperty0 -# 87| 0: [TypeAccess] Integer -# 87| 0: [PropertyRefExpr] ...::... -# 87| -4: [AnonymousClass] new KMutableProperty0(...) { ... } -# 87| 1: [Constructor] -# 87| 5: [BlockStmt] { ... } -# 87| 0: [SuperConstructorInvocationStmt] super(...) -# 87| 1: [Method] get -# 87| 5: [BlockStmt] { ... } -# 87| 0: [ReturnStmt] return ... -# 87| 0: [MethodAccess] getTopLevelInt(...) -# 87| -1: [TypeAccess] DelegatedPropertiesKt -# 87| 1: [Method] invoke -# 87| 5: [BlockStmt] { ... } -# 87| 0: [ReturnStmt] return ... -# 87| 0: [MethodAccess] get(...) -# 87| -1: [ThisAccess] this -# 87| 1: [Method] set -#-----| 4: (Parameters) -# 87| 0: [Parameter] a0 -# 87| 5: [BlockStmt] { ... } -# 87| 0: [ReturnStmt] return ... -# 87| 0: [MethodAccess] setTopLevelInt(...) -# 87| -1: [TypeAccess] DelegatedPropertiesKt -# 87| 0: [VarAccess] a0 -# 87| -3: [TypeAccess] KMutableProperty0 -# 87| 0: [TypeAccess] Integer # 4| 2: [Class] ClassProp1 # 4| 1: [Constructor] ClassProp1 # 4| 5: [BlockStmt] { ... } @@ -165,7 +165,7 @@ delegatedProperties.kt: # 6| 1: [Constructor] # 6| 5: [BlockStmt] { ... } # 6| 0: [SuperConstructorInvocationStmt] super(...) -# 6| 1: [Method] invoke +# 6| 2: [Method] invoke # 6| 3: [TypeAccess] int # 7| 5: [BlockStmt] { ... } # 7| 0: [ExprStmt] ; @@ -181,7 +181,7 @@ delegatedProperties.kt: # 6| 1: [Constructor] # 6| 5: [BlockStmt] { ... } # 6| 0: [SuperConstructorInvocationStmt] super(...) -# 6| 1: [Method] +# 6| 2: [Method] # 6| 3: [TypeAccess] int # 6| 5: [BlockStmt] { ... } # 6| 0: [ReturnStmt] return ... @@ -195,13 +195,13 @@ delegatedProperties.kt: # 6| 1: [Constructor] # 6| 5: [BlockStmt] { ... } # 6| 0: [SuperConstructorInvocationStmt] super(...) -# 6| 1: [Method] get +# 6| 2: [Method] get # 6| 5: [BlockStmt] { ... } # 6| 0: [ReturnStmt] return ... # 6| 0: [MethodAccess] (...) # 6| -1: [ClassInstanceExpr] new (...) # 6| -3: [TypeAccess] Object -# 6| 1: [Method] invoke +# 6| 3: [Method] invoke # 6| 5: [BlockStmt] { ... } # 6| 0: [ReturnStmt] return ... # 6| 0: [MethodAccess] get(...) @@ -252,7 +252,7 @@ delegatedProperties.kt: # 19| 1: [Constructor] # 19| 5: [BlockStmt] { ... } # 19| 0: [SuperConstructorInvocationStmt] super(...) -# 19| 1: [Method] +# 19| 2: [Method] # 19| 3: [TypeAccess] int # 19| 5: [BlockStmt] { ... } # 19| 0: [ReturnStmt] return ... @@ -264,18 +264,18 @@ delegatedProperties.kt: # 19| 1: [Constructor] # 19| 5: [BlockStmt] { ... } # 19| 0: [SuperConstructorInvocationStmt] super(...) -# 19| 1: [Method] get +# 19| 2: [Method] get # 19| 5: [BlockStmt] { ... } # 19| 0: [ReturnStmt] return ... # 19| 0: [MethodAccess] (...) # 19| -1: [ClassInstanceExpr] new (...) # 19| -3: [TypeAccess] Object -# 19| 1: [Method] invoke +# 19| 3: [Method] invoke # 19| 5: [BlockStmt] { ... } # 19| 0: [ReturnStmt] return ... # 19| 0: [MethodAccess] get(...) # 19| -1: [ThisAccess] this -# 19| 1: [Method] set +# 19| 4: [Method] set #-----| 4: (Parameters) # 19| 0: [Parameter] a0 # 19| 5: [BlockStmt] { ... } @@ -291,7 +291,7 @@ delegatedProperties.kt: # 19| 1: [Constructor] # 19| 5: [BlockStmt] { ... } # 19| 0: [SuperConstructorInvocationStmt] super(...) -# 19| 1: [Method] +# 19| 2: [Method] # 19| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 19| 0: [Parameter] value @@ -306,18 +306,18 @@ delegatedProperties.kt: # 19| 1: [Constructor] # 19| 5: [BlockStmt] { ... } # 19| 0: [SuperConstructorInvocationStmt] super(...) -# 19| 1: [Method] get +# 19| 2: [Method] get # 19| 5: [BlockStmt] { ... } # 19| 0: [ReturnStmt] return ... # 19| 0: [MethodAccess] (...) # 19| -1: [ClassInstanceExpr] new (...) # 19| -3: [TypeAccess] Object -# 19| 1: [Method] invoke +# 19| 3: [Method] invoke # 19| 5: [BlockStmt] { ... } # 19| 0: [ReturnStmt] return ... # 19| 0: [MethodAccess] get(...) # 19| -1: [ThisAccess] this -# 19| 1: [Method] set +# 19| 4: [Method] set #-----| 4: (Parameters) # 19| 0: [Parameter] a0 # 19| 5: [BlockStmt] { ... } @@ -349,7 +349,7 @@ delegatedProperties.kt: # 23| 1: [Constructor] # 23| 5: [BlockStmt] { ... } # 23| 0: [SuperConstructorInvocationStmt] super(...) -# 23| 1: [Method] +# 23| 2: [Method] # 23| 3: [TypeAccess] String # 23| 5: [BlockStmt] { ... } # 23| 0: [ReturnStmt] return ... @@ -364,13 +364,13 @@ delegatedProperties.kt: # 23| 1: [Constructor] # 23| 5: [BlockStmt] { ... } # 23| 0: [SuperConstructorInvocationStmt] super(...) -# 23| 1: [Method] get +# 23| 2: [Method] get # 23| 5: [BlockStmt] { ... } # 23| 0: [ReturnStmt] return ... # 23| 0: [MethodAccess] (...) # 23| -1: [ClassInstanceExpr] new (...) # 23| -3: [TypeAccess] Object -# 23| 1: [Method] invoke +# 23| 3: [Method] invoke # 23| 5: [BlockStmt] { ... } # 23| 0: [ReturnStmt] return ... # 23| 0: [MethodAccess] get(...) @@ -382,7 +382,7 @@ delegatedProperties.kt: # 25| 1: [Constructor] # 25| 5: [BlockStmt] { ... } # 25| 0: [SuperConstructorInvocationStmt] super(...) -# 25| 1: [Method] resourceDelegate +# 25| 2: [Method] resourceDelegate # 25| 3: [TypeAccess] ReadWriteProperty # 25| 0: [TypeAccess] Object # 25| 1: [TypeAccess] Integer @@ -405,7 +405,10 @@ delegatedProperties.kt: # 26| 0: [ReturnStmt] return ... # 26| 0: [VarAccess] this.curValue # 26| -1: [ThisAccess] this -# 26| 2: [Method] setCurValue +# 26| 3: [FieldDeclaration] int curValue; +# 26| -1: [TypeAccess] int +# 26| 0: [IntegerLiteral] 0 +# 26| 4: [Method] setCurValue # 26| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 26| 0: [Parameter] @@ -416,9 +419,6 @@ delegatedProperties.kt: # 26| 0: [VarAccess] this.curValue # 26| -1: [ThisAccess] this # 26| 1: [VarAccess] -# 26| 2: [FieldDeclaration] int curValue; -# 26| -1: [TypeAccess] int -# 26| 0: [IntegerLiteral] 0 # 27| 5: [Method] getValue # 27| 3: [TypeAccess] int #-----| 4: (Parameters) @@ -460,7 +460,7 @@ delegatedProperties.kt: # 33| 1: [Constructor] # 33| 5: [BlockStmt] { ... } # 33| 0: [SuperConstructorInvocationStmt] super(...) -# 33| 1: [Method] +# 33| 2: [Method] # 33| 3: [TypeAccess] int # 33| 5: [BlockStmt] { ... } # 33| 0: [ReturnStmt] return ... @@ -472,13 +472,13 @@ delegatedProperties.kt: # 33| 1: [Constructor] # 33| 5: [BlockStmt] { ... } # 33| 0: [SuperConstructorInvocationStmt] super(...) -# 33| 1: [Method] get +# 33| 2: [Method] get # 33| 5: [BlockStmt] { ... } # 33| 0: [ReturnStmt] return ... # 33| 0: [MethodAccess] (...) # 33| -1: [ClassInstanceExpr] new (...) # 33| -3: [TypeAccess] Object -# 33| 1: [Method] invoke +# 33| 3: [Method] invoke # 33| 5: [BlockStmt] { ... } # 33| 0: [ReturnStmt] return ... # 33| 0: [MethodAccess] get(...) @@ -496,7 +496,7 @@ delegatedProperties.kt: # 34| 1: [Constructor] # 34| 5: [BlockStmt] { ... } # 34| 0: [SuperConstructorInvocationStmt] super(...) -# 34| 1: [Method] +# 34| 2: [Method] # 34| 3: [TypeAccess] int # 34| 5: [BlockStmt] { ... } # 34| 0: [ReturnStmt] return ... @@ -508,18 +508,18 @@ delegatedProperties.kt: # 34| 1: [Constructor] # 34| 5: [BlockStmt] { ... } # 34| 0: [SuperConstructorInvocationStmt] super(...) -# 34| 1: [Method] get +# 34| 2: [Method] get # 34| 5: [BlockStmt] { ... } # 34| 0: [ReturnStmt] return ... # 34| 0: [MethodAccess] (...) # 34| -1: [ClassInstanceExpr] new (...) # 34| -3: [TypeAccess] Object -# 34| 1: [Method] invoke +# 34| 3: [Method] invoke # 34| 5: [BlockStmt] { ... } # 34| 0: [ReturnStmt] return ... # 34| 0: [MethodAccess] get(...) # 34| -1: [ThisAccess] this -# 34| 1: [Method] set +# 34| 4: [Method] set #-----| 4: (Parameters) # 34| 0: [Parameter] a0 # 34| 5: [BlockStmt] { ... } @@ -535,7 +535,7 @@ delegatedProperties.kt: # 34| 1: [Constructor] # 34| 5: [BlockStmt] { ... } # 34| 0: [SuperConstructorInvocationStmt] super(...) -# 34| 1: [Method] +# 34| 2: [Method] # 34| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 34| 0: [Parameter] value @@ -550,18 +550,18 @@ delegatedProperties.kt: # 34| 1: [Constructor] # 34| 5: [BlockStmt] { ... } # 34| 0: [SuperConstructorInvocationStmt] super(...) -# 34| 1: [Method] get +# 34| 2: [Method] get # 34| 5: [BlockStmt] { ... } # 34| 0: [ReturnStmt] return ... # 34| 0: [MethodAccess] (...) # 34| -1: [ClassInstanceExpr] new (...) # 34| -3: [TypeAccess] Object -# 34| 1: [Method] invoke +# 34| 3: [Method] invoke # 34| 5: [BlockStmt] { ... } # 34| 0: [ReturnStmt] return ... # 34| 0: [MethodAccess] get(...) # 34| -1: [ThisAccess] this -# 34| 1: [Method] set +# 34| 4: [Method] set #-----| 4: (Parameters) # 34| 0: [Parameter] a0 # 34| 5: [BlockStmt] { ... } @@ -594,13 +594,13 @@ delegatedProperties.kt: # 39| 1: [Constructor] # 39| 5: [BlockStmt] { ... } # 39| 0: [SuperConstructorInvocationStmt] super(...) -# 39| 1: [Method] get +# 39| 2: [Method] get # 39| 5: [BlockStmt] { ... } # 39| 0: [ReturnStmt] return ... # 39| 0: [MethodAccess] (...) # 39| -1: [ClassInstanceExpr] new (...) # 39| -3: [TypeAccess] Object -# 39| 1: [Method] invoke +# 39| 3: [Method] invoke # 39| 5: [BlockStmt] { ... } # 39| 0: [ReturnStmt] return ... # 39| 0: [MethodAccess] get(...) @@ -612,7 +612,7 @@ delegatedProperties.kt: # 39| 1: [Constructor] # 39| 5: [BlockStmt] { ... } # 39| 0: [SuperConstructorInvocationStmt] super(...) -# 39| 1: [Method] +# 39| 2: [Method] # 39| 3: [TypeAccess] int # 39| 5: [BlockStmt] { ... } # 39| 0: [ReturnStmt] return ... @@ -624,20 +624,24 @@ delegatedProperties.kt: # 39| 1: [Constructor] # 39| 5: [BlockStmt] { ... } # 39| 0: [SuperConstructorInvocationStmt] super(...) -# 39| 1: [Method] get +# 39| 2: [Method] get # 39| 5: [BlockStmt] { ... } # 39| 0: [ReturnStmt] return ... # 39| 0: [MethodAccess] (...) # 39| -1: [ClassInstanceExpr] new (...) # 39| -3: [TypeAccess] Object -# 39| 1: [Method] invoke +# 39| 3: [Method] invoke # 39| 5: [BlockStmt] { ... } # 39| 0: [ReturnStmt] return ... # 39| 0: [MethodAccess] get(...) # 39| -1: [ThisAccess] this # 39| -3: [TypeAccess] KProperty0 # 39| 0: [TypeAccess] Integer -# 42| 3: [Method] getVarResource0 +# 42| 3: [FieldDeclaration] ResourceDelegate varResource0$delegate; +# 42| -1: [TypeAccess] ResourceDelegate +# 42| 0: [ClassInstanceExpr] new ResourceDelegate(...) +# 42| -3: [TypeAccess] ResourceDelegate +# 42| 4: [Method] getVarResource0 # 42| 3: [TypeAccess] int # 42| 5: [BlockStmt] { ... } # 42| 0: [ReturnStmt] return ... @@ -650,14 +654,14 @@ delegatedProperties.kt: # 42| 1: [Constructor] # 42| 5: [BlockStmt] { ... } # 42| 0: [SuperConstructorInvocationStmt] super(...) -# 42| 1: [Method] get +# 42| 2: [Method] get #-----| 4: (Parameters) # 42| 0: [Parameter] a0 # 42| 5: [BlockStmt] { ... } # 42| 0: [ReturnStmt] return ... # 42| 0: [MethodAccess] getVarResource0(...) # 42| -1: [VarAccess] a0 -# 42| 1: [Method] invoke +# 42| 3: [Method] invoke #-----| 4: (Parameters) # 42| 0: [Parameter] a0 # 42| 5: [BlockStmt] { ... } @@ -665,7 +669,7 @@ delegatedProperties.kt: # 42| 0: [MethodAccess] get(...) # 42| -1: [ThisAccess] this # 42| 0: [VarAccess] a0 -# 42| 1: [Method] set +# 42| 4: [Method] set #-----| 4: (Parameters) # 42| 0: [Parameter] a0 # 42| 1: [Parameter] a1 @@ -677,7 +681,7 @@ delegatedProperties.kt: # 42| -3: [TypeAccess] KMutableProperty1 # 42| 0: [TypeAccess] Owner # 42| 1: [TypeAccess] Integer -# 42| 3: [Method] setVarResource0 +# 42| 5: [Method] setVarResource0 # 42| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 42| 0: [Parameter] @@ -693,14 +697,14 @@ delegatedProperties.kt: # 42| 1: [Constructor] # 42| 5: [BlockStmt] { ... } # 42| 0: [SuperConstructorInvocationStmt] super(...) -# 42| 1: [Method] get +# 42| 2: [Method] get #-----| 4: (Parameters) # 42| 0: [Parameter] a0 # 42| 5: [BlockStmt] { ... } # 42| 0: [ReturnStmt] return ... # 42| 0: [MethodAccess] getVarResource0(...) # 42| -1: [VarAccess] a0 -# 42| 1: [Method] invoke +# 42| 3: [Method] invoke #-----| 4: (Parameters) # 42| 0: [Parameter] a0 # 42| 5: [BlockStmt] { ... } @@ -708,7 +712,7 @@ delegatedProperties.kt: # 42| 0: [MethodAccess] get(...) # 42| -1: [ThisAccess] this # 42| 0: [VarAccess] a0 -# 42| 1: [Method] set +# 42| 4: [Method] set #-----| 4: (Parameters) # 42| 0: [Parameter] a0 # 42| 1: [Parameter] a1 @@ -721,10 +725,6 @@ delegatedProperties.kt: # 42| 0: [TypeAccess] Owner # 42| 1: [TypeAccess] Integer # 42| 2: [VarAccess] -# 42| 3: [FieldDeclaration] ResourceDelegate varResource0$delegate; -# 42| -1: [TypeAccess] ResourceDelegate -# 42| 0: [ClassInstanceExpr] new ResourceDelegate(...) -# 42| -3: [TypeAccess] ResourceDelegate # 45| 5: [Class] ResourceDelegate # 45| 1: [Constructor] ResourceDelegate # 45| 5: [BlockStmt] { ... } @@ -786,7 +786,7 @@ delegatedProperties.kt: # 62| 0: [ReturnStmt] return ... # 62| 0: [VarAccess] this.anotherClassInt # 62| -1: [ThisAccess] this -# 62| 2: [FieldDeclaration] int anotherClassInt; +# 62| 3: [FieldDeclaration] int anotherClassInt; # 62| -1: [TypeAccess] int # 62| 0: [VarAccess] anotherClassInt # 63| 8: [Class] Base @@ -806,7 +806,7 @@ delegatedProperties.kt: # 63| 0: [ReturnStmt] return ... # 63| 0: [VarAccess] this.baseClassInt # 63| -1: [ThisAccess] this -# 63| 2: [FieldDeclaration] int baseClassInt; +# 63| 3: [FieldDeclaration] int baseClassInt; # 63| -1: [TypeAccess] int # 63| 0: [VarAccess] baseClassInt # 65| 9: [Class] MyClass @@ -859,7 +859,10 @@ delegatedProperties.kt: # 65| 0: [ReturnStmt] return ... # 65| 0: [VarAccess] this.memberInt # 65| -1: [ThisAccess] this -# 65| 2: [Method] setMemberInt +# 65| 3: [FieldDeclaration] int memberInt; +# 65| -1: [TypeAccess] int +# 65| 0: [VarAccess] memberInt +# 65| 4: [Method] setMemberInt # 65| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 65| 0: [Parameter] @@ -870,19 +873,57 @@ delegatedProperties.kt: # 65| 0: [VarAccess] this.memberInt # 65| -1: [ThisAccess] this # 65| 1: [VarAccess] -# 65| 2: [FieldDeclaration] int memberInt; -# 65| -1: [TypeAccess] int -# 65| 0: [VarAccess] memberInt -# 65| 5: [Method] getAnotherClassInstance +# 65| 5: [FieldDeclaration] ClassWithDelegate anotherClassInstance; +# 65| -1: [TypeAccess] ClassWithDelegate +# 65| 0: [VarAccess] anotherClassInstance +# 65| 6: [Method] getAnotherClassInstance # 65| 3: [TypeAccess] ClassWithDelegate # 65| 5: [BlockStmt] { ... } # 65| 0: [ReturnStmt] return ... # 65| 0: [VarAccess] this.anotherClassInstance # 65| -1: [ThisAccess] this -# 65| 5: [FieldDeclaration] ClassWithDelegate anotherClassInstance; -# 65| -1: [TypeAccess] ClassWithDelegate -# 65| 0: [VarAccess] anotherClassInstance -# 66| 7: [Method] getDelegatedToMember1 +# 66| 7: [FieldDeclaration] KMutableProperty0 delegatedToMember1$delegate; +# 66| -1: [TypeAccess] KMutableProperty0 +# 66| 0: [TypeAccess] Integer +# 66| 0: [PropertyRefExpr] ...::... +# 66| -4: [AnonymousClass] new KMutableProperty0(...) { ... } +# 66| 1: [Constructor] +#-----| 4: (Parameters) +# 66| 0: [Parameter] +# 66| 5: [BlockStmt] { ... } +# 66| 0: [SuperConstructorInvocationStmt] super(...) +# 66| 1: [ExprStmt] ; +# 66| 0: [AssignExpr] ...=... +# 66| 0: [VarAccess] this. +# 66| -1: [ThisAccess] this +# 66| 1: [VarAccess] +# 66| 2: [FieldDeclaration] MyClass ; +# 66| -1: [TypeAccess] MyClass +# 66| 3: [Method] get +# 66| 5: [BlockStmt] { ... } +# 66| 0: [ReturnStmt] return ... +# 66| 0: [MethodAccess] getMemberInt(...) +# 66| -1: [VarAccess] this. +# 66| -1: [ThisAccess] this +# 66| 4: [Method] invoke +# 66| 5: [BlockStmt] { ... } +# 66| 0: [ReturnStmt] return ... +# 66| 0: [MethodAccess] get(...) +# 66| -1: [ThisAccess] this +# 66| 5: [Method] set +#-----| 4: (Parameters) +# 66| 0: [Parameter] a0 +# 66| 5: [BlockStmt] { ... } +# 66| 0: [ReturnStmt] return ... +# 66| 0: [MethodAccess] setMemberInt(...) +# 66| -1: [VarAccess] this. +# 66| -1: [ThisAccess] this +# 66| 0: [VarAccess] a0 +# 66| -3: [TypeAccess] KMutableProperty0 +# 66| 0: [TypeAccess] Integer +# 66| 0: [ThisAccess] MyClass.this +# 66| 0: [TypeAccess] MyClass +# 66| 8: [Method] getDelegatedToMember1 # 66| 3: [TypeAccess] int # 66| 5: [BlockStmt] { ... } # 66| 0: [ReturnStmt] return ... @@ -897,14 +938,14 @@ delegatedProperties.kt: # 66| 1: [Constructor] # 66| 5: [BlockStmt] { ... } # 66| 0: [SuperConstructorInvocationStmt] super(...) -# 66| 1: [Method] get +# 66| 2: [Method] get #-----| 4: (Parameters) # 66| 0: [Parameter] a0 # 66| 5: [BlockStmt] { ... } # 66| 0: [ReturnStmt] return ... # 66| 0: [MethodAccess] getDelegatedToMember1(...) # 66| -1: [VarAccess] a0 -# 66| 1: [Method] invoke +# 66| 3: [Method] invoke #-----| 4: (Parameters) # 66| 0: [Parameter] a0 # 66| 5: [BlockStmt] { ... } @@ -912,7 +953,7 @@ delegatedProperties.kt: # 66| 0: [MethodAccess] get(...) # 66| -1: [ThisAccess] this # 66| 0: [VarAccess] a0 -# 66| 1: [Method] set +# 66| 4: [Method] set #-----| 4: (Parameters) # 66| 0: [Parameter] a0 # 66| 1: [Parameter] a1 @@ -924,7 +965,7 @@ delegatedProperties.kt: # 66| -3: [TypeAccess] KMutableProperty1 # 66| 0: [TypeAccess] MyClass # 66| 1: [TypeAccess] Integer -# 66| 7: [Method] setDelegatedToMember1 +# 66| 9: [Method] setDelegatedToMember1 # 66| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 66| 0: [Parameter] @@ -942,14 +983,14 @@ delegatedProperties.kt: # 66| 1: [Constructor] # 66| 5: [BlockStmt] { ... } # 66| 0: [SuperConstructorInvocationStmt] super(...) -# 66| 1: [Method] get +# 66| 2: [Method] get #-----| 4: (Parameters) # 66| 0: [Parameter] a0 # 66| 5: [BlockStmt] { ... } # 66| 0: [ReturnStmt] return ... # 66| 0: [MethodAccess] getDelegatedToMember1(...) # 66| -1: [VarAccess] a0 -# 66| 1: [Method] invoke +# 66| 3: [Method] invoke #-----| 4: (Parameters) # 66| 0: [Parameter] a0 # 66| 5: [BlockStmt] { ... } @@ -957,7 +998,7 @@ delegatedProperties.kt: # 66| 0: [MethodAccess] get(...) # 66| -1: [ThisAccess] this # 66| 0: [VarAccess] a0 -# 66| 1: [Method] set +# 66| 4: [Method] set #-----| 4: (Parameters) # 66| 0: [Parameter] a0 # 66| 1: [Parameter] a1 @@ -970,48 +1011,43 @@ delegatedProperties.kt: # 66| 0: [TypeAccess] MyClass # 66| 1: [TypeAccess] Integer # 66| 3: [VarAccess] -# 66| 7: [FieldDeclaration] KMutableProperty0 delegatedToMember1$delegate; -# 66| -1: [TypeAccess] KMutableProperty0 -# 66| 0: [TypeAccess] Integer -# 66| 0: [PropertyRefExpr] ...::... -# 66| -4: [AnonymousClass] new KMutableProperty0(...) { ... } -# 66| 1: [Constructor] +# 67| 10: [FieldDeclaration] KMutableProperty1 delegatedToMember2$delegate; +# 67| -1: [TypeAccess] KMutableProperty1 +# 67| 0: [TypeAccess] MyClass +# 67| 1: [TypeAccess] Integer +# 67| 0: [PropertyRefExpr] ...::... +# 67| -4: [AnonymousClass] new KMutableProperty1(...) { ... } +# 67| 1: [Constructor] +# 67| 5: [BlockStmt] { ... } +# 67| 0: [SuperConstructorInvocationStmt] super(...) +# 67| 2: [Method] get #-----| 4: (Parameters) -# 66| 0: [Parameter] -# 66| 5: [BlockStmt] { ... } -# 66| 0: [SuperConstructorInvocationStmt] super(...) -# 66| 1: [ExprStmt] ; -# 66| 0: [AssignExpr] ...=... -# 66| 0: [VarAccess] this. -# 66| -1: [ThisAccess] this -# 66| 1: [VarAccess] -# 66| 1: [FieldDeclaration] MyClass ; -# 66| -1: [TypeAccess] MyClass -# 66| 1: [Method] get -# 66| 5: [BlockStmt] { ... } -# 66| 0: [ReturnStmt] return ... -# 66| 0: [MethodAccess] getMemberInt(...) -# 66| -1: [VarAccess] this. -# 66| -1: [ThisAccess] this -# 66| 1: [Method] invoke -# 66| 5: [BlockStmt] { ... } -# 66| 0: [ReturnStmt] return ... -# 66| 0: [MethodAccess] get(...) -# 66| -1: [ThisAccess] this -# 66| 1: [Method] set +# 67| 0: [Parameter] a0 +# 67| 5: [BlockStmt] { ... } +# 67| 0: [ReturnStmt] return ... +# 67| 0: [MethodAccess] getMemberInt(...) +# 67| -1: [VarAccess] a0 +# 67| 3: [Method] invoke #-----| 4: (Parameters) -# 66| 0: [Parameter] a0 -# 66| 5: [BlockStmt] { ... } -# 66| 0: [ReturnStmt] return ... -# 66| 0: [MethodAccess] setMemberInt(...) -# 66| -1: [VarAccess] this. -# 66| -1: [ThisAccess] this -# 66| 0: [VarAccess] a0 -# 66| -3: [TypeAccess] KMutableProperty0 -# 66| 0: [TypeAccess] Integer -# 66| 0: [ThisAccess] MyClass.this -# 66| 0: [TypeAccess] MyClass -# 67| 10: [Method] getDelegatedToMember2 +# 67| 0: [Parameter] a0 +# 67| 5: [BlockStmt] { ... } +# 67| 0: [ReturnStmt] return ... +# 67| 0: [MethodAccess] get(...) +# 67| -1: [ThisAccess] this +# 67| 0: [VarAccess] a0 +# 67| 4: [Method] set +#-----| 4: (Parameters) +# 67| 0: [Parameter] a0 +# 67| 1: [Parameter] a1 +# 67| 5: [BlockStmt] { ... } +# 67| 0: [ReturnStmt] return ... +# 67| 0: [MethodAccess] setMemberInt(...) +# 67| -1: [VarAccess] a0 +# 67| 0: [VarAccess] a1 +# 67| -3: [TypeAccess] KMutableProperty1 +# 67| 0: [TypeAccess] MyClass +# 67| 1: [TypeAccess] Integer +# 67| 11: [Method] getDelegatedToMember2 # 67| 3: [TypeAccess] int # 67| 5: [BlockStmt] { ... } # 67| 0: [ReturnStmt] return ... @@ -1027,14 +1063,14 @@ delegatedProperties.kt: # 67| 1: [Constructor] # 67| 5: [BlockStmt] { ... } # 67| 0: [SuperConstructorInvocationStmt] super(...) -# 67| 1: [Method] get +# 67| 2: [Method] get #-----| 4: (Parameters) # 67| 0: [Parameter] a0 # 67| 5: [BlockStmt] { ... } # 67| 0: [ReturnStmt] return ... # 67| 0: [MethodAccess] getDelegatedToMember2(...) # 67| -1: [VarAccess] a0 -# 67| 1: [Method] invoke +# 67| 3: [Method] invoke #-----| 4: (Parameters) # 67| 0: [Parameter] a0 # 67| 5: [BlockStmt] { ... } @@ -1042,7 +1078,7 @@ delegatedProperties.kt: # 67| 0: [MethodAccess] get(...) # 67| -1: [ThisAccess] this # 67| 0: [VarAccess] a0 -# 67| 1: [Method] set +# 67| 4: [Method] set #-----| 4: (Parameters) # 67| 0: [Parameter] a0 # 67| 1: [Parameter] a1 @@ -1054,7 +1090,7 @@ delegatedProperties.kt: # 67| -3: [TypeAccess] KMutableProperty1 # 67| 0: [TypeAccess] MyClass # 67| 1: [TypeAccess] Integer -# 67| 10: [Method] setDelegatedToMember2 +# 67| 12: [Method] setDelegatedToMember2 # 67| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 67| 0: [Parameter] @@ -1073,14 +1109,14 @@ delegatedProperties.kt: # 67| 1: [Constructor] # 67| 5: [BlockStmt] { ... } # 67| 0: [SuperConstructorInvocationStmt] super(...) -# 67| 1: [Method] get +# 67| 2: [Method] get #-----| 4: (Parameters) # 67| 0: [Parameter] a0 # 67| 5: [BlockStmt] { ... } # 67| 0: [ReturnStmt] return ... # 67| 0: [MethodAccess] getDelegatedToMember2(...) # 67| -1: [VarAccess] a0 -# 67| 1: [Method] invoke +# 67| 3: [Method] invoke #-----| 4: (Parameters) # 67| 0: [Parameter] a0 # 67| 5: [BlockStmt] { ... } @@ -1088,7 +1124,7 @@ delegatedProperties.kt: # 67| 0: [MethodAccess] get(...) # 67| -1: [ThisAccess] this # 67| 0: [VarAccess] a0 -# 67| 1: [Method] set +# 67| 4: [Method] set #-----| 4: (Parameters) # 67| 0: [Parameter] a0 # 67| 1: [Parameter] a1 @@ -1101,43 +1137,50 @@ delegatedProperties.kt: # 67| 0: [TypeAccess] MyClass # 67| 1: [TypeAccess] Integer # 67| 3: [VarAccess] -# 67| 10: [FieldDeclaration] KMutableProperty1 delegatedToMember2$delegate; -# 67| -1: [TypeAccess] KMutableProperty1 -# 67| 0: [TypeAccess] MyClass -# 67| 1: [TypeAccess] Integer -# 67| 0: [PropertyRefExpr] ...::... -# 67| -4: [AnonymousClass] new KMutableProperty1(...) { ... } -# 67| 1: [Constructor] -# 67| 5: [BlockStmt] { ... } -# 67| 0: [SuperConstructorInvocationStmt] super(...) -# 67| 1: [Method] get +# 69| 13: [FieldDeclaration] KMutableProperty0 delegatedToExtMember1$delegate; +# 69| -1: [TypeAccess] KMutableProperty0 +# 69| 0: [TypeAccess] Integer +# 69| 0: [PropertyRefExpr] ...::... +# 69| -4: [AnonymousClass] new KMutableProperty0(...) { ... } +# 69| 1: [Constructor] #-----| 4: (Parameters) -# 67| 0: [Parameter] a0 -# 67| 5: [BlockStmt] { ... } -# 67| 0: [ReturnStmt] return ... -# 67| 0: [MethodAccess] getMemberInt(...) -# 67| -1: [VarAccess] a0 -# 67| 1: [Method] invoke +# 69| 0: [Parameter] +# 69| 5: [BlockStmt] { ... } +# 69| 0: [SuperConstructorInvocationStmt] super(...) +# 69| 1: [ExprStmt] ; +# 69| 0: [AssignExpr] ...=... +# 69| 0: [VarAccess] this. +# 69| -1: [ThisAccess] this +# 69| 1: [VarAccess] +# 69| 2: [FieldDeclaration] MyClass ; +# 69| -1: [TypeAccess] MyClass +# 69| 3: [Method] get +# 69| 5: [BlockStmt] { ... } +# 69| 0: [ReturnStmt] return ... +# 69| 0: [MethodAccess] getExtDelegated(...) +# 69| -1: [TypeAccess] DelegatedPropertiesKt +# 69| 0: [VarAccess] this. +# 69| -1: [ThisAccess] this +# 69| 4: [Method] invoke +# 69| 5: [BlockStmt] { ... } +# 69| 0: [ReturnStmt] return ... +# 69| 0: [MethodAccess] get(...) +# 69| -1: [ThisAccess] this +# 69| 5: [Method] set #-----| 4: (Parameters) -# 67| 0: [Parameter] a0 -# 67| 5: [BlockStmt] { ... } -# 67| 0: [ReturnStmt] return ... -# 67| 0: [MethodAccess] get(...) -# 67| -1: [ThisAccess] this -# 67| 0: [VarAccess] a0 -# 67| 1: [Method] set -#-----| 4: (Parameters) -# 67| 0: [Parameter] a0 -# 67| 1: [Parameter] a1 -# 67| 5: [BlockStmt] { ... } -# 67| 0: [ReturnStmt] return ... -# 67| 0: [MethodAccess] setMemberInt(...) -# 67| -1: [VarAccess] a0 -# 67| 0: [VarAccess] a1 -# 67| -3: [TypeAccess] KMutableProperty1 -# 67| 0: [TypeAccess] MyClass -# 67| 1: [TypeAccess] Integer -# 69| 13: [Method] getDelegatedToExtMember1 +# 69| 0: [Parameter] a0 +# 69| 5: [BlockStmt] { ... } +# 69| 0: [ReturnStmt] return ... +# 69| 0: [MethodAccess] setExtDelegated(...) +# 69| -1: [TypeAccess] DelegatedPropertiesKt +# 69| 0: [VarAccess] this. +# 69| -1: [ThisAccess] this +# 69| 1: [VarAccess] a0 +# 69| -3: [TypeAccess] KMutableProperty0 +# 69| 0: [TypeAccess] Integer +# 69| 0: [ThisAccess] MyClass.this +# 69| 0: [TypeAccess] MyClass +# 69| 14: [Method] getDelegatedToExtMember1 # 69| 3: [TypeAccess] int # 69| 5: [BlockStmt] { ... } # 69| 0: [ReturnStmt] return ... @@ -1152,14 +1195,14 @@ delegatedProperties.kt: # 69| 1: [Constructor] # 69| 5: [BlockStmt] { ... } # 69| 0: [SuperConstructorInvocationStmt] super(...) -# 69| 1: [Method] get +# 69| 2: [Method] get #-----| 4: (Parameters) # 69| 0: [Parameter] a0 # 69| 5: [BlockStmt] { ... } # 69| 0: [ReturnStmt] return ... # 69| 0: [MethodAccess] getDelegatedToExtMember1(...) # 69| -1: [VarAccess] a0 -# 69| 1: [Method] invoke +# 69| 3: [Method] invoke #-----| 4: (Parameters) # 69| 0: [Parameter] a0 # 69| 5: [BlockStmt] { ... } @@ -1167,7 +1210,7 @@ delegatedProperties.kt: # 69| 0: [MethodAccess] get(...) # 69| -1: [ThisAccess] this # 69| 0: [VarAccess] a0 -# 69| 1: [Method] set +# 69| 4: [Method] set #-----| 4: (Parameters) # 69| 0: [Parameter] a0 # 69| 1: [Parameter] a1 @@ -1179,7 +1222,7 @@ delegatedProperties.kt: # 69| -3: [TypeAccess] KMutableProperty1 # 69| 0: [TypeAccess] MyClass # 69| 1: [TypeAccess] Integer -# 69| 13: [Method] setDelegatedToExtMember1 +# 69| 15: [Method] setDelegatedToExtMember1 # 69| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 69| 0: [Parameter] @@ -1197,14 +1240,14 @@ delegatedProperties.kt: # 69| 1: [Constructor] # 69| 5: [BlockStmt] { ... } # 69| 0: [SuperConstructorInvocationStmt] super(...) -# 69| 1: [Method] get +# 69| 2: [Method] get #-----| 4: (Parameters) # 69| 0: [Parameter] a0 # 69| 5: [BlockStmt] { ... } # 69| 0: [ReturnStmt] return ... # 69| 0: [MethodAccess] getDelegatedToExtMember1(...) # 69| -1: [VarAccess] a0 -# 69| 1: [Method] invoke +# 69| 3: [Method] invoke #-----| 4: (Parameters) # 69| 0: [Parameter] a0 # 69| 5: [BlockStmt] { ... } @@ -1212,7 +1255,7 @@ delegatedProperties.kt: # 69| 0: [MethodAccess] get(...) # 69| -1: [ThisAccess] this # 69| 0: [VarAccess] a0 -# 69| 1: [Method] set +# 69| 4: [Method] set #-----| 4: (Parameters) # 69| 0: [Parameter] a0 # 69| 1: [Parameter] a1 @@ -1225,50 +1268,45 @@ delegatedProperties.kt: # 69| 0: [TypeAccess] MyClass # 69| 1: [TypeAccess] Integer # 69| 3: [VarAccess] -# 69| 13: [FieldDeclaration] KMutableProperty0 delegatedToExtMember1$delegate; -# 69| -1: [TypeAccess] KMutableProperty0 -# 69| 0: [TypeAccess] Integer -# 69| 0: [PropertyRefExpr] ...::... -# 69| -4: [AnonymousClass] new KMutableProperty0(...) { ... } -# 69| 1: [Constructor] +# 70| 16: [FieldDeclaration] KMutableProperty1 delegatedToExtMember2$delegate; +# 70| -1: [TypeAccess] KMutableProperty1 +# 70| 0: [TypeAccess] MyClass +# 70| 1: [TypeAccess] Integer +# 70| 0: [PropertyRefExpr] ...::... +# 70| -4: [AnonymousClass] new KMutableProperty1(...) { ... } +# 70| 1: [Constructor] +# 70| 5: [BlockStmt] { ... } +# 70| 0: [SuperConstructorInvocationStmt] super(...) +# 70| 2: [Method] get #-----| 4: (Parameters) -# 69| 0: [Parameter] -# 69| 5: [BlockStmt] { ... } -# 69| 0: [SuperConstructorInvocationStmt] super(...) -# 69| 1: [ExprStmt] ; -# 69| 0: [AssignExpr] ...=... -# 69| 0: [VarAccess] this. -# 69| -1: [ThisAccess] this -# 69| 1: [VarAccess] -# 69| 1: [FieldDeclaration] MyClass ; -# 69| -1: [TypeAccess] MyClass -# 69| 1: [Method] get -# 69| 5: [BlockStmt] { ... } -# 69| 0: [ReturnStmt] return ... -# 69| 0: [MethodAccess] getExtDelegated(...) -# 69| -1: [TypeAccess] DelegatedPropertiesKt -# 69| 0: [VarAccess] this. -# 69| -1: [ThisAccess] this -# 69| 1: [Method] invoke -# 69| 5: [BlockStmt] { ... } -# 69| 0: [ReturnStmt] return ... -# 69| 0: [MethodAccess] get(...) -# 69| -1: [ThisAccess] this -# 69| 1: [Method] set +# 70| 0: [Parameter] a0 +# 70| 5: [BlockStmt] { ... } +# 70| 0: [ReturnStmt] return ... +# 70| 0: [MethodAccess] getExtDelegated(...) +# 70| -1: [TypeAccess] DelegatedPropertiesKt +# 70| 0: [VarAccess] a0 +# 70| 3: [Method] invoke #-----| 4: (Parameters) -# 69| 0: [Parameter] a0 -# 69| 5: [BlockStmt] { ... } -# 69| 0: [ReturnStmt] return ... -# 69| 0: [MethodAccess] setExtDelegated(...) -# 69| -1: [TypeAccess] DelegatedPropertiesKt -# 69| 0: [VarAccess] this. -# 69| -1: [ThisAccess] this -# 69| 1: [VarAccess] a0 -# 69| -3: [TypeAccess] KMutableProperty0 -# 69| 0: [TypeAccess] Integer -# 69| 0: [ThisAccess] MyClass.this -# 69| 0: [TypeAccess] MyClass -# 70| 16: [Method] getDelegatedToExtMember2 +# 70| 0: [Parameter] a0 +# 70| 5: [BlockStmt] { ... } +# 70| 0: [ReturnStmt] return ... +# 70| 0: [MethodAccess] get(...) +# 70| -1: [ThisAccess] this +# 70| 0: [VarAccess] a0 +# 70| 4: [Method] set +#-----| 4: (Parameters) +# 70| 0: [Parameter] a0 +# 70| 1: [Parameter] a1 +# 70| 5: [BlockStmt] { ... } +# 70| 0: [ReturnStmt] return ... +# 70| 0: [MethodAccess] setExtDelegated(...) +# 70| -1: [TypeAccess] DelegatedPropertiesKt +# 70| 0: [VarAccess] a0 +# 70| 1: [VarAccess] a1 +# 70| -3: [TypeAccess] KMutableProperty1 +# 70| 0: [TypeAccess] MyClass +# 70| 1: [TypeAccess] Integer +# 70| 17: [Method] getDelegatedToExtMember2 # 70| 3: [TypeAccess] int # 70| 5: [BlockStmt] { ... } # 70| 0: [ReturnStmt] return ... @@ -1284,14 +1322,14 @@ delegatedProperties.kt: # 70| 1: [Constructor] # 70| 5: [BlockStmt] { ... } # 70| 0: [SuperConstructorInvocationStmt] super(...) -# 70| 1: [Method] get +# 70| 2: [Method] get #-----| 4: (Parameters) # 70| 0: [Parameter] a0 # 70| 5: [BlockStmt] { ... } # 70| 0: [ReturnStmt] return ... # 70| 0: [MethodAccess] getDelegatedToExtMember2(...) # 70| -1: [VarAccess] a0 -# 70| 1: [Method] invoke +# 70| 3: [Method] invoke #-----| 4: (Parameters) # 70| 0: [Parameter] a0 # 70| 5: [BlockStmt] { ... } @@ -1299,7 +1337,7 @@ delegatedProperties.kt: # 70| 0: [MethodAccess] get(...) # 70| -1: [ThisAccess] this # 70| 0: [VarAccess] a0 -# 70| 1: [Method] set +# 70| 4: [Method] set #-----| 4: (Parameters) # 70| 0: [Parameter] a0 # 70| 1: [Parameter] a1 @@ -1311,7 +1349,7 @@ delegatedProperties.kt: # 70| -3: [TypeAccess] KMutableProperty1 # 70| 0: [TypeAccess] MyClass # 70| 1: [TypeAccess] Integer -# 70| 16: [Method] setDelegatedToExtMember2 +# 70| 18: [Method] setDelegatedToExtMember2 # 70| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 70| 0: [Parameter] @@ -1330,14 +1368,14 @@ delegatedProperties.kt: # 70| 1: [Constructor] # 70| 5: [BlockStmt] { ... } # 70| 0: [SuperConstructorInvocationStmt] super(...) -# 70| 1: [Method] get +# 70| 2: [Method] get #-----| 4: (Parameters) # 70| 0: [Parameter] a0 # 70| 5: [BlockStmt] { ... } # 70| 0: [ReturnStmt] return ... # 70| 0: [MethodAccess] getDelegatedToExtMember2(...) # 70| -1: [VarAccess] a0 -# 70| 1: [Method] invoke +# 70| 3: [Method] invoke #-----| 4: (Parameters) # 70| 0: [Parameter] a0 # 70| 5: [BlockStmt] { ... } @@ -1345,7 +1383,7 @@ delegatedProperties.kt: # 70| 0: [MethodAccess] get(...) # 70| -1: [ThisAccess] this # 70| 0: [VarAccess] a0 -# 70| 1: [Method] set +# 70| 4: [Method] set #-----| 4: (Parameters) # 70| 0: [Parameter] a0 # 70| 1: [Parameter] a1 @@ -1358,77 +1396,6 @@ delegatedProperties.kt: # 70| 0: [TypeAccess] MyClass # 70| 1: [TypeAccess] Integer # 70| 3: [VarAccess] -# 70| 16: [FieldDeclaration] KMutableProperty1 delegatedToExtMember2$delegate; -# 70| -1: [TypeAccess] KMutableProperty1 -# 70| 0: [TypeAccess] MyClass -# 70| 1: [TypeAccess] Integer -# 70| 0: [PropertyRefExpr] ...::... -# 70| -4: [AnonymousClass] new KMutableProperty1(...) { ... } -# 70| 1: [Constructor] -# 70| 5: [BlockStmt] { ... } -# 70| 0: [SuperConstructorInvocationStmt] super(...) -# 70| 1: [Method] get -#-----| 4: (Parameters) -# 70| 0: [Parameter] a0 -# 70| 5: [BlockStmt] { ... } -# 70| 0: [ReturnStmt] return ... -# 70| 0: [MethodAccess] getExtDelegated(...) -# 70| -1: [TypeAccess] DelegatedPropertiesKt -# 70| 0: [VarAccess] a0 -# 70| 1: [Method] invoke -#-----| 4: (Parameters) -# 70| 0: [Parameter] a0 -# 70| 5: [BlockStmt] { ... } -# 70| 0: [ReturnStmt] return ... -# 70| 0: [MethodAccess] get(...) -# 70| -1: [ThisAccess] this -# 70| 0: [VarAccess] a0 -# 70| 1: [Method] set -#-----| 4: (Parameters) -# 70| 0: [Parameter] a0 -# 70| 1: [Parameter] a1 -# 70| 5: [BlockStmt] { ... } -# 70| 0: [ReturnStmt] return ... -# 70| 0: [MethodAccess] setExtDelegated(...) -# 70| -1: [TypeAccess] DelegatedPropertiesKt -# 70| 0: [VarAccess] a0 -# 70| 1: [VarAccess] a1 -# 70| -3: [TypeAccess] KMutableProperty1 -# 70| 0: [TypeAccess] MyClass -# 70| 1: [TypeAccess] Integer -# 72| 19: [Method] getDelegatedToBaseClass1 -# 72| 3: [TypeAccess] int -# 72| 5: [BlockStmt] { ... } -# 72| 0: [ReturnStmt] return ... -# 72| 0: [MethodAccess] getValue(...) -# 72| -2: [TypeAccess] Integer -# 72| -1: [TypeAccess] PropertyReferenceDelegatesKt -# 72| 0: [VarAccess] this.delegatedToBaseClass1$delegate -# 72| -1: [ThisAccess] this -# 1| 1: [ThisAccess] this -# 72| 2: [PropertyRefExpr] ...::... -# 72| -4: [AnonymousClass] new KProperty1(...) { ... } -# 72| 1: [Constructor] -# 72| 5: [BlockStmt] { ... } -# 72| 0: [SuperConstructorInvocationStmt] super(...) -# 72| 1: [Method] get -#-----| 4: (Parameters) -# 72| 0: [Parameter] a0 -# 72| 5: [BlockStmt] { ... } -# 72| 0: [ReturnStmt] return ... -# 72| 0: [MethodAccess] getDelegatedToBaseClass1(...) -# 72| -1: [VarAccess] a0 -# 72| 1: [Method] invoke -#-----| 4: (Parameters) -# 72| 0: [Parameter] a0 -# 72| 5: [BlockStmt] { ... } -# 72| 0: [ReturnStmt] return ... -# 72| 0: [MethodAccess] get(...) -# 72| -1: [ThisAccess] this -# 72| 0: [VarAccess] a0 -# 72| -3: [TypeAccess] KProperty1 -# 72| 0: [TypeAccess] MyClass -# 72| 1: [TypeAccess] Integer # 72| 19: [FieldDeclaration] KProperty0 delegatedToBaseClass1$delegate; # 72| -1: [TypeAccess] KProperty0 # 72| 0: [TypeAccess] Integer @@ -1444,15 +1411,15 @@ delegatedProperties.kt: # 72| 0: [VarAccess] this. # 72| -1: [ThisAccess] this # 72| 1: [VarAccess] -# 72| 1: [FieldDeclaration] MyClass ; +# 72| 2: [FieldDeclaration] MyClass ; # 72| -1: [TypeAccess] MyClass -# 72| 1: [Method] get +# 72| 3: [Method] get # 72| 5: [BlockStmt] { ... } # 72| 0: [ReturnStmt] return ... # 72| 0: [MethodAccess] getBaseClassInt(...) # 72| -1: [VarAccess] this. # 72| -1: [ThisAccess] this -# 72| 1: [Method] invoke +# 72| 4: [Method] invoke # 72| 5: [BlockStmt] { ... } # 72| 0: [ReturnStmt] return ... # 72| 0: [MethodAccess] get(...) @@ -1461,7 +1428,67 @@ delegatedProperties.kt: # 72| 0: [TypeAccess] Integer # 72| 0: [ThisAccess] MyClass.this # 72| 0: [TypeAccess] MyClass -# 73| 21: [Method] getDelegatedToBaseClass2 +# 72| 20: [Method] getDelegatedToBaseClass1 +# 72| 3: [TypeAccess] int +# 72| 5: [BlockStmt] { ... } +# 72| 0: [ReturnStmt] return ... +# 72| 0: [MethodAccess] getValue(...) +# 72| -2: [TypeAccess] Integer +# 72| -1: [TypeAccess] PropertyReferenceDelegatesKt +# 72| 0: [VarAccess] this.delegatedToBaseClass1$delegate +# 72| -1: [ThisAccess] this +# 1| 1: [ThisAccess] this +# 72| 2: [PropertyRefExpr] ...::... +# 72| -4: [AnonymousClass] new KProperty1(...) { ... } +# 72| 1: [Constructor] +# 72| 5: [BlockStmt] { ... } +# 72| 0: [SuperConstructorInvocationStmt] super(...) +# 72| 2: [Method] get +#-----| 4: (Parameters) +# 72| 0: [Parameter] a0 +# 72| 5: [BlockStmt] { ... } +# 72| 0: [ReturnStmt] return ... +# 72| 0: [MethodAccess] getDelegatedToBaseClass1(...) +# 72| -1: [VarAccess] a0 +# 72| 3: [Method] invoke +#-----| 4: (Parameters) +# 72| 0: [Parameter] a0 +# 72| 5: [BlockStmt] { ... } +# 72| 0: [ReturnStmt] return ... +# 72| 0: [MethodAccess] get(...) +# 72| -1: [ThisAccess] this +# 72| 0: [VarAccess] a0 +# 72| -3: [TypeAccess] KProperty1 +# 72| 0: [TypeAccess] MyClass +# 72| 1: [TypeAccess] Integer +# 73| 21: [FieldDeclaration] KProperty1 delegatedToBaseClass2$delegate; +# 73| -1: [TypeAccess] KProperty1 +# 73| 0: [TypeAccess] Base +# 73| 1: [TypeAccess] Integer +# 73| 0: [PropertyRefExpr] ...::... +# 73| -4: [AnonymousClass] new KProperty1(...) { ... } +# 73| 1: [Constructor] +# 73| 5: [BlockStmt] { ... } +# 73| 0: [SuperConstructorInvocationStmt] super(...) +# 73| 2: [Method] get +#-----| 4: (Parameters) +# 73| 0: [Parameter] a0 +# 73| 5: [BlockStmt] { ... } +# 73| 0: [ReturnStmt] return ... +# 73| 0: [MethodAccess] getBaseClassInt(...) +# 73| -1: [VarAccess] a0 +# 73| 3: [Method] invoke +#-----| 4: (Parameters) +# 73| 0: [Parameter] a0 +# 73| 5: [BlockStmt] { ... } +# 73| 0: [ReturnStmt] return ... +# 73| 0: [MethodAccess] get(...) +# 73| -1: [ThisAccess] this +# 73| 0: [VarAccess] a0 +# 73| -3: [TypeAccess] KProperty1 +# 73| 0: [TypeAccess] Base +# 73| 1: [TypeAccess] Integer +# 73| 22: [Method] getDelegatedToBaseClass2 # 73| 3: [TypeAccess] int # 73| 5: [BlockStmt] { ... } # 73| 0: [ReturnStmt] return ... @@ -1477,14 +1504,14 @@ delegatedProperties.kt: # 73| 1: [Constructor] # 73| 5: [BlockStmt] { ... } # 73| 0: [SuperConstructorInvocationStmt] super(...) -# 73| 1: [Method] get +# 73| 2: [Method] get #-----| 4: (Parameters) # 73| 0: [Parameter] a0 # 73| 5: [BlockStmt] { ... } # 73| 0: [ReturnStmt] return ... # 73| 0: [MethodAccess] getDelegatedToBaseClass2(...) # 73| -1: [VarAccess] a0 -# 73| 1: [Method] invoke +# 73| 3: [Method] invoke #-----| 4: (Parameters) # 73| 0: [Parameter] a0 # 73| 5: [BlockStmt] { ... } @@ -1495,66 +1522,6 @@ delegatedProperties.kt: # 73| -3: [TypeAccess] KProperty1 # 73| 0: [TypeAccess] MyClass # 73| 1: [TypeAccess] Integer -# 73| 21: [FieldDeclaration] KProperty1 delegatedToBaseClass2$delegate; -# 73| -1: [TypeAccess] KProperty1 -# 73| 0: [TypeAccess] Base -# 73| 1: [TypeAccess] Integer -# 73| 0: [PropertyRefExpr] ...::... -# 73| -4: [AnonymousClass] new KProperty1(...) { ... } -# 73| 1: [Constructor] -# 73| 5: [BlockStmt] { ... } -# 73| 0: [SuperConstructorInvocationStmt] super(...) -# 73| 1: [Method] get -#-----| 4: (Parameters) -# 73| 0: [Parameter] a0 -# 73| 5: [BlockStmt] { ... } -# 73| 0: [ReturnStmt] return ... -# 73| 0: [MethodAccess] getBaseClassInt(...) -# 73| -1: [VarAccess] a0 -# 73| 1: [Method] invoke -#-----| 4: (Parameters) -# 73| 0: [Parameter] a0 -# 73| 5: [BlockStmt] { ... } -# 73| 0: [ReturnStmt] return ... -# 73| 0: [MethodAccess] get(...) -# 73| -1: [ThisAccess] this -# 73| 0: [VarAccess] a0 -# 73| -3: [TypeAccess] KProperty1 -# 73| 0: [TypeAccess] Base -# 73| 1: [TypeAccess] Integer -# 75| 23: [Method] getDelegatedToAnotherClass1 -# 75| 3: [TypeAccess] int -# 75| 5: [BlockStmt] { ... } -# 75| 0: [ReturnStmt] return ... -# 75| 0: [MethodAccess] getValue(...) -# 75| -2: [TypeAccess] Integer -# 75| -1: [TypeAccess] PropertyReferenceDelegatesKt -# 75| 0: [VarAccess] this.delegatedToAnotherClass1$delegate -# 75| -1: [ThisAccess] this -# 1| 1: [ThisAccess] this -# 75| 2: [PropertyRefExpr] ...::... -# 75| -4: [AnonymousClass] new KProperty1(...) { ... } -# 75| 1: [Constructor] -# 75| 5: [BlockStmt] { ... } -# 75| 0: [SuperConstructorInvocationStmt] super(...) -# 75| 1: [Method] get -#-----| 4: (Parameters) -# 75| 0: [Parameter] a0 -# 75| 5: [BlockStmt] { ... } -# 75| 0: [ReturnStmt] return ... -# 75| 0: [MethodAccess] getDelegatedToAnotherClass1(...) -# 75| -1: [VarAccess] a0 -# 75| 1: [Method] invoke -#-----| 4: (Parameters) -# 75| 0: [Parameter] a0 -# 75| 5: [BlockStmt] { ... } -# 75| 0: [ReturnStmt] return ... -# 75| 0: [MethodAccess] get(...) -# 75| -1: [ThisAccess] this -# 75| 0: [VarAccess] a0 -# 75| -3: [TypeAccess] KProperty1 -# 75| 0: [TypeAccess] MyClass -# 75| 1: [TypeAccess] Integer # 75| 23: [FieldDeclaration] KProperty0 delegatedToAnotherClass1$delegate; # 75| -1: [TypeAccess] KProperty0 # 75| 0: [TypeAccess] Integer @@ -1570,15 +1537,15 @@ delegatedProperties.kt: # 75| 0: [VarAccess] this. # 75| -1: [ThisAccess] this # 75| 1: [VarAccess] -# 75| 1: [FieldDeclaration] ClassWithDelegate ; +# 75| 2: [FieldDeclaration] ClassWithDelegate ; # 75| -1: [TypeAccess] ClassWithDelegate -# 75| 1: [Method] get +# 75| 3: [Method] get # 75| 5: [BlockStmt] { ... } # 75| 0: [ReturnStmt] return ... # 75| 0: [MethodAccess] getAnotherClassInt(...) # 75| -1: [VarAccess] this. # 75| -1: [ThisAccess] this -# 75| 1: [Method] invoke +# 75| 4: [Method] invoke # 75| 5: [BlockStmt] { ... } # 75| 0: [ReturnStmt] return ... # 75| 0: [MethodAccess] get(...) @@ -1588,7 +1555,68 @@ delegatedProperties.kt: # 75| 0: [MethodAccess] getAnotherClassInstance(...) # 75| -1: [ThisAccess] MyClass.this # 75| 0: [TypeAccess] MyClass -# 77| 25: [Method] getDelegatedToTopLevel +# 75| 24: [Method] getDelegatedToAnotherClass1 +# 75| 3: [TypeAccess] int +# 75| 5: [BlockStmt] { ... } +# 75| 0: [ReturnStmt] return ... +# 75| 0: [MethodAccess] getValue(...) +# 75| -2: [TypeAccess] Integer +# 75| -1: [TypeAccess] PropertyReferenceDelegatesKt +# 75| 0: [VarAccess] this.delegatedToAnotherClass1$delegate +# 75| -1: [ThisAccess] this +# 1| 1: [ThisAccess] this +# 75| 2: [PropertyRefExpr] ...::... +# 75| -4: [AnonymousClass] new KProperty1(...) { ... } +# 75| 1: [Constructor] +# 75| 5: [BlockStmt] { ... } +# 75| 0: [SuperConstructorInvocationStmt] super(...) +# 75| 2: [Method] get +#-----| 4: (Parameters) +# 75| 0: [Parameter] a0 +# 75| 5: [BlockStmt] { ... } +# 75| 0: [ReturnStmt] return ... +# 75| 0: [MethodAccess] getDelegatedToAnotherClass1(...) +# 75| -1: [VarAccess] a0 +# 75| 3: [Method] invoke +#-----| 4: (Parameters) +# 75| 0: [Parameter] a0 +# 75| 5: [BlockStmt] { ... } +# 75| 0: [ReturnStmt] return ... +# 75| 0: [MethodAccess] get(...) +# 75| -1: [ThisAccess] this +# 75| 0: [VarAccess] a0 +# 75| -3: [TypeAccess] KProperty1 +# 75| 0: [TypeAccess] MyClass +# 75| 1: [TypeAccess] Integer +# 77| 25: [FieldDeclaration] KMutableProperty0 delegatedToTopLevel$delegate; +# 77| -1: [TypeAccess] KMutableProperty0 +# 77| 0: [TypeAccess] Integer +# 77| 0: [PropertyRefExpr] ...::... +# 77| -4: [AnonymousClass] new KMutableProperty0(...) { ... } +# 77| 1: [Constructor] +# 77| 5: [BlockStmt] { ... } +# 77| 0: [SuperConstructorInvocationStmt] super(...) +# 77| 2: [Method] get +# 77| 5: [BlockStmt] { ... } +# 77| 0: [ReturnStmt] return ... +# 77| 0: [MethodAccess] getTopLevelInt(...) +# 77| -1: [TypeAccess] DelegatedPropertiesKt +# 77| 3: [Method] invoke +# 77| 5: [BlockStmt] { ... } +# 77| 0: [ReturnStmt] return ... +# 77| 0: [MethodAccess] get(...) +# 77| -1: [ThisAccess] this +# 77| 4: [Method] set +#-----| 4: (Parameters) +# 77| 0: [Parameter] a0 +# 77| 5: [BlockStmt] { ... } +# 77| 0: [ReturnStmt] return ... +# 77| 0: [MethodAccess] setTopLevelInt(...) +# 77| -1: [TypeAccess] DelegatedPropertiesKt +# 77| 0: [VarAccess] a0 +# 77| -3: [TypeAccess] KMutableProperty0 +# 77| 0: [TypeAccess] Integer +# 77| 26: [Method] getDelegatedToTopLevel # 77| 3: [TypeAccess] int # 77| 5: [BlockStmt] { ... } # 77| 0: [ReturnStmt] return ... @@ -1603,14 +1631,14 @@ delegatedProperties.kt: # 77| 1: [Constructor] # 77| 5: [BlockStmt] { ... } # 77| 0: [SuperConstructorInvocationStmt] super(...) -# 77| 1: [Method] get +# 77| 2: [Method] get #-----| 4: (Parameters) # 77| 0: [Parameter] a0 # 77| 5: [BlockStmt] { ... } # 77| 0: [ReturnStmt] return ... # 77| 0: [MethodAccess] getDelegatedToTopLevel(...) # 77| -1: [VarAccess] a0 -# 77| 1: [Method] invoke +# 77| 3: [Method] invoke #-----| 4: (Parameters) # 77| 0: [Parameter] a0 # 77| 5: [BlockStmt] { ... } @@ -1618,7 +1646,7 @@ delegatedProperties.kt: # 77| 0: [MethodAccess] get(...) # 77| -1: [ThisAccess] this # 77| 0: [VarAccess] a0 -# 77| 1: [Method] set +# 77| 4: [Method] set #-----| 4: (Parameters) # 77| 0: [Parameter] a0 # 77| 1: [Parameter] a1 @@ -1630,7 +1658,7 @@ delegatedProperties.kt: # 77| -3: [TypeAccess] KMutableProperty1 # 77| 0: [TypeAccess] MyClass # 77| 1: [TypeAccess] Integer -# 77| 25: [Method] setDelegatedToTopLevel +# 77| 27: [Method] setDelegatedToTopLevel # 77| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 77| 0: [Parameter] @@ -1648,14 +1676,14 @@ delegatedProperties.kt: # 77| 1: [Constructor] # 77| 5: [BlockStmt] { ... } # 77| 0: [SuperConstructorInvocationStmt] super(...) -# 77| 1: [Method] get +# 77| 2: [Method] get #-----| 4: (Parameters) # 77| 0: [Parameter] a0 # 77| 5: [BlockStmt] { ... } # 77| 0: [ReturnStmt] return ... # 77| 0: [MethodAccess] getDelegatedToTopLevel(...) # 77| -1: [VarAccess] a0 -# 77| 1: [Method] invoke +# 77| 3: [Method] invoke #-----| 4: (Parameters) # 77| 0: [Parameter] a0 # 77| 5: [BlockStmt] { ... } @@ -1663,7 +1691,7 @@ delegatedProperties.kt: # 77| 0: [MethodAccess] get(...) # 77| -1: [ThisAccess] this # 77| 0: [VarAccess] a0 -# 77| 1: [Method] set +# 77| 4: [Method] set #-----| 4: (Parameters) # 77| 0: [Parameter] a0 # 77| 1: [Parameter] a1 @@ -1676,35 +1704,26 @@ delegatedProperties.kt: # 77| 0: [TypeAccess] MyClass # 77| 1: [TypeAccess] Integer # 77| 3: [VarAccess] -# 77| 25: [FieldDeclaration] KMutableProperty0 delegatedToTopLevel$delegate; -# 77| -1: [TypeAccess] KMutableProperty0 -# 77| 0: [TypeAccess] Integer -# 77| 0: [PropertyRefExpr] ...::... -# 77| -4: [AnonymousClass] new KMutableProperty0(...) { ... } -# 77| 1: [Constructor] -# 77| 5: [BlockStmt] { ... } -# 77| 0: [SuperConstructorInvocationStmt] super(...) -# 77| 1: [Method] get -# 77| 5: [BlockStmt] { ... } -# 77| 0: [ReturnStmt] return ... -# 77| 0: [MethodAccess] getTopLevelInt(...) -# 77| -1: [TypeAccess] DelegatedPropertiesKt -# 77| 1: [Method] invoke -# 77| 5: [BlockStmt] { ... } -# 77| 0: [ReturnStmt] return ... -# 77| 0: [MethodAccess] get(...) -# 77| -1: [ThisAccess] this -# 77| 1: [Method] set -#-----| 4: (Parameters) -# 77| 0: [Parameter] a0 -# 77| 5: [BlockStmt] { ... } -# 77| 0: [ReturnStmt] return ... -# 77| 0: [MethodAccess] setTopLevelInt(...) -# 77| -1: [TypeAccess] DelegatedPropertiesKt -# 77| 0: [VarAccess] a0 -# 77| -3: [TypeAccess] KMutableProperty0 -# 77| 0: [TypeAccess] Integer -# 79| 28: [Method] getMax +# 79| 28: [FieldDeclaration] KProperty0 max$delegate; +# 79| -1: [TypeAccess] KProperty0 +# 79| 0: [TypeAccess] Integer +# 79| 0: [PropertyRefExpr] ...::... +# 79| -4: [AnonymousClass] new KProperty0(...) { ... } +# 79| 1: [Constructor] +# 79| 5: [BlockStmt] { ... } +# 79| 0: [SuperConstructorInvocationStmt] super(...) +# 79| 2: [Method] get +# 79| 5: [BlockStmt] { ... } +# 79| 0: [ReturnStmt] return ... +# 79| 0: [VarAccess] MAX_VALUE +# 79| 3: [Method] invoke +# 79| 5: [BlockStmt] { ... } +# 79| 0: [ReturnStmt] return ... +# 79| 0: [MethodAccess] get(...) +# 79| -1: [ThisAccess] this +# 79| -3: [TypeAccess] KProperty0 +# 79| 0: [TypeAccess] Integer +# 79| 29: [Method] getMax # 79| 3: [TypeAccess] int # 79| 5: [BlockStmt] { ... } # 79| 0: [ReturnStmt] return ... @@ -1719,14 +1738,14 @@ delegatedProperties.kt: # 79| 1: [Constructor] # 79| 5: [BlockStmt] { ... } # 79| 0: [SuperConstructorInvocationStmt] super(...) -# 79| 1: [Method] get +# 79| 2: [Method] get #-----| 4: (Parameters) # 79| 0: [Parameter] a0 # 79| 5: [BlockStmt] { ... } # 79| 0: [ReturnStmt] return ... # 79| 0: [MethodAccess] getMax(...) # 79| -1: [VarAccess] a0 -# 79| 1: [Method] invoke +# 79| 3: [Method] invoke #-----| 4: (Parameters) # 79| 0: [Parameter] a0 # 79| 5: [BlockStmt] { ... } @@ -1737,25 +1756,6 @@ delegatedProperties.kt: # 79| -3: [TypeAccess] KProperty1 # 79| 0: [TypeAccess] MyClass # 79| 1: [TypeAccess] Integer -# 79| 28: [FieldDeclaration] KProperty0 max$delegate; -# 79| -1: [TypeAccess] KProperty0 -# 79| 0: [TypeAccess] Integer -# 79| 0: [PropertyRefExpr] ...::... -# 79| -4: [AnonymousClass] new KProperty0(...) { ... } -# 79| 1: [Constructor] -# 79| 5: [BlockStmt] { ... } -# 79| 0: [SuperConstructorInvocationStmt] super(...) -# 79| 1: [Method] get -# 79| 5: [BlockStmt] { ... } -# 79| 0: [ReturnStmt] return ... -# 79| 0: [VarAccess] MAX_VALUE -# 79| 1: [Method] invoke -# 79| 5: [BlockStmt] { ... } -# 79| 0: [ReturnStmt] return ... -# 79| 0: [MethodAccess] get(...) -# 79| -1: [ThisAccess] this -# 79| -3: [TypeAccess] KProperty0 -# 79| 0: [TypeAccess] Integer # 81| 30: [Method] fn # 81| 3: [TypeAccess] Unit # 81| 5: [BlockStmt] { ... } @@ -1774,20 +1774,20 @@ delegatedProperties.kt: # 82| 0: [VarAccess] this. # 82| -1: [ThisAccess] this # 82| 1: [VarAccess] -# 82| 1: [FieldDeclaration] MyClass ; +# 82| 2: [FieldDeclaration] MyClass ; # 82| -1: [TypeAccess] MyClass -# 82| 1: [Method] get +# 82| 3: [Method] get # 82| 5: [BlockStmt] { ... } # 82| 0: [ReturnStmt] return ... # 82| 0: [MethodAccess] getMemberInt(...) # 82| -1: [VarAccess] this. # 82| -1: [ThisAccess] this -# 82| 1: [Method] invoke +# 82| 4: [Method] invoke # 82| 5: [BlockStmt] { ... } # 82| 0: [ReturnStmt] return ... # 82| 0: [MethodAccess] get(...) # 82| -1: [ThisAccess] this -# 82| 1: [Method] set +# 82| 5: [Method] set #-----| 4: (Parameters) # 82| 0: [Parameter] a0 # 82| 5: [BlockStmt] { ... } @@ -1804,7 +1804,7 @@ delegatedProperties.kt: # 82| 1: [Constructor] # 82| 5: [BlockStmt] { ... } # 82| 0: [SuperConstructorInvocationStmt] super(...) -# 82| 1: [Method] +# 82| 2: [Method] # 82| 3: [TypeAccess] int # 82| 5: [BlockStmt] { ... } # 82| 0: [ReturnStmt] return ... @@ -1818,18 +1818,18 @@ delegatedProperties.kt: # 82| 1: [Constructor] # 82| 5: [BlockStmt] { ... } # 82| 0: [SuperConstructorInvocationStmt] super(...) -# 82| 1: [Method] get +# 82| 2: [Method] get # 82| 5: [BlockStmt] { ... } # 82| 0: [ReturnStmt] return ... # 82| 0: [MethodAccess] (...) # 82| -1: [ClassInstanceExpr] new (...) # 82| -3: [TypeAccess] Object -# 82| 1: [Method] invoke +# 82| 3: [Method] invoke # 82| 5: [BlockStmt] { ... } # 82| 0: [ReturnStmt] return ... # 82| 0: [MethodAccess] get(...) # 82| -1: [ThisAccess] this -# 82| 1: [Method] set +# 82| 4: [Method] set #-----| 4: (Parameters) # 82| 0: [Parameter] a0 # 82| 5: [BlockStmt] { ... } @@ -1845,7 +1845,7 @@ delegatedProperties.kt: # 82| 1: [Constructor] # 82| 5: [BlockStmt] { ... } # 82| 0: [SuperConstructorInvocationStmt] super(...) -# 82| 1: [Method] +# 82| 2: [Method] # 82| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 82| 0: [Parameter] value @@ -1862,18 +1862,18 @@ delegatedProperties.kt: # 82| 1: [Constructor] # 82| 5: [BlockStmt] { ... } # 82| 0: [SuperConstructorInvocationStmt] super(...) -# 82| 1: [Method] get +# 82| 2: [Method] get # 82| 5: [BlockStmt] { ... } # 82| 0: [ReturnStmt] return ... # 82| 0: [MethodAccess] (...) # 82| -1: [ClassInstanceExpr] new (...) # 82| -3: [TypeAccess] Object -# 82| 1: [Method] invoke +# 82| 3: [Method] invoke # 82| 5: [BlockStmt] { ... } # 82| 0: [ReturnStmt] return ... # 82| 0: [MethodAccess] get(...) # 82| -1: [ThisAccess] this -# 82| 1: [Method] set +# 82| 4: [Method] set #-----| 4: (Parameters) # 82| 0: [Parameter] a0 # 82| 5: [BlockStmt] { ... } @@ -2849,7 +2849,7 @@ exprs.kt: # 142| 0: [ReturnStmt] return ... # 142| 0: [VarAccess] this.n # 142| -1: [ThisAccess] this -# 142| 2: [FieldDeclaration] int n; +# 142| 3: [FieldDeclaration] int n; # 142| -1: [TypeAccess] int # 142| 0: [VarAccess] n # 143| 4: [Method] foo @@ -2875,14 +2875,14 @@ exprs.kt: # 148| 0: [SuperConstructorInvocationStmt] super(...) # 148| 1: [BlockStmt] { ... } # 168| 6: [Class] Direction -# 0| 1: [Method] values -# 0| 3: [TypeAccess] Direction[] -# 0| 0: [TypeAccess] Direction -# 0| 1: [Method] valueOf +# 0| 2: [Method] valueOf # 0| 3: [TypeAccess] Direction #-----| 4: (Parameters) # 0| 0: [Parameter] value # 0| 0: [TypeAccess] String +# 0| 3: [Method] values +# 0| 3: [TypeAccess] Direction[] +# 0| 0: [TypeAccess] Direction # 168| 4: [Constructor] Direction # 168| 5: [BlockStmt] { ... } # 168| 0: [ExprStmt] ; @@ -2907,14 +2907,14 @@ exprs.kt: # 169| 0: [ClassInstanceExpr] new Direction(...) # 169| -3: [TypeAccess] Direction # 172| 7: [Class] Color -# 0| 1: [Method] values -# 0| 3: [TypeAccess] Color[] -# 0| 0: [TypeAccess] Color -# 0| 1: [Method] valueOf +# 0| 2: [Method] valueOf # 0| 3: [TypeAccess] Color #-----| 4: (Parameters) # 0| 0: [Parameter] value # 0| 0: [TypeAccess] String +# 0| 3: [Method] values +# 0| 3: [TypeAccess] Color[] +# 0| 0: [TypeAccess] Color # 172| 4: [Constructor] Color #-----| 4: (Parameters) # 172| 0: [Parameter] rgb @@ -2934,7 +2934,7 @@ exprs.kt: # 172| 0: [ReturnStmt] return ... # 172| 0: [VarAccess] this.rgb # 172| -1: [ThisAccess] this -# 172| 5: [FieldDeclaration] int rgb; +# 172| 6: [FieldDeclaration] int rgb; # 172| -1: [TypeAccess] int # 172| 0: [VarAccess] rgb # 173| 7: [FieldDeclaration] Color RED; @@ -2967,7 +2967,7 @@ exprs.kt: # 186| 0: [ReturnStmt] return ... # 186| 0: [VarAccess] this.a1 # 186| -1: [ThisAccess] this -# 186| 2: [FieldDeclaration] int a1; +# 186| 3: [FieldDeclaration] int a1; # 186| -1: [TypeAccess] int # 186| 0: [IntegerLiteral] 1 # 187| 4: [Method] getObject @@ -2988,12 +2988,6 @@ exprs.kt: # 190| 0: [ExprStmt] ; # 190| 0: [KtInitializerAssignExpr] ...=... # 190| 0: [VarAccess] a3 -# 190| 2: [Method] getA3 -# 190| 3: [TypeAccess] String -# 190| 5: [BlockStmt] { ... } -# 190| 0: [ReturnStmt] return ... -# 190| 0: [VarAccess] this.a3 -# 190| -1: [ThisAccess] this # 190| 2: [FieldDeclaration] String a3; # 190| -1: [TypeAccess] String # 190| 0: [MethodAccess] toString(...) @@ -3001,6 +2995,12 @@ exprs.kt: # 190| 0: [MethodAccess] getA1(...) # 190| -1: [ThisAccess] this # 190| 1: [VarAccess] a2 +# 190| 3: [Method] getA3 +# 190| 3: [TypeAccess] String +# 190| 5: [BlockStmt] { ... } +# 190| 0: [ReturnStmt] return ... +# 190| 0: [VarAccess] this.a3 +# 190| -1: [ThisAccess] this # 189| 1: [ExprStmt] ; # 189| 0: [ClassInstanceExpr] new (...) # 189| -3: [TypeAccess] Interface1 @@ -3494,7 +3494,7 @@ funcExprs.kt: # 22| 1: [Constructor] # 22| 5: [BlockStmt] { ... } # 22| 0: [SuperConstructorInvocationStmt] super(...) -# 22| 1: [Method] invoke +# 22| 2: [Method] invoke # 22| 3: [TypeAccess] int # 22| 5: [BlockStmt] { ... } # 22| 0: [ReturnStmt] return ... @@ -3509,7 +3509,7 @@ funcExprs.kt: # 23| 1: [Constructor] # 23| 5: [BlockStmt] { ... } # 23| 0: [SuperConstructorInvocationStmt] super(...) -# 23| 1: [Method] invoke +# 23| 2: [Method] invoke # 23| 3: [TypeAccess] Object # 23| 5: [BlockStmt] { ... } # 23| 0: [ReturnStmt] return ... @@ -3524,7 +3524,7 @@ funcExprs.kt: # 24| 1: [Constructor] # 24| 5: [BlockStmt] { ... } # 24| 0: [SuperConstructorInvocationStmt] super(...) -# 24| 1: [Method] invoke +# 24| 2: [Method] invoke # 24| 3: [TypeAccess] Object # 24| 5: [BlockStmt] { ... } # 24| 0: [ReturnStmt] return ... @@ -3540,7 +3540,7 @@ funcExprs.kt: # 25| 1: [Constructor] # 25| 5: [BlockStmt] { ... } # 25| 0: [SuperConstructorInvocationStmt] super(...) -# 25| 1: [Method] invoke +# 25| 2: [Method] invoke # 25| 3: [TypeAccess] int #-----| 4: (Parameters) # 25| 0: [Parameter] a @@ -3560,7 +3560,7 @@ funcExprs.kt: # 26| 1: [Constructor] # 26| 5: [BlockStmt] { ... } # 26| 0: [SuperConstructorInvocationStmt] super(...) -# 26| 1: [Method] invoke +# 26| 2: [Method] invoke # 26| 3: [TypeAccess] int #-----| 4: (Parameters) # 26| 0: [Parameter] it @@ -3580,7 +3580,7 @@ funcExprs.kt: # 27| 1: [Constructor] # 27| 5: [BlockStmt] { ... } # 27| 0: [SuperConstructorInvocationStmt] super(...) -# 27| 1: [Method] invoke +# 27| 2: [Method] invoke # 27| 3: [TypeAccess] int #-----| 4: (Parameters) # 27| 0: [Parameter] @@ -3606,7 +3606,7 @@ funcExprs.kt: # 29| 1: [Constructor] # 29| 5: [BlockStmt] { ... } # 29| 0: [SuperConstructorInvocationStmt] super(...) -# 29| 1: [Method] invoke +# 29| 2: [Method] invoke # 29| 3: [TypeAccess] Object #-----| 4: (Parameters) # 29| 0: [Parameter] a @@ -3626,7 +3626,7 @@ funcExprs.kt: # 30| 1: [Constructor] # 30| 5: [BlockStmt] { ... } # 30| 0: [SuperConstructorInvocationStmt] super(...) -# 30| 1: [Method] invoke +# 30| 2: [Method] invoke # 30| 3: [TypeAccess] int #-----| 4: (Parameters) # 30| 0: [Parameter] @@ -3649,7 +3649,7 @@ funcExprs.kt: # 31| 1: [Constructor] # 31| 5: [BlockStmt] { ... } # 31| 0: [SuperConstructorInvocationStmt] super(...) -# 31| 1: [Method] invoke +# 31| 2: [Method] invoke # 31| 3: [TypeAccess] int #-----| 4: (Parameters) # 31| 0: [Parameter] @@ -3672,7 +3672,7 @@ funcExprs.kt: # 32| 1: [Constructor] # 32| 5: [BlockStmt] { ... } # 32| 0: [SuperConstructorInvocationStmt] super(...) -# 32| 1: [ExtensionMethod] invoke +# 32| 2: [ExtensionMethod] invoke # 32| 3: [TypeAccess] int #-----| 4: (Parameters) # 32| 0: [Parameter] $this$functionExpression3 @@ -3697,7 +3697,7 @@ funcExprs.kt: # 33| 1: [Constructor] # 33| 5: [BlockStmt] { ... } # 33| 0: [SuperConstructorInvocationStmt] super(...) -# 33| 1: [Method] invoke +# 33| 2: [Method] invoke # 33| 3: [TypeAccess] Function1 # 33| 0: [TypeAccess] Integer # 33| 1: [TypeAccess] Double @@ -3711,7 +3711,7 @@ funcExprs.kt: # 33| 1: [Constructor] # 33| 5: [BlockStmt] { ... } # 33| 0: [SuperConstructorInvocationStmt] super(...) -# 33| 1: [Method] invoke +# 33| 2: [Method] invoke # 33| 3: [TypeAccess] double #-----| 4: (Parameters) # 33| 0: [Parameter] b @@ -3736,7 +3736,7 @@ funcExprs.kt: # 35| 1: [Constructor] # 35| 5: [BlockStmt] { ... } # 35| 0: [SuperConstructorInvocationStmt] super(...) -# 35| 1: [Method] invoke +# 35| 2: [Method] invoke # 35| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 35| 0: [Parameter] a0 @@ -3821,7 +3821,7 @@ funcExprs.kt: # 36| 1: [Constructor] # 36| 5: [BlockStmt] { ... } # 36| 0: [SuperConstructorInvocationStmt] super(...) -# 36| 1: [Method] invoke +# 36| 2: [Method] invoke # 36| 3: [TypeAccess] String #-----| 4: (Parameters) # 36| 0: [Parameter] a0 @@ -3873,7 +3873,7 @@ funcExprs.kt: # 36| 5: [BlockStmt] { ... } # 36| 0: [ReturnStmt] return ... # 36| 0: [StringLiteral] -# 36| 1: [Method] invoke +# 36| 2: [Method] invoke #-----| 4: (Parameters) # 36| 0: [Parameter] a0 # 36| 5: [BlockStmt] { ... } @@ -4012,14 +4012,14 @@ funcExprs.kt: # 38| 0: [VarAccess] this. # 38| -1: [ThisAccess] this # 38| 1: [VarAccess] -# 38| 1: [Method] invoke +# 38| 2: [FieldDeclaration] FuncRef ; +# 38| -1: [TypeAccess] FuncRef +# 38| 3: [Method] invoke # 38| 5: [BlockStmt] { ... } # 38| 0: [ReturnStmt] return ... # 38| 0: [MethodAccess] f0(...) # 38| -1: [VarAccess] this. # 38| -1: [ThisAccess] this -# 38| 1: [FieldDeclaration] FuncRef ; -# 38| -1: [TypeAccess] FuncRef # 38| -3: [TypeAccess] Function0 # 38| 0: [TypeAccess] Integer # 38| 0: [ClassInstanceExpr] new FuncRef(...) @@ -4039,14 +4039,14 @@ funcExprs.kt: # 39| 0: [VarAccess] this. # 39| -1: [ThisAccess] this # 39| 1: [VarAccess] -# 39| 1: [Method] invoke +# 39| 2: [FieldDeclaration] Companion ; +# 39| -1: [TypeAccess] Companion +# 39| 3: [Method] invoke # 39| 5: [BlockStmt] { ... } # 39| 0: [ReturnStmt] return ... # 39| 0: [MethodAccess] f0(...) # 39| -1: [VarAccess] this. # 39| -1: [ThisAccess] this -# 39| 1: [FieldDeclaration] Companion ; -# 39| -1: [TypeAccess] Companion # 39| -3: [TypeAccess] Function0 # 39| 0: [TypeAccess] Integer # 39| 0: [VarAccess] Companion @@ -4066,7 +4066,9 @@ funcExprs.kt: # 40| 0: [VarAccess] this. # 40| -1: [ThisAccess] this # 40| 1: [VarAccess] -# 40| 1: [Method] invoke +# 40| 2: [FieldDeclaration] FuncRef ; +# 40| -1: [TypeAccess] FuncRef +# 40| 3: [Method] invoke #-----| 4: (Parameters) # 40| 0: [Parameter] a0 # 40| 5: [BlockStmt] { ... } @@ -4075,8 +4077,6 @@ funcExprs.kt: # 40| -1: [VarAccess] this. # 40| -1: [ThisAccess] this # 40| 0: [VarAccess] a0 -# 40| 1: [FieldDeclaration] FuncRef ; -# 40| -1: [TypeAccess] FuncRef # 40| -3: [TypeAccess] Function1 # 40| 0: [TypeAccess] Integer # 40| 1: [TypeAccess] Integer @@ -4091,7 +4091,7 @@ funcExprs.kt: # 41| 1: [Constructor] # 41| 5: [BlockStmt] { ... } # 41| 0: [SuperConstructorInvocationStmt] super(...) -# 41| 1: [Method] invoke +# 41| 2: [Method] invoke #-----| 4: (Parameters) # 41| 0: [Parameter] a0 # 41| 1: [Parameter] a1 @@ -4120,7 +4120,9 @@ funcExprs.kt: # 42| 0: [VarAccess] this. # 42| -1: [ThisAccess] this # 42| 1: [VarAccess] -# 42| 1: [Method] invoke +# 42| 2: [FieldDeclaration] int ; +# 42| -1: [TypeAccess] int +# 42| 3: [Method] invoke #-----| 4: (Parameters) # 42| 0: [Parameter] a0 # 42| 5: [BlockStmt] { ... } @@ -4130,8 +4132,6 @@ funcExprs.kt: # 42| 0: [VarAccess] this. # 42| -1: [ThisAccess] this # 42| 1: [VarAccess] a0 -# 42| 1: [FieldDeclaration] int ; -# 42| -1: [TypeAccess] int # 42| -3: [TypeAccess] Function1 # 42| 0: [TypeAccess] Integer # 42| 1: [TypeAccess] Integer @@ -4145,7 +4145,7 @@ funcExprs.kt: # 43| 1: [Constructor] # 43| 5: [BlockStmt] { ... } # 43| 0: [SuperConstructorInvocationStmt] super(...) -# 43| 1: [Method] invoke +# 43| 2: [Method] invoke #-----| 4: (Parameters) # 43| 0: [Parameter] a0 # 43| 1: [Parameter] a1 @@ -4175,7 +4175,9 @@ funcExprs.kt: # 44| 0: [VarAccess] this. # 44| -1: [ThisAccess] this # 44| 1: [VarAccess] -# 44| 1: [Method] invoke +# 44| 2: [FieldDeclaration] FuncRef ; +# 44| -1: [TypeAccess] FuncRef +# 44| 3: [Method] invoke #-----| 4: (Parameters) # 44| 0: [Parameter] a0 # 44| 1: [Parameter] a1 @@ -4226,8 +4228,6 @@ funcExprs.kt: # 44| 19: [VarAccess] a19 # 44| 20: [VarAccess] a20 # 44| 21: [VarAccess] a21 -# 44| 1: [FieldDeclaration] FuncRef ; -# 44| -1: [TypeAccess] FuncRef # 44| -3: [TypeAccess] Function22 # 44| 0: [TypeAccess] Integer # 44| 1: [TypeAccess] Integer @@ -4270,7 +4270,9 @@ funcExprs.kt: # 45| 0: [VarAccess] this. # 45| -1: [ThisAccess] this # 45| 1: [VarAccess] -# 45| 1: [Method] invoke +# 45| 2: [FieldDeclaration] FuncRef ; +# 45| -1: [TypeAccess] FuncRef +# 45| 3: [Method] invoke #-----| 4: (Parameters) # 45| 0: [Parameter] a0 # 45| 5: [BlockStmt] { ... } @@ -4393,8 +4395,6 @@ funcExprs.kt: # 45| 1: [ArrayAccess] ...[...] # 45| 0: [VarAccess] a0 # 45| 1: [IntegerLiteral] 22 -# 45| 1: [FieldDeclaration] FuncRef ; -# 45| -1: [TypeAccess] FuncRef # 45| -3: [TypeAccess] FunctionN # 45| 0: [TypeAccess] String # 45| 0: [ClassInstanceExpr] new FuncRef(...) @@ -4408,7 +4408,7 @@ funcExprs.kt: # 46| 1: [Constructor] # 46| 5: [BlockStmt] { ... } # 46| 0: [SuperConstructorInvocationStmt] super(...) -# 46| 1: [Method] invoke +# 46| 2: [Method] invoke #-----| 4: (Parameters) # 46| 0: [Parameter] a0 # 46| 5: [BlockStmt] { ... } @@ -4541,7 +4541,7 @@ funcExprs.kt: # 48| 1: [Constructor] # 48| 5: [BlockStmt] { ... } # 48| 0: [SuperConstructorInvocationStmt] super(...) -# 48| 1: [Method] local +# 48| 2: [Method] local # 48| 3: [TypeAccess] int # 48| 5: [BlockStmt] { ... } # 48| 0: [ReturnStmt] return ... @@ -4554,7 +4554,7 @@ funcExprs.kt: # 49| 1: [Constructor] # 49| 5: [BlockStmt] { ... } # 49| 0: [SuperConstructorInvocationStmt] super(...) -# 49| 1: [Method] invoke +# 49| 2: [Method] invoke # 49| 5: [BlockStmt] { ... } # 49| 0: [ReturnStmt] return ... # 49| 0: [MethodAccess] local(...) @@ -4571,7 +4571,7 @@ funcExprs.kt: # 51| 1: [Constructor] # 51| 5: [BlockStmt] { ... } # 51| 0: [SuperConstructorInvocationStmt] super(...) -# 51| 1: [Method] invoke +# 51| 2: [Method] invoke # 51| 5: [BlockStmt] { ... } # 51| 0: [ReturnStmt] return ... # 51| 0: [ClassInstanceExpr] new FuncRef(...) @@ -4755,7 +4755,7 @@ funcExprs.kt: # 75| 1: [Constructor] # 75| 5: [BlockStmt] { ... } # 75| 0: [SuperConstructorInvocationStmt] super(...) -# 75| 1: [Method] invoke +# 75| 2: [Method] invoke # 75| 3: [TypeAccess] String #-----| 4: (Parameters) # 75| 0: [Parameter] a @@ -4813,7 +4813,9 @@ kFunctionInvoke.kt: # 8| 0: [VarAccess] this. # 8| -1: [ThisAccess] this # 8| 1: [VarAccess] -# 8| 1: [Method] invoke +# 8| 2: [FieldDeclaration] A ; +# 8| -1: [TypeAccess] A +# 8| 3: [Method] invoke #-----| 4: (Parameters) # 8| 0: [Parameter] a0 # 8| 5: [BlockStmt] { ... } @@ -4822,8 +4824,6 @@ kFunctionInvoke.kt: # 8| -1: [VarAccess] this. # 8| -1: [ThisAccess] this # 8| 0: [VarAccess] a0 -# 8| 1: [FieldDeclaration] A ; -# 8| -1: [TypeAccess] A # 8| -3: [TypeAccess] Function1 # 8| 0: [TypeAccess] String # 8| 1: [TypeAccess] Unit @@ -4857,7 +4857,7 @@ localFunctionCalls.kt: # 5| 1: [Constructor] # 5| 5: [BlockStmt] { ... } # 5| 0: [SuperConstructorInvocationStmt] super(...) -# 5| 1: [Method] a +# 5| 2: [Method] a #-----| 2: (Generic Parameters) # 5| 0: [TypeVariable] T # 5| 3: [TypeAccess] int @@ -4890,7 +4890,7 @@ localFunctionCalls.kt: # 9| 1: [Constructor] # 9| 5: [BlockStmt] { ... } # 9| 0: [SuperConstructorInvocationStmt] super(...) -# 9| 1: [ExtensionMethod] f1 +# 9| 2: [ExtensionMethod] f1 #-----| 2: (Generic Parameters) # 9| 0: [TypeVariable] T1 # 9| 3: [TypeAccess] int @@ -4957,7 +4957,11 @@ samConversion.kt: # 2| 0: [VarAccess] this. # 2| -1: [ThisAccess] this # 2| 1: [VarAccess] -# 2| 1: [Method] accept +# 2| 2: [FieldDeclaration] Function1 ; +# 2| -1: [TypeAccess] Function1 +# 2| 0: [TypeAccess] Integer +# 2| 1: [TypeAccess] Boolean +# 2| 3: [Method] accept # 2| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 2| 0: [Parameter] i @@ -4967,17 +4971,13 @@ samConversion.kt: # 2| 0: [MethodAccess] invoke(...) # 2| -1: [VarAccess] # 2| 0: [VarAccess] i -# 2| 1: [FieldDeclaration] Function1 ; -# 2| -1: [TypeAccess] Function1 -# 2| 0: [TypeAccess] Integer -# 2| 1: [TypeAccess] Boolean # 2| -3: [TypeAccess] IntPredicate # 2| 0: [LambdaExpr] ...->... # 2| -4: [AnonymousClass] new Function1(...) { ... } # 2| 1: [Constructor] # 2| 5: [BlockStmt] { ... } # 2| 0: [SuperConstructorInvocationStmt] super(...) -# 2| 1: [Method] invoke +# 2| 2: [Method] invoke # 2| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 2| 0: [Parameter] it @@ -5008,7 +5008,12 @@ samConversion.kt: # 4| 0: [VarAccess] this. # 4| -1: [ThisAccess] this # 4| 1: [VarAccess] -# 4| 1: [Method] fn1 +# 4| 2: [FieldDeclaration] Function2 ; +# 4| -1: [TypeAccess] Function2 +# 4| 0: [TypeAccess] Integer +# 4| 1: [TypeAccess] Integer +# 4| 2: [TypeAccess] Unit +# 4| 3: [Method] fn1 # 4| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 4| 0: [Parameter] i @@ -5021,18 +5026,13 @@ samConversion.kt: # 4| -1: [VarAccess] # 4| 0: [VarAccess] i # 4| 1: [VarAccess] j -# 4| 1: [FieldDeclaration] Function2 ; -# 4| -1: [TypeAccess] Function2 -# 4| 0: [TypeAccess] Integer -# 4| 1: [TypeAccess] Integer -# 4| 2: [TypeAccess] Unit # 4| -3: [TypeAccess] InterfaceFn1 # 4| 0: [LambdaExpr] ...->... # 4| -4: [AnonymousClass] new Function2(...) { ... } # 4| 1: [Constructor] # 4| 5: [BlockStmt] { ... } # 4| 0: [SuperConstructorInvocationStmt] super(...) -# 4| 1: [Method] invoke +# 4| 2: [Method] invoke # 4| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 4| 0: [Parameter] a @@ -5062,7 +5062,12 @@ samConversion.kt: # 5| 0: [VarAccess] this. # 5| -1: [ThisAccess] this # 5| 1: [VarAccess] -# 5| 1: [Method] fn1 +# 5| 2: [FieldDeclaration] Function2 ; +# 5| -1: [TypeAccess] Function2 +# 5| 0: [TypeAccess] Integer +# 5| 1: [TypeAccess] Integer +# 5| 2: [TypeAccess] Unit +# 5| 3: [Method] fn1 # 5| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 5| 0: [Parameter] i @@ -5075,18 +5080,13 @@ samConversion.kt: # 5| -1: [VarAccess] # 5| 0: [VarAccess] i # 5| 1: [VarAccess] j -# 5| 1: [FieldDeclaration] Function2 ; -# 5| -1: [TypeAccess] Function2 -# 5| 0: [TypeAccess] Integer -# 5| 1: [TypeAccess] Integer -# 5| 2: [TypeAccess] Unit # 5| -3: [TypeAccess] InterfaceFn1 # 5| 0: [MemberRefExpr] ...::... # 5| -4: [AnonymousClass] new Function2(...) { ... } # 5| 1: [Constructor] # 5| 5: [BlockStmt] { ... } # 5| 0: [SuperConstructorInvocationStmt] super(...) -# 5| 1: [Method] invoke +# 5| 2: [Method] invoke #-----| 4: (Parameters) # 5| 0: [Parameter] a0 # 5| 1: [Parameter] a1 @@ -5116,7 +5116,12 @@ samConversion.kt: # 7| 0: [VarAccess] this. # 7| -1: [ThisAccess] this # 7| 1: [VarAccess] -# 7| 1: [ExtensionMethod] ext +# 7| 2: [FieldDeclaration] Function2 ; +# 7| -1: [TypeAccess] Function2 +# 7| 0: [TypeAccess] String +# 7| 1: [TypeAccess] Integer +# 7| 2: [TypeAccess] Boolean +# 7| 3: [ExtensionMethod] ext # 7| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 7| 0: [Parameter] @@ -5129,18 +5134,13 @@ samConversion.kt: # 7| -1: [VarAccess] # 7| 0: [ExtensionReceiverAccess] this # 7| 1: [VarAccess] i -# 7| 1: [FieldDeclaration] Function2 ; -# 7| -1: [TypeAccess] Function2 -# 7| 0: [TypeAccess] String -# 7| 1: [TypeAccess] Integer -# 7| 2: [TypeAccess] Boolean # 7| -3: [TypeAccess] InterfaceFnExt1 # 7| 0: [LambdaExpr] ...->... # 7| -4: [AnonymousClass] new Function2(...) { ... } # 7| 1: [Constructor] # 7| 5: [BlockStmt] { ... } # 7| 0: [SuperConstructorInvocationStmt] super(...) -# 7| 1: [ExtensionMethod] invoke +# 7| 2: [ExtensionMethod] invoke # 7| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 7| 0: [Parameter] $this$InterfaceFnExt1 @@ -5172,7 +5172,11 @@ samConversion.kt: # 9| 0: [VarAccess] this. # 9| -1: [ThisAccess] this # 9| 1: [VarAccess] -# 9| 1: [Method] accept +# 9| 2: [FieldDeclaration] Function1 ; +# 9| -1: [TypeAccess] Function1 +# 9| 0: [TypeAccess] Integer +# 9| 1: [TypeAccess] Boolean +# 9| 3: [Method] accept # 9| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 9| 0: [Parameter] i @@ -5182,10 +5186,6 @@ samConversion.kt: # 9| 0: [MethodAccess] invoke(...) # 9| -1: [VarAccess] # 9| 0: [VarAccess] i -# 9| 1: [FieldDeclaration] Function1 ; -# 9| -1: [TypeAccess] Function1 -# 9| 0: [TypeAccess] Integer -# 9| 1: [TypeAccess] Boolean # 9| -3: [TypeAccess] IntPredicate # 9| 0: [WhenExpr] when ... # 9| 0: [WhenBranch] ... -> ... @@ -5196,7 +5196,7 @@ samConversion.kt: # 9| 1: [Constructor] # 9| 5: [BlockStmt] { ... } # 9| 0: [SuperConstructorInvocationStmt] super(...) -# 9| 1: [Method] invoke +# 9| 2: [Method] invoke # 9| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 10| 0: [Parameter] j @@ -5219,7 +5219,7 @@ samConversion.kt: # 11| 1: [Constructor] # 11| 5: [BlockStmt] { ... } # 11| 0: [SuperConstructorInvocationStmt] super(...) -# 11| 1: [Method] invoke +# 11| 2: [Method] invoke # 11| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 12| 0: [Parameter] j @@ -5307,7 +5307,7 @@ samConversion.kt: # 41| 1: [Constructor] # 41| 5: [BlockStmt] { ... } # 41| 0: [SuperConstructorInvocationStmt] super(...) -# 41| 1: [Method] invoke +# 41| 2: [Method] invoke #-----| 4: (Parameters) # 41| 0: [Parameter] a0 # 41| 5: [BlockStmt] { ... } @@ -5447,7 +5447,10 @@ samConversion.kt: # 42| 0: [VarAccess] this. # 42| -1: [ThisAccess] this # 42| 1: [VarAccess] -# 42| 1: [Method] accept +# 42| 2: [FieldDeclaration] FunctionN ; +# 42| -1: [TypeAccess] FunctionN +# 42| 0: [TypeAccess] Boolean +# 42| 3: [Method] accept # 42| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 42| 0: [Parameter] i0 @@ -5527,9 +5530,6 @@ samConversion.kt: # 42| 22: [VarAccess] i22 # 42| -1: [TypeAccess] Object # 42| 0: [IntegerLiteral] 23 -# 42| 1: [FieldDeclaration] FunctionN ; -# 42| -1: [TypeAccess] FunctionN -# 42| 0: [TypeAccess] Boolean # 42| -3: [TypeAccess] BigArityPredicate # 42| 0: [VarAccess] a # 43| 2: [LocalVariableDeclStmt] var ...; @@ -5548,7 +5548,10 @@ samConversion.kt: # 43| 0: [VarAccess] this. # 43| -1: [ThisAccess] this # 43| 1: [VarAccess] -# 43| 1: [Method] accept +# 43| 2: [FieldDeclaration] FunctionN ; +# 43| -1: [TypeAccess] FunctionN +# 43| 0: [TypeAccess] Boolean +# 43| 3: [Method] accept # 43| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 43| 0: [Parameter] i0 @@ -5628,16 +5631,13 @@ samConversion.kt: # 43| 22: [VarAccess] i22 # 43| -1: [TypeAccess] Object # 43| 0: [IntegerLiteral] 23 -# 43| 1: [FieldDeclaration] FunctionN ; -# 43| -1: [TypeAccess] FunctionN -# 43| 0: [TypeAccess] Boolean # 43| -3: [TypeAccess] BigArityPredicate # 43| 0: [LambdaExpr] ...->... # 43| -4: [AnonymousClass] new FunctionN(...) { ... } # 43| 1: [Constructor] # 43| 5: [BlockStmt] { ... } # 43| 0: [SuperConstructorInvocationStmt] super(...) -# 43| 1: [Method] invoke +# 43| 2: [Method] invoke # 43| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 43| 0: [Parameter] i0 @@ -5689,7 +5689,7 @@ samConversion.kt: # 45| 5: [BlockStmt] { ... } # 45| 0: [ReturnStmt] return ... # 45| 0: [BooleanLiteral] true -# 43| 1: [Method] invoke +# 43| 2: [Method] invoke #-----| 4: (Parameters) # 43| 0: [Parameter] a0 # 43| 5: [BlockStmt] { ... } @@ -5830,7 +5830,11 @@ samConversion.kt: # 46| 0: [VarAccess] this. # 46| -1: [ThisAccess] this # 46| 1: [VarAccess] -# 46| 1: [Method] fn +# 46| 2: [FieldDeclaration] Function1 ; +# 46| -1: [TypeAccess] Function1 +# 46| 0: [TypeAccess] Integer +# 46| 1: [TypeAccess] Boolean +# 46| 3: [Method] fn # 46| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 46| 0: [Parameter] i @@ -5840,10 +5844,6 @@ samConversion.kt: # 46| 0: [MethodAccess] invoke(...) # 46| -1: [VarAccess] # 46| 0: [VarAccess] i -# 46| 1: [FieldDeclaration] Function1 ; -# 46| -1: [TypeAccess] Function1 -# 46| 0: [TypeAccess] Integer -# 46| 1: [TypeAccess] Boolean # 46| -3: [TypeAccess] SomePredicate # 46| 0: [TypeAccess] Integer # 46| 0: [LambdaExpr] ...->... @@ -5851,7 +5851,7 @@ samConversion.kt: # 46| 1: [Constructor] # 46| 5: [BlockStmt] { ... } # 46| 0: [SuperConstructorInvocationStmt] super(...) -# 46| 1: [Method] invoke +# 46| 2: [Method] invoke # 46| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 46| 0: [Parameter] a diff --git a/java/ql/test/kotlin/library-tests/exprs_typeaccess/PrintAst.expected b/java/ql/test/kotlin/library-tests/exprs_typeaccess/PrintAst.expected index ae2d5911e7e..a3ed7a0d3a0 100644 --- a/java/ql/test/kotlin/library-tests/exprs_typeaccess/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/exprs_typeaccess/PrintAst.expected @@ -34,7 +34,7 @@ A.kt: # 13| 0: [ReturnStmt] return ... # 13| 0: [VarAccess] this.prop # 13| -1: [ThisAccess] this -# 13| 6: [FieldDeclaration] int prop; +# 13| 7: [FieldDeclaration] int prop; # 13| -1: [TypeAccess] int # 13| 0: [MethodAccess] fn(...) # 13| -1: [ThisAccess] A.this @@ -74,14 +74,14 @@ A.kt: # 20| 0: [VarAccess] B.x # 20| -1: [TypeAccess] B # 23| 11: [Class] Enu -# 0| 1: [Method] values -# 0| 3: [TypeAccess] Enu[] -# 0| 0: [TypeAccess] Enu -# 0| 1: [Method] valueOf +# 0| 2: [Method] valueOf # 0| 3: [TypeAccess] Enu #-----| 4: (Parameters) # 0| 0: [Parameter] value # 0| 0: [TypeAccess] String +# 0| 3: [Method] values +# 0| 3: [TypeAccess] Enu[] +# 0| 0: [TypeAccess] Enu # 23| 4: [Constructor] Enu # 23| 5: [BlockStmt] { ... } # 23| 0: [ExprStmt] ; diff --git a/java/ql/test/kotlin/library-tests/generics/PrintAst.expected b/java/ql/test/kotlin/library-tests/generics/PrintAst.expected index 37f27bdb483..619ba5f3bcc 100644 --- a/java/ql/test/kotlin/library-tests/generics/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/generics/PrintAst.expected @@ -98,15 +98,15 @@ generics.kt: # 13| 0: [ExprStmt] ; # 13| 0: [KtInitializerAssignExpr] ...=... # 13| 0: [VarAccess] t -# 13| 2: [Method] getT +# 13| 2: [FieldDeclaration] T t; +# 13| -1: [TypeAccess] T +# 13| 0: [VarAccess] t +# 13| 3: [Method] getT # 13| 3: [TypeAccess] T # 13| 5: [BlockStmt] { ... } # 13| 0: [ReturnStmt] return ... # 13| 0: [VarAccess] this.t # 13| -1: [ThisAccess] this -# 13| 2: [FieldDeclaration] T t; -# 13| -1: [TypeAccess] T -# 13| 0: [VarAccess] t # 14| 4: [Method] f1 # 14| 3: [TypeAccess] Unit #-----| 4: (Parameters) diff --git a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.expected b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.expected index 5a17ed98591..1376baa4f1d 100644 --- a/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/jvmstatic-annotation/PrintAst.expected @@ -192,7 +192,7 @@ test.kt: # 16| 0: [ReturnStmt] return ... # 16| 0: [VarAccess] this.staticProp # 16| -1: [ThisAccess] this -# 16| 5: [Method] setStaticProp +# 16| 6: [Method] setStaticProp # 16| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 16| 0: [Parameter] @@ -204,14 +204,17 @@ test.kt: # 16| 0: [VarAccess] this.staticProp # 16| -1: [ThisAccess] this # 16| 1: [VarAccess] -# 17| 7: [Method] getNonStaticProp +# 17| 7: [FieldDeclaration] String nonStaticProp; +# 17| -1: [TypeAccess] String +# 17| 0: [StringLiteral] b +# 17| 8: [Method] getNonStaticProp #-----| 1: (Annotations) # 17| 3: [TypeAccess] String # 17| 5: [BlockStmt] { ... } # 17| 0: [ReturnStmt] return ... # 17| 0: [VarAccess] this.nonStaticProp # 17| -1: [ThisAccess] this -# 17| 7: [Method] setNonStaticProp +# 17| 9: [Method] setNonStaticProp # 17| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 17| 0: [Parameter] @@ -223,9 +226,6 @@ test.kt: # 17| 0: [VarAccess] this.nonStaticProp # 17| -1: [ThisAccess] this # 17| 1: [VarAccess] -# 17| 7: [FieldDeclaration] String nonStaticProp; -# 17| -1: [TypeAccess] String -# 17| 0: [StringLiteral] b # 20| 10: [Method] getPropWithStaticGetter #-----| 1: (Annotations) # 20| 3: [TypeAccess] String @@ -276,7 +276,15 @@ test.kt: # 13| -1: [VarAccess] HasCompanion.Companion # 13| -1: [TypeAccess] HasCompanion # 13| 0: [VarAccess] s -# 16| 5: [Method] setStaticProp +# 16| 5: [Method] getStaticProp +#-----| 1: (Annotations) +# 16| 3: [TypeAccess] String +# 16| 5: [BlockStmt] { ... } +# 16| 0: [ReturnStmt] return ... +# 16| 0: [MethodAccess] getStaticProp(...) +# 16| -1: [VarAccess] HasCompanion.Companion +# 16| -1: [TypeAccess] HasCompanion +# 16| 6: [Method] setStaticProp # 16| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 16| 0: [Parameter] @@ -288,14 +296,6 @@ test.kt: # 16| -1: [VarAccess] HasCompanion.Companion # 16| -1: [TypeAccess] HasCompanion # 16| 0: [VarAccess] -# 16| 5: [Method] getStaticProp -#-----| 1: (Annotations) -# 16| 3: [TypeAccess] String -# 16| 5: [BlockStmt] { ... } -# 16| 0: [ReturnStmt] return ... -# 16| 0: [MethodAccess] getStaticProp(...) -# 16| -1: [VarAccess] HasCompanion.Companion -# 16| -1: [TypeAccess] HasCompanion # 20| 7: [Method] getPropWithStaticGetter #-----| 1: (Annotations) # 20| 3: [TypeAccess] String @@ -357,7 +357,15 @@ test.kt: # 36| 5: [FieldDeclaration] String staticProp; # 36| -1: [TypeAccess] String # 36| 0: [StringLiteral] a -# 36| 6: [Method] setStaticProp +# 36| 6: [Method] getStaticProp +#-----| 1: (Annotations) +# 36| 3: [TypeAccess] String +# 36| 5: [BlockStmt] { ... } +# 36| 0: [ReturnStmt] return ... +# 36| 0: [VarAccess] NonCompanion.INSTANCE.staticProp +# 36| -1: [VarAccess] NonCompanion.INSTANCE +# 36| -1: [TypeAccess] NonCompanion +# 36| 7: [Method] setStaticProp # 36| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 36| 0: [Parameter] @@ -370,22 +378,17 @@ test.kt: # 36| -1: [VarAccess] NonCompanion.INSTANCE # 36| -1: [TypeAccess] NonCompanion # 36| 1: [VarAccess] -# 36| 6: [Method] getStaticProp -#-----| 1: (Annotations) -# 36| 3: [TypeAccess] String -# 36| 5: [BlockStmt] { ... } -# 36| 0: [ReturnStmt] return ... -# 36| 0: [VarAccess] NonCompanion.INSTANCE.staticProp -# 36| -1: [VarAccess] NonCompanion.INSTANCE -# 36| -1: [TypeAccess] NonCompanion -# 37| 8: [Method] getNonStaticProp +# 37| 8: [FieldDeclaration] String nonStaticProp; +# 37| -1: [TypeAccess] String +# 37| 0: [StringLiteral] b +# 37| 9: [Method] getNonStaticProp #-----| 1: (Annotations) # 37| 3: [TypeAccess] String # 37| 5: [BlockStmt] { ... } # 37| 0: [ReturnStmt] return ... # 37| 0: [VarAccess] this.nonStaticProp # 37| -1: [ThisAccess] this -# 37| 8: [Method] setNonStaticProp +# 37| 10: [Method] setNonStaticProp # 37| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 37| 0: [Parameter] @@ -397,9 +400,6 @@ test.kt: # 37| 0: [VarAccess] this.nonStaticProp # 37| -1: [ThisAccess] this # 37| 1: [VarAccess] -# 37| 8: [FieldDeclaration] String nonStaticProp; -# 37| -1: [TypeAccess] String -# 37| 0: [StringLiteral] b # 40| 11: [Method] getPropWithStaticGetter #-----| 1: (Annotations) # 40| 3: [TypeAccess] String diff --git a/java/ql/test/kotlin/library-tests/reflection/PrintAst.expected b/java/ql/test/kotlin/library-tests/reflection/PrintAst.expected index c29df0de6ef..dd47be234c3 100644 --- a/java/ql/test/kotlin/library-tests/reflection/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/reflection/PrintAst.expected @@ -26,7 +26,7 @@ reflection.kt: # 50| 1: [Constructor] # 50| 5: [BlockStmt] { ... } # 50| 0: [SuperConstructorInvocationStmt] super(...) -# 50| 1: [Method] get +# 50| 2: [Method] get #-----| 4: (Parameters) # 50| 0: [Parameter] a0 # 50| 5: [BlockStmt] { ... } @@ -34,7 +34,7 @@ reflection.kt: # 50| 0: [MethodAccess] getLastChar(...) # 50| -1: [TypeAccess] ReflectionKt # 50| 0: [VarAccess] a0 -# 50| 1: [Method] invoke +# 50| 3: [Method] invoke #-----| 4: (Parameters) # 50| 0: [Parameter] a0 # 50| 5: [BlockStmt] { ... } @@ -62,16 +62,16 @@ reflection.kt: # 51| 0: [VarAccess] this. # 51| -1: [ThisAccess] this # 51| 1: [VarAccess] -# 51| 1: [FieldDeclaration] String ; +# 51| 2: [FieldDeclaration] String ; # 51| -1: [TypeAccess] String -# 51| 1: [Method] get +# 51| 3: [Method] get # 51| 5: [BlockStmt] { ... } # 51| 0: [ReturnStmt] return ... # 51| 0: [MethodAccess] getLastChar(...) # 51| -1: [TypeAccess] ReflectionKt # 51| 0: [VarAccess] this. # 51| -1: [ThisAccess] this -# 51| 1: [Method] invoke +# 51| 4: [Method] invoke # 51| 5: [BlockStmt] { ... } # 51| 0: [ReturnStmt] return ... # 51| 0: [MethodAccess] get(...) @@ -124,7 +124,7 @@ reflection.kt: # 97| 1: [Constructor] # 97| 5: [BlockStmt] { ... } # 97| 0: [SuperConstructorInvocationStmt] super(...) -# 97| 1: [Method] invoke +# 97| 2: [Method] invoke #-----| 4: (Parameters) # 97| 0: [Parameter] a0 # 97| 5: [BlockStmt] { ... } @@ -148,7 +148,7 @@ reflection.kt: # 98| 1: [Constructor] # 98| 5: [BlockStmt] { ... } # 98| 0: [SuperConstructorInvocationStmt] super(...) -# 98| 1: [Method] invoke +# 98| 2: [Method] invoke #-----| 4: (Parameters) # 98| 0: [Parameter] a0 # 98| 5: [BlockStmt] { ... } @@ -180,7 +180,10 @@ reflection.kt: # 99| 0: [VarAccess] this. # 99| -1: [ThisAccess] this # 99| 1: [VarAccess] -# 99| 1: [Method] invoke +# 99| 2: [FieldDeclaration] Class2 ; +# 99| -1: [TypeAccess] Class2 +# 99| 0: [TypeAccess] Integer +# 99| 3: [Method] invoke #-----| 4: (Parameters) # 99| 0: [Parameter] a0 # 99| 5: [BlockStmt] { ... } @@ -191,9 +194,6 @@ reflection.kt: # 99| -2: [VarAccess] this. # 99| -1: [ThisAccess] this # 99| 0: [VarAccess] a0 -# 99| 1: [FieldDeclaration] Class2 ; -# 99| -1: [TypeAccess] Class2 -# 99| 0: [TypeAccess] Integer # 99| -3: [TypeAccess] Function1> # 99| 0: [TypeAccess] String # 99| 1: [TypeAccess] Inner @@ -260,7 +260,7 @@ reflection.kt: # 126| 1: [Constructor] # 126| 5: [BlockStmt] { ... } # 126| 0: [SuperConstructorInvocationStmt] super(...) -# 126| 1: [Method] fn1 +# 126| 2: [Method] fn1 # 126| 3: [TypeAccess] Unit # 126| 5: [BlockStmt] { ... } # 126| 0: [ExprStmt] ; @@ -274,7 +274,7 @@ reflection.kt: # 126| 1: [Constructor] # 126| 5: [BlockStmt] { ... } # 126| 0: [SuperConstructorInvocationStmt] super(...) -# 126| 1: [Method] invoke +# 126| 2: [Method] invoke # 126| 5: [BlockStmt] { ... } # 126| 0: [ReturnStmt] return ... # 126| 0: [MethodAccess] fn1(...) @@ -296,7 +296,7 @@ reflection.kt: # 7| 1: [Constructor] # 7| 5: [BlockStmt] { ... } # 7| 0: [SuperConstructorInvocationStmt] super(...) -# 7| 1: [Method] invoke +# 7| 2: [Method] invoke #-----| 4: (Parameters) # 7| 0: [Parameter] a0 # 7| 1: [Parameter] a1 @@ -321,14 +321,14 @@ reflection.kt: # 10| 1: [Constructor] # 10| 5: [BlockStmt] { ... } # 10| 0: [SuperConstructorInvocationStmt] super(...) -# 10| 1: [Method] get +# 10| 2: [Method] get #-----| 4: (Parameters) # 10| 0: [Parameter] a0 # 10| 5: [BlockStmt] { ... } # 10| 0: [ReturnStmt] return ... # 10| 0: [MethodAccess] getP0(...) # 10| -1: [VarAccess] a0 -# 10| 1: [Method] invoke +# 10| 3: [Method] invoke #-----| 4: (Parameters) # 10| 0: [Parameter] a0 # 10| 5: [BlockStmt] { ... } @@ -367,7 +367,11 @@ reflection.kt: # 14| 0: [VarAccess] this. # 14| -1: [ThisAccess] this # 14| 1: [VarAccess] -# 14| 1: [Method] invoke +# 14| 2: [FieldDeclaration] KProperty1 ; +# 14| -1: [TypeAccess] KProperty1 +# 14| 0: [TypeAccess] C +# 14| 1: [TypeAccess] Integer +# 14| 3: [Method] invoke #-----| 4: (Parameters) # 14| 0: [Parameter] a0 # 14| 5: [BlockStmt] { ... } @@ -376,10 +380,6 @@ reflection.kt: # 14| -1: [VarAccess] this. # 14| -1: [ThisAccess] this # 14| 0: [VarAccess] a0 -# 14| 1: [FieldDeclaration] KProperty1 ; -# 14| -1: [TypeAccess] KProperty1 -# 14| 0: [TypeAccess] C -# 14| 1: [TypeAccess] Integer # 14| -3: [TypeAccess] Function1 # 14| 0: [TypeAccess] C # 14| 1: [TypeAccess] Integer @@ -398,15 +398,15 @@ reflection.kt: # 15| 0: [VarAccess] this. # 15| -1: [ThisAccess] this # 15| 1: [VarAccess] -# 15| 1: [FieldDeclaration] C ; +# 15| 2: [FieldDeclaration] C ; # 15| -1: [TypeAccess] C -# 15| 1: [Method] get +# 15| 3: [Method] get # 15| 5: [BlockStmt] { ... } # 15| 0: [ReturnStmt] return ... # 15| 0: [MethodAccess] getP0(...) # 15| -1: [VarAccess] this. # 15| -1: [ThisAccess] this -# 15| 1: [Method] invoke +# 15| 4: [Method] invoke # 15| 5: [BlockStmt] { ... } # 15| 0: [ReturnStmt] return ... # 15| 0: [MethodAccess] get(...) @@ -422,14 +422,14 @@ reflection.kt: # 17| 1: [Constructor] # 17| 5: [BlockStmt] { ... } # 17| 0: [SuperConstructorInvocationStmt] super(...) -# 17| 1: [Method] get +# 17| 2: [Method] get #-----| 4: (Parameters) # 17| 0: [Parameter] a0 # 17| 5: [BlockStmt] { ... } # 17| 0: [ReturnStmt] return ... # 17| 0: [MethodAccess] getP1(...) # 17| -1: [VarAccess] a0 -# 17| 1: [Method] invoke +# 17| 3: [Method] invoke #-----| 4: (Parameters) # 17| 0: [Parameter] a0 # 17| 5: [BlockStmt] { ... } @@ -437,7 +437,7 @@ reflection.kt: # 17| 0: [MethodAccess] get(...) # 17| -1: [ThisAccess] this # 17| 0: [VarAccess] a0 -# 17| 1: [Method] set +# 17| 4: [Method] set #-----| 4: (Parameters) # 17| 0: [Parameter] a0 # 17| 1: [Parameter] a1 @@ -478,7 +478,11 @@ reflection.kt: # 21| 0: [VarAccess] this. # 21| -1: [ThisAccess] this # 21| 1: [VarAccess] -# 21| 1: [Method] invoke +# 21| 2: [FieldDeclaration] KMutableProperty1 ; +# 21| -1: [TypeAccess] KMutableProperty1 +# 21| 0: [TypeAccess] C +# 21| 1: [TypeAccess] Integer +# 21| 3: [Method] invoke #-----| 4: (Parameters) # 21| 0: [Parameter] a0 # 21| 1: [Parameter] a1 @@ -489,10 +493,6 @@ reflection.kt: # 21| -1: [ThisAccess] this # 21| 0: [VarAccess] a0 # 21| 1: [VarAccess] a1 -# 21| 1: [FieldDeclaration] KMutableProperty1 ; -# 21| -1: [TypeAccess] KMutableProperty1 -# 21| 0: [TypeAccess] C -# 21| 1: [TypeAccess] Integer # 21| -3: [TypeAccess] Function2 # 21| 0: [TypeAccess] C # 21| 1: [TypeAccess] Integer @@ -512,20 +512,20 @@ reflection.kt: # 22| 0: [VarAccess] this. # 22| -1: [ThisAccess] this # 22| 1: [VarAccess] -# 22| 1: [FieldDeclaration] C ; +# 22| 2: [FieldDeclaration] C ; # 22| -1: [TypeAccess] C -# 22| 1: [Method] get +# 22| 3: [Method] get # 22| 5: [BlockStmt] { ... } # 22| 0: [ReturnStmt] return ... # 22| 0: [MethodAccess] getP1(...) # 22| -1: [VarAccess] this. # 22| -1: [ThisAccess] this -# 22| 1: [Method] invoke +# 22| 4: [Method] invoke # 22| 5: [BlockStmt] { ... } # 22| 0: [ReturnStmt] return ... # 22| 0: [MethodAccess] get(...) # 22| -1: [ThisAccess] this -# 22| 1: [Method] set +# 22| 5: [Method] set #-----| 4: (Parameters) # 22| 0: [Parameter] a0 # 22| 5: [BlockStmt] { ... } @@ -556,7 +556,7 @@ reflection.kt: # 24| 1: [Constructor] # 24| 5: [BlockStmt] { ... } # 24| 0: [SuperConstructorInvocationStmt] super(...) -# 24| 1: [Method] invoke +# 24| 2: [Method] invoke # 24| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 24| 0: [Parameter] it @@ -608,7 +608,7 @@ reflection.kt: # 33| 0: [ReturnStmt] return ... # 33| 0: [VarAccess] this.p0 # 33| -1: [ThisAccess] this -# 33| 2: [FieldDeclaration] int p0; +# 33| 3: [FieldDeclaration] int p0; # 33| -1: [TypeAccess] int # 33| 0: [IntegerLiteral] 1 # 34| 4: [Method] getP1 @@ -617,7 +617,10 @@ reflection.kt: # 34| 0: [ReturnStmt] return ... # 34| 0: [VarAccess] this.p1 # 34| -1: [ThisAccess] this -# 34| 4: [Method] setP1 +# 34| 5: [FieldDeclaration] int p1; +# 34| -1: [TypeAccess] int +# 34| 0: [IntegerLiteral] 2 +# 34| 6: [Method] setP1 # 34| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 34| 0: [Parameter] @@ -628,9 +631,6 @@ reflection.kt: # 34| 0: [VarAccess] this.p1 # 34| -1: [ThisAccess] this # 34| 1: [VarAccess] -# 34| 4: [FieldDeclaration] int p1; -# 34| -1: [TypeAccess] int -# 34| 0: [IntegerLiteral] 2 # 36| 7: [Method] getP2 # 36| 3: [TypeAccess] int # 36| 5: [BlockStmt] { ... } @@ -678,7 +678,7 @@ reflection.kt: # 60| 1: [Constructor] # 60| 5: [BlockStmt] { ... } # 60| 0: [SuperConstructorInvocationStmt] super(...) -# 60| 1: [Method] invoke +# 60| 2: [Method] invoke #-----| 4: (Parameters) # 60| 0: [Parameter] a0 # 60| 1: [Parameter] a1 @@ -707,7 +707,10 @@ reflection.kt: # 61| 0: [VarAccess] this. # 61| -1: [ThisAccess] this # 61| 1: [VarAccess] -# 61| 1: [Method] invoke +# 61| 2: [FieldDeclaration] Generic ; +# 61| -1: [TypeAccess] Generic +# 61| 0: [TypeAccess] Integer +# 61| 3: [Method] invoke #-----| 4: (Parameters) # 61| 0: [Parameter] a0 # 61| 5: [BlockStmt] { ... } @@ -716,9 +719,6 @@ reflection.kt: # 61| -1: [VarAccess] this. # 61| -1: [ThisAccess] this # 61| 0: [VarAccess] a0 -# 61| 1: [FieldDeclaration] Generic ; -# 61| -1: [TypeAccess] Generic -# 61| 0: [TypeAccess] Integer # 61| -3: [TypeAccess] Function1 # 61| 0: [TypeAccess] Integer # 61| 1: [TypeAccess] String @@ -733,7 +733,7 @@ reflection.kt: # 62| 1: [Constructor] # 62| 5: [BlockStmt] { ... } # 62| 0: [SuperConstructorInvocationStmt] super(...) -# 62| 1: [Method] invoke +# 62| 2: [Method] invoke #-----| 4: (Parameters) # 62| 0: [Parameter] a0 # 62| 5: [BlockStmt] { ... } @@ -761,7 +761,10 @@ reflection.kt: # 63| 0: [VarAccess] this. # 63| -1: [ThisAccess] this # 63| 1: [VarAccess] -# 63| 1: [Method] invoke +# 63| 2: [FieldDeclaration] Generic ; +# 63| -1: [TypeAccess] Generic +# 63| 0: [TypeAccess] Integer +# 63| 3: [Method] invoke # 63| 5: [BlockStmt] { ... } # 63| 0: [ReturnStmt] return ... # 63| 0: [MethodAccess] ext1(...) @@ -769,9 +772,6 @@ reflection.kt: # 63| -1: [TypeAccess] ReflectionKt # 63| 0: [VarAccess] this. # 63| -1: [ThisAccess] this -# 63| 1: [FieldDeclaration] Generic ; -# 63| -1: [TypeAccess] Generic -# 63| 0: [TypeAccess] Integer # 63| -3: [TypeAccess] Function0 # 63| 0: [TypeAccess] String # 63| 0: [ClassInstanceExpr] new Generic(...) @@ -785,7 +785,7 @@ reflection.kt: # 64| 1: [Constructor] # 64| 5: [BlockStmt] { ... } # 64| 0: [SuperConstructorInvocationStmt] super(...) -# 64| 1: [Method] invoke +# 64| 2: [Method] invoke #-----| 4: (Parameters) # 64| 0: [Parameter] a0 # 64| 5: [BlockStmt] { ... } @@ -812,16 +812,16 @@ reflection.kt: # 65| 0: [VarAccess] this. # 65| -1: [ThisAccess] this # 65| 1: [VarAccess] -# 65| 1: [Method] invoke +# 65| 2: [FieldDeclaration] Generic ; +# 65| -1: [TypeAccess] Generic +# 65| 0: [TypeAccess] Integer +# 65| 3: [Method] invoke # 65| 5: [BlockStmt] { ... } # 65| 0: [ReturnStmt] return ... # 65| 0: [MethodAccess] ext2(...) # 65| -1: [TypeAccess] ReflectionKt # 65| 0: [VarAccess] this. # 65| -1: [ThisAccess] this -# 65| 1: [FieldDeclaration] Generic ; -# 65| -1: [TypeAccess] Generic -# 65| 0: [TypeAccess] Integer # 65| -3: [TypeAccess] Function0 # 65| 0: [TypeAccess] String # 65| 0: [ClassInstanceExpr] new Generic(...) @@ -835,14 +835,14 @@ reflection.kt: # 67| 1: [Constructor] # 67| 5: [BlockStmt] { ... } # 67| 0: [SuperConstructorInvocationStmt] super(...) -# 67| 1: [Method] get +# 67| 2: [Method] get #-----| 4: (Parameters) # 67| 0: [Parameter] a0 # 67| 5: [BlockStmt] { ... } # 67| 0: [ReturnStmt] return ... # 67| 0: [MethodAccess] getP2(...) # 67| -1: [VarAccess] a0 -# 67| 1: [Method] invoke +# 67| 3: [Method] invoke #-----| 4: (Parameters) # 67| 0: [Parameter] a0 # 67| 5: [BlockStmt] { ... } @@ -850,7 +850,7 @@ reflection.kt: # 67| 0: [MethodAccess] get(...) # 67| -1: [ThisAccess] this # 67| 0: [VarAccess] a0 -# 67| 1: [Method] set +# 67| 4: [Method] set #-----| 4: (Parameters) # 67| 0: [Parameter] a0 # 67| 1: [Parameter] a1 @@ -878,21 +878,21 @@ reflection.kt: # 68| 0: [VarAccess] this. # 68| -1: [ThisAccess] this # 68| 1: [VarAccess] -# 68| 1: [FieldDeclaration] Generic ; +# 68| 2: [FieldDeclaration] Generic ; # 68| -1: [TypeAccess] Generic # 68| 0: [TypeAccess] Integer -# 68| 1: [Method] get +# 68| 3: [Method] get # 68| 5: [BlockStmt] { ... } # 68| 0: [ReturnStmt] return ... # 68| 0: [MethodAccess] getP2(...) # 68| -1: [VarAccess] this. # 68| -1: [ThisAccess] this -# 68| 1: [Method] invoke +# 68| 4: [Method] invoke # 68| 5: [BlockStmt] { ... } # 68| 0: [ReturnStmt] return ... # 68| 0: [MethodAccess] get(...) # 68| -1: [ThisAccess] this -# 68| 1: [Method] set +# 68| 5: [Method] set #-----| 4: (Parameters) # 68| 0: [Parameter] a0 # 68| 5: [BlockStmt] { ... } @@ -921,15 +921,15 @@ reflection.kt: # 70| 0: [VarAccess] this. # 70| -1: [ThisAccess] this # 70| 1: [VarAccess] -# 70| 1: [FieldDeclaration] IntCompanionObject ; +# 70| 2: [FieldDeclaration] IntCompanionObject ; # 70| -1: [TypeAccess] IntCompanionObject -# 70| 1: [Method] get +# 70| 3: [Method] get # 70| 5: [BlockStmt] { ... } # 70| 0: [ReturnStmt] return ... # 70| 0: [MethodAccess] getMAX_VALUE(...) # 70| -1: [VarAccess] this. # 70| -1: [ThisAccess] this -# 70| 1: [Method] invoke +# 70| 4: [Method] invoke # 70| 5: [BlockStmt] { ... } # 70| 0: [ReturnStmt] return ... # 70| 0: [MethodAccess] get(...) @@ -945,11 +945,11 @@ reflection.kt: # 71| 1: [Constructor] # 71| 5: [BlockStmt] { ... } # 71| 0: [SuperConstructorInvocationStmt] super(...) -# 71| 1: [Method] get +# 71| 2: [Method] get # 71| 5: [BlockStmt] { ... } # 71| 0: [ReturnStmt] return ... # 71| 0: [VarAccess] MAX_VALUE -# 71| 1: [Method] invoke +# 71| 3: [Method] invoke # 71| 5: [BlockStmt] { ... } # 71| 0: [ReturnStmt] return ... # 71| 0: [MethodAccess] get(...) @@ -971,20 +971,20 @@ reflection.kt: # 72| 0: [VarAccess] this. # 72| -1: [ThisAccess] this # 72| 1: [VarAccess] -# 72| 1: [FieldDeclaration] Rectangle ; +# 72| 2: [FieldDeclaration] Rectangle ; # 72| -1: [TypeAccess] Rectangle -# 72| 1: [Method] get +# 72| 3: [Method] get # 72| 5: [BlockStmt] { ... } # 72| 0: [ReturnStmt] return ... # 72| 0: [VarAccess] this..height # 72| -1: [VarAccess] this. # 72| -1: [ThisAccess] this -# 72| 1: [Method] invoke +# 72| 4: [Method] invoke # 72| 5: [BlockStmt] { ... } # 72| 0: [ReturnStmt] return ... # 72| 0: [MethodAccess] get(...) # 72| -1: [ThisAccess] this -# 72| 1: [Method] set +# 72| 5: [Method] set #-----| 4: (Parameters) # 72| 0: [Parameter] a0 # 72| 5: [BlockStmt] { ... } @@ -1040,15 +1040,15 @@ reflection.kt: # 83| 0: [ExprStmt] ; # 83| 0: [KtInitializerAssignExpr] ...=... # 83| 0: [VarAccess] value -# 83| 4: [Method] getValue +# 83| 4: [FieldDeclaration] T value; +# 83| -1: [TypeAccess] T +# 83| 0: [VarAccess] value +# 83| 5: [Method] getValue # 83| 3: [TypeAccess] T # 83| 5: [BlockStmt] { ... } # 83| 0: [ReturnStmt] return ... # 83| 0: [VarAccess] this.value # 83| -1: [ThisAccess] this -# 83| 4: [FieldDeclaration] T value; -# 83| -1: [TypeAccess] T -# 83| 0: [VarAccess] value # 85| 6: [Class,GenericType,ParameterizedType] Inner #-----| -2: (Generic Parameters) # 85| 0: [TypeVariable] T1 @@ -1082,7 +1082,10 @@ reflection.kt: # 90| 0: [VarAccess] this. # 90| -1: [ThisAccess] this # 90| 1: [VarAccess] -# 90| 1: [Method] invoke +# 90| 2: [FieldDeclaration] Class2 ; +# 90| -1: [TypeAccess] Class2 +# 90| 0: [TypeAccess] T +# 90| 3: [Method] invoke #-----| 4: (Parameters) # 90| 0: [Parameter] a0 # 90| 5: [BlockStmt] { ... } @@ -1093,9 +1096,6 @@ reflection.kt: # 90| -2: [VarAccess] this. # 90| -1: [ThisAccess] this # 90| 0: [VarAccess] a0 -# 90| 1: [FieldDeclaration] Class2 ; -# 90| -1: [TypeAccess] Class2 -# 90| 0: [TypeAccess] T # 90| -3: [TypeAccess] Function1> # 90| 0: [TypeAccess] String # 90| 1: [TypeAccess] Inner @@ -1118,7 +1118,10 @@ reflection.kt: # 105| 0: [ReturnStmt] return ... # 105| 0: [VarAccess] this.prop1 # 105| -1: [ThisAccess] this -# 105| 2: [Method] setProp1 +# 105| 3: [FieldDeclaration] int prop1; +# 105| -1: [TypeAccess] int +# 105| 0: [VarAccess] prop1 +# 105| 4: [Method] setProp1 # 105| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 105| 0: [Parameter] @@ -1129,9 +1132,6 @@ reflection.kt: # 105| 0: [VarAccess] this.prop1 # 105| -1: [ThisAccess] this # 105| 1: [VarAccess] -# 105| 2: [FieldDeclaration] int prop1; -# 105| -1: [TypeAccess] int -# 105| 0: [VarAccess] prop1 # 107| 7: [Class] Derived1 # 107| 1: [Constructor] Derived1 #-----| 4: (Parameters) @@ -1159,20 +1159,20 @@ reflection.kt: # 109| 0: [VarAccess] this. # 109| -1: [ThisAccess] this # 109| 1: [VarAccess] -# 109| 1: [FieldDeclaration] Derived1 ; +# 109| 2: [FieldDeclaration] Derived1 ; # 109| -1: [TypeAccess] Derived1 -# 109| 1: [Method] get +# 109| 3: [Method] get # 109| 5: [BlockStmt] { ... } # 109| 0: [ReturnStmt] return ... # 109| 0: [MethodAccess] getProp1(...) # 109| -1: [VarAccess] this. # 109| -1: [ThisAccess] this -# 109| 1: [Method] invoke +# 109| 4: [Method] invoke # 109| 5: [BlockStmt] { ... } # 109| 0: [ReturnStmt] return ... # 109| 0: [MethodAccess] get(...) # 109| -1: [ThisAccess] this -# 109| 1: [Method] set +# 109| 5: [Method] set #-----| 4: (Parameters) # 109| 0: [Parameter] a0 # 109| 5: [BlockStmt] { ... } @@ -1197,7 +1197,7 @@ reflection.kt: # 115| 1: [Constructor] # 115| 5: [BlockStmt] { ... } # 115| 0: [SuperConstructorInvocationStmt] super(...) -# 115| 1: [Method] fn1 +# 115| 2: [Method] fn1 # 115| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 115| 0: [Parameter] i @@ -1210,7 +1210,7 @@ reflection.kt: # 116| 1: [Constructor] # 116| 5: [BlockStmt] { ... } # 116| 0: [SuperConstructorInvocationStmt] super(...) -# 116| 1: [Method] invoke +# 116| 2: [Method] invoke #-----| 4: (Parameters) # 116| 0: [Parameter] a0 # 116| 5: [BlockStmt] { ... } From b373af47d1c10af377aa776dfad87d575c4d5632 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 30 Jun 2022 16:59:18 +0100 Subject: [PATCH 257/736] Kotlin: Fix a label We want the .javaResult.id of a TypeResults. --- 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 530ff47e8ab..4ce9f0316a4 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -1514,7 +1514,7 @@ open class KotlinUsesExtractor( // otherwise two extension properties declared in the same enclosing context will get // clashing trap labels. These are always private, so we can just make up a label without // worrying about their names as seen from Java. - val extensionPropertyDiscriminator = getExtensionReceiverType(f)?.let { "extension;${useType(it)}" } ?: "" + val extensionPropertyDiscriminator = getExtensionReceiverType(f)?.let { "extension;${useType(it).javaResult.id}" } ?: "" return "@\"field;{$parentId};${extensionPropertyDiscriminator}${f.name.asString()}\"" } From 3bb51c2643f331704d06d06d7a297ed7b9863c0b Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Thu, 30 Jun 2022 17:07:42 +0100 Subject: [PATCH 258/736] Fix rst header --- docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst index c3a3a2d9ed2..3d5ca470644 100644 --- a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst +++ b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst @@ -74,7 +74,7 @@ The ``analyze`` command will run the default suite of any specified CodeQL packs codeql analyze / / Working with CodeQL packs on GitHub Enterprise Server ------------------------------------------- +----------------------------------------------------- .. pull-quote:: From 92a9738bd5f25543667049b7e8e75284306b4991 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Thu, 30 Jun 2022 17:32:00 +0100 Subject: [PATCH 259/736] Docs: Fix precedence of `registries` list --- .../codeql-cli/publishing-and-using-codeql-packs.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst index 3d5ca470644..67e90b5ba3f 100644 --- a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst +++ b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst @@ -90,10 +90,13 @@ For example, the following ``qlconfig.yml`` file associates all packs with the C .. code-block:: yaml registries: - - packages: '*' - url: https://containers.GHE_HOSTNAME/v2/ - packages: 'codeql/*' url: https://ghcr.io/v2/ + - packages: '*' + url: https://containers.GHE_HOSTNAME/v2/ + +The CodeQL CLI will determine which registry to use for a given package name by finding the first item in the ``registries`` list with a ``packages`` property that matches that package name. +This means that you'll generally want to define the most specific package name patterns first. You can now use ``codeql pack publish``, ``codeql pack download``, and ``codeql database analyze`` to manage packs on GitHub Enterprise Server. From 9b424ac8b2a43d1f156b93c52fc8d4d758957400 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Thu, 30 Jun 2022 17:38:18 +0100 Subject: [PATCH 260/736] Docs: Update guidance to install the _latest_ version of the bundle --- docs/codeql/reusables/beta-note-package-management.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/reusables/beta-note-package-management.rst b/docs/codeql/reusables/beta-note-package-management.rst index a4fd362a70c..7697c9a47d9 100644 --- a/docs/codeql/reusables/beta-note-package-management.rst +++ b/docs/codeql/reusables/beta-note-package-management.rst @@ -2,4 +2,4 @@ Note - The CodeQL package management functionality, including CodeQL packs, is currently available as a beta release and is subject to change. During the beta release, CodeQL packs are available only using GitHub Packages - the GitHub Container registry. To use this beta functionality, install version 2.6.0 or higher of the CodeQL CLI bundle from: https://github.com/github/codeql-action/releases. \ No newline at end of file + The CodeQL package management functionality, including CodeQL packs, is currently available as a beta release and is subject to change. During the beta release, CodeQL packs are available only using GitHub Packages - the GitHub Container registry. To use this beta functionality, install the latest version of the CodeQL CLI bundle from: https://github.com/github/codeql-action/releases. From 57e026d6173bd29fb1be6caa2a6f4c4a7b30c222 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 30 Jun 2022 18:22:17 +0100 Subject: [PATCH 261/736] C++: Typo: intrepret --- .../Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql b/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql index c72e25f61df..bd55008677c 100644 --- a/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql +++ b/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql @@ -18,7 +18,7 @@ import semmle.code.cpp.ir.IR import semmle.code.cpp.ir.dataflow.MustFlow import PathGraph -/** Holds if `f` has a name that we intrepret as evidence of intentionally returning the value of the stack pointer. */ +/** Holds if `f` has a name that we interpret as evidence of intentionally returning the value of the stack pointer. */ predicate intentionallyReturnsStackPointer(Function f) { f.getName().toLowerCase().matches(["%stack%", "%sp%"]) } From dd9306210150b9d63bbc0e4226c8037d2cf58d2f Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 21:46:55 +0100 Subject: [PATCH 262/736] Kotlin: Mangle names of internal functions to match JVM symbols --- .../src/main/kotlin/KotlinUsesExtractor.kt | 52 +++++++++++-------- java/ql/consistency-queries/visibility.ql | 3 +- .../kotlin/module_mangled_names/User.java | 9 ++++ .../kotlin/module_mangled_names/test.expected | 4 ++ .../kotlin/module_mangled_names/test.py | 3 ++ .../kotlin/module_mangled_names/test.ql | 5 ++ .../kotlin/module_mangled_names/test1.kt | 5 ++ .../kotlin/module_mangled_names/test2.kt | 5 ++ .../kotlin/module_mangled_names/test3.kt | 5 ++ .../internal-public-alias/User.java | 11 ++++ .../internal-public-alias/test.expected | 6 +++ .../internal-public-alias/test.kt | 12 +++++ .../internal-public-alias/test.ql | 5 ++ .../library-tests/methods/methods.expected | 2 +- .../modifiers/modifiers.expected | 2 +- .../properties/properties.expected | 2 +- 16 files changed, 105 insertions(+), 26 deletions(-) create mode 100644 java/ql/integration-tests/posix-only/kotlin/module_mangled_names/User.java create mode 100644 java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.expected create mode 100644 java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.py create mode 100644 java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.ql create mode 100644 java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test1.kt create mode 100644 java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test2.kt create mode 100644 java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test3.kt create mode 100644 java/ql/test/kotlin/library-tests/internal-public-alias/User.java create mode 100644 java/ql/test/kotlin/library-tests/internal-public-alias/test.expected create mode 100644 java/ql/test/kotlin/library-tests/internal-public-alias/test.kt create mode 100644 java/ql/test/kotlin/library-tests/internal-public-alias/test.ql diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 530ff47e8ab..63b78e36a19 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.backend.common.lower.parents import org.jetbrains.kotlin.backend.common.lower.parentsWithSelf import org.jetbrains.kotlin.backend.jvm.ir.propertyIfAccessor import org.jetbrains.kotlin.builtins.StandardNames +import org.jetbrains.kotlin.codegen.JvmCodegenUtil import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.declarations.* @@ -23,8 +24,10 @@ import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.sources.JavaSourceElement import org.jetbrains.kotlin.load.java.structure.* +import org.jetbrains.kotlin.load.kotlin.getJvmModuleNameForDeserializedDescriptor import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.name.NameUtils import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.util.OperatorNameConventions @@ -754,11 +757,25 @@ open class KotlinUsesExtractor( data class FunctionNames(val nameInDB: String, val kotlinName: String) + @OptIn(ObsoleteDescriptorBasedAPI::class) + private fun getJvmModuleName(f: IrFunction) = + NameUtils.sanitizeAsJavaIdentifier( + getJvmModuleNameForDeserializedDescriptor(f.descriptor) ?: JvmCodegenUtil.getModuleName(pluginContext.moduleDescriptor) + ) + fun getFunctionShortName(f: IrFunction) : FunctionNames { if (f.origin == IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA || f.isAnonymousFunction) return FunctionNames( OperatorNameConventions.INVOKE.asString(), OperatorNameConventions.INVOKE.asString()) + + fun getSuffixIfInternal() = + if (f.visibility == DescriptorVisibilities.INTERNAL) { + "\$" + getJvmModuleName(f) + } else { + "" + } + (f as? IrSimpleFunction)?.correspondingPropertySymbol?.let { val propName = it.owner.name.asString() val getter = it.owner.getter @@ -774,35 +791,26 @@ open class KotlinUsesExtractor( } } - when (f) { - getter -> { - val defaultFunctionName = JvmAbi.getterName(propName) - val defaultDbName = if (getter.visibility == DescriptorVisibilities.PRIVATE && getter.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR) { - // In JVM these functions don't exist, instead the backing field is accessed directly - defaultFunctionName + "\$private" - } else { - defaultFunctionName - } - return FunctionNames(getJvmName(getter) ?: defaultDbName, defaultFunctionName) - } - setter -> { - val defaultFunctionName = JvmAbi.setterName(propName) - val defaultDbName = if (setter.visibility == DescriptorVisibilities.PRIVATE && setter.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR) { - // In JVM these functions don't exist, instead the backing field is accessed directly - defaultFunctionName + "\$private" - } else { - defaultFunctionName - } - return FunctionNames(getJvmName(setter) ?: defaultDbName, defaultFunctionName) - } + val maybeFunctionName = when (f) { + getter -> JvmAbi.getterName(propName) + setter -> JvmAbi.setterName(propName) else -> { logger.error( "Function has a corresponding property, but is neither the getter nor the setter" ) + null } } + maybeFunctionName?.let { defaultFunctionName -> + val suffix = if (f.visibility == DescriptorVisibilities.PRIVATE && f.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR) { + "\$private" + } else { + getSuffixIfInternal() + } + return FunctionNames(getJvmName(f) ?: "$defaultFunctionName$suffix", defaultFunctionName) + } } - return FunctionNames(getJvmName(f) ?: f.name.asString(), f.name.asString()) + return FunctionNames(getJvmName(f) ?: "${f.name.asString()}${getSuffixIfInternal()}", f.name.asString()) } // This excludes class type parameters that show up in (at least) constructors' typeParameters list. diff --git a/java/ql/consistency-queries/visibility.ql b/java/ql/consistency-queries/visibility.ql index ba90d598236..1b6744cea1d 100644 --- a/java/ql/consistency-queries/visibility.ql +++ b/java/ql/consistency-queries/visibility.ql @@ -18,5 +18,6 @@ where m.getFile().isKotlinSourceFile() and // TODO: This ought to have visibility information not m.getName() = "" and - count(visibility(m)) != 1 + count(visibility(m)) != 1 and + not (count(visibility(m)) = 2 and visibility(m) = "public" and visibility(m) = "internal") // This is a reasonable result, since the JVM symbol is declared public, but Kotlin metadata flags it as internal select m, concat(visibility(m), ", ") diff --git a/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/User.java b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/User.java new file mode 100644 index 00000000000..12d4b0937da --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/User.java @@ -0,0 +1,9 @@ +public class User { + + public static int test(Test1 test1, Test2 test2, Test3 test3) { + + return test1.f$main() + test2.f$mymodule() + test3.f$reservedchars___(); + + } + +} diff --git a/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.expected b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.expected new file mode 100644 index 00000000000..a1fc953a254 --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.expected @@ -0,0 +1,4 @@ +| User.java:3:21:3:24 | test | +| test1.kt:3:12:3:22 | f$main | +| test2.kt:3:12:3:22 | f$mymodule | +| test3.kt:3:12:3:22 | f$reservedchars___ | diff --git a/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.py b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.py new file mode 100644 index 00000000000..0a41ac5b3bf --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.py @@ -0,0 +1,3 @@ +from create_database_utils import * + +run_codeql_database_create(["kotlinc test1.kt", "kotlinc test2.kt -module-name mymodule", "kotlinc test3.kt -module-name reservedchars\\\"${}/", "javac User.java -cp ." ], lang="java") diff --git a/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.ql b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.ql new file mode 100644 index 00000000000..f1355df2e88 --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test.ql @@ -0,0 +1,5 @@ +import java + +from Method m +where m.fromSource() +select m diff --git a/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test1.kt b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test1.kt new file mode 100644 index 00000000000..c14fec0452e --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test1.kt @@ -0,0 +1,5 @@ +public class Test1 { + + internal fun f() = 1 + +} diff --git a/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test2.kt b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test2.kt new file mode 100644 index 00000000000..c37d26c39fc --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test2.kt @@ -0,0 +1,5 @@ +public class Test2 { + + internal fun f() = 2 + +} diff --git a/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test3.kt b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test3.kt new file mode 100644 index 00000000000..5fcdaced80c --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/module_mangled_names/test3.kt @@ -0,0 +1,5 @@ +public class Test3 { + + internal fun f() = 3 + +} diff --git a/java/ql/test/kotlin/library-tests/internal-public-alias/User.java b/java/ql/test/kotlin/library-tests/internal-public-alias/User.java new file mode 100644 index 00000000000..d249e1d36f2 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/internal-public-alias/User.java @@ -0,0 +1,11 @@ +public class User { + + public static int test(Test t) { + + t.setInternalVar$main(t.getInternalVal$main()); + + return t.internalFun$main(); + + } + +} diff --git a/java/ql/test/kotlin/library-tests/internal-public-alias/test.expected b/java/ql/test/kotlin/library-tests/internal-public-alias/test.expected new file mode 100644 index 00000000000..77a06cf7310 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/internal-public-alias/test.expected @@ -0,0 +1,6 @@ +| User.java:3:21:3:24 | test | +| test.kt:3:12:3:30 | getInternalVal$main | +| test.kt:6:3:6:36 | getInternalVal | +| test.kt:8:12:8:30 | getInternalVar$main | +| test.kt:8:12:8:30 | setInternalVar$main | +| test.kt:10:12:10:32 | internalFun$main | diff --git a/java/ql/test/kotlin/library-tests/internal-public-alias/test.kt b/java/ql/test/kotlin/library-tests/internal-public-alias/test.kt new file mode 100644 index 00000000000..e79e6d2f907 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/internal-public-alias/test.kt @@ -0,0 +1,12 @@ +public class Test { + + internal val internalVal = 1 + + // Would clash with the internal val's getter without name mangling and provoke a database inconsistency: + fun getInternalVal() = internalVal + + internal var internalVar = 2 + + internal fun internalFun() = 3 + +} diff --git a/java/ql/test/kotlin/library-tests/internal-public-alias/test.ql b/java/ql/test/kotlin/library-tests/internal-public-alias/test.ql new file mode 100644 index 00000000000..f1355df2e88 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/internal-public-alias/test.ql @@ -0,0 +1,5 @@ +import java + +from Method m +where m.fromSource() +select m diff --git a/java/ql/test/kotlin/library-tests/methods/methods.expected b/java/ql/test/kotlin/library-tests/methods/methods.expected index 11fa8762e28..8067838d889 100644 --- a/java/ql/test/kotlin/library-tests/methods/methods.expected +++ b/java/ql/test/kotlin/library-tests/methods/methods.expected @@ -42,7 +42,7 @@ methods | methods.kt:5:1:20:1 | Class | methods.kt:14:12:14:29 | publicFun | publicFun() | public | | | methods.kt:5:1:20:1 | Class | methods.kt:15:15:15:35 | protectedFun | protectedFun() | protected | | | methods.kt:5:1:20:1 | Class | methods.kt:16:13:16:31 | privateFun | privateFun() | private | | -| methods.kt:5:1:20:1 | Class | methods.kt:17:14:17:33 | internalFun | internalFun() | internal | | +| methods.kt:5:1:20:1 | Class | methods.kt:17:14:17:33 | internalFun$main | internalFun$main() | internal | | | methods.kt:5:1:20:1 | Class | methods.kt:18:5:18:36 | noExplicitVisibilityFun | noExplicitVisibilityFun() | public | | | methods.kt:5:1:20:1 | Class | methods.kt:19:12:19:29 | inlineFun | inlineFun() | inline, public | | constructors diff --git a/java/ql/test/kotlin/library-tests/modifiers/modifiers.expected b/java/ql/test/kotlin/library-tests/modifiers/modifiers.expected index 70345c576b0..14b5124b7ae 100644 --- a/java/ql/test/kotlin/library-tests/modifiers/modifiers.expected +++ b/java/ql/test/kotlin/library-tests/modifiers/modifiers.expected @@ -11,7 +11,7 @@ | modifiers.kt:4:5:4:22 | c | Field | final | | modifiers.kt:4:5:4:22 | c | Field | private | | modifiers.kt:4:5:4:22 | c | Property | internal | -| modifiers.kt:4:14:4:22 | getC | Method | internal | +| modifiers.kt:4:14:4:22 | getC$main | Method | internal | | modifiers.kt:5:5:5:34 | d | Field | final | | modifiers.kt:5:5:5:34 | d | Field | private | | modifiers.kt:5:5:5:34 | d | Property | public | diff --git a/java/ql/test/kotlin/library-tests/properties/properties.expected b/java/ql/test/kotlin/library-tests/properties/properties.expected index 05870c7b6e1..7bbe706923c 100644 --- a/java/ql/test/kotlin/library-tests/properties/properties.expected +++ b/java/ql/test/kotlin/library-tests/properties/properties.expected @@ -45,7 +45,7 @@ fieldDeclarations | properties.kt:35:5:35:32 | privateProp | properties.kt:35:13:35:32 | getPrivateProp$private | file://:0:0:0:0 | | properties.kt:35:5:35:32 | privateProp | private | | properties.kt:36:5:36:36 | protectedProp | properties.kt:36:15:36:36 | getProtectedProp | file://:0:0:0:0 | | properties.kt:36:5:36:36 | protectedProp | protected | | properties.kt:37:5:37:30 | publicProp | properties.kt:37:12:37:30 | getPublicProp | file://:0:0:0:0 | | properties.kt:37:5:37:30 | publicProp | public | -| properties.kt:38:5:38:34 | internalProp | properties.kt:38:14:38:34 | getInternalProp | file://:0:0:0:0 | | properties.kt:38:5:38:34 | internalProp | internal | +| properties.kt:38:5:38:34 | internalProp | properties.kt:38:14:38:34 | getInternalProp$main | file://:0:0:0:0 | | properties.kt:38:5:38:34 | internalProp | internal | | properties.kt:67:1:67:23 | constVal | properties.kt:67:7:67:23 | getConstVal | file://:0:0:0:0 | | properties.kt:67:1:67:23 | constVal | public | | properties.kt:70:5:70:16 | prop | properties.kt:70:5:70:16 | getProp | file://:0:0:0:0 | | properties.kt:70:5:70:16 | prop | public | | properties.kt:78:1:79:13 | x | properties.kt:79:5:79:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | From b9eec1346658a116d39f996c885fd4938e2317d3 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 30 Jun 2022 22:21:04 +0100 Subject: [PATCH 263/736] Accept integration test changes --- .../kotlin/custom_plugin/PrintAst.expected | 4 +- .../PrintAst.expected | 174 +++++++++--------- 2 files changed, 89 insertions(+), 89 deletions(-) diff --git a/java/ql/integration-tests/linux-only/kotlin/custom_plugin/PrintAst.expected b/java/ql/integration-tests/linux-only/kotlin/custom_plugin/PrintAst.expected index a4d9d37a8e2..51186ef7b15 100644 --- a/java/ql/integration-tests/linux-only/kotlin/custom_plugin/PrintAst.expected +++ b/java/ql/integration-tests/linux-only/kotlin/custom_plugin/PrintAst.expected @@ -48,7 +48,7 @@ c.kt: d.kt: # 0| [CompilationUnit] d # 1| 1: [Class] D -# 0| 1: [FieldDeclaration] String bar; +# 0| 2: [FieldDeclaration] String bar; # 0| -1: [TypeAccess] String # 0| 0: [StringLiteral] Foobar # 1| 3: [Constructor] D @@ -67,7 +67,7 @@ e.kt: # 0| -3: [TypeAccess] ArrayList # 0| 0: [IntegerLiteral] 1 # 0| 0: [NullLiteral] null -# 0| 1: [Method] +# 0| 2: [Method] # 0| 3: [TypeAccess] Object # 0| 5: [BlockStmt] { ... } # 0| 0: [ReturnStmt] return ... diff --git a/java/ql/integration-tests/posix-only/kotlin/gradle_kotlinx_serialization/PrintAst.expected b/java/ql/integration-tests/posix-only/kotlin/gradle_kotlinx_serialization/PrintAst.expected index f5a92b6fd3d..e37e65dc3c8 100644 --- a/java/ql/integration-tests/posix-only/kotlin/gradle_kotlinx_serialization/PrintAst.expected +++ b/java/ql/integration-tests/posix-only/kotlin/gradle_kotlinx_serialization/PrintAst.expected @@ -40,43 +40,19 @@ app/src/main/kotlin/testProject/App.kt: # 7| -1: [ThisAccess] Project.this # 7| 0: [TypeAccess] Project # 7| 1: [VarAccess] language -# 0| 1: [Method] write$Self -# 0| 3: [TypeAccess] Unit -#-----| 4: (Parameters) -# 0| 0: [Parameter] self -# 0| 0: [TypeAccess] Project -# 0| 1: [Parameter] output -# 0| 0: [TypeAccess] CompositeEncoder -# 0| 2: [Parameter] serialDesc -# 0| 0: [TypeAccess] SerialDescriptor -# 7| 5: [BlockStmt] { ... } -# 7| 0: [ExprStmt] ; -# 7| 0: [MethodAccess] encodeStringElement(...) -# 7| -1: [VarAccess] output -# 7| 0: [VarAccess] serialDesc -# 7| 1: [IntegerLiteral] 0 -# 7| 2: [MethodAccess] getName(...) -# 7| -1: [VarAccess] self -# 7| 1: [ExprStmt] ; -# 7| 0: [MethodAccess] encodeIntElement(...) -# 7| -1: [VarAccess] output -# 7| 0: [VarAccess] serialDesc -# 7| 1: [IntegerLiteral] 1 -# 7| 2: [MethodAccess] getLanguage(...) -# 7| -1: [VarAccess] self -# 0| 1: [Method] component1 +# 0| 2: [Method] component1 # 0| 3: [TypeAccess] String # 0| 5: [BlockStmt] { ... } # 0| 0: [ReturnStmt] return ... # 0| 0: [VarAccess] this.name # 0| -1: [ThisAccess] this -# 0| 1: [Method] component2 +# 0| 3: [Method] component2 # 0| 3: [TypeAccess] int # 0| 5: [BlockStmt] { ... } # 0| 0: [ReturnStmt] return ... # 0| 0: [VarAccess] this.language # 0| -1: [ThisAccess] this -# 0| 1: [Method] copy +# 0| 4: [Method] copy # 0| 3: [TypeAccess] Project #-----| 4: (Parameters) # 8| 0: [Parameter] name @@ -89,41 +65,7 @@ app/src/main/kotlin/testProject/App.kt: # 0| -3: [TypeAccess] Project # 0| 0: [VarAccess] name # 0| 1: [VarAccess] language -# 0| 1: [Method] toString -# 0| 3: [TypeAccess] String -# 0| 5: [BlockStmt] { ... } -# 0| 0: [ReturnStmt] return ... -# 0| 0: [StringTemplateExpr] "..." -# 0| 0: [StringLiteral] Project( -# 0| 1: [StringLiteral] name= -# 0| 2: [VarAccess] this.name -# 0| -1: [ThisAccess] this -# 0| 3: [StringLiteral] , -# 0| 4: [StringLiteral] language= -# 0| 5: [VarAccess] this.language -# 0| -1: [ThisAccess] this -# 0| 6: [StringLiteral] ) -# 0| 1: [Method] hashCode -# 0| 3: [TypeAccess] int -# 0| 5: [BlockStmt] { ... } -# 0| 0: [LocalVariableDeclStmt] var ...; -# 0| 1: [LocalVariableDeclExpr] result -# 0| 0: [MethodAccess] hashCode(...) -# 0| -1: [VarAccess] this.name -# 0| -1: [ThisAccess] this -# 0| 1: [ExprStmt] ; -# 0| 0: [AssignExpr] ...=... -# 0| 0: [VarAccess] result -# 0| 1: [MethodAccess] plus(...) -# 0| -1: [MethodAccess] times(...) -# 0| -1: [VarAccess] result -# 0| 0: [IntegerLiteral] 31 -# 0| 0: [MethodAccess] hashCode(...) -# 0| -1: [VarAccess] this.language -# 0| -1: [ThisAccess] this -# 0| 2: [ReturnStmt] return ... -# 0| 0: [VarAccess] result -# 0| 1: [Method] equals +# 0| 5: [Method] equals # 0| 3: [TypeAccess] boolean #-----| 4: (Parameters) # 0| 0: [Parameter] other @@ -172,27 +114,68 @@ app/src/main/kotlin/testProject/App.kt: # 0| 0: [BooleanLiteral] false # 0| 5: [ReturnStmt] return ... # 0| 0: [BooleanLiteral] true -# 7| 9: [Class] Companion -# 0| 1: [Method] serializer -# 0| 3: [TypeAccess] KSerializer -# 0| 0: [TypeAccess] Project -# 7| 5: [BlockStmt] { ... } -# 7| 0: [ReturnStmt] return ... -# 7| 0: [VarAccess] INSTANCE -# 7| 2: [Constructor] Companion -# 7| 5: [BlockStmt] { ... } -# 7| 0: [SuperConstructorInvocationStmt] super(...) -# 7| 1: [BlockStmt] { ... } -# 7| 9: [Class] $serializer -# 0| 1: [Method] getDescriptor -# 0| 3: [TypeAccess] SerialDescriptor -# 0| 5: [BlockStmt] { ... } -# 0| 0: [ReturnStmt] return ... -# 0| 0: [VarAccess] this.descriptor +# 0| 6: [Method] hashCode +# 0| 3: [TypeAccess] int +# 0| 5: [BlockStmt] { ... } +# 0| 0: [LocalVariableDeclStmt] var ...; +# 0| 1: [LocalVariableDeclExpr] result +# 0| 0: [MethodAccess] hashCode(...) +# 0| -1: [VarAccess] this.name +# 0| -1: [ThisAccess] this +# 0| 1: [ExprStmt] ; +# 0| 0: [AssignExpr] ...=... +# 0| 0: [VarAccess] result +# 0| 1: [MethodAccess] plus(...) +# 0| -1: [MethodAccess] times(...) +# 0| -1: [VarAccess] result +# 0| 0: [IntegerLiteral] 31 +# 0| 0: [MethodAccess] hashCode(...) +# 0| -1: [VarAccess] this.language +# 0| -1: [ThisAccess] this +# 0| 2: [ReturnStmt] return ... +# 0| 0: [VarAccess] result +# 0| 7: [Method] toString +# 0| 3: [TypeAccess] String +# 0| 5: [BlockStmt] { ... } +# 0| 0: [ReturnStmt] return ... +# 0| 0: [StringTemplateExpr] "..." +# 0| 0: [StringLiteral] Project( +# 0| 1: [StringLiteral] name= +# 0| 2: [VarAccess] this.name # 0| -1: [ThisAccess] this +# 0| 3: [StringLiteral] , +# 0| 4: [StringLiteral] language= +# 0| 5: [VarAccess] this.language +# 0| -1: [ThisAccess] this +# 0| 6: [StringLiteral] ) +# 0| 8: [Method] write$Self +# 0| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 0| 0: [Parameter] self +# 0| 0: [TypeAccess] Project +# 0| 1: [Parameter] output +# 0| 0: [TypeAccess] CompositeEncoder +# 0| 2: [Parameter] serialDesc +# 0| 0: [TypeAccess] SerialDescriptor +# 7| 5: [BlockStmt] { ... } +# 7| 0: [ExprStmt] ; +# 7| 0: [MethodAccess] encodeStringElement(...) +# 7| -1: [VarAccess] output +# 7| 0: [VarAccess] serialDesc +# 7| 1: [IntegerLiteral] 0 +# 7| 2: [MethodAccess] getName(...) +# 7| -1: [VarAccess] self +# 7| 1: [ExprStmt] ; +# 7| 0: [MethodAccess] encodeIntElement(...) +# 7| -1: [VarAccess] output +# 7| 0: [VarAccess] serialDesc +# 7| 1: [IntegerLiteral] 1 +# 7| 2: [MethodAccess] getLanguage(...) +# 7| -1: [VarAccess] self +# 7| 9: [Class] $serializer # 0| 1: [FieldDeclaration] SerialDescriptor descriptor; # 0| -1: [TypeAccess] SerialDescriptor -# 0| 1: [Method] childSerializers +# 0| 2: [Method] childSerializers # 0| 3: [TypeAccess] KSerializer[] # 0| 0: [TypeAccess] KSerializer # 0| 0: [WildcardTypeAccess] ? ... @@ -204,7 +187,7 @@ app/src/main/kotlin/testProject/App.kt: # 7| 1: [VarAccess] INSTANCE # 7| -1: [TypeAccess] KSerializer # 7| 0: [IntegerLiteral] 2 -# 0| 1: [Method] deserialize +# 0| 3: [Method] deserialize # 0| 3: [TypeAccess] Project #-----| 4: (Parameters) # 0| 0: [Parameter] decoder @@ -342,7 +325,13 @@ app/src/main/kotlin/testProject/App.kt: # 7| 1: [VarAccess] tmp4_local0 # 7| 2: [VarAccess] tmp5_local1 # 7| 3: [NullLiteral] null -# 0| 1: [Method] serialize +# 0| 4: [Method] getDescriptor +# 0| 3: [TypeAccess] SerialDescriptor +# 0| 5: [BlockStmt] { ... } +# 0| 0: [ReturnStmt] return ... +# 0| 0: [VarAccess] this.descriptor +# 0| -1: [ThisAccess] this +# 0| 5: [Method] serialize # 0| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 0| 0: [Parameter] encoder @@ -397,6 +386,17 @@ app/src/main/kotlin/testProject/App.kt: # 7| -1: [ThisAccess] $serializer.this # 7| 0: [TypeAccess] $serializer # 7| 1: [VarAccess] tmp0_serialDesc +# 7| 10: [Class] Companion +# 0| 1: [Method] serializer +# 0| 3: [TypeAccess] KSerializer +# 0| 0: [TypeAccess] Project +# 7| 5: [BlockStmt] { ... } +# 7| 0: [ReturnStmt] return ... +# 7| 0: [VarAccess] INSTANCE +# 7| 2: [Constructor] Companion +# 7| 5: [BlockStmt] { ... } +# 7| 0: [SuperConstructorInvocationStmt] super(...) +# 7| 1: [BlockStmt] { ... } # 8| 11: [Constructor] Project #-----| 4: (Parameters) # 8| 0: [Parameter] name @@ -412,21 +412,21 @@ app/src/main/kotlin/testProject/App.kt: # 8| 1: [ExprStmt] ; # 8| 0: [KtInitializerAssignExpr] ...=... # 8| 0: [VarAccess] language -# 8| 12: [Method] getName +# 8| 12: [FieldDeclaration] String name; +# 8| -1: [TypeAccess] String +# 8| 0: [VarAccess] name +# 8| 13: [Method] getName # 8| 3: [TypeAccess] String # 8| 5: [BlockStmt] { ... } # 8| 0: [ReturnStmt] return ... # 8| 0: [VarAccess] this.name # 8| -1: [ThisAccess] this -# 8| 12: [FieldDeclaration] String name; -# 8| -1: [TypeAccess] String -# 8| 0: [VarAccess] name # 8| 14: [Method] getLanguage # 8| 3: [TypeAccess] int # 8| 5: [BlockStmt] { ... } # 8| 0: [ReturnStmt] return ... # 8| 0: [VarAccess] this.language # 8| -1: [ThisAccess] this -# 8| 14: [FieldDeclaration] int language; +# 8| 15: [FieldDeclaration] int language; # 8| -1: [TypeAccess] int # 8| 0: [VarAccess] language From 14aef792e0b7db92b303eaf57cfbc9132c0f1e6b Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 1 Jul 2022 10:35:17 +0100 Subject: [PATCH 264/736] Accept test changes --- .../java-kotlin-collection-type-generic-methods/test.expected | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/test/kotlin/library-tests/java-kotlin-collection-type-generic-methods/test.expected b/java/ql/test/kotlin/library-tests/java-kotlin-collection-type-generic-methods/test.expected index 417b8a22399..7995948aa78 100644 --- a/java/ql/test/kotlin/library-tests/java-kotlin-collection-type-generic-methods/test.expected +++ b/java/ql/test/kotlin/library-tests/java-kotlin-collection-type-generic-methods/test.expected @@ -54,7 +54,7 @@ methodWithDuplicate | AbstractList | set | int | | AbstractList | subList | int | | AbstractList | subListRangeCheck | int | -| AbstractMap | containsEntry | Entry | +| AbstractMap | containsEntry$kotlin_stdlib | Entry | | AbstractMap | containsKey | Object | | AbstractMap | containsValue | Object | | AbstractMap | equals | Object | @@ -79,7 +79,7 @@ methodWithDuplicate | AbstractMap | put | V | | AbstractMap | putAll | Map | | AbstractMap | remove | Object | -| AbstractMap | containsEntry | Entry | +| AbstractMap | containsEntry$kotlin_stdlib | Entry | | AbstractMap | containsKey | Object | | AbstractMap | containsValue | Object | | AbstractMap | equals | Object | From e4636be8dbb91fb01b5607c5600c5b906009f521 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 1 Jul 2022 11:07:18 +0100 Subject: [PATCH 265/736] C++: Add 'nomagic' to the charpred of 'VariableAccessInInitializer'. --- cpp/ql/src/Likely Bugs/UseInOwnInitializer.ql | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/ql/src/Likely Bugs/UseInOwnInitializer.ql b/cpp/ql/src/Likely Bugs/UseInOwnInitializer.ql index 6bb411b7844..054fdccbb99 100644 --- a/cpp/ql/src/Likely Bugs/UseInOwnInitializer.ql +++ b/cpp/ql/src/Likely Bugs/UseInOwnInitializer.ql @@ -15,6 +15,7 @@ class VariableAccessInInitializer extends VariableAccess { Variable var; Initializer init; + pragma[nomagic] VariableAccessInInitializer() { init.getDeclaration() = var and init.getExpr().getAChild*() = this From 901e0663557571604239ec44e44ddefaacf3dc1f Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 1 Jul 2022 13:39:28 +0200 Subject: [PATCH 266/736] Swift: locally run integration tests Minimal recreations of internal `integration-tests-runner.py` and `create_database_utils.py` are provided to be able to run the integration tests on the codeql repository with a released codeql CLI. For the moment we skip the database checks by default, as we are still producing inconsistent results. --- .github/workflows/swift-integration-tests.yml | 32 ++++++++ swift/integration-tests/.gitignore | 1 + .../create_database_utils.py | 26 ++++++ .../cross-references/Functions.expected | 4 - .../frontend-invocations/A.swift | 0 .../frontend-invocations/B.swift | 0 .../frontend-invocations/C.swift | 0 .../frontend-invocations/D.swift | 0 .../frontend-invocations/E.swift | 0 .../frontend-invocations/Esup.swift | 0 .../frontend-invocations/Files.expected | 0 .../frontend-invocations/Files.ql | 0 .../frontend-invocations/Makefile | 0 .../frontend-invocations/test.py | 0 .../cross-references/Classes.expected | 0 .../cross-references/Classes.ql | 0 .../cross-references/Constructors.expected | 0 .../cross-references/Constructors.ql | 0 .../cross-references/Destructors.expected | 0 .../cross-references/Destructors.ql | 0 .../cross-references/Enums.expected | 0 .../cross-references/Enums.ql | 0 .../cross-references/Functions.expected | 4 + .../cross-references/Functions.ql | 0 .../cross-references/Operators.expected | 0 .../cross-references/Operators.ql | 0 .../cross-references/Package.swift | 0 .../cross-references/Protocols.expected | 0 .../cross-references/Protocols.ql | 0 .../Sources/cross-references/lib.swift | 1 - .../Sources/cross-references/main.swift | 1 - .../cross-references/Structs.expected | 0 .../cross-references/Structs.ql | 0 .../cross-references/VarDecls.expected | 0 .../cross-references/VarDecls.ql | 0 .../{ => posix-only}/cross-references/test.py | 0 .../hello-world/Package.swift | 0 .../Sources/hello-world/hello_world.swift | 0 .../hello-world/test.expected | 0 .../{ => posix-only}/hello-world/test.py | 0 .../{ => posix-only}/hello-world/test.ql | 0 .../partial-modules/A/Package.swift | 0 .../partial-modules/A/Sources/A/A.swift | 0 .../partial-modules/A/Sources/A/Asup.swift | 0 .../partial-modules/B/Package.swift | 0 .../partial-modules/B/Sources/B/B.swift | 0 .../partial-modules/B/Sources/B/Bsup.swift | 0 .../partial-modules/Package.swift | 0 .../partial-modules/partial_modules.swift | 0 .../partial-modules/Unknown.expected | 0 .../partial-modules/Unknown.ql | 0 .../{ => posix-only}/partial-modules/test.py | 0 swift/integration-tests/runner.py | 80 +++++++++++++++++++ 53 files changed, 143 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/swift-integration-tests.yml create mode 100644 swift/integration-tests/create_database_utils.py delete mode 100644 swift/integration-tests/cross-references/Functions.expected rename swift/integration-tests/{ => osx-only}/frontend-invocations/A.swift (100%) rename swift/integration-tests/{ => osx-only}/frontend-invocations/B.swift (100%) rename swift/integration-tests/{ => osx-only}/frontend-invocations/C.swift (100%) rename swift/integration-tests/{ => osx-only}/frontend-invocations/D.swift (100%) rename swift/integration-tests/{ => osx-only}/frontend-invocations/E.swift (100%) rename swift/integration-tests/{ => osx-only}/frontend-invocations/Esup.swift (100%) rename swift/integration-tests/{ => osx-only}/frontend-invocations/Files.expected (100%) rename swift/integration-tests/{ => osx-only}/frontend-invocations/Files.ql (100%) rename swift/integration-tests/{ => osx-only}/frontend-invocations/Makefile (100%) rename swift/integration-tests/{ => osx-only}/frontend-invocations/test.py (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Classes.expected (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Classes.ql (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Constructors.expected (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Constructors.ql (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Destructors.expected (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Destructors.ql (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Enums.expected (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Enums.ql (100%) create mode 100644 swift/integration-tests/posix-only/cross-references/Functions.expected rename swift/integration-tests/{ => posix-only}/cross-references/Functions.ql (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Operators.expected (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Operators.ql (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Package.swift (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Protocols.expected (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Protocols.ql (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Sources/cross-references/lib.swift (99%) rename swift/integration-tests/{ => posix-only}/cross-references/Sources/cross-references/main.swift (98%) rename swift/integration-tests/{ => posix-only}/cross-references/Structs.expected (100%) rename swift/integration-tests/{ => posix-only}/cross-references/Structs.ql (100%) rename swift/integration-tests/{ => posix-only}/cross-references/VarDecls.expected (100%) rename swift/integration-tests/{ => posix-only}/cross-references/VarDecls.ql (100%) rename swift/integration-tests/{ => posix-only}/cross-references/test.py (100%) rename swift/integration-tests/{ => posix-only}/hello-world/Package.swift (100%) rename swift/integration-tests/{ => posix-only}/hello-world/Sources/hello-world/hello_world.swift (100%) rename swift/integration-tests/{ => posix-only}/hello-world/test.expected (100%) rename swift/integration-tests/{ => posix-only}/hello-world/test.py (100%) rename swift/integration-tests/{ => posix-only}/hello-world/test.ql (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/A/Package.swift (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/A/Sources/A/A.swift (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/A/Sources/A/Asup.swift (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/B/Package.swift (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/B/Sources/B/B.swift (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/B/Sources/B/Bsup.swift (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/Package.swift (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/Sources/partial-modules/partial_modules.swift (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/Unknown.expected (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/Unknown.ql (100%) rename swift/integration-tests/{ => posix-only}/partial-modules/test.py (100%) create mode 100755 swift/integration-tests/runner.py diff --git a/.github/workflows/swift-integration-tests.yml b/.github/workflows/swift-integration-tests.yml new file mode 100644 index 00000000000..a9028d6c89a --- /dev/null +++ b/.github/workflows/swift-integration-tests.yml @@ -0,0 +1,32 @@ +name: "Swift: Run Integration Tests" + +on: + pull_request: + paths: + - "swift/**" + - .github/workflows/swift-integration-tests.yml + - codeql-workspace.yml + branches: + - main +defaults: + run: + working-directory: swift + +jobs: + integration-tests: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os : [ubuntu-20.04, macos-latest] + steps: + - uses: actions/checkout@v3 + - uses: ./.github/actions/fetch-codeql + - uses: bazelbuild/setup-bazelisk@v2 + - uses: actions/setup-python@v3 + - name: Build Swift extractor + run: | + bazel run //swift:create-extractor-pack + - name: Run integration tests + run: | + python integration-tests/runner.py diff --git a/swift/integration-tests/.gitignore b/swift/integration-tests/.gitignore index 8e66c817556..9ea4244ad91 100644 --- a/swift/integration-tests/.gitignore +++ b/swift/integration-tests/.gitignore @@ -6,3 +6,4 @@ xcuserdata/ DerivedData/ .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata *.actual +db diff --git a/swift/integration-tests/create_database_utils.py b/swift/integration-tests/create_database_utils.py new file mode 100644 index 00000000000..3f2d11a39f7 --- /dev/null +++ b/swift/integration-tests/create_database_utils.py @@ -0,0 +1,26 @@ +""" +recreation of internal `create_database_utils.py` to run the tests locally, with minimal +and swift-specialized functionality +""" +import subprocess +import pathlib +import sys + + +def run_codeql_database_create(cmds, lang, keep_trap=True): + assert lang == 'swift' + codeql_root = pathlib.Path(__file__).parents[2] + cmd = [ + "codeql", "database", "create", + "-s", ".", "-l", "swift", "--internal-use-lua-tracing", f"--search-path={codeql_root}", + ] + if keep_trap: + cmd.append("--keep-trap") + for c in cmds: + cmd += ["-c", c] + cmd.append("db") + res = subprocess.run(cmd) + if res.returncode: + print("FAILED", file=sys.stderr) + print(" ", *cmd, file=sys.stderr) + sys.exit(res.returncode) diff --git a/swift/integration-tests/cross-references/Functions.expected b/swift/integration-tests/cross-references/Functions.expected deleted file mode 100644 index 76335112240..00000000000 --- a/swift/integration-tests/cross-references/Functions.expected +++ /dev/null @@ -1,4 +0,0 @@ -| Sources/cross-references/lib.swift:1:1:1:11 | f | -| Sources/cross-references/lib.swift:17:8:19:1 | ~ | -| Sources/cross-references/lib.swift:22:9:24:1 | ~ | -| Sources/cross-references/lib.swift:27:1:29:1 | ~ | diff --git a/swift/integration-tests/frontend-invocations/A.swift b/swift/integration-tests/osx-only/frontend-invocations/A.swift similarity index 100% rename from swift/integration-tests/frontend-invocations/A.swift rename to swift/integration-tests/osx-only/frontend-invocations/A.swift diff --git a/swift/integration-tests/frontend-invocations/B.swift b/swift/integration-tests/osx-only/frontend-invocations/B.swift similarity index 100% rename from swift/integration-tests/frontend-invocations/B.swift rename to swift/integration-tests/osx-only/frontend-invocations/B.swift diff --git a/swift/integration-tests/frontend-invocations/C.swift b/swift/integration-tests/osx-only/frontend-invocations/C.swift similarity index 100% rename from swift/integration-tests/frontend-invocations/C.swift rename to swift/integration-tests/osx-only/frontend-invocations/C.swift diff --git a/swift/integration-tests/frontend-invocations/D.swift b/swift/integration-tests/osx-only/frontend-invocations/D.swift similarity index 100% rename from swift/integration-tests/frontend-invocations/D.swift rename to swift/integration-tests/osx-only/frontend-invocations/D.swift diff --git a/swift/integration-tests/frontend-invocations/E.swift b/swift/integration-tests/osx-only/frontend-invocations/E.swift similarity index 100% rename from swift/integration-tests/frontend-invocations/E.swift rename to swift/integration-tests/osx-only/frontend-invocations/E.swift diff --git a/swift/integration-tests/frontend-invocations/Esup.swift b/swift/integration-tests/osx-only/frontend-invocations/Esup.swift similarity index 100% rename from swift/integration-tests/frontend-invocations/Esup.swift rename to swift/integration-tests/osx-only/frontend-invocations/Esup.swift diff --git a/swift/integration-tests/frontend-invocations/Files.expected b/swift/integration-tests/osx-only/frontend-invocations/Files.expected similarity index 100% rename from swift/integration-tests/frontend-invocations/Files.expected rename to swift/integration-tests/osx-only/frontend-invocations/Files.expected diff --git a/swift/integration-tests/frontend-invocations/Files.ql b/swift/integration-tests/osx-only/frontend-invocations/Files.ql similarity index 100% rename from swift/integration-tests/frontend-invocations/Files.ql rename to swift/integration-tests/osx-only/frontend-invocations/Files.ql diff --git a/swift/integration-tests/frontend-invocations/Makefile b/swift/integration-tests/osx-only/frontend-invocations/Makefile similarity index 100% rename from swift/integration-tests/frontend-invocations/Makefile rename to swift/integration-tests/osx-only/frontend-invocations/Makefile diff --git a/swift/integration-tests/frontend-invocations/test.py b/swift/integration-tests/osx-only/frontend-invocations/test.py similarity index 100% rename from swift/integration-tests/frontend-invocations/test.py rename to swift/integration-tests/osx-only/frontend-invocations/test.py diff --git a/swift/integration-tests/cross-references/Classes.expected b/swift/integration-tests/posix-only/cross-references/Classes.expected similarity index 100% rename from swift/integration-tests/cross-references/Classes.expected rename to swift/integration-tests/posix-only/cross-references/Classes.expected diff --git a/swift/integration-tests/cross-references/Classes.ql b/swift/integration-tests/posix-only/cross-references/Classes.ql similarity index 100% rename from swift/integration-tests/cross-references/Classes.ql rename to swift/integration-tests/posix-only/cross-references/Classes.ql diff --git a/swift/integration-tests/cross-references/Constructors.expected b/swift/integration-tests/posix-only/cross-references/Constructors.expected similarity index 100% rename from swift/integration-tests/cross-references/Constructors.expected rename to swift/integration-tests/posix-only/cross-references/Constructors.expected diff --git a/swift/integration-tests/cross-references/Constructors.ql b/swift/integration-tests/posix-only/cross-references/Constructors.ql similarity index 100% rename from swift/integration-tests/cross-references/Constructors.ql rename to swift/integration-tests/posix-only/cross-references/Constructors.ql diff --git a/swift/integration-tests/cross-references/Destructors.expected b/swift/integration-tests/posix-only/cross-references/Destructors.expected similarity index 100% rename from swift/integration-tests/cross-references/Destructors.expected rename to swift/integration-tests/posix-only/cross-references/Destructors.expected diff --git a/swift/integration-tests/cross-references/Destructors.ql b/swift/integration-tests/posix-only/cross-references/Destructors.ql similarity index 100% rename from swift/integration-tests/cross-references/Destructors.ql rename to swift/integration-tests/posix-only/cross-references/Destructors.ql diff --git a/swift/integration-tests/cross-references/Enums.expected b/swift/integration-tests/posix-only/cross-references/Enums.expected similarity index 100% rename from swift/integration-tests/cross-references/Enums.expected rename to swift/integration-tests/posix-only/cross-references/Enums.expected diff --git a/swift/integration-tests/cross-references/Enums.ql b/swift/integration-tests/posix-only/cross-references/Enums.ql similarity index 100% rename from swift/integration-tests/cross-references/Enums.ql rename to swift/integration-tests/posix-only/cross-references/Enums.ql diff --git a/swift/integration-tests/posix-only/cross-references/Functions.expected b/swift/integration-tests/posix-only/cross-references/Functions.expected new file mode 100644 index 00000000000..2ecf78a6be4 --- /dev/null +++ b/swift/integration-tests/posix-only/cross-references/Functions.expected @@ -0,0 +1,4 @@ +| Sources/cross-references/lib.swift:1:1:1:11 | f() | +| Sources/cross-references/lib.swift:17:8:19:1 | ~(_:) | +| Sources/cross-references/lib.swift:22:9:24:1 | ~(_:) | +| Sources/cross-references/lib.swift:27:1:29:1 | ~(_:_:) | diff --git a/swift/integration-tests/cross-references/Functions.ql b/swift/integration-tests/posix-only/cross-references/Functions.ql similarity index 100% rename from swift/integration-tests/cross-references/Functions.ql rename to swift/integration-tests/posix-only/cross-references/Functions.ql diff --git a/swift/integration-tests/cross-references/Operators.expected b/swift/integration-tests/posix-only/cross-references/Operators.expected similarity index 100% rename from swift/integration-tests/cross-references/Operators.expected rename to swift/integration-tests/posix-only/cross-references/Operators.expected diff --git a/swift/integration-tests/cross-references/Operators.ql b/swift/integration-tests/posix-only/cross-references/Operators.ql similarity index 100% rename from swift/integration-tests/cross-references/Operators.ql rename to swift/integration-tests/posix-only/cross-references/Operators.ql diff --git a/swift/integration-tests/cross-references/Package.swift b/swift/integration-tests/posix-only/cross-references/Package.swift similarity index 100% rename from swift/integration-tests/cross-references/Package.swift rename to swift/integration-tests/posix-only/cross-references/Package.swift diff --git a/swift/integration-tests/cross-references/Protocols.expected b/swift/integration-tests/posix-only/cross-references/Protocols.expected similarity index 100% rename from swift/integration-tests/cross-references/Protocols.expected rename to swift/integration-tests/posix-only/cross-references/Protocols.expected diff --git a/swift/integration-tests/cross-references/Protocols.ql b/swift/integration-tests/posix-only/cross-references/Protocols.ql similarity index 100% rename from swift/integration-tests/cross-references/Protocols.ql rename to swift/integration-tests/posix-only/cross-references/Protocols.ql diff --git a/swift/integration-tests/cross-references/Sources/cross-references/lib.swift b/swift/integration-tests/posix-only/cross-references/Sources/cross-references/lib.swift similarity index 99% rename from swift/integration-tests/cross-references/Sources/cross-references/lib.swift rename to swift/integration-tests/posix-only/cross-references/Sources/cross-references/lib.swift index 39acad28b14..1155935d326 100644 --- a/swift/integration-tests/cross-references/Sources/cross-references/lib.swift +++ b/swift/integration-tests/posix-only/cross-references/Sources/cross-references/lib.swift @@ -27,4 +27,3 @@ infix operator ~ func ~(lhs: Int, rhs: Int) -> Int { return lhs } - diff --git a/swift/integration-tests/cross-references/Sources/cross-references/main.swift b/swift/integration-tests/posix-only/cross-references/Sources/cross-references/main.swift similarity index 98% rename from swift/integration-tests/cross-references/Sources/cross-references/main.swift rename to swift/integration-tests/posix-only/cross-references/Sources/cross-references/main.swift index b4143493c41..474d885af58 100644 --- a/swift/integration-tests/cross-references/Sources/cross-references/main.swift +++ b/swift/integration-tests/posix-only/cross-references/Sources/cross-references/main.swift @@ -15,4 +15,3 @@ struct s : P {} 42~ 15 ~ 42 - diff --git a/swift/integration-tests/cross-references/Structs.expected b/swift/integration-tests/posix-only/cross-references/Structs.expected similarity index 100% rename from swift/integration-tests/cross-references/Structs.expected rename to swift/integration-tests/posix-only/cross-references/Structs.expected diff --git a/swift/integration-tests/cross-references/Structs.ql b/swift/integration-tests/posix-only/cross-references/Structs.ql similarity index 100% rename from swift/integration-tests/cross-references/Structs.ql rename to swift/integration-tests/posix-only/cross-references/Structs.ql diff --git a/swift/integration-tests/cross-references/VarDecls.expected b/swift/integration-tests/posix-only/cross-references/VarDecls.expected similarity index 100% rename from swift/integration-tests/cross-references/VarDecls.expected rename to swift/integration-tests/posix-only/cross-references/VarDecls.expected diff --git a/swift/integration-tests/cross-references/VarDecls.ql b/swift/integration-tests/posix-only/cross-references/VarDecls.ql similarity index 100% rename from swift/integration-tests/cross-references/VarDecls.ql rename to swift/integration-tests/posix-only/cross-references/VarDecls.ql diff --git a/swift/integration-tests/cross-references/test.py b/swift/integration-tests/posix-only/cross-references/test.py similarity index 100% rename from swift/integration-tests/cross-references/test.py rename to swift/integration-tests/posix-only/cross-references/test.py diff --git a/swift/integration-tests/hello-world/Package.swift b/swift/integration-tests/posix-only/hello-world/Package.swift similarity index 100% rename from swift/integration-tests/hello-world/Package.swift rename to swift/integration-tests/posix-only/hello-world/Package.swift diff --git a/swift/integration-tests/hello-world/Sources/hello-world/hello_world.swift b/swift/integration-tests/posix-only/hello-world/Sources/hello-world/hello_world.swift similarity index 100% rename from swift/integration-tests/hello-world/Sources/hello-world/hello_world.swift rename to swift/integration-tests/posix-only/hello-world/Sources/hello-world/hello_world.swift diff --git a/swift/integration-tests/hello-world/test.expected b/swift/integration-tests/posix-only/hello-world/test.expected similarity index 100% rename from swift/integration-tests/hello-world/test.expected rename to swift/integration-tests/posix-only/hello-world/test.expected diff --git a/swift/integration-tests/hello-world/test.py b/swift/integration-tests/posix-only/hello-world/test.py similarity index 100% rename from swift/integration-tests/hello-world/test.py rename to swift/integration-tests/posix-only/hello-world/test.py diff --git a/swift/integration-tests/hello-world/test.ql b/swift/integration-tests/posix-only/hello-world/test.ql similarity index 100% rename from swift/integration-tests/hello-world/test.ql rename to swift/integration-tests/posix-only/hello-world/test.ql diff --git a/swift/integration-tests/partial-modules/A/Package.swift b/swift/integration-tests/posix-only/partial-modules/A/Package.swift similarity index 100% rename from swift/integration-tests/partial-modules/A/Package.swift rename to swift/integration-tests/posix-only/partial-modules/A/Package.swift diff --git a/swift/integration-tests/partial-modules/A/Sources/A/A.swift b/swift/integration-tests/posix-only/partial-modules/A/Sources/A/A.swift similarity index 100% rename from swift/integration-tests/partial-modules/A/Sources/A/A.swift rename to swift/integration-tests/posix-only/partial-modules/A/Sources/A/A.swift diff --git a/swift/integration-tests/partial-modules/A/Sources/A/Asup.swift b/swift/integration-tests/posix-only/partial-modules/A/Sources/A/Asup.swift similarity index 100% rename from swift/integration-tests/partial-modules/A/Sources/A/Asup.swift rename to swift/integration-tests/posix-only/partial-modules/A/Sources/A/Asup.swift diff --git a/swift/integration-tests/partial-modules/B/Package.swift b/swift/integration-tests/posix-only/partial-modules/B/Package.swift similarity index 100% rename from swift/integration-tests/partial-modules/B/Package.swift rename to swift/integration-tests/posix-only/partial-modules/B/Package.swift diff --git a/swift/integration-tests/partial-modules/B/Sources/B/B.swift b/swift/integration-tests/posix-only/partial-modules/B/Sources/B/B.swift similarity index 100% rename from swift/integration-tests/partial-modules/B/Sources/B/B.swift rename to swift/integration-tests/posix-only/partial-modules/B/Sources/B/B.swift diff --git a/swift/integration-tests/partial-modules/B/Sources/B/Bsup.swift b/swift/integration-tests/posix-only/partial-modules/B/Sources/B/Bsup.swift similarity index 100% rename from swift/integration-tests/partial-modules/B/Sources/B/Bsup.swift rename to swift/integration-tests/posix-only/partial-modules/B/Sources/B/Bsup.swift diff --git a/swift/integration-tests/partial-modules/Package.swift b/swift/integration-tests/posix-only/partial-modules/Package.swift similarity index 100% rename from swift/integration-tests/partial-modules/Package.swift rename to swift/integration-tests/posix-only/partial-modules/Package.swift diff --git a/swift/integration-tests/partial-modules/Sources/partial-modules/partial_modules.swift b/swift/integration-tests/posix-only/partial-modules/Sources/partial-modules/partial_modules.swift similarity index 100% rename from swift/integration-tests/partial-modules/Sources/partial-modules/partial_modules.swift rename to swift/integration-tests/posix-only/partial-modules/Sources/partial-modules/partial_modules.swift diff --git a/swift/integration-tests/partial-modules/Unknown.expected b/swift/integration-tests/posix-only/partial-modules/Unknown.expected similarity index 100% rename from swift/integration-tests/partial-modules/Unknown.expected rename to swift/integration-tests/posix-only/partial-modules/Unknown.expected diff --git a/swift/integration-tests/partial-modules/Unknown.ql b/swift/integration-tests/posix-only/partial-modules/Unknown.ql similarity index 100% rename from swift/integration-tests/partial-modules/Unknown.ql rename to swift/integration-tests/posix-only/partial-modules/Unknown.ql diff --git a/swift/integration-tests/partial-modules/test.py b/swift/integration-tests/posix-only/partial-modules/test.py similarity index 100% rename from swift/integration-tests/partial-modules/test.py rename to swift/integration-tests/posix-only/partial-modules/test.py diff --git a/swift/integration-tests/runner.py b/swift/integration-tests/runner.py new file mode 100755 index 00000000000..b9e39325fd9 --- /dev/null +++ b/swift/integration-tests/runner.py @@ -0,0 +1,80 @@ +#!/bin/env python3 +""" +recreation of internal `integration-tests-runner.py` to run the tests locally, with minimal +and swift-specialized functionality. + +This runner requires: +* a codeql CLI binary in PATH +* `bazel run //swift:create_extractor_pack` to have been run +""" + +import pathlib +import os +import sys +import subprocess +import argparse +import shutil +import platform + +this_dir = pathlib.Path(__file__).parent + + +def options(): + p = argparse.ArgumentParser() + p.add_argument("--test-dir", "-d", type=pathlib.Path, action="append") + #FIXME: the following should be the default + p.add_argument("--check-databases", action="store_true") + p.add_argument("--learn", action="store_true") + p.add_argument("--threads", "-j", type=int, default=0) + return p.parse_args() + + +def execute_test(path): + shutil.rmtree(path.parent / "db", ignore_errors=True) + return subprocess.run([sys.executable, "-u", path.name], cwd=path.parent).returncode == 0 + +def skipped(test): + return platform.system() != "Darwin" and "osx-only" in test.parts + + +def main(opts): + test_dirs = opts.test_dir or [this_dir] + tests = [t for d in test_dirs for t in d.rglob("test.py") if not skipped(t)] + + if not tests: + print("No tests found", file=sys.stderr) + return False + + os.environ["PYTHONPATH"] = str(this_dir) + failed_db_creation = [] + succesful_db_creation = [] + for t in tests: + (succesful_db_creation if execute_test(t) else failed_db_creation).append(t) + + if succesful_db_creation: + codeql_root = this_dir.parents[1] + cmd = [ + "codeql", "test", "run", + f"--search-path={codeql_root}", + "--keep-databases", + "--dataset=db/db-swift", + f"--threads={opts.threads}", + ] + if opts.check_databases: + cmd.append("--check-databases") + if opts.learn: + cmd.append("--learn") + cmd.extend(str(t.parent) for t in succesful_db_creation) + ql_test_success = subprocess.run(cmd).returncode == 0 + + if failed_db_creation: + print("Database creation failed:", file=sys.stderr) + for t in failed_db_creation: + print(" ", t.parent, file=sys.stderr) + return False + + return ql_test_success + + +if __name__ == "__main__": + sys.exit(0 if main(options()) else 1) From 24da81fdb068e2ea0cc43b27686d6281fe042eb1 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 1 Jul 2022 14:56:14 +0200 Subject: [PATCH 267/736] Swift: disable integration tests on macOS for now Also, add swift workflow to code owned by the C team --- .github/workflows/swift-integration-tests.yml | 4 +++- CODEOWNERS | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/swift-integration-tests.yml b/.github/workflows/swift-integration-tests.yml index a9028d6c89a..591ea2b12f7 100644 --- a/.github/workflows/swift-integration-tests.yml +++ b/.github/workflows/swift-integration-tests.yml @@ -18,7 +18,9 @@ jobs: strategy: fail-fast: false matrix: - os : [ubuntu-20.04, macos-latest] + os: + - ubuntu-20.04 +# - macos-latest TODO steps: - uses: actions/checkout@v3 - uses: ./.github/actions/fetch-codeql diff --git a/CODEOWNERS b/CODEOWNERS index da71d1ec5d8..1754d58af63 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -42,3 +42,4 @@ WORKSPACE.bazel @github/codeql-ci-reviewers /.github/workflows/js-ml-tests.yml @github/codeql-ml-powered-queries-reviewers /.github/workflows/ql-for-ql-* @github/codeql-ql-for-ql-reviewers /.github/workflows/ruby-* @github/codeql-ruby +/.github/workflows/swift-* @github/codeql-c From 7a7440a1155ed927d8ac242d2acf3f9494ace486 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 29 Jun 2022 10:52:18 +0200 Subject: [PATCH 268/736] Swift: move `createEntry` to `SwiftDispatcher` --- .../collections4/map/AbstractHashedMap.java | 2 +- .../collections4/map/AbstractLinkedMap.java | 2 +- swift/extractor/infra/SwiftDispatcher.h | 6 +++ swift/extractor/visitors/TypeVisitor.cpp | 42 +++++++++---------- swift/extractor/visitors/TypeVisitor.h | 4 +- 5 files changed, 31 insertions(+), 25 deletions(-) diff --git a/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractHashedMap.java b/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractHashedMap.java index f79236e4f10..35d673df2c8 100644 --- a/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractHashedMap.java +++ b/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractHashedMap.java @@ -30,7 +30,7 @@ public class AbstractHashedMap extends AbstractMap implements Iterab protected AbstractHashedMap(int p0){} protected AbstractHashedMap(int p0, float p1){} protected AbstractHashedMap(int p0, float p1, int p2){} - protected AbstractHashedMap.HashEntry createEntry(AbstractHashedMap.HashEntry p0, int p1, K p2, V p3){ return null; } + protected AbstractHashedMap.HashEntry createTypeEntry(AbstractHashedMap.HashEntry p0, int p1, K p2, V p3){ return null; } protected AbstractHashedMap.HashEntry entryNext(AbstractHashedMap.HashEntry p0){ return null; } protected AbstractHashedMap.HashEntry getEntry(Object p0){ return null; } protected AbstractHashedMap clone(){ return null; } diff --git a/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractLinkedMap.java b/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractLinkedMap.java index b96404dd5b9..6d349ee1130 100644 --- a/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractLinkedMap.java +++ b/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractLinkedMap.java @@ -16,7 +16,7 @@ abstract public class AbstractLinkedMap extends AbstractHashedMap im protected AbstractLinkedMap(int p0){} protected AbstractLinkedMap(int p0, float p1){} protected AbstractLinkedMap(int p0, float p1, int p2){} - protected AbstractLinkedMap.LinkEntry createEntry(AbstractHashedMap.HashEntry p0, int p1, K p2, V p3){ return null; } + protected AbstractLinkedMap.LinkEntry createTypeEntry(AbstractHashedMap.HashEntry p0, int p1, K p2, V p3){ return null; } protected AbstractLinkedMap.LinkEntry entryAfter(AbstractLinkedMap.LinkEntry p0){ return null; } protected AbstractLinkedMap.LinkEntry entryBefore(AbstractLinkedMap.LinkEntry p0){ return null; } protected AbstractLinkedMap.LinkEntry getEntry(Object p0){ return null; } diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index e7aaa5af612..525cb74330a 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -112,6 +112,12 @@ class SwiftDispatcher { return assignNewLabel(&e, std::forward(args)...); } + // convenience methods for structured C++ creation + template >* = nullptr> + auto createEntry(const E& e, Args&&... args) { + return TrapClassOf{assignNewLabel(&e, std::forward(args)...)}; + } + template TrapLabel createLabel() { auto ret = arena.allocateLabel(); diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index 4514692421e..4b6733312d3 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -122,13 +122,13 @@ void TypeVisitor::visitParenType(swift::ParenType* type) { } codeql::OptionalType TypeVisitor::translateOptionalType(const swift::OptionalType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); fillUnarySyntaxSugarType(type, entry); return entry; } codeql::ArraySliceType TypeVisitor::translateArraySliceType(const swift::ArraySliceType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); fillUnarySyntaxSugarType(type, entry); return entry; } @@ -163,7 +163,7 @@ void TypeVisitor::visitLValueType(swift::LValueType* type) { codeql::PrimaryArchetypeType TypeVisitor::translatePrimaryArchetypeType( const swift::PrimaryArchetypeType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); fillArchetypeType(type, entry); return entry; } @@ -229,7 +229,7 @@ void TypeVisitor::emitAnyGenericType(swift::AnyGenericType* type, codeql::NestedArchetypeType TypeVisitor::translateNestedArchetypeType( const swift::NestedArchetypeType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); entry.parent = dispatcher_.fetchLabel(type.getParent()); entry.associated_type_declaration = dispatcher_.fetchLabel(type.getAssocType()); fillArchetypeType(type, entry); @@ -248,26 +248,26 @@ void TypeVisitor::fillArchetypeType(const swift::ArchetypeType& type, ArchetypeT } codeql::ExistentialType TypeVisitor::translateExistentialType(const swift::ExistentialType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); entry.constraint = dispatcher_.fetchLabel(type.getConstraintType()); return entry; } codeql::DynamicSelfType TypeVisitor::translateDynamicSelfType(const swift::DynamicSelfType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); entry.static_self_type = dispatcher_.fetchLabel(type.getSelfType()); return entry; } codeql::VariadicSequenceType TypeVisitor::translateVariadicSequenceType( const swift::VariadicSequenceType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); fillUnarySyntaxSugarType(type, entry); return entry; } codeql::InOutType TypeVisitor::translateInOutType(const swift::InOutType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); entry.object_type = dispatcher_.fetchLabel(type.getObjectType()); return entry; } @@ -300,19 +300,19 @@ void TypeVisitor::fillReferenceStorageType(const swift::ReferenceStorageType& ty codeql::ProtocolCompositionType TypeVisitor::translateProtocolCompositionType( const swift::ProtocolCompositionType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); entry.members = dispatcher_.fetchRepeatedLabels(type.getMembers()); return entry; } codeql::BuiltinIntegerLiteralType TypeVisitor::translateBuiltinIntegerLiteralType( const swift::BuiltinIntegerLiteralType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinIntegerType TypeVisitor::translateBuiltinIntegerType( const swift::BuiltinIntegerType& type) { - auto entry = createEntry(type); + auto entry = createTypeEntry(type); if (type.isFixedWidth()) { entry.width = type.getFixedWidth(); } @@ -321,51 +321,51 @@ codeql::BuiltinIntegerType TypeVisitor::translateBuiltinIntegerType( codeql::BuiltinBridgeObjectType TypeVisitor::translateBuiltinBridgeObjectType( const swift::BuiltinBridgeObjectType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinDefaultActorStorageType TypeVisitor::translateBuiltinDefaultActorStorageType( const swift::BuiltinDefaultActorStorageType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinExecutorType TypeVisitor::translateBuiltinExecutorType( const swift::BuiltinExecutorType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinFloatType TypeVisitor::translateBuiltinFloatType( const swift::BuiltinFloatType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinJobType TypeVisitor::translateBuiltinJobType(const swift::BuiltinJobType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinNativeObjectType TypeVisitor::translateBuiltinNativeObjectType( const swift::BuiltinNativeObjectType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinRawPointerType TypeVisitor::translateBuiltinRawPointerType( const swift::BuiltinRawPointerType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinRawUnsafeContinuationType TypeVisitor::translateBuiltinRawUnsafeContinuationType( const swift::BuiltinRawUnsafeContinuationType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinUnsafeValueBufferType TypeVisitor::translateBuiltinUnsafeValueBufferType( const swift::BuiltinUnsafeValueBufferType& type) { - return createEntry(type); + return createTypeEntry(type); } codeql::BuiltinVectorType TypeVisitor::translateBuiltinVectorType( const swift::BuiltinVectorType& type) { - return createEntry(type); + return createTypeEntry(type); } } // namespace codeql diff --git a/swift/extractor/visitors/TypeVisitor.h b/swift/extractor/visitors/TypeVisitor.h index 99d1ca7fdbb..77ae8ee13bf 100644 --- a/swift/extractor/visitors/TypeVisitor.h +++ b/swift/extractor/visitors/TypeVisitor.h @@ -81,8 +81,8 @@ class TypeVisitor : public TypeVisitorBase { void emitAnyGenericType(swift::AnyGenericType* type, TrapLabel label); template - auto createEntry(const T& type) { - TrapClassOf entry{dispatcher_.assignNewLabel(type)}; + auto createTypeEntry(const T& type) { + auto entry = dispatcher_.createEntry(type); fillType(type, entry); return entry; } From 3a975174c38001553c02144c7654651d5d99399e Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 1 Jul 2022 15:17:21 +0200 Subject: [PATCH 269/736] Swift: extract `ImportDecl` and `ModuleDecl` As `ASTMangler` crashes when called on `ModuleDecl`, we simply use its name. This might probably not work reliably in a scenario where multiple modules are compiled with the same name (like `main`), but this is left for future work. At the moment this cannot create DB inconsistencies. --- swift/codegen/schema.yml | 5 +++ swift/extractor/SwiftExtractor.cpp | 21 +++++++---- swift/extractor/infra/SwiftDispatcher.h | 9 ++++- swift/extractor/trap/TrapOutput.h | 4 +-- swift/extractor/visitors/DeclVisitor.cpp | 36 +++++++++++++++---- swift/extractor/visitors/DeclVisitor.h | 11 ++++++ .../swift/generated/decl/ImportDecl.qll | 22 ++++++++++++ .../swift/generated/decl/ModuleDecl.qll | 4 +++ swift/ql/lib/swift.dbscheme | 25 ++++++++++++- swift/ql/test/TestUtils.qll | 2 ++ .../decl/ImportDecl/ImportDecl.expected | 5 +++ .../generated/decl/ImportDecl/ImportDecl.ql | 11 ++++++ .../ImportDecl_getDeclaration.expected | 5 +++ .../ImportDecl/ImportDecl_getDeclaration.ql | 7 ++++ .../decl/ImportDecl/MISSING_SOURCE.txt | 4 --- .../generated/decl/ImportDecl/import.swift | 5 +++ .../decl/ModuleDecl/MISSING_SOURCE.txt | 4 --- .../decl/ModuleDecl/ModuleDecl.expected | 1 + .../generated/decl/ModuleDecl/ModuleDecl.ql | 15 ++++++++ .../ModuleDecl_getBaseType.expected | 0 .../decl/ModuleDecl/ModuleDecl_getBaseType.ql | 7 ++++ .../generated/decl/ModuleDecl/modules.swift | 1 + 22 files changed, 180 insertions(+), 24 deletions(-) create mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/import.swift delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/modules.swift diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index f2e7837f2b2..01bb0c2feba 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -273,6 +273,9 @@ IfConfigDecl: ImportDecl: _extends: Decl + is_exported: predicate + module: ModuleDecl + declarations: ValueDecl* MissingMemberDecl: _extends: Decl @@ -1067,6 +1070,8 @@ GenericTypeDecl: ModuleDecl: _extends: TypeDecl + is_builtin_module: predicate + is_system_module: predicate ConstructorRefCallExpr: _extends: SelfApplyExpr diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 65f0ae150cc..dd8b2569e3c 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -64,8 +64,19 @@ static std::string getTrapFilename(swift::ModuleDecl& module, swift::SourceFile* return filename; } +static llvm::SmallVector getTopLevelDecls(swift::ModuleDecl& module, + swift::SourceFile* primaryFile = nullptr) { + llvm::SmallVector ret; + ret.push_back(&module); + if (primaryFile) { + primaryFile->getTopLevelDecls(ret); + } else { + module.getTopLevelDecls(ret); + } + return ret; +} + static void extractDeclarations(const SwiftExtractorConfiguration& config, - llvm::ArrayRef topLevelDecls, swift::CompilerInstance& compiler, swift::ModuleDecl& module, swift::SourceFile* primaryFile = nullptr) { @@ -119,6 +130,7 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, trap.emit(LocationsTrap{unknownLocationLabel, unknownFileLabel}); SwiftVisitor visitor(compiler.getSourceMgr(), arena, trap, module, primaryFile); + auto topLevelDecls = getTopLevelDecls(module, primaryFile); for (auto decl : topLevelDecls) { visitor.extract(decl); } @@ -203,10 +215,7 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, // user code twice: once during the module build in a form of a source file, and then as // a pre-built module during building of the dependent source files. if (module->isSystemModule() || module->isBuiltinModule()) { - llvm::SmallVector decls; - module->getTopLevelDecls(decls); - // TODO: pass ModuleDecl directly when we have module extraction in place? - extractDeclarations(config, decls, compiler, *module); + extractDeclarations(config, compiler, *module); } else { for (auto file : module->getFiles()) { auto sourceFile = llvm::dyn_cast(file); @@ -214,7 +223,7 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, continue; } archiveFile(config, *sourceFile); - extractDeclarations(config, sourceFile->getTopLevelDecls(), compiler, *module, sourceFile); + extractDeclarations(config, compiler, *module, sourceFile); } } } diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index 525cb74330a..c7ca43a1614 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -179,6 +179,11 @@ class SwiftDispatcher { return ret; } + template + void emitDebugInfo(const Args&... args) { + trap.debug(std::forward(args)...); + } + // In order to not emit duplicated entries for declarations, we restrict emission to only // Decls declared within the current "scope". // Depending on the whether we are extracting a primary source file or not the scope is defined as @@ -192,7 +197,9 @@ class SwiftDispatcher { if (decl.getModuleContext() != ¤tModule) { return false; } - if (!currentPrimarySourceFile) { + // ModuleDecl is a special case: if it passed the previous test, it is the current module + // but it never has a source file, so we short circuit to emit it in any case + if (!currentPrimarySourceFile || decl.getKind() == swift::DeclKind::Module) { return true; } if (auto context = decl.getDeclContext()) { diff --git a/swift/extractor/trap/TrapOutput.h b/swift/extractor/trap/TrapOutput.h index b9104b9118a..0e3f61d39e7 100644 --- a/swift/extractor/trap/TrapOutput.h +++ b/swift/extractor/trap/TrapOutput.h @@ -41,8 +41,8 @@ class TrapOutput { template void debug(const Args&... args) { - out_ << "// DEBUG: "; - (out_ << ... << args) << '\n'; + out_ << "/* DEBUG:\n"; + (out_ << ... << args) << "\n*/\n"; } private: diff --git a/swift/extractor/visitors/DeclVisitor.cpp b/swift/extractor/visitors/DeclVisitor.cpp index ed47f1e5fb1..33f746f6634 100644 --- a/swift/extractor/visitors/DeclVisitor.cpp +++ b/swift/extractor/visitors/DeclVisitor.cpp @@ -241,16 +241,15 @@ std::variant DeclVisitor::trans std::optional DeclVisitor::translateSubscriptDecl( const swift::SubscriptDecl& decl) { - auto id = dispatcher_.assignNewLabel(decl, mangledName(decl)); - if (!dispatcher_.shouldEmitDeclBody(decl)) { + auto entry = createNamedEntry(decl); + if (!entry) { return std::nullopt; } - SubscriptDecl entry{id}; - entry.element_type = dispatcher_.fetchLabel(decl.getElementInterfaceType()); + entry->element_type = dispatcher_.fetchLabel(decl.getElementInterfaceType()); if (auto indices = decl.getIndices()) { - entry.params = dispatcher_.fetchRepeatedLabels(*indices); + entry->params = dispatcher_.fetchRepeatedLabels(*indices); } - fillAbstractStorageDecl(decl, entry); + fillAbstractStorageDecl(decl, *entry); return entry; } @@ -262,7 +261,32 @@ codeql::ExtensionDecl DeclVisitor::translateExtensionDecl(const swift::Extension return entry; } +codeql::ImportDecl DeclVisitor::translateImportDecl(const swift::ImportDecl& decl) { + auto entry = dispatcher_.createEntry(decl); + entry.is_exported = decl.isExported(); + entry.module = dispatcher_.fetchLabel(decl.getModule()); + entry.declarations = dispatcher_.fetchRepeatedLabels(decl.getDecls()); + return entry; +} + +std::optional DeclVisitor::translateModuleDecl(const swift::ModuleDecl& decl) { + auto entry = createNamedEntry(decl); + if (!entry) { + return std::nullopt; + } + entry->is_builtin_module = decl.isBuiltinModule(); + entry->is_system_module = decl.isSystemModule(); + fillTypeDecl(decl, *entry); + return entry; +} + std::string DeclVisitor::mangledName(const swift::ValueDecl& decl) { + // ASTMangler::mangleAnyDecl crashes when called on `ModuleDecl` + // TODO find a more unique string working also when different modules are compiled with the same + // name + if (decl.getKind() == swift::DeclKind::Module) { + return static_cast(decl).getRealName().str().str(); + } // prefix adds a couple of special symbols, we don't necessary need them return mangler.mangleAnyDecl(&decl, /* prefix = */ false); } diff --git a/swift/extractor/visitors/DeclVisitor.h b/swift/extractor/visitors/DeclVisitor.h index 0527513d859..c9a1b43556d 100644 --- a/swift/extractor/visitors/DeclVisitor.h +++ b/swift/extractor/visitors/DeclVisitor.h @@ -50,6 +50,8 @@ class DeclVisitor : public AstVisitorBase { const swift::AccessorDecl& decl); std::optional translateSubscriptDecl(const swift::SubscriptDecl& decl); codeql::ExtensionDecl translateExtensionDecl(const swift::ExtensionDecl& decl); + codeql::ImportDecl translateImportDecl(const swift::ImportDecl& decl); + std::optional translateModuleDecl(const swift::ModuleDecl& decl); private: std::string mangledName(const swift::ValueDecl& decl); @@ -66,6 +68,15 @@ class DeclVisitor : public AstVisitorBase { void fillAbstractStorageDecl(const swift::AbstractStorageDecl& decl, codeql::AbstractStorageDecl& entry); + template + std::optional> createNamedEntry(const D& decl) { + auto id = dispatcher_.assignNewLabel(decl, mangledName(decl)); + if (dispatcher_.shouldEmitDeclBody(decl)) { + return TrapClassOf{id}; + } + return std::nullopt; + } + private: swift::Mangle::ASTMangler mangler; }; diff --git a/swift/ql/lib/codeql/swift/generated/decl/ImportDecl.qll b/swift/ql/lib/codeql/swift/generated/decl/ImportDecl.qll index fdd89db170a..8f5638ad069 100644 --- a/swift/ql/lib/codeql/swift/generated/decl/ImportDecl.qll +++ b/swift/ql/lib/codeql/swift/generated/decl/ImportDecl.qll @@ -1,6 +1,28 @@ // generated by codegen/codegen.py import codeql.swift.elements.decl.Decl +import codeql.swift.elements.decl.ModuleDecl +import codeql.swift.elements.decl.ValueDecl class ImportDeclBase extends @import_decl, Decl { override string getAPrimaryQlClass() { result = "ImportDecl" } + + predicate isExported() { import_decl_is_exported(this) } + + ModuleDecl getModule() { + exists(ModuleDecl x | + import_decls(this, x) and + result = x.resolve() + ) + } + + ValueDecl getDeclaration(int index) { + exists(ValueDecl x | + import_decl_declarations(this, index, x) and + result = x.resolve() + ) + } + + ValueDecl getADeclaration() { result = getDeclaration(_) } + + int getNumberOfDeclarations() { result = count(getADeclaration()) } } diff --git a/swift/ql/lib/codeql/swift/generated/decl/ModuleDecl.qll b/swift/ql/lib/codeql/swift/generated/decl/ModuleDecl.qll index aad5d00c0c6..3a1931b2d52 100644 --- a/swift/ql/lib/codeql/swift/generated/decl/ModuleDecl.qll +++ b/swift/ql/lib/codeql/swift/generated/decl/ModuleDecl.qll @@ -3,4 +3,8 @@ import codeql.swift.elements.decl.TypeDecl class ModuleDeclBase extends @module_decl, TypeDecl { override string getAPrimaryQlClass() { result = "ModuleDecl" } + + predicate isBuiltinModule() { module_decl_is_builtin_module(this) } + + predicate isSystemModule() { module_decl_is_system_module(this) } } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 7937e938e70..83ee8412131 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -644,7 +644,20 @@ if_config_decls( //dir=decl ); import_decls( //dir=decl - unique int id: @import_decl + unique int id: @import_decl, + int module: @module_decl ref +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl ref ); missing_member_decls( //dir=decl @@ -2018,6 +2031,16 @@ 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 +); + constructor_ref_call_exprs( //dir=expr unique int id: @constructor_ref_call_expr ); diff --git a/swift/ql/test/TestUtils.qll b/swift/ql/test/TestUtils.qll index 9359944fe90..0c04fcb5989 100644 --- a/swift/ql/test/TestUtils.qll +++ b/swift/ql/test/TestUtils.qll @@ -4,6 +4,8 @@ cached predicate toBeTested(Element e) { e instanceof File or + exists(ModuleDecl m | m = e and not m.isBuiltinModule() and not m.isSystemModule()) + or exists(Locatable loc | loc.getLocation().getFile().getName().matches("%swift/ql/test%") and ( diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected new file mode 100644 index 00000000000..3e9fd295744 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected @@ -0,0 +1,5 @@ +| import.swift:1:1:1:8 | import ... | isExported: | no | getModule: | file://:0:0:0:0 | Swift | +| import.swift:2:1:2:24 | import ... | isExported: | no | getModule: | file://:0:0:0:0 | Swift | +| import.swift:3:12:3:32 | import ... | isExported: | yes | getModule: | file://:0:0:0:0 | Swift | +| import.swift:4:1:4:19 | import ... | isExported: | no | getModule: | file://:0:0:0:0 | Swift | +| import.swift:5:1:5:23 | import ... | isExported: | no | getModule: | file://:0:0:0:0 | Swift | diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql new file mode 100644 index 00000000000..34978aae118 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql @@ -0,0 +1,11 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ImportDecl x, string isExported, ModuleDecl getModule +where + toBeTested(x) and + not x.isUnknown() and + (if x.isExported() then isExported = "yes" else isExported = "no") and + getModule = x.getModule() +select x, "isExported:", isExported, "getModule:", getModule diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.expected b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.expected new file mode 100644 index 00000000000..b877b113bc6 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.expected @@ -0,0 +1,5 @@ +| import.swift:2:1:2:24 | import ... | 0 | file://:0:0:0:0 | Int | +| import.swift:3:12:3:32 | import ... | 0 | file://:0:0:0:0 | Double | +| import.swift:4:1:4:19 | import ... | 0 | file://:0:0:0:0 | print(_:separator:terminator:) | +| import.swift:4:1:4:19 | import ... | 1 | file://:0:0:0:0 | print(_:separator:terminator:to:) | +| import.swift:5:1:5:23 | import ... | 0 | file://:0:0:0:0 | Hashable | diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql new file mode 100644 index 00000000000..852fe518ed2 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ImportDecl x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getDeclaration(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/import.swift b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/import.swift new file mode 100644 index 00000000000..bcb562996ae --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/import.swift @@ -0,0 +1,5 @@ +import Swift +import typealias Swift.Int +@_exported import struct Swift.Double +import func Swift.print // imports all overloads +import protocol Swift.Hashable diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected new file mode 100644 index 00000000000..ef50edbe828 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected @@ -0,0 +1 @@ +| file://:0:0:0:0 | Foo | getInterfaceType: | module | getName: | Foo | isBuiltinModule: | no | isSystemModule: | no | diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql new file mode 100644 index 00000000000..73e912a8245 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql @@ -0,0 +1,15 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from + ModuleDecl x, Type getInterfaceType, string getName, string isBuiltinModule, string isSystemModule +where + toBeTested(x) and + not x.isUnknown() and + getInterfaceType = x.getInterfaceType() and + getName = x.getName() and + (if x.isBuiltinModule() then isBuiltinModule = "yes" else isBuiltinModule = "no") and + if x.isSystemModule() then isSystemModule = "yes" else isSystemModule = "no" +select x, "getInterfaceType:", getInterfaceType, "getName:", getName, "isBuiltinModule:", + isBuiltinModule, "isSystemModule:", isSystemModule diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.ql new file mode 100644 index 00000000000..0c0cec75d86 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getBaseType.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ModuleDecl x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getBaseType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/modules.swift b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/modules.swift new file mode 100644 index 00000000000..bb12ed63ddd --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/modules.swift @@ -0,0 +1 @@ +//codeql-extractor-options: -module-name Foo From f9143f7855ab00b464b42320e54acd5366690898 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 1 Jul 2022 15:43:16 +0200 Subject: [PATCH 270/736] Swift: fix extraction of empty files --- swift/extractor/SwiftExtractor.cpp | 5 ++++- swift/ql/test/extractor-tests/generated/File/File.expected | 3 ++- .../generated/File/{hello.swift => empty.swift} | 0 swift/ql/test/extractor-tests/generated/File/non_empty.swift | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) rename swift/ql/test/extractor-tests/generated/File/{hello.swift => empty.swift} (100%) create mode 100644 swift/ql/test/extractor-tests/generated/File/non_empty.swift diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index dd8b2569e3c..44d2309cb2a 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -134,7 +134,10 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, for (auto decl : topLevelDecls) { visitor.extract(decl); } - if (topLevelDecls.empty()) { + // TODO the following will be moved to the dispatcher when we start caching swift file objects + // for the moment, topLevelDecls always contains the current module, which does not have a file + // associated with it, so we need a special case when there are no top level declarations + if (topLevelDecls.size() == 1) { // In the case of empty files, the dispatcher is not called, but we still want to 'record' the // fact that the file was extracted llvm::SmallString name(filename); diff --git a/swift/ql/test/extractor-tests/generated/File/File.expected b/swift/ql/test/extractor-tests/generated/File/File.expected index d2ef49d491d..73437ea7a92 100644 --- a/swift/ql/test/extractor-tests/generated/File/File.expected +++ b/swift/ql/test/extractor-tests/generated/File/File.expected @@ -1,2 +1,3 @@ +| empty.swift:0:0:0:0 | empty.swift | getName: | empty.swift | | file://:0:0:0:0 | | getName: | | -| hello.swift:0:0:0:0 | hello.swift | getName: | hello.swift | +| non_empty.swift:0:0:0:0 | non_empty.swift | getName: | non_empty.swift | diff --git a/swift/ql/test/extractor-tests/generated/File/hello.swift b/swift/ql/test/extractor-tests/generated/File/empty.swift similarity index 100% rename from swift/ql/test/extractor-tests/generated/File/hello.swift rename to swift/ql/test/extractor-tests/generated/File/empty.swift diff --git a/swift/ql/test/extractor-tests/generated/File/non_empty.swift b/swift/ql/test/extractor-tests/generated/File/non_empty.swift new file mode 100644 index 00000000000..11b15b1a458 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/File/non_empty.swift @@ -0,0 +1 @@ +print("hello") From e575bab9d6d0288c4ba136a6fb2cacfdca8b05b4 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 1 Jul 2022 15:45:28 +0200 Subject: [PATCH 271/736] Revert unwanted committed files --- .../org/apache/commons/collections4/map/AbstractHashedMap.java | 2 +- .../org/apache/commons/collections4/map/AbstractLinkedMap.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractHashedMap.java b/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractHashedMap.java index 35d673df2c8..f79236e4f10 100644 --- a/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractHashedMap.java +++ b/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractHashedMap.java @@ -30,7 +30,7 @@ public class AbstractHashedMap extends AbstractMap implements Iterab protected AbstractHashedMap(int p0){} protected AbstractHashedMap(int p0, float p1){} protected AbstractHashedMap(int p0, float p1, int p2){} - protected AbstractHashedMap.HashEntry createTypeEntry(AbstractHashedMap.HashEntry p0, int p1, K p2, V p3){ return null; } + protected AbstractHashedMap.HashEntry createEntry(AbstractHashedMap.HashEntry p0, int p1, K p2, V p3){ return null; } protected AbstractHashedMap.HashEntry entryNext(AbstractHashedMap.HashEntry p0){ return null; } protected AbstractHashedMap.HashEntry getEntry(Object p0){ return null; } protected AbstractHashedMap clone(){ return null; } diff --git a/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractLinkedMap.java b/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractLinkedMap.java index 6d349ee1130..b96404dd5b9 100644 --- a/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractLinkedMap.java +++ b/java/ql/test/stubs/apache-commons-collections4-4.4/org/apache/commons/collections4/map/AbstractLinkedMap.java @@ -16,7 +16,7 @@ abstract public class AbstractLinkedMap extends AbstractHashedMap im protected AbstractLinkedMap(int p0){} protected AbstractLinkedMap(int p0, float p1){} protected AbstractLinkedMap(int p0, float p1, int p2){} - protected AbstractLinkedMap.LinkEntry createTypeEntry(AbstractHashedMap.HashEntry p0, int p1, K p2, V p3){ return null; } + protected AbstractLinkedMap.LinkEntry createEntry(AbstractHashedMap.HashEntry p0, int p1, K p2, V p3){ return null; } protected AbstractLinkedMap.LinkEntry entryAfter(AbstractLinkedMap.LinkEntry p0){ return null; } protected AbstractLinkedMap.LinkEntry entryBefore(AbstractLinkedMap.LinkEntry p0){ return null; } protected AbstractLinkedMap.LinkEntry getEntry(Object p0){ return null; } From 8addc0679949d762820d365de03299ff61f79ee3 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 1 Jul 2022 15:59:36 +0200 Subject: [PATCH 272/736] Swift: add integration test for multiple modules --- .../posix-only/partial-modules/Modules.expected | 4 ++++ .../integration-tests/posix-only/partial-modules/Modules.ql | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 swift/integration-tests/posix-only/partial-modules/Modules.expected create mode 100644 swift/integration-tests/posix-only/partial-modules/Modules.ql diff --git a/swift/integration-tests/posix-only/partial-modules/Modules.expected b/swift/integration-tests/posix-only/partial-modules/Modules.expected new file mode 100644 index 00000000000..4c738975f34 --- /dev/null +++ b/swift/integration-tests/posix-only/partial-modules/Modules.expected @@ -0,0 +1,4 @@ +| file://:0:0:0:0 | A | +| file://:0:0:0:0 | B | +| file://:0:0:0:0 | main | +| file://:0:0:0:0 | partial_modules | diff --git a/swift/integration-tests/posix-only/partial-modules/Modules.ql b/swift/integration-tests/posix-only/partial-modules/Modules.ql new file mode 100644 index 00000000000..d456e261a3c --- /dev/null +++ b/swift/integration-tests/posix-only/partial-modules/Modules.ql @@ -0,0 +1,5 @@ +import swift + +from ModuleDecl decl +where not decl.isBuiltinModule() and not decl.isSystemModule() +select decl From 416977dc5003fabc74dc09190f91f8374c8dc0fe Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 1 Jul 2022 09:27:12 +0100 Subject: [PATCH 273/736] Swift: Add test cases for removeFirst, removeLast. --- .../CWE-135/StringLengthConflation.expected | 40 +++++++++---------- .../CWE-135/StringLengthConflation.swift | 12 ++++++ 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index 1bb4de15325..8e42c4a145d 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -1,36 +1,36 @@ edges -| StringLengthConflation.swift:101:34:101:36 | .count : | StringLengthConflation.swift:101:34:101:44 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:102:36:102:38 | .count : | StringLengthConflation.swift:102:36:102:46 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:107:36:107:38 | .count : | StringLengthConflation.swift:107:36:107:46 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:108:38:108:40 | .count : | StringLengthConflation.swift:108:38:108:48 | ... call to -(_:_:) ... | | StringLengthConflation.swift:113:34:113:36 | .count : | StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | | StringLengthConflation.swift:114:36:114:38 | .count : | StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:120:28:120:30 | .count : | StringLengthConflation.swift:120:28:120:38 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:119:36:119:38 | .count : | StringLengthConflation.swift:119:36:119:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:120:38:120:40 | .count : | StringLengthConflation.swift:120:38:120:48 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:125:34:125:36 | .count : | StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:126:36:126:38 | .count : | StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:132:28:132:30 | .count : | StringLengthConflation.swift:132:28:132:38 | ... call to -(_:_:) ... | nodes | StringLengthConflation.swift:72:33:72:35 | .count | semmle.label | .count | | StringLengthConflation.swift:78:47:78:49 | .count | semmle.label | .count | -| StringLengthConflation.swift:101:34:101:36 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:101:34:101:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:102:36:102:38 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:102:36:102:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:107:36:107:38 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:107:36:107:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:108:38:108:40 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:108:38:108:48 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | | StringLengthConflation.swift:113:34:113:36 | .count : | semmle.label | .count : | | StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | | StringLengthConflation.swift:114:36:114:38 | .count : | semmle.label | .count : | | StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:120:28:120:30 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:120:28:120:38 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:119:36:119:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:119:36:119:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:120:38:120:40 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:120:38:120:48 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:125:34:125:36 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:126:36:126:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:132:28:132:30 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:132:28:132:38 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | subpaths #select | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:101:34:101:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:101:34:101:36 | .count : | StringLengthConflation.swift:101:34:101:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:102:36:102:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:102:36:102:38 | .count : | StringLengthConflation.swift:102:36:102:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:107:36:107:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:107:36:107:38 | .count : | StringLengthConflation.swift:107:36:107:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:108:38:108:48 | ... call to -(_:_:) ... | StringLengthConflation.swift:108:38:108:40 | .count : | StringLengthConflation.swift:108:38:108:48 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:113:34:113:36 | .count : | StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:114:36:114:38 | .count : | StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:120:28:120:38 | ... call to -(_:_:) ... | StringLengthConflation.swift:120:28:120:30 | .count : | StringLengthConflation.swift:120:28:120:38 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:119:36:119:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:119:36:119:38 | .count : | StringLengthConflation.swift:119:36:119:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:120:38:120:48 | ... call to -(_:_:) ... | StringLengthConflation.swift:120:38:120:40 | .count : | StringLengthConflation.swift:120:38:120:48 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:125:34:125:36 | .count : | StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:126:36:126:38 | .count : | StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:132:28:132:38 | ... call to -(_:_:) ... | StringLengthConflation.swift:132:28:132:30 | .count : | StringLengthConflation.swift:132:28:132:38 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index 8cb698009b6..7a083267aa4 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -96,6 +96,18 @@ func test(s: String) { let str8 = s.suffix(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] print("suffix '\(str7)' / '\(str8)'") + var str9 = s + str9.removeFirst(s.count - 1) // GOOD + var str10 = s + str10.removeFirst(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] + print("removeFirst '\(str9)' / '\(str10)'") + + var str11 = s + str11.removeLast(s.count - 1) // GOOD + var str12 = s + str12.removeLast(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] + print("removeLast '\(str11)' / '\(str12)'") + let nstr1 = ns.character(at: ns.length - 1) // GOOD let nmstr1 = nms.character(at: nms.length - 1) // GOOD let nstr2 = ns.character(at: s.count - 1) // BAD: String length used in NSString From a306f312cd62388a2b0bf1ec346e548f0de0cfb4 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 1 Jul 2022 11:01:12 +0100 Subject: [PATCH 274/736] Swift: Add a test of converting Range to NSRange. --- .../CWE-135/StringLengthConflation.expected | 56 +++++++++---------- .../CWE-135/StringLengthConflation.swift | 11 +++- 2 files changed, 38 insertions(+), 29 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index 8e42c4a145d..2654d28d334 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -1,36 +1,36 @@ edges -| StringLengthConflation.swift:113:34:113:36 | .count : | StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:114:36:114:38 | .count : | StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:119:36:119:38 | .count : | StringLengthConflation.swift:119:36:119:46 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:120:38:120:40 | .count : | StringLengthConflation.swift:120:38:120:48 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:125:34:125:36 | .count : | StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:126:36:126:38 | .count : | StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:132:28:132:30 | .count : | StringLengthConflation.swift:132:28:132:38 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:122:34:122:36 | .count : | StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:123:36:123:38 | .count : | StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:128:36:128:38 | .count : | StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:129:38:129:40 | .count : | StringLengthConflation.swift:129:38:129:48 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:134:34:134:36 | .count : | StringLengthConflation.swift:134:34:134:44 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:135:36:135:38 | .count : | StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:141:28:141:30 | .count : | StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | nodes | StringLengthConflation.swift:72:33:72:35 | .count | semmle.label | .count | | StringLengthConflation.swift:78:47:78:49 | .count | semmle.label | .count | -| StringLengthConflation.swift:113:34:113:36 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:114:36:114:38 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:119:36:119:38 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:119:36:119:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:120:38:120:40 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:120:38:120:48 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:125:34:125:36 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:126:36:126:38 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:132:28:132:30 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:132:28:132:38 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:122:34:122:36 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:123:36:123:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:128:36:128:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:129:38:129:40 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:129:38:129:48 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:134:34:134:36 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:134:34:134:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:135:36:135:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:141:28:141:30 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | subpaths #select | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:113:34:113:36 | .count : | StringLengthConflation.swift:113:34:113:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:114:36:114:38 | .count : | StringLengthConflation.swift:114:36:114:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:119:36:119:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:119:36:119:38 | .count : | StringLengthConflation.swift:119:36:119:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:120:38:120:48 | ... call to -(_:_:) ... | StringLengthConflation.swift:120:38:120:40 | .count : | StringLengthConflation.swift:120:38:120:48 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:125:34:125:36 | .count : | StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:126:36:126:38 | .count : | StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:132:28:132:38 | ... call to -(_:_:) ... | StringLengthConflation.swift:132:28:132:30 | .count : | StringLengthConflation.swift:132:28:132:38 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:122:34:122:36 | .count : | StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:123:36:123:38 | .count : | StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:128:36:128:38 | .count : | StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:129:38:129:48 | ... call to -(_:_:) ... | StringLengthConflation.swift:129:38:129:40 | .count : | StringLengthConflation.swift:129:38:129:48 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:134:34:134:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:134:34:134:36 | .count : | StringLengthConflation.swift:134:34:134:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:135:36:135:38 | .count : | StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | StringLengthConflation.swift:141:28:141:30 | .count : | StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index 7a083267aa4..cf248a9a221 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -28,6 +28,7 @@ class NSMutableString : NSString class NSRange { init(location: Int, length: Int) { self.description = "" } + init(_ r: R, in: S) { self.description = "" } private(set) var description: String } @@ -36,7 +37,6 @@ func NSMakeRange(_ loc: Int, _ len: Int) -> NSRange { return NSRange(location: l - // --- tests --- func test(s: String) { @@ -78,6 +78,15 @@ func test(s: String) { let range6 = NSRange(location: 0, length: s.count) // BAD: String length used in NSMakeRange print("NSRange '\(range5.description)' / '\(range6.description)'") + // --- converting Range to NSRange --- + + let range7 = s.startIndex ..< s.endIndex + let range8 = NSRange(range7, in: s) // GOOD + let location = s.distance(from: s.startIndex, to: range7.lowerBound) + let length = s.distance(from: range7.lowerBound, to: range7.upperBound) + let range9 = NSRange(location: location, length: length) // BAD [NOT DETECTED] + print("NSRange '\(range8.description)' / '\(range9.description)'") + // --- String operations using an integer directly --- let str1 = s.dropFirst(s.count - 1) // GOOD From bc03f6959c46c26773679620298fba0188b8efce Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 1 Jul 2022 09:16:05 +0100 Subject: [PATCH 275/736] Swift: Detect String -> NSString results. --- .../CWE-135/StringLengthConflation.ql | 29 +++++++++++++++++++ .../CWE-135/StringLengthConflation.expected | 24 +++++++++++++++ .../CWE-135/StringLengthConflation.swift | 12 ++++---- 3 files changed, 59 insertions(+), 6 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index a4e731e18ea..fc62309cdee 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -30,6 +30,14 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { node.asExpr() = member and flowstate = "String" ) + or + // result of a call to to `NSString.length` + exists(MemberRefExpr member | + member.getBaseExpr().getType().getName() = ["NSString", "NSMutableString"] and + member.getMember().(VarDecl).getName() = "length" and + node.asExpr() = member and + flowstate = "NSString" + ) } override predicate isSink(DataFlow::Node node, string flowstate) { @@ -83,6 +91,27 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and flowstate = "String" // `String` length flowing into `NSString` ) + or + // arguments to function calls... + exists(string funcName, string paramName, CallExpr call, int arg | + ( + // `dropFirst`, `dropLast`, `removeFirst`, `removeLast` + funcName = ["dropFirst(_:)", "dropLast(_:)", "removeFirst(_:)", "removeLast(_:)"] and + paramName = "k" + or + // `prefix`, `suffix` + funcName = ["prefix(_:)", "suffix(_:)"] and + paramName = "maxLength" + ) and + call.getFunction().(ApplyExpr).getStaticTarget().getName() = funcName and + call.getFunction() + .(ApplyExpr) + .getStaticTarget() + .getParam(pragma[only_bind_into](arg)) + .getName() = paramName and + call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and + flowstate = "NSString" // `NSString` length flowing into `String` + ) } override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index 2654d28d334..a68894b7d9c 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -1,4 +1,10 @@ edges +| StringLengthConflation.swift:93:28:93:31 | .length : | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:97:27:97:30 | .length : | StringLengthConflation.swift:97:27:97:39 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:101:25:101:28 | .length : | StringLengthConflation.swift:101:25:101:37 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:105:25:105:28 | .length : | StringLengthConflation.swift:105:25:105:37 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:111:23:111:26 | .length : | StringLengthConflation.swift:111:23:111:35 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:117:22:117:25 | .length : | StringLengthConflation.swift:117:22:117:34 | ... call to -(_:_:) ... | | StringLengthConflation.swift:122:34:122:36 | .count : | StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | | StringLengthConflation.swift:123:36:123:38 | .count : | StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | | StringLengthConflation.swift:128:36:128:38 | .count : | StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | @@ -9,6 +15,18 @@ edges nodes | StringLengthConflation.swift:72:33:72:35 | .count | semmle.label | .count | | StringLengthConflation.swift:78:47:78:49 | .count | semmle.label | .count | +| StringLengthConflation.swift:93:28:93:31 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:97:27:97:30 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:97:27:97:39 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:101:25:101:28 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:101:25:101:37 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:105:25:105:28 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:105:25:105:37 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:111:23:111:26 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:111:23:111:35 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:117:22:117:25 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:117:22:117:34 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | | StringLengthConflation.swift:122:34:122:36 | .count : | semmle.label | .count : | | StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | | StringLengthConflation.swift:123:36:123:38 | .count : | semmle.label | .count : | @@ -27,6 +45,12 @@ subpaths #select | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | StringLengthConflation.swift:93:28:93:31 | .length : | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:97:27:97:39 | ... call to -(_:_:) ... | StringLengthConflation.swift:97:27:97:30 | .length : | StringLengthConflation.swift:97:27:97:39 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:101:25:101:37 | ... call to -(_:_:) ... | StringLengthConflation.swift:101:25:101:28 | .length : | StringLengthConflation.swift:101:25:101:37 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:105:25:105:37 | ... call to -(_:_:) ... | StringLengthConflation.swift:105:25:105:28 | .length : | StringLengthConflation.swift:105:25:105:37 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:111:23:111:35 | ... call to -(_:_:) ... | StringLengthConflation.swift:111:23:111:26 | .length : | StringLengthConflation.swift:111:23:111:35 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:117:22:117:34 | ... call to -(_:_:) ... | StringLengthConflation.swift:117:22:117:25 | .length : | StringLengthConflation.swift:117:22:117:34 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:122:34:122:36 | .count : | StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:123:36:123:38 | .count : | StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:128:36:128:38 | .count : | StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index cf248a9a221..60037ffd676 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -90,31 +90,31 @@ func test(s: String) { // --- String operations using an integer directly --- let str1 = s.dropFirst(s.count - 1) // GOOD - let str2 = s.dropFirst(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] + let str2 = s.dropFirst(ns.length - 1) // BAD: NSString length used in String print("dropFirst '\(str1)' / '\(str2)'") let str3 = s.dropLast(s.count - 1) // GOOD - let str4 = s.dropLast(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] + let str4 = s.dropLast(ns.length - 1) // BAD: NSString length used in String print("dropLast '\(str3)' / '\(str4)'") let str5 = s.prefix(s.count - 1) // GOOD - let str6 = s.prefix(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] + let str6 = s.prefix(ns.length - 1) // BAD: NSString length used in String print("prefix '\(str5)' / '\(str6)'") let str7 = s.suffix(s.count - 1) // GOOD - let str8 = s.suffix(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] + let str8 = s.suffix(ns.length - 1) // BAD: NSString length used in String print("suffix '\(str7)' / '\(str8)'") var str9 = s str9.removeFirst(s.count - 1) // GOOD var str10 = s - str10.removeFirst(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] + str10.removeFirst(ns.length - 1) // BAD: NSString length used in String print("removeFirst '\(str9)' / '\(str10)'") var str11 = s str11.removeLast(s.count - 1) // GOOD var str12 = s - str12.removeLast(ns.length - 1) // BAD: NSString length used in String [NOT DETECTED] + str12.removeLast(ns.length - 1) // BAD: NSString length used in String print("removeLast '\(str11)' / '\(str12)'") let nstr1 = ns.character(at: ns.length - 1) // GOOD From d60d2457c215def7b2e838c2aee0b44c7dc816e5 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 1 Jul 2022 13:33:25 +0100 Subject: [PATCH 276/736] Swift: Add String.Index.init as a source as as well. --- .../ql/src/queries/Security/CWE-135/StringLengthConflation.ql | 4 ++++ .../Security/CWE-135/StringLengthConflation.expected | 2 ++ .../query-tests/Security/CWE-135/StringLengthConflation.swift | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index fc62309cdee..38485aa119d 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -102,6 +102,10 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { // `prefix`, `suffix` funcName = ["prefix(_:)", "suffix(_:)"] and paramName = "maxLength" + or + // `String.Index.init` + funcName = "init(encodedOffset:)" and + paramName = "offset" ) and call.getFunction().(ApplyExpr).getStaticTarget().getName() = funcName and call.getFunction() diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index a68894b7d9c..411a938ba0e 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -13,6 +13,7 @@ edges | StringLengthConflation.swift:135:36:135:38 | .count : | StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | | StringLengthConflation.swift:141:28:141:30 | .count : | StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | nodes +| StringLengthConflation.swift:53:43:53:46 | .length | semmle.label | .length | | StringLengthConflation.swift:72:33:72:35 | .count | semmle.label | .count | | StringLengthConflation.swift:78:47:78:49 | .count | semmle.label | .count | | StringLengthConflation.swift:93:28:93:31 | .length : | semmle.label | .length : | @@ -43,6 +44,7 @@ nodes | StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | subpaths #select +| StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | StringLengthConflation.swift:93:28:93:31 | .length : | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index 60037ffd676..87985d6c8fe 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -50,7 +50,7 @@ func test(s: String) { // --- constructing a String.Index from integer --- let ix1 = String.Index(encodedOffset: s.count) // GOOD - let ix2 = String.Index(encodedOffset: ns.length) // BAD: NSString length used in String.Index [NOT DETECTED] + let ix2 = String.Index(encodedOffset: ns.length) // BAD: NSString length used in String.Index let ix3 = String.Index(encodedOffset: s.utf8.count) // BAD: String.utf8 length used in String.Index [NOT DETECTED] let ix4 = String.Index(encodedOffset: s.utf16.count) // BAD: String.utf16 length used in String.Index [NOT DETECTED] let ix5 = String.Index(encodedOffset: s.unicodeScalars.count) // BAD: string.unicodeScalars length used in String.Index [NOT DETECTED] From 34ffd1aac58267468ac10ffdb22f0a7f8502fead Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 1 Jul 2022 13:43:37 +0100 Subject: [PATCH 277/736] Swift: Support String.Index and flow through * /. --- .../Security/CWE-135/StringLengthConflation.ql | 17 ++++++++++++----- .../CWE-135/StringLengthConflation.expected | 8 ++++++++ .../CWE-135/StringLengthConflation.swift | 4 ++-- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 38485aa119d..59146dfba7a 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -95,17 +95,25 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { // arguments to function calls... exists(string funcName, string paramName, CallExpr call, int arg | ( - // `dropFirst`, `dropLast`, `removeFirst`, `removeLast` + // `String.dropFirst`, `String.dropLast`, `String.removeFirst`, `String.removeLast` funcName = ["dropFirst(_:)", "dropLast(_:)", "removeFirst(_:)", "removeLast(_:)"] and paramName = "k" or - // `prefix`, `suffix` + // `String.prefix`, `String.suffix` funcName = ["prefix(_:)", "suffix(_:)"] and paramName = "maxLength" or // `String.Index.init` funcName = "init(encodedOffset:)" and paramName = "offset" + or + // `String.index` + funcName = ["index(_:offsetBy:)", "index(_:offsetBy:limitBy:)"] and + paramName = "n" + or + // `String.formIndex` + funcName = ["formIndex(_:offsetBy:)", "formIndex(_:offsetBy:limitBy:)"] and + paramName = "distance" ) and call.getFunction().(ApplyExpr).getStaticTarget().getName() = funcName and call.getFunction() @@ -119,9 +127,8 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { } override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - // allow flow through `+` and `-`. - node2.asExpr().(AddExpr).getAnOperand() = node1.asExpr() or - node2.asExpr().(SubExpr).getAnOperand() = node1.asExpr() + // allow flow through `+`, `-`, `*` etc. + node2.asExpr().(ArithmeticOperation).getAnOperand() = node1.asExpr() } } diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index 411a938ba0e..1af416dad2f 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -1,4 +1,6 @@ edges +| StringLengthConflation.swift:60:47:60:50 | .length : | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | +| StringLengthConflation.swift:66:33:66:36 | .length : | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | | StringLengthConflation.swift:93:28:93:31 | .length : | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | | StringLengthConflation.swift:97:27:97:30 | .length : | StringLengthConflation.swift:97:27:97:39 | ... call to -(_:_:) ... | | StringLengthConflation.swift:101:25:101:28 | .length : | StringLengthConflation.swift:101:25:101:37 | ... call to -(_:_:) ... | @@ -14,6 +16,10 @@ edges | StringLengthConflation.swift:141:28:141:30 | .count : | StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | nodes | StringLengthConflation.swift:53:43:53:46 | .length | semmle.label | .length | +| StringLengthConflation.swift:60:47:60:50 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | semmle.label | ... call to /(_:_:) ... | +| StringLengthConflation.swift:66:33:66:36 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | semmle.label | ... call to /(_:_:) ... | | StringLengthConflation.swift:72:33:72:35 | .count | semmle.label | .count | | StringLengthConflation.swift:78:47:78:49 | .count | semmle.label | .count | | StringLengthConflation.swift:93:28:93:31 | .length : | semmle.label | .length : | @@ -45,6 +51,8 @@ nodes subpaths #select | StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | StringLengthConflation.swift:60:47:60:50 | .length : | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | StringLengthConflation.swift:66:33:66:36 | .length : | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | StringLengthConflation.swift:93:28:93:31 | .length : | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index 87985d6c8fe..527cacd772b 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -57,13 +57,13 @@ func test(s: String) { print("String.Index '\(ix1.encodedOffset)' / '\(ix2.encodedOffset)' '\(ix3.encodedOffset)' '\(ix4.encodedOffset)' '\(ix5.encodedOffset)'") let ix6 = s.index(s.startIndex, offsetBy: s.count / 2) // GOOD - let ix7 = s.index(s.startIndex, offsetBy: ns.length / 2) // BAD: NSString length used in String.Index [NOT DETECTED] + let ix7 = s.index(s.startIndex, offsetBy: ns.length / 2) // BAD: NSString length used in String.Index print("index '\(ix6.encodedOffset)' / '\(ix7.encodedOffset)'") var ix8 = s.startIndex s.formIndex(&ix8, offsetBy: s.count / 2) // GOOD var ix9 = s.startIndex - s.formIndex(&ix9, offsetBy: ns.length / 2) // BAD: NSString length used in String.Index [NOT DETECTED] + s.formIndex(&ix9, offsetBy: ns.length / 2) // BAD: NSString length used in String.Index print("formIndex '\(ix8.encodedOffset)' / '\(ix9.encodedOffset)'") // --- constructing an NSRange from integers --- From e88cc314681ee626a8603a5d2c53321a26372cb3 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 1 Jul 2022 16:16:21 +0200 Subject: [PATCH 278/736] Swift: disable change note checking for now --- .github/workflows/check-change-note.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-change-note.yml b/.github/workflows/check-change-note.yml index 672202444bb..b60a590ab09 100644 --- a/.github/workflows/check-change-note.yml +++ b/.github/workflows/check-change-note.yml @@ -10,6 +10,7 @@ on: - "*/ql/lib/**/*.qll" - "!**/experimental/**" - "!ql/**" + - "!swift/**" - ".github/workflows/check-change-note.yml" jobs: From 2dca78295d5b3cd68387e8258fd32c69b5c8c418 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 1 Jul 2022 16:35:30 +0200 Subject: [PATCH 279/736] Fix change note check to accept changes to itself The file is not removed from the triggers, as we still want to check that the workflow file itself is correct. --- .github/workflows/check-change-note.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-change-note.yml b/.github/workflows/check-change-note.yml index b60a590ab09..8a450474e06 100644 --- a/.github/workflows/check-change-note.yml +++ b/.github/workflows/check-change-note.yml @@ -24,5 +24,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - gh api 'repos/${{github.repository}}/pulls/${{github.event.number}}/files' --paginate --jq 'any(.[].filename ; test("/change-notes/.*[.]md$"))' | + gh api 'repos/${{github.repository}}/pulls/${{github.event.number}}/files' --paginate --jq \ + 'any(.[].filename ; test("/change-notes/.*[.]md$")) or + all(.[].filename ; .==".github/workflows/check-change-note.yml")' | grep true -c From c393c9b03e9e747e0cc57979b8e56012fafd12fa Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 1 Jul 2022 16:41:09 +0200 Subject: [PATCH 280/736] Revert "Fix change note check to accept changes to itself" This reverts commit 2dca78295d5b3cd68387e8258fd32c69b5c8c418. --- .github/workflows/check-change-note.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/check-change-note.yml b/.github/workflows/check-change-note.yml index 8a450474e06..b60a590ab09 100644 --- a/.github/workflows/check-change-note.yml +++ b/.github/workflows/check-change-note.yml @@ -24,7 +24,5 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - gh api 'repos/${{github.repository}}/pulls/${{github.event.number}}/files' --paginate --jq \ - 'any(.[].filename ; test("/change-notes/.*[.]md$")) or - all(.[].filename ; .==".github/workflows/check-change-note.yml")' | + gh api 'repos/${{github.repository}}/pulls/${{github.event.number}}/files' --paginate --jq 'any(.[].filename ; test("/change-notes/.*[.]md$"))' | grep true -c From b499ba5aa8b97478b12041fe1882ec7fc3c5d6c4 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 1 Jul 2022 15:35:32 +0100 Subject: [PATCH 281/736] Kotlin: don't extract private setters of external classes Previously these would get extracted unlike other private methods even if the class was a standard library or other external class. This could cause inconsistencies because if we also compiled the class from source we could end up deciding different names for the property's setter: setXyz$private when seen from source, and setXyz without a suffix when seen as an external .class file. Avoiding extracting these functions from the external perspective both restores consistency with other kinds of method and avoids these consistency problems. --- .../src/main/kotlin/KotlinFileExtractor.kt | 26 +++++++++---------- .../private_property_accessors/hasprops.kt | 9 +++++++ .../private_property_accessors/test.expected | 7 +++++ .../kotlin/private_property_accessors/test.py | 3 +++ .../kotlin/private_property_accessors/test.ql | 5 ++++ .../private_property_accessors/usesprops.kt | 9 +++++++ 6 files changed, 46 insertions(+), 13 deletions(-) create mode 100644 java/ql/integration-tests/posix-only/kotlin/private_property_accessors/hasprops.kt create mode 100644 java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.expected create mode 100644 java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.py create mode 100644 java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.ql create mode 100644 java/ql/integration-tests/posix-only/kotlin/private_property_accessors/usesprops.kt diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 21b35fbcdd1..9bdf40fdca0 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -134,7 +134,7 @@ open class KotlinFileExtractor( is IrProperty -> { val parentId = useDeclarationParent(declaration.parent, false)?.cast() if (parentId != null) { - extractProperty(declaration, parentId, extractBackingField = true, extractFunctionBodies = extractFunctionBodies, null, listOf()) + extractProperty(declaration, parentId, extractBackingField = true, extractFunctionBodies = extractFunctionBodies, extractPrivateMembers = extractPrivateMembers, null, listOf()) } Unit } @@ -364,7 +364,7 @@ open class KotlinFileExtractor( if (shouldExtractDecl(it, false)) { when(it) { is IrFunction -> extractFunction(it, id, extractBody = false, extractMethodAndParameterTypeAccesses = false, typeParamSubstitution, argsIncludingOuterClasses) - is IrProperty -> extractProperty(it, id, extractBackingField = false, extractFunctionBodies = false, typeParamSubstitution, argsIncludingOuterClasses) + is IrProperty -> extractProperty(it, id, extractBackingField = false, extractFunctionBodies = false, extractPrivateMembers = false, typeParamSubstitution, argsIncludingOuterClasses) else -> {} } } @@ -955,7 +955,7 @@ open class KotlinFileExtractor( return id } - private fun extractProperty(p: IrProperty, parentId: Label, extractBackingField: Boolean, extractFunctionBodies: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?) { + private fun extractProperty(p: IrProperty, parentId: Label, extractBackingField: Boolean, extractFunctionBodies: Boolean, extractPrivateMembers: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List?) { with("property", p) { if (isFake(p)) return @@ -970,7 +970,11 @@ open class KotlinFileExtractor( val getter = p.getter val setter = p.setter - if (getter != null) { + if (getter == null) { + if (p.modality != Modality.FINAL || !isExternalDeclaration(p)) { + logger.warnElement("IrProperty without a getter", p) + } + } else if (shouldExtractDecl(getter, extractPrivateMembers)) { val getterId = extractFunction(getter, parentId, extractBody = extractFunctionBodies, extractMethodAndParameterTypeAccesses = extractFunctionBodies, typeSubstitution, classTypeArgsIncludingOuterClasses)?.cast() if (getterId != null) { tw.writeKtPropertyGetters(id, getterId) @@ -978,13 +982,13 @@ open class KotlinFileExtractor( tw.writeCompiler_generated(getterId, CompilerGeneratedKinds.DELEGATED_PROPERTY_GETTER.kind) } } - } else { - if (p.modality != Modality.FINAL || !isExternalDeclaration(p)) { - logger.warnElement("IrProperty without a getter", p) - } } - if (setter != null) { + if (setter == null) { + if (p.isVar && !isExternalDeclaration(p)) { + logger.warnElement("isVar property without a setter", p) + } + } else if (shouldExtractDecl(setter, extractPrivateMembers)) { if (!p.isVar) { logger.warnElement("!isVar property with a setter", p) } @@ -995,10 +999,6 @@ open class KotlinFileExtractor( tw.writeCompiler_generated(setterId, CompilerGeneratedKinds.DELEGATED_PROPERTY_SETTER.kind) } } - } else { - if (p.isVar && !isExternalDeclaration(p)) { - logger.warnElement("isVar property without a setter", p) - } } if (bf != null && extractBackingField) { diff --git a/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/hasprops.kt b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/hasprops.kt new file mode 100644 index 00000000000..ff83b18a31a --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/hasprops.kt @@ -0,0 +1,9 @@ +class HasProps { + + var accessorsPublic = 1 + + var setterPrivate = 3 + private set + +} + diff --git a/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.expected b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.expected new file mode 100644 index 00000000000..c497684b152 --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.expected @@ -0,0 +1,7 @@ +| hasprops.kt:3:3:3:25 | getAccessorsPublic | +| hasprops.kt:3:3:3:25 | setAccessorsPublic | +| hasprops.kt:5:3:6:15 | getSetterPrivate | +| hasprops.kt:6:13:6:15 | setSetterPrivate$private | +| usesprops.kt:1:1:9:1 | user | +| usesprops.kt:3:3:3:58 | useGetters | +| usesprops.kt:5:3:7:3 | useSetter | diff --git a/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.py b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.py new file mode 100644 index 00000000000..5599f459849 --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.py @@ -0,0 +1,3 @@ +from create_database_utils import * + +run_codeql_database_create(["kotlinc hasprops.kt", "kotlinc usesprops.kt -cp ."], lang="java") diff --git a/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.ql b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.ql new file mode 100644 index 00000000000..f1355df2e88 --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/test.ql @@ -0,0 +1,5 @@ +import java + +from Method m +where m.fromSource() +select m diff --git a/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/usesprops.kt b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/usesprops.kt new file mode 100644 index 00000000000..5157865df17 --- /dev/null +++ b/java/ql/integration-tests/posix-only/kotlin/private_property_accessors/usesprops.kt @@ -0,0 +1,9 @@ +fun user(hp: HasProps) { + + fun useGetters() = hp.accessorsPublic + hp.setterPrivate + + fun useSetter(x: Int) { + hp.accessorsPublic = x + } + +} From 1730ec22d92cd1dfd0bcf57590c85240cdd341af Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 30 Jun 2022 15:34:45 +0100 Subject: [PATCH 282/736] Kotlin: Extract an ErrorType if we fail to correctly extract a type --- .../src/main/kotlin/KotlinUsesExtractor.kt | 18 +++++++++++++++--- java/ql/lib/config/semmlecode.dbscheme | 12 ++++++++++-- java/ql/lib/semmle/code/Location.qll | 2 ++ java/ql/lib/semmle/code/java/Type.qll | 8 ++++++++ 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 530ff47e8ab..bf3056b079b 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -108,14 +108,26 @@ open class KotlinUsesExtractor( } data class TypeResults(val javaResult: TypeResult, val kotlinResult: TypeResult) - fun useType(t: IrType, context: TypeContext = TypeContext.OTHER) = + fun useType(t: IrType, context: TypeContext = TypeContext.OTHER): TypeResults { when(t) { - is IrSimpleType -> useSimpleType(t, context) + is IrSimpleType -> return useSimpleType(t, context) else -> { logger.error("Unrecognised IrType: " + t.javaClass) - TypeResults(TypeResult(fakeLabel(), "unknown", "unknown"), TypeResult(fakeLabel(), "unknown", "unknown")) + return extractErrorType() } } + } + + private fun extractErrorType(): TypeResults { + val typeId = tw.getLabelFor("@\"errorType\"") { + tw.writeError_type(it) + } + val kotlinTypeId = tw.getLabelFor("@\"errorKotlinType\"") { + tw.writeKt_nullable_types(it, typeId) + } + return TypeResults(TypeResult(typeId, null, ""), + TypeResult(kotlinTypeId, null, "")) + } fun getJavaEquivalentClass(c: IrClass) = getJavaEquivalentClassId(c)?.let { pluginContext.referenceClass(it.asSingleFqName()) }?.owner diff --git a/java/ql/lib/config/semmlecode.dbscheme b/java/ql/lib/config/semmlecode.dbscheme index cf58c7d9b1f..81ccfabe82e 100755 --- a/java/ql/lib/config/semmlecode.dbscheme +++ b/java/ql/lib/config/semmlecode.dbscheme @@ -332,6 +332,14 @@ modifiers( string nodeName: string ref ); +/** + * An errortype is used when the extractor is unable to extract a type + * correctly for some reason. + */ +error_type( + unique int id: @errortype +); + classes( unique int id: @class, string nodeName: string ref, @@ -1012,13 +1020,13 @@ javadocText( @classorinterfaceorpackage = @classorinterface | @package; @classorinterfaceorcallable = @classorinterface | @callable; @boundedtype = @typevariable | @wildcard; -@reftype = @classorinterface | @array | @boundedtype; +@reftype = @classorinterface | @array | @boundedtype | @errortype; @classorarray = @class | @array; @type = @primitive | @reftype; @callable = @method | @constructor; /** A program element that has a name. */ -@element = @package | @modifier | @annotation | +@element = @package | @modifier | @annotation | @errortype | @locatableElement; @locatableElement = @file | @primitive | @class | @interface | @method | @constructor | @param | @exception | @field | diff --git a/java/ql/lib/semmle/code/Location.qll b/java/ql/lib/semmle/code/Location.qll index d977395a83c..8bb81becb11 100755 --- a/java/ql/lib/semmle/code/Location.qll +++ b/java/ql/lib/semmle/code/Location.qll @@ -47,6 +47,8 @@ predicate hasName(Element e, string name) { kt_type_alias(e, name, _) or ktProperties(e, name) + or + e instanceof ErrorType and name = "" } /** diff --git a/java/ql/lib/semmle/code/java/Type.qll b/java/ql/lib/semmle/code/java/Type.qll index a37f9810c44..2193720c8fe 100755 --- a/java/ql/lib/semmle/code/java/Type.qll +++ b/java/ql/lib/semmle/code/java/Type.qll @@ -666,6 +666,14 @@ class RefType extends Type, Annotatable, Modifiable, @reftype { } } +/** + * An `ErrorType` is generated when CodeQL is unable to correctly + * extract a type. + */ +class ErrorType extends RefType, @errortype { + override string getAPrimaryQlClass() { result = "ErrorType" } +} + /** A type that is the same as its source declaration. */ class SrcRefType extends RefType { SrcRefType() { this.isSourceDeclaration() } From e38254c05e1f32916e55c0e3e48aebf9a70ffc02 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 1 Jul 2022 17:00:36 +0100 Subject: [PATCH 283/736] Swift: Fix typo. --- .../ql/src/queries/Security/CWE-135/StringLengthConflation.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 59146dfba7a..398c48f01e5 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -23,7 +23,7 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { StringLengthConflationConfiguration() { this = "StringLengthConflationConfiguration" } override predicate isSource(DataFlow::Node node, string flowstate) { - // result of a call to to `String.count` + // result of a call to `String.count` exists(MemberRefExpr member | member.getBaseExpr().getType().getName() = "String" and member.getMember().(VarDecl).getName() = "count" and @@ -31,7 +31,7 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { flowstate = "String" ) or - // result of a call to to `NSString.length` + // result of a call to `NSString.length` exists(MemberRefExpr member | member.getBaseExpr().getType().getName() = ["NSString", "NSMutableString"] and member.getMember().(VarDecl).getName() = "length" and From e43e5810cfcff8e2d333473a43604d7b2d997396 Mon Sep 17 00:00:00 2001 From: Raul Garcia Date: Fri, 1 Jul 2022 17:08:35 -0700 Subject: [PATCH 284/736] New queries to detect unsafe client side encryption in Azure Storage --- ...nsafeUsageOfClientSideEncryptionVersion.cs | 33 ++++++++ ...feUsageOfClientSideEncryptionVersion.qhelp | 31 ++++++++ ...nsafeUsageOfClientSideEncryptionVersion.ql | 75 +++++++++++++++++++ ...afeUsageOfClientSideEncryptionVersion.java | 46 ++++++++++++ ...feUsageOfClientSideEncryptionVersion.qhelp | 31 ++++++++ ...nsafeUsageOfClientSideEncryptionVersion.ql | 71 ++++++++++++++++++ ...nsafeUsageOfClientSideEncryptionVersion.py | 7 ++ ...feUsageOfClientSideEncryptionVersion.qhelp | 31 ++++++++ ...nsafeUsageOfClientSideEncryptionVersion.ql | 55 ++++++++++++++ 9 files changed, 380 insertions(+) create mode 100644 csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.cs create mode 100644 csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp create mode 100644 csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql create mode 100644 java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java create mode 100644 java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp create mode 100644 java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql create mode 100644 python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py create mode 100644 python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp create mode 100644 python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.cs b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.cs new file mode 100644 index 00000000000..39928d9e2c7 --- /dev/null +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.cs @@ -0,0 +1,33 @@ + +var client = new BlobClient(myConnectionString, new SpecializedBlobClientOptions() +{ + // BAD: Using an outdated SDK that does not support client side encryption version V2_0 + ClientSideEncryption = new ClientSideEncryptionOptions() + { + KeyEncryptionKey = myKey, + KeyResolver = myKeyResolver, + KeyWrapAlgorihm = myKeyWrapAlgorithm + } +}); + +var client = new BlobClient(myConnectionString, new SpecializedBlobClientOptions() +{ + // BAD: Using the outdated client side encryption version V1_0 + ClientSideEncryption = new ClientSideEncryptionOptions(ClientSideEncryptionVersion.V1_0) + { + KeyEncryptionKey = myKey, + KeyResolver = myKeyResolver, + KeyWrapAlgorihm = myKeyWrapAlgorithm + } +}); + +var client = new BlobClient(myConnectionString, new SpecializedBlobClientOptions() +{ + // GOOD: Using client side encryption version V2_0 + ClientSideEncryption = new ClientSideEncryptionOptions(ClientSideEncryptionVersion.V2_0) + { + KeyEncryptionKey = myKey, + KeyResolver = myKeyResolver, + KeyWrapAlgorihm = myKeyWrapAlgorithm + } +}); \ No newline at end of file diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp new file mode 100644 index 00000000000..3bf46ab9f89 --- /dev/null +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -0,0 +1,31 @@ + + + + + +

    Azure Storage .NET, Java, and Python SDKs support encryption on the client with a customer-managed key that is maintained in Azure Key Vault or another key store.

    +

    Current release versions of the Azure Storage SDKs use cipher block chaining (CBC mode) for client-side encryption (referred to as v1).

    + +
    + + +

    Consider switching to v1 client-side encryption.

    + +
    + + +

    The following example shows an HTTP request parameter being used directly in a forming a +new request without validating the input, which facilitates SSRF attacks. +It also shows how to remedy the problem by validating the user input against a known fixed string. +

    + + + +
    + +
  • + Azure Storage Client Encryption Blog. +
  • + +
    +
    diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql new file mode 100644 index 00000000000..cb986754958 --- /dev/null +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -0,0 +1,75 @@ +/** + * @name Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). + * @description Unsafe usage of v1 version of Azure Storage client-side encryption, please refer to http://aka.ms/azstorageclientencryptionblog + * @kind problem + * @tags security + * cryptography + * external/cwe/cwe-327 + * @id cs/azure-storage/unsafe-usage-of-client-side-encryption-version + * @problem.severity error + * @precision high + */ + +import csharp + +/** + * Holds if `oc` is creating an object of type `c` = `Azure.Storage.ClientSideEncryptionOptions` + * and `e` is the `version` argument to the contructor + */ +predicate isCreatingAzureClientSideEncryptionObject(ObjectCreation oc, Class c, Expr e) { + exists(Parameter p | p.hasName("version") | + c.getQualifiedName() in ["Azure.Storage.ClientSideEncryptionOptions"] and + oc.getTarget() = c.getAConstructor() and + e = oc.getArgumentForParameter(p) + ) +} + +/** + * Holds if `oc` is an object creation of the outdated type `c` = `Microsoft.Azure.Storage.Blob.BlobEncryptionPolicy` + */ +predicate isCreatingOutdatedAzureClientSideEncryptionObject(ObjectCreation oc, Class c) { + c.getQualifiedName() in ["Microsoft.Azure.Storage.Blob.BlobEncryptionPolicy"] and + oc.getTarget() = c.getAConstructor() +} + +/** + * Holds if the Azure.Storage assembly for `c` is a version knwon to support + * version 2+ for client-side encryption and if the argument for the constructor `version` + * is set to a secure value. + */ +predicate isObjectCreationSafe(Class c, Expr versionExpr, Assembly asm) { + // Check if the Azure.Storage assembly version has the fix + exists(int versionCompare | + versionCompare = asm.getVersion().compareTo("12.12.0.0") and + versionCompare >= 0 + ) and + // and that the version argument for the constructor is guaranteed to be Version2 + isExprAnAccessToSafeClientSideEncryptionVersionValue(versionExpr) +} + +/** + * Holds if the expression `e` is an access to a safe version of the enum `ClientSideEncryptionVersion` + * or an equivalent numeric value + */ +predicate isExprAnAccessToSafeClientSideEncryptionVersionValue(Expr e) { + exists(EnumConstant ec | + ec.hasQualifiedName("Azure.Storage.ClientSideEncryptionVersion.V2_0") and + ec.getAnAccess() = e + ) + or + e.getValue().toInt() >= 2 +} + +from Expr e, Class c, Assembly asm +where + asm = c.getLocation() and + ( + exists(Expr e2 | + isCreatingAzureClientSideEncryptionObject(e, c, e2) and + not isObjectCreationSafe(c, e2, asm) + ) + or + isCreatingOutdatedAzureClientSideEncryptionObject(e, c) + ) +select e, + "Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). See http://aka.ms/azstorageclientencryptionblog" diff --git a/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java b/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java new file mode 100644 index 00000000000..83157c14251 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java @@ -0,0 +1,46 @@ + +// BAD: Using an outdated SDK that does not support client side encryption version V2_0 +new EncryptedBlobClientBuilder() + .blobClient(blobClient) + .key(resolver.buildAsyncKeyEncryptionKey(keyid).block(), keyWrapAlgorithm) + .buildEncryptedBlobClient() + .uploadWithResponse(new BlobParallelUploadOptions(data) + .setMetadata(metadata) + .setHeaders(headers) + .setTags(tags) + .setTier(tier) + .setRequestConditions(requestConditions) + .setComputeMd5(computeMd5) + .setParallelTransferOptions(parallelTransferOptions), + timeout, context); + +// BAD: Using the deprecatedd client side encryption version V1_0 +new EncryptedBlobClientBuilder(EncryptionVersion.V1) + .blobClient(blobClient) + .key(resolver.buildAsyncKeyEncryptionKey(keyid).block(), keyWrapAlgorithm) + .buildEncryptedBlobClient() + .uploadWithResponse(new BlobParallelUploadOptions(data) + .setMetadata(metadata) + .setHeaders(headers) + .setTags(tags) + .setTier(tier) + .setRequestConditions(requestConditions) + .setComputeMd5(computeMd5) + .setParallelTransferOptions(parallelTransferOptions), + timeout, context); + + +// GOOD: Using client side encryption version V2_0 +new EncryptedBlobClientBuilder(EncryptionVersion.V2) + .blobClient(blobClient) + .key(resolver.buildAsyncKeyEncryptionKey(keyid).block(), keyWrapAlgorithm) + .buildEncryptedBlobClient() + .uploadWithResponse(new BlobParallelUploadOptions(data) + .setMetadata(metadata) + .setHeaders(headers) + .setTags(tags) + .setTier(tier) + .setRequestConditions(requestConditions) + .setComputeMd5(computeMd5) + .setParallelTransferOptions(parallelTransferOptions), + timeout, context); diff --git a/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp new file mode 100644 index 00000000000..ed05e5f3370 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -0,0 +1,31 @@ + + + + + +

    Azure Storage .NET, Java, and Python SDKs support encryption on the client with a customer-managed key that is maintained in Azure Key Vault or another key store.

    +

    Current release versions of the Azure Storage SDKs use cipher block chaining (CBC mode) for client-side encryption (referred to as v1).

    + +
    + + +

    Consider switching to v1 client-side encryption.

    + +
    + + +

    The following example shows an HTTP request parameter being used directly in a forming a +new request without validating the input, which facilitates SSRF attacks. +It also shows how to remedy the problem by validating the user input against a known fixed string. +

    + + + +
    + +
  • + Azure Storage Client Encryption Blog. +
  • + +
    +
    diff --git a/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql new file mode 100644 index 00000000000..7f1ec039d20 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -0,0 +1,71 @@ +/** + * @name Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). + * @description Unsafe usage of v1 version of Azure Storage client-side encryption, please refer to http://aka.ms/azstorageclientencryptionblog + * @kind problem + * @tags security + * cryptography + * external/cwe/cwe-327 + * @id java/azure-storage/unsafe-client-side-encryption-in-use + * @problem.severity error + * @precision high + */ + +import java + +/** + * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` + * that takes no arguments, which means that it is using V1 encryption + */ +predicate isCreatingOutdatedAzureClientSideEncryptionObject(Call call, Class c) { + exists(string package, string type, Constructor constructor | + c.hasQualifiedName(package, type) and + c.getAConstructor() = constructor and + call.getCallee() = constructor and + ( + type = "EncryptedBlobClientBuilder" and + package = "com.azure.storage.blob.specialized.cryptography" and + not exists(Expr e | e = call.getArgument(0)) + or + type = "BlobEncryptionPolicy" and package = "com.microsoft.azure.storage.blob" + ) + ) +} + +/** + * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` + * that takes `versionArg` as the argument for the version. + */ +predicate isCreatingAzureClientSideEncryptionObjectNewVersion(Call call, Class c, Expr versionArg) { + exists(string package, string type, Constructor constructor | + c.hasQualifiedName(package, type) and + c.getAConstructor() = constructor and + call.getCallee() = constructor and + type = "EncryptedBlobClientBuilder" and + package = "com.azure.storage.blob.specialized.cryptography" and + versionArg = call.getArgument(0) + ) +} + +/** + * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` + * that takes `versionArg` as the argument for the version, and the version number is safe + */ +predicate isCreatingSafeAzureClientSideEncryptionObject(Call call, Class c, Expr versionArg) { + isCreatingAzureClientSideEncryptionObjectNewVersion(call, c, versionArg) and + exists(FieldRead fr, Field f | + fr = versionArg and + f.getAnAccess() = fr and + f.hasQualifiedName("com.azure.storage.blob.specialized.cryptography", "EncryptionVersion", "V2") + ) +} + +from Expr e, Class c +where + exists(Expr argVersion | + isCreatingAzureClientSideEncryptionObjectNewVersion(e, c, argVersion) and + not isCreatingSafeAzureClientSideEncryptionObject(e, c, argVersion) + ) + or + isCreatingOutdatedAzureClientSideEncryptionObject(e, c) +select e, + "Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). See http://aka.ms/azstorageclientencryptionblog" diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py new file mode 100644 index 00000000000..c4a0519f29d --- /dev/null +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py @@ -0,0 +1,7 @@ +blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name) + blob_client.require_encryption = True + blob_client.key_encryption_key = kek + # GOOD: Must use `encryption_version` set to `2.0` + blob_client.encryption_version = '2.0' # Use Version 2.0! + with open(“decryptedcontentfile.txtâ€, “rbâ€) as stream: + blob_client.upload_blob(stream, overwrite=OVERWRITE_EXISTING) \ No newline at end of file diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp new file mode 100644 index 00000000000..9571e1150ef --- /dev/null +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -0,0 +1,31 @@ + + + + + +

    Azure Storage .NET, Java, and Python SDKs support encryption on the client with a customer-managed key that is maintained in Azure Key Vault or another key store.

    +

    Current release versions of the Azure Storage SDKs use cipher block chaining (CBC mode) for client-side encryption (referred to as v1).

    + +
    + + +

    Consider switching to v1 client-side encryption.

    + +
    + + +

    The following example shows an HTTP request parameter being used directly in a forming a +new request without validating the input, which facilitates SSRF attacks. +It also shows how to remedy the problem by validating the user input against a known fixed string. +

    + + + +
    + +
  • + Azure Storage Client Encryption Blog. +
  • + +
    +
    diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql new file mode 100644 index 00000000000..8db450a5ecb --- /dev/null +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -0,0 +1,55 @@ +/** + * @name Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). + * @description Unsafe usage of v1 version of Azure Storage client-side encryption, please refer to http://aka.ms/azstorageclientencryptionblog + * @kind problem + * @tags security + * cryptography + * external/cwe/cwe-327 + * @id python/azure-storage/unsafe-client-side-encryption-in-use + * @problem.severity error + * @precision medium + */ + +import python + +predicate isUnsafeClientSideAzureStorageEncryptionViaAttributes(Call call, AttrNode node) { + exists(ControlFlowNode ctrlFlowNode, AssignStmt astmt, Attribute a | + astmt.getATarget() = a and + a.getAttr() in ["key_encryption_key", "key_resolver_function"] and + a.getAFlowNode() = node and + node.strictlyReaches(ctrlFlowNode) and + node != ctrlFlowNode and + call.getAChildNode().(Attribute).getAttr() = "upload_blob" and + ctrlFlowNode = call.getAFlowNode() and + not astmt.getValue() instanceof None and + not exists(AssignStmt astmt2, Attribute a2, AttrNode encryptionVersionSet, StrConst uc | + uc = astmt2.getValue() and + uc.getLiteralValue().toString() in ["'2.0'", "2.0"] and + a2.getAttr() = "encryption_version" and + a2.getAFlowNode() = encryptionVersionSet and + encryptionVersionSet.strictlyReaches(ctrlFlowNode) + ) + ) +} + +predicate isUnsafeClientSideAzureStorageEncryptionViaObjectCreation(Call call, ControlFlowNode node) { + exists(Keyword k | k.getAFlowNode() = node | + call.getFunc().(Name).getId().toString() in [ + "ContainerClient", "BlobClient", "BlobServiceClient" + ] and + k.getArg() = "key_encryption_key" and + k = call.getANamedArg() and + not k.getValue() instanceof None and + not exists(Keyword k2 | k2 = call.getANamedArg() | + k2.getArg() = "encryption_version" and + k2.getValue().(StrConst).getLiteralValue().toString() in ["'2.0'", "2.0"] + ) + ) +} + +from Call call, ControlFlowNode node +where + isUnsafeClientSideAzureStorageEncryptionViaAttributes(call, node) or + isUnsafeClientSideAzureStorageEncryptionViaObjectCreation(call, node) +select node, + "Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). See http://aka.ms/azstorageclientencryptionblog" From f53adca1083de22e0a347f893376a34d3aa66d5a Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 4 Jul 2022 11:10:02 +0300 Subject: [PATCH 285/736] Update DangerousUseMbtowc.ql --- .../CWE/CWE-125/DangerousUseMbtowc.ql | 206 ++++++++++++++---- 1 file changed, 167 insertions(+), 39 deletions(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql index 2b668025794..da995ef48cb 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql @@ -23,7 +23,7 @@ predicate exprMayBeString(Expr exp) { fctmp.getAnArgument().(VariableAccess).getTarget() = exp.(VariableAccess).getTarget() or globalValueNumber(fctmp.getAnArgument()) = globalValueNumber(exp) ) and - fctmp.getTarget().hasGlobalOrStdName(["strlen", "strcat", "strncat", "strcpy", "sptintf"]) + fctmp.getTarget().hasName(["strlen", "strcat", "strncat", "strcpy", "sptintf", "printf"]) ) or exists(AssignExpr astmp | @@ -62,48 +62,176 @@ predicate argMacro(Expr exp) { ) } -from FunctionCall fc, string msg -where - exists(Loop lptmp | lptmp = fc.getEnclosingStmt().getParentStmt*()) and - fc.getTarget().hasGlobalOrStdName(["mbtowc", "mbrtowc"]) and - not fc.getArgument(0).isConstant() and - not fc.getArgument(1).isConstant() and - ( - exprMayBeString(fc.getArgument(1)) and - argConstOrSizeof(fc.getArgument(2)) and - fc.getArgument(2).getValue().toInt() < 5 and - not argMacro(fc.getArgument(2)) and - msg = "Size can be less than maximum character length, use macro MB_CUR_MAX." - or - not exprMayBeString(fc.getArgument(1)) and +/** Holds if erroneous situations of using functions `mbtowc` and `mbrtowc` are detected. */ +predicate findUseCharacterConversion(Expr exp, string msg) { + exists(FunctionCall fc | + fc = exp and ( - argConstOrSizeof(fc.getArgument(2)) - or - argMacro(fc.getArgument(2)) - or - exists(DecrementOperation dotmp | - globalValueNumber(dotmp.getAnOperand()) = globalValueNumber(fc.getArgument(2)) and - not exists(AssignSubExpr aetmp | + exists(Loop lptmp | lptmp = fc.getEnclosingStmt().getParentStmt*()) and + fc.getTarget().hasName(["mbtowc", "mbrtowc"]) and + not fc.getArgument(0).isConstant() and + not fc.getArgument(1).isConstant() and + ( + exprMayBeString(fc.getArgument(1)) and + argConstOrSizeof(fc.getArgument(2)) and + fc.getArgument(2).getValue().toInt() < 5 and + not argMacro(fc.getArgument(2)) and + msg = "Size can be less than maximum character length, use macro MB_CUR_MAX." + or + not exprMayBeString(fc.getArgument(1)) and + ( + argConstOrSizeof(fc.getArgument(2)) + or + argMacro(fc.getArgument(2)) + or + exists(DecrementOperation dotmp | + globalValueNumber(dotmp.getAnOperand()) = globalValueNumber(fc.getArgument(2)) and + not exists(AssignSubExpr aetmp | + ( + aetmp.getLValue().(VariableAccess).getTarget() = + fc.getArgument(2).(VariableAccess).getTarget() or + globalValueNumber(aetmp.getLValue()) = globalValueNumber(fc.getArgument(2)) + ) and + globalValueNumber(aetmp.getRValue()) = globalValueNumber(fc) + ) + ) + ) and + msg = + "Access beyond the allocated memory is possible, the length can change without changing the pointer." + or + exists(AssignPointerAddExpr aetmp | ( aetmp.getLValue().(VariableAccess).getTarget() = - fc.getArgument(2).(VariableAccess).getTarget() or - globalValueNumber(aetmp.getLValue()) = globalValueNumber(fc.getArgument(2)) + fc.getArgument(0).(VariableAccess).getTarget() or + globalValueNumber(aetmp.getLValue()) = globalValueNumber(fc.getArgument(0)) ) and globalValueNumber(aetmp.getRValue()) = globalValueNumber(fc) - ) + ) and + msg = "Maybe you're using the function's return value incorrectly." ) - ) and - msg = - "Access beyond the allocated memory is possible, the length can change without changing the pointer." - or - exists(AssignPointerAddExpr aetmp | - ( - aetmp.getLValue().(VariableAccess).getTarget() = - fc.getArgument(0).(VariableAccess).getTarget() or - globalValueNumber(aetmp.getLValue()) = globalValueNumber(fc.getArgument(0)) - ) and - globalValueNumber(aetmp.getRValue()) = globalValueNumber(fc) - ) and - msg = "Maybe you're using the function's return value incorrectly." + ) ) -select fc, msg +} + +/** Holds if detecting erroneous situations of working with multibyte characters. */ +predicate findUseMultibyteCharacter(Expr exp, string msg) { + exists(ArrayType arrayType, ArrayExpr arrayExpr | + arrayExpr = exp and + arrayExpr.getArrayBase().(VariableAccess).getTarget().getADeclarationEntry().getType() = + arrayType and + ( + exists(AssignExpr assZero, SizeofExprOperator sizeofArray, Expr oneValue | + oneValue.getValue() = "1" and + sizeofArray.getExprOperand().getType() = arrayType and + assZero.getLValue() = arrayExpr and + arrayExpr.getArrayOffset().(SubExpr).hasOperands(sizeofArray, oneValue) and + assZero.getRValue().getValue() = "0" + ) and + arrayType.getArraySize() != arrayType.getByteSize() and + msg = + "The size of the array element is greater than one byte, so the offset will point outside the array." + or + exists(FunctionCall mbFunction | + ( + mbFunction.getTarget().getName().matches("_mbs%") or + mbFunction.getTarget().getName().matches("mbs%") or + mbFunction.getTarget().getName().matches("_mbc%") or + mbFunction.getTarget().getName().matches("mbc%") + ) and + mbFunction.getAnArgument().(VariableAccess).getTarget().getADeclarationEntry().getType() = + arrayType + ) and + exists(Loop loop, SizeofExprOperator sizeofArray, AssignExpr assignExpr | + arrayExpr.getEnclosingStmt().getParentStmt*() = loop and + sizeofArray.getExprOperand().getType() = arrayType and + assignExpr.getLValue() = arrayExpr and + loop.getCondition().(LTExpr).getLeftOperand().(VariableAccess).getTarget() = + arrayExpr.getArrayOffset().getAChild*().(VariableAccess).getTarget() and + loop.getCondition().(LTExpr).getRightOperand() = sizeofArray + ) and + msg = + "This buffer may contain multibyte characters, so attempting to copy may result in part of the last character being lost." + ) + ) + or + exists(FunctionCall mbccpy, Loop loop, SizeofExprOperator sizeofOp | + mbccpy.getTarget().hasName("_mbccpy") and + mbccpy.getArgument(0) = exp and + exp.getEnclosingStmt().getParentStmt*() = loop and + sizeofOp.getExprOperand().getType() = + exp.getAChild*().(VariableAccess).getTarget().getADeclarationEntry().getType() and + loop.getCondition().(LTExpr).getLeftOperand().(VariableAccess).getTarget() = + exp.getAChild*().(VariableAccess).getTarget() and + loop.getCondition().(LTExpr).getRightOperand() = sizeofOp and + msg = + "This buffer may contain multibyte characters, so an attempt to copy may result in an overflow." + ) +} + +/** Holds if erroneous situations of using functions `MultiByteToWideChar` and `WideCharToMultiByte` or `mbstowcs` and `_mbstowcs_l` and `mbsrtowcs` are detected. */ +predicate findUseStringConversion( + Expr exp, string msg, int posBufSrc, int posBufDst, int posSizeDst, string nameCalls +) { + exists(FunctionCall fc | + fc = exp and + posBufSrc in [0 .. fc.getNumberOfArguments() - 1] and + posSizeDst in [0 .. fc.getNumberOfArguments() - 1] and + ( + fc.getTarget().hasName(nameCalls) and + ( + globalValueNumber(fc.getArgument(posBufDst)) = globalValueNumber(fc.getArgument(posBufSrc)) and + msg = + "According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible." + or + exists(ArrayType arrayDst | + fc.getArgument(posBufDst).(VariableAccess).getTarget().getADeclarationEntry().getType() = + arrayDst and + fc.getArgument(posSizeDst).getValue().toInt() >= arrayDst.getArraySize() and + not exists(AssignExpr assZero | + assZero.getLValue().(ArrayExpr).getArrayBase().(VariableAccess).getTarget() = + fc.getArgument(posBufDst).(VariableAccess).getTarget() and + assZero.getRValue().getValue() = "0" + ) and + not exists(Expr someExp, FunctionCall checkSize | + checkSize.getASuccessor*() = fc and + checkSize.getTarget().hasName(nameCalls) and + checkSize.getArgument(posSizeDst).getValue() = "0" and + globalValueNumber(checkSize) = globalValueNumber(someExp) and + someExp.getEnclosingStmt().getParentStmt*() instanceof IfStmt + ) and + exprMayBeString(fc.getArgument(posBufDst)) and + msg = + "According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible." + ) + or + exists(FunctionCall allocMem | + allocMem.getTarget().hasName(["calloc", "malloc"]) and + globalValueNumber(fc.getArgument(posBufDst)) = globalValueNumber(allocMem) and + ( + allocMem.getArgument(allocMem.getNumberOfArguments() - 1).getValue() = "1" or + not exists(SizeofOperator sizeofOperator | + globalValueNumber(allocMem + .getArgument(allocMem.getNumberOfArguments() - 1) + .getAChild*()) = globalValueNumber(sizeofOperator) + ) + ) and + msg = + "The buffer destination has a type other than char, you need to take this into account when allocating memory." + ) + or + fc.getArgument(posBufDst).getValue() = "0" and + fc.getArgument(posSizeDst).getValue() != "0" and + msg = + "If the destination buffer is NULL and its size is not 0, then undefined behavior is possible." + ) + ) + ) +} + +from Expr exp, string msg +where + findUseCharacterConversion(exp, msg) or + findUseMultibyteCharacter(exp, msg) or + findUseStringConversion(exp, msg, 1, 0, 2, ["mbstowcs", "_mbstowcs_l", "mbsrtowcs"]) or + findUseStringConversion(exp, msg, 2, 4, 5, ["MultiByteToWideChar", "WideCharToMultiByte"]) +select exp, msg + exp.getEnclosingFunction().getName() From 6d800de377290d4566683214a5d7ed1f1795753b Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 4 Jul 2022 11:11:49 +0300 Subject: [PATCH 286/736] Create test1.cpp --- .../CWE/CWE-125/semmle/tests/test1.cpp | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test1.cpp diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test1.cpp b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test1.cpp new file mode 100644 index 00000000000..828b91a44f1 --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test1.cpp @@ -0,0 +1,95 @@ +#define CP_ACP 1 +#define CP_UTF8 1 +#define WC_COMPOSITECHECK 1 +#define NULL 0 +typedef unsigned int UINT; +typedef unsigned long DWORD, *PDWORD, *LPDWORD; +typedef char CHAR; +#define CONST const +typedef wchar_t WCHAR; + +typedef CHAR *LPSTR; +typedef CONST CHAR *LPCSTR; +typedef CONST WCHAR *LPCWSTR; + +typedef int BOOL; +typedef BOOL *LPBOOL; + + +int WideCharToMultiByte(UINT CodePage,DWORD dwFlags,LPCWSTR lpWideCharStr,int cchWideChar,LPSTR lpMultiByteStr,int cbMultiByte,LPCWSTR lpDefaultChar,LPBOOL lpUsedDefaultChar); +int MultiByteToWideChar(UINT CodePage,DWORD dwFlags,LPCSTR lpMultiByteStr,int cbMultiByte,LPCWSTR lpWideCharStr,int cchWideChar); + +int printf ( const char * format, ... ); +typedef unsigned int size_t; +void* calloc (size_t num, size_t size); +void* malloc (size_t size); + +void badTest1(void *src, int size) { + WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)src, -1, (LPSTR)src, size, 0, 0); // BAD + MultiByteToWideChar(CP_ACP, 0, (LPCSTR)src, -1, (LPCWSTR)src, 30); // BAD +} +void goodTest2(){ + wchar_t src[] = L"0123456789ABCDEF"; + char dst[16]; + int res = WideCharToMultiByte(CP_UTF8, 0, src, -1, dst, 16, NULL, NULL); // GOOD + if (res == sizeof(dst)) { + dst[res-1] = NULL; + } else { + dst[res] = NULL; + } + printf("%s\n", dst); +} +void badTest2(){ + wchar_t src[] = L"0123456789ABCDEF"; + char dst[16]; + WideCharToMultiByte(CP_UTF8, 0, src, -1, dst, 16, NULL, NULL); // BAD + printf("%s\n", dst); +} +void goodTest3(){ + char src[] = "0123456789ABCDEF"; + int size = MultiByteToWideChar(CP_UTF8, 0, src,sizeof(src),NULL,0); + wchar_t * dst = (wchar_t*)calloc(size + 1, sizeof(wchar_t)); + MultiByteToWideChar(CP_UTF8, 0, src, -1, dst, size+1); // GOOD +} +void badTest3(){ + char src[] = "0123456789ABCDEF"; + int size = MultiByteToWideChar(CP_UTF8, 0, src,sizeof(src),NULL,0); + wchar_t * dst = (wchar_t*)calloc(size + 1, 1); + MultiByteToWideChar(CP_UTF8, 0, src, -1, dst, size+1); // BAD +} +void goodTest4(){ + char src[] = "0123456789ABCDEF"; + int size = MultiByteToWideChar(CP_UTF8, 0, src,sizeof(src),NULL,0); + wchar_t * dst = (wchar_t*)malloc((size + 1)*sizeof(wchar_t)); + MultiByteToWideChar(CP_UTF8, 0, src, -1, dst, size+1); // GOOD +} +void badTest4(){ + char src[] = "0123456789ABCDEF"; + int size = MultiByteToWideChar(CP_UTF8, 0, src,sizeof(src),NULL,0); + wchar_t * dst = (wchar_t*)malloc(size + 1); + MultiByteToWideChar(CP_UTF8, 0, src, -1, dst, size+1); // BAD +} +int goodTest5(void *src){ + return WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)src, -1, 0, 0, 0, 0); // GOOD +} +int badTest5 (void *src) { + return WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)src, -1, 0, 3, 0, 0); // BAD +} +void goodTest6(WCHAR *src) +{ + int size; + char dst[5] =""; + size = WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, src, -1, dst, 0, 0, 0); + if(size>=sizeof(dst)){ + printf("buffer size error\n"); + return; + } + WideCharToMultiByte(CP_ACP, 0, src, -1, dst, sizeof(dst), 0, 0); // GOOD + printf("%s\n", dst); +} +void badTest6(WCHAR *src) +{ + char dst[5] =""; + WideCharToMultiByte(CP_ACP, 0, src, -1, dst, 260, 0, 0); // BAD + printf("%s\n", dst); +} From 1ce42dcd306a77a7fbb90c7a0a3f9e16acc45523 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 4 Jul 2022 11:12:34 +0300 Subject: [PATCH 287/736] Create test2.cpp --- .../CWE/CWE-125/semmle/tests/test2.cpp | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test2.cpp diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test2.cpp b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test2.cpp new file mode 100644 index 00000000000..99dc3e47e5b --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test2.cpp @@ -0,0 +1,82 @@ +#define NULL 0 +typedef unsigned int size_t; +struct mbstate_t{}; +struct _locale_t{}; +int printf ( const char * format, ... ); +void* calloc (size_t num, size_t size); +void* malloc (size_t size); + +size_t mbstowcs(wchar_t *wcstr,const char *mbstr,size_t count); +size_t _mbstowcs_l(wchar_t *wcstr,const char *mbstr,size_t count, _locale_t locale); +size_t mbsrtowcs(wchar_t *wcstr,const char *mbstr,size_t count, mbstate_t *mbstate); + + +void badTest1(void *src, int size) { + mbstowcs((wchar_t*)src,(char*)src,size); // BAD + _locale_t locale; + _mbstowcs_l((wchar_t*)src,(char*)src,size,locale); // BAD + mbstate_t *mbstate; + mbsrtowcs((wchar_t*)src,(char*)src,size,mbstate); // BAD +} +void goodTest2(){ + char src[] = "0123456789ABCDEF"; + wchar_t dst[16]; + int res = mbstowcs(dst, src,16); // GOOD + if (res == sizeof(dst)) { + dst[res-1] = NULL; + } else { + dst[res] = NULL; + } + printf("%s\n", dst); +} +void badTest2(){ + char src[] = "0123456789ABCDEF"; + wchar_t dst[16]; + mbstowcs(dst, src,16); // BAD + printf("%s\n", dst); +} +void goodTest3(){ + char src[] = "0123456789ABCDEF"; + int size = mbstowcs(NULL, src,NULL); + wchar_t * dst = (wchar_t*)calloc(size + 1, sizeof(wchar_t)); + mbstowcs(dst, src,size+1); // GOOD +} +void badTest3(){ + char src[] = "0123456789ABCDEF"; + int size = mbstowcs(NULL, src,NULL); + wchar_t * dst = (wchar_t*)calloc(size + 1, 1); + mbstowcs(dst, src,size+1); // BAD +} +void goodTest4(){ + char src[] = "0123456789ABCDEF"; + int size = mbstowcs(NULL, src,NULL); + wchar_t * dst = (wchar_t*)malloc((size + 1)*sizeof(wchar_t)); + mbstowcs(dst, src,size+1); // GOOD +} +void badTest4(){ + char src[] = "0123456789ABCDEF"; + int size = mbstowcs(NULL, src,NULL); + wchar_t * dst = (wchar_t*)malloc(size + 1); + mbstowcs(dst, src,size+1); // BAD +} +int goodTest5(void *src){ + return mbstowcs(NULL, (char*)src,NULL); // GOOD +} +int badTest5 (void *src) { + return mbstowcs(NULL, (char*)src,3); // BAD +} +void goodTest6(void *src){ + wchar_t dst[5]; + int size = mbstowcs(NULL, (char*)src,NULL); + if(size>=sizeof(dst)){ + printf("buffer size error\n"); + return; + } + mbstowcs(dst, (char*)src,sizeof(dst)); // GOOD + printf("%s\n", dst); +} +void badTest6(void *src){ + wchar_t dst[5]; + mbstowcs(dst, (char*)src,260); // BAD + printf("%s\n", dst); +} From 4e28887689f41d4c18362d864f38c8ac243508bb Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 4 Jul 2022 11:13:07 +0300 Subject: [PATCH 288/736] Create test3.cpp --- .../CWE/CWE-125/semmle/tests/test3.cpp | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test3.cpp diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test3.cpp b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test3.cpp new file mode 100644 index 00000000000..e37052e839b --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/test3.cpp @@ -0,0 +1,48 @@ +#define NULL 0 +typedef unsigned int size_t; + +unsigned char * _mbsnbcpy(unsigned char * strDest,const unsigned char * strSource,size_t count); +size_t _mbclen(const unsigned char *c); +void _mbccpy(unsigned char *dest,const unsigned char *src); +unsigned char *_mbsinc(const unsigned char *current); +void goodTest1(unsigned char *src){ + unsigned char dst[50]; + _mbsnbcpy(dst,src,sizeof(dst)); // GOOD +} +size_t badTest1(unsigned char *src){ + int cb = 0; + unsigned char dst[50]; + while( cb < sizeof(dst) ) + dst[cb++]=*src++; // BAD + return _mbclen(dst); +} +void goodTest2(unsigned char *src){ + + int cb = 0; + unsigned char dst[50]; + while( (cb + _mbclen(src)) <= sizeof(dst) ) + { + _mbccpy(dst+cb,src); // GOOD + cb+=_mbclen(src); + src=_mbsinc(src); + } +} +void badTest2(unsigned char *src){ + + int cb = 0; + unsigned char dst[50]; + while( cb < sizeof(dst) ) + { + _mbccpy(dst+cb,src); // BAD + cb+=_mbclen(src); + src=_mbsinc(src); + } +} +void goodTest3(){ + wchar_t name[50]; + name[sizeof(name) / sizeof(*name) - 1] = L'\0'; // GOOD +} +void badTest3(){ + wchar_t name[50]; + name[sizeof(name) - 1] = L'\0'; // BAD +} From 8967f57bbc0652f4cca0131dbe4b845fff7d1056 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 4 Jul 2022 11:17:12 +0300 Subject: [PATCH 289/736] Update DangerousUseMbtowc.ql --- .../src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql index da995ef48cb..7b17e30e24e 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql @@ -68,7 +68,7 @@ predicate findUseCharacterConversion(Expr exp, string msg) { fc = exp and ( exists(Loop lptmp | lptmp = fc.getEnclosingStmt().getParentStmt*()) and - fc.getTarget().hasName(["mbtowc", "mbrtowc"]) and + fc.getTarget().hasName(["mbtowc", "mbrtowc", "_mbtowc_l"]) and not fc.getArgument(0).isConstant() and not fc.getArgument(1).isConstant() and ( From 56060e06107d60feee0c83b59e8de159e76632bc Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Tue, 5 Jul 2022 13:57:28 -0700 Subject: [PATCH 290/736] Update csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> --- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index 3bf46ab9f89..49aa5623570 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -9,7 +9,7 @@ -

    Consider switching to v1 client-side encryption.

    +

    Consider switching to v2 client-side encryption.

    From f5c6b45014aedac11b614b65fe7bcb59dfe519c9 Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Tue, 5 Jul 2022 13:58:11 -0700 Subject: [PATCH 291/736] Update UnsafeUsageOfClientSideEncryptionVersion.qhelp --- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index ed05e5f3370..3fca30a7926 100644 --- a/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -9,7 +9,7 @@ -

    Consider switching to v1 client-side encryption.

    +

    Consider switching to v2 client-side encryption.

    From dd1a9a22e3027836f2be9524ebac4cd8fe2f320a Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Tue, 5 Jul 2022 13:58:38 -0700 Subject: [PATCH 292/736] Update UnsafeUsageOfClientSideEncryptionVersion.qhelp --- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index 9571e1150ef..c4111a166de 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -9,7 +9,7 @@ -

    Consider switching to v1 client-side encryption.

    +

    Consider switching to v2 client-side encryption.

    From 74ff579dbc0bbea1d9353382a17ebac3337e208a Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 6 Jul 2022 15:19:36 -0400 Subject: [PATCH 293/736] Fixing logic bug with LogicalAndExpr --- cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll index 40c975873b4..fac6a57f8cf 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll @@ -46,7 +46,7 @@ predicate nullCheckExpr(Expr checkExpr, Variable var) { or exists(LogicalAndExpr op, AnalysedExpr child | expr = op and - op.getRightOperand() = child and + (op.getRightOperand() = child or op.getLeftOperand() = child) and nullCheckExpr(child, v) ) or @@ -99,7 +99,7 @@ predicate validCheckExpr(Expr checkExpr, Variable var) { or exists(LogicalAndExpr op, AnalysedExpr child | expr = op and - op.getRightOperand() = child and + (op.getRightOperand() = child or op.getLeftOperand() = child) and validCheckExpr(child, v) ) or From 7d6fb7f91a2deaab8855a8b2060d866d97029631 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 6 Jul 2022 21:52:13 +0200 Subject: [PATCH 294/736] C++: Rename LossyFunctionResultCast tests to be correctly named --- ...castFromBitfield.expected => LossyFunctionResultCast.expected} | 0 ...itDowncastFromBitfield.qlref => LossyFunctionResultCast.qlref} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/{ImplicitDowncastFromBitfield.expected => LossyFunctionResultCast.expected} (100%) rename cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/{ImplicitDowncastFromBitfield.qlref => LossyFunctionResultCast.qlref} (100%) diff --git a/cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/ImplicitDowncastFromBitfield.expected b/cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/LossyFunctionResultCast.expected similarity index 100% rename from cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/ImplicitDowncastFromBitfield.expected rename to cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/LossyFunctionResultCast.expected diff --git a/cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/ImplicitDowncastFromBitfield.qlref b/cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/LossyFunctionResultCast.qlref similarity index 100% rename from cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/ImplicitDowncastFromBitfield.qlref rename to cpp/ql/test/query-tests/Likely Bugs/Conversion/LossyFunctionResultCast/LossyFunctionResultCast.qlref From 0b471c2007e66938250bea985afeb8f6851660e8 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 6 Jul 2022 21:53:12 +0200 Subject: [PATCH 295/736] C++: Improve LossyFunctionResultCast join order Before on wireshark: ``` Tuple counts for #select#ff@eca61bf2: 180100 ~2% {2} r1 = SCAN Type::Type::getUnderlyingType#dispred#f0820431#ff OUTPUT In.1, In.0 84 ~2% {2} r2 = JOIN r1 WITH project#Type::FloatingPointType#class#2e8eb3ef#fffff ON FIRST 1 OUTPUT Lhs.1, Rhs.0 2021 ~0% {2} r3 = JOIN r2 WITH Function::Function::getType#dispred#f0820431#fb_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 2437 ~0% {2} r4 = JOIN r3 WITH Call::FunctionCall::getTarget#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1 2150 ~0% {2} r5 = r4 AND NOT LossyFunctionResultCast::whiteListWrapped#377b528a#f(Lhs.1) 2150 ~0% {2} r6 = SCAN r5 OUTPUT In.1, In.0 313 ~0% {3} r7 = JOIN r6 WITH exprconv ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 313 ~0% {3} r8 = JOIN r7 WITH Cast::Conversion#class#1f33e835#b ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2 148 ~3% {2} r9 = JOIN r8 WITH Expr::Expr::isCompilerGenerated#f0820431#b ON FIRST 1 OUTPUT Lhs.2, Lhs.1 148 ~1% {3} r10 = JOIN r9 WITH Expr::Expr::getActualType#dispred#f0820431#bf ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 21 ~0% {3} r11 = JOIN r10 WITH Type::IntegralType#class#2e8eb3ef#ff ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.0 21 ~0% {3} r12 = JOIN r11 WITH Element::ElementBase::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Rhs.1 21 ~0% {2} r13 = JOIN r12 WITH Element::ElementBase::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1, ("Return value of type " ++ Lhs.2 ++ " is implicitly converted to " ++ Rhs.1 ++ " here.") return r13 ``` After: ``` Tuple counts for #select#ff@a5a185eg: 20 ~0% {2} r1 = SCAN project#Type::FloatingPointType#class#2e8eb3ef#fffff OUTPUT In.0, In.0 20 ~0% {2} r2 = JOIN r1 WITH project#Type::FloatingPointType#class#2e8eb3ef#fffff ON FIRST 1 OUTPUT Lhs.1, Lhs.0 84 ~2% {2} r3 = JOIN r2 WITH Type::Type::getUnderlyingType#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 2021 ~0% {2} r4 = JOIN r3 WITH Function::Function::getType#dispred#f0820431#fb_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 2437 ~0% {2} r5 = JOIN r4 WITH Call::FunctionCall::getTarget#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1 2150 ~0% {2} r6 = r5 AND NOT LossyFunctionResultCast::whiteListWrapped#377b528a#f(Lhs.1) 2150 ~0% {2} r7 = SCAN r6 OUTPUT In.1, In.0 313 ~0% {3} r8 = JOIN r7 WITH exprconv ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 313 ~0% {3} r9 = JOIN r8 WITH Cast::Conversion#class#1f33e835#b ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2 148 ~3% {2} r10 = JOIN r9 WITH Expr::Expr::isCompilerGenerated#f0820431#b ON FIRST 1 OUTPUT Lhs.2, Lhs.1 148 ~1% {3} r11 = JOIN r10 WITH Expr::Expr::getActualType#dispred#f0820431#bf ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 21 ~0% {3} r12 = JOIN r11 WITH Type::IntegralType#class#2e8eb3ef#ff ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.0 21 ~0% {3} r13 = JOIN r12 WITH Element::ElementBase::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Rhs.1 21 ~0% {2} r14 = JOIN r13 WITH Element::ElementBase::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1, ("Return value of type " ++ Lhs.2 ++ " is implicitly converted to " ++ Rhs.1 ++ " here.") return r14 ``` --- cpp/ql/src/Likely Bugs/Conversion/LossyFunctionResultCast.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/Likely Bugs/Conversion/LossyFunctionResultCast.ql b/cpp/ql/src/Likely Bugs/Conversion/LossyFunctionResultCast.ql index dee723e2686..3cbcffe0ce3 100644 --- a/cpp/ql/src/Likely Bugs/Conversion/LossyFunctionResultCast.ql +++ b/cpp/ql/src/Likely Bugs/Conversion/LossyFunctionResultCast.ql @@ -44,7 +44,7 @@ predicate whiteListWrapped(FunctionCall fc) { from FunctionCall c, FloatingPointType t1, IntegralType t2 where - t1 = c.getTarget().getType().getUnderlyingType() and + pragma[only_bind_into](t1) = c.getTarget().getType().getUnderlyingType() and t2 = c.getActualType() and c.hasImplicitConversion() and not whiteListWrapped(c) From 01da877d0ebb101ba7ccf1c33c6cb113fb0d930b Mon Sep 17 00:00:00 2001 From: Raul Garcia Date: Wed, 6 Jul 2022 14:07:14 -0700 Subject: [PATCH 296/736] Moving the new query to experimental. It was added to the wrong folder initially. --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java | 0 .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp | 0 .../CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename java/ql/src/{ => experimental}/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java (100%) rename java/ql/src/{ => experimental}/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp (100%) rename java/ql/src/{ => experimental}/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql (100%) diff --git a/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java similarity index 100% rename from java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java rename to java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.java diff --git a/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp similarity index 100% rename from java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp rename to java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp diff --git a/java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql similarity index 100% rename from java/ql/src/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql rename to java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql From 4379aa4398f59d48cba6efdbcc75cc0afc1db68d Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 7 Jul 2022 10:32:36 -0400 Subject: [PATCH 297/736] Adding Initializer in condition as an occurance of isDef --- cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll index fac6a57f8cf..92beb5c9d99 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll @@ -169,7 +169,10 @@ class AnalysedExpr extends Expr { */ predicate isDef(LocalScopeVariable v) { this.inCondition() and - this.(Assignment).getLValue() = v.getAnAccess() + ( + this.(Assignment).getLValue() = v.getAnAccess() or + exists(Initializer i | this.getEnclosingStmt() = i.getEnclosingStmt() and v = i.getDeclaration()) + ) } /** From f8994d04d652af02b888221feacb37763016aece Mon Sep 17 00:00:00 2001 From: Raul Garcia Date: Thu, 7 Jul 2022 11:49:05 -0700 Subject: [PATCH 298/736] Clean up --- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index cb986754958..0de3d020e4f 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -18,7 +18,7 @@ import csharp */ predicate isCreatingAzureClientSideEncryptionObject(ObjectCreation oc, Class c, Expr e) { exists(Parameter p | p.hasName("version") | - c.getQualifiedName() in ["Azure.Storage.ClientSideEncryptionOptions"] and + c.hasQualifiedName("Azure.Storage.ClientSideEncryptionOptions") and oc.getTarget() = c.getAConstructor() and e = oc.getArgumentForParameter(p) ) @@ -28,7 +28,7 @@ predicate isCreatingAzureClientSideEncryptionObject(ObjectCreation oc, Class c, * Holds if `oc` is an object creation of the outdated type `c` = `Microsoft.Azure.Storage.Blob.BlobEncryptionPolicy` */ predicate isCreatingOutdatedAzureClientSideEncryptionObject(ObjectCreation oc, Class c) { - c.getQualifiedName() in ["Microsoft.Azure.Storage.Blob.BlobEncryptionPolicy"] and + c.hasQualifiedName("Microsoft.Azure.Storage.Blob.BlobEncryptionPolicy") and oc.getTarget() = c.getAConstructor() } @@ -37,7 +37,7 @@ predicate isCreatingOutdatedAzureClientSideEncryptionObject(ObjectCreation oc, C * version 2+ for client-side encryption and if the argument for the constructor `version` * is set to a secure value. */ -predicate isObjectCreationSafe(Class c, Expr versionExpr, Assembly asm) { +predicate isObjectCreationSafe(Expr versionExpr, Assembly asm) { // Check if the Azure.Storage assembly version has the fix exists(int versionCompare | versionCompare = asm.getVersion().compareTo("12.12.0.0") and @@ -66,7 +66,7 @@ where ( exists(Expr e2 | isCreatingAzureClientSideEncryptionObject(e, c, e2) and - not isObjectCreationSafe(c, e2, asm) + not isObjectCreationSafe(e2, asm) ) or isCreatingOutdatedAzureClientSideEncryptionObject(e, c) From 2f1cfa816fd7eefb3bab86dae9ed1344479b8607 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 7 Jul 2022 19:23:06 +0000 Subject: [PATCH 299/736] Add annotate arguments as sqli sink --- .../security/cwe-089/ActiveRecordInjection.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb b/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb index 9c314a82b34..4c8dfcca10d 100644 --- a/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb +++ b/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb @@ -137,3 +137,17 @@ class BazController < BarController Admin.delete_by(params[:admin_condition]) end end + +class AnnotatedController < ActionController::Base + def index + name = params[:user_name] + # GOOD: string literal arguments not controlled by user are safe for annotations + users = User.annotate("this is a safe annotation").find_by(user_name: name) + end + + def unsafe_action + name = params[:user_name] + # BAD: user input passed into annotations are vulnerable to SQLi + users = User.annotate("this is an unsafe annotation:#{params[:comment]}").find_by(user_name: name) + end +end From b4869158f2970dc462c78e2ebafcf90ea4b83f33 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 7 Jul 2022 19:23:57 +0000 Subject: [PATCH 300/736] expand query tests for cwe-089 --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 5 +++++ .../test/query-tests/security/cwe-089/SqlInjection.expected | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index cc63e64a083..b56304a657b 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -133,6 +133,11 @@ private Expr sqlFragmentArgument(MethodCall call) { or methodName = "reload" and result = call.getKeywordArgument("lock") + or + // Calls to `annotate` can be used to add block comments to SQL queries. These are potentially vulnerable to + // SQLi if user supplied input is passed in as an argument. + methodName = "annotate" and + result = call.getArgument(_) ) ) } 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 6a9f5f771fb..dc814977cae 100644 --- a/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected @@ -31,6 +31,8 @@ edges | ActiveRecordInjection.rb:99:11:99:17 | ...[...] : | ActiveRecordInjection.rb:104:20:104:32 | ... + ... | | ActiveRecordInjection.rb:137:21:137:26 | call to params : | ActiveRecordInjection.rb:137:21:137:44 | ...[...] : | | ActiveRecordInjection.rb:137:21:137:44 | ...[...] : | ActiveRecordInjection.rb:20:22:20:30 | condition : | +| ActiveRecordInjection.rb:151:59:151:64 | call to params : | ActiveRecordInjection.rb:151:59:151:74 | ...[...] : | +| ActiveRecordInjection.rb:151:59:151:74 | ...[...] : | ActiveRecordInjection.rb:151:27:151:76 | "this is an unsafe annotation:..." | nodes | ActiveRecordInjection.rb:8:25:8:28 | name : | semmle.label | name : | | ActiveRecordInjection.rb:8:31:8:34 | pass : | semmle.label | pass : | @@ -80,6 +82,9 @@ nodes | ActiveRecordInjection.rb:104:20:104:32 | ... + ... | semmle.label | ... + ... | | ActiveRecordInjection.rb:137:21:137:26 | call to params : | semmle.label | call to params : | | ActiveRecordInjection.rb:137:21:137:44 | ...[...] : | semmle.label | ...[...] : | +| ActiveRecordInjection.rb:151:27:151:76 | "this is an unsafe annotation:..." | semmle.label | "this is an unsafe annotation:..." | +| ActiveRecordInjection.rb:151:59:151:64 | call to params : | semmle.label | call to params : | +| ActiveRecordInjection.rb:151:59:151:74 | ...[...] : | semmle.label | ...[...] : | subpaths #select | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | ActiveRecordInjection.rb:70:23:70:28 | call to params : | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | This SQL query depends on $@. | ActiveRecordInjection.rb:70:23:70:28 | call to params | a user-provided value | @@ -99,3 +104,4 @@ subpaths | ActiveRecordInjection.rb:88:18:88:35 | ...[...] | ActiveRecordInjection.rb:88:18:88:23 | call to params : | ActiveRecordInjection.rb:88:18:88:35 | ...[...] | This SQL query depends on $@. | ActiveRecordInjection.rb:88:18:88:23 | call to params | a user-provided value | | ActiveRecordInjection.rb:92:21:92:35 | ...[...] | ActiveRecordInjection.rb:92:21:92:26 | call to params : | ActiveRecordInjection.rb:92:21:92:35 | ...[...] | This SQL query depends on $@. | ActiveRecordInjection.rb:92:21:92:26 | call to params | a user-provided value | | ActiveRecordInjection.rb:104:20:104:32 | ... + ... | ActiveRecordInjection.rb:98:10:98:15 | call to params : | ActiveRecordInjection.rb:104:20:104:32 | ... + ... | This SQL query depends on $@. | ActiveRecordInjection.rb:98:10:98:15 | call to params | a user-provided value | +| ActiveRecordInjection.rb:151:27:151:76 | "this is an unsafe annotation:..." | ActiveRecordInjection.rb:151:59:151:64 | call to params : | ActiveRecordInjection.rb:151:27:151:76 | "this is an unsafe annotation:..." | This SQL query depends on $@. | ActiveRecordInjection.rb:151:59:151:64 | call to params | a user-provided value | From 940254d2516be52e2aace4a27083d407b9bcb83d Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 7 Jul 2022 19:39:59 +0000 Subject: [PATCH 301/736] update framework tests --- .../library-tests/frameworks/ActiveRecord.expected | 4 ++++ ruby/ql/test/library-tests/frameworks/ActiveRecord.rb | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/ruby/ql/test/library-tests/frameworks/ActiveRecord.expected b/ruby/ql/test/library-tests/frameworks/ActiveRecord.expected index d8509f6a218..b416d853440 100644 --- a/ruby/ql/test/library-tests/frameworks/ActiveRecord.expected +++ b/ruby/ql/test/library-tests/frameworks/ActiveRecord.expected @@ -22,6 +22,7 @@ activeRecordSqlExecutionRanges | ActiveRecord.rb:46:20:46:32 | ... + ... | | ActiveRecord.rb:52:16:52:28 | "name #{...}" | | ActiveRecord.rb:56:20:56:39 | "username = #{...}" | +| ActiveRecord.rb:78:27:78:76 | "this is an unsafe annotation:..." | activeRecordModelClassMethodCalls | ActiveRecord.rb:2:3:2:17 | call to has_many | | ActiveRecord.rb:6:3:6:24 | call to belongs_to | @@ -44,6 +45,8 @@ activeRecordModelClassMethodCalls | ActiveRecord.rb:60:5:60:33 | call to find_by | | ActiveRecord.rb:62:5:62:34 | call to find | | ActiveRecord.rb:68:5:68:45 | call to delete_by | +| ActiveRecord.rb:74:13:74:54 | call to annotate | +| ActiveRecord.rb:78:13:78:77 | call to annotate | potentiallyUnsafeSqlExecutingMethodCall | ActiveRecord.rb:9:5:9:68 | call to find | | ActiveRecord.rb:19:5:19:25 | call to destroy_by | @@ -55,6 +58,7 @@ potentiallyUnsafeSqlExecutingMethodCall | ActiveRecord.rb:46:5:46:33 | call to delete_by | | ActiveRecord.rb:52:5:52:29 | call to order | | ActiveRecord.rb:56:7:56:40 | call to find_by | +| ActiveRecord.rb:78:13:78:77 | call to annotate | activeRecordModelInstantiations | ActiveRecord.rb:9:5:9:68 | call to find | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:13:5:13:40 | call to find_by | ActiveRecord.rb:1:1:3:3 | UserGroup | diff --git a/ruby/ql/test/library-tests/frameworks/ActiveRecord.rb b/ruby/ql/test/library-tests/frameworks/ActiveRecord.rb index 5045a5c2264..d25cbf901c3 100644 --- a/ruby/ql/test/library-tests/frameworks/ActiveRecord.rb +++ b/ruby/ql/test/library-tests/frameworks/ActiveRecord.rb @@ -68,3 +68,13 @@ class BazController < BarController Admin.delete_by(params[:admin_condition]) end end + +class AnnotatedController < ActionController::Base + def index + users = User.annotate("this is a safe annotation") + end + + def unsafe_action + users = User.annotate("this is an unsafe annotation:#{params[:comment]}") + end +end From 11e39aa0303d7207f5a03981fe69c651232828e6 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 7 Jul 2022 21:40:16 +0000 Subject: [PATCH 302/736] Add changelog --- ruby/ql/lib/change-notes/released/0.3.1.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ruby/ql/lib/change-notes/released/0.3.1.md diff --git a/ruby/ql/lib/change-notes/released/0.3.1.md b/ruby/ql/lib/change-notes/released/0.3.1.md new file mode 100644 index 00000000000..64efa15884a --- /dev/null +++ b/ruby/ql/lib/change-notes/released/0.3.1.md @@ -0,0 +1,5 @@ +## 0.3.1 + +### Minor Analysis Improvements + +- Calls to `ActiveRecord::Relation#annotate` have now been added to `ActiveRecordModelClass#sqlFragmentArgument` so that it can be used as a sink for queries like rb/sql-injection. \ No newline at end of file From bd50fd7f1e5413d1bd92ee95f43f15a46e63f7b0 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 8 Jul 2022 17:20:41 +0000 Subject: [PATCH 303/736] format fix --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index b56304a657b..142d1455ce4 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -135,7 +135,7 @@ private Expr sqlFragmentArgument(MethodCall call) { result = call.getKeywordArgument("lock") or // Calls to `annotate` can be used to add block comments to SQL queries. These are potentially vulnerable to - // SQLi if user supplied input is passed in as an argument. + // SQLi if user supplied input is passed in as an argument. methodName = "annotate" and result = call.getArgument(_) ) From 6aab970a9e86ff0dd0aa1660c489d4d0bcba525c Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 8 Jul 2022 18:32:54 +0000 Subject: [PATCH 304/736] refactor query to use cfg and dataflow --- .../ManuallyCheckHttpVerb.ql | 96 +++++++++++++------ .../ExampleController.rb | 11 --- .../ManuallyCheckHttpVerb.expected | 0 .../ManuallyCheckHttpVerb.qlref | 0 .../manually-check-http-verb/NotController.rb | 17 ++++ .../manually-check-http-verb/NotController.rb | 28 ------ 6 files changed, 85 insertions(+), 67 deletions(-) rename ruby/ql/test/query-tests/{security => experimental}/manually-check-http-verb/ExampleController.rb (70%) rename ruby/ql/test/query-tests/{security => experimental}/manually-check-http-verb/ManuallyCheckHttpVerb.expected (100%) rename ruby/ql/test/query-tests/{security => experimental}/manually-check-http-verb/ManuallyCheckHttpVerb.qlref (100%) create mode 100644 ruby/ql/test/query-tests/experimental/manually-check-http-verb/NotController.rb delete mode 100644 ruby/ql/test/query-tests/security/manually-check-http-verb/NotController.rb 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 a006587a13e..5e1db6f0de7 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -11,43 +11,83 @@ import ruby import codeql.ruby.DataFlow +import codeql.ruby.controlflow.CfgNodes +import codeql.ruby.frameworks.ActionController -class CheckNotGetRequest extends ConditionalExpr { - CheckNotGetRequest() { this.getCondition() instanceof CheckGetRequest } +// any `request` calls in an action method +class Request extends DataFlow::CallNode { + Request() { + this.getMethodName() = "request" and + this.asExpr().getExpr() instanceof ActionControllerActionMethod + } } -class CheckGetRequest extends MethodCall { - CheckGetRequest() { this.getMethodName() = "get?" } +// `request.request_method` +class RequestRequestMethod extends DataFlow::CallNode { + RequestRequestMethod() { + this.getMethodName() = "request_method" and + any(Request r).flowsTo(this.getReceiver()) + } } -class ControllerClass extends ModuleBase { - ControllerClass() { this.getModule().getSuperClass+().toString() = "ApplicationController" } +// `request.method` +class RequestMethod extends DataFlow::CallNode { + RequestMethod() { + this.getMethodName() = "method" and + any(Request r).flowsTo(this.getReceiver()) + } } -class CheckGetFromEnv extends AstNode { - CheckGetFromEnv() { - // is this node an instance of `env["REQUEST_METHOD"] - this instanceof GetRequestMethodFromEnv and - // check if env["REQUEST_METHOD"] is compared to GET - exists(EqualityOperation eq | eq.getAChild() = this | - eq.getAChild().(StringLiteral).toString() = "GET" +// `request.raw_request_method` +class RequestRawRequestMethod extends DataFlow::CallNode { + RequestRawRequestMethod() { + this.getMethodName() = "raw_request_method" and + any(Request r).flowsTo(this.getReceiver()) + } +} + +// `request.request_method_symbol` +class RequestRequestMethodSymbol extends DataFlow::CallNode { + RequestRequestMethodSymbol() { + this.getMethodName() = "request_method_symbol" and + any(Request r).flowsTo(this.getReceiver()) + } +} + +// `request.get?` +class RequestGet extends DataFlow::CallNode { + RequestGet() { + this.getMethodName() = "get?" and + any(Request r).flowsTo(this.getReceiver()) + } +} + +// A conditional expression where the condition uses `request.method`, `request.request_method`, `request.raw_request_method`, `request.request_method_symbol`, or `request.get?` in some way. +// e.g. +// ``` +// r = request.request_method +// if r == "GET" +// ... +// ``` +class RequestMethodConditional extends DataFlow::Node { + RequestMethodConditional() { + // We have to cast the dataflow node down to a specific CFG node (`ExprNodes::ConditionalExprCfgNode`) to be able to call `getCondition()`. + // We then find the dataflow node corresponding to the condition CFG node, + // and filter for just nodes where a request method accessor value flows to them. + exists(DataFlow::Node conditionNode | + conditionNode.asExpr() = this.asExpr().(ExprNodes::ConditionalExprCfgNode).getCondition() + | + ( + any(RequestMethod r).flowsTo(conditionNode) or + any(RequestRequestMethod r).flowsTo(conditionNode) or + any(RequestRawRequestMethod r).flowsTo(conditionNode) or + any(RequestRequestMethodSymbol r).flowsTo(conditionNode) or + any(RequestGet r).flowsTo(conditionNode) + ) ) } } -class GetRequestMethodFromEnv extends ElementReference { - GetRequestMethodFromEnv() { - this.getAChild+().toString() = "REQUEST_METHOD" and - this.getAChild+().toString() = "env" - } -} - -from AstNode node -where - ( - node instanceof CheckNotGetRequest or - node instanceof CheckGetFromEnv - ) and - node.getEnclosingModule() instanceof ControllerClass -select node, +from RequestMethodConditional req +select req, "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 mappting resources and verbs to specific methods." diff --git a/ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ExampleController.rb similarity index 70% rename from ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb rename to ruby/ql/test/query-tests/experimental/manually-check-http-verb/ExampleController.rb index c3e913367b8..7e4ab4a1a77 100644 --- a/ruby/ql/test/query-tests/security/manually-check-http-verb/ExampleController.rb +++ b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ExampleController.rb @@ -3,17 +3,6 @@ class ExampleController < ActionController::Base def example_action if request.get? Example.find(params[:example_id]) - elsif request.post? - Example.new(params[:example_name], params[:example_details]) - elsif request.delete? - example = Example.find(params[:example_id]) - example.delete - elsif request.put? - Example.upsert(params[:example_name], params[:example_details]) - elsif request.path? - Example.update(params[:example_name], params[:example_details]) - elsif request.head? - "This is the endpoint for the Example resource." end end end diff --git a/ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.expected b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected similarity index 100% rename from ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.expected rename to ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected diff --git a/ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.qlref b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qlref similarity index 100% rename from ruby/ql/test/query-tests/security/manually-check-http-verb/ManuallyCheckHttpVerb.qlref rename to ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qlref diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/NotController.rb b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/NotController.rb new file mode 100644 index 00000000000..78e194245e2 --- /dev/null +++ b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/NotController.rb @@ -0,0 +1,17 @@ +# There should be no hits from this class because it does not inherit from ActionController +class NotAController + def example_action + if request.get? + Example.find(params[:example_id]) + end + end + + def resource_action + case env['REQUEST_METHOD'] + when "GET" + Resource.find(params[:id]) + when "POST" + Resource.new(params[:id], params[:details]) + end + end +end \ No newline at end of file diff --git a/ruby/ql/test/query-tests/security/manually-check-http-verb/NotController.rb b/ruby/ql/test/query-tests/security/manually-check-http-verb/NotController.rb deleted file mode 100644 index 81a73d72410..00000000000 --- a/ruby/ql/test/query-tests/security/manually-check-http-verb/NotController.rb +++ /dev/null @@ -1,28 +0,0 @@ -# There should be no hits from this class because it does not inherit from ActionController -class NotAController - def example_action - if request.get? - Example.find(params[:example_id]) - elsif request.post? - Example.new(params[:example_name], params[:example_details]) - elsif request.delete? - example = Example.find(params[:example_id]) - example.delete - elsif request.put? - Example.upsert(params[:example_name], params[:example_details]) - elsif request.path? - Example.update(params[:example_name], params[:example_details]) - elsif request.head? - "This is the endpoint for the Example resource." - end - end - - def resource_action - case env['REQUEST_METHOD'] - when "GET" - Resource.find(params[:id]) - when "POST" - Resource.new(params[:id], params[:details]) - end - end -end \ No newline at end of file From 96e66c4a504cdd473f52e8b50140f6261d3a6542 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 8 Jul 2022 18:39:04 +0000 Subject: [PATCH 305/736] move tests --- .../{security => experimental}/weak-params/WeakParams.expected | 0 .../{security => experimental}/weak-params/WeakParams.qlref | 0 .../{security => experimental}/weak-params/WeakParams.rb | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename ruby/ql/test/query-tests/{security => experimental}/weak-params/WeakParams.expected (100%) rename ruby/ql/test/query-tests/{security => experimental}/weak-params/WeakParams.qlref (100%) rename ruby/ql/test/query-tests/{security => experimental}/weak-params/WeakParams.rb (100%) diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.expected b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected similarity index 100% rename from ruby/ql/test/query-tests/security/weak-params/WeakParams.expected rename to ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.qlref similarity index 100% rename from ruby/ql/test/query-tests/security/weak-params/WeakParams.qlref rename to ruby/ql/test/query-tests/experimental/weak-params/WeakParams.qlref diff --git a/ruby/ql/test/query-tests/security/weak-params/WeakParams.rb b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb similarity index 100% rename from ruby/ql/test/query-tests/security/weak-params/WeakParams.rb rename to ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb From 5d3232c614b591cf234c6e8ebc0dc2e099228dcc Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 8 Jul 2022 18:53:24 +0000 Subject: [PATCH 306/736] refactor to use data flow --- .../experimental/weak-params/WeakParams.ql | 79 ++++++------------- .../experimental/weak-params/WeakParams.rb | 2 +- 2 files changed, 23 insertions(+), 58 deletions(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index f9af2e5c08c..6ea73aa42de 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -11,45 +11,41 @@ */ import ruby +import codeql.ruby.Concepts import codeql.ruby.DataFlow import codeql.ruby.TaintTracking +import codeql.ruby.frameworks.ActionController import DataFlow::PathGraph /** - * A direct parameters reference that happens outside of a strong params method but inside - * of a controller class + * A call to `request` in an ActionController controller class. + * This probably refers to the incoming HTTP request object. */ -class WeakParams extends Expr { - WeakParams() { - ( - allParamsAccess(this) or - this instanceof ParamsReference - ) and - this.getEnclosingModule() instanceof ControllerClass and - not this.getEnclosingMethod() instanceof StrongParamsMethod +class ActionControllerRequest extends DataFlow::Node { + ActionControllerRequest() { + exists(DataFlow::CallNode c | + c.asExpr().getExpr().getEnclosingModule() instanceof ActionControllerControllerClass and + c.getMethodName() = "request" + | + c.flowsTo(this) + ) } } /** - * A controller class, which extendsd `ApplicationController` + * A direct parameters reference that happens inside a controller class. */ -class ControllerClass extends ModuleBase { - ControllerClass() { this.getModule().getSuperClass+().toString() = "ApplicationController" } -} - -/** - * A method that follows the strong params naming convention - */ -class StrongParamsMethod extends Method { - StrongParamsMethod() { this.getName().regexpMatch(".*_params") } +class WeakParams extends DataFlow::CallNode { + WeakParams() { + this.getReceiver() instanceof ActionControllerRequest and + allParamsAccess(this.asExpr().getExpr()) + } } /** * Holds call to a method that exposes or accesses all parameters from an inbound HTTP request */ predicate allParamsAccess(MethodCall call) { - call.getMethodName() = "expose_all" or - call.getMethodName() = "original_hash" or call.getMethodName() = "path_parametes" or call.getMethodName() = "query_parameters" or call.getMethodName() = "request_parameters" or @@ -57,51 +53,20 @@ predicate allParamsAccess(MethodCall call) { call.getMethodName() = "POST" } -/** - * A reference to an element in the `params` object - */ -class ParamsReference extends ElementReference { - ParamsReference() { this.getAChild().toString() = "params" } -} - -/** - * A Model or ViewModel classes with a base class of `ViewModel`, `ApplicationRecord` or includes `ActionModel::Model`, - * which are required to support the strong parameters pattern - */ -class ModelClass extends ModuleBase { - ModelClass() { - this.getModule().getSuperClass+().toString() = "ViewModel" or - this.getModule().getSuperClass+().toString() = "ApplicationRecord" or - this.getModule().getSuperClass+().getAnIncludedModule().toString() = "ActionModel::Model" - } -} - -/** - * A DataFlow::Node representation that corresponds to any argument passed into a method call - * where the receiver is an instance of ModelClass - */ -class ModelClassMethodArgument extends DataFlow::Node { - - ModelClassMethodArgument() { - exists( DataFlow::CallNode call | this = call.getArgument(_) | - call.getExprNode().getNode().getParent+() instanceof ModelClass ) - } -} - /** * 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 = "Configuration" } + Configuration() { this = "WeakParamsConfiguration" } - override predicate isSource(DataFlow::Node node) { node.asExpr().getNode() instanceof WeakParams } + override 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 instanceof ModelClassMethodArgument } + override predicate isSink(DataFlow::Node node) { node = any(PersistentWriteAccess a).getValue() } } from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink where config.hasFlowPath(source, sink) -select sink.getNode().(ModelClassMethodArgument), 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" diff --git a/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb index a2fedd6ef26..81d57239f29 100644 --- a/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb +++ b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb @@ -8,7 +8,7 @@ class TestController < ActionController::Base end def update - TestObect.update(object_params) + TestObject.update(object_params) end # From e8e8da1b3189adba08fe944db5df482287b52a49 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 8 Jul 2022 19:01:01 +0000 Subject: [PATCH 307/736] fix lib test expect for ActionController --- .../test/library-tests/frameworks/ActionController.expected | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ruby/ql/test/library-tests/frameworks/ActionController.expected b/ruby/ql/test/library-tests/frameworks/ActionController.expected index d306f09b64b..52ab15995c7 100644 --- a/ruby/ql/test/library-tests/frameworks/ActionController.expected +++ b/ruby/ql/test/library-tests/frameworks/ActionController.expected @@ -2,6 +2,7 @@ actionControllerControllerClasses | ActiveRecord.rb:23:1:39:3 | FooController | | ActiveRecord.rb:41:1:64:3 | BarController | | ActiveRecord.rb:66:1:70:3 | BazController | +| ActiveRecord.rb:72:1:80:3 | AnnotatedController | | app/controllers/comments_controller.rb:1:1:7:3 | CommentsController | | app/controllers/foo/bars_controller.rb:3:1:39:3 | BarsController | | app/controllers/photos_controller.rb:1:1:4:3 | PhotosController | @@ -12,6 +13,8 @@ actionControllerActionMethods | ActiveRecord.rb:42:3:47:5 | some_other_request_handler | | ActiveRecord.rb:49:3:63:5 | safe_paths | | ActiveRecord.rb:67:3:69:5 | yet_another_handler | +| ActiveRecord.rb:73:3:75:5 | index | +| ActiveRecord.rb:77:3:79:5 | unsafe_action | | app/controllers/comments_controller.rb:2:3:3:5 | index | | app/controllers/comments_controller.rb:5:3:6:5 | show | | app/controllers/foo/bars_controller.rb:5:3:7:5 | index | @@ -38,6 +41,7 @@ paramsCalls | ActiveRecord.rb:59:12:59:17 | call to params | | ActiveRecord.rb:62:15:62:20 | call to params | | ActiveRecord.rb:68:21:68:26 | call to params | +| ActiveRecord.rb:78:59:78:64 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | | app/controllers/foo/bars_controller.rb:14:10:14:15 | call to params | | app/controllers/foo/bars_controller.rb:21:21:21:26 | call to params | @@ -57,6 +61,7 @@ paramsSources | ActiveRecord.rb:59:12:59:17 | call to params | | ActiveRecord.rb:62:15:62:20 | call to params | | ActiveRecord.rb:68:21:68:26 | call to params | +| ActiveRecord.rb:78:59:78:64 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | | app/controllers/foo/bars_controller.rb:14:10:14:15 | call to params | | app/controllers/foo/bars_controller.rb:21:21:21:26 | call to params | From 7c3cadc9b6c7b2556f9a76b469b3f36f97133415 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 11 Jul 2022 10:40:45 +0200 Subject: [PATCH 308/736] Swift: extract `OpenedArchetypeType` --- swift/extractor/visitors/TypeVisitor.cpp | 7 +++++- swift/extractor/visitors/TypeVisitor.h | 1 + .../OpenedArchetypeType/MISSING_SOURCE.txt | 4 --- .../OpenedArchetypeType.expected | 1 + .../OpenedArchetypeType.ql | 13 ++++++++++ .../OpenedArchetypeType_getProtocol.expected | 2 ++ .../OpenedArchetypeType_getProtocol.ql | 7 ++++++ ...OpenedArchetypeType_getSuperclass.expected | 1 + .../OpenedArchetypeType_getSuperclass.ql | 7 ++++++ .../opened_archetypes.swift | 25 +++++++++++++++++++ 10 files changed, 63 insertions(+), 5 deletions(-) delete mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected create mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql create mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.expected create mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql create mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.expected create mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql create mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/opened_archetypes.swift diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index 4b6733312d3..945ef5693ce 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -367,5 +367,10 @@ codeql::BuiltinVectorType TypeVisitor::translateBuiltinVectorType( const swift::BuiltinVectorType& type) { return createTypeEntry(type); } - +codeql::OpenedArchetypeType TypeVisitor::translateOpenedArchetypeType( + const swift::OpenedArchetypeType& type) { + auto entry = createTypeEntry(type); + fillArchetypeType(type, entry); + return entry; +} } // namespace codeql diff --git a/swift/extractor/visitors/TypeVisitor.h b/swift/extractor/visitors/TypeVisitor.h index 77ae8ee13bf..61ec7796cf9 100644 --- a/swift/extractor/visitors/TypeVisitor.h +++ b/swift/extractor/visitors/TypeVisitor.h @@ -68,6 +68,7 @@ class TypeVisitor : public TypeVisitorBase { codeql::BuiltinUnsafeValueBufferType translateBuiltinUnsafeValueBufferType( const swift::BuiltinUnsafeValueBufferType& type); codeql::BuiltinVectorType translateBuiltinVectorType(const swift::BuiltinVectorType& type); + codeql::OpenedArchetypeType translateOpenedArchetypeType(const swift::OpenedArchetypeType& type); private: void fillType(const swift::TypeBase& type, codeql::Type& entry); diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected new file mode 100644 index 00000000000..f6c15bca419 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected @@ -0,0 +1 @@ +| C & P1 & P2 | getName: | C & P1 & P2 | getCanonicalType: | C & P1 & P2 | getInterfaceType: | \u03c4_0_0 | diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql new file mode 100644 index 00000000000..b558c08f666 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql @@ -0,0 +1,13 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from OpenedArchetypeType x, string getName, Type getCanonicalType, Type getInterfaceType +where + toBeTested(x) and + not x.isUnknown() and + getName = x.getName() and + getCanonicalType = x.getCanonicalType() and + getInterfaceType = x.getInterfaceType() +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getInterfaceType:", + getInterfaceType diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.expected b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.expected new file mode 100644 index 00000000000..5899ea9308a --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.expected @@ -0,0 +1,2 @@ +| C & P1 & P2 | 0 | opened_archetypes.swift:3:1:3:14 | P1 | +| C & P1 & P2 | 1 | opened_archetypes.swift:9:1:9:14 | P2 | diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql new file mode 100644 index 00000000000..58fed5dda7b --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from OpenedArchetypeType x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getProtocol(index) diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.expected b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.expected new file mode 100644 index 00000000000..be1cb7dcb05 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.expected @@ -0,0 +1 @@ +| C & P1 & P2 | C | diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql new file mode 100644 index 00000000000..46f00a08c88 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from OpenedArchetypeType x +where toBeTested(x) and not x.isUnknown() +select x, x.getSuperclass() diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/opened_archetypes.swift b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/opened_archetypes.swift new file mode 100644 index 00000000000..93d58b6163f --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/opened_archetypes.swift @@ -0,0 +1,25 @@ +// code inspired by https://github.com/apple/swift-evolution/blob/main/proposals/0352-implicit-open-existentials.md + +protocol P1 {} + +func isFoo(_: T) -> Bool { + return true +} + +protocol P2 {} + +class C {} + +// will be ok with swift 5.7 +// func test(value: any P1 & P2 & C) -> Bool { return isFoo(value) } + +extension P1 { + var isFooMember: Bool { + isFoo(self) + } +} + + +func testMember(value: any P1 & P2 & C) -> Bool { + return value.isFooMember // here the existential type is implicitly "opened" +} From 7d5dd384c374457846a9d1de5f7d8b95947f19ec Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 11 Jul 2022 10:59:00 +0200 Subject: [PATCH 309/736] Swift: extract `UnresolvedPatternExpr` --- swift/codegen/schema.yml | 2 ++ swift/extractor/visitors/ExprVisitor.cpp | 6 ++++++ swift/extractor/visitors/ExprVisitor.h | 5 +++++ swift/extractor/visitors/VisitorBase.h | 2 +- .../ql/lib/codeql/swift/generated/GetImmediateParent.qll | 2 ++ .../codeql/swift/generated/expr/UnresolvedPatternExpr.qll | 8 ++++++++ swift/ql/lib/swift.dbscheme | 3 ++- 7 files changed, 26 insertions(+), 2 deletions(-) diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index 01bb0c2feba..96da8c96936 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -561,6 +561,8 @@ UnresolvedMemberExpr: UnresolvedPatternExpr: _extends: Expr _pragma: qltest_skip # we should really never extract these + _children: + sub_pattern: Pattern UnresolvedSpecializeExpr: _extends: Expr diff --git a/swift/extractor/visitors/ExprVisitor.cpp b/swift/extractor/visitors/ExprVisitor.cpp index e6aabef4cea..90ca0a168ee 100644 --- a/swift/extractor/visitors/ExprVisitor.cpp +++ b/swift/extractor/visitors/ExprVisitor.cpp @@ -667,5 +667,11 @@ void ExprVisitor::emitLookupExpr(const swift::LookupExpr* expr, TrapLabel { codeql::BridgeFromObjCExpr translateBridgeFromObjCExpr(const swift::BridgeFromObjCExpr& expr); codeql::DotSelfExpr translateDotSelfExpr(const swift::DotSelfExpr& expr); codeql::ErrorExpr translateErrorExpr(const swift::ErrorExpr& expr); + // following requires non-const because: + // * `swift::UnresolvedPatternExpr::getSubPattern` gives `const swift::Pattern*` on const refs + // * `swift::ASTVisitor` only visits non-const pointers + // either we accept this, or we fix constness by providing our own const visiting in VisitorBase + codeql::UnresolvedPatternExpr translateUnresolvedPatternExpr(swift::UnresolvedPatternExpr& expr); private: void fillAbstractClosureExpr(const swift::AbstractClosureExpr& expr, diff --git a/swift/extractor/visitors/VisitorBase.h b/swift/extractor/visitors/VisitorBase.h index 8402e8924af..b835492d00d 100644 --- a/swift/extractor/visitors/VisitorBase.h +++ b/swift/extractor/visitors/VisitorBase.h @@ -29,7 +29,7 @@ class VisitorBase { public: \ void visit##CLASS##KIND(swift::CLASS##KIND* e) { \ using TranslateResult = std::invoke_result_t; \ + CrtpSubclass, swift::CLASS##KIND&>; \ constexpr bool hasTranslateImplementation = !std::is_same_v; \ if constexpr (hasTranslateImplementation) { \ dispatcher_.emit(static_cast(this)->translate##CLASS##KIND(*e)); \ diff --git a/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll b/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll index aaf3dec16bd..4cecd1a3ce6 100644 --- a/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll +++ b/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll @@ -144,6 +144,8 @@ Element getAnImmediateChild(Element e) { or unresolved_dot_exprs(e, x, _) or + unresolved_pattern_exprs(e, x) + or vararg_expansion_exprs(e, x) or binding_patterns(e, x) diff --git a/swift/ql/lib/codeql/swift/generated/expr/UnresolvedPatternExpr.qll b/swift/ql/lib/codeql/swift/generated/expr/UnresolvedPatternExpr.qll index 8d03b2079aa..ae62f2df23b 100644 --- a/swift/ql/lib/codeql/swift/generated/expr/UnresolvedPatternExpr.qll +++ b/swift/ql/lib/codeql/swift/generated/expr/UnresolvedPatternExpr.qll @@ -1,6 +1,14 @@ // generated by codegen/codegen.py import codeql.swift.elements.expr.Expr +import codeql.swift.elements.pattern.Pattern class UnresolvedPatternExprBase extends @unresolved_pattern_expr, Expr { override string getAPrimaryQlClass() { result = "UnresolvedPatternExpr" } + + Pattern getSubPattern() { + exists(Pattern x | + unresolved_pattern_exprs(this, x) and + result = x.resolve() + ) + } } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 83ee8412131..c12e00e028d 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -1141,7 +1141,8 @@ unresolved_member_exprs( //dir=expr ); unresolved_pattern_exprs( //dir=expr - unique int id: @unresolved_pattern_expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern ref ); unresolved_specialize_exprs( //dir=expr From 6b2154eb8b464b58e44f3416824fe0bdd2285f35 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 11 Jul 2022 11:54:48 +0200 Subject: [PATCH 310/736] C++: Add tests for `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` --- .../controlflow/nullness/nullness.expected | 15 ++++++++++++ .../controlflow/nullness/nullness.ql | 9 ++++++++ .../controlflow/nullness/test.cpp | 23 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 cpp/ql/test/library-tests/controlflow/nullness/nullness.expected create mode 100644 cpp/ql/test/library-tests/controlflow/nullness/nullness.ql create mode 100644 cpp/ql/test/library-tests/controlflow/nullness/test.cpp diff --git a/cpp/ql/test/library-tests/controlflow/nullness/nullness.expected b/cpp/ql/test/library-tests/controlflow/nullness/nullness.expected new file mode 100644 index 00000000000..db5c795fd5b --- /dev/null +++ b/cpp/ql/test/library-tests/controlflow/nullness/nullness.expected @@ -0,0 +1,15 @@ +| test.cpp:9:9:9:9 | v | test.cpp:5:13:5:13 | v | is not null | is valid | +| test.cpp:10:9:10:10 | ! ... | test.cpp:5:13:5:13 | v | is null | is not valid | +| test.cpp:11:9:11:14 | ... == ... | test.cpp:5:13:5:13 | v | is null | is not valid | +| test.cpp:12:9:12:17 | ... == ... | test.cpp:5:13:5:13 | v | is not null | is valid | +| test.cpp:13:9:13:14 | ... != ... | test.cpp:5:13:5:13 | v | is not null | is valid | +| test.cpp:14:9:14:17 | ... != ... | test.cpp:5:13:5:13 | v | is null | is not valid | +| test.cpp:15:8:15:23 | call to __builtin_expect | test.cpp:5:13:5:13 | v | is not null | is valid | +| test.cpp:16:8:16:23 | call to __builtin_expect | test.cpp:5:13:5:13 | v | is null | is not valid | +| test.cpp:17:9:17:17 | ... && ... | test.cpp:5:13:5:13 | v | is not null | is valid | +| test.cpp:18:9:18:17 | ... && ... | test.cpp:5:13:5:13 | v | is not null | is not valid | +| test.cpp:19:9:19:18 | ... && ... | test.cpp:5:13:5:13 | v | is null | is not valid | +| test.cpp:20:9:20:18 | ... && ... | test.cpp:5:13:5:13 | v | is not null | is not valid | +| test.cpp:21:9:21:14 | ... = ... | test.cpp:5:13:5:13 | v | is null | is not valid | +| test.cpp:21:9:21:14 | ... = ... | test.cpp:7:10:7:10 | b | is not null | is valid | +| test.cpp:22:17:22:17 | b | test.cpp:7:10:7:10 | b | is not null | is valid | diff --git a/cpp/ql/test/library-tests/controlflow/nullness/nullness.ql b/cpp/ql/test/library-tests/controlflow/nullness/nullness.ql new file mode 100644 index 00000000000..ed1ba15aa2b --- /dev/null +++ b/cpp/ql/test/library-tests/controlflow/nullness/nullness.ql @@ -0,0 +1,9 @@ +import cpp + +from AnalysedExpr a, LocalScopeVariable v, string isNullCheck, string isValidCheck +where + a.getParent() instanceof IfStmt and + v.getAnAccess().getEnclosingStmt() = a.getParent() and + (if a.isNullCheck(v) then isNullCheck = "is null" else isNullCheck = "is not null") and + (if a.isValidCheck(v) then isValidCheck = "is valid" else isValidCheck = "is not valid") +select a, v, isNullCheck, isValidCheck diff --git a/cpp/ql/test/library-tests/controlflow/nullness/test.cpp b/cpp/ql/test/library-tests/controlflow/nullness/test.cpp new file mode 100644 index 00000000000..03369c811d5 --- /dev/null +++ b/cpp/ql/test/library-tests/controlflow/nullness/test.cpp @@ -0,0 +1,23 @@ +// semmle-extractor-options: -std=c++17 + +long __builtin_expect(long); + +void f(int *v) { + int *w; + bool b; + + if (v) {} + if (!v) {} + if (v == 0) {} + if ((!v) == 0) {} + if (v != 0) {} + if ((!v) != 0) {} + if(__builtin_expect((long)v)) {} + if(__builtin_expect((long)!v)) {} + if (true && v) {} + if (v && true) {} + if (true && !v) {} + if (!v && true) {} + if (b = !v) {} + if (b = !v; b) {} +} From 74641ccfee54e6c7fd824b9ffc9726cd6f3c2291 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 11 Jul 2022 11:01:19 +0100 Subject: [PATCH 311/736] Simplify test for no-arg constructor --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index 7f1ec039d20..a109e945343 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -24,7 +24,7 @@ predicate isCreatingOutdatedAzureClientSideEncryptionObject(Call call, Class c) ( type = "EncryptedBlobClientBuilder" and package = "com.azure.storage.blob.specialized.cryptography" and - not exists(Expr e | e = call.getArgument(0)) + constructor.hasNoParameters() or type = "BlobEncryptionPolicy" and package = "com.microsoft.azure.storage.blob" ) From 9ed7aa9fae85df1a40c65f6bcd89fcd52ea45926 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 11 Jul 2022 12:52:23 +0200 Subject: [PATCH 312/736] exclude variables in .vue files form js/unused-local-variable --- javascript/ql/src/Declarations/UnusedVariable.ql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/javascript/ql/src/Declarations/UnusedVariable.ql b/javascript/ql/src/Declarations/UnusedVariable.ql index 254c8c206b1..f678c7d5b19 100644 --- a/javascript/ql/src/Declarations/UnusedVariable.ql +++ b/javascript/ql/src/Declarations/UnusedVariable.ql @@ -144,6 +144,9 @@ predicate whitelisted(UnusedLocal v) { // exclude variables mentioned in JSDoc comments in externs mentionedInJSDocComment(v) or + // the attributes in .vue files are not extracted, so we can get false positives in those. + v.getADeclaration().getFile().getExtension() = "vue" + or // exclude variables used to filter out unwanted properties isPropertyFilter(v) or From aa07600f5a5694b6739ae2fa15474fd7fc99b4ec Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Fri, 1 Jul 2022 12:20:26 +0100 Subject: [PATCH 313/736] Java: Update stats --- java/ql/lib/config/semmlecode.dbscheme.stats | 4260 +++++++++--------- 1 file changed, 2165 insertions(+), 2095 deletions(-) diff --git a/java/ql/lib/config/semmlecode.dbscheme.stats b/java/ql/lib/config/semmlecode.dbscheme.stats index 2fc1431a73f..0490619a996 100644 --- a/java/ql/lib/config/semmlecode.dbscheme.stats +++ b/java/ql/lib/config/semmlecode.dbscheme.stats @@ -1,20 +1,20 @@ - - @diagnostic - 634718 - - - @externalDataElement - 1 - @javacompilation 8629 @kotlincompilation - 6824 + 6822 + + + @diagnostic + 624933 + + + @externalDataElement + 1 @duplication @@ -26,27 +26,31 @@ @file - 8020653 + 8017700 @folder - 1280356 + 1279884 @package - 612878 + 612652 @primitive - 12284 + 12280 @modifier - 12284 + 13644 + + + @errortype + 1 @class - 12579704 + 12579165 @kt_nullable_type @@ -54,7 +58,7 @@ @kt_notnull_type - 193427 + 194340 @kt_type_alias @@ -66,27 +70,27 @@ @fielddecl - 399940 + 399793 @field - 27583622 + 27573466 @constructor - 6889080 + 6886544 @method - 93482380 - - - @location_default - 431212495 + 93447961 @param - 101137218 + 101099980 + + + @location_default + 431053728 @exception @@ -94,19 +98,19 @@ @typevariable - 5118694 + 5116810 @wildcard - 3116261 + 3637710 @typebound - 3872463 + 4393634 @array - 1119287 + 1118875 @import @@ -114,7 +118,7 @@ @block - 846290 + 845979 @ifstmt @@ -130,7 +134,7 @@ @whilestmt - 19743 + 19739 @dostmt @@ -146,11 +150,11 @@ @synchronizedstmt - 18562 + 18706 @returnstmt - 675212 + 675118 @throwstmt @@ -182,7 +186,7 @@ @localtypedeclstmt - 4069 + 4110 @constructorinvocationstmt @@ -190,7 +194,7 @@ @superconstructorinvocationstmt - 225902 + 226569 @case @@ -202,7 +206,7 @@ @labeledstmt - 2443 + 2518 @yieldstmt @@ -214,7 +218,7 @@ @whenbranch - 238370 + 233347 @arrayaccess @@ -334,7 +338,7 @@ @andlogicalexpr - 41441 + 41715 @orlogicalexpr @@ -410,7 +414,7 @@ @instanceofexpr - 31274 + 31086 @localvariabledeclexpr @@ -418,11 +422,11 @@ @typeliteral - 147176 + 148317 @thisaccess - 952512 + 952380 @superaccess @@ -434,11 +438,11 @@ @methodaccess - 1551591 + 1551738 @unannotatedtypeaccess - 2874591 + 2867985 @arraytypeaccess @@ -486,7 +490,7 @@ @lambdaexpr - 185816 + 186985 @memberref @@ -514,7 +518,7 @@ @whenexpr - 172153 + 172129 @getclassexpr @@ -522,35 +526,35 @@ @safecastexpr - 6986 + 6943 @implicitcastexpr - 33111 + 32911 @implicitnotnullexpr - 241008 + 239473 @implicitcoerciontounitexpr - 93086 + 92272 @notinstanceofexpr - 19586 + 19583 @stmtexpr - 58107 + 57757 @stringtemplateexpr - 55964 + 55943 @notnullexpr - 21375 + 21370 @unsafecoerceexpr @@ -558,15 +562,15 @@ @valueeqexpr - 103390 + 104218 @valueneexpr - 108240 + 108225 @propertyref - 9721 + 9663 @localvar @@ -610,7 +614,7 @@ @xmlelement - 106792352 + 106753032 @javadocText @@ -618,19 +622,19 @@ @xmlattribute - 129898822 + 129850995 @xmlnamespace - 8189 + 8186 @xmlcomment - 107485764 + 107446189 @xmlcharacters - 101574013 + 101536615 @config @@ -646,15 +650,15 @@ @ktcomment - 133768 + 133719 @ktcommentsection - 59246 + 59191 @kt_property - 30317687 + 30306525 @@ -876,30 +880,30 @@ compilation_started - 6824 + 6822 id - 6824 + 6822 compilation_args - 158338 + 158279 id - 6824 + 6822 num - 38219 + 38205 arg - 90089 + 90055 @@ -913,7 +917,7 @@ 20 21 - 2729 + 2728 23 @@ -944,7 +948,7 @@ 20 21 - 2729 + 2728 23 @@ -975,22 +979,22 @@ 1 2 - 4094 + 4093 2 3 - 2729 + 2728 3 4 - 4094 + 4093 5 6 - 27299 + 27289 @@ -1006,27 +1010,27 @@ 1 2 - 8189 + 8186 2 3 - 5459 + 5457 3 4 - 10919 + 10915 4 5 - 6824 + 6822 5 6 - 6824 + 6822 @@ -1042,22 +1046,22 @@ 1 2 - 69614 + 69588 2 3 - 2729 + 2728 4 5 - 6824 + 6822 5 6 - 10919 + 10915 @@ -1073,17 +1077,17 @@ 1 2 - 72344 + 72317 2 3 - 15014 + 15009 4 5 - 2729 + 2728 @@ -1093,19 +1097,19 @@ compilation_compiling_files - 60660 + 61130 id - 2320 + 2338 num - 17899 + 18038 file - 50716 + 51109 @@ -1119,22 +1123,22 @@ 1 2 - 331 + 334 2 3 - 662 + 668 35 36 - 662 + 668 54 55 - 662 + 668 @@ -1150,22 +1154,22 @@ 1 2 - 331 + 334 2 3 - 662 + 668 35 36 - 662 + 668 54 55 - 662 + 668 @@ -1181,17 +1185,17 @@ 2 3 - 6298 + 6346 4 5 - 10938 + 11023 6 8 - 662 + 668 @@ -1207,17 +1211,17 @@ 2 3 - 6298 + 6346 3 4 - 9944 + 10021 4 8 - 1657 + 1670 @@ -1233,12 +1237,12 @@ 1 2 - 40771 + 41087 2 3 - 9944 + 10021 @@ -1254,7 +1258,7 @@ 1 2 - 50716 + 51109 @@ -1264,19 +1268,19 @@ compilation_compiling_files_completed - 60660 + 61130 id - 2320 + 2338 num - 17899 + 18038 result - 331 + 668 @@ -1290,22 +1294,22 @@ 1 2 - 331 + 334 2 3 - 662 + 668 35 36 - 662 + 668 54 55 - 662 + 668 @@ -1321,7 +1325,12 @@ 1 2 - 2320 + 1670 + + + 2 + 3 + 668 @@ -1337,17 +1346,17 @@ 2 3 - 6298 + 6346 4 5 - 10938 + 11023 6 8 - 662 + 668 @@ -1363,7 +1372,12 @@ 1 2 - 17899 + 17704 + + + 2 + 3 + 334 @@ -1376,10 +1390,15 @@ 12 + + 2 + 3 + 334 + 7 8 - 331 + 334 @@ -1392,10 +1411,15 @@ 12 + + 1 + 2 + 334 + 54 55 - 331 + 334 @@ -1826,23 +1850,23 @@ diagnostic_for - 634718 + 624933 diagnostic - 634718 + 624933 compilation - 6824 + 6822 file_number - 8189 + 8186 file_number_diagnostic_number - 60059 + 60037 @@ -1856,7 +1880,7 @@ 1 2 - 634718 + 624933 @@ -1872,7 +1896,7 @@ 1 2 - 634718 + 624933 @@ -1888,7 +1912,7 @@ 1 2 - 634718 + 624933 @@ -1907,18 +1931,18 @@ 1364 - 86 - 87 + 84 + 85 1364 100 101 - 2729 + 2728 - 106 - 107 + 101 + 102 1364 @@ -1935,7 +1959,7 @@ 3 4 - 2729 + 2728 4 @@ -1969,8 +1993,8 @@ 1364 - 36 - 37 + 34 + 35 1364 @@ -1979,8 +2003,8 @@ 1364 - 43 - 44 + 41 + 42 1364 @@ -2005,23 +2029,23 @@ 1364 - 32 - 33 + 34 + 35 1364 - 49 - 50 + 48 + 49 1364 - 106 - 107 + 100 + 101 1364 - 130 - 131 + 128 + 129 1364 @@ -2058,7 +2082,7 @@ 5 6 - 4094 + 4093 @@ -2082,8 +2106,13 @@ 1364 - 36 - 37 + 34 + 35 + 1364 + + + 40 + 41 1364 @@ -2091,11 +2120,6 @@ 42 1364 - - 43 - 44 - 1364 - 44 45 @@ -2114,63 +2138,63 @@ 1 + 3 + 5457 + + + 3 4 - 5459 + 1364 4 5 - 5459 + 5457 5 - 7 - 2729 + 6 + 1364 7 8 - 6824 + 6822 8 9 - 4094 + 4093 9 10 - 6824 + 9551 10 - 12 - 4094 - - - 12 14 - 4094 + 5457 15 16 - 2729 + 4093 16 17 - 9554 + 6822 - 17 + 18 20 - 4094 + 5457 20 22 - 4094 + 4093 @@ -2186,22 +2210,22 @@ 1 3 - 5459 + 5457 3 4 - 5459 + 8186 4 5 - 9554 + 6822 5 6 - 39584 + 39569 @@ -2217,27 +2241,27 @@ 1 3 - 4094 + 5457 3 4 - 6824 + 8186 4 5 - 28664 + 25925 5 6 - 13649 + 13644 6 7 - 6824 + 6822 @@ -2247,11 +2271,11 @@ compilation_compiler_times - 6824 + 6822 id - 6824 + 6822 cpu_seconds @@ -2259,7 +2283,7 @@ elapsed_seconds - 6824 + 6822 @@ -2273,7 +2297,7 @@ 1 2 - 6824 + 6822 @@ -2289,7 +2313,7 @@ 1 2 - 6824 + 6822 @@ -2337,7 +2361,7 @@ 1 2 - 6824 + 6822 @@ -2353,7 +2377,7 @@ 1 2 - 6824 + 6822 @@ -2579,11 +2603,11 @@ diagnostics - 634718 + 624933 id - 634718 + 624933 generated_by @@ -2599,11 +2623,11 @@ error_message - 96913 + 95513 full_error_message - 499584 + 502129 location @@ -2621,7 +2645,7 @@ 1 2 - 634718 + 624933 @@ -2637,7 +2661,7 @@ 1 2 - 634718 + 624933 @@ -2653,7 +2677,7 @@ 1 2 - 634718 + 624933 @@ -2669,7 +2693,7 @@ 1 2 - 634718 + 624933 @@ -2685,7 +2709,7 @@ 1 2 - 634718 + 624933 @@ -2701,7 +2725,7 @@ 1 2 - 634718 + 624933 @@ -2715,8 +2739,8 @@ 12 - 465 - 466 + 458 + 459 1364 @@ -2763,8 +2787,8 @@ 12 - 71 - 72 + 70 + 71 1364 @@ -2779,8 +2803,8 @@ 12 - 366 - 367 + 368 + 369 1364 @@ -2811,8 +2835,8 @@ 12 - 465 - 466 + 458 + 459 1364 @@ -2859,8 +2883,8 @@ 12 - 71 - 72 + 70 + 71 1364 @@ -2875,8 +2899,8 @@ 12 - 366 - 367 + 368 + 369 1364 @@ -2907,8 +2931,8 @@ 12 - 465 - 466 + 458 + 459 1364 @@ -2955,8 +2979,8 @@ 12 - 71 - 72 + 70 + 71 1364 @@ -2971,8 +2995,8 @@ 12 - 366 - 367 + 368 + 369 1364 @@ -3005,67 +3029,62 @@ 1 2 - 19109 + 19102 2 3 - 6824 + 5457 3 4 - 13649 + 12280 4 5 - 4094 + 5457 5 6 - 5459 + 5457 6 7 - 6824 + 6822 7 8 - 2729 + 2728 8 9 - 9554 + 9551 9 10 - 5459 + 6822 10 11 - 6824 + 8186 - 13 - 15 - 5459 + 14 + 17 + 6822 - 16 - 19 - 8189 - - - 20 + 17 21 - 2729 + 6822 @@ -3081,7 +3100,7 @@ 1 2 - 96913 + 95513 @@ -3097,7 +3116,7 @@ 1 2 - 96913 + 95513 @@ -3113,7 +3132,7 @@ 1 2 - 96913 + 95513 @@ -3129,52 +3148,62 @@ 1 2 - 23204 + 21831 2 3 - 5459 + 5457 3 4 - 13649 + 12280 4 + 5 + 5457 + + + 5 6 - 8189 + 4093 6 7 - 6824 + 8186 7 8 - 6824 + 12280 8 9 - 16379 + 6822 9 10 - 2729 + 4093 10 11 - 6824 + 5457 11 12 - 6824 + 5457 + + + 12 + 13 + 4093 @@ -3190,7 +3219,7 @@ 1 2 - 96913 + 95513 @@ -3206,17 +3235,17 @@ 1 2 - 409495 + 418896 2 3 - 49139 + 49121 3 5 - 40949 + 34112 @@ -3232,7 +3261,7 @@ 1 2 - 499584 + 502129 @@ -3248,7 +3277,7 @@ 1 2 - 499584 + 502129 @@ -3264,7 +3293,7 @@ 1 2 - 499584 + 502129 @@ -3280,7 +3309,7 @@ 1 2 - 499584 + 502129 @@ -3296,7 +3325,7 @@ 1 2 - 499584 + 502129 @@ -3310,8 +3339,8 @@ 12 - 465 - 466 + 458 + 459 1364 @@ -3374,8 +3403,8 @@ 12 - 71 - 72 + 70 + 71 1364 @@ -3390,8 +3419,8 @@ 12 - 366 - 367 + 368 + 369 1364 @@ -4848,31 +4877,31 @@ locations_default - 431212495 + 431053728 id - 431212495 + 431053728 file - 8020653 + 8017700 beginLine - 2802314 + 2801282 beginColumn - 176083 + 176018 endLine - 2803679 + 2802647 endColumn - 621068 + 620839 @@ -4886,7 +4915,7 @@ 1 2 - 431212495 + 431053728 @@ -4902,7 +4931,7 @@ 1 2 - 431212495 + 431053728 @@ -4918,7 +4947,7 @@ 1 2 - 431212495 + 431053728 @@ -4934,7 +4963,7 @@ 1 2 - 431212495 + 431053728 @@ -4950,7 +4979,7 @@ 1 2 - 431212495 + 431053728 @@ -4966,17 +4995,17 @@ 1 2 - 7179822 + 7177178 2 20 - 604688 + 604465 20 3605 - 236142 + 236055 @@ -4992,17 +5021,17 @@ 1 2 - 7179822 + 7177178 2 15 - 601958 + 601736 15 1830 - 238872 + 238784 @@ -5018,17 +5047,17 @@ 1 2 - 7179822 + 7177178 2 7 - 629258 + 629026 7 105 - 211572 + 211494 @@ -5044,17 +5073,17 @@ 1 2 - 7179822 + 7177178 2 18 - 601958 + 601736 18 1834 - 238872 + 238784 @@ -5070,17 +5099,17 @@ 1 2 - 7179822 + 7177178 2 15 - 604688 + 604465 15 205 - 236142 + 236055 @@ -5096,67 +5125,67 @@ 1 14 - 222492 + 222410 14 125 - 215667 + 215588 125 142 - 215667 + 215588 142 152 - 223857 + 223775 152 159 - 249792 + 249700 159 165 - 257982 + 257887 165 170 - 226587 + 226504 170 174 - 217032 + 216952 174 179 - 229317 + 229233 179 185 - 214302 + 214223 185 194 - 222492 + 222410 194 215 - 215667 + 215588 215 5877 - 91454 + 91420 @@ -5172,67 +5201,67 @@ 1 7 - 229317 + 229233 7 65 - 212937 + 212859 65 73 - 217032 + 216952 73 78 - 207477 + 207401 78 81 - 191097 + 191027 81 84 - 249792 + 249700 84 86 - 215667 + 215588 86 88 - 257982 + 257887 88 90 - 222492 + 222410 90 93 - 248427 + 248335 93 97 - 218397 + 218317 97 106 - 214302 + 214223 106 5877 - 117388 + 117345 @@ -5248,62 +5277,62 @@ 1 5 - 222492 + 222410 5 17 - 196557 + 196485 17 19 - 167893 + 167831 19 20 - 214302 + 214223 20 21 - 268902 + 268803 21 22 - 283916 + 283812 22 23 - 330326 + 330204 23 24 - 304391 + 304279 24 25 - 236142 + 236055 25 26 - 170623 + 170560 26 28 - 212937 + 212859 28 45 - 193827 + 193756 @@ -5319,32 +5348,32 @@ 1 2 - 904985 + 904652 2 3 - 896795 + 896465 3 4 - 483204 + 483026 4 5 - 211572 + 211494 5 11 - 221127 + 221046 11 97 - 84629 + 84597 @@ -5360,72 +5389,72 @@ 1 13 - 219762 + 219681 13 60 - 210207 + 210130 60 64 - 223857 + 223775 64 66 - 210207 + 210130 66 68 - 259347 + 259251 68 69 - 131038 + 130990 69 70 - 155608 + 155551 70 71 - 135133 + 135083 71 73 - 236142 + 236055 73 75 - 212937 + 212859 75 78 - 234777 + 234691 78 82 - 252522 + 252429 82 89 - 214302 + 214223 89 104 - 106468 + 106429 @@ -5441,67 +5470,67 @@ 1 11 - 15014 + 15009 15 34 - 15014 + 15009 36 58 - 13649 + 13644 63 88 - 13649 + 13644 89 132 - 13649 + 13644 141 196 - 15014 + 15009 210 285 - 13649 + 13644 316 468 - 13649 + 13644 496 853 - 13649 + 13644 899 1420 - 13649 + 13644 1472 2256 - 13649 + 13644 2300 2526 - 13649 + 13644 2589 226687 - 8189 + 8186 @@ -5517,72 +5546,72 @@ 1 9 - 9554 + 9551 9 11 - 13649 + 13644 12 16 - 8189 + 8186 16 19 - 13649 + 13644 19 31 - 13649 + 13644 35 73 - 13649 + 13644 73 83 - 13649 + 13644 85 104 - 15014 + 15009 104 110 - 10919 + 10915 110 114 - 15014 + 15009 115 119 - 13649 + 13644 119 121 - 12284 + 12280 121 126 - 13649 + 13644 126 5877 - 9554 + 9551 @@ -5598,67 +5627,67 @@ 1 10 - 15014 + 15009 10 29 - 13649 + 13644 29 43 - 13649 + 13644 45 58 - 13649 + 13644 58 85 - 13649 + 13644 86 106 - 13649 + 13644 108 167 - 13649 + 13644 171 227 - 13649 + 13644 231 379 - 13649 + 13644 383 650 - 13649 + 13644 651 891 - 13649 + 13644 940 1086 - 13649 + 13644 1093 2051 - 10919 + 10915 @@ -5674,67 +5703,67 @@ 1 10 - 15014 + 15009 10 30 - 13649 + 13644 30 43 - 13649 + 13644 46 59 - 13649 + 13644 60 87 - 13649 + 13644 87 109 - 13649 + 13644 115 173 - 13649 + 13644 174 226 - 13649 + 13644 230 380 - 13649 + 13644 383 650 - 13649 + 13644 653 892 - 13649 + 13644 940 1084 - 13649 + 13644 1092 2051 - 10919 + 10915 @@ -5750,67 +5779,67 @@ 1 8 - 15014 + 15009 8 17 - 13649 + 13644 18 25 - 10919 + 10915 25 30 - 13649 + 13644 30 36 - 13649 + 13644 36 44 - 13649 + 13644 45 56 - 12284 + 12280 57 64 - 13649 + 13644 64 73 - 13649 + 13644 73 86 - 13649 + 13644 86 106 - 13649 + 13644 107 129 - 13649 + 13644 129 197 - 13649 + 13644 392 @@ -5831,67 +5860,67 @@ 1 14 - 221127 + 221046 14 124 - 215667 + 215588 124 143 - 218397 + 218317 143 152 - 236142 + 236055 152 159 - 223857 + 223775 159 165 - 257982 + 257887 165 170 - 240237 + 240148 170 174 - 222492 + 222410 174 179 - 222492 + 222410 179 185 - 211572 + 211494 185 194 - 217032 + 216952 194 217 - 212937 + 212859 217 5877 - 103738 + 103700 @@ -5907,67 +5936,67 @@ 1 7 - 232047 + 231962 7 66 - 225222 + 225139 66 74 - 227952 + 227868 74 80 - 251157 + 251064 80 83 - 241602 + 241513 83 85 - 185637 + 185569 85 87 - 247062 + 246971 87 89 - 247062 + 246971 89 91 - 188367 + 188298 91 94 - 248427 + 248335 94 99 - 226587 + 226504 99 127 - 212937 + 212859 127 5877 - 69614 + 69588 @@ -5983,32 +6012,32 @@ 1 2 - 711157 + 710895 2 3 - 989614 + 989249 3 4 - 644273 + 644035 4 6 - 237507 + 237419 6 18 - 212937 + 212859 18 22 - 8189 + 8186 @@ -6024,62 +6053,62 @@ 1 5 - 219762 + 219681 5 17 - 199287 + 199214 17 19 - 163798 + 163737 19 20 - 192462 + 192392 20 21 - 281186 + 281083 21 22 - 272997 + 272896 22 23 - 330326 + 330204 23 24 - 307121 + 307008 24 25 - 225222 + 225139 25 26 - 184273 + 184205 26 28 - 223857 + 223775 28 44 - 203382 + 203307 @@ -6095,72 +6124,72 @@ 1 13 - 222492 + 222410 13 61 - 251157 + 251064 61 64 - 173353 + 173289 64 66 - 218397 + 218317 66 68 - 251157 + 251064 68 69 - 137863 + 137812 69 70 - 137863 + 137812 70 71 - 158338 + 158279 71 73 - 232047 + 231962 73 75 - 192462 + 192392 75 77 - 184273 + 184205 77 80 - 211572 + 211494 80 85 - 227952 + 227868 85 119 - 204747 + 204672 @@ -6176,57 +6205,57 @@ 1 2 - 146053 + 145999 2 3 - 64154 + 64130 3 5 - 50504 + 50485 5 13 - 50504 + 50485 13 53 - 47774 + 47756 53 146 - 47774 + 47756 146 351 - 47774 + 47756 357 997 - 47774 + 47756 1053 2396 - 47774 + 47756 2407 4957 - 47774 + 47756 5022 5934 - 23204 + 23196 @@ -6242,57 +6271,57 @@ 1 2 - 151513 + 151457 2 3 - 61424 + 61401 3 5 - 53234 + 53214 5 13 - 50504 + 50485 13 42 - 47774 + 47756 42 77 - 47774 + 47756 77 103 - 51869 + 51850 103 116 - 47774 + 47756 116 144 - 49139 + 49121 144 181 - 47774 + 47756 181 5877 - 12284 + 12280 @@ -6308,57 +6337,57 @@ 1 2 - 154243 + 154186 2 3 - 62789 + 62766 3 5 - 49139 + 49121 5 13 - 49139 + 49121 13 52 - 49139 + 49121 52 115 - 47774 + 47756 123 271 - 47774 + 47756 277 658 - 47774 + 47756 669 1200 - 47774 + 47756 1219 1635 - 47774 + 47756 1639 1722 - 17744 + 17738 @@ -6374,47 +6403,47 @@ 1 2 - 195192 + 195121 2 3 - 75074 + 75046 3 6 - 54599 + 54579 6 14 - 54599 + 54579 14 26 - 47774 + 47756 26 36 - 49139 + 49121 36 47 - 49139 + 49121 47 55 - 47774 + 47756 55 68 - 47774 + 47756 @@ -6430,57 +6459,57 @@ 1 2 - 154243 + 154186 2 3 - 61424 + 61401 3 5 - 49139 + 49121 5 13 - 49139 + 49121 13 53 - 50504 + 50485 53 115 - 47774 + 47756 123 271 - 47774 + 47756 280 656 - 47774 + 47756 669 1200 - 47774 + 47756 1217 1638 - 47774 + 47756 1640 1722 - 17744 + 17738 @@ -6490,15 +6519,15 @@ hasLocation - 316110113 + 316902470 locatableid - 315965424 + 316759199 id - 11558695 + 11554439 @@ -6512,12 +6541,12 @@ 1 2 - 315820736 + 316615929 2 3 - 144688 + 143270 @@ -6533,62 +6562,62 @@ 1 2 - 2097982 + 2097209 2 3 - 1008724 + 1008352 3 4 - 719347 + 717717 4 6 - 977329 + 978334 6 7 - 773946 + 773661 7 9 - 1019643 + 1019268 9 12 - 850385 + 848708 12 16 - 925460 + 926483 16 23 - 883145 + 882820 23 39 - 888605 + 888278 39 89 - 874955 + 873268 89 - 9987 - 539169 + 9991 + 540335 @@ -6598,23 +6627,23 @@ numlines - 215080728 + 215001538 element_id - 215080728 + 215001538 num_lines - 432700 + 432541 num_code - 434065 + 433905 num_comment - 1345875 + 1345379 @@ -6628,7 +6657,7 @@ 1 2 - 215080728 + 215001538 @@ -6644,7 +6673,7 @@ 1 2 - 215080728 + 215001538 @@ -6660,7 +6689,7 @@ 1 2 - 215080728 + 215001538 @@ -6676,37 +6705,37 @@ 1 2 - 232047 + 231962 2 3 - 53234 + 53214 3 4 - 45044 + 45027 4 7 - 34124 + 34112 7 14 - 32759 + 32747 15 839 - 32759 + 32747 3519 149603 - 2729 + 2728 @@ -6722,12 +6751,12 @@ 1 2 - 423145 + 422989 2 3 - 9554 + 9551 @@ -6743,27 +6772,27 @@ 1 2 - 274362 + 274261 2 3 - 69614 + 69588 3 4 - 36854 + 36841 4 6 - 34124 + 34112 6 987 - 17744 + 17738 @@ -6779,37 +6808,37 @@ 1 2 - 232047 + 231962 2 3 - 53234 + 53214 3 4 - 45044 + 45027 4 7 - 34124 + 34112 7 14 - 32759 + 32747 15 468 - 32759 + 32747 495 78746 - 4094 + 4093 @@ -6825,7 +6854,7 @@ 1 2 - 432700 + 432541 7 @@ -6846,27 +6875,27 @@ 1 2 - 274362 + 274261 2 3 - 69614 + 69588 3 4 - 36854 + 36841 4 6 - 34124 + 34112 6 987 - 19109 + 19102 @@ -6882,77 +6911,77 @@ 1 7 - 109198 + 109158 7 49 - 101008 + 100971 49 71 - 105103 + 105065 71 78 - 107833 + 107794 78 83 - 103738 + 103700 83 87 - 116023 + 115981 87 89 - 99643 + 99607 89 91 - 95548 + 95513 91 92 - 57329 + 57308 92 93 - 68249 + 68224 93 94 - 75074 + 75046 94 95 - 69614 + 69588 95 97 - 109198 + 109158 97 119 - 101008 + 100971 119 75115 - 27299 + 27289 @@ -6968,22 +6997,22 @@ 1 2 - 1104273 + 1103866 2 3 - 114658 + 114616 3 6 - 102373 + 102336 6 120 - 24569 + 24560 @@ -6999,22 +7028,22 @@ 1 2 - 1104273 + 1103866 2 3 - 114658 + 114616 3 6 - 101008 + 100971 6 121 - 25934 + 25925 @@ -7024,15 +7053,15 @@ files - 8020653 + 8017700 id - 8020653 + 8017700 name - 8020653 + 8017700 @@ -7046,7 +7075,7 @@ 1 2 - 8020653 + 8017700 @@ -7062,7 +7091,7 @@ 1 2 - 8020653 + 8017700 @@ -7072,15 +7101,15 @@ folders - 1280356 + 1279884 id - 1280356 + 1279884 name - 1280356 + 1279884 @@ -7094,7 +7123,7 @@ 1 2 - 1280356 + 1279884 @@ -7110,7 +7139,7 @@ 1 2 - 1280356 + 1279884 @@ -7120,15 +7149,15 @@ containerparent - 9298279 + 9294856 parent - 1321305 + 1320819 child - 9298279 + 9294856 @@ -7142,37 +7171,37 @@ 1 2 - 713887 + 713624 2 3 - 140593 + 140541 3 4 - 79169 + 79139 4 7 - 113293 + 113252 7 14 - 111928 + 111887 14 29 - 102373 + 102336 29 194 - 60059 + 60037 @@ -7188,7 +7217,7 @@ 1 2 - 9298279 + 9294856 @@ -7198,15 +7227,15 @@ cupackage - 7160712 + 7158076 id - 7160712 + 7158076 packageid - 611513 + 611288 @@ -7220,7 +7249,7 @@ 1 2 - 7160712 + 7158076 @@ -7236,52 +7265,52 @@ 1 2 - 148783 + 148728 2 3 - 80534 + 80504 3 4 - 55964 + 55943 4 5 - 42314 + 42298 5 7 - 46409 + 46392 7 10 - 50504 + 50485 10 15 - 50504 + 50485 15 21 - 49139 + 49121 21 36 - 47774 + 47756 39 187 - 39584 + 39569 @@ -8043,15 +8072,15 @@ packages - 612878 + 612652 id - 612878 + 612652 nodeName - 612878 + 612652 @@ -8065,7 +8094,7 @@ 1 2 - 612878 + 612652 @@ -8081,7 +8110,7 @@ 1 2 - 612878 + 612652 @@ -8091,15 +8120,15 @@ primitives - 12284 + 12280 id - 12284 + 12280 nodeName - 12284 + 12280 @@ -8113,7 +8142,7 @@ 1 2 - 12284 + 12280 @@ -8129,7 +8158,7 @@ 1 2 - 12284 + 12280 @@ -8139,15 +8168,15 @@ modifiers - 12284 + 13644 id - 12284 + 13644 nodeName - 12284 + 13644 @@ -8161,7 +8190,7 @@ 1 2 - 12284 + 13644 @@ -8177,7 +8206,7 @@ 1 2 - 12284 + 13644 @@ -8186,24 +8215,35 @@ - classes - 12579704 + error_type + 1 id - 12579704 + 1 + + + + + + classes + 12579165 + + + id + 12579165 nodeName - 6868605 + 6871534 parentid - 443620 + 443456 sourceid - 4519466 + 4517802 @@ -8217,7 +8257,7 @@ 1 2 - 12579704 + 12579165 @@ -8233,7 +8273,7 @@ 1 2 - 12579704 + 12579165 @@ -8249,7 +8289,7 @@ 1 2 - 12579704 + 12579165 @@ -8265,17 +8305,17 @@ 1 2 - 5735668 + 5740378 2 3 - 746646 + 745007 3 236 - 386290 + 386148 @@ -8291,17 +8331,17 @@ 1 2 - 6252997 + 6256153 2 3 - 547359 + 547157 3 52 - 68249 + 68224 @@ -8317,17 +8357,17 @@ 1 2 - 6229792 + 6232956 2 3 - 536439 + 536241 3 160 - 102373 + 102336 @@ -8343,57 +8383,57 @@ 1 2 - 107833 + 107794 2 3 - 54599 + 54579 3 4 - 32759 + 32747 4 5 - 30029 + 30018 5 7 - 34124 + 34112 7 11 - 40949 + 40934 11 17 - 34124 + 34112 17 23 - 34124 + 34112 23 40 - 36854 + 36841 40 707 - 34124 + 34112 1013 - 1412 - 4094 + 1414 + 4093 @@ -8409,52 +8449,52 @@ 1 2 - 107833 + 107794 2 3 - 54599 + 54579 3 4 - 35489 + 35476 4 5 - 34124 + 34112 5 7 - 38219 + 38205 7 11 - 40949 + 40934 11 17 - 36854 + 36841 17 23 - 34124 + 34112 23 40 - 35489 + 35476 40 - 828 - 25934 + 830 + 25925 @@ -8470,52 +8510,52 @@ 1 2 - 118753 + 118709 2 3 - 64154 + 64130 3 4 - 36854 + 36841 4 5 - 34124 + 34112 5 7 - 35489 + 35476 7 11 - 40949 + 40934 11 17 - 34124 + 34112 17 26 - 34124 + 34112 26 56 - 34124 + 34112 64 138 - 10919 + 10915 @@ -8531,17 +8571,17 @@ 1 2 - 4052641 + 4051149 2 11 - 342611 + 342485 11 1358 - 124213 + 124167 @@ -8557,17 +8597,17 @@ 1 2 - 4052641 + 4051149 2 6 - 360356 + 360223 6 783 - 106468 + 106429 @@ -8583,7 +8623,7 @@ 1 2 - 4519466 + 4517802 @@ -8593,26 +8633,26 @@ file_class - 15014 + 15009 id - 15014 + 15009 class_object - 122848 + 122803 id - 122848 + 122803 instance - 122848 + 122803 @@ -8626,7 +8666,7 @@ 1 2 - 122848 + 122803 @@ -8642,7 +8682,7 @@ 1 2 - 122848 + 122803 @@ -8652,19 +8692,19 @@ type_companion_object - 218397 + 218317 id - 218397 + 218317 instance - 218397 + 218317 companion_object - 218397 + 218317 @@ -8678,7 +8718,7 @@ 1 2 - 218397 + 218317 @@ -8694,7 +8734,7 @@ 1 2 - 218397 + 218317 @@ -8710,7 +8750,7 @@ 1 2 - 218397 + 218317 @@ -8726,7 +8766,7 @@ 1 2 - 218397 + 218317 @@ -8742,7 +8782,7 @@ 1 2 - 218397 + 218317 @@ -8758,7 +8798,7 @@ 1 2 - 218397 + 218317 @@ -8816,15 +8856,15 @@ kt_notnull_types - 193427 + 194340 id - 193427 + 194340 classid - 193427 + 194340 @@ -8838,7 +8878,7 @@ 1 2 - 193427 + 194340 @@ -8854,7 +8894,7 @@ 1 2 - 193427 + 194340 @@ -9437,15 +9477,15 @@ fielddecls - 399940 + 399793 id - 399940 + 399793 parentid - 60059 + 60037 @@ -9459,7 +9499,7 @@ 1 2 - 399940 + 399793 @@ -9475,32 +9515,32 @@ 1 2 - 30029 + 30018 2 3 - 13649 + 13644 3 4 - 5459 + 5457 4 5 - 2729 + 2728 6 16 - 5459 + 5457 40 159 - 2729 + 2728 @@ -9510,15 +9550,15 @@ fieldDeclaredIn - 399940 + 399793 fieldId - 399940 + 399793 fieldDeclId - 399940 + 399793 pos @@ -9536,7 +9576,7 @@ 1 2 - 399940 + 399793 @@ -9552,7 +9592,7 @@ 1 2 - 399940 + 399793 @@ -9568,7 +9608,7 @@ 1 2 - 399940 + 399793 @@ -9584,7 +9624,7 @@ 1 2 - 399940 + 399793 @@ -9626,27 +9666,27 @@ fields - 27583622 + 27573466 id - 27583622 + 27573466 nodeName - 10929437 + 10925412 typeid - 2735430 + 2734423 parentid - 3861543 + 3860121 sourceid - 27583622 + 27573466 @@ -9660,7 +9700,7 @@ 1 2 - 27583622 + 27573466 @@ -9676,7 +9716,7 @@ 1 2 - 27583622 + 27573466 @@ -9692,7 +9732,7 @@ 1 2 - 27583622 + 27573466 @@ -9708,7 +9748,7 @@ 1 2 - 27583622 + 27573466 @@ -9724,22 +9764,22 @@ 1 2 - 8083442 + 8080466 2 3 - 1437329 + 1436800 3 11 - 763026 + 762745 11 828 - 645638 + 645400 @@ -9755,17 +9795,17 @@ 1 2 - 9901603 + 9897957 2 4 - 853115 + 852801 4 160 - 174718 + 174653 @@ -9781,22 +9821,22 @@ 1 2 - 8083442 + 8080466 2 3 - 1437329 + 1436800 3 11 - 763026 + 762745 11 828 - 645638 + 645400 @@ -9812,22 +9852,22 @@ 1 2 - 8083442 + 8080466 2 3 - 1437329 + 1436800 3 11 - 763026 + 762745 11 828 - 645638 + 645400 @@ -9843,32 +9883,32 @@ 1 2 - 1737626 + 1736986 2 3 - 339881 + 339756 3 4 - 176083 + 176018 4 7 - 208842 + 208765 7 24 - 206112 + 206036 24 7479 - 66884 + 66859 @@ -9884,27 +9924,27 @@ 1 2 - 1900059 + 1899359 2 3 - 303026 + 302915 3 4 - 184273 + 184205 4 9 - 212937 + 212859 9 2335 - 135133 + 135083 @@ -9920,17 +9960,17 @@ 1 2 - 2332759 + 2331900 2 4 - 229317 + 229233 4 1392 - 173353 + 173289 @@ -9946,32 +9986,32 @@ 1 2 - 1737626 + 1736986 2 3 - 339881 + 339756 3 4 - 176083 + 176018 4 7 - 208842 + 208765 7 24 - 206112 + 206036 24 7479 - 66884 + 66859 @@ -9987,37 +10027,37 @@ 1 2 - 1942374 + 1941658 2 3 - 485934 + 485755 3 4 - 304391 + 304279 4 6 - 342611 + 342485 6 10 - 301661 + 301550 10 27 - 292106 + 291999 27 1610 - 192462 + 192392 @@ -10033,37 +10073,37 @@ 1 2 - 1942374 + 1941658 2 3 - 485934 + 485755 3 4 - 304391 + 304279 4 6 - 342611 + 342485 6 10 - 301661 + 301550 10 27 - 292106 + 291999 27 1610 - 192462 + 192392 @@ -10079,27 +10119,27 @@ 1 2 - 2506112 + 2505190 2 3 - 625163 + 624933 3 4 - 244332 + 244242 4 7 - 339881 + 339756 7 76 - 146053 + 145999 @@ -10115,37 +10155,37 @@ 1 2 - 1942374 + 1941658 2 3 - 485934 + 485755 3 4 - 304391 + 304279 4 6 - 342611 + 342485 6 10 - 301661 + 301550 10 27 - 292106 + 291999 27 1610 - 192462 + 192392 @@ -10161,7 +10201,7 @@ 1 2 - 27583622 + 27573466 @@ -10177,7 +10217,7 @@ 1 2 - 27583622 + 27573466 @@ -10193,7 +10233,7 @@ 1 2 - 27583622 + 27573466 @@ -10209,7 +10249,7 @@ 1 2 - 27583622 + 27573466 @@ -10219,11 +10259,11 @@ fieldsKotlinType - 27583622 + 27573466 id - 27583622 + 27573466 kttypeid @@ -10241,7 +10281,7 @@ 1 2 - 27583622 + 27573466 @@ -10267,31 +10307,31 @@ constrs - 6889080 + 6886544 id - 6889080 + 6886544 nodeName - 3756439 + 3755056 signature - 5887181 + 5885013 typeid - 2729 + 2728 parentid - 4849792 + 4848007 sourceid - 5069555 + 5067688 @@ -10305,7 +10345,7 @@ 1 2 - 6889080 + 6886544 @@ -10321,7 +10361,7 @@ 1 2 - 6889080 + 6886544 @@ -10337,7 +10377,7 @@ 1 2 - 6889080 + 6886544 @@ -10353,7 +10393,7 @@ 1 2 - 6889080 + 6886544 @@ -10369,7 +10409,7 @@ 1 2 - 6889080 + 6886544 @@ -10385,22 +10425,22 @@ 1 2 - 2366884 + 2366012 2 3 - 839465 + 839156 3 5 - 346706 + 346578 5 42 - 203382 + 203307 @@ -10416,22 +10456,22 @@ 1 2 - 2635786 + 2634816 2 3 - 685222 + 684970 3 5 - 303026 + 302915 5 19 - 132403 + 132354 @@ -10447,7 +10487,7 @@ 1 2 - 3756439 + 3755056 @@ -10463,17 +10503,17 @@ 1 2 - 3295074 + 3293861 2 3 - 316676 + 316559 3 42 - 144688 + 144635 @@ -10489,22 +10529,22 @@ 1 2 - 2458338 + 2457433 2 3 - 831276 + 830969 3 5 - 319406 + 319288 5 38 - 147418 + 147364 @@ -10520,12 +10560,12 @@ 1 2 - 5474955 + 5472940 2 42 - 412225 + 412073 @@ -10541,7 +10581,7 @@ 1 2 - 5887181 + 5885013 @@ -10557,7 +10597,7 @@ 1 2 - 5887181 + 5885013 @@ -10573,12 +10613,12 @@ 1 2 - 5474955 + 5472940 2 42 - 412225 + 412073 @@ -10594,12 +10634,12 @@ 1 2 - 5604629 + 5602565 2 32 - 282551 + 282447 @@ -10720,22 +10760,22 @@ 1 2 - 3688190 + 3686832 2 3 - 739822 + 739549 3 6 - 367181 + 367045 6 19 - 54599 + 54579 @@ -10751,7 +10791,7 @@ 1 2 - 4849792 + 4848007 @@ -10767,22 +10807,22 @@ 1 2 - 3688190 + 3686832 2 3 - 739822 + 739549 3 6 - 367181 + 367045 6 19 - 54599 + 54579 @@ -10798,7 +10838,7 @@ 1 2 - 4849792 + 4848007 @@ -10814,22 +10854,22 @@ 1 2 - 3688190 + 3686832 2 3 - 739822 + 739549 3 6 - 367181 + 367045 6 19 - 54599 + 54579 @@ -10845,12 +10885,12 @@ 1 2 - 4756973 + 4755222 2 259 - 312581 + 312466 @@ -10866,12 +10906,12 @@ 1 2 - 4756973 + 4755222 2 212 - 312581 + 312466 @@ -10887,12 +10927,12 @@ 1 2 - 4756973 + 4755222 2 212 - 312581 + 312466 @@ -10908,7 +10948,7 @@ 1 2 - 5069555 + 5067688 @@ -10924,12 +10964,12 @@ 1 2 - 4756973 + 4755222 2 259 - 312581 + 312466 @@ -10939,11 +10979,11 @@ constrsKotlinType - 6889080 + 6886544 id - 6889080 + 6886544 kttypeid @@ -10961,7 +11001,7 @@ 1 2 - 6889080 + 6886544 @@ -10987,31 +11027,31 @@ methods - 93482380 + 93447961 id - 93482380 + 93447961 nodeName - 20395609 + 20385371 signature - 29871337 + 29857610 typeid - 11611929 + 11610383 parentid - 11303442 + 11299281 sourceid - 58623387 + 58601802 @@ -11025,7 +11065,7 @@ 1 2 - 93482380 + 93447961 @@ -11041,7 +11081,7 @@ 1 2 - 93482380 + 93447961 @@ -11057,7 +11097,7 @@ 1 2 - 93482380 + 93447961 @@ -11073,7 +11113,7 @@ 1 2 - 93482380 + 93447961 @@ -11089,7 +11129,7 @@ 1 2 - 93482380 + 93447961 @@ -11105,32 +11145,32 @@ 1 2 - 11927241 + 11921485 2 3 - 3791929 + 3790532 3 4 - 1317210 + 1316725 4 7 - 1789495 + 1788836 7 - 259 - 1530148 + 271 + 1529585 - 270 + 276 2134 - 39584 + 38205 @@ -11146,17 +11186,17 @@ 1 2 - 16912167 + 16903211 2 3 - 2122552 + 2121770 3 361 - 1360890 + 1360389 @@ -11172,22 +11212,22 @@ 1 2 - 17141484 + 17133809 2 3 - 1683026 + 1682407 3 - 52 - 1530148 + 53 + 1529585 - 52 + 53 845 - 40949 + 39569 @@ -11203,27 +11243,27 @@ 1 2 - 12654778 + 12648754 2 3 - 3558516 + 3557206 3 4 - 1250326 + 1249866 4 7 - 1575192 + 1574613 7 1278 - 1356795 + 1354931 @@ -11239,27 +11279,27 @@ 1 2 - 12309437 + 12302175 2 3 - 3921602 + 3921523 3 4 - 1298100 + 1297623 4 7 - 1654362 + 1653753 7 928 - 1212106 + 1210296 @@ -11275,22 +11315,22 @@ 1 2 - 20522553 + 20513632 2 3 - 4879822 + 4878025 3 5 - 2368249 + 2367377 5 1275 - 2100712 + 2098574 @@ -11306,7 +11346,7 @@ 1 2 - 29871337 + 29857610 @@ -11322,17 +11362,17 @@ 1 2 - 26823325 + 26812084 2 5 - 2390089 + 2389209 5 843 - 657922 + 656316 @@ -11348,22 +11388,22 @@ 1 2 - 20526648 + 20517726 2 3 - 4878457 + 4876661 3 5 - 2366884 + 2366012 5 1275 - 2099347 + 2097209 @@ -11379,22 +11419,22 @@ 1 2 - 21147716 + 21137201 2 3 - 4997211 + 4996735 3 6 - 2537507 + 2536573 6 923 - 1188902 + 1187099 @@ -11410,32 +11450,32 @@ 1 2 - 5705638 + 5703537 2 3 - 2455608 + 2457433 3 4 - 1087893 + 1087492 4 6 - 924095 + 925119 6 14 - 877685 + 875997 14 11682 - 561008 + 560802 @@ -11451,22 +11491,22 @@ 1 2 - 7632997 + 7632916 2 3 - 2222196 + 2221377 3 6 - 1063323 + 1064296 6 3956 - 693412 + 691792 @@ -11482,27 +11522,27 @@ 1 2 - 7390030 + 7388673 2 3 - 2276795 + 2278686 3 5 - 879050 + 878726 5 17 - 884510 + 882820 17 5707 - 181543 + 181476 @@ -11518,27 +11558,27 @@ 1 2 - 6811276 + 6808768 2 3 - 2467893 + 2471078 3 4 - 1004629 + 1004259 4 9 - 917270 + 915567 9 3421 - 410860 + 410709 @@ -11554,32 +11594,32 @@ 1 2 - 6202493 + 6200209 2 3 - 2268605 + 2270499 3 4 - 984154 + 983792 4 6 - 909080 + 910109 6 16 - 892700 + 891007 16 8870 - 354896 + 354765 @@ -11595,52 +11635,52 @@ 1 2 - 3200890 + 3199711 2 3 - 1298100 + 1297623 3 4 - 1027833 + 1027455 4 5 - 748011 + 747736 5 7 - 925460 + 925119 7 10 - 959584 + 959231 10 13 - 997804 + 997436 13 19 - 909080 + 908745 19 38 - 910445 + 910109 38 319 - 326231 + 326111 @@ -11656,52 +11696,52 @@ 1 2 - 3254124 + 3252926 2 3 - 1318575 + 1318090 3 4 - 1108368 + 1107959 4 5 - 788961 + 788670 5 7 - 888605 + 888278 7 10 - 1021008 + 1020633 10 13 - 941839 + 942857 13 17 - 876320 + 874633 17 35 - 850385 + 850072 35 290 - 255252 + 255158 @@ -11717,52 +11757,52 @@ 1 2 - 3200890 + 3199711 2 3 - 1298100 + 1297623 3 4 - 1027833 + 1027455 4 5 - 748011 + 747736 5 7 - 925460 + 925119 7 10 - 959584 + 959231 10 13 - 997804 + 997436 13 19 - 909080 + 908745 19 38 - 910445 + 910109 38 319 - 326231 + 326111 @@ -11778,47 +11818,47 @@ 1 2 - 3901127 + 3899691 2 3 - 1624332 + 1623734 3 4 - 1329495 + 1329006 4 5 - 790326 + 790035 5 6 - 636083 + 635848 6 7 - 502314 + 502129 7 9 - 1034658 + 1034277 9 13 - 881780 + 881455 13 78 - 603323 + 603101 @@ -11834,52 +11874,52 @@ 1 2 - 3200890 + 3199711 2 3 - 1298100 + 1297623 3 4 - 1027833 + 1027455 4 5 - 748011 + 747736 5 7 - 925460 + 925119 7 10 - 959584 + 959231 10 13 - 997804 + 997436 13 19 - 909080 + 908745 19 38 - 910445 + 910109 38 319 - 326231 + 326111 @@ -11895,12 +11935,12 @@ 1 2 - 54259529 + 54239551 2 349 - 4363857 + 4362251 @@ -11916,7 +11956,7 @@ 1 2 - 58623387 + 58601802 @@ -11932,12 +11972,12 @@ 1 2 - 58339470 + 58317990 2 347 - 283916 + 283812 @@ -11953,12 +11993,12 @@ 1 2 - 56923980 + 56903021 2 259 - 1699406 + 1698780 @@ -11974,12 +12014,12 @@ 1 2 - 54259529 + 54239551 2 349 - 4363857 + 4362251 @@ -11989,11 +12029,11 @@ methodsKotlinType - 93482380 + 93447961 id - 93482380 + 93447961 kttypeid @@ -12011,7 +12051,7 @@ 1 2 - 93482380 + 93447961 @@ -12037,27 +12077,27 @@ params - 101137218 + 101099980 id - 101137218 + 101099980 typeid - 11278873 + 11198309 pos - 30029 + 30018 parentid - 56339766 + 56319023 sourceid - 61326058 + 61303478 @@ -12071,7 +12111,7 @@ 1 2 - 101137218 + 101099980 @@ -12087,7 +12127,7 @@ 1 2 - 101137218 + 101099980 @@ -12103,7 +12143,7 @@ 1 2 - 101137218 + 101099980 @@ -12119,7 +12159,7 @@ 1 2 - 101137218 + 101099980 @@ -12135,32 +12175,32 @@ 1 2 - 6038694 + 5955966 2 3 - 1756736 + 1720612 3 4 - 853115 + 873268 4 6 - 966409 + 974240 6 12 - 854480 + 866446 12 7464 - 809436 + 807773 @@ -12176,17 +12216,17 @@ 1 2 - 9331039 + 9255286 2 3 - 1156142 + 1159810 3 17 - 791691 + 783213 @@ -12202,32 +12242,32 @@ 1 2 - 6227062 + 6146994 2 3 - 1726706 + 1685136 3 4 - 873590 + 893736 4 6 - 909080 + 918296 6 13 - 854480 + 866446 13 5239 - 687952 + 687699 @@ -12243,32 +12283,32 @@ 1 2 - 6433175 + 6350302 2 3 - 1613412 + 1577341 3 4 - 884510 + 904652 4 6 - 943204 + 951044 6 - 14 - 889970 + 13 + 854166 - 14 + 13 6287 - 514599 + 560802 @@ -12284,57 +12324,57 @@ 1 2 - 2729 + 2728 53 56 - 2729 + 2728 110 112 - 2729 + 2728 165 172 - 2729 + 2728 224 242 - 2729 + 2728 304 329 - 2729 + 2728 523 665 - 2729 + 2728 879 1140 - 2729 + 2728 1514 2087 - 2729 + 2728 3295 5932 - 2729 + 2728 15024 41276 - 2729 + 2728 @@ -12350,57 +12390,57 @@ 1 2 - 2729 + 2728 2 5 - 2729 + 2728 6 7 - 2729 + 2728 10 12 - 2729 + 2728 13 19 - 2729 + 2728 26 38 - 2729 + 2728 57 76 - 2729 + 2728 99 159 - 2729 + 2728 212 - 305 - 2729 + 306 + 2728 - 451 + 452 888 - 2729 + 2728 - 2378 - 6326 - 2729 + 2370 + 6266 + 2728 @@ -12416,57 +12456,57 @@ 1 2 - 2729 + 2728 53 56 - 2729 + 2728 110 112 - 2729 + 2728 165 172 - 2729 + 2728 224 242 - 2729 + 2728 304 329 - 2729 + 2728 523 665 - 2729 + 2728 879 1140 - 2729 + 2728 1514 2087 - 2729 + 2728 3295 5932 - 2729 + 2728 15024 41276 - 2729 + 2728 @@ -12482,57 +12522,57 @@ 1 2 - 2729 + 2728 2 5 - 2729 + 2728 6 8 - 2729 + 2728 10 13 - 2729 + 2728 14 28 - 2729 + 2728 37 62 - 2729 + 2728 97 137 - 2729 + 2728 192 342 - 2729 + 2728 553 963 - 2729 + 2728 1950 4155 - 2729 + 2728 10027 26335 - 2729 + 2728 @@ -12548,27 +12588,27 @@ 1 2 - 35832228 + 35819035 2 3 - 12411811 + 12407241 3 4 - 3598101 + 3596776 4 15 - 4264213 + 4262643 15 23 - 233412 + 233326 @@ -12584,17 +12624,17 @@ 1 2 - 39830270 + 39815605 2 3 - 12671158 + 12666492 3 23 - 3838338 + 3836925 @@ -12610,27 +12650,27 @@ 1 2 - 35832228 + 35819035 2 3 - 12411811 + 12407241 3 4 - 3598101 + 3596776 4 15 - 4264213 + 4262643 15 23 - 233412 + 233326 @@ -12646,27 +12686,27 @@ 1 2 - 35832228 + 35819035 2 3 - 12411811 + 12407241 3 4 - 3598101 + 3596776 4 15 - 4264213 + 4262643 15 23 - 233412 + 233326 @@ -12682,12 +12722,12 @@ 1 2 - 56895315 + 56874367 2 349 - 4430742 + 4429110 @@ -12703,12 +12743,12 @@ 1 2 - 59783624 + 59761613 2 349 - 1542433 + 1541865 @@ -12724,7 +12764,7 @@ 1 2 - 61326058 + 61303478 @@ -12740,12 +12780,12 @@ 1 2 - 56895315 + 56874367 2 349 - 4430742 + 4429110 @@ -12755,11 +12795,11 @@ paramsKotlinType - 101137218 + 101099980 id - 101137218 + 101099980 kttypeid @@ -12777,7 +12817,7 @@ 1 2 - 101137218 + 101099980 @@ -12803,15 +12843,15 @@ paramName - 101137218 + 10199508 id - 101137218 + 10199508 nodeName - 1688486 + 1666033 @@ -12825,7 +12865,7 @@ 1 2 - 101137218 + 10199508 @@ -12841,37 +12881,37 @@ 1 2 - 719347 + 729998 2 3 - 331691 + 338391 3 4 - 173353 + 169195 4 5 - 114658 + 117345 5 9 - 144688 + 140541 9 25 - 126943 + 126896 25 - 32680 - 77804 + 516 + 43663 @@ -12881,11 +12921,11 @@ isVarargsParam - 1005994 + 1005623 param - 1005994 + 1005623 @@ -13108,11 +13148,11 @@ isAnnotType - 29833 + 30064 interfaceid - 29833 + 30064 @@ -13396,11 +13436,11 @@ isEnumType - 350801 + 350672 classid - 350801 + 350672 @@ -13418,19 +13458,19 @@ typeVars - 5118694 + 5116810 id - 5118694 + 5116810 nodeName - 70979 + 70953 pos - 5459 + 5457 kind @@ -13438,7 +13478,7 @@ parentid - 3725044 + 3723673 @@ -13452,7 +13492,7 @@ 1 2 - 5118694 + 5116810 @@ -13468,7 +13508,7 @@ 1 2 - 5118694 + 5116810 @@ -13484,7 +13524,7 @@ 1 2 - 5118694 + 5116810 @@ -13500,7 +13540,7 @@ 1 2 - 5118694 + 5116810 @@ -13516,47 +13556,47 @@ 1 2 - 20474 + 20467 2 3 - 10919 + 10915 3 4 - 6824 + 6822 4 7 - 5459 + 5457 7 10 - 5459 + 5457 10 28 - 5459 + 5457 37 71 - 5459 + 5457 71 253 - 5459 + 5457 459 951 - 5459 + 5457 @@ -13572,17 +13612,17 @@ 1 2 - 45044 + 45027 2 3 - 16379 + 16373 3 4 - 8189 + 8186 4 @@ -13603,7 +13643,7 @@ 1 2 - 70979 + 70953 @@ -13619,47 +13659,47 @@ 1 2 - 20474 + 20467 2 3 - 10919 + 10915 3 4 - 6824 + 6822 4 7 - 5459 + 5457 7 10 - 5459 + 5457 10 28 - 5459 + 5457 37 71 - 5459 + 5457 71 253 - 5459 + 5457 459 951 - 5459 + 5457 @@ -13737,7 +13777,7 @@ 1 2 - 5459 + 5457 @@ -13848,17 +13888,17 @@ 1 2 - 2467893 + 2466984 2 3 - 1128842 + 1128427 3 5 - 128308 + 128261 @@ -13874,17 +13914,17 @@ 1 2 - 2467893 + 2466984 2 3 - 1128842 + 1128427 3 5 - 128308 + 128261 @@ -13900,17 +13940,17 @@ 1 2 - 2467893 + 2466984 2 3 - 1128842 + 1128427 3 5 - 128308 + 128261 @@ -13926,7 +13966,7 @@ 1 2 - 3725044 + 3723673 @@ -13936,19 +13976,19 @@ wildcards - 3116261 + 3637710 id - 3116261 + 3637710 nodeName - 859940 + 982427 kind - 2729 + 2728 @@ -13962,7 +14002,7 @@ 1 2 - 3116261 + 3637710 @@ -13978,7 +14018,7 @@ 1 2 - 3116261 + 3637710 @@ -13994,17 +14034,17 @@ 1 2 - 683857 + 791399 2 3 - 110563 + 120074 3 - 170 - 65519 + 214 + 70953 @@ -14020,7 +14060,7 @@ 1 2 - 859940 + 982427 @@ -14034,13 +14074,13 @@ 12 - 898 - 899 + 1027 + 1028 1364 - 1385 - 1386 + 1639 + 1640 1364 @@ -14055,13 +14095,13 @@ 12 - 196 - 197 + 222 + 223 1364 - 434 - 435 + 498 + 499 1364 @@ -14072,15 +14112,15 @@ typeBounds - 3872463 + 4393634 id - 3872463 + 4393634 typeid - 2723145 + 3191525 pos @@ -14088,7 +14128,7 @@ parentid - 3872463 + 4393634 @@ -14102,7 +14142,7 @@ 1 2 - 3872463 + 4393634 @@ -14118,7 +14158,7 @@ 1 2 - 3872463 + 4393634 @@ -14134,7 +14174,7 @@ 1 2 - 3872463 + 4393634 @@ -14150,17 +14190,17 @@ 1 2 - 2093887 + 2512012 2 3 - 552819 + 603101 3 - 51 - 76439 + 52 + 76411 @@ -14176,7 +14216,7 @@ 1 2 - 2723145 + 3191525 @@ -14192,17 +14232,17 @@ 1 2 - 2093887 + 2512012 2 3 - 552819 + 603101 3 - 51 - 76439 + 52 + 76411 @@ -14216,8 +14256,8 @@ 12 - 2837 - 2838 + 3220 + 3221 1364 @@ -14232,8 +14272,8 @@ 12 - 1995 - 1996 + 2339 + 2340 1364 @@ -14248,8 +14288,8 @@ 12 - 2837 - 2838 + 3220 + 3221 1364 @@ -14266,7 +14306,7 @@ 1 2 - 3872463 + 4393634 @@ -14282,7 +14322,7 @@ 1 2 - 3872463 + 4393634 @@ -14298,7 +14338,7 @@ 1 2 - 3872463 + 4393634 @@ -14604,37 +14644,37 @@ isParameterized - 24792227 + 25167883 memberid - 24792227 + 25167883 isRaw - 642908 + 642671 memberid - 642908 + 642671 erasure - 25435135 + 25810554 memberid - 25435135 + 25810554 erasureid - 868130 + 867810 @@ -14648,7 +14688,7 @@ 1 2 - 25435135 + 25810554 @@ -14664,57 +14704,57 @@ 1 2 - 144688 + 144635 2 3 - 133768 + 133719 3 4 - 88724 + 88691 4 5 - 55964 + 54579 5 6 - 51869 + 50485 6 8 - 62789 + 64130 8 11 - 77804 + 79139 11 19 - 70979 + 70953 19 33 - 70979 + 70953 33 93 - 65519 + 65495 97 - 1723 - 45044 + 1848 + 45027 @@ -14724,15 +14764,15 @@ isAnonymClass - 194713 + 195608 classid - 194713 + 195608 parent - 194713 + 195608 @@ -14746,7 +14786,7 @@ 1 2 - 194713 + 195608 @@ -14762,7 +14802,7 @@ 1 2 - 194713 + 195608 @@ -14772,15 +14812,15 @@ isLocalClassOrInterface - 4069 + 4110 typeid - 4069 + 4110 parent - 4069 + 4110 @@ -14794,7 +14834,7 @@ 1 2 - 4069 + 4110 @@ -14810,7 +14850,7 @@ 1 2 - 4069 + 4110 @@ -14831,15 +14871,15 @@ lambdaKind - 185816 + 186985 exprId - 185816 + 186985 bodyKind - 15 + 16 @@ -14853,7 +14893,7 @@ 1 2 - 185816 + 186985 @@ -14867,9 +14907,9 @@ 12 - 11987 - 11988 - 15 + 11644 + 11645 + 16 @@ -14879,27 +14919,27 @@ arrays - 1119287 + 1118875 id - 1119287 + 1118875 nodeName - 689317 + 689063 elementtypeid - 1112462 + 1112053 dimension - 2729 + 2728 componenttypeid - 1119287 + 1118875 @@ -14913,7 +14953,7 @@ 1 2 - 1119287 + 1118875 @@ -14929,7 +14969,7 @@ 1 2 - 1119287 + 1118875 @@ -14945,7 +14985,7 @@ 1 2 - 1119287 + 1118875 @@ -14961,7 +15001,7 @@ 1 2 - 1119287 + 1118875 @@ -14977,17 +15017,17 @@ 1 2 - 563738 + 563531 2 3 - 99643 + 99607 3 95 - 25934 + 25925 @@ -15003,17 +15043,17 @@ 1 2 - 563738 + 563531 2 3 - 99643 + 99607 3 95 - 25934 + 25925 @@ -15029,7 +15069,7 @@ 1 2 - 689317 + 689063 @@ -15045,17 +15085,17 @@ 1 2 - 563738 + 563531 2 3 - 99643 + 99607 3 95 - 25934 + 25925 @@ -15071,12 +15111,12 @@ 1 2 - 1105638 + 1105230 2 3 - 6824 + 6822 @@ -15092,12 +15132,12 @@ 1 2 - 1105638 + 1105230 2 3 - 6824 + 6822 @@ -15113,12 +15153,12 @@ 1 2 - 1105638 + 1105230 2 3 - 6824 + 6822 @@ -15134,12 +15174,12 @@ 1 2 - 1105638 + 1105230 2 3 - 6824 + 6822 @@ -15239,7 +15279,7 @@ 1 2 - 1119287 + 1118875 @@ -15255,7 +15295,7 @@ 1 2 - 1119287 + 1118875 @@ -15271,7 +15311,7 @@ 1 2 - 1119287 + 1118875 @@ -15287,7 +15327,7 @@ 1 2 - 1119287 + 1118875 @@ -15297,15 +15337,15 @@ enclInReftype - 3417923 + 3419393 child - 3417923 + 3419393 parent - 928189 + 927848 @@ -15319,7 +15359,7 @@ 1 2 - 3417923 + 3419393 @@ -15335,32 +15375,32 @@ 1 2 - 545994 + 545793 2 3 - 150148 + 150093 3 4 - 70979 + 70953 4 7 - 83264 + 83233 7 48 - 69614 + 69588 50 - 277 - 8189 + 279 + 8186 @@ -15370,15 +15410,15 @@ extendsReftype - 47612051 + 47979305 id1 - 33730150 + 34102515 id2 - 13910564 + 14050078 @@ -15392,22 +15432,22 @@ 1 2 - 25830981 + 26206254 2 3 - 3150385 + 3149226 3 4 - 3643145 + 3641804 4 10 - 1105638 + 1105230 @@ -15423,17 +15463,17 @@ 1 2 - 11822137 + 11956961 2 3 - 1423679 + 1429977 3 - 12114 - 664747 + 12283 + 663138 @@ -15526,15 +15566,15 @@ permits - 125 + 143 id1 - 32 + 36 id2 - 125 + 143 @@ -15548,12 +15588,12 @@ 1 2 - 2 + 1 2 3 - 9 + 12 3 @@ -15563,27 +15603,27 @@ 4 5 - 1 + 2 5 6 - 4 + 2 6 + 7 + 4 + + + 7 8 2 8 - 9 - 2 - - - 10 11 - 1 + 2 @@ -15599,7 +15639,7 @@ 1 2 - 125 + 143 @@ -15609,15 +15649,15 @@ hasModifier - 248786309 + 249505212 id1 - 166367134 + 166690663 id2 - 12284 + 13644 @@ -15631,17 +15671,17 @@ 1 2 - 84399769 + 84359142 2 3 - 81515555 + 81848494 3 4 - 451810 + 483026 @@ -15654,6 +15694,11 @@ 12 + + 31 + 32 + 1364 + 34 35 @@ -15680,13 +15725,13 @@ 1364 - 17754 - 17755 + 18033 + 18034 1364 - 18275 - 18276 + 18277 + 18278 1364 @@ -15695,8 +15740,8 @@ 1364 - 116552 - 116553 + 116834 + 116835 1364 @@ -16038,27 +16083,27 @@ stmts - 2534777 + 2533844 id - 2534777 + 2533844 kind - 13649 + 13644 parent - 1785400 + 1784743 idx - 217032 + 216952 bodydecl - 704332 + 704073 @@ -16072,7 +16117,7 @@ 1 2 - 2534777 + 2533844 @@ -16088,7 +16133,7 @@ 1 2 - 2534777 + 2533844 @@ -16104,7 +16149,7 @@ 1 2 - 2534777 + 2533844 @@ -16120,7 +16165,7 @@ 1 2 - 2534777 + 2533844 @@ -16136,7 +16181,7 @@ 2 3 - 4094 + 4093 4 @@ -16192,7 +16237,7 @@ 2 3 - 2729 + 2728 4 @@ -16243,7 +16288,7 @@ 1 2 - 5459 + 5457 2 @@ -16263,7 +16308,7 @@ 7 8 - 2729 + 2728 158 @@ -16289,7 +16334,7 @@ 2 3 - 4094 + 4093 25 @@ -16335,17 +16380,17 @@ 1 2 - 1502848 + 1502295 2 3 - 199287 + 199214 3 159 - 83264 + 83233 @@ -16361,17 +16406,17 @@ 1 2 - 1588842 + 1588257 2 3 - 189732 + 189663 3 4 - 6824 + 6822 @@ -16387,17 +16432,17 @@ 1 2 - 1502848 + 1502295 2 3 - 199287 + 199214 3 159 - 83264 + 83233 @@ -16413,7 +16458,7 @@ 1 2 - 1785400 + 1784743 @@ -16429,22 +16474,22 @@ 1 2 - 161068 + 161008 2 3 - 34124 + 34112 3 24 - 16379 + 16373 34 1211 - 5459 + 5457 @@ -16460,12 +16505,12 @@ 1 2 - 204747 + 204672 2 9 - 12284 + 12280 @@ -16481,22 +16526,22 @@ 1 2 - 161068 + 161008 2 3 - 34124 + 34112 3 24 - 16379 + 16373 34 1211 - 5459 + 5457 @@ -16512,22 +16557,22 @@ 1 2 - 161068 + 161008 2 3 - 34124 + 34112 3 19 - 16379 + 16373 29 517 - 5459 + 5457 @@ -16543,22 +16588,22 @@ 2 3 - 544629 + 544428 3 4 - 58694 + 58672 4 7 - 53234 + 53214 7 162 - 47774 + 47756 @@ -16574,17 +16619,17 @@ 2 3 - 576023 + 575811 3 4 - 81899 + 81868 4 7 - 46409 + 46392 @@ -16600,17 +16645,17 @@ 2 3 - 630623 + 630391 3 8 - 57329 + 57308 9 47 - 16379 + 16373 @@ -16626,22 +16671,22 @@ 1 2 - 544629 + 544428 2 3 - 92818 + 92784 3 7 - 54599 + 54579 7 159 - 12284 + 12280 @@ -17522,7 +17567,7 @@
    kttypeid - 12370 + 12368 @@ -17552,7 +17597,7 @@ 1 2 - 9277 + 9276 2 @@ -17560,8 +17605,8 @@ 2061 - 7177 - 7178 + 7178 + 7179 1030 @@ -17841,22 +17886,22 @@ when_if - 83447 + 84712 id - 83447 + 84712 when_branch_else - 80753 + 79813 id - 80753 + 79813 @@ -17901,12 +17946,12 @@ 1 2 - 162246 + 162245 2 3 - 33026 + 33027 3 @@ -17999,15 +18044,15 @@ propertyRefGetBinding - 9718 + 9660 id - 9718 + 9660 getter - 5873 + 5838 @@ -18021,7 +18066,7 @@ 1 2 - 9718 + 9660 @@ -18037,12 +18082,12 @@ 1 2 - 2132 + 2119 2 3 - 3646 + 3624 3 @@ -18105,15 +18150,15 @@ propertyRefSetBinding - 2651 + 2672 id - 2651 + 2672 setter - 1325 + 1336 @@ -18127,7 +18172,7 @@ 1 2 - 2651 + 2672 @@ -18143,7 +18188,7 @@ 2 3 - 1325 + 1336 @@ -18602,11 +18647,11 @@ localvarsKotlinType - 227623 + 227573 id - 227623 + 227573 kttypeid @@ -18624,7 +18669,7 @@ 1 2 - 227623 + 227573 @@ -20540,11 +20585,11 @@ xmlEncoding - 802611 + 802315 id - 802611 + 802315 encoding @@ -20562,7 +20607,7 @@ 1 2 - 802611 + 802315 @@ -20936,27 +20981,27 @@ xmlElements - 106792352 + 106753032 id - 106792352 + 106753032 name - 338516 + 338391 parentid - 2754540 + 2753526 idx - 1210741 + 1210296 fileid - 802611 + 802315 @@ -20970,7 +21015,7 @@ 1 2 - 106792352 + 106753032 @@ -20986,7 +21031,7 @@ 1 2 - 106792352 + 106753032 @@ -21002,7 +21047,7 @@ 1 2 - 106792352 + 106753032 @@ -21018,7 +21063,7 @@ 1 2 - 106792352 + 106753032 @@ -21034,57 +21079,57 @@ 1 2 - 106468 + 106429 2 3 - 40949 + 40934 3 4 - 16379 + 16373 4 6 - 30029 + 30018 6 8 - 24569 + 24560 8 9 - 12284 + 12280 9 10 - 23204 + 23196 10 18 - 28664 + 28654 18 48 - 25934 + 25925 52 250 - 25934 + 25925 342 73380 - 4094 + 4093 @@ -21100,52 +21145,52 @@ 1 2 - 124213 + 124167 2 3 - 46409 + 46392 3 4 - 17744 + 17738 4 5 - 15014 + 15009 5 6 - 19109 + 19102 6 8 - 28664 + 28654 8 10 - 28664 + 28654 10 21 - 27299 + 27289 22 128 - 25934 + 25925 130 229 - 5459 + 5457 @@ -21161,37 +21206,37 @@ 1 2 - 187002 + 186934 2 3 - 49139 + 49121 3 4 - 24569 + 24560 4 6 - 20474 + 20467 6 9 - 20474 + 20467 9 38 - 25934 + 25925 45 888 - 10919 + 10915 @@ -21207,42 +21252,42 @@ 1 2 - 184273 + 184205 2 3 - 36854 + 36841 3 4 - 17744 + 17738 4 5 - 13649 + 13644 5 7 - 30029 + 30018 7 16 - 25934 + 25925 17 114 - 27299 + 27289 118 131 - 2729 + 2728 @@ -21258,32 +21303,32 @@ 1 2 - 1676201 + 1675584 2 3 - 429970 + 429812 3 4 - 178813 + 178747 4 8 - 214302 + 214223 8 777 - 225222 + 225139 777 888 - 30029 + 30018 @@ -21299,17 +21344,17 @@ 1 2 - 2274065 + 2273228 2 3 - 292106 + 291999 3 17 - 188367 + 188298 @@ -21325,32 +21370,32 @@ 1 2 - 1676201 + 1675584 2 3 - 429970 + 429812 3 4 - 178813 + 178747 4 8 - 214302 + 214223 8 777 - 225222 + 225139 777 888 - 30029 + 30018 @@ -21366,7 +21411,7 @@ 1 2 - 2754540 + 2753526 @@ -21382,67 +21427,67 @@ 2 8 - 102373 + 102336 9 76 - 96913 + 96878 76 82 - 91454 + 91420 82 89 - 87359 + 87326 89 92 - 79169 + 79139 92 95 - 95548 + 95513 95 97 - 106468 + 106429 97 98 - 150148 + 150093 98 99 - 92818 + 92784 99 104 - 110563 + 110523 104 106 - 92818 + 92784 106 159 - 91454 + 91420 162 2019 - 13649 + 13644 @@ -21458,22 +21503,22 @@ 1 2 - 981424 + 981063 2 5 - 90089 + 90055 5 9 - 103738 + 103700 9 150 - 35489 + 35476 @@ -21489,67 +21534,67 @@ 2 8 - 102373 + 102336 9 76 - 96913 + 96878 76 82 - 91454 + 91420 82 89 - 87359 + 87326 89 92 - 79169 + 79139 92 95 - 95548 + 95513 95 97 - 106468 + 106429 97 98 - 150148 + 150093 98 99 - 92818 + 92784 99 104 - 110563 + 110523 104 106 - 92818 + 92784 106 159 - 91454 + 91420 162 2019 - 13649 + 13644 @@ -21565,67 +21610,67 @@ 2 8 - 102373 + 102336 9 76 - 96913 + 96878 76 82 - 91454 + 91420 82 89 - 87359 + 87326 89 92 - 79169 + 79139 92 95 - 95548 + 95513 95 97 - 106468 + 106429 97 98 - 150148 + 150093 98 99 - 92818 + 92784 99 104 - 110563 + 110523 104 106 - 92818 + 92784 106 139 - 91454 + 91420 141 589 - 13649 + 13644 @@ -21641,57 +21686,57 @@ 1 2 - 58694 + 58672 2 3 - 135133 + 135083 3 4 - 177448 + 177382 4 5 - 75074 + 75046 5 7 - 60059 + 60037 7 10 - 66884 + 66859 10 31 - 62789 + 62766 35 694 - 61424 + 61401 738 776 - 20474 + 20467 777 779 - 65519 + 65495 788 889 - 19109 + 19102 @@ -21707,37 +21752,37 @@ 1 2 - 58694 + 58672 2 3 - 399940 + 399793 3 4 - 139228 + 139177 4 5 - 65519 + 65495 5 6 - 61424 + 61401 6 9 - 65519 + 65495 9 69 - 12284 + 12280 @@ -21753,27 +21798,27 @@ 1 2 - 58694 + 58672 2 3 - 569198 + 568989 3 4 - 57329 + 57308 4 6 - 58694 + 58672 6 165 - 58694 + 58672 @@ -21789,42 +21834,42 @@ 1 2 - 203382 + 203307 2 3 - 219762 + 219681 3 4 - 88724 + 88691 4 7 - 66884 + 66859 7 17 - 66884 + 66859 18 763 - 61424 + 61401 764 777 - 65519 + 65495 777 888 - 30029 + 30018 @@ -21834,31 +21879,31 @@ xmlAttrs - 129898822 + 129850995 id - 129898822 + 129850995 elementid - 105883272 + 105844287 name - 513234 + 513045 value - 8206291 + 8203269 idx - 31394 + 31383 fileid - 801246 + 800951 @@ -21872,7 +21917,7 @@ 1 2 - 129898822 + 129850995 @@ -21888,7 +21933,7 @@ 1 2 - 129898822 + 129850995 @@ -21904,7 +21949,7 @@ 1 2 - 129898822 + 129850995 @@ -21920,7 +21965,7 @@ 1 2 - 129898822 + 129850995 @@ -21936,7 +21981,7 @@ 1 2 - 129898822 + 129850995 @@ -21952,17 +21997,17 @@ 1 2 - 96893479 + 96857804 2 6 - 7961959 + 7959027 6 24 - 1027833 + 1027455 @@ -21978,17 +22023,17 @@ 1 2 - 96893479 + 96857804 2 6 - 7975608 + 7972672 6 23 - 1014184 + 1013810 @@ -22004,17 +22049,17 @@ 1 2 - 96946713 + 96911018 2 6 - 8015193 + 8012242 6 21 - 921365 + 921025 @@ -22030,17 +22075,17 @@ 1 2 - 96893479 + 96857804 2 6 - 7961959 + 7959027 6 24 - 1027833 + 1027455 @@ -22056,7 +22101,7 @@ 1 2 - 105883272 + 105844287 @@ -22072,62 +22117,62 @@ 1 2 - 106468 + 106429 2 3 - 55964 + 55943 3 4 - 31394 + 31383 4 5 - 17744 + 17738 5 6 - 30029 + 30018 6 8 - 36854 + 36841 8 11 - 42314 + 42298 11 22 - 39584 + 39569 23 38 - 40949 + 40934 38 79 - 40949 + 40934 81 168 - 39584 + 39569 168 74700 - 31394 + 31383 @@ -22143,62 +22188,62 @@ 1 2 - 106468 + 106429 2 3 - 55964 + 55943 3 4 - 31394 + 31383 4 5 - 17744 + 17738 5 6 - 30029 + 30018 6 8 - 36854 + 36841 8 11 - 46409 + 46392 11 25 - 43679 + 43663 25 39 - 42314 + 42298 43 91 - 40949 + 40934 91 227 - 39584 + 39569 227 74700 - 21839 + 21831 @@ -22214,42 +22259,42 @@ 1 2 - 215667 + 215588 2 3 - 80534 + 80504 3 4 - 34124 + 34112 4 5 - 36854 + 36841 5 9 - 42314 + 42298 9 21 - 39584 + 39569 22 64 - 42314 + 42298 68 2100 - 21839 + 21831 @@ -22265,37 +22310,37 @@ 1 2 - 202017 + 201943 2 3 - 95548 + 95513 3 4 - 49139 + 49121 4 5 - 54599 + 54579 5 7 - 32759 + 32747 7 10 - 40949 + 40934 10 21 - 38219 + 38205 @@ -22311,52 +22356,52 @@ 1 2 - 178813 + 178747 2 3 - 53234 + 53214 3 4 - 27299 + 27289 4 5 - 24569 + 24560 5 6 - 38219 + 38205 6 9 - 42314 + 42298 9 17 - 45044 + 45027 17 34 - 39584 + 39569 36 91 - 39584 + 39569 91 223 - 24569 + 24560 @@ -22372,32 +22417,32 @@ 1 2 - 4482611 + 4480961 2 3 - 1213471 + 1213025 3 5 - 629258 + 629026 5 31 - 618338 + 618110 31 91 - 645638 + 645400 91 1111 - 615608 + 615381 3397 @@ -22418,32 +22463,32 @@ 1 2 - 4572700 + 4571017 2 3 - 1156142 + 1155716 3 5 - 637448 + 637213 5 33 - 647003 + 646764 33 93 - 633353 + 633119 93 3398 - 559643 + 559437 @@ -22459,17 +22504,17 @@ 1 2 - 7447359 + 7444617 2 4 - 660652 + 660409 4 53 - 98278 + 98242 @@ -22485,17 +22530,17 @@ 1 2 - 6796261 + 6793759 2 3 - 992344 + 991978 3 20 - 417685 + 417531 @@ -22511,32 +22556,32 @@ 1 2 - 5282492 + 5280548 2 3 - 889970 + 889642 3 10 - 637448 + 637213 10 83 - 623798 + 623568 83 99 - 626528 + 626297 99 182 - 146053 + 145999 @@ -22552,57 +22597,57 @@ 1 6 - 2729 + 2728 12 14 - 2729 + 2728 17 26 - 2729 + 2728 39 56 - 2729 + 2728 83 110 - 2729 + 2728 153 232 - 2729 + 2728 316 400 - 2729 + 2728 468 545 - 2729 + 2728 626 754 - 2729 + 2728 951 1491 - 2729 + 2728 4718 6587 - 2729 + 2728 77571 @@ -22623,57 +22668,57 @@ 1 6 - 2729 + 2728 12 14 - 2729 + 2728 17 26 - 2729 + 2728 39 56 - 2729 + 2728 83 110 - 2729 + 2728 153 232 - 2729 + 2728 316 400 - 2729 + 2728 468 545 - 2729 + 2728 626 754 - 2729 + 2728 951 1491 - 2729 + 2728 4718 6587 - 2729 + 2728 77571 @@ -22694,57 +22739,57 @@ 1 4 - 2729 + 2728 7 10 - 2729 + 2728 11 17 - 2729 + 2728 18 23 - 2729 + 2728 26 38 - 2729 + 2728 39 49 - 2729 + 2728 57 67 - 2729 + 2728 72 79 - 2729 + 2728 95 101 - 2729 + 2728 105 106 - 2729 + 2728 106 132 - 2729 + 2728 140 @@ -22765,57 +22810,57 @@ 1 5 - 2729 + 2728 7 10 - 2729 + 2728 11 18 - 2729 + 2728 22 32 - 2729 + 2728 46 63 - 2729 + 2728 85 119 - 2729 + 2728 142 185 - 2729 + 2728 212 228 - 2729 + 2728 253 275 - 2729 + 2728 307 423 - 2729 + 2728 580 1324 - 2729 + 2728 3579 @@ -22836,57 +22881,57 @@ 1 6 - 2729 + 2728 7 8 - 2729 + 2728 10 19 - 2729 + 2728 23 36 - 2729 + 2728 45 59 - 2729 + 2728 73 97 - 2729 + 2728 115 131 - 2729 + 2728 140 148 - 2729 + 2728 168 181 - 2729 + 2728 248 363 - 2729 + 2728 473 530 - 2729 + 2728 587 @@ -22907,72 +22952,72 @@ 1 3 - 60059 + 60037 3 5 - 61424 + 61401 5 6 - 36854 + 36841 6 7 - 61424 + 61401 7 8 - 51869 + 51850 8 10 - 58694 + 58672 10 15 - 65519 + 65495 15 27 - 61424 + 61401 27 41 - 61424 + 61401 41 65 - 61424 + 61401 65 157 - 65519 + 65495 162 817 - 61424 + 61401 818 832 - 66884 + 66859 832 1187 - 27299 + 27289 @@ -22988,52 +23033,52 @@ 1 2 - 91454 + 91420 2 3 - 188367 + 188298 3 4 - 113293 + 113252 4 5 - 77804 + 77775 5 8 - 72344 + 72317 8 14 - 61424 + 61401 14 295 - 61424 + 61401 330 775 - 50504 + 50485 776 778 - 65519 + 65495 787 888 - 19109 + 19102 @@ -23049,62 +23094,62 @@ 1 2 - 50504 + 50485 2 3 - 65519 + 65495 3 4 - 50504 + 50485 4 5 - 66884 + 66859 5 6 - 121483 + 121438 6 7 - 114658 + 114616 7 8 - 50504 + 50485 8 12 - 61424 + 61401 12 18 - 69614 + 69588 18 24 - 68249 + 68224 24 37 - 62789 + 62766 37 55 - 19109 + 19102 @@ -23120,67 +23165,67 @@ 1 3 - 69614 + 69588 3 4 - 39584 + 39569 4 5 - 73709 + 73682 5 6 - 88724 + 88691 6 8 - 62789 + 62766 8 12 - 70979 + 70953 12 19 - 61424 + 61401 19 27 - 69614 + 69588 27 41 - 61424 + 61401 42 170 - 61424 + 61401 205 780 - 57329 + 57308 781 783 - 65519 + 65495 791 893 - 19109 + 19102 @@ -23196,47 +23241,47 @@ 1 2 - 79169 + 79139 2 3 - 76439 + 76411 3 4 - 151513 + 151457 4 5 - 155608 + 155551 5 6 - 92818 + 92784 6 10 - 68249 + 68224 10 12 - 46409 + 46392 12 15 - 69614 + 69588 15 24 - 61424 + 61401 @@ -23246,23 +23291,23 @@ xmlNs - 1287181 + 1286707 id - 8189 + 8186 prefixName - 9554 + 9551 URI - 8189 + 8186 fileid - 749376 + 749100 @@ -23276,7 +23321,7 @@ 1 2 - 6824 + 6822 2 @@ -23297,7 +23342,7 @@ 1 2 - 8189 + 8186 @@ -23354,7 +23399,7 @@ 1 2 - 9554 + 9551 @@ -23370,7 +23415,7 @@ 1 2 - 9554 + 9551 @@ -23432,7 +23477,7 @@ 1 2 - 8189 + 8186 @@ -23448,7 +23493,7 @@ 1 2 - 6824 + 6822 2 @@ -23510,17 +23555,17 @@ 1 2 - 334421 + 334298 2 3 - 292106 + 291999 3 4 - 122848 + 122803 @@ -23536,17 +23581,17 @@ 1 2 - 334421 + 334298 2 3 - 292106 + 291999 3 4 - 122848 + 122803 @@ -23562,17 +23607,17 @@ 1 2 - 334421 + 334298 2 3 - 292106 + 291999 3 4 - 122848 + 122803 @@ -23582,19 +23627,19 @@ xmlHasNs - 25966114 + 25956554 elementId - 25966114 + 25956554 nsId - 8189 + 8186 fileid - 745281 + 745007 @@ -23608,7 +23653,7 @@ 1 2 - 25966114 + 25956554 @@ -23624,7 +23669,7 @@ 1 2 - 25966114 + 25956554 @@ -23722,77 +23767,77 @@ 1 3 - 45044 + 45027 3 5 - 62789 + 62766 5 6 - 34124 + 34112 6 7 - 65519 + 65495 7 8 - 49139 + 49121 8 10 - 61424 + 61401 10 15 - 65519 + 65495 15 25 - 55964 + 55943 25 36 - 57329 + 57308 36 49 - 58694 + 58672 49 54 - 15014 + 15009 54 55 - 58694 + 58672 55 81 - 57329 + 57308 81 298 - 55964 + 55943 298 833 - 2729 + 2728 @@ -23808,17 +23853,17 @@ 1 2 - 335786 + 335662 2 3 - 289376 + 289270 3 4 - 120118 + 120074 @@ -23828,23 +23873,23 @@ xmlComments - 107485764 + 107446189 id - 107485764 + 107446189 text - 1696676 + 1696051 parentid - 842195 + 841885 fileid - 787596 + 787306 @@ -23858,7 +23903,7 @@ 1 2 - 107485764 + 107446189 @@ -23874,7 +23919,7 @@ 1 2 - 107485764 + 107446189 @@ -23890,7 +23935,7 @@ 1 2 - 107485764 + 107446189 @@ -23906,67 +23951,67 @@ 1 2 - 233412 + 233326 2 7 - 139228 + 139177 7 32 - 140593 + 140541 32 61 - 128308 + 128261 61 76 - 128308 + 128261 76 84 - 136498 + 136448 84 90 - 125578 + 125532 90 94 - 111928 + 111887 94 95 - 60059 + 60037 95 96 - 101008 + 100971 96 98 - 140593 + 140541 98 100 - 126943 + 126896 100 460 - 124213 + 124167 @@ -23982,67 +24027,67 @@ 1 2 - 236142 + 236055 2 6 - 135133 + 135083 6 32 - 143323 + 143270 32 61 - 129673 + 129625 61 75 - 132403 + 132354 75 84 - 148783 + 148728 84 90 - 122848 + 122803 90 94 - 120118 + 120074 94 95 - 66884 + 66859 95 96 - 103738 + 103700 96 98 - 143323 + 143270 98 100 - 135133 + 135083 100 460 - 79169 + 79139 @@ -24058,67 +24103,67 @@ 1 2 - 247062 + 246971 2 7 - 133768 + 133719 7 32 - 133768 + 133719 32 61 - 129673 + 129625 61 75 - 132403 + 132354 75 84 - 148783 + 148728 84 90 - 122848 + 122803 90 94 - 120118 + 120074 94 95 - 66884 + 66859 95 96 - 103738 + 103700 96 98 - 143323 + 143270 98 100 - 135133 + 135083 100 460 - 79169 + 79139 @@ -24134,22 +24179,22 @@ 1 2 - 670207 + 669961 2 724 - 64154 + 64130 726 830 - 77804 + 77775 831 941 - 30029 + 30018 @@ -24165,27 +24210,27 @@ 1 2 - 670207 + 669961 2 697 - 64154 + 64130 697 795 - 34124 + 34112 795 827 - 64154 + 64130 838 899 - 9554 + 9551 @@ -24201,7 +24246,7 @@ 1 2 - 842195 + 841885 @@ -24217,27 +24262,27 @@ 1 2 - 601958 + 601736 2 549 - 60059 + 60037 579 829 - 40949 + 40934 829 832 - 65519 + 65495 834 941 - 19109 + 19102 @@ -24253,27 +24298,27 @@ 1 2 - 601958 + 601736 2 536 - 60059 + 60037 560 795 - 51869 + 51850 795 812 - 60059 + 60037 819 899 - 13649 + 13644 @@ -24289,12 +24334,12 @@ 1 2 - 748011 + 747736 2 6 - 39584 + 39569 @@ -24304,19 +24349,19 @@ xmlChars - 101574013 + 101536615 id - 101574013 + 101536615 text - 78006178 + 77977457 parentid - 101574013 + 101536615 idx @@ -24324,11 +24369,11 @@ isCDATA - 2729 + 2728 fileid - 177448 + 177382 @@ -24342,7 +24387,7 @@ 1 2 - 101574013 + 101536615 @@ -24358,7 +24403,7 @@ 1 2 - 101574013 + 101536615 @@ -24374,7 +24419,7 @@ 1 2 - 101574013 + 101536615 @@ -24390,7 +24435,7 @@ 1 2 - 101574013 + 101536615 @@ -24406,7 +24451,7 @@ 1 2 - 101574013 + 101536615 @@ -24422,17 +24467,17 @@ 1 2 - 66746414 + 66721839 2 3 - 7010564 + 7007983 3 128 - 4249199 + 4247634 @@ -24448,17 +24493,17 @@ 1 2 - 66746414 + 66721839 2 3 - 7010564 + 7007983 3 128 - 4249199 + 4247634 @@ -24474,7 +24519,7 @@ 1 2 - 78006178 + 77977457 @@ -24490,7 +24535,7 @@ 1 2 - 78006178 + 77977457 @@ -24506,12 +24551,12 @@ 1 2 - 74636029 + 74608549 2 76 - 3370148 + 3368907 @@ -24527,7 +24572,7 @@ 1 2 - 101574013 + 101536615 @@ -24543,7 +24588,7 @@ 1 2 - 101574013 + 101536615 @@ -24559,7 +24604,7 @@ 1 2 - 101574013 + 101536615 @@ -24575,7 +24620,7 @@ 1 2 - 101574013 + 101536615 @@ -24591,7 +24636,7 @@ 1 2 - 101574013 + 101536615 @@ -24750,7 +24795,7 @@ 1 2 - 2729 + 2728 @@ -24787,57 +24832,57 @@ 1 2 - 15014 + 15009 2 23 - 13649 + 13644 24 243 - 13649 + 13644 294 566 - 13649 + 13644 610 686 - 13649 + 13644 691 764 - 13649 + 13644 765 775 - 13649 + 13644 775 776 - 4094 + 4093 776 777 - 49139 + 49121 777 803 - 13649 + 13644 807 888 - 13649 + 13644 @@ -24853,67 +24898,67 @@ 1 2 - 15014 + 15009 2 21 - 13649 + 13644 22 188 - 13649 + 13644 208 492 - 13649 + 13644 525 589 - 13649 + 13644 590 638 - 13649 + 13644 639 651 - 13649 + 13644 652 656 - 12284 + 12280 656 659 - 16379 + 16373 659 663 - 15014 + 15009 663 667 - 13649 + 13644 667 701 - 13649 + 13644 702 744 - 9554 + 9551 @@ -24929,57 +24974,57 @@ 1 2 - 15014 + 15009 2 23 - 13649 + 13644 24 243 - 13649 + 13644 294 566 - 13649 + 13644 610 686 - 13649 + 13644 691 764 - 13649 + 13644 765 775 - 13649 + 13644 775 776 - 4094 + 4093 776 777 - 49139 + 49121 777 803 - 13649 + 13644 807 888 - 13649 + 13644 @@ -24995,7 +25040,7 @@ 1 2 - 177448 + 177382 @@ -25011,12 +25056,12 @@ 1 2 - 43679 + 43663 2 3 - 133768 + 133719 @@ -25026,15 +25071,15 @@ xmllocations - 447840746 + 447675856 xmlElement - 446561755 + 446397336 location - 419653800 + 419499288 @@ -25048,12 +25093,12 @@ 1 2 - 446553565 + 446389149 2 454 - 8189 + 8186 @@ -25069,12 +25114,12 @@ 1 2 - 410141218 + 409990208 2 25 - 9512582 + 9509079 @@ -25315,19 +25360,19 @@ ktComments - 133768 + 133719 id - 133768 + 133719 kind - 4094 + 4093 text - 96913 + 96878 @@ -25341,7 +25386,7 @@ 1 2 - 133768 + 133719 @@ -25357,7 +25402,7 @@ 1 2 - 133768 + 133719 @@ -25425,12 +25470,12 @@ 1 2 - 92818 + 92784 4 23 - 4094 + 4093 @@ -25446,7 +25491,7 @@ 1 2 - 96913 + 96878 @@ -25456,19 +25501,19 @@ ktCommentSections - 59246 + 59191 id - 59246 + 59191 comment - 54224 + 54069 content - 50410 + 50263 @@ -25482,7 +25527,7 @@ 1 2 - 59246 + 59191 @@ -25498,7 +25543,7 @@ 1 2 - 59246 + 59191 @@ -25514,12 +25559,12 @@ 1 2 - 52208 + 52013 2 18 - 2015 + 2055 @@ -25535,12 +25580,12 @@ 1 2 - 52208 + 52013 2 18 - 2015 + 2055 @@ -25556,17 +25601,17 @@ 1 2 - 44628 + 44482 2 3 - 4836 + 4801 3 63 - 945 + 979 @@ -25582,17 +25627,17 @@ 1 2 - 44737 + 44594 2 3 - 4743 + 4705 3 56 - 930 + 963 @@ -25602,15 +25647,15 @@ ktCommentSectionNames - 5022 + 5122 id - 5022 + 5122 name - 15 + 16 @@ -25624,7 +25669,7 @@ 1 2 - 5022 + 5122 @@ -25638,9 +25683,9 @@ 12 - 324 - 325 - 15 + 319 + 320 + 16 @@ -25650,15 +25695,15 @@ ktCommentSectionSubjectNames - 5022 + 5122 id - 5022 + 5122 subjectname - 3301 + 3388 @@ -25672,7 +25717,7 @@ 1 2 - 5022 + 5122 @@ -25688,22 +25733,22 @@ 1 2 - 2511 + 2601 2 3 - 496 + 497 3 - 9 - 248 + 10 + 256 - 10 - 15 - 46 + 13 + 16 + 32 @@ -25713,15 +25758,15 @@ ktCommentOwners - 84203 + 82540 id - 53480 + 53314 owner - 82173 + 80437 @@ -25735,22 +25780,22 @@ 1 2 - 34335 + 34638 2 3 - 12184 + 12076 3 4 - 4526 + 4496 4 6 - 2433 + 2103 @@ -25766,12 +25811,12 @@ 1 2 - 80142 + 78333 2 3 - 2030 + 2103 @@ -25781,15 +25826,15 @@ ktExtensionFunctions - 702967 + 702708 id - 702967 + 702708 typeid - 84629 + 84597 kttypeid @@ -25807,7 +25852,7 @@ 1 2 - 702967 + 702708 @@ -25823,7 +25868,7 @@ 1 2 - 702967 + 702708 @@ -25839,12 +25884,12 @@ 1 2 - 53234 + 53214 2 3 - 6824 + 6822 3 @@ -25854,22 +25899,22 @@ 4 5 - 6824 + 6822 5 12 - 6824 + 6822 12 69 - 6824 + 6822 84 174 - 2729 + 2728 @@ -25885,7 +25930,7 @@ 1 2 - 84629 + 84597 @@ -25927,15 +25972,15 @@ ktProperties - 30317687 + 30306525 id - 30317687 + 30306525 nodeName - 10696024 + 10692086 @@ -25949,7 +25994,7 @@ 1 2 - 30317687 + 30306525 @@ -25965,22 +26010,22 @@ 1 2 - 7889614 + 7886709 2 3 - 1216201 + 1215754 3 8 - 809436 + 809138 8 554 - 780771 + 780484 @@ -25990,15 +26035,15 @@ ktPropertyGetters - 4569970 + 4568288 id - 4569970 + 4568288 getter - 4569970 + 4568288 @@ -26012,7 +26057,7 @@ 1 2 - 4569970 + 4568288 @@ -26028,7 +26073,7 @@ 1 2 - 4569970 + 4568288 @@ -26038,15 +26083,15 @@ ktPropertySetters - 290741 + 290634 id - 290741 + 290634 setter - 290741 + 290634 @@ -26060,7 +26105,7 @@ 1 2 - 290741 + 290634 @@ -26076,7 +26121,7 @@ 1 2 - 290741 + 290634 @@ -26086,15 +26131,15 @@ ktPropertyBackingFields - 23615610 + 23606915 id - 23615610 + 23606915 backingField - 23615610 + 23606915 @@ -26108,7 +26153,7 @@ 1 2 - 23615610 + 23606915 @@ -26124,7 +26169,7 @@ 1 2 - 23615610 + 23606915 @@ -26134,11 +26179,11 @@ ktSyntheticBody - 10308 + 10307 id - 10308 + 10307 kind @@ -26156,7 +26201,7 @@ 1 2 - 10308 + 10307 @@ -26182,37 +26227,37 @@ ktLocalFunction - 2729 + 2728 id - 2729 + 2728 ktInitializerAssignment - 393115 + 392971 id - 393115 + 392971 ktPropertyDelegates - 5698 + 5664 id - 5698 + 5664 variableId - 5698 + 5664 @@ -26226,7 +26271,7 @@ 1 2 - 5698 + 5664 @@ -26242,7 +26287,7 @@ 1 2 - 5698 + 5664 @@ -26252,15 +26297,15 @@ compiler_generated - 120 + 491650 id - 120 + 491650 kind - 2 + 5153 @@ -26274,7 +26319,7 @@ 1 2 - 120 + 491650 @@ -26288,9 +26333,29 @@ 12 - 42 - 43 - 2 + 2 + 3 + 1030 + + + 5 + 6 + 1030 + + + 10 + 11 + 1030 + + + 184 + 185 + 1030 + + + 276 + 277 + 1030 @@ -26300,15 +26365,15 @@ ktFunctionOriginalNames - 981424 + 1147529 id - 981424 + 1147529 name - 66884 + 79139 @@ -26322,7 +26387,7 @@ 1 2 - 981424 + 1147529 @@ -26338,22 +26403,27 @@ 1 2 - 53234 + 55943 2 - 3 - 5459 + 4 + 6822 - 3 - 96 - 5459 + 7 + 14 + 4093 - 96 + 16 + 31 + 6822 + + + 92 380 - 2729 + 5457 From 28a8999b7472cf8d1feba71e7576d32a165446a3 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Fri, 1 Jul 2022 12:42:15 +0100 Subject: [PATCH 314/736] Java: Add an upgrade script --- .../old.dbscheme | 1228 ++++++++++++++++ .../semmlecode.dbscheme | 1236 +++++++++++++++++ .../upgrade.properties | 2 + 3 files changed, 2466 insertions(+) create mode 100644 java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/old.dbscheme create mode 100755 java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/semmlecode.dbscheme create mode 100644 java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/upgrade.properties diff --git a/java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/old.dbscheme b/java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/old.dbscheme new file mode 100644 index 00000000000..cf58c7d9b1f --- /dev/null +++ b/java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/old.dbscheme @@ -0,0 +1,1228 @@ +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * javac A.java B.java C.java + * + * 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: + * + * javac A.java B.java C.java + */ + unique int id : @compilation, + int kind: int ref, + string cwd : string ref, + string name : string ref +); + +case @compilation.kind of + 1 = @javacompilation +| 2 = @kotlincompilation +; + +compilation_started( + int id : @compilation ref +) + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--javac-args` + * 2 | A.java + * 3 | B.java + * 4 | C.java + */ +#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 + * + * javac A.java B.java C.java + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | A.java + * 1 | B.java + * 2 | C.java + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * For each file recorded in `compilation_compiling_files`, + * there will be a corresponding row in + * `compilation_compiling_files_completed` once extraction + * of that file is complete. The `result` will indicate the + * extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +#keyset[id, num] +compilation_compiling_files_completed( + int id : @compilation ref, + int num : int ref, + int result : int 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 +); + +/** + * The `cpu_seconds` and `elapsed_seconds` are the CPU time and elapsed + * time (respectively) that the original compilation (not the extraction) + * took for compiler invocation `id`. + */ +compilation_compiler_times( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float 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`. + * The `result` will indicate the extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref, + int result : int ref +); + +diagnostics( + unique int id: @diagnostic, + string generated_by: string ref, // TODO: Sync this with the other languages? + 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 +); + +/* + * External artifacts + */ + +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +snapshotDate( + unique date snapshotDate : date ref +); + +sourceLocationPrefix( + string prefix : string ref +); + +/* + * Duplicate code + */ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/* + * SMAP + */ + +smap_header( + int outputFileId: @file ref, + string outputFilename: string ref, + string defaultStratum: string ref +); + +smap_files( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + string inputFileName: string ref, + int inputFileId: @file ref +); + +smap_lines( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + int inputStartLine: int ref, + int inputLineCount: int ref, + int outputStartLine: int ref, + int outputLineIncrement: int ref +); + +/* + * Locations and files + */ + +@location = @location_default ; + +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 +); + +hasLocation( + int locatableid: @locatable ref, + int id: @location ref +); + +@sourceline = @locatable ; + +#keyset[element_id] +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int 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 +); + +/* + * Java + */ + +cupackage( + unique int id: @file ref, + int packageid: @package ref +); + +#keyset[fileid,keyName] +jarManifestMain( + int fileid: @file ref, + string keyName: string ref, + string value: string ref +); + +#keyset[fileid,entryName,keyName] +jarManifestEntries( + int fileid: @file ref, + string entryName: string ref, + string keyName: string ref, + string value: string ref +); + +packages( + unique int id: @package, + string nodeName: string ref +); + +primitives( + unique int id: @primitive, + string nodeName: string ref +); + +modifiers( + unique int id: @modifier, + string nodeName: string ref +); + +classes( + unique int id: @class, + string nodeName: string ref, + int parentid: @package ref, + int sourceid: @class ref +); + +file_class( + int id: @class ref +); + +class_object( + unique int id: @class ref, + unique int instance: @field ref +); + +type_companion_object( + unique int id: @classorinterface ref, + unique int instance: @field ref, + unique int companion_object: @class ref +); + +kt_nullable_types( + unique int id: @kt_nullable_type, + int classid: @reftype ref +) + +kt_notnull_types( + unique int id: @kt_notnull_type, + int classid: @reftype ref +) + +kt_type_alias( + unique int id: @kt_type_alias, + string name: string ref, + int kttypeid: @kt_type ref +) + +@kt_type = @kt_nullable_type | @kt_notnull_type + +isRecord( + unique int id: @class ref +); + +interfaces( + unique int id: @interface, + string nodeName: string ref, + int parentid: @package ref, + int sourceid: @interface ref +); + +fielddecls( + unique int id: @fielddecl, + int parentid: @reftype ref +); + +#keyset[fieldId] #keyset[fieldDeclId,pos] +fieldDeclaredIn( + int fieldId: @field ref, + int fieldDeclId: @fielddecl ref, + int pos: int ref +); + +fields( + unique int id: @field, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @field ref +); + +fieldsKotlinType( + unique int id: @field ref, + int kttypeid: @kt_type ref +); + +constrs( + unique int id: @constructor, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @constructor ref +); + +constrsKotlinType( + unique int id: @constructor ref, + int kttypeid: @kt_type ref +); + +methods( + unique int id: @method, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @method ref +); + +methodsKotlinType( + unique int id: @method ref, + int kttypeid: @kt_type ref +); + +#keyset[parentid,pos] +params( + unique int id: @param, + int typeid: @type ref, + int pos: int ref, + int parentid: @callable ref, + int sourceid: @param ref +); + +paramsKotlinType( + unique int id: @param ref, + int kttypeid: @kt_type ref +); + +paramName( + unique int id: @param ref, + string nodeName: string ref +); + +isVarargsParam( + int param: @param ref +); + +exceptions( + unique int id: @exception, + int typeid: @type ref, + int parentid: @callable ref +); + +isAnnotType( + int interfaceid: @interface ref +); + +isAnnotElem( + int methodid: @method ref +); + +annotValue( + int parentid: @annotation ref, + int id2: @method ref, + unique int value: @expr ref +); + +isEnumType( + int classid: @class ref +); + +isEnumConst( + int fieldid: @field ref +); + +#keyset[parentid,pos] +typeVars( + unique int id: @typevariable, + string nodeName: string ref, + int pos: int ref, + int kind: int ref, // deprecated + int parentid: @classorinterfaceorcallable ref +); + +wildcards( + unique int id: @wildcard, + string nodeName: string ref, + int kind: int ref +); + +#keyset[parentid,pos] +typeBounds( + unique int id: @typebound, + int typeid: @reftype ref, + int pos: int ref, + int parentid: @boundedtype ref +); + +#keyset[parentid,pos] +typeArgs( + int argumentid: @reftype ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +isParameterized( + int memberid: @member ref +); + +isRaw( + int memberid: @member ref +); + +erasure( + unique int memberid: @member ref, + int erasureid: @member ref +); + +#keyset[classid] #keyset[parent] +isAnonymClass( + int classid: @class ref, + int parent: @classinstancexpr ref +); + +#keyset[typeid] #keyset[parent] +isLocalClassOrInterface( + int typeid: @classorinterface ref, + int parent: @localtypedeclstmt ref +); + +isDefConstr( + int constructorid: @constructor ref +); + +#keyset[exprId] +lambdaKind( + int exprId: @lambdaexpr ref, + int bodyKind: int ref +); + +arrays( + unique int id: @array, + string nodeName: string ref, + int elementtypeid: @type ref, + int dimension: int ref, + int componenttypeid: @type ref +); + +enclInReftype( + unique int child: @reftype ref, + int parent: @reftype ref +); + +extendsReftype( + int id1: @reftype ref, + int id2: @classorinterface ref +); + +implInterface( + int id1: @classorarray ref, + int id2: @interface ref +); + +permits( + int id1: @classorinterface ref, + int id2: @classorinterface ref +); + +hasModifier( + int id1: @modifiable ref, + int id2: @modifier ref +); + +imports( + unique int id: @import, + int holder: @classorinterfaceorpackage ref, + string name: string ref, + int kind: int ref +); + +#keyset[parent,idx] +stmts( + unique int id: @stmt, + int kind: int ref, + int parent: @stmtparent ref, + int idx: int ref, + int bodydecl: @callable ref +); + +@stmtparent = @callable | @stmt | @switchexpr | @whenexpr| @stmtexpr; + +case @stmt.kind of + 0 = @block +| 1 = @ifstmt +| 2 = @forstmt +| 3 = @enhancedforstmt +| 4 = @whilestmt +| 5 = @dostmt +| 6 = @trystmt +| 7 = @switchstmt +| 8 = @synchronizedstmt +| 9 = @returnstmt +| 10 = @throwstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @emptystmt +| 14 = @exprstmt +| 15 = @labeledstmt +| 16 = @assertstmt +| 17 = @localvariabledeclstmt +| 18 = @localtypedeclstmt +| 19 = @constructorinvocationstmt +| 20 = @superconstructorinvocationstmt +| 21 = @case +| 22 = @catchclause +| 23 = @yieldstmt +| 24 = @errorstmt +| 25 = @whenbranch +; + +#keyset[parent,idx] +exprs( + unique int id: @expr, + int kind: int ref, + int typeid: @type ref, + int parent: @exprparent ref, + int idx: int ref +); + +exprsKotlinType( + unique int id: @expr ref, + int kttypeid: @kt_type ref +); + +callableEnclosingExpr( + unique int id: @expr ref, + int callable_id: @callable ref +); + +statementEnclosingExpr( + unique int id: @expr ref, + int statement_id: @stmt ref +); + +isParenthesized( + unique int id: @expr ref, + int parentheses: int ref +); + +case @expr.kind of + 1 = @arrayaccess +| 2 = @arraycreationexpr +| 3 = @arrayinit +| 4 = @assignexpr +| 5 = @assignaddexpr +| 6 = @assignsubexpr +| 7 = @assignmulexpr +| 8 = @assigndivexpr +| 9 = @assignremexpr +| 10 = @assignandexpr +| 11 = @assignorexpr +| 12 = @assignxorexpr +| 13 = @assignlshiftexpr +| 14 = @assignrshiftexpr +| 15 = @assignurshiftexpr +| 16 = @booleanliteral +| 17 = @integerliteral +| 18 = @longliteral +| 19 = @floatingpointliteral +| 20 = @doubleliteral +| 21 = @characterliteral +| 22 = @stringliteral +| 23 = @nullliteral +| 24 = @mulexpr +| 25 = @divexpr +| 26 = @remexpr +| 27 = @addexpr +| 28 = @subexpr +| 29 = @lshiftexpr +| 30 = @rshiftexpr +| 31 = @urshiftexpr +| 32 = @andbitexpr +| 33 = @orbitexpr +| 34 = @xorbitexpr +| 35 = @andlogicalexpr +| 36 = @orlogicalexpr +| 37 = @ltexpr +| 38 = @gtexpr +| 39 = @leexpr +| 40 = @geexpr +| 41 = @eqexpr +| 42 = @neexpr +| 43 = @postincexpr +| 44 = @postdecexpr +| 45 = @preincexpr +| 46 = @predecexpr +| 47 = @minusexpr +| 48 = @plusexpr +| 49 = @bitnotexpr +| 50 = @lognotexpr +| 51 = @castexpr +| 52 = @newexpr +| 53 = @conditionalexpr +| 54 = @parexpr // deprecated +| 55 = @instanceofexpr +| 56 = @localvariabledeclexpr +| 57 = @typeliteral +| 58 = @thisaccess +| 59 = @superaccess +| 60 = @varaccess +| 61 = @methodaccess +| 62 = @unannotatedtypeaccess +| 63 = @arraytypeaccess +| 64 = @packageaccess +| 65 = @wildcardtypeaccess +| 66 = @declannotation +| 67 = @uniontypeaccess +| 68 = @lambdaexpr +| 69 = @memberref +| 70 = @annotatedtypeaccess +| 71 = @typeannotation +| 72 = @intersectiontypeaccess +| 73 = @switchexpr +| 74 = @errorexpr +| 75 = @whenexpr +| 76 = @getclassexpr +| 77 = @safecastexpr +| 78 = @implicitcastexpr +| 79 = @implicitnotnullexpr +| 80 = @implicitcoerciontounitexpr +| 81 = @notinstanceofexpr +| 82 = @stmtexpr +| 83 = @stringtemplateexpr +| 84 = @notnullexpr +| 85 = @unsafecoerceexpr +| 86 = @valueeqexpr +| 87 = @valueneexpr +| 88 = @propertyref +; + +/** Holds if this `when` expression was written as an `if` expression. */ +when_if(unique int id: @whenexpr ref); + +/** Holds if this `when` branch was written as an `else` branch. */ +when_branch_else(unique int id: @whenbranch ref); + +@classinstancexpr = @newexpr | @lambdaexpr | @memberref | @propertyref + +@annotation = @declannotation | @typeannotation +@typeaccess = @unannotatedtypeaccess | @annotatedtypeaccess + +@assignment = @assignexpr + | @assignop; + +@unaryassignment = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr; + +@assignop = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + | @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignurshiftexpr; + +@literal = @booleanliteral + | @integerliteral + | @longliteral + | @floatingpointliteral + | @doubleliteral + | @characterliteral + | @stringliteral + | @nullliteral; + +@binaryexpr = @mulexpr + | @divexpr + | @remexpr + | @addexpr + | @subexpr + | @lshiftexpr + | @rshiftexpr + | @urshiftexpr + | @andbitexpr + | @orbitexpr + | @xorbitexpr + | @andlogicalexpr + | @orlogicalexpr + | @ltexpr + | @gtexpr + | @leexpr + | @geexpr + | @eqexpr + | @neexpr + | @valueeqexpr + | @valueneexpr; + +@unaryexpr = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr + | @minusexpr + | @plusexpr + | @bitnotexpr + | @lognotexpr + | @notnullexpr; + +@caller = @classinstancexpr + | @methodaccess + | @constructorinvocationstmt + | @superconstructorinvocationstmt; + +callableBinding( + unique int callerid: @caller ref, + int callee: @callable ref +); + +memberRefBinding( + unique int id: @expr ref, + int callable: @callable ref +); + +propertyRefGetBinding( + unique int id: @expr ref, + int getter: @callable ref +); + +propertyRefFieldBinding( + unique int id: @expr ref, + int field: @field ref +); + +propertyRefSetBinding( + unique int id: @expr ref, + int setter: @callable ref +); + +@exprparent = @stmt | @expr | @whenbranch | @callable | @field | @fielddecl | @class | @interface | @param | @localvar | @typevariable; + +variableBinding( + unique int expr: @varaccess ref, + int variable: @variable ref +); + +@variable = @localscopevariable | @field; + +@localscopevariable = @localvar | @param; + +localvars( + unique int id: @localvar, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @localvariabledeclexpr ref +); + +localvarsKotlinType( + unique int id: @localvar ref, + int kttypeid: @kt_type ref +); + +@namedexprorstmt = @breakstmt + | @continuestmt + | @labeledstmt + | @literal; + +namestrings( + string name: string ref, + string value: string ref, + unique int parent: @namedexprorstmt ref +); + +/* + * Modules + */ + +#keyset[name] +modules( + unique int id: @module, + string name: string ref +); + +isOpen( + int id: @module ref +); + +#keyset[fileId] +cumodule( + int fileId: @file ref, + int moduleId: @module ref +); + +@directive = @requires + | @exports + | @opens + | @uses + | @provides + +#keyset[directive] +directives( + int id: @module ref, + int directive: @directive ref +); + +requires( + unique int id: @requires, + int target: @module ref +); + +isTransitive( + int id: @requires ref +); + +isStatic( + int id: @requires ref +); + +exports( + unique int id: @exports, + int target: @package ref +); + +exportsTo( + int id: @exports ref, + int target: @module ref +); + +opens( + unique int id: @opens, + int target: @package ref +); + +opensTo( + int id: @opens ref, + int target: @module ref +); + +uses( + unique int id: @uses, + string serviceInterface: string ref +); + +provides( + unique int id: @provides, + string serviceInterface: string ref +); + +providesWith( + int id: @provides ref, + string serviceImpl: string ref +); + +/* + * Javadoc + */ + +javadoc( + unique int id: @javadoc +); + +isNormalComment( + int commentid : @javadoc ref +); + +isEolComment( + int commentid : @javadoc ref +); + +hasJavadoc( + int documentableid: @member ref, + int javadocid: @javadoc ref +); + +#keyset[parentid,idx] +javadocTag( + unique int id: @javadocTag, + string name: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +#keyset[parentid,idx] +javadocText( + unique int id: @javadocText, + string text: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +@javadocParent = @javadoc | @javadocTag; +@javadocElement = @javadocTag | @javadocText; + +@classorinterface = @interface | @class; +@classorinterfaceorpackage = @classorinterface | @package; +@classorinterfaceorcallable = @classorinterface | @callable; +@boundedtype = @typevariable | @wildcard; +@reftype = @classorinterface | @array | @boundedtype; +@classorarray = @class | @array; +@type = @primitive | @reftype; +@callable = @method | @constructor; + +/** A program element that has a name. */ +@element = @package | @modifier | @annotation | + @locatableElement; + +@locatableElement = @file | @primitive | @class | @interface | @method | @constructor | @param | @exception | @field | + @boundedtype | @array | @localvar | @expr | @stmt | @import | @fielddecl | @kt_type | @kt_type_alias | + @kt_property; + +@modifiable = @member_modifiable| @param | @localvar ; + +@member_modifiable = @class | @interface | @method | @constructor | @field | @kt_property; + +@member = @method | @constructor | @field | @reftype ; + +/** A program element that has a location. */ +@locatable = @typebound | @javadoc | @javadocTag | @javadocText | @xmllocatable | @ktcomment | + @locatableElement; + +@top = @element | @locatable | @folder; + +/* + * 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; + +/* + * configuration files with key value pairs + */ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +ktComments( + unique int id: @ktcomment, + int kind: int ref, + string text : string ref +) + +ktCommentSections( + unique int id: @ktcommentsection, + int comment: @ktcomment ref, + string content : string ref +) + +ktCommentSectionNames( + unique int id: @ktcommentsection ref, + string name : string ref +) + +ktCommentSectionSubjectNames( + unique int id: @ktcommentsection ref, + string subjectname : string ref +) + +#keyset[id, owner] +ktCommentOwners( + int id: @ktcomment ref, + int owner: @top ref +) + +ktExtensionFunctions( + unique int id: @method ref, + int typeid: @type ref, + int kttypeid: @kt_type ref +) + +ktProperties( + unique int id: @kt_property, + string nodeName: string ref +) + +ktPropertyGetters( + unique int id: @kt_property ref, + int getter: @method ref +) + +ktPropertySetters( + unique int id: @kt_property ref, + int setter: @method ref +) + +ktPropertyBackingFields( + unique int id: @kt_property ref, + int backingField: @field ref +) + +ktSyntheticBody( + unique int id: @callable ref, + int kind: int ref + // 1: ENUM_VALUES + // 2: ENUM_VALUEOF +) + +ktLocalFunction( + unique int id: @method ref +) + +ktInitializerAssignment( + unique int id: @assignexpr ref +) + +ktPropertyDelegates( + unique int id: @kt_property ref, + unique int variableId: @variable ref +) + +/** + * If `id` is a compiler generated element, then the kind indicates the + * reason that the compiler generated it. + * See `Element.compilerGeneratedReason()` for an explanation of what + * each `kind` means. + */ +compiler_generated( + unique int id: @element ref, + int kind: int ref +) + +ktFunctionOriginalNames( + unique int id: @method ref, + string name: string ref +) diff --git a/java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/semmlecode.dbscheme b/java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/semmlecode.dbscheme new file mode 100755 index 00000000000..81ccfabe82e --- /dev/null +++ b/java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/semmlecode.dbscheme @@ -0,0 +1,1236 @@ +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * javac A.java B.java C.java + * + * 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: + * + * javac A.java B.java C.java + */ + unique int id : @compilation, + int kind: int ref, + string cwd : string ref, + string name : string ref +); + +case @compilation.kind of + 1 = @javacompilation +| 2 = @kotlincompilation +; + +compilation_started( + int id : @compilation ref +) + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--javac-args` + * 2 | A.java + * 3 | B.java + * 4 | C.java + */ +#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 + * + * javac A.java B.java C.java + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | A.java + * 1 | B.java + * 2 | C.java + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * For each file recorded in `compilation_compiling_files`, + * there will be a corresponding row in + * `compilation_compiling_files_completed` once extraction + * of that file is complete. The `result` will indicate the + * extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +#keyset[id, num] +compilation_compiling_files_completed( + int id : @compilation ref, + int num : int ref, + int result : int 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 +); + +/** + * The `cpu_seconds` and `elapsed_seconds` are the CPU time and elapsed + * time (respectively) that the original compilation (not the extraction) + * took for compiler invocation `id`. + */ +compilation_compiler_times( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float 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`. + * The `result` will indicate the extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref, + int result : int ref +); + +diagnostics( + unique int id: @diagnostic, + string generated_by: string ref, // TODO: Sync this with the other languages? + 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 +); + +/* + * External artifacts + */ + +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +snapshotDate( + unique date snapshotDate : date ref +); + +sourceLocationPrefix( + string prefix : string ref +); + +/* + * Duplicate code + */ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/* + * SMAP + */ + +smap_header( + int outputFileId: @file ref, + string outputFilename: string ref, + string defaultStratum: string ref +); + +smap_files( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + string inputFileName: string ref, + int inputFileId: @file ref +); + +smap_lines( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + int inputStartLine: int ref, + int inputLineCount: int ref, + int outputStartLine: int ref, + int outputLineIncrement: int ref +); + +/* + * Locations and files + */ + +@location = @location_default ; + +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 +); + +hasLocation( + int locatableid: @locatable ref, + int id: @location ref +); + +@sourceline = @locatable ; + +#keyset[element_id] +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int 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 +); + +/* + * Java + */ + +cupackage( + unique int id: @file ref, + int packageid: @package ref +); + +#keyset[fileid,keyName] +jarManifestMain( + int fileid: @file ref, + string keyName: string ref, + string value: string ref +); + +#keyset[fileid,entryName,keyName] +jarManifestEntries( + int fileid: @file ref, + string entryName: string ref, + string keyName: string ref, + string value: string ref +); + +packages( + unique int id: @package, + string nodeName: string ref +); + +primitives( + unique int id: @primitive, + string nodeName: string ref +); + +modifiers( + unique int id: @modifier, + string nodeName: string ref +); + +/** + * An errortype is used when the extractor is unable to extract a type + * correctly for some reason. + */ +error_type( + unique int id: @errortype +); + +classes( + unique int id: @class, + string nodeName: string ref, + int parentid: @package ref, + int sourceid: @class ref +); + +file_class( + int id: @class ref +); + +class_object( + unique int id: @class ref, + unique int instance: @field ref +); + +type_companion_object( + unique int id: @classorinterface ref, + unique int instance: @field ref, + unique int companion_object: @class ref +); + +kt_nullable_types( + unique int id: @kt_nullable_type, + int classid: @reftype ref +) + +kt_notnull_types( + unique int id: @kt_notnull_type, + int classid: @reftype ref +) + +kt_type_alias( + unique int id: @kt_type_alias, + string name: string ref, + int kttypeid: @kt_type ref +) + +@kt_type = @kt_nullable_type | @kt_notnull_type + +isRecord( + unique int id: @class ref +); + +interfaces( + unique int id: @interface, + string nodeName: string ref, + int parentid: @package ref, + int sourceid: @interface ref +); + +fielddecls( + unique int id: @fielddecl, + int parentid: @reftype ref +); + +#keyset[fieldId] #keyset[fieldDeclId,pos] +fieldDeclaredIn( + int fieldId: @field ref, + int fieldDeclId: @fielddecl ref, + int pos: int ref +); + +fields( + unique int id: @field, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @field ref +); + +fieldsKotlinType( + unique int id: @field ref, + int kttypeid: @kt_type ref +); + +constrs( + unique int id: @constructor, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @constructor ref +); + +constrsKotlinType( + unique int id: @constructor ref, + int kttypeid: @kt_type ref +); + +methods( + unique int id: @method, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @method ref +); + +methodsKotlinType( + unique int id: @method ref, + int kttypeid: @kt_type ref +); + +#keyset[parentid,pos] +params( + unique int id: @param, + int typeid: @type ref, + int pos: int ref, + int parentid: @callable ref, + int sourceid: @param ref +); + +paramsKotlinType( + unique int id: @param ref, + int kttypeid: @kt_type ref +); + +paramName( + unique int id: @param ref, + string nodeName: string ref +); + +isVarargsParam( + int param: @param ref +); + +exceptions( + unique int id: @exception, + int typeid: @type ref, + int parentid: @callable ref +); + +isAnnotType( + int interfaceid: @interface ref +); + +isAnnotElem( + int methodid: @method ref +); + +annotValue( + int parentid: @annotation ref, + int id2: @method ref, + unique int value: @expr ref +); + +isEnumType( + int classid: @class ref +); + +isEnumConst( + int fieldid: @field ref +); + +#keyset[parentid,pos] +typeVars( + unique int id: @typevariable, + string nodeName: string ref, + int pos: int ref, + int kind: int ref, // deprecated + int parentid: @classorinterfaceorcallable ref +); + +wildcards( + unique int id: @wildcard, + string nodeName: string ref, + int kind: int ref +); + +#keyset[parentid,pos] +typeBounds( + unique int id: @typebound, + int typeid: @reftype ref, + int pos: int ref, + int parentid: @boundedtype ref +); + +#keyset[parentid,pos] +typeArgs( + int argumentid: @reftype ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +isParameterized( + int memberid: @member ref +); + +isRaw( + int memberid: @member ref +); + +erasure( + unique int memberid: @member ref, + int erasureid: @member ref +); + +#keyset[classid] #keyset[parent] +isAnonymClass( + int classid: @class ref, + int parent: @classinstancexpr ref +); + +#keyset[typeid] #keyset[parent] +isLocalClassOrInterface( + int typeid: @classorinterface ref, + int parent: @localtypedeclstmt ref +); + +isDefConstr( + int constructorid: @constructor ref +); + +#keyset[exprId] +lambdaKind( + int exprId: @lambdaexpr ref, + int bodyKind: int ref +); + +arrays( + unique int id: @array, + string nodeName: string ref, + int elementtypeid: @type ref, + int dimension: int ref, + int componenttypeid: @type ref +); + +enclInReftype( + unique int child: @reftype ref, + int parent: @reftype ref +); + +extendsReftype( + int id1: @reftype ref, + int id2: @classorinterface ref +); + +implInterface( + int id1: @classorarray ref, + int id2: @interface ref +); + +permits( + int id1: @classorinterface ref, + int id2: @classorinterface ref +); + +hasModifier( + int id1: @modifiable ref, + int id2: @modifier ref +); + +imports( + unique int id: @import, + int holder: @classorinterfaceorpackage ref, + string name: string ref, + int kind: int ref +); + +#keyset[parent,idx] +stmts( + unique int id: @stmt, + int kind: int ref, + int parent: @stmtparent ref, + int idx: int ref, + int bodydecl: @callable ref +); + +@stmtparent = @callable | @stmt | @switchexpr | @whenexpr| @stmtexpr; + +case @stmt.kind of + 0 = @block +| 1 = @ifstmt +| 2 = @forstmt +| 3 = @enhancedforstmt +| 4 = @whilestmt +| 5 = @dostmt +| 6 = @trystmt +| 7 = @switchstmt +| 8 = @synchronizedstmt +| 9 = @returnstmt +| 10 = @throwstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @emptystmt +| 14 = @exprstmt +| 15 = @labeledstmt +| 16 = @assertstmt +| 17 = @localvariabledeclstmt +| 18 = @localtypedeclstmt +| 19 = @constructorinvocationstmt +| 20 = @superconstructorinvocationstmt +| 21 = @case +| 22 = @catchclause +| 23 = @yieldstmt +| 24 = @errorstmt +| 25 = @whenbranch +; + +#keyset[parent,idx] +exprs( + unique int id: @expr, + int kind: int ref, + int typeid: @type ref, + int parent: @exprparent ref, + int idx: int ref +); + +exprsKotlinType( + unique int id: @expr ref, + int kttypeid: @kt_type ref +); + +callableEnclosingExpr( + unique int id: @expr ref, + int callable_id: @callable ref +); + +statementEnclosingExpr( + unique int id: @expr ref, + int statement_id: @stmt ref +); + +isParenthesized( + unique int id: @expr ref, + int parentheses: int ref +); + +case @expr.kind of + 1 = @arrayaccess +| 2 = @arraycreationexpr +| 3 = @arrayinit +| 4 = @assignexpr +| 5 = @assignaddexpr +| 6 = @assignsubexpr +| 7 = @assignmulexpr +| 8 = @assigndivexpr +| 9 = @assignremexpr +| 10 = @assignandexpr +| 11 = @assignorexpr +| 12 = @assignxorexpr +| 13 = @assignlshiftexpr +| 14 = @assignrshiftexpr +| 15 = @assignurshiftexpr +| 16 = @booleanliteral +| 17 = @integerliteral +| 18 = @longliteral +| 19 = @floatingpointliteral +| 20 = @doubleliteral +| 21 = @characterliteral +| 22 = @stringliteral +| 23 = @nullliteral +| 24 = @mulexpr +| 25 = @divexpr +| 26 = @remexpr +| 27 = @addexpr +| 28 = @subexpr +| 29 = @lshiftexpr +| 30 = @rshiftexpr +| 31 = @urshiftexpr +| 32 = @andbitexpr +| 33 = @orbitexpr +| 34 = @xorbitexpr +| 35 = @andlogicalexpr +| 36 = @orlogicalexpr +| 37 = @ltexpr +| 38 = @gtexpr +| 39 = @leexpr +| 40 = @geexpr +| 41 = @eqexpr +| 42 = @neexpr +| 43 = @postincexpr +| 44 = @postdecexpr +| 45 = @preincexpr +| 46 = @predecexpr +| 47 = @minusexpr +| 48 = @plusexpr +| 49 = @bitnotexpr +| 50 = @lognotexpr +| 51 = @castexpr +| 52 = @newexpr +| 53 = @conditionalexpr +| 54 = @parexpr // deprecated +| 55 = @instanceofexpr +| 56 = @localvariabledeclexpr +| 57 = @typeliteral +| 58 = @thisaccess +| 59 = @superaccess +| 60 = @varaccess +| 61 = @methodaccess +| 62 = @unannotatedtypeaccess +| 63 = @arraytypeaccess +| 64 = @packageaccess +| 65 = @wildcardtypeaccess +| 66 = @declannotation +| 67 = @uniontypeaccess +| 68 = @lambdaexpr +| 69 = @memberref +| 70 = @annotatedtypeaccess +| 71 = @typeannotation +| 72 = @intersectiontypeaccess +| 73 = @switchexpr +| 74 = @errorexpr +| 75 = @whenexpr +| 76 = @getclassexpr +| 77 = @safecastexpr +| 78 = @implicitcastexpr +| 79 = @implicitnotnullexpr +| 80 = @implicitcoerciontounitexpr +| 81 = @notinstanceofexpr +| 82 = @stmtexpr +| 83 = @stringtemplateexpr +| 84 = @notnullexpr +| 85 = @unsafecoerceexpr +| 86 = @valueeqexpr +| 87 = @valueneexpr +| 88 = @propertyref +; + +/** Holds if this `when` expression was written as an `if` expression. */ +when_if(unique int id: @whenexpr ref); + +/** Holds if this `when` branch was written as an `else` branch. */ +when_branch_else(unique int id: @whenbranch ref); + +@classinstancexpr = @newexpr | @lambdaexpr | @memberref | @propertyref + +@annotation = @declannotation | @typeannotation +@typeaccess = @unannotatedtypeaccess | @annotatedtypeaccess + +@assignment = @assignexpr + | @assignop; + +@unaryassignment = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr; + +@assignop = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + | @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignurshiftexpr; + +@literal = @booleanliteral + | @integerliteral + | @longliteral + | @floatingpointliteral + | @doubleliteral + | @characterliteral + | @stringliteral + | @nullliteral; + +@binaryexpr = @mulexpr + | @divexpr + | @remexpr + | @addexpr + | @subexpr + | @lshiftexpr + | @rshiftexpr + | @urshiftexpr + | @andbitexpr + | @orbitexpr + | @xorbitexpr + | @andlogicalexpr + | @orlogicalexpr + | @ltexpr + | @gtexpr + | @leexpr + | @geexpr + | @eqexpr + | @neexpr + | @valueeqexpr + | @valueneexpr; + +@unaryexpr = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr + | @minusexpr + | @plusexpr + | @bitnotexpr + | @lognotexpr + | @notnullexpr; + +@caller = @classinstancexpr + | @methodaccess + | @constructorinvocationstmt + | @superconstructorinvocationstmt; + +callableBinding( + unique int callerid: @caller ref, + int callee: @callable ref +); + +memberRefBinding( + unique int id: @expr ref, + int callable: @callable ref +); + +propertyRefGetBinding( + unique int id: @expr ref, + int getter: @callable ref +); + +propertyRefFieldBinding( + unique int id: @expr ref, + int field: @field ref +); + +propertyRefSetBinding( + unique int id: @expr ref, + int setter: @callable ref +); + +@exprparent = @stmt | @expr | @whenbranch | @callable | @field | @fielddecl | @class | @interface | @param | @localvar | @typevariable; + +variableBinding( + unique int expr: @varaccess ref, + int variable: @variable ref +); + +@variable = @localscopevariable | @field; + +@localscopevariable = @localvar | @param; + +localvars( + unique int id: @localvar, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @localvariabledeclexpr ref +); + +localvarsKotlinType( + unique int id: @localvar ref, + int kttypeid: @kt_type ref +); + +@namedexprorstmt = @breakstmt + | @continuestmt + | @labeledstmt + | @literal; + +namestrings( + string name: string ref, + string value: string ref, + unique int parent: @namedexprorstmt ref +); + +/* + * Modules + */ + +#keyset[name] +modules( + unique int id: @module, + string name: string ref +); + +isOpen( + int id: @module ref +); + +#keyset[fileId] +cumodule( + int fileId: @file ref, + int moduleId: @module ref +); + +@directive = @requires + | @exports + | @opens + | @uses + | @provides + +#keyset[directive] +directives( + int id: @module ref, + int directive: @directive ref +); + +requires( + unique int id: @requires, + int target: @module ref +); + +isTransitive( + int id: @requires ref +); + +isStatic( + int id: @requires ref +); + +exports( + unique int id: @exports, + int target: @package ref +); + +exportsTo( + int id: @exports ref, + int target: @module ref +); + +opens( + unique int id: @opens, + int target: @package ref +); + +opensTo( + int id: @opens ref, + int target: @module ref +); + +uses( + unique int id: @uses, + string serviceInterface: string ref +); + +provides( + unique int id: @provides, + string serviceInterface: string ref +); + +providesWith( + int id: @provides ref, + string serviceImpl: string ref +); + +/* + * Javadoc + */ + +javadoc( + unique int id: @javadoc +); + +isNormalComment( + int commentid : @javadoc ref +); + +isEolComment( + int commentid : @javadoc ref +); + +hasJavadoc( + int documentableid: @member ref, + int javadocid: @javadoc ref +); + +#keyset[parentid,idx] +javadocTag( + unique int id: @javadocTag, + string name: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +#keyset[parentid,idx] +javadocText( + unique int id: @javadocText, + string text: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +@javadocParent = @javadoc | @javadocTag; +@javadocElement = @javadocTag | @javadocText; + +@classorinterface = @interface | @class; +@classorinterfaceorpackage = @classorinterface | @package; +@classorinterfaceorcallable = @classorinterface | @callable; +@boundedtype = @typevariable | @wildcard; +@reftype = @classorinterface | @array | @boundedtype | @errortype; +@classorarray = @class | @array; +@type = @primitive | @reftype; +@callable = @method | @constructor; + +/** A program element that has a name. */ +@element = @package | @modifier | @annotation | @errortype | + @locatableElement; + +@locatableElement = @file | @primitive | @class | @interface | @method | @constructor | @param | @exception | @field | + @boundedtype | @array | @localvar | @expr | @stmt | @import | @fielddecl | @kt_type | @kt_type_alias | + @kt_property; + +@modifiable = @member_modifiable| @param | @localvar ; + +@member_modifiable = @class | @interface | @method | @constructor | @field | @kt_property; + +@member = @method | @constructor | @field | @reftype ; + +/** A program element that has a location. */ +@locatable = @typebound | @javadoc | @javadocTag | @javadocText | @xmllocatable | @ktcomment | + @locatableElement; + +@top = @element | @locatable | @folder; + +/* + * 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; + +/* + * configuration files with key value pairs + */ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +ktComments( + unique int id: @ktcomment, + int kind: int ref, + string text : string ref +) + +ktCommentSections( + unique int id: @ktcommentsection, + int comment: @ktcomment ref, + string content : string ref +) + +ktCommentSectionNames( + unique int id: @ktcommentsection ref, + string name : string ref +) + +ktCommentSectionSubjectNames( + unique int id: @ktcommentsection ref, + string subjectname : string ref +) + +#keyset[id, owner] +ktCommentOwners( + int id: @ktcomment ref, + int owner: @top ref +) + +ktExtensionFunctions( + unique int id: @method ref, + int typeid: @type ref, + int kttypeid: @kt_type ref +) + +ktProperties( + unique int id: @kt_property, + string nodeName: string ref +) + +ktPropertyGetters( + unique int id: @kt_property ref, + int getter: @method ref +) + +ktPropertySetters( + unique int id: @kt_property ref, + int setter: @method ref +) + +ktPropertyBackingFields( + unique int id: @kt_property ref, + int backingField: @field ref +) + +ktSyntheticBody( + unique int id: @callable ref, + int kind: int ref + // 1: ENUM_VALUES + // 2: ENUM_VALUEOF +) + +ktLocalFunction( + unique int id: @method ref +) + +ktInitializerAssignment( + unique int id: @assignexpr ref +) + +ktPropertyDelegates( + unique int id: @kt_property ref, + unique int variableId: @variable ref +) + +/** + * If `id` is a compiler generated element, then the kind indicates the + * reason that the compiler generated it. + * See `Element.compilerGeneratedReason()` for an explanation of what + * each `kind` means. + */ +compiler_generated( + unique int id: @element ref, + int kind: int ref +) + +ktFunctionOriginalNames( + unique int id: @method ref, + string name: string ref +) diff --git a/java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/upgrade.properties b/java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/upgrade.properties new file mode 100644 index 00000000000..25c651f591b --- /dev/null +++ b/java/ql/lib/upgrades/cf58c7d9b1fa1eae9cdc20ce8f157c140ac0c3de/upgrade.properties @@ -0,0 +1,2 @@ +description: Add errortype +compatibility: full From 39406436bfa54a3ee3581573f4e4f1928c7a6c80 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 11 Jul 2022 15:11:13 +0200 Subject: [PATCH 315/736] Swift: extract `IfConfigDecl` This also adds `UnresolvedDeclRefExpr` tests, as `IfConfigDecl` consistently introduces those. --- swift/codegen/schema.yml | 11 ++++++- swift/extractor/infra/SwiftDispatcher.h | 19 ++++++++++-- swift/extractor/infra/SwiftTagTraits.h | 1 + swift/extractor/visitors/DeclVisitor.cpp | 14 +++++++++ swift/extractor/visitors/DeclVisitor.h | 7 +++++ swift/extractor/visitors/SwiftVisitor.h | 1 + swift/ql/lib/codeql/swift/elements.qll | 1 + .../swift/elements/decl/IfConfigClause.qll | 4 +++ .../elements/expr/UnresolvedDeclRefExpr.qll | 9 ++++-- .../swift/generated/GetImmediateParent.qll | 6 ++++ .../swift/generated/decl/IfConfigClause.qll | 30 +++++++++++++++++++ .../swift/generated/decl/IfConfigDecl.qll | 12 ++++++++ swift/ql/lib/swift.dbscheme | 30 +++++++++++++++++++ .../IfConfigClause/IfConfigClause.expected | 6 ++++ .../decl/IfConfigClause/IfConfigClause.ql | 10 +++++++ .../IfConfigClause_getCondition.expected | 4 +++ .../IfConfigClause_getCondition.ql | 7 +++++ .../IfConfigClause_getElement.expected | 18 +++++++++++ .../IfConfigClause_getElement.ql | 7 +++++ .../decl/IfConfigClause/if_config.swift | 10 +++++++ .../IfConfigClause/if_config_active.swift | 12 ++++++++ .../decl/IfConfigDecl/IfConfigDecl.expected | 1 + .../decl/IfConfigDecl/IfConfigDecl.ql | 7 +++++ .../IfConfigDecl_getClause.expected | 3 ++ .../IfConfigDecl/IfConfigDecl_getClause.ql | 7 +++++ .../decl/IfConfigDecl/MISSING_SOURCE.txt | 4 --- .../decl/IfConfigDecl/if_config.swift | 10 +++++++ .../UnresolvedDeclRefExpr.expected | 10 +++++++ .../UnresolvedDeclRefExpr.ql | 7 +++++ .../UnresolvedDeclRefExpr_getName.expected | 10 +++++++ .../UnresolvedDeclRefExpr_getName.ql | 7 +++++ .../UnresolvedDeclRefExpr_getType.expected | 0 .../UnresolvedDeclRefExpr_getType.ql | 7 +++++ .../unresolved_decl_ref.swift | 10 +++++++ 34 files changed, 293 insertions(+), 9 deletions(-) create mode 100644 swift/ql/lib/codeql/swift/elements/decl/IfConfigClause.qll create mode 100644 swift/ql/lib/codeql/swift/generated/decl/IfConfigClause.qll create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getCondition.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getCondition.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getElement.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getElement.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigClause/if_config.swift create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigClause/if_config_active.swift create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getClause.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getClause.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/if_config.swift create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getName.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getName.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getType.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getType.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/unresolved_decl_ref.swift diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index 96da8c96936..540f187d021 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -270,6 +270,16 @@ EnumCaseDecl: IfConfigDecl: _extends: Decl + _children: + clauses: IfConfigClause* + +IfConfigClause: + _extends: Locatable + _children: + condition: Expr? + elements: AstNode* + is_active: predicate + _dir: decl ImportDecl: _extends: Decl @@ -545,7 +555,6 @@ TypeExpr: UnresolvedDeclRefExpr: _extends: Expr name: string? - _pragma: qltest_skip # we should really never extract these UnresolvedDotExpr: _extends: Expr diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index c7ca43a1614..095ddf0a7aa 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -78,7 +78,7 @@ class SwiftDispatcher { waitingForNewLabel = e; visit(e); if (auto l = store.get(e)) { - if constexpr (!std::is_base_of_v) { + if constexpr (std::is_base_of_v>) { attachLocation(e, *l); } return *l; @@ -95,6 +95,10 @@ class SwiftDispatcher { return fetchLabelFromUnion(node); } + TrapLabel fetchLabel(const swift::IfConfigClause& clause) { + return fetchLabel(&clause); + } + // Due to the lazy emission approach, we must assign a label to a corresponding AST node before // it actually gets emitted to handle recursive cases such as recursive calls, or recursive type // declarations @@ -143,6 +147,15 @@ class SwiftDispatcher { attachLocation(locatable->getStartLoc(), locatable->getEndLoc(), locatableLabel); } + void attachLocation(const swift::IfConfigClause* clause, TrapLabel locatableLabel) { + attachLocation(clause->Loc, clause->Loc, locatableLabel); + } + + // Emits a Location TRAP entry and attaches it to a `Locatable` trap label for a given `SourceLoc` + void attachLocation(swift::SourceLoc loc, TrapLabel locatableLabel) { + attachLocation(loc, loc, locatableLabel); + } + // Emits a Location TRAP entry for a list of swift entities and attaches it to a `Locatable` trap // label template @@ -217,7 +230,8 @@ class SwiftDispatcher { swift::Expr, swift::Pattern, swift::TypeRepr, - swift::TypeBase>; + swift::TypeBase, + swift::IfConfigClause>; void attachLocation(swift::SourceLoc start, swift::SourceLoc end, @@ -274,6 +288,7 @@ class SwiftDispatcher { // TODO: The following methods are supposed to redirect TRAP emission to correpsonding visitors, // which are to be introduced in follow-up PRs virtual void visit(swift::Decl* decl) = 0; + virtual void visit(const swift::IfConfigClause* clause) = 0; virtual void visit(swift::Stmt* stmt) = 0; virtual void visit(swift::StmtCondition* cond) = 0; virtual void visit(swift::CaseLabelItem* item) = 0; diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index 8a2e489683d..1de7312df50 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -47,6 +47,7 @@ MAP_TAG(Expr); #include MAP_TAG(Decl); +MAP_TAG(IfConfigClause); #define ABSTRACT_DECL(CLASS, PARENT) MAP_SUBTAG(CLASS##Decl, PARENT) #define DECL(CLASS, PARENT) ABSTRACT_DECL(CLASS, PARENT) #include diff --git a/swift/extractor/visitors/DeclVisitor.cpp b/swift/extractor/visitors/DeclVisitor.cpp index 33f746f6634..819c959a6d2 100644 --- a/swift/extractor/visitors/DeclVisitor.cpp +++ b/swift/extractor/visitors/DeclVisitor.cpp @@ -358,4 +358,18 @@ void DeclVisitor::fillAbstractStorageDecl(const swift::AbstractStorageDecl& decl fillValueDecl(decl, entry); } +codeql::IfConfigDecl DeclVisitor::translateIfConfigDecl(const swift::IfConfigDecl& decl) { + auto entry = dispatcher_.createEntry(decl); + entry.clauses = dispatcher_.fetchRepeatedLabels(decl.getClauses()); + return entry; +} + +codeql::IfConfigClause DeclVisitor::translateIfConfigClause(const swift::IfConfigClause& clause) { + auto entry = dispatcher_.createEntry(clause); + entry.condition = dispatcher_.fetchOptionalLabel(clause.Cond); + entry.elements = dispatcher_.fetchRepeatedLabels(clause.Elements); + entry.is_active = clause.isActive; + return entry; +} + } // namespace codeql diff --git a/swift/extractor/visitors/DeclVisitor.h b/swift/extractor/visitors/DeclVisitor.h index c9a1b43556d..0d6296591a0 100644 --- a/swift/extractor/visitors/DeclVisitor.h +++ b/swift/extractor/visitors/DeclVisitor.h @@ -14,6 +14,11 @@ namespace codeql { class DeclVisitor : public AstVisitorBase { public: using AstVisitorBase::AstVisitorBase; + using AstVisitorBase::visit; + + void visit(const swift::IfConfigClause* clause) { + dispatcher_.emit(translateIfConfigClause(*clause)); + } std::variant translateFuncDecl( const swift::FuncDecl& decl); @@ -52,6 +57,8 @@ class DeclVisitor : public AstVisitorBase { codeql::ExtensionDecl translateExtensionDecl(const swift::ExtensionDecl& decl); codeql::ImportDecl translateImportDecl(const swift::ImportDecl& decl); std::optional translateModuleDecl(const swift::ModuleDecl& decl); + codeql::IfConfigDecl translateIfConfigDecl(const swift::IfConfigDecl& decl); + codeql::IfConfigClause translateIfConfigClause(const swift::IfConfigClause& clause); private: std::string mangledName(const swift::ValueDecl& decl); diff --git a/swift/extractor/visitors/SwiftVisitor.h b/swift/extractor/visitors/SwiftVisitor.h index 6380390af82..66c11b5227b 100644 --- a/swift/extractor/visitors/SwiftVisitor.h +++ b/swift/extractor/visitors/SwiftVisitor.h @@ -21,6 +21,7 @@ class SwiftVisitor : private SwiftDispatcher { private: void visit(swift::Decl* decl) override { declVisitor.visit(decl); } + void visit(const swift::IfConfigClause* clause) override { declVisitor.visit(clause); } void visit(swift::Stmt* stmt) override { stmtVisitor.visit(stmt); } void visit(swift::StmtCondition* cond) override { stmtVisitor.visitStmtCondition(cond); } void visit(swift::CaseLabelItem* item) override { stmtVisitor.visitCaseLabelItem(item); } diff --git a/swift/ql/lib/codeql/swift/elements.qll b/swift/ql/lib/codeql/swift/elements.qll index c10706d7c7a..bb3087936b9 100644 --- a/swift/ql/lib/codeql/swift/elements.qll +++ b/swift/ql/lib/codeql/swift/elements.qll @@ -24,6 +24,7 @@ import codeql.swift.elements.decl.FuncDecl import codeql.swift.elements.decl.GenericContext import codeql.swift.elements.decl.GenericTypeDecl import codeql.swift.elements.decl.GenericTypeParamDecl +import codeql.swift.elements.decl.IfConfigClause import codeql.swift.elements.decl.IfConfigDecl import codeql.swift.elements.decl.ImportDecl import codeql.swift.elements.decl.InfixOperatorDecl diff --git a/swift/ql/lib/codeql/swift/elements/decl/IfConfigClause.qll b/swift/ql/lib/codeql/swift/elements/decl/IfConfigClause.qll new file mode 100644 index 00000000000..6ab22e67989 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/decl/IfConfigClause.qll @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +private import codeql.swift.generated.decl.IfConfigClause + +class IfConfigClause extends IfConfigClauseBase { } diff --git a/swift/ql/lib/codeql/swift/elements/expr/UnresolvedDeclRefExpr.qll b/swift/ql/lib/codeql/swift/elements/expr/UnresolvedDeclRefExpr.qll index 281e1db01a7..3cbe55fe9a6 100644 --- a/swift/ql/lib/codeql/swift/elements/expr/UnresolvedDeclRefExpr.qll +++ b/swift/ql/lib/codeql/swift/elements/expr/UnresolvedDeclRefExpr.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.expr.UnresolvedDeclRefExpr -class UnresolvedDeclRefExpr extends UnresolvedDeclRefExprBase { } +class UnresolvedDeclRefExpr extends UnresolvedDeclRefExprBase { + override string toString() { + result = getName() + " (unresolved)" + or + not hasName() and result = "(unresolved)" + } +} diff --git a/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll b/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll index 4cecd1a3ce6..9ca82a5e47d 100644 --- a/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll +++ b/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll @@ -28,6 +28,12 @@ Element getAnImmediateChild(Element e) { or enum_element_decl_params(e, _, x) or + if_config_clause_conditions(e, x) + or + if_config_clause_elements(e, _, x) + or + if_config_decl_clauses(e, _, x) + or pattern_binding_decl_inits(e, _, x) or pattern_binding_decl_patterns(e, _, x) diff --git a/swift/ql/lib/codeql/swift/generated/decl/IfConfigClause.qll b/swift/ql/lib/codeql/swift/generated/decl/IfConfigClause.qll new file mode 100644 index 00000000000..89a1cb277ed --- /dev/null +++ b/swift/ql/lib/codeql/swift/generated/decl/IfConfigClause.qll @@ -0,0 +1,30 @@ +// generated by codegen/codegen.py +import codeql.swift.elements.AstNode +import codeql.swift.elements.expr.Expr +import codeql.swift.elements.Locatable + +class IfConfigClauseBase extends @if_config_clause, Locatable { + override string getAPrimaryQlClass() { result = "IfConfigClause" } + + Expr getCondition() { + exists(Expr x | + if_config_clause_conditions(this, x) and + result = x.resolve() + ) + } + + predicate hasCondition() { exists(getCondition()) } + + AstNode getElement(int index) { + exists(AstNode x | + if_config_clause_elements(this, index, x) and + result = x.resolve() + ) + } + + AstNode getAnElement() { result = getElement(_) } + + int getNumberOfElements() { result = count(getAnElement()) } + + predicate isActive() { if_config_clause_is_active(this) } +} diff --git a/swift/ql/lib/codeql/swift/generated/decl/IfConfigDecl.qll b/swift/ql/lib/codeql/swift/generated/decl/IfConfigDecl.qll index 578051e9f8b..5d13959a227 100644 --- a/swift/ql/lib/codeql/swift/generated/decl/IfConfigDecl.qll +++ b/swift/ql/lib/codeql/swift/generated/decl/IfConfigDecl.qll @@ -1,6 +1,18 @@ // generated by codegen/codegen.py import codeql.swift.elements.decl.Decl +import codeql.swift.elements.decl.IfConfigClause class IfConfigDeclBase extends @if_config_decl, Decl { override string getAPrimaryQlClass() { result = "IfConfigDecl" } + + IfConfigClause getClause(int index) { + exists(IfConfigClause x | + if_config_decl_clauses(this, index, x) and + result = x.resolve() + ) + } + + IfConfigClause getAClause() { result = getClause(_) } + + int getNumberOfClauses() { result = count(getAClause()) } } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index c12e00e028d..e181cef772a 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -36,6 +36,7 @@ files( @locatable = @ast_node | @condition_element +| @if_config_clause ; #keyset[id] @@ -643,6 +644,35 @@ if_config_decls( //dir=decl unique int id: @if_config_decl ); +#keyset[id, index] +if_config_decl_clauses( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int clause: @if_config_clause ref +); + +if_config_clauses( //dir=decl + unique int id: @if_config_clause +); + +#keyset[id] +if_config_clause_conditions( //dir=decl + int id: @if_config_clause ref, + int condition: @expr ref +); + +#keyset[id, index] +if_config_clause_elements( //dir=decl + int id: @if_config_clause ref, + int index: int ref, + int element: @ast_node ref +); + +#keyset[id] +if_config_clause_is_active( //dir=decl + int id: @if_config_clause ref +); + import_decls( //dir=decl unique int id: @import_decl, int module: @module_decl ref diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause.expected b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause.expected new file mode 100644 index 00000000000..d4230ce830c --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause.expected @@ -0,0 +1,6 @@ +| if_config.swift:1:1:1:1 | IfConfigClause | isActive: | no | +| if_config.swift:4:1:4:1 | IfConfigClause | isActive: | no | +| if_config.swift:7:1:7:1 | IfConfigClause | isActive: | yes | +| if_config_active.swift:3:1:3:1 | IfConfigClause | isActive: | yes | +| if_config_active.swift:6:1:6:1 | IfConfigClause | isActive: | no | +| if_config_active.swift:9:1:9:1 | IfConfigClause | isActive: | no | diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause.ql b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause.ql new file mode 100644 index 00000000000..832025712f0 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause.ql @@ -0,0 +1,10 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from IfConfigClause x, string isActive +where + toBeTested(x) and + not x.isUnknown() and + if x.isActive() then isActive = "yes" else isActive = "no" +select x, "isActive:", isActive diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getCondition.expected b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getCondition.expected new file mode 100644 index 00000000000..f4955665acd --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getCondition.expected @@ -0,0 +1,4 @@ +| if_config.swift:1:1:1:1 | IfConfigClause | if_config.swift:1:5:1:5 | FOO (unresolved) | +| if_config.swift:4:1:4:1 | IfConfigClause | if_config.swift:4:9:4:19 | call to ... | +| if_config_active.swift:3:1:3:1 | IfConfigClause | if_config_active.swift:3:5:3:5 | FOO (unresolved) | +| if_config_active.swift:6:1:6:1 | IfConfigClause | if_config_active.swift:6:9:6:17 | call to ... | diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getCondition.ql b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getCondition.ql new file mode 100644 index 00000000000..174c1a4994d --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getCondition.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from IfConfigClause x +where toBeTested(x) and not x.isUnknown() +select x, x.getCondition() diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getElement.expected b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getElement.expected new file mode 100644 index 00000000000..11dd2b54127 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getElement.expected @@ -0,0 +1,18 @@ +| if_config.swift:1:1:1:1 | IfConfigClause | 0 | if_config.swift:2:1:2:16 | { ... } | +| if_config.swift:1:1:1:1 | IfConfigClause | 1 | if_config.swift:2:5:2:5 | foo | +| if_config.swift:1:1:1:1 | IfConfigClause | 2 | if_config.swift:3:1:3:12 | { ... } | +| if_config.swift:4:1:4:1 | IfConfigClause | 0 | if_config.swift:5:1:5:16 | { ... } | +| if_config.swift:4:1:4:1 | IfConfigClause | 1 | if_config.swift:5:5:5:5 | bar | +| if_config.swift:4:1:4:1 | IfConfigClause | 2 | if_config.swift:6:1:6:12 | { ... } | +| if_config.swift:7:1:7:1 | IfConfigClause | 0 | if_config.swift:8:1:8:16 | { ... } | +| if_config.swift:7:1:7:1 | IfConfigClause | 1 | if_config.swift:8:5:8:5 | baz | +| if_config.swift:7:1:7:1 | IfConfigClause | 2 | if_config.swift:9:1:9:12 | { ... } | +| if_config_active.swift:3:1:3:1 | IfConfigClause | 0 | if_config_active.swift:4:1:4:16 | { ... } | +| if_config_active.swift:3:1:3:1 | IfConfigClause | 1 | if_config_active.swift:4:5:4:5 | foo | +| if_config_active.swift:3:1:3:1 | IfConfigClause | 2 | if_config_active.swift:5:1:5:12 | { ... } | +| if_config_active.swift:6:1:6:1 | IfConfigClause | 0 | if_config_active.swift:7:1:7:16 | { ... } | +| if_config_active.swift:6:1:6:1 | IfConfigClause | 1 | if_config_active.swift:7:5:7:5 | bar | +| if_config_active.swift:6:1:6:1 | IfConfigClause | 2 | if_config_active.swift:8:1:8:12 | { ... } | +| if_config_active.swift:9:1:9:1 | IfConfigClause | 0 | if_config_active.swift:10:1:10:16 | { ... } | +| if_config_active.swift:9:1:9:1 | IfConfigClause | 1 | if_config_active.swift:10:5:10:5 | baz | +| if_config_active.swift:9:1:9:1 | IfConfigClause | 2 | if_config_active.swift:11:1:11:12 | { ... } | diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getElement.ql b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getElement.ql new file mode 100644 index 00000000000..02c0eec17c9 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/IfConfigClause_getElement.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from IfConfigClause x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getElement(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/if_config.swift b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/if_config.swift new file mode 100644 index 00000000000..87cbc8ecd42 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/if_config.swift @@ -0,0 +1,10 @@ +#if FOO +var foo: Int = 1 +print("foo") +#elseif os(watchOS) +var bar: Int = 2 +print("bar") +#else +var baz: Int = 3 +print("baz") +#endif diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/if_config_active.swift b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/if_config_active.swift new file mode 100644 index 00000000000..89849731bfe --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigClause/if_config_active.swift @@ -0,0 +1,12 @@ +//codeql-extractor-options: -D FOO + +#if FOO +var foo: Int = 1 +print("foo") +#elseif os(macOS) +var bar: Int = 2 +print("bar") +#else +var baz: Int = 3 +print("baz") +#endif diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.expected b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.expected new file mode 100644 index 00000000000..3fed7a7fcc1 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.expected @@ -0,0 +1 @@ +| if_config.swift:1:1:10:1 | #if ... | diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql new file mode 100644 index 00000000000..a43d57b1d93 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from IfConfigDecl x +where toBeTested(x) and not x.isUnknown() +select x diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getClause.expected b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getClause.expected new file mode 100644 index 00000000000..d90ba458397 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getClause.expected @@ -0,0 +1,3 @@ +| if_config.swift:1:1:10:1 | #if ... | 0 | if_config.swift:1:1:1:1 | IfConfigClause | +| if_config.swift:1:1:10:1 | #if ... | 1 | if_config.swift:4:1:4:1 | IfConfigClause | +| if_config.swift:1:1:10:1 | #if ... | 2 | if_config.swift:7:1:7:1 | IfConfigClause | diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getClause.ql b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getClause.ql new file mode 100644 index 00000000000..5ffaf75e476 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getClause.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from IfConfigDecl x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getClause(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/if_config.swift b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/if_config.swift new file mode 100644 index 00000000000..6f492013933 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/if_config.swift @@ -0,0 +1,10 @@ +#if FOO +var foo: Int = 1 +print("foo") +#elseif BAR +var bar: Int = 2 +print("bar") +#else +var baz: Int = 3 +print("baz") +#endif diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr.expected b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr.expected new file mode 100644 index 00000000000..ecf2a57ba5d --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr.expected @@ -0,0 +1,10 @@ +| unresolved_decl_ref.swift:4:5:4:5 | FOO (unresolved) | +| unresolved_decl_ref.swift:4:9:4:9 | && (unresolved) | +| unresolved_decl_ref.swift:4:12:4:12 | os (unresolved) | +| unresolved_decl_ref.swift:4:15:4:15 | Windows (unresolved) | +| unresolved_decl_ref.swift:5:1:5:1 | print (unresolved) | +| unresolved_decl_ref.swift:6:9:6:9 | BAR (unresolved) | +| unresolved_decl_ref.swift:6:13:6:13 | \|\| (unresolved) | +| unresolved_decl_ref.swift:6:16:6:16 | arch (unresolved) | +| unresolved_decl_ref.swift:6:21:6:21 | i386 (unresolved) | +| unresolved_decl_ref.swift:9:1:9:1 | print (unresolved) | diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr.ql new file mode 100644 index 00000000000..507d2fcf87d --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from UnresolvedDeclRefExpr x +where toBeTested(x) and not x.isUnknown() +select x diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getName.expected b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getName.expected new file mode 100644 index 00000000000..1ea60aabedc --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getName.expected @@ -0,0 +1,10 @@ +| unresolved_decl_ref.swift:4:5:4:5 | FOO (unresolved) | FOO | +| unresolved_decl_ref.swift:4:9:4:9 | && (unresolved) | && | +| unresolved_decl_ref.swift:4:12:4:12 | os (unresolved) | os | +| unresolved_decl_ref.swift:4:15:4:15 | Windows (unresolved) | Windows | +| unresolved_decl_ref.swift:5:1:5:1 | print (unresolved) | print | +| unresolved_decl_ref.swift:6:9:6:9 | BAR (unresolved) | BAR | +| unresolved_decl_ref.swift:6:13:6:13 | \|\| (unresolved) | \|\| | +| unresolved_decl_ref.swift:6:16:6:16 | arch (unresolved) | arch | +| unresolved_decl_ref.swift:6:21:6:21 | i386 (unresolved) | i386 | +| unresolved_decl_ref.swift:9:1:9:1 | print (unresolved) | print | diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getName.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getName.ql new file mode 100644 index 00000000000..1424e3443d9 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getName.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from UnresolvedDeclRefExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getName() diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getType.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getType.ql new file mode 100644 index 00000000000..27953cceeb1 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/UnresolvedDeclRefExpr_getType.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from UnresolvedDeclRefExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/unresolved_decl_ref.swift b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/unresolved_decl_ref.swift new file mode 100644 index 00000000000..94dee19d618 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDeclRefExpr/unresolved_decl_ref.swift @@ -0,0 +1,10 @@ +//codeql-extractor-options: -D BAR + +// conditions and inactive branches in conditional compilation blocks are not resolved +#if FOO && os(Windows) +print(1) +#elseif BAR || arch(i386) +print(2) +#else +print(3) +#endif From 93d06daf6738843472c72c4ae80e3396a08d1891 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 11 Jul 2022 15:59:21 +0200 Subject: [PATCH 316/736] Swift: allow skipping fields in cppgen Some fields of base classes pose some problems with diamond hierarchies, and we don't use them any way as we are emitting them using directly trap entries instead of structured C++ classes. This introduces a `cpp_skip` pragma to skip generation of those fields in structured generated C++ classes, and applies it to `is_unknown` and `location`. --- swift/codegen/generators/cppgen.py | 38 +++++++++++++++++------------- swift/codegen/schema.yml | 8 +++++-- swift/codegen/test/test_cppgen.py | 13 ++++++++++ 3 files changed, 40 insertions(+), 19 deletions(-) diff --git a/swift/codegen/generators/cppgen.py b/swift/codegen/generators/cppgen.py index ef042f42dbd..08af5fb82f9 100644 --- a/swift/codegen/generators/cppgen.py +++ b/swift/codegen/generators/cppgen.py @@ -13,6 +13,7 @@ Each class in the schema gets a corresponding `struct` in `TrapClasses.h`, where import functools import pathlib +import typing from typing import Dict import inflection @@ -34,22 +35,25 @@ def _get_type(t: str) -> str: return t -def _get_field(cls: schema.Class, p: schema.Property) -> cpp.Field: - trap_name = None - if not p.is_single: - trap_name = inflection.camelize(f"{cls.name}_{p.name}") - if not p.is_predicate: - trap_name = inflection.pluralize(trap_name) - args = dict( - field_name=p.name + ("_" if p.name in cpp.cpp_keywords else ""), - type=_get_type(p.type), - is_optional=p.is_optional, - is_repeated=p.is_repeated, - is_predicate=p.is_predicate, - trap_name=trap_name, - ) - args.update(cpp.get_field_override(p.name)) - return cpp.Field(**args) +def _get_fields(cls: schema.Class) -> typing.Iterable[cpp.Field]: + for p in cls.properties: + if "cpp_skip" in p.pragmas: + continue + trap_name = None + if not p.is_single: + trap_name = inflection.camelize(f"{cls.name}_{p.name}") + if not p.is_predicate: + trap_name = inflection.pluralize(trap_name) + args = dict( + field_name=p.name + ("_" if p.name in cpp.cpp_keywords else ""), + type=_get_type(p.type), + is_optional=p.is_optional, + is_repeated=p.is_repeated, + is_predicate=p.is_predicate, + trap_name=trap_name, + ) + args.update(cpp.get_field_override(p.name)) + yield cpp.Field(**args) class Processor: @@ -65,7 +69,7 @@ class Processor: return cpp.Class( name=name, bases=[self._get_class(b) for b in cls.bases], - fields=[_get_field(cls, p) for p in cls.properties], + fields=list(_get_fields(cls)), final=not cls.derived, trap_name=trap_name, ) diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index 01bb0c2feba..ed3d4433a9f 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -13,14 +13,18 @@ _directories: stmt: Stmt$ Element: - is_unknown: predicate + is_unknown: + type: predicate + _pragma: cpp_skip # this is emitted using trap entries directly _pragma: qltest_skip File: name: string Locatable: - location: Location? + location: + type: Location? + _pragma: cpp_skip # this is emitted using trap entries directly _pragma: qltest_skip Location: diff --git a/swift/codegen/test/test_cppgen.py b/swift/codegen/test/test_cppgen.py index 160dd6cd2c1..7938cb6decd 100644 --- a/swift/codegen/test/test_cppgen.py +++ b/swift/codegen/test/test_cppgen.py @@ -165,5 +165,18 @@ def test_classes_with_dirs(generate_grouped): } +def test_cpp_skip_pragma(generate): + assert generate([ + schema.Class(name="A", properties=[ + schema.SingleProperty("x", "foo"), + schema.SingleProperty("y", "bar", pragmas=["x", "cpp_skip", "y"]), + ]) + ]) == [ + cpp.Class(name="A", final=True, trap_name="As", fields=[ + cpp.Field("x", "foo"), + ]), + ] + + if __name__ == '__main__': sys.exit(pytest.main([__file__] + sys.argv[1:])) From 348ad95fc001b154f9640108b8d04e7ececdc56c Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 11 Jul 2022 15:06:27 +0100 Subject: [PATCH 317/736] Ruby: fix defining every dataflow node as a command execution sink --- ruby/ql/lib/codeql/ruby/frameworks/Railties.qll | 4 ++-- .../library-tests/frameworks/railties/Railties.expected | 9 +++++++++ .../test/library-tests/frameworks/railties/Railties.ql | 5 +++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Railties.qll b/ruby/ql/lib/codeql/ruby/frameworks/Railties.qll index 4a61eb1dd20..807cc9f9c51 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Railties.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Railties.qll @@ -43,7 +43,7 @@ module Railties { override DataFlow::Node getAnArgument() { result = this.getArgument([0, 1]) } - override predicate isShellInterpreted(DataFlow::Node arg) { any() } + override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getAnArgument() } } /** @@ -57,6 +57,6 @@ module Railties { override DataFlow::Node getAnArgument() { result = this.getArgument(0) } - override predicate isShellInterpreted(DataFlow::Node arg) { any() } + override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getAnArgument() } } } diff --git a/ruby/ql/test/library-tests/frameworks/railties/Railties.expected b/ruby/ql/test/library-tests/frameworks/railties/Railties.expected index c012090bbe1..42cac29b7c5 100644 --- a/ruby/ql/test/library-tests/frameworks/railties/Railties.expected +++ b/ruby/ql/test/library-tests/frameworks/railties/Railties.expected @@ -1,5 +1,14 @@ +systemCommandExecutions | Railties.rb:5:5:5:34 | call to execute_command | | Railties.rb:6:5:6:37 | call to execute_command | | Railties.rb:8:5:8:16 | call to rake | | Railties.rb:10:5:10:27 | call to rails_command | | Railties.rb:12:5:12:17 | call to git | +shellInterpretedArguments +| Railties.rb:5:5:5:34 | call to execute_command | Railties.rb:5:21:5:25 | :rake | +| Railties.rb:5:5:5:34 | call to execute_command | Railties.rb:5:28:5:33 | "test" | +| Railties.rb:6:5:6:37 | call to execute_command | Railties.rb:6:21:6:26 | :rails | +| Railties.rb:6:5:6:37 | call to execute_command | Railties.rb:6:29:6:36 | "server" | +| Railties.rb:8:5:8:16 | call to rake | Railties.rb:8:10:8:15 | "test" | +| Railties.rb:10:5:10:27 | call to rails_command | Railties.rb:10:19:10:26 | "server" | +| Railties.rb:12:5:12:17 | call to git | Railties.rb:12:9:12:16 | "status" | diff --git a/ruby/ql/test/library-tests/frameworks/railties/Railties.ql b/ruby/ql/test/library-tests/frameworks/railties/Railties.ql index 9a9731befb4..4dee50abcd5 100644 --- a/ruby/ql/test/library-tests/frameworks/railties/Railties.ql +++ b/ruby/ql/test/library-tests/frameworks/railties/Railties.ql @@ -1,5 +1,10 @@ private import ruby private import codeql.ruby.Concepts private import codeql.ruby.frameworks.Railties +private import codeql.ruby.DataFlow query predicate systemCommandExecutions(SystemCommandExecution e) { any() } + +query predicate shellInterpretedArguments(SystemCommandExecution e, DataFlow::Node arg) { + e.isShellInterpreted(arg) +} From 156bc34cdadbd1913cc2c3ae93fc0953c04c5bdc Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Mon, 11 Jul 2022 08:41:05 -0700 Subject: [PATCH 318/736] Update UnsafeUsageOfClientSideEncryptionVersion.qhelp --- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index 49aa5623570..a3a33691854 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -14,11 +14,6 @@ -

    The following example shows an HTTP request parameter being used directly in a forming a -new request without validating the input, which facilitates SSRF attacks. -It also shows how to remedy the problem by validating the user input against a known fixed string. -

    -
    From 5d89a5d164f111e9080d711e16a903b8d7af291f Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Mon, 11 Jul 2022 08:42:50 -0700 Subject: [PATCH 319/736] Update csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: Taus --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index 0de3d020e4f..095c154e9a3 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -14,7 +14,7 @@ import csharp /** * Holds if `oc` is creating an object of type `c` = `Azure.Storage.ClientSideEncryptionOptions` - * and `e` is the `version` argument to the contructor + * and `e` is the `version` argument to the constructor */ predicate isCreatingAzureClientSideEncryptionObject(ObjectCreation oc, Class c, Expr e) { exists(Parameter p | p.hasName("version") | From 6632dfaf88eaa2dd266ee5dfa745142678844de4 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 11 Jul 2022 16:34:38 +0100 Subject: [PATCH 320/736] Ruby: fix another SystemCommandExecution::isShellInterpreted implementation --- ruby/ql/lib/codeql/ruby/frameworks/PosixSpawn.qll | 2 +- ruby/ql/test/library-tests/frameworks/PosixSpawn.ql | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/PosixSpawn.qll b/ruby/ql/lib/codeql/ruby/frameworks/PosixSpawn.qll index 6a27018fcf5..6c4d2ab1a47 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/PosixSpawn.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/PosixSpawn.qll @@ -62,9 +62,9 @@ module PosixSpawn { // is shell interpreted unless there is another argument with a string // constant value. override predicate isShellInterpreted(DataFlow::Node arg) { + this.argument(arg) and not exists(DataFlow::Node otherArg | otherArg != arg and - this.argument(arg) and this.argument(otherArg) and otherArg.asExpr().getConstantValue().isString(_) ) diff --git a/ruby/ql/test/library-tests/frameworks/PosixSpawn.ql b/ruby/ql/test/library-tests/frameworks/PosixSpawn.ql index 12fb445cf15..994f0d162f0 100644 --- a/ruby/ql/test/library-tests/frameworks/PosixSpawn.ql +++ b/ruby/ql/test/library-tests/frameworks/PosixSpawn.ql @@ -5,11 +5,13 @@ import codeql.ruby.DataFlow query predicate systemCalls( PosixSpawn::SystemCall call, DataFlow::Node arg, boolean shellInterpreted ) { - arg = call.getAnArgument() and - if call.isShellInterpreted(arg) then shellInterpreted = true else shellInterpreted = false + call.isShellInterpreted(arg) and shellInterpreted = true + or + not call.isShellInterpreted(arg) and arg = call.getAnArgument() and shellInterpreted = false } query predicate childCalls(PosixSpawn::ChildCall call, DataFlow::Node arg, boolean shellInterpreted) { - arg = call.getAnArgument() and - if call.isShellInterpreted(arg) then shellInterpreted = true else shellInterpreted = false + call.isShellInterpreted(arg) and shellInterpreted = true + or + not call.isShellInterpreted(arg) and arg = call.getAnArgument() and shellInterpreted = false } From 032aa56dc3abbd8bfbab44212ecc730ebd7ae7d0 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 11 Jul 2022 17:00:07 +0100 Subject: [PATCH 321/736] Ruby: add change note for system command execution sink bug --- ruby/ql/lib/change-notes/2022-07-11-command-execution.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ruby/ql/lib/change-notes/2022-07-11-command-execution.md diff --git a/ruby/ql/lib/change-notes/2022-07-11-command-execution.md b/ruby/ql/lib/change-notes/2022-07-11-command-execution.md new file mode 100644 index 00000000000..c95b9afb133 --- /dev/null +++ b/ruby/ql/lib/change-notes/2022-07-11-command-execution.md @@ -0,0 +1,6 @@ +--- +category: minorAnalysis +--- +* Fixed a bug causing every expression in the database to be a considered a system-command execution sink when calls to any of the following methods exist: + * The `spawn", "fspawn", "popen4", "pspawn", "system", "_pspawn" methods and the backtick operator from the `POSIX::spawn` gem. + * The `execute_command`, `rake`, `rails_command`, and `git` methods in `Rails::Generation::Actions`. From a3628b06f1f0efa57d6f705259c53aee736bc96c Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 11 Jul 2022 17:23:45 +0100 Subject: [PATCH 322/736] Ruby: fix markup in changenote --- ruby/ql/lib/change-notes/2022-07-11-command-execution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/change-notes/2022-07-11-command-execution.md b/ruby/ql/lib/change-notes/2022-07-11-command-execution.md index c95b9afb133..2c5addba1f5 100644 --- a/ruby/ql/lib/change-notes/2022-07-11-command-execution.md +++ b/ruby/ql/lib/change-notes/2022-07-11-command-execution.md @@ -2,5 +2,5 @@ category: minorAnalysis --- * Fixed a bug causing every expression in the database to be a considered a system-command execution sink when calls to any of the following methods exist: - * The `spawn", "fspawn", "popen4", "pspawn", "system", "_pspawn" methods and the backtick operator from the `POSIX::spawn` gem. + * The `spawn`, `fspawn`, `popen4`, `pspawn`, `system`, `_pspawn` methods and the backtick operator from the `POSIX::spawn` gem. * The `execute_command`, `rake`, `rails_command`, and `git` methods in `Rails::Generation::Actions`. From 4704269086c6fadec3d97c7ad16bf056946d1ae8 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Mon, 11 Jul 2022 18:36:03 +0100 Subject: [PATCH 323/736] Add example registry authentication string --- .../codeql-cli/publishing-and-using-codeql-packs.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst index 67e90b5ba3f..985ca2659f3 100644 --- a/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst +++ b/docs/codeql/codeql-cli/publishing-and-using-codeql-packs.rst @@ -103,7 +103,7 @@ You can now use ``codeql pack publish``, ``codeql pack download``, and ``codeql Authenticating to GitHub Container registries --------------------------------------------- -You can download a private pack or publish a pack by authenticating to the appropriate GitHub Container registry. +You can publish packs and download private packs by authenticating to the appropriate GitHub Container registry. You can authenticate to the Container registry on GitHub.com in two ways: @@ -115,5 +115,10 @@ Similarly, you can authenticate to a GHES Container registry, or authenticate to 1. Pass the ``--registries-auth-stdin`` option to the CodeQL CLI, then supply a registry authentication string via standard input. 2. Set the ``CODEQL_REGISTRIES_AUTH`` environment variable to a registry authentication string. -A registry authentication string is a comma-separated list of ``=`` pairs, where ``registry-url`` is a GitHub Container registry URL, for example ``https://containers.GHE_HOSTNAME/v2/`` and ``token`` is a GitHub Apps token or personal access token for that GitHub Container registry. +A registry authentication string is a comma-separated list of ``=`` pairs, where ``registry-url`` is a GitHub Container registry URL, such as ``https://containers.GHE_HOSTNAME/v2/``, and ``token`` is a GitHub Apps token or personal access token for that GitHub Container registry. This ensures that each token is only passed to the Container registry you specify. +For instance, the following registry authentication string specifies that the CodeQL CLI should authenticate to the Container registry on GitHub.com using the token ```` and to the Container registry for the GHES instance at ``GHE_HOSTNAME`` using the token ````: + +.. code-block:: none + + https://ghcr.io/v2/=,https://containers.GHE_HOSTNAME/v2/= From b9072a35943c1f6845124ed71c995e1dfca2cb32 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 11 Jul 2022 18:57:43 +0100 Subject: [PATCH 324/736] Kotlin: Share a Psi2Ir instance --- .../src/main/kotlin/comments/CommentExtractor.kt | 5 +++-- .../src/main/kotlin/utils/IrVisitorLookup.kt | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt index 93d3c0534de..f3fef96a338 100644 --- a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt @@ -16,7 +16,8 @@ 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 - private val ktFile = Psi2Ir().getKtFile(file) + private val psi2Ir = Psi2Ir() + private val ktFile = psi2Ir.getKtFile(file) fun extract() { if (ktFile == null) { @@ -85,7 +86,7 @@ class CommentExtractor(private val fileExtractor: KotlinFileExtractor, private v val ownerPsi = getKDocOwner(comment) ?: return val owners = mutableListOf() - file.accept(IrVisitorLookup(ownerPsi, file), owners) + file.accept(IrVisitorLookup(psi2Ir, ownerPsi, file), owners) for (ownerIr in owners) { val ownerLabel = diff --git a/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt b/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt index 0020d00fac4..a25c1a4534f 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt @@ -8,7 +8,7 @@ import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.util.isFakeOverride import org.jetbrains.kotlin.ir.visitors.IrElementVisitor -class IrVisitorLookup(private val psi: PsiElement, private val file: IrFile) : +class IrVisitorLookup(private val psi2Ir: Psi2Ir, private val psi: PsiElement, private val file: IrFile) : IrElementVisitor> { private val location = psi.getLocation() @@ -27,7 +27,7 @@ class IrVisitorLookup(private val psi: PsiElement, private val file: IrFile) : } if (location.contains(elementLocation)) { - val psiElement = Psi2Ir().findPsiElement(element, file) + val psiElement = psi2Ir.findPsiElement(element, file) if (psiElement == psi) { // There can be multiple IrElements that match the same PSI element. data.add(element) @@ -35,4 +35,4 @@ class IrVisitorLookup(private val psi: PsiElement, private val file: IrFile) : } element.acceptChildren(this, data) } -} \ No newline at end of file +} From 4c68624b00bff04949c11f4d7b408c97fc8f71c8 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 11 Jul 2022 19:17:21 +0100 Subject: [PATCH 325/736] Kotlin: Pass a FileLogger to Psi2Ir --- .../src/main/kotlin/comments/CommentExtractor.kt | 2 +- .../src/main/kotlin/utils/versions/v_1_4_32/Psi2Ir.kt | 5 +++-- .../src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt | 5 +++-- .../src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt | 5 +++-- .../src/main/kotlin/utils/versions/v_1_5_21/Psi2Ir.kt | 5 +++-- .../src/main/kotlin/utils/versions/v_1_5_31/Psi2Ir.kt | 5 +++-- .../src/main/kotlin/utils/versions/v_1_6_10/Psi2Ir.kt | 5 +++-- .../src/main/kotlin/utils/versions/v_1_6_20/Psi2Ir.kt | 5 +++-- .../src/main/kotlin/utils/versions/v_1_7_0/Psi2Ir.kt | 5 +++-- 9 files changed, 25 insertions(+), 17 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt index f3fef96a338..03f032f8810 100644 --- a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt @@ -16,7 +16,7 @@ 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 - private val psi2Ir = Psi2Ir() + private val psi2Ir = Psi2Ir(logger) private val ktFile = psi2Ir.getKtFile(file) fun extract() { 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_4_32/Psi2Ir.kt index 16ee288d05a..392e7cf6c28 100644 --- 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_4_32/Psi2Ir.kt @@ -1,12 +1,13 @@ package com.github.codeql.utils.versions +import com.github.codeql.FileLogger import com.intellij.psi.PsiElement import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi2ir.PsiSourceManager -class Psi2Ir : Psi2IrFacade { +class Psi2Ir(private val logger: FileLogger) : Psi2IrFacade { companion object { val psiManager = PsiSourceManager() } @@ -18,4 +19,4 @@ class Psi2Ir : Psi2IrFacade { override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { return psiManager.findPsiElement(irElement, irFile) } -} \ No newline at end of file +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt index 16ee288d05a..392e7cf6c28 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt @@ -1,12 +1,13 @@ package com.github.codeql.utils.versions +import com.github.codeql.FileLogger import com.intellij.psi.PsiElement import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi2ir.PsiSourceManager -class Psi2Ir : Psi2IrFacade { +class Psi2Ir(private val logger: FileLogger) : Psi2IrFacade { companion object { val psiManager = PsiSourceManager() } @@ -18,4 +19,4 @@ class Psi2Ir : Psi2IrFacade { override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { return psiManager.findPsiElement(irElement, irFile) } -} \ No newline at end of file +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt index 16ee288d05a..392e7cf6c28 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt @@ -1,12 +1,13 @@ package com.github.codeql.utils.versions +import com.github.codeql.FileLogger import com.intellij.psi.PsiElement import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi2ir.PsiSourceManager -class Psi2Ir : Psi2IrFacade { +class Psi2Ir(private val logger: FileLogger) : Psi2IrFacade { companion object { val psiManager = PsiSourceManager() } @@ -18,4 +19,4 @@ class Psi2Ir : Psi2IrFacade { override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { return psiManager.findPsiElement(irElement, irFile) } -} \ No newline at end of file +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/Psi2Ir.kt index 256a8b3bb63..8e21191f2a0 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/Psi2Ir.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/Psi2Ir.kt @@ -1,5 +1,6 @@ package com.github.codeql.utils.versions +import com.github.codeql.FileLogger import com.intellij.psi.PsiElement import org.jetbrains.kotlin.backend.common.psi.PsiSourceManager import org.jetbrains.kotlin.backend.jvm.ir.getKtFile @@ -7,7 +8,7 @@ import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile -class Psi2Ir: Psi2IrFacade { +class Psi2Ir(private val logger: FileLogger): Psi2IrFacade { override fun getKtFile(irFile: IrFile): KtFile? { return irFile.getKtFile() } @@ -15,4 +16,4 @@ class Psi2Ir: Psi2IrFacade { override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { return PsiSourceManager.findPsiElement(irElement, irFile) } -} \ No newline at end of file +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/Psi2Ir.kt index 256a8b3bb63..8e21191f2a0 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/Psi2Ir.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/Psi2Ir.kt @@ -1,5 +1,6 @@ package com.github.codeql.utils.versions +import com.github.codeql.FileLogger import com.intellij.psi.PsiElement import org.jetbrains.kotlin.backend.common.psi.PsiSourceManager import org.jetbrains.kotlin.backend.jvm.ir.getKtFile @@ -7,7 +8,7 @@ import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile -class Psi2Ir: Psi2IrFacade { +class Psi2Ir(private val logger: FileLogger): Psi2IrFacade { override fun getKtFile(irFile: IrFile): KtFile? { return irFile.getKtFile() } @@ -15,4 +16,4 @@ class Psi2Ir: Psi2IrFacade { override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { return PsiSourceManager.findPsiElement(irElement, irFile) } -} \ No newline at end of file +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/Psi2Ir.kt index 256a8b3bb63..8e21191f2a0 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/Psi2Ir.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/Psi2Ir.kt @@ -1,5 +1,6 @@ package com.github.codeql.utils.versions +import com.github.codeql.FileLogger import com.intellij.psi.PsiElement import org.jetbrains.kotlin.backend.common.psi.PsiSourceManager import org.jetbrains.kotlin.backend.jvm.ir.getKtFile @@ -7,7 +8,7 @@ import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile -class Psi2Ir: Psi2IrFacade { +class Psi2Ir(private val logger: FileLogger): Psi2IrFacade { override fun getKtFile(irFile: IrFile): KtFile? { return irFile.getKtFile() } @@ -15,4 +16,4 @@ class Psi2Ir: Psi2IrFacade { override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { return PsiSourceManager.findPsiElement(irElement, irFile) } -} \ No newline at end of file +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/Psi2Ir.kt index 256a8b3bb63..8e21191f2a0 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/Psi2Ir.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/Psi2Ir.kt @@ -1,5 +1,6 @@ package com.github.codeql.utils.versions +import com.github.codeql.FileLogger import com.intellij.psi.PsiElement import org.jetbrains.kotlin.backend.common.psi.PsiSourceManager import org.jetbrains.kotlin.backend.jvm.ir.getKtFile @@ -7,7 +8,7 @@ import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile -class Psi2Ir: Psi2IrFacade { +class Psi2Ir(private val logger: FileLogger): Psi2IrFacade { override fun getKtFile(irFile: IrFile): KtFile? { return irFile.getKtFile() } @@ -15,4 +16,4 @@ class Psi2Ir: Psi2IrFacade { override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { return PsiSourceManager.findPsiElement(irElement, irFile) } -} \ No newline at end of file +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/Psi2Ir.kt index 256a8b3bb63..8e21191f2a0 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/Psi2Ir.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/Psi2Ir.kt @@ -1,5 +1,6 @@ package com.github.codeql.utils.versions +import com.github.codeql.FileLogger import com.intellij.psi.PsiElement import org.jetbrains.kotlin.backend.common.psi.PsiSourceManager import org.jetbrains.kotlin.backend.jvm.ir.getKtFile @@ -7,7 +8,7 @@ import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile -class Psi2Ir: Psi2IrFacade { +class Psi2Ir(private val logger: FileLogger): Psi2IrFacade { override fun getKtFile(irFile: IrFile): KtFile? { return irFile.getKtFile() } @@ -15,4 +16,4 @@ class Psi2Ir: Psi2IrFacade { override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { return PsiSourceManager.findPsiElement(irElement, irFile) } -} \ No newline at end of file +} From 960d1dba8a5dd72af2f3d070646dcea56b71cb20 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 11 Jul 2022 19:36:43 +0100 Subject: [PATCH 326/736] Kotlin: We can't etract comments for < 1.5.20 We were making our own PsiSourceManager, but that didn't know about any IrFile -> PsiFile mappings. --- .../src/main/kotlin/utils/versions/v_1_4_32/Psi2Ir.kt | 11 ++++------- .../src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt | 11 ++++------- .../src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt | 11 ++++------- 3 files changed, 12 insertions(+), 21 deletions(-) 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_4_32/Psi2Ir.kt index 392e7cf6c28..fce55c87cd6 100644 --- 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_4_32/Psi2Ir.kt @@ -5,18 +5,15 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi2ir.PsiSourceManager class Psi2Ir(private val logger: FileLogger) : Psi2IrFacade { - companion object { - val psiManager = PsiSourceManager() - } - override fun getKtFile(irFile: IrFile): KtFile? { - return psiManager.getKtFile(irFile) + logger.warn("Comment extraction is not supported for Kotlin < 1.5.20") + return null } override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { - return psiManager.findPsiElement(irElement, irFile) + logger.error("Attempted comment extraction for Kotlin < 1.5.20") + return null } } diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt index 392e7cf6c28..fce55c87cd6 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Psi2Ir.kt @@ -5,18 +5,15 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi2ir.PsiSourceManager class Psi2Ir(private val logger: FileLogger) : Psi2IrFacade { - companion object { - val psiManager = PsiSourceManager() - } - override fun getKtFile(irFile: IrFile): KtFile? { - return psiManager.getKtFile(irFile) + logger.warn("Comment extraction is not supported for Kotlin < 1.5.20") + return null } override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { - return psiManager.findPsiElement(irElement, irFile) + logger.error("Attempted comment extraction for Kotlin < 1.5.20") + return null } } diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt index 392e7cf6c28..fce55c87cd6 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/Psi2Ir.kt @@ -5,18 +5,15 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi2ir.PsiSourceManager class Psi2Ir(private val logger: FileLogger) : Psi2IrFacade { - companion object { - val psiManager = PsiSourceManager() - } - override fun getKtFile(irFile: IrFile): KtFile? { - return psiManager.getKtFile(irFile) + logger.warn("Comment extraction is not supported for Kotlin < 1.5.20") + return null } override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? { - return psiManager.findPsiElement(irElement, irFile) + logger.error("Attempted comment extraction for Kotlin < 1.5.20") + return null } } From 7fc9ae6c49eb9e7c7af20c6ddc0a907758422cfc Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Mon, 11 Jul 2022 13:07:20 -0700 Subject: [PATCH 327/736] Update python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: Taus --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 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 8db450a5ecb..df8182f5545 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -1,6 +1,6 @@ /** - * @name Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). - * @description Unsafe usage of v1 version of Azure Storage client-side encryption, please refer to http://aka.ms/azstorageclientencryptionblog + * @name Unsafe usage of v1 version of Azure Storage client-side encryption. + * @description Using version v1 of Azure Storage client-side encryption is insecure, and may enable an attacker to decrypt encrypted data * @kind problem * @tags security * cryptography From e5702d0e1596c1d6b59bdca7d228c886942bf744 Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Mon, 11 Jul 2022 13:07:37 -0700 Subject: [PATCH 328/736] Update python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: Taus --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 df8182f5545..6a489bf6774 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -5,7 +5,7 @@ * @tags security * cryptography * external/cwe/cwe-327 - * @id python/azure-storage/unsafe-client-side-encryption-in-use + * @id py/azure-storage/unsafe-client-side-encryption-in-use * @problem.severity error * @precision medium */ From ac055779669ffad52d5229f138e31487c88a4b0e Mon Sep 17 00:00:00 2001 From: Raul Garcia Date: Mon, 11 Jul 2022 13:25:35 -0700 Subject: [PATCH 329/736] Making various changes based on the feedback. Pending: 2 non-trivial fixes for Java & Python. --- ...nsafeUsageOfClientSideEncryptionVersion.cs | 11 ++++++++ ...feUsageOfClientSideEncryptionVersion.qhelp | 3 +++ ...nsafeUsageOfClientSideEncryptionVersion.ql | 26 ++++++++++++------- ...feUsageOfClientSideEncryptionVersion.qhelp | 8 +++--- ...nsafeUsageOfClientSideEncryptionVersion.ql | 11 ++++---- ...nsafeUsageOfClientSideEncryptionVersion.py | 12 ++++----- ...feUsageOfClientSideEncryptionVersion.qhelp | 8 +++--- ...nsafeUsageOfClientSideEncryptionVersion.ql | 11 +++----- 8 files changed, 51 insertions(+), 39 deletions(-) diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.cs b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.cs index 39928d9e2c7..bee97118ea8 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.cs +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.cs @@ -1,4 +1,15 @@ +{ + SymmetricKey aesKey = new SymmetricKey(kid: "symencryptionkey"); + + // BAD: Using the outdated client side encryption version V1_0 + BlobEncryptionPolicy uploadPolicy = new BlobEncryptionPolicy(key: aesKey, keyResolver: null); + BlobRequestOptions uploadOptions = new BlobRequestOptions() { EncryptionPolicy = uploadPolicy }; + + MemoryStream stream = new MemoryStream(buffer); + blob.UploadFromStream(stream, length: size, accessCondition: null, options: uploadOptions); +} + var client = new BlobClient(myConnectionString, new SpecializedBlobClientOptions() { // BAD: Using an outdated SDK that does not support client side encryption version V2_0 diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index a3a33691854..e0ee017cb14 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -21,6 +21,9 @@
  • Azure Storage Client Encryption Blog.
  • +
  • + CVE-2022-PENDING +
  • diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index 095c154e9a3..b150ca71060 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -33,16 +33,25 @@ predicate isCreatingOutdatedAzureClientSideEncryptionObject(ObjectCreation oc, C } /** - * Holds if the Azure.Storage assembly for `c` is a version knwon to support - * version 2+ for client-side encryption and if the argument for the constructor `version` - * is set to a secure value. + * Holds if the Azure.Storage assembly for `c` is a version known to support + * version 2+ for client-side encryption */ -predicate isObjectCreationSafe(Expr versionExpr, Assembly asm) { - // Check if the Azure.Storage assembly version has the fix +predicate doesAzureStorageAssemblySupportSafeClientSideEncryption(Assembly asm) { exists(int versionCompare | versionCompare = asm.getVersion().compareTo("12.12.0.0") and versionCompare >= 0 ) and + asm.getName() = "Azure.Storage.Common" +} + +/** + * Holds if the Azure.Storage assembly for `c` is a version known to support + * version 2+ for client-side encryption and if the argument for the constructor `version` + * is set to a secure value. + */ +predicate isObjectCreationArgumentSafeAndUsingSafeVersionOfAssembly(Expr versionExpr, Assembly asm) { + // Check if the Azure.Storage assembly version has the fix + doesAzureStorageAssemblySupportSafeClientSideEncryption(asm) and // and that the version argument for the constructor is guaranteed to be Version2 isExprAnAccessToSafeClientSideEncryptionVersionValue(versionExpr) } @@ -56,8 +65,6 @@ predicate isExprAnAccessToSafeClientSideEncryptionVersionValue(Expr e) { ec.hasQualifiedName("Azure.Storage.ClientSideEncryptionVersion.V2_0") and ec.getAnAccess() = e ) - or - e.getValue().toInt() >= 2 } from Expr e, Class c, Assembly asm @@ -66,10 +73,9 @@ where ( exists(Expr e2 | isCreatingAzureClientSideEncryptionObject(e, c, e2) and - not isObjectCreationSafe(e2, asm) + not isObjectCreationArgumentSafeAndUsingSafeVersionOfAssembly(e2, asm) ) or isCreatingOutdatedAzureClientSideEncryptionObject(e, c) ) -select e, - "Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). See http://aka.ms/azstorageclientencryptionblog" +select e, "Unsafe usage of v1 version of Azure Storage client-side encryption." diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index 3fca30a7926..45d919ec702 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -14,11 +14,6 @@ -

    The following example shows an HTTP request parameter being used directly in a forming a -new request without validating the input, which facilitates SSRF attacks. -It also shows how to remedy the problem by validating the user input against a known fixed string. -

    -
    @@ -26,6 +21,9 @@ It also shows how to remedy the problem by validating the user input against a k
  • Azure Storage Client Encryption Blog.
  • +
  • + CVE-2022-PENDING +
  • diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index a109e945343..97bccf67314 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -13,7 +13,7 @@ import java /** - * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` + * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` * that takes no arguments, which means that it is using V1 encryption */ predicate isCreatingOutdatedAzureClientSideEncryptionObject(Call call, Class c) { @@ -31,8 +31,8 @@ predicate isCreatingOutdatedAzureClientSideEncryptionObject(Call call, Class c) ) } -/** - * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` +/** + * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` * that takes `versionArg` as the argument for the version. */ predicate isCreatingAzureClientSideEncryptionObjectNewVersion(Call call, Class c, Expr versionArg) { @@ -47,7 +47,7 @@ predicate isCreatingAzureClientSideEncryptionObjectNewVersion(Call call, Class c } /** - * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` + * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` * that takes `versionArg` as the argument for the version, and the version number is safe */ predicate isCreatingSafeAzureClientSideEncryptionObject(Call call, Class c, Expr versionArg) { @@ -67,5 +67,4 @@ where ) or isCreatingOutdatedAzureClientSideEncryptionObject(e, c) -select e, - "Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). See http://aka.ms/azstorageclientencryptionblog" +select e, "Unsafe usage of v1 version of Azure Storage client-side encryption." diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py index c4a0519f29d..b7099b3d6c0 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py @@ -1,7 +1,7 @@ blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name) - blob_client.require_encryption = True - blob_client.key_encryption_key = kek - # GOOD: Must use `encryption_version` set to `2.0` - blob_client.encryption_version = '2.0' # Use Version 2.0! - with open(“decryptedcontentfile.txtâ€, “rbâ€) as stream: - blob_client.upload_blob(stream, overwrite=OVERWRITE_EXISTING) \ No newline at end of file +blob_client.require_encryption = True +blob_client.key_encryption_key = kek +# GOOD: Must use `encryption_version` set to `2.0` +blob_client.encryption_version = '2.0' # Use Version 2.0! +with open(“decryptedcontentfile.txtâ€, “rbâ€) as stream: + blob_client.upload_blob(stream, overwrite=OVERWRITE_EXISTING) \ No newline at end of file diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index c4111a166de..eaf49f371e6 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -14,11 +14,6 @@ -

    The following example shows an HTTP request parameter being used directly in a forming a -new request without validating the input, which facilitates SSRF attacks. -It also shows how to remedy the problem by validating the user input against a known fixed string. -

    -
    @@ -26,6 +21,9 @@ It also shows how to remedy the problem by validating the user input against a k
  • Azure Storage Client Encryption Blog.
  • +
  • + CVE-2022-PENDING +
  • 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 6a489bf6774..55f695ca061 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -24,7 +24,7 @@ predicate isUnsafeClientSideAzureStorageEncryptionViaAttributes(Call call, AttrN not astmt.getValue() instanceof None and not exists(AssignStmt astmt2, Attribute a2, AttrNode encryptionVersionSet, StrConst uc | uc = astmt2.getValue() and - uc.getLiteralValue().toString() in ["'2.0'", "2.0"] and + uc.getText() in ["'2.0'", "2.0"] and a2.getAttr() = "encryption_version" and a2.getAFlowNode() = encryptionVersionSet and encryptionVersionSet.strictlyReaches(ctrlFlowNode) @@ -34,15 +34,13 @@ predicate isUnsafeClientSideAzureStorageEncryptionViaAttributes(Call call, AttrN predicate isUnsafeClientSideAzureStorageEncryptionViaObjectCreation(Call call, ControlFlowNode node) { exists(Keyword k | k.getAFlowNode() = node | - call.getFunc().(Name).getId().toString() in [ - "ContainerClient", "BlobClient", "BlobServiceClient" - ] and + call.getFunc().(Name).getId() in ["ContainerClient", "BlobClient", "BlobServiceClient"] and k.getArg() = "key_encryption_key" and k = call.getANamedArg() and not k.getValue() instanceof None and not exists(Keyword k2 | k2 = call.getANamedArg() | k2.getArg() = "encryption_version" and - k2.getValue().(StrConst).getLiteralValue().toString() in ["'2.0'", "2.0"] + k2.getValue().(StrConst).getText() in ["'2.0'", "2.0"] ) ) } @@ -51,5 +49,4 @@ from Call call, ControlFlowNode node where isUnsafeClientSideAzureStorageEncryptionViaAttributes(call, node) or isUnsafeClientSideAzureStorageEncryptionViaObjectCreation(call, node) -select node, - "Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). See http://aka.ms/azstorageclientencryptionblog" +select node, "Unsafe usage of v1 version of Azure Storage client-side encryption." From 02e11b7ee92d78b7451a3e70e79c147da1a33524 Mon Sep 17 00:00:00 2001 From: Aditya Sharad Date: Mon, 11 Jul 2022 13:59:38 -0700 Subject: [PATCH 330/736] Docs: Add links from query help to query pack changelog for each language --- docs/codeql/query-help/cpp.rst | 4 +++- docs/codeql/query-help/csharp.rst | 4 +++- docs/codeql/query-help/go.rst | 4 +++- docs/codeql/query-help/java.rst | 4 +++- docs/codeql/query-help/javascript.rst | 4 +++- docs/codeql/query-help/python.rst | 4 +++- docs/codeql/query-help/ruby.rst | 4 +++- 7 files changed, 21 insertions(+), 7 deletions(-) diff --git a/docs/codeql/query-help/cpp.rst b/docs/codeql/query-help/cpp.rst index 7c3cbe304d7..12d2dfbf53e 100644 --- a/docs/codeql/query-help/cpp.rst +++ b/docs/codeql/query-help/cpp.rst @@ -3,7 +3,9 @@ CodeQL query help for C and C++ .. include:: ../reusables/query-help-overview.rst -For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. +These queries are published in the CodeQL query pack ``codeql/cpp-queries`` (`changelog `__, `source `__). + +For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. .. include:: toc-cpp.rst \ No newline at end of file diff --git a/docs/codeql/query-help/csharp.rst b/docs/codeql/query-help/csharp.rst index 9c5c6351ce3..5d7f732a588 100644 --- a/docs/codeql/query-help/csharp.rst +++ b/docs/codeql/query-help/csharp.rst @@ -3,6 +3,8 @@ CodeQL query help for C# .. include:: ../reusables/query-help-overview.rst -For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. +These queries are published in the CodeQL query pack ``codeql/csharp-queries`` (`changelog `__, `source `__). + +For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. .. include:: toc-csharp.rst \ No newline at end of file diff --git a/docs/codeql/query-help/go.rst b/docs/codeql/query-help/go.rst index 9e3050f74d0..bcd4aba9b51 100644 --- a/docs/codeql/query-help/go.rst +++ b/docs/codeql/query-help/go.rst @@ -3,6 +3,8 @@ CodeQL query help for Go .. include:: ../reusables/query-help-overview.rst -For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. +These queries are published in the CodeQL query pack ``codeql/go-queries`` (`changelog `__, `source `__). + +For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. .. include:: toc-go.rst diff --git a/docs/codeql/query-help/java.rst b/docs/codeql/query-help/java.rst index 8af2ee52890..4876546d2dc 100644 --- a/docs/codeql/query-help/java.rst +++ b/docs/codeql/query-help/java.rst @@ -3,6 +3,8 @@ CodeQL query help for Java .. include:: ../reusables/query-help-overview.rst -For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. +These queries are published in the CodeQL query pack ``codeql/java-queries`` (`changelog `__, `source `__). + +For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. .. include:: toc-java.rst diff --git a/docs/codeql/query-help/javascript.rst b/docs/codeql/query-help/javascript.rst index d7cf6797852..ae85de99f7b 100644 --- a/docs/codeql/query-help/javascript.rst +++ b/docs/codeql/query-help/javascript.rst @@ -3,6 +3,8 @@ CodeQL query help for JavaScript .. include:: ../reusables/query-help-overview.rst -For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. +These queries are published in the CodeQL query pack ``codeql/javascript-queries`` (`changelog `__, `source `__). + +For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. .. include:: toc-javascript.rst \ No newline at end of file diff --git a/docs/codeql/query-help/python.rst b/docs/codeql/query-help/python.rst index da68c1caa9b..9d915d443f3 100644 --- a/docs/codeql/query-help/python.rst +++ b/docs/codeql/query-help/python.rst @@ -3,6 +3,8 @@ CodeQL query help for Python .. include:: ../reusables/query-help-overview.rst -For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. +These queries are published in the CodeQL query pack ``codeql/python-queries`` (`changelog `__, `source `__). + +For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. .. include:: toc-python.rst \ No newline at end of file diff --git a/docs/codeql/query-help/ruby.rst b/docs/codeql/query-help/ruby.rst index 3ce1304ba76..e733aecaf79 100644 --- a/docs/codeql/query-help/ruby.rst +++ b/docs/codeql/query-help/ruby.rst @@ -3,6 +3,8 @@ CodeQL query help for Ruby .. include:: ../reusables/query-help-overview.rst -For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. +These queries are published in the CodeQL query pack ``codeql/ruby-queries`` (`changelog `__, `source `__). + +For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. .. include:: toc-ruby.rst From d5791e2d56e8dfd348747f09e23f69596f5c7619 Mon Sep 17 00:00:00 2001 From: Raul Garcia Date: Mon, 11 Jul 2022 15:45:15 -0700 Subject: [PATCH 331/736] Addressing feedback from the PR --- ...nsafeUsageOfClientSideEncryptionVersion.ql | 30 ++++++++++++++++--- ...nsafeUsageOfClientSideEncryptionVersion.ql | 7 +++-- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index 97bccf67314..50840b67f0b 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -11,6 +11,7 @@ */ import java +import semmle.code.java.dataflow.DataFlow /** * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` @@ -46,16 +47,37 @@ predicate isCreatingAzureClientSideEncryptionObjectNewVersion(Call call, Class c ) } +/** + * A config that tracks `EncryptedBlobClientBuilder.version` argument initialization. + */ +private class EncryptedBlobClientBuilderEncryptionVersionConfig extends DataFlow::Configuration { + EncryptedBlobClientBuilderEncryptionVersionConfig() { + this = "EncryptedBlobClientBuilderEncryptionVersionConfig" + } + + override predicate isSource(DataFlow::Node source) { + exists(FieldRead fr, Field f | fr = source.asExpr() | + f.getAnAccess() = fr and + f.hasQualifiedName("com.azure.storage.blob.specialized.cryptography", "EncryptionVersion", + "V2") + ) + } + + override predicate isSink(DataFlow::Node sink) { + isCreatingAzureClientSideEncryptionObjectNewVersion(_, _, sink.asExpr()) + } +} + /** * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` * that takes `versionArg` as the argument for the version, and the version number is safe */ predicate isCreatingSafeAzureClientSideEncryptionObject(Call call, Class c, Expr versionArg) { isCreatingAzureClientSideEncryptionObjectNewVersion(call, c, versionArg) and - exists(FieldRead fr, Field f | - fr = versionArg and - f.getAnAccess() = fr and - f.hasQualifiedName("com.azure.storage.blob.specialized.cryptography", "EncryptionVersion", "V2") + exists(EncryptedBlobClientBuilderEncryptionVersionConfig config, DataFlow::Node sink | + sink.asExpr() = versionArg + | + config.hasFlow(_, sink) ) } 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 55f695ca061..442399e658f 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -11,6 +11,7 @@ */ import python +import semmle.python.ApiGraphs predicate isUnsafeClientSideAzureStorageEncryptionViaAttributes(Call call, AttrNode node) { exists(ControlFlowNode ctrlFlowNode, AssignStmt astmt, Attribute a | @@ -33,8 +34,10 @@ predicate isUnsafeClientSideAzureStorageEncryptionViaAttributes(Call call, AttrN } predicate isUnsafeClientSideAzureStorageEncryptionViaObjectCreation(Call call, ControlFlowNode node) { - exists(Keyword k | k.getAFlowNode() = node | - call.getFunc().(Name).getId() in ["ContainerClient", "BlobClient", "BlobServiceClient"] and + exists(API::Node c, string s, Keyword k | k.getAFlowNode() = node | + c.getACall().asExpr() = call and + c = API::moduleImport("azure").getMember("storage").getMember("blob").getMember(s) and + s in ["ContainerClient", "BlobClient", "BlobServiceClient"] and k.getArg() = "key_encryption_key" and k = call.getANamedArg() and not k.getValue() instanceof None and From 217c9a8aaf680e47b66031a88b3ac04e6c7a85e2 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Tue, 12 Jul 2022 08:50:58 +0100 Subject: [PATCH 332/736] Fix typo in changenote Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> --- ruby/ql/lib/change-notes/2022-07-11-command-execution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/change-notes/2022-07-11-command-execution.md b/ruby/ql/lib/change-notes/2022-07-11-command-execution.md index 2c5addba1f5..f6548719b57 100644 --- a/ruby/ql/lib/change-notes/2022-07-11-command-execution.md +++ b/ruby/ql/lib/change-notes/2022-07-11-command-execution.md @@ -1,6 +1,6 @@ --- category: minorAnalysis --- -* Fixed a bug causing every expression in the database to be a considered a system-command execution sink when calls to any of the following methods exist: +* Fixed a bug causing every expression in the database to be considered a system-command execution sink when calls to any of the following methods exist: * The `spawn`, `fspawn`, `popen4`, `pspawn`, `system`, `_pspawn` methods and the backtick operator from the `POSIX::spawn` gem. * The `execute_command`, `rake`, `rails_command`, and `git` methods in `Rails::Generation::Actions`. From c75599c3da63e8a2f99319dfa29131bdec9ab396 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 12 Jul 2022 10:27:22 +0200 Subject: [PATCH 333/736] C++: Clarify the "most-specific" part of `FunctionCall:getTarget` --- cpp/ql/lib/semmle/code/cpp/exprs/Call.qll | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll index 7ceda8ddbff..dba3d16997f 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll @@ -255,8 +255,10 @@ class FunctionCall extends Call, @funbindexpr { /** * Gets the function called by this call. * - * In the case of virtual function calls, the result is the most-specific function in the override tree (as - * determined by the compiler) such that the target at runtime will be one of `result.getAnOverridingFunction*()`. + * In the case of virtual function calls, the result is the most-specific function in the override tree + * such that the target at runtime will be one of `result.getAnOverridingFunction*()`. The most-specific + * function is determined by the compiler based on the compile time type of the object the function is a + * member of. */ override Function getTarget() { funbind(underlyingElement(this), unresolveElement(result)) } From 033b239b22cb3ccabb988b9f9587ce8e59826895 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 12 Jul 2022 10:33:54 +0200 Subject: [PATCH 334/736] Swift: collapse `TypeRepr` hierarchy Now `TypeRepr` is a final class in the AST, which is more or less just a type with a location in code. As the frontend does not provide a direct way to get a type from a type representation, this information must be provided when fetching the label of a type repr. This meant: * removing the type repr field from `EnumIsCaseExpr`: this is a virtual AST node introduced in place of some kinds of `IsEpxr`. The type repr is still available from the `ConditionalCheckedCastExpr` wrapped by this virtual node, and we will rebuild the original `IsExpr` with the IPA layer. * some logic to get the type of keypath roots has been added to `KeyPathExpr`. This was done to keep the `TypeRepr` to `Type` relation total in the DB, but goes against the design of a dumb extractor. The logic could be moved to QL in the future * in the control flow library, `TypeRepr` children are now ignored. As far as I can tell, there is no runtime evaluation going on in `TypeRepr`s, so it does not make much sense to have control flow through them. --- swift/codegen/schema.yml | 91 +--- swift/extractor/infra/SwiftDispatcher.h | 22 +- swift/extractor/infra/SwiftTagTraits.h | 4 - swift/extractor/trap/BUILD.bazel | 2 +- swift/extractor/visitors/ExprVisitor.cpp | 18 +- swift/extractor/visitors/PatternVisitor.cpp | 7 +- swift/extractor/visitors/SwiftVisitor.h | 6 +- swift/extractor/visitors/TypeReprVisitor.cpp | 3 - swift/extractor/visitors/TypeReprVisitor.h | 13 - swift/extractor/visitors/TypeVisitor.cpp | 6 + swift/extractor/visitors/TypeVisitor.h | 2 + .../internal/ControlFlowGraphImpl.qll | 15 +- swift/ql/lib/codeql/swift/elements.qll | 30 +- .../codeql/swift/elements/type/TypeRepr.qll | 5 + .../typerepr/ComponentIdentTypeRepr.qll | 4 - .../elements/typerepr/CompositionTypeRepr.qll | 4 - .../swift/elements/typerepr/ErrorTypeRepr.qll | 4 - .../elements/typerepr/ExistentialTypeRepr.qll | 4 - .../swift/elements/typerepr/FixedTypeRepr.qll | 4 - .../swift/elements/typerepr/IdentTypeRepr.qll | 4 - .../typerepr/NamedOpaqueReturnTypeRepr.qll | 4 - .../typerepr/OpaqueReturnTypeRepr.qll | 4 - .../elements/typerepr/PlaceholderTypeRepr.qll | 4 - .../elements/typerepr/SimpleIdentTypeRepr.qll | 4 - .../elements/typerepr/SpecifierTypeRepr.qll | 4 - .../swift/elements/typerepr/TypeRepr.qll | 4 - .../swift/generated/GetImmediateParent.qll | 8 +- .../swift/generated/expr/EnumIsCaseExpr.qll | 12 +- .../swift/generated/expr/KeyPathExpr.qll | 9 +- .../codeql/swift/generated/expr/TypeExpr.qll | 2 +- .../swift/generated/pattern/IsPattern.qll | 2 +- .../swift/generated/pattern/TypedPattern.qll | 2 +- .../codeql/swift/generated/type/TypeRepr.qll | 14 + .../generated/typerepr/ArrayTypeRepr.qll | 6 - .../generated/typerepr/AttributedTypeRepr.qll | 6 - .../typerepr/CompileTimeConstTypeRepr.qll | 6 - .../typerepr/ComponentIdentTypeRepr.qll | 4 - .../typerepr/CompositionTypeRepr.qll | 6 - .../typerepr/CompoundIdentTypeRepr.qll | 6 - .../generated/typerepr/DictionaryTypeRepr.qll | 6 - .../generated/typerepr/ErrorTypeRepr.qll | 6 - .../typerepr/ExistentialTypeRepr.qll | 6 - .../generated/typerepr/FixedTypeRepr.qll | 6 - .../generated/typerepr/FunctionTypeRepr.qll | 6 - .../typerepr/GenericIdentTypeRepr.qll | 6 - .../generated/typerepr/IdentTypeRepr.qll | 4 - .../ImplicitlyUnwrappedOptionalTypeRepr.qll | 7 - .../generated/typerepr/InOutTypeRepr.qll | 6 - .../generated/typerepr/IsolatedTypeRepr.qll | 6 - .../generated/typerepr/MetatypeTypeRepr.qll | 6 - .../typerepr/NamedOpaqueReturnTypeRepr.qll | 6 - .../typerepr/OpaqueReturnTypeRepr.qll | 6 - .../generated/typerepr/OptionalTypeRepr.qll | 6 - .../generated/typerepr/OwnedTypeRepr.qll | 6 - .../typerepr/PlaceholderTypeRepr.qll | 6 - .../generated/typerepr/ProtocolTypeRepr.qll | 6 - .../generated/typerepr/SharedTypeRepr.qll | 6 - .../generated/typerepr/SilBoxTypeRepr.qll | 6 - .../typerepr/SimpleIdentTypeRepr.qll | 6 - .../generated/typerepr/SpecifierTypeRepr.qll | 4 - .../generated/typerepr/TupleTypeRepr.qll | 6 - .../swift/generated/typerepr/TypeRepr.qll | 4 - swift/ql/lib/swift.dbscheme | 148 +----- .../extractor-tests/expressions/all.expected | 4 - .../EnumIsCaseExpr/EnumIsCaseExpr.expected | 20 +- .../expr/EnumIsCaseExpr/EnumIsCaseExpr.ql | 5 +- .../UnresolvedDotExpr}/MISSING_SOURCE.txt | 0 .../UnresolvedDotExpr.expected | 3 - .../UnresolvedDotExpr/UnresolvedDotExpr.ql | 11 - .../UnresolvedDotExpr_getType.expected | 0 .../UnresolvedDotExpr_getType.ql | 7 - .../unresolved_dot_expr.swift | 11 - .../TypeRepr}/MISSING_SOURCE.txt | 0 .../MISSING_SOURCE.txt | 4 - .../CompositionTypeRepr/MISSING_SOURCE.txt | 4 - .../CompoundIdentTypeRepr/MISSING_SOURCE.txt | 4 - .../DictionaryTypeRepr/MISSING_SOURCE.txt | 4 - .../typerepr/ErrorTypeRepr/MISSING_SOURCE.txt | 4 - .../ExistentialTypeRepr/MISSING_SOURCE.txt | 4 - .../typerepr/FixedTypeRepr/MISSING_SOURCE.txt | 4 - .../FunctionTypeRepr/MISSING_SOURCE.txt | 4 - .../GenericIdentTypeRepr/MISSING_SOURCE.txt | 4 - .../MISSING_SOURCE.txt | 4 - .../typerepr/InOutTypeRepr/MISSING_SOURCE.txt | 4 - .../IsolatedTypeRepr/MISSING_SOURCE.txt | 4 - .../MetatypeTypeRepr/MISSING_SOURCE.txt | 4 - .../MISSING_SOURCE.txt | 4 - .../OpaqueReturnTypeRepr/MISSING_SOURCE.txt | 4 - .../OptionalTypeRepr/MISSING_SOURCE.txt | 4 - .../typerepr/OwnedTypeRepr/MISSING_SOURCE.txt | 4 - .../PlaceholderTypeRepr/MISSING_SOURCE.txt | 4 - .../ProtocolTypeRepr/MISSING_SOURCE.txt | 4 - .../SharedTypeRepr/MISSING_SOURCE.txt | 4 - .../SilBoxTypeRepr/MISSING_SOURCE.txt | 4 - .../SimpleIdentTypeRepr/MISSING_SOURCE.txt | 4 - .../typerepr/TupleTypeRepr/MISSING_SOURCE.txt | 4 - .../controlflow/graph/Cfg.expected | 481 +++++++++++++++++- .../test/library-tests/parent/parent.expected | 136 +++-- 98 files changed, 646 insertions(+), 760 deletions(-) delete mode 100644 swift/extractor/visitors/TypeReprVisitor.cpp delete mode 100644 swift/extractor/visitors/TypeReprVisitor.h create mode 100644 swift/ql/lib/codeql/swift/elements/type/TypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/ComponentIdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/CompositionTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/ErrorTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/ExistentialTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/FixedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/IdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/NamedOpaqueReturnTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/OpaqueReturnTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/PlaceholderTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/SimpleIdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/SpecifierTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/TypeRepr.qll create mode 100644 swift/ql/lib/codeql/swift/generated/type/TypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/ArrayTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/AttributedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/CompileTimeConstTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/ComponentIdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/CompositionTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/CompoundIdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/DictionaryTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/ErrorTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/ExistentialTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/FixedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/FunctionTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/GenericIdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/IdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/ImplicitlyUnwrappedOptionalTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/InOutTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/IsolatedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/MetatypeTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/NamedOpaqueReturnTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/OpaqueReturnTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/OptionalTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/OwnedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/PlaceholderTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/ProtocolTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/SharedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/SilBoxTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/SimpleIdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/SpecifierTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/TupleTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/generated/typerepr/TypeRepr.qll rename swift/ql/test/extractor-tests/generated/{typerepr/ArrayTypeRepr => expr/UnresolvedDotExpr}/MISSING_SOURCE.txt (100%) delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/unresolved_dot_expr.swift rename swift/ql/test/extractor-tests/generated/{typerepr/AttributedTypeRepr => type/TypeRepr}/MISSING_SOURCE.txt (100%) delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/CompileTimeConstTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/CompositionTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/CompoundIdentTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/DictionaryTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/ErrorTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/ExistentialTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/FixedTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/FunctionTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/GenericIdentTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/ImplicitlyUnwrappedOptionalTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/InOutTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/IsolatedTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/MetatypeTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/NamedOpaqueReturnTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/OpaqueReturnTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/OptionalTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/OwnedTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/PlaceholderTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/ProtocolTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/SharedTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/SilBoxTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/SimpleIdentTypeRepr/MISSING_SOURCE.txt delete mode 100644 swift/ql/test/extractor-tests/generated/typerepr/TupleTypeRepr/MISSING_SOURCE.txt diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index 01bb0c2feba..7d6d530170d 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -7,8 +7,7 @@ _includes: _directories: decl: Decl$|Context$ pattern: Pattern$ - type: Type$ - typerepr: TypeRepr$ + type: Type(Repr)?$ expr: Expr$ stmt: Stmt$ @@ -181,6 +180,7 @@ Stmt: TypeRepr: _extends: AstNode + type: Type FunctionType: _extends: AnyFunctionType @@ -391,7 +391,6 @@ EnumIsCaseExpr: _extends: Expr _children: sub_expr: Expr - type_repr: TypeRepr element: EnumElementDecl ErrorExpr: @@ -442,7 +441,7 @@ KeyPathDotExpr: KeyPathExpr: _extends: Expr _children: - parsed_root: Expr? + root: TypeRepr? parsed_path: Expr? LazyInitializerExpr: @@ -1162,87 +1161,3 @@ FloatLiteralExpr: IntegerLiteralExpr: _extends: NumberLiteralExpr string_value: string - -ErrorTypeRepr: - _extends: TypeRepr - -AttributedTypeRepr: - _extends: TypeRepr - -IdentTypeRepr: - _extends: TypeRepr - -ComponentIdentTypeRepr: - _extends: IdentTypeRepr - -SimpleIdentTypeRepr: - _extends: ComponentIdentTypeRepr - -GenericIdentTypeRepr: - _extends: ComponentIdentTypeRepr - -CompoundIdentTypeRepr: - _extends: IdentTypeRepr - -FunctionTypeRepr: - _extends: TypeRepr - -ArrayTypeRepr: - _extends: TypeRepr - -DictionaryTypeRepr: - _extends: TypeRepr - -OptionalTypeRepr: - _extends: TypeRepr - -ImplicitlyUnwrappedOptionalTypeRepr: - _extends: TypeRepr - -TupleTypeRepr: - _extends: TypeRepr - -CompositionTypeRepr: - _extends: TypeRepr - -MetatypeTypeRepr: - _extends: TypeRepr - -ProtocolTypeRepr: - _extends: TypeRepr - -OpaqueReturnTypeRepr: - _extends: TypeRepr - -NamedOpaqueReturnTypeRepr: - _extends: TypeRepr - -ExistentialTypeRepr: - _extends: TypeRepr - -PlaceholderTypeRepr: - _extends: TypeRepr - -SpecifierTypeRepr: - _extends: TypeRepr - -InOutTypeRepr: - _extends: SpecifierTypeRepr - -SharedTypeRepr: - _extends: SpecifierTypeRepr - -OwnedTypeRepr: - _extends: SpecifierTypeRepr - -IsolatedTypeRepr: - _extends: SpecifierTypeRepr - -CompileTimeConstTypeRepr: - _extends: SpecifierTypeRepr - -FixedTypeRepr: - _extends: TypeRepr - -SilBoxTypeRepr: - _extends: TypeRepr diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index c7ca43a1614..0f1753cda1d 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -64,8 +64,8 @@ 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 - TrapLabelOf fetchLabel(E* e) { + template + TrapLabelOf fetchLabel(E* e, Args&&... args) { assert(e && "trying to fetch a label on nullptr, maybe fetchOptionalLabel is to be used?"); // this is required so we avoid any recursive loop: a `fetchLabel` during the visit of `e` might // end up calling `fetchLabel` on `e` itself, so we want the visit of `e` to call `fetchLabel` @@ -76,7 +76,7 @@ class SwiftDispatcher { return *l; } waitingForNewLabel = e; - visit(e); + visit(e, std::forward(args)...); if (auto l = store.get(e)) { if constexpr (!std::is_base_of_v) { attachLocation(e, *l); @@ -158,10 +158,10 @@ class SwiftDispatcher { // return `std::optional(fetchLabel(arg))` if arg converts to true, otherwise std::nullopt // universal reference `Arg&&` is used to catch both temporary and non-const references, not // for perfect forwarding - template - auto fetchOptionalLabel(Arg&& arg) -> std::optional { + template + auto fetchOptionalLabel(Arg&& arg, Args&&... args) -> std::optional { if (arg) { - return fetchLabel(arg); + return fetchLabel(arg, std::forward(args)...); } return std::nullopt; } @@ -251,9 +251,11 @@ class SwiftDispatcher { template bool fetchLabelFromUnionCase(const llvm::PointerUnion u, TrapLabel& output) { - if (auto e = u.template dyn_cast()) { - output = fetchLabel(e); - return true; + if constexpr (!std::is_same_v) { + if (auto e = u.template dyn_cast()) { + output = fetchLabel(e); + return true; + } } return false; } @@ -279,7 +281,7 @@ class SwiftDispatcher { virtual void visit(swift::CaseLabelItem* item) = 0; virtual void visit(swift::Expr* expr) = 0; virtual void visit(swift::Pattern* pattern) = 0; - virtual void visit(swift::TypeRepr* type) = 0; + virtual void visit(swift::TypeRepr* typeRepr, swift::Type type) = 0; virtual void visit(swift::TypeBase* type) = 0; const swift::SourceManager& sourceManager; diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index 8a2e489683d..96da48813d3 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -14,7 +14,6 @@ using SILBlockStorageTypeTag = SilBlockStorageTypeTag; using SILBoxTypeTag = SilBoxTypeTag; using SILFunctionTypeTag = SilFunctionTypeTag; using SILTokenTypeTag = SilTokenTypeTag; -using SILBoxTypeReprTag = SilBoxTypeReprTag; #define MAP_TYPE_TO_TAG(TYPE, TAG) \ template <> \ @@ -57,9 +56,6 @@ MAP_TAG(Pattern); #include MAP_TAG(TypeRepr); -#define ABSTRACT_TYPEREPR(CLASS, PARENT) MAP_SUBTAG(CLASS##TypeRepr, PARENT) -#define TYPEREPR(CLASS, PARENT) ABSTRACT_TYPEREPR(CLASS, PARENT) -#include MAP_TYPE_TO_TAG(TypeBase, TypeTag); #define ABSTRACT_TYPE(CLASS, PARENT) MAP_SUBTAG(CLASS##Type, PARENT) diff --git a/swift/extractor/trap/BUILD.bazel b/swift/extractor/trap/BUILD.bazel index b1860142866..08875c45263 100644 --- a/swift/extractor/trap/BUILD.bazel +++ b/swift/extractor/trap/BUILD.bazel @@ -1,6 +1,6 @@ load("//swift:rules.bzl", "swift_cc_library") -_dirs = ("", "decl/", "expr/", "pattern/", "stmt/", "type/", "typerepr/") +_dirs = ("", "decl/", "expr/", "pattern/", "stmt/", "type/") genrule( name = "cppgen", diff --git a/swift/extractor/visitors/ExprVisitor.cpp b/swift/extractor/visitors/ExprVisitor.cpp index e6aabef4cea..8d07372d024 100644 --- a/swift/extractor/visitors/ExprVisitor.cpp +++ b/swift/extractor/visitors/ExprVisitor.cpp @@ -188,9 +188,8 @@ void ExprVisitor::visitEnumIsCaseExpr(swift::EnumIsCaseExpr* expr) { assert(expr->getCaseTypeRepr() && "EnumIsCaseExpr has CaseTypeRepr"); assert(expr->getEnumElement() && "EnumIsCaseExpr has EnumElement"); auto subExpr = dispatcher_.fetchLabel(expr->getSubExpr()); - auto typeRepr = dispatcher_.fetchLabel(expr->getCaseTypeRepr()); auto enumElement = dispatcher_.fetchLabel(expr->getEnumElement()); - dispatcher_.emit(EnumIsCaseExprsTrap{label, subExpr, typeRepr, enumElement}); + dispatcher_.emit(EnumIsCaseExprsTrap{label, subExpr, enumElement}); } void ExprVisitor::visitMakeTemporarilyEscapableExpr(swift::MakeTemporarilyEscapableExpr* expr) { @@ -288,7 +287,9 @@ void ExprVisitor::visitErasureExpr(swift::ErasureExpr* expr) { codeql::TypeExpr ExprVisitor::translateTypeExpr(const swift::TypeExpr& expr) { TypeExpr entry{dispatcher_.assignNewLabel(expr)}; - entry.type_repr = dispatcher_.fetchOptionalLabel(expr.getTypeRepr()); + if (expr.getTypeRepr() && expr.getInstanceType()) { + entry.type_repr = dispatcher_.fetchLabel(expr.getTypeRepr(), expr.getInstanceType()); + } return entry; } @@ -478,9 +479,14 @@ void ExprVisitor::visitKeyPathExpr(swift::KeyPathExpr* expr) { auto pathLabel = dispatcher_.fetchLabel(path); dispatcher_.emit(KeyPathExprParsedPathsTrap{label, pathLabel}); } - if (auto root = expr->getParsedRoot()) { - auto rootLabel = dispatcher_.fetchLabel(root); - dispatcher_.emit(KeyPathExprParsedRootsTrap{label, rootLabel}); + // TODO maybe move this logic to QL? + if (auto rootTypeRepr = expr->getRootType()) { + auto keyPathType = expr->getType()->getAs(); + assert(keyPathType && "KeyPathExpr must have BoundGenericClassType"); + auto keyPathTypeArgs = keyPathType->getGenericArgs(); + assert(keyPathTypeArgs.size() != 0 && "KeyPathExpr type must have generic args"); + auto rootLabel = dispatcher_.fetchLabel(rootTypeRepr, keyPathTypeArgs[0]); + dispatcher_.emit(KeyPathExprRootsTrap{label, rootLabel}); } } } diff --git a/swift/extractor/visitors/PatternVisitor.cpp b/swift/extractor/visitors/PatternVisitor.cpp index 43421fcbede..4ef90aa56a4 100644 --- a/swift/extractor/visitors/PatternVisitor.cpp +++ b/swift/extractor/visitors/PatternVisitor.cpp @@ -18,8 +18,8 @@ void PatternVisitor::visitTypedPattern(swift::TypedPattern* pattern) { assert(pattern->getSubPattern() && "expect TypedPattern to have a SubPattern"); dispatcher_.emit(TypedPatternsTrap{label, dispatcher_.fetchLabel(pattern->getSubPattern())}); if (auto typeRepr = pattern->getTypeRepr()) { - dispatcher_.emit( - TypedPatternTypeReprsTrap{label, dispatcher_.fetchLabel(pattern->getTypeRepr())}); + dispatcher_.emit(TypedPatternTypeReprsTrap{ + label, dispatcher_.fetchLabel(pattern->getTypeRepr(), pattern->getType())}); } } @@ -63,7 +63,8 @@ void PatternVisitor::visitIsPattern(swift::IsPattern* pattern) { dispatcher_.emit(IsPatternsTrap{label}); if (auto typeRepr = pattern->getCastTypeRepr()) { - dispatcher_.emit(IsPatternCastTypeReprsTrap{label, dispatcher_.fetchLabel(typeRepr)}); + dispatcher_.emit(IsPatternCastTypeReprsTrap{ + label, dispatcher_.fetchLabel(typeRepr, pattern->getCastType())}); } if (auto subPattern = pattern->getSubPattern()) { dispatcher_.emit(IsPatternSubPatternsTrap{label, dispatcher_.fetchLabel(subPattern)}); diff --git a/swift/extractor/visitors/SwiftVisitor.h b/swift/extractor/visitors/SwiftVisitor.h index 6380390af82..f9464eafa46 100644 --- a/swift/extractor/visitors/SwiftVisitor.h +++ b/swift/extractor/visitors/SwiftVisitor.h @@ -5,7 +5,6 @@ #include "swift/extractor/visitors/ExprVisitor.h" #include "swift/extractor/visitors/StmtVisitor.h" #include "swift/extractor/visitors/TypeVisitor.h" -#include "swift/extractor/visitors/TypeReprVisitor.h" #include "swift/extractor/visitors/PatternVisitor.h" namespace codeql { @@ -26,13 +25,14 @@ class SwiftVisitor : private SwiftDispatcher { void visit(swift::CaseLabelItem* item) override { stmtVisitor.visitCaseLabelItem(item); } void visit(swift::Expr* expr) override { exprVisitor.visit(expr); } void visit(swift::Pattern* pattern) override { patternVisitor.visit(pattern); } - void visit(swift::TypeRepr* type) override { typeReprVisitor.visit(type); } void visit(swift::TypeBase* type) override { typeVisitor.visit(type); } + void visit(swift::TypeRepr* typeRepr, swift::Type type) override { + typeVisitor.visit(*typeRepr, type); + } DeclVisitor declVisitor{*this}; ExprVisitor exprVisitor{*this}; StmtVisitor stmtVisitor{*this}; - TypeReprVisitor typeReprVisitor{*this}; TypeVisitor typeVisitor{*this}; PatternVisitor patternVisitor{*this}; }; diff --git a/swift/extractor/visitors/TypeReprVisitor.cpp b/swift/extractor/visitors/TypeReprVisitor.cpp deleted file mode 100644 index a3daa7938bb..00000000000 --- a/swift/extractor/visitors/TypeReprVisitor.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include "swift/extractor/visitors/TypeReprVisitor.h" - -namespace codeql {} // namespace codeql diff --git a/swift/extractor/visitors/TypeReprVisitor.h b/swift/extractor/visitors/TypeReprVisitor.h deleted file mode 100644 index dba2198cc6c..00000000000 --- a/swift/extractor/visitors/TypeReprVisitor.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#include "swift/extractor/visitors/VisitorBase.h" -#include "swift/extractor/trap/generated/typerepr/TrapClasses.h" - -namespace codeql { - -class TypeReprVisitor : public AstVisitorBase { - public: - using AstVisitorBase::AstVisitorBase; -}; - -} // namespace codeql diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index 4b6733312d3..5a1896080e0 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -8,6 +8,12 @@ void TypeVisitor::visit(swift::TypeBase* type) { dispatcher_.emit(TypesTrap{label, type->getString(), canonicalLabel}); } +void TypeVisitor::visit(const swift::TypeRepr& typeRepr, swift::Type type) { + auto entry = dispatcher_.createEntry(typeRepr); + entry.type = dispatcher_.fetchLabel(type); + dispatcher_.emit(entry); +} + void TypeVisitor::visitProtocolType(swift::ProtocolType* type) { auto label = dispatcher_.assignNewLabel(type); dispatcher_.emit(ProtocolTypesTrap{label}); diff --git a/swift/extractor/visitors/TypeVisitor.h b/swift/extractor/visitors/TypeVisitor.h index 77ae8ee13bf..b2deab60369 100644 --- a/swift/extractor/visitors/TypeVisitor.h +++ b/swift/extractor/visitors/TypeVisitor.h @@ -9,6 +9,8 @@ class TypeVisitor : public TypeVisitorBase { using TypeVisitorBase::TypeVisitorBase; void visit(swift::TypeBase* type); + void visit(const swift::TypeRepr& typeRepr, swift::Type type); + void visitProtocolType(swift::ProtocolType* type); void visitEnumType(swift::EnumType* type); void visitStructType(swift::StructType* type); diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index b9d3cc2a6ec..c3eda3a98f5 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -59,7 +59,7 @@ module CfgScope { private class KeyPathScope extends Range_ instanceof KeyPathExpr { AstControlFlowTree tree; - KeyPathScope() { tree.getAst() = this.getParsedRoot().getFullyConverted() } + KeyPathScope() { tree.getAst() = this } final override predicate entry(ControlFlowElement first) { first(tree, first) } @@ -836,9 +836,6 @@ module Patterns { // Note: `getSubPattern` only has a result if the `is` pattern is of the form `pattern as type`. i = 0 and result.asAstNode() = ast.getSubPattern().getFullyUnresolved() - or - i = 1 and - result.asAstNode() = ast.getCastTypeRepr() } } @@ -1604,8 +1601,14 @@ module Exprs { final override ControlFlowElement getChildElement(int i) { result.asAstNode() = ast.getSubExpr().getFullyConverted() and i = 0 - or - result.asAstNode() = ast.getTypeRepr().getFullyUnresolved() and i = 1 + } + } + + private class IsTree extends AstStandardPostOrderTree { + override IsExpr ast; + + final override ControlFlowElement getChildElement(int i) { + result.asAstNode() = ast.getSubExpr().getFullyConverted() and i = 0 } } diff --git a/swift/ql/lib/codeql/swift/elements.qll b/swift/ql/lib/codeql/swift/elements.qll index c10706d7c7a..5f5b2a04757 100644 --- a/swift/ql/lib/codeql/swift/elements.qll +++ b/swift/ql/lib/codeql/swift/elements.qll @@ -271,6 +271,7 @@ import codeql.swift.elements.type.SyntaxSugarType import codeql.swift.elements.type.TupleType import codeql.swift.elements.type.Type import codeql.swift.elements.type.TypeAliasType +import codeql.swift.elements.type.TypeRepr import codeql.swift.elements.type.TypeVariableType import codeql.swift.elements.type.UnarySyntaxSugarType import codeql.swift.elements.type.UnboundGenericType @@ -279,32 +280,3 @@ import codeql.swift.elements.type.UnownedStorageType import codeql.swift.elements.type.UnresolvedType import codeql.swift.elements.type.VariadicSequenceType import codeql.swift.elements.type.WeakStorageType -import codeql.swift.elements.typerepr.ArrayTypeRepr -import codeql.swift.elements.typerepr.AttributedTypeRepr -import codeql.swift.elements.typerepr.CompileTimeConstTypeRepr -import codeql.swift.elements.typerepr.ComponentIdentTypeRepr -import codeql.swift.elements.typerepr.CompositionTypeRepr -import codeql.swift.elements.typerepr.CompoundIdentTypeRepr -import codeql.swift.elements.typerepr.DictionaryTypeRepr -import codeql.swift.elements.typerepr.ErrorTypeRepr -import codeql.swift.elements.typerepr.ExistentialTypeRepr -import codeql.swift.elements.typerepr.FixedTypeRepr -import codeql.swift.elements.typerepr.FunctionTypeRepr -import codeql.swift.elements.typerepr.GenericIdentTypeRepr -import codeql.swift.elements.typerepr.IdentTypeRepr -import codeql.swift.elements.typerepr.ImplicitlyUnwrappedOptionalTypeRepr -import codeql.swift.elements.typerepr.InOutTypeRepr -import codeql.swift.elements.typerepr.IsolatedTypeRepr -import codeql.swift.elements.typerepr.MetatypeTypeRepr -import codeql.swift.elements.typerepr.NamedOpaqueReturnTypeRepr -import codeql.swift.elements.typerepr.OpaqueReturnTypeRepr -import codeql.swift.elements.typerepr.OptionalTypeRepr -import codeql.swift.elements.typerepr.OwnedTypeRepr -import codeql.swift.elements.typerepr.PlaceholderTypeRepr -import codeql.swift.elements.typerepr.ProtocolTypeRepr -import codeql.swift.elements.typerepr.SharedTypeRepr -import codeql.swift.elements.typerepr.SilBoxTypeRepr -import codeql.swift.elements.typerepr.SimpleIdentTypeRepr -import codeql.swift.elements.typerepr.SpecifierTypeRepr -import codeql.swift.elements.typerepr.TupleTypeRepr -import codeql.swift.elements.typerepr.TypeRepr diff --git a/swift/ql/lib/codeql/swift/elements/type/TypeRepr.qll b/swift/ql/lib/codeql/swift/elements/type/TypeRepr.qll new file mode 100644 index 00000000000..8462ceb1b6b --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/TypeRepr.qll @@ -0,0 +1,5 @@ +private import codeql.swift.generated.type.TypeRepr + +class TypeRepr extends TypeReprBase { + override string toString() { result = getType().toString() } +} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/ComponentIdentTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/ComponentIdentTypeRepr.qll deleted file mode 100644 index 0b5640208f4..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/ComponentIdentTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.ComponentIdentTypeRepr - -class ComponentIdentTypeRepr extends ComponentIdentTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/CompositionTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/CompositionTypeRepr.qll deleted file mode 100644 index 4f79f493e7e..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/CompositionTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.CompositionTypeRepr - -class CompositionTypeRepr extends CompositionTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/ErrorTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/ErrorTypeRepr.qll deleted file mode 100644 index bc3a125e0ac..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/ErrorTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.ErrorTypeRepr - -class ErrorTypeRepr extends ErrorTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/ExistentialTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/ExistentialTypeRepr.qll deleted file mode 100644 index 7762a02bb64..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/ExistentialTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.ExistentialTypeRepr - -class ExistentialTypeRepr extends ExistentialTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/FixedTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/FixedTypeRepr.qll deleted file mode 100644 index 8c1687c8853..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/FixedTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.FixedTypeRepr - -class FixedTypeRepr extends FixedTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/IdentTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/IdentTypeRepr.qll deleted file mode 100644 index 5fa70e354e4..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/IdentTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.IdentTypeRepr - -class IdentTypeRepr extends IdentTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/NamedOpaqueReturnTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/NamedOpaqueReturnTypeRepr.qll deleted file mode 100644 index 115b02b9858..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/NamedOpaqueReturnTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.NamedOpaqueReturnTypeRepr - -class NamedOpaqueReturnTypeRepr extends NamedOpaqueReturnTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/OpaqueReturnTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/OpaqueReturnTypeRepr.qll deleted file mode 100644 index cd0586d67f4..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/OpaqueReturnTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.OpaqueReturnTypeRepr - -class OpaqueReturnTypeRepr extends OpaqueReturnTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/PlaceholderTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/PlaceholderTypeRepr.qll deleted file mode 100644 index 423ced1a5d8..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/PlaceholderTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.PlaceholderTypeRepr - -class PlaceholderTypeRepr extends PlaceholderTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/SimpleIdentTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/SimpleIdentTypeRepr.qll deleted file mode 100644 index 070146f5ace..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/SimpleIdentTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.SimpleIdentTypeRepr - -class SimpleIdentTypeRepr extends SimpleIdentTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/SpecifierTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/SpecifierTypeRepr.qll deleted file mode 100644 index 40d1d648881..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/SpecifierTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.SpecifierTypeRepr - -class SpecifierTypeRepr extends SpecifierTypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/TypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/TypeRepr.qll deleted file mode 100644 index 4a4ea87833e..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/TypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file -private import codeql.swift.generated.typerepr.TypeRepr - -class TypeRepr extends TypeReprBase { } diff --git a/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll b/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll index aaf3dec16bd..0d7bdb0a91d 100644 --- a/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll +++ b/swift/ql/lib/codeql/swift/generated/GetImmediateParent.qll @@ -64,11 +64,9 @@ Element getAnImmediateChild(Element e) { or dynamic_type_exprs(e, x) or - enum_is_case_exprs(e, x, _, _) + enum_is_case_exprs(e, x, _) or - enum_is_case_exprs(e, _, x, _) - or - enum_is_case_exprs(e, _, _, x) + enum_is_case_exprs(e, _, x) or explicit_cast_exprs(e, x) or @@ -96,7 +94,7 @@ Element getAnImmediateChild(Element e) { or key_path_application_exprs(e, _, x) or - key_path_expr_parsed_roots(e, x) + key_path_expr_roots(e, x) or key_path_expr_parsed_paths(e, x) or diff --git a/swift/ql/lib/codeql/swift/generated/expr/EnumIsCaseExpr.qll b/swift/ql/lib/codeql/swift/generated/expr/EnumIsCaseExpr.qll index e02b97813a4..1dfdb7d0d2c 100644 --- a/swift/ql/lib/codeql/swift/generated/expr/EnumIsCaseExpr.qll +++ b/swift/ql/lib/codeql/swift/generated/expr/EnumIsCaseExpr.qll @@ -1,28 +1,20 @@ // generated by codegen/codegen.py import codeql.swift.elements.decl.EnumElementDecl import codeql.swift.elements.expr.Expr -import codeql.swift.elements.typerepr.TypeRepr class EnumIsCaseExprBase extends @enum_is_case_expr, Expr { override string getAPrimaryQlClass() { result = "EnumIsCaseExpr" } Expr getSubExpr() { exists(Expr x | - enum_is_case_exprs(this, x, _, _) and - result = x.resolve() - ) - } - - TypeRepr getTypeRepr() { - exists(TypeRepr x | - enum_is_case_exprs(this, _, x, _) and + enum_is_case_exprs(this, x, _) and result = x.resolve() ) } EnumElementDecl getElement() { exists(EnumElementDecl x | - enum_is_case_exprs(this, _, _, x) and + enum_is_case_exprs(this, _, x) and result = x.resolve() ) } diff --git a/swift/ql/lib/codeql/swift/generated/expr/KeyPathExpr.qll b/swift/ql/lib/codeql/swift/generated/expr/KeyPathExpr.qll index 7ac3d4614f0..faeeb4fde9b 100644 --- a/swift/ql/lib/codeql/swift/generated/expr/KeyPathExpr.qll +++ b/swift/ql/lib/codeql/swift/generated/expr/KeyPathExpr.qll @@ -1,17 +1,18 @@ // generated by codegen/codegen.py import codeql.swift.elements.expr.Expr +import codeql.swift.elements.type.TypeRepr class KeyPathExprBase extends @key_path_expr, Expr { override string getAPrimaryQlClass() { result = "KeyPathExpr" } - Expr getParsedRoot() { - exists(Expr x | - key_path_expr_parsed_roots(this, x) and + TypeRepr getRoot() { + exists(TypeRepr x | + key_path_expr_roots(this, x) and result = x.resolve() ) } - predicate hasParsedRoot() { exists(getParsedRoot()) } + predicate hasRoot() { exists(getRoot()) } Expr getParsedPath() { exists(Expr x | diff --git a/swift/ql/lib/codeql/swift/generated/expr/TypeExpr.qll b/swift/ql/lib/codeql/swift/generated/expr/TypeExpr.qll index 8b9e238b3ca..3c5816624d1 100644 --- a/swift/ql/lib/codeql/swift/generated/expr/TypeExpr.qll +++ b/swift/ql/lib/codeql/swift/generated/expr/TypeExpr.qll @@ -1,6 +1,6 @@ // generated by codegen/codegen.py import codeql.swift.elements.expr.Expr -import codeql.swift.elements.typerepr.TypeRepr +import codeql.swift.elements.type.TypeRepr class TypeExprBase extends @type_expr, Expr { override string getAPrimaryQlClass() { result = "TypeExpr" } diff --git a/swift/ql/lib/codeql/swift/generated/pattern/IsPattern.qll b/swift/ql/lib/codeql/swift/generated/pattern/IsPattern.qll index 8caf5493b36..b83c0af7d65 100644 --- a/swift/ql/lib/codeql/swift/generated/pattern/IsPattern.qll +++ b/swift/ql/lib/codeql/swift/generated/pattern/IsPattern.qll @@ -1,6 +1,6 @@ // generated by codegen/codegen.py import codeql.swift.elements.pattern.Pattern -import codeql.swift.elements.typerepr.TypeRepr +import codeql.swift.elements.type.TypeRepr class IsPatternBase extends @is_pattern, Pattern { override string getAPrimaryQlClass() { result = "IsPattern" } diff --git a/swift/ql/lib/codeql/swift/generated/pattern/TypedPattern.qll b/swift/ql/lib/codeql/swift/generated/pattern/TypedPattern.qll index 9a16c9cfe02..aebb2a6527c 100644 --- a/swift/ql/lib/codeql/swift/generated/pattern/TypedPattern.qll +++ b/swift/ql/lib/codeql/swift/generated/pattern/TypedPattern.qll @@ -1,6 +1,6 @@ // generated by codegen/codegen.py import codeql.swift.elements.pattern.Pattern -import codeql.swift.elements.typerepr.TypeRepr +import codeql.swift.elements.type.TypeRepr class TypedPatternBase extends @typed_pattern, Pattern { override string getAPrimaryQlClass() { result = "TypedPattern" } diff --git a/swift/ql/lib/codeql/swift/generated/type/TypeRepr.qll b/swift/ql/lib/codeql/swift/generated/type/TypeRepr.qll new file mode 100644 index 00000000000..829960deda9 --- /dev/null +++ b/swift/ql/lib/codeql/swift/generated/type/TypeRepr.qll @@ -0,0 +1,14 @@ +// generated by codegen/codegen.py +import codeql.swift.elements.AstNode +import codeql.swift.elements.type.Type + +class TypeReprBase extends @type_repr, AstNode { + override string getAPrimaryQlClass() { result = "TypeRepr" } + + Type getType() { + exists(Type x | + type_reprs(this, x) and + result = x.resolve() + ) + } +} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/ArrayTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/ArrayTypeRepr.qll deleted file mode 100644 index 486a98a541e..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/ArrayTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class ArrayTypeReprBase extends @array_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "ArrayTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/AttributedTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/AttributedTypeRepr.qll deleted file mode 100644 index 96d78c7c933..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/AttributedTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class AttributedTypeReprBase extends @attributed_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "AttributedTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/CompileTimeConstTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/CompileTimeConstTypeRepr.qll deleted file mode 100644 index eecb67b9218..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/CompileTimeConstTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.SpecifierTypeRepr - -class CompileTimeConstTypeReprBase extends @compile_time_const_type_repr, SpecifierTypeRepr { - override string getAPrimaryQlClass() { result = "CompileTimeConstTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/ComponentIdentTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/ComponentIdentTypeRepr.qll deleted file mode 100644 index d0323ad681d..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/ComponentIdentTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.IdentTypeRepr - -class ComponentIdentTypeReprBase extends @component_ident_type_repr, IdentTypeRepr { } diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/CompositionTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/CompositionTypeRepr.qll deleted file mode 100644 index b0789100618..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/CompositionTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class CompositionTypeReprBase extends @composition_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "CompositionTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/CompoundIdentTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/CompoundIdentTypeRepr.qll deleted file mode 100644 index 7c1c3548272..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/CompoundIdentTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.IdentTypeRepr - -class CompoundIdentTypeReprBase extends @compound_ident_type_repr, IdentTypeRepr { - override string getAPrimaryQlClass() { result = "CompoundIdentTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/DictionaryTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/DictionaryTypeRepr.qll deleted file mode 100644 index 692b9352e20..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/DictionaryTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class DictionaryTypeReprBase extends @dictionary_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "DictionaryTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/ErrorTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/ErrorTypeRepr.qll deleted file mode 100644 index 511f7e25569..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/ErrorTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class ErrorTypeReprBase extends @error_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "ErrorTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/ExistentialTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/ExistentialTypeRepr.qll deleted file mode 100644 index 43aefeed5a9..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/ExistentialTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class ExistentialTypeReprBase extends @existential_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "ExistentialTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/FixedTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/FixedTypeRepr.qll deleted file mode 100644 index 2a6e59a90a8..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/FixedTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class FixedTypeReprBase extends @fixed_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "FixedTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/FunctionTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/FunctionTypeRepr.qll deleted file mode 100644 index da781a90d4b..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/FunctionTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class FunctionTypeReprBase extends @function_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "FunctionTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/GenericIdentTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/GenericIdentTypeRepr.qll deleted file mode 100644 index 101985aca56..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/GenericIdentTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.ComponentIdentTypeRepr - -class GenericIdentTypeReprBase extends @generic_ident_type_repr, ComponentIdentTypeRepr { - override string getAPrimaryQlClass() { result = "GenericIdentTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/IdentTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/IdentTypeRepr.qll deleted file mode 100644 index d71eca38b92..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/IdentTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class IdentTypeReprBase extends @ident_type_repr, TypeRepr { } diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/ImplicitlyUnwrappedOptionalTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/ImplicitlyUnwrappedOptionalTypeRepr.qll deleted file mode 100644 index e0759e0fa3c..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/ImplicitlyUnwrappedOptionalTypeRepr.qll +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class ImplicitlyUnwrappedOptionalTypeReprBase extends @implicitly_unwrapped_optional_type_repr, - TypeRepr { - override string getAPrimaryQlClass() { result = "ImplicitlyUnwrappedOptionalTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/InOutTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/InOutTypeRepr.qll deleted file mode 100644 index a7adf859579..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/InOutTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.SpecifierTypeRepr - -class InOutTypeReprBase extends @in_out_type_repr, SpecifierTypeRepr { - override string getAPrimaryQlClass() { result = "InOutTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/IsolatedTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/IsolatedTypeRepr.qll deleted file mode 100644 index 63dcdd9e379..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/IsolatedTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.SpecifierTypeRepr - -class IsolatedTypeReprBase extends @isolated_type_repr, SpecifierTypeRepr { - override string getAPrimaryQlClass() { result = "IsolatedTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/MetatypeTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/MetatypeTypeRepr.qll deleted file mode 100644 index e0477db158b..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/MetatypeTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class MetatypeTypeReprBase extends @metatype_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "MetatypeTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/NamedOpaqueReturnTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/NamedOpaqueReturnTypeRepr.qll deleted file mode 100644 index af885d21ab4..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/NamedOpaqueReturnTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class NamedOpaqueReturnTypeReprBase extends @named_opaque_return_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "NamedOpaqueReturnTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/OpaqueReturnTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/OpaqueReturnTypeRepr.qll deleted file mode 100644 index 7ecb38e22c6..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/OpaqueReturnTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class OpaqueReturnTypeReprBase extends @opaque_return_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "OpaqueReturnTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/OptionalTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/OptionalTypeRepr.qll deleted file mode 100644 index 62a24285ef5..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/OptionalTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class OptionalTypeReprBase extends @optional_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "OptionalTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/OwnedTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/OwnedTypeRepr.qll deleted file mode 100644 index b24ca1aa597..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/OwnedTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.SpecifierTypeRepr - -class OwnedTypeReprBase extends @owned_type_repr, SpecifierTypeRepr { - override string getAPrimaryQlClass() { result = "OwnedTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/PlaceholderTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/PlaceholderTypeRepr.qll deleted file mode 100644 index 5bb446c9c73..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/PlaceholderTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class PlaceholderTypeReprBase extends @placeholder_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "PlaceholderTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/ProtocolTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/ProtocolTypeRepr.qll deleted file mode 100644 index 1b2e7fb2652..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/ProtocolTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class ProtocolTypeReprBase extends @protocol_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "ProtocolTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/SharedTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/SharedTypeRepr.qll deleted file mode 100644 index ca9254217c9..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/SharedTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.SpecifierTypeRepr - -class SharedTypeReprBase extends @shared_type_repr, SpecifierTypeRepr { - override string getAPrimaryQlClass() { result = "SharedTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/SilBoxTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/SilBoxTypeRepr.qll deleted file mode 100644 index 47d4585511b..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/SilBoxTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class SilBoxTypeReprBase extends @sil_box_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "SilBoxTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/SimpleIdentTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/SimpleIdentTypeRepr.qll deleted file mode 100644 index 328b8bc7e69..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/SimpleIdentTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.ComponentIdentTypeRepr - -class SimpleIdentTypeReprBase extends @simple_ident_type_repr, ComponentIdentTypeRepr { - override string getAPrimaryQlClass() { result = "SimpleIdentTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/SpecifierTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/SpecifierTypeRepr.qll deleted file mode 100644 index 469aa3413d1..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/SpecifierTypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class SpecifierTypeReprBase extends @specifier_type_repr, TypeRepr { } diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/TupleTypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/TupleTypeRepr.qll deleted file mode 100644 index 79e65037aa9..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/TupleTypeRepr.qll +++ /dev/null @@ -1,6 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.typerepr.TypeRepr - -class TupleTypeReprBase extends @tuple_type_repr, TypeRepr { - override string getAPrimaryQlClass() { result = "TupleTypeRepr" } -} diff --git a/swift/ql/lib/codeql/swift/generated/typerepr/TypeRepr.qll b/swift/ql/lib/codeql/swift/generated/typerepr/TypeRepr.qll deleted file mode 100644 index 497ac46fa64..00000000000 --- a/swift/ql/lib/codeql/swift/generated/typerepr/TypeRepr.qll +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements.AstNode - -class TypeReprBase extends @type_repr, AstNode { } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 83ee8412131..61cda563d66 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -471,27 +471,10 @@ expr_types( //dir=expr | @yield_stmt ; -@type_repr = - @array_type_repr -| @attributed_type_repr -| @composition_type_repr -| @dictionary_type_repr -| @error_type_repr -| @existential_type_repr -| @fixed_type_repr -| @function_type_repr -| @ident_type_repr -| @implicitly_unwrapped_optional_type_repr -| @metatype_type_repr -| @named_opaque_return_type_repr -| @opaque_return_type_repr -| @optional_type_repr -| @placeholder_type_repr -| @protocol_type_repr -| @sil_box_type_repr -| @specifier_type_repr -| @tuple_type_repr -; +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type ref +); function_types( //dir=type unique int id: @function_type @@ -865,7 +848,6 @@ editor_placeholder_exprs( //dir=expr enum_is_case_exprs( //dir=expr unique int id: @enum_is_case_expr, int sub_expr: @expr ref, - int type_repr: @type_repr ref, int element: @enum_element_decl ref ); @@ -969,9 +951,9 @@ key_path_exprs( //dir=expr ); #keyset[id] -key_path_expr_parsed_roots( //dir=expr +key_path_expr_roots( //dir=expr int id: @key_path_expr ref, - int parsed_root: @expr ref + int root: @type_repr ref ); #keyset[id] @@ -2177,121 +2159,3 @@ integer_literal_exprs( //dir=expr unique int id: @integer_literal_expr, string string_value: string ref ); - -error_type_reprs( //dir=typerepr - unique int id: @error_type_repr -); - -attributed_type_reprs( //dir=typerepr - unique int id: @attributed_type_repr -); - -@ident_type_repr = - @component_ident_type_repr -| @compound_ident_type_repr -; - -@component_ident_type_repr = - @generic_ident_type_repr -| @simple_ident_type_repr -; - -simple_ident_type_reprs( //dir=typerepr - unique int id: @simple_ident_type_repr -); - -generic_ident_type_reprs( //dir=typerepr - unique int id: @generic_ident_type_repr -); - -compound_ident_type_reprs( //dir=typerepr - unique int id: @compound_ident_type_repr -); - -function_type_reprs( //dir=typerepr - unique int id: @function_type_repr -); - -array_type_reprs( //dir=typerepr - unique int id: @array_type_repr -); - -dictionary_type_reprs( //dir=typerepr - unique int id: @dictionary_type_repr -); - -optional_type_reprs( //dir=typerepr - unique int id: @optional_type_repr -); - -implicitly_unwrapped_optional_type_reprs( //dir=typerepr - unique int id: @implicitly_unwrapped_optional_type_repr -); - -tuple_type_reprs( //dir=typerepr - unique int id: @tuple_type_repr -); - -composition_type_reprs( //dir=typerepr - unique int id: @composition_type_repr -); - -metatype_type_reprs( //dir=typerepr - unique int id: @metatype_type_repr -); - -protocol_type_reprs( //dir=typerepr - unique int id: @protocol_type_repr -); - -opaque_return_type_reprs( //dir=typerepr - unique int id: @opaque_return_type_repr -); - -named_opaque_return_type_reprs( //dir=typerepr - unique int id: @named_opaque_return_type_repr -); - -existential_type_reprs( //dir=typerepr - unique int id: @existential_type_repr -); - -placeholder_type_reprs( //dir=typerepr - unique int id: @placeholder_type_repr -); - -@specifier_type_repr = - @compile_time_const_type_repr -| @in_out_type_repr -| @isolated_type_repr -| @owned_type_repr -| @shared_type_repr -; - -in_out_type_reprs( //dir=typerepr - unique int id: @in_out_type_repr -); - -shared_type_reprs( //dir=typerepr - unique int id: @shared_type_repr -); - -owned_type_reprs( //dir=typerepr - unique int id: @owned_type_repr -); - -isolated_type_reprs( //dir=typerepr - unique int id: @isolated_type_repr -); - -compile_time_const_type_reprs( //dir=typerepr - unique int id: @compile_time_const_type_repr -); - -fixed_type_reprs( //dir=typerepr - unique int id: @fixed_type_repr -); - -sil_box_type_reprs( //dir=typerepr - unique int id: @sil_box_type_repr -); diff --git a/swift/ql/test/extractor-tests/expressions/all.expected b/swift/ql/test/extractor-tests/expressions/all.expected index 20951358f73..b34ca7349cd 100644 --- a/swift/ql/test/extractor-tests/expressions/all.expected +++ b/swift/ql/test/extractor-tests/expressions/all.expected @@ -123,8 +123,6 @@ | expressions.swift:54:1:54:1 | _ | DiscardAssignmentExpr | | expressions.swift:54:1:54:8 | ... = ... | AssignExpr | | expressions.swift:54:5:54:8 | #keyPath(...) | KeyPathExpr | -| expressions.swift:54:6:54:6 | (no string representation) | TypeExpr | -| expressions.swift:54:6:54:8 | ... .x | UnresolvedDotExpr | | expressions.swift:58:16:58:16 | 1234 | IntegerLiteralExpr | | expressions.swift:59:1:59:1 | unsafeFunction(pointer:) | DeclRefExpr | | expressions.swift:59:1:59:34 | call to unsafeFunction(pointer:) | CallExpr | @@ -242,5 +240,3 @@ | expressions.swift:154:22:154:56 | \\...[...] | KeyPathApplicationExpr | | expressions.swift:154:33:154:33 | keyPathB | DeclRefExpr | | expressions.swift:154:52:154:55 | #keyPath(...) | KeyPathExpr | -| expressions.swift:154:53:154:53 | (no string representation) | TypeExpr | -| expressions.swift:154:53:154:55 | ... .x | UnresolvedDotExpr | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected index 9b22d5b34d4..6076a256058 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected @@ -1,10 +1,10 @@ -| enum_is_case.swift:4:1:4:17 | ... is some | getSubExpr: | enum_is_case.swift:4:1:4:17 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:4:22:4:22 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:5:1:5:32 | ... is some | getSubExpr: | enum_is_case.swift:5:1:5:32 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:5:37:5:37 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:6:1:6:1 | ... is some | getSubExpr: | enum_is_case.swift:6:1:6:1 | 42 | getTypeRepr: | enum_is_case.swift:6:7:6:10 | ...? | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:7:1:7:1 | ... is some | getSubExpr: | enum_is_case.swift:7:1:7:1 | 42 | getTypeRepr: | enum_is_case.swift:7:7:7:11 | ...? | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:9:1:9:19 | ... is some | getSubExpr: | enum_is_case.swift:9:1:9:19 | [...] | getTypeRepr: | enum_is_case.swift:9:24:9:28 | [...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:19:1:19:18 | ... is some | getSubExpr: | enum_is_case.swift:19:1:19:18 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:19:23:19:23 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:21:1:21:5 | ... is some | getSubExpr: | enum_is_case.swift:21:1:21:5 | [...] | getTypeRepr: | enum_is_case.swift:21:10:21:12 | [...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:22:1:22:10 | ... is some | getSubExpr: | enum_is_case.swift:22:1:22:10 | [...] | getTypeRepr: | enum_is_case.swift:22:15:22:25 | [... : ...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:23:1:23:10 | ... is some | getSubExpr: | enum_is_case.swift:23:1:23:10 | [...] | getTypeRepr: | enum_is_case.swift:23:15:23:25 | [... : ...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:24:1:24:8 | ... is some | getSubExpr: | enum_is_case.swift:24:1:24:8 | call to ... | getTypeRepr: | enum_is_case.swift:24:13:24:18 | ...<...> | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:4:1:4:17 | ... is some | getSubExpr: | enum_is_case.swift:4:1:4:17 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:5:1:5:32 | ... is some | getSubExpr: | enum_is_case.swift:5:1:5:32 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:6:1:6:1 | ... is some | getSubExpr: | enum_is_case.swift:6:1:6:1 | 42 | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:7:1:7:1 | ... is some | getSubExpr: | enum_is_case.swift:7:1:7:1 | 42 | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:9:1:9:19 | ... is some | getSubExpr: | enum_is_case.swift:9:1:9:19 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:19:1:19:18 | ... is some | getSubExpr: | enum_is_case.swift:19:1:19:18 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:21:1:21:5 | ... is some | getSubExpr: | enum_is_case.swift:21:1:21:5 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:22:1:22:10 | ... is some | getSubExpr: | enum_is_case.swift:22:1:22:10 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:23:1:23:10 | ... is some | getSubExpr: | enum_is_case.swift:23:1:23:10 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:24:1:24:8 | ... is some | getSubExpr: | enum_is_case.swift:24:1:24:8 | call to ... | getElement: | file://:0:0:0:0 | some | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql index e35700dcbe0..9c3340d4ff5 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql @@ -2,11 +2,10 @@ import codeql.swift.elements import TestUtils -from EnumIsCaseExpr x, Expr getSubExpr, TypeRepr getTypeRepr, EnumElementDecl getElement +from EnumIsCaseExpr x, Expr getSubExpr, EnumElementDecl getElement where toBeTested(x) and not x.isUnknown() and getSubExpr = x.getSubExpr() and - getTypeRepr = x.getTypeRepr() and getElement = x.getElement() -select x, "getSubExpr:", getSubExpr, "getTypeRepr:", getTypeRepr, "getElement:", getElement +select x, "getSubExpr:", getSubExpr, "getElement:", getElement diff --git a/swift/ql/test/extractor-tests/generated/typerepr/ArrayTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/MISSING_SOURCE.txt similarity index 100% rename from swift/ql/test/extractor-tests/generated/typerepr/ArrayTypeRepr/MISSING_SOURCE.txt rename to swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/MISSING_SOURCE.txt diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.expected b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.expected deleted file mode 100644 index 2bb615eb361..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.expected +++ /dev/null @@ -1,3 +0,0 @@ -| unresolved_dot_expr.swift:5:6:5:8 | ... .x | getBase: | unresolved_dot_expr.swift:5:6:5:6 | (no string representation) | getName: | x | -| unresolved_dot_expr.swift:11:6:11:8 | ... .a | getBase: | unresolved_dot_expr.swift:11:6:11:6 | (no string representation) | getName: | a | -| unresolved_dot_expr.swift:11:6:11:10 | ... .x | getBase: | unresolved_dot_expr.swift:11:6:11:8 | ... .a | getName: | x | diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql deleted file mode 100644 index 29327a3f86c..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr.ql +++ /dev/null @@ -1,11 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from UnresolvedDotExpr x, Expr getBase, string getName -where - toBeTested(x) and - not x.isUnknown() and - getBase = x.getBase() and - getName = x.getName() -select x, "getBase:", getBase, "getName:", getName diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getType.ql deleted file mode 100644 index f91cc957ef7..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/UnresolvedDotExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py -import codeql.swift.elements -import TestUtils - -from UnresolvedDotExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/unresolved_dot_expr.swift b/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/unresolved_dot_expr.swift deleted file mode 100644 index 3003e6efe82..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/UnresolvedDotExpr/unresolved_dot_expr.swift +++ /dev/null @@ -1,11 +0,0 @@ -struct A { - var x: Int = 42 -} - -_ = \A.x - -struct B { - var a: A -} - -_ = \B.a.x diff --git a/swift/ql/test/extractor-tests/generated/typerepr/AttributedTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/TypeRepr/MISSING_SOURCE.txt similarity index 100% rename from swift/ql/test/extractor-tests/generated/typerepr/AttributedTypeRepr/MISSING_SOURCE.txt rename to swift/ql/test/extractor-tests/generated/type/TypeRepr/MISSING_SOURCE.txt diff --git a/swift/ql/test/extractor-tests/generated/typerepr/CompileTimeConstTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/CompileTimeConstTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/CompileTimeConstTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/CompositionTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/CompositionTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/CompositionTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/CompoundIdentTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/CompoundIdentTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/CompoundIdentTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/DictionaryTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/DictionaryTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/DictionaryTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/ErrorTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/ErrorTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/ErrorTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/ExistentialTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/ExistentialTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/ExistentialTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/FixedTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/FixedTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/FixedTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/FunctionTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/FunctionTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/FunctionTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/GenericIdentTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/GenericIdentTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/GenericIdentTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/ImplicitlyUnwrappedOptionalTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/ImplicitlyUnwrappedOptionalTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/ImplicitlyUnwrappedOptionalTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/InOutTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/InOutTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/InOutTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/IsolatedTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/IsolatedTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/IsolatedTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/MetatypeTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/MetatypeTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/MetatypeTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/NamedOpaqueReturnTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/NamedOpaqueReturnTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/NamedOpaqueReturnTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/OpaqueReturnTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/OpaqueReturnTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/OpaqueReturnTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/OptionalTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/OptionalTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/OptionalTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/OwnedTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/OwnedTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/OwnedTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/PlaceholderTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/PlaceholderTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/PlaceholderTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/ProtocolTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/ProtocolTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/ProtocolTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/SharedTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/SharedTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/SharedTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/SilBoxTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/SilBoxTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/SilBoxTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/SimpleIdentTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/SimpleIdentTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/SimpleIdentTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/typerepr/TupleTypeRepr/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/typerepr/TupleTypeRepr/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/typerepr/TupleTypeRepr/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected index 4d38d88d82c..d14ec33b48e 100644 --- a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -281,15 +281,12 @@ cfg.swift: #-----| -> ... is ... # 37| ... is ... -#-----| -> SimpleIdentTypeRepr +#-----| -> ... is ... # 37| ... is ... #-----| match -> print(_:separator:terminator:) #-----| no-match -> case ... -# 37| SimpleIdentTypeRepr -#-----| -> ... is ... - # 38| print(_:separator:terminator:) #-----| -> MyError @@ -5575,15 +5572,39 @@ cfg.swift: # 456| var ... = ... #-----| -> kpGet_b_x +# 456| var ... = ... +#-----| -> kpGet_b_x + # 456| kpGet_b_x #-----| match -> #keyPath(...) # 456| kpGet_b_x #-----| -> kpGet_bs_0_x +# 456| kpGet_b_x +#-----| -> kpGet_bs_0_x + # 456| #keyPath(...) #-----| -> var ... = ... +# 456| #keyPath(...) +#-----| -> var ... = ... +#-----| -> exit #keyPath(...) (normal) + +# 456| enter #keyPath(...) +#-----| -> #keyPath(...) + +# 456| exit #keyPath(...) + +# 456| exit #keyPath(...) (normal) +#-----| -> exit #keyPath(...) + +# 457| var ... = ... +#-----| -> kpGet_bs_0_x + +# 457| var ... = ... +#-----| -> kpGet_bs_0_x + # 457| var ... = ... #-----| -> kpGet_bs_0_x @@ -5593,9 +5614,42 @@ cfg.swift: # 457| kpGet_bs_0_x #-----| -> kpGet_mayB_force_x +# 457| kpGet_bs_0_x +#-----| match -> #keyPath(...) + +# 457| kpGet_bs_0_x +#-----| -> kpGet_mayB_force_x + +# 457| kpGet_bs_0_x +#-----| -> kpGet_mayB_force_x + # 457| #keyPath(...) #-----| -> var ... = ... +# 457| #keyPath(...) +#-----| -> var ... = ... + +# 457| #keyPath(...) +#-----| -> var ... = ... +#-----| -> exit #keyPath(...) (normal) + +# 457| enter #keyPath(...) +#-----| -> #keyPath(...) + +# 457| exit #keyPath(...) + +# 457| exit #keyPath(...) (normal) +#-----| -> exit #keyPath(...) + +# 458| var ... = ... +#-----| -> kpGet_mayB_force_x + +# 458| var ... = ... +#-----| -> kpGet_mayB_force_x + +# 458| var ... = ... +#-----| -> kpGet_mayB_force_x + # 458| var ... = ... #-----| -> kpGet_mayB_force_x @@ -5605,9 +5659,54 @@ cfg.swift: # 458| kpGet_mayB_force_x #-----| -> kpGet_mayB_x +# 458| kpGet_mayB_force_x +#-----| match -> #keyPath(...) + +# 458| kpGet_mayB_force_x +#-----| -> kpGet_mayB_x + +# 458| kpGet_mayB_force_x +#-----| match -> #keyPath(...) + +# 458| kpGet_mayB_force_x +#-----| -> kpGet_mayB_x + +# 458| kpGet_mayB_force_x +#-----| -> kpGet_mayB_x + # 458| #keyPath(...) #-----| -> var ... = ... +# 458| #keyPath(...) +#-----| -> var ... = ... + +# 458| #keyPath(...) +#-----| -> var ... = ... + +# 458| #keyPath(...) +#-----| -> var ... = ... +#-----| -> exit #keyPath(...) (normal) + +# 458| enter #keyPath(...) +#-----| -> #keyPath(...) + +# 458| exit #keyPath(...) + +# 458| exit #keyPath(...) (normal) +#-----| -> exit #keyPath(...) + +# 459| var ... = ... +#-----| -> kpGet_mayB_x + +# 459| var ... = ... +#-----| -> kpGet_mayB_x + +# 459| var ... = ... +#-----| -> kpGet_mayB_x + +# 459| var ... = ... +#-----| -> kpGet_mayB_x + # 459| var ... = ... #-----| -> kpGet_mayB_x @@ -5617,9 +5716,63 @@ cfg.swift: # 459| kpGet_mayB_x #-----| -> apply_kpGet_b_x +# 459| kpGet_mayB_x +#-----| match -> #keyPath(...) + +# 459| kpGet_mayB_x +#-----| -> apply_kpGet_b_x + +# 459| kpGet_mayB_x +#-----| match -> #keyPath(...) + +# 459| kpGet_mayB_x +#-----| -> apply_kpGet_b_x + +# 459| kpGet_mayB_x +#-----| match -> #keyPath(...) + +# 459| kpGet_mayB_x +#-----| -> apply_kpGet_b_x + +# 459| kpGet_mayB_x +#-----| -> apply_kpGet_b_x + # 459| #keyPath(...) #-----| -> var ... = ... +# 459| #keyPath(...) +#-----| -> var ... = ... + +# 459| #keyPath(...) +#-----| -> var ... = ... + +# 459| #keyPath(...) +#-----| -> var ... = ... + +# 459| #keyPath(...) +#-----| -> var ... = ... +#-----| -> exit #keyPath(...) (normal) + +# 459| enter #keyPath(...) +#-----| -> #keyPath(...) + +# 459| exit #keyPath(...) + +# 459| exit #keyPath(...) (normal) +#-----| -> exit #keyPath(...) + +# 461| var ... = ... +#-----| -> apply_kpGet_b_x + +# 461| var ... = ... +#-----| -> apply_kpGet_b_x + +# 461| var ... = ... +#-----| -> apply_kpGet_b_x + +# 461| var ... = ... +#-----| -> apply_kpGet_b_x + # 461| var ... = ... #-----| -> apply_kpGet_b_x @@ -5629,18 +5782,102 @@ cfg.swift: # 461| apply_kpGet_b_x #-----| -> apply_kpGet_bs_0_x +# 461| apply_kpGet_b_x +#-----| match -> a + +# 461| apply_kpGet_b_x +#-----| -> apply_kpGet_bs_0_x + +# 461| apply_kpGet_b_x +#-----| match -> a + +# 461| apply_kpGet_b_x +#-----| -> apply_kpGet_bs_0_x + +# 461| apply_kpGet_b_x +#-----| match -> a + +# 461| apply_kpGet_b_x +#-----| -> apply_kpGet_bs_0_x + +# 461| apply_kpGet_b_x +#-----| match -> a + +# 461| apply_kpGet_b_x +#-----| -> apply_kpGet_bs_0_x + # 461| a #-----| -> kpGet_b_x +# 461| a +#-----| -> kpGet_b_x + +# 461| a +#-----| -> kpGet_b_x + +# 461| a +#-----| -> kpGet_b_x + +# 461| a +#-----| -> kpGet_b_x + +# 461| \...[...] +#-----| -> var ... = ... + +# 461| \...[...] +#-----| -> var ... = ... + +# 461| \...[...] +#-----| -> var ... = ... + +# 461| \...[...] +#-----| -> var ... = ... + # 461| \...[...] #-----| -> var ... = ... # 461| (WritableKeyPath) ... #-----| -> \...[...] +# 461| (WritableKeyPath) ... +#-----| -> \...[...] + +# 461| (WritableKeyPath) ... +#-----| -> \...[...] + +# 461| (WritableKeyPath) ... +#-----| -> \...[...] + +# 461| (WritableKeyPath) ... +#-----| -> \...[...] + # 461| kpGet_b_x #-----| -> (WritableKeyPath) ... +# 461| kpGet_b_x +#-----| -> (WritableKeyPath) ... + +# 461| kpGet_b_x +#-----| -> (WritableKeyPath) ... + +# 461| kpGet_b_x +#-----| -> (WritableKeyPath) ... + +# 461| kpGet_b_x +#-----| -> (WritableKeyPath) ... + +# 462| var ... = ... +#-----| -> apply_kpGet_bs_0_x + +# 462| var ... = ... +#-----| -> apply_kpGet_bs_0_x + +# 462| var ... = ... +#-----| -> apply_kpGet_bs_0_x + +# 462| var ... = ... +#-----| -> apply_kpGet_bs_0_x + # 462| var ... = ... #-----| -> apply_kpGet_bs_0_x @@ -5650,18 +5887,102 @@ cfg.swift: # 462| apply_kpGet_bs_0_x #-----| -> apply_kpGet_mayB_force_x +# 462| apply_kpGet_bs_0_x +#-----| match -> a + +# 462| apply_kpGet_bs_0_x +#-----| -> apply_kpGet_mayB_force_x + +# 462| apply_kpGet_bs_0_x +#-----| match -> a + +# 462| apply_kpGet_bs_0_x +#-----| -> apply_kpGet_mayB_force_x + +# 462| apply_kpGet_bs_0_x +#-----| match -> a + +# 462| apply_kpGet_bs_0_x +#-----| -> apply_kpGet_mayB_force_x + +# 462| apply_kpGet_bs_0_x +#-----| match -> a + +# 462| apply_kpGet_bs_0_x +#-----| -> apply_kpGet_mayB_force_x + # 462| a #-----| -> kpGet_bs_0_x +# 462| a +#-----| -> kpGet_bs_0_x + +# 462| a +#-----| -> kpGet_bs_0_x + +# 462| a +#-----| -> kpGet_bs_0_x + +# 462| a +#-----| -> kpGet_bs_0_x + +# 462| \...[...] +#-----| -> var ... = ... + +# 462| \...[...] +#-----| -> var ... = ... + +# 462| \...[...] +#-----| -> var ... = ... + +# 462| \...[...] +#-----| -> var ... = ... + # 462| \...[...] #-----| -> var ... = ... # 462| (WritableKeyPath) ... #-----| -> \...[...] +# 462| (WritableKeyPath) ... +#-----| -> \...[...] + +# 462| (WritableKeyPath) ... +#-----| -> \...[...] + +# 462| (WritableKeyPath) ... +#-----| -> \...[...] + +# 462| (WritableKeyPath) ... +#-----| -> \...[...] + # 462| kpGet_bs_0_x #-----| -> (WritableKeyPath) ... +# 462| kpGet_bs_0_x +#-----| -> (WritableKeyPath) ... + +# 462| kpGet_bs_0_x +#-----| -> (WritableKeyPath) ... + +# 462| kpGet_bs_0_x +#-----| -> (WritableKeyPath) ... + +# 462| kpGet_bs_0_x +#-----| -> (WritableKeyPath) ... + +# 463| var ... = ... +#-----| -> apply_kpGet_mayB_force_x + +# 463| var ... = ... +#-----| -> apply_kpGet_mayB_force_x + +# 463| var ... = ... +#-----| -> apply_kpGet_mayB_force_x + +# 463| var ... = ... +#-----| -> apply_kpGet_mayB_force_x + # 463| var ... = ... #-----| -> apply_kpGet_mayB_force_x @@ -5671,18 +5992,102 @@ cfg.swift: # 463| apply_kpGet_mayB_force_x #-----| -> apply_kpGet_mayB_x +# 463| apply_kpGet_mayB_force_x +#-----| match -> a + +# 463| apply_kpGet_mayB_force_x +#-----| -> apply_kpGet_mayB_x + +# 463| apply_kpGet_mayB_force_x +#-----| match -> a + +# 463| apply_kpGet_mayB_force_x +#-----| -> apply_kpGet_mayB_x + +# 463| apply_kpGet_mayB_force_x +#-----| match -> a + +# 463| apply_kpGet_mayB_force_x +#-----| -> apply_kpGet_mayB_x + +# 463| apply_kpGet_mayB_force_x +#-----| match -> a + +# 463| apply_kpGet_mayB_force_x +#-----| -> apply_kpGet_mayB_x + # 463| a #-----| -> kpGet_mayB_force_x +# 463| a +#-----| -> kpGet_mayB_force_x + +# 463| a +#-----| -> kpGet_mayB_force_x + +# 463| a +#-----| -> kpGet_mayB_force_x + +# 463| a +#-----| -> kpGet_mayB_force_x + +# 463| \...[...] +#-----| -> var ... = ... + +# 463| \...[...] +#-----| -> var ... = ... + +# 463| \...[...] +#-----| -> var ... = ... + +# 463| \...[...] +#-----| -> var ... = ... + # 463| \...[...] #-----| -> var ... = ... # 463| (WritableKeyPath) ... #-----| -> \...[...] +# 463| (WritableKeyPath) ... +#-----| -> \...[...] + +# 463| (WritableKeyPath) ... +#-----| -> \...[...] + +# 463| (WritableKeyPath) ... +#-----| -> \...[...] + +# 463| (WritableKeyPath) ... +#-----| -> \...[...] + # 463| kpGet_mayB_force_x #-----| -> (WritableKeyPath) ... +# 463| kpGet_mayB_force_x +#-----| -> (WritableKeyPath) ... + +# 463| kpGet_mayB_force_x +#-----| -> (WritableKeyPath) ... + +# 463| kpGet_mayB_force_x +#-----| -> (WritableKeyPath) ... + +# 463| kpGet_mayB_force_x +#-----| -> (WritableKeyPath) ... + +# 464| var ... = ... +#-----| -> apply_kpGet_mayB_x + +# 464| var ... = ... +#-----| -> apply_kpGet_mayB_x + +# 464| var ... = ... +#-----| -> apply_kpGet_mayB_x + +# 464| var ... = ... +#-----| -> apply_kpGet_mayB_x + # 464| var ... = ... #-----| -> apply_kpGet_mayB_x @@ -5692,14 +6097,82 @@ cfg.swift: # 464| apply_kpGet_mayB_x #-----| -> exit test(a:) (normal) +# 464| apply_kpGet_mayB_x +#-----| match -> a + +# 464| apply_kpGet_mayB_x + +# 464| apply_kpGet_mayB_x +#-----| match -> a + +# 464| apply_kpGet_mayB_x + +# 464| apply_kpGet_mayB_x +#-----| match -> a + +# 464| apply_kpGet_mayB_x + +# 464| apply_kpGet_mayB_x +#-----| match -> a + +# 464| apply_kpGet_mayB_x + # 464| a #-----| -> kpGet_mayB_x +# 464| a +#-----| -> kpGet_mayB_x + +# 464| a +#-----| -> kpGet_mayB_x + +# 464| a +#-----| -> kpGet_mayB_x + +# 464| a +#-----| -> kpGet_mayB_x + +# 464| \...[...] +#-----| -> var ... = ... + +# 464| \...[...] +#-----| -> var ... = ... + +# 464| \...[...] +#-----| -> var ... = ... + +# 464| \...[...] +#-----| -> var ... = ... + # 464| \...[...] #-----| -> var ... = ... # 464| (KeyPath) ... #-----| -> \...[...] +# 464| (KeyPath) ... +#-----| -> \...[...] + +# 464| (KeyPath) ... +#-----| -> \...[...] + +# 464| (KeyPath) ... +#-----| -> \...[...] + +# 464| (KeyPath) ... +#-----| -> \...[...] + +# 464| kpGet_mayB_x +#-----| -> (KeyPath) ... + +# 464| kpGet_mayB_x +#-----| -> (KeyPath) ... + +# 464| kpGet_mayB_x +#-----| -> (KeyPath) ... + +# 464| kpGet_mayB_x +#-----| -> (KeyPath) ... + # 464| kpGet_mayB_x #-----| -> (KeyPath) ... diff --git a/swift/ql/test/library-tests/parent/parent.expected b/swift/ql/test/library-tests/parent/parent.expected index ab98c789f82..8ebbf1dd372 100644 --- a/swift/ql/test/library-tests/parent/parent.expected +++ b/swift/ql/test/library-tests/parent/parent.expected @@ -22,13 +22,13 @@ | declarations.swift:3:7:3:7 | yield ... | YieldStmt | file://:0:0:0:0 | &... | InOutExpr | | declarations.swift:3:7:3:7 | { ... } | BraceStmt | declarations.swift:3:7:3:7 | yield ... | YieldStmt | | declarations.swift:3:7:3:14 | ... as ... | TypedPattern | declarations.swift:3:7:3:7 | next | NamedPattern | -| declarations.swift:3:7:3:14 | ... as ... | TypedPattern | declarations.swift:3:14:3:14 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:3:7:3:14 | ... as ... | TypedPattern | declarations.swift:3:14:3:14 | Int | TypeRepr | | declarations.swift:4:5:4:24 | get | AccessorDecl | declarations.swift:4:9:4:24 | { ... } | BraceStmt | | declarations.swift:4:9:4:24 | { ... } | BraceStmt | declarations.swift:4:11:4:22 | return ... | ReturnStmt | | declarations.swift:4:11:4:22 | return ... | ReturnStmt | declarations.swift:4:18:4:22 | ... call to +(_:_:) ... | BinaryExpr | | declarations.swift:4:18:4:18 | .x | MemberRefExpr | declarations.swift:4:18:4:18 | self | DeclRefExpr | | declarations.swift:4:18:4:22 | ... call to +(_:_:) ... | BinaryExpr | declarations.swift:4:20:4:20 | call to +(_:_:) | DotSyntaxCallExpr | -| declarations.swift:4:20:4:20 | Int.Type | TypeExpr | declarations.swift:4:20:4:20 | FixedTypeRepr | FixedTypeRepr | +| declarations.swift:4:20:4:20 | Int.Type | TypeExpr | declarations.swift:4:20:4:20 | Int | TypeRepr | | declarations.swift:4:20:4:20 | call to +(_:_:) | DotSyntaxCallExpr | declarations.swift:4:20:4:20 | +(_:_:) | DeclRefExpr | | declarations.swift:5:5:5:38 | set | AccessorDecl | declarations.swift:5:9:5:9 | newValue | ParamDecl | | declarations.swift:5:5:5:38 | set | AccessorDecl | declarations.swift:5:19:5:38 | { ... } | BraceStmt | @@ -37,7 +37,7 @@ | declarations.swift:5:21:5:36 | ... = ... | AssignExpr | declarations.swift:5:21:5:21 | .x | MemberRefExpr | | declarations.swift:5:21:5:36 | ... = ... | AssignExpr | declarations.swift:5:25:5:36 | ... call to -(_:_:) ... | BinaryExpr | | declarations.swift:5:25:5:36 | ... call to -(_:_:) ... | BinaryExpr | declarations.swift:5:34:5:34 | call to -(_:_:) | DotSyntaxCallExpr | -| declarations.swift:5:34:5:34 | Int.Type | TypeExpr | declarations.swift:5:34:5:34 | FixedTypeRepr | FixedTypeRepr | +| declarations.swift:5:34:5:34 | Int.Type | TypeExpr | declarations.swift:5:34:5:34 | Int | TypeRepr | | declarations.swift:5:34:5:34 | call to -(_:_:) | DotSyntaxCallExpr | declarations.swift:5:34:5:34 | -(_:_:) | DeclRefExpr | | declarations.swift:9:7:9:7 | deinit | DestructorDecl | declarations.swift:9:7:9:7 | { ... } | BraceStmt | | declarations.swift:9:7:9:7 | init | ConstructorDecl | declarations.swift:9:7:9:7 | { ... } | BraceStmt | @@ -56,7 +56,7 @@ | declarations.swift:9:17:9:17 | { ... } | BraceStmt | file://:0:0:0:0 | ... = ... | AssignExpr | | declarations.swift:9:17:9:17 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | declarations.swift:9:17:9:21 | ... as ... | TypedPattern | declarations.swift:9:17:9:17 | x | NamedPattern | -| declarations.swift:9:17:9:21 | ... as ... | TypedPattern | declarations.swift:9:21:9:21 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:9:17:9:21 | ... as ... | TypedPattern | declarations.swift:9:21:9:21 | Double | TypeRepr | | declarations.swift:12:5:12:18 | case ... | EnumCaseDecl | declarations.swift:12:10:12:10 | value1 | EnumElementDecl | | declarations.swift:12:5:12:18 | case ... | EnumCaseDecl | declarations.swift:12:18:12:18 | value2 | EnumElementDecl | | declarations.swift:13:5:13:26 | case ... | EnumCaseDecl | declarations.swift:13:10:13:10 | value3 | EnumElementDecl | @@ -75,12 +75,12 @@ | declarations.swift:23:9:23:9 | mustBeSettable | ConcreteVarDecl | declarations.swift:23:31:23:31 | get | AccessorDecl | | declarations.swift:23:9:23:9 | mustBeSettable | ConcreteVarDecl | declarations.swift:23:35:23:35 | set | AccessorDecl | | declarations.swift:23:9:23:25 | ... as ... | TypedPattern | declarations.swift:23:9:23:9 | mustBeSettable | NamedPattern | -| declarations.swift:23:9:23:25 | ... as ... | TypedPattern | declarations.swift:23:25:23:25 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:23:9:23:25 | ... as ... | TypedPattern | declarations.swift:23:25:23:25 | Int | TypeRepr | | declarations.swift:23:35:23:35 | set | AccessorDecl | declarations.swift:23:35:23:35 | newValue | ParamDecl | | declarations.swift:24:5:24:44 | var ... = ... | PatternBindingDecl | declarations.swift:24:9:24:34 | ... as ... | TypedPattern | | declarations.swift:24:9:24:9 | doesNotNeedToBeSettable | ConcreteVarDecl | declarations.swift:24:40:24:40 | get | AccessorDecl | | declarations.swift:24:9:24:34 | ... as ... | TypedPattern | declarations.swift:24:9:24:9 | doesNotNeedToBeSettable | NamedPattern | -| declarations.swift:24:9:24:34 | ... as ... | TypedPattern | declarations.swift:24:34:24:34 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:24:9:24:34 | ... as ... | TypedPattern | declarations.swift:24:34:24:34 | Int | TypeRepr | | declarations.swift:28:1:28:37 | a_function(a_parameter:) | ConcreteFuncDecl | declarations.swift:28:17:28:31 | a_parameter | ParamDecl | | declarations.swift:28:1:28:37 | a_function(a_parameter:) | ConcreteFuncDecl | declarations.swift:28:36:28:37 | { ... } | BraceStmt | | declarations.swift:30:1:30:18 | var ... = ... | PatternBindingDecl | declarations.swift:30:5:30:5 | a_variable | NamedPattern | @@ -93,7 +93,7 @@ | declarations.swift:31:5:31:5 | a_property | ConcreteVarDecl | declarations.swift:32:3:34:3 | get | AccessorDecl | | declarations.swift:31:5:31:5 | a_property | ConcreteVarDecl | declarations.swift:35:3:35:18 | set | AccessorDecl | | declarations.swift:31:5:31:18 | ... as ... | TypedPattern | declarations.swift:31:5:31:5 | a_property | NamedPattern | -| declarations.swift:31:5:31:18 | ... as ... | TypedPattern | declarations.swift:31:18:31:18 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:31:5:31:18 | ... as ... | TypedPattern | declarations.swift:31:18:31:18 | String | TypeRepr | | declarations.swift:32:3:34:3 | get | AccessorDecl | declarations.swift:32:7:34:3 | { ... } | BraceStmt | | declarations.swift:32:7:34:3 | { ... } | BraceStmt | declarations.swift:33:5:33:12 | return ... | ReturnStmt | | declarations.swift:33:5:33:12 | return ... | ReturnStmt | declarations.swift:33:12:33:12 | here | StringLiteralExpr | @@ -118,7 +118,7 @@ | declarations.swift:41:7:41:7 | { ... } | BraceStmt | file://:0:0:0:0 | ... = ... | AssignExpr | | declarations.swift:41:7:41:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | declarations.swift:41:7:41:14 | ... as ... | TypedPattern | declarations.swift:41:7:41:7 | field | NamedPattern | -| declarations.swift:41:7:41:14 | ... as ... | TypedPattern | declarations.swift:41:14:41:14 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:41:7:41:14 | ... as ... | TypedPattern | declarations.swift:41:14:41:14 | Int | TypeRepr | | declarations.swift:42:3:44:3 | init | ConstructorDecl | declarations.swift:42:10:44:3 | { ... } | BraceStmt | | declarations.swift:42:10:44:3 | { ... } | BraceStmt | declarations.swift:43:5:43:13 | ... = ... | AssignExpr | | declarations.swift:42:10:44:3 | { ... } | BraceStmt | declarations.swift:44:3:44:3 | return | ReturnStmt | @@ -139,7 +139,7 @@ | declarations.swift:69:3:73:3 | var ... = ... | PatternBindingDecl | declarations.swift:69:7:69:21 | ... as ... | TypedPattern | | declarations.swift:69:7:69:7 | wrappedValue | ConcreteVarDecl | declarations.swift:70:5:72:5 | get | AccessorDecl | | declarations.swift:69:7:69:21 | ... as ... | TypedPattern | declarations.swift:69:7:69:7 | wrappedValue | NamedPattern | -| declarations.swift:69:7:69:21 | ... as ... | TypedPattern | declarations.swift:69:21:69:21 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:69:7:69:21 | ... as ... | TypedPattern | declarations.swift:69:21:69:21 | Int | TypeRepr | | declarations.swift:70:5:72:5 | get | AccessorDecl | declarations.swift:70:9:72:5 | { ... } | BraceStmt | | declarations.swift:70:9:72:5 | { ... } | BraceStmt | declarations.swift:71:7:71:14 | return ... | ReturnStmt | | declarations.swift:71:7:71:14 | return ... | ReturnStmt | declarations.swift:71:14:71:14 | 0 | IntegerLiteralExpr | @@ -147,7 +147,7 @@ | declarations.swift:76:19:79:1 | { ... } | BraceStmt | declarations.swift:77:16:77:23 | var ... = ... | PatternBindingDecl | | declarations.swift:76:19:79:1 | { ... } | BraceStmt | declarations.swift:77:20:77:20 | x | ConcreteVarDecl | | declarations.swift:76:19:79:1 | { ... } | BraceStmt | declarations.swift:78:3:78:10 | return ... | ReturnStmt | -| declarations.swift:77:4:77:4 | ZeroWrapper.Type | TypeExpr | declarations.swift:77:4:77:4 | FixedTypeRepr | FixedTypeRepr | +| declarations.swift:77:4:77:4 | ZeroWrapper.Type | TypeExpr | declarations.swift:77:4:77:4 | ZeroWrapper | TypeRepr | | declarations.swift:77:4:77:4 | call to ... | CallExpr | declarations.swift:77:4:77:4 | call to init | ConstructorRefCallExpr | | declarations.swift:77:4:77:4 | call to init | ConstructorRefCallExpr | declarations.swift:77:4:77:4 | init | DeclRefExpr | | declarations.swift:77:16:77:23 | var ... = ... | PatternBindingDecl | declarations.swift:77:20:77:23 | ... as ... | TypedPattern | @@ -156,7 +156,7 @@ | declarations.swift:77:20:77:20 | x | ConcreteVarDecl | declarations.swift:77:20:77:20 | get | AccessorDecl | | declarations.swift:77:20:77:20 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | declarations.swift:77:20:77:23 | ... as ... | TypedPattern | declarations.swift:77:20:77:20 | x | NamedPattern | -| declarations.swift:77:20:77:23 | ... as ... | TypedPattern | declarations.swift:77:23:77:23 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:77:20:77:23 | ... as ... | TypedPattern | declarations.swift:77:23:77:23 | Int | TypeRepr | | declarations.swift:78:3:78:10 | return ... | ReturnStmt | declarations.swift:78:10:78:10 | x | DeclRefExpr | | declarations.swift:81:8:81:8 | init | ConstructorDecl | declarations.swift:81:8:81:8 | hasBoth | ParamDecl | | declarations.swift:81:8:81:8 | init | ConstructorDecl | declarations.swift:81:8:81:8 | hasDidSet1 | ParamDecl | @@ -172,7 +172,7 @@ | declarations.swift:82:7:82:7 | yield ... | YieldStmt | file://:0:0:0:0 | &... | InOutExpr | | declarations.swift:82:7:82:7 | { ... } | BraceStmt | declarations.swift:82:7:82:7 | yield ... | YieldStmt | | declarations.swift:82:7:82:22 | ... as ... | TypedPattern | declarations.swift:82:7:82:7 | settableField | NamedPattern | -| declarations.swift:82:7:82:22 | ... as ... | TypedPattern | declarations.swift:82:22:82:22 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:82:7:82:22 | ... as ... | TypedPattern | declarations.swift:82:22:82:22 | Int | TypeRepr | | declarations.swift:83:5:83:11 | set | AccessorDecl | declarations.swift:83:5:83:5 | newValue | ParamDecl | | declarations.swift:83:5:83:11 | set | AccessorDecl | declarations.swift:83:9:83:11 | { ... } | BraceStmt | | declarations.swift:84:5:86:5 | get | AccessorDecl | declarations.swift:84:9:86:5 | { ... } | BraceStmt | @@ -181,14 +181,14 @@ | declarations.swift:91:3:93:3 | var ... = ... | PatternBindingDecl | declarations.swift:91:7:91:23 | ... as ... | TypedPattern | | declarations.swift:91:7:91:7 | readOnlyField1 | ConcreteVarDecl | declarations.swift:91:27:93:3 | get | AccessorDecl | | declarations.swift:91:7:91:23 | ... as ... | TypedPattern | declarations.swift:91:7:91:7 | readOnlyField1 | NamedPattern | -| declarations.swift:91:7:91:23 | ... as ... | TypedPattern | declarations.swift:91:23:91:23 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:91:7:91:23 | ... as ... | TypedPattern | declarations.swift:91:23:91:23 | Int | TypeRepr | | declarations.swift:91:27:93:3 | get | AccessorDecl | declarations.swift:91:27:93:3 | { ... } | BraceStmt | | declarations.swift:91:27:93:3 | { ... } | BraceStmt | declarations.swift:92:5:92:12 | return ... | ReturnStmt | | declarations.swift:92:5:92:12 | return ... | ReturnStmt | declarations.swift:92:12:92:12 | 0 | IntegerLiteralExpr | | declarations.swift:96:3:100:3 | var ... = ... | PatternBindingDecl | declarations.swift:96:7:96:23 | ... as ... | TypedPattern | | declarations.swift:96:7:96:7 | readOnlyField2 | ConcreteVarDecl | declarations.swift:97:5:99:5 | get | AccessorDecl | | declarations.swift:96:7:96:23 | ... as ... | TypedPattern | declarations.swift:96:7:96:7 | readOnlyField2 | NamedPattern | -| declarations.swift:96:7:96:23 | ... as ... | TypedPattern | declarations.swift:96:23:96:23 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:96:7:96:23 | ... as ... | TypedPattern | declarations.swift:96:23:96:23 | Int | TypeRepr | | declarations.swift:97:5:99:5 | get | AccessorDecl | declarations.swift:97:9:99:5 | { ... } | BraceStmt | | declarations.swift:97:9:99:5 | { ... } | BraceStmt | declarations.swift:98:7:98:14 | return ... | ReturnStmt | | declarations.swift:98:7:98:14 | return ... | ReturnStmt | declarations.swift:98:14:98:14 | 0 | IntegerLiteralExpr | @@ -205,7 +205,7 @@ | declarations.swift:102:7:102:7 | { ... } | BraceStmt | file://:0:0:0:0 | ... = ... | AssignExpr | | declarations.swift:102:7:102:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | declarations.swift:102:7:102:21 | ... as ... | TypedPattern | declarations.swift:102:7:102:7 | normalField | NamedPattern | -| declarations.swift:102:7:102:21 | ... as ... | TypedPattern | declarations.swift:102:21:102:21 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:102:7:102:21 | ... as ... | TypedPattern | declarations.swift:102:21:102:21 | Int | TypeRepr | | declarations.swift:104:3:104:3 | (unnamed function decl) | AccessorDecl | declarations.swift:104:3:104:3 | { ... } | BraceStmt | | declarations.swift:104:3:104:3 | (unnamed function decl) | AccessorDecl | file://:0:0:0:0 | x | ParamDecl | | declarations.swift:104:3:104:3 | yield ... | YieldStmt | file://:0:0:0:0 | &... | InOutExpr | @@ -244,7 +244,7 @@ | declarations.swift:115:7:115:7 | { ... } | BraceStmt | file://:0:0:0:0 | call to ... | CallExpr | | declarations.swift:115:7:115:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | declarations.swift:115:7:115:21 | ... as ... | TypedPattern | declarations.swift:115:7:115:7 | hasWillSet1 | NamedPattern | -| declarations.swift:115:7:115:21 | ... as ... | TypedPattern | declarations.swift:115:21:115:21 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:115:7:115:21 | ... as ... | TypedPattern | declarations.swift:115:21:115:21 | Int | TypeRepr | | declarations.swift:116:5:116:25 | willSet | AccessorDecl | declarations.swift:116:13:116:13 | newValue | ParamDecl | | declarations.swift:116:5:116:25 | willSet | AccessorDecl | declarations.swift:116:23:116:25 | { ... } | BraceStmt | | declarations.swift:119:3:121:3 | var ... = ... | PatternBindingDecl | declarations.swift:119:7:119:21 | ... as ... | TypedPattern | @@ -262,7 +262,7 @@ | declarations.swift:119:7:119:7 | { ... } | BraceStmt | file://:0:0:0:0 | call to ... | CallExpr | | declarations.swift:119:7:119:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | declarations.swift:119:7:119:21 | ... as ... | TypedPattern | declarations.swift:119:7:119:7 | hasWillSet2 | NamedPattern | -| declarations.swift:119:7:119:21 | ... as ... | TypedPattern | declarations.swift:119:21:119:21 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:119:7:119:21 | ... as ... | TypedPattern | declarations.swift:119:21:119:21 | Int | TypeRepr | | declarations.swift:120:5:120:15 | willSet | AccessorDecl | declarations.swift:120:5:120:5 | newValue | ParamDecl | | declarations.swift:120:5:120:15 | willSet | AccessorDecl | declarations.swift:120:13:120:15 | { ... } | BraceStmt | | declarations.swift:123:3:125:3 | var ... = ... | PatternBindingDecl | declarations.swift:123:7:123:20 | ... as ... | TypedPattern | @@ -282,7 +282,7 @@ | declarations.swift:123:7:123:7 | { ... } | BraceStmt | file://:0:0:0:0 | tmp | ConcreteVarDecl | | declarations.swift:123:7:123:7 | { ... } | BraceStmt | file://:0:0:0:0 | var ... = ... | PatternBindingDecl | | declarations.swift:123:7:123:20 | ... as ... | TypedPattern | declarations.swift:123:7:123:7 | hasDidSet1 | NamedPattern | -| declarations.swift:123:7:123:20 | ... as ... | TypedPattern | declarations.swift:123:20:123:20 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:123:7:123:20 | ... as ... | TypedPattern | declarations.swift:123:20:123:20 | Int | TypeRepr | | declarations.swift:124:5:124:24 | didSet | AccessorDecl | declarations.swift:124:12:124:12 | oldValue | ParamDecl | | declarations.swift:124:5:124:24 | didSet | AccessorDecl | declarations.swift:124:22:124:24 | { ... } | BraceStmt | | declarations.swift:127:3:129:3 | var ... = ... | PatternBindingDecl | declarations.swift:127:7:127:20 | ... as ... | TypedPattern | @@ -301,7 +301,7 @@ | declarations.swift:127:7:127:7 | { ... } | BraceStmt | file://:0:0:0:0 | call to ... | CallExpr | | declarations.swift:127:7:127:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | declarations.swift:127:7:127:20 | ... as ... | TypedPattern | declarations.swift:127:7:127:7 | hasDidSet2 | NamedPattern | -| declarations.swift:127:7:127:20 | ... as ... | TypedPattern | declarations.swift:127:20:127:20 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:127:7:127:20 | ... as ... | TypedPattern | declarations.swift:127:20:127:20 | Int | TypeRepr | | declarations.swift:128:5:128:14 | didSet | AccessorDecl | declarations.swift:128:12:128:14 | { ... } | BraceStmt | | declarations.swift:131:3:135:3 | var ... = ... | PatternBindingDecl | declarations.swift:131:7:131:17 | ... as ... | TypedPattern | | declarations.swift:131:7:131:7 | (unnamed function decl) | AccessorDecl | declarations.swift:131:7:131:7 | { ... } | BraceStmt | @@ -320,7 +320,7 @@ | declarations.swift:131:7:131:7 | { ... } | BraceStmt | file://:0:0:0:0 | call to ... | CallExpr | | declarations.swift:131:7:131:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | declarations.swift:131:7:131:17 | ... as ... | TypedPattern | declarations.swift:131:7:131:7 | hasBoth | NamedPattern | -| declarations.swift:131:7:131:17 | ... as ... | TypedPattern | declarations.swift:131:17:131:17 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| declarations.swift:131:7:131:17 | ... as ... | TypedPattern | declarations.swift:131:17:131:17 | Int | TypeRepr | | declarations.swift:132:5:132:15 | willSet | AccessorDecl | declarations.swift:132:5:132:5 | newValue | ParamDecl | | declarations.swift:132:5:132:15 | willSet | AccessorDecl | declarations.swift:132:13:132:15 | { ... } | BraceStmt | | declarations.swift:134:5:134:14 | didSet | AccessorDecl | declarations.swift:134:12:134:14 | { ... } | BraceStmt | @@ -382,7 +382,7 @@ | expressions.swift:8:1:8:15 | { ... } | BraceStmt | expressions.swift:8:1:8:15 | var ... = ... | PatternBindingDecl | | expressions.swift:8:1:8:15 | { ... } | TopLevelCodeDecl | expressions.swift:8:1:8:15 | { ... } | BraceStmt | | expressions.swift:8:5:8:11 | ... as ... | TypedPattern | expressions.swift:8:5:8:5 | n | NamedPattern | -| expressions.swift:8:5:8:11 | ... as ... | TypedPattern | expressions.swift:8:8:8:11 | ...? | OptionalTypeRepr | +| expressions.swift:8:5:8:11 | ... as ... | TypedPattern | expressions.swift:8:8:8:11 | Int? | TypeRepr | | expressions.swift:11:3:11:8 | case ... | EnumCaseDecl | expressions.swift:11:8:11:8 | failed | EnumElementDecl | | expressions.swift:14:1:18:1 | failure(_:) | ConcreteFuncDecl | expressions.swift:14:14:14:19 | x | ParamDecl | | expressions.swift:14:1:18:1 | failure(_:) | ConcreteFuncDecl | expressions.swift:14:31:18:1 | { ... } | BraceStmt | @@ -390,11 +390,11 @@ | expressions.swift:15:3:17:3 | guard ... else { ... } | GuardStmt | expressions.swift:15:9:15:14 | StmtCondition | StmtCondition | | expressions.swift:15:3:17:3 | guard ... else { ... } | GuardStmt | expressions.swift:15:21:17:3 | { ... } | BraceStmt | | expressions.swift:15:9:15:14 | ... call to !=(_:_:) ... | BinaryExpr | expressions.swift:15:11:15:11 | call to !=(_:_:) | DotSyntaxCallExpr | -| expressions.swift:15:11:15:11 | Int.Type | TypeExpr | expressions.swift:15:11:15:11 | FixedTypeRepr | FixedTypeRepr | +| expressions.swift:15:11:15:11 | Int.Type | TypeExpr | expressions.swift:15:11:15:11 | Int | TypeRepr | | expressions.swift:15:11:15:11 | call to !=(_:_:) | DotSyntaxCallExpr | expressions.swift:15:11:15:11 | !=(_:_:) | DeclRefExpr | | expressions.swift:15:21:17:3 | { ... } | BraceStmt | expressions.swift:16:5:16:19 | throw ... | ThrowStmt | | expressions.swift:16:5:16:19 | throw ... | ThrowStmt | expressions.swift:16:11:16:19 | (Error) ... | ErasureExpr | -| expressions.swift:16:11:16:11 | AnError.Type | TypeExpr | expressions.swift:16:11:16:11 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:16:11:16:11 | AnError.Type | TypeExpr | expressions.swift:16:11:16:11 | AnError | TypeRepr | | expressions.swift:16:11:16:19 | (Error) ... | ErasureExpr | expressions.swift:16:11:16:19 | call to ... | DotSyntaxCallExpr | | expressions.swift:16:11:16:19 | call to ... | DotSyntaxCallExpr | expressions.swift:16:19:16:19 | failed | DeclRefExpr | | expressions.swift:20:1:20:16 | try! ... | ForceTryExpr | expressions.swift:20:6:20:16 | call to failure(_:) | CallExpr | @@ -413,7 +413,7 @@ | expressions.swift:27:1:27:19 | var ... = ... | PatternBindingDecl | expressions.swift:27:13:27:19 | call to ... | CallExpr | | expressions.swift:27:1:27:19 | { ... } | BraceStmt | expressions.swift:27:1:27:19 | var ... = ... | PatternBindingDecl | | expressions.swift:27:1:27:19 | { ... } | TopLevelCodeDecl | expressions.swift:27:1:27:19 | { ... } | BraceStmt | -| expressions.swift:27:13:27:13 | Klass.Type | TypeExpr | expressions.swift:27:13:27:13 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:27:13:27:13 | Klass.Type | TypeExpr | expressions.swift:27:13:27:13 | Klass | TypeRepr | | expressions.swift:27:13:27:13 | call to init | ConstructorRefCallExpr | expressions.swift:27:13:27:13 | init | DeclRefExpr | | expressions.swift:27:13:27:19 | call to ... | CallExpr | expressions.swift:27:13:27:13 | call to init | ConstructorRefCallExpr | | expressions.swift:29:1:29:19 | var ... = ... | PatternBindingDecl | expressions.swift:29:5:29:5 | d | NamedPattern | @@ -467,7 +467,7 @@ | expressions.swift:41:10:43:1 | { ... } | ClosureExpr | expressions.swift:41:21:41:24 | y | ParamDecl | | expressions.swift:42:5:42:16 | return ... | ReturnStmt | expressions.swift:42:12:42:16 | ... call to +(_:_:) ... | BinaryExpr | | expressions.swift:42:12:42:16 | ... call to +(_:_:) ... | BinaryExpr | expressions.swift:42:14:42:14 | call to +(_:_:) | DotSyntaxCallExpr | -| expressions.swift:42:14:42:14 | Int.Type | TypeExpr | expressions.swift:42:14:42:14 | FixedTypeRepr | FixedTypeRepr | +| expressions.swift:42:14:42:14 | Int.Type | TypeExpr | expressions.swift:42:14:42:14 | Int | TypeRepr | | expressions.swift:42:14:42:14 | call to +(_:_:) | DotSyntaxCallExpr | expressions.swift:42:14:42:14 | +(_:_:) | DeclRefExpr | | expressions.swift:44:1:46:1 | call to closured(closure:) | CallExpr | expressions.swift:44:1:44:1 | closured(closure:) | DeclRefExpr | | expressions.swift:44:1:46:1 | { ... } | BraceStmt | expressions.swift:44:1:46:1 | call to closured(closure:) | CallExpr | @@ -478,7 +478,7 @@ | expressions.swift:44:10:46:1 | { ... } | ClosureExpr | expressions.swift:44:15:44:15 | y | ParamDecl | | expressions.swift:45:5:45:16 | return ... | ReturnStmt | expressions.swift:45:12:45:16 | ... call to +(_:_:) ... | BinaryExpr | | expressions.swift:45:12:45:16 | ... call to +(_:_:) ... | BinaryExpr | expressions.swift:45:14:45:14 | call to +(_:_:) | DotSyntaxCallExpr | -| expressions.swift:45:14:45:14 | Int.Type | TypeExpr | expressions.swift:45:14:45:14 | FixedTypeRepr | FixedTypeRepr | +| expressions.swift:45:14:45:14 | Int.Type | TypeExpr | expressions.swift:45:14:45:14 | Int | TypeRepr | | expressions.swift:45:14:45:14 | call to +(_:_:) | DotSyntaxCallExpr | expressions.swift:45:14:45:14 | +(_:_:) | DeclRefExpr | | expressions.swift:47:1:47:27 | call to closured(closure:) | CallExpr | expressions.swift:47:1:47:1 | closured(closure:) | DeclRefExpr | | expressions.swift:47:1:47:27 | { ... } | BraceStmt | expressions.swift:47:1:47:27 | call to closured(closure:) | CallExpr | @@ -489,7 +489,7 @@ | expressions.swift:47:10:47:27 | { ... } | ClosureExpr | expressions.swift:47:10:47:27 | { ... } | BraceStmt | | expressions.swift:47:12:47:24 | return ... | ReturnStmt | expressions.swift:47:19:47:24 | ... call to +(_:_:) ... | BinaryExpr | | expressions.swift:47:19:47:24 | ... call to +(_:_:) ... | BinaryExpr | expressions.swift:47:22:47:22 | call to +(_:_:) | DotSyntaxCallExpr | -| expressions.swift:47:22:47:22 | Int.Type | TypeExpr | expressions.swift:47:22:47:22 | FixedTypeRepr | FixedTypeRepr | +| expressions.swift:47:22:47:22 | Int.Type | TypeExpr | expressions.swift:47:22:47:22 | Int | TypeRepr | | expressions.swift:47:22:47:22 | call to +(_:_:) | DotSyntaxCallExpr | expressions.swift:47:22:47:22 | +(_:_:) | DeclRefExpr | | expressions.swift:48:1:48:20 | call to closured(closure:) | CallExpr | expressions.swift:48:1:48:1 | closured(closure:) | DeclRefExpr | | expressions.swift:48:1:48:20 | { ... } | BraceStmt | expressions.swift:48:1:48:20 | call to closured(closure:) | CallExpr | @@ -500,7 +500,7 @@ | expressions.swift:48:10:48:20 | { ... } | ClosureExpr | expressions.swift:48:10:48:20 | { ... } | BraceStmt | | expressions.swift:48:12:48:17 | ... call to +(_:_:) ... | BinaryExpr | expressions.swift:48:15:48:15 | call to +(_:_:) | DotSyntaxCallExpr | | expressions.swift:48:12:48:17 | return ... | ReturnStmt | expressions.swift:48:12:48:17 | ... call to +(_:_:) ... | BinaryExpr | -| expressions.swift:48:15:48:15 | Int.Type | TypeExpr | expressions.swift:48:15:48:15 | FixedTypeRepr | FixedTypeRepr | +| expressions.swift:48:15:48:15 | Int.Type | TypeExpr | expressions.swift:48:15:48:15 | Int | TypeRepr | | expressions.swift:48:15:48:15 | call to +(_:_:) | DotSyntaxCallExpr | expressions.swift:48:15:48:15 | +(_:_:) | DeclRefExpr | | expressions.swift:50:8:50:8 | init | ConstructorDecl | expressions.swift:50:8:50:8 | x | ParamDecl | | expressions.swift:51:3:51:10 | var ... = ... | PatternBindingDecl | expressions.swift:51:7:51:10 | ... as ... | TypedPattern | @@ -508,14 +508,12 @@ | expressions.swift:51:7:51:7 | x | ConcreteVarDecl | expressions.swift:51:7:51:7 | get | AccessorDecl | | expressions.swift:51:7:51:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | expressions.swift:51:7:51:10 | ... as ... | TypedPattern | expressions.swift:51:7:51:7 | x | NamedPattern | -| expressions.swift:51:7:51:10 | ... as ... | TypedPattern | expressions.swift:51:10:51:10 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:51:7:51:10 | ... as ... | TypedPattern | expressions.swift:51:10:51:10 | Int | TypeRepr | | expressions.swift:54:1:54:8 | ... = ... | AssignExpr | expressions.swift:54:1:54:1 | _ | DiscardAssignmentExpr | | expressions.swift:54:1:54:8 | ... = ... | AssignExpr | expressions.swift:54:5:54:8 | #keyPath(...) | KeyPathExpr | | expressions.swift:54:1:54:8 | { ... } | BraceStmt | expressions.swift:54:1:54:8 | ... = ... | AssignExpr | | expressions.swift:54:1:54:8 | { ... } | TopLevelCodeDecl | expressions.swift:54:1:54:8 | { ... } | BraceStmt | -| expressions.swift:54:5:54:8 | #keyPath(...) | KeyPathExpr | expressions.swift:54:6:54:8 | ... .x | UnresolvedDotExpr | -| expressions.swift:54:6:54:6 | (no string representation) | TypeExpr | expressions.swift:54:6:54:6 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | -| expressions.swift:54:6:54:8 | ... .x | UnresolvedDotExpr | expressions.swift:54:6:54:6 | (no string representation) | TypeExpr | +| expressions.swift:54:5:54:8 | #keyPath(...) | KeyPathExpr | expressions.swift:54:6:54:6 | S | TypeRepr | | expressions.swift:56:1:57:1 | unsafeFunction(pointer:) | ConcreteFuncDecl | expressions.swift:56:21:56:47 | pointer | ParamDecl | | expressions.swift:56:1:57:1 | unsafeFunction(pointer:) | ConcreteFuncDecl | expressions.swift:56:50:57:1 | { ... } | BraceStmt | | expressions.swift:58:1:58:16 | var ... = ... | PatternBindingDecl | expressions.swift:58:5:58:5 | myNumber | NamedPattern | @@ -545,7 +543,7 @@ | expressions.swift:64:5:66:5 | if ... then { ... } | IfStmt | expressions.swift:64:8:64:12 | StmtCondition | StmtCondition | | expressions.swift:64:5:66:5 | if ... then { ... } | IfStmt | expressions.swift:64:14:66:5 | { ... } | BraceStmt | | expressions.swift:64:8:64:12 | ... call to <(_:_:) ... | BinaryExpr | expressions.swift:64:10:64:10 | call to <(_:_:) | DotSyntaxCallExpr | -| expressions.swift:64:10:64:10 | Int.Type | TypeExpr | expressions.swift:64:10:64:10 | FixedTypeRepr | FixedTypeRepr | +| expressions.swift:64:10:64:10 | Int.Type | TypeExpr | expressions.swift:64:10:64:10 | Int | TypeRepr | | expressions.swift:64:10:64:10 | call to <(_:_:) | DotSyntaxCallExpr | expressions.swift:64:10:64:10 | <(_:_:) | DeclRefExpr | | expressions.swift:64:14:66:5 | { ... } | BraceStmt | expressions.swift:65:7:65:14 | fail | FailStmt | | expressions.swift:70:7:70:7 | deinit | DestructorDecl | expressions.swift:70:7:70:7 | { ... } | BraceStmt | @@ -554,7 +552,7 @@ | expressions.swift:71:7:71:7 | xx | ConcreteVarDecl | expressions.swift:71:7:71:7 | get | AccessorDecl | | expressions.swift:71:7:71:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | expressions.swift:71:7:71:11 | ... as ... | TypedPattern | expressions.swift:71:7:71:7 | xx | NamedPattern | -| expressions.swift:71:7:71:11 | ... as ... | TypedPattern | expressions.swift:71:11:71:11 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:71:7:71:11 | ... as ... | TypedPattern | expressions.swift:71:11:71:11 | Int | TypeRepr | | expressions.swift:72:3:74:3 | init | ConstructorDecl | expressions.swift:72:8:72:11 | x | ParamDecl | | expressions.swift:72:3:74:3 | init | ConstructorDecl | expressions.swift:72:16:74:3 | { ... } | BraceStmt | | expressions.swift:72:16:74:3 | { ... } | BraceStmt | expressions.swift:73:5:73:10 | ... = ... | AssignExpr | @@ -577,7 +575,7 @@ | expressions.swift:83:1:83:23 | var ... = ... | PatternBindingDecl | expressions.swift:83:15:83:23 | call to ... | CallExpr | | expressions.swift:83:1:83:23 | { ... } | BraceStmt | expressions.swift:83:1:83:23 | var ... = ... | PatternBindingDecl | | expressions.swift:83:1:83:23 | { ... } | TopLevelCodeDecl | expressions.swift:83:1:83:23 | { ... } | BraceStmt | -| expressions.swift:83:15:83:15 | Derived.Type | TypeExpr | expressions.swift:83:15:83:15 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:83:15:83:15 | Derived.Type | TypeExpr | expressions.swift:83:15:83:15 | Derived | TypeRepr | | expressions.swift:83:15:83:15 | call to init | ConstructorRefCallExpr | expressions.swift:83:15:83:15 | init | DeclRefExpr | | expressions.swift:83:15:83:23 | call to ... | CallExpr | expressions.swift:83:15:83:15 | call to init | ConstructorRefCallExpr | | expressions.swift:84:1:84:13 | ... = ... | AssignExpr | expressions.swift:84:1:84:1 | _ | DiscardAssignmentExpr | @@ -591,7 +589,7 @@ | expressions.swift:86:1:86:13 | { ... } | BraceStmt | expressions.swift:86:1:86:13 | var ... = ... | PatternBindingDecl | | expressions.swift:86:1:86:13 | { ... } | TopLevelCodeDecl | expressions.swift:86:1:86:13 | { ... } | BraceStmt | | expressions.swift:86:5:86:13 | ... as ... | TypedPattern | expressions.swift:86:5:86:5 | opt | NamedPattern | -| expressions.swift:86:5:86:13 | ... as ... | TypedPattern | expressions.swift:86:10:86:13 | ...? | OptionalTypeRepr | +| expressions.swift:86:5:86:13 | ... as ... | TypedPattern | expressions.swift:86:10:86:13 | Int? | TypeRepr | | expressions.swift:87:1:87:4 | ...! | ForceValueExpr | expressions.swift:87:1:87:1 | opt | DeclRefExpr | | expressions.swift:87:1:87:4 | { ... } | BraceStmt | expressions.swift:87:1:87:4 | ...! | ForceValueExpr | | expressions.swift:87:1:87:4 | { ... } | TopLevelCodeDecl | expressions.swift:87:1:87:4 | { ... } | BraceStmt | @@ -606,15 +604,15 @@ | expressions.swift:92:1:92:55 | var ... = ... | PatternBindingDecl | expressions.swift:92:14:92:55 | call to ... | CallExpr | | expressions.swift:92:1:92:55 | { ... } | BraceStmt | expressions.swift:92:1:92:55 | var ... = ... | PatternBindingDecl | | expressions.swift:92:1:92:55 | { ... } | TopLevelCodeDecl | expressions.swift:92:1:92:55 | { ... } | BraceStmt | -| expressions.swift:92:14:92:14 | Unmanaged.Type | TypeExpr | expressions.swift:92:14:92:14 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:92:14:92:14 | Unmanaged.Type | TypeExpr | expressions.swift:92:14:92:14 | Unmanaged | TypeRepr | | expressions.swift:92:14:92:24 | call to passRetained(_:) | DotSyntaxCallExpr | expressions.swift:92:24:92:24 | passRetained(_:) | DeclRefExpr | | expressions.swift:92:14:92:44 | call to ... | CallExpr | expressions.swift:92:14:92:24 | call to passRetained(_:) | DotSyntaxCallExpr | | expressions.swift:92:14:92:46 | call to toOpaque() | DotSyntaxCallExpr | expressions.swift:92:46:92:46 | toOpaque() | DeclRefExpr | | expressions.swift:92:14:92:55 | call to ... | CallExpr | expressions.swift:92:14:92:46 | call to toOpaque() | DotSyntaxCallExpr | -| expressions.swift:92:37:92:37 | ToPtr.Type | TypeExpr | expressions.swift:92:37:92:37 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:92:37:92:37 | ToPtr.Type | TypeExpr | expressions.swift:92:37:92:37 | ToPtr | TypeRepr | | expressions.swift:92:37:92:37 | call to init | ConstructorRefCallExpr | expressions.swift:92:37:92:37 | init | DeclRefExpr | | expressions.swift:92:37:92:43 | call to ... | CallExpr | expressions.swift:92:37:92:37 | call to init | ConstructorRefCallExpr | -| expressions.swift:93:1:93:16 | Unmanaged.Type | TypeExpr | expressions.swift:93:1:93:16 | ...<...> | GenericIdentTypeRepr | +| expressions.swift:93:1:93:16 | Unmanaged.Type | TypeExpr | expressions.swift:93:1:93:16 | Unmanaged | TypeRepr | | expressions.swift:93:1:93:18 | call to fromOpaque(_:) | DotSyntaxCallExpr | expressions.swift:93:18:93:18 | fromOpaque(_:) | DeclRefExpr | | expressions.swift:93:1:93:35 | call to ... | CallExpr | expressions.swift:93:1:93:18 | call to fromOpaque(_:) | DotSyntaxCallExpr | | expressions.swift:93:1:93:35 | { ... } | BraceStmt | expressions.swift:93:1:93:35 | call to ... | CallExpr | @@ -629,7 +627,7 @@ | expressions.swift:96:7:96:7 | yield ... | YieldStmt | file://:0:0:0:0 | &... | InOutExpr | | expressions.swift:96:7:96:7 | { ... } | BraceStmt | expressions.swift:96:7:96:7 | yield ... | YieldStmt | | expressions.swift:96:7:96:22 | ... as ... | TypedPattern | expressions.swift:96:7:96:7 | settableField | NamedPattern | -| expressions.swift:96:7:96:22 | ... as ... | TypedPattern | expressions.swift:96:22:96:22 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:96:7:96:22 | ... as ... | TypedPattern | expressions.swift:96:22:96:22 | Int | TypeRepr | | expressions.swift:97:5:97:11 | set | AccessorDecl | expressions.swift:97:5:97:5 | newValue | ParamDecl | | expressions.swift:97:5:97:11 | set | AccessorDecl | expressions.swift:97:9:97:11 | { ... } | BraceStmt | | expressions.swift:98:5:100:5 | get | AccessorDecl | expressions.swift:98:9:100:5 | { ... } | BraceStmt | @@ -638,14 +636,14 @@ | expressions.swift:105:3:107:3 | var ... = ... | PatternBindingDecl | expressions.swift:105:7:105:23 | ... as ... | TypedPattern | | expressions.swift:105:7:105:7 | readOnlyField1 | ConcreteVarDecl | expressions.swift:105:27:107:3 | get | AccessorDecl | | expressions.swift:105:7:105:23 | ... as ... | TypedPattern | expressions.swift:105:7:105:7 | readOnlyField1 | NamedPattern | -| expressions.swift:105:7:105:23 | ... as ... | TypedPattern | expressions.swift:105:23:105:23 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:105:7:105:23 | ... as ... | TypedPattern | expressions.swift:105:23:105:23 | Int | TypeRepr | | expressions.swift:105:27:107:3 | get | AccessorDecl | expressions.swift:105:27:107:3 | { ... } | BraceStmt | | expressions.swift:105:27:107:3 | { ... } | BraceStmt | expressions.swift:106:5:106:12 | return ... | ReturnStmt | | expressions.swift:106:5:106:12 | return ... | ReturnStmt | expressions.swift:106:12:106:12 | 0 | IntegerLiteralExpr | | expressions.swift:110:3:114:3 | var ... = ... | PatternBindingDecl | expressions.swift:110:7:110:23 | ... as ... | TypedPattern | | expressions.swift:110:7:110:7 | readOnlyField2 | ConcreteVarDecl | expressions.swift:111:5:113:5 | get | AccessorDecl | | expressions.swift:110:7:110:23 | ... as ... | TypedPattern | expressions.swift:110:7:110:7 | readOnlyField2 | NamedPattern | -| expressions.swift:110:7:110:23 | ... as ... | TypedPattern | expressions.swift:110:23:110:23 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:110:7:110:23 | ... as ... | TypedPattern | expressions.swift:110:23:110:23 | Int | TypeRepr | | expressions.swift:111:5:113:5 | get | AccessorDecl | expressions.swift:111:9:113:5 | { ... } | BraceStmt | | expressions.swift:111:9:113:5 | { ... } | BraceStmt | expressions.swift:112:7:112:14 | return ... | ReturnStmt | | expressions.swift:112:7:112:14 | return ... | ReturnStmt | expressions.swift:112:14:112:14 | 0 | IntegerLiteralExpr | @@ -662,7 +660,7 @@ | expressions.swift:116:7:116:7 | { ... } | BraceStmt | file://:0:0:0:0 | ... = ... | AssignExpr | | expressions.swift:116:7:116:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | expressions.swift:116:7:116:21 | ... as ... | TypedPattern | expressions.swift:116:7:116:7 | normalField | NamedPattern | -| expressions.swift:116:7:116:21 | ... as ... | TypedPattern | expressions.swift:116:21:116:21 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:116:7:116:21 | ... as ... | TypedPattern | expressions.swift:116:21:116:21 | Int | TypeRepr | | expressions.swift:118:3:118:3 | (unnamed function decl) | AccessorDecl | expressions.swift:118:3:118:3 | { ... } | BraceStmt | | expressions.swift:118:3:118:3 | (unnamed function decl) | AccessorDecl | file://:0:0:0:0 | x | ParamDecl | | expressions.swift:118:3:118:3 | yield ... | YieldStmt | file://:0:0:0:0 | &... | InOutExpr | @@ -743,7 +741,7 @@ | expressions.swift:142:7:142:7 | { ... } | BraceStmt | file://:0:0:0:0 | ... = ... | AssignExpr | | expressions.swift:142:7:142:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | expressions.swift:142:7:142:11 | ... as ... | TypedPattern | expressions.swift:142:7:142:7 | x | NamedPattern | -| expressions.swift:142:7:142:11 | ... as ... | TypedPattern | expressions.swift:142:11:142:11 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:142:7:142:11 | ... as ... | TypedPattern | expressions.swift:142:11:142:11 | Int | TypeRepr | | expressions.swift:145:8:145:8 | init | ConstructorDecl | expressions.swift:145:8:145:8 | b | ParamDecl | | expressions.swift:145:8:145:8 | init | ConstructorDecl | expressions.swift:145:8:145:8 | bs | ParamDecl | | expressions.swift:145:8:145:8 | init | ConstructorDecl | expressions.swift:145:8:145:8 | mayB | ParamDecl | @@ -760,7 +758,7 @@ | expressions.swift:146:7:146:7 | { ... } | BraceStmt | file://:0:0:0:0 | ... = ... | AssignExpr | | expressions.swift:146:7:146:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | expressions.swift:146:7:146:11 | ... as ... | TypedPattern | expressions.swift:146:7:146:7 | b | NamedPattern | -| expressions.swift:146:7:146:11 | ... as ... | TypedPattern | expressions.swift:146:11:146:11 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| expressions.swift:146:7:146:11 | ... as ... | TypedPattern | expressions.swift:146:11:146:11 | B | TypeRepr | | expressions.swift:147:3:147:14 | var ... = ... | PatternBindingDecl | expressions.swift:147:7:147:14 | ... as ... | TypedPattern | | expressions.swift:147:7:147:7 | (unnamed function decl) | AccessorDecl | expressions.swift:147:7:147:7 | { ... } | BraceStmt | | expressions.swift:147:7:147:7 | bs | ConcreteVarDecl | expressions.swift:147:7:147:7 | (unnamed function decl) | AccessorDecl | @@ -774,7 +772,7 @@ | expressions.swift:147:7:147:7 | { ... } | BraceStmt | file://:0:0:0:0 | ... = ... | AssignExpr | | expressions.swift:147:7:147:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | expressions.swift:147:7:147:14 | ... as ... | TypedPattern | expressions.swift:147:7:147:7 | bs | NamedPattern | -| expressions.swift:147:7:147:14 | ... as ... | TypedPattern | expressions.swift:147:12:147:14 | [...] | ArrayTypeRepr | +| expressions.swift:147:7:147:14 | ... as ... | TypedPattern | expressions.swift:147:12:147:14 | [B] | TypeRepr | | expressions.swift:148:3:148:15 | var ... = ... | PatternBindingDecl | expressions.swift:148:7:148:15 | ... as ... | TypedPattern | | expressions.swift:148:3:148:15 | var ... = ... | PatternBindingDecl | file://:0:0:0:0 | nil | NilLiteralExpr | | expressions.swift:148:7:148:7 | (unnamed function decl) | AccessorDecl | expressions.swift:148:7:148:7 | { ... } | BraceStmt | @@ -789,7 +787,7 @@ | expressions.swift:148:7:148:7 | { ... } | BraceStmt | file://:0:0:0:0 | ... = ... | AssignExpr | | expressions.swift:148:7:148:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | expressions.swift:148:7:148:15 | ... as ... | TypedPattern | expressions.swift:148:7:148:7 | mayB | NamedPattern | -| expressions.swift:148:7:148:15 | ... as ... | TypedPattern | expressions.swift:148:14:148:15 | ...? | OptionalTypeRepr | +| expressions.swift:148:7:148:15 | ... as ... | TypedPattern | expressions.swift:148:14:148:15 | B? | TypeRepr | | expressions.swift:151:1:155:1 | test(a:keyPathInt:keyPathB:) | ConcreteFuncDecl | expressions.swift:151:11:151:15 | a | ParamDecl | | expressions.swift:151:1:155:1 | test(a:keyPathInt:keyPathB:) | ConcreteFuncDecl | expressions.swift:151:18:151:53 | keyPathInt | ParamDecl | | expressions.swift:151:1:155:1 | test(a:keyPathInt:keyPathB:) | ConcreteFuncDecl | expressions.swift:151:56:151:87 | keyPathB | ParamDecl | @@ -814,9 +812,7 @@ | expressions.swift:154:22:154:41 | \\...[...] | KeyPathApplicationExpr | expressions.swift:154:33:154:33 | keyPathB | DeclRefExpr | | expressions.swift:154:22:154:56 | \\...[...] | KeyPathApplicationExpr | expressions.swift:154:22:154:41 | \\...[...] | KeyPathApplicationExpr | | expressions.swift:154:22:154:56 | \\...[...] | KeyPathApplicationExpr | expressions.swift:154:52:154:55 | #keyPath(...) | KeyPathExpr | -| expressions.swift:154:52:154:55 | #keyPath(...) | KeyPathExpr | expressions.swift:154:53:154:55 | ... .x | UnresolvedDotExpr | -| expressions.swift:154:53:154:53 | (no string representation) | TypeExpr | expressions.swift:154:53:154:53 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | -| expressions.swift:154:53:154:55 | ... .x | UnresolvedDotExpr | expressions.swift:154:53:154:53 | (no string representation) | TypeExpr | +| expressions.swift:154:52:154:55 | #keyPath(...) | KeyPathExpr | expressions.swift:154:53:154:53 | B | TypeRepr | | patterns.swift:1:1:7:1 | basic_patterns() | ConcreteFuncDecl | patterns.swift:1:23:7:1 | { ... } | BraceStmt | | patterns.swift:1:23:7:1 | { ... } | BraceStmt | patterns.swift:2:5:2:18 | var ... = ... | PatternBindingDecl | | patterns.swift:1:23:7:1 | { ... } | BraceStmt | patterns.swift:2:9:2:9 | an_int | ConcreteVarDecl | @@ -833,7 +829,7 @@ | patterns.swift:3:5:3:28 | var ... = ... | PatternBindingDecl | patterns.swift:3:9:3:19 | ... as ... | TypedPattern | | patterns.swift:3:5:3:28 | var ... = ... | PatternBindingDecl | patterns.swift:3:28:3:28 | here | StringLiteralExpr | | patterns.swift:3:9:3:19 | ... as ... | TypedPattern | patterns.swift:3:9:3:9 | a_string | NamedPattern | -| patterns.swift:3:9:3:19 | ... as ... | TypedPattern | patterns.swift:3:19:3:19 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| patterns.swift:3:9:3:19 | ... as ... | TypedPattern | patterns.swift:3:19:3:19 | String | TypeRepr | | patterns.swift:4:5:4:29 | var ... = ... | PatternBindingDecl | patterns.swift:4:9:4:17 | (...) | TuplePattern | | patterns.swift:4:5:4:29 | var ... = ... | PatternBindingDecl | patterns.swift:4:21:4:29 | (...) | TupleExpr | | patterns.swift:4:9:4:17 | (...) | TuplePattern | patterns.swift:4:10:4:10 | x | NamedPattern | @@ -900,8 +896,8 @@ | patterns.swift:24:5:24:19 | var ... = ... | PatternBindingDecl | patterns.swift:24:9:24:12 | ... as ... | TypedPattern | | patterns.swift:24:5:24:19 | var ... = ... | PatternBindingDecl | patterns.swift:24:18:24:19 | call to ... | DotSyntaxCallExpr | | patterns.swift:24:9:24:12 | ... as ... | TypedPattern | patterns.swift:24:9:24:9 | v | NamedPattern | -| patterns.swift:24:9:24:12 | ... as ... | TypedPattern | patterns.swift:24:12:24:12 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | -| patterns.swift:24:18:24:18 | Foo.Type | TypeExpr | patterns.swift:24:18:24:18 | FixedTypeRepr | FixedTypeRepr | +| patterns.swift:24:9:24:12 | ... as ... | TypedPattern | patterns.swift:24:12:24:12 | Foo | TypeRepr | +| patterns.swift:24:18:24:18 | Foo.Type | TypeExpr | patterns.swift:24:18:24:18 | Foo | TypeRepr | | patterns.swift:24:18:24:19 | call to ... | DotSyntaxCallExpr | patterns.swift:24:19:24:19 | bar | DeclRefExpr | | patterns.swift:26:5:29:5 | switch v { ... } | SwitchStmt | patterns.swift:26:12:26:12 | v | DeclRefExpr | | patterns.swift:26:5:29:5 | switch v { ... } | SwitchStmt | patterns.swift:27:5:27:16 | case ... | CaseStmt | @@ -921,7 +917,7 @@ | patterns.swift:31:5:31:19 | var ... = ... | PatternBindingDecl | patterns.swift:31:9:31:15 | ... as ... | TypedPattern | | patterns.swift:31:5:31:19 | var ... = ... | PatternBindingDecl | patterns.swift:31:19:31:19 | nil | NilLiteralExpr | | patterns.swift:31:9:31:15 | ... as ... | TypedPattern | patterns.swift:31:9:31:9 | w | NamedPattern | -| patterns.swift:31:9:31:15 | ... as ... | TypedPattern | patterns.swift:31:12:31:15 | ...? | OptionalTypeRepr | +| patterns.swift:31:9:31:15 | ... as ... | TypedPattern | patterns.swift:31:12:31:15 | Int? | TypeRepr | | patterns.swift:33:5:36:5 | switch w { ... } | SwitchStmt | patterns.swift:33:12:33:12 | w | DeclRefExpr | | patterns.swift:33:5:36:5 | switch w { ... } | SwitchStmt | patterns.swift:34:5:34:18 | case ... | CaseStmt | | patterns.swift:33:5:36:5 | switch w { ... } | SwitchStmt | patterns.swift:35:5:35:13 | case ... | CaseStmt | @@ -938,7 +934,7 @@ | patterns.swift:38:5:38:18 | var ... = ... | PatternBindingDecl | patterns.swift:38:9:38:12 | ... as ... | TypedPattern | | patterns.swift:38:5:38:18 | var ... = ... | PatternBindingDecl | patterns.swift:38:18:38:18 | (Any) ... | ErasureExpr | | patterns.swift:38:9:38:12 | ... as ... | TypedPattern | patterns.swift:38:9:38:9 | a | NamedPattern | -| patterns.swift:38:9:38:12 | ... as ... | TypedPattern | patterns.swift:38:12:38:12 | CompositionTypeRepr | CompositionTypeRepr | +| patterns.swift:38:9:38:12 | ... as ... | TypedPattern | patterns.swift:38:12:38:12 | Any | TypeRepr | | patterns.swift:38:18:38:18 | (Any) ... | ErasureExpr | patterns.swift:38:18:38:18 | any | StringLiteralExpr | | patterns.swift:40:5:44:5 | switch a { ... } | SwitchStmt | patterns.swift:40:12:40:12 | a | DeclRefExpr | | patterns.swift:40:5:44:5 | switch a { ... } | SwitchStmt | patterns.swift:41:5:41:18 | case ... | CaseStmt | @@ -947,14 +943,14 @@ | patterns.swift:41:5:41:18 | case ... | CaseStmt | patterns.swift:41:10:41:13 | ... is ... | CaseLabelItem | | patterns.swift:41:5:41:18 | case ... | CaseStmt | patterns.swift:41:18:41:18 | { ... } | BraceStmt | | patterns.swift:41:10:41:13 | ... is ... | CaseLabelItem | patterns.swift:41:10:41:13 | ... is ... | IsPattern | -| patterns.swift:41:10:41:13 | ... is ... | IsPattern | patterns.swift:41:13:41:13 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| patterns.swift:41:10:41:13 | ... is ... | IsPattern | patterns.swift:41:13:41:13 | Int | TypeRepr | | patterns.swift:41:18:41:18 | { ... } | BraceStmt | patterns.swift:41:18:41:18 | is pattern | StringLiteralExpr | | patterns.swift:42:5:42:27 | case ... | CaseStmt | patterns.swift:42:10:42:19 | let ... | CaseLabelItem | | patterns.swift:42:5:42:27 | case ... | CaseStmt | patterns.swift:42:27:42:27 | { ... } | BraceStmt | | patterns.swift:42:10:42:19 | let ... | BindingPattern | patterns.swift:42:14:42:19 | ... is ... | IsPattern | | patterns.swift:42:10:42:19 | let ... | CaseLabelItem | patterns.swift:42:10:42:19 | let ... | BindingPattern | | patterns.swift:42:14:42:19 | ... is ... | IsPattern | patterns.swift:42:14:42:14 | x | NamedPattern | -| patterns.swift:42:14:42:19 | ... is ... | IsPattern | patterns.swift:42:19:42:19 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| patterns.swift:42:14:42:19 | ... is ... | IsPattern | patterns.swift:42:19:42:19 | String | TypeRepr | | patterns.swift:42:27:42:27 | { ... } | BraceStmt | patterns.swift:42:27:42:27 | as pattern | StringLiteralExpr | | patterns.swift:43:5:43:13 | case ... | CaseStmt | patterns.swift:43:10:43:10 | _ | CaseLabelItem | | patterns.swift:43:5:43:13 | case ... | CaseStmt | patterns.swift:43:13:43:13 | { ... } | BraceStmt | @@ -986,14 +982,14 @@ | statements.swift:2:3:8:3 | for ... in ... { ... } | ForEachStmt | statements.swift:2:20:2:24 | ... call to ...(_:_:) ... | BinaryExpr | | statements.swift:2:3:8:3 | for ... in ... { ... } | ForEachStmt | statements.swift:2:26:8:3 | { ... } | BraceStmt | | statements.swift:2:20:2:24 | ... call to ...(_:_:) ... | BinaryExpr | statements.swift:2:21:2:21 | call to ...(_:_:) | DotSyntaxCallExpr | -| statements.swift:2:21:2:21 | Int.Type | TypeExpr | statements.swift:2:21:2:21 | FixedTypeRepr | FixedTypeRepr | +| statements.swift:2:21:2:21 | Int.Type | TypeExpr | statements.swift:2:21:2:21 | Int | TypeRepr | | statements.swift:2:21:2:21 | call to ...(_:_:) | DotSyntaxCallExpr | statements.swift:2:21:2:21 | ...(_:_:) | DeclRefExpr | | statements.swift:2:26:8:3 | { ... } | BraceStmt | statements.swift:3:5:7:5 | if ... then { ... } else { ... } | IfStmt | | statements.swift:3:5:7:5 | if ... then { ... } else { ... } | IfStmt | statements.swift:3:8:3:13 | StmtCondition | StmtCondition | | statements.swift:3:5:7:5 | if ... then { ... } else { ... } | IfStmt | statements.swift:3:15:5:5 | { ... } | BraceStmt | | statements.swift:3:5:7:5 | if ... then { ... } else { ... } | IfStmt | statements.swift:5:12:7:5 | { ... } | BraceStmt | | statements.swift:3:8:3:13 | ... call to ==(_:_:) ... | BinaryExpr | statements.swift:3:10:3:10 | call to ==(_:_:) | DotSyntaxCallExpr | -| statements.swift:3:10:3:10 | Int.Type | TypeExpr | statements.swift:3:10:3:10 | FixedTypeRepr | FixedTypeRepr | +| statements.swift:3:10:3:10 | Int.Type | TypeExpr | statements.swift:3:10:3:10 | Int | TypeRepr | | statements.swift:3:10:3:10 | call to ==(_:_:) | DotSyntaxCallExpr | statements.swift:3:10:3:10 | ==(_:_:) | DeclRefExpr | | statements.swift:3:15:5:5 | { ... } | BraceStmt | statements.swift:4:9:4:9 | break | BreakStmt | | statements.swift:5:12:7:5 | { ... } | BraceStmt | statements.swift:6:9:6:9 | continue | ContinueStmt | @@ -1004,14 +1000,14 @@ | statements.swift:10:17:10:24 | (...) | ParenExpr | statements.swift:10:18:10:22 | ... call to <(_:_:) ... | BinaryExpr | | statements.swift:10:18:10:18 | (Int) ... | LoadExpr | statements.swift:10:18:10:18 | i | DeclRefExpr | | statements.swift:10:18:10:22 | ... call to <(_:_:) ... | BinaryExpr | statements.swift:10:20:10:20 | call to <(_:_:) | DotSyntaxCallExpr | -| statements.swift:10:20:10:20 | Int.Type | TypeExpr | statements.swift:10:20:10:20 | FixedTypeRepr | FixedTypeRepr | +| statements.swift:10:20:10:20 | Int.Type | TypeExpr | statements.swift:10:20:10:20 | Int | TypeRepr | | statements.swift:10:20:10:20 | call to <(_:_:) | DotSyntaxCallExpr | statements.swift:10:20:10:20 | <(_:_:) | DeclRefExpr | | statements.swift:10:26:12:3 | { ... } | BraceStmt | statements.swift:11:5:11:13 | ... = ... | AssignExpr | | statements.swift:11:5:11:13 | ... = ... | AssignExpr | statements.swift:11:5:11:5 | i | DeclRefExpr | | statements.swift:11:5:11:13 | ... = ... | AssignExpr | statements.swift:11:9:11:13 | ... call to +(_:_:) ... | BinaryExpr | | statements.swift:11:9:11:9 | (Int) ... | LoadExpr | statements.swift:11:9:11:9 | i | DeclRefExpr | | statements.swift:11:9:11:13 | ... call to +(_:_:) ... | BinaryExpr | statements.swift:11:11:11:11 | call to +(_:_:) | DotSyntaxCallExpr | -| statements.swift:11:11:11:11 | Int.Type | TypeExpr | statements.swift:11:11:11:11 | FixedTypeRepr | FixedTypeRepr | +| statements.swift:11:11:11:11 | Int.Type | TypeExpr | statements.swift:11:11:11:11 | Int | TypeRepr | | statements.swift:11:11:11:11 | call to +(_:_:) | DotSyntaxCallExpr | statements.swift:11:11:11:11 | +(_:_:) | DeclRefExpr | | statements.swift:14:3:14:7 | ... = ... | AssignExpr | statements.swift:14:3:14:3 | i | DeclRefExpr | | statements.swift:14:3:14:7 | ... = ... | AssignExpr | statements.swift:14:7:14:7 | 0 | IntegerLiteralExpr | @@ -1022,12 +1018,12 @@ | statements.swift:16:5:16:13 | ... = ... | AssignExpr | statements.swift:16:9:16:13 | ... call to +(_:_:) ... | BinaryExpr | | statements.swift:16:9:16:9 | (Int) ... | LoadExpr | statements.swift:16:9:16:9 | i | DeclRefExpr | | statements.swift:16:9:16:13 | ... call to +(_:_:) ... | BinaryExpr | statements.swift:16:11:16:11 | call to +(_:_:) | DotSyntaxCallExpr | -| statements.swift:16:11:16:11 | Int.Type | TypeExpr | statements.swift:16:11:16:11 | FixedTypeRepr | FixedTypeRepr | +| statements.swift:16:11:16:11 | Int.Type | TypeExpr | statements.swift:16:11:16:11 | Int | TypeRepr | | statements.swift:16:11:16:11 | call to +(_:_:) | DotSyntaxCallExpr | statements.swift:16:11:16:11 | +(_:_:) | DeclRefExpr | | statements.swift:17:11:17:18 | (...) | ParenExpr | statements.swift:17:12:17:16 | ... call to <(_:_:) ... | BinaryExpr | | statements.swift:17:12:17:12 | (Int) ... | LoadExpr | statements.swift:17:12:17:12 | i | DeclRefExpr | | statements.swift:17:12:17:16 | ... call to <(_:_:) ... | BinaryExpr | statements.swift:17:14:17:14 | call to <(_:_:) | DotSyntaxCallExpr | -| statements.swift:17:14:17:14 | Int.Type | TypeExpr | statements.swift:17:14:17:14 | FixedTypeRepr | FixedTypeRepr | +| statements.swift:17:14:17:14 | Int.Type | TypeExpr | statements.swift:17:14:17:14 | Int | TypeRepr | | statements.swift:17:14:17:14 | call to <(_:_:) | DotSyntaxCallExpr | statements.swift:17:14:17:14 | <(_:_:) | DeclRefExpr | | statements.swift:19:3:23:3 | do { ... } catch { ... } | DoCatchStmt | statements.swift:19:6:21:3 | { ... } | BraceStmt | | statements.swift:19:3:23:3 | do { ... } catch { ... } | DoCatchStmt | statements.swift:21:5:23:3 | case ... | CaseStmt | @@ -1074,11 +1070,11 @@ | statements.swift:39:3:41:3 | guard ... else { ... } | GuardStmt | statements.swift:39:9:39:14 | StmtCondition | StmtCondition | | statements.swift:39:3:41:3 | guard ... else { ... } | GuardStmt | statements.swift:39:21:41:3 | { ... } | BraceStmt | | statements.swift:39:9:39:14 | ... call to !=(_:_:) ... | BinaryExpr | statements.swift:39:11:39:11 | call to !=(_:_:) | DotSyntaxCallExpr | -| statements.swift:39:11:39:11 | Int.Type | TypeExpr | statements.swift:39:11:39:11 | FixedTypeRepr | FixedTypeRepr | +| statements.swift:39:11:39:11 | Int.Type | TypeExpr | statements.swift:39:11:39:11 | Int | TypeRepr | | statements.swift:39:11:39:11 | call to !=(_:_:) | DotSyntaxCallExpr | statements.swift:39:11:39:11 | !=(_:_:) | DeclRefExpr | | statements.swift:39:21:41:3 | { ... } | BraceStmt | statements.swift:40:5:40:19 | throw ... | ThrowStmt | | statements.swift:40:5:40:19 | throw ... | ThrowStmt | statements.swift:40:11:40:19 | (Error) ... | ErasureExpr | -| statements.swift:40:11:40:11 | AnError.Type | TypeExpr | statements.swift:40:11:40:11 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| statements.swift:40:11:40:11 | AnError.Type | TypeExpr | statements.swift:40:11:40:11 | AnError | TypeRepr | | statements.swift:40:11:40:19 | (Error) ... | ErasureExpr | statements.swift:40:11:40:19 | call to ... | DotSyntaxCallExpr | | statements.swift:40:11:40:19 | call to ... | DotSyntaxCallExpr | statements.swift:40:19:40:19 | failed | DeclRefExpr | | statements.swift:44:1:46:1 | defer { ... } | DeferStmt | statements.swift:44:7:46:1 | { ... } | BraceStmt | @@ -1143,7 +1139,7 @@ | statements.swift:64:1:64:15 | { ... } | BraceStmt | statements.swift:64:1:64:15 | var ... = ... | PatternBindingDecl | | statements.swift:64:1:64:15 | { ... } | TopLevelCodeDecl | statements.swift:64:1:64:15 | { ... } | BraceStmt | | statements.swift:64:5:64:11 | ... as ... | TypedPattern | statements.swift:64:5:64:5 | x | NamedPattern | -| statements.swift:64:5:64:11 | ... as ... | TypedPattern | statements.swift:64:8:64:11 | ...? | OptionalTypeRepr | +| statements.swift:64:5:64:11 | ... as ... | TypedPattern | statements.swift:64:8:64:11 | Int? | TypeRepr | | statements.swift:64:15:64:15 | (Int?) ... | InjectIntoOptionalExpr | statements.swift:64:15:64:15 | 4 | IntegerLiteralExpr | | statements.swift:65:1:66:1 | if ... then { ... } | IfStmt | statements.swift:65:4:65:19 | StmtCondition | StmtCondition | | statements.swift:65:1:66:1 | if ... then { ... } | IfStmt | statements.swift:65:21:66:1 | { ... } | BraceStmt | @@ -1172,9 +1168,9 @@ | statements.swift:71:1:72:1 | { ... } | TopLevelCodeDecl | statements.swift:71:1:72:1 | { ... } | BraceStmt | | statements.swift:71:29:71:38 | ... call to %(_:_:) ... | BinaryExpr | statements.swift:71:36:71:36 | call to %(_:_:) | DotSyntaxCallExpr | | statements.swift:71:29:71:43 | ... call to ==(_:_:) ... | BinaryExpr | statements.swift:71:40:71:40 | call to ==(_:_:) | DotSyntaxCallExpr | -| statements.swift:71:36:71:36 | Int.Type | TypeExpr | statements.swift:71:36:71:36 | FixedTypeRepr | FixedTypeRepr | +| statements.swift:71:36:71:36 | Int.Type | TypeExpr | statements.swift:71:36:71:36 | Int | TypeRepr | | statements.swift:71:36:71:36 | call to %(_:_:) | DotSyntaxCallExpr | statements.swift:71:36:71:36 | %(_:_:) | DeclRefExpr | -| statements.swift:71:40:71:40 | Int.Type | TypeExpr | statements.swift:71:40:71:40 | FixedTypeRepr | FixedTypeRepr | +| statements.swift:71:40:71:40 | Int.Type | TypeExpr | statements.swift:71:40:71:40 | Int | TypeRepr | | statements.swift:71:40:71:40 | call to ==(_:_:) | DotSyntaxCallExpr | statements.swift:71:40:71:40 | ==(_:_:) | DeclRefExpr | | statements.swift:74:8:74:8 | init | ConstructorDecl | statements.swift:74:8:74:8 | x | ParamDecl | | statements.swift:75:3:75:11 | var ... = ... | PatternBindingDecl | statements.swift:75:7:75:11 | ... as ... | TypedPattern | @@ -1190,7 +1186,7 @@ | statements.swift:75:7:75:7 | { ... } | BraceStmt | file://:0:0:0:0 | return ... | ReturnStmt | | statements.swift:75:7:75:7 | { ... } | BraceStmt | statements.swift:75:7:75:7 | yield ... | YieldStmt | | statements.swift:75:7:75:11 | ... as ... | TypedPattern | statements.swift:75:7:75:7 | x | NamedPattern | -| statements.swift:75:7:75:11 | ... as ... | TypedPattern | statements.swift:75:11:75:11 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| statements.swift:75:7:75:11 | ... as ... | TypedPattern | statements.swift:75:11:75:11 | Int | TypeRepr | | statements.swift:76:3:84:3 | var ... = ... | PatternBindingDecl | statements.swift:76:7:76:19 | ... as ... | TypedPattern | | statements.swift:76:7:76:7 | hasModify | ConcreteVarDecl | statements.swift:76:7:76:7 | set | AccessorDecl | | statements.swift:76:7:76:7 | hasModify | ConcreteVarDecl | statements.swift:77:5:79:5 | (unnamed function decl) | AccessorDecl | @@ -1199,7 +1195,7 @@ | statements.swift:76:7:76:7 | set | AccessorDecl | statements.swift:76:7:76:7 | { ... } | BraceStmt | | statements.swift:76:7:76:7 | { ... } | BraceStmt | file://:0:0:0:0 | ... = ... | AssignExpr | | statements.swift:76:7:76:19 | ... as ... | TypedPattern | statements.swift:76:7:76:7 | hasModify | NamedPattern | -| statements.swift:76:7:76:19 | ... as ... | TypedPattern | statements.swift:76:19:76:19 | SimpleIdentTypeRepr | SimpleIdentTypeRepr | +| statements.swift:76:7:76:19 | ... as ... | TypedPattern | statements.swift:76:19:76:19 | Int | TypeRepr | | statements.swift:77:5:79:5 | (unnamed function decl) | AccessorDecl | statements.swift:77:13:79:5 | { ... } | BraceStmt | | statements.swift:77:13:79:5 | { ... } | BraceStmt | statements.swift:78:7:78:14 | yield ... | YieldStmt | | statements.swift:78:7:78:14 | yield ... | YieldStmt | statements.swift:78:13:78:14 | &... | InOutExpr | From 965f5a980af40bc7101a3d093818ca70087a7ebe Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 12 Jul 2022 10:58:16 +0100 Subject: [PATCH 335/736] Java/Kotlin: Add changenote for ErrorType --- java/ql/lib/change-notes/2022-07-12-errortype.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2022-07-12-errortype.md diff --git a/java/ql/lib/change-notes/2022-07-12-errortype.md b/java/ql/lib/change-notes/2022-07-12-errortype.md new file mode 100644 index 00000000000..7f7e1231ddc --- /dev/null +++ b/java/ql/lib/change-notes/2022-07-12-errortype.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added an `ErrorType` class. An instance of this class will be used if an extractor is unable to extract as type, or if an up/downgrade script is unable to provide a type. From 48c71c94076b8953930de958978fcd9f1b92905c Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 12 Jul 2022 12:10:22 +0200 Subject: [PATCH 336/736] Swift: add comment about `TypeRepr` in `ASTNode` fetching --- swift/extractor/infra/SwiftDispatcher.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index 0f1753cda1d..42b0faa5a5a 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -251,6 +251,10 @@ class SwiftDispatcher { template bool fetchLabelFromUnionCase(const llvm::PointerUnion u, TrapLabel& output) { + // we rely on the fact that when we extract `ASTNode` instances (which only happens + // on `BraceStmt` elements), we cannot encounter a standalone `TypeRepr` there, so we skip + // this case, which would be problematic as we would not be able to provide the corresponding + // type if constexpr (!std::is_same_v) { if (auto e = u.template dyn_cast()) { output = fetchLabel(e); From 1bcb17b760c3be7cd6508800baafa427545c81b9 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 12 Jul 2022 12:16:24 +0100 Subject: [PATCH 337/736] Update java/ql/lib/change-notes/2022-07-12-errortype.md Co-authored-by: Anders Schack-Mulligen --- java/ql/lib/change-notes/2022-07-12-errortype.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/change-notes/2022-07-12-errortype.md b/java/ql/lib/change-notes/2022-07-12-errortype.md index 7f7e1231ddc..97f851bb936 100644 --- a/java/ql/lib/change-notes/2022-07-12-errortype.md +++ b/java/ql/lib/change-notes/2022-07-12-errortype.md @@ -1,4 +1,4 @@ --- category: feature --- -* Added an `ErrorType` class. An instance of this class will be used if an extractor is unable to extract as type, or if an up/downgrade script is unable to provide a type. +* Added an `ErrorType` class. An instance of this class will be used if an extractor is unable to extract a type, or if an up/downgrade script is unable to provide a type. From 2ceb25dc9a7d40f20170afc15b25ba639daa6e41 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 12 Jul 2022 15:21:37 +0200 Subject: [PATCH 338/736] C++: Order left and right operands in the logical left to right order --- cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll index 92beb5c9d99..baa78f7be7c 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll @@ -46,7 +46,7 @@ predicate nullCheckExpr(Expr checkExpr, Variable var) { or exists(LogicalAndExpr op, AnalysedExpr child | expr = op and - (op.getRightOperand() = child or op.getLeftOperand() = child) and + (op.getLeftOperand() = child or op.getRightOperand() = child) and nullCheckExpr(child, v) ) or @@ -99,7 +99,7 @@ predicate validCheckExpr(Expr checkExpr, Variable var) { or exists(LogicalAndExpr op, AnalysedExpr child | expr = op and - (op.getRightOperand() = child or op.getLeftOperand() = child) and + (op.getLeftOperand() = child or op.getRightOperand() = child) and validCheckExpr(child, v) ) or From d63b0946d98eb65edc87f31ce2005f73cdcbdb3d Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 12 Jul 2022 15:22:13 +0200 Subject: [PATCH 339/736] C++: Use `ConditionDeclExpr` in `AnalysedExpr::isDef` --- cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll index baa78f7be7c..a64c6a277d4 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll @@ -171,8 +171,8 @@ class AnalysedExpr extends Expr { this.inCondition() and ( this.(Assignment).getLValue() = v.getAnAccess() or - exists(Initializer i | this.getEnclosingStmt() = i.getEnclosingStmt() and v = i.getDeclaration()) - ) + this.(ConditionDeclExpr).getVariableAccess() = v.getAnAccess() + ) } /** From e5eabc4e4730f7ed7fd0f2735baf3e64cc998f10 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 12 Jul 2022 15:23:33 +0200 Subject: [PATCH 340/736] C++: Slightly tweak nullness test and update test results --- .../controlflow/nullness/nullness.expected | 11 ++++++++--- .../library-tests/controlflow/nullness/nullness.ql | 1 - .../test/library-tests/controlflow/nullness/test.cpp | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cpp/ql/test/library-tests/controlflow/nullness/nullness.expected b/cpp/ql/test/library-tests/controlflow/nullness/nullness.expected index db5c795fd5b..bcf301ba47b 100644 --- a/cpp/ql/test/library-tests/controlflow/nullness/nullness.expected +++ b/cpp/ql/test/library-tests/controlflow/nullness/nullness.expected @@ -7,9 +7,14 @@ | test.cpp:15:8:15:23 | call to __builtin_expect | test.cpp:5:13:5:13 | v | is not null | is valid | | test.cpp:16:8:16:23 | call to __builtin_expect | test.cpp:5:13:5:13 | v | is null | is not valid | | test.cpp:17:9:17:17 | ... && ... | test.cpp:5:13:5:13 | v | is not null | is valid | -| test.cpp:18:9:18:17 | ... && ... | test.cpp:5:13:5:13 | v | is not null | is not valid | +| test.cpp:18:9:18:17 | ... && ... | test.cpp:5:13:5:13 | v | is not null | is valid | | test.cpp:19:9:19:18 | ... && ... | test.cpp:5:13:5:13 | v | is null | is not valid | -| test.cpp:20:9:20:18 | ... && ... | test.cpp:5:13:5:13 | v | is not null | is not valid | +| test.cpp:20:9:20:18 | ... && ... | test.cpp:5:13:5:13 | v | is null | is not valid | | test.cpp:21:9:21:14 | ... = ... | test.cpp:5:13:5:13 | v | is null | is not valid | | test.cpp:21:9:21:14 | ... = ... | test.cpp:7:10:7:10 | b | is not null | is valid | -| test.cpp:22:17:22:17 | b | test.cpp:7:10:7:10 | b | is not null | is valid | +| test.cpp:22:9:22:14 | ... = ... | test.cpp:5:13:5:13 | v | is not null | is not valid | +| test.cpp:22:9:22:14 | ... = ... | test.cpp:7:13:7:13 | c | is not null | is not valid | +| test.cpp:22:17:22:17 | c | test.cpp:7:13:7:13 | c | is not null | is valid | +| test.cpp:23:21:23:21 | x | test.cpp:23:14:23:14 | x | is not null | is valid | +| test.cpp:24:9:24:18 | (condition decl) | test.cpp:5:13:5:13 | v | is not null | is not valid | +| test.cpp:24:9:24:18 | (condition decl) | test.cpp:24:14:24:14 | y | is not null | is valid | diff --git a/cpp/ql/test/library-tests/controlflow/nullness/nullness.ql b/cpp/ql/test/library-tests/controlflow/nullness/nullness.ql index ed1ba15aa2b..864fd04f920 100644 --- a/cpp/ql/test/library-tests/controlflow/nullness/nullness.ql +++ b/cpp/ql/test/library-tests/controlflow/nullness/nullness.ql @@ -2,7 +2,6 @@ import cpp from AnalysedExpr a, LocalScopeVariable v, string isNullCheck, string isValidCheck where - a.getParent() instanceof IfStmt and v.getAnAccess().getEnclosingStmt() = a.getParent() and (if a.isNullCheck(v) then isNullCheck = "is null" else isNullCheck = "is not null") and (if a.isValidCheck(v) then isValidCheck = "is valid" else isValidCheck = "is not valid") diff --git a/cpp/ql/test/library-tests/controlflow/nullness/test.cpp b/cpp/ql/test/library-tests/controlflow/nullness/test.cpp index 03369c811d5..407753be17a 100644 --- a/cpp/ql/test/library-tests/controlflow/nullness/test.cpp +++ b/cpp/ql/test/library-tests/controlflow/nullness/test.cpp @@ -4,7 +4,7 @@ long __builtin_expect(long); void f(int *v) { int *w; - bool b; + bool b, c; if (v) {} if (!v) {} @@ -19,5 +19,7 @@ void f(int *v) { if (true && !v) {} if (!v && true) {} if (b = !v) {} - if (b = !v; b) {} + if (c = !v; c) {} + if (int *x = v; x) {} + if (int *y = v) {} } From 8f9d4194413f5c836ff53f6312e0a9ecfc8251c7 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 12 Jul 2022 15:24:09 +0200 Subject: [PATCH 341/736] C++: Add change note --- .../lib/change-notes/2022-07-12-cover-more-nullness-cases.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2022-07-12-cover-more-nullness-cases.md diff --git a/cpp/ql/lib/change-notes/2022-07-12-cover-more-nullness-cases.md b/cpp/ql/lib/change-notes/2022-07-12-cover-more-nullness-cases.md new file mode 100644 index 00000000000..eef564991f5 --- /dev/null +++ b/cpp/ql/lib/change-notes/2022-07-12-cover-more-nullness-cases.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the the C++ logical and variable declarations in conditions. From f7c4fa691d7918c86be65f20ae1778bc2ff0097b Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <93738568+jketema@users.noreply.github.com> Date: Tue, 12 Jul 2022 16:59:15 +0200 Subject: [PATCH 342/736] Apply suggestions from code review Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com> --- cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll index a64c6a277d4..0fb46f75c94 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/Nullness.qll @@ -46,7 +46,7 @@ predicate nullCheckExpr(Expr checkExpr, Variable var) { or exists(LogicalAndExpr op, AnalysedExpr child | expr = op and - (op.getLeftOperand() = child or op.getRightOperand() = child) and + op.getAnOperand() = child and nullCheckExpr(child, v) ) or @@ -99,7 +99,7 @@ predicate validCheckExpr(Expr checkExpr, Variable var) { or exists(LogicalAndExpr op, AnalysedExpr child | expr = op and - (op.getLeftOperand() = child or op.getRightOperand() = child) and + op.getAnOperand() = child and validCheckExpr(child, v) ) or From a51d713925cd351664efa9e2905f1b63b2b8b32f Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Tue, 12 Jul 2022 08:13:12 -0700 Subject: [PATCH 343/736] Update java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: Chris Smowton --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index 50840b67f0b..d3b742f7c95 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -14,8 +14,8 @@ import java import semmle.code.java.dataflow.DataFlow /** - * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` - * that takes no arguments, which means that it is using V1 encryption + * Holds if `call` is an object creation for a class `EncryptedBlobClientBuilder` + * that takes no arguments, which means that it is using V1 encryption. */ predicate isCreatingOutdatedAzureClientSideEncryptionObject(Call call, Class c) { exists(string package, string type, Constructor constructor | From a4e35a97eac187d0b6a3a6cb2f72c9f0d8340bb6 Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Tue, 12 Jul 2022 08:13:38 -0700 Subject: [PATCH 344/736] Update java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: Chris Smowton --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index d3b742f7c95..c0fd959b790 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -33,8 +33,8 @@ predicate isCreatingOutdatedAzureClientSideEncryptionObject(Call call, Class c) } /** - * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` - * that takes `versionArg` as the argument for the version. + * Holds if `call` is an object creation for a class `EncryptedBlobClientBuilder` + * that takes `versionArg` as the argument specifying the encryption version. */ predicate isCreatingAzureClientSideEncryptionObjectNewVersion(Call call, Class c, Expr versionArg) { exists(string package, string type, Constructor constructor | From 2bac18109487a757e72f997bab20c2fd01ba6b50 Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Tue, 12 Jul 2022 08:13:53 -0700 Subject: [PATCH 345/736] Update java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: Chris Smowton --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index c0fd959b790..5f73e4322b0 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -48,7 +48,7 @@ predicate isCreatingAzureClientSideEncryptionObjectNewVersion(Call call, Class c } /** - * A config that tracks `EncryptedBlobClientBuilder.version` argument initialization. + * A dataflow config that tracks `EncryptedBlobClientBuilder.version` argument initialization. */ private class EncryptedBlobClientBuilderEncryptionVersionConfig extends DataFlow::Configuration { EncryptedBlobClientBuilderEncryptionVersionConfig() { From 8a48708014bfcd4afb9dd6c3d8d0123bc707ae97 Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Tue, 12 Jul 2022 08:14:13 -0700 Subject: [PATCH 346/736] Update java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: Chris Smowton --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index 5f73e4322b0..b5ac2cabd7e 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -50,7 +50,7 @@ predicate isCreatingAzureClientSideEncryptionObjectNewVersion(Call call, Class c /** * A dataflow config that tracks `EncryptedBlobClientBuilder.version` argument initialization. */ -private class EncryptedBlobClientBuilderEncryptionVersionConfig extends DataFlow::Configuration { +private class EncryptedBlobClientBuilderSafeEncryptionVersionConfig extends DataFlow::Configuration { EncryptedBlobClientBuilderEncryptionVersionConfig() { this = "EncryptedBlobClientBuilderEncryptionVersionConfig" } From 64343e00f4c6fe61b9f6ed263c5f3a3c843605f7 Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Tue, 12 Jul 2022 08:14:25 -0700 Subject: [PATCH 347/736] Update java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: Chris Smowton --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index b5ac2cabd7e..5977d29f26e 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -69,8 +69,8 @@ private class EncryptedBlobClientBuilderSafeEncryptionVersionConfig extends Data } /** - * Holds if the call `call` is an object creation for a class `EncryptedBlobClientBuilder` - * that takes `versionArg` as the argument for the version, and the version number is safe + * Holds if `call` is an object creation for a class `EncryptedBlobClientBuilder` + * that takes `versionArg` as the argument specifying the encryption version, and that version is safe. */ predicate isCreatingSafeAzureClientSideEncryptionObject(Call call, Class c, Expr versionArg) { isCreatingAzureClientSideEncryptionObjectNewVersion(call, c, versionArg) and From f29104cccef4a628e536e7a82b584bf71962550a Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 12 Jul 2022 14:29:53 +0100 Subject: [PATCH 348/736] C++: Accept test results. --- .../semmle/tests/DangerousUseMbtowc.expected | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected index 89feb7bf82e..0d156d9bf3a 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected @@ -1,8 +1,26 @@ -| test.cpp:66:27:66:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | -| test.cpp:76:27:76:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | -| test.cpp:106:11:106:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:123:11:123:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:140:11:140:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:158:11:158:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:181:11:181:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | -| test.cpp:197:11:197:16 | call to mbtowc | Maybe you're using the function's return value incorrectly. | +| test1.cpp:28:5:28:23 | call to WideCharToMultiByte | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | +| test1.cpp:29:5:29:23 | call to MultiByteToWideChar | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | +| test1.cpp:45:3:45:21 | call to WideCharToMultiByte | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible.badTest2 | +| test1.cpp:58:3:58:21 | call to MultiByteToWideChar | The buffer destination has a type other than char, you need to take this into account when allocating memory.badTest3 | +| test1.cpp:70:3:70:21 | call to MultiByteToWideChar | The buffer destination has a type other than char, you need to take this into account when allocating memory.badTest4 | +| test1.cpp:76:10:76:28 | call to WideCharToMultiByte | If the destination buffer is NULL and its size is not 0, then undefined behavior is possible.badTest5 | +| test1.cpp:93:5:93:23 | call to WideCharToMultiByte | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible.badTest6 | +| test2.cpp:15:5:15:12 | call to mbstowcs | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | +| test2.cpp:17:5:17:15 | call to _mbstowcs_l | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | +| test2.cpp:19:5:19:13 | call to mbsrtowcs | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | +| test2.cpp:35:3:35:10 | call to mbstowcs | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible.badTest2 | +| test2.cpp:48:3:48:10 | call to mbstowcs | The buffer destination has a type other than char, you need to take this into account when allocating memory.badTest3 | +| test2.cpp:60:3:60:10 | call to mbstowcs | The buffer destination has a type other than char, you need to take this into account when allocating memory.badTest4 | +| test2.cpp:66:10:66:17 | call to mbstowcs | If the destination buffer is NULL and its size is not 0, then undefined behavior is possible.badTest5 | +| test2.cpp:80:3:80:10 | call to mbstowcs | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible.badTest6 | +| test3.cpp:16:5:16:13 | access to array | This buffer may contain multibyte characters, so attempting to copy may result in part of the last character being lost.badTest1 | +| test3.cpp:36:13:36:18 | ... + ... | This buffer may contain multibyte characters, so an attempt to copy may result in an overflow.badTest2 | +| test3.cpp:47:3:47:24 | access to array | The size of the array element is greater than one byte, so the offset will point outside the array.badTest3 | +| test.cpp:66:27:66:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX.badTest1 | +| test.cpp:76:27:76:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX.badTest2 | +| test.cpp:106:11:106:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest3 | +| test.cpp:123:11:123:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest4 | +| test.cpp:140:11:140:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest5 | +| test.cpp:158:11:158:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest6 | +| test.cpp:181:11:181:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest7 | +| test.cpp:197:11:197:16 | call to mbtowc | Maybe you're using the function's return value incorrectly.badTest8 | From 83edb3b5e9887d34d817f5547e39418ac0d70d26 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 12 Jul 2022 17:43:50 +0100 Subject: [PATCH 349/736] Kotlin: Remove the last uses of fakeLabel --- .../src/main/kotlin/KotlinUsesExtractor.kt | 15 ++++++++++----- java/kotlin-extractor/src/main/kotlin/Label.kt | 12 ------------ 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 69ddc410799..22bae8b55be 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -121,14 +121,19 @@ open class KotlinUsesExtractor( } } - private fun extractErrorType(): TypeResults { + private fun extractJavaErrorType(): TypeResult { val typeId = tw.getLabelFor("@\"errorType\"") { tw.writeError_type(it) } + return TypeResult(typeId, null, "") + } + + private fun extractErrorType(): TypeResults { + val javaResult = extractJavaErrorType() val kotlinTypeId = tw.getLabelFor("@\"errorKotlinType\"") { - tw.writeKt_nullable_types(it, typeId) + tw.writeKt_nullable_types(it, javaResult.id) } - return TypeResults(TypeResult(typeId, null, ""), + return TypeResults(javaResult, TypeResult(kotlinTypeId, null, "")) } @@ -719,7 +724,7 @@ open class KotlinUsesExtractor( } else -> { logger.error("Unrecognised IrSimpleType: " + s.javaClass + ": " + s.render()) - return TypeResults(TypeResult(fakeLabel(), "unknown", "unknown"), TypeResult(fakeLabel(), "unknown", "unknown")) + return extractErrorType() } } } @@ -1276,7 +1281,7 @@ open class KotlinUsesExtractor( } else -> { logger.error("Unexpected type argument.") - return TypeResult(fakeLabel(), "unknown", "unknown") + return extractJavaErrorType() } } } diff --git a/java/kotlin-extractor/src/main/kotlin/Label.kt b/java/kotlin-extractor/src/main/kotlin/Label.kt index 24e9a8f691c..10459319a76 100644 --- a/java/kotlin-extractor/src/main/kotlin/Label.kt +++ b/java/kotlin-extractor/src/main/kotlin/Label.kt @@ -29,15 +29,3 @@ class IntLabel(val i: Int): Label { class StringLabel(val name: String): Label { override fun toString(): String = "#$name" } - -// TODO: Remove this and all of its uses -fun fakeLabel(): Label { - if (false) { - println("Fake label") - } else { - val sw = StringWriter() - Exception().printStackTrace(PrintWriter(sw)) - println("Fake label from:\n$sw") - } - return IntLabel(0) -} From 98af52fba5ba5a55436045fe9de78c4d635a26c1 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Tue, 12 Jul 2022 20:19:59 +0300 Subject: [PATCH 350/736] Update DangerousUseMbtowc.ql --- .../src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql index 7b17e30e24e..6c0bf84e81b 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql @@ -234,4 +234,4 @@ where findUseMultibyteCharacter(exp, msg) or findUseStringConversion(exp, msg, 1, 0, 2, ["mbstowcs", "_mbstowcs_l", "mbsrtowcs"]) or findUseStringConversion(exp, msg, 2, 4, 5, ["MultiByteToWideChar", "WideCharToMultiByte"]) -select exp, msg + exp.getEnclosingFunction().getName() +select exp, msg From e77a9891337df09bafd6fbd5d2cf24960d0b3242 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Tue, 12 Jul 2022 20:22:31 +0300 Subject: [PATCH 351/736] Update DangerousUseMbtowc.expected --- .../semmle/tests/DangerousUseMbtowc.expected | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected index 0d156d9bf3a..6766b6c46a4 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected @@ -1,26 +1,26 @@ -| test1.cpp:28:5:28:23 | call to WideCharToMultiByte | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | -| test1.cpp:29:5:29:23 | call to MultiByteToWideChar | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | -| test1.cpp:45:3:45:21 | call to WideCharToMultiByte | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible.badTest2 | -| test1.cpp:58:3:58:21 | call to MultiByteToWideChar | The buffer destination has a type other than char, you need to take this into account when allocating memory.badTest3 | -| test1.cpp:70:3:70:21 | call to MultiByteToWideChar | The buffer destination has a type other than char, you need to take this into account when allocating memory.badTest4 | -| test1.cpp:76:10:76:28 | call to WideCharToMultiByte | If the destination buffer is NULL and its size is not 0, then undefined behavior is possible.badTest5 | -| test1.cpp:93:5:93:23 | call to WideCharToMultiByte | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible.badTest6 | -| test2.cpp:15:5:15:12 | call to mbstowcs | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | -| test2.cpp:17:5:17:15 | call to _mbstowcs_l | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | -| test2.cpp:19:5:19:13 | call to mbsrtowcs | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible.badTest1 | -| test2.cpp:35:3:35:10 | call to mbstowcs | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible.badTest2 | -| test2.cpp:48:3:48:10 | call to mbstowcs | The buffer destination has a type other than char, you need to take this into account when allocating memory.badTest3 | -| test2.cpp:60:3:60:10 | call to mbstowcs | The buffer destination has a type other than char, you need to take this into account when allocating memory.badTest4 | -| test2.cpp:66:10:66:17 | call to mbstowcs | If the destination buffer is NULL and its size is not 0, then undefined behavior is possible.badTest5 | -| test2.cpp:80:3:80:10 | call to mbstowcs | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible.badTest6 | -| test3.cpp:16:5:16:13 | access to array | This buffer may contain multibyte characters, so attempting to copy may result in part of the last character being lost.badTest1 | -| test3.cpp:36:13:36:18 | ... + ... | This buffer may contain multibyte characters, so an attempt to copy may result in an overflow.badTest2 | -| test3.cpp:47:3:47:24 | access to array | The size of the array element is greater than one byte, so the offset will point outside the array.badTest3 | -| test.cpp:66:27:66:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX.badTest1 | -| test.cpp:76:27:76:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX.badTest2 | -| test.cpp:106:11:106:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest3 | -| test.cpp:123:11:123:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest4 | -| test.cpp:140:11:140:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest5 | -| test.cpp:158:11:158:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest6 | -| test.cpp:181:11:181:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer.badTest7 | -| test.cpp:197:11:197:16 | call to mbtowc | Maybe you're using the function's return value incorrectly.badTest8 | +| test1.cpp:28:5:28:23 | call to WideCharToMultiByte | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible. | +| test1.cpp:29:5:29:23 | call to MultiByteToWideChar | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible. | +| test1.cpp:45:3:45:21 | call to WideCharToMultiByte | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible. | +| test1.cpp:58:3:58:21 | call to MultiByteToWideChar | The buffer destination has a type other than char, you need to take this into account when allocating memory. | +| test1.cpp:70:3:70:21 | call to MultiByteToWideChar | The buffer destination has a type other than char, you need to take this into account when allocating memory. | +| test1.cpp:76:10:76:28 | call to WideCharToMultiByte | If the destination buffer is NULL and its size is not 0, then undefined behavior is possible. | +| test1.cpp:93:5:93:23 | call to WideCharToMultiByte | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible. | +| test2.cpp:15:5:15:12 | call to mbstowcs | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible. | +| test2.cpp:17:5:17:15 | call to _mbstowcs_l | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible. | +| test2.cpp:19:5:19:13 | call to mbsrtowcs | According to the definition of the functions, if the source buffer and the destination buffer are the same, undefined behavior is possible. | +| test2.cpp:35:3:35:10 | call to mbstowcs | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible. | +| test2.cpp:48:3:48:10 | call to mbstowcs | The buffer destination has a type other than char, you need to take this into account when allocating memory. | +| test2.cpp:60:3:60:10 | call to mbstowcs | The buffer destination has a type other than char, you need to take this into account when allocating memory. | +| test2.cpp:66:10:66:17 | call to mbstowcs | If the destination buffer is NULL and its size is not 0, then undefined behavior is possible. | +| test2.cpp:80:3:80:10 | call to mbstowcs | According to the definition of the functions, it is not guaranteed to write a null character at the end of the string, so access beyond the bounds of the destination buffer is possible. | +| test3.cpp:16:5:16:13 | access to array | This buffer may contain multibyte characters, so attempting to copy may result in part of the last character being lost. | +| test3.cpp:36:13:36:18 | ... + ... | This buffer may contain multibyte characters, so an attempt to copy may result in an overflow. | +| test3.cpp:47:3:47:24 | access to array | The size of the array element is greater than one byte, so the offset will point outside the array. | +| test.cpp:66:27:66:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | +| test.cpp:76:27:76:32 | call to mbtowc | Size can be less than maximum character length, use macro MB_CUR_MAX. | +| test.cpp:106:11:106:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:123:11:123:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:140:11:140:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:158:11:158:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:181:11:181:16 | call to mbtowc | Access beyond the allocated memory is possible, the length can change without changing the pointer. | +| test.cpp:197:11:197:16 | call to mbtowc | Maybe you're using the function's return value incorrectly. | From d929b1338b6f1f5a51e50510ed393c6931c9e282 Mon Sep 17 00:00:00 2001 From: Raul Garcia Date: Tue, 12 Jul 2022 11:55:06 -0700 Subject: [PATCH 352/736] Addressing API::Node feedback for all predicates --- ...nsafeUsageOfClientSideEncryptionVersion.ql | 49 ++++++++++++++++--- 1 file changed, 42 insertions(+), 7 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 442399e658f..3b35f2350bd 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -14,19 +14,54 @@ import python import semmle.python.ApiGraphs predicate isUnsafeClientSideAzureStorageEncryptionViaAttributes(Call call, AttrNode node) { - exists(ControlFlowNode ctrlFlowNode, AssignStmt astmt, Attribute a | + exists( + API::Node n, API::Node n2, Attribute a, AssignStmt astmt, API::Node uploadBlob, + ControlFlowNode ctrlFlowNode, string s + | + s in ["key_encryption_key", "key_resolver_function"] and + n = + API::moduleImport("azure") + .getMember("storage") + .getMember("blob") + .getMember("BlobClient") + .getReturn() + .getMember(s) and + n2 = + API::moduleImport("azure") + .getMember("storage") + .getMember("blob") + .getMember("BlobClient") + .getReturn() + .getMember("upload_blob") and + n.getAUse().asExpr() = a and astmt.getATarget() = a and - a.getAttr() in ["key_encryption_key", "key_resolver_function"] and a.getAFlowNode() = node and + uploadBlob = + API::moduleImport("azure") + .getMember("storage") + .getMember("blob") + .getMember("BlobClient") + .getReturn() + .getMember("upload_blob") and + uploadBlob.getACall().asExpr() = call and + ctrlFlowNode = call.getAFlowNode() and node.strictlyReaches(ctrlFlowNode) and node != ctrlFlowNode and - call.getAChildNode().(Attribute).getAttr() = "upload_blob" and - ctrlFlowNode = call.getAFlowNode() and - not astmt.getValue() instanceof None and - not exists(AssignStmt astmt2, Attribute a2, AttrNode encryptionVersionSet, StrConst uc | + not exists( + AssignStmt astmt2, Attribute a2, AttrNode encryptionVersionSet, StrConst uc, + API::Node encryptionVersion + | uc = astmt2.getValue() and uc.getText() in ["'2.0'", "2.0"] and - a2.getAttr() = "encryption_version" and + encryptionVersion = + API::moduleImport("azure") + .getMember("storage") + .getMember("blob") + .getMember("BlobClient") + .getReturn() + .getMember("encryption_version") and + encryptionVersion.getAUse().asExpr() = a2 and + astmt2.getATarget() = a2 and a2.getAFlowNode() = encryptionVersionSet and encryptionVersionSet.strictlyReaches(ctrlFlowNode) ) From a4adf067135b6f3573b6093c86572e8ab3b7449d Mon Sep 17 00:00:00 2001 From: Raul Garcia Date: Tue, 12 Jul 2022 13:51:12 -0700 Subject: [PATCH 353/736] Addressing feedback for the qhelp file. --- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index 45d919ec702..190ce5e25dc 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -4,12 +4,12 @@

    Azure Storage .NET, Java, and Python SDKs support encryption on the client with a customer-managed key that is maintained in Azure Key Vault or another key store.

    -

    Current release versions of the Azure Storage SDKs use cipher block chaining (CBC mode) for client-side encryption (referred to as v1).

    +

    The Azure Storage SDK version 12.18.0 or later supports version V2 for client-side encryption. All previous versions of Azure Storage SDK only support client-side encryption V1 which is unsafe.

    -

    Consider switching to v2 client-side encryption.

    +

    Consider switching to V2 client-side encryption.

    From 7facc63699ed709c25af772c981d2a4aa2d0072b Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 12 Jul 2022 22:59:48 +0000 Subject: [PATCH 354/736] remove predicate --- .../experimental/weak-params/WeakParams.ql | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index 6ea73aa42de..86ba72cbd91 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -38,21 +38,16 @@ class ActionControllerRequest extends DataFlow::Node { class WeakParams extends DataFlow::CallNode { WeakParams() { this.getReceiver() instanceof ActionControllerRequest and - allParamsAccess(this.asExpr().getExpr()) + ( + this.getMethodName() = "path_parametes" or + this.getMethodName() = "query_parameters" or + this.getMethodName() = "request_parameters" or + this.getMethodName() = "GET" or + this.getMethodName() = "POST" + ) } } -/** - * Holds call to a method that exposes or accesses all parameters from an inbound HTTP request - */ -predicate allParamsAccess(MethodCall call) { - call.getMethodName() = "path_parametes" or - call.getMethodName() = "query_parameters" or - call.getMethodName() = "request_parameters" or - call.getMethodName() = "GET" or - call.getMethodName() = "POST" -} - /** * 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 From db5f63b20876b26a73ea829fe3cba206ae26ac95 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 12 Jul 2022 23:14:16 +0000 Subject: [PATCH 355/736] add tests --- .../weak-params/WeakParams.expected | 20 +++++++++++++ .../experimental/weak-params/WeakParams.rb | 28 +++++++++++++++++-- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected index e69de29bb2d..14bd3e4e13f 100644 --- a/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected +++ b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected @@ -0,0 +1,20 @@ +edges +| WeakParams.rb:5:28:5:53 | call to request_parameters : | WeakParams.rb:5:28:5:59 | ...[...] | +| WeakParams.rb:10:28:10:51 | call to query_parameters : | WeakParams.rb:10:28:10:57 | ...[...] | +| WeakParams.rb:15:28:15:39 | call to POST : | WeakParams.rb:15:28:15:45 | ...[...] | +| WeakParams.rb:20:28:20:38 | call to GET : | WeakParams.rb:20:28:20:44 | ...[...] | +nodes +| WeakParams.rb:5:28:5:53 | call to request_parameters : | semmle.label | call to request_parameters : | +| WeakParams.rb:5:28:5:59 | ...[...] | semmle.label | ...[...] | +| WeakParams.rb:10:28:10:51 | call to query_parameters : | semmle.label | call to query_parameters : | +| WeakParams.rb:10:28:10:57 | ...[...] | semmle.label | ...[...] | +| WeakParams.rb:15:28:15:39 | call to POST : | semmle.label | call to POST : | +| WeakParams.rb:15:28:15:45 | ...[...] | semmle.label | ...[...] | +| WeakParams.rb:20:28:20:38 | call to GET : | semmle.label | call to GET : | +| WeakParams.rb:20:28:20:44 | ...[...] | semmle.label | ...[...] | +subpaths +#select +| WeakParams.rb:5:28:5:59 | ...[...] | WeakParams.rb:5:28:5:53 | call to request_parameters : | WeakParams.rb:5:28:5:59 | ...[...] | 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 | +| WeakParams.rb:10:28:10:57 | ...[...] | WeakParams.rb:10:28:10:51 | call to query_parameters : | WeakParams.rb:10:28:10:57 | ...[...] | 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 | +| WeakParams.rb:15:28:15:45 | ...[...] | WeakParams.rb:15:28:15:39 | call to POST : | WeakParams.rb:15:28:15:45 | ...[...] | 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 | +| WeakParams.rb:20:28:20:44 | ...[...] | WeakParams.rb:20:28:20:38 | call to GET : | WeakParams.rb:20:28:20:44 | ...[...] | 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 | diff --git a/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb index 81d57239f29..a5edef2e6dc 100644 --- a/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb +++ b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.rb @@ -1,18 +1,40 @@ class TestController < ActionController::Base + + # Should catch def create - TestObject.new(request.request_parameters) + TestObject.create(foo: request.request_parameters[:foo]) end + # Should catch def create_query - TestObject.new(request.query_parameters) + TestObject.create(foo: request.query_parameters[:foo]) end + # Should catch + def update_unsafe + TestObject.update(foo: request.POST[:foo]) + end + + # Should catch + def update_unsafe_get + TestObject.update(foo: request.GET[:foo]) + end + + # Should not catch def update TestObject.update(object_params) end - # + # strong params method def object_params params.require(:uuid).permit(:notes) end + + # Should not catch + def test_non_sink + puts request.request_parameters + end +end + +class TestObject < ActiveRecord::Base end \ No newline at end of file From b3f1a513d148eac778dfe66afc2c0254591e8b17 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Wed, 13 Jul 2022 00:25:19 +0000 Subject: [PATCH 356/736] Update tests --- .../ExampleController.rb | 48 ---------- .../ManuallyCheckHttpVerb.rb | 96 +++++++++++++++++++ .../manually-check-http-verb/NotController.rb | 17 ---- 3 files changed, 96 insertions(+), 65 deletions(-) delete mode 100644 ruby/ql/test/query-tests/experimental/manually-check-http-verb/ExampleController.rb create mode 100644 ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb delete mode 100644 ruby/ql/test/query-tests/experimental/manually-check-http-verb/NotController.rb diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ExampleController.rb b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ExampleController.rb deleted file mode 100644 index 7e4ab4a1a77..00000000000 --- a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ExampleController.rb +++ /dev/null @@ -1,48 +0,0 @@ -class ExampleController < ActionController::Base - # This function should have 6 vulnerable lines - def example_action - if request.get? - Example.find(params[:example_id]) - end - end -end - -class OtherController < ActionController::Base - def other_action - if env['REQUEST_METHOD'] == "GET" - Other.find(params[:id]) - end - end -end - -class ResourceController < ActionController::Base - # This method should have 1 vulnerable line, but is currently failing because it's not a comparison node - def resource_action - case env['REQUEST_METHOD'] - when "GET" - Resource.find(params[:id]) - when "POST" - Resource.new(params[:id], params[:details]) - end - end -end - -class SafeController < ActionController::Base - # this method should have no hits because controllers rely on conventional Rails routes - def index - Safe.find(params[:id]) - end - - def create - Safe.new(params[:id], params[:details]) - end - - def update - Safe.update(params[:id], params[:details]) - end - - def delete - s = Safe.find(params[:id]) - s.delete - end -end \ No newline at end of file diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb new file mode 100644 index 00000000000..aa10ebc69aa --- /dev/null +++ b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb @@ -0,0 +1,96 @@ +class ExampleController < ActionController::Base + # Should find + def example_action + if request.get? + Resource.find(id: params[:example_id]) + end + end + + # Should find + def other_action + if request.env['REQUEST_METHOD'] == "GET" + Resource.find(id: params[:id]) + end + end + + # Should find + def foo + if request.request_method == "GET" + Resource.find(id: params[:id]) + end + end + + # Should find + def bar + if request.method == "GET" + Resource.find(id: params[:id]) + end + end + + # Should find + def baz + if request.raw_request_method == "GET" + Resource.find(id: params[:id]) + end + end + + # Should find + def foobarbaz + if request.request_method_symbol == :GET + Resource.find(id: params[:id]) + end + end + + # Should find + def resource_action + case request.env['REQUEST_METHOD'] + when "GET" + Resource.find(id: params[:id]) + when "POST" + Resource.new(id: params[:id], details: params[:details]) + end + end + + +end + +class SafeController < ActionController::Base + # this class should have no hits because controllers rely on conventional Rails routes + def index + Resource.find(id: params[:id]) + end + + def create + Resource.new(id: params[:id], details: params[:details]) + end + + def update + Resource.update(id: params[:id], details: params[:details]) + end + + def delete + s = Resource.find(id: params[:id]) + s.delete + end +end + +# There should be no hits from this class because it does not inherit from ActionController +class NotAController + def example_action + if request.get? + Resource.find(params[:example_id]) + end + end + + def resource_action + case env['REQUEST_METHOD'] + when "GET" + Resource.find(params[:id]) + when "POST" + Resource.new(params[:id], params[:details]) + end + end +end + +class Resource < ActiveRecord::Base +end \ No newline at end of file diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/NotController.rb b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/NotController.rb deleted file mode 100644 index 78e194245e2..00000000000 --- a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/NotController.rb +++ /dev/null @@ -1,17 +0,0 @@ -# There should be no hits from this class because it does not inherit from ActionController -class NotAController - def example_action - if request.get? - Example.find(params[:example_id]) - end - end - - def resource_action - case env['REQUEST_METHOD'] - when "GET" - Resource.find(params[:id]) - when "POST" - Resource.new(params[:id], params[:details]) - end - end -end \ No newline at end of file From 712900257342ffbfbb788c6491e955c7f10c3dc1 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Wed, 13 Jul 2022 00:33:58 +0000 Subject: [PATCH 357/736] tweak tests more --- .../ManuallyCheckHttpVerb.ql | 10 +++++++++- .../ManuallyCheckHttpVerb.rb | 15 ++++++++++----- 2 files changed, 19 insertions(+), 6 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 5e1db6f0de7..72574e148d2 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -18,7 +18,15 @@ import codeql.ruby.frameworks.ActionController class Request extends DataFlow::CallNode { Request() { this.getMethodName() = "request" and - this.asExpr().getExpr() instanceof ActionControllerActionMethod + this.asExpr().getExpr().getEnclosingMethod() instanceof ActionControllerActionMethod + } +} + +// `request.env` +class RequestEnvMethod extends DataFlow::CallNode { + RequestEnvMethod() { + this.getMethodName() = "env" and + any(Request r).flowsTo(this.getReceiver()) } } diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb index aa10ebc69aa..ad0f5b45566 100644 --- a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb +++ b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb @@ -8,35 +8,40 @@ class ExampleController < ActionController::Base # Should find def other_action - if request.env['REQUEST_METHOD'] == "GET" + method = request.env['REQUEST_METHOD'] + if method == "GET" Resource.find(id: params[:id]) end end # Should find def foo - if request.request_method == "GET" + method = request.request_method + if method == "GET" Resource.find(id: params[:id]) end end # Should find def bar - if request.method == "GET" + method = request.method + if method == "GET" Resource.find(id: params[:id]) end end # Should find def baz - if request.raw_request_method == "GET" + method = request.raw_request_method + if method == "GET" Resource.find(id: params[:id]) end end # Should find def foobarbaz - if request.request_method_symbol == :GET + method = request.request_method_symbol + if method == :GET Resource.find(id: params[:id]) end end From 0dbb03f732b5b5fcbdf54555331f4f014925e92f Mon Sep 17 00:00:00 2001 From: Raul Garcia Date: Tue, 12 Jul 2022 21:49:19 -0700 Subject: [PATCH 358/736] Adding CVE information. --- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp | 2 +- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 +- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp | 2 +- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 +- .../Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index e0ee017cb14..54c9a4998b4 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -22,7 +22,7 @@ Azure Storage Client Encryption Blog.
  • - CVE-2022-PENDING + CVE-2022-30187
  • diff --git a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index b150ca71060..eb1cb673ed2 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/csharp/ql/src/experimental/Security Features/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -1,5 +1,5 @@ /** - * @name Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). + * @name Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-30187). * @description Unsafe usage of v1 version of Azure Storage client-side encryption, please refer to http://aka.ms/azstorageclientencryptionblog * @kind problem * @tags security diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index 190ce5e25dc..b6884aed914 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -22,7 +22,7 @@ Azure Storage Client Encryption Blog.
  • - CVE-2022-PENDING + CVE-2022-30187
  • diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index 5977d29f26e..ba78fa56423 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -1,5 +1,5 @@ /** - * @name Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-PENDING). + * @name Unsafe usage of v1 version of Azure Storage client-side encryption (CVE-2022-30187). * @description Unsafe usage of v1 version of Azure Storage client-side encryption, please refer to http://aka.ms/azstorageclientencryptionblog * @kind problem * @tags security diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp index eaf49f371e6..a2f9a2213c3 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.qhelp @@ -22,7 +22,7 @@ Azure Storage Client Encryption Blog.
  • - CVE-2022-PENDING + CVE-2022-30187
  • From 706d1d2eee83ed3b71545801c080e1688469b839 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Thu, 12 May 2022 15:12:18 +0100 Subject: [PATCH 359/736] Ruby: Make StringArrayInclusion more sensitive We now recognise the following pattern as a barrier guard for `x`: values = ["foo", "bar"] if values.include? x sink x end --- .../lib/codeql/ruby/controlflow/CfgNodes.qll | 3 + .../codeql/ruby/dataflow/BarrierGuards.qll | 25 +++++-- .../barrier-guards/barrier-guards.expected | 8 ++ .../dataflow/barrier-guards/barrier-guards.rb | 73 +++++++++++++++++++ 4 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected create mode 100644 ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb diff --git a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll index efb69af39eb..29668b82e70 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll @@ -374,6 +374,9 @@ module ExprNodes { MethodCallCfgNode() { super.getExpr() instanceof MethodCall } override MethodCall getExpr() { result = super.getExpr() } + + /** Gets the name of this method call. */ + string getMethodName() { result = this.getExpr().getMethodName() } } private class CaseExprChildMapping extends ExprChildMapping, CaseExpr { diff --git a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll index d55bd9af278..506f95b5b45 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll @@ -3,6 +3,8 @@ private import ruby private import codeql.ruby.DataFlow private import codeql.ruby.CFG +private import codeql.ruby.controlflow.CfgNodes +private import codeql.ruby.dataflow.SSA private predicate stringConstCompare(CfgNodes::ExprCfgNode g, CfgNode e, boolean branch) { exists(CfgNodes::ExprNodes::ComparisonOperationCfgNode c | @@ -133,13 +135,24 @@ deprecated class StringConstArrayInclusionCall extends DataFlow::BarrierGuard, private CfgNode checkedNode; StringConstArrayInclusionCall() { - exists(ArrayLiteral aLit | - this.getExpr().getMethodName() = "include?" and - [this.getExpr().getReceiver(), this.getExpr().getReceiver().(ConstantReadAccess).getValue()] = - aLit + this.getMethodName() = "include?" and + this.getArgument(0) = checkedNode and + exists(ExprNodes::ArrayLiteralCfgNode arr | + // [...].include? + this.getReceiver() = arr + or + // C = [...] + // C.include? + this.getReceiver().(ExprNodes::ConstantReadAccessCfgNode).getExpr().getValue().getDesugared() = + arr.getExpr() + or + // x = [...] + // x.include? + exists(Ssa::WriteDefinition def | def.getARead() = this.getReceiver() and def.assigns(arr)) | - forall(Expr elem | elem = aLit.getAnElement() | elem instanceof StringLiteral) and - this.getArgument(0) = checkedNode + forall(ExprCfgNode elem | elem = arr.getAnArgument() | + elem instanceof ExprNodes::StringLiteralCfgNode + ) ) } 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 new file mode 100644 index 00000000000..dcbe2c76d80 --- /dev/null +++ b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.expected @@ -0,0 +1,8 @@ +| 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:9:4:9:24 | call to include? | barrier-guards.rb:10:5:10:7 | foo | barrier-guards.rb:9:21:9:23 | foo | true | +| barrier-guards.rb:15:4:15:15 | ... != ... | barrier-guards.rb:18:5:18:7 | foo | barrier-guards.rb:15:4:15:6 | foo | false | +| barrier-guards.rb:21:8:21:19 | ... == ... | barrier-guards.rb:24:5:24:7 | foo | barrier-guards.rb:21:8:21:10 | foo | true | +| barrier-guards.rb:27:8:27:19 | ... != ... | barrier-guards.rb:28:5:28:7 | foo | barrier-guards.rb:27:8:27:10 | foo | false | +| barrier-guards.rb:37:4:37:20 | call to include? | barrier-guards.rb:38:5:38:7 | foo | barrier-guards.rb:37:17:37:19 | foo | true | +| barrier-guards.rb:43:4:43:15 | ... == ... | barrier-guards.rb:45:9:45:11 | foo | barrier-guards.rb:43:4:43:6 | foo | true | +| barrier-guards.rb:69:4:69:21 | call to include? | barrier-guards.rb:70:5:70:7 | foo | barrier-guards.rb:69:18:69:20 | foo | true | diff --git a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb new file mode 100644 index 00000000000..78ef5e7bf19 --- /dev/null +++ b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb @@ -0,0 +1,73 @@ +foo = "foo" + +if foo == "foo" + foo +else + foo +end + +if ["foo"].include?(foo) + foo +else + foo +end + +if foo != "foo" + foo +else + foo +end + +unless foo == "foo" + foo +else + foo +end + +unless foo != "foo" + foo +else + foo +end + +foo + +FOO = ["foo"] + +if FOO.include?(foo) + foo +else + foo +end + +if foo == "foo" + capture { + foo # guarded + } +end + +if foo == "foo" + capture { + foo = "bar" + foo # not guarded + } +end + +if foo == "foo" + my_lambda = -> () { + foo # not guarded + } + + foo = "bar" + + my_lambda() +end + +foos = ["foo"] +bars = ["bar"] + +if foos.include?(foo) + foo +else + foo +end \ No newline at end of file From 301914d80c41db9f662740171755a391228ea448 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Thu, 12 May 2022 15:41:55 +0100 Subject: [PATCH 360/736] Ruby: Add an extra barrier guard test --- .../barrier-guards/barrier-guards.expected | 2 +- .../dataflow/barrier-guards/barrier-guards.rb | 23 +++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) 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 dcbe2c76d80..fcf95346a5a 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 @@ -5,4 +5,4 @@ | barrier-guards.rb:27:8:27:19 | ... != ... | barrier-guards.rb:28:5:28:7 | foo | barrier-guards.rb:27:8:27:10 | foo | false | | barrier-guards.rb:37:4:37:20 | call to include? | barrier-guards.rb:38:5:38:7 | foo | barrier-guards.rb:37:17:37:19 | foo | true | | barrier-guards.rb:43:4:43:15 | ... == ... | barrier-guards.rb:45:9:45:11 | foo | barrier-guards.rb:43:4:43:6 | foo | true | -| barrier-guards.rb:69:4:69:21 | call to include? | barrier-guards.rb:70:5:70:7 | foo | barrier-guards.rb:69:18:69:20 | foo | true | +| barrier-guards.rb:70:4:70:21 | call to include? | barrier-guards.rb:71:5:71:7 | foo | barrier-guards.rb:70:18:70:20 | foo | true | diff --git a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb index 78ef5e7bf19..a3f13b48639 100644 --- a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb +++ b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb @@ -63,11 +63,30 @@ if foo == "foo" my_lambda() end +foos = nil foos = ["foo"] -bars = ["bar"] +bars = NotAnArray.new if foos.include?(foo) foo else foo -end \ No newline at end of file +end + +if bars.include?(foo) + foo +else + foo +end + +bars = ["bar"] + +if condition + bars = nil +end + +if bars.include?(foo) + foo +else + foo +end From b5a3d3c4886dce9892ec25eacf474084a0d85463 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Mon, 23 May 2022 13:34:06 +0100 Subject: [PATCH 361/736] Ruby: Extract isArrayConstant This predicate might be useful elsewhere. --- .../lib/codeql/ruby/ast/internal/Constant.qll | 20 +++++++++++++++++++ .../codeql/ruby/dataflow/BarrierGuards.qll | 15 ++------------ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll index fb7cb3737b9..00e4472c7c1 100644 --- a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll +++ b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll @@ -509,3 +509,23 @@ private module Cached { } import Cached + +/** + * Holds if `e` is an array constructed from an array literal. + * Example: + * ```rb + * [1, 2, 3] + * C = [1, 2, 3]; C + * x = [1, 2, 3]; x + * ``` + */ +predicate isArrayConstant(ExprCfgNode e, ArrayLiteralCfgNode arr) { + // [...] + e = arr + or + // C = [...]; C + e.(ExprNodes::ConstantReadAccessCfgNode).getExpr().getValue().getDesugared() = arr.getExpr() + or + // x = [...]; x + exists(Ssa::WriteDefinition def | def.getARead() = e and def.assigns(arr)) +} diff --git a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll index 506f95b5b45..52e9c48779d 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll @@ -5,6 +5,7 @@ private import codeql.ruby.DataFlow private import codeql.ruby.CFG private import codeql.ruby.controlflow.CfgNodes private import codeql.ruby.dataflow.SSA +private import codeql.ruby.ast.internal.Constant private predicate stringConstCompare(CfgNodes::ExprCfgNode g, CfgNode e, boolean branch) { exists(CfgNodes::ExprNodes::ComparisonOperationCfgNode c | @@ -137,19 +138,7 @@ deprecated class StringConstArrayInclusionCall extends DataFlow::BarrierGuard, StringConstArrayInclusionCall() { this.getMethodName() = "include?" and this.getArgument(0) = checkedNode and - exists(ExprNodes::ArrayLiteralCfgNode arr | - // [...].include? - this.getReceiver() = arr - or - // C = [...] - // C.include? - this.getReceiver().(ExprNodes::ConstantReadAccessCfgNode).getExpr().getValue().getDesugared() = - arr.getExpr() - or - // x = [...] - // x.include? - exists(Ssa::WriteDefinition def | def.getARead() = this.getReceiver() and def.assigns(arr)) - | + exists(ExprNodes::ArrayLiteralCfgNode arr | isArrayConstant(this.getReceiver(), arr) | forall(ExprCfgNode elem | elem = arr.getAnArgument() | elem instanceof ExprNodes::StringLiteralCfgNode ) From 63dcce9a31dbd5af563b970308e3108712232bf1 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Thu, 30 Jun 2022 16:15:56 +1200 Subject: [PATCH 362/736] Ruby: Refactor isArrayConstant --- .../lib/codeql/ruby/ast/internal/Constant.qll | 37 ++++++++++++++++--- .../ast/constants/constants.expected | 16 ++++++++ .../library-tests/ast/constants/constants.ql | 3 ++ .../library-tests/ast/constants/constants.rb | 8 ++++ 4 files changed, 58 insertions(+), 6 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll index 00e4472c7c1..ae1d9f5989c 100644 --- a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll +++ b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll @@ -36,7 +36,7 @@ private import ExprNodes * constant value in some cases. */ private module Propagation { - private ExprCfgNode getSource(VariableReadAccessCfgNode read) { + ExprCfgNode getSource(VariableReadAccessCfgNode read) { exists(Ssa::WriteDefinition def | def.assigns(result) and read = def.getARead() @@ -511,7 +511,8 @@ private module Cached { import Cached /** - * Holds if `e` is an array constructed from an array literal. + * Holds if the control flow node `e` refers to an array constructed from the + * array literal `arr`. * Example: * ```rb * [1, 2, 3] @@ -523,9 +524,33 @@ predicate isArrayConstant(ExprCfgNode e, ArrayLiteralCfgNode arr) { // [...] e = arr or - // C = [...]; C - e.(ExprNodes::ConstantReadAccessCfgNode).getExpr().getValue().getDesugared() = arr.getExpr() + // e = [...]; e + isArrayConstant(getSource(e), arr) or - // x = [...]; x - exists(Ssa::WriteDefinition def | def.getARead() = e and def.assigns(arr)) + isArrayExpr(e.getExpr(), arr) +} + +/** + * Holds if the expression `e` refers to an array constructed from the array literal `arr`. + */ +predicate isArrayExpr(Expr e, ArrayLiteralCfgNode arr) { + // e = [...] + e = arr.getExpr() + or + // Like above, but handles the desugaring of array literals to Array.[] calls. + e.getDesugared() = arr.getExpr() + or + // A = [...]; A + // A = a; A + isArrayExpr(e.(ConstantReadAccess).getValue(), arr) + or + // Recurse via CFG nodes. Necessary for example in: + // a = [...] + // A = a + // A + // + // We map from A to a via ConstantReadAccess::getValue, yielding the Expr a. + // To get to [...] we need to go via getSource(ExprCfgNode e), so we find a + // CFG node for a and call `isArrayConstant`. + isArrayConstant(e.getAControlFlowNode(), arr) } diff --git a/ruby/ql/test/library-tests/ast/constants/constants.expected b/ruby/ql/test/library-tests/ast/constants/constants.expected index 89b5512921c..0fe1b324232 100644 --- a/ruby/ql/test/library-tests/ast/constants/constants.expected +++ b/ruby/ql/test/library-tests/ast/constants/constants.expected @@ -61,6 +61,13 @@ constantAccess | constants.rb:71:5:71:14 | FOURTY_SIX | write | FOURTY_SIX | ConstantAssignment | | constants.rb:73:18:73:21 | Mod3 | read | Mod3 | ConstantReadAccess | | constants.rb:73:18:73:33 | FOURTY_SIX | read | FOURTY_SIX | ConstantReadAccess | +| constants.rb:78:5:78:13 | Array | read | Array | ConstantReadAccess | +| constants.rb:79:1:79:1 | A | write | A | ConstantAssignment | +| constants.rb:79:5:79:13 | Array | read | Array | ConstantReadAccess | +| constants.rb:80:1:80:1 | B | write | B | ConstantAssignment | +| constants.rb:81:1:81:1 | C | write | C | ConstantAssignment | +| constants.rb:81:5:81:5 | A | read | A | ConstantReadAccess | +| constants.rb:82:5:82:5 | B | read | B | ConstantReadAccess | getConst | constants.rb:1:1:15:3 | ModuleA | CONST_B | constants.rb:6:15:6:23 | "const_b" | | constants.rb:1:1:15:3 | ModuleA | FOURTY_FOUR | constants.rb:53:17:53:29 | "fourty-four" | @@ -133,3 +140,12 @@ constantWriteAccessQualifiedName | constants.rb:70:3:72:5 | Mod5 | Mod3::Mod5 | | constants.rb:71:5:71:14 | FOURTY_SIX | Mod1::Mod3::Mod5::FOURTY_SIX | | constants.rb:71:5:71:14 | FOURTY_SIX | Mod3::Mod5::FOURTY_SIX | +| constants.rb:79:1:79:1 | A | A | +| constants.rb:80:1:80:1 | B | B | +| constants.rb:81:1:81:1 | C | C | +arrayConstant +| constants.rb:20:13:20:37 | call to [] | constants.rb:20:13:20:37 | call to [] | +| constants.rb:78:5:78:13 | call to [] | constants.rb:78:5:78:13 | call to [] | +| constants.rb:79:5:79:13 | call to [] | constants.rb:79:5:79:13 | call to [] | +| constants.rb:80:5:80:5 | a | constants.rb:78:5:78:13 | call to [] | +| constants.rb:81:5:81:5 | A | constants.rb:79:5:79:13 | call to [] | diff --git a/ruby/ql/test/library-tests/ast/constants/constants.ql b/ruby/ql/test/library-tests/ast/constants/constants.ql index 66c0d230d99..37140a957a3 100644 --- a/ruby/ql/test/library-tests/ast/constants/constants.ql +++ b/ruby/ql/test/library-tests/ast/constants/constants.ql @@ -1,5 +1,6 @@ import ruby import codeql.ruby.ast.internal.Module as M +import codeql.ruby.ast.internal.Constant query predicate constantAccess(ConstantAccess a, string kind, string name, string cls) { ( @@ -20,3 +21,5 @@ query predicate constantValue(ConstantReadAccess a, Expr e) { e = a.getValue() } query predicate constantWriteAccessQualifiedName(ConstantWriteAccess w, string qualifiedName) { w.getAQualifiedName() = qualifiedName } + +query predicate arrayConstant = isArrayConstant/2; diff --git a/ruby/ql/test/library-tests/ast/constants/constants.rb b/ruby/ql/test/library-tests/ast/constants/constants.rb index 08e0d4216a9..fce55bccd00 100644 --- a/ruby/ql/test/library-tests/ast/constants/constants.rb +++ b/ruby/ql/test/library-tests/ast/constants/constants.rb @@ -72,3 +72,11 @@ module Mod4 end @@fourty_six = Mod3::FOURTY_SIX end + +# Array constants + +a = [1, 2, 3] +A = [1, 2, 3] +B = a +C = A +b = B \ No newline at end of file From 5f17d8370c1b8f3b547ba290c970bd5e8691952d Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 12 Jul 2022 13:19:13 +1200 Subject: [PATCH 363/736] Ruby: Small change to isArrayExpr --- .../lib/codeql/ruby/ast/internal/Constant.qll | 7 +++++- .../ast/constants/constants.expected | 22 +++++++++++++++++++ .../library-tests/ast/constants/constants.rb | 7 +++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll index ae1d9f5989c..e7e303a9fa6 100644 --- a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll +++ b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll @@ -552,5 +552,10 @@ predicate isArrayExpr(Expr e, ArrayLiteralCfgNode arr) { // We map from A to a via ConstantReadAccess::getValue, yielding the Expr a. // To get to [...] we need to go via getSource(ExprCfgNode e), so we find a // CFG node for a and call `isArrayConstant`. - isArrayConstant(e.getAControlFlowNode(), arr) + // + // The use of `forex` is intended to ensure that a is an array constant in all + // control flow paths. + // Note(hmac): I don't think this is necessary, as `getSource` will not return + // results if the source is a phi node. + forex(ExprCfgNode n | n = e.getAControlFlowNode() | isArrayConstant(n, arr)) } diff --git a/ruby/ql/test/library-tests/ast/constants/constants.expected b/ruby/ql/test/library-tests/ast/constants/constants.expected index 0fe1b324232..3f189cc26fd 100644 --- a/ruby/ql/test/library-tests/ast/constants/constants.expected +++ b/ruby/ql/test/library-tests/ast/constants/constants.expected @@ -78,23 +78,41 @@ getConst | constants.rb:54:3:58:5 | ModuleA::ModuleB::ClassB | FOURTY_ONE | constants.rb:48:18:48:19 | 41 | | constants.rb:62:3:64:5 | Mod1::Mod3 | FOURTY_FIVE | constants.rb:63:19:63:20 | 45 | | constants.rb:70:3:72:5 | Mod1::Mod3::Mod5 | FOURTY_SIX | constants.rb:71:18:71:19 | 46 | +| file://:0:0:0:0 | Object | A | constants.rb:79:5:79:13 | [...] | +| file://:0:0:0:0 | Object | B | constants.rb:80:5:80:5 | a | +| file://:0:0:0:0 | Object | C | constants.rb:81:5:81:5 | A | | file://:0:0:0:0 | Object | GREETING | constants.rb:17:12:17:64 | ... + ... | lookupConst | constants.rb:1:1:15:3 | ModuleA | CONST_B | constants.rb:6:15:6:23 | "const_b" | | constants.rb:1:1:15:3 | ModuleA | FOURTY_FOUR | constants.rb:53:17:53:29 | "fourty-four" | +| constants.rb:2:5:4:7 | ModuleA::ClassA | A | constants.rb:79:5:79:13 | [...] | +| constants.rb:2:5:4:7 | ModuleA::ClassA | B | constants.rb:80:5:80:5 | a | +| constants.rb:2:5:4:7 | ModuleA::ClassA | C | constants.rb:81:5:81:5 | A | | constants.rb:2:5:4:7 | ModuleA::ClassA | CONST_A | constants.rb:3:19:3:27 | "const_a" | | constants.rb:2:5:4:7 | ModuleA::ClassA | GREETING | constants.rb:17:12:17:64 | ... + ... | | constants.rb:8:5:14:7 | ModuleA::ModuleB | MAX_SIZE | constants.rb:39:30:39:33 | 1024 | +| constants.rb:12:9:13:11 | ModuleA::ModuleB::ClassC | A | constants.rb:79:5:79:13 | [...] | +| constants.rb:12:9:13:11 | ModuleA::ModuleB::ClassC | B | constants.rb:80:5:80:5 | a | +| constants.rb:12:9:13:11 | ModuleA::ModuleB::ClassC | C | constants.rb:81:5:81:5 | A | | constants.rb:12:9:13:11 | ModuleA::ModuleB::ClassC | GREETING | constants.rb:17:12:17:64 | ... + ... | +| constants.rb:31:1:33:3 | ModuleA::ClassD | A | constants.rb:79:5:79:13 | [...] | +| constants.rb:31:1:33:3 | ModuleA::ClassD | B | constants.rb:80:5:80:5 | a | +| constants.rb:31:1:33:3 | ModuleA::ClassD | C | constants.rb:81:5:81:5 | A | | constants.rb:31:1:33:3 | ModuleA::ClassD | CONST_A | constants.rb:3:19:3:27 | "const_a" | | constants.rb:31:1:33:3 | ModuleA::ClassD | FOURTY_TWO | constants.rb:32:16:32:17 | 42 | | constants.rb:31:1:33:3 | ModuleA::ClassD | GREETING | constants.rb:17:12:17:64 | ... + ... | | constants.rb:35:1:37:3 | ModuleA::ModuleC | FOURTY_THREE | constants.rb:36:18:36:19 | 43 | +| constants.rb:54:3:58:5 | ModuleA::ModuleB::ClassB | A | constants.rb:79:5:79:13 | [...] | +| constants.rb:54:3:58:5 | ModuleA::ModuleB::ClassB | B | constants.rb:80:5:80:5 | a | +| constants.rb:54:3:58:5 | ModuleA::ModuleB::ClassB | C | constants.rb:81:5:81:5 | A | | constants.rb:54:3:58:5 | ModuleA::ModuleB::ClassB | FOURTY_FOUR | constants.rb:56:19:56:20 | 44 | | constants.rb:54:3:58:5 | ModuleA::ModuleB::ClassB | FOURTY_ONE | constants.rb:48:18:48:19 | 41 | | constants.rb:54:3:58:5 | ModuleA::ModuleB::ClassB | GREETING | constants.rb:17:12:17:64 | ... + ... | | constants.rb:62:3:64:5 | Mod1::Mod3 | FOURTY_FIVE | constants.rb:63:19:63:20 | 45 | | constants.rb:70:3:72:5 | Mod1::Mod3::Mod5 | FOURTY_SIX | constants.rb:71:18:71:19 | 46 | +| file://:0:0:0:0 | Object | A | constants.rb:79:5:79:13 | [...] | +| file://:0:0:0:0 | Object | B | constants.rb:80:5:80:5 | a | +| file://:0:0:0:0 | Object | C | constants.rb:81:5:81:5 | A | | file://:0:0:0:0 | Object | GREETING | constants.rb:17:12:17:64 | ... + ... | constantValue | constants.rb:17:22:17:45 | CONST_A | constants.rb:3:19:3:27 | "const_a" | @@ -108,6 +126,8 @@ constantValue | constants.rb:57:21:57:31 | FOURTY_FOUR | constants.rb:53:17:53:29 | "fourty-four" | | constants.rb:57:21:57:31 | FOURTY_FOUR | constants.rb:56:19:56:20 | 44 | | constants.rb:65:19:65:35 | FOURTY_FIVE | constants.rb:63:19:63:20 | 45 | +| constants.rb:81:5:81:5 | A | constants.rb:79:5:79:13 | [...] | +| constants.rb:82:5:82:5 | B | constants.rb:80:5:80:5 | a | constantWriteAccessQualifiedName | constants.rb:1:1:15:3 | ModuleA | ModuleA | | constants.rb:2:5:4:7 | ClassA | ModuleA::ClassA | @@ -149,3 +169,5 @@ arrayConstant | constants.rb:79:5:79:13 | call to [] | constants.rb:79:5:79:13 | call to [] | | constants.rb:80:5:80:5 | a | constants.rb:78:5:78:13 | call to [] | | constants.rb:81:5:81:5 | A | constants.rb:79:5:79:13 | call to [] | +| constants.rb:82:5:82:5 | B | constants.rb:78:5:78:13 | call to [] | +| constants.rb:85:7:85:7 | b | constants.rb:78:5:78:13 | call to [] | diff --git a/ruby/ql/test/library-tests/ast/constants/constants.rb b/ruby/ql/test/library-tests/ast/constants/constants.rb index fce55bccd00..359a861eb1e 100644 --- a/ruby/ql/test/library-tests/ast/constants/constants.rb +++ b/ruby/ql/test/library-tests/ast/constants/constants.rb @@ -79,4 +79,9 @@ a = [1, 2, 3] A = [1, 2, 3] B = a C = A -b = B \ No newline at end of file +b = B + +if condition + c = b +end +c # not recognised From 4cfaa86d5d4329d32455fd0c83aba6f80de1f066 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Wed, 13 Jul 2022 12:39:47 +1200 Subject: [PATCH 364/736] Ruby: Update new-style barrier-guard --- ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll index 52e9c48779d..b86f976d119 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll @@ -84,13 +84,16 @@ deprecated class StringConstCompare extends DataFlow::BarrierGuard, } private predicate stringConstArrayInclusionCall(CfgNodes::ExprCfgNode g, CfgNode e, boolean branch) { - exists(CfgNodes::ExprNodes::MethodCallCfgNode mc, ArrayLiteral aLit | + exists(CfgNodes::ExprNodes::MethodCallCfgNode mc | mc = g and mc.getExpr().getMethodName() = "include?" and - [mc.getExpr().getReceiver(), mc.getExpr().getReceiver().(ConstantReadAccess).getValue()] = aLit - | - forall(Expr elem | elem = aLit.getAnElement() | elem instanceof StringLiteral) and mc.getArgument(0) = e + | + exists(ExprNodes::ArrayLiteralCfgNode arr | isArrayConstant(mc.getReceiver(), arr) | + forall(ExprCfgNode elem | elem = arr.getAnArgument() | + elem instanceof ExprNodes::StringLiteralCfgNode + ) + ) ) and branch = true } From b9fc82a741c74b2b812cfe9a2e1ae8ae47f14931 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Wed, 13 Jul 2022 12:56:03 +1200 Subject: [PATCH 365/736] Ruby: Test both old and new-style barrier guards --- .../codeql/ruby/dataflow/BarrierGuards.qll | 24 ++----------------- .../barrier-guards/barrier-guards.expected | 11 +++++++++ .../dataflow/barrier-guards/barrier-guards.ql | 16 +++++++++++++ 3 files changed, 29 insertions(+), 22 deletions(-) create mode 100644 ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql diff --git a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll index b86f976d119..e32eb11fa1a 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll @@ -64,19 +64,7 @@ deprecated class StringConstCompare extends DataFlow::BarrierGuard, // The value of the condition that results in the node being validated. private boolean checkedBranch; - StringConstCompare() { - exists(CfgNodes::ExprNodes::StringLiteralCfgNode strLitNode | - this.getExpr() instanceof EqExpr and checkedBranch = true - or - this.getExpr() instanceof CaseEqExpr and checkedBranch = true - or - this.getExpr() instanceof NEExpr and checkedBranch = false - | - this.getLeftOperand() = strLitNode and this.getRightOperand() = checkedNode - or - this.getLeftOperand() = checkedNode and this.getRightOperand() = strLitNode - ) - } + StringConstCompare() { stringConstCompare(this, checkedNode, checkedBranch) } override predicate checks(CfgNode expr, boolean branch) { expr = checkedNode and branch = checkedBranch @@ -138,15 +126,7 @@ deprecated class StringConstArrayInclusionCall extends DataFlow::BarrierGuard, CfgNodes::ExprNodes::MethodCallCfgNode { private CfgNode checkedNode; - StringConstArrayInclusionCall() { - this.getMethodName() = "include?" and - this.getArgument(0) = checkedNode and - exists(ExprNodes::ArrayLiteralCfgNode arr | isArrayConstant(this.getReceiver(), arr) | - forall(ExprCfgNode elem | elem = arr.getAnArgument() | - elem instanceof ExprNodes::StringLiteralCfgNode - ) - ) - } + StringConstArrayInclusionCall() { stringConstArrayInclusionCall(this, checkedNode, _) } override predicate checks(CfgNode expr, boolean branch) { expr = checkedNode and branch = true } } 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 fcf95346a5a..ea99ed7d669 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,3 +1,5 @@ +WARNING: Type BarrierGuard has been deprecated and may be removed in future (barrier-guards.ql:8,3-15) +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:9:4:9:24 | call to include? | barrier-guards.rb:10:5:10:7 | foo | barrier-guards.rb:9:21:9:23 | foo | true | | barrier-guards.rb:15:4:15:15 | ... != ... | barrier-guards.rb:18:5:18:7 | foo | barrier-guards.rb:15:4:15:6 | foo | false | @@ -6,3 +8,12 @@ | barrier-guards.rb:37:4:37:20 | call to include? | barrier-guards.rb:38:5:38:7 | foo | barrier-guards.rb:37:17:37:19 | foo | true | | barrier-guards.rb:43:4:43:15 | ... == ... | barrier-guards.rb:45:9:45:11 | foo | barrier-guards.rb:43:4:43:6 | foo | true | | barrier-guards.rb:70:4:70:21 | call to include? | barrier-guards.rb:71:5:71:7 | foo | barrier-guards.rb:70:18:70:20 | foo | true | +newStyleBarrierGuards +| barrier-guards.rb:4:5:4:7 | foo | +| barrier-guards.rb:10:5:10:7 | foo | +| barrier-guards.rb:18:5:18:7 | foo | +| barrier-guards.rb:24:5:24:7 | foo | +| barrier-guards.rb:28:5:28:7 | foo | +| barrier-guards.rb:38:5:38:7 | foo | +| barrier-guards.rb:45:9:45:11 | foo | +| barrier-guards.rb:71:5:71:7 | foo | diff --git a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql new file mode 100644 index 00000000000..84a962ade35 --- /dev/null +++ b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql @@ -0,0 +1,16 @@ +import codeql.ruby.dataflow.internal.DataFlowPublic +import codeql.ruby.dataflow.BarrierGuards +import codeql.ruby.controlflow.CfgNodes +import codeql.ruby.controlflow.ControlFlowGraph +import codeql.ruby.DataFlow + +query predicate oldStyleBarrierGuards( + BarrierGuard g, DataFlow::Node guardedNode, ExprCfgNode expr, boolean branch +) { + g.checks(expr, branch) and guardedNode = g.getAGuardedNode() +} + +query predicate newStyleBarrierGuards(DataFlow::Node n) { + n instanceof StringConstCompareBarrier or + n instanceof StringConstArrayInclusionCallBarrier +} From ea95e2e1d0a65ba680b2cb3f2b8796c2633aef59 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Wed, 13 Jul 2022 18:01:06 +1200 Subject: [PATCH 366/736] Ruby: Use InclusionTests library in barrier guards --- .../lib/codeql/ruby/dataflow/BarrierGuards.qll | 18 ++++++++++-------- .../barrier-guards/barrier-guards.expected | 3 +++ .../dataflow/barrier-guards/barrier-guards.rb | 12 ++++++++++++ 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll index e32eb11fa1a..c79e4311489 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/BarrierGuards.qll @@ -6,6 +6,7 @@ private import codeql.ruby.CFG private import codeql.ruby.controlflow.CfgNodes private import codeql.ruby.dataflow.SSA private import codeql.ruby.ast.internal.Constant +private import codeql.ruby.InclusionTests private predicate stringConstCompare(CfgNodes::ExprCfgNode g, CfgNode e, boolean branch) { exists(CfgNodes::ExprNodes::ComparisonOperationCfgNode c | @@ -72,18 +73,19 @@ deprecated class StringConstCompare extends DataFlow::BarrierGuard, } private predicate stringConstArrayInclusionCall(CfgNodes::ExprCfgNode g, CfgNode e, boolean branch) { - exists(CfgNodes::ExprNodes::MethodCallCfgNode mc | - mc = g and - mc.getExpr().getMethodName() = "include?" and - mc.getArgument(0) = e + exists(InclusionTest t | + t.asExpr() = g and + e = t.getContainedNode().asExpr() and + branch = t.getPolarity() | - exists(ExprNodes::ArrayLiteralCfgNode arr | isArrayConstant(mc.getReceiver(), arr) | + exists(ExprNodes::ArrayLiteralCfgNode arr | + isArrayConstant(t.getContainerNode().asExpr(), arr) + | forall(ExprCfgNode elem | elem = arr.getAnArgument() | elem instanceof ExprNodes::StringLiteralCfgNode ) ) - ) and - branch = true + ) } /** @@ -126,7 +128,7 @@ deprecated class StringConstArrayInclusionCall extends DataFlow::BarrierGuard, CfgNodes::ExprNodes::MethodCallCfgNode { private CfgNode checkedNode; - StringConstArrayInclusionCall() { stringConstArrayInclusionCall(this, checkedNode, _) } + StringConstArrayInclusionCall() { stringConstArrayInclusionCall(this, checkedNode, true) } override predicate checks(CfgNode expr, boolean branch) { expr = checkedNode and branch = true } } 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 ea99ed7d669..783d414dad6 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 @@ -8,6 +8,7 @@ oldStyleBarrierGuards | barrier-guards.rb:37:4:37:20 | call to include? | barrier-guards.rb:38:5:38:7 | foo | barrier-guards.rb:37:17:37:19 | foo | true | | barrier-guards.rb:43:4:43:15 | ... == ... | barrier-guards.rb:45:9:45:11 | foo | barrier-guards.rb:43:4:43:6 | foo | true | | barrier-guards.rb:70:4:70:21 | call to include? | barrier-guards.rb:71:5:71:7 | foo | barrier-guards.rb:70:18:70:20 | foo | true | +| barrier-guards.rb:82:4:82:25 | ... != ... | barrier-guards.rb:83:5:83:7 | foo | barrier-guards.rb:82:15:82:17 | foo | true | newStyleBarrierGuards | barrier-guards.rb:4:5:4:7 | foo | | barrier-guards.rb:10:5:10:7 | foo | @@ -17,3 +18,5 @@ newStyleBarrierGuards | barrier-guards.rb:38:5:38:7 | foo | | barrier-guards.rb:45:9:45:11 | foo | | barrier-guards.rb:71:5:71:7 | foo | +| barrier-guards.rb:83:5:83:7 | foo | +| barrier-guards.rb:91:5:91:7 | foo | diff --git a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb index a3f13b48639..47b96da22dd 100644 --- a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb +++ b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.rb @@ -79,6 +79,18 @@ else foo end +if foos.index(foo) != nil + foo +else + foo +end + +if foos.index(foo)r == nil + foo +else + foo +end + bars = ["bar"] if condition From 49aab5189362f85d6b0c320b6b031f14eb80847d Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Wed, 13 Jul 2022 18:02:33 +1200 Subject: [PATCH 367/736] Ruby: Make helper predicate private --- ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll index e7e303a9fa6..53355695e57 100644 --- a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll +++ b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll @@ -533,7 +533,7 @@ predicate isArrayConstant(ExprCfgNode e, ArrayLiteralCfgNode arr) { /** * Holds if the expression `e` refers to an array constructed from the array literal `arr`. */ -predicate isArrayExpr(Expr e, ArrayLiteralCfgNode arr) { +private predicate isArrayExpr(Expr e, ArrayLiteralCfgNode arr) { // e = [...] e = arr.getExpr() or From 2850b35a04cc7c457e63369dbf9932094c36ecb5 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 25 May 2022 14:07:38 +0200 Subject: [PATCH 368/736] update, and fix, the autobuilders by using the new --also-match option --- ql/autobuilder/src/main.rs | 30 ++++++++++++++++++++---------- ruby/autobuilder/src/main.rs | 18 ++++++++++++++++-- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/ql/autobuilder/src/main.rs b/ql/autobuilder/src/main.rs index 45977b3792d..4bb03eb0ed4 100644 --- a/ql/autobuilder/src/main.rs +++ b/ql/autobuilder/src/main.rs @@ -15,29 +15,39 @@ fn main() -> std::io::Result<()> { let mut cmd = Command::new(codeql); cmd.arg("database") .arg("index-files") + .arg("--include-extension=.ql") + .arg("--include-extension=.qll") + .arg("--include-extension=.dbscheme") + .arg("--include=**/qlpack.yml") .arg("--size-limit=5m") .arg("--language=ql") .arg("--working-dir=.") .arg(db); - let mut has_include_dir = false; // TODO: This is a horrible hack, wait for the post-merge discussion in https://github.com/github/codeql/pull/7444 to be resolved + let pwd = env::current_dir()?; for line in env::var("LGTM_INDEX_FILTERS") .unwrap_or_default() .split('\n') { if let Some(stripped) = line.strip_prefix("include:") { - cmd.arg("--include").arg(stripped); - has_include_dir = true; + let path = pwd + .join(stripped) + .join("**") + .into_os_string() + .into_string() + .unwrap(); + cmd.arg("--also-match").arg(path); } else if let Some(stripped) = line.strip_prefix("exclude:") { - cmd.arg("--exclude").arg(stripped); + let path = pwd + .join(stripped) + .join("**") + .into_os_string() + .into_string() + .unwrap(); + // the same as above, but starting with "!" + cmd.arg("--also-match").arg("!".to_owned() + &path); } } - if !has_include_dir { - cmd.arg("--include-extension=.ql") - .arg("--include-extension=.qll") - .arg("--include-extension=.dbscheme") - .arg("--include=**/qlpack.yml"); - } let exit = &cmd.spawn()?.wait()?; std::process::exit(exit.code().unwrap_or(1)) } diff --git a/ruby/autobuilder/src/main.rs b/ruby/autobuilder/src/main.rs index 18892ae2d5c..6573f4cfd33 100644 --- a/ruby/autobuilder/src/main.rs +++ b/ruby/autobuilder/src/main.rs @@ -24,14 +24,28 @@ fn main() -> std::io::Result<()> { .arg("--working-dir=.") .arg(db); + let pwd = env::current_dir()?; for line in env::var("LGTM_INDEX_FILTERS") .unwrap_or_default() .split('\n') { if let Some(stripped) = line.strip_prefix("include:") { - cmd.arg("--include").arg(stripped); + let path = pwd + .join(stripped) + .join("**") + .into_os_string() + .into_string() + .unwrap(); + cmd.arg("--also-match").arg(path); } else if let Some(stripped) = line.strip_prefix("exclude:") { - cmd.arg("--exclude").arg(stripped); + let path = pwd + .join(stripped) + .join("**") + .into_os_string() + .into_string() + .unwrap(); + // the same as above, but starting with "!" + cmd.arg("--also-match").arg("!".to_owned() + &path); } } let exit = &cmd.spawn()?.wait()?; From 878168384ee82c1a00d28bb4c352c6a9a371658d Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 25 May 2022 14:07:59 +0200 Subject: [PATCH 369/736] remove tools:latest from codeql-action in QL-for-QL --- .github/workflows/ql-for-ql-build.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index 95b93dd772c..2d96fbfa797 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -19,7 +19,6 @@ jobs: uses: github/codeql-action/init@aa93aea877e5fb8841bcb1193f672abf6e9f2980 with: languages: javascript # does not matter - tools: latest - name: Get CodeQL version id: get-codeql-version run: | @@ -184,7 +183,6 @@ jobs: languages: ql db-location: ${{ runner.temp }}/db config-file: ./ql-for-ql-config.yml - tools: latest - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@aa93aea877e5fb8841bcb1193f672abf6e9f2980 @@ -224,4 +222,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: combined.sarif - path: combined.sarif + path: combined.sarif \ No newline at end of file From eb0340dcb6ba5154f55335e9963961e6e9becf3a Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 30 May 2022 22:18:00 +0200 Subject: [PATCH 370/736] get excludes to work properly --- ql/autobuilder/src/main.rs | 25 +++++++++---------------- ruby/autobuilder/src/main.rs | 25 +++++++++---------------- 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/ql/autobuilder/src/main.rs b/ql/autobuilder/src/main.rs index 4bb03eb0ed4..7cc4900a6b7 100644 --- a/ql/autobuilder/src/main.rs +++ b/ql/autobuilder/src/main.rs @@ -24,30 +24,23 @@ fn main() -> std::io::Result<()> { .arg("--working-dir=.") .arg(db); - let pwd = env::current_dir()?; for line in env::var("LGTM_INDEX_FILTERS") .unwrap_or_default() .split('\n') { if let Some(stripped) = line.strip_prefix("include:") { - let path = pwd - .join(stripped) - .join("**") - .into_os_string() - .into_string() - .unwrap(); - cmd.arg("--also-match").arg(path); + cmd.arg("--also-match").arg(absolutelyfy(stripped)); } else if let Some(stripped) = line.strip_prefix("exclude:") { - let path = pwd - .join(stripped) - .join("**") - .into_os_string() - .into_string() - .unwrap(); - // the same as above, but starting with "!" - cmd.arg("--also-match").arg("!".to_owned() + &path); + cmd.arg("--exclude").arg(stripped); } } let exit = &cmd.spawn()?.wait()?; std::process::exit(exit.code().unwrap_or(1)) } + +// converts the relative path `stripped` to an absolute path by prepending the working directory +fn absolutelyfy(stripped: &str) -> String { + let pwd = env::current_dir().unwrap(); + + pwd.join(stripped).into_os_string().into_string().unwrap() +} diff --git a/ruby/autobuilder/src/main.rs b/ruby/autobuilder/src/main.rs index 6573f4cfd33..496c34a0594 100644 --- a/ruby/autobuilder/src/main.rs +++ b/ruby/autobuilder/src/main.rs @@ -24,30 +24,23 @@ fn main() -> std::io::Result<()> { .arg("--working-dir=.") .arg(db); - let pwd = env::current_dir()?; for line in env::var("LGTM_INDEX_FILTERS") .unwrap_or_default() .split('\n') { if let Some(stripped) = line.strip_prefix("include:") { - let path = pwd - .join(stripped) - .join("**") - .into_os_string() - .into_string() - .unwrap(); - cmd.arg("--also-match").arg(path); + cmd.arg("--also-match").arg(absolutelyfy(stripped)); } else if let Some(stripped) = line.strip_prefix("exclude:") { - let path = pwd - .join(stripped) - .join("**") - .into_os_string() - .into_string() - .unwrap(); - // the same as above, but starting with "!" - cmd.arg("--also-match").arg("!".to_owned() + &path); + cmd.arg("--exclude").arg(stripped); } } let exit = &cmd.spawn()?.wait()?; std::process::exit(exit.code().unwrap_or(1)) } + +// converts the relative path `stripped` to an absolute path by prepending the working directory +fn absolutelyfy(stripped: &str) -> String { + let pwd = env::current_dir().unwrap(); + + pwd.join(stripped).into_os_string().into_string().unwrap() +} From 047b14e310bef5eee5ce07d18b3f6dca01de38da Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Tue, 31 May 2022 10:25:48 +0000 Subject: [PATCH 371/736] get the autobuilders to work after introducing test-cases --- ql/autobuilder/src/main.rs | 11 ++--------- ruby/autobuilder/src/main.rs | 11 ++--------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/ql/autobuilder/src/main.rs b/ql/autobuilder/src/main.rs index 7cc4900a6b7..df47cc33184 100644 --- a/ql/autobuilder/src/main.rs +++ b/ql/autobuilder/src/main.rs @@ -29,18 +29,11 @@ fn main() -> std::io::Result<()> { .split('\n') { if let Some(stripped) = line.strip_prefix("include:") { - cmd.arg("--also-match").arg(absolutelyfy(stripped)); + cmd.arg("--also-match=".to_owned() + stripped); } else if let Some(stripped) = line.strip_prefix("exclude:") { - cmd.arg("--exclude").arg(stripped); + cmd.arg("--exclude=".to_owned() + stripped); } } let exit = &cmd.spawn()?.wait()?; std::process::exit(exit.code().unwrap_or(1)) } - -// converts the relative path `stripped` to an absolute path by prepending the working directory -fn absolutelyfy(stripped: &str) -> String { - let pwd = env::current_dir().unwrap(); - - pwd.join(stripped).into_os_string().into_string().unwrap() -} diff --git a/ruby/autobuilder/src/main.rs b/ruby/autobuilder/src/main.rs index 496c34a0594..8f0f1b48d0d 100644 --- a/ruby/autobuilder/src/main.rs +++ b/ruby/autobuilder/src/main.rs @@ -29,18 +29,11 @@ fn main() -> std::io::Result<()> { .split('\n') { if let Some(stripped) = line.strip_prefix("include:") { - cmd.arg("--also-match").arg(absolutelyfy(stripped)); + cmd.arg("--also-match=".to_owned() + stripped); } else if let Some(stripped) = line.strip_prefix("exclude:") { - cmd.arg("--exclude").arg(stripped); + cmd.arg("--exclude=".to_owned() + stripped); } } let exit = &cmd.spawn()?.wait()?; std::process::exit(exit.code().unwrap_or(1)) } - -// converts the relative path `stripped` to an absolute path by prepending the working directory -fn absolutelyfy(stripped: &str) -> String { - let pwd = env::current_dir().unwrap(); - - pwd.join(stripped).into_os_string().into_string().unwrap() -} From dded3af3d8ccead9e640652ce18017bd45b16025 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 13 Jul 2022 09:57:17 +0200 Subject: [PATCH 372/736] remove more false positives from the ql/missing-parameter-qldoc query --- ql/ql/src/queries/style/MissingParameterInQlDoc.ql | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql index b378803822a..c2b1e80fe53 100644 --- a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql +++ b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql @@ -44,7 +44,10 @@ private string getAMentionedNonParameter(Predicate p) { not result.toLowerCase() = getAParameterName(p).toLowerCase() and // keywords not result = - ["true", "false", "NaN", "this", "forall", "exists", "null", "break", "return", "not"] and + [ + "true", "false", "NaN", "this", "forall", "exists", "null", "break", "return", "not", "if", + "then", "else", "import" + ] and not result = any(Aggregate a).getKind() and // min, max, sum, count, etc. not result = getMentionedThings(p.getLocation().getFile()) and not result = any(Annotation a).getName() and // private, final, etc. @@ -66,7 +69,7 @@ private string getMentionedThings(File file) { private string getAnUndocumentedParameter(Predicate p) { result = getAParameterName(p) and not result.toLowerCase() = getADocumentedParameter(p).toLowerCase() and - not result = ["config", "conf", "cfg"] and // DataFlow configurations are often undocumented, and that's fine. + not result = ["config", "conf", "cfg", "t", "t2"] and // DataFlow configurations / type-trackers are often undocumented, and that's fine. not ( // "the given" often refers to the first parameter. p.getQLDoc().getContents().regexpMatch("(?s).*\\bthe given\\b.*") and @@ -85,7 +88,7 @@ private string getMentionedNonParameters(Predicate p) { } from Predicate p -where not p.getLocation().getFile().getBaseName() = "Aliases.qll" // these are OK +where not p.getLocation().getFile().getBaseName() in ["Aliases.qll", "TreeSitter.qll"] // these are OK select p, "The QLDoc has no documentation for " + getUndocumentedParameters(p) + ", but the QLDoc mentions " + getMentionedNonParameters(p) From c4f44bb67fbd989c61610011a12af863efd50b1b Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 13 Jul 2022 10:01:26 +0200 Subject: [PATCH 373/736] sync files --- python/ql/src/Security/CWE-020/HostnameRegexpShared.qll | 2 +- ruby/ql/src/queries/security/cwe-020/HostnameRegexpShared.qll | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/src/Security/CWE-020/HostnameRegexpShared.qll b/python/ql/src/Security/CWE-020/HostnameRegexpShared.qll index 2192951f76d..5e9bc406512 100644 --- a/python/ql/src/Security/CWE-020/HostnameRegexpShared.qll +++ b/python/ql/src/Security/CWE-020/HostnameRegexpShared.qll @@ -53,7 +53,7 @@ predicate matchesBeginningOfString(RegExpTerm term) { } /** - * Holds if the given sequence contains top-level domain preceded by a dot, such as `.com`, + * Holds if the given sequence `seq` contains top-level domain preceded by a dot, such as `.com`, * excluding cases where this is at the very beginning of the regexp. * * `i` is bound to the index of the last child in the top-level domain part. diff --git a/ruby/ql/src/queries/security/cwe-020/HostnameRegexpShared.qll b/ruby/ql/src/queries/security/cwe-020/HostnameRegexpShared.qll index 2192951f76d..5e9bc406512 100644 --- a/ruby/ql/src/queries/security/cwe-020/HostnameRegexpShared.qll +++ b/ruby/ql/src/queries/security/cwe-020/HostnameRegexpShared.qll @@ -53,7 +53,7 @@ predicate matchesBeginningOfString(RegExpTerm term) { } /** - * Holds if the given sequence contains top-level domain preceded by a dot, such as `.com`, + * Holds if the given sequence `seq` contains top-level domain preceded by a dot, such as `.com`, * excluding cases where this is at the very beginning of the regexp. * * `i` is bound to the index of the last child in the top-level domain part. From cd5fbe633f2206b264ebcfb7ea25eca5b08f915c Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 13 Jul 2022 10:12:52 +0200 Subject: [PATCH 374/736] update locations in test after merging in the focus-location-pr --- .../MissingParameterInQlDoc/MissingParameterInQlDoc.expected | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.expected b/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.expected index cca5b457ec4..4307178da72 100644 --- a/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.expected +++ b/ql/ql/test/queries/style/MissingParameterInQlDoc/MissingParameterInQlDoc.expected @@ -1,2 +1,2 @@ -| Foo.qll:5:1:5:50 | ClasslessPredicate test2 | The QLDoc has no documentation for param2, but the QLDoc mentions par2 | -| Foo.qll:14:1:14:50 | ClasslessPredicate test5 | The QLDoc has no documentation for param2, but the QLDoc mentions par2 | +| Foo.qll:5:11:5:15 | ClasslessPredicate test2 | The QLDoc has no documentation for param2, but the QLDoc mentions par2 | +| Foo.qll:14:11:14:15 | ClasslessPredicate test5 | The QLDoc has no documentation for param2, but the QLDoc mentions par2 | From fd10947ca0f1f17d42436a7173c734f2d75cd37d Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Mon, 11 Jul 2022 16:22:54 +0200 Subject: [PATCH 375/736] use small steps in TypeBackTracker correctly --- .../lib/semmle/javascript/dataflow/TypeTracking.qll | 2 +- .../UnsafeHtmlConstructionCustomizations.qll | 2 +- .../src/Security/CWE-094/ImproperCodeSanitization.ql | 2 +- .../UnsafeHtmlConstruction.expected | 12 ++++++++++++ .../Security/CWE-079/UnsafeHtmlConstruction/main.js | 8 ++++++++ 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/TypeTracking.qll b/javascript/ql/lib/semmle/javascript/dataflow/TypeTracking.qll index 896f0177ec3..12aa8d09ed1 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/TypeTracking.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/TypeTracking.qll @@ -312,7 +312,7 @@ class TypeBackTracker extends TTypeBackTracker { * result = < some API call >.getArgument(< n >) * or * exists (DataFlow::TypeBackTracker t2 | - * t = t2.smallstep(result, myType(t2)) + * t2 = t.smallstep(result, myType(t2)) * ) * } * diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll index d594da271b8..fd549429e4a 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll @@ -80,7 +80,7 @@ module UnsafeHtmlConstruction { t.start() and result = sink or - exists(DataFlow::TypeBackTracker t2 | t = t2.smallstep(result, isUsedInXssSink(t2, sink))) + exists(DataFlow::TypeBackTracker t2 | t2 = t.smallstep(result, isUsedInXssSink(t2, sink))) or exists(DataFlow::TypeBackTracker t2 | t.continue() = t2 and diff --git a/javascript/ql/src/Security/CWE-094/ImproperCodeSanitization.ql b/javascript/ql/src/Security/CWE-094/ImproperCodeSanitization.ql index 886c78b0161..694e827ba41 100644 --- a/javascript/ql/src/Security/CWE-094/ImproperCodeSanitization.ql +++ b/javascript/ql/src/Security/CWE-094/ImproperCodeSanitization.ql @@ -50,7 +50,7 @@ private DataFlow::Node endsInCodeInjectionSink(DataFlow::TypeBackTracker t) { not result instanceof StringOps::ConcatenationRoot // the heuristic CodeInjection sink looks for string-concats, we are not interrested in those here. ) or - exists(DataFlow::TypeBackTracker t2 | t = t2.smallstep(result, endsInCodeInjectionSink(t2))) + exists(DataFlow::TypeBackTracker t2 | t2 = t.smallstep(result, endsInCodeInjectionSink(t2))) } /** diff --git a/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/UnsafeHtmlConstruction.expected b/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/UnsafeHtmlConstruction.expected index c604f4ab2d2..94f1fe314b0 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/UnsafeHtmlConstruction.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/UnsafeHtmlConstruction.expected @@ -50,6 +50,12 @@ nodes | main.js:79:34:79:36 | val | | main.js:81:35:81:37 | val | | main.js:81:35:81:37 | val | +| main.js:89:21:89:21 | x | +| main.js:90:23:90:23 | x | +| main.js:90:23:90:23 | x | +| main.js:93:43:93:43 | x | +| main.js:93:43:93:43 | x | +| main.js:94:31:94:31 | x | | typed.ts:1:39:1:39 | s | | typed.ts:1:39:1:39 | s | | typed.ts:2:29:2:29 | s | @@ -115,6 +121,11 @@ edges | main.js:79:34:79:36 | val | main.js:81:35:81:37 | val | | main.js:79:34:79:36 | val | main.js:81:35:81:37 | val | | main.js:79:34:79:36 | val | main.js:81:35:81:37 | val | +| main.js:89:21:89:21 | x | main.js:90:23:90:23 | x | +| main.js:89:21:89:21 | x | main.js:90:23:90:23 | x | +| main.js:93:43:93:43 | x | main.js:94:31:94:31 | x | +| main.js:93:43:93:43 | x | main.js:94:31:94:31 | x | +| main.js:94:31:94:31 | x | main.js:89:21:89:21 | x | | typed.ts:1:39:1:39 | s | typed.ts:2:29:2:29 | s | | typed.ts:1:39:1:39 | s | typed.ts:2:29:2:29 | s | | typed.ts:1:39:1:39 | s | typed.ts:2:29:2:29 | s | @@ -141,5 +152,6 @@ edges | main.js:62:19:62:31 | settings.name | main.js:56:28:56:34 | options | main.js:62:19:62:31 | settings.name | $@ based on $@ might later cause $@. | main.js:62:19:62:31 | settings.name | HTML construction | main.js:56:28:56:34 | options | library input | main.js:62:11:62:40 | "" + ... "" | cross-site scripting | | main.js:67:63:67:69 | attrVal | main.js:66:35:66:41 | attrVal | main.js:67:63:67:69 | attrVal | $@ based on $@ might later cause $@. | main.js:67:63:67:69 | attrVal | HTML construction | main.js:66:35:66:41 | attrVal | library input | main.js:67:47:67:78 | "" | cross-site scripting | | main.js:81:35:81:37 | val | main.js:79:34:79:36 | val | main.js:81:35:81:37 | val | $@ based on $@ might later cause $@. | main.js:81:35:81:37 | val | HTML construction | main.js:79:34:79:36 | val | library input | main.js:81:24:81:49 | " ... /span>" | cross-site scripting | +| main.js:90:23:90:23 | x | main.js:93:43:93:43 | x | main.js:90:23:90:23 | x | $@ based on $@ might later cause $@. | main.js:90:23:90:23 | x | HTML construction | main.js:93:43:93:43 | x | library input | main.js:94:20:94:32 | createHTML(x) | cross-site scripting | | typed.ts:2:29:2:29 | s | typed.ts:1:39:1:39 | s | typed.ts:2:29:2:29 | s | $@ based on $@ might later cause $@. | typed.ts:2:29:2:29 | s | HTML construction | typed.ts:1:39:1:39 | s | library input | typed.ts:3:31:3:34 | html | cross-site scripting | | typed.ts:8:40:8:40 | s | typed.ts:6:43:6:43 | s | typed.ts:8:40:8:40 | s | $@ based on $@ might later cause $@. | typed.ts:8:40:8:40 | s | HTML construction | typed.ts:6:43:6:43 | s | library input | typed.ts:8:29:8:52 | " ... /span>" | cross-site scripting | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/main.js b/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/main.js index 1547ae86b24..2e9d344b1f3 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/main.js +++ b/javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/main.js @@ -85,3 +85,11 @@ module.exports.types = function (val) { $("#foo").html("" + val + ""); // OK } } + +function createHTML(x) { + return "" + x + ""; // NOT OK +} + +module.exports.usesCreateHTML = function (x) { + $("#foo").html(createHTML(x)); +} \ No newline at end of file From 1fa214471659a6769b5ab7ba61fb6555fe9846f8 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Wed, 13 Jul 2022 21:02:08 +1200 Subject: [PATCH 376/736] Ruby: Update test fixtures --- ruby/ql/test/library-tests/ast/Ast.expected | 29 ++++++++++++ .../library-tests/ast/AstDesugar.expected | 12 +++++ .../library-tests/ast/TreeSitter.expected | 46 +++++++++++++++++++ .../test/library-tests/ast/ValueText.expected | 12 +++++ 4 files changed, 99 insertions(+) diff --git a/ruby/ql/test/library-tests/ast/Ast.expected b/ruby/ql/test/library-tests/ast/Ast.expected index ebfd53fd551..0a16654594d 100644 --- a/ruby/ql/test/library-tests/ast/Ast.expected +++ b/ruby/ql/test/library-tests/ast/Ast.expected @@ -1556,6 +1556,35 @@ constants/constants.rb: # 73| getAnOperand/getLeftOperand: [ClassVariableAccess] @@fourty_six # 73| getAnOperand/getRightOperand: [ConstantReadAccess] FOURTY_SIX # 73| getScopeExpr: [ConstantReadAccess] Mod3 +# 78| getStmt: [AssignExpr] ... = ... +# 78| getAnOperand/getLeftOperand: [LocalVariableAccess] a +# 78| getAnOperand/getRightOperand: [ArrayLiteral] [...] +# 78| getElement: [IntegerLiteral] 1 +# 78| getElement: [IntegerLiteral] 2 +# 78| getElement: [IntegerLiteral] 3 +# 79| getStmt: [AssignExpr] ... = ... +# 79| getAnOperand/getLeftOperand: [ConstantAssignment] A +# 79| getAnOperand/getRightOperand: [ArrayLiteral] [...] +# 79| getElement: [IntegerLiteral] 1 +# 79| getElement: [IntegerLiteral] 2 +# 79| getElement: [IntegerLiteral] 3 +# 80| getStmt: [AssignExpr] ... = ... +# 80| getAnOperand/getLeftOperand: [ConstantAssignment] B +# 80| getAnOperand/getRightOperand: [LocalVariableAccess] a +# 81| getStmt: [AssignExpr] ... = ... +# 81| getAnOperand/getLeftOperand: [ConstantAssignment] C +# 81| getAnOperand/getRightOperand: [ConstantReadAccess] A +# 82| getStmt: [AssignExpr] ... = ... +# 82| getAnOperand/getLeftOperand: [LocalVariableAccess] b +# 82| getAnOperand/getRightOperand: [ConstantReadAccess] B +# 84| getStmt: [IfExpr] if ... +# 84| getCondition: [MethodCall] call to condition +# 84| getReceiver: [SelfVariableAccess] self +# 84| getBranch/getThen: [StmtSequence] then ... +# 85| getStmt: [AssignExpr] ... = ... +# 85| getAnOperand/getLeftOperand: [LocalVariableAccess] c +# 85| getAnOperand/getRightOperand: [LocalVariableAccess] b +# 87| getStmt: [LocalVariableAccess] c escape_sequences/escapes.rb: # 1| [Toplevel] escapes.rb # 6| getStmt: [StringLiteral] "\'" diff --git a/ruby/ql/test/library-tests/ast/AstDesugar.expected b/ruby/ql/test/library-tests/ast/AstDesugar.expected index 0e6a0694105..956893e944f 100644 --- a/ruby/ql/test/library-tests/ast/AstDesugar.expected +++ b/ruby/ql/test/library-tests/ast/AstDesugar.expected @@ -336,6 +336,18 @@ constants/constants.rb: # 20| getComponent: [StringTextComponent] Chuck # 20| getArgument: [StringLiteral] "Dave" # 20| getComponent: [StringTextComponent] Dave +# 78| [ArrayLiteral] [...] +# 78| getDesugared: [MethodCall] call to [] +# 78| getReceiver: [ConstantReadAccess] Array +# 78| getArgument: [IntegerLiteral] 1 +# 78| getArgument: [IntegerLiteral] 2 +# 78| getArgument: [IntegerLiteral] 3 +# 79| [ArrayLiteral] [...] +# 79| getDesugared: [MethodCall] call to [] +# 79| getReceiver: [ConstantReadAccess] Array +# 79| getArgument: [IntegerLiteral] 1 +# 79| getArgument: [IntegerLiteral] 2 +# 79| getArgument: [IntegerLiteral] 3 escape_sequences/escapes.rb: # 58| [ArrayLiteral] %w(...) # 58| getDesugared: [MethodCall] call to [] diff --git a/ruby/ql/test/library-tests/ast/TreeSitter.expected b/ruby/ql/test/library-tests/ast/TreeSitter.expected index 0a2ecda8d28..67a909d9002 100644 --- a/ruby/ql/test/library-tests/ast/TreeSitter.expected +++ b/ruby/ql/test/library-tests/ast/TreeSitter.expected @@ -1656,10 +1656,56 @@ constants/constants.rb: # 73| 1: [ReservedWord] :: # 73| 2: [Constant] FOURTY_SIX # 74| 5: [ReservedWord] end +# 78| 13: [Assignment] Assignment +# 78| 0: [Identifier] a +# 78| 1: [ReservedWord] = +# 78| 2: [Array] Array +# 78| 0: [ReservedWord] [ +# 78| 1: [Integer] 1 +# 78| 2: [ReservedWord] , +# 78| 3: [Integer] 2 +# 78| 4: [ReservedWord] , +# 78| 5: [Integer] 3 +# 78| 6: [ReservedWord] ] +# 79| 14: [Assignment] Assignment +# 79| 0: [Constant] A +# 79| 1: [ReservedWord] = +# 79| 2: [Array] Array +# 79| 0: [ReservedWord] [ +# 79| 1: [Integer] 1 +# 79| 2: [ReservedWord] , +# 79| 3: [Integer] 2 +# 79| 4: [ReservedWord] , +# 79| 5: [Integer] 3 +# 79| 6: [ReservedWord] ] +# 80| 15: [Assignment] Assignment +# 80| 0: [Constant] B +# 80| 1: [ReservedWord] = +# 80| 2: [Identifier] a +# 81| 16: [Assignment] Assignment +# 81| 0: [Constant] C +# 81| 1: [ReservedWord] = +# 81| 2: [Constant] A +# 82| 17: [Assignment] Assignment +# 82| 0: [Identifier] b +# 82| 1: [ReservedWord] = +# 82| 2: [Constant] B +# 84| 18: [If] If +# 84| 0: [ReservedWord] if +# 84| 1: [Identifier] condition +# 84| 2: [Then] Then +# 85| 0: [Assignment] Assignment +# 85| 0: [Identifier] c +# 85| 1: [ReservedWord] = +# 85| 2: [Identifier] b +# 86| 3: [ReservedWord] end +# 87| 19: [Identifier] c # 26| [Comment] # A call to Kernel::Array; despite beginning with an upper-case character, # 27| [Comment] # we don't consider this to be a constant access. # 55| [Comment] # refers to ::ModuleA::FOURTY_FOUR # 57| [Comment] # refers to ::ModuleA::ModuleB::ClassB::FOURTY_FOUR +# 76| [Comment] # Array constants +# 87| [Comment] # not recognised control/cases.rb: # 1| [Program] Program # 2| 0: [Assignment] Assignment diff --git a/ruby/ql/test/library-tests/ast/ValueText.expected b/ruby/ql/test/library-tests/ast/ValueText.expected index 6225b1b2e90..ecf7399a99a 100644 --- a/ruby/ql/test/library-tests/ast/ValueText.expected +++ b/ruby/ql/test/library-tests/ast/ValueText.expected @@ -109,6 +109,12 @@ exprValue | constants/constants.rb:63:19:63:20 | 45 | 45 | int | | constants/constants.rb:65:19:65:35 | FOURTY_FIVE | 45 | int | | constants/constants.rb:71:18:71:19 | 46 | 46 | int | +| constants/constants.rb:78:6:78:6 | 1 | 1 | int | +| constants/constants.rb:78:9:78:9 | 2 | 2 | int | +| constants/constants.rb:78:12:78:12 | 3 | 3 | int | +| constants/constants.rb:79:6:79:6 | 1 | 1 | int | +| constants/constants.rb:79:9:79:9 | 2 | 2 | int | +| constants/constants.rb:79:12:79:12 | 3 | 3 | int | | control/cases.rb:2:5:2:5 | 0 | 0 | int | | control/cases.rb:3:5:3:5 | 0 | 0 | int | | control/cases.rb:4:5:4:5 | 0 | 0 | int | @@ -1004,6 +1010,12 @@ exprCfgNodeValue | constants/constants.rb:63:19:63:20 | 45 | 45 | int | | constants/constants.rb:65:19:65:35 | FOURTY_FIVE | 45 | int | | constants/constants.rb:71:18:71:19 | 46 | 46 | int | +| constants/constants.rb:78:6:78:6 | 1 | 1 | int | +| constants/constants.rb:78:9:78:9 | 2 | 2 | int | +| constants/constants.rb:78:12:78:12 | 3 | 3 | int | +| constants/constants.rb:79:6:79:6 | 1 | 1 | int | +| constants/constants.rb:79:9:79:9 | 2 | 2 | int | +| constants/constants.rb:79:12:79:12 | 3 | 3 | int | | control/cases.rb:2:5:2:5 | 0 | 0 | int | | control/cases.rb:3:5:3:5 | 0 | 0 | int | | control/cases.rb:4:5:4:5 | 0 | 0 | int | From f7dca4d70fd58016671a3a0dde5158fd3a716993 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 12 Jul 2022 17:31:02 +0200 Subject: [PATCH 377/736] Swift: trap output rework Firstly, this change reworks how inter-process races are resolved. Moreover some responsability reorganization has led to merging `TrapArena` and `TrapOutput` again into a `TrapDomain` class. A `TargetFile` class is introduced, that is successfully created only for the first process that starts processing a given trap output file. From then on `TargetFile` simply wraps around `<<` stream operations, dumping them to a temporary file. When `TargetFile::commit` is called, the temporary file is moved on to the actual target trap file. Processes that lose the race can now just ignore the unneeded extraction and go on, while previously all processes would carry out all extractions overwriting each other at the end. Some of the file system logic contained in `SwiftExtractor.cpp` has been moved to this class, and two TODOs are solved: * introducing a better inter process file collision avoidance strategy * better error handling for trap output operations: if unable to write to the trap file (or carry out other basic file operations), we just abort. The changes to `ExprVisitor` and `StmtVisitor` are due to wanting to hide the raw `TrapDomain::createLabel` from them, and bring more funcionality under the generic caching/dispatching mechanism. --- swift/codegen/schema.yml | 1 + swift/extractor/SwiftExtractor.cpp | 70 +++++------------- swift/extractor/infra/BUILD.bazel | 2 + swift/extractor/infra/SwiftDispatcher.h | 46 ++++++------ swift/extractor/infra/SwiftTagTraits.h | 2 + swift/extractor/infra/TargetFile.cpp | 73 +++++++++++++++++++ swift/extractor/infra/TargetFile.h | 40 ++++++++++ swift/extractor/trap/TrapArena.h | 23 ------ .../trap/{TrapOutput.h => TrapDomain.h} | 68 +++++++++++------ swift/extractor/visitors/ExprVisitor.cpp | 10 +-- swift/extractor/visitors/StmtVisitor.cpp | 34 ++++----- swift/extractor/visitors/StmtVisitor.h | 4 +- swift/extractor/visitors/SwiftVisitor.h | 7 +- .../codeql/swift/generated/expr/Argument.qll | 4 +- swift/ql/lib/swift.dbscheme | 6 +- .../DotSyntaxCallExpr_getArgument.expected | 4 +- 16 files changed, 238 insertions(+), 156 deletions(-) create mode 100644 swift/extractor/infra/TargetFile.cpp create mode 100644 swift/extractor/infra/TargetFile.h delete mode 100644 swift/extractor/trap/TrapArena.h rename swift/extractor/trap/{TrapOutput.h => TrapDomain.h} (56%) diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index 01bb0c2feba..1c76a1c7a65 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -319,6 +319,7 @@ AppliedPropertyWrapperExpr: _extends: Expr Argument: + _extends: Locatable label: string _children: expr: Expr diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 44d2309cb2a..88ad2152473 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -16,8 +16,9 @@ #include #include "swift/extractor/trap/generated/TrapClasses.h" -#include "swift/extractor/trap/TrapOutput.h" +#include "swift/extractor/trap/TrapDomain.h" #include "swift/extractor/visitors/SwiftVisitor.h" +#include "swift/extractor/infra/TargetFile.h" using namespace codeql; @@ -52,7 +53,7 @@ static void archiveFile(const SwiftExtractorConfiguration& config, swift::Source } } -static std::string getTrapFilename(swift::ModuleDecl& module, swift::SourceFile* primaryFile) { +static std::string getFilename(swift::ModuleDecl& module, swift::SourceFile* primaryFile) { if (primaryFile) { return primaryFile->getFilename().str(); } @@ -80,56 +81,39 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, swift::CompilerInstance& compiler, swift::ModuleDecl& module, swift::SourceFile* primaryFile = nullptr) { + auto filename = getFilename(module, primaryFile); + // The extractor can be called several times from different processes with - // the same input file(s) - // We are using PID to avoid concurrent access - // TODO: find a more robust approach to avoid collisions? - auto name = getTrapFilename(module, primaryFile); - llvm::StringRef filename(name); - std::string tempTrapName = filename.str() + '.' + std::to_string(getpid()) + ".trap"; - llvm::SmallString tempTrapPath(config.getTempTrapDir()); - llvm::sys::path::append(tempTrapPath, tempTrapName); - - llvm::StringRef tempTrapParent = llvm::sys::path::parent_path(tempTrapPath); - if (std::error_code ec = llvm::sys::fs::create_directories(tempTrapParent)) { - std::cerr << "Cannot create temp trap directory '" << tempTrapParent.str() - << "': " << ec.message() << "\n"; + // the same input file(s). Using `TargetFile` the first process will win, and the following + // will just skip the work + TargetFile trapStream{filename + ".trap", config.trapDir, config.getTempTrapDir()}; + if (!trapStream.good()) { + // another process arrived first, nothing to do for us return; } - std::ofstream trapStream(tempTrapPath.str().str()); - if (!trapStream) { - std::error_code ec; - ec.assign(errno, std::generic_category()); - std::cerr << "Cannot create temp trap file '" << tempTrapPath.str().str() - << "': " << ec.message() << "\n"; - return; - } trapStream << "/* extractor-args:\n"; - for (auto opt : config.frontendOptions) { + for (const auto& opt : config.frontendOptions) { trapStream << " " << std::quoted(opt) << " \\\n"; } trapStream << "\n*/\n"; trapStream << "/* swift-frontend-args:\n"; - for (auto opt : config.patchedFrontendOptions) { + for (const auto& opt : config.patchedFrontendOptions) { trapStream << " " << std::quoted(opt) << " \\\n"; } trapStream << "\n*/\n"; - TrapOutput trap{trapStream}; - TrapArena arena{}; + TrapDomain trap{trapStream}; // TODO: move default location emission elsewhere, possibly in a separate global trap file - auto unknownFileLabel = arena.allocateLabel(); // the following cannot conflict with actual files as those have an absolute path starting with / - trap.assignKey(unknownFileLabel, "unknown"); + auto unknownFileLabel = trap.createLabel("unknown"); + auto unknownLocationLabel = trap.createLabel("unknown"); trap.emit(FilesTrap{unknownFileLabel}); - auto unknownLocationLabel = arena.allocateLabel(); - trap.assignKey(unknownLocationLabel, "unknown"); trap.emit(LocationsTrap{unknownLocationLabel, unknownFileLabel}); - SwiftVisitor visitor(compiler.getSourceMgr(), arena, trap, module, primaryFile); + SwiftVisitor visitor(compiler.getSourceMgr(), trap, module, primaryFile); auto topLevelDecls = getTopLevelDecls(module, primaryFile); for (auto decl : topLevelDecls) { visitor.extract(decl); @@ -142,28 +126,10 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, // fact that the file was extracted llvm::SmallString name(filename); llvm::sys::fs::make_absolute(name); - auto fileLabel = arena.allocateLabel(); - trap.assignKey(fileLabel, name.str().str()); + auto fileLabel = trap.createLabel(name.str().str()); trap.emit(FilesTrap{fileLabel, name.str().str()}); } - - // TODO: Pick a better name to avoid collisions - std::string trapName = filename.str() + ".trap"; - llvm::SmallString trapPath(config.trapDir); - llvm::sys::path::append(trapPath, trapName); - - llvm::StringRef trapParent = llvm::sys::path::parent_path(trapPath); - if (std::error_code ec = llvm::sys::fs::create_directories(trapParent)) { - std::cerr << "Cannot create trap directory '" << trapParent.str() << "': " << ec.message() - << "\n"; - return; - } - - // TODO: The last process wins. Should we do better than that? - if (std::error_code ec = llvm::sys::fs::rename(tempTrapPath, trapPath)) { - std::cerr << "Cannot rename temp trap file '" << tempTrapPath.str().str() << "' -> '" - << trapPath.str().str() << "': " << ec.message() << "\n"; - } + trapStream.commit(); } static std::unordered_set collectInputFilenames(swift::CompilerInstance& compiler) { diff --git a/swift/extractor/infra/BUILD.bazel b/swift/extractor/infra/BUILD.bazel index 33098eb76a4..115fb06b745 100644 --- a/swift/extractor/infra/BUILD.bazel +++ b/swift/extractor/infra/BUILD.bazel @@ -2,9 +2,11 @@ load("//swift:rules.bzl", "swift_cc_library") swift_cc_library( name = "infra", + srcs = glob(["*.cpp"]), hdrs = glob(["*.h"]), visibility = ["//swift:__subpackages__"], deps = [ "//swift/extractor/trap", + "//swift/tools/prebuilt:swift-llvm-support", ], ) diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index c7ca43a1614..a9ecb6996ff 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -4,9 +4,8 @@ #include #include -#include "swift/extractor/trap/TrapArena.h" #include "swift/extractor/trap/TrapLabelStore.h" -#include "swift/extractor/trap/TrapOutput.h" +#include "swift/extractor/trap/TrapDomain.h" #include "swift/extractor/infra/SwiftTagTraits.h" #include "swift/extractor/trap/generated/TrapClasses.h" @@ -22,12 +21,10 @@ class SwiftDispatcher { // all references and pointers passed as parameters to this constructor are supposed to outlive // the SwiftDispatcher SwiftDispatcher(const swift::SourceManager& sourceManager, - TrapArena& arena, - TrapOutput& trap, + TrapDomain& trap, swift::ModuleDecl& currentModule, swift::SourceFile* currentPrimarySourceFile = nullptr) : sourceManager{sourceManager}, - arena{arena}, trap{trap}, currentModule{currentModule}, currentPrimarySourceFile{currentPrimarySourceFile} {} @@ -77,6 +74,7 @@ class SwiftDispatcher { } waitingForNewLabel = e; visit(e); + // TODO when everything is moved to structured C++ classes, this should be moved to createEntry if (auto l = store.get(e)) { if constexpr (!std::is_base_of_v) { attachLocation(e, *l); @@ -95,13 +93,17 @@ class SwiftDispatcher { return fetchLabelFromUnion(node); } + TrapLabel fetchLabel(const swift::StmtConditionElement& element) { + return fetchLabel(&element); + } + // Due to the lazy emission approach, we must assign a label to a corresponding AST node before // it actually gets emitted to handle recursive cases such as recursive calls, or recursive type // declarations template TrapLabelOf assignNewLabel(E* e, Args&&... args) { assert(waitingForNewLabel == Store::Handle{e} && "assignNewLabel called on wrong entity"); - auto label = createLabel>(std::forward(args)...); + auto label = trap.createLabel>(std::forward(args)...); store.insert(e, label); waitingForNewLabel = std::monostate{}; return label; @@ -118,18 +120,13 @@ class SwiftDispatcher { return TrapClassOf{assignNewLabel(&e, std::forward(args)...)}; } - template - TrapLabel createLabel() { - auto ret = arena.allocateLabel(); - trap.assignStar(ret); - return ret; - } - - template - TrapLabel createLabel(Args&&... args) { - auto ret = arena.allocateLabel(); - trap.assignKey(ret, std::forward(args)...); - return ret; + // used to create a new entry for entities that should not be cached + // an example is swift::Argument, that are created on the fly and thus have no stable pointer + template >* = nullptr> + auto createUncachedEntry(const E& e, Args&&... args) { + auto label = trap.createLabel>(std::forward(args)...); + attachLocation(&e, label); + return TrapClassOf{label}; } template @@ -213,6 +210,7 @@ class SwiftDispatcher { using Store = TrapLabelStore(filepath); + auto fileLabel = trap.createLabel(filepath); // TODO: do not emit duplicate trap entries for Files trap.emit(FilesTrap{fileLabel, filepath}); auto [startLine, startColumn] = sourceManager.getLineAndColumnInBuffer(start); auto [endLine, endColumn] = sourceManager.getLineAndColumnInBuffer(end); - auto locLabel = createLabel('{', fileLabel, "}:", startLine, ':', startColumn, ':', - endLine, ':', endColumn); + auto locLabel = trap.createLabel('{', fileLabel, "}:", startLine, ':', startColumn, + ':', endLine, ':', endColumn); trap.emit(LocationsTrap{locLabel, fileLabel, startLine, startColumn, endLine, endColumn}); trap.emit(LocatableLocationsTrap{locatableLabel, locLabel}); } @@ -275,7 +273,8 @@ class SwiftDispatcher { // which are to be introduced in follow-up PRs virtual void visit(swift::Decl* decl) = 0; virtual void visit(swift::Stmt* stmt) = 0; - virtual void visit(swift::StmtCondition* cond) = 0; + virtual void visit(const swift::StmtCondition* cond) = 0; + virtual void visit(const swift::StmtConditionElement* cond) = 0; virtual void visit(swift::CaseLabelItem* item) = 0; virtual void visit(swift::Expr* expr) = 0; virtual void visit(swift::Pattern* pattern) = 0; @@ -283,8 +282,7 @@ class SwiftDispatcher { virtual void visit(swift::TypeBase* type) = 0; const swift::SourceManager& sourceManager; - TrapArena& arena; - TrapOutput& trap; + TrapDomain& trap; Store store; Store::Handle waitingForNewLabel{std::monostate{}}; swift::ModuleDecl& currentModule; diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index 8a2e489683d..7447fa8f9b3 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -36,12 +36,14 @@ using SILBoxTypeReprTag = SilBoxTypeReprTag; MAP_TAG(Stmt); MAP_TAG(StmtCondition); +MAP_TYPE_TO_TAG(StmtConditionElement, ConditionElementTag); MAP_TAG(CaseLabelItem); #define ABSTRACT_STMT(CLASS, PARENT) MAP_SUBTAG(CLASS##Stmt, PARENT) #define STMT(CLASS, PARENT) ABSTRACT_STMT(CLASS, PARENT) #include MAP_TAG(Expr); +MAP_TAG(Argument); #define ABSTRACT_EXPR(CLASS, PARENT) MAP_SUBTAG(CLASS##Expr, PARENT) #define EXPR(CLASS, PARENT) ABSTRACT_EXPR(CLASS, PARENT) #include diff --git a/swift/extractor/infra/TargetFile.cpp b/swift/extractor/infra/TargetFile.cpp new file mode 100644 index 00000000000..5051c0c191f --- /dev/null +++ b/swift/extractor/infra/TargetFile.cpp @@ -0,0 +1,73 @@ +#include "swift/extractor/infra/TargetFile.h" + +#include +#include + +namespace codeql { +namespace { +[[noreturn]] void error(const char* action, const std::string& arg, std::error_code ec) { + std::cerr << "Unable to " << action << ": " << arg << " (" << ec.message() << ")\n"; + std::abort(); +} + +[[noreturn]] void error(const char* action, const std::string& arg) { + error(action, arg, {errno, std::system_category()}); +} + +void ensureParentDir(const std::string& path) { + auto parent = llvm::sys::path::parent_path(path); + if (auto ec = llvm::sys::fs::create_directories(parent)) { + error("create directory", parent.str(), ec); + } +} + +std::string initPath(std::string_view target, std::string_view dir) { + std::string ret{dir}; + assert(!target.empty() && "target must be a non-empty path"); + if (target[0] != '/') { + ret += '/'; + } + ret.append(target); + ensureParentDir(ret); + return ret; +} +} // namespace + +TargetFile::TargetFile(std::string_view target, + std::string_view targetDir, + std::string_view workingDir) + : workingPath{initPath(target, workingDir)}, targetPath{initPath(target, targetDir)} { + errno = 0; + // since C++17 "x" mode opens with O_EXCL (fails if file already exists) + if (auto f = std::fopen(targetPath.c_str(), "wx")) { + std::fclose(f); + out.open(workingPath); + checkOutput("open file for writing"); + } else { + if (errno != EEXIST) { + error("open file for writing", targetPath); + } + // else we just lost the race, do nothing (good() will return false to signal this) + } +} + +bool TargetFile::good() const { + return out && out.is_open(); +} + +void TargetFile::commit() { + assert(good()); + out.close(); + errno = 0; + if (std::rename(workingPath.c_str(), targetPath.c_str()) != 0) { + error("rename file", targetPath); + } +} + +void TargetFile::checkOutput(const char* action) { + if (!out) { + error(action, workingPath); + } +} + +} // namespace codeql diff --git a/swift/extractor/infra/TargetFile.h b/swift/extractor/infra/TargetFile.h new file mode 100644 index 00000000000..91a6f1651f1 --- /dev/null +++ b/swift/extractor/infra/TargetFile.h @@ -0,0 +1,40 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +namespace codeql { + +// Only the first process trying to open an `TargetFile` for a given `target` is allowed to do +// so, all others will have an instance with `good() == false` and failing on any other operation. +// The content streamed to the `TargetFile` is written to `workingDir/target`, and is moved onto +// `targetDir/target` only when `commit()` is called +class TargetFile { + std::string workingPath; + std::string targetPath; + std::ofstream out; + + public: + TargetFile(std::string_view target, std::string_view targetDir, std::string_view workingDir); + + bool good() const; + void commit(); + + template + TargetFile& operator<<(T&& value) { + errno = 0; + out << value; + checkOutput("write to file"); + return *this; + } + + private: + void checkOutput(const char* action); +}; + +} // namespace codeql diff --git a/swift/extractor/trap/TrapArena.h b/swift/extractor/trap/TrapArena.h deleted file mode 100644 index 99d0b4a5d3b..00000000000 --- a/swift/extractor/trap/TrapArena.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -#include -#include -#include - -#include "swift/extractor/trap/TrapLabel.h" - -namespace codeql { - -// TrapArena has the responsibilities to allocate distinct trap #-labels -// TODO this is now a small functionality that will be moved to code upcoming from other PRs -class TrapArena { - uint64_t id_{0}; - - public: - template - TrapLabel allocateLabel() { - return TrapLabel::unsafeCreateFromExplicitId(id_++); - } -}; - -} // namespace codeql diff --git a/swift/extractor/trap/TrapOutput.h b/swift/extractor/trap/TrapDomain.h similarity index 56% rename from swift/extractor/trap/TrapOutput.h rename to swift/extractor/trap/TrapDomain.h index 0e3f61d39e7..42aed53d499 100644 --- a/swift/extractor/trap/TrapOutput.h +++ b/swift/extractor/trap/TrapDomain.h @@ -2,18 +2,55 @@ #include #include "swift/extractor/trap/TrapLabel.h" +#include "swift/extractor/infra/TargetFile.h" namespace codeql { -// Sink for trap emissions and label assignments. This abstracts away `ofstream` operations -// like `ofstream`, an explicit bool operator is provided, that return false if something -// went wrong -// TODO better error handling -class TrapOutput { - std::ostream& out_; +// Abstracts a given trap output file, with its own universe of trap labels +class TrapDomain { + TargetFile& out_; public: - explicit TrapOutput(std::ostream& out) : out_{out} {} + explicit TrapDomain(TargetFile& out) : out_{out} {} + + template + void emit(const Entry& e) { + print(e); + } + + template + void debug(const Args&... args) { + print("/* DEBUG:"); + print(args...); + print("*/"); + } + + template + TrapLabel createLabel() { + auto ret = allocateLabel(); + assignStar(ret); + return ret; + } + + template + TrapLabel createLabel(Args&&... args) { + auto ret = allocateLabel(); + assignKey(ret, std::forward(args)...); + return ret; + } + + private: + uint64_t id_{0}; + + template + TrapLabel allocateLabel() { + return TrapLabel::unsafeCreateFromExplicitId(id_++); + } + + template + void print(const Args&... args) { + (out_ << ... << args) << '\n'; + } template void assignStar(TrapLabel label) { @@ -33,23 +70,6 @@ class TrapOutput { (oss << ... << keyParts); assignKey(label, oss.str()); } - - template - void emit(const Entry& e) { - print(e); - } - - template - void debug(const Args&... args) { - out_ << "/* DEBUG:\n"; - (out_ << ... << args) << "\n*/\n"; - } - - private: - template - void print(const Args&... args) { - (out_ << ... << args) << '\n'; - } }; } // namespace codeql diff --git a/swift/extractor/visitors/ExprVisitor.cpp b/swift/extractor/visitors/ExprVisitor.cpp index e6aabef4cea..730996a2739 100644 --- a/swift/extractor/visitors/ExprVisitor.cpp +++ b/swift/extractor/visitors/ExprVisitor.cpp @@ -611,11 +611,11 @@ void ExprVisitor::fillAbstractClosureExpr(const swift::AbstractClosureExpr& expr } TrapLabel ExprVisitor::emitArgument(const swift::Argument& arg) { - auto argLabel = dispatcher_.createLabel(); - assert(arg.getExpr() && "Argument has getExpr"); - dispatcher_.emit( - ArgumentsTrap{argLabel, arg.getLabel().str().str(), dispatcher_.fetchLabel(arg.getExpr())}); - return argLabel; + auto entry = dispatcher_.createUncachedEntry(arg); + entry.label = arg.getLabel().str().str(); + entry.expr = dispatcher_.fetchLabel(arg.getExpr()); + dispatcher_.emit(entry); + return entry.id; } void ExprVisitor::emitImplicitConversionExpr(swift::ImplicitConversionExpr* expr, diff --git a/swift/extractor/visitors/StmtVisitor.cpp b/swift/extractor/visitors/StmtVisitor.cpp index 21f93828ed7..bc8a8a30933 100644 --- a/swift/extractor/visitors/StmtVisitor.cpp +++ b/swift/extractor/visitors/StmtVisitor.cpp @@ -7,26 +7,22 @@ void StmtVisitor::visitLabeledStmt(swift::LabeledStmt* stmt) { emitLabeledStmt(stmt, label); } -void StmtVisitor::visitStmtCondition(swift::StmtCondition* cond) { - auto label = dispatcher_.assignNewLabel(cond); - dispatcher_.emit(StmtConditionsTrap{label}); - unsigned index = 0; - for (const auto& cond : *cond) { - auto condLabel = dispatcher_.createLabel(); - dispatcher_.attachLocation(cond, condLabel); - dispatcher_.emit(ConditionElementsTrap{condLabel}); - dispatcher_.emit(StmtConditionElementsTrap{label, index++, condLabel}); - if (auto boolean = cond.getBooleanOrNull()) { - auto elementLabel = dispatcher_.fetchLabel(boolean); - dispatcher_.emit(ConditionElementBooleansTrap{condLabel, elementLabel}); - } else if (auto pattern = cond.getPatternOrNull()) { - auto patternLabel = dispatcher_.fetchLabel(pattern); - auto initilizerLabel = dispatcher_.fetchLabel(cond.getInitializer()); - dispatcher_.emit(ConditionElementPatternsTrap{condLabel, patternLabel}); - dispatcher_.emit(ConditionElementInitializersTrap{condLabel, initilizerLabel}); - } - /// TODO: Implement availability +codeql::StmtCondition StmtVisitor::translateStmtCondition(const swift::StmtCondition& cond) { + auto entry = dispatcher_.createEntry(cond); + entry.elements = dispatcher_.fetchRepeatedLabels(cond); + return entry; +} + +codeql::ConditionElement StmtVisitor::translateStmtConditionElement( + const swift::StmtConditionElement& element) { + auto entry = dispatcher_.createEntry(element); + if (auto boolean = element.getBooleanOrNull()) { + entry.boolean = dispatcher_.fetchLabel(boolean); + } else if (auto pattern = element.getPatternOrNull()) { + entry.pattern = dispatcher_.fetchLabel(pattern); + entry.initializer = dispatcher_.fetchLabel(element.getInitializer()); } + return entry; } void StmtVisitor::visitLabeledConditionalStmt(swift::LabeledConditionalStmt* stmt) { diff --git a/swift/extractor/visitors/StmtVisitor.h b/swift/extractor/visitors/StmtVisitor.h index 78273366d9e..e929a364399 100644 --- a/swift/extractor/visitors/StmtVisitor.h +++ b/swift/extractor/visitors/StmtVisitor.h @@ -10,7 +10,9 @@ class StmtVisitor : public AstVisitorBase { using AstVisitorBase::AstVisitorBase; void visitLabeledStmt(swift::LabeledStmt* stmt); - void visitStmtCondition(swift::StmtCondition* cond); + codeql::StmtCondition translateStmtCondition(const swift::StmtCondition& cond); + codeql::ConditionElement translateStmtConditionElement( + const swift::StmtConditionElement& element); void visitLabeledConditionalStmt(swift::LabeledConditionalStmt* stmt); void visitCaseLabelItem(swift::CaseLabelItem* labelItem); void visitBraceStmt(swift::BraceStmt* stmt); diff --git a/swift/extractor/visitors/SwiftVisitor.h b/swift/extractor/visitors/SwiftVisitor.h index 6380390af82..a13479246f4 100644 --- a/swift/extractor/visitors/SwiftVisitor.h +++ b/swift/extractor/visitors/SwiftVisitor.h @@ -22,7 +22,12 @@ class SwiftVisitor : private SwiftDispatcher { private: void visit(swift::Decl* decl) override { declVisitor.visit(decl); } void visit(swift::Stmt* stmt) override { stmtVisitor.visit(stmt); } - void visit(swift::StmtCondition* cond) override { stmtVisitor.visitStmtCondition(cond); } + void visit(const swift::StmtCondition* cond) override { + emit(stmtVisitor.translateStmtCondition(*cond)); + } + void visit(const swift::StmtConditionElement* element) override { + emit(stmtVisitor.translateStmtConditionElement(*element)); + } void visit(swift::CaseLabelItem* item) override { stmtVisitor.visitCaseLabelItem(item); } void visit(swift::Expr* expr) override { exprVisitor.visit(expr); } void visit(swift::Pattern* pattern) override { patternVisitor.visit(pattern); } diff --git a/swift/ql/lib/codeql/swift/generated/expr/Argument.qll b/swift/ql/lib/codeql/swift/generated/expr/Argument.qll index 9f16b90e3fe..7e8d6ea0ed3 100644 --- a/swift/ql/lib/codeql/swift/generated/expr/Argument.qll +++ b/swift/ql/lib/codeql/swift/generated/expr/Argument.qll @@ -1,8 +1,8 @@ // generated by codegen/codegen.py -import codeql.swift.elements.Element import codeql.swift.elements.expr.Expr +import codeql.swift.elements.Locatable -class ArgumentBase extends @argument, Element { +class ArgumentBase extends @argument, Locatable { override string getAPrimaryQlClass() { result = "Argument" } string getLabel() { arguments(this, result, _) } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 83ee8412131..ae57f4e6fbb 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -13,8 +13,7 @@ sourceLocationPrefix( // from codegen/schema.yml @element = - @argument -| @callable + @callable | @file | @generic_context | @iterable_decl_context @@ -34,7 +33,8 @@ files( ); @locatable = - @ast_node + @argument +| @ast_node | @condition_element ; diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected index 64bdae371b7..85102771b48 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected @@ -1,2 +1,2 @@ -| dot_syntax_call.swift:6:1:6:3 | call to foo(_:_:) | 0 | : X.Type | -| dot_syntax_call.swift:7:1:7:3 | call to bar() | 0 | : X.Type | +| dot_syntax_call.swift:6:1:6:3 | call to foo(_:_:) | 0 | dot_syntax_call.swift:6:1:6:1 | : X.Type | +| dot_syntax_call.swift:7:1:7:3 | call to bar() | 0 | dot_syntax_call.swift:7:1:7:1 | : X.Type | From 5773a734c307d656b52db8ac75e842f41821fb79 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 13 Jul 2022 11:27:50 +0200 Subject: [PATCH 378/736] Swift: slightly simplify a cppgen change --- swift/codegen/generators/cppgen.py | 38 +++++++++++++----------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/swift/codegen/generators/cppgen.py b/swift/codegen/generators/cppgen.py index 08af5fb82f9..420e82605e1 100644 --- a/swift/codegen/generators/cppgen.py +++ b/swift/codegen/generators/cppgen.py @@ -13,7 +13,6 @@ Each class in the schema gets a corresponding `struct` in `TrapClasses.h`, where import functools import pathlib -import typing from typing import Dict import inflection @@ -35,25 +34,22 @@ def _get_type(t: str) -> str: return t -def _get_fields(cls: schema.Class) -> typing.Iterable[cpp.Field]: - for p in cls.properties: - if "cpp_skip" in p.pragmas: - continue - trap_name = None - if not p.is_single: - trap_name = inflection.camelize(f"{cls.name}_{p.name}") - if not p.is_predicate: - trap_name = inflection.pluralize(trap_name) - args = dict( - field_name=p.name + ("_" if p.name in cpp.cpp_keywords else ""), - type=_get_type(p.type), - is_optional=p.is_optional, - is_repeated=p.is_repeated, - is_predicate=p.is_predicate, - trap_name=trap_name, - ) - args.update(cpp.get_field_override(p.name)) - yield cpp.Field(**args) +def _get_field(cls: schema.Class, p: schema.Property) -> cpp.Field: + trap_name = None + if not p.is_single: + trap_name = inflection.camelize(f"{cls.name}_{p.name}") + if not p.is_predicate: + trap_name = inflection.pluralize(trap_name) + args = dict( + field_name=p.name + ("_" if p.name in cpp.cpp_keywords else ""), + type=_get_type(p.type), + is_optional=p.is_optional, + is_repeated=p.is_repeated, + is_predicate=p.is_predicate, + trap_name=trap_name, + ) + args.update(cpp.get_field_override(p.name)) + return cpp.Field(**args) class Processor: @@ -69,7 +65,7 @@ class Processor: return cpp.Class( name=name, bases=[self._get_class(b) for b in cls.bases], - fields=list(_get_fields(cls)), + fields=[_get_field(cls, p) for p in cls.properties if "cpp_skip" not in p.pragmas], final=not cls.derived, trap_name=trap_name, ) From b1dd3c2d846664a7876ff06042590963c070244b Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 13 Jul 2022 13:58:36 +0100 Subject: [PATCH 379/736] Model java.util.Properties.getProperty --- .../code/java/dataflow/internal/ContainerFlow.qll | 3 +++ java/ql/lib/semmle/code/java/frameworks/Properties.qll | 4 +--- .../test/library-tests/dataflow/collections/Test.java | 10 ++++++++++ .../library-tests/dataflow/collections/flow.expected | 3 +++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll index 0f5d5e39f39..e9c457fc801 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll @@ -241,6 +241,9 @@ private class ContainerFlowSummaries extends SummaryModelCsv { "java.util;NavigableSet;true;pollLast;();;Argument[-1].Element;ReturnValue;value;manual", "java.util;NavigableSet;true;subSet;(Object,boolean,Object,boolean);;Argument[-1].Element;ReturnValue.Element;value;manual", "java.util;NavigableSet;true;tailSet;(Object,boolean);;Argument[-1].Element;ReturnValue.Element;value;manual", + "java.util;Properties;true;getProperty;(String);;Argument[-1].MapValue;ReturnValue;value;manual", + "java.util;Properties;true;getProperty;(String,String);;Argument[-1].MapValue;ReturnValue;value;manual", + "java.util;Properties;true;getProperty;(String,String);;Argument[1];ReturnValue;value;manual", "java.util;Scanner;true;next;(Pattern);;Argument[-1];ReturnValue;taint;manual", "java.util;Scanner;true;next;(String);;Argument[-1];ReturnValue;taint;manual", "java.util;SortedMap;true;headMap;(Object);;Argument[-1].MapKey;ReturnValue.MapKey;value;manual", diff --git a/java/ql/lib/semmle/code/java/frameworks/Properties.qll b/java/ql/lib/semmle/code/java/frameworks/Properties.qll index 7b749a13e05..0c7b83b2e52 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Properties.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Properties.qll @@ -10,13 +10,11 @@ class TypeProperty extends Class { } /** The `getProperty` method of the class `java.util.Properties`. */ -class PropertiesGetPropertyMethod extends ValuePreservingMethod { +class PropertiesGetPropertyMethod extends Method { PropertiesGetPropertyMethod() { getDeclaringType() instanceof TypeProperty and hasName("getProperty") } - - override predicate returnsValue(int arg) { arg = 1 } } /** The `get` method of the class `java.util.Properties`. */ diff --git a/java/ql/test/library-tests/dataflow/collections/Test.java b/java/ql/test/library-tests/dataflow/collections/Test.java index 216f373ca8c..9836070f42c 100644 --- a/java/ql/test/library-tests/dataflow/collections/Test.java +++ b/java/ql/test/library-tests/dataflow/collections/Test.java @@ -78,4 +78,14 @@ public class Test { sink(x18); // Flow }); } + + public void run4() { + Properties p = new Properties(); + p.put("key", tainted); + sink(p.getProperty("key")); // Flow + sink(p.getProperty("key", "defaultValue")); // Flow + + Properties clean = new Properties(); + sink(clean.getProperty("key", tainted)); // Flow + } } diff --git a/java/ql/test/library-tests/dataflow/collections/flow.expected b/java/ql/test/library-tests/dataflow/collections/flow.expected index 1a4bed0a6e7..875a4191722 100644 --- a/java/ql/test/library-tests/dataflow/collections/flow.expected +++ b/java/ql/test/library-tests/dataflow/collections/flow.expected @@ -11,3 +11,6 @@ | Test.java:49:20:49:26 | tainted | Test.java:60:12:60:14 | x14 | | Test.java:73:11:73:17 | tainted | Test.java:75:10:75:12 | x17 | | Test.java:73:11:73:17 | tainted | Test.java:78:12:78:14 | x18 | +| Test.java:84:18:84:24 | tainted | Test.java:85:10:85:29 | getProperty(...) | +| Test.java:84:18:84:24 | tainted | Test.java:86:10:86:45 | getProperty(...) | +| Test.java:89:35:89:41 | tainted | Test.java:89:10:89:42 | getProperty(...) | From f9da4a045624ad49c755a9f880dc7713a6729dbd Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 13 Jul 2022 14:11:31 +0100 Subject: [PATCH 380/736] Add change note --- java/ql/lib/change-notes/2022-07-13-properites.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2022-07-13-properites.md diff --git a/java/ql/lib/change-notes/2022-07-13-properites.md b/java/ql/lib/change-notes/2022-07-13-properites.md new file mode 100644 index 00000000000..2be74455704 --- /dev/null +++ b/java/ql/lib/change-notes/2022-07-13-properites.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added data-flow models for `java.util.Properites`. Additional results may be found where relevant data is stored in and then retrieved from a `Properties` instance. From f7c47b6c75f79430e75147d224ce5049352be8ee Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Wed, 13 Jul 2022 08:34:48 -0700 Subject: [PATCH 381/736] Update python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py Co-authored-by: Taus --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py index b7099b3d6c0..96aeb436a9b 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.py @@ -3,5 +3,5 @@ blob_client.require_encryption = True blob_client.key_encryption_key = kek # GOOD: Must use `encryption_version` set to `2.0` blob_client.encryption_version = '2.0' # Use Version 2.0! -with open(“decryptedcontentfile.txtâ€, “rbâ€) as stream: +with open("decryptedcontentfile.txt", "rb") as stream: blob_client.upload_blob(stream, overwrite=OVERWRITE_EXISTING) \ No newline at end of file From 2cc703387b0c42a7c260cc5e400d08e9a7c08ce2 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 14 Jul 2022 00:05:19 +0000 Subject: [PATCH 382/736] use taint config for data flow --- .../ManuallyCheckHttpVerb.ql | 48 ++++++++----------- .../ManuallyCheckHttpVerb.expected | 32 +++++++++++++ .../ManuallyCheckHttpVerb.rb | 18 ++++++- 3 files changed, 70 insertions(+), 28 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 72574e148d2..3de3a7a03d5 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -1,7 +1,7 @@ /** * @name Manually checking http verb instead of using built in rails routes and protections * @description 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 mappting resources and verbs to specific methods. - * @kind problem + * @kind path-problem * @problem.severity error * @security-severity 5.0 * @precision low @@ -13,6 +13,8 @@ import ruby 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 { @@ -70,32 +72,24 @@ class RequestGet extends DataFlow::CallNode { } } -// A conditional expression where the condition uses `request.method`, `request.request_method`, `request.raw_request_method`, `request.request_method_symbol`, or `request.get?` in some way. -// e.g. -// ``` -// r = request.request_method -// if r == "GET" -// ... -// ``` -class RequestMethodConditional extends DataFlow::Node { - RequestMethodConditional() { - // We have to cast the dataflow node down to a specific CFG node (`ExprNodes::ConditionalExprCfgNode`) to be able to call `getCondition()`. - // We then find the dataflow node corresponding to the condition CFG node, - // and filter for just nodes where a request method accessor value flows to them. - exists(DataFlow::Node conditionNode | - conditionNode.asExpr() = this.asExpr().(ExprNodes::ConditionalExprCfgNode).getCondition() - | - ( - any(RequestMethod r).flowsTo(conditionNode) or - any(RequestRequestMethod r).flowsTo(conditionNode) or - any(RequestRawRequestMethod r).flowsTo(conditionNode) or - any(RequestRequestMethodSymbol r).flowsTo(conditionNode) or - any(RequestGet r).flowsTo(conditionNode) - ) - ) +class HttpVerbConfig extends TaintTracking::Configuration { + HttpVerbConfig() { this = "HttpVerbConfig" } + + override predicate isSource(DataFlow::Node source) { + source instanceof RequestMethod or + source instanceof RequestRequestMethod or + source instanceof RequestEnvMethod or + source instanceof RequestRawRequestMethod or + source instanceof RequestRequestMethodSymbol or + source instanceof RequestGet + } + + override predicate isSink(DataFlow::Node sink) { + exists(ExprNodes::ConditionalExprCfgNode c | c.getCondition() = sink.asExpr()) or + exists(ExprNodes::CaseExprCfgNode c | c.getValue() = sink.asExpr()) } } -from RequestMethodConditional req -select req, - "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 mappting resources and verbs to specific methods." +from HttpVerbConfig config, DataFlow::Node source, DataFlow::Node sink +where config.hasFlow(source, sink) +select sink.asExpr().getExpr(), 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 mappting resources and verbs to specific methods." diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected index e69de29bb2d..9102005a67e 100644 --- a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected +++ b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected @@ -0,0 +1,32 @@ +edges +| ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env : | ManuallyCheckHttpVerb.rb:11:14:11:42 | ...[...] : | +| ManuallyCheckHttpVerb.rb:11:14:11:42 | ...[...] : | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | +| ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method : | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | +| ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method : | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | +| ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method : | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | +| ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol : | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | +| ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env : | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | +nodes +| ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | semmle.label | call to get? | +| ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env : | semmle.label | call to env : | +| ManuallyCheckHttpVerb.rb:11:14:11:42 | ...[...] : | semmle.label | ...[...] : | +| ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | semmle.label | ... == ... | +| ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method : | semmle.label | call to request_method : | +| ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | semmle.label | ... == ... | +| ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method : | semmle.label | call to method : | +| ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | semmle.label | ... == ... | +| ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method : | semmle.label | call to raw_request_method : | +| ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | semmle.label | ... == ... | +| ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol : | semmle.label | call to request_method_symbol : | +| ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | semmle.label | ... == ... | +| ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env : | semmle.label | call to env : | +| ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | semmle.label | ...[...] | +subpaths +#select +| ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | 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 mappting resources and verbs to specific methods. | diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb index ad0f5b45566..055e9d98638 100644 --- a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb +++ b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.rb @@ -38,6 +38,14 @@ class ExampleController < ActionController::Base end end + # Should not find + def baz2 + method = request.raw_request_method + if some_other_function == "GET" + Resource.find(id: params[:id]) + end + end + # Should find def foobarbaz method = request.request_method_symbol @@ -56,7 +64,15 @@ class ExampleController < ActionController::Base end end - + # Should not find + def resource_action + case request.random_method + when "GET" + Resource.find(id: params[:id]) + when "POST" + Resource.new(id: params[:id], details: params[:details]) + end + end end class SafeController < ActionController::Base From ae634367c99f404fb3f2a92944243ccef9d50b95 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 14 Jul 2022 00:11:25 +0000 Subject: [PATCH 383/736] add qhelp file --- .../ManuallyCheckHttpVerb.qhelp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qhelp diff --git a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qhelp b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qhelp new file mode 100644 index 00000000000..5d7378ef003 --- /dev/null +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qhelp @@ -0,0 +1,23 @@ + + + +

    + Manually checking the HTTP request verb inside of a controller method can lead to + CSRF bypass if GET or HEAD requests are handled improperly. +

    +
    + +

    + It is better to use different controller methods for each resource/http verb combination + and configure the Rails routes in your application to call them accordingly. +

    +
    + + +

    + See https://guides.rubyonrails.org/routing.html for more information. +

    +
    +
    From ee79834cc80671d5e4535969e600346e4ea6708e Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 14 Jul 2022 00:15:39 +0000 Subject: [PATCH 384/736] formatting in qhelp --- .../manually-check-http-verb/ManuallyCheckHttpVerb.qhelp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qhelp b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qhelp index 5d7378ef003..d50c7f0bf30 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qhelp +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.qhelp @@ -16,8 +16,8 @@ -

    +

  • See https://guides.rubyonrails.org/routing.html for more information. -

    +
  • From 9a186ba5d2a524bc1e04851d22fcace19f1100f6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 14 Jul 2022 00:18:56 +0000 Subject: [PATCH 385/736] 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 06ec8d978d4..ce777afae1d 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -36,7 +36,7 @@ java.lang,13,,58,,,,,,,,,,,8,,,,,4,,,1,,,,,,,,,,,,,,,46,12 java.net,10,3,7,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,3,7, java.nio,15,,6,,13,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,6, java.sql,11,,,,,,,,,4,,,,,,,,,,,,,,,,7,,,,,,,,,,,, -java.util,44,,438,,,,,,,,,,,34,,,,,,5,2,,1,2,,,,,,,,,,,,,24,414 +java.util,44,,441,,,,,,,,,,,34,,,,,,5,2,,1,2,,,,,,,,,,,,,24,417 javax.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,7,, javax.jms,,9,57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,57, javax.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index 7b45a3115b1..3e4ea1201bf 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -15,9 +15,9 @@ Java framework & library support `Apache HttpComponents `_,"``org.apache.hc.core5.*``, ``org.apache.http``",5,136,28,,,3,,,,25 `Google Guava `_,``com.google.common.*``,,728,39,,6,,,,, `JSON-java `_,``org.json``,,236,,,,,,,, - Java Standard Library,``java.*``,3,549,130,28,,,7,,,10 + Java Standard Library,``java.*``,3,552,130,28,,,7,,,10 Java extensions,"``javax.*``, ``jakarta.*``",63,609,32,,,4,,1,1,2 `Spring `_,``org.springframework.*``,29,476,101,,,,19,14,,29 Others,"``androidx.slice``, ``cn.hutool.core.codec``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.opensymphony.xwork2.ognl``, ``com.rabbitmq.client``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``groovy.lang``, ``groovy.util``, ``jodd.json``, ``kotlin.jvm.internal``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.apache.commons.codec``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.logging``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.logging.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.hibernate``, ``org.jboss.logging``, ``org.jdbi.v3.core``, ``org.jooq``, ``org.mvel2``, ``org.scijava.log``, ``org.slf4j``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",65,395,932,,,,14,18,,3 - Totals,,217,6410,1474,117,6,10,107,33,1,84 + Totals,,217,6413,1474,117,6,10,107,33,1,84 From 3dd61cadf44297f672a9e550b289781abf325839 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 14 Jul 2022 00:19:36 +0000 Subject: [PATCH 386/736] formatting query --- .../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 3de3a7a03d5..e7553b39a3d 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -74,14 +74,14 @@ class RequestGet extends DataFlow::CallNode { class HttpVerbConfig extends TaintTracking::Configuration { HttpVerbConfig() { this = "HttpVerbConfig" } - + override predicate isSource(DataFlow::Node source) { - source instanceof RequestMethod or - source instanceof RequestRequestMethod or - source instanceof RequestEnvMethod or - source instanceof RequestRawRequestMethod or - source instanceof RequestRequestMethodSymbol or - source instanceof RequestGet + source instanceof RequestMethod or + source instanceof RequestRequestMethod or + source instanceof RequestEnvMethod or + source instanceof RequestRawRequestMethod or + source instanceof RequestRequestMethodSymbol or + source instanceof RequestGet } override predicate isSink(DataFlow::Node sink) { @@ -92,4 +92,5 @@ class HttpVerbConfig extends TaintTracking::Configuration { from HttpVerbConfig config, DataFlow::Node source, DataFlow::Node sink where config.hasFlow(source, sink) -select sink.asExpr().getExpr(), 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 mappting resources and verbs to specific methods." +select sink.asExpr().getExpr(), 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 mappting resources and verbs to specific methods." From 8ca7d7d775cf8540acbb7539fad7830c04eb3ed2 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 14 Jul 2022 00:22:38 +0000 Subject: [PATCH 387/736] update change note --- ruby/ql/lib/change-notes/released/0.3.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/change-notes/released/0.3.1.md b/ruby/ql/lib/change-notes/released/0.3.1.md index 64efa15884a..392aa6f0b27 100644 --- a/ruby/ql/lib/change-notes/released/0.3.1.md +++ b/ruby/ql/lib/change-notes/released/0.3.1.md @@ -2,4 +2,4 @@ ### Minor Analysis Improvements -- Calls to `ActiveRecord::Relation#annotate` have now been added to `ActiveRecordModelClass#sqlFragmentArgument` so that it can be used as a sink for queries like rb/sql-injection. \ No newline at end of file +- Calls to `ActiveRecord::Relation#annotate` are now recognized as`SqlExecution`s so that it will be considered as a sink for queries like rb/sql-injection. \ No newline at end of file From 4c53c341f6c2fb9022b18c69c6ed6655b0a8669f Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Jul 2022 05:51:45 +0200 Subject: [PATCH 388/736] Swift: make `TargetFile::good()` a class invariant Fallible initialization has been moved to a factory function, and `commit` has been moved to the destructor. --- swift/extractor/SwiftExtractor.cpp | 35 +++++++++---------- swift/extractor/infra/TargetFile.cpp | 50 ++++++++++++++++++++-------- swift/extractor/infra/TargetFile.h | 25 ++++++++------ 3 files changed, 69 insertions(+), 41 deletions(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 88ad2152473..b36db1ba23b 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -77,6 +77,20 @@ static llvm::SmallVector getTopLevelDecls(swift::ModuleDecl& modul return ret; } +static void dumpArgs(TargetFile& out, const SwiftExtractorConfiguration& config) { + out << "/* extractor-args:\n"; + for (const auto& opt : config.frontendOptions) { + out << " " << std::quoted(opt) << " \\\n"; + } + out << "\n*/\n"; + + out << "/* swift-frontend-args:\n"; + for (const auto& opt : config.patchedFrontendOptions) { + out << " " << std::quoted(opt) << " \\\n"; + } + out << "\n*/\n"; +} + static void extractDeclarations(const SwiftExtractorConfiguration& config, swift::CompilerInstance& compiler, swift::ModuleDecl& module, @@ -86,25 +100,13 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, // The extractor can be called several times from different processes with // the same input file(s). Using `TargetFile` the first process will win, and the following // will just skip the work - TargetFile trapStream{filename + ".trap", config.trapDir, config.getTempTrapDir()}; - if (!trapStream.good()) { + auto trapTarget = TargetFile::create(filename + ".trap", config.trapDir, config.getTempTrapDir()); + if (!trapTarget) { // another process arrived first, nothing to do for us return; } - - trapStream << "/* extractor-args:\n"; - for (const auto& opt : config.frontendOptions) { - trapStream << " " << std::quoted(opt) << " \\\n"; - } - trapStream << "\n*/\n"; - - trapStream << "/* swift-frontend-args:\n"; - for (const auto& opt : config.patchedFrontendOptions) { - trapStream << " " << std::quoted(opt) << " \\\n"; - } - trapStream << "\n*/\n"; - - TrapDomain trap{trapStream}; + dumpArgs(*trapTarget, config); + TrapDomain trap{*trapTarget}; // TODO: move default location emission elsewhere, possibly in a separate global trap file // the following cannot conflict with actual files as those have an absolute path starting with / @@ -129,7 +131,6 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, auto fileLabel = trap.createLabel(name.str().str()); trap.emit(FilesTrap{fileLabel, name.str().str()}); } - trapStream.commit(); } static std::unordered_set collectInputFilenames(swift::CompilerInstance& compiler) { diff --git a/swift/extractor/infra/TargetFile.cpp b/swift/extractor/infra/TargetFile.cpp index 5051c0c191f..d6c4df74318 100644 --- a/swift/extractor/infra/TargetFile.cpp +++ b/swift/extractor/infra/TargetFile.cpp @@ -1,5 +1,10 @@ #include "swift/extractor/infra/TargetFile.h" +#include +#include +#include +#include + #include #include @@ -36,31 +41,49 @@ std::string initPath(std::string_view target, std::string_view dir) { TargetFile::TargetFile(std::string_view target, std::string_view targetDir, std::string_view workingDir) - : workingPath{initPath(target, workingDir)}, targetPath{initPath(target, targetDir)} { + : workingPath{initPath(target, workingDir)}, targetPath{initPath(target, targetDir)} {} + +bool TargetFile::init() { errno = 0; // since C++17 "x" mode opens with O_EXCL (fails if file already exists) if (auto f = std::fopen(targetPath.c_str(), "wx")) { std::fclose(f); out.open(workingPath); checkOutput("open file for writing"); - } else { - if (errno != EEXIST) { - error("open file for writing", targetPath); - } - // else we just lost the race, do nothing (good() will return false to signal this) + return true; } + if (errno != EEXIST) { + error("open file for writing", targetPath); + } + // else we just lost the race + return false; } -bool TargetFile::good() const { - return out && out.is_open(); +std::optional TargetFile::create(std::string_view target, + std::string_view targetDir, + std::string_view workingDir) { + TargetFile ret{target, targetDir, workingDir}; + if (ret.init()) return {std::move(ret)}; + return std::nullopt; +} + +TargetFile& TargetFile::operator=(TargetFile&& other) { + if (this != &other) { + commit(); + workingPath = std::move(other.workingPath); + targetPath = std::move(other.targetPath); + out = std::move(other.out); + } + return *this; } void TargetFile::commit() { - assert(good()); - out.close(); - errno = 0; - if (std::rename(workingPath.c_str(), targetPath.c_str()) != 0) { - error("rename file", targetPath); + if (out.is_open()) { + out.close(); + errno = 0; + if (std::rename(workingPath.c_str(), targetPath.c_str()) != 0) { + error("rename file", targetPath); + } } } @@ -69,5 +92,4 @@ void TargetFile::checkOutput(const char* action) { error(action, workingPath); } } - } // namespace codeql diff --git a/swift/extractor/infra/TargetFile.h b/swift/extractor/infra/TargetFile.h index 91a6f1651f1..551abe0bb76 100644 --- a/swift/extractor/infra/TargetFile.h +++ b/swift/extractor/infra/TargetFile.h @@ -2,28 +2,29 @@ #include #include -#include -#include +#include #include -#include -#include namespace codeql { -// Only the first process trying to open an `TargetFile` for a given `target` is allowed to do -// so, all others will have an instance with `good() == false` and failing on any other operation. +// Only the first process trying to create a `TargetFile` for a given `target` is allowed to do +// so, all others will have `create` return `std::nullopt`. // The content streamed to the `TargetFile` is written to `workingDir/target`, and is moved onto -// `targetDir/target` only when `commit()` is called +// `targetDir/target` on destruction. class TargetFile { std::string workingPath; std::string targetPath; std::ofstream out; public: - TargetFile(std::string_view target, std::string_view targetDir, std::string_view workingDir); + static std::optional create(std::string_view target, + std::string_view targetDir, + std::string_view workingDir); - bool good() const; - void commit(); + ~TargetFile() { commit(); } + + TargetFile(TargetFile&& other) = default; + TargetFile& operator=(TargetFile&& other); template TargetFile& operator<<(T&& value) { @@ -34,7 +35,11 @@ class TargetFile { } private: + TargetFile(std::string_view target, std::string_view targetDir, std::string_view workingDir); + + bool init(); void checkOutput(const char* action); + void commit(); }; } // namespace codeql From d748cb483d1ea03d6786d62eaf5a2292696bdd4b Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Jul 2022 06:10:12 +0200 Subject: [PATCH 389/736] Swift: include cleanup Fix a problem with `sstream` not being transitively included on macOS. --- swift/extractor/SwiftExtractor.cpp | 4 ---- swift/extractor/trap/TrapDomain.h | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index b36db1ba23b..60ac3436fa8 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -1,11 +1,7 @@ #include "SwiftExtractor.h" -#include -#include #include -#include #include -#include #include #include diff --git a/swift/extractor/trap/TrapDomain.h b/swift/extractor/trap/TrapDomain.h index 42aed53d499..c84a3910134 100644 --- a/swift/extractor/trap/TrapDomain.h +++ b/swift/extractor/trap/TrapDomain.h @@ -1,6 +1,8 @@ #pragma once #include +#include + #include "swift/extractor/trap/TrapLabel.h" #include "swift/extractor/infra/TargetFile.h" From f1144b96720355a7c33c3b1c000e8a95bdc880be Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Jul 2022 06:18:51 +0200 Subject: [PATCH 390/736] Swift: small TypeRepr visit rewording --- swift/extractor/visitors/SwiftVisitor.h | 2 +- swift/extractor/visitors/TypeVisitor.cpp | 4 ++-- swift/extractor/visitors/TypeVisitor.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/swift/extractor/visitors/SwiftVisitor.h b/swift/extractor/visitors/SwiftVisitor.h index f9464eafa46..53a259b5584 100644 --- a/swift/extractor/visitors/SwiftVisitor.h +++ b/swift/extractor/visitors/SwiftVisitor.h @@ -27,7 +27,7 @@ class SwiftVisitor : private SwiftDispatcher { void visit(swift::Pattern* pattern) override { patternVisitor.visit(pattern); } void visit(swift::TypeBase* type) override { typeVisitor.visit(type); } void visit(swift::TypeRepr* typeRepr, swift::Type type) override { - typeVisitor.visit(*typeRepr, type); + emit(typeVisitor.translateTypeRepr(*typeRepr, type)); } DeclVisitor declVisitor{*this}; diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index 5a1896080e0..868ce1a0db7 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -8,10 +8,10 @@ void TypeVisitor::visit(swift::TypeBase* type) { dispatcher_.emit(TypesTrap{label, type->getString(), canonicalLabel}); } -void TypeVisitor::visit(const swift::TypeRepr& typeRepr, swift::Type type) { +codeql::TypeRepr TypeVisitor::translateTypeRepr(const swift::TypeRepr& typeRepr, swift::Type type) { auto entry = dispatcher_.createEntry(typeRepr); entry.type = dispatcher_.fetchLabel(type); - dispatcher_.emit(entry); + return entry; } void TypeVisitor::visitProtocolType(swift::ProtocolType* type) { diff --git a/swift/extractor/visitors/TypeVisitor.h b/swift/extractor/visitors/TypeVisitor.h index b2deab60369..4fcd8a489f9 100644 --- a/swift/extractor/visitors/TypeVisitor.h +++ b/swift/extractor/visitors/TypeVisitor.h @@ -9,7 +9,7 @@ class TypeVisitor : public TypeVisitorBase { using TypeVisitorBase::TypeVisitorBase; void visit(swift::TypeBase* type); - void visit(const swift::TypeRepr& typeRepr, swift::Type type); + codeql::TypeRepr translateTypeRepr(const swift::TypeRepr& typeRepr, swift::Type type); void visitProtocolType(swift::ProtocolType* type); void visitEnumType(swift::EnumType* type); From da8123072dba05681836df5908bb1c4d110a807d Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 14 Jul 2022 09:38:10 +0200 Subject: [PATCH 391/736] Apply suggestions from doc review Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- .../src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp | 6 +++--- .../ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql | 2 +- .../change-notes/2022-06-27-case-sensitive-middleware.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp index 13e2331bc62..96bf1c18c94 100644 --- a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp +++ b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.qhelp @@ -7,21 +7,21 @@

    Using a case-sensitive regular expression path in a middleware route enables an attacker to bypass that middleware when accessing an endpoint with a case-insensitive path. -Paths specified using a string are case insensitive, whereas regular expressions are case sensitive by default. +Paths specified using a string are case-insensitive, whereas regular expressions are case-sensitive by default.

    When using a regular expression as a middleware path, make sure the regular expression is -case insensitive by adding the i flag. +case-insensitive by adding the i flag.

    The following example restricts access to paths in the /admin path to users logged in as -an administrator: +administrators:

    diff --git a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql index df3beecfb13..ccf659bf024 100644 --- a/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql +++ b/javascript/ql/src/Security/CWE-178/CaseSensitiveMiddlewarePath.ql @@ -1,6 +1,6 @@ /** * @name Case-sensitive middleware path - * @description Middleware with case-sensitive paths do not protect endpoints with case-insensitive paths + * @description Middleware with case-sensitive paths do not protect endpoints with case-insensitive paths. * @kind problem * @problem.severity warning * @security-severity 7.3 diff --git a/javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md b/javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md index 1593596e939..09895db1e2c 100644 --- a/javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md +++ b/javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md @@ -2,5 +2,5 @@ category: newQuery --- -- A new query "case sensitive middleware path" (`js/case-sensitive-middleware-path`) has been added. +- A new query "Case-sensitive middleware path" (`js/case-sensitive-middleware-path`) has been added. It highlights middleware routes that can be bypassed due to having a case-sensitive regular expression path. From ed80089d7ceffc38164a0a1cd45e1f4d36a3c99b Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 09:45:44 +0200 Subject: [PATCH 392/736] fix some QL-for-QL warnings in JS --- .../modelbuilding/extraction/ExtractEndpointData.qll | 4 ++-- .../semmle/javascript/dataflow/internal/CallGraphs.qll | 2 +- .../dataflow/internal/PropertyTypeInference.qll | 4 ++-- .../frameworks/AngularJS/AngularJSExpressions.qll | 4 ++-- .../ql/lib/semmle/javascript/frameworks/Handlebars.qll | 10 +++++----- .../ql/src/Expressions/CompareIdenticalValues.ql | 2 +- .../ql/src/Security/CWE-200/PrivateFileExposure.ql | 2 +- ql/ql/src/queries/style/MissingParameterInQlDoc.ql | 2 +- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.qll b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.qll index 07ee16fda50..53d559d2568 100644 --- a/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.qll +++ b/javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/ExtractEndpointData.qll @@ -188,10 +188,10 @@ module FlowFromSource { Query getQuery() { result = q } - /** The sinks are the endpoints we're extracting. */ + /** Holds if `sink` is an endpoint we're extracting. */ override predicate isSink(DataFlow::Node sink) { sink = getAnEndpoint(q) } - /** The sinks are the endpoints we're extracting. */ + /** Holds if `sink` is an endpoint we're extracting. */ override predicate isSink(DataFlow::Node sink, DataFlow::FlowLabel lbl) { sink = getAnEndpoint(q) and exists(lbl) } diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll index c2ce840fae2..94a6532b107 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll @@ -190,7 +190,7 @@ module CallGraph { } /** - * Holds if `ref` installs an accessor on an object. Such property writes should not + * Holds if `write` installs an accessor on an object. Such property writes should not * be considered calls to an accessor. */ pragma[nomagic] diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/PropertyTypeInference.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/PropertyTypeInference.qll index 0f6b816daeb..15a4fec7406 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/PropertyTypeInference.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/PropertyTypeInference.qll @@ -10,7 +10,7 @@ private import AbstractPropertiesImpl private import AbstractValuesImpl /** - * Flow analysis for property reads, either explicitly (`x.p` or `x[e]`) or + * An analyzed property read, either explicitly (`x.p` or `x[e]`) or * implicitly. */ abstract class AnalyzedPropertyRead extends DataFlow::AnalyzedNode { @@ -86,7 +86,7 @@ pragma[noinline] private predicate isTrackedPropertyName(string prop) { exists(MkAbstractProperty(_, prop)) } /** - * Flow analysis for property writes, including exports (which are + * An analyzed property write, including exports (which are * modeled as assignments to `module.exports`). */ abstract class AnalyzedPropertyWrite extends DataFlow::Node { diff --git a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSExpressions.qll b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSExpressions.qll index 050c123e30a..d379184c11f 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSExpressions.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSExpressions.qll @@ -92,10 +92,10 @@ abstract private class HtmlAttributeAsNgSourceProvider extends NgSourceProvider, endColumn = startColumn + src.length() - 1 } - /** The source code of the expression. */ + /** Gets the source code of the expression. */ abstract string getSource(); - /** The offset into the attribute where the expression starts. */ + /** Gets the offset into the attribute where the expression starts. */ abstract int getOffset(); override DOM::ElementDefinition getEnclosingElement() { result = this.getElement() } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Handlebars.qll b/javascript/ql/lib/semmle/javascript/frameworks/Handlebars.qll index 372e0145003..2e376f49ae7 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Handlebars.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Handlebars.qll @@ -61,13 +61,13 @@ private module HandlebarsTaintSteps { * the `FunctionNode` representing `function loudHelper`, and return its parameter `text`. */ private DataFlow::ParameterNode getRegisteredHelperParam( - string helperName, DataFlow::FunctionNode helperFunction, int paramIndex + string helperName, DataFlow::FunctionNode func, int paramIndex ) { exists(DataFlow::CallNode registerHelperCall | registerHelperCall = any(Handlebars::Handlebars hb).getAMemberCall("registerHelper") and registerHelperCall.getArgument(0).mayHaveStringValue(helperName) and - helperFunction = registerHelperCall.getArgument(1).getAFunctionValue() and - result = helperFunction.getParameter(paramIndex) + func = registerHelperCall.getArgument(1).getAFunctionValue() and + result = func.getParameter(paramIndex) ) } @@ -132,7 +132,7 @@ private module HandlebarsTaintSteps { private predicate isHandlebarsArgStep(DataFlow::Node pred, DataFlow::Node succ) { exists( string helperName, DataFlow::CallNode templatingCall, DataFlow::CallNode compileCall, - DataFlow::FunctionNode helperFunction + DataFlow::FunctionNode func | templatingCall = compiledTemplate(compileCall).getACall() and exists(string templateText, string paramName, int argIdx | @@ -140,7 +140,7 @@ private module HandlebarsTaintSteps { | pred = templatingCall.getArgument(0).getALocalSource().getAPropertyWrite(paramName).getRhs() and isTemplateHelperCallArg(templateText, helperName, argIdx, paramName) and - succ = getRegisteredHelperParam(helperName, helperFunction, argIdx) + succ = getRegisteredHelperParam(helperName, func, argIdx) ) ) } diff --git a/javascript/ql/src/Expressions/CompareIdenticalValues.ql b/javascript/ql/src/Expressions/CompareIdenticalValues.ql index 48eae0c49cd..19e9338fb6f 100644 --- a/javascript/ql/src/Expressions/CompareIdenticalValues.ql +++ b/javascript/ql/src/Expressions/CompareIdenticalValues.ql @@ -38,7 +38,7 @@ predicate accessWithConversions(Expr e, Variable v) { } /** - * A comment containing the word "NaN". + * Holds if `c` is a comment containing the word "NaN". */ predicate isNaNComment(Comment c, string filePath, int startLine) { c.getText().matches("%NaN%") and diff --git a/javascript/ql/src/Security/CWE-200/PrivateFileExposure.ql b/javascript/ql/src/Security/CWE-200/PrivateFileExposure.ql index add8679dee7..73a20ce2249 100644 --- a/javascript/ql/src/Security/CWE-200/PrivateFileExposure.ql +++ b/javascript/ql/src/Security/CWE-200/PrivateFileExposure.ql @@ -76,7 +76,7 @@ Folder getAPackageJsonFolder() { result = any(PackageJson json).getFile().getPar * the current working folder, or the root folder. * All of these might cause information to be leaked. * - * For the first case it is assumed that the presence of a `package.json` file means that a `node_modules` folder can also exist. + * For the first case it is assumed that the presence of a `package.json` file means that a "node_modules" folder can also exist. * * For the root/home/working folder, they contain so much information that they must leak information somehow (e.g. ssh keys in the `~/.ssh` folder). */ diff --git a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql index c2b1e80fe53..e0ac524e7ee 100644 --- a/ql/ql/src/queries/style/MissingParameterInQlDoc.ql +++ b/ql/ql/src/queries/style/MissingParameterInQlDoc.ql @@ -46,7 +46,7 @@ private string getAMentionedNonParameter(Predicate p) { not result = [ "true", "false", "NaN", "this", "forall", "exists", "null", "break", "return", "not", "if", - "then", "else", "import" + "then", "else", "import", "async" ] and not result = any(Aggregate a).getKind() and // min, max, sum, count, etc. not result = getMentionedThings(p.getLocation().getFile()) and From d1aa0d7dd38cc4c9a8c0942a7e57bb367bd7ffc4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 14 Jul 2022 08:56:03 +0000 Subject: [PATCH 393/736] Release preparation for version 2.10.1 --- cpp/ql/lib/CHANGELOG.md | 6 ++++++ .../0.3.1.md} | 7 ++++--- cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 6 ++++++ .../0.3.0.md} | 7 ++++--- cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 2 ++ .../Solorigate/lib/change-notes/released/1.2.1.md | 1 + .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 2 ++ .../Solorigate/src/change-notes/released/1.2.1.md | 1 + .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 2 ++ csharp/ql/lib/change-notes/released/0.3.1.md | 1 + csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 6 ++++++ .../0.3.0.md} | 7 ++++--- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 2 ++ go/ql/lib/change-notes/released/0.2.1.md | 1 + go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 2 ++ go/ql/src/change-notes/released/0.2.1.md | 1 + go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 13 +++++++++++++ .../2022-05-18-android-external-storage.md | 4 ---- .../change-notes/2022-06-13-kotlin-break-loops.md | 4 ---- java/ql/lib/change-notes/2022-06-27-isInline.md | 4 ---- java/ql/lib/change-notes/2022-07-12-errortype.md | 4 ---- java/ql/lib/change-notes/2022-07-13-properites.md | 4 ---- java/ql/lib/change-notes/released/0.3.1.md | 12 ++++++++++++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 12 ++++++++++++ .../2022-06-29-move-contextual-queries.md | 4 ---- .../0.3.0.md} | 13 +++++++++---- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 8 ++++++++ .../2022-06-22-sensitive-common-words copy.md | 4 ---- .../2022-06-22-sensitive-common-words.md | 4 ---- .../ql/lib/change-notes/2022-06-30-chownr.md | 4 ---- javascript/ql/lib/change-notes/released/0.2.1.md | 7 +++++++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 6 ++++++ .../0.3.0.md} | 7 ++++--- javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 15 +++++++++++++++ .../2022-06-22-sensitive-common-words.md | 4 ---- .../0.5.1.md} | 10 +++++++--- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 6 ++++++ .../0.3.0.md} | 7 ++++--- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 9 +++++++++ .../2022-06-22-sensitive-common-words.md | 4 ---- .../0.3.1.md} | 8 +++++--- ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 6 ++++++ .../0.3.0.md} | 7 ++++--- ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- 75 files changed, 204 insertions(+), 104 deletions(-) rename cpp/ql/lib/change-notes/{2022-07-12-cover-more-nullness-cases.md => released/0.3.1.md} (81%) rename cpp/ql/src/change-notes/{2022-06-29-move-contextual-queries.md => released/0.3.0.md} (77%) create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.1.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.1.md create mode 100644 csharp/ql/lib/change-notes/released/0.3.1.md rename csharp/ql/src/change-notes/{2022-06-29-move-contextual-queries.md => released/0.3.0.md} (77%) create mode 100644 go/ql/lib/change-notes/released/0.2.1.md create mode 100644 go/ql/src/change-notes/released/0.2.1.md delete mode 100644 java/ql/lib/change-notes/2022-05-18-android-external-storage.md delete mode 100644 java/ql/lib/change-notes/2022-06-13-kotlin-break-loops.md delete mode 100644 java/ql/lib/change-notes/2022-06-27-isInline.md delete mode 100644 java/ql/lib/change-notes/2022-07-12-errortype.md delete mode 100644 java/ql/lib/change-notes/2022-07-13-properites.md create mode 100644 java/ql/lib/change-notes/released/0.3.1.md delete mode 100644 java/ql/src/change-notes/2022-06-29-move-contextual-queries.md rename java/ql/src/change-notes/{2022-04-27-intent-verification.md => released/0.3.0.md} (57%) delete mode 100644 javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words copy.md delete mode 100644 javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words.md delete mode 100644 javascript/ql/lib/change-notes/2022-06-30-chownr.md create mode 100644 javascript/ql/lib/change-notes/released/0.2.1.md rename javascript/ql/src/change-notes/{2022-06-29-move-contextual-queries.md => released/0.3.0.md} (78%) delete mode 100644 python/ql/lib/change-notes/2022-06-22-sensitive-common-words.md rename python/ql/lib/change-notes/{2022-06-28-api-graph-api.md => released/0.5.1.md} (58%) rename python/ql/src/change-notes/{2022-06-29-move-contextual-queries.md => released/0.3.0.md} (77%) delete mode 100644 ruby/ql/lib/change-notes/2022-06-22-sensitive-common-words.md rename ruby/ql/lib/change-notes/{2022-07-11-command-execution.md => released/0.3.1.md} (65%) rename ruby/ql/src/change-notes/{2022-06-29-move-contextual-queries.md => released/0.3.0.md} (77%) diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index c1cefbed8f9..3e3f0b4531b 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.1 + +### Minor Analysis Improvements + +* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the the C++ logical and variable declarations in conditions. + ## 0.3.0 ### Deprecated APIs diff --git a/cpp/ql/lib/change-notes/2022-07-12-cover-more-nullness-cases.md b/cpp/ql/lib/change-notes/released/0.3.1.md similarity index 81% rename from cpp/ql/lib/change-notes/2022-07-12-cover-more-nullness-cases.md rename to cpp/ql/lib/change-notes/released/0.3.1.md index eef564991f5..4b9a3206c96 100644 --- a/cpp/ql/lib/change-notes/2022-07-12-cover-more-nullness-cases.md +++ b/cpp/ql/lib/change-notes/released/0.3.1.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 0.3.1 + +### Minor Analysis Improvements + * `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the the C++ logical and variable declarations in conditions. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 95f6e3a0ba6..bb106b1cb63 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.3.1 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index a20077271d7..ae668b219fb 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.3.1-dev +version: 0.3.1 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 2b404ff5288..e87fc5dce39 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.0 + +### Breaking Changes + +* Contextual queries and the query libraries they depend on have been moved to the `codeql/cpp-all` package. + ## 0.2.0 ## 0.1.4 diff --git a/cpp/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/cpp/ql/src/change-notes/released/0.3.0.md similarity index 77% rename from cpp/ql/src/change-notes/2022-06-29-move-contextual-queries.md rename to cpp/ql/src/change-notes/released/0.3.0.md index cc5464d58b3..75d99f333c9 100644 --- a/cpp/ql/src/change-notes/2022-06-29-move-contextual-queries.md +++ b/cpp/ql/src/change-notes/released/0.3.0.md @@ -1,4 +1,5 @@ ---- -category: breaking ---- +## 0.3.0 + +### Breaking Changes + * Contextual queries and the query libraries they depend on have been moved to the `codeql/cpp-all` package. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 5274e27ed52..95f6e3a0ba6 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.3.0 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 62cac967801..1a97e24c9c7 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.2.1-dev +version: 0.3.0 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 30c583ee913..de0a7eeae4b 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,5 @@ +## 1.2.1 + ## 1.2.0 ## 1.1.4 diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.1.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.1.md new file mode 100644 index 00000000000..ddf8866b672 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.1.md @@ -0,0 +1 @@ +## 1.2.1 diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 75430e73d1c..73dd403938c 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.2.0 +lastReleaseVersion: 1.2.1 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index bc7eaf4142c..3b56b5ac98e 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.2.1-dev +version: 1.2.1 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 30c583ee913..de0a7eeae4b 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 1.2.1 + ## 1.2.0 ## 1.1.4 diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.1.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.1.md new file mode 100644 index 00000000000..ddf8866b672 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.1.md @@ -0,0 +1 @@ +## 1.2.1 diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 75430e73d1c..73dd403938c 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.2.0 +lastReleaseVersion: 1.2.1 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 00725e23666..54326ca55ad 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.2.1-dev +version: 1.2.1 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 3f49fe5ade3..d1c89626798 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.3.1 + ## 0.3.0 ### Deprecated APIs diff --git a/csharp/ql/lib/change-notes/released/0.3.1.md b/csharp/ql/lib/change-notes/released/0.3.1.md new file mode 100644 index 00000000000..2b0719929a1 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/0.3.1.md @@ -0,0 +1 @@ +## 0.3.1 diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 95f6e3a0ba6..bb106b1cb63 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.3.1 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 3f371c01e92..6aff1d2ac68 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.3.1-dev +version: 0.3.1 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index e7ce0b0b471..bf9e8f9c41f 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.0 + +### Breaking Changes + +* Contextual queries and the query libraries they depend on have been moved to the `codeql/csharp-all` package. + ## 0.2.0 ### Query Metadata Changes diff --git a/csharp/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/csharp/ql/src/change-notes/released/0.3.0.md similarity index 77% rename from csharp/ql/src/change-notes/2022-06-29-move-contextual-queries.md rename to csharp/ql/src/change-notes/released/0.3.0.md index a27c68766c0..001d034c251 100644 --- a/csharp/ql/src/change-notes/2022-06-29-move-contextual-queries.md +++ b/csharp/ql/src/change-notes/released/0.3.0.md @@ -1,4 +1,5 @@ ---- -category: breaking ---- +## 0.3.0 + +### Breaking Changes + * Contextual queries and the query libraries they depend on have been moved to the `codeql/csharp-all` package. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 5274e27ed52..95f6e3a0ba6 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.3.0 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 1002c6a56ad..b4e5b89773f 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.2.1-dev +version: 0.3.0 groups: - csharp - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 112f4fab585..23c4fc2eb4f 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.2.1 + ## 0.2.0 ### Deprecated APIs diff --git a/go/ql/lib/change-notes/released/0.2.1.md b/go/ql/lib/change-notes/released/0.2.1.md new file mode 100644 index 00000000000..c260de2a9ee --- /dev/null +++ b/go/ql/lib/change-notes/released/0.2.1.md @@ -0,0 +1 @@ +## 0.2.1 diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 5274e27ed52..df29a726bcc 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.2.1 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 964f5d4dd13..8f46c7040bb 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.2.1-dev +version: 0.2.1 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index bed2509f5d3..1697aa9e561 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.2.1 + ## 0.2.0 ## 0.1.4 diff --git a/go/ql/src/change-notes/released/0.2.1.md b/go/ql/src/change-notes/released/0.2.1.md new file mode 100644 index 00000000000..c260de2a9ee --- /dev/null +++ b/go/ql/src/change-notes/released/0.2.1.md @@ -0,0 +1 @@ +## 0.2.1 diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 5274e27ed52..df29a726bcc 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.2.1 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 80a4430b8da..3aff018b452 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.2.1-dev +version: 0.2.1 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 41b23a74d1f..6b5e4ec9f09 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,16 @@ +## 0.3.1 + +### New Features + +* Added an `ErrorType` class. An instance of this class will be used if an extractor is unable to extract a type, or if an up/downgrade script is unable to provide a type. + +### Minor Analysis Improvements + +* Added data-flow models for `java.util.Properites`. Additional results may be found where relevant data is stored in and then retrieved from a `Properties` instance. +Added `Modifier.isInline()`. +* Removed Kotlin-specific database and QL structures for loops and `break`/`continue` statements. The Kotlin extractor was changed to reuse the Java structures for these constructs. +Added additional flow sources for uses of external storage on Android. + ## 0.3.0 ### Deprecated APIs diff --git a/java/ql/lib/change-notes/2022-05-18-android-external-storage.md b/java/ql/lib/change-notes/2022-05-18-android-external-storage.md deleted file mode 100644 index b3d5fa793b3..00000000000 --- a/java/ql/lib/change-notes/2022-05-18-android-external-storage.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -Added additional flow sources for uses of external storage on Android. \ No newline at end of file diff --git a/java/ql/lib/change-notes/2022-06-13-kotlin-break-loops.md b/java/ql/lib/change-notes/2022-06-13-kotlin-break-loops.md deleted file mode 100644 index 412cf7d5ff5..00000000000 --- a/java/ql/lib/change-notes/2022-06-13-kotlin-break-loops.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Removed Kotlin-specific database and QL structures for loops and `break`/`continue` statements. The Kotlin extractor was changed to reuse the Java structures for these constructs. diff --git a/java/ql/lib/change-notes/2022-06-27-isInline.md b/java/ql/lib/change-notes/2022-06-27-isInline.md deleted file mode 100644 index ad73ed8bf82..00000000000 --- a/java/ql/lib/change-notes/2022-06-27-isInline.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -Added `Modifier.isInline()`. diff --git a/java/ql/lib/change-notes/2022-07-12-errortype.md b/java/ql/lib/change-notes/2022-07-12-errortype.md deleted file mode 100644 index 97f851bb936..00000000000 --- a/java/ql/lib/change-notes/2022-07-12-errortype.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added an `ErrorType` class. An instance of this class will be used if an extractor is unable to extract a type, or if an up/downgrade script is unable to provide a type. diff --git a/java/ql/lib/change-notes/2022-07-13-properites.md b/java/ql/lib/change-notes/2022-07-13-properites.md deleted file mode 100644 index 2be74455704..00000000000 --- a/java/ql/lib/change-notes/2022-07-13-properites.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added data-flow models for `java.util.Properites`. Additional results may be found where relevant data is stored in and then retrieved from a `Properties` instance. diff --git a/java/ql/lib/change-notes/released/0.3.1.md b/java/ql/lib/change-notes/released/0.3.1.md new file mode 100644 index 00000000000..8c0e3158b0b --- /dev/null +++ b/java/ql/lib/change-notes/released/0.3.1.md @@ -0,0 +1,12 @@ +## 0.3.1 + +### New Features + +* Added an `ErrorType` class. An instance of this class will be used if an extractor is unable to extract a type, or if an up/downgrade script is unable to provide a type. + +### Minor Analysis Improvements + +* Added data-flow models for `java.util.Properites`. Additional results may be found where relevant data is stored in and then retrieved from a `Properties` instance. +Added `Modifier.isInline()`. +* Removed Kotlin-specific database and QL structures for loops and `break`/`continue` statements. The Kotlin extractor was changed to reuse the Java structures for these constructs. +Added additional flow sources for uses of external storage on Android. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 95f6e3a0ba6..bb106b1cb63 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.3.1 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 541fad197e0..29b02e16b6e 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.3.1-dev +version: 0.3.1 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 1f8a00fb1ff..fc9988443b2 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,15 @@ +## 0.3.0 + +### Breaking Changes + +* Contextual queries and the query libraries they depend on have been moved to the `codeql/java-all` package. + +### New Queries + +* A new query "Improper verification of intent by broadcast receiver" (`java/improper-intent-verification`) has been added. +This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received intents when registered +to receive system intents. + ## 0.2.0 ### Minor Analysis Improvements diff --git a/java/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/java/ql/src/change-notes/2022-06-29-move-contextual-queries.md deleted file mode 100644 index 02ff5b6d59c..00000000000 --- a/java/ql/src/change-notes/2022-06-29-move-contextual-queries.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: breaking ---- -* Contextual queries and the query libraries they depend on have been moved to the `codeql/java-all` package. diff --git a/java/ql/src/change-notes/2022-04-27-intent-verification.md b/java/ql/src/change-notes/released/0.3.0.md similarity index 57% rename from java/ql/src/change-notes/2022-04-27-intent-verification.md rename to java/ql/src/change-notes/released/0.3.0.md index e5e0e287753..48b478ec905 100644 --- a/java/ql/src/change-notes/2022-04-27-intent-verification.md +++ b/java/ql/src/change-notes/released/0.3.0.md @@ -1,6 +1,11 @@ ---- -category: newQuery ---- +## 0.3.0 + +### Breaking Changes + +* Contextual queries and the query libraries they depend on have been moved to the `codeql/java-all` package. + +### New Queries + * A new query "Improper verification of intent by broadcast receiver" (`java/improper-intent-verification`) has been added. This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received intents when registered -to receive system intents. \ No newline at end of file +to receive system intents. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 5274e27ed52..95f6e3a0ba6 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.3.0 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 2366eef3778..b0790498fe3 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.2.1-dev +version: 0.3.0 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 9df72979ef3..23d54f955a7 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.2.1 + +### Minor Analysis Improvements + +* The `chownr` library is now modeled as a sink for the `js/path-injection` query. +* Improved modeling of sensitive data sources, so common words like `certain` and `secretary` are no longer considered a certificate and a secret (respectively). +* The `gray-matter` library is now modeled as a sink for the `js/code-injection` query. + ## 0.2.0 ### Major Analysis Improvements diff --git a/javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words copy.md b/javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words copy.md deleted file mode 100644 index 8a0151df015..00000000000 --- a/javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words copy.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `gray-matter` library is now modeled as a sink for the `js/code-injection` query. diff --git a/javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words.md b/javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words.md deleted file mode 100644 index 9102d58abdb..00000000000 --- a/javascript/ql/lib/change-notes/2022-06-22-sensitive-common-words.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved modeling of sensitive data sources, so common words like `certain` and `secretary` are no longer considered a certificate and a secret (respectively). diff --git a/javascript/ql/lib/change-notes/2022-06-30-chownr.md b/javascript/ql/lib/change-notes/2022-06-30-chownr.md deleted file mode 100644 index 1ad13fb8113..00000000000 --- a/javascript/ql/lib/change-notes/2022-06-30-chownr.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `chownr` library is now modeled as a sink for the `js/path-injection` query. diff --git a/javascript/ql/lib/change-notes/released/0.2.1.md b/javascript/ql/lib/change-notes/released/0.2.1.md new file mode 100644 index 00000000000..3548bd5ad69 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/0.2.1.md @@ -0,0 +1,7 @@ +## 0.2.1 + +### Minor Analysis Improvements + +* The `chownr` library is now modeled as a sink for the `js/path-injection` query. +* Improved modeling of sensitive data sources, so common words like `certain` and `secretary` are no longer considered a certificate and a secret (respectively). +* The `gray-matter` library is now modeled as a sink for the `js/code-injection` query. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 5274e27ed52..df29a726bcc 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.2.1 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index b16a8912ccf..cb4b01d90b0 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.2.1-dev +version: 0.2.1 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 68660fcbb52..baf7f9b85e0 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.0 + +### Breaking Changes + +* Contextual queries and the query libraries they depend on have been moved to the `codeql/javascript-all` package. + ## 0.2.0 ### Minor Analysis Improvements diff --git a/javascript/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/javascript/ql/src/change-notes/released/0.3.0.md similarity index 78% rename from javascript/ql/src/change-notes/2022-06-29-move-contextual-queries.md rename to javascript/ql/src/change-notes/released/0.3.0.md index ff190788cd4..13b4541cd4b 100644 --- a/javascript/ql/src/change-notes/2022-06-29-move-contextual-queries.md +++ b/javascript/ql/src/change-notes/released/0.3.0.md @@ -1,4 +1,5 @@ ---- -category: breaking ---- +## 0.3.0 + +### Breaking Changes + * Contextual queries and the query libraries they depend on have been moved to the `codeql/javascript-all` package. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 5274e27ed52..95f6e3a0ba6 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.3.0 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 4f54f7dc5bc..07ac096af64 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.2.1-dev +version: 0.3.0 groups: - javascript - queries diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 83861bcf61d..83a09c70446 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,18 @@ +## 0.5.1 + +### Deprecated APIs + +- The documentation of API graphs (the `API` module) has been expanded, and some of the members predicates of `API::Node` + have been renamed as follows: + - `getAnImmediateUse` -> `asSource` + - `getARhs` -> `asSink` + - `getAUse` -> `getAValueReachableFromSource` + - `getAValueReachingRhs` -> `getAValueReachingSink` + +### Minor Analysis Improvements + +* Improved modeling of sensitive data sources, so common words like `certain` and `secretary` are no longer considered a certificate and a secret (respectively). + ## 0.5.0 ### Deprecated APIs diff --git a/python/ql/lib/change-notes/2022-06-22-sensitive-common-words.md b/python/ql/lib/change-notes/2022-06-22-sensitive-common-words.md deleted file mode 100644 index 9102d58abdb..00000000000 --- a/python/ql/lib/change-notes/2022-06-22-sensitive-common-words.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved modeling of sensitive data sources, so common words like `certain` and `secretary` are no longer considered a certificate and a secret (respectively). diff --git a/python/ql/lib/change-notes/2022-06-28-api-graph-api.md b/python/ql/lib/change-notes/released/0.5.1.md similarity index 58% rename from python/ql/lib/change-notes/2022-06-28-api-graph-api.md rename to python/ql/lib/change-notes/released/0.5.1.md index ef6ff3d4f76..1b560c7a35a 100644 --- a/python/ql/lib/change-notes/2022-06-28-api-graph-api.md +++ b/python/ql/lib/change-notes/released/0.5.1.md @@ -1,6 +1,6 @@ ---- -category: deprecated ---- +## 0.5.1 + +### Deprecated APIs - The documentation of API graphs (the `API` module) has been expanded, and some of the members predicates of `API::Node` have been renamed as follows: @@ -8,3 +8,7 @@ category: deprecated - `getARhs` -> `asSink` - `getAUse` -> `getAValueReachableFromSource` - `getAValueReachingRhs` -> `getAValueReachingSink` + +### Minor Analysis Improvements + +* Improved modeling of sensitive data sources, so common words like `certain` and `secretary` are no longer considered a certificate and a secret (respectively). diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 30e271c5361..0bf7024c337 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.0 +lastReleaseVersion: 0.5.1 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 65145e40d74..7aac7c78527 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.5.1-dev +version: 0.5.1 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 3be12c71c5f..fae4ab0dc9a 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.0 + +### Breaking Changes + +* Contextual queries and the query libraries they depend on have been moved to the `codeql/python-all` package. + ## 0.2.0 ### Major Analysis Improvements diff --git a/python/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/python/ql/src/change-notes/released/0.3.0.md similarity index 77% rename from python/ql/src/change-notes/2022-06-29-move-contextual-queries.md rename to python/ql/src/change-notes/released/0.3.0.md index 2e8562e66f8..7b54313449c 100644 --- a/python/ql/src/change-notes/2022-06-29-move-contextual-queries.md +++ b/python/ql/src/change-notes/released/0.3.0.md @@ -1,4 +1,5 @@ ---- -category: breaking ---- +## 0.3.0 + +### Breaking Changes + * Contextual queries and the query libraries they depend on have been moved to the `codeql/python-all` package. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 5274e27ed52..95f6e3a0ba6 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.3.0 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index af722116e41..6d07cdc1ab3 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.2.1-dev +version: 0.3.0 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 1b060e46141..fe8a12aa938 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.3.1 + +### Minor Analysis Improvements + +* Fixed a bug causing every expression in the database to be considered a system-command execution sink when calls to any of the following methods exist: + * The `spawn`, `fspawn`, `popen4`, `pspawn`, `system`, `_pspawn` methods and the backtick operator from the `POSIX::spawn` gem. + * The `execute_command`, `rake`, `rails_command`, and `git` methods in `Rails::Generation::Actions`. +* Improved modeling of sensitive data sources, so common words like `certain` and `secretary` are no longer considered a certificate and a secret (respectively). + ## 0.3.0 ### Deprecated APIs diff --git a/ruby/ql/lib/change-notes/2022-06-22-sensitive-common-words.md b/ruby/ql/lib/change-notes/2022-06-22-sensitive-common-words.md deleted file mode 100644 index 9102d58abdb..00000000000 --- a/ruby/ql/lib/change-notes/2022-06-22-sensitive-common-words.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved modeling of sensitive data sources, so common words like `certain` and `secretary` are no longer considered a certificate and a secret (respectively). diff --git a/ruby/ql/lib/change-notes/2022-07-11-command-execution.md b/ruby/ql/lib/change-notes/released/0.3.1.md similarity index 65% rename from ruby/ql/lib/change-notes/2022-07-11-command-execution.md rename to ruby/ql/lib/change-notes/released/0.3.1.md index f6548719b57..59f378bbb32 100644 --- a/ruby/ql/lib/change-notes/2022-07-11-command-execution.md +++ b/ruby/ql/lib/change-notes/released/0.3.1.md @@ -1,6 +1,8 @@ ---- -category: minorAnalysis ---- +## 0.3.1 + +### Minor Analysis Improvements + * Fixed a bug causing every expression in the database to be considered a system-command execution sink when calls to any of the following methods exist: * The `spawn`, `fspawn`, `popen4`, `pspawn`, `system`, `_pspawn` methods and the backtick operator from the `POSIX::spawn` gem. * The `execute_command`, `rake`, `rails_command`, and `git` methods in `Rails::Generation::Actions`. +* Improved modeling of sensitive data sources, so common words like `certain` and `secretary` are no longer considered a certificate and a secret (respectively). diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 95f6e3a0ba6..bb106b1cb63 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.3.1 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 062d906c9a2..5b67e5ccd50 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.3.1-dev +version: 0.3.1 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 0905f133d16..9f227fdc843 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.0 + +### Breaking Changes + +* Contextual queries and the query libraries they depend on have been moved to the `codeql/ruby-all` package. + ## 0.2.0 ### New Queries diff --git a/ruby/ql/src/change-notes/2022-06-29-move-contextual-queries.md b/ruby/ql/src/change-notes/released/0.3.0.md similarity index 77% rename from ruby/ql/src/change-notes/2022-06-29-move-contextual-queries.md rename to ruby/ql/src/change-notes/released/0.3.0.md index bc85eb9361e..717a3a27aa5 100644 --- a/ruby/ql/src/change-notes/2022-06-29-move-contextual-queries.md +++ b/ruby/ql/src/change-notes/released/0.3.0.md @@ -1,4 +1,5 @@ ---- -category: breaking ---- +## 0.3.0 + +### Breaking Changes + * Contextual queries and the query libraries they depend on have been moved to the `codeql/ruby-all` package. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 5274e27ed52..95f6e3a0ba6 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.3.0 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 0bd19b5bdeb..6a55e6cecd3 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.2.1-dev +version: 0.3.0 groups: - ruby - queries From fe1f1bb79d0143fc3fba77a42df8e0eb219eafe2 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <93738568+jketema@users.noreply.github.com> Date: Thu, 14 Jul 2022 11:06:14 +0200 Subject: [PATCH 394/736] Fix issues with change notes --- cpp/ql/lib/CHANGELOG.md | 2 +- cpp/ql/lib/change-notes/released/0.3.1.md | 2 +- java/ql/lib/CHANGELOG.md | 4 ++-- java/ql/lib/change-notes/released/0.3.1.md | 4 ++-- java/ql/src/CHANGELOG.md | 4 ++-- java/ql/src/change-notes/released/0.3.0.md | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 3e3f0b4531b..d954c60fb0a 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -2,7 +2,7 @@ ### Minor Analysis Improvements -* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the the C++ logical and variable declarations in conditions. +* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the the C++ logical "and", and variable declarations in conditions. ## 0.3.0 diff --git a/cpp/ql/lib/change-notes/released/0.3.1.md b/cpp/ql/lib/change-notes/released/0.3.1.md index 4b9a3206c96..235ad58d370 100644 --- a/cpp/ql/lib/change-notes/released/0.3.1.md +++ b/cpp/ql/lib/change-notes/released/0.3.1.md @@ -2,4 +2,4 @@ ### Minor Analysis Improvements -* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the the C++ logical and variable declarations in conditions. +* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the the C++ logical "and", and variable declarations in conditions. diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 6b5e4ec9f09..b5ceb823e75 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -7,9 +7,9 @@ ### Minor Analysis Improvements * Added data-flow models for `java.util.Properites`. Additional results may be found where relevant data is stored in and then retrieved from a `Properties` instance. -Added `Modifier.isInline()`. +* Added `Modifier.isInline()`. * Removed Kotlin-specific database and QL structures for loops and `break`/`continue` statements. The Kotlin extractor was changed to reuse the Java structures for these constructs. -Added additional flow sources for uses of external storage on Android. +* Added additional flow sources for uses of external storage on Android. ## 0.3.0 diff --git a/java/ql/lib/change-notes/released/0.3.1.md b/java/ql/lib/change-notes/released/0.3.1.md index 8c0e3158b0b..a453f034d5c 100644 --- a/java/ql/lib/change-notes/released/0.3.1.md +++ b/java/ql/lib/change-notes/released/0.3.1.md @@ -7,6 +7,6 @@ ### Minor Analysis Improvements * Added data-flow models for `java.util.Properites`. Additional results may be found where relevant data is stored in and then retrieved from a `Properties` instance. -Added `Modifier.isInline()`. +* Added `Modifier.isInline()`. * Removed Kotlin-specific database and QL structures for loops and `break`/`continue` statements. The Kotlin extractor was changed to reuse the Java structures for these constructs. -Added additional flow sources for uses of external storage on Android. +* Added additional flow sources for uses of external storage on Android. diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index fc9988443b2..b39e648bf04 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -7,8 +7,8 @@ ### New Queries * A new query "Improper verification of intent by broadcast receiver" (`java/improper-intent-verification`) has been added. -This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received intents when registered -to receive system intents. + This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received intents when registered + to receive system intents. ## 0.2.0 diff --git a/java/ql/src/change-notes/released/0.3.0.md b/java/ql/src/change-notes/released/0.3.0.md index 48b478ec905..d91c653a471 100644 --- a/java/ql/src/change-notes/released/0.3.0.md +++ b/java/ql/src/change-notes/released/0.3.0.md @@ -7,5 +7,5 @@ ### New Queries * A new query "Improper verification of intent by broadcast receiver" (`java/improper-intent-verification`) has been added. -This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received intents when registered -to receive system intents. + This query finds instances of Android `BroadcastReceiver`s that don't verify the action string of received intents when registered + to receive system intents. From 9f184ec122ffed2d532e5d037db2f76b126138ad Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 14 Jul 2022 12:09:58 +0200 Subject: [PATCH 395/736] Update cpp/ql/lib/change-notes/released/0.3.1.md --- cpp/ql/lib/change-notes/released/0.3.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/change-notes/released/0.3.1.md b/cpp/ql/lib/change-notes/released/0.3.1.md index 235ad58d370..d5b251c42ab 100644 --- a/cpp/ql/lib/change-notes/released/0.3.1.md +++ b/cpp/ql/lib/change-notes/released/0.3.1.md @@ -2,4 +2,4 @@ ### Minor Analysis Improvements -* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the the C++ logical "and", and variable declarations in conditions. +* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the C++ logical "and", and variable declarations in conditions. From dbff20a3d8854f2707a24580887ce22d544f4a86 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 14 Jul 2022 12:10:03 +0200 Subject: [PATCH 396/736] Update cpp/ql/lib/CHANGELOG.md --- cpp/ql/lib/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index d954c60fb0a..75a047d6f64 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -2,7 +2,7 @@ ### Minor Analysis Improvements -* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the the C++ logical "and", and variable declarations in conditions. +* `AnalysedExpr::isNullCheck` and `AnalysedExpr::isValidCheck` have been updated to handle variable accesses on the left-hand side of the C++ logical "and", and variable declarations in conditions. ## 0.3.0 From f20c18627713ba1d3578ec2aafbbbcb39d451710 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 12:20:30 +0200 Subject: [PATCH 397/736] add ql/repeated-word query --- ql/ql/src/codeql_ql/ast/Ast.qll | 10 +++++++ ql/ql/src/codeql_ql/ast/internal/AstNodes.qll | 3 ++ ql/ql/src/queries/style/RepeatedWord.ql | 30 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 ql/ql/src/queries/style/RepeatedWord.ql diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index e399128c09a..4b3c00df10d 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -178,6 +178,16 @@ class BlockComment extends TBlockComment, AstNode { override string getAPrimaryQlClass() { result = "BlockComment" } } +class LineComment extends TLineComment, AstNode { + QL::LineComment comment; + + LineComment() { this = TLineComment(comment) } + + string getContents() { result = comment.getValue() } + + override string getAPrimaryQlClass() { result = "LineComment" } +} + /** * The `from, where, select` part of a QL query. */ diff --git a/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll b/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll index 9448fe71240..312f7f90c60 100644 --- a/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll +++ b/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll @@ -7,6 +7,7 @@ newtype TAstNode = TTopLevel(QL::Ql file) or TQLDoc(QL::Qldoc qldoc) or TBlockComment(QL::BlockComment comment) or + TLineComment(QL::LineComment comment) or TClasslessPredicate(QL::ClasslessPredicate pred) or TVarDecl(QL::VarDecl decl) or TFieldDecl(QL::Field field) or @@ -154,6 +155,8 @@ QL::AstNode toQL(AST::AstNode n) { or n = TBlockComment(result) or + n = TLineComment(result) + or n = TClasslessPredicate(result) or n = TVarDecl(result) diff --git a/ql/ql/src/queries/style/RepeatedWord.ql b/ql/ql/src/queries/style/RepeatedWord.ql new file mode 100644 index 00000000000..90ce45344dd --- /dev/null +++ b/ql/ql/src/queries/style/RepeatedWord.ql @@ -0,0 +1,30 @@ +/** + * @name Comment has repeated word + * @description Comment has repeated word. + * @kind problem + * @problem.severity warning + * @id ql/repeated-word + * @precision very-high + */ + +import ql + +string getComment(AstNode node) { + result = node.(QLDoc).getContents() + or + result = node.(BlockComment).getContents() + or + result = node.(LineComment).getContents() +} + +/** Gets a word used in `node` */ +string getWord(AstNode node) { result = getComment(node).regexpFind("\\b[A-Za-z]+\\b", _, _) } + +AstNode hasRepeatedWord(string word) { + word = getWord(result) and + getComment(result).regexpMatch(".*\\b" + word + "\\s+" + word + "\\b.*") +} + +from AstNode comment, string word +where comment = hasRepeatedWord(word) +select comment, "The comment repeats " + word + "." From cb3a0fb5deecb99e4bc7809d0a19b61fe6ee74b6 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 12:25:01 +0200 Subject: [PATCH 398/736] make a Comment superclass --- ql/ql/src/codeql_ql/ast/Ast.qll | 16 ++++++++++------ ql/ql/src/codeql_ql/ast/internal/AstNodes.qll | 2 ++ ql/ql/src/queries/style/RepeatedWord.ql | 16 ++++------------ 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index 4b3c00df10d..03a26868657 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -156,34 +156,38 @@ class TopLevel extends TTopLevel, AstNode { override QLDoc getQLDoc() { result = this.getMember(0) } } -class QLDoc extends TQLDoc, AstNode { +abstract class Comment extends AstNode, TComment { + abstract string getContents(); +} + +class QLDoc extends TQLDoc, Comment { QL::Qldoc qldoc; QLDoc() { this = TQLDoc(qldoc) } - string getContents() { result = qldoc.getValue() } + override string getContents() { result = qldoc.getValue() } override string getAPrimaryQlClass() { result = "QLDoc" } override AstNode getParent() { result.getQLDoc() = this } } -class BlockComment extends TBlockComment, AstNode { +class BlockComment extends TBlockComment, Comment { QL::BlockComment comment; BlockComment() { this = TBlockComment(comment) } - string getContents() { result = comment.getValue() } + override string getContents() { result = comment.getValue() } override string getAPrimaryQlClass() { result = "BlockComment" } } -class LineComment extends TLineComment, AstNode { +class LineComment extends TLineComment, Comment { QL::LineComment comment; LineComment() { this = TLineComment(comment) } - string getContents() { result = comment.getValue() } + override string getContents() { result = comment.getValue() } override string getAPrimaryQlClass() { result = "LineComment" } } diff --git a/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll b/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll index 312f7f90c60..ce5cd352dd8 100644 --- a/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll +++ b/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll @@ -90,6 +90,8 @@ class TYamlNode = TYamlCommemt or TYamlEntry or TYamlKey or TYamlListitem or TYa class TSignatureExpr = TPredicateExpr or TType; +class TComment = TQLDoc or TBlockComment or TLineComment; + /** DEPRECATED: Alias for TYamlNode */ deprecated class TYAMLNode = TYamlNode; diff --git a/ql/ql/src/queries/style/RepeatedWord.ql b/ql/ql/src/queries/style/RepeatedWord.ql index 90ce45344dd..f8e0ddd1018 100644 --- a/ql/ql/src/queries/style/RepeatedWord.ql +++ b/ql/ql/src/queries/style/RepeatedWord.ql @@ -9,22 +9,14 @@ import ql -string getComment(AstNode node) { - result = node.(QLDoc).getContents() - or - result = node.(BlockComment).getContents() - or - result = node.(LineComment).getContents() -} - /** Gets a word used in `node` */ -string getWord(AstNode node) { result = getComment(node).regexpFind("\\b[A-Za-z]+\\b", _, _) } +string getWord(Comment node) { result = node.getContents().regexpFind("\\b[A-Za-z]+\\b", _, _) } -AstNode hasRepeatedWord(string word) { +Comment hasRepeatedWord(string word) { word = getWord(result) and - getComment(result).regexpMatch(".*\\b" + word + "\\s+" + word + "\\b.*") + result.getContents().regexpMatch(".*\\b" + word + "\\s+" + word + "\\b.*") } -from AstNode comment, string word +from Comment comment, string word where comment = hasRepeatedWord(word) select comment, "The comment repeats " + word + "." From 2ea2bd89663f5a3c82778fba475ea2fa57f757a1 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 12:35:09 +0200 Subject: [PATCH 399/736] refine the repeated-word query --- ql/ql/src/queries/style/RepeatedWord.ql | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ql/ql/src/queries/style/RepeatedWord.ql b/ql/ql/src/queries/style/RepeatedWord.ql index f8e0ddd1018..cbbed4668bd 100644 --- a/ql/ql/src/queries/style/RepeatedWord.ql +++ b/ql/ql/src/queries/style/RepeatedWord.ql @@ -14,9 +14,12 @@ string getWord(Comment node) { result = node.getContents().regexpFind("\\b[A-Za- Comment hasRepeatedWord(string word) { word = getWord(result) and - result.getContents().regexpMatch(".*\\b" + word + "\\s+" + word + "\\b.*") + result.getContents().regexpMatch(".*[\\s]" + word + "\\s+" + word + "[\\s.,].*") } from Comment comment, string word -where comment = hasRepeatedWord(word) +where + comment = hasRepeatedWord(word) and + // lots of these, and I can't just change old dbschemes. + not (word = "type" and comment.getLocation().getFile().getExtension() = "dbscheme") select comment, "The comment repeats " + word + "." From 85a652f3d104ad10a6fbaaa43731e48363b8e5d6 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 12:35:23 +0200 Subject: [PATCH 400/736] remove a bunch of repeated words --- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll | 2 +- .../lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll | 2 +- .../code/csharp/controlflow/internal/ControlFlowGraphImpl.qll | 2 +- csharp/ql/src/Telemetry/ExternalApi.qll | 2 +- go/ql/src/RedundantCode/DuplicateSwitchCase.ql | 2 +- java/ql/src/Telemetry/ExternalApi.qll | 2 +- python/ql/lib/semmle/python/Frameworks.qll | 2 +- python/ql/lib/semmle/python/dataflow/old/TaintTracking.qll | 2 +- ql/ql/src/codeql_ql/ast/internal/Module.qll | 2 +- ql/ql/src/queries/performance/MissingNomagic.ql | 2 +- ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll | 2 +- ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll | 2 +- ruby/ql/lib/codeql/ruby/frameworks/GraphQL.qll | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll index da8e7564b3e..74ba3569d20 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll @@ -699,7 +699,7 @@ private predicate exprToExprStep_nocfg(Expr fromExpr, Expr toExpr) { call.getTarget() = f and // AST dataflow treats a reference as if it were the referred-to object, while the dataflow // models treat references as pointers. If the return type of the call is a reference, then - // look for data flow the the referred-to object, rather than the reference itself. + // look for data flow the referred-to object, rather than the reference itself. if call.getType().getUnspecifiedType() instanceof ReferenceType then outModel.isReturnValueDeref() else outModel.isReturnValue() diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll index c9e790d9077..0f47770dc82 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll @@ -1573,7 +1573,7 @@ private module SimpleRangeAnalysisCached { result = min([max(getTruncatedUpperBounds(expr)), getGuardedUpperBound(expr)]) } - /** Holds if the upper bound of `expr` may have been widened. This means the the upper bound is in practice likely to be overly wide. */ + /** Holds if the upper bound of `expr` may have been widened. This means the upper bound is in practice likely to be overly wide. */ cached predicate upperBoundMayBeWidened(Expr e) { isRecursiveExpr(e) and diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index d9bebb9bf17..b63d804216b 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -335,7 +335,7 @@ module Expressions { // ```csharp // new Dictionary() { [0] = "Zero", [1] = "One", [2] = "Two" } // ``` - // need special treatment, because the the accesses `[0]`, `[1]`, and `[2]` + // need special treatment, because the accesses `[0]`, `[1]`, and `[2]` // have no qualifier. this = any(MemberInitializer mi).getLValue() } diff --git a/csharp/ql/src/Telemetry/ExternalApi.qll b/csharp/ql/src/Telemetry/ExternalApi.qll index 9679cd1061a..685eda64e50 100644 --- a/csharp/ql/src/Telemetry/ExternalApi.qll +++ b/csharp/ql/src/Telemetry/ExternalApi.qll @@ -85,7 +85,7 @@ class ExternalApi extends DotNet::Callable { defaultAdditionalTaintStep(this.getAnInput(), _) } - /** Holds if this API is is a constructor without parameters. */ + /** Holds if this API is a constructor without parameters. */ private predicate isParameterlessConstructor() { this instanceof Constructor and this.getNumberOfParameters() = 0 } diff --git a/go/ql/src/RedundantCode/DuplicateSwitchCase.ql b/go/ql/src/RedundantCode/DuplicateSwitchCase.ql index 46956347785..7af97b76875 100644 --- a/go/ql/src/RedundantCode/DuplicateSwitchCase.ql +++ b/go/ql/src/RedundantCode/DuplicateSwitchCase.ql @@ -13,7 +13,7 @@ import go -/** Gets the global value number of of `e`, which is the `i`th case label of `switch`. */ +/** Gets the global value number of `e`, which is the `i`th case label of `switch`. */ GVN switchCaseGVN(SwitchStmt switch, int i, Expr e) { e = switch.getCase(i).getExpr(0) and result = e.getGlobalValueNumber() } diff --git a/java/ql/src/Telemetry/ExternalApi.qll b/java/ql/src/Telemetry/ExternalApi.qll index b839ca15c6d..eaf88555444 100644 --- a/java/ql/src/Telemetry/ExternalApi.qll +++ b/java/ql/src/Telemetry/ExternalApi.qll @@ -73,7 +73,7 @@ class ExternalApi extends Callable { TaintTracking::localAdditionalTaintStep(this.getAnInput(), _) } - /** Holds if this API is is a constructor without parameters. */ + /** Holds if this API is a constructor without parameters. */ private predicate isParameterlessConstructor() { this instanceof Constructor and this.getNumberOfParameters() = 0 } diff --git a/python/ql/lib/semmle/python/Frameworks.qll b/python/ql/lib/semmle/python/Frameworks.qll index daa67ee4231..6cf4044157b 100644 --- a/python/ql/lib/semmle/python/Frameworks.qll +++ b/python/ql/lib/semmle/python/Frameworks.qll @@ -2,7 +2,7 @@ * Helper file that imports all framework modeling. */ -// If you add modeling of a new framework/library, remember to add it it to the docs in +// If you add modeling of a new framework/library, remember to add it to the docs in // `docs/codeql/support/reusables/frameworks.rst` private import semmle.python.frameworks.Aioch private import semmle.python.frameworks.Aiohttp diff --git a/python/ql/lib/semmle/python/dataflow/old/TaintTracking.qll b/python/ql/lib/semmle/python/dataflow/old/TaintTracking.qll index 22832b46c6c..d0293522404 100755 --- a/python/ql/lib/semmle/python/dataflow/old/TaintTracking.qll +++ b/python/ql/lib/semmle/python/dataflow/old/TaintTracking.qll @@ -333,7 +333,7 @@ abstract class Sanitizer extends string { /** Holds if `taint` cannot flow through `node`. */ predicate sanitizingNode(TaintKind taint, ControlFlowNode node) { none() } - /** Holds if `call` removes removes the `taint` */ + /** Holds if `call` removes the `taint` */ predicate sanitizingCall(TaintKind taint, FunctionObject callee) { none() } /** Holds if `test` shows value to be untainted with `taint` */ diff --git a/ql/ql/src/codeql_ql/ast/internal/Module.qll b/ql/ql/src/codeql_ql/ast/internal/Module.qll index 91a5888ac12..8c1e6189e0a 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Module.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Module.qll @@ -78,7 +78,7 @@ private class Folder_ extends ContainerOrModule, TFolder { override ContainerOrModule getEnclosing() { result = TFolder(f.getParentContainer()) and - // if this the the root, then we stop. + // if this the root, then we stop. not exists(f.getFile("qlpack.yml")) } diff --git a/ql/ql/src/queries/performance/MissingNomagic.ql b/ql/ql/src/queries/performance/MissingNomagic.ql index 13084bf6ad6..ebab0e7b7e5 100644 --- a/ql/ql/src/queries/performance/MissingNomagic.ql +++ b/ql/ql/src/queries/performance/MissingNomagic.ql @@ -57,7 +57,7 @@ class CandidatePredicate extends Predicate { this.getName() .regexpCapture("(.+)" + ["0", "helper", "aux", "cand", "Helper", "Aux", "Cand"], 1) or - // Or this this predicate is named "foo02" and `pred` is named "foo01". + // Or this predicate is named "foo02" and `pred` is named "foo01". exists(int n, string name | hasNameWithNumberSuffix(pred, name, n) and hasNameWithNumberSuffix(this, name, n - 1) diff --git a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll index efb69af39eb..95a0514320e 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll @@ -348,7 +348,7 @@ module ExprNodes { /** Gets an argument of this call. */ final ExprCfgNode getAnArgument() { result = this.getArgument(_) } - /** Gets the the keyword argument whose key is `keyword` of this call. */ + /** Gets the keyword argument whose key is `keyword` of this call. */ final ExprCfgNode getKeywordArgument(string keyword) { exists(PairCfgNode n | e.hasCfgChild(e.getAnArgument(), this, n) and diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll index 730445d99ac..11aa33b7551 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll @@ -71,7 +71,7 @@ class CallNode extends LocalSourceNode, ExprNode { /** Gets the data-flow node corresponding to the named argument of the call corresponding to this data-flow node */ ExprNode getKeywordArgument(string name) { result.getExprNode() = node.getKeywordArgument(name) } - /** Gets the name of the the method called by the method call (if any) corresponding to this data-flow node */ + /** Gets the name of the method called by the method call (if any) corresponding to this data-flow node */ string getMethodName() { result = node.getExpr().(MethodCall).getMethodName() } /** Gets the number of arguments of this call. */ diff --git a/ruby/ql/lib/codeql/ruby/frameworks/GraphQL.qll b/ruby/ql/lib/codeql/ruby/frameworks/GraphQL.qll index 3dacd89b25e..ede99069213 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/GraphQL.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/GraphQL.qll @@ -379,7 +379,7 @@ class GraphqlFieldResolutionMethod extends Method, HTTP::Server::RequestHandler: result.(KeywordParameter).hasName(argDefn.getArgumentName()) or // TODO this will cause false positives because now *anything* in the **args - // param will be flagged as as RoutedParameter/RemoteFlowSource, but really + // param will be flagged as RoutedParameter/RemoteFlowSource, but really // only the hash keys corresponding to the defined arguments are user input // others could be things defined in the `:extras` keyword argument to the `argument` result instanceof HashSplatParameter // often you see `def field(**args)` From 380070f2e474912a700a41d813db04e901520517 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 12:50:23 +0200 Subject: [PATCH 401/736] rewrite the QL-for-QL workflow to just do everything in one go --- .github/workflows/ql-for-ql-build.yml | 70 +++++---------------------- 1 file changed, 11 insertions(+), 59 deletions(-) diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index 2d96fbfa797..7d8efa9e7ca 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -10,9 +10,10 @@ env: CARGO_TERM_COLOR: always jobs: - queries: - runs-on: ubuntu-latest + all-the-things: + runs-on: ubuntu-latest-xl steps: + ### Build the queries ### - uses: actions/checkout@v3 - name: Find codeql id: find-codeql @@ -48,11 +49,7 @@ jobs: name: query-pack-zip path: ${{ runner.temp }}/query-pack.zip - extractors: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 + ### Build the extractor ### - name: Cache entire extractor id: cache-extractor uses: actions/cache@v3 @@ -96,15 +93,8 @@ jobs: ql/target/release/ql-extractor ql/target/release/ql-extractor.exe retention-days: 1 - package: - runs-on: ubuntu-latest - needs: - - extractors - - queries - - steps: - - uses: actions/checkout@v3 + ### Package the queries and extractor ### - uses: actions/download-artifact@v3 with: name: query-pack-zip @@ -132,16 +122,8 @@ jobs: name: codeql-ql-pack path: codeql-ql.zip retention-days: 1 - analyze: - runs-on: ubuntu-latest - strategy: - matrix: - folder: [cpp, csharp, java, javascript, python, ql, ruby, swift, go] - needs: - - package - - steps: + ### Run the analysis ### - name: Download pack uses: actions/download-artifact@v3 with: @@ -161,12 +143,8 @@ jobs: env: PACK: ${{ runner.temp }}/pack - - name: Checkout repository - uses: actions/checkout@v3 - name: Create CodeQL config file run: | - echo "paths:" > ${CONF} - echo " - ${FOLDER}" >> ${CONF} echo "paths-ignore:" >> ${CONF} echo " - ql/ql/test" >> ${CONF} echo "disable-default-queries: true" >> ${CONF} @@ -176,7 +154,6 @@ jobs: cat ${CONF} env: CONF: ./ql-for-ql-config.yml - FOLDER: ${{ matrix.folder }} - name: Initialize CodeQL uses: github/codeql-action/init@aa93aea877e5fb8841bcb1193f672abf6e9f2980 with: @@ -187,39 +164,14 @@ jobs: - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@aa93aea877e5fb8841bcb1193f672abf6e9f2980 with: - category: "ql-for-ql-${{ matrix.folder }}" + category: "ql-for-ql" - name: Copy sarif file to CWD - run: cp ../results/ql.sarif ./${{ matrix.folder }}.sarif + run: cp ../results/ql.sarif ./ql-for-ql.sarif - name: Fixup the $scema in sarif # Until https://github.com/microsoft/sarif-vscode-extension/pull/436/ is part in a stable release run: | - sed -i 's/\$schema.*/\$schema": "https:\/\/raw.githubusercontent.com\/oasis-tcs\/sarif-spec\/master\/Schemata\/sarif-schema-2.1.0",/' ${{ matrix.folder }}.sarif + sed -i 's/\$schema.*/\$schema": "https:\/\/raw.githubusercontent.com\/oasis-tcs\/sarif-spec\/master\/Schemata\/sarif-schema-2.1.0",/' ql-for-ql.sarif - name: Sarif as artifact uses: actions/upload-artifact@v3 with: - name: ${{ matrix.folder }}.sarif - path: ${{ matrix.folder }}.sarif - - combine: - runs-on: ubuntu-latest - needs: - - analyze - - steps: - - uses: actions/checkout@v3 - - name: Make a folder for artifacts. - run: mkdir -p results - - name: Download all sarif files - uses: actions/download-artifact@v3 - with: - path: results - - uses: actions/setup-node@v3 - with: - node-version: 16 - - name: Combine all sarif files - run: | - node ./ql/scripts/merge-sarif.js results/**/*.sarif combined.sarif - - name: Upload combined sarif file - uses: actions/upload-artifact@v3 - with: - name: combined.sarif - path: combined.sarif \ No newline at end of file + name: ql-for-ql.sarif + path: ql-for-ql.sarif From 47c9b446f0f068069f5caee83a2e1f16d3908642 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 12:54:53 +0200 Subject: [PATCH 402/736] exclude upgrade scripts from QL-for-QL --- .github/workflows/ql-for-ql-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index 7d8efa9e7ca..c971d28bb2f 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -10,7 +10,7 @@ env: CARGO_TERM_COLOR: always jobs: - all-the-things: + analyze: runs-on: ubuntu-latest-xl steps: ### Build the queries ### @@ -147,6 +147,7 @@ jobs: run: | echo "paths-ignore:" >> ${CONF} echo " - ql/ql/test" >> ${CONF} + echo " - \"*/ql/lib/upgrades/\"" >> ${CONF} echo "disable-default-queries: true" >> ${CONF} echo "packs:" >> ${CONF} echo " - codeql/ql" >> ${CONF} From a7a9428dc1aed8f21563bc8fa37e8b1d148b71b4 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 13:20:52 +0200 Subject: [PATCH 403/736] split the sarif file into languages --- .github/workflows/ql-for-ql-build.yml | 10 +++++++++ ql/scripts/split-sarif.js | 30 +++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 ql/scripts/split-sarif.js diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index c971d28bb2f..f5df6291b62 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -176,3 +176,13 @@ jobs: with: name: ql-for-ql.sarif path: ql-for-ql.sarif + - name: Split out the sarif file into langs + run: | + mkdir split-sarif + node ./ql/scripts/split-sarif.js ql-for-ql.sarif split-sarif + - name: Upload langs as artifacts + uses: actions/upload-artifact@v3 + with: + name: ql-for-ql-langs + path: split-sarif + retention-days: 1 \ No newline at end of file diff --git a/ql/scripts/split-sarif.js b/ql/scripts/split-sarif.js new file mode 100644 index 00000000000..d09989abf8a --- /dev/null +++ b/ql/scripts/split-sarif.js @@ -0,0 +1,30 @@ +var fs = require("fs"); + +// the .sarif file to split, and then the directory to put the split files in. +async function main(inputs) { + const sarifFile = JSON.parse(fs.readFileSync(inputs[0])); + const outFolder = inputs[1]; + + const out = {}; + + for (const result of sarifFile.runs[0].results) { + const lang = getLanguage(result); + if (!out[lang]) { + out[lang] = []; + } + out[lang].push(result); + } + + for (const lang in out) { + const outSarif = JSON.parse(JSON.stringify(sarifFile)); + outSarif.runs[0].results = out[lang]; + fs.writeFileSync(`${outFolder}/${lang}.sarif`, JSON.stringify(outSarif, null, 2)); + } +} + +function getLanguage(result) { + return result.locations[0].physicalLocation.artifactLocation.uri.split( + "/" + )[0]; +} +main(process.argv.splice(2)); From 1037c2b18213ed1efaf4113c2314417c8401b3ac Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 13:30:12 +0200 Subject: [PATCH 404/736] all comments are alive --- ql/ql/src/codeql_ql/style/DeadCodeQuery.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ql/ql/src/codeql_ql/style/DeadCodeQuery.qll b/ql/ql/src/codeql_ql/style/DeadCodeQuery.qll index 8974560fd59..e2eaff9c5ca 100644 --- a/ql/ql/src/codeql_ql/style/DeadCodeQuery.qll +++ b/ql/ql/src/codeql_ql/style/DeadCodeQuery.qll @@ -203,7 +203,7 @@ private AstNode classUnion() { private AstNode benign() { not result.getLocation().getFile().getExtension() = ["ql", "qll"] or // ignore dbscheme files - result instanceof BlockComment or + result instanceof Comment or not exists(result.toString()) or // <- invalid code // cached-stages pattern result.(Module).getAMember().(ClasslessPredicate).getName() = "forceStage" or From 3e06455ac1e11ceedbb5ae2b18d54ceb6bacc921 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Jul 2022 15:39:36 +0200 Subject: [PATCH 405/736] Swift: delete `TargetFile`'s move assignment --- swift/extractor/infra/TargetFile.cpp | 10 ---------- swift/extractor/infra/TargetFile.h | 3 ++- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/swift/extractor/infra/TargetFile.cpp b/swift/extractor/infra/TargetFile.cpp index d6c4df74318..c2639e81bd8 100644 --- a/swift/extractor/infra/TargetFile.cpp +++ b/swift/extractor/infra/TargetFile.cpp @@ -67,16 +67,6 @@ std::optional TargetFile::create(std::string_view target, return std::nullopt; } -TargetFile& TargetFile::operator=(TargetFile&& other) { - if (this != &other) { - commit(); - workingPath = std::move(other.workingPath); - targetPath = std::move(other.targetPath); - out = std::move(other.out); - } - return *this; -} - void TargetFile::commit() { if (out.is_open()) { out.close(); diff --git a/swift/extractor/infra/TargetFile.h b/swift/extractor/infra/TargetFile.h index 551abe0bb76..5f5ca7d823c 100644 --- a/swift/extractor/infra/TargetFile.h +++ b/swift/extractor/infra/TargetFile.h @@ -24,7 +24,8 @@ class TargetFile { ~TargetFile() { commit(); } TargetFile(TargetFile&& other) = default; - TargetFile& operator=(TargetFile&& other); + // move assignment deleted as non-trivial and not needed + TargetFile& operator=(TargetFile&& other) = delete; template TargetFile& operator<<(T&& value) { From 22ff8c2c7e33e2f6bc0533a2b99ea00044fb3cc5 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 14 Jul 2022 15:40:48 +0200 Subject: [PATCH 406/736] Swift: remove redundant braces --- swift/extractor/infra/TargetFile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/extractor/infra/TargetFile.cpp b/swift/extractor/infra/TargetFile.cpp index c2639e81bd8..d9706205c90 100644 --- a/swift/extractor/infra/TargetFile.cpp +++ b/swift/extractor/infra/TargetFile.cpp @@ -63,7 +63,7 @@ std::optional TargetFile::create(std::string_view target, std::string_view targetDir, std::string_view workingDir) { TargetFile ret{target, targetDir, workingDir}; - if (ret.init()) return {std::move(ret)}; + if (ret.init()) return ret; return std::nullopt; } From d13f9d5d71e6de2e672a041f14460d5e8dd3184f Mon Sep 17 00:00:00 2001 From: Aditya Sharad <6874315+adityasharad@users.noreply.github.com> Date: Thu, 14 Jul 2022 07:29:29 -0700 Subject: [PATCH 407/736] Update docs/codeql/query-help/javascript.rst Co-authored-by: Felicity Chapman --- docs/codeql/query-help/javascript.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/query-help/javascript.rst b/docs/codeql/query-help/javascript.rst index ae85de99f7b..58fe97eb3b0 100644 --- a/docs/codeql/query-help/javascript.rst +++ b/docs/codeql/query-help/javascript.rst @@ -3,7 +3,7 @@ CodeQL query help for JavaScript .. include:: ../reusables/query-help-overview.rst -These queries are published in the CodeQL query pack ``codeql/javascript-queries`` (`changelog `__, `source `__). +These queries are published in the CodeQL query pack ``codeql/javascript-queries`` (`changelog `__, `source `__). For shorter queries that you can use as building blocks when writing your own queries, see the `example queries in the CodeQL repository `__. From 5e74df3882b1d7e1f79cb1917f04114ff1608c3e Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 13 Jul 2022 19:05:05 +0200 Subject: [PATCH 408/736] Swift: cache file paths This required a bit of a generalization of `TrapLabelStore` to not work only with pointers. --- swift/extractor/SwiftExtractor.cpp | 22 ++---- swift/extractor/infra/FilePath.h | 24 ++++++ swift/extractor/infra/SwiftDispatcher.h | 99 +++++++++++++++---------- swift/extractor/infra/SwiftTagTraits.h | 17 +++-- swift/extractor/trap/TrapLabelStore.h | 6 +- swift/extractor/trap/TrapTagTraits.h | 3 +- swift/extractor/visitors/SwiftVisitor.h | 2 +- 7 files changed, 105 insertions(+), 68 deletions(-) create mode 100644 swift/extractor/infra/FilePath.h diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 60ac3436fa8..666b7a90044 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -104,29 +104,19 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, dumpArgs(*trapTarget, config); TrapDomain trap{*trapTarget}; - // TODO: move default location emission elsewhere, possibly in a separate global trap file + // TODO: remove this and recreate it with IPA when we have that // the following cannot conflict with actual files as those have an absolute path starting with / - auto unknownFileLabel = trap.createLabel("unknown"); - auto unknownLocationLabel = trap.createLabel("unknown"); - trap.emit(FilesTrap{unknownFileLabel}); - trap.emit(LocationsTrap{unknownLocationLabel, unknownFileLabel}); + File unknownFileEntry{trap.createLabel("unknown")}; + Location unknownLocationEntry{trap.createLabel("unknown")}; + unknownLocationEntry.file = unknownFileEntry.id; + trap.emit(unknownFileEntry); + trap.emit(unknownLocationEntry); SwiftVisitor visitor(compiler.getSourceMgr(), trap, module, primaryFile); auto topLevelDecls = getTopLevelDecls(module, primaryFile); for (auto decl : topLevelDecls) { visitor.extract(decl); } - // TODO the following will be moved to the dispatcher when we start caching swift file objects - // for the moment, topLevelDecls always contains the current module, which does not have a file - // associated with it, so we need a special case when there are no top level declarations - if (topLevelDecls.size() == 1) { - // In the case of empty files, the dispatcher is not called, but we still want to 'record' the - // fact that the file was extracted - llvm::SmallString name(filename); - llvm::sys::fs::make_absolute(name); - auto fileLabel = trap.createLabel(name.str().str()); - trap.emit(FilesTrap{fileLabel, name.str().str()}); - } } static std::unordered_set collectInputFilenames(swift::CompilerInstance& compiler) { diff --git a/swift/extractor/infra/FilePath.h b/swift/extractor/infra/FilePath.h new file mode 100644 index 00000000000..48288b928e4 --- /dev/null +++ b/swift/extractor/infra/FilePath.h @@ -0,0 +1,24 @@ +#pragma once + +#include +namespace codeql { + +// wrapper around `std::string` mainly intended to unambiguously go into an `std::variant` +// TODO probably not needed once we can use `std::filesystem::path` +struct FilePath { + FilePath() = default; + FilePath(const std::string& path) : path{path} {} + FilePath(std::string&& path) : path{std::move(path)} {} + + std::string path; + + bool operator==(const FilePath& other) const { return path == other.path; } +}; +} // namespace codeql + +namespace std { +template <> +struct hash { + size_t operator()(const codeql::FilePath& value) { return hash{}(value.path); } +}; +} // namespace std diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index a9ecb6996ff..b0cc951dd31 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -8,6 +8,7 @@ #include "swift/extractor/trap/TrapDomain.h" #include "swift/extractor/infra/SwiftTagTraits.h" #include "swift/extractor/trap/generated/TrapClasses.h" +#include "swift/extractor/infra/FilePath.h" namespace codeql { @@ -17,6 +18,24 @@ namespace codeql { // Since SwiftDispatcher sees all the AST nodes, it also attaches a location to every 'locatable' // node (AST nodes that are not types: declarations, statements, expressions, etc.). class SwiftDispatcher { + // types to be supported by assignNewLabel/fetchLabel need to be listed here + using Store = TrapLabelStore; + + template + static constexpr bool IsStorable = std::is_constructible_v; + + template + static constexpr bool IsLocatable = std::is_base_of_v>; + public: // all references and pointers passed as parameters to this constructor are supposed to outlive // the SwiftDispatcher @@ -27,7 +46,12 @@ class SwiftDispatcher { : sourceManager{sourceManager}, trap{trap}, currentModule{currentModule}, - currentPrimarySourceFile{currentPrimarySourceFile} {} + currentPrimarySourceFile{currentPrimarySourceFile} { + if (currentPrimarySourceFile) { + // we make sure the file is in the trap output even if the source is empty + fetchLabel(getFilePath(currentPrimarySourceFile->getFilename())); + } + } template void emit(const Entry& entry) { @@ -61,9 +85,11 @@ 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 - TrapLabelOf fetchLabel(E* e) { - assert(e && "trying to fetch a label on nullptr, maybe fetchOptionalLabel is to be used?"); + template >* = nullptr> + TrapLabelOf fetchLabel(const E& e) { + if constexpr (std::is_constructible_v) { + assert(e && "fetching a label on a null entity, maybe fetchOptionalLabel is to be used?"); + } // this is required so we avoid any recursive loop: a `fetchLabel` during the visit of `e` might // end up calling `fetchLabel` on `e` itself, so we want the visit of `e` to call `fetchLabel` // only after having called `assignNewLabel` on `e`. @@ -76,7 +102,7 @@ class SwiftDispatcher { visit(e); // TODO when everything is moved to structured C++ classes, this should be moved to createEntry if (auto l = store.get(e)) { - if constexpr (!std::is_base_of_v) { + if constexpr (IsLocatable) { attachLocation(e, *l); } return *l; @@ -93,15 +119,16 @@ class SwiftDispatcher { return fetchLabelFromUnion(node); } - TrapLabel fetchLabel(const swift::StmtConditionElement& element) { - return fetchLabel(&element); + template >* = nullptr> + TrapLabelOf fetchLabel(const E& e) { + return fetchLabel(&e); } // Due to the lazy emission approach, we must assign a label to a corresponding AST node before // it actually gets emitted to handle recursive cases such as recursive calls, or recursive type // declarations - template - TrapLabelOf assignNewLabel(E* e, Args&&... args) { + template >* = nullptr> + TrapLabelOf assignNewLabel(const E& e, Args&&... args) { assert(waitingForNewLabel == Store::Handle{e} && "assignNewLabel called on wrong entity"); auto label = trap.createLabel>(std::forward(args)...); store.insert(e, label); @@ -109,20 +136,20 @@ class SwiftDispatcher { return label; } - template >* = nullptr> + template >* = nullptr> TrapLabelOf assignNewLabel(const E& e, Args&&... args) { return assignNewLabel(&e, std::forward(args)...); } // convenience methods for structured C++ creation - template >* = nullptr> + template auto createEntry(const E& e, Args&&... args) { - return TrapClassOf{assignNewLabel(&e, std::forward(args)...)}; + return TrapClassOf{assignNewLabel(e, std::forward(args)...)}; } // used to create a new entry for entities that should not be cached // an example is swift::Argument, that are created on the fly and thus have no stable pointer - template >* = nullptr> + template auto createUncachedEntry(const E& e, Args&&... args) { auto label = trap.createLabel>(std::forward(args)...); attachLocation(&e, label); @@ -206,17 +233,6 @@ class SwiftDispatcher { } private: - // types to be supported by assignNewLabel/fetchLabel need to be listed here - using Store = TrapLabelStore; - void attachLocation(swift::SourceLoc start, swift::SourceLoc end, TrapLabel locatableLabel) { @@ -224,16 +240,16 @@ class SwiftDispatcher { // invalid locations seem to come from entities synthesized by the compiler return; } - std::string filepath = getFilepath(start); - auto fileLabel = trap.createLabel(filepath); - // TODO: do not emit duplicate trap entries for Files - trap.emit(FilesTrap{fileLabel, filepath}); - auto [startLine, startColumn] = sourceManager.getLineAndColumnInBuffer(start); - auto [endLine, endColumn] = sourceManager.getLineAndColumnInBuffer(end); - auto locLabel = trap.createLabel('{', fileLabel, "}:", startLine, ':', startColumn, - ':', endLine, ':', endColumn); - trap.emit(LocationsTrap{locLabel, fileLabel, startLine, startColumn, endLine, endColumn}); - trap.emit(LocatableLocationsTrap{locatableLabel, locLabel}); + auto file = getFilePath(sourceManager.getDisplayNameForLoc(start)); + Location entry{{}}; + entry.file = fetchLabel(file); + std::tie(entry.start_line, entry.start_column) = sourceManager.getLineAndColumnInBuffer(start); + std::tie(entry.end_line, entry.end_column) = sourceManager.getLineAndColumnInBuffer(end); + entry.id = trap.createLabel('{', entry.file, "}:", entry.start_line, ':', + entry.start_column, ':', entry.end_line, ':', + entry.end_column); + emit(entry); + emit(LocatableLocationsTrap{locatableLabel, entry.id}); } template @@ -256,21 +272,18 @@ class SwiftDispatcher { return false; } - std::string getFilepath(swift::SourceLoc loc) { + static FilePath getFilePath(llvm::StringRef path) { // TODO: this needs more testing // TODO: check canonicaliztion of names on a case insensitive filesystems // TODO: make symlink resolution conditional on CODEQL_PRESERVE_SYMLINKS=true - auto displayName = sourceManager.getDisplayNameForLoc(loc); llvm::SmallString realPath; - if (std::error_code ec = llvm::sys::fs::real_path(displayName, realPath)) { - std::cerr << "Cannot get real path: '" << displayName.str() << "': " << ec.message() << "\n"; + if (std::error_code ec = llvm::sys::fs::real_path(path, realPath)) { + std::cerr << "Cannot get real path: '" << path.str() << "': " << ec.message() << "\n"; return {}; } return realPath.str().str(); } - // TODO: The following methods are supposed to redirect TRAP emission to correpsonding visitors, - // which are to be introduced in follow-up PRs virtual void visit(swift::Decl* decl) = 0; virtual void visit(swift::Stmt* stmt) = 0; virtual void visit(const swift::StmtCondition* cond) = 0; @@ -281,6 +294,12 @@ class SwiftDispatcher { virtual void visit(swift::TypeRepr* type) = 0; virtual void visit(swift::TypeBase* type) = 0; + void visit(const FilePath& file) { + auto entry = createEntry(file); + entry.name = file.path; + emit(entry); + } + const swift::SourceManager& sourceManager; TrapDomain& trap; Store store; diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index 7447fa8f9b3..a4949b3ec5f 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -5,6 +5,7 @@ #include #include "swift/extractor/trap/TrapTagTraits.h" #include "swift/extractor/trap/generated/TrapTags.h" +#include "swift/extractor/infra/FilePath.h" namespace codeql { @@ -16,12 +17,12 @@ using SILFunctionTypeTag = SilFunctionTypeTag; using SILTokenTypeTag = SilTokenTypeTag; using SILBoxTypeReprTag = SilBoxTypeReprTag; -#define MAP_TYPE_TO_TAG(TYPE, TAG) \ - template <> \ - struct detail::ToTagFunctor { \ - using type = TAG; \ +#define MAP_TYPE_TO_TAG(TYPE, TAG) \ + template <> \ + struct detail::ToTagFunctor { \ + using type = TAG; \ } -#define MAP_TAG(TYPE) MAP_TYPE_TO_TAG(TYPE, TYPE##Tag) +#define MAP_TAG(TYPE) MAP_TYPE_TO_TAG(swift::TYPE, TYPE##Tag) #define MAP_SUBTAG(TYPE, PARENT) \ MAP_TAG(TYPE); \ static_assert(std::is_base_of_v, \ @@ -36,7 +37,7 @@ using SILBoxTypeReprTag = SilBoxTypeReprTag; MAP_TAG(Stmt); MAP_TAG(StmtCondition); -MAP_TYPE_TO_TAG(StmtConditionElement, ConditionElementTag); +MAP_TYPE_TO_TAG(swift::StmtConditionElement, ConditionElementTag); MAP_TAG(CaseLabelItem); #define ABSTRACT_STMT(CLASS, PARENT) MAP_SUBTAG(CLASS##Stmt, PARENT) #define STMT(CLASS, PARENT) ABSTRACT_STMT(CLASS, PARENT) @@ -63,7 +64,7 @@ MAP_TAG(TypeRepr); #define TYPEREPR(CLASS, PARENT) ABSTRACT_TYPEREPR(CLASS, PARENT) #include -MAP_TYPE_TO_TAG(TypeBase, TypeTag); +MAP_TYPE_TO_TAG(swift::TypeBase, TypeTag); #define ABSTRACT_TYPE(CLASS, PARENT) MAP_SUBTAG(CLASS##Type, PARENT) #define TYPE(CLASS, PARENT) ABSTRACT_TYPE(CLASS, PARENT) #include @@ -71,6 +72,8 @@ MAP_TYPE_TO_TAG(TypeBase, TypeTag); OVERRIDE_TAG(FuncDecl, ConcreteFuncDeclTag); OVERRIDE_TAG(VarDecl, ConcreteVarDeclTag); +MAP_TYPE_TO_TAG(FilePath, FileTag); + #undef MAP_TAG #undef MAP_SUBTAG #undef MAP_TYPE_TO_TAG diff --git a/swift/extractor/trap/TrapLabelStore.h b/swift/extractor/trap/TrapLabelStore.h index 93ca4212185..f9b0edd1753 100644 --- a/swift/extractor/trap/TrapLabelStore.h +++ b/swift/extractor/trap/TrapLabelStore.h @@ -20,10 +20,10 @@ namespace codeql { template class TrapLabelStore { public: - using Handle = std::variant; + using Handle = std::variant; template - std::optional> get(const T* e) { + std::optional> get(const T& e) { if (auto found = store_.find(e); found != store_.end()) { return TrapLabelOf::unsafeCreateFromUntyped(found->second); } @@ -31,7 +31,7 @@ class TrapLabelStore { } template - void insert(const T* e, TrapLabelOf l) { + void insert(const T& e, TrapLabelOf l) { auto [_, inserted] = store_.emplace(e, l); assert(inserted && "already inserted"); } diff --git a/swift/extractor/trap/TrapTagTraits.h b/swift/extractor/trap/TrapTagTraits.h index 9c29ff22330..f0f8c41cc8d 100644 --- a/swift/extractor/trap/TrapTagTraits.h +++ b/swift/extractor/trap/TrapTagTraits.h @@ -26,7 +26,8 @@ struct ToTrapClassFunctor; } // namespace detail template -using TrapTagOf = typename detail::ToTagOverride>::type; +using TrapTagOf = + typename detail::ToTagOverride>>::type; template using TrapLabelOf = TrapLabel>; diff --git a/swift/extractor/visitors/SwiftVisitor.h b/swift/extractor/visitors/SwiftVisitor.h index a13479246f4..d9d27f2a7ed 100644 --- a/swift/extractor/visitors/SwiftVisitor.h +++ b/swift/extractor/visitors/SwiftVisitor.h @@ -15,7 +15,7 @@ class SwiftVisitor : private SwiftDispatcher { using SwiftDispatcher::SwiftDispatcher; template - void extract(T* entity) { + void extract(const T& entity) { fetchLabel(entity); } From 0ee476129a847a52469fe639669b8ad0566f3fde Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 14 Jul 2022 14:38:49 +0000 Subject: [PATCH 409/736] Post-release preparation for codeql-cli-2.10.1 --- 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/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/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 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index ae668b219fb..ce90251f83f 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.3.1 +version: 0.3.2-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 1a97e24c9c7..2735b4d5289 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.3.0 +version: 0.3.1-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 3b56b5ac98e..fc22389c2a8 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.2.1 +version: 1.2.2-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 54326ca55ad..a2ef81cc0e4 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.2.1 +version: 1.2.2-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 6aff1d2ac68..0d72cfc0c65 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.3.1 +version: 0.3.2-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index b4e5b89773f..d3ceb328420 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.3.0 +version: 0.3.1-dev groups: - csharp - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 8f46c7040bb..c360e550193 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.2.1 +version: 0.2.2-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 3aff018b452..75ed3c98275 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.2.1 +version: 0.2.2-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 29b02e16b6e..0de218dcd22 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.3.1 +version: 0.3.2-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index b0790498fe3..9cd3341f443 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.3.0 +version: 0.3.1-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index cb4b01d90b0..9a05a09e0b6 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.2.1 +version: 0.2.2-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 07ac096af64..5525fe8b54b 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.3.0 +version: 0.3.1-dev groups: - javascript - queries diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 7aac7c78527..f1a7c716b1e 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.5.1 +version: 0.5.2-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 6d07cdc1ab3..155e57024e8 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.3.0 +version: 0.3.1-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 5b67e5ccd50..8216fedd9d2 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.3.1 +version: 0.3.2-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 6a55e6cecd3..6715fc61912 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.3.0 +version: 0.3.1-dev groups: - ruby - queries From d4b0163c4c4c247515ab52f40ebb80521a4da98c Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Jul 2022 16:36:26 +0100 Subject: [PATCH 410/736] Kotlin: Don't extract a name for a '_' parameter I can't reproduce the exact circumstances, but these sometimes get "" names and sometimes get "$noName_X" names. Whichever way, avoiding extracting a synthetic name seems safest; anyone finding the .class file and not reading the metadata indicating it came from a `_` will extract the binary name selected, or else QL will invent a name. --- .../src/main/kotlin/KotlinFileExtractor.kt | 2 +- .../test/kotlin/library-tests/exprs/PrintAst.expected | 10 +++++----- .../library-tests/underscore-parameters/test.expected | 1 + .../kotlin/library-tests/underscore-parameters/test.kt | 7 +++++++ .../kotlin/library-tests/underscore-parameters/test.ql | 5 +++++ 5 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 java/ql/test/kotlin/library-tests/underscore-parameters/test.expected create mode 100644 java/ql/test/kotlin/library-tests/underscore-parameters/test.kt create mode 100644 java/ql/test/kotlin/library-tests/underscore-parameters/test.ql diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 9bdf40fdca0..9ffd4115e2c 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -642,7 +642,7 @@ open class KotlinFileExtractor( if (extractTypeAccess) { extractTypeAccessRecursive(substitutedType, location, id, -1) } - val syntheticParameterNames = (vp.parent as? IrFunction)?.let { hasSynthesizedParameterNames(it) } ?: true + val syntheticParameterNames = vp.origin == IrDeclarationOrigin.UNDERSCORE_PARAMETER || ((vp.parent as? IrFunction)?.let { hasSynthesizedParameterNames(it) } ?: true) return extractValueParameter(id, substitutedType, vp.name.asString(), location, parent, idx, useValueParameter(vp, parentSourceDeclaration), vp.isVararg, syntheticParameterNames) } } diff --git a/java/ql/test/kotlin/library-tests/exprs/PrintAst.expected b/java/ql/test/kotlin/library-tests/exprs/PrintAst.expected index 879eb93c94e..19aebc86c66 100644 --- a/java/ql/test/kotlin/library-tests/exprs/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/exprs/PrintAst.expected @@ -3583,7 +3583,7 @@ funcExprs.kt: # 27| 2: [Method] invoke # 27| 3: [TypeAccess] int #-----| 4: (Parameters) -# 27| 0: [Parameter] +# 27| 0: [Parameter] p0 # 27| 0: [TypeAccess] int # 27| 5: [BlockStmt] { ... } # 27| 0: [ReturnStmt] return ... @@ -3629,9 +3629,9 @@ funcExprs.kt: # 30| 2: [Method] invoke # 30| 3: [TypeAccess] int #-----| 4: (Parameters) -# 30| 0: [Parameter] +# 30| 0: [Parameter] p0 # 30| 0: [TypeAccess] int -# 30| 1: [Parameter] +# 30| 1: [Parameter] p1 # 30| 0: [TypeAccess] int # 30| 5: [BlockStmt] { ... } # 30| 0: [ReturnStmt] return ... @@ -3652,9 +3652,9 @@ funcExprs.kt: # 31| 2: [Method] invoke # 31| 3: [TypeAccess] int #-----| 4: (Parameters) -# 31| 0: [Parameter] +# 31| 0: [Parameter] p0 # 31| 0: [TypeAccess] int -# 31| 1: [Parameter] +# 31| 1: [Parameter] p1 # 31| 0: [TypeAccess] int # 31| 5: [BlockStmt] { ... } # 31| 0: [ReturnStmt] return ... diff --git a/java/ql/test/kotlin/library-tests/underscore-parameters/test.expected b/java/ql/test/kotlin/library-tests/underscore-parameters/test.expected new file mode 100644 index 00000000000..ba0fd4346e4 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/underscore-parameters/test.expected @@ -0,0 +1 @@ +| test.kt:5:9:5:9 | p0 | p0 | diff --git a/java/ql/test/kotlin/library-tests/underscore-parameters/test.kt b/java/ql/test/kotlin/library-tests/underscore-parameters/test.kt new file mode 100644 index 00000000000..55891b484ec --- /dev/null +++ b/java/ql/test/kotlin/library-tests/underscore-parameters/test.kt @@ -0,0 +1,7 @@ +class A { + + var x: Int + get() = 1 + set(_) { } + +} diff --git a/java/ql/test/kotlin/library-tests/underscore-parameters/test.ql b/java/ql/test/kotlin/library-tests/underscore-parameters/test.ql new file mode 100644 index 00000000000..031a268af64 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/underscore-parameters/test.ql @@ -0,0 +1,5 @@ +import java + +from Parameter p +where p.getCallable().fromSource() +select p, p.getName() From 625e37a0da4bfb057cd432ff3c31eadbee7bea48 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 21:53:21 +0200 Subject: [PATCH 411/736] fix typo Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> --- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll index 74ba3569d20..79d9f85464e 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll @@ -699,7 +699,7 @@ private predicate exprToExprStep_nocfg(Expr fromExpr, Expr toExpr) { call.getTarget() = f and // AST dataflow treats a reference as if it were the referred-to object, while the dataflow // models treat references as pointers. If the return type of the call is a reference, then - // look for data flow the referred-to object, rather than the reference itself. + // look for data flow to the referred-to object, rather than the reference itself. if call.getType().getUnspecifiedType() instanceof ReferenceType then outModel.isReturnValueDeref() else outModel.isReturnValue() From 41ca7919664db1fc8cda7700f6708a765904ca9d Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 15 Jul 2022 12:36:37 +0100 Subject: [PATCH 412/736] Implement is-underscore-parameter for old versions of Kotlin --- .../src/main/kotlin/KotlinFileExtractor.kt | 3 ++- .../utils/versions/v_1_4_32/IsUnderscoreParameter.kt | 12 ++++++++++++ .../utils/versions/v_1_5_0/IsUnderscoreParameter.kt | 12 ++++++++++++ .../utils/versions/v_1_5_10/IsUnderscoreParameter.kt | 12 ++++++++++++ .../utils/versions/v_1_5_21/IsUnderscoreParameter.kt | 12 ++++++++++++ .../utils/versions/v_1_5_31/IsUnderscoreParameter.kt | 12 ++++++++++++ .../utils/versions/v_1_6_10/IsUnderscoreParameter.kt | 12 ++++++++++++ .../utils/versions/v_1_6_20/IsUnderscoreParameter.kt | 6 ++++++ .../utils/versions/v_1_7_0/IsUnderscoreParameter.kt | 6 ++++++ 9 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/IsUnderscoreParameter.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/IsUnderscoreParameter.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/IsUnderscoreParameter.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/IsUnderscoreParameter.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/IsUnderscoreParameter.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/IsUnderscoreParameter.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/IsUnderscoreParameter.kt diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 9ffd4115e2c..268e4b43bf2 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -4,6 +4,7 @@ import com.github.codeql.comments.CommentExtractor import com.github.codeql.utils.* import com.github.codeql.utils.versions.functionN import com.github.codeql.utils.versions.getIrStubFromDescriptor +import com.github.codeql.utils.versions.isUnderscoreParameter import com.semmle.extractor.java.OdasaOutput import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.backend.common.lower.parents @@ -642,7 +643,7 @@ open class KotlinFileExtractor( if (extractTypeAccess) { extractTypeAccessRecursive(substitutedType, location, id, -1) } - val syntheticParameterNames = vp.origin == IrDeclarationOrigin.UNDERSCORE_PARAMETER || ((vp.parent as? IrFunction)?.let { hasSynthesizedParameterNames(it) } ?: true) + val syntheticParameterNames = isUnderscoreParameter(vp) || ((vp.parent as? IrFunction)?.let { hasSynthesizedParameterNames(it) } ?: true) return extractValueParameter(id, substitutedType, vp.name.asString(), location, parent, idx, useValueParameter(vp, parentSourceDeclaration), vp.isVararg, syntheticParameterNames) } } 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_4_32/IsUnderscoreParameter.kt new file mode 100644 index 00000000000..59fd08c95f5 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_4_32/IsUnderscoreParameter.kt @@ -0,0 +1,12 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.psi.KtParameter +import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils +import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore +import org.jetbrains.kotlin.utils.addToStdlib.safeAs + +@OptIn(ObsoleteDescriptorBasedAPI::class) +fun isUnderscoreParameter(vp: IrValueParameter) = + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt new file mode 100644 index 00000000000..59fd08c95f5 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt @@ -0,0 +1,12 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.psi.KtParameter +import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils +import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore +import org.jetbrains.kotlin.utils.addToStdlib.safeAs + +@OptIn(ObsoleteDescriptorBasedAPI::class) +fun isUnderscoreParameter(vp: IrValueParameter) = + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/IsUnderscoreParameter.kt new file mode 100644 index 00000000000..59fd08c95f5 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/IsUnderscoreParameter.kt @@ -0,0 +1,12 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.psi.KtParameter +import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils +import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore +import org.jetbrains.kotlin.utils.addToStdlib.safeAs + +@OptIn(ObsoleteDescriptorBasedAPI::class) +fun isUnderscoreParameter(vp: IrValueParameter) = + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/IsUnderscoreParameter.kt new file mode 100644 index 00000000000..59fd08c95f5 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/IsUnderscoreParameter.kt @@ -0,0 +1,12 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.psi.KtParameter +import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils +import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore +import org.jetbrains.kotlin.utils.addToStdlib.safeAs + +@OptIn(ObsoleteDescriptorBasedAPI::class) +fun isUnderscoreParameter(vp: IrValueParameter) = + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/IsUnderscoreParameter.kt new file mode 100644 index 00000000000..59fd08c95f5 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/IsUnderscoreParameter.kt @@ -0,0 +1,12 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.psi.KtParameter +import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils +import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore +import org.jetbrains.kotlin.utils.addToStdlib.safeAs + +@OptIn(ObsoleteDescriptorBasedAPI::class) +fun isUnderscoreParameter(vp: IrValueParameter) = + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/IsUnderscoreParameter.kt new file mode 100644 index 00000000000..59fd08c95f5 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/IsUnderscoreParameter.kt @@ -0,0 +1,12 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.psi.KtParameter +import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils +import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore +import org.jetbrains.kotlin.utils.addToStdlib.safeAs + +@OptIn(ObsoleteDescriptorBasedAPI::class) +fun isUnderscoreParameter(vp: IrValueParameter) = + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/IsUnderscoreParameter.kt new file mode 100644 index 00000000000..00effc32c20 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/IsUnderscoreParameter.kt @@ -0,0 +1,6 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrValueParameter + +fun isUnderscoreParameter(vp: IrValueParameter) = vp.origin == IrDeclarationOrigin.UNDERSCORE_PARAMETER diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/IsUnderscoreParameter.kt new file mode 100644 index 00000000000..00effc32c20 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/IsUnderscoreParameter.kt @@ -0,0 +1,6 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrValueParameter + +fun isUnderscoreParameter(vp: IrValueParameter) = vp.origin == IrDeclarationOrigin.UNDERSCORE_PARAMETER From 2f505491843462ca10128402d0dd39b27e9fe2d1 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Fri, 15 Jul 2022 11:06:24 -0700 Subject: [PATCH 413/736] Move definitions.ql back to src --- go/ql/{lib => src}/definitions.ql | 0 javascript/ql/{lib => src}/definitions.ql | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename go/ql/{lib => src}/definitions.ql (100%) rename javascript/ql/{lib => src}/definitions.ql (100%) diff --git a/go/ql/lib/definitions.ql b/go/ql/src/definitions.ql similarity index 100% rename from go/ql/lib/definitions.ql rename to go/ql/src/definitions.ql diff --git a/javascript/ql/lib/definitions.ql b/javascript/ql/src/definitions.ql similarity index 100% rename from javascript/ql/lib/definitions.ql rename to javascript/ql/src/definitions.ql From b897a40228a8a9cf852680038e4b1ccc8be1ea6a Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Fri, 15 Jul 2022 12:06:41 -0700 Subject: [PATCH 414/736] Move python contextual queries to lib folders This will ensure that python projects can use jump to ref/def in vscode when the core libraries are not installed. --- python/ql/{src => lib}/analysis/LocalDefinitions.ql | 0 python/ql/{src => lib}/analysis/LocalReferences.ql | 0 .../src/change-notes/2022-07-15-move-contextual-queries.md | 5 +++++ 3 files changed, 5 insertions(+) rename python/ql/{src => lib}/analysis/LocalDefinitions.ql (100%) rename python/ql/{src => lib}/analysis/LocalReferences.ql (100%) create mode 100644 python/ql/src/change-notes/2022-07-15-move-contextual-queries.md diff --git a/python/ql/src/analysis/LocalDefinitions.ql b/python/ql/lib/analysis/LocalDefinitions.ql similarity index 100% rename from python/ql/src/analysis/LocalDefinitions.ql rename to python/ql/lib/analysis/LocalDefinitions.ql diff --git a/python/ql/src/analysis/LocalReferences.ql b/python/ql/lib/analysis/LocalReferences.ql similarity index 100% rename from python/ql/src/analysis/LocalReferences.ql rename to python/ql/lib/analysis/LocalReferences.ql diff --git a/python/ql/src/change-notes/2022-07-15-move-contextual-queries.md b/python/ql/src/change-notes/2022-07-15-move-contextual-queries.md new file mode 100644 index 00000000000..25ae1b57b99 --- /dev/null +++ b/python/ql/src/change-notes/2022-07-15-move-contextual-queries.md @@ -0,0 +1,5 @@ +--- +category: breaking +--- +* Contextual queries and the query libraries they depend on have been moved to the `codeql/python-all` package. + From fe789c8aa97b95be0fb49d8151f6a8816b6463a1 Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Sat, 16 Jul 2022 08:22:18 -0700 Subject: [PATCH 415/736] Update java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: yo-h <55373593+yo-h@users.noreply.github.com> --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index ba78fa56423..5fac4f2c6c9 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -51,8 +51,8 @@ predicate isCreatingAzureClientSideEncryptionObjectNewVersion(Call call, Class c * A dataflow config that tracks `EncryptedBlobClientBuilder.version` argument initialization. */ private class EncryptedBlobClientBuilderSafeEncryptionVersionConfig extends DataFlow::Configuration { - EncryptedBlobClientBuilderEncryptionVersionConfig() { - this = "EncryptedBlobClientBuilderEncryptionVersionConfig" + EncryptedBlobClientBuilderSafeEncryptionVersionConfig() { + this = "EncryptedBlobClientBuilderSafeEncryptionVersionConfig" } override predicate isSource(DataFlow::Node source) { From eefa6595038ea4eba8abc6ab4efe513598954692 Mon Sep 17 00:00:00 2001 From: Raul Garcia <42392023+raulgarciamsft@users.noreply.github.com> Date: Sat, 16 Jul 2022 08:23:59 -0700 Subject: [PATCH 416/736] Update java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql Co-authored-by: yo-h <55373593+yo-h@users.noreply.github.com> --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index 5fac4f2c6c9..287a3f07a6c 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -74,7 +74,7 @@ private class EncryptedBlobClientBuilderSafeEncryptionVersionConfig extends Data */ predicate isCreatingSafeAzureClientSideEncryptionObject(Call call, Class c, Expr versionArg) { isCreatingAzureClientSideEncryptionObjectNewVersion(call, c, versionArg) and - exists(EncryptedBlobClientBuilderEncryptionVersionConfig config, DataFlow::Node sink | + exists(EncryptedBlobClientBuilderSafeEncryptionVersionConfig config, DataFlow::Node sink | sink.asExpr() = versionArg | config.hasFlow(_, sink) From 6b17890e4f0adefdd7127197fd08857bc6296131 Mon Sep 17 00:00:00 2001 From: Raul Garcia Date: Sat, 16 Jul 2022 08:30:06 -0700 Subject: [PATCH 417/736] Fixing warning on usage of a deprecated feature. --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 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 3b35f2350bd..c9687b17821 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -33,7 +33,7 @@ predicate isUnsafeClientSideAzureStorageEncryptionViaAttributes(Call call, AttrN .getMember("BlobClient") .getReturn() .getMember("upload_blob") and - n.getAUse().asExpr() = a and + n.getAValueReachableFromSource().asExpr() = a and astmt.getATarget() = a and a.getAFlowNode() = node and uploadBlob = @@ -60,7 +60,7 @@ predicate isUnsafeClientSideAzureStorageEncryptionViaAttributes(Call call, AttrN .getMember("BlobClient") .getReturn() .getMember("encryption_version") and - encryptionVersion.getAUse().asExpr() = a2 and + encryptionVersion.getAValueReachableFromSource().asExpr() = a2 and astmt2.getATarget() = a2 and a2.getAFlowNode() = encryptionVersionSet and encryptionVersionSet.strictlyReaches(ctrlFlowNode) From dbd660787541d5f36264052d82910207fc2d3b01 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 18 Jul 2022 08:54:58 +0100 Subject: [PATCH 418/736] Ruby: use ASCII dash in comment Co-authored-by: Harry Maclean --- ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll index e2cea924838..b6381c448ec 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Pathname.qll @@ -22,7 +22,7 @@ module Pathname { * puts pn.read * ``` * - * there are three `PathnameInstance`s – the call to `Pathname.new`, the + * there are three `PathnameInstance`s - the call to `Pathname.new`, the * assignment `pn = ...`, and the read access to `pn` on the second line. * * Every `PathnameInstance` is considered to be a `FileNameSource`. From 78fc356febfc28d4175b4881b664d796a8c37e94 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 18 Jul 2022 10:29:20 +0200 Subject: [PATCH 419/736] Swift: address review comments --- swift/extractor/infra/SwiftDispatcher.h | 7 ++++--- swift/extractor/visitors/ExprVisitor.cpp | 2 +- swift/extractor/visitors/ExprVisitor.h | 8 +++++--- swift/extractor/visitors/TypeVisitor.cpp | 2 ++ 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index 095ddf0a7aa..baf3bdba292 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -78,7 +78,7 @@ class SwiftDispatcher { waitingForNewLabel = e; visit(e); if (auto l = store.get(e)) { - if constexpr (std::is_base_of_v>) { + if constexpr (!std::is_base_of_v) { attachLocation(e, *l); } return *l; @@ -285,8 +285,9 @@ class SwiftDispatcher { return realPath.str().str(); } - // TODO: The following methods are supposed to redirect TRAP emission to correpsonding visitors, - // which are to be introduced in follow-up PRs + // TODO: for const correctness these should consistently be `const` (and maybe const references + // as we don't expect `nullptr` here. However `swift::ASTVisitor` and `swift::TypeVisitor` do not + // accept const pointers virtual void visit(swift::Decl* decl) = 0; virtual void visit(const swift::IfConfigClause* clause) = 0; virtual void visit(swift::Stmt* stmt) = 0; diff --git a/swift/extractor/visitors/ExprVisitor.cpp b/swift/extractor/visitors/ExprVisitor.cpp index 90ca0a168ee..e1baf3a80dc 100644 --- a/swift/extractor/visitors/ExprVisitor.cpp +++ b/swift/extractor/visitors/ExprVisitor.cpp @@ -667,11 +667,11 @@ void ExprVisitor::emitLookupExpr(const swift::LookupExpr* expr, TrapLabel { codeql::BridgeFromObjCExpr translateBridgeFromObjCExpr(const swift::BridgeFromObjCExpr& expr); codeql::DotSelfExpr translateDotSelfExpr(const swift::DotSelfExpr& expr); codeql::ErrorExpr translateErrorExpr(const swift::ErrorExpr& expr); - // following requires non-const because: - // * `swift::UnresolvedPatternExpr::getSubPattern` gives `const swift::Pattern*` on const refs + // The following function requires a non-const parameter because: + // * `swift::UnresolvedPatternExpr::getSubPattern` has a `const`-qualified overload returning + // `const swift::Pattern*` // * `swift::ASTVisitor` only visits non-const pointers - // either we accept this, or we fix constness by providing our own const visiting in VisitorBase + // either we accept this, or we fix constness, e.g. by providing `visit` on `const` pointers + // in `VisitorBase`, or by doing a `const_cast` in `SwifDispatcher::fetchLabel` codeql::UnresolvedPatternExpr translateUnresolvedPatternExpr(swift::UnresolvedPatternExpr& expr); private: diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index 945ef5693ce..988e16b527c 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -1,4 +1,5 @@ #include "swift/extractor/visitors/TypeVisitor.h" + namespace codeql { void TypeVisitor::visit(swift::TypeBase* type) { TypeVisitorBase::visit(type); @@ -367,6 +368,7 @@ codeql::BuiltinVectorType TypeVisitor::translateBuiltinVectorType( const swift::BuiltinVectorType& type) { return createTypeEntry(type); } + codeql::OpenedArchetypeType TypeVisitor::translateOpenedArchetypeType( const swift::OpenedArchetypeType& type) { auto entry = createTypeEntry(type); From c08c3955d6f5ebe824eb9570edf3d463e4fd66f4 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 18 Jul 2022 10:37:54 +0200 Subject: [PATCH 420/736] Swift: add `UnresolvedPatternExpr` test --- swift/codegen/schema.yml | 1 - .../expr/UnresolvedPatternExpr/unresolved_pattern_expr.swift | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/unresolved_pattern_expr.swift diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index 540f187d021..13d01fefc0e 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -569,7 +569,6 @@ UnresolvedMemberExpr: UnresolvedPatternExpr: _extends: Expr - _pragma: qltest_skip # we should really never extract these _children: sub_pattern: Pattern diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/unresolved_pattern_expr.swift b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/unresolved_pattern_expr.swift new file mode 100644 index 00000000000..2ca1bbb7c24 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/unresolved_pattern_expr.swift @@ -0,0 +1,5 @@ +#if FOO +if case let .some(x) = 42 { + print(x) +} +#endif From c779936ee80e68ae324c3cd0a8ba98ec530c60e7 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 18 Jul 2022 11:19:40 +0200 Subject: [PATCH 421/736] Swift: commit forgotten files --- .../UnresolvedPatternExpr.expected | 1 + .../UnresolvedPatternExpr/UnresolvedPatternExpr.ql | 10 ++++++++++ .../UnresolvedPatternExpr_getType.expected | 0 .../UnresolvedPatternExpr_getType.ql | 7 +++++++ 4 files changed, 18 insertions(+) create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr_getType.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr_getType.ql diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr.expected b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr.expected new file mode 100644 index 00000000000..3f348092bdb --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr.expected @@ -0,0 +1 @@ +| unresolved_pattern_expr.swift:2:19:2:19 | UnresolvedPatternExpr | getSubPattern: | unresolved_pattern_expr.swift:2:19:2:19 | x | diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr.ql new file mode 100644 index 00000000000..9a5f8e54490 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr.ql @@ -0,0 +1,10 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from UnresolvedPatternExpr x, Pattern getSubPattern +where + toBeTested(x) and + not x.isUnknown() and + getSubPattern = x.getSubPattern() +select x, "getSubPattern:", getSubPattern diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr_getType.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr_getType.ql new file mode 100644 index 00000000000..af57d0129a1 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/UnresolvedPatternExpr/UnresolvedPatternExpr_getType.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from UnresolvedPatternExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getType() From 52a9fb0de78fdd18efcfc146ab0a50363279f8c2 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 21 Jun 2022 14:26:28 +0200 Subject: [PATCH 422/736] C#: Add test for decrypt. --- .../HardcodedSymmetricEncryptionKey.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.cs b/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.cs index 23980864339..ec7280dfe73 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.cs @@ -46,6 +46,9 @@ namespace HardcodedSymmetricEncryptionKey // GOOD (this function hashes password) var de = DecryptWithPassword(ct, c, iv); + // BAD: harc-coded password passed to Decrypt + var de1 = Decrypt(ct, c, iv); + // BAD [NOT DETECTED] CreateCryptographicKey(null, byteArrayFromString); @@ -53,6 +56,26 @@ namespace HardcodedSymmetricEncryptionKey CreateCryptographicKey(null, File.ReadAllBytes("secret.key")); } + public static string Decrypt(byte[] cipherText, byte[] password, byte[] IV) + { + byte[] rawPlaintext; + var salt = new byte[] { 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 }; + + using (Aes aes = new AesManaged()) + { + using (MemoryStream ms = new MemoryStream()) + { + using (CryptoStream cs = new CryptoStream(ms, aes.CreateDecryptor(password, IV), CryptoStreamMode.Write)) + { + cs.Write(cipherText, 0, cipherText.Length); + } + rawPlaintext = ms.ToArray(); + } + + return Encoding.Unicode.GetString(rawPlaintext); + } + } + public static string DecryptWithPassword(byte[] cipherText, byte[] password, byte[] IV) { byte[] rawPlaintext; From e6e82ef56d558583cd0beac40714d35f11182cdc Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 21 Jun 2022 14:28:40 +0200 Subject: [PATCH 423/736] C#: Update test with Decrypt example. --- .../HardcodedSymmetricEncryptionKey.expected | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.expected b/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.expected index fd9dd378fa5..676148bd7ed 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.expected @@ -1,6 +1,7 @@ | HardcodedSymmetricEncryptionKey.cs:17:21:17:97 | array creation of type Byte[] | Hard-coded symmetric $@ is used in symmetric algorithm in Key property assignment | HardcodedSymmetricEncryptionKey.cs:17:21:17:97 | array creation of type Byte[] | key | | HardcodedSymmetricEncryptionKey.cs:22:23:22:99 | array creation of type Byte[] | Hard-coded symmetric $@ is used in symmetric algorithm in Key property assignment | HardcodedSymmetricEncryptionKey.cs:22:23:22:99 | array creation of type Byte[] | key | | HardcodedSymmetricEncryptionKey.cs:31:21:31:21 | access to local variable d | Hard-coded symmetric $@ is used in symmetric algorithm in Key property assignment | HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] | key | -| HardcodedSymmetricEncryptionKey.cs:85:23:85:25 | access to parameter key | Hard-coded symmetric $@ is used in symmetric algorithm in Key property assignment | HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] | key | -| HardcodedSymmetricEncryptionKey.cs:98:87:98:89 | access to parameter key | Hard-coded symmetric $@ is used in symmetric algorithm in Encryptor(rgbKey, IV) | HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] | key | -| HardcodedSymmetricEncryptionKey.cs:98:87:98:89 | access to parameter key | Hard-coded symmetric $@ is used in symmetric algorithm in Encryptor(rgbKey, IV) | HardcodedSymmetricEncryptionKey.cs:28:62:28:115 | "Hello, world: here is a very bad way to create a key" | key | +| HardcodedSymmetricEncryptionKey.cs:68:87:68:94 | access to parameter password | Hard-coded symmetric $@ is used in symmetric algorithm in Decryptor(rgbKey, IV) | HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] | key | +| HardcodedSymmetricEncryptionKey.cs:108:23:108:25 | access to parameter key | Hard-coded symmetric $@ is used in symmetric algorithm in Key property assignment | HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] | key | +| HardcodedSymmetricEncryptionKey.cs:121:87:121:89 | access to parameter key | Hard-coded symmetric $@ is used in symmetric algorithm in Encryptor(rgbKey, IV) | HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] | key | +| HardcodedSymmetricEncryptionKey.cs:121:87:121:89 | access to parameter key | Hard-coded symmetric $@ is used in symmetric algorithm in Encryptor(rgbKey, IV) | HardcodedSymmetricEncryptionKey.cs:28:62:28:115 | "Hello, world: here is a very bad way to create a key" | key | From 383ad5168237b0ca79506ec1e3dee3a952bdaffe Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 21 Jun 2022 15:30:20 +0200 Subject: [PATCH 424/736] C#: Use CSV format for CreateEncryptor and CreateDecryptor sinks. --- .../HardcodedSymmetricEncryptionKey.qll | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll index 3cf3fa107bf..8d5c80699c8 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll @@ -4,6 +4,7 @@ */ import csharp +private import semmle.code.csharp.dataflow.ExternalFlow module HardcodedSymmetricEncryptionKey { private import semmle.code.csharp.frameworks.system.security.cryptography.SymmetricAlgorithm @@ -46,22 +47,24 @@ module HardcodedSymmetricEncryptionKey { override string getDescription() { result = "'Key' property assignment" } } - private class SymmetricEncryptionCreateEncryptorSink extends Sink { - SymmetricEncryptionCreateEncryptorSink() { - exists(SymmetricAlgorithm ag, MethodCall mc | mc = ag.getASymmetricEncryptor() | - this.asExpr() = mc.getArgumentForName("rgbKey") - ) + private class SymmetricAlgorithmCreateSinkCsv extends SinkModelCsv { + override predicate row(string row) { + row = + [ + "System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor", + "System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor" + ] } + } + + private class SymmetricAlgorithmCreateEncryptorSink extends Sink { + SymmetricAlgorithmCreateEncryptorSink() { sinkNode(this, "encryption-encryptor") } override string getDescription() { result = "Encryptor(rgbKey, IV)" } } - private class SymmetricEncryptionCreateDecryptorSink extends Sink { - SymmetricEncryptionCreateDecryptorSink() { - exists(SymmetricAlgorithm ag, MethodCall mc | mc = ag.getASymmetricDecryptor() | - this.asExpr() = mc.getArgumentForName("rgbKey") - ) - } + private class SymmetricAlgorithmCreateDecryptorSink extends Sink { + SymmetricAlgorithmCreateDecryptorSink() { sinkNode(this, "encryption-decryptor") } override string getDescription() { result = "Decryptor(rgbKey, IV)" } } From 1d405dba147099282916d9a103d43d0f475ddb75 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 21 Jun 2022 15:35:39 +0200 Subject: [PATCH 425/736] C#: Collapse Sink classes. --- .../HardcodedSymmetricEncryptionKey.qll | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll index 8d5c80699c8..557ae99810e 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll @@ -58,15 +58,15 @@ module HardcodedSymmetricEncryptionKey { } private class SymmetricAlgorithmCreateEncryptorSink extends Sink { - SymmetricAlgorithmCreateEncryptorSink() { sinkNode(this, "encryption-encryptor") } + private string kind; - override string getDescription() { result = "Encryptor(rgbKey, IV)" } - } + SymmetricAlgorithmCreateEncryptorSink() { sinkNode(this, kind) and kind.matches("encryption%") } - private class SymmetricAlgorithmCreateDecryptorSink extends Sink { - SymmetricAlgorithmCreateDecryptorSink() { sinkNode(this, "encryption-decryptor") } - - override string getDescription() { result = "Decryptor(rgbKey, IV)" } + override string getDescription() { + kind = "encryption-encryptor" and result = "Encryptor(rgbKey, IV)" + or + kind = "encryption-decryptor" and result = "Decryptor(rgbKey, IV)" + } } private class CreateSymmetricKeySink extends Sink { From 032448041d78e8cccfca6f39e69f96fd83f64a78 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 21 Jun 2022 15:51:33 +0200 Subject: [PATCH 426/736] C#: Convert CreateSymmetricKey to CSV sink. --- .../HardcodedSymmetricEncryptionKey.qll | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll index 557ae99810e..5fa17036f76 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll @@ -52,7 +52,8 @@ module HardcodedSymmetricEncryptionKey { row = [ "System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor", - "System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor" + "System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor", + "Windows.Security.Cryptography.Core;SymmetricKeyAlgorithmProvider;false;CreateSymmetricKey;(Windows.Storage.Streams.IBuffer);;Argument[0];encryption-symmetrickey" ] } } @@ -66,22 +67,11 @@ module HardcodedSymmetricEncryptionKey { kind = "encryption-encryptor" and result = "Encryptor(rgbKey, IV)" or kind = "encryption-decryptor" and result = "Decryptor(rgbKey, IV)" + or + kind = "encryption-symmetrickey" and result = "CreateSymmetricKey(IBuffer keyMaterial)" } } - private class CreateSymmetricKeySink extends Sink { - CreateSymmetricKeySink() { - exists(MethodCall mc, Method m | - mc.getTarget() = m and - m.hasQualifiedName("Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider", - "CreateSymmetricKey") and - this.asExpr() = mc.getArgumentForName("keyMaterial") - ) - } - - override string getDescription() { result = "CreateSymmetricKey(IBuffer keyMaterial)" } - } - private class CryptographicBuffer extends Class { CryptographicBuffer() { this.hasQualifiedName("Windows.Security.Cryptography", "CryptographicBuffer") From a5b7e2a2e1692e21173656c116c26d5eaa073991 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 21 Jun 2022 16:11:31 +0200 Subject: [PATCH 427/736] C#: Convert set Key of SymmetricAlgorithm to Csv sink. --- .../HardcodedSymmetricEncryptionKey.qll | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll index 5fa17036f76..cff9f254e1c 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll @@ -39,29 +39,22 @@ module HardcodedSymmetricEncryptionKey { StringLiteralSource() { this.asExpr() instanceof StringLiteral } } - private class SymmetricEncryptionKeyPropertySink extends Sink { - SymmetricEncryptionKeyPropertySink() { - this.asExpr() = any(SymmetricAlgorithm sa).getKeyProperty().getAnAssignedValue() - } - - override string getDescription() { result = "'Key' property assignment" } - } - - private class SymmetricAlgorithmCreateSinkCsv extends SinkModelCsv { + private class SymmetricAlgorithmSinkCsv extends SinkModelCsv { override predicate row(string row) { row = [ "System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor", "System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor", + "System.Security.Cryptography;SymmetricAlgorithm;true;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop", "Windows.Security.Cryptography.Core;SymmetricKeyAlgorithmProvider;false;CreateSymmetricKey;(Windows.Storage.Streams.IBuffer);;Argument[0];encryption-symmetrickey" ] } } - private class SymmetricAlgorithmCreateEncryptorSink extends Sink { + private class SymmetricAlgorithmSink extends Sink { private string kind; - SymmetricAlgorithmCreateEncryptorSink() { sinkNode(this, kind) and kind.matches("encryption%") } + SymmetricAlgorithmSink() { sinkNode(this, kind) and kind.matches("encryption%") } override string getDescription() { kind = "encryption-encryptor" and result = "Encryptor(rgbKey, IV)" @@ -69,6 +62,8 @@ module HardcodedSymmetricEncryptionKey { kind = "encryption-decryptor" and result = "Decryptor(rgbKey, IV)" or kind = "encryption-symmetrickey" and result = "CreateSymmetricKey(IBuffer keyMaterial)" + or + kind = "encryption-keyprop" and result = "'Key' property assignment" } } From 66232a805409915191c8234474485e0fec19b506 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 22 Jun 2022 10:02:39 +0200 Subject: [PATCH 428/736] C#: Fix typo. --- .../HardcodedSymmetricEncryptionKey.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.cs b/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.cs index ec7280dfe73..0c9c58d0d23 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.cs @@ -46,7 +46,7 @@ namespace HardcodedSymmetricEncryptionKey // GOOD (this function hashes password) var de = DecryptWithPassword(ct, c, iv); - // BAD: harc-coded password passed to Decrypt + // BAD: hard-coded password passed to Decrypt var de1 = Decrypt(ct, c, iv); // BAD [NOT DETECTED] From c91d49a0fed77666c00ff870a72e9c947fa56640 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 22 Jun 2022 12:32:50 +0200 Subject: [PATCH 429/736] C#: Add provenance column to CSV format for SymmetricAlgorithm. --- .../cryptography/HardcodedSymmetricEncryptionKey.qll | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll index cff9f254e1c..79943481bbc 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll @@ -43,10 +43,10 @@ module HardcodedSymmetricEncryptionKey { override predicate row(string row) { row = [ - "System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor", - "System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor", - "System.Security.Cryptography;SymmetricAlgorithm;true;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop", - "Windows.Security.Cryptography.Core;SymmetricKeyAlgorithmProvider;false;CreateSymmetricKey;(Windows.Storage.Streams.IBuffer);;Argument[0];encryption-symmetrickey" + "System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual", + "System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual", + "System.Security.Cryptography;SymmetricAlgorithm;true;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual", + "Windows.Security.Cryptography.Core;SymmetricKeyAlgorithmProvider;false;CreateSymmetricKey;(Windows.Storage.Streams.IBuffer);;Argument[0];encryption-symmetrickey;manual" ] } } From 57ba0c4e5d5e130beb44d4b676742e92b0af8dd5 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 18 Jul 2022 14:28:24 +0200 Subject: [PATCH 430/736] C#: Move sinks into System.Security.Cryptography framework code. --- .../system/security/Cryptography.qll | 20 +++++++++++++++++++ .../HardcodedSymmetricEncryptionKey.qll | 12 ----------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/security/Cryptography.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/security/Cryptography.qll index 156f99d7fde..aad7e601249 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/security/Cryptography.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/security/Cryptography.qll @@ -42,3 +42,23 @@ private class SystemSecurityCryptographyOidCollectionFlowModelCsv extends Summar ] } } + +/** Sinks for `System.Security.Cryptography`. */ +private class SystemSecurityCryptographySinkModelCsv extends SinkModelCsv { + override predicate row(string row) { + row = + [ + "System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual", + "System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual", + "System.Security.Cryptography;SymmetricAlgorithm;true;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual", + ] + } +} + +/** Sinks for `Windows.Security.Cryptography.Core`. */ +private class WindowsSecurityCryptographyCoreSinkModelCsv extends SinkModelCsv { + override predicate row(string row) { + row = + "Windows.Security.Cryptography.Core;SymmetricKeyAlgorithmProvider;false;CreateSymmetricKey;(Windows.Storage.Streams.IBuffer);;Argument[0];encryption-symmetrickey;manual" + } +} diff --git a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll index 79943481bbc..e937e69919e 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/cryptography/HardcodedSymmetricEncryptionKey.qll @@ -39,18 +39,6 @@ module HardcodedSymmetricEncryptionKey { StringLiteralSource() { this.asExpr() instanceof StringLiteral } } - private class SymmetricAlgorithmSinkCsv extends SinkModelCsv { - override predicate row(string row) { - row = - [ - "System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual", - "System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual", - "System.Security.Cryptography;SymmetricAlgorithm;true;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual", - "Windows.Security.Cryptography.Core;SymmetricKeyAlgorithmProvider;false;CreateSymmetricKey;(Windows.Storage.Streams.IBuffer);;Argument[0];encryption-symmetrickey;manual" - ] - } - } - private class SymmetricAlgorithmSink extends Sink { private string kind; From 6603024488f203492b2767fb9ba4ed0417b8d8b7 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 18 Jul 2022 14:32:31 +0200 Subject: [PATCH 431/736] C#: Allow encryption- prefix for sinks in CsvValidation. --- csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll index 782d33ea020..904ac79f009 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll @@ -377,6 +377,7 @@ module CsvValidation { exists(string row, string kind | sinkModel(row) | kind = row.splitAt(";", 7) and not kind = ["code", "sql", "xss", "remote", "html"] and + not kind.matches("encryption-%") and msg = "Invalid kind \"" + kind + "\" in sink model." ) or From 39fb714ad17e91cefbb3fa9a7160836ef8f3a303 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Jul 2022 12:54:35 +0100 Subject: [PATCH 432/736] Swift: Add test with substring declared differently. --- .../CWE-135/StringLengthConflation.expected | 4 ++ .../CWE-135/StringLengthConflation2.swift | 42 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation2.swift diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index 1af416dad2f..e5191b6446d 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -1,4 +1,5 @@ edges +| StringLengthConflation2.swift:37:34:37:36 | .count : | StringLengthConflation2.swift:37:34:37:44 | ... call to -(_:_:) ... | | StringLengthConflation.swift:60:47:60:50 | .length : | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | | StringLengthConflation.swift:66:33:66:36 | .length : | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | | StringLengthConflation.swift:93:28:93:31 | .length : | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | @@ -15,6 +16,8 @@ edges | StringLengthConflation.swift:135:36:135:38 | .count : | StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | | StringLengthConflation.swift:141:28:141:30 | .count : | StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | nodes +| StringLengthConflation2.swift:37:34:37:36 | .count : | semmle.label | .count : | +| StringLengthConflation2.swift:37:34:37:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | | StringLengthConflation.swift:53:43:53:46 | .length | semmle.label | .length | | StringLengthConflation.swift:60:47:60:50 | .length : | semmle.label | .length : | | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | semmle.label | ... call to /(_:_:) ... | @@ -50,6 +53,7 @@ nodes | StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | subpaths #select +| StringLengthConflation2.swift:37:34:37:44 | ... call to -(_:_:) ... | StringLengthConflation2.swift:37:34:37:36 | .count : | StringLengthConflation2.swift:37:34:37:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | StringLengthConflation.swift:60:47:60:50 | .length : | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | StringLengthConflation.swift:66:33:66:36 | .length : | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation2.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation2.swift new file mode 100644 index 00000000000..39b1456e604 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation2.swift @@ -0,0 +1,42 @@ +// this test is in a separate file, because we want to test with a slightly different library +// implementation. In this version, some of the functions of `NSString` are in fact implemented +// in a base class `NSStringBase`. + +// --- stubs --- + +func print(_ items: Any...) {} + +typealias unichar = UInt16 + +class NSObject +{ +} + +class NSStringBase : NSObject +{ + func substring(from: Int) -> String { return "" } +} + +class NSString : NSStringBase +{ + init(string: String) { length = string.count } + + func substring(to: Int) -> String { return "" } + + private(set) var length: Int +} + +// --- tests --- + +func test(s: String) { + let ns = NSString(string: s) + + let nstr1 = ns.substring(from: ns.length - 1) // GOOD + let nstr2 = ns.substring(from: s.count - 1) // BAD: String length used in NSString [NOT DETECTED] + let nstr3 = ns.substring(to: ns.length - 1) // GOOD + let nstr4 = ns.substring(to: s.count - 1) // BAD: String length used in NSString + print("substrings '\(nstr1)' '\(nstr2)' / '\(nstr3)' '\(nstr4)'") +} + +// `begin :thumbsup: end`, with thumbs up emoji and skin tone modifier +test(s: "begin \u{0001F44D}\u{0001F3FF} end") From 4854679a4010f415e80151c4f797afff3e1f2ed0 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Jul 2022 13:04:20 +0100 Subject: [PATCH 433/736] Swift: Clean up isSink (1 - move common variables to an outer exists). --- .../CWE-135/StringLengthConflation.ql | 163 +++++++++--------- 1 file changed, 81 insertions(+), 82 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 398c48f01e5..fa5c5f25e9d 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -41,88 +41,87 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { } override predicate isSink(DataFlow::Node node, string flowstate) { - // arguments to method calls... - exists( - string className, string methodName, string paramName, ClassDecl c, AbstractFunctionDecl f, - CallExpr call, int arg - | - ( - // `NSRange.init` - className = "NSRange" and - methodName = "init(location:length:)" and - paramName = ["location", "length"] - or - // `NSString.character` - className = ["NSString", "NSMutableString"] and - methodName = "character(at:)" and - paramName = "at" - or - // `NSString.character` - className = ["NSString", "NSMutableString"] and - methodName = "substring(from:)" and - paramName = "from" - or - // `NSString.character` - className = ["NSString", "NSMutableString"] and - methodName = "substring(to:)" and - paramName = "to" - or - // `NSMutableString.insert` - className = "NSMutableString" and - methodName = "insert(_:at:)" and - paramName = "at" - ) and - c.getName() = className and - c.getAMember() = f and // TODO: will this even work if its defined in a parent class? - call.getFunction().(ApplyExpr).getStaticTarget() = f and - f.getName() = methodName and - f.getParam(pragma[only_bind_into](arg)).getName() = paramName and - call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "String" // `String` length flowing into `NSString` - ) - or - // arguments to function calls... - exists(string funcName, string paramName, CallExpr call, int arg | - // `NSMakeRange` - funcName = "NSMakeRange(_:_:)" and - paramName = ["loc", "len"] and - call.getStaticTarget().getName() = funcName and - call.getStaticTarget().getParam(pragma[only_bind_into](arg)).getName() = paramName and - call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "String" // `String` length flowing into `NSString` - ) - or - // arguments to function calls... - exists(string funcName, string paramName, CallExpr call, int arg | - ( - // `String.dropFirst`, `String.dropLast`, `String.removeFirst`, `String.removeLast` - funcName = ["dropFirst(_:)", "dropLast(_:)", "removeFirst(_:)", "removeLast(_:)"] and - paramName = "k" - or - // `String.prefix`, `String.suffix` - funcName = ["prefix(_:)", "suffix(_:)"] and - paramName = "maxLength" - or - // `String.Index.init` - funcName = "init(encodedOffset:)" and - paramName = "offset" - or - // `String.index` - funcName = ["index(_:offsetBy:)", "index(_:offsetBy:limitBy:)"] and - paramName = "n" - or - // `String.formIndex` - funcName = ["formIndex(_:offsetBy:)", "formIndex(_:offsetBy:limitBy:)"] and - paramName = "distance" - ) and - call.getFunction().(ApplyExpr).getStaticTarget().getName() = funcName and - call.getFunction() - .(ApplyExpr) - .getStaticTarget() - .getParam(pragma[only_bind_into](arg)) - .getName() = paramName and - call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "NSString" // `NSString` length flowing into `String` + exists(CallExpr call, string paramName, int arg | + // arguments to method calls... + exists(string className, string methodName, ClassDecl c, AbstractFunctionDecl f | + ( + // `NSRange.init` + className = "NSRange" and + methodName = "init(location:length:)" and + paramName = ["location", "length"] + or + // `NSString.character` + className = ["NSString", "NSMutableString"] and + methodName = "character(at:)" and + paramName = "at" + or + // `NSString.character` + className = ["NSString", "NSMutableString"] and + methodName = "substring(from:)" and + paramName = "from" + or + // `NSString.character` + className = ["NSString", "NSMutableString"] and + methodName = "substring(to:)" and + paramName = "to" + or + // `NSMutableString.insert` + className = "NSMutableString" and + methodName = "insert(_:at:)" and + paramName = "at" + ) and + c.getName() = className and + c.getAMember() = f and // TODO: will this even work if its defined in a parent class? + call.getFunction().(ApplyExpr).getStaticTarget() = f and + f.getName() = methodName and + f.getParam(pragma[only_bind_into](arg)).getName() = paramName and + call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and + flowstate = "String" // `String` length flowing into `NSString` + ) + or + // arguments to function calls... + exists(string funcName | + // `NSMakeRange` + funcName = "NSMakeRange(_:_:)" and + paramName = ["loc", "len"] and + call.getStaticTarget().getName() = funcName and + call.getStaticTarget().getParam(pragma[only_bind_into](arg)).getName() = paramName and + call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and + flowstate = "String" // `String` length flowing into `NSString` + ) + or + // arguments to function calls... + exists(string funcName | + ( + // `String.dropFirst`, `String.dropLast`, `String.removeFirst`, `String.removeLast` + funcName = ["dropFirst(_:)", "dropLast(_:)", "removeFirst(_:)", "removeLast(_:)"] and + paramName = "k" + or + // `String.prefix`, `String.suffix` + funcName = ["prefix(_:)", "suffix(_:)"] and + paramName = "maxLength" + or + // `String.Index.init` + funcName = "init(encodedOffset:)" and + paramName = "offset" + or + // `String.index` + funcName = ["index(_:offsetBy:)", "index(_:offsetBy:limitBy:)"] and + paramName = "n" + or + // `String.formIndex` + funcName = ["formIndex(_:offsetBy:)", "formIndex(_:offsetBy:limitBy:)"] and + paramName = "distance" + ) and + call.getFunction().(ApplyExpr).getStaticTarget().getName() = funcName and + call.getFunction() + .(ApplyExpr) + .getStaticTarget() + .getParam(pragma[only_bind_into](arg)) + .getName() = paramName and + call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and + flowstate = "NSString" // `NSString` length flowing into `String` + ) ) } From 0bd94a630761b0fdf103832f8f864407755b5790 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Jul 2022 13:04:57 +0100 Subject: [PATCH 434/736] Swift: Clean up isSink (2 - rename methodName -> funcName and move that out as well). --- .../CWE-135/StringLengthConflation.ql | 92 +++++++++---------- 1 file changed, 44 insertions(+), 48 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index fa5c5f25e9d..131e2b72ceb 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -41,87 +41,83 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { } override predicate isSink(DataFlow::Node node, string flowstate) { - exists(CallExpr call, string paramName, int arg | + exists(CallExpr call, string funcName, string paramName, int arg | // arguments to method calls... - exists(string className, string methodName, ClassDecl c, AbstractFunctionDecl f | + exists(string className, ClassDecl c, AbstractFunctionDecl f | ( // `NSRange.init` className = "NSRange" and - methodName = "init(location:length:)" and + funcName = "init(location:length:)" and paramName = ["location", "length"] or // `NSString.character` className = ["NSString", "NSMutableString"] and - methodName = "character(at:)" and + funcName = "character(at:)" and paramName = "at" or // `NSString.character` className = ["NSString", "NSMutableString"] and - methodName = "substring(from:)" and + funcName = "substring(from:)" and paramName = "from" or // `NSString.character` className = ["NSString", "NSMutableString"] and - methodName = "substring(to:)" and + funcName = "substring(to:)" and paramName = "to" or // `NSMutableString.insert` className = "NSMutableString" and - methodName = "insert(_:at:)" and + funcName = "insert(_:at:)" and paramName = "at" ) and c.getName() = className and c.getAMember() = f and // TODO: will this even work if its defined in a parent class? call.getFunction().(ApplyExpr).getStaticTarget() = f and - f.getName() = methodName and + f.getName() = funcName and f.getParam(pragma[only_bind_into](arg)).getName() = paramName and call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and flowstate = "String" // `String` length flowing into `NSString` ) or // arguments to function calls... - exists(string funcName | - // `NSMakeRange` - funcName = "NSMakeRange(_:_:)" and - paramName = ["loc", "len"] and - call.getStaticTarget().getName() = funcName and - call.getStaticTarget().getParam(pragma[only_bind_into](arg)).getName() = paramName and - call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "String" // `String` length flowing into `NSString` - ) + // `NSMakeRange` + funcName = "NSMakeRange(_:_:)" and + paramName = ["loc", "len"] and + call.getStaticTarget().getName() = funcName and + call.getStaticTarget().getParam(pragma[only_bind_into](arg)).getName() = paramName and + call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and + flowstate = "String" // `String` length flowing into `NSString` or // arguments to function calls... - exists(string funcName | - ( - // `String.dropFirst`, `String.dropLast`, `String.removeFirst`, `String.removeLast` - funcName = ["dropFirst(_:)", "dropLast(_:)", "removeFirst(_:)", "removeLast(_:)"] and - paramName = "k" - or - // `String.prefix`, `String.suffix` - funcName = ["prefix(_:)", "suffix(_:)"] and - paramName = "maxLength" - or - // `String.Index.init` - funcName = "init(encodedOffset:)" and - paramName = "offset" - or - // `String.index` - funcName = ["index(_:offsetBy:)", "index(_:offsetBy:limitBy:)"] and - paramName = "n" - or - // `String.formIndex` - funcName = ["formIndex(_:offsetBy:)", "formIndex(_:offsetBy:limitBy:)"] and - paramName = "distance" - ) and - call.getFunction().(ApplyExpr).getStaticTarget().getName() = funcName and - call.getFunction() - .(ApplyExpr) - .getStaticTarget() - .getParam(pragma[only_bind_into](arg)) - .getName() = paramName and - call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "NSString" // `NSString` length flowing into `String` - ) + ( + // `String.dropFirst`, `String.dropLast`, `String.removeFirst`, `String.removeLast` + funcName = ["dropFirst(_:)", "dropLast(_:)", "removeFirst(_:)", "removeLast(_:)"] and + paramName = "k" + or + // `String.prefix`, `String.suffix` + funcName = ["prefix(_:)", "suffix(_:)"] and + paramName = "maxLength" + or + // `String.Index.init` + funcName = "init(encodedOffset:)" and + paramName = "offset" + or + // `String.index` + funcName = ["index(_:offsetBy:)", "index(_:offsetBy:limitBy:)"] and + paramName = "n" + or + // `String.formIndex` + funcName = ["formIndex(_:offsetBy:)", "formIndex(_:offsetBy:limitBy:)"] and + paramName = "distance" + ) and + call.getFunction().(ApplyExpr).getStaticTarget().getName() = funcName and + call.getFunction() + .(ApplyExpr) + .getStaticTarget() + .getParam(pragma[only_bind_into](arg)) + .getName() = paramName and + call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and + flowstate = "NSString" // `NSString` length flowing into `String` ) } From b136790efd53ba3488fc3a3c4b4c0b0f9749dbe7 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Jul 2022 13:06:32 +0100 Subject: [PATCH 435/736] Swift: Clean up isSink (3 - rename f -> funcDecl and move that out as well; in the other two cases this variable didn't exist, now it does). --- .../CWE-135/StringLengthConflation.ql | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 131e2b72ceb..117cbac1e27 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -41,9 +41,11 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { } override predicate isSink(DataFlow::Node node, string flowstate) { - exists(CallExpr call, string funcName, string paramName, int arg | + exists( + AbstractFunctionDecl funcDecl, CallExpr call, string funcName, string paramName, int arg + | // arguments to method calls... - exists(string className, ClassDecl c, AbstractFunctionDecl f | + exists(string className, ClassDecl c | ( // `NSRange.init` className = "NSRange" and @@ -71,10 +73,10 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { paramName = "at" ) and c.getName() = className and - c.getAMember() = f and // TODO: will this even work if its defined in a parent class? - call.getFunction().(ApplyExpr).getStaticTarget() = f and - f.getName() = funcName and - f.getParam(pragma[only_bind_into](arg)).getName() = paramName and + c.getAMember() = funcDecl and // TODO: will this even work if its defined in a parent class? + call.getFunction().(ApplyExpr).getStaticTarget() = funcDecl and + funcDecl.getName() = funcName and + funcDecl.getParam(pragma[only_bind_into](arg)).getName() = paramName and call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and flowstate = "String" // `String` length flowing into `NSString` ) @@ -83,8 +85,9 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { // `NSMakeRange` funcName = "NSMakeRange(_:_:)" and paramName = ["loc", "len"] and - call.getStaticTarget().getName() = funcName and - call.getStaticTarget().getParam(pragma[only_bind_into](arg)).getName() = paramName and + call.getStaticTarget() = funcDecl and + funcDecl.getName() = funcName and + funcDecl.getParam(pragma[only_bind_into](arg)).getName() = paramName and call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and flowstate = "String" // `String` length flowing into `NSString` or @@ -110,12 +113,9 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { funcName = ["formIndex(_:offsetBy:)", "formIndex(_:offsetBy:limitBy:)"] and paramName = "distance" ) and - call.getFunction().(ApplyExpr).getStaticTarget().getName() = funcName and - call.getFunction() - .(ApplyExpr) - .getStaticTarget() - .getParam(pragma[only_bind_into](arg)) - .getName() = paramName and + call.getFunction().(ApplyExpr).getStaticTarget() = funcDecl and + funcDecl.getName() = funcName and + funcDecl.getParam(pragma[only_bind_into](arg)).getName() = paramName and call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and flowstate = "NSString" // `NSString` length flowing into `String` ) From 9474e63faf23cda600ef3b1006dda2d4dfb31a15 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Jul 2022 13:08:31 +0100 Subject: [PATCH 436/736] Swift: Clean up isSink (4 - move common code out). --- .../CWE-135/StringLengthConflation.ql | 132 +++++++++--------- 1 file changed, 64 insertions(+), 68 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 117cbac1e27..62e166487ec 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -44,80 +44,76 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { exists( AbstractFunctionDecl funcDecl, CallExpr call, string funcName, string paramName, int arg | - // arguments to method calls... - exists(string className, ClassDecl c | - ( - // `NSRange.init` - className = "NSRange" and - funcName = "init(location:length:)" and - paramName = ["location", "length"] - or - // `NSString.character` - className = ["NSString", "NSMutableString"] and - funcName = "character(at:)" and - paramName = "at" - or - // `NSString.character` - className = ["NSString", "NSMutableString"] and - funcName = "substring(from:)" and - paramName = "from" - or - // `NSString.character` - className = ["NSString", "NSMutableString"] and - funcName = "substring(to:)" and - paramName = "to" - or - // `NSMutableString.insert` - className = "NSMutableString" and - funcName = "insert(_:at:)" and - paramName = "at" - ) and - c.getName() = className and - c.getAMember() = funcDecl and // TODO: will this even work if its defined in a parent class? - call.getFunction().(ApplyExpr).getStaticTarget() = funcDecl and - funcDecl.getName() = funcName and - funcDecl.getParam(pragma[only_bind_into](arg)).getName() = paramName and - call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "String" // `String` length flowing into `NSString` - ) - or - // arguments to function calls... - // `NSMakeRange` - funcName = "NSMakeRange(_:_:)" and - paramName = ["loc", "len"] and - call.getStaticTarget() = funcDecl and - funcDecl.getName() = funcName and - funcDecl.getParam(pragma[only_bind_into](arg)).getName() = paramName and - call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "String" // `String` length flowing into `NSString` - or - // arguments to function calls... ( - // `String.dropFirst`, `String.dropLast`, `String.removeFirst`, `String.removeLast` - funcName = ["dropFirst(_:)", "dropLast(_:)", "removeFirst(_:)", "removeLast(_:)"] and - paramName = "k" + // arguments to method calls... + exists(string className, ClassDecl c | + ( + // `NSRange.init` + className = "NSRange" and + funcName = "init(location:length:)" and + paramName = ["location", "length"] + or + // `NSString.character` + className = ["NSString", "NSMutableString"] and + funcName = "character(at:)" and + paramName = "at" + or + // `NSString.character` + className = ["NSString", "NSMutableString"] and + funcName = "substring(from:)" and + paramName = "from" + or + // `NSString.character` + className = ["NSString", "NSMutableString"] and + funcName = "substring(to:)" and + paramName = "to" + or + // `NSMutableString.insert` + className = "NSMutableString" and + funcName = "insert(_:at:)" and + paramName = "at" + ) and + c.getName() = className and + c.getAMember() = funcDecl and // TODO: will this even work if its defined in a parent class? + call.getFunction().(ApplyExpr).getStaticTarget() = funcDecl and + flowstate = "String" // `String` length flowing into `NSString` + ) or - // `String.prefix`, `String.suffix` - funcName = ["prefix(_:)", "suffix(_:)"] and - paramName = "maxLength" + // arguments to function calls... + // `NSMakeRange` + funcName = "NSMakeRange(_:_:)" and + paramName = ["loc", "len"] and + call.getStaticTarget() = funcDecl and + flowstate = "String" // `String` length flowing into `NSString` or - // `String.Index.init` - funcName = "init(encodedOffset:)" and - paramName = "offset" - or - // `String.index` - funcName = ["index(_:offsetBy:)", "index(_:offsetBy:limitBy:)"] and - paramName = "n" - or - // `String.formIndex` - funcName = ["formIndex(_:offsetBy:)", "formIndex(_:offsetBy:limitBy:)"] and - paramName = "distance" + // arguments to function calls... + ( + // `String.dropFirst`, `String.dropLast`, `String.removeFirst`, `String.removeLast` + funcName = ["dropFirst(_:)", "dropLast(_:)", "removeFirst(_:)", "removeLast(_:)"] and + paramName = "k" + or + // `String.prefix`, `String.suffix` + funcName = ["prefix(_:)", "suffix(_:)"] and + paramName = "maxLength" + or + // `String.Index.init` + funcName = "init(encodedOffset:)" and + paramName = "offset" + or + // `String.index` + funcName = ["index(_:offsetBy:)", "index(_:offsetBy:limitBy:)"] and + paramName = "n" + or + // `String.formIndex` + funcName = ["formIndex(_:offsetBy:)", "formIndex(_:offsetBy:limitBy:)"] and + paramName = "distance" + ) and + call.getFunction().(ApplyExpr).getStaticTarget() = funcDecl and + flowstate = "NSString" // `NSString` length flowing into `String` ) and - call.getFunction().(ApplyExpr).getStaticTarget() = funcDecl and funcDecl.getName() = funcName and funcDecl.getParam(pragma[only_bind_into](arg)).getName() = paramName and - call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "NSString" // `NSString` length flowing into `String` + call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() ) } From 336548f746dedabeb5813821e7a4b05f7b8ce76b Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Jul 2022 13:10:18 +0100 Subject: [PATCH 437/736] Swift: Improve comments. --- .../ql/src/queries/Security/CWE-135/StringLengthConflation.ql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 62e166487ec..50001985055 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -86,7 +86,7 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { call.getStaticTarget() = funcDecl and flowstate = "String" // `String` length flowing into `NSString` or - // arguments to function calls... + // arguments to method calls... ( // `String.dropFirst`, `String.dropLast`, `String.removeFirst`, `String.removeLast` funcName = ["dropFirst(_:)", "dropLast(_:)", "removeFirst(_:)", "removeLast(_:)"] and @@ -111,6 +111,7 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { call.getFunction().(ApplyExpr).getStaticTarget() = funcDecl and flowstate = "NSString" // `NSString` length flowing into `String` ) and + // match up `funcName`, `paramName`, `arg`, `node`. funcDecl.getName() = funcName and funcDecl.getParam(pragma[only_bind_into](arg)).getName() = paramName and call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() From 541df9b5505eca66b5afe8aa1c91487d77672157 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Jul 2022 14:26:08 +0100 Subject: [PATCH 438/736] Swift: Remove TODO comment. We have a test for this problem now. --- swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 50001985055..4e78d56f7d2 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -74,7 +74,7 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { paramName = "at" ) and c.getName() = className and - c.getAMember() = funcDecl and // TODO: will this even work if its defined in a parent class? + c.getAMember() = funcDecl and call.getFunction().(ApplyExpr).getStaticTarget() = funcDecl and flowstate = "String" // `String` length flowing into `NSString` ) From c9e5206396600f6ed11fec6bcd765a10696f4d8d Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 18 Jul 2022 15:26:38 +0200 Subject: [PATCH 439/736] Ruby: skip .git folder --- ruby/autobuilder/src/main.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/ruby/autobuilder/src/main.rs b/ruby/autobuilder/src/main.rs index 8f0f1b48d0d..ae4aa816190 100644 --- a/ruby/autobuilder/src/main.rs +++ b/ruby/autobuilder/src/main.rs @@ -19,6 +19,7 @@ fn main() -> std::io::Result<()> { .arg("--include-extension=.erb") .arg("--include-extension=.gemspec") .arg("--include=**/Gemfile") + .arg("--exclude=**/.git") .arg("--size-limit=5m") .arg("--language=ruby") .arg("--working-dir=.") From bdd771989f50d12f5b5323217b1c7598a00648b1 Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 18 Jul 2022 13:58:00 +0000 Subject: [PATCH 440/736] Python: Fix bad join in `syntactic_call_count` On certain databases, the evaluation of this predicate was running out of memory due to the way the `count` aggregate was being used. Here's an example of the tuple counts involved: ``` Tuple counts for PointsToContext::syntactic_call_count#cf3039a0#ff#antijoin_rhs/1@d2199bb8 after 1m27s: 595518502 ~521250% {1} r1 = JOIN PointsToContext::syntactic_call_count#cf3039a0#ff#shared#3 WITH Flow::CallNode::getFunction#dispred#f0820431#ff_1#join_rhs ON FIRST 1 OUTPUT Lhs.1 'arg0' 26518709 ~111513% {1} r2 = JOIN PointsToContext::syntactic_call_count#cf3039a0#ff#shared#2 WITH Flow::CallNode::getFunction#dispred#f0820431#ff_1#join_rhs ON FIRST 1 OUTPUT Lhs.1 'arg0' 622037211 ~498045% {1} r3 = r1 UNION r2 return r3 ``` and a timing report that looked like this: ``` time | evals | max @ iter | predicate ------|-------|--------------|---------- 5m8s | | | PointsToContext::syntactic_call_count#cf3039a0#ff#shared#2@6d98d1nd 4m38s | | | PointsToContext::syntactic_call_count#cf3039a0#ff#count_range@f5df1do4 3m51s | | | PointsToContext::syntactic_call_count#cf3039a0#ff#shared#3@da3b4abf 1m58s | 7613 | 37ms @ 4609 | MRO::ClassListList::removedClassParts#f0820431#fffff#reorder_2_3_4_0_1@8155axyi 1m37s | 7613 | 33ms @ 3904 | MRO::ClassListList::bestMergeCandidate#f0820431#2#fff@8155a83w 1m27s | | | PointsToContext::syntactic_call_count#cf3039a0#ff#antijoin_rhs@d2199bb8 1m8s | 1825 | 63ms @ 404 | PointsTo::Expressions::equalityEvaluatesTo#741b54e2#fffff@8155aw7w 37.6s | | | PointsToContext::syntactic_call_count#cf3039a0#ff#join_rhs@e348fc1p ... ``` To make optimising this easier for the compiler, I moved the bodies of the `count` aggregate into their own helper predicates (with size linear in the number of `CallNode`s), and also factored out the many calls to `f.getName()`. The astute reader will notice that in writing this as a sum of `count`s rather than a count of a disjunction, the intersection (if it exists) will be counted twice, and so the semantics may be different. However, since `method_call` and `function_call` require `AttrNode` and `NameNode` functions respectively, and as these two types are disjoint, there is no intersection, and so the semantics should be preserved. After the change, the evaluation of `syntactic_call_count` now looks as follows: ``` Tuple counts for PointsToContext::syntactic_call_count#cf3039a0#ff/2@662dd8s0 after 216ms: 23960 ~0% {1} r1 = @py_scope#f AND NOT py_Functions_0#antijoin_rhs(Lhs.0 's') 23960 ~0% {2} r2 = SCAN r1 OUTPUT In.0 's', 0 276309 ~7% {2} r3 = SCAN @py_scope#f OUTPUT In.0 's', "__init__" 11763 ~0% {2} r4 = JOIN r3 WITH Scope::Scope::getName#dispred#f0820431#fb ON FIRST 2 OUTPUT Lhs.0 's', 1 35723 ~0% {2} r5 = r2 UNION r4 252349 ~0% {2} r6 = JOIN @py_scope#f WITH Function::Function::getName#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.0 's', Rhs.1 240586 ~0% {2} r7 = SELECT r6 ON In.1 != "__init__" 131727 ~4% {2} r8 = r7 AND NOT project#PointsToContext::method_call#cf3039a0#ff(Lhs.1) 131727 ~0% {3} r9 = SCAN r8 OUTPUT In.1, In.0 's', 0 240586 ~0% {2} r10 = SCAN r7 OUTPUT In.1, In.0 's' 108859 ~0% {3} r11 = JOIN r10 WITH PointsToContext::syntactic_call_count#cf3039a0#ff#join_rhs ON FIRST 1 OUTPUT Lhs.0, Lhs.1 's', Rhs.1 240586 ~0% {3} r12 = r9 UNION r11 24100 ~0% {2} r13 = JOIN r12 WITH PointsToContext::syntactic_call_count#cf3039a0#ff#join_rhs#1 ON FIRST 1 OUTPUT Lhs.1 's', (Rhs.1 + Lhs.2) 240586 ~0% {2} r14 = SELECT r6 ON In.1 != "__init__" 131727 ~4% {2} r15 = r14 AND NOT project#PointsToContext::method_call#cf3039a0#ff(Lhs.1) 131727 ~0% {3} r16 = SCAN r15 OUTPUT In.0 's', In.1, 0 108859 ~4% {3} r17 = JOIN r10 WITH PointsToContext::syntactic_call_count#cf3039a0#ff#join_rhs ON FIRST 1 OUTPUT Lhs.1 's', Lhs.0, Rhs.1 240586 ~4% {3} r18 = r16 UNION r17 216486 ~2% {3} r19 = r18 AND NOT project#PointsToContext::function_call#cf3039a0#ff(Lhs.1) 216486 ~0% {2} r20 = SCAN r19 OUTPUT In.0 's', (0 + In.2) 240586 ~0% {2} r21 = r13 UNION r20 276309 ~0% {2} r22 = r5 UNION r21 return r22 ``` --- .../semmle/python/pointsto/PointsToContext.qll | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/python/ql/lib/semmle/python/pointsto/PointsToContext.qll b/python/ql/lib/semmle/python/pointsto/PointsToContext.qll index 0e5f52b01b8..ad86a49ba6f 100644 --- a/python/ql/lib/semmle/python/pointsto/PointsToContext.qll +++ b/python/ql/lib/semmle/python/pointsto/PointsToContext.qll @@ -23,13 +23,8 @@ private int max_context_cost() { } private int syntactic_call_count(Scope s) { - exists(Function f | f = s and f.getName() != "__init__" | - result = - count(CallNode call | - call.getFunction().(NameNode).getId() = f.getName() - or - call.getFunction().(AttrNode).getName() = f.getName() - ) + exists(Function f, string name | f = s and name = f.getName() and name != "__init__" | + result = count(function_call(name)) + count(method_call(name)) ) or s.getName() = "__init__" and result = 1 @@ -37,6 +32,12 @@ private int syntactic_call_count(Scope s) { not s instanceof Function and result = 0 } +pragma[nomagic] +private CallNode function_call(string name) { result.getFunction().(NameNode).getId() = name } + +pragma[nomagic] +private CallNode method_call(string name) { result.getFunction().(AttrNode).getName() = name } + private int incoming_call_cost(Scope s) { /* * Syntactic call count will often be a considerable overestimate From f9b6ca76e5d124eb1881fdc1c5d3a686523bdce6 Mon Sep 17 00:00:00 2001 From: alexet Date: Mon, 18 Jul 2022 16:28:19 +0100 Subject: [PATCH 441/736] Python: Fix binding incorrect predicate. --- .../lib/semmle/python/frameworks/internal/SubclassFinder.qll | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll b/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll index 47521ac0b31..04b0a9e4afd 100644 --- a/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll +++ b/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll @@ -74,9 +74,7 @@ private module NotExposed { } /** DEPRECATED: Alias for fullyQualifiedToApiGraphPath */ - deprecated string fullyQualifiedToAPIGraphPath(string fullyQaulified) { - result = fullyQualifiedToApiGraphPath(fullyQaulified) - } + deprecated predicate fullyQualifiedToAPIGraphPath = fullyQualifiedToApiGraphPath/1; bindingset[this] abstract class FindSubclassesSpec extends string { From 8c0725e8c670db807929ca3f0e2a86bbc60c4ae7 Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 18 Jul 2022 15:31:26 +0000 Subject: [PATCH 442/736] Python: Fix bad join in ESSA `getInput` Before: ``` Tuple counts for Essa::EssaEdgeRefinement::getInput#dispred#f0820431#ff/2@b84afc77 after 20.3s: 873421 ~0% {3} r1 = JOIN Essa::TEssaEdgeDefinition#24e22a14#ffff_31#join_rhs WITH Essa::TEssaEdgeDefinition#24e22a14#ffff_30#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 'this' 181627951 ~0% {3} r2 = JOIN r1 WITH Essa::EssaDefinition::getSourceVariable#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1 'result', Lhs.1, Lhs.2 'this' 873418 ~0% {2} r3 = JOIN r2 WITH Essa::EssaDefinition::reachesEndOfBlock#dispred#f0820431#ff ON FIRST 2 OUTPUT Lhs.2 'this', Lhs.0 'result' return r3 ``` It's perhaps not immediately obvious what's going on here (because of the `...join_rhs` indirection), but basically we're joining together `this` and `def` and their `getSourceVariable`, and only then actually relating `this` and `def` through `reachesEndOfBlock`. By unbinding `var`, we prevent this early join, which now encourages the `reachesEndOfBlock` join to happen earlier: ``` Tuple counts for Essa::EssaEdgeRefinement::getInput#dispred#f0820431#ff/2@2d63e5lb after 2s 873421 ~0% {2} r1 = SCAN Essa::TEssaEdgeDefinition#24e22a14#ffff OUTPUT In.3 'this', In.1 873421 ~0% {3} r2 = JOIN r1 WITH Essa::TEssaEdgeDefinition#24e22a14#ffff_30#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 'this' 873421 ~0% {3} r3 = JOIN r2 WITH Definitions::SsaSourceVariable#class#486534ab#f ON FIRST 1 OUTPUT Lhs.1, Lhs.2 'this', Lhs.0 8758877 ~0% {3} r4 = JOIN r3 WITH Essa::EssaDefinition::reachesEndOfBlock#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1 'result', Lhs.2, Lhs.1 'this' 873418 ~0% {2} r5 = JOIN r4 WITH Essa::EssaDefinition::getSourceVariable#dispred#f0820431#ff ON FIRST 2 OUTPUT Lhs.2 'this', Lhs.0 'result' return r5 ``` --- python/ql/lib/semmle/python/essa/Essa.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/lib/semmle/python/essa/Essa.qll b/python/ql/lib/semmle/python/essa/Essa.qll index ab2c55f0302..772d3ddef97 100644 --- a/python/ql/lib/semmle/python/essa/Essa.qll +++ b/python/ql/lib/semmle/python/essa/Essa.qll @@ -212,8 +212,8 @@ class EssaEdgeRefinement extends EssaDefinition, TEssaEdgeDefinition { /** Gets the SSA variable to which this refinement applies. */ EssaVariable getInput() { exists(SsaSourceVariable var, EssaDefinition def | - var = this.getSourceVariable() and - var = def.getSourceVariable() and + pragma[only_bind_into](var) = this.getSourceVariable() and + pragma[only_bind_into](var) = def.getSourceVariable() and def.reachesEndOfBlock(this.getPredecessor()) and result.getDefinition() = def ) From 7b8603c89b076fec2de4ecc474b1a43601d4ed98 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Mon, 18 Jul 2022 15:05:17 +1200 Subject: [PATCH 443/736] Ruby: Model Arel.sql --- ruby/ql/lib/codeql/ruby/Frameworks.qll | 1 + ruby/ql/lib/codeql/ruby/frameworks/Arel.qll | 31 +++++++++++++++++++ .../frameworks/arel/Arel.expected | 3 ++ .../library-tests/frameworks/arel/Arel.ql | 11 +++++++ .../library-tests/frameworks/arel/arel.rb | 14 +++++++++ 5 files changed, 60 insertions(+) create mode 100644 ruby/ql/lib/codeql/ruby/frameworks/Arel.qll create mode 100644 ruby/ql/test/library-tests/frameworks/arel/Arel.expected create mode 100644 ruby/ql/test/library-tests/frameworks/arel/Arel.ql create mode 100644 ruby/ql/test/library-tests/frameworks/arel/arel.rb diff --git a/ruby/ql/lib/codeql/ruby/Frameworks.qll b/ruby/ql/lib/codeql/ruby/Frameworks.qll index 87b8a3f61a2..69ba758a767 100644 --- a/ruby/ql/lib/codeql/ruby/Frameworks.qll +++ b/ruby/ql/lib/codeql/ruby/Frameworks.qll @@ -10,6 +10,7 @@ private import codeql.ruby.frameworks.ActiveStorage private import codeql.ruby.frameworks.ActionView private import codeql.ruby.frameworks.ActiveSupport private import codeql.ruby.frameworks.Archive +private import codeql.ruby.frameworks.Arel private import codeql.ruby.frameworks.GraphQL private import codeql.ruby.frameworks.Rails private import codeql.ruby.frameworks.Railties diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Arel.qll b/ruby/ql/lib/codeql/ruby/frameworks/Arel.qll new file mode 100644 index 00000000000..9fa17f4e5a5 --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/frameworks/Arel.qll @@ -0,0 +1,31 @@ +/** + * Provides modeling for Arel, a low level SQL library that powers ActiveRecord. + * Version: 7.0.3 + * https://api.rubyonrails.org/classes/Arel.html + */ + +private import codeql.ruby.ApiGraphs +private import codeql.ruby.dataflow.FlowSummary + +/** + * Provides modeling for Arel, a low level SQL library that powers ActiveRecord. + * Version: 7.0.3 + * https://api.rubyonrails.org/classes/Arel.html + */ +module Arel { + /** + * Flow summary for `Arel.sql`. This method wraps a SQL string, marking it as + * safe. + */ + private class SqlSummary extends SummarizedCallable { + SqlSummary() { this = "Arel.sql" } + + override MethodCall getACall() { + result = API::getTopLevelMember("Arel").getAMethodCall("sql").asExpr().getExpr() + } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[0]" and output = "ReturnValue" and preservesValue = false + } + } +} diff --git a/ruby/ql/test/library-tests/frameworks/arel/Arel.expected b/ruby/ql/test/library-tests/frameworks/arel/Arel.expected new file mode 100644 index 00000000000..63cd556e836 --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/arel/Arel.expected @@ -0,0 +1,3 @@ +failures +#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 new file mode 100644 index 00000000000..197a710803e --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/arel/Arel.ql @@ -0,0 +1,11 @@ +/** + * @kind path-problem + */ + +import codeql.ruby.frameworks.Arel +import ruby +import TestUtilities.InlineFlowTest + +from DataFlow::PathNode source, DataFlow::PathNode sink, DefaultTaintFlowConf conf +where conf.hasFlowPath(source, sink) +select sink, source, sink, "$@", source, source.toString() diff --git a/ruby/ql/test/library-tests/frameworks/arel/arel.rb b/ruby/ql/test/library-tests/frameworks/arel/arel.rb new file mode 100644 index 00000000000..7e7bc51f9a8 --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/arel/arel.rb @@ -0,0 +1,14 @@ +def m1 + x = source 1 + sink(Arel.sql(x)) # $hasTaintFlow=1 +end + +def m2 + x = 1 + sink(Arel.sql(x)) +end + +def m3 + x = source 1 + sink(Unrelated.method(x)) +end From 304203ad2f2cfeaafcc1dab46324937fb7415685 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 19 Jul 2022 00:25:27 +0000 Subject: [PATCH 444/736] fix path problem output --- .../ManuallyCheckHttpVerb.ql | 6 +++--- .../ManuallyCheckHttpVerb.expected | 21 +++++++++++++------ 2 files changed, 18 insertions(+), 9 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 e7553b39a3d..354ccf62698 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 @@ class HttpVerbConfig extends TaintTracking::Configuration { } } -from HttpVerbConfig config, DataFlow::Node source, DataFlow::Node sink -where config.hasFlow(source, sink) -select sink.asExpr().getExpr(), source, sink, +from HttpVerbConfig config, DataFlow::PathNode source, DataFlow::PathNode sink +where config.hasFlow(source.getNode(), sink.getNode()) +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 mappting resources and verbs to specific methods." diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected index 9102005a67e..a253c3e9313 100644 --- a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected +++ b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected @@ -24,9 +24,18 @@ nodes subpaths #select | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? : | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? : | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? : | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? : | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env : | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env : | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... : | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method : | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method : | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... : | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method : | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method : | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... : | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method : | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method : | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... : | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol : | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol : | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... : | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env : | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | 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 mappting resources and verbs to specific methods. | +| ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env : | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] : | 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 mappting resources and verbs to specific methods. | From 9586259706b1c855d7426a8c54aef3da8422355a Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 19 Jul 2022 00:29:30 +0000 Subject: [PATCH 445/736] style tweak for checking multiple method names --- ruby/ql/src/experimental/weak-params/WeakParams.ql | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index 86ba72cbd91..0f36d4930d3 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -38,13 +38,8 @@ class ActionControllerRequest extends DataFlow::Node { class WeakParams extends DataFlow::CallNode { WeakParams() { this.getReceiver() instanceof ActionControllerRequest and - ( - this.getMethodName() = "path_parametes" or - this.getMethodName() = "query_parameters" or - this.getMethodName() = "request_parameters" or - this.getMethodName() = "GET" or - this.getMethodName() = "POST" - ) + this.getMethodName() = + ["path_parametes", "query_parameters", "request_parameters", "GET", "POST"] } } From 962155fd61596271a83003d05ae25cdc365b0488 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Tue, 19 Jul 2022 00:33:04 +0000 Subject: [PATCH 446/736] fix changenotes --- ...=> 2022-07-18-sqli-in-activerecord-relation-annotate.md} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename ruby/ql/lib/change-notes/{released/0.3.1.md => 2022-07-18-sqli-in-activerecord-relation-annotate.md} (64%) diff --git a/ruby/ql/lib/change-notes/released/0.3.1.md b/ruby/ql/lib/change-notes/2022-07-18-sqli-in-activerecord-relation-annotate.md similarity index 64% rename from ruby/ql/lib/change-notes/released/0.3.1.md rename to ruby/ql/lib/change-notes/2022-07-18-sqli-in-activerecord-relation-annotate.md index 392aa6f0b27..60ab137f8b2 100644 --- a/ruby/ql/lib/change-notes/released/0.3.1.md +++ b/ruby/ql/lib/change-notes/2022-07-18-sqli-in-activerecord-relation-annotate.md @@ -1,5 +1,5 @@ -## 0.3.1 - -### Minor Analysis Improvements +--- +category: minorAnalysis +--- - Calls to `ActiveRecord::Relation#annotate` are now recognized as`SqlExecution`s so that it will be considered as a sink for queries like rb/sql-injection. \ No newline at end of file From ec1d1eb54744cbfcd01f144be71fe3c311f3a061 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 19 Jul 2022 14:33:51 +1200 Subject: [PATCH 447/736] Ruby: Add change note --- ruby/ql/lib/change-notes/2022-07-19-arel.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ruby/ql/lib/change-notes/2022-07-19-arel.md diff --git a/ruby/ql/lib/change-notes/2022-07-19-arel.md b/ruby/ql/lib/change-notes/2022-07-19-arel.md new file mode 100644 index 00000000000..3dda3d4b1f6 --- /dev/null +++ b/ruby/ql/lib/change-notes/2022-07-19-arel.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Calls to `Arel.sql` are now recognised as propagating taint from their argument. From 87960b6e4237ae71514c0ec43b9caa34758ffb77 Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 19 Jul 2022 12:53:53 +0000 Subject: [PATCH 448/736] Python: Fix bad join in scope entry transfer How it started: ``` Tuple counts for Base::BaseFlow::scope_entry_value_transfer_from_earlier#f76ef5bb#ffff/4@f2af49f5 after 18s: 1526390 ~0% {3} r1 = JOIN Base::BaseFlow::scope_entry_value_transfer_from_earlier#f76ef5bb#ffff#shared WITH Essa::EssaVariable::getScope#dispred#f0820431#ff ON FIRST 1 OUTPUT Rhs.1 'pred_scope', Lhs.0 'pred_var', Lhs.1 7798319 ~0% {4} r2 = JOIN r1 WITH Scope::Scope::precedes#dispred#f0820431#ff ON FIRST 1 OUTPUT Rhs.1 'succ_scope', Lhs.1 'pred_var', Lhs.2, Lhs.0 'pred_scope' 5427334 ~0% {4} r3 = JOIN Base::BaseFlow::scope_entry_value_transfer_from_earlier#f76ef5bb#ffff#shared#1 WITH Scope::Scope::precedes#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1 'pred_var', Lhs.2, Lhs.0 'pred_scope', Rhs.1 'succ_scope' 5426883 ~0% {4} r4 = r3 AND NOT Base::BaseFlow::scope_entry_value_transfer_from_earlier#f76ef5bb#ffff#antijoin_rhs(Lhs.0 'pred_var', Lhs.1, Lhs.2 'pred_scope', Lhs.3) 5426883 ~0% {5} r5 = SCAN r4 OUTPUT In.3, "__init__", In.0 'pred_var', In.1, In.2 'pred_scope' 2002084 ~0% {4} r6 = JOIN r5 WITH Scope::Scope::getName#dispred#f0820431#fb ON FIRST 2 OUTPUT Lhs.0, Lhs.2 'pred_var', Lhs.3, Lhs.4 'pred_scope' 39293988 ~2% {4} r7 = JOIN r6 WITH Scope::Scope::precedes#dispred#f0820431#ff ON FIRST 1 OUTPUT Rhs.1 'succ_scope', Lhs.1 'pred_var', Lhs.2, Lhs.3 'pred_scope' 47092307 ~0% {4} r8 = r2 UNION r7 94173236 ~7% {5} r9 = JOIN r8 WITH Essa::ScopeEntryDefinition::getScope#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.2, Rhs.1 'succ_def', Lhs.1 'pred_var', Lhs.3 'pred_scope', Lhs.0 'succ_scope' 599441 ~1% {4} r10 = JOIN r9 WITH Essa::TEssaNodeDefinition#24e22a14#ffff_03#join_rhs ON FIRST 2 OUTPUT Lhs.2 'pred_var', Lhs.3 'pred_scope', Lhs.1 'succ_def', Lhs.4 'succ_scope' return r10 ``` How it ended: ``` Tuple counts for Base::essa_var_scope#f76ef5bb#fff/3@20fd243c after 153ms: 1526390 ~0% {2} r1 = JOIN Essa::EssaDefinition::getSourceVariable#dispred#f0820431#ff WITH Base::BaseFlow::reaches_exit#f76ef5bb#f ON FIRST 1 OUTPUT Lhs.0 'pred_var', Lhs.1 'var' 1526390 ~5% {3} r2 = JOIN r1 WITH Essa::EssaVariable::getScope#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1 'var', Rhs.1 'pred_scope', Lhs.0 'pred_var' return r2 ``` ``` Tuple counts for Base::scope_entry_def_scope#f76ef5bb#fff/3@34224fid after 40ms: 581249 ~1% {3} r1 = JOIN Essa::TEssaNodeDefinition#24e22a14#ffff_30#join_rhs WITH Essa::ScopeEntryDefinition::getScope#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1 'var', Rhs.1 'succ_scope', Lhs.0 'succ_def' return r1 ``` ``` Tuple counts for Base::scope_entry_value_transfer_through_init#f76ef5bb#ffff#shared/5@cb3c45lu after 76ms: 471230 ~0% {3} r1 = JOIN Variables::GlobalVariable#class#3aa06bbf#f WITH Base::scope_entry_def_scope#f76ef5bb#fff ON FIRST 1 OUTPUT Rhs.1 'arg1', Lhs.0 'arg0', Rhs.2 'arg2' 313791 ~2% {5} r2 = JOIN r1 WITH Base::step_through_init#f76ef5bb#fff ON FIRST 1 OUTPUT Lhs.1 'arg0', Lhs.0 'arg1', Lhs.2 'arg2', Rhs.1 'arg3', Rhs.2 'arg4' return r2 ``` ``` Tuple counts for Base::scope_entry_value_transfer_through_init#f76ef5bb#ffff#antijoin_rhs/5@886d8bvr after 67ms: 508926 ~0% {6} r1 = JOIN Base::scope_entry_value_transfer_through_init#f76ef5bb#ffff#shared WITH Exprs::Name::defines#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.4 'arg4', Lhs.0 'arg0', Lhs.1 'arg1', Lhs.2 'arg2', Lhs.3 'arg3' 25 ~46% {5} r2 = JOIN r1 WITH Exprs::Expr::getScope#dispred#f0820431#ff ON FIRST 2 OUTPUT Lhs.2 'arg0', Lhs.3 'arg1', Lhs.4 'arg2', Lhs.5 'arg3', Lhs.1 'arg4' return r2 ``` ``` Tuple counts for Base::scope_entry_value_transfer_through_init#f76ef5bb#ffff/4@87ec703f after 80ms: 313774 ~2% {5} r1 = Base::scope_entry_value_transfer_through_init#f76ef5bb#ffff#shared AND NOT Base::scope_entry_value_transfer_through_init#f76ef5bb#ffff#antijoin_rhs(Lhs.0, Lhs.1 'succ_scope', Lhs.2 'succ_def', Lhs.3 'pred_scope', Lhs.4) 313774 ~0% {4} r2 = SCAN r1 OUTPUT In.3 'pred_scope', In.0, In.1 'succ_scope', In.2 'succ_def' 313774 ~4% {4} r3 = JOIN r2 WITH @py_scope#f ON FIRST 1 OUTPUT Lhs.1, Lhs.0 'pred_scope', Lhs.2 'succ_scope', Lhs.3 'succ_def' 313778 ~0% {4} r4 = JOIN r3 WITH Base::essa_var_scope#f76ef5bb#fff ON FIRST 2 OUTPUT Rhs.2 'pred_var', Lhs.1 'pred_scope', Lhs.3 'succ_def', Lhs.2 'succ_scope' return r4 ``` ``` Tuple counts for Base::step_through_init#f76ef5bb#fff/3@7ba1ee1c after 17ms: 11763 ~0% {1} r1 = JOIN Scope::Scope::precedes#dispred#f0820431#ff#join_rhs WITH Scope::Scope::getName#dispred#f0820431#fb_10#join_rhs ON FIRST 1 OUTPUT Rhs.1 'init' 196671 ~4% {2} r2 = JOIN r1 WITH Scope::Scope::precedes#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.0 'init', Rhs.1 'succ_scope' 196671 ~6% {3} r3 = JOIN r2 WITH Scope::Scope::precedes#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'succ_scope', Rhs.1 'pred_scope', Lhs.0 'init' return r3 ``` ``` Tuple counts for Base::BaseFlow::scope_entry_value_transfer_from_earlier#f76ef5bb#ffff/4@4892f93f after 426ms: 1526390 ~0% {3} r1 = SCAN Base::essa_var_scope#f76ef5bb#fff OUTPUT In.1, In.0, In.2 'pred_var' 7798319 ~0% {4} r2 = JOIN r1 WITH Scope::Scope::precedes#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1 'succ_scope', Rhs.0, Lhs.2 'pred_var' 285663 ~3% {4} r3 = JOIN r2 WITH Base::scope_entry_def_scope#f76ef5bb#fff ON FIRST 2 OUTPUT Lhs.3 'pred_var', Lhs.2 'pred_scope', Rhs.2 'succ_def', Lhs.1 'succ_scope' 599441 ~1% {4} r4 = Base::scope_entry_value_transfer_through_init#f76ef5bb#ffff UNION r3 return r4 ``` It's possible this could be improved even further, but I think this is good enough. (I'm not entirely happy with how many helper predicates I ended up needing, but it was the only way I could get the joins to happen in a semi-sensible order.) --- python/ql/lib/semmle/python/pointsto/Base.qll | 59 +++++++++++++------ 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/python/ql/lib/semmle/python/pointsto/Base.qll b/python/ql/lib/semmle/python/pointsto/Base.qll index 2603db90ac0..adc2abedaa0 100644 --- a/python/ql/lib/semmle/python/pointsto/Base.qll +++ b/python/ql/lib/semmle/python/pointsto/Base.qll @@ -273,6 +273,41 @@ predicate builtin_name_points_to(string name, Object value, ClassObject cls) { value = Object::builtin(name) and cls.asBuiltin() = value.asBuiltin().getClass() } +pragma[nomagic] +private predicate essa_var_scope(SsaSourceVariable var, Scope pred_scope, EssaVariable pred_var) { + BaseFlow::reaches_exit(pred_var) and + pred_var.getScope() = pred_scope and + var = pred_var.getSourceVariable() +} + +pragma[nomagic] +private predicate scope_entry_def_scope( + SsaSourceVariable var, Scope succ_scope, ScopeEntryDefinition succ_def +) { + var = succ_def.getSourceVariable() and + succ_def.getScope() = succ_scope +} + +pragma[nomagic] +private predicate step_through_init(Scope succ_scope, Scope pred_scope, Scope init) { + init.getName() = "__init__" and + init.precedes(succ_scope) and + pred_scope.precedes(init) +} + +pragma[nomagic] +private predicate scope_entry_value_transfer_through_init( + EssaVariable pred_var, Scope pred_scope, ScopeEntryDefinition succ_def, Scope succ_scope +) { + exists(SsaSourceVariable var, Scope init | + var instanceof GlobalVariable and + essa_var_scope(var, pragma[only_bind_into](pred_scope), pred_var) and + scope_entry_def_scope(var, succ_scope, succ_def) and + step_through_init(succ_scope, pragma[only_bind_into](pred_scope), init) and + not var.(Variable).getAStore().getScope() = init + ) +} + module BaseFlow { predicate reaches_exit(EssaVariable var) { var.getAUse() = var.getScope().getANormalExit() } @@ -283,27 +318,15 @@ module BaseFlow { ) { Stages::DataFlow::ref() and exists(SsaSourceVariable var | - reaches_exit(pred_var) and - pred_var.getScope() = pred_scope and - var = pred_var.getSourceVariable() and - var = succ_def.getSourceVariable() and - succ_def.getScope() = succ_scope + essa_var_scope(var, pred_scope, pred_var) and + scope_entry_def_scope(var, succ_scope, succ_def) | pred_scope.precedes(succ_scope) - or - /* - * If an `__init__` method does not modify the global variable, then - * we can skip it and take the value directly from the module. - */ - - exists(Scope init | - init.getName() = "__init__" and - init.precedes(succ_scope) and - pred_scope.precedes(init) and - not var.(Variable).getAStore().getScope() = init and - var instanceof GlobalVariable - ) ) + or + // If an `__init__` method does not modify the global variable, then + // we can skip it and take the value directly from the module. + scope_entry_value_transfer_through_init(pred_var, pred_scope, succ_def, succ_scope) } } From 0828474192694f508eb0a0b30326cf49e93b068a Mon Sep 17 00:00:00 2001 From: Henti Smith Date: Tue, 19 Jul 2022 15:34:10 +0100 Subject: [PATCH 449/736] Added Workflow::getName and Step::GetId --- javascript/ql/lib/semmle/javascript/Actions.qll | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/Actions.qll b/javascript/ql/lib/semmle/javascript/Actions.qll index f5b2c39b064..8e842c81e73 100644 --- a/javascript/ql/lib/semmle/javascript/Actions.qll +++ b/javascript/ql/lib/semmle/javascript/Actions.qll @@ -28,6 +28,9 @@ module Actions { /** Gets the `jobs` mapping from job IDs to job definitions in this workflow. */ YAMLMapping getJobs() { result = this.lookup("jobs") } + /** Gets the name of the workflow */ + string getName() { result = this.lookup("name").(YAMLString).getValue() } + /** Gets the name of the workflow file. */ string getFileName() { result = this.getFile().getBaseName() } @@ -129,6 +132,9 @@ module Actions { /** Gets the value of the `if` field in this step, if any. */ StepIf getIf() { result.getStep() = this } + + /** Gets the id of the step field, if any. */ + string getId() { result = this.lookup("id").(YAMLString).getValue() } } /** From dcc76ddf3629e8f579c68440a8aa20d67a90e656 Mon Sep 17 00:00:00 2001 From: Henti Smith <28868601+henti@users.noreply.github.com> Date: Tue, 19 Jul 2022 15:53:12 +0100 Subject: [PATCH 450/736] Apply suggestions from code review Co-authored-by: Henry Mercer --- javascript/ql/lib/semmle/javascript/Actions.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/Actions.qll b/javascript/ql/lib/semmle/javascript/Actions.qll index 8e842c81e73..8ea789c96e0 100644 --- a/javascript/ql/lib/semmle/javascript/Actions.qll +++ b/javascript/ql/lib/semmle/javascript/Actions.qll @@ -28,7 +28,7 @@ module Actions { /** Gets the `jobs` mapping from job IDs to job definitions in this workflow. */ YAMLMapping getJobs() { result = this.lookup("jobs") } - /** Gets the name of the workflow */ + /** Gets the name of the workflow. */ string getName() { result = this.lookup("name").(YAMLString).getValue() } /** Gets the name of the workflow file. */ @@ -133,7 +133,7 @@ module Actions { /** Gets the value of the `if` field in this step, if any. */ StepIf getIf() { result.getStep() = this } - /** Gets the id of the step field, if any. */ + /** Gets the ID of this step, if any. */ string getId() { result = this.lookup("id").(YAMLString).getValue() } } From 7620a6f6539dcbdf4efab6bd9a08335023c4d95a Mon Sep 17 00:00:00 2001 From: Aditya Sharad Date: Thu, 14 Jul 2022 12:08:22 -0700 Subject: [PATCH 451/736] Docs: Update supported languages page with links to CLI and pack information Include links to the CLI changelog, CLI releases, bundle releases, pack changelogs, and pack source. Clarify that this support information applies to the current version of the CLI, bundle, query packs, and library packs. --- .../supported-languages-and-frameworks.rst | 7 ++++-- docs/codeql/support/reusables/frameworks.rst | 24 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/docs/codeql/codeql-overview/supported-languages-and-frameworks.rst b/docs/codeql/codeql-overview/supported-languages-and-frameworks.rst index 4353f9402b7..be66125846a 100644 --- a/docs/codeql/codeql-overview/supported-languages-and-frameworks.rst +++ b/docs/codeql/codeql-overview/supported-languages-and-frameworks.rst @@ -11,14 +11,17 @@ CodeQL. Languages and compilers ####################### -CodeQL supports the following languages and compilers. +The current versions of the CodeQL CLI (`changelog `__, `releases `__), +CodeQL library packs (`source `__), +and CodeQL bundle (`releases `__) +support the following languages and compilers. .. include:: ../support/reusables/versions-compilers.rst Frameworks and libraries ######################## -The libraries and queries in the current version of CodeQL have been explicitly checked against the libraries and frameworks listed below. +The current versions of the CodeQL library and query packs (`source `__) have been explicitly checked against the libraries and frameworks listed below. .. pull-quote:: diff --git a/docs/codeql/support/reusables/frameworks.rst b/docs/codeql/support/reusables/frameworks.rst index 12bcd5af8e6..fc5410648cf 100644 --- a/docs/codeql/support/reusables/frameworks.rst +++ b/docs/codeql/support/reusables/frameworks.rst @@ -1,6 +1,10 @@ C and C++ built-in support ================================ +Provided by the current versions of the +CodeQL query pack ``codeql/cpp-queries`` (`changelog `__, `source `__) +and the CodeQL library pack ``codeql/cpp-all`` (`changelog `__, `source `__). + .. csv-table:: :header-rows: 1 :class: fullWidthTable @@ -14,6 +18,10 @@ C and C++ built-in support C# built-in support ================================ +Provided by the current versions of the +CodeQL query pack ``codeql/csharp-queries`` (`changelog `__, `source `__) +and the CodeQL library pack ``codeql/csharp-all`` (`changelog `__, `source `__). + .. csv-table:: :header-rows: 1 :class: fullWidthTable @@ -33,6 +41,10 @@ C# built-in support Go built-in support ================================ +Provided by the current versions of the +CodeQL query pack ``codeql/go-queries`` (`changelog `__, `source `__) +and the CodeQL library pack ``codeql/go-all`` (`changelog `__, `source `__). + .. csv-table:: :header-rows: 1 :class: fullWidthTable @@ -84,6 +96,10 @@ Go built-in support Java built-in support ================================== +Provided by the current versions of the +CodeQL query pack ``codeql/java-queries`` (`changelog `__, `source `__) +and the CodeQL library pack ``codeql/java-all`` (`changelog `__, `source `__). + .. csv-table:: :header-rows: 1 :class: fullWidthTable @@ -113,6 +129,10 @@ Java built-in support JavaScript and TypeScript built-in support ======================================================= +Provided by the current versions of the +CodeQL query pack ``codeql/javascript-queries`` (`changelog `__, `source `__) +and the CodeQL library pack ``codeql/javascript-all`` (`changelog `__, `source `__). + .. csv-table:: :header-rows: 1 :class: fullWidthTable @@ -156,6 +176,10 @@ JavaScript and TypeScript built-in support Python built-in support ==================================== +Provided by the current versions of the +CodeQL query pack ``codeql/python-queries`` (`changelog `__, `source `__) +and the CodeQL library pack ``codeql/python-all`` (`changelog `__, `source `__). + .. csv-table:: :header-rows: 1 :class: fullWidthTable From 3527897eff418d15ca8b0dfa6e9db996422c56ba Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 20 Jul 2022 09:13:34 +0200 Subject: [PATCH 452/736] Swift: make `type` optional in `TypeRepr` A type representation may not have a type in unresolved things, which for example pop up in inactive `#if` clauses. --- swift/codegen/schema.yml | 2 +- swift/extractor/visitors/TypeVisitor.cpp | 2 +- swift/ql/lib/codeql/swift/generated/type/TypeRepr.qll | 4 +++- swift/ql/lib/swift.dbscheme | 7 ++++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index 525318cc09e..f810bfec636 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -184,7 +184,7 @@ Stmt: TypeRepr: _extends: AstNode - type: Type + type: Type? # type can be absent on unresolved entities FunctionType: _extends: AnyFunctionType diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index 7920b6084ef..ddc253c90a5 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -11,7 +11,7 @@ void TypeVisitor::visit(swift::TypeBase* type) { codeql::TypeRepr TypeVisitor::translateTypeRepr(const swift::TypeRepr& typeRepr, swift::Type type) { auto entry = dispatcher_.createEntry(typeRepr); - entry.type = dispatcher_.fetchLabel(type); + entry.type = dispatcher_.fetchOptionalLabel(type); return entry; } diff --git a/swift/ql/lib/codeql/swift/generated/type/TypeRepr.qll b/swift/ql/lib/codeql/swift/generated/type/TypeRepr.qll index 829960deda9..5cc1cc04147 100644 --- a/swift/ql/lib/codeql/swift/generated/type/TypeRepr.qll +++ b/swift/ql/lib/codeql/swift/generated/type/TypeRepr.qll @@ -7,8 +7,10 @@ class TypeReprBase extends @type_repr, AstNode { Type getType() { exists(Type x | - type_reprs(this, x) and + type_repr_types(this, x) and result = x.resolve() ) } + + predicate hasType() { exists(getType()) } } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index d4f95d5122a..0826b2b9ef4 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -473,7 +473,12 @@ expr_types( //dir=expr ; type_reprs( //dir=type - unique int id: @type_repr, + unique int id: @type_repr +); + +#keyset[id] +type_repr_types( //dir=type + int id: @type_repr ref, int type_: @type ref ); From e9e5d948b33e8ba3f84f417aedaeb7cc3445b72a Mon Sep 17 00:00:00 2001 From: Cornelius Riemenschneider Date: Thu, 9 Sep 2021 17:21:08 +0000 Subject: [PATCH 453/736] C#: Implement proper `dotnet build` handling in the Lua tracing config. For proper C# tracing, `dotnet build` needs the parameter /p:UseSharedCompilation=false. However, we can't pass that to the other subcommands of `dotnet`, therefore we need to figure out which subcommand of `dotnet` is being invoked. --- csharp/tools/tracing-config.lua | 61 ++++++++++++++++++++++++++++----- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/csharp/tools/tracing-config.lua b/csharp/tools/tracing-config.lua index b4ff0206b02..8aafc63e7e5 100644 --- a/csharp/tools/tracing-config.lua +++ b/csharp/tools/tracing-config.lua @@ -2,7 +2,54 @@ function RegisterExtractorPack(id) local extractor = GetPlatformToolsDirectory() .. 'Semmle.Extraction.CSharp.Driver' if OperatingSystem == 'windows' then extractor = extractor .. '.exe' end + + function DotnetMatcherBuild(compilerName, compilerPath, compilerArguments, + _languageId) + if compilerName ~= 'dotnet' and compilerName ~= 'dotnet.exe' then + return nil + end + + -- The dotnet CLI has the following usage instructions: + -- dotnet [sdk-options] [command] [command-options] [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, + -- otherwise we do nothing. + local match = false + local argv = compilerArguments.argv + if OperatingSystem == 'windows' then + -- let's hope that this split matches the escaping rules `dotnet` applies to command line arguments + -- or, at least, that it is close enough + argv = + 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 + Log(1, 'Dotnet subcommand detected: %s', arg) + if arg == 'build' then match = true end + break + end + end + if match then + return { + order = ORDER_REPLACE, + invocation = BuildExtractorInvocation(id, compilerPath, + compilerPath, + compilerArguments, nil, { + '/p:UseSharedCompilation=false' + }) + } + end + return nil + end + local windowsMatchers = { + DotnetMatcherBuild, CreatePatternMatcher({'^dotnet%.exe$'}, MatchCompilerName, extractor, { prepend = {'--dotnetexec', '--cil'}, order = ORDER_BEFORE @@ -10,22 +57,21 @@ function RegisterExtractorPack(id) CreatePatternMatcher({'^csc.*%.exe$'}, MatchCompilerName, extractor, { prepend = {'--compiler', '"${compiler}"', '--cil'}, order = ORDER_BEFORE - }), CreatePatternMatcher({'^fakes.*%.exe$', 'moles.*%.exe'}, MatchCompilerName, nil, {trace = false}) } local posixMatchers = { - CreatePatternMatcher({'^mcs%.exe$', '^csc%.exe$'}, MatchCompilerName, - extractor, { - prepend = {'--compiler', '"${compiler}"', '--cil'}, - order = ORDER_BEFORE - - }), + DotnetMatcherBuild, CreatePatternMatcher({'^mono', '^dotnet$'}, MatchCompilerName, extractor, { prepend = {'--dotnetexec', '--cil'}, order = ORDER_BEFORE + }), + CreatePatternMatcher({'^mcs%.exe$', '^csc%.exe$'}, MatchCompilerName, + extractor, { + prepend = {'--compiler', '"${compiler}"', '--cil'}, + order = ORDER_BEFORE }), function(compilerName, compilerPath, compilerArguments, _languageId) if MatchCompilerName('^msbuild$', compilerName, compilerPath, compilerArguments) or @@ -49,7 +95,6 @@ function RegisterExtractorPack(id) else return posixMatchers end - end -- Return a list of minimum supported versions of the configuration file format From 694d6395d581a4f2a876754c49046606c519f368 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 20 Jul 2022 16:25:33 +0200 Subject: [PATCH 454/736] C++: Fix join-order problem in `cpp/command-line-injection` Before on Abseil Linux: ``` Evaluated relational algebra for predicate ExecTainted::ExecState#class#91000ffb#fff@41084cm7 with tuple counts: 40879811 ~0% {2} r1 = SCAN DataFlowUtil::Node::getLocation#dispred#f0820431#ff OUTPUT In.1, In.0 40879811 ~0% {2} r2 = JOIN r1 WITH Location::Location::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1 7527 ~3% {3} r3 = JOIN r2 WITH ExecTainted::interestingConcatenation#91000ffb#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 7527 ~0% {4} r4 = JOIN r3 WITH DataFlowUtil::Node::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Lhs.0, Rhs.1 7527 ~0% {5} r5 = JOIN r4 WITH DataFlowUtil::Node::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Lhs.0, Lhs.3, Rhs.1 7527 ~0% {6} r6 = JOIN r5 WITH DataFlowUtil::Node::getLocation#dispred#f0820431#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.0, Lhs.3, Lhs.4 7527 ~0% {3} r7 = JOIN r6 WITH Location::Location::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT ((((((("ExecState (" ++ Rhs.1) ++ " | ") ++ Lhs.4) ++ ", ") ++ Lhs.1) ++ " | ") ++ Lhs.5 ++ ")"), Lhs.3, Lhs.2 return r7 ``` After: ``` Evaluated relational algebra for predicate ExecTainted::ExecState#class#91000ffb#fff@1ffe61ps with tuple counts: 7527 ~0% {3} r1 = JOIN ExecTainted::interestingConcatenation#91000ffb#ff WITH DataFlowUtil::Node::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Rhs.1 7527 ~0% {4} r2 = JOIN r1 WITH DataFlowUtil::Node::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.1 7527 ~1% {5} r3 = JOIN r2 WITH DataFlowUtil::Node::getLocation#dispred#f0820431#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0, Lhs.2, Lhs.3 7527 ~0% {5} r4 = JOIN r3 WITH Location::Location::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Rhs.1 7527 ~4% {6} r5 = JOIN r4 WITH DataFlowUtil::Node::getLocation#dispred#f0820431#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4 7527 ~0% {3} r6 = JOIN r5 WITH Location::Location::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT ((((((("ExecState (" ++ Rhs.1) ++ " | ") ++ Lhs.3) ++ ", ") ++ Lhs.5) ++ " | ") ++ Lhs.4 ++ ")"), Lhs.1, Lhs.2 return r6 ``` --- cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql b/cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql index 73fcf034096..7a3877f638c 100644 --- a/cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql +++ b/cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql @@ -77,7 +77,7 @@ class ExecState extends DataFlow::FlowState { ExecState() { this = "ExecState (" + fst.getLocation() + " | " + fst + ", " + snd.getLocation() + " | " + snd + ")" and - interestingConcatenation(fst, snd) + interestingConcatenation(pragma[only_bind_into](fst), pragma[only_bind_into](snd)) } DataFlow::Node getFstNode() { result = fst } From 8d80e0332efafa59f80632b233de2821e5993691 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 20 Jul 2022 16:13:46 +0200 Subject: [PATCH 455/736] Ruby: update tree-sitter-ruby --- ruby/Cargo.lock | Bin 15139 -> 15139 bytes ruby/extractor/Cargo.toml | 2 +- ruby/generator/Cargo.toml | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/Cargo.lock b/ruby/Cargo.lock index 1be66824a3e4184f0dabbebc3fec55848f3da549..3d7e6eb5713079c870275af07d906cca3d12cdca 100644 GIT binary patch delta 102 zcmZ2nwzzDAw^?ASxoL`liHU(pvSmt&xnW|8nT3U^L5gXznYmGtk&#)7X{wo}Nt&@T Uu?i Date: Mon, 18 Jul 2022 12:52:17 +0100 Subject: [PATCH 456/736] Kotlin: fix for-loop iterators over primitive or wildcard types Array<*> can't be queried for an argument type, and IntArray doesn't have an argument at all; both were previously causing the extractor to fail to extract the whole file due to throwing an exception. --- .../src/main/kotlin/KotlinFileExtractor.kt | 8 +++++++- .../library-tests/for-array-iterators/test.expected | 9 +++++++++ .../kotlin/library-tests/for-array-iterators/test.kt | 11 +++++++++++ .../kotlin/library-tests/for-array-iterators/test.ql | 4 ++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 java/ql/test/kotlin/library-tests/for-array-iterators/test.expected create mode 100644 java/ql/test/kotlin/library-tests/for-array-iterators/test.kt create mode 100644 java/ql/test/kotlin/library-tests/for-array-iterators/test.ql diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 9bdf40fdca0..78a81fb0715 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -2124,7 +2124,13 @@ open class KotlinFileExtractor( } isFunction(target, "kotlin", "(some array type)", { isArrayType(it) }, "iterator") && c.origin == IrStatementOrigin.FOR_LOOP_ITERATOR -> { findTopLevelFunctionOrWarn("kotlin.jvm.internal.iterator", "kotlin.jvm.internal.ArrayIteratorKt", c)?.let { iteratorFn -> - extractRawMethodAccess(iteratorFn, c, callable, parent, idx, enclosingStmt, listOf(c.dispatchReceiver), null, null, listOf((c.dispatchReceiver!!.type as IrSimpleType).arguments.first().typeOrNull!!)) + val typeArgs = (c.dispatchReceiver!!.type as IrSimpleType).arguments.map { + when(it) { + is IrTypeProjection -> it.type + else -> pluginContext.irBuiltIns.anyNType + } + } + extractRawMethodAccess(iteratorFn, c, callable, parent, idx, enclosingStmt, listOf(c.dispatchReceiver), null, null, typeArgs) } } isFunction(target, "kotlin", "(some array type)", { isArrayType(it) }, "get") && c.origin == IrStatementOrigin.GET_ARRAY_ELEMENT -> { diff --git a/java/ql/test/kotlin/library-tests/for-array-iterators/test.expected b/java/ql/test/kotlin/library-tests/for-array-iterators/test.expected new file mode 100644 index 00000000000..ac5821044ff --- /dev/null +++ b/java/ql/test/kotlin/library-tests/for-array-iterators/test.expected @@ -0,0 +1,9 @@ +| test.kt:5:14:5:14 | hasNext(...) | +| test.kt:5:14:5:14 | iterator(...) | +| test.kt:5:14:5:14 | next(...) | +| test.kt:6:14:6:14 | hasNext(...) | +| test.kt:6:14:6:14 | iterator(...) | +| test.kt:6:14:6:14 | next(...) | +| test.kt:7:14:7:14 | hasNext(...) | +| test.kt:7:14:7:14 | iterator(...) | +| test.kt:7:14:7:14 | next(...) | diff --git a/java/ql/test/kotlin/library-tests/for-array-iterators/test.kt b/java/ql/test/kotlin/library-tests/for-array-iterators/test.kt new file mode 100644 index 00000000000..2da3a6e1e0e --- /dev/null +++ b/java/ql/test/kotlin/library-tests/for-array-iterators/test.kt @@ -0,0 +1,11 @@ +fun test(x: Array, y: Array<*>, z: IntArray): Int { + + var ret = 0 + + for (el in x) { ret += 1 } + for (el in y) { ret += 1 } + for (el in z) { ret += 1 } + + return ret + +} diff --git a/java/ql/test/kotlin/library-tests/for-array-iterators/test.ql b/java/ql/test/kotlin/library-tests/for-array-iterators/test.ql new file mode 100644 index 00000000000..ab60ba2525d --- /dev/null +++ b/java/ql/test/kotlin/library-tests/for-array-iterators/test.ql @@ -0,0 +1,4 @@ +import java + +from MethodAccess ma +select ma From 0a351b73cb75a56954cd0412235e7724787f9c13 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 18 Jul 2022 12:54:07 +0100 Subject: [PATCH 457/736] Underscore query: tolerate synthetic functions --- .../utils/versions/v_1_4_32/IsUnderscoreParameter.kt | 9 ++++++++- .../utils/versions/v_1_5_0/IsUnderscoreParameter.kt | 9 ++++++++- .../utils/versions/v_1_5_10/IsUnderscoreParameter.kt | 9 ++++++++- .../utils/versions/v_1_5_21/IsUnderscoreParameter.kt | 9 ++++++++- .../utils/versions/v_1_5_31/IsUnderscoreParameter.kt | 9 ++++++++- .../utils/versions/v_1_6_10/IsUnderscoreParameter.kt | 9 ++++++++- 6 files changed, 48 insertions(+), 6 deletions(-) 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_4_32/IsUnderscoreParameter.kt index 59fd08c95f5..fa3c9b91a5c 100644 --- 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_4_32/IsUnderscoreParameter.kt @@ -9,4 +9,11 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs @OptIn(ObsoleteDescriptorBasedAPI::class) fun isUnderscoreParameter(vp: IrValueParameter) = - DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file + try { + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor) + ?.safeAs()?.isSingleUnderscore == true + } catch(e: NotImplementedError) { + // Some kinds of descriptor throw in `getSourceFromDescriptor` as that method is not normally expected to + // be applied to synthetic functions. + false + } \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt index 59fd08c95f5..fa3c9b91a5c 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IsUnderscoreParameter.kt @@ -9,4 +9,11 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs @OptIn(ObsoleteDescriptorBasedAPI::class) fun isUnderscoreParameter(vp: IrValueParameter) = - DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file + try { + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor) + ?.safeAs()?.isSingleUnderscore == true + } catch(e: NotImplementedError) { + // Some kinds of descriptor throw in `getSourceFromDescriptor` as that method is not normally expected to + // be applied to synthetic functions. + false + } \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/IsUnderscoreParameter.kt index 59fd08c95f5..fa3c9b91a5c 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/IsUnderscoreParameter.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_10/IsUnderscoreParameter.kt @@ -9,4 +9,11 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs @OptIn(ObsoleteDescriptorBasedAPI::class) fun isUnderscoreParameter(vp: IrValueParameter) = - DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file + try { + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor) + ?.safeAs()?.isSingleUnderscore == true + } catch(e: NotImplementedError) { + // Some kinds of descriptor throw in `getSourceFromDescriptor` as that method is not normally expected to + // be applied to synthetic functions. + false + } \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/IsUnderscoreParameter.kt index 59fd08c95f5..fa3c9b91a5c 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/IsUnderscoreParameter.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_21/IsUnderscoreParameter.kt @@ -9,4 +9,11 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs @OptIn(ObsoleteDescriptorBasedAPI::class) fun isUnderscoreParameter(vp: IrValueParameter) = - DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file + try { + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor) + ?.safeAs()?.isSingleUnderscore == true + } catch(e: NotImplementedError) { + // Some kinds of descriptor throw in `getSourceFromDescriptor` as that method is not normally expected to + // be applied to synthetic functions. + false + } \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/IsUnderscoreParameter.kt index 59fd08c95f5..fa3c9b91a5c 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/IsUnderscoreParameter.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_31/IsUnderscoreParameter.kt @@ -9,4 +9,11 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs @OptIn(ObsoleteDescriptorBasedAPI::class) fun isUnderscoreParameter(vp: IrValueParameter) = - DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file + try { + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor) + ?.safeAs()?.isSingleUnderscore == true + } catch(e: NotImplementedError) { + // Some kinds of descriptor throw in `getSourceFromDescriptor` as that method is not normally expected to + // be applied to synthetic functions. + false + } \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/IsUnderscoreParameter.kt index 59fd08c95f5..fa3c9b91a5c 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/IsUnderscoreParameter.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_10/IsUnderscoreParameter.kt @@ -9,4 +9,11 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs @OptIn(ObsoleteDescriptorBasedAPI::class) fun isUnderscoreParameter(vp: IrValueParameter) = - DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)?.safeAs()?.isSingleUnderscore == true \ No newline at end of file + try { + DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor) + ?.safeAs()?.isSingleUnderscore == true + } catch(e: NotImplementedError) { + // Some kinds of descriptor throw in `getSourceFromDescriptor` as that method is not normally expected to + // be applied to synthetic functions. + false + } \ No newline at end of file From 9593ceeda54855bf6e6edd830710542e84a54306 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 19 Jul 2022 14:48:00 +0100 Subject: [PATCH 458/736] Kotlin: Special-case String.charAt naming In the Kotlin universe this is called `get` so that Kotlin programmers can use the `[]` operator on `String`s. --- java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt | 2 ++ java/ql/test/kotlin/library-tests/string-charat/Test.java | 5 +++++ .../ql/test/kotlin/library-tests/string-charat/test.expected | 2 ++ java/ql/test/kotlin/library-tests/string-charat/test.kt | 2 ++ java/ql/test/kotlin/library-tests/string-charat/test.ql | 4 ++++ 5 files changed, 15 insertions(+) create mode 100644 java/ql/test/kotlin/library-tests/string-charat/Test.java create mode 100644 java/ql/test/kotlin/library-tests/string-charat/test.expected create mode 100644 java/ql/test/kotlin/library-tests/string-charat/test.kt create mode 100644 java/ql/test/kotlin/library-tests/string-charat/test.ql diff --git a/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt b/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt index 57a3e92e6b2..76d155f8b22 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt @@ -51,6 +51,8 @@ private val specialFunctions = mapOf( makeDescription(FqName("java.lang.Number"), "toFloat") to "floatValue", makeDescription(StandardNames.FqNames.number.toSafe(), "toDouble") to "doubleValue", makeDescription(FqName("java.lang.Number"), "toDouble") to "doubleValue", + makeDescription(StandardNames.FqNames.string.toSafe(), "get") to "charAt", + makeDescription(FqName("java.lang.String"), "get") to "charAt", ) private val specialFunctionShortNames = specialFunctions.keys.map { it.functionName }.toSet() diff --git a/java/ql/test/kotlin/library-tests/string-charat/Test.java b/java/ql/test/kotlin/library-tests/string-charat/Test.java new file mode 100644 index 00000000000..22f553216b7 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/string-charat/Test.java @@ -0,0 +1,5 @@ +public class Test { + + public char f(String s) { return s.charAt(0); } + +} diff --git a/java/ql/test/kotlin/library-tests/string-charat/test.expected b/java/ql/test/kotlin/library-tests/string-charat/test.expected new file mode 100644 index 00000000000..ab1ff9b6d5f --- /dev/null +++ b/java/ql/test/kotlin/library-tests/string-charat/test.expected @@ -0,0 +1,2 @@ +| Test.java:3:36:3:46 | charAt(...) | +| test.kt:2:20:2:23 | charAt(...) | diff --git a/java/ql/test/kotlin/library-tests/string-charat/test.kt b/java/ql/test/kotlin/library-tests/string-charat/test.kt new file mode 100644 index 00000000000..c586f3d0171 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/string-charat/test.kt @@ -0,0 +1,2 @@ + +fun f(x: String) = x[0] diff --git a/java/ql/test/kotlin/library-tests/string-charat/test.ql b/java/ql/test/kotlin/library-tests/string-charat/test.ql new file mode 100644 index 00000000000..ab60ba2525d --- /dev/null +++ b/java/ql/test/kotlin/library-tests/string-charat/test.ql @@ -0,0 +1,4 @@ +import java + +from MethodAccess ma +select ma From ad8335d6f3b498c8a70f4ffdaaae214d018acb7e Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 20 Jul 2022 20:12:39 +0200 Subject: [PATCH 459/736] C++: Fix join-order problem in `cpp/return-stack-allocated-memory` Before on Abseil: ``` Evaluated relational algebra for predicate #select#cpe#12356#fffff@3ffb21o1 with tuple counts: 1235939 ~0% {2} r1 = SCAN functions OUTPUT In.0, In.0 1235939 ~0% {2} r2 = JOIN r1 WITH functions ON FIRST 1 OUTPUT Lhs.1, Lhs.0 33500841 ~0% {2} r3 = JOIN r2 WITH DataFlowUtil::Node::getEnclosingCallable#dispred#f0820431#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 280683 ~3% {3} r4 = JOIN r3 WITH MustFlow::MkLocalPathNode#0227f5a1#fff ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Lhs.0 40970 ~2% {4} r5 = JOIN r4 WITH MustFlow::MustFlowConfiguration::hasFlowPath#dispred#f0820431#fff#cpe#23_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.0 40970 ~0% {5} r6 = JOIN r5 WITH MustFlow::MkLocalPathNode#0227f5a1#fff_20#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.0 40970 ~1% {5} r7 = JOIN r6 WITH DataFlowUtil::Cached::TInstructionNode#47741e1f#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4 40970 ~1% {5} r8 = JOIN r7 WITH project#Instruction::VariableAddressInstruction#class#577b6a83#ff ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4 40970 ~0% {6} r9 = JOIN r8 WITH SSAConstruction::Cached::getInstructionAst#2b11997e#ff ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Rhs.1 40970 ~2% {7} r10 = JOIN r9 WITH SSAConstruction::Cached::getInstructionAst#2b11997e#ff ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.1 0 ~0% {6} r11 = JOIN r10 WITH Instruction::Instruction::getEnclosingFunction#dispred#f0820431#3#ff ON FIRST 2 OUTPUT Rhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6 0 ~0% {5} r12 = JOIN r11 WITH functions ON FIRST 1 OUTPUT Lhs.5, Lhs.1, Lhs.2, Lhs.3, Lhs.4 0 ~0% {5} r13 = JOIN r12 WITH Element::ElementBase::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.1, Lhs.3, Lhs.2, Lhs.4, Rhs.1 return r13 ``` After: ``` Evaluated relational algebra for predicate #select#cpe#12356#fffff@1dbc97kv with tuple counts: 40970 ~0% {2} r1 = SCAN MustFlow::MustFlowConfiguration::hasFlowPath#dispred#f0820431#fff#cpe#23 OUTPUT In.1, In.0 40970 ~0% {3} r2 = JOIN r1 WITH MustFlow::MkLocalPathNode#0227f5a1#fff_20#join_rhs ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Rhs.1 40970 ~7% {4} r3 = JOIN r2 WITH MustFlow::MkLocalPathNode#0227f5a1#fff_20#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.0, Lhs.1, Lhs.2 40970 ~2% {4} r4 = JOIN r3 WITH DataFlowUtil::Cached::TInstructionNode#47741e1f#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3 40970 ~2% {4} r5 = JOIN r4 WITH project#Instruction::VariableAddressInstruction#class#577b6a83#ff ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3 40970 ~0% {5} r6 = JOIN r5 WITH SSAConstruction::Cached::getInstructionAst#2b11997e#ff ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Rhs.1 40970 ~1% {6} r7 = JOIN r6 WITH SSAConstruction::Cached::getInstructionAst#2b11997e#ff ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Rhs.1 40970 ~0% {6} r8 = JOIN r7 WITH Instruction::Instruction::getEnclosingFunction#dispred#f0820431#3#ff ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.1, Lhs.2, Lhs.4, Lhs.5 0 ~0% {5} r9 = JOIN r8 WITH DataFlowUtil::Node::getEnclosingCallable#dispred#f0820431#fb ON FIRST 2 OUTPUT Lhs.5, Lhs.2, Lhs.3, Lhs.0, Lhs.4 0 ~0% {5} r10 = JOIN r9 WITH Element::ElementBase::toString#dispred#f0820431#ff ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2, Lhs.4, Rhs.1 return r10 ``` --- .../Memory Management/ReturnStackAllocatedMemory.ql | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql b/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql index bd55008677c..7eab1bd03c8 100644 --- a/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql +++ b/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql @@ -74,13 +74,12 @@ class ReturnStackAllocatedMemoryConfig extends MustFlowConfiguration { from MustFlowPathNode source, MustFlowPathNode sink, VariableAddressInstruction var, - ReturnStackAllocatedMemoryConfig conf, Function f + ReturnStackAllocatedMemoryConfig conf where - conf.hasFlowPath(source, sink) and + conf.hasFlowPath(pragma[only_bind_into](source), pragma[only_bind_into](sink)) and source.getNode().asInstruction() = var and // Only raise an alert if we're returning from the _same_ callable as the on that // declared the stack variable. - var.getEnclosingFunction() = pragma[only_bind_into](f) and - sink.getNode().getEnclosingCallable() = pragma[only_bind_into](f) + var.getEnclosingFunction() = sink.getNode().getEnclosingCallable() select sink.getNode(), source, sink, "May return stack-allocated memory from $@.", var.getAst(), var.getAst().toString() From 388c9ffb745c833929dfcf53fd38c3e464d5ccaf Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 1 Nov 2021 16:24:28 +0000 Subject: [PATCH 460/736] Ruby: separate trap-writer into its own module --- ruby/extractor/src/extractor.rs | 454 +++++++++----------------------- ruby/extractor/src/main.rs | 66 +---- ruby/extractor/src/trap.rs | 272 +++++++++++++++++++ 3 files changed, 410 insertions(+), 382 deletions(-) create mode 100644 ruby/extractor/src/trap.rs diff --git a/ruby/extractor/src/extractor.rs b/ruby/extractor/src/extractor.rs index 8cdaff1b738..6c462e11bb4 100644 --- a/ruby/extractor/src/extractor.rs +++ b/ruby/extractor/src/extractor.rs @@ -1,161 +1,112 @@ +use crate::trap; use node_types::{EntryKind, Field, NodeTypeMap, Storage, TypeName}; -use std::borrow::Cow; use std::collections::BTreeMap as Map; use std::collections::BTreeSet as Set; use std::fmt; -use std::io::Write; use std::path::Path; use tracing::{error, info, span, Level}; use tree_sitter::{Language, Node, Parser, Range, Tree}; -pub struct TrapWriter { - /// The accumulated trap entries - trap_output: Vec, - /// A counter for generating fresh labels - counter: u32, - /// cache of global keys - global_keys: std::collections::HashMap, +pub fn populate_file(writer: &mut trap::Writer, absolute_path: &Path) -> trap::Label { + let (file_label, fresh) = + writer.global_id(&trap::full_id_for_file(&normalize_path(absolute_path))); + if fresh { + writer.add_tuple( + "files", + vec![ + trap::Arg::Label(file_label), + trap::Arg::String(normalize_path(absolute_path)), + ], + ); + populate_parent_folders(writer, file_label, absolute_path.parent()); + } + file_label } -pub fn new_trap_writer() -> TrapWriter { - TrapWriter { - counter: 0, - trap_output: Vec::new(), - global_keys: std::collections::HashMap::new(), +fn populate_empty_file(writer: &mut trap::Writer) -> trap::Label { + let (file_label, fresh) = writer.global_id("empty;sourcefile"); + if fresh { + writer.add_tuple( + "files", + vec![ + trap::Arg::Label(file_label), + trap::Arg::String("".to_string()), + ], + ); } + file_label } -impl TrapWriter { - /// Gets a label that will hold the unique ID of the passed string at import time. - /// This can be used for incrementally importable TRAP files -- use globally unique - /// strings to compute a unique ID for table tuples. - /// - /// Note: You probably want to make sure that the key strings that you use are disjoint - /// for disjoint column types; the standard way of doing this is to prefix (or append) - /// the column type name to the ID. Thus, you might identify methods in Java by the - /// full ID "methods_com.method.package.DeclaringClass.method(argumentList)". +pub fn populate_empty_location(writer: &mut trap::Writer) { + let file_label = populate_empty_file(writer); + location(writer, file_label, 0, 0, 0, 0); +} - fn fresh_id(&mut self) -> Label { - let label = Label(self.counter); - self.counter += 1; - self.trap_output.push(TrapEntry::FreshId(label)); - label - } - - fn global_id(&mut self, key: &str) -> (Label, bool) { - if let Some(label) = self.global_keys.get(key) { - return (*label, false); - } - let label = Label(self.counter); - self.counter += 1; - self.global_keys.insert(key.to_owned(), label); - self.trap_output - .push(TrapEntry::MapLabelToKey(label, key.to_owned())); - (label, true) - } - - fn add_tuple(&mut self, table_name: &str, args: Vec) { - self.trap_output - .push(TrapEntry::GenericTuple(table_name.to_owned(), args)) - } - - fn populate_file(&mut self, absolute_path: &Path) -> Label { - let (file_label, fresh) = self.global_id(&full_id_for_file(absolute_path)); - if fresh { - self.add_tuple( - "files", - vec![ - Arg::Label(file_label), - Arg::String(normalize_path(absolute_path)), - ], - ); - self.populate_parent_folders(file_label, absolute_path.parent()); - } - file_label - } - - fn populate_empty_file(&mut self) -> Label { - let (file_label, fresh) = self.global_id("empty;sourcefile"); - if fresh { - self.add_tuple( - "files", - vec![Arg::Label(file_label), Arg::String("".to_string())], - ); - } - file_label - } - - pub fn populate_empty_location(&mut self) { - let file_label = self.populate_empty_file(); - self.location(file_label, 0, 0, 0, 0); - } - - fn populate_parent_folders(&mut self, child_label: Label, path: Option<&Path>) { - let mut path = path; - let mut child_label = child_label; - loop { - match path { - None => break, - Some(folder) => { - let (folder_label, fresh) = self.global_id(&full_id_for_folder(folder)); - self.add_tuple( - "containerparent", - vec![Arg::Label(folder_label), Arg::Label(child_label)], +pub fn populate_parent_folders( + writer: &mut trap::Writer, + child_label: trap::Label, + path: Option<&Path>, +) { + let mut path = path; + let mut child_label = child_label; + loop { + match path { + None => break, + Some(folder) => { + let (folder_label, fresh) = + writer.global_id(&trap::full_id_for_folder(&normalize_path(folder))); + writer.add_tuple( + "containerparent", + vec![ + trap::Arg::Label(folder_label), + trap::Arg::Label(child_label), + ], + ); + if fresh { + writer.add_tuple( + "folders", + vec![ + trap::Arg::Label(folder_label), + trap::Arg::String(normalize_path(folder)), + ], ); - if fresh { - self.add_tuple( - "folders", - vec![ - Arg::Label(folder_label), - Arg::String(normalize_path(folder)), - ], - ); - path = folder.parent(); - child_label = folder_label; - } else { - break; - } + path = folder.parent(); + child_label = folder_label; + } else { + break; } } } } +} - fn location( - &mut self, - file_label: Label, - start_line: usize, - start_column: usize, - end_line: usize, - end_column: usize, - ) -> Label { - let (loc_label, fresh) = self.global_id(&format!( - "loc,{{{}}},{},{},{},{}", - file_label, start_line, start_column, end_line, end_column - )); - if fresh { - self.add_tuple( - "locations_default", - vec![ - Arg::Label(loc_label), - Arg::Label(file_label), - Arg::Int(start_line), - Arg::Int(start_column), - Arg::Int(end_line), - Arg::Int(end_column), - ], - ); - } - loc_label - } - - fn comment(&mut self, text: String) { - self.trap_output.push(TrapEntry::Comment(text)); - } - - pub fn output(self, writer: &mut dyn Write) -> std::io::Result<()> { - write!(writer, "{}", Program(self.trap_output)) +fn location( + writer: &mut trap::Writer, + file_label: trap::Label, + start_line: usize, + start_column: usize, + end_line: usize, + end_column: usize, +) -> trap::Label { + let (loc_label, fresh) = writer.global_id(&format!( + "loc,{{{}}},{},{},{},{}", + file_label, start_line, start_column, end_line, end_column + )); + if fresh { + writer.add_tuple( + "locations_default", + vec![ + trap::Arg::Label(loc_label), + trap::Arg::Label(file_label), + trap::Arg::Int(start_line), + trap::Arg::Int(start_column), + trap::Arg::Int(end_line), + trap::Arg::Int(end_column), + ], + ); } + loc_label } /// Extracts the source file at `path`, which is assumed to be canonicalized. @@ -163,7 +114,7 @@ pub fn extract( language: Language, language_prefix: &str, schema: &NodeTypeMap, - trap_writer: &mut TrapWriter, + trap_writer: &mut trap::Writer, path: &Path, source: &[u8], ranges: &[Range], @@ -183,13 +134,13 @@ pub fn extract( parser.set_included_ranges(ranges).unwrap(); let tree = parser.parse(&source, None).expect("Failed to parse file"); trap_writer.comment(format!("Auto-generated TRAP file for {}", path.display())); - let file_label = &trap_writer.populate_file(path); + let file_label = populate_file(trap_writer, path); let mut visitor = Visitor { source, trap_writer, // TODO: should we handle path strings that are not valid UTF8 better? path: format!("{}", path.display()), - file_label: *file_label, + file_label, toplevel_child_counter: 0, stack: Vec::new(), language_prefix, @@ -201,33 +152,6 @@ pub fn extract( Ok(()) } -/// Escapes a string for use in a TRAP key, by replacing special characters with -/// HTML entities. -fn escape_key<'a, S: Into>>(key: S) -> Cow<'a, str> { - fn needs_escaping(c: char) -> bool { - matches!(c, '&' | '{' | '}' | '"' | '@' | '#') - } - - let key = key.into(); - if key.contains(needs_escaping) { - let mut escaped = String::with_capacity(2 * key.len()); - for c in key.chars() { - match c { - '&' => escaped.push_str("&"), - '{' => escaped.push_str("{"), - '}' => escaped.push_str("}"), - '"' => escaped.push_str("""), - '@' => escaped.push_str("@"), - '#' => escaped.push_str("#"), - _ => escaped.push(c), - } - } - Cow::Owned(escaped) - } else { - key - } -} - /// Normalizes the path according the common CodeQL specification. Assumes that /// `path` has already been canonicalized using `std::fs::canonicalize`. fn normalize_path(path: &Path) -> String { @@ -267,17 +191,9 @@ fn normalize_path(path: &Path) -> String { } } -fn full_id_for_file(path: &Path) -> String { - format!("{};sourcefile", escape_key(&normalize_path(path))) -} - -fn full_id_for_folder(path: &Path) -> String { - format!("{};folder", escape_key(&normalize_path(path))) -} - struct ChildNode { field_name: Option<&'static str>, - label: Label, + label: trap::Label, type_name: TypeName, } @@ -286,11 +202,11 @@ struct Visitor<'a> { path: String, /// The label to use whenever we need to refer to the `@file` entity of this /// source file. - file_label: Label, + file_label: trap::Label, /// The source code as a UTF-8 byte array source: &'a [u8], - /// A TrapWriter to accumulate trap entries - trap_writer: &'a mut TrapWriter, + /// A trap::Writer to accumulate trap entries + trap_writer: &'a mut trap::Writer, /// A counter for top-level child nodes toplevel_child_counter: usize, /// Language prefix @@ -303,7 +219,7 @@ struct Visitor<'a> { /// node the list containing the child data is popped from the stack and /// matched against the dbscheme for the node. If the expectations are met /// the corresponding row definitions are added to the trap_output. - stack: Vec<(Label, usize, Vec)>, + stack: Vec<(trap::Label, usize, Vec)>, } impl Visitor<'_> { @@ -311,19 +227,19 @@ impl Visitor<'_> { &mut self, error_message: String, full_error_message: String, - loc: Label, + loc: trap::Label, ) { error!("{}", full_error_message); let id = self.trap_writer.fresh_id(); self.trap_writer.add_tuple( "diagnostics", vec![ - Arg::Label(id), - Arg::Int(40), // severity 40 = error - Arg::String("parse_error".to_string()), - Arg::String(error_message), - Arg::String(full_error_message), - Arg::Label(loc), + trap::Arg::Label(id), + trap::Arg::Int(40), // severity 40 = error + trap::Arg::String("parse_error".to_string()), + trap::Arg::String(error_message), + trap::Arg::String(full_error_message), + trap::Arg::Label(loc), ], ); } @@ -335,7 +251,8 @@ impl Visitor<'_> { node: Node, ) { let (start_line, start_column, end_line, end_column) = location_for(self.source, node); - let loc = self.trap_writer.location( + let loc = location( + self.trap_writer, self.file_label, start_line, start_column, @@ -374,7 +291,8 @@ impl Visitor<'_> { } let (id, _, child_nodes) = self.stack.pop().expect("Vistor: empty stack"); let (start_line, start_column, end_line, end_column) = location_for(self.source, node); - let loc = self.trap_writer.location( + let loc = location( + self.trap_writer, self.file_label, start_line, start_column, @@ -404,18 +322,19 @@ impl Visitor<'_> { self.trap_writer.add_tuple( &format!("{}_ast_node_info", self.language_prefix), vec![ - Arg::Label(id), - Arg::Label(parent_id), - Arg::Int(parent_index), - Arg::Label(loc), + trap::Arg::Label(id), + trap::Arg::Label(parent_id), + trap::Arg::Int(parent_index), + trap::Arg::Label(loc), ], ); self.trap_writer.add_tuple( &format!("{}_tokeninfo", self.language_prefix), vec![ - Arg::Label(id), - Arg::Int(*kind_id), + trap::Arg::Label(id), + trap::Arg::Int(*kind_id), sliced_source_arg(self.source, node), + trap::Arg::Label(loc), ], ); } @@ -427,13 +346,13 @@ impl Visitor<'_> { self.trap_writer.add_tuple( &format!("{}_ast_node_info", self.language_prefix), vec![ - Arg::Label(id), - Arg::Label(parent_id), - Arg::Int(parent_index), - Arg::Label(loc), + trap::Arg::Label(id), + trap::Arg::Label(parent_id), + trap::Arg::Int(parent_index), + trap::Arg::Label(loc), ], ); - let mut all_args = vec![Arg::Label(id)]; + let mut all_args = vec![trap::Arg::Label(id)]; all_args.extend(args); self.trap_writer.add_tuple(table_name, all_args); } @@ -472,9 +391,9 @@ impl Visitor<'_> { node: &Node, fields: &[Field], child_nodes: &[ChildNode], - parent_id: Label, - ) -> Option> { - let mut map: Map<&Option, (&Field, Vec)> = Map::new(); + parent_id: trap::Label, + ) -> Option> { + let mut map: Map<&Option, (&Field, Vec)> = Map::new(); for field in fields { map.insert(&field.name, (field, Vec::new())); } @@ -488,9 +407,9 @@ impl Visitor<'_> { { // We can safely unwrap because type_matches checks the key is in the map. let (int_value, _) = int_mapping.get(&child_node.type_name.kind).unwrap(); - values.push(Arg::Int(*int_value)); + values.push(trap::Arg::Int(*int_value)); } else { - values.push(Arg::Label(child_node.label)); + values.push(trap::Arg::Label(child_node.label)); } } else if field.name.is_some() { let error_message = format!( @@ -569,9 +488,9 @@ impl Visitor<'_> { ); break; } - let mut args = vec![Arg::Label(parent_id)]; + let mut args = vec![trap::Arg::Label(parent_id)]; if *has_index { - args.push(Arg::Int(index)) + args.push(trap::Arg::Int(index)) } args.push(child_value.clone()); self.trap_writer.add_tuple(table_name, args); @@ -625,9 +544,9 @@ impl Visitor<'_> { } // Emit a slice of a source file as an Arg. -fn sliced_source_arg(source: &[u8], n: Node) -> Arg { +fn sliced_source_arg(source: &[u8], n: Node) -> trap::Arg { let range = n.byte_range(); - Arg::String(String::from_utf8_lossy(&source[range.start..range.end]).into_owned()) + trap::Arg::String(String::from_utf8_lossy(&source[range.start..range.end]).into_owned()) } // Emit a pair of `TrapEntry`s for the provided node, appropriately calibrated. @@ -699,59 +618,6 @@ fn traverse(tree: &Tree, visitor: &mut Visitor) { } } -pub struct Program(Vec); - -impl fmt::Display for Program { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let mut text = String::new(); - for trap_entry in &self.0 { - text.push_str(&format!("{}\n", trap_entry)); - } - write!(f, "{}", text) - } -} - -enum TrapEntry { - /// Maps the label to a fresh id, e.g. `#123=*`. - FreshId(Label), - /// Maps the label to a key, e.g. `#7=@"foo"`. - MapLabelToKey(Label, String), - /// foo_bar(arg*) - GenericTuple(String, Vec), - Comment(String), -} -impl fmt::Display for TrapEntry { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { - TrapEntry::FreshId(label) => write!(f, "{}=*", label), - TrapEntry::MapLabelToKey(label, key) => { - write!(f, "{}=@\"{}\"", label, key.replace("\"", "\"\"")) - } - TrapEntry::GenericTuple(name, args) => { - write!(f, "{}(", name)?; - for (index, arg) in args.iter().enumerate() { - if index > 0 { - write!(f, ",")?; - } - write!(f, "{}", arg)?; - } - write!(f, ")") - } - TrapEntry::Comment(line) => write!(f, "// {}", line), - } - } -} - -#[derive(Debug, Copy, Clone)] -// Identifiers of the form #0, #1... -struct Label(u32); - -impl fmt::Display for Label { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "#{:x}", self.0) - } -} - // Numeric indices. #[derive(Debug, Copy, Clone)] struct Index(usize); @@ -761,69 +627,3 @@ impl fmt::Display for Index { write!(f, "{}", self.0) } } - -// Some untyped argument to a TrapEntry. -#[derive(Debug, Clone)] -enum Arg { - Label(Label), - Int(usize), - String(String), -} - -const MAX_STRLEN: usize = 1048576; - -impl fmt::Display for Arg { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { - Arg::Label(x) => write!(f, "{}", x), - Arg::Int(x) => write!(f, "{}", x), - Arg::String(x) => write!( - f, - "\"{}\"", - limit_string(x, MAX_STRLEN).replace("\"", "\"\"") - ), - } - } -} - -/// Limit the length (in bytes) of a string. If the string's length in bytes is -/// less than or equal to the limit then the entire string is returned. Otherwise -/// the string is sliced at the provided limit. If there is a multi-byte character -/// at the limit then the returned slice will be slightly shorter than the limit to -/// avoid splitting that multi-byte character. -fn limit_string(string: &str, max_size: usize) -> &str { - if string.len() <= max_size { - return string; - } - let p = string.as_bytes(); - let mut index = max_size; - // We want to clip the string at [max_size]; however, the character at that position - // may span several bytes. We need to find the first byte of the character. In UTF-8 - // encoded data any byte that matches the bit pattern 10XXXXXX is not a start byte. - // Therefore we decrement the index as long as there are bytes matching this pattern. - // This ensures we cut the string at the border between one character and another. - while index > 0 && (p[index] & 0b11000000) == 0b10000000 { - index -= 1; - } - &string[0..index] -} - -#[test] -fn limit_string_test() { - assert_eq!("hello", limit_string(&"hello world".to_owned(), 5)); - assert_eq!("hi ☹", limit_string(&"hi ☹☹".to_owned(), 6)); - assert_eq!("hi ", limit_string(&"hi ☹☹".to_owned(), 5)); -} - -#[test] -fn escape_key_test() { - assert_eq!("foo!", escape_key("foo!")); - assert_eq!("foo{}", escape_key("foo{}")); - assert_eq!("{}", escape_key("{}")); - assert_eq!("", escape_key("")); - assert_eq!("/path/to/foo.rb", escape_key("/path/to/foo.rb")); - assert_eq!( - "/path/to/foo&{}"@#.rb", - escape_key("/path/to/foo&{}\"@#.rb") - ); -} diff --git a/ruby/extractor/src/main.rs b/ruby/extractor/src/main.rs index 7e4aa973518..4fc886a50ad 100644 --- a/ruby/extractor/src/main.rs +++ b/ruby/extractor/src/main.rs @@ -1,51 +1,15 @@ mod extractor; +mod trap; extern crate num_cpus; use clap::arg; -use flate2::write::GzEncoder; use rayon::prelude::*; use std::fs; -use std::io::{BufRead, BufWriter}; +use std::io::BufRead; use std::path::{Path, PathBuf}; use tree_sitter::{Language, Parser, Range}; -enum TrapCompression { - None, - Gzip, -} - -impl TrapCompression { - fn from_env() -> TrapCompression { - match std::env::var("CODEQL_RUBY_TRAP_COMPRESSION") { - Ok(method) => match TrapCompression::from_string(&method) { - Some(c) => c, - None => { - tracing::error!("Unknown compression method '{}'; using gzip.", &method); - TrapCompression::Gzip - } - }, - // Default compression method if the env var isn't set: - Err(_) => TrapCompression::Gzip, - } - } - - fn from_string(s: &str) -> Option { - match s.to_lowercase().as_ref() { - "none" => Some(TrapCompression::None), - "gzip" => Some(TrapCompression::Gzip), - _ => None, - } - } - - fn extension(&self) -> &str { - match self { - TrapCompression::None => "trap", - TrapCompression::Gzip => "trap.gz", - } - } -} - /** * Gets the number of threads the extractor should use, by reading the * CODEQL_THREADS environment variable and using it as described in the @@ -118,7 +82,7 @@ fn main() -> std::io::Result<()> { .value_of("output-dir") .expect("missing --output-dir"); let trap_dir = PathBuf::from(trap_dir); - let trap_compression = TrapCompression::from_env(); + let trap_compression = trap::Compression::from_env("CODEQL_RUBY_TRAP_COMPRESSION"); let file_list = matches.value_of("file-list").expect("missing --file-list"); let file_list = fs::File::open(file_list)?; @@ -141,7 +105,7 @@ fn main() -> std::io::Result<()> { let src_archive_file = path_for(&src_archive_dir, &path, ""); let mut source = std::fs::read(&path)?; let code_ranges; - let mut trap_writer = extractor::new_trap_writer(); + let mut trap_writer = trap::Writer::new(); if path.extension().map_or(false, |x| x == "erb") { tracing::info!("scanning: {}", path.display()); extractor::extract( @@ -181,33 +145,25 @@ fn main() -> std::io::Result<()> { )?; std::fs::create_dir_all(&src_archive_file.parent().unwrap())?; std::fs::copy(&path, &src_archive_file)?; - write_trap(&trap_dir, path, trap_writer, &trap_compression) + write_trap(&trap_dir, path, &trap_writer, trap_compression) }) .expect("failed to extract files"); let path = PathBuf::from("extras"); - let mut trap_writer = extractor::new_trap_writer(); - trap_writer.populate_empty_location(); - write_trap(&trap_dir, path, trap_writer, &trap_compression) + let mut trap_writer = trap::Writer::new(); + extractor::populate_empty_location(&mut trap_writer); + write_trap(&trap_dir, path, &trap_writer, trap_compression) } fn write_trap( trap_dir: &Path, path: PathBuf, - trap_writer: extractor::TrapWriter, - trap_compression: &TrapCompression, + trap_writer: &trap::Writer, + trap_compression: trap::Compression, ) -> std::io::Result<()> { let trap_file = path_for(trap_dir, &path, trap_compression.extension()); std::fs::create_dir_all(&trap_file.parent().unwrap())?; - let trap_file = std::fs::File::create(&trap_file)?; - let mut trap_file = BufWriter::new(trap_file); - match trap_compression { - TrapCompression::None => trap_writer.output(&mut trap_file), - TrapCompression::Gzip => { - let mut compressed_writer = GzEncoder::new(trap_file, flate2::Compression::fast()); - trap_writer.output(&mut compressed_writer) - } - } + trap_writer.write_to_file(&trap_file, trap_compression) } fn scan_erb( diff --git a/ruby/extractor/src/trap.rs b/ruby/extractor/src/trap.rs new file mode 100644 index 00000000000..d64c520c4cc --- /dev/null +++ b/ruby/extractor/src/trap.rs @@ -0,0 +1,272 @@ +use std::borrow::Cow; +use std::fmt; +use std::io::{BufWriter, Write}; +use std::path::Path; + +use flate2::write::GzEncoder; + +pub struct Writer { + /// The accumulated trap entries + trap_output: Vec, + /// A counter for generating fresh labels + counter: u32, + /// cache of global keys + global_keys: std::collections::HashMap, +} + +impl Writer { + pub fn new() -> Writer { + Writer { + counter: 0, + trap_output: Vec::new(), + global_keys: std::collections::HashMap::new(), + } + } + + pub fn fresh_id(&mut self) -> Label { + let label = Label(self.counter); + self.counter += 1; + self.trap_output.push(Entry::FreshId(label)); + label + } + + /// Gets a label that will hold the unique ID of the passed string at import time. + /// This can be used for incrementally importable TRAP files -- use globally unique + /// strings to compute a unique ID for table tuples. + /// + /// Note: You probably want to make sure that the key strings that you use are disjoint + /// for disjoint column types; the standard way of doing this is to prefix (or append) + /// the column type name to the ID. Thus, you might identify methods in Java by the + /// full ID "methods_com.method.package.DeclaringClass.method(argumentList)". + pub fn global_id(&mut self, key: &str) -> (Label, bool) { + if let Some(label) = self.global_keys.get(key) { + return (*label, false); + } + let label = Label(self.counter); + self.counter += 1; + self.global_keys.insert(key.to_owned(), label); + self.trap_output + .push(Entry::MapLabelToKey(label, key.to_owned())); + (label, true) + } + + pub fn add_tuple(&mut self, table_name: &str, args: Vec) { + self.trap_output + .push(Entry::GenericTuple(table_name.to_owned(), args)) + } + + pub fn comment(&mut self, text: String) { + self.trap_output.push(Entry::Comment(text)); + } + + pub fn write_to_file(&self, path: &Path, compression: Compression) -> std::io::Result<()> { + let trap_file = std::fs::File::create(path)?; + let mut trap_file = BufWriter::new(trap_file); + match compression { + Compression::None => self.write_trap_entries(&mut trap_file), + Compression::Gzip => { + let mut compressed_writer = GzEncoder::new(trap_file, flate2::Compression::fast()); + self.write_trap_entries(&mut compressed_writer) + } + } + } + + fn write_trap_entries(&self, file: &mut W) -> std::io::Result<()> { + for trap_entry in &self.trap_output { + writeln!(file, "{}", trap_entry)?; + } + std::io::Result::Ok(()) + } +} + +pub enum Entry { + /// Maps the label to a fresh id, e.g. `#123=*`. + FreshId(Label), + /// Maps the label to a key, e.g. `#7=@"foo"`. + MapLabelToKey(Label, String), + /// foo_bar(arg*) + GenericTuple(String, Vec), + Comment(String), +} + +impl fmt::Display for Entry { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match self { + Entry::FreshId(label) => write!(f, "{}=*", label), + Entry::MapLabelToKey(label, key) => { + write!(f, "{}=@\"{}\"", label, key.replace("\"", "\"\"")) + } + Entry::GenericTuple(name, args) => { + write!(f, "{}(", name)?; + for (index, arg) in args.iter().enumerate() { + if index > 0 { + write!(f, ",")?; + } + write!(f, "{}", arg)?; + } + write!(f, ")") + } + Entry::Comment(line) => write!(f, "// {}", line), + } + } +} + +#[derive(Debug, Copy, Clone)] +// Identifiers of the form #0, #1... +pub struct Label(u32); + +impl fmt::Display for Label { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "#{:x}", self.0) + } +} + +// Some untyped argument to a TrapEntry. +#[derive(Debug, Clone)] +pub enum Arg { + Label(Label), + Int(usize), + String(String), +} + +const MAX_STRLEN: usize = 1048576; + +impl fmt::Display for Arg { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match self { + Arg::Label(x) => write!(f, "{}", x), + Arg::Int(x) => write!(f, "{}", x), + Arg::String(x) => write!( + f, + "\"{}\"", + limit_string(x, MAX_STRLEN).replace("\"", "\"\"") + ), + } + } +} + +pub struct Program(Vec); + +impl fmt::Display for Program { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let mut text = String::new(); + for trap_entry in &self.0 { + text.push_str(&format!("{}\n", trap_entry)); + } + write!(f, "{}", text) + } +} + +pub fn full_id_for_file(normalized_path: &str) -> String { + format!("{};sourcefile", escape_key(normalized_path)) +} + +pub fn full_id_for_folder(normalized_path: &str) -> String { + format!("{};folder", escape_key(normalized_path)) +} + +/// Escapes a string for use in a TRAP key, by replacing special characters with +/// HTML entities. +fn escape_key<'a, S: Into>>(key: S) -> Cow<'a, str> { + fn needs_escaping(c: char) -> bool { + matches!(c, '&' | '{' | '}' | '"' | '@' | '#') + } + + let key = key.into(); + if key.contains(needs_escaping) { + let mut escaped = String::with_capacity(2 * key.len()); + for c in key.chars() { + match c { + '&' => escaped.push_str("&"), + '{' => escaped.push_str("{"), + '}' => escaped.push_str("}"), + '"' => escaped.push_str("""), + '@' => escaped.push_str("@"), + '#' => escaped.push_str("#"), + _ => escaped.push(c), + } + } + Cow::Owned(escaped) + } else { + key + } +} + +/// Limit the length (in bytes) of a string. If the string's length in bytes is +/// less than or equal to the limit then the entire string is returned. Otherwise +/// the string is sliced at the provided limit. If there is a multi-byte character +/// at the limit then the returned slice will be slightly shorter than the limit to +/// avoid splitting that multi-byte character. +fn limit_string(string: &str, max_size: usize) -> &str { + if string.len() <= max_size { + return string; + } + let p = string.as_bytes(); + let mut index = max_size; + // We want to clip the string at [max_size]; however, the character at that position + // may span several bytes. We need to find the first byte of the character. In UTF-8 + // encoded data any byte that matches the bit pattern 10XXXXXX is not a start byte. + // Therefore we decrement the index as long as there are bytes matching this pattern. + // This ensures we cut the string at the border between one character and another. + while index > 0 && (p[index] & 0b11000000) == 0b10000000 { + index -= 1; + } + &string[0..index] +} + +#[derive(Clone, Copy)] +pub enum Compression { + None, + Gzip, +} + +impl Compression { + pub fn from_env(var_name: &str) -> Compression { + match std::env::var(var_name) { + Ok(method) => match Compression::from_string(&method) { + Some(c) => c, + None => { + tracing::error!("Unknown compression method '{}'; using gzip.", &method); + Compression::Gzip + } + }, + // Default compression method if the env var isn't set: + Err(_) => Compression::Gzip, + } + } + + pub fn from_string(s: &str) -> Option { + match s.to_lowercase().as_ref() { + "none" => Some(Compression::None), + "gzip" => Some(Compression::Gzip), + _ => None, + } + } + + pub fn extension(&self) -> &str { + match self { + Compression::None => "trap", + Compression::Gzip => "trap.gz", + } + } +} + +#[test] +fn limit_string_test() { + assert_eq!("hello", limit_string(&"hello world".to_owned(), 5)); + assert_eq!("hi ☹", limit_string(&"hi ☹☹".to_owned(), 6)); + assert_eq!("hi ", limit_string(&"hi ☹☹".to_owned(), 5)); +} + +#[test] +fn escape_key_test() { + assert_eq!("foo!", escape_key("foo!")); + assert_eq!("foo{}", escape_key("foo{}")); + assert_eq!("{}", escape_key("{}")); + assert_eq!("", escape_key("")); + assert_eq!("/path/to/foo.rb", escape_key("/path/to/foo.rb")); + assert_eq!( + "/path/to/foo&{}"@#.rb", + escape_key("/path/to/foo&{}\"@#.rb") + ); +} From 0a8ecd3cf73296779e92966682fced6793cdce33 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 1 Nov 2021 16:31:30 +0000 Subject: [PATCH 461/736] Ruby: compute path string only once --- ruby/extractor/src/extractor.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ruby/extractor/src/extractor.rs b/ruby/extractor/src/extractor.rs index 6c462e11bb4..74a8db28030 100644 --- a/ruby/extractor/src/extractor.rs +++ b/ruby/extractor/src/extractor.rs @@ -119,27 +119,28 @@ pub fn extract( source: &[u8], ranges: &[Range], ) -> std::io::Result<()> { + let path_str = format!("{}", path.display()); let span = span!( Level::TRACE, "extract", - file = %path.display() + file = %path_str ); let _enter = span.enter(); - info!("extracting: {}", path.display()); + info!("extracting: {}", path_str); let mut parser = Parser::new(); parser.set_language(language).unwrap(); parser.set_included_ranges(ranges).unwrap(); let tree = parser.parse(&source, None).expect("Failed to parse file"); - trap_writer.comment(format!("Auto-generated TRAP file for {}", path.display())); + trap_writer.comment(format!("Auto-generated TRAP file for {}", path_str)); let file_label = populate_file(trap_writer, path); let mut visitor = Visitor { source, trap_writer, // TODO: should we handle path strings that are not valid UTF8 better? - path: format!("{}", path.display()), + path: &path_str, file_label, toplevel_child_counter: 0, stack: Vec::new(), @@ -199,7 +200,7 @@ struct ChildNode { struct Visitor<'a> { /// The file path of the source code (as string) - path: String, + path: &'a str, /// The label to use whenever we need to refer to the `@file` entity of this /// source file. file_label: trap::Label, From 8dae85e1b1a249f9a2c0836eb184df26f4fadce5 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 1 Nov 2021 17:19:26 +0000 Subject: [PATCH 462/736] Ruby: avoid repeated construction of table name strings --- ruby/extractor/src/extractor.rs | 44 ++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/ruby/extractor/src/extractor.rs b/ruby/extractor/src/extractor.rs index 74a8db28030..db280634ae5 100644 --- a/ruby/extractor/src/extractor.rs +++ b/ruby/extractor/src/extractor.rs @@ -136,17 +136,15 @@ pub fn extract( let tree = parser.parse(&source, None).expect("Failed to parse file"); trap_writer.comment(format!("Auto-generated TRAP file for {}", path_str)); let file_label = populate_file(trap_writer, path); - let mut visitor = Visitor { + let mut visitor = Visitor::new( source, trap_writer, // TODO: should we handle path strings that are not valid UTF8 better? - path: &path_str, + &path_str, file_label, - toplevel_child_counter: 0, - stack: Vec::new(), language_prefix, schema, - }; + ); traverse(&tree, &mut visitor); parser.reset(); @@ -210,8 +208,10 @@ struct Visitor<'a> { trap_writer: &'a mut trap::Writer, /// A counter for top-level child nodes toplevel_child_counter: usize, - /// Language prefix - language_prefix: &'a str, + /// Language-specific name of the AST info table + ast_node_info_table_name: String, + /// Language-specific name of the tokeninfo table + tokeninfo_table_name: String, /// A lookup table from type name to node types schema: &'a NodeTypeMap, /// A stack for gathering information from child nodes. Whenever a node is @@ -223,7 +223,28 @@ struct Visitor<'a> { stack: Vec<(trap::Label, usize, Vec)>, } -impl Visitor<'_> { +impl<'a> Visitor<'a> { + fn new( + source: &'a [u8], + trap_writer: &'a mut trap::Writer, + path: &'a str, + file_label: trap::Label, + language_prefix: &str, + schema: &'a NodeTypeMap, + ) -> Visitor<'a> { + Visitor { + path, + file_label, + source, + trap_writer, + toplevel_child_counter: 0, + ast_node_info_table_name: format!("{}_ast_node_info", language_prefix), + tokeninfo_table_name: format!("{}_tokeninfo", language_prefix), + schema, + stack: Vec::new(), + } + } + fn record_parse_error( &mut self, error_message: String, @@ -321,7 +342,7 @@ impl Visitor<'_> { match &table.kind { EntryKind::Token { kind_id, .. } => { self.trap_writer.add_tuple( - &format!("{}_ast_node_info", self.language_prefix), + &self.ast_node_info_table_name, vec![ trap::Arg::Label(id), trap::Arg::Label(parent_id), @@ -330,12 +351,11 @@ impl Visitor<'_> { ], ); self.trap_writer.add_tuple( - &format!("{}_tokeninfo", self.language_prefix), + &self.tokeninfo_table_name, vec![ trap::Arg::Label(id), trap::Arg::Int(*kind_id), sliced_source_arg(self.source, node), - trap::Arg::Label(loc), ], ); } @@ -345,7 +365,7 @@ impl Visitor<'_> { } => { if let Some(args) = self.complex_node(&node, fields, &child_nodes, id) { self.trap_writer.add_tuple( - &format!("{}_ast_node_info", self.language_prefix), + &self.ast_node_info_table_name, vec![ trap::Arg::Label(id), trap::Arg::Label(parent_id), From 7be106d7bba3cb89b55653570110766e86122f06 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 18 Jul 2022 15:01:25 +0200 Subject: [PATCH 463/736] Ruby: handle magic coding: comments --- ruby/Cargo.lock | Bin 15139 -> 17026 bytes ruby/extractor/Cargo.toml | 2 + ruby/extractor/src/main.rs | 207 +++++++++++++++++- ruby/ql/test/library-tests/ast/Ast.expected | 6 + .../library-tests/ast/TreeSitter.expected | 11 + .../test/library-tests/ast/ValueText.expected | 2 + .../library-tests/ast/misc/iso-8859-15.rb | 4 + 7 files changed, 231 insertions(+), 1 deletion(-) create mode 100644 ruby/ql/test/library-tests/ast/misc/iso-8859-15.rb diff --git a/ruby/Cargo.lock b/ruby/Cargo.lock index 1be66824a3e4184f0dabbebc3fec55848f3da549..c92ef0214a65f4bbdb4497085ba30c6a71d17e85 100644 GIT binary patch delta 1127 zcmaKrOHPzQ6oq3J`yIRO^5?&tLoOR$3Vpu=*%JBM_p~j2I-CwCq@%j@Vf!y z1~hELfh@+kKS(1F=}D#D=hSykeS7=q^QG_mi_2{+TRIv)A1u6WJCo7Yc;)`ezzxF? zpnG)X@p@vXHA2C}wL0}dfe{(7`WVe1dIV_bQ@_jA!d}6|lcbasQj?BWuYZ_{tc}Ln z-mSf)Z5p>p8{A!38Jt;rwYAe|{J)jS==HX|7+rL5(m!Ie@$U5ewTr#xbcgis>F(p| zvOA-C?C2x~KMc-CAAB9+0gHz&w!*<-3E6d_Vw zz&%cCCDJ@kXF>goSv&QkPG#xGy(bUUwcr#}DbhfQu{MTgK*1Ftl$_aOO~Sbr?E@yt zeO)0ysZM~r vR@Y}Zm~)tF_hxW&Z-4Rk((ReV;Xk!anznG*-K6)s8G@buOnYBy#X delta 25 gcmZo_Wn5gg;Ue#5VbQN5Y-u@(C8 usize { } } +lazy_static! { + static ref CP_NUMBER: regex::Regex = regex::Regex::new("cp([0-9]+)").unwrap(); +} + +fn encoding_from_name(encoding_name: &str) -> Option<&(dyn encoding::Encoding + Send + Sync)> { + match encoding::label::encoding_from_whatwg_label(&encoding_name) { + Some(e) => return Some(e), + None => { + if let Some(cap) = CP_NUMBER.captures(&encoding_name) { + return encoding::label::encoding_from_windows_code_page( + str::parse(cap.get(1).unwrap().as_str()).unwrap(), + ); + } else { + return None; + } + } + } +} + fn main() -> std::io::Result<()> { tracing_subscriber::fmt() .with_target(false) @@ -140,6 +163,7 @@ fn main() -> std::io::Result<()> { let path = PathBuf::from(line).canonicalize()?; let src_archive_file = path_for(&src_archive_dir, &path, ""); let mut source = std::fs::read(&path)?; + let mut needs_conversion = false; let code_ranges; let mut trap_writer = extractor::new_trap_writer(); if path.extension().map_or(false, |x| x == "erb") { @@ -168,6 +192,43 @@ fn main() -> std::io::Result<()> { } code_ranges = ranges; } else { + if let Some(encoding_name) = scan_coding_comment(&source) { + // If the input is already UTF-8 then there is no need to recode the source + // If the declared encoding is 'binary' or 'ascii-8bit' then it is not clear how + // to interpret characters. In this case it is probably best to leave the input + // unchanged. + if !encoding_name.eq_ignore_ascii_case("utf-8") + && !encoding_name.eq_ignore_ascii_case("ascii-8bit") + && !encoding_name.eq_ignore_ascii_case("binary") + { + if let Some(encoding) = encoding_from_name(&encoding_name) { + needs_conversion = + encoding.whatwg_name().unwrap_or_default() != "utf-8"; + if needs_conversion { + match encoding + .decode(&source, encoding::types::DecoderTrap::Replace) + { + Ok(str) => source = str.as_bytes().to_owned(), + Err(msg) => { + needs_conversion = false; + tracing::warn!( + "{}: character decoding failure: {} ({})", + &path.to_string_lossy(), + msg, + &encoding_name + ); + } + } + } + } else { + tracing::warn!( + "{}: unknown character encoding: '{}'", + &path.to_string_lossy(), + &encoding_name + ); + } + } + } code_ranges = vec![]; } extractor::extract( @@ -180,7 +241,11 @@ fn main() -> std::io::Result<()> { &code_ranges, )?; std::fs::create_dir_all(&src_archive_file.parent().unwrap())?; - std::fs::copy(&path, &src_archive_file)?; + if needs_conversion { + std::fs::write(&src_archive_file, &source)?; + } else { + std::fs::copy(&path, &src_archive_file)?; + } write_trap(&trap_dir, path, trap_writer, &trap_compression) }) .expect("failed to extract files"); @@ -299,3 +364,143 @@ fn path_for(dir: &Path, path: &Path, ext: &str) -> PathBuf { } result } + +fn skip_space(content: &[u8], index: usize) -> usize { + let mut index = index; + while index < content.len() { + let c = content[index] as char; + // white space except \n + let is_space = c == ' ' || ('\t'..='\r').contains(&c) && c != '\n'; + if !is_space { + break; + } + index += 1; + } + index +} + +fn scan_coding_comment(content: &[u8]) -> std::option::Option> { + let mut index = 0; + // skip UTF-8 BOM marker if there is one + if content.len() >= 3 && content[0] == 0xef && content[1] == 0xbb && content[2] == 0xbf { + index += 3; + } + // skip #! line if there is one + if index + 1 < content.len() + && content[index] as char == '#' + && content[index + 1] as char == '!' + { + index += 2; + while index < content.len() && content[index] as char != '\n' { + index += 1 + } + index += 1 + } + index = skip_space(content, index); + + if index >= content.len() || content[index] as char != '#' { + return None; + } + index += 1; + + const CODING: [char; 12] = ['C', 'c', 'O', 'o', 'D', 'd', 'I', 'i', 'N', 'n', 'G', 'g']; + let mut word_index = 0; + while index < content.len() && word_index < CODING.len() && content[index] as char != '\n' { + if content[index] as char == CODING[word_index] + || content[index] as char == CODING[word_index + 1] + { + word_index += 2 + } else { + word_index = 0; + } + index += 1; + } + if word_index < CODING.len() { + return None; + } + index = skip_space(content, index); + + if index < content.len() && content[index] as char != ':' && content[index] as char != '=' { + return None; + } + index += 1; + index = skip_space(content, index); + + let start = index; + while index < content.len() { + let c = content[index] as char; + if c == '-' || c == '_' || c.is_ascii_alphanumeric() { + index += 1; + } else { + break; + } + } + if index > start { + return Some(String::from_utf8_lossy(&content[start..index])); + } + None +} + +#[test] +fn test_scan_coding_comment() { + let text = "# encoding: utf-8"; + let result = scan_coding_comment(text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + let text = "#coding:utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + let text = "# foo\n# encoding: utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, None); + + let text = "# encoding: latin1 encoding: utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("latin1".into())); + + let text = "# encoding: nonsense"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("nonsense".into())); + + let text = "# coding = utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + let text = "# CODING = utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + let text = "# CoDiNg = utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + let text = "# blah blahblahcoding = utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + // unicode BOM is ignored + let text = "\u{FEFF}# encoding: utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + let text = "\u{FEFF} # encoding: utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + let text = "#! /usr/bin/env ruby\n # encoding: utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + let text = "\u{FEFF}#! /usr/bin/env ruby\n # encoding: utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + + // A #! must be the first thing on a line, otherwise it's a normal comment + let text = " #! /usr/bin/env ruby encoding = utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, Some("utf-8".into())); + let text = " #! /usr/bin/env ruby \n # encoding = utf-8"; + let result = scan_coding_comment(&text.as_bytes()); + assert_eq!(result, None); +} diff --git a/ruby/ql/test/library-tests/ast/Ast.expected b/ruby/ql/test/library-tests/ast/Ast.expected index 0a16654594d..4cb29e0f033 100644 --- a/ruby/ql/test/library-tests/ast/Ast.expected +++ b/ruby/ql/test/library-tests/ast/Ast.expected @@ -1762,6 +1762,12 @@ escape_sequences/escapes.rb: # 93| getStmt: [SymbolLiteral] :"\C-?" # 93| getComponent: [StringEscapeSequenceComponent] \C # 93| getComponent: [StringTextComponent] -? +misc/iso-8859-15.rb: +# 1| [Toplevel] iso-8859-15.rb +# 4| getStmt: [MethodCall] call to print +# 4| getReceiver: [SelfVariableAccess] self +# 4| getArgument: [StringLiteral] "EUR = €" +# 4| getComponent: [StringTextComponent] EUR = € literals/literals.rb: # 1| [Toplevel] literals.rb # 2| getStmt: [NilLiteral] nil diff --git a/ruby/ql/test/library-tests/ast/TreeSitter.expected b/ruby/ql/test/library-tests/ast/TreeSitter.expected index 67a909d9002..cb5a17ebebb 100644 --- a/ruby/ql/test/library-tests/ast/TreeSitter.expected +++ b/ruby/ql/test/library-tests/ast/TreeSitter.expected @@ -4604,6 +4604,17 @@ literals/literals.rb: # 193| cat file.txt # 193| # 195| 1: [HeredocEnd] SCRIPT +misc/iso-8859-15.rb: +# 1| [Program] Program +# 4| 0: [Call] Call +# 4| 0: [Identifier] print +# 4| 1: [ArgumentList] ArgumentList +# 4| 0: [String] String +# 4| 0: [ReservedWord] " +# 4| 1: [StringContent] EUR = € +# 4| 2: [ReservedWord] " +# 1| [Comment] #! /usr/bin/ruby +# 2| [Comment] # coding: iso-8859-15 misc/misc.erb: # 2| [Program] Program # 2| 0: [Call] Call diff --git a/ruby/ql/test/library-tests/ast/ValueText.expected b/ruby/ql/test/library-tests/ast/ValueText.expected index ecf7399a99a..e66838fbe2c 100644 --- a/ruby/ql/test/library-tests/ast/ValueText.expected +++ b/ruby/ql/test/library-tests/ast/ValueText.expected @@ -717,6 +717,7 @@ exprValue | literals/literals.rb:198:8:198:8 | 5 | 5 | int | | literals/literals.rb:199:2:199:2 | :y | :y | symbol | | literals/literals.rb:199:7:199:7 | :Z | :Z | symbol | +| misc/iso-8859-15.rb:4:7:4:17 | "EUR = \u20ac" | EUR = \u20ac | string | | misc/misc.erb:2:15:2:37 | "main_include_admin.js" | main_include_admin.js | string | | misc/misc.rb:1:7:1:11 | "bar" | bar | string | | misc/misc.rb:3:7:3:9 | foo | foo | string | @@ -1592,6 +1593,7 @@ exprCfgNodeValue | literals/literals.rb:198:8:198:8 | 5 | 5 | int | | literals/literals.rb:199:2:199:2 | :y | :y | symbol | | literals/literals.rb:199:7:199:7 | :Z | :Z | symbol | +| misc/iso-8859-15.rb:4:7:4:17 | "EUR = \u20ac" | EUR = \u20ac | string | | misc/misc.erb:2:15:2:37 | "main_include_admin.js" | main_include_admin.js | string | | misc/misc.rb:1:7:1:11 | "bar" | bar | string | | misc/misc.rb:3:7:3:9 | foo | foo | string | diff --git a/ruby/ql/test/library-tests/ast/misc/iso-8859-15.rb b/ruby/ql/test/library-tests/ast/misc/iso-8859-15.rb new file mode 100644 index 00000000000..d5fd8ae9456 --- /dev/null +++ b/ruby/ql/test/library-tests/ast/misc/iso-8859-15.rb @@ -0,0 +1,4 @@ +#! /usr/bin/ruby +# coding: iso-8859-15 + +print "EUR = ¤" \ No newline at end of file From 5f96c92fac08025fad9098442ea370308dc78201 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Thu, 21 Jul 2022 17:38:33 +0100 Subject: [PATCH 464/736] QL: sync Ruby extractor changes --- ql/extractor/src/extractor.rs | 505 +++++++++++----------------------- ql/extractor/src/main.rs | 66 +---- ql/extractor/src/trap.rs | 272 ++++++++++++++++++ 3 files changed, 446 insertions(+), 397 deletions(-) create mode 100644 ql/extractor/src/trap.rs diff --git a/ql/extractor/src/extractor.rs b/ql/extractor/src/extractor.rs index 8cdaff1b738..db280634ae5 100644 --- a/ql/extractor/src/extractor.rs +++ b/ql/extractor/src/extractor.rs @@ -1,161 +1,112 @@ +use crate::trap; use node_types::{EntryKind, Field, NodeTypeMap, Storage, TypeName}; -use std::borrow::Cow; use std::collections::BTreeMap as Map; use std::collections::BTreeSet as Set; use std::fmt; -use std::io::Write; use std::path::Path; use tracing::{error, info, span, Level}; use tree_sitter::{Language, Node, Parser, Range, Tree}; -pub struct TrapWriter { - /// The accumulated trap entries - trap_output: Vec, - /// A counter for generating fresh labels - counter: u32, - /// cache of global keys - global_keys: std::collections::HashMap, +pub fn populate_file(writer: &mut trap::Writer, absolute_path: &Path) -> trap::Label { + let (file_label, fresh) = + writer.global_id(&trap::full_id_for_file(&normalize_path(absolute_path))); + if fresh { + writer.add_tuple( + "files", + vec![ + trap::Arg::Label(file_label), + trap::Arg::String(normalize_path(absolute_path)), + ], + ); + populate_parent_folders(writer, file_label, absolute_path.parent()); + } + file_label } -pub fn new_trap_writer() -> TrapWriter { - TrapWriter { - counter: 0, - trap_output: Vec::new(), - global_keys: std::collections::HashMap::new(), +fn populate_empty_file(writer: &mut trap::Writer) -> trap::Label { + let (file_label, fresh) = writer.global_id("empty;sourcefile"); + if fresh { + writer.add_tuple( + "files", + vec![ + trap::Arg::Label(file_label), + trap::Arg::String("".to_string()), + ], + ); } + file_label } -impl TrapWriter { - /// Gets a label that will hold the unique ID of the passed string at import time. - /// This can be used for incrementally importable TRAP files -- use globally unique - /// strings to compute a unique ID for table tuples. - /// - /// Note: You probably want to make sure that the key strings that you use are disjoint - /// for disjoint column types; the standard way of doing this is to prefix (or append) - /// the column type name to the ID. Thus, you might identify methods in Java by the - /// full ID "methods_com.method.package.DeclaringClass.method(argumentList)". +pub fn populate_empty_location(writer: &mut trap::Writer) { + let file_label = populate_empty_file(writer); + location(writer, file_label, 0, 0, 0, 0); +} - fn fresh_id(&mut self) -> Label { - let label = Label(self.counter); - self.counter += 1; - self.trap_output.push(TrapEntry::FreshId(label)); - label - } - - fn global_id(&mut self, key: &str) -> (Label, bool) { - if let Some(label) = self.global_keys.get(key) { - return (*label, false); - } - let label = Label(self.counter); - self.counter += 1; - self.global_keys.insert(key.to_owned(), label); - self.trap_output - .push(TrapEntry::MapLabelToKey(label, key.to_owned())); - (label, true) - } - - fn add_tuple(&mut self, table_name: &str, args: Vec) { - self.trap_output - .push(TrapEntry::GenericTuple(table_name.to_owned(), args)) - } - - fn populate_file(&mut self, absolute_path: &Path) -> Label { - let (file_label, fresh) = self.global_id(&full_id_for_file(absolute_path)); - if fresh { - self.add_tuple( - "files", - vec![ - Arg::Label(file_label), - Arg::String(normalize_path(absolute_path)), - ], - ); - self.populate_parent_folders(file_label, absolute_path.parent()); - } - file_label - } - - fn populate_empty_file(&mut self) -> Label { - let (file_label, fresh) = self.global_id("empty;sourcefile"); - if fresh { - self.add_tuple( - "files", - vec![Arg::Label(file_label), Arg::String("".to_string())], - ); - } - file_label - } - - pub fn populate_empty_location(&mut self) { - let file_label = self.populate_empty_file(); - self.location(file_label, 0, 0, 0, 0); - } - - fn populate_parent_folders(&mut self, child_label: Label, path: Option<&Path>) { - let mut path = path; - let mut child_label = child_label; - loop { - match path { - None => break, - Some(folder) => { - let (folder_label, fresh) = self.global_id(&full_id_for_folder(folder)); - self.add_tuple( - "containerparent", - vec![Arg::Label(folder_label), Arg::Label(child_label)], +pub fn populate_parent_folders( + writer: &mut trap::Writer, + child_label: trap::Label, + path: Option<&Path>, +) { + let mut path = path; + let mut child_label = child_label; + loop { + match path { + None => break, + Some(folder) => { + let (folder_label, fresh) = + writer.global_id(&trap::full_id_for_folder(&normalize_path(folder))); + writer.add_tuple( + "containerparent", + vec![ + trap::Arg::Label(folder_label), + trap::Arg::Label(child_label), + ], + ); + if fresh { + writer.add_tuple( + "folders", + vec![ + trap::Arg::Label(folder_label), + trap::Arg::String(normalize_path(folder)), + ], ); - if fresh { - self.add_tuple( - "folders", - vec![ - Arg::Label(folder_label), - Arg::String(normalize_path(folder)), - ], - ); - path = folder.parent(); - child_label = folder_label; - } else { - break; - } + path = folder.parent(); + child_label = folder_label; + } else { + break; } } } } +} - fn location( - &mut self, - file_label: Label, - start_line: usize, - start_column: usize, - end_line: usize, - end_column: usize, - ) -> Label { - let (loc_label, fresh) = self.global_id(&format!( - "loc,{{{}}},{},{},{},{}", - file_label, start_line, start_column, end_line, end_column - )); - if fresh { - self.add_tuple( - "locations_default", - vec![ - Arg::Label(loc_label), - Arg::Label(file_label), - Arg::Int(start_line), - Arg::Int(start_column), - Arg::Int(end_line), - Arg::Int(end_column), - ], - ); - } - loc_label - } - - fn comment(&mut self, text: String) { - self.trap_output.push(TrapEntry::Comment(text)); - } - - pub fn output(self, writer: &mut dyn Write) -> std::io::Result<()> { - write!(writer, "{}", Program(self.trap_output)) +fn location( + writer: &mut trap::Writer, + file_label: trap::Label, + start_line: usize, + start_column: usize, + end_line: usize, + end_column: usize, +) -> trap::Label { + let (loc_label, fresh) = writer.global_id(&format!( + "loc,{{{}}},{},{},{},{}", + file_label, start_line, start_column, end_line, end_column + )); + if fresh { + writer.add_tuple( + "locations_default", + vec![ + trap::Arg::Label(loc_label), + trap::Arg::Label(file_label), + trap::Arg::Int(start_line), + trap::Arg::Int(start_column), + trap::Arg::Int(end_line), + trap::Arg::Int(end_column), + ], + ); } + loc_label } /// Extracts the source file at `path`, which is assumed to be canonicalized. @@ -163,71 +114,43 @@ pub fn extract( language: Language, language_prefix: &str, schema: &NodeTypeMap, - trap_writer: &mut TrapWriter, + trap_writer: &mut trap::Writer, path: &Path, source: &[u8], ranges: &[Range], ) -> std::io::Result<()> { + let path_str = format!("{}", path.display()); let span = span!( Level::TRACE, "extract", - file = %path.display() + file = %path_str ); let _enter = span.enter(); - info!("extracting: {}", path.display()); + info!("extracting: {}", path_str); let mut parser = Parser::new(); parser.set_language(language).unwrap(); parser.set_included_ranges(ranges).unwrap(); let tree = parser.parse(&source, None).expect("Failed to parse file"); - trap_writer.comment(format!("Auto-generated TRAP file for {}", path.display())); - let file_label = &trap_writer.populate_file(path); - let mut visitor = Visitor { + trap_writer.comment(format!("Auto-generated TRAP file for {}", path_str)); + let file_label = populate_file(trap_writer, path); + let mut visitor = Visitor::new( source, trap_writer, // TODO: should we handle path strings that are not valid UTF8 better? - path: format!("{}", path.display()), - file_label: *file_label, - toplevel_child_counter: 0, - stack: Vec::new(), + &path_str, + file_label, language_prefix, schema, - }; + ); traverse(&tree, &mut visitor); parser.reset(); Ok(()) } -/// Escapes a string for use in a TRAP key, by replacing special characters with -/// HTML entities. -fn escape_key<'a, S: Into>>(key: S) -> Cow<'a, str> { - fn needs_escaping(c: char) -> bool { - matches!(c, '&' | '{' | '}' | '"' | '@' | '#') - } - - let key = key.into(); - if key.contains(needs_escaping) { - let mut escaped = String::with_capacity(2 * key.len()); - for c in key.chars() { - match c { - '&' => escaped.push_str("&"), - '{' => escaped.push_str("{"), - '}' => escaped.push_str("}"), - '"' => escaped.push_str("""), - '@' => escaped.push_str("@"), - '#' => escaped.push_str("#"), - _ => escaped.push(c), - } - } - Cow::Owned(escaped) - } else { - key - } -} - /// Normalizes the path according the common CodeQL specification. Assumes that /// `path` has already been canonicalized using `std::fs::canonicalize`. fn normalize_path(path: &Path) -> String { @@ -267,34 +190,28 @@ fn normalize_path(path: &Path) -> String { } } -fn full_id_for_file(path: &Path) -> String { - format!("{};sourcefile", escape_key(&normalize_path(path))) -} - -fn full_id_for_folder(path: &Path) -> String { - format!("{};folder", escape_key(&normalize_path(path))) -} - struct ChildNode { field_name: Option<&'static str>, - label: Label, + label: trap::Label, type_name: TypeName, } struct Visitor<'a> { /// The file path of the source code (as string) - path: String, + path: &'a str, /// The label to use whenever we need to refer to the `@file` entity of this /// source file. - file_label: Label, + file_label: trap::Label, /// The source code as a UTF-8 byte array source: &'a [u8], - /// A TrapWriter to accumulate trap entries - trap_writer: &'a mut TrapWriter, + /// A trap::Writer to accumulate trap entries + trap_writer: &'a mut trap::Writer, /// A counter for top-level child nodes toplevel_child_counter: usize, - /// Language prefix - language_prefix: &'a str, + /// Language-specific name of the AST info table + ast_node_info_table_name: String, + /// Language-specific name of the tokeninfo table + tokeninfo_table_name: String, /// A lookup table from type name to node types schema: &'a NodeTypeMap, /// A stack for gathering information from child nodes. Whenever a node is @@ -303,27 +220,48 @@ struct Visitor<'a> { /// node the list containing the child data is popped from the stack and /// matched against the dbscheme for the node. If the expectations are met /// the corresponding row definitions are added to the trap_output. - stack: Vec<(Label, usize, Vec)>, + stack: Vec<(trap::Label, usize, Vec)>, } -impl Visitor<'_> { +impl<'a> Visitor<'a> { + fn new( + source: &'a [u8], + trap_writer: &'a mut trap::Writer, + path: &'a str, + file_label: trap::Label, + language_prefix: &str, + schema: &'a NodeTypeMap, + ) -> Visitor<'a> { + Visitor { + path, + file_label, + source, + trap_writer, + toplevel_child_counter: 0, + ast_node_info_table_name: format!("{}_ast_node_info", language_prefix), + tokeninfo_table_name: format!("{}_tokeninfo", language_prefix), + schema, + stack: Vec::new(), + } + } + fn record_parse_error( &mut self, error_message: String, full_error_message: String, - loc: Label, + loc: trap::Label, ) { error!("{}", full_error_message); let id = self.trap_writer.fresh_id(); self.trap_writer.add_tuple( "diagnostics", vec![ - Arg::Label(id), - Arg::Int(40), // severity 40 = error - Arg::String("parse_error".to_string()), - Arg::String(error_message), - Arg::String(full_error_message), - Arg::Label(loc), + trap::Arg::Label(id), + trap::Arg::Int(40), // severity 40 = error + trap::Arg::String("parse_error".to_string()), + trap::Arg::String(error_message), + trap::Arg::String(full_error_message), + trap::Arg::Label(loc), ], ); } @@ -335,7 +273,8 @@ impl Visitor<'_> { node: Node, ) { let (start_line, start_column, end_line, end_column) = location_for(self.source, node); - let loc = self.trap_writer.location( + let loc = location( + self.trap_writer, self.file_label, start_line, start_column, @@ -374,7 +313,8 @@ impl Visitor<'_> { } let (id, _, child_nodes) = self.stack.pop().expect("Vistor: empty stack"); let (start_line, start_column, end_line, end_column) = location_for(self.source, node); - let loc = self.trap_writer.location( + let loc = location( + self.trap_writer, self.file_label, start_line, start_column, @@ -402,19 +342,19 @@ impl Visitor<'_> { match &table.kind { EntryKind::Token { kind_id, .. } => { self.trap_writer.add_tuple( - &format!("{}_ast_node_info", self.language_prefix), + &self.ast_node_info_table_name, vec![ - Arg::Label(id), - Arg::Label(parent_id), - Arg::Int(parent_index), - Arg::Label(loc), + trap::Arg::Label(id), + trap::Arg::Label(parent_id), + trap::Arg::Int(parent_index), + trap::Arg::Label(loc), ], ); self.trap_writer.add_tuple( - &format!("{}_tokeninfo", self.language_prefix), + &self.tokeninfo_table_name, vec![ - Arg::Label(id), - Arg::Int(*kind_id), + trap::Arg::Label(id), + trap::Arg::Int(*kind_id), sliced_source_arg(self.source, node), ], ); @@ -425,15 +365,15 @@ impl Visitor<'_> { } => { if let Some(args) = self.complex_node(&node, fields, &child_nodes, id) { self.trap_writer.add_tuple( - &format!("{}_ast_node_info", self.language_prefix), + &self.ast_node_info_table_name, vec![ - Arg::Label(id), - Arg::Label(parent_id), - Arg::Int(parent_index), - Arg::Label(loc), + trap::Arg::Label(id), + trap::Arg::Label(parent_id), + trap::Arg::Int(parent_index), + trap::Arg::Label(loc), ], ); - let mut all_args = vec![Arg::Label(id)]; + let mut all_args = vec![trap::Arg::Label(id)]; all_args.extend(args); self.trap_writer.add_tuple(table_name, all_args); } @@ -472,9 +412,9 @@ impl Visitor<'_> { node: &Node, fields: &[Field], child_nodes: &[ChildNode], - parent_id: Label, - ) -> Option> { - let mut map: Map<&Option, (&Field, Vec)> = Map::new(); + parent_id: trap::Label, + ) -> Option> { + let mut map: Map<&Option, (&Field, Vec)> = Map::new(); for field in fields { map.insert(&field.name, (field, Vec::new())); } @@ -488,9 +428,9 @@ impl Visitor<'_> { { // We can safely unwrap because type_matches checks the key is in the map. let (int_value, _) = int_mapping.get(&child_node.type_name.kind).unwrap(); - values.push(Arg::Int(*int_value)); + values.push(trap::Arg::Int(*int_value)); } else { - values.push(Arg::Label(child_node.label)); + values.push(trap::Arg::Label(child_node.label)); } } else if field.name.is_some() { let error_message = format!( @@ -569,9 +509,9 @@ impl Visitor<'_> { ); break; } - let mut args = vec![Arg::Label(parent_id)]; + let mut args = vec![trap::Arg::Label(parent_id)]; if *has_index { - args.push(Arg::Int(index)) + args.push(trap::Arg::Int(index)) } args.push(child_value.clone()); self.trap_writer.add_tuple(table_name, args); @@ -625,9 +565,9 @@ impl Visitor<'_> { } // Emit a slice of a source file as an Arg. -fn sliced_source_arg(source: &[u8], n: Node) -> Arg { +fn sliced_source_arg(source: &[u8], n: Node) -> trap::Arg { let range = n.byte_range(); - Arg::String(String::from_utf8_lossy(&source[range.start..range.end]).into_owned()) + trap::Arg::String(String::from_utf8_lossy(&source[range.start..range.end]).into_owned()) } // Emit a pair of `TrapEntry`s for the provided node, appropriately calibrated. @@ -699,59 +639,6 @@ fn traverse(tree: &Tree, visitor: &mut Visitor) { } } -pub struct Program(Vec); - -impl fmt::Display for Program { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let mut text = String::new(); - for trap_entry in &self.0 { - text.push_str(&format!("{}\n", trap_entry)); - } - write!(f, "{}", text) - } -} - -enum TrapEntry { - /// Maps the label to a fresh id, e.g. `#123=*`. - FreshId(Label), - /// Maps the label to a key, e.g. `#7=@"foo"`. - MapLabelToKey(Label, String), - /// foo_bar(arg*) - GenericTuple(String, Vec), - Comment(String), -} -impl fmt::Display for TrapEntry { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { - TrapEntry::FreshId(label) => write!(f, "{}=*", label), - TrapEntry::MapLabelToKey(label, key) => { - write!(f, "{}=@\"{}\"", label, key.replace("\"", "\"\"")) - } - TrapEntry::GenericTuple(name, args) => { - write!(f, "{}(", name)?; - for (index, arg) in args.iter().enumerate() { - if index > 0 { - write!(f, ",")?; - } - write!(f, "{}", arg)?; - } - write!(f, ")") - } - TrapEntry::Comment(line) => write!(f, "// {}", line), - } - } -} - -#[derive(Debug, Copy, Clone)] -// Identifiers of the form #0, #1... -struct Label(u32); - -impl fmt::Display for Label { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "#{:x}", self.0) - } -} - // Numeric indices. #[derive(Debug, Copy, Clone)] struct Index(usize); @@ -761,69 +648,3 @@ impl fmt::Display for Index { write!(f, "{}", self.0) } } - -// Some untyped argument to a TrapEntry. -#[derive(Debug, Clone)] -enum Arg { - Label(Label), - Int(usize), - String(String), -} - -const MAX_STRLEN: usize = 1048576; - -impl fmt::Display for Arg { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { - Arg::Label(x) => write!(f, "{}", x), - Arg::Int(x) => write!(f, "{}", x), - Arg::String(x) => write!( - f, - "\"{}\"", - limit_string(x, MAX_STRLEN).replace("\"", "\"\"") - ), - } - } -} - -/// Limit the length (in bytes) of a string. If the string's length in bytes is -/// less than or equal to the limit then the entire string is returned. Otherwise -/// the string is sliced at the provided limit. If there is a multi-byte character -/// at the limit then the returned slice will be slightly shorter than the limit to -/// avoid splitting that multi-byte character. -fn limit_string(string: &str, max_size: usize) -> &str { - if string.len() <= max_size { - return string; - } - let p = string.as_bytes(); - let mut index = max_size; - // We want to clip the string at [max_size]; however, the character at that position - // may span several bytes. We need to find the first byte of the character. In UTF-8 - // encoded data any byte that matches the bit pattern 10XXXXXX is not a start byte. - // Therefore we decrement the index as long as there are bytes matching this pattern. - // This ensures we cut the string at the border between one character and another. - while index > 0 && (p[index] & 0b11000000) == 0b10000000 { - index -= 1; - } - &string[0..index] -} - -#[test] -fn limit_string_test() { - assert_eq!("hello", limit_string(&"hello world".to_owned(), 5)); - assert_eq!("hi ☹", limit_string(&"hi ☹☹".to_owned(), 6)); - assert_eq!("hi ", limit_string(&"hi ☹☹".to_owned(), 5)); -} - -#[test] -fn escape_key_test() { - assert_eq!("foo!", escape_key("foo!")); - assert_eq!("foo{}", escape_key("foo{}")); - assert_eq!("{}", escape_key("{}")); - assert_eq!("", escape_key("")); - assert_eq!("/path/to/foo.rb", escape_key("/path/to/foo.rb")); - assert_eq!( - "/path/to/foo&{}"@#.rb", - escape_key("/path/to/foo&{}\"@#.rb") - ); -} diff --git a/ql/extractor/src/main.rs b/ql/extractor/src/main.rs index 7f8ab87a7ca..9584304c430 100644 --- a/ql/extractor/src/main.rs +++ b/ql/extractor/src/main.rs @@ -1,49 +1,13 @@ mod extractor; +mod trap; extern crate num_cpus; -use flate2::write::GzEncoder; use rayon::prelude::*; use std::fs; -use std::io::{BufRead, BufWriter}; +use std::io::BufRead; use std::path::{Path, PathBuf}; -enum TrapCompression { - None, - Gzip, -} - -impl TrapCompression { - fn from_env() -> TrapCompression { - match std::env::var("CODEQL_QL_TRAP_COMPRESSION") { - Ok(method) => match TrapCompression::from_string(&method) { - Some(c) => c, - None => { - tracing::error!("Unknown compression method '{}'; using gzip.", &method); - TrapCompression::Gzip - } - }, - // Default compression method if the env var isn't set: - Err(_) => TrapCompression::Gzip, - } - } - - fn from_string(s: &str) -> Option { - match s.to_lowercase().as_ref() { - "none" => Some(TrapCompression::None), - "gzip" => Some(TrapCompression::Gzip), - _ => None, - } - } - - fn extension(&self) -> &str { - match self { - TrapCompression::None => "trap", - TrapCompression::Gzip => "trap.gz", - } - } -} - /** * Gets the number of threads the extractor should use, by reading the * CODEQL_THREADS environment variable and using it as described in the @@ -115,7 +79,7 @@ fn main() -> std::io::Result<()> { .value_of("output-dir") .expect("missing --output-dir"); let trap_dir = PathBuf::from(trap_dir); - let trap_compression = TrapCompression::from_env(); + let trap_compression = trap::Compression::from_env("CODEQL_QL_TRAP_COMPRESSION"); let file_list = matches.value_of("file-list").expect("missing --file-list"); let file_list = fs::File::open(file_list)?; @@ -140,7 +104,7 @@ fn main() -> std::io::Result<()> { let src_archive_file = path_for(&src_archive_dir, &path, ""); let source = std::fs::read(&path)?; let code_ranges = vec![]; - let mut trap_writer = extractor::new_trap_writer(); + let mut trap_writer = trap::Writer::new(); extractor::extract( language, "ql", @@ -152,33 +116,25 @@ fn main() -> std::io::Result<()> { )?; std::fs::create_dir_all(&src_archive_file.parent().unwrap())?; std::fs::copy(&path, &src_archive_file)?; - write_trap(&trap_dir, path, trap_writer, &trap_compression) + write_trap(&trap_dir, path, &trap_writer, trap_compression) }) .expect("failed to extract files"); let path = PathBuf::from("extras"); - let mut trap_writer = extractor::new_trap_writer(); - trap_writer.populate_empty_location(); - write_trap(&trap_dir, path, trap_writer, &trap_compression) + let mut trap_writer = trap::Writer::new(); + extractor::populate_empty_location(&mut trap_writer); + write_trap(&trap_dir, path, &trap_writer, trap_compression) } fn write_trap( trap_dir: &Path, path: PathBuf, - trap_writer: extractor::TrapWriter, - trap_compression: &TrapCompression, + trap_writer: &trap::Writer, + trap_compression: trap::Compression, ) -> std::io::Result<()> { let trap_file = path_for(trap_dir, &path, trap_compression.extension()); std::fs::create_dir_all(&trap_file.parent().unwrap())?; - let trap_file = std::fs::File::create(&trap_file)?; - let mut trap_file = BufWriter::new(trap_file); - match trap_compression { - TrapCompression::None => trap_writer.output(&mut trap_file), - TrapCompression::Gzip => { - let mut compressed_writer = GzEncoder::new(trap_file, flate2::Compression::fast()); - trap_writer.output(&mut compressed_writer) - } - } + trap_writer.write_to_file(&trap_file, trap_compression) } fn path_for(dir: &Path, path: &Path, ext: &str) -> PathBuf { diff --git a/ql/extractor/src/trap.rs b/ql/extractor/src/trap.rs new file mode 100644 index 00000000000..d64c520c4cc --- /dev/null +++ b/ql/extractor/src/trap.rs @@ -0,0 +1,272 @@ +use std::borrow::Cow; +use std::fmt; +use std::io::{BufWriter, Write}; +use std::path::Path; + +use flate2::write::GzEncoder; + +pub struct Writer { + /// The accumulated trap entries + trap_output: Vec, + /// A counter for generating fresh labels + counter: u32, + /// cache of global keys + global_keys: std::collections::HashMap, +} + +impl Writer { + pub fn new() -> Writer { + Writer { + counter: 0, + trap_output: Vec::new(), + global_keys: std::collections::HashMap::new(), + } + } + + pub fn fresh_id(&mut self) -> Label { + let label = Label(self.counter); + self.counter += 1; + self.trap_output.push(Entry::FreshId(label)); + label + } + + /// Gets a label that will hold the unique ID of the passed string at import time. + /// This can be used for incrementally importable TRAP files -- use globally unique + /// strings to compute a unique ID for table tuples. + /// + /// Note: You probably want to make sure that the key strings that you use are disjoint + /// for disjoint column types; the standard way of doing this is to prefix (or append) + /// the column type name to the ID. Thus, you might identify methods in Java by the + /// full ID "methods_com.method.package.DeclaringClass.method(argumentList)". + pub fn global_id(&mut self, key: &str) -> (Label, bool) { + if let Some(label) = self.global_keys.get(key) { + return (*label, false); + } + let label = Label(self.counter); + self.counter += 1; + self.global_keys.insert(key.to_owned(), label); + self.trap_output + .push(Entry::MapLabelToKey(label, key.to_owned())); + (label, true) + } + + pub fn add_tuple(&mut self, table_name: &str, args: Vec) { + self.trap_output + .push(Entry::GenericTuple(table_name.to_owned(), args)) + } + + pub fn comment(&mut self, text: String) { + self.trap_output.push(Entry::Comment(text)); + } + + pub fn write_to_file(&self, path: &Path, compression: Compression) -> std::io::Result<()> { + let trap_file = std::fs::File::create(path)?; + let mut trap_file = BufWriter::new(trap_file); + match compression { + Compression::None => self.write_trap_entries(&mut trap_file), + Compression::Gzip => { + let mut compressed_writer = GzEncoder::new(trap_file, flate2::Compression::fast()); + self.write_trap_entries(&mut compressed_writer) + } + } + } + + fn write_trap_entries(&self, file: &mut W) -> std::io::Result<()> { + for trap_entry in &self.trap_output { + writeln!(file, "{}", trap_entry)?; + } + std::io::Result::Ok(()) + } +} + +pub enum Entry { + /// Maps the label to a fresh id, e.g. `#123=*`. + FreshId(Label), + /// Maps the label to a key, e.g. `#7=@"foo"`. + MapLabelToKey(Label, String), + /// foo_bar(arg*) + GenericTuple(String, Vec), + Comment(String), +} + +impl fmt::Display for Entry { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match self { + Entry::FreshId(label) => write!(f, "{}=*", label), + Entry::MapLabelToKey(label, key) => { + write!(f, "{}=@\"{}\"", label, key.replace("\"", "\"\"")) + } + Entry::GenericTuple(name, args) => { + write!(f, "{}(", name)?; + for (index, arg) in args.iter().enumerate() { + if index > 0 { + write!(f, ",")?; + } + write!(f, "{}", arg)?; + } + write!(f, ")") + } + Entry::Comment(line) => write!(f, "// {}", line), + } + } +} + +#[derive(Debug, Copy, Clone)] +// Identifiers of the form #0, #1... +pub struct Label(u32); + +impl fmt::Display for Label { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "#{:x}", self.0) + } +} + +// Some untyped argument to a TrapEntry. +#[derive(Debug, Clone)] +pub enum Arg { + Label(Label), + Int(usize), + String(String), +} + +const MAX_STRLEN: usize = 1048576; + +impl fmt::Display for Arg { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match self { + Arg::Label(x) => write!(f, "{}", x), + Arg::Int(x) => write!(f, "{}", x), + Arg::String(x) => write!( + f, + "\"{}\"", + limit_string(x, MAX_STRLEN).replace("\"", "\"\"") + ), + } + } +} + +pub struct Program(Vec); + +impl fmt::Display for Program { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let mut text = String::new(); + for trap_entry in &self.0 { + text.push_str(&format!("{}\n", trap_entry)); + } + write!(f, "{}", text) + } +} + +pub fn full_id_for_file(normalized_path: &str) -> String { + format!("{};sourcefile", escape_key(normalized_path)) +} + +pub fn full_id_for_folder(normalized_path: &str) -> String { + format!("{};folder", escape_key(normalized_path)) +} + +/// Escapes a string for use in a TRAP key, by replacing special characters with +/// HTML entities. +fn escape_key<'a, S: Into>>(key: S) -> Cow<'a, str> { + fn needs_escaping(c: char) -> bool { + matches!(c, '&' | '{' | '}' | '"' | '@' | '#') + } + + let key = key.into(); + if key.contains(needs_escaping) { + let mut escaped = String::with_capacity(2 * key.len()); + for c in key.chars() { + match c { + '&' => escaped.push_str("&"), + '{' => escaped.push_str("{"), + '}' => escaped.push_str("}"), + '"' => escaped.push_str("""), + '@' => escaped.push_str("@"), + '#' => escaped.push_str("#"), + _ => escaped.push(c), + } + } + Cow::Owned(escaped) + } else { + key + } +} + +/// Limit the length (in bytes) of a string. If the string's length in bytes is +/// less than or equal to the limit then the entire string is returned. Otherwise +/// the string is sliced at the provided limit. If there is a multi-byte character +/// at the limit then the returned slice will be slightly shorter than the limit to +/// avoid splitting that multi-byte character. +fn limit_string(string: &str, max_size: usize) -> &str { + if string.len() <= max_size { + return string; + } + let p = string.as_bytes(); + let mut index = max_size; + // We want to clip the string at [max_size]; however, the character at that position + // may span several bytes. We need to find the first byte of the character. In UTF-8 + // encoded data any byte that matches the bit pattern 10XXXXXX is not a start byte. + // Therefore we decrement the index as long as there are bytes matching this pattern. + // This ensures we cut the string at the border between one character and another. + while index > 0 && (p[index] & 0b11000000) == 0b10000000 { + index -= 1; + } + &string[0..index] +} + +#[derive(Clone, Copy)] +pub enum Compression { + None, + Gzip, +} + +impl Compression { + pub fn from_env(var_name: &str) -> Compression { + match std::env::var(var_name) { + Ok(method) => match Compression::from_string(&method) { + Some(c) => c, + None => { + tracing::error!("Unknown compression method '{}'; using gzip.", &method); + Compression::Gzip + } + }, + // Default compression method if the env var isn't set: + Err(_) => Compression::Gzip, + } + } + + pub fn from_string(s: &str) -> Option { + match s.to_lowercase().as_ref() { + "none" => Some(Compression::None), + "gzip" => Some(Compression::Gzip), + _ => None, + } + } + + pub fn extension(&self) -> &str { + match self { + Compression::None => "trap", + Compression::Gzip => "trap.gz", + } + } +} + +#[test] +fn limit_string_test() { + assert_eq!("hello", limit_string(&"hello world".to_owned(), 5)); + assert_eq!("hi ☹", limit_string(&"hi ☹☹".to_owned(), 6)); + assert_eq!("hi ", limit_string(&"hi ☹☹".to_owned(), 5)); +} + +#[test] +fn escape_key_test() { + assert_eq!("foo!", escape_key("foo!")); + assert_eq!("foo{}", escape_key("foo{}")); + assert_eq!("{}", escape_key("{}")); + assert_eq!("", escape_key("")); + assert_eq!("/path/to/foo.rb", escape_key("/path/to/foo.rb")); + assert_eq!( + "/path/to/foo&{}"@#.rb", + escape_key("/path/to/foo&{}\"@#.rb") + ); +} From cc958dc1711ef9b3943bb8272f0b18334ea4ca64 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 21 Jul 2022 17:19:33 -0400 Subject: [PATCH 465/736] Update ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql Co-authored-by: Harry Maclean --- .../manually-check-http-verb/ManuallyCheckHttpVerb.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 354ccf62698..2ddf7fe87b3 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -91,6 +91,6 @@ class HttpVerbConfig extends TaintTracking::Configuration { } from HttpVerbConfig config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlow(source.getNode(), sink.getNode()) +where config.hasFlowPath(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 mappting resources and verbs to specific methods." From 8fabc06d370e88603e809d35e76bd3c13bed8495 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 21 Jul 2022 21:25:44 +0000 Subject: [PATCH 466/736] fix test assertion --- .../ManuallyCheckHttpVerb.expected | 9 --------- 1 file changed, 9 deletions(-) diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected index a253c3e9313..1fdf8045c23 100644 --- a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected +++ b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected @@ -24,18 +24,9 @@ nodes subpaths #select | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? : | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? : | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? : | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? : | 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 mappting resources and verbs to specific methods. | | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env : | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env : | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... : | 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 mappting resources and verbs to specific methods. | | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method : | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method : | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... : | 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 mappting resources and verbs to specific methods. | | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method : | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method : | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... : | 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 mappting resources and verbs to specific methods. | | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method : | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method : | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... : | 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 mappting resources and verbs to specific methods. | | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol : | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol : | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... : | 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 mappting resources and verbs to specific methods. | | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env : | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | 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 mappting resources and verbs to specific methods. | -| ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env : | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] : | 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 mappting resources and verbs to specific methods. | From 486a394a7f1979a69f6a9b82f804645111b05876 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 21 Jul 2022 17:26:09 -0400 Subject: [PATCH 467/736] Update ruby/ql/src/experimental/weak-params/WeakParams.ql Co-authored-by: Harry Maclean --- ruby/ql/src/experimental/weak-params/WeakParams.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index 0f36d4930d3..8789018e2cc 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -39,7 +39,7 @@ class WeakParams extends DataFlow::CallNode { WeakParams() { this.getReceiver() instanceof ActionControllerRequest and this.getMethodName() = - ["path_parametes", "query_parameters", "request_parameters", "GET", "POST"] + ["path_parameters", "query_parameters", "request_parameters", "GET", "POST"] } } From c1a6ca5f9458346453a98938b1e0616e8428f43f Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 21 Jul 2022 22:11:14 +0000 Subject: [PATCH 468/736] add change note --- ruby/ql/src/change-notes/2022-07-21-check-http-verb.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ruby/ql/src/change-notes/2022-07-21-check-http-verb.md diff --git a/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md b/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md new file mode 100644 index 00000000000..3d1a978953d --- /dev/null +++ b/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query, rb/manually-checking-http-verb, to detect cases when the HTTP verb for an incoming request is checked and then used as part of control flow. \ No newline at end of file From 1842bde879caddebd17a3498eca3e5b33f70107d Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Thu, 21 Jul 2022 22:13:53 +0000 Subject: [PATCH 469/736] add change note --- ruby/ql/src/change-notes/2022-07-21-weak-params.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ruby/ql/src/change-notes/2022-07-21-weak-params.md diff --git a/ruby/ql/src/change-notes/2022-07-21-weak-params.md b/ruby/ql/src/change-notes/2022-07-21-weak-params.md new file mode 100644 index 00000000000..c00926492af --- /dev/null +++ b/ruby/ql/src/change-notes/2022-07-21-weak-params.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query, rb/weak-params, to detect cases when the rails strong parameters pattern isn't followed and the values flow into persistent store writes \ No newline at end of file From 7e67338fb5bdf10da2b088227d7c241e774d8a8e Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 22 Jul 2022 13:34:11 +0200 Subject: [PATCH 470/736] Update swift/extractor/infra/SwiftDispatcher.h Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com> --- swift/extractor/infra/SwiftDispatcher.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index d3490b56b9f..4b604f4e00a 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -265,7 +265,7 @@ class SwiftDispatcher { bool fetchLabelFromUnionCase(const llvm::PointerUnion u, TrapLabel& output) { // we rely on the fact that when we extract `ASTNode` instances (which only happens // on `BraceStmt` elements), we cannot encounter a standalone `TypeRepr` there, so we skip - // this case, which would be problematic as we would not be able to provide the corresponding + // 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 (auto e = u.template dyn_cast()) { From d44bf326f0db8e26df38c7f63024f4fb056d8720 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 22 Jul 2022 13:36:22 +0200 Subject: [PATCH 471/736] Update ruby/extractor/src/main.rs Co-authored-by: Nick Rolfe --- ruby/extractor/src/main.rs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/ruby/extractor/src/main.rs b/ruby/extractor/src/main.rs index a3ed7ed7933..ca1039e4e0d 100644 --- a/ruby/extractor/src/main.rs +++ b/ruby/extractor/src/main.rs @@ -48,17 +48,13 @@ lazy_static! { } fn encoding_from_name(encoding_name: &str) -> Option<&(dyn encoding::Encoding + Send + Sync)> { - match encoding::label::encoding_from_whatwg_label(&encoding_name) { - Some(e) => return Some(e), - None => { - if let Some(cap) = CP_NUMBER.captures(&encoding_name) { - return encoding::label::encoding_from_windows_code_page( - str::parse(cap.get(1).unwrap().as_str()).unwrap(), - ); - } else { - return None; - } - } + match encoding::label::encoding_from_whatwg_label(encoding_name) { + s @ Some(_) => s, + None => CP_NUMBER.captures(encoding_name).and_then(|cap| { + encoding::label::encoding_from_windows_code_page( + str::parse(cap.get(1).unwrap().as_str()).unwrap(), + ) + }), } } From 77401ded4ec353c556e2f25a124fae42aebab3f7 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 22 Jul 2022 13:54:32 +0200 Subject: [PATCH 472/736] Swift: reflow comment --- swift/extractor/infra/SwiftDispatcher.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index 4b604f4e00a..bfcefb41970 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -265,8 +265,8 @@ class SwiftDispatcher { bool fetchLabelFromUnionCase(const llvm::PointerUnion u, TrapLabel& output) { // we rely on the fact that when we extract `ASTNode` instances (which only happens // on `BraceStmt` 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 + // 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 (auto e = u.template dyn_cast()) { output = fetchLabel(e); From 4767d5a1ba544dcd8a60e6372d545930e5096fa1 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Fri, 22 Jul 2022 15:37:53 +0100 Subject: [PATCH 473/736] Ruby/QL: speed up trap writing by putting BufWriter in front of GzEncoder --- ql/extractor/src/trap.rs | 11 +++++++---- ruby/extractor/src/trap.rs | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ql/extractor/src/trap.rs b/ql/extractor/src/trap.rs index d64c520c4cc..35a9b69f255 100644 --- a/ql/extractor/src/trap.rs +++ b/ql/extractor/src/trap.rs @@ -61,12 +61,15 @@ impl Writer { pub fn write_to_file(&self, path: &Path, compression: Compression) -> std::io::Result<()> { let trap_file = std::fs::File::create(path)?; - let mut trap_file = BufWriter::new(trap_file); match compression { - Compression::None => self.write_trap_entries(&mut trap_file), + Compression::None => { + let mut trap_file = BufWriter::new(trap_file); + self.write_trap_entries(&mut trap_file) + } Compression::Gzip => { - let mut compressed_writer = GzEncoder::new(trap_file, flate2::Compression::fast()); - self.write_trap_entries(&mut compressed_writer) + let trap_file = GzEncoder::new(trap_file, flate2::Compression::fast()); + let mut trap_file = BufWriter::new(trap_file); + self.write_trap_entries(&mut trap_file) } } } diff --git a/ruby/extractor/src/trap.rs b/ruby/extractor/src/trap.rs index d64c520c4cc..35a9b69f255 100644 --- a/ruby/extractor/src/trap.rs +++ b/ruby/extractor/src/trap.rs @@ -61,12 +61,15 @@ impl Writer { pub fn write_to_file(&self, path: &Path, compression: Compression) -> std::io::Result<()> { let trap_file = std::fs::File::create(path)?; - let mut trap_file = BufWriter::new(trap_file); match compression { - Compression::None => self.write_trap_entries(&mut trap_file), + Compression::None => { + let mut trap_file = BufWriter::new(trap_file); + self.write_trap_entries(&mut trap_file) + } Compression::Gzip => { - let mut compressed_writer = GzEncoder::new(trap_file, flate2::Compression::fast()); - self.write_trap_entries(&mut compressed_writer) + let trap_file = GzEncoder::new(trap_file, flate2::Compression::fast()); + let mut trap_file = BufWriter::new(trap_file); + self.write_trap_entries(&mut trap_file) } } } From a9d95a94188e0f8e626f47e5cc2c63e5cd55b779 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 28 Jun 2022 16:37:11 +0200 Subject: [PATCH 474/736] C++: Remove `pragma[noinline]` from `ResolveGlobalVariable.ql` --- cpp/ql/lib/semmle/code/cpp/internal/ResolveGlobalVariable.qll | 3 --- 1 file changed, 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/internal/ResolveGlobalVariable.qll b/cpp/ql/lib/semmle/code/cpp/internal/ResolveGlobalVariable.qll index 219d45e2991..c11e1457dae 100644 --- a/cpp/ql/lib/semmle/code/cpp/internal/ResolveGlobalVariable.qll +++ b/cpp/ql/lib/semmle/code/cpp/internal/ResolveGlobalVariable.qll @@ -2,13 +2,11 @@ private predicate hasDefinition(@globalvariable g) { exists(@var_decl vd | var_decls(vd, g, _, _, _) | var_def(vd)) } -pragma[noinline] private predicate onlyOneCompleteGlobalVariableExistsWithMangledName(@mangledname name) { strictcount(@globalvariable g | hasDefinition(g) and mangled_name(g, name)) = 1 } /** Holds if `g` is a unique global variable with a definition named `name`. */ -pragma[noinline] private predicate isGlobalWithMangledNameAndWithDefinition(@mangledname name, @globalvariable g) { hasDefinition(g) and mangled_name(g, name) and @@ -16,7 +14,6 @@ private predicate isGlobalWithMangledNameAndWithDefinition(@mangledname name, @g } /** Holds if `g` is a global variable without a definition named `name`. */ -pragma[noinline] private predicate isGlobalWithMangledNameAndWithoutDefinition(@mangledname name, @globalvariable g) { not hasDefinition(g) and mangled_name(g, name) From 2c095cf16631aa5f93ec1b4eb035920a665efab5 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 22 Jul 2022 13:51:38 -0400 Subject: [PATCH 475/736] Update ruby/ql/src/change-notes/2022-07-21-weak-params.md Co-authored-by: Harry Maclean --- ruby/ql/src/change-notes/2022-07-21-weak-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/change-notes/2022-07-21-weak-params.md b/ruby/ql/src/change-notes/2022-07-21-weak-params.md index c00926492af..08b8f153989 100644 --- a/ruby/ql/src/change-notes/2022-07-21-weak-params.md +++ b/ruby/ql/src/change-notes/2022-07-21-weak-params.md @@ -1,4 +1,4 @@ --- category: newQuery --- -* Added a new query, rb/weak-params, to detect cases when the rails strong parameters pattern isn't followed and the values flow into persistent store writes \ No newline at end of file +* Added a new experimental query, `rb/weak-params`, to detect cases when the rails strong parameters pattern isn't followed and values flow into persistent store writes. \ No newline at end of file From c2710fb038003a1c29b28ba941ff0367cf42f39c Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 22 Jul 2022 13:52:00 -0400 Subject: [PATCH 476/736] Update ruby/ql/src/change-notes/2022-07-21-check-http-verb.md Co-authored-by: Harry Maclean --- ruby/ql/src/change-notes/2022-07-21-check-http-verb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md b/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md index 3d1a978953d..4a670ba1092 100644 --- a/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md +++ b/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md @@ -1,4 +1,4 @@ --- category: newQuery --- -* Added a new query, rb/manually-checking-http-verb, to detect cases when the HTTP verb for an incoming request is checked and then used as part of control flow. \ No newline at end of file +* Added a new experimental query, `rb/manually-checking-http-verb`, to detect cases when the HTTP verb for an incoming request is checked and then used as part of control flow. \ No newline at end of file From f39ca1aad227487a6f1f2d107e634d3515c75650 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 22 Jul 2022 18:36:25 +0000 Subject: [PATCH 477/736] correct cwe tagged --- ruby/ql/src/experimental/weak-params/WeakParams.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index 8789018e2cc..e2a441fc7c9 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -7,7 +7,7 @@ * @precision medium * @id rb/weak-params * @tags security - * external/cwe/cwe-223 + * external/cwe/cwe-352 */ import ruby From 0c0ba925a7a28d6e76677fc76b915238300d4820 Mon Sep 17 00:00:00 2001 From: thiggy1342 Date: Fri, 22 Jul 2022 18:44:03 +0000 Subject: [PATCH 478/736] this one should have no tag --- ruby/ql/src/experimental/weak-params/WeakParams.ql | 1 - 1 file changed, 1 deletion(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index e2a441fc7c9..0c6d9db5644 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -7,7 +7,6 @@ * @precision medium * @id rb/weak-params * @tags security - * external/cwe/cwe-352 */ import ruby From 715b0b3fb89030d83a1e18ec1e6c144727281dfe Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 25 Jul 2022 15:17:14 +0100 Subject: [PATCH 479/736] Accept test changes --- java/ql/test/kotlin/library-tests/reflection/PrintAst.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/test/kotlin/library-tests/reflection/PrintAst.expected b/java/ql/test/kotlin/library-tests/reflection/PrintAst.expected index dd47be234c3..b1da7cdcee2 100644 --- a/java/ql/test/kotlin/library-tests/reflection/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/reflection/PrintAst.expected @@ -8,7 +8,7 @@ reflection.kt: # 46| 0: [TypeAccess] String # 47| 5: [BlockStmt] { ... } # 47| 0: [ReturnStmt] return ... -# 47| 0: [MethodAccess] get(...) +# 47| 0: [MethodAccess] charAt(...) # 47| -1: [ExtensionReceiverAccess] this # 47| 0: [SubExpr] ... - ... # 47| 0: [MethodAccess] length(...) From 95db81658b4aa3176b5edb3946a76788fdaee1ac Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 26 Jul 2022 10:42:24 +0200 Subject: [PATCH 480/736] Add CSV models for java.util.Scanner --- .../java/dataflow/internal/ContainerFlow.qll | 6 + java/ql/test/library-tests/scanner/Test.java | 183 ++++++++++++++++++ .../test/library-tests/scanner/test.expected | 0 java/ql/test/library-tests/scanner/test.ql | 2 + 4 files changed, 191 insertions(+) create mode 100644 java/ql/test/library-tests/scanner/Test.java create mode 100644 java/ql/test/library-tests/scanner/test.expected create mode 100644 java/ql/test/library-tests/scanner/test.ql diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll index e9c457fc801..3acb3291911 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll @@ -244,8 +244,14 @@ private class ContainerFlowSummaries extends SummaryModelCsv { "java.util;Properties;true;getProperty;(String);;Argument[-1].MapValue;ReturnValue;value;manual", "java.util;Properties;true;getProperty;(String,String);;Argument[-1].MapValue;ReturnValue;value;manual", "java.util;Properties;true;getProperty;(String,String);;Argument[1];ReturnValue;value;manual", + "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual", "java.util;Scanner;true;next;(Pattern);;Argument[-1];ReturnValue;taint;manual", "java.util;Scanner;true;next;(String);;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;reset;;;Argument[-1];ReturnValue;value;manual", + "java.util;Scanner;true;skip;;;Argument[-1];ReturnValue;value;manual", + "java.util;Scanner;true;useDelimiter;;;Argument[-1];ReturnValue;value;manual", + "java.util;Scanner;true;useLocale;;;Argument[-1];ReturnValue;value;manual", + "java.util;Scanner;true;useRadix;;;Argument[-1];ReturnValue;value;manual", "java.util;SortedMap;true;headMap;(Object);;Argument[-1].MapKey;ReturnValue.MapKey;value;manual", "java.util;SortedMap;true;headMap;(Object);;Argument[-1].MapValue;ReturnValue.MapValue;value;manual", "java.util;SortedMap;true;subMap;(Object,Object);;Argument[-1].MapKey;ReturnValue.MapKey;value;manual", diff --git a/java/ql/test/library-tests/scanner/Test.java b/java/ql/test/library-tests/scanner/Test.java new file mode 100644 index 00000000000..d5bd778fe1b --- /dev/null +++ b/java/ql/test/library-tests/scanner/Test.java @@ -0,0 +1,183 @@ +package generatedtest; + +import java.io.File; +import java.io.InputStream; +import java.nio.channels.ReadableByteChannel; +import java.nio.charset.Charset; +import java.nio.file.Path; +import java.util.Scanner; +import java.util.regex.Pattern; + +// Test case generated by GenerateFlowTestCase.ql +public class Test { + + Object source() { return null; } + void sink(Object o) { } + + public void test() throws Exception { + + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + File in = (File)source(); + out = new Scanner(in); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + File in = (File)source(); + out = new Scanner(in, (Charset)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + File in = (File)source(); + out = new Scanner(in, (String)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + InputStream in = (InputStream)source(); + out = new Scanner(in); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + InputStream in = (InputStream)source(); + out = new Scanner(in, (Charset)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + InputStream in = (InputStream)source(); + out = new Scanner(in, (String)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + Path in = (Path)source(); + out = new Scanner(in); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + Path in = (Path)source(); + out = new Scanner(in, (Charset)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + Path in = (Path)source(); + out = new Scanner(in, (String)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + Readable in = (Readable)source(); + out = new Scanner(in); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + ReadableByteChannel in = (ReadableByteChannel)source(); + out = new Scanner(in); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + ReadableByteChannel in = (ReadableByteChannel)source(); + out = new Scanner(in, (Charset)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + ReadableByteChannel in = (ReadableByteChannel)source(); + out = new Scanner(in, (String)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + Scanner out = null; + String in = (String)source(); + out = new Scanner(in); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;next;(Pattern);;Argument[-1];ReturnValue;taint;manual" + String out = null; + Scanner in = (Scanner)source(); + out = in.next((Pattern)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;next;(String);;Argument[-1];ReturnValue;taint;manual" + String out = null; + Scanner in = (Scanner)source(); + out = in.next((String)null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;reset;;;Argument[-1];ReturnValue;value;manual" + Scanner out = null; + Scanner in = (Scanner)source(); + out = in.reset(); + sink(out); // $ hasValueFlow + } + { + // "java.util;Scanner;true;skip;;;Argument[-1];ReturnValue;value;manual" + Scanner out = null; + Scanner in = (Scanner)source(); + out = in.skip((Pattern)null); + sink(out); // $ hasValueFlow + } + { + // "java.util;Scanner;true;skip;;;Argument[-1];ReturnValue;value;manual" + Scanner out = null; + Scanner in = (Scanner)source(); + out = in.skip((String)null); + sink(out); // $ hasValueFlow + } + { + // "java.util;Scanner;true;useDelimiter;;;Argument[-1];ReturnValue;value;manual" + Scanner out = null; + Scanner in = (Scanner)source(); + out = in.useDelimiter((Pattern)null); + sink(out); // $ hasValueFlow + } + { + // "java.util;Scanner;true;useDelimiter;;;Argument[-1];ReturnValue;value;manual" + Scanner out = null; + Scanner in = (Scanner)source(); + out = in.useDelimiter((String)null); + sink(out); // $ hasValueFlow + } + { + // "java.util;Scanner;true;useLocale;;;Argument[-1];ReturnValue;value;manual" + Scanner out = null; + Scanner in = (Scanner)source(); + out = in.useLocale(null); + sink(out); // $ hasValueFlow + } + { + // "java.util;Scanner;true;useRadix;;;Argument[-1];ReturnValue;value;manual" + Scanner out = null; + Scanner in = (Scanner)source(); + out = in.useRadix(0); + sink(out); // $ hasValueFlow + } + + } + +} \ No newline at end of file diff --git a/java/ql/test/library-tests/scanner/test.expected b/java/ql/test/library-tests/scanner/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/scanner/test.ql b/java/ql/test/library-tests/scanner/test.ql new file mode 100644 index 00000000000..5d91e4e8e26 --- /dev/null +++ b/java/ql/test/library-tests/scanner/test.ql @@ -0,0 +1,2 @@ +import java +import TestUtilities.InlineFlowTest From c56e0f7c0d55e5e04cd87cd4eb56c2118db15693 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 26 Jul 2022 10:50:34 +0200 Subject: [PATCH 481/736] Add change note --- java/ql/lib/change-notes/2022-07-26-scanner-models.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2022-07-26-scanner-models.md diff --git a/java/ql/lib/change-notes/2022-07-26-scanner-models.md b/java/ql/lib/change-notes/2022-07-26-scanner-models.md new file mode 100644 index 00000000000..6a78982d639 --- /dev/null +++ b/java/ql/lib/change-notes/2022-07-26-scanner-models.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added data flow models for `java.util.Scanner`. \ No newline at end of file From 33f5620782479ea2f449e44faa8857e6eaa59bc5 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 26 Jul 2022 11:06:11 +0200 Subject: [PATCH 482/736] Add more models --- .../java/dataflow/internal/ContainerFlow.qll | 16 +- java/ql/test/library-tests/scanner/Test.java | 229 ++++++++++++++---- 2 files changed, 201 insertions(+), 44 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll index 3acb3291911..6c4a369527c 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll @@ -245,8 +245,20 @@ private class ContainerFlowSummaries extends SummaryModelCsv { "java.util;Properties;true;getProperty;(String,String);;Argument[-1].MapValue;ReturnValue;value;manual", "java.util;Properties;true;getProperty;(String,String);;Argument[1];ReturnValue;value;manual", "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual", - "java.util;Scanner;true;next;(Pattern);;Argument[-1];ReturnValue;taint;manual", - "java.util;Scanner;true;next;(String);;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;findInLine;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;findWithinHorizon;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;findWithinHorizon;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;next;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextBigDecimal;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextBigInteger;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextBoolean;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextByte;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextDouble;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextFloat;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextInt;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextLine;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextLong;;;Argument[-1];ReturnValue;taint;manual", + "java.util;Scanner;true;nextShort;;;Argument[-1];ReturnValue;taint;manual", "java.util;Scanner;true;reset;;;Argument[-1];ReturnValue;value;manual", "java.util;Scanner;true;skip;;;Argument[-1];ReturnValue;value;manual", "java.util;Scanner;true;useDelimiter;;;Argument[-1];ReturnValue;value;manual", diff --git a/java/ql/test/library-tests/scanner/Test.java b/java/ql/test/library-tests/scanner/Test.java index d5bd778fe1b..05f5b497215 100644 --- a/java/ql/test/library-tests/scanner/Test.java +++ b/java/ql/test/library-tests/scanner/Test.java @@ -2,6 +2,8 @@ package generatedtest; import java.io.File; import java.io.InputStream; +import java.math.BigDecimal; +import java.math.BigInteger; import java.nio.channels.ReadableByteChannel; import java.nio.charset.Charset; import java.nio.file.Path; @@ -11,173 +13,316 @@ import java.util.regex.Pattern; // Test case generated by GenerateFlowTestCase.ql public class Test { - Object source() { return null; } - void sink(Object o) { } + Object source() { + return null; + } + + void sink(Object o) {} public void test() throws Exception { { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - File in = (File)source(); + File in = (File) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - File in = (File)source(); - out = new Scanner(in, (Charset)null); + File in = (File) source(); + out = new Scanner(in, (Charset) null); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - File in = (File)source(); - out = new Scanner(in, (String)null); + File in = (File) source(); + out = new Scanner(in, (String) null); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - InputStream in = (InputStream)source(); + InputStream in = (InputStream) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - InputStream in = (InputStream)source(); - out = new Scanner(in, (Charset)null); + InputStream in = (InputStream) source(); + out = new Scanner(in, (Charset) null); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - InputStream in = (InputStream)source(); - out = new Scanner(in, (String)null); + InputStream in = (InputStream) source(); + out = new Scanner(in, (String) null); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - Path in = (Path)source(); + Path in = (Path) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - Path in = (Path)source(); - out = new Scanner(in, (Charset)null); + Path in = (Path) source(); + out = new Scanner(in, (Charset) null); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - Path in = (Path)source(); - out = new Scanner(in, (String)null); + Path in = (Path) source(); + out = new Scanner(in, (String) null); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - Readable in = (Readable)source(); + Readable in = (Readable) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - ReadableByteChannel in = (ReadableByteChannel)source(); + ReadableByteChannel in = (ReadableByteChannel) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - ReadableByteChannel in = (ReadableByteChannel)source(); - out = new Scanner(in, (Charset)null); + ReadableByteChannel in = (ReadableByteChannel) source(); + out = new Scanner(in, (Charset) null); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - ReadableByteChannel in = (ReadableByteChannel)source(); - out = new Scanner(in, (String)null); + ReadableByteChannel in = (ReadableByteChannel) source(); + out = new Scanner(in, (String) null); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" Scanner out = null; - String in = (String)source(); + String in = (String) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;next;(Pattern);;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;findInLine;;;Argument[-1];ReturnValue;taint;manual" String out = null; - Scanner in = (Scanner)source(); - out = in.next((Pattern)null); + Scanner in = (Scanner) source(); + out = in.findInLine((Pattern) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;next;(String);;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;findInLine;;;Argument[-1];ReturnValue;taint;manual" String out = null; - Scanner in = (Scanner)source(); - out = in.next((String)null); + Scanner in = (Scanner) source(); + out = in.findInLine((String) null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;findWithinHorizon;;;Argument[-1];ReturnValue;taint;manual" + String out = null; + Scanner in = (Scanner) source(); + out = in.findWithinHorizon((Pattern) null, 0); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;findWithinHorizon;;;Argument[-1];ReturnValue;taint;manual" + String out = null; + Scanner in = (Scanner) source(); + out = in.findWithinHorizon((String) null, 0); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;next;;;Argument[-1];ReturnValue;taint;manual" + String out = null; + Scanner in = (Scanner) source(); + out = in.next((Pattern) null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;next;;;Argument[-1];ReturnValue;taint;manual" + String out = null; + Scanner in = (Scanner) source(); + out = in.next((String) null); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;next;;;Argument[-1];ReturnValue;taint;manual" + String out = null; + Scanner in = (Scanner) source(); + out = in.next(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextBigDecimal;;;Argument[-1];ReturnValue;taint;manual" + BigDecimal out = null; + Scanner in = (Scanner) source(); + out = in.nextBigDecimal(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextBigInteger;;;Argument[-1];ReturnValue;taint;manual" + BigInteger out = null; + Scanner in = (Scanner) source(); + out = in.nextBigInteger(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextBigInteger;;;Argument[-1];ReturnValue;taint;manual" + BigInteger out = null; + Scanner in = (Scanner) source(); + out = in.nextBigInteger(0); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextBoolean;;;Argument[-1];ReturnValue;taint;manual" + boolean out = false; + Scanner in = (Scanner) source(); + out = in.nextBoolean(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextByte;;;Argument[-1];ReturnValue;taint;manual" + byte out = 0; + Scanner in = (Scanner) source(); + out = in.nextByte(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextByte;;;Argument[-1];ReturnValue;taint;manual" + byte out = 0; + Scanner in = (Scanner) source(); + out = in.nextByte(0); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextDouble;;;Argument[-1];ReturnValue;taint;manual" + double out = 0; + Scanner in = (Scanner) source(); + out = in.nextDouble(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextFloat;;;Argument[-1];ReturnValue;taint;manual" + float out = 0; + Scanner in = (Scanner) source(); + out = in.nextFloat(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextInt;;;Argument[-1];ReturnValue;taint;manual" + int out = 0; + Scanner in = (Scanner) source(); + out = in.nextInt(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextInt;;;Argument[-1];ReturnValue;taint;manual" + int out = 0; + Scanner in = (Scanner) source(); + out = in.nextInt(0); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextLine;;;Argument[-1];ReturnValue;taint;manual" + String out = null; + Scanner in = (Scanner) source(); + out = in.nextLine(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextLong;;;Argument[-1];ReturnValue;taint;manual" + long out = 0; + Scanner in = (Scanner) source(); + out = in.nextLong(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextLong;;;Argument[-1];ReturnValue;taint;manual" + long out = 0; + Scanner in = (Scanner) source(); + out = in.nextLong(0); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextShort;;;Argument[-1];ReturnValue;taint;manual" + short out = 0; + Scanner in = (Scanner) source(); + out = in.nextShort(); + sink(out); // $ hasTaintFlow + } + { + // "java.util;Scanner;true;nextShort;;;Argument[-1];ReturnValue;taint;manual" + short out = 0; + Scanner in = (Scanner) source(); + out = in.nextShort(0); sink(out); // $ hasTaintFlow } { // "java.util;Scanner;true;reset;;;Argument[-1];ReturnValue;value;manual" Scanner out = null; - Scanner in = (Scanner)source(); + Scanner in = (Scanner) source(); out = in.reset(); sink(out); // $ hasValueFlow } { // "java.util;Scanner;true;skip;;;Argument[-1];ReturnValue;value;manual" Scanner out = null; - Scanner in = (Scanner)source(); - out = in.skip((Pattern)null); + Scanner in = (Scanner) source(); + out = in.skip((Pattern) null); sink(out); // $ hasValueFlow } { // "java.util;Scanner;true;skip;;;Argument[-1];ReturnValue;value;manual" Scanner out = null; - Scanner in = (Scanner)source(); - out = in.skip((String)null); + Scanner in = (Scanner) source(); + out = in.skip((String) null); sink(out); // $ hasValueFlow } { // "java.util;Scanner;true;useDelimiter;;;Argument[-1];ReturnValue;value;manual" Scanner out = null; - Scanner in = (Scanner)source(); - out = in.useDelimiter((Pattern)null); + Scanner in = (Scanner) source(); + out = in.useDelimiter((Pattern) null); sink(out); // $ hasValueFlow } { // "java.util;Scanner;true;useDelimiter;;;Argument[-1];ReturnValue;value;manual" Scanner out = null; - Scanner in = (Scanner)source(); - out = in.useDelimiter((String)null); + Scanner in = (Scanner) source(); + out = in.useDelimiter((String) null); sink(out); // $ hasValueFlow } { // "java.util;Scanner;true;useLocale;;;Argument[-1];ReturnValue;value;manual" Scanner out = null; - Scanner in = (Scanner)source(); + Scanner in = (Scanner) source(); out = in.useLocale(null); sink(out); // $ hasValueFlow } { // "java.util;Scanner;true;useRadix;;;Argument[-1];ReturnValue;value;manual" Scanner out = null; - Scanner in = (Scanner)source(); + Scanner in = (Scanner) source(); out = in.useRadix(0); sink(out); // $ hasValueFlow } } -} \ No newline at end of file +} From 5086841b46ca2aa3dd2076b85da4f190661beb5a Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 26 Jul 2022 17:03:46 +0100 Subject: [PATCH 483/736] Kotlin: implement super-method calls If we only look at the dispatch receiver, these show up like `this` references rather than `super` references, preventing flow through super-calls. The super-interface case requires properly noting that interface methods with a body get a `default` modifier in order to avoid QL discarding the method as a possible callee. --- .../src/main/kotlin/KotlinFileExtractor.kt | 36 ++++++++++++++----- .../super-method-calls/test.expected | 2 ++ .../library-tests/super-method-calls/test.kt | 36 +++++++++++++++++++ .../library-tests/super-method-calls/test.ql | 18 ++++++++++ 4 files changed, 84 insertions(+), 8 deletions(-) create mode 100644 java/ql/test/kotlin/library-tests/super-method-calls/test.expected create mode 100644 java/ql/test/kotlin/library-tests/super-method-calls/test.kt create mode 100644 java/ql/test/kotlin/library-tests/super-method-calls/test.ql diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 78a81fb0715..4100594ad35 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -888,6 +888,10 @@ open class KotlinFileExtractor( if (shortName.nameInDB != shortName.kotlinName) { tw.writeKtFunctionOriginalNames(methodId, shortName.kotlinName) } + + if (f.hasInterfaceParent() && f.body != null) { + addModifiers(id, "default") // The actual output class file may or may not have this modifier, depending on the -Xjvm-default setting. + } } tw.writeHasLocation(id, locId) @@ -1386,7 +1390,8 @@ open class KotlinFileExtractor( dispatchReceiver: IrExpression?, extensionReceiver: IrExpression?, typeArguments: List = listOf(), - extractClassTypeArguments: Boolean = false) { + extractClassTypeArguments: Boolean = false, + superQualifierSymbol: IrClassSymbol? = null) { val locId = tw.getLocation(callsite) @@ -1404,7 +1409,8 @@ open class KotlinFileExtractor( dispatchReceiver?.let { { callId -> extractExpressionExpr(dispatchReceiver, enclosingCallable, callId, -1, enclosingStmt) } }, extensionReceiver?.let { { argParent -> extractExpressionExpr(extensionReceiver, enclosingCallable, argParent, 0, enclosingStmt) } }, typeArguments, - extractClassTypeArguments + extractClassTypeArguments, + superQualifierSymbol ) } @@ -1424,7 +1430,8 @@ open class KotlinFileExtractor( extractDispatchReceiver: ((Label) -> Unit)?, extractExtensionReceiver: ((Label) -> Unit)?, typeArguments: List = listOf(), - extractClassTypeArguments: Boolean = false) { + extractClassTypeArguments: Boolean = false, + superQualifierSymbol: IrClassSymbol? = null) { val callTarget = syntacticCallTarget.target.realOverrideTarget val id = tw.getFreshIdLabel() @@ -1483,6 +1490,8 @@ open class KotlinFileExtractor( if (callTarget.shouldExtractAsStatic) { extractStaticTypeAccessQualifier(callTarget, id, locId, enclosingCallable, enclosingStmt) + } else if (superQualifierSymbol != null) { + extractSuperAccess(superQualifierSymbol.typeWith(), enclosingCallable, id, -1, enclosingStmt, locId) } else if (extractDispatchReceiver != null) { extractDispatchReceiver(id) } @@ -1744,7 +1753,7 @@ open class KotlinFileExtractor( else listOf() - extractRawMethodAccess(syntacticCallTarget, c, callable, parent, idx, enclosingStmt, (0 until c.valueArgumentsCount).map { c.getValueArgument(it) }, c.dispatchReceiver, c.extensionReceiver, typeArgs, extractClassTypeArguments) + extractRawMethodAccess(syntacticCallTarget, c, callable, parent, idx, enclosingStmt, (0 until c.valueArgumentsCount).map { c.getValueArgument(it) }, c.dispatchReceiver, c.extensionReceiver, typeArgs, extractClassTypeArguments, c.superQualifierSymbol) } fun extractSpecialEnumFunction(fnName: String){ @@ -3066,6 +3075,17 @@ open class KotlinFileExtractor( } } + private fun extractSuperAccess(irType: IrType, callable: Label, parent: Label, idx: Int, enclosingStmt: Label, locId: Label) = + tw.getFreshIdLabel().also { + val type = useType(irType) + tw.writeExprs_superaccess(it, type.javaResult.id, parent, idx) + tw.writeExprsKotlinType(it, type.kotlinResult.id) + tw.writeHasLocation(it, locId) + tw.writeCallableEnclosingExpr(it, callable) + tw.writeStatementEnclosingExpr(it, enclosingStmt) + extractTypeAccessRecursive(irType, locId, it, 0) + } + private fun extractThisAccess(e: IrGetValue, exprParent: ExprParent, callable: Label) { val containingDeclaration = declarationStack.peek() val locId = tw.getLocation(e) @@ -4020,7 +4040,7 @@ open class KotlinFileExtractor( /** * Extracts a single wildcard type access expression with no enclosing callable and statement. */ - private fun extractWildcardTypeAccess(type: TypeResults, location: Label, parent: Label, idx: Int): Label { + private fun extractWildcardTypeAccess(type: TypeResults, location: Label, parent: Label, idx: Int): Label { val id = tw.getFreshIdLabel() tw.writeExprs_wildcardtypeaccess(id, type.javaResult.id, parent, idx) tw.writeExprsKotlinType(id, type.kotlinResult.id) @@ -4031,7 +4051,7 @@ open class KotlinFileExtractor( /** * Extracts a single type access expression with no enclosing callable and statement. */ - private fun extractTypeAccess(type: TypeResults, location: Label, parent: Label, idx: Int): Label { + private fun extractTypeAccess(type: TypeResults, location: Label, parent: Label, idx: Int): Label { // TODO: elementForLocation allows us to give some sort of // location, but a proper location for the type access will // require upstream changes @@ -4057,7 +4077,7 @@ open class KotlinFileExtractor( * `extractTypeAccessRecursive` if the argument is invariant. * No enclosing callable and statement is extracted, this is useful for type access extraction in field declarations. */ - private fun extractWildcardTypeAccessRecursive(t: IrTypeArgument, location: Label, parent: Label, idx: Int) { + private fun extractWildcardTypeAccessRecursive(t: IrTypeArgument, location: Label, parent: Label, idx: Int) { val typeLabels by lazy { TypeResults(getTypeArgumentLabel(t), TypeResult(fakeKotlinType(), "TODO", "TODO")) } when (t) { is IrStarProjection -> extractWildcardTypeAccess(typeLabels, location, parent, idx) @@ -4077,7 +4097,7 @@ open class KotlinFileExtractor( * Extracts a type access expression and its child type access expressions in case of a generic type. Nested generics are also handled. * No enclosing callable and statement is extracted, this is useful for type access extraction in field declarations. */ - private fun extractTypeAccessRecursive(t: IrType, location: Label, parent: Label, idx: Int, typeContext: TypeContext = TypeContext.OTHER): Label { + private fun extractTypeAccessRecursive(t: IrType, location: Label, parent: Label, idx: Int, typeContext: TypeContext = TypeContext.OTHER): Label { val typeAccessId = extractTypeAccess(useType(t, typeContext), location, parent, idx) if (t is IrSimpleType) { t.arguments.forEachIndexed { argIdx, arg -> diff --git a/java/ql/test/kotlin/library-tests/super-method-calls/test.expected b/java/ql/test/kotlin/library-tests/super-method-calls/test.expected new file mode 100644 index 00000000000..841eb6298c7 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/super-method-calls/test.expected @@ -0,0 +1,2 @@ +| test.kt:31:17:31:24 | source(...) | test.kt:31:15:31:25 | f(...) | +| test.kt:32:17:32:24 | source(...) | test.kt:32:15:32:25 | g(...) | diff --git a/java/ql/test/kotlin/library-tests/super-method-calls/test.kt b/java/ql/test/kotlin/library-tests/super-method-calls/test.kt new file mode 100644 index 00000000000..7b3e90d7359 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/super-method-calls/test.kt @@ -0,0 +1,36 @@ +open class A { + + open fun f(x: String) = x + +} + +interface B { + + fun g(x: String) = x + +} + +interface C { + + fun g(x: String) = x + +} + +class User : A(), B, C { + + override fun f(x: String) = super.f(x) + + override fun g(x: String) = super.g(x) + + fun source() = "tainted" + + fun sink(s: String) { } + + fun test() { + + sink(this.f(source())) + sink(this.g(source())) + + } + +} diff --git a/java/ql/test/kotlin/library-tests/super-method-calls/test.ql b/java/ql/test/kotlin/library-tests/super-method-calls/test.ql new file mode 100644 index 00000000000..9a628624c91 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/super-method-calls/test.ql @@ -0,0 +1,18 @@ +import java +import semmle.code.java.dataflow.DataFlow + +class Config extends DataFlow::Configuration { + Config() { this = "abc" } + + override predicate isSource(DataFlow::Node n) { + n.asExpr().(MethodAccess).getMethod().getName() = "source" + } + + override predicate isSink(DataFlow::Node n) { + n.asExpr().(Argument).getCall().getCallee().getName() = "sink" + } +} + +from Config c, DataFlow::Node n1, DataFlow::Node n2 +where c.hasFlow(n1, n2) +select n1, n2 From 30accecd8a4db51a368bb4870e16989ba8c5c8e9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 27 Jul 2022 00:19:16 +0000 Subject: [PATCH 484/736] 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 ce777afae1d..598035e03c3 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -36,7 +36,7 @@ java.lang,13,,58,,,,,,,,,,,8,,,,,4,,,1,,,,,,,,,,,,,,,46,12 java.net,10,3,7,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,3,7, java.nio,15,,6,,13,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,6, java.sql,11,,,,,,,,,4,,,,,,,,,,,,,,,,7,,,,,,,,,,,, -java.util,44,,441,,,,,,,,,,,34,,,,,,5,2,,1,2,,,,,,,,,,,,,24,417 +java.util,44,,458,,,,,,,,,,,34,,,,,,5,2,,1,2,,,,,,,,,,,,,36,422 javax.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,7,, javax.jms,,9,57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,57, javax.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index 3e4ea1201bf..06101b6633d 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -15,9 +15,9 @@ Java framework & library support `Apache HttpComponents `_,"``org.apache.hc.core5.*``, ``org.apache.http``",5,136,28,,,3,,,,25 `Google Guava `_,``com.google.common.*``,,728,39,,6,,,,, `JSON-java `_,``org.json``,,236,,,,,,,, - Java Standard Library,``java.*``,3,552,130,28,,,7,,,10 + Java Standard Library,``java.*``,3,569,130,28,,,7,,,10 Java extensions,"``javax.*``, ``jakarta.*``",63,609,32,,,4,,1,1,2 `Spring `_,``org.springframework.*``,29,476,101,,,,19,14,,29 Others,"``androidx.slice``, ``cn.hutool.core.codec``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.opensymphony.xwork2.ognl``, ``com.rabbitmq.client``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``groovy.lang``, ``groovy.util``, ``jodd.json``, ``kotlin.jvm.internal``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.apache.commons.codec``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.logging``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.logging.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.hibernate``, ``org.jboss.logging``, ``org.jdbi.v3.core``, ``org.jooq``, ``org.mvel2``, ``org.scijava.log``, ``org.slf4j``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",65,395,932,,,,14,18,,3 - Totals,,217,6413,1474,117,6,10,107,33,1,84 + Totals,,217,6430,1474,117,6,10,107,33,1,84 From cc423af8f1d28ae3cc03751983f7f9a140cf19aa Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 27 Jul 2022 10:20:47 +0200 Subject: [PATCH 485/736] Java: Add support for JUnit5 assertions in the nullness queries. --- java/ql/lib/change-notes/2022-07-27-nullness-junit5.md | 5 +++++ java/ql/lib/semmle/code/java/frameworks/Assertions.qll | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 java/ql/lib/change-notes/2022-07-27-nullness-junit5.md diff --git a/java/ql/lib/change-notes/2022-07-27-nullness-junit5.md b/java/ql/lib/change-notes/2022-07-27-nullness-junit5.md new file mode 100644 index 00000000000..6cfb0949c69 --- /dev/null +++ b/java/ql/lib/change-notes/2022-07-27-nullness-junit5.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* The JUnit5 version of `AssertNotNull` is now recognized, which removes + related false positives in the nullness queries. diff --git a/java/ql/lib/semmle/code/java/frameworks/Assertions.qll b/java/ql/lib/semmle/code/java/frameworks/Assertions.qll index 3c3d090b993..ff95c71b037 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Assertions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Assertions.qll @@ -2,7 +2,8 @@ * A library providing uniform access to various assertion frameworks. * * Currently supports `org.junit.Assert`, `junit.framework.*`, - * `com.google.common.base.Preconditions`, and `java.util.Objects`. + * `org.junit.jupiter.api.Assertions`, `com.google.common.base.Preconditions`, + * and `java.util.Objects`. */ import java @@ -17,7 +18,11 @@ private newtype AssertKind = private predicate assertionMethod(Method m, AssertKind kind) { exists(RefType junit | m.getDeclaringType() = junit and - (junit.hasQualifiedName("org.junit", "Assert") or junit.hasQualifiedName("junit.framework", _)) + ( + junit.hasQualifiedName("org.junit", "Assert") or + junit.hasQualifiedName("junit.framework", _) or + junit.hasQualifiedName("org.junit.jupiter.api", "Assertions") + ) | m.hasName("assertNotNull") and kind = AssertKindNotNull() or From ebf650c0c0e4f41c86da4ae9860465b7159706bb Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 27 Jul 2022 14:56:02 +0200 Subject: [PATCH 486/736] Control Flow: add more ordering for edges --- .../csharp/controlflow/internal/ControlFlowGraphImplShared.qll | 2 +- .../ruby/controlflow/internal/ControlFlowGraphImplShared.qll | 2 +- .../swift/controlflow/internal/ControlFlowGraphImplShared.qll | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll index 47fcd24883c..13fb796ca3d 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll @@ -916,7 +916,7 @@ module TestOutput { s order by l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString() + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString(), s.toString() ) ).toString() } diff --git a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll index 47fcd24883c..13fb796ca3d 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll @@ -916,7 +916,7 @@ module TestOutput { s order by l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString() + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString(), s.toString() ) ).toString() } diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplShared.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplShared.qll index 47fcd24883c..13fb796ca3d 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplShared.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplShared.qll @@ -916,7 +916,7 @@ module TestOutput { s order by l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString() + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString(), s.toString() ) ).toString() } From 7ca955a0e6ca6e4903b76f8eb2fcd7cf15de6dca Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Wed, 27 Jul 2022 17:23:10 +0200 Subject: [PATCH 487/736] Add support for XML InlineExpectationsTest --- .../InlineExpectationsTestPrivate.qll | 12 ++++++++++++ java/ql/test/library-tests/xml/Test.java | 3 +++ java/ql/test/library-tests/xml/XMLTest.expected | 0 java/ql/test/library-tests/xml/XMLTest.ql | 17 +++++++++++++++++ java/ql/test/library-tests/xml/test.xml | 4 ++++ 5 files changed, 36 insertions(+) create mode 100644 java/ql/test/library-tests/xml/Test.java create mode 100644 java/ql/test/library-tests/xml/XMLTest.expected create mode 100644 java/ql/test/library-tests/xml/XMLTest.ql create mode 100644 java/ql/test/library-tests/xml/test.xml diff --git a/java/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll b/java/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll index 5233f92f406..7e4a1b65f4c 100644 --- a/java/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll +++ b/java/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll @@ -20,3 +20,15 @@ private class KtExpectationComment extends KtComment, ExpectationComment { override string getContents() { result = this.getText().suffix(2).trim() } } + +private class XMLExpectationComment extends ExpectationComment instanceof XMLComment { + override string getContents() { result = this.(XMLComment).getText().trim() } + + override Location getLocation() { result = this.(XMLComment).getLocation() } + + override predicate hasLocationInfo(string path, int sl, int sc, int el, int ec) { + this.(XMLComment).hasLocationInfo(path, sl, sc, el, ec) + } + + override string toString() { result = this.(XMLComment).toString() } +} diff --git a/java/ql/test/library-tests/xml/Test.java b/java/ql/test/library-tests/xml/Test.java new file mode 100644 index 00000000000..4566fbca2ad --- /dev/null +++ b/java/ql/test/library-tests/xml/Test.java @@ -0,0 +1,3 @@ +public class Test { + +} diff --git a/java/ql/test/library-tests/xml/XMLTest.expected b/java/ql/test/library-tests/xml/XMLTest.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/xml/XMLTest.ql b/java/ql/test/library-tests/xml/XMLTest.ql new file mode 100644 index 00000000000..e4b8b3a0361 --- /dev/null +++ b/java/ql/test/library-tests/xml/XMLTest.ql @@ -0,0 +1,17 @@ +import semmle.code.xml.XML +import TestUtilities.InlineExpectationsTest + +class XMLTest extends InlineExpectationsTest { + XMLTest() { this = "XMLTest" } + + override string getARelevantTag() { result = "hasXmlResult" } + + override predicate hasActualResult(Location location, string element, string tag, string value) { + tag = "hasXmlResult" and + exists(XMLAttribute a | + a.getLocation() = location and + element = a.toString() and + value = "" + ) + } +} diff --git a/java/ql/test/library-tests/xml/test.xml b/java/ql/test/library-tests/xml/test.xml new file mode 100644 index 00000000000..cd41bd7f36c --- /dev/null +++ b/java/ql/test/library-tests/xml/test.xml @@ -0,0 +1,4 @@ + + + Text + \ No newline at end of file From 9e773302ed2539a7cb2126b92038f8f46ce855b4 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Jul 2022 17:30:01 +0100 Subject: [PATCH 488/736] Swift: Extend test cases. --- .../CWE-135/StringLengthConflation.expected | 104 +++++++++--------- .../CWE-135/StringLengthConflation.swift | 17 +-- 2 files changed, 62 insertions(+), 59 deletions(-) diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index 1af416dad2f..dec1e4799c7 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -1,19 +1,19 @@ edges | StringLengthConflation.swift:60:47:60:50 | .length : | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | | StringLengthConflation.swift:66:33:66:36 | .length : | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | -| StringLengthConflation.swift:93:28:93:31 | .length : | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:97:27:97:30 | .length : | StringLengthConflation.swift:97:27:97:39 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:101:25:101:28 | .length : | StringLengthConflation.swift:101:25:101:37 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:105:25:105:28 | .length : | StringLengthConflation.swift:105:25:105:37 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:111:23:111:26 | .length : | StringLengthConflation.swift:111:23:111:35 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:117:22:117:25 | .length : | StringLengthConflation.swift:117:22:117:34 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:122:34:122:36 | .count : | StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:123:36:123:38 | .count : | StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:128:36:128:38 | .count : | StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:129:38:129:40 | .count : | StringLengthConflation.swift:129:38:129:48 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:134:34:134:36 | .count : | StringLengthConflation.swift:134:34:134:44 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:135:36:135:38 | .count : | StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | -| StringLengthConflation.swift:141:28:141:30 | .count : | StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:96:28:96:31 | .length : | StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:100:27:100:30 | .length : | StringLengthConflation.swift:100:27:100:39 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:104:25:104:28 | .length : | StringLengthConflation.swift:104:25:104:37 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:108:25:108:28 | .length : | StringLengthConflation.swift:108:25:108:37 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:114:23:114:26 | .length : | StringLengthConflation.swift:114:23:114:35 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:120:22:120:25 | .length : | StringLengthConflation.swift:120:22:120:34 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:125:34:125:36 | .count : | StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:126:36:126:38 | .count : | StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:131:36:131:38 | .count : | StringLengthConflation.swift:131:36:131:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:132:38:132:40 | .count : | StringLengthConflation.swift:132:38:132:48 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:137:34:137:36 | .count : | StringLengthConflation.swift:137:34:137:44 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:138:36:138:38 | .count : | StringLengthConflation.swift:138:36:138:46 | ... call to -(_:_:) ... | +| StringLengthConflation.swift:144:28:144:30 | .count : | StringLengthConflation.swift:144:28:144:38 | ... call to -(_:_:) ... | nodes | StringLengthConflation.swift:53:43:53:46 | .length | semmle.label | .length | | StringLengthConflation.swift:60:47:60:50 | .length : | semmle.label | .length : | @@ -22,32 +22,32 @@ nodes | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | semmle.label | ... call to /(_:_:) ... | | StringLengthConflation.swift:72:33:72:35 | .count | semmle.label | .count | | StringLengthConflation.swift:78:47:78:49 | .count | semmle.label | .count | -| StringLengthConflation.swift:93:28:93:31 | .length : | semmle.label | .length : | -| StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:97:27:97:30 | .length : | semmle.label | .length : | -| StringLengthConflation.swift:97:27:97:39 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:101:25:101:28 | .length : | semmle.label | .length : | -| StringLengthConflation.swift:101:25:101:37 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:105:25:105:28 | .length : | semmle.label | .length : | -| StringLengthConflation.swift:105:25:105:37 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:111:23:111:26 | .length : | semmle.label | .length : | -| StringLengthConflation.swift:111:23:111:35 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:117:22:117:25 | .length : | semmle.label | .length : | -| StringLengthConflation.swift:117:22:117:34 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:122:34:122:36 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:123:36:123:38 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:128:36:128:38 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:129:38:129:40 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:129:38:129:48 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:134:34:134:36 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:134:34:134:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:135:36:135:38 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | -| StringLengthConflation.swift:141:28:141:30 | .count : | semmle.label | .count : | -| StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:96:28:96:31 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:100:27:100:30 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:100:27:100:39 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:104:25:104:28 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:104:25:104:37 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:108:25:108:28 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:108:25:108:37 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:114:23:114:26 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:114:23:114:35 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:120:22:120:25 | .length : | semmle.label | .length : | +| StringLengthConflation.swift:120:22:120:34 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:125:34:125:36 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:126:36:126:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:131:36:131:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:131:36:131:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:132:38:132:40 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:132:38:132:48 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:137:34:137:36 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:137:34:137:44 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:138:36:138:38 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:138:36:138:46 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | +| StringLengthConflation.swift:144:28:144:30 | .count : | semmle.label | .count : | +| StringLengthConflation.swift:144:28:144:38 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | subpaths #select | StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | This NSString length is used in a String, but it may not be equivalent. | @@ -55,16 +55,16 @@ subpaths | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | StringLengthConflation.swift:66:33:66:36 | .length : | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | StringLengthConflation.swift:93:28:93:31 | .length : | StringLengthConflation.swift:93:28:93:40 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | -| StringLengthConflation.swift:97:27:97:39 | ... call to -(_:_:) ... | StringLengthConflation.swift:97:27:97:30 | .length : | StringLengthConflation.swift:97:27:97:39 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | -| StringLengthConflation.swift:101:25:101:37 | ... call to -(_:_:) ... | StringLengthConflation.swift:101:25:101:28 | .length : | StringLengthConflation.swift:101:25:101:37 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | -| StringLengthConflation.swift:105:25:105:37 | ... call to -(_:_:) ... | StringLengthConflation.swift:105:25:105:28 | .length : | StringLengthConflation.swift:105:25:105:37 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | -| StringLengthConflation.swift:111:23:111:35 | ... call to -(_:_:) ... | StringLengthConflation.swift:111:23:111:26 | .length : | StringLengthConflation.swift:111:23:111:35 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | -| StringLengthConflation.swift:117:22:117:34 | ... call to -(_:_:) ... | StringLengthConflation.swift:117:22:117:25 | .length : | StringLengthConflation.swift:117:22:117:34 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | -| StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:122:34:122:36 | .count : | StringLengthConflation.swift:122:34:122:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:123:36:123:38 | .count : | StringLengthConflation.swift:123:36:123:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:128:36:128:38 | .count : | StringLengthConflation.swift:128:36:128:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:129:38:129:48 | ... call to -(_:_:) ... | StringLengthConflation.swift:129:38:129:40 | .count : | StringLengthConflation.swift:129:38:129:48 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:134:34:134:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:134:34:134:36 | .count : | StringLengthConflation.swift:134:34:134:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:135:36:135:38 | .count : | StringLengthConflation.swift:135:36:135:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | StringLengthConflation.swift:141:28:141:30 | .count : | StringLengthConflation.swift:141:28:141:38 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | StringLengthConflation.swift:96:28:96:31 | .length : | StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:100:27:100:39 | ... call to -(_:_:) ... | StringLengthConflation.swift:100:27:100:30 | .length : | StringLengthConflation.swift:100:27:100:39 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:104:25:104:37 | ... call to -(_:_:) ... | StringLengthConflation.swift:104:25:104:28 | .length : | StringLengthConflation.swift:104:25:104:37 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:108:25:108:37 | ... call to -(_:_:) ... | StringLengthConflation.swift:108:25:108:28 | .length : | StringLengthConflation.swift:108:25:108:37 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:114:23:114:35 | ... call to -(_:_:) ... | StringLengthConflation.swift:114:23:114:26 | .length : | StringLengthConflation.swift:114:23:114:35 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:120:22:120:34 | ... call to -(_:_:) ... | StringLengthConflation.swift:120:22:120:25 | .length : | StringLengthConflation.swift:120:22:120:34 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:125:34:125:36 | .count : | StringLengthConflation.swift:125:34:125:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:126:36:126:38 | .count : | StringLengthConflation.swift:126:36:126:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:131:36:131:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:131:36:131:38 | .count : | StringLengthConflation.swift:131:36:131:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:132:38:132:48 | ... call to -(_:_:) ... | StringLengthConflation.swift:132:38:132:40 | .count : | StringLengthConflation.swift:132:38:132:48 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:137:34:137:44 | ... call to -(_:_:) ... | StringLengthConflation.swift:137:34:137:36 | .count : | StringLengthConflation.swift:137:34:137:44 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:138:36:138:46 | ... call to -(_:_:) ... | StringLengthConflation.swift:138:36:138:38 | .count : | StringLengthConflation.swift:138:36:138:46 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:144:28:144:38 | ... call to -(_:_:) ... | StringLengthConflation.swift:144:28:144:30 | .count : | StringLengthConflation.swift:144:28:144:38 | ... call to -(_:_:) ... | This String length is used in an NSString, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index 527cacd772b..831ea864916 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -76,16 +76,19 @@ func test(s: String) { let range5 = NSRange(location: 0, length: ns.length) // GOOD let range6 = NSRange(location: 0, length: s.count) // BAD: String length used in NSMakeRange - print("NSRange '\(range5.description)' / '\(range6.description)'") + let range7 = NSRange(location: 0, length: s.utf8.count) // BAD: String.utf8 length used in NSMakeRange [NOT DETECTED] + let range8 = NSRange(location: 0, length: s.utf16.count) // BAD: String.utf16 length used in NSMakeRange [NOT DETECTED] + let range9 = NSRange(location: 0, length: s.unicodeScalars.count) // BAD: String.unicodeScalars length used in NSMakeRange [NOT DETECTED] + print("NSRange '\(range5.description)' / '\(range6.description)' '\(range7.description)' '\(range8.description)' '\(range9.description)'") // --- converting Range to NSRange --- - let range7 = s.startIndex ..< s.endIndex - let range8 = NSRange(range7, in: s) // GOOD - let location = s.distance(from: s.startIndex, to: range7.lowerBound) - let length = s.distance(from: range7.lowerBound, to: range7.upperBound) - let range9 = NSRange(location: location, length: length) // BAD [NOT DETECTED] - print("NSRange '\(range8.description)' / '\(range9.description)'") + let range10 = s.startIndex ..< s.endIndex + let range11 = NSRange(range10, in: s) // GOOD + let location = s.distance(from: s.startIndex, to: range10.lowerBound) + let length = s.distance(from: range10.lowerBound, to: range10.upperBound) + let range12 = NSRange(location: location, length: length) // BAD [NOT DETECTED] + print("NSRange '\(range11.description)' / '\(range12.description)'") // --- String operations using an integer directly --- From 89d5bbb8e07575646e126685d6705dab50dc9963 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Jul 2022 15:19:07 +0100 Subject: [PATCH 489/736] Swift: Generalize the flow states in this query. --- .../CWE-135/StringLengthConflation.ql | 55 ++++++++++++++----- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 398c48f01e5..0b942f88d77 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -14,6 +14,24 @@ import swift import codeql.swift.dataflow.DataFlow import DataFlow::PathGraph +/** + * A flow state for this query, which is a type of Swift string encoding. + */ +class StringLengthConflationFlowState extends string { + string singular; + + StringLengthConflationFlowState() { + this = "String" and singular = "a String" + or + this = "NSString" and singular = "an NSString" + } + + /** + * Gets text for the singular form of this flow state. + */ + string getSingular() { result = singular } +} + /** * A configuration for tracking string lengths originating from source that is * a `String` or an `NSString` object, to a sink of a different kind that @@ -40,7 +58,11 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { ) } - override predicate isSink(DataFlow::Node node, string flowstate) { + /** + * Holds if `node` is a sink and `flowstate` is the *correct* flow state for + * that sink. We actually want to report incorrect flow states. + */ + predicate isSinkImpl(DataFlow::Node node, string flowstate) { // arguments to method calls... exists( string className, string methodName, string paramName, ClassDecl c, AbstractFunctionDecl f, @@ -78,7 +100,7 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { f.getName() = methodName and f.getParam(pragma[only_bind_into](arg)).getName() = paramName and call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "String" // `String` length flowing into `NSString` + flowstate = "NSString" ) or // arguments to function calls... @@ -89,7 +111,7 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { call.getStaticTarget().getName() = funcName and call.getStaticTarget().getParam(pragma[only_bind_into](arg)).getName() = paramName and call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "String" // `String` length flowing into `NSString` + flowstate = "NSString" ) or // arguments to function calls... @@ -122,7 +144,16 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { .getParam(pragma[only_bind_into](arg)) .getName() = paramName and call.getArgument(pragma[only_bind_into](arg)).getExpr() = node.asExpr() and - flowstate = "NSString" // `NSString` length flowing into `String` + flowstate = "String" + ) + } + + override predicate isSink(DataFlow::Node node, string flowstate) { + // Permit any *incorrect* flowstate, as those are the results the query + // should report. + exists(string correctFlowState | + isSinkImpl(node, correctFlowState) and + flowstate.(StringLengthConflationFlowState) != correctFlowState ) } @@ -134,15 +165,13 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { from StringLengthConflationConfiguration config, DataFlow::PathNode source, DataFlow::PathNode sink, - string flowstate, string message + StringLengthConflationFlowState sourceFlowState, StringLengthConflationFlowState sinkFlowstate, + string message where config.hasFlowPath(source, sink) and - config.isSink(sink.getNode(), flowstate) and - ( - flowstate = "String" and - message = "This String length is used in an NSString, but it may not be equivalent." - or - flowstate = "NSString" and - message = "This NSString length is used in a String, but it may not be equivalent." - ) + config.isSource(source.getNode(), sourceFlowState) and + config.isSinkImpl(sink.getNode(), sinkFlowstate) and + message = + "This " + sourceFlowState + " length is used in " + sinkFlowstate.getSingular() + + ", but it may not be equivalent." select sink.getNode(), source, sink, message From 70ca37a3d0580aa5be32b97f958da4bf9c0d8bc4 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Jul 2022 15:39:27 +0100 Subject: [PATCH 490/736] Swift: Model utf8, utf16 a\nd unicodeScalars sources. --- .../CWE-135/StringLengthConflation.ql | 30 +++++++++++++++++++ .../CWE-135/StringLengthConflation.expected | 12 ++++++++ .../CWE-135/StringLengthConflation.swift | 12 ++++---- 3 files changed, 48 insertions(+), 6 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 0b942f88d77..86caf7b064f 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -24,6 +24,12 @@ class StringLengthConflationFlowState extends string { this = "String" and singular = "a String" or this = "NSString" and singular = "an NSString" + or + this = "String.utf8" and singular = "a String.utf8" + or + this = "String.utf16" and singular = "a String.utf16" + or + this = "String.unicodeScalars" and singular = "a String.unicodeScalars" } /** @@ -56,6 +62,30 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { node.asExpr() = member and flowstate = "NSString" ) + or + // result of a call to `String.utf8.count` + exists(MemberRefExpr member | + member.getBaseExpr().getType().getName() = "String.UTF8View" and + member.getMember().(VarDecl).getName() = "count" and + node.asExpr() = member and + flowstate = "String.utf8" + ) + or + // result of a call to `String.utf16.count` + exists(MemberRefExpr member | + member.getBaseExpr().getType().getName() = "String.UTF16View" and + member.getMember().(VarDecl).getName() = "count" and + node.asExpr() = member and + flowstate = "String.utf16" + ) + or + // result of a call to `String.unicodeScalars.count` + exists(MemberRefExpr member | + member.getBaseExpr().getType().getName() = "String.UnicodeScalarView" and + member.getMember().(VarDecl).getName() = "count" and + node.asExpr() = member and + flowstate = "String.unicodeScalars" + ) } /** diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index dec1e4799c7..c9a523c48a0 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -16,12 +16,18 @@ edges | StringLengthConflation.swift:144:28:144:30 | .count : | StringLengthConflation.swift:144:28:144:38 | ... call to -(_:_:) ... | nodes | StringLengthConflation.swift:53:43:53:46 | .length | semmle.label | .length | +| StringLengthConflation.swift:54:43:54:50 | .count | semmle.label | .count | +| StringLengthConflation.swift:55:43:55:51 | .count | semmle.label | .count | +| StringLengthConflation.swift:56:43:56:60 | .count | semmle.label | .count | | StringLengthConflation.swift:60:47:60:50 | .length : | semmle.label | .length : | | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | semmle.label | ... call to /(_:_:) ... | | StringLengthConflation.swift:66:33:66:36 | .length : | semmle.label | .length : | | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | semmle.label | ... call to /(_:_:) ... | | StringLengthConflation.swift:72:33:72:35 | .count | semmle.label | .count | | StringLengthConflation.swift:78:47:78:49 | .count | semmle.label | .count | +| StringLengthConflation.swift:79:47:79:54 | .count | semmle.label | .count | +| StringLengthConflation.swift:80:47:80:55 | .count | semmle.label | .count | +| StringLengthConflation.swift:81:47:81:64 | .count | semmle.label | .count | | StringLengthConflation.swift:96:28:96:31 | .length : | semmle.label | .length : | | StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | | StringLengthConflation.swift:100:27:100:30 | .length : | semmle.label | .length : | @@ -51,10 +57,16 @@ nodes subpaths #select | StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | StringLengthConflation.swift:53:43:53:46 | .length | This NSString length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:54:43:54:50 | .count | StringLengthConflation.swift:54:43:54:50 | .count | StringLengthConflation.swift:54:43:54:50 | .count | This String.utf8 length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:55:43:55:51 | .count | StringLengthConflation.swift:55:43:55:51 | .count | StringLengthConflation.swift:55:43:55:51 | .count | This String.utf16 length is used in a String, but it may not be equivalent. | +| StringLengthConflation.swift:56:43:56:60 | .count | StringLengthConflation.swift:56:43:56:60 | .count | StringLengthConflation.swift:56:43:56:60 | .count | This String.unicodeScalars length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | StringLengthConflation.swift:60:47:60:50 | .length : | StringLengthConflation.swift:60:47:60:59 | ... call to /(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | StringLengthConflation.swift:66:33:66:36 | .length : | StringLengthConflation.swift:66:33:66:45 | ... call to /(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | This String length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:79:47:79:54 | .count | StringLengthConflation.swift:79:47:79:54 | .count | StringLengthConflation.swift:79:47:79:54 | .count | This String.utf8 length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:80:47:80:55 | .count | StringLengthConflation.swift:80:47:80:55 | .count | StringLengthConflation.swift:80:47:80:55 | .count | This String.utf16 length is used in an NSString, but it may not be equivalent. | +| StringLengthConflation.swift:81:47:81:64 | .count | StringLengthConflation.swift:81:47:81:64 | .count | StringLengthConflation.swift:81:47:81:64 | .count | This String.unicodeScalars length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | StringLengthConflation.swift:96:28:96:31 | .length : | StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:100:27:100:39 | ... call to -(_:_:) ... | StringLengthConflation.swift:100:27:100:30 | .length : | StringLengthConflation.swift:100:27:100:39 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:104:25:104:37 | ... call to -(_:_:) ... | StringLengthConflation.swift:104:25:104:28 | .length : | StringLengthConflation.swift:104:25:104:37 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index 831ea864916..5495a44988a 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -51,9 +51,9 @@ func test(s: String) { let ix1 = String.Index(encodedOffset: s.count) // GOOD let ix2 = String.Index(encodedOffset: ns.length) // BAD: NSString length used in String.Index - let ix3 = String.Index(encodedOffset: s.utf8.count) // BAD: String.utf8 length used in String.Index [NOT DETECTED] - let ix4 = String.Index(encodedOffset: s.utf16.count) // BAD: String.utf16 length used in String.Index [NOT DETECTED] - let ix5 = String.Index(encodedOffset: s.unicodeScalars.count) // BAD: string.unicodeScalars length used in String.Index [NOT DETECTED] + let ix3 = String.Index(encodedOffset: s.utf8.count) // BAD: String.utf8 length used in String.Index + let ix4 = String.Index(encodedOffset: s.utf16.count) // BAD: String.utf16 length used in String.Index + let ix5 = String.Index(encodedOffset: s.unicodeScalars.count) // BAD: string.unicodeScalars length used in String.Index print("String.Index '\(ix1.encodedOffset)' / '\(ix2.encodedOffset)' '\(ix3.encodedOffset)' '\(ix4.encodedOffset)' '\(ix5.encodedOffset)'") let ix6 = s.index(s.startIndex, offsetBy: s.count / 2) // GOOD @@ -76,9 +76,9 @@ func test(s: String) { let range5 = NSRange(location: 0, length: ns.length) // GOOD let range6 = NSRange(location: 0, length: s.count) // BAD: String length used in NSMakeRange - let range7 = NSRange(location: 0, length: s.utf8.count) // BAD: String.utf8 length used in NSMakeRange [NOT DETECTED] - let range8 = NSRange(location: 0, length: s.utf16.count) // BAD: String.utf16 length used in NSMakeRange [NOT DETECTED] - let range9 = NSRange(location: 0, length: s.unicodeScalars.count) // BAD: String.unicodeScalars length used in NSMakeRange [NOT DETECTED] + let range7 = NSRange(location: 0, length: s.utf8.count) // BAD: String.utf8 length used in NSMakeRange + let range8 = NSRange(location: 0, length: s.utf16.count) // BAD: String.utf16 length used in NSMakeRange + let range9 = NSRange(location: 0, length: s.unicodeScalars.count) // BAD: String.unicodeScalars length used in NSMakeRange print("NSRange '\(range5.description)' / '\(range6.description)' '\(range7.description)' '\(range8.description)' '\(range9.description)'") // --- converting Range to NSRange --- From fe69bbf17ccadacf6b09c5055f82b97eb62065ab Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Jul 2022 17:44:57 +0100 Subject: [PATCH 491/736] Swift: It turns out NSString.length always exactly matches String.utf16.count. --- .../CWE-135/StringLengthConflation.ql | 22 ++++++++++++++----- .../CWE-135/StringLengthConflation.expected | 2 -- .../CWE-135/StringLengthConflation.swift | 2 +- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index 86caf7b064f..7ab5826ba82 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -18,20 +18,29 @@ import DataFlow::PathGraph * A flow state for this query, which is a type of Swift string encoding. */ class StringLengthConflationFlowState extends string { + string equivClass; string singular; StringLengthConflationFlowState() { - this = "String" and singular = "a String" + this = "String" and singular = "a String" and equivClass = "String" or - this = "NSString" and singular = "an NSString" + this = "NSString" and singular = "an NSString" and equivClass = "NSString" or - this = "String.utf8" and singular = "a String.utf8" + this = "String.utf8" and singular = "a String.utf8" and equivClass = "String.utf8" or - this = "String.utf16" and singular = "a String.utf16" + this = "String.utf16" and singular = "a String.utf16" and equivClass = "NSString" or - this = "String.unicodeScalars" and singular = "a String.unicodeScalars" + this = "String.unicodeScalars" and + singular = "a String.unicodeScalars" and + equivClass = "String.unicodeScalars" } + /** + * Gets the equivalence class for this flow state. If these are equal, + * they should be treated as equivalent. + */ + string getEquivClass() { result = equivClass } + /** * Gets text for the singular form of this flow state. */ @@ -183,7 +192,8 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { // should report. exists(string correctFlowState | isSinkImpl(node, correctFlowState) and - flowstate.(StringLengthConflationFlowState) != correctFlowState + flowstate.(StringLengthConflationFlowState).getEquivClass() != + correctFlowState.(StringLengthConflationFlowState).getEquivClass() ) } diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index c9a523c48a0..a648f99b728 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -26,7 +26,6 @@ nodes | StringLengthConflation.swift:72:33:72:35 | .count | semmle.label | .count | | StringLengthConflation.swift:78:47:78:49 | .count | semmle.label | .count | | StringLengthConflation.swift:79:47:79:54 | .count | semmle.label | .count | -| StringLengthConflation.swift:80:47:80:55 | .count | semmle.label | .count | | StringLengthConflation.swift:81:47:81:64 | .count | semmle.label | .count | | StringLengthConflation.swift:96:28:96:31 | .length : | semmle.label | .length : | | StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | semmle.label | ... call to -(_:_:) ... | @@ -65,7 +64,6 @@ subpaths | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | StringLengthConflation.swift:72:33:72:35 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | StringLengthConflation.swift:78:47:78:49 | .count | This String length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:79:47:79:54 | .count | StringLengthConflation.swift:79:47:79:54 | .count | StringLengthConflation.swift:79:47:79:54 | .count | This String.utf8 length is used in an NSString, but it may not be equivalent. | -| StringLengthConflation.swift:80:47:80:55 | .count | StringLengthConflation.swift:80:47:80:55 | .count | StringLengthConflation.swift:80:47:80:55 | .count | This String.utf16 length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:81:47:81:64 | .count | StringLengthConflation.swift:81:47:81:64 | .count | StringLengthConflation.swift:81:47:81:64 | .count | This String.unicodeScalars length is used in an NSString, but it may not be equivalent. | | StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | StringLengthConflation.swift:96:28:96:31 | .length : | StringLengthConflation.swift:96:28:96:40 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | | StringLengthConflation.swift:100:27:100:39 | ... call to -(_:_:) ... | StringLengthConflation.swift:100:27:100:30 | .length : | StringLengthConflation.swift:100:27:100:39 | ... call to -(_:_:) ... | This NSString length is used in a String, but it may not be equivalent. | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift index 5495a44988a..4321b661fa4 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.swift @@ -77,7 +77,7 @@ func test(s: String) { let range5 = NSRange(location: 0, length: ns.length) // GOOD let range6 = NSRange(location: 0, length: s.count) // BAD: String length used in NSMakeRange let range7 = NSRange(location: 0, length: s.utf8.count) // BAD: String.utf8 length used in NSMakeRange - let range8 = NSRange(location: 0, length: s.utf16.count) // BAD: String.utf16 length used in NSMakeRange + let range8 = NSRange(location: 0, length: s.utf16.count) // GOOD: String.utf16 length and NSRange count are equivalent let range9 = NSRange(location: 0, length: s.unicodeScalars.count) // BAD: String.unicodeScalars length used in NSMakeRange print("NSRange '\(range5.description)' / '\(range6.description)' '\(range7.description)' '\(range8.description)' '\(range9.description)'") From 9b26921cb67a03a6dd3958e0f42b6941523072c3 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 28 Jul 2022 09:04:12 +0200 Subject: [PATCH 492/736] Control flow: add order disambuigation customization --- .../internal/ControlFlowGraphImplShared.qll | 13 ++++++++++--- .../internal/ControlFlowGraphImplShared.qll | 13 ++++++++++--- .../internal/ControlFlowGraphImplShared.qll | 13 ++++++++++--- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll index 13fb796ca3d..7d0dd10c084 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImplShared.qll @@ -881,7 +881,12 @@ import Cached * graph is restricted to nodes from `RelevantNode`. */ module TestOutput { - abstract class RelevantNode extends Node { } + abstract class RelevantNode extends Node { + /** + * Gets a string used to resolve ties in node and edge ordering. + */ + string getOrderDisambuigation() { result = "" } + } query predicate nodes(RelevantNode n, string attr, string val) { attr = "semmle.order" and @@ -894,7 +899,8 @@ module TestOutput { p order by l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn(), p.toString() + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), p.toString(), + p.getOrderDisambuigation() ) ).toString() } @@ -916,7 +922,8 @@ module TestOutput { s order by l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString(), s.toString() + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString(), s.toString(), + s.getOrderDisambuigation() ) ).toString() } diff --git a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll index 13fb796ca3d..7d0dd10c084 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImplShared.qll @@ -881,7 +881,12 @@ import Cached * graph is restricted to nodes from `RelevantNode`. */ module TestOutput { - abstract class RelevantNode extends Node { } + abstract class RelevantNode extends Node { + /** + * Gets a string used to resolve ties in node and edge ordering. + */ + string getOrderDisambuigation() { result = "" } + } query predicate nodes(RelevantNode n, string attr, string val) { attr = "semmle.order" and @@ -894,7 +899,8 @@ module TestOutput { p order by l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn(), p.toString() + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), p.toString(), + p.getOrderDisambuigation() ) ).toString() } @@ -916,7 +922,8 @@ module TestOutput { s order by l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString(), s.toString() + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString(), s.toString(), + s.getOrderDisambuigation() ) ).toString() } diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplShared.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplShared.qll index 13fb796ca3d..7d0dd10c084 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplShared.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplShared.qll @@ -881,7 +881,12 @@ import Cached * graph is restricted to nodes from `RelevantNode`. */ module TestOutput { - abstract class RelevantNode extends Node { } + abstract class RelevantNode extends Node { + /** + * Gets a string used to resolve ties in node and edge ordering. + */ + string getOrderDisambuigation() { result = "" } + } query predicate nodes(RelevantNode n, string attr, string val) { attr = "semmle.order" and @@ -894,7 +899,8 @@ module TestOutput { p order by l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn(), p.toString() + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), p.toString(), + p.getOrderDisambuigation() ) ).toString() } @@ -916,7 +922,8 @@ module TestOutput { s order by l.getFile().getBaseName(), l.getFile().getAbsolutePath(), l.getStartLine(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString(), s.toString() + l.getStartColumn(), l.getEndLine(), l.getEndColumn(), t.toString(), s.toString(), + s.getOrderDisambuigation() ) ).toString() } From e5342867c6b443b5488a82894614c1456c8d2e2f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 28 Jul 2022 09:52:33 +0100 Subject: [PATCH 493/736] Swift: Add a note to the qhelp. --- .../src/queries/Security/CWE-135/StringLengthConflation.qhelp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.qhelp b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.qhelp index a13dbd80152..15e99e7e407 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.qhelp +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.qhelp @@ -5,6 +5,8 @@

    Using a length value from an NSString in a String, or a count from a String in an NSString, may cause unexpected behavior including (in some cases) buffer overwrites. This is because certain unicode sequences are represented as one character in a String but as a sequence of multiple characters in an NSString. For example, a 'thumbs up' emoji with a skin tone modifier (👍🏿) is represented as U+1F44D (👍) then the modifier U+1F3FF.

    +

    This issue can also arise from using the values of String.utf8.count, String.utf16.count or String.unicodeScalars.count in an unsuitable place.

    + From 6cd6f74be97b0d9fbde01604316e002c79899817 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 28 Jul 2022 10:13:04 +0100 Subject: [PATCH 494/736] Swift: Repair predicate lost in merge. --- .../queries/Security/CWE-135/StringLengthConflation.ql | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql index eeee583dd6f..c9bdff012ce 100644 --- a/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql +++ b/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql @@ -179,6 +179,16 @@ class StringLengthConflationConfiguration extends DataFlow::Configuration { ) } + override predicate isSink(DataFlow::Node node, string flowstate) { + // Permit any *incorrect* flowstate, as those are the results the query + // should report. + exists(string correctFlowState | + isSinkImpl(node, correctFlowState) and + flowstate.(StringLengthConflationFlowState).getEquivClass() != + correctFlowState.(StringLengthConflationFlowState).getEquivClass() + ) + } + override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { // allow flow through `+`, `-`, `*` etc. node2.asExpr().(ArithmeticOperation).getAnOperand() = node1.asExpr() From ab1370cc8f01b7bedf6bfdbbcb9bb05ef8ca291c Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 28 Jul 2022 11:19:45 +0200 Subject: [PATCH 495/736] Swift: add `--no-cleanup` to integration tests --- swift/integration-tests/create_database_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/integration-tests/create_database_utils.py b/swift/integration-tests/create_database_utils.py index 3f2d11a39f7..38822fd70b4 100644 --- a/swift/integration-tests/create_database_utils.py +++ b/swift/integration-tests/create_database_utils.py @@ -12,7 +12,7 @@ def run_codeql_database_create(cmds, lang, keep_trap=True): codeql_root = pathlib.Path(__file__).parents[2] cmd = [ "codeql", "database", "create", - "-s", ".", "-l", "swift", "--internal-use-lua-tracing", f"--search-path={codeql_root}", + "-s", ".", "-l", "swift", "--internal-use-lua-tracing", f"--search-path={codeql_root}", "--no-cleanup", ] if keep_trap: cmd.append("--keep-trap") From 76ea63ffbe07a68686a132d3d237004d1dfad0d4 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 28 Jul 2022 12:28:52 +0200 Subject: [PATCH 496/736] Swift: deduplicate `VarDecl` Deduplication of `ConcreteVarDecl` is triggered only if its `DeclContext` is not local. This avoids a mangled name conflict. Also added more thourough tests for `ConcreteVarDecl` and `ParamDecl`. --- swift/extractor/visitors/DeclVisitor.cpp | 29 ++++++++++++------- swift/extractor/visitors/DeclVisitor.h | 4 +-- .../ConcreteVarDecl/ConcreteVarDecl.expected | 7 +++++ .../decl/ConcreteVarDecl/ConcreteVarDecl.ql | 14 +++++++++ .../ConcreteVarDecl_getAccessorDecl.expected | 13 +++++++++ .../ConcreteVarDecl_getAccessorDecl.ql | 7 +++++ ...cl_getAttachedPropertyWrapperType.expected | 1 + ...eVarDecl_getAttachedPropertyWrapperType.ql | 7 +++++ ...creteVarDecl_getParentInitializer.expected | 3 ++ .../ConcreteVarDecl_getParentInitializer.ql | 7 +++++ .../ConcreteVarDecl_getParentPattern.expected | 7 +++++ .../ConcreteVarDecl_getParentPattern.ql | 7 +++++ .../decl/ConcreteVarDecl/MISSING_SOURCE.txt | 4 --- .../decl/ConcreteVarDecl/var_decls.swift | 25 ++++++++++++++++ .../decl/ParamDecl/MISSING_SOURCE.txt | 4 --- .../decl/ParamDecl/ParamDecl.expected | 15 ++++++++++ .../generated/decl/ParamDecl/ParamDecl.ql | 14 +++++++++ .../ParamDecl_getAccessorDecl.expected | 0 .../ParamDecl/ParamDecl_getAccessorDecl.ql | 7 +++++ ...cl_getAttachedPropertyWrapperType.expected | 0 ...aramDecl_getAttachedPropertyWrapperType.ql | 7 +++++ .../ParamDecl_getParentInitializer.expected | 0 .../ParamDecl_getParentInitializer.ql | 7 +++++ .../ParamDecl_getParentPattern.expected | 0 .../ParamDecl/ParamDecl_getParentPattern.ql | 7 +++++ .../decl/ParamDecl/param_decls.swift | 15 ++++++++++ 26 files changed, 191 insertions(+), 20 deletions(-) create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessorDecl.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessorDecl.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/var_decls.swift delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessorDecl.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessorDecl.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.expected create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql create mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/param_decls.swift diff --git a/swift/extractor/visitors/DeclVisitor.cpp b/swift/extractor/visitors/DeclVisitor.cpp index 819c959a6d2..dc693e66a0f 100644 --- a/swift/extractor/visitors/DeclVisitor.cpp +++ b/swift/extractor/visitors/DeclVisitor.cpp @@ -83,11 +83,13 @@ codeql::PrecedenceGroupDecl DeclVisitor::translatePrecedenceGroupDecl( return entry; } -codeql::ParamDecl DeclVisitor::translateParamDecl(const swift::ParamDecl& decl) { - // TODO: deduplicate - ParamDecl entry{dispatcher_.assignNewLabel(decl)}; - fillVarDecl(decl, entry); - entry.is_inout = decl.isInOut(); +std::optional DeclVisitor::translateParamDecl(const swift::ParamDecl& decl) { + auto entry = createNamedEntry(decl); + if (!entry) { + return std::nullopt; + } + fillVarDecl(decl, *entry); + entry->is_inout = decl.isInOut(); return entry; } @@ -111,11 +113,18 @@ codeql::PatternBindingDecl DeclVisitor::translatePatternBindingDecl( return entry; } -codeql::ConcreteVarDecl DeclVisitor::translateVarDecl(const swift::VarDecl& decl) { - // TODO: deduplicate all non-local variables - ConcreteVarDecl entry{dispatcher_.assignNewLabel(decl)}; - entry.introducer_int = static_cast(decl.getIntroducer()); - fillVarDecl(decl, entry); +std::optional DeclVisitor::translateVarDecl(const swift::VarDecl& decl) { + std::optional entry; + if (decl.getDeclContext()->isLocalContext()) { + entry.emplace(dispatcher_.assignNewLabel(decl)); + } else { + entry = createNamedEntry(decl); + if (!entry) { + return std::nullopt; + } + } + entry->introducer_int = static_cast(decl.getIntroducer()); + fillVarDecl(decl, *entry); return entry; } diff --git a/swift/extractor/visitors/DeclVisitor.h b/swift/extractor/visitors/DeclVisitor.h index 0d6296591a0..85e819adb5b 100644 --- a/swift/extractor/visitors/DeclVisitor.h +++ b/swift/extractor/visitors/DeclVisitor.h @@ -30,10 +30,10 @@ class DeclVisitor : public AstVisitorBase { codeql::PostfixOperatorDecl translatePostfixOperatorDecl(const swift::PostfixOperatorDecl& decl); codeql::InfixOperatorDecl translateInfixOperatorDecl(const swift::InfixOperatorDecl& decl); codeql::PrecedenceGroupDecl translatePrecedenceGroupDecl(const swift::PrecedenceGroupDecl& decl); - codeql::ParamDecl translateParamDecl(const swift::ParamDecl& decl); + std::optional translateParamDecl(const swift::ParamDecl& decl); codeql::TopLevelCodeDecl translateTopLevelCodeDecl(const swift::TopLevelCodeDecl& decl); codeql::PatternBindingDecl translatePatternBindingDecl(const swift::PatternBindingDecl& decl); - codeql::ConcreteVarDecl translateVarDecl(const swift::VarDecl& decl); + std::optional translateVarDecl(const swift::VarDecl& decl); std::variant translateStructDecl( const swift::StructDecl& decl); std::variant translateClassDecl( diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected new file mode 100644 index 00000000000..f50475445e5 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected @@ -0,0 +1,7 @@ +| var_decls.swift:4:7:4:7 | i | getInterfaceType: | Int | getName: | i | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:7:5:7:5 | numbers | getInterfaceType: | [Int] | getName: | numbers | getType: | [Int] | getIntroducerInt: | 1 | +| var_decls.swift:10:12:10:12 | numbers | getInterfaceType: | [Int] | getName: | numbers | getType: | [Int] | getIntroducerInt: | 0 | +| var_decls.swift:15:7:15:7 | wrappedValue | getInterfaceType: | T | getName: | wrappedValue | getType: | T | getIntroducerInt: | 1 | +| var_decls.swift:20:7:20:7 | wrappedValue | getInterfaceType: | Int | getName: | wrappedValue | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:24:15:24:15 | _wrapped | getInterfaceType: | X | getName: | _wrapped | getType: | X | getIntroducerInt: | 1 | +| var_decls.swift:24:15:24:15 | wrapped | getInterfaceType: | Int | getName: | wrapped | getType: | Int | getIntroducerInt: | 1 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql new file mode 100644 index 00000000000..55ae04af6ac --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql @@ -0,0 +1,14 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ConcreteVarDecl x, Type getInterfaceType, string getName, Type getType, int getIntroducerInt +where + toBeTested(x) and + not x.isUnknown() and + getInterfaceType = x.getInterfaceType() and + getName = x.getName() and + getType = x.getType() and + getIntroducerInt = x.getIntroducerInt() +select x, "getInterfaceType:", getInterfaceType, "getName:", getName, "getType:", getType, + "getIntroducerInt:", getIntroducerInt diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessorDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessorDecl.expected new file mode 100644 index 00000000000..cfbce6fe5ef --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessorDecl.expected @@ -0,0 +1,13 @@ +| var_decls.swift:10:12:10:12 | numbers | 0 | var_decls.swift:10:12:10:12 | get | +| var_decls.swift:15:7:15:7 | wrappedValue | 0 | var_decls.swift:15:7:15:7 | get | +| var_decls.swift:15:7:15:7 | wrappedValue | 1 | var_decls.swift:15:7:15:7 | set | +| var_decls.swift:15:7:15:7 | wrappedValue | 2 | var_decls.swift:15:7:15:7 | (unnamed function decl) | +| var_decls.swift:20:7:20:7 | wrappedValue | 0 | var_decls.swift:20:7:20:7 | get | +| var_decls.swift:20:7:20:7 | wrappedValue | 1 | var_decls.swift:20:7:20:7 | set | +| var_decls.swift:20:7:20:7 | wrappedValue | 2 | var_decls.swift:20:7:20:7 | (unnamed function decl) | +| var_decls.swift:24:15:24:15 | _wrapped | 0 | var_decls.swift:24:15:24:15 | get | +| var_decls.swift:24:15:24:15 | _wrapped | 1 | var_decls.swift:24:15:24:15 | set | +| var_decls.swift:24:15:24:15 | _wrapped | 2 | var_decls.swift:24:15:24:15 | (unnamed function decl) | +| var_decls.swift:24:15:24:15 | wrapped | 0 | var_decls.swift:24:15:24:15 | get | +| var_decls.swift:24:15:24:15 | wrapped | 1 | var_decls.swift:24:15:24:15 | set | +| var_decls.swift:24:15:24:15 | wrapped | 2 | var_decls.swift:24:15:24:15 | (unnamed function decl) | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessorDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessorDecl.ql new file mode 100644 index 00000000000..b25caf7bf97 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessorDecl.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ConcreteVarDecl x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getAccessorDecl(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.expected new file mode 100644 index 00000000000..67bff5661b0 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.expected @@ -0,0 +1 @@ +| var_decls.swift:24:15:24:15 | wrapped | X | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql new file mode 100644 index 00000000000..569c25f0602 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ConcreteVarDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getAttachedPropertyWrapperType() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.expected new file mode 100644 index 00000000000..786b16fcab1 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.expected @@ -0,0 +1,3 @@ +| var_decls.swift:4:7:4:7 | i | var_decls.swift:4:11:4:11 | 0 | +| var_decls.swift:7:5:7:5 | numbers | var_decls.swift:7:15:7:18 | [...] | +| var_decls.swift:10:12:10:12 | numbers | var_decls.swift:10:22:10:35 | [...] | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql new file mode 100644 index 00000000000..eddfa346732 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ConcreteVarDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getParentInitializer() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.expected new file mode 100644 index 00000000000..8e15539394a --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.expected @@ -0,0 +1,7 @@ +| var_decls.swift:4:7:4:7 | i | var_decls.swift:4:7:4:7 | i | +| var_decls.swift:7:5:7:5 | numbers | var_decls.swift:7:5:7:5 | numbers | +| var_decls.swift:10:12:10:12 | numbers | var_decls.swift:10:12:10:12 | numbers | +| var_decls.swift:15:7:15:7 | wrappedValue | var_decls.swift:15:7:15:21 | ... as ... | +| var_decls.swift:20:7:20:7 | wrappedValue | var_decls.swift:20:7:20:21 | ... as ... | +| var_decls.swift:24:15:24:15 | _wrapped | var_decls.swift:24:15:24:15 | ... as ... | +| var_decls.swift:24:15:24:15 | wrapped | var_decls.swift:24:15:24:25 | ... as ... | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql new file mode 100644 index 00000000000..2aedb61e2ae --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ConcreteVarDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getParentPattern() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/var_decls.swift b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/var_decls.swift new file mode 100644 index 00000000000..37c145a5a42 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/var_decls.swift @@ -0,0 +1,25 @@ +func loop() { + for i in 1...5 { + } + var i = 0 +} + +var numbers = [42] + +struct S { +static let numbers = [42, 404, 101] +} + +@propertyWrapper +struct X { + var wrappedValue: T +} + +@propertyWrapper +struct Y { + var wrappedValue: Int +} + +struct Wrapped { + @X @Y var wrapped : Int +} diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected new file mode 100644 index 00000000000..8f559769407 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected @@ -0,0 +1,15 @@ +| param_decls.swift:1:10:1:13 | _ | getInterfaceType: | Int | getName: | _ | getType: | Int | isInout: | no | +| param_decls.swift:1:18:1:29 | y | getInterfaceType: | Double | getName: | y | getType: | Double | isInout: | yes | +| param_decls.swift:2:10:2:13 | _ | getInterfaceType: | Int | getName: | _ | getType: | Int | isInout: | no | +| param_decls.swift:2:18:2:29 | y | getInterfaceType: | Double | getName: | y | getType: | Double | isInout: | yes | +| param_decls.swift:5:5:5:5 | self | getInterfaceType: | S | getName: | self | getType: | S | isInout: | yes | +| param_decls.swift:5:15:5:15 | x | getInterfaceType: | Int | getName: | x | getType: | Int | isInout: | no | +| param_decls.swift:5:15:5:15 | x | getInterfaceType: | Int | getName: | x | getType: | Int | isInout: | no | +| param_decls.swift:5:15:5:18 | x | getInterfaceType: | Int | getName: | x | getType: | Int | isInout: | no | +| param_decls.swift:5:23:5:23 | y | getInterfaceType: | Int | getName: | y | getType: | Int | isInout: | no | +| param_decls.swift:5:23:5:23 | y | getInterfaceType: | Int | getName: | y | getType: | Int | isInout: | no | +| param_decls.swift:5:23:5:26 | y | getInterfaceType: | Int | getName: | y | getType: | Int | isInout: | no | +| param_decls.swift:7:9:7:9 | newValue | getInterfaceType: | Int? | getName: | newValue | getType: | Int? | isInout: | no | +| param_decls.swift:12:13:12:22 | s | getInterfaceType: | String | getName: | s | getType: | String | isInout: | yes | +| param_decls.swift:13:13:13:22 | s | getInterfaceType: | String | getName: | s | getType: | String | isInout: | yes | +| param_decls.swift:14:26:14:26 | $0 | getInterfaceType: | Int | getName: | $0 | getType: | Int | isInout: | no | diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql new file mode 100644 index 00000000000..acf3614b7b0 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql @@ -0,0 +1,14 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ParamDecl x, Type getInterfaceType, string getName, Type getType, string isInout +where + toBeTested(x) and + not x.isUnknown() and + getInterfaceType = x.getInterfaceType() and + getName = x.getName() and + getType = x.getType() and + if x.isInout() then isInout = "yes" else isInout = "no" +select x, "getInterfaceType:", getInterfaceType, "getName:", getName, "getType:", getType, + "isInout:", isInout diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessorDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessorDecl.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessorDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessorDecl.ql new file mode 100644 index 00000000000..a751e0006cc --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessorDecl.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ParamDecl x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getAccessorDecl(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql new file mode 100644 index 00000000000..0e71fb1cf26 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ParamDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getAttachedPropertyWrapperType() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql new file mode 100644 index 00000000000..39f7e9e1b6e --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ParamDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getParentInitializer() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql new file mode 100644 index 00000000000..17b5a06c1d5 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ParamDecl x +where toBeTested(x) and not x.isUnknown() +select x, x.getParentPattern() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/param_decls.swift b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/param_decls.swift new file mode 100644 index 00000000000..72b47ed2c60 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/param_decls.swift @@ -0,0 +1,15 @@ +func foo(_: Int, x y: inout Double) {} +func bar(_: Int, x y: inout Double) {} + +struct S { + subscript(x: Int, y: Int) -> Int? { + get { nil } + set {} + } +} + +func closures() { + let x = {(s: inout String) -> String in s} + let y = {(s: inout String) -> String in ""} + let z : (Int) -> Int = { $0 + 1 } +} From 7d7966e71135785aa59fbd255a9df730121df482 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 28 Jul 2022 12:43:30 +0200 Subject: [PATCH 497/736] Swift: make trap key prefixes readable This replaces numeric tag-based prefixes with the actual tag name. While this means in general slightly larger trap files, it aids debugging them for a human. In the future we can make this conditional on some kind of trap debug option, but for the moment it does not seem detrimental. --- swift/codegen/generators/trapgen.py | 3 +-- swift/codegen/lib/cpp.py | 1 - swift/codegen/templates/trap_tags_h.mustache | 2 +- swift/codegen/test/test_cpp.py | 4 ++-- swift/codegen/test/test_trapgen.py | 20 ++++++++++---------- 5 files changed, 14 insertions(+), 16 deletions(-) diff --git a/swift/codegen/generators/trapgen.py b/swift/codegen/generators/trapgen.py index eb701b629ef..22c46e6e146 100755 --- a/swift/codegen/generators/trapgen.py +++ b/swift/codegen/generators/trapgen.py @@ -86,11 +86,10 @@ def generate(opts, renderer): renderer.render(cpp.TrapList(entries, opts.dbscheme), out / dir / "TrapEntries") tags = [] - for index, tag in enumerate(toposort_flatten(tag_graph)): + for tag in toposort_flatten(tag_graph): tags.append(cpp.Tag( name=get_tag_name(tag), bases=[get_tag_name(b) for b in sorted(tag_graph[tag])], - index=index, id=tag, )) renderer.render(cpp.TagList(tags, opts.dbscheme), out / "TrapTags") diff --git a/swift/codegen/lib/cpp.py b/swift/codegen/lib/cpp.py index 9eb5f78af58..3542efcdee9 100644 --- a/swift/codegen/lib/cpp.py +++ b/swift/codegen/lib/cpp.py @@ -83,7 +83,6 @@ class TagBase: class Tag: name: str bases: List[TagBase] - index: int id: str def __post_init__(self): diff --git a/swift/codegen/templates/trap_tags_h.mustache b/swift/codegen/templates/trap_tags_h.mustache index feac64ff92a..c444d28afcb 100644 --- a/swift/codegen/templates/trap_tags_h.mustache +++ b/swift/codegen/templates/trap_tags_h.mustache @@ -7,7 +7,7 @@ namespace codeql { // {{id}} struct {{name}}Tag {{#has_bases}}: {{#bases}}{{^first}}, {{/first}}{{base}}Tag{{/bases}} {{/has_bases}}{ - static constexpr const char* prefix = "{{index}}"; + static constexpr const char* prefix = "{{name}}"; }; {{/tags}} } diff --git a/swift/codegen/test/test_cpp.py b/swift/codegen/test/test_cpp.py index e6cd4f81305..d04877e38c4 100644 --- a/swift/codegen/test/test_cpp.py +++ b/swift/codegen/test/test_cpp.py @@ -65,7 +65,7 @@ def test_trap_has_first_field_marked(): def test_tag_has_first_base_marked(): bases = ["a", "b", "c"] expected = [cpp.TagBase("a", first=True), cpp.TagBase("b"), cpp.TagBase("c")] - t = cpp.Tag("name", bases, 0, "id") + t = cpp.Tag("name", bases, "id") assert t.bases == expected @@ -75,7 +75,7 @@ def test_tag_has_first_base_marked(): (["a", "b"], True) ]) def test_tag_has_bases(bases, expected): - t = cpp.Tag("name", bases, 0, "id") + t = cpp.Tag("name", bases, "id") assert t.has_bases is expected diff --git a/swift/codegen/test/test_trapgen.py b/swift/codegen/test/test_trapgen.py index 376f69c43a3..c8121ce48ba 100644 --- a/swift/codegen/test/test_trapgen.py +++ b/swift/codegen/test/test_trapgen.py @@ -162,10 +162,10 @@ def test_one_union_tags(generate_tags): assert generate_tags([ dbscheme.Union(lhs="@left_hand_side", rhs=["@b", "@a", "@c"]), ]) == [ - cpp.Tag(name="LeftHandSide", bases=[], index=0, id="@left_hand_side"), - cpp.Tag(name="A", bases=["LeftHandSide"], index=1, id="@a"), - cpp.Tag(name="B", bases=["LeftHandSide"], index=2, id="@b"), - cpp.Tag(name="C", bases=["LeftHandSide"], index=3, id="@c"), + cpp.Tag(name="LeftHandSide", bases=[], id="@left_hand_side"), + cpp.Tag(name="A", bases=["LeftHandSide"], id="@a"), + cpp.Tag(name="B", bases=["LeftHandSide"], id="@b"), + cpp.Tag(name="C", bases=["LeftHandSide"], id="@c"), ] @@ -175,12 +175,12 @@ def test_multiple_union_tags(generate_tags): dbscheme.Union(lhs="@a", rhs=["@b", "@c"]), dbscheme.Union(lhs="@e", rhs=["@c", "@f"]), ]) == [ - cpp.Tag(name="D", bases=[], index=0, id="@d"), - cpp.Tag(name="E", bases=[], index=1, id="@e"), - cpp.Tag(name="A", bases=["D"], index=2, id="@a"), - cpp.Tag(name="F", bases=["E"], index=3, id="@f"), - cpp.Tag(name="B", bases=["A"], index=4, id="@b"), - cpp.Tag(name="C", bases=["A", "E"], index=5, id="@c"), + cpp.Tag(name="D", bases=[], id="@d"), + cpp.Tag(name="E", bases=[], id="@e"), + cpp.Tag(name="A", bases=["D"], id="@a"), + cpp.Tag(name="F", bases=["E"], id="@f"), + cpp.Tag(name="B", bases=["A"], id="@b"), + cpp.Tag(name="C", bases=["A", "E"], id="@c"), ] From d547a417c93a8b26e66f985c71e64271e5fc97c0 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 28 Jul 2022 12:57:12 +0200 Subject: [PATCH 498/736] Swift: accept new test results --- .../posix-only/cross-references/VarDecls.expected | 1 - 1 file changed, 1 deletion(-) diff --git a/swift/integration-tests/posix-only/cross-references/VarDecls.expected b/swift/integration-tests/posix-only/cross-references/VarDecls.expected index 104271d5384..6fab086e7dd 100644 --- a/swift/integration-tests/posix-only/cross-references/VarDecls.expected +++ b/swift/integration-tests/posix-only/cross-references/VarDecls.expected @@ -1,5 +1,4 @@ | Sources/cross-references/lib.swift:10:5:10:5 | X | -| Sources/cross-references/lib.swift:10:5:10:5 | X | | Sources/cross-references/lib.swift:17:16:17:19 | v | | Sources/cross-references/lib.swift:22:16:22:19 | v | | Sources/cross-references/lib.swift:27:8:27:13 | lhs | From 212786ed91a14f2c4c9d80780af6187cf554e943 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 28 Jul 2022 13:38:35 +0000 Subject: [PATCH 499/736] Release preparation for version 2.10.2 --- cpp/ql/lib/CHANGELOG.md | 6 ++++++ .../0.3.2.md} | 7 ++++--- cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 2 ++ cpp/ql/src/change-notes/released/0.3.1.md | 1 + cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 2 ++ .../Solorigate/lib/change-notes/released/1.2.2.md | 1 + .../campaigns/Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 2 ++ .../Solorigate/src/change-notes/released/1.2.2.md | 1 + .../campaigns/Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 2 ++ csharp/ql/lib/change-notes/released/0.3.2.md | 1 + csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 2 ++ csharp/ql/src/change-notes/released/0.3.1.md | 1 + csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 2 ++ go/ql/lib/change-notes/released/0.2.2.md | 1 + go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 2 ++ go/ql/src/change-notes/released/0.2.2.md | 1 + go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 12 ++++++++++++ .../change-notes/2022-05-12-get-underlying-expr.md | 4 ---- .../ql/lib/change-notes/2022-07-26-scanner-models.md | 4 ---- .../lib/change-notes/2022-07-27-nullness-junit5.md | 5 ----- java/ql/lib/change-notes/released/0.3.2.md | 11 +++++++++++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 2 ++ java/ql/src/change-notes/released/0.3.1.md | 1 + java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 2 ++ javascript/ql/lib/change-notes/released/0.2.2.md | 1 + javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 7 +++++++ .../0.3.1.md} | 6 +++--- javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 2 ++ python/ql/lib/change-notes/released/0.5.2.md | 1 + python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 6 ++++++ .../0.4.0.md} | 8 ++++---- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 7 +++++++ ...2-07-18-sqli-in-activerecord-relation-annotate.md | 5 ----- ruby/ql/lib/change-notes/2022-07-19-arel.md | 4 ---- ruby/ql/lib/change-notes/released/0.3.2.md | 6 ++++++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 7 +++++++ .../src/change-notes/2022-07-21-check-http-verb.md | 4 ---- ruby/ql/src/change-notes/2022-07-21-weak-params.md | 4 ---- ruby/ql/src/change-notes/released/0.3.1.md | 6 ++++++ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- 71 files changed, 141 insertions(+), 72 deletions(-) rename cpp/ql/lib/change-notes/{2022-06-24-unique-variable.md => released/0.3.2.md} (92%) create mode 100644 cpp/ql/src/change-notes/released/0.3.1.md create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.2.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.2.md create mode 100644 csharp/ql/lib/change-notes/released/0.3.2.md create mode 100644 csharp/ql/src/change-notes/released/0.3.1.md create mode 100644 go/ql/lib/change-notes/released/0.2.2.md create mode 100644 go/ql/src/change-notes/released/0.2.2.md delete mode 100644 java/ql/lib/change-notes/2022-05-12-get-underlying-expr.md delete mode 100644 java/ql/lib/change-notes/2022-07-26-scanner-models.md delete mode 100644 java/ql/lib/change-notes/2022-07-27-nullness-junit5.md create mode 100644 java/ql/lib/change-notes/released/0.3.2.md create mode 100644 java/ql/src/change-notes/released/0.3.1.md create mode 100644 javascript/ql/lib/change-notes/released/0.2.2.md rename javascript/ql/src/change-notes/{2022-06-27-case-sensitive-middleware.md => released/0.3.1.md} (88%) create mode 100644 python/ql/lib/change-notes/released/0.5.2.md rename python/ql/src/change-notes/{2022-07-15-move-contextual-queries.md => released/0.4.0.md} (78%) delete mode 100644 ruby/ql/lib/change-notes/2022-07-18-sqli-in-activerecord-relation-annotate.md delete mode 100644 ruby/ql/lib/change-notes/2022-07-19-arel.md create mode 100644 ruby/ql/lib/change-notes/released/0.3.2.md delete mode 100644 ruby/ql/src/change-notes/2022-07-21-check-http-verb.md delete mode 100644 ruby/ql/src/change-notes/2022-07-21-weak-params.md create mode 100644 ruby/ql/src/change-notes/released/0.3.1.md diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 75a047d6f64..9b4761ec2ce 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.2 + +### Bug Fixes + +* Under certain circumstances a variable declaration that is not also a definition could be associated with a `Variable` that did not have the definition as a `VariableDeclarationEntry`. This is now fixed, and a unique `Variable` will exist that has both the declaration and the definition as a `VariableDeclarationEntry`. + ## 0.3.1 ### Minor Analysis Improvements diff --git a/cpp/ql/lib/change-notes/2022-06-24-unique-variable.md b/cpp/ql/lib/change-notes/released/0.3.2.md similarity index 92% rename from cpp/ql/lib/change-notes/2022-06-24-unique-variable.md rename to cpp/ql/lib/change-notes/released/0.3.2.md index e04dde1290a..9d3ca0cca67 100644 --- a/cpp/ql/lib/change-notes/2022-06-24-unique-variable.md +++ b/cpp/ql/lib/change-notes/released/0.3.2.md @@ -1,4 +1,5 @@ ---- -category: fix ---- +## 0.3.2 + +### Bug Fixes + * Under certain circumstances a variable declaration that is not also a definition could be associated with a `Variable` that did not have the definition as a `VariableDeclarationEntry`. This is now fixed, and a unique `Variable` will exist that has both the declaration and the definition as a `VariableDeclarationEntry`. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index bb106b1cb63..18c64250f42 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.1 +lastReleaseVersion: 0.3.2 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index ce90251f83f..2761c28d94c 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.3.2-dev +version: 0.3.2 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index e87fc5dce39..ae7e4f7151b 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.3.1 + ## 0.3.0 ### Breaking Changes diff --git a/cpp/ql/src/change-notes/released/0.3.1.md b/cpp/ql/src/change-notes/released/0.3.1.md new file mode 100644 index 00000000000..2b0719929a1 --- /dev/null +++ b/cpp/ql/src/change-notes/released/0.3.1.md @@ -0,0 +1 @@ +## 0.3.1 diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 95f6e3a0ba6..bb106b1cb63 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.3.1 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 2735b4d5289..b9902eb8bb4 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.3.1-dev +version: 0.3.1 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index de0a7eeae4b..0efa6239b0f 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,5 @@ +## 1.2.2 + ## 1.2.1 ## 1.2.0 diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.2.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.2.md new file mode 100644 index 00000000000..81af4d86d3b --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.2.2.md @@ -0,0 +1 @@ +## 1.2.2 diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 73dd403938c..0a70a9a01a7 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.2.1 +lastReleaseVersion: 1.2.2 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index fc22389c2a8..08e6e1a8c82 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.2.2-dev +version: 1.2.2 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index de0a7eeae4b..0efa6239b0f 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 1.2.2 + ## 1.2.1 ## 1.2.0 diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.2.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.2.md new file mode 100644 index 00000000000..81af4d86d3b --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.2.2.md @@ -0,0 +1 @@ +## 1.2.2 diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 73dd403938c..0a70a9a01a7 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.2.1 +lastReleaseVersion: 1.2.2 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index a2ef81cc0e4..89620dec618 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.2.2-dev +version: 1.2.2 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index d1c89626798..5ea16d73e48 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.3.2 + ## 0.3.1 ## 0.3.0 diff --git a/csharp/ql/lib/change-notes/released/0.3.2.md b/csharp/ql/lib/change-notes/released/0.3.2.md new file mode 100644 index 00000000000..8309e697333 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/0.3.2.md @@ -0,0 +1 @@ +## 0.3.2 diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index bb106b1cb63..18c64250f42 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.1 +lastReleaseVersion: 0.3.2 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 0d72cfc0c65..d1409a61b13 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.3.2-dev +version: 0.3.2 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index bf9e8f9c41f..bb530ba1727 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.3.1 + ## 0.3.0 ### Breaking Changes diff --git a/csharp/ql/src/change-notes/released/0.3.1.md b/csharp/ql/src/change-notes/released/0.3.1.md new file mode 100644 index 00000000000..2b0719929a1 --- /dev/null +++ b/csharp/ql/src/change-notes/released/0.3.1.md @@ -0,0 +1 @@ +## 0.3.1 diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 95f6e3a0ba6..bb106b1cb63 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.3.1 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index d3ceb328420..c3e1381bf55 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.3.1-dev +version: 0.3.1 groups: - csharp - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 23c4fc2eb4f..a4ead0ef794 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.2.2 + ## 0.2.1 ## 0.2.0 diff --git a/go/ql/lib/change-notes/released/0.2.2.md b/go/ql/lib/change-notes/released/0.2.2.md new file mode 100644 index 00000000000..fc31cbd3d6f --- /dev/null +++ b/go/ql/lib/change-notes/released/0.2.2.md @@ -0,0 +1 @@ +## 0.2.2 diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index df29a726bcc..16a06790aa8 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.1 +lastReleaseVersion: 0.2.2 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index c360e550193..200393fbd6c 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.2.2-dev +version: 0.2.2 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 1697aa9e561..c981e074fad 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.2.2 + ## 0.2.1 ## 0.2.0 diff --git a/go/ql/src/change-notes/released/0.2.2.md b/go/ql/src/change-notes/released/0.2.2.md new file mode 100644 index 00000000000..fc31cbd3d6f --- /dev/null +++ b/go/ql/src/change-notes/released/0.2.2.md @@ -0,0 +1 @@ +## 0.2.2 diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index df29a726bcc..16a06790aa8 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.1 +lastReleaseVersion: 0.2.2 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 75ed3c98275..df3aa78b2cf 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.2.2-dev +version: 0.2.2 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index b5ceb823e75..49ad072ce54 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,15 @@ +## 0.3.2 + +### New Features + +* The QL predicate `Expr::getUnderlyingExpr` has been added. It can be used to look through casts and not-null expressions and obtain the underlying expression to which they apply. + +### Minor Analysis Improvements + +* The JUnit5 version of `AssertNotNull` is now recognized, which removes + related false positives in the nullness queries. +* Added data flow models for `java.util.Scanner`. + ## 0.3.1 ### New Features diff --git a/java/ql/lib/change-notes/2022-05-12-get-underlying-expr.md b/java/ql/lib/change-notes/2022-05-12-get-underlying-expr.md deleted file mode 100644 index f24c9379abb..00000000000 --- a/java/ql/lib/change-notes/2022-05-12-get-underlying-expr.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* The QL predicate `Expr::getUnderlyingExpr` has been added. It can be used to look through casts and not-null expressions and obtain the underlying expression to which they apply. diff --git a/java/ql/lib/change-notes/2022-07-26-scanner-models.md b/java/ql/lib/change-notes/2022-07-26-scanner-models.md deleted file mode 100644 index 6a78982d639..00000000000 --- a/java/ql/lib/change-notes/2022-07-26-scanner-models.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added data flow models for `java.util.Scanner`. \ No newline at end of file diff --git a/java/ql/lib/change-notes/2022-07-27-nullness-junit5.md b/java/ql/lib/change-notes/2022-07-27-nullness-junit5.md deleted file mode 100644 index 6cfb0949c69..00000000000 --- a/java/ql/lib/change-notes/2022-07-27-nullness-junit5.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* The JUnit5 version of `AssertNotNull` is now recognized, which removes - related false positives in the nullness queries. diff --git a/java/ql/lib/change-notes/released/0.3.2.md b/java/ql/lib/change-notes/released/0.3.2.md new file mode 100644 index 00000000000..cf49b858e8f --- /dev/null +++ b/java/ql/lib/change-notes/released/0.3.2.md @@ -0,0 +1,11 @@ +## 0.3.2 + +### New Features + +* The QL predicate `Expr::getUnderlyingExpr` has been added. It can be used to look through casts and not-null expressions and obtain the underlying expression to which they apply. + +### Minor Analysis Improvements + +* The JUnit5 version of `AssertNotNull` is now recognized, which removes + related false positives in the nullness queries. +* Added data flow models for `java.util.Scanner`. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index bb106b1cb63..18c64250f42 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.1 +lastReleaseVersion: 0.3.2 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 0de218dcd22..261f0508c36 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.3.2-dev +version: 0.3.2 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index b39e648bf04..33ae45fbb9f 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.3.1 + ## 0.3.0 ### Breaking Changes diff --git a/java/ql/src/change-notes/released/0.3.1.md b/java/ql/src/change-notes/released/0.3.1.md new file mode 100644 index 00000000000..2b0719929a1 --- /dev/null +++ b/java/ql/src/change-notes/released/0.3.1.md @@ -0,0 +1 @@ +## 0.3.1 diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 95f6e3a0ba6..bb106b1cb63 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.3.1 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 9cd3341f443..87c9e78e07f 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.3.1-dev +version: 0.3.1 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 23d54f955a7..6f359e0ac85 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.2.2 + ## 0.2.1 ### Minor Analysis Improvements diff --git a/javascript/ql/lib/change-notes/released/0.2.2.md b/javascript/ql/lib/change-notes/released/0.2.2.md new file mode 100644 index 00000000000..fc31cbd3d6f --- /dev/null +++ b/javascript/ql/lib/change-notes/released/0.2.2.md @@ -0,0 +1 @@ +## 0.2.2 diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index df29a726bcc..16a06790aa8 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.1 +lastReleaseVersion: 0.2.2 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 9a05a09e0b6..c1449f8acce 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.2.2-dev +version: 0.2.2 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index baf7f9b85e0..00016a45458 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.3.1 + +### New Queries + +- A new query "Case-sensitive middleware path" (`js/case-sensitive-middleware-path`) has been added. + It highlights middleware routes that can be bypassed due to having a case-sensitive regular expression path. + ## 0.3.0 ### Breaking Changes diff --git a/javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md b/javascript/ql/src/change-notes/released/0.3.1.md similarity index 88% rename from javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md rename to javascript/ql/src/change-notes/released/0.3.1.md index 09895db1e2c..8fe1aaaf4ef 100644 --- a/javascript/ql/src/change-notes/2022-06-27-case-sensitive-middleware.md +++ b/javascript/ql/src/change-notes/released/0.3.1.md @@ -1,6 +1,6 @@ ---- -category: newQuery ---- +## 0.3.1 + +### New Queries - A new query "Case-sensitive middleware path" (`js/case-sensitive-middleware-path`) has been added. It highlights middleware routes that can be bypassed due to having a case-sensitive regular expression path. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 95f6e3a0ba6..bb106b1cb63 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.3.1 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 5525fe8b54b..72dda406008 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.3.1-dev +version: 0.3.1 groups: - javascript - queries diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 83a09c70446..b57f612b336 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,5 @@ +## 0.5.2 + ## 0.5.1 ### Deprecated APIs diff --git a/python/ql/lib/change-notes/released/0.5.2.md b/python/ql/lib/change-notes/released/0.5.2.md new file mode 100644 index 00000000000..33ae68a2827 --- /dev/null +++ b/python/ql/lib/change-notes/released/0.5.2.md @@ -0,0 +1 @@ +## 0.5.2 diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 0bf7024c337..2d9d3f587f8 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.1 +lastReleaseVersion: 0.5.2 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index f1a7c716b1e..5cd0847d929 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.5.2-dev +version: 0.5.2 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index fae4ab0dc9a..8fdacb47f64 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.4.0 + +### Breaking Changes + +* Contextual queries and the query libraries they depend on have been moved to the `codeql/python-all` package. + ## 0.3.0 ### Breaking Changes diff --git a/python/ql/src/change-notes/2022-07-15-move-contextual-queries.md b/python/ql/src/change-notes/released/0.4.0.md similarity index 78% rename from python/ql/src/change-notes/2022-07-15-move-contextual-queries.md rename to python/ql/src/change-notes/released/0.4.0.md index 25ae1b57b99..c6658b7780f 100644 --- a/python/ql/src/change-notes/2022-07-15-move-contextual-queries.md +++ b/python/ql/src/change-notes/released/0.4.0.md @@ -1,5 +1,5 @@ ---- -category: breaking ---- -* Contextual queries and the query libraries they depend on have been moved to the `codeql/python-all` package. +## 0.4.0 +### Breaking Changes + +* Contextual queries and the query libraries they depend on have been moved to the `codeql/python-all` package. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 95f6e3a0ba6..458bfbeccff 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.4.0 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 155e57024e8..c70cb344e92 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.3.1-dev +version: 0.4.0 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index fe8a12aa938..ae943f45599 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.3.2 + +### Minor Analysis Improvements + +* Calls to `Arel.sql` are now recognised as propagating taint from their argument. +- Calls to `ActiveRecord::Relation#annotate` are now recognized as`SqlExecution`s so that it will be considered as a sink for queries like rb/sql-injection. + ## 0.3.1 ### Minor Analysis Improvements diff --git a/ruby/ql/lib/change-notes/2022-07-18-sqli-in-activerecord-relation-annotate.md b/ruby/ql/lib/change-notes/2022-07-18-sqli-in-activerecord-relation-annotate.md deleted file mode 100644 index 60ab137f8b2..00000000000 --- a/ruby/ql/lib/change-notes/2022-07-18-sqli-in-activerecord-relation-annotate.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -- Calls to `ActiveRecord::Relation#annotate` are now recognized as`SqlExecution`s so that it will be considered as a sink for queries like rb/sql-injection. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2022-07-19-arel.md b/ruby/ql/lib/change-notes/2022-07-19-arel.md deleted file mode 100644 index 3dda3d4b1f6..00000000000 --- a/ruby/ql/lib/change-notes/2022-07-19-arel.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to `Arel.sql` are now recognised as propagating taint from their argument. diff --git a/ruby/ql/lib/change-notes/released/0.3.2.md b/ruby/ql/lib/change-notes/released/0.3.2.md new file mode 100644 index 00000000000..3e5710af675 --- /dev/null +++ b/ruby/ql/lib/change-notes/released/0.3.2.md @@ -0,0 +1,6 @@ +## 0.3.2 + +### Minor Analysis Improvements + +* Calls to `Arel.sql` are now recognised as propagating taint from their argument. +- Calls to `ActiveRecord::Relation#annotate` are now recognized as`SqlExecution`s so that it will be considered as a sink for queries like rb/sql-injection. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index bb106b1cb63..18c64250f42 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.1 +lastReleaseVersion: 0.3.2 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 8216fedd9d2..6cf140325c0 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.3.2-dev +version: 0.3.2 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 9f227fdc843..9aeec45dc3f 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.3.1 + +### New Queries + +* Added a new experimental query, `rb/manually-checking-http-verb`, to detect cases when the HTTP verb for an incoming request is checked and then used as part of control flow. +* Added a new experimental query, `rb/weak-params`, to detect cases when the rails strong parameters pattern isn't followed and values flow into persistent store writes. + ## 0.3.0 ### Breaking Changes diff --git a/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md b/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md deleted file mode 100644 index 4a670ba1092..00000000000 --- a/ruby/ql/src/change-notes/2022-07-21-check-http-verb.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* Added a new experimental query, `rb/manually-checking-http-verb`, to detect cases when the HTTP verb for an incoming request is checked and then used as part of control flow. \ No newline at end of file diff --git a/ruby/ql/src/change-notes/2022-07-21-weak-params.md b/ruby/ql/src/change-notes/2022-07-21-weak-params.md deleted file mode 100644 index 08b8f153989..00000000000 --- a/ruby/ql/src/change-notes/2022-07-21-weak-params.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* Added a new experimental query, `rb/weak-params`, to detect cases when the rails strong parameters pattern isn't followed and values flow into persistent store writes. \ No newline at end of file diff --git a/ruby/ql/src/change-notes/released/0.3.1.md b/ruby/ql/src/change-notes/released/0.3.1.md new file mode 100644 index 00000000000..a95409eabd1 --- /dev/null +++ b/ruby/ql/src/change-notes/released/0.3.1.md @@ -0,0 +1,6 @@ +## 0.3.1 + +### New Queries + +* Added a new experimental query, `rb/manually-checking-http-verb`, to detect cases when the HTTP verb for an incoming request is checked and then used as part of control flow. +* Added a new experimental query, `rb/weak-params`, to detect cases when the rails strong parameters pattern isn't followed and values flow into persistent store writes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 95f6e3a0ba6..bb106b1cb63 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.0 +lastReleaseVersion: 0.3.1 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 6715fc61912..17eb743f26d 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.3.1-dev +version: 0.3.1 groups: - ruby - queries From 3137addfc1be511218016dc125fb588e211c7789 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <93738568+jketema@users.noreply.github.com> Date: Thu, 28 Jul 2022 15:44:53 +0200 Subject: [PATCH 500/736] Update ruby/ql/lib/CHANGELOG.md --- ruby/ql/lib/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index ae943f45599..09d016efb49 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -3,7 +3,7 @@ ### Minor Analysis Improvements * Calls to `Arel.sql` are now recognised as propagating taint from their argument. -- Calls to `ActiveRecord::Relation#annotate` are now recognized as`SqlExecution`s so that it will be considered as a sink for queries like rb/sql-injection. +* Calls to `ActiveRecord::Relation#annotate` are now recognized as `SqlExecution`s so that it will be considered as a sink for queries like rb/sql-injection. ## 0.3.1 From 15a979cfc6cd940a59a5294367a0e036e8db7834 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <93738568+jketema@users.noreply.github.com> Date: Thu, 28 Jul 2022 15:45:01 +0200 Subject: [PATCH 501/736] Update ruby/ql/lib/change-notes/released/0.3.2.md --- ruby/ql/lib/change-notes/released/0.3.2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/change-notes/released/0.3.2.md b/ruby/ql/lib/change-notes/released/0.3.2.md index 3e5710af675..bdb97f6d3ce 100644 --- a/ruby/ql/lib/change-notes/released/0.3.2.md +++ b/ruby/ql/lib/change-notes/released/0.3.2.md @@ -3,4 +3,4 @@ ### Minor Analysis Improvements * Calls to `Arel.sql` are now recognised as propagating taint from their argument. -- Calls to `ActiveRecord::Relation#annotate` are now recognized as`SqlExecution`s so that it will be considered as a sink for queries like rb/sql-injection. +* Calls to `ActiveRecord::Relation#annotate` are now recognized as `SqlExecution`s so that it will be considered as a sink for queries like rb/sql-injection. From 258b58cd37787b3d545d1b481af3eb387f6cb793 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 28 Jul 2022 14:58:34 +0100 Subject: [PATCH 502/736] Update java/ql/lib/CHANGELOG.md --- java/ql/lib/CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 49ad072ce54..150a12f68fe 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -6,8 +6,7 @@ ### Minor Analysis Improvements -* The JUnit5 version of `AssertNotNull` is now recognized, which removes - related false positives in the nullness queries. +* The JUnit5 version of `AssertNotNull` is now recognized, which removes related false positives in the nullness queries. * Added data flow models for `java.util.Scanner`. ## 0.3.1 From a8345e00fcf083b721606bf84869c33f79506ccb Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 28 Jul 2022 14:58:38 +0100 Subject: [PATCH 503/736] Update java/ql/lib/change-notes/released/0.3.2.md --- java/ql/lib/change-notes/released/0.3.2.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/ql/lib/change-notes/released/0.3.2.md b/java/ql/lib/change-notes/released/0.3.2.md index cf49b858e8f..b1d193b28b5 100644 --- a/java/ql/lib/change-notes/released/0.3.2.md +++ b/java/ql/lib/change-notes/released/0.3.2.md @@ -6,6 +6,5 @@ ### Minor Analysis Improvements -* The JUnit5 version of `AssertNotNull` is now recognized, which removes - related false positives in the nullness queries. +* The JUnit5 version of `AssertNotNull` is now recognized, which removes related false positives in the nullness queries. * Added data flow models for `java.util.Scanner`. From e7f275382e7e152b965467e7d405a018cec43765 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Jul 2022 11:14:27 +0100 Subject: [PATCH 504/736] Add test for Java wildcard substitution --- .../wildcard-substitution/Lib.java | 17 ++++++ .../wildcard-substitution/User.java | 12 +++++ .../wildcard-substitution/test.expected | 54 +++++++++++++++++++ .../wildcard-substitution/test.ql | 7 +++ 4 files changed, 90 insertions(+) create mode 100644 java/ql/test/library-tests/wildcard-substitution/Lib.java create mode 100644 java/ql/test/library-tests/wildcard-substitution/User.java create mode 100644 java/ql/test/library-tests/wildcard-substitution/test.expected create mode 100644 java/ql/test/library-tests/wildcard-substitution/test.ql diff --git a/java/ql/test/library-tests/wildcard-substitution/Lib.java b/java/ql/test/library-tests/wildcard-substitution/Lib.java new file mode 100644 index 00000000000..9bd84a9218c --- /dev/null +++ b/java/ql/test/library-tests/wildcard-substitution/Lib.java @@ -0,0 +1,17 @@ +import java.util.List; + +public class Lib { + + public void takesVar(T t) { } + public void takesInvar(List lt) { } + public void takesUnbound(List lt) { } + public void takesExtends(List lt) { } + public void takesSuper(List lt) { } + + public T returnsVar() { return null; } + public List returnsInvar() { return null; } + public List returnsUnbound() { return null; } + public List returnsExtends() { return null; } + public List returnsSuper() { return null; } + +} diff --git a/java/ql/test/library-tests/wildcard-substitution/User.java b/java/ql/test/library-tests/wildcard-substitution/User.java new file mode 100644 index 00000000000..5f4b7fac21a --- /dev/null +++ b/java/ql/test/library-tests/wildcard-substitution/User.java @@ -0,0 +1,12 @@ +public class User { + + public static void test(Lib invarLib, Lib extendsLib, Lib superLib, Lib unboundLib) { + + invarLib.takesVar(null); + extendsLib.takesVar(null); + superLib.takesVar(null); + unboundLib.takesVar(null); + + } + +} diff --git a/java/ql/test/library-tests/wildcard-substitution/test.expected b/java/ql/test/library-tests/wildcard-substitution/test.expected new file mode 100644 index 00000000000..85af393c21e --- /dev/null +++ b/java/ql/test/library-tests/wildcard-substitution/test.expected @@ -0,0 +1,54 @@ +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsExtends | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsInvar | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsSuper | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsUnbound | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsVar | CharSequence | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesExtends | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesInvar | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesSuper | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesUnbound | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesVar | | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsExtends | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsInvar | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsSuper | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsUnbound | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsVar | Object | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesExtends | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesInvar | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesSuper | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesUnbound | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesVar | CharSequence | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsExtends | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsInvar | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsSuper | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsUnbound | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsVar | Object | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesExtends | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesInvar | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesSuper | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesUnbound | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesVar | | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsExtends | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsInvar | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsSuper | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsUnbound | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsVar | CharSequence | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesExtends | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesInvar | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesSuper | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesUnbound | List | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesVar | CharSequence | +| Lib.java:3:14:3:16 | Lib | Lib.java:5:15:5:22 | takesVar | T | +| Lib.java:3:14:3:16 | Lib | Lib.java:6:15:6:24 | takesInvar | List | +| Lib.java:3:14:3:16 | Lib | Lib.java:7:15:7:26 | takesUnbound | List | +| Lib.java:3:14:3:16 | Lib | Lib.java:8:15:8:26 | takesExtends | List | +| Lib.java:3:14:3:16 | Lib | Lib.java:9:15:9:24 | takesSuper | List | +| Lib.java:3:14:3:16 | Lib | Lib.java:11:12:11:21 | returnsVar | T | +| Lib.java:3:14:3:16 | Lib | Lib.java:12:18:12:29 | returnsInvar | List | +| Lib.java:3:14:3:16 | Lib | Lib.java:13:18:13:31 | returnsUnbound | List | +| Lib.java:3:14:3:16 | Lib | Lib.java:14:28:14:41 | returnsExtends | List | +| Lib.java:3:14:3:16 | Lib | Lib.java:15:26:15:37 | returnsSuper | List | +| User.java:1:14:1:17 | User | User.java:3:22:3:25 | test | Lib | +| User.java:1:14:1:17 | User | User.java:3:22:3:25 | test | Lib | +| User.java:1:14:1:17 | User | User.java:3:22:3:25 | test | Lib | +| User.java:1:14:1:17 | User | User.java:3:22:3:25 | test | Lib | diff --git a/java/ql/test/library-tests/wildcard-substitution/test.ql b/java/ql/test/library-tests/wildcard-substitution/test.ql new file mode 100644 index 00000000000..3fdf1c00a55 --- /dev/null +++ b/java/ql/test/library-tests/wildcard-substitution/test.ql @@ -0,0 +1,7 @@ +import java + +Type notVoid(Type t) { result = t and not result instanceof VoidType } + +from Callable c +where c.getSourceDeclaration().fromSource() +select c.getDeclaringType(), c, notVoid([c.getAParamType(), c.getReturnType()]).toString() From 7475f84ea5a69c5572e3cd0b954cb2c8ca9fdbc4 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Jul 2022 15:19:05 +0100 Subject: [PATCH 505/736] Fix type-parameter-out-of-scope test --- java/ql/consistency-queries/typeParametersInScope.ql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/consistency-queries/typeParametersInScope.ql b/java/ql/consistency-queries/typeParametersInScope.ql index f78bf2d42a4..2f1fd651278 100644 --- a/java/ql/consistency-queries/typeParametersInScope.ql +++ b/java/ql/consistency-queries/typeParametersInScope.ql @@ -12,6 +12,8 @@ Type getAMentionedType(RefType type) { result = getAMentionedType(type).(InstantiatedType).getATypeArgument() or result = getAMentionedType(type).(NestedType).getEnclosingType() + or + result = getAMentionedType(type).(Wildcard).getATypeBound().getType() } Type getATypeUsedInClass(RefType type) { From 8cd2aeb65dbc9768dda5056478dcd871df6df0f6 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 14 Jul 2022 15:19:33 +0100 Subject: [PATCH 506/736] Accept test changes --- .../generic-instance-methods/test.expected | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/java/ql/test/kotlin/library-tests/generic-instance-methods/test.expected b/java/ql/test/kotlin/library-tests/generic-instance-methods/test.expected index 13c5c19bd68..b80b1311a64 100644 --- a/java/ql/test/kotlin/library-tests/generic-instance-methods/test.expected +++ b/java/ql/test/kotlin/library-tests/generic-instance-methods/test.expected @@ -14,8 +14,8 @@ calls | test.kt:22:15:22:33 | setter(...) | test.kt:12:1:25:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | | test.kt:23:15:23:22 | getter(...) | test.kt:12:1:25:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | constructors -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | Generic2 | Generic2(java.lang.String) | ? extends String | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 | -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | Generic2 | Generic2(java.lang.Object) | ? super String | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | Generic2 | Generic2() | | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | Generic2 | Generic2(java.lang.String) | String | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 | | Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | Generic2 | Generic2(java.lang.String) | String | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 | | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 | Generic2(java.lang.Object) | T | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 | | Test.java:14:14:14:17 | Test | Test.java:14:14:14:17 | Test | Test() | No parameters | void | Test.java:14:14:14:17 | Test | Test.java:14:14:14:17 | Test | @@ -34,14 +34,14 @@ refTypes | test.kt:1:1:10:1 | Generic | | test.kt:1:15:1:15 | T | #select -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | getter | getter() | No parameters | ? extends String | Test.java:1:7:1:14 | Generic2 | Test.java:9:5:9:10 | getter | -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity | identity(java.lang.String) | ? extends String | ? extends String | Test.java:1:7:1:14 | Generic2 | Test.java:8:5:8:12 | identity | -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity2 | identity2(java.lang.String) | ? extends String | ? extends String | Test.java:1:7:1:14 | Generic2 | Test.java:7:5:7:13 | identity2 | -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | setter | setter(java.lang.String) | ? extends String | void | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | getter | getter() | No parameters | ? super String | Test.java:1:7:1:14 | Generic2 | Test.java:9:5:9:10 | getter | -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity | identity(java.lang.Object) | ? super String | ? super String | Test.java:1:7:1:14 | Generic2 | Test.java:8:5:8:12 | identity | -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity2 | identity2(java.lang.Object) | ? super String | ? super String | Test.java:1:7:1:14 | Generic2 | Test.java:7:5:7:13 | identity2 | -| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | setter | setter(java.lang.Object) | ? super String | void | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | getter | getter() | No parameters | String | Test.java:1:7:1:14 | Generic2 | Test.java:9:5:9:10 | getter | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity | identity() | | String | Test.java:1:7:1:14 | Generic2 | Test.java:8:5:8:12 | identity | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity2 | identity2() | | String | Test.java:1:7:1:14 | Generic2 | Test.java:7:5:7:13 | identity2 | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | setter | setter() | | void | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | getter | getter() | No parameters | Object | Test.java:1:7:1:14 | Generic2 | Test.java:9:5:9:10 | getter | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity | identity(java.lang.String) | String | Object | Test.java:1:7:1:14 | Generic2 | Test.java:8:5:8:12 | identity | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity2 | identity2(java.lang.String) | String | Object | Test.java:1:7:1:14 | Generic2 | Test.java:7:5:7:13 | identity2 | +| Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | setter | setter(java.lang.String) | String | void | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | | Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | getter | getter() | No parameters | String | Test.java:1:7:1:14 | Generic2 | Test.java:9:5:9:10 | getter | | Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity | identity(java.lang.String) | String | String | Test.java:1:7:1:14 | Generic2 | Test.java:8:5:8:12 | identity | | Generic2.class:0:0:0:0 | Generic2 | Generic2.class:0:0:0:0 | identity2 | identity2(java.lang.String) | String | String | Test.java:1:7:1:14 | Generic2 | Test.java:7:5:7:13 | identity2 | From 1737ed50ba8dd02c81167746393bd440b4d83c67 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 20 Jul 2022 10:09:50 +0100 Subject: [PATCH 507/736] Add test cases for wildcard lowering of array types --- .../test/library-tests/wildcard-substitution/Lib.java | 3 +++ .../library-tests/wildcard-substitution/test.expected | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/java/ql/test/library-tests/wildcard-substitution/Lib.java b/java/ql/test/library-tests/wildcard-substitution/Lib.java index 9bd84a9218c..0647410b692 100644 --- a/java/ql/test/library-tests/wildcard-substitution/Lib.java +++ b/java/ql/test/library-tests/wildcard-substitution/Lib.java @@ -14,4 +14,7 @@ public class Lib { public List returnsExtends() { return null; } public List returnsSuper() { return null; } + public void takesArray(T[] ts) { } + public T[] returnsArray() { return null; } + } diff --git a/java/ql/test/library-tests/wildcard-substitution/test.expected b/java/ql/test/library-tests/wildcard-substitution/test.expected index 85af393c21e..91a1cc43cb0 100644 --- a/java/ql/test/library-tests/wildcard-substitution/test.expected +++ b/java/ql/test/library-tests/wildcard-substitution/test.expected @@ -1,38 +1,46 @@ +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsArray | CharSequence[] | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsExtends | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsInvar | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsSuper | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsUnbound | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsVar | CharSequence | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesArray | [] | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesExtends | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesInvar | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesSuper | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesUnbound | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesVar | | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsArray | Object[] | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsExtends | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsInvar | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsSuper | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsUnbound | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsVar | Object | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesArray | CharSequence[] | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesExtends | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesInvar | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesSuper | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesUnbound | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesVar | CharSequence | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsArray | Object[] | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsExtends | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsInvar | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsSuper | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsUnbound | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsVar | Object | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesArray | [] | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesExtends | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesInvar | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesSuper | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesUnbound | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesVar | | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsArray | CharSequence[] | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsExtends | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsInvar | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsSuper | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsUnbound | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | returnsVar | CharSequence | +| Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesArray | CharSequence[] | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesExtends | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesInvar | List | | Lib.class:0:0:0:0 | Lib | Lib.class:0:0:0:0 | takesSuper | List | @@ -48,6 +56,8 @@ | Lib.java:3:14:3:16 | Lib | Lib.java:13:18:13:31 | returnsUnbound | List | | Lib.java:3:14:3:16 | Lib | Lib.java:14:28:14:41 | returnsExtends | List | | Lib.java:3:14:3:16 | Lib | Lib.java:15:26:15:37 | returnsSuper | List | +| Lib.java:3:14:3:16 | Lib | Lib.java:17:15:17:24 | takesArray | T[] | +| Lib.java:3:14:3:16 | Lib | Lib.java:18:14:18:25 | returnsArray | T[] | | User.java:1:14:1:17 | User | User.java:3:22:3:25 | test | Lib | | User.java:1:14:1:17 | User | User.java:3:22:3:25 | test | Lib | | User.java:1:14:1:17 | User | User.java:3:22:3:25 | test | Lib | From 985237ab2d3070edfc91c8d5c41596ec14362cdf Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 28 Jul 2022 17:05:52 +0200 Subject: [PATCH 508/736] Swift: small dispatcher fixes File extraction was not using named trap keys, and `emitDebugInfo` was using `std::forward` when it should not. --- swift/extractor/infra/SwiftDispatcher.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index 60d20273655..d564673c976 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -215,7 +215,7 @@ class SwiftDispatcher { template void emitDebugInfo(const Args&... args) { - trap.debug(std::forward(args)...); + trap.debug(args...); } // In order to not emit duplicated entries for declarations, we restrict emission to only @@ -315,7 +315,7 @@ class SwiftDispatcher { virtual void visit(swift::TypeBase* type) = 0; void visit(const FilePath& file) { - auto entry = createEntry(file); + auto entry = createEntry(file, file.path); entry.name = file.path; emit(entry); } From e8747d3176688a54a9812fd02babdecdad99edd8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 28 Jul 2022 20:00:09 +0000 Subject: [PATCH 509/736] Post-release preparation for codeql-cli-2.10.2 --- 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/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/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 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 2761c28d94c..06e68dba48c 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.3.2 +version: 0.3.3-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index b9902eb8bb4..03b90cb3668 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.3.1 +version: 0.3.2-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 08e6e1a8c82..78cc75ede63 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.2.2 +version: 1.2.3-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 89620dec618..fced50b6ef4 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.2.2 +version: 1.2.3-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index d1409a61b13..8f932e28c7a 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.3.2 +version: 0.3.3-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index c3e1381bf55..9f59ceafaf5 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.3.1 +version: 0.3.2-dev groups: - csharp - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 200393fbd6c..789f504c667 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.2.2 +version: 0.2.3-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index df3aa78b2cf..b19c723b9c7 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.2.2 +version: 0.2.3-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 261f0508c36..5fe704a4f35 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.3.2 +version: 0.3.3-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 87c9e78e07f..8c0538014c1 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.3.1 +version: 0.3.2-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index c1449f8acce..e559e82a56a 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.2.2 +version: 0.2.3-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 72dda406008..9852441a368 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.3.1 +version: 0.3.2-dev groups: - javascript - queries diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 5cd0847d929..20d79f44e49 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.5.2 +version: 0.5.3-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index c70cb344e92..75227225c64 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.4.0 +version: 0.4.1-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 6cf140325c0..5a763d9c3dd 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.3.2 +version: 0.3.3-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 17eb743f26d..b713a6c49e3 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.3.1 +version: 0.3.2-dev groups: - ruby - queries From c29eb814b27e47e50aa8926ae4926b52d9517f6a Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Fri, 29 Jul 2022 10:44:36 +1200 Subject: [PATCH 510/736] Ruby: Reorganise ActionDispatch framework Put routing modelling inside a Routing module. --- .../ruby/frameworks/ActionController.qll | 6 +- .../codeql/ruby/frameworks/ActionDispatch.qll | 1817 +++++++++-------- .../frameworks/ActionDispatch.ql | 6 +- 3 files changed, 920 insertions(+), 909 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll index 90b00ecde3f..b32d368dad3 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll @@ -83,7 +83,7 @@ class ActionControllerActionMethod extends Method, HTTP::Server::RequestHandler: * Gets a route to this handler, if one exists. * May return multiple results. */ - ActionDispatch::Route getARoute() { + ActionDispatch::Routing::Route getARoute() { exists(string name | isRoute(result, name, controllerClass) and isActionControllerMethod(this, name, controllerClass) @@ -93,10 +93,10 @@ class ActionControllerActionMethod extends Method, HTTP::Server::RequestHandler: pragma[nomagic] private predicate isRoute( - ActionDispatch::Route route, string name, ActionControllerControllerClass controllerClass + ActionDispatch::Routing::Route route, string name, ActionControllerControllerClass controllerClass ) { route.getController() + "_controller" = - ActionDispatch::underscore(namespaceDeclaration(controllerClass)) and + ActionDispatch::Routing::underscore(namespaceDeclaration(controllerClass)) and name = route.getAction() } diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll index bd16ef3796e..35a198ef7f2 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll @@ -1,5 +1,6 @@ /** - * Models routing configuration specified using the `ActionDispatch` library, which is part of Rails. + * Models the `ActionDispatch` HTTP library, which is part of Rails. + * Version: 7.1.0. */ private import codeql.ruby.AST @@ -7,953 +8,963 @@ private import codeql.ruby.Concepts private import codeql.ruby.DataFlow /** - * Models routing configuration specified using the `ActionDispatch` library, which is part of Rails. + * Models the `ActionDispatch` HTTP library, which is part of Rails. + * Version: 7.1.0. */ module ActionDispatch { /** - * A block that defines some routes. - * Route blocks can contribute to the path or controller namespace of their child routes. - * For example, in the block below - * ```rb - * scope path: "/admin" do - * get "/dashboard", to: "admin_dashboard#show" - * end - * ``` - * the route defined by the call to `get` has the full path `/admin/dashboard`. - * We track these contributions via `getPathComponent` and `getControllerComponent`. + * Models routing configuration specified using the `ActionDispatch` library, which is part of Rails. */ - abstract private class RouteBlock extends TRouteBlock { + module Routing { /** - * Gets the name of a primary CodeQL class to which this route block belongs. - */ - string getAPrimaryQlClass() { result = "RouteBlock" } - - /** - * Gets a string representation of this route block. - */ - string toString() { none() } - - /** - * Gets a `Stmt` within this route block. - */ - abstract Stmt getAStmt(); - - /** - * Gets the parent of this route block, if one exists. - */ - abstract RouteBlock getParent(); - - /** - * Gets the `n`th parent of this route block. - * The zeroth parent is this block, the first parent is the direct parent of this block, etc. - */ - RouteBlock getParent(int n) { - if n = 0 then result = this else result = this.getParent().getParent(n - 1) - } - - /** - * Gets the component of the path defined by this block, if it exists. - */ - abstract string getPathComponent(); - - /** - * Gets the component of the controller namespace defined by this block, if it exists. - */ - abstract string getControllerComponent(); - - /** - * Gets the location of this route block. - */ - abstract Location getLocation(); - } - - /** - * A route block that is not the top-level block. - * This block will always have a parent. - */ - abstract private class NestedRouteBlock extends RouteBlock { - RouteBlock parent; - - override RouteBlock getParent() { result = parent } - - override string getAPrimaryQlClass() { result = "NestedRouteBlock" } - } - - /** - * A top-level routes block. - * ```rb - * Rails.application.routes.draw do - * ... - * end - * ``` - */ - private class TopLevelRouteBlock extends RouteBlock, TTopLevelRouteBlock { - MethodCall call; - // Routing blocks create scopes which define the namespace for controllers and paths, - // though they can be overridden in various ways. - // The namespaces can differ, so we track them separately. - Block block; - - TopLevelRouteBlock() { this = TTopLevelRouteBlock(_, call, block) } - - override string getAPrimaryQlClass() { result = "TopLevelRouteBlock" } - - Block getBlock() { result = block } - - override Stmt getAStmt() { result = block.getAStmt() } - - override RouteBlock getParent() { none() } - - override string toString() { result = call.toString() } - - override Location getLocation() { result = call.getLocation() } - - override string getPathComponent() { none() } - - override string getControllerComponent() { none() } - } - - /** - * A route block defined by a call to `constraints`. - * ```rb - * constraints(foo: /some_regex/) do - * get "/posts/:foo", to "posts#something" - * end - * ``` - * https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-constraints - */ - private class ConstraintsRouteBlock extends NestedRouteBlock, TConstraintsRouteBlock { - private Block block; - private MethodCall call; - - ConstraintsRouteBlock() { this = TConstraintsRouteBlock(parent, call, block) } - - override string getAPrimaryQlClass() { result = "ConstraintsRouteBlock" } - - override Stmt getAStmt() { result = block.getAStmt() } - - override string getPathComponent() { result = "" } - - override string getControllerComponent() { result = "" } - - override string toString() { result = call.toString() } - - override Location getLocation() { result = call.getLocation() } - } - - /** - * A route block defined by a call to `scope`. - * ```rb - * scope(path: "/some_path", module: "some_module") do - * get "/posts/:foo", to "posts#something" - * end - * ``` - * https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-scope - */ - private class ScopeRouteBlock extends NestedRouteBlock, TScopeRouteBlock { - private MethodCall call; - private Block block; - - ScopeRouteBlock() { this = TScopeRouteBlock(parent, call, block) } - - override string getAPrimaryQlClass() { result = "ScopeRouteBlock" } - - override Stmt getAStmt() { result = block.getAStmt() } - - override string toString() { result = call.toString() } - - override Location getLocation() { result = call.getLocation() } - - override string getPathComponent() { - call.getKeywordArgument("path").getConstantValue().isStringlikeValue(result) - or - not exists(call.getKeywordArgument("path")) and - call.getArgument(0).getConstantValue().isStringlikeValue(result) - } - - override string getControllerComponent() { - call.getKeywordArgument(["controller", "module"]).getConstantValue().isStringlikeValue(result) - } - } - - /** - * A route block defined by a call to `resources`. - * ```rb - * resources :articles do - * get "/comments", to "comments#index" - * end - * ``` - * https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Resources.html#method-i-resources - */ - private class ResourcesRouteBlock extends NestedRouteBlock, TResourcesRouteBlock { - private MethodCall call; - private Block block; - - ResourcesRouteBlock() { this = TResourcesRouteBlock(parent, call, block) } - - override string getAPrimaryQlClass() { result = "ResourcesRouteBlock" } - - override Stmt getAStmt() { result = block.getAStmt() } - - /** - * Gets the `resources` call that gives rise to this route block. - */ - MethodCall getDefiningMethodCall() { result = call } - - override string getPathComponent() { - exists(string resource | call.getArgument(0).getConstantValue().isStringlikeValue(resource) | - result = resource + "/:" + singularize(resource) + "_id" - ) - } - - override string getControllerComponent() { result = "" } - - override string toString() { result = call.toString() } - - override Location getLocation() { result = call.getLocation() } - } - - /** - * A route block that is guarded by a conditional statement. - * For example: - * ```rb - * if Rails.env.test? - * get "/foo/bar", to: "foo#bar" - * end - * ``` - * We ignore the condition and analyze both branches to obtain as - * much routing information as possible. - */ - private class ConditionalRouteBlock extends NestedRouteBlock, TConditionalRouteBlock { - private ConditionalExpr e; - - ConditionalRouteBlock() { this = TConditionalRouteBlock(parent, e) } - - override string getAPrimaryQlClass() { result = "ConditionalRouteBlock" } - - override Stmt getAStmt() { result = e.getBranch(_).(StmtSequence).getAStmt() } - - override string getPathComponent() { none() } - - override string getControllerComponent() { none() } - - override string toString() { result = e.toString() } - - override Location getLocation() { result = e.getLocation() } - } - - /** - * A route block defined by a call to `namespace`. - * ```rb - * namespace :admin do - * resources :posts - * end - * ``` - * https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-namespace - */ - private class NamespaceRouteBlock extends NestedRouteBlock, TNamespaceRouteBlock { - private MethodCall call; - private Block block; - - NamespaceRouteBlock() { this = TNamespaceRouteBlock(parent, call, block) } - - override Stmt getAStmt() { result = block.getAStmt() } - - override string getPathComponent() { result = this.getNamespace() } - - override string getControllerComponent() { result = this.getNamespace() } - - private string getNamespace() { - call.getArgument(0).getConstantValue().isStringlikeValue(result) - } - - override string toString() { result = call.toString() } - - override Location getLocation() { result = call.getLocation() } - } - - /** - * A route configuration. This defines a combination of HTTP method and URL - * path which should be routed to a particular controller-action pair. - * This can arise from an explicit call to a routing method, for example: - * ```rb - * get "/photos", to: "photos#index" - * ``` - * or via a convenience method like `resources`, which defines multiple routes at once: - * ```rb - * resources :photos - * ``` - */ - class Route extends TRoute instanceof RouteImpl { - /** - * Gets the name of a primary CodeQL class to which this route belongs. - */ - string getAPrimaryQlClass() { result = "Route" } - - /** Gets a string representation of this route. */ - string toString() { result = super.toString() } - - /** - * Gets the location of the method call that defines this route. - */ - Location getLocation() { result = super.getLocation() } - - /** - * Gets the full controller targeted by this route. - */ - string getController() { result = super.getController() } - - /** - * Gets the action targeted by this route. - */ - string getAction() { result = super.getAction() } - - /** - * Gets the HTTP method of this route. - * The result is one of [get, post, put, patch, delete]. - */ - string getHttpMethod() { result = super.getHttpMethod() } - - /** - * Gets the full path of the route. - */ - string getPath() { result = super.getPath() } - - /** - * Get a URL capture. This is a wildcard URL segment whose value is placed in `params`. - * For example, in - * ```ruby - * get "/foo/:bar/baz", to: "users#index" + * A block that defines some routes. + * Route blocks can contribute to the path or controller namespace of their child routes. + * For example, in the block below + * ```rb + * scope path: "/admin" do + * get "/dashboard", to: "admin_dashboard#show" + * end * ``` - * the capture is `:bar`. + * the route defined by the call to `get` has the full path `/admin/dashboard`. + * We track these contributions via `getPathComponent` and `getControllerComponent`. */ - string getACapture() { result = super.getACapture() } - } + abstract private class RouteBlock extends TRouteBlock { + /** + * Gets the name of a primary CodeQL class to which this route block belongs. + */ + string getAPrimaryQlClass() { result = "RouteBlock" } - /** - * The implementation of `Route`. - * This class is abstract and is thus kept private so we don't expose it to - * users. - * Extend this class to add new instances of routes. - */ - abstract private class RouteImpl extends TRoute { - /** - * Gets the name of a primary CodeQL class to which this route belongs. - */ - string getAPrimaryQlClass() { result = "RouteImpl" } + /** + * Gets a string representation of this route block. + */ + string toString() { none() } - MethodCall method; + /** + * Gets a `Stmt` within this route block. + */ + abstract Stmt getAStmt(); - /** Gets a string representation of this route. */ - string toString() { result = method.toString() } + /** + * Gets the parent of this route block, if one exists. + */ + abstract RouteBlock getParent(); + + /** + * Gets the `n`th parent of this route block. + * The zeroth parent is this block, the first parent is the direct parent of this block, etc. + */ + RouteBlock getParent(int n) { + if n = 0 then result = this else result = this.getParent().getParent(n - 1) + } + + /** + * Gets the component of the path defined by this block, if it exists. + */ + abstract string getPathComponent(); + + /** + * Gets the component of the controller namespace defined by this block, if it exists. + */ + abstract string getControllerComponent(); + + /** + * Gets the location of this route block. + */ + abstract Location getLocation(); + } /** - * Gets the location of the method call that defines this route. + * A route block that is not the top-level block. + * This block will always have a parent. */ - Location getLocation() { result = method.getLocation() } + abstract private class NestedRouteBlock extends RouteBlock { + RouteBlock parent; + + override RouteBlock getParent() { result = parent } + + override string getAPrimaryQlClass() { result = "NestedRouteBlock" } + } /** - * Gets the method call that defines this route. + * A top-level routes block. + * ```rb + * Rails.application.routes.draw do + * ... + * end + * ``` */ - MethodCall getDefiningMethodCall() { result = method } + private class TopLevelRouteBlock extends RouteBlock, TTopLevelRouteBlock { + MethodCall call; + // Routing blocks create scopes which define the namespace for controllers and paths, + // though they can be overridden in various ways. + // The namespaces can differ, so we track them separately. + Block block; + + TopLevelRouteBlock() { this = TTopLevelRouteBlock(_, call, block) } + + override string getAPrimaryQlClass() { result = "TopLevelRouteBlock" } + + Block getBlock() { result = block } + + override Stmt getAStmt() { result = block.getAStmt() } + + override RouteBlock getParent() { none() } + + override string toString() { result = call.toString() } + + override Location getLocation() { result = call.getLocation() } + + override string getPathComponent() { none() } + + override string getControllerComponent() { none() } + } /** - * Get the last component of the path. For example, in + * A route block defined by a call to `constraints`. + * ```rb + * constraints(foo: /some_regex/) do + * get "/posts/:foo", to "posts#something" + * end + * ``` + * https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-constraints + */ + private class ConstraintsRouteBlock extends NestedRouteBlock, TConstraintsRouteBlock { + private Block block; + private MethodCall call; + + ConstraintsRouteBlock() { this = TConstraintsRouteBlock(parent, call, block) } + + override string getAPrimaryQlClass() { result = "ConstraintsRouteBlock" } + + override Stmt getAStmt() { result = block.getAStmt() } + + override string getPathComponent() { result = "" } + + override string getControllerComponent() { result = "" } + + override string toString() { result = call.toString() } + + override Location getLocation() { result = call.getLocation() } + } + + /** + * A route block defined by a call to `scope`. + * ```rb + * scope(path: "/some_path", module: "some_module") do + * get "/posts/:foo", to "posts#something" + * end + * ``` + * https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-scope + */ + private class ScopeRouteBlock extends NestedRouteBlock, TScopeRouteBlock { + private MethodCall call; + private Block block; + + ScopeRouteBlock() { this = TScopeRouteBlock(parent, call, block) } + + override string getAPrimaryQlClass() { result = "ScopeRouteBlock" } + + override Stmt getAStmt() { result = block.getAStmt() } + + override string toString() { result = call.toString() } + + override Location getLocation() { result = call.getLocation() } + + override string getPathComponent() { + call.getKeywordArgument("path").getConstantValue().isStringlikeValue(result) + or + not exists(call.getKeywordArgument("path")) and + call.getArgument(0).getConstantValue().isStringlikeValue(result) + } + + override string getControllerComponent() { + call.getKeywordArgument(["controller", "module"]) + .getConstantValue() + .isStringlikeValue(result) + } + } + + /** + * A route block defined by a call to `resources`. + * ```rb + * resources :articles do + * get "/comments", to "comments#index" + * end + * ``` + * https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Resources.html#method-i-resources + */ + private class ResourcesRouteBlock extends NestedRouteBlock, TResourcesRouteBlock { + private MethodCall call; + private Block block; + + ResourcesRouteBlock() { this = TResourcesRouteBlock(parent, call, block) } + + override string getAPrimaryQlClass() { result = "ResourcesRouteBlock" } + + override Stmt getAStmt() { result = block.getAStmt() } + + /** + * Gets the `resources` call that gives rise to this route block. + */ + MethodCall getDefiningMethodCall() { result = call } + + override string getPathComponent() { + exists(string resource | + call.getArgument(0).getConstantValue().isStringlikeValue(resource) + | + result = resource + "/:" + singularize(resource) + "_id" + ) + } + + override string getControllerComponent() { result = "" } + + override string toString() { result = call.toString() } + + override Location getLocation() { result = call.getLocation() } + } + + /** + * A route block that is guarded by a conditional statement. + * For example: + * ```rb + * if Rails.env.test? + * get "/foo/bar", to: "foo#bar" + * end + * ``` + * We ignore the condition and analyze both branches to obtain as + * much routing information as possible. + */ + private class ConditionalRouteBlock extends NestedRouteBlock, TConditionalRouteBlock { + private ConditionalExpr e; + + ConditionalRouteBlock() { this = TConditionalRouteBlock(parent, e) } + + override string getAPrimaryQlClass() { result = "ConditionalRouteBlock" } + + override Stmt getAStmt() { result = e.getBranch(_).(StmtSequence).getAStmt() } + + override string getPathComponent() { none() } + + override string getControllerComponent() { none() } + + override string toString() { result = e.toString() } + + override Location getLocation() { result = e.getLocation() } + } + + /** + * A route block defined by a call to `namespace`. + * ```rb + * namespace :admin do + * resources :posts + * end + * ``` + * https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-namespace + */ + private class NamespaceRouteBlock extends NestedRouteBlock, TNamespaceRouteBlock { + private MethodCall call; + private Block block; + + NamespaceRouteBlock() { this = TNamespaceRouteBlock(parent, call, block) } + + override Stmt getAStmt() { result = block.getAStmt() } + + override string getPathComponent() { result = this.getNamespace() } + + override string getControllerComponent() { result = this.getNamespace() } + + private string getNamespace() { + call.getArgument(0).getConstantValue().isStringlikeValue(result) + } + + override string toString() { result = call.toString() } + + override Location getLocation() { result = call.getLocation() } + } + + /** + * A route configuration. This defines a combination of HTTP method and URL + * path which should be routed to a particular controller-action pair. + * This can arise from an explicit call to a routing method, for example: * ```rb * get "/photos", to: "photos#index" * ``` - * this is `/photos`. - * If the string has any interpolations, this predicate will have no result. - */ - abstract string getLastPathComponent(); - - /** - * Gets the HTTP method of this route. - * The result is one of [get, post, put, patch, delete]. - */ - abstract string getHttpMethod(); - - /** - * Gets the last controller component. - * This is the controller specified in the route itself. - */ - abstract string getLastControllerComponent(); - - /** - * Gets a component of the controller. - * This behaves identically to `getPathComponent`, but for controller information. - */ - string getControllerComponent(int n) { - if n = 0 - then result = this.getLastControllerComponent() - else result = this.getParentBlock().getParent(n - 1).getControllerComponent() - } - - /** - * Gets the full controller targeted by this route. - */ - string getController() { - result = - concat(int n | - this.getControllerComponent(n) != "" - | - this.getControllerComponent(n), "/" order by n desc - ) - } - - /** - * Gets the action targeted by this route. - */ - abstract string getAction(); - - /** - * Gets the parent `RouteBlock` of this route. - */ - abstract RouteBlock getParentBlock(); - - /** - * Gets a component of the path. Components are numbered from 0 up, where 0 - * is the last component, 1 is the second-last, etc. - * For example, in the following route: - * + * or via a convenience method like `resources`, which defines multiple routes at once: * ```rb - * namespace path: "foo" do - * namespace path: "bar" do - * get "baz", to: "foo#bar - * end - * end + * resources :photos * ``` - * - * the components are: - * - * | n | component - * |---|---------- - * | 0 | baz - * | 1 | bar - * | 2 | foo */ - string getPathComponent(int n) { - if n = 0 - then result = this.getLastPathComponent() - else result = this.getParentBlock().getParent(n - 1).getPathComponent() + class Route extends TRoute instanceof RouteImpl { + /** + * Gets the name of a primary CodeQL class to which this route belongs. + */ + string getAPrimaryQlClass() { result = "Route" } + + /** Gets a string representation of this route. */ + string toString() { result = super.toString() } + + /** + * Gets the location of the method call that defines this route. + */ + Location getLocation() { result = super.getLocation() } + + /** + * Gets the full controller targeted by this route. + */ + string getController() { result = super.getController() } + + /** + * Gets the action targeted by this route. + */ + string getAction() { result = super.getAction() } + + /** + * Gets the HTTP method of this route. + * The result is one of [get, post, put, patch, delete]. + */ + string getHttpMethod() { result = super.getHttpMethod() } + + /** + * Gets the full path of the route. + */ + string getPath() { result = super.getPath() } + + /** + * Get a URL capture. This is a wildcard URL segment whose value is placed in `params`. + * For example, in + * ```ruby + * get "/foo/:bar/baz", to: "users#index" + * ``` + * the capture is `:bar`. + */ + string getACapture() { result = super.getACapture() } } /** - * Gets the full path of the route. + * The implementation of `Route`. + * This class is abstract and is thus kept private so we don't expose it to + * users. + * Extend this class to add new instances of routes. */ - string getPath() { - result = - concat(int n | - this.getPathComponent(n) != "" - | - // Strip leading and trailing slashes from each path component before combining - stripSlashes(this.getPathComponent(n)), "/" order by n desc - ) - } + abstract private class RouteImpl extends TRoute { + /** + * Gets the name of a primary CodeQL class to which this route belongs. + */ + string getAPrimaryQlClass() { result = "RouteImpl" } - /** - * Get a URL capture. This is a wildcard URL segment whose value is placed in `params`. - * For example, in - * ```ruby - * get "/foo/:bar/baz", to: "users#index" - * ``` - * the capture is `:bar`. - * We don't currently make use of this, but it may be useful in future to more accurately - * model the contents of the `params` hash. - */ - string getACapture() { result = this.getPathComponent(_).regexpFind(":[^:/]+", _, _) } - } + MethodCall method; - /** - * A route generated by an explicit call to `get`, `post`, etc. - * - * ```ruby - * get "/photos", to: "photos#index" - * put "/photos/:id", to: "photos#update" - * ``` - */ - private class ExplicitRoute extends RouteImpl, TExplicitRoute { - RouteBlock parentBlock; + /** Gets a string representation of this route. */ + string toString() { result = method.toString() } - ExplicitRoute() { this = TExplicitRoute(parentBlock, method) } + /** + * Gets the location of the method call that defines this route. + */ + Location getLocation() { result = method.getLocation() } - override string getAPrimaryQlClass() { result = "ExplicitRoute" } + /** + * Gets the method call that defines this route. + */ + MethodCall getDefiningMethodCall() { result = method } - override RouteBlock getParentBlock() { result = parentBlock } + /** + * Get the last component of the path. For example, in + * ```rb + * get "/photos", to: "photos#index" + * ``` + * this is `/photos`. + * If the string has any interpolations, this predicate will have no result. + */ + abstract string getLastPathComponent(); - override string getLastPathComponent() { - method.getArgument(0).getConstantValue().isStringlikeValue(result) - } + /** + * Gets the HTTP method of this route. + * The result is one of [get, post, put, patch, delete]. + */ + abstract string getHttpMethod(); - override string getLastControllerComponent() { - method.getKeywordArgument("controller").getConstantValue().isStringlikeValue(result) - or - not exists(method.getKeywordArgument("controller")) and - ( - result = extractController(this.getActionString()) - or - // If controller is not specified, and we're in a `resources` route block, use the controller of that route. - // For example, in - // - // resources :posts do - // get "timestamp", to: :timestamp - // end - // - // The route is GET /posts/:post_id/timestamp => posts/timestamp - not exists(extractController(this.getActionString())) and - exists(ResourcesRoute r | - r.getDefiningMethodCall() = parentBlock.(ResourcesRouteBlock).getDefiningMethodCall() - | - result = r.getLastControllerComponent() - ) - ) - } + /** + * Gets the last controller component. + * This is the controller specified in the route itself. + */ + abstract string getLastControllerComponent(); - private string getActionString() { - method.getKeywordArgument("to").getConstantValue().isStringlikeValue(result) - or - method.getKeywordArgument("to").(MethodCall).getMethodName() = "redirect" and - result = "#" - } - - override string getAction() { - // get "/photos", action: "index" - method.getKeywordArgument("action").getConstantValue().isStringlikeValue(result) - or - not exists(method.getKeywordArgument("action")) and - ( - // get "/photos", to: "photos#index" - // get "/photos", to: redirect("some_url") - result = extractAction(this.getActionString()) - or - // resources :photos, only: [] do - // get "/", to: "index" - // end - not exists(extractAction(this.getActionString())) and result = this.getActionString() - or - // get :some_action - not exists(this.getActionString()) and - method.getArgument(0).getConstantValue().isStringlikeValue(result) - ) - } - - override string getHttpMethod() { result = method.getMethodName().toString() } - } - - /** - * A route generated by a call to `resources`. - * - * ```ruby - * resources :photos - * ``` - * This creates eight routes, equivalent to the following code: - * ```ruby - * get "/photos", to: "photos#index" - * get "/photos/new", to: "photos#new" - * post "/photos", to: "photos#create" - * get "/photos/:id", to: "photos#show" - * get "/photos/:id/edit", to: "photos#edit" - * patch "/photos/:id", to: "photos#update" - * put "/photos/:id", to: "photos#update" - * delete "/photos/:id", to: "photos#delete" - * ``` - * - * `resources` can take a block. Any routes defined inside the block will inherit a path component of - * `//:_id`. For example: - * - * ```ruby - * resources :photos do - * get "/foo", to: "photos#foo" - * end - * ``` - * This creates the eight default routes, plus one more, which is nested under "/photos/:photo_id", equivalent to: - * ```ruby - * get "/photos/:photo_id/foo", to: "photos#foo" - * ``` - */ - private class ResourcesRoute extends RouteImpl, TResourcesRoute { - RouteBlock parent; - string action; - string httpMethod; - string pathComponent; - - ResourcesRoute() { - exists(string resource | - this = TResourcesRoute(parent, method, action) and - method.getArgument(0).getConstantValue().isStringlikeValue(resource) and - isDefaultResourceRoute(resource, httpMethod, pathComponent, action) - ) - } - - override string getAPrimaryQlClass() { result = "ResourcesRoute" } - - override RouteBlock getParentBlock() { result = parent } - - override string getLastPathComponent() { result = pathComponent } - - override string getLastControllerComponent() { - method.getArgument(0).getConstantValue().isStringlikeValue(result) - } - - override string getAction() { result = action } - - override string getHttpMethod() { result = httpMethod } - } - - /** - * A route generated by a call to `resource`. - * This is like a `resources` route, but creates routes for a singular resource. - * This means there's no index route, no id parameter, and the resource name is expected to be singular. - * It will still be routed to a pluralised controller name. - * ```ruby - * resource :account - * ``` - */ - private class SingularResourceRoute extends RouteImpl, TResourceRoute { - RouteBlock parent; - string action; - string httpMethod; - string pathComponent; - - SingularResourceRoute() { - exists(string resource | - this = TResourceRoute(parent, method, action) and - method.getArgument(0).getConstantValue().isStringlikeValue(resource) and - isDefaultSingularResourceRoute(resource, httpMethod, pathComponent, action) - ) - } - - override string getAPrimaryQlClass() { result = "SingularResourceRoute" } - - override RouteBlock getParentBlock() { result = parent } - - override string getLastPathComponent() { result = pathComponent } - - override string getLastControllerComponent() { - method.getArgument(0).getConstantValue().isStringlikeValue(result) - } - - override string getAction() { result = action } - - override string getHttpMethod() { result = httpMethod } - } - - /** - * A route generated by a call to `match`. - * This is a lower level primitive that powers `get`, `post` etc. - * The first argument can be a path or a (path, controller-action) pair. - * The controller, action and HTTP method can be specified with the - * `controller:`, `action:` and `via:` keyword arguments, respectively. - * ```ruby - * match 'photos/:id' => 'photos#show', via: :get - * match 'photos/:id', to: 'photos#show', via: :get - * match 'photos/:id', to 'photos#show', via: [:get, :post] - * match 'photos/:id', controller: 'photos', action: 'show', via: :get - * ``` - */ - private class MatchRoute extends RouteImpl, TMatchRoute { - private RouteBlock parent; - - MatchRoute() { this = TMatchRoute(parent, method) } - - override string getAPrimaryQlClass() { result = "MatchRoute" } - - override RouteBlock getParentBlock() { result = parent } - - override string getLastPathComponent() { - [method.getArgument(0), method.getArgument(0).(Pair).getKey()] - .getConstantValue() - .isStringlikeValue(result) - } - - override string getLastControllerComponent() { - result = - extractController(method.getKeywordArgument("to").getConstantValue().getStringlikeValue()) or - method.getKeywordArgument("controller").getConstantValue().isStringlikeValue(result) or - result = - extractController(method - .getArgument(0) - .(Pair) - .getValue() - .getConstantValue() - .getStringlikeValue()) - } - - override string getHttpMethod() { - exists(string via | - method.getKeywordArgument("via").getConstantValue().isStringlikeValue(via) - | - via = "all" and result = anyHttpMethod() - or - via != "all" and result = via - ) - or - result = - method - .getKeywordArgument("via") - .(ArrayLiteral) - .getElement(_) - .getConstantValue() - .getStringlikeValue() - } - - override string getAction() { - result = - extractAction(method.getKeywordArgument("to").getConstantValue().getStringlikeValue()) or - method.getKeywordArgument("action").getConstantValue().isStringlikeValue(result) or - result = - extractAction(method - .getArgument(0) - .(Pair) - .getValue() - .getConstantValue() - .getStringlikeValue()) - } - } - - private import Cached - - /** - * This module contains the IPA types backing `RouteBlock` and `Route`, cached for performance. - */ - cached - private module Cached { - cached - newtype TRouteBlock = - TTopLevelRouteBlock(MethodCall routes, MethodCall draw, Block b) { - routes.getMethodName() = "routes" and - draw.getMethodName() = "draw" and - draw.getReceiver() = routes and - draw.getBlock() = b - } or - // constraints(foo: /some_regex/) do - // get "/posts/:foo", to "posts#something" - // end - TConstraintsRouteBlock(RouteBlock parent, MethodCall constraints, Block b) { - parent.getAStmt() = constraints and - constraints.getMethodName() = "constraints" and - constraints.getBlock() = b - } or - // scope(path: "/some_path", module: "some_module") do - // get "/posts/:foo", to "posts#something" - // end - TScopeRouteBlock(RouteBlock parent, MethodCall scope, Block b) { - parent.getAStmt() = scope and scope.getMethodName() = "scope" and scope.getBlock() = b - } or - // resources :articles do - // get "/comments", to "comments#index" - // end - TResourcesRouteBlock(RouteBlock parent, MethodCall resources, Block b) { - parent.getAStmt() = resources and - resources.getMethodName() = "resources" and - resources.getBlock() = b - } or - // A conditional statement guarding some routes. - // We ignore the condition and analyze both branches to obtain as - // much routing information as possible. - TConditionalRouteBlock(RouteBlock parent, ConditionalExpr e) { parent.getAStmt() = e } or - // namespace :admin do - // resources :posts - // end - TNamespaceRouteBlock(RouteBlock parent, MethodCall namespace, Block b) { - parent.getAStmt() = namespace and - namespace.getMethodName() = "namespace" and - namespace.getBlock() = b + /** + * Gets a component of the controller. + * This behaves identically to `getPathComponent`, but for controller information. + */ + string getControllerComponent(int n) { + if n = 0 + then result = this.getLastControllerComponent() + else result = this.getParentBlock().getParent(n - 1).getControllerComponent() } + /** + * Gets the full controller targeted by this route. + */ + string getController() { + result = + concat(int n | + this.getControllerComponent(n) != "" + | + this.getControllerComponent(n), "/" order by n desc + ) + } + + /** + * Gets the action targeted by this route. + */ + abstract string getAction(); + + /** + * Gets the parent `RouteBlock` of this route. + */ + abstract RouteBlock getParentBlock(); + + /** + * Gets a component of the path. Components are numbered from 0 up, where 0 + * is the last component, 1 is the second-last, etc. + * For example, in the following route: + * + * ```rb + * namespace path: "foo" do + * namespace path: "bar" do + * get "baz", to: "foo#bar + * end + * end + * ``` + * + * the components are: + * + * | n | component + * |---|---------- + * | 0 | baz + * | 1 | bar + * | 2 | foo + */ + string getPathComponent(int n) { + if n = 0 + then result = this.getLastPathComponent() + else result = this.getParentBlock().getParent(n - 1).getPathComponent() + } + + /** + * Gets the full path of the route. + */ + string getPath() { + result = + concat(int n | + this.getPathComponent(n) != "" + | + // Strip leading and trailing slashes from each path component before combining + stripSlashes(this.getPathComponent(n)), "/" order by n desc + ) + } + + /** + * Get a URL capture. This is a wildcard URL segment whose value is placed in `params`. + * For example, in + * ```ruby + * get "/foo/:bar/baz", to: "users#index" + * ``` + * the capture is `:bar`. + * We don't currently make use of this, but it may be useful in future to more accurately + * model the contents of the `params` hash. + */ + string getACapture() { result = this.getPathComponent(_).regexpFind(":[^:/]+", _, _) } + } + /** - * A route configuration. See `Route` for more info + * A route generated by an explicit call to `get`, `post`, etc. + * + * ```ruby + * get "/photos", to: "photos#index" + * put "/photos/:id", to: "photos#update" + * ``` + */ + private class ExplicitRoute extends RouteImpl, TExplicitRoute { + RouteBlock parentBlock; + + ExplicitRoute() { this = TExplicitRoute(parentBlock, method) } + + override string getAPrimaryQlClass() { result = "ExplicitRoute" } + + override RouteBlock getParentBlock() { result = parentBlock } + + override string getLastPathComponent() { + method.getArgument(0).getConstantValue().isStringlikeValue(result) + } + + override string getLastControllerComponent() { + method.getKeywordArgument("controller").getConstantValue().isStringlikeValue(result) + or + not exists(method.getKeywordArgument("controller")) and + ( + result = extractController(this.getActionString()) + or + // If controller is not specified, and we're in a `resources` route block, use the controller of that route. + // For example, in + // + // resources :posts do + // get "timestamp", to: :timestamp + // end + // + // The route is GET /posts/:post_id/timestamp => posts/timestamp + not exists(extractController(this.getActionString())) and + exists(ResourcesRoute r | + r.getDefiningMethodCall() = parentBlock.(ResourcesRouteBlock).getDefiningMethodCall() + | + result = r.getLastControllerComponent() + ) + ) + } + + private string getActionString() { + method.getKeywordArgument("to").getConstantValue().isStringlikeValue(result) + or + method.getKeywordArgument("to").(MethodCall).getMethodName() = "redirect" and + result = "#" + } + + override string getAction() { + // get "/photos", action: "index" + method.getKeywordArgument("action").getConstantValue().isStringlikeValue(result) + or + not exists(method.getKeywordArgument("action")) and + ( + // get "/photos", to: "photos#index" + // get "/photos", to: redirect("some_url") + result = extractAction(this.getActionString()) + or + // resources :photos, only: [] do + // get "/", to: "index" + // end + not exists(extractAction(this.getActionString())) and result = this.getActionString() + or + // get :some_action + not exists(this.getActionString()) and + method.getArgument(0).getConstantValue().isStringlikeValue(result) + ) + } + + override string getHttpMethod() { result = method.getMethodName().toString() } + } + + /** + * A route generated by a call to `resources`. + * + * ```ruby + * resources :photos + * ``` + * This creates eight routes, equivalent to the following code: + * ```ruby + * get "/photos", to: "photos#index" + * get "/photos/new", to: "photos#new" + * post "/photos", to: "photos#create" + * get "/photos/:id", to: "photos#show" + * get "/photos/:id/edit", to: "photos#edit" + * patch "/photos/:id", to: "photos#update" + * put "/photos/:id", to: "photos#update" + * delete "/photos/:id", to: "photos#delete" + * ``` + * + * `resources` can take a block. Any routes defined inside the block will inherit a path component of + * `//:_id`. For example: + * + * ```ruby + * resources :photos do + * get "/foo", to: "photos#foo" + * end + * ``` + * This creates the eight default routes, plus one more, which is nested under "/photos/:photo_id", equivalent to: + * ```ruby + * get "/photos/:photo_id/foo", to: "photos#foo" + * ``` + */ + private class ResourcesRoute extends RouteImpl, TResourcesRoute { + RouteBlock parent; + string action; + string httpMethod; + string pathComponent; + + ResourcesRoute() { + exists(string resource | + this = TResourcesRoute(parent, method, action) and + method.getArgument(0).getConstantValue().isStringlikeValue(resource) and + isDefaultResourceRoute(resource, httpMethod, pathComponent, action) + ) + } + + override string getAPrimaryQlClass() { result = "ResourcesRoute" } + + override RouteBlock getParentBlock() { result = parent } + + override string getLastPathComponent() { result = pathComponent } + + override string getLastControllerComponent() { + method.getArgument(0).getConstantValue().isStringlikeValue(result) + } + + override string getAction() { result = action } + + override string getHttpMethod() { result = httpMethod } + } + + /** + * A route generated by a call to `resource`. + * This is like a `resources` route, but creates routes for a singular resource. + * This means there's no index route, no id parameter, and the resource name is expected to be singular. + * It will still be routed to a pluralised controller name. + * ```ruby + * resource :account + * ``` + */ + private class SingularResourceRoute extends RouteImpl, TResourceRoute { + RouteBlock parent; + string action; + string httpMethod; + string pathComponent; + + SingularResourceRoute() { + exists(string resource | + this = TResourceRoute(parent, method, action) and + method.getArgument(0).getConstantValue().isStringlikeValue(resource) and + isDefaultSingularResourceRoute(resource, httpMethod, pathComponent, action) + ) + } + + override string getAPrimaryQlClass() { result = "SingularResourceRoute" } + + override RouteBlock getParentBlock() { result = parent } + + override string getLastPathComponent() { result = pathComponent } + + override string getLastControllerComponent() { + method.getArgument(0).getConstantValue().isStringlikeValue(result) + } + + override string getAction() { result = action } + + override string getHttpMethod() { result = httpMethod } + } + + /** + * A route generated by a call to `match`. + * This is a lower level primitive that powers `get`, `post` etc. + * The first argument can be a path or a (path, controller-action) pair. + * The controller, action and HTTP method can be specified with the + * `controller:`, `action:` and `via:` keyword arguments, respectively. + * ```ruby + * match 'photos/:id' => 'photos#show', via: :get + * match 'photos/:id', to: 'photos#show', via: :get + * match 'photos/:id', to 'photos#show', via: [:get, :post] + * match 'photos/:id', controller: 'photos', action: 'show', via: :get + * ``` + */ + private class MatchRoute extends RouteImpl, TMatchRoute { + private RouteBlock parent; + + MatchRoute() { this = TMatchRoute(parent, method) } + + override string getAPrimaryQlClass() { result = "MatchRoute" } + + override RouteBlock getParentBlock() { result = parent } + + override string getLastPathComponent() { + [method.getArgument(0), method.getArgument(0).(Pair).getKey()] + .getConstantValue() + .isStringlikeValue(result) + } + + override string getLastControllerComponent() { + result = + extractController(method.getKeywordArgument("to").getConstantValue().getStringlikeValue()) or + method.getKeywordArgument("controller").getConstantValue().isStringlikeValue(result) or + result = + extractController(method + .getArgument(0) + .(Pair) + .getValue() + .getConstantValue() + .getStringlikeValue()) + } + + override string getHttpMethod() { + exists(string via | + method.getKeywordArgument("via").getConstantValue().isStringlikeValue(via) + | + via = "all" and result = anyHttpMethod() + or + via != "all" and result = via + ) + or + result = + method + .getKeywordArgument("via") + .(ArrayLiteral) + .getElement(_) + .getConstantValue() + .getStringlikeValue() + } + + override string getAction() { + result = + extractAction(method.getKeywordArgument("to").getConstantValue().getStringlikeValue()) or + method.getKeywordArgument("action").getConstantValue().isStringlikeValue(result) or + result = + extractAction(method + .getArgument(0) + .(Pair) + .getValue() + .getConstantValue() + .getStringlikeValue()) + } + } + + private import Cached + + /** + * This module contains the IPA types backing `RouteBlock` and `Route`, cached for performance. */ cached - newtype TRoute = + private module Cached { + cached + newtype TRouteBlock = + TTopLevelRouteBlock(MethodCall routes, MethodCall draw, Block b) { + routes.getMethodName() = "routes" and + draw.getMethodName() = "draw" and + draw.getReceiver() = routes and + draw.getBlock() = b + } or + // constraints(foo: /some_regex/) do + // get "/posts/:foo", to "posts#something" + // end + TConstraintsRouteBlock(RouteBlock parent, MethodCall constraints, Block b) { + parent.getAStmt() = constraints and + constraints.getMethodName() = "constraints" and + constraints.getBlock() = b + } or + // scope(path: "/some_path", module: "some_module") do + // get "/posts/:foo", to "posts#something" + // end + TScopeRouteBlock(RouteBlock parent, MethodCall scope, Block b) { + parent.getAStmt() = scope and scope.getMethodName() = "scope" and scope.getBlock() = b + } or + // resources :articles do + // get "/comments", to "comments#index" + // end + TResourcesRouteBlock(RouteBlock parent, MethodCall resources, Block b) { + parent.getAStmt() = resources and + resources.getMethodName() = "resources" and + resources.getBlock() = b + } or + // A conditional statement guarding some routes. + // We ignore the condition and analyze both branches to obtain as + // much routing information as possible. + TConditionalRouteBlock(RouteBlock parent, ConditionalExpr e) { parent.getAStmt() = e } or + // namespace :admin do + // resources :posts + // end + TNamespaceRouteBlock(RouteBlock parent, MethodCall namespace, Block b) { + parent.getAStmt() = namespace and + namespace.getMethodName() = "namespace" and + namespace.getBlock() = b + } + /** - * See `ExplicitRoute` + * A route configuration. See `Route` for more info */ - TExplicitRoute(RouteBlock b, MethodCall m) { - b.getAStmt() = m and m.getMethodName() = anyHttpMethod() - } or - /** - * See `ResourcesRoute` - */ - TResourcesRoute(RouteBlock b, MethodCall m, string action) { - b.getAStmt() = m and - m.getMethodName() = "resources" and - action in ["show", "index", "new", "edit", "create", "update", "destroy"] and - applyActionFilters(m, action) - } or - /** - * See `SingularResourceRoute` - */ - TResourceRoute(RouteBlock b, MethodCall m, string action) { - b.getAStmt() = m and - m.getMethodName() = "resource" and - action in ["show", "new", "edit", "create", "update", "destroy"] and - applyActionFilters(m, action) - } or - /** - * See `MatchRoute` - */ - TMatchRoute(RouteBlock b, MethodCall m) { b.getAStmt() = m and m.getMethodName() = "match" } - } + cached + newtype TRoute = + /** + * See `ExplicitRoute` + */ + TExplicitRoute(RouteBlock b, MethodCall m) { + b.getAStmt() = m and m.getMethodName() = anyHttpMethod() + } or + /** + * See `ResourcesRoute` + */ + TResourcesRoute(RouteBlock b, MethodCall m, string action) { + b.getAStmt() = m and + m.getMethodName() = "resources" and + action in ["show", "index", "new", "edit", "create", "update", "destroy"] and + applyActionFilters(m, action) + } or + /** + * See `SingularResourceRoute` + */ + TResourceRoute(RouteBlock b, MethodCall m, string action) { + b.getAStmt() = m and + m.getMethodName() = "resource" and + action in ["show", "new", "edit", "create", "update", "destroy"] and + applyActionFilters(m, action) + } or + /** + * See `MatchRoute` + */ + TMatchRoute(RouteBlock b, MethodCall m) { b.getAStmt() = m and m.getMethodName() = "match" } + } - /** - * Several routing methods support the keyword arguments `only:` and `except:`. - * - `only:` restricts the set of actions to just those in the argument. - * - `except:` removes the given actions from the set. - */ - bindingset[action] - private predicate applyActionFilters(MethodCall m, string action) { - // Respect the `only` keyword argument, which restricts the set of actions. - ( - not exists(m.getKeywordArgument("only")) - or - exists(Expr only | only = m.getKeywordArgument("only") | - [only.(ArrayLiteral).getElement(_), only].getConstantValue().isStringlikeValue(action) - ) - ) and - // Respect the `except` keyword argument, which removes actions from the default set. - ( - not exists(m.getKeywordArgument("except")) - or - exists(Expr except | except = m.getKeywordArgument("except") | - [except.(ArrayLiteral).getElement(_), except].getConstantValue().getStringlikeValue() != - action - ) - ) - } - - /** - * Holds if the (resource, method, path, action) combination would be generated by a call to `resources :`. - */ - bindingset[resource] - private predicate isDefaultResourceRoute( - string resource, string method, string path, string action - ) { - action = "create" and - (method = "post" and path = "/" + resource) - or - action = "index" and - (method = "get" and path = "/" + resource) - or - action = "new" and - (method = "get" and path = "/" + resource + "/new") - or - action = "edit" and - (method = "get" and path = "/" + resource + ":id/edit") - or - action = "show" and - (method = "get" and path = "/" + resource + "/:id") - or - action = "update" and - (method in ["put", "patch"] and path = "/" + resource + "/:id") - or - action = "destroy" and - (method = "delete" and path = "/" + resource + "/:id") - } - - /** - * Holds if the (resource, method, path, action) combination would be generated by a call to `resource :`. - */ - bindingset[resource] - private predicate isDefaultSingularResourceRoute( - string resource, string method, string path, string action - ) { - action = "create" and - (method = "post" and path = "/" + resource) - or - action = "new" and - (method = "get" and path = "/" + resource + "/new") - or - action = "edit" and - (method = "get" and path = "/" + resource + "/edit") - or - action = "show" and - (method = "get" and path = "/" + resource) - or - action = "update" and - (method in ["put", "patch"] and path = "/" + resource) - or - action = "destroy" and - (method = "delete" and path = "/" + resource) - } - - /** - * Extract the controller from a Rails routing string - * ``` - * extractController("posts#show") = "posts" - * ``` - */ - bindingset[input] - private string extractController(string input) { result = input.regexpCapture("([^#]+)#.+", 1) } - - /** - * Extract the action from a Rails routing string - * ``` - * extractAction("posts#show") = "show" - */ - bindingset[input] - private string extractAction(string input) { result = input.regexpCapture("[^#]+#(.+)", 1) } - - /** - * Returns the lowercase name of every HTTP method we support. - */ - private string anyHttpMethod() { result = ["get", "post", "put", "patch", "delete"] } - - /** - * The inverse of `pluralize` - * photos => photo - * stories => story - * not_plural => not_plural - */ - bindingset[input] - private string singularize(string input) { - exists(string prefix | prefix = input.regexpCapture("(.*)ies", 1) | result = prefix + "y") - or - not input.matches("%ies") and - exists(string prefix | prefix = input.regexpCapture("(.*)s", 1) | result = prefix) - or - not input.regexpMatch(".*(ies|s)") and result = input - } - - /** - * Convert a camel-case string to underscore case. Converts `::` to `/`. - * This can be used to convert ActiveRecord controller names to a canonical form that matches the routes they handle. - * Note: All-uppercase words like `CONSTANT` are not handled correctly. - */ - bindingset[base] - string underscore(string base) { - base = "" and result = "" - or - result = - base.charAt(0).toLowerCase() + - // Walk along the string, keeping track of the previous character - // in order to determine if we've crossed a boundary. - // Boundaries are: - // - lower case to upper case: B in FooBar - // - entering a namespace: B in Foo::Bar - concat(int i, string prev, string char | - prev = base.charAt(i) and - char = base.charAt(i + 1) - | - any(string s | - char.regexpMatch("[A-Za-z0-9]") and - if prev = ":" - then s = "/" + char.toLowerCase() - else - if prev.isLowercase() and char.isUppercase() - then s = "_" + char.toLowerCase() - else s = char.toLowerCase() - ) - order by - i + /** + * Several routing methods support the keyword arguments `only:` and `except:`. + * - `only:` restricts the set of actions to just those in the argument. + * - `except:` removes the given actions from the set. + */ + bindingset[action] + private predicate applyActionFilters(MethodCall m, string action) { + // Respect the `only` keyword argument, which restricts the set of actions. + ( + not exists(m.getKeywordArgument("only")) + or + exists(Expr only | only = m.getKeywordArgument("only") | + [only.(ArrayLiteral).getElement(_), only].getConstantValue().isStringlikeValue(action) ) - } + ) and + // Respect the `except` keyword argument, which removes actions from the default set. + ( + not exists(m.getKeywordArgument("except")) + or + exists(Expr except | except = m.getKeywordArgument("except") | + [except.(ArrayLiteral).getElement(_), except].getConstantValue().getStringlikeValue() != + action + ) + ) + } - /** - * Strip leading and trailing forward slashes from the string. - */ - bindingset[input] - private string stripSlashes(string input) { - result = input.regexpReplaceAll("^/+(.+)$", "$1").regexpReplaceAll("^(.*[^/])/+$", "$1") + /** + * Holds if the (resource, method, path, action) combination would be generated by a call to `resources :`. + */ + bindingset[resource] + private predicate isDefaultResourceRoute( + string resource, string method, string path, string action + ) { + action = "create" and + (method = "post" and path = "/" + resource) + or + action = "index" and + (method = "get" and path = "/" + resource) + or + action = "new" and + (method = "get" and path = "/" + resource + "/new") + or + action = "edit" and + (method = "get" and path = "/" + resource + ":id/edit") + or + action = "show" and + (method = "get" and path = "/" + resource + "/:id") + or + action = "update" and + (method in ["put", "patch"] and path = "/" + resource + "/:id") + or + action = "destroy" and + (method = "delete" and path = "/" + resource + "/:id") + } + + /** + * Holds if the (resource, method, path, action) combination would be generated by a call to `resource :`. + */ + bindingset[resource] + private predicate isDefaultSingularResourceRoute( + string resource, string method, string path, string action + ) { + action = "create" and + (method = "post" and path = "/" + resource) + or + action = "new" and + (method = "get" and path = "/" + resource + "/new") + or + action = "edit" and + (method = "get" and path = "/" + resource + "/edit") + or + action = "show" and + (method = "get" and path = "/" + resource) + or + action = "update" and + (method in ["put", "patch"] and path = "/" + resource) + or + action = "destroy" and + (method = "delete" and path = "/" + resource) + } + + /** + * Extract the controller from a Rails routing string + * ``` + * extractController("posts#show") = "posts" + * ``` + */ + bindingset[input] + private string extractController(string input) { result = input.regexpCapture("([^#]+)#.+", 1) } + + /** + * Extract the action from a Rails routing string + * ``` + * extractAction("posts#show") = "show" + */ + bindingset[input] + private string extractAction(string input) { result = input.regexpCapture("[^#]+#(.+)", 1) } + + /** + * Returns the lowercase name of every HTTP method we support. + */ + private string anyHttpMethod() { result = ["get", "post", "put", "patch", "delete"] } + + /** + * The inverse of `pluralize` + * photos => photo + * stories => story + * not_plural => not_plural + */ + bindingset[input] + private string singularize(string input) { + exists(string prefix | prefix = input.regexpCapture("(.*)ies", 1) | result = prefix + "y") + or + not input.matches("%ies") and + exists(string prefix | prefix = input.regexpCapture("(.*)s", 1) | result = prefix) + or + not input.regexpMatch(".*(ies|s)") and result = input + } + + /** + * Convert a camel-case string to underscore case. Converts `::` to `/`. + * This can be used to convert ActiveRecord controller names to a canonical form that matches the routes they handle. + * Note: All-uppercase words like `CONSTANT` are not handled correctly. + */ + bindingset[base] + string underscore(string base) { + base = "" and result = "" + or + result = + base.charAt(0).toLowerCase() + + // Walk along the string, keeping track of the previous character + // in order to determine if we've crossed a boundary. + // Boundaries are: + // - lower case to upper case: B in FooBar + // - entering a namespace: B in Foo::Bar + concat(int i, string prev, string char | + prev = base.charAt(i) and + char = base.charAt(i + 1) + | + any(string s | + char.regexpMatch("[A-Za-z0-9]") and + if prev = ":" + then s = "/" + char.toLowerCase() + else + if prev.isLowercase() and char.isUppercase() + then s = "_" + char.toLowerCase() + else s = char.toLowerCase() + ) + order by + i + ) + } + + /** + * Strip leading and trailing forward slashes from the string. + */ + bindingset[input] + private string stripSlashes(string input) { + result = input.regexpReplaceAll("^/+(.+)$", "$1").regexpReplaceAll("^(.*[^/])/+$", "$1") + } } } diff --git a/ruby/ql/test/library-tests/frameworks/ActionDispatch.ql b/ruby/ql/test/library-tests/frameworks/ActionDispatch.ql index a78d18629f0..47d903a2e4d 100644 --- a/ruby/ql/test/library-tests/frameworks/ActionDispatch.ql +++ b/ruby/ql/test/library-tests/frameworks/ActionDispatch.ql @@ -3,7 +3,7 @@ private import codeql.ruby.frameworks.ActionDispatch private import codeql.ruby.frameworks.ActionController query predicate actionDispatchRoutes( - ActionDispatch::Route r, string method, string path, string controller, string action + ActionDispatch::Routing::Route r, string method, string path, string controller, string action ) { r.getHttpMethod() = method and r.getPath() = path and @@ -12,13 +12,13 @@ query predicate actionDispatchRoutes( } query predicate actionDispatchControllerMethods( - ActionDispatch::Route r, ActionControllerActionMethod m + ActionDispatch::Routing::Route r, ActionControllerActionMethod m ) { m.getARoute() = r } query predicate underscore(string input, string output) { - output = ActionDispatch::underscore(input) and + output = ActionDispatch::Routing::underscore(input) and input in [ "Foo", "FooBar", "Foo::Bar", "FooBar::Baz", "Foo::Bar::Baz", "Foo::Bar::BazQuux", "invalid", "HTTPServerRequest", "LotsOfCapitalLetters" From b7be25e18f3020df4d469e2b566dff45608a75c4 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Fri, 29 Jul 2022 11:39:41 +1200 Subject: [PATCH 511/736] Ruby: Make isInterpretedAsRegExp extensible This allows frameworks to add new instances where a node is interpreted as a regular expression. We introduce a class RegExpInterpretation::Range that represents these nodes. In the future we may want to make this a full Concept, but it's not necessary at the moment. --- ruby/ql/lib/codeql/ruby/Regexp.qll | 38 ++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/Regexp.qll b/ruby/ql/lib/codeql/ruby/Regexp.qll index b6872d2bca3..60ed9b16641 100644 --- a/ruby/ql/lib/codeql/ruby/Regexp.qll +++ b/ruby/ql/lib/codeql/ruby/Regexp.qll @@ -92,20 +92,32 @@ private class ParsedStringRegExp extends RegExp { override string getFlags() { none() } } +/** Provides a class for modelling regular expression interpretations. */ +module RegExpInterpretation { + /** + * Nodes that are not regular expression literals, but are used in places that + * may interpret them regular expressions. Typically these are strings that flow + * to method calls like `RegExp.new`. + */ + abstract class Range extends DataFlow::Node { } +} + /** - * Holds if `source` may be interpreted as a regular expression. + * Nodes interpreted as regular expressions via various standard library methods. */ -private predicate isInterpretedAsRegExp(DataFlow::Node source) { - // The first argument to an invocation of `Regexp.new` or `Regexp.compile`. - source = API::getTopLevelMember("Regexp").getAMethodCall(["compile", "new"]).getArgument(0) - or - // The argument of a call that coerces the argument to a regular expression. - exists(DataFlow::CallNode mce | - mce.getMethodName() = ["match", "match?"] and - source = mce.getArgument(0) and - // exclude https://ruby-doc.org/core-2.4.0/Regexp.html#method-i-match - not mce.getReceiver().asExpr().getExpr() instanceof AST::RegExpLiteral - ) +class StdLibRegExpInterpretation extends RegExpInterpretation::Range { + StdLibRegExpInterpretation() { + // The first argument to an invocation of `Regexp.new` or `Regexp.compile`. + this = API::getTopLevelMember("Regexp").getAMethodCall(["compile", "new"]).getArgument(0) + or + // The argument of a call that coerces the argument to a regular expression. + exists(DataFlow::CallNode mce | + mce.getMethodName() = ["match", "match?"] and + this = mce.getArgument(0) and + // exclude https://ruby-doc.org/core-2.4.0/Regexp.html#method-i-match + not mce.getReceiver().asExpr().getExpr() instanceof AST::RegExpLiteral + ) + } } private class RegExpConfiguration extends Configuration { @@ -120,7 +132,7 @@ private class RegExpConfiguration extends Configuration { ) } - override predicate isSink(DataFlow::Node sink) { isInterpretedAsRegExp(sink) } + override predicate isSink(DataFlow::Node sink) { sink instanceof RegExpInterpretation::Range } override predicate isSanitizer(DataFlow::Node node) { // stop flow if `node` is receiver of From f42d33312fc77f6340902515c1a406b4a2bcb002 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Fri, 29 Jul 2022 11:41:48 +1200 Subject: [PATCH 512/736] Ruby: Model Mime::Type Add type summaries to recognise instances of Mime::Type, and recognise arguments to Mime::Type.match? and Mime::Type.=~ as regular expression interpretations. --- .../codeql/ruby/frameworks/ActionDispatch.qll | 43 +++++++++++++++++++ .../frameworks/ActionDispatch.expected | 12 ++++++ .../frameworks/ActionDispatch.ql | 14 ++++++ .../frameworks/action_dispatch/mime_type.rb | 14 ++++++ 4 files changed, 83 insertions(+) create mode 100644 ruby/ql/test/library-tests/frameworks/action_dispatch/mime_type.rb diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll index 35a198ef7f2..a3a83a49ecc 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll @@ -6,12 +6,55 @@ private import codeql.ruby.AST private import codeql.ruby.Concepts private import codeql.ruby.DataFlow +private import codeql.ruby.Regexp as RE +private import codeql.ruby.dataflow.FlowSummary +private import codeql.ruby.frameworks.data.ModelsAsData /** * Models the `ActionDispatch` HTTP library, which is part of Rails. * Version: 7.1.0. */ module ActionDispatch { + /** + * Type summaries for the `Mime::Type` class, i.e. method calls that produce new + * `Mime::Type` instances. + */ + private class MimeTypeTypeSummary extends ModelInput::TypeModelCsv { + override predicate row(string row) { + // package1;type1;package2;type2;path + row = + [ + // Mime[type] : Mime::Type (omitted) + // Method names with brackets like [] cannot be represented in MaD. + // Mime.fetch(type) : Mime::Type + "actiondispatch;Mime::Type;;;Member[Mime].Method[fetch].ReturnValue", + // Mime::Type.new(str) : Mime::Type + "actiondispatch;Mime::Type;;;Member[Mime].Member[Type].Instance", + // Mime::Type.lookup(str) : Mime::Type + "actiondispatch;Mime::Type;;;Member[Mime].Member[Type].Method[lookup].ReturnValue", + // Mime::Type.lookup_by_extension(str) : Mime::Type + "actiondispatch;Mime::Type;;;Member[Mime].Member[Type].Method[lookup_by_extension].ReturnValue", + // Mime::Type.register(str) : Mime::Type + "actiondispatch;Mime::Type;;;Member[Mime].Member[Type].Method[register].ReturnValue", + // Mime::Type.register_alias(str) : Mime::Type + "actiondispatch;Mime::Type;;;Member[Mime].Member[Type].Method[register_alias].ReturnValue", + ] + } + } + + /** + * An argument to `Mime::Type#match?`, which is converted to a RegExp via + * `Regexp.new`. + */ + class MimeTypeMatchRegExpInterpretation extends RE::RegExpInterpretation::Range { + MimeTypeMatchRegExpInterpretation() { + this = + ModelOutput::getATypeNode("actiondispatch", "Mime::Type") + .getAMethodCall(["match?", "=~"]) + .getArgument(0) + } + } + /** * Models routing configuration specified using the `ActionDispatch` library, which is part of Rails. */ diff --git a/ruby/ql/test/library-tests/frameworks/ActionDispatch.expected b/ruby/ql/test/library-tests/frameworks/ActionDispatch.expected index 5ea30e67680..1593bb24374 100644 --- a/ruby/ql/test/library-tests/frameworks/ActionDispatch.expected +++ b/ruby/ql/test/library-tests/frameworks/ActionDispatch.expected @@ -54,3 +54,15 @@ underscore | HTTPServerRequest | httpserver_request | | LotsOfCapitalLetters | lots_of_capital_letters | | invalid | invalid | +mimeTypeInstances +| action_dispatch/mime_type.rb:2:6:2:28 | Use getMember("Mime").getMethod("fetch").getReturn() | +| action_dispatch/mime_type.rb:3:6:3:32 | Use getMember("Mime").getMember("Type").getMethod("new").getReturn() | +| action_dispatch/mime_type.rb:4:6:4:35 | Use getMember("Mime").getMember("Type").getMethod("lookup").getReturn() | +| action_dispatch/mime_type.rb:5:6:5:43 | Use getMember("Mime").getMember("Type").getMethod("lookup_by_extension").getReturn() | +| action_dispatch/mime_type.rb:6:6:6:47 | Use getMember("Mime").getMember("Type").getMethod("register").getReturn() | +| action_dispatch/mime_type.rb:7:6:7:64 | Use getMember("Mime").getMember("Type").getMethod("register_alias").getReturn() | +mimeTypeMatchRegExpInterpretations +| action_dispatch/mime_type.rb:11:11:11:19 | "foo/bar" | +| action_dispatch/mime_type.rb:12:7:12:15 | "foo/bar" | +| action_dispatch/mime_type.rb:13:11:13:11 | s | +| action_dispatch/mime_type.rb:14:7:14:7 | s | diff --git a/ruby/ql/test/library-tests/frameworks/ActionDispatch.ql b/ruby/ql/test/library-tests/frameworks/ActionDispatch.ql index 47d903a2e4d..f2f65f58523 100644 --- a/ruby/ql/test/library-tests/frameworks/ActionDispatch.ql +++ b/ruby/ql/test/library-tests/frameworks/ActionDispatch.ql @@ -1,6 +1,10 @@ private import ruby private import codeql.ruby.frameworks.ActionDispatch private import codeql.ruby.frameworks.ActionController +private import codeql.ruby.ApiGraphs +private import codeql.ruby.frameworks.data.ModelsAsData +private import codeql.ruby.DataFlow +private import codeql.ruby.Regexp as RE query predicate actionDispatchRoutes( ActionDispatch::Routing::Route r, string method, string path, string controller, string action @@ -24,3 +28,13 @@ query predicate underscore(string input, string output) { "HTTPServerRequest", "LotsOfCapitalLetters" ] } + +query predicate mimeTypeInstances(API::Node n) { + n = ModelOutput::getATypeNode("actiondispatch", "Mime::Type") +} + +query predicate mimeTypeMatchRegExpInterpretations( + ActionDispatch::MimeTypeMatchRegExpInterpretation s +) { + any() +} diff --git a/ruby/ql/test/library-tests/frameworks/action_dispatch/mime_type.rb b/ruby/ql/test/library-tests/frameworks/action_dispatch/mime_type.rb new file mode 100644 index 00000000000..9f37682bb2b --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/action_dispatch/mime_type.rb @@ -0,0 +1,14 @@ +m1 = Mime["text/html"] # not recognised due to MaD limitation (can't parse method name) +m2 = Mime.fetch("text/html") +m3 = Mime::Type.new("text/html") +m4 = Mime::Type.lookup("text/html") +m5 = Mime::Type.lookup_by_extension("jpeg") +m6 = Mime::Type.register("text/calendar", :ics) +m7 = Mime::Type.register_alias("application/xml", :opf, %w(opf)) + +s = "foo/bar" + +m2.match? "foo/bar" +m3 =~ "foo/bar" +m4.match? s +m5 =~ s From 20344986906b37782f7c6a1d0b6b89c59b7ff4a7 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Fri, 29 Jul 2022 12:20:32 +1200 Subject: [PATCH 513/736] Ruby: Fix QLDoc warnings --- ruby/ql/lib/codeql/ruby/Regexp.qll | 8 ++++---- .../ql/lib/codeql/ruby/frameworks/ActionDispatch.qll | 12 ++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/Regexp.qll b/ruby/ql/lib/codeql/ruby/Regexp.qll index 60ed9b16641..23237c28b0b 100644 --- a/ruby/ql/lib/codeql/ruby/Regexp.qll +++ b/ruby/ql/lib/codeql/ruby/Regexp.qll @@ -92,12 +92,12 @@ private class ParsedStringRegExp extends RegExp { override string getFlags() { none() } } -/** Provides a class for modelling regular expression interpretations. */ +/** Provides a class for modeling regular expression interpretations. */ module RegExpInterpretation { /** - * Nodes that are not regular expression literals, but are used in places that - * may interpret them regular expressions. Typically these are strings that flow - * to method calls like `RegExp.new`. + * A node that is not a regular expression literal, but is used in places that + * may interpret it as one. Instances of this class are typically strings that + * flow to method calls like `RegExp.new`. */ abstract class Range extends DataFlow::Node { } } diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll index a3a83a49ecc..e9ff9d5c86a 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActionDispatch.qll @@ -953,10 +953,14 @@ module ActionDispatch { private string anyHttpMethod() { result = ["get", "post", "put", "patch", "delete"] } /** - * The inverse of `pluralize` - * photos => photo - * stories => story - * not_plural => not_plural + * The inverse of `pluralize`. If `input` is a plural word, it returns the + * singular version. + * + * Examples: + * + * - photos -> photo + * - stories -> story + * - not_plural -> not_plural */ bindingset[input] private string singularize(string input) { From c4283dd23f8de6f3a1501090f5a83e65cb3cb253 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 26 Jul 2022 11:31:50 +0200 Subject: [PATCH 514/736] C++: Support `__is_assignable` builtin While here fix the documentation of `__is_trivially_assignable` and `__is_nothrow_assignable`. --- .../code/cpp/exprs/BuiltInOperations.qll | 29 ++++++++++++++----- cpp/ql/lib/semmlecode.cpp.dbscheme | 2 ++ .../builtins/type_traits/expr.expected | 9 ++++++ .../library-tests/builtins/type_traits/ms.cpp | 5 +++- 4 files changed, 36 insertions(+), 9 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index 309d98cd694..c794b574045 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -612,13 +612,10 @@ class BuiltInOperationIsTriviallyDestructible extends BuiltInOperation, @istrivi * The `__is_trivially_assignable` built-in operation (used by some * implementations of the `` header). * - * Returns `true` if the assignment operator `C::operator =(const C& c)` is - * trivial. + * Returns `true` if the assignment operator `C::operator =(const D& d)` is + * trivial (i.e., it will not call any operation that is non-trivial). * ``` - * template - * struct is_trivially_assignable - * : public integral_constant - * { }; + * bool v = __is_trivially_assignable(MyType1, MyType2); * ``` */ class BuiltInOperationIsTriviallyAssignable extends BuiltInOperation, @istriviallyassignableexpr { @@ -631,10 +628,10 @@ class BuiltInOperationIsTriviallyAssignable extends BuiltInOperation, @istrivial * The `__is_nothrow_assignable` built-in operation (used by some * implementations of the `` header). * - * Returns true if there exists a `C::operator =(const C& c) nothrow` + * Returns true if there exists a `C::operator =(const D& d) nothrow` * assignment operator (i.e, with an empty exception specification). * ``` - * bool v = __is_nothrow_assignable(MyType); + * bool v = __is_nothrow_assignable(MyType1, MyType2); * ``` */ class BuiltInOperationIsNothrowAssignable extends BuiltInOperation, @isnothrowassignableexpr { @@ -643,6 +640,22 @@ class BuiltInOperationIsNothrowAssignable extends BuiltInOperation, @isnothrowas override string getAPrimaryQlClass() { result = "BuiltInOperationIsNothrowAssignable" } } +/** + * The `__is_assignable` built-in operation (used by some implementations + * of the `` header). + * + * Returns true if there exists a `C::operator =(const D& d)` assignment + * operator. + * ``` + * bool v = __is_assignable(MyType1, MyType2); + * ``` + */ +class BuiltInOperationIsAssignable extends BuiltInOperation, @isassignable { + override string toString() { result = "__is_assignable" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationIsAssignable" } +} + /** * The `__is_standard_layout` built-in operation (used by some implementations * of the `` header). diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 19e31bf071f..f214ac4d338 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1650,6 +1650,7 @@ case @expr.kind of | 327 = @co_await | 328 = @co_yield | 329 = @temp_init +| 330 = @isassignable ; @var_args_expr = @vastartexpr @@ -1711,6 +1712,7 @@ case @expr.kind of | @isfinalexpr | @builtinchooseexpr | @builtincomplex + | @isassignable ; new_allocated_type( 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 47918496198..4d59a3341f0 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/expr.expected +++ b/cpp/ql/test/library-tests/builtins/type_traits/expr.expected @@ -296,3 +296,12 @@ | ms.cpp:255:24:255:43 | a_struct | | | | ms.cpp:256:24:256:49 | __is_final | a_final_struct | 1 | | ms.cpp:256:24:256:49 | a_final_struct | | | +| ms.cpp:258:29:258:62 | __is_assignable | a_struct,a_struct | 1 | +| ms.cpp:258:29:258:62 | a_struct | | | +| ms.cpp:258:29:258:62 | a_struct | | | +| ms.cpp:259:29:259:59 | __is_assignable | a_struct,empty | 0 | +| ms.cpp:259:29:259:59 | a_struct | | | +| ms.cpp:259:29:259:59 | empty | | | +| ms.cpp:260:29:260:57 | __is_assignable | a_struct,int | 0 | +| ms.cpp:260:29:260:57 | a_struct | | | +| ms.cpp:260:29:260:57 | int | | | diff --git a/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp b/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp index 742f95faf07..aacd74e578a 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp +++ b/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp @@ -254,5 +254,8 @@ void f(void) { bool b_is_final1 = __is_final(a_struct); bool b_is_final2 = __is_final(a_final_struct); -} + bool b_is_assignable1 = __is_assignable(a_struct,a_struct); + bool b_is_assignable2 = __is_assignable(a_struct,empty); + bool b_is_assignable3 = __is_assignable(a_struct,int); +} From 0c039354373f7005fe1aa7269ee861aa2978d241 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 26 Jul 2022 12:34:47 +0200 Subject: [PATCH 515/736] C++: Support `__is_aggregate` builtin Fix some whitespace issues while here. --- .../code/cpp/exprs/BuiltInOperations.qll | 36 +++++++++++++------ cpp/ql/lib/semmlecode.cpp.dbscheme | 2 ++ .../builtins/type_traits/expr.expected | 4 +++ .../library-tests/builtins/type_traits/ms.cpp | 3 ++ 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index c794b574045..44550e13335 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -173,7 +173,7 @@ class BuiltInOperationHasAssign extends BuiltInOperation, @hasassignexpr { * * Returns `true` if the type has a copy constructor. * ``` - * std::integral_constant< bool, __has_copy(_Tp)> hc; + * std::integral_constant hc; * ``` */ class BuiltInOperationHasCopy extends BuiltInOperation, @hascopyexpr { @@ -189,7 +189,7 @@ class BuiltInOperationHasCopy extends BuiltInOperation, @hascopyexpr { * Returns `true` if a copy assignment operator has an empty exception * specification. * ``` - * std::integral_constant< bool, __has_nothrow_assign(_Tp)> hnta; + * std::integral_constant hnta; * ``` */ class BuiltInOperationHasNoThrowAssign extends BuiltInOperation, @hasnothrowassign { @@ -220,7 +220,7 @@ class BuiltInOperationHasNoThrowConstructor extends BuiltInOperation, @hasnothro * * Returns `true` if the copy constructor has an empty exception specification. * ``` - * std::integral_constant< bool, __has_nothrow_copy(MyType) >; + * std::integral_constant; * ``` */ class BuiltInOperationHasNoThrowCopy extends BuiltInOperation, @hasnothrowcopy { @@ -266,7 +266,7 @@ class BuiltInOperationHasTrivialConstructor extends BuiltInOperation, @hastrivia * * Returns true if the type has a trivial copy constructor. * ``` - * std::integral_constant< bool, __has_trivial_copy(MyType) > htc; + * std::integral_constant htc; * ``` */ class BuiltInOperationHasTrivialCopy extends BuiltInOperation, @hastrivialcopy { @@ -468,7 +468,7 @@ class BuiltInOperationIsUnion extends BuiltInOperation, @isunionexpr { * ``` * template * struct types_compatible - * : public integral_constant + * : public integral_constant * { }; * ``` */ @@ -547,7 +547,7 @@ class BuiltInOperationBuiltInAddressOf extends UnaryOperation, BuiltInOperation, * ``` * template * struct is_trivially_constructible - * : public integral_constant + * : public integral_constant * { }; * ``` */ @@ -701,7 +701,7 @@ class BuiltInOperationIsTriviallyCopyable extends BuiltInOperation, @istrivially * * ``` * template - * std::integral_constant< bool, __is_literal_type(_Tp)> ilt; + * std::integral_constant ilt; * ``` */ class BuiltInOperationIsLiteralType extends BuiltInOperation, @isliteraltypeexpr { @@ -718,7 +718,7 @@ class BuiltInOperationIsLiteralType extends BuiltInOperation, @isliteraltypeexpr * compiler, with semantics of the `memcpy` operation. * ``` * template - * std::integral_constant< bool, __has_trivial_move_constructor(_Tp)> htmc; + * std::integral_constant htmc; * ``` */ class BuiltInOperationHasTrivialMoveConstructor extends BuiltInOperation, @@ -736,7 +736,7 @@ class BuiltInOperationHasTrivialMoveConstructor extends BuiltInOperation, * ``` * template * struct has_trivial_move_assign - * : public integral_constant + * : public integral_constant * { }; * ``` */ @@ -771,7 +771,7 @@ class BuiltInOperationHasNothrowMoveAssign extends BuiltInOperation, @hasnothrow * ``` * template * struct is_constructible - * : public integral_constant + * : public integral_constant * { }; * ``` */ @@ -935,7 +935,7 @@ class BuiltInOperationIsValueClass extends BuiltInOperation, @isvalueclassexpr { * ``` * template * struct is_final - * : public integral_constant + * : public integral_constant * { }; * ``` */ @@ -991,3 +991,17 @@ class BuiltInComplexOperation extends BuiltInOperation, @builtincomplex { /** Gets the operand corresponding to the imaginary part of the complex number. */ Expr getImaginaryOperand() { this.hasChild(result, 1) } } + +/** + * A C++ `__is_aggregate` built-in operation (used by some implementations of the + * `` header). + * + * Returns `true` if the type has is an aggregate type. + * ``` + * std::integral_constant ia; + * ``` */ +class BuiltInOperationIsAggregate extends BuiltInOperation, @isaggregate { + override string toString() { result = "__is_aggregate" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationIsAggregate" } +} diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index f214ac4d338..d438935e5ef 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1651,6 +1651,7 @@ case @expr.kind of | 328 = @co_yield | 329 = @temp_init | 330 = @isassignable +| 331 = @isaggregate ; @var_args_expr = @vastartexpr @@ -1713,6 +1714,7 @@ case @expr.kind of | @builtinchooseexpr | @builtincomplex | @isassignable + | @isaggregate ; new_allocated_type( 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 4d59a3341f0..10db02f8450 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/expr.expected +++ b/cpp/ql/test/library-tests/builtins/type_traits/expr.expected @@ -305,3 +305,7 @@ | ms.cpp:260:29:260:57 | __is_assignable | a_struct,int | 0 | | ms.cpp:260:29:260:57 | a_struct | | | | ms.cpp:260:29:260:57 | int | | | +| ms.cpp:262:28:262:51 | __is_aggregate | a_struct | 1 | +| ms.cpp:262:28:262:51 | a_struct | | | +| ms.cpp:263:28:263:46 | __is_aggregate | int | 0 | +| ms.cpp:263:28:263:46 | int | | | diff --git a/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp b/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp index aacd74e578a..6d8ea3c6161 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp +++ b/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp @@ -258,4 +258,7 @@ void f(void) { bool b_is_assignable1 = __is_assignable(a_struct,a_struct); bool b_is_assignable2 = __is_assignable(a_struct,empty); bool b_is_assignable3 = __is_assignable(a_struct,int); + + bool b_is_aggregate1 = __is_aggregate(a_struct); + bool b_is_aggregate2 = __is_aggregate(int); } From a85d3f9b7f09656b327d8f7a44e24a4f7399a9b3 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 26 Jul 2022 12:46:35 +0200 Subject: [PATCH 516/736] C++: Support `__has_unique_object_representations` builtin --- .../code/cpp/exprs/BuiltInOperations.qll | 20 ++++++++++++++++++- cpp/ql/lib/semmlecode.cpp.dbscheme | 2 ++ .../builtins/type_traits/expr.expected | 4 ++++ .../library-tests/builtins/type_traits/ms.cpp | 3 +++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index 44550e13335..cd361d0ac8f 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -999,9 +999,27 @@ class BuiltInComplexOperation extends BuiltInOperation, @builtincomplex { * Returns `true` if the type has is an aggregate type. * ``` * std::integral_constant ia; - * ``` */ + * ``` + */ class BuiltInOperationIsAggregate extends BuiltInOperation, @isaggregate { override string toString() { result = "__is_aggregate" } override string getAPrimaryQlClass() { result = "BuiltInOperationIsAggregate" } } + +/** + * A C++ `__has_unique_object_representations` built-in operation (used by some + * implementations of the `` header). + * + * Returns `true` if the type is trivially copyable and if the object representation + * is unique for two objects with the same value. + * ``` + * bool v = __has_unique_object_representations(MyType); + * ``` + */ +class BuiltInOperationHasUniqueObjectRepresentations extends BuiltInOperation, + @hasuniqueobjectrepresentations { + override string toString() { result = "__has_unique_object_representations" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationHasUniqueObjectRepresentations" } +} diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index d438935e5ef..7fb82ddb3e3 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1652,6 +1652,7 @@ case @expr.kind of | 329 = @temp_init | 330 = @isassignable | 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations ; @var_args_expr = @vastartexpr @@ -1715,6 +1716,7 @@ case @expr.kind of | @builtincomplex | @isassignable | @isaggregate + | @hasuniqueobjectrepresentations ; new_allocated_type( 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 10db02f8450..a19d917aaac 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/expr.expected +++ b/cpp/ql/test/library-tests/builtins/type_traits/expr.expected @@ -309,3 +309,7 @@ | ms.cpp:262:28:262:51 | a_struct | | | | ms.cpp:263:28:263:46 | __is_aggregate | int | 0 | | ms.cpp:263:28:263:46 | int | | | +| ms.cpp:265:49:265:88 | __has_unique_object_representations | int | 1 | +| ms.cpp:265:49:265:88 | int | | | +| ms.cpp:266:49:266:90 | __has_unique_object_representations | float | 0 | +| ms.cpp:266:49:266:90 | float | | | diff --git a/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp b/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp index 6d8ea3c6161..91d6245cc35 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp +++ b/cpp/ql/test/library-tests/builtins/type_traits/ms.cpp @@ -261,4 +261,7 @@ void f(void) { bool b_is_aggregate1 = __is_aggregate(a_struct); bool b_is_aggregate2 = __is_aggregate(int); + + bool b_has_unique_object_representations1 = __has_unique_object_representations(int); + bool b_has_unique_object_representations2 = __has_unique_object_representations(float); } From 81e687ea9854334ca8e85340033c664e91221043 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 26 Jul 2022 13:12:57 +0200 Subject: [PATCH 517/736] C++: Support `__builtin_bit_cast` builtin --- .../semmle/code/cpp/exprs/BuiltInOperations.qll | 15 +++++++++++++++ cpp/ql/lib/semmlecode.cpp.dbscheme | 2 ++ cpp/ql/test/library-tests/builtins/edg/edg.c | 5 ++++- .../test/library-tests/builtins/edg/expr.expected | 3 +++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index cd361d0ac8f..6e413c64d7f 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -1023,3 +1023,18 @@ class BuiltInOperationHasUniqueObjectRepresentations extends BuiltInOperation, override string getAPrimaryQlClass() { result = "BuiltInOperationHasUniqueObjectRepresentations" } } + +/** + * A C/C++ `__builtin_bit_cast` built-in operation (used by some implementations + * of `std::bit_cast`). + * + * Performs a bit cast from a value to a type. + * ``` + * __builtin_bit_cast(Type, value); + * ``` + */ +class BuiltInBitCast extends BuiltInOperation, @builtinbitcast { + override string toString() { result = "__builtin_bit_cast" } + + override string getAPrimaryQlClass() { result = "BuiltInBitCast" } +} diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 7fb82ddb3e3..f350bfc257f 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1653,6 +1653,7 @@ case @expr.kind of | 330 = @isassignable | 331 = @isaggregate | 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast ; @var_args_expr = @vastartexpr @@ -1717,6 +1718,7 @@ case @expr.kind of | @isassignable | @isaggregate | @hasuniqueobjectrepresentations + | @builtinbitcast ; new_allocated_type( diff --git a/cpp/ql/test/library-tests/builtins/edg/edg.c b/cpp/ql/test/library-tests/builtins/edg/edg.c index d1a78435317..f1f0f0f1375 100644 --- a/cpp/ql/test/library-tests/builtins/edg/edg.c +++ b/cpp/ql/test/library-tests/builtins/edg/edg.c @@ -1,4 +1,4 @@ - +// semmle-extractor-options: --clang struct mystruct { int f1; int f2; @@ -13,3 +13,6 @@ void f(void) { int i2 = edg_offsetof(struct mystruct,f2); } +void g(void) { + double f = __builtin_bit_cast(double,42l); +} diff --git a/cpp/ql/test/library-tests/builtins/edg/expr.expected b/cpp/ql/test/library-tests/builtins/edg/expr.expected index 0969dc1e217..5ab0747ecc7 100644 --- a/cpp/ql/test/library-tests/builtins/edg/expr.expected +++ b/cpp/ql/test/library-tests/builtins/edg/expr.expected @@ -13,3 +13,6 @@ | edg.c:13:14:13:45 | (size_t)... | 0 | 0 | | edg.c:13:14:13:45 | __INTADDR__ | 1 | 1 | | edg.c:13:43:13:44 | f2 | 0 | 0 | +| edg.c:17:16:17:45 | __builtin_bit_cast | 1 | 1 | +| edg.c:17:16:17:45 | double | 0 | 0 | +| edg.c:17:42:17:44 | 42 | 1 | 1 | From 20b66eaf34fc2fa2b972610c39ac4b6afcb4fba9 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 26 Jul 2022 13:59:30 +0200 Subject: [PATCH 518/736] C++: Support `__builtin_shuffle` builtin While here write gcc instead of GNU, which is more accurate. --- .../code/cpp/exprs/BuiltInOperations.qll | 21 +++++++++++++++++-- cpp/ql/lib/semmlecode.cpp.dbscheme | 2 ++ .../vector_types/builtin_ops.expected | 2 ++ .../vector_types/variables.expected | 6 ++++++ .../vector_types/vector_types2.cpp | 12 +++++++++++ 5 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 cpp/ql/test/library-tests/vector_types/vector_types2.cpp diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index 6e413c64d7f..866ed3c314a 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -121,7 +121,7 @@ class BuiltInNoOp extends BuiltInOperation, @noopexpr { /** * A C/C++ `__builtin_offsetof` built-in operation (used by some implementations * of `offsetof`). The operation retains its semantics even in the presence - * of an overloaded `operator &`). This is a GNU/Clang extension. + * of an overloaded `operator &`). This is a gcc/clang extension. * ``` * struct S { * int a, b; @@ -494,6 +494,23 @@ class BuiltInOperationBuiltInShuffleVector extends BuiltInOperation, @builtinshu override string getAPrimaryQlClass() { result = "BuiltInOperationBuiltInShuffleVector" } } +/** + * A gcc `__builtin_shuffle` expression. + * + * It outputs a permutation of elements from one or two input vectors. + * Please see https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html + * for more information. + * ``` + * // Concatenate every other element of 4-element vectors V1 and V2. + * V3 = __builtin_shufflevector(V1, V2, {0, 2, 4, 6}); + * ``` + */ +class BuiltInOperationBuiltInShuffle extends BuiltInOperation, @builtinshuffle { + override string toString() { result = "__builtin_shuffle" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationBuiltInShuffle" } +} + /** * A clang `__builtin_convertvector` expression. * @@ -946,7 +963,7 @@ class BuiltInOperationIsFinal extends BuiltInOperation, @isfinalexpr { } /** - * The `__builtin_choose_expr` expression. This is a GNU/Clang extension. + * The `__builtin_choose_expr` expression. This is a gcc/clang extension. * * The expression functions similarly to the ternary `?:` operator, except * that it is evaluated at compile-time. diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index f350bfc257f..23f7cbb88a4 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1654,6 +1654,7 @@ case @expr.kind of | 331 = @isaggregate | 332 = @hasuniqueobjectrepresentations | 333 = @builtinbitcast +| 334 = @builtinshuffle ; @var_args_expr = @vastartexpr @@ -1719,6 +1720,7 @@ case @expr.kind of | @isaggregate | @hasuniqueobjectrepresentations | @builtinbitcast + | @builtinshuffle ; new_allocated_type( diff --git a/cpp/ql/test/library-tests/vector_types/builtin_ops.expected b/cpp/ql/test/library-tests/vector_types/builtin_ops.expected index 2c0dd9d0017..756ca2f1c17 100644 --- a/cpp/ql/test/library-tests/vector_types/builtin_ops.expected +++ b/cpp/ql/test/library-tests/vector_types/builtin_ops.expected @@ -1,2 +1,4 @@ +| vector_types2.cpp:10:15:10:42 | __builtin_shuffle | +| vector_types2.cpp:11:15:11:45 | __builtin_shuffle | | vector_types.cpp:31:13:31:49 | __builtin_shufflevector | | vector_types.cpp:58:10:58:52 | __builtin_convertvector | diff --git a/cpp/ql/test/library-tests/vector_types/variables.expected b/cpp/ql/test/library-tests/vector_types/variables.expected index 2494f192e9a..52fa98dd3f0 100644 --- a/cpp/ql/test/library-tests/vector_types/variables.expected +++ b/cpp/ql/test/library-tests/vector_types/variables.expected @@ -13,6 +13,12 @@ | file://:0:0:0:0 | gp_offset | gp_offset | file://:0:0:0:0 | unsigned int | 4 | | file://:0:0:0:0 | overflow_arg_area | overflow_arg_area | file://:0:0:0:0 | void * | 8 | | file://:0:0:0:0 | reg_save_area | reg_save_area | file://:0:0:0:0 | void * | 8 | +| vector_types2.cpp:5:7:5:7 | a | a | vector_types2.cpp:2:13:2:15 | v4i | 16 | +| vector_types2.cpp:6:7:6:7 | b | b | vector_types2.cpp:2:13:2:15 | v4i | 16 | +| vector_types2.cpp:7:7:7:12 | mask_1 | mask_1 | vector_types2.cpp:2:13:2:15 | v4i | 16 | +| vector_types2.cpp:8:7:8:12 | mask_2 | mask_2 | vector_types2.cpp:2:13:2:15 | v4i | 16 | +| vector_types2.cpp:10:7:10:11 | res_1 | res_1 | vector_types2.cpp:2:13:2:15 | v4i | 16 | +| vector_types2.cpp:11:7:11:11 | res_2 | res_2 | vector_types2.cpp:2:13:2:15 | v4i | 16 | | vector_types.cpp:9:21:9:21 | x | x | vector_types.cpp:6:15:6:17 | v4f | 16 | | vector_types.cpp:14:18:14:20 | lhs | lhs | vector_types.cpp:6:15:6:17 | v4f | 16 | | vector_types.cpp:14:27:14:29 | rhs | rhs | vector_types.cpp:6:15:6:17 | v4f | 16 | diff --git a/cpp/ql/test/library-tests/vector_types/vector_types2.cpp b/cpp/ql/test/library-tests/vector_types/vector_types2.cpp new file mode 100644 index 00000000000..d4233b28890 --- /dev/null +++ b/cpp/ql/test/library-tests/vector_types/vector_types2.cpp @@ -0,0 +1,12 @@ +// semmle-extractor-options: --gnu --gnu_version 80000 +typedef int v4i __attribute__((vector_size (16))); + +void f() { + v4i a = {1,2,3,4}; + v4i b = {5,6,7,8}; + v4i mask_1 = {3,0,1,2}; + v4i mask_2 = {3,5,4,2}; + + v4i res_1 = __builtin_shuffle(a, mask_1); + v4i res_2 = __builtin_shuffle(a, b, mask_2); +} From 1806b8933f9271ebb47a7ee9783f19aece21e3d1 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 26 Jul 2022 16:26:40 +0200 Subject: [PATCH 519/736] C++: Add change note for newly added builtins --- .../lib/change-notes/2022-07-26-additional-builtin-support.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2022-07-26-additional-builtin-support.md diff --git a/cpp/ql/lib/change-notes/2022-07-26-additional-builtin-support.md b/cpp/ql/lib/change-notes/2022-07-26-additional-builtin-support.md new file mode 100644 index 00000000000..2e4d7db69a5 --- /dev/null +++ b/cpp/ql/lib/change-notes/2022-07-26-additional-builtin-support.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added subclasses of `BuiltInOperations` for `__builtin_bit_cast`, `__builtin_shuffle`, `__has_unique_object_representations`, `__is_aggregate`, and `__is_assignable`. From 295ecbb4016253db5943ea25a65f038ba81fd53f Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 26 Jul 2022 16:53:34 +0200 Subject: [PATCH 520/736] C++: Add upgrade and downgrade scripts for new builtins --- .../exprs.ql | 17 + .../old.dbscheme | 2125 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2115 ++++++++++++++++ .../upgrade.properties | 3 + .../old.dbscheme | 2115 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2125 +++++++++++++++++ .../upgrade.properties | 2 + 7 files changed, 8502 insertions(+) create mode 100644 cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/exprs.ql create mode 100644 cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/old.dbscheme create mode 100644 cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/upgrade.properties diff --git a/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/exprs.ql b/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/exprs.ql new file mode 100644 index 00000000000..d00685e7cc6 --- /dev/null +++ b/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/exprs.ql @@ -0,0 +1,17 @@ +class Expr extends @expr { + string toString() { none() } +} + +class Location extends @location_expr { + string toString() { none() } +} + +predicate isExprWithNewBuiltin(Expr expr) { + exists(int kind | exprs(expr, kind, _) | 330 <= kind and kind <= 334) +} + +from Expr expr, int kind, int kind_new, Location location +where + exprs(expr, kind, location) and + if isExprWithNewBuiltin(expr) then kind_new = 0 else kind_new = kind +select expr, kind_new, location diff --git a/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/old.dbscheme b/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/old.dbscheme new file mode 100644 index 00000000000..23f7cbb88a4 --- /dev/null +++ b/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/old.dbscheme @@ -0,0 +1,2125 @@ + +/** + * 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 @macroinvocations.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 + | 2 = constructor + | 3 = destructor + | 4 = conversion + | 5 = operator + | 6 = builtin // 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 +); + +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 = error + | 2 = unknown + | 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 = __int8 // Microsoft-specific + | 21 = __int16 // Microsoft-specific + | 22 = __int32 // Microsoft-specific + | 23 = __int64 // Microsoft-specific + | 24 = float + | 25 = double + | 26 = long_double + | 27 = _Complex_float // C99-specific + | 28 = _Complex_double // C99-specific + | 29 = _Complex_long double // C99-specific + | 30 = _Imaginary_float // C99-specific + | 31 = _Imaginary_double // C99-specific + | 32 = _Imaginary_long_double // C99-specific + | 33 = wchar_t // Microsoft-specific + | 34 = decltype_nullptr // C++11 + | 35 = __int128 + | 36 = unsigned___int128 + | 37 = signed___int128 + | 38 = __float128 + | 39 = _Complex___float128 + | 40 = _Decimal32 + | 41 = _Decimal64 + | 42 = _Decimal128 + | 43 = char16_t + | 44 = char32_t + | 45 = _Float32 + | 46 = _Float32x + | 47 = _Float64 + | 48 = _Float64x + | 49 = _Float128 + | 50 = _Float128x + | 51 = char8_t + ; +*/ +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 EDG frontend. See symbol_ref.h there. + 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 +; + +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_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 + +/* + 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 // EDG 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 +; + +@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 + ; + +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. + */ +#keyset[aggregate, field] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. + */ +#keyset[aggregate, element_index] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: 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/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/semmlecode.cpp.dbscheme b/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..19e31bf071f --- /dev/null +++ b/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/semmlecode.cpp.dbscheme @@ -0,0 +1,2115 @@ + +/** + * 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 @macroinvocations.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 + | 2 = constructor + | 3 = destructor + | 4 = conversion + | 5 = operator + | 6 = builtin // 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 +); + +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 = error + | 2 = unknown + | 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 = __int8 // Microsoft-specific + | 21 = __int16 // Microsoft-specific + | 22 = __int32 // Microsoft-specific + | 23 = __int64 // Microsoft-specific + | 24 = float + | 25 = double + | 26 = long_double + | 27 = _Complex_float // C99-specific + | 28 = _Complex_double // C99-specific + | 29 = _Complex_long double // C99-specific + | 30 = _Imaginary_float // C99-specific + | 31 = _Imaginary_double // C99-specific + | 32 = _Imaginary_long_double // C99-specific + | 33 = wchar_t // Microsoft-specific + | 34 = decltype_nullptr // C++11 + | 35 = __int128 + | 36 = unsigned___int128 + | 37 = signed___int128 + | 38 = __float128 + | 39 = _Complex___float128 + | 40 = _Decimal32 + | 41 = _Decimal64 + | 42 = _Decimal128 + | 43 = char16_t + | 44 = char32_t + | 45 = _Float32 + | 46 = _Float32x + | 47 = _Float64 + | 48 = _Float64x + | 49 = _Float128 + | 50 = _Float128x + | 51 = char8_t + ; +*/ +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 EDG frontend. See symbol_ref.h there. + 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 +; + +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_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 + +/* + 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 // EDG 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 +; + +@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 + ; + +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. + */ +#keyset[aggregate, field] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. + */ +#keyset[aggregate, element_index] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: 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/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/upgrade.properties b/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/upgrade.properties new file mode 100644 index 00000000000..d697a16a42f --- /dev/null +++ b/cpp/downgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/upgrade.properties @@ -0,0 +1,3 @@ +description: Add new builtin operations +compatibility: partial +exprs.rel: run exprs.qlo diff --git a/cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/old.dbscheme b/cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/old.dbscheme new file mode 100644 index 00000000000..19e31bf071f --- /dev/null +++ b/cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/old.dbscheme @@ -0,0 +1,2115 @@ + +/** + * 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 @macroinvocations.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 + | 2 = constructor + | 3 = destructor + | 4 = conversion + | 5 = operator + | 6 = builtin // 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 +); + +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 = error + | 2 = unknown + | 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 = __int8 // Microsoft-specific + | 21 = __int16 // Microsoft-specific + | 22 = __int32 // Microsoft-specific + | 23 = __int64 // Microsoft-specific + | 24 = float + | 25 = double + | 26 = long_double + | 27 = _Complex_float // C99-specific + | 28 = _Complex_double // C99-specific + | 29 = _Complex_long double // C99-specific + | 30 = _Imaginary_float // C99-specific + | 31 = _Imaginary_double // C99-specific + | 32 = _Imaginary_long_double // C99-specific + | 33 = wchar_t // Microsoft-specific + | 34 = decltype_nullptr // C++11 + | 35 = __int128 + | 36 = unsigned___int128 + | 37 = signed___int128 + | 38 = __float128 + | 39 = _Complex___float128 + | 40 = _Decimal32 + | 41 = _Decimal64 + | 42 = _Decimal128 + | 43 = char16_t + | 44 = char32_t + | 45 = _Float32 + | 46 = _Float32x + | 47 = _Float64 + | 48 = _Float64x + | 49 = _Float128 + | 50 = _Float128x + | 51 = char8_t + ; +*/ +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 EDG frontend. See symbol_ref.h there. + 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 +; + +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_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 + +/* + 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 // EDG 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 +; + +@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 + ; + +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. + */ +#keyset[aggregate, field] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. + */ +#keyset[aggregate, element_index] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: 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/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..23f7cbb88a4 --- /dev/null +++ b/cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/semmlecode.cpp.dbscheme @@ -0,0 +1,2125 @@ + +/** + * 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 @macroinvocations.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 + | 2 = constructor + | 3 = destructor + | 4 = conversion + | 5 = operator + | 6 = builtin // 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 +); + +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 = error + | 2 = unknown + | 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 = __int8 // Microsoft-specific + | 21 = __int16 // Microsoft-specific + | 22 = __int32 // Microsoft-specific + | 23 = __int64 // Microsoft-specific + | 24 = float + | 25 = double + | 26 = long_double + | 27 = _Complex_float // C99-specific + | 28 = _Complex_double // C99-specific + | 29 = _Complex_long double // C99-specific + | 30 = _Imaginary_float // C99-specific + | 31 = _Imaginary_double // C99-specific + | 32 = _Imaginary_long_double // C99-specific + | 33 = wchar_t // Microsoft-specific + | 34 = decltype_nullptr // C++11 + | 35 = __int128 + | 36 = unsigned___int128 + | 37 = signed___int128 + | 38 = __float128 + | 39 = _Complex___float128 + | 40 = _Decimal32 + | 41 = _Decimal64 + | 42 = _Decimal128 + | 43 = char16_t + | 44 = char32_t + | 45 = _Float32 + | 46 = _Float32x + | 47 = _Float64 + | 48 = _Float64x + | 49 = _Float128 + | 50 = _Float128x + | 51 = char8_t + ; +*/ +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 EDG frontend. See symbol_ref.h there. + 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 +; + +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_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 + +/* + 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 // EDG 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 +; + +@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 + ; + +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. + */ +#keyset[aggregate, field] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. + */ +#keyset[aggregate, element_index] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: 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/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/upgrade.properties b/cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/upgrade.properties new file mode 100644 index 00000000000..db0e7e92d0e --- /dev/null +++ b/cpp/ql/lib/upgrades/19e31bf071f588bb7efd1e4d5a185ce4f6fbbd84/upgrade.properties @@ -0,0 +1,2 @@ +description: Add new builtin operations +compatibility: backwards From afdd21eab7acbac11975ec20c5f09b4ed041ca05 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 26 Jul 2022 20:52:36 +0200 Subject: [PATCH 521/736] C++: Update DB scheme stats file --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 5604 +++++++++++----------- 1 file changed, 2707 insertions(+), 2897 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index e439c5ac624..35eb9c7e6de 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -2,79 +2,79 @@ @compilation - 9980 + 9978 @externalDataElement 65 - - @svnentry - 575525 - @external_package 4 + + @svnentry + 575525 + @location_stmt - 3805462 + 3805465 @diagnostic - 582773 + 72312 @file - 124189 + 124196 @folder 15994 - @location_expr - 13128112 + @location_default + 30132211 - @location_default - 30128761 + @location_expr + 13128120 @macroinvocation - 33894981 + 33889080 @function - 4726273 + 4726519 @fun_decl - 5096962 + 5097227 @type_decl - 3283977 + 3284148 @namespace_decl - 306972 + 306973 @using - 374921 + 374941 @static_assert - 130417 + 130418 @var_decl - 8543232 + 8543677 @parameter - 6660155 + 6660502 @membervariable @@ -82,7 +82,7 @@ @globalvariable - 300708 + 318724 @localvariable @@ -94,55 +94,55 @@ @builtintype - 22109 + 22110 @derivedtype - 4413446 + 4413676 @decltype - 31047 + 31049 @usertype - 5342989 + 5343268 @mangledname - 1728010 + 1975901 @type_mention - 4011508 + 4011511 @routinetype - 546982 + 546661 @ptrtomember - 38103 + 38105 @specifier - 24932 + 24933 @gnuattribute - 664228 + 664262 @stdattribute - 468982 + 469081 @alignas - 8937 + 8938 @declspec - 238544 + 238545 @msattribute @@ -150,11 +150,11 @@ @attribute_arg_token - 25402 + 25403 @attribute_arg_constant - 326469 + 326486 @attribute_arg_type @@ -166,15 +166,15 @@ @derivation - 402388 + 402152 @frienddecl - 715075 + 714656 @comment - 8781270 + 8783134 @namespace @@ -186,23 +186,23 @@ @namequalifier - 1618961 + 1618866 @value - 10646146 + 10646153 @initialiser - 1731824 + 1732353 @lambdacapture - 28224 + 28226 @stmt_expr - 1480414 + 1480415 @stmt_if @@ -210,23 +210,23 @@ @stmt_while - 30207 + 30201 @stmt_label - 53046 + 53044 @stmt_return - 1306346 + 1306414 @stmt_block - 1446530 + 1446605 @stmt_end_test_while - 148604 + 148599 @stmt_for @@ -234,7 +234,7 @@ @stmt_switch_case - 191408 + 191399 @stmt_switch @@ -242,11 +242,11 @@ @stmt_try_block - 42701 + 42699 @stmt_decl - 608508 + 608387 @stmt_empty @@ -258,7 +258,7 @@ @stmt_break - 102231 + 102232 @stmt_range_based_for @@ -266,15 +266,15 @@ @stmt_handler - 59432 + 59429 @stmt_constexpr_if - 52551 + 52562 @stmt_goto - 110490 + 110487 @stmt_asm @@ -310,43 +310,43 @@ @ctordirectinit - 112813 + 112747 @ctorvirtualinit - 6534 + 6532 @ctorfieldinit - 200789 + 200671 @ctordelegatinginit - 3347 + 3345 @dtordirectdestruct - 41715 + 41690 @dtorvirtualdestruct - 4122 + 4119 @dtorfielddestruct - 41644 + 41620 @static_cast - 211821 + 211675 @reinterpret_cast - 30776 + 30783 @const_cast - 35278 + 35285 @dynamic_cast @@ -354,19 +354,19 @@ @c_style_cast - 4209393 + 4209396 @lambdaexpr - 21639 + 21640 @param_ref - 375289 + 375271 @errorexpr - 46823 + 46796 @address_of @@ -374,27 +374,27 @@ @reference_to - 1596143 + 1596067 @indirect - 292115 + 292106 @ref_indirect - 1934537 + 1938685 @array_to_pointer - 1424883 + 1424884 @vacuous_destructor_call - 8138 + 8133 @parexpr - 3572547 + 3572549 @arithnegexpr @@ -402,11 +402,11 @@ @complementexpr - 27787 + 27786 @notexpr - 277992 + 277993 @postincrexpr @@ -446,11 +446,11 @@ @remexpr - 15819 + 15810 @paddexpr - 86505 + 86502 @psubexpr @@ -458,7 +458,7 @@ @pdiffexpr - 35487 + 35495 @lshiftexpr @@ -490,11 +490,11 @@ @gtexpr - 100669 + 100674 @ltexpr - 106314 + 106319 @geexpr @@ -502,11 +502,11 @@ @leexpr - 212141 + 212134 @assignexpr - 933419 + 933420 @assignaddexpr @@ -518,7 +518,7 @@ @assignmulexpr - 7170 + 7168 @assigndivexpr @@ -546,7 +546,7 @@ @assignxorexpr - 21804 + 21803 @assignpaddexpr @@ -554,7 +554,7 @@ @andlogicalexpr - 249008 + 249009 @orlogicalexpr @@ -562,7 +562,7 @@ @commaexpr - 181539 + 181530 @subscriptexpr @@ -570,7 +570,7 @@ @callexpr - 309063 + 309079 @vastartexpr @@ -586,27 +586,27 @@ @varaccess - 6006364 + 6006368 @thisaccess - 1125914 + 1125919 @new_expr - 47598 + 47571 @delete_expr - 11732 + 11725 @throw_expr - 21765 + 21760 @condition_decl - 38595 + 38593 @braced_init_list @@ -614,7 +614,7 @@ @type_id - 36430 + 36408 @runtime_sizeof @@ -622,15 +622,15 @@ @runtime_alignof - 48550 + 48521 @sizeof_pack - 5644 + 5645 @routineexpr - 3047613 + 3047738 @type_operand @@ -642,7 +642,7 @@ @ispodexpr - 636 + 635 @hastrivialdestructor @@ -666,23 +666,23 @@ @isconstructibleexpr - 2721 + 2722 @isfinalexpr - 2093 + 2094 @noexceptexpr - 23574 + 23573 @builtinaddressof - 13282 + 13274 @temp_init - 760683 + 760646 @assume @@ -826,7 +826,7 @@ @typescompexpr - 562415 + 562416 @intaddrexpr @@ -846,7 +846,7 @@ @istriviallyconstructibleexpr - 2826 + 2827 @isdestructibleexpr @@ -866,7 +866,7 @@ @isnothrowassignableexpr - 2093 + 2094 @isstandardlayoutexpr @@ -890,7 +890,7 @@ @isnothrowconstructibleexpr - 4815 + 4816 @hasfinalizerexpr @@ -956,45 +956,65 @@ @co_yield 1 + + @isassignable + 2617 + + + @isaggregate + 2 + + + @hasuniqueobjectrepresentations + 2 + + + @builtinbitcast + 1 + + + @builtinshuffle + 1965 + @ppd_if - 672225 + 672260 @ppd_ifdef - 265314 + 265328 @ppd_ifndef - 268607 + 268621 @ppd_elif - 25402 + 25403 @ppd_else - 210746 + 210757 @ppd_endif - 1206147 + 1206210 @ppd_plain_include - 313767 + 313784 @ppd_define - 2435252 + 2435769 @ppd_undef - 262021 + 262035 @ppd_pragma - 312270 + 312337 @ppd_include_next @@ -1048,11 +1068,11 @@ compilations - 9980 + 9978 id - 9980 + 9978 cwd @@ -1070,7 +1090,7 @@ 1 2 - 9980 + 9978 @@ -1644,7 +1664,7 @@ seconds - 12490 + 9586 @@ -1725,48 +1745,48 @@ 3 4 - 198 + 715 4 5 - 795 + 278 - 5 - 9 + 6 + 8 159 - 9 + 8 + 10 + 159 + + + 10 11 - 119 + 79 11 12 - 198 - - - 13 - 18 159 - 18 - 22 + 17 + 19 + 159 + + + 20 + 27 + 159 + + + 40 + 77 119 - - 22 - 46 - 159 - - - 60 - 104 - 79 - @@ -1833,12 +1853,12 @@ 3 4 - 556 + 835 4 5 - 1233 + 914 5 @@ -1848,32 +1868,27 @@ 6 7 - 119 + 437 7 8 - 318 + 79 8 9 - 119 + 278 9 - 11 + 26 278 - 11 - 31 - 278 - - - 40 - 95 - 159 + 26 + 92 + 238 @@ -1919,18 +1934,23 @@ 12 - 4 - 5 - 79 - - - 152 - 153 + 3 + 4 39 - 160 - 161 + 4 + 5 + 39 + + + 112 + 113 + 39 + + + 129 + 130 39 @@ -1947,22 +1967,27 @@ 1 2 - 7875 + 5449 2 3 - 2704 + 1670 3 4 - 1312 + 1272 4 - 45 - 596 + 5 + 676 + + + 5 + 42 + 517 @@ -1978,27 +2003,32 @@ 1 2 - 6682 + 5091 2 3 - 3142 + 1392 3 4 - 1431 - - - 4 - 6 954 - 6 - 65 - 278 + 4 + 5 + 875 + + + 5 + 7 + 795 + + + 7 + 67 + 477 @@ -2014,12 +2044,12 @@ 1 2 - 12251 + 9307 2 3 - 238 + 278 @@ -2029,23 +2059,23 @@ diagnostic_for - 1031027 + 891808 diagnostic - 582773 + 72312 compilation - 1988 + 9585 file_number - 104 + 11 file_number_diagnostic_number - 104788 + 6856 @@ -2059,27 +2089,17 @@ 1 2 - 362937 + 9631 2 3 - 92540 + 59836 - 3 - 4 - 70033 - - - 4 - 6 - 47421 - - - 6 - 9 - 9840 + 254 + 825 + 2844 @@ -2095,7 +2115,7 @@ 1 2 - 582773 + 72312 @@ -2111,22 +2131,7 @@ 1 2 - 475263 - - - 2 - 3 - 50143 - - - 3 - 6 - 53702 - - - 6 - 7 - 3663 + 72312 @@ -2135,222 +2140,6 @@ compilation diagnostic - - - 12 - - - 32 - 33 - 104 - - - 37 - 38 - 104 - - - 77 - 78 - 104 - - - 78 - 79 - 104 - - - 155 - 156 - 104 - - - 359 - 360 - 104 - - - 418 - 419 - 104 - - - 436 - 437 - 104 - - - 509 - 510 - 104 - - - 571 - 572 - 104 - - - 639 - 640 - 104 - - - 756 - 757 - 628 - - - 1001 - 1002 - 209 - - - - - - - compilation - file_number - - - 12 - - - 1 - 2 - 1988 - - - - - - - compilation - file_number_diagnostic_number - - - 12 - - - 32 - 33 - 104 - - - 37 - 38 - 104 - - - 77 - 78 - 104 - - - 78 - 79 - 104 - - - 155 - 156 - 104 - - - 359 - 360 - 104 - - - 418 - 419 - 104 - - - 436 - 437 - 104 - - - 509 - 510 - 104 - - - 571 - 572 - 104 - - - 639 - 640 - 104 - - - 756 - 757 - 628 - - - 1001 - 1002 - 209 - - - - - - - file_number - diagnostic - - - 12 - - - 5567 - 5568 - 104 - - - - - - - file_number - compilation - - - 12 - - - 19 - 20 - 104 - - - - - - - file_number - file_number_diagnostic_number - - - 12 - - - 1001 - 1002 - 104 - - - - - - - file_number_diagnostic_number - diagnostic 12 @@ -2358,37 +2147,193 @@ 2 3 - 25647 + 57 7 8 - 10991 + 6093 8 9 - 13085 + 497 - 9 - 10 - 13608 + 247 + 248 + 1965 - 10 - 11 - 27741 + 263 + 444 + 763 - 11 - 12 - 5652 + 446 + 594 + 208 + + + + + + + compilation + file_number + + + 12 + + + 1 + 2 + 9585 + + + + + + + compilation + file_number_diagnostic_number + + + 12 + + + 2 + 3 + 57 - 12 - 15 - 8060 + 7 + 8 + 6093 + + + 8 + 9 + 497 + + + 247 + 248 + 1965 + + + 263 + 444 + 763 + + + 446 + 594 + 208 + + + + + + + file_number + diagnostic + + + 12 + + + 6254 + 6255 + 11 + + + + + + + file_number + compilation + + + 12 + + + 829 + 830 + 11 + + + + + + + file_number + file_number_diagnostic_number + + + 12 + + + 593 + 594 + 11 + + + + + + + file_number_diagnostic_number + diagnostic + + + 12 + + + 1 + 2 + 2821 + + + 2 + 5 + 601 + + + 5 + 6 + 1017 + + + 7 + 14 + 543 + + + 15 + 16 + 57 + + + 17 + 18 + 601 + + + 18 + 23 + 462 + + + 26 + 40 + 555 + + + 42 + 830 + 196 @@ -2402,49 +2347,54 @@ 12 - 2 - 3 - 25647 - - - 8 + 4 9 - 12247 - - - 9 - 10 - 7118 + 589 10 11 - 6490 - - - 11 - 13 - 9526 - - - 13 - 14 - 6176 + 1005 14 - 15 - 21355 + 27 + 543 - 15 - 16 - 8060 + 30 + 31 + 57 - 16 - 20 - 8165 + 34 + 35 + 601 + + + 36 + 45 + 462 + + + 52 + 79 + 555 + + + 84 + 85 + 185 + + + 254 + 255 + 2763 + + + 297 + 830 + 92 @@ -2460,7 +2410,7 @@ 1 2 - 104788 + 6856 @@ -2470,19 +2420,19 @@ compilation_finished - 9980 + 9978 id - 9980 + 9978 cpu_seconds - 7956 + 7850 elapsed_seconds - 138 + 161 @@ -2496,7 +2446,7 @@ 1 2 - 9980 + 9978 @@ -2512,7 +2462,7 @@ 1 2 - 9980 + 9978 @@ -2528,17 +2478,17 @@ 1 2 - 6777 + 6498 2 3 - 786 + 1005 3 - 17 - 393 + 15 + 346 @@ -2554,12 +2504,12 @@ 1 2 - 7505 + 7423 2 3 - 451 + 427 @@ -2572,10 +2522,15 @@ 12 + + 1 + 2 + 23 + 2 3 - 23 + 11 3 @@ -2583,43 +2538,43 @@ 23 - 9 - 10 + 8 + 9 + 23 + + + 11 + 12 11 - 14 - 15 + 24 + 25 11 - 22 - 23 + 49 + 50 11 - 37 - 38 + 104 + 105 11 - 144 - 145 + 155 + 156 11 - 162 - 163 + 239 + 240 11 - 222 - 223 - 11 - - - 243 - 244 + 255 + 256 11 @@ -2633,10 +2588,15 @@ 12 + + 1 + 2 + 23 + 2 3 - 23 + 11 3 @@ -2644,43 +2604,43 @@ 23 - 9 - 10 + 8 + 9 + 23 + + + 11 + 12 11 - 14 - 15 + 24 + 25 11 - 22 - 23 + 49 + 50 11 - 36 - 37 + 104 + 105 11 - 118 - 119 + 111 + 112 11 - 123 - 124 + 174 + 175 11 - 177 - 178 - 11 - - - 218 - 219 + 217 + 218 11 @@ -4405,31 +4365,31 @@ locations_default - 30128761 + 30132211 id - 30128761 + 30132211 container - 140184 + 140191 startLine - 2114992 + 2115102 startColumn - 37162 + 37164 endLine - 2117814 + 2117925 endColumn - 48452 + 48455 @@ -4443,7 +4403,7 @@ 1 2 - 30128761 + 30132211 @@ -4459,7 +4419,7 @@ 1 2 - 30128761 + 30132211 @@ -4475,7 +4435,7 @@ 1 2 - 30128761 + 30132211 @@ -4491,7 +4451,7 @@ 1 2 - 30128761 + 30132211 @@ -4507,7 +4467,7 @@ 1 2 - 30128761 + 30132211 @@ -4523,67 +4483,67 @@ 1 2 - 16464 + 16465 2 12 - 10819 + 10820 13 20 - 11760 + 11761 21 36 - 11289 + 11290 36 55 - 11289 + 11290 55 77 - 10819 + 10820 77 102 - 10819 + 10820 102 149 - 10819 + 10820 149 227 - 11289 + 11290 228 350 - 11289 + 10820 - 358 - 628 - 10819 + 351 + 604 + 10820 - 671 - 1926 - 10819 + 627 + 1479 + 10820 - 2168 + 1925 2380 - 1881 + 2352 @@ -4599,62 +4559,62 @@ 1 2 - 16464 + 16465 2 9 - 10819 + 10820 9 16 - 11760 + 11761 16 25 - 11289 + 11290 25 40 - 10819 + 10820 40 57 - 10819 + 10820 58 72 - 10819 + 10820 73 103 - 11289 + 11290 106 141 - 11760 + 11761 148 226 - 11289 + 11290 226 373 - 10819 + 10820 381 1456 - 10819 + 10820 1464 @@ -4675,62 +4635,62 @@ 1 2 - 16464 + 16465 2 4 - 8937 + 8938 4 5 - 7526 + 7527 5 6 - 7526 + 7527 6 8 - 11760 + 11761 8 13 - 12230 + 12231 13 17 - 10819 + 10820 17 25 - 11289 + 11290 25 31 - 11760 + 11761 31 38 - 10819 + 10820 38 52 - 10819 + 10820 52 64 - 10819 + 10820 65 @@ -4751,62 +4711,62 @@ 1 2 - 16464 + 16465 2 9 - 10819 + 10820 9 16 - 11760 + 11761 16 25 - 11289 + 11290 25 40 - 10819 + 10820 40 57 - 10819 + 10820 58 71 - 10819 + 10820 72 98 - 10819 + 10820 101 140 - 11760 + 11761 140 224 - 10819 + 10820 224 360 - 10819 + 10820 364 1185 - 10819 + 10820 1254 @@ -4827,27 +4787,27 @@ 1 2 - 16464 + 16465 2 10 - 11289 + 11290 10 14 - 10819 + 10820 14 21 - 11289 + 11290 22 31 - 11289 + 11290 31 @@ -4857,27 +4817,27 @@ 39 48 - 12230 + 12231 48 56 - 11760 + 11761 56 64 - 11760 + 11761 64 72 - 10819 + 10820 72 77 - 11289 + 11290 77 @@ -4898,47 +4858,47 @@ 1 2 - 581905 + 581935 2 3 - 318001 + 318018 3 4 - 199456 + 199466 4 6 - 160882 + 160890 6 10 - 190048 + 190058 10 16 - 166057 + 166065 16 25 - 168879 + 168888 25 46 - 163704 + 163713 46 169 - 159000 + 159009 170 @@ -4959,42 +4919,42 @@ 1 2 - 869799 + 869845 2 3 - 280838 + 280853 3 5 - 191459 + 191469 5 8 - 181110 + 181119 8 12 - 162293 + 162302 12 18 - 166527 + 166536 18 39 - 159941 + 159949 39 299 - 103021 + 103026 @@ -5010,47 +4970,47 @@ 1 2 - 612482 + 612514 2 3 - 313297 + 313313 3 4 - 202749 + 202760 4 6 - 184403 + 184412 6 9 - 180639 + 180649 9 13 - 166997 + 167006 13 19 - 173583 + 173592 19 29 - 167468 + 167476 29 52 - 113370 + 113376 @@ -5066,22 +5026,22 @@ 1 2 - 1545788 + 1545868 2 3 - 351401 + 351419 3 5 - 164645 + 164654 5 16 - 53157 + 53159 @@ -5097,47 +5057,47 @@ 1 2 - 586609 + 586639 2 3 - 318942 + 318958 3 4 - 201808 + 201819 4 6 - 167468 + 167476 6 9 - 160412 + 160420 9 14 - 178287 + 178297 14 21 - 176406 + 176415 21 32 - 163234 + 163243 32 61 - 159000 + 159009 61 @@ -5212,7 +5172,7 @@ 819 - 1546 + 1548 2822 @@ -5244,7 +5204,7 @@ 23 35 - 3292 + 3293 38 @@ -5263,23 +5223,23 @@ 73 - 83 - 2822 + 84 + 3293 - 83 - 95 - 2822 + 84 + 97 + 3293 - 96 + 98 101 - 3292 + 2352 101 105 - 3292 + 3293 106 @@ -5369,7 +5329,7 @@ 587 - 831 + 832 2822 @@ -5482,12 +5442,12 @@ 7 11 - 3292 + 3293 11 16 - 3292 + 3293 16 @@ -5502,7 +5462,7 @@ 24 27 - 3292 + 3293 28 @@ -5512,7 +5472,7 @@ 33 40 - 3292 + 3293 40 @@ -5553,52 +5513,52 @@ 1 2 - 589902 + 589932 2 3 - 312356 + 312372 3 4 - 198986 + 198996 4 6 - 161352 + 161361 6 10 - 189577 + 189587 10 16 - 163704 + 163713 16 25 - 171231 + 170770 25 45 - 159471 + 159949 45 160 - 159941 + 159949 160 299 - 11289 + 11290 @@ -5614,47 +5574,47 @@ 1 2 - 881560 + 881606 2 3 - 270019 + 270033 3 4 - 123249 + 123255 4 6 - 142065 + 142073 6 10 - 195693 + 195703 10 15 - 168409 + 168417 15 26 - 165586 + 165595 26 120 - 159471 + 159479 121 299 - 11760 + 11761 @@ -5670,22 +5630,22 @@ 1 2 - 1538732 + 1538812 2 3 - 349048 + 349067 3 5 - 172172 + 172181 5 10 - 57861 + 57864 @@ -5701,47 +5661,47 @@ 1 2 - 621890 + 621922 2 3 - 304359 + 304375 3 4 - 204631 + 204641 4 6 - 186755 + 186765 6 9 - 177817 + 177826 9 13 - 169349 + 169358 13 19 - 174524 + 174533 19 29 - 162764 + 162772 29 52 - 115722 + 115728 @@ -5757,47 +5717,47 @@ 1 2 - 596488 + 596519 2 3 - 311415 + 311431 3 4 - 198986 + 198996 4 6 - 171701 + 171710 6 9 - 157589 + 157597 9 14 - 173583 + 173592 14 21 - 180169 + 180178 21 32 - 165116 + 165124 32 60 - 159000 + 159009 60 @@ -5862,7 +5822,7 @@ 879 - 1081 + 1082 3763 @@ -5871,7 +5831,7 @@ 3763 - 1309 + 1310 1590 3763 @@ -5894,7 +5854,7 @@ 1 2 - 5644 + 5645 2 @@ -5970,7 +5930,7 @@ 1 2 - 5644 + 5645 2 @@ -6009,7 +5969,7 @@ 575 - 628 + 627 3763 @@ -6081,7 +6041,7 @@ 35 39 - 3292 + 3293 39 @@ -6122,7 +6082,7 @@ 1 2 - 5644 + 5645 2 @@ -6192,11 +6152,11 @@ locations_stmt - 3805462 + 3805465 id - 3805462 + 3805465 container @@ -6230,7 +6190,7 @@ 1 2 - 3805462 + 3805465 @@ -6246,7 +6206,7 @@ 1 2 - 3805462 + 3805465 @@ -6262,7 +6222,7 @@ 1 2 - 3805462 + 3805465 @@ -6278,7 +6238,7 @@ 1 2 - 3805462 + 3805465 @@ -6294,7 +6254,7 @@ 1 2 - 3805462 + 3805465 @@ -6958,7 +6918,7 @@ 10 11 - 10500 + 10501 11 @@ -8174,11 +8134,11 @@ locations_expr - 13128112 + 13128120 id - 13128112 + 13128120 container @@ -8212,7 +8172,7 @@ 1 2 - 13128112 + 13128120 @@ -8228,7 +8188,7 @@ 1 2 - 13128112 + 13128120 @@ -8244,7 +8204,7 @@ 1 2 - 13128112 + 13128120 @@ -8260,7 +8220,7 @@ 1 2 - 13128112 + 13128120 @@ -8276,7 +8236,7 @@ 1 2 - 13128112 + 13128120 @@ -10096,23 +10056,23 @@ numlines - 1406545 + 1406618 element_id - 1399488 + 1399561 num_lines - 102550 + 102556 num_code - 85615 + 85620 num_comment - 60213 + 60216 @@ -10126,7 +10086,7 @@ 1 2 - 1392432 + 1392505 2 @@ -10147,7 +10107,7 @@ 1 2 - 1393373 + 1393446 2 @@ -10168,7 +10128,7 @@ 1 2 - 1399488 + 1399561 @@ -10184,17 +10144,17 @@ 1 2 - 68680 + 68684 2 3 - 12230 + 12231 3 4 - 7526 + 7527 4 @@ -10220,12 +10180,12 @@ 1 2 - 71032 + 71036 2 3 - 12230 + 12231 3 @@ -10256,22 +10216,22 @@ 1 2 - 70092 + 70095 2 3 - 15053 + 15054 3 4 - 10819 + 10820 4 7 - 6585 + 6586 @@ -10287,22 +10247,22 @@ 1 2 - 53157 + 53159 2 3 - 14582 + 14583 3 5 - 6585 + 6586 5 42 - 6585 + 6586 44 @@ -10323,12 +10283,12 @@ 1 2 - 53157 + 53159 2 3 - 16934 + 16935 3 @@ -10338,7 +10298,7 @@ 5 8 - 6585 + 6586 8 @@ -10359,7 +10319,7 @@ 1 2 - 53627 + 53630 2 @@ -10369,7 +10329,7 @@ 3 5 - 7526 + 7527 5 @@ -10379,7 +10339,7 @@ 7 10 - 3292 + 3293 @@ -10395,7 +10355,7 @@ 1 2 - 34810 + 34812 2 @@ -10436,7 +10396,7 @@ 1 2 - 34810 + 34812 2 @@ -10477,7 +10437,7 @@ 1 2 - 34810 + 34812 2 @@ -10512,31 +10472,31 @@ diagnostics - 582773 + 72312 id - 582773 + 72312 severity - 209 + 23 error_tag - 7851 + 80 error_message - 56215 + 127 full_error_message - 582040 + 62738 location - 369218 + 150 @@ -10550,7 +10510,7 @@ 1 2 - 582773 + 72312 @@ -10566,7 +10526,7 @@ 1 2 - 582773 + 72312 @@ -10582,7 +10542,7 @@ 1 2 - 582773 + 72312 @@ -10598,7 +10558,7 @@ 1 2 - 582773 + 72312 @@ -10614,7 +10574,7 @@ 1 2 - 582773 + 72312 @@ -10628,14 +10588,14 @@ 12 - 254 - 255 - 104 + 4 + 5 + 11 - 5313 - 5314 - 104 + 6250 + 6251 + 11 @@ -10649,14 +10609,14 @@ 12 - 5 - 6 - 104 + 1 + 2 + 11 - 70 - 71 - 104 + 6 + 7 + 11 @@ -10669,508 +10629,388 @@ 12 - - 7 - 8 - 104 - - - 530 - 531 - 104 - - - - - - - severity - full_error_message - - - 12 - - - 254 - 255 - 104 - - - 5306 - 5307 - 104 - - - - - - - severity - location - - - 12 - - - 174 - 175 - 104 - - - 3429 - 3430 - 104 - - - - - - - error_tag - id - - - 12 - - - 1 - 2 - 1046 - - - 2 - 3 - 942 - 3 4 - 523 - - - 4 - 5 - 523 - - - 5 - 7 - 628 - - - 7 - 11 - 628 - - - 11 - 16 - 628 - - - 16 - 21 - 628 - - - 21 - 32 - 628 - - - 44 - 72 - 628 - - - 112 - 540 - 628 - - - 595 - 1254 - 418 - - - - - - - error_tag - severity - - - 12 - - - 1 - 2 - 7851 - - - - - - - error_tag - error_message - - - 12 - - - 1 - 2 - 5443 - - - 2 - 3 - 418 - - - 3 - 4 - 523 - - - 4 - 6 - 628 - - - 7 - 35 - 628 - - - 59 - 294 - 209 - - - - - - - error_tag - full_error_message - - - 12 - - - 1 - 2 - 1151 - - - 2 - 3 - 942 - - - 3 - 4 - 523 - - - 4 - 5 - 523 - - - 5 - 7 - 628 - - - 7 - 12 - 628 - - - 13 - 16 - 523 - - - 16 - 21 - 628 - - - 21 - 32 - 628 - - - 44 - 72 - 628 - - - 112 - 540 - 628 - - - 595 - 1254 - 418 - - - - - - - error_tag - location - - - 12 - - - 1 - 2 - 1674 - - - 2 - 3 - 942 - - - 3 - 4 - 418 - - - 4 - 5 - 523 - - - 5 - 6 - 523 - - - 6 - 7 - 523 - - - 7 - 15 - 628 - - - 15 - 20 - 628 - - - 23 - 44 - 628 - - - 44 - 95 - 628 - - - 139 - 630 - 628 - - - 764 - 765 - 104 - - - - - - - error_message - id - - - 12 - - - 1 - 2 - 24809 - - - 2 - 3 - 13608 - - - 3 - 4 - 4187 - - - 4 - 6 - 4606 - - - 6 - 14 - 4292 - - - 14 - 227 - 4292 - - - 405 - 1254 - 418 - - - - - - - error_message - severity - - - 12 - - - 1 - 2 - 56215 - - - - - - - error_message - error_tag - - - 12 - - - 1 - 2 - 56215 - - - - - - - error_message - full_error_message - - - 12 - - - 1 - 2 - 24914 - - - 2 - 3 - 13608 - - - 3 - 4 - 4187 - - - 4 - 6 - 4606 - - - 6 - 15 - 4396 - - - 15 - 540 - 4292 - - - 595 - 1254 - 209 - - - - - - - error_message - location - - - 12 - - - 1 - 2 - 36011 - - - 2 - 3 - 6909 - - - 3 - 5 - 4710 - - - 5 - 12 - 4292 - - - 12 - 765 - 4292 - - - - - - - full_error_message - id - - - 12 - - - 1 - 2 - 581935 + 11 8 9 - 104 + 11 + + + + + + + severity + full_error_message + + + 12 + + + 4 + 5 + 11 + + + 5422 + 5423 + 11 + + + + + + + severity + location + + + 12 + + + 4 + 5 + 11 + + + 9 + 10 + 11 + + + + + + + error_tag + id + + + 12 + + + 1 + 2 + 11 + + + 2 + 3 + 11 + + + 4 + 5 + 11 + + + 5 + 6 + 11 + + + 417 + 418 + 11 + + + 829 + 830 + 11 + + + 4996 + 4997 + 11 + + + + + + + error_tag + severity + + + 12 + + + 1 + 2 + 80 + + + + + + + error_tag + error_message + + + 12 + + + 1 + 2 + 57 + + + 3 + 4 + 23 + + + + + + + error_tag + full_error_message + + + 12 + + + 1 + 2 + 23 + + + 2 + 3 + 11 + + + 4 + 5 + 11 + + + 5 + 6 + 11 + + + 417 + 418 + 11 + + + 4996 + 4997 + 11 + + + + + + + error_tag + location + + + 12 + + + 1 + 2 + 46 + + + 2 + 3 + 11 + + + 4 + 5 + 11 + + + 5 + 6 + 11 + + + + + + + error_message + id + + + 12 + + + 1 + 2 + 34 + + + 2 + 3 + 23 + + + 5 + 6 + 11 + + + 10 + 11 + 11 + + + 75 + 76 + 11 + + + 332 + 333 + 11 + + + 829 + 830 + 11 + + + 4996 + 4997 + 11 + + + + + + + error_message + severity + + + 12 + + + 1 + 2 + 127 + + + + + + + error_message + error_tag + + + 12 + + + 1 + 2 + 127 + + + + + + + error_message + full_error_message + + + 12 + + + 1 + 2 + 46 + + + 2 + 3 + 23 + + + 5 + 6 + 11 + + + 10 + 11 + 11 + + + 75 + 76 + 11 + + + 332 + 333 + 11 + + + 4996 + 4997 + 11 + + + + + + + error_message + location + + + 12 + + + 1 + 2 + 92 + + + 2 + 3 + 23 + + + 5 + 6 + 11 + + + + + + + full_error_message + id + + + 12 + + + 1 + 2 + 62726 + + + 829 + 830 + 11 @@ -11186,7 +11026,7 @@ 1 2 - 582040 + 62738 @@ -11202,7 +11042,7 @@ 1 2 - 582040 + 62738 @@ -11218,7 +11058,7 @@ 1 2 - 582040 + 62738 @@ -11234,7 +11074,7 @@ 1 2 - 582040 + 62738 @@ -11250,17 +11090,12 @@ 1 2 - 206959 + 138 - 2 - 3 - 135774 - - - 3 - 13 - 26484 + 6242 + 6243 + 11 @@ -11276,12 +11111,7 @@ 1 2 - 361262 - - - 2 - 3 - 7955 + 150 @@ -11297,12 +11127,12 @@ 1 2 - 354458 + 138 - 2 - 6 - 14760 + 3 + 4 + 11 @@ -11318,12 +11148,12 @@ 1 2 - 353830 + 138 - 2 + 5 6 - 15388 + 11 @@ -11339,17 +11169,12 @@ 1 2 - 207063 + 138 - 2 - 3 - 135774 - - - 3 - 13 - 26380 + 5414 + 5415 + 11 @@ -11359,15 +11184,15 @@ files - 124189 + 124196 id - 124189 + 124196 name - 124189 + 124196 @@ -11381,7 +11206,7 @@ 1 2 - 124189 + 124196 @@ -11397,7 +11222,7 @@ 1 2 - 124189 + 124196 @@ -11455,7 +11280,7 @@ containerparent - 139243 + 139250 parent @@ -11463,7 +11288,7 @@ child - 139243 + 139250 @@ -11482,7 +11307,7 @@ 2 3 - 3292 + 3293 3 @@ -11518,7 +11343,7 @@ 1 2 - 139243 + 139250 @@ -11528,11 +11353,11 @@ fileannotations - 5254886 + 5253841 id - 5019 + 5018 kind @@ -11540,11 +11365,11 @@ name - 56112 + 56101 value - 47173 + 47163 @@ -11563,7 +11388,7 @@ 2 3 - 4845 + 4844 @@ -11624,7 +11449,7 @@ 936 937 - 1457 + 1456 1083 @@ -11690,7 +11515,7 @@ 1501 1502 - 1457 + 1456 1504 @@ -11779,12 +11604,12 @@ 1 2 - 9078 + 9076 2 3 - 6372 + 6370 3 @@ -11794,12 +11619,12 @@ 5 9 - 4371 + 4370 9 14 - 4082 + 4081 14 @@ -11809,27 +11634,27 @@ 18 20 - 4834 + 4833 20 34 - 4325 + 4324 34 128 - 4614 + 4613 128 229 - 4221 + 4220 229 387 - 4348 + 4347 387 @@ -11850,7 +11675,7 @@ 1 2 - 56112 + 56101 @@ -11866,17 +11691,17 @@ 1 2 - 9089 + 9088 2 3 - 8257 + 8255 3 4 - 2625 + 2624 4 @@ -11886,37 +11711,37 @@ 6 9 - 4232 + 4231 9 14 - 4313 + 4312 14 17 - 4232 + 4231 17 22 - 4706 + 4705 22 41 - 4313 + 4312 41 82 - 4267 + 4266 82 157 - 4209 + 4208 158 @@ -11937,7 +11762,7 @@ 1 2 - 7332 + 7330 2 @@ -11947,7 +11772,7 @@ 5 8 - 3411 + 3410 8 @@ -11957,22 +11782,22 @@ 15 17 - 2602 + 2601 17 19 - 4244 + 4243 19 34 - 3411 + 3410 34 189 - 3712 + 3711 189 @@ -11987,12 +11812,12 @@ 266 321 - 3770 + 3769 322 399 - 4047 + 4046 399 @@ -12013,7 +11838,7 @@ 1 2 - 47161 + 47152 2 @@ -12034,17 +11859,17 @@ 1 2 - 7355 + 7353 2 5 - 2648 + 2647 5 8 - 3596 + 3595 8 @@ -12059,17 +11884,17 @@ 17 19 - 3677 + 3676 19 29 - 3596 + 3595 29 39 - 3758 + 3757 39 @@ -12079,7 +11904,7 @@ 48 74 - 3654 + 3653 74 @@ -12089,7 +11914,7 @@ 102 119 - 3689 + 3688 119 @@ -12104,15 +11929,15 @@ inmacroexpansion - 109313317 + 109313388 id - 17941916 + 17941927 inv - 2682068 + 2682069 @@ -12126,32 +11951,32 @@ 1 3 - 1566018 + 1566019 3 5 - 1071344 + 1071345 5 6 - 1179814 + 1179815 6 7 - 4800000 + 4800003 7 8 - 6359380 + 6359384 8 9 - 2595248 + 2595250 9 @@ -12172,12 +11997,12 @@ 1 2 - 371855 + 371856 2 3 - 540116 + 540113 3 @@ -12212,7 +12037,7 @@ 11 337 - 223911 + 223913 339 @@ -12232,15 +12057,15 @@ affectedbymacroexpansion - 35540532 + 35540555 id - 5135277 + 5135280 inv - 2773181 + 2773183 @@ -12254,7 +12079,7 @@ 1 2 - 2804212 + 2804214 2 @@ -12279,7 +12104,7 @@ 12 50 - 405705 + 405706 50 @@ -12305,7 +12130,7 @@ 4 7 - 230823 + 230824 7 @@ -12315,7 +12140,7 @@ 9 12 - 250042 + 250043 12 @@ -12345,7 +12170,7 @@ 17 18 - 146328 + 146329 18 @@ -12370,19 +12195,19 @@ macroinvocations - 33894981 + 33889080 id - 33894981 + 33889080 macro_id - 81381 + 81423 location - 778557 + 778830 kind @@ -12400,7 +12225,7 @@ 1 2 - 33894981 + 33889080 @@ -12416,7 +12241,7 @@ 1 2 - 33894981 + 33889080 @@ -12432,7 +12257,7 @@ 1 2 - 33894981 + 33889080 @@ -12448,12 +12273,12 @@ 1 2 - 17578 + 17575 2 3 - 16977 + 16973 3 @@ -12463,42 +12288,42 @@ 4 5 - 4880 + 4879 5 8 - 6048 + 6047 8 14 - 6406 + 6440 14 29 - 6291 + 6313 29 - 72 - 6106 + 73 + 6220 - 72 - 247 - 6129 + 73 + 257 + 6139 - 248 - 4166 - 6106 + 257 + 5769 + 6116 - 4220 + 6272 168296 - 1156 + 1017 @@ -12514,32 +12339,32 @@ 1 2 - 43506 + 43498 2 3 - 10651 + 10649 3 4 - 5285 + 5284 4 6 - 6985 + 7018 6 13 - 6626 + 6636 13 66 - 6140 + 6151 66 @@ -12560,12 +12385,12 @@ 1 2 - 75553 + 75538 2 3 - 5828 + 5885 @@ -12581,37 +12406,37 @@ 1 2 - 320982 + 321115 2 3 - 177751 + 177878 3 4 - 47300 + 47313 4 5 - 59605 + 59616 5 9 - 68533 + 68542 9 23 - 58425 + 58414 23 244365 - 45958 + 45949 @@ -12627,12 +12452,12 @@ 1 2 - 731280 + 731563 2 350 - 47277 + 47267 @@ -12648,7 +12473,7 @@ 1 2 - 778557 + 778830 @@ -12662,13 +12487,13 @@ 12 - 20414 - 20415 + 20464 + 20465 11 - 2910446 - 2910447 + 2910469 + 2910470 11 @@ -12683,13 +12508,13 @@ 12 - 2123 - 2124 + 2128 + 2129 11 - 5418 - 5419 + 5423 + 5424 11 @@ -12704,13 +12529,13 @@ 12 - 6291 - 6292 + 6315 + 6316 11 - 61030 - 61031 + 61043 + 61044 11 @@ -12721,15 +12546,15 @@ macroparent - 30455592 + 30449647 id - 30455592 + 30449647 parent_id - 23698199 + 23693599 @@ -12743,7 +12568,7 @@ 1 2 - 30455592 + 30449647 @@ -12759,17 +12584,17 @@ 1 2 - 18307171 + 18303643 2 3 - 4540062 + 4539159 3 88 - 850965 + 850796 @@ -12779,15 +12604,15 @@ macrolocationbind - 3984640 + 3984515 id - 2778886 + 2778799 location - 1988454 + 1988392 @@ -12801,22 +12626,22 @@ 1 2 - 2183104 + 2183036 2 3 - 336443 + 336432 3 7 - 229815 + 229808 7 57 - 29523 + 29522 @@ -12832,22 +12657,22 @@ 1 2 - 1589588 + 1589539 2 3 - 169647 + 169641 3 8 - 154233 + 154228 8 723 - 74984 + 74982 @@ -12857,11 +12682,11 @@ macro_argument_unexpanded - 86176782 + 86159621 invocation - 26568343 + 26563044 argument_index @@ -12869,7 +12694,7 @@ text - 326094 + 326029 @@ -12883,22 +12708,22 @@ 1 2 - 7436793 + 7435302 2 3 - 10861692 + 10859530 3 4 - 6256808 + 6255563 4 67 - 2013048 + 2012648 @@ -12914,22 +12739,22 @@ 1 2 - 7508010 + 7506504 2 3 - 11011561 + 11009369 3 4 - 6087232 + 6086021 4 67 - 1961538 + 1961148 @@ -12954,7 +12779,7 @@ 715085 - 2297335 + 2297334 34 @@ -12997,57 +12822,57 @@ 1 2 - 40858 + 40850 2 3 - 65607 + 65594 3 4 - 15184 + 15181 4 5 - 45102 + 45093 5 8 - 25569 + 25576 8 12 - 16075 + 16060 12 16 - 22297 + 22292 16 23 - 26518 + 26512 23 43 - 24748 + 24743 43 164 - 24459 + 24454 164 521384 - 19671 + 19667 @@ -13063,17 +12888,17 @@ 1 2 - 235830 + 235783 2 3 - 79728 + 79712 3 9 - 10535 + 10533 @@ -13083,11 +12908,11 @@
    macro_argument_expanded - 86176782 + 86159621 invocation - 26568343 + 26563044 argument_index @@ -13095,7 +12920,7 @@ text - 197597 + 197580 @@ -13109,22 +12934,22 @@ 1 2 - 7436793 + 7435302 2 3 - 10861692 + 10859530 3 4 - 6256808 + 6255563 4 67 - 2013048 + 2012648 @@ -13140,22 +12965,22 @@ 1 2 - 10747743 + 10745593 2 3 - 9374139 + 9372273 3 4 - 5306998 + 5305941 4 9 - 1139462 + 1139235 @@ -13180,7 +13005,7 @@ 715085 - 2297335 + 2297334 34 @@ -13206,7 +13031,7 @@ 870 - 13877 + 13879 46 @@ -13223,62 +13048,62 @@ 1 2 - 24552 + 24547 2 3 - 41147 + 41151 3 4 - 6927 + 6925 4 5 - 16364 + 16361 5 6 - 2995 + 2994 6 7 - 23291 + 23286 7 9 - 15982 + 15991 9 15 - 16699 + 16696 15 31 - 15589 + 15586 31 97 - 15080 + 15077 97 775 - 15485 + 15482 775 - 1052916 - 3481 + 1052906 + 3480 @@ -13294,17 +13119,17 @@ 1 2 - 99989 + 99992 2 3 - 82850 + 82834 3 66 - 14756 + 14753 @@ -13314,19 +13139,19 @@ functions - 4726273 + 4726519 id - 4726273 + 4726519 name - 1934352 + 1934453 kind - 3292 + 3293 @@ -13340,7 +13165,7 @@ 1 2 - 4726273 + 4726519 @@ -13356,7 +13181,7 @@ 1 2 - 4726273 + 4726519 @@ -13372,22 +13197,22 @@ 1 2 - 1516622 + 1516701 2 3 - 154296 + 154304 3 5 - 151003 + 151011 5 1724 - 112429 + 112435 @@ -13403,7 +13228,7 @@ 1 2 - 1933881 + 1933982 2 @@ -13510,15 +13335,15 @@ function_entry_point - 1176981 + 1177043 id - 1167103 + 1167163 entry_point - 1176981 + 1177043 @@ -13532,12 +13357,12 @@ 1 2 - 1157224 + 1157284 2 3 - 9878 + 9879 @@ -13553,7 +13378,7 @@ 1 2 - 1176981 + 1177043 @@ -13563,15 +13388,15 @@ function_return_type - 4734741 + 4734987 id - 4726273 + 4726519 return_type - 1016569 + 1016622 @@ -13585,7 +13410,7 @@ 1 2 - 4719217 + 4719463 2 @@ -13606,22 +13431,22 @@ 1 2 - 523103 + 523130 2 3 - 390445 + 390465 3 11 - 78559 + 78563 11 2516 - 24461 + 24462 @@ -13639,7 +13464,7 @@
    traits - 1 + 2 handle @@ -13707,9 +13532,9 @@ 12 - 2 - 3 - 1 + 1 + 2 + 2 @@ -13723,9 +13548,9 @@ 12 - 2 - 3 - 1 + 1 + 2 + 2 @@ -13739,9 +13564,9 @@ 12 - 2 - 3 - 1 + 1 + 2 + 2 @@ -13943,48 +13768,48 @@ purefunctions - 99446 + 99447 id - 99446 + 99447 function_deleted - 140654 + 140661 id - 140654 + 140661 function_defaulted - 74325 + 74329 id - 74325 + 74329 member_function_this_type - 553641 + 553316 id - 553641 + 553316 this_type - 189690 + 189579 @@ -13998,7 +13823,7 @@ 1 2 - 553641 + 553316 @@ -14014,32 +13839,32 @@ 1 2 - 68526 + 68486 2 3 - 45414 + 45387 3 4 - 30475 + 30458 4 5 - 15537 + 15528 5 7 - 15607 + 15598 7 66 - 14128 + 14119 @@ -14049,27 +13874,27 @@ fun_decls - 5102136 + 5102402 id - 5096962 + 5097227 function - 4578563 + 4578801 type_id - 1013276 + 1013329 name - 1836035 + 1836130 location - 3461324 + 3461504 @@ -14083,7 +13908,7 @@ 1 2 - 5096962 + 5097227 @@ -14099,7 +13924,7 @@ 1 2 - 5091787 + 5092052 2 @@ -14120,7 +13945,7 @@ 1 2 - 5096962 + 5097227 @@ -14136,7 +13961,7 @@ 1 2 - 5096962 + 5097227 @@ -14152,17 +13977,17 @@ 1 2 - 4141075 + 4141291 2 3 - 363161 + 363180 3 7 - 74325 + 74329 @@ -14178,12 +14003,12 @@ 1 2 - 4536696 + 4536932 2 5 - 41867 + 41869 @@ -14199,7 +14024,7 @@ 1 2 - 4578563 + 4578801 @@ -14215,12 +14040,12 @@ 1 2 - 4197996 + 4198214 2 4 - 379155 + 379175 4 @@ -14241,22 +14066,22 @@ 1 2 - 445954 + 445977 2 3 - 453481 + 453505 3 9 - 79500 + 79504 9 2768 - 34340 + 34342 @@ -14272,22 +14097,22 @@ 1 2 - 530629 + 530657 2 3 - 381978 + 381998 3 11 - 77148 + 77152 11 2477 - 23520 + 23522 @@ -14303,17 +14128,17 @@ 1 2 - 883912 + 883958 2 5 - 90319 + 90324 5 822 - 39044 + 39046 @@ -14329,22 +14154,22 @@ 1 2 - 779480 + 779520 2 3 - 133127 + 133134 3 11 - 78089 + 78093 11 2030 - 22579 + 22581 @@ -14360,27 +14185,27 @@ 1 2 - 1245192 + 1245257 2 3 - 269548 + 269562 3 4 - 80441 + 80445 4 6 - 138772 + 138780 6 1758 - 102080 + 102085 @@ -14396,22 +14221,22 @@ 1 2 - 1425832 + 1425906 2 3 - 153355 + 153363 3 5 - 145358 + 145366 5 1708 - 111488 + 111494 @@ -14427,17 +14252,17 @@ 1 2 - 1615880 + 1615964 2 4 - 135009 + 135016 4 954 - 85145 + 85149 @@ -14453,27 +14278,27 @@ 1 2 - 1266831 + 1266897 2 3 - 296362 + 296377 3 4 - 79500 + 79504 4 8 - 139243 + 139250 8 664 - 54097 + 54100 @@ -14489,17 +14314,17 @@ 1 2 - 2995611 + 2995767 2 4 - 302007 + 302023 4 55 - 163704 + 163713 @@ -14515,17 +14340,17 @@ 1 2 - 3063351 + 3063511 2 6 - 268607 + 268621 6 55 - 129364 + 129371 @@ -14541,12 +14366,12 @@ 1 2 - 3245873 + 3246042 2 27 - 215450 + 215461 @@ -14562,12 +14387,12 @@ 1 2 - 3285388 + 3285559 2 13 - 175935 + 175944 @@ -14577,22 +14402,22 @@ fun_def - 1963988 + 1964090 id - 1963988 + 1964090 fun_specialized - 26343 + 26344 id - 26343 + 26344 @@ -14610,11 +14435,11 @@ fun_decl_specifiers - 2937280 + 2937433 id - 1710904 + 1710993 name @@ -14632,17 +14457,17 @@ 1 2 - 503345 + 503371 2 3 - 1188742 + 1188804 3 4 - 18816 + 18817 @@ -14814,26 +14639,26 @@ fun_decl_empty_throws - 1978101 + 1978204 fun_decl - 1978101 + 1978204 fun_decl_noexcept - 61239 + 61252 fun_decl - 61239 + 61252 constant - 61135 + 61148 @@ -14847,7 +14672,7 @@ 1 2 - 61239 + 61252 @@ -14863,7 +14688,7 @@ 1 2 - 61030 + 61043 2 @@ -14878,11 +14703,11 @@ fun_decl_empty_noexcept - 888146 + 888192 fun_decl - 888146 + 888192 @@ -14987,11 +14812,11 @@ param_decl_bind - 7472094 + 7472483 id - 7472094 + 7472483 index @@ -14999,7 +14824,7 @@ fun_decl - 4286434 + 4286657 @@ -15013,7 +14838,7 @@ 1 2 - 7472094 + 7472483 @@ -15029,7 +14854,7 @@ 1 2 - 7472094 + 7472483 @@ -15207,22 +15032,22 @@ 1 2 - 2409002 + 2409127 2 3 - 1071608 + 1071664 3 4 - 506638 + 506664 4 18 - 299184 + 299200 @@ -15238,22 +15063,22 @@ 1 2 - 2409002 + 2409127 2 3 - 1071608 + 1071664 3 4 - 506638 + 506664 4 18 - 299184 + 299200 @@ -15263,27 +15088,27 @@ var_decls - 8611913 + 8612362 id - 8543232 + 8543677 variable - 7520077 + 7520468 type_id - 2430641 + 2430768 name - 672695 + 672730 location - 5365099 + 5365378 @@ -15297,7 +15122,7 @@ 1 2 - 8543232 + 8543677 @@ -15313,12 +15138,12 @@ 1 2 - 8474552 + 8474993 2 3 - 68680 + 68684 @@ -15334,7 +15159,7 @@ 1 2 - 8543232 + 8543677 @@ -15350,7 +15175,7 @@ 1 2 - 8543232 + 8543677 @@ -15366,17 +15191,17 @@ 1 2 - 6658274 + 6658620 2 3 - 707035 + 707072 3 7 - 154767 + 154775 @@ -15392,12 +15217,12 @@ 1 2 - 7346963 + 7347346 2 4 - 173113 + 173122 @@ -15413,12 +15238,12 @@ 1 2 - 7402943 + 7403328 2 3 - 117133 + 117139 @@ -15434,12 +15259,12 @@ 1 2 - 6967337 + 6967700 2 4 - 552739 + 552768 @@ -15455,27 +15280,27 @@ 1 2 - 1505802 + 1505881 2 3 - 516046 + 516073 3 4 - 98787 + 98792 4 7 - 188636 + 188646 7 780 - 121367 + 121373 @@ -15491,22 +15316,22 @@ 1 2 - 1640342 + 1640427 2 3 - 491114 + 491140 3 7 - 188166 + 188176 7 742 - 111018 + 111024 @@ -15522,17 +15347,17 @@ 1 2 - 1918828 + 1918928 2 3 - 388563 + 388584 3 128 - 123249 + 123255 @@ -15548,22 +15373,22 @@ 1 2 - 1743833 + 1743924 2 3 - 406910 + 406931 3 8 - 190048 + 190058 8 595 - 89849 + 89854 @@ -15579,37 +15404,37 @@ 1 2 - 343874 + 343892 2 3 - 87497 + 87502 3 4 - 48923 + 48925 4 6 - 52216 + 52218 6 12 - 52686 + 52689 12 33 - 50804 + 50807 34 3281 - 36692 + 36694 @@ -15625,37 +15450,37 @@ 1 2 - 371628 + 371648 2 3 - 78559 + 78563 3 4 - 45630 + 45632 4 6 - 49864 + 49866 6 14 - 53627 + 53630 14 56 - 51275 + 51278 56 3198 - 22109 + 22110 @@ -15671,27 +15496,27 @@ 1 2 - 460537 + 460561 2 3 - 94553 + 94558 3 5 - 47041 + 47044 5 19 - 51275 + 51278 19 1979 - 19287 + 19288 @@ -15707,32 +15532,32 @@ 1 2 - 381978 + 381998 2 3 - 91260 + 91265 3 5 - 60213 + 60216 5 9 - 51745 + 51748 9 21 - 50804 + 50807 21 1020 - 36692 + 36694 @@ -15748,17 +15573,17 @@ 1 2 - 4535755 + 4535991 2 3 - 550387 + 550415 3 1783 - 278956 + 278971 @@ -15774,17 +15599,17 @@ 1 2 - 4939842 + 4940100 2 17 - 414436 + 414458 17 1779 - 10819 + 10820 @@ -15800,12 +15625,12 @@ 1 2 - 5016520 + 5016782 2 1561 - 348578 + 348596 @@ -15821,7 +15646,7 @@ 1 2 - 5360865 + 5361144 2 @@ -15836,22 +15661,22 @@ var_def - 4083685 + 4083897 id - 4083685 + 4083897 var_decl_specifiers - 334936 + 334953 id - 334936 + 334953 name @@ -15869,7 +15694,7 @@ 1 2 - 334936 + 334953 @@ -15916,19 +15741,19 @@ type_decls - 3283977 + 3284148 id - 3283977 + 3284148 type_id - 3233172 + 3233340 location - 3204006 + 3204173 @@ -15942,7 +15767,7 @@ 1 2 - 3283977 + 3284148 @@ -15958,7 +15783,7 @@ 1 2 - 3283977 + 3284148 @@ -15974,12 +15799,12 @@ 1 2 - 3191305 + 3191471 2 5 - 41867 + 41869 @@ -15995,12 +15820,12 @@ 1 2 - 3191305 + 3191471 2 5 - 41867 + 41869 @@ -16016,12 +15841,12 @@ 1 2 - 3163080 + 3163244 2 20 - 40926 + 40928 @@ -16037,12 +15862,12 @@ 1 2 - 3163080 + 3163244 2 20 - 40926 + 40928 @@ -16052,33 +15877,33 @@ type_def - 2660675 + 2660813 id - 2660675 + 2660813 type_decl_top - 755959 + 755998 type_decl - 755959 + 755998 namespace_decls - 306972 + 306973 id - 306972 + 306973 namespace_id @@ -16086,11 +15911,11 @@ location - 306972 + 306973 bodylocation - 306972 + 306973 @@ -16104,7 +15929,7 @@ 1 2 - 306972 + 306973 @@ -16120,7 +15945,7 @@ 1 2 - 306972 + 306973 @@ -16136,7 +15961,7 @@ 1 2 - 306972 + 306973 @@ -16350,7 +16175,7 @@ 1 2 - 306972 + 306973 @@ -16366,7 +16191,7 @@ 1 2 - 306972 + 306973 @@ -16382,7 +16207,7 @@ 1 2 - 306972 + 306973 @@ -16398,7 +16223,7 @@ 1 2 - 306972 + 306973 @@ -16414,7 +16239,7 @@ 1 2 - 306972 + 306973 @@ -16430,7 +16255,7 @@ 1 2 - 306972 + 306973 @@ -16440,19 +16265,19 @@ usings - 374921 + 374941 id - 374921 + 374941 element_id - 318471 + 318488 location - 249791 + 249804 @@ -16466,7 +16291,7 @@ 1 2 - 374921 + 374941 @@ -16482,7 +16307,7 @@ 1 2 - 374921 + 374941 @@ -16498,12 +16323,12 @@ 1 2 - 263903 + 263917 2 3 - 53157 + 53159 3 @@ -16524,12 +16349,12 @@ 1 2 - 263903 + 263917 2 3 - 53157 + 53159 3 @@ -16550,22 +16375,22 @@ 1 2 - 203690 + 203700 2 4 - 11289 + 11290 4 5 - 31517 + 31519 5 11 - 3292 + 3293 @@ -16581,22 +16406,22 @@ 1 2 - 203690 + 203700 2 4 - 11289 + 11290 4 5 - 31517 + 31519 5 11 - 3292 + 3293 @@ -16606,15 +16431,15 @@ using_container - 478195 + 478100 parent - 11298 + 11296 child - 303207 + 303147 @@ -16684,17 +16509,17 @@ 1 2 - 223629 + 223585 2 3 - 52990 + 52979 3 11 - 24401 + 24396 13 @@ -16709,15 +16534,15 @@ static_asserts - 130417 + 130418 id - 130417 + 130418 condition - 130417 + 130418 message @@ -16743,7 +16568,7 @@ 1 2 - 130417 + 130418 @@ -16759,7 +16584,7 @@ 1 2 - 130417 + 130418 @@ -16775,7 +16600,7 @@ 1 2 - 130417 + 130418 @@ -16791,7 +16616,7 @@ 1 2 - 130417 + 130418 @@ -16807,7 +16632,7 @@ 1 2 - 130417 + 130418 @@ -16823,7 +16648,7 @@ 1 2 - 130417 + 130418 @@ -16839,7 +16664,7 @@ 1 2 - 130417 + 130418 @@ -16855,7 +16680,7 @@ 1 2 - 130417 + 130418 @@ -17327,15 +17152,15 @@ params - 6825742 + 6826097 id - 6660155 + 6660502 function - 3940208 + 3940413 index @@ -17343,7 +17168,7 @@ type_id - 2234478 + 2234594 @@ -17357,7 +17182,7 @@ 1 2 - 6660155 + 6660502 @@ -17373,7 +17198,7 @@ 1 2 - 6660155 + 6660502 @@ -17389,12 +17214,12 @@ 1 2 - 6535025 + 6535365 2 4 - 125130 + 125137 @@ -17410,22 +17235,22 @@ 1 2 - 2303158 + 2303278 2 3 - 960590 + 960640 3 4 - 433253 + 433276 4 18 - 243205 + 243217 @@ -17441,22 +17266,22 @@ 1 2 - 2303158 + 2303278 2 3 - 960590 + 960640 3 4 - 433253 + 433276 4 18 - 243205 + 243217 @@ -17472,22 +17297,22 @@ 1 2 - 2605636 + 2605772 2 3 - 831225 + 831269 3 4 - 349519 + 349537 4 12 - 153826 + 153834 @@ -17741,22 +17566,22 @@ 1 2 - 1525560 + 1525639 2 3 - 446425 + 446448 3 8 - 171701 + 171710 8 522 - 90790 + 90795 @@ -17772,22 +17597,22 @@ 1 2 - 1749008 + 1749099 2 3 - 250731 + 250745 3 9 - 169820 + 169829 9 506 - 64917 + 64920 @@ -17803,17 +17628,17 @@ 1 2 - 1801694 + 1801788 2 3 - 353282 + 353301 3 13 - 79500 + 79504 @@ -17823,7 +17648,7 @@ overrides - 159823 + 159824 new @@ -17919,7 +17744,7 @@ type_id - 326293 + 326294 name @@ -17937,7 +17762,7 @@ 1 2 - 1048372 + 1048373 2 @@ -18087,19 +17912,19 @@ globalvariables - 300716 + 318724 id - 300708 + 318724 type_id - 1405 + 7852 name - 294738 + 86905 @@ -18113,12 +17938,7 @@ 1 2 - 300700 - - - 2 - 3 - 8 + 318724 @@ -18134,7 +17954,7 @@ 1 2 - 300708 + 318724 @@ -18150,27 +17970,32 @@ 1 2 - 977 + 5130 2 3 - 159 + 209 3 - 7 - 114 + 4 + 628 - 7 - 77 - 106 + 4 + 9 + 628 - 83 - 169397 - 49 + 18 + 31 + 628 + + + 35 + 1226 + 628 @@ -18186,27 +18011,32 @@ 1 2 - 1010 + 5130 2 3 - 135 + 209 3 - 7 - 112 + 4 + 628 - 7 - 105 - 106 + 4 + 9 + 628 - 106 - 168448 - 42 + 14 + 25 + 628 + + + 35 + 209 + 628 @@ -18222,12 +18052,17 @@ 1 2 - 290989 + 75911 2 - 33 - 3749 + 11 + 6596 + + + 11 + 449 + 4397 @@ -18243,12 +18078,12 @@ 1 2 - 294142 + 76644 2 - 12 - 596 + 3 + 10261 @@ -18266,7 +18101,7 @@ type_id - 37905 + 37909 name @@ -18326,7 +18161,7 @@ 3 4 - 2479 + 2483 4 @@ -18336,12 +18171,12 @@ 7 18 - 2878 + 2874 18 15847 - 2513 + 2517 @@ -18367,7 +18202,7 @@ 3 5 - 2946 + 2950 5 @@ -18449,11 +18284,11 @@ autoderivation - 149488 + 149519 var - 149488 + 149519 derivation_type @@ -18471,7 +18306,7 @@ 1 2 - 149488 + 149519 @@ -18537,7 +18372,7 @@ name - 240334 + 240335 location @@ -19272,7 +19107,7 @@ 1 2 - 240334 + 240335 @@ -19288,7 +19123,7 @@ 1 2 - 240334 + 240335 @@ -19414,23 +19249,23 @@ builtintypes - 22109 + 22110 id - 22109 + 22110 name - 22109 + 22110 kind - 22109 + 22110 size - 3292 + 3293 sign @@ -19452,7 +19287,7 @@ 1 2 - 22109 + 22110 @@ -19468,7 +19303,7 @@ 1 2 - 22109 + 22110 @@ -19484,7 +19319,7 @@ 1 2 - 22109 + 22110 @@ -19500,7 +19335,7 @@ 1 2 - 22109 + 22110 @@ -19516,7 +19351,7 @@ 1 2 - 22109 + 22110 @@ -19532,7 +19367,7 @@ 1 2 - 22109 + 22110 @@ -19548,7 +19383,7 @@ 1 2 - 22109 + 22110 @@ -19564,7 +19399,7 @@ 1 2 - 22109 + 22110 @@ -19580,7 +19415,7 @@ 1 2 - 22109 + 22110 @@ -19596,7 +19431,7 @@ 1 2 - 22109 + 22110 @@ -19612,7 +19447,7 @@ 1 2 - 22109 + 22110 @@ -19628,7 +19463,7 @@ 1 2 - 22109 + 22110 @@ -19644,7 +19479,7 @@ 1 2 - 22109 + 22110 @@ -19660,7 +19495,7 @@ 1 2 - 22109 + 22110 @@ -19676,7 +19511,7 @@ 1 2 - 22109 + 22110 @@ -20126,15 +19961,15 @@ derivedtypes - 4413446 + 4413676 id - 4413446 + 4413676 name - 2205312 + 2205427 kind @@ -20142,7 +19977,7 @@ type_id - 2729356 + 2729498 @@ -20156,7 +19991,7 @@ 1 2 - 4413446 + 4413676 @@ -20172,7 +20007,7 @@ 1 2 - 4413446 + 4413676 @@ -20188,7 +20023,7 @@ 1 2 - 4413446 + 4413676 @@ -20204,17 +20039,17 @@ 1 2 - 1935763 + 1935864 2 5 - 171231 + 171240 5 1173 - 98317 + 98322 @@ -20230,7 +20065,7 @@ 1 2 - 2204371 + 2204486 2 @@ -20251,17 +20086,17 @@ 1 2 - 1935763 + 1935864 2 5 - 171231 + 171240 5 1155 - 98317 + 98322 @@ -20400,22 +20235,22 @@ 1 2 - 1685972 + 1686060 2 3 - 568733 + 568763 3 4 - 367395 + 367414 4 54 - 107254 + 107260 @@ -20431,22 +20266,22 @@ 1 2 - 1697262 + 1697350 2 3 - 561206 + 561236 3 4 - 364572 + 364591 4 54 - 106314 + 106319 @@ -20462,22 +20297,22 @@ 1 2 - 1690206 + 1690294 2 3 - 572496 + 572526 3 4 - 366454 + 366473 4 6 - 100198 + 100203 @@ -20487,11 +20322,11 @@ pointerishsize - 3314342 + 3312399 id - 3314342 + 3312399 size @@ -20513,7 +20348,7 @@ 1 2 - 3314342 + 3312399 @@ -20529,7 +20364,7 @@ 1 2 - 3314342 + 3312399 @@ -20603,19 +20438,19 @@ arraysizes - 71503 + 71507 id - 71503 + 71507 num_elements - 23520 + 23522 bytesize - 26343 + 26344 alignment @@ -20633,7 +20468,7 @@ 1 2 - 71503 + 71507 @@ -20649,7 +20484,7 @@ 1 2 - 71503 + 71507 @@ -20665,7 +20500,7 @@ 1 2 - 71503 + 71507 @@ -20686,7 +20521,7 @@ 2 3 - 15053 + 15054 3 @@ -20722,7 +20557,7 @@ 1 2 - 18346 + 18347 2 @@ -20753,7 +20588,7 @@ 1 2 - 18346 + 18347 2 @@ -20789,12 +20624,12 @@ 2 3 - 16934 + 16935 3 4 - 3292 + 3293 4 @@ -20820,12 +20655,12 @@ 1 2 - 21639 + 21640 2 3 - 3292 + 3293 3 @@ -20846,12 +20681,12 @@ 1 2 - 22109 + 22110 2 3 - 3292 + 3293 4 @@ -20954,15 +20789,15 @@ typedefbase - 1724181 + 1736730 id - 1724181 + 1736730 type_id - 803746 + 810523 @@ -20976,7 +20811,7 @@ 1 2 - 1724181 + 1736730 @@ -20992,22 +20827,22 @@ 1 2 - 623380 + 629130 2 3 - 84307 + 85019 3 6 - 64497 + 64576 6 5443 - 31560 + 31797 @@ -21017,19 +20852,19 @@ decltypes - 355640 + 355894 id - 23953 + 23951 expr - 355640 + 355894 base_type - 17181 + 17180 parentheses_would_change_meaning @@ -21047,12 +20882,12 @@ 1 2 - 5961 + 5960 2 3 - 7492 + 7491 3 @@ -21067,12 +20902,12 @@ 7 18 - 1999 + 1980 18 42 - 2017 + 2035 42 @@ -21093,7 +20928,7 @@ 1 2 - 23953 + 23951 @@ -21109,7 +20944,7 @@ 1 2 - 23953 + 23951 @@ -21125,7 +20960,7 @@ 1 2 - 355640 + 355894 @@ -21141,7 +20976,7 @@ 1 2 - 355640 + 355894 @@ -21157,7 +20992,7 @@ 1 2 - 355640 + 355894 @@ -21204,7 +21039,7 @@ 2 3 - 7348 + 7347 3 @@ -21245,7 +21080,7 @@ 1 2 - 17181 + 17180 @@ -21275,8 +21110,8 @@ 12 - 19747 - 19748 + 19762 + 19763 18 @@ -21303,15 +21138,15 @@ usertypes - 5342989 + 5343268 id - 5342989 + 5343268 name - 1383024 + 1383096 kind @@ -21329,7 +21164,7 @@ 1 2 - 5342989 + 5343268 @@ -21345,7 +21180,7 @@ 1 2 - 5342989 + 5343268 @@ -21361,27 +21196,27 @@ 1 2 - 1001986 + 1002039 2 3 - 161352 + 161361 3 7 - 107725 + 107730 7 80 - 104432 + 104437 80 885 - 7526 + 7527 @@ -21397,17 +21232,17 @@ 1 2 - 1240488 + 1240552 2 3 - 127012 + 127019 3 7 - 15523 + 15524 @@ -21549,11 +21384,11 @@ usertypesize - 1755594 + 1755685 id - 1755594 + 1755685 size @@ -21575,7 +21410,7 @@ 1 2 - 1755594 + 1755685 @@ -21591,7 +21426,7 @@ 1 2 - 1755594 + 1755685 @@ -21607,7 +21442,7 @@ 1 2 - 3292 + 3293 2 @@ -21755,11 +21590,11 @@ usertype_final - 9526 + 9528 id - 9526 + 9528 @@ -21819,15 +21654,15 @@ mangled_name - 5264430 + 5301398 id - 5264430 + 5301398 mangled_name - 1235313 + 1272072 @@ -21841,7 +21676,7 @@ 1 2 - 5264430 + 5301398 @@ -21857,32 +21692,32 @@ 1 2 - 731027 + 767759 2 3 - 178287 + 178297 3 4 - 84674 + 84679 4 - 6 - 86086 + 7 + 114787 - 6 - 13 - 93142 + 7 + 25 + 95499 - 13 + 25 885 - 62094 + 31049 @@ -21892,59 +21727,59 @@ is_pod_class - 554326 + 554216 id - 554326 + 554216 is_standard_layout_class - 1295997 + 1296064 id - 1295997 + 1296064 is_complete - 1694439 + 1694528 id - 1694439 + 1694528 is_class_template - 405028 + 405049 id - 405028 + 405049 class_instantiation - 1121943 + 1122001 to - 1121943 + 1122001 from - 170761 + 170770 @@ -21958,7 +21793,7 @@ 1 2 - 1121943 + 1122001 @@ -21974,42 +21809,42 @@ 1 2 - 58802 + 58805 2 3 - 30106 + 30108 3 4 - 16464 + 16465 4 5 - 14582 + 14583 5 7 - 15523 + 15524 7 13 - 13171 + 13172 13 29 - 13171 + 13172 30 84 - 8937 + 8938 @@ -22019,11 +21854,11 @@ class_template_argument - 2978113 + 2977520 type_id - 1355713 + 1355443 index @@ -22031,7 +21866,7 @@ arg_type - 863386 + 863214 @@ -22045,27 +21880,27 @@ 1 2 - 551562 + 551453 2 3 - 411593 + 411511 3 4 - 246019 + 245970 4 7 - 122356 + 122331 7 113 - 24182 + 24177 @@ -22081,22 +21916,22 @@ 1 2 - 577421 + 577306 2 3 - 424939 + 424854 3 4 - 257884 + 257833 4 113 - 95467 + 95448 @@ -22117,7 +21952,7 @@ 2 3 - 821 + 820 3 @@ -22163,7 +21998,7 @@ 2 3 - 821 + 820 3 @@ -22204,27 +22039,27 @@ 1 2 - 535649 + 535542 2 3 - 181070 + 181034 3 4 - 52573 + 52563 4 10 - 65688 + 65675 10 11334 - 28403 + 28397 @@ -22240,17 +22075,17 @@ 1 2 - 755682 + 755532 2 3 - 85741 + 85724 3 22 - 21961 + 21957 @@ -22260,11 +22095,11 @@ class_template_argument_value - 508520 + 508546 type_id - 316590 + 316606 index @@ -22272,7 +22107,7 @@ arg_value - 508520 + 508546 @@ -22286,12 +22121,12 @@ 1 2 - 261081 + 261094 2 3 - 53627 + 53630 3 @@ -22312,17 +22147,17 @@ 1 2 - 200397 + 200407 2 3 - 81852 + 81856 3 5 - 29165 + 29167 5 @@ -22405,7 +22240,7 @@ 1 2 - 508520 + 508546 @@ -22421,7 +22256,7 @@ 1 2 - 508520 + 508546 @@ -22431,15 +22266,15 @@ is_proxy_class_for - 65387 + 65391 id - 65387 + 65391 templ_param_id - 65387 + 65391 @@ -22453,7 +22288,7 @@ 1 2 - 65387 + 65391 @@ -22469,7 +22304,7 @@ 1 2 - 65387 + 65391 @@ -22479,11 +22314,11 @@ type_mentions - 4011508 + 4011511 id - 4011508 + 4011511 type_id @@ -22491,7 +22326,7 @@ location - 3978135 + 3978138 kind @@ -22509,7 +22344,7 @@ 1 2 - 4011508 + 4011511 @@ -22525,7 +22360,7 @@ 1 2 - 4011508 + 4011511 @@ -22541,7 +22376,7 @@ 1 2 - 4011508 + 4011511 @@ -22675,7 +22510,7 @@ 1 2 - 3944762 + 3944765 2 @@ -22696,7 +22531,7 @@ 1 2 - 3944762 + 3944765 2 @@ -22717,7 +22552,7 @@ 1 2 - 3978135 + 3978138 @@ -22775,26 +22610,26 @@ is_function_template - 1413601 + 1413674 id - 1413601 + 1413674 function_instantiation - 906422 + 905891 to - 906422 + 905891 from - 146002 + 145917 @@ -22808,7 +22643,7 @@ 1 2 - 906422 + 905891 @@ -22824,27 +22659,27 @@ 1 2 - 101152 + 101092 2 3 - 14480 + 14472 3 6 - 12014 + 12007 6 21 - 12049 + 12042 22 869 - 6306 + 6302 @@ -22854,11 +22689,11 @@ function_template_argument - 2339815 + 2338443 function_id - 1318394 + 1317621 index @@ -22866,7 +22701,7 @@ arg_type - 305041 + 304862 @@ -22880,22 +22715,22 @@ 1 2 - 679667 + 679268 2 3 - 388084 + 387856 3 4 - 179966 + 179861 4 15 - 70676 + 70634 @@ -22911,22 +22746,22 @@ 1 2 - 694852 + 694445 2 3 - 393404 + 393173 3 4 - 150970 + 150882 4 9 - 79167 + 79120 @@ -23074,32 +22909,32 @@ 1 2 - 186978 + 186868 2 3 - 44850 + 44824 3 5 - 23218 + 23204 5 16 - 23535 + 23521 16 107 - 23006 + 22993 108 955 - 3452 + 3450 @@ -23115,17 +22950,17 @@ 1 2 - 274918 + 274756 2 4 - 26001 + 25986 4 17 - 4122 + 4119 @@ -23135,11 +22970,11 @@ function_template_argument_value - 362998 + 362786 function_id - 181340 + 181234 index @@ -23147,7 +22982,7 @@ arg_value - 360356 + 360145 @@ -23161,12 +22996,12 @@ 1 2 - 171969 + 171868 2 8 - 9371 + 9366 @@ -23182,17 +23017,17 @@ 1 2 - 151428 + 151339 2 3 - 20681 + 20669 3 97 - 9230 + 9225 @@ -23330,12 +23165,12 @@ 1 2 - 357714 + 357504 2 3 - 2642 + 2640 @@ -23351,7 +23186,7 @@ 1 2 - 360356 + 360145 @@ -23361,26 +23196,26 @@ is_variable_template - 42082 + 47326 id - 42082 + 47326 variable_instantiation - 49201 + 258309 to - 49201 + 258309 from - 25019 + 26281 @@ -23394,7 +23229,7 @@ 1 2 - 49201 + 258309 @@ -23410,22 +23245,42 @@ 1 2 - 14236 + 11203 2 3 - 7746 + 3559 3 + 4 + 1675 + + + 4 + 6 + 1884 + + + 6 8 - 1988 + 1884 8 14 - 1046 + 2408 + + + 15 + 26 + 1989 + + + 32 + 371 + 1675 @@ -23435,11 +23290,11 @@ variable_template_argument - 329648 + 448035 variable_id - 26380 + 247943 index @@ -23447,7 +23302,7 @@ arg_type - 217532 + 217578 @@ -23461,22 +23316,22 @@ 1 2 - 16121 + 119469 2 3 - 5652 + 99889 3 4 - 3873 + 18218 4 17 - 732 + 10365 @@ -23492,52 +23347,22 @@ 1 2 - 5757 + 129206 2 3 - 5234 + 91408 3 - 4 - 2093 - - - 4 5 - 1256 + 22825 5 - 6 - 2407 - - - 6 - 8 - 2303 - - - 8 - 11 - 2198 - - - 11 - 18 - 2303 - - - 18 - 50 - 1988 - - - 66 - 516 - 837 + 17 + 4502 @@ -23551,43 +23376,53 @@ 12 - 1 - 2 + 11 + 12 104 - 2 - 3 + 22 + 23 628 - 3 - 4 - 418 - - - 5 - 6 - 209 - - - 27 - 28 + 29 + 30 104 - 42 - 43 + 30 + 31 + 314 + + + 44 + 45 104 - 79 - 80 + 93 + 94 104 - 248 - 249 + 222 + 223 + 104 + + + 588 + 589 + 104 + + + 1090 + 1091 + 104 + + + 1974 + 1975 104 @@ -23665,17 +23500,22 @@ 1 2 - 180579 + 171403 2 3 - 21878 + 25024 3 - 38 - 15074 + 8 + 17067 + + + 8 + 94 + 4083 @@ -23691,12 +23531,12 @@ 1 2 - 200259 + 200302 2 5 - 16854 + 16857 5 @@ -23711,11 +23551,11 @@ variable_template_argument_value - 15597 + 15810 variable_id - 2826 + 6596 index @@ -23723,7 +23563,7 @@ arg_value - 12038 + 12041 @@ -23737,12 +23577,12 @@ 1 2 - 2617 + 5968 2 3 - 209 + 628 @@ -23756,45 +23596,25 @@ 12 - 2 - 3 - 418 + 1 + 2 + 314 - 3 - 4 - 104 + 2 + 3 + 5235 4 5 - 1360 - - - 5 - 6 - 209 - - - 6 - 7 - 209 + 837 8 9 209 - - 12 - 17 - 209 - - - 20 - 21 - 104 - @@ -23806,24 +23626,24 @@ 12 - - 2 - 3 - 104 - 6 7 104 - 8 - 9 + 19 + 20 104 - 13 - 14 + 20 + 21 + 104 + + + 24 + 25 104 @@ -23871,12 +23691,12 @@ 1 2 - 8479 + 8271 2 3 - 3559 + 3769 @@ -23892,7 +23712,7 @@ 1 2 - 12038 + 12041 @@ -23902,15 +23722,15 @@ routinetypes - 546982 + 546661 id - 546982 + 546661 return_type - 285945 + 285778 @@ -23924,7 +23744,7 @@ 1 2 - 546982 + 546661 @@ -23940,17 +23760,17 @@ 1 2 - 249233 + 249087 2 3 - 21315 + 21303 3 3594 - 15396 + 15387 @@ -23960,11 +23780,11 @@ routinetypeargs - 993519 + 993571 routine - 429019 + 429042 index @@ -23972,7 +23792,7 @@ type_id - 229563 + 229575 @@ -23986,27 +23806,27 @@ 1 2 - 155707 + 155715 2 3 - 135479 + 135486 3 4 - 63976 + 63979 4 5 - 46100 + 46103 5 18 - 27754 + 27756 @@ -24022,27 +23842,27 @@ 1 2 - 185814 + 185824 2 3 - 135009 + 135016 3 4 - 59272 + 59275 4 5 - 33869 + 33871 5 11 - 15053 + 15054 @@ -24200,27 +24020,27 @@ 1 2 - 148651 + 148659 2 3 - 31047 + 31049 3 5 - 16934 + 16935 5 12 - 18346 + 18347 12 113 - 14582 + 14583 @@ -24236,17 +24056,17 @@ 1 2 - 174994 + 175004 2 3 - 31047 + 31049 3 6 - 18816 + 18817 6 @@ -24261,19 +24081,19 @@ ptrtomembers - 38103 + 38105 id - 38103 + 38105 type_id - 38103 + 38105 class_id - 15523 + 15524 @@ -24287,7 +24107,7 @@ 1 2 - 38103 + 38105 @@ -24303,7 +24123,7 @@ 1 2 - 38103 + 38105 @@ -24319,7 +24139,7 @@ 1 2 - 38103 + 38105 @@ -24335,7 +24155,7 @@ 1 2 - 38103 + 38105 @@ -24397,15 +24217,15 @@ specifiers - 24932 + 24933 id - 24932 + 24933 str - 24932 + 24933 @@ -24419,7 +24239,7 @@ 1 2 - 24932 + 24933 @@ -24435,7 +24255,7 @@ 1 2 - 24932 + 24933 @@ -24445,11 +24265,11 @@ typespecifiers - 1317166 + 1317234 type_id - 1298819 + 1298887 spec_id @@ -24467,12 +24287,12 @@ 1 2 - 1280473 + 1280540 2 3 - 18346 + 18347 @@ -24533,11 +24353,11 @@ funspecifiers - 13049498 + 13041848 func_id - 3975160 + 3972829 spec_id @@ -24555,27 +24375,27 @@ 1 2 - 314977 + 314792 2 3 - 544551 + 544231 3 4 - 1145438 + 1144767 4 5 - 1732127 + 1731112 5 8 - 238064 + 237925 @@ -24691,11 +24511,11 @@ varspecifiers - 2347848 + 2347970 var_id - 1255071 + 1255136 spec_id @@ -24713,22 +24533,22 @@ 1 2 - 735731 + 735769 2 3 - 203219 + 203230 3 4 - 58802 + 58805 4 5 - 257317 + 257331 @@ -24789,11 +24609,11 @@ attributes - 696354 + 696502 id - 696354 + 696502 kind @@ -24801,7 +24621,7 @@ name - 1674 + 1675 name_space @@ -24809,7 +24629,7 @@ location - 483847 + 483949 @@ -24823,7 +24643,7 @@ 1 2 - 696354 + 696502 @@ -24839,7 +24659,7 @@ 1 2 - 696354 + 696502 @@ -24855,7 +24675,7 @@ 1 2 - 696354 + 696502 @@ -24871,7 +24691,7 @@ 1 2 - 696354 + 696502 @@ -25088,7 +24908,7 @@ 1 2 - 1674 + 1675 @@ -25264,17 +25084,17 @@ 1 2 - 442497 + 442591 2 9 - 36848 + 36856 9 201 - 4501 + 4502 @@ -25290,7 +25110,7 @@ 1 2 - 483847 + 483949 @@ -25306,7 +25126,7 @@ 1 2 - 479555 + 479656 2 @@ -25327,7 +25147,7 @@ 1 2 - 483847 + 483949 @@ -25337,11 +25157,11 @@ attribute_args - 352341 + 352360 id - 352341 + 352360 kind @@ -25349,7 +25169,7 @@ attribute - 270489 + 270503 index @@ -25357,7 +25177,7 @@ location - 329291 + 329308 @@ -25371,7 +25191,7 @@ 1 2 - 352341 + 352360 @@ -25387,7 +25207,7 @@ 1 2 - 352341 + 352360 @@ -25403,7 +25223,7 @@ 1 2 - 352341 + 352360 @@ -25419,7 +25239,7 @@ 1 2 - 352341 + 352360 @@ -25534,12 +25354,12 @@ 1 2 - 204631 + 204641 2 3 - 49864 + 49866 3 @@ -25560,7 +25380,7 @@ 1 2 - 260140 + 260153 2 @@ -25581,12 +25401,12 @@ 1 2 - 204631 + 204641 2 3 - 49864 + 49866 3 @@ -25607,12 +25427,12 @@ 1 2 - 204631 + 204641 2 3 - 49864 + 49866 3 @@ -25732,12 +25552,12 @@ 1 2 - 315179 + 315195 2 16 - 14112 + 14113 @@ -25753,7 +25573,7 @@ 1 2 - 316590 + 316606 2 @@ -25774,12 +25594,12 @@ 1 2 - 315179 + 315195 2 16 - 14112 + 14113 @@ -25795,7 +25615,7 @@ 1 2 - 329291 + 329308 @@ -25805,15 +25625,15 @@ attribute_arg_value - 351871 + 351889 arg - 351871 + 351889 value - 34810 + 34812 @@ -25827,7 +25647,7 @@ 1 2 - 351871 + 351889 @@ -25843,12 +25663,12 @@ 1 2 - 16934 + 16935 2 3 - 12230 + 12231 3 @@ -25969,15 +25789,15 @@ typeattributes - 62496 + 62509 type_id - 62077 + 62090 spec_id - 62496 + 62509 @@ -25991,7 +25811,7 @@ 1 2 - 61658 + 61671 2 @@ -26012,7 +25832,7 @@ 1 2 - 62496 + 62509 @@ -26022,15 +25842,15 @@ funcattributes - 635532 + 635565 func_id - 447366 + 447389 spec_id - 635532 + 635565 @@ -26044,17 +25864,17 @@ 1 2 - 341522 + 341540 2 3 - 64917 + 64920 3 6 - 39985 + 39987 6 @@ -26075,7 +25895,7 @@ 1 2 - 635532 + 635565 @@ -26143,15 +25963,15 @@ stmtattributes - 1006 + 1005 stmt_id - 1006 + 1005 spec_id - 1006 + 1005 @@ -26165,7 +25985,7 @@ 1 2 - 1006 + 1005 @@ -26181,7 +26001,7 @@ 1 2 - 1006 + 1005 @@ -26191,15 +26011,15 @@ unspecifiedtype - 10352924 + 10353463 type_id - 10352924 + 10353463 unspecified_type_id - 6956047 + 6956409 @@ -26213,7 +26033,7 @@ 1 2 - 10352924 + 10353463 @@ -26229,17 +26049,17 @@ 1 2 - 4675939 + 4676182 2 3 - 2037843 + 2037950 3 147 - 242264 + 242277 @@ -26249,19 +26069,19 @@ member - 5134480 + 5131470 parent - 689567 + 689163 index - 8808 + 8802 child - 5070710 + 5067737 @@ -26275,42 +26095,42 @@ 1 3 - 18884 + 18873 3 4 - 390691 + 390462 4 5 - 39072 + 39049 5 7 - 53059 + 53028 7 10 - 52848 + 52817 10 16 - 57569 + 57535 16 30 - 52954 + 52923 30 251 - 24486 + 24472 @@ -26326,42 +26146,42 @@ 1 3 - 18884 + 18873 3 4 - 390656 + 390427 4 5 - 39107 + 39084 5 7 - 53165 + 53134 7 10 - 53165 + 53134 10 16 - 57323 + 57289 16 29 - 52742 + 52711 29 253 - 24521 + 24507 @@ -26377,17 +26197,17 @@ 1 2 - 1409 + 1408 2 3 - 810 + 809 3 4 - 951 + 950 5 @@ -26448,7 +26268,7 @@ 1 2 - 810 + 809 2 @@ -26458,7 +26278,7 @@ 3 4 - 1162 + 1161 4 @@ -26503,7 +26323,7 @@ 2770 19253 - 458 + 457 @@ -26519,7 +26339,7 @@ 1 2 - 5070710 + 5067737 @@ -26535,12 +26355,12 @@ 1 2 - 5008419 + 5005483 2 8 - 62290 + 62254 @@ -26550,15 +26370,15 @@ enclosingfunction - 121743 + 121719 child - 121743 + 121719 parent - 69504 + 69490 @@ -26572,7 +26392,7 @@ 1 2 - 121743 + 121719 @@ -26588,22 +26408,22 @@ 1 2 - 36695 + 36687 2 3 - 21591 + 21587 3 4 - 6106 + 6105 4 45 - 5111 + 5110 @@ -26613,15 +26433,15 @@ derivations - 402388 + 402152 derivation - 402388 + 402152 sub - 381883 + 381659 index @@ -26629,11 +26449,11 @@ super - 206461 + 206340 location - 38156 + 38134 @@ -26647,7 +26467,7 @@ 1 2 - 402388 + 402152 @@ -26663,7 +26483,7 @@ 1 2 - 402388 + 402152 @@ -26679,7 +26499,7 @@ 1 2 - 402388 + 402152 @@ -26695,7 +26515,7 @@ 1 2 - 402388 + 402152 @@ -26711,12 +26531,12 @@ 1 2 - 366733 + 366518 2 7 - 15149 + 15141 @@ -26732,12 +26552,12 @@ 1 2 - 366733 + 366518 2 7 - 15149 + 15141 @@ -26753,12 +26573,12 @@ 1 2 - 366733 + 366518 2 7 - 15149 + 15141 @@ -26774,12 +26594,12 @@ 1 2 - 366733 + 366518 2 7 - 15149 + 15141 @@ -26924,12 +26744,12 @@ 1 2 - 199133 + 199016 2 1225 - 7328 + 7324 @@ -26945,12 +26765,12 @@ 1 2 - 199133 + 199016 2 1225 - 7328 + 7324 @@ -26966,12 +26786,12 @@ 1 2 - 206003 + 205882 2 4 - 458 + 457 @@ -26987,12 +26807,12 @@ 1 2 - 202867 + 202748 2 108 - 3593 + 3591 @@ -27008,22 +26828,22 @@ 1 2 - 28326 + 28310 2 5 - 3135 + 3133 5 16 - 2994 + 2992 17 133 - 2994 + 2992 142 @@ -27044,22 +26864,22 @@ 1 2 - 28326 + 28310 2 5 - 3135 + 3133 5 16 - 2994 + 2992 17 133 - 2994 + 2992 142 @@ -27080,7 +26900,7 @@ 1 2 - 38156 + 38134 @@ -27096,22 +26916,22 @@ 1 2 - 30757 + 30739 2 5 - 3417 + 3415 5 55 - 2889 + 2887 60 420 - 1092 + 1091 @@ -27121,11 +26941,11 @@ derspecifiers - 404291 + 404054 der_id - 402001 + 401765 spec_id @@ -27143,12 +26963,12 @@ 1 2 - 399710 + 399476 2 3 - 2290 + 2288 @@ -27189,11 +27009,11 @@ direct_base_offsets - 373110 + 372891 der_id - 373110 + 372891 offset @@ -27211,7 +27031,7 @@ 1 2 - 373110 + 372891 @@ -27262,11 +27082,11 @@ virtual_base_offsets - 6661 + 6660 sub - 3677 + 3676 super @@ -27288,7 +27108,7 @@ 1 2 - 2891 + 2890 2 @@ -27319,7 +27139,7 @@ 1 2 - 3099 + 3098 2 @@ -27553,23 +27373,23 @@ frienddecls - 715075 + 714656 id - 715075 + 714656 type_id - 42384 + 42359 decl_id - 70182 + 70141 location - 6341 + 6338 @@ -27583,7 +27403,7 @@ 1 2 - 715075 + 714656 @@ -27599,7 +27419,7 @@ 1 2 - 715075 + 714656 @@ -27615,7 +27435,7 @@ 1 2 - 715075 + 714656 @@ -27631,47 +27451,47 @@ 1 2 - 6200 + 6197 2 3 - 13212 + 13204 3 6 - 2959 + 2957 6 10 - 3206 + 3204 10 17 - 3276 + 3274 17 24 - 3347 + 3345 25 36 - 3311 + 3309 37 55 - 3241 + 3239 55 103 - 3628 + 3626 @@ -27687,47 +27507,47 @@ 1 2 - 6200 + 6197 2 3 - 13212 + 13204 3 6 - 2959 + 2957 6 10 - 3206 + 3204 10 17 - 3276 + 3274 17 24 - 3347 + 3345 25 36 - 3311 + 3309 37 55 - 3241 + 3239 55 103 - 3628 + 3626 @@ -27743,12 +27563,12 @@ 1 2 - 40939 + 40915 2 13 - 1444 + 1443 @@ -27764,37 +27584,37 @@ 1 2 - 40481 + 40458 2 3 - 5883 + 5880 3 8 - 6024 + 6021 8 15 - 5425 + 5422 15 32 - 5284 + 5281 32 71 - 5284 + 5281 72 160 - 1796 + 1795 @@ -27810,37 +27630,37 @@ 1 2 - 40481 + 40458 2 3 - 5883 + 5880 3 8 - 6024 + 6021 8 15 - 5425 + 5422 15 32 - 5284 + 5281 32 71 - 5284 + 5281 72 160 - 1796 + 1795 @@ -27856,7 +27676,7 @@ 1 2 - 69513 + 69472 2 @@ -27877,7 +27697,7 @@ 1 2 - 5954 + 5950 2 @@ -27898,7 +27718,7 @@ 1 2 - 6200 + 6197 2 @@ -27919,7 +27739,7 @@ 1 2 - 5989 + 5985 2 @@ -27934,19 +27754,19 @@ comments - 8781270 + 8783134 id - 8781270 + 8783134 contents - 3342962 + 3343672 location - 8781270 + 8783134 @@ -27960,7 +27780,7 @@ 1 2 - 8781270 + 8783134 @@ -27976,7 +27796,7 @@ 1 2 - 8781270 + 8783134 @@ -27992,17 +27812,17 @@ 1 2 - 3058223 + 3058872 2 7 - 251135 + 251189 7 32784 - 33603 + 33610 @@ -28018,17 +27838,17 @@ 1 2 - 3058223 + 3058872 2 7 - 251135 + 251189 7 32784 - 33603 + 33610 @@ -28044,7 +27864,7 @@ 1 2 - 8781270 + 8783134 @@ -28060,7 +27880,7 @@ 1 2 - 8781270 + 8783134 @@ -28070,15 +27890,15 @@ commentbinding - 3145674 + 3145838 id - 2490384 + 2490514 element - 3068526 + 3068686 @@ -28092,12 +27912,12 @@ 1 2 - 2408061 + 2408187 2 97 - 82322 + 82327 @@ -28113,12 +27933,12 @@ 1 2 - 2991378 + 2991533 2 3 - 77148 + 77152 @@ -28128,15 +27948,15 @@ exprconv - 7003750 + 7003755 converted - 7003750 + 7003755 conversion - 7003750 + 7003755 @@ -28150,7 +27970,7 @@ 1 2 - 7003750 + 7003755 @@ -28166,7 +27986,7 @@ 1 2 - 7003750 + 7003755 @@ -28176,22 +27996,22 @@ compgenerated - 8494343 + 8493976 id - 8494343 + 8493976 synthetic_destructor_call - 133110 + 133104 element - 103484 + 103479 i @@ -28199,7 +28019,7 @@ destructor_call - 117766 + 117760 @@ -28213,12 +28033,12 @@ 1 2 - 85546 + 85542 2 3 - 11832 + 11831 3 @@ -28239,12 +28059,12 @@ 1 2 - 85546 + 85542 2 3 - 11832 + 11831 3 @@ -28417,7 +28237,7 @@ 1 2 - 115749 + 115743 2 @@ -28438,7 +28258,7 @@ 1 2 - 117766 + 117760 @@ -28486,7 +28306,7 @@ 1 2 - 8937 + 8938 2 @@ -28517,15 +28337,15 @@ namespacembrs - 2463100 + 2463228 parentid - 10819 + 10820 memberid - 2463100 + 2463228 @@ -28605,7 +28425,7 @@ 1 2 - 2463100 + 2463228 @@ -28615,11 +28435,11 @@ exprparents - 14152882 + 14152891 expr_id - 14152882 + 14152891 child_index @@ -28627,7 +28447,7 @@ parent_id - 9417999 + 9418005 @@ -28641,7 +28461,7 @@ 1 2 - 14152882 + 14152891 @@ -28657,7 +28477,7 @@ 1 2 - 14152882 + 14152891 @@ -28775,12 +28595,12 @@ 1 2 - 5388939 + 5388942 2 3 - 3692597 + 3692599 3 @@ -28801,12 +28621,12 @@ 1 2 - 5388939 + 5388942 2 3 - 3692597 + 3692599 3 @@ -28821,22 +28641,22 @@ expr_isload - 4981779 + 4981688 expr_id - 4981779 + 4981688 conversionkinds - 4220621 + 4220624 expr_id - 4220621 + 4220624 kind @@ -28854,7 +28674,7 @@ 1 2 - 4220621 + 4220624 @@ -28883,8 +28703,8 @@ 1 - 26289 - 26290 + 26287 + 26288 1 @@ -28893,8 +28713,8 @@ 1 - 4131029 - 4131030 + 4131034 + 4131035 1 @@ -28905,11 +28725,11 @@ iscall - 3078157 + 3078281 caller - 3078157 + 3078281 kind @@ -28927,7 +28747,7 @@ 1 2 - 3078157 + 3078281 @@ -28951,8 +28771,8 @@ 18 - 167025 - 167026 + 167040 + 167041 18 @@ -28963,11 +28783,11 @@ numtemplatearguments - 543303 + 543548 expr_id - 543303 + 543548 num @@ -28985,7 +28805,7 @@ 1 2 - 543303 + 543548 @@ -29014,8 +28834,8 @@ 18 - 29893 - 29894 + 29908 + 29909 18 @@ -29074,23 +28894,23 @@ namequalifiers - 1618961 + 1618866 id - 1618961 + 1618866 qualifiableelement - 1618961 + 1618866 qualifyingelement - 79675 + 79653 location - 282719 + 282705 @@ -29104,7 +28924,7 @@ 1 2 - 1618961 + 1618866 @@ -29120,7 +28940,7 @@ 1 2 - 1618961 + 1618866 @@ -29136,7 +28956,7 @@ 1 2 - 1618961 + 1618866 @@ -29152,7 +28972,7 @@ 1 2 - 1618961 + 1618866 @@ -29168,7 +28988,7 @@ 1 2 - 1618961 + 1618866 @@ -29184,7 +29004,7 @@ 1 2 - 1618961 + 1618866 @@ -29200,12 +29020,12 @@ 1 2 - 45546 + 45526 2 3 - 17163 + 17162 3 @@ -29236,12 +29056,12 @@ 1 2 - 45546 + 45526 2 3 - 17163 + 17162 3 @@ -29272,7 +29092,7 @@ 1 2 - 49725 + 49704 2 @@ -29308,32 +29128,32 @@ 1 2 - 91742 + 91737 2 3 - 25646 + 25644 3 4 - 42179 + 42177 4 6 - 12895 + 12894 6 7 - 89869 + 89865 7 2135 - 20387 + 20386 @@ -29349,32 +29169,32 @@ 1 2 - 91742 + 91737 2 3 - 25646 + 25644 3 4 - 42179 + 42177 4 6 - 12895 + 12894 6 7 - 89869 + 89865 7 2135 - 20387 + 20386 @@ -29390,17 +29210,17 @@ 1 2 - 125168 + 125162 2 3 - 52354 + 52352 3 4 - 96622 + 96618 4 @@ -29415,11 +29235,11 @@ varbind - 6006364 + 6006368 expr - 6006364 + 6006368 var @@ -29437,7 +29257,7 @@ 1 2 - 6006364 + 6006368 @@ -29508,15 +29328,15 @@ funbind - 3080553 + 3080676 expr - 3076933 + 3077056 fun - 514055 + 514013 @@ -29530,7 +29350,7 @@ 1 2 - 3073313 + 3073437 2 @@ -29551,32 +29371,32 @@ 1 2 - 306582 + 306531 2 3 - 78775 + 78789 3 4 - 37226 + 37224 4 7 - 43475 + 43473 7 38 - 38703 + 38701 38 4943 - 9293 + 9292 @@ -29586,11 +29406,11 @@ expr_allocator - 46541 + 46514 expr - 46541 + 46514 func @@ -29612,7 +29432,7 @@ 1 2 - 46541 + 46514 @@ -29628,7 +29448,7 @@ 1 2 - 46541 + 46514 @@ -29712,11 +29532,11 @@ expr_deallocator - 55314 + 55282 expr - 55314 + 55282 func @@ -29738,7 +29558,7 @@ 1 2 - 55314 + 55282 @@ -29754,7 +29574,7 @@ 1 2 - 55314 + 55282 @@ -29907,15 +29727,15 @@ expr_cond_true - 654499 + 654500 cond - 654499 + 654500 true - 654499 + 654500 @@ -29929,7 +29749,7 @@ 1 2 - 654499 + 654500 @@ -29945,7 +29765,7 @@ 1 2 - 654499 + 654500 @@ -30003,11 +29823,11 @@ values - 10646146 + 10646153 id - 10646146 + 10646153 str @@ -30025,7 +29845,7 @@ 1 2 - 10646146 + 10646153 @@ -30071,15 +29891,15 @@ valuetext - 4756729 + 4756702 id - 4756729 + 4756702 text - 703924 + 703921 @@ -30093,7 +29913,7 @@ 1 2 - 4756729 + 4756702 @@ -30114,17 +29934,17 @@ 2 3 - 102489 + 102490 3 7 - 56759 + 56757 7 425881 - 17147 + 17145 @@ -30134,15 +29954,15 @@ valuebind - 11083050 + 11083057 val - 10646146 + 10646153 expr - 11083050 + 11083057 @@ -30156,7 +29976,7 @@ 1 2 - 10232022 + 10232029 2 @@ -30177,7 +29997,7 @@ 1 2 - 11083050 + 11083057 @@ -30388,11 +30208,11 @@ bitfield - 20936 + 20941 id - 20936 + 20941 bits @@ -30414,7 +30234,7 @@ 1 2 - 20936 + 20941 @@ -30430,7 +30250,7 @@ 1 2 - 20936 + 20941 @@ -30574,23 +30394,23 @@ initialisers - 1731824 + 1732353 init - 1731824 + 1732353 var - 717748 + 721222 expr - 1731824 + 1732353 location - 390436 + 390438 @@ -30604,7 +30424,7 @@ 1 2 - 1731824 + 1732353 @@ -30620,7 +30440,7 @@ 1 2 - 1731824 + 1732353 @@ -30636,7 +30456,7 @@ 1 2 - 1731824 + 1732353 @@ -30652,22 +30472,17 @@ 1 2 - 629392 + 632463 2 16 - 31625 + 32109 16 25 - 56686 - - - 25 - 112 - 44 + 56649 @@ -30683,22 +30498,17 @@ 1 2 - 629392 + 632463 2 16 - 31625 + 32109 16 25 - 56686 - - - 25 - 112 - 44 + 56649 @@ -30714,12 +30524,12 @@ 1 2 - 717666 + 721215 2 - 4 - 81 + 3 + 6 @@ -30735,7 +30545,7 @@ 1 2 - 1731824 + 1732353 @@ -30751,7 +30561,7 @@ 1 2 - 1731824 + 1732353 @@ -30767,7 +30577,7 @@ 1 2 - 1731824 + 1732353 @@ -30783,7 +30593,7 @@ 1 2 - 317956 + 317957 2 @@ -30798,7 +30608,7 @@ 15 111459 - 17855 + 17856 @@ -30814,17 +30624,17 @@ 1 2 - 340955 + 340698 2 4 - 35579 + 35642 4 12738 - 13901 + 14096 @@ -30840,7 +30650,7 @@ 1 2 - 317956 + 317957 2 @@ -30855,7 +30665,7 @@ 15 111459 - 17855 + 17856 @@ -30876,15 +30686,15 @@ expr_ancestor - 121674 + 121668 exp - 121674 + 121668 ancestor - 84880 + 84876 @@ -30898,7 +30708,7 @@ 1 2 - 121674 + 121668 @@ -30914,12 +30724,12 @@ 1 2 - 61377 + 61374 2 3 - 16785 + 16784 3 @@ -30939,19 +30749,19 @@ exprs - 18300140 + 18300152 id - 18300140 + 18300152 kind - 3382 + 3380 location - 3561673 + 3559831 @@ -30965,7 +30775,7 @@ 1 2 - 18300140 + 18300152 @@ -30981,7 +30791,7 @@ 1 2 - 18300140 + 18300152 @@ -31050,13 +30860,13 @@ 281 - 6591 - 63491 + 6528 + 63599 281 - 78915 - 109590 + 79044 + 109592 70 @@ -31127,11 +30937,11 @@ 1051 - 14609 + 14618 281 - 16974 + 16981 32757 140 @@ -31149,32 +30959,32 @@ 1 2 - 1936933 + 1935551 2 3 - 816932 + 816946 3 4 - 247260 + 247397 4 8 - 280872 + 280461 8 - 136 - 267131 + 137 + 267010 - 136 + 137 54140 - 12542 + 12464 @@ -31190,22 +31000,22 @@ 1 2 - 2363808 + 2362352 2 3 - 873691 + 873426 3 6 - 307261 + 307151 6 25 - 16911 + 16901 @@ -31215,15 +31025,15 @@ expr_types - 18357789 + 18357798 id - 18300140 + 18300152 typeid - 829282 + 829243 value_category @@ -31241,12 +31051,12 @@ 1 2 - 18242562 + 18242577 2 5 - 57577 + 57574 @@ -31262,7 +31072,7 @@ 1 2 - 18300140 + 18300152 @@ -31278,42 +31088,42 @@ 1 2 - 293470 + 292376 2 3 - 160720 + 161054 3 4 - 69824 + 70343 4 5 - 60801 + 60978 5 7 - 66996 + 66993 7 12 - 65321 + 65336 12 35 - 62638 + 62653 35 - 78674 - 49509 + 78689 + 49506 @@ -31329,12 +31139,12 @@ 1 2 - 716180 + 715462 2 3 - 102314 + 102993 3 @@ -31353,18 +31163,18 @@ 12 - 11828 - 11829 + 11826 + 11827 18 - 253738 - 253739 + 253755 + 253756 18 - 750551 - 750552 + 750585 + 750586 18 @@ -31379,18 +31189,18 @@ 12 - 1446 - 1447 + 1484 + 1485 18 - 11978 - 11979 + 11980 + 11981 18 - 39501 - 39502 + 39499 + 39500 18 @@ -31401,15 +31211,15 @@ new_allocated_type - 47598 + 47571 expr - 47598 + 47571 type_id - 28150 + 28134 @@ -31423,7 +31233,7 @@ 1 2 - 47598 + 47571 @@ -31439,17 +31249,17 @@ 1 2 - 11767 + 11760 2 3 - 14903 + 14894 3 19 - 1479 + 1478 @@ -32069,15 +31879,15 @@ condition_decl_bind - 38595 + 38593 expr - 38595 + 38593 decl - 38595 + 38593 @@ -32091,7 +31901,7 @@ 1 2 - 38595 + 38593 @@ -32107,7 +31917,7 @@ 1 2 - 38595 + 38593 @@ -32117,15 +31927,15 @@ typeid_bind - 36430 + 36408 expr - 36430 + 36408 type_id - 16383 + 16373 @@ -32139,7 +31949,7 @@ 1 2 - 36430 + 36408 @@ -32155,7 +31965,7 @@ 1 2 - 15960 + 15950 3 @@ -32354,11 +32164,11 @@ lambdas - 21639 + 21640 expr - 21639 + 21640 default_capture @@ -32380,7 +32190,7 @@ 1 2 - 21639 + 21640 @@ -32396,7 +32206,7 @@ 1 2 - 21639 + 21640 @@ -32470,15 +32280,15 @@ lambda_capture - 28224 + 28226 id - 28224 + 28226 lambda - 20698 + 20699 index @@ -32486,7 +32296,7 @@ field - 28224 + 28226 captured_by_reference @@ -32512,7 +32322,7 @@ 1 2 - 28224 + 28226 @@ -32528,7 +32338,7 @@ 1 2 - 28224 + 28226 @@ -32544,7 +32354,7 @@ 1 2 - 28224 + 28226 @@ -32560,7 +32370,7 @@ 1 2 - 28224 + 28226 @@ -32576,7 +32386,7 @@ 1 2 - 28224 + 28226 @@ -32592,7 +32402,7 @@ 1 2 - 28224 + 28226 @@ -32608,12 +32418,12 @@ 1 2 - 13171 + 13172 2 3 - 7526 + 7527 @@ -32629,12 +32439,12 @@ 1 2 - 13171 + 13172 2 3 - 7526 + 7527 @@ -32650,12 +32460,12 @@ 1 2 - 13171 + 13172 2 3 - 7526 + 7527 @@ -32671,7 +32481,7 @@ 1 2 - 20698 + 20699 @@ -32687,7 +32497,7 @@ 1 2 - 20698 + 20699 @@ -32703,12 +32513,12 @@ 1 2 - 13171 + 13172 2 3 - 7526 + 7527 @@ -32840,7 +32650,7 @@ 1 2 - 28224 + 28226 @@ -32856,7 +32666,7 @@ 1 2 - 28224 + 28226 @@ -32872,7 +32682,7 @@ 1 2 - 28224 + 28226 @@ -32888,7 +32698,7 @@ 1 2 - 28224 + 28226 @@ -32904,7 +32714,7 @@ 1 2 - 28224 + 28226 @@ -32920,7 +32730,7 @@ 1 2 - 28224 + 28226 @@ -33349,19 +33159,19 @@ stmts - 4660299 + 4661289 id - 4660299 + 4661289 kind - 1988 + 1989 location - 2286915 + 2287401 @@ -33375,7 +33185,7 @@ 1 2 - 4660299 + 4661289 @@ -33391,7 +33201,7 @@ 1 2 - 4660299 + 4661289 @@ -33619,22 +33429,22 @@ 1 2 - 1892154 + 1892555 2 4 - 175972 + 176010 4 12 - 176182 + 176219 12 699 - 42606 + 42615 @@ -33650,12 +33460,12 @@ 1 2 - 2229653 + 2230127 2 8 - 57261 + 57274 @@ -33953,15 +33763,15 @@ constexpr_if_then - 52551 + 52562 constexpr_if_stmt - 52551 + 52562 then_id - 52551 + 52562 @@ -33975,7 +33785,7 @@ 1 2 - 52551 + 52562 @@ -33991,7 +33801,7 @@ 1 2 - 52551 + 52562 @@ -34001,15 +33811,15 @@ constexpr_if_else - 30881 + 30888 constexpr_if_stmt - 30881 + 30888 else_id - 30881 + 30888 @@ -34023,7 +33833,7 @@ 1 2 - 30881 + 30888 @@ -34039,7 +33849,7 @@ 1 2 - 30881 + 30888 @@ -34049,15 +33859,15 @@ while_body - 30207 + 30201 while_stmt - 30207 + 30201 body_id - 30207 + 30201 @@ -34071,7 +33881,7 @@ 1 2 - 30207 + 30201 @@ -34087,7 +33897,7 @@ 1 2 - 30207 + 30201 @@ -34097,15 +33907,15 @@ do_body - 148604 + 148599 do_stmt - 148604 + 148599 body_id - 148604 + 148599 @@ -34119,7 +33929,7 @@ 1 2 - 148604 + 148599 @@ -34135,7 +33945,7 @@ 1 2 - 148604 + 148599 @@ -34193,7 +34003,7 @@ switch_case - 191408 + 191399 switch_stmt @@ -34205,7 +34015,7 @@ case_id - 191408 + 191399 @@ -34361,7 +34171,7 @@ 32 33 - 1909 + 1908 33 @@ -34402,7 +34212,7 @@ 32 33 - 1909 + 1908 33 @@ -34433,7 +34243,7 @@ 1 2 - 191408 + 191399 @@ -34449,7 +34259,7 @@ 1 2 - 191408 + 191399 @@ -34699,19 +34509,19 @@ stmtparents - 4052305 + 4052323 id - 4052305 + 4052323 index - 12209 + 12210 parent - 1719463 + 1719470 @@ -34725,7 +34535,7 @@ 1 2 - 4052305 + 4052323 @@ -34741,7 +34551,7 @@ 1 2 - 4052305 + 4052323 @@ -34879,12 +34689,12 @@ 1 2 - 987317 + 987321 2 3 - 372963 + 372965 3 @@ -34894,7 +34704,7 @@ 4 6 - 111241 + 111242 6 @@ -34920,12 +34730,12 @@ 1 2 - 987317 + 987321 2 3 - 372963 + 372965 3 @@ -34935,7 +34745,7 @@ 4 6 - 111241 + 111242 6 @@ -34955,11 +34765,11 @@ ishandler - 59432 + 59429 block - 59432 + 59429 @@ -35528,15 +35338,15 @@ blockscope - 1438063 + 1438137 block - 1438063 + 1438137 enclosing - 1321870 + 1321939 @@ -35550,7 +35360,7 @@ 1 2 - 1438063 + 1438137 @@ -35566,12 +35376,12 @@ 1 2 - 1256011 + 1256077 2 13 - 65858 + 65861 @@ -35581,19 +35391,19 @@ jumpinfo - 253995 + 253987 id - 253995 + 253987 str - 21152 + 21151 target - 53046 + 53044 @@ -35607,7 +35417,7 @@ 1 2 - 253995 + 253987 @@ -35623,7 +35433,7 @@ 1 2 - 253995 + 253987 @@ -35685,7 +35495,7 @@ 1 2 - 16717 + 16716 2 @@ -35721,7 +35531,7 @@ 2 3 - 26428 + 26427 3 @@ -35736,7 +35546,7 @@ 5 8 - 4691 + 4690 8 @@ -35757,7 +35567,7 @@ 1 2 - 53046 + 53044 @@ -35767,19 +35577,19 @@ preprocdirects - 4431252 + 4432193 id - 4431252 + 4432193 kind - 1046 + 1047 location - 4428739 + 4429680 @@ -35793,7 +35603,7 @@ 1 2 - 4431252 + 4432193 @@ -35809,7 +35619,7 @@ 1 2 - 4431252 + 4432193 @@ -35947,7 +35757,7 @@ 1 2 - 4428635 + 4429575 25 @@ -35968,7 +35778,7 @@ 1 2 - 4428739 + 4429680 @@ -35978,15 +35788,15 @@ preprocpair - 1442296 + 1442371 begin - 1206147 + 1206210 elseelifend - 1442296 + 1442371 @@ -36000,12 +35810,12 @@ 1 2 - 985992 + 986044 2 3 - 209805 + 209816 3 @@ -36026,7 +35836,7 @@ 1 2 - 1442296 + 1442371 @@ -36036,41 +35846,41 @@ preproctrue - 782302 + 783284 branch - 782302 + 783284 preprocfalse - 327409 + 326956 branch - 327409 + 326956 preproctext - 3572638 + 3573396 id - 3572638 + 3573396 head - 2591544 + 2592094 body - 1515816 + 1516138 @@ -36084,7 +35894,7 @@ 1 2 - 3572638 + 3573396 @@ -36100,7 +35910,7 @@ 1 2 - 3572638 + 3573396 @@ -36116,12 +35926,12 @@ 1 2 - 2444464 + 2444983 2 740 - 147080 + 147111 @@ -36137,12 +35947,12 @@ 1 2 - 2529362 + 2529899 2 5 - 62181 + 62195 @@ -36158,17 +35968,17 @@ 1 2 - 1372191 + 1372482 2 6 - 113686 + 113710 6 11572 - 29939 + 29945 @@ -36184,17 +35994,17 @@ 1 2 - 1375227 + 1375519 2 7 - 114000 + 114024 7 2959 - 26589 + 26595 @@ -36204,15 +36014,15 @@ includes - 315649 + 315665 id - 315649 + 315665 included - 118074 + 118080 @@ -36226,7 +36036,7 @@ 1 2 - 315649 + 315665 @@ -36242,12 +36052,12 @@ 1 2 - 61624 + 61627 2 3 - 22109 + 22110 3 @@ -36262,7 +36072,7 @@ 6 14 - 8937 + 8938 14 @@ -36325,11 +36135,11 @@ link_parent - 40143068 + 40119536 element - 5115983 + 5112984 link_target @@ -36347,17 +36157,17 @@ 1 2 - 701934 + 701522 2 9 - 44146 + 44120 9 10 - 4369903 + 4367341 From bce253920c0ebda146bb9879f01604cefbc2d9fd Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 27 Jul 2022 10:16:55 +0200 Subject: [PATCH 522/736] C++: Fix `__builtin_shuffle` qldoc --- cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index 866ed3c314a..d18f4bdcb66 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -502,7 +502,8 @@ class BuiltInOperationBuiltInShuffleVector extends BuiltInOperation, @builtinshu * for more information. * ``` * // Concatenate every other element of 4-element vectors V1 and V2. - * V3 = __builtin_shufflevector(V1, V2, {0, 2, 4, 6}); + * M = {0, 2, 4, 6}; + * V3 = __builtin_shuffle(V1, V2, M); * ``` */ class BuiltInOperationBuiltInShuffle extends BuiltInOperation, @builtinshuffle { From 5a59354d73ac1e643aafb5c31bb02b9d37776f2f Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 27 Jul 2022 10:21:40 +0200 Subject: [PATCH 523/736] C++: Minor clean up of the builtin operations qldoc --- .../code/cpp/exprs/BuiltInOperations.qll | 58 +++++++++---------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index d18f4bdcb66..979c9c03940 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -1,5 +1,5 @@ /** - * Provides classes for modeling built-in operations. Built-in operations are + * Provides classes for modeling built-in operations. Built-in operations are * typically compiler specific and are used by libraries and generated code. */ @@ -120,8 +120,8 @@ class BuiltInNoOp extends BuiltInOperation, @noopexpr { /** * A C/C++ `__builtin_offsetof` built-in operation (used by some implementations - * of `offsetof`). The operation retains its semantics even in the presence - * of an overloaded `operator &`). This is a gcc/clang extension. + * of `offsetof`). The operation retains its semantics even in the presence + * of an overloaded `operator &`). This is a gcc/clang extension. * ``` * struct S { * int a, b; @@ -137,8 +137,8 @@ class BuiltInOperationBuiltInOffsetOf extends BuiltInOperation, @offsetofexpr { /** * A C/C++ `__INTADDR__` built-in operation (used by some implementations - * of `offsetof`). The operation retains its semantics even in the presence - * of an overloaded `operator &`). This is an EDG extension. + * of `offsetof`). The operation retains its semantics even in the presence + * of an overloaded `operator &`). This is an EDG extension. * ``` * struct S { * int a, b; @@ -479,8 +479,7 @@ class BuiltInOperationBuiltInTypesCompatibleP extends BuiltInOperation, @typesco /** * A clang `__builtin_shufflevector` expression. * - * It outputs a permutation of elements from one or two input vectors. - * Please see + * It outputs a permutation of elements from one or two input vectors. See * https://releases.llvm.org/3.7.0/tools/clang/docs/LanguageExtensions.html#langext-builtin-shufflevector * for more information. * ``` @@ -498,7 +497,7 @@ class BuiltInOperationBuiltInShuffleVector extends BuiltInOperation, @builtinshu * A gcc `__builtin_shuffle` expression. * * It outputs a permutation of elements from one or two input vectors. - * Please see https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html + * See https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html * for more information. * ``` * // Concatenate every other element of 4-element vectors V1 and V2. @@ -516,7 +515,7 @@ class BuiltInOperationBuiltInShuffle extends BuiltInOperation, @builtinshuffle { * A clang `__builtin_convertvector` expression. * * Allows for conversion of vectors of equal element count and compatible - * element types. Please see + * element types. See * https://releases.llvm.org/3.7.0/tools/clang/docs/LanguageExtensions.html#builtin-convertvector * for more information. * ``` @@ -679,10 +678,9 @@ class BuiltInOperationIsAssignable extends BuiltInOperation, @isassignable { * of the `` header). * * Returns `true` if the type is a primitive type, or a `class`, `struct` or - * `union` WITHOUT (1) virtual functions or base classes, (2) reference member - * variable or (3) multiple occurrences of base `class` objects, among other - * restrictions. Please see - * https://en.cppreference.com/w/cpp/named_req/StandardLayoutType + * `union` without (1) virtual functions or base classes, (2) reference member + * variable, or (3) multiple occurrences of base `class` objects, among other + * restrictions. See https://en.cppreference.com/w/cpp/named_req/StandardLayoutType * for more information. * ``` * bool v = __is_standard_layout(MyType); @@ -699,7 +697,7 @@ class BuiltInOperationIsStandardLayout extends BuiltInOperation, @isstandardlayo * implementations of the `` header). * * Returns `true` if instances of this type can be copied by trivial - * means. The copying is done in a manner similar to the `memcpy` + * means. The copying is done in a manner similar to the `memcpy` * function. */ class BuiltInOperationIsTriviallyCopyable extends BuiltInOperation, @istriviallycopyableexpr { @@ -713,7 +711,7 @@ class BuiltInOperationIsTriviallyCopyable extends BuiltInOperation, @istrivially * the `` header). * * Returns `true` if the type is a scalar type, a reference type or an array of - * literal types, among others. Please see + * literal types, among others. See * https://en.cppreference.com/w/cpp/named_req/LiteralType * for more information. * @@ -816,7 +814,7 @@ class BuiltInOperationIsNothrowConstructible extends BuiltInOperation, @isnothro } /** - * The `__has_finalizer` built-in operation. This is a Microsoft extension. + * The `__has_finalizer` built-in operation. This is a Microsoft extension. * * Returns `true` if the type defines a _finalizer_ `C::!C(void)`, to be called * from either the regular destructor or the garbage collector. @@ -831,10 +829,10 @@ class BuiltInOperationHasFinalizer extends BuiltInOperation, @hasfinalizerexpr { } /** - * The `__is_delegate` built-in operation. This is a Microsoft extension. + * The `__is_delegate` built-in operation. This is a Microsoft extension. * * Returns `true` if the function has been declared as a `delegate`, used in - * message forwarding. Please see + * message forwarding. See * https://docs.microsoft.com/en-us/cpp/extensions/delegate-cpp-component-extensions * for more information. */ @@ -845,9 +843,9 @@ class BuiltInOperationIsDelegate extends BuiltInOperation, @isdelegateexpr { } /** - * The `__is_interface_class` built-in operation. This is a Microsoft extension. + * The `__is_interface_class` built-in operation. This is a Microsoft extension. * - * Returns `true` if the type has been declared as an `interface`. Please see + * Returns `true` if the type has been declared as an `interface`. See * https://docs.microsoft.com/en-us/cpp/extensions/interface-class-cpp-component-extensions * for more information. */ @@ -858,9 +856,9 @@ class BuiltInOperationIsInterfaceClass extends BuiltInOperation, @isinterfacecla } /** - * The `__is_ref_array` built-in operation. This is a Microsoft extension. + * The `__is_ref_array` built-in operation. This is a Microsoft extension. * - * Returns `true` if the object passed in is a _platform array_. Please see + * Returns `true` if the object passed in is a _platform array_. See * https://docs.microsoft.com/en-us/cpp/extensions/arrays-cpp-component-extensions * for more information. * ``` @@ -875,9 +873,9 @@ class BuiltInOperationIsRefArray extends BuiltInOperation, @isrefarrayexpr { } /** - * The `__is_ref_class` built-in operation. This is a Microsoft extension. + * The `__is_ref_class` built-in operation. This is a Microsoft extension. * - * Returns `true` if the type is a _reference class_. Please see + * Returns `true` if the type is a _reference class_. See * https://docs.microsoft.com/en-us/cpp/extensions/classes-and-structs-cpp-component-extensions * for more information. * ``` @@ -892,10 +890,10 @@ class BuiltInOperationIsRefClass extends BuiltInOperation, @isrefclassexpr { } /** - * The `__is_sealed` built-in operation. This is a Microsoft extension. + * The `__is_sealed` built-in operation. This is a Microsoft extension. * * Returns `true` if a given class or virtual function is marked as `sealed`, - * meaning that it cannot be extended or overridden. The `sealed` keyword + * meaning that it cannot be extended or overridden. The `sealed` keyword * is similar to the C++11 `final` keyword. * ``` * ref class X sealed { @@ -910,7 +908,7 @@ class BuiltInOperationIsSealed extends BuiltInOperation, @issealedexpr { } /** - * The `__is_simple_value_class` built-in operation. This is a Microsoft extension. + * The `__is_simple_value_class` built-in operation. This is a Microsoft extension. * * Returns `true` if passed a value type that contains no references to the * garbage-collected heap. @@ -929,9 +927,9 @@ class BuiltInOperationIsSimpleValueClass extends BuiltInOperation, @issimplevalu } /** - * The `__is_value_class` built-in operation. This is a Microsoft extension. + * The `__is_value_class` built-in operation. This is a Microsoft extension. * - * Returns `true` if passed a value type. Please see + * Returns `true` if passed a value type. See * https://docs.microsoft.com/en-us/cpp/extensions/classes-and-structs-cpp-component-extensions * For more information. * ``` @@ -964,7 +962,7 @@ class BuiltInOperationIsFinal extends BuiltInOperation, @isfinalexpr { } /** - * The `__builtin_choose_expr` expression. This is a gcc/clang extension. + * The `__builtin_choose_expr` expression. This is a gcc/clang extension. * * The expression functions similarly to the ternary `?:` operator, except * that it is evaluated at compile-time. From a27b1ee33a897e4641d6b2d660ab284c4dc5298d Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 27 Jul 2022 10:27:43 +0200 Subject: [PATCH 524/736] C++: Improve `ErrorExpr` documentation to match current practise --- cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll index 55a59cc9588..68973293425 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll @@ -596,9 +596,12 @@ class ParenthesisExpr extends Conversion, @parexpr { } /** - * A C/C++ expression that has not been resolved. + * A C/C++ expression that could not be resolved, or that can no longer be + * represented due to a database upgrade or downgrade. * - * It is assigned `ErroneousType` as its type. + * If the expression could not be resolved, it has type `ErroneousType`. In the + * case of a database upgrade or downgrade, the original type from before the + * upgrade or downgrade is kept if that type can be represented. */ class ErrorExpr extends Expr, @errorexpr { override string toString() { result = "" } From 50e1ffda645610ff7b8dcf924b630d558ff58350 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Fri, 29 Jul 2022 10:19:13 +0200 Subject: [PATCH 525/736] Swift: put all the PCM traps into the same place --- swift/extractor/SwiftExtractor.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 666b7a90044..8ad2fe128ac 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -17,6 +17,7 @@ #include "swift/extractor/infra/TargetFile.h" using namespace codeql; +using namespace std::string_literals; static void archiveFile(const SwiftExtractorConfiguration& config, swift::SourceFile& file) { if (std::error_code ec = llvm::sys::fs::create_directories(config.trapDir)) { @@ -53,12 +54,16 @@ static std::string getFilename(swift::ModuleDecl& module, swift::SourceFile* pri if (primaryFile) { return primaryFile->getFilename().str(); } - // Several modules with different name might come from .pcm (clang module) files - // In this case we want to differentiate them - std::string filename = module.getModuleFilename().str(); - filename += "-"; - filename += module.getName().str(); - return filename; + // PCM clang module + if (module.isNonSwiftModule()) { + // Several modules with different name might come from .pcm (clang module) files + // In this case we want to differentiate them + std::string filename = "/pcms/"s + llvm::sys::path::filename(module.getModuleFilename()).str(); + filename += "-"; + filename += module.getName().str(); + return filename; + } + return module.getModuleFilename().str(); } static llvm::SmallVector getTopLevelDecls(swift::ModuleDecl& module, From 065fecc57e9a962c97d488ac121df2816f680082 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 29 Jul 2022 10:55:26 +0200 Subject: [PATCH 526/736] Swift: extract precompiled swiftmodule files Previously we were not extracting any `swiftmodule` file that was not a system or a built-in one. This was done to avoid re-extracting `swiftmodule` files that were built previously in the same build, but it turned out to be too eager, as there are legitimate cases where a non-system, non-built-in precompiled swift module can be used. An example of that is the `PackageDescription` module used in Swift Package Manager manifest files (`Package.swift`). We now relax the test and trigger module extraction on all loaded modules that do not have source files (we trigger source file extraction for those). The catch, is that we also create empty trap files for current output `swiftmodule` files (including possible alias locations set up by XCode). This means that if a following extractor run loads a previously built `swiftmodule` file, although it will trigger module extraction, this will however be skipped as it will find its target file already present (this is done via the `TargetFile` semantics). --- swift/extractor/SwiftExtractor.cpp | 37 ++++++++++++------- swift/extractor/SwiftExtractorConfiguration.h | 4 ++ swift/extractor/SwiftOutputRewrite.cpp | 12 +++++- swift/extractor/SwiftOutputRewrite.h | 5 ++- swift/extractor/main.cpp | 1 + .../partial-modules/Modules.expected | 1 + swift/integration-tests/runner.py | 2 + 7 files changed, 46 insertions(+), 16 deletions(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 666b7a90044..bbf2a2551fd 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -165,22 +165,31 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, auto inputFiles = collectInputFilenames(compiler); auto modules = collectModules(compiler); + // we want to make sure any following extractor run will not try to extract things from + // the swiftmodule files we are creating in this run, as those things will already have been + // extracted from source with more information. We do this by creating empty trap files. + // TargetFile semantics will ensure any following run trying to extract that swiftmodule will just + // skip doing it + auto outputModuleTrapSuffix = "-" + compiler.getMainModule()->getName().str().str() + ".trap"; + for (const auto& output : config.outputSwiftModules) { + TargetFile::create(output + outputModuleTrapSuffix, config.trapDir, config.getTempTrapDir()); + } for (auto& module : modules) { - // We only extract system and builtin modules here as the other "user" modules can be built - // during the build process and then re-used at a later stage. In this case, we extract the - // user code twice: once during the module build in a form of a source file, and then as - // a pre-built module during building of the dependent source files. - if (module->isSystemModule() || module->isBuiltinModule()) { - extractDeclarations(config, compiler, *module); - } else { - for (auto file : module->getFiles()) { - auto sourceFile = llvm::dyn_cast(file); - if (!sourceFile || inputFiles.count(sourceFile->getFilename().str()) == 0) { - continue; - } - archiveFile(config, *sourceFile); - extractDeclarations(config, compiler, *module, sourceFile); + bool isFromSourceFile = false; + for (auto file : module->getFiles()) { + auto sourceFile = llvm::dyn_cast(file); + if (!sourceFile) { + continue; } + isFromSourceFile = true; + if (inputFiles.count(sourceFile->getFilename().str()) == 0) { + continue; + } + archiveFile(config, *sourceFile); + extractDeclarations(config, compiler, *module, sourceFile); + } + if (!isFromSourceFile) { + extractDeclarations(config, compiler, *module); } } } diff --git a/swift/extractor/SwiftExtractorConfiguration.h b/swift/extractor/SwiftExtractorConfiguration.h index 3365da5f268..eec73e7dc21 100644 --- a/swift/extractor/SwiftExtractorConfiguration.h +++ b/swift/extractor/SwiftExtractorConfiguration.h @@ -32,5 +32,9 @@ struct SwiftExtractorConfiguration { // A temporary directory that contains build artifacts generated by the extractor during the // overall extraction process. std::string getTempArtifactDir() const { return scratchDir + "/swift-extraction-artifacts"; } + + // Output swiftmodule files. This also includes possible locations where XCode internally moves + // modules + std::vector outputSwiftModules; }; } // namespace codeql diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp index 35a38512ff8..f85290f5beb 100644 --- a/swift/extractor/SwiftOutputRewrite.cpp +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -163,7 +163,7 @@ static std::vector computeModuleAliases(llvm::StringRef modulePath, namespace codeql { std::unordered_map rewriteOutputsInPlace( - SwiftExtractorConfiguration& config, + const SwiftExtractorConfiguration& config, std::vector& CLIArgs) { std::unordered_map remapping; @@ -323,5 +323,15 @@ std::vector collectVFSFiles(const SwiftExtractorConfiguration& conf return overlays; } +std::vector getOutputSwiftModules( + const std::unordered_map& remapping) { + std::vector ret; + for (const auto& [oldPath, newPath] : remapping) { + if (llvm::StringRef(oldPath).endswith(".swiftmodule")) { + ret.push_back(oldPath); + } + } + return ret; +} } // namespace codeql diff --git a/swift/extractor/SwiftOutputRewrite.h b/swift/extractor/SwiftOutputRewrite.h index b7ee7fa3829..61ef2d98ea6 100644 --- a/swift/extractor/SwiftOutputRewrite.h +++ b/swift/extractor/SwiftOutputRewrite.h @@ -13,7 +13,7 @@ struct SwiftExtractorConfiguration; // artifacts produced by the actual Swift compiler. // Returns the map containing remapping oldpath -> newPath. std::unordered_map rewriteOutputsInPlace( - SwiftExtractorConfiguration& config, + const SwiftExtractorConfiguration& config, std::vector& CLIArgs); // Create directories for all the redirected new paths as the Swift compiler expects them to exist. @@ -29,4 +29,7 @@ void storeRemappingForVFS(const SwiftExtractorConfiguration& config, // This is separate from storeRemappingForVFS as we also collect files produced by other processes. std::vector collectVFSFiles(const SwiftExtractorConfiguration& config); +// Returns a list of output remapped swift module files +std::vector getOutputSwiftModules( + const std::unordered_map& remapping); } // namespace codeql diff --git a/swift/extractor/main.cpp b/swift/extractor/main.cpp index bde37b0ccb5..d9ad3475477 100644 --- a/swift/extractor/main.cpp +++ b/swift/extractor/main.cpp @@ -68,6 +68,7 @@ int main(int argc, char** argv) { codeql::rewriteOutputsInPlace(configuration, configuration.patchedFrontendOptions); codeql::ensureDirectoriesForNewPathsExist(remapping); codeql::storeRemappingForVFS(configuration, remapping); + configuration.outputSwiftModules = codeql::getOutputSwiftModules(remapping); std::vector args; for (auto& arg : configuration.patchedFrontendOptions) { diff --git a/swift/integration-tests/posix-only/partial-modules/Modules.expected b/swift/integration-tests/posix-only/partial-modules/Modules.expected index 4c738975f34..3cdcff9b980 100644 --- a/swift/integration-tests/posix-only/partial-modules/Modules.expected +++ b/swift/integration-tests/posix-only/partial-modules/Modules.expected @@ -1,4 +1,5 @@ | file://:0:0:0:0 | A | | file://:0:0:0:0 | B | +| file://:0:0:0:0 | PackageDescription | | file://:0:0:0:0 | main | | file://:0:0:0:0 | partial_modules | diff --git a/swift/integration-tests/runner.py b/swift/integration-tests/runner.py index b9e39325fd9..77a62bfb81b 100755 --- a/swift/integration-tests/runner.py +++ b/swift/integration-tests/runner.py @@ -62,6 +62,8 @@ def main(opts): ] if opts.check_databases: cmd.append("--check-databases") + else: + cmd.append("--no-check-databases") if opts.learn: cmd.append("--learn") cmd.extend(str(t.parent) for t in succesful_db_creation) From 604328ea5f69aeedc84ad63eebfc7d8eef769e0c Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 29 Jul 2022 12:25:11 +0200 Subject: [PATCH 527/736] Swift: strip suffix from swiftmodule trap files --- swift/extractor/SwiftExtractor.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 9d19d31c646..46204ee597e 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -56,8 +56,10 @@ static std::string getFilename(swift::ModuleDecl& module, swift::SourceFile* pri } // PCM clang module if (module.isNonSwiftModule()) { - // Several modules with different name might come from .pcm (clang module) files + // Several modules with different names might come from .pcm (clang module) files // In this case we want to differentiate them + // Moreover, pcm files may come from caches located in different directories, but are + // unambiguously identified by the base file name, so we can discard the absolute directory std::string filename = "/pcms/"s + llvm::sys::path::filename(module.getModuleFilename()).str(); filename += "-"; filename += module.getName().str(); @@ -175,9 +177,8 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, // extracted from source with more information. We do this by creating empty trap files. // TargetFile semantics will ensure any following run trying to extract that swiftmodule will just // skip doing it - auto outputModuleTrapSuffix = "-" + compiler.getMainModule()->getName().str().str() + ".trap"; for (const auto& output : config.outputSwiftModules) { - TargetFile::create(output + outputModuleTrapSuffix, config.trapDir, config.getTempTrapDir()); + TargetFile::create(output, config.trapDir, config.getTempTrapDir()); } for (auto& module : modules) { bool isFromSourceFile = false; From 099ab0e0c2e6e3b4d64718b05339661f9290466e Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 29 Jul 2022 12:26:33 +0200 Subject: [PATCH 528/736] Swift: readd .trap suffix to swiftmodule trap files --- swift/extractor/SwiftExtractor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 46204ee597e..debbc5c99af 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -178,7 +178,7 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, // TargetFile semantics will ensure any following run trying to extract that swiftmodule will just // skip doing it for (const auto& output : config.outputSwiftModules) { - TargetFile::create(output, config.trapDir, config.getTempTrapDir()); + TargetFile::create(output + ".trap", config.trapDir, config.getTempTrapDir()); } for (auto& module : modules) { bool isFromSourceFile = false; From 6091f0dbce4da7e8f653e3d2eb4479819cbed00c Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Fri, 29 Jul 2022 13:44:11 +0200 Subject: [PATCH 529/736] Use camelCase for XML acronym --- java/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll | 2 +- java/ql/test/library-tests/xml/XMLTest.expected | 2 ++ java/ql/test/library-tests/xml/XMLTest.ql | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/java/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll b/java/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll index 7e4a1b65f4c..e61d3dabe70 100644 --- a/java/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll +++ b/java/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll @@ -21,7 +21,7 @@ private class KtExpectationComment extends KtComment, ExpectationComment { override string getContents() { result = this.getText().suffix(2).trim() } } -private class XMLExpectationComment extends ExpectationComment instanceof XMLComment { +private class XmlExpectationComment extends ExpectationComment instanceof XMLComment { override string getContents() { result = this.(XMLComment).getText().trim() } override Location getLocation() { result = this.(XMLComment).getLocation() } diff --git a/java/ql/test/library-tests/xml/XMLTest.expected b/java/ql/test/library-tests/xml/XMLTest.expected index e69de29bb2d..61d3c801963 100644 --- a/java/ql/test/library-tests/xml/XMLTest.expected +++ b/java/ql/test/library-tests/xml/XMLTest.expected @@ -0,0 +1,2 @@ +| test.xml:4:5:4:32 | attribute=value | Unexpected result: hasXmlResult= | +| test.xml:5:29:5:52 | $ hasXmlResult | Missing result:hasXmlResult= | \ No newline at end of file diff --git a/java/ql/test/library-tests/xml/XMLTest.ql b/java/ql/test/library-tests/xml/XMLTest.ql index e4b8b3a0361..fb51e0a1506 100644 --- a/java/ql/test/library-tests/xml/XMLTest.ql +++ b/java/ql/test/library-tests/xml/XMLTest.ql @@ -1,8 +1,8 @@ import semmle.code.xml.XML import TestUtilities.InlineExpectationsTest -class XMLTest extends InlineExpectationsTest { - XMLTest() { this = "XMLTest" } +class XmlTest extends InlineExpectationsTest { + XmlTest() { this = "XmlTest" } override string getARelevantTag() { result = "hasXmlResult" } From ec03ebbbfca2e7b5bce8cf0875cbe8c0b0628d95 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Fri, 29 Jul 2022 13:44:25 +0200 Subject: [PATCH 530/736] Add spurious and missing test cases --- java/ql/test/library-tests/xml/test.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/test/library-tests/xml/test.xml b/java/ql/test/library-tests/xml/test.xml index cd41bd7f36c..f0d9262f09f 100644 --- a/java/ql/test/library-tests/xml/test.xml +++ b/java/ql/test/library-tests/xml/test.xml @@ -1,4 +1,6 @@ Text + Text + Text \ No newline at end of file From 5b1fe56d5f03abdec92ba85e850bd9f8ecd2370c Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Fri, 29 Jul 2022 14:04:32 +0200 Subject: [PATCH 531/736] Swift: do not deduplicate PCM variables (as the mangler crashes there sometimes) --- swift/extractor/visitors/DeclVisitor.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/swift/extractor/visitors/DeclVisitor.cpp b/swift/extractor/visitors/DeclVisitor.cpp index dc693e66a0f..0a889fb42e1 100644 --- a/swift/extractor/visitors/DeclVisitor.cpp +++ b/swift/extractor/visitors/DeclVisitor.cpp @@ -115,7 +115,9 @@ codeql::PatternBindingDecl DeclVisitor::translatePatternBindingDecl( std::optional DeclVisitor::translateVarDecl(const swift::VarDecl& decl) { std::optional entry; - if (decl.getDeclContext()->isLocalContext()) { + // We do not deduplicate variables from non-swift (PCM, clang modules) modules as the mangler + // crashes sometimes + if (decl.getDeclContext()->isLocalContext() || decl.getModuleContext()->isNonSwiftModule()) { entry.emplace(dispatcher_.assignNewLabel(decl)); } else { entry = createNamedEntry(decl); From 34edb2537fd700451dece7fd76d48deb8fc14ab8 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Fri, 29 Jul 2022 10:33:55 +0200 Subject: [PATCH 532/736] Swift: mangle TypeAliasDecls differently --- swift/extractor/visitors/DeclVisitor.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/swift/extractor/visitors/DeclVisitor.cpp b/swift/extractor/visitors/DeclVisitor.cpp index dc693e66a0f..05392711a54 100644 --- a/swift/extractor/visitors/DeclVisitor.cpp +++ b/swift/extractor/visitors/DeclVisitor.cpp @@ -296,6 +296,14 @@ std::string DeclVisitor::mangledName(const swift::ValueDecl& decl) { if (decl.getKind() == swift::DeclKind::Module) { return static_cast(decl).getRealName().str().str(); } + // In cases like this (when coming from PCM) + // typealias CFXMLTree = CFTree + // typealias CFXMLTreeRef = CFXMLTree + // mangleAnyDecl mangles both CFXMLTree and CFXMLTreeRef into 'So12CFXMLTreeRefa' + // which is not correct and causes inconsistencies. mangleEntity makes these two distinct + if (decl.getKind() == swift::DeclKind::TypeAlias) { + return mangler.mangleEntity(&decl); + } // prefix adds a couple of special symbols, we don't necessary need them return mangler.mangleAnyDecl(&decl, /* prefix = */ false); } From daf1fa3c31df2d21aa3cea0c812fc68c26614479 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 29 Jul 2022 16:27:55 +0200 Subject: [PATCH 533/736] Swift: lock built swiftmodule traps in main This should cover `-merge-modules` mode. Dumping of the configuration to the target files was moved to a separate pair of header/source files, as now it is also done in `SwiftOutputRewrite.cpp`. --- swift/extractor/BUILD.bazel | 12 +++------ swift/extractor/SwiftExtractor.cpp | 27 ++----------------- swift/extractor/SwiftExtractorConfiguration.h | 7 +++-- swift/extractor/SwiftOutputRewrite.cpp | 14 ++++++---- swift/extractor/SwiftOutputRewrite.h | 6 ++--- swift/extractor/TargetTrapFile.cpp | 23 ++++++++++++++++ swift/extractor/TargetTrapFile.h | 11 ++++++++ swift/extractor/main.cpp | 2 +- 8 files changed, 56 insertions(+), 46 deletions(-) create mode 100644 swift/extractor/TargetTrapFile.cpp create mode 100644 swift/extractor/TargetTrapFile.h diff --git a/swift/extractor/BUILD.bazel b/swift/extractor/BUILD.bazel index b22841ca819..bf5c9e65d52 100644 --- a/swift/extractor/BUILD.bazel +++ b/swift/extractor/BUILD.bazel @@ -2,14 +2,10 @@ load("//swift:rules.bzl", "swift_cc_binary") swift_cc_binary( name = "extractor", - srcs = [ - "SwiftOutputRewrite.cpp", - "SwiftOutputRewrite.h", - "SwiftExtractor.cpp", - "SwiftExtractor.h", - "SwiftExtractorConfiguration.h", - "main.cpp", - ], + srcs = glob([ + "*.h", + "*.cpp", + ]), visibility = ["//swift:__pkg__"], deps = [ "//swift/extractor/infra", diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index debbc5c99af..22f4f01a470 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -14,7 +14,7 @@ #include "swift/extractor/trap/generated/TrapClasses.h" #include "swift/extractor/trap/TrapDomain.h" #include "swift/extractor/visitors/SwiftVisitor.h" -#include "swift/extractor/infra/TargetFile.h" +#include "swift/extractor/TargetTrapFile.h" using namespace codeql; using namespace std::string_literals; @@ -80,20 +80,6 @@ static llvm::SmallVector getTopLevelDecls(swift::ModuleDecl& modul return ret; } -static void dumpArgs(TargetFile& out, const SwiftExtractorConfiguration& config) { - out << "/* extractor-args:\n"; - for (const auto& opt : config.frontendOptions) { - out << " " << std::quoted(opt) << " \\\n"; - } - out << "\n*/\n"; - - out << "/* swift-frontend-args:\n"; - for (const auto& opt : config.patchedFrontendOptions) { - out << " " << std::quoted(opt) << " \\\n"; - } - out << "\n*/\n"; -} - static void extractDeclarations(const SwiftExtractorConfiguration& config, swift::CompilerInstance& compiler, swift::ModuleDecl& module, @@ -103,12 +89,11 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, // The extractor can be called several times from different processes with // the same input file(s). Using `TargetFile` the first process will win, and the following // will just skip the work - auto trapTarget = TargetFile::create(filename + ".trap", config.trapDir, config.getTempTrapDir()); + auto trapTarget = createTargetTrapFile(config, filename); if (!trapTarget) { // another process arrived first, nothing to do for us return; } - dumpArgs(*trapTarget, config); TrapDomain trap{*trapTarget}; // TODO: remove this and recreate it with IPA when we have that @@ -172,14 +157,6 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config, auto inputFiles = collectInputFilenames(compiler); auto modules = collectModules(compiler); - // we want to make sure any following extractor run will not try to extract things from - // the swiftmodule files we are creating in this run, as those things will already have been - // extracted from source with more information. We do this by creating empty trap files. - // TargetFile semantics will ensure any following run trying to extract that swiftmodule will just - // skip doing it - for (const auto& output : config.outputSwiftModules) { - TargetFile::create(output + ".trap", config.trapDir, config.getTempTrapDir()); - } for (auto& module : modules) { bool isFromSourceFile = false; for (auto file : module->getFiles()) { diff --git a/swift/extractor/SwiftExtractorConfiguration.h b/swift/extractor/SwiftExtractorConfiguration.h index eec73e7dc21..cd4ed51cdcd 100644 --- a/swift/extractor/SwiftExtractorConfiguration.h +++ b/swift/extractor/SwiftExtractorConfiguration.h @@ -3,6 +3,8 @@ #include #include +#include "swift/extractor/infra/TargetFile.h" + namespace codeql { struct SwiftExtractorConfiguration { // The location for storing TRAP files to be imported by CodeQL engine. @@ -32,9 +34,6 @@ struct SwiftExtractorConfiguration { // A temporary directory that contains build artifacts generated by the extractor during the // overall extraction process. std::string getTempArtifactDir() const { return scratchDir + "/swift-extraction-artifacts"; } - - // Output swiftmodule files. This also includes possible locations where XCode internally moves - // modules - std::vector outputSwiftModules; }; + } // namespace codeql diff --git a/swift/extractor/SwiftOutputRewrite.cpp b/swift/extractor/SwiftOutputRewrite.cpp index f85290f5beb..b09a558d187 100644 --- a/swift/extractor/SwiftOutputRewrite.cpp +++ b/swift/extractor/SwiftOutputRewrite.cpp @@ -1,5 +1,6 @@ #include "SwiftOutputRewrite.h" #include "swift/extractor/SwiftExtractorConfiguration.h" +#include "swift/extractor/TargetTrapFile.h" #include #include @@ -323,15 +324,18 @@ std::vector collectVFSFiles(const SwiftExtractorConfiguration& conf return overlays; } -std::vector getOutputSwiftModules( - const std::unordered_map& remapping) { - std::vector ret; + +void lockOutputSwiftModuleTraps(const SwiftExtractorConfiguration& config, + const std::unordered_map& remapping) { for (const auto& [oldPath, newPath] : remapping) { if (llvm::StringRef(oldPath).endswith(".swiftmodule")) { - ret.push_back(oldPath); + if (auto target = createTargetTrapFile(config, oldPath)) { + *target << "// trap file deliberately empty\n" + "// this swiftmodule was created during the build, so its entities must have" + " been extracted directly from source files"; + } } } - return ret; } } // namespace codeql diff --git a/swift/extractor/SwiftOutputRewrite.h b/swift/extractor/SwiftOutputRewrite.h index 61ef2d98ea6..94f1eeb6aaa 100644 --- a/swift/extractor/SwiftOutputRewrite.h +++ b/swift/extractor/SwiftOutputRewrite.h @@ -29,7 +29,7 @@ void storeRemappingForVFS(const SwiftExtractorConfiguration& config, // This is separate from storeRemappingForVFS as we also collect files produced by other processes. std::vector collectVFSFiles(const SwiftExtractorConfiguration& config); -// Returns a list of output remapped swift module files -std::vector getOutputSwiftModules( - const std::unordered_map& remapping); +// Creates empty trap files for output swiftmodule files +void lockOutputSwiftModuleTraps(const SwiftExtractorConfiguration& config, + const std::unordered_map& remapping); } // namespace codeql diff --git a/swift/extractor/TargetTrapFile.cpp b/swift/extractor/TargetTrapFile.cpp new file mode 100644 index 00000000000..2275575ecfa --- /dev/null +++ b/swift/extractor/TargetTrapFile.cpp @@ -0,0 +1,23 @@ +#include "swift/extractor/TargetTrapFile.h" +#include +namespace codeql { +std::optional createTargetTrapFile(const SwiftExtractorConfiguration& configuration, + std::string_view target) { + std::string trap{target}; + trap += ".trap"; + auto ret = TargetFile::create(trap, configuration.trapDir, configuration.getTempTrapDir()); + if (ret) { + *ret << "/* extractor-args:\n"; + for (const auto& opt : configuration.frontendOptions) { + *ret << " " << std::quoted(opt) << " \\\n"; + } + *ret << "\n*/\n" + "/* swift-frontend-args:\n"; + for (const auto& opt : configuration.patchedFrontendOptions) { + *ret << " " << std::quoted(opt) << " \\\n"; + } + *ret << "\n*/\n"; + } + return ret; +} +} // namespace codeql diff --git a/swift/extractor/TargetTrapFile.h b/swift/extractor/TargetTrapFile.h new file mode 100644 index 00000000000..eb8de4c206f --- /dev/null +++ b/swift/extractor/TargetTrapFile.h @@ -0,0 +1,11 @@ +#pragma once + +#include "swift/extractor/infra/TargetFile.h" +#include "swift/extractor/SwiftExtractorConfiguration.h" + +namespace codeql { + +std::optional createTargetTrapFile(const SwiftExtractorConfiguration& configuration, + std::string_view target); + +} // namespace codeql diff --git a/swift/extractor/main.cpp b/swift/extractor/main.cpp index d9ad3475477..5f9afef4e81 100644 --- a/swift/extractor/main.cpp +++ b/swift/extractor/main.cpp @@ -68,7 +68,7 @@ int main(int argc, char** argv) { codeql::rewriteOutputsInPlace(configuration, configuration.patchedFrontendOptions); codeql::ensureDirectoriesForNewPathsExist(remapping); codeql::storeRemappingForVFS(configuration, remapping); - configuration.outputSwiftModules = codeql::getOutputSwiftModules(remapping); + codeql::lockOutputSwiftModuleTraps(configuration, remapping); std::vector args; for (auto& arg : configuration.patchedFrontendOptions) { From 45e14c96f2c984d67da7f321c7c729ef7a3c6c38 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 29 Jul 2022 16:36:08 +0200 Subject: [PATCH 534/736] Swift: extract `ModuleType` --- swift/codegen/schema.yml | 1 + swift/extractor/visitors/TypeVisitor.cpp | 10 ++++++++++ swift/extractor/visitors/TypeVisitor.h | 7 ++++--- .../lib/codeql/swift/generated/type/ModuleType.qll | 8 ++++++++ swift/ql/lib/swift.dbscheme | 3 ++- swift/ql/test/TestUtils.qll | 6 +++++- .../generated/decl/ModuleDecl/ModuleDecl.expected | 1 + .../decl/ModuleDecl/default_module_name.swift | 0 .../generated/type/ModuleType/MISSING_SOURCE.txt | 4 ---- .../generated/type/ModuleType/ModuleType.expected | 2 ++ .../generated/type/ModuleType/ModuleType.ql | 12 ++++++++++++ .../type/ModuleType/default_module_name.swift | 0 .../generated/type/ModuleType/modules.swift | 1 + 13 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/default_module_name.swift delete mode 100644 swift/ql/test/extractor-tests/generated/type/ModuleType/MISSING_SOURCE.txt create mode 100644 swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.expected create mode 100644 swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.ql create mode 100644 swift/ql/test/extractor-tests/generated/type/ModuleType/default_module_name.swift create mode 100644 swift/ql/test/extractor-tests/generated/type/ModuleType/modules.swift diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index f810bfec636..83e2c87ef4e 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -112,6 +112,7 @@ LValueType: ModuleType: _extends: Type + module: ModuleDecl PlaceholderType: _extends: Type diff --git a/swift/extractor/visitors/TypeVisitor.cpp b/swift/extractor/visitors/TypeVisitor.cpp index ddc253c90a5..d1c499a9a96 100644 --- a/swift/extractor/visitors/TypeVisitor.cpp +++ b/swift/extractor/visitors/TypeVisitor.cpp @@ -381,4 +381,14 @@ codeql::OpenedArchetypeType TypeVisitor::translateOpenedArchetypeType( fillArchetypeType(type, entry); return entry; } + +codeql::ModuleType TypeVisitor::translateModuleType(const swift::ModuleType& type) { + auto key = type.getModule()->getRealName().str().str(); + if (type.getModule()->isNonSwiftModule()) { + key += "|clang"; + } + auto entry = createTypeEntry(type, key); + entry.module = dispatcher_.fetchLabel(type.getModule()); + return entry; +} } // namespace codeql diff --git a/swift/extractor/visitors/TypeVisitor.h b/swift/extractor/visitors/TypeVisitor.h index 38e9e71b32f..21cbd96d24d 100644 --- a/swift/extractor/visitors/TypeVisitor.h +++ b/swift/extractor/visitors/TypeVisitor.h @@ -71,6 +71,7 @@ class TypeVisitor : public TypeVisitorBase { const swift::BuiltinUnsafeValueBufferType& type); codeql::BuiltinVectorType translateBuiltinVectorType(const swift::BuiltinVectorType& type); codeql::OpenedArchetypeType translateOpenedArchetypeType(const swift::OpenedArchetypeType& type); + codeql::ModuleType translateModuleType(const swift::ModuleType& type); private: void fillType(const swift::TypeBase& type, codeql::Type& entry); @@ -83,9 +84,9 @@ class TypeVisitor : public TypeVisitorBase { void emitBoundGenericType(swift::BoundGenericType* type, TrapLabel label); void emitAnyGenericType(swift::AnyGenericType* type, TrapLabel label); - template - auto createTypeEntry(const T& type) { - auto entry = dispatcher_.createEntry(type); + template + auto createTypeEntry(const T& type, const Args&... args) { + auto entry = dispatcher_.createEntry(type, args...); fillType(type, entry); return entry; } diff --git a/swift/ql/lib/codeql/swift/generated/type/ModuleType.qll b/swift/ql/lib/codeql/swift/generated/type/ModuleType.qll index 91da39854d7..866598ad431 100644 --- a/swift/ql/lib/codeql/swift/generated/type/ModuleType.qll +++ b/swift/ql/lib/codeql/swift/generated/type/ModuleType.qll @@ -1,6 +1,14 @@ // generated by codegen/codegen.py +import codeql.swift.elements.decl.ModuleDecl import codeql.swift.elements.type.Type class ModuleTypeBase extends @module_type, Type { override string getAPrimaryQlClass() { result = "ModuleType" } + + ModuleDecl getModule() { + exists(ModuleDecl x | + module_types(this, x) and + result = x.resolve() + ) + } } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 0826b2b9ef4..7c102d30524 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -264,7 +264,8 @@ l_value_types( //dir=type ); module_types( //dir=type - unique int id: @module_type + unique int id: @module_type, + int module: @module_decl ref ); placeholder_types( //dir=type diff --git a/swift/ql/test/TestUtils.qll b/swift/ql/test/TestUtils.qll index 0c04fcb5989..265513b4f4a 100644 --- a/swift/ql/test/TestUtils.qll +++ b/swift/ql/test/TestUtils.qll @@ -4,7 +4,11 @@ cached predicate toBeTested(Element e) { e instanceof File or - exists(ModuleDecl m | m = e and not m.isBuiltinModule() and not m.isSystemModule()) + exists(ModuleDecl m | + not m.isBuiltinModule() and + not m.isSystemModule() and + (m = e or m.getInterfaceType() = e) + ) or exists(Locatable loc | loc.getLocation().getFile().getName().matches("%swift/ql/test%") and 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 ef50edbe828..cfae187857a 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected @@ -1 +1,2 @@ | file://:0:0:0:0 | Foo | getInterfaceType: | module | getName: | Foo | isBuiltinModule: | no | isSystemModule: | no | +| file://:0:0:0:0 | default_module_name | getInterfaceType: | module | getName: | default_module_name | isBuiltinModule: | no | isSystemModule: | no | diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/default_module_name.swift b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/default_module_name.swift new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/extractor-tests/generated/type/ModuleType/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/type/ModuleType/MISSING_SOURCE.txt deleted file mode 100644 index 0d319d9a669..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/ModuleType/MISSING_SOURCE.txt +++ /dev/null @@ -1,4 +0,0 @@ -// generated by codegen/codegen.py - -After a swift source file is added in this directory and codegen/codegen.py is run again, test queries -will appear and this file will be deleted diff --git a/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.expected b/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.expected new file mode 100644 index 00000000000..3a688c7fbd6 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.expected @@ -0,0 +1,2 @@ +| module | getName: | module | getCanonicalType: | module | getModule: | file://:0:0:0:0 | Foo | +| module | getName: | module | getCanonicalType: | module | getModule: | file://:0:0:0:0 | default_module_name | diff --git a/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.ql b/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.ql new file mode 100644 index 00000000000..aa070b52e34 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.ql @@ -0,0 +1,12 @@ +// generated by codegen/codegen.py +import codeql.swift.elements +import TestUtils + +from ModuleType x, string getName, Type getCanonicalType, ModuleDecl getModule +where + toBeTested(x) and + not x.isUnknown() and + getName = x.getName() and + getCanonicalType = x.getCanonicalType() and + getModule = x.getModule() +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getModule:", getModule diff --git a/swift/ql/test/extractor-tests/generated/type/ModuleType/default_module_name.swift b/swift/ql/test/extractor-tests/generated/type/ModuleType/default_module_name.swift new file mode 100644 index 00000000000..e69de29bb2d diff --git a/swift/ql/test/extractor-tests/generated/type/ModuleType/modules.swift b/swift/ql/test/extractor-tests/generated/type/ModuleType/modules.swift new file mode 100644 index 00000000000..bb12ed63ddd --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/ModuleType/modules.swift @@ -0,0 +1 @@ +//codeql-extractor-options: -module-name Foo From 4ce100f9a38b0f319fdf642d8c28051d4042226b Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 29 Jul 2022 16:51:49 +0200 Subject: [PATCH 535/736] Swift: append clang module names in trap keys We have found out there can be separate declarations (`VarDecl` or `AccessorDecl`) which are effectively the same (with equal mangled name) but come from different clang modules. This is the case for example for glibc constants like `L_SET` that appear in both `SwiftGlibc` and `CDispatch`. In this patch, we simply avoid full deduplication in that case by appending the module name to the trap key for non-swift modules. A more solid solution should be found in the future. --- swift/extractor/visitors/DeclVisitor.cpp | 31 ++++++++++++++++-------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/swift/extractor/visitors/DeclVisitor.cpp b/swift/extractor/visitors/DeclVisitor.cpp index 2b3775171e9..fce28e504dd 100644 --- a/swift/extractor/visitors/DeclVisitor.cpp +++ b/swift/extractor/visitors/DeclVisitor.cpp @@ -295,19 +295,30 @@ std::string DeclVisitor::mangledName(const swift::ValueDecl& decl) { // ASTMangler::mangleAnyDecl crashes when called on `ModuleDecl` // TODO find a more unique string working also when different modules are compiled with the same // name + std::ostringstream ret; if (decl.getKind() == swift::DeclKind::Module) { - return static_cast(decl).getRealName().str().str(); + ret << static_cast(decl).getRealName().str().str(); + } else if (decl.getKind() == swift::DeclKind::TypeAlias) { + // In cases like this (when coming from PCM) + // typealias CFXMLTree = CFTree + // typealias CFXMLTreeRef = CFXMLTree + // mangleAnyDecl mangles both CFXMLTree and CFXMLTreeRef into 'So12CFXMLTreeRefa' + // which is not correct and causes inconsistencies. mangleEntity makes these two distinct + // prefix adds a couple of special symbols, we don't necessary need them + ret << mangler.mangleEntity(&decl); + } else { + // prefix adds a couple of special symbols, we don't necessary need them + ret << mangler.mangleAnyDecl(&decl, /* prefix = */ false); } - // In cases like this (when coming from PCM) - // typealias CFXMLTree = CFTree - // typealias CFXMLTreeRef = CFXMLTree - // mangleAnyDecl mangles both CFXMLTree and CFXMLTreeRef into 'So12CFXMLTreeRefa' - // which is not correct and causes inconsistencies. mangleEntity makes these two distinct - if (decl.getKind() == swift::DeclKind::TypeAlias) { - return mangler.mangleEntity(&decl); + // there can be separate declarations (`VarDecl` or `AccessorDecl`) which are effectively the same + // (with equal mangled name) but come from different clang modules. This is the case for example + // for glibc constants like `L_SET` that appear in both `SwiftGlibc` and `CDispatch`. + // For the moment, we sidestep the problem by making them separate entities in the DB + // TODO find a more solid solution + if (decl.getModuleContext()->isNonSwiftModule()) { + ret << '_' << decl.getModuleContext()->getRealName().str().str(); } - // prefix adds a couple of special symbols, we don't necessary need them - return mangler.mangleAnyDecl(&decl, /* prefix = */ false); + return ret.str(); } void DeclVisitor::fillAbstractFunctionDecl(const swift::AbstractFunctionDecl& decl, From 98a9cb0b559c0c3ed98321e5e73ab931fcdc17c9 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 29 Jul 2022 19:44:10 +0200 Subject: [PATCH 536/736] JS: Simplify type hierarchy for SourceNode The charpred caused spurious type to appear --- .../ql/lib/semmle/javascript/dataflow/Sources.qll | 14 +------------- .../RecursionPrevention/SourceNodeRange.expected | 1 - .../RecursionPrevention/SourceNodeRange.ql | 14 -------------- 3 files changed, 1 insertion(+), 28 deletions(-) delete mode 100644 javascript/ql/test/library-tests/RecursionPrevention/SourceNodeRange.expected delete mode 100644 javascript/ql/test/library-tests/RecursionPrevention/SourceNodeRange.ql diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll b/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll index 73d3f9c96ac..8813b974add 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll @@ -33,13 +33,7 @@ private import semmle.javascript.internal.CachedStages * import("fs") * ``` */ -class SourceNode extends DataFlow::Node { - SourceNode() { - this instanceof SourceNode::Range - or - none() and this instanceof SourceNode::Internal::RecursionGuard - } - +class SourceNode extends DataFlow::Node instanceof SourceNode::Range { /** * Holds if this node flows into `sink` in zero or more local (that is, * intra-procedural) steps. @@ -340,12 +334,6 @@ module SourceNode { DataFlow::functionReturnNode(this, _) } } - - /** INTERNAL. DO NOT USE. */ - module Internal { - /** An empty class that some tests are using to enforce that SourceNode is non-recursive. */ - abstract class RecursionGuard extends DataFlow::Node { } - } } private class NodeModuleSourcesNodes extends SourceNode::Range { diff --git a/javascript/ql/test/library-tests/RecursionPrevention/SourceNodeRange.expected b/javascript/ql/test/library-tests/RecursionPrevention/SourceNodeRange.expected deleted file mode 100644 index 59f6fd6e79b..00000000000 --- a/javascript/ql/test/library-tests/RecursionPrevention/SourceNodeRange.expected +++ /dev/null @@ -1 +0,0 @@ -| Success | diff --git a/javascript/ql/test/library-tests/RecursionPrevention/SourceNodeRange.ql b/javascript/ql/test/library-tests/RecursionPrevention/SourceNodeRange.ql deleted file mode 100644 index 03549a97873..00000000000 --- a/javascript/ql/test/library-tests/RecursionPrevention/SourceNodeRange.ql +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Test that fails to compile if the domain of `SourceNode::Range` depends on `SourceNode` (recursively). - * - * This tests adds a negative dependency `SourceNode --!--> SourceNode::Range` - * so that the undesired edge `SourceNode::Range --> SourceNode` completes a negative cycle. - */ - -import javascript - -class BadSourceNodeRange extends DataFlow::SourceNode::Internal::RecursionGuard { - BadSourceNodeRange() { not this instanceof DataFlow::SourceNode::Range } -} - -select "Success" From c02e7a4896629610bd5480ca0b3fc0407b95b58c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Sun, 31 Jul 2022 09:58:29 +0200 Subject: [PATCH 537/736] C++: Update test for indexing of static template variable template arguments --- cpp/ql/test/library-tests/templates/CPP-203/decls.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/ql/test/library-tests/templates/CPP-203/decls.expected b/cpp/ql/test/library-tests/templates/CPP-203/decls.expected index b311041021d..33aa6114052 100644 --- a/cpp/ql/test/library-tests/templates/CPP-203/decls.expected +++ b/cpp/ql/test/library-tests/templates/CPP-203/decls.expected @@ -15,6 +15,7 @@ | test.cpp:3:8:3:8 | operator= | | test.cpp:3:8:3:10 | Str | | test.cpp:3:8:3:10 | Str | +| test.cpp:7:16:7:16 | T | | test.cpp:8:11:8:21 | val | | test.cpp:8:19:8:19 | val | | test.cpp:10:6:10:6 | f | From 96e220588ebcf07635df88692f09f7746892087d Mon Sep 17 00:00:00 2001 From: ihsinme Date: Sun, 31 Jul 2022 13:44:50 +0300 Subject: [PATCH 538/736] Update DangerousUseMbtowc.ql --- .../src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql index 6c0bf84e81b..0b87d920b6f 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql @@ -117,7 +117,7 @@ predicate findUseCharacterConversion(Expr exp, string msg) { predicate findUseMultibyteCharacter(Expr exp, string msg) { exists(ArrayType arrayType, ArrayExpr arrayExpr | arrayExpr = exp and - arrayExpr.getArrayBase().(VariableAccess).getTarget().getADeclarationEntry().getType() = + arrayExpr.getArrayBase().getType() = arrayType and ( exists(AssignExpr assZero, SizeofExprOperator sizeofArray, Expr oneValue | From bc05cdaa4d916362d9de5ff3965ead70ea1207c7 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 1 Aug 2022 11:56:51 +0200 Subject: [PATCH 539/736] Implement fetch-codeql using 'gh codeql' --- .github/actions/fetch-codeql/action.yml | 18 ++++-------------- .github/workflows/check-qldoc.yml | 15 +++++---------- 2 files changed, 9 insertions(+), 24 deletions(-) diff --git a/.github/actions/fetch-codeql/action.yml b/.github/actions/fetch-codeql/action.yml index 13b91525237..d1f48f40047 100644 --- a/.github/actions/fetch-codeql/action.yml +++ b/.github/actions/fetch-codeql/action.yml @@ -3,22 +3,12 @@ description: Fetches the latest version of CodeQL runs: using: composite steps: - - name: Select platform - Linux - if: runner.os == 'Linux' - shell: bash - run: echo "GA_CODEQL_CLI_PLATFORM=linux64" >> $GITHUB_ENV - - - name: Select platform - MacOS - if: runner.os == 'MacOS' - shell: bash - run: echo "GA_CODEQL_CLI_PLATFORM=osx64" >> $GITHUB_ENV - - name: Fetch CodeQL shell: bash run: | - LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | grep -v beta | sort --version-sort | tail -1) - gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-$GA_CODEQL_CLI_PLATFORM.zip "$LATEST" - unzip -q -d "${RUNNER_TEMP}" codeql-$GA_CODEQL_CLI_PLATFORM.zip - echo "${RUNNER_TEMP}/codeql" >> "${GITHUB_PATH}" + gh extension install github/gh-codeql + gh codeql set-channel release + gh codeql version + gh codeql version --format=json | jq -r .unpackedLocation >> "${GITHUB_PATH}" env: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/check-qldoc.yml b/.github/workflows/check-qldoc.yml index 77f524b73e7..f0256b1758a 100644 --- a/.github/workflows/check-qldoc.yml +++ b/.github/workflows/check-qldoc.yml @@ -14,18 +14,13 @@ jobs: runs-on: ubuntu-latest steps: - - name: Install CodeQL - run: | - gh extension install github/gh-codeql - gh codeql set-channel nightly - gh codeql version - env: - GITHUB_TOKEN: ${{ github.token }} - - uses: actions/checkout@v3 with: fetch-depth: 2 + - name: Install CodeQL + uses: ./.github/actions/fetch-codeql + - name: Check QLdoc coverage shell: bash run: | @@ -34,7 +29,7 @@ jobs: changed_lib_packs="$(git diff --name-only --diff-filter=ACMRT HEAD^ HEAD | { grep -Po '^(?!swift)[a-z]*/ql/lib' || true; } | sort -u)" for pack_dir in ${changed_lib_packs}; do lang="${pack_dir%/ql/lib}" - gh codeql generate library-doc-coverage --output="${RUNNER_TEMP}/${lang}-current.txt" --dir="${pack_dir}" + codeql generate library-doc-coverage --output="${RUNNER_TEMP}/${lang}-current.txt" --dir="${pack_dir}" done git checkout HEAD^ for pack_dir in ${changed_lib_packs}; do @@ -42,7 +37,7 @@ jobs: # In this case the right thing to do is to skip the check. [[ ! -d "${pack_dir}" ]] && continue lang="${pack_dir%/ql/lib}" - gh codeql generate library-doc-coverage --output="${RUNNER_TEMP}/${lang}-baseline.txt" --dir="${pack_dir}" + codeql generate library-doc-coverage --output="${RUNNER_TEMP}/${lang}-baseline.txt" --dir="${pack_dir}" awk -F, '{gsub(/"/,""); if ($4==0 && $6=="public") print "\""$3"\"" }' "${RUNNER_TEMP}/${lang}-current.txt" | sort -u > "${RUNNER_TEMP}/current-undocumented.txt" awk -F, '{gsub(/"/,""); if ($4==0 && $6=="public") print "\""$3"\"" }' "${RUNNER_TEMP}/${lang}-baseline.txt" | sort -u > "${RUNNER_TEMP}/baseline-undocumented.txt" UNDOCUMENTED="$(grep -f <(comm -13 "${RUNNER_TEMP}/baseline-undocumented.txt" "${RUNNER_TEMP}/current-undocumented.txt") "${RUNNER_TEMP}/${lang}-current.txt" || true)" From 3b8eeb09bf4a3521c6022768e71bf4cc3b5d5544 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 1 Aug 2022 12:16:15 +0200 Subject: [PATCH 540/736] Add fetch-codeql path to Actions triggers --- .github/workflows/check-qldoc.yml | 1 + .github/workflows/csv-coverage-metrics.yml | 1 + .github/workflows/js-ml-tests.yml | 2 ++ .github/workflows/mad_regenerate-models.yml | 1 + .github/workflows/query-list.yml | 1 + .github/workflows/ruby-qltest.yml | 2 ++ .github/workflows/swift-codegen.yml | 1 + .github/workflows/swift-integration-tests.yml | 1 + .github/workflows/swift-qltest.yml | 1 + .github/workflows/validate-change-notes.yml | 2 ++ 10 files changed, 13 insertions(+) diff --git a/.github/workflows/check-qldoc.yml b/.github/workflows/check-qldoc.yml index f0256b1758a..be986d5ecf6 100644 --- a/.github/workflows/check-qldoc.yml +++ b/.github/workflows/check-qldoc.yml @@ -5,6 +5,7 @@ on: paths: - "*/ql/lib/**" - .github/workflows/check-qldoc.yml + - .github/actions/fetch-codeql branches: - main - "rc/*" diff --git a/.github/workflows/csv-coverage-metrics.yml b/.github/workflows/csv-coverage-metrics.yml index 7778221dc2f..e263572398e 100644 --- a/.github/workflows/csv-coverage-metrics.yml +++ b/.github/workflows/csv-coverage-metrics.yml @@ -12,6 +12,7 @@ on: - main paths: - ".github/workflows/csv-coverage-metrics.yml" + - ".github/actions/fetch-codeql" jobs: publish-java: diff --git a/.github/workflows/js-ml-tests.yml b/.github/workflows/js-ml-tests.yml index 65db215d8c3..0b23f91ed48 100644 --- a/.github/workflows/js-ml-tests.yml +++ b/.github/workflows/js-ml-tests.yml @@ -5,6 +5,7 @@ on: paths: - "javascript/ql/experimental/adaptivethreatmodeling/**" - .github/workflows/js-ml-tests.yml + - .github/actions/fetch-codeql - codeql-workspace.yml branches: - main @@ -13,6 +14,7 @@ on: paths: - "javascript/ql/experimental/adaptivethreatmodeling/**" - .github/workflows/js-ml-tests.yml + - .github/actions/fetch-codeql - codeql-workspace.yml workflow_dispatch: diff --git a/.github/workflows/mad_regenerate-models.yml b/.github/workflows/mad_regenerate-models.yml index d1d7e6e3791..9f16c223ec6 100644 --- a/.github/workflows/mad_regenerate-models.yml +++ b/.github/workflows/mad_regenerate-models.yml @@ -9,6 +9,7 @@ on: - main paths: - ".github/workflows/mad_regenerate-models.yml" + - ".github/actions/fetch-codeql" jobs: regenerate-models: diff --git a/.github/workflows/query-list.yml b/.github/workflows/query-list.yml index 9416b740c99..56604b17cdc 100644 --- a/.github/workflows/query-list.yml +++ b/.github/workflows/query-list.yml @@ -10,6 +10,7 @@ on: pull_request: paths: - '.github/workflows/query-list.yml' + - '.github/actions/fetch-codeql' - 'misc/scripts/generate-code-scanning-query-list.py' jobs: diff --git a/.github/workflows/ruby-qltest.yml b/.github/workflows/ruby-qltest.yml index 0cf8860d8f1..e5eb7e05ecd 100644 --- a/.github/workflows/ruby-qltest.yml +++ b/.github/workflows/ruby-qltest.yml @@ -5,6 +5,7 @@ on: paths: - "ruby/**" - .github/workflows/ruby-qltest.yml + - .github/actions/fetch-codeql - codeql-workspace.yml branches: - main @@ -13,6 +14,7 @@ on: paths: - "ruby/**" - .github/workflows/ruby-qltest.yml + - .github/actions/fetch-codeql - codeql-workspace.yml branches: - main diff --git a/.github/workflows/swift-codegen.yml b/.github/workflows/swift-codegen.yml index 46a27709717..665ee55a247 100644 --- a/.github/workflows/swift-codegen.yml +++ b/.github/workflows/swift-codegen.yml @@ -5,6 +5,7 @@ on: paths: - "swift/**" - .github/workflows/swift-codegen.yml + - .github/actions/fetch-codeql branches: - main diff --git a/.github/workflows/swift-integration-tests.yml b/.github/workflows/swift-integration-tests.yml index 591ea2b12f7..cc365809c73 100644 --- a/.github/workflows/swift-integration-tests.yml +++ b/.github/workflows/swift-integration-tests.yml @@ -5,6 +5,7 @@ on: paths: - "swift/**" - .github/workflows/swift-integration-tests.yml + - .github/actions/fetch-codeql - codeql-workspace.yml branches: - main diff --git a/.github/workflows/swift-qltest.yml b/.github/workflows/swift-qltest.yml index 915e1f331a5..76a21b0bd8a 100644 --- a/.github/workflows/swift-qltest.yml +++ b/.github/workflows/swift-qltest.yml @@ -5,6 +5,7 @@ on: paths: - "swift/**" - .github/workflows/swift-qltest.yml + - .github/actions/fetch-codeql - codeql-workspace.yml branches: - main diff --git a/.github/workflows/validate-change-notes.yml b/.github/workflows/validate-change-notes.yml index 798913746be..b06167ea905 100644 --- a/.github/workflows/validate-change-notes.yml +++ b/.github/workflows/validate-change-notes.yml @@ -5,6 +5,7 @@ on: paths: - "*/ql/*/change-notes/**/*" - ".github/workflows/validate-change-notes.yml" + - ".github/actions/fetch-codeql" branches: - main - "rc/*" @@ -12,6 +13,7 @@ on: paths: - "*/ql/*/change-notes/**/*" - ".github/workflows/validate-change-notes.yml" + - ".github/actions/fetch-codeql" jobs: check-change-note: From 2bbd2f36c9e070594a75b0f9475b987537bb0ded Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 1 Aug 2022 12:26:03 +0200 Subject: [PATCH 541/736] Fix .github/workflows/query-list.yml --- .github/workflows/query-list.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/query-list.yml b/.github/workflows/query-list.yml index 56604b17cdc..0cf1cf30422 100644 --- a/.github/workflows/query-list.yml +++ b/.github/workflows/query-list.yml @@ -30,8 +30,6 @@ jobs: - name: Download CodeQL CLI # Look under the `codeql` directory, as this is where we checked out the `github/codeql` repo uses: ./codeql/.github/actions/fetch-codeql - - name: Unzip CodeQL CLI - run: unzip -d codeql-cli codeql-linux64.zip - name: Build code scanning query list run: | python codeql/misc/scripts/generate-code-scanning-query-list.py > code-scanning-query-list.csv From 29381dc26413c30be85985e30f358e60ce1568c6 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 1 Aug 2022 12:38:59 +0200 Subject: [PATCH 542/736] Use fetch-codeql in more places --- .../workflows/csv-coverage-pr-artifacts.yml | 163 +++++++------- .github/workflows/csv-coverage-timeseries.yml | 57 +++-- .github/workflows/csv-coverage-update.yml | 52 ++--- .github/workflows/csv-coverage.yml | 65 +++--- .github/workflows/go-tests.yml | 198 +++++++----------- .github/workflows/ruby-build.yml | 31 +-- 6 files changed, 242 insertions(+), 324 deletions(-) diff --git a/.github/workflows/csv-coverage-pr-artifacts.yml b/.github/workflows/csv-coverage-pr-artifacts.yml index 379b3c5aad8..b63d85534b4 100644 --- a/.github/workflows/csv-coverage-pr-artifacts.yml +++ b/.github/workflows/csv-coverage-pr-artifacts.yml @@ -3,18 +3,20 @@ name: Check framework coverage changes on: pull_request: paths: - - '.github/workflows/csv-coverage-pr-comment.yml' - - '*/ql/src/**/*.ql' - - '*/ql/src/**/*.qll' - - '*/ql/lib/**/*.ql' - - '*/ql/lib/**/*.qll' - - 'misc/scripts/library-coverage/*.py' + - ".github/workflows/csv-coverage-pr-comment.yml" + - ".github/workflows/csv-coverage-pr-artifacts.yml" + - ".github/actions/fetch-codeql" + - "*/ql/src/**/*.ql" + - "*/ql/src/**/*.qll" + - "*/ql/lib/**/*.ql" + - "*/ql/lib/**/*.qll" + - "misc/scripts/library-coverage/*.py" # input data files - - '*/documentation/library-coverage/cwe-sink.csv' - - '*/documentation/library-coverage/frameworks.csv' + - "*/documentation/library-coverage/cwe-sink.csv" + - "*/documentation/library-coverage/frameworks.csv" branches: - main - - 'rc/*' + - "rc/*" jobs: generate: @@ -23,77 +25,72 @@ jobs: runs-on: ubuntu-latest steps: - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJSON(github.event) }} - run: echo "$GITHUB_CONTEXT" - - name: Clone self (github/codeql) - MERGE - uses: actions/checkout@v3 - with: - path: merge - - name: Clone self (github/codeql) - BASE - uses: actions/checkout@v3 - with: - fetch-depth: 2 - path: base - - run: | - git checkout HEAD^1 - git log -1 --format='%H' - working-directory: base - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: 3.8 - - name: Download CodeQL CLI - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh release download --repo "github/codeql-cli-binaries" --pattern "codeql-linux64.zip" - - name: Unzip CodeQL CLI - run: unzip -d codeql-cli codeql-linux64.zip - - name: Generate CSV files on merge commit of the PR - run: | - echo "Running generator on merge" - PATH="$PATH:codeql-cli/codeql" python merge/misc/scripts/library-coverage/generate-report.py ci merge merge - mkdir out_merge - cp framework-coverage-*.csv out_merge/ - cp framework-coverage-*.rst out_merge/ - - name: Generate CSV files on base commit of the PR - run: | - echo "Running generator on base" - PATH="$PATH:codeql-cli/codeql" python base/misc/scripts/library-coverage/generate-report.py ci base base - mkdir out_base - cp framework-coverage-*.csv out_base/ - cp framework-coverage-*.rst out_base/ - - name: Generate diff of coverage reports - run: | - python base/misc/scripts/library-coverage/compare-folders.py out_base out_merge comparison.md - - name: Upload CSV package list - uses: actions/upload-artifact@v3 - with: - name: csv-framework-coverage-merge - path: | - out_merge/framework-coverage-*.csv - out_merge/framework-coverage-*.rst - - name: Upload CSV package list - uses: actions/upload-artifact@v3 - with: - name: csv-framework-coverage-base - path: | - out_base/framework-coverage-*.csv - out_base/framework-coverage-*.rst - - name: Upload comparison results - uses: actions/upload-artifact@v3 - with: - name: comparison - path: | - comparison.md - - name: Save PR number - run: | - mkdir -p pr - echo ${{ github.event.pull_request.number }} > pr/NR - - name: Upload PR number - uses: actions/upload-artifact@v3 - with: - name: pr - path: pr/ + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJSON(github.event) }} + run: echo "$GITHUB_CONTEXT" + - name: Clone self (github/codeql) - MERGE + uses: actions/checkout@v3 + with: + path: merge + - name: Clone self (github/codeql) - BASE + uses: actions/checkout@v3 + with: + fetch-depth: 2 + path: base + - run: | + git checkout HEAD^1 + git log -1 --format='%H' + working-directory: base + - name: Set up Python 3.8 + uses: actions/setup-python@v4 + with: + python-version: 3.8 + - name: Download CodeQL CLI + uses: ./merge/.github/actions/fetch-codeql + - name: Generate CSV files on merge commit of the PR + run: | + echo "Running generator on merge" + PATH="$PATH:codeql-cli/codeql" python merge/misc/scripts/library-coverage/generate-report.py ci merge merge + mkdir out_merge + cp framework-coverage-*.csv out_merge/ + cp framework-coverage-*.rst out_merge/ + - name: Generate CSV files on base commit of the PR + run: | + echo "Running generator on base" + PATH="$PATH:codeql-cli/codeql" python base/misc/scripts/library-coverage/generate-report.py ci base base + mkdir out_base + cp framework-coverage-*.csv out_base/ + cp framework-coverage-*.rst out_base/ + - name: Generate diff of coverage reports + run: | + python base/misc/scripts/library-coverage/compare-folders.py out_base out_merge comparison.md + - name: Upload CSV package list + uses: actions/upload-artifact@v3 + with: + name: csv-framework-coverage-merge + path: | + out_merge/framework-coverage-*.csv + out_merge/framework-coverage-*.rst + - name: Upload CSV package list + uses: actions/upload-artifact@v3 + with: + name: csv-framework-coverage-base + path: | + out_base/framework-coverage-*.csv + out_base/framework-coverage-*.rst + - name: Upload comparison results + uses: actions/upload-artifact@v3 + with: + name: comparison + path: | + comparison.md + - name: Save PR number + run: | + mkdir -p pr + echo ${{ github.event.pull_request.number }} > pr/NR + - name: Upload PR number + uses: actions/upload-artifact@v3 + with: + name: pr + path: pr/ diff --git a/.github/workflows/csv-coverage-timeseries.yml b/.github/workflows/csv-coverage-timeseries.yml index 95b084ea215..2eb9d0cdf84 100644 --- a/.github/workflows/csv-coverage-timeseries.yml +++ b/.github/workflows/csv-coverage-timeseries.yml @@ -5,38 +5,31 @@ on: jobs: build: - runs-on: ubuntu-latest steps: - - name: Clone self (github/codeql) - uses: actions/checkout@v3 - with: - path: script - - name: Clone self (github/codeql) for analysis - uses: actions/checkout@v3 - with: - path: codeqlModels - fetch-depth: 0 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: 3.8 - - name: Download CodeQL CLI - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh release download --repo "github/codeql-cli-binaries" --pattern "codeql-linux64.zip" - - name: Unzip CodeQL CLI - run: unzip -d codeql-cli codeql-linux64.zip - - name: Build modeled package list - run: | - CLI=$(realpath "codeql-cli/codeql") - echo $CLI - PATH="$PATH:$CLI" python script/misc/scripts/library-coverage/generate-timeseries.py codeqlModels - - name: Upload timeseries CSV - uses: actions/upload-artifact@v3 - with: - name: framework-coverage-timeseries - path: framework-coverage-timeseries-*.csv - + - name: Clone self (github/codeql) + uses: actions/checkout@v3 + with: + path: script + - name: Clone self (github/codeql) for analysis + uses: actions/checkout@v3 + with: + path: codeqlModels + fetch-depth: 0 + - name: Set up Python 3.8 + uses: actions/setup-python@v4 + with: + python-version: 3.8 + - name: Download CodeQL CLI + uses: ./.github/actions/fetch-codeql + - name: Build modeled package list + run: | + CLI=$(realpath "codeql-cli/codeql") + echo $CLI + PATH="$PATH:$CLI" python script/misc/scripts/library-coverage/generate-timeseries.py codeqlModels + - name: Upload timeseries CSV + uses: actions/upload-artifact@v3 + with: + name: framework-coverage-timeseries + path: framework-coverage-timeseries-*.csv diff --git a/.github/workflows/csv-coverage-update.yml b/.github/workflows/csv-coverage-update.yml index c57056b6de1..58e60cc363e 100644 --- a/.github/workflows/csv-coverage-update.yml +++ b/.github/workflows/csv-coverage-update.yml @@ -12,33 +12,27 @@ jobs: runs-on: ubuntu-latest steps: - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJSON(github.event) }} - run: echo "$GITHUB_CONTEXT" - - name: Clone self (github/codeql) - uses: actions/checkout@v3 - with: - path: ql - fetch-depth: 0 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: 3.8 - - name: Download CodeQL CLI - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh release download --repo "github/codeql-cli-binaries" --pattern "codeql-linux64.zip" - - name: Unzip CodeQL CLI - run: unzip -d codeql-cli codeql-linux64.zip + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJSON(github.event) }} + run: echo "$GITHUB_CONTEXT" + - name: Clone self (github/codeql) + uses: actions/checkout@v3 + with: + path: ql + fetch-depth: 0 + - name: Set up Python 3.8 + uses: actions/setup-python@v4 + with: + python-version: 3.8 + - name: Download CodeQL CLI + uses: ./.github/actions/fetch-codeql + - name: Generate coverage files + run: | + PATH="$PATH:codeql-cli/codeql" python ql/misc/scripts/library-coverage/generate-report.py ci ql ql - - name: Generate coverage files - run: | - PATH="$PATH:codeql-cli/codeql" python ql/misc/scripts/library-coverage/generate-report.py ci ql ql - - - name: Create pull request with changes - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - python ql/misc/scripts/library-coverage/create-pr.py ql "$GITHUB_REPOSITORY" + - name: Create pull request with changes + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + python ql/misc/scripts/library-coverage/create-pr.py ql "$GITHUB_REPOSITORY" diff --git a/.github/workflows/csv-coverage.yml b/.github/workflows/csv-coverage.yml index 9a308d50265..dfce019451e 100644 --- a/.github/workflows/csv-coverage.yml +++ b/.github/workflows/csv-coverage.yml @@ -4,46 +4,39 @@ on: workflow_dispatch: inputs: qlModelShaOverride: - description: 'github/codeql repo SHA used for looking up the CSV models' + description: "github/codeql repo SHA used for looking up the CSV models" required: false jobs: build: - runs-on: ubuntu-latest steps: - - name: Clone self (github/codeql) - uses: actions/checkout@v3 - with: - path: script - - name: Clone self (github/codeql) for analysis - uses: actions/checkout@v3 - with: - path: codeqlModels - ref: ${{ github.event.inputs.qlModelShaOverride || github.ref }} - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: 3.8 - - name: Download CodeQL CLI - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh release download --repo "github/codeql-cli-binaries" --pattern "codeql-linux64.zip" - - name: Unzip CodeQL CLI - run: unzip -d codeql-cli codeql-linux64.zip - - name: Build modeled package list - run: | - PATH="$PATH:codeql-cli/codeql" python script/misc/scripts/library-coverage/generate-report.py ci codeqlModels script - - name: Upload CSV package list - uses: actions/upload-artifact@v3 - with: - name: framework-coverage-csv - path: framework-coverage-*.csv - - name: Upload RST package list - uses: actions/upload-artifact@v3 - with: - name: framework-coverage-rst - path: framework-coverage-*.rst - + - name: Clone self (github/codeql) + uses: actions/checkout@v3 + with: + path: script + - name: Clone self (github/codeql) for analysis + uses: actions/checkout@v3 + with: + path: codeqlModels + ref: ${{ github.event.inputs.qlModelShaOverride || github.ref }} + - name: Set up Python 3.8 + uses: actions/setup-python@v4 + with: + python-version: 3.8 + - name: Download CodeQL CLI + uses: ./.github/actions/fetch-codeql + - name: Build modeled package list + run: | + PATH="$PATH:codeql-cli/codeql" python script/misc/scripts/library-coverage/generate-report.py ci codeqlModels script + - name: Upload CSV package list + uses: actions/upload-artifact@v3 + with: + name: framework-coverage-csv + path: framework-coverage-*.csv + - name: Upload RST package list + uses: actions/upload-artifact@v3 + with: + name: framework-coverage-rst + path: framework-coverage-*.rst diff --git a/.github/workflows/go-tests.yml b/.github/workflows/go-tests.yml index ca126d1a3ee..6001a18aad1 100644 --- a/.github/workflows/go-tests.yml +++ b/.github/workflows/go-tests.yml @@ -4,159 +4,111 @@ on: paths: - "go/**" - .github/workflows/go-tests.yml + - .github/actions/fetch-codeql - codeql-workspace.yml jobs: - test-linux: name: Test Linux (Ubuntu) runs-on: ubuntu-latest steps: + - name: Set up Go 1.18.1 + uses: actions/setup-go@v3 + with: + go-version: 1.18.1 + id: go - - name: Set up Go 1.18.1 - uses: actions/setup-go@v3 - with: - go-version: 1.18.1 - id: go + - name: Check out code + uses: actions/checkout@v2 - - name: Set up CodeQL CLI - run: | - echo "Removing old CodeQL Directory..." - rm -rf $HOME/codeql - echo "Done" - cd $HOME - echo "Downloading CodeQL CLI..." - LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | sort --version-sort | grep -v beta | tail -1) - gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-linux64.zip "$LATEST" - echo "Done" - echo "Unpacking CodeQL CLI..." - unzip -q codeql-linux64.zip - rm -f codeql-linux64.zip - echo "Done" - env: - GITHUB_TOKEN: ${{ github.token }} + - name: Set up CodeQL CLI + uses: ./.github/actions/fetch-codeql - - name: Check out code - uses: actions/checkout@v2 + - name: Enable problem matchers in repository + shell: bash + run: 'find .github/problem-matchers -name \*.json -exec echo "::add-matcher::{}" \;' - - name: Enable problem matchers in repository - shell: bash - run: 'find .github/problem-matchers -name \*.json -exec echo "::add-matcher::{}" \;' + - name: Build + run: | + cd go + env make - - name: Build - run: | - cd go - env PATH=$PATH:$HOME/codeql make + - name: Check that all QL and Go code is autoformatted + run: | + cd go + env make check-formatting - - name: Check that all QL and Go code is autoformatted - run: | - cd go - env PATH=$PATH:$HOME/codeql make check-formatting + - name: Compile qhelp files to markdown + run: | + cd go + env QHELP_OUT_DIR=qhelp-out make qhelp-to-markdown - - name: Compile qhelp files to markdown - run: | - cd go - env PATH=$PATH:$HOME/codeql QHELP_OUT_DIR=qhelp-out make qhelp-to-markdown + - name: Upload qhelp markdown + uses: actions/upload-artifact@v2 + with: + name: qhelp-markdown + path: go/qhelp-out/**/*.md - - name: Upload qhelp markdown - uses: actions/upload-artifact@v2 - with: - name: qhelp-markdown - path: go/qhelp-out/**/*.md - - - name: Test - run: | - cd go - env PATH=$PATH:$HOME/codeql make test + - name: Test + run: | + cd go + env make test test-mac: name: Test MacOS - runs-on: macOS-latest + runs-on: macos-latest steps: - - name: Set up Go 1.18.1 - uses: actions/setup-go@v3 - with: - go-version: 1.18.1 - id: go + - name: Set up Go 1.18.1 + uses: actions/setup-go@v3 + with: + go-version: 1.18.1 + id: go - - name: Set up CodeQL CLI - run: | - echo "Removing old CodeQL Directory..." - rm -rf $HOME/codeql - echo "Done" - cd $HOME - echo "Downloading CodeQL CLI..." - LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | sort --version-sort | grep -v beta | tail -1) - gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-osx64.zip "$LATEST" - echo "Done" - echo "Unpacking CodeQL CLI..." - unzip -q codeql-osx64.zip - rm -f codeql-osx64.zip - echo "Done" - env: - GITHUB_TOKEN: ${{ github.token }} + - name: Check out code + uses: actions/checkout@v2 - - name: Check out code - uses: actions/checkout@v2 + - name: Set up CodeQL CLI + uses: ./.github/actions/fetch-codeql - - name: Enable problem matchers in repository - shell: bash - run: 'find .github/problem-matchers -name \*.json -exec echo "::add-matcher::{}" \;' + - name: Enable problem matchers in repository + shell: bash + run: 'find .github/problem-matchers -name \*.json -exec echo "::add-matcher::{}" \;' - - name: Build - run: | - cd go - env PATH=$PATH:$HOME/codeql make + - name: Build + run: | + cd go + make - - name: Test - run: | - cd go - env PATH=$PATH:$HOME/codeql make test + - name: Test + run: | + cd go + make test test-win: name: Test Windows runs-on: windows-2019 steps: - - name: Set up Go 1.18.1 - uses: actions/setup-go@v3 - with: - go-version: 1.18.1 - id: go + - name: Set up Go 1.18.1 + uses: actions/setup-go@v3 + with: + go-version: 1.18.1 + id: go - - name: Set up CodeQL CLI - run: | - echo "Removing old CodeQL Directory..." - rm -rf $HOME/codeql - echo "Done" - cd "$HOME" - echo "Downloading CodeQL CLI..." - LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | sort --version-sort | grep -v beta | tail -1) - gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-win64.zip "$LATEST" - echo "Done" - echo "Unpacking CodeQL CLI..." - unzip -q -o codeql-win64.zip - unzip -q -o codeql-win64.zip codeql/codeql.exe - rm -f codeql-win64.zip - echo "Done" - env: - GITHUB_TOKEN: ${{ github.token }} - shell: - bash + - name: Check out code + uses: actions/checkout@v2 - - name: Check out code - uses: actions/checkout@v2 + - name: Set up CodeQL CLI + uses: ./.github/actions/fetch-codeql - - name: Enable problem matchers in repository - shell: bash - run: 'find .github/problem-matchers -name \*.json -exec echo "::add-matcher::{}" \;' + - name: Enable problem matchers in repository + shell: bash + run: 'find .github/problem-matchers -name \*.json -exec echo "::add-matcher::{}" \;' - - name: Build - run: | - $Env:Path += ";$HOME\codeql" - cd go - make + - name: Build + run: | + cd go + make - - name: Test - run: | - $Env:Path += ";$HOME\codeql" - cd go - make test + - name: Test + run: | + cd go + make test diff --git a/.github/workflows/ruby-build.yml b/.github/workflows/ruby-build.yml index c402312db0e..0322408e58f 100644 --- a/.github/workflows/ruby-build.yml +++ b/.github/workflows/ruby-build.yml @@ -90,19 +90,14 @@ jobs: steps: - uses: actions/checkout@v3 - name: Fetch CodeQL - run: | - LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | grep -v beta | sort --version-sort | tail -1) - gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-linux64.zip "$LATEST" - unzip -q codeql-linux64.zip - env: - GITHUB_TOKEN: ${{ github.token }} + uses: ./.github/actions/fetch-codeql - name: Build Query Pack run: | - codeql/codeql pack create ql/lib --output target/packs - codeql/codeql pack install ql/src - codeql/codeql pack create ql/src --output target/packs + codeql pack create ql/lib --output target/packs + codeql pack install ql/src + codeql pack create ql/src --output target/packs PACK_FOLDER=$(readlink -f target/packs/codeql/ruby-queries/*) - codeql/codeql generate query-help --format=sarifv2.1.0 --output="${PACK_FOLDER}/rules.sarif" ql/src + codeql generate query-help --format=sarifv2.1.0 --output="${PACK_FOLDER}/rules.sarif" ql/src (cd ql/src; find queries \( -name '*.qhelp' -o -name '*.rb' -o -name '*.erb' \) -exec bash -c 'mkdir -p "'"${PACK_FOLDER}"'/$(dirname "{}")"' \; -exec cp "{}" "${PACK_FOLDER}/{}" \;) - uses: actions/upload-artifact@v3 with: @@ -184,14 +179,8 @@ jobs: repository: Shopify/example-ruby-app ref: 67a0decc5eb550f3a9228eda53925c3afd40dfe9 - name: Fetch CodeQL - shell: bash - run: | - LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | grep -v beta | sort --version-sort | tail -1) - gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql.zip "$LATEST" - unzip -q codeql.zip - env: - GITHUB_TOKEN: ${{ github.token }} - working-directory: ${{ runner.temp }} + uses: ./.github/actions/fetch-codeql + - name: Download Ruby bundle uses: actions/download-artifact@v3 with: @@ -215,12 +204,12 @@ jobs: - name: Run QL test shell: bash run: | - "${{ runner.temp }}/codeql/codeql" test run --search-path "${{ runner.temp }}/ruby-bundle" --additional-packs "${{ runner.temp }}/ruby-bundle" . + codeql test run --search-path "${{ runner.temp }}/ruby-bundle" --additional-packs "${{ runner.temp }}/ruby-bundle" . - name: Create database shell: bash run: | - "${{ runner.temp }}/codeql/codeql" database create --search-path "${{ runner.temp }}/ruby-bundle" --language ruby --source-root . ../database + codeql database create --search-path "${{ runner.temp }}/ruby-bundle" --language ruby --source-root . ../database - name: Analyze database shell: bash run: | - "${{ runner.temp }}/codeql/codeql" database analyze --search-path "${{ runner.temp }}/ruby-bundle" --format=sarifv2.1.0 --output=out.sarif ../database ruby-code-scanning.qls + codeql database analyze --search-path "${{ runner.temp }}/ruby-bundle" --format=sarifv2.1.0 --output=out.sarif ../database ruby-code-scanning.qls From 4d35d8da48fd03cda237c67ab162755b71080e83 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 1 Aug 2022 13:36:05 +0200 Subject: [PATCH 543/736] CI: fix Ruby build job --- .github/workflows/ruby-build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ruby-build.yml b/.github/workflows/ruby-build.yml index 0322408e58f..2f7464e47b3 100644 --- a/.github/workflows/ruby-build.yml +++ b/.github/workflows/ruby-build.yml @@ -5,6 +5,7 @@ on: paths: - "ruby/**" - .github/workflows/ruby-build.yml + - .github/actions/fetch-codeql - codeql-workspace.yml branches: - main @@ -13,6 +14,7 @@ on: paths: - "ruby/**" - .github/workflows/ruby-build.yml + - .github/actions/fetch-codeql - codeql-workspace.yml branches: - main @@ -174,12 +176,14 @@ jobs: runs-on: ${{ matrix.os }} needs: [package] steps: + - uses: actions/checkout@v3 + - name: Fetch CodeQL + uses: ./.github/actions/fetch-codeql + - uses: actions/checkout@v3 with: repository: Shopify/example-ruby-app ref: 67a0decc5eb550f3a9228eda53925c3afd40dfe9 - - name: Fetch CodeQL - uses: ./.github/actions/fetch-codeql - name: Download Ruby bundle uses: actions/download-artifact@v3 From e29676af72944768b94913b22dc51261271c4f11 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 1 Aug 2022 16:48:02 +0100 Subject: [PATCH 544/736] Swift: Add 'TaintTracking.qll'. --- swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll diff --git a/swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll b/swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll new file mode 100644 index 00000000000..b554424211f --- /dev/null +++ b/swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll @@ -0,0 +1,7 @@ +/** + * Provides classes for performing local (intra-procedural) and + * global (inter-procedural) taint-tracking analyses. + */ +module TaintTracking { + import codeql.swift.dataflow.internal.tainttracking1.TaintTrackingImpl +} From 7dc3d7d47ee32df1f77622c8b25aa7ba20bd9525 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 1 Aug 2022 18:15:05 +0200 Subject: [PATCH 545/736] CI: remove unneeded PATH definitions --- .github/workflows/csv-coverage-pr-artifacts.yml | 4 ++-- .github/workflows/csv-coverage-timeseries.yml | 4 +--- .github/workflows/csv-coverage-update.yml | 2 +- .github/workflows/csv-coverage.yml | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/csv-coverage-pr-artifacts.yml b/.github/workflows/csv-coverage-pr-artifacts.yml index b63d85534b4..3649b99387b 100644 --- a/.github/workflows/csv-coverage-pr-artifacts.yml +++ b/.github/workflows/csv-coverage-pr-artifacts.yml @@ -51,14 +51,14 @@ jobs: - name: Generate CSV files on merge commit of the PR run: | echo "Running generator on merge" - PATH="$PATH:codeql-cli/codeql" python merge/misc/scripts/library-coverage/generate-report.py ci merge merge + python merge/misc/scripts/library-coverage/generate-report.py ci merge merge mkdir out_merge cp framework-coverage-*.csv out_merge/ cp framework-coverage-*.rst out_merge/ - name: Generate CSV files on base commit of the PR run: | echo "Running generator on base" - PATH="$PATH:codeql-cli/codeql" python base/misc/scripts/library-coverage/generate-report.py ci base base + python base/misc/scripts/library-coverage/generate-report.py ci base base mkdir out_base cp framework-coverage-*.csv out_base/ cp framework-coverage-*.rst out_base/ diff --git a/.github/workflows/csv-coverage-timeseries.yml b/.github/workflows/csv-coverage-timeseries.yml index 2eb9d0cdf84..ea216f68949 100644 --- a/.github/workflows/csv-coverage-timeseries.yml +++ b/.github/workflows/csv-coverage-timeseries.yml @@ -25,9 +25,7 @@ jobs: uses: ./.github/actions/fetch-codeql - name: Build modeled package list run: | - CLI=$(realpath "codeql-cli/codeql") - echo $CLI - PATH="$PATH:$CLI" python script/misc/scripts/library-coverage/generate-timeseries.py codeqlModels + python script/misc/scripts/library-coverage/generate-timeseries.py codeqlModels - name: Upload timeseries CSV uses: actions/upload-artifact@v3 with: diff --git a/.github/workflows/csv-coverage-update.yml b/.github/workflows/csv-coverage-update.yml index 58e60cc363e..1de2149ce2e 100644 --- a/.github/workflows/csv-coverage-update.yml +++ b/.github/workflows/csv-coverage-update.yml @@ -29,7 +29,7 @@ jobs: uses: ./.github/actions/fetch-codeql - name: Generate coverage files run: | - PATH="$PATH:codeql-cli/codeql" python ql/misc/scripts/library-coverage/generate-report.py ci ql ql + python ql/misc/scripts/library-coverage/generate-report.py ci ql ql - name: Create pull request with changes env: diff --git a/.github/workflows/csv-coverage.yml b/.github/workflows/csv-coverage.yml index dfce019451e..e829957a0d3 100644 --- a/.github/workflows/csv-coverage.yml +++ b/.github/workflows/csv-coverage.yml @@ -29,7 +29,7 @@ jobs: uses: ./.github/actions/fetch-codeql - name: Build modeled package list run: | - PATH="$PATH:codeql-cli/codeql" python script/misc/scripts/library-coverage/generate-report.py ci codeqlModels script + python script/misc/scripts/library-coverage/generate-report.py ci codeqlModels script - name: Upload CSV package list uses: actions/upload-artifact@v3 with: From e3cb7cf9fed80c2eade636208da9d14895275440 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 1 Aug 2022 17:30:23 +0100 Subject: [PATCH 546/736] C++: Remove internal 'microsoft' tags from queries. --- .../Likely Bugs/Likely Typos/IncorrectNotOperatorUsage.ql | 1 - cpp/ql/src/Likely Bugs/Likely Typos/UsingStrcpyAsBoolean.ql | 3 +-- .../Likely Bugs/Likely Typos/inconsistentLoopDirection.ql | 1 - cpp/ql/src/Security/CWE/CWE-253/HResultBooleanConversion.ql | 5 ----- cpp/ql/src/Security/CWE/CWE-428/UnsafeCreateProcessCall.ql | 1 - cpp/ql/src/Security/CWE/CWE-704/WcharCharConversion.ql | 1 - .../src/Security/CWE/CWE-732/UnsafeDaclSecurityDescriptor.ql | 1 - 7 files changed, 1 insertion(+), 12 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Likely Typos/IncorrectNotOperatorUsage.ql b/cpp/ql/src/Likely Bugs/Likely Typos/IncorrectNotOperatorUsage.ql index 30664869adc..9c0230d7514 100644 --- a/cpp/ql/src/Likely Bugs/Likely Typos/IncorrectNotOperatorUsage.ql +++ b/cpp/ql/src/Likely Bugs/Likely Typos/IncorrectNotOperatorUsage.ql @@ -10,7 +10,6 @@ * @precision medium * @tags security * external/cwe/cwe-480 - * external/microsoft/c6317 */ import cpp diff --git a/cpp/ql/src/Likely Bugs/Likely Typos/UsingStrcpyAsBoolean.ql b/cpp/ql/src/Likely Bugs/Likely Typos/UsingStrcpyAsBoolean.ql index 074c82bc03b..8770d249497 100644 --- a/cpp/ql/src/Likely Bugs/Likely Typos/UsingStrcpyAsBoolean.ql +++ b/cpp/ql/src/Likely Bugs/Likely Typos/UsingStrcpyAsBoolean.ql @@ -7,8 +7,7 @@ * @problem.severity error * @precision high * @id cpp/string-copy-return-value-as-boolean - * @tags external/microsoft/C6324 - * correctness + * @tags correctness */ import cpp diff --git a/cpp/ql/src/Likely Bugs/Likely Typos/inconsistentLoopDirection.ql b/cpp/ql/src/Likely Bugs/Likely Typos/inconsistentLoopDirection.ql index 5e3af347821..9646d8b3adf 100644 --- a/cpp/ql/src/Likely Bugs/Likely Typos/inconsistentLoopDirection.ql +++ b/cpp/ql/src/Likely Bugs/Likely Typos/inconsistentLoopDirection.ql @@ -7,7 +7,6 @@ * @id cpp/inconsistent-loop-direction * @tags correctness * external/cwe/cwe-835 - * external/microsoft/6293 * @msrc.severity important */ diff --git a/cpp/ql/src/Security/CWE/CWE-253/HResultBooleanConversion.ql b/cpp/ql/src/Security/CWE/CWE-253/HResultBooleanConversion.ql index 67ba5b0c45b..eb746e2d1d2 100644 --- a/cpp/ql/src/Security/CWE/CWE-253/HResultBooleanConversion.ql +++ b/cpp/ql/src/Security/CWE/CWE-253/HResultBooleanConversion.ql @@ -8,11 +8,6 @@ * @precision high * @tags security * external/cwe/cwe-253 - * external/microsoft/C6214 - * external/microsoft/C6215 - * external/microsoft/C6216 - * external/microsoft/C6217 - * external/microsoft/C6230 */ import cpp diff --git a/cpp/ql/src/Security/CWE/CWE-428/UnsafeCreateProcessCall.ql b/cpp/ql/src/Security/CWE/CWE-428/UnsafeCreateProcessCall.ql index 7c540e9d313..ff8e85cecec 100644 --- a/cpp/ql/src/Security/CWE/CWE-428/UnsafeCreateProcessCall.ql +++ b/cpp/ql/src/Security/CWE/CWE-428/UnsafeCreateProcessCall.ql @@ -9,7 +9,6 @@ * @msrc.severity important * @tags security * external/cwe/cwe-428 - * external/microsoft/C6277 */ import cpp diff --git a/cpp/ql/src/Security/CWE/CWE-704/WcharCharConversion.ql b/cpp/ql/src/Security/CWE/CWE-704/WcharCharConversion.ql index 65551a1f138..aee4f3c8405 100644 --- a/cpp/ql/src/Security/CWE/CWE-704/WcharCharConversion.ql +++ b/cpp/ql/src/Security/CWE/CWE-704/WcharCharConversion.ql @@ -10,7 +10,6 @@ * @precision high * @tags security * external/cwe/cwe-704 - * external/microsoft/c/c6276 */ import cpp diff --git a/cpp/ql/src/Security/CWE/CWE-732/UnsafeDaclSecurityDescriptor.ql b/cpp/ql/src/Security/CWE/CWE-732/UnsafeDaclSecurityDescriptor.ql index 81998bda450..482b5daf992 100644 --- a/cpp/ql/src/Security/CWE/CWE-732/UnsafeDaclSecurityDescriptor.ql +++ b/cpp/ql/src/Security/CWE/CWE-732/UnsafeDaclSecurityDescriptor.ql @@ -11,7 +11,6 @@ * @precision high * @tags security * external/cwe/cwe-732 - * external/microsoft/C6248 */ import cpp From c63afbf7be990ea7ffd0fcf1577f0269ab54450d Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 1 Aug 2022 18:49:37 +0200 Subject: [PATCH 547/736] CI: remove left-over 'env' commands --- .github/workflows/go-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/go-tests.yml b/.github/workflows/go-tests.yml index 6001a18aad1..14114ee2003 100644 --- a/.github/workflows/go-tests.yml +++ b/.github/workflows/go-tests.yml @@ -30,12 +30,12 @@ jobs: - name: Build run: | cd go - env make + make - name: Check that all QL and Go code is autoformatted run: | cd go - env make check-formatting + make check-formatting - name: Compile qhelp files to markdown run: | @@ -51,7 +51,7 @@ jobs: - name: Test run: | cd go - env make test + make test test-mac: name: Test MacOS From f0697ff28b7735bfc7944b06b5c335e66845a401 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Mon, 1 Aug 2022 15:23:59 -0400 Subject: [PATCH 548/736] C++: fix QL4QL warnings --- .../cpp/ir/implementation/raw/internal/TranslatedElement.qll | 2 +- .../cpp/ir/implementation/raw/internal/TranslatedGlobalVar.qll | 2 +- 2 files changed, 2 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 103b5424197..38a886746ab 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 @@ -947,7 +947,7 @@ abstract class TranslatedElement extends TTranslatedElement { } /** - * Represents the IR translation of a root element, either a function or a global variable. + * The IR translation of a root element, either a function or a global variable. */ abstract class TranslatedRootElement extends TranslatedElement { TranslatedRootElement() { 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 31174d8ba5f..dde5e00361a 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 @@ -65,7 +65,7 @@ class TranslatedGlobalOrNamespaceVarInit extends TranslatedRootElement, result = this.getInstruction(InitializerVariableAddressTag()) or tag = InitializerVariableAddressTag() and - result = getChild(1).getFirstInstruction() + result = this.getChild(1).getFirstInstruction() or tag = ReturnTag() and result = this.getInstruction(AliasedUseTag()) From 3007c96c721e5f67b1a0775dc637d3f26e5267fa Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Mon, 1 Aug 2022 15:34:03 -0400 Subject: [PATCH 549/736] C++: fix a nit --- cpp/ql/test/library-tests/ir/ir/PrintConfig.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintConfig.qll b/cpp/ql/test/library-tests/ir/ir/PrintConfig.qll index a9167597691..bd77d831cb7 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintConfig.qll +++ b/cpp/ql/test/library-tests/ir/ir/PrintConfig.qll @@ -15,7 +15,7 @@ predicate locationIsInStandardHeaders(Location loc) { predicate shouldDumpFunction(Declaration decl) { not locationIsInStandardHeaders(decl.getLocation()) and ( - not decl instanceof Variable + decl instanceof Function or decl.(GlobalOrNamespaceVariable).hasInitializer() ) From cd356a5ac174a906f2c23bfaa34d2aabe1cffeec Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 2 Aug 2022 08:49:58 +0200 Subject: [PATCH 550/736] Java: Improve join-order. --- java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll b/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll index 7dd250671ad..abab4134253 100644 --- a/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll +++ b/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll @@ -19,8 +19,9 @@ private predicate runner(Method m, int n, Method runmethod) { exists(Parameter p, MethodAccess ma, int j | p = m.getParameter(n) and ma.getEnclosingCallable() = m and - runner(ma.getMethod().getSourceDeclaration(), j, _) and - ma.getArgument(j) = p.getAnAccess() + runner(pragma[only_bind_into](ma.getMethod().getSourceDeclaration()), + pragma[only_bind_into](j), _) and + ma.getArgument(pragma[only_bind_into](j)) = p.getAnAccess() ) ) } From bada5bf7c15dd0422c55b0fedaaecfb65a2f7b42 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 19 Jul 2022 13:32:51 +0100 Subject: [PATCH 551/736] Swift: Placeholder query + docs for CWE-95. --- .../Security/CWE-095/UnsafeWebViewFetch.qhelp | 32 +++++++++++++++++++ .../Security/CWE-095/UnsafeWebViewFetch.ql | 17 ++++++++++ .../CWE-095/UnsafeWebViewFetchBad.swift | 2 ++ .../CWE-095/UnsafeWebViewFetchGood.swift | 2 ++ 4 files changed, 53 insertions(+) create mode 100644 swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp create mode 100644 swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql create mode 100644 swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift create mode 100644 swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp new file mode 100644 index 00000000000..a58e46b5aff --- /dev/null +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp @@ -0,0 +1,32 @@ + + + +

    TODO

    + +
    + + +

    TODO

    + +
    + + +

    TODO

    + + + +

    TODO

    + + + +
    + + +
  • + TODO +
  • + +
    +
    \ No newline at end of file diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql new file mode 100644 index 00000000000..2c047db4906 --- /dev/null +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql @@ -0,0 +1,17 @@ +/** + * @name Unsafe WebView fetch + * @description TODO + * @kind problem + * @problem.severity warning + * @security-severity TODO + * @precision high + * @id swift/unsafe-webview-fetch + * @tags security + * external/cwe/cwe-095 + * external/cwe/cwe-079 + * external/cwe/cwe-749 + */ + +import swift + +select "TODO" diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift new file mode 100644 index 00000000000..6921ceac35d --- /dev/null +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift @@ -0,0 +1,2 @@ + +TODO diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift new file mode 100644 index 00000000000..6921ceac35d --- /dev/null +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift @@ -0,0 +1,2 @@ + +TODO From 13b2b7674d350f5642380275cdff364dc2b0e63b Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 2 Aug 2022 11:28:28 +0100 Subject: [PATCH 552/736] Go: note that numeric-typed nodes can't cause path traversal --- .../lib/semmle/go/security/TaintedPathCustomizations.qll | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll index 2fb37ecb3fa..5bdba0ea931 100644 --- a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll +++ b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll @@ -70,6 +70,15 @@ module TaintedPath { PathAsSink() { this = any(FileSystemAccess fsa).getAPathArgument() } } + /** + * A numeric-typed node, considered a sanitizer for path traversal. + */ + class NumericSanitizer extends Sanitizer { + NumericSanitizer() { + this.getType() instanceof NumericType or this.getType() instanceof BoolType + } + } + /** * A call to `filepath.Rel`, considered as a sanitizer for path traversal. */ From e04a9b580564ee3a6f270e6f0384639f24651996 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 2 Aug 2022 11:37:27 +0100 Subject: [PATCH 553/736] Add change note --- go/ql/src/change-notes/2022-08-02-path-injection-sanitizer.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 go/ql/src/change-notes/2022-08-02-path-injection-sanitizer.md diff --git a/go/ql/src/change-notes/2022-08-02-path-injection-sanitizer.md b/go/ql/src/change-notes/2022-08-02-path-injection-sanitizer.md new file mode 100644 index 00000000000..1c45e8d14e5 --- /dev/null +++ b/go/ql/src/change-notes/2022-08-02-path-injection-sanitizer.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `go/path-injection` no longer considers user-controlled numeric or boolean-typed data as potentially dangerous. From 80bba605e3a3f3ceb4c878a2fbe2c5e64a54f45e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 2 Aug 2022 12:49:21 +0200 Subject: [PATCH 554/736] Java: Fix join-order in SameNameAsSuper. --- .../Naming Conventions/SameNameAsSuper.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql b/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql index 79f5f2cf473..a9f99658f94 100644 --- a/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql +++ b/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql @@ -16,5 +16,5 @@ from RefType sub, RefType sup where sub.fromSource() and sup = sub.getASupertype() and - sub.getName() = sup.getName() + pragma[only_bind_out](sub.getName()) = pragma[only_bind_out](sup.getName()) select sub, sub.getName() + " has the same name as its supertype $@.", sup, sup.getQualifiedName() From aabdf8430075c4d1bc930799f0c68f4d3792c5ca Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 2 Aug 2022 14:29:03 +0200 Subject: [PATCH 555/736] Java: Improve join-order for `not haveIntersection`. --- java/ql/lib/semmle/code/java/Type.qll | 23 +++++++++++++++++-- .../Collections/ContainsTypeMismatch.ql | 4 ++-- .../Collections/RemoveTypeMismatch.ql | 4 ++-- .../Comparison/IncomparableEquals.ql | 2 +- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/java/ql/lib/semmle/code/java/Type.qll b/java/ql/lib/semmle/code/java/Type.qll index 2e83c31f26a..256df5d66f3 100755 --- a/java/ql/lib/semmle/code/java/Type.qll +++ b/java/ql/lib/semmle/code/java/Type.qll @@ -1194,8 +1194,8 @@ private Type erase(Type t) { } /** - * Is there a common (reflexive, transitive) subtype of the erasures of - * types `t1` and `t2`? + * Holds if there is a common (reflexive, transitive) subtype of the erasures of + * types `t1` and `t2`. * * If there is no such common subtype, then the two types are disjoint. * However, the converse is not true; for example, the parameterized types @@ -1212,6 +1212,25 @@ predicate haveIntersection(RefType t1, RefType t2) { ) } +/** + * Holds if there is no common (reflexive, transitive) subtype of the erasures + * of types `t1` and `t2`. + * + * If there is no such common subtype, then the two types are disjoint. + * However, the converse is not true; for example, the parameterized types + * `List` and `Collection` are disjoint, + * but their erasures (`List` and `Collection`, respectively) + * do have common subtypes (such as `List` itself). + * + * For the definition of the notion of *erasure* see JLS v8, section 4.6 (Type Erasure). + */ +bindingset[t1, t2] +predicate notHaveIntersection(RefType t1, RefType t2) { + exists(RefType e1, RefType e2 | e1 = erase(t1) and e2 = erase(t2) | + not erasedHaveIntersection(e1, e2) + ) +} + /** * Holds if there is a common (reflexive, transitive) subtype of the erased * types `t1` and `t2`. diff --git a/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql b/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql index b34830c3537..52d790e0e71 100644 --- a/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql +++ b/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql @@ -118,7 +118,7 @@ class MismatchedContainerAccess extends MethodAccess { containerAccess(package, type, p, this.getCallee().getSignature(), i) | t = this.getCallee().getDeclaringType() and - t.getAnAncestor().getSourceDeclaration() = g and + t.getASourceSupertype*().getSourceDeclaration() = g and g.hasQualifiedName(package, type) and indirectlyInstantiates(t, g, p, result) ) @@ -139,7 +139,7 @@ from MismatchedContainerAccess ma, RefType typearg, RefType argtype, int idx where typearg = ma.getReceiverElementType(idx).getSourceDeclaration() and argtype = ma.getArgumentType(idx) and - not haveIntersection(typearg, argtype) + notHaveIntersection(typearg, argtype) select ma.getArgument(idx), "Actual argument type '" + argtype.getName() + "'" + " is incompatible with expected argument type '" + typearg.getName() + "'." diff --git a/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql b/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql index 8fa467c2d8a..076ccc12240 100644 --- a/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql +++ b/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql @@ -88,7 +88,7 @@ class MismatchedContainerModification extends MethodAccess { containerModification(package, type, p, this.getCallee().getSignature(), i) | t = this.getCallee().getDeclaringType() and - t.getAnAncestor().getSourceDeclaration() = g and + t.getASourceSupertype*().getSourceDeclaration() = g and g.hasQualifiedName(package, type) and indirectlyInstantiates(t, g, p, result) ) @@ -109,7 +109,7 @@ from MismatchedContainerModification ma, RefType elementtype, RefType argtype, i where elementtype = ma.getReceiverElementType(idx).getSourceDeclaration() and argtype = ma.getArgumentType(idx) and - not haveIntersection(elementtype, argtype) + notHaveIntersection(elementtype, argtype) select ma.getArgument(idx), "Actual argument type '" + argtype.getName() + "'" + " is incompatible with expected argument type '" + elementtype.getName() + "'." diff --git a/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql b/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql index c083c80c21d..d98fc77af38 100644 --- a/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql +++ b/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql @@ -57,7 +57,7 @@ where else recvtp = ma.getMethod().getDeclaringType() ) and argtp = ma.getArgumentType() and - not haveIntersection(recvtp, argtp) + notHaveIntersection(recvtp, argtp) select ma, "Call to equals() comparing incomparable types " + recvtp.getName() + " and " + argtp.getName() + "." From 5181cc1295405e7fdcacc5df3cfd8b645d17c45c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 2 Aug 2022 13:43:01 +0100 Subject: [PATCH 556/736] C++: Add a 'allowInterproceduralFlow' predicate to the 'MustFlow' library to and use it instead of checking the enclosing callables after computing the dataflow graph. --- .../semmle/code/cpp/ir/dataflow/MustFlow.qll | 20 ++++++++++++++++++- .../ReturnStackAllocatedMemory.ql | 17 ++++++++++++---- .../ReturnStackAllocatedMemory.expected | 13 ------------ 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/MustFlow.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/MustFlow.qll index 1f3ea2a4d3d..08ee06acdda 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/MustFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/MustFlow.qll @@ -38,6 +38,9 @@ abstract class MustFlowConfiguration extends string { */ predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { none() } + /** Holds if this configuration allows flow from arguments to parameters. */ + predicate allowInterproceduralFlow() { any() } + /** * Holds if data must flow from `source` to `sink` for this configuration. * @@ -204,10 +207,25 @@ private module Cached { } } +/** + * Gets the enclosing callable of `n`. Unlike `n.getEnclosingCallable()`, this + * predicate ensures that joins go from `n` to the result instead of the other + * way around. + */ +pragma[inline] +private Declaration getEnclosingCallable(DataFlow::Node n) { + pragma[only_bind_into](result) = pragma[only_bind_out](n).getEnclosingCallable() +} + /** Holds if `nodeFrom` flows to `nodeTo`. */ private predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo, MustFlowConfiguration config) { exists(config) and - Cached::step(nodeFrom, nodeTo) + Cached::step(pragma[only_bind_into](nodeFrom), pragma[only_bind_into](nodeTo)) and + ( + config.allowInterproceduralFlow() + or + getEnclosingCallable(nodeFrom) = getEnclosingCallable(nodeTo) + ) or config.isAdditionalFlowStep(nodeFrom, nodeTo) } diff --git a/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql b/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql index 7eab1bd03c8..ed1d4084993 100644 --- a/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql +++ b/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql @@ -52,6 +52,18 @@ class ReturnStackAllocatedMemoryConfig extends MustFlowConfiguration { ) } + // We disable flow into callables in this query as we'd otherwise get a result on this piece of code: + // ```cpp + // int* id(int* px) { + // return px; // this returns the local variable `x`, but it's fine as the local variable isn't declared in this scope. + // } + // void f() { + // int x; + // int* px = id(&x); + // } + // ``` + override predicate allowInterproceduralFlow() { none() } + /** * This configuration intentionally conflates addresses of fields and their object, and pointer offsets * with their base pointer as this allows us to detect cases where an object's address flows to a @@ -77,9 +89,6 @@ from ReturnStackAllocatedMemoryConfig conf where conf.hasFlowPath(pragma[only_bind_into](source), pragma[only_bind_into](sink)) and - source.getNode().asInstruction() = var and - // Only raise an alert if we're returning from the _same_ callable as the on that - // declared the stack variable. - var.getEnclosingFunction() = sink.getNode().getEnclosingCallable() + source.getNode().asInstruction() = var select sink.getNode(), source, sink, "May return stack-allocated memory from $@.", var.getAst(), var.getAst().toString() diff --git a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/ReturnStackAllocatedMemory/ReturnStackAllocatedMemory.expected b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/ReturnStackAllocatedMemory/ReturnStackAllocatedMemory.expected index 6b8a59793a3..8f9d91fc1ad 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/ReturnStackAllocatedMemory/ReturnStackAllocatedMemory.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/ReturnStackAllocatedMemory/ReturnStackAllocatedMemory.expected @@ -100,12 +100,6 @@ edges | test.cpp:190:10:190:13 | Unary | test.cpp:190:10:190:13 | (reference dereference) | | test.cpp:190:10:190:13 | Unary | test.cpp:190:10:190:13 | (reference to) | | test.cpp:190:10:190:13 | pRef | test.cpp:190:10:190:13 | Unary | -| test.cpp:225:14:225:15 | px | test.cpp:226:10:226:11 | Load | -| test.cpp:226:10:226:11 | Load | test.cpp:226:10:226:11 | px | -| test.cpp:226:10:226:11 | px | test.cpp:226:10:226:11 | StoreValue | -| test.cpp:231:16:231:17 | & ... | test.cpp:225:14:225:15 | px | -| test.cpp:231:17:231:17 | Unary | test.cpp:231:16:231:17 | & ... | -| test.cpp:231:17:231:17 | x | test.cpp:231:17:231:17 | Unary | nodes | test.cpp:17:9:17:11 | & ... | semmle.label | & ... | | test.cpp:17:9:17:11 | StoreValue | semmle.label | StoreValue | @@ -221,13 +215,6 @@ nodes | test.cpp:190:10:190:13 | Unary | semmle.label | Unary | | test.cpp:190:10:190:13 | Unary | semmle.label | Unary | | test.cpp:190:10:190:13 | pRef | semmle.label | pRef | -| test.cpp:225:14:225:15 | px | semmle.label | px | -| test.cpp:226:10:226:11 | Load | semmle.label | Load | -| test.cpp:226:10:226:11 | StoreValue | semmle.label | StoreValue | -| test.cpp:226:10:226:11 | px | semmle.label | px | -| test.cpp:231:16:231:17 | & ... | semmle.label | & ... | -| test.cpp:231:17:231:17 | Unary | semmle.label | Unary | -| test.cpp:231:17:231:17 | x | semmle.label | x | #select | test.cpp:17:9:17:11 | StoreValue | test.cpp:17:10:17:11 | mc | test.cpp:17:9:17:11 | StoreValue | May return stack-allocated memory from $@. | test.cpp:17:10:17:11 | mc | mc | | test.cpp:25:9:25:11 | StoreValue | test.cpp:23:18:23:19 | mc | test.cpp:25:9:25:11 | StoreValue | May return stack-allocated memory from $@. | test.cpp:23:18:23:19 | mc | mc | From f385041ab344d74491db112b0873faead4db71b7 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 2 Aug 2022 14:07:22 +0100 Subject: [PATCH 557/736] C++: Add change note. --- .../lib/change-notes/2022-08-02-must-flow-local-only-flow.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2022-08-02-must-flow-local-only-flow.md diff --git a/cpp/ql/lib/change-notes/2022-08-02-must-flow-local-only-flow.md b/cpp/ql/lib/change-notes/2022-08-02-must-flow-local-only-flow.md new file mode 100644 index 00000000000..820822a5396 --- /dev/null +++ b/cpp/ql/lib/change-notes/2022-08-02-must-flow-local-only-flow.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* A new class predicate `MustFlowConfiguration::allowInterproceduralFlow` has been added to the `semmle.code.cpp.ir.dataflow.MustFlow` library. The new predicate can be overridden to disable interprocedural flow. From 64704057cbb8424fec2190fb011712fa323fd36b Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 2 Aug 2022 16:33:21 +0200 Subject: [PATCH 558/736] CI: fix path triggers --- .github/workflows/check-qldoc.yml | 2 +- .github/workflows/csv-coverage-metrics.yml | 2 +- .github/workflows/csv-coverage-pr-artifacts.yml | 2 +- .github/workflows/go-tests.yml | 2 +- .github/workflows/js-ml-tests.yml | 4 ++-- .github/workflows/mad_regenerate-models.yml | 2 +- .github/workflows/query-list.yml | 2 +- .github/workflows/ruby-build.yml | 4 ++-- .github/workflows/ruby-qltest.yml | 4 ++-- .github/workflows/swift-codegen.yml | 2 +- .github/workflows/swift-integration-tests.yml | 2 +- .github/workflows/swift-qltest.yml | 2 +- .github/workflows/validate-change-notes.yml | 4 ++-- 13 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/check-qldoc.yml b/.github/workflows/check-qldoc.yml index be986d5ecf6..cc7523162aa 100644 --- a/.github/workflows/check-qldoc.yml +++ b/.github/workflows/check-qldoc.yml @@ -5,7 +5,7 @@ on: paths: - "*/ql/lib/**" - .github/workflows/check-qldoc.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml branches: - main - "rc/*" diff --git a/.github/workflows/csv-coverage-metrics.yml b/.github/workflows/csv-coverage-metrics.yml index e263572398e..7555533ab98 100644 --- a/.github/workflows/csv-coverage-metrics.yml +++ b/.github/workflows/csv-coverage-metrics.yml @@ -12,7 +12,7 @@ on: - main paths: - ".github/workflows/csv-coverage-metrics.yml" - - ".github/actions/fetch-codeql" + - ".github/actions/fetch-codeql/action.yml" jobs: publish-java: diff --git a/.github/workflows/csv-coverage-pr-artifacts.yml b/.github/workflows/csv-coverage-pr-artifacts.yml index b63d85534b4..51e4dc73b39 100644 --- a/.github/workflows/csv-coverage-pr-artifacts.yml +++ b/.github/workflows/csv-coverage-pr-artifacts.yml @@ -5,7 +5,7 @@ on: paths: - ".github/workflows/csv-coverage-pr-comment.yml" - ".github/workflows/csv-coverage-pr-artifacts.yml" - - ".github/actions/fetch-codeql" + - ".github/actions/fetch-codeql/action.yml" - "*/ql/src/**/*.ql" - "*/ql/src/**/*.qll" - "*/ql/lib/**/*.ql" diff --git a/.github/workflows/go-tests.yml b/.github/workflows/go-tests.yml index 6001a18aad1..c1d3c28b809 100644 --- a/.github/workflows/go-tests.yml +++ b/.github/workflows/go-tests.yml @@ -4,7 +4,7 @@ on: paths: - "go/**" - .github/workflows/go-tests.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml - codeql-workspace.yml jobs: test-linux: diff --git a/.github/workflows/js-ml-tests.yml b/.github/workflows/js-ml-tests.yml index 0b23f91ed48..c932432530b 100644 --- a/.github/workflows/js-ml-tests.yml +++ b/.github/workflows/js-ml-tests.yml @@ -5,7 +5,7 @@ on: paths: - "javascript/ql/experimental/adaptivethreatmodeling/**" - .github/workflows/js-ml-tests.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml - codeql-workspace.yml branches: - main @@ -14,7 +14,7 @@ on: paths: - "javascript/ql/experimental/adaptivethreatmodeling/**" - .github/workflows/js-ml-tests.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml - codeql-workspace.yml workflow_dispatch: diff --git a/.github/workflows/mad_regenerate-models.yml b/.github/workflows/mad_regenerate-models.yml index 9f16c223ec6..0abc8936911 100644 --- a/.github/workflows/mad_regenerate-models.yml +++ b/.github/workflows/mad_regenerate-models.yml @@ -9,7 +9,7 @@ on: - main paths: - ".github/workflows/mad_regenerate-models.yml" - - ".github/actions/fetch-codeql" + - ".github/actions/fetch-codeql/action.yml" jobs: regenerate-models: diff --git a/.github/workflows/query-list.yml b/.github/workflows/query-list.yml index 0cf1cf30422..efb295dfcf8 100644 --- a/.github/workflows/query-list.yml +++ b/.github/workflows/query-list.yml @@ -10,7 +10,7 @@ on: pull_request: paths: - '.github/workflows/query-list.yml' - - '.github/actions/fetch-codeql' + - '.github/actions/fetch-codeql/action.yml' - 'misc/scripts/generate-code-scanning-query-list.py' jobs: diff --git a/.github/workflows/ruby-build.yml b/.github/workflows/ruby-build.yml index 2f7464e47b3..6ad627aab48 100644 --- a/.github/workflows/ruby-build.yml +++ b/.github/workflows/ruby-build.yml @@ -5,7 +5,7 @@ on: paths: - "ruby/**" - .github/workflows/ruby-build.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml - codeql-workspace.yml branches: - main @@ -14,7 +14,7 @@ on: paths: - "ruby/**" - .github/workflows/ruby-build.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml - codeql-workspace.yml branches: - main diff --git a/.github/workflows/ruby-qltest.yml b/.github/workflows/ruby-qltest.yml index e5eb7e05ecd..97235b722ba 100644 --- a/.github/workflows/ruby-qltest.yml +++ b/.github/workflows/ruby-qltest.yml @@ -5,7 +5,7 @@ on: paths: - "ruby/**" - .github/workflows/ruby-qltest.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml - codeql-workspace.yml branches: - main @@ -14,7 +14,7 @@ on: paths: - "ruby/**" - .github/workflows/ruby-qltest.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml - codeql-workspace.yml branches: - main diff --git a/.github/workflows/swift-codegen.yml b/.github/workflows/swift-codegen.yml index 665ee55a247..5700045430d 100644 --- a/.github/workflows/swift-codegen.yml +++ b/.github/workflows/swift-codegen.yml @@ -5,7 +5,7 @@ on: paths: - "swift/**" - .github/workflows/swift-codegen.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml branches: - main diff --git a/.github/workflows/swift-integration-tests.yml b/.github/workflows/swift-integration-tests.yml index cc365809c73..4d4248b64e3 100644 --- a/.github/workflows/swift-integration-tests.yml +++ b/.github/workflows/swift-integration-tests.yml @@ -5,7 +5,7 @@ on: paths: - "swift/**" - .github/workflows/swift-integration-tests.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml - codeql-workspace.yml branches: - main diff --git a/.github/workflows/swift-qltest.yml b/.github/workflows/swift-qltest.yml index 76a21b0bd8a..3cbcf629c98 100644 --- a/.github/workflows/swift-qltest.yml +++ b/.github/workflows/swift-qltest.yml @@ -5,7 +5,7 @@ on: paths: - "swift/**" - .github/workflows/swift-qltest.yml - - .github/actions/fetch-codeql + - .github/actions/fetch-codeql/action.yml - codeql-workspace.yml branches: - main diff --git a/.github/workflows/validate-change-notes.yml b/.github/workflows/validate-change-notes.yml index b06167ea905..44e0dc6df29 100644 --- a/.github/workflows/validate-change-notes.yml +++ b/.github/workflows/validate-change-notes.yml @@ -5,7 +5,7 @@ on: paths: - "*/ql/*/change-notes/**/*" - ".github/workflows/validate-change-notes.yml" - - ".github/actions/fetch-codeql" + - ".github/actions/fetch-codeql/action.yml" branches: - main - "rc/*" @@ -13,7 +13,7 @@ on: paths: - "*/ql/*/change-notes/**/*" - ".github/workflows/validate-change-notes.yml" - - ".github/actions/fetch-codeql" + - ".github/actions/fetch-codeql/action.yml" jobs: check-change-note: From b21fa0e2b0c25c3cd36877b774f522eec22d7eb2 Mon Sep 17 00:00:00 2001 From: Keith Hoodlet <22803099+securingdev@users.noreply.github.com> Date: Tue, 2 Aug 2022 10:49:45 -0400 Subject: [PATCH 559/736] Update Other section with example exit code Add troubleshooting steps to remediate issues with the kernel killing a process. --- docs/codeql/codeql-cli/exit-codes.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-cli/exit-codes.rst b/docs/codeql/codeql-cli/exit-codes.rst index 5d9a0d434b6..04d4d93dc07 100644 --- a/docs/codeql/codeql-cli/exit-codes.rst +++ b/docs/codeql/codeql-cli/exit-codes.rst @@ -71,4 +71,4 @@ Other ----- In the case of really severe problems within the JVM that runs ``codeql``, it might return a nonzero exit code of its own choosing. -This should only happen if something is severely wrong with the CodeQL installation. \ No newline at end of file +This should only happen if something is severely wrong with the CodeQL installation, or a memory issue with the host system running the CodeQL process. For example, Unix systems may return `Exit Code 137` to indicate that the kernel has killed a process that CodeQL has started. One way to troubleshoot this issue is to modify your `--ram=` flag for the `codeql database analyze` step and re-run your workflow. From 759fd6cc0b0f8ff9396c36ecb5dabf3b5c597408 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 1 Aug 2022 12:56:57 +0200 Subject: [PATCH 560/736] Use 'gh codeql' with the nightly release for CI jobs --- .github/actions/fetch-codeql/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/fetch-codeql/action.yml b/.github/actions/fetch-codeql/action.yml index d1f48f40047..02098892663 100644 --- a/.github/actions/fetch-codeql/action.yml +++ b/.github/actions/fetch-codeql/action.yml @@ -7,7 +7,7 @@ runs: shell: bash run: | gh extension install github/gh-codeql - gh codeql set-channel release + gh codeql set-channel nightly gh codeql version gh codeql version --format=json | jq -r .unpackedLocation >> "${GITHUB_PATH}" env: From c95f17fdf2975b94caf714d1a4683c73ab3ee9f3 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 2 Aug 2022 21:28:00 +0100 Subject: [PATCH 561/736] Make java/path-injection recognise create-file MaD sinks --- java/ql/src/Security/CWE/CWE-022/TaintedPath.ql | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql b/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql index 306b835b98b..9e1a13b81ea 100644 --- a/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql +++ b/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql @@ -34,7 +34,12 @@ class TaintedPathConfig extends TaintTracking::Configuration { override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } override predicate isSink(DataFlow::Node sink) { - exists(Expr e | e = sink.asExpr() | e = any(PathCreation p).getAnInput() and not guarded(e)) + ( + sink.asExpr() = any(PathCreation p).getAnInput() + or + sinkNode(sink, "create-file") + ) and + not guarded(sink.asExpr()) } override predicate isSanitizer(DataFlow::Node node) { From 81f3bcd80249f76826c46eca5c2e4e99bbe8c409 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 2 Aug 2022 21:30:06 +0100 Subject: [PATCH 562/736] Don't require a PathCreation for every tainted-path sink --- java/ql/src/Security/CWE/CWE-022/TaintedPath.ql | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql b/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql index 9e1a13b81ea..8743673eea7 100644 --- a/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql +++ b/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql @@ -49,9 +49,7 @@ class TaintedPathConfig extends TaintTracking::Configuration { } } -from DataFlow::PathNode source, DataFlow::PathNode sink, PathCreation p, TaintedPathConfig conf -where - sink.getNode().asExpr() = p.getAnInput() and - conf.hasFlowPath(source, sink) -select p, source, sink, "$@ flows to here and is used in a path.", source.getNode(), +from DataFlow::PathNode source, DataFlow::PathNode sink, TaintedPathConfig conf +where conf.hasFlowPath(source, sink) +select sink, source, sink, "$@ flows to here and is used in a path.", source.getNode(), "User-provided value" From d8592a2b05592905227aeedfe9973c1b3f398d35 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 3 Aug 2022 09:02:38 +0200 Subject: [PATCH 563/736] Ruby: PrintAST: more stable order for synthesized nodes --- ruby/ql/lib/codeql/ruby/printAst.qll | 12 +++- .../library-tests/ast/AstDesugar.expected | 56 +++++++++---------- 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/printAst.qll b/ruby/ql/lib/codeql/ruby/printAst.qll index 3056e9aa49f..d66e7fe0535 100644 --- a/ruby/ql/lib/codeql/ruby/printAst.qll +++ b/ruby/ql/lib/codeql/ruby/printAst.qll @@ -9,6 +9,7 @@ private import AST private import codeql.ruby.Regexp as RE private import codeql.ruby.ast.internal.Synthesis +private import ast.internal.AST /** * The query can extend this class to control which nodes are printed. @@ -112,13 +113,22 @@ class PrintRegularAstNode extends PrintAstNode, TPrintRegularAstNode { ) } + private int getSynthAstNodeIndex() { + not astNode.isSynthesized() and result = -10 + or + astNode = getSynthChild(astNode.getParent(), result) + } + override int getOrder() { this = rank[result](PrintRegularAstNode p, Location l, File f | l = p.getLocation() and f = l.getFile() | - p order by f.getBaseName(), f.getAbsolutePath(), l.getStartLine(), l.getStartColumn() + p + order by + f.getBaseName(), f.getAbsolutePath(), l.getStartLine(), l.getStartColumn(), + l.getEndLine(), l.getEndColumn(), p.getSynthAstNodeIndex() ) } diff --git a/ruby/ql/test/library-tests/ast/AstDesugar.expected b/ruby/ql/test/library-tests/ast/AstDesugar.expected index 956893e944f..8be5246ab88 100644 --- a/ruby/ql/test/library-tests/ast/AstDesugar.expected +++ b/ruby/ql/test/library-tests/ast/AstDesugar.expected @@ -86,10 +86,10 @@ calls/calls.rb: # 316| getStmt: [SetterMethodCall] call to foo= # 316| getReceiver: [SelfVariableAccess] self # 316| getArgument: [AssignExpr] ... = ... -# 316| getAnOperand/getRightOperand: [MethodCall] call to [] -# 316| getArgument: [IntegerLiteral] 0 -# 316| getReceiver: [LocalVariableAccess] __synth__0 # 316| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 +# 316| getAnOperand/getRightOperand: [MethodCall] call to [] +# 316| getReceiver: [LocalVariableAccess] __synth__0 +# 316| getArgument: [IntegerLiteral] 0 # 316| getStmt: [LocalVariableAccess] __synth__0__1 # 316| getStmt: [AssignExpr] ... = ... # 316| getAnOperand/getLeftOperand: [MethodCall] call to bar @@ -97,12 +97,12 @@ calls/calls.rb: # 316| getStmt: [SetterMethodCall] call to bar= # 316| getReceiver: [SelfVariableAccess] self # 316| getArgument: [AssignExpr] ... = ... +# 316| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 316| getAnOperand/getRightOperand: [MethodCall] call to [] +# 316| getReceiver: [LocalVariableAccess] __synth__0 # 316| getArgument: [RangeLiteral] _ .. _ # 316| getBegin: [IntegerLiteral] 1 # 316| getEnd: [IntegerLiteral] -2 -# 316| getReceiver: [LocalVariableAccess] __synth__0 -# 316| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 316| getStmt: [LocalVariableAccess] __synth__0__1 # 316| getStmt: [AssignExpr] ... = ... # 316| getAnOperand/getLeftOperand: [ElementReference] ...[...] @@ -111,13 +111,14 @@ calls/calls.rb: # 316| getReceiver: [MethodCall] call to foo # 316| getReceiver: [SelfVariableAccess] self # 316| getArgument: [AssignExpr] ... = ... -# 316| getAnOperand/getRightOperand: [MethodCall] call to [] -# 316| getArgument: [IntegerLiteral] -1 -# 316| getReceiver: [LocalVariableAccess] __synth__0 # 316| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 +# 316| getAnOperand/getRightOperand: [MethodCall] call to [] +# 316| getReceiver: [LocalVariableAccess] __synth__0 +# 316| getArgument: [IntegerLiteral] -1 # 316| getArgument: [IntegerLiteral] 4 # 316| getStmt: [LocalVariableAccess] __synth__0__1 # 316| getStmt: [AssignExpr] ... = ... +# 316| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0 # 316| getAnOperand/getRightOperand: [SplatExpr] * ... # 316| getAnOperand/getOperand/getReceiver: [ArrayLiteral] [...] # 316| getDesugared: [MethodCall] call to [] @@ -126,14 +127,13 @@ calls/calls.rb: # 316| getArgument: [IntegerLiteral] 2 # 316| getArgument: [IntegerLiteral] 3 # 316| getArgument: [IntegerLiteral] 4 -# 316| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0 # 317| [AssignExpr] ... = ... # 317| getDesugared: [StmtSequence] ... # 317| getStmt: [AssignExpr] ... = ... # 317| getAnOperand/getLeftOperand: [LocalVariableAccess] a # 317| getAnOperand/getRightOperand: [MethodCall] call to [] -# 317| getArgument: [IntegerLiteral] 0 # 317| getReceiver: [LocalVariableAccess] __synth__0 +# 317| getArgument: [IntegerLiteral] 0 # 317| getStmt: [AssignExpr] ... = ... # 317| getAnOperand/getLeftOperand: [ElementReference] ...[...] # 317| getDesugared: [StmtSequence] ... @@ -141,15 +141,16 @@ calls/calls.rb: # 317| getReceiver: [MethodCall] call to foo # 317| getReceiver: [SelfVariableAccess] self # 317| getArgument: [AssignExpr] ... = ... +# 317| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 317| getAnOperand/getRightOperand: [MethodCall] call to [] +# 317| getReceiver: [LocalVariableAccess] __synth__0 # 317| getArgument: [RangeLiteral] _ .. _ # 317| getBegin: [IntegerLiteral] 1 # 317| getEnd: [IntegerLiteral] -1 -# 317| getReceiver: [LocalVariableAccess] __synth__0 -# 317| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 317| getArgument: [IntegerLiteral] 5 # 317| getStmt: [LocalVariableAccess] __synth__0__1 # 317| getStmt: [AssignExpr] ... = ... +# 317| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0 # 317| getAnOperand/getRightOperand: [SplatExpr] * ... # 317| getAnOperand/getOperand/getReceiver: [ArrayLiteral] [...] # 317| getDesugared: [MethodCall] call to [] @@ -157,7 +158,6 @@ calls/calls.rb: # 317| getArgument: [IntegerLiteral] 1 # 317| getArgument: [IntegerLiteral] 2 # 317| getArgument: [IntegerLiteral] 3 -# 317| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0 # 318| [AssignAddExpr] ... += ... # 318| getDesugared: [StmtSequence] ... # 318| getStmt: [AssignExpr] ... = ... @@ -167,11 +167,11 @@ calls/calls.rb: # 318| getReceiver: [LocalVariableAccess] __synth__0 # 318| getArgument: [LocalVariableAccess] __synth__1 # 318| getStmt: [AssignExpr] ... = ... +# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__1 # 318| getAnOperand/getRightOperand: [AddExpr] ... + ... # 318| getAnOperand/getLeftOperand/getReceiver: [MethodCall] call to count # 318| getReceiver: [LocalVariableAccess] __synth__0 # 318| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 1 -# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__1 # 318| getStmt: [LocalVariableAccess] __synth__1 # 319| [AssignAddExpr] ... += ... # 319| getDesugared: [StmtSequence] ... @@ -187,12 +187,12 @@ calls/calls.rb: # 319| getAnOperand/getRightOperand: [IntegerLiteral] 0 # 319| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__1 # 319| getStmt: [AssignExpr] ... = ... +# 319| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__2 # 319| getAnOperand/getRightOperand: [AddExpr] ... + ... # 319| getAnOperand/getLeftOperand/getReceiver: [MethodCall] call to [] # 319| getReceiver: [LocalVariableAccess] __synth__0 # 319| getArgument: [LocalVariableAccess] __synth__1 # 319| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 1 -# 319| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__2 # 319| getStmt: [LocalVariableAccess] __synth__2 # 320| [AssignMulExpr] ... *= ... # 320| getDesugared: [StmtSequence] ... @@ -223,6 +223,7 @@ calls/calls.rb: # 320| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 1 # 320| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__3 # 320| getStmt: [AssignExpr] ... = ... +# 320| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__4 # 320| getAnOperand/getRightOperand: [MulExpr] ... * ... # 320| getAnOperand/getLeftOperand/getReceiver: [MethodCall] call to [] # 320| getReceiver: [LocalVariableAccess] __synth__0 @@ -230,7 +231,6 @@ calls/calls.rb: # 320| getArgument: [LocalVariableAccess] __synth__2 # 320| getArgument: [LocalVariableAccess] __synth__3 # 320| getAnOperand/getArgument/getRightOperand: [IntegerLiteral] 2 -# 320| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__4 # 320| getStmt: [LocalVariableAccess] __synth__4 # 340| [ForExpr] for ... in ... # 340| getDesugared: [MethodCall] call to each @@ -240,24 +240,24 @@ calls/calls.rb: # 340| getStmt: [AssignExpr] ... = ... # 340| getDesugared: [StmtSequence] ... # 340| getStmt: [AssignExpr] ... = ... +# 340| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 340| getAnOperand/getRightOperand: [SplatExpr] * ... # 340| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] __synth__0__1 -# 340| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 340| getStmt: [AssignExpr] ... = ... # 340| getAnOperand/getLeftOperand: [LocalVariableAccess] x # 340| getAnOperand/getRightOperand: [MethodCall] call to [] -# 340| getArgument: [IntegerLiteral] 0 # 340| getReceiver: [LocalVariableAccess] __synth__0__1 +# 340| getArgument: [IntegerLiteral] 0 # 340| getStmt: [AssignExpr] ... = ... # 340| getAnOperand/getLeftOperand: [LocalVariableAccess] y # 340| getAnOperand/getRightOperand: [MethodCall] call to [] -# 340| getArgument: [IntegerLiteral] 1 # 340| getReceiver: [LocalVariableAccess] __synth__0__1 +# 340| getArgument: [IntegerLiteral] 1 # 340| getStmt: [AssignExpr] ... = ... # 340| getAnOperand/getLeftOperand: [LocalVariableAccess] z # 340| getAnOperand/getRightOperand: [MethodCall] call to [] -# 340| getArgument: [IntegerLiteral] 2 # 340| getReceiver: [LocalVariableAccess] __synth__0__1 +# 340| getArgument: [IntegerLiteral] 2 # 340| getAnOperand/getLeftOperand: [DestructuredLhsExpr] (..., ...) # 341| getStmt: [MethodCall] call to foo # 341| getReceiver: [SelfVariableAccess] self @@ -286,9 +286,9 @@ calls/calls.rb: # 362| getReceiver: [SelfVariableAccess] self # 362| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 362| getStmt: [IfExpr] if ... +# 362| getBranch/getThen: [NilLiteral] nil # 362| getBranch/getElse: [MethodCall] call to empty? # 362| getReceiver: [LocalVariableAccess] __synth__0__1 -# 362| getBranch/getThen: [NilLiteral] nil # 362| getCondition: [MethodCall] call to == # 362| getArgument: [LocalVariableAccess] __synth__0__1 # 362| getReceiver: [NilLiteral] nil @@ -299,6 +299,7 @@ calls/calls.rb: # 364| getReceiver: [SelfVariableAccess] self # 364| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 364| getStmt: [IfExpr] if ... +# 364| getBranch/getThen: [NilLiteral] nil # 364| getBranch/getElse: [MethodCall] call to bar # 364| getReceiver: [LocalVariableAccess] __synth__0__1 # 364| getArgument: [IntegerLiteral] 1 @@ -307,7 +308,6 @@ calls/calls.rb: # 364| getParameter: [SimpleParameter] x # 364| getDefiningAccess: [LocalVariableAccess] x # 364| getStmt: [LocalVariableAccess] x -# 364| getBranch/getThen: [NilLiteral] nil # 364| getCondition: [MethodCall] call to == # 364| getArgument: [LocalVariableAccess] __synth__0__1 # 364| getReceiver: [NilLiteral] nil @@ -608,19 +608,19 @@ control/loops.rb: # 22| getStmt: [AssignExpr] ... = ... # 22| getDesugared: [StmtSequence] ... # 22| getStmt: [AssignExpr] ... = ... +# 22| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 22| getAnOperand/getRightOperand: [SplatExpr] * ... # 22| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] __synth__0__1 -# 22| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 22| getStmt: [AssignExpr] ... = ... # 22| getAnOperand/getLeftOperand: [LocalVariableAccess] key # 22| getAnOperand/getRightOperand: [MethodCall] call to [] -# 22| getArgument: [IntegerLiteral] 0 # 22| getReceiver: [LocalVariableAccess] __synth__0__1 +# 22| getArgument: [IntegerLiteral] 0 # 22| getStmt: [AssignExpr] ... = ... # 22| getAnOperand/getLeftOperand: [LocalVariableAccess] value # 22| getAnOperand/getRightOperand: [MethodCall] call to [] -# 22| getArgument: [IntegerLiteral] 1 # 22| getReceiver: [LocalVariableAccess] __synth__0__1 +# 22| getArgument: [IntegerLiteral] 1 # 22| getAnOperand/getLeftOperand: [DestructuredLhsExpr] (..., ...) # 23| getStmt: [AssignAddExpr] ... += ... # 23| getDesugared: [AssignExpr] ... = ... @@ -653,19 +653,19 @@ control/loops.rb: # 28| getStmt: [AssignExpr] ... = ... # 28| getDesugared: [StmtSequence] ... # 28| getStmt: [AssignExpr] ... = ... +# 28| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 28| getAnOperand/getRightOperand: [SplatExpr] * ... # 28| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] __synth__0__1 -# 28| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1 # 28| getStmt: [AssignExpr] ... = ... # 28| getAnOperand/getLeftOperand: [LocalVariableAccess] key # 28| getAnOperand/getRightOperand: [MethodCall] call to [] -# 28| getArgument: [IntegerLiteral] 0 # 28| getReceiver: [LocalVariableAccess] __synth__0__1 +# 28| getArgument: [IntegerLiteral] 0 # 28| getStmt: [AssignExpr] ... = ... # 28| getAnOperand/getLeftOperand: [LocalVariableAccess] value # 28| getAnOperand/getRightOperand: [MethodCall] call to [] -# 28| getArgument: [IntegerLiteral] 1 # 28| getReceiver: [LocalVariableAccess] __synth__0__1 +# 28| getArgument: [IntegerLiteral] 1 # 28| getAnOperand/getLeftOperand: [DestructuredLhsExpr] (..., ...) # 29| getStmt: [AssignAddExpr] ... += ... # 29| getDesugared: [AssignExpr] ... = ... From 3d0c23e441683bdb4fa21ead7f894d69ca2f4c7a Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Wed, 3 Aug 2022 09:52:11 +0200 Subject: [PATCH 564/736] Python: Accept `.expected` for TarSlip Changed after merging https://github.com/github/codeql/pull/9579, which improved our handling of `not` for guards. --- .../query-tests/Security/CWE-022-TarSlip/TarSlip.expected | 6 ------ 1 file changed, 6 deletions(-) diff --git a/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected b/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected index 2ddfe7143d0..3cd40605b96 100644 --- a/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected +++ b/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected @@ -7,8 +7,6 @@ edges | tarslip.py:40:7:40:39 | ControlFlowNode for Attribute() | tarslip.py:41:24:41:26 | ControlFlowNode for tar | | tarslip.py:56:7:56:39 | ControlFlowNode for Attribute() | tarslip.py:57:5:57:9 | GSSA Variable entry | | tarslip.py:57:5:57:9 | GSSA Variable entry | tarslip.py:59:21:59:25 | ControlFlowNode for entry | -| tarslip.py:79:7:79:39 | ControlFlowNode for Attribute() | tarslip.py:80:5:80:9 | GSSA Variable entry | -| tarslip.py:80:5:80:9 | GSSA Variable entry | tarslip.py:82:21:82:25 | ControlFlowNode for entry | nodes | tarslip.py:12:7:12:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | tarslip.py:13:1:13:3 | ControlFlowNode for tar | semmle.label | ControlFlowNode for tar | @@ -23,9 +21,6 @@ nodes | tarslip.py:56:7:56:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | tarslip.py:57:5:57:9 | GSSA Variable entry | semmle.label | GSSA Variable entry | | tarslip.py:59:21:59:25 | ControlFlowNode for entry | semmle.label | ControlFlowNode for entry | -| tarslip.py:79:7:79:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| tarslip.py:80:5:80:9 | GSSA Variable entry | semmle.label | GSSA Variable entry | -| tarslip.py:82:21:82:25 | ControlFlowNode for entry | semmle.label | ControlFlowNode for entry | subpaths #select | tarslip.py:13:1:13:3 | ControlFlowNode for tar | tarslip.py:12:7:12:39 | ControlFlowNode for Attribute() | tarslip.py:13:1:13:3 | ControlFlowNode for tar | Extraction of tarfile from $@ | tarslip.py:12:7:12:39 | ControlFlowNode for Attribute() | a potentially untrusted source | @@ -33,4 +28,3 @@ subpaths | tarslip.py:37:17:37:21 | ControlFlowNode for entry | tarslip.py:33:7:33:39 | ControlFlowNode for Attribute() | tarslip.py:37:17:37:21 | ControlFlowNode for entry | Extraction of tarfile from $@ | tarslip.py:33:7:33:39 | ControlFlowNode for Attribute() | a potentially untrusted source | | tarslip.py:41:24:41:26 | ControlFlowNode for tar | tarslip.py:40:7:40:39 | ControlFlowNode for Attribute() | tarslip.py:41:24:41:26 | ControlFlowNode for tar | Extraction of tarfile from $@ | tarslip.py:40:7:40:39 | ControlFlowNode for Attribute() | a potentially untrusted source | | tarslip.py:59:21:59:25 | ControlFlowNode for entry | tarslip.py:56:7:56:39 | ControlFlowNode for Attribute() | tarslip.py:59:21:59:25 | ControlFlowNode for entry | Extraction of tarfile from $@ | tarslip.py:56:7:56:39 | ControlFlowNode for Attribute() | a potentially untrusted source | -| tarslip.py:82:21:82:25 | ControlFlowNode for entry | tarslip.py:79:7:79:39 | ControlFlowNode for Attribute() | tarslip.py:82:21:82:25 | ControlFlowNode for entry | Extraction of tarfile from $@ | tarslip.py:79:7:79:39 | ControlFlowNode for Attribute() | a potentially untrusted source | From 83498f58db85299f882afd12e61b0d2208c8ac38 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 3 Aug 2022 08:53:43 +0100 Subject: [PATCH 565/736] Add missing import --- java/ql/src/Security/CWE/CWE-022/TaintedPath.ql | 1 + 1 file changed, 1 insertion(+) diff --git a/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql b/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql index 8743673eea7..05ca12f6537 100644 --- a/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql +++ b/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql @@ -15,6 +15,7 @@ import java import semmle.code.java.dataflow.FlowSources +private import semmle.code.java.dataflow.ExternalFlow import semmle.code.java.security.PathCreation import DataFlow::PathGraph import TaintedPathCommon From 2d76d6d51ab70537e35fb4c1dca1e0b64b4c6feb Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 26 Jul 2022 10:14:13 +0100 Subject: [PATCH 566/736] Swift: Tests for CWE-95. --- .../CWE-095/UnsafeWebViewFetch.expected | 1 + .../Security/CWE-095/UnsafeWebViewFetch.qlref | 1 + .../Security/CWE-095/UnsafeWebViewFetch.swift | 206 ++++++++++++++++++ 3 files changed, 208 insertions(+) create mode 100644 swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected create mode 100644 swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.qlref create mode 100644 swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected new file mode 100644 index 00000000000..583b1a97a98 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected @@ -0,0 +1 @@ +| TODO | diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.qlref b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.qlref new file mode 100644 index 00000000000..ddd18844328 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.qlref @@ -0,0 +1 @@ +queries/Security/CWE-095/UnsafeWebviewFetch.ql \ No newline at end of file diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift new file mode 100644 index 00000000000..8b3fbcbe1d9 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift @@ -0,0 +1,206 @@ + +// --- stubs --- + +class NSObject +{ +} + +class URL +{ + init?(string: String) {} + init?(string: String, relativeTo: URL?) {} +} + +extension String { + init(contentsOf: URL) throws { + var data = "" + + // ... + + self.init(data) + } +} + +class NSURLRequest : NSObject +{ + enum CachePolicy : UInt + { + case useProtocolCachePolicy + } +} + +typealias TimeInterval = Double + +class URLRequest +{ + typealias CachePolicy = NSURLRequest.CachePolicy + + init(url: URL, cachePolicy: URLRequest.CachePolicy = .useProtocolCachePolicy, timeoutInterval: TimeInterval = 60.0) {} +} + +class Data +{ + init(_ elements: S) {} +} + +class WKNavigation : NSObject +{ +} + +class UIResponder : NSObject +{ +} + +class UIView : UIResponder +{ +} + +class UIWebView : UIView +{ + func loadRequest(_ request: URLRequest) {} // deprecated + + func load(_ data: Data, mimeType MIMEType: String, textEncodingName: String, baseURL: URL) {} // deprecated + + func loadHTMLString(_ string: String, baseURL: URL?) {} // deprecated +} + +class WKWebView : UIView +{ + func load(_ request: URLRequest) -> WKNavigation? { + // ... + + return WKNavigation() + } + + func load(_ data: Data, mimeType MIMEType: String, characterEncodingName: String, baseURL: URL) -> WKNavigation? { + // ... + + return WKNavigation() + } + + func loadHTMLString(_ string: String, baseURL: URL?) -> WKNavigation? { + // ... + + return WKNavigation() + } +} + +// --- tests --- + +func getRemoteData() -> String { + let url = URL(string: "http://example.com/") + do + { + return try String(contentsOf: url!) + } catch { + return "" + } +} + +func testSimpleFlows() { + let webview = UIWebView() + + webview.loadHTMLString(try! String(contentsOf: URL(string: "http://example.com/")!), baseURL: nil) // BAD [NOT DETECTED] + + let data = try! String(contentsOf: URL(string: "http://example.com/")!) + webview.loadHTMLString(data, baseURL: nil) // BAD [NOT DETECTED] + + let url = URL(string: "http://example.com/") + webview.loadHTMLString(try! String(contentsOf: url!), baseURL: nil) // BAD [NOT DETECTED] +} + +func testUIWebView() { + let webview = UIWebView() + + let localString = "

    Local HTML

    " + let localStringFragment = "

    Local HTML

    " + let remoteString = getRemoteData() + + webview.loadHTMLString(localString, baseURL: nil) // GOOD: the HTML data is local + webview.loadHTMLString(getRemoteData(), baseURL: nil) // BAD: HTML contains remote input, may access local secrets [NOT DETECTED] + webview.loadHTMLString(remoteString, baseURL: nil) // BAD [NOT DETECTED] + + webview.loadHTMLString("" + localStringFragment + "", baseURL: nil) // GOOD: the HTML data is local + webview.loadHTMLString("" + remoteString + "", baseURL: nil) // BAD [NOT DETECTED] + + webview.loadHTMLString("\(localStringFragment)", baseURL: nil) // GOOD: the HTML data is local + webview.loadHTMLString("\(remoteString)", baseURL: nil) // BAD [NOT DETECTED] + + let localSafeURL = URL(string: "about:blank") + let localURL = URL(string: "http://example.com/") + let remoteURL = URL(string: remoteString) + let remoteURL2 = URL(string: "/path", relativeTo: remoteURL) + + webview.loadHTMLString(localString, baseURL: localSafeURL!) // GOOD: a safe baseURL is specified + webview.loadHTMLString(remoteString, baseURL: localSafeURL!) // GOOD: a safe baseURL is specified + webview.loadHTMLString(localString, baseURL: localURL!) // GOOD: a presumed safe baseURL is specified + webview.loadHTMLString(remoteString, baseURL: localURL!) // GOOD: a presumed safe baseURL is specified + webview.loadHTMLString(localString, baseURL: remoteURL!) // GOOD: the HTML data is local + webview.loadHTMLString(remoteString, baseURL: remoteURL!) // BAD [NOT DETECTED] + webview.loadHTMLString(localString, baseURL: remoteURL2!) // GOOD: the HTML data is local + webview.loadHTMLString(remoteString, baseURL: remoteURL2!) // BAD [NOT DETECTED] + + let localRequest = URLRequest(url: localURL!) + let remoteRequest = URLRequest(url: remoteURL!) + + webview.loadRequest(localRequest) // GOOD: loadRequest is out of scope as it has no baseURL + webview.loadRequest(remoteRequest) // GOOD: loadRequest is out of scope as it has no baseURL + + let localData = Data(localString.utf8) + let remoteData = Data(remoteString.utf8) + webview.load(localData, mimeType: "text/html", textEncodingName: "utf-8", baseURL: localSafeURL!) // GOOD: the data is local + webview.load(remoteData, mimeType: "text/html", textEncodingName: "utf-8", baseURL: localSafeURL!) // GOOD: a safe baseURL is specified + webview.load(localData, mimeType: "text/html", textEncodingName: "utf-8", baseURL: remoteURL!) // GOOD: the HTML data is local + webview.load(remoteData, mimeType: "text/html", textEncodingName: "utf-8", baseURL: remoteURL!) // BAD [NOT DETECTED] +} + +func testWKWebView() { + let webview = WKWebView() + // note: `WKWebView` is safer than `UIWebView` as it has better security configuration options + // and is more locked down by default. + + let localString = "

    Local HTML

    " + let localStringFragment = "

    Local HTML

    " + let remoteString = getRemoteData() + + webview.loadHTMLString(localString, baseURL: nil) // GOOD: the HTML data is local + webview.loadHTMLString(getRemoteData(), baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString(remoteString, baseURL: nil) // BAD [NOT DETECTED] + + webview.loadHTMLString("" + localStringFragment + "", baseURL: nil) // GOOD: the HTML data is local + webview.loadHTMLString("" + remoteString + "", baseURL: nil) // BAD [NOT DETECTED] + + webview.loadHTMLString("\(localStringFragment)", baseURL: nil) // GOOD: the HTML data is local + webview.loadHTMLString("\(remoteString)", baseURL: nil) // BAD [NOT DETECTED] + + let localSafeURL = URL(string: "about:blank") + let localURL = URL(string: "http://example.com/") + let remoteURL = URL(string: remoteString) + let remoteURL2 = URL(string: "/path", relativeTo: remoteURL) + + webview.loadHTMLString(localString, baseURL: localSafeURL!) // GOOD: a safe baseURL is specified + webview.loadHTMLString(remoteString, baseURL: localSafeURL!) // GOOD: a safe baseURL is specified + webview.loadHTMLString(localString, baseURL: localURL!) // GOOD: a presumed safe baseURL is specified + webview.loadHTMLString(remoteString, baseURL: localURL!) // GOOD: a presumed safe baseURL is specified + webview.loadHTMLString(localString, baseURL: remoteURL!) // GOOD: the HTML data is local + webview.loadHTMLString(remoteString, baseURL: remoteURL!) // BAD [NOT DETECTED] + webview.loadHTMLString(localString, baseURL: remoteURL2!) // GOOD: the HTML data is local + webview.loadHTMLString(remoteString, baseURL: remoteURL2!) // BAD [NOT DETECTED] + + let localRequest = URLRequest(url: localURL!) + let remoteRequest = URLRequest(url: remoteURL!) + + webview.load(localRequest) // GOOD: loadRequest is out of scope as it has no baseURL + webview.load(remoteRequest) // GOOD: loadRequest is out of scope as it has no baseURL + + let localData = Data(localString.utf8) + let remoteData = Data(remoteString.utf8) + webview.load(localData, mimeType: "text/html", characterEncodingName: "utf-8", baseURL: localSafeURL!) // GOOD: the data is local + webview.load(remoteData, mimeType: "text/html", characterEncodingName: "utf-8", baseURL: localSafeURL!) // GOOD: a safe baseURL is specified + webview.load(localData, mimeType: "text/html", characterEncodingName: "utf-8", baseURL: remoteURL!) // GOOD: the HTML data is local + webview.load(remoteData, mimeType: "text/html", characterEncodingName: "utf-8", baseURL: remoteURL!) // BAD [NOT DETECTED] +} + +testSimpleFlows() +testUIWebView() +testWKWebView() From e04c77ce158f8387e67e687355193e8125c9b14f Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 3 Aug 2022 09:37:20 +0100 Subject: [PATCH 567/736] Rename sanitizer --- go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll index 5bdba0ea931..61499340de3 100644 --- a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll +++ b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll @@ -71,10 +71,10 @@ module TaintedPath { } /** - * A numeric-typed node, considered a sanitizer for path traversal. + * A numeric- or boolean-typed node, considered a sanitizer for path traversal. */ - class NumericSanitizer extends Sanitizer { - NumericSanitizer() { + class NumericOrBooleanSanitizer extends Sanitizer { + NumericOrBooleanSanitizer() { this.getType() instanceof NumericType or this.getType() instanceof BoolType } } From 53ea65b0459fc262b208bb3a756f9aec018b51f1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 27 Jul 2022 14:43:03 +0100 Subject: [PATCH 568/736] Swift: Implement query. --- .../Security/CWE-095/UnsafeWebViewFetch.ql | 115 +++++++++++++++++- .../CWE-095/UnsafeWebViewFetch.expected | 46 ++++++- .../Security/CWE-095/UnsafeWebViewFetch.swift | 12 +- 3 files changed, 164 insertions(+), 9 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql index 2c047db4906..bb8d64a237b 100644 --- a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql @@ -1,7 +1,7 @@ /** * @name Unsafe WebView fetch * @description TODO - * @kind problem + * @kind path-problem * @problem.severity warning * @security-severity TODO * @precision high @@ -13,5 +13,116 @@ */ import swift +import codeql.swift.dataflow.DataFlow +import codeql.swift.dataflow.TaintTracking +import codeql.swift.dataflow.FlowSources +import DataFlow::PathGraph +import codeql.swift.frameworks.StandardLibrary.String -select "TODO" +/** + * A taint source that is `String(contentsOf:)`. + * TODO: this shouldn't be needed when `StringSource` in `String.qll` is working. + */ +class StringContentsOfURLSource extends RemoteFlowSource { + StringContentsOfURLSource() { + exists(CallExpr call, AbstractFunctionDecl f | + call.getFunction().(ApplyExpr).getStaticTarget() = f and + f.getName() = "init(contentsOf:)" and + f.getParam(0).getType().getName() = "URL" and + this.asExpr() = call + ) + } + + override string getSourceType() { result = "" } +} + +/** + * A sink that is a candidate result for this query, such as certain arguments + * to `UIWebView.loadHTMLString`. + */ +class Sink extends DataFlow::Node { + Expr baseURL; + + Sink() { + exists( + AbstractFunctionDecl funcDecl, CallExpr call, string funcName, string paramName, int arg, + int baseURLarg + | + // arguments to method calls... + exists(string className, ClassDecl c | + ( + // `loadHTMLString` + className = ["UIWebView", "WKWebView"] and + funcName = "loadHTMLString(_:baseURL:)" and + paramName = "string" + or + // `UIWebView.load` + className = "UIWebView" and + funcName = "load(_:mimeType:textEncodingName:baseURL:)" and + paramName = "data" + or + // `WKWebView.load` + className = "WKWebView" and + funcName = "load(_:mimeType:characterEncodingName:baseURL:)" and + paramName = "data" + ) and + c.getName() = className and + c.getAMember() = funcDecl and + call.getFunction().(ApplyExpr).getStaticTarget() = funcDecl + ) and + // match up `funcName`, `paramName`, `arg`, `node`. + funcDecl.getName() = funcName and + funcDecl.getParam(pragma[only_bind_into](arg)).getName() = paramName and + call.getArgument(pragma[only_bind_into](arg)).getExpr() = this.asExpr() and + // match up `baseURLArg` + funcDecl.getParam(pragma[only_bind_into](baseURLarg)).getName() = "baseURL" and + call.getArgument(pragma[only_bind_into](baseURLarg)).getExpr() = baseURL + ) + } + + /** + * Gets the `baseURL` argument associated with this sink. + */ + Expr getBaseURL() { result = baseURL } +} + +/** + * Taint configuration from taint sources to sinks (and `baseURL` arguments) + * for this query. + */ +class UnsafeWebViewFetchConfig extends TaintTracking::Configuration { + UnsafeWebViewFetchConfig() { this = "UnsafeWebViewFetchConfig" } + + override predicate isSource(DataFlow::Node node) { node instanceof RemoteFlowSource } + + override predicate isSink(DataFlow::Node node) { + node instanceof Sink + } + + override predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) { + // allow flow through `try!` and similar constructs + // TODO: this should probably be part of DataFlow / TaintTracking. + node1.asExpr() = node2.asExpr().(AnyTryExpr).getSubExpr() + or + // allow flow through `!` + // TODO: this should probably be part of DataFlow / TaintTracking. + node1.asExpr() = node2.asExpr().(ForceValueExpr).getSubExpr() + or + // allow flow through string concatenation. + // TODO: this should probably be part of TaintTracking. + node2.asExpr().(AddExpr).getAnOperand() = node1.asExpr() + } +} + +from + UnsafeWebViewFetchConfig config, DataFlow::PathNode sourceNode, DataFlow::PathNode sinkNode, + Sink sink, string message +where + config.hasFlowPath(sourceNode, sinkNode) and + sink = sinkNode.getNode() and + ( + // base URL is nil + sink.getBaseURL() instanceof NilLiteralExpr and + message = "Tainted data is used in a WebView fetch without restricting the base URL." + ) +select sinkNode, sourceNode, sinkNode, message diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected index 583b1a97a98..ae981531fae 100644 --- a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected +++ b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected @@ -1 +1,45 @@ -| TODO | +edges +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | +| UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:135:25:135:25 | remoteString | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:137:25:137:25 | remoteString | +| 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:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:182:25:182:25 | remoteString | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:184:25:184:25 | remoteString | +| 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 | +nodes +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | semmle.label | try ... : | +| UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | semmle.label | call to ... : | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | semmle.label | call to getRemoteData() : | +| UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | semmle.label | call to getRemoteData() | +| UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | +| UnsafeWebViewFetch.swift:135:25:135:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:137:25:137:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | semmle.label | call to getRemoteData() : | +| UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | semmle.label | call to getRemoteData() | +| UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | +| UnsafeWebViewFetch.swift:182:25:182:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:184:25:184:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | semmle.label | remoteString | +subpaths +#select +| UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | Tainted data is used in a WebView fetch without restricting the base URL. | +| UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | Tainted data is used in a WebView fetch without restricting the base URL. | +| UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | Tainted data is used in a WebView fetch without restricting the base URL. | +| UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | 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 ... : | 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 | ... call to +(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | Tainted data is used in a WebView fetch without restricting the base URL. | diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift index 8b3fbcbe1d9..f6c1fd80b24 100644 --- a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift +++ b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift @@ -117,11 +117,11 @@ func testUIWebView() { let remoteString = getRemoteData() webview.loadHTMLString(localString, baseURL: nil) // GOOD: the HTML data is local - webview.loadHTMLString(getRemoteData(), baseURL: nil) // BAD: HTML contains remote input, may access local secrets [NOT DETECTED] - webview.loadHTMLString(remoteString, baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString(getRemoteData(), baseURL: nil) // BAD: HTML contains remote input, may access local secrets + webview.loadHTMLString(remoteString, baseURL: nil) // BAD webview.loadHTMLString("" + localStringFragment + "", baseURL: nil) // GOOD: the HTML data is local - webview.loadHTMLString("" + remoteString + "", baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString("" + remoteString + "", baseURL: nil) // BAD webview.loadHTMLString("\(localStringFragment)", baseURL: nil) // GOOD: the HTML data is local webview.loadHTMLString("\(remoteString)", baseURL: nil) // BAD [NOT DETECTED] @@ -164,11 +164,11 @@ func testWKWebView() { let remoteString = getRemoteData() webview.loadHTMLString(localString, baseURL: nil) // GOOD: the HTML data is local - webview.loadHTMLString(getRemoteData(), baseURL: nil) // BAD [NOT DETECTED] - webview.loadHTMLString(remoteString, baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString(getRemoteData(), baseURL: nil) // BAD + webview.loadHTMLString(remoteString, baseURL: nil) // BAD webview.loadHTMLString("" + localStringFragment + "", baseURL: nil) // GOOD: the HTML data is local - webview.loadHTMLString("" + remoteString + "", baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString("" + remoteString + "", baseURL: nil) // BAD webview.loadHTMLString("\(localStringFragment)", baseURL: nil) // GOOD: the HTML data is local webview.loadHTMLString("\(remoteString)", baseURL: nil) // BAD [NOT DETECTED] From 651b73e21ec637ae5e9141964894581cf427a4e1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 3 Aug 2022 09:17:34 +0100 Subject: [PATCH 569/736] Swift: Check for tainted baseURL. --- .../Security/CWE-095/UnsafeWebViewFetch.ql | 17 ++++++++++- .../CWE-095/UnsafeWebViewFetch.expected | 28 +++++++++++++++++++ .../Security/CWE-095/UnsafeWebViewFetch.swift | 8 +++--- 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql index bb8d64a237b..fe48ca8ec04 100644 --- a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql @@ -96,7 +96,8 @@ class UnsafeWebViewFetchConfig extends TaintTracking::Configuration { override predicate isSource(DataFlow::Node node) { node instanceof RemoteFlowSource } override predicate isSink(DataFlow::Node node) { - node instanceof Sink + node instanceof Sink or + node.asExpr() = any(Sink s).getBaseURL() } override predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) { @@ -111,6 +112,16 @@ class UnsafeWebViewFetchConfig extends TaintTracking::Configuration { // allow flow through string concatenation. // TODO: this should probably be part of TaintTracking. node2.asExpr().(AddExpr).getAnOperand() = node1.asExpr() + or + // allow flow through `URL.init`. + exists(CallExpr call, ClassDecl c, AbstractFunctionDecl f | + c.getName() = "URL" and + c.getAMember() = f and + f.getName() = ["init(string:)", "init(string:relativeTo:)"] and + call.getFunction().(ApplyExpr).getStaticTarget() = f and + node1.asExpr() = call.getArgument(_).getExpr() and + node2.asExpr() = call + ) } } @@ -124,5 +135,9 @@ where // base URL is nil sink.getBaseURL() instanceof NilLiteralExpr and message = "Tainted data is used in a WebView fetch without restricting the base URL." + or + // base URL is tainted + config.hasFlow(_, any(DataFlow::Node n | n.asExpr() = sink.getBaseURL())) and + message = "Tainted data is used in a WebView fetch with a tainted base URL." ) select sinkNode, sourceNode, sinkNode, message diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected index ae981531fae..9d3ef5ef4f0 100644 --- a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected +++ b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected @@ -8,14 +8,26 @@ edges | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:135:25:135:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:137:25:137:25 | remoteString | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:138:47:138:56 | ...! | | 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:139:48:139:57 | ...! | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:140:47:140:57 | ...! | | 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:141:48:141:58 | ...! | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:153:85:153:94 | ...! | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:154:86:154:95 | ...! | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:182:25:182:25 | remoteString | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:184:25:184:25 | remoteString | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:185:47:185:56 | ...! | | 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:186:48:186:57 | ...! | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:187:47:187:57 | ...! | | 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:188:48:188:58 | ...! | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:200:90:200:99 | ...! | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:201:91:201:100 | ...! | nodes | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | semmle.label | try ... : | | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | semmle.label | call to ... : | @@ -25,21 +37,37 @@ nodes | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | | 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:56 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:139:48:139:57 | ...! | semmle.label | ...! | +| UnsafeWebViewFetch.swift:140:47:140:57 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:141:48:141:58 | ...! | semmle.label | ...! | +| UnsafeWebViewFetch.swift:153:85:153:94 | ...! | semmle.label | ...! | +| UnsafeWebViewFetch.swift:154:86:154:95 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | semmle.label | call to getRemoteData() : | | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | semmle.label | call to getRemoteData() | | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | | 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:56 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:186:48:186:57 | ...! | semmle.label | ...! | +| UnsafeWebViewFetch.swift:187:47:187:57 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | semmle.label | remoteString | +| UnsafeWebViewFetch.swift:188:48:188:58 | ...! | semmle.label | ...! | +| UnsafeWebViewFetch.swift:200:90:200:99 | ...! | semmle.label | ...! | +| UnsafeWebViewFetch.swift:201:91:201:100 | ...! | semmle.label | ...! | subpaths #select | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | 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 ... : | 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 ... : | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | 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 ... : | 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 ... : | 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 | ... call to +(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | 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 ... : | 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 ... : | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | Tainted data is used in a WebView fetch with a tainted base URL. | diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift index f6c1fd80b24..3fc5aca878f 100644 --- a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift +++ b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift @@ -136,9 +136,9 @@ func testUIWebView() { webview.loadHTMLString(localString, baseURL: localURL!) // GOOD: a presumed safe baseURL is specified webview.loadHTMLString(remoteString, baseURL: localURL!) // GOOD: a presumed safe baseURL is specified webview.loadHTMLString(localString, baseURL: remoteURL!) // GOOD: the HTML data is local - webview.loadHTMLString(remoteString, baseURL: remoteURL!) // BAD [NOT DETECTED] + webview.loadHTMLString(remoteString, baseURL: remoteURL!) // BAD webview.loadHTMLString(localString, baseURL: remoteURL2!) // GOOD: the HTML data is local - webview.loadHTMLString(remoteString, baseURL: remoteURL2!) // BAD [NOT DETECTED] + webview.loadHTMLString(remoteString, baseURL: remoteURL2!) // BAD let localRequest = URLRequest(url: localURL!) let remoteRequest = URLRequest(url: remoteURL!) @@ -183,9 +183,9 @@ func testWKWebView() { webview.loadHTMLString(localString, baseURL: localURL!) // GOOD: a presumed safe baseURL is specified webview.loadHTMLString(remoteString, baseURL: localURL!) // GOOD: a presumed safe baseURL is specified webview.loadHTMLString(localString, baseURL: remoteURL!) // GOOD: the HTML data is local - webview.loadHTMLString(remoteString, baseURL: remoteURL!) // BAD [NOT DETECTED] + webview.loadHTMLString(remoteString, baseURL: remoteURL!) // BAD webview.loadHTMLString(localString, baseURL: remoteURL2!) // GOOD: the HTML data is local - webview.loadHTMLString(remoteString, baseURL: remoteURL2!) // BAD [NOT DETECTED] + webview.loadHTMLString(remoteString, baseURL: remoteURL2!) // BAD let localRequest = URLRequest(url: localURL!) let remoteRequest = URLRequest(url: remoteURL!) From ea17b852b46a0e3db1be1e9091f8e0ea3e5b6524 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 2 Aug 2022 14:45:16 +0100 Subject: [PATCH 570/736] Swift: Explain ExternalRemoteFlowSource. --- swift/ql/lib/codeql/swift/dataflow/FlowSources.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/swift/ql/lib/codeql/swift/dataflow/FlowSources.qll b/swift/ql/lib/codeql/swift/dataflow/FlowSources.qll index 4ef8a28baa3..dc0d692dfc4 100644 --- a/swift/ql/lib/codeql/swift/dataflow/FlowSources.qll +++ b/swift/ql/lib/codeql/swift/dataflow/FlowSources.qll @@ -11,6 +11,9 @@ abstract class RemoteFlowSource extends Node { abstract string getSourceType(); } +/** + * A data flow source of remote user input that is defined through 'models as data'. + */ private class ExternalRemoteFlowSource extends RemoteFlowSource { ExternalRemoteFlowSource() { sourceNode(this, "remote") } From 8d9653a99960c39153a2beac1f75605485a092ea Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 3 Aug 2022 09:54:54 +0100 Subject: [PATCH 571/736] Swift: Generated security-severity tag. --- swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql index fe48ca8ec04..c8677f704a1 100644 --- a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql @@ -3,7 +3,7 @@ * @description TODO * @kind path-problem * @problem.severity warning - * @security-severity TODO + * @security-severity 6.1 * @precision high * @id swift/unsafe-webview-fetch * @tags security From 84a4b6a8663276fdeffd4b7addb6d3d6ac0c5667 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 3 Aug 2022 10:42:09 +0100 Subject: [PATCH 572/736] Make reporting locations consistent with PathCreation; add test --- .../src/Security/CWE/CWE-022/TaintedPath.ql | 18 ++++++++++++++-- .../CWE-022/semmle/tests/TaintedPath.expected | 4 ++++ .../security/CWE-022/semmle/tests/Test.java | 21 ++++++++++++------- .../security/CWE-022/semmle/tests/options | 2 +- .../commons/io/output/LockableFileWriter.java | 7 +++++++ 5 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/output/LockableFileWriter.java diff --git a/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql b/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql index 05ca12f6537..671e9b00b4d 100644 --- a/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql +++ b/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql @@ -50,7 +50,21 @@ class TaintedPathConfig extends TaintTracking::Configuration { } } +/** + * Gets the data-flow node at which to report a path ending at `sink`. + * + * Previously this query flagged alerts exclusively at `PathCreation` sites, + * so to avoid perturbing existing alerts, where a `PathCreation` exists we + * continue to report there; otherwise we report directly at `sink`. + */ +DataFlow::Node getReportingNode(DataFlow::Node sink) { + any(TaintedPathConfig c).hasFlowTo(sink) and + if exists(PathCreation pc | pc.getAnInput() = sink.asExpr()) + then result.asExpr() = any(PathCreation pc | pc.getAnInput() = sink.asExpr()) + else result = sink +} + from DataFlow::PathNode source, DataFlow::PathNode sink, TaintedPathConfig conf where conf.hasFlowPath(source, sink) -select sink, source, sink, "$@ flows to here and is used in a path.", source.getNode(), - "User-provided value" +select getReportingNode(sink.getNode()), source, sink, "$@ flows to here and is used in a path.", + source.getNode(), "User-provided value" 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 13ac840300d..830f4d76085 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 @@ -8,6 +8,7 @@ edges | Test.java:79:74:79:97 | getInputStream(...) : ServletInputStream | Test.java:79:52:79:98 | new InputStreamReader(...) : InputStreamReader | | Test.java:80:31:80:32 | br : BufferedReader | Test.java:80:31:80:43 | readLine(...) : String | | Test.java:80:31:80:43 | readLine(...) : String | Test.java:82:67:82:81 | ... + ... | +| Test.java:88:17:88:37 | getHostName(...) : String | Test.java:90:26:90:29 | temp | nodes | Test.java:19:18:19:38 | getHostName(...) : String | semmle.label | getHostName(...) : String | | Test.java:24:20:24:23 | temp | semmle.label | temp | @@ -20,6 +21,8 @@ nodes | Test.java:80:31:80:32 | br : BufferedReader | semmle.label | br : BufferedReader | | Test.java:80:31:80:43 | readLine(...) : String | semmle.label | readLine(...) : String | | Test.java:82:67:82:81 | ... + ... | semmle.label | ... + ... | +| Test.java:88:17:88:37 | getHostName(...) : String | semmle.label | getHostName(...) : String | +| Test.java:90:26:90:29 | temp | semmle.label | temp | 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 | $@ flows to here and is used in a path. | Test.java:19:18:19:38 | getHostName(...) | User-provided value | @@ -27,3 +30,4 @@ subpaths | Test.java:30:11:30:48 | getPath(...) | Test.java:19:18:19:38 | getHostName(...) : String | Test.java:30:44:30:47 | temp | $@ flows to here and is used in a path. | Test.java:19:18:19:38 | getHostName(...) | User-provided value | | Test.java:34:12:34:25 | new File(...) | Test.java:19:18:19:38 | getHostName(...) : String | Test.java:34:21:34:24 | temp | $@ flows to here and is used in a path. | Test.java:19:18:19:38 | getHostName(...) | User-provided value | | Test.java:82:52:82:88 | new FileWriter(...) | Test.java:79:74:79:97 | getInputStream(...) : ServletInputStream | Test.java:82:67:82:81 | ... + ... | $@ flows to here and is used in a path. | Test.java:79:74:79:97 | getInputStream(...) | User-provided value | +| Test.java:90:26:90:29 | temp | Test.java:88:17:88:37 | getHostName(...) : String | Test.java:90:26:90:29 | temp | $@ flows to here and is used in a path. | Test.java:88:17:88:37 | getHostName(...) | User-provided value | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java index a0a6694c061..f0d0147df08 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java @@ -2,7 +2,6 @@ // http://cwe.mitre.org/data/definitions/22.html package test.cwe22.semmle.tests; - import javax.servlet.http.*; import javax.servlet.ServletException; @@ -12,6 +11,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.FileSystems; +import org.apache.commons.io.output.LockableFileWriter; class Test { void doGet1(InetAddress address) @@ -19,13 +19,13 @@ class Test { String temp = address.getHostName(); File file; Path path; - + // BAD: construct a file path with user input file = new File(temp); - + // BAD: construct a path with user input path = Paths.get(temp); - + // BAD: construct a path with user input path = FileSystems.getDefault().getPath(temp); @@ -34,7 +34,7 @@ class Test { file = new File(temp); } } - + void doGet2(InetAddress address) throws IOException { String temp = address.getHostName(); @@ -44,7 +44,7 @@ class Test { if(isSafe(temp)) file = new File(temp); } - + void doGet3(InetAddress address) throws IOException { String temp = address.getHostName(); @@ -66,7 +66,7 @@ class Test { return false; return true; } - + boolean isSortOfSafe(String pathSpec) { // no file separators if (pathSpec.contains(File.separator)) @@ -82,4 +82,11 @@ class Test { BufferedWriter bw = new BufferedWriter(new FileWriter("dir/"+filename, true)); } } + + void doGet4(InetAddress address) + throws IOException { + String temp = address.getHostName(); + // BAD: open a file based on user input, using a MaD-documented API + new LockableFileWriter(temp); + } } 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 a41b28dc245..6f216f46554 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 +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/servlet-api-2.4:${testdir}/../../../../../stubs/apache-commons-io-2.6 diff --git a/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/output/LockableFileWriter.java b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/output/LockableFileWriter.java new file mode 100644 index 00000000000..3c7c9c5ebf5 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/output/LockableFileWriter.java @@ -0,0 +1,7 @@ +package org.apache.commons.io.output; + +public class LockableFileWriter { + + public LockableFileWriter(String filename) { } + +} From 977823bd76d48b6af66f70795b1c0c559e116618 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 3 Aug 2022 10:54:35 +0100 Subject: [PATCH 573/736] Create 2022-08-03-tainted-path-mad.md --- java/ql/src/change-notes/2022-08-03-tainted-path-mad.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/src/change-notes/2022-08-03-tainted-path-mad.md diff --git a/java/ql/src/change-notes/2022-08-03-tainted-path-mad.md b/java/ql/src/change-notes/2022-08-03-tainted-path-mad.md new file mode 100644 index 00000000000..6f70a8f69e1 --- /dev/null +++ b/java/ql/src/change-notes/2022-08-03-tainted-path-mad.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `java/path-injection` now recognises vulnerable APIs defined using the `SinkModelCsv` class with the `create-file` type. Out of the box this includes Apache Commons-IO functions, as well as any user-defined sinks. From 35f7fdf24b30e5a3f7e2dd6b515722b17e454b8d Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 3 Aug 2022 10:18:37 +0200 Subject: [PATCH 574/736] Update ruby/ql/lib/codeql/ruby/printAst.qll Co-authored-by: Tom Hvitved --- ruby/ql/lib/codeql/ruby/printAst.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/printAst.qll b/ruby/ql/lib/codeql/ruby/printAst.qll index d66e7fe0535..28f5def4969 100644 --- a/ruby/ql/lib/codeql/ruby/printAst.qll +++ b/ruby/ql/lib/codeql/ruby/printAst.qll @@ -36,6 +36,8 @@ private predicate shouldPrintAstEdge(AstNode parent, string edgeName, AstNode ch any(PrintAstConfiguration config).shouldPrintAstEdge(parent, edgeName, child) } +private int nonSynthIndex() { result = min([-1, any(int i | exists(getSynthChild(_, i)))]) - 1 } + newtype TPrintNode = TPrintRegularAstNode(AstNode n) { shouldPrintNode(n) } or TPrintRegExpNode(RE::RegExpTerm term) { @@ -114,7 +116,7 @@ class PrintRegularAstNode extends PrintAstNode, TPrintRegularAstNode { } private int getSynthAstNodeIndex() { - not astNode.isSynthesized() and result = -10 + not astNode.isSynthesized() and result = nonSynthIndex() or astNode = getSynthChild(astNode.getParent(), result) } From be7ba925f9f192db19143b71fe3cdc7e5d370180 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 3 Aug 2022 11:14:55 +0100 Subject: [PATCH 575/736] Swift: Cache 'lastRefRedef'. --- swift/ql/lib/codeql/swift/dataflow/Ssa.qll | 5 +++++ .../lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/Ssa.qll b/swift/ql/lib/codeql/swift/dataflow/Ssa.qll index 2805dff4637..8f7e95b0caa 100644 --- a/swift/ql/lib/codeql/swift/dataflow/Ssa.qll +++ b/swift/ql/lib/codeql/swift/dataflow/Ssa.qll @@ -39,6 +39,11 @@ module Ssa { read2 = bb2.getNode(i2) ) } + + cached + predicate lastRefRedef(BasicBlock bb, int i, Definition next) { + SsaImplCommon::lastRefRedef(this, bb, i, next) + } } cached diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index e530df2fc20..efe445dcb31 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -5,7 +5,6 @@ private import codeql.swift.controlflow.ControlFlowGraph private import codeql.swift.controlflow.CfgNodes private import codeql.swift.dataflow.Ssa private import codeql.swift.controlflow.BasicBlocks -private import codeql.swift.dataflow.internal.SsaImplCommon as SsaImpl private import codeql.swift.dataflow.FlowSummary as FlowSummary private import codeql.swift.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl @@ -51,7 +50,7 @@ private class SsaDefinitionNodeImpl extends SsaDefinitionNode, NodeImpl { } private predicate localFlowSsaInput(Node nodeFrom, Ssa::Definition def, Ssa::Definition next) { - exists(BasicBlock bb, int i | SsaImpl::lastRefRedef(def, bb, i, next) | + exists(BasicBlock bb, int i | def.lastRefRedef(bb, i, next) | def.definesAt(_, bb, i) and def = nodeFrom.asDefinition() ) From c59e6586f7016245c2870737454ea9ce0c46e8bd Mon Sep 17 00:00:00 2001 From: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> Date: Wed, 3 Aug 2022 14:19:53 +0200 Subject: [PATCH 576/736] Add additional reference to CERT C coding standard --- .../Security/CWE/CWE-273/PrivilegeDroppingOutoforder.qhelp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-273/PrivilegeDroppingOutoforder.qhelp b/cpp/ql/src/experimental/Security/CWE/CWE-273/PrivilegeDroppingOutoforder.qhelp index ca8d8dfaf22..1daebb58b3c 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-273/PrivilegeDroppingOutoforder.qhelp +++ b/cpp/ql/src/experimental/Security/CWE/CWE-273/PrivilegeDroppingOutoforder.qhelp @@ -27,6 +27,9 @@ groups, and finally set the target user.

    +
  • CERT C Coding Standard: +POS36-C. Observe correct revocation order while relinquishing privileges. +
  • CERT C Coding Standard: POS37-C. Ensure that privilege relinquishment is successful.
  • From c635895644fe58b5dc93e899ccd3356647ac8af9 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 3 Aug 2022 10:06:08 +0100 Subject: [PATCH 577/736] Swift: Documentation. --- .../Security/CWE-095/UnsafeWebViewFetch.qhelp | 14 +++++++------- .../queries/Security/CWE-095/UnsafeWebViewFetch.ql | 2 +- .../Security/CWE-095/UnsafeWebViewFetchBad.swift | 6 +++++- .../Security/CWE-095/UnsafeWebViewFetchGood.swift | 6 +++++- .../Security/CWE-095/UnsafeWebViewFetch.expected | 7 +++++++ .../Security/CWE-095/UnsafeWebViewFetch.swift | 11 +++++++++++ 6 files changed, 36 insertions(+), 10 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp index a58e46b5aff..1d61dbe9e92 100644 --- a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp @@ -3,29 +3,29 @@ "qhelp.dtd"> -

    TODO

    +

    Fetching data in a WebView without restricting the base URL may allow an attacker to access sensitive local data, for example using file://. Data can then be extracted from the software using the URL of a machine under the attackers control. More generally, an attacker may use a URL under their control as part of a cross-site scripting attack.

    -

    TODO

    +

    When loading HTML into a web view, always set the baseURL to an appropriate URL that you control, or to about:blank. Do not use nil, as this does not restrict URLs that can be resolved. Also do not use a baseURL that could itself be controlled by an attacker.

    -

    TODO

    +

    In the following example, a call to UIWebView.loadHTMLString has the baseURL set to nil, which does not restrict URLs that can be resolved from within the web page.

    - + -

    TODO

    +

    To fix the problem, we set the baseURL to about:blank. This ensures that an attacker cannot resolve URLs that point to the local file system, or to web servers under their control.

    - +
  • - TODO + iOS Bug Hunting - Web View XSS
  • diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql index c8677f704a1..5ddd9bc7d88 100644 --- a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql @@ -1,6 +1,6 @@ /** * @name Unsafe WebView fetch - * @description TODO + * @description Fetching data in a WebView without restricting the base URL may allow an attacker to access sensitive local data, or enable cross-site scripting attack. * @kind path-problem * @problem.severity warning * @security-severity 6.1 diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift index 6921ceac35d..f85adb1b267 100644 --- a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift @@ -1,2 +1,6 @@ -TODO +let webview = UIWebView() + +... + +webview.loadHTMLString(htmlData, baseURL: nil) // BAD diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift index 6921ceac35d..5d89e5be672 100644 --- a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift +++ b/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift @@ -1,2 +1,6 @@ -TODO +let webview = UIWebView() + +... + +webview.loadHTMLString(htmlData, baseURL: URL(string: "about:blank")) // GOOD diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected index 9d3ef5ef4f0..d387127ac4e 100644 --- a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected +++ b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected @@ -3,6 +3,7 @@ edges | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() : | | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | @@ -28,6 +29,8 @@ edges | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:188:48:188:58 | ...! | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:200:90:200:99 | ...! | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:201:91:201:100 | ...! | +| UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() : | UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | +| UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() : | UnsafeWebViewFetch.swift:211:25:211:25 | htmlData | nodes | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | semmle.label | try ... : | | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | semmle.label | call to ... : | @@ -59,6 +62,9 @@ nodes | UnsafeWebViewFetch.swift:188:48:188:58 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:200:90:200:99 | ...! | semmle.label | ...! | | UnsafeWebViewFetch.swift:201:91:201:100 | ...! | semmle.label | ...! | +| UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() : | semmle.label | call to getRemoteData() : | +| UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | semmle.label | htmlData | +| UnsafeWebViewFetch.swift:211:25:211:25 | htmlData | semmle.label | htmlData | subpaths #select | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | Tainted data is used in a WebView fetch without restricting the base URL. | @@ -71,3 +77,4 @@ subpaths | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | 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 ... : | 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 ... : | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | 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 ... : | UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | Tainted data is used in a WebView fetch without restricting the base URL. | diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift index 3fc5aca878f..9dcef0262ec 100644 --- a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift +++ b/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift @@ -201,6 +201,17 @@ func testWKWebView() { webview.load(remoteData, mimeType: "text/html", characterEncodingName: "utf-8", baseURL: remoteURL!) // BAD [NOT DETECTED] } +func testQHelpExamples() { + let webview = UIWebView() + let htmlData = getRemoteData() + + // ... + + webview.loadHTMLString(htmlData, baseURL: nil) // BAD + webview.loadHTMLString(htmlData, baseURL: URL(string: "about:blank")) // GOOD +} + testSimpleFlows() testUIWebView() testWKWebView() +testQHelpExamples() From 81bd61288c1198fac599e3e39aadedcbf3a42538 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 3 Aug 2022 14:39:35 +0100 Subject: [PATCH 578/736] Swift: I think CWE-079 is the more accurate CWE for this query. --- .../Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.qhelp | 0 .../queries/Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.ql | 0 .../Security/{CWE-095 => CWE-079}/UnsafeWebViewFetchBad.swift | 0 .../Security/{CWE-095 => CWE-079}/UnsafeWebViewFetchGood.swift | 0 .../Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.expected | 0 .../Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.qlref | 0 .../Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.swift | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename swift/ql/src/queries/Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.qhelp (100%) rename swift/ql/src/queries/Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.ql (100%) rename swift/ql/src/queries/Security/{CWE-095 => CWE-079}/UnsafeWebViewFetchBad.swift (100%) rename swift/ql/src/queries/Security/{CWE-095 => CWE-079}/UnsafeWebViewFetchGood.swift (100%) rename swift/ql/test/query-tests/Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.expected (100%) rename swift/ql/test/query-tests/Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.qlref (100%) rename swift/ql/test/query-tests/Security/{CWE-095 => CWE-079}/UnsafeWebViewFetch.swift (100%) diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.qhelp similarity index 100% rename from swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.qhelp rename to swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.qhelp diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql similarity index 100% rename from swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetch.ql rename to swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetchBad.swift similarity index 100% rename from swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchBad.swift rename to swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetchBad.swift diff --git a/swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetchGood.swift similarity index 100% rename from swift/ql/src/queries/Security/CWE-095/UnsafeWebViewFetchGood.swift rename to swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetchGood.swift diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected similarity index 100% rename from swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.expected rename to swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.qlref b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref similarity index 100% rename from swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.qlref rename to swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref diff --git a/swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift similarity index 100% rename from swift/ql/test/query-tests/Security/CWE-095/UnsafeWebViewFetch.swift rename to swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift From 39f135284720b9f77b23e012235eaf79e96de20e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 3 Aug 2022 14:40:13 +0100 Subject: [PATCH 579/736] Swift: Complete the rename. --- swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql | 2 +- .../test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql index 5ddd9bc7d88..87b47dc6006 100644 --- a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql @@ -7,8 +7,8 @@ * @precision high * @id swift/unsafe-webview-fetch * @tags security - * external/cwe/cwe-095 * external/cwe/cwe-079 + * external/cwe/cwe-095 * external/cwe/cwe-749 */ diff --git a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref index ddd18844328..57e842e89ff 100644 --- a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref +++ b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref @@ -1 +1 @@ -queries/Security/CWE-095/UnsafeWebviewFetch.ql \ No newline at end of file +queries/Security/CWE-079/UnsafeWebviewFetch.ql \ No newline at end of file From 9d499863456aee7d5cc8f66abacff3df30558be4 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 3 Aug 2022 17:18:57 +0100 Subject: [PATCH 580/736] Swift: Make QL-for-QL happy. --- .../Security/CWE-079/UnsafeWebViewFetch.ql | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql index 87b47dc6006..bc868d01929 100644 --- a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql @@ -23,8 +23,8 @@ import codeql.swift.frameworks.StandardLibrary.String * A taint source that is `String(contentsOf:)`. * TODO: this shouldn't be needed when `StringSource` in `String.qll` is working. */ -class StringContentsOfURLSource extends RemoteFlowSource { - StringContentsOfURLSource() { +class StringContentsOfUrlSource extends RemoteFlowSource { + StringContentsOfUrlSource() { exists(CallExpr call, AbstractFunctionDecl f | call.getFunction().(ApplyExpr).getStaticTarget() = f and f.getName() = "init(contentsOf:)" and @@ -41,12 +41,12 @@ class StringContentsOfURLSource extends RemoteFlowSource { * to `UIWebView.loadHTMLString`. */ class Sink extends DataFlow::Node { - Expr baseURL; + Expr baseUrl; Sink() { exists( AbstractFunctionDecl funcDecl, CallExpr call, string funcName, string paramName, int arg, - int baseURLarg + int baseUrlArg | // arguments to method calls... exists(string className, ClassDecl c | @@ -75,19 +75,19 @@ class Sink extends DataFlow::Node { funcDecl.getParam(pragma[only_bind_into](arg)).getName() = paramName and call.getArgument(pragma[only_bind_into](arg)).getExpr() = this.asExpr() and // match up `baseURLArg` - funcDecl.getParam(pragma[only_bind_into](baseURLarg)).getName() = "baseURL" and - call.getArgument(pragma[only_bind_into](baseURLarg)).getExpr() = baseURL + funcDecl.getParam(pragma[only_bind_into](baseUrlArg)).getName() = "baseURL" and + call.getArgument(pragma[only_bind_into](baseUrlArg)).getExpr() = baseUrl ) } /** * Gets the `baseURL` argument associated with this sink. */ - Expr getBaseURL() { result = baseURL } + Expr getBaseUrl() { result = baseUrl } } /** - * Taint configuration from taint sources to sinks (and `baseURL` arguments) + * A taint configuration from taint sources to sinks (and `baseURL` arguments) * for this query. */ class UnsafeWebViewFetchConfig extends TaintTracking::Configuration { @@ -133,11 +133,11 @@ where sink = sinkNode.getNode() and ( // base URL is nil - sink.getBaseURL() instanceof NilLiteralExpr and + sink.getBaseUrl() instanceof NilLiteralExpr and message = "Tainted data is used in a WebView fetch without restricting the base URL." or // base URL is tainted - config.hasFlow(_, any(DataFlow::Node n | n.asExpr() = sink.getBaseURL())) and + config.hasFlow(_, any(DataFlow::Node n | n.asExpr() = sink.getBaseUrl())) and message = "Tainted data is used in a WebView fetch with a tainted base URL." ) select sinkNode, sourceNode, sinkNode, message From e4dab173185f59752a71c2f4fae40060e0ee6aad Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 3 Aug 2022 18:14:14 +0100 Subject: [PATCH 581/736] Apply suggestions from code review Co-authored-by: Mathias Vorreiter Pedersen --- swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql index bc868d01929..b535d346c7f 100644 --- a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql @@ -119,7 +119,7 @@ class UnsafeWebViewFetchConfig extends TaintTracking::Configuration { c.getAMember() = f and f.getName() = ["init(string:)", "init(string:relativeTo:)"] and call.getFunction().(ApplyExpr).getStaticTarget() = f and - node1.asExpr() = call.getArgument(_).getExpr() and + node1.asExpr() = call.getAnArgument().getExpr() and node2.asExpr() = call ) } @@ -140,4 +140,4 @@ where config.hasFlow(_, any(DataFlow::Node n | n.asExpr() = sink.getBaseUrl())) and message = "Tainted data is used in a WebView fetch with a tainted base URL." ) -select sinkNode, sourceNode, sinkNode, message +select sink, sourceNode, sinkNode, message From 873c62ef78b895e9580a6bcd8cf76dbfc7cdf5e3 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 3 Aug 2022 18:16:01 +0100 Subject: [PATCH 582/736] Swift: Apply another code review suggestion. --- swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql index b535d346c7f..b5e6adafd4c 100644 --- a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql @@ -137,7 +137,7 @@ where message = "Tainted data is used in a WebView fetch without restricting the base URL." or // base URL is tainted - config.hasFlow(_, any(DataFlow::Node n | n.asExpr() = sink.getBaseUrl())) and + config.hasFlowToExpr(sink.getBaseUrl()) and message = "Tainted data is used in a WebView fetch with a tainted base URL." ) select sink, sourceNode, sinkNode, message From 997068a9cb1f287bc3d1553c6f73ae61ec7051bb Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 3 Aug 2022 18:16:31 +0100 Subject: [PATCH 583/736] Swift: Fix a suggestion merge conflict. --- swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql index b5e6adafd4c..2f853db2975 100644 --- a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql @@ -97,7 +97,7 @@ class UnsafeWebViewFetchConfig extends TaintTracking::Configuration { override predicate isSink(DataFlow::Node node) { node instanceof Sink or - node.asExpr() = any(Sink s).getBaseURL() + node.asExpr() = any(Sink s).getBaseUrl() } override predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) { From fdbe16945feef3df0c5c7778eb053529801ecdc2 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Thu, 4 Aug 2022 17:19:05 +1200 Subject: [PATCH 584/736] Ruby: Add change note --- ruby/ql/src/change-notes/2022-08-04-mime-type.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ruby/ql/src/change-notes/2022-08-04-mime-type.md diff --git a/ruby/ql/src/change-notes/2022-08-04-mime-type.md b/ruby/ql/src/change-notes/2022-08-04-mime-type.md new file mode 100644 index 00000000000..033e8ed626c --- /dev/null +++ b/ruby/ql/src/change-notes/2022-08-04-mime-type.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* Arguments to `Mime::Type#match?` and `Mime::Type#=~` are now recognised as + regular expression sources. From def1b3c3b3fef53f7e5a5f0caaa9fe270d922043 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Thu, 4 Aug 2022 17:21:29 +1200 Subject: [PATCH 585/736] Ruby: QLDoc fix --- ruby/ql/lib/codeql/ruby/Regexp.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/Regexp.qll b/ruby/ql/lib/codeql/ruby/Regexp.qll index 23237c28b0b..a0454d0f5fd 100644 --- a/ruby/ql/lib/codeql/ruby/Regexp.qll +++ b/ruby/ql/lib/codeql/ruby/Regexp.qll @@ -103,7 +103,7 @@ module RegExpInterpretation { } /** - * Nodes interpreted as regular expressions via various standard library methods. + * A node interpreted as a regular expression. */ class StdLibRegExpInterpretation extends RegExpInterpretation::Range { StdLibRegExpInterpretation() { From 7ed81db32d24b630c8b0225ca82ac49d4a1d2139 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 19 Jul 2022 12:29:27 +1200 Subject: [PATCH 586/736] Ruby: Move ActiveRecord tests to new directory --- .../frameworks/ActionController.expected | 76 +++++++++---------- .../{ => active_record}/ActiveRecord.expected | 0 .../{ => active_record}/ActiveRecord.ql | 0 .../{ => active_record}/ActiveRecord.rb | 0 4 files changed, 38 insertions(+), 38 deletions(-) rename ruby/ql/test/library-tests/frameworks/{ => active_record}/ActiveRecord.expected (100%) rename ruby/ql/test/library-tests/frameworks/{ => active_record}/ActiveRecord.ql (100%) rename ruby/ql/test/library-tests/frameworks/{ => active_record}/ActiveRecord.rb (100%) diff --git a/ruby/ql/test/library-tests/frameworks/ActionController.expected b/ruby/ql/test/library-tests/frameworks/ActionController.expected index 52ab15995c7..b935d3fde23 100644 --- a/ruby/ql/test/library-tests/frameworks/ActionController.expected +++ b/ruby/ql/test/library-tests/frameworks/ActionController.expected @@ -1,20 +1,20 @@ actionControllerControllerClasses -| ActiveRecord.rb:23:1:39:3 | FooController | -| ActiveRecord.rb:41:1:64:3 | BarController | -| ActiveRecord.rb:66:1:70:3 | BazController | -| ActiveRecord.rb:72:1:80:3 | AnnotatedController | +| active_record/ActiveRecord.rb:23:1:39:3 | FooController | +| active_record/ActiveRecord.rb:41:1:64:3 | BarController | +| active_record/ActiveRecord.rb:66:1:70:3 | BazController | +| active_record/ActiveRecord.rb:72:1:80:3 | AnnotatedController | | app/controllers/comments_controller.rb:1:1:7:3 | CommentsController | | app/controllers/foo/bars_controller.rb:3:1:39:3 | BarsController | | app/controllers/photos_controller.rb:1:1:4:3 | PhotosController | | app/controllers/posts_controller.rb:1:1:10:3 | PostsController | | app/controllers/users/notifications_controller.rb:2:3:5:5 | NotificationsController | actionControllerActionMethods -| ActiveRecord.rb:27:3:38:5 | some_request_handler | -| ActiveRecord.rb:42:3:47:5 | some_other_request_handler | -| ActiveRecord.rb:49:3:63:5 | safe_paths | -| ActiveRecord.rb:67:3:69:5 | yet_another_handler | -| ActiveRecord.rb:73:3:75:5 | index | -| ActiveRecord.rb:77:3:79:5 | unsafe_action | +| active_record/ActiveRecord.rb:27:3:38:5 | some_request_handler | +| active_record/ActiveRecord.rb:42:3:47:5 | some_other_request_handler | +| active_record/ActiveRecord.rb:49:3:63:5 | safe_paths | +| active_record/ActiveRecord.rb:67:3:69:5 | yet_another_handler | +| active_record/ActiveRecord.rb:73:3:75:5 | index | +| active_record/ActiveRecord.rb:77:3:79:5 | unsafe_action | | app/controllers/comments_controller.rb:2:3:3:5 | index | | app/controllers/comments_controller.rb:5:3:6:5 | show | | app/controllers/foo/bars_controller.rb:5:3:7:5 | index | @@ -28,40 +28,40 @@ actionControllerActionMethods | app/controllers/posts_controller.rb:8:3:9:5 | upvote | | app/controllers/users/notifications_controller.rb:3:5:4:7 | mark_as_read | paramsCalls -| ActiveRecord.rb:28:30:28:35 | call to params | -| ActiveRecord.rb:29:29:29:34 | call to params | -| ActiveRecord.rb:30:31:30:36 | call to params | -| ActiveRecord.rb:32:21:32:26 | call to params | -| ActiveRecord.rb:34:34:34:39 | call to params | -| ActiveRecord.rb:35:23:35:28 | call to params | -| ActiveRecord.rb:35:38:35:43 | call to params | -| ActiveRecord.rb:43:10:43:15 | call to params | -| ActiveRecord.rb:50:11:50:16 | call to params | -| ActiveRecord.rb:54:12:54:17 | call to params | -| ActiveRecord.rb:59:12:59:17 | call to params | -| ActiveRecord.rb:62:15:62:20 | call to params | -| ActiveRecord.rb:68:21:68:26 | call to params | -| ActiveRecord.rb:78:59:78:64 | call to params | +| active_record/ActiveRecord.rb:28:30:28:35 | call to params | +| active_record/ActiveRecord.rb:29:29:29:34 | call to params | +| active_record/ActiveRecord.rb:30:31:30:36 | call to params | +| active_record/ActiveRecord.rb:32:21:32:26 | call to params | +| active_record/ActiveRecord.rb:34:34:34:39 | call to params | +| active_record/ActiveRecord.rb:35:23:35:28 | call to params | +| active_record/ActiveRecord.rb:35:38:35:43 | call to params | +| active_record/ActiveRecord.rb:43:10:43:15 | call to params | +| active_record/ActiveRecord.rb:50:11:50:16 | call to params | +| active_record/ActiveRecord.rb:54:12:54:17 | call to params | +| active_record/ActiveRecord.rb:59:12:59:17 | call to params | +| active_record/ActiveRecord.rb:62:15:62:20 | call to params | +| active_record/ActiveRecord.rb:68:21:68:26 | call to params | +| active_record/ActiveRecord.rb:78:59:78:64 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | | app/controllers/foo/bars_controller.rb:14:10:14:15 | call to params | | app/controllers/foo/bars_controller.rb:21:21:21:26 | call to params | | app/controllers/foo/bars_controller.rb:22:10:22:15 | call to params | | app/views/foo/bars/show.html.erb:5:9:5:14 | call to params | paramsSources -| ActiveRecord.rb:28:30:28:35 | call to params | -| ActiveRecord.rb:29:29:29:34 | call to params | -| ActiveRecord.rb:30:31:30:36 | call to params | -| ActiveRecord.rb:32:21:32:26 | call to params | -| ActiveRecord.rb:34:34:34:39 | call to params | -| ActiveRecord.rb:35:23:35:28 | call to params | -| ActiveRecord.rb:35:38:35:43 | call to params | -| ActiveRecord.rb:43:10:43:15 | call to params | -| ActiveRecord.rb:50:11:50:16 | call to params | -| ActiveRecord.rb:54:12:54:17 | call to params | -| ActiveRecord.rb:59:12:59:17 | call to params | -| ActiveRecord.rb:62:15:62:20 | call to params | -| ActiveRecord.rb:68:21:68:26 | call to params | -| ActiveRecord.rb:78:59:78:64 | call to params | +| active_record/ActiveRecord.rb:28:30:28:35 | call to params | +| active_record/ActiveRecord.rb:29:29:29:34 | call to params | +| active_record/ActiveRecord.rb:30:31:30:36 | call to params | +| active_record/ActiveRecord.rb:32:21:32:26 | call to params | +| active_record/ActiveRecord.rb:34:34:34:39 | call to params | +| active_record/ActiveRecord.rb:35:23:35:28 | call to params | +| active_record/ActiveRecord.rb:35:38:35:43 | call to params | +| active_record/ActiveRecord.rb:43:10:43:15 | call to params | +| active_record/ActiveRecord.rb:50:11:50:16 | call to params | +| active_record/ActiveRecord.rb:54:12:54:17 | call to params | +| active_record/ActiveRecord.rb:59:12:59:17 | call to params | +| active_record/ActiveRecord.rb:62:15:62:20 | call to params | +| active_record/ActiveRecord.rb:68:21:68:26 | call to params | +| active_record/ActiveRecord.rb:78:59:78:64 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | | app/controllers/foo/bars_controller.rb:14:10:14:15 | call to params | | app/controllers/foo/bars_controller.rb:21:21:21:26 | call to params | diff --git a/ruby/ql/test/library-tests/frameworks/ActiveRecord.expected b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected similarity index 100% rename from ruby/ql/test/library-tests/frameworks/ActiveRecord.expected rename to ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected diff --git a/ruby/ql/test/library-tests/frameworks/ActiveRecord.ql b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.ql similarity index 100% rename from ruby/ql/test/library-tests/frameworks/ActiveRecord.ql rename to ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.ql diff --git a/ruby/ql/test/library-tests/frameworks/ActiveRecord.rb b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb similarity index 100% rename from ruby/ql/test/library-tests/frameworks/ActiveRecord.rb rename to ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb From d4f7f2b75e39627df5a6294dea09b75f43f0352d Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 19 Jul 2022 12:40:23 +1200 Subject: [PATCH 587/736] Ruby: Add test for AR PersistentWriteAccesses --- .../frameworks/active_record/ActiveRecord.ql | 6 ++++++ .../frameworks/active_record/ActiveRecord.rb | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.ql b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.ql index 6d19f9bb9ec..731679e437b 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.ql +++ b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.ql @@ -1,5 +1,7 @@ import codeql.ruby.controlflow.CfgNodes import codeql.ruby.frameworks.ActiveRecord +import codeql.ruby.Concepts +import codeql.ruby.DataFlow query predicate activeRecordModelClasses(ActiveRecordModelClass cls) { any() } @@ -18,3 +20,7 @@ query predicate activeRecordModelInstantiations( ) { i.getClass() = cls } + +query predicate persistentWriteAccesses(PersistentWriteAccess w, DataFlow::Node value) { + w.getValue() = value +} diff --git a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb index d25cbf901c3..561c4eff732 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb +++ b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb @@ -67,6 +67,22 @@ class BazController < BarController def yet_another_handler Admin.delete_by(params[:admin_condition]) end + + def create1 + Admin.create(params) + end + + def create2 + Admin.create(name: params[:name]) + end + + def update1 + Admin.update(params) + end + + def update2 + Admin.update(name: params[:name]) + end end class AnnotatedController < ActionController::Base From 21b4918904386d8cfc0619cacce74eac4370a99a Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 19 Jul 2022 13:06:57 +1200 Subject: [PATCH 588/736] Ruby: Add getPositionalArgument This gets positional arguments from a call. These are arguments which are not keyword arguments. --- ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll | 8 ++++++++ .../lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll index 29668b82e70..143030c0414 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll @@ -357,6 +357,14 @@ module ExprNodes { ) } + /** + * Gets the `nth` positional argument of this call. + * Unlike `getArgument`, this excludes keyword arguments. + */ + final ExprCfgNode getPositionalArgument(int n) { + result = this.getArgument(n) and not result instanceof PairCfgNode + } + /** Gets the number of arguments of this call. */ final int getNumberOfArguments() { result = e.getNumberOfArguments() } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll index 730445d99ac..21476fc4562 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll @@ -71,6 +71,14 @@ class CallNode extends LocalSourceNode, ExprNode { /** Gets the data-flow node corresponding to the named argument of the call corresponding to this data-flow node */ ExprNode getKeywordArgument(string name) { result.getExprNode() = node.getKeywordArgument(name) } + /** + * Gets the `nth` positional argument of this call. + * Unlike `getArgument`, this excludes keyword arguments. + */ + final ExprNode getPositionalArgument(int n) { + result.getExprNode() = node.getPositionalArgument(n) + } + /** Gets the name of the the method called by the method call (if any) corresponding to this data-flow node */ string getMethodName() { result = node.getExpr().(MethodCall).getMethodName() } From 83393dc19556d979e7b280c235c547dcaa0c145c Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 19 Jul 2022 13:11:12 +1200 Subject: [PATCH 589/736] Ruby: Recognise more AR write accesses This change means we recognise calls like ```rb User.create(params) User.update(id, params) ``` as instances of `PersistentWriteAccess`. --- .../lib/codeql/ruby/controlflow/CfgNodes.qll | 2 +- .../ruby/dataflow/internal/DataFlowPublic.qll | 2 +- .../codeql/ruby/frameworks/ActiveRecord.qll | 33 +++++++++------- .../concepts/PersistentWriteAccess.expected | 5 +++ .../app/controllers/users_controller.rb | 10 +++++ .../frameworks/ActionController.expected | 38 ++++++++++++++++--- .../active_record/ActiveRecord.expected | 24 ++++++++++-- .../frameworks/active_record/ActiveRecord.rb | 14 +++++-- 8 files changed, 100 insertions(+), 28 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll index 143030c0414..5cd5573cd0b 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll @@ -358,7 +358,7 @@ module ExprNodes { } /** - * Gets the `nth` positional argument of this call. + * Gets the `n`th positional argument of this call. * Unlike `getArgument`, this excludes keyword arguments. */ final ExprCfgNode getPositionalArgument(int n) { diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll index 21476fc4562..c946a79b826 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll @@ -72,7 +72,7 @@ class CallNode extends LocalSourceNode, ExprNode { ExprNode getKeywordArgument(string name) { result.getExprNode() = node.getKeywordArgument(name) } /** - * Gets the `nth` positional argument of this call. + * Gets the `n`th positional argument of this call. * Unlike `getArgument`, this excludes keyword arguments. */ final ExprNode getPositionalArgument(int n) { diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 142d1455ce4..a983005e766 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -364,15 +364,6 @@ private module Persistence { ) } - /** - * Holds if `call` has a keyword argument with value `value`. - */ - private predicate keywordArgumentWithValue(DataFlow::CallNode call, DataFlow::ExprNode value) { - exists(ExprNodes::PairCfgNode pair | pair = call.getArgument(_).asExpr() | - value.asExpr() = pair.getValue() - ) - } - /** A call to e.g. `User.create(name: "foo")` */ private class CreateLikeCall extends DataFlow::CallNode, PersistentWriteAccess::Range { CreateLikeCall() { @@ -386,8 +377,12 @@ private module Persistence { override DataFlow::Node getValue() { // attrs as hash elements in arg0 - hashArgumentWithValue(this, 0, result) or - keywordArgumentWithValue(this, result) + hashArgumentWithValue(this, 0, result) + or + result = this.getKeywordArgument(_) + or + result = this.getPositionalArgument(0) and + not result.asExpr() instanceof ExprNodes::HashLiteralCfgNode } } @@ -399,11 +394,19 @@ private module Persistence { } override DataFlow::Node getValue() { - keywordArgumentWithValue(this, result) + // User.update(1, name: "foo") + result = this.getKeywordArgument(_) + or + // User.update(1, params) + exists(int n | n > 0 | + result = this.getPositionalArgument(n) and + not result.asExpr() instanceof ExprNodes::ArrayLiteralCfgNode + ) or // Case where 2 array args are passed - the first an array of IDs, and the // second an array of hashes - each hash corresponding to an ID in the // first array. + // User.update([1,2,3], [{name: "foo"}, {name: "bar"}]) exists(ExprNodes::ArrayLiteralCfgNode hashesArray | this.getArgument(0).asExpr() instanceof ExprNodes::ArrayLiteralCfgNode and hashesArray = this.getArgument(1).asExpr() @@ -472,8 +475,12 @@ private module Persistence { // attrs as hash elements in arg0 hashArgumentWithValue(this, 0, result) or + // attrs as variable in arg0 + result = this.getPositionalArgument(0) and + not result.asExpr() instanceof ExprNodes::HashLiteralCfgNode + or // keyword arg - keywordArgumentWithValue(this, result) + result = this.getKeywordArgument(_) } } diff --git a/ruby/ql/test/library-tests/concepts/PersistentWriteAccess.expected b/ruby/ql/test/library-tests/concepts/PersistentWriteAccess.expected index f71e5f89116..64d01e3e93d 100644 --- a/ruby/ql/test/library-tests/concepts/PersistentWriteAccess.expected +++ b/ruby/ql/test/library-tests/concepts/PersistentWriteAccess.expected @@ -15,6 +15,11 @@ | app/controllers/users_controller.rb:23:7:23:42 | call to update_attribute | app/controllers/users_controller.rb:23:37:23:41 | "U13" | | app/controllers/users_controller.rb:26:19:26:23 | ... = ... | app/controllers/users_controller.rb:26:19:26:23 | "U14" | | app/controllers/users_controller.rb:31:7:31:32 | call to touch_all | app/controllers/users_controller.rb:31:28:31:31 | call to time | +| app/controllers/users_controller.rb:35:7:35:27 | call to update | app/controllers/users_controller.rb:35:22:35:26 | attrs | +| app/controllers/users_controller.rb:36:7:36:28 | call to update! | app/controllers/users_controller.rb:36:23:36:27 | attrs | +| app/controllers/users_controller.rb:39:7:39:24 | call to create | app/controllers/users_controller.rb:39:19:39:23 | attrs | +| app/controllers/users_controller.rb:40:7:40:25 | call to create! | app/controllers/users_controller.rb:40:20:40:24 | attrs | +| app/controllers/users_controller.rb:41:7:41:24 | call to insert | app/controllers/users_controller.rb:41:19:41:23 | attrs | | app/models/user.rb:4:5:4:28 | call to update | app/models/user.rb:4:23:4:27 | "U15" | | app/models/user.rb:5:5:5:23 | call to update | app/models/user.rb:5:18:5:22 | "U16" | | app/models/user.rb:6:5:6:56 | call to update_attributes | app/models/user.rb:6:35:6:39 | "U17" | diff --git a/ruby/ql/test/library-tests/concepts/app/controllers/users_controller.rb b/ruby/ql/test/library-tests/concepts/app/controllers/users_controller.rb index 83ee6088527..062c643e0ae 100644 --- a/ruby/ql/test/library-tests/concepts/app/controllers/users_controller.rb +++ b/ruby/ql/test/library-tests/concepts/app/controllers/users_controller.rb @@ -29,6 +29,16 @@ module Users # TouchAllCall User.touch_all User.touch_all(time: time) + + # UpdateLikeClassMethodCall + attrs = {name: "U15"} + User.update(8, attrs) + User.update!(8, attrs) + + # CreateLikeClassMethodCall + User.create(attrs) + User.create!(attrs) + User.insert(attrs) end def get_uid diff --git a/ruby/ql/test/library-tests/frameworks/ActionController.expected b/ruby/ql/test/library-tests/frameworks/ActionController.expected index b935d3fde23..d6de776bbff 100644 --- a/ruby/ql/test/library-tests/frameworks/ActionController.expected +++ b/ruby/ql/test/library-tests/frameworks/ActionController.expected @@ -1,8 +1,8 @@ actionControllerControllerClasses | active_record/ActiveRecord.rb:23:1:39:3 | FooController | | active_record/ActiveRecord.rb:41:1:64:3 | BarController | -| active_record/ActiveRecord.rb:66:1:70:3 | BazController | -| active_record/ActiveRecord.rb:72:1:80:3 | AnnotatedController | +| active_record/ActiveRecord.rb:66:1:94:3 | BazController | +| active_record/ActiveRecord.rb:96:1:104:3 | AnnotatedController | | app/controllers/comments_controller.rb:1:1:7:3 | CommentsController | | app/controllers/foo/bars_controller.rb:3:1:39:3 | BarsController | | app/controllers/photos_controller.rb:1:1:4:3 | PhotosController | @@ -13,8 +13,14 @@ actionControllerActionMethods | active_record/ActiveRecord.rb:42:3:47:5 | some_other_request_handler | | active_record/ActiveRecord.rb:49:3:63:5 | safe_paths | | active_record/ActiveRecord.rb:67:3:69:5 | yet_another_handler | -| active_record/ActiveRecord.rb:73:3:75:5 | index | -| active_record/ActiveRecord.rb:77:3:79:5 | unsafe_action | +| active_record/ActiveRecord.rb:71:3:73:5 | create1 | +| active_record/ActiveRecord.rb:75:3:77:5 | create2 | +| active_record/ActiveRecord.rb:79:3:81:5 | create3 | +| active_record/ActiveRecord.rb:83:3:85:5 | update1 | +| active_record/ActiveRecord.rb:87:3:89:5 | update2 | +| active_record/ActiveRecord.rb:91:3:93:5 | update3 | +| active_record/ActiveRecord.rb:97:3:99:5 | index | +| active_record/ActiveRecord.rb:101:3:103:5 | unsafe_action | | app/controllers/comments_controller.rb:2:3:3:5 | index | | app/controllers/comments_controller.rb:5:3:6:5 | show | | app/controllers/foo/bars_controller.rb:5:3:7:5 | index | @@ -41,7 +47,17 @@ paramsCalls | active_record/ActiveRecord.rb:59:12:59:17 | call to params | | active_record/ActiveRecord.rb:62:15:62:20 | call to params | | active_record/ActiveRecord.rb:68:21:68:26 | call to params | -| active_record/ActiveRecord.rb:78:59:78:64 | call to params | +| active_record/ActiveRecord.rb:72:18:72:23 | call to params | +| active_record/ActiveRecord.rb:76:24:76:29 | call to params | +| active_record/ActiveRecord.rb:76:49:76:54 | call to params | +| active_record/ActiveRecord.rb:80:25:80:30 | call to params | +| active_record/ActiveRecord.rb:80:50:80:55 | call to params | +| active_record/ActiveRecord.rb:84:21:84:26 | call to params | +| active_record/ActiveRecord.rb:88:27:88:32 | call to params | +| active_record/ActiveRecord.rb:88:52:88:57 | call to params | +| active_record/ActiveRecord.rb:92:28:92:33 | call to params | +| active_record/ActiveRecord.rb:92:53:92:58 | call to params | +| active_record/ActiveRecord.rb:102:59:102:64 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | | app/controllers/foo/bars_controller.rb:14:10:14:15 | call to params | | app/controllers/foo/bars_controller.rb:21:21:21:26 | call to params | @@ -61,7 +77,17 @@ paramsSources | active_record/ActiveRecord.rb:59:12:59:17 | call to params | | active_record/ActiveRecord.rb:62:15:62:20 | call to params | | active_record/ActiveRecord.rb:68:21:68:26 | call to params | -| active_record/ActiveRecord.rb:78:59:78:64 | call to params | +| active_record/ActiveRecord.rb:72:18:72:23 | call to params | +| active_record/ActiveRecord.rb:76:24:76:29 | call to params | +| active_record/ActiveRecord.rb:76:49:76:54 | call to params | +| active_record/ActiveRecord.rb:80:25:80:30 | call to params | +| active_record/ActiveRecord.rb:80:50:80:55 | call to params | +| active_record/ActiveRecord.rb:84:21:84:26 | call to params | +| active_record/ActiveRecord.rb:88:27:88:32 | call to params | +| active_record/ActiveRecord.rb:88:52:88:57 | call to params | +| active_record/ActiveRecord.rb:92:28:92:33 | call to params | +| active_record/ActiveRecord.rb:92:53:92:58 | call to params | +| active_record/ActiveRecord.rb:102:59:102:64 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | | app/controllers/foo/bars_controller.rb:14:10:14:15 | call to params | | app/controllers/foo/bars_controller.rb:21:21:21:26 | 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 b416d853440..d4022297559 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected +++ b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected @@ -22,7 +22,7 @@ activeRecordSqlExecutionRanges | ActiveRecord.rb:46:20:46:32 | ... + ... | | ActiveRecord.rb:52:16:52:28 | "name #{...}" | | ActiveRecord.rb:56:20:56:39 | "username = #{...}" | -| ActiveRecord.rb:78:27:78:76 | "this is an unsafe annotation:..." | +| ActiveRecord.rb:102:27:102:76 | "this is an unsafe annotation:..." | activeRecordModelClassMethodCalls | ActiveRecord.rb:2:3:2:17 | call to has_many | | ActiveRecord.rb:6:3:6:24 | call to belongs_to | @@ -45,8 +45,14 @@ activeRecordModelClassMethodCalls | ActiveRecord.rb:60:5:60:33 | call to find_by | | ActiveRecord.rb:62:5:62:34 | call to find | | ActiveRecord.rb:68:5:68:45 | call to delete_by | -| ActiveRecord.rb:74:13:74:54 | call to annotate | -| ActiveRecord.rb:78:13:78:77 | call to annotate | +| ActiveRecord.rb:72:5:72:24 | call to create | +| ActiveRecord.rb:76:5:76:66 | call to create | +| ActiveRecord.rb:80:5:80:68 | call to create | +| ActiveRecord.rb:84:5:84:27 | call to update | +| ActiveRecord.rb:88:5:88:69 | call to update | +| ActiveRecord.rb:92:5:92:71 | call to update | +| ActiveRecord.rb:98:13:98:54 | call to annotate | +| ActiveRecord.rb:102:13:102:77 | call to annotate | potentiallyUnsafeSqlExecutingMethodCall | ActiveRecord.rb:9:5:9:68 | call to find | | ActiveRecord.rb:19:5:19:25 | call to destroy_by | @@ -58,7 +64,7 @@ potentiallyUnsafeSqlExecutingMethodCall | ActiveRecord.rb:46:5:46:33 | call to delete_by | | ActiveRecord.rb:52:5:52:29 | call to order | | ActiveRecord.rb:56:7:56:40 | call to find_by | -| ActiveRecord.rb:78:13:78:77 | call to annotate | +| ActiveRecord.rb:102:13:102:77 | call to annotate | activeRecordModelInstantiations | ActiveRecord.rb:9:5:9:68 | call to find | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:13:5:13:40 | call to find_by | ActiveRecord.rb:1:1:3:3 | UserGroup | @@ -66,3 +72,13 @@ activeRecordModelInstantiations | ActiveRecord.rb:56:7:56:40 | call to find_by | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:60:5:60:33 | call to find_by | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:62:5:62:34 | call to find | ActiveRecord.rb:5:1:15:3 | User | +persistentWriteAccesses +| ActiveRecord.rb:72:5:72:24 | call to create | ActiveRecord.rb:72:18:72:23 | call to params | +| ActiveRecord.rb:76:5:76:66 | call to create | ActiveRecord.rb:76:24:76:36 | ...[...] | +| ActiveRecord.rb:76:5:76:66 | call to create | ActiveRecord.rb:76:49:76:65 | ...[...] | +| ActiveRecord.rb:80:5:80:68 | call to create | ActiveRecord.rb:80:25:80:37 | ...[...] | +| ActiveRecord.rb:80:5:80:68 | call to create | ActiveRecord.rb:80:50:80:66 | ...[...] | +| ActiveRecord.rb:84:5:84:27 | call to update | ActiveRecord.rb:84:21:84:26 | call to params | +| ActiveRecord.rb:88:5:88:69 | call to update | ActiveRecord.rb:88:27:88:39 | ...[...] | +| ActiveRecord.rb:88:5:88:69 | call to update | ActiveRecord.rb:88:52:88:68 | ...[...] | +| ActiveRecord.rb:92:5:92:71 | call to update | ActiveRecord.rb:92:21:92:70 | call to [] | diff --git a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb index 561c4eff732..46df51deb43 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb +++ b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb @@ -73,15 +73,23 @@ class BazController < BarController end def create2 - Admin.create(name: params[:name]) + Admin.create(name: params[:name], password: params[:password]) + end + + def create3 + Admin.create({name: params[:name], password: params[:password]}) end def update1 - Admin.update(params) + Admin.update(1, params) end def update2 - Admin.update(name: params[:name]) + Admin.update(1, name: params[:name], password: params[:password]) + end + + def update3 + Admin.update(1, {name: params[:name], password: params[:password]}) end end From 452811dbf2caffe017c22d4d214911fdaa889fd1 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Thu, 4 Aug 2022 17:25:55 +1200 Subject: [PATCH 590/736] Ruby: move change note --- ruby/ql/{src => lib}/change-notes/2022-08-04-mime-type.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ruby/ql/{src => lib}/change-notes/2022-08-04-mime-type.md (100%) diff --git a/ruby/ql/src/change-notes/2022-08-04-mime-type.md b/ruby/ql/lib/change-notes/2022-08-04-mime-type.md similarity index 100% rename from ruby/ql/src/change-notes/2022-08-04-mime-type.md rename to ruby/ql/lib/change-notes/2022-08-04-mime-type.md From ee9e6b1f2e03a4e8cf1c01729e8208df1f7e8218 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Thu, 4 Aug 2022 17:27:34 +1200 Subject: [PATCH 591/736] Ruby: Add change note --- ruby/ql/lib/change-notes/2022-08-04-active-record-writes.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ruby/ql/lib/change-notes/2022-08-04-active-record-writes.md diff --git a/ruby/ql/lib/change-notes/2022-08-04-active-record-writes.md b/ruby/ql/lib/change-notes/2022-08-04-active-record-writes.md new file mode 100644 index 00000000000..b2b4d0bc2ad --- /dev/null +++ b/ruby/ql/lib/change-notes/2022-08-04-active-record-writes.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* Calls to `ActiveRecord::Base.create` and `ActiveRecord::Base.update` are now + recognised as write accesses. From e4c9f8a9a2e0e36d1576efa220c70309c7bc1740 Mon Sep 17 00:00:00 2001 From: mc <42146119+mchammer01@users.noreply.github.com> Date: Thu, 4 Aug 2022 10:05:52 +0100 Subject: [PATCH 592/736] Update docs/codeql/codeql-cli/exit-codes.rst --- docs/codeql/codeql-cli/exit-codes.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-cli/exit-codes.rst b/docs/codeql/codeql-cli/exit-codes.rst index 04d4d93dc07..86a1dfc12dd 100644 --- a/docs/codeql/codeql-cli/exit-codes.rst +++ b/docs/codeql/codeql-cli/exit-codes.rst @@ -71,4 +71,4 @@ Other ----- In the case of really severe problems within the JVM that runs ``codeql``, it might return a nonzero exit code of its own choosing. -This should only happen if something is severely wrong with the CodeQL installation, or a memory issue with the host system running the CodeQL process. For example, Unix systems may return `Exit Code 137` to indicate that the kernel has killed a process that CodeQL has started. One way to troubleshoot this issue is to modify your `--ram=` flag for the `codeql database analyze` step and re-run your workflow. +This should only happen if something is severely wrong with the CodeQL installation, or if there is a memory issue with the host system running the CodeQL process. For example, Unix systems may return `Exit Code 137` to indicate that the kernel has killed a process that CodeQL has started. One way to troubleshoot this is to modify your `--ram=` flag for the `codeql database analyze` step and re-run your workflow. From bc6a74b4ddeb077a44a73b134ef6ea0bc59d9d87 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 4 Aug 2022 10:02:21 +0200 Subject: [PATCH 593/736] C#: Disable CLR tracer Also remove old tracer configs, as we now use the Lua tracer. --- csharp/codeql-extractor.yml | 6 ------ .../Semmle.Extraction.CSharp/Extractor/Extractor.cs | 6 ------ .../Semmle.Extraction.CSharp/Extractor/Options.cs | 8 -------- csharp/extractor/Semmle.Extraction.Tests/Options.cs | 1 - 4 files changed, 21 deletions(-) diff --git a/csharp/codeql-extractor.yml b/csharp/codeql-extractor.yml index 5d498049a8a..4e1fa7934ce 100644 --- a/csharp/codeql-extractor.yml +++ b/csharp/codeql-extractor.yml @@ -4,12 +4,6 @@ version: 1.22.1 column_kind: "utf16" extra_env_vars: DOTNET_GENERATE_ASPNET_CERTIFICATE: "false" - COR_ENABLE_PROFILING: "1" - COR_PROFILER: "{A3C70A64-7D41-4A94-A3F6-FD47D9259997}" - COR_PROFILER_PATH_64: "${env.CODEQL_EXTRACTOR_CSHARP_ROOT}/tools/${env.CODEQL_PLATFORM}/clrtracer64${env.CODEQL_PLATFORM_DLL_EXTENSION}" - CORECLR_ENABLE_PROFILING: "1" - CORECLR_PROFILER: "{A3C70A64-7D41-4A94-A3F6-FD47D9259997}" - CORECLR_PROFILER_PATH_64: "${env.CODEQL_EXTRACTOR_CSHARP_ROOT}/tools/${env.CODEQL_PLATFORM}/clrtracer64${env.CODEQL_PLATFORM_DLL_EXTENSION}" file_types: - name: cs display_name: C# sources diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs index 8d63c6288bf..ec4f44c21c7 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs @@ -99,12 +99,6 @@ namespace Semmle.Extraction.CSharp using var logger = MakeLogger(options.Verbosity, options.Console); - if (Environment.GetEnvironmentVariable("SEMMLE_CLRTRACER") == "1" && !options.ClrTracer) - { - logger.Log(Severity.Info, "Skipping extraction since already extracted from the CLR tracer"); - return ExitCode.Ok; - } - var canonicalPathCache = CanonicalPathCache.Create(logger, 1000); var pathTransformer = new PathTransformer(canonicalPathCache); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Options.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Options.cs index 7b4e0e95ea3..c2d21d6a16a 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Options.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Options.cs @@ -27,11 +27,6 @@ namespace Semmle.Extraction.CSharp /// public IList CompilerArguments { get; } = new List(); - /// - /// Holds if the extractor was launched from the CLR tracer. - /// - public bool ClrTracer { get; private set; } = false; - /// /// Holds if assembly information should be prefixed to TRAP labels. /// @@ -87,9 +82,6 @@ namespace Semmle.Extraction.CSharp { switch (flag) { - case "clrtracer": - ClrTracer = value; - return true; case "assemblysensitivetrap": AssemblySensitiveTrap = value; return true; diff --git a/csharp/extractor/Semmle.Extraction.Tests/Options.cs b/csharp/extractor/Semmle.Extraction.Tests/Options.cs index 9b17320fbaa..2637eb3d5f4 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/Options.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/Options.cs @@ -29,7 +29,6 @@ namespace Semmle.Extraction.Tests Assert.True(options.Threads >= 1); Assert.Equal(Verbosity.Info, options.Verbosity); Assert.False(options.Console); - Assert.False(options.ClrTracer); Assert.False(options.PDB); Assert.False(options.Fast); Assert.Equal(TrapWriter.CompressionMode.Brotli, options.TrapCompression); From 64e86609045bd77add9f340888f34e73a1813fd1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 4 Aug 2022 14:18:25 +0200 Subject: [PATCH 594/736] C#: Simplification of AspNetCoreRemoteFlowSourceMember. --- .../csharp/security/dataflow/flowsources/Remote.qll | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll index c45d764701e..241f16d06ed 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll @@ -172,19 +172,19 @@ class ActionMethodParameter extends RemoteFlowSource, DataFlow::ParameterNode { abstract class AspNetCoreRemoteFlowSource extends RemoteFlowSource { } /** - * Data flow for AST.NET Core. + * Data flow for ASP.NET Core. * * Flow is defined from any ASP.NET Core remote source object to any of its member * properties. */ -private class AspNetCoreRemoteFlowSourceMember extends TaintTracking::TaintedMember { +private class AspNetCoreRemoteFlowSourceMember extends TaintTracking::TaintedMember, Property { AspNetCoreRemoteFlowSourceMember() { this.getDeclaringType() = any(AspNetCoreRemoteFlowSource source).getType() and this.isPublic() and not this.isStatic() and - exists(Property p | p = this | - p.isAutoImplemented() and p.getGetter().isPublic() and p.getSetter().isPublic() - ) + this.isAutoImplemented() and + this.getGetter().isPublic() and + this.getSetter().isPublic() } } From 38ede25385608b3531afd01d5a314c8d74b8c882 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 4 Aug 2022 14:19:39 +0200 Subject: [PATCH 595/736] Ruby: Add test that illustrates missing flow for keyword arguments --- .../dataflow/params/params-flow.expected | 12 ++++++++++++ .../library-tests/dataflow/params/params_flow.rb | 14 ++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) 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 3df4f046a07..79743085f1d 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,6 @@ failures +| params_flow.rb:17:13:17:82 | # $ hasValueFlow=3 $ hasValueFlow=6 $ hasValueFlow=8 $ hasValueFlow=16 | Missing result:hasValueFlow=16 | +| params_flow.rb:26:13:26:66 | # $ hasValueFlow=9 $ hasValueFlow=13 $ hasValueFlow=14 | Missing result:hasValueFlow=14 | 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 | @@ -26,6 +28,10 @@ edges | params_flow.rb:35:12:35:20 | call to taint : | params_flow.rb:25:12:25:13 | p1 : | | params_flow.rb:35:23:35:28 | ** ... [element :p3] : | params_flow.rb:25:17:25:24 | **kwargs [element :p3] : | | params_flow.rb:35:25:35:28 | args [element :p3] : | params_flow.rb:35:23:35:28 | ** ... [element :p3] : | +| params_flow.rb:37:34:37:42 | call to taint : | params_flow.rb:38:10:38:13 | args [element :p2] : | +| params_flow.rb:38:8:38:13 | ** ... [element :p2] : | params_flow.rb:25:17:25:24 | **kwargs [element :p2] : | +| params_flow.rb:38:10:38:13 | args [element :p2] : | params_flow.rb:38:8:38:13 | ** ... [element :p2] : | +| params_flow.rb:41:13:41:21 | call to taint : | params_flow.rb:16:18:16:19 | p2 : | nodes | params_flow.rb:9:16:9:17 | p1 : | semmle.label | p1 : | | params_flow.rb:9:20:9:21 | p2 : | semmle.label | p2 : | @@ -60,6 +66,10 @@ nodes | params_flow.rb:35:12:35:20 | call to taint : | semmle.label | call to taint : | | params_flow.rb:35:23:35:28 | ** ... [element :p3] : | semmle.label | ** ... [element :p3] : | | params_flow.rb:35:25:35:28 | args [element :p3] : | semmle.label | args [element :p3] : | +| params_flow.rb:37:34:37:42 | call to taint : | semmle.label | call to taint : | +| params_flow.rb:38:8:38:13 | ** ... [element :p2] : | semmle.label | ** ... [element :p2] : | +| params_flow.rb:38:10:38:13 | args [element :p2] : | semmle.label | args [element :p2] : | +| params_flow.rb:41:13:41:21 | call to taint : | semmle.label | call to taint : | subpaths #select | params_flow.rb:10:10:10:11 | 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 : | call to taint : | @@ -70,8 +80,10 @@ subpaths | params_flow.rb:18:10:18:11 | 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 : | call to taint : | | params_flow.rb:18:10:18:11 | 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 : | call to taint : | | params_flow.rb:18:10:18:11 | 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 : | call to taint : | +| params_flow.rb:18:10:18:11 | 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 : | call to taint : | | params_flow.rb:26:10:26:11 | p1 | params_flow.rb:33:12:33:19 | call to taint : | params_flow.rb:26:10:26:11 | p1 | $@ | params_flow.rb:33:12:33:19 | call to taint : | call to taint : | | params_flow.rb:26:10:26:11 | p1 | params_flow.rb:35:12:35:20 | call to taint : | params_flow.rb:26:10:26:11 | p1 | $@ | params_flow.rb:35:12:35:20 | call to taint : | call to taint : | | params_flow.rb:28:10:28:22 | ( ... ) | 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 : | call to taint : | +| params_flow.rb:28:10:28:22 | ( ... ) | 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 : | call to taint : | | params_flow.rb:29:10:29:22 | ( ... ) | 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 : | call to taint : | | params_flow.rb:29:10:29:22 | ( ... ) | 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 : | 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 d3a99e61f37..a41706261e2 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/params/params_flow.rb @@ -14,8 +14,8 @@ end positional(taint(1), taint(2)) def keyword(p1:, p2:) - sink p1 # $ hasValueFlow=3 $ hasValueFlow=6 $ hasValueFlow=8 - sink p2 # $ hasValueFlow=4 $ hasValueFlow=5 $ hasValueFlow=7 + sink p1 # $ hasValueFlow=3 $ hasValueFlow=6 $ hasValueFlow=8 $ hasValueFlow=16 + sink p2 # $ hasValueFlow=4 $ hasValueFlow=5 $ hasValueFlow=7 $ hasValueFlow=17 end keyword(p1: taint(3), p2: taint(4)) @@ -23,9 +23,9 @@ keyword(p2: taint(5), p1: taint(6)) keyword(:p2 => taint(7), :p1 => taint(8)) def kwargs(p1:, **kwargs) - sink p1 # $ hasValueFlow=9 $ hasValueFlow=13 + sink p1 # $ hasValueFlow=9 $ hasValueFlow=13 $ hasValueFlow=14 sink (kwargs[:p1]) - sink (kwargs[:p2]) # $ hasValueFlow=10 + sink (kwargs[:p2]) # $ hasValueFlow=10 $ hasValueFlow=15 sink (kwargs[:p3]) # $ hasValueFlow=11 $ hasValueFlow=12 sink (kwargs[:p4]) end @@ -33,3 +33,9 @@ end kwargs(p1: taint(9), p2: taint(10), p3: taint(11), p4: "") args = { p3: taint(12), p4: "" } kwargs(p1: taint(13), **args) + +args = {:p1 => taint(14), :p2 => taint(15) } +kwargs(**args) + +args = {:p1 => taint(16) } +keyword(p2: taint(17), **args) From 43d4324f65b0a3f56aeccef98c14d013607ba1c5 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 4 Aug 2022 16:05:30 +0200 Subject: [PATCH 596/736] Java: Improve performance of ConfusingOverloading. --- .../ConfusingOverloading.ql | 40 ++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql b/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql index 726c2453f65..e3ac1384243 100644 --- a/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql +++ b/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql @@ -60,13 +60,43 @@ private predicate candidateMethod(RefType t, Method m, string name, int numParam not whitelist(name) } -pragma[inline] -private predicate potentiallyConfusingTypes(Type a, Type b) { - exists(RefType commonSubtype | hasSubtypeOrInstantiation*(a, commonSubtype) | - hasSubtypeOrInstantiation*(b, commonSubtype) +predicate paramTypePair(Type t1, Type t2) { + exists(Method n, Method m, int i | + overloadedMethodsMostSpecific(n, m) and + t1 = n.getParameterType(i) and + t2 = m.getParameterType(i) ) +} + +// handle simple cases separately +predicate potentiallyConfusingTypesSimple(Type t1, Type t2) { + paramTypePair(t1, t2) and + ( + t1 = t2 + or + t1 instanceof TypeObject and t2 instanceof RefType + or + t2 instanceof TypeObject and t1 instanceof RefType + or + confusingPrimitiveBoxedTypes(t1, t2) + ) +} + +// check erased types first +predicate potentiallyConfusingTypesRefTypes(RefType t1, RefType t2) { + paramTypePair(t1, t2) and + not potentiallyConfusingTypesSimple(t1, t2) and + haveIntersection(t1, t2) +} + +// then check hasSubtypeOrInstantiation +predicate potentiallyConfusingTypes(Type t1, Type t2) { + potentiallyConfusingTypesSimple(t1, t2) or - confusingPrimitiveBoxedTypes(a, b) + potentiallyConfusingTypesRefTypes(t1, t2) and + exists(RefType commonSubtype | hasSubtypeOrInstantiation*(t1, commonSubtype) | + hasSubtypeOrInstantiation*(t2, commonSubtype) + ) } private predicate hasSubtypeOrInstantiation(RefType t, RefType sub) { From 01c0d4b59f5a0a50ee6255735e7734c4604ac266 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 4 Aug 2022 15:19:56 +0200 Subject: [PATCH 597/736] Ruby: Support more flow through keyword arguments --- .../DataFlowConsistency.ql | 2 +- .../dataflow/internal/DataFlowPrivate.qll | 117 +++++++++++++++--- .../dataflow/params/params-flow.expected | 16 ++- 3 files changed, 112 insertions(+), 23 deletions(-) diff --git a/ruby/ql/consistency-queries/DataFlowConsistency.ql b/ruby/ql/consistency-queries/DataFlowConsistency.ql index 000bbc57899..1a891dd40f7 100644 --- a/ruby/ql/consistency-queries/DataFlowConsistency.ql +++ b/ruby/ql/consistency-queries/DataFlowConsistency.ql @@ -10,6 +10,6 @@ private class MyConsistencyConfiguration extends ConsistencyConfiguration { or n instanceof SummaryNode or - n instanceof HashSplatArgumentsNode + n instanceof SynthHashSplatArgumentsNode } } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index a6c73b1d893..b19894bf2d1 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -227,6 +227,7 @@ private module Cached { } or TSelfParameterNode(MethodBase m) or TBlockParameterNode(MethodBase m) or + TSynthHashSplatParameterNode(MethodBase m) { m.getAParameter() instanceof KeywordParameter } or TExprPostUpdateNode(CfgNodes::ExprCfgNode n) { n instanceof Argument or n = any(CfgNodes::ExprNodes::InstanceVariableAccessCfgNode v).getReceiver() @@ -240,12 +241,13 @@ private module Cached { TSummaryParameterNode(FlowSummaryImpl::Public::SummarizedCallable c, ParameterPosition pos) { FlowSummaryImpl::Private::summaryParameterNodeRange(c, pos) } or - THashSplatArgumentsNode(CfgNodes::ExprNodes::CallCfgNode c) { + TSynthHashSplatArgumentsNode(CfgNodes::ExprNodes::CallCfgNode c) { exists(Argument arg | arg.isArgumentOf(c, any(ArgumentPosition pos | pos.isKeyword(_)))) } class TParameterNode = - TNormalParameterNode or TBlockParameterNode or TSelfParameterNode or TSummaryParameterNode; + TNormalParameterNode or TBlockParameterNode or TSelfParameterNode or + TSynthHashSplatParameterNode or TSummaryParameterNode; private predicate defaultValueFlow(NamedParameter p, ExprNode e) { p.(OptionalParameter).getDefaultValue() = e.getExprNode().getExpr() @@ -328,18 +330,21 @@ private module Cached { cached predicate isLocalSourceNode(Node n) { - n instanceof ParameterNode - or - n instanceof PostUpdateNodes::ExprPostUpdateNode - or - // Nodes that can't be reached from another entry definition or expression. - not reachedFromExprOrEntrySsaDef(n) - or - // Ensure all entry SSA definitions are local sources -- for parameters, this - // is needed by type tracking. Note that when the parameter has a default value, - // it will be reachable from an expression (the default value) and therefore - // won't be caught by the rule above. - entrySsaDefinition(n) + not n instanceof SynthHashSplatParameterNode and + ( + n instanceof ParameterNode + or + n instanceof PostUpdateNodes::ExprPostUpdateNode + or + // Nodes that can't be reached from another entry definition or expression. + not reachedFromExprOrEntrySsaDef(n) + or + // Ensure all entry SSA definitions are local sources -- for parameters, this + // is needed by type tracking. Note that when the parameter has a default value, + // it will be reachable from an expression (the default value) and therefore + // won't be caught by the rule above. + entrySsaDefinition(n) + ) } cached @@ -415,7 +420,9 @@ predicate nodeIsHidden(Node n) { or n instanceof SynthReturnNode or - n instanceof HashSplatArgumentsNode + n instanceof SynthHashSplatParameterNode + or + n instanceof SynthHashSplatArgumentsNode } /** An SSA definition, viewed as a node in a data flow graph. */ @@ -570,6 +577,74 @@ private module ParameterNodes { } } + /** + * 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 + * + * args = {:p1 => taint(1), :p2 => taint(2) } + * foo(**args) + * ``` + * + * 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 + * + * ```rb + * foo(p1: taint(1), p2: taint(2)) + * ``` + * + * where direct keyword matching is possible, since we construct a synthesized hash + * splat argument (`SynthHashSplatArgumentsNode`) 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 redunancy 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. + */ + class SynthHashSplatParameterNode extends ParameterNodeImpl, TSynthHashSplatParameterNode { + private MethodBase method; + + SynthHashSplatParameterNode() { this = TSynthHashSplatParameterNode(method) } + + final Callable getMethod() { result = method } + + /** + * Gets a keyword parameter that will be the result of reading `c` out of this + * synthesized node. + */ + NormalParameterNode getAKeywordParameter(ContentSet c) { + exists(KeywordParameter p | + p = result.getParameter() and + p = method.getAParameter() + | + c = getKeywordContent(p.getName()) or + c.isSingleton(TUnknownElementContent()) + ) + } + + override Parameter getParameter() { none() } + + override predicate isSourceParameterOf(Callable c, ParameterPosition pos) { + c = method and pos.isHashSplat() + } + + override CfgScope getCfgScope() { result = method } + + override Location getLocationImpl() { result = method.getLocation() } + + override string toStringImpl() { result = "**kwargs" } + } + /** A parameter for a library callable with a flow summary. */ class SummaryParameterNode extends ParameterNodeImpl, TSummaryParameterNode { private FlowSummaryImpl::Public::SummarizedCallable sc; @@ -689,10 +764,10 @@ private module ArgumentNodes { * part of the method signature, such that those cannot end up in the hash-splat * parameter. */ - class HashSplatArgumentsNode extends ArgumentNode, THashSplatArgumentsNode { + class SynthHashSplatArgumentsNode extends ArgumentNode, TSynthHashSplatArgumentsNode { CfgNodes::ExprNodes::CallCfgNode c; - HashSplatArgumentsNode() { this = THashSplatArgumentsNode(c) } + SynthHashSplatArgumentsNode() { this = TSynthHashSplatArgumentsNode(c) } override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { this.sourceArgumentOf(call.asCall(), pos) @@ -704,10 +779,10 @@ private module ArgumentNodes { } } - private class HashSplatArgumentsNodeImpl extends NodeImpl, THashSplatArgumentsNode { + private class SynthHashSplatArgumentsNodeImpl extends NodeImpl, TSynthHashSplatArgumentsNode { CfgNodes::ExprNodes::CallCfgNode c; - HashSplatArgumentsNodeImpl() { this = THashSplatArgumentsNode(c) } + SynthHashSplatArgumentsNodeImpl() { this = TSynthHashSplatArgumentsNode(c) } override CfgScope getCfgScope() { result = c.getExpr().getCfgScope() } @@ -929,7 +1004,7 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { or // Wrap all keyword arguments in a synthesized hash-splat argument node exists(CfgNodes::ExprNodes::CallCfgNode call, ArgumentPosition keywordPos, string name | - node2 = THashSplatArgumentsNode(call) and + node2 = TSynthHashSplatArgumentsNode(call) and node1.asExpr().(Argument).isArgumentOf(call, keywordPos) and keywordPos.isKeyword(name) and c = getKeywordContent(name) @@ -962,6 +1037,8 @@ predicate readStep(Node node1, ContentSet c, Node node2) { )) ) or + node2 = node1.(SynthHashSplatParameterNode).getAKeywordParameter(c) + or FlowSummaryImpl::Private::Steps::summaryReadStep(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 79743085f1d..82840bcf95e 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected @@ -1,6 +1,4 @@ failures -| params_flow.rb:17:13:17:82 | # $ hasValueFlow=3 $ hasValueFlow=6 $ hasValueFlow=8 $ hasValueFlow=16 | Missing result:hasValueFlow=16 | -| params_flow.rb:26:13:26:66 | # $ hasValueFlow=9 $ hasValueFlow=13 $ hasValueFlow=14 | Missing result:hasValueFlow=14 | 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 | @@ -28,10 +26,16 @@ edges | params_flow.rb:35:12:35:20 | call to taint : | params_flow.rb:25:12:25:13 | p1 : | | params_flow.rb:35:23:35:28 | ** ... [element :p3] : | params_flow.rb:25:17:25:24 | **kwargs [element :p3] : | | params_flow.rb:35:25:35:28 | args [element :p3] : | params_flow.rb:35:23:35:28 | ** ... [element :p3] : | +| params_flow.rb:37:16:37:24 | call to taint : | params_flow.rb:38:10:38:13 | args [element :p1] : | | params_flow.rb:37:34:37:42 | call to taint : | params_flow.rb:38:10:38:13 | args [element :p2] : | +| params_flow.rb:38:8:38:13 | ** ... [element :p1] : | params_flow.rb:25:12:25:13 | p1 : | | params_flow.rb:38:8:38:13 | ** ... [element :p2] : | params_flow.rb:25:17:25:24 | **kwargs [element :p2] : | +| params_flow.rb:38:10:38:13 | args [element :p1] : | params_flow.rb:38:8:38:13 | ** ... [element :p1] : | | params_flow.rb:38:10:38:13 | args [element :p2] : | params_flow.rb:38:8:38:13 | ** ... [element :p2] : | +| params_flow.rb:40:16:40:24 | call to taint : | params_flow.rb:41:26:41:29 | args [element :p1] : | | 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] : | nodes | params_flow.rb:9:16:9:17 | p1 : | semmle.label | p1 : | | params_flow.rb:9:20:9:21 | p2 : | semmle.label | p2 : | @@ -66,10 +70,16 @@ nodes | params_flow.rb:35:12:35:20 | call to taint : | semmle.label | call to taint : | | params_flow.rb:35:23:35:28 | ** ... [element :p3] : | semmle.label | ** ... [element :p3] : | | params_flow.rb:35:25:35:28 | args [element :p3] : | semmle.label | args [element :p3] : | +| params_flow.rb:37:16:37:24 | call to taint : | semmle.label | call to taint : | | params_flow.rb:37:34:37:42 | call to taint : | semmle.label | call to taint : | +| params_flow.rb:38:8:38:13 | ** ... [element :p1] : | semmle.label | ** ... [element :p1] : | | params_flow.rb:38:8:38:13 | ** ... [element :p2] : | semmle.label | ** ... [element :p2] : | +| params_flow.rb:38:10:38:13 | args [element :p1] : | semmle.label | args [element :p1] : | | params_flow.rb:38:10:38:13 | args [element :p2] : | semmle.label | args [element :p2] : | +| params_flow.rb:40:16:40:24 | call to taint : | semmle.label | call to taint : | | 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] : | subpaths #select | params_flow.rb:10:10:10:11 | 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 : | call to taint : | @@ -77,12 +87,14 @@ subpaths | 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 : | | params_flow.rb:17:10:17:11 | 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 : | call to taint : | | params_flow.rb:17:10:17:11 | 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 : | call to taint : | +| params_flow.rb:17:10:17:11 | 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 : | call to taint : | | params_flow.rb:18:10:18:11 | 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 : | call to taint : | | params_flow.rb:18:10:18:11 | 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 : | call to taint : | | params_flow.rb:18:10:18:11 | 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 : | call to taint : | | params_flow.rb:18:10:18:11 | 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 : | call to taint : | | params_flow.rb:26:10:26:11 | p1 | params_flow.rb:33:12:33:19 | call to taint : | params_flow.rb:26:10:26:11 | p1 | $@ | params_flow.rb:33:12:33:19 | call to taint : | call to taint : | | params_flow.rb:26:10:26:11 | p1 | params_flow.rb:35:12:35:20 | call to taint : | params_flow.rb:26:10:26:11 | p1 | $@ | params_flow.rb:35:12:35:20 | call to taint : | call to taint : | +| params_flow.rb:26:10:26:11 | p1 | params_flow.rb:37:16:37:24 | call to taint : | params_flow.rb:26:10:26:11 | p1 | $@ | params_flow.rb:37:16:37:24 | call to taint : | call to taint : | | params_flow.rb:28:10:28:22 | ( ... ) | 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 : | call to taint : | | params_flow.rb:28:10:28:22 | ( ... ) | 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 : | call to taint : | | params_flow.rb:29:10:29:22 | ( ... ) | 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 : | call to taint : | From 55618adf6abb92f250fc100116f08f136dbcdced Mon Sep 17 00:00:00 2001 From: intrigus Date: Thu, 4 Aug 2022 16:21:48 +0200 Subject: [PATCH 598/736] Model java.util.Properties.setProperty --- .../semmle/code/java/dataflow/internal/ContainerFlow.qll | 3 +++ java/ql/test/library-tests/dataflow/collections/Test.java | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll index 6c4a369527c..8f9a40ed8d0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll @@ -244,6 +244,9 @@ private class ContainerFlowSummaries extends SummaryModelCsv { "java.util;Properties;true;getProperty;(String);;Argument[-1].MapValue;ReturnValue;value;manual", "java.util;Properties;true;getProperty;(String,String);;Argument[-1].MapValue;ReturnValue;value;manual", "java.util;Properties;true;getProperty;(String,String);;Argument[1];ReturnValue;value;manual", + "java.util;Properties;true;setProperty;(String,String);;Argument[-1].MapValue;ReturnValue;value;manual", + "java.util;Properties;true;setProperty;(String,String);;Argument[0];Argument[-1].MapKey;value;manual", + "java.util;Properties;true;setProperty;(String,String);;Argument[1];Argument[-1].MapValue;value;manual", "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual", "java.util;Scanner;true;findInLine;;;Argument[-1];ReturnValue;taint;manual", "java.util;Scanner;true;findWithinHorizon;;;Argument[-1];ReturnValue;taint;manual", diff --git a/java/ql/test/library-tests/dataflow/collections/Test.java b/java/ql/test/library-tests/dataflow/collections/Test.java index 9836070f42c..64822a298ab 100644 --- a/java/ql/test/library-tests/dataflow/collections/Test.java +++ b/java/ql/test/library-tests/dataflow/collections/Test.java @@ -88,4 +88,11 @@ public class Test { Properties clean = new Properties(); sink(clean.getProperty("key", tainted)); // Flow } + + public void run5() { + Properties p = new Properties(); + p.setProperty("key", tainted); + sink(p.getProperty("key")); // Flow + sink(p.getProperty("key", "defaultValue")); // Flow + } } From 0b7f0fbe54621c13e2f8d6f73289552be397c38a Mon Sep 17 00:00:00 2001 From: intrigus Date: Thu, 4 Aug 2022 16:21:50 +0200 Subject: [PATCH 599/736] Accept test changes --- java/ql/test/library-tests/dataflow/collections/flow.expected | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/test/library-tests/dataflow/collections/flow.expected b/java/ql/test/library-tests/dataflow/collections/flow.expected index 875a4191722..683462eabf3 100644 --- a/java/ql/test/library-tests/dataflow/collections/flow.expected +++ b/java/ql/test/library-tests/dataflow/collections/flow.expected @@ -14,3 +14,5 @@ | Test.java:84:18:84:24 | tainted | Test.java:85:10:85:29 | getProperty(...) | | Test.java:84:18:84:24 | tainted | Test.java:86:10:86:45 | getProperty(...) | | Test.java:89:35:89:41 | tainted | Test.java:89:10:89:42 | getProperty(...) | +| Test.java:94:26:94:32 | tainted | Test.java:95:10:95:29 | getProperty(...) | +| Test.java:94:26:94:32 | tainted | Test.java:96:10:96:45 | getProperty(...) | From c867a1a1467cca8a22e7741eb147a9a05eb8da15 Mon Sep 17 00:00:00 2001 From: intrigus Date: Thu, 4 Aug 2022 16:21:51 +0200 Subject: [PATCH 600/736] Test `setProperty/put` with taint stored earlier --- .../library-tests/dataflow/collections/Test.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/java/ql/test/library-tests/dataflow/collections/Test.java b/java/ql/test/library-tests/dataflow/collections/Test.java index 64822a298ab..66435ed39a7 100644 --- a/java/ql/test/library-tests/dataflow/collections/Test.java +++ b/java/ql/test/library-tests/dataflow/collections/Test.java @@ -95,4 +95,16 @@ public class Test { sink(p.getProperty("key")); // Flow sink(p.getProperty("key", "defaultValue")); // Flow } + + public void run6() { + Properties p = new Properties(); + sink(p.put("key", tainted)); // No flow + sink(p.put("key", "notTainted")); // Flow + } + + public void run7() { + Properties p = new Properties(); + sink(p.setProperty("key", tainted)); // No flow + sink(p.setProperty("key", "notTainted")); // Flow + } } From 88ded4679a39d54e34ee72dbb26d4f4fed7d763c Mon Sep 17 00:00:00 2001 From: intrigus Date: Thu, 4 Aug 2022 16:21:53 +0200 Subject: [PATCH 601/736] Accept test changes --- java/ql/test/library-tests/dataflow/collections/flow.expected | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/test/library-tests/dataflow/collections/flow.expected b/java/ql/test/library-tests/dataflow/collections/flow.expected index 683462eabf3..534bd1dd6bd 100644 --- a/java/ql/test/library-tests/dataflow/collections/flow.expected +++ b/java/ql/test/library-tests/dataflow/collections/flow.expected @@ -16,3 +16,5 @@ | Test.java:89:35:89:41 | tainted | Test.java:89:10:89:42 | getProperty(...) | | Test.java:94:26:94:32 | tainted | Test.java:95:10:95:29 | getProperty(...) | | Test.java:94:26:94:32 | tainted | Test.java:96:10:96:45 | getProperty(...) | +| Test.java:101:23:101:29 | tainted | Test.java:102:10:102:35 | put(...) | +| Test.java:107:31:107:37 | tainted | Test.java:108:10:108:43 | setProperty(...) | From b7d94906bfa5e811747bce847f3419f2cdb6e5fe Mon Sep 17 00:00:00 2001 From: intrigus Date: Thu, 4 Aug 2022 16:21:55 +0200 Subject: [PATCH 602/736] Add change note --- java/ql/lib/change-notes/2022-08-03-properties.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2022-08-03-properties.md diff --git a/java/ql/lib/change-notes/2022-08-03-properties.md b/java/ql/lib/change-notes/2022-08-03-properties.md new file mode 100644 index 00000000000..c9626ba2bf9 --- /dev/null +++ b/java/ql/lib/change-notes/2022-08-03-properties.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added a data-flow model for the `setProperty` method of `java.util.Properties`. Additional results may be found where relevant data is stored in and then retrieved from a `Properties` instance. \ No newline at end of file From 3028b80e46daacfe11238dfba556d3f469856f5f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 4 Aug 2022 20:01:05 +0100 Subject: [PATCH 603/736] Swift: Control-flow through interpolated strings. --- .../internal/ControlFlowGraphImpl.qll | 42 +++- .../controlflow/graph/Cfg.expected | 220 +++++++++++++++++- 2 files changed, 256 insertions(+), 6 deletions(-) diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index c3eda3a98f5..509c7b4efbd 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -96,21 +96,31 @@ module Stmts { override predicate propagatesAbnormal(ControlFlowElement node) { none() } + private predicate isBodyOfTapExpr() { any(TapExpr tap).getBody() = ast } + + // Note: If the brace statement is the body of a `TapExpr`, the first element is the variable + // declaration (see https://github.com/apple/swift/blob/main/include/swift/AST/Expr.h#L848) + // that's initialized by the `Tapxpr`. In `TapExprTre` we've already visited this declaration, + // along with its initializer. So we skip the first element here. + private AstNode getFirstElement() { + if this.isBodyOfTapExpr() then result = ast.getElement(1) else result = ast.getFirstElement() + } + override predicate first(ControlFlowElement first) { this.firstInner(first) or - not exists(ast.getFirstElement()) and first.asAstNode() = ast + not exists(this.getFirstElement()) and first.asAstNode() = ast } override predicate last(ControlFlowElement last, Completion c) { this.lastInner(last, c) or - not exists(ast.getFirstElement()) and + not exists(this.getFirstElement()) and last.asAstNode() = ast and c instanceof SimpleCompletion } - predicate firstInner(ControlFlowElement first) { astFirst(ast.getFirstElement(), first) } + predicate firstInner(ControlFlowElement first) { astFirst(this.getFirstElement(), first) } /** Gets the body of the i'th `defer` statement. */ private BraceStmt getDeferStmtBody(int i) { @@ -1334,10 +1344,34 @@ module Exprs { override InterpolatedStringLiteralExpr ast; final override ControlFlowElement getChildElement(int i) { - none() // TODO + i = 0 and + result.asAstNode() = ast.getAppendingExpr().getFullyConverted() } } + private class TapExprTree extends AstStandardPostOrderTree { + override TapExpr ast; + + final override ControlFlowElement getChildElement(int i) { + i = 0 and + result.asAstNode() = ast.getVar() + or + i = 1 and + result.asAstNode() = ast.getSubExpr().getFullyConverted() + or + // Note: The CFG for the body will skip the first element in the + // body because it's guarenteed to be the variable declaration + // that we've already visited at i = 0. See the explanation + // in `BraceStmtTree` for why this is necessary. + i = 2 and + result.asAstNode() = ast.getBody() + } + } + + private class OpaqueValueExprTree extends AstLeafTree { + override OpaqueValueExpr ast; + } + module DeclRefExprs { class DeclRefExprLValueTree extends AstLeafTree { override DeclRefExpr ast; diff --git a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected index d14ec33b48e..e7ea8fc83b6 100644 --- a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -324,7 +324,6 @@ cfg.swift: #-----| -> error # 40| print(_:separator:terminator:) -#-----| -> "..." # 40| call to print(_:separator:terminator:) #-----| -> 0 @@ -341,12 +340,64 @@ cfg.swift: # 40| (Any) ... #-----| -> [...] +# 40| OpaqueValueExpr + +# 40| TapExpr +#-----| -> "..." + +# 40| Unknown error +#-----| -> call to ... + # 40| [...] #-----| -> default separator # 40| [...] #-----| -> [...] +# 40| call to ... +#-----| -> appendInterpolation(_:) + +# 40| $interpolation +#-----| -> &... + +# 40| &... +#-----| -> call to appendLiteral(_:) + +# 40| call to appendLiteral(_:) +#-----| -> Unknown error + +# 40| $interpolation +#-----| -> &... + +# 40| &... +#-----| -> call to appendInterpolation(_:) + +# 40| appendInterpolation(_:) +#-----| -> $interpolation + +# 40| call to appendInterpolation(_:) +#-----| -> error + +# 40| call to ... + +# 40| error +#-----| -> call to ... + +# 40| +#-----| -> call to ... + +# 40| $interpolation +#-----| -> &... + +# 40| &... +#-----| -> call to appendLiteral(_:) + +# 40| call to ... +#-----| -> TapExpr + +# 40| call to appendLiteral(_:) +#-----| -> + # 42| return ... #-----| return -> exit tryCatch(x:) (normal) @@ -2817,14 +2868,179 @@ cfg.swift: #-----| -> y # 262| y -#-----| -> "..." # 263| return ... #-----| return -> exit interpolatedString(x:y:) (normal) +# 263| +#-----| -> call to ... + # 263| "..." #-----| -> return ... +# 263| OpaqueValueExpr + +# 263| TapExpr +#-----| -> "..." + +# 263| call to ... +#-----| -> appendInterpolation(_:) + +# 263| $interpolation +#-----| -> &... + +# 263| &... +#-----| -> call to appendLiteral(_:) + +# 263| call to appendLiteral(_:) +#-----| -> + +# 263| $interpolation +#-----| -> &... + +# 263| &... +#-----| -> call to appendInterpolation(_:) + +# 263| appendInterpolation(_:) +#-----| -> $interpolation + +# 263| call to appendInterpolation(_:) +#-----| -> x + +# 263| call to ... + +# 263| x +#-----| -> call to ... + +# 263| + +#-----| -> call to ... + +# 263| $interpolation +#-----| -> &... + +# 263| &... +#-----| -> call to appendLiteral(_:) + +# 263| call to ... +#-----| -> appendInterpolation(_:) + +# 263| call to appendLiteral(_:) +#-----| -> + + +# 263| $interpolation +#-----| -> &... + +# 263| &... +#-----| -> call to appendInterpolation(_:) + +# 263| appendInterpolation(_:) +#-----| -> $interpolation + +# 263| call to appendInterpolation(_:) +#-----| -> y + +# 263| call to ... + +# 263| y +#-----| -> call to ... + +# 263| is equal to +#-----| -> call to ... + +# 263| $interpolation +#-----| -> &... + +# 263| &... +#-----| -> call to appendLiteral(_:) + +# 263| call to ... +#-----| -> appendInterpolation(_:) + +# 263| call to appendLiteral(_:) +#-----| -> is equal to + +# 263| $interpolation +#-----| -> &... + +# 263| &... +#-----| -> call to appendInterpolation(_:) + +# 263| appendInterpolation(_:) +#-----| -> $interpolation + +# 263| call to appendInterpolation(_:) +#-----| -> +(_:_:) + +# 263| call to ... + +# 263| x +#-----| -> y + +# 263| ... call to +(_:_:) ... +#-----| -> call to ... + +# 263| +(_:_:) +#-----| -> Int.Type + +# 263| Int.Type +#-----| -> call to +(_:_:) + +# 263| call to +(_:_:) +#-----| -> x + +# 263| y +#-----| -> ... call to +(_:_:) ... + +# 263| and here is a zero: +#-----| -> call to ... + +# 263| $interpolation +#-----| -> &... + +# 263| &... +#-----| -> call to appendLiteral(_:) + +# 263| call to ... +#-----| -> appendInterpolation(_:) + +# 263| call to appendLiteral(_:) +#-----| -> and here is a zero: + +# 263| $interpolation +#-----| -> &... + +# 263| &... +#-----| -> call to appendInterpolation(_:) + +# 263| appendInterpolation(_:) +#-----| -> $interpolation + +# 263| call to appendInterpolation(_:) +#-----| -> returnZero() + +# 263| call to ... + +# 263| returnZero() +#-----| -> call to returnZero() + +# 263| call to returnZero() +#-----| -> call to ... + +# 263| +#-----| -> call to ... + +# 263| $interpolation +#-----| -> &... + +# 263| &... +#-----| -> call to appendLiteral(_:) + +# 263| call to ... +#-----| -> TapExpr + +# 263| call to appendLiteral(_:) +#-----| -> + # 266| enter testSubscriptExpr() #-----| -> testSubscriptExpr() From ff6b8c5c9cb89c0a4aa0b03120897abd17684bf5 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 4 Aug 2022 20:02:36 +0100 Subject: [PATCH 604/736] Swift: Replace 'CallExpr' with 'ApplyExpr'. This is needed because not all the calls inside the interpolated string computations are 'CallExpr's. --- swift/ql/lib/codeql/swift/dataflow/Ssa.qll | 2 +- swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 2 +- swift/ql/lib/codeql/swift/dataflow/internal/SsaImplSpecific.qll | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/Ssa.qll b/swift/ql/lib/codeql/swift/dataflow/Ssa.qll index 2805dff4637..81c4aeb6511 100644 --- a/swift/ql/lib/codeql/swift/dataflow/Ssa.qll +++ b/swift/ql/lib/codeql/swift/dataflow/Ssa.qll @@ -75,7 +75,7 @@ module Ssa { cached predicate isInoutDef(ExprCfgNode argument) { exists( - CallExpr c, BasicBlock bb, int blockIndex, int argIndex, VarDecl v, InOutExpr argExpr // TODO: use CFG node for assignment expr + ApplyExpr c, BasicBlock bb, int blockIndex, int argIndex, VarDecl v, InOutExpr argExpr // TODO: use CFG node for assignment expr | this.definesAt(v, bb, blockIndex) and bb.getNode(blockIndex).getNode().asAstNode() = c and diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index e530df2fc20..9a639f125ac 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -203,7 +203,7 @@ abstract class ArgumentNode extends Node { private module ArgumentNodes { class NormalArgumentNode extends ExprNode, ArgumentNode { - NormalArgumentNode() { exists(CallExpr call | call.getAnArgument().getExpr() = this.asExpr()) } + NormalArgumentNode() { exists(ApplyExpr call | call.getAnArgument().getExpr() = this.asExpr()) } override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { call.asCall().getArgument(pos.(PositionalArgumentPosition).getIndex()).getExpr() = diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/SsaImplSpecific.qll b/swift/ql/lib/codeql/swift/dataflow/internal/SsaImplSpecific.qll index 687e3b2cef8..2cd733d14c7 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/SsaImplSpecific.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/SsaImplSpecific.qll @@ -29,7 +29,7 @@ predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) certain = true ) or - exists(CallExpr call, Argument arg | + exists(ApplyExpr call, Argument arg | arg.getExpr().(InOutExpr).getSubExpr() = v.getAnAccess() and call.getAnArgument() = arg and bb.getNode(i).getNode().asAstNode() = call and From 52b78b6e68fd774036021008753f8d4d94f013c6 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 4 Aug 2022 20:03:36 +0100 Subject: [PATCH 605/736] Swift: Don't assume we know the call target statically in 'TInOutUpdateNode'. --- .../dataflow/internal/DataFlowPrivate.qll | 18 +++++------- .../codeql/swift/elements/expr/Argument.qll | 2 ++ .../dataflow/dataflow/DataFlow.expected | 28 +++++++++---------- .../dataflow/dataflow/LocalFlow.expected | 10 +++---- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 9a639f125ac..56977706e42 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -65,10 +65,7 @@ private module Cached { TExprNode(CfgNode n, Expr e) { hasExprNode(n, e) } or TSsaDefinitionNode(Ssa::Definition def) or TInoutReturnNode(ParamDecl param) { param.isInout() } or - TInOutUpdateNode(ParamDecl param, CallExpr call) { - param.isInout() and - call.getStaticTarget() = param.getDeclaringFunction() - } or + TInOutUpdateNode(Argument arg) { arg.getExpr() instanceof InOutExpr } or TSummaryNode(FlowSummary::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNodeState state) private predicate hasExprNode(CfgNode n, Expr e) { @@ -281,23 +278,22 @@ private module OutNodes { } class InOutUpdateNode extends OutNode, TInOutUpdateNode, NodeImpl { - ParamDecl param; - CallExpr call; + Argument arg; - InOutUpdateNode() { this = TInOutUpdateNode(param, call) } + InOutUpdateNode() { this = TInOutUpdateNode(arg) } override DataFlowCall getCall(ReturnKind kind) { - result.asCall().getExpr() = call and - kind.(ParamReturnKind).getIndex() = param.getIndex() + result.asCall().getExpr() = arg.getApplyExpr() and + kind.(ParamReturnKind).getIndex() = arg.getIndex() } override DataFlowCallable getEnclosingCallable() { result = this.getCall(_).getEnclosingCallable() } - override Location getLocationImpl() { result = call.getLocation() } + override Location getLocationImpl() { result = arg.getLocation() } - override string toStringImpl() { result = param.toString() } + override string toStringImpl() { result = arg.toString() } } } diff --git a/swift/ql/lib/codeql/swift/elements/expr/Argument.qll b/swift/ql/lib/codeql/swift/elements/expr/Argument.qll index 88c11b14013..bec912414a6 100644 --- a/swift/ql/lib/codeql/swift/elements/expr/Argument.qll +++ b/swift/ql/lib/codeql/swift/elements/expr/Argument.qll @@ -5,4 +5,6 @@ class Argument extends ArgumentBase { override string toString() { result = this.getLabel() + ": " + this.getExpr().toString() } int getIndex() { any(ApplyExpr apply).getArgument(result) = this } + + ApplyExpr getApplyExpr() { result.getAnArgument() = this } } diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index 1bcceb82f22..e07930e7ee4 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -12,23 +12,23 @@ edges | test.swift:29:26:29:29 | y : | test.swift:31:15:31:15 | y | | test.swift:35:12:35:19 | call to source() : | test.swift:39:15:39:29 | call to callee_source() | | test.swift:43:19:43:26 | call to source() : | test.swift:50:15:50:15 | t | -| test.swift:53:1:56:1 | arg[return] : | test.swift:61:5:61:24 | arg : | +| test.swift:53:1:56:1 | arg[return] : | test.swift:61:17:61:23 | arg: &... : | | test.swift:54:11:54:18 | call to source() : | test.swift:53:1:56:1 | arg[return] : | -| test.swift:61:5:61:24 | arg : | test.swift:62:15:62:15 | x | +| test.swift:61:17:61:23 | arg: &... : | test.swift:62:15:62:15 | x | | test.swift:65:16:65:28 | WriteDef : | test.swift:65:1:70:1 | arg2[return] : | | test.swift:65:16:65:28 | arg1 : | test.swift:65:1:70:1 | arg2[return] : | | test.swift:73:18:73:25 | call to source() : | test.swift:75:21:75:22 | &... : | -| test.swift:75:5:75:33 | arg2 : | test.swift:77:15:77:15 | y | | test.swift:75:21:75:22 | &... : | test.swift:65:16:65:28 | WriteDef : | | test.swift:75:21:75:22 | &... : | test.swift:65:16:65:28 | arg1 : | -| test.swift:75:21:75:22 | &... : | test.swift:75:5:75:33 | arg2 : | -| test.swift:80:1:82:1 | arg[return] : | test.swift:97:9:97:41 | arg : | +| test.swift:75:21:75:22 | &... : | test.swift:75:25:75:32 | arg2: &... : | +| test.swift:75:25:75:32 | arg2: &... : | test.swift:77:15:77:15 | y | +| test.swift:80:1:82:1 | arg[return] : | test.swift:97:34:97:40 | arg: &... : | | test.swift:81:11:81:18 | call to source() : | test.swift:80:1:82:1 | arg[return] : | -| test.swift:84:1:91:1 | arg[return] : | test.swift:104:9:104:54 | arg : | +| test.swift:84:1:91:1 | arg[return] : | test.swift:104:35:104:41 | arg: &... : | | test.swift:86:15:86:22 | call to source() : | test.swift:84:1:91:1 | arg[return] : | | test.swift:89:15:89:22 | call to source() : | test.swift:84:1:91:1 | arg[return] : | -| test.swift:97:9:97:41 | arg : | test.swift:98:19:98:19 | x | -| test.swift:104:9:104:54 | arg : | test.swift:105:19:105:19 | x | +| test.swift:97:34:97:40 | arg: &... : | test.swift:98:19:98:19 | x | +| test.swift:104:35:104:41 | arg: &... : | test.swift:105:19:105:19 | x | | test.swift:109:9:109:14 | WriteDef : | test.swift:110:12:110:12 | arg : | | test.swift:109:9:109:14 | arg : | test.swift:110:12:110:12 | arg : | | test.swift:113:14:113:19 | WriteDef : | test.swift:114:19:114:19 | arg : | @@ -88,7 +88,7 @@ nodes | test.swift:50:15:50:15 | t | semmle.label | t | | test.swift:53:1:56:1 | arg[return] : | semmle.label | arg[return] : | | test.swift:54:11:54:18 | call to source() : | semmle.label | call to source() : | -| test.swift:61:5:61:24 | arg : | semmle.label | arg : | +| test.swift:61:17:61:23 | arg: &... : | semmle.label | arg: &... : | | test.swift:62:15:62:15 | x | semmle.label | x | | test.swift:65:1:70:1 | arg2[return] : | semmle.label | arg2[return] : | | test.swift:65:16:65:28 | WriteDef : | semmle.label | WriteDef : | @@ -96,17 +96,17 @@ nodes | test.swift:65:16:65:28 | arg1 : | semmle.label | WriteDef : | | test.swift:65:16:65:28 | arg1 : | semmle.label | arg1 : | | test.swift:73:18:73:25 | call to source() : | semmle.label | call to source() : | -| test.swift:75:5:75:33 | arg2 : | semmle.label | arg2 : | | test.swift:75:21:75:22 | &... : | semmle.label | &... : | +| test.swift:75:25:75:32 | arg2: &... : | semmle.label | arg2: &... : | | test.swift:77:15:77:15 | y | semmle.label | y | | test.swift:80:1:82:1 | arg[return] : | semmle.label | arg[return] : | | test.swift:81:11:81:18 | call to source() : | semmle.label | call to source() : | | test.swift:84:1:91:1 | arg[return] : | semmle.label | arg[return] : | | test.swift:86:15:86:22 | call to source() : | semmle.label | call to source() : | | test.swift:89:15:89:22 | call to source() : | semmle.label | call to source() : | -| test.swift:97:9:97:41 | arg : | semmle.label | arg : | +| test.swift:97:34:97:40 | arg: &... : | semmle.label | arg: &... : | | test.swift:98:19:98:19 | x | semmle.label | x | -| test.swift:104:9:104:54 | arg : | semmle.label | arg : | +| test.swift:104:35:104:41 | arg: &... : | semmle.label | arg: &... : | | test.swift:105:19:105:19 | x | semmle.label | x | | test.swift:109:9:109:14 | WriteDef : | semmle.label | WriteDef : | | test.swift:109:9:109:14 | WriteDef : | semmle.label | arg : | @@ -155,8 +155,8 @@ nodes | test.swift:157:16:157:23 | call to source() : | semmle.label | call to source() : | | test.swift:159:16:159:29 | call to ... : | semmle.label | call to ... : | subpaths -| test.swift:75:21:75:22 | &... : | test.swift:65:16:65:28 | WriteDef : | test.swift:65:1:70:1 | arg2[return] : | test.swift:75:5:75:33 | arg2 : | -| test.swift:75:21:75:22 | &... : | test.swift:65:16:65:28 | arg1 : | test.swift:65:1:70:1 | arg2[return] : | test.swift:75:5:75:33 | arg2 : | +| test.swift:75:21:75:22 | &... : | test.swift:65:16:65:28 | WriteDef : | test.swift:65:1:70:1 | arg2[return] : | test.swift:75:25:75:32 | arg2: &... : | +| test.swift:75:21:75:22 | &... : | test.swift:65:16:65:28 | arg1 : | test.swift:65:1:70:1 | arg2[return] : | test.swift:75:25:75:32 | arg2: &... : | | test.swift:114:19:114:19 | arg : | test.swift:109:9:109:14 | WriteDef : | test.swift:110:12:110:12 | arg : | test.swift:114:12:114:22 | call to ... : | | 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 ... : | | test.swift:114:19:114:19 | arg : | test.swift:123:10:123:13 | WriteDef : | test.swift:124:16:124:16 | i : | test.swift:114:12:114:22 | call to ... : | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected index 54423a6d8d6..bceacff548e 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected @@ -29,7 +29,7 @@ | test.swift:59:18:59:18 | 0 | test.swift:59:9:59:12 | WriteDef | | test.swift:60:15:60:15 | x | test.swift:61:23:61:23 | x | | test.swift:61:5:61:24 | WriteDef | test.swift:62:15:62:15 | x | -| test.swift:61:5:61:24 | arg | test.swift:61:5:61:24 | WriteDef | +| test.swift:61:17:61:23 | arg: &... | test.swift:61:5:61:24 | WriteDef | | test.swift:61:23:61:23 | x | test.swift:61:22:61:23 | &... | | test.swift:65:16:65:28 | WriteDef | test.swift:66:21:66:21 | arg1 | | test.swift:65:16:65:28 | arg1 | test.swift:66:21:66:21 | arg1 | @@ -47,9 +47,9 @@ | test.swift:74:18:74:18 | 0 | test.swift:74:9:74:12 | WriteDef | | test.swift:75:5:75:33 | WriteDef | test.swift:76:15:76:15 | x | | test.swift:75:5:75:33 | WriteDef | test.swift:77:15:77:15 | y | -| test.swift:75:5:75:33 | arg1 | test.swift:75:5:75:33 | WriteDef | -| test.swift:75:5:75:33 | arg2 | test.swift:75:5:75:33 | WriteDef | +| test.swift:75:15:75:22 | arg1: &... | test.swift:75:5:75:33 | WriteDef | | test.swift:75:22:75:22 | x | test.swift:75:21:75:22 | &... | +| test.swift:75:25:75:32 | arg2: &... | test.swift:75:5:75:33 | WriteDef | | test.swift:75:32:75:32 | y | test.swift:75:31:75:32 | &... | | test.swift:81:5:81:18 | WriteDef | test.swift:80:1:82:1 | arg[return] | | test.swift:81:11:81:18 | call to source() | test.swift:81:5:81:18 | WriteDef | @@ -66,13 +66,13 @@ | test.swift:95:22:95:22 | 0 | test.swift:95:13:95:16 | WriteDef | | test.swift:96:19:96:19 | x | test.swift:97:40:97:40 | x | | test.swift:97:9:97:41 | WriteDef | test.swift:98:19:98:19 | x | -| test.swift:97:9:97:41 | arg | test.swift:97:9:97:41 | WriteDef | +| test.swift:97:34:97:40 | arg: &... | test.swift:97:9:97:41 | WriteDef | | test.swift:97:40:97:40 | x | test.swift:97:39:97:40 | &... | | test.swift:102:13:102:16 | WriteDef | test.swift:103:19:103:19 | x | | test.swift:102:22:102:22 | 0 | test.swift:102:13:102:16 | WriteDef | | test.swift:103:19:103:19 | x | test.swift:104:41:104:41 | x | | test.swift:104:9:104:54 | WriteDef | test.swift:105:19:105:19 | x | -| test.swift:104:9:104:54 | arg | test.swift:104:9:104:54 | WriteDef | +| test.swift:104:35:104:41 | arg: &... | test.swift:104:9:104:54 | WriteDef | | test.swift:104:41:104:41 | x | test.swift:104:40:104:41 | &... | | test.swift:109:9:109:14 | WriteDef | test.swift:110:12:110:12 | arg | | test.swift:109:9:109:14 | arg | test.swift:110:12:110:12 | arg | From 9c48ce1bf2fdd13dff340fa9471b9ec644d32134 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 4 Aug 2022 20:06:10 +0100 Subject: [PATCH 606/736] Swift: Flow (1) through the internal function calls generated by the compiler during string interpolation, and (2) out of the internal 'TapExpr' and into the interpolated string result. --- .../dataflow/internal/SsaImplSpecific.qll | 14 ++++++++++++++ .../internal/TaintTrackingPrivate.qll | 19 ++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/SsaImplSpecific.qll b/swift/ql/lib/codeql/swift/dataflow/internal/SsaImplSpecific.qll index 2cd733d14c7..2f507b31645 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/SsaImplSpecific.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/SsaImplSpecific.qll @@ -39,6 +39,13 @@ predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) v instanceof ParamDecl and bb.getNode(i).getNode().asAstNode() = v and certain = true + or + // Mark the subexpression as a write of the local variable declared in the `TapExpr`. + exists(TapExpr tap | + v = tap.getVar() and + bb.getNode(i).getNode().asAstNode() = tap.getSubExpr() and + certain = true + ) } private predicate isLValue(DeclRefExpr ref) { any(AssignExpr assign).getDest() = ref } @@ -58,4 +65,11 @@ predicate variableRead(BasicBlock bb, int i, SourceVariable v, boolean certain) bb.getScope() = func and certain = true ) + or + // Mark the `TapExpr` as a read of the of the local variable. + exists(TapExpr tap | + v = tap.getVar() and + bb.getNode(i).getNode().asAstNode() = tap and + certain = true + ) } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll index 17cf1305ea1..804bada88bf 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll @@ -2,6 +2,8 @@ private import swift private import DataFlowPrivate private import TaintTrackingPublic private import codeql.swift.dataflow.DataFlow +private import codeql.swift.dataflow.Ssa +private import codeql.swift.controlflow.CfgNodes /** * Holds if `node` should be a sanitizer in all global taint flow configurations @@ -16,7 +18,22 @@ private module Cached { * in all global taint flow configurations. */ cached - predicate defaultAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { none() } + predicate defaultAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + // Flow through one argument of `appendLiteral` and `appendInterpolation` and to the second argument. + exists(ApplyExpr apply1, ApplyExpr apply2, ExprCfgNode e | + nodeFrom.asExpr() = [apply1, apply2].getAnArgument().getExpr() and + apply1.getFunction() = apply2 and + apply2.getStaticTarget().getName() = ["appendLiteral(_:)", "appendInterpolation(_:)"] and + e.getExpr() = apply2.getAnArgument().getExpr() and + nodeTo.asDefinition().(Ssa::WriteDefinition).isInoutDef(e) + ) + or + // Flow from the computation of the interpolated string literal to the result of the interpolation. + exists(InterpolatedStringLiteralExpr interpolated | + nodeTo.asExpr() = interpolated and + nodeFrom.asExpr() = interpolated.getAppendingExpr() + ) + } /** * Holds if taint propagates from `nodeFrom` to `nodeTo` in exactly one local From 05e6dd85d4e3587c7a686a2804214e7a01e499d0 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 4 Aug 2022 20:06:48 +0100 Subject: [PATCH 607/736] Swift: Add taint tests for flow through interpolated strings. --- .../dataflow/taint/LocalTaint.expected | 121 ++++++++++++++++++ .../dataflow/taint/LocalTaint.ql | 6 + .../dataflow/taint/Taint.expected | 20 +++ .../library-tests/dataflow/taint/Taint.ql | 29 +++++ .../library-tests/dataflow/taint/test.swift | 22 ++++ 5 files changed, 198 insertions(+) create mode 100644 swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected create mode 100644 swift/ql/test/library-tests/dataflow/taint/LocalTaint.ql create mode 100644 swift/ql/test/library-tests/dataflow/taint/Taint.expected create mode 100644 swift/ql/test/library-tests/dataflow/taint/Taint.ql create mode 100644 swift/ql/test/library-tests/dataflow/taint/test.swift diff --git a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected new file mode 100644 index 00000000000..6796c2e8c40 --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected @@ -0,0 +1,121 @@ +| file://:0:0:0:0 | Phi | test.swift:7:14:7:14 | $interpolation | +| file://:0:0:0:0 | Phi | test.swift:9:14:9:14 | $interpolation | +| file://:0:0:0:0 | Phi | test.swift:11:14:11:14 | $interpolation | +| file://:0:0:0:0 | Phi | test.swift:14:14:14:14 | $interpolation | +| file://:0:0:0:0 | Phi | test.swift:16:14:16:14 | $interpolation | +| file://:0:0:0:0 | Phi | test.swift:18:14:18:14 | $interpolation | +| file://:0:0:0:0 | Phi | test.swift:21:14:21:14 | $interpolation | +| test.swift:5:7:5:7 | WriteDef | test.swift:7:16:7:16 | x | +| test.swift:5:11:5:18 | call to source() | test.swift:5:7:5:7 | WriteDef | +| test.swift:7:13:7:13 | WriteDef | file://:0:0:0:0 | Phi | +| test.swift:7:14:7:14 | $interpolation | test.swift:7:14:7:14 | &... | +| test.swift:7:14:7:14 | : &... | test.swift:7:14:7:14 | WriteDef | +| test.swift:7:14:7:14 | WriteDef | test.swift:7:15:7:15 | $interpolation | +| test.swift:7:15:7:15 | $interpolation | test.swift:7:15:7:15 | &... | +| test.swift:7:15:7:15 | : &... | test.swift:7:15:7:15 | WriteDef | +| test.swift:7:15:7:15 | WriteDef | test.swift:7:18:7:18 | $interpolation | +| test.swift:7:16:7:16 | x | test.swift:9:16:9:16 | x | +| test.swift:7:18:7:18 | $interpolation | test.swift:7:18:7:18 | &... | +| test.swift:7:18:7:18 | : &... | test.swift:7:18:7:18 | WriteDef | +| test.swift:7:18:7:18 | WriteDef | test.swift:7:13:7:13 | TapExpr | +| test.swift:9:13:9:13 | WriteDef | file://:0:0:0:0 | Phi | +| test.swift:9:14:9:14 | $interpolation | test.swift:9:14:9:14 | &... | +| test.swift:9:14:9:14 | : &... | test.swift:9:14:9:14 | WriteDef | +| test.swift:9:14:9:14 | WriteDef | test.swift:9:15:9:15 | $interpolation | +| test.swift:9:15:9:15 | $interpolation | test.swift:9:15:9:15 | &... | +| test.swift:9:15:9:15 | : &... | test.swift:9:15:9:15 | WriteDef | +| test.swift:9:15:9:15 | WriteDef | test.swift:9:18:9:18 | $interpolation | +| test.swift:9:16:9:16 | x | test.swift:9:21:9:21 | x | +| test.swift:9:18:9:18 | $interpolation | test.swift:9:18:9:18 | &... | +| test.swift:9:18:9:18 | : &... | test.swift:9:18:9:18 | WriteDef | +| test.swift:9:18:9:18 | WriteDef | test.swift:9:20:9:20 | $interpolation | +| test.swift:9:20:9:20 | $interpolation | test.swift:9:20:9:20 | &... | +| test.swift:9:20:9:20 | : &... | test.swift:9:20:9:20 | WriteDef | +| test.swift:9:20:9:20 | WriteDef | test.swift:9:23:9:23 | $interpolation | +| test.swift:9:21:9:21 | x | test.swift:11:16:11:16 | x | +| test.swift:9:23:9:23 | $interpolation | test.swift:9:23:9:23 | &... | +| test.swift:9:23:9:23 | : &... | test.swift:9:23:9:23 | WriteDef | +| test.swift:9:23:9:23 | WriteDef | test.swift:9:13:9:13 | TapExpr | +| test.swift:11:13:11:13 | WriteDef | file://:0:0:0:0 | Phi | +| test.swift:11:14:11:14 | $interpolation | test.swift:11:14:11:14 | &... | +| test.swift:11:14:11:14 | : &... | test.swift:11:14:11:14 | WriteDef | +| test.swift:11:14:11:14 | WriteDef | test.swift:11:15:11:15 | $interpolation | +| test.swift:11:15:11:15 | $interpolation | test.swift:11:15:11:15 | &... | +| test.swift:11:15:11:15 | : &... | test.swift:11:15:11:15 | WriteDef | +| test.swift:11:15:11:15 | WriteDef | test.swift:11:18:11:18 | $interpolation | +| test.swift:11:16:11:16 | x | test.swift:11:26:11:26 | x | +| test.swift:11:18:11:18 | $interpolation | test.swift:11:18:11:18 | &... | +| test.swift:11:18:11:18 | : &... | test.swift:11:18:11:18 | WriteDef | +| test.swift:11:18:11:18 | WriteDef | test.swift:11:20:11:20 | $interpolation | +| test.swift:11:20:11:20 | $interpolation | test.swift:11:20:11:20 | &... | +| test.swift:11:20:11:20 | : &... | test.swift:11:20:11:20 | WriteDef | +| test.swift:11:20:11:20 | WriteDef | test.swift:11:23:11:23 | $interpolation | +| test.swift:11:23:11:23 | $interpolation | test.swift:11:23:11:23 | &... | +| test.swift:11:23:11:23 | : &... | test.swift:11:23:11:23 | WriteDef | +| test.swift:11:23:11:23 | WriteDef | test.swift:11:25:11:25 | $interpolation | +| test.swift:11:25:11:25 | $interpolation | test.swift:11:25:11:25 | &... | +| test.swift:11:25:11:25 | : &... | test.swift:11:25:11:25 | WriteDef | +| test.swift:11:25:11:25 | WriteDef | test.swift:11:28:11:28 | $interpolation | +| test.swift:11:26:11:26 | x | test.swift:16:16:16:16 | x | +| test.swift:11:28:11:28 | $interpolation | test.swift:11:28:11:28 | &... | +| test.swift:11:28:11:28 | : &... | test.swift:11:28:11:28 | WriteDef | +| test.swift:11:28:11:28 | WriteDef | test.swift:11:13:11:13 | TapExpr | +| test.swift:13:7:13:7 | WriteDef | test.swift:14:16:14:16 | y | +| test.swift:13:11:13:11 | 42 | test.swift:13:7:13:7 | WriteDef | +| test.swift:14:13:14:13 | WriteDef | file://:0:0:0:0 | Phi | +| test.swift:14:14:14:14 | $interpolation | test.swift:14:14:14:14 | &... | +| test.swift:14:14:14:14 | : &... | test.swift:14:14:14:14 | WriteDef | +| test.swift:14:14:14:14 | WriteDef | test.swift:14:15:14:15 | $interpolation | +| test.swift:14:15:14:15 | $interpolation | test.swift:14:15:14:15 | &... | +| test.swift:14:15:14:15 | : &... | test.swift:14:15:14:15 | WriteDef | +| test.swift:14:15:14:15 | WriteDef | test.swift:14:18:14:18 | $interpolation | +| test.swift:14:16:14:16 | y | test.swift:16:27:16:27 | y | +| test.swift:14:18:14:18 | $interpolation | test.swift:14:18:14:18 | &... | +| test.swift:14:18:14:18 | : &... | test.swift:14:18:14:18 | WriteDef | +| test.swift:14:18:14:18 | WriteDef | test.swift:14:13:14:13 | TapExpr | +| test.swift:16:13:16:13 | WriteDef | file://:0:0:0:0 | Phi | +| test.swift:16:14:16:14 | $interpolation | test.swift:16:14:16:14 | &... | +| test.swift:16:14:16:14 | : &... | test.swift:16:14:16:14 | WriteDef | +| test.swift:16:14:16:14 | WriteDef | test.swift:16:15:16:15 | $interpolation | +| test.swift:16:15:16:15 | $interpolation | test.swift:16:15:16:15 | &... | +| test.swift:16:15:16:15 | : &... | test.swift:16:15:16:15 | WriteDef | +| test.swift:16:15:16:15 | WriteDef | test.swift:16:18:16:18 | $interpolation | +| test.swift:16:16:16:16 | x | test.swift:18:27:18:27 | x | +| test.swift:16:18:16:18 | $interpolation | test.swift:16:18:16:18 | &... | +| test.swift:16:18:16:18 | : &... | test.swift:16:18:16:18 | WriteDef | +| test.swift:16:18:16:18 | WriteDef | test.swift:16:26:16:26 | $interpolation | +| test.swift:16:26:16:26 | $interpolation | test.swift:16:26:16:26 | &... | +| test.swift:16:26:16:26 | : &... | test.swift:16:26:16:26 | WriteDef | +| test.swift:16:26:16:26 | WriteDef | test.swift:16:29:16:29 | $interpolation | +| test.swift:16:27:16:27 | y | test.swift:18:16:18:16 | y | +| test.swift:16:29:16:29 | $interpolation | test.swift:16:29:16:29 | &... | +| test.swift:16:29:16:29 | : &... | test.swift:16:29:16:29 | WriteDef | +| test.swift:16:29:16:29 | WriteDef | test.swift:16:13:16:13 | TapExpr | +| test.swift:18:13:18:13 | WriteDef | file://:0:0:0:0 | Phi | +| test.swift:18:14:18:14 | $interpolation | test.swift:18:14:18:14 | &... | +| test.swift:18:14:18:14 | : &... | test.swift:18:14:18:14 | WriteDef | +| test.swift:18:14:18:14 | WriteDef | test.swift:18:15:18:15 | $interpolation | +| test.swift:18:15:18:15 | $interpolation | test.swift:18:15:18:15 | &... | +| test.swift:18:15:18:15 | : &... | test.swift:18:15:18:15 | WriteDef | +| test.swift:18:15:18:15 | WriteDef | test.swift:18:18:18:18 | $interpolation | +| test.swift:18:18:18:18 | $interpolation | test.swift:18:18:18:18 | &... | +| test.swift:18:18:18:18 | : &... | test.swift:18:18:18:18 | WriteDef | +| test.swift:18:18:18:18 | WriteDef | test.swift:18:26:18:26 | $interpolation | +| test.swift:18:26:18:26 | $interpolation | test.swift:18:26:18:26 | &... | +| test.swift:18:26:18:26 | : &... | test.swift:18:26:18:26 | WriteDef | +| test.swift:18:26:18:26 | WriteDef | test.swift:18:29:18:29 | $interpolation | +| test.swift:18:29:18:29 | $interpolation | test.swift:18:29:18:29 | &... | +| test.swift:18:29:18:29 | : &... | test.swift:18:29:18:29 | WriteDef | +| test.swift:18:29:18:29 | WriteDef | test.swift:18:13:18:13 | TapExpr | +| test.swift:20:3:20:7 | WriteDef | test.swift:21:16:21:16 | x | +| test.swift:20:7:20:7 | 0 | test.swift:20:3:20:7 | WriteDef | +| test.swift:21:13:21:13 | WriteDef | file://:0:0:0:0 | Phi | +| test.swift:21:14:21:14 | $interpolation | test.swift:21:14:21:14 | &... | +| test.swift:21:14:21:14 | : &... | test.swift:21:14:21:14 | WriteDef | +| test.swift:21:14:21:14 | WriteDef | test.swift:21:15:21:15 | $interpolation | +| test.swift:21:15:21:15 | $interpolation | test.swift:21:15:21:15 | &... | +| test.swift:21:15:21:15 | : &... | test.swift:21:15:21:15 | WriteDef | +| test.swift:21:15:21:15 | WriteDef | test.swift:21:18:21:18 | $interpolation | +| test.swift:21:18:21:18 | $interpolation | test.swift:21:18:21:18 | &... | +| test.swift:21:18:21:18 | : &... | test.swift:21:18:21:18 | WriteDef | +| test.swift:21:18:21:18 | WriteDef | test.swift:21:13:21:13 | TapExpr | diff --git a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.ql b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.ql new file mode 100644 index 00000000000..04a547b939d --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.ql @@ -0,0 +1,6 @@ +import swift +import codeql.swift.dataflow.DataFlow + +from DataFlow::Node pred, DataFlow::Node succ +where DataFlow::localFlowStep(pred, succ) +select pred, succ diff --git a/swift/ql/test/library-tests/dataflow/taint/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/Taint.expected new file mode 100644 index 00000000000..fea536d78c0 --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/Taint.expected @@ -0,0 +1,20 @@ +edges +| test.swift:5:11:5:18 | call to source() : | test.swift:7:13:7:13 | "..." | +| test.swift:5:11:5:18 | call to source() : | test.swift:9:13:9:13 | "..." | +| test.swift:5:11:5:18 | call to source() : | test.swift:11:13:11:13 | "..." | +| test.swift:5:11:5:18 | call to source() : | test.swift:16:13:16:13 | "..." | +| test.swift:5:11:5:18 | call to source() : | test.swift:18:13:18:13 | "..." | +nodes +| test.swift:5:11:5:18 | call to source() : | semmle.label | call to source() : | +| test.swift:7:13:7:13 | "..." | semmle.label | "..." | +| test.swift:9:13:9:13 | "..." | semmle.label | "..." | +| test.swift:11:13:11:13 | "..." | semmle.label | "..." | +| test.swift:16:13:16:13 | "..." | semmle.label | "..." | +| test.swift:18:13:18:13 | "..." | semmle.label | "..." | +subpaths +#select +| test.swift:7:13:7:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:7:13:7:13 | "..." | result | +| test.swift:9:13:9:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:9:13:9:13 | "..." | result | +| test.swift:11:13:11:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:11:13:11:13 | "..." | result | +| test.swift:16:13:16:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:16:13:16:13 | "..." | result | +| test.swift:18:13:18:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:18:13:18:13 | "..." | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/Taint.ql b/swift/ql/test/library-tests/dataflow/taint/Taint.ql new file mode 100644 index 00000000000..35836c4cffc --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/Taint.ql @@ -0,0 +1,29 @@ +/** + * @kind path-problem + */ + +import swift +import codeql.swift.dataflow.TaintTracking +import codeql.swift.dataflow.DataFlow::DataFlow +import PathGraph + +class TestConfiguration extends TaintTracking::Configuration { + TestConfiguration() { this = "TestConfiguration" } + + override predicate isSource(Node src) { + src.asExpr().(CallExpr).getStaticTarget().getName() = "source()" + } + + override predicate isSink(Node sink) { + exists(CallExpr sinkCall | + sinkCall.getStaticTarget().getName() = "sink(arg:)" and + sinkCall.getAnArgument().getExpr() = sink.asExpr() + ) + } + + override int explorationLimit() { result = 100 } +} + +from PathNode src, PathNode sink, TestConfiguration test +where test.hasFlowPath(src, sink) +select sink, src, sink, "result" diff --git a/swift/ql/test/library-tests/dataflow/taint/test.swift b/swift/ql/test/library-tests/dataflow/taint/test.swift new file mode 100644 index 00000000000..36ff201788b --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/test.swift @@ -0,0 +1,22 @@ +func source() -> Int { return 0; } +func sink(arg: String) {} + +func taintThroughInterpolatedStrings() { + var x = source() + + sink(arg: "\(x)") // tainted + + sink(arg: "\(x) \(x)") // tainted + + sink(arg: "\(x) \(0) \(x)") // tainted + + var y = 42 + sink(arg: "\(y)") // clean + + sink(arg: "\(x) hello \(y)") // tainted + + sink(arg: "\(y) world \(x)") // tainted + + x = 0 + sink(arg: "\(x)") // clean +} \ No newline at end of file From 2f13c65ad71b94ef61f95a1f25747ba5743cd65d Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 4 Aug 2022 22:45:45 +0100 Subject: [PATCH 608/736] Update swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> --- .../codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index 509c7b4efbd..6549d9692f2 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -100,7 +100,7 @@ module Stmts { // Note: If the brace statement is the body of a `TapExpr`, the first element is the variable // declaration (see https://github.com/apple/swift/blob/main/include/swift/AST/Expr.h#L848) - // that's initialized by the `Tapxpr`. In `TapExprTre` we've already visited this declaration, + // that's initialized by the `TapExpr`. In `TapExprTree` we've already visited this declaration, // along with its initializer. So we skip the first element here. private AstNode getFirstElement() { if this.isBodyOfTapExpr() then result = ast.getElement(1) else result = ast.getFirstElement() From e0dadb4df69da1449d68e337376e11655939c8c5 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 5 Aug 2022 10:20:07 +0200 Subject: [PATCH 609/736] Ruby: Simplify flow summaries for hash literals --- .../lib/codeql/ruby/frameworks/core/Hash.qll | 83 +++++++------------ 1 file changed, 31 insertions(+), 52 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll index 87733c0af9b..cf0872e770e 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll @@ -16,65 +16,44 @@ private import codeql.ruby.dataflow.internal.DataFlowDispatch * in `Array.qll`. */ module Hash { - // cannot use API graphs due to negative recursion - private predicate isHashLiteralPair(Pair pair, ConstantValue key) { - key = DataFlow::Content::getKnownElementIndex(pair.getKey()) and - pair = any(MethodCall mc | mc.getMethodName() = "[]").getAnArgument() - } - - private class HashLiteralSymbolSummary extends SummarizedCallable { - private ConstantValue::ConstantSymbolValue symbol; - - HashLiteralSymbolSummary() { - isHashLiteralPair(_, symbol) and - this = "Hash.[" + symbol.serialize() + "]" - } - - final override MethodCall getACall() { - result = API::getTopLevelMember("Hash").getAMethodCall("[]").getExprNode().getExpr() and - exists(result.getKeywordArgument(symbol.getSymbol())) - } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - // { symbol: x } - input = "Argument[" + symbol.getSymbol() + ":]" and - output = "ReturnValue.Element[" + symbol.serialize() + "]" and - preservesValue = true - } - } - - private class HashLiteralNonSymbolSummary extends SummarizedCallable { - private ConstantValue key; - - HashLiteralNonSymbolSummary() { - this = "Hash.[]" and - isHashLiteralPair(_, key) and + /** + * Holds if `key` is used as the non-symbol key in a hash literal. For example + * + * ```rb + * { + * :a => 1, # symbol + * "b" => 2 # non-symbol, "b" is the key + * } + * ``` + */ + private predicate isHashLiteralNonSymbolKey(ConstantValue key) { + exists(Pair pair | + key = DataFlow::Content::getKnownElementIndex(pair.getKey()) and + // cannot use API graphs due to negative recursion + pair = any(MethodCall mc | mc.getMethodName() = "[]").getAnArgument() and not key.isSymbol(_) - } + ) + } + + private class HashLiteralSummary extends SummarizedCallable { + HashLiteralSummary() { this = "Hash.[]" } final override MethodCall getACall() { - result = API::getTopLevelMember("Hash").getAMethodCall("[]").getExprNode().getExpr() and - isHashLiteralPair(result.getAnArgument(), key) + result = API::getTopLevelMember("Hash").getAMethodCall("[]").getExprNode().getExpr() } override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { // { 'nonsymbol' => x } - input = "Argument[0..].PairValue[" + key.serialize() + "]" and - output = "ReturnValue.Element[" + key.serialize() + "]" and - preservesValue = true - } - } - - private class HashLiteralHashSplatSummary extends SummarizedCallable { - HashLiteralHashSplatSummary() { this = "Hash.[**]" } - - final override MethodCall getACall() { - result = API::getTopLevelMember("Hash").getAMethodCall("[]").getExprNode().getExpr() and - result.getAnArgument() instanceof HashSplatExpr - } - - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { - // { **hash } + exists(ConstantValue key | + isHashLiteralNonSymbolKey(key) and + input = "Argument[0..].PairValue[" + key.serialize() + "]" and + output = "ReturnValue.Element[" + key.serialize() + "]" and + preservesValue = true + ) + or + // { symbol: x } + // 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 output = "ReturnValue" and preservesValue = true From 5ebce6ee4f614c9b4c8e3e9cd870d4b2fbbba769 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Fri, 5 Aug 2022 10:16:30 +0200 Subject: [PATCH 610/736] Improve AsyncTask data flow support Model the life-cycle described here: https://developer.android.com/reference/android/os/AsyncTask\#the-4-steps --- .../java/frameworks/android/AsyncTask.qll | 82 +++++++++++++++---- .../frameworks/android/asynctask/Test.java | 37 ++++++++- .../frameworks/android/asynctask/test.ql | 5 +- 3 files changed, 102 insertions(+), 22 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll b/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll index a4e7d11c549..0b0334a0664 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll @@ -4,19 +4,62 @@ import java private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.dataflow.FlowSteps -/** - * Models the value-preserving step from `asyncTask.execute(params)` to `AsyncTask::doInBackground(params)`. +/* + * The following flow steps aim to model the life-cycle of `AsyncTask`s described here: + * https://developer.android.com/reference/android/os/AsyncTask#the-4-steps */ -private class AsyncTaskAdditionalValueStep extends AdditionalValueStep { + +/** + * A taint step from the vararg arguments of `AsyncTask::execute` and `AsyncTask::executeOnExecutor` + * to the parameter of `AsyncTask::doInBackground`. + */ +private class AsyncTaskExecuteAdditionalValueStep extends AdditionalTaintStep { override predicate step(DataFlow::Node node1, DataFlow::Node node2) { exists(ExecuteAsyncTaskMethodAccess ma, AsyncTaskRunInBackgroundMethod m | - DataFlow::getInstanceArgument(ma).getType() = m.getDeclaringType() and + DataFlow::getInstanceArgument(ma).getType() = m.getDeclaringType() + | node1.asExpr() = ma.getParamsArgument() and node2.asParameter() = m.getParameter(0) ) } } +/** + * A value-preserving step from the return value of `AsyncTask::doInBackground` + * to the parameter of `AsyncTask::onPostExecute`. + */ +private class AsyncTaskOnPostExecuteAdditionalValueStep extends AdditionalValueStep { + override predicate step(DataFlow::Node node1, DataFlow::Node node2) { + exists( + AsyncTaskRunInBackgroundMethod runInBackground, AsyncTaskOnPostExecuteMethod onPostExecute + | + onPostExecute.getDeclaringType() = runInBackground.getDeclaringType() + | + node1.asExpr() = any(ReturnStmt r | r.getEnclosingCallable() = runInBackground).getResult() and + node2.asParameter() = onPostExecute.getParameter(0) + ) + } +} + +/** + * A value-preserving step from field initializers in `AsyncTask`'s constructor or initializer method + * to the instance parameter of `AsyncTask::runInBackground` and `AsyncTask::onPostExecute`. + */ +private class AsyncTaskFieldInitQualifierToInstanceParameterStep extends AdditionalValueStep { + override predicate step(DataFlow::Node n1, DataFlow::Node n2) { + exists(AsyncTaskInit init, Callable receiver | + n1.(DataFlow::PostUpdateNode).getPreUpdateNode() = + DataFlow::getFieldQualifier(any(FieldWrite f | f.getEnclosingCallable() = init)) and + n2.(DataFlow::InstanceParameterNode).getCallable() = receiver and + receiver.getDeclaringType() = init.getDeclaringType() and + ( + receiver instanceof AsyncTaskRunInBackgroundMethod or + receiver instanceof AsyncTaskOnPostExecuteMethod + ) + ) + } +} + /** * The Android class `android.os.AsyncTask`. */ @@ -24,29 +67,40 @@ private class AsyncTask extends RefType { AsyncTask() { this.hasQualifiedName("android.os", "AsyncTask") } } +/** The constructor or initializer method of the `android.os.AsyncTask` class. */ +private class AsyncTaskInit extends Callable { + AsyncTaskInit() { + this.getDeclaringType().getSourceDeclaration().getASourceSupertype*() instanceof AsyncTask and + (this instanceof Constructor or this instanceof InitializerMethod) + } +} + /** A call to the `execute` or `executeOnExecutor` methods of the `android.os.AsyncTask` class. */ private class ExecuteAsyncTaskMethodAccess extends MethodAccess { Argument paramsArgument; ExecuteAsyncTaskMethodAccess() { - exists(Method m | - this.getMethod() = m and - m.getDeclaringType().getSourceDeclaration().getASourceSupertype*() instanceof AsyncTask - | - m.getName() = "execute" and not m.isStatic() and paramsArgument = this.getArgument(0) - or - m.getName() = "executeOnExecutor" and paramsArgument = this.getArgument(1) - ) + this.getMethod().hasName(["execute", "executeOnExecutor"]) and + this.getMethod().getDeclaringType().getSourceDeclaration().getASourceSupertype*() instanceof + AsyncTask } /** Returns the `params` argument of this call. */ - Argument getParamsArgument() { result = paramsArgument } + Argument getParamsArgument() { result = this.getAnArgument() and result.isVararg() } } /** The `doInBackground` method of the `android.os.AsyncTask` class. */ private class AsyncTaskRunInBackgroundMethod extends Method { AsyncTaskRunInBackgroundMethod() { this.getDeclaringType().getSourceDeclaration().getASourceSupertype*() instanceof AsyncTask and - this.getName() = "doInBackground" + this.hasName("doInBackground") + } +} + +/** The `onPostExecute` method of the `android.os.AsyncTask` class. */ +private class AsyncTaskOnPostExecuteMethod extends Method { + AsyncTaskOnPostExecuteMethod() { + this.getDeclaringType().getSourceDeclaration().getASourceSupertype*() instanceof AsyncTask and + this.hasName("onPostExecute") } } diff --git a/java/ql/test/library-tests/frameworks/android/asynctask/Test.java b/java/ql/test/library-tests/frameworks/android/asynctask/Test.java index a2c25487462..b471b172c64 100644 --- a/java/ql/test/library-tests/frameworks/android/asynctask/Test.java +++ b/java/ql/test/library-tests/frameworks/android/asynctask/Test.java @@ -10,16 +10,19 @@ public class Test { public void test() { TestAsyncTask t = new TestAsyncTask(); - t.execute(source("execute")); - t.executeOnExecutor(null, source("executeOnExecutor")); + t.execute(source("execute"), null); + t.executeOnExecutor(null, source("executeOnExecutor"), null); SafeAsyncTask t2 = new SafeAsyncTask(); t2.execute("safe"); + TestConstructorTask t3 = new TestConstructorTask(source("constructor"), "safe"); + t3.execute(source("params")); } private class TestAsyncTask extends AsyncTask { @Override protected Object doInBackground(Object... params) { - sink(params); // $ hasValueFlow=execute hasValueFlow=executeOnExecutor + sink(params[0]); // $ hasTaintFlow=execute hasTaintFlow=executeOnExecutor + sink(params[1]); // $ SPURIOUS: hasTaintFlow=execute hasTaintFlow=executeOnExecutor return null; } } @@ -27,8 +30,34 @@ public class Test { private class SafeAsyncTask extends AsyncTask { @Override protected Object doInBackground(Object... params) { - sink(params); // Safe + sink(params[0]); // Safe return null; } } + + class TestConstructorTask extends AsyncTask { + private Object field; + private Object safeField; + + public TestConstructorTask(Object field, Object safeField) { + this.field = field; + this.safeField = safeField; + } + + @Override + protected Object doInBackground(Object... params) { + sink(params[0]); // $ hasTaintFlow=params + sink(field); // $ hasValueFlow=constructor + sink(safeField); // Safe + return params[0]; + } + + @Override + protected void onPostExecute(Object param) { + sink(param); // $ hasTaintFlow=params + sink(field); // $ hasValueFlow=constructor + sink(safeField); // Safe + } + + } } diff --git a/java/ql/test/library-tests/frameworks/android/asynctask/test.ql b/java/ql/test/library-tests/frameworks/android/asynctask/test.ql index 9c9b3747604..58d90963fcb 100644 --- a/java/ql/test/library-tests/frameworks/android/asynctask/test.ql +++ b/java/ql/test/library-tests/frameworks/android/asynctask/test.ql @@ -1,6 +1,3 @@ import java import TestUtilities.InlineFlowTest - -class AsyncTaskTest extends InlineFlowTest { - override TaintTracking::Configuration getTaintFlowConfig() { none() } -} +import semmle.code.java.dataflow.FlowSteps From 09d0f8e0cee79406d4a49df232ca10d297c57d12 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 22 Jun 2022 13:49:10 +0200 Subject: [PATCH 611/736] Dataflow: Replace stage duplication with parameterised modules. --- .../java/dataflow/internal/DataFlowImpl.qll | 2507 +++++------------ 1 file changed, 766 insertions(+), 1741 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index a076f7a2e45..22c3bd2466e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } From d3dcc3ce3a9db8a96d62096f6209d675cbbf72e1 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 14 Jul 2022 11:52:13 +0200 Subject: [PATCH 612/736] Dataflow: Sync. --- .../cpp/dataflow/internal/DataFlowImpl.qll | 2507 +++++------------ .../cpp/dataflow/internal/DataFlowImpl2.qll | 2507 +++++------------ .../cpp/dataflow/internal/DataFlowImpl3.qll | 2507 +++++------------ .../cpp/dataflow/internal/DataFlowImpl4.qll | 2507 +++++------------ .../dataflow/internal/DataFlowImplLocal.qll | 2507 +++++------------ .../cpp/ir/dataflow/internal/DataFlowImpl.qll | 2507 +++++------------ .../ir/dataflow/internal/DataFlowImpl2.qll | 2507 +++++------------ .../ir/dataflow/internal/DataFlowImpl3.qll | 2507 +++++------------ .../ir/dataflow/internal/DataFlowImpl4.qll | 2507 +++++------------ .../csharp/dataflow/internal/DataFlowImpl.qll | 2507 +++++------------ .../dataflow/internal/DataFlowImpl2.qll | 2507 +++++------------ .../dataflow/internal/DataFlowImpl3.qll | 2507 +++++------------ .../dataflow/internal/DataFlowImpl4.qll | 2507 +++++------------ .../dataflow/internal/DataFlowImpl5.qll | 2507 +++++------------ .../DataFlowImplForContentDataFlow.qll | 2507 +++++------------ .../java/dataflow/internal/DataFlowImpl2.qll | 2507 +++++------------ .../java/dataflow/internal/DataFlowImpl3.qll | 2507 +++++------------ .../java/dataflow/internal/DataFlowImpl4.qll | 2507 +++++------------ .../java/dataflow/internal/DataFlowImpl5.qll | 2507 +++++------------ .../java/dataflow/internal/DataFlowImpl6.qll | 2507 +++++------------ .../DataFlowImplForOnActivityResult.qll | 2507 +++++------------ .../DataFlowImplForSerializability.qll | 2507 +++++------------ .../dataflow/new/internal/DataFlowImpl.qll | 2507 +++++------------ .../dataflow/new/internal/DataFlowImpl2.qll | 2507 +++++------------ .../dataflow/new/internal/DataFlowImpl3.qll | 2507 +++++------------ .../dataflow/new/internal/DataFlowImpl4.qll | 2507 +++++------------ .../ruby/dataflow/internal/DataFlowImpl.qll | 2507 +++++------------ .../ruby/dataflow/internal/DataFlowImpl2.qll | 2507 +++++------------ .../internal/DataFlowImplForLibraries.qll | 2507 +++++------------ .../swift/dataflow/internal/DataFlowImpl.qll | 2507 +++++------------ 30 files changed, 22980 insertions(+), 52230 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index a076f7a2e45..22c3bd2466e 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index a076f7a2e45..22c3bd2466e 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 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 @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 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 @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 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 @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index a076f7a2e45..22c3bd2466e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll index a076f7a2e45..22c3bd2466e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll index a076f7a2e45..22c3bd2466e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll index a076f7a2e45..22c3bd2466e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index a076f7a2e45..22c3bd2466e 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } 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 a076f7a2e45..22c3bd2466e 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index a076f7a2e45..22c3bd2466e 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll index a076f7a2e45..22c3bd2466e 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll index a076f7a2e45..22c3bd2466e 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index a076f7a2e45..22c3bd2466e 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -597,7 +597,7 @@ private predicate hasSinkCallCtx(Configuration config) { ) } -private module Stage1 { +private module Stage1 implements StageSig { class ApApprox = Unit; class Ap = Unit; @@ -944,12 +944,9 @@ private module Stage1 { predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, config) } bindingset[node, state, config] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, toReturn, pragma[only_bind_into](config)) and + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, _, pragma[only_bind_into](config)) and exists(state) and - exists(returnAp) and exists(ap) } @@ -1142,66 +1139,754 @@ private predicate flowIntoCallNodeCand1( ) } -private module Stage2 { - module PrevStage = Stage1; +private signature module StageSig { + class Ap; + predicate revFlow(NodeEx node, Configuration config); + + bindingset[node, state, config] + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config); + + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config); + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config); + + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ); + + predicate readStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); +} + +private module MkStage { class ApApprox = PrevStage::Ap; - class Ap = boolean; + signature module StageParam { + class Ap; - class ApNil extends Ap { - ApNil() { this = false } + class ApNil extends Ap; + + bindingset[result, ap] + ApApprox getApprox(Ap ap); + + ApNil getApNil(NodeEx node); + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail); + + Content getHeadContent(Ap ap); + + class ApOption; + + ApOption apNone(); + + ApOption apSome(Ap ap); + + class Cc; + + class CcCall extends Cc; + + // TODO: member predicate on CcCall + predicate matchesCall(CcCall cc, DataFlowCall call); + + class CcNoCall extends Cc; + + Cc ccNone(); + + CcCall ccSomeCall(); + + class LocalCc; + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc); + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc); + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc); + + bindingset[node1, state1, config] + bindingset[node2, state2, config] + predicate localStep( + NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, + ApNil ap, Configuration config, LocalCc lcc + ); + + predicate flowOutOfCall( + DataFlowCall call, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, Configuration config + ); + + predicate flowIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ); + + bindingset[node, state, ap, config] + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config); + + bindingset[ap, contentType] + predicate typecheckStore(Ap ap, DataFlowType contentType); } - bindingset[result, ap] - private ApApprox getApprox(Ap ap) { any() } + module Stage implements StageSig { + import Param - private ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and exists(result) } + /* Begin: Stage logic. */ + bindingset[result, apa] + private ApApprox unbindApa(ApApprox apa) { + pragma[only_bind_out](apa) = pragma[only_bind_out](result) + } - bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + pragma[nomagic] + private predicate flowThroughOutOfCall( + DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, + Configuration config + ) { + flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and + PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, + pragma[only_bind_into](config)) and + matchesCall(ccc, call) + } - pragma[inline] - private Content getHeadContent(Ap ap) { exists(result) and ap = true } + /** + * Holds if `node` is reachable with access path `ap` from a source in the + * configuration `config`. + * + * The call context `cc` records whether the node is reached through an + * argument in a call, and if so, `argAp` records the access path of that + * argument. + */ + pragma[nomagic] + predicate fwdFlow( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + fwdFlow0(node, state, cc, argAp, ap, config) and + PrevStage::revFlow(node, state, unbindApa(getApprox(ap)), config) and + filter(node, state, ap, config) + } - class ApOption = BooleanOption; + pragma[nomagic] + private predicate fwdFlow0( + NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + sourceNode(node, state, config) and + (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and + argAp = apNone() and + ap = getApNil(node) + or + exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | + fwdFlow(mid, state0, cc, argAp, ap0, config) and + localCc = getLocalCc(mid, cc) + | + localStep(mid, state0, node, state, true, _, config, localCc) and + ap = ap0 + or + localStep(mid, state0, node, state, false, ap, config, localCc) and + ap0 instanceof ApNil + ) + or + exists(NodeEx mid | + fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + jumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStep(mid, node, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and + additionalJumpStateStep(mid, state0, node, state, config) and + cc = ccNone() and + argAp = apNone() and + ap = getApNil(node) + ) + or + // store + exists(TypedContent tc, Ap ap0 | + fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and + ap = apCons(tc, ap0) + ) + or + // read + exists(Ap ap0, Content c | + fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and + fwdFlowConsCand(ap0, c, ap, config) + ) + or + // flow into a callable + exists(ApApprox apa | + fwdFlowIn(_, node, state, _, cc, _, ap, config) and + apa = getApprox(ap) and + if PrevStage::parameterMayFlowThrough(node, _, apa, config) + then argAp = apSome(ap) + else argAp = apNone() + ) + or + // flow out of a callable + fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) + or + exists(DataFlowCall call, Ap argAp0 | + fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and + fwdFlowIsEntered(call, cc, argAp, argAp0, config) + ) + } - ApOption apNone() { result = TBooleanNone() } + pragma[nomagic] + private predicate fwdFlowStore( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + exists(DataFlowType contentType | + fwdFlow(node1, state, cc, argAp, ap1, config) and + PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and + typecheckStore(ap1, contentType) + ) + } - ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + /** + * Holds if forward flow with access path `tail` reaches a store of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(TypedContent tc | + fwdFlowStore(_, tail, tc, _, _, _, _, config) and + tc.getContent() = c and + cons = apCons(tc, tail) + ) + } + pragma[nomagic] + private predicate fwdFlowRead( + Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, + Configuration config + ) { + fwdFlow(node1, state, cc, argAp, ap, config) and + PrevStage::readStepCand(node1, c, node2, config) and + getHeadContent(ap) = c + } + + pragma[nomagic] + private predicate fwdFlowIn( + DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, + Ap ap, Configuration config + ) { + exists(ArgNodeEx arg, boolean allowsFieldFlow | + fwdFlow(arg, state, outercc, argAp, ap, config) and + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutNotFromArg( + NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config + ) { + exists( + DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, + DataFlowCallable inner + | + fwdFlow(ret, state, innercc, argAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + inner = ret.getEnclosingCallable() and + ccOut = getCallContextReturn(inner, call, innercc) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate fwdFlowOutFromArg( + DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | + fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and + flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * 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`. + */ + pragma[nomagic] + private predicate fwdFlowIsEntered( + DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p | + fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and + PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) + ) + } + + pragma[nomagic] + private predicate storeStepFwd( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config + ) { + fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and + ap2 = apCons(tc, ap1) and + fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) + } + + private predicate readStepFwd( + NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config + ) { + fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and + fwdFlowConsCand(ap1, c, ap2, config) + } + + pragma[nomagic] + private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { + exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, + pragma[only_bind_into](config)) and + fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and + fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), + pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), + pragma[only_bind_into](config)) + ) + } + + pragma[nomagic] + private predicate flowThroughIntoCall( + DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config + ) { + flowIntoCall(call, arg, p, allowsFieldFlow, config) and + fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and + PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and + callMayFlowThroughFwd(call, pragma[only_bind_into](config)) + } + + pragma[nomagic] + private predicate returnNodeMayFlowThrough( + RetNodeEx ret, FlowState state, Ap ap, Configuration config + ) { + fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) + } + + /** + * Holds if `node` with access path `ap` is part of a path from a source to a + * sink in the configuration `config`. + * + * The Boolean `toReturn` records whether the node must be returned from the + * enclosing callable in order to reach a sink, and if so, `returnAp` records + * the access path of the returned value. + */ + pragma[nomagic] + predicate revFlow( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + revFlow0(node, state, toReturn, returnAp, ap, config) and + fwdFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + private predicate revFlow0( + NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + fwdFlow(node, state, _, _, ap, config) and + sinkNode(node, state, config) and + (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and + returnAp = apNone() and + ap instanceof ApNil + or + exists(NodeEx mid, FlowState state0 | + localStep(node, state, mid, state0, true, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, ap, config) + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and + localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and + revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and + ap instanceof ApNil + ) + or + exists(NodeEx mid | + jumpStep(node, mid, config) and + revFlow(mid, state, _, _, ap, config) and + toReturn = false and + returnAp = apNone() + ) + or + exists(NodeEx mid, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStep(node, mid, config) and + revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + exists(NodeEx mid, FlowState state0, ApNil nil | + fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and + additionalJumpStateStep(node, state, mid, state0, config) and + revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, + pragma[only_bind_into](config)) and + toReturn = false and + returnAp = apNone() and + ap instanceof ApNil + ) + or + // store + exists(Ap ap0, Content c | + revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and + revFlowConsCand(ap0, c, ap, config) + ) + or + // read + exists(NodeEx mid, Ap ap0 | + revFlow(mid, state, toReturn, returnAp, ap0, config) and + readStepFwd(node, ap, _, mid, ap0, config) + ) + or + // flow into a callable + revFlowInNotToReturn(node, state, returnAp, ap, config) and + toReturn = false + or + exists(DataFlowCall call, Ap returnAp0 | + revFlowInToReturn(call, node, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + or + // flow out of a callable + revFlowOut(_, node, state, _, _, ap, config) and + toReturn = true and + if returnNodeMayFlowThrough(node, state, ap, config) + then returnAp = apSome(ap) + else returnAp = apNone() + } + + pragma[nomagic] + private predicate revFlowStore( + Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, + boolean toReturn, ApOption returnAp, Configuration config + ) { + revFlow(mid, state, toReturn, returnAp, ap0, config) and + storeStepFwd(node, ap, tc, mid, ap0, config) and + tc.getContent() = c + } + + /** + * Holds if reverse flow with access path `tail` reaches a read of `c` + * resulting in access path `cons`. + */ + pragma[nomagic] + private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { + exists(NodeEx mid, Ap tail0 | + revFlow(mid, _, _, _, tail, config) and + tail = pragma[only_bind_into](tail0) and + readStepFwd(_, cons, c, mid, tail0, config) + ) + } + + pragma[nomagic] + private predicate revFlowOut( + DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, + Configuration config + ) { + exists(NodeEx out, boolean allowsFieldFlow | + revFlow(out, state, toReturn, returnAp, ap, config) and + flowOutOfCall(call, ret, out, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInNotToReturn( + ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, false, returnAp, ap, config) and + flowIntoCall(_, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + pragma[nomagic] + private predicate revFlowInToReturn( + DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config + ) { + exists(ParamNodeEx p, boolean allowsFieldFlow | + revFlow(p, state, true, apSome(returnAp), ap, config) and + flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and + if allowsFieldFlow = false then ap instanceof ApNil else any() + ) + } + + /** + * Holds if an output from `call` is reached in the flow covered by `revFlow` + * and data might flow through the target callable resulting in reverse flow + * reaching an argument of `call`. + */ + pragma[nomagic] + private predicate revFlowIsReturned( + DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config + ) { + exists(RetNodeEx ret, FlowState state, CcCall ccc | + revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and + fwdFlow(ret, state, ccc, apSome(_), ap, config) and + matchesCall(ccc, call) + ) + } + + pragma[nomagic] + predicate storeStepCand( + NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, + Configuration config + ) { + exists(Ap ap2, Content c | + PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and + revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and + revFlowConsCand(ap2, c, ap1, config) + ) + } + + predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { + exists(Ap ap1, Ap ap2 | + revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and + readStepFwd(node1, ap1, c, node2, ap2, config) and + revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, + pragma[only_bind_into](config)) + ) + } + + predicate revFlow(NodeEx node, FlowState state, Configuration config) { + revFlow(node, state, _, _, _, config) + } + + predicate revFlow(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, _, _, ap, config) + } + + pragma[nomagic] + predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } + + // use an alias as a workaround for bad functionality-induced joins + pragma[nomagic] + predicate revFlowAlias(NodeEx node, FlowState state, Ap ap, Configuration config) { + revFlow(node, state, ap, config) + } + + private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepFwd(_, ap, tc, _, _, config) + } + + private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { + storeStepCand(_, ap, tc, _, _, config) + } + + private predicate validAp(Ap ap, Configuration config) { + revFlow(_, _, _, _, ap, config) and ap instanceof ApNil + or + exists(TypedContent head, Ap tail | + consCand(head, tail, config) and + ap = apCons(head, tail) + ) + } + + predicate consCand(TypedContent tc, Ap ap, Configuration config) { + revConsCand(tc, ap, config) and + validAp(ap, config) + } + + pragma[noinline] + private predicate parameterFlow( + ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config + ) { + revFlow(p, _, true, apSome(ap0), ap, config) and + c = p.getEnclosingCallable() + } + + predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { + exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | + parameterFlow(p, ap, ap0, c, config) and + c = ret.getEnclosingCallable() and + revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), + pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and + fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and + kind = ret.getKind() and + p.getPosition() = pos and + // we don't expect a parameter to return stored in itself, unless explicitly allowed + ( + not kind.(ParamUpdateReturnKind).getPosition() = pos + or + p.allowParameterReturnInSelf() + ) + ) + } + + pragma[nomagic] + predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { + exists( + Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap + | + revFlow(arg, state, toReturn, returnAp, ap, config) and + revFlowInToReturn(call, arg, state, returnAp0, ap, config) and + revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) + ) + } + + predicate stats( + boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config + ) { + fwd = true and + nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and + states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | + fwdFlow(n, state, cc, argAp, ap, config) + ) + or + fwd = false and + nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and + fields = count(TypedContent f0 | consCand(f0, _, config)) and + conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and + states = count(FlowState state | revFlow(_, state, _, _, _, config)) and + tuples = + count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | + revFlow(n, state, b, retAp, ap, config) + ) + } + /* End: Stage logic. */ + } +} + +private module BooleanCallContext { + class Cc extends boolean { + Cc() { this in [true, false] } + } + + class CcCall extends Cc { + CcCall() { this = true } + } + + /** Holds if the call context may be `call`. */ + predicate matchesCall(CcCall cc, DataFlowCall call) { any() } + + class CcNoCall extends Cc { + CcNoCall() { this = false } + } + + Cc ccNone() { result = false } + + CcCall ccSomeCall() { result = true } + + class LocalCc = Unit; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } + + bindingset[call, c, innercc] + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } +} + +private module Level1CallContext { class Cc = CallContext; class CcCall = CallContextCall; + pragma[inline] + predicate matchesCall(CcCall cc, DataFlowCall call) { cc.matchesCall(call) } + class CcNoCall = CallContextNoCall; Cc ccNone() { result instanceof CallContextAny } CcCall ccSomeCall() { result instanceof CallContextSomeCall } - private class LocalCc = Unit; + module NoLocalCallContext { + class LocalCc = Unit; - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSiteDispatch(call, c) - then result = TSpecificCall(call) - else result = TSomeCall() + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { any() } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSiteDispatch(call, c) + then result = TSpecificCall(call) + else result = TSomeCall() + } + } + + module LocalCallContext { + class LocalCc = LocalCallContext; + + bindingset[node, cc] + LocalCc getLocalCc(NodeEx node, Cc cc) { + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + node.getEnclosingCallable()) + } + + bindingset[call, c, outercc] + CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { + checkCallContextCall(outercc, call, c) and + if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() + } } bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { + CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { checkCallContextReturn(innercc, c, call) and if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() } +} - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } +private module Stage2Param implements MkStage::StageParam { + private module PrevStage = Stage1; + + class Ap extends boolean { + Ap() { this in [true, false] } + } + + class ApNil extends Ap { + ApNil() { this = false } + } + + bindingset[result, ap] + PrevStage::Ap getApprox(Ap ap) { any() } + + ApNil getApNil(NodeEx node) { Stage1::revFlow(node, _) and exists(result) } + + bindingset[tc, tail] + Ap apCons(TypedContent tc, Ap tail) { result = true and exists(tc) and exists(tail) } + + pragma[inline] + Content getHeadContent(Ap ap) { exists(result) and ap = true } + + class ApOption = BooleanOption; + + ApOption apNone() { result = TBooleanNone() } + + ApOption apSome(Ap ap) { result = TBooleanSome(ap) } + + import Level1CallContext + import NoLocalCallContext bindingset[node1, state1, config] bindingset[node2, state2, config] - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -1221,9 +1906,9 @@ private module Stage2 { exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand1/5; + predicate flowOutOfCall = flowOutOfCallNodeCand1/5; - private predicate flowIntoCall = flowIntoCallNodeCand1/5; + predicate flowIntoCall = flowIntoCallNodeCand1/5; pragma[nomagic] private predicate expectsContentCand(NodeEx node, Configuration config) { @@ -1235,7 +1920,7 @@ private module Stage2 { } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { PrevStage::revFlowState(state, pragma[only_bind_into](config)) and exists(ap) and not stateBarrier(node, state, config) and @@ -1248,544 +1933,11 @@ private module Stage2 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 2 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 2 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage2 = MkStage::Stage; + pragma[nomagic] private predicate flowOutOfCallNodeCand2( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config @@ -1883,14 +2035,13 @@ private module LocalFlowBigStep { ) { additionalLocalFlowStepNodeCand1(node1, node2, config) and state1 = state2 and - Stage2::revFlow(node1, pragma[only_bind_into](state1), _, _, false, - pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), _, _, false, + Stage2::revFlow(node1, pragma[only_bind_into](state1), false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false, pragma[only_bind_into](config)) or additionalLocalStateStep(node1, state1, node2, state2, config) and - Stage2::revFlow(node1, state1, _, _, false, pragma[only_bind_into](config)) and - Stage2::revFlowAlias(node2, state2, _, _, false, pragma[only_bind_into](config)) + Stage2::revFlow(node1, state1, false, pragma[only_bind_into](config)) and + Stage2::revFlowAlias(node2, state2, false, pragma[only_bind_into](config)) } /** @@ -1967,26 +2118,24 @@ private module LocalFlowBigStep { private import LocalFlowBigStep -private module Stage3 { - module PrevStage = Stage2; - - class ApApprox = PrevStage::Ap; +private module Stage3Param implements MkStage::StageParam { + private module PrevStage = Stage2; class Ap = AccessPathFront; class ApNil = AccessPathFrontNil; - private ApApprox getApprox(Ap ap) { result = ap.toBoolNonEmpty() } + PrevStage::Ap getApprox(Ap ap) { result = ap.toBoolNonEmpty() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TFrontNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } + Ap apCons(TypedContent tc, Ap tail) { result.getHead() = tc and exists(tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathFrontOption; @@ -1994,44 +2143,18 @@ private module Stage3 { ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap) } - class Cc = boolean; + import BooleanCallContext - class CcCall extends Cc { - CcCall() { this = true } - - /** Holds if this call context may be `call`. */ - predicate matchesCall(DataFlowCall call) { any() } - } - - class CcNoCall extends Cc { - CcNoCall() { this = false } - } - - Cc ccNone() { result = false } - - CcCall ccSomeCall() { result = true } - - private class LocalCc = Unit; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { any() } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { any() } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { any() } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap, config, _) and exists(lcc) } - private predicate flowOutOfCall = flowOutOfCallNodeCand2/5; + predicate flowOutOfCall = flowOutOfCallNodeCand2/5; - private predicate flowIntoCall = flowIntoCallNodeCand2/5; + predicate flowIntoCall = flowIntoCallNodeCand2/5; pragma[nomagic] private predicate clearSet(NodeEx node, ContentSet c, Configuration config) { @@ -2067,7 +2190,7 @@ private module Stage3 { private predicate castingNodeEx(NodeEx node) { node.asNode() instanceof CastingNode } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { exists(state) and exists(config) and not clear(node, ap, config) and @@ -2080,548 +2203,15 @@ private module Stage3 { } bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { + predicate typecheckStore(Ap ap, DataFlowType contentType) { // We need to typecheck stores here, since reverse flow through a getter // might have a different type here compared to inside the getter. compatibleTypes(ap.getType(), contentType) } - - /* Begin: Stage 3 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 3 logic. */ } +private module Stage3 = MkStage::Stage; + /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` * and remains relevant for the following pruning stage. @@ -2644,7 +2234,7 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config) tails = strictcount(AccessPathFront apf | Stage3::consCand(tc, apf, config)) and nodes = strictcount(NodeEx n, FlowState state | - Stage3::revFlow(n, state, _, _, any(AccessPathFrontHead apf | apf.getHead() = tc), config) + Stage3::revFlow(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) or flowCandSummaryCtx(n, state, any(AccessPathFrontHead apf | apf.getHead() = tc), config) ) and @@ -2828,26 +2418,24 @@ private class AccessPathApproxOption extends TAccessPathApproxOption { } } -private module Stage4 { - module PrevStage = Stage3; - - class ApApprox = PrevStage::Ap; +private module Stage4Param implements MkStage::StageParam { + private module PrevStage = Stage3; class Ap = AccessPathApprox; class ApNil = AccessPathApproxNil; - private ApApprox getApprox(Ap ap) { result = ap.getFront() } + PrevStage::Ap getApprox(Ap ap) { result = ap.getFront() } - private ApNil getApNil(NodeEx node) { + ApNil getApNil(NodeEx node) { PrevStage::revFlow(node, _) and result = TNil(node.getDataFlowType()) } bindingset[tc, tail] - private Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } + Ap apCons(TypedContent tc, Ap tail) { result = push(tc, tail) } pragma[noinline] - private Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } + Content getHeadContent(Ap ap) { result = ap.getHead().getContent() } class ApOption = AccessPathApproxOption; @@ -2855,38 +2443,10 @@ private module Stage4 { ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) } - class Cc = CallContext; + import Level1CallContext + import LocalCallContext - class CcCall = CallContextCall; - - class CcNoCall = CallContextNoCall; - - Cc ccNone() { result instanceof CallContextAny } - - CcCall ccSomeCall() { result instanceof CallContextSomeCall } - - private class LocalCc = LocalCallContext; - - bindingset[call, c, outercc] - private CcCall getCallContextCall(DataFlowCall call, DataFlowCallable c, Cc outercc) { - checkCallContextCall(outercc, call, c) and - if recordDataFlowCallSite(call, c) then result = TSpecificCall(call) else result = TSomeCall() - } - - bindingset[call, c, innercc] - private CcNoCall getCallContextReturn(DataFlowCallable c, DataFlowCall call, Cc innercc) { - checkCallContextReturn(innercc, c, call) and - if reducedViableImplInReturn(c, call) then result = TReturn(c, call) else result = ccNone() - } - - bindingset[node, cc] - private LocalCc getLocalCc(NodeEx node, Cc cc) { - result = - getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), - node.getEnclosingCallable()) - } - - private predicate localStep( + predicate localStep( NodeEx node1, FlowState state1, NodeEx node2, FlowState state2, boolean preservesValue, ApNil ap, Configuration config, LocalCc lcc ) { @@ -2894,575 +2454,40 @@ private module Stage4 { } pragma[nomagic] - private predicate flowOutOfCall( + predicate flowOutOfCall( DataFlowCall call, RetNodeEx node1, NodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } pragma[nomagic] - private predicate flowIntoCall( + predicate flowIntoCall( DataFlowCall call, ArgNodeEx node1, ParamNodeEx node2, boolean allowsFieldFlow, Configuration config ) { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow, config) and - PrevStage::revFlow(node2, pragma[only_bind_into](state), _, _, _, - pragma[only_bind_into](config)) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, _, _, + PrevStage::revFlow(node2, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) and + PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _, pragma[only_bind_into](config)) ) } bindingset[node, state, ap, config] - private predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } + predicate filter(NodeEx node, FlowState state, Ap ap, Configuration config) { any() } // Type checking is not necessary here as it has already been done in stage 3. bindingset[ap, contentType] - private predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } - - /* Begin: Stage 4 logic. */ - bindingset[node, state, config] - private predicate flowCand(NodeEx node, FlowState state, ApApprox apa, Configuration config) { - PrevStage::revFlow(node, state, _, _, apa, config) - } - - bindingset[result, apa] - private ApApprox unbindApa(ApApprox apa) { - pragma[only_bind_out](apa) = pragma[only_bind_out](result) - } - - pragma[nomagic] - private predicate flowThroughOutOfCall( - DataFlowCall call, CcCall ccc, RetNodeEx ret, NodeEx out, boolean allowsFieldFlow, - Configuration config - ) { - flowOutOfCall(call, ret, out, allowsFieldFlow, pragma[only_bind_into](config)) and - PrevStage::callMayFlowThroughRev(call, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(_, ret.getEnclosingCallable(), _, - pragma[only_bind_into](config)) and - ccc.matchesCall(call) - } - - /** - * Holds if `node` is reachable with access path `ap` from a source in the - * configuration `config`. - * - * The call context `cc` records whether the node is reached through an - * argument in a call, and if so, `argAp` records the access path of that - * argument. - */ - pragma[nomagic] - predicate fwdFlow(NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config) { - fwdFlow0(node, state, cc, argAp, ap, config) and - flowCand(node, state, unbindApa(getApprox(ap)), config) and - filter(node, state, ap, config) - } - - pragma[nomagic] - private predicate fwdFlow0( - NodeEx node, FlowState state, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - sourceNode(node, state, config) and - (if hasSourceCallCtx(config) then cc = ccSomeCall() else cc = ccNone()) and - argAp = apNone() and - ap = getApNil(node) - or - exists(NodeEx mid, FlowState state0, Ap ap0, LocalCc localCc | - fwdFlow(mid, state0, cc, argAp, ap0, config) and - localCc = getLocalCc(mid, cc) - | - localStep(mid, state0, node, state, true, _, config, localCc) and - ap = ap0 - or - localStep(mid, state0, node, state, false, ap, config, localCc) and - ap0 instanceof ApNil - ) - or - exists(NodeEx mid | - fwdFlow(mid, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - jumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(mid, state, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStep(mid, node, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(mid, state0, _, _, nil, pragma[only_bind_into](config)) and - additionalJumpStateStep(mid, state0, node, state, config) and - cc = ccNone() and - argAp = apNone() and - ap = getApNil(node) - ) - or - // store - exists(TypedContent tc, Ap ap0 | - fwdFlowStore(_, ap0, tc, node, state, cc, argAp, config) and - ap = apCons(tc, ap0) - ) - or - // read - exists(Ap ap0, Content c | - fwdFlowRead(ap0, c, _, node, state, cc, argAp, config) and - fwdFlowConsCand(ap0, c, ap, config) - ) - or - // flow into a callable - exists(ApApprox apa | - fwdFlowIn(_, node, state, _, cc, _, ap, config) and - apa = getApprox(ap) and - if PrevStage::parameterMayFlowThrough(node, _, apa, config) - then argAp = apSome(ap) - else argAp = apNone() - ) - or - // flow out of a callable - fwdFlowOutNotFromArg(node, state, cc, argAp, ap, config) - or - exists(DataFlowCall call, Ap argAp0 | - fwdFlowOutFromArg(call, node, state, argAp0, ap, config) and - fwdFlowIsEntered(call, cc, argAp, argAp0, config) - ) - } - - pragma[nomagic] - private predicate fwdFlowStore( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - exists(DataFlowType contentType | - fwdFlow(node1, state, cc, argAp, ap1, config) and - PrevStage::storeStepCand(node1, unbindApa(getApprox(ap1)), tc, node2, contentType, config) and - typecheckStore(ap1, contentType) - ) - } - - /** - * Holds if forward flow with access path `tail` reaches a store of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate fwdFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(TypedContent tc | - fwdFlowStore(_, tail, tc, _, _, _, _, config) and - tc.getContent() = c and - cons = apCons(tc, tail) - ) - } - - pragma[nomagic] - private predicate fwdFlowRead( - Ap ap, Content c, NodeEx node1, NodeEx node2, FlowState state, Cc cc, ApOption argAp, - Configuration config - ) { - fwdFlow(node1, state, cc, argAp, ap, config) and - PrevStage::readStepCand(node1, c, node2, config) and - getHeadContent(ap) = c - } - - pragma[nomagic] - private predicate fwdFlowIn( - DataFlowCall call, ParamNodeEx p, FlowState state, Cc outercc, Cc innercc, ApOption argAp, - Ap ap, Configuration config - ) { - exists(ArgNodeEx arg, boolean allowsFieldFlow | - fwdFlow(arg, state, outercc, argAp, ap, config) and - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - innercc = getCallContextCall(call, p.getEnclosingCallable(), outercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutNotFromArg( - NodeEx out, FlowState state, Cc ccOut, ApOption argAp, Ap ap, Configuration config - ) { - exists( - DataFlowCall call, RetNodeEx ret, boolean allowsFieldFlow, CcNoCall innercc, - DataFlowCallable inner - | - fwdFlow(ret, state, innercc, argAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - inner = ret.getEnclosingCallable() and - ccOut = getCallContextReturn(inner, call, innercc) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate fwdFlowOutFromArg( - DataFlowCall call, NodeEx out, FlowState state, Ap argAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, boolean allowsFieldFlow, CcCall ccc | - fwdFlow(ret, state, ccc, apSome(argAp), ap, config) and - flowThroughOutOfCall(call, ccc, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * 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`. - */ - pragma[nomagic] - private predicate fwdFlowIsEntered( - DataFlowCall call, Cc cc, ApOption argAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p | - fwdFlowIn(call, p, _, cc, _, argAp, ap, config) and - PrevStage::parameterMayFlowThrough(p, _, unbindApa(getApprox(ap)), config) - ) - } - - pragma[nomagic] - private predicate storeStepFwd( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, Ap ap2, Configuration config - ) { - fwdFlowStore(node1, ap1, tc, node2, _, _, _, config) and - ap2 = apCons(tc, ap1) and - fwdFlowRead(ap2, tc.getContent(), _, _, _, _, _, config) - } - - private predicate readStepFwd( - NodeEx n1, Ap ap1, Content c, NodeEx n2, Ap ap2, Configuration config - ) { - fwdFlowRead(ap1, c, n1, n2, _, _, _, config) and - fwdFlowConsCand(ap1, c, ap2, config) - } - - pragma[nomagic] - private predicate callMayFlowThroughFwd(DataFlowCall call, Configuration config) { - exists(Ap argAp0, NodeEx out, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(out, state, pragma[only_bind_into](cc), pragma[only_bind_into](argAp), ap, - pragma[only_bind_into](config)) and - fwdFlowOutFromArg(call, out, state, argAp0, ap, config) and - fwdFlowIsEntered(pragma[only_bind_into](call), pragma[only_bind_into](cc), - pragma[only_bind_into](argAp), pragma[only_bind_into](argAp0), - pragma[only_bind_into](config)) - ) - } - - pragma[nomagic] - private predicate flowThroughIntoCall( - DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, Configuration config - ) { - flowIntoCall(call, arg, p, allowsFieldFlow, config) and - fwdFlow(arg, _, _, _, _, pragma[only_bind_into](config)) and - PrevStage::parameterMayFlowThrough(p, _, _, pragma[only_bind_into](config)) and - callMayFlowThroughFwd(call, pragma[only_bind_into](config)) - } - - pragma[nomagic] - private predicate returnNodeMayFlowThrough( - RetNodeEx ret, FlowState state, Ap ap, Configuration config - ) { - fwdFlow(ret, state, any(CcCall ccc), apSome(_), ap, config) - } - - /** - * Holds if `node` with access path `ap` is part of a path from a source to a - * sink in the configuration `config`. - * - * The Boolean `toReturn` records whether the node must be returned from the - * enclosing callable in order to reach a sink, and if so, `returnAp` records - * the access path of the returned value. - */ - pragma[nomagic] - predicate revFlow( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow0(node, state, toReturn, returnAp, ap, config) and - fwdFlow(node, state, _, _, ap, config) - } - - pragma[nomagic] - private predicate revFlow0( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - fwdFlow(node, state, _, _, ap, config) and - sinkNode(node, state, config) and - (if hasSinkCallCtx(config) then toReturn = true else toReturn = false) and - returnAp = apNone() and - ap instanceof ApNil - or - exists(NodeEx mid, FlowState state0 | - localStep(node, state, mid, state0, true, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, ap, config) - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, pragma[only_bind_into](state), _, _, ap, pragma[only_bind_into](config)) and - localStep(node, pragma[only_bind_into](state), mid, state0, false, _, config, _) and - revFlow(mid, state0, toReturn, returnAp, nil, pragma[only_bind_into](config)) and - ap instanceof ApNil - ) - or - exists(NodeEx mid | - jumpStep(node, mid, config) and - revFlow(mid, state, _, _, ap, config) and - toReturn = false and - returnAp = apNone() - ) - or - exists(NodeEx mid, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStep(node, mid, config) and - revFlow(pragma[only_bind_into](mid), state, _, _, nil, pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - exists(NodeEx mid, FlowState state0, ApNil nil | - fwdFlow(node, _, _, _, ap, pragma[only_bind_into](config)) and - additionalJumpStateStep(node, state, mid, state0, config) and - revFlow(pragma[only_bind_into](mid), pragma[only_bind_into](state0), _, _, nil, - pragma[only_bind_into](config)) and - toReturn = false and - returnAp = apNone() and - ap instanceof ApNil - ) - or - // store - exists(Ap ap0, Content c | - revFlowStore(ap0, c, ap, node, state, _, _, toReturn, returnAp, config) and - revFlowConsCand(ap0, c, ap, config) - ) - or - // read - exists(NodeEx mid, Ap ap0 | - revFlow(mid, state, toReturn, returnAp, ap0, config) and - readStepFwd(node, ap, _, mid, ap0, config) - ) - or - // flow into a callable - revFlowInNotToReturn(node, state, returnAp, ap, config) and - toReturn = false - or - exists(DataFlowCall call, Ap returnAp0 | - revFlowInToReturn(call, node, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - or - // flow out of a callable - revFlowOut(_, node, state, _, _, ap, config) and - toReturn = true and - if returnNodeMayFlowThrough(node, state, ap, config) - then returnAp = apSome(ap) - else returnAp = apNone() - } - - pragma[nomagic] - private predicate revFlowStore( - Ap ap0, Content c, Ap ap, NodeEx node, FlowState state, TypedContent tc, NodeEx mid, - boolean toReturn, ApOption returnAp, Configuration config - ) { - revFlow(mid, state, toReturn, returnAp, ap0, config) and - storeStepFwd(node, ap, tc, mid, ap0, config) and - tc.getContent() = c - } - - /** - * Holds if reverse flow with access path `tail` reaches a read of `c` - * resulting in access path `cons`. - */ - pragma[nomagic] - private predicate revFlowConsCand(Ap cons, Content c, Ap tail, Configuration config) { - exists(NodeEx mid, Ap tail0 | - revFlow(mid, _, _, _, tail, config) and - tail = pragma[only_bind_into](tail0) and - readStepFwd(_, cons, c, mid, tail0, config) - ) - } - - pragma[nomagic] - private predicate revFlowOut( - DataFlowCall call, RetNodeEx ret, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, - Configuration config - ) { - exists(NodeEx out, boolean allowsFieldFlow | - revFlow(out, state, toReturn, returnAp, ap, config) and - flowOutOfCall(call, ret, out, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInNotToReturn( - ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, false, returnAp, ap, config) and - flowIntoCall(_, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - pragma[nomagic] - private predicate revFlowInToReturn( - DataFlowCall call, ArgNodeEx arg, FlowState state, Ap returnAp, Ap ap, Configuration config - ) { - exists(ParamNodeEx p, boolean allowsFieldFlow | - revFlow(p, state, true, apSome(returnAp), ap, config) and - flowThroughIntoCall(call, arg, p, allowsFieldFlow, config) and - if allowsFieldFlow = false then ap instanceof ApNil else any() - ) - } - - /** - * Holds if an output from `call` is reached in the flow covered by `revFlow` - * and data might flow through the target callable resulting in reverse flow - * reaching an argument of `call`. - */ - pragma[nomagic] - private predicate revFlowIsReturned( - DataFlowCall call, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - exists(RetNodeEx ret, FlowState state, CcCall ccc | - revFlowOut(call, ret, state, toReturn, returnAp, ap, config) and - fwdFlow(ret, state, ccc, apSome(_), ap, config) and - ccc.matchesCall(call) - ) - } - - pragma[nomagic] - predicate storeStepCand( - NodeEx node1, Ap ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, - Configuration config - ) { - exists(Ap ap2, Content c | - PrevStage::storeStepCand(node1, _, tc, node2, contentType, config) and - revFlowStore(ap2, c, ap1, node1, _, tc, node2, _, _, config) and - revFlowConsCand(ap2, c, ap1, config) - ) - } - - predicate readStepCand(NodeEx node1, Content c, NodeEx node2, Configuration config) { - exists(Ap ap1, Ap ap2 | - revFlow(node2, _, _, _, pragma[only_bind_into](ap2), pragma[only_bind_into](config)) and - readStepFwd(node1, ap1, c, node2, ap2, config) and - revFlowStore(ap1, c, pragma[only_bind_into](ap2), _, _, _, _, _, _, - pragma[only_bind_into](config)) - ) - } - - predicate revFlow(NodeEx node, FlowState state, Configuration config) { - revFlow(node, state, _, _, _, config) - } - - pragma[nomagic] - predicate revFlow(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias(NodeEx node, Configuration config) { revFlow(node, _, _, _, _, config) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - predicate revFlowAlias( - NodeEx node, FlowState state, boolean toReturn, ApOption returnAp, Ap ap, Configuration config - ) { - revFlow(node, state, toReturn, returnAp, ap, config) - } - - private predicate fwdConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepFwd(_, ap, tc, _, _, config) - } - - private predicate revConsCand(TypedContent tc, Ap ap, Configuration config) { - storeStepCand(_, ap, tc, _, _, config) - } - - private predicate validAp(Ap ap, Configuration config) { - revFlow(_, _, _, _, ap, config) and ap instanceof ApNil - or - exists(TypedContent head, Ap tail | - consCand(head, tail, config) and - ap = apCons(head, tail) - ) - } - - predicate consCand(TypedContent tc, Ap ap, Configuration config) { - revConsCand(tc, ap, config) and - validAp(ap, config) - } - - pragma[noinline] - private predicate parameterFlow( - ParamNodeEx p, Ap ap, Ap ap0, DataFlowCallable c, Configuration config - ) { - revFlow(p, _, true, apSome(ap0), ap, config) and - c = p.getEnclosingCallable() - } - - predicate parameterMayFlowThrough(ParamNodeEx p, DataFlowCallable c, Ap ap, Configuration config) { - exists(RetNodeEx ret, FlowState state, Ap ap0, ReturnKindExt kind, ParameterPosition pos | - parameterFlow(p, ap, ap0, c, config) and - c = ret.getEnclosingCallable() and - revFlow(pragma[only_bind_into](ret), pragma[only_bind_into](state), true, apSome(_), - pragma[only_bind_into](ap0), pragma[only_bind_into](config)) and - fwdFlow(ret, state, any(CcCall ccc), apSome(ap), ap0, config) and - kind = ret.getKind() and - p.getPosition() = pos and - // we don't expect a parameter to return stored in itself, unless explicitly allowed - ( - not kind.(ParamUpdateReturnKind).getPosition() = pos - or - p.allowParameterReturnInSelf() - ) - ) - } - - pragma[nomagic] - predicate callMayFlowThroughRev(DataFlowCall call, Configuration config) { - exists( - Ap returnAp0, ArgNodeEx arg, FlowState state, boolean toReturn, ApOption returnAp, Ap ap - | - revFlow(arg, state, toReturn, returnAp, ap, config) and - revFlowInToReturn(call, arg, state, returnAp0, ap, config) and - revFlowIsReturned(call, toReturn, returnAp, returnAp0, config) - ) - } - - predicate stats( - boolean fwd, int nodes, int fields, int conscand, int states, int tuples, Configuration config - ) { - fwd = true and - nodes = count(NodeEx node | fwdFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | fwdConsCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | fwdConsCand(f0, ap, config)) and - states = count(FlowState state | fwdFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, Cc cc, ApOption argAp, Ap ap | - fwdFlow(n, state, cc, argAp, ap, config) - ) - or - fwd = false and - nodes = count(NodeEx node | revFlow(node, _, _, _, _, config)) and - fields = count(TypedContent f0 | consCand(f0, _, config)) and - conscand = count(TypedContent f0, Ap ap | consCand(f0, ap, config)) and - states = count(FlowState state | revFlow(_, state, _, _, _, config)) and - tuples = - count(NodeEx n, FlowState state, boolean b, ApOption retAp, Ap ap | - revFlow(n, state, b, retAp, ap, config) - ) - } - /* End: Stage 4 logic. */ + predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } +private module Stage4 = MkStage::Stage; + bindingset[conf, result] private Configuration unbindConf(Configuration conf) { exists(Configuration c | result = pragma[only_bind_into](c) and conf = pragma[only_bind_into](c)) @@ -3495,7 +2520,7 @@ private newtype TSummaryCtx = TSummaryCtxSome(ParamNodeEx p, FlowState state, AccessPath ap) { exists(Configuration config | Stage4::parameterMayFlowThrough(p, _, ap.getApprox(), config) and - Stage4::revFlow(p, state, _, _, _, config) + Stage4::revFlow(p, state, _, config) ) } @@ -3553,7 +2578,7 @@ private int count1to2unfold(AccessPathApproxCons1 apa, Configuration config) { private int countNodesUsingAccessPath(AccessPathApprox apa, Configuration config) { result = strictcount(NodeEx n, FlowState state | - Stage4::revFlow(n, state, _, _, apa, config) or nodeMayUseSummary(n, state, apa, config) + Stage4::revFlow(n, state, apa, config) or nodeMayUseSummary(n, state, apa, config) ) } @@ -3667,7 +2692,7 @@ private newtype TPathNode = exists(PathNodeMid mid | pathStep(mid, node, state, cc, sc, ap) and pragma[only_bind_into](config) = mid.getConfiguration() and - Stage4::revFlow(node, state, _, _, ap.getApprox(), pragma[only_bind_into](config)) + Stage4::revFlow(node, state, ap.getApprox(), pragma[only_bind_into](config)) ) } or TPathNodeSink(NodeEx node, FlowState state, Configuration config) { @@ -4207,7 +3232,7 @@ private NodeEx getAnOutNodeFlow( ReturnKindExt kind, DataFlowCall call, AccessPathApprox apa, Configuration config ) { result.asNode() = kind.getAnOutNode(call) and - Stage4::revFlow(result, _, _, _, apa, config) + Stage4::revFlow(result, _, apa, config) } /** @@ -4243,7 +3268,7 @@ private predicate parameterCand( DataFlowCallable callable, ParameterPosition pos, AccessPathApprox apa, Configuration config ) { exists(ParamNodeEx p | - Stage4::revFlow(p, _, _, _, apa, config) and + Stage4::revFlow(p, _, apa, config) and p.isParameterOf(callable, pos) ) } From 3d47875b60ab46636c7855ba0c1def8492807ed7 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 5 Aug 2022 08:49:06 +0200 Subject: [PATCH 613/736] Dataflow: Generate shorter RA/DIL names. --- .../semmle/code/cpp/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- .../semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll | 8 ++++++-- .../semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll | 8 ++++++-- .../semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll | 8 ++++++-- .../code/cpp/dataflow/internal/DataFlowImplLocal.qll | 8 ++++++-- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- .../code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 8 ++++++-- .../code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 8 ++++++-- .../code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 8 ++++++-- .../semmle/code/csharp/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- .../code/csharp/dataflow/internal/DataFlowImpl2.qll | 8 ++++++-- .../code/csharp/dataflow/internal/DataFlowImpl3.qll | 8 ++++++-- .../code/csharp/dataflow/internal/DataFlowImpl4.qll | 8 ++++++-- .../code/csharp/dataflow/internal/DataFlowImpl5.qll | 8 ++++++-- .../dataflow/internal/DataFlowImplForContentDataFlow.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl2.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl3.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl4.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl5.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl6.qll | 8 ++++++-- .../dataflow/internal/DataFlowImplForOnActivityResult.qll | 8 ++++++-- .../dataflow/internal/DataFlowImplForSerializability.qll | 8 ++++++-- .../semmle/python/dataflow/new/internal/DataFlowImpl.qll | 8 ++++++-- .../semmle/python/dataflow/new/internal/DataFlowImpl2.qll | 8 ++++++-- .../semmle/python/dataflow/new/internal/DataFlowImpl3.qll | 8 ++++++-- .../semmle/python/dataflow/new/internal/DataFlowImpl4.qll | 8 ++++++-- .../ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- .../lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll | 8 ++++++-- .../ruby/dataflow/internal/DataFlowImplForLibraries.qll | 8 ++++++-- .../lib/codeql/swift/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- 31 files changed, 186 insertions(+), 62 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index 22c3bd2466e..340bfe280b7 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index 22c3bd2466e..340bfe280b7 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 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 @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 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 @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 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 @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index 22c3bd2466e..340bfe280b7 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll index 22c3bd2466e..340bfe280b7 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index 22c3bd2466e..340bfe280b7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll index 22c3bd2466e..340bfe280b7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll index 22c3bd2466e..340bfe280b7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index 22c3bd2466e..340bfe280b7 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` 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 22c3bd2466e..340bfe280b7 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index 22c3bd2466e..340bfe280b7 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll index 22c3bd2466e..340bfe280b7 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll index 22c3bd2466e..340bfe280b7 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index 22c3bd2466e..340bfe280b7 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -1936,7 +1936,9 @@ private module Stage2Param implements MkStage::StageParam { predicate typecheckStore(Ap ap, DataFlowType contentType) { any() } } -private module Stage2 = MkStage::Stage; +private module Stage2 implements StageSig { + import MkStage::Stage +} pragma[nomagic] private predicate flowOutOfCallNodeCand2( @@ -2210,7 +2212,9 @@ private module Stage3Param implements MkStage::StageParam { } } -private module Stage3 = MkStage::Stage; +private module Stage3 implements StageSig { + import MkStage::Stage +} /** * Holds if `argApf` is recorded as the summary context for flow reaching `node` From 792d34c3a14726965390603ba0ccf28d579f12b9 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Fri, 5 Aug 2022 10:54:38 +0200 Subject: [PATCH 614/736] Add change note --- java/ql/lib/change-notes/2022-08-05-asynctask-improvements.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2022-08-05-asynctask-improvements.md diff --git a/java/ql/lib/change-notes/2022-08-05-asynctask-improvements.md b/java/ql/lib/change-notes/2022-08-05-asynctask-improvements.md new file mode 100644 index 00000000000..95c8438b324 --- /dev/null +++ b/java/ql/lib/change-notes/2022-08-05-asynctask-improvements.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Improved analysis of the Android class `AsyncTask` so that data can properly flow through its methods according to the life-cycle steps described here: https://developer.android.com/reference/android/os/AsyncTask#the-4-steps. \ No newline at end of file From 9ee90f8022c3fa2efd3050bc1d55959642d6632a Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Fri, 5 Aug 2022 11:11:13 +0200 Subject: [PATCH 615/736] Remove unnecessary import from test --- java/ql/test/library-tests/frameworks/android/asynctask/test.ql | 1 - 1 file changed, 1 deletion(-) diff --git a/java/ql/test/library-tests/frameworks/android/asynctask/test.ql b/java/ql/test/library-tests/frameworks/android/asynctask/test.ql index 58d90963fcb..5d91e4e8e26 100644 --- a/java/ql/test/library-tests/frameworks/android/asynctask/test.ql +++ b/java/ql/test/library-tests/frameworks/android/asynctask/test.ql @@ -1,3 +1,2 @@ import java import TestUtilities.InlineFlowTest -import semmle.code.java.dataflow.FlowSteps From 1ce06accbdf7cb55c9de3ace79a9e73fb5d5f482 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 5 Aug 2022 10:20:51 +0100 Subject: [PATCH 616/736] Swift: Fix capitalization issue? --- .../test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref index 57e842e89ff..a5c8cb457a0 100644 --- a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref +++ b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.qlref @@ -1 +1 @@ -queries/Security/CWE-079/UnsafeWebviewFetch.ql \ No newline at end of file +queries/Security/CWE-079/UnsafeWebViewFetch.ql \ No newline at end of file From 5e69adb0a9682c00e3c2725af903d7c5cb6a2b08 Mon Sep 17 00:00:00 2001 From: Alex Denisov Date: Fri, 5 Aug 2022 11:49:52 +0200 Subject: [PATCH 617/736] Swift: extract comments --- swift/codegen/schema.yml | 4 ++++ swift/extractor/SwiftExtractor.cpp | 15 +++++++++++++++ swift/extractor/infra/SwiftDispatcher.h | 7 +++++++ swift/extractor/visitors/SwiftVisitor.h | 1 + swift/ql/lib/codeql/swift/elements.qll | 1 + swift/ql/lib/codeql/swift/elements/Comment.qll | 6 ++++++ swift/ql/lib/codeql/swift/generated/Comment.qll | 8 ++++++++ swift/ql/lib/swift.dbscheme | 6 ++++++ .../extractor-tests/comments/comments.expected | 4 ++++ .../ql/test/extractor-tests/comments/comments.ql | 4 ++++ .../test/extractor-tests/comments/comments.swift | 13 +++++++++++++ .../generated/Comment/MISSING_SOURCE.txt | 4 ++++ 12 files changed, 73 insertions(+) create mode 100644 swift/ql/lib/codeql/swift/elements/Comment.qll create mode 100644 swift/ql/lib/codeql/swift/generated/Comment.qll create mode 100644 swift/ql/test/extractor-tests/comments/comments.expected create mode 100644 swift/ql/test/extractor-tests/comments/comments.ql create mode 100644 swift/ql/test/extractor-tests/comments/comments.swift create mode 100644 swift/ql/test/extractor-tests/generated/Comment/MISSING_SOURCE.txt diff --git a/swift/codegen/schema.yml b/swift/codegen/schema.yml index 83e2c87ef4e..bdf90320d5f 100644 --- a/swift/codegen/schema.yml +++ b/swift/codegen/schema.yml @@ -34,6 +34,10 @@ Location: end_column: int _pragma: qltest_skip +Comment: + _extends: Locatable + text: string + Type: name: string canonical_type: Type diff --git a/swift/extractor/SwiftExtractor.cpp b/swift/extractor/SwiftExtractor.cpp index 22f4f01a470..f5a2fcb9e82 100644 --- a/swift/extractor/SwiftExtractor.cpp +++ b/swift/extractor/SwiftExtractor.cpp @@ -104,11 +104,26 @@ static void extractDeclarations(const SwiftExtractorConfiguration& config, trap.emit(unknownFileEntry); trap.emit(unknownLocationEntry); + std::vector comments; + if (primaryFile && primaryFile->getBufferID().hasValue()) { + auto& sourceManager = compiler.getSourceMgr(); + auto tokens = swift::tokenize(compiler.getInvocation().getLangOptions(), sourceManager, + primaryFile->getBufferID().getValue()); + for (auto& token : tokens) { + if (token.getKind() == swift::tok::comment) { + comments.push_back(token); + } + } + } + SwiftVisitor visitor(compiler.getSourceMgr(), trap, module, primaryFile); auto topLevelDecls = getTopLevelDecls(module, primaryFile); for (auto decl : topLevelDecls) { visitor.extract(decl); } + for (auto& comment : comments) { + visitor.extract(comment); + } } static std::unordered_set collectInputFilenames(swift::CompilerInstance& compiler) { diff --git a/swift/extractor/infra/SwiftDispatcher.h b/swift/extractor/infra/SwiftDispatcher.h index d564673c976..6ef53211630 100644 --- a/swift/extractor/infra/SwiftDispatcher.h +++ b/swift/extractor/infra/SwiftDispatcher.h @@ -3,6 +3,7 @@ #include #include #include +#include #include "swift/extractor/trap/TrapLabelStore.h" #include "swift/extractor/trap/TrapDomain.h" @@ -242,6 +243,12 @@ class SwiftDispatcher { return false; } + void emitComment(swift::Token& comment) { + CommentsTrap entry{trap.createLabel(), comment.getRawText().str()}; + trap.emit(entry); + attachLocation(comment.getRange().getStart(), comment.getRange().getEnd(), entry.id); + } + private: void attachLocation(swift::SourceLoc start, swift::SourceLoc end, diff --git a/swift/extractor/visitors/SwiftVisitor.h b/swift/extractor/visitors/SwiftVisitor.h index 965aa7975f3..f1828c39689 100644 --- a/swift/extractor/visitors/SwiftVisitor.h +++ b/swift/extractor/visitors/SwiftVisitor.h @@ -17,6 +17,7 @@ class SwiftVisitor : private SwiftDispatcher { void extract(const T& entity) { fetchLabel(entity); } + void extract(swift::Token& comment) { emitComment(comment); } private: void visit(swift::Decl* decl) override { declVisitor.visit(decl); } diff --git a/swift/ql/lib/codeql/swift/elements.qll b/swift/ql/lib/codeql/swift/elements.qll index 1a5da053693..7469e597a4b 100644 --- a/swift/ql/lib/codeql/swift/elements.qll +++ b/swift/ql/lib/codeql/swift/elements.qll @@ -1,6 +1,7 @@ // generated by codegen/codegen.py import codeql.swift.elements.AstNode import codeql.swift.elements.Callable +import codeql.swift.elements.Comment import codeql.swift.elements.Element import codeql.swift.elements.File import codeql.swift.elements.Locatable diff --git a/swift/ql/lib/codeql/swift/elements/Comment.qll b/swift/ql/lib/codeql/swift/elements/Comment.qll new file mode 100644 index 00000000000..c91ef59c845 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/Comment.qll @@ -0,0 +1,6 @@ +private import codeql.swift.generated.Comment + +class Comment extends CommentBase { + /** toString */ + override string toString() { result = getText() } +} diff --git a/swift/ql/lib/codeql/swift/generated/Comment.qll b/swift/ql/lib/codeql/swift/generated/Comment.qll new file mode 100644 index 00000000000..ee6263126db --- /dev/null +++ b/swift/ql/lib/codeql/swift/generated/Comment.qll @@ -0,0 +1,8 @@ +// generated by codegen/codegen.py +import codeql.swift.elements.Locatable + +class CommentBase extends @comment, Locatable { + override string getAPrimaryQlClass() { result = "Comment" } + + string getText() { comments(this, result) } +} diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 7c102d30524..b520efbade5 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -35,6 +35,7 @@ files( @locatable = @argument | @ast_node +| @comment | @condition_element | @if_config_clause ; @@ -54,6 +55,11 @@ locations( int end_column: int ref ); +comments( + unique int id: @comment, + string text: string ref +); + @type = @any_function_type | @any_generic_type diff --git a/swift/ql/test/extractor-tests/comments/comments.expected b/swift/ql/test/extractor-tests/comments/comments.expected new file mode 100644 index 00000000000..d6e262e2f60 --- /dev/null +++ b/swift/ql/test/extractor-tests/comments/comments.expected @@ -0,0 +1,4 @@ +| comments.swift:1:1:2:1 | // Single line comment\n | +| comments.swift:3:1:6:3 | /*\n Multiline\n comment\n*/ | +| comments.swift:8:1:9:1 | /// Single line doc comment\n | +| comments.swift:10:1:13:3 | /**\n Multiline\n doc comment\n*/ | diff --git a/swift/ql/test/extractor-tests/comments/comments.ql b/swift/ql/test/extractor-tests/comments/comments.ql new file mode 100644 index 00000000000..53e23810346 --- /dev/null +++ b/swift/ql/test/extractor-tests/comments/comments.ql @@ -0,0 +1,4 @@ +import swift + +from Comment c +select c diff --git a/swift/ql/test/extractor-tests/comments/comments.swift b/swift/ql/test/extractor-tests/comments/comments.swift new file mode 100644 index 00000000000..1be189ec459 --- /dev/null +++ b/swift/ql/test/extractor-tests/comments/comments.swift @@ -0,0 +1,13 @@ +// Single line comment + +/* + Multiline + comment +*/ + +/// Single line doc comment + +/** + Multiline + doc comment +*/ diff --git a/swift/ql/test/extractor-tests/generated/Comment/MISSING_SOURCE.txt b/swift/ql/test/extractor-tests/generated/Comment/MISSING_SOURCE.txt new file mode 100644 index 00000000000..0d319d9a669 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/Comment/MISSING_SOURCE.txt @@ -0,0 +1,4 @@ +// generated by codegen/codegen.py + +After a swift source file is added in this directory and codegen/codegen.py is run again, test queries +will appear and this file will be deleted From 24c9ab80157a8ecee03723a6ff6872566e83d864 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 3 Aug 2022 17:47:33 +0100 Subject: [PATCH 618/736] Swift: Fix MaD for methods --- .../lib/codeql/swift/controlflow/CfgNodes.qll | 2 ++ .../internal/FlowSummaryImplSpecific.qll | 5 ++++- .../Security/CWE-079/UnsafeWebViewFetch.ql | 18 ------------------ 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/swift/ql/lib/codeql/swift/controlflow/CfgNodes.qll b/swift/ql/lib/codeql/swift/controlflow/CfgNodes.qll index 27af5b1c789..5358a35999f 100644 --- a/swift/ql/lib/codeql/swift/controlflow/CfgNodes.qll +++ b/swift/ql/lib/codeql/swift/controlflow/CfgNodes.qll @@ -125,6 +125,8 @@ class ApplyExprCfgNode extends ExprCfgNode { } AbstractFunctionDecl getStaticTarget() { result = e.getStaticTarget() } + + Expr getFunction() { result = e.getFunction() } } class CallExprCfgNode extends ApplyExprCfgNode { diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImplSpecific.qll b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImplSpecific.qll index 5bb0aa9750e..79288e648e6 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImplSpecific.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImplSpecific.qll @@ -11,6 +11,7 @@ private import FlowSummaryImpl::Private private import FlowSummaryImpl::Public private import codeql.swift.dataflow.ExternalFlow private import codeql.swift.dataflow.FlowSummary as FlowSummary +private import codeql.swift.controlflow.CfgNodes class SummarizedCallableBase = AbstractFunctionDecl; @@ -153,7 +154,9 @@ class InterpretNode extends TInterpretNode { DataFlowCallable asCallable() { result.getUnderlyingCallable() = this.asElement() } /** Gets the target of this call, if any. */ - AbstractFunctionDecl getCallTarget() { result = this.asCall().asCall().getStaticTarget() } + AbstractFunctionDecl getCallTarget() { + result = this.asCall().asCall().getFunction().(ApplyExpr).getStaticTarget() + } /** Gets a textual representation of this node. */ string toString() { diff --git a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql index 2f853db2975..b952a0c74c3 100644 --- a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql @@ -17,24 +17,6 @@ import codeql.swift.dataflow.DataFlow import codeql.swift.dataflow.TaintTracking import codeql.swift.dataflow.FlowSources import DataFlow::PathGraph -import codeql.swift.frameworks.StandardLibrary.String - -/** - * A taint source that is `String(contentsOf:)`. - * TODO: this shouldn't be needed when `StringSource` in `String.qll` is working. - */ -class StringContentsOfUrlSource extends RemoteFlowSource { - StringContentsOfUrlSource() { - exists(CallExpr call, AbstractFunctionDecl f | - call.getFunction().(ApplyExpr).getStaticTarget() = f and - f.getName() = "init(contentsOf:)" and - f.getParam(0).getType().getName() = "URL" and - this.asExpr() = call - ) - } - - override string getSourceType() { result = "" } -} /** * A sink that is a candidate result for this query, such as certain arguments From 946b8c68a6b1a14a4f73c8d49ad77f41e9a3e469 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 5 Aug 2022 11:19:00 +0100 Subject: [PATCH 619/736] Swift: Accept test changes. --- .../Security/CWE-079/UnsafeWebViewFetch.expected | 6 ++++++ .../query-tests/Security/CWE-079/UnsafeWebViewFetch.swift | 4 ++-- 2 files changed, 8 insertions(+), 2 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 d387127ac4e..53983de94c5 100644 --- a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected +++ b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected @@ -7,6 +7,7 @@ edges | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:135:25:135:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:137:25:137:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:138:47:138:56 | ...! | @@ -19,6 +20,7 @@ edges | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:154:86:154:95 | ...! | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:174:25:174:25 | "..." | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:182:25:182:25 | remoteString | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:184:25:184:25 | remoteString | | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:185:47:185:56 | ...! | @@ -38,6 +40,7 @@ nodes | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | semmle.label | call to getRemoteData() | | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | +| UnsafeWebViewFetch.swift:127:25:127:25 | "..." | semmle.label | "..." | | 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:56 | ...! | semmle.label | ...! | @@ -52,6 +55,7 @@ nodes | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | semmle.label | call to getRemoteData() | | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | semmle.label | remoteString | | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | +| UnsafeWebViewFetch.swift:174:25:174:25 | "..." | semmle.label | "..." | | 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:56 | ...! | semmle.label | ...! | @@ -70,11 +74,13 @@ subpaths | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | 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 ... : | 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 ... : | 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 ... : | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | 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 ... : | 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 ... : | 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 | ... call to +(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:171:25:171:51 | ... call to +(_:_:) ... | 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 ... : | 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 ... : | 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 ... : | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | 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 ... : | UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | Tainted data is used in a WebView fetch without restricting the base URL. | diff --git a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift index 9dcef0262ec..c6fc1628fbe 100644 --- a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift +++ b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift @@ -124,7 +124,7 @@ func testUIWebView() { webview.loadHTMLString("" + remoteString + "", baseURL: nil) // BAD webview.loadHTMLString("\(localStringFragment)", baseURL: nil) // GOOD: the HTML data is local - webview.loadHTMLString("\(remoteString)", baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString("\(remoteString)", baseURL: nil) // BAD let localSafeURL = URL(string: "about:blank") let localURL = URL(string: "http://example.com/") @@ -171,7 +171,7 @@ func testWKWebView() { webview.loadHTMLString("" + remoteString + "", baseURL: nil) // BAD webview.loadHTMLString("\(localStringFragment)", baseURL: nil) // GOOD: the HTML data is local - webview.loadHTMLString("\(remoteString)", baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString("\(remoteString)", baseURL: nil) // BAD let localSafeURL = URL(string: "about:blank") let localURL = URL(string: "http://example.com/") From b75b073daef33d7dc7eb1002b866afad897e7617 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Fri, 5 Aug 2022 12:21:22 +0200 Subject: [PATCH 620/736] Remove unused class member --- java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll b/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll index 0b0334a0664..1e739bcba2b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll @@ -77,8 +77,6 @@ private class AsyncTaskInit extends Callable { /** A call to the `execute` or `executeOnExecutor` methods of the `android.os.AsyncTask` class. */ private class ExecuteAsyncTaskMethodAccess extends MethodAccess { - Argument paramsArgument; - ExecuteAsyncTaskMethodAccess() { this.getMethod().hasName(["execute", "executeOnExecutor"]) and this.getMethod().getDeclaringType().getSourceDeclaration().getASourceSupertype*() instanceof From 69564d2192b0a984b0bdd35ee4c4cb2273b6835c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 5 Aug 2022 11:48:29 +0100 Subject: [PATCH 621/736] Swift: Add a couple of standard Comment subclasses. --- .../ql/lib/codeql/swift/elements/Comment.qll | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/swift/ql/lib/codeql/swift/elements/Comment.qll b/swift/ql/lib/codeql/swift/elements/Comment.qll index c91ef59c845..c0fb2089e3b 100644 --- a/swift/ql/lib/codeql/swift/elements/Comment.qll +++ b/swift/ql/lib/codeql/swift/elements/Comment.qll @@ -4,3 +4,32 @@ class Comment extends CommentBase { /** toString */ override string toString() { result = getText() } } + +class SingleLineComment extends Comment { + SingleLineComment() { + this.getText().matches("//%") and + not this instanceof SingleLineDocComment + } +} + +class MultiLineComment extends Comment { + MultiLineComment() { + this.getText().matches("/*%") and + not this instanceof MultiLineDocComment + } +} + +class DocComment extends Comment { + DocComment() { + this instanceof SingleLineDocComment or + this instanceof MultiLineDocComment + } +} + +class SingleLineDocComment extends Comment { + SingleLineDocComment() { this.getText().matches("///%") } +} + +class MultiLineDocComment extends Comment { + MultiLineDocComment() { this.getText().matches("/**%") } +} From 46ec7a9b826441c39202252689a2f63876fef8be Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 5 Aug 2022 11:49:15 +0100 Subject: [PATCH 622/736] Swift: Add the InlineExpectationsTest framework. --- .../TestUtilities/InlineExpectationsTest.qll | 377 ++++++++++++++++++ .../InlineExpectationsTestPrivate.qll | 23 ++ 2 files changed, 400 insertions(+) create mode 100644 swift/ql/test/TestUtilities/InlineExpectationsTest.qll create mode 100644 swift/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll diff --git a/swift/ql/test/TestUtilities/InlineExpectationsTest.qll b/swift/ql/test/TestUtilities/InlineExpectationsTest.qll new file mode 100644 index 00000000000..4b4a31d6950 --- /dev/null +++ b/swift/ql/test/TestUtilities/InlineExpectationsTest.qll @@ -0,0 +1,377 @@ +/** + * Provides a library for writing QL tests whose success or failure is based on expected results + * embedded in the test source code as comments, rather than the contents of an `.expected` file + * (in that the `.expected` file should always be empty). + * + * To add this framework to a new language: + * - Add a file `InlineExpectationsTestPrivate.qll` that defines a `ExpectationComment` class. This class + * must support a `getContents` method that returns the contents of the given comment, _excluding_ + * the comment indicator itself. It should also define `toString` and `getLocation` as usual. + * + * To create a new inline expectations test: + * - Declare a class that extends `InlineExpectationsTest`. In the characteristic predicate of the + * new class, bind `this` to a unique string (usually the name of the test). + * - Override the `hasActualResult()` predicate to produce the actual results of the query. For each + * result, specify a `Location`, a text description of the element for which the result was + * reported, a short string to serve as the tag to identify expected results for this test, and the + * expected value of the result. + * - Override `getARelevantTag()` to return the set of tags that can be produced by + * `hasActualResult()`. Often this is just a single tag. + * + * Example: + * ```ql + * class ConstantValueTest extends InlineExpectationsTest { + * ConstantValueTest() { this = "ConstantValueTest" } + * + * override string getARelevantTag() { + * // We only use one tag for this test. + * result = "const" + * } + * + * override predicate hasActualResult( + * Location location, string element, string tag, string value + * ) { + * exists(Expr e | + * tag = "const" and // The tag for this test. + * value = e.getValue() and // The expected value. Will only hold for constant expressions. + * location = e.getLocation() and // The location of the result to be reported. + * element = e.toString() // The display text for the result. + * ) + * } + * } + * ``` + * + * There is no need to write a `select` clause or query predicate. All of the differences between + * expected results and actual results will be reported in the `failures()` query predicate. + * + * To annotate the test source code with an expected result, place a comment starting with a `$` on the + * same line as the expected result, with text of the following format as the body of the comment: + * + * `tag=expected-value` + * + * Where `tag` is the value of the `tag` parameter from `hasActualResult()`, and `expected-value` is + * the value of the `value` parameter from `hasActualResult()`. The `=expected-value` portion may be + * omitted, in which case `expected-value` is treated as the empty string. Multiple expectations may + * be placed in the same comment. Any actual result that + * appears on a line that does not contain a matching expected result comment will be reported with + * a message of the form "Unexpected result: tag=value". Any expected result comment for which there + * is no matching actual result will be reported with a message of the form + * "Missing result: tag=expected-value". + * + * Example: + * ```cpp + * int i = x + 5; // $ const=5 + * int j = y + (7 - 3) // $ const=7 const=3 const=4 // The result of the subtraction is a constant. + * ``` + * + * For tests that contain known missing and spurious results, it is possible to further + * annotate that a particular expected result is known to be spurious, or that a particular + * missing result is known to be missing: + * + * `$ SPURIOUS: tag=expected-value` // Spurious result + * `$ MISSING: tag=expected-value` // Missing result + * + * A spurious expectation is treated as any other expected result, except that if there is no + * matching actual result, the message will be of the form "Fixed spurious result: tag=value". A + * missing expectation is treated as if there were no expected result, except that if a + * matching expected result is found, the message will be of the form + * "Fixed missing result: tag=value". + * + * A single line can contain all the expected, spurious and missing results of that line. For instance: + * `$ tag1=value1 SPURIOUS: tag2=value2 MISSING: tag3=value3`. + * + * If the same result value is expected for two or more tags on the same line, there is a shorthand + * notation available: + * + * `tag1,tag2=expected-value` + * + * is equivalent to: + * + * `tag1=expected-value tag2=expected-value` + */ + +private import InlineExpectationsTestPrivate + +/** + * The base class for tests with inline expectations. The test extends this class to provide the actual + * results of the query, which are then compared with the expected results in comments to produce a + * list of failure messages that point out where the actual results differ from the expected + * results. + */ +abstract class InlineExpectationsTest extends string { + bindingset[this] + InlineExpectationsTest() { any() } + + /** + * Returns all tags that can be generated by this test. Most tests will only ever produce a single + * tag. Any expected result comments for a tag that is not returned by the `getARelevantTag()` + * predicate for an active test will be ignored. This makes it possible to write multiple tests in + * different `.ql` files that all query the same source code. + */ + abstract string getARelevantTag(); + + /** + * Returns the actual results of the query that is being tested. Each result consist of the + * following values: + * - `location` - The source code location of the result. Any expected result comment must appear + * on the start line of this location. + * - `element` - Display text for the element on which the result is reported. + * - `tag` - The tag that marks this result as coming from this test. This must be one of the tags + * returned by `getARelevantTag()`. + * - `value` - The value of the result, which will be matched against the value associated with + * `tag` in any expected result comment on that line. + */ + abstract predicate hasActualResult(Location location, string element, string tag, string value); + + /** + * Holds if there is an optional result on the specified location. + * + * This is similar to `hasActualResult`, but returns results that do not require a matching annotation. + * A failure will still arise if there is an annotation that does not match any results, but not vice versa. + * Override this predicate to specify optional results. + */ + predicate hasOptionalResult(Location location, string element, string tag, string value) { + none() + } + + final predicate hasFailureMessage(FailureLocatable element, string message) { + exists(ActualResult actualResult | + actualResult.getTest() = this and + element = actualResult and + ( + exists(FalseNegativeExpectation falseNegative | + falseNegative.matchesActualResult(actualResult) and + message = "Fixed missing result:" + falseNegative.getExpectationText() + ) + or + not exists(ValidExpectation expectation | expectation.matchesActualResult(actualResult)) and + message = "Unexpected result: " + actualResult.getExpectationText() and + not actualResult.isOptional() + ) + ) + or + exists(ValidExpectation expectation | + not exists(ActualResult actualResult | expectation.matchesActualResult(actualResult)) and + expectation.getTag() = getARelevantTag() and + element = expectation and + ( + expectation instanceof GoodExpectation and + message = "Missing result:" + expectation.getExpectationText() + or + expectation instanceof FalsePositiveExpectation and + message = "Fixed spurious result:" + expectation.getExpectationText() + ) + ) + or + exists(InvalidExpectation expectation | + element = expectation and + message = "Invalid expectation syntax: " + expectation.getExpectation() + ) + } +} + +/** + * RegEx pattern to match a comment containing one or more expected results. The comment must have + * `$` as its first non-whitespace character. Any subsequent character + * is treated as part of the expected results, except that the comment may contain a `//` sequence + * to treat the remainder of the line as a regular (non-interpreted) comment. + */ +private string expectationCommentPattern() { result = "\\s*\\$((?:[^/]|/[^/])*)(?://.*)?" } + +/** + * The possible columns in an expectation comment. The `TDefaultColumn` branch represents the first + * column in a comment. This column is not precedeeded by a name. `TNamedColumn(name)` represents a + * column containing expected results preceded by the string `name:`. + */ +private newtype TColumn = + TDefaultColumn() or + TNamedColumn(string name) { name = ["MISSING", "SPURIOUS"] } + +bindingset[start, content] +private int getEndOfColumnPosition(int start, string content) { + result = + min(string name, int cand | + exists(TNamedColumn(name)) and + cand = content.indexOf(name + ":") and + cand >= start + | + cand + ) + or + not exists(string name | + exists(TNamedColumn(name)) and + content.indexOf(name + ":") >= start + ) and + result = content.length() +} + +private predicate getAnExpectation( + ExpectationComment comment, TColumn column, string expectation, string tags, string value +) { + exists(string content | + content = comment.getContents().regexpCapture(expectationCommentPattern(), 1) and + ( + column = TDefaultColumn() and + exists(int end | + end = getEndOfColumnPosition(0, content) and + expectation = content.prefix(end).regexpFind(expectationPattern(), _, _).trim() + ) + or + exists(string name, int start, int end | + column = TNamedColumn(name) and + start = content.indexOf(name + ":") + name.length() + 1 and + end = getEndOfColumnPosition(start, content) and + expectation = content.substring(start, end).regexpFind(expectationPattern(), _, _).trim() + ) + ) + ) and + tags = expectation.regexpCapture(expectationPattern(), 1) and + if exists(expectation.regexpCapture(expectationPattern(), 2)) + then value = expectation.regexpCapture(expectationPattern(), 2) + else value = "" +} + +private string getColumnString(TColumn column) { + column = TDefaultColumn() and result = "" + or + column = TNamedColumn(result) +} + +/** + * RegEx pattern to match a single expected result, not including the leading `$`. It consists of one or + * more comma-separated tags optionally followed by `=` and the expected value. + * + * Tags must be only letters, digits, `-` and `_` (note that the first character + * must not be a digit), but can contain anything enclosed in a single set of + * square brackets. + * + * Examples: + * - `tag` + * - `tag=value` + * - `tag,tag2=value` + * - `tag[foo bar]=value` + * + * Not allowed: + * - `tag[[[foo bar]` + */ +private string expectationPattern() { + exists(string tag, string tags, string value | + tag = "[A-Za-z-_](?:[A-Za-z-_0-9]|\\[[^\\]\\]]*\\])*" and + tags = "((?:" + tag + ")(?:\\s*,\\s*" + tag + ")*)" and + // In Python, we allow both `"` and `'` for strings, as well as the prefixes `bru`. + // For example, `b"foo"`. + value = "((?:[bru]*\"[^\"]*\"|[bru]*'[^']*'|\\S+)*)" and + result = tags + "(?:=" + value + ")?" + ) +} + +private newtype TFailureLocatable = + TActualResult( + InlineExpectationsTest test, Location location, string element, string tag, string value, + boolean optional + ) { + test.hasActualResult(location, element, tag, value) and + optional = false + or + test.hasOptionalResult(location, element, tag, value) and optional = true + } or + TValidExpectation(ExpectationComment comment, string tag, string value, string knownFailure) { + exists(TColumn column, string tags | + getAnExpectation(comment, column, _, tags, value) and + tag = tags.splitAt(",") and + knownFailure = getColumnString(column) + ) + } or + TInvalidExpectation(ExpectationComment comment, string expectation) { + getAnExpectation(comment, _, expectation, _, _) and + not expectation.regexpMatch(expectationPattern()) + } + +class FailureLocatable extends TFailureLocatable { + string toString() { none() } + + Location getLocation() { none() } + + final string getExpectationText() { result = getTag() + "=" + getValue() } + + string getTag() { none() } + + string getValue() { none() } +} + +class ActualResult extends FailureLocatable, TActualResult { + InlineExpectationsTest test; + Location location; + string element; + string tag; + string value; + boolean optional; + + ActualResult() { this = TActualResult(test, location, element, tag, value, optional) } + + override string toString() { result = element } + + override Location getLocation() { result = location } + + InlineExpectationsTest getTest() { result = test } + + override string getTag() { result = tag } + + override string getValue() { result = value } + + predicate isOptional() { optional = true } +} + +abstract private class Expectation extends FailureLocatable { + ExpectationComment comment; + + override string toString() { result = comment.toString() } + + override Location getLocation() { result = comment.getLocation() } +} + +private class ValidExpectation extends Expectation, TValidExpectation { + string tag; + string value; + string knownFailure; + + ValidExpectation() { this = TValidExpectation(comment, tag, value, knownFailure) } + + override string getTag() { result = tag } + + override string getValue() { result = value } + + string getKnownFailure() { result = knownFailure } + + predicate matchesActualResult(ActualResult actualResult) { + getLocation().getStartLine() = actualResult.getLocation().getStartLine() and + getLocation().getFile() = actualResult.getLocation().getFile() and + getTag() = actualResult.getTag() and + getValue() = actualResult.getValue() + } +} + +/* Note: These next three classes correspond to all the possible values of type `TColumn`. */ +class GoodExpectation extends ValidExpectation { + GoodExpectation() { getKnownFailure() = "" } +} + +class FalsePositiveExpectation extends ValidExpectation { + FalsePositiveExpectation() { getKnownFailure() = "SPURIOUS" } +} + +class FalseNegativeExpectation extends ValidExpectation { + FalseNegativeExpectation() { getKnownFailure() = "MISSING" } +} + +class InvalidExpectation extends Expectation, TInvalidExpectation { + string expectation; + + InvalidExpectation() { this = TInvalidExpectation(comment, expectation) } + + string getExpectation() { result = expectation } +} + +query predicate failures(FailureLocatable element, string message) { + exists(InlineExpectationsTest test | test.hasFailureMessage(element, message)) +} diff --git a/swift/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll b/swift/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll new file mode 100644 index 00000000000..1776f04aea4 --- /dev/null +++ b/swift/ql/test/TestUtilities/InlineExpectationsTestPrivate.qll @@ -0,0 +1,23 @@ +import swift + +private newtype TExpectationComment = MkExpectationComment(SingleLineComment c) + +/** + * Represents a line comment. + * Unlike the `SingleLineComment` class, however, the string returned by `getContents` does _not_ + * include the preceding comment marker (`//`). + */ +class ExpectationComment extends TExpectationComment { + SingleLineComment comment; + + ExpectationComment() { this = MkExpectationComment(comment) } + + /** Returns the contents of the given comment, _without_ the preceding comment marker (`//`). */ + string getContents() { result = comment.getText().suffix(2) } + + /** Gets a textual representation of this element. */ + string toString() { result = comment.toString() } + + /** Gets the location of this comment. */ + Location getLocation() { result = comment.getLocation() } +} From b20b0a091d47e13059393ab36bdbd1b178e46107 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 5 Aug 2022 11:49:36 +0100 Subject: [PATCH 623/736] Update identical-files. --- config/identical-files.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/identical-files.json b/config/identical-files.json index 990ba49f033..403e6b91c2f 100644 --- a/config/identical-files.json +++ b/config/identical-files.json @@ -392,7 +392,8 @@ "python/ql/test/TestUtilities/InlineExpectationsTest.qll", "ruby/ql/test/TestUtilities/InlineExpectationsTest.qll", "ql/ql/test/TestUtilities/InlineExpectationsTest.qll", - "go/ql/test/TestUtilities/InlineExpectationsTest.qll" + "go/ql/test/TestUtilities/InlineExpectationsTest.qll", + "swift/ql/test/TestUtilities/InlineExpectationsTest.qll" ], "C++ ExternalAPIs": [ "cpp/ql/src/Security/CWE/CWE-020/ExternalAPIs.qll", From 16e16f08dcb8ccf7923e8daa12108e0cb0303833 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 17 Jun 2022 14:14:58 +0100 Subject: [PATCH 624/736] Add webview cert validation query --- ...droidWebViewCertificateValidationQuery.qll | 26 +++++++++++++++++++ .../ImproperWebViewCertificateValidation.ql | 18 +++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll create mode 100644 java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql diff --git a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll new file mode 100644 index 00000000000..5b459f07fac --- /dev/null +++ b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll @@ -0,0 +1,26 @@ +import java + +class OnReceivedSslErrorMethod extends Method { + OnReceivedSslErrorMethod() { + this.hasQualifiedName("android.webkit", "WebViewClient", "onReceivedSslError") + } + + Parameter handlerArg() { result = this.getParameter(1) } +} + +private class SslCancelCall extends MethodAccess { + SslCancelCall() { + this.getMethod().hasQualifiedName("android.webkit", "SslErrorHandler", "cancel") + } +} + +private class SslProceedCall extends MethodAccess { + SslProceedCall() { + this.getMethod().hasQualifiedName("android.webkit", "SslErrorHandler", "proceed") + } +} + +predicate trustsAllCerts(OnReceivedSslErrorMethod m) { + exists(SslProceedCall pr | pr.getQualifier().(VarAccess).getVariable() = m.handlerArg()) and + not exists(SslCancelCall ca | ca.getQualifier().(VarAccess).getVariable() = m.handlerArg()) +} diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql new file mode 100644 index 00000000000..5d2f4cf7eb9 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql @@ -0,0 +1,18 @@ +/** + * @name Android `WebVeiw` that accepts all certificates + * @description Trusting all certificates allows an attacker to perform a machine-in-the-middle attack. + * @kind problem + * @problem.severity error + * @security-severity 7.5 + * @precision high + * @id java/improper-webview-certificate-validation + * @tags security + * external/cwe/cwe-295 + */ + +import java +import semmle.code.java.security.AndroidWebViewCertificateValidationQuery + +from OnReceivedSslErrorMethod m +where trustsAllCerts(m) +select m, "This handler accepts all SSL certificates." From c4de158e0d83b17422ef99b567a38f3f84254faa Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Mon, 20 Jun 2022 14:54:21 +0100 Subject: [PATCH 625/736] Add tests --- .../Test.java | 54 +++++++++++++++++++ .../options | 1 + .../test.expected | 0 .../test.ql | 19 +++++++ 4 files changed, 74 insertions(+) create mode 100644 java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/Test.java create mode 100644 java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/options create mode 100644 java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/test.expected create mode 100644 java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/test.ql diff --git a/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/Test.java b/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/Test.java new file mode 100644 index 00000000000..3ddb0c6aad5 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/Test.java @@ -0,0 +1,54 @@ +import android.webkit.WebViewClient; +import android.webkit.WebView; +import android.webkit.SslErrorHandler; +import android.net.http.SslError; +import android.net.http.SslCertificate; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.app.Activity; + +class Test { + class A extends WebViewClient { + public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { + handler.proceed(); // $hasResult + } + } + + interface Validator { + boolean isValid(SslCertificate cert); + } + + class B extends WebViewClient { + Validator v; + + public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { + if (this.v.isValid(error.getCertificate())) { + handler.proceed(); + } + else { + handler.cancel(); + } + } + } + + class C extends WebViewClient { + Activity activity; + + public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { + new AlertDialog.Builder(activity). + setTitle("SSL error"). + setMessage("SSL error. Connect anyway?"). + setPositiveButton("Yes", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + handler.proceed(); + } + }).setNegativeButton("No", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + handler.cancel(); + } + }).show(); + } + } +} \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/options b/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/options new file mode 100644 index 00000000000..a36a7e0c5ee --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/options @@ -0,0 +1 @@ +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/google-android-9.0.0 \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/test.expected b/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/test.ql b/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/test.ql new file mode 100644 index 00000000000..6166e0fe239 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/test.ql @@ -0,0 +1,19 @@ +import java +import semmle.code.java.security.AndroidWebViewCertificateValidationQuery +import TestUtilities.InlineExpectationsTest + +class WebViewTest extends InlineExpectationsTest { + WebViewTest() { this = "WebViewTest" } + + override string getARelevantTag() { result = "hasResult" } + + override predicate hasActualResult(Location location, string element, string tag, string value) { + exists(OnReceivedSslErrorMethod m | + trustsAllCerts(m) and + location = m.getLocation() and + element = m.toString() and + tag = "hasResult" and + value = "" + ) + } +} From 498ad230c293ee1827ffc0653ad4c123940b751b Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 21 Jun 2022 16:12:05 +0100 Subject: [PATCH 626/736] Update stubs --- .../android/app/ActionBar.java | 132 ++ .../android/app/ActivityManager.java | 215 +++ .../android/app/AlertDialog.java | 95 ++ .../android/app/Application.java | 55 + .../android/app/ApplicationExitInfo.java | 47 + .../android/app/Dialog.java | 121 ++ .../android/app/DirectAction.java | 20 + .../android/app/Fragment.java | 204 ++- .../android/app/FragmentManager.java | 75 + .../android/app/FragmentTransaction.java | 48 + .../android/app/LoaderManager.java | 25 + .../android/app/PictureInPictureParams.java | 16 + .../android/app/PictureInPictureUiState.java | 16 + .../android/app/RemoteAction.java | 30 + .../android/app/SharedElementCallback.java | 27 + .../android/app/TaskInfo.java | 21 + .../android/app/TaskStackBuilder.java | 28 + .../android/app/VoiceInteractor.java | 31 + .../android/app/assist/AssistContent.java | 29 + .../android/content/ComponentCallbacks2.java | 6 +- .../android/content/DialogInterface.java | 41 + .../android/content/Loader.java | 51 + .../android/media/AudioAttributes.java | 4 + .../android/net/http/SslCertificate.java | 34 + .../android/net/http/SslError.java | 28 + .../android/os/Debug.java | 110 ++ .../android/os/Parcelable.java | 5 + .../android/print/PageRange.java | 21 + .../android/print/PrintAttributes.java | 162 ++ .../android/print/PrintDocumentAdapter.java | 32 + .../android/print/PrintDocumentInfo.java | 25 + .../android/text/Spannable.java | 6 + .../android/transition/PathMotion.java | 14 + .../android/transition/Scene.java | 22 + .../android/transition/Transition.java | 83 + .../android/transition/TransitionManager.java | 20 + .../transition/TransitionPropagation.java | 15 + .../android/transition/TransitionValues.java | 17 + .../android/view/AttachedSurfaceControl.java | 7 + .../android/view/DragAndDropPermissions.java | 15 + .../android/view/FrameMetrics.java | 25 + .../android/view/InputQueue.java | 14 + .../android/view/KeyboardShortcutGroup.java | 21 + .../android/view/KeyboardShortcutInfo.java | 20 + .../android/view/SearchEvent.java | 12 + .../android/view/SurfaceControl.java | 6 + .../android/view/SurfaceHolder.java | 40 + .../android/view/View.java | 1 + .../android/view/ViewGroup.java | 21 + .../android/view/Window.java | 251 +++ .../android/view/WindowManager.java | 183 ++ .../android/view/WindowMetrics.java | 14 + .../accessibility/AccessibilityEvent.java | 3 + .../accessibility/AccessibilityNodeInfo.java | 3 + .../textclassifier/ConversationAction.java | 31 + .../textclassifier/ConversationActions.java | 51 + .../view/textclassifier/SelectionEvent.java | 61 + .../textclassifier/TextClassification.java | 48 + .../TextClassificationContext.java | 18 + .../TextClassificationSessionId.java | 17 + .../view/textclassifier/TextClassifier.java | 68 + .../textclassifier/TextClassifierEvent.java | 54 + .../view/textclassifier/TextLanguage.java | 32 + .../view/textclassifier/TextLinks.java | 16 + .../view/textclassifier/TextSelection.java | 40 + .../android/webkit/ClientCertRequest.java | 19 + .../android/webkit/ConsoleMessage.java | 19 + .../android/webkit/DownloadListener.java | 9 + .../webkit/GeolocationPermissions.java | 20 + .../android/webkit/HttpAuthHandler.java | 12 + .../android/webkit/JsPromptResult.java | 10 + .../android/webkit/JsResult.java | 10 + .../android/webkit/PermissionRequest.java | 18 + .../webkit/RenderProcessGoneDetail.java | 11 + .../android/webkit/SafeBrowsingResponse.java | 12 + .../android/webkit/SslErrorHandler.java | 11 + .../android/webkit/ValueCallback.java | 9 + .../android/webkit/WebBackForwardList.java | 16 + .../android/webkit/WebChromeClient.java | 67 + .../android/webkit/WebHistoryItem.java | 15 + .../android/webkit/WebMessage.java | 14 + .../android/webkit/WebMessagePort.java | 19 + .../android/webkit/WebResourceError.java | 10 + .../android/webkit/WebResourceRequest.java | 76 +- .../android/webkit/WebResourceResponse.java | 187 +- .../android/webkit/WebSettings.java | 1507 ++--------------- .../android/webkit/WebStorage.java | 21 + .../android/webkit/WebView.java | 388 +++-- .../android/webkit/WebViewClient.java | 289 +--- .../android/webkit/WebViewRenderProcess.java | 10 + .../webkit/WebViewRenderProcessClient.java | 13 + .../android/widget/AbsListView.java | 212 +++ .../android/widget/AbsoluteLayout.java | 23 + .../android/widget/Adapter.java | 24 + .../android/widget/AdapterView.java | 77 + .../android/widget/Button.java | 48 +- .../android/widget/Filter.java | 24 + .../android/widget/FrameLayout.java | 40 + .../android/widget/ListAdapter.java | 11 + .../android/widget/ListView.java | 73 + .../android/widget/SpinnerAdapter.java | 12 + .../android/widget/TextView.java | 1169 ++++--------- .../android/widget/Toolbar.java | 116 ++ .../android/window/SplashScreen.java | 16 + .../android/window/SplashScreenView.java | 18 + 105 files changed, 4782 insertions(+), 2876 deletions(-) create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/ActionBar.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/ActivityManager.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/AlertDialog.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/Application.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/ApplicationExitInfo.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/Dialog.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/DirectAction.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/FragmentManager.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/FragmentTransaction.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/LoaderManager.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/PictureInPictureParams.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/PictureInPictureUiState.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/RemoteAction.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/SharedElementCallback.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/TaskInfo.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/TaskStackBuilder.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/VoiceInteractor.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/app/assist/AssistContent.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/content/DialogInterface.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/content/Loader.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/net/http/SslCertificate.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/net/http/SslError.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/os/Debug.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/print/PageRange.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/print/PrintAttributes.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/print/PrintDocumentAdapter.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/print/PrintDocumentInfo.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/transition/PathMotion.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/transition/Scene.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/transition/Transition.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionManager.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionPropagation.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionValues.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/DragAndDropPermissions.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/FrameMetrics.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/InputQueue.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/KeyboardShortcutGroup.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/KeyboardShortcutInfo.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/SearchEvent.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/SurfaceHolder.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/Window.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/WindowManager.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/WindowMetrics.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/ConversationAction.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/ConversationActions.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/SelectionEvent.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassification.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassificationContext.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassificationSessionId.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassifier.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassifierEvent.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextLanguage.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextSelection.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/ClientCertRequest.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/ConsoleMessage.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/DownloadListener.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/GeolocationPermissions.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/HttpAuthHandler.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/JsPromptResult.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/JsResult.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/PermissionRequest.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/RenderProcessGoneDetail.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/SafeBrowsingResponse.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/SslErrorHandler.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/ValueCallback.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/WebBackForwardList.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/WebChromeClient.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/WebHistoryItem.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/WebMessage.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/WebMessagePort.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceError.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/WebStorage.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewRenderProcess.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewRenderProcessClient.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/AbsListView.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/AbsoluteLayout.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/Adapter.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/AdapterView.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/Filter.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/FrameLayout.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/ListAdapter.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/ListView.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/SpinnerAdapter.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/widget/Toolbar.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/window/SplashScreen.java create mode 100644 java/ql/test/stubs/google-android-9.0.0/android/window/SplashScreenView.java diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/ActionBar.java b/java/ql/test/stubs/google-android-9.0.0/android/app/ActionBar.java new file mode 100644 index 00000000000..ae42ac532dc --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/ActionBar.java @@ -0,0 +1,132 @@ +// Generated automatically from android.app.ActionBar for testing purposes + +package android.app; + +import android.app.FragmentTransaction; +import android.content.Context; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.widget.SpinnerAdapter; + +abstract public class ActionBar +{ + abstract static public class Tab + { + public Tab(){} + public abstract ActionBar.Tab setContentDescription(CharSequence p0); + public abstract ActionBar.Tab setContentDescription(int p0); + public abstract ActionBar.Tab setCustomView(View p0); + public abstract ActionBar.Tab setCustomView(int p0); + public abstract ActionBar.Tab setIcon(Drawable p0); + public abstract ActionBar.Tab setIcon(int p0); + public abstract ActionBar.Tab setTabListener(ActionBar.TabListener p0); + public abstract ActionBar.Tab setTag(Object p0); + public abstract ActionBar.Tab setText(CharSequence p0); + public abstract ActionBar.Tab setText(int p0); + public abstract CharSequence getContentDescription(); + public abstract CharSequence getText(); + public abstract Drawable getIcon(); + public abstract Object getTag(); + public abstract View getCustomView(); + public abstract int getPosition(); + public abstract void select(); + public static int INVALID_POSITION = 0; + } + public ActionBar(){} + public Context getThemedContext(){ return null; } + public abstract ActionBar.Tab getSelectedTab(); + public abstract ActionBar.Tab getTabAt(int p0); + public abstract ActionBar.Tab newTab(); + public abstract CharSequence getSubtitle(); + public abstract CharSequence getTitle(); + public abstract View getCustomView(); + public abstract boolean isShowing(); + public abstract int getDisplayOptions(); + public abstract int getHeight(); + public abstract int getNavigationItemCount(); + public abstract int getNavigationMode(); + public abstract int getSelectedNavigationIndex(); + public abstract int getTabCount(); + public abstract void addOnMenuVisibilityListener(ActionBar.OnMenuVisibilityListener p0); + public abstract void addTab(ActionBar.Tab p0); + public abstract void addTab(ActionBar.Tab p0, boolean p1); + public abstract void addTab(ActionBar.Tab p0, int p1); + public abstract void addTab(ActionBar.Tab p0, int p1, boolean p2); + public abstract void hide(); + public abstract void removeAllTabs(); + public abstract void removeOnMenuVisibilityListener(ActionBar.OnMenuVisibilityListener p0); + public abstract void removeTab(ActionBar.Tab p0); + public abstract void removeTabAt(int p0); + public abstract void selectTab(ActionBar.Tab p0); + public abstract void setBackgroundDrawable(Drawable p0); + public abstract void setCustomView(View p0); + public abstract void setCustomView(View p0, ActionBar.LayoutParams p1); + public abstract void setCustomView(int p0); + public abstract void setDisplayHomeAsUpEnabled(boolean p0); + public abstract void setDisplayOptions(int p0); + public abstract void setDisplayOptions(int p0, int p1); + public abstract void setDisplayShowCustomEnabled(boolean p0); + public abstract void setDisplayShowHomeEnabled(boolean p0); + public abstract void setDisplayShowTitleEnabled(boolean p0); + public abstract void setDisplayUseLogoEnabled(boolean p0); + public abstract void setIcon(Drawable p0); + public abstract void setIcon(int p0); + public abstract void setListNavigationCallbacks(SpinnerAdapter p0, ActionBar.OnNavigationListener p1); + public abstract void setLogo(Drawable p0); + public abstract void setLogo(int p0); + public abstract void setNavigationMode(int p0); + public abstract void setSelectedNavigationItem(int p0); + public abstract void setSubtitle(CharSequence p0); + public abstract void setSubtitle(int p0); + public abstract void setTitle(CharSequence p0); + public abstract void setTitle(int p0); + public abstract void show(); + public boolean isHideOnContentScrollEnabled(){ return false; } + public float getElevation(){ return 0; } + public int getHideOffset(){ return 0; } + public static int DISPLAY_HOME_AS_UP = 0; + public static int DISPLAY_SHOW_CUSTOM = 0; + public static int DISPLAY_SHOW_HOME = 0; + public static int DISPLAY_SHOW_TITLE = 0; + public static int DISPLAY_USE_LOGO = 0; + public static int NAVIGATION_MODE_LIST = 0; + public static int NAVIGATION_MODE_STANDARD = 0; + public static int NAVIGATION_MODE_TABS = 0; + public void setElevation(float p0){} + public void setHideOffset(int p0){} + public void setHideOnContentScrollEnabled(boolean p0){} + public void setHomeActionContentDescription(CharSequence p0){} + public void setHomeActionContentDescription(int p0){} + public void setHomeAsUpIndicator(Drawable p0){} + public void setHomeAsUpIndicator(int p0){} + public void setHomeButtonEnabled(boolean p0){} + public void setSplitBackgroundDrawable(Drawable p0){} + public void setStackedBackgroundDrawable(Drawable p0){} + static public class LayoutParams extends ViewGroup.MarginLayoutParams + { + protected LayoutParams() {} + public LayoutParams(ActionBar.LayoutParams p0){} + public LayoutParams(Context p0, AttributeSet p1){} + public LayoutParams(ViewGroup.LayoutParams p0){} + public LayoutParams(int p0){} + public LayoutParams(int p0, int p1){} + public LayoutParams(int p0, int p1, int p2){} + public int gravity = 0; + } + static public interface OnMenuVisibilityListener + { + void onMenuVisibilityChanged(boolean p0); + } + static public interface OnNavigationListener + { + boolean onNavigationItemSelected(int p0, long p1); + } + static public interface TabListener + { + void onTabReselected(ActionBar.Tab p0, FragmentTransaction p1); + void onTabSelected(ActionBar.Tab p0, FragmentTransaction p1); + void onTabUnselected(ActionBar.Tab p0, FragmentTransaction p1); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/ActivityManager.java b/java/ql/test/stubs/google-android-9.0.0/android/app/ActivityManager.java new file mode 100644 index 00000000000..2d9bc359cf7 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/ActivityManager.java @@ -0,0 +1,215 @@ +// Generated automatically from android.app.ActivityManager for testing purposes + +package android.app; + +import android.app.Activity; +import android.app.ApplicationExitInfo; +import android.app.PendingIntent; +import android.app.TaskInfo; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.pm.ConfigurationInfo; +import android.graphics.Bitmap; +import android.os.Bundle; +import android.os.Debug; +import android.os.Parcel; +import android.os.Parcelable; +import android.util.Size; +import java.io.FileDescriptor; +import java.util.List; + +public class ActivityManager +{ + public ConfigurationInfo getDeviceConfigurationInfo(){ return null; } + public Debug.MemoryInfo[] getProcessMemoryInfo(int[] p0){ return null; } + public List getAppTasks(){ return null; } + public List getProcessesInErrorState(){ return null; } + public List getRecentTasks(int p0, int p1){ return null; } + public List getRunningAppProcesses(){ return null; } + public List getRunningServices(int p0){ return null; } + public List getRunningTasks(int p0){ return null; } + public List getHistoricalProcessExitReasons(String p0, int p1, int p2){ return null; } + public PendingIntent getRunningServiceControlPanel(ComponentName p0){ return null; } + public Size getAppTaskThumbnailSize(){ return null; } + public boolean clearApplicationUserData(){ return false; } + public boolean isActivityStartAllowedOnDisplay(Context p0, int p1, Intent p2){ return false; } + public boolean isBackgroundRestricted(){ return false; } + public boolean isInLockTaskMode(){ return false; } + public boolean isLowRamDevice(){ return false; } + public int addAppTask(Activity p0, Intent p1, ActivityManager.TaskDescription p2, Bitmap p3){ return 0; } + public int getLargeMemoryClass(){ return 0; } + public int getLauncherLargeIconDensity(){ return 0; } + public int getLauncherLargeIconSize(){ return 0; } + public int getLockTaskModeState(){ return 0; } + public int getMemoryClass(){ return 0; } + public static String ACTION_REPORT_HEAP_LIMIT = null; + public static String META_HOME_ALTERNATE = null; + public static boolean isLowMemoryKillReportSupported(){ return false; } + public static boolean isRunningInTestHarness(){ return false; } + public static boolean isRunningInUserTestHarness(){ return false; } + public static boolean isUserAMonkey(){ return false; } + public static int LOCK_TASK_MODE_LOCKED = 0; + public static int LOCK_TASK_MODE_NONE = 0; + public static int LOCK_TASK_MODE_PINNED = 0; + public static int MOVE_TASK_NO_USER_ACTION = 0; + public static int MOVE_TASK_WITH_HOME = 0; + public static int RECENT_IGNORE_UNAVAILABLE = 0; + public static int RECENT_WITH_EXCLUDED = 0; + public static void getMyMemoryState(ActivityManager.RunningAppProcessInfo p0){} + public static void setVrThread(int p0){} + public void appNotResponding(String p0){} + public void clearWatchHeapLimit(){} + public void dumpPackageState(FileDescriptor p0, String p1){} + public void getMemoryInfo(ActivityManager.MemoryInfo p0){} + public void killBackgroundProcesses(String p0){} + public void moveTaskToFront(int p0, int p1){} + public void moveTaskToFront(int p0, int p1, Bundle p2){} + public void restartPackage(String p0){} + public void setProcessStateSummary(byte[] p0){} + public void setWatchHeapLimit(long p0){} + static public class AppTask + { + public ActivityManager.RecentTaskInfo getTaskInfo(){ return null; } + public void finishAndRemoveTask(){} + public void moveToFront(){} + public void setExcludeFromRecents(boolean p0){} + public void startActivity(Context p0, Intent p1, Bundle p2){} + } + static public class MemoryInfo implements Parcelable + { + public MemoryInfo(){} + public boolean lowMemory = false; + public int describeContents(){ return 0; } + public long availMem = 0; + public long threshold = 0; + public long totalMem = 0; + public static Parcelable.Creator CREATOR = null; + public void readFromParcel(Parcel p0){} + public void writeToParcel(Parcel p0, int p1){} + } + static public class ProcessErrorStateInfo implements Parcelable + { + public ProcessErrorStateInfo(){} + public String longMsg = null; + public String processName = null; + public String shortMsg = null; + public String stackTrace = null; + public String tag = null; + public byte[] crashData = null; + public int condition = 0; + public int describeContents(){ return 0; } + public int pid = 0; + public int uid = 0; + public static Parcelable.Creator CREATOR = null; + public static int CRASHED = 0; + public static int NOT_RESPONDING = 0; + public static int NO_ERROR = 0; + public void readFromParcel(Parcel p0){} + public void writeToParcel(Parcel p0, int p1){} + } + static public class RecentTaskInfo extends TaskInfo implements Parcelable + { + public CharSequence description = null; + public RecentTaskInfo(){} + public int affiliatedTaskId = 0; + public int describeContents(){ return 0; } + public int id = 0; + public int persistentId = 0; + public static Parcelable.Creator CREATOR = null; + public void readFromParcel(Parcel p0){} + public void writeToParcel(Parcel p0, int p1){} + } + static public class RunningAppProcessInfo implements Parcelable + { + public ComponentName importanceReasonComponent = null; + public RunningAppProcessInfo(){} + public RunningAppProcessInfo(String p0, int p1, String[] p2){} + public String processName = null; + public String[] pkgList = null; + public int describeContents(){ return 0; } + public int importance = 0; + public int importanceReasonCode = 0; + public int importanceReasonPid = 0; + public int lastTrimLevel = 0; + public int lru = 0; + public int pid = 0; + public int uid = 0; + public static Parcelable.Creator CREATOR = null; + public static int IMPORTANCE_BACKGROUND = 0; + public static int IMPORTANCE_CACHED = 0; + public static int IMPORTANCE_CANT_SAVE_STATE = 0; + public static int IMPORTANCE_EMPTY = 0; + public static int IMPORTANCE_FOREGROUND = 0; + public static int IMPORTANCE_FOREGROUND_SERVICE = 0; + public static int IMPORTANCE_GONE = 0; + public static int IMPORTANCE_PERCEPTIBLE = 0; + public static int IMPORTANCE_PERCEPTIBLE_PRE_26 = 0; + public static int IMPORTANCE_SERVICE = 0; + public static int IMPORTANCE_TOP_SLEEPING = 0; + public static int IMPORTANCE_TOP_SLEEPING_PRE_28 = 0; + public static int IMPORTANCE_VISIBLE = 0; + public static int REASON_PROVIDER_IN_USE = 0; + public static int REASON_SERVICE_IN_USE = 0; + public static int REASON_UNKNOWN = 0; + public void readFromParcel(Parcel p0){} + public void writeToParcel(Parcel p0, int p1){} + } + static public class RunningServiceInfo implements Parcelable + { + public ComponentName service = null; + public RunningServiceInfo(){} + public String clientPackage = null; + public String process = null; + public boolean foreground = false; + public boolean started = false; + public int clientCount = 0; + public int clientLabel = 0; + public int crashCount = 0; + public int describeContents(){ return 0; } + public int flags = 0; + public int pid = 0; + public int uid = 0; + public long activeSince = 0; + public long lastActivityTime = 0; + public long restarting = 0; + public static Parcelable.Creator CREATOR = null; + public static int FLAG_FOREGROUND = 0; + public static int FLAG_PERSISTENT_PROCESS = 0; + public static int FLAG_STARTED = 0; + public static int FLAG_SYSTEM_PROCESS = 0; + public void readFromParcel(Parcel p0){} + public void writeToParcel(Parcel p0, int p1){} + } + static public class RunningTaskInfo extends TaskInfo implements Parcelable + { + public Bitmap thumbnail = null; + public CharSequence description = null; + public RunningTaskInfo(){} + public int describeContents(){ return 0; } + public int id = 0; + public int numRunning = 0; + public static Parcelable.Creator CREATOR = null; + public void readFromParcel(Parcel p0){} + public void writeToParcel(Parcel p0, int p1){} + } + static public class TaskDescription implements Parcelable + { + public Bitmap getIcon(){ return null; } + public String getLabel(){ return null; } + public String toString(){ return null; } + public TaskDescription(){} + public TaskDescription(ActivityManager.TaskDescription p0){} + public TaskDescription(String p0){} + public TaskDescription(String p0, Bitmap p1){} + public TaskDescription(String p0, Bitmap p1, int p2){} + public TaskDescription(String p0, int p1){} + public TaskDescription(String p0, int p1, int p2){} + public boolean equals(Object p0){ return false; } + public int describeContents(){ return 0; } + public int getPrimaryColor(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void readFromParcel(Parcel p0){} + public void writeToParcel(Parcel p0, int p1){} + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/AlertDialog.java b/java/ql/test/stubs/google-android-9.0.0/android/app/AlertDialog.java new file mode 100644 index 00000000000..530cccf7bc1 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/AlertDialog.java @@ -0,0 +1,95 @@ +// Generated automatically from android.app.AlertDialog for testing purposes + +package android.app; + +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.database.Cursor; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.os.Message; +import android.view.KeyEvent; +import android.view.View; +import android.widget.Adapter; +import android.widget.AdapterView; +import android.widget.Button; +import android.widget.ListAdapter; +import android.widget.ListView; + +public class AlertDialog extends Dialog implements DialogInterface +{ + protected AlertDialog() {} + protected AlertDialog(Context p0){} + protected AlertDialog(Context p0, boolean p1, DialogInterface.OnCancelListener p2){} + protected AlertDialog(Context p0, int p1){} + protected void onCreate(Bundle p0){} + public Button getButton(int p0){ return null; } + public ListView getListView(){ return null; } + public boolean onKeyDown(int p0, KeyEvent p1){ return false; } + public boolean onKeyUp(int p0, KeyEvent p1){ return false; } + public static int THEME_DEVICE_DEFAULT_DARK = 0; + public static int THEME_DEVICE_DEFAULT_LIGHT = 0; + public static int THEME_HOLO_DARK = 0; + public static int THEME_HOLO_LIGHT = 0; + public static int THEME_TRADITIONAL = 0; + public void setButton(CharSequence p0, DialogInterface.OnClickListener p1){} + public void setButton(CharSequence p0, Message p1){} + public void setButton(int p0, CharSequence p1, DialogInterface.OnClickListener p2){} + public void setButton(int p0, CharSequence p1, Message p2){} + public void setButton2(CharSequence p0, DialogInterface.OnClickListener p1){} + public void setButton2(CharSequence p0, Message p1){} + public void setButton3(CharSequence p0, DialogInterface.OnClickListener p1){} + public void setButton3(CharSequence p0, Message p1){} + public void setCustomTitle(View p0){} + public void setIcon(Drawable p0){} + public void setIcon(int p0){} + public void setIconAttribute(int p0){} + public void setInverseBackgroundForced(boolean p0){} + public void setMessage(CharSequence p0){} + public void setTitle(CharSequence p0){} + public void setView(View p0){} + public void setView(View p0, int p1, int p2, int p3, int p4){} + static public class Builder + { + protected Builder() {} + public AlertDialog create(){ return null; } + public AlertDialog show(){ return null; } + public AlertDialog.Builder setAdapter(ListAdapter p0, DialogInterface.OnClickListener p1){ return null; } + public AlertDialog.Builder setCancelable(boolean p0){ return null; } + public AlertDialog.Builder setCursor(Cursor p0, DialogInterface.OnClickListener p1, String p2){ return null; } + public AlertDialog.Builder setCustomTitle(View p0){ return null; } + public AlertDialog.Builder setIcon(Drawable p0){ return null; } + public AlertDialog.Builder setIcon(int p0){ return null; } + public AlertDialog.Builder setIconAttribute(int p0){ return null; } + public AlertDialog.Builder setInverseBackgroundForced(boolean p0){ return null; } + public AlertDialog.Builder setItems(CharSequence[] p0, DialogInterface.OnClickListener p1){ return null; } + public AlertDialog.Builder setItems(int p0, DialogInterface.OnClickListener p1){ return null; } + public AlertDialog.Builder setMessage(CharSequence p0){ return null; } + public AlertDialog.Builder setMessage(int p0){ return null; } + public AlertDialog.Builder setMultiChoiceItems(CharSequence[] p0, boolean[] p1, DialogInterface.OnMultiChoiceClickListener p2){ return null; } + public AlertDialog.Builder setMultiChoiceItems(Cursor p0, String p1, String p2, DialogInterface.OnMultiChoiceClickListener p3){ return null; } + public AlertDialog.Builder setMultiChoiceItems(int p0, boolean[] p1, DialogInterface.OnMultiChoiceClickListener p2){ return null; } + public AlertDialog.Builder setNegativeButton(CharSequence p0, DialogInterface.OnClickListener p1){ return null; } + public AlertDialog.Builder setNegativeButton(int p0, DialogInterface.OnClickListener p1){ return null; } + public AlertDialog.Builder setNeutralButton(CharSequence p0, DialogInterface.OnClickListener p1){ return null; } + public AlertDialog.Builder setNeutralButton(int p0, DialogInterface.OnClickListener p1){ return null; } + public AlertDialog.Builder setOnCancelListener(DialogInterface.OnCancelListener p0){ return null; } + public AlertDialog.Builder setOnDismissListener(DialogInterface.OnDismissListener p0){ return null; } + public AlertDialog.Builder setOnItemSelectedListener(AdapterView.OnItemSelectedListener p0){ return null; } + public AlertDialog.Builder setOnKeyListener(DialogInterface.OnKeyListener p0){ return null; } + public AlertDialog.Builder setPositiveButton(CharSequence p0, DialogInterface.OnClickListener p1){ return null; } + public AlertDialog.Builder setPositiveButton(int p0, DialogInterface.OnClickListener p1){ return null; } + public AlertDialog.Builder setSingleChoiceItems(CharSequence[] p0, int p1, DialogInterface.OnClickListener p2){ return null; } + public AlertDialog.Builder setSingleChoiceItems(Cursor p0, int p1, String p2, DialogInterface.OnClickListener p3){ return null; } + public AlertDialog.Builder setSingleChoiceItems(ListAdapter p0, int p1, DialogInterface.OnClickListener p2){ return null; } + public AlertDialog.Builder setSingleChoiceItems(int p0, int p1, DialogInterface.OnClickListener p2){ return null; } + public AlertDialog.Builder setTitle(CharSequence p0){ return null; } + public AlertDialog.Builder setTitle(int p0){ return null; } + public AlertDialog.Builder setView(View p0){ return null; } + public AlertDialog.Builder setView(int p0){ return null; } + public Builder(Context p0){} + public Builder(Context p0, int p1){} + public Context getContext(){ return null; } + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/Application.java b/java/ql/test/stubs/google-android-9.0.0/android/app/Application.java new file mode 100644 index 00000000000..e9199a2da83 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/Application.java @@ -0,0 +1,55 @@ +// Generated automatically from android.app.Application for testing purposes + +package android.app; + +import android.app.Activity; +import android.content.ComponentCallbacks2; +import android.content.ComponentCallbacks; +import android.content.ContextWrapper; +import android.content.res.Configuration; +import android.os.Bundle; + +public class Application extends ContextWrapper implements ComponentCallbacks2 +{ + public Application(){} + public static String getProcessName(){ return null; } + public void onConfigurationChanged(Configuration p0){} + public void onCreate(){} + public void onLowMemory(){} + public void onTerminate(){} + public void onTrimMemory(int p0){} + public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks p0){} + public void registerComponentCallbacks(ComponentCallbacks p0){} + public void registerOnProvideAssistDataListener(Application.OnProvideAssistDataListener p0){} + public void unregisterActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks p0){} + public void unregisterComponentCallbacks(ComponentCallbacks p0){} + public void unregisterOnProvideAssistDataListener(Application.OnProvideAssistDataListener p0){} + static public interface ActivityLifecycleCallbacks + { + default void onActivityPostCreated(Activity p0, Bundle p1){} + default void onActivityPostDestroyed(Activity p0){} + default void onActivityPostPaused(Activity p0){} + default void onActivityPostResumed(Activity p0){} + default void onActivityPostSaveInstanceState(Activity p0, Bundle p1){} + default void onActivityPostStarted(Activity p0){} + default void onActivityPostStopped(Activity p0){} + default void onActivityPreCreated(Activity p0, Bundle p1){} + default void onActivityPreDestroyed(Activity p0){} + default void onActivityPrePaused(Activity p0){} + default void onActivityPreResumed(Activity p0){} + default void onActivityPreSaveInstanceState(Activity p0, Bundle p1){} + default void onActivityPreStarted(Activity p0){} + default void onActivityPreStopped(Activity p0){} + void onActivityCreated(Activity p0, Bundle p1); + void onActivityDestroyed(Activity p0); + void onActivityPaused(Activity p0); + void onActivityResumed(Activity p0); + void onActivitySaveInstanceState(Activity p0, Bundle p1); + void onActivityStarted(Activity p0); + void onActivityStopped(Activity p0); + } + static public interface OnProvideAssistDataListener + { + void onProvideAssistData(Activity p0, Bundle p1); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/ApplicationExitInfo.java b/java/ql/test/stubs/google-android-9.0.0/android/app/ApplicationExitInfo.java new file mode 100644 index 00000000000..6f412aa122a --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/ApplicationExitInfo.java @@ -0,0 +1,47 @@ +// Generated automatically from android.app.ApplicationExitInfo for testing purposes + +package android.app; + +import android.os.Parcel; +import android.os.Parcelable; +import android.os.UserHandle; +import java.io.InputStream; + +public class ApplicationExitInfo implements Parcelable +{ + public InputStream getTraceInputStream(){ return null; } + public String getDescription(){ return null; } + public String getProcessName(){ return null; } + public String toString(){ return null; } + public UserHandle getUserHandle(){ return null; } + public boolean equals(Object p0){ return false; } + public byte[] getProcessStateSummary(){ return null; } + public int describeContents(){ return 0; } + public int getDefiningUid(){ return 0; } + public int getImportance(){ return 0; } + public int getPackageUid(){ return 0; } + public int getPid(){ return 0; } + public int getRealUid(){ return 0; } + public int getReason(){ return 0; } + public int getStatus(){ return 0; } + public int hashCode(){ return 0; } + public long getPss(){ return 0; } + public long getRss(){ return 0; } + public long getTimestamp(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public static int REASON_ANR = 0; + public static int REASON_CRASH = 0; + public static int REASON_CRASH_NATIVE = 0; + public static int REASON_DEPENDENCY_DIED = 0; + public static int REASON_EXCESSIVE_RESOURCE_USAGE = 0; + public static int REASON_EXIT_SELF = 0; + public static int REASON_INITIALIZATION_FAILURE = 0; + public static int REASON_LOW_MEMORY = 0; + public static int REASON_OTHER = 0; + public static int REASON_PERMISSION_CHANGE = 0; + public static int REASON_SIGNALED = 0; + public static int REASON_UNKNOWN = 0; + public static int REASON_USER_REQUESTED = 0; + public static int REASON_USER_STOPPED = 0; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/Dialog.java b/java/ql/test/stubs/google-android-9.0.0/android/app/Dialog.java new file mode 100644 index 00000000000..35c4b8bb393 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/Dialog.java @@ -0,0 +1,121 @@ +// Generated automatically from android.app.Dialog for testing purposes + +package android.app; + +import android.app.ActionBar; +import android.app.Activity; +import android.content.Context; +import android.content.DialogInterface; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.os.Bundle; +import android.os.Message; +import android.view.ActionMode; +import android.view.ContextMenu; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.SearchEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.accessibility.AccessibilityEvent; + +public class Dialog implements DialogInterface, KeyEvent.Callback, View.OnCreateContextMenuListener, Window.Callback +{ + protected Dialog() {} + protected Dialog(Context p0, boolean p1, DialogInterface.OnCancelListener p2){} + protected void onCreate(Bundle p0){} + protected void onStart(){} + protected void onStop(){} + public T findViewById(int p0){ return null; } + public ActionBar getActionBar(){ return null; } + public ActionMode onWindowStartingActionMode(ActionMode.Callback p0){ return null; } + public ActionMode onWindowStartingActionMode(ActionMode.Callback p0, int p1){ return null; } + public Bundle onSaveInstanceState(){ return null; } + public Dialog(Context p0){} + public Dialog(Context p0, int p1){} + public LayoutInflater getLayoutInflater(){ return null; } + public View getCurrentFocus(){ return null; } + public View onCreatePanelView(int p0){ return null; } + public Window getWindow(){ return null; } + public boolean dispatchGenericMotionEvent(MotionEvent p0){ return false; } + public boolean dispatchKeyEvent(KeyEvent p0){ return false; } + public boolean dispatchKeyShortcutEvent(KeyEvent p0){ return false; } + public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent p0){ return false; } + public boolean dispatchTouchEvent(MotionEvent p0){ return false; } + public boolean dispatchTrackballEvent(MotionEvent p0){ return false; } + public boolean isShowing(){ return false; } + public boolean onContextItemSelected(MenuItem p0){ return false; } + public boolean onCreateOptionsMenu(Menu p0){ return false; } + public boolean onCreatePanelMenu(int p0, Menu p1){ return false; } + public boolean onGenericMotionEvent(MotionEvent p0){ return false; } + public boolean onKeyDown(int p0, KeyEvent p1){ return false; } + public boolean onKeyLongPress(int p0, KeyEvent p1){ return false; } + public boolean onKeyMultiple(int p0, int p1, KeyEvent p2){ return false; } + public boolean onKeyShortcut(int p0, KeyEvent p1){ return false; } + public boolean onKeyUp(int p0, KeyEvent p1){ return false; } + public boolean onMenuItemSelected(int p0, MenuItem p1){ return false; } + public boolean onMenuOpened(int p0, Menu p1){ return false; } + public boolean onOptionsItemSelected(MenuItem p0){ return false; } + public boolean onPrepareOptionsMenu(Menu p0){ return false; } + public boolean onPreparePanel(int p0, View p1, Menu p2){ return false; } + public boolean onSearchRequested(){ return false; } + public boolean onSearchRequested(SearchEvent p0){ return false; } + public boolean onTouchEvent(MotionEvent p0){ return false; } + public boolean onTrackballEvent(MotionEvent p0){ return false; } + public final T requireViewById(int p0){ return null; } + public final Activity getOwnerActivity(){ return null; } + public final Context getContext(){ return null; } + public final SearchEvent getSearchEvent(){ return null; } + public final boolean requestWindowFeature(int p0){ return false; } + public final int getVolumeControlStream(){ return 0; } + public final void setFeatureDrawable(int p0, Drawable p1){} + public final void setFeatureDrawableAlpha(int p0, int p1){} + public final void setFeatureDrawableResource(int p0, int p1){} + public final void setFeatureDrawableUri(int p0, Uri p1){} + public final void setOwnerActivity(Activity p0){} + public final void setVolumeControlStream(int p0){} + public void addContentView(View p0, ViewGroup.LayoutParams p1){} + public void cancel(){} + public void closeOptionsMenu(){} + public void create(){} + public void dismiss(){} + public void hide(){} + public void invalidateOptionsMenu(){} + public void onActionModeFinished(ActionMode p0){} + public void onActionModeStarted(ActionMode p0){} + public void onAttachedToWindow(){} + public void onBackPressed(){} + public void onContentChanged(){} + public void onContextMenuClosed(Menu p0){} + public void onCreateContextMenu(ContextMenu p0, View p1, ContextMenu.ContextMenuInfo p2){} + public void onDetachedFromWindow(){} + public void onOptionsMenuClosed(Menu p0){} + public void onPanelClosed(int p0, Menu p1){} + public void onRestoreInstanceState(Bundle p0){} + public void onWindowAttributesChanged(WindowManager.LayoutParams p0){} + public void onWindowFocusChanged(boolean p0){} + public void openContextMenu(View p0){} + public void openOptionsMenu(){} + public void registerForContextMenu(View p0){} + public void setCancelMessage(Message p0){} + public void setCancelable(boolean p0){} + public void setCanceledOnTouchOutside(boolean p0){} + public void setContentView(View p0){} + public void setContentView(View p0, ViewGroup.LayoutParams p1){} + public void setContentView(int p0){} + public void setDismissMessage(Message p0){} + public void setOnCancelListener(DialogInterface.OnCancelListener p0){} + public void setOnDismissListener(DialogInterface.OnDismissListener p0){} + public void setOnKeyListener(DialogInterface.OnKeyListener p0){} + public void setOnShowListener(DialogInterface.OnShowListener p0){} + public void setTitle(CharSequence p0){} + public void setTitle(int p0){} + public void show(){} + public void takeKeyEvents(boolean p0){} + public void unregisterForContextMenu(View p0){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/DirectAction.java b/java/ql/test/stubs/google-android-9.0.0/android/app/DirectAction.java new file mode 100644 index 00000000000..7eeaa9eac66 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/DirectAction.java @@ -0,0 +1,20 @@ +// Generated automatically from android.app.DirectAction for testing purposes + +package android.app; + +import android.content.LocusId; +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; + +public class DirectAction implements Parcelable +{ + public Bundle getExtras(){ return null; } + public LocusId getLocusId(){ return null; } + public String getId(){ return null; } + public boolean equals(Object p0){ return false; } + public int describeContents(){ return 0; } + public int hashCode(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/Fragment.java b/java/ql/test/stubs/google-android-9.0.0/android/app/Fragment.java index 5e5f71dcd25..41969f5d877 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/app/Fragment.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/Fragment.java @@ -1,82 +1,148 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ +// Generated automatically from android.app.Fragment for testing purposes package android.app; -import android.annotation.Nullable; +import android.animation.Animator; +import android.app.Activity; +import android.app.FragmentManager; +import android.app.LoaderManager; +import android.app.SharedElementCallback; import android.content.ComponentCallbacks2; import android.content.Context; import android.content.Intent; +import android.content.IntentSender; import android.content.res.Configuration; +import android.content.res.Resources; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; +import android.transition.Transition; +import android.util.AttributeSet; +import android.view.ContextMenu; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import java.io.FileDescriptor; +import java.io.PrintWriter; -public class Fragment implements ComponentCallbacks2 { - public static class SavedState implements Parcelable { - @Override - public int describeContents() { - return 0; +public class Fragment implements ComponentCallbacks2, View.OnCreateContextMenuListener +{ + public Animator onCreateAnimator(int p0, boolean p1, int p2){ return null; } + public Context getContext(){ return null; } + public Fragment(){} + public LayoutInflater onGetLayoutInflater(Bundle p0){ return null; } + public LoaderManager getLoaderManager(){ return null; } + public String toString(){ return null; } + public Transition getEnterTransition(){ return null; } + public Transition getExitTransition(){ return null; } + public Transition getReenterTransition(){ return null; } + public Transition getReturnTransition(){ return null; } + public Transition getSharedElementEnterTransition(){ return null; } + public Transition getSharedElementReturnTransition(){ return null; } + public View getView(){ return null; } + public View onCreateView(LayoutInflater p0, ViewGroup p1, Bundle p2){ return null; } + public boolean getAllowEnterTransitionOverlap(){ return false; } + public boolean getAllowReturnTransitionOverlap(){ return false; } + public boolean getUserVisibleHint(){ return false; } + public boolean onContextItemSelected(MenuItem p0){ return false; } + public boolean onOptionsItemSelected(MenuItem p0){ return false; } + public boolean shouldShowRequestPermissionRationale(String p0){ return false; } + public final Activity getActivity(){ return null; } + public final Bundle getArguments(){ return null; } + public final CharSequence getText(int p0){ return null; } + public final Fragment getParentFragment(){ return null; } + public final Fragment getTargetFragment(){ return null; } + public final FragmentManager getChildFragmentManager(){ return null; } + public final FragmentManager getFragmentManager(){ return null; } + public final LayoutInflater getLayoutInflater(){ return null; } + public final Object getHost(){ return null; } + public final Resources getResources(){ return null; } + public final String getString(int p0){ return null; } + public final String getString(int p0, Object... p1){ return null; } + public final String getTag(){ return null; } + public final boolean equals(Object p0){ return false; } + public final boolean getRetainInstance(){ return false; } + public final boolean isAdded(){ return false; } + public final boolean isDetached(){ return false; } + public final boolean isHidden(){ return false; } + public final boolean isInLayout(){ return false; } + public final boolean isRemoving(){ return false; } + public final boolean isResumed(){ return false; } + public final boolean isStateSaved(){ return false; } + public final boolean isVisible(){ return false; } + public final int getId(){ return 0; } + public final int getTargetRequestCode(){ return 0; } + public final int hashCode(){ return 0; } + public final void requestPermissions(String[] p0, int p1){} + public static Fragment instantiate(Context p0, String p1){ return null; } + public static Fragment instantiate(Context p0, String p1, Bundle p2){ return null; } + public void dump(String p0, FileDescriptor p1, PrintWriter p2, String[] p3){} + public void onActivityCreated(Bundle p0){} + public void onActivityResult(int p0, int p1, Intent p2){} + public void onAttach(Activity p0){} + public void onAttach(Context p0){} + public void onAttachFragment(Fragment p0){} + public void onConfigurationChanged(Configuration p0){} + public void onCreate(Bundle p0){} + public void onCreateContextMenu(ContextMenu p0, View p1, ContextMenu.ContextMenuInfo p2){} + public void onCreateOptionsMenu(Menu p0, MenuInflater p1){} + public void onDestroy(){} + public void onDestroyOptionsMenu(){} + public void onDestroyView(){} + public void onDetach(){} + public void onHiddenChanged(boolean p0){} + public void onInflate(Activity p0, AttributeSet p1, Bundle p2){} + public void onInflate(AttributeSet p0, Bundle p1){} + public void onInflate(Context p0, AttributeSet p1, Bundle p2){} + public void onLowMemory(){} + public void onMultiWindowModeChanged(boolean p0){} + public void onMultiWindowModeChanged(boolean p0, Configuration p1){} + public void onOptionsMenuClosed(Menu p0){} + public void onPause(){} + public void onPictureInPictureModeChanged(boolean p0){} + public void onPictureInPictureModeChanged(boolean p0, Configuration p1){} + public void onPrepareOptionsMenu(Menu p0){} + public void onRequestPermissionsResult(int p0, String[] p1, int[] p2){} + public void onResume(){} + public void onSaveInstanceState(Bundle p0){} + public void onStart(){} + public void onStop(){} + public void onTrimMemory(int p0){} + public void onViewCreated(View p0, Bundle p1){} + public void onViewStateRestored(Bundle p0){} + public void postponeEnterTransition(){} + public void registerForContextMenu(View p0){} + public void setAllowEnterTransitionOverlap(boolean p0){} + public void setAllowReturnTransitionOverlap(boolean p0){} + public void setArguments(Bundle p0){} + public void setEnterSharedElementCallback(SharedElementCallback p0){} + public void setEnterTransition(Transition p0){} + public void setExitSharedElementCallback(SharedElementCallback p0){} + public void setExitTransition(Transition p0){} + public void setHasOptionsMenu(boolean p0){} + public void setInitialSavedState(Fragment.SavedState p0){} + public void setMenuVisibility(boolean p0){} + public void setReenterTransition(Transition p0){} + public void setRetainInstance(boolean p0){} + public void setReturnTransition(Transition p0){} + public void setSharedElementEnterTransition(Transition p0){} + public void setSharedElementReturnTransition(Transition p0){} + public void setTargetFragment(Fragment p0, int p1){} + public void setUserVisibleHint(boolean p0){} + public void startActivity(Intent p0){} + public void startActivity(Intent p0, Bundle p1){} + public void startActivityForResult(Intent p0, int p1){} + public void startActivityForResult(Intent p0, int p1, Bundle p2){} + public void startIntentSenderForResult(IntentSender p0, int p1, Intent p2, int p3, int p4, int p5, Bundle p6){} + public void startPostponedEnterTransition(){} + public void unregisterForContextMenu(View p0){} + static public class SavedState implements Parcelable + { + public int describeContents(){ return 0; } + public static Parcelable.ClassLoaderCreator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} } - - @Override - public void writeToParcel(Parcel dest, int flags) {} - - } - - static public class InstantiationException { - public InstantiationException(String msg, Exception cause) {} - } - - - public Fragment() {} - - public static Fragment instantiate(Context context, String fname) { - return null; - } - - public static Fragment instantiate(Context context, String fname, @Nullable Bundle args) { - return null; - } - - @Override - final public boolean equals(Object o) { - return false; - } - - @Override - final public int hashCode() { - return 0; - } - - @Override - public String toString() { - return null; - } - - @Override - public void onConfigurationChanged(Configuration p0) {} - - @Override - public void onLowMemory() {} - - @Override - public void onTrimMemory(int p0) {} - - public void startActivityForResult(Intent intent, int requestCode) {} - - public void startActivityForResult(Intent intent, int requestCode, Bundle options) {} - - public void onActivityResult(int requestCode, int resultCode, Intent data) {} } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/FragmentManager.java b/java/ql/test/stubs/google-android-9.0.0/android/app/FragmentManager.java new file mode 100644 index 00000000000..0d62560b685 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/FragmentManager.java @@ -0,0 +1,75 @@ +// Generated automatically from android.app.FragmentManager for testing purposes + +package android.app; + +import android.app.Fragment; +import android.app.FragmentTransaction; +import android.content.Context; +import android.os.Bundle; +import android.view.View; +import java.io.FileDescriptor; +import java.io.PrintWriter; +import java.util.List; + +abstract public class FragmentManager +{ + abstract static public class FragmentLifecycleCallbacks + { + public FragmentLifecycleCallbacks(){} + public void onFragmentActivityCreated(FragmentManager p0, Fragment p1, Bundle p2){} + public void onFragmentAttached(FragmentManager p0, Fragment p1, Context p2){} + public void onFragmentCreated(FragmentManager p0, Fragment p1, Bundle p2){} + public void onFragmentDestroyed(FragmentManager p0, Fragment p1){} + public void onFragmentDetached(FragmentManager p0, Fragment p1){} + public void onFragmentPaused(FragmentManager p0, Fragment p1){} + public void onFragmentPreAttached(FragmentManager p0, Fragment p1, Context p2){} + public void onFragmentPreCreated(FragmentManager p0, Fragment p1, Bundle p2){} + public void onFragmentResumed(FragmentManager p0, Fragment p1){} + public void onFragmentSaveInstanceState(FragmentManager p0, Fragment p1, Bundle p2){} + public void onFragmentStarted(FragmentManager p0, Fragment p1){} + public void onFragmentStopped(FragmentManager p0, Fragment p1){} + public void onFragmentViewCreated(FragmentManager p0, Fragment p1, View p2, Bundle p3){} + public void onFragmentViewDestroyed(FragmentManager p0, Fragment p1){} + } + public FragmentManager(){} + public abstract Fragment findFragmentById(int p0); + public abstract Fragment findFragmentByTag(String p0); + public abstract Fragment getFragment(Bundle p0, String p1); + public abstract Fragment getPrimaryNavigationFragment(); + public abstract Fragment.SavedState saveFragmentInstanceState(Fragment p0); + public abstract FragmentManager.BackStackEntry getBackStackEntryAt(int p0); + public abstract FragmentTransaction beginTransaction(); + public abstract List getFragments(); + public abstract boolean executePendingTransactions(); + public abstract boolean isDestroyed(); + public abstract boolean isStateSaved(); + public abstract boolean popBackStackImmediate(); + public abstract boolean popBackStackImmediate(String p0, int p1); + public abstract boolean popBackStackImmediate(int p0, int p1); + public abstract int getBackStackEntryCount(); + public abstract void addOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener p0); + public abstract void dump(String p0, FileDescriptor p1, PrintWriter p2, String[] p3); + public abstract void popBackStack(); + public abstract void popBackStack(String p0, int p1); + public abstract void popBackStack(int p0, int p1); + public abstract void putFragment(Bundle p0, String p1, Fragment p2); + public abstract void registerFragmentLifecycleCallbacks(FragmentManager.FragmentLifecycleCallbacks p0, boolean p1); + public abstract void removeOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener p0); + public abstract void unregisterFragmentLifecycleCallbacks(FragmentManager.FragmentLifecycleCallbacks p0); + public static int POP_BACK_STACK_INCLUSIVE = 0; + public static void enableDebugLogging(boolean p0){} + public void invalidateOptionsMenu(){} + static public interface BackStackEntry + { + CharSequence getBreadCrumbShortTitle(); + CharSequence getBreadCrumbTitle(); + String getName(); + int getBreadCrumbShortTitleRes(); + int getBreadCrumbTitleRes(); + int getId(); + } + static public interface OnBackStackChangedListener + { + void onBackStackChanged(); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/FragmentTransaction.java b/java/ql/test/stubs/google-android-9.0.0/android/app/FragmentTransaction.java new file mode 100644 index 00000000000..762dc14091c --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/FragmentTransaction.java @@ -0,0 +1,48 @@ +// Generated automatically from android.app.FragmentTransaction for testing purposes + +package android.app; + +import android.app.Fragment; +import android.view.View; + +abstract public class FragmentTransaction +{ + public FragmentTransaction(){} + public abstract FragmentTransaction add(Fragment p0, String p1); + public abstract FragmentTransaction add(int p0, Fragment p1); + public abstract FragmentTransaction add(int p0, Fragment p1, String p2); + public abstract FragmentTransaction addSharedElement(View p0, String p1); + public abstract FragmentTransaction addToBackStack(String p0); + public abstract FragmentTransaction attach(Fragment p0); + public abstract FragmentTransaction detach(Fragment p0); + public abstract FragmentTransaction disallowAddToBackStack(); + public abstract FragmentTransaction hide(Fragment p0); + public abstract FragmentTransaction remove(Fragment p0); + public abstract FragmentTransaction replace(int p0, Fragment p1); + public abstract FragmentTransaction replace(int p0, Fragment p1, String p2); + public abstract FragmentTransaction runOnCommit(Runnable p0); + public abstract FragmentTransaction setBreadCrumbShortTitle(CharSequence p0); + public abstract FragmentTransaction setBreadCrumbShortTitle(int p0); + public abstract FragmentTransaction setBreadCrumbTitle(CharSequence p0); + public abstract FragmentTransaction setBreadCrumbTitle(int p0); + public abstract FragmentTransaction setCustomAnimations(int p0, int p1); + public abstract FragmentTransaction setCustomAnimations(int p0, int p1, int p2, int p3); + public abstract FragmentTransaction setPrimaryNavigationFragment(Fragment p0); + public abstract FragmentTransaction setReorderingAllowed(boolean p0); + public abstract FragmentTransaction setTransition(int p0); + public abstract FragmentTransaction setTransitionStyle(int p0); + public abstract FragmentTransaction show(Fragment p0); + public abstract boolean isAddToBackStackAllowed(); + public abstract boolean isEmpty(); + public abstract int commit(); + public abstract int commitAllowingStateLoss(); + public abstract void commitNow(); + public abstract void commitNowAllowingStateLoss(); + public static int TRANSIT_ENTER_MASK = 0; + public static int TRANSIT_EXIT_MASK = 0; + public static int TRANSIT_FRAGMENT_CLOSE = 0; + public static int TRANSIT_FRAGMENT_FADE = 0; + public static int TRANSIT_FRAGMENT_OPEN = 0; + public static int TRANSIT_NONE = 0; + public static int TRANSIT_UNSET = 0; +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/LoaderManager.java b/java/ql/test/stubs/google-android-9.0.0/android/app/LoaderManager.java new file mode 100644 index 00000000000..1c94d938590 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/LoaderManager.java @@ -0,0 +1,25 @@ +// Generated automatically from android.app.LoaderManager for testing purposes + +package android.app; + +import android.content.Loader; +import android.os.Bundle; +import java.io.FileDescriptor; +import java.io.PrintWriter; + +abstract public class LoaderManager +{ + public LoaderManager(){} + public abstract Loader getLoader(int p0); + public abstract Loader initLoader(int p0, Bundle p1, LoaderManager.LoaderCallbacks p2); + public abstract Loader restartLoader(int p0, Bundle p1, LoaderManager.LoaderCallbacks p2); + public abstract void destroyLoader(int p0); + public abstract void dump(String p0, FileDescriptor p1, PrintWriter p2, String[] p3); + public static void enableDebugLogging(boolean p0){} + static public interface LoaderCallbacks + { + Loader onCreateLoader(int p0, Bundle p1); + void onLoadFinished(Loader p0, D p1); + void onLoaderReset(Loader p0); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/PictureInPictureParams.java b/java/ql/test/stubs/google-android-9.0.0/android/app/PictureInPictureParams.java new file mode 100644 index 00000000000..4186fa98993 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/PictureInPictureParams.java @@ -0,0 +1,16 @@ +// Generated automatically from android.app.PictureInPictureParams for testing purposes + +package android.app; + +import android.os.Parcel; +import android.os.Parcelable; + +public class PictureInPictureParams implements Parcelable +{ + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int describeContents(){ return 0; } + public int hashCode(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/PictureInPictureUiState.java b/java/ql/test/stubs/google-android-9.0.0/android/app/PictureInPictureUiState.java new file mode 100644 index 00000000000..9e2485a6f3a --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/PictureInPictureUiState.java @@ -0,0 +1,16 @@ +// Generated automatically from android.app.PictureInPictureUiState for testing purposes + +package android.app; + +import android.os.Parcel; +import android.os.Parcelable; + +public class PictureInPictureUiState implements Parcelable +{ + public boolean equals(Object p0){ return false; } + public boolean isStashed(){ return false; } + public int describeContents(){ return 0; } + public int hashCode(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/RemoteAction.java b/java/ql/test/stubs/google-android-9.0.0/android/app/RemoteAction.java new file mode 100644 index 00000000000..58dec2cc81a --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/RemoteAction.java @@ -0,0 +1,30 @@ +// Generated automatically from android.app.RemoteAction for testing purposes + +package android.app; + +import android.app.PendingIntent; +import android.graphics.drawable.Icon; +import android.os.Parcel; +import android.os.Parcelable; +import java.io.PrintWriter; + +public class RemoteAction implements Parcelable +{ + protected RemoteAction() {} + public CharSequence getContentDescription(){ return null; } + public CharSequence getTitle(){ return null; } + public Icon getIcon(){ return null; } + public PendingIntent getActionIntent(){ return null; } + public RemoteAction clone(){ return null; } + public RemoteAction(Icon p0, CharSequence p1, CharSequence p2, PendingIntent p3){} + public boolean equals(Object p0){ return false; } + public boolean isEnabled(){ return false; } + public boolean shouldShowIcon(){ return false; } + public int describeContents(){ return 0; } + public int hashCode(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void dump(String p0, PrintWriter p1){} + public void setEnabled(boolean p0){} + public void setShouldShowIcon(boolean p0){} + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/SharedElementCallback.java b/java/ql/test/stubs/google-android-9.0.0/android/app/SharedElementCallback.java new file mode 100644 index 00000000000..1f4cd82b40e --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/SharedElementCallback.java @@ -0,0 +1,27 @@ +// Generated automatically from android.app.SharedElementCallback for testing purposes + +package android.app; + +import android.content.Context; +import android.graphics.Matrix; +import android.graphics.RectF; +import android.os.Parcelable; +import android.view.View; +import java.util.List; +import java.util.Map; + +abstract public class SharedElementCallback +{ + public Parcelable onCaptureSharedElementSnapshot(View p0, Matrix p1, RectF p2){ return null; } + public SharedElementCallback(){} + public View onCreateSnapshotView(Context p0, Parcelable p1){ return null; } + public void onMapSharedElements(List p0, Map p1){} + public void onRejectSharedElements(List p0){} + public void onSharedElementEnd(List p0, List p1, List p2){} + public void onSharedElementStart(List p0, List p1, List p2){} + public void onSharedElementsArrived(List p0, List p1, SharedElementCallback.OnSharedElementsReadyListener p2){} + static public interface OnSharedElementsReadyListener + { + void onSharedElementsReady(); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/TaskInfo.java b/java/ql/test/stubs/google-android-9.0.0/android/app/TaskInfo.java new file mode 100644 index 00000000000..a5a38ed25bf --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/TaskInfo.java @@ -0,0 +1,21 @@ +// Generated automatically from android.app.TaskInfo for testing purposes + +package android.app; + +import android.app.ActivityManager; +import android.content.ComponentName; +import android.content.Intent; + +public class TaskInfo +{ + public ActivityManager.TaskDescription taskDescription = null; + public ComponentName baseActivity = null; + public ComponentName origActivity = null; + public ComponentName topActivity = null; + public Intent baseIntent = null; + public String toString(){ return null; } + public boolean isRunning = false; + public boolean isVisible(){ return false; } + public int numActivities = 0; + public int taskId = 0; +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/TaskStackBuilder.java b/java/ql/test/stubs/google-android-9.0.0/android/app/TaskStackBuilder.java new file mode 100644 index 00000000000..39544930481 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/TaskStackBuilder.java @@ -0,0 +1,28 @@ +// Generated automatically from android.app.TaskStackBuilder for testing purposes + +package android.app; + +import android.app.Activity; +import android.app.PendingIntent; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; + +public class TaskStackBuilder +{ + protected TaskStackBuilder() {} + public Intent editIntentAt(int p0){ return null; } + public Intent[] getIntents(){ return null; } + public PendingIntent getPendingIntent(int p0, int p1){ return null; } + public PendingIntent getPendingIntent(int p0, int p1, Bundle p2){ return null; } + public TaskStackBuilder addNextIntent(Intent p0){ return null; } + public TaskStackBuilder addNextIntentWithParentStack(Intent p0){ return null; } + public TaskStackBuilder addParentStack(Activity p0){ return null; } + public TaskStackBuilder addParentStack(Class p0){ return null; } + public TaskStackBuilder addParentStack(ComponentName p0){ return null; } + public int getIntentCount(){ return 0; } + public static TaskStackBuilder create(Context p0){ return null; } + public void startActivities(){} + public void startActivities(Bundle p0){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/VoiceInteractor.java b/java/ql/test/stubs/google-android-9.0.0/android/app/VoiceInteractor.java new file mode 100644 index 00000000000..5d3f6f654cd --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/VoiceInteractor.java @@ -0,0 +1,31 @@ +// Generated automatically from android.app.VoiceInteractor for testing purposes + +package android.app; + +import android.app.Activity; +import android.content.Context; +import java.util.concurrent.Executor; + +public class VoiceInteractor +{ + abstract static public class Request + { + public Activity getActivity(){ return null; } + public Context getContext(){ return null; } + public String getName(){ return null; } + public String toString(){ return null; } + public void cancel(){} + public void onAttached(Activity p0){} + public void onCancel(){} + public void onDetached(){} + } + public VoiceInteractor.Request getActiveRequest(String p0){ return null; } + public VoiceInteractor.Request[] getActiveRequests(){ return null; } + public boolean isDestroyed(){ return false; } + public boolean registerOnDestroyedCallback(Executor p0, Runnable p1){ return false; } + public boolean submitRequest(VoiceInteractor.Request p0){ return false; } + public boolean submitRequest(VoiceInteractor.Request p0, String p1){ return false; } + public boolean unregisterOnDestroyedCallback(Runnable p0){ return false; } + public boolean[] supportsCommands(String[] p0){ return null; } + public void notifyDirectActionsChanged(){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/app/assist/AssistContent.java b/java/ql/test/stubs/google-android-9.0.0/android/app/assist/AssistContent.java new file mode 100644 index 00000000000..49f515177ea --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/app/assist/AssistContent.java @@ -0,0 +1,29 @@ +// Generated automatically from android.app.assist.AssistContent for testing purposes + +package android.app.assist; + +import android.content.ClipData; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; + +public class AssistContent implements Parcelable +{ + public AssistContent(){} + public Bundle getExtras(){ return null; } + public ClipData getClipData(){ return null; } + public Intent getIntent(){ return null; } + public String getStructuredData(){ return null; } + public Uri getWebUri(){ return null; } + public boolean isAppProvidedIntent(){ return false; } + public boolean isAppProvidedWebUri(){ return false; } + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void setClipData(ClipData p0){} + public void setIntent(Intent p0){} + public void setStructuredData(String p0){} + public void setWebUri(Uri p0){} + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/content/ComponentCallbacks2.java b/java/ql/test/stubs/google-android-9.0.0/android/content/ComponentCallbacks2.java index d70ac92ec20..f8c83ab104d 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/content/ComponentCallbacks2.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/content/ComponentCallbacks2.java @@ -2,7 +2,10 @@ package android.content; -public interface ComponentCallbacks2 extends ComponentCallbacks { +import android.content.ComponentCallbacks; + +public interface ComponentCallbacks2 extends ComponentCallbacks +{ static int TRIM_MEMORY_BACKGROUND = 0; static int TRIM_MEMORY_COMPLETE = 0; static int TRIM_MEMORY_MODERATE = 0; @@ -10,6 +13,5 @@ public interface ComponentCallbacks2 extends ComponentCallbacks { static int TRIM_MEMORY_RUNNING_LOW = 0; static int TRIM_MEMORY_RUNNING_MODERATE = 0; static int TRIM_MEMORY_UI_HIDDEN = 0; - void onTrimMemory(int p0); } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/content/DialogInterface.java b/java/ql/test/stubs/google-android-9.0.0/android/content/DialogInterface.java new file mode 100644 index 00000000000..d47429790f3 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/content/DialogInterface.java @@ -0,0 +1,41 @@ +// Generated automatically from android.content.DialogInterface for testing purposes + +package android.content; + +import android.view.KeyEvent; + +public interface DialogInterface +{ + static int BUTTON1 = 0; + static int BUTTON2 = 0; + static int BUTTON3 = 0; + static int BUTTON_NEGATIVE = 0; + static int BUTTON_NEUTRAL = 0; + static int BUTTON_POSITIVE = 0; + static public interface OnCancelListener + { + void onCancel(DialogInterface p0); + } + static public interface OnClickListener + { + void onClick(DialogInterface p0, int p1); + } + static public interface OnDismissListener + { + void onDismiss(DialogInterface p0); + } + static public interface OnKeyListener + { + boolean onKey(DialogInterface p0, int p1, KeyEvent p2); + } + static public interface OnMultiChoiceClickListener + { + void onClick(DialogInterface p0, int p1, boolean p2); + } + static public interface OnShowListener + { + void onShow(DialogInterface p0); + } + void cancel(); + void dismiss(); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/content/Loader.java b/java/ql/test/stubs/google-android-9.0.0/android/content/Loader.java new file mode 100644 index 00000000000..2b327100cef --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/content/Loader.java @@ -0,0 +1,51 @@ +// Generated automatically from android.content.Loader for testing purposes + +package android.content; + +import android.content.Context; +import java.io.FileDescriptor; +import java.io.PrintWriter; + +public class Loader +{ + protected Loader() {} + protected boolean onCancelLoad(){ return false; } + protected void onAbandon(){} + protected void onForceLoad(){} + protected void onReset(){} + protected void onStartLoading(){} + protected void onStopLoading(){} + public Context getContext(){ return null; } + public Loader(Context p0){} + public String dataToString(D p0){ return null; } + public String toString(){ return null; } + public boolean cancelLoad(){ return false; } + public boolean isAbandoned(){ return false; } + public boolean isReset(){ return false; } + public boolean isStarted(){ return false; } + public boolean takeContentChanged(){ return false; } + public final void startLoading(){} + public int getId(){ return 0; } + public void abandon(){} + public void commitContentChanged(){} + public void deliverCancellation(){} + public void deliverResult(D p0){} + public void dump(String p0, FileDescriptor p1, PrintWriter p2, String[] p3){} + public void forceLoad(){} + public void onContentChanged(){} + public void registerListener(int p0, Loader.OnLoadCompleteListener p1){} + public void registerOnLoadCanceledListener(Loader.OnLoadCanceledListener p0){} + public void reset(){} + public void rollbackContentChanged(){} + public void stopLoading(){} + public void unregisterListener(Loader.OnLoadCompleteListener p0){} + public void unregisterOnLoadCanceledListener(Loader.OnLoadCanceledListener p0){} + static public interface OnLoadCanceledListener + { + void onLoadCanceled(Loader p0); + } + static public interface OnLoadCompleteListener + { + void onLoadComplete(Loader p0, D p1); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/media/AudioAttributes.java b/java/ql/test/stubs/google-android-9.0.0/android/media/AudioAttributes.java index 20dff0cc760..042da801af2 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/media/AudioAttributes.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/media/AudioAttributes.java @@ -11,10 +11,12 @@ public class AudioAttributes implements Parcelable public String toString(){ return null; } public boolean areHapticChannelsMuted(){ return false; } public boolean equals(Object p0){ return false; } + public boolean isContentSpatialized(){ return false; } public int describeContents(){ return 0; } public int getAllowedCapturePolicy(){ return 0; } public int getContentType(){ return 0; } public int getFlags(){ return 0; } + public int getSpatializationBehavior(){ return 0; } public int getUsage(){ return 0; } public int getVolumeControlStream(){ return 0; } public int hashCode(){ return 0; } @@ -30,6 +32,8 @@ public class AudioAttributes implements Parcelable public static int FLAG_AUDIBILITY_ENFORCED = 0; public static int FLAG_HW_AV_SYNC = 0; public static int FLAG_LOW_LATENCY = 0; + public static int SPATIALIZATION_BEHAVIOR_AUTO = 0; + public static int SPATIALIZATION_BEHAVIOR_NEVER = 0; public static int USAGE_ALARM = 0; public static int USAGE_ASSISTANCE_ACCESSIBILITY = 0; public static int USAGE_ASSISTANCE_NAVIGATION_GUIDANCE = 0; diff --git a/java/ql/test/stubs/google-android-9.0.0/android/net/http/SslCertificate.java b/java/ql/test/stubs/google-android-9.0.0/android/net/http/SslCertificate.java new file mode 100644 index 00000000000..8c22fcb0a49 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/net/http/SslCertificate.java @@ -0,0 +1,34 @@ +// Generated automatically from android.net.http.SslCertificate for testing purposes + +package android.net.http; + +import android.os.Bundle; +import java.security.cert.X509Certificate; +import java.util.Date; + +public class SslCertificate +{ + protected SslCertificate() {} + public Date getValidNotAfterDate(){ return null; } + public Date getValidNotBeforeDate(){ return null; } + public SslCertificate(String p0, String p1, Date p2, Date p3){} + public SslCertificate(String p0, String p1, String p2, String p3){} + public SslCertificate(X509Certificate p0){} + public SslCertificate.DName getIssuedBy(){ return null; } + public SslCertificate.DName getIssuedTo(){ return null; } + public String getValidNotAfter(){ return null; } + public String getValidNotBefore(){ return null; } + public String toString(){ return null; } + public X509Certificate getX509Certificate(){ return null; } + public class DName + { + protected DName() {} + public DName(String p0){} + public String getCName(){ return null; } + public String getDName(){ return null; } + public String getOName(){ return null; } + public String getUName(){ return null; } + } + public static Bundle saveState(SslCertificate p0){ return null; } + public static SslCertificate restoreState(Bundle p0){ return null; } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/net/http/SslError.java b/java/ql/test/stubs/google-android-9.0.0/android/net/http/SslError.java new file mode 100644 index 00000000000..62feb4a498d --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/net/http/SslError.java @@ -0,0 +1,28 @@ +// Generated automatically from android.net.http.SslError for testing purposes + +package android.net.http; + +import android.net.http.SslCertificate; +import java.security.cert.X509Certificate; + +public class SslError +{ + protected SslError() {} + public SslCertificate getCertificate(){ return null; } + public SslError(int p0, SslCertificate p1){} + public SslError(int p0, SslCertificate p1, String p2){} + public SslError(int p0, X509Certificate p1){} + public SslError(int p0, X509Certificate p1, String p2){} + public String getUrl(){ return null; } + public String toString(){ return null; } + public boolean addError(int p0){ return false; } + public boolean hasError(int p0){ return false; } + public int getPrimaryError(){ return 0; } + public static int SSL_DATE_INVALID = 0; + public static int SSL_EXPIRED = 0; + public static int SSL_IDMISMATCH = 0; + public static int SSL_INVALID = 0; + public static int SSL_MAX_ERROR = 0; + public static int SSL_NOTYETVALID = 0; + public static int SSL_UNTRUSTED = 0; +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/os/Debug.java b/java/ql/test/stubs/google-android-9.0.0/android/os/Debug.java new file mode 100644 index 00000000000..2ce002f144c --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/os/Debug.java @@ -0,0 +1,110 @@ +// Generated automatically from android.os.Debug for testing purposes + +package android.os; + +import android.os.Parcel; +import android.os.Parcelable; +import java.io.FileDescriptor; +import java.util.Map; + +public class Debug +{ + protected Debug() {} + public static Map getRuntimeStats(){ return null; } + public static String getRuntimeStat(String p0){ return null; } + public static boolean dumpService(String p0, FileDescriptor p1, String[] p2){ return false; } + public static boolean isDebuggerConnected(){ return false; } + public static boolean waitingForDebugger(){ return false; } + public static int SHOW_CLASSLOADER = 0; + public static int SHOW_FULL_DETAIL = 0; + public static int SHOW_INITIALIZED = 0; + public static int TRACE_COUNT_ALLOCS = 0; + public static int getBinderDeathObjectCount(){ return 0; } + public static int getBinderLocalObjectCount(){ return 0; } + public static int getBinderProxyObjectCount(){ return 0; } + public static int getBinderReceivedTransactions(){ return 0; } + public static int getBinderSentTransactions(){ return 0; } + public static int getGlobalAllocCount(){ return 0; } + public static int getGlobalAllocSize(){ return 0; } + public static int getGlobalClassInitCount(){ return 0; } + public static int getGlobalClassInitTime(){ return 0; } + public static int getGlobalExternalAllocCount(){ return 0; } + public static int getGlobalExternalAllocSize(){ return 0; } + public static int getGlobalExternalFreedCount(){ return 0; } + public static int getGlobalExternalFreedSize(){ return 0; } + public static int getGlobalFreedCount(){ return 0; } + public static int getGlobalFreedSize(){ return 0; } + public static int getGlobalGcInvocationCount(){ return 0; } + public static int getLoadedClassCount(){ return 0; } + public static int getThreadAllocCount(){ return 0; } + public static int getThreadAllocSize(){ return 0; } + public static int getThreadExternalAllocCount(){ return 0; } + public static int getThreadExternalAllocSize(){ return 0; } + public static int getThreadGcInvocationCount(){ return 0; } + public static int setAllocationLimit(int p0){ return 0; } + public static int setGlobalAllocationLimit(int p0){ return 0; } + public static long getNativeHeapAllocatedSize(){ return 0; } + public static long getNativeHeapFreeSize(){ return 0; } + public static long getNativeHeapSize(){ return 0; } + public static long getPss(){ return 0; } + public static long threadCpuTimeNanos(){ return 0; } + public static void attachJvmtiAgent(String p0, String p1, ClassLoader p2){} + public static void changeDebugPort(int p0){} + public static void dumpHprofData(String p0){} + public static void enableEmulatorTraceOutput(){} + public static void getMemoryInfo(Debug.MemoryInfo p0){} + public static void printLoadedClasses(int p0){} + public static void resetAllCounts(){} + public static void resetGlobalAllocCount(){} + public static void resetGlobalAllocSize(){} + public static void resetGlobalClassInitCount(){} + public static void resetGlobalClassInitTime(){} + public static void resetGlobalExternalAllocCount(){} + public static void resetGlobalExternalAllocSize(){} + public static void resetGlobalExternalFreedCount(){} + public static void resetGlobalExternalFreedSize(){} + public static void resetGlobalFreedCount(){} + public static void resetGlobalFreedSize(){} + public static void resetGlobalGcInvocationCount(){} + public static void resetThreadAllocCount(){} + public static void resetThreadAllocSize(){} + public static void resetThreadExternalAllocCount(){} + public static void resetThreadExternalAllocSize(){} + public static void resetThreadGcInvocationCount(){} + public static void startAllocCounting(){} + public static void startMethodTracing(){} + public static void startMethodTracing(String p0){} + public static void startMethodTracing(String p0, int p1){} + public static void startMethodTracing(String p0, int p1, int p2){} + public static void startMethodTracingSampling(String p0, int p1, int p2){} + public static void startNativeTracing(){} + public static void stopAllocCounting(){} + public static void stopMethodTracing(){} + public static void stopNativeTracing(){} + public static void waitForDebugger(){} + static public class MemoryInfo implements Parcelable + { + public Map getMemoryStats(){ return null; } + public MemoryInfo(){} + public String getMemoryStat(String p0){ return null; } + public int dalvikPrivateDirty = 0; + public int dalvikPss = 0; + public int dalvikSharedDirty = 0; + public int describeContents(){ return 0; } + public int getTotalPrivateClean(){ return 0; } + public int getTotalPrivateDirty(){ return 0; } + public int getTotalPss(){ return 0; } + public int getTotalSharedClean(){ return 0; } + public int getTotalSharedDirty(){ return 0; } + public int getTotalSwappablePss(){ return 0; } + public int nativePrivateDirty = 0; + public int nativePss = 0; + public int nativeSharedDirty = 0; + public int otherPrivateDirty = 0; + public int otherPss = 0; + public int otherSharedDirty = 0; + public static Parcelable.Creator CREATOR = null; + public void readFromParcel(Parcel p0){} + public void writeToParcel(Parcel p0, int p1){} + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/os/Parcelable.java b/java/ql/test/stubs/google-android-9.0.0/android/os/Parcelable.java index 626061a6799..3aceab4de0a 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/os/Parcelable.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/os/Parcelable.java @@ -2,6 +2,7 @@ package android.os; +import android.app.Fragment; import android.os.Parcel; public interface Parcelable @@ -9,6 +10,10 @@ public interface Parcelable int describeContents(); static int CONTENTS_FILE_DESCRIPTOR = 0; static int PARCELABLE_WRITE_RETURN_VALUE = 0; + static public interface ClassLoaderCreator extends Parcelable.Creator + { + T createFromParcel(Parcel p0, ClassLoader p1); + } static public interface Creator { T createFromParcel(Parcel p0); diff --git a/java/ql/test/stubs/google-android-9.0.0/android/print/PageRange.java b/java/ql/test/stubs/google-android-9.0.0/android/print/PageRange.java new file mode 100644 index 00000000000..7e8a182c81d --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/print/PageRange.java @@ -0,0 +1,21 @@ +// Generated automatically from android.print.PageRange for testing purposes + +package android.print; + +import android.os.Parcel; +import android.os.Parcelable; + +public class PageRange implements Parcelable +{ + protected PageRange() {} + public PageRange(int p0, int p1){} + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int describeContents(){ return 0; } + public int getEnd(){ return 0; } + public int getStart(){ return 0; } + public int hashCode(){ return 0; } + public static PageRange ALL_PAGES = null; + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/print/PrintAttributes.java b/java/ql/test/stubs/google-android-9.0.0/android/print/PrintAttributes.java new file mode 100644 index 00000000000..82578cf9f76 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/print/PrintAttributes.java @@ -0,0 +1,162 @@ +// Generated automatically from android.print.PrintAttributes for testing purposes + +package android.print; + +import android.content.pm.PackageManager; +import android.os.Parcel; +import android.os.Parcelable; + +public class PrintAttributes implements Parcelable +{ + public PrintAttributes.Margins getMinMargins(){ return null; } + public PrintAttributes.MediaSize getMediaSize(){ return null; } + public PrintAttributes.Resolution getResolution(){ return null; } + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int describeContents(){ return 0; } + public int getColorMode(){ return 0; } + public int getDuplexMode(){ return 0; } + public int hashCode(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public static int COLOR_MODE_COLOR = 0; + public static int COLOR_MODE_MONOCHROME = 0; + public static int DUPLEX_MODE_LONG_EDGE = 0; + public static int DUPLEX_MODE_NONE = 0; + public static int DUPLEX_MODE_SHORT_EDGE = 0; + public void writeToParcel(Parcel p0, int p1){} + static public class Margins + { + protected Margins() {} + public Margins(int p0, int p1, int p2, int p3){} + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int getBottomMils(){ return 0; } + public int getLeftMils(){ return 0; } + public int getRightMils(){ return 0; } + public int getTopMils(){ return 0; } + public int hashCode(){ return 0; } + public static PrintAttributes.Margins NO_MARGINS = null; + } + static public class MediaSize + { + protected MediaSize() {} + public MediaSize(String p0, String p1, int p2, int p3){} + public PrintAttributes.MediaSize asLandscape(){ return null; } + public PrintAttributes.MediaSize asPortrait(){ return null; } + public String getId(){ return null; } + public String getLabel(PackageManager p0){ return null; } + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public boolean isPortrait(){ return false; } + public int getHeightMils(){ return 0; } + public int getWidthMils(){ return 0; } + public int hashCode(){ return 0; } + public static PrintAttributes.MediaSize ANSI_C = null; + public static PrintAttributes.MediaSize ANSI_D = null; + public static PrintAttributes.MediaSize ANSI_E = null; + public static PrintAttributes.MediaSize ANSI_F = null; + public static PrintAttributes.MediaSize ISO_A0 = null; + public static PrintAttributes.MediaSize ISO_A1 = null; + public static PrintAttributes.MediaSize ISO_A10 = null; + public static PrintAttributes.MediaSize ISO_A2 = null; + public static PrintAttributes.MediaSize ISO_A3 = null; + public static PrintAttributes.MediaSize ISO_A4 = null; + public static PrintAttributes.MediaSize ISO_A5 = null; + public static PrintAttributes.MediaSize ISO_A6 = null; + public static PrintAttributes.MediaSize ISO_A7 = null; + public static PrintAttributes.MediaSize ISO_A8 = null; + public static PrintAttributes.MediaSize ISO_A9 = null; + public static PrintAttributes.MediaSize ISO_B0 = null; + public static PrintAttributes.MediaSize ISO_B1 = null; + public static PrintAttributes.MediaSize ISO_B10 = null; + public static PrintAttributes.MediaSize ISO_B2 = null; + public static PrintAttributes.MediaSize ISO_B3 = null; + public static PrintAttributes.MediaSize ISO_B4 = null; + public static PrintAttributes.MediaSize ISO_B5 = null; + public static PrintAttributes.MediaSize ISO_B6 = null; + public static PrintAttributes.MediaSize ISO_B7 = null; + public static PrintAttributes.MediaSize ISO_B8 = null; + public static PrintAttributes.MediaSize ISO_B9 = null; + public static PrintAttributes.MediaSize ISO_C0 = null; + public static PrintAttributes.MediaSize ISO_C1 = null; + public static PrintAttributes.MediaSize ISO_C10 = null; + public static PrintAttributes.MediaSize ISO_C2 = null; + public static PrintAttributes.MediaSize ISO_C3 = null; + public static PrintAttributes.MediaSize ISO_C4 = null; + public static PrintAttributes.MediaSize ISO_C5 = null; + public static PrintAttributes.MediaSize ISO_C6 = null; + public static PrintAttributes.MediaSize ISO_C7 = null; + public static PrintAttributes.MediaSize ISO_C8 = null; + public static PrintAttributes.MediaSize ISO_C9 = null; + public static PrintAttributes.MediaSize JIS_B0 = null; + public static PrintAttributes.MediaSize JIS_B1 = null; + public static PrintAttributes.MediaSize JIS_B10 = null; + public static PrintAttributes.MediaSize JIS_B2 = null; + public static PrintAttributes.MediaSize JIS_B3 = null; + public static PrintAttributes.MediaSize JIS_B4 = null; + public static PrintAttributes.MediaSize JIS_B5 = null; + public static PrintAttributes.MediaSize JIS_B6 = null; + public static PrintAttributes.MediaSize JIS_B7 = null; + public static PrintAttributes.MediaSize JIS_B8 = null; + public static PrintAttributes.MediaSize JIS_B9 = null; + public static PrintAttributes.MediaSize JIS_EXEC = null; + public static PrintAttributes.MediaSize JPN_CHOU2 = null; + public static PrintAttributes.MediaSize JPN_CHOU3 = null; + public static PrintAttributes.MediaSize JPN_CHOU4 = null; + public static PrintAttributes.MediaSize JPN_HAGAKI = null; + public static PrintAttributes.MediaSize JPN_KAHU = null; + public static PrintAttributes.MediaSize JPN_KAKU2 = null; + public static PrintAttributes.MediaSize JPN_OE_PHOTO_L = null; + public static PrintAttributes.MediaSize JPN_OUFUKU = null; + public static PrintAttributes.MediaSize JPN_YOU4 = null; + public static PrintAttributes.MediaSize NA_ARCH_A = null; + public static PrintAttributes.MediaSize NA_ARCH_B = null; + public static PrintAttributes.MediaSize NA_ARCH_C = null; + public static PrintAttributes.MediaSize NA_ARCH_D = null; + public static PrintAttributes.MediaSize NA_ARCH_E = null; + public static PrintAttributes.MediaSize NA_ARCH_E1 = null; + public static PrintAttributes.MediaSize NA_FOOLSCAP = null; + public static PrintAttributes.MediaSize NA_GOVT_LETTER = null; + public static PrintAttributes.MediaSize NA_INDEX_3X5 = null; + public static PrintAttributes.MediaSize NA_INDEX_4X6 = null; + public static PrintAttributes.MediaSize NA_INDEX_5X8 = null; + public static PrintAttributes.MediaSize NA_JUNIOR_LEGAL = null; + public static PrintAttributes.MediaSize NA_LEDGER = null; + public static PrintAttributes.MediaSize NA_LEGAL = null; + public static PrintAttributes.MediaSize NA_LETTER = null; + public static PrintAttributes.MediaSize NA_MONARCH = null; + public static PrintAttributes.MediaSize NA_QUARTO = null; + public static PrintAttributes.MediaSize NA_SUPER_B = null; + public static PrintAttributes.MediaSize NA_TABLOID = null; + public static PrintAttributes.MediaSize OM_DAI_PA_KAI = null; + public static PrintAttributes.MediaSize OM_JUURO_KU_KAI = null; + public static PrintAttributes.MediaSize OM_PA_KAI = null; + public static PrintAttributes.MediaSize PRC_1 = null; + public static PrintAttributes.MediaSize PRC_10 = null; + public static PrintAttributes.MediaSize PRC_16K = null; + public static PrintAttributes.MediaSize PRC_2 = null; + public static PrintAttributes.MediaSize PRC_3 = null; + public static PrintAttributes.MediaSize PRC_4 = null; + public static PrintAttributes.MediaSize PRC_5 = null; + public static PrintAttributes.MediaSize PRC_6 = null; + public static PrintAttributes.MediaSize PRC_7 = null; + public static PrintAttributes.MediaSize PRC_8 = null; + public static PrintAttributes.MediaSize PRC_9 = null; + public static PrintAttributes.MediaSize ROC_16K = null; + public static PrintAttributes.MediaSize ROC_8K = null; + public static PrintAttributes.MediaSize UNKNOWN_LANDSCAPE = null; + public static PrintAttributes.MediaSize UNKNOWN_PORTRAIT = null; + } + static public class Resolution + { + protected Resolution() {} + public Resolution(String p0, String p1, int p2, int p3){} + public String getId(){ return null; } + public String getLabel(){ return null; } + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int getHorizontalDpi(){ return 0; } + public int getVerticalDpi(){ return 0; } + public int hashCode(){ return 0; } + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/print/PrintDocumentAdapter.java b/java/ql/test/stubs/google-android-9.0.0/android/print/PrintDocumentAdapter.java new file mode 100644 index 00000000000..bee84a4361f --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/print/PrintDocumentAdapter.java @@ -0,0 +1,32 @@ +// Generated automatically from android.print.PrintDocumentAdapter for testing purposes + +package android.print; + +import android.os.Bundle; +import android.os.CancellationSignal; +import android.os.ParcelFileDescriptor; +import android.print.PageRange; +import android.print.PrintAttributes; +import android.print.PrintDocumentInfo; + +abstract public class PrintDocumentAdapter +{ + abstract static public class LayoutResultCallback + { + public void onLayoutCancelled(){} + public void onLayoutFailed(CharSequence p0){} + public void onLayoutFinished(PrintDocumentInfo p0, boolean p1){} + } + abstract static public class WriteResultCallback + { + public void onWriteCancelled(){} + public void onWriteFailed(CharSequence p0){} + public void onWriteFinished(PageRange[] p0){} + } + public PrintDocumentAdapter(){} + public abstract void onLayout(PrintAttributes p0, PrintAttributes p1, CancellationSignal p2, PrintDocumentAdapter.LayoutResultCallback p3, Bundle p4); + public abstract void onWrite(PageRange[] p0, ParcelFileDescriptor p1, CancellationSignal p2, PrintDocumentAdapter.WriteResultCallback p3); + public static String EXTRA_PRINT_PREVIEW = null; + public void onFinish(){} + public void onStart(){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/print/PrintDocumentInfo.java b/java/ql/test/stubs/google-android-9.0.0/android/print/PrintDocumentInfo.java new file mode 100644 index 00000000000..bc42c86d4f2 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/print/PrintDocumentInfo.java @@ -0,0 +1,25 @@ +// Generated automatically from android.print.PrintDocumentInfo for testing purposes + +package android.print; + +import android.os.Parcel; +import android.os.Parcelable; + +public class PrintDocumentInfo implements Parcelable +{ + protected PrintDocumentInfo() {} + public String getName(){ return null; } + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int describeContents(){ return 0; } + public int getContentType(){ return 0; } + public int getPageCount(){ return 0; } + public int hashCode(){ return 0; } + public long getDataSize(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public static int CONTENT_TYPE_DOCUMENT = 0; + public static int CONTENT_TYPE_PHOTO = 0; + public static int CONTENT_TYPE_UNKNOWN = 0; + public static int PAGE_COUNT_UNKNOWN = 0; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/text/Spannable.java b/java/ql/test/stubs/google-android-9.0.0/android/text/Spannable.java index eb55f4778ef..f615e7328a5 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/text/Spannable.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/text/Spannable.java @@ -6,6 +6,12 @@ import android.text.Spanned; public interface Spannable extends Spanned { + static public class Factory + { + public Factory(){} + public Spannable newSpannable(CharSequence p0){ return null; } + public static Spannable.Factory getInstance(){ return null; } + } void removeSpan(Object p0); void setSpan(Object p0, int p1, int p2, int p3); } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/transition/PathMotion.java b/java/ql/test/stubs/google-android-9.0.0/android/transition/PathMotion.java new file mode 100644 index 00000000000..91b7a1cf016 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/transition/PathMotion.java @@ -0,0 +1,14 @@ +// Generated automatically from android.transition.PathMotion for testing purposes + +package android.transition; + +import android.content.Context; +import android.graphics.Path; +import android.util.AttributeSet; + +abstract public class PathMotion +{ + public PathMotion(){} + public PathMotion(Context p0, AttributeSet p1){} + public abstract Path getPath(float p0, float p1, float p2, float p3); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/transition/Scene.java b/java/ql/test/stubs/google-android-9.0.0/android/transition/Scene.java new file mode 100644 index 00000000000..57fe7cc104e --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/transition/Scene.java @@ -0,0 +1,22 @@ +// Generated automatically from android.transition.Scene for testing purposes + +package android.transition; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; + +public class Scene +{ + protected Scene() {} + public Scene(ViewGroup p0){} + public Scene(ViewGroup p0, View p1){} + public Scene(ViewGroup p0, ViewGroup p1){} + public ViewGroup getSceneRoot(){ return null; } + public static Scene getCurrentScene(ViewGroup p0){ return null; } + public static Scene getSceneForLayout(ViewGroup p0, int p1, Context p2){ return null; } + public void enter(){} + public void exit(){} + public void setEnterAction(Runnable p0){} + public void setExitAction(Runnable p0){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/transition/Transition.java b/java/ql/test/stubs/google-android-9.0.0/android/transition/Transition.java new file mode 100644 index 00000000000..8adeae42c36 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/transition/Transition.java @@ -0,0 +1,83 @@ +// Generated automatically from android.transition.Transition for testing purposes + +package android.transition; + +import android.animation.Animator; +import android.animation.TimeInterpolator; +import android.content.Context; +import android.graphics.Rect; +import android.transition.PathMotion; +import android.transition.TransitionPropagation; +import android.transition.TransitionValues; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import java.util.List; + +abstract public class Transition implements Cloneable +{ + abstract static public class EpicenterCallback + { + public EpicenterCallback(){} + public abstract Rect onGetEpicenter(Transition p0); + } + public Animator createAnimator(ViewGroup p0, TransitionValues p1, TransitionValues p2){ return null; } + public List getTargetTypes(){ return null; } + public List getTargetIds(){ return null; } + public List getTargetNames(){ return null; } + public List getTargets(){ return null; } + public PathMotion getPathMotion(){ return null; } + public Rect getEpicenter(){ return null; } + public String getName(){ return null; } + public String toString(){ return null; } + public String[] getTransitionProperties(){ return null; } + public TimeInterpolator getInterpolator(){ return null; } + public Transition addListener(Transition.TransitionListener p0){ return null; } + public Transition addTarget(Class p0){ return null; } + public Transition addTarget(String p0){ return null; } + public Transition addTarget(View p0){ return null; } + public Transition addTarget(int p0){ return null; } + public Transition clone(){ return null; } + public Transition excludeChildren(Class p0, boolean p1){ return null; } + public Transition excludeChildren(View p0, boolean p1){ return null; } + public Transition excludeChildren(int p0, boolean p1){ return null; } + public Transition excludeTarget(Class p0, boolean p1){ return null; } + public Transition excludeTarget(String p0, boolean p1){ return null; } + public Transition excludeTarget(View p0, boolean p1){ return null; } + public Transition excludeTarget(int p0, boolean p1){ return null; } + public Transition removeListener(Transition.TransitionListener p0){ return null; } + public Transition removeTarget(Class p0){ return null; } + public Transition removeTarget(String p0){ return null; } + public Transition removeTarget(View p0){ return null; } + public Transition removeTarget(int p0){ return null; } + public Transition setDuration(long p0){ return null; } + public Transition setInterpolator(TimeInterpolator p0){ return null; } + public Transition setStartDelay(long p0){ return null; } + public Transition(){} + public Transition(Context p0, AttributeSet p1){} + public Transition.EpicenterCallback getEpicenterCallback(){ return null; } + public TransitionPropagation getPropagation(){ return null; } + public TransitionValues getTransitionValues(View p0, boolean p1){ return null; } + public abstract void captureEndValues(TransitionValues p0); + public abstract void captureStartValues(TransitionValues p0); + public boolean canRemoveViews(){ return false; } + public boolean isTransitionRequired(TransitionValues p0, TransitionValues p1){ return false; } + public long getDuration(){ return 0; } + public long getStartDelay(){ return 0; } + public static int MATCH_ID = 0; + public static int MATCH_INSTANCE = 0; + public static int MATCH_ITEM_ID = 0; + public static int MATCH_NAME = 0; + public void setEpicenterCallback(Transition.EpicenterCallback p0){} + public void setMatchOrder(int... p0){} + public void setPathMotion(PathMotion p0){} + public void setPropagation(TransitionPropagation p0){} + static public interface TransitionListener + { + void onTransitionCancel(Transition p0); + void onTransitionEnd(Transition p0); + void onTransitionPause(Transition p0); + void onTransitionResume(Transition p0); + void onTransitionStart(Transition p0); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionManager.java b/java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionManager.java new file mode 100644 index 00000000000..79a91ccabba --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionManager.java @@ -0,0 +1,20 @@ +// Generated automatically from android.transition.TransitionManager for testing purposes + +package android.transition; + +import android.transition.Scene; +import android.transition.Transition; +import android.view.ViewGroup; + +public class TransitionManager +{ + public TransitionManager(){} + public static void beginDelayedTransition(ViewGroup p0){} + public static void beginDelayedTransition(ViewGroup p0, Transition p1){} + public static void endTransitions(ViewGroup p0){} + public static void go(Scene p0){} + public static void go(Scene p0, Transition p1){} + public void setTransition(Scene p0, Scene p1, Transition p2){} + public void setTransition(Scene p0, Transition p1){} + public void transitionTo(Scene p0){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionPropagation.java b/java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionPropagation.java new file mode 100644 index 00000000000..0101e4f5cd2 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionPropagation.java @@ -0,0 +1,15 @@ +// Generated automatically from android.transition.TransitionPropagation for testing purposes + +package android.transition; + +import android.transition.Transition; +import android.transition.TransitionValues; +import android.view.ViewGroup; + +abstract public class TransitionPropagation +{ + public TransitionPropagation(){} + public abstract String[] getPropagationProperties(); + public abstract long getStartDelay(ViewGroup p0, Transition p1, TransitionValues p2, TransitionValues p3); + public abstract void captureValues(TransitionValues p0); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionValues.java b/java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionValues.java new file mode 100644 index 00000000000..27cbfe690f5 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/transition/TransitionValues.java @@ -0,0 +1,17 @@ +// Generated automatically from android.transition.TransitionValues for testing purposes + +package android.transition; + +import android.view.View; +import java.util.Map; + +public class TransitionValues +{ + public String toString(){ return null; } + public TransitionValues(){} + public TransitionValues(View p0){} + public View view = null; + public boolean equals(Object p0){ return false; } + public final Map values = null; + public int hashCode(){ return 0; } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/AttachedSurfaceControl.java b/java/ql/test/stubs/google-android-9.0.0/android/view/AttachedSurfaceControl.java index 7ac18735ee3..e4140572b6a 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/view/AttachedSurfaceControl.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/AttachedSurfaceControl.java @@ -8,4 +8,11 @@ public interface AttachedSurfaceControl { SurfaceControl.Transaction buildReparentTransaction(SurfaceControl p0); boolean applyTransactionOnDraw(SurfaceControl.Transaction p0); + default int getBufferTransformHint(){ return 0; } + default void addOnBufferTransformHintChangedListener(AttachedSurfaceControl.OnBufferTransformHintChangedListener p0){} + default void removeOnBufferTransformHintChangedListener(AttachedSurfaceControl.OnBufferTransformHintChangedListener p0){} + static public interface OnBufferTransformHintChangedListener + { + void onBufferTransformHintChanged(int p0); + } } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/DragAndDropPermissions.java b/java/ql/test/stubs/google-android-9.0.0/android/view/DragAndDropPermissions.java new file mode 100644 index 00000000000..c0b47133d07 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/DragAndDropPermissions.java @@ -0,0 +1,15 @@ +// Generated automatically from android.view.DragAndDropPermissions for testing purposes + +package android.view; + +import android.os.Parcel; +import android.os.Parcelable; + +public class DragAndDropPermissions implements Parcelable +{ + protected DragAndDropPermissions() {} + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void release(){} + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/FrameMetrics.java b/java/ql/test/stubs/google-android-9.0.0/android/view/FrameMetrics.java new file mode 100644 index 00000000000..98c91865a80 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/FrameMetrics.java @@ -0,0 +1,25 @@ +// Generated automatically from android.view.FrameMetrics for testing purposes + +package android.view; + + +public class FrameMetrics +{ + protected FrameMetrics() {} + public FrameMetrics(FrameMetrics p0){} + public long getMetric(int p0){ return 0; } + public static int ANIMATION_DURATION = 0; + public static int COMMAND_ISSUE_DURATION = 0; + public static int DEADLINE = 0; + public static int DRAW_DURATION = 0; + public static int FIRST_DRAW_FRAME = 0; + public static int GPU_DURATION = 0; + public static int INPUT_HANDLING_DURATION = 0; + public static int INTENDED_VSYNC_TIMESTAMP = 0; + public static int LAYOUT_MEASURE_DURATION = 0; + public static int SWAP_BUFFERS_DURATION = 0; + public static int SYNC_DURATION = 0; + public static int TOTAL_DURATION = 0; + public static int UNKNOWN_DELAY_DURATION = 0; + public static int VSYNC_TIMESTAMP = 0; +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/InputQueue.java b/java/ql/test/stubs/google-android-9.0.0/android/view/InputQueue.java new file mode 100644 index 00000000000..083a7bdb4b1 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/InputQueue.java @@ -0,0 +1,14 @@ +// Generated automatically from android.view.InputQueue for testing purposes + +package android.view; + + +public class InputQueue +{ + protected void finalize(){} + static public interface Callback + { + void onInputQueueCreated(InputQueue p0); + void onInputQueueDestroyed(InputQueue p0); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/KeyboardShortcutGroup.java b/java/ql/test/stubs/google-android-9.0.0/android/view/KeyboardShortcutGroup.java new file mode 100644 index 00000000000..13f1cdaddc2 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/KeyboardShortcutGroup.java @@ -0,0 +1,21 @@ +// Generated automatically from android.view.KeyboardShortcutGroup for testing purposes + +package android.view; + +import android.os.Parcel; +import android.os.Parcelable; +import android.view.KeyboardShortcutInfo; +import java.util.List; + +public class KeyboardShortcutGroup implements Parcelable +{ + protected KeyboardShortcutGroup() {} + public CharSequence getLabel(){ return null; } + public KeyboardShortcutGroup(CharSequence p0){} + public KeyboardShortcutGroup(CharSequence p0, List p1){} + public List getItems(){ return null; } + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void addItem(KeyboardShortcutInfo p0){} + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/KeyboardShortcutInfo.java b/java/ql/test/stubs/google-android-9.0.0/android/view/KeyboardShortcutInfo.java new file mode 100644 index 00000000000..a6d682ce01f --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/KeyboardShortcutInfo.java @@ -0,0 +1,20 @@ +// Generated automatically from android.view.KeyboardShortcutInfo for testing purposes + +package android.view; + +import android.os.Parcel; +import android.os.Parcelable; + +public class KeyboardShortcutInfo implements Parcelable +{ + protected KeyboardShortcutInfo() {} + public CharSequence getLabel(){ return null; } + public KeyboardShortcutInfo(CharSequence p0, char p1, int p2){} + public KeyboardShortcutInfo(CharSequence p0, int p1, int p2){} + public char getBaseCharacter(){ return '0'; } + public int describeContents(){ return 0; } + public int getKeycode(){ return 0; } + public int getModifiers(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/SearchEvent.java b/java/ql/test/stubs/google-android-9.0.0/android/view/SearchEvent.java new file mode 100644 index 00000000000..064261513cf --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/SearchEvent.java @@ -0,0 +1,12 @@ +// Generated automatically from android.view.SearchEvent for testing purposes + +package android.view; + +import android.view.InputDevice; + +public class SearchEvent +{ + protected SearchEvent() {} + public InputDevice getInputDevice(){ return null; } + public SearchEvent(InputDevice p0){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/SurfaceControl.java b/java/ql/test/stubs/google-android-9.0.0/android/view/SurfaceControl.java index 6feff4a32c2..8ea03128948 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/view/SurfaceControl.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/SurfaceControl.java @@ -14,6 +14,12 @@ public class SurfaceControl implements Parcelable public boolean isValid(){ return false; } public int describeContents(){ return 0; } public static Parcelable.Creator CREATOR = null; + public static int BUFFER_TRANSFORM_IDENTITY = 0; + public static int BUFFER_TRANSFORM_MIRROR_HORIZONTAL = 0; + public static int BUFFER_TRANSFORM_MIRROR_VERTICAL = 0; + public static int BUFFER_TRANSFORM_ROTATE_180 = 0; + public static int BUFFER_TRANSFORM_ROTATE_270 = 0; + public static int BUFFER_TRANSFORM_ROTATE_90 = 0; public void readFromParcel(Parcel p0){} public void release(){} public void writeToParcel(Parcel p0, int p1){} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/SurfaceHolder.java b/java/ql/test/stubs/google-android-9.0.0/android/view/SurfaceHolder.java new file mode 100644 index 00000000000..561f640b706 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/SurfaceHolder.java @@ -0,0 +1,40 @@ +// Generated automatically from android.view.SurfaceHolder for testing purposes + +package android.view; + +import android.graphics.Canvas; +import android.graphics.Rect; +import android.view.Surface; + +public interface SurfaceHolder +{ + Canvas lockCanvas(); + Canvas lockCanvas(Rect p0); + Rect getSurfaceFrame(); + Surface getSurface(); + boolean isCreating(); + default Canvas lockHardwareCanvas(){ return null; } + static int SURFACE_TYPE_GPU = 0; + static int SURFACE_TYPE_HARDWARE = 0; + static int SURFACE_TYPE_NORMAL = 0; + static int SURFACE_TYPE_PUSH_BUFFERS = 0; + static public interface Callback + { + void surfaceChanged(SurfaceHolder p0, int p1, int p2, int p3); + void surfaceCreated(SurfaceHolder p0); + void surfaceDestroyed(SurfaceHolder p0); + } + static public interface Callback2 extends SurfaceHolder.Callback + { + default void surfaceRedrawNeededAsync(SurfaceHolder p0, Runnable p1){} + void surfaceRedrawNeeded(SurfaceHolder p0); + } + void addCallback(SurfaceHolder.Callback p0); + void removeCallback(SurfaceHolder.Callback p0); + void setFixedSize(int p0, int p1); + void setFormat(int p0); + void setKeepScreenOn(boolean p0); + void setSizeFromLayout(); + void setType(int p0); + void unlockCanvasAndPost(Canvas p0); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/View.java b/java/ql/test/stubs/google-android-9.0.0/android/view/View.java index 2004c624c6e..e91fa287eb2 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/view/View.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/View.java @@ -525,6 +525,7 @@ public class View implements AccessibilityEventSource, Drawable.Callback, KeyEve public static int AUTOFILL_TYPE_NONE = 0; public static int AUTOFILL_TYPE_TEXT = 0; public static int AUTOFILL_TYPE_TOGGLE = 0; + public static int DRAG_FLAG_ACCESSIBILITY_ACTION = 0; public static int DRAG_FLAG_GLOBAL = 0; public static int DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION = 0; public static int DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION = 0; diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/ViewGroup.java b/java/ql/test/stubs/google-android-9.0.0/android/view/ViewGroup.java index 7e05f4b3781..a90504337ff 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/view/ViewGroup.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/ViewGroup.java @@ -258,6 +258,27 @@ abstract public class ViewGroup extends View implements ViewManager, ViewParent public static int WRAP_CONTENT = 0; public void resolveLayoutDirection(int p0){} } + static public class MarginLayoutParams extends ViewGroup.LayoutParams + { + protected MarginLayoutParams() {} + public MarginLayoutParams(Context p0, AttributeSet p1){} + public MarginLayoutParams(ViewGroup.LayoutParams p0){} + public MarginLayoutParams(ViewGroup.MarginLayoutParams p0){} + public MarginLayoutParams(int p0, int p1){} + public boolean isMarginRelative(){ return false; } + public int bottomMargin = 0; + public int getLayoutDirection(){ return 0; } + public int getMarginEnd(){ return 0; } + public int getMarginStart(){ return 0; } + public int leftMargin = 0; + public int rightMargin = 0; + public int topMargin = 0; + public void resolveLayoutDirection(int p0){} + public void setLayoutDirection(int p0){} + public void setMarginEnd(int p0){} + public void setMarginStart(int p0){} + public void setMargins(int p0, int p1, int p2, int p3){} + } static public interface OnHierarchyChangeListener { void onChildViewAdded(View p0, View p1); diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/Window.java b/java/ql/test/stubs/google-android-9.0.0/android/view/Window.java new file mode 100644 index 00000000000..13f5e79ca4a --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/Window.java @@ -0,0 +1,251 @@ +// Generated automatically from android.view.Window for testing purposes + +package android.view; + +import android.content.Context; +import android.content.res.Configuration; +import android.content.res.TypedArray; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.media.session.MediaController; +import android.net.Uri; +import android.os.Bundle; +import android.os.Handler; +import android.os.IBinder; +import android.transition.Scene; +import android.transition.Transition; +import android.transition.TransitionManager; +import android.view.ActionMode; +import android.view.AttachedSurfaceControl; +import android.view.FrameMetrics; +import android.view.InputEvent; +import android.view.InputQueue; +import android.view.KeyEvent; +import android.view.KeyboardShortcutGroup; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.ScrollCaptureCallback; +import android.view.SearchEvent; +import android.view.SurfaceHolder; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowInsetsController; +import android.view.WindowManager; +import android.view.accessibility.AccessibilityEvent; +import java.util.List; + +abstract public class Window +{ + protected Window() {} + protected abstract void onActive(); + protected final boolean hasSoftInputMode(){ return false; } + protected final int getFeatures(){ return 0; } + protected final int getForcedWindowFlags(){ return 0; } + protected final int getLocalFeatures(){ return 0; } + protected static int DEFAULT_FEATURES = 0; + protected void setDefaultWindowFormat(int p0){} + public T findViewById(int p0){ return null; } + public AttachedSurfaceControl getRootSurfaceControl(){ return null; } + public List getSystemGestureExclusionRects(){ return null; } + public MediaController getMediaController(){ return null; } + public Scene getContentScene(){ return null; } + public Transition getEnterTransition(){ return null; } + public Transition getExitTransition(){ return null; } + public Transition getReenterTransition(){ return null; } + public Transition getReturnTransition(){ return null; } + public Transition getSharedElementEnterTransition(){ return null; } + public Transition getSharedElementExitTransition(){ return null; } + public Transition getSharedElementReenterTransition(){ return null; } + public Transition getSharedElementReturnTransition(){ return null; } + public TransitionManager getTransitionManager(){ return null; } + public Window(Context p0){} + public WindowInsetsController getInsetsController(){ return null; } + public WindowManager getWindowManager(){ return null; } + public abstract Bundle saveHierarchyState(); + public abstract LayoutInflater getLayoutInflater(); + public abstract View getCurrentFocus(); + public abstract View getDecorView(); + public abstract View peekDecorView(); + public abstract boolean isFloating(); + public abstract boolean isShortcutKey(int p0, KeyEvent p1); + public abstract boolean performContextMenuIdentifierAction(int p0, int p1); + public abstract boolean performPanelIdentifierAction(int p0, int p1, int p2); + public abstract boolean performPanelShortcut(int p0, int p1, KeyEvent p2, int p3); + public abstract boolean superDispatchGenericMotionEvent(MotionEvent p0); + public abstract boolean superDispatchKeyEvent(KeyEvent p0); + public abstract boolean superDispatchKeyShortcutEvent(KeyEvent p0); + public abstract boolean superDispatchTouchEvent(MotionEvent p0); + public abstract boolean superDispatchTrackballEvent(MotionEvent p0); + public abstract int getNavigationBarColor(); + public abstract int getStatusBarColor(); + public abstract int getVolumeControlStream(); + public abstract void addContentView(View p0, ViewGroup.LayoutParams p1); + public abstract void closeAllPanels(); + public abstract void closePanel(int p0); + public abstract void invalidatePanelMenu(int p0); + public abstract void onConfigurationChanged(Configuration p0); + public abstract void openPanel(int p0, KeyEvent p1); + public abstract void restoreHierarchyState(Bundle p0); + public abstract void setBackgroundDrawable(Drawable p0); + public abstract void setChildDrawable(int p0, Drawable p1); + public abstract void setChildInt(int p0, int p1); + public abstract void setContentView(View p0); + public abstract void setContentView(View p0, ViewGroup.LayoutParams p1); + public abstract void setContentView(int p0); + public abstract void setDecorCaptionShade(int p0); + public abstract void setFeatureDrawable(int p0, Drawable p1); + public abstract void setFeatureDrawableAlpha(int p0, int p1); + public abstract void setFeatureDrawableResource(int p0, int p1); + public abstract void setFeatureDrawableUri(int p0, Uri p1); + public abstract void setFeatureInt(int p0, int p1); + public abstract void setNavigationBarColor(int p0); + public abstract void setResizingCaptionDrawable(Drawable p0); + public abstract void setStatusBarColor(int p0); + public abstract void setTitle(CharSequence p0); + public abstract void setTitleColor(int p0); + public abstract void setVolumeControlStream(int p0); + public abstract void takeInputQueue(InputQueue.Callback p0); + public abstract void takeKeyEvents(boolean p0); + public abstract void takeSurface(SurfaceHolder.Callback2 p0); + public abstract void togglePanel(int p0, KeyEvent p1); + public boolean getAllowEnterTransitionOverlap(){ return false; } + public boolean getAllowReturnTransitionOverlap(){ return false; } + public boolean getSharedElementsUseOverlay(){ return false; } + public boolean hasFeature(int p0){ return false; } + public boolean isNavigationBarContrastEnforced(){ return false; } + public boolean isStatusBarContrastEnforced(){ return false; } + public boolean isWideColorGamut(){ return false; } + public boolean requestFeature(int p0){ return false; } + public final T requireViewById(int p0){ return null; } + public final Context getContext(){ return null; } + public final TypedArray getWindowStyle(){ return null; } + public final Window getContainer(){ return null; } + public final Window.Callback getCallback(){ return null; } + public final WindowManager.LayoutParams getAttributes(){ return null; } + public final boolean hasChildren(){ return false; } + public final boolean isActive(){ return false; } + public final void addOnFrameMetricsAvailableListener(Window.OnFrameMetricsAvailableListener p0, Handler p1){} + public final void makeActive(){} + public final void removeOnFrameMetricsAvailableListener(Window.OnFrameMetricsAvailableListener p0){} + public final void setHideOverlayWindows(boolean p0){} + public final void setRestrictedCaptionAreaListener(Window.OnRestrictedCaptionAreaChangedListener p0){} + public int getColorMode(){ return 0; } + public int getNavigationBarDividerColor(){ return 0; } + public long getTransitionBackgroundFadeDuration(){ return 0; } + public static String NAVIGATION_BAR_BACKGROUND_TRANSITION_NAME = null; + public static String STATUS_BAR_BACKGROUND_TRANSITION_NAME = null; + public static int DECOR_CAPTION_SHADE_AUTO = 0; + public static int DECOR_CAPTION_SHADE_DARK = 0; + public static int DECOR_CAPTION_SHADE_LIGHT = 0; + public static int FEATURE_ACTION_BAR = 0; + public static int FEATURE_ACTION_BAR_OVERLAY = 0; + public static int FEATURE_ACTION_MODE_OVERLAY = 0; + public static int FEATURE_ACTIVITY_TRANSITIONS = 0; + public static int FEATURE_CONTENT_TRANSITIONS = 0; + public static int FEATURE_CONTEXT_MENU = 0; + public static int FEATURE_CUSTOM_TITLE = 0; + public static int FEATURE_INDETERMINATE_PROGRESS = 0; + public static int FEATURE_LEFT_ICON = 0; + public static int FEATURE_NO_TITLE = 0; + public static int FEATURE_OPTIONS_PANEL = 0; + public static int FEATURE_PROGRESS = 0; + public static int FEATURE_RIGHT_ICON = 0; + public static int FEATURE_SWIPE_TO_DISMISS = 0; + public static int ID_ANDROID_CONTENT = 0; + public static int PROGRESS_END = 0; + public static int PROGRESS_INDETERMINATE_OFF = 0; + public static int PROGRESS_INDETERMINATE_ON = 0; + public static int PROGRESS_SECONDARY_END = 0; + public static int PROGRESS_SECONDARY_START = 0; + public static int PROGRESS_START = 0; + public static int PROGRESS_VISIBILITY_OFF = 0; + public static int PROGRESS_VISIBILITY_ON = 0; + public static int getDefaultFeatures(Context p0){ return 0; } + public void addFlags(int p0){} + public void clearFlags(int p0){} + public void injectInputEvent(InputEvent p0){} + public void registerScrollCaptureCallback(ScrollCaptureCallback p0){} + public void setAllowEnterTransitionOverlap(boolean p0){} + public void setAllowReturnTransitionOverlap(boolean p0){} + public void setAttributes(WindowManager.LayoutParams p0){} + public void setBackgroundBlurRadius(int p0){} + public void setBackgroundDrawableResource(int p0){} + public void setCallback(Window.Callback p0){} + public void setClipToOutline(boolean p0){} + public void setColorMode(int p0){} + public void setContainer(Window p0){} + public void setDecorFitsSystemWindows(boolean p0){} + public void setDimAmount(float p0){} + public void setElevation(float p0){} + public void setEnterTransition(Transition p0){} + public void setExitTransition(Transition p0){} + public void setFlags(int p0, int p1){} + public void setFormat(int p0){} + public void setGravity(int p0){} + public void setIcon(int p0){} + public void setLayout(int p0, int p1){} + public void setLocalFocus(boolean p0, boolean p1){} + public void setLogo(int p0){} + public void setMediaController(MediaController p0){} + public void setNavigationBarContrastEnforced(boolean p0){} + public void setNavigationBarDividerColor(int p0){} + public void setPreferMinimalPostProcessing(boolean p0){} + public void setReenterTransition(Transition p0){} + public void setReturnTransition(Transition p0){} + public void setSharedElementEnterTransition(Transition p0){} + public void setSharedElementExitTransition(Transition p0){} + public void setSharedElementReenterTransition(Transition p0){} + public void setSharedElementReturnTransition(Transition p0){} + public void setSharedElementsUseOverlay(boolean p0){} + public void setSoftInputMode(int p0){} + public void setStatusBarContrastEnforced(boolean p0){} + public void setSustainedPerformanceMode(boolean p0){} + public void setSystemGestureExclusionRects(List p0){} + public void setTransitionBackgroundFadeDuration(long p0){} + public void setTransitionManager(TransitionManager p0){} + public void setType(int p0){} + public void setUiOptions(int p0){} + public void setUiOptions(int p0, int p1){} + public void setWindowAnimations(int p0){} + public void setWindowManager(WindowManager p0, IBinder p1, String p2){} + public void setWindowManager(WindowManager p0, IBinder p1, String p2, boolean p3){} + public void unregisterScrollCaptureCallback(ScrollCaptureCallback p0){} + static public interface Callback + { + ActionMode onWindowStartingActionMode(ActionMode.Callback p0); + ActionMode onWindowStartingActionMode(ActionMode.Callback p0, int p1); + View onCreatePanelView(int p0); + boolean dispatchGenericMotionEvent(MotionEvent p0); + boolean dispatchKeyEvent(KeyEvent p0); + boolean dispatchKeyShortcutEvent(KeyEvent p0); + boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent p0); + boolean dispatchTouchEvent(MotionEvent p0); + boolean dispatchTrackballEvent(MotionEvent p0); + boolean onCreatePanelMenu(int p0, Menu p1); + boolean onMenuItemSelected(int p0, MenuItem p1); + boolean onMenuOpened(int p0, Menu p1); + boolean onPreparePanel(int p0, View p1, Menu p2); + boolean onSearchRequested(); + boolean onSearchRequested(SearchEvent p0); + default void onPointerCaptureChanged(boolean p0){} + default void onProvideKeyboardShortcuts(List p0, Menu p1, int p2){} + void onActionModeFinished(ActionMode p0); + void onActionModeStarted(ActionMode p0); + void onAttachedToWindow(); + void onContentChanged(); + void onDetachedFromWindow(); + void onPanelClosed(int p0, Menu p1); + void onWindowAttributesChanged(WindowManager.LayoutParams p0); + void onWindowFocusChanged(boolean p0); + } + static public interface OnFrameMetricsAvailableListener + { + void onFrameMetricsAvailable(Window p0, FrameMetrics p1, int p2); + } + static public interface OnRestrictedCaptionAreaChangedListener + { + void onRestrictedCaptionAreaChanged(Rect p0); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/WindowManager.java b/java/ql/test/stubs/google-android-9.0.0/android/view/WindowManager.java new file mode 100644 index 00000000000..ea0c98476ab --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/WindowManager.java @@ -0,0 +1,183 @@ +// Generated automatically from android.view.WindowManager for testing purposes + +package android.view; + +import android.os.IBinder; +import android.os.Parcel; +import android.os.Parcelable; +import android.view.Display; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewManager; +import android.view.WindowMetrics; +import java.util.concurrent.Executor; +import java.util.function.Consumer; + +public interface WindowManager extends ViewManager +{ + Display getDefaultDisplay(); + default WindowMetrics getCurrentWindowMetrics(){ return null; } + default WindowMetrics getMaximumWindowMetrics(){ return null; } + default boolean isCrossWindowBlurEnabled(){ return false; } + default void addCrossWindowBlurEnabledListener(Consumer p0){} + default void addCrossWindowBlurEnabledListener(Executor p0, Consumer p1){} + default void removeCrossWindowBlurEnabledListener(Consumer p0){} + static public class LayoutParams extends ViewGroup.LayoutParams implements Parcelable + { + public IBinder token = null; + public LayoutParams(){} + public LayoutParams(Parcel p0){} + public LayoutParams(int p0){} + public LayoutParams(int p0, int p1){} + public LayoutParams(int p0, int p1, int p2){} + public LayoutParams(int p0, int p1, int p2, int p3, int p4){} + public LayoutParams(int p0, int p1, int p2, int p3, int p4, int p5, int p6){} + public String debug(String p0){ return null; } + public String packageName = null; + public String toString(){ return null; } + public boolean isFitInsetsIgnoringVisibility(){ return false; } + public boolean preferMinimalPostProcessing = false; + public final CharSequence getTitle(){ return null; } + public final int copyFrom(WindowManager.LayoutParams p0){ return 0; } + public final void setTitle(CharSequence p0){} + public float alpha = 0; + public float buttonBrightness = 0; + public float dimAmount = 0; + public float horizontalMargin = 0; + public float horizontalWeight = 0; + public float preferredRefreshRate = 0; + public float screenBrightness = 0; + public float verticalMargin = 0; + public float verticalWeight = 0; + public int describeContents(){ return 0; } + public int flags = 0; + public int format = 0; + public int getBlurBehindRadius(){ return 0; } + public int getColorMode(){ return 0; } + public int getFitInsetsSides(){ return 0; } + public int getFitInsetsTypes(){ return 0; } + public int gravity = 0; + public int layoutInDisplayCutoutMode = 0; + public int memoryType = 0; + public int preferredDisplayModeId = 0; + public int rotationAnimation = 0; + public int screenOrientation = 0; + public int softInputMode = 0; + public int systemUiVisibility = 0; + public int type = 0; + public int windowAnimations = 0; + public int x = 0; + public int y = 0; + public static Parcelable.Creator CREATOR = null; + public static boolean mayUseInputMethod(int p0){ return false; } + public static float BRIGHTNESS_OVERRIDE_FULL = 0; + public static float BRIGHTNESS_OVERRIDE_NONE = 0; + public static float BRIGHTNESS_OVERRIDE_OFF = 0; + public static int ALPHA_CHANGED = 0; + public static int ANIMATION_CHANGED = 0; + public static int DIM_AMOUNT_CHANGED = 0; + public static int FIRST_APPLICATION_WINDOW = 0; + public static int FIRST_SUB_WINDOW = 0; + public static int FIRST_SYSTEM_WINDOW = 0; + public static int FLAGS_CHANGED = 0; + public static int FLAG_ALLOW_LOCK_WHILE_SCREEN_ON = 0; + public static int FLAG_ALT_FOCUSABLE_IM = 0; + public static int FLAG_BLUR_BEHIND = 0; + public static int FLAG_DIM_BEHIND = 0; + public static int FLAG_DISMISS_KEYGUARD = 0; + public static int FLAG_DITHER = 0; + public static int FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS = 0; + public static int FLAG_FORCE_NOT_FULLSCREEN = 0; + public static int FLAG_FULLSCREEN = 0; + public static int FLAG_HARDWARE_ACCELERATED = 0; + public static int FLAG_IGNORE_CHEEK_PRESSES = 0; + public static int FLAG_KEEP_SCREEN_ON = 0; + public static int FLAG_LAYOUT_ATTACHED_IN_DECOR = 0; + public static int FLAG_LAYOUT_INSET_DECOR = 0; + public static int FLAG_LAYOUT_IN_OVERSCAN = 0; + public static int FLAG_LAYOUT_IN_SCREEN = 0; + public static int FLAG_LAYOUT_NO_LIMITS = 0; + public static int FLAG_LOCAL_FOCUS_MODE = 0; + public static int FLAG_NOT_FOCUSABLE = 0; + public static int FLAG_NOT_TOUCHABLE = 0; + public static int FLAG_NOT_TOUCH_MODAL = 0; + public static int FLAG_SCALED = 0; + public static int FLAG_SECURE = 0; + public static int FLAG_SHOW_WALLPAPER = 0; + public static int FLAG_SHOW_WHEN_LOCKED = 0; + public static int FLAG_SPLIT_TOUCH = 0; + public static int FLAG_TOUCHABLE_WHEN_WAKING = 0; + public static int FLAG_TRANSLUCENT_NAVIGATION = 0; + public static int FLAG_TRANSLUCENT_STATUS = 0; + public static int FLAG_TURN_SCREEN_ON = 0; + public static int FLAG_WATCH_OUTSIDE_TOUCH = 0; + public static int FORMAT_CHANGED = 0; + public static int LAST_APPLICATION_WINDOW = 0; + public static int LAST_SUB_WINDOW = 0; + public static int LAST_SYSTEM_WINDOW = 0; + public static int LAYOUT_CHANGED = 0; + public static int LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS = 0; + public static int LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT = 0; + public static int LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER = 0; + public static int LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES = 0; + public static int MEMORY_TYPE_CHANGED = 0; + public static int MEMORY_TYPE_GPU = 0; + public static int MEMORY_TYPE_HARDWARE = 0; + public static int MEMORY_TYPE_NORMAL = 0; + public static int MEMORY_TYPE_PUSH_BUFFERS = 0; + public static int ROTATION_ANIMATION_CHANGED = 0; + public static int ROTATION_ANIMATION_CROSSFADE = 0; + public static int ROTATION_ANIMATION_JUMPCUT = 0; + public static int ROTATION_ANIMATION_ROTATE = 0; + public static int ROTATION_ANIMATION_SEAMLESS = 0; + public static int SCREEN_BRIGHTNESS_CHANGED = 0; + public static int SCREEN_ORIENTATION_CHANGED = 0; + public static int SOFT_INPUT_ADJUST_NOTHING = 0; + public static int SOFT_INPUT_ADJUST_PAN = 0; + public static int SOFT_INPUT_ADJUST_RESIZE = 0; + public static int SOFT_INPUT_ADJUST_UNSPECIFIED = 0; + public static int SOFT_INPUT_IS_FORWARD_NAVIGATION = 0; + public static int SOFT_INPUT_MASK_ADJUST = 0; + public static int SOFT_INPUT_MASK_STATE = 0; + public static int SOFT_INPUT_MODE_CHANGED = 0; + public static int SOFT_INPUT_STATE_ALWAYS_HIDDEN = 0; + public static int SOFT_INPUT_STATE_ALWAYS_VISIBLE = 0; + public static int SOFT_INPUT_STATE_HIDDEN = 0; + public static int SOFT_INPUT_STATE_UNCHANGED = 0; + public static int SOFT_INPUT_STATE_UNSPECIFIED = 0; + public static int SOFT_INPUT_STATE_VISIBLE = 0; + public static int TITLE_CHANGED = 0; + public static int TYPE_ACCESSIBILITY_OVERLAY = 0; + public static int TYPE_APPLICATION = 0; + public static int TYPE_APPLICATION_ATTACHED_DIALOG = 0; + public static int TYPE_APPLICATION_MEDIA = 0; + public static int TYPE_APPLICATION_OVERLAY = 0; + public static int TYPE_APPLICATION_PANEL = 0; + public static int TYPE_APPLICATION_STARTING = 0; + public static int TYPE_APPLICATION_SUB_PANEL = 0; + public static int TYPE_BASE_APPLICATION = 0; + public static int TYPE_CHANGED = 0; + public static int TYPE_DRAWN_APPLICATION = 0; + public static int TYPE_INPUT_METHOD = 0; + public static int TYPE_INPUT_METHOD_DIALOG = 0; + public static int TYPE_KEYGUARD_DIALOG = 0; + public static int TYPE_PHONE = 0; + public static int TYPE_PRIORITY_PHONE = 0; + public static int TYPE_PRIVATE_PRESENTATION = 0; + public static int TYPE_SEARCH_BAR = 0; + public static int TYPE_STATUS_BAR = 0; + public static int TYPE_SYSTEM_ALERT = 0; + public static int TYPE_SYSTEM_DIALOG = 0; + public static int TYPE_SYSTEM_ERROR = 0; + public static int TYPE_SYSTEM_OVERLAY = 0; + public static int TYPE_TOAST = 0; + public static int TYPE_WALLPAPER = 0; + public void setBlurBehindRadius(int p0){} + public void setColorMode(int p0){} + public void setFitInsetsIgnoringVisibility(boolean p0){} + public void setFitInsetsSides(int p0){} + public void setFitInsetsTypes(int p0){} + public void writeToParcel(Parcel p0, int p1){} + } + void removeViewImmediate(View p0); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/WindowMetrics.java b/java/ql/test/stubs/google-android-9.0.0/android/view/WindowMetrics.java new file mode 100644 index 00000000000..9c9bc92058c --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/WindowMetrics.java @@ -0,0 +1,14 @@ +// Generated automatically from android.view.WindowMetrics for testing purposes + +package android.view; + +import android.graphics.Rect; +import android.view.WindowInsets; + +public class WindowMetrics +{ + protected WindowMetrics() {} + public Rect getBounds(){ return null; } + public WindowInsets getWindowInsets(){ return null; } + public WindowMetrics(Rect p0, WindowInsets p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/accessibility/AccessibilityEvent.java b/java/ql/test/stubs/google-android-9.0.0/android/view/accessibility/AccessibilityEvent.java index 1db7545960f..5e702246cb9 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/view/accessibility/AccessibilityEvent.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/accessibility/AccessibilityEvent.java @@ -28,6 +28,9 @@ public class AccessibilityEvent extends AccessibilityRecord implements Parcelabl public static Parcelable.Creator CREATOR = null; public static String eventTypeToString(int p0){ return null; } public static int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 0; + public static int CONTENT_CHANGE_TYPE_DRAG_CANCELLED = 0; + public static int CONTENT_CHANGE_TYPE_DRAG_DROPPED = 0; + public static int CONTENT_CHANGE_TYPE_DRAG_STARTED = 0; public static int CONTENT_CHANGE_TYPE_PANE_APPEARED = 0; public static int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 0; public static int CONTENT_CHANGE_TYPE_PANE_TITLE = 0; diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/accessibility/AccessibilityNodeInfo.java b/java/ql/test/stubs/google-android-9.0.0/android/view/accessibility/AccessibilityNodeInfo.java index 9724111622d..f781f0a6092 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/view/accessibility/AccessibilityNodeInfo.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/accessibility/AccessibilityNodeInfo.java @@ -230,6 +230,9 @@ public class AccessibilityNodeInfo implements Parcelable public static AccessibilityNodeInfo.AccessibilityAction ACTION_COPY = null; public static AccessibilityNodeInfo.AccessibilityAction ACTION_CUT = null; public static AccessibilityNodeInfo.AccessibilityAction ACTION_DISMISS = null; + public static AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_CANCEL = null; + public static AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_DROP = null; + public static AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_START = null; public static AccessibilityNodeInfo.AccessibilityAction ACTION_EXPAND = null; public static AccessibilityNodeInfo.AccessibilityAction ACTION_FOCUS = null; public static AccessibilityNodeInfo.AccessibilityAction ACTION_HIDE_TOOLTIP = null; diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/ConversationAction.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/ConversationAction.java new file mode 100644 index 00000000000..fc35651b52d --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/ConversationAction.java @@ -0,0 +1,31 @@ +// Generated automatically from android.view.textclassifier.ConversationAction for testing purposes + +package android.view.textclassifier; + +import android.app.RemoteAction; +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; + +public class ConversationAction implements Parcelable +{ + protected ConversationAction() {} + public Bundle getExtras(){ return null; } + public CharSequence getTextReply(){ return null; } + public RemoteAction getAction(){ return null; } + public String getType(){ return null; } + public float getConfidenceScore(){ return 0; } + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public static String TYPE_CALL_PHONE = null; + public static String TYPE_CREATE_REMINDER = null; + public static String TYPE_OPEN_URL = null; + public static String TYPE_SEND_EMAIL = null; + public static String TYPE_SEND_SMS = null; + public static String TYPE_SHARE_LOCATION = null; + public static String TYPE_TEXT_REPLY = null; + public static String TYPE_TRACK_FLIGHT = null; + public static String TYPE_VIEW_CALENDAR = null; + public static String TYPE_VIEW_MAP = null; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/ConversationActions.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/ConversationActions.java new file mode 100644 index 00000000000..ebe2eac2fd2 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/ConversationActions.java @@ -0,0 +1,51 @@ +// Generated automatically from android.view.textclassifier.ConversationActions for testing purposes + +package android.view.textclassifier; + +import android.app.Person; +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; +import android.view.textclassifier.ConversationAction; +import android.view.textclassifier.TextClassifier; +import java.time.ZonedDateTime; +import java.util.List; + +public class ConversationActions implements Parcelable +{ + protected ConversationActions() {} + public ConversationActions(List p0, String p1){} + public List getConversationActions(){ return null; } + public String getId(){ return null; } + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} + static public class Message implements Parcelable + { + protected Message() {} + public Bundle getExtras(){ return null; } + public CharSequence getText(){ return null; } + public Person getAuthor(){ return null; } + public ZonedDateTime getReferenceTime(){ return null; } + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public static Person PERSON_USER_OTHERS = null; + public static Person PERSON_USER_SELF = null; + public void writeToParcel(Parcel p0, int p1){} + } + static public class Request implements Parcelable + { + protected Request() {} + public Bundle getExtras(){ return null; } + public List getConversation(){ return null; } + public List getHints(){ return null; } + public String getCallingPackageName(){ return null; } + public TextClassifier.EntityConfig getTypeConfig(){ return null; } + public int describeContents(){ return 0; } + public int getMaxSuggestions(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public static String HINT_FOR_IN_APP = null; + public static String HINT_FOR_NOTIFICATION = null; + public void writeToParcel(Parcel p0, int p1){} + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/SelectionEvent.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/SelectionEvent.java new file mode 100644 index 00000000000..70d75c390b8 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/SelectionEvent.java @@ -0,0 +1,61 @@ +// Generated automatically from android.view.textclassifier.SelectionEvent for testing purposes + +package android.view.textclassifier; + +import android.os.Parcel; +import android.os.Parcelable; +import android.view.textclassifier.TextClassification; +import android.view.textclassifier.TextClassificationSessionId; +import android.view.textclassifier.TextSelection; + +public class SelectionEvent implements Parcelable +{ + public String getEntityType(){ return null; } + public String getPackageName(){ return null; } + public String getResultId(){ return null; } + public String getWidgetType(){ return null; } + public String getWidgetVersion(){ return null; } + public String toString(){ return null; } + public TextClassificationSessionId getSessionId(){ return null; } + public boolean equals(Object p0){ return false; } + public int describeContents(){ return 0; } + public int getEnd(){ return 0; } + public int getEventIndex(){ return 0; } + public int getEventType(){ return 0; } + public int getInvocationMethod(){ return 0; } + public int getSmartEnd(){ return 0; } + public int getSmartStart(){ return 0; } + public int getStart(){ return 0; } + public int hashCode(){ return 0; } + public long getDurationSincePreviousEvent(){ return 0; } + public long getDurationSinceSessionStart(){ return 0; } + public long getEventTime(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public static SelectionEvent createSelectionActionEvent(int p0, int p1, int p2){ return null; } + public static SelectionEvent createSelectionActionEvent(int p0, int p1, int p2, TextClassification p3){ return null; } + public static SelectionEvent createSelectionModifiedEvent(int p0, int p1){ return null; } + public static SelectionEvent createSelectionModifiedEvent(int p0, int p1, TextClassification p2){ return null; } + public static SelectionEvent createSelectionModifiedEvent(int p0, int p1, TextSelection p2){ return null; } + public static SelectionEvent createSelectionStartedEvent(int p0, int p1){ return null; } + public static boolean isTerminal(int p0){ return false; } + public static int ACTION_ABANDON = 0; + public static int ACTION_COPY = 0; + public static int ACTION_CUT = 0; + public static int ACTION_DRAG = 0; + public static int ACTION_OTHER = 0; + public static int ACTION_OVERTYPE = 0; + public static int ACTION_PASTE = 0; + public static int ACTION_RESET = 0; + public static int ACTION_SELECT_ALL = 0; + public static int ACTION_SHARE = 0; + public static int ACTION_SMART_SHARE = 0; + public static int EVENT_AUTO_SELECTION = 0; + public static int EVENT_SELECTION_MODIFIED = 0; + public static int EVENT_SELECTION_STARTED = 0; + public static int EVENT_SMART_SELECTION_MULTI = 0; + public static int EVENT_SMART_SELECTION_SINGLE = 0; + public static int INVOCATION_LINK = 0; + public static int INVOCATION_MANUAL = 0; + public static int INVOCATION_UNKNOWN = 0; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassification.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassification.java new file mode 100644 index 00000000000..bd89b26c523 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassification.java @@ -0,0 +1,48 @@ +// Generated automatically from android.view.textclassifier.TextClassification for testing purposes + +package android.view.textclassifier; + +import android.app.RemoteAction; +import android.content.Intent; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.os.LocaleList; +import android.os.Parcel; +import android.os.Parcelable; +import android.view.View; +import java.time.ZonedDateTime; +import java.util.List; + +public class TextClassification implements Parcelable +{ + protected TextClassification() {} + public Bundle getExtras(){ return null; } + public CharSequence getLabel(){ return null; } + public Drawable getIcon(){ return null; } + public Intent getIntent(){ return null; } + public List getActions(){ return null; } + public String getEntity(int p0){ return null; } + public String getId(){ return null; } + public String getText(){ return null; } + public String toString(){ return null; } + public View.OnClickListener getOnClickListener(){ return null; } + public float getConfidenceScore(String p0){ return 0; } + public int describeContents(){ return 0; } + public int getEntityCount(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} + static public class Request implements Parcelable + { + protected Request() {} + public Bundle getExtras(){ return null; } + public CharSequence getText(){ return null; } + public LocaleList getDefaultLocales(){ return null; } + public String getCallingPackageName(){ return null; } + public ZonedDateTime getReferenceTime(){ return null; } + public int describeContents(){ return 0; } + public int getEndIndex(){ return 0; } + public int getStartIndex(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassificationContext.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassificationContext.java new file mode 100644 index 00000000000..a7ab6240ede --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassificationContext.java @@ -0,0 +1,18 @@ +// Generated automatically from android.view.textclassifier.TextClassificationContext for testing purposes + +package android.view.textclassifier; + +import android.os.Parcel; +import android.os.Parcelable; + +public class TextClassificationContext implements Parcelable +{ + protected TextClassificationContext() {} + public String getPackageName(){ return null; } + public String getWidgetType(){ return null; } + public String getWidgetVersion(){ return null; } + public String toString(){ return null; } + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassificationSessionId.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassificationSessionId.java new file mode 100644 index 00000000000..fda8b2a0449 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassificationSessionId.java @@ -0,0 +1,17 @@ +// Generated automatically from android.view.textclassifier.TextClassificationSessionId for testing purposes + +package android.view.textclassifier; + +import android.os.Parcel; +import android.os.Parcelable; + +public class TextClassificationSessionId implements Parcelable +{ + public String getValue(){ return null; } + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int describeContents(){ return 0; } + public int hashCode(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassifier.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassifier.java new file mode 100644 index 00000000000..9f3daa67ea1 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassifier.java @@ -0,0 +1,68 @@ +// Generated automatically from android.view.textclassifier.TextClassifier for testing purposes + +package android.view.textclassifier; + +import android.os.LocaleList; +import android.os.Parcel; +import android.os.Parcelable; +import android.view.textclassifier.ConversationActions; +import android.view.textclassifier.SelectionEvent; +import android.view.textclassifier.TextClassification; +import android.view.textclassifier.TextClassifierEvent; +import android.view.textclassifier.TextLanguage; +import android.view.textclassifier.TextLinks; +import android.view.textclassifier.TextSelection; +import java.util.Collection; + +public interface TextClassifier +{ + default ConversationActions suggestConversationActions(ConversationActions.Request p0){ return null; } + default TextClassification classifyText(CharSequence p0, int p1, int p2, LocaleList p3){ return null; } + default TextClassification classifyText(TextClassification.Request p0){ return null; } + default TextLanguage detectLanguage(TextLanguage.Request p0){ return null; } + default TextLinks generateLinks(TextLinks.Request p0){ return null; } + default TextSelection suggestSelection(CharSequence p0, int p1, int p2, LocaleList p3){ return null; } + default TextSelection suggestSelection(TextSelection.Request p0){ return null; } + default boolean isDestroyed(){ return false; } + default int getMaxGenerateLinksTextLength(){ return 0; } + default void destroy(){} + default void onSelectionEvent(SelectionEvent p0){} + default void onTextClassifierEvent(TextClassifierEvent p0){} + static String EXTRA_FROM_TEXT_CLASSIFIER = null; + static String HINT_TEXT_IS_EDITABLE = null; + static String HINT_TEXT_IS_NOT_EDITABLE = null; + static String TYPE_ADDRESS = null; + static String TYPE_DATE = null; + static String TYPE_DATE_TIME = null; + static String TYPE_EMAIL = null; + static String TYPE_FLIGHT_NUMBER = null; + static String TYPE_OTHER = null; + static String TYPE_PHONE = null; + static String TYPE_UNKNOWN = null; + static String TYPE_URL = null; + static String WIDGET_TYPE_CLIPBOARD = null; + static String WIDGET_TYPE_CUSTOM_EDITTEXT = null; + static String WIDGET_TYPE_CUSTOM_TEXTVIEW = null; + static String WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW = null; + static String WIDGET_TYPE_EDITTEXT = null; + static String WIDGET_TYPE_EDIT_WEBVIEW = null; + static String WIDGET_TYPE_NOTIFICATION = null; + static String WIDGET_TYPE_TEXTVIEW = null; + static String WIDGET_TYPE_UNKNOWN = null; + static String WIDGET_TYPE_UNSELECTABLE_TEXTVIEW = null; + static String WIDGET_TYPE_WEBVIEW = null; + static TextClassifier NO_OP = null; + static public class EntityConfig implements Parcelable + { + protected EntityConfig() {} + public Collection getHints(){ return null; } + public Collection resolveEntityListModifications(Collection p0){ return null; } + public boolean shouldIncludeTypesFromTextClassifier(){ return false; } + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public static TextClassifier.EntityConfig create(Collection p0, Collection p1, Collection p2){ return null; } + public static TextClassifier.EntityConfig createWithExplicitEntityList(Collection p0){ return null; } + public static TextClassifier.EntityConfig createWithHints(Collection p0){ return null; } + public void writeToParcel(Parcel p0, int p1){} + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassifierEvent.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassifierEvent.java new file mode 100644 index 00000000000..ad18e8b78f5 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextClassifierEvent.java @@ -0,0 +1,54 @@ +// Generated automatically from android.view.textclassifier.TextClassifierEvent for testing purposes + +package android.view.textclassifier; + +import android.icu.util.ULocale; +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; +import android.view.textclassifier.TextClassificationContext; + +abstract public class TextClassifierEvent implements Parcelable +{ + protected TextClassifierEvent() {} + public Bundle getExtras(){ return null; } + public String getModelName(){ return null; } + public String getResultId(){ return null; } + public String toString(){ return null; } + public String[] getEntityTypes(){ return null; } + public TextClassificationContext getEventContext(){ return null; } + public ULocale getLocale(){ return null; } + public float[] getScores(){ return null; } + public int describeContents(){ return 0; } + public int getEventCategory(){ return 0; } + public int getEventIndex(){ return 0; } + public int getEventType(){ return 0; } + public int[] getActionIndices(){ return null; } + public static Parcelable.Creator CREATOR = null; + public static int CATEGORY_CONVERSATION_ACTIONS = 0; + public static int CATEGORY_LANGUAGE_DETECTION = 0; + public static int CATEGORY_LINKIFY = 0; + public static int CATEGORY_SELECTION = 0; + public static int TYPE_ACTIONS_GENERATED = 0; + public static int TYPE_ACTIONS_SHOWN = 0; + public static int TYPE_AUTO_SELECTION = 0; + public static int TYPE_COPY_ACTION = 0; + public static int TYPE_CUT_ACTION = 0; + public static int TYPE_LINKS_GENERATED = 0; + public static int TYPE_LINK_CLICKED = 0; + public static int TYPE_MANUAL_REPLY = 0; + public static int TYPE_OTHER_ACTION = 0; + public static int TYPE_OVERTYPE = 0; + public static int TYPE_PASTE_ACTION = 0; + public static int TYPE_SELECTION_DESTROYED = 0; + public static int TYPE_SELECTION_DRAG = 0; + public static int TYPE_SELECTION_MODIFIED = 0; + public static int TYPE_SELECTION_RESET = 0; + public static int TYPE_SELECTION_STARTED = 0; + public static int TYPE_SELECT_ALL = 0; + public static int TYPE_SHARE_ACTION = 0; + public static int TYPE_SMART_ACTION = 0; + public static int TYPE_SMART_SELECTION_MULTI = 0; + public static int TYPE_SMART_SELECTION_SINGLE = 0; + public void writeToParcel(Parcel p0, int p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextLanguage.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextLanguage.java new file mode 100644 index 00000000000..8c04c6b43df --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextLanguage.java @@ -0,0 +1,32 @@ +// Generated automatically from android.view.textclassifier.TextLanguage for testing purposes + +package android.view.textclassifier; + +import android.icu.util.ULocale; +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; + +public class TextLanguage implements Parcelable +{ + protected TextLanguage() {} + public Bundle getExtras(){ return null; } + public String getId(){ return null; } + public String toString(){ return null; } + public ULocale getLocale(int p0){ return null; } + public float getConfidenceScore(ULocale p0){ return 0; } + public int describeContents(){ return 0; } + public int getLocaleHypothesisCount(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} + static public class Request implements Parcelable + { + protected Request() {} + public Bundle getExtras(){ return null; } + public CharSequence getText(){ return null; } + public String getCallingPackageName(){ return null; } + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextLinks.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextLinks.java index 597d751996e..1e36d672717 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextLinks.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextLinks.java @@ -3,11 +3,14 @@ package android.view.textclassifier; import android.os.Bundle; +import android.os.LocaleList; import android.os.Parcel; import android.os.Parcelable; import android.text.Spannable; import android.text.style.ClickableSpan; import android.view.View; +import android.view.textclassifier.TextClassifier; +import java.time.ZonedDateTime; import java.util.Collection; import java.util.function.Function; @@ -29,6 +32,19 @@ public class TextLinks implements Parcelable public static int STATUS_NO_LINKS_FOUND = 0; public static int STATUS_UNSUPPORTED_CHARACTER = 0; public void writeToParcel(Parcel p0, int p1){} + static public class Request implements Parcelable + { + protected Request() {} + public Bundle getExtras(){ return null; } + public CharSequence getText(){ return null; } + public LocaleList getDefaultLocales(){ return null; } + public String getCallingPackageName(){ return null; } + public TextClassifier.EntityConfig getEntityConfig(){ return null; } + public ZonedDateTime getReferenceTime(){ return null; } + public int describeContents(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} + } static public class TextLink implements Parcelable { protected TextLink() {} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextSelection.java b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextSelection.java new file mode 100644 index 00000000000..015715305c4 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/view/textclassifier/TextSelection.java @@ -0,0 +1,40 @@ +// Generated automatically from android.view.textclassifier.TextSelection for testing purposes + +package android.view.textclassifier; + +import android.os.Bundle; +import android.os.LocaleList; +import android.os.Parcel; +import android.os.Parcelable; +import android.view.textclassifier.TextClassification; + +public class TextSelection implements Parcelable +{ + protected TextSelection() {} + public Bundle getExtras(){ return null; } + public String getEntity(int p0){ return null; } + public String getId(){ return null; } + public String toString(){ return null; } + public TextClassification getTextClassification(){ return null; } + public float getConfidenceScore(String p0){ return 0; } + public int describeContents(){ return 0; } + public int getEntityCount(){ return 0; } + public int getSelectionEndIndex(){ return 0; } + public int getSelectionStartIndex(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} + static public class Request implements Parcelable + { + protected Request() {} + public Bundle getExtras(){ return null; } + public CharSequence getText(){ return null; } + public LocaleList getDefaultLocales(){ return null; } + public String getCallingPackageName(){ return null; } + public boolean shouldIncludeTextClassification(){ return false; } + public int describeContents(){ return 0; } + public int getEndIndex(){ return 0; } + public int getStartIndex(){ return 0; } + public static Parcelable.Creator CREATOR = null; + public void writeToParcel(Parcel p0, int p1){} + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/ClientCertRequest.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/ClientCertRequest.java new file mode 100644 index 00000000000..0af0587e29d --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/ClientCertRequest.java @@ -0,0 +1,19 @@ +// Generated automatically from android.webkit.ClientCertRequest for testing purposes + +package android.webkit; + +import java.security.Principal; +import java.security.PrivateKey; +import java.security.cert.X509Certificate; + +abstract public class ClientCertRequest +{ + public ClientCertRequest(){} + public abstract Principal[] getPrincipals(); + public abstract String getHost(); + public abstract String[] getKeyTypes(); + public abstract int getPort(); + public abstract void cancel(); + public abstract void ignore(); + public abstract void proceed(PrivateKey p0, X509Certificate[] p1); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/ConsoleMessage.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/ConsoleMessage.java new file mode 100644 index 00000000000..9b50c6f7e6e --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/ConsoleMessage.java @@ -0,0 +1,19 @@ +// Generated automatically from android.webkit.ConsoleMessage for testing purposes + +package android.webkit; + + +public class ConsoleMessage +{ + protected ConsoleMessage() {} + public ConsoleMessage(String p0, String p1, int p2, ConsoleMessage.MessageLevel p3){} + public ConsoleMessage.MessageLevel messageLevel(){ return null; } + public String message(){ return null; } + public String sourceId(){ return null; } + public int lineNumber(){ return 0; } + static public enum MessageLevel + { + DEBUG, ERROR, LOG, TIP, WARNING; + private MessageLevel() {} + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/DownloadListener.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/DownloadListener.java new file mode 100644 index 00000000000..2620faf369c --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/DownloadListener.java @@ -0,0 +1,9 @@ +// Generated automatically from android.webkit.DownloadListener for testing purposes + +package android.webkit; + + +public interface DownloadListener +{ + void onDownloadStart(String p0, String p1, String p2, String p3, long p4); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/GeolocationPermissions.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/GeolocationPermissions.java new file mode 100644 index 00000000000..8edb6b2f3dd --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/GeolocationPermissions.java @@ -0,0 +1,20 @@ +// Generated automatically from android.webkit.GeolocationPermissions for testing purposes + +package android.webkit; + +import android.webkit.ValueCallback; +import java.util.Set; + +public class GeolocationPermissions +{ + public static GeolocationPermissions getInstance(){ return null; } + public void allow(String p0){} + public void clear(String p0){} + public void clearAll(){} + public void getAllowed(String p0, ValueCallback p1){} + public void getOrigins(ValueCallback> p0){} + static public interface Callback + { + void invoke(String p0, boolean p1, boolean p2); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/HttpAuthHandler.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/HttpAuthHandler.java new file mode 100644 index 00000000000..c2bde7e3ffc --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/HttpAuthHandler.java @@ -0,0 +1,12 @@ +// Generated automatically from android.webkit.HttpAuthHandler for testing purposes + +package android.webkit; + +import android.os.Handler; + +public class HttpAuthHandler extends Handler +{ + public boolean useHttpAuthUsernamePassword(){ return false; } + public void cancel(){} + public void proceed(String p0, String p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/JsPromptResult.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/JsPromptResult.java new file mode 100644 index 00000000000..835d76105a0 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/JsPromptResult.java @@ -0,0 +1,10 @@ +// Generated automatically from android.webkit.JsPromptResult for testing purposes + +package android.webkit; + +import android.webkit.JsResult; + +public class JsPromptResult extends JsResult +{ + public void confirm(String p0){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/JsResult.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/JsResult.java new file mode 100644 index 00000000000..c8168438130 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/JsResult.java @@ -0,0 +1,10 @@ +// Generated automatically from android.webkit.JsResult for testing purposes + +package android.webkit; + + +public class JsResult +{ + public final void cancel(){} + public final void confirm(){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/PermissionRequest.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/PermissionRequest.java new file mode 100644 index 00000000000..da64b442084 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/PermissionRequest.java @@ -0,0 +1,18 @@ +// Generated automatically from android.webkit.PermissionRequest for testing purposes + +package android.webkit; + +import android.net.Uri; + +abstract public class PermissionRequest +{ + public PermissionRequest(){} + public abstract String[] getResources(); + public abstract Uri getOrigin(); + public abstract void deny(); + public abstract void grant(String[] p0); + public static String RESOURCE_AUDIO_CAPTURE = null; + public static String RESOURCE_MIDI_SYSEX = null; + public static String RESOURCE_PROTECTED_MEDIA_ID = null; + public static String RESOURCE_VIDEO_CAPTURE = null; +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/RenderProcessGoneDetail.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/RenderProcessGoneDetail.java new file mode 100644 index 00000000000..1e2086fdf3b --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/RenderProcessGoneDetail.java @@ -0,0 +1,11 @@ +// Generated automatically from android.webkit.RenderProcessGoneDetail for testing purposes + +package android.webkit; + + +abstract public class RenderProcessGoneDetail +{ + public RenderProcessGoneDetail(){} + public abstract boolean didCrash(); + public abstract int rendererPriorityAtExit(); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/SafeBrowsingResponse.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/SafeBrowsingResponse.java new file mode 100644 index 00000000000..751d7e76530 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/SafeBrowsingResponse.java @@ -0,0 +1,12 @@ +// Generated automatically from android.webkit.SafeBrowsingResponse for testing purposes + +package android.webkit; + + +abstract public class SafeBrowsingResponse +{ + public SafeBrowsingResponse(){} + public abstract void backToSafety(boolean p0); + public abstract void proceed(boolean p0); + public abstract void showInterstitial(boolean p0); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/SslErrorHandler.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/SslErrorHandler.java new file mode 100644 index 00000000000..ab56fed23fa --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/SslErrorHandler.java @@ -0,0 +1,11 @@ +// Generated automatically from android.webkit.SslErrorHandler for testing purposes + +package android.webkit; + +import android.os.Handler; + +public class SslErrorHandler extends Handler +{ + public void cancel(){} + public void proceed(){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/ValueCallback.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/ValueCallback.java new file mode 100644 index 00000000000..0cdf8831825 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/ValueCallback.java @@ -0,0 +1,9 @@ +// Generated automatically from android.webkit.ValueCallback for testing purposes + +package android.webkit; + + +public interface ValueCallback +{ + void onReceiveValue(T p0); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebBackForwardList.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebBackForwardList.java new file mode 100644 index 00000000000..4fe7956b562 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebBackForwardList.java @@ -0,0 +1,16 @@ +// Generated automatically from android.webkit.WebBackForwardList for testing purposes + +package android.webkit; + +import android.webkit.WebHistoryItem; +import java.io.Serializable; + +abstract public class WebBackForwardList implements Cloneable, Serializable +{ + protected abstract WebBackForwardList clone(); + public WebBackForwardList(){} + public abstract WebHistoryItem getCurrentItem(); + public abstract WebHistoryItem getItemAtIndex(int p0); + public abstract int getCurrentIndex(); + public abstract int getSize(); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebChromeClient.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebChromeClient.java new file mode 100644 index 00000000000..75b1f938d2d --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebChromeClient.java @@ -0,0 +1,67 @@ +// Generated automatically from android.webkit.WebChromeClient for testing purposes + +package android.webkit; + +import android.content.Intent; +import android.graphics.Bitmap; +import android.net.Uri; +import android.os.Message; +import android.view.View; +import android.webkit.ConsoleMessage; +import android.webkit.GeolocationPermissions; +import android.webkit.JsPromptResult; +import android.webkit.JsResult; +import android.webkit.PermissionRequest; +import android.webkit.ValueCallback; +import android.webkit.WebStorage; +import android.webkit.WebView; + +public class WebChromeClient +{ + abstract static public class FileChooserParams + { + public FileChooserParams(){} + public abstract CharSequence getTitle(); + public abstract Intent createIntent(); + public abstract String getFilenameHint(); + public abstract String[] getAcceptTypes(); + public abstract boolean isCaptureEnabled(); + public abstract int getMode(); + public static Uri[] parseResult(int p0, Intent p1){ return null; } + public static int MODE_OPEN = 0; + public static int MODE_OPEN_MULTIPLE = 0; + public static int MODE_SAVE = 0; + } + public Bitmap getDefaultVideoPoster(){ return null; } + public View getVideoLoadingProgressView(){ return null; } + public WebChromeClient(){} + public boolean onConsoleMessage(ConsoleMessage p0){ return false; } + public boolean onCreateWindow(WebView p0, boolean p1, boolean p2, Message p3){ return false; } + public boolean onJsAlert(WebView p0, String p1, String p2, JsResult p3){ return false; } + public boolean onJsBeforeUnload(WebView p0, String p1, String p2, JsResult p3){ return false; } + public boolean onJsConfirm(WebView p0, String p1, String p2, JsResult p3){ return false; } + public boolean onJsPrompt(WebView p0, String p1, String p2, String p3, JsPromptResult p4){ return false; } + public boolean onJsTimeout(){ return false; } + public boolean onShowFileChooser(WebView p0, ValueCallback p1, WebChromeClient.FileChooserParams p2){ return false; } + public void getVisitedHistory(ValueCallback p0){} + public void onCloseWindow(WebView p0){} + public void onConsoleMessage(String p0, int p1, String p2){} + public void onExceededDatabaseQuota(String p0, String p1, long p2, long p3, long p4, WebStorage.QuotaUpdater p5){} + public void onGeolocationPermissionsHidePrompt(){} + public void onGeolocationPermissionsShowPrompt(String p0, GeolocationPermissions.Callback p1){} + public void onHideCustomView(){} + public void onPermissionRequest(PermissionRequest p0){} + public void onPermissionRequestCanceled(PermissionRequest p0){} + public void onProgressChanged(WebView p0, int p1){} + public void onReachedMaxAppCacheSize(long p0, long p1, WebStorage.QuotaUpdater p2){} + public void onReceivedIcon(WebView p0, Bitmap p1){} + public void onReceivedTitle(WebView p0, String p1){} + public void onReceivedTouchIconUrl(WebView p0, String p1, boolean p2){} + public void onRequestFocus(WebView p0){} + public void onShowCustomView(View p0, WebChromeClient.CustomViewCallback p1){} + public void onShowCustomView(View p0, int p1, WebChromeClient.CustomViewCallback p2){} + static public interface CustomViewCallback + { + void onCustomViewHidden(); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebHistoryItem.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebHistoryItem.java new file mode 100644 index 00000000000..637467d888f --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebHistoryItem.java @@ -0,0 +1,15 @@ +// Generated automatically from android.webkit.WebHistoryItem for testing purposes + +package android.webkit; + +import android.graphics.Bitmap; + +abstract public class WebHistoryItem implements Cloneable +{ + protected abstract WebHistoryItem clone(); + public WebHistoryItem(){} + public abstract Bitmap getFavicon(); + public abstract String getOriginalUrl(); + public abstract String getTitle(); + public abstract String getUrl(); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebMessage.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebMessage.java new file mode 100644 index 00000000000..6e02214c1df --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebMessage.java @@ -0,0 +1,14 @@ +// Generated automatically from android.webkit.WebMessage for testing purposes + +package android.webkit; + +import android.webkit.WebMessagePort; + +public class WebMessage +{ + protected WebMessage() {} + public String getData(){ return null; } + public WebMessage(String p0){} + public WebMessage(String p0, WebMessagePort[] p1){} + public WebMessagePort[] getPorts(){ return null; } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebMessagePort.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebMessagePort.java new file mode 100644 index 00000000000..05ece05e0a3 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebMessagePort.java @@ -0,0 +1,19 @@ +// Generated automatically from android.webkit.WebMessagePort for testing purposes + +package android.webkit; + +import android.os.Handler; +import android.webkit.WebMessage; + +abstract public class WebMessagePort +{ + abstract static public class WebMessageCallback + { + public WebMessageCallback(){} + public void onMessage(WebMessagePort p0, WebMessage p1){} + } + public abstract void close(); + public abstract void postMessage(WebMessage p0); + public abstract void setWebMessageCallback(WebMessagePort.WebMessageCallback p0); + public abstract void setWebMessageCallback(WebMessagePort.WebMessageCallback p0, Handler p1); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceError.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceError.java new file mode 100644 index 00000000000..115aaff3dec --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceError.java @@ -0,0 +1,10 @@ +// Generated automatically from android.webkit.WebResourceError for testing purposes + +package android.webkit; + + +abstract public class WebResourceError +{ + public abstract CharSequence getDescription(); + public abstract int getErrorCode(); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceRequest.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceRequest.java index 9732ca67ae0..7a195a1518a 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceRequest.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceRequest.java @@ -1,72 +1,16 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Generated automatically from android.webkit.WebResourceRequest for testing purposes + package android.webkit; import android.net.Uri; import java.util.Map; -/** - * Encompasses parameters to the {@link WebViewClient#shouldInterceptRequest} - * method. - */ -public interface WebResourceRequest { - /** - * Gets the URL for which the resource request was made. - * - * @return the URL for which the resource request was made. - */ - Uri getUrl(); - - /** - * Gets whether the request was made for the main frame. - * - * @return whether the request was made for the main frame. Will be - * {@code false} for iframes, for example. - */ - boolean isForMainFrame(); - - /** - * Gets whether the request was a result of a server-side redirect. - * - * @return whether the request was a result of a server-side redirect. - */ - boolean isRedirect(); - - /** - * Gets whether a gesture (such as a click) was associated with the request. For - * security reasons in certain situations this method may return {@code false} - * even though the sequence of events which caused the request to be created was - * initiated by a user gesture. - * - * @return whether a gesture was associated with the request. - */ - boolean hasGesture(); - - /** - * Gets the method associated with the request, for example "GET". - * - * @return the method associated with the request. - */ - String getMethod(); - - /** - * Gets the headers associated with the request. These are represented as a - * mapping of header name to header value. - * - * @return the headers associated with the request. - */ +public interface WebResourceRequest +{ Map getRequestHeaders(); -} \ No newline at end of file + String getMethod(); + Uri getUrl(); + boolean hasGesture(); + boolean isForMainFrame(); + boolean isRedirect(); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceResponse.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceResponse.java index 1a2ff3cc1da..9e0e0225644 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceResponse.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebResourceResponse.java @@ -1,173 +1,24 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Generated automatically from android.webkit.WebResourceResponse for testing purposes + package android.webkit; import java.io.InputStream; import java.util.Map; -/** - * Encapsulates a resource response. Applications can return an instance of this - * class from {@link WebViewClient#shouldInterceptRequest} to provide a custom - * response when the WebView requests a particular resource. - */ -public class WebResourceResponse { - /** - * Constructs a resource response with the given MIME type, encoding, and input - * stream. Callers must implement {@link InputStream#read(byte[]) - * InputStream.read(byte[])} for the input stream. - * - * @param mimeType the resource response's MIME type, for example text/html - * @param encoding the resource response's encoding - * @param data the input stream that provides the resource response's data. - * Must not be a StringBufferInputStream. - */ - public WebResourceResponse(String mimeType, String encoding, InputStream data) { - } - - /** - * Constructs a resource response with the given parameters. Callers must - * implement {@link InputStream#read(byte[]) InputStream.read(byte[])} for the - * input stream. - * - * @param mimeType the resource response's MIME type, for example - * text/html - * @param encoding the resource response's encoding - * @param statusCode the status code needs to be in the ranges [100, 299], - * [400, 599]. Causing a redirect by specifying a 3xx - * code is not supported. - * @param reasonPhrase the phrase describing the status code, for example - * "OK". Must be non-empty. - * @param responseHeaders the resource response's headers represented as a - * mapping of header name -> header value. - * @param data the input stream that provides the resource response's - * data. Must not be a StringBufferInputStream. - */ - public WebResourceResponse(String mimeType, String encoding, int statusCode, String reasonPhrase, - Map responseHeaders, InputStream data) { - } - - /** - * Sets the resource response's MIME type, for example "text/html". - * - * @param mimeType The resource response's MIME type - */ - public void setMimeType(String mimeType) { - } - - /** - * Gets the resource response's MIME type. - * - * @return The resource response's MIME type - */ - public String getMimeType() { - return null; - } - - /** - * Sets the resource response's encoding, for example "UTF-8". This is - * used to decode the data from the input stream. - * - * @param encoding The resource response's encoding - */ - public void setEncoding(String encoding) { - } - - /** - * Gets the resource response's encoding. - * - * @return The resource response's encoding - */ - public String getEncoding() { - return null; - } - - /** - * Sets the resource response's status code and reason phrase. - * - * @param statusCode the status code needs to be in the ranges [100, 299], - * [400, 599]. Causing a redirect by specifying a 3xx code - * is not supported. - * @param reasonPhrase the phrase describing the status code, for example "OK". - * Must be non-empty. - */ - public void setStatusCodeAndReasonPhrase(int statusCode, String reasonPhrase) { - } - - /** - * Gets the resource response's status code. - * - * @return The resource response's status code. - */ - public int getStatusCode() { - return -1; - } - - /** - * Gets the description of the resource response's status code. - * - * @return The description of the resource response's status code. - */ - public String getReasonPhrase() { - return null; - } - - /** - * Sets the headers for the resource response. - * - * @param headers Mapping of header name -> header value. - */ - public void setResponseHeaders(Map headers) { - } - - /** - * Gets the headers for the resource response. - * - * @return The headers for the resource response. - */ - public Map getResponseHeaders() { - return null; - } - - /** - * Sets the input stream that provides the resource response's data. Callers - * must implement {@link InputStream#read(byte[]) InputStream.read(byte[])}. - * - * @param data the input stream that provides the resource response's data. Must - * not be a StringBufferInputStream. - */ - public void setData(InputStream data) { - } - - /** - * Gets the input stream that provides the resource response's data. - * - * @return The input stream that provides the resource response's data - */ - public InputStream getData() { - return null; - } - - /** - * The internal version of the constructor that doesn't perform arguments - * checks. - * - * @hide - */ - public WebResourceResponse(boolean immutable, String mimeType, String encoding, int statusCode, String reasonPhrase, - Map responseHeaders, InputStream data) { - } - -} \ No newline at end of file +public class WebResourceResponse +{ + protected WebResourceResponse() {} + public InputStream getData(){ return null; } + public Map getResponseHeaders(){ return null; } + public String getEncoding(){ return null; } + public String getMimeType(){ return null; } + public String getReasonPhrase(){ return null; } + public WebResourceResponse(String p0, String p1, InputStream p2){} + public WebResourceResponse(String p0, String p1, int p2, String p3, Map p4, InputStream p5){} + public int getStatusCode(){ return 0; } + public void setData(InputStream p0){} + public void setEncoding(String p0){} + public void setMimeType(String p0){} + public void setResponseHeaders(Map p0){} + public void setStatusCodeAndReasonPhrase(int p0, String p1){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebSettings.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebSettings.java index 33c9a1b8a57..60d01fe2b97 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebSettings.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebSettings.java @@ -1,1379 +1,150 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Generated automatically from android.webkit.WebSettings for testing purposes + package android.webkit; -import java.net.CookieManager; import android.content.Context; -/** - * Manages settings state for a WebView. When a WebView is first created, it - * obtains a set of default settings. These default settings will be returned - * from any getter call. A {@code WebSettings} object obtained from - * {@link WebView#getSettings()} is tied to the life of the WebView. If a - * WebView has been destroyed, any method call on {@code WebSettings} will throw - * an {@link IllegalStateException}. - */ -// This is an abstract base class: concrete WebViewProviders must -// create a class derived from this, and return an instance of it in the -// WebViewProvider.getWebSettingsProvider() method implementation. -public abstract class WebSettings { - /** - * Enum for controlling the layout of html. - *
      - *
    • {@code NORMAL} means no rendering changes. This is the recommended choice - * for maximum compatibility across different platforms and Android - * versions.
    • - *
    • {@code SINGLE_COLUMN} moves all content into one column that is the width - * of the view.
    • - *
    • {@code NARROW_COLUMNS} makes all columns no wider than the screen if - * possible. Only use this for API levels prior to - * {@link android.os.Build.VERSION_CODES#KITKAT}.
    • - *
    • {@code TEXT_AUTOSIZING} boosts font size of paragraphs based on - * heuristics to make the text readable when viewing a wide-viewport layout in - * the overview mode. It is recommended to enable zoom support - * {@link #setSupportZoom} when using this mode. Supported from API level - * {@link android.os.Build.VERSION_CODES#KITKAT}
    • - *
    - */ - // XXX: These must match LayoutAlgorithm in Settings.h in WebCore. - public enum LayoutAlgorithm { - NORMAL, - /** - * @deprecated This algorithm is now obsolete. - */ - @Deprecated - SINGLE_COLUMN, - /** - * @deprecated This algorithm is now obsolete. - */ - @Deprecated - NARROW_COLUMNS, TEXT_AUTOSIZING - } - - /** - * Enum for specifying the text size. - *
      - *
    • SMALLEST is 50%
    • - *
    • SMALLER is 75%
    • - *
    • NORMAL is 100%
    • - *
    • LARGER is 150%
    • - *
    • LARGEST is 200%
    • - *
    - * - * @deprecated Use {@link WebSettings#setTextZoom(int)} and - * {@link WebSettings#getTextZoom()} instead. - */ - @Deprecated - public enum TextSize { - SMALLEST(50), SMALLER(75), NORMAL(100), LARGER(150), LARGEST(200); - - TextSize(int size) { - value = size; - } - - int value; - } - - /** - * Enum for specifying the WebView's desired density. - *
      - *
    • {@code FAR} makes 100% looking like in 240dpi
    • - *
    • {@code MEDIUM} makes 100% looking like in 160dpi
    • - *
    • {@code CLOSE} makes 100% looking like in 120dpi
    • - *
    - */ - public enum ZoomDensity { - FAR(150), // 240dpi - MEDIUM(100), // 160dpi - CLOSE(75); // 120dpi - - ZoomDensity(int size) { - value = size; - } - - /** - * @hide Only for use by WebViewProvider implementations - */ - public int getValue() { - return value; - } - - int value; - } - - public @interface CacheMode { - } - - /** - * Default cache usage mode. If the navigation type doesn't impose any specific - * behavior, use cached resources when they are available and not expired, - * otherwise load resources from the network. Use with {@link #setCacheMode}. - */ - public static final int LOAD_DEFAULT = -1; - /** - * Normal cache usage mode. Use with {@link #setCacheMode}. - * - * @deprecated This value is obsolete, as from API level - * {@link android.os.Build.VERSION_CODES#HONEYCOMB} and onwards it - * has the same effect as {@link #LOAD_DEFAULT}. - */ - @Deprecated - public static final int LOAD_NORMAL = 0; - /** - * Use cached resources when they are available, even if they have expired. - * Otherwise load resources from the network. Use with {@link #setCacheMode}. - */ - public static final int LOAD_CACHE_ELSE_NETWORK = 1; - /** - * Don't use the cache, load from the network. Use with {@link #setCacheMode}. - */ - public static final int LOAD_NO_CACHE = 2; - /** - * Don't use the network, load from the cache. Use with {@link #setCacheMode}. - */ - public static final int LOAD_CACHE_ONLY = 3; - - public enum RenderPriority { - NORMAL, HIGH, LOW - } - - /** - * The plugin state effects how plugins are treated on a page. ON means that any - * object will be loaded even if a plugin does not exist to handle the content. - * ON_DEMAND means that if there is a plugin installed that can handle the - * content, a placeholder is shown until the user clicks on the placeholder. - * Once clicked, the plugin will be enabled on the page. OFF means that all - * plugins will be turned off and any fallback content will be used. - */ - public enum PluginState { - ON, ON_DEMAND, OFF - } - - /** - * Used with {@link #setMixedContentMode} - * - * In this mode, the WebView will allow a secure origin to load content from any - * other origin, even if that origin is insecure. This is the least secure mode - * of operation for the WebView, and where possible apps should not set this - * mode. - */ - public static final int MIXED_CONTENT_ALWAYS_ALLOW = 0; - /** - * Used with {@link #setMixedContentMode} - * - * In this mode, the WebView will not allow a secure origin to load content from - * an insecure origin. This is the preferred and most secure mode of operation - * for the WebView and apps are strongly advised to use this mode. - */ - public static final int MIXED_CONTENT_NEVER_ALLOW = 1; - /** - * Used with {@link #setMixedContentMode} - * - * In this mode, the WebView will attempt to be compatible with the approach of - * a modern web browser with regard to mixed content. Some insecure content may - * be allowed to be loaded by a secure origin and other types of content will be - * blocked. The types of content are allowed or blocked may change release to - * release and are not explicitly defined. - * - * This mode is intended to be used by apps that are not in control of the - * content that they render but desire to operate in a reasonably secure - * environment. For highest security, apps are recommended to use - * {@link #MIXED_CONTENT_NEVER_ALLOW}. - */ - public static final int MIXED_CONTENT_COMPATIBILITY_MODE = 2; - - /** - * Enables dumping the pages navigation cache to a text file. The default is - * {@code false}. - * - * @deprecated This method is now obsolete. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} - */ - @Deprecated - public abstract void setNavDump(boolean enabled); - - /** - * Gets whether dumping the navigation cache is enabled. - * - * @return whether dumping the navigation cache is enabled - * @see #setNavDump - * @deprecated This method is now obsolete. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} - */ - @Deprecated - public abstract boolean getNavDump(); - - /** - * Sets whether the WebView should support zooming using its on-screen zoom - * controls and gestures. The particular zoom mechanisms that should be used can - * be set with {@link #setBuiltInZoomControls}. This setting does not affect - * zooming performed using the {@link WebView#zoomIn()} and - * {@link WebView#zoomOut()} methods. The default is {@code true}. - * - * @param support whether the WebView should support zoom - */ - public abstract void setSupportZoom(boolean support); - - /** - * Gets whether the WebView supports zoom. - * - * @return {@code true} if the WebView supports zoom - * @see #setSupportZoom - */ - public abstract boolean supportZoom(); - - /** - * Sets whether the WebView requires a user gesture to play media. The default - * is {@code true}. - * - * @param require whether the WebView requires a user gesture to play media - */ - public abstract void setMediaPlaybackRequiresUserGesture(boolean require); - - /** - * Gets whether the WebView requires a user gesture to play media. - * - * @return {@code true} if the WebView requires a user gesture to play media - * @see #setMediaPlaybackRequiresUserGesture - */ - public abstract boolean getMediaPlaybackRequiresUserGesture(); - - /** - * Sets whether the WebView should use its built-in zoom mechanisms. The - * built-in zoom mechanisms comprise on-screen zoom controls, which are - * displayed over the WebView's content, and the use of a pinch gesture to - * control zooming. Whether or not these on-screen controls are displayed can be - * set with {@link #setDisplayZoomControls}. The default is {@code false}. - *

    - * The built-in mechanisms are the only currently supported zoom mechanisms, so - * it is recommended that this setting is always enabled. - * - * @param enabled whether the WebView should use its built-in zoom mechanisms - */ - // This method was intended to select between the built-in zoom mechanisms - // and the separate zoom controls. The latter were obtained using - // {@link WebView#getZoomControls}, which is now hidden. - public abstract void setBuiltInZoomControls(boolean enabled); - - /** - * Gets whether the zoom mechanisms built into WebView are being used. - * - * @return {@code true} if the zoom mechanisms built into WebView are being used - * @see #setBuiltInZoomControls - */ - public abstract boolean getBuiltInZoomControls(); - - /** - * Sets whether the WebView should display on-screen zoom controls when using - * the built-in zoom mechanisms. See {@link #setBuiltInZoomControls}. The - * default is {@code true}. - * - * @param enabled whether the WebView should display on-screen zoom controls - */ - public abstract void setDisplayZoomControls(boolean enabled); - - /** - * Gets whether the WebView displays on-screen zoom controls when using the - * built-in zoom mechanisms. - * - * @return {@code true} if the WebView displays on-screen zoom controls when - * using the built-in zoom mechanisms - * @see #setDisplayZoomControls - */ - public abstract boolean getDisplayZoomControls(); - - /** - * Enables or disables file access within WebView. File access is enabled by - * default. Note that this enables or disables file system access only. Assets - * and resources are still accessible using file:///android_asset and - * file:///android_res. - */ - public abstract void setAllowFileAccess(boolean allow); - - /** - * Gets whether this WebView supports file access. - * - * @see #setAllowFileAccess - */ - public abstract boolean getAllowFileAccess(); - - /** - * Enables or disables content URL access within WebView. Content URL access - * allows WebView to load content from a content provider installed in the - * system. The default is enabled. - */ - public abstract void setAllowContentAccess(boolean allow); - - /** - * Gets whether this WebView supports content URL access. - * - * @see #setAllowContentAccess - */ - public abstract boolean getAllowContentAccess(); - - /** - * Sets whether the WebView loads pages in overview mode, that is, zooms out the - * content to fit on screen by width. This setting is taken into account when - * the content width is greater than the width of the WebView control, for - * example, when {@link #getUseWideViewPort} is enabled. The default is - * {@code false}. - */ - public abstract void setLoadWithOverviewMode(boolean overview); - - /** - * Gets whether this WebView loads pages in overview mode. - * - * @return whether this WebView loads pages in overview mode - * @see #setLoadWithOverviewMode - */ - public abstract boolean getLoadWithOverviewMode(); - - /** - * Sets whether the WebView will enable smooth transition while panning or - * zooming or while the window hosting the WebView does not have focus. If it is - * {@code true}, WebView will choose a solution to maximize the performance. - * e.g. the WebView's content may not be updated during the transition. If it is - * false, WebView will keep its fidelity. The default value is {@code false}. - * - * @deprecated This method is now obsolete, and will become a no-op in future. - */ - @Deprecated - public abstract void setEnableSmoothTransition(boolean enable); - - /** - * Gets whether the WebView enables smooth transition while panning or zooming. - * - * @see #setEnableSmoothTransition - * - * @deprecated This method is now obsolete, and will become a no-op in future. - */ - @Deprecated - public abstract boolean enableSmoothTransition(); - - /** - * Sets whether the WebView uses its background for over scroll background. If - * {@code true}, it will use the WebView's background. If {@code false}, it will - * use an internal pattern. Default is {@code true}. - * - * @deprecated This method is now obsolete. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} - */ - @Deprecated - public abstract void setUseWebViewBackgroundForOverscrollBackground(boolean view); - - /** - * Gets whether this WebView uses WebView's background instead of internal - * pattern for over scroll background. - * - * @see #setUseWebViewBackgroundForOverscrollBackground - * @deprecated This method is now obsolete. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} - */ - @Deprecated - public abstract boolean getUseWebViewBackgroundForOverscrollBackground(); - - /** - * Sets whether the WebView should save form data. In Android O, the platform - * has implemented a fully functional Autofill feature to store form data. - * Therefore, the Webview form data save feature is disabled. - * - * Note that the feature will continue to be supported on older versions of - * Android as before. - * - * This function does not have any effect. - */ - @Deprecated - public abstract void setSaveFormData(boolean save); - - /** - * Gets whether the WebView saves form data. - * - * @return whether the WebView saves form data - * @see #setSaveFormData - */ - @Deprecated - public abstract boolean getSaveFormData(); - - /** - * Sets whether the WebView should save passwords. The default is {@code true}. - * - * @deprecated Saving passwords in WebView will not be supported in future - * versions. - */ - @Deprecated - public abstract void setSavePassword(boolean save); - - /** - * Gets whether the WebView saves passwords. - * - * @return whether the WebView saves passwords - * @see #setSavePassword - * @deprecated Saving passwords in WebView will not be supported in future - * versions. - */ - @Deprecated - public abstract boolean getSavePassword(); - - /** - * Sets the text zoom of the page in percent. The default is 100. - * - * @param textZoom the text zoom in percent - */ - public abstract void setTextZoom(int textZoom); - - /** - * Gets the text zoom of the page in percent. - * - * @return the text zoom of the page in percent - * @see #setTextZoom - */ - public abstract int getTextZoom(); - - /** - * Sets policy for third party cookies. Developers should access this via - * {@link CookieManager#setShouldAcceptThirdPartyCookies}. - * - * @hide Internal API. - */ - public abstract void setAcceptThirdPartyCookies(boolean accept); - - /** - * Gets policy for third party cookies. Developers should access this via - * {@link CookieManager#getShouldAcceptThirdPartyCookies}. - * - * @hide Internal API - */ - public abstract boolean getAcceptThirdPartyCookies(); - - /** - * Sets the text size of the page. The default is {@link TextSize#NORMAL}. - * - * @param t the text size as a {@link TextSize} value - * @deprecated Use {@link #setTextZoom} instead. - */ - @Deprecated - public synchronized void setTextSize(TextSize t) { - setTextZoom(t.value); - } - - /** - * Gets the text size of the page. If the text size was previously specified in - * percent using {@link #setTextZoom}, this will return the closest matching - * {@link TextSize}. - * - * @return the text size as a {@link TextSize} value - * @see #setTextSize - * @deprecated Use {@link #getTextZoom} instead. - */ - @Deprecated - public synchronized TextSize getTextSize() { - return null; - } - - /** - * Sets the default zoom density of the page. This must be called from the UI - * thread. The default is {@link ZoomDensity#MEDIUM}. - * - * This setting is not recommended for use in new applications. If the WebView - * is utilized to display mobile-oriented pages, the desired effect can be - * achieved by adjusting 'width' and 'initial-scale' attributes of page's 'meta - * viewport' tag. For pages lacking the tag, - * {@link android.webkit.WebView#setInitialScale} and - * {@link #setUseWideViewPort} can be used. - * - * @param zoom the zoom density - * @deprecated This method is no longer supported, see the function - * documentation for recommended alternatives. - */ - @Deprecated - public abstract void setDefaultZoom(ZoomDensity zoom); - - /** - * Gets the default zoom density of the page. This should be called from the UI - * thread. - * - * This setting is not recommended for use in new applications. - * - * @return the zoom density - * @see #setDefaultZoom - * @deprecated Will only return the default value. - */ - @Deprecated - public abstract ZoomDensity getDefaultZoom(); - - /** - * Enables using light touches to make a selection and activate mouseovers. - * - * @deprecated From {@link android.os.Build.VERSION_CODES#JELLY_BEAN} this - * setting is obsolete and has no effect. - */ - @Deprecated - public abstract void setLightTouchEnabled(boolean enabled); - - /** - * Gets whether light touches are enabled. - * - * @see #setLightTouchEnabled - * @deprecated This setting is obsolete. - */ - @Deprecated - public abstract boolean getLightTouchEnabled(); - - /** - * Controlled a rendering optimization that is no longer present. Setting it now - * has no effect. - * - * @deprecated This setting now has no effect. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} - */ - @Deprecated - public void setUseDoubleTree(boolean use) { - // Specified to do nothing, so no need for derived classes to override. - } - - /** - * Controlled a rendering optimization that is no longer present. Setting it now - * has no effect. - * - * @deprecated This setting now has no effect. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} - */ - @Deprecated - public boolean getUseDoubleTree() { - // Returns false unconditionally, so no need for derived classes to override. - return false; - } - - /** - * Sets the user-agent string using an integer code. - *

      - *
    • 0 means the WebView should use an Android user-agent string
    • - *
    • 1 means the WebView should use a desktop user-agent string
    • - *
    - * Other values are ignored. The default is an Android user-agent string, i.e. - * code value 0. - * - * @param ua the integer code for the user-agent string - * @deprecated Please use {@link #setUserAgentString} instead. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} - */ - @Deprecated - public abstract void setUserAgent(int ua); - - /** - * Gets the user-agent as an integer code. - *
      - *
    • -1 means the WebView is using a custom user-agent string set with - * {@link #setUserAgentString}
    • - *
    • 0 means the WebView should use an Android user-agent string
    • - *
    • 1 means the WebView should use a desktop user-agent string
    • - *
    - * - * @return the integer code for the user-agent string - * @see #setUserAgent - * @deprecated Please use {@link #getUserAgentString} instead. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} - */ - @Deprecated - public abstract int getUserAgent(); - - /** - * Sets whether the WebView should enable support for the "viewport" - * HTML meta tag or should use a wide viewport. When the value of the setting is - * {@code false}, the layout width is always set to the width of the WebView - * control in device-independent (CSS) pixels. When the value is {@code true} - * and the page contains the viewport meta tag, the value of the width specified - * in the tag is used. If the page does not contain the tag or does not provide - * a width, then a wide viewport will be used. - * - * @param use whether to enable support for the viewport meta tag - */ - public abstract void setUseWideViewPort(boolean use); - - /** - * Gets whether the WebView supports the "viewport" HTML meta tag or - * will use a wide viewport. - * - * @return {@code true} if the WebView supports the viewport meta tag - * @see #setUseWideViewPort - */ - public abstract boolean getUseWideViewPort(); - - /** - * Sets whether the WebView whether supports multiple windows. If set to true, - * {@link WebChromeClient#onCreateWindow} must be implemented by the host - * application. The default is {@code false}. - * - * @param support whether to support multiple windows - */ - public abstract void setSupportMultipleWindows(boolean support); - - /** - * Gets whether the WebView supports multiple windows. - * - * @return {@code true} if the WebView supports multiple windows - * @see #setSupportMultipleWindows - */ - public abstract boolean supportMultipleWindows(); - - /** - * Sets the underlying layout algorithm. This will cause a re-layout of the - * WebView. The default is {@link LayoutAlgorithm#NARROW_COLUMNS}. - * - * @param l the layout algorithm to use, as a {@link LayoutAlgorithm} value - */ - public abstract void setLayoutAlgorithm(LayoutAlgorithm l); - - /** - * Gets the current layout algorithm. - * - * @return the layout algorithm in use, as a {@link LayoutAlgorithm} value - * @see #setLayoutAlgorithm - */ - public abstract LayoutAlgorithm getLayoutAlgorithm(); - - /** - * Sets the standard font family name. The default is "sans-serif". - * - * @param font a font family name - */ - public abstract void setStandardFontFamily(String font); - - /** - * Gets the standard font family name. - * - * @return the standard font family name as a string - * @see #setStandardFontFamily - */ - public abstract String getStandardFontFamily(); - - /** - * Sets the fixed font family name. The default is "monospace". - * - * @param font a font family name - */ - public abstract void setFixedFontFamily(String font); - - /** - * Gets the fixed font family name. - * - * @return the fixed font family name as a string - * @see #setFixedFontFamily - */ - public abstract String getFixedFontFamily(); - - /** - * Sets the sans-serif font family name. The default is "sans-serif". - * - * @param font a font family name - */ - public abstract void setSansSerifFontFamily(String font); - - /** - * Gets the sans-serif font family name. - * - * @return the sans-serif font family name as a string - * @see #setSansSerifFontFamily - */ - public abstract String getSansSerifFontFamily(); - - /** - * Sets the serif font family name. The default is "sans-serif". - * - * @param font a font family name - */ - public abstract void setSerifFontFamily(String font); - - /** - * Gets the serif font family name. The default is "serif". - * - * @return the serif font family name as a string - * @see #setSerifFontFamily - */ - public abstract String getSerifFontFamily(); - - /** - * Sets the cursive font family name. The default is "cursive". - * - * @param font a font family name - */ - public abstract void setCursiveFontFamily(String font); - - /** - * Gets the cursive font family name. - * - * @return the cursive font family name as a string - * @see #setCursiveFontFamily - */ +abstract public class WebSettings +{ + public WebSettings(){} + public WebSettings.TextSize getTextSize(){ return null; } public abstract String getCursiveFontFamily(); - - /** - * Sets the fantasy font family name. The default is "fantasy". - * - * @param font a font family name - */ - public abstract void setFantasyFontFamily(String font); - - /** - * Gets the fantasy font family name. - * - * @return the fantasy font family name as a string - * @see #setFantasyFontFamily - */ - public abstract String getFantasyFontFamily(); - - /** - * Sets the minimum font size. The default is 8. - * - * @param size a non-negative integer between 1 and 72. Any number outside the - * specified range will be pinned. - */ - public abstract void setMinimumFontSize(int size); - - /** - * Gets the minimum font size. - * - * @return a non-negative integer between 1 and 72 - * @see #setMinimumFontSize - */ - public abstract int getMinimumFontSize(); - - /** - * Sets the minimum logical font size. The default is 8. - * - * @param size a non-negative integer between 1 and 72. Any number outside the - * specified range will be pinned. - */ - public abstract void setMinimumLogicalFontSize(int size); - - /** - * Gets the minimum logical font size. - * - * @return a non-negative integer between 1 and 72 - * @see #setMinimumLogicalFontSize - */ - public abstract int getMinimumLogicalFontSize(); - - /** - * Sets the default font size. The default is 16. - * - * @param size a non-negative integer between 1 and 72. Any number outside the - * specified range will be pinned. - */ - public abstract void setDefaultFontSize(int size); - - /** - * Gets the default font size. - * - * @return a non-negative integer between 1 and 72 - * @see #setDefaultFontSize - */ - public abstract int getDefaultFontSize(); - - /** - * Sets the default fixed font size. The default is 16. - * - * @param size a non-negative integer between 1 and 72. Any number outside the - * specified range will be pinned. - */ - public abstract void setDefaultFixedFontSize(int size); - - /** - * Gets the default fixed font size. - * - * @return a non-negative integer between 1 and 72 - * @see #setDefaultFixedFontSize - */ - public abstract int getDefaultFixedFontSize(); - - /** - * Sets whether the WebView should load image resources. Note that this method - * controls loading of all images, including those embedded using the data URI - * scheme. Use {@link #setBlockNetworkImage} to control loading only of images - * specified using network URI schemes. Note that if the value of this setting - * is changed from {@code false} to {@code true}, all images resources - * referenced by content currently displayed by the WebView are loaded - * automatically. The default is {@code true}. - * - * @param flag whether the WebView should load image resources - */ - public abstract void setLoadsImagesAutomatically(boolean flag); - - /** - * Gets whether the WebView loads image resources. This includes images embedded - * using the data URI scheme. - * - * @return {@code true} if the WebView loads image resources - * @see #setLoadsImagesAutomatically - */ - public abstract boolean getLoadsImagesAutomatically(); - - /** - * Sets whether the WebView should not load image resources from the network - * (resources accessed via http and https URI schemes). Note that this method - * has no effect unless {@link #getLoadsImagesAutomatically} returns - * {@code true}. Also note that disabling all network loads using - * {@link #setBlockNetworkLoads} will also prevent network images from loading, - * even if this flag is set to false. When the value of this setting is changed - * from {@code true} to {@code false}, network images resources referenced by - * content currently displayed by the WebView are fetched automatically. The - * default is {@code false}. - * - * @param flag whether the WebView should not load image resources from the - * network - * @see #setBlockNetworkLoads - */ - public abstract void setBlockNetworkImage(boolean flag); - - /** - * Gets whether the WebView does not load image resources from the network. - * - * @return {@code true} if the WebView does not load image resources from the - * network - * @see #setBlockNetworkImage - */ - public abstract boolean getBlockNetworkImage(); - - /** - * Sets whether the WebView should not load resources from the network. Use - * {@link #setBlockNetworkImage} to only avoid loading image resources. Note - * that if the value of this setting is changed from {@code true} to - * {@code false}, network resources referenced by content currently displayed by - * the WebView are not fetched until {@link android.webkit.WebView#reload} is - * called. If the application does not have the - * {@link android.Manifest.permission#INTERNET} permission, attempts to set a - * value of {@code false} will cause a {@link java.lang.SecurityException} to be - * thrown. The default value is {@code false} if the application has the - * {@link android.Manifest.permission#INTERNET} permission, otherwise it is - * {@code true}. - * - * @param flag {@code true} means block network loads by the WebView - * @see android.webkit.WebView#reload - */ - public abstract void setBlockNetworkLoads(boolean flag); - - /** - * Gets whether the WebView does not load any resources from the network. - * - * @return {@code true} if the WebView does not load any resources from the - * network - * @see #setBlockNetworkLoads - */ - public abstract boolean getBlockNetworkLoads(); - - /** - * Tells the WebView to enable JavaScript execution. The default is - * {@code false}. - * - * @param flag {@code true} if the WebView should execute JavaScript - */ - public abstract void setJavaScriptEnabled(boolean flag); - - /** - * Sets whether JavaScript running in the context of a file scheme URL should be - * allowed to access content from any origin. This includes access to content - * from other file scheme URLs. See {@link #setAllowFileAccessFromFileURLs}. To - * enable the most restrictive, and therefore secure policy, this setting should - * be disabled. Note that this setting affects only JavaScript access to file - * scheme resources. Other access to such resources, for example, from image - * HTML elements, is unaffected. To prevent possible violation of same domain - * policy when targeting - * {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1} and earlier, - * you should explicitly set this value to {@code false}. - *

    - * The default value is {@code true} for apps targeting - * {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1} and below, and - * {@code false} when targeting - * {@link android.os.Build.VERSION_CODES#JELLY_BEAN} and above. - * - * @param flag whether JavaScript running in the context of a file scheme URL - * should be allowed to access content from any origin - */ - public abstract void setAllowUniversalAccessFromFileURLs(boolean flag); - - /** - * Sets whether JavaScript running in the context of a file scheme URL should be - * allowed to access content from other file scheme URLs. To enable the most - * restrictive, and therefore secure, policy this setting should be disabled. - * Note that the value of this setting is ignored if the value of - * {@link #getAllowUniversalAccessFromFileURLs} is {@code true}. Note too, that - * this setting affects only JavaScript access to file scheme resources. Other - * access to such resources, for example, from image HTML elements, is - * unaffected. To prevent possible violation of same domain policy when - * targeting {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1} and - * earlier, you should explicitly set this value to {@code false}. - *

    - * The default value is {@code true} for apps targeting - * {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1} and below, and - * {@code false} when targeting - * {@link android.os.Build.VERSION_CODES#JELLY_BEAN} and above. - * - * @param flag whether JavaScript running in the context of a file scheme URL - * should be allowed to access content from other file scheme URLs - */ - public abstract void setAllowFileAccessFromFileURLs(boolean flag); - - /** - * Sets whether the WebView should enable plugins. The default is {@code false}. - * - * @param flag {@code true} if plugins should be enabled - * @deprecated This method has been deprecated in favor of - * {@link #setPluginState} - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2} - */ - @Deprecated - public abstract void setPluginsEnabled(boolean flag); - - /** - * Tells the WebView to enable, disable, or have plugins on demand. On demand - * mode means that if a plugin exists that can handle the embedded content, a - * placeholder icon will be shown instead of the plugin. When the placeholder is - * clicked, the plugin will be enabled. The default is {@link PluginState#OFF}. - * - * @param state a PluginState value - * @deprecated Plugins will not be supported in future, and should not be used. - */ - @Deprecated - public abstract void setPluginState(PluginState state); - - /** - * Sets a custom path to plugins used by the WebView. This method is obsolete - * since each plugin is now loaded from its own package. - * - * @param pluginsPath a String path to the directory containing plugins - * @deprecated This method is no longer used as plugins are loaded from their - * own APK via the system's package manager. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2} - */ - @Deprecated - public void setPluginsPath(String pluginsPath) { - // Specified to do nothing, so no need for derived classes to override. - } - - /** - * Sets the path to where database storage API databases should be saved. In - * order for the database storage API to function correctly, this method must be - * called with a path to which the application can write. This method should - * only be called once: repeated calls are ignored. - * - * @param databasePath a path to the directory where databases should be saved. - * @deprecated Database paths are managed by the implementation and calling this - * method will have no effect. - */ - @Deprecated - public abstract void setDatabasePath(String databasePath); - - /** - * Sets the path where the Geolocation databases should be saved. In order for - * Geolocation permissions and cached positions to be persisted, this method - * must be called with a path to which the application can write. - * - * @param databasePath a path to the directory where databases should be saved. - * @deprecated Geolocation database are managed by the implementation and - * calling this method will have no effect. - */ - @Deprecated - public abstract void setGeolocationDatabasePath(String databasePath); - - /** - * Sets whether the Application Caches API should be enabled. The default is - * {@code false}. Note that in order for the Application Caches API to be - * enabled, a valid database path must also be supplied to - * {@link #setAppCachePath}. - * - * @param flag {@code true} if the WebView should enable Application Caches - */ - public abstract void setAppCacheEnabled(boolean flag); - - /** - * Sets the path to the Application Caches files. In order for the Application - * Caches API to be enabled, this method must be called with a path to which the - * application can write. This method should only be called once: repeated calls - * are ignored. - * - * @param appCachePath a String path to the directory containing Application - * Caches files. - * @see #setAppCacheEnabled - */ - public abstract void setAppCachePath(String appCachePath); - - /** - * Sets the maximum size for the Application Cache content. The passed size will - * be rounded to the nearest value that the database can support, so this should - * be viewed as a guide, not a hard limit. Setting the size to a value less than - * current database size does not cause the database to be trimmed. The default - * size is {@link Long#MAX_VALUE}. It is recommended to leave the maximum size - * set to the default value. - * - * @param appCacheMaxSize the maximum size in bytes - * @deprecated In future quota will be managed automatically. - */ - @Deprecated - public abstract void setAppCacheMaxSize(long appCacheMaxSize); - - /** - * Sets whether the database storage API is enabled. The default value is false. - * See also {@link #setDatabasePath} for how to correctly set up the database - * storage API. - * - * This setting is global in effect, across all WebView instances in a process. - * Note you should only modify this setting prior to making any WebView - * page load within a given process, as the WebView implementation may ignore - * changes to this setting after that point. - * - * @param flag {@code true} if the WebView should use the database storage API - */ - public abstract void setDatabaseEnabled(boolean flag); - - /** - * Sets whether the DOM storage API is enabled. The default value is - * {@code false}. - * - * @param flag {@code true} if the WebView should use the DOM storage API - */ - public abstract void setDomStorageEnabled(boolean flag); - - /** - * Gets whether the DOM Storage APIs are enabled. - * - * @return {@code true} if the DOM Storage APIs are enabled - * @see #setDomStorageEnabled - */ - public abstract boolean getDomStorageEnabled(); - - /** - * Gets the path to where database storage API databases are saved. - * - * @return the String path to the database storage API databases - * @see #setDatabasePath - * @deprecated Database paths are managed by the implementation this method is - * obsolete. - */ - @Deprecated public abstract String getDatabasePath(); - - /** - * Gets whether the database storage API is enabled. - * - * @return {@code true} if the database storage API is enabled - * @see #setDatabaseEnabled - */ - public abstract boolean getDatabaseEnabled(); - - /** - * Sets whether Geolocation is enabled. The default is {@code true}. - *

    - * Please note that in order for the Geolocation API to be usable by a page in - * the WebView, the following requirements must be met: - *

      - *
    • an application must have permission to access the device location, see - * {@link android.Manifest.permission#ACCESS_COARSE_LOCATION}, - * {@link android.Manifest.permission#ACCESS_FINE_LOCATION}; - *
    • an application must provide an implementation of the - * {@link WebChromeClient#onGeolocationPermissionsShowPrompt} callback to - * receive notifications that a page is requesting access to location via the - * JavaScript Geolocation API. - *
    - *

    - * - * @param flag whether Geolocation should be enabled - */ - public abstract void setGeolocationEnabled(boolean flag); - - /** - * Gets whether JavaScript is enabled. - * - * @return {@code true} if JavaScript is enabled - * @see #setJavaScriptEnabled - */ - public abstract boolean getJavaScriptEnabled(); - - /** - * Gets whether JavaScript running in the context of a file scheme URL can - * access content from any origin. This includes access to content from other - * file scheme URLs. - * - * @return whether JavaScript running in the context of a file scheme URL can - * access content from any origin - * @see #setAllowUniversalAccessFromFileURLs - */ - public abstract boolean getAllowUniversalAccessFromFileURLs(); - - /** - * Gets whether JavaScript running in the context of a file scheme URL can - * access content from other file scheme URLs. - * - * @return whether JavaScript running in the context of a file scheme URL can - * access content from other file scheme URLs - * @see #setAllowFileAccessFromFileURLs - */ - public abstract boolean getAllowFileAccessFromFileURLs(); - - /** - * Gets whether plugins are enabled. - * - * @return {@code true} if plugins are enabled - * @see #setPluginsEnabled - * @deprecated This method has been replaced by {@link #getPluginState} - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2} - */ - @Deprecated - public abstract boolean getPluginsEnabled(); - - /** - * Gets the current state regarding whether plugins are enabled. - * - * @return the plugin state as a {@link PluginState} value - * @see #setPluginState - * @deprecated Plugins will not be supported in future, and should not be used. - */ - @Deprecated - public abstract PluginState getPluginState(); - - /** - * Gets the directory that contains the plugin libraries. This method is - * obsolete since each plugin is now loaded from its own package. - * - * @return an empty string - * @deprecated This method is no longer used as plugins are loaded from their - * own APK via the system's package manager. - * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2} - */ - @Deprecated - public String getPluginsPath() { - // Unconditionally returns empty string, so no need for derived classes to - // override. - return ""; - } - - /** - * Tells JavaScript to open windows automatically. This applies to the - * JavaScript function {@code window.open()}. The default is {@code false}. - * - * @param flag {@code true} if JavaScript can open windows automatically - */ - public abstract void setJavaScriptCanOpenWindowsAutomatically(boolean flag); - - /** - * Gets whether JavaScript can open windows automatically. - * - * @return {@code true} if JavaScript can open windows automatically during - * {@code window.open()} - * @see #setJavaScriptCanOpenWindowsAutomatically - */ - public abstract boolean getJavaScriptCanOpenWindowsAutomatically(); - - /** - * Sets the default text encoding name to use when decoding html pages. The - * default is "UTF-8". - * - * @param encoding the text encoding name - */ - public abstract void setDefaultTextEncodingName(String encoding); - - /** - * Gets the default text encoding name. - * - * @return the default text encoding name as a string - * @see #setDefaultTextEncodingName - */ public abstract String getDefaultTextEncodingName(); - - /** - * Sets the WebView's user-agent string. If the string is {@code null} or empty, - * the system default value will be used. - * - * Note that starting from {@link android.os.Build.VERSION_CODES#KITKAT} Android - * version, changing the user-agent while loading a web page causes WebView to - * initiate loading once again. - * - * @param ua new user-agent string - */ - public abstract void setUserAgentString(String ua); - - /** - * Gets the WebView's user-agent string. - * - * @return the WebView's user-agent string - * @see #setUserAgentString - */ + public abstract String getFantasyFontFamily(); + public abstract String getFixedFontFamily(); + public abstract String getSansSerifFontFamily(); + public abstract String getSerifFontFamily(); + public abstract String getStandardFontFamily(); public abstract String getUserAgentString(); - - /** - * Returns the default User-Agent used by a WebView. An instance of WebView - * could use a different User-Agent if a call is made to - * {@link WebSettings#setUserAgentString(String)}. - * - * @param context a Context object used to access application assets - */ - public static String getDefaultUserAgent(Context context) { - return null; - } - - /** - * Tells the WebView whether it needs to set a node to have focus when - * {@link WebView#requestFocus(int, android.graphics.Rect)} is called. The - * default value is {@code true}. - * - * @param flag whether the WebView needs to set a node - */ - public abstract void setNeedInitialFocus(boolean flag); - - /** - * Sets the priority of the Render thread. Unlike the other settings, this one - * only needs to be called once per process. The default value is - * {@link RenderPriority#NORMAL}. - * - * @param priority the priority - * @deprecated It is not recommended to adjust thread priorities, and this will - * not be supported in future versions. - */ - @Deprecated - public abstract void setRenderPriority(RenderPriority priority); - - /** - * Overrides the way the cache is used. The way the cache is used is based on - * the navigation type. For a normal page load, the cache is checked and content - * is re-validated as needed. When navigating back, content is not revalidated, - * instead the content is just retrieved from the cache. This method allows the - * client to override this behavior by specifying one of {@link #LOAD_DEFAULT}, - * {@link #LOAD_CACHE_ELSE_NETWORK}, {@link #LOAD_NO_CACHE} or - * {@link #LOAD_CACHE_ONLY}. The default value is {@link #LOAD_DEFAULT}. - * - * @param mode the mode to use - */ - public abstract void setCacheMode(@CacheMode int mode); - - /** - * Gets the current setting for overriding the cache mode. - * - * @return the current setting for overriding the cache mode - * @see #setCacheMode - */ - public abstract int getCacheMode(); - - /** - * Configures the WebView's behavior when a secure origin attempts to load a - * resource from an insecure origin. - * - * By default, apps that target {@link android.os.Build.VERSION_CODES#KITKAT} or - * below default to {@link #MIXED_CONTENT_ALWAYS_ALLOW}. Apps targeting - * {@link android.os.Build.VERSION_CODES#LOLLIPOP} default to - * {@link #MIXED_CONTENT_NEVER_ALLOW}. - * - * The preferred and most secure mode of operation for the WebView is - * {@link #MIXED_CONTENT_NEVER_ALLOW} and use of - * {@link #MIXED_CONTENT_ALWAYS_ALLOW} is strongly discouraged. - * - * @param mode The mixed content mode to use. One of - * {@link #MIXED_CONTENT_NEVER_ALLOW}, - * {@link #MIXED_CONTENT_ALWAYS_ALLOW} or - * {@link #MIXED_CONTENT_COMPATIBILITY_MODE}. - */ - public abstract void setMixedContentMode(int mode); - - /** - * Gets the current behavior of the WebView with regard to loading insecure - * content from a secure origin. - * - * @return The current setting, one of {@link #MIXED_CONTENT_NEVER_ALLOW}, - * {@link #MIXED_CONTENT_ALWAYS_ALLOW} or - * {@link #MIXED_CONTENT_COMPATIBILITY_MODE}. - */ - public abstract int getMixedContentMode(); - - /** - * Sets whether to use a video overlay for embedded encrypted video. In API - * levels prior to {@link android.os.Build.VERSION_CODES#LOLLIPOP}, encrypted - * video can only be rendered directly on a secure video surface, so it had been - * a hard problem to play encrypted video in HTML. When this flag is on, WebView - * can play encrypted video (MSE/EME) by using a video overlay (aka - * hole-punching) for videos embedded using HTML <video> tag.
    - * Caution: This setting is intended for use only in a narrow set of - * circumstances and apps should only enable it if they require playback of - * encrypted video content. It will impose the following limitations on the - * WebView: - *

      - *
    • Only one video overlay can be played at a time. - *
    • Changes made to position or dimensions of a video element may be - * propagated to the corresponding video overlay with a noticeable delay. - *
    • The video overlay is not visible to web APIs and as such may not interact - * with script or styling. For example, CSS styles applied to the <video> - * tag may be ignored. - *
    - * This is not an exhaustive set of constraints and it may vary with new - * versions of the WebView. - * - * @hide - */ - public abstract void setVideoOverlayForEmbeddedEncryptedVideoEnabled(boolean flag); - - /** - * Gets whether a video overlay will be used for embedded encrypted video. - * - * @return {@code true} if WebView uses a video overlay for embedded encrypted - * video. - * @see #setVideoOverlayForEmbeddedEncryptedVideoEnabled - * @hide - */ - public abstract boolean getVideoOverlayForEmbeddedEncryptedVideoEnabled(); - - /** - * Sets whether this WebView should raster tiles when it is offscreen but - * attached to a window. Turning this on can avoid rendering artifacts when - * animating an offscreen WebView on-screen. Offscreen WebViews in this mode use - * more memory. The default value is false.
    - * Please follow these guidelines to limit memory usage: - *
      - *
    • WebView size should be not be larger than the device screen size. - *
    • Limit use of this mode to a small number of WebViews. Use it for visible - * WebViews and WebViews about to be animated to visible. - *
    - */ - public abstract void setOffscreenPreRaster(boolean enabled); - - /** - * Gets whether this WebView should raster tiles when it is offscreen but - * attached to a window. - * - * @return {@code true} if this WebView will raster tiles when it is offscreen - * but attached to a window. - */ + public abstract WebSettings.LayoutAlgorithm getLayoutAlgorithm(); + public abstract WebSettings.PluginState getPluginState(); + public abstract WebSettings.ZoomDensity getDefaultZoom(); + public abstract boolean enableSmoothTransition(); + public abstract boolean getAllowContentAccess(); + public abstract boolean getAllowFileAccess(); + public abstract boolean getAllowFileAccessFromFileURLs(); + public abstract boolean getAllowUniversalAccessFromFileURLs(); + public abstract boolean getBlockNetworkImage(); + public abstract boolean getBlockNetworkLoads(); + public abstract boolean getBuiltInZoomControls(); + public abstract boolean getDatabaseEnabled(); + public abstract boolean getDisplayZoomControls(); + public abstract boolean getDomStorageEnabled(); + public abstract boolean getJavaScriptCanOpenWindowsAutomatically(); + public abstract boolean getJavaScriptEnabled(); + public abstract boolean getLightTouchEnabled(); + public abstract boolean getLoadWithOverviewMode(); + public abstract boolean getLoadsImagesAutomatically(); + public abstract boolean getMediaPlaybackRequiresUserGesture(); public abstract boolean getOffscreenPreRaster(); - - /** - * Sets whether Safe Browsing is enabled. Safe Browsing allows WebView to - * protect against malware and phishing attacks by verifying the links. - * - *

    - * Safe Browsing can be disabled for all WebViews using a manifest tag (read - * general Safe - * Browsing info). The manifest tag has a lower precedence than this API. - * - *

    - * Safe Browsing is enabled by default for devices which support it. - * - * @param enabled Whether Safe Browsing is enabled. - */ - public abstract void setSafeBrowsingEnabled(boolean enabled); - - /** - * Gets whether Safe Browsing is enabled. See {@link #setSafeBrowsingEnabled}. - * - * @return {@code true} if Safe Browsing is enabled and {@code false} otherwise. - */ public abstract boolean getSafeBrowsingEnabled(); + public abstract boolean getSaveFormData(); + public abstract boolean getSavePassword(); + public abstract boolean getUseWideViewPort(); + public abstract boolean supportMultipleWindows(); + public abstract boolean supportZoom(); + public abstract int getCacheMode(); + public abstract int getDefaultFixedFontSize(); + public abstract int getDefaultFontSize(); + public abstract int getDisabledActionModeMenuItems(); + public abstract int getMinimumFontSize(); + public abstract int getMinimumLogicalFontSize(); + public abstract int getMixedContentMode(); + public abstract int getTextZoom(); + public abstract void setAllowContentAccess(boolean p0); + public abstract void setAllowFileAccess(boolean p0); + public abstract void setAllowFileAccessFromFileURLs(boolean p0); + public abstract void setAllowUniversalAccessFromFileURLs(boolean p0); + public abstract void setAppCacheEnabled(boolean p0); + public abstract void setAppCacheMaxSize(long p0); + public abstract void setAppCachePath(String p0); + public abstract void setBlockNetworkImage(boolean p0); + public abstract void setBlockNetworkLoads(boolean p0); + public abstract void setBuiltInZoomControls(boolean p0); + public abstract void setCacheMode(int p0); + public abstract void setCursiveFontFamily(String p0); + public abstract void setDatabaseEnabled(boolean p0); + public abstract void setDatabasePath(String p0); + public abstract void setDefaultFixedFontSize(int p0); + public abstract void setDefaultFontSize(int p0); + public abstract void setDefaultTextEncodingName(String p0); + public abstract void setDefaultZoom(WebSettings.ZoomDensity p0); + public abstract void setDisabledActionModeMenuItems(int p0); + public abstract void setDisplayZoomControls(boolean p0); + public abstract void setDomStorageEnabled(boolean p0); + public abstract void setEnableSmoothTransition(boolean p0); + public abstract void setFantasyFontFamily(String p0); + public abstract void setFixedFontFamily(String p0); + public abstract void setGeolocationDatabasePath(String p0); + public abstract void setGeolocationEnabled(boolean p0); + public abstract void setJavaScriptCanOpenWindowsAutomatically(boolean p0); + public abstract void setJavaScriptEnabled(boolean p0); + public abstract void setLayoutAlgorithm(WebSettings.LayoutAlgorithm p0); + public abstract void setLightTouchEnabled(boolean p0); + public abstract void setLoadWithOverviewMode(boolean p0); + public abstract void setLoadsImagesAutomatically(boolean p0); + public abstract void setMediaPlaybackRequiresUserGesture(boolean p0); + public abstract void setMinimumFontSize(int p0); + public abstract void setMinimumLogicalFontSize(int p0); + public abstract void setMixedContentMode(int p0); + public abstract void setNeedInitialFocus(boolean p0); + public abstract void setOffscreenPreRaster(boolean p0); + public abstract void setPluginState(WebSettings.PluginState p0); + public abstract void setRenderPriority(WebSettings.RenderPriority p0); + public abstract void setSafeBrowsingEnabled(boolean p0); + public abstract void setSansSerifFontFamily(String p0); + public abstract void setSaveFormData(boolean p0); + public abstract void setSavePassword(boolean p0); + public abstract void setSerifFontFamily(String p0); + public abstract void setStandardFontFamily(String p0); + public abstract void setSupportMultipleWindows(boolean p0); + public abstract void setSupportZoom(boolean p0); + public abstract void setTextZoom(int p0); + public abstract void setUseWideViewPort(boolean p0); + public abstract void setUserAgentString(String p0); + public int getForceDark(){ return 0; } + public static String getDefaultUserAgent(Context p0){ return null; } + public static int FORCE_DARK_AUTO = 0; + public static int FORCE_DARK_OFF = 0; + public static int FORCE_DARK_ON = 0; + public static int LOAD_CACHE_ELSE_NETWORK = 0; + public static int LOAD_CACHE_ONLY = 0; + public static int LOAD_DEFAULT = 0; + public static int LOAD_NORMAL = 0; + public static int LOAD_NO_CACHE = 0; + public static int MENU_ITEM_NONE = 0; + public static int MENU_ITEM_PROCESS_TEXT = 0; + public static int MENU_ITEM_SHARE = 0; + public static int MENU_ITEM_WEB_SEARCH = 0; + public static int MIXED_CONTENT_ALWAYS_ALLOW = 0; + public static int MIXED_CONTENT_COMPATIBILITY_MODE = 0; + public static int MIXED_CONTENT_NEVER_ALLOW = 0; + public void setForceDark(int p0){} + public void setTextSize(WebSettings.TextSize p0){} + static public enum LayoutAlgorithm + { + NARROW_COLUMNS, NORMAL, SINGLE_COLUMN, TEXT_AUTOSIZING; + private LayoutAlgorithm() {} + } + static public enum PluginState + { + OFF, ON, ON_DEMAND; + private PluginState() {} + } + static public enum RenderPriority + { + HIGH, LOW, NORMAL; + private RenderPriority() {} + } + static public enum TextSize + { + LARGER, LARGEST, NORMAL, SMALLER, SMALLEST; + private TextSize() {} + } + static public enum ZoomDensity + { + CLOSE, FAR, MEDIUM; + private ZoomDensity() {} + } } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebStorage.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebStorage.java new file mode 100644 index 00000000000..c63a282b454 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebStorage.java @@ -0,0 +1,21 @@ +// Generated automatically from android.webkit.WebStorage for testing purposes + +package android.webkit; + +import android.webkit.ValueCallback; +import java.util.Map; + +public class WebStorage +{ + public static WebStorage getInstance(){ return null; } + public void deleteAllData(){} + public void deleteOrigin(String p0){} + public void getOrigins(ValueCallback p0){} + public void getQuotaForOrigin(String p0, ValueCallback p1){} + public void getUsageForOrigin(String p0, ValueCallback p1){} + public void setQuotaForOrigin(String p0, long p1){} + static public interface QuotaUpdater + { + void updateQuota(long p0); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebView.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebView.java index 3065a9df966..b654cc05f61 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebView.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebView.java @@ -1,151 +1,259 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ +// Generated automatically from android.webkit.WebView for testing purposes package android.webkit; import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.res.Configuration; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Picture; +import android.graphics.Rect; +import android.net.Uri; +import android.net.http.SslCertificate; +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.os.Message; +import android.print.PrintDocumentAdapter; +import android.util.AttributeSet; +import android.util.LongSparseArray; +import android.util.SparseArray; +import android.view.DragEvent; +import android.view.KeyEvent; +import android.view.MotionEvent; import android.view.View; +import android.view.ViewGroup; +import android.view.ViewStructure; +import android.view.ViewTreeObserver; +import android.view.WindowInsets; +import android.view.accessibility.AccessibilityNodeProvider; +import android.view.autofill.AutofillId; +import android.view.autofill.AutofillValue; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputConnection; +import android.view.textclassifier.TextClassifier; +import android.view.translation.TranslationCapability; +import android.view.translation.ViewTranslationRequest; +import android.view.translation.ViewTranslationResponse; +import android.webkit.DownloadListener; +import android.webkit.ValueCallback; +import android.webkit.WebBackForwardList; +import android.webkit.WebChromeClient; +import android.webkit.WebMessage; +import android.webkit.WebMessagePort; +import android.webkit.WebSettings; +import android.webkit.WebViewClient; +import android.webkit.WebViewRenderProcess; +import android.webkit.WebViewRenderProcessClient; +import android.widget.AbsoluteLayout; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Executor; +import java.util.function.Consumer; -public class WebView extends View { - - public WebView(Context context) { - super(context); +public class WebView extends AbsoluteLayout implements ViewGroup.OnHierarchyChangeListener, ViewTreeObserver.OnGlobalFocusChangeListener +{ + protected WebView() {} + abstract static public class VisualStateCallback + { + public VisualStateCallback(){} + public abstract void onComplete(long p0); } - - public void setHorizontalScrollbarOverlay(boolean overlay) {} - - public void setVerticalScrollbarOverlay(boolean overlay) {} - - public boolean overlayHorizontalScrollbar() { - return false; + protected int computeHorizontalScrollOffset(){ return 0; } + protected int computeHorizontalScrollRange(){ return 0; } + protected int computeVerticalScrollExtent(){ return 0; } + protected int computeVerticalScrollOffset(){ return 0; } + protected int computeVerticalScrollRange(){ return 0; } + protected void dispatchDraw(Canvas p0){} + protected void onAttachedToWindow(){} + protected void onConfigurationChanged(Configuration p0){} + protected void onDraw(Canvas p0){} + protected void onFocusChanged(boolean p0, int p1, Rect p2){} + protected void onMeasure(int p0, int p1){} + protected void onOverScrolled(int p0, int p1, boolean p2, boolean p3){} + protected void onScrollChanged(int p0, int p1, int p2, int p3){} + protected void onSizeChanged(int p0, int p1, int p2, int p3){} + protected void onVisibilityChanged(View p0, int p1){} + protected void onWindowVisibilityChanged(int p0){} + public AccessibilityNodeProvider getAccessibilityNodeProvider(){ return null; } + public Bitmap getFavicon(){ return null; } + public CharSequence getAccessibilityClassName(){ return null; } + public Handler getHandler(){ return null; } + public InputConnection onCreateInputConnection(EditorInfo p0){ return null; } + public Looper getWebViewLooper(){ return null; } + public Picture capturePicture(){ return null; } + public PrintDocumentAdapter createPrintDocumentAdapter(){ return null; } + public PrintDocumentAdapter createPrintDocumentAdapter(String p0){ return null; } + public SslCertificate getCertificate(){ return null; } + public String getOriginalUrl(){ return null; } + public String getTitle(){ return null; } + public String getUrl(){ return null; } + public String[] getHttpAuthUsernamePassword(String p0, String p1){ return null; } + public TextClassifier getTextClassifier(){ return null; } + public View findFocus(){ return null; } + public WebBackForwardList copyBackForwardList(){ return null; } + public WebBackForwardList restoreState(Bundle p0){ return null; } + public WebBackForwardList saveState(Bundle p0){ return null; } + public WebChromeClient getWebChromeClient(){ return null; } + public WebMessagePort[] createWebMessageChannel(){ return null; } + public WebSettings getSettings(){ return null; } + public WebView(Context p0){} + public WebView(Context p0, AttributeSet p1){} + public WebView(Context p0, AttributeSet p1, int p2){} + public WebView(Context p0, AttributeSet p1, int p2, boolean p3){} + public WebView(Context p0, AttributeSet p1, int p2, int p3){} + public WebView.HitTestResult getHitTestResult(){ return null; } + public WebViewClient getWebViewClient(){ return null; } + public WebViewRenderProcess getWebViewRenderProcess(){ return null; } + public WebViewRenderProcessClient getWebViewRenderProcessClient(){ return null; } + public WindowInsets onApplyWindowInsets(WindowInsets p0){ return null; } + public boolean canGoBack(){ return false; } + public boolean canGoBackOrForward(int p0){ return false; } + public boolean canGoForward(){ return false; } + public boolean canZoomIn(){ return false; } + public boolean canZoomOut(){ return false; } + public boolean dispatchKeyEvent(KeyEvent p0){ return false; } + public boolean getRendererPriorityWaivedWhenNotVisible(){ return false; } + public boolean isPrivateBrowsingEnabled(){ return false; } + public boolean isVisibleToUserForAutofill(int p0){ return false; } + public boolean onCheckIsTextEditor(){ return false; } + public boolean onDragEvent(DragEvent p0){ return false; } + public boolean onGenericMotionEvent(MotionEvent p0){ return false; } + public boolean onHoverEvent(MotionEvent p0){ return false; } + public boolean onKeyDown(int p0, KeyEvent p1){ return false; } + public boolean onKeyMultiple(int p0, int p1, KeyEvent p2){ return false; } + public boolean onKeyUp(int p0, KeyEvent p1){ return false; } + public boolean onTouchEvent(MotionEvent p0){ return false; } + public boolean onTrackballEvent(MotionEvent p0){ return false; } + public boolean overlayHorizontalScrollbar(){ return false; } + public boolean overlayVerticalScrollbar(){ return false; } + public boolean pageDown(boolean p0){ return false; } + public boolean pageUp(boolean p0){ return false; } + public boolean performLongClick(){ return false; } + public boolean requestChildRectangleOnScreen(View p0, Rect p1, boolean p2){ return false; } + public boolean requestFocus(int p0, Rect p1){ return false; } + public boolean shouldDelayChildPressedState(){ return false; } + public boolean showFindDialog(String p0, boolean p1){ return false; } + public boolean zoomIn(){ return false; } + public boolean zoomOut(){ return false; } + public float getScale(){ return 0; } + public int findAll(String p0){ return 0; } + public int getContentHeight(){ return 0; } + public int getProgress(){ return 0; } + public int getRendererRequestedPriority(){ return 0; } + public static ClassLoader getWebViewClassLoader(){ return null; } + public static PackageInfo getCurrentWebViewPackage(){ return null; } + public static String SCHEME_GEO = null; + public static String SCHEME_MAILTO = null; + public static String SCHEME_TEL = null; + public static String findAddress(String p0){ return null; } + public static Uri getSafeBrowsingPrivacyPolicyUrl(){ return null; } + public static int RENDERER_PRIORITY_BOUND = 0; + public static int RENDERER_PRIORITY_IMPORTANT = 0; + public static int RENDERER_PRIORITY_WAIVED = 0; + public static void clearClientCertPreferences(Runnable p0){} + public static void disableWebView(){} + public static void enableSlowWholeDocumentDraw(){} + public static void setDataDirectorySuffix(String p0){} + public static void setSafeBrowsingWhitelist(List p0, ValueCallback p1){} + public static void setWebContentsDebuggingEnabled(boolean p0){} + public static void startSafeBrowsing(Context p0, ValueCallback p1){} + public void addJavascriptInterface(Object p0, String p1){} + public void autofill(SparseArray p0){} + public void clearCache(boolean p0){} + public void clearFormData(){} + public void clearHistory(){} + public void clearMatches(){} + public void clearSslPreferences(){} + public void clearView(){} + public void computeScroll(){} + public void destroy(){} + public void dispatchCreateViewTranslationRequest(Map p0, int[] p1, TranslationCapability p2, List p3){} + public void documentHasImages(Message p0){} + public void evaluateJavascript(String p0, ValueCallback p1){} + public void findAllAsync(String p0){} + public void findNext(boolean p0){} + public void flingScroll(int p0, int p1){} + public void freeMemory(){} + public void goBack(){} + public void goBackOrForward(int p0){} + public void goForward(){} + public void invokeZoomPicker(){} + public void loadData(String p0, String p1, String p2){} + public void loadDataWithBaseURL(String p0, String p1, String p2, String p3, String p4){} + public void loadUrl(String p0){} + public void loadUrl(String p0, Map p1){} + public void onChildViewAdded(View p0, View p1){} + public void onChildViewRemoved(View p0, View p1){} + public void onCreateVirtualViewTranslationRequests(long[] p0, int[] p1, Consumer p2){} + public void onFinishTemporaryDetach(){} + public void onGlobalFocusChanged(View p0, View p1){} + public void onPause(){} + public void onProvideAutofillVirtualStructure(ViewStructure p0, int p1){} + public void onProvideContentCaptureStructure(ViewStructure p0, int p1){} + public void onProvideVirtualStructure(ViewStructure p0){} + public void onResume(){} + public void onStartTemporaryDetach(){} + public void onVirtualViewTranslationResponses(LongSparseArray p0){} + public void onWindowFocusChanged(boolean p0){} + public void pauseTimers(){} + public void postUrl(String p0, byte[] p1){} + public void postVisualStateCallback(long p0, WebView.VisualStateCallback p1){} + public void postWebMessage(WebMessage p0, Uri p1){} + public void reload(){} + public void removeJavascriptInterface(String p0){} + public void requestFocusNodeHref(Message p0){} + public void requestImageRef(Message p0){} + public void resumeTimers(){} + public void savePassword(String p0, String p1, String p2){} + public void saveWebArchive(String p0){} + public void saveWebArchive(String p0, boolean p1, ValueCallback p2){} + public void setBackgroundColor(int p0){} + public void setCertificate(SslCertificate p0){} + public void setDownloadListener(DownloadListener p0){} + public void setFindListener(WebView.FindListener p0){} + public void setHorizontalScrollbarOverlay(boolean p0){} + public void setHttpAuthUsernamePassword(String p0, String p1, String p2, String p3){} + public void setInitialScale(int p0){} + public void setLayerType(int p0, Paint p1){} + public void setLayoutParams(ViewGroup.LayoutParams p0){} + public void setMapTrackballToArrowKeys(boolean p0){} + public void setNetworkAvailable(boolean p0){} + public void setOverScrollMode(int p0){} + public void setPictureListener(WebView.PictureListener p0){} + public void setRendererPriorityPolicy(int p0, boolean p1){} + public void setScrollBarStyle(int p0){} + public void setTextClassifier(TextClassifier p0){} + public void setVerticalScrollbarOverlay(boolean p0){} + public void setWebChromeClient(WebChromeClient p0){} + public void setWebViewClient(WebViewClient p0){} + public void setWebViewRenderProcessClient(Executor p0, WebViewRenderProcessClient p1){} + public void setWebViewRenderProcessClient(WebViewRenderProcessClient p0){} + public void stopLoading(){} + public void zoomBy(float p0){} + static public class HitTestResult + { + public String getExtra(){ return null; } + public int getType(){ return 0; } + public static int ANCHOR_TYPE = 0; + public static int EDIT_TEXT_TYPE = 0; + public static int EMAIL_TYPE = 0; + public static int GEO_TYPE = 0; + public static int IMAGE_ANCHOR_TYPE = 0; + public static int IMAGE_TYPE = 0; + public static int PHONE_TYPE = 0; + public static int SRC_ANCHOR_TYPE = 0; + public static int SRC_IMAGE_ANCHOR_TYPE = 0; + public static int UNKNOWN_TYPE = 0; } - - public boolean overlayVerticalScrollbar() { - return false; + static public interface FindListener + { + void onFindResultReceived(int p0, int p1, boolean p2); } - - public void savePassword(String host, String username, String password) {} - - public void setHttpAuthUsernamePassword(String host, String realm, String username, - String password) {} - - public String[] getHttpAuthUsernamePassword(String host, String realm) { - return null; - } - - public void destroy() {} - - public static void enablePlatformNotifications() {} - - public static void disablePlatformNotifications() {} - - public void loadUrl(String url) {} - - public void loadData(String data, String mimeType, String encoding) {} - - public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, - String failUrl) {} - - public void stopLoading() {} - - public void reload() {} - - public boolean canGoBack() { - return false; - } - - public void goBack() {} - - public boolean canGoForward() { - return false; - } - - public void goForward() {} - - public boolean canGoBackOrForward(int steps) { - return false; - } - - public void goBackOrForward(int steps) {} - - public boolean pageUp(boolean top) { - return false; - } - - public boolean pageDown(boolean bottom) { - return false; - } - - public void clearView() {} - - public float getScale() { - return 0; - } - - public void setInitialScale(int scaleInPercent) {} - - public void invokeZoomPicker() {} - - public String getUrl() { - return null; - } - - public String getTitle() { - return null; - } - - public int getProgress() { - return 0; - } - - public int getContentHeight() { - return 0; - } - - public void pauseTimers() {} - - public void resumeTimers() {} - - public void clearCache() {} - - public void clearFormData() {} - - public void clearHistory() {} - - public void clearSslPreferences() {} - - public static String findAddress(String addr) { - return null; - } - - public void setWebViewClient(WebViewClient client) {} - - public void addJavascriptInterface(Object obj, String interfaceName) {} - - public View getZoomControls() { - return null; - } - - public boolean zoomIn() { - return false; - } - - public boolean zoomOut() { - return false; - } - - public WebSettings getSettings() { - return null; + static public interface PictureListener + { + void onNewPicture(WebView p0, Picture p1); } } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewClient.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewClient.java index 03a98480210..e63cf85c9c8 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewClient.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewClient.java @@ -1,231 +1,66 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Generated automatically from android.webkit.WebViewClient for testing purposes + package android.webkit; -public class WebViewClient { - /** - * Give the host application a chance to take over the control when a new url is - * about to be loaded in the current WebView. If WebViewClient is not provided, - * by default WebView will ask Activity Manager to choose the proper handler for - * the url. If WebViewClient is provided, return {@code true} means the host - * application handles the url, while return {@code false} means the current - * WebView handles the url. This method is not called for requests using the - * POST "method". - * - * @param view The WebView that is initiating the callback. - * @param url The url to be loaded. - * @return {@code true} if the host application wants to leave the current - * WebView and handle the url itself, otherwise return {@code false}. - * @deprecated Use {@link #shouldOverrideUrlLoading(WebView, WebResourceRequest) - * shouldOverrideUrlLoading(WebView, WebResourceRequest)} instead. - */ - @Deprecated - public boolean shouldOverrideUrlLoading(WebView view, String url) { - return false; - } - - /** - * Give the host application a chance to take over the control when a new url is - * about to be loaded in the current WebView. If WebViewClient is not provided, - * by default WebView will ask Activity Manager to choose the proper handler for - * the url. If WebViewClient is provided, return {@code true} means the host - * application handles the url, while return {@code false} means the current - * WebView handles the url. - * - *

    - * Notes: - *

      - *
    • This method is not called for requests using the POST - * "method".
    • - *
    • This method is also called for subframes with non-http schemes, thus it - * is strongly disadvised to unconditionally call - * {@link WebView#loadUrl(String)} with the request's url from inside the method - * and then return {@code true}, as this will make WebView to attempt loading a - * non-http url, and thus fail.
    • - *
    - * - * @param view The WebView that is initiating the callback. - * @param request Object containing the details of the request. - * @return {@code true} if the host application wants to leave the current - * WebView and handle the url itself, otherwise return {@code false}. - */ - public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { - return false; - } - - /** - * Notify the host application that a page has finished loading. This method is - * called only for main frame. When onPageFinished() is called, the rendering - * picture may not be updated yet. To get the notification for the new Picture, - * use {@link WebView.PictureListener#onNewPicture}. - * - * @param view The WebView that is initiating the callback. - * @param url The url of the page. - */ - public void onPageFinished(WebView view, String url) { - } - - /** - * Notify the host application that the WebView will load the resource specified - * by the given url. - * - * @param view The WebView that is initiating the callback. - * @param url The url of the resource the WebView will load. - */ - public void onLoadResource(WebView view, String url) { - } - - /** - * Notify the host application that {@link android.webkit.WebView} content left - * over from previous page navigations will no longer be drawn. - * - *

    - * This callback can be used to determine the point at which it is safe to make - * a recycled {@link android.webkit.WebView} visible, ensuring that no stale - * content is shown. It is called at the earliest point at which it can be - * guaranteed that {@link WebView#onDraw} will no longer draw any content from - * previous navigations. The next draw will display either the - * {@link WebView#setBackgroundColor background color} of the {@link WebView}, - * or some of the contents of the newly loaded page. - * - *

    - * This method is called when the body of the HTTP response has started loading, - * is reflected in the DOM, and will be visible in subsequent draws. This - * callback occurs early in the document loading process, and as such you should - * expect that linked resources (for example, CSS and images) may not be - * available. - * - *

    - * For more fine-grained notification of visual state updates, see - * {@link WebView#postVisualStateCallback}. - * - *

    - * Please note that all the conditions and recommendations applicable to - * {@link WebView#postVisualStateCallback} also apply to this API. - * - *

    - * This callback is only called for main frame navigations. - * - * @param view The {@link android.webkit.WebView} for which the navigation - * occurred. - * @param url The URL corresponding to the page navigation that triggered this - * callback. - */ - public void onPageCommitVisible(WebView view, String url) { - } - - /** - * Notify the host application of a resource request and allow the application - * to return the data. If the return value is {@code null}, the WebView will - * continue to load the resource as usual. Otherwise, the return response and - * data will be used. - * - *

    - * This callback is invoked for a variety of URL schemes (e.g., - * {@code http(s):}, {@code - * data:}, {@code file:}, etc.), not only those schemes which send requests over - * the network. This is not called for {@code javascript:} URLs, {@code blob:} - * URLs, or for assets accessed via {@code file:///android_asset/} or - * {@code file:///android_res/} URLs. - * - *

    - * In the case of redirects, this is only called for the initial resource URL, - * not any subsequent redirect URLs. - * - *

    - * Note: This method is called on a thread other than the UI thread so - * clients should exercise caution when accessing private data or the view - * system. - * - *

    - * Note: When Safe Browsing is enabled, these URLs still undergo Safe - * Browsing checks. If this is undesired, whitelist the URL with - * {@link WebView#setSafeBrowsingWhitelist} or ignore the warning with - * {@link #onSafeBrowsingHit}. - * - * @param view The {@link android.webkit.WebView} that is requesting the - * resource. - * @param url The raw url of the resource. - * @return A {@link android.webkit.WebResourceResponse} containing the response - * information or {@code null} if the WebView should load the resource - * itself. - * @deprecated Use {@link #shouldInterceptRequest(WebView, WebResourceRequest) - * shouldInterceptRequest(WebView, WebResourceRequest)} instead. - */ - @Deprecated - public WebResourceResponse shouldInterceptRequest(WebView view, String url) { - return null; - } - - /** - * Notify the host application of a resource request and allow the application - * to return the data. If the return value is {@code null}, the WebView will - * continue to load the resource as usual. Otherwise, the return response and - * data will be used. - * - *

    - * This callback is invoked for a variety of URL schemes (e.g., - * {@code http(s):}, {@code - * data:}, {@code file:}, etc.), not only those schemes which send requests over - * the network. This is not called for {@code javascript:} URLs, {@code blob:} - * URLs, or for assets accessed via {@code file:///android_asset/} or - * {@code file:///android_res/} URLs. - * - *

    - * In the case of redirects, this is only called for the initial resource URL, - * not any subsequent redirect URLs. - * - *

    - * Note: This method is called on a thread other than the UI thread so - * clients should exercise caution when accessing private data or the view - * system. - * - *

    - * Note: When Safe Browsing is enabled, these URLs still undergo Safe - * Browsing checks. If this is undesired, whitelist the URL with - * {@link WebView#setSafeBrowsingWhitelist} or ignore the warning with - * {@link #onSafeBrowsingHit}. - * - * @param view The {@link android.webkit.WebView} that is requesting the - * resource. - * @param request Object containing the details of the request. - * @return A {@link android.webkit.WebResourceResponse} containing the response - * information or {@code null} if the WebView should load the resource - * itself. - */ - public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { - return null; - } - - /** - * Report an error to the host application. These errors are unrecoverable (i.e. - * the main resource is unavailable). The {@code errorCode} parameter - * corresponds to one of the {@code ERROR_*} constants. - * - * @param view The WebView that is initiating the callback. - * @param errorCode The error code corresponding to an ERROR_* value. - * @param description A String describing the error. - * @param failingUrl The url that failed to load. - * @deprecated Use - * {@link #onReceivedError(WebView, WebResourceRequest, WebResourceError) - * onReceivedError(WebView, WebResourceRequest, WebResourceError)} - * instead. - */ - @Deprecated - public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { - } +import android.graphics.Bitmap; +import android.net.http.SslError; +import android.os.Message; +import android.view.KeyEvent; +import android.webkit.ClientCertRequest; +import android.webkit.HttpAuthHandler; +import android.webkit.RenderProcessGoneDetail; +import android.webkit.SafeBrowsingResponse; +import android.webkit.SslErrorHandler; +import android.webkit.WebResourceError; +import android.webkit.WebResourceRequest; +import android.webkit.WebResourceResponse; +import android.webkit.WebView; +public class WebViewClient +{ + public WebResourceResponse shouldInterceptRequest(WebView p0, String p1){ return null; } + public WebResourceResponse shouldInterceptRequest(WebView p0, WebResourceRequest p1){ return null; } + public WebViewClient(){} + public boolean onRenderProcessGone(WebView p0, RenderProcessGoneDetail p1){ return false; } + public boolean shouldOverrideKeyEvent(WebView p0, KeyEvent p1){ return false; } + public boolean shouldOverrideUrlLoading(WebView p0, String p1){ return false; } + public boolean shouldOverrideUrlLoading(WebView p0, WebResourceRequest p1){ return false; } + public static int ERROR_AUTHENTICATION = 0; + public static int ERROR_BAD_URL = 0; + public static int ERROR_CONNECT = 0; + public static int ERROR_FAILED_SSL_HANDSHAKE = 0; + public static int ERROR_FILE = 0; + public static int ERROR_FILE_NOT_FOUND = 0; + public static int ERROR_HOST_LOOKUP = 0; + public static int ERROR_IO = 0; + public static int ERROR_PROXY_AUTHENTICATION = 0; + public static int ERROR_REDIRECT_LOOP = 0; + public static int ERROR_TIMEOUT = 0; + public static int ERROR_TOO_MANY_REQUESTS = 0; + public static int ERROR_UNKNOWN = 0; + public static int ERROR_UNSAFE_RESOURCE = 0; + public static int ERROR_UNSUPPORTED_AUTH_SCHEME = 0; + public static int ERROR_UNSUPPORTED_SCHEME = 0; + public static int SAFE_BROWSING_THREAT_BILLING = 0; + public static int SAFE_BROWSING_THREAT_MALWARE = 0; + public static int SAFE_BROWSING_THREAT_PHISHING = 0; + public static int SAFE_BROWSING_THREAT_UNKNOWN = 0; + public static int SAFE_BROWSING_THREAT_UNWANTED_SOFTWARE = 0; + public void doUpdateVisitedHistory(WebView p0, String p1, boolean p2){} + public void onFormResubmission(WebView p0, Message p1, Message p2){} + public void onLoadResource(WebView p0, String p1){} + public void onPageCommitVisible(WebView p0, String p1){} + public void onPageFinished(WebView p0, String p1){} + public void onPageStarted(WebView p0, String p1, Bitmap p2){} + public void onReceivedClientCertRequest(WebView p0, ClientCertRequest p1){} + public void onReceivedError(WebView p0, WebResourceRequest p1, WebResourceError p2){} + public void onReceivedError(WebView p0, int p1, String p2, String p3){} + public void onReceivedHttpAuthRequest(WebView p0, HttpAuthHandler p1, String p2, String p3){} + public void onReceivedHttpError(WebView p0, WebResourceRequest p1, WebResourceResponse p2){} + public void onReceivedLoginRequest(WebView p0, String p1, String p2, String p3){} + public void onReceivedSslError(WebView p0, SslErrorHandler p1, SslError p2){} + public void onSafeBrowsingHit(WebView p0, WebResourceRequest p1, int p2, SafeBrowsingResponse p3){} + public void onScaleChanged(WebView p0, float p1, float p2){} + public void onTooManyRedirects(WebView p0, Message p1, Message p2){} + public void onUnhandledKeyEvent(WebView p0, KeyEvent p1){} } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewRenderProcess.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewRenderProcess.java new file mode 100644 index 00000000000..0c9d0d1385c --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewRenderProcess.java @@ -0,0 +1,10 @@ +// Generated automatically from android.webkit.WebViewRenderProcess for testing purposes + +package android.webkit; + + +abstract public class WebViewRenderProcess +{ + public WebViewRenderProcess(){} + public abstract boolean terminate(); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewRenderProcessClient.java b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewRenderProcessClient.java new file mode 100644 index 00000000000..742a6ed1438 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/webkit/WebViewRenderProcessClient.java @@ -0,0 +1,13 @@ +// Generated automatically from android.webkit.WebViewRenderProcessClient for testing purposes + +package android.webkit; + +import android.webkit.WebView; +import android.webkit.WebViewRenderProcess; + +abstract public class WebViewRenderProcessClient +{ + public WebViewRenderProcessClient(){} + public abstract void onRenderProcessResponsive(WebView p0, WebViewRenderProcess p1); + public abstract void onRenderProcessUnresponsive(WebView p0, WebViewRenderProcess p1); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/AbsListView.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/AbsListView.java new file mode 100644 index 00000000000..64da209cc56 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/AbsListView.java @@ -0,0 +1,212 @@ +// Generated automatically from android.widget.AbsListView for testing purposes + +package android.widget; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.os.Parcelable; +import android.text.Editable; +import android.text.TextWatcher; +import android.util.AttributeSet; +import android.util.SparseBooleanArray; +import android.view.ActionMode; +import android.view.ContextMenu; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.PointerIcon; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.view.accessibility.AccessibilityNodeInfo; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputConnection; +import android.widget.Adapter; +import android.widget.AdapterView; +import android.widget.Filter; +import android.widget.ListAdapter; +import java.util.ArrayList; +import java.util.List; + +abstract public class AbsListView extends AdapterView implements Filter.FilterListener, TextWatcher, ViewTreeObserver.OnGlobalLayoutListener, ViewTreeObserver.OnTouchModeChangeListener +{ + protected AbsListView() {} + protected ContextMenu.ContextMenuInfo getContextMenuInfo(){ return null; } + protected ViewGroup.LayoutParams generateDefaultLayoutParams(){ return null; } + protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p0){ return null; } + protected boolean checkLayoutParams(ViewGroup.LayoutParams p0){ return false; } + protected boolean isInFilterMode(){ return false; } + protected boolean isPaddingOffsetRequired(){ return false; } + protected float getBottomFadingEdgeStrength(){ return 0; } + protected float getTopFadingEdgeStrength(){ return 0; } + protected int computeVerticalScrollExtent(){ return 0; } + protected int computeVerticalScrollOffset(){ return 0; } + protected int computeVerticalScrollRange(){ return 0; } + protected int getBottomPaddingOffset(){ return 0; } + protected int getLeftPaddingOffset(){ return 0; } + protected int getRightPaddingOffset(){ return 0; } + protected int getTopPaddingOffset(){ return 0; } + protected void dispatchDraw(Canvas p0){} + protected void dispatchSetPressed(boolean p0){} + protected void drawableStateChanged(){} + protected void handleDataChanged(){} + protected void layoutChildren(){} + protected void onAttachedToWindow(){} + protected void onDetachedFromWindow(){} + protected void onDisplayHint(int p0){} + protected void onFocusChanged(boolean p0, int p1, Rect p2){} + protected void onLayout(boolean p0, int p1, int p2, int p3, int p4){} + protected void onMeasure(int p0, int p1){} + protected void onOverScrolled(int p0, int p1, boolean p2, boolean p3){} + protected void onSizeChanged(int p0, int p1, int p2, int p3){} + public AbsListView(Context p0){} + public AbsListView(Context p0, AttributeSet p1){} + public AbsListView(Context p0, AttributeSet p1, int p2){} + public AbsListView(Context p0, AttributeSet p1, int p2, int p3){} + public AbsListView.LayoutParams generateLayoutParams(AttributeSet p0){ return null; } + public CharSequence getAccessibilityClassName(){ return null; } + public CharSequence getTextFilter(){ return null; } + public Drawable getSelector(){ return null; } + public InputConnection onCreateInputConnection(EditorInfo p0){ return null; } + public Parcelable onSaveInstanceState(){ return null; } + public PointerIcon onResolvePointerIcon(MotionEvent p0, int p1){ return null; } + public SparseBooleanArray getCheckedItemPositions(){ return null; } + public View getSelectedView(){ return null; } + public boolean canScrollList(int p0){ return false; } + public boolean checkInputConnectionProxy(View p0){ return false; } + public boolean hasTextFilter(){ return false; } + public boolean isDrawSelectorOnTop(){ return false; } + public boolean isFastScrollAlwaysVisible(){ return false; } + public boolean isFastScrollEnabled(){ return false; } + public boolean isItemChecked(int p0){ return false; } + public boolean isScrollingCacheEnabled(){ return false; } + public boolean isSmoothScrollbarEnabled(){ return false; } + public boolean isStackFromBottom(){ return false; } + public boolean isTextFilterEnabled(){ return false; } + public boolean onGenericMotionEvent(MotionEvent p0){ return false; } + public boolean onInterceptHoverEvent(MotionEvent p0){ return false; } + public boolean onInterceptTouchEvent(MotionEvent p0){ return false; } + public boolean onKeyDown(int p0, KeyEvent p1){ return false; } + public boolean onKeyUp(int p0, KeyEvent p1){ return false; } + public boolean onNestedFling(View p0, float p1, float p2, boolean p3){ return false; } + public boolean onRemoteAdapterConnected(){ return false; } + public boolean onStartNestedScroll(View p0, View p1, int p2){ return false; } + public boolean onTouchEvent(MotionEvent p0){ return false; } + public boolean performItemClick(View p0, int p1, long p2){ return false; } + public boolean showContextMenu(){ return false; } + public boolean showContextMenu(float p0, float p1){ return false; } + public boolean showContextMenuForChild(View p0){ return false; } + public boolean showContextMenuForChild(View p0, float p1, float p2){ return false; } + public boolean verifyDrawable(Drawable p0){ return false; } + public int getBottomEdgeEffectColor(){ return 0; } + public int getCacheColorHint(){ return 0; } + public int getCheckedItemCount(){ return 0; } + public int getCheckedItemPosition(){ return 0; } + public int getChoiceMode(){ return 0; } + public int getListPaddingBottom(){ return 0; } + public int getListPaddingLeft(){ return 0; } + public int getListPaddingRight(){ return 0; } + public int getListPaddingTop(){ return 0; } + public int getSolidColor(){ return 0; } + public int getTopEdgeEffectColor(){ return 0; } + public int getTranscriptMode(){ return 0; } + public int getVerticalScrollbarWidth(){ return 0; } + public int pointToPosition(int p0, int p1){ return 0; } + public long pointToRowId(int p0, int p1){ return 0; } + public long[] getCheckedItemIds(){ return null; } + public static int CHOICE_MODE_MULTIPLE = 0; + public static int CHOICE_MODE_MULTIPLE_MODAL = 0; + public static int CHOICE_MODE_NONE = 0; + public static int CHOICE_MODE_SINGLE = 0; + public static int TRANSCRIPT_MODE_ALWAYS_SCROLL = 0; + public static int TRANSCRIPT_MODE_DISABLED = 0; + public static int TRANSCRIPT_MODE_NORMAL = 0; + public void addTouchables(ArrayList p0){} + public void afterTextChanged(Editable p0){} + public void beforeTextChanged(CharSequence p0, int p1, int p2, int p3){} + public void clearChoices(){} + public void clearTextFilter(){} + public void deferNotifyDataSetChanged(){} + public void dispatchDrawableHotspotChanged(float p0, float p1){} + public void draw(Canvas p0){} + public void fling(int p0){} + public void getFocusedRect(Rect p0){} + public void invalidateViews(){} + public void jumpDrawablesToCurrentState(){} + public void onCancelPendingInputEvents(){} + public void onFilterComplete(int p0){} + public void onGlobalLayout(){} + public void onInitializeAccessibilityNodeInfoForItem(View p0, int p1, AccessibilityNodeInfo p2){} + public void onNestedScroll(View p0, int p1, int p2, int p3, int p4){} + public void onNestedScrollAccepted(View p0, View p1, int p2){} + public void onRemoteAdapterDisconnected(){} + public void onRestoreInstanceState(Parcelable p0){} + public void onRtlPropertiesChanged(int p0){} + public void onTextChanged(CharSequence p0, int p1, int p2, int p3){} + public void onTouchModeChanged(boolean p0){} + public void onWindowFocusChanged(boolean p0){} + public void reclaimViews(List p0){} + public void requestDisallowInterceptTouchEvent(boolean p0){} + public void requestLayout(){} + public void scrollListBy(int p0){} + public void setAdapter(ListAdapter p0){} + public void setBottomEdgeEffectColor(int p0){} + public void setCacheColorHint(int p0){} + public void setChoiceMode(int p0){} + public void setDrawSelectorOnTop(boolean p0){} + public void setEdgeEffectColor(int p0){} + public void setFastScrollAlwaysVisible(boolean p0){} + public void setFastScrollEnabled(boolean p0){} + public void setFastScrollStyle(int p0){} + public void setFilterText(String p0){} + public void setFriction(float p0){} + public void setItemChecked(int p0, boolean p1){} + public void setMultiChoiceModeListener(AbsListView.MultiChoiceModeListener p0){} + public void setOnScrollListener(AbsListView.OnScrollListener p0){} + public void setRecyclerListener(AbsListView.RecyclerListener p0){} + public void setRemoteViewsAdapter(Intent p0){} + public void setScrollBarStyle(int p0){} + public void setScrollIndicators(View p0, View p1){} + public void setScrollingCacheEnabled(boolean p0){} + public void setSelectionFromTop(int p0, int p1){} + public void setSelector(Drawable p0){} + public void setSelector(int p0){} + public void setSmoothScrollbarEnabled(boolean p0){} + public void setStackFromBottom(boolean p0){} + public void setTextFilterEnabled(boolean p0){} + public void setTopEdgeEffectColor(int p0){} + public void setTranscriptMode(int p0){} + public void setVelocityScale(float p0){} + public void setVerticalScrollbarPosition(int p0){} + public void smoothScrollBy(int p0, int p1){} + public void smoothScrollToPosition(int p0){} + public void smoothScrollToPosition(int p0, int p1){} + public void smoothScrollToPositionFromTop(int p0, int p1){} + public void smoothScrollToPositionFromTop(int p0, int p1, int p2){} + static public class LayoutParams extends ViewGroup.LayoutParams + { + protected LayoutParams() {} + public LayoutParams(Context p0, AttributeSet p1){} + public LayoutParams(ViewGroup.LayoutParams p0){} + public LayoutParams(int p0, int p1){} + public LayoutParams(int p0, int p1, int p2){} + } + static public interface MultiChoiceModeListener extends ActionMode.Callback + { + void onItemCheckedStateChanged(ActionMode p0, int p1, long p2, boolean p3); + } + static public interface OnScrollListener + { + static int SCROLL_STATE_FLING = 0; + static int SCROLL_STATE_IDLE = 0; + static int SCROLL_STATE_TOUCH_SCROLL = 0; + void onScroll(AbsListView p0, int p1, int p2, int p3); + void onScrollStateChanged(AbsListView p0, int p1); + } + static public interface RecyclerListener + { + void onMovedToScrapHeap(View p0); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/AbsoluteLayout.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/AbsoluteLayout.java new file mode 100644 index 00000000000..438d8feca86 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/AbsoluteLayout.java @@ -0,0 +1,23 @@ +// Generated automatically from android.widget.AbsoluteLayout for testing purposes + +package android.widget; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.ViewGroup; + +public class AbsoluteLayout extends ViewGroup +{ + protected AbsoluteLayout() {} + protected ViewGroup.LayoutParams generateDefaultLayoutParams(){ return null; } + protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p0){ return null; } + protected boolean checkLayoutParams(ViewGroup.LayoutParams p0){ return false; } + protected void onLayout(boolean p0, int p1, int p2, int p3, int p4){} + protected void onMeasure(int p0, int p1){} + public AbsoluteLayout(Context p0){} + public AbsoluteLayout(Context p0, AttributeSet p1){} + public AbsoluteLayout(Context p0, AttributeSet p1, int p2){} + public AbsoluteLayout(Context p0, AttributeSet p1, int p2, int p3){} + public ViewGroup.LayoutParams generateLayoutParams(AttributeSet p0){ return null; } + public boolean shouldDelayChildPressedState(){ return false; } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/Adapter.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/Adapter.java new file mode 100644 index 00000000000..06f719feab0 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/Adapter.java @@ -0,0 +1,24 @@ +// Generated automatically from android.widget.Adapter for testing purposes + +package android.widget; + +import android.database.DataSetObserver; +import android.view.View; +import android.view.ViewGroup; + +public interface Adapter +{ + Object getItem(int p0); + View getView(int p0, View p1, ViewGroup p2); + boolean hasStableIds(); + boolean isEmpty(); + default CharSequence[] getAutofillOptions(){ return null; } + int getCount(); + int getItemViewType(int p0); + int getViewTypeCount(); + long getItemId(int p0); + static int IGNORE_ITEM_VIEW_TYPE = 0; + static int NO_SELECTION = 0; + void registerDataSetObserver(DataSetObserver p0); + void unregisterDataSetObserver(DataSetObserver p0); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/AdapterView.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/AdapterView.java new file mode 100644 index 00000000000..a071941461c --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/AdapterView.java @@ -0,0 +1,77 @@ +// Generated automatically from android.widget.AdapterView for testing purposes + +package android.widget; + +import android.content.Context; +import android.os.Parcelable; +import android.util.AttributeSet; +import android.util.SparseArray; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewStructure; +import android.widget.Adapter; + +abstract public class AdapterView extends ViewGroup +{ + protected AdapterView() {} + protected boolean canAnimate(){ return false; } + protected void dispatchRestoreInstanceState(SparseArray p0){} + protected void dispatchSaveInstanceState(SparseArray p0){} + protected void onDetachedFromWindow(){} + protected void onLayout(boolean p0, int p1, int p2, int p3, int p4){} + public AdapterView(Context p0){} + public AdapterView(Context p0, AttributeSet p1){} + public AdapterView(Context p0, AttributeSet p1, int p2){} + public AdapterView(Context p0, AttributeSet p1, int p2, int p3){} + public CharSequence getAccessibilityClassName(){ return null; } + public Object getItemAtPosition(int p0){ return null; } + public Object getSelectedItem(){ return null; } + public View getEmptyView(){ return null; } + public abstract T getAdapter(); + public abstract View getSelectedView(); + public abstract void setAdapter(T p0); + public abstract void setSelection(int p0); + public boolean performItemClick(View p0, int p1, long p2){ return false; } + public final AdapterView.OnItemClickListener getOnItemClickListener(){ return null; } + public final AdapterView.OnItemLongClickListener getOnItemLongClickListener(){ return null; } + public final AdapterView.OnItemSelectedListener getOnItemSelectedListener(){ return null; } + public int getCount(){ return 0; } + public int getFirstVisiblePosition(){ return 0; } + public int getLastVisiblePosition(){ return 0; } + public int getPositionForView(View p0){ return 0; } + public int getSelectedItemPosition(){ return 0; } + public long getItemIdAtPosition(int p0){ return 0; } + public long getSelectedItemId(){ return 0; } + public static int INVALID_POSITION = 0; + public static int ITEM_VIEW_TYPE_HEADER_OR_FOOTER = 0; + public static int ITEM_VIEW_TYPE_IGNORE = 0; + public static long INVALID_ROW_ID = 0; + public void addView(View p0){} + public void addView(View p0, ViewGroup.LayoutParams p1){} + public void addView(View p0, int p1){} + public void addView(View p0, int p1, ViewGroup.LayoutParams p2){} + public void onProvideAutofillStructure(ViewStructure p0, int p1){} + public void removeAllViews(){} + public void removeView(View p0){} + public void removeViewAt(int p0){} + public void setEmptyView(View p0){} + public void setFocusable(int p0){} + public void setFocusableInTouchMode(boolean p0){} + public void setOnClickListener(View.OnClickListener p0){} + public void setOnItemClickListener(AdapterView.OnItemClickListener p0){} + public void setOnItemLongClickListener(AdapterView.OnItemLongClickListener p0){} + public void setOnItemSelectedListener(AdapterView.OnItemSelectedListener p0){} + static public interface OnItemClickListener + { + void onItemClick(AdapterView p0, View p1, int p2, long p3); + } + static public interface OnItemLongClickListener + { + boolean onItemLongClick(AdapterView p0, View p1, int p2, long p3); + } + static public interface OnItemSelectedListener + { + void onItemSelected(AdapterView p0, View p1, int p2, long p3); + void onNothingSelected(AdapterView p0); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/Button.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/Button.java index 69cf1911ffd..53413c878b4 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/widget/Button.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/Button.java @@ -1,42 +1,20 @@ -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ +// Generated automatically from android.widget.Button for testing purposes package android.widget; import android.content.Context; import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.PointerIcon; +import android.widget.TextView; -public class Button extends TextView { - public Button(Context context) { - super(null); - } - - public Button(Context context, AttributeSet attrs) { - super(null); - } - - public Button(Context context, AttributeSet attrs, int defStyleAttr) { - super(null); - } - - public Button(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(null); - } - - @Override - public CharSequence getAccessibilityClassName() { - return null; - } - +public class Button extends TextView +{ + protected Button() {} + public Button(Context p0){} + public Button(Context p0, AttributeSet p1){} + public Button(Context p0, AttributeSet p1, int p2){} + public Button(Context p0, AttributeSet p1, int p2, int p3){} + public CharSequence getAccessibilityClassName(){ return null; } + public PointerIcon onResolvePointerIcon(MotionEvent p0, int p1){ return null; } } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/Filter.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/Filter.java new file mode 100644 index 00000000000..f0572f12d78 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/Filter.java @@ -0,0 +1,24 @@ +// Generated automatically from android.widget.Filter for testing purposes + +package android.widget; + + +abstract public class Filter +{ + protected abstract Filter.FilterResults performFiltering(CharSequence p0); + protected abstract void publishResults(CharSequence p0, Filter.FilterResults p1); + public CharSequence convertResultToString(Object p0){ return null; } + public Filter(){} + public final void filter(CharSequence p0){} + public final void filter(CharSequence p0, Filter.FilterListener p1){} + static class FilterResults + { + public FilterResults(){} + public Object values = null; + public int count = 0; + } + static public interface FilterListener + { + void onFilterComplete(int p0); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/FrameLayout.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/FrameLayout.java new file mode 100644 index 00000000000..6901b838087 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/FrameLayout.java @@ -0,0 +1,40 @@ +// Generated automatically from android.widget.FrameLayout for testing purposes + +package android.widget; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.ViewGroup; + +public class FrameLayout extends ViewGroup +{ + protected FrameLayout() {} + protected FrameLayout.LayoutParams generateDefaultLayoutParams(){ return null; } + protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p0){ return null; } + protected boolean checkLayoutParams(ViewGroup.LayoutParams p0){ return false; } + protected void onLayout(boolean p0, int p1, int p2, int p3, int p4){} + protected void onMeasure(int p0, int p1){} + public CharSequence getAccessibilityClassName(){ return null; } + public FrameLayout(Context p0){} + public FrameLayout(Context p0, AttributeSet p1){} + public FrameLayout(Context p0, AttributeSet p1, int p2){} + public FrameLayout(Context p0, AttributeSet p1, int p2, int p3){} + public FrameLayout.LayoutParams generateLayoutParams(AttributeSet p0){ return null; } + public boolean getConsiderGoneChildrenWhenMeasuring(){ return false; } + public boolean getMeasureAllChildren(){ return false; } + public boolean shouldDelayChildPressedState(){ return false; } + public void setForegroundGravity(int p0){} + public void setMeasureAllChildren(boolean p0){} + static public class LayoutParams extends ViewGroup.MarginLayoutParams + { + protected LayoutParams() {} + public LayoutParams(Context p0, AttributeSet p1){} + public LayoutParams(FrameLayout.LayoutParams p0){} + public LayoutParams(ViewGroup.LayoutParams p0){} + public LayoutParams(ViewGroup.MarginLayoutParams p0){} + public LayoutParams(int p0, int p1){} + public LayoutParams(int p0, int p1, int p2){} + public int gravity = 0; + public static int UNSPECIFIED_GRAVITY = 0; + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/ListAdapter.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/ListAdapter.java new file mode 100644 index 00000000000..c23fea65b27 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/ListAdapter.java @@ -0,0 +1,11 @@ +// Generated automatically from android.widget.ListAdapter for testing purposes + +package android.widget; + +import android.widget.Adapter; + +public interface ListAdapter extends Adapter +{ + boolean areAllItemsEnabled(); + boolean isEnabled(int p0); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/ListView.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/ListView.java new file mode 100644 index 00000000000..088efbc883f --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/ListView.java @@ -0,0 +1,73 @@ +// Generated automatically from android.widget.ListView for testing purposes + +package android.widget; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.view.KeyEvent; +import android.view.View; +import android.view.accessibility.AccessibilityNodeInfo; +import android.widget.AbsListView; +import android.widget.ListAdapter; + +public class ListView extends AbsListView +{ + protected ListView() {} + protected boolean canAnimate(){ return false; } + protected boolean drawChild(Canvas p0, View p1, long p2){ return false; } + protected void dispatchDraw(Canvas p0){} + protected void layoutChildren(){} + protected void onDetachedFromWindow(){} + protected void onFinishInflate(){} + protected void onFocusChanged(boolean p0, int p1, Rect p2){} + protected void onMeasure(int p0, int p1){} + protected void onSizeChanged(int p0, int p1, int p2, int p3){} + public CharSequence getAccessibilityClassName(){ return null; } + public Drawable getDivider(){ return null; } + public Drawable getOverscrollFooter(){ return null; } + public Drawable getOverscrollHeader(){ return null; } + public ListAdapter getAdapter(){ return null; } + public ListView(Context p0){} + public ListView(Context p0, AttributeSet p1){} + public ListView(Context p0, AttributeSet p1, int p2){} + public ListView(Context p0, AttributeSet p1, int p2, int p3){} + public boolean areFooterDividersEnabled(){ return false; } + public boolean areHeaderDividersEnabled(){ return false; } + public boolean dispatchKeyEvent(KeyEvent p0){ return false; } + public boolean getItemsCanFocus(){ return false; } + public boolean isOpaque(){ return false; } + public boolean onKeyDown(int p0, KeyEvent p1){ return false; } + public boolean onKeyMultiple(int p0, int p1, KeyEvent p2){ return false; } + public boolean onKeyUp(int p0, KeyEvent p1){ return false; } + public boolean removeFooterView(View p0){ return false; } + public boolean removeHeaderView(View p0){ return false; } + public boolean requestChildRectangleOnScreen(View p0, Rect p1, boolean p2){ return false; } + public int getDividerHeight(){ return 0; } + public int getFooterViewsCount(){ return 0; } + public int getHeaderViewsCount(){ return 0; } + public int getMaxScrollAmount(){ return 0; } + public long[] getCheckItemIds(){ return null; } + public void addFooterView(View p0){} + public void addFooterView(View p0, Object p1, boolean p2){} + public void addHeaderView(View p0){} + public void addHeaderView(View p0, Object p1, boolean p2){} + public void onInitializeAccessibilityNodeInfoForItem(View p0, int p1, AccessibilityNodeInfo p2){} + public void setAdapter(ListAdapter p0){} + public void setCacheColorHint(int p0){} + public void setDivider(Drawable p0){} + public void setDividerHeight(int p0){} + public void setFooterDividersEnabled(boolean p0){} + public void setHeaderDividersEnabled(boolean p0){} + public void setItemsCanFocus(boolean p0){} + public void setOverscrollFooter(Drawable p0){} + public void setOverscrollHeader(Drawable p0){} + public void setRemoteViewsAdapter(Intent p0){} + public void setSelection(int p0){} + public void setSelectionAfterHeaderView(){} + public void smoothScrollByOffset(int p0){} + public void smoothScrollToPosition(int p0){} +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/SpinnerAdapter.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/SpinnerAdapter.java new file mode 100644 index 00000000000..9a389615336 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/SpinnerAdapter.java @@ -0,0 +1,12 @@ +// Generated automatically from android.widget.SpinnerAdapter for testing purposes + +package android.widget; + +import android.view.View; +import android.view.ViewGroup; +import android.widget.Adapter; + +public interface SpinnerAdapter extends Adapter +{ + View getDropDownView(int p0, View p1, ViewGroup p2); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/TextView.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/TextView.java index 7ff5e1f7143..491cf47514a 100644 --- a/java/ql/test/stubs/google-android-9.0.0/android/widget/TextView.java +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/TextView.java @@ -1,816 +1,383 @@ -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ +// Generated automatically from android.widget.TextView for testing purposes package android.widget; -import java.util.ArrayList; -import java.util.Locale; -import android.annotation.Nullable; import android.content.Context; import android.content.res.ColorStateList; -import android.content.res.TypedArray; +import android.content.res.Configuration; import android.graphics.BlendMode; +import android.graphics.Canvas; import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.LocaleList; -import android.os.UserHandle; +import android.os.Parcelable; +import android.text.Editable; +import android.text.InputFilter; +import android.text.Layout; +import android.text.PrecomputedText; +import android.text.Spannable; +import android.text.TextDirectionHeuristic; +import android.text.TextPaint; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.text.method.KeyListener; +import android.text.method.MovementMethod; +import android.text.method.TransformationMethod; +import android.text.style.URLSpan; import android.util.AttributeSet; +import android.view.ActionMode; +import android.view.ContentInfo; +import android.view.ContextMenu; +import android.view.DragEvent; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.PointerIcon; import android.view.View; - -public class TextView extends View { - public @interface XMLTypefaceAttr { - - } - public @interface AutoSizeTextType { - } - - public static void preloadFontCache() {} - - public TextView(Context context) { - super(null); - } - - public TextView(Context context, AttributeSet attrs) { - super(null); - } - - public TextView(Context context, AttributeSet attrs, int defStyleAttr) { - super(null); - } - - public TextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(null); - } - - public void setAutoSizeTextTypeWithDefaults(int autoSizeTextType) {} - - public void setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, - int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit) {} - - public void setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit) {} - - public int getAutoSizeTextType() { - return 0; - } - - public int getAutoSizeStepGranularity() { - return 0; - } - - public int getAutoSizeMinTextSize() { - return 0; - } - - public int getAutoSizeMaxTextSize() { - return 0; - } - - public int[] getAutoSizeTextAvailableSizes() { - return null; - } - - public void setTypeface(Typeface tf, int style) {} - - public CharSequence getText() { - return null; - } - - public int length() { - return 0; - } - - public CharSequence getTransformed() { - return null; - } - - public int getLineHeight() { - return 0; - } - - public int getCompoundPaddingTop() { - return 0; - } - - public int getCompoundPaddingBottom() { - return 0; - } - - public int getCompoundPaddingLeft() { - return 0; - } - - public int getCompoundPaddingRight() { - return 0; - } - - public int getCompoundPaddingStart() { - return 0; - } - - public int getCompoundPaddingEnd() { - return 0; - } - - public int getExtendedPaddingTop() { - return 0; - } - - public int getExtendedPaddingBottom() { - return 0; - } - - public int getTotalPaddingLeft() { - return 0; - } - - public int getTotalPaddingRight() { - return 0; - } - - public int getTotalPaddingStart() { - return 0; - } - - public int getTotalPaddingEnd() { - return 0; - } - - public int getTotalPaddingTop() { - return 0; - } - - public int getTotalPaddingBottom() { - return 0; - } - - public void setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom) {} - - public void setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom) {} - - public void setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, - Drawable bottom) {} - - public void setCompoundDrawablesRelative(Drawable start, Drawable top, Drawable end, - Drawable bottom) {} - - public void setCompoundDrawablesRelativeWithIntrinsicBounds(int start, int top, int end, - int bottom) {} - - public void setCompoundDrawablesRelativeWithIntrinsicBounds(Drawable start, Drawable top, - Drawable end, Drawable bottom) {} - - public Drawable[] getCompoundDrawables() { - return null; - } - - public Drawable[] getCompoundDrawablesRelative() { - return null; - } - - public void setCompoundDrawablePadding(int pad) {} - - public int getCompoundDrawablePadding() { - return 0; - } - - public void setCompoundDrawableTintList(ColorStateList tint) {} - - public ColorStateList getCompoundDrawableTintList() { - return null; - } - - public void setCompoundDrawableTintMode(PorterDuff.Mode tintMode) {} - - public void setCompoundDrawableTintBlendMode(BlendMode blendMode) {} - - public PorterDuff.Mode getCompoundDrawableTintMode() { - return null; - } - - public BlendMode getCompoundDrawableTintBlendMode() { - return null; - } - - public void setFirstBaselineToTopHeight(int firstBaselineToTopHeight) {} - - public void setLastBaselineToBottomHeight(int lastBaselineToBottomHeight) {} - - public int getFirstBaselineToTopHeight() { - return 0; - } - - public int getLastBaselineToBottomHeight() { - return 0; - } - - public final int getAutoLinkMask() { - return 0; - } - - public void setTextSelectHandle(Drawable textSelectHandle) {} - - public void setTextSelectHandle(int textSelectHandle) {} - - @Nullable - public Drawable getTextSelectHandle() { - return null; - } - - public void setTextSelectHandleLeft(Drawable textSelectHandleLeft) {} - - public void setTextSelectHandleLeft(int textSelectHandleLeft) {} - - @Nullable - public Drawable getTextSelectHandleLeft() { - return null; - } - - public void setTextSelectHandleRight(Drawable textSelectHandleRight) {} - - public void setTextSelectHandleRight(int textSelectHandleRight) {} - - @Nullable - public Drawable getTextSelectHandleRight() { - return null; - } - - public void setTextCursorDrawable(Drawable textCursorDrawable) {} - - public void setTextCursorDrawable(int textCursorDrawable) {} - - @Nullable - public Drawable getTextCursorDrawable() { - return null; - } - - public void setTextAppearance(int resId) {} - - public void setTextAppearance(Context context, int resId) {} - - public Locale getTextLocale() { - return null; - } - - public LocaleList getTextLocales() { - return null; - } - - public void setTextLocale(Locale locale) {} - - public void setTextLocales(LocaleList locales) {} - - public float getTextSize() { - return 0; - } - - public float getScaledTextSize() { - return 0; - } - - public int getTypefaceStyle() { - return 0; - } - - public void setTextSize(float size) {} - - public void setTextSize(int unit, float size) {} - - public int getTextSizeUnit() { - return 0; - } - - public float getTextScaleX() { - return 0; - } - - public void setTextScaleX(float size) {} - - public void setTypeface(Typeface tf) {} - - public Typeface getTypeface() { - return null; - } - - public void setElegantTextHeight(boolean elegant) {} - - public void setFallbackLineSpacing(boolean enabled) {} - - public boolean isFallbackLineSpacing() { - return false; - } - - public boolean isElegantTextHeight() { - return false; - } - - public float getLetterSpacing() { - return 0; - } - - public void setLetterSpacing(float letterSpacing) {} - - public String getFontFeatureSettings() { - return null; - } - - public String getFontVariationSettings() { - return null; - } - - public void setBreakStrategy(int breakStrategy) {} - - public int getBreakStrategy() { - return 0; - } - - public void setHyphenationFrequency(int hyphenationFrequency) {} - - public int getHyphenationFrequency() { - return 0; - } - - public void setJustificationMode(int justificationMode) {} - - public int getJustificationMode() { - return 0; - } - - public void setFontFeatureSettings(String fontFeatureSettings) {} - - public boolean setFontVariationSettings(String fontVariationSettings) { - return false; - } - - public void setTextColor(int color) {} - - public void setTextColor(ColorStateList colors) {} - - public final ColorStateList getTextColors() { - return null; - } - - public final int getCurrentTextColor() { - return 0; - } - - public void setHighlightColor(int color) {} - - public int getHighlightColor() { - return 0; - } - - public final void setShowSoftInputOnFocus(boolean show) {} - - public final boolean getShowSoftInputOnFocus() { - return false; - } - - public void setShadowLayer(float radius, float dx, float dy, int color) {} - - public float getShadowRadius() { - return 0; - } - - public float getShadowDx() { - return 0; - } - - public float getShadowDy() { - return 0; - } - - public int getShadowColor() { - return 0; - } - - public final void setAutoLinkMask(int mask) {} - - public final void setLinksClickable(boolean whether) {} - - public final boolean getLinksClickable() { - return false; - } - - public final void setHintTextColor(int color) {} - - public final void setHintTextColor(ColorStateList colors) {} - - public final ColorStateList getHintTextColors() { - return null; - } - - public final int getCurrentHintTextColor() { - return 0; - } - - public final void setLinkTextColor(int color) {} - - public final void setLinkTextColor(ColorStateList colors) {} - - public final ColorStateList getLinkTextColors() { - return null; - } - - public void setGravity(int gravity) {} - - public int getGravity() { - return 0; - } - - public int getPaintFlags() { - return 0; - } - - public void setPaintFlags(int flags) {} - - public void setHorizontallyScrolling(boolean whether) {} - - public final boolean isHorizontallyScrollable() { - return false; - } - - public boolean getHorizontallyScrolling() { - return false; - } - - public void setMinLines(int minLines) {} - - public int getMinLines() { - return 0; - } - - public void setMinHeight(int minPixels) {} - - public int getMinHeight() { - return 0; - } - - public void setMaxLines(int maxLines) {} - - public int getMaxLines() { - return 0; - } - - public void setMaxHeight(int maxPixels) {} - - public int getMaxHeight() { - return 0; - } - - public void setLines(int lines) {} - - public void setHeight(int pixels) {} - - public void setMinEms(int minEms) {} - - public int getMinEms() { - return 0; - } - - public void setMinWidth(int minPixels) {} - - public int getMinWidth() { - return 0; - } - - public void setMaxEms(int maxEms) {} - - public int getMaxEms() { - return 0; - } - - public void setMaxWidth(int maxPixels) {} - - public int getMaxWidth() { - return 0; - } - - public void setEms(int ems) {} - - public void setWidth(int pixels) {} - - public void setLineSpacing(float add, float mult) {} - - public float getLineSpacingMultiplier() { - return 0; - } - - public float getLineSpacingExtra() { - return 0; - } - - public void setLineHeight(int lineHeight) {} - - public final void append(CharSequence text) {} - - public void append(CharSequence text, int start, int end) {} - - - public void setFreezesText(boolean freezesText) {} - - public boolean getFreezesText() { - return false; - } - - public final void setText(CharSequence text) {} - - public final void setTextKeepState(CharSequence text) {} - - public void setText(CharSequence text, BufferType type) {} - - public final void setText(char[] text, int start, int len) {} - - public final void setTextKeepState(CharSequence text, BufferType type) {} - - public final void setText(int resid) {} - - public final void setText(int resid, BufferType type) {} - - public final void setHint(CharSequence hint) {} - - public final void setHint(int resid) {} - - public CharSequence getHint() { - return null; - } - - public boolean isSingleLine() { - return false; - } - - public void setInputType(int type) {} - - public boolean isAnyPasswordInputType() { - return false; - } - - public void setRawInputType(int type) {} - - public int getInputType() { - return 0; - } - - public void setImeOptions(int imeOptions) {} - - public int getImeOptions() { - return 0; - } - - public void setImeActionLabel(CharSequence label, int actionId) {} - - public CharSequence getImeActionLabel() { - return null; - } - - public int getImeActionId() { - return 0; - } - - public void onEditorAction(int actionCode) {} - - public void setPrivateImeOptions(String type) {} - - public String getPrivateImeOptions() { - return null; - } - - public Bundle getInputExtras(boolean create) { - return null; - } - - public void setImeHintLocales(LocaleList hintLocales) {} - - public LocaleList getImeHintLocales() { - return null; - } - - public CharSequence getError() { - return null; - } - - public void setError(CharSequence error) {} - - public void setError(CharSequence error, Drawable icon) {} - - public boolean isTextSelectable() { - return false; - } - - public void setTextIsSelectable(boolean selectable) {} - - public int getHorizontalOffsetForDrawables() { - return 0; - } - - public int getLineCount() { - return 0; - } - - public int getLineBounds(int line, Rect bounds) { - return 0; - } - - public int getBaseline() { - return 0; - } - - public void resetErrorChangedFlag() {} - - public void hideErrorIfUnchanged() {} - - public boolean onCheckIsTextEditor() { - return false; - } - - public void beginBatchEdit() {} - - public void endBatchEdit() {} - - public void onBeginBatchEdit() {} - - public void onEndBatchEdit() {} - - public boolean onPrivateIMECommand(String action, Bundle data) { - return false; - } - - public void nullLayouts() {} - - public boolean useDynamicLayout() { - return false; - } - - public void setIncludeFontPadding(boolean includepad) {} - - public boolean getIncludeFontPadding() { - return false; - } - - public boolean bringPointIntoView(int offset) { - return false; - } - - public boolean moveCursorToVisibleOffset() { - return false; - } - - public void computeScroll() {} - - public void debug(int depth) {} - - public int getSelectionStart() { - return 0; - } - - public int getSelectionEnd() { - return 0; - } - - public boolean hasSelection() { - return false; - } - - public void setSingleLine() {} - - public void setAllCaps(boolean allCaps) {} - - public boolean isAllCaps() { - return false; - } - - public void setSingleLine(boolean singleLine) {} - - public void setMarqueeRepeatLimit(int marqueeLimit) {} - - public int getMarqueeRepeatLimit() { - return 0; - } - - public void setSelectAllOnFocus(boolean selectAllOnFocus) {} - - public void setCursorVisible(boolean visible) {} - - public boolean isCursorVisible() { - return false; - } - - public void onWindowFocusChanged(boolean hasWindowFocus) {} - - public void clearComposingText() {} - - public void setSelected(boolean selected) {} - - public boolean showContextMenu() { - return false; - } - - public boolean showContextMenu(float x, float y) { - return false; - } - - public boolean didTouchFocusSelect() { - return false; - } - - public void cancelLongPress() {} - - public void findViewsWithText(ArrayList outViews, CharSequence searched, int flags) {} - - public enum BufferType { - } - - public static ColorStateList getTextColors(Context context, TypedArray attrs) { - return null; - } - - public static int getTextColor(Context context, TypedArray attrs, int def) { - return 0; - } - - public final void setTextOperationUser(UserHandle user) {} - - public Locale getTextServicesLocale() { - return null; - } - - public boolean isInExtractedMode() { - return false; - } - - public Locale getSpellCheckerLocale() { - return null; - } - - public CharSequence getAccessibilityClassName() { - return null; - } - - public boolean isPositionVisible(final float positionX, final float positionY) { - return false; - } - - public boolean performAccessibilityActionInternal(int action, Bundle arguments) { - return false; - } - - public void sendAccessibilityEventInternal(int eventType) {} - - public boolean isInputMethodTarget() { - return false; - } - - public boolean onTextContextMenuItem(int id) { - return false; - } - - public boolean performLongClick() { - return false; - } - - public boolean isSuggestionsEnabled() { - return false; - } - - public void hideFloatingToolbar(int durationMs) {} - - public int getOffsetForPosition(float x, float y) { - return 0; - } - - public void onRtlPropertiesChanged(int layoutDirection) {} - - public void onResolveDrawables(int layoutDirection) {} - - public CharSequence getIterableTextForAccessibility() { - return null; - } - - public int getAccessibilitySelectionStart() { - return 0; - } - - public boolean isAccessibilitySelectionExtendable() { - return false; - } - - public int getAccessibilitySelectionEnd() { - return 0; - } - - public void setAccessibilitySelection(int start, int end) {} - +import android.view.ViewTreeObserver; +import android.view.accessibility.AccessibilityEvent; +import android.view.accessibility.AccessibilityNodeInfo; +import android.view.autofill.AutofillValue; +import android.view.inputmethod.CompletionInfo; +import android.view.inputmethod.CorrectionInfo; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.ExtractedText; +import android.view.inputmethod.ExtractedTextRequest; +import android.view.inputmethod.InputConnection; +import android.view.textclassifier.TextClassifier; +import android.view.translation.ViewTranslationRequest; +import android.widget.Scroller; +import java.util.ArrayList; +import java.util.Locale; +import java.util.function.Consumer; + +public class TextView extends View implements ViewTreeObserver.OnPreDrawListener +{ + protected TextView() {} + protected MovementMethod getDefaultMovementMethod(){ return null; } + protected boolean getDefaultEditable(){ return false; } + protected boolean isPaddingOffsetRequired(){ return false; } + protected boolean setFrame(int p0, int p1, int p2, int p3){ return false; } + protected boolean verifyDrawable(Drawable p0){ return false; } + protected float getLeftFadingEdgeStrength(){ return 0; } + protected float getRightFadingEdgeStrength(){ return 0; } + protected int computeHorizontalScrollRange(){ return 0; } + protected int computeVerticalScrollExtent(){ return 0; } + protected int computeVerticalScrollRange(){ return 0; } + protected int getBottomPaddingOffset(){ return 0; } + protected int getLeftPaddingOffset(){ return 0; } + protected int getRightPaddingOffset(){ return 0; } + protected int getTopPaddingOffset(){ return 0; } + protected int[] onCreateDrawableState(int p0){ return null; } + protected void drawableStateChanged(){} + protected void onAttachedToWindow(){} + protected void onConfigurationChanged(Configuration p0){} + protected void onCreateContextMenu(ContextMenu p0){} + protected void onDraw(Canvas p0){} + protected void onFocusChanged(boolean p0, int p1, Rect p2){} + protected void onLayout(boolean p0, int p1, int p2, int p3, int p4){} + protected void onMeasure(int p0, int p1){} + protected void onScrollChanged(int p0, int p1, int p2, int p3){} + protected void onSelectionChanged(int p0, int p1){} + protected void onTextChanged(CharSequence p0, int p1, int p2, int p3){} + protected void onVisibilityChanged(View p0, int p1){} + public ActionMode.Callback getCustomInsertionActionModeCallback(){ return null; } + public ActionMode.Callback getCustomSelectionActionModeCallback(){ return null; } + public AutofillValue getAutofillValue(){ return null; } + public BlendMode getCompoundDrawableTintBlendMode(){ return null; } + public Bundle getInputExtras(boolean p0){ return null; } + public CharSequence getAccessibilityClassName(){ return null; } + public CharSequence getError(){ return null; } + public CharSequence getHint(){ return null; } + public CharSequence getImeActionLabel(){ return null; } + public CharSequence getText(){ return null; } + public ColorStateList getCompoundDrawableTintList(){ return null; } + public ContentInfo onReceiveContent(ContentInfo p0){ return null; } + public Drawable getTextCursorDrawable(){ return null; } + public Drawable getTextSelectHandle(){ return null; } + public Drawable getTextSelectHandleLeft(){ return null; } + public Drawable getTextSelectHandleRight(){ return null; } + public Drawable[] getCompoundDrawables(){ return null; } + public Drawable[] getCompoundDrawablesRelative(){ return null; } + public Editable getEditableText(){ return null; } + public InputConnection onCreateInputConnection(EditorInfo p0){ return null; } + public InputFilter[] getFilters(){ return null; } + public Locale getTextLocale(){ return null; } + public LocaleList getImeHintLocales(){ return null; } + public LocaleList getTextLocales(){ return null; } + public Parcelable onSaveInstanceState(){ return null; } + public PointerIcon onResolvePointerIcon(MotionEvent p0, int p1){ return null; } + public PorterDuff.Mode getCompoundDrawableTintMode(){ return null; } + public PrecomputedText.Params getTextMetricsParams(){ return null; } + public String getFontFeatureSettings(){ return null; } + public String getFontVariationSettings(){ return null; } + public String getPrivateImeOptions(){ return null; } + public TextClassifier getTextClassifier(){ return null; } + public TextDirectionHeuristic getTextDirectionHeuristic(){ return null; } + public TextPaint getPaint(){ return null; } + public TextUtils.TruncateAt getEllipsize(){ return null; } + public TextView(Context p0){} + public TextView(Context p0, AttributeSet p1){} + public TextView(Context p0, AttributeSet p1, int p2){} + public TextView(Context p0, AttributeSet p1, int p2, int p3){} + public Typeface getTypeface(){ return null; } + public URLSpan[] getUrls(){ return null; } + public boolean bringPointIntoView(int p0){ return false; } + public boolean didTouchFocusSelect(){ return false; } + public boolean extractText(ExtractedTextRequest p0, ExtractedText p1){ return false; } + public boolean getFreezesText(){ return false; } + public boolean getIncludeFontPadding(){ return false; } + public boolean hasOverlappingRendering(){ return false; } + public boolean hasSelection(){ return false; } + public boolean isAllCaps(){ return false; } + public boolean isCursorVisible(){ return false; } + public boolean isElegantTextHeight(){ return false; } + public boolean isFallbackLineSpacing(){ return false; } + public boolean isInputMethodTarget(){ return false; } + public boolean isSingleLine(){ return false; } + public boolean isSuggestionsEnabled(){ return false; } + public boolean isTextSelectable(){ return false; } + public boolean moveCursorToVisibleOffset(){ return false; } + public boolean onCheckIsTextEditor(){ return false; } + public boolean onDragEvent(DragEvent p0){ return false; } + public boolean onGenericMotionEvent(MotionEvent p0){ return false; } + public boolean onKeyDown(int p0, KeyEvent p1){ return false; } + public boolean onKeyMultiple(int p0, int p1, KeyEvent p2){ return false; } + public boolean onKeyPreIme(int p0, KeyEvent p1){ return false; } + public boolean onKeyShortcut(int p0, KeyEvent p1){ return false; } + public boolean onKeyUp(int p0, KeyEvent p1){ return false; } + public boolean onPreDraw(){ return false; } + public boolean onPrivateIMECommand(String p0, Bundle p1){ return false; } + public boolean onTextContextMenuItem(int p0){ return false; } + public boolean onTouchEvent(MotionEvent p0){ return false; } + public boolean onTrackballEvent(MotionEvent p0){ return false; } + public boolean performLongClick(){ return false; } + public boolean setFontVariationSettings(String p0){ return false; } + public boolean showContextMenu(){ return false; } + public boolean showContextMenu(float p0, float p1){ return false; } + public final ColorStateList getHintTextColors(){ return null; } + public final ColorStateList getLinkTextColors(){ return null; } + public final ColorStateList getTextColors(){ return null; } + public final KeyListener getKeyListener(){ return null; } + public final Layout getLayout(){ return null; } + public final MovementMethod getMovementMethod(){ return null; } + public final TransformationMethod getTransformationMethod(){ return null; } + public final boolean getLinksClickable(){ return false; } + public final boolean getShowSoftInputOnFocus(){ return false; } + public final boolean isHorizontallyScrollable(){ return false; } + public final int getAutoLinkMask(){ return 0; } + public final int getCurrentHintTextColor(){ return 0; } + public final int getCurrentTextColor(){ return 0; } + public final void append(CharSequence p0){} + public final void setAutoLinkMask(int p0){} + public final void setEditableFactory(Editable.Factory p0){} + public final void setHint(CharSequence p0){} + public final void setHint(int p0){} + public final void setHintTextColor(ColorStateList p0){} + public final void setHintTextColor(int p0){} + public final void setLinkTextColor(ColorStateList p0){} + public final void setLinkTextColor(int p0){} + public final void setLinksClickable(boolean p0){} + public final void setMovementMethod(MovementMethod p0){} + public final void setShowSoftInputOnFocus(boolean p0){} + public final void setSpannableFactory(Spannable.Factory p0){} + public final void setText(CharSequence p0){} + public final void setText(char[] p0, int p1, int p2){} + public final void setText(int p0){} + public final void setText(int p0, TextView.BufferType p1){} + public final void setTextKeepState(CharSequence p0){} + public final void setTextKeepState(CharSequence p0, TextView.BufferType p1){} + public final void setTransformationMethod(TransformationMethod p0){} + public float getLetterSpacing(){ return 0; } + public float getLineSpacingExtra(){ return 0; } + public float getLineSpacingMultiplier(){ return 0; } + public float getShadowDx(){ return 0; } + public float getShadowDy(){ return 0; } + public float getShadowRadius(){ return 0; } + public float getTextScaleX(){ return 0; } + public float getTextSize(){ return 0; } + public int getAutoSizeMaxTextSize(){ return 0; } + public int getAutoSizeMinTextSize(){ return 0; } + public int getAutoSizeStepGranularity(){ return 0; } + public int getAutoSizeTextType(){ return 0; } + public int getAutofillType(){ return 0; } + public int getBaseline(){ return 0; } + public int getBreakStrategy(){ return 0; } + public int getCompoundDrawablePadding(){ return 0; } + public int getCompoundPaddingBottom(){ return 0; } + public int getCompoundPaddingEnd(){ return 0; } + public int getCompoundPaddingLeft(){ return 0; } + public int getCompoundPaddingRight(){ return 0; } + public int getCompoundPaddingStart(){ return 0; } + public int getCompoundPaddingTop(){ return 0; } + public int getExtendedPaddingBottom(){ return 0; } + public int getExtendedPaddingTop(){ return 0; } + public int getFirstBaselineToTopHeight(){ return 0; } + public int getGravity(){ return 0; } + public int getHighlightColor(){ return 0; } + public int getHyphenationFrequency(){ return 0; } + public int getImeActionId(){ return 0; } + public int getImeOptions(){ return 0; } + public int getInputType(){ return 0; } + public int getJustificationMode(){ return 0; } + public int getLastBaselineToBottomHeight(){ return 0; } + public int getLineBounds(int p0, Rect p1){ return 0; } + public int getLineCount(){ return 0; } + public int getLineHeight(){ return 0; } + public int getMarqueeRepeatLimit(){ return 0; } + public int getMaxEms(){ return 0; } + public int getMaxHeight(){ return 0; } + public int getMaxLines(){ return 0; } + public int getMaxWidth(){ return 0; } + public int getMinEms(){ return 0; } + public int getMinHeight(){ return 0; } + public int getMinLines(){ return 0; } + public int getMinWidth(){ return 0; } + public int getOffsetForPosition(float p0, float p1){ return 0; } + public int getPaintFlags(){ return 0; } + public int getSelectionEnd(){ return 0; } + public int getSelectionStart(){ return 0; } + public int getShadowColor(){ return 0; } + public int getTextSizeUnit(){ return 0; } + public int getTotalPaddingBottom(){ return 0; } + public int getTotalPaddingEnd(){ return 0; } + public int getTotalPaddingLeft(){ return 0; } + public int getTotalPaddingRight(){ return 0; } + public int getTotalPaddingStart(){ return 0; } + public int getTotalPaddingTop(){ return 0; } + public int length(){ return 0; } + public int[] getAutoSizeTextAvailableSizes(){ return null; } + public static int AUTO_SIZE_TEXT_TYPE_NONE = 0; + public static int AUTO_SIZE_TEXT_TYPE_UNIFORM = 0; + public void addExtraDataToAccessibilityNodeInfo(AccessibilityNodeInfo p0, String p1, Bundle p2){} + public void addTextChangedListener(TextWatcher p0){} + public void append(CharSequence p0, int p1, int p2){} + public void autofill(AutofillValue p0){} + public void beginBatchEdit(){} + public void cancelLongPress(){} + public void clearComposingText(){} + public void computeScroll(){} + public void debug(int p0){} + public void drawableHotspotChanged(float p0, float p1){} + public void endBatchEdit(){} + public void findViewsWithText(ArrayList p0, CharSequence p1, int p2){} + public void getFocusedRect(Rect p0){} + public void invalidateDrawable(Drawable p0){} + public void jumpDrawablesToCurrentState(){} + public void onBeginBatchEdit(){} + public void onCommitCompletion(CompletionInfo p0){} + public void onCommitCorrection(CorrectionInfo p0){} + public void onCreateViewTranslationRequest(int[] p0, Consumer p1){} + public void onEditorAction(int p0){} + public void onEndBatchEdit(){} + public void onRestoreInstanceState(Parcelable p0){} + public void onRtlPropertiesChanged(int p0){} + public void onScreenStateChanged(int p0){} + public void onWindowFocusChanged(boolean p0){} + public void removeTextChangedListener(TextWatcher p0){} + public void sendAccessibilityEventUnchecked(AccessibilityEvent p0){} + public void setAllCaps(boolean p0){} + public void setAutoSizeTextTypeUniformWithConfiguration(int p0, int p1, int p2, int p3){} + public void setAutoSizeTextTypeUniformWithPresetSizes(int[] p0, int p1){} + public void setAutoSizeTextTypeWithDefaults(int p0){} + public void setBreakStrategy(int p0){} + public void setCompoundDrawablePadding(int p0){} + public void setCompoundDrawableTintBlendMode(BlendMode p0){} + public void setCompoundDrawableTintList(ColorStateList p0){} + public void setCompoundDrawableTintMode(PorterDuff.Mode p0){} + public void setCompoundDrawables(Drawable p0, Drawable p1, Drawable p2, Drawable p3){} + public void setCompoundDrawablesRelative(Drawable p0, Drawable p1, Drawable p2, Drawable p3){} + public void setCompoundDrawablesRelativeWithIntrinsicBounds(Drawable p0, Drawable p1, Drawable p2, Drawable p3){} + public void setCompoundDrawablesRelativeWithIntrinsicBounds(int p0, int p1, int p2, int p3){} + public void setCompoundDrawablesWithIntrinsicBounds(Drawable p0, Drawable p1, Drawable p2, Drawable p3){} + public void setCompoundDrawablesWithIntrinsicBounds(int p0, int p1, int p2, int p3){} + public void setCursorVisible(boolean p0){} + public void setCustomInsertionActionModeCallback(ActionMode.Callback p0){} + public void setCustomSelectionActionModeCallback(ActionMode.Callback p0){} + public void setElegantTextHeight(boolean p0){} + public void setEllipsize(TextUtils.TruncateAt p0){} + public void setEms(int p0){} + public void setEnabled(boolean p0){} + public void setError(CharSequence p0){} + public void setError(CharSequence p0, Drawable p1){} + public void setExtractedText(ExtractedText p0){} + public void setFallbackLineSpacing(boolean p0){} + public void setFilters(InputFilter[] p0){} + public void setFirstBaselineToTopHeight(int p0){} + public void setFontFeatureSettings(String p0){} + public void setFreezesText(boolean p0){} + public void setGravity(int p0){} + public void setHeight(int p0){} + public void setHighlightColor(int p0){} + public void setHorizontallyScrolling(boolean p0){} + public void setHyphenationFrequency(int p0){} + public void setImeActionLabel(CharSequence p0, int p1){} + public void setImeHintLocales(LocaleList p0){} + public void setImeOptions(int p0){} + public void setIncludeFontPadding(boolean p0){} + public void setInputExtras(int p0){} + public void setInputType(int p0){} + public void setJustificationMode(int p0){} + public void setKeyListener(KeyListener p0){} + public void setLastBaselineToBottomHeight(int p0){} + public void setLetterSpacing(float p0){} + public void setLineHeight(int p0){} + public void setLineSpacing(float p0, float p1){} + public void setLines(int p0){} + public void setMarqueeRepeatLimit(int p0){} + public void setMaxEms(int p0){} + public void setMaxHeight(int p0){} + public void setMaxLines(int p0){} + public void setMaxWidth(int p0){} + public void setMinEms(int p0){} + public void setMinHeight(int p0){} + public void setMinLines(int p0){} + public void setMinWidth(int p0){} + public void setOnEditorActionListener(TextView.OnEditorActionListener p0){} + public void setPadding(int p0, int p1, int p2, int p3){} + public void setPaddingRelative(int p0, int p1, int p2, int p3){} + public void setPaintFlags(int p0){} + public void setPrivateImeOptions(String p0){} + public void setRawInputType(int p0){} + public void setScroller(Scroller p0){} + public void setSelectAllOnFocus(boolean p0){} + public void setSelected(boolean p0){} + public void setShadowLayer(float p0, float p1, float p2, int p3){} + public void setSingleLine(){} + public void setSingleLine(boolean p0){} + public void setText(CharSequence p0, TextView.BufferType p1){} + public void setTextAppearance(Context p0, int p1){} + public void setTextAppearance(int p0){} + public void setTextClassifier(TextClassifier p0){} + public void setTextColor(ColorStateList p0){} + public void setTextColor(int p0){} + public void setTextCursorDrawable(Drawable p0){} + public void setTextCursorDrawable(int p0){} + public void setTextIsSelectable(boolean p0){} + public void setTextLocale(Locale p0){} + public void setTextLocales(LocaleList p0){} + public void setTextMetricsParams(PrecomputedText.Params p0){} + public void setTextScaleX(float p0){} + public void setTextSelectHandle(Drawable p0){} + public void setTextSelectHandle(int p0){} + public void setTextSelectHandleLeft(Drawable p0){} + public void setTextSelectHandleLeft(int p0){} + public void setTextSelectHandleRight(Drawable p0){} + public void setTextSelectHandleRight(int p0){} + public void setTextSize(float p0){} + public void setTextSize(int p0, float p1){} + public void setTypeface(Typeface p0){} + public void setTypeface(Typeface p0, int p1){} + public void setWidth(int p0){} + static public enum BufferType + { + EDITABLE, NORMAL, SPANNABLE; + private BufferType() {} + } + static public interface OnEditorActionListener + { + boolean onEditorAction(TextView p0, int p1, KeyEvent p2); + } } diff --git a/java/ql/test/stubs/google-android-9.0.0/android/widget/Toolbar.java b/java/ql/test/stubs/google-android-9.0.0/android/widget/Toolbar.java new file mode 100644 index 00000000000..91b6be9e53d --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/widget/Toolbar.java @@ -0,0 +1,116 @@ +// Generated automatically from android.widget.Toolbar for testing purposes + +package android.widget; + +import android.app.ActionBar; +import android.content.Context; +import android.graphics.drawable.Drawable; +import android.os.Parcelable; +import android.util.AttributeSet; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; + +public class Toolbar extends ViewGroup +{ + protected Toolbar() {} + protected Parcelable onSaveInstanceState(){ return null; } + protected Toolbar.LayoutParams generateDefaultLayoutParams(){ return null; } + protected Toolbar.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p0){ return null; } + protected boolean checkLayoutParams(ViewGroup.LayoutParams p0){ return false; } + protected void onAttachedToWindow(){} + protected void onDetachedFromWindow(){} + protected void onLayout(boolean p0, int p1, int p2, int p3, int p4){} + protected void onMeasure(int p0, int p1){} + protected void onRestoreInstanceState(Parcelable p0){} + public CharSequence getCollapseContentDescription(){ return null; } + public CharSequence getLogoDescription(){ return null; } + public CharSequence getNavigationContentDescription(){ return null; } + public CharSequence getSubtitle(){ return null; } + public CharSequence getTitle(){ return null; } + public Drawable getCollapseIcon(){ return null; } + public Drawable getLogo(){ return null; } + public Drawable getNavigationIcon(){ return null; } + public Drawable getOverflowIcon(){ return null; } + public Menu getMenu(){ return null; } + public Toolbar(Context p0){} + public Toolbar(Context p0, AttributeSet p1){} + public Toolbar(Context p0, AttributeSet p1, int p2){} + public Toolbar(Context p0, AttributeSet p1, int p2, int p3){} + public Toolbar.LayoutParams generateLayoutParams(AttributeSet p0){ return null; } + public boolean hasExpandedActionView(){ return false; } + public boolean hideOverflowMenu(){ return false; } + public boolean isOverflowMenuShowing(){ return false; } + public boolean onTouchEvent(MotionEvent p0){ return false; } + public boolean showOverflowMenu(){ return false; } + public int getContentInsetEnd(){ return 0; } + public int getContentInsetEndWithActions(){ return 0; } + public int getContentInsetLeft(){ return 0; } + public int getContentInsetRight(){ return 0; } + public int getContentInsetStart(){ return 0; } + public int getContentInsetStartWithNavigation(){ return 0; } + public int getCurrentContentInsetEnd(){ return 0; } + public int getCurrentContentInsetLeft(){ return 0; } + public int getCurrentContentInsetRight(){ return 0; } + public int getCurrentContentInsetStart(){ return 0; } + public int getPopupTheme(){ return 0; } + public int getTitleMarginBottom(){ return 0; } + public int getTitleMarginEnd(){ return 0; } + public int getTitleMarginStart(){ return 0; } + public int getTitleMarginTop(){ return 0; } + public void collapseActionView(){} + public void dismissPopupMenus(){} + public void inflateMenu(int p0){} + public void onRtlPropertiesChanged(int p0){} + public void setCollapseContentDescription(CharSequence p0){} + public void setCollapseContentDescription(int p0){} + public void setCollapseIcon(Drawable p0){} + public void setCollapseIcon(int p0){} + public void setContentInsetEndWithActions(int p0){} + public void setContentInsetStartWithNavigation(int p0){} + public void setContentInsetsAbsolute(int p0, int p1){} + public void setContentInsetsRelative(int p0, int p1){} + public void setLogo(Drawable p0){} + public void setLogo(int p0){} + public void setLogoDescription(CharSequence p0){} + public void setLogoDescription(int p0){} + public void setNavigationContentDescription(CharSequence p0){} + public void setNavigationContentDescription(int p0){} + public void setNavigationIcon(Drawable p0){} + public void setNavigationIcon(int p0){} + public void setNavigationOnClickListener(View.OnClickListener p0){} + public void setOnMenuItemClickListener(Toolbar.OnMenuItemClickListener p0){} + public void setOverflowIcon(Drawable p0){} + public void setPopupTheme(int p0){} + public void setSubtitle(CharSequence p0){} + public void setSubtitle(int p0){} + public void setSubtitleTextAppearance(Context p0, int p1){} + public void setSubtitleTextColor(int p0){} + public void setTitle(CharSequence p0){} + public void setTitle(int p0){} + public void setTitleMargin(int p0, int p1, int p2, int p3){} + public void setTitleMarginBottom(int p0){} + public void setTitleMarginEnd(int p0){} + public void setTitleMarginStart(int p0){} + public void setTitleMarginTop(int p0){} + public void setTitleTextAppearance(Context p0, int p1){} + public void setTitleTextColor(int p0){} + static public class LayoutParams extends ActionBar.LayoutParams + { + protected LayoutParams() {} + public LayoutParams(ActionBar.LayoutParams p0){} + public LayoutParams(Context p0, AttributeSet p1){} + public LayoutParams(Toolbar.LayoutParams p0){} + public LayoutParams(ViewGroup.LayoutParams p0){} + public LayoutParams(ViewGroup.MarginLayoutParams p0){} + public LayoutParams(int p0){} + public LayoutParams(int p0, int p1){} + public LayoutParams(int p0, int p1, int p2){} + } + static public interface OnMenuItemClickListener + { + boolean onMenuItemClick(MenuItem p0); + } +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/window/SplashScreen.java b/java/ql/test/stubs/google-android-9.0.0/android/window/SplashScreen.java new file mode 100644 index 00000000000..1c927807b45 --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/window/SplashScreen.java @@ -0,0 +1,16 @@ +// Generated automatically from android.window.SplashScreen for testing purposes + +package android.window; + +import android.window.SplashScreenView; + +public interface SplashScreen +{ + static public interface OnExitAnimationListener + { + void onSplashScreenExit(SplashScreenView p0); + } + void clearOnExitAnimationListener(); + void setOnExitAnimationListener(SplashScreen.OnExitAnimationListener p0); + void setSplashScreenTheme(int p0); +} diff --git a/java/ql/test/stubs/google-android-9.0.0/android/window/SplashScreenView.java b/java/ql/test/stubs/google-android-9.0.0/android/window/SplashScreenView.java new file mode 100644 index 00000000000..01ad6a2cd0b --- /dev/null +++ b/java/ql/test/stubs/google-android-9.0.0/android/window/SplashScreenView.java @@ -0,0 +1,18 @@ +// Generated automatically from android.window.SplashScreenView for testing purposes + +package android.window; + +import android.view.View; +import android.widget.FrameLayout; +import java.time.Duration; +import java.time.Instant; + +public class SplashScreenView extends FrameLayout +{ + protected void onDetachedFromWindow(){} + public Duration getIconAnimationDuration(){ return null; } + public Instant getIconAnimationStart(){ return null; } + public View getIconView(){ return null; } + public void remove(){} + public void setAlpha(float p0){} +} From a2245bb85856863e108aa077992a289476d281fa Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 21 Jun 2022 16:15:24 +0100 Subject: [PATCH 627/736] Fix test --- .../security/AndroidWebViewCertificateValidationQuery.qll | 4 +++- .../CWE-295/ImproperWebVeiwCertificateValidation/Test.java | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll index 5b459f07fac..609cafe4eb9 100644 --- a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll @@ -2,7 +2,9 @@ import java class OnReceivedSslErrorMethod extends Method { OnReceivedSslErrorMethod() { - this.hasQualifiedName("android.webkit", "WebViewClient", "onReceivedSslError") + this.overrides*(any(Method m | + m.hasQualifiedName("android.webkit", "WebViewClient", "onReceivedSslError") + )) } Parameter handlerArg() { result = this.getParameter(1) } diff --git a/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/Test.java b/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/Test.java index 3ddb0c6aad5..180989590f0 100644 --- a/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/Test.java +++ b/java/ql/test/query-tests/security/CWE-295/ImproperWebVeiwCertificateValidation/Test.java @@ -9,8 +9,8 @@ import android.app.Activity; class Test { class A extends WebViewClient { - public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { - handler.proceed(); // $hasResult + public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult + handler.proceed(); } } From f8ccbcba708c7f4d0a759b9b25eb5e3209aa7b60 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 22 Jun 2022 14:01:52 +0100 Subject: [PATCH 628/736] Add qhelp --- ...ImproperWebViewCertifiacteValidation.qhelp | 43 +++++++++++++++++++ .../ImproperWebViewCertificateValidation.java | 22 ++++++++++ 2 files changed, 65 insertions(+) create mode 100644 java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertifiacteValidation.qhelp create mode 100644 java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.java diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertifiacteValidation.qhelp b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertifiacteValidation.qhelp new file mode 100644 index 00000000000..e00108ea51e --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertifiacteValidation.qhelp @@ -0,0 +1,43 @@ + + + +

    +If the onReceivedSslError method of an Android WebViewClient always calls proceed on the given SslErrorHandler, it trusts any certificate. +This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives. +

    + +

    +An attack might look like this: +

    + +
      +
    1. The vulnerable application connects to https://example.com.
    2. +
    3. The attacker intercepts this connection and presents a valid, self-signed certificate for https://example.com.
    4. +
    5. The vulnerable application calls the onReceivedSslError method to check whether it should trust the certificate.
    6. +
    7. The onReceivedSslError method of your WebViewClient calls SslErrorHandler.proceed.
    8. +
    9. The vulnerable application accepts the certificate and proceeds with the connection since your WevViewClient trusted it by proceeding.
    10. +
    11. The attacker can now read the data your application sends to https://example.com and/or alter its replies while the application thinks the connection is secure.
    12. +
    + + + +

    +Do not use a call SslerrorHandler.proceed unconditonally. +If you have to use a self-signed certificate, only accept that certificate, not all certificates. +

    + +
    + + +

    +In the first (bad) example, the WebViewClient trusts all certificates by always calling SslErrorHandler.proceed. +In the second (good) example, only certificates signed by a certain public key are accepted. +

    + +
    + + + +
    diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.java b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.java new file mode 100644 index 00000000000..358800c5746 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.java @@ -0,0 +1,22 @@ +class Bad extends WebViewClient { + // BAD: All certificates are trusted. + public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult + handler.proceed(); + } +} + +class Good extends WebViewClient { + PublicKey myPubKey = ...; + + // GOOD: Only certificates signed by a certain public key are trusted. + public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult + try { + X509Certificate cert = error.getCertificate().getX509Certificate(); + cert.verify(this.myPubKey); + handler.proceed(); + } + catch (CertificateException|NoSuchAlgorithmException|InvalidKeyException|NoSuchProviderException|SignatureException e) { + handler.cancel(); + } + } +} \ No newline at end of file From 0d09484efcbe1ffe78c8b9994dba9ff5cbdf19f9 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 22 Jun 2022 14:08:35 +0100 Subject: [PATCH 629/736] Add change note --- .../2022-06-22-improper-webview-certificate-validation.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/src/change-notes/2022-06-22-improper-webview-certificate-validation.md diff --git a/java/ql/src/change-notes/2022-06-22-improper-webview-certificate-validation.md b/java/ql/src/change-notes/2022-06-22-improper-webview-certificate-validation.md new file mode 100644 index 00000000000..87ab835f547 --- /dev/null +++ b/java/ql/src/change-notes/2022-06-22-improper-webview-certificate-validation.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* A new query "Android `WebVeiw` that accepts all certificates" (`java/improper-webview-certificate-validation`) has been added. This query finds implementations of `WebViewClient`s that accept all certificates in the case of an SSL error. \ No newline at end of file From 03c2a0e8187e28762af0721e26dd403778edb5c9 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 22 Jun 2022 14:26:49 +0100 Subject: [PATCH 630/736] Add missing qldoc --- .../security/AndroidWebViewCertificateValidationQuery.qll | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll index 609cafe4eb9..af8f6eeb4a8 100644 --- a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll @@ -1,5 +1,8 @@ +/** Defintions for the web view certificate validation query */ + import java +/** A method that overrides `WebViewClient.onReceivedSslError` */ class OnReceivedSslErrorMethod extends Method { OnReceivedSslErrorMethod() { this.overrides*(any(Method m | @@ -7,21 +10,25 @@ class OnReceivedSslErrorMethod extends Method { )) } + /** Gets the `SslErrorHandler` argument to this method. */ Parameter handlerArg() { result = this.getParameter(1) } } +/** A call to `SslErrorHandler.cancel` */ private class SslCancelCall extends MethodAccess { SslCancelCall() { this.getMethod().hasQualifiedName("android.webkit", "SslErrorHandler", "cancel") } } +/** A call to `SslErrorHandler.proceed` */ private class SslProceedCall extends MethodAccess { SslProceedCall() { this.getMethod().hasQualifiedName("android.webkit", "SslErrorHandler", "proceed") } } +/** Holds if `m` trusts all certifiates by calling `SslErrorHandler.proceed` unconditionally. */ predicate trustsAllCerts(OnReceivedSslErrorMethod m) { exists(SslProceedCall pr | pr.getQualifier().(VarAccess).getVariable() = m.handlerArg()) and not exists(SslCancelCall ca | ca.getQualifier().(VarAccess).getVariable() = m.handlerArg()) From abf894a64cb7f4c2f2ca0fee372bc7de0a76d786 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 29 Jun 2022 13:57:51 +0100 Subject: [PATCH 631/736] Fix typos --- .../security/AndroidWebViewCertificateValidationQuery.qll | 4 ++-- ...ation.qhelp => ImproperWebViewCertificateValidation.qhelp} | 2 +- .../CWE/CWE-295/ImproperWebViewCertificateValidation.ql | 2 +- .../2022-06-22-improper-webview-certificate-validation.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename java/ql/src/Security/CWE/CWE-295/{ImproperWebViewCertifiacteValidation.qhelp => ImproperWebViewCertificateValidation.qhelp} (96%) diff --git a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll index af8f6eeb4a8..e8eae5b96f9 100644 --- a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll @@ -1,4 +1,4 @@ -/** Defintions for the web view certificate validation query */ +/** Definitions for the web view certificate validation query */ import java @@ -28,7 +28,7 @@ private class SslProceedCall extends MethodAccess { } } -/** Holds if `m` trusts all certifiates by calling `SslErrorHandler.proceed` unconditionally. */ +/** Holds if `m` trusts all certificates by calling `SslErrorHandler.proceed` unconditionally. */ predicate trustsAllCerts(OnReceivedSslErrorMethod m) { exists(SslProceedCall pr | pr.getQualifier().(VarAccess).getVariable() = m.handlerArg()) and not exists(SslCancelCall ca | ca.getQualifier().(VarAccess).getVariable() = m.handlerArg()) diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertifiacteValidation.qhelp b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp similarity index 96% rename from java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertifiacteValidation.qhelp rename to java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp index e00108ea51e..8fb725ff082 100644 --- a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertifiacteValidation.qhelp +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp @@ -24,7 +24,7 @@ An attack might look like this:

    -Do not use a call SslerrorHandler.proceed unconditonally. +Do not use a call SslerrorHandler.proceed unconditionally. If you have to use a self-signed certificate, only accept that certificate, not all certificates.

    diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql index 5d2f4cf7eb9..aac3a99be4c 100644 --- a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql @@ -1,5 +1,5 @@ /** - * @name Android `WebVeiw` that accepts all certificates + * @name Android `WebView` that accepts all certificates * @description Trusting all certificates allows an attacker to perform a machine-in-the-middle attack. * @kind problem * @problem.severity error diff --git a/java/ql/src/change-notes/2022-06-22-improper-webview-certificate-validation.md b/java/ql/src/change-notes/2022-06-22-improper-webview-certificate-validation.md index 87ab835f547..3e80487d772 100644 --- a/java/ql/src/change-notes/2022-06-22-improper-webview-certificate-validation.md +++ b/java/ql/src/change-notes/2022-06-22-improper-webview-certificate-validation.md @@ -1,4 +1,4 @@ --- category: newQuery --- -* A new query "Android `WebVeiw` that accepts all certificates" (`java/improper-webview-certificate-validation`) has been added. This query finds implementations of `WebViewClient`s that accept all certificates in the case of an SSL error. \ No newline at end of file +* A new query "Android `WebView` that accepts all certificates" (`java/improper-webview-certificate-validation`) has been added. This query finds implementations of `WebViewClient`s that accept all certificates in the case of an SSL error. \ No newline at end of file From 04df556861676d101ba345c147f969f75419dd4d Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 19 Jul 2022 14:08:28 +0100 Subject: [PATCH 632/736] Add suggested reference --- .../CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp index 8fb725ff082..2a8d3b58a4c 100644 --- a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp @@ -39,5 +39,8 @@ In the second (good) example, only certificates signed by a certain public key a +
  • +WebViewClient.onReceivedSslError documentation. +
  • From 79b1f24133f8c74af5be9ba9a43d258934210463 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 22 Jul 2022 11:11:43 +0100 Subject: [PATCH 633/736] Change machine-in-the-middle to man-in-the-middle --- .../CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp | 2 +- .../CWE/CWE-295/ImproperWebViewCertificateValidation.ql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp index 2a8d3b58a4c..41429f4996f 100644 --- a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp @@ -5,7 +5,7 @@

    If the onReceivedSslError method of an Android WebViewClient always calls proceed on the given SslErrorHandler, it trusts any certificate. -This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives. +This allows an attacker to perform a man-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.

    diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql index aac3a99be4c..4838621311b 100644 --- a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql @@ -1,6 +1,6 @@ /** * @name Android `WebView` that accepts all certificates - * @description Trusting all certificates allows an attacker to perform a machine-in-the-middle attack. + * @description Trusting all certificates allows an attacker to perform a man-in-the-middle attack. * @kind problem * @problem.severity error * @security-severity 7.5 From e9f9e681efaa639361c2b5340e2a3a0336d8eb37 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 22 Jul 2022 11:24:32 +0100 Subject: [PATCH 634/736] Change man-in-the-middle back to machine-in-the-middle (gender-neutral language) This reverts commit d5ab330450d3f5c1d36d0d9b6a8f1dc32bc908e3. --- .../CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp | 2 +- .../CWE/CWE-295/ImproperWebViewCertificateValidation.ql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp index 41429f4996f..2a8d3b58a4c 100644 --- a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.qhelp @@ -5,7 +5,7 @@

    If the onReceivedSslError method of an Android WebViewClient always calls proceed on the given SslErrorHandler, it trusts any certificate. -This allows an attacker to perform a man-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives. +This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.

    diff --git a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql index 4838621311b..aac3a99be4c 100644 --- a/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql +++ b/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql @@ -1,6 +1,6 @@ /** * @name Android `WebView` that accepts all certificates - * @description Trusting all certificates allows an attacker to perform a man-in-the-middle attack. + * @description Trusting all certificates allows an attacker to perform a machine-in-the-middle attack. * @kind problem * @problem.severity error * @security-severity 7.5 From dd83c17144fc339606f629fbc8bf11c15679c9a5 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 26 Jul 2022 16:29:49 +0100 Subject: [PATCH 635/736] Use more precise control flow logic --- .../AndroidWebViewCertificateValidationQuery.qll | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll index e8eae5b96f9..3d47f77a2bb 100644 --- a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll @@ -14,13 +14,6 @@ class OnReceivedSslErrorMethod extends Method { Parameter handlerArg() { result = this.getParameter(1) } } -/** A call to `SslErrorHandler.cancel` */ -private class SslCancelCall extends MethodAccess { - SslCancelCall() { - this.getMethod().hasQualifiedName("android.webkit", "SslErrorHandler", "cancel") - } -} - /** A call to `SslErrorHandler.proceed` */ private class SslProceedCall extends MethodAccess { SslProceedCall() { @@ -30,6 +23,7 @@ private class SslProceedCall extends MethodAccess { /** Holds if `m` trusts all certificates by calling `SslErrorHandler.proceed` unconditionally. */ predicate trustsAllCerts(OnReceivedSslErrorMethod m) { - exists(SslProceedCall pr | pr.getQualifier().(VarAccess).getVariable() = m.handlerArg()) and - not exists(SslCancelCall ca | ca.getQualifier().(VarAccess).getVariable() = m.handlerArg()) + exists(SslProceedCall pr | pr.getQualifier().(VarAccess).getVariable() = m.handlerArg() | + pr.getBasicBlock().bbPostDominates(m.getBody().getBasicBlock()) + ) } From 400071091c9d66f02ec7c39461f9a696240326e0 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 5 Aug 2022 13:45:25 +0200 Subject: [PATCH 636/736] C#: Also disable shared compilation in the tracer for `dotnet msbuild` --- csharp/tools/tracing-config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/tools/tracing-config.lua b/csharp/tools/tracing-config.lua index 8aafc63e7e5..efa936b41dd 100644 --- a/csharp/tools/tracing-config.lua +++ b/csharp/tools/tracing-config.lua @@ -31,7 +31,7 @@ function RegisterExtractorPack(id) local firstCharacter = string.sub(arg, 1, 1) if not (firstCharacter == '-') and not (firstCharacter == '/') then Log(1, 'Dotnet subcommand detected: %s', arg) - if arg == 'build' then match = true end + if arg == 'build' or arg == 'msbuild' then match = true end break end end From 6cfeb24d940b9f2a8aff2fd9c06479df235802e2 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 5 Aug 2022 13:30:45 +0100 Subject: [PATCH 637/736] Swift: More comments. --- .../swift/controlflow/internal/ControlFlowGraphImpl.qll | 6 +++++- .../swift/dataflow/internal/TaintTrackingPrivate.qll | 8 ++++++++ swift/ql/lib/codeql/swift/elements/expr/TapExpr.qll | 9 ++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index 6549d9692f2..b367aa80d52 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -1349,17 +1349,21 @@ module Exprs { } } + /** Control-flow for a `TapExpr`. See the QLDoc for `TapExpr` for the semantics of a `TapExpr`. */ private class TapExprTree extends AstStandardPostOrderTree { override TapExpr ast; final override ControlFlowElement getChildElement(int i) { + // We first visit the local variable declaration. i = 0 and result.asAstNode() = ast.getVar() or + // Then we visit the expression that gives the local variable its initial value. i = 1 and result.asAstNode() = ast.getSubExpr().getFullyConverted() or - // Note: The CFG for the body will skip the first element in the + // And finally, we visit the body that potentially mutates the local variable. + // Note that the CFG for the body will skip the first element in the // body because it's guarenteed to be the variable declaration // that we've already visited at i = 0. See the explanation // in `BraceStmtTree` for why this is necessary. diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll index 804bada88bf..58e29b61bba 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll @@ -20,6 +20,14 @@ private module Cached { cached predicate defaultAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { // Flow through one argument of `appendLiteral` and `appendInterpolation` and to the second argument. + // This is needed for string interpolation generated by the compiler. An interpolated string + // like `"I am \(n) years old."` is represented as + // ``` + // $interpolated = "" + // appendLiteral(&$interpolated, "I am ") + // appendInterpolation(&$interpolated, n) + // appendLiteral(&$interpolated, " years old.") + // ``` exists(ApplyExpr apply1, ApplyExpr apply2, ExprCfgNode e | nodeFrom.asExpr() = [apply1, apply2].getAnArgument().getExpr() and apply1.getFunction() = apply2 and diff --git a/swift/ql/lib/codeql/swift/elements/expr/TapExpr.qll b/swift/ql/lib/codeql/swift/elements/expr/TapExpr.qll index e0608415f1d..e200b613823 100644 --- a/swift/ql/lib/codeql/swift/elements/expr/TapExpr.qll +++ b/swift/ql/lib/codeql/swift/elements/expr/TapExpr.qll @@ -1,4 +1,11 @@ -// generated by codegen/codegen.py, remove this comment if you wish to edit this file private import codeql.swift.generated.expr.TapExpr +/** + * A `TapExpr` is an internal expression generated by the Swift compiler. + * + * If `e` is a `TapExpr`, the semantics of evaluating `e` is: + * 1. Create a local variable `e.getVar()` and assign it the value `e.getSubExpr()`. + * 2. Execute `e.getBody()` which potentially modifies the local variable. + * 3. Return the value of the local variable. + */ class TapExpr extends TapExprBase { } From 03b854a1edacd5373e563c31bbe14eedfd633efb Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Fri, 5 Aug 2022 15:29:17 +0200 Subject: [PATCH 638/736] Add test for initializer method --- .../library-tests/frameworks/android/asynctask/Test.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/java/ql/test/library-tests/frameworks/android/asynctask/Test.java b/java/ql/test/library-tests/frameworks/android/asynctask/Test.java index b471b172c64..6f0bc1e84fa 100644 --- a/java/ql/test/library-tests/frameworks/android/asynctask/Test.java +++ b/java/ql/test/library-tests/frameworks/android/asynctask/Test.java @@ -35,9 +35,13 @@ public class Test { } } - class TestConstructorTask extends AsyncTask { + static class TestConstructorTask extends AsyncTask { private Object field; private Object safeField; + private Object initField; + { + initField = Test.source("init"); + } public TestConstructorTask(Object field, Object safeField) { this.field = field; @@ -49,6 +53,7 @@ public class Test { sink(params[0]); // $ hasTaintFlow=params sink(field); // $ hasValueFlow=constructor sink(safeField); // Safe + sink(initField); // $ hasValueFlow=init return params[0]; } @@ -57,6 +62,7 @@ public class Test { sink(param); // $ hasTaintFlow=params sink(field); // $ hasValueFlow=constructor sink(safeField); // Safe + sink(initField); // $ hasValueFlow=init } } From 98b930cd6750dd7d7deddf13d74be97f5ed92e6d Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Mon, 8 Aug 2022 09:23:12 +0200 Subject: [PATCH 639/736] Accept test changes in experimental query after AsyncTask improvements --- .../security/CWE-200/SensitiveAndroidFileLeak.expected | 7 ------- 1 file changed, 7 deletions(-) diff --git a/java/ql/test/experimental/query-tests/security/CWE-200/SensitiveAndroidFileLeak.expected b/java/ql/test/experimental/query-tests/security/CWE-200/SensitiveAndroidFileLeak.expected index d931ead82ac..b67c634ad9f 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-200/SensitiveAndroidFileLeak.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-200/SensitiveAndroidFileLeak.expected @@ -4,17 +4,13 @@ edges | FileService.java:21:28:21:64 | getStringExtra(...) : Object | FileService.java:25:42:25:50 | localPath : Object | | FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] | FileService.java:40:41:40:55 | params : Object[] | | FileService.java:25:13:25:51 | makeParamsToExecute(...) [[]] : Object | FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] | -| FileService.java:25:13:25:51 | makeParamsToExecute(...) [[]] : Object | FileService.java:40:41:40:55 | params [[]] : Object | | FileService.java:25:42:25:50 | localPath : Object | FileService.java:25:13:25:51 | makeParamsToExecute(...) [[]] : Object | | FileService.java:25:42:25:50 | localPath : Object | FileService.java:32:13:32:28 | sourceUri : Object | | FileService.java:32:13:32:28 | sourceUri : Object | FileService.java:35:17:35:25 | sourceUri : Object | | FileService.java:34:20:36:13 | {...} [[]] : Object | FileService.java:34:20:36:13 | new Object[] [[]] : Object | | FileService.java:35:17:35:25 | sourceUri : Object | FileService.java:34:20:36:13 | {...} [[]] : Object | | FileService.java:40:41:40:55 | params : Object[] | FileService.java:44:33:44:52 | (...)... : Object | -| FileService.java:40:41:40:55 | params [[]] : Object | FileService.java:44:44:44:49 | params [[]] : Object | | FileService.java:44:33:44:52 | (...)... : Object | FileService.java:45:53:45:59 | ...[...] | -| FileService.java:44:44:44:49 | params [[]] : Object | FileService.java:44:44:44:52 | ...[...] : Object | -| FileService.java:44:44:44:52 | ...[...] : Object | FileService.java:44:33:44:52 | (...)... : Object | | LeakFileActivity2.java:15:13:15:18 | intent : Intent | LeakFileActivity2.java:16:26:16:31 | intent : Intent | | LeakFileActivity2.java:16:26:16:31 | intent : Intent | FileService.java:20:31:20:43 | intent : Intent | | LeakFileActivity.java:14:35:14:38 | data : Intent | LeakFileActivity.java:18:40:18:59 | contentIntent : Intent | @@ -34,10 +30,7 @@ nodes | FileService.java:34:20:36:13 | {...} [[]] : Object | semmle.label | {...} [[]] : Object | | FileService.java:35:17:35:25 | sourceUri : Object | semmle.label | sourceUri : Object | | FileService.java:40:41:40:55 | params : Object[] | semmle.label | params : Object[] | -| FileService.java:40:41:40:55 | params [[]] : Object | semmle.label | params [[]] : Object | | FileService.java:44:33:44:52 | (...)... : Object | semmle.label | (...)... : Object | -| FileService.java:44:44:44:49 | params [[]] : Object | semmle.label | params [[]] : Object | -| FileService.java:44:44:44:52 | ...[...] : Object | semmle.label | ...[...] : Object | | FileService.java:45:53:45:59 | ...[...] | semmle.label | ...[...] | | LeakFileActivity2.java:15:13:15:18 | intent : Intent | semmle.label | intent : Intent | | LeakFileActivity2.java:16:26:16:31 | intent : Intent | semmle.label | intent : Intent | From d16a154f9e4941839fa99b43a040a98ccbf14203 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 8 Aug 2022 10:45:55 +0200 Subject: [PATCH 640/736] Address review comment --- .../consistency-queries/DataFlowConsistency.ql | 2 +- .../ruby/dataflow/internal/DataFlowPrivate.qll | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ruby/ql/consistency-queries/DataFlowConsistency.ql b/ruby/ql/consistency-queries/DataFlowConsistency.ql index 1a891dd40f7..80eb90913d0 100644 --- a/ruby/ql/consistency-queries/DataFlowConsistency.ql +++ b/ruby/ql/consistency-queries/DataFlowConsistency.ql @@ -10,6 +10,6 @@ private class MyConsistencyConfiguration extends ConsistencyConfiguration { or n instanceof SummaryNode or - n instanceof SynthHashSplatArgumentsNode + n instanceof SynthHashSplatArgumentNode } } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index b19894bf2d1..a9103e5b666 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -241,7 +241,7 @@ private module Cached { TSummaryParameterNode(FlowSummaryImpl::Public::SummarizedCallable c, ParameterPosition pos) { FlowSummaryImpl::Private::summaryParameterNodeRange(c, pos) } or - TSynthHashSplatArgumentsNode(CfgNodes::ExprNodes::CallCfgNode c) { + TSynthHashSplatArgumentNode(CfgNodes::ExprNodes::CallCfgNode c) { exists(Argument arg | arg.isArgumentOf(c, any(ArgumentPosition pos | pos.isKeyword(_)))) } @@ -422,7 +422,7 @@ predicate nodeIsHidden(Node n) { or n instanceof SynthHashSplatParameterNode or - n instanceof SynthHashSplatArgumentsNode + n instanceof SynthHashSplatArgumentNode } /** An SSA definition, viewed as a node in a data flow graph. */ @@ -602,7 +602,7 @@ private module ParameterNodes { * ``` * * where direct keyword matching is possible, since we construct a synthesized hash - * splat argument (`SynthHashSplatArgumentsNode`) at the call site, which means that + * 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 redunancy is OK since * (a) it means that type-tracking through keyword arguments also works in most cases, @@ -764,10 +764,10 @@ private module ArgumentNodes { * part of the method signature, such that those cannot end up in the hash-splat * parameter. */ - class SynthHashSplatArgumentsNode extends ArgumentNode, TSynthHashSplatArgumentsNode { + class SynthHashSplatArgumentNode extends ArgumentNode, TSynthHashSplatArgumentNode { CfgNodes::ExprNodes::CallCfgNode c; - SynthHashSplatArgumentsNode() { this = TSynthHashSplatArgumentsNode(c) } + SynthHashSplatArgumentNode() { this = TSynthHashSplatArgumentNode(c) } override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { this.sourceArgumentOf(call.asCall(), pos) @@ -779,10 +779,10 @@ private module ArgumentNodes { } } - private class SynthHashSplatArgumentsNodeImpl extends NodeImpl, TSynthHashSplatArgumentsNode { + private class SynthHashSplatArgumentNodeImpl extends NodeImpl, TSynthHashSplatArgumentNode { CfgNodes::ExprNodes::CallCfgNode c; - SynthHashSplatArgumentsNodeImpl() { this = TSynthHashSplatArgumentsNode(c) } + SynthHashSplatArgumentNodeImpl() { this = TSynthHashSplatArgumentNode(c) } override CfgScope getCfgScope() { result = c.getExpr().getCfgScope() } @@ -1004,7 +1004,7 @@ predicate storeStep(Node node1, ContentSet c, Node node2) { or // Wrap all keyword arguments in a synthesized hash-splat argument node exists(CfgNodes::ExprNodes::CallCfgNode call, ArgumentPosition keywordPos, string name | - node2 = TSynthHashSplatArgumentsNode(call) and + node2 = TSynthHashSplatArgumentNode(call) and node1.asExpr().(Argument).isArgumentOf(call, keywordPos) and keywordPos.isKeyword(name) and c = getKeywordContent(name) From 50264547bfcc79fa5afa0ffc503eb011d5a4dace Mon Sep 17 00:00:00 2001 From: Evgenii Protsenko Date: Sun, 31 Oct 2021 13:22:31 +0300 Subject: [PATCH 641/736] make array taint-step better --- javascript/ql/lib/semmle/javascript/Arrays.qll | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/Arrays.qll b/javascript/ql/lib/semmle/javascript/Arrays.qll index c129e9a31b2..3598233f6ab 100644 --- a/javascript/ql/lib/semmle/javascript/Arrays.qll +++ b/javascript/ql/lib/semmle/javascript/Arrays.qll @@ -36,12 +36,18 @@ module ArrayTaintTracking { succ = call ) or - // `array.filter(x => x)` keeps the taint + // `array.filter(x => x)` and `array.filter(x => !!x)` keeps the taint call.(DataFlow::MethodCallNode).getMethodName() = "filter" and pred = call.getReceiver() and succ = call and - exists(DataFlow::FunctionNode callback | callback = call.getArgument(0).getAFunctionValue() | - callback.getParameter(0).getALocalUse() = callback.getAReturn() + exists(DataFlow::FunctionNode callback, DataFlow::Node param, DataFlow::Node ret | + callback = call.getArgument(0).getAFunctionValue() and + param = callback.getParameter(0).getALocalUse() and + ret = callback.getAReturn() + | + param = ret + or + param = DataFlow::exprNode(ret.asExpr().(LogNotExpr).getOperand().(LogNotExpr).getOperand()) ) or // `array.reduce` with tainted value in callback From a3cf81d419b78cfc14de80d75da63184942bf6e0 Mon Sep 17 00:00:00 2001 From: Esben Sparre Andreasen Date: Mon, 13 Jun 2022 23:24:23 +0200 Subject: [PATCH 642/736] js: add filter taint test (post rebase conflicts) --- .../library-tests/Arrays/TaintFlow.expected | 26 ++ .../ql/test/library-tests/Arrays/TaintFlow.ql | 15 + .../ql/test/library-tests/Arrays/arrays.js | 3 + .../library-tests/Arrays/printAst.expected | 268 ++++++++++++------ 4 files changed, 223 insertions(+), 89 deletions(-) create mode 100644 javascript/ql/test/library-tests/Arrays/TaintFlow.expected create mode 100644 javascript/ql/test/library-tests/Arrays/TaintFlow.ql diff --git a/javascript/ql/test/library-tests/Arrays/TaintFlow.expected b/javascript/ql/test/library-tests/Arrays/TaintFlow.expected new file mode 100644 index 00000000000..20dbaa46ae2 --- /dev/null +++ b/javascript/ql/test/library-tests/Arrays/TaintFlow.expected @@ -0,0 +1,26 @@ +| arrays.js:2:16:2:23 | "source" | arrays.js:5:8:5:14 | obj.foo | +| arrays.js:2:16:2:23 | "source" | arrays.js:11:10:11:15 | arr[i] | +| arrays.js:2:16:2:23 | "source" | arrays.js:15:27:15:27 | e | +| arrays.js:2:16:2:23 | "source" | arrays.js:16:23:16:23 | e | +| arrays.js:2:16:2:23 | "source" | arrays.js:20:8:20:16 | arr.pop() | +| arrays.js:2:16:2:23 | "source" | arrays.js:49:8:49:13 | arr[0] | +| arrays.js:2:16:2:23 | "source" | arrays.js:52:10:52:10 | x | +| arrays.js:2:16:2:23 | "source" | arrays.js:56:10:56:10 | x | +| arrays.js:2:16:2:23 | "source" | arrays.js:60:10:60:10 | x | +| arrays.js:2:16:2:23 | "source" | arrays.js:66:10:66:10 | x | +| arrays.js:2:16:2:23 | "source" | arrays.js:71:10:71:10 | x | +| arrays.js:2:16:2:23 | "source" | arrays.js:74:8:74:29 | arr.fin ... llback) | +| arrays.js:2:16:2:23 | "source" | arrays.js:77:8:77:35 | arrayFi ... llback) | +| arrays.js:2:16:2:23 | "source" | arrays.js:81:10:81:10 | x | +| arrays.js:2:16:2:23 | "source" | arrays.js:84:8:84:17 | arr.at(-1) | +| arrays.js:18:22:18:29 | "source" | arrays.js:18:50:18:50 | e | +| arrays.js:22:15:22:22 | "source" | arrays.js:23:8:23:17 | arr2.pop() | +| arrays.js:25:15:25:22 | "source" | arrays.js:26:8:26:17 | arr3.pop() | +| arrays.js:29:21:29:28 | "source" | arrays.js:30:8:30:17 | arr4.pop() | +| arrays.js:29:21:29:28 | "source" | arrays.js:33:8:33:17 | arr5.pop() | +| arrays.js:29:21:29:28 | "source" | arrays.js:35:8:35:26 | arr5.slice(2).pop() | +| arrays.js:29:21:29:28 | "source" | arrays.js:41:8:41:17 | arr6.pop() | +| arrays.js:44:4:44:11 | "source" | arrays.js:45:10:45:18 | ary.pop() | +| arrays.js:44:4:44:11 | "source" | arrays.js:46:10:46:12 | ary | +| arrays.js:86:9:86:16 | "source" | arrays.js:86:8:86:34 | ["sourc ... ) => x) | +| arrays.js:87:9:87:16 | "source" | arrays.js:87:8:87:36 | ["sourc ... => !!x) | diff --git a/javascript/ql/test/library-tests/Arrays/TaintFlow.ql b/javascript/ql/test/library-tests/Arrays/TaintFlow.ql new file mode 100644 index 00000000000..694353873f2 --- /dev/null +++ b/javascript/ql/test/library-tests/Arrays/TaintFlow.ql @@ -0,0 +1,15 @@ +import javascript + +class ArrayTaintFlowConfig extends TaintTracking::Configuration { + ArrayTaintFlowConfig() { this = "ArrayTaintFlowConfig" } + + override predicate isSource(DataFlow::Node source) { source.asExpr().getStringValue() = "source" } + + override predicate isSink(DataFlow::Node sink) { + sink = any(DataFlow::CallNode call | call.getCalleeName() = "sink").getAnArgument() + } +} + +from ArrayTaintFlowConfig config, DataFlow::Node src, DataFlow::Node snk +where config.hasFlow(src, snk) +select src, snk diff --git a/javascript/ql/test/library-tests/Arrays/arrays.js b/javascript/ql/test/library-tests/Arrays/arrays.js index 2dfb203cd54..921f8730738 100644 --- a/javascript/ql/test/library-tests/Arrays/arrays.js +++ b/javascript/ql/test/library-tests/Arrays/arrays.js @@ -82,4 +82,7 @@ } sink(arr.at(-1)); // NOT OK + + sink(["source"].filter((x) => x)); // NOT OK + sink(["source"].filter((x) => !!x)); // NOT OK }); diff --git a/javascript/ql/test/library-tests/Arrays/printAst.expected b/javascript/ql/test/library-tests/Arrays/printAst.expected index c6e097c770e..46b124d85c3 100644 --- a/javascript/ql/test/library-tests/Arrays/printAst.expected +++ b/javascript/ql/test/library-tests/Arrays/printAst.expected @@ -1,9 +1,9 @@ nodes -| arrays.js:1:1:85:2 | [ParExpr] (functi ... T OK }) | semmle.label | [ParExpr] (functi ... T OK }) | -| arrays.js:1:1:85:3 | [ExprStmt] (functi ... OK }); | semmle.label | [ExprStmt] (functi ... OK }); | -| arrays.js:1:1:85:3 | [ExprStmt] (functi ... OK }); | semmle.order | 1 | -| arrays.js:1:2:85:1 | [FunctionExpr] functio ... OT OK } | semmle.label | [FunctionExpr] functio ... OT OK } | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | semmle.label | [BlockStmt] { let ... OT OK } | +| arrays.js:1:1:88:2 | [ParExpr] (functi ... T OK }) | semmle.label | [ParExpr] (functi ... T OK }) | +| arrays.js:1:1:88:3 | [ExprStmt] (functi ... OK }); | semmle.label | [ExprStmt] (functi ... OK }); | +| arrays.js:1:1:88:3 | [ExprStmt] (functi ... OK }); | semmle.order | 1 | +| arrays.js:1:2:88:1 | [FunctionExpr] functio ... OT OK } | semmle.label | [FunctionExpr] functio ... OT OK } | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | semmle.label | [BlockStmt] { let ... OT OK } | | arrays.js:2:3:2:24 | [DeclStmt] let source = ... | semmle.label | [DeclStmt] let source = ... | | arrays.js:2:7:2:12 | [VarDecl] source | semmle.label | [VarDecl] source | | arrays.js:2:7:2:23 | [VariableDeclarator] source = "source" | semmle.label | [VariableDeclarator] source = "source" | @@ -348,6 +348,30 @@ nodes | arrays.js:84:12:84:13 | [Label] at | semmle.label | [Label] at | | arrays.js:84:15:84:16 | [UnaryExpr] -1 | semmle.label | [UnaryExpr] -1 | | arrays.js:84:16:84:16 | [Literal] 1 | semmle.label | [Literal] 1 | +| arrays.js:86:3:86:6 | [VarRef] sink | semmle.label | [VarRef] sink | +| arrays.js:86:3:86:35 | [CallExpr] sink([" ... => x)) | semmle.label | [CallExpr] sink([" ... => x)) | +| arrays.js:86:3:86:36 | [ExprStmt] sink([" ... => x)); | semmle.label | [ExprStmt] sink([" ... => x)); | +| arrays.js:86:8:86:17 | [ArrayExpr] ["source"] | semmle.label | [ArrayExpr] ["source"] | +| arrays.js:86:8:86:24 | [DotExpr] ["source"].filter | semmle.label | [DotExpr] ["source"].filter | +| arrays.js:86:8:86:34 | [MethodCallExpr] ["sourc ... ) => x) | semmle.label | [MethodCallExpr] ["sourc ... ) => x) | +| arrays.js:86:9:86:16 | [Literal] "source" | semmle.label | [Literal] "source" | +| arrays.js:86:19:86:24 | [Label] filter | semmle.label | [Label] filter | +| arrays.js:86:26:86:33 | [ArrowFunctionExpr] (x) => x | semmle.label | [ArrowFunctionExpr] (x) => x | +| arrays.js:86:27:86:27 | [SimpleParameter] x | semmle.label | [SimpleParameter] x | +| arrays.js:86:33:86:33 | [VarRef] x | semmle.label | [VarRef] x | +| arrays.js:87:3:87:6 | [VarRef] sink | semmle.label | [VarRef] sink | +| arrays.js:87:3:87:37 | [CallExpr] sink([" ... > !!x)) | semmle.label | [CallExpr] sink([" ... > !!x)) | +| arrays.js:87:3:87:38 | [ExprStmt] sink([" ... !!x)); | semmle.label | [ExprStmt] sink([" ... !!x)); | +| arrays.js:87:8:87:17 | [ArrayExpr] ["source"] | semmle.label | [ArrayExpr] ["source"] | +| arrays.js:87:8:87:24 | [DotExpr] ["source"].filter | semmle.label | [DotExpr] ["source"].filter | +| arrays.js:87:8:87:36 | [MethodCallExpr] ["sourc ... => !!x) | semmle.label | [MethodCallExpr] ["sourc ... => !!x) | +| arrays.js:87:9:87:16 | [Literal] "source" | semmle.label | [Literal] "source" | +| arrays.js:87:19:87:24 | [Label] filter | semmle.label | [Label] filter | +| arrays.js:87:26:87:35 | [ArrowFunctionExpr] (x) => !!x | semmle.label | [ArrowFunctionExpr] (x) => !!x | +| arrays.js:87:27:87:27 | [SimpleParameter] x | semmle.label | [SimpleParameter] x | +| arrays.js:87:33:87:35 | [UnaryExpr] !!x | semmle.label | [UnaryExpr] !!x | +| arrays.js:87:34:87:35 | [UnaryExpr] !x | semmle.label | [UnaryExpr] !x | +| arrays.js:87:35:87:35 | [VarRef] x | semmle.label | [VarRef] x | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | @@ -391,96 +415,106 @@ nodes | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | +| file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | +| file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | +| 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) | +| file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | edges -| arrays.js:1:1:85:2 | [ParExpr] (functi ... T OK }) | arrays.js:1:2:85:1 | [FunctionExpr] functio ... OT OK } | semmle.label | 1 | -| arrays.js:1:1:85:2 | [ParExpr] (functi ... T OK }) | arrays.js:1:2:85:1 | [FunctionExpr] functio ... OT OK } | semmle.order | 1 | -| arrays.js:1:1:85:3 | [ExprStmt] (functi ... OK }); | arrays.js:1:1:85:2 | [ParExpr] (functi ... T OK }) | semmle.label | 1 | -| arrays.js:1:1:85:3 | [ExprStmt] (functi ... OK }); | arrays.js:1:1:85:2 | [ParExpr] (functi ... T OK }) | semmle.order | 1 | -| arrays.js:1:2:85:1 | [FunctionExpr] functio ... OT OK } | arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | semmle.label | 5 | -| arrays.js:1:2:85:1 | [FunctionExpr] functio ... OT OK } | arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | semmle.order | 5 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:2:3:2:24 | [DeclStmt] let source = ... | semmle.label | 1 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:2:3:2:24 | [DeclStmt] let source = ... | semmle.order | 1 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:4:3:4:28 | [DeclStmt] var obj = ... | semmle.label | 2 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:4:3:4:28 | [DeclStmt] var obj = ... | semmle.order | 2 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:5:3:5:16 | [ExprStmt] sink(obj.foo); | semmle.label | 3 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:5:3:5:16 | [ExprStmt] sink(obj.foo); | semmle.order | 3 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:7:3:7:15 | [DeclStmt] var arr = ... | semmle.label | 4 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:7:3:7:15 | [DeclStmt] var arr = ... | semmle.order | 4 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:8:3:8:19 | [ExprStmt] arr.push(source); | semmle.label | 5 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:8:3:8:19 | [ExprStmt] arr.push(source); | semmle.order | 5 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:10:3:12:3 | [ForStmt] for (va ... OK } | semmle.label | 6 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:10:3:12:3 | [ForStmt] for (va ... OK } | semmle.order | 6 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:15:3:15:30 | [ExprStmt] arr.for ... nk(e)); | semmle.label | 7 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:15:3:15:30 | [ExprStmt] arr.for ... nk(e)); | semmle.order | 7 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:16:3:16:26 | [ExprStmt] arr.map ... nk(e)); | semmle.label | 8 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:16:3:16:26 | [ExprStmt] arr.map ... nk(e)); | semmle.order | 8 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:18:3:18:53 | [ExprStmt] [1, 2, ... nk(e)); | semmle.label | 9 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:18:3:18:53 | [ExprStmt] [1, 2, ... nk(e)); | semmle.order | 9 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:20:3:20:18 | [ExprStmt] sink(arr.pop()); | semmle.label | 10 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:20:3:20:18 | [ExprStmt] sink(arr.pop()); | semmle.order | 10 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:22:3:22:24 | [DeclStmt] var arr2 = ... | semmle.label | 11 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:22:3:22:24 | [DeclStmt] var arr2 = ... | semmle.order | 11 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:23:3:23:19 | [ExprStmt] sink(arr2.pop()); | semmle.label | 12 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:23:3:23:19 | [ExprStmt] sink(arr2.pop()); | semmle.order | 12 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:25:3:25:24 | [DeclStmt] var arr3 = ... | semmle.label | 13 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:25:3:25:24 | [DeclStmt] var arr3 = ... | semmle.order | 13 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:26:3:26:19 | [ExprStmt] sink(arr3.pop()); | semmle.label | 14 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:26:3:26:19 | [ExprStmt] sink(arr3.pop()); | semmle.order | 14 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:28:3:28:16 | [DeclStmt] var arr4 = ... | semmle.label | 15 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:28:3:28:16 | [DeclStmt] var arr4 = ... | semmle.order | 15 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:29:3:29:30 | [ExprStmt] arr4.sp ... urce"); | semmle.label | 16 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:29:3:29:30 | [ExprStmt] arr4.sp ... urce"); | semmle.order | 16 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:30:3:30:19 | [ExprStmt] sink(arr4.pop()); | semmle.label | 17 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:30:3:30:19 | [ExprStmt] sink(arr4.pop()); | semmle.order | 17 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:32:3:32:29 | [DeclStmt] var arr5 = ... | semmle.label | 18 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:32:3:32:29 | [DeclStmt] var arr5 = ... | semmle.order | 18 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:33:3:33:19 | [ExprStmt] sink(arr5.pop()); | semmle.label | 19 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:33:3:33:19 | [ExprStmt] sink(arr5.pop()); | semmle.order | 19 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:35:3:35:28 | [ExprStmt] sink(ar ... pop()); | semmle.label | 20 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:35:3:35:28 | [ExprStmt] sink(ar ... pop()); | semmle.order | 20 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:37:3:37:16 | [DeclStmt] var arr6 = ... | semmle.label | 21 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:37:3:37:16 | [DeclStmt] var arr6 = ... | semmle.order | 21 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:38:3:40:3 | [ForStmt] for (va ... i]; } | semmle.label | 22 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:38:3:40:3 | [ForStmt] for (va ... i]; } | semmle.order | 22 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:41:3:41:19 | [ExprStmt] sink(arr6.pop()); | semmle.label | 23 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:41:3:41:19 | [ExprStmt] sink(arr6.pop()); | semmle.order | 23 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:44:3:47:5 | [ExprStmt] ["sourc ... . }); | semmle.label | 24 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:44:3:47:5 | [ExprStmt] ["sourc ... . }); | semmle.order | 24 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:49:3:49:15 | [ExprStmt] sink(arr[0]); | semmle.label | 25 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:49:3:49:15 | [ExprStmt] sink(arr[0]); | semmle.order | 25 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:51:3:53:3 | [ForOfStmt] for (co ... OK } | semmle.label | 26 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:51:3:53:3 | [ForOfStmt] for (co ... OK } | semmle.order | 26 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:55:3:57:3 | [ForOfStmt] for (co ... OK } | semmle.label | 27 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:55:3:57:3 | [ForOfStmt] for (co ... OK } | semmle.order | 27 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:59:3:61:3 | [ForOfStmt] for (co ... OK } | semmle.label | 28 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:59:3:61:3 | [ForOfStmt] for (co ... OK } | semmle.order | 28 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:63:3:63:16 | [DeclStmt] var arr7 = ... | semmle.label | 29 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:63:3:63:16 | [DeclStmt] var arr7 = ... | semmle.order | 29 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:64:3:64:20 | [ExprStmt] arr7.push(...arr); | semmle.label | 30 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:64:3:64:20 | [ExprStmt] arr7.push(...arr); | semmle.order | 30 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:65:3:67:3 | [ForOfStmt] for (co ... OK } | semmle.label | 31 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:65:3:67:3 | [ForOfStmt] for (co ... OK } | semmle.order | 31 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:69:3:69:42 | [DeclStmt] const arrayFrom = ... | semmle.label | 32 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:69:3:69:42 | [DeclStmt] const arrayFrom = ... | semmle.order | 32 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:70:3:72:3 | [ForOfStmt] for (co ... OK } | semmle.label | 33 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:70:3:72:3 | [ForOfStmt] for (co ... OK } | semmle.order | 33 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:74:3:74:31 | [ExprStmt] sink(ar ... back)); | semmle.label | 34 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:74:3:74:31 | [ExprStmt] sink(ar ... back)); | semmle.order | 34 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:76:3:76:42 | [DeclStmt] const arrayFind = ... | semmle.label | 35 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:76:3:76:42 | [DeclStmt] const arrayFind = ... | semmle.order | 35 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:77:3:77:37 | [ExprStmt] sink(ar ... back)); | semmle.label | 36 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:77:3:77:37 | [ExprStmt] sink(ar ... back)); | semmle.order | 36 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:79:3:79:31 | [DeclStmt] const uniq = ... | semmle.label | 37 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:79:3:79:31 | [DeclStmt] const uniq = ... | semmle.order | 37 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:80:3:82:3 | [ForOfStmt] for (co ... OK } | semmle.label | 38 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:80:3:82:3 | [ForOfStmt] for (co ... OK } | semmle.order | 38 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:84:3:84:19 | [ExprStmt] sink(arr.at(-1)); | semmle.label | 39 | -| arrays.js:1:14:85:1 | [BlockStmt] { let ... OT OK } | arrays.js:84:3:84:19 | [ExprStmt] sink(arr.at(-1)); | semmle.order | 39 | +| arrays.js:1:1:88:2 | [ParExpr] (functi ... T OK }) | arrays.js:1:2:88:1 | [FunctionExpr] functio ... OT OK } | semmle.label | 1 | +| arrays.js:1:1:88:2 | [ParExpr] (functi ... T OK }) | arrays.js:1:2:88:1 | [FunctionExpr] functio ... OT OK } | semmle.order | 1 | +| arrays.js:1:1:88:3 | [ExprStmt] (functi ... OK }); | arrays.js:1:1:88:2 | [ParExpr] (functi ... T OK }) | semmle.label | 1 | +| arrays.js:1:1:88:3 | [ExprStmt] (functi ... OK }); | arrays.js:1:1:88:2 | [ParExpr] (functi ... T OK }) | semmle.order | 1 | +| arrays.js:1:2:88:1 | [FunctionExpr] functio ... OT OK } | arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | semmle.label | 5 | +| arrays.js:1:2:88:1 | [FunctionExpr] functio ... OT OK } | arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | semmle.order | 5 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:2:3:2:24 | [DeclStmt] let source = ... | semmle.label | 1 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:2:3:2:24 | [DeclStmt] let source = ... | semmle.order | 1 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:4:3:4:28 | [DeclStmt] var obj = ... | semmle.label | 2 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:4:3:4:28 | [DeclStmt] var obj = ... | semmle.order | 2 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:5:3:5:16 | [ExprStmt] sink(obj.foo); | semmle.label | 3 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:5:3:5:16 | [ExprStmt] sink(obj.foo); | semmle.order | 3 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:7:3:7:15 | [DeclStmt] var arr = ... | semmle.label | 4 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:7:3:7:15 | [DeclStmt] var arr = ... | semmle.order | 4 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:8:3:8:19 | [ExprStmt] arr.push(source); | semmle.label | 5 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:8:3:8:19 | [ExprStmt] arr.push(source); | semmle.order | 5 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:10:3:12:3 | [ForStmt] for (va ... OK } | semmle.label | 6 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:10:3:12:3 | [ForStmt] for (va ... OK } | semmle.order | 6 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:15:3:15:30 | [ExprStmt] arr.for ... nk(e)); | semmle.label | 7 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:15:3:15:30 | [ExprStmt] arr.for ... nk(e)); | semmle.order | 7 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:16:3:16:26 | [ExprStmt] arr.map ... nk(e)); | semmle.label | 8 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:16:3:16:26 | [ExprStmt] arr.map ... nk(e)); | semmle.order | 8 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:18:3:18:53 | [ExprStmt] [1, 2, ... nk(e)); | semmle.label | 9 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:18:3:18:53 | [ExprStmt] [1, 2, ... nk(e)); | semmle.order | 9 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:20:3:20:18 | [ExprStmt] sink(arr.pop()); | semmle.label | 10 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:20:3:20:18 | [ExprStmt] sink(arr.pop()); | semmle.order | 10 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:22:3:22:24 | [DeclStmt] var arr2 = ... | semmle.label | 11 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:22:3:22:24 | [DeclStmt] var arr2 = ... | semmle.order | 11 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:23:3:23:19 | [ExprStmt] sink(arr2.pop()); | semmle.label | 12 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:23:3:23:19 | [ExprStmt] sink(arr2.pop()); | semmle.order | 12 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:25:3:25:24 | [DeclStmt] var arr3 = ... | semmle.label | 13 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:25:3:25:24 | [DeclStmt] var arr3 = ... | semmle.order | 13 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:26:3:26:19 | [ExprStmt] sink(arr3.pop()); | semmle.label | 14 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:26:3:26:19 | [ExprStmt] sink(arr3.pop()); | semmle.order | 14 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:28:3:28:16 | [DeclStmt] var arr4 = ... | semmle.label | 15 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:28:3:28:16 | [DeclStmt] var arr4 = ... | semmle.order | 15 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:29:3:29:30 | [ExprStmt] arr4.sp ... urce"); | semmle.label | 16 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:29:3:29:30 | [ExprStmt] arr4.sp ... urce"); | semmle.order | 16 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:30:3:30:19 | [ExprStmt] sink(arr4.pop()); | semmle.label | 17 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:30:3:30:19 | [ExprStmt] sink(arr4.pop()); | semmle.order | 17 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:32:3:32:29 | [DeclStmt] var arr5 = ... | semmle.label | 18 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:32:3:32:29 | [DeclStmt] var arr5 = ... | semmle.order | 18 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:33:3:33:19 | [ExprStmt] sink(arr5.pop()); | semmle.label | 19 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:33:3:33:19 | [ExprStmt] sink(arr5.pop()); | semmle.order | 19 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:35:3:35:28 | [ExprStmt] sink(ar ... pop()); | semmle.label | 20 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:35:3:35:28 | [ExprStmt] sink(ar ... pop()); | semmle.order | 20 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:37:3:37:16 | [DeclStmt] var arr6 = ... | semmle.label | 21 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:37:3:37:16 | [DeclStmt] var arr6 = ... | semmle.order | 21 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:38:3:40:3 | [ForStmt] for (va ... i]; } | semmle.label | 22 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:38:3:40:3 | [ForStmt] for (va ... i]; } | semmle.order | 22 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:41:3:41:19 | [ExprStmt] sink(arr6.pop()); | semmle.label | 23 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:41:3:41:19 | [ExprStmt] sink(arr6.pop()); | semmle.order | 23 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:44:3:47:5 | [ExprStmt] ["sourc ... . }); | semmle.label | 24 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:44:3:47:5 | [ExprStmt] ["sourc ... . }); | semmle.order | 24 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:49:3:49:15 | [ExprStmt] sink(arr[0]); | semmle.label | 25 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:49:3:49:15 | [ExprStmt] sink(arr[0]); | semmle.order | 25 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:51:3:53:3 | [ForOfStmt] for (co ... OK } | semmle.label | 26 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:51:3:53:3 | [ForOfStmt] for (co ... OK } | semmle.order | 26 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:55:3:57:3 | [ForOfStmt] for (co ... OK } | semmle.label | 27 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:55:3:57:3 | [ForOfStmt] for (co ... OK } | semmle.order | 27 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:59:3:61:3 | [ForOfStmt] for (co ... OK } | semmle.label | 28 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:59:3:61:3 | [ForOfStmt] for (co ... OK } | semmle.order | 28 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:63:3:63:16 | [DeclStmt] var arr7 = ... | semmle.label | 29 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:63:3:63:16 | [DeclStmt] var arr7 = ... | semmle.order | 29 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:64:3:64:20 | [ExprStmt] arr7.push(...arr); | semmle.label | 30 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:64:3:64:20 | [ExprStmt] arr7.push(...arr); | semmle.order | 30 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:65:3:67:3 | [ForOfStmt] for (co ... OK } | semmle.label | 31 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:65:3:67:3 | [ForOfStmt] for (co ... OK } | semmle.order | 31 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:69:3:69:42 | [DeclStmt] const arrayFrom = ... | semmle.label | 32 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:69:3:69:42 | [DeclStmt] const arrayFrom = ... | semmle.order | 32 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:70:3:72:3 | [ForOfStmt] for (co ... OK } | semmle.label | 33 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:70:3:72:3 | [ForOfStmt] for (co ... OK } | semmle.order | 33 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:74:3:74:31 | [ExprStmt] sink(ar ... back)); | semmle.label | 34 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:74:3:74:31 | [ExprStmt] sink(ar ... back)); | semmle.order | 34 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:76:3:76:42 | [DeclStmt] const arrayFind = ... | semmle.label | 35 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:76:3:76:42 | [DeclStmt] const arrayFind = ... | semmle.order | 35 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:77:3:77:37 | [ExprStmt] sink(ar ... back)); | semmle.label | 36 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:77:3:77:37 | [ExprStmt] sink(ar ... back)); | semmle.order | 36 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:79:3:79:31 | [DeclStmt] const uniq = ... | semmle.label | 37 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:79:3:79:31 | [DeclStmt] const uniq = ... | semmle.order | 37 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:80:3:82:3 | [ForOfStmt] for (co ... OK } | semmle.label | 38 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:80:3:82:3 | [ForOfStmt] for (co ... OK } | semmle.order | 38 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:84:3:84:19 | [ExprStmt] sink(arr.at(-1)); | semmle.label | 39 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:84:3:84:19 | [ExprStmt] sink(arr.at(-1)); | semmle.order | 39 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:86:3:86:36 | [ExprStmt] sink([" ... => x)); | semmle.label | 40 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:86:3:86:36 | [ExprStmt] sink([" ... => x)); | semmle.order | 40 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:87:3:87:38 | [ExprStmt] sink([" ... !!x)); | semmle.label | 41 | +| arrays.js:1:14:88:1 | [BlockStmt] { let ... OT OK } | arrays.js:87:3:87:38 | [ExprStmt] sink([" ... !!x)); | semmle.order | 41 | | arrays.js:2:3:2:24 | [DeclStmt] let source = ... | arrays.js:2:7:2:23 | [VariableDeclarator] source = "source" | semmle.label | 1 | | arrays.js:2:3:2:24 | [DeclStmt] let source = ... | arrays.js:2:7:2:23 | [VariableDeclarator] source = "source" | semmle.order | 1 | | arrays.js:2:7:2:23 | [VariableDeclarator] source = "source" | arrays.js:2:7:2:12 | [VarDecl] source | semmle.label | 1 | @@ -1081,6 +1115,50 @@ edges | arrays.js:84:8:84:17 | [MethodCallExpr] arr.at(-1) | file://:0:0:0:0 | (Arguments) | semmle.order | 1 | | arrays.js:84:15:84:16 | [UnaryExpr] -1 | arrays.js:84:16:84:16 | [Literal] 1 | semmle.label | 1 | | arrays.js:84:15:84:16 | [UnaryExpr] -1 | arrays.js:84:16:84:16 | [Literal] 1 | semmle.order | 1 | +| arrays.js:86:3:86:35 | [CallExpr] sink([" ... => x)) | arrays.js:86:3:86:6 | [VarRef] sink | semmle.label | 0 | +| arrays.js:86:3:86:35 | [CallExpr] sink([" ... => x)) | arrays.js:86:3:86:6 | [VarRef] sink | semmle.order | 0 | +| arrays.js:86:3:86:35 | [CallExpr] sink([" ... => x)) | file://:0:0:0:0 | (Arguments) | semmle.label | 1 | +| arrays.js:86:3:86:35 | [CallExpr] sink([" ... => x)) | file://:0:0:0:0 | (Arguments) | semmle.order | 1 | +| arrays.js:86:3:86:36 | [ExprStmt] sink([" ... => x)); | arrays.js:86:3:86:35 | [CallExpr] sink([" ... => x)) | semmle.label | 1 | +| arrays.js:86:3:86:36 | [ExprStmt] sink([" ... => x)); | arrays.js:86:3:86:35 | [CallExpr] sink([" ... => x)) | semmle.order | 1 | +| arrays.js:86:8:86:17 | [ArrayExpr] ["source"] | arrays.js:86:9:86:16 | [Literal] "source" | semmle.label | 1 | +| arrays.js:86:8:86:17 | [ArrayExpr] ["source"] | arrays.js:86:9:86:16 | [Literal] "source" | semmle.order | 1 | +| arrays.js:86:8:86:24 | [DotExpr] ["source"].filter | arrays.js:86:8:86:17 | [ArrayExpr] ["source"] | semmle.label | 1 | +| arrays.js:86:8:86:24 | [DotExpr] ["source"].filter | arrays.js:86:8:86:17 | [ArrayExpr] ["source"] | semmle.order | 1 | +| arrays.js:86:8:86:24 | [DotExpr] ["source"].filter | arrays.js:86:19:86:24 | [Label] filter | semmle.label | 2 | +| arrays.js:86:8:86:24 | [DotExpr] ["source"].filter | arrays.js:86:19:86:24 | [Label] filter | semmle.order | 2 | +| arrays.js:86:8:86:34 | [MethodCallExpr] ["sourc ... ) => x) | arrays.js:86:8:86:24 | [DotExpr] ["source"].filter | semmle.label | 0 | +| arrays.js:86:8:86:34 | [MethodCallExpr] ["sourc ... ) => x) | arrays.js:86:8:86:24 | [DotExpr] ["source"].filter | semmle.order | 0 | +| arrays.js:86:8:86:34 | [MethodCallExpr] ["sourc ... ) => x) | file://:0:0:0:0 | (Arguments) | semmle.label | 1 | +| arrays.js:86:8:86:34 | [MethodCallExpr] ["sourc ... ) => x) | file://:0:0:0:0 | (Arguments) | semmle.order | 1 | +| arrays.js:86:26:86:33 | [ArrowFunctionExpr] (x) => x | arrays.js:86:33:86:33 | [VarRef] x | semmle.label | 5 | +| arrays.js:86:26:86:33 | [ArrowFunctionExpr] (x) => x | arrays.js:86:33:86:33 | [VarRef] x | semmle.order | 5 | +| arrays.js:86:26:86:33 | [ArrowFunctionExpr] (x) => x | file://:0:0:0:0 | (Parameters) | semmle.label | 1 | +| arrays.js:86:26:86:33 | [ArrowFunctionExpr] (x) => x | file://:0:0:0:0 | (Parameters) | semmle.order | 1 | +| arrays.js:87:3:87:37 | [CallExpr] sink([" ... > !!x)) | arrays.js:87:3:87:6 | [VarRef] sink | semmle.label | 0 | +| arrays.js:87:3:87:37 | [CallExpr] sink([" ... > !!x)) | arrays.js:87:3:87:6 | [VarRef] sink | semmle.order | 0 | +| arrays.js:87:3:87:37 | [CallExpr] sink([" ... > !!x)) | file://:0:0:0:0 | (Arguments) | semmle.label | 1 | +| arrays.js:87:3:87:37 | [CallExpr] sink([" ... > !!x)) | file://:0:0:0:0 | (Arguments) | semmle.order | 1 | +| arrays.js:87:3:87:38 | [ExprStmt] sink([" ... !!x)); | arrays.js:87:3:87:37 | [CallExpr] sink([" ... > !!x)) | semmle.label | 1 | +| arrays.js:87:3:87:38 | [ExprStmt] sink([" ... !!x)); | arrays.js:87:3:87:37 | [CallExpr] sink([" ... > !!x)) | semmle.order | 1 | +| arrays.js:87:8:87:17 | [ArrayExpr] ["source"] | arrays.js:87:9:87:16 | [Literal] "source" | semmle.label | 1 | +| arrays.js:87:8:87:17 | [ArrayExpr] ["source"] | arrays.js:87:9:87:16 | [Literal] "source" | semmle.order | 1 | +| arrays.js:87:8:87:24 | [DotExpr] ["source"].filter | arrays.js:87:8:87:17 | [ArrayExpr] ["source"] | semmle.label | 1 | +| arrays.js:87:8:87:24 | [DotExpr] ["source"].filter | arrays.js:87:8:87:17 | [ArrayExpr] ["source"] | semmle.order | 1 | +| arrays.js:87:8:87:24 | [DotExpr] ["source"].filter | arrays.js:87:19:87:24 | [Label] filter | semmle.label | 2 | +| arrays.js:87:8:87:24 | [DotExpr] ["source"].filter | arrays.js:87:19:87:24 | [Label] filter | semmle.order | 2 | +| arrays.js:87:8:87:36 | [MethodCallExpr] ["sourc ... => !!x) | arrays.js:87:8:87:24 | [DotExpr] ["source"].filter | semmle.label | 0 | +| arrays.js:87:8:87:36 | [MethodCallExpr] ["sourc ... => !!x) | arrays.js:87:8:87:24 | [DotExpr] ["source"].filter | semmle.order | 0 | +| arrays.js:87:8:87:36 | [MethodCallExpr] ["sourc ... => !!x) | file://:0:0:0:0 | (Arguments) | semmle.label | 1 | +| arrays.js:87:8:87:36 | [MethodCallExpr] ["sourc ... => !!x) | file://:0:0:0:0 | (Arguments) | semmle.order | 1 | +| arrays.js:87:26:87:35 | [ArrowFunctionExpr] (x) => !!x | arrays.js:87:33:87:35 | [UnaryExpr] !!x | semmle.label | 5 | +| arrays.js:87:26:87:35 | [ArrowFunctionExpr] (x) => !!x | arrays.js:87:33:87:35 | [UnaryExpr] !!x | semmle.order | 5 | +| arrays.js:87:26:87:35 | [ArrowFunctionExpr] (x) => !!x | file://:0:0:0:0 | (Parameters) | semmle.label | 1 | +| arrays.js:87:26:87:35 | [ArrowFunctionExpr] (x) => !!x | file://:0:0:0:0 | (Parameters) | semmle.order | 1 | +| arrays.js:87:33:87:35 | [UnaryExpr] !!x | arrays.js:87:34:87:35 | [UnaryExpr] !x | semmle.label | 1 | +| arrays.js:87:33:87:35 | [UnaryExpr] !!x | arrays.js:87:34:87:35 | [UnaryExpr] !x | semmle.order | 1 | +| arrays.js:87:34:87:35 | [UnaryExpr] !x | arrays.js:87:35:87:35 | [VarRef] x | semmle.label | 1 | +| arrays.js:87:34:87:35 | [UnaryExpr] !x | arrays.js:87:35:87:35 | [VarRef] x | semmle.order | 1 | | file://:0:0:0:0 | (Arguments) | arrays.js:5:8:5:14 | [DotExpr] obj.foo | semmle.label | 0 | | file://:0:0:0:0 | (Arguments) | arrays.js:5:8:5:14 | [DotExpr] obj.foo | semmle.order | 0 | | file://:0:0:0:0 | (Arguments) | arrays.js:8:12:8:17 | [VarRef] source | semmle.label | 0 | @@ -1173,6 +1251,14 @@ edges | file://:0:0:0:0 | (Arguments) | arrays.js:84:8:84:17 | [MethodCallExpr] arr.at(-1) | semmle.order | 0 | | file://:0:0:0:0 | (Arguments) | arrays.js:84:15:84:16 | [UnaryExpr] -1 | semmle.label | 0 | | file://:0:0:0:0 | (Arguments) | arrays.js:84:15:84:16 | [UnaryExpr] -1 | semmle.order | 0 | +| file://:0:0:0:0 | (Arguments) | arrays.js:86:8:86:34 | [MethodCallExpr] ["sourc ... ) => x) | semmle.label | 0 | +| file://:0:0:0:0 | (Arguments) | arrays.js:86:8:86:34 | [MethodCallExpr] ["sourc ... ) => x) | semmle.order | 0 | +| file://:0:0:0:0 | (Arguments) | arrays.js:86:26:86:33 | [ArrowFunctionExpr] (x) => x | semmle.label | 0 | +| file://:0:0:0:0 | (Arguments) | arrays.js:86:26:86:33 | [ArrowFunctionExpr] (x) => x | semmle.order | 0 | +| file://:0:0:0:0 | (Arguments) | arrays.js:87:8:87:36 | [MethodCallExpr] ["sourc ... => !!x) | semmle.label | 0 | +| file://:0:0:0:0 | (Arguments) | arrays.js:87:8:87:36 | [MethodCallExpr] ["sourc ... => !!x) | semmle.order | 0 | +| file://:0:0:0:0 | (Arguments) | arrays.js:87:26:87:35 | [ArrowFunctionExpr] (x) => !!x | semmle.label | 0 | +| file://:0:0:0:0 | (Arguments) | arrays.js:87:26:87:35 | [ArrowFunctionExpr] (x) => !!x | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | arrays.js:15:16:15:16 | [SimpleParameter] e | semmle.label | 0 | | file://:0:0:0:0 | (Parameters) | arrays.js:15:16:15:16 | [SimpleParameter] e | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | arrays.js:16:12:16:12 | [SimpleParameter] e | semmle.label | 0 | @@ -1187,5 +1273,9 @@ edges | file://:0:0:0:0 | (Parameters) | arrays.js:44:26:44:26 | [SimpleParameter] i | semmle.order | 1 | | file://:0:0:0:0 | (Parameters) | arrays.js:44:29:44:31 | [SimpleParameter] ary | semmle.label | 2 | | file://:0:0:0:0 | (Parameters) | arrays.js:44:29:44:31 | [SimpleParameter] ary | semmle.order | 2 | +| file://:0:0:0:0 | (Parameters) | arrays.js:86:27:86:27 | [SimpleParameter] x | semmle.label | 0 | +| file://:0:0:0:0 | (Parameters) | arrays.js:86:27:86:27 | [SimpleParameter] x | semmle.order | 0 | +| file://:0:0:0:0 | (Parameters) | arrays.js:87:27:87:27 | [SimpleParameter] x | semmle.label | 0 | +| file://:0:0:0:0 | (Parameters) | arrays.js:87:27:87:27 | [SimpleParameter] x | semmle.order | 0 | graphProperties | semmle.graphKind | tree | From 5c3d39579a20bbd08be93a84a376cd1bc9b59fc9 Mon Sep 17 00:00:00 2001 From: Edoardo Pirovano Date: Tue, 2 Aug 2022 13:07:42 +0100 Subject: [PATCH 643/736] JS: Change how TRAP cache is configured --- .../com/semmle/js/extractor/AutoBuild.java | 31 ++----------------- .../js/extractor/ExtractorOptionsUtil.java | 12 +++++++ .../src/com/semmle/js/extractor/Main.java | 27 +--------------- .../extractor/trapcache/DefaultTrapCache.java | 12 +++++-- .../js/extractor/trapcache/ITrapCache.java | 29 +++++++++++++++++ 5 files changed, 55 insertions(+), 56 deletions(-) create mode 100644 javascript/extractor/src/com/semmle/js/extractor/ExtractorOptionsUtil.java diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index 8eadda7e63a..101b8094fdd 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -86,8 +86,6 @@ import com.semmle.util.trap.TrapWriter; * XML is also supported *

  • LGTM_INDEX_XML_MODE: whether to extract XML files *
  • LGTM_THREADS: the maximum number of files to extract in parallel - *
  • LGTM_TRAP_CACHE: the path of a directory to use for trap caching - *
  • LGTM_TRAP_CACHE_BOUND: the size to bound the trap cache to * * *

    It extracts the following: @@ -220,7 +218,7 @@ public class AutoBuild { this.LGTM_SRC = toRealPath(getPathFromEnvVar("LGTM_SRC")); this.SEMMLE_DIST = Paths.get(EnvironmentVariables.getExtractorRoot()); this.outputConfig = new ExtractorOutputConfig(LegacyLanguage.JAVASCRIPT); - this.trapCache = mkTrapCache(); + this.trapCache = ITrapCache.fromExtractorOptions(); this.typeScriptMode = getEnumFromEnvVar("LGTM_INDEX_TYPESCRIPT", TypeScriptMode.class, TypeScriptMode.FULL); this.defaultEncoding = getEnvVar("LGTM_INDEX_DEFAULT_ENCODING"); @@ -281,28 +279,6 @@ public class AutoBuild { } } - /** - * Set up TRAP cache based on environment variables LGTM_TRAP_CACHE and - * LGTM_TRAP_CACHE_BOUND. - */ - private ITrapCache mkTrapCache() { - ITrapCache trapCache; - String trapCachePath = getEnvVar("LGTM_TRAP_CACHE"); - if (trapCachePath != null) { - Long sizeBound = null; - String trapCacheBound = getEnvVar("LGTM_TRAP_CACHE_BOUND"); - if (trapCacheBound != null) { - sizeBound = DefaultTrapCache.asFileSize(trapCacheBound); - if (sizeBound == null) - throw new UserError("Invalid TRAP cache size bound: " + trapCacheBound); - } - trapCache = new DefaultTrapCache(trapCachePath, sizeBound, Main.EXTRACTOR_VERSION); - } else { - trapCache = new DummyTrapCache(); - } - return trapCache; - } - private void setupFileTypes() { for (String spec : Main.NEWLINE.split(getEnvVar("LGTM_INDEX_FILETYPES", ""))) { spec = spec.trim(); @@ -513,14 +489,13 @@ public class AutoBuild { SEMMLE_DIST.resolve(".cache").resolve("trap-cache").resolve("javascript"); if (Files.isDirectory(trapCachePath)) { trapCache = - new DefaultTrapCache(trapCachePath.toString(), null, Main.EXTRACTOR_VERSION) { + new DefaultTrapCache(trapCachePath.toString(), null, Main.EXTRACTOR_VERSION, false) { boolean warnedAboutCacheMiss = false; @Override public File lookup(String source, ExtractorConfig config, FileType type) { File f = super.lookup(source, config, type); - // only return `f` if it exists; this has the effect of making the cache read-only - if (f.exists()) return f; + if (f != null) return f; // warn on first failed lookup if (!warnedAboutCacheMiss) { warn("Trap cache lookup for externs failed."); diff --git a/javascript/extractor/src/com/semmle/js/extractor/ExtractorOptionsUtil.java b/javascript/extractor/src/com/semmle/js/extractor/ExtractorOptionsUtil.java new file mode 100644 index 00000000000..c58f27b2c8a --- /dev/null +++ b/javascript/extractor/src/com/semmle/js/extractor/ExtractorOptionsUtil.java @@ -0,0 +1,12 @@ +package com.semmle.js.extractor; + +import com.semmle.util.process.Env; + +public class ExtractorOptionsUtil { + public static String readExtractorOption(String... option) { + StringBuilder name = new StringBuilder("CODEQL_EXTRACTOR_JAVASCRIPT_OPTION"); + for (String segment : option) + name.append("_").append(segment.toUpperCase()); + return Env.systemEnv().getNonEmpty(name.toString()); + } +} diff --git a/javascript/extractor/src/com/semmle/js/extractor/Main.java b/javascript/extractor/src/com/semmle/js/extractor/Main.java index c001d22dfa9..9929195bb77 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/Main.java +++ b/javascript/extractor/src/com/semmle/js/extractor/Main.java @@ -15,8 +15,6 @@ import com.semmle.extractor.html.HtmlPopulator; import com.semmle.js.extractor.ExtractorConfig.Platform; import com.semmle.js.extractor.ExtractorConfig.SourceType; import com.semmle.js.extractor.FileExtractor.FileType; -import com.semmle.js.extractor.trapcache.DefaultTrapCache; -import com.semmle.js.extractor.trapcache.DummyTrapCache; import com.semmle.js.extractor.trapcache.ITrapCache; import com.semmle.js.parser.ParsedProject; import com.semmle.ts.extractor.TypeExtractor; @@ -61,8 +59,6 @@ public class Main { private static final String P_PLATFORM = "--platform"; private static final String P_QUIET = "--quiet"; private static final String P_SOURCE_TYPE = "--source-type"; - private static final String P_TRAP_CACHE = "--trap-cache"; - private static final String P_TRAP_CACHE_BOUND = "--trap-cache-bound"; private static final String P_TYPESCRIPT = "--typescript"; private static final String P_TYPESCRIPT_FULL = "--typescript-full"; private static final String P_TYPESCRIPT_RAM = "--typescript-ram"; @@ -112,22 +108,7 @@ public class Main { ap.parse(); extractorConfig = parseJSOptions(ap); - ITrapCache trapCache; - if (ap.has(P_TRAP_CACHE)) { - Long sizeBound = null; - if (ap.has(P_TRAP_CACHE_BOUND)) { - String tcb = ap.getString(P_TRAP_CACHE_BOUND); - sizeBound = DefaultTrapCache.asFileSize(tcb); - if (sizeBound == null) ap.error("Invalid TRAP cache size bound: " + tcb); - } - trapCache = new DefaultTrapCache(ap.getString(P_TRAP_CACHE), sizeBound, EXTRACTOR_VERSION); - } else { - if (ap.has(P_TRAP_CACHE_BOUND)) - ap.error( - P_TRAP_CACHE_BOUND + " should only be specified together with " + P_TRAP_CACHE + "."); - trapCache = new DummyTrapCache(); - } - fileExtractor = new FileExtractor(extractorConfig, extractorOutputConfig, trapCache); + fileExtractor = new FileExtractor(extractorConfig, extractorOutputConfig, ITrapCache.fromExtractorOptions()); setupMatchers(ap); @@ -432,12 +413,6 @@ public class Main { argsParser.addToleratedFlag(P_TOLERATE_PARSE_ERRORS, 0); argsParser.addFlag( P_ABORT_ON_PARSE_ERRORS, 0, "Abort extraction if a parse error is encountered."); - argsParser.addFlag(P_TRAP_CACHE, 1, "Use the given directory as the TRAP cache."); - argsParser.addFlag( - P_TRAP_CACHE_BOUND, - 1, - "A (soft) upper limit on the size of the TRAP cache, " - + "in standard size units (e.g., 'g' for gigabytes)."); argsParser.addFlag(P_DEFAULT_ENCODING, 1, "The encoding to use; default is UTF-8."); argsParser.addFlag(P_TYPESCRIPT, 0, "Enable basic TypesScript support."); argsParser.addFlag( diff --git a/javascript/extractor/src/com/semmle/js/extractor/trapcache/DefaultTrapCache.java b/javascript/extractor/src/com/semmle/js/extractor/trapcache/DefaultTrapCache.java index 6caa29e8f63..c96be38c7d2 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/trapcache/DefaultTrapCache.java +++ b/javascript/extractor/src/com/semmle/js/extractor/trapcache/DefaultTrapCache.java @@ -26,9 +26,15 @@ public class DefaultTrapCache implements ITrapCache { */ private final String extractorVersion; - public DefaultTrapCache(String trapCache, Long sizeBound, String extractorVersion) { + /** + * Whether this cache supports write operations. + */ + private final boolean writeable; + + public DefaultTrapCache(String trapCache, Long sizeBound, String extractorVersion, boolean writeable) { this.trapCache = new File(trapCache); this.extractorVersion = extractorVersion; + this.writeable = writeable; try { initCache(sizeBound); } catch (ResourceError | SecurityException e) { @@ -135,6 +141,8 @@ public class DefaultTrapCache implements ITrapCache { digestor.write(type.toString()); digestor.write(config); digestor.write(source); - return new File(trapCache, digestor.getDigest() + ".trap.gz"); + File result = new File(trapCache, digestor.getDigest() + ".trap.gz"); + if (!writeable && !result.exists()) return null; // If the cache isn't writable, only return the file if it exists + return result; } } diff --git a/javascript/extractor/src/com/semmle/js/extractor/trapcache/ITrapCache.java b/javascript/extractor/src/com/semmle/js/extractor/trapcache/ITrapCache.java index 745e930e75e..fb7b553e14c 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/trapcache/ITrapCache.java +++ b/javascript/extractor/src/com/semmle/js/extractor/trapcache/ITrapCache.java @@ -1,7 +1,11 @@ package com.semmle.js.extractor.trapcache; +import static com.semmle.js.extractor.ExtractorOptionsUtil.readExtractorOption; + import com.semmle.js.extractor.ExtractorConfig; import com.semmle.js.extractor.FileExtractor; +import com.semmle.js.extractor.Main; +import com.semmle.util.exception.UserError; import java.io.File; /** Generic TRAP cache interface. */ @@ -18,4 +22,29 @@ public interface ITrapCache { * cached information), or does not yet exist (and should be populated by the extractor) */ public File lookup(String source, ExtractorConfig config, FileExtractor.FileType type); + + /** + * Build a TRAP cache as defined by the extractor options, which are read from the corresponding + * environment variables as defined in + * https://github.com/github/codeql-core/blob/main/design/spec/codeql-extractors.md + * + * @return a TRAP cache + */ + public static ITrapCache fromExtractorOptions() { + String trapCachePath = readExtractorOption("trap", "cache", "dir"); + if (trapCachePath != null) { + Long sizeBound = null; + String trapCacheBound = readExtractorOption("trap", "cache", "bound"); + if (trapCacheBound != null) { + sizeBound = DefaultTrapCache.asFileSize(trapCacheBound); + if (sizeBound == null) + throw new UserError("Invalid TRAP cache size bound: " + trapCacheBound); + } + boolean writeable = true; + String trapCacheWrite = readExtractorOption("trap", "cache", "write"); + if (trapCacheWrite != null) writeable = trapCacheWrite.equalsIgnoreCase("TRUE"); + return new DefaultTrapCache(trapCachePath, sizeBound, Main.EXTRACTOR_VERSION, writeable); + } + return new DummyTrapCache(); + } } From da4434033440399c0fc9e29bae74a0432accd887 Mon Sep 17 00:00:00 2001 From: Esben Sparre Andreasen Date: Mon, 8 Aug 2022 12:22:41 +0200 Subject: [PATCH 644/736] formatting --- javascript/ql/test/library-tests/Arrays/TaintFlow.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/test/library-tests/Arrays/TaintFlow.ql b/javascript/ql/test/library-tests/Arrays/TaintFlow.ql index 694353873f2..cee2f294a34 100644 --- a/javascript/ql/test/library-tests/Arrays/TaintFlow.ql +++ b/javascript/ql/test/library-tests/Arrays/TaintFlow.ql @@ -1,7 +1,7 @@ import javascript class ArrayTaintFlowConfig extends TaintTracking::Configuration { - ArrayTaintFlowConfig() { this = "ArrayTaintFlowConfig" } + ArrayTaintFlowConfig() { this = "ArrayTaintFlowConfig" } override predicate isSource(DataFlow::Node source) { source.asExpr().getStringValue() = "source" } From 6febbc5966b3b6b879881be7b1da45f76e0d8fa0 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 8 Aug 2022 13:23:17 +0200 Subject: [PATCH 645/736] C#: Update .NET Core and ASP.NET Core. --- .../Microsoft.Extensions.Primitives.csproj | 1 + .../Microsoft.AspNetCore.Antiforgery.cs | 16 +- ....AspNetCore.Authentication.Abstractions.cs | 84 +- ...osoft.AspNetCore.Authentication.Cookies.cs | 48 +- ...icrosoft.AspNetCore.Authentication.Core.cs | 14 +- ...crosoft.AspNetCore.Authentication.OAuth.cs | 60 +- .../Microsoft.AspNetCore.Authentication.cs | 106 +- ...crosoft.AspNetCore.Authorization.Policy.cs | 26 +- .../Microsoft.AspNetCore.Authorization.cs | 106 +- ...oft.AspNetCore.Components.Authorization.cs | 16 +- .../Microsoft.AspNetCore.Components.Forms.cs | 40 +- .../Microsoft.AspNetCore.Components.Server.cs | 59 +- .../Microsoft.AspNetCore.Components.Web.cs | 262 +- .../Microsoft.AspNetCore.Components.cs | 468 ++-- ...oft.AspNetCore.Connections.Abstractions.cs | 174 +- .../Microsoft.AspNetCore.CookiePolicy.cs | 20 +- .../Microsoft.AspNetCore.Cors.cs | 62 +- ...t.AspNetCore.Cryptography.KeyDerivation.cs | 4 +- ....AspNetCore.DataProtection.Abstractions.cs | 12 +- ...ft.AspNetCore.DataProtection.Extensions.cs | 22 +- .../Microsoft.AspNetCore.DataProtection.cs | 174 +- ...oft.AspNetCore.Diagnostics.Abstractions.cs | 25 +- ...oft.AspNetCore.Diagnostics.HealthChecks.cs | 20 +- .../Microsoft.AspNetCore.Diagnostics.cs | 58 +- .../Microsoft.AspNetCore.HostFiltering.cs | 8 +- ...crosoft.AspNetCore.Hosting.Abstractions.cs | 32 +- ....AspNetCore.Hosting.Server.Abstractions.cs | 12 +- .../Microsoft.AspNetCore.Hosting.cs | 54 +- .../Microsoft.AspNetCore.Html.Abstractions.cs | 36 +- .../Microsoft.AspNetCore.Http.Abstractions.cs | 278 +- ...soft.AspNetCore.Http.Connections.Common.cs | 11 +- .../Microsoft.AspNetCore.Http.Connections.cs | 32 +- .../Microsoft.AspNetCore.Http.Extensions.cs | 99 +- .../Microsoft.AspNetCore.Http.Features.cs | 248 +- .../Microsoft.AspNetCore.Http.Results.cs | 54 + .../Microsoft.AspNetCore.Http.cs | 175 +- .../Microsoft.AspNetCore.HttpLogging.cs | 121 + .../Microsoft.AspNetCore.HttpOverrides.cs | 30 +- .../Microsoft.AspNetCore.HttpsPolicy.cs | 20 +- .../Microsoft.AspNetCore.Identity.cs | 54 +- ...crosoft.AspNetCore.Localization.Routing.cs | 2 +- .../Microsoft.AspNetCore.Localization.cs | 46 +- .../Microsoft.AspNetCore.Metadata.cs | 4 +- .../Microsoft.AspNetCore.Mvc.Abstractions.cs | 468 ++-- .../Microsoft.AspNetCore.Mvc.ApiExplorer.cs | 20 +- .../Microsoft.AspNetCore.Mvc.Core.cs | 1554 +++++----- .../Microsoft.AspNetCore.Mvc.Cors.cs | 14 +- ...icrosoft.AspNetCore.Mvc.DataAnnotations.cs | 32 +- ...Microsoft.AspNetCore.Mvc.Formatters.Xml.cs | 92 +- .../Microsoft.AspNetCore.Mvc.Localization.cs | 96 +- .../Microsoft.AspNetCore.Mvc.Razor.cs | 129 +- .../Microsoft.AspNetCore.Mvc.RazorPages.cs | 442 +-- .../Microsoft.AspNetCore.Mvc.TagHelpers.cs | 90 +- .../Microsoft.AspNetCore.Mvc.ViewFeatures.cs | 734 ++--- .../Microsoft.AspNetCore.Mvc.cs | 10 +- .../Microsoft.AspNetCore.Razor.Runtime.cs | 30 +- .../Microsoft.AspNetCore.Razor.cs | 96 +- ...AspNetCore.ResponseCaching.Abstractions.cs | 2 +- .../Microsoft.AspNetCore.ResponseCaching.cs | 12 +- ...icrosoft.AspNetCore.ResponseCompression.cs | 30 +- .../Microsoft.AspNetCore.Rewrite.cs | 46 +- ...crosoft.AspNetCore.Routing.Abstractions.cs | 50 +- .../Microsoft.AspNetCore.Routing.cs | 497 ++-- .../Microsoft.AspNetCore.Server.HttpSys.cs | 46 +- .../Microsoft.AspNetCore.Server.IIS.cs | 19 +- ...rosoft.AspNetCore.Server.IISIntegration.cs | 12 +- ...icrosoft.AspNetCore.Server.Kestrel.Core.cs | 180 +- ...spNetCore.Server.Kestrel.Transport.Quic.cs | 42 + ...etCore.Server.Kestrel.Transport.Sockets.cs | 29 +- .../Microsoft.AspNetCore.Server.Kestrel.cs | 4 +- .../Microsoft.AspNetCore.Session.cs | 22 +- .../Microsoft.AspNetCore.SignalR.Common.cs | 58 +- .../Microsoft.AspNetCore.SignalR.Core.cs | 210 +- ...osoft.AspNetCore.SignalR.Protocols.Json.cs | 10 +- .../Microsoft.AspNetCore.SignalR.cs | 18 +- .../Microsoft.AspNetCore.StaticFiles.cs | 73 +- .../Microsoft.AspNetCore.WebSockets.cs | 12 +- .../Microsoft.AspNetCore.WebUtilities.cs | 145 +- .../Microsoft.AspNetCore.cs | 99 +- ...crosoft.Extensions.Caching.Abstractions.cs | 48 +- .../Microsoft.Extensions.Caching.Memory.cs | 20 +- ...t.Extensions.Configuration.Abstractions.cs | 30 +- ...crosoft.Extensions.Configuration.Binder.cs | 32 +- ...ft.Extensions.Configuration.CommandLine.cs | 10 +- ...ions.Configuration.EnvironmentVariables.cs | 11 +- ...Extensions.Configuration.FileExtensions.cs | 8 +- .../Microsoft.Extensions.Configuration.Ini.cs | 16 +- ...Microsoft.Extensions.Configuration.Json.cs | 16 +- ...oft.Extensions.Configuration.KeyPerFile.cs | 13 +- ...ft.Extensions.Configuration.UserSecrets.cs | 20 +- .../Microsoft.Extensions.Configuration.Xml.cs | 18 +- .../Microsoft.Extensions.Configuration.cs | 57 +- ...nsions.DependencyInjection.Abstractions.cs | 203 +- ...icrosoft.Extensions.DependencyInjection.cs | 35 +- ...s.Diagnostics.HealthChecks.Abstractions.cs | 28 +- ...oft.Extensions.Diagnostics.HealthChecks.cs | 30 +- .../Microsoft.Extensions.Features.cs | 62 + ...t.Extensions.FileProviders.Abstractions.cs | 18 +- ...soft.Extensions.FileProviders.Composite.cs | 8 +- ...osoft.Extensions.FileProviders.Embedded.cs | 14 +- ...osoft.Extensions.FileProviders.Physical.cs | 26 +- ...Microsoft.Extensions.FileSystemGlobbing.cs | 95 +- ...crosoft.Extensions.Hosting.Abstractions.cs | 45 +- .../Microsoft.Extensions.Hosting.cs | 83 +- .../Microsoft.Extensions.Http.cs | 78 +- .../Microsoft.Extensions.Identity.Core.cs | 172 +- .../Microsoft.Extensions.Identity.Stores.cs | 40 +- ...ft.Extensions.Localization.Abstractions.cs | 26 +- .../Microsoft.Extensions.Localization.cs | 28 +- ...crosoft.Extensions.Logging.Abstractions.cs | 145 +- ...rosoft.Extensions.Logging.Configuration.cs | 27 +- .../Microsoft.Extensions.Logging.Console.cs | 55 +- .../Microsoft.Extensions.Logging.Debug.cs | 6 +- .../Microsoft.Extensions.Logging.EventLog.cs | 14 +- ...icrosoft.Extensions.Logging.EventSource.cs | 10 +- ...icrosoft.Extensions.Logging.TraceSource.cs | 14 +- .../Microsoft.Extensions.Logging.cs | 66 +- .../Microsoft.Extensions.ObjectPool.cs | 30 +- ...ensions.Options.ConfigurationExtensions.cs | 37 +- ...soft.Extensions.Options.DataAnnotations.cs | 19 +- .../Microsoft.Extensions.Options.cs | 158 +- .../Microsoft.Extensions.Primitives.cs | 136 +- .../Microsoft.Extensions.WebEncoders.cs | 18 +- .../Microsoft.JSInterop.cs | 156 +- .../Microsoft.Net.Http.Headers.cs | 67 +- .../System.Diagnostics.EventLog.cs | 214 +- .../System.IO.Pipelines.cs | 77 +- .../System.Security.Cryptography.Xml.cs | 222 +- .../System.Security.Permissions.cs | 2319 --------------- .../System.Windows.Extensions.cs | 108 - .../Microsoft.NETCore.App/Microsoft.CSharp.cs | 12 +- .../Microsoft.VisualBasic.Core.cs | 152 +- .../Microsoft.Win32.Primitives.cs | 2 +- .../Microsoft.Win32.Registry.cs | 117 +- .../System.Collections.Concurrent.cs | 21 +- .../System.Collections.Immutable.cs | 74 +- .../System.Collections.NonGeneric.cs | 18 +- .../System.Collections.Specialized.cs | 24 +- .../System.Collections.cs | 120 +- .../System.ComponentModel.Annotations.cs | 86 +- .../System.ComponentModel.EventBasedAsync.cs | 22 +- .../System.ComponentModel.Primitives.cs | 60 +- .../System.ComponentModel.TypeConverter.cs | 429 ++- .../System.ComponentModel.cs | 10 +- .../Microsoft.NETCore.App/System.Console.cs | 16 +- .../System.Data.Common.cs | 403 +-- .../System.Diagnostics.Contracts.cs | 30 +- .../System.Diagnostics.DiagnosticSource.cs | 254 +- .../System.Diagnostics.FileVersionInfo.cs | 2 +- .../System.Diagnostics.Process.cs | 31 +- .../System.Diagnostics.StackTrace.cs | 36 +- ...tem.Diagnostics.TextWriterTraceListener.cs | 8 +- .../System.Diagnostics.TraceSource.cs | 40 +- .../System.Diagnostics.Tracing.cs | 62 +- .../System.Drawing.Primitives.cs | 34 +- .../System.Formats.Asn1.cs | 56 +- .../System.IO.Compression.Brotli.cs | 8 +- .../System.IO.Compression.ZipFile.cs | 4 +- .../System.IO.Compression.cs | 74 +- .../System.IO.FileSystem.AccessControl.cs | 139 + .../System.IO.FileSystem.DriveInfo.cs | 6 +- .../System.IO.FileSystem.Watcher.cs | 22 +- .../System.IO.FileSystem.cs | 327 --- .../System.IO.IsolatedStorage.cs | 12 +- .../System.IO.MemoryMappedFiles.cs | 20 +- .../System.IO.Pipes.AccessControl.cs | 92 + .../Microsoft.NETCore.App/System.IO.Pipes.cs | 21 +- .../System.Linq.Expressions.cs | 154 +- .../System.Linq.Parallel.cs | 12 +- .../System.Linq.Queryable.cs | 35 +- .../Microsoft.NETCore.App/System.Linq.cs | 36 +- .../Microsoft.NETCore.App/System.Memory.cs | 85 +- .../System.Net.Http.Json.cs | 16 +- .../Microsoft.NETCore.App/System.Net.Http.cs | 161 +- .../System.Net.HttpListener.cs | 22 +- .../Microsoft.NETCore.App/System.Net.Mail.cs | 56 +- .../System.Net.NameResolution.cs | 10 +- .../System.Net.NetworkInformation.cs | 72 +- .../Microsoft.NETCore.App/System.Net.Ping.cs | 14 +- .../System.Net.Primitives.cs | 69 +- .../System.Net.Requests.cs | 52 +- .../System.Net.Security.cs | 56 +- .../System.Net.ServicePoint.cs | 8 +- .../System.Net.Sockets.cs | 122 +- .../System.Net.WebClient.cs | 46 +- .../System.Net.WebHeaderCollection.cs | 6 +- .../System.Net.WebProxy.cs | 4 +- .../System.Net.WebSockets.Client.cs | 5 +- .../System.Net.WebSockets.cs | 49 +- .../System.Numerics.Vectors.cs | 61 +- .../System.ObjectModel.cs | 46 +- .../System.Reflection.DispatchProxy.cs | 2 +- .../System.Reflection.Emit.ILGeneration.cs | 12 +- .../System.Reflection.Emit.Lightweight.cs | 4 +- .../System.Reflection.Emit.cs | 45 +- .../System.Reflection.Metadata.cs | 525 ++-- .../System.Reflection.Primitives.cs | 14 +- .../System.Reflection.TypeExtensions.cs | 14 +- .../System.Resources.Writer.cs | 4 +- .../System.Runtime.CompilerServices.Unsafe.cs | 6 +- ...System.Runtime.CompilerServices.VisualC.cs | 32 +- ...time.InteropServices.RuntimeInformation.cs | 7 +- .../System.Runtime.InteropServices.cs | 431 ++- .../System.Runtime.Intrinsics.cs | 135 +- .../System.Runtime.Loader.cs | 31 +- .../System.Runtime.Numerics.cs | 6 +- ...System.Runtime.Serialization.Formatters.cs | 32 +- .../System.Runtime.Serialization.Json.cs | 14 +- ...System.Runtime.Serialization.Primitives.cs | 18 +- .../System.Runtime.Serialization.Xml.cs | 56 +- .../Microsoft.NETCore.App/System.Runtime.cs | 2487 +++++++++++------ .../System.Security.AccessControl.cs | 270 +- .../System.Security.Claims.cs | 14 +- ...System.Security.Cryptography.Algorithms.cs | 167 +- .../System.Security.Cryptography.Cng.cs | 171 +- .../System.Security.Cryptography.Csp.cs | 36 +- .../System.Security.Cryptography.Encoding.cs | 24 +- .../System.Security.Cryptography.OpenSsl.cs | 106 + ...System.Security.Cryptography.Primitives.cs | 69 +- ....Security.Cryptography.X509Certificates.cs | 122 +- .../System.Security.Principal.Windows.cs | 79 +- .../System.Text.Encoding.CodePages.cs | 2 +- .../System.Text.Encoding.Extensions.cs | 10 +- .../System.Text.Encodings.Web.cs | 14 +- .../Microsoft.NETCore.App/System.Text.Json.cs | 543 +++- .../System.Text.RegularExpressions.cs | 31 +- .../System.Threading.Channels.cs | 23 +- .../System.Threading.Overlapped.cs | 12 +- .../System.Threading.Tasks.Dataflow.cs | 83 +- .../System.Threading.Tasks.Parallel.cs | 14 +- .../System.Threading.Thread.cs | 30 +- .../System.Threading.ThreadPool.cs | 10 +- .../Microsoft.NETCore.App/System.Threading.cs | 74 +- .../System.Transactions.Local.cs | 68 +- .../System.Web.HttpUtility.cs | 2 +- .../System.Xml.ReaderWriter.cs | 376 +-- .../System.Xml.XDocument.cs | 48 +- .../System.Xml.XPath.XDocument.cs | 4 +- .../Microsoft.NETCore.App/System.Xml.XPath.cs | 4 +- .../System.Xml.XmlSerializer.cs | 120 +- 240 files changed, 12609 insertions(+), 11637 deletions(-) create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpLogging.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.cs create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Permissions.cs delete mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Windows.Extensions.cs rename csharp/ql/test/resources/stubs/_frameworks/{Microsoft.AspNetCore.App => Microsoft.NETCore.App}/Microsoft.Win32.Registry.cs (80%) create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.AccessControl.cs delete 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.Pipes.AccessControl.cs rename csharp/ql/test/resources/stubs/_frameworks/{Microsoft.AspNetCore.App => Microsoft.NETCore.App}/System.Security.AccessControl.cs (90%) rename csharp/ql/test/resources/stubs/_frameworks/{Microsoft.AspNetCore.App => Microsoft.NETCore.App}/System.Security.Cryptography.Cng.cs (92%) create mode 100644 csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs rename csharp/ql/test/resources/stubs/_frameworks/{Microsoft.AspNetCore.App => Microsoft.NETCore.App}/System.Security.Principal.Windows.cs (90%) diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj index a04faa3ef58..0b613573699 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj @@ -7,6 +7,7 @@ + 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 bb992f2caba..39644a441bb 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Antiforgery { - // Generated from `Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions` in `Microsoft.AspNetCore.Antiforgery, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions` in `Microsoft.AspNetCore.Antiforgery, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AntiforgeryOptions { public AntiforgeryOptions() => throw null; @@ -17,7 +17,7 @@ namespace Microsoft public bool SuppressXFrameOptionsHeader { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet` in `Microsoft.AspNetCore.Antiforgery, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet` in `Microsoft.AspNetCore.Antiforgery, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AntiforgeryTokenSet { public AntiforgeryTokenSet(string requestToken, string cookieToken, string formFieldName, string headerName) => throw null; @@ -27,14 +27,14 @@ namespace Microsoft public string RequestToken { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException` in `Microsoft.AspNetCore.Antiforgery, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException` in `Microsoft.AspNetCore.Antiforgery, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AntiforgeryValidationException : System.Exception { - public AntiforgeryValidationException(string message, System.Exception innerException) => throw null; public AntiforgeryValidationException(string message) => throw null; + public AntiforgeryValidationException(string message, System.Exception innerException) => throw null; } - // Generated from `Microsoft.AspNetCore.Antiforgery.IAntiforgery` in `Microsoft.AspNetCore.Antiforgery, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Antiforgery.IAntiforgery` in `Microsoft.AspNetCore.Antiforgery, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAntiforgery { Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet GetAndStoreTokens(Microsoft.AspNetCore.Http.HttpContext httpContext); @@ -44,7 +44,7 @@ namespace Microsoft System.Threading.Tasks.Task ValidateRequestAsync(Microsoft.AspNetCore.Http.HttpContext httpContext); } - // Generated from `Microsoft.AspNetCore.Antiforgery.IAntiforgeryAdditionalDataProvider` in `Microsoft.AspNetCore.Antiforgery, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Antiforgery.IAntiforgeryAdditionalDataProvider` in `Microsoft.AspNetCore.Antiforgery, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAntiforgeryAdditionalDataProvider { string GetAdditionalData(Microsoft.AspNetCore.Http.HttpContext context); @@ -57,11 +57,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.AntiforgeryServiceCollectionExtensions` in `Microsoft.AspNetCore.Antiforgery, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.AntiforgeryServiceCollectionExtensions` in `Microsoft.AspNetCore.Antiforgery, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AntiforgeryServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAntiforgery(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; 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 959d62a8ab7..bdbbf375422 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 @@ -6,15 +6,15 @@ namespace Microsoft { namespace Authentication { - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticateResult` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticateResult` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticateResult { protected AuthenticateResult() => throw null; public Microsoft.AspNetCore.Authentication.AuthenticateResult Clone() => throw null; - public static Microsoft.AspNetCore.Authentication.AuthenticateResult Fail(string failureMessage, 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(System.Exception failure, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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 static Microsoft.AspNetCore.Authentication.AuthenticateResult NoResult() => throw null; public bool None { get => throw null; set => throw null; } @@ -25,36 +25,36 @@ namespace Microsoft public Microsoft.AspNetCore.Authentication.AuthenticationTicket Ticket { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AuthenticationHttpContextExtensions { - public static System.Threading.Tasks.Task AuthenticateAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme) => throw null; public static System.Threading.Tasks.Task AuthenticateAsync(this Microsoft.AspNetCore.Http.HttpContext context) => 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 ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme) => 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 AuthenticateAsync(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 ForbidAsync(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, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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) => 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 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 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, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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 SignOutAsync(this Microsoft.AspNetCore.Http.HttpContext context, string scheme, 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, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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; } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationOptions` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationOptions` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationOptions { - public void AddScheme(string name, string displayName) where THandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler => throw null; 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; } @@ -67,13 +67,13 @@ namespace Microsoft public System.Collections.Generic.IEnumerable Schemes { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationProperties` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationProperties` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationProperties { public bool? AllowRefresh { get => throw null; set => throw null; } - public AuthenticationProperties(System.Collections.Generic.IDictionary items, System.Collections.Generic.IDictionary parameters) => throw null; - public AuthenticationProperties(System.Collections.Generic.IDictionary items) => 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; } protected bool? GetBool(string key) => throw null; @@ -91,7 +91,7 @@ namespace Microsoft public void SetString(string key, string value) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationScheme` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationScheme` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationScheme { public AuthenticationScheme(string name, string displayName, System.Type handlerType) => throw null; @@ -100,7 +100,7 @@ namespace Microsoft public string Name { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationSchemeBuilder { public AuthenticationSchemeBuilder(string name) => throw null; @@ -110,18 +110,18 @@ namespace Microsoft public string Name { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationTicket` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationTicket` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationTicket { public string AuthenticationScheme { get => throw null; } - public AuthenticationTicket(System.Security.Claims.ClaimsPrincipal principal, string authenticationScheme) => 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; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationToken` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationToken` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationToken { public AuthenticationToken() => throw null; @@ -129,7 +129,7 @@ namespace Microsoft public string Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AuthenticationTokenExtensions { public static System.Threading.Tasks.Task GetTokenAsync(this Microsoft.AspNetCore.Authentication.IAuthenticationService auth, Microsoft.AspNetCore.Http.HttpContext context, string tokenName) => throw null; @@ -140,14 +140,20 @@ namespace Microsoft public static bool UpdateTokenValue(this Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string tokenName, string tokenValue) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationFeature` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticateResultFeature` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IAuthenticateResultFeature + { + Microsoft.AspNetCore.Authentication.AuthenticateResult AuthenticateResult { get; set; } + } + + // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationFeature` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticationFeature { Microsoft.AspNetCore.Http.PathString OriginalPath { get; set; } Microsoft.AspNetCore.Http.PathString OriginalPathBase { get; set; } } - // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationHandler` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationHandler` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticationHandler { System.Threading.Tasks.Task AuthenticateAsync(); @@ -156,19 +162,19 @@ namespace Microsoft System.Threading.Tasks.Task InitializeAsync(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Http.HttpContext context); } - // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticationHandlerProvider { System.Threading.Tasks.Task GetHandlerAsync(Microsoft.AspNetCore.Http.HttpContext context, string authenticationScheme); } - // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticationRequestHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler { System.Threading.Tasks.Task HandleRequestAsync(); } - // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticationSchemeProvider { void AddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme); @@ -184,7 +190,7 @@ namespace Microsoft bool TryAddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationService` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationService` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticationService { System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme); @@ -194,19 +200,19 @@ namespace Microsoft System.Threading.Tasks.Task SignOutAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); } - // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationSignInHandler` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IAuthenticationSignInHandler : Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler + // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationSignInHandler` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); } - // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticationSignOutHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler { System.Threading.Tasks.Task SignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties); } - // Generated from `Microsoft.AspNetCore.Authentication.IClaimsTransformation` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.IClaimsTransformation` in `Microsoft.AspNetCore.Authentication.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 e42d5333747..b033adfed56 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 @@ -8,7 +8,7 @@ namespace Microsoft { namespace Cookies { - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.ChunkingCookieManager` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.ChunkingCookieManager` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -20,7 +20,7 @@ namespace Microsoft public bool ThrowForPartialCookies { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationDefaults` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationDefaults` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CookieAuthenticationDefaults { public static Microsoft.AspNetCore.Http.PathString AccessDeniedPath; @@ -31,10 +31,11 @@ namespace Microsoft public static string ReturnUrlParameter; } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationEvents` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationEvents` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieAuthenticationEvents { 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; } @@ -53,7 +54,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ValidatePrincipal(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -68,7 +69,7 @@ namespace Microsoft protected override System.Threading.Tasks.Task InitializeHandlerAsync() => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieAuthenticationOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { public Microsoft.AspNetCore.Http.PathString AccessDeniedPath { get => throw null; set => throw null; } @@ -86,27 +87,36 @@ namespace Microsoft public Microsoft.AspNetCore.Authentication.ISecureDataFormat TicketDataFormat { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieSignedInContext` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieSignedInContext` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieSigningInContext` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieSigningInContext` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieSigningInContext : Microsoft.AspNetCore.Authentication.PrincipalContext { public Microsoft.AspNetCore.Http.CookieOptions CookieOptions { get => throw null; set => throw null; } 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; } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieSigningOutContext` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieSigningOutContext` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieSigningOutContext : Microsoft.AspNetCore.Authentication.PropertiesContext { public Microsoft.AspNetCore.Http.CookieOptions CookieOptions { get => throw null; set => throw null; } 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; } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieSlidingExpirationContext` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } + } + + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -115,7 +125,7 @@ namespace Microsoft public bool ShouldRenew { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.ICookieManager` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.ICookieManager` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICookieManager { void AppendResponseCookie(Microsoft.AspNetCore.Http.HttpContext context, string key, string value, Microsoft.AspNetCore.Http.CookieOptions options); @@ -123,16 +133,20 @@ namespace Microsoft string GetRequestCookie(Microsoft.AspNetCore.Http.HttpContext context, string key); } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.ITicketStore` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.ITicketStore` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 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 RetrieveAsync(string key); + System.Threading.Tasks.Task RetrieveAsync(string key, 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; } - // Generated from `Microsoft.AspNetCore.Authentication.Cookies.PostConfigureCookieAuthenticationOptions` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Cookies.PostConfigureCookieAuthenticationOptions` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PostConfigureCookieAuthenticationOptions : Microsoft.Extensions.Options.IPostConfigureOptions { public void PostConfigure(string name, Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions options) => throw null; @@ -146,14 +160,14 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.CookieExtensions` in `Microsoft.AspNetCore.Authentication.Cookies, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.CookieExtensions` in `Microsoft.AspNetCore.Authentication.Cookies, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CookieExtensions { - public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddCookie(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string authenticationScheme, string displayName, 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) => 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) => 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, 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 b547115d352..75a72f5e2c3 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Authentication { - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationFeature` in `Microsoft.AspNetCore.Authentication.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationFeature` in `Microsoft.AspNetCore.Authentication.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationFeature : Microsoft.AspNetCore.Authentication.IAuthenticationFeature { public AuthenticationFeature() => throw null; @@ -14,7 +14,7 @@ namespace Microsoft public Microsoft.AspNetCore.Http.PathString OriginalPathBase { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationHandlerProvider` in `Microsoft.AspNetCore.Authentication.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationHandlerProvider` in `Microsoft.AspNetCore.Authentication.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationHandlerProvider : Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider { public AuthenticationHandlerProvider(Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes) => throw null; @@ -22,7 +22,7 @@ namespace Microsoft public Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider Schemes { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider` in `Microsoft.AspNetCore.Authentication.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider` in `Microsoft.AspNetCore.Authentication.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationSchemeProvider : Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider { public virtual void AddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme) => throw null; @@ -40,7 +40,7 @@ namespace Microsoft public virtual bool TryAddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationService` in `Microsoft.AspNetCore.Authentication.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationService` in `Microsoft.AspNetCore.Authentication.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationService : Microsoft.AspNetCore.Authentication.IAuthenticationService { public virtual System.Threading.Tasks.Task AuthenticateAsync(Microsoft.AspNetCore.Http.HttpContext context, string scheme) => throw null; @@ -55,7 +55,7 @@ namespace Microsoft public Microsoft.AspNetCore.Authentication.IClaimsTransformation Transform { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.NoopClaimsTransformation` in `Microsoft.AspNetCore.Authentication.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.NoopClaimsTransformation` in `Microsoft.AspNetCore.Authentication.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NoopClaimsTransformation : Microsoft.AspNetCore.Authentication.IClaimsTransformation { public NoopClaimsTransformation() => throw null; @@ -68,11 +68,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.AuthenticationCoreServiceCollectionExtensions` in `Microsoft.AspNetCore.Authentication.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.AuthenticationCoreServiceCollectionExtensions` in `Microsoft.AspNetCore.Authentication.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AuthenticationCoreServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthenticationCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; 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 71b74f7c04a..db3fb3de831 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 @@ -6,35 +6,35 @@ namespace Microsoft { namespace Authentication { - // Generated from `Microsoft.AspNetCore.Authentication.ClaimActionCollectionMapExtensions` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.ClaimActionCollectionMapExtensions` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; public static void MapAll(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection) => throw null; public static void MapAllExcept(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, params string[] exclusions) => throw null; - public static void MapCustomJson(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string valueType, System.Func resolver) => throw null; public static void MapCustomJson(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, System.Func resolver) => throw null; - public static void MapJsonKey(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string jsonKey, string valueType) => throw null; + public static void MapCustomJson(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string valueType, System.Func resolver) => throw null; public static void MapJsonKey(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string jsonKey) => throw null; - public static void MapJsonSubKey(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string jsonKey, string subKey, string valueType) => throw null; + public static void MapJsonKey(this Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection collection, string claimType, string jsonKey, string valueType) => throw null; 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 { - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthChallengeProperties` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthChallengeProperties` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OAuthChallengeProperties : Microsoft.AspNetCore.Authentication.AuthenticationProperties { - public OAuthChallengeProperties(System.Collections.Generic.IDictionary items, System.Collections.Generic.IDictionary parameters) => throw null; - public OAuthChallengeProperties(System.Collections.Generic.IDictionary items) => throw null; 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 static string ScopeKey; public virtual void SetScope(params string[] scopes) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthCodeExchangeContext` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthCodeExchangeContext` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OAuthCodeExchangeContext { public string Code { get => throw null; } @@ -43,7 +43,7 @@ namespace Microsoft public string RedirectUri { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthConstants` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthConstants` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class OAuthConstants { public static string CodeChallengeKey; @@ -52,7 +52,7 @@ namespace Microsoft public static string CodeVerifierKey; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthCreatingTicketContext` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthCreatingTicketContext` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OAuthCreatingTicketContext : Microsoft.AspNetCore.Authentication.ResultContext { public string AccessToken { get => throw null; } @@ -61,20 +61,20 @@ namespace Microsoft 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(System.Text.Json.JsonElement userData) => throw null; public void RunClaimActions() => throw null; + public void RunClaimActions(System.Text.Json.JsonElement userData) => throw null; public Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse TokenResponse { get => throw null; } public string TokenType { get => throw null; } public System.Text.Json.JsonElement User { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthDefaults` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthDefaults` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class OAuthDefaults { public static string DisplayName; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthEvents` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthEvents` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OAuthEvents : Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents { public virtual System.Threading.Tasks.Task CreatingTicket(Microsoft.AspNetCore.Authentication.OAuth.OAuthCreatingTicketContext context) => throw null; @@ -84,7 +84,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task RedirectToAuthorizationEndpoint(Microsoft.AspNetCore.Authentication.RedirectContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler<>` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler<>` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OAuthHandler : Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions, new() { protected System.Net.Http.HttpClient Backchannel { get => throw null; } @@ -93,14 +93,14 @@ namespace Microsoft 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; } protected virtual System.Threading.Tasks.Task ExchangeCodeAsync(Microsoft.AspNetCore.Authentication.OAuth.OAuthCodeExchangeContext context) => throw null; - protected virtual string FormatScope(System.Collections.Generic.IEnumerable scopes) => throw null; protected virtual string FormatScope() => throw null; + protected virtual string FormatScope(System.Collections.Generic.IEnumerable scopes) => 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; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OAuthOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions { public string AuthorizationEndpoint { get => throw null; set => throw null; } @@ -117,7 +117,7 @@ namespace Microsoft public override void Validate() => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OAuthTokenResponse : System.IDisposable { public string AccessToken { get => throw null; set => throw null; } @@ -133,7 +133,7 @@ namespace Microsoft namespace Claims { - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ClaimAction { public ClaimAction(string claimType, string valueType) => throw null; @@ -142,8 +142,8 @@ namespace Microsoft public string ValueType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ClaimActionCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimActionCollection` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -153,7 +153,7 @@ namespace Microsoft public void Remove(string claimType) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.CustomJsonClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.CustomJsonClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -161,14 +161,14 @@ namespace Microsoft public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.DeleteClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.DeleteClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.JsonKeyClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.JsonKeyClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class JsonKeyClaimAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction { public string JsonKey { get => throw null; } @@ -176,7 +176,7 @@ namespace Microsoft public override void Run(System.Text.Json.JsonElement userData, System.Security.Claims.ClaimsIdentity identity, string issuer) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.JsonSubKeyClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.JsonSubKeyClaimAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -184,7 +184,7 @@ namespace Microsoft public string SubKey { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.MapAllClaimsAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.OAuth.Claims.MapAllClaimsAction` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MapAllClaimsAction : Microsoft.AspNetCore.Authentication.OAuth.Claims.ClaimAction { public MapAllClaimsAction() : base(default(string), default(string)) => throw null; @@ -199,16 +199,16 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.OAuthExtensions` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.OAuthExtensions` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class OAuthExtensions { - 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 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) => throw null; 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.OAuthPostConfigureOptions<,>` in `Microsoft.AspNetCore.Authentication.OAuth, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.OAuthPostConfigureOptions<,>` in `Microsoft.AspNetCore.Authentication.OAuth, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OAuthPostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where THandler : Microsoft.AspNetCore.Authentication.OAuth.OAuthHandler where TOptions : Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions, new() { public OAuthPostConfigureOptions(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtection) => 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 4355f36aac7..b4b89562fc0 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Authentication { - // Generated from `Microsoft.AspNetCore.Authentication.AccessDeniedContext` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AccessDeniedContext` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AccessDeniedContext : Microsoft.AspNetCore.Authentication.HandleRequestContext { 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; @@ -16,18 +16,18 @@ namespace Microsoft public string ReturnUrlParameter { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationBuilder` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationBuilder` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, 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 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 AuthenticationBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public virtual Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationHandler<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationHandler<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class AuthenticationHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() { public System.Threading.Tasks.Task AuthenticateAsync() => throw null; @@ -61,7 +61,7 @@ namespace Microsoft protected System.Text.Encodings.Web.UrlEncoder UrlEncoder { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationMiddleware` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationMiddleware` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationMiddleware { public AuthenticationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes) => throw null; @@ -69,7 +69,7 @@ namespace Microsoft public Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider Schemes { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationSchemeOptions { public AuthenticationSchemeOptions() => throw null; @@ -83,18 +83,18 @@ namespace Microsoft 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 virtual void Validate(string scheme) => throw null; public virtual void Validate() => throw null; + public virtual void Validate(string scheme) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.Base64UrlTextEncoder` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.Base64UrlTextEncoder` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class Base64UrlTextEncoder { public static System.Byte[] Decode(string text) => throw null; public static string Encode(System.Byte[] data) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.BaseContext<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.BaseContext<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -105,7 +105,7 @@ namespace Microsoft public Microsoft.AspNetCore.Authentication.AuthenticationScheme Scheme { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.HandleRequestContext<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.HandleRequestContext<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -114,13 +114,13 @@ namespace Microsoft public void SkipHandler() => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.HandleRequestResult` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.HandleRequestResult` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HandleRequestResult : Microsoft.AspNetCore.Authentication.AuthenticateResult { - public static Microsoft.AspNetCore.Authentication.HandleRequestResult Fail(string failureMessage, 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(System.Exception failure, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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; } @@ -130,35 +130,35 @@ namespace Microsoft public static Microsoft.AspNetCore.Authentication.HandleRequestResult Success(Microsoft.AspNetCore.Authentication.AuthenticationTicket ticket) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.IDataSerializer<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.IDataSerializer<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDataSerializer { TModel Deserialize(System.Byte[] data); System.Byte[] Serialize(TModel model); } - // Generated from `Microsoft.AspNetCore.Authentication.ISecureDataFormat<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.ISecureDataFormat<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISecureDataFormat { - string Protect(TData data, string purpose); string Protect(TData data); - TData Unprotect(string protectedText, string purpose); + string Protect(TData data, string purpose); TData Unprotect(string protectedText); + TData Unprotect(string protectedText, string purpose); } - // Generated from `Microsoft.AspNetCore.Authentication.ISystemClock` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.ISystemClock` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISystemClock { System.DateTimeOffset UtcNow { get; } } - // Generated from `Microsoft.AspNetCore.Authentication.JsonDocumentAuthExtensions` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.JsonDocumentAuthExtensions` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class JsonDocumentAuthExtensions { public static string GetString(this System.Text.Json.JsonElement element, string key) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.PolicySchemeHandler` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.PolicySchemeHandler` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PolicySchemeHandler : Microsoft.AspNetCore.Authentication.SignInAuthenticationHandler { protected override System.Threading.Tasks.Task HandleAuthenticateAsync() => throw null; @@ -169,33 +169,33 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Authentication.PolicySchemeOptions` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.PolicySchemeOptions` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PolicySchemeOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { public PolicySchemeOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.PrincipalContext<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.PrincipalContext<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Authentication.PropertiesContext<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.PropertiesContext<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Authentication.PropertiesDataFormat` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.PropertiesDataFormat` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Authentication.PropertiesSerializer` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.PropertiesSerializer` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PropertiesSerializer : Microsoft.AspNetCore.Authentication.IDataSerializer { public static Microsoft.AspNetCore.Authentication.PropertiesSerializer Default { get => throw null; } @@ -206,25 +206,25 @@ namespace Microsoft public virtual void Write(System.IO.BinaryWriter writer, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.RedirectContext<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.RedirectContext<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.RemoteAuthenticationContext<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class RemoteAuthenticationContext : Microsoft.AspNetCore.Authentication.HandleRequestContext where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { - public void Fail(string failureMessage) => 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 void Success() => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RemoteAuthenticationEvents { public virtual System.Threading.Tasks.Task AccessDenied(Microsoft.AspNetCore.Authentication.AccessDeniedContext context) => throw null; @@ -236,8 +236,8 @@ namespace Microsoft public virtual System.Threading.Tasks.Task TicketReceived(Microsoft.AspNetCore.Authentication.TicketReceivedContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class RemoteAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions, new() + // Generated from `Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 Microsoft.AspNetCore.Authentication.RemoteAuthenticationEvents Events { get => throw null; set => throw null; } @@ -253,7 +253,7 @@ namespace Microsoft protected virtual bool ValidateCorrelationId(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RemoteAuthenticationOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { public Microsoft.AspNetCore.Http.PathString AccessDeniedPath { get => throw null; set => throw null; } @@ -269,11 +269,11 @@ namespace Microsoft 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(string scheme) => throw null; public override void Validate() => throw null; + public override void Validate(string scheme) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.RemoteFailureContext` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.RemoteFailureContext` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RemoteFailureContext : Microsoft.AspNetCore.Authentication.HandleRequestContext { public System.Exception Failure { get => throw null; set => throw null; } @@ -281,7 +281,7 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Authentication.RequestPathBaseCookieBuilder` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.RequestPathBaseCookieBuilder` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RequestPathBaseCookieBuilder : Microsoft.AspNetCore.Http.CookieBuilder { protected virtual string AdditionalPath { get => throw null; } @@ -289,11 +289,11 @@ namespace Microsoft public RequestPathBaseCookieBuilder() => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.ResultContext<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.ResultContext<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ResultContext : Microsoft.AspNetCore.Authentication.BaseContext where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { - public void Fail(string failureMessage) => 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; } @@ -302,53 +302,53 @@ namespace Microsoft public void Success() => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.SecureDataFormat<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.SecureDataFormat<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SecureDataFormat : Microsoft.AspNetCore.Authentication.ISecureDataFormat { - public string Protect(TData data, string purpose) => 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, string purpose) => throw null; public TData Unprotect(string protectedText) => throw null; + public TData Unprotect(string protectedText, string purpose) => throw null; } - // Generated from `Microsoft.AspNetCore.Authentication.SignInAuthenticationHandler<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class SignInAuthenticationHandler : Microsoft.AspNetCore.Authentication.SignOutAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignInHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() + // Generated from `Microsoft.AspNetCore.Authentication.SignInAuthenticationHandler<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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() { 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; } - // Generated from `Microsoft.AspNetCore.Authentication.SignOutAuthenticationHandler<>` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class SignOutAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() + // Generated from `Microsoft.AspNetCore.Authentication.SignOutAuthenticationHandler<>` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public abstract class SignOutAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationHandler, Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler where TOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions, new() { 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; } - // Generated from `Microsoft.AspNetCore.Authentication.SystemClock` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.SystemClock` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SystemClock : Microsoft.AspNetCore.Authentication.ISystemClock { public SystemClock() => throw null; public System.DateTimeOffset UtcNow { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authentication.TicketDataFormat` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.TicketDataFormat` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Authentication.TicketReceivedContext` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.TicketReceivedContext` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Authentication.TicketSerializer` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authentication.TicketSerializer` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TicketSerializer : Microsoft.AspNetCore.Authentication.IDataSerializer { public static Microsoft.AspNetCore.Authentication.TicketSerializer Default { get => throw null; } @@ -366,7 +366,7 @@ namespace Microsoft } namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.AuthAppBuilderExtensions` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.AuthAppBuilderExtensions` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AuthAppBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseAuthentication(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; @@ -378,12 +378,12 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.AuthenticationServiceCollectionExtensions` in `Microsoft.AspNetCore.Authentication, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.AuthenticationServiceCollectionExtensions` in `Microsoft.AspNetCore.Authentication, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AuthenticationServiceCollectionExtensions { - 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; 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; } } 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 145ae1120f0..9a16deeb178 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 @@ -6,14 +6,14 @@ namespace Microsoft { namespace Authorization { - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationMiddleware` in `Microsoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationMiddleware` in `Microsoft.AspNetCore.Authorization.Policy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthorizationMiddleware { public AuthorizationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider) => throw null; public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationMiddlewareResultHandler` in `Microsoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationMiddlewareResultHandler` in `Microsoft.AspNetCore.Authorization.Policy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); @@ -21,34 +21,34 @@ namespace Microsoft namespace Policy { - // Generated from `Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler` in `Microsoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler` in `Microsoft.AspNetCore.Authorization.Policy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthorizationMiddlewareResultHandler : Microsoft.AspNetCore.Authorization.IAuthorizationMiddlewareResultHandler { 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; } - // Generated from `Microsoft.AspNetCore.Authorization.Policy.IPolicyEvaluator` in `Microsoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Policy.IPolicyEvaluator` in `Microsoft.AspNetCore.Authorization.Policy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult` in `Microsoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult` in `Microsoft.AspNetCore.Authorization.Policy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PolicyAuthorizationResult { public Microsoft.AspNetCore.Authorization.AuthorizationFailure AuthorizationFailure { get => throw null; } public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Challenge() => throw null; public bool Challenged { get => throw null; } - public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Forbid(Microsoft.AspNetCore.Authorization.AuthorizationFailure authorizationFailure) => throw null; public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Forbid() => throw null; + public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Forbid(Microsoft.AspNetCore.Authorization.AuthorizationFailure authorizationFailure) => throw null; public bool Forbidden { get => throw null; } public bool Succeeded { get => throw null; } public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Success() => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.Policy.PolicyEvaluator` in `Microsoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Policy.PolicyEvaluator` in `Microsoft.AspNetCore.Authorization.Policy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -60,19 +60,19 @@ namespace Microsoft } namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.AuthorizationAppBuilderExtensions` in `Microsoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.AuthorizationAppBuilderExtensions` in `Microsoft.AspNetCore.Authorization.Policy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AuthorizationAppBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseAuthorization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.AuthorizationEndpointConventionBuilderExtensions` in `Microsoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.AuthorizationEndpointConventionBuilderExtensions` in `Microsoft.AspNetCore.Authorization.Policy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AuthorizationEndpointConventionBuilderExtensions { public static TBuilder AllowAnonymous(this TBuilder builder) 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) 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; } } @@ -81,11 +81,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.PolicyServiceCollectionExtensions` in `Microsoft.AspNetCore.Authorization.Policy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.PolicyServiceCollectionExtensions` in `Microsoft.AspNetCore.Authorization.Policy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class PolicyServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; 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.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 927b2657064..8c9e27c0a17 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 @@ -6,22 +6,32 @@ namespace Microsoft { namespace Authorization { - // Generated from `Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AllowAnonymousAttribute : System.Attribute, Microsoft.AspNetCore.Authorization.IAllowAnonymous { public AllowAnonymousAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationFailure` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationFailure` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthorizationFailure { public static Microsoft.AspNetCore.Authorization.AuthorizationFailure ExplicitFail() => throw null; public bool FailCalled { get => throw null; } + public static Microsoft.AspNetCore.Authorization.AuthorizationFailure Failed(System.Collections.Generic.IEnumerable reasons) => throw null; public static Microsoft.AspNetCore.Authorization.AuthorizationFailure Failed(System.Collections.Generic.IEnumerable failed) => throw null; public System.Collections.Generic.IEnumerable FailedRequirements { get => throw null; } + public System.Collections.Generic.IEnumerable FailureReasons { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationHandler<,>` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationFailureReason` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } + } + + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationHandler<,>` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class AuthorizationHandler : Microsoft.AspNetCore.Authorization.IAuthorizationHandler where TRequirement : Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { protected AuthorizationHandler() => throw null; @@ -29,7 +39,7 @@ namespace Microsoft protected abstract System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, TRequirement requirement, TResource resource); } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationHandler<>` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationHandler<>` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class AuthorizationHandler : Microsoft.AspNetCore.Authorization.IAuthorizationHandler where TRequirement : Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { protected AuthorizationHandler() => throw null; @@ -37,11 +47,13 @@ namespace Microsoft protected abstract System.Threading.Tasks.Task HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context, TRequirement requirement); } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthorizationHandlerContext { public AuthorizationHandlerContext(System.Collections.Generic.IEnumerable requirements, System.Security.Claims.ClaimsPrincipal user, object resource) => throw null; public virtual void Fail() => throw null; + public virtual void Fail(Microsoft.AspNetCore.Authorization.AuthorizationFailureReason reason) => throw null; + public virtual System.Collections.Generic.IEnumerable FailureReasons { get => throw null; } public virtual bool HasFailed { get => throw null; } public virtual bool HasSucceeded { get => throw null; } public virtual System.Collections.Generic.IEnumerable PendingRequirements { get => throw null; } @@ -51,7 +63,7 @@ namespace Microsoft public virtual System.Security.Claims.ClaimsPrincipal User { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationOptions` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationOptions` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthorizationOptions { public void AddPolicy(string name, System.Action configurePolicy) => throw null; @@ -63,90 +75,90 @@ namespace Microsoft public bool InvokeHandlersAfterFailure { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationPolicy` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationPolicy` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(params Microsoft.AspNetCore.Authorization.AuthorizationPolicy[] policies) => 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 System.Threading.Tasks.Task CombineAsync(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.Collections.Generic.IEnumerable authorizeData) => throw null; public System.Collections.Generic.IReadOnlyList Requirements { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(params string[] authenticationSchemes) => throw null; public AuthorizationPolicyBuilder(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => throw null; + public AuthorizationPolicyBuilder(params string[] authenticationSchemes) => throw null; 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 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, params string[] allowedValues) => 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 Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireRole(params string[] 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, params string[] allowedValues) => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireRole(System.Collections.Generic.IEnumerable roles) => throw null; + public Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder RequireRole(params string[] 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; } } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationResult` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationResult` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthorizationResult { - public static Microsoft.AspNetCore.Authorization.AuthorizationResult Failed(Microsoft.AspNetCore.Authorization.AuthorizationFailure failure) => throw null; public static Microsoft.AspNetCore.Authorization.AuthorizationResult Failed() => throw null; + public static Microsoft.AspNetCore.Authorization.AuthorizationResult Failed(Microsoft.AspNetCore.Authorization.AuthorizationFailure failure) => 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; } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationServiceExtensions` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizationServiceExtensions` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AuthorizationServiceExtensions { - public static System.Threading.Tasks.Task AuthorizeAsync(this Microsoft.AspNetCore.Authorization.IAuthorizationService service, System.Security.Claims.ClaimsPrincipal user, string policyName) => 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, 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, string policyName) => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.AuthorizeAttribute` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.AuthorizeAttribute` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthorizeAttribute : System.Attribute, Microsoft.AspNetCore.Authorization.IAuthorizeData { public string AuthenticationSchemes { get => throw null; set => throw null; } - public AuthorizeAttribute(string policy) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationEvaluator` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationEvaluator` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultAuthorizationEvaluator : Microsoft.AspNetCore.Authorization.IAuthorizationEvaluator { public DefaultAuthorizationEvaluator() => throw null; public Microsoft.AspNetCore.Authorization.AuthorizationResult Evaluate(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationHandlerContextFactory` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationHandlerContextFactory` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationHandlerProvider` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationHandlerProvider` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationPolicyProvider` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationPolicyProvider` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultAuthorizationPolicyProvider : Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider { public DefaultAuthorizationPolicyProvider(Microsoft.Extensions.Options.IOptions options) => throw null; @@ -155,39 +167,39 @@ namespace Microsoft public virtual System.Threading.Tasks.Task GetPolicyAsync(string policyName) => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationService` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.DefaultAuthorizationService` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultAuthorizationService : Microsoft.AspNetCore.Authorization.IAuthorizationService { - public virtual System.Threading.Tasks.Task AuthorizeAsync(System.Security.Claims.ClaimsPrincipal user, object resource, string policyName) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationEvaluator` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationEvaluator` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthorizationEvaluator { Microsoft.AspNetCore.Authorization.AuthorizationResult Evaluate(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context); } - // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationHandler` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationHandler` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthorizationHandler { System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context); } - // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationHandlerContextFactory` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationHandlerContextFactory` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthorizationHandlerContextFactory { Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext CreateContext(System.Collections.Generic.IEnumerable requirements, System.Security.Claims.ClaimsPrincipal user, object resource); } - // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationHandlerProvider` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationHandlerProvider` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthorizationHandlerProvider { System.Threading.Tasks.Task> GetHandlersAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context); } - // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthorizationPolicyProvider { System.Threading.Tasks.Task GetDefaultPolicyAsync(); @@ -195,31 +207,31 @@ namespace Microsoft System.Threading.Tasks.Task GetPolicyAsync(string policyName); } - // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthorizationRequirement { } - // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationService` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizationService` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthorizationService { - System.Threading.Tasks.Task AuthorizeAsync(System.Security.Claims.ClaimsPrincipal user, object resource, string policyName); 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 { - // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.AssertionRequirement` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class AssertionRequirement : Microsoft.AspNetCore.Authorization.IAuthorizationRequirement, Microsoft.AspNetCore.Authorization.IAuthorizationHandler + // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.AssertionRequirement` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.ClaimsAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.ClaimsAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ClaimsAuthorizationRequirement : Microsoft.AspNetCore.Authorization.AuthorizationHandler, Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { public System.Collections.Generic.IEnumerable AllowedValues { get => throw null; } @@ -229,7 +241,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.DenyAnonymousAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.DenyAnonymousAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DenyAnonymousAuthorizationRequirement : Microsoft.AspNetCore.Authorization.AuthorizationHandler, Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { public DenyAnonymousAuthorizationRequirement() => throw null; @@ -237,7 +249,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.NameAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.NameAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -246,7 +258,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.OperationAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.OperationAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OperationAuthorizationRequirement : Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { public string Name { get => throw null; set => throw null; } @@ -254,14 +266,14 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.PassThroughAuthorizationHandler` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.PassThroughAuthorizationHandler` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PassThroughAuthorizationHandler : Microsoft.AspNetCore.Authorization.IAuthorizationHandler { public System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext context) => throw null; public PassThroughAuthorizationHandler() => throw null; } - // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.RolesAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.Infrastructure.RolesAuthorizationRequirement` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RolesAuthorizationRequirement : Microsoft.AspNetCore.Authorization.AuthorizationHandler, Microsoft.AspNetCore.Authorization.IAuthorizationRequirement { public System.Collections.Generic.IEnumerable AllowedRoles { get => throw null; } @@ -277,11 +289,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.AuthorizationServiceCollectionExtensions` in `Microsoft.AspNetCore.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.AuthorizationServiceCollectionExtensions` in `Microsoft.AspNetCore.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AuthorizationServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddAuthorizationCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; 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 dc923f4b660..9638f78aa9f 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 @@ -8,17 +8,17 @@ namespace Microsoft { namespace Authorization { - // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthenticationState` in `Microsoft.AspNetCore.Components.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthenticationState` in `Microsoft.AspNetCore.Components.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationState { public AuthenticationState(System.Security.Claims.ClaimsPrincipal user) => throw null; public System.Security.Claims.ClaimsPrincipal User { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler` in `Microsoft.AspNetCore.Components.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler` in `Microsoft.AspNetCore.Components.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate void AuthenticationStateChangedHandler(System.Threading.Tasks.Task task); - // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthenticationStateProvider` in `Microsoft.AspNetCore.Components.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthenticationStateProvider` in `Microsoft.AspNetCore.Components.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class AuthenticationStateProvider { public event Microsoft.AspNetCore.Components.Authorization.AuthenticationStateChangedHandler AuthenticationStateChanged; @@ -27,7 +27,7 @@ namespace Microsoft protected void NotifyAuthenticationStateChanged(System.Threading.Tasks.Task task) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView` in `Microsoft.AspNetCore.Components.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView` in `Microsoft.AspNetCore.Components.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthorizeRouteView : Microsoft.AspNetCore.Components.RouteView { public AuthorizeRouteView() => throw null; @@ -37,7 +37,7 @@ namespace Microsoft public object Resource { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthorizeView` in `Microsoft.AspNetCore.Components.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthorizeView` in `Microsoft.AspNetCore.Components.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthorizeView : Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore { public AuthorizeView() => throw null; @@ -46,7 +46,7 @@ namespace Microsoft public string Roles { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore` in `Microsoft.AspNetCore.Components.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore` in `Microsoft.AspNetCore.Components.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class AuthorizeViewCore : Microsoft.AspNetCore.Components.ComponentBase { protected AuthorizeViewCore() => throw null; @@ -60,7 +60,7 @@ namespace Microsoft public object Resource { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState` in `Microsoft.AspNetCore.Components.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState` in `Microsoft.AspNetCore.Components.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CascadingAuthenticationState : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder) => throw null; @@ -70,7 +70,7 @@ namespace Microsoft protected override void OnInitialized() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Authorization.IHostEnvironmentAuthenticationStateProvider` in `Microsoft.AspNetCore.Components.Authorization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Authorization.IHostEnvironmentAuthenticationStateProvider` in `Microsoft.AspNetCore.Components.Authorization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 aa24db2ad76..304952c995c 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 @@ -8,26 +8,29 @@ namespace Microsoft { namespace Forms { - // Generated from `Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator` in `Microsoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DataAnnotationsValidator : Microsoft.AspNetCore.Components.ComponentBase + // Generated from `Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator` in `Microsoft.AspNetCore.Components.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; protected override void OnInitialized() => throw null; + protected override void OnParametersSet() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.EditContext` in `Microsoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.EditContext` in `Microsoft.AspNetCore.Components.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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() => throw null; + public bool IsModified() => throw null; public bool IsModified(System.Linq.Expressions.Expression> accessor) => throw null; public bool IsModified(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; - public bool IsModified() => throw null; - public void MarkAsUnmodified(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 NotifyValidationStateChanged() => throw null; @@ -38,13 +41,14 @@ namespace Microsoft public bool Validate() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions` in `Microsoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions` in `Microsoft.AspNetCore.Components.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Components.Forms.EditContextProperties` in `Microsoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.EditContextProperties` in `Microsoft.AspNetCore.Components.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EditContextProperties { public EditContextProperties() => throw null; @@ -53,49 +57,49 @@ namespace Microsoft public bool TryGetValue(object key, out object value) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.FieldChangedEventArgs` in `Microsoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.FieldChangedEventArgs` in `Microsoft.AspNetCore.Components.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FieldChangedEventArgs : System.EventArgs { public FieldChangedEventArgs(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) => throw null; public Microsoft.AspNetCore.Components.Forms.FieldIdentifier FieldIdentifier { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Forms.FieldIdentifier` in `Microsoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.FieldIdentifier` in `Microsoft.AspNetCore.Components.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct FieldIdentifier : System.IEquatable { public static Microsoft.AspNetCore.Components.Forms.FieldIdentifier Create(System.Linq.Expressions.Expression> accessor) => throw null; - public override bool Equals(object obj) => throw null; public bool Equals(Microsoft.AspNetCore.Components.Forms.FieldIdentifier otherIdentifier) => throw null; - public FieldIdentifier(object model, string fieldName) => throw null; + public override bool Equals(object obj) => throw null; // Stub generator skipped constructor + public FieldIdentifier(object model, string fieldName) => throw null; public string FieldName { get => throw null; } public override int GetHashCode() => throw null; public object Model { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationMessageStore` in `Microsoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationMessageStore` in `Microsoft.AspNetCore.Components.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationMessageStore { - public void Add(System.Linq.Expressions.Expression> accessor, string message) => throw null; public void Add(System.Linq.Expressions.Expression> accessor, System.Collections.Generic.IEnumerable messages) => throw null; - public void Add(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 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 void Clear() => 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 ValidationMessageStore(Microsoft.AspNetCore.Components.Forms.EditContext editContext) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs` in `Microsoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs` in `Microsoft.AspNetCore.Components.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationRequestedEventArgs : System.EventArgs { public static Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs Empty; public ValidationRequestedEventArgs() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs` in `Microsoft.AspNetCore.Components.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs` in `Microsoft.AspNetCore.Components.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationStateChangedEventArgs : System.EventArgs { 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 c4efaa09780..085468327de 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,19 +6,19 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ComponentEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + // Generated from `Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ComponentEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder { public void Add(System.Action convention) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.ComponentEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ComponentEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ComponentEndpointRouteBuilderExtensions { - public static Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string path, 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) => 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, string path, System.Action configureOptions) => throw null; } } @@ -26,7 +26,7 @@ namespace Microsoft { namespace Server { - // Generated from `Microsoft.AspNetCore.Components.Server.CircuitOptions` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Server.CircuitOptions` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CircuitOptions { public CircuitOptions() => throw null; @@ -35,9 +35,18 @@ namespace Microsoft 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 Microsoft.AspNetCore.Components.Server.CircuitRootComponentOptions RootComponents { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Server.RevalidatingServerAuthenticationStateProvider` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Server.CircuitRootComponentOptions` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } + } + + // Generated from `Microsoft.AspNetCore.Components.Server.RevalidatingServerAuthenticationStateProvider` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class RevalidatingServerAuthenticationStateProvider : Microsoft.AspNetCore.Components.Server.ServerAuthenticationStateProvider, System.IDisposable { void System.IDisposable.Dispose() => throw null; @@ -47,7 +56,7 @@ namespace Microsoft protected abstract System.Threading.Tasks.Task ValidateAuthenticationStateAsync(Microsoft.AspNetCore.Components.Authorization.AuthenticationState authenticationState, System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Components.Server.ServerAuthenticationStateProvider` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Server.ServerAuthenticationStateProvider` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ServerAuthenticationStateProvider : Microsoft.AspNetCore.Components.Authorization.AuthenticationStateProvider, Microsoft.AspNetCore.Components.Authorization.IHostEnvironmentAuthenticationStateProvider { public override System.Threading.Tasks.Task GetAuthenticationStateAsync() => throw null; @@ -57,13 +66,13 @@ namespace Microsoft namespace Circuits { - // Generated from `Microsoft.AspNetCore.Components.Server.Circuits.Circuit` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Server.Circuits.Circuit` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class Circuit { public string Id { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class CircuitHandler { protected CircuitHandler() => throw null; @@ -77,18 +86,18 @@ namespace Microsoft } namespace ProtectedBrowserStorage { - // Generated from `Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedBrowserStorage` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedBrowserStorage` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ProtectedBrowserStorage { public System.Threading.Tasks.ValueTask DeleteAsync(string key) => throw null; - public System.Threading.Tasks.ValueTask> GetAsync(string purpose, 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 purpose, string key, object value) => 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; } - // Generated from `Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedBrowserStorageResult<>` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedBrowserStorageResult<>` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ProtectedBrowserStorageResult { // Stub generator skipped constructor @@ -96,13 +105,13 @@ namespace Microsoft public TValue Value { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedLocalStorage` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedLocalStorage` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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; } - // Generated from `Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedSessionStorage` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.ProtectedSessionStorage` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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; @@ -116,19 +125,19 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.ComponentServiceCollectionExtensions` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ComponentServiceCollectionExtensions` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ComponentServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddServerSideBlazor(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure = default(System.Action)) => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServerSideBlazorBuilder { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - // Generated from `Microsoft.Extensions.DependencyInjection.ServerSideBlazorBuilderExtensions` in `Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ServerSideBlazorBuilderExtensions` in `Microsoft.AspNetCore.Components.Server, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ServerSideBlazorBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddCircuitOptions(this Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder builder, System.Action configure) => throw null; @@ -138,13 +147,3 @@ namespace Microsoft } } } -namespace System -{ - namespace Buffers - { - /* Duplicate type 'SequenceReader<>' is not stubbed in this assembly 'Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'SequenceReaderExtensions' is not stubbed in this assembly 'Microsoft.AspNetCore.Components.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - } -} 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 6f141ce88a5..11280568ca1 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Components { - // Generated from `Microsoft.AspNetCore.Components.BindInputElementAttribute` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.BindInputElementAttribute` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindInputElementAttribute : System.Attribute { public BindInputElementAttribute(string type, string suffix, string valueAttribute, string changeAttribute, bool isInvariantCulture, string format) => throw null; @@ -18,13 +18,14 @@ namespace Microsoft public string ValueAttribute { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.ElementReferenceExtensions` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.ElementReferenceExtensions` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Components.WebElementReferenceContext` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.WebElementReferenceContext` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WebElementReferenceContext : Microsoft.AspNetCore.Components.ElementReferenceContext { public WebElementReferenceContext(Microsoft.JSInterop.IJSRuntime jsRuntime) => throw null; @@ -32,21 +33,21 @@ namespace Microsoft namespace Forms { - // Generated from `Microsoft.AspNetCore.Components.Forms.BrowserFileExtensions` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.BrowserFileExtensions` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class BrowserFileExtensions { - public static System.Threading.Tasks.ValueTask RequestImageFileAsync(this Microsoft.AspNetCore.Components.Forms.IBrowserFile browserFile, string format, int maxWith, int maxHeight) => throw null; + public static System.Threading.Tasks.ValueTask RequestImageFileAsync(this Microsoft.AspNetCore.Components.Forms.IBrowserFile browserFile, string format, int maxWidth, int maxHeight) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.EditContextFieldClassExtensions` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.EditContextFieldClassExtensions` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EditContextFieldClassExtensions { - 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, 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 void SetFieldCssClassProvider(this Microsoft.AspNetCore.Components.Forms.EditContext editContext, Microsoft.AspNetCore.Components.Forms.FieldCssClassProvider fieldCssClassProvider) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.EditForm` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.EditForm` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EditForm : Microsoft.AspNetCore.Components.ComponentBase { public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } @@ -61,14 +62,14 @@ namespace Microsoft public Microsoft.AspNetCore.Components.EventCallback OnValidSubmit { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Forms.FieldCssClassProvider` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.FieldCssClassProvider` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Components.Forms.IBrowserFile` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.IBrowserFile` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IBrowserFile { string ContentType { get; } @@ -78,12 +79,12 @@ namespace Microsoft System.Int64 Size { get; } } - // Generated from `Microsoft.AspNetCore.Components.Forms.IInputFileJsCallbacks` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.IInputFileJsCallbacks` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IInputFileJsCallbacks { } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputBase<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputBase<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class InputBase : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } @@ -104,37 +105,51 @@ namespace Microsoft public System.Linq.Expressions.Expression> ValueExpression { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputCheckbox` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputCheckbox` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; protected override bool TryParseValueFromString(string value, out bool result, out string validationErrorMessage) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputDate<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputDate<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; + protected override void OnParametersSet() => throw null; public string ParsingErrorMessage { get => throw null; set => throw null; } 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; } } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputFile` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputDateType` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public enum InputDateType + { + Date, + DateTimeLocal, + Month, + Time, + } + + // Generated from `Microsoft.AspNetCore.Components.Forms.InputFile` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InputFile : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { public System.Collections.Generic.IDictionary AdditionalAttributes { get => throw null; set => throw null; } 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; protected override System.Threading.Tasks.Task OnAfterRenderAsync(bool firstRender) => throw null; public Microsoft.AspNetCore.Components.EventCallback OnChange { get => throw null; set => throw null; } protected override void OnInitialized() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputFileChangeEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputFileChangeEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InputFileChangeEventArgs : System.EventArgs { public Microsoft.AspNetCore.Components.Forms.IBrowserFile File { get => throw null; } @@ -143,17 +158,18 @@ namespace Microsoft public InputFileChangeEventArgs(System.Collections.Generic.IReadOnlyList files) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputNumber<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputNumber<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } protected override bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputRadio<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputRadio<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InputRadio : Microsoft.AspNetCore.Components.ComponentBase { public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } @@ -164,7 +180,7 @@ namespace Microsoft public TValue Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputRadioGroup<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputRadioGroup<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InputRadioGroup : Microsoft.AspNetCore.Components.Forms.InputBase { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => throw null; @@ -175,32 +191,36 @@ namespace Microsoft protected override bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputSelect<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputSelect<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 InputSelect() => throw null; protected override bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputText` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputText` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; protected override bool TryParseValueFromString(string value, out string result, out string validationErrorMessage) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.InputTextArea` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.InputTextArea` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; protected override bool TryParseValueFromString(string value, out string result, out string validationErrorMessage) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RemoteBrowserFileStreamOptions { public int MaxBufferSize { get => throw null; set => throw null; } @@ -209,7 +229,7 @@ namespace Microsoft public System.TimeSpan SegmentFetchTimeout { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationMessage<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationMessage<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationMessage : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } @@ -221,7 +241,7 @@ namespace Microsoft public ValidationMessage() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationSummary` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Forms.ValidationSummary` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationSummary : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get => throw null; set => throw null; } @@ -236,20 +256,39 @@ namespace Microsoft } namespace RenderTree { - // Generated from `Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WebEventDescriptor { - public int BrowserRendererId { get => throw null; set => throw null; } - public string EventArgsType { get => throw null; set => throw null; } 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; } + // Generated from `Microsoft.AspNetCore.Components.RenderTree.WebRenderer` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public abstract class WebRenderer : Microsoft.AspNetCore.Components.RenderTree.Renderer + { + protected internal 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; + } + } namespace Routing { - // Generated from `Microsoft.AspNetCore.Components.Routing.NavLink` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Routing.FocusOnNavigate` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class FocusOnNavigate : Microsoft.AspNetCore.Components.ComponentBase + { + 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; } + } + + // Generated from `Microsoft.AspNetCore.Components.Routing.NavLink` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NavLink : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { public string ActiveClass { get => throw null; set => throw null; } @@ -264,7 +303,7 @@ namespace Microsoft protected override void OnParametersSet() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Routing.NavLinkMatch` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Routing.NavLinkMatch` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum NavLinkMatch { All, @@ -274,19 +313,19 @@ namespace Microsoft } namespace Web { - // Generated from `Microsoft.AspNetCore.Components.Web.BindAttributes` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.BindAttributes` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class BindAttributes { } - // Generated from `Microsoft.AspNetCore.Components.Web.ClipboardEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.ClipboardEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ClipboardEventArgs : System.EventArgs { public ClipboardEventArgs() => throw null; public string Type { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.DataTransfer` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.DataTransfer` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DataTransfer { public DataTransfer() => throw null; @@ -297,7 +336,7 @@ namespace Microsoft public string[] Types { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.DataTransferItem` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.DataTransferItem` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DataTransferItem { public DataTransferItem() => throw null; @@ -305,14 +344,22 @@ namespace Microsoft public string Type { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.DragEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.DragEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Components.Web.ErrorEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.ErrorBoundary` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Components.Web.ErrorEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ErrorEventArgs : System.EventArgs { public int Colno { get => throw null; set => throw null; } @@ -323,19 +370,62 @@ namespace Microsoft public string Type { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.EventHandlers` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.EventHandlers` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EventHandlers { } - // Generated from `Microsoft.AspNetCore.Components.Web.FocusEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.FocusEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FocusEventArgs : System.EventArgs { public FocusEventArgs() => throw null; public string Type { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.KeyboardEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.HeadContent` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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 HeadContent() => throw null; + } + + // Generated from `Microsoft.AspNetCore.Components.Web.HeadOutlet` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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; + } + + // Generated from `Microsoft.AspNetCore.Components.Web.IErrorBoundaryLogger` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IErrorBoundaryLogger + { + System.Threading.Tasks.ValueTask LogErrorAsync(System.Exception exception); + } + + // Generated from `Microsoft.AspNetCore.Components.Web.IJSComponentConfiguration` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IJSComponentConfiguration + { + Microsoft.AspNetCore.Components.Web.JSComponentConfigurationStore JSComponents { get; } + } + + // Generated from `Microsoft.AspNetCore.Components.Web.JSComponentConfigurationExtensions` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Components.Web.JSComponentConfigurationStore` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class JSComponentConfigurationStore + { + public JSComponentConfigurationStore() => throw null; + } + + // Generated from `Microsoft.AspNetCore.Components.Web.KeyboardEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class KeyboardEventArgs : System.EventArgs { public bool AltKey { get => throw null; set => throw null; } @@ -350,7 +440,7 @@ namespace Microsoft public string Type { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.MouseEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.MouseEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MouseEventArgs : System.EventArgs { public bool AltKey { get => throw null; set => throw null; } @@ -364,13 +454,23 @@ namespace Microsoft public MouseEventArgs() => 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; } } - // Generated from `Microsoft.AspNetCore.Components.Web.PointerEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.PageTitle` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Components.Web.PointerEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PointerEventArgs : Microsoft.AspNetCore.Components.Web.MouseEventArgs { public float Height { get => throw null; set => throw null; } @@ -384,7 +484,7 @@ namespace Microsoft public float Width { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.ProgressEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.ProgressEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ProgressEventArgs : System.EventArgs { public bool LengthComputable { get => throw null; set => throw null; } @@ -394,7 +494,7 @@ namespace Microsoft public string Type { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.TouchEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.TouchEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TouchEventArgs : System.EventArgs { public bool AltKey { get => throw null; set => throw null; } @@ -409,7 +509,7 @@ namespace Microsoft public string Type { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.TouchPoint` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.TouchPoint` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TouchPoint { public double ClientX { get => throw null; set => throw null; } @@ -422,39 +522,39 @@ namespace Microsoft public TouchPoint() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class WebEventCallbackFactoryEventArgsExtensions { - 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 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; } - // Generated from `Microsoft.AspNetCore.Components.Web.WebRenderTreeBuilderExtensions` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.WebRenderTreeBuilderExtensions` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Components.Web.WheelEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.WheelEventArgs` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WheelEventArgs : Microsoft.AspNetCore.Components.Web.MouseEventArgs { public System.Int64 DeltaMode { get => throw null; set => throw null; } @@ -464,45 +564,57 @@ namespace Microsoft public WheelEventArgs() => throw null; } + namespace Infrastructure + { + // Generated from `Microsoft.AspNetCore.Components.Web.Infrastructure.JSComponentInterop` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class JSComponentInterop + { + protected internal 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; + } + + } namespace Virtualization { - // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.IVirtualizeJsCallbacks` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.IVirtualizeJsCallbacks` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IVirtualizeJsCallbacks { } - // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate System.Threading.Tasks.ValueTask> ItemsProviderDelegate(Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest request); - // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ItemsProviderRequest { public System.Threading.CancellationToken CancellationToken { get => throw null; } public int Count { get => throw null; } - public ItemsProviderRequest(int startIndex, int count, System.Threading.CancellationToken cancellationToken) => throw null; // Stub generator skipped constructor + public ItemsProviderRequest(int startIndex, int count, System.Threading.CancellationToken cancellationToken) => throw null; public int StartIndex { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderResult<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderResult<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ItemsProviderResult { public System.Collections.Generic.IEnumerable Items { get => throw null; } - public ItemsProviderResult(System.Collections.Generic.IEnumerable items, int totalItemCount) => throw null; // Stub generator skipped constructor + public ItemsProviderResult(System.Collections.Generic.IEnumerable items, int totalItemCount) => throw null; public int TotalItemCount { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.PlaceholderContext` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.PlaceholderContext` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct PlaceholderContext { public int Index { get => throw null; } - public PlaceholderContext(int index, float size = default(float)) => throw null; // Stub generator skipped constructor + public PlaceholderContext(int index, float size = default(float)) => throw null; public float Size { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize<>` in `Microsoft.AspNetCore.Components.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize<>` in `Microsoft.AspNetCore.Components.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class Virtualize : Microsoft.AspNetCore.Components.ComponentBase, System.IAsyncDisposable { protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) => 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 cf18277a5ef..71fd84b7ecf 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 @@ -6,60 +6,76 @@ namespace Microsoft { namespace Components { - // Generated from `Microsoft.AspNetCore.Components.BindConverter` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.BindConverter` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class BindConverter { - public static string FormatValue(string 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(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(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(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(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.DateTimeOffset 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; - public static string FormatValue(System.DateTime 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.DateTime 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? FormatValue(bool? 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; + public static string FormatValue(System.DateTime? 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.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.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; - public static bool TryConvertToDateTime(object obj, System.Globalization.CultureInfo culture, string format, out System.DateTime value) => throw null; + public static bool TryConvertToDateOnly(object obj, System.Globalization.CultureInfo culture, out System.DateOnly value) => throw null; + public static bool TryConvertToDateOnly(object obj, System.Globalization.CultureInfo culture, string format, out System.DateOnly value) => throw null; public static bool TryConvertToDateTime(object obj, System.Globalization.CultureInfo culture, out System.DateTime value) => throw null; - public static bool TryConvertToDateTimeOffset(object obj, System.Globalization.CultureInfo culture, string format, out System.DateTimeOffset value) => throw null; + 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 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 TryConvertToNullableBool(object obj, System.Globalization.CultureInfo culture, out bool? value) => throw null; - public static bool TryConvertToNullableDateTime(object obj, System.Globalization.CultureInfo culture, string format, out System.DateTime? 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; public static bool TryConvertToNullableDateTime(object obj, System.Globalization.CultureInfo culture, out System.DateTime? value) => throw null; - public static bool TryConvertToNullableDateTimeOffset(object obj, System.Globalization.CultureInfo culture, string format, out System.DateTimeOffset? value) => throw null; + 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 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 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 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; } - // Generated from `Microsoft.AspNetCore.Components.BindElementAttribute` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.BindElementAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindElementAttribute : System.Attribute { public BindElementAttribute(string element, string suffix, string valueAttribute, string changeAttribute) => throw null; @@ -69,14 +85,21 @@ namespace Microsoft public string ValueAttribute { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.CascadingParameterAttribute` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.CascadingParameterAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CascadingParameterAttribute : System.Attribute { public CascadingParameterAttribute() => throw null; public string Name { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.CascadingValue<>` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.CascadingTypeParameterAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class CascadingTypeParameterAttribute : System.Attribute + { + public CascadingTypeParameterAttribute(string name) => throw null; + public string Name { get => throw null; } + } + + // Generated from `Microsoft.AspNetCore.Components.CascadingValue<>` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CascadingValue : Microsoft.AspNetCore.Components.IComponent { public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; @@ -88,25 +111,25 @@ namespace Microsoft public TValue Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.ChangeEventArgs` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.ChangeEventArgs` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ChangeEventArgs : System.EventArgs { public ChangeEventArgs() => throw null; public object Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.ComponentBase` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class ComponentBase : Microsoft.AspNetCore.Components.IHandleEvent, Microsoft.AspNetCore.Components.IHandleAfterRender, Microsoft.AspNetCore.Components.IComponent + // Generated from `Microsoft.AspNetCore.Components.ComponentBase` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; public ComponentBase() => throw null; System.Threading.Tasks.Task Microsoft.AspNetCore.Components.IHandleEvent.HandleEventAsync(Microsoft.AspNetCore.Components.EventCallbackWorkItem callback, object arg) => throw null; - protected System.Threading.Tasks.Task InvokeAsync(System.Func workItem) => throw null; 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; - protected virtual System.Threading.Tasks.Task OnAfterRenderAsync(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; protected virtual void OnInitialized() => throw null; protected virtual System.Threading.Tasks.Task OnInitializedAsync() => throw null; protected virtual void OnParametersSet() => throw null; @@ -116,193 +139,243 @@ namespace Microsoft protected void StateHasChanged() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Dispatcher` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Dispatcher` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class Dispatcher { public void AssertAccess() => throw null; public abstract bool CheckAccess(); public static Microsoft.AspNetCore.Components.Dispatcher CreateDefault() => throw null; protected Dispatcher() => throw null; + public abstract System.Threading.Tasks.Task InvokeAsync(System.Action workItem); + public abstract System.Threading.Tasks.Task InvokeAsync(System.Func workItem); public abstract System.Threading.Tasks.Task InvokeAsync(System.Func workItem); public abstract System.Threading.Tasks.Task InvokeAsync(System.Func> workItem); - public abstract System.Threading.Tasks.Task InvokeAsync(System.Func workItem); - public abstract System.Threading.Tasks.Task InvokeAsync(System.Action workItem); protected void OnUnhandledException(System.UnhandledExceptionEventArgs e) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.ElementReference` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.DynamicComponent` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; + public System.Type Type { get => throw null; set => throw null; } + } + + // Generated from `Microsoft.AspNetCore.Components.EditorRequiredAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class EditorRequiredAttribute : System.Attribute + { + public EditorRequiredAttribute() => throw null; + } + + // Generated from `Microsoft.AspNetCore.Components.ElementReference` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ElementReference { public Microsoft.AspNetCore.Components.ElementReferenceContext Context { get => throw null; } - public ElementReference(string id, Microsoft.AspNetCore.Components.ElementReferenceContext context) => throw null; - public ElementReference(string id) => throw null; // Stub generator skipped constructor + public ElementReference(string id) => throw null; + public ElementReference(string id, Microsoft.AspNetCore.Components.ElementReferenceContext context) => throw null; public string Id { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.ElementReferenceContext` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.ElementReferenceContext` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ElementReferenceContext { protected ElementReferenceContext() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.EventCallback` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.ErrorBoundaryBase` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } + 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 abstract System.Threading.Tasks.Task OnErrorAsync(System.Exception exception); + public void Recover() => throw null; + } + + // Generated from `Microsoft.AspNetCore.Components.EventCallback` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct EventCallback { public static Microsoft.AspNetCore.Components.EventCallback Empty; - public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) => throw null; // Stub generator skipped constructor + public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) => throw null; public static 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; + public System.Threading.Tasks.Task InvokeAsync(object arg) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.EventCallback<>` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.EventCallback<>` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct EventCallback { public static Microsoft.AspNetCore.Components.EventCallback Empty; - public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) => throw null; // Stub generator skipped constructor + public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) => throw null; public bool HasDelegate { get => throw null; } - public System.Threading.Tasks.Task InvokeAsync(TValue arg) => throw null; public System.Threading.Tasks.Task InvokeAsync() => throw null; + public System.Threading.Tasks.Task InvokeAsync(TValue arg) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.EventCallbackFactory` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.EventCallbackFactory` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EventCallbackFactory { + 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.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.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 CreateInferred(object receiver, System.Func callback, TValue value) => 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; } - // Generated from `Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EventCallbackFactoryBinderExtensions { - 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.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.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, 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, 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, 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.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, 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, 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.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.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.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.Action setter, T existingValue, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.EventCallbackFactoryEventArgsExtensions` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.EventCallbackFactoryEventArgsExtensions` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EventCallbackFactoryEventArgsExtensions { - 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.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; } - // Generated from `Microsoft.AspNetCore.Components.EventCallbackWorkItem` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.EventCallbackWorkItem` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct EventCallbackWorkItem { public static Microsoft.AspNetCore.Components.EventCallbackWorkItem Empty; - public EventCallbackWorkItem(System.MulticastDelegate @delegate) => throw null; // Stub generator skipped constructor + public EventCallbackWorkItem(System.MulticastDelegate @delegate) => throw null; public System.Threading.Tasks.Task InvokeAsync(object arg) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.EventHandlerAttribute` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.EventHandlerAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EventHandlerAttribute : System.Attribute { public string AttributeName { get => 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, bool enableStopPropagation, bool enablePreventDefault) => throw null; public EventHandlerAttribute(string attributeName, System.Type eventArgsType) => throw null; + public EventHandlerAttribute(string attributeName, System.Type eventArgsType, bool enableStopPropagation, bool enablePreventDefault) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.ICascadingValueComponent` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.ICascadingValueComponent` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface ICascadingValueComponent { } - // Generated from `Microsoft.AspNetCore.Components.IComponent` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.IComponent` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IComponent { void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle); System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters); } - // Generated from `Microsoft.AspNetCore.Components.IComponentActivator` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.IComponentActivator` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IComponentActivator { Microsoft.AspNetCore.Components.IComponent CreateInstance(System.Type componentType); } - // Generated from `Microsoft.AspNetCore.Components.IEventCallback` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.IErrorBoundary` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + internal interface IErrorBoundary + { + } + + // Generated from `Microsoft.AspNetCore.Components.IEventCallback` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IEventCallback { bool HasDelegate { get; } } - // Generated from `Microsoft.AspNetCore.Components.IHandleAfterRender` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.IHandleAfterRender` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHandleAfterRender { System.Threading.Tasks.Task OnAfterRenderAsync(); } - // Generated from `Microsoft.AspNetCore.Components.IHandleEvent` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.IHandleEvent` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHandleEvent { System.Threading.Tasks.Task HandleEventAsync(Microsoft.AspNetCore.Components.EventCallbackWorkItem item, object arg); } - // Generated from `Microsoft.AspNetCore.Components.InjectAttribute` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.IPersistentComponentStateStore` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IPersistentComponentStateStore + { + System.Threading.Tasks.Task> GetPersistedStateAsync(); + System.Threading.Tasks.Task PersistStateAsync(System.Collections.Generic.IReadOnlyDictionary state); + } + + // Generated from `Microsoft.AspNetCore.Components.InjectAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InjectAttribute : System.Attribute { public InjectAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.LayoutAttribute` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.LayoutAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LayoutAttribute : System.Attribute { public LayoutAttribute(System.Type layoutType) => throw null; public System.Type LayoutType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.LayoutComponentBase` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.LayoutComponentBase` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Components.LayoutView` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.LayoutView` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LayoutView : Microsoft.AspNetCore.Components.IComponent { public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; @@ -312,38 +385,41 @@ namespace Microsoft public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.LocationChangeException` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.LocationChangeException` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LocationChangeException : System.Exception { public LocationChangeException(string message, System.Exception innerException) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.MarkupString` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.MarkupString` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct MarkupString { - public MarkupString(string value) => throw null; // 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; } - // Generated from `Microsoft.AspNetCore.Components.NavigationException` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.NavigationException` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NavigationException : System.Exception { public string Location { get => throw null; } public NavigationException(string uri) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.NavigationManager` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.NavigationManager` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class NavigationManager { public string BaseUri { get => throw null; set => throw null; } protected virtual void EnsureInitialized() => throw null; protected void Initialize(string baseUri, string uri) => throw null; public event System.EventHandler LocationChanged; - public void NavigateTo(string uri, bool forceLoad = default(bool)) => throw null; - protected abstract void NavigateToCore(string uri, bool forceLoad); + 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; public System.Uri ToAbsoluteUri(string relativeUri) => throw null; @@ -351,7 +427,43 @@ namespace Microsoft public string Uri { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.OwningComponentBase` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.NavigationManagerExtensions` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Components.NavigationOptions` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct NavigationOptions + { + public bool ForceLoad { get => throw null; set => throw null; } + // Stub generator skipped constructor + public bool ReplaceHistoryEntry { get => throw null; set => throw null; } + } + + // Generated from `Microsoft.AspNetCore.Components.OwningComponentBase` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class OwningComponentBase : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable { void System.IDisposable.Dispose() => throw null; @@ -361,21 +473,21 @@ namespace Microsoft protected System.IServiceProvider ScopedServices { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.OwningComponentBase<>` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.OwningComponentBase<>` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class OwningComponentBase : Microsoft.AspNetCore.Components.OwningComponentBase, System.IDisposable { protected OwningComponentBase() => throw null; protected TService Service { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.ParameterAttribute` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.ParameterAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ParameterAttribute : System.Attribute { public bool CaptureUnmatchedValues { get => throw null; set => throw null; } public ParameterAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.ParameterValue` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.ParameterValue` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ParameterValue { public bool Cascading { get => throw null; } @@ -384,11 +496,10 @@ namespace Microsoft public object Value { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.ParameterView` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.ParameterView` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ParameterView { - public static Microsoft.AspNetCore.Components.ParameterView Empty { get => throw null; } - // Generated from `Microsoft.AspNetCore.Components.ParameterView+Enumerator` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.ParameterView+Enumerator` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct Enumerator { public Microsoft.AspNetCore.Components.ParameterValue Current { get => throw null; } @@ -397,39 +508,56 @@ namespace Microsoft } + 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, TValue defaultValue) => 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; } - // Generated from `Microsoft.AspNetCore.Components.RenderFragment` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.PersistentComponentState` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Components.PersistingComponentStateSubscription` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct PersistingComponentStateSubscription : System.IDisposable + { + public void Dispose() => throw null; + // Stub generator skipped constructor + } + + // Generated from `Microsoft.AspNetCore.Components.RenderFragment` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate void RenderFragment(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder); - // Generated from `Microsoft.AspNetCore.Components.RenderFragment<>` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderFragment<>` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate Microsoft.AspNetCore.Components.RenderFragment RenderFragment(TValue value); - // Generated from `Microsoft.AspNetCore.Components.RenderHandle` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderHandle` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 } - // Generated from `Microsoft.AspNetCore.Components.RouteAttribute` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RouteAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteAttribute : System.Attribute { public RouteAttribute(string template) => throw null; public string Template { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.RouteData` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RouteData` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteData { public System.Type PageType { get => throw null; } @@ -437,7 +565,7 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyDictionary RouteValues { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.RouteView` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RouteView` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteView : Microsoft.AspNetCore.Components.IComponent { public void Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) => throw null; @@ -448,42 +576,61 @@ namespace Microsoft public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; } + // Generated from `Microsoft.AspNetCore.Components.SupplyParameterFromQueryAttribute` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class SupplyParameterFromQueryAttribute : System.Attribute + { + public string Name { get => throw null; set => throw null; } + public SupplyParameterFromQueryAttribute() => throw null; + } + namespace CompilerServices { - // Generated from `Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RuntimeHelpers { - 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, 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 T TypeCheck(T value) => throw null; } + } + namespace Infrastructure + { + // Generated from `Microsoft.AspNetCore.Components.Infrastructure.ComponentStatePersistenceManager` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ComponentStatePersistenceManager + { + public ComponentStatePersistenceManager(Microsoft.Extensions.Logging.ILogger logger) => throw null; + public System.Threading.Tasks.Task PersistStateAsync(Microsoft.AspNetCore.Components.IPersistentComponentStateStore store, Microsoft.AspNetCore.Components.RenderTree.Renderer renderer) => throw null; + public System.Threading.Tasks.Task RestoreStateAsync(Microsoft.AspNetCore.Components.IPersistentComponentStateStore store) => throw null; + public Microsoft.AspNetCore.Components.PersistentComponentState State { get => throw null; } + } + } namespace RenderTree { - // Generated from `Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment<>` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct ArrayBuilderSegment : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment<>` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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.IEnumerator System.Collections.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 T this[int index] { get => throw null; } public int Offset { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.RenderTree.ArrayRange<>` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderTree.ArrayRange<>` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ArrayRange { public T[] Array; - public ArrayRange(T[] array, int count) => throw null; // Stub generator skipped constructor + public ArrayRange(T[] array, int count) => throw null; public Microsoft.AspNetCore.Components.RenderTree.ArrayRange Clone() => throw null; public int Count; } - // Generated from `Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EventFieldInfo { public int ComponentId { get => throw null; set => throw null; } @@ -491,7 +638,7 @@ namespace Microsoft public object FieldValue { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderBatch` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderBatch` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct RenderBatch { public Microsoft.AspNetCore.Components.RenderTree.ArrayRange DisposedComponentIDs { get => throw null; } @@ -501,7 +648,7 @@ namespace Microsoft public Microsoft.AspNetCore.Components.RenderTree.ArrayRange UpdatedComponents { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct RenderTreeDiff { public int ComponentId; @@ -509,7 +656,7 @@ namespace Microsoft // Stub generator skipped constructor } - // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct RenderTreeEdit { public int MoveToSiblingIndex; @@ -520,7 +667,7 @@ namespace Microsoft public Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType Type; } - // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum RenderTreeEditType { PermutationListEnd, @@ -535,7 +682,7 @@ namespace Microsoft UpdateText, } - // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct RenderTreeFrame { public System.UInt64 AttributeEventHandlerId { get => throw null; } @@ -563,7 +710,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum RenderTreeFrameType { Attribute, @@ -577,8 +724,8 @@ namespace Microsoft Text, } - // Generated from `Microsoft.AspNetCore.Components.RenderTree.Renderer` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class Renderer : System.IDisposable, System.IAsyncDisposable + // Generated from `Microsoft.AspNetCore.Components.RenderTree.Renderer` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -588,13 +735,15 @@ namespace Microsoft 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 System.Threading.Tasks.Task RenderRootComponentAsync(int componentId, Microsoft.AspNetCore.Components.ParameterView initialParameters) => throw null; + protected internal void RemoveRootComponent(int componentId) => throw null; protected System.Threading.Tasks.Task RenderRootComponentAsync(int componentId) => throw null; - public Renderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Components.IComponentActivator componentActivator) => 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); } @@ -602,23 +751,23 @@ namespace Microsoft } namespace Rendering { - // Generated from `Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RenderTreeBuilder : System.IDisposable { - public void AddAttribute(int sequence, string name, Microsoft.AspNetCore.Components.EventCallback value) => throw null; - public void AddAttribute(int sequence, string name, string value) => throw null; - public void AddAttribute(int sequence, string name, object value) => throw null; - public void AddAttribute(int sequence, string name, bool 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) => throw null; 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.RenderFragment fragment, TValue value) => throw null; - public void AddContent(int sequence, string textContent) => throw null; - public void AddContent(int sequence, object textContent) => throw null; - public void AddContent(int sequence, Microsoft.AspNetCore.Components.RenderFragment fragment) => 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; @@ -626,10 +775,10 @@ namespace Microsoft public void CloseComponent() => throw null; public void CloseElement() => throw null; public void CloseRegion() => throw null; - void System.IDisposable.Dispose() => 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 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; @@ -640,19 +789,19 @@ namespace Microsoft } namespace Routing { - // Generated from `Microsoft.AspNetCore.Components.Routing.IHostEnvironmentNavigationManager` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Routing.IHostEnvironmentNavigationManager` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostEnvironmentNavigationManager { void Initialize(string baseUri, string uri); } - // Generated from `Microsoft.AspNetCore.Components.Routing.INavigationInterception` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Routing.INavigationInterception` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface INavigationInterception { System.Threading.Tasks.Task EnableNavigationInterceptionAsync(); } - // Generated from `Microsoft.AspNetCore.Components.Routing.LocationChangedEventArgs` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Routing.LocationChangedEventArgs` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LocationChangedEventArgs : System.EventArgs { public bool IsNavigationIntercepted { get => throw null; } @@ -660,15 +809,15 @@ namespace Microsoft public LocationChangedEventArgs(string location, bool isNavigationIntercepted) => throw null; } - // Generated from `Microsoft.AspNetCore.Components.Routing.NavigationContext` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Components.Routing.NavigationContext` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NavigationContext { public System.Threading.CancellationToken CancellationToken { get => throw null; } public string Path { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Components.Routing.Router` in `Microsoft.AspNetCore.Components, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class Router : System.IDisposable, Microsoft.AspNetCore.Components.IHandleAfterRender, Microsoft.AspNetCore.Components.IComponent + // Generated from `Microsoft.AspNetCore.Components.Routing.Router` in `Microsoft.AspNetCore.Components, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -679,6 +828,7 @@ namespace Microsoft 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 System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) => throw null; } 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 effa5664480..cb45be10951 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 @@ -6,18 +6,18 @@ namespace Microsoft { namespace Connections { - // Generated from `Microsoft.AspNetCore.Connections.AddressInUseException` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.AddressInUseException` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AddressInUseException : System.InvalidOperationException { - public AddressInUseException(string message, System.Exception inner) => throw null; public AddressInUseException(string message) => throw null; + public AddressInUseException(string message, System.Exception inner) => throw null; } - // Generated from `Microsoft.AspNetCore.Connections.BaseConnectionContext` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.BaseConnectionContext` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class BaseConnectionContext : System.IAsyncDisposable { - public abstract void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason); 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 abstract string ConnectionId { get; set; } @@ -28,15 +28,15 @@ namespace Microsoft public virtual System.Net.EndPoint RemoteEndPoint { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Connections.ConnectionAbortedException` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.ConnectionAbortedException` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConnectionAbortedException : System.OperationCanceledException { - public ConnectionAbortedException(string message, System.Exception inner) => throw null; - public ConnectionAbortedException(string message) => throw null; public ConnectionAbortedException() => throw null; + public ConnectionAbortedException(string message) => throw null; + public ConnectionAbortedException(string message, System.Exception inner) => throw null; } - // Generated from `Microsoft.AspNetCore.Connections.ConnectionBuilder` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.ConnectionBuilder` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConnectionBuilder : Microsoft.AspNetCore.Connections.IConnectionBuilder { public System.IServiceProvider ApplicationServices { get => throw null; } @@ -45,7 +45,7 @@ namespace Microsoft public Microsoft.AspNetCore.Connections.IConnectionBuilder Use(System.Func middleware) => throw null; } - // Generated from `Microsoft.AspNetCore.Connections.ConnectionBuilderExtensions` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.ConnectionBuilderExtensions` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ConnectionBuilderExtensions { public static Microsoft.AspNetCore.Connections.IConnectionBuilder Run(this Microsoft.AspNetCore.Connections.IConnectionBuilder connectionBuilder, System.Func middleware) => throw null; @@ -53,66 +53,66 @@ namespace Microsoft public static Microsoft.AspNetCore.Connections.IConnectionBuilder UseConnectionHandler(this Microsoft.AspNetCore.Connections.IConnectionBuilder connectionBuilder) where TConnectionHandler : Microsoft.AspNetCore.Connections.ConnectionHandler => throw null; } - // Generated from `Microsoft.AspNetCore.Connections.ConnectionContext` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.ConnectionContext` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ConnectionContext : Microsoft.AspNetCore.Connections.BaseConnectionContext, System.IAsyncDisposable { - public override void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason) => throw null; public override void Abort() => throw null; + public override void Abort(Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason) => throw null; protected ConnectionContext() => throw null; public abstract System.IO.Pipelines.IDuplexPipe Transport { get; set; } } - // Generated from `Microsoft.AspNetCore.Connections.ConnectionDelegate` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.ConnectionDelegate` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate System.Threading.Tasks.Task ConnectionDelegate(Microsoft.AspNetCore.Connections.ConnectionContext connection); - // Generated from `Microsoft.AspNetCore.Connections.ConnectionHandler` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.ConnectionHandler` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ConnectionHandler { protected ConnectionHandler() => throw null; public abstract System.Threading.Tasks.Task OnConnectedAsync(Microsoft.AspNetCore.Connections.ConnectionContext connection); } - // Generated from `Microsoft.AspNetCore.Connections.ConnectionItems` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConnectionItems : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + // Generated from `Microsoft.AspNetCore.Connections.ConnectionItems` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + void System.Collections.Generic.IDictionary.Add(object key, object value) => throw null; void System.Collections.Generic.ICollection>.Clear() => throw null; - public ConnectionItems(System.Collections.Generic.IDictionary items) => 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; } - System.Collections.IEnumerator System.Collections.IEnumerable.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; } object System.Collections.Generic.IDictionary.this[object key] { get => throw null; set => throw null; } 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.IDictionary.Remove(object key) => 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.IDictionary.TryGetValue(object key, out object value) => throw null; System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Connections.ConnectionResetException` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.ConnectionResetException` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConnectionResetException : System.IO.IOException { - public ConnectionResetException(string message, System.Exception inner) => throw null; public ConnectionResetException(string message) => throw null; + public ConnectionResetException(string message, System.Exception inner) => throw null; } - // Generated from `Microsoft.AspNetCore.Connections.DefaultConnectionContext` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DefaultConnectionContext : Microsoft.AspNetCore.Connections.ConnectionContext, Microsoft.AspNetCore.Connections.Features.IConnectionUserFeature, Microsoft.AspNetCore.Connections.Features.IConnectionTransportFeature, Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeFeature, Microsoft.AspNetCore.Connections.Features.IConnectionItemsFeature, Microsoft.AspNetCore.Connections.Features.IConnectionIdFeature, Microsoft.AspNetCore.Connections.Features.IConnectionEndPointFeature + // Generated from `Microsoft.AspNetCore.Connections.DefaultConnectionContext` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 => 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 DefaultConnectionContext(string id, System.IO.Pipelines.IDuplexPipe transport, System.IO.Pipelines.IDuplexPipe application) => throw null; - public DefaultConnectionContext(string id) => throw null; 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; } @@ -122,7 +122,7 @@ namespace Microsoft public System.Security.Claims.ClaimsPrincipal User { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Connections.FileHandleEndPoint` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.FileHandleEndPoint` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileHandleEndPoint : System.Net.EndPoint { public System.UInt64 FileHandle { get => throw null; } @@ -130,7 +130,7 @@ namespace Microsoft public Microsoft.AspNetCore.Connections.FileHandleType FileHandleType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Connections.FileHandleType` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.FileHandleType` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum FileHandleType { Auto, @@ -138,7 +138,7 @@ namespace Microsoft Tcp, } - // Generated from `Microsoft.AspNetCore.Connections.IConnectionBuilder` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.IConnectionBuilder` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionBuilder { System.IServiceProvider ApplicationServices { get; } @@ -146,13 +146,13 @@ namespace Microsoft Microsoft.AspNetCore.Connections.IConnectionBuilder Use(System.Func middleware); } - // Generated from `Microsoft.AspNetCore.Connections.IConnectionFactory` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.IConnectionFactory` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionFactory { System.Threading.Tasks.ValueTask ConnectAsync(System.Net.EndPoint endpoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.AspNetCore.Connections.IConnectionListener` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.IConnectionListener` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionListener : System.IAsyncDisposable { System.Threading.Tasks.ValueTask AcceptAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); @@ -160,13 +160,61 @@ namespace Microsoft System.Threading.Tasks.ValueTask UnbindAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.AspNetCore.Connections.IConnectionListenerFactory` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.IConnectionListenerFactory` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionListenerFactory { System.Threading.Tasks.ValueTask BindAsync(System.Net.EndPoint endpoint, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.AspNetCore.Connections.TransferFormat` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IMultiplexedConnectionBuilder + { + System.IServiceProvider ApplicationServices { get; } + Microsoft.AspNetCore.Connections.MultiplexedConnectionDelegate Build(); + Microsoft.AspNetCore.Connections.IMultiplexedConnectionBuilder Use(System.Func middleware); + } + + // Generated from `Microsoft.AspNetCore.Connections.IMultiplexedConnectionFactory` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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)); + } + + // Generated from `Microsoft.AspNetCore.Connections.IMultiplexedConnectionListener` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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)); + } + + // Generated from `Microsoft.AspNetCore.Connections.IMultiplexedConnectionListenerFactory` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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)); + } + + // Generated from `Microsoft.AspNetCore.Connections.MultiplexedConnectionBuilder` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Connections.MultiplexedConnectionContext` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Connections.MultiplexedConnectionDelegate` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public delegate System.Threading.Tasks.Task MultiplexedConnectionDelegate(Microsoft.AspNetCore.Connections.MultiplexedConnectionContext connection); + + // Generated from `Microsoft.AspNetCore.Connections.TransferFormat` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` [System.Flags] public enum TransferFormat { @@ -174,7 +222,7 @@ namespace Microsoft Text, } - // Generated from `Microsoft.AspNetCore.Connections.UriEndPoint` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.UriEndPoint` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UriEndPoint : System.Net.EndPoint { public override string ToString() => throw null; @@ -182,106 +230,116 @@ namespace Microsoft public UriEndPoint(System.Uri uri) => throw null; } - namespace Experimental - { - // Generated from `Microsoft.AspNetCore.Connections.Experimental.IMultiplexedConnectionBuilder` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - internal interface IMultiplexedConnectionBuilder - { - System.IServiceProvider ApplicationServices { get; } - } - - } namespace Features { - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionCompleteFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionCompleteFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionCompleteFeature { void OnCompleted(System.Func callback, object state); } - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionEndPointFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionEndPointFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionEndPointFeature { System.Net.EndPoint LocalEndPoint { get; set; } System.Net.EndPoint RemoteEndPoint { get; set; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionHeartbeatFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionHeartbeatFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionHeartbeatFeature { void OnHeartbeat(System.Action action, object state); } - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionIdFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionIdFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionIdFeature { string ConnectionId { get; set; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionInherentKeepAliveFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionInherentKeepAliveFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionInherentKeepAliveFeature { bool HasInherentKeepAlive { get; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionItemsFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionItemsFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionItemsFeature { System.Collections.Generic.IDictionary Items { get; set; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionLifetimeFeature { void Abort(); System.Threading.CancellationToken ConnectionClosed { get; set; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeNotificationFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionLifetimeNotificationFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionLifetimeNotificationFeature { System.Threading.CancellationToken ConnectionClosedRequested { get; set; } void RequestClose(); } - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionTransportFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionSocketFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IConnectionSocketFeature + { + System.Net.Sockets.Socket Socket { get; } + } + + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionTransportFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionTransportFeature { System.IO.Pipelines.IDuplexPipe Transport { get; set; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionUserFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IConnectionUserFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionUserFeature { System.Security.Claims.ClaimsPrincipal User { get; set; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IMemoryPoolFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IMemoryPoolFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IMemoryPoolFeature { System.Buffers.MemoryPool MemoryPool { get; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IProtocolErrorCodeFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IPersistentStateFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IPersistentStateFeature + { + System.Collections.Generic.IDictionary State { get; } + } + + // Generated from `Microsoft.AspNetCore.Connections.Features.IProtocolErrorCodeFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IProtocolErrorCodeFeature { System.Int64 Error { get; set; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IStreamDirectionFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IStreamAbortFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IStreamAbortFeature + { + void AbortRead(System.Int64 errorCode, Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason); + void AbortWrite(System.Int64 errorCode, Microsoft.AspNetCore.Connections.ConnectionAbortedException abortReason); + } + + // Generated from `Microsoft.AspNetCore.Connections.Features.IStreamDirectionFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStreamDirectionFeature { bool CanRead { get; } bool CanWrite { get; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.IStreamIdFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.IStreamIdFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStreamIdFeature { System.Int64 StreamId { get; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.ITlsHandshakeFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.ITlsHandshakeFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITlsHandshakeFeature { System.Security.Authentication.CipherAlgorithmType CipherAlgorithm { get; } @@ -293,7 +351,7 @@ namespace Microsoft System.Security.Authentication.SslProtocols Protocol { get; } } - // Generated from `Microsoft.AspNetCore.Connections.Features.ITransferFormatFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Connections.Features.ITransferFormatFeature` in `Microsoft.AspNetCore.Connections.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITransferFormatFeature { Microsoft.AspNetCore.Connections.TransferFormat ActiveFormat { get; set; } 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 d620630756a..a7d9bcff4d1 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 @@ -6,14 +6,14 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.CookiePolicyAppBuilderExtensions` in `Microsoft.AspNetCore.CookiePolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.CookiePolicyAppBuilderExtensions` in `Microsoft.AspNetCore.CookiePolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CookiePolicyAppBuilderExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseCookiePolicy(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.CookiePolicyOptions options) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.CookiePolicyOptions` in `Microsoft.AspNetCore.CookiePolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.CookiePolicyOptions` in `Microsoft.AspNetCore.CookiePolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookiePolicyOptions { public System.Func CheckConsentNeeded { get => throw null; set => throw null; } @@ -29,7 +29,7 @@ namespace Microsoft } namespace CookiePolicy { - // Generated from `Microsoft.AspNetCore.CookiePolicy.AppendCookieContext` in `Microsoft.AspNetCore.CookiePolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.CookiePolicy.AppendCookieContext` in `Microsoft.AspNetCore.CookiePolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AppendCookieContext { public AppendCookieContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.CookieOptions options, string name, string value) => throw null; @@ -42,16 +42,16 @@ namespace Microsoft public bool IssueCookie { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.CookiePolicy.CookiePolicyMiddleware` in `Microsoft.AspNetCore.CookiePolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.CookiePolicy.CookiePolicyMiddleware` in `Microsoft.AspNetCore.CookiePolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookiePolicyMiddleware { - 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 CookiePolicyMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory factory) => 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; } } - // Generated from `Microsoft.AspNetCore.CookiePolicy.DeleteCookieContext` in `Microsoft.AspNetCore.CookiePolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.CookiePolicy.DeleteCookieContext` in `Microsoft.AspNetCore.CookiePolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DeleteCookieContext { public Microsoft.AspNetCore.Http.HttpContext Context { get => throw null; } @@ -63,7 +63,7 @@ namespace Microsoft public bool IssueCookie { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy` in `Microsoft.AspNetCore.CookiePolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy` in `Microsoft.AspNetCore.CookiePolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum HttpOnlyPolicy { Always, @@ -76,11 +76,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.CookiePolicyServiceCollectionExtensions` in `Microsoft.AspNetCore.CookiePolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.CookiePolicyServiceCollectionExtensions` in `Microsoft.AspNetCore.CookiePolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CookiePolicyServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddCookiePolicy(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TService : class => throw null; 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 cc9188bb3d1..ba7f530ee20 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 @@ -6,48 +6,48 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.CorsEndpointConventionBuilderExtensions` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.CorsEndpointConventionBuilderExtensions` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CorsEndpointConventionBuilderExtensions { - 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 TBuilder RequireCors(this TBuilder builder, string policyName) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.CorsMiddlewareExtensions` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.CorsMiddlewareExtensions` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CorsMiddlewareExtensions { - 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; 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; } } namespace Cors { - // Generated from `Microsoft.AspNetCore.Cors.CorsPolicyMetadata` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class CorsPolicyMetadata : Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyMetadata, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata + // Generated from `Microsoft.AspNetCore.Cors.CorsPolicyMetadata` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } - // Generated from `Microsoft.AspNetCore.Cors.DisableCorsAttribute` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DisableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.IDisableCorsAttribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata + // Generated from `Microsoft.AspNetCore.Cors.DisableCorsAttribute` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DisableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata, Microsoft.AspNetCore.Cors.Infrastructure.IDisableCorsAttribute { public DisableCorsAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Cors.EnableCorsAttribute` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class EnableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata + // Generated from `Microsoft.AspNetCore.Cors.EnableCorsAttribute` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class EnableCorsAttribute : System.Attribute, Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata, Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute { - public EnableCorsAttribute(string policyName) => throw null; public EnableCorsAttribute() => throw null; + public EnableCorsAttribute(string policyName) => throw null; public string PolicyName { get => throw null; set => throw null; } } namespace Infrastructure { - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CorsConstants { public static string AccessControlAllowCredentials; @@ -63,16 +63,16 @@ namespace Microsoft public static string PreflightHttpMethod; } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CorsMiddleware { - 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.Extensions.Logging.ILoggerFactory loggerFactory) => 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 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 System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider corsPolicyProvider) => throw null; } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CorsOptions { public void AddDefaultPolicy(System.Action configurePolicy) => throw null; @@ -84,7 +84,7 @@ namespace Microsoft public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy GetPolicy(string name) => throw null; } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CorsPolicy { public bool AllowAnyHeader { get => throw null; } @@ -101,7 +101,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CorsPolicyBuilder { public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder AllowAnyHeader() => throw null; @@ -109,8 +109,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(params string[] origins) => throw null; public CorsPolicyBuilder(Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) => throw null; + public CorsPolicyBuilder(params string[] origins) => 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; @@ -121,7 +121,7 @@ namespace Microsoft public Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder WithOrigins(params string[] origins) => throw null; } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsResult` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsResult` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CorsResult { public System.Collections.Generic.IList AllowedExposedHeaders { get => throw null; } @@ -137,49 +137,49 @@ namespace Microsoft public bool VaryByOrigin { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsService` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.CorsService` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, 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 Microsoft.AspNetCore.Cors.Infrastructure.CorsResult EvaluatePolicy(Microsoft.AspNetCore.Http.HttpContext context, string policyName) => 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; } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.DefaultCorsPolicyProvider` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.DefaultCorsPolicyProvider` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyMetadata` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyMetadata` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICorsPolicyMetadata : Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata { Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy Policy { get; } } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICorsPolicyProvider { System.Threading.Tasks.Task GetPolicyAsync(Microsoft.AspNetCore.Http.HttpContext context, string policyName); } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.ICorsService` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.ICorsService` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.IDisableCorsAttribute` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.IDisableCorsAttribute` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDisableCorsAttribute : Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata { } - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IEnableCorsAttribute : Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata { string PolicyName { get; set; } @@ -192,11 +192,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.CorsServiceCollectionExtensions` in `Microsoft.AspNetCore.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.CorsServiceCollectionExtensions` in `Microsoft.AspNetCore.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CorsServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddCors(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; 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.KeyDerivation.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Cryptography.KeyDerivation.cs index c225da7db89..6cb834bc3ad 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 @@ -8,13 +8,13 @@ namespace Microsoft { namespace KeyDerivation { - // Generated from `Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivation` in `Microsoft.AspNetCore.Cryptography.KeyDerivation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivation` in `Microsoft.AspNetCore.Cryptography.KeyDerivation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf` in `Microsoft.AspNetCore.Cryptography.KeyDerivation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf` in `Microsoft.AspNetCore.Cryptography.KeyDerivation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum KeyDerivationPrf { HMACSHA1, 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 8fb9813a64c..e2f17cad601 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 @@ -6,25 +6,25 @@ namespace Microsoft { namespace DataProtection { - // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionCommonExtensions` in `Microsoft.AspNetCore.DataProtection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionCommonExtensions` in `Microsoft.AspNetCore.DataProtection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DataProtectionCommonExtensions { - public static Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(this Microsoft.AspNetCore.DataProtection.IDataProtectionProvider provider, string purpose, params string[] subPurposes) => throw null; 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; public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider GetDataProtectionProvider(this System.IServiceProvider services) => throw null; - public static Microsoft.AspNetCore.DataProtection.IDataProtector GetDataProtector(this System.IServiceProvider services, string purpose, params string[] subPurposes) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtector GetDataProtector(this System.IServiceProvider services, System.Collections.Generic.IEnumerable purposes) => throw null; + public static Microsoft.AspNetCore.DataProtection.IDataProtector GetDataProtector(this System.IServiceProvider services, string purpose, params string[] subPurposes) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.IDataProtectionProvider` in `Microsoft.AspNetCore.DataProtection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.IDataProtectionProvider` in `Microsoft.AspNetCore.DataProtection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDataProtectionProvider { Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(string purpose); } - // Generated from `Microsoft.AspNetCore.DataProtection.IDataProtector` in `Microsoft.AspNetCore.DataProtection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.IDataProtector` in `Microsoft.AspNetCore.DataProtection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider { System.Byte[] Protect(System.Byte[] plaintext); @@ -33,7 +33,7 @@ namespace Microsoft namespace Infrastructure { - // Generated from `Microsoft.AspNetCore.DataProtection.Infrastructure.IApplicationDiscriminator` in `Microsoft.AspNetCore.DataProtection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.Infrastructure.IApplicationDiscriminator` in `Microsoft.AspNetCore.DataProtection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 d58c26b7626..62449e4a545 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 @@ -6,29 +6,29 @@ namespace Microsoft { namespace DataProtection { - // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionAdvancedExtensions` in `Microsoft.AspNetCore.DataProtection.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionAdvancedExtensions` in `Microsoft.AspNetCore.DataProtection.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DataProtectionAdvancedExtensions { - public static string Protect(this Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector protector, string 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 System.Byte[] Protect(this Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector protector, System.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; } - // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionProvider` in `Microsoft.AspNetCore.DataProtection.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionProvider` in `Microsoft.AspNetCore.DataProtection.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DataProtectionProvider { - public static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider Create(string applicationName, 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(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 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) => 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector` in `Microsoft.AspNetCore.DataProtection.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface ITimeLimitedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider + // Generated from `Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector` in `Microsoft.AspNetCore.DataProtection.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface ITimeLimitedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider, Microsoft.AspNetCore.DataProtection.IDataProtector { Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector CreateProtector(string purpose); System.Byte[] Protect(System.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 f202f4674d4..e4b450d0757 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 @@ -6,110 +6,110 @@ namespace Microsoft { namespace DataProtection { - // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionBuilderExtensions` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionBuilderExtensions` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DataProtectionBuilderExtensions { - 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 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 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; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToRegistry(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.Win32.RegistryKey registryKey) => throw null; - public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithCertificate(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, string thumbprint) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithCertificate(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithDpapi(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, bool protectToLocalMachine) => throw null; + public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithCertificate(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, string thumbprint) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithDpapi(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder) => throw null; - public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithDpapiNG(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, string protectionDescriptorRule, Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGProtectionDescriptorFlags flags) => throw null; + public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithDpapi(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, bool protectToLocalMachine) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithDpapiNG(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder) => throw null; + public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithDpapiNG(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, string protectionDescriptorRule, Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGProtectionDescriptorFlags flags) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder SetApplicationName(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, string applicationName) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder SetDefaultKeyLifetime(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.TimeSpan lifetime) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder UnprotectKeysWithAnyCertificate(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, params System.Security.Cryptography.X509Certificates.X509Certificate2[] certificates) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder UseCryptographicAlgorithms(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorConfiguration configuration) => throw null; - 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 UseCustomCryptographicAlgorithms(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorConfiguration configuration) => throw null; public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder UseCustomCryptographicAlgorithms(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorConfiguration configuration) => throw null; + public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder UseCustomCryptographicAlgorithms(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorConfiguration configuration) => throw null; + 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionOptions` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionOptions` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DataProtectionOptions { public string ApplicationDiscriminator { get => throw null; set => throw null; } public DataProtectionOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionUtilityExtensions` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.DataProtectionUtilityExtensions` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DataProtectionUtilityExtensions { public static string GetApplicationUniqueIdentifier(this System.IServiceProvider services) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.EphemeralDataProtectionProvider` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.EphemeralDataProtectionProvider` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EphemeralDataProtectionProvider : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider { public Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(string purpose) => throw null; - public EphemeralDataProtectionProvider(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public EphemeralDataProtectionProvider() => throw null; + public EphemeralDataProtectionProvider(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDataProtectionBuilder { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - // Generated from `Microsoft.AspNetCore.DataProtection.IPersistedDataProtector` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IPersistedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider + // Generated from `Microsoft.AspNetCore.DataProtection.IPersistedDataProtector` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); } - // Generated from `Microsoft.AspNetCore.DataProtection.ISecret` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.ISecret` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISecret : System.IDisposable { int Length { get; } void WriteSecretIntoBuffer(System.ArraySegment buffer); } - // Generated from `Microsoft.AspNetCore.DataProtection.Secret` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class Secret : System.IDisposable, Microsoft.AspNetCore.DataProtection.ISecret + // Generated from `Microsoft.AspNetCore.DataProtection.Secret` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; - unsafe public Secret(System.Byte* secret, int secretLength) => throw null; - public Secret(System.Byte[] value) => 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 void WriteSecretIntoBuffer(System.Byte* buffer, int bufferLength) => 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 { - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.AuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.AuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.CngCbcAuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.CngCbcAuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.CngGcmAuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.CngGcmAuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.EncryptionAlgorithm` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.EncryptionAlgorithm` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum EncryptionAlgorithm { AES_128_CBC, @@ -120,27 +120,27 @@ namespace Microsoft AES_256_GCM, } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticatedEncryptor { System.Byte[] Decrypt(System.ArraySegment ciphertext, System.ArraySegment additionalAuthenticatedData); System.Byte[] Encrypt(System.ArraySegment plaintext, System.ArraySegment additionalAuthenticatedData); } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticatedEncryptorFactory { Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptorInstance(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey key); } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ManagedAuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ManagedAuthenticatedEncryptorFactory` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ValidationAlgorithm` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ValidationAlgorithm` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ValidationAlgorithm { HMACSHA256, @@ -149,14 +149,14 @@ namespace Microsoft namespace ConfigurationModel { - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class AlgorithmConfiguration { protected AlgorithmConfiguration() => throw null; public abstract Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor(); } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration { public AuthenticatedEncryptorConfiguration() => throw null; @@ -165,21 +165,21 @@ namespace Microsoft public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ValidationAlgorithm ValidationAlgorithm { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CngCbcAuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration { public CngCbcAuthenticatedEncryptorConfiguration() => throw null; @@ -191,21 +191,21 @@ namespace Microsoft public string HashAlgorithmProvider { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CngGcmAuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration { public CngGcmAuthenticatedEncryptorConfiguration() => throw null; @@ -215,38 +215,38 @@ namespace Microsoft public string EncryptionAlgorithmProvider { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticatedEncryptorDescriptor { Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo ExportToXml(); } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthenticatedEncryptorDescriptorDeserializer { Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor ImportFromXml(System.Xml.Linq.XElement element); } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IInternalAlgorithmConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IInternalAlgorithmConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IInternalAlgorithmConfiguration { } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorConfiguration` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ManagedAuthenticatedEncryptorConfiguration : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration { public override Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor CreateNewDescriptor() => throw null; @@ -256,27 +256,27 @@ namespace Microsoft public System.Type ValidationAlgorithmType { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorDescriptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorDescriptorDeserializer` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlExtensions` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlExtensions` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class XmlExtensions { public static void MarkAsRequiresEncryption(this System.Xml.Linq.XElement element) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.XmlSerializedDescriptorInfo` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class XmlSerializedDescriptorInfo { public System.Type DeserializerType { get => throw null; } @@ -288,7 +288,7 @@ namespace Microsoft } namespace Internal { - // Generated from `Microsoft.AspNetCore.DataProtection.Internal.IActivator` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.Internal.IActivator` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActivator { object CreateInstance(System.Type expectedBaseType, string implementationTypeName); @@ -297,7 +297,7 @@ namespace Microsoft } namespace KeyManagement { - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.IKey` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.IKey` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IKey { System.DateTimeOffset ActivationDate { get; } @@ -309,13 +309,13 @@ namespace Microsoft System.Guid KeyId { get; } } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IKeyEscrowSink { void Store(System.Guid keyId, System.Xml.Linq.XElement element); } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IKeyManager { Microsoft.AspNetCore.DataProtection.KeyManagement.IKey CreateNewKey(System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate); @@ -325,7 +325,7 @@ namespace Microsoft void RevokeKey(System.Guid keyId, string reason = default(string)); } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class KeyManagementOptions { public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration AuthenticatedEncryptorConfiguration { get => throw null; set => throw null; } @@ -338,8 +338,8 @@ namespace Microsoft public Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository XmlRepository { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class XmlKeyManager : Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager, Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -349,18 +349,18 @@ namespace Microsoft 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, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => 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 { - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CacheableKeyRing { } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct DefaultKeyResolution { public Microsoft.AspNetCore.DataProtection.KeyManagement.IKey DefaultKey; @@ -369,19 +369,19 @@ namespace Microsoft public bool ShouldGenerateNewKey; } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICacheableKeyRingProvider { Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing GetCacheableKeyRing(System.DateTimeOffset now); } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IDefaultKeyResolver` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IDefaultKeyResolver` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDefaultKeyResolver { Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution ResolveDefaultKeyPolicy(System.DateTimeOffset now, System.Collections.Generic.IEnumerable allKeys); } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IInternalXmlKeyManager { Microsoft.AspNetCore.DataProtection.KeyManagement.IKey CreateNewKey(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate); @@ -389,7 +389,7 @@ namespace Microsoft void RevokeSingleKey(System.Guid keyId, System.DateTimeOffset revocationDate, string reason); } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IKeyRing { Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor DefaultAuthenticatedEncryptor { get; } @@ -397,7 +397,7 @@ namespace Microsoft Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor GetAuthenticatedEncryptorByKeyId(System.Guid keyId, out bool isRevoked); } - // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRingProvider` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRingProvider` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IKeyRingProvider { Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing GetCurrentKeyRing(); @@ -407,7 +407,7 @@ namespace Microsoft } namespace Repositories { - // Generated from `Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileSystemXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository { public static System.IO.DirectoryInfo DefaultKeyStorageDirectory { get => throw null; } @@ -417,14 +417,14 @@ namespace Microsoft public virtual void StoreElement(System.Xml.Linq.XElement element, string friendlyName) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IXmlRepository { System.Collections.Generic.IReadOnlyCollection GetAllElements(); void StoreElement(System.Xml.Linq.XElement element, string friendlyName); } - // Generated from `Microsoft.AspNetCore.DataProtection.Repositories.RegistryXmlRepository` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.Repositories.RegistryXmlRepository` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RegistryXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository { public static Microsoft.Win32.RegistryKey DefaultRegistryKey { get => throw null; } @@ -437,22 +437,22 @@ namespace Microsoft } namespace XmlEncryption { - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.CertificateResolver` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.CertificateResolver` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CertificateResolver : Microsoft.AspNetCore.DataProtection.XmlEncryption.ICertificateResolver { public CertificateResolver() => throw null; public virtual System.Security.Cryptography.X509Certificates.X509Certificate2 ResolveCertificate(string thumbprint) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.CertificateXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.CertificateXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CertificateXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor { - 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 CertificateXmlEncryptor(string thumbprint, Microsoft.AspNetCore.DataProtection.XmlEncryption.ICertificateResolver certificateResolver, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo Encrypt(System.Xml.Linq.XElement plaintextElement) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGProtectionDescriptorFlags` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGProtectionDescriptorFlags` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` [System.Flags] public enum DpapiNGProtectionDescriptorFlags { @@ -461,45 +461,45 @@ namespace Microsoft None, } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DpapiNGXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor { public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; - public DpapiNGXmlDecryptor(System.IServiceProvider services) => throw null; public DpapiNGXmlDecryptor() => throw null; + public DpapiNGXmlDecryptor(System.IServiceProvider services) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DpapiXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor { public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; - public DpapiXmlDecryptor(System.IServiceProvider services) => throw null; public DpapiXmlDecryptor() => throw null; + public DpapiXmlDecryptor(System.IServiceProvider services) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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; } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EncryptedXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor { public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; - public EncryptedXmlDecryptor(System.IServiceProvider services) => throw null; public EncryptedXmlDecryptor() => throw null; + public EncryptedXmlDecryptor(System.IServiceProvider services) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EncryptedXmlInfo { public System.Type DecryptorType { get => throw null; } @@ -507,47 +507,47 @@ namespace Microsoft public EncryptedXmlInfo(System.Xml.Linq.XElement encryptedElement, System.Type decryptorType) => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.ICertificateResolver` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.ICertificateResolver` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICertificateResolver { System.Security.Cryptography.X509Certificates.X509Certificate2 ResolveCertificate(string thumbprint); } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalCertificateXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalCertificateXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IInternalCertificateXmlEncryptor { } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalEncryptedXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalEncryptedXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IInternalEncryptedXmlDecryptor { } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IXmlDecryptor { System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement); } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IXmlEncryptor { Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo Encrypt(System.Xml.Linq.XElement plaintextElement); } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.NullXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.NullXmlDecryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NullXmlDecryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlDecryptor { public System.Xml.Linq.XElement Decrypt(System.Xml.Linq.XElement encryptedElement) => throw null; public NullXmlDecryptor() => throw null; } - // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.NullXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.DataProtection.XmlEncryption.NullXmlEncryptor` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NullXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor { public Microsoft.AspNetCore.DataProtection.XmlEncryption.EncryptedXmlInfo Encrypt(System.Xml.Linq.XElement plaintextElement) => throw null; - public NullXmlEncryptor(System.IServiceProvider services) => throw null; public NullXmlEncryptor() => throw null; + public NullXmlEncryptor(System.IServiceProvider services) => throw null; } } @@ -557,11 +557,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.DataProtectionServiceCollectionExtensions` in `Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.DataProtectionServiceCollectionExtensions` in `Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DataProtectionServiceCollectionExtensions { - public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder AddDataProtection(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; 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 16fd7b61d48..2d7acb4a851 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 @@ -6,11 +6,11 @@ namespace Microsoft { namespace Diagnostics { - // Generated from `Microsoft.AspNetCore.Diagnostics.CompilationFailure` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.CompilationFailure` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompilationFailure { - public CompilationFailure(string sourceFilePath, string sourceFileContent, string compiledContent, System.Collections.Generic.IEnumerable messages, string failureSummary) => 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; } @@ -18,7 +18,7 @@ namespace Microsoft public string SourceFilePath { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Diagnostics.DiagnosticMessage` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.DiagnosticMessage` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DiagnosticMessage { public DiagnosticMessage(string message, string formattedMessage, string filePath, int startLine, int startColumn, int endLine, int endColumn) => throw null; @@ -31,7 +31,7 @@ namespace Microsoft public int StartLine { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Diagnostics.ErrorContext` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.ErrorContext` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ErrorContext { public ErrorContext(Microsoft.AspNetCore.Http.HttpContext httpContext, System.Exception exception) => throw null; @@ -39,37 +39,40 @@ namespace Microsoft public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Diagnostics.ICompilationException` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.ICompilationException` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICompilationException { System.Collections.Generic.IEnumerable CompilationFailures { get; } } - // Generated from `Microsoft.AspNetCore.Diagnostics.IDeveloperPageExceptionFilter` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.IDeveloperPageExceptionFilter` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDeveloperPageExceptionFilter { System.Threading.Tasks.Task HandleExceptionAsync(Microsoft.AspNetCore.Diagnostics.ErrorContext errorContext, System.Func next); } - // Generated from `Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IExceptionHandlerFeature { + 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; } } - // Generated from `Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IExceptionHandlerPathFeature : Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature { - string Path { get; } + string Path { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Diagnostics.IStatusCodePagesFeature` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.IStatusCodePagesFeature` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStatusCodePagesFeature { bool Enabled { get; set; } } - // Generated from `Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature` in `Microsoft.AspNetCore.Diagnostics.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStatusCodeReExecuteFeature { string OriginalPath { get; set; } 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 23dff6e85c8..9845836f809 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 @@ -6,22 +6,22 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.HealthCheckApplicationBuilderExtensions` in `Microsoft.AspNetCore.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HealthCheckApplicationBuilderExtensions` in `Microsoft.AspNetCore.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HealthCheckApplicationBuilderExtensions { - 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 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, int port) => 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) => 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, string port, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.HealthCheckEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HealthCheckEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HealthCheckEndpointRouteBuilderExtensions { - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapHealthChecks(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) => throw null; 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; } } @@ -29,14 +29,14 @@ namespace Microsoft { namespace HealthChecks { - // Generated from `Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckMiddleware` in `Microsoft.AspNetCore.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckMiddleware` in `Microsoft.AspNetCore.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HealthCheckMiddleware { 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; } - // Generated from `Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions` in `Microsoft.AspNetCore.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions` in `Microsoft.AspNetCore.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HealthCheckOptions { public bool AllowCachingResponses { get => throw null; set => 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 e9ea9c48be3..d06344f10dd 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 @@ -6,14 +6,14 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.DeveloperExceptionPageExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.DeveloperExceptionPageExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DeveloperExceptionPageExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseDeveloperExceptionPage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions options) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DeveloperExceptionPageOptions { public DeveloperExceptionPageOptions() => throw null; @@ -21,16 +21,16 @@ namespace Microsoft public int SourceCodeLineCount { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ExceptionHandlerExtensions { - 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) => 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) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string errorHandlingPath) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.ExceptionHandlerOptions` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ExceptionHandlerOptions` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ExceptionHandlerOptions { public bool AllowStatusCode404Response { get => throw null; set => throw null; } @@ -39,35 +39,35 @@ namespace Microsoft public Microsoft.AspNetCore.Http.PathString ExceptionHandlingPath { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Builder.StatusCodePagesExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.StatusCodePagesExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class StatusCodePagesExtensions { - 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 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, System.Action configuration) => 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.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, 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 UseStatusCodePagesWithRedirects(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string locationFormat) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.StatusCodePagesOptions` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.StatusCodePagesOptions` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StatusCodePagesOptions { public System.Func HandleAsync { get => throw null; set => throw null; } public StatusCodePagesOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.WelcomePageExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.WelcomePageExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class WelcomePageExtensions { - 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 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) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string path) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.WelcomePageOptions` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.WelcomePageOptions` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WelcomePageOptions { public Microsoft.AspNetCore.Http.PathString Path { get => throw null; set => throw null; } @@ -77,29 +77,31 @@ namespace Microsoft } namespace Diagnostics { - // Generated from `Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DeveloperExceptionPageMiddleware { 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; } - // Generated from `Microsoft.AspNetCore.Diagnostics.ExceptionHandlerFeature` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ExceptionHandlerFeature : Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature, Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature + // Generated from `Microsoft.AspNetCore.Diagnostics.ExceptionHandlerFeature` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ExceptionHandlerFeature : Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature, Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature { + 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; } } - // Generated from `Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Diagnostics.StatusCodeContext` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.StatusCodeContext` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StatusCodeContext { public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } @@ -108,21 +110,21 @@ namespace Microsoft public StatusCodeContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Builder.StatusCodePagesOptions options, Microsoft.AspNetCore.Http.RequestDelegate next) => throw null; } - // Generated from `Microsoft.AspNetCore.Diagnostics.StatusCodePagesFeature` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.StatusCodePagesFeature` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StatusCodePagesFeature : Microsoft.AspNetCore.Diagnostics.IStatusCodePagesFeature { public bool Enabled { get => throw null; set => throw null; } public StatusCodePagesFeature() => throw null; } - // Generated from `Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StatusCodeReExecuteFeature : Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature { public string OriginalPath { get => throw null; set => throw null; } @@ -131,7 +133,7 @@ namespace Microsoft public StatusCodeReExecuteFeature() => throw null; } - // Generated from `Microsoft.AspNetCore.Diagnostics.WelcomePageMiddleware` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Diagnostics.WelcomePageMiddleware` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WelcomePageMiddleware { public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; @@ -144,11 +146,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.ExceptionHandlerServiceCollectionExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ExceptionHandlerServiceCollectionExtensions` in `Microsoft.AspNetCore.Diagnostics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ExceptionHandlerServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddExceptionHandler(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TService : class => throw null; 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 8621938fbee..72b7c96346f 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 @@ -6,13 +6,13 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.HostFilteringBuilderExtensions` in `Microsoft.AspNetCore.HostFiltering, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HostFilteringBuilderExtensions` in `Microsoft.AspNetCore.HostFiltering, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HostFilteringBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHostFiltering(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.HostFilteringServicesExtensions` in `Microsoft.AspNetCore.HostFiltering, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HostFilteringServicesExtensions` in `Microsoft.AspNetCore.HostFiltering, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HostFilteringServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHostFiltering(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; @@ -21,14 +21,14 @@ namespace Microsoft } namespace HostFiltering { - // Generated from `Microsoft.AspNetCore.HostFiltering.HostFilteringMiddleware` in `Microsoft.AspNetCore.HostFiltering, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HostFiltering.HostFilteringMiddleware` in `Microsoft.AspNetCore.HostFiltering, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HostFilteringMiddleware { 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; } - // Generated from `Microsoft.AspNetCore.HostFiltering.HostFilteringOptions` in `Microsoft.AspNetCore.HostFiltering, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HostFiltering.HostFilteringOptions` in `Microsoft.AspNetCore.HostFiltering, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HostFilteringOptions { public bool AllowEmptyHosts { get => throw null; set => throw null; } 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 c3836e6ef6a..0080e0b8d85 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Hosting { - // Generated from `Microsoft.AspNetCore.Hosting.EnvironmentName` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.EnvironmentName` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EnvironmentName { public static string Development; @@ -14,7 +14,7 @@ namespace Microsoft public static string Staging; } - // Generated from `Microsoft.AspNetCore.Hosting.HostingAbstractionsWebHostBuilderExtensions` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.HostingAbstractionsWebHostBuilderExtensions` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HostingAbstractionsWebHostBuilderExtensions { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CaptureStartupErrors(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, bool captureStartupErrors) => throw null; @@ -31,7 +31,7 @@ namespace Microsoft public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseWebRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, string webRoot) => throw null; } - // Generated from `Microsoft.AspNetCore.Hosting.HostingEnvironmentExtensions` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.HostingEnvironmentExtensions` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static partial class HostingEnvironmentExtensions { public static bool IsDevelopment(this Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnvironment) => throw null; @@ -40,14 +40,14 @@ namespace Microsoft public static bool IsStaging(this Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnvironment) => throw null; } - // Generated from `Microsoft.AspNetCore.Hosting.HostingStartupAttribute` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.HostingStartupAttribute` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HostingStartupAttribute : System.Attribute { public HostingStartupAttribute(System.Type hostingStartupType) => throw null; public System.Type HostingStartupType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Hosting.IApplicationLifetime` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IApplicationLifetime` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApplicationLifetime { System.Threading.CancellationToken ApplicationStarted { get; } @@ -56,7 +56,7 @@ namespace Microsoft void StopApplication(); } - // Generated from `Microsoft.AspNetCore.Hosting.IHostingEnvironment` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IHostingEnvironment` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostingEnvironment { string ApplicationName { get; set; } @@ -67,38 +67,38 @@ namespace Microsoft string WebRootPath { get; set; } } - // Generated from `Microsoft.AspNetCore.Hosting.IHostingStartup` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IHostingStartup` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostingStartup { void Configure(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder); } - // Generated from `Microsoft.AspNetCore.Hosting.IStartup` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IStartup` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStartup { void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app); System.IServiceProvider ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services); } - // Generated from `Microsoft.AspNetCore.Hosting.IStartupConfigureContainerFilter<>` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IStartupConfigureContainerFilter<>` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStartupConfigureContainerFilter { System.Action ConfigureContainer(System.Action container); } - // Generated from `Microsoft.AspNetCore.Hosting.IStartupConfigureServicesFilter` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IStartupConfigureServicesFilter` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStartupConfigureServicesFilter { System.Action ConfigureServices(System.Action next); } - // Generated from `Microsoft.AspNetCore.Hosting.IStartupFilter` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IStartupFilter` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStartupFilter { System.Action Configure(System.Action next); } - // Generated from `Microsoft.AspNetCore.Hosting.IWebHost` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IWebHost` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IWebHost : System.IDisposable { Microsoft.AspNetCore.Http.Features.IFeatureCollection ServerFeatures { get; } @@ -108,7 +108,7 @@ namespace Microsoft System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.AspNetCore.Hosting.IWebHostBuilder` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IWebHostBuilder` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IWebHostBuilder { Microsoft.AspNetCore.Hosting.IWebHost Build(); @@ -119,14 +119,14 @@ namespace Microsoft Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSetting(string key, string value); } - // Generated from `Microsoft.AspNetCore.Hosting.IWebHostEnvironment` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.IWebHostEnvironment` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IWebHostEnvironment : Microsoft.Extensions.Hosting.IHostEnvironment { Microsoft.Extensions.FileProviders.IFileProvider WebRootFileProvider { get; set; } string WebRootPath { get; set; } } - // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderContext` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderContext` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WebHostBuilderContext { public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } @@ -134,7 +134,7 @@ namespace Microsoft public WebHostBuilderContext() => throw null; } - // Generated from `Microsoft.AspNetCore.Hosting.WebHostDefaults` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostDefaults` in `Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class WebHostDefaults { public static string ApplicationKey; 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 e7b798434e5..9c74a9e64af 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 @@ -8,7 +8,7 @@ namespace Microsoft { namespace Server { - // Generated from `Microsoft.AspNetCore.Hosting.Server.IHttpApplication<>` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.Server.IHttpApplication<>` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpApplication { TContext CreateContext(Microsoft.AspNetCore.Http.Features.IFeatureCollection contextFeatures); @@ -16,7 +16,7 @@ namespace Microsoft System.Threading.Tasks.Task ProcessRequestAsync(TContext context); } - // Generated from `Microsoft.AspNetCore.Hosting.Server.IServer` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.Server.IServer` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServer : System.IDisposable { Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { get; } @@ -24,14 +24,14 @@ namespace Microsoft System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Hosting.Server.IServerIntegratedAuth` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.Server.IServerIntegratedAuth` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServerIntegratedAuth { string AuthenticationScheme { get; } bool IsEnabled { get; } } - // Generated from `Microsoft.AspNetCore.Hosting.Server.ServerIntegratedAuth` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.Server.ServerIntegratedAuth` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ServerIntegratedAuth : Microsoft.AspNetCore.Hosting.Server.IServerIntegratedAuth { public string AuthenticationScheme { get => throw null; set => throw null; } @@ -41,7 +41,7 @@ namespace Microsoft namespace Abstractions { - // Generated from `Microsoft.AspNetCore.Hosting.Server.Abstractions.IHostContextContainer<>` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.Server.Abstractions.IHostContextContainer<>` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostContextContainer { TContext HostContext { get; set; } @@ -50,7 +50,7 @@ namespace Microsoft } namespace Features { - // Generated from `Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature` in `Microsoft.AspNetCore.Hosting.Server.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServerAddressesFeature { System.Collections.Generic.ICollection Addresses { get; } 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 497e6e8fbee..e20d5d3885a 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 @@ -6,19 +6,19 @@ namespace Microsoft { namespace Hosting { - // Generated from `Microsoft.AspNetCore.Hosting.DelegateStartup` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.DelegateStartup` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Hosting.HostingEnvironmentExtensions` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.HostingEnvironmentExtensions` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static partial class HostingEnvironmentExtensions { } - // Generated from `Microsoft.AspNetCore.Hosting.StartupBase` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.StartupBase` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class StartupBase : Microsoft.AspNetCore.Hosting.IStartup { public abstract void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app); @@ -28,7 +28,7 @@ namespace Microsoft protected StartupBase() => throw null; } - // Generated from `Microsoft.AspNetCore.Hosting.StartupBase<>` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.StartupBase<>` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class StartupBase : Microsoft.AspNetCore.Hosting.StartupBase { public virtual void ConfigureContainer(TBuilder builder) => throw null; @@ -36,7 +36,7 @@ namespace Microsoft public StartupBase(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory) => throw null; } - // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilder` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilder` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WebHostBuilder : Microsoft.AspNetCore.Hosting.IWebHostBuilder { public Microsoft.AspNetCore.Hosting.IWebHost Build() => throw null; @@ -48,23 +48,23 @@ namespace Microsoft public WebHostBuilder() => throw null; } - // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 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) 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 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; } - // Generated from `Microsoft.AspNetCore.Hosting.WebHostExtensions` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostExtensions` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class WebHostExtensions { public static void Run(this Microsoft.AspNetCore.Hosting.IWebHost host) => throw null; @@ -76,25 +76,43 @@ namespace Microsoft namespace Builder { - // Generated from `Microsoft.AspNetCore.Hosting.Builder.ApplicationBuilderFactory` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.Builder.ApplicationBuilderFactory` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Hosting.Builder.IApplicationBuilderFactory` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.Builder.IApplicationBuilderFactory` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApplicationBuilderFactory { Microsoft.AspNetCore.Builder.IApplicationBuilder CreateBuilder(Microsoft.AspNetCore.Http.Features.IFeatureCollection serverFeatures); } + } + namespace Infrastructure + { + // Generated from `Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsConfigureWebHost` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface ISupportsConfigureWebHost + { + Microsoft.Extensions.Hosting.IHostBuilder ConfigureWebHost(System.Action configure, System.Action configureOptions); + } + + // Generated from `Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsStartup` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface ISupportsStartup + { + Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(System.Action configure); + Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(System.Action configure); + Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(System.Type startupType); + Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(System.Func startupFactory); + } + } namespace Server { namespace Features { - // Generated from `Microsoft.AspNetCore.Hosting.Server.Features.ServerAddressesFeature` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.Server.Features.ServerAddressesFeature` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ServerAddressesFeature : Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature { public System.Collections.Generic.ICollection Addresses { get => throw null; } @@ -106,7 +124,7 @@ namespace Microsoft } namespace StaticWebAssets { - // Generated from `Microsoft.AspNetCore.Hosting.StaticWebAssets.StaticWebAssetsLoader` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.StaticWebAssets.StaticWebAssetsLoader` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StaticWebAssetsLoader { public StaticWebAssetsLoader() => throw null; @@ -117,7 +135,7 @@ namespace Microsoft } namespace Http { - // Generated from `Microsoft.AspNetCore.Http.DefaultHttpContextFactory` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.DefaultHttpContextFactory` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultHttpContextFactory : Microsoft.AspNetCore.Http.IHttpContextFactory { public Microsoft.AspNetCore.Http.HttpContext Create(Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) => throw null; @@ -131,14 +149,14 @@ namespace Microsoft { namespace Hosting { - // Generated from `Microsoft.Extensions.Hosting.GenericHostWebHostBuilderExtensions` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.GenericHostWebHostBuilderExtensions` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class GenericHostWebHostBuilderExtensions { - public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureWebHost(this Microsoft.Extensions.Hosting.IHostBuilder builder, System.Action configure, System.Action configureWebHostBuilder) => throw null; 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; } - // Generated from `Microsoft.Extensions.Hosting.WebHostBuilderOptions` in `Microsoft.AspNetCore.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.WebHostBuilderOptions` in `Microsoft.AspNetCore.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WebHostBuilderOptions { public bool SuppressEnvironmentConfiguration { get => throw null; set => throw null; } 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 aa30031e9ed..d86ae3897ef 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,45 +6,45 @@ namespace Microsoft { namespace Html { - // Generated from `Microsoft.AspNetCore.Html.HtmlContentBuilder` in `Microsoft.AspNetCore.Html.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContent + // Generated from `Microsoft.AspNetCore.Html.HtmlContentBuilder` in `Microsoft.AspNetCore.Html.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(string encoded) => throw null; public Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) => throw null; + public Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(string encoded) => throw null; public Microsoft.AspNetCore.Html.IHtmlContentBuilder Clear() => throw null; public void CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; public int Count { get => throw null; } - public HtmlContentBuilder(int capacity) => throw null; - public HtmlContentBuilder(System.Collections.Generic.IList entries) => throw null; public HtmlContentBuilder() => throw null; + public HtmlContentBuilder(System.Collections.Generic.IList entries) => throw null; + public HtmlContentBuilder(int capacity) => 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; } - // Generated from `Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions` in `Microsoft.AspNetCore.Html.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions` in `Microsoft.AspNetCore.Html.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlContentBuilderExtensions { - 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 AppendFormat(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, 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, 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 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 SetContent(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, string unencoded) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContentBuilder SetHtmlContent(this Microsoft.AspNetCore.Html.IHtmlContentBuilder builder, string encoded) => 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; } - // Generated from `Microsoft.AspNetCore.Html.HtmlFormattableString` in `Microsoft.AspNetCore.Html.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Html.HtmlFormattableString` in `Microsoft.AspNetCore.Html.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlFormattableString : Microsoft.AspNetCore.Html.IHtmlContent { - public HtmlFormattableString(string format, params object[] args) => throw null; public HtmlFormattableString(System.IFormatProvider formatProvider, string format, params object[] args) => throw null; + public HtmlFormattableString(string format, params object[] args) => throw null; public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - // Generated from `Microsoft.AspNetCore.Html.HtmlString` in `Microsoft.AspNetCore.Html.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Html.HtmlString` in `Microsoft.AspNetCore.Html.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlString : Microsoft.AspNetCore.Html.IHtmlContent { public static Microsoft.AspNetCore.Html.HtmlString Empty; @@ -55,22 +55,22 @@ namespace Microsoft public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - // Generated from `Microsoft.AspNetCore.Html.IHtmlContent` in `Microsoft.AspNetCore.Html.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Html.IHtmlContent` in `Microsoft.AspNetCore.Html.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHtmlContent { void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder); } - // Generated from `Microsoft.AspNetCore.Html.IHtmlContentBuilder` in `Microsoft.AspNetCore.Html.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IHtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent + // Generated from `Microsoft.AspNetCore.Html.IHtmlContentBuilder` in `Microsoft.AspNetCore.Html.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IHtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentContainer { Microsoft.AspNetCore.Html.IHtmlContentBuilder Append(string unencoded); - Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(string encoded); Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent content); + Microsoft.AspNetCore.Html.IHtmlContentBuilder AppendHtml(string encoded); Microsoft.AspNetCore.Html.IHtmlContentBuilder Clear(); } - // Generated from `Microsoft.AspNetCore.Html.IHtmlContentContainer` in `Microsoft.AspNetCore.Html.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Html.IHtmlContentContainer` in `Microsoft.AspNetCore.Html.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHtmlContentContainer : Microsoft.AspNetCore.Html.IHtmlContent { void CopyTo(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 2d03d06a3e0..4029b83dfed 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.EndpointBuilder` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.EndpointBuilder` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class EndpointBuilder { public abstract Microsoft.AspNetCore.Http.Endpoint Build(); @@ -16,7 +16,7 @@ namespace Microsoft public Microsoft.AspNetCore.Http.RequestDelegate RequestDelegate { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Builder.IApplicationBuilder` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.IApplicationBuilder` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApplicationBuilder { System.IServiceProvider ApplicationServices { get; set; } @@ -27,51 +27,53 @@ namespace Microsoft Microsoft.AspNetCore.Builder.IApplicationBuilder Use(System.Func middleware); } - // Generated from `Microsoft.AspNetCore.Builder.IEndpointConventionBuilder` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.IEndpointConventionBuilder` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IEndpointConventionBuilder { void Add(System.Action convention); } - // Generated from `Microsoft.AspNetCore.Builder.MapExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.MapExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MapExtensions { - 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, 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; } - // Generated from `Microsoft.AspNetCore.Builder.MapWhenExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.MapWhenExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MapWhenExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder MapWhen(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Func predicate, System.Action configuration) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.RunExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.RunExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RunExtensions { public static void Run(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.UseExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.UseExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Builder.UseMiddlewareExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.UseMiddlewareExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class UseMiddlewareExtensions { - 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 Microsoft.AspNetCore.Builder.IApplicationBuilder UseMiddleware(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, params object[] args) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.UsePathBaseExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.UsePathBaseExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class UsePathBaseExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UsePathBase(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString pathBase) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.UseWhenExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.UseWhenExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class UseWhenExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWhen(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Func predicate, System.Action configuration) => throw null; @@ -79,14 +81,14 @@ namespace Microsoft namespace Extensions { - // Generated from `Microsoft.AspNetCore.Builder.Extensions.MapMiddleware` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.Extensions.MapMiddleware` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Builder.Extensions.MapOptions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.Extensions.MapOptions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MapOptions { public Microsoft.AspNetCore.Http.RequestDelegate Branch { get => throw null; set => throw null; } @@ -95,14 +97,14 @@ namespace Microsoft public bool PreserveMatchedPathSegment { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MapWhenOptions { public Microsoft.AspNetCore.Http.RequestDelegate Branch { get => throw null; set => throw null; } @@ -110,7 +112,7 @@ namespace Microsoft public System.Func Predicate { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Builder.Extensions.UsePathBaseMiddleware` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.Extensions.UsePathBaseMiddleware` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UsePathBaseMiddleware { public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; @@ -123,7 +125,7 @@ namespace Microsoft { namespace Infrastructure { - // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICorsMetadata { } @@ -132,17 +134,17 @@ namespace Microsoft } namespace Http { - // Generated from `Microsoft.AspNetCore.Http.BadHttpRequestException` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.BadHttpRequestException` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BadHttpRequestException : System.IO.IOException { - public BadHttpRequestException(string message, int statusCode, System.Exception innerException) => throw null; - public BadHttpRequestException(string message, int statusCode) => throw null; - public BadHttpRequestException(string message, System.Exception innerException) => throw null; 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, int statusCode, System.Exception innerException) => throw null; public int StatusCode { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.ConnectionInfo` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.ConnectionInfo` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ConnectionInfo { public abstract System.Security.Cryptography.X509Certificates.X509Certificate2 ClientCertificate { get; set; } @@ -153,13 +155,14 @@ namespace Microsoft public abstract int LocalPort { get; set; } public abstract System.Net.IPAddress RemoteIpAddress { get; set; } public abstract int RemotePort { get; set; } + public virtual void RequestClose() => throw null; } - // Generated from `Microsoft.AspNetCore.Http.CookieBuilder` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.CookieBuilder` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieBuilder { - public virtual Microsoft.AspNetCore.Http.CookieOptions Build(Microsoft.AspNetCore.Http.HttpContext context, System.DateTimeOffset expiresFrom) => throw null; 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; } @@ -172,7 +175,7 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Http.CookieSecurePolicy SecurePolicy { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.CookieSecurePolicy` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.CookieSecurePolicy` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum CookieSecurePolicy { Always, @@ -180,7 +183,7 @@ namespace Microsoft SameAsRequest, } - // Generated from `Microsoft.AspNetCore.Http.Endpoint` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Endpoint` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class Endpoint { public string DisplayName { get => throw null; } @@ -190,22 +193,18 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Http.EndpointHttpContextExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.EndpointHttpContextExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Http.EndpointMetadataCollection` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class EndpointMetadataCollection : System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Http.EndpointMetadataCollection` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class EndpointMetadataCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable { - public int Count { get => throw null; } - public static Microsoft.AspNetCore.Http.EndpointMetadataCollection Empty; - public EndpointMetadataCollection(params object[] items) => throw null; - public EndpointMetadataCollection(System.Collections.Generic.IEnumerable items) => throw null; - // Generated from `Microsoft.AspNetCore.Http.EndpointMetadataCollection+Enumerator` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + // Generated from `Microsoft.AspNetCore.Http.EndpointMetadataCollection+Enumerator` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public object Current { get => throw null; } public void Dispose() => throw null; @@ -215,26 +214,30 @@ namespace Microsoft } + 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.IEnumerator System.Collections.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 T GetMetadata() where T : class => throw null; public System.Collections.Generic.IReadOnlyList GetOrderedMetadata() where T : class => throw null; public object this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.FragmentString` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.FragmentString` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 static Microsoft.AspNetCore.Http.FragmentString Empty; - public override bool Equals(object obj) => throw null; public bool Equals(Microsoft.AspNetCore.Http.FragmentString other) => throw null; - public FragmentString(string value) => throw null; + public override bool Equals(object obj) => throw null; // Stub generator skipped constructor - public static Microsoft.AspNetCore.Http.FragmentString FromUriComponent(string uriComponent) => throw null; + 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 override int GetHashCode() => throw null; public bool HasValue { get => throw null; } public override string ToString() => throw null; @@ -242,7 +245,7 @@ namespace Microsoft public string Value { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.HeaderDictionaryExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HeaderDictionaryExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HeaderDictionaryExtensions { public static void Append(this Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, Microsoft.Extensions.Primitives.StringValues value) => throw null; @@ -251,21 +254,21 @@ namespace Microsoft public static void SetCommaSeparatedValues(this Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, params string[] values) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.HostString` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HostString` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 override bool Equals(object obj) => throw null; public bool Equals(Microsoft.AspNetCore.Http.HostString other) => throw null; - public static Microsoft.AspNetCore.Http.HostString FromUriComponent(string uriComponent) => 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 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; - // Stub generator skipped constructor public static bool MatchesAny(Microsoft.Extensions.Primitives.StringSegment value, System.Collections.Generic.IList patterns) => throw null; public int? Port { get => throw null; } public override string ToString() => throw null; @@ -273,7 +276,7 @@ namespace Microsoft public string Value { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.HttpContext` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpContext` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class HttpContext { public abstract void Abort(); @@ -291,7 +294,7 @@ namespace Microsoft public abstract Microsoft.AspNetCore.Http.WebSocketManager WebSockets { get; } } - // Generated from `Microsoft.AspNetCore.Http.HttpMethods` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpMethods` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpMethods { public static string Connect; @@ -316,21 +319,23 @@ namespace Microsoft public static string Trace; } - // Generated from `Microsoft.AspNetCore.Http.HttpProtocol` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpProtocol` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 bool IsHttp09(string protocol) => throw null; public static bool IsHttp10(string protocol) => throw null; public static bool IsHttp11(string protocol) => throw null; public static bool IsHttp2(string protocol) => throw null; public static bool IsHttp3(string protocol) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.HttpRequest` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpRequest` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class HttpRequest { public abstract System.IO.Stream Body { get; set; } @@ -356,7 +361,7 @@ namespace Microsoft public abstract string Scheme { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.HttpResponse` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpResponse` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class HttpResponse { public abstract System.IO.Stream Body { get; set; } @@ -381,66 +386,72 @@ namespace Microsoft public abstract int StatusCode { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.HttpResponseWritingExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpResponseWritingExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Http.IHttpContextAccessor` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.IHttpContextAccessor` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpContextAccessor { Microsoft.AspNetCore.Http.HttpContext HttpContext { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.IHttpContextFactory` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.IHttpContextFactory` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpContextFactory { Microsoft.AspNetCore.Http.HttpContext Create(Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection); void Dispose(Microsoft.AspNetCore.Http.HttpContext httpContext); } - // Generated from `Microsoft.AspNetCore.Http.IMiddleware` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.IMiddleware` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IMiddleware { System.Threading.Tasks.Task InvokeAsync(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Http.RequestDelegate next); } - // Generated from `Microsoft.AspNetCore.Http.IMiddlewareFactory` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.IMiddlewareFactory` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IMiddlewareFactory { Microsoft.AspNetCore.Http.IMiddleware Create(System.Type middlewareType); void Release(Microsoft.AspNetCore.Http.IMiddleware middleware); } - // Generated from `Microsoft.AspNetCore.Http.PathString` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.IResult` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IResult + { + System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Http.HttpContext httpContext); + } + + // Generated from `Microsoft.AspNetCore.Http.PathString` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct PathString : System.IEquatable { public static bool operator !=(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) => 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 string operator +(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.QueryString 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 string Add(Microsoft.AspNetCore.Http.QueryString other) => 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 override bool Equals(object obj) => throw null; - public bool Equals(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType) => throw null; public bool Equals(Microsoft.AspNetCore.Http.PathString other) => throw null; - public static Microsoft.AspNetCore.Http.PathString FromUriComponent(string uriComponent) => 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; } - public PathString(string value) => throw null; // Stub generator skipped constructor - 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 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, System.StringComparison comparisonType) => throw null; - public bool StartsWithSegments(Microsoft.AspNetCore.Http.PathString other) => 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; } @@ -448,35 +459,43 @@ namespace Microsoft public static implicit operator Microsoft.AspNetCore.Http.PathString(string s) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.QueryString` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.QueryString` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(string name, string value) => throw null; public Microsoft.AspNetCore.Http.QueryString Add(Microsoft.AspNetCore.Http.QueryString other) => 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 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 override bool Equals(object obj) => throw null; public bool Equals(Microsoft.AspNetCore.Http.QueryString other) => throw null; - public static Microsoft.AspNetCore.Http.QueryString FromUriComponent(string uriComponent) => 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; } - public QueryString(string value) => 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; } } - // Generated from `Microsoft.AspNetCore.Http.RequestDelegate` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.RequestDelegate` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate System.Threading.Tasks.Task RequestDelegate(Microsoft.AspNetCore.Http.HttpContext context); - // Generated from `Microsoft.AspNetCore.Http.RequestTrailerExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.RequestDelegateResult` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Http.RequestTrailerExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RequestTrailerExtensions { public static bool CheckTrailersAvailable(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; @@ -485,7 +504,7 @@ namespace Microsoft public static bool SupportsTrailers(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.ResponseTrailerExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.ResponseTrailerExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ResponseTrailerExtensions { public static void AppendTrailer(this Microsoft.AspNetCore.Http.HttpResponse response, string trailerName, Microsoft.Extensions.Primitives.StringValues trailerValues) => throw null; @@ -493,7 +512,7 @@ namespace Microsoft public static bool SupportsTrailers(this Microsoft.AspNetCore.Http.HttpResponse response) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.StatusCodes` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.StatusCodes` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class StatusCodes { public const int Status100Continue = default; @@ -563,10 +582,11 @@ namespace Microsoft public const int Status511NetworkAuthenticationRequired = default; } - // Generated from `Microsoft.AspNetCore.Http.WebSocketManager` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.WebSocketManager` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -575,25 +595,92 @@ namespace Microsoft namespace Features { - // Generated from `Microsoft.AspNetCore.Http.Features.IEndpointFeature` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IEndpointFeature` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IEndpointFeature { Microsoft.AspNetCore.Http.Endpoint Endpoint { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IRouteValuesFeature` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IRouteValuesFeature` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRouteValuesFeature { Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get; set; } } } + namespace Metadata + { + // Generated from `Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IAcceptsMetadata + { + System.Collections.Generic.IReadOnlyList ContentTypes { get; } + bool IsOptional { get; } + System.Type RequestType { get; } + } + + // Generated from `Microsoft.AspNetCore.Http.Metadata.IFromBodyMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IFromBodyMetadata + { + bool AllowEmpty { get => throw null; } + } + + // Generated from `Microsoft.AspNetCore.Http.Metadata.IFromHeaderMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IFromHeaderMetadata + { + string Name { get; } + } + + // Generated from `Microsoft.AspNetCore.Http.Metadata.IFromQueryMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IFromQueryMetadata + { + string Name { get; } + } + + // Generated from `Microsoft.AspNetCore.Http.Metadata.IFromRouteMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IFromRouteMetadata + { + string Name { get; } + } + + // Generated from `Microsoft.AspNetCore.Http.Metadata.IFromServiceMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IFromServiceMetadata + { + } + + // Generated from `Microsoft.AspNetCore.Http.Metadata.IProducesResponseTypeMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IProducesResponseTypeMetadata + { + System.Collections.Generic.IEnumerable ContentTypes { get; } + int StatusCode { get; } + System.Type Type { get; } + } + + // Generated from `Microsoft.AspNetCore.Http.Metadata.ITagsMetadata` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface ITagsMetadata + { + System.Collections.Generic.IReadOnlyList Tags { get; } + } + + } } namespace Routing { - // Generated from `Microsoft.AspNetCore.Routing.RouteValueDictionary` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RouteValueDictionary : System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + // Generated from `Microsoft.AspNetCore.Routing.RouteValueDictionary` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 { + // Generated from `Microsoft.AspNetCore.Routing.RouteValueDictionary+Enumerator` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -602,32 +689,19 @@ 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; } - // Generated from `Microsoft.AspNetCore.Routing.RouteValueDictionary+Enumerator` in `Microsoft.AspNetCore.Http.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator> - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - public Enumerator(Microsoft.AspNetCore.Routing.RouteValueDictionary dictionary) => throw null; - // Stub generator skipped constructor - 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.IEnumerator System.Collections.IEnumerable.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; } - public bool Remove(string key, out object value) => throw null; - public bool Remove(string key) => throw null; bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; - public RouteValueDictionary(object values) => 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(object values) => throw null; 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; } 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 0ba5cb98822..e4383f4ead1 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 @@ -8,7 +8,7 @@ namespace Microsoft { namespace Connections { - // Generated from `Microsoft.AspNetCore.Http.Connections.AvailableTransport` in `Microsoft.AspNetCore.Http.Connections.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.AvailableTransport` in `Microsoft.AspNetCore.Http.Connections.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AvailableTransport { public AvailableTransport() => throw null; @@ -16,7 +16,7 @@ namespace Microsoft public string Transport { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Connections.HttpTransportType` in `Microsoft.AspNetCore.Http.Connections.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.HttpTransportType` in `Microsoft.AspNetCore.Http.Connections.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` [System.Flags] public enum HttpTransportType { @@ -26,21 +26,20 @@ namespace Microsoft WebSockets, } - // Generated from `Microsoft.AspNetCore.Http.Connections.HttpTransports` in `Microsoft.AspNetCore.Http.Connections.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.HttpTransports` in `Microsoft.AspNetCore.Http.Connections.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpTransports { public static Microsoft.AspNetCore.Http.Connections.HttpTransportType All; } - // Generated from `Microsoft.AspNetCore.Http.Connections.NegotiateProtocol` in `Microsoft.AspNetCore.Http.Connections.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.NegotiateProtocol` in `Microsoft.AspNetCore.Http.Connections.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class NegotiateProtocol { public static Microsoft.AspNetCore.Http.Connections.NegotiationResponse ParseResponse(System.ReadOnlySpan content) => throw null; - public static Microsoft.AspNetCore.Http.Connections.NegotiationResponse ParseResponse(System.IO.Stream content) => throw null; public static void WriteResponse(Microsoft.AspNetCore.Http.Connections.NegotiationResponse response, System.Buffers.IBufferWriter output) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Connections.NegotiationResponse` in `Microsoft.AspNetCore.Http.Connections.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.NegotiationResponse` in `Microsoft.AspNetCore.Http.Connections.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NegotiationResponse { public string AccessToken { get => throw null; set => throw null; } 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 2ccdae41936..cf4302ce5eb 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 @@ -6,17 +6,17 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilder` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConnectionEndpointRouteBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { public void Add(System.Action convention) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ConnectionEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ConnectionEndpointRouteBuilderExtensions { - 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 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; } @@ -26,14 +26,14 @@ namespace Microsoft { namespace Connections { - // Generated from `Microsoft.AspNetCore.Http.Connections.ConnectionOptions` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.ConnectionOptions` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConnectionOptions { public ConnectionOptions() => throw null; public System.TimeSpan? DisconnectTimeout { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Connections.ConnectionOptionsSetup` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.ConnectionOptionsSetup` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConnectionOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions { public void Configure(Microsoft.AspNetCore.Http.Connections.ConnectionOptions options) => throw null; @@ -41,39 +41,41 @@ namespace Microsoft public static System.TimeSpan DefaultDisconectTimeout; } - // Generated from `Microsoft.AspNetCore.Http.Connections.HttpConnectionContextExtensions` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.HttpConnectionContextExtensions` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpConnectionContextExtensions { public static Microsoft.AspNetCore.Http.HttpContext GetHttpContext(this Microsoft.AspNetCore.Connections.ConnectionContext connection) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.HttpConnectionDispatcherOptions` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Http.Connections.LongPollingOptions` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.LongPollingOptions` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LongPollingOptions { public LongPollingOptions() => throw null; public System.TimeSpan PollTimeout { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Connections.NegotiateMetadata` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.NegotiateMetadata` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NegotiateMetadata { public NegotiateMetadata() => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Connections.WebSocketOptions` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.WebSocketOptions` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WebSocketOptions { public System.TimeSpan CloseTimeout { get => throw null; set => throw null; } @@ -83,13 +85,13 @@ namespace Microsoft namespace Features { - // Generated from `Microsoft.AspNetCore.Http.Connections.Features.IHttpContextFeature` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.Features.IHttpContextFeature` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpContextFeature { Microsoft.AspNetCore.Http.HttpContext HttpContext { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Connections.Features.IHttpTransportFeature` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Connections.Features.IHttpTransportFeature` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpTransportFeature { Microsoft.AspNetCore.Http.Connections.HttpTransportType TransportType { get; } @@ -103,11 +105,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.ConnectionsDependencyInjectionExtensions` in `Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ConnectionsDependencyInjectionExtensions` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ConnectionsDependencyInjectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddConnections(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action options) => throw null; 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; } } @@ -119,7 +121,7 @@ namespace System { namespace Tasks { - /* Duplicate type 'TaskExtensions' is not stubbed in this assembly 'Microsoft.AspNetCore.Http.Connections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'TaskExtensions' is not stubbed in this assembly 'Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ } } 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 2618a8b55df..d07f2c9635c 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 @@ -6,21 +6,21 @@ namespace Microsoft { namespace Http { - // Generated from `Microsoft.AspNetCore.Http.HeaderDictionaryTypeExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HeaderDictionaryTypeExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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.ResponseHeaders GetTypedHeaders(this Microsoft.AspNetCore.Http.HttpResponse response) => 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; } - // Generated from `Microsoft.AspNetCore.Http.HttpContextServerVariableExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpContextServerVariableExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpContextServerVariableExtensions { public static string GetServerVariable(this Microsoft.AspNetCore.Http.HttpContext context, string variableName) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.HttpRequestJsonExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpRequestJsonExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpRequestJsonExtensions { public static bool HasJsonContentType(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; @@ -30,34 +30,59 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Http.HttpResponseJsonExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpResponseJsonExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, 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.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.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.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; } - // Generated from `Microsoft.AspNetCore.Http.ResponseExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpValidationProblemDetails` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Http.RequestDelegateFactory` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static class RequestDelegateFactory + { + public static Microsoft.AspNetCore.Http.RequestDelegateResult Create(System.Delegate handler, Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions options = default(Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions)) => 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)) => throw null; + } + + // Generated from `Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class RequestDelegateFactoryOptions + { + public bool DisableInferBodyFromParameters { 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; } + } + + // Generated from `Microsoft.AspNetCore.Http.ResponseExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Http.SendFileResponseExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.SendFileResponseExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class SendFileResponseExtensions { - 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 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; } - // Generated from `Microsoft.AspNetCore.Http.SessionExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.SessionExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class SessionExtensions { public static System.Byte[] Get(this Microsoft.AspNetCore.Http.ISession session, string key) => throw null; @@ -67,38 +92,45 @@ namespace Microsoft public static void SetString(this Microsoft.AspNetCore.Http.ISession session, string key, string value) => throw null; } + // Generated from `Microsoft.AspNetCore.Http.TagsAttribute` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 { - // Generated from `Microsoft.AspNetCore.Http.Extensions.HttpRequestMultipartExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Extensions.HttpRequestMultipartExtensions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpRequestMultipartExtensions { public static string GetMultipartBoundary(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Extensions.QueryBuilder` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class QueryBuilder : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable> + // Generated from `Microsoft.AspNetCore.Http.Extensions.QueryBuilder` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class QueryBuilder : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { - public void Add(string key, string value) => throw null; public void Add(string key, System.Collections.Generic.IEnumerable values) => throw null; + public void Add(string key, string value) => 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(System.Collections.Generic.IEnumerable> parameters) => throw null; - public QueryBuilder(System.Collections.Generic.IEnumerable> parameters) => 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; } - // Generated from `Microsoft.AspNetCore.Http.Extensions.StreamCopyOperation` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Extensions.StreamCopyOperation` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class StreamCopyOperation { - 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, 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; } - // Generated from `Microsoft.AspNetCore.Http.Extensions.UriHelper` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Extensions.UriHelper` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -113,7 +145,7 @@ namespace Microsoft } namespace Headers { - // Generated from `Microsoft.AspNetCore.Http.Headers.RequestHeaders` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Headers.RequestHeaders` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RequestHeaders { public System.Collections.Generic.IList Accept { get => throw null; set => throw null; } @@ -147,7 +179,7 @@ namespace Microsoft public void SetList(string name, System.Collections.Generic.IList values) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Headers.ResponseHeaders` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Headers.ResponseHeaders` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResponseHeaders { public void Append(string name, object value) => throw null; @@ -174,7 +206,7 @@ namespace Microsoft } namespace Json { - // Generated from `Microsoft.AspNetCore.Http.Json.JsonOptions` in `Microsoft.AspNetCore.Http.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Json.JsonOptions` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class JsonOptions { public JsonOptions() => throw null; @@ -183,5 +215,20 @@ namespace Microsoft } } + namespace Mvc + { + // Generated from `Microsoft.AspNetCore.Mvc.ProblemDetails` in `Microsoft.AspNetCore.Http.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } + } + + } } } 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 cadb1e9668e..78a158bf731 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Http { - // Generated from `Microsoft.AspNetCore.Http.CookieOptions` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.CookieOptions` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieOptions { public CookieOptions() => throw null; @@ -20,8 +20,8 @@ namespace Microsoft public bool Secure { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.IFormCollection` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IFormCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable> + // Generated from `Microsoft.AspNetCore.Http.IFormCollection` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IFormCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { bool ContainsKey(string key); int Count { get; } @@ -31,7 +31,7 @@ namespace Microsoft bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value); } - // Generated from `Microsoft.AspNetCore.Http.IFormFile` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.IFormFile` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFormFile { string ContentDisposition { get; } @@ -45,23 +45,112 @@ namespace Microsoft System.IO.Stream OpenReadStream(); } - // Generated from `Microsoft.AspNetCore.Http.IFormFileCollection` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IFormFileCollection : System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Http.IFormFileCollection` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } - // Generated from `Microsoft.AspNetCore.Http.IHeaderDictionary` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IHeaderDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + // Generated from `Microsoft.AspNetCore.Http.IHeaderDictionary` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } - // Generated from `Microsoft.AspNetCore.Http.IQueryCollection` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IQueryCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable> + // Generated from `Microsoft.AspNetCore.Http.IQueryCollection` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IQueryCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { bool ContainsKey(string key); int Count { get; } @@ -70,8 +159,8 @@ namespace Microsoft bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value); } - // Generated from `Microsoft.AspNetCore.Http.IRequestCookieCollection` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IRequestCookieCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable> + // Generated from `Microsoft.AspNetCore.Http.IRequestCookieCollection` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IRequestCookieCollection : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { bool ContainsKey(string key); int Count { get; } @@ -80,16 +169,17 @@ namespace Microsoft bool TryGetValue(string key, out string value); } - // Generated from `Microsoft.AspNetCore.Http.IResponseCookies` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.IResponseCookies` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IResponseCookies { - void Append(string key, string value, Microsoft.AspNetCore.Http.CookieOptions options); + void Append(System.ReadOnlySpan> keyValuePairs, Microsoft.AspNetCore.Http.CookieOptions options) => throw null; void Append(string key, string value); - void Delete(string key, Microsoft.AspNetCore.Http.CookieOptions options); + void Append(string key, string value, Microsoft.AspNetCore.Http.CookieOptions options); void Delete(string key); + void Delete(string key, Microsoft.AspNetCore.Http.CookieOptions options); } - // Generated from `Microsoft.AspNetCore.Http.ISession` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.ISession` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISession { void Clear(); @@ -103,7 +193,7 @@ namespace Microsoft bool TryGetValue(string key, out System.Byte[] value); } - // Generated from `Microsoft.AspNetCore.Http.SameSiteMode` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.SameSiteMode` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum SameSiteMode { Lax, @@ -112,53 +202,20 @@ namespace Microsoft Unspecified, } - // Generated from `Microsoft.AspNetCore.Http.WebSocketAcceptContext` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.WebSocketAcceptContext` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 { - // Generated from `Microsoft.AspNetCore.Http.Features.FeatureCollection` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FeatureCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, Microsoft.AspNetCore.Http.Features.IFeatureCollection - { - public FeatureCollection(Microsoft.AspNetCore.Http.Features.IFeatureCollection defaults) => throw null; - public FeatureCollection() => 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 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; - } - - // Generated from `Microsoft.AspNetCore.Http.Features.FeatureReference<>` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - 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; - } - - // Generated from `Microsoft.AspNetCore.Http.Features.FeatureReferences<>` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct FeatureReferences - { - public TCache Cache; - public Microsoft.AspNetCore.Http.Features.IFeatureCollection Collection { get => throw null; } - public FeatureReferences(Microsoft.AspNetCore.Http.Features.IFeatureCollection collection) => throw null; - // Stub generator skipped constructor - public TFeature Fetch(ref TFeature cached, System.Func factory) where TFeature : class => throw null; - public TFeature Fetch(ref TFeature cached, TState state, System.Func factory) where TFeature : class => throw null; - public void Initalize(Microsoft.AspNetCore.Http.Features.IFeatureCollection collection, int revision) => throw null; - public void Initalize(Microsoft.AspNetCore.Http.Features.IFeatureCollection collection) => throw null; - public int Revision { get => throw null; } - } - - // Generated from `Microsoft.AspNetCore.Http.Features.HttpsCompressionMode` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.HttpsCompressionMode` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum HttpsCompressionMode { Compress, @@ -166,17 +223,13 @@ namespace Microsoft DoNotCompress, } - // Generated from `Microsoft.AspNetCore.Http.Features.IFeatureCollection` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IFeatureCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable> + // Generated from `Microsoft.AspNetCore.Http.Features.IBadRequestExceptionFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IBadRequestExceptionFeature { - TFeature Get(); - bool IsReadOnly { get; } - object this[System.Type key] { get; set; } - int Revision { get; } - void Set(TFeature instance); + System.Exception Error { get; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IFormFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IFormFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFormFeature { Microsoft.AspNetCore.Http.IFormCollection Form { get; set; } @@ -185,20 +238,13 @@ namespace Microsoft System.Threading.Tasks.Task ReadFormAsync(System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpBodyControlFeature { bool AllowSynchronousIO { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpBufferingFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IHttpBufferingFeature - { - void DisableRequestBuffering(); - void DisableResponseBuffering(); - } - - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpConnectionFeature { string ConnectionId { get; set; } @@ -208,20 +254,20 @@ namespace Microsoft int RemotePort { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpMaxRequestBodySizeFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpMaxRequestBodySizeFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpMaxRequestBodySizeFeature { bool IsReadOnly { get; } System.Int64? MaxRequestBodySize { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestBodyDetectionFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestBodyDetectionFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpRequestBodyDetectionFeature { bool CanHaveBody { get; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpRequestFeature { System.IO.Stream Body { get; set; } @@ -235,33 +281,33 @@ namespace Microsoft string Scheme { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpRequestIdentifierFeature { string TraceIdentifier { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpRequestLifetimeFeature { void Abort(); System.Threading.CancellationToken RequestAborted { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestTrailersFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpRequestTrailersFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpRequestTrailersFeature { bool Available { get; } Microsoft.AspNetCore.Http.IHeaderDictionary Trailers { get; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpResetFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpResetFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpResetFeature { void Reset(int errorCode); } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpResponseBodyFeature { System.Threading.Tasks.Task CompleteAsync(); @@ -272,7 +318,7 @@ namespace Microsoft System.IO.Pipelines.PipeWriter Writer { get; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpResponseFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpResponseFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpResponseFeature { System.IO.Stream Body { get; set; } @@ -284,101 +330,95 @@ namespace Microsoft int StatusCode { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpResponseTrailersFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpResponseTrailersFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpResponseTrailersFeature { Microsoft.AspNetCore.Http.IHeaderDictionary Trailers { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpSendFileFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IHttpSendFileFeature - { - System.Threading.Tasks.Task SendFileAsync(string path, System.Int64 offset, System.Int64? count, System.Threading.CancellationToken cancellation); - } - - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpUpgradeFeature { bool IsUpgradableRequest { get; } System.Threading.Tasks.Task UpgradeAsync(); } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpWebSocketFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpWebSocketFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpWebSocketFeature { System.Threading.Tasks.Task AcceptAsync(Microsoft.AspNetCore.Http.WebSocketAcceptContext context); bool IsWebSocketRequest { get; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IHttpsCompressionFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpsCompressionFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpsCompressionFeature { Microsoft.AspNetCore.Http.Features.HttpsCompressionMode Mode { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IItemsFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IItemsFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IItemsFeature { System.Collections.Generic.IDictionary Items { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IQueryFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IQueryFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IQueryFeature { Microsoft.AspNetCore.Http.IQueryCollection Query { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRequestBodyPipeFeature { System.IO.Pipelines.PipeReader Reader { get; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IRequestCookiesFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IRequestCookiesFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRequestCookiesFeature { Microsoft.AspNetCore.Http.IRequestCookieCollection Cookies { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IResponseCookiesFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IResponseCookiesFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IResponseCookiesFeature { Microsoft.AspNetCore.Http.IResponseCookies Cookies { get; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IServerVariablesFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IServerVariablesFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServerVariablesFeature { string this[string variableName] { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServiceProvidersFeature { System.IServiceProvider RequestServices { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.ISessionFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.ISessionFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISessionFeature { Microsoft.AspNetCore.Http.ISession Session { get; set; } } - // Generated from `Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITlsConnectionFeature { System.Security.Cryptography.X509Certificates.X509Certificate2 ClientCertificate { get; set; } System.Threading.Tasks.Task GetClientCertificateAsync(System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Http.Features.ITlsTokenBindingFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.ITlsTokenBindingFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITlsTokenBindingFeature { System.Byte[] GetProvidedTokenBindingId(); System.Byte[] GetReferredTokenBindingId(); } - // Generated from `Microsoft.AspNetCore.Http.Features.ITrackingConsentFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.ITrackingConsentFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITrackingConsentFeature { bool CanTrack { get; } @@ -391,7 +431,7 @@ namespace Microsoft namespace Authentication { - // Generated from `Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature` in `Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature` in `Microsoft.AspNetCore.Http.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpAuthenticationFeature { System.Security.Claims.ClaimsPrincipal User { get; 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 new file mode 100644 index 00000000000..e5c417e5ffc --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Http.Results.cs @@ -0,0 +1,54 @@ +// This file contains auto-generated code. + +namespace Microsoft +{ + namespace AspNetCore + { + namespace Http + { + // Generated from `Microsoft.AspNetCore.Http.IResultExtensions` in `Microsoft.AspNetCore.Http.Results, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IResultExtensions + { + } + + // Generated from `Microsoft.AspNetCore.Http.Results` in `Microsoft.AspNetCore.Http.Results, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static class Results + { + public static Microsoft.AspNetCore.Http.IResult Accepted(string uri = default(string), object value = default(object)) => throw null; + public static Microsoft.AspNetCore.Http.IResult AcceptedAtRoute(string routeName = default(string), object routeValues = default(object), object value = default(object)) => throw null; + public static Microsoft.AspNetCore.Http.IResult BadRequest(object error = default(object)) => 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 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 Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; + public static Microsoft.AspNetCore.Http.IResult Content(string content, string contentType = default(string), System.Text.Encoding contentEncoding = default(System.Text.Encoding)) => throw null; + public static Microsoft.AspNetCore.Http.IResult Created(System.Uri uri, object value) => throw null; + public static Microsoft.AspNetCore.Http.IResult Created(string uri, object 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.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(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; + public static Microsoft.AspNetCore.Http.IResult Json(object data, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), string contentType = default(string), int? statusCode = default(int?)) => throw null; + public static Microsoft.AspNetCore.Http.IResult LocalRedirect(string localUrl, bool permanent = default(bool), bool preserveMethod = default(bool)) => throw null; + public static Microsoft.AspNetCore.Http.IResult NoContent() => throw null; + public static Microsoft.AspNetCore.Http.IResult NotFound(object value = default(object)) => throw null; + public static Microsoft.AspNetCore.Http.IResult Ok(object value = default(object)) => 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 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.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(string content, string contentType = default(string), System.Text.Encoding contentEncoding = default(System.Text.Encoding)) => 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 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; + } + + } + } +} 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 e1ac5d557ae..6a7d7b8c988 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 @@ -6,11 +6,11 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.ApplicationBuilder` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ApplicationBuilder` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApplicationBuilder : Microsoft.AspNetCore.Builder.IApplicationBuilder { - public ApplicationBuilder(System.IServiceProvider serviceProvider, object server) => 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; @@ -22,7 +22,7 @@ namespace Microsoft } namespace Http { - // Generated from `Microsoft.AspNetCore.Http.BindingAddress` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.BindingAddress` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindingAddress { public BindingAddress() => throw null; @@ -32,19 +32,19 @@ namespace Microsoft public bool IsUnixPipe { get => throw null; } public static Microsoft.AspNetCore.Http.BindingAddress Parse(string address) => throw null; public string PathBase { get => throw null; } - public int Port { get => throw null; set => throw null; } + public int Port { get => throw null; } public string Scheme { get => throw null; } public override string ToString() => throw null; public string UnixPipePath { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.DefaultHttpContext` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.DefaultHttpContext` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultHttpContext : Microsoft.AspNetCore.Http.HttpContext { public override void Abort() => throw null; public override Microsoft.AspNetCore.Http.ConnectionInfo Connection { get => throw null; } - public DefaultHttpContext(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => 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.HttpContext HttpContext { get => throw null; } @@ -62,14 +62,11 @@ namespace Microsoft public override Microsoft.AspNetCore.Http.WebSocketManager WebSockets { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.FormCollection` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FormCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, Microsoft.AspNetCore.Http.IFormCollection + // Generated from `Microsoft.AspNetCore.Http.FormCollection` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 static Microsoft.AspNetCore.Http.FormCollection Empty; - // Generated from `Microsoft.AspNetCore.Http.FormCollection+Enumerator` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator> + // Generated from `Microsoft.AspNetCore.Http.FormCollection+Enumerator` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -80,17 +77,20 @@ namespace Microsoft } + 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.IEnumerator System.Collections.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 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; } - // Generated from `Microsoft.AspNetCore.Http.FormFile` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.FormFile` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FormFile : Microsoft.AspNetCore.Http.IFormFile { public string ContentDisposition { get => throw null; set => throw null; } @@ -105,8 +105,8 @@ namespace Microsoft public System.IO.Stream OpenReadStream() => throw null; } - // Generated from `Microsoft.AspNetCore.Http.FormFileCollection` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FormFileCollection : System.Collections.Generic.List, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IEnumerable, Microsoft.AspNetCore.Http.IFormFileCollection + // Generated from `Microsoft.AspNetCore.Http.FormFileCollection` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -114,19 +114,11 @@ namespace Microsoft public Microsoft.AspNetCore.Http.IFormFile this[string name] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.HeaderDictionary` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HeaderDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, Microsoft.AspNetCore.Http.IHeaderDictionary + // Generated from `Microsoft.AspNetCore.Http.HeaderDictionary` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class HeaderDictionary : Microsoft.AspNetCore.Http.IHeaderDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { - public void Add(string key, Microsoft.Extensions.Primitives.StringValues 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 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; } - // Generated from `Microsoft.AspNetCore.Http.HeaderDictionary+Enumerator` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator> + // Generated from `Microsoft.AspNetCore.Http.HeaderDictionary+Enumerator` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -137,50 +129,47 @@ namespace Microsoft } + 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.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - public HeaderDictionary(int capacity) => throw null; - public HeaderDictionary(System.Collections.Generic.Dictionary store) => 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(string key) => 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; } } - // Generated from `Microsoft.AspNetCore.Http.HttpContextAccessor` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpContextAccessor` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpContextAccessor : Microsoft.AspNetCore.Http.IHttpContextAccessor { public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set => throw null; } public HttpContextAccessor() => throw null; } - // Generated from `Microsoft.AspNetCore.Http.HttpContextFactory` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HttpContextFactory : Microsoft.AspNetCore.Http.IHttpContextFactory - { - public Microsoft.AspNetCore.Http.HttpContext Create(Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) => throw null; - public void Dispose(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public HttpContextFactory(Microsoft.Extensions.Options.IOptions formOptions, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory serviceScopeFactory, Microsoft.AspNetCore.Http.IHttpContextAccessor httpContextAccessor) => throw null; - public HttpContextFactory(Microsoft.Extensions.Options.IOptions formOptions, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory serviceScopeFactory) => throw null; - public HttpContextFactory(Microsoft.Extensions.Options.IOptions formOptions, Microsoft.AspNetCore.Http.IHttpContextAccessor httpContextAccessor) => throw null; - public HttpContextFactory(Microsoft.Extensions.Options.IOptions formOptions) => throw null; - } - - // Generated from `Microsoft.AspNetCore.Http.HttpRequestRewindExtensions` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.HttpRequestRewindExtensions` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpRequestRewindExtensions { - 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, int bufferThreshold) => throw null; - public static void EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest request, System.Int64 bufferLimit) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Http.MiddlewareFactory` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.MiddlewareFactory` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MiddlewareFactory : Microsoft.AspNetCore.Http.IMiddlewareFactory { public Microsoft.AspNetCore.Http.IMiddleware Create(System.Type middlewareType) => throw null; @@ -188,14 +177,11 @@ namespace Microsoft public void Release(Microsoft.AspNetCore.Http.IMiddleware middleware) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.QueryCollection` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class QueryCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, Microsoft.AspNetCore.Http.IQueryCollection + // Generated from `Microsoft.AspNetCore.Http.QueryCollection` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 static Microsoft.AspNetCore.Http.QueryCollection Empty; - // Generated from `Microsoft.AspNetCore.Http.QueryCollection+Enumerator` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator> + // Generated from `Microsoft.AspNetCore.Http.QueryCollection+Enumerator` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -206,31 +192,34 @@ namespace Microsoft } + 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.IEnumerator System.Collections.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 Microsoft.Extensions.Primitives.StringValues this[string key] { get => throw null; } public System.Collections.Generic.ICollection Keys { get => throw null; } - public QueryCollection(int capacity) => 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() => throw null; + public QueryCollection(int capacity) => throw null; public bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.RequestFormReaderExtensions` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.RequestFormReaderExtensions` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Http.SendFileFallback` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.SendFileFallback` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Http.StreamResponseBodyFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.StreamResponseBodyFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StreamResponseBodyFeature : Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature { public virtual System.Threading.Tasks.Task CompleteAsync() => throw null; @@ -240,34 +229,34 @@ namespace Microsoft 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, Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature priorFeature) => 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 { - // Generated from `Microsoft.AspNetCore.Http.Features.DefaultSessionFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.DefaultSessionFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultSessionFeature : Microsoft.AspNetCore.Http.Features.ISessionFeature { public DefaultSessionFeature() => throw null; public Microsoft.AspNetCore.Http.ISession Session { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Features.FormFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.FormFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.AspNetCore.Http.Features.FormOptions options) => 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 bool HasFormContentType { get => throw null; } public Microsoft.AspNetCore.Http.IFormCollection ReadForm() => throw null; - public System.Threading.Tasks.Task ReadFormAsync(System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task ReadFormAsync() => throw null; + public System.Threading.Tasks.Task ReadFormAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Features.FormOptions` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.FormOptions` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FormOptions { public bool BufferBody { get => throw null; set => throw null; } @@ -287,7 +276,7 @@ namespace Microsoft public int ValueLengthLimit { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Features.HttpConnectionFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.HttpConnectionFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpConnectionFeature : Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature { public string ConnectionId { get => throw null; set => throw null; } @@ -298,7 +287,7 @@ namespace Microsoft public int RemotePort { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Features.HttpRequestFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.HttpRequestFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpRequestFeature : Microsoft.AspNetCore.Http.Features.IHttpRequestFeature { public System.IO.Stream Body { get => throw null; set => throw null; } @@ -313,14 +302,14 @@ namespace Microsoft public string Scheme { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Features.HttpRequestIdentifierFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.HttpRequestIdentifierFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpRequestIdentifierFeature : Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature { public HttpRequestIdentifierFeature() => throw null; public string TraceIdentifier { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Features.HttpRequestLifetimeFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.HttpRequestLifetimeFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpRequestLifetimeFeature : Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature { public void Abort() => throw null; @@ -328,7 +317,7 @@ namespace Microsoft public System.Threading.CancellationToken RequestAborted { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Features.HttpResponseFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.HttpResponseFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpResponseFeature : Microsoft.AspNetCore.Http.Features.IHttpResponseFeature { public System.IO.Stream Body { get => throw null; set => throw null; } @@ -341,38 +330,44 @@ namespace Microsoft public int StatusCode { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Http.Features.ItemsFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.IHttpActivityFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IHttpActivityFeature + { + System.Diagnostics.Activity Activity { get; set; } + } + + // Generated from `Microsoft.AspNetCore.Http.Features.ItemsFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ItemsFeature : Microsoft.AspNetCore.Http.Features.IItemsFeature { public System.Collections.Generic.IDictionary Items { get => throw null; set => throw null; } public ItemsFeature() => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Features.QueryFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.QueryFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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.IQueryCollection query) => throw null; public QueryFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; + public QueryFeature(Microsoft.AspNetCore.Http.IQueryCollection query) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Features.RequestBodyPipeFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.RequestBodyPipeFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Http.Features.RequestCookiesFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.RequestCookiesFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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.IRequestCookieCollection cookies) => throw null; public RequestCookiesFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection features) => throw null; + public RequestCookiesFeature(Microsoft.AspNetCore.Http.IRequestCookieCollection cookies) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Features.RequestServicesFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RequestServicesFeature : System.IDisposable, System.IAsyncDisposable, Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature + // Generated from `Microsoft.AspNetCore.Http.Features.RequestServicesFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class RequestServicesFeature : Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature, System.IAsyncDisposable, System.IDisposable { public void Dispose() => throw null; public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; @@ -380,29 +375,29 @@ namespace Microsoft public RequestServicesFeature(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory scopeFactory) => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Features.ResponseCookiesFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.ResponseCookiesFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.Extensions.ObjectPool.ObjectPool builderPool) => 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; } - // Generated from `Microsoft.AspNetCore.Http.Features.RouteValuesFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.RouteValuesFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteValuesFeature : Microsoft.AspNetCore.Http.Features.IRouteValuesFeature { public Microsoft.AspNetCore.Routing.RouteValueDictionary RouteValues { get => throw null; set => throw null; } public RouteValuesFeature() => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Features.ServiceProvidersFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.ServiceProvidersFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ServiceProvidersFeature : Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature { public System.IServiceProvider RequestServices { get => throw null; set => throw null; } public ServiceProvidersFeature() => throw null; } - // Generated from `Microsoft.AspNetCore.Http.Features.TlsConnectionFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.TlsConnectionFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TlsConnectionFeature : Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature { public System.Security.Cryptography.X509Certificates.X509Certificate2 ClientCertificate { get => throw null; set => throw null; } @@ -412,7 +407,7 @@ namespace Microsoft namespace Authentication { - // Generated from `Microsoft.AspNetCore.Http.Features.Authentication.HttpAuthenticationFeature` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Http.Features.Authentication.HttpAuthenticationFeature` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpAuthenticationFeature : Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature { public HttpAuthenticationFeature() => throw null; @@ -427,7 +422,7 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.HttpServiceCollectionExtensions` in `Microsoft.AspNetCore.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.HttpServiceCollectionExtensions` in `Microsoft.AspNetCore.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 new file mode 100644 index 00000000000..baf2614c14a --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.HttpLogging.cs @@ -0,0 +1,121 @@ +// This file contains auto-generated code. + +namespace Microsoft +{ + namespace AspNetCore + { + namespace Builder + { + // Generated from `Microsoft.AspNetCore.Builder.HttpLoggingBuilderExtensions` in `Microsoft.AspNetCore.HttpLogging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static 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 + { + // Generated from `Microsoft.AspNetCore.HttpLogging.HttpLoggingFields` in `Microsoft.AspNetCore.HttpLogging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + [System.Flags] + public enum HttpLoggingFields + { + All, + None, + Request, + RequestBody, + RequestHeaders, + RequestMethod, + RequestPath, + RequestProperties, + RequestPropertiesAndHeaders, + RequestProtocol, + RequestQuery, + RequestScheme, + RequestTrailers, + Response, + ResponseBody, + ResponseHeaders, + ResponsePropertiesAndHeaders, + ResponseStatusCode, + ResponseTrailers, + } + + // Generated from `Microsoft.AspNetCore.HttpLogging.HttpLoggingOptions` in `Microsoft.AspNetCore.HttpLogging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class HttpLoggingOptions + { + public HttpLoggingOptions() => throw null; + public Microsoft.AspNetCore.HttpLogging.HttpLoggingFields LoggingFields { get => throw null; set => throw null; } + public Microsoft.AspNetCore.HttpLogging.MediaTypeOptions MediaTypeOptions { get => throw null; } + public int RequestBodyLogLimit { get => throw null; set => throw null; } + public System.Collections.Generic.ISet RequestHeaders { get => throw null; } + public int ResponseBodyLogLimit { get => throw null; set => throw null; } + public System.Collections.Generic.ISet ResponseHeaders { get => throw null; } + } + + // Generated from `Microsoft.AspNetCore.HttpLogging.MediaTypeOptions` in `Microsoft.AspNetCore.HttpLogging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MediaTypeOptions + { + public void AddBinary(Microsoft.Net.Http.Headers.MediaTypeHeaderValue mediaType) => throw null; + public void AddBinary(string contentType) => throw null; + public void AddText(string contentType) => throw null; + public void AddText(string contentType, System.Text.Encoding encoding) => throw null; + public void Clear() => throw null; + } + + // Generated from `Microsoft.AspNetCore.HttpLogging.W3CLoggerOptions` in `Microsoft.AspNetCore.HttpLogging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class W3CLoggerOptions + { + 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; + } + + // Generated from `Microsoft.AspNetCore.HttpLogging.W3CLoggingFields` in `Microsoft.AspNetCore.HttpLogging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + [System.Flags] + public enum W3CLoggingFields + { + All, + ClientIpAddress, + ConnectionInfoFields, + Cookie, + Date, + Host, + Method, + None, + ProtocolStatus, + ProtocolVersion, + Referer, + Request, + RequestHeaders, + ServerIpAddress, + ServerName, + ServerPort, + Time, + TimeTaken, + UriQuery, + UriStem, + UserAgent, + UserName, + } + + } + } + namespace Extensions + { + namespace DependencyInjection + { + // Generated from `Microsoft.Extensions.DependencyInjection.HttpLoggingServicesExtensions` in `Microsoft.AspNetCore.HttpLogging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static 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 57a34e8bdc5..f87c95cea3b 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 @@ -6,20 +6,20 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.CertificateForwardingBuilderExtensions` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.CertificateForwardingBuilderExtensions` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CertificateForwardingBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseCertificateForwarding(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.ForwardedHeadersExtensions` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ForwardedHeadersExtensions` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ForwardedHeadersExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseForwardedHeaders(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, Microsoft.AspNetCore.Builder.ForwardedHeadersOptions options) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.ForwardedHeadersOptions` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ForwardedHeadersOptions` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ForwardedHeadersOptions { public System.Collections.Generic.IList AllowedHosts { get => throw null; set => throw null; } @@ -37,14 +37,14 @@ namespace Microsoft public bool RequireHeaderSymmetry { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Builder.HttpMethodOverrideExtensions` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HttpMethodOverrideExtensions` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpMethodOverrideExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHttpMethodOverride(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, Microsoft.AspNetCore.Builder.HttpMethodOverrideOptions options) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.HttpMethodOverrideOptions` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HttpMethodOverrideOptions` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpMethodOverrideOptions { public string FormFieldName { get => throw null; set => throw null; } @@ -54,14 +54,14 @@ namespace Microsoft } namespace HttpOverrides { - // Generated from `Microsoft.AspNetCore.HttpOverrides.CertificateForwardingMiddleware` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpOverrides.CertificateForwardingMiddleware` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CertificateForwardingMiddleware { 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; } - // Generated from `Microsoft.AspNetCore.HttpOverrides.CertificateForwardingOptions` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpOverrides.CertificateForwardingOptions` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CertificateForwardingOptions { public CertificateForwardingOptions() => throw null; @@ -69,7 +69,7 @@ namespace Microsoft public System.Func HeaderConverter; } - // Generated from `Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` [System.Flags] public enum ForwardedHeaders { @@ -80,7 +80,7 @@ namespace Microsoft XForwardedProto, } - // Generated from `Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersDefaults` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersDefaults` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ForwardedHeadersDefaults { public static string XForwardedForHeaderName { get => throw null; } @@ -91,7 +91,7 @@ namespace Microsoft public static string XOriginalProtoHeaderName { get => throw null; } } - // Generated from `Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersMiddleware` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersMiddleware` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ForwardedHeadersMiddleware { public void ApplyForwarders(Microsoft.AspNetCore.Http.HttpContext context) => throw null; @@ -99,14 +99,14 @@ namespace Microsoft public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.HttpOverrides.HttpMethodOverrideMiddleware` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpOverrides.HttpMethodOverrideMiddleware` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.HttpOverrides.IPNetwork` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpOverrides.IPNetwork` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IPNetwork { public bool Contains(System.Net.IPAddress address) => throw null; @@ -121,7 +121,7 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.CertificateForwardingServiceExtensions` in `Microsoft.AspNetCore.HttpOverrides, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.CertificateForwardingServiceExtensions` in `Microsoft.AspNetCore.HttpOverrides, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 ba8a9094347..bd0c68d9de7 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 @@ -6,25 +6,25 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.HstsBuilderExtensions` in `Microsoft.AspNetCore.HttpsPolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HstsBuilderExtensions` in `Microsoft.AspNetCore.HttpsPolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HstsBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHsts(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.HstsServicesExtensions` in `Microsoft.AspNetCore.HttpsPolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HstsServicesExtensions` in `Microsoft.AspNetCore.HttpsPolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HstsServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHsts(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.HttpsPolicyBuilderExtensions` in `Microsoft.AspNetCore.HttpsPolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HttpsPolicyBuilderExtensions` in `Microsoft.AspNetCore.HttpsPolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpsPolicyBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseHttpsRedirection(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.HttpsRedirectionServicesExtensions` in `Microsoft.AspNetCore.HttpsPolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HttpsRedirectionServicesExtensions` in `Microsoft.AspNetCore.HttpsPolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpsRedirectionServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHttpsRedirection(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; @@ -33,15 +33,15 @@ namespace Microsoft } namespace HttpsPolicy { - // Generated from `Microsoft.AspNetCore.HttpsPolicy.HstsMiddleware` in `Microsoft.AspNetCore.HttpsPolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpsPolicy.HstsMiddleware` in `Microsoft.AspNetCore.HttpsPolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HstsMiddleware { - 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 HstsMiddleware(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; } - // Generated from `Microsoft.AspNetCore.HttpsPolicy.HstsOptions` in `Microsoft.AspNetCore.HttpsPolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpsPolicy.HstsOptions` in `Microsoft.AspNetCore.HttpsPolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HstsOptions { public System.Collections.Generic.IList ExcludedHosts { get => throw null; } @@ -51,15 +51,15 @@ namespace Microsoft public bool Preload { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware` in `Microsoft.AspNetCore.HttpsPolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware` in `Microsoft.AspNetCore.HttpsPolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature serverAddressesFeature) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionOptions` in `Microsoft.AspNetCore.HttpsPolicy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionOptions` in `Microsoft.AspNetCore.HttpsPolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpsRedirectionOptions { public int? HttpsPort { get => throw null; set => 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 cfeb51d55b2..e02748808fd 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 @@ -6,21 +6,21 @@ namespace Microsoft { namespace Identity { - // Generated from `Microsoft.AspNetCore.Identity.AspNetRoleManager<>` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.AspNetRoleManager<>` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Identity.AspNetUserManager<>` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.AspNetUserManager<>` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Identity.DataProtectionTokenProviderOptions` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.DataProtectionTokenProviderOptions` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DataProtectionTokenProviderOptions { public DataProtectionTokenProviderOptions() => throw null; @@ -28,7 +28,7 @@ namespace Microsoft public System.TimeSpan TokenLifespan { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.DataProtectorTokenProvider<>` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.DataProtectorTokenProvider<>` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -41,7 +41,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.ExternalLoginInfo` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.ExternalLoginInfo` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ExternalLoginInfo : Microsoft.AspNetCore.Identity.UserLoginInfo { public Microsoft.AspNetCore.Authentication.AuthenticationProperties AuthenticationProperties { get => throw null; set => throw null; } @@ -50,26 +50,26 @@ namespace Microsoft public System.Security.Claims.ClaimsPrincipal Principal { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.ISecurityStampValidator` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.ISecurityStampValidator` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISecurityStampValidator { System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Authentication.Cookies.CookieValidatePrincipalContext context); } - // Generated from `Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.ISecurityStampValidator { } - // Generated from `Microsoft.AspNetCore.Identity.IdentityBuilderExtensions` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityBuilderExtensions` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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) where TSignInManager : class => 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; } - // Generated from `Microsoft.AspNetCore.Identity.IdentityConstants` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityConstants` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityConstants { public static string ApplicationScheme; @@ -79,18 +79,18 @@ namespace Microsoft public static string TwoFactorUserIdScheme; } - // Generated from `Microsoft.AspNetCore.Identity.IdentityCookieAuthenticationBuilderExtensions` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityCookieAuthenticationBuilderExtensions` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; - public static Microsoft.AspNetCore.Identity.IdentityCookiesBuilder AddIdentityCookies(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action configureCookies) => throw null; public static Microsoft.AspNetCore.Identity.IdentityCookiesBuilder AddIdentityCookies(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder) => throw null; + public static Microsoft.AspNetCore.Identity.IdentityCookiesBuilder AddIdentityCookies(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action configureCookies) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Identity.IdentityCookiesBuilder` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityCookiesBuilder` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityCookiesBuilder { public Microsoft.Extensions.Options.OptionsBuilder ApplicationCookie { get => throw null; set => throw null; } @@ -100,7 +100,7 @@ namespace Microsoft public Microsoft.Extensions.Options.OptionsBuilder TwoFactorUserIdCookie { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.SecurityStampRefreshingPrincipalContext` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.SecurityStampRefreshingPrincipalContext` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SecurityStampRefreshingPrincipalContext { public System.Security.Claims.ClaimsPrincipal CurrentPrincipal { get => throw null; set => throw null; } @@ -108,14 +108,14 @@ namespace Microsoft public SecurityStampRefreshingPrincipalContext() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.SecurityStampValidator` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.SecurityStampValidator` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Identity.SecurityStampValidator<>` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.SecurityStampValidator<>` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SecurityStampValidator : Microsoft.AspNetCore.Identity.ISecurityStampValidator where TUser : class { public Microsoft.AspNetCore.Authentication.ISystemClock Clock { get => throw null; } @@ -128,7 +128,7 @@ namespace Microsoft protected virtual System.Threading.Tasks.Task VerifySecurityStamp(System.Security.Claims.ClaimsPrincipal principal) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.SecurityStampValidatorOptions` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SecurityStampValidatorOptions { public System.Func OnRefreshingPrincipal { get => throw null; set => throw null; } @@ -136,7 +136,7 @@ namespace Microsoft public System.TimeSpan ValidationInterval { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.SignInManager<>` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.SignInManager<>` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SignInManager where TUser : class { public virtual System.Threading.Tasks.Task CanSignInAsync(TUser user) => throw null; @@ -145,8 +145,8 @@ namespace Microsoft 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 virtual System.Threading.Tasks.Task CreateUserPrincipalAsync(TUser user) => 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 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; public virtual System.Threading.Tasks.Task> GetExternalAuthenticationSchemesAsync() => throw null; public virtual System.Threading.Tasks.Task GetExternalLoginInfoAsync(string expectedXsrf = default(string)) => throw null; @@ -157,31 +157,31 @@ namespace Microsoft 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 System.Threading.Tasks.Task PasswordSignInAsync(string userName, string password, bool isPersistent, bool lockoutOnFailure) => throw null; 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, bool isPersistent, string authenticationMethod = default(string)) => 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; 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, 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 SignInWithClaimsAsync(TUser user, bool isPersistent, 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 virtual System.Threading.Tasks.Task ValidateSecurityStampAsync(TUser user, string securityStamp) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator<>` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class TwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.SecurityStampValidator, Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator, Microsoft.AspNetCore.Identity.ISecurityStampValidator where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.TwoFactorSecurityStampValidator<>` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class TwoFactorSecurityStampValidator : Microsoft.AspNetCore.Identity.SecurityStampValidator, Microsoft.AspNetCore.Identity.ISecurityStampValidator, Microsoft.AspNetCore.Identity.ITwoFactorSecurityStampValidator 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; @@ -194,11 +194,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static partial class IdentityServiceCollectionExtensions { - 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 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.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 3a52160587a..9407778c975 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 @@ -8,7 +8,7 @@ namespace Microsoft { namespace Routing { - // Generated from `Microsoft.AspNetCore.Localization.Routing.RouteDataRequestCultureProvider` in `Microsoft.AspNetCore.Localization.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.Routing.RouteDataRequestCultureProvider` in `Microsoft.AspNetCore.Localization.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteDataRequestCultureProvider : Microsoft.AspNetCore.Localization.RequestCultureProvider { public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; 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 0dca161a1cd..0ee8f565ee8 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 @@ -6,16 +6,16 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.ApplicationBuilderExtensions` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ApplicationBuilderExtensions` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ApplicationBuilderExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, params string[] cultures) => throw null; + 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) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, params string[] cultures) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.RequestLocalizationOptions` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.RequestLocalizationOptions` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RequestLocalizationOptions { public Microsoft.AspNetCore.Builder.RequestLocalizationOptions AddSupportedCultures(params string[] cultures) => throw null; @@ -31,7 +31,7 @@ namespace Microsoft public System.Collections.Generic.IList SupportedUICultures { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Builder.RequestLocalizationOptionsExtensions` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.RequestLocalizationOptionsExtensions` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RequestLocalizationOptionsExtensions { public static Microsoft.AspNetCore.Builder.RequestLocalizationOptions AddInitialRequestCultureProvider(this Microsoft.AspNetCore.Builder.RequestLocalizationOptions requestLocalizationOptions, Microsoft.AspNetCore.Localization.RequestCultureProvider requestCultureProvider) => throw null; @@ -40,7 +40,7 @@ namespace Microsoft } namespace Localization { - // Generated from `Microsoft.AspNetCore.Localization.AcceptLanguageHeaderRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.AcceptLanguageHeaderRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AcceptLanguageHeaderRequestCultureProvider : Microsoft.AspNetCore.Localization.RequestCultureProvider { public AcceptLanguageHeaderRequestCultureProvider() => throw null; @@ -48,7 +48,7 @@ namespace Microsoft public int MaximumAcceptLanguageHeaderValuesToTry { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Localization.CookieRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.CookieRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieRequestCultureProvider : Microsoft.AspNetCore.Localization.RequestCultureProvider { public string CookieName { get => throw null; set => throw null; } @@ -59,38 +59,38 @@ namespace Microsoft public static Microsoft.AspNetCore.Localization.ProviderCultureResult ParseCookieValue(string value) => throw null; } - // Generated from `Microsoft.AspNetCore.Localization.CustomRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.CustomRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Localization.IRequestCultureFeature` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.IRequestCultureFeature` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRequestCultureFeature { Microsoft.AspNetCore.Localization.IRequestCultureProvider Provider { get; } Microsoft.AspNetCore.Localization.RequestCulture RequestCulture { get; } } - // Generated from `Microsoft.AspNetCore.Localization.IRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.IRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRequestCultureProvider { System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext); } - // Generated from `Microsoft.AspNetCore.Localization.ProviderCultureResult` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.ProviderCultureResult` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ProviderCultureResult { public System.Collections.Generic.IList Cultures { get => throw null; } - public ProviderCultureResult(System.Collections.Generic.IList cultures, System.Collections.Generic.IList uiCultures) => throw null; public ProviderCultureResult(System.Collections.Generic.IList cultures) => throw null; - public ProviderCultureResult(Microsoft.Extensions.Primitives.StringSegment culture, Microsoft.Extensions.Primitives.StringSegment uiCulture) => 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 System.Collections.Generic.IList UICultures { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class QueryStringRequestCultureProvider : Microsoft.AspNetCore.Localization.RequestCultureProvider { public override System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; @@ -99,18 +99,18 @@ namespace Microsoft public string UIQueryStringKey { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Localization.RequestCulture` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.RequestCulture` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RequestCulture { public System.Globalization.CultureInfo Culture { get => throw null; } - public RequestCulture(string culture, string uiCulture) => throw null; - public RequestCulture(string culture) => throw null; - public RequestCulture(System.Globalization.CultureInfo culture, System.Globalization.CultureInfo uiCulture) => 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 System.Globalization.CultureInfo UICulture { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Localization.RequestCultureFeature` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.RequestCultureFeature` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RequestCultureFeature : Microsoft.AspNetCore.Localization.IRequestCultureFeature { public Microsoft.AspNetCore.Localization.IRequestCultureProvider Provider { get => throw null; } @@ -118,7 +118,7 @@ namespace Microsoft public RequestCultureFeature(Microsoft.AspNetCore.Localization.RequestCulture requestCulture, Microsoft.AspNetCore.Localization.IRequestCultureProvider provider) => throw null; } - // Generated from `Microsoft.AspNetCore.Localization.RequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.RequestCultureProvider` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class RequestCultureProvider : Microsoft.AspNetCore.Localization.IRequestCultureProvider { public abstract System.Threading.Tasks.Task DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext); @@ -127,7 +127,7 @@ namespace Microsoft protected RequestCultureProvider() => throw null; } - // Generated from `Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RequestLocalizationMiddleware { public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; @@ -140,11 +140,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.RequestLocalizationServiceCollectionExtensions` in `Microsoft.AspNetCore.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.RequestLocalizationServiceCollectionExtensions` in `Microsoft.AspNetCore.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RequestLocalizationServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRequestLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) where TService : class => throw null; 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 503b3491cf4..1090c4a6dcf 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 @@ -6,12 +6,12 @@ namespace Microsoft { namespace Authorization { - // Generated from `Microsoft.AspNetCore.Authorization.IAllowAnonymous` in `Microsoft.AspNetCore.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAllowAnonymous` in `Microsoft.AspNetCore.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAllowAnonymous { } - // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizeData` in `Microsoft.AspNetCore.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Authorization.IAuthorizeData` in `Microsoft.AspNetCore.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthorizeData { string AuthenticationSchemes { 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 c6fae81ab18..f4f04c690c3 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 @@ -6,26 +6,26 @@ namespace Microsoft { namespace Mvc { - // Generated from `Microsoft.AspNetCore.Mvc.ActionContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionContext { - 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, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; - public ActionContext(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor actionDescriptor) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.IActionResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.IActionResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionResult { System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.IUrlHelper` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.IUrlHelper` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IUrlHelper { string Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext actionContext); @@ -38,7 +38,7 @@ namespace Microsoft namespace Abstractions { - // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionDescriptor { public System.Collections.Generic.IList ActionConstraints { get => throw null; set => throw null; } @@ -54,21 +54,21 @@ namespace Microsoft public System.Collections.Generic.IDictionary RouteValues { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorExtensions` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorExtensions` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionDescriptorProviderContext { public ActionDescriptorProviderContext() => throw null; public System.Collections.Generic.IList Results { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionInvokerProviderContext { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -76,7 +76,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker Result { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionDescriptorProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context); @@ -84,13 +84,13 @@ namespace Microsoft int Order { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionInvoker { System.Threading.Tasks.Task InvokeAsync(); } - // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.IActionInvokerProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.IActionInvokerProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionInvokerProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionInvokerProviderContext context); @@ -98,7 +98,7 @@ namespace Microsoft int Order { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ParameterDescriptor { public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set => throw null; } @@ -110,7 +110,7 @@ namespace Microsoft } namespace ActionConstraints { - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionConstraintContext { public ActionConstraintContext() => throw null; @@ -119,7 +119,7 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.RouteContext RouteContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionConstraintItem { public ActionConstraintItem(Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata metadata) => throw null; @@ -128,7 +128,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata Metadata { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionConstraintProviderContext { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor Action { get => throw null; } @@ -137,35 +137,35 @@ namespace Microsoft public System.Collections.Generic.IList Results { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionSelectorCandidate` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionSelectorCandidate` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ActionSelectorCandidate { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor Action { get => throw null; } - public ActionSelectorCandidate(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action, System.Collections.Generic.IReadOnlyList constraints) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata { bool Accept(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintContext context); int Order { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintFactory` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintFactory` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionConstraintFactory : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata { Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint CreateInstance(System.IServiceProvider services); bool IsReusable { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionConstraintMetadata { } - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionConstraintProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext context); @@ -176,7 +176,7 @@ namespace Microsoft } namespace ApiExplorer { - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescription` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiDescription { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; set => throw null; } @@ -190,7 +190,7 @@ namespace Microsoft public System.Collections.Generic.IList SupportedResponseTypes { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiDescriptionProviderContext { public System.Collections.Generic.IReadOnlyList Actions { get => throw null; } @@ -198,7 +198,7 @@ namespace Microsoft public System.Collections.Generic.IList Results { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiParameterDescription { public ApiParameterDescription() => throw null; @@ -213,7 +213,7 @@ namespace Microsoft public System.Type Type { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterRouteInfo` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiParameterRouteInfo { public ApiParameterRouteInfo() => throw null; @@ -222,7 +222,7 @@ namespace Microsoft public bool IsOptional { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiRequestFormat` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiRequestFormat { public ApiRequestFormat() => throw null; @@ -230,7 +230,7 @@ namespace Microsoft public string MediaType { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseFormat` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiResponseFormat { public ApiResponseFormat() => throw null; @@ -238,7 +238,7 @@ namespace Microsoft public string MediaType { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiResponseType` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiResponseType { public System.Collections.Generic.IList ApiResponseFormats { get => throw null; set => throw null; } @@ -249,7 +249,7 @@ namespace Microsoft public System.Type Type { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiDescriptionProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionProviderContext context); @@ -260,7 +260,7 @@ namespace Microsoft } namespace Authorization { - // Generated from `Microsoft.AspNetCore.Mvc.Authorization.IAllowAnonymousFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Authorization.IAllowAnonymousFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAllowAnonymousFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } @@ -268,7 +268,7 @@ namespace Microsoft } namespace Filters { - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -280,7 +280,7 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionExecutingContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual System.Collections.Generic.IDictionary ActionArguments { get => throw null; } @@ -289,17 +289,17 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate System.Threading.Tasks.Task ActionExecutionDelegate(); - // Generated from `Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ExceptionContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ExceptionContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ExceptionContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual System.Exception Exception { get => throw null; set => throw null; } @@ -309,7 +309,7 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class FilterContext : Microsoft.AspNetCore.Mvc.ActionContext { public FilterContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList filters) => throw null; @@ -318,7 +318,7 @@ namespace Microsoft public bool IsEffectivePolicy(TMetadata policy) where TMetadata : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FilterDescriptor { public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Filter { get => throw null; } @@ -327,17 +327,17 @@ namespace Microsoft public int Scope { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterItem` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterItem` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FilterProviderContext { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; set => throw null; } @@ -345,84 +345,84 @@ namespace Microsoft public System.Collections.Generic.IList Results { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IActionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IActionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context); void OnActionExecuting(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAlwaysRunResultFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IAlwaysRunResultFilter : Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAlwaysRunResultFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IAlwaysRunResultFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResultFilter { } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncAlwaysRunResultFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IAsyncAlwaysRunResultFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncAlwaysRunResultFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IAsyncAlwaysRunResultFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAsyncAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { System.Threading.Tasks.Task OnAuthorizationAsync(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAsyncExceptionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { System.Threading.Tasks.Task OnExceptionAsync(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncResourceFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncResourceFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnAuthorization(Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IExceptionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnException(Microsoft.AspNetCore.Mvc.Filters.ExceptionContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterContainer` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterContainer` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFilterContainer { Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata FilterDefinition { get; set; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterFactory` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterFactory` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata CreateInstance(System.IServiceProvider serviceProvider); bool IsReusable { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFilterMetadata { } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFilterProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Filters.FilterProviderContext context); @@ -430,27 +430,27 @@ namespace Microsoft int Order { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IOrderedFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { int Order { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IResourceFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IResourceFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IResourceFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnResourceExecuted(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext context); void OnResourceExecuting(Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IResultFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IResultFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IResultFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context); void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResourceExecutedContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual bool Canceled { get => throw null; set => throw null; } @@ -461,7 +461,7 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -469,10 +469,10 @@ namespace Microsoft public System.Collections.Generic.IList ValueProviderFactories { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResourceExecutionDelegate` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate System.Threading.Tasks.Task ResourceExecutionDelegate(); - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResultExecutedContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual bool Canceled { get => throw null; set => throw null; } @@ -484,7 +484,7 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResultExecutingContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual bool Cancel { get => throw null; set => throw null; } @@ -493,47 +493,47 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResultExecutionDelegate` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate System.Threading.Tasks.Task ResultExecutionDelegate(); } namespace Formatters { - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection<>` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.FormatterCollection<>` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FormatterCollection : System.Collections.ObjectModel.Collection { - public FormatterCollection(System.Collections.Generic.IList list) => throw null; public FormatterCollection() => throw null; - public void RemoveType() where T : TFormatter => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IInputFormatter { bool CanRead(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context); System.Threading.Tasks.Task ReadAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IInputFormatterExceptionPolicy { Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy ExceptionPolicy { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IOutputFormatter { bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context); System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, bool treatEmptyInputAsDefaultValue) => 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.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; } public string ModelName { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } @@ -542,22 +542,22 @@ namespace Microsoft public bool TreatEmptyInputAsDefaultValue { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatterException` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InputFormatterException : System.Exception { - public InputFormatterException(string message, System.Exception innerException) => throw null; - public InputFormatterException(string message) => throw null; public InputFormatterException() => throw null; + public InputFormatterException(string message) => throw null; + public InputFormatterException(string message, System.Exception innerException) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatterExceptionPolicy` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum InputFormatterExceptionPolicy { AllExceptions, MalformedInputExceptions, } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InputFormatterResult { public static Microsoft.AspNetCore.Mvc.Formatters.InputFormatterResult Failure() => throw null; @@ -571,7 +571,7 @@ namespace Microsoft public static System.Threading.Tasks.Task SuccessAsync(object model) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class OutputFormatterCanWriteContext { public virtual Microsoft.Extensions.Primitives.StringSegment ContentType { get => throw null; set => throw null; } @@ -582,7 +582,7 @@ namespace Microsoft protected OutputFormatterCanWriteContext(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -592,23 +592,23 @@ namespace Microsoft } namespace ModelBinding { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindingInfo { public string BinderModelName { get => throw null; set => throw null; } public System.Type BinderType { get => throw null; set => throw null; } - public BindingInfo(Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo other) => throw null; 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 static Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo GetBindingInfo(System.Collections.Generic.IEnumerable attributes, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata) => throw null; 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 bool TryApplyBindingInfo(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindingSource : System.IEquatable { public static bool operator !=(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s1, Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource s2) => throw null; @@ -618,8 +618,8 @@ namespace Microsoft public virtual bool CanAcceptDataFrom(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Custom; public string DisplayName { get => throw null; } - public override bool Equals(object obj) => 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 override int GetHashCode() => throw null; @@ -634,7 +634,7 @@ namespace Microsoft public static Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource Special; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompositeBindingSource : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource { private CompositeBindingSource() : base(default(string), default(string), default(bool), default(bool)) => throw null; @@ -643,7 +643,7 @@ namespace Microsoft public static Microsoft.AspNetCore.Mvc.ModelBinding.CompositeBindingSource Create(System.Collections.Generic.IEnumerable bindingSources, string displayName) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum EmptyBodyBehavior { Allow, @@ -651,104 +651,113 @@ namespace Microsoft Disallow, } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.EnumGroupAndName` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.EnumGroupAndName` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct EnumGroupAndName { - public EnumGroupAndName(string group, string name) => throw null; - public EnumGroupAndName(string group, System.Func name) => throw null; // Stub generator skipped constructor + public EnumGroupAndName(string group, System.Func name) => throw null; + public EnumGroupAndName(string group, string name) => throw null; public string Group { get => throw null; } public string Name { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IBinderTypeProviderMetadata : Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata { System.Type BinderType { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IBindingSourceMetadata { Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource BindingSource { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IConfigureEmptyBodyBehavior` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IConfigureEmptyBodyBehavior` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IConfigureEmptyBodyBehavior { Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior EmptyBodyBehavior { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IModelBinder { System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IModelBinderProvider { Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IModelMetadataProvider { System.Collections.Generic.IEnumerable GetMetadataForProperties(System.Type modelType); Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForType(System.Type modelType); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IModelNameProvider { string Name { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPropertyFilterProvider { System.Func PropertyFilter { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRequestPredicateProvider { System.Func RequestPredicate { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IValueProvider { bool ContainsPrefix(string prefix); Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IValueProviderFactory { System.Threading.Tasks.Task CreateValueProviderAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ModelBinderProviderContext { public abstract Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get; } - public virtual Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo bindingInfo) => throw null; 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; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ModelBindingContext { + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext+NestedScope` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, string fieldName, string modelName, object model); public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope EnterNestedScope(); + public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext.NestedScope EnterNestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, string fieldName, string modelName, object model); protected abstract void ExitNestedScope(); public abstract string FieldName { get; set; } public virtual Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } @@ -759,15 +768,6 @@ namespace Microsoft public abstract string ModelName { get; set; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get; set; } public virtual System.Type ModelType { get => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext+NestedScope` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct NestedScope : System.IDisposable - { - public void Dispose() => throw null; - public NestedScope(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext context) => throw null; - // Stub generator skipped constructor - } - - public string OriginalModelName { get => throw null; set => throw null; } public abstract System.Func PropertyFilter { get; set; } public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult Result { get; set; } @@ -775,13 +775,13 @@ namespace Microsoft public abstract Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider ValueProvider { get; set; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 override bool Equals(object obj) => throw null; public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult other) => throw null; + public override bool Equals(object obj) => throw null; public static Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingResult Failed() => throw null; public override int GetHashCode() => throw null; public bool IsModelSet { get => throw null; } @@ -791,26 +791,26 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelError` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelError` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelError { public string ErrorMessage { get => throw null; } public System.Exception Exception { get => throw null; } - public ModelError(string errorMessage) => throw null; - public ModelError(System.Exception exception, string errorMessage) => throw null; public ModelError(System.Exception exception) => throw null; + public ModelError(System.Exception exception, string errorMessage) => throw null; + public ModelError(string errorMessage) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelErrorCollection` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelErrorCollection` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelErrorCollection : System.Collections.ObjectModel.Collection { - public void Add(string errorMessage) => throw null; public void Add(System.Exception exception) => throw null; + public void Add(string errorMessage) => throw null; public ModelErrorCollection() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class ModelMetadata : System.IEquatable, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public abstract class ModelMetadata : Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider, System.IEquatable { public abstract System.Collections.Generic.IReadOnlyDictionary AdditionalValues { get; } public abstract string BinderModelName { get; } @@ -832,8 +832,8 @@ namespace Microsoft public System.Type ElementType { get => throw null; } public abstract System.Collections.Generic.IEnumerable> EnumGroupedDisplayNamesAndValues { get; } public abstract System.Collections.Generic.IReadOnlyDictionary EnumNamesAndValues { get; } - public override bool Equals(object obj) => throw null; public bool Equals(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata other) => throw null; + public override bool Equals(object obj) => throw null; public string GetDisplayName() => throw null; public override int GetHashCode() => throw null; public virtual System.Collections.Generic.IEnumerable GetMetadataForProperties(System.Type modelType) => throw null; @@ -878,141 +878,141 @@ namespace Microsoft public abstract System.Collections.Generic.IReadOnlyList ValidatorMetadata { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ModelMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider { public virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForConstructor(System.Reflection.ConstructorInfo constructor, System.Type modelType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForParameter(System.Reflection.ParameterInfo parameter, 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelPropertyCollection` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelPropertyCollection` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ModelStateDictionary : System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IEnumerable> + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ModelStateDictionary : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.IEnumerable { - public void AddModelError(string key, string errorMessage) => throw null; - public void AddModelError(string key, System.Exception exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => 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 static int DefaultMaxAllowedErrors; - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+Enumerator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator> + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+Enumerator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 Enumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => 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 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; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState GetFieldValidationState(string key) => throw null; - 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+KeyEnumerable` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct KeyEnumerable : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+KeyEnumerable` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct KeyEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.KeyEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - public KeyEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+KeyEnumerator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct KeyEnumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+KeyEnumerator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; - public KeyEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => 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 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 void Merge(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; - public ModelStateDictionary(int maxAllowedErrors) => throw null; - public ModelStateDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => throw null; - public ModelStateDictionary() => throw null; - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+PrefixEnumerable` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct PrefixEnumerable : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable> + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+PrefixEnumerable` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct PrefixEnumerable : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.Enumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - public PrefixEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => 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 bool Remove(string key) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry Root { get => 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 bool TryAddModelError(string key, string errorMessage) => throw null; - public bool TryAddModelError(string key, System.Exception exception, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+ValueEnumerable` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct ValueEnumerable : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+ValueEnumerable` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct ValueEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - public ValueEnumerable(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+ValueEnumerator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct ValueEnumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary+ValueEnumerator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; - public ValueEnumerator(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary dictionary, string prefix) => 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 static int DefaultMaxAllowedErrors; + 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; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState GetFieldValidationState(string key) => throw null; + 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 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 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 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 static bool StartsWithPrefix(string prefix, string key) => 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 Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary.ValueEnumerable Values { get => throw null; } System.Collections.Generic.IEnumerable System.Collections.Generic.IReadOnlyDictionary.Values { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateEntry` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ModelStateEntry { public string AttemptedValue { get => throw null; set => throw null; } @@ -1025,7 +1025,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState ValidationState { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ModelValidationState { Invalid, @@ -1034,20 +1034,20 @@ namespace Microsoft Valid, } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.TooManyModelErrorsException` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.TooManyModelErrorsException` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TooManyModelErrorsException : System.Exception { public TooManyModelErrorsException(string message) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderException` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderException` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValueProviderException : System.Exception { - public ValueProviderException(string message, System.Exception innerException) => throw null; public ValueProviderException(string message) => throw null; + public ValueProviderException(string message, System.Exception innerException) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValueProviderFactoryContext { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -1055,14 +1055,14 @@ namespace Microsoft public System.Collections.Generic.IList ValueProviders { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct ValueProviderResult : System.IEquatable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 override bool Equals(object obj) => 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; @@ -1070,17 +1070,17 @@ namespace Microsoft public int Length { get => throw null; } public static Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult None; public override string ToString() => throw null; - public ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values, System.Globalization.CultureInfo culture) => throw null; - public ValueProviderResult(Microsoft.Extensions.Primitives.StringValues values) => 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; + public static explicit operator string[](Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult result) => throw null; } namespace Metadata { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ModelBindingMessageProvider { public virtual System.Func AttemptedValueIsInvalidAccessor { get => throw null; } @@ -1097,18 +1097,18 @@ namespace Microsoft public virtual System.Func ValueMustNotBeNullAccessor { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ModelMetadataIdentity : System.IEquatable { public System.Reflection.ConstructorInfo ConstructorInfo { get => throw null; } public System.Type ContainerType { get => throw null; } - public override bool Equals(object obj) => 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, 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 ForProperty(System.Type modelType, string name, System.Type containerType) => 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; } @@ -1119,7 +1119,7 @@ namespace Microsoft public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataKind` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ModelMetadataKind { Constructor, @@ -1131,24 +1131,24 @@ namespace Microsoft } namespace Validation { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ClientModelValidationContext : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase { 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorItem` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ClientValidatorItem { - public ClientValidatorItem(object validatorMetadata) => throw null; 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 object ValidatorMetadata { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ClientValidatorProviderContext { public ClientValidatorProviderContext(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, System.Collections.Generic.IList items) => throw null; @@ -1157,43 +1157,43 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList ValidatorMetadata { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IClientModelValidator { void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IClientModelValidatorProvider { void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorProviderContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidator` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IModelValidator { System.Collections.Generic.IEnumerable Validate(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IModelValidatorProvider { void CreateValidators(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IPropertyValidationFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPropertyValidationFilter { bool ShouldValidateEntry(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry entry, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry parentEntry); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IValidationStrategy { System.Collections.Generic.IEnumerator GetChildren(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelValidationContext : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase { public object Container { get => throw null; } @@ -1201,7 +1201,7 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelValidationContextBase { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -1210,7 +1210,7 @@ namespace Microsoft public ModelValidationContextBase(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata modelMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelValidationResult { public string MemberName { get => throw null; } @@ -1218,7 +1218,7 @@ namespace Microsoft public ModelValidationResult(string memberName, string message) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelValidatorProviderContext { public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; set => throw null; } @@ -1227,22 +1227,22 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList ValidatorMetadata { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationEntry` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ValidationEntry { public string Key { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; } public object Model { get => throw null; } - 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; // 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ValidationStateDictionary : System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 void Add(object key, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry value) => throw null; public void Add(System.Collections.Generic.KeyValuePair item) => throw null; + public void Add(object key, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry value) => throw null; public void Clear() => throw null; public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; public bool ContainsKey(object key) => throw null; @@ -1252,19 +1252,19 @@ namespace Microsoft 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.IReadOnlyDictionary.this[object key] { get => 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.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(object key) => throw null; public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public bool Remove(object key) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationStateEntry { public string Key { get => throw null; set => throw null; } @@ -1274,13 +1274,13 @@ namespace Microsoft public ValidationStateEntry() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorItem` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(object validatorMetadata) => throw null; public ValidatorItem() => throw null; + public ValidatorItem(object validatorMetadata) => throw null; public object ValidatorMetadata { get => throw null; } } @@ -1288,7 +1288,7 @@ namespace Microsoft } namespace Routing { - // Generated from `Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.AttributeRouteInfo` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AttributeRouteInfo { public AttributeRouteInfo() => throw null; @@ -1299,7 +1299,7 @@ namespace Microsoft public string Template { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlActionContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlActionContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UrlActionContext { public string Action { get => throw null; set => throw null; } @@ -1311,7 +1311,7 @@ namespace Microsoft public object Values { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlRouteContext` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UrlRouteContext { public string Fragment { get => throw null; set => throw null; } 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 0125ade3468..6072fcb9410 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 @@ -8,14 +8,14 @@ namespace Microsoft { namespace ApiExplorer { - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionExtensions` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionExtensions` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroup` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroup` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiDescriptionGroup { public ApiDescriptionGroup(string groupName, System.Collections.Generic.IReadOnlyList items) => throw null; @@ -23,7 +23,7 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList Items { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiDescriptionGroupCollection { public ApiDescriptionGroupCollection(System.Collections.Generic.IReadOnlyList items, int version) => throw null; @@ -31,14 +31,14 @@ namespace Microsoft public int Version { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollectionProvider` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollectionProvider` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -47,7 +47,7 @@ namespace Microsoft public int Order { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupCollectionProvider` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupCollectionProvider` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiDescriptionGroupCollectionProvider { Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollection ApiDescriptionGroups { get; } @@ -60,7 +60,13 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MvcApiExplorerMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.EndpointMetadataApiExplorerServiceCollectionExtensions` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static class EndpointMetadataApiExplorerServiceCollectionExtensions + { + public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddEndpointsApiExplorer(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + } + + // Generated from `Microsoft.Extensions.DependencyInjection.MvcApiExplorerMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.ApiExplorer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 bd4671c23cf..be7ec16655a 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 @@ -6,53 +6,53 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ControllerActionEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { public void Add(System.Action convention) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; public static Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder MapControllers(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints) => throw null; public static Microsoft.AspNetCore.Builder.ControllerActionEndpointConventionBuilder MapDefaultControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints) => throw null; - public static void MapDynamicControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, object state, int order) where TTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer => throw null; - public static void MapDynamicControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, object state) where TTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer => throw null; public static void MapDynamicControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) where TTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer => throw null; - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToAreaController(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string action, string controller, string area) => throw null; + public static void MapDynamicControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, object state) where TTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer => throw null; + public static void MapDynamicControllerRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, object state, int order) where TTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToAreaController(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string action, string controller, string area) => 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 Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToAreaController(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string action, string controller, string area) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcApplicationBuilderExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseMvc(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configureRoutes) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.MvcAreaRouteBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.MvcAreaRouteBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcAreaRouteBuilderExtensions { - 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; - 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) => throw null; 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 { - // Generated from `Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class AcceptVerbsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider, Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider + // Generated from `Microsoft.AspNetCore.Mvc.AcceptVerbsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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 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; } @@ -61,7 +61,7 @@ namespace Microsoft string Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider.Template { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.AcceptedAtActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.AcceptedAtActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AcceptedAtActionResult : Microsoft.AspNetCore.Mvc.ObjectResult { public AcceptedAtActionResult(string actionName, string controllerName, object routeValues, object value) : base(default(object)) => throw null; @@ -72,41 +72,41 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AcceptedAtRouteResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public AcceptedAtRouteResult(string routeName, object routeValues, object value) : base(default(object)) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.AcceptedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.AcceptedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AcceptedResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public AcceptedResult(string location, object value) : base(default(object)) => throw null; - public AcceptedResult(System.Uri locationUri, object value) : base(default(object)) => throw null; 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 override void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ActionContextAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionContextAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionContextAttribute : System.Attribute { public ActionContextAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ActionNameAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionNameAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionNameAttribute : System.Attribute { public ActionNameAttribute(string name) => throw null; public string Name { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ActionResult : Microsoft.AspNetCore.Mvc.IActionResult { protected ActionResult() => throw null; @@ -114,31 +114,31 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ActionResult<>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ActionResult<>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionResult : Microsoft.AspNetCore.Mvc.Infrastructure.IConvertToActionResult { - public ActionResult(TValue value) => throw null; 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 Microsoft.AspNetCore.Mvc.ActionResult Result { get => throw null; } public TValue Value { get => 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 static implicit operator Microsoft.AspNetCore.Mvc.ActionResult(TValue value) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.AntiforgeryValidationFailedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class AntiforgeryValidationFailedResult : Microsoft.AspNetCore.Mvc.BadRequestResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Core.Infrastructure.IAntiforgeryValidationFailedResult + // Generated from `Microsoft.AspNetCore.Mvc.AntiforgeryValidationFailedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class AntiforgeryValidationFailedResult : Microsoft.AspNetCore.Mvc.BadRequestResult, Microsoft.AspNetCore.Mvc.Core.Infrastructure.IAntiforgeryValidationFailedResult, Microsoft.AspNetCore.Mvc.IActionResult { public AntiforgeryValidationFailedResult() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApiBehaviorOptions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ApiBehaviorOptions : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.ApiBehaviorOptions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ApiBehaviorOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public ApiBehaviorOptions() => throw null; public System.Collections.Generic.IDictionary ClientErrorMapping { get => throw null; } - System.Collections.IEnumerator System.Collections.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 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; } @@ -146,62 +146,62 @@ namespace Microsoft public bool SuppressModelStateInvalidFilter { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiControllerAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ApiControllerAttribute : Microsoft.AspNetCore.Mvc.ControllerAttribute, Microsoft.AspNetCore.Mvc.Infrastructure.IApiBehaviorMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + // Generated from `Microsoft.AspNetCore.Mvc.ApiControllerAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ApiControllerAttribute : Microsoft.AspNetCore.Mvc.ControllerAttribute, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Infrastructure.IApiBehaviorMetadata { public ApiControllerAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApiConventionMethodAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiConventionMethodAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiConventionMethodAttribute : System.Attribute { public ApiConventionMethodAttribute(System.Type conventionType, string methodName) => throw null; public System.Type ConventionType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiConventionTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiConventionTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiConventionTypeAttribute : System.Attribute { public ApiConventionTypeAttribute(System.Type conventionType) => throw null; public System.Type ConventionType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiDescriptionActionData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiDescriptionActionData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiDescriptionActionData { public ApiDescriptionActionData() => throw null; public string GroupName { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorerSettingsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ApiExplorerSettingsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionVisibilityProvider, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupNameProvider + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorerSettingsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.AreaAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.AreaAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AreaAttribute : Microsoft.AspNetCore.Mvc.Routing.RouteValueAttribute { public AreaAttribute(string areaName) : base(default(string), default(string)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.BadRequestObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.BadRequestObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BadRequestObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public BadRequestObjectResult(object error) : base(default(object)) => throw null; public BadRequestObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(object)) => throw null; + public BadRequestObjectResult(object error) : base(default(object)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.BadRequestResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.BadRequestResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BadRequestResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public BadRequestResult() : base(default(int)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.BindAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class BindAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider + // Generated from `Microsoft.AspNetCore.Mvc.BindAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -210,15 +210,15 @@ namespace Microsoft public System.Func PropertyFilter { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.BindPropertiesAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.BindPropertiesAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindPropertiesAttribute : System.Attribute { public BindPropertiesAttribute() => throw null; public bool SupportsGet { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.BindPropertyAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class BindPropertyAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IRequestPredicateProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata + // Generated from `Microsoft.AspNetCore.Mvc.BindPropertyAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 BindPropertyAttribute() => throw null; public System.Type BinderType { get => throw null; set => throw null; } @@ -228,7 +228,7 @@ namespace Microsoft public bool SupportsGet { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.CacheProfile` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.CacheProfile` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CacheProfile { public CacheProfile() => throw null; @@ -239,21 +239,21 @@ namespace Microsoft public string[] VaryByQueryKeys { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ChallengeResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ChallengeResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ChallengeResult : Microsoft.AspNetCore.Mvc.ActionResult { public System.Collections.Generic.IList AuthenticationSchemes { get => throw null; set => throw null; } - public ChallengeResult(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public ChallengeResult(string authenticationScheme) => throw null; - public ChallengeResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public ChallengeResult(System.Collections.Generic.IList authenticationSchemes) => throw null; - public ChallengeResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; 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(string authenticationScheme, 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ClientErrorData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ClientErrorData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ClientErrorData { public ClientErrorData() => throw null; @@ -261,7 +261,7 @@ namespace Microsoft public string Title { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.CompatibilityVersion` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.CompatibilityVersion` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum CompatibilityVersion { Latest, @@ -271,34 +271,38 @@ namespace Microsoft Version_3_0, } - // Generated from `Microsoft.AspNetCore.Mvc.ConflictObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ConflictObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConflictObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public ConflictObjectResult(object error) : base(default(object)) => throw null; public ConflictObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(object)) => throw null; + public ConflictObjectResult(object error) : base(default(object)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ConflictResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ConflictResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConflictResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public ConflictResult() : base(default(int)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ConsumesAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConsumesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint + // Generated from `Microsoft.AspNetCore.Mvc.ConsumesAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 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; } + System.Collections.Generic.IReadOnlyList Microsoft.AspNetCore.Http.Metadata.IAcceptsMetadata.ContentTypes { get => throw null; } + public bool IsOptional { get => throw null; set => throw null; } 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ContentResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ContentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.ContentResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ContentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { public string Content { get => throw null; set => throw null; } public ContentResult() => throw null; @@ -307,84 +311,84 @@ namespace Microsoft public int? StatusCode { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ControllerAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ControllerAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ControllerAttribute : System.Attribute { public ControllerAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ControllerBase` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ControllerBase` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ControllerBase { - public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(string uri, object value) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(string uri) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(object value) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(System.Uri uri, object value) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(System.Uri uri) => throw null; public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted() => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedAtActionResult AcceptedAtAction(string actionName, string controllerName, object routeValues, 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, string controllerName) => 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(string uri) => throw null; + public virtual Microsoft.AspNetCore.Mvc.AcceptedResult Accepted(string 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) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(string routeName, object routeValues, object value) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(string routeName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.AcceptedAtRouteResult AcceptedAtRoute(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, string controllerName, object routeValues) => 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(string routeName, object routeValues, object value) => throw null; public virtual Microsoft.AspNetCore.Mvc.BadRequestResult BadRequest() => 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(params string[] authenticationSchemes) => 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(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(object error) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge() => 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(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, string contentType, System.Text.Encoding contentEncoding) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, string contentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; + public virtual Microsoft.AspNetCore.Mvc.ConflictObjectResult Conflict(object error) => 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(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, string controllerName, object routeValues, object value) => throw null; + public virtual Microsoft.AspNetCore.Mvc.CreatedResult Created(string 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(string routeName, object routeValues, object value) => throw null; - public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute(object routeValues, object value) => 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, 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, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => 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, bool enableRangeProcessing) => 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, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; - public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, string contentType) => 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, 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, 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) => 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, 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, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; - public virtual Microsoft.AspNetCore.Mvc.FileStreamResult File(System.IO.Stream fileStream, string contentType) => 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(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, 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) => 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, 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, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag) => throw null; public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.Byte[] fileContents, string contentType) => 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, params string[] authenticationSchemes) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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.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, 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, 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(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; @@ -399,113 +403,113 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator ObjectValidator { get => throw null; set => throw null; } 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, string fileDownloadName, 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, 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) => 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, System.DateTimeOffset? lastModified, Microsoft.Net.Http.Headers.EntityTagHeaderValue entityTag, 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) => 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, 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 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; public virtual Microsoft.AspNetCore.Mvc.RedirectResult RedirectPreserveMethod(string url) => 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 RedirectToAction(string actionName, string controllerName, 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, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction() => 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, 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) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, object routeValues) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName) => throw null; + 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 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, 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, 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 RedirectToPage(string pageName, string pageHandler, 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, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName) => 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 RedirectToPagePermanent(string pageName, string pageHandler) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, object routeValues) => 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 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 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(string routeName, string fragment) => 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, 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 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 RedirectToRoutePermanent(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName) => 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 RedirectToRoutePermanent(string routeName) => 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 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, string authenticationScheme) => 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, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; public virtual Microsoft.AspNetCore.Mvc.SignInResult SignIn(System.Security.Claims.ClaimsPrincipal principal) => 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.SignOutResult SignOut(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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.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(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider) where TModel : class => throw null; - public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix) where TModel : class => throw null; - public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model) 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(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 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, string prefix) => 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 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(object error) => 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 System.Security.Claims.ClaimsPrincipal User { get => 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 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(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(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; } - // Generated from `Microsoft.AspNetCore.Mvc.ControllerContext` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ControllerContext` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ControllerContext : Microsoft.AspNetCore.Mvc.ActionContext { public Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor ActionDescriptor { get => throw null; set => throw null; } - public ControllerContext(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ControllerContextAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ControllerContextAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ControllerContextAttribute : System.Attribute { public ControllerContextAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.CreatedAtActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.CreatedAtActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CreatedAtActionResult : Microsoft.AspNetCore.Mvc.ObjectResult { public string ActionName { get => throw null; set => throw null; } @@ -516,27 +520,27 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.IUrlHelper UrlHelper { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.CreatedAtRouteResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.CreatedAtRouteResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CreatedAtRouteResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public CreatedAtRouteResult(string routeName, object routeValues, object value) : base(default(object)) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.CreatedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.CreatedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CreatedResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public CreatedResult(string location, object value) : base(default(object)) => throw null; 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 override void OnFormatting(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.DefaultApiConventions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.DefaultApiConventions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DefaultApiConventions { public static void Create(object model) => throw null; @@ -549,8 +553,8 @@ namespace Microsoft public static void Update(object id, object model) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.DisableRequestSizeLimitAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DisableRequestSizeLimitAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.DisableRequestSizeLimitAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DisableRequestSizeLimitAttribute : 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 DisableRequestSizeLimitAttribute() => throw null; @@ -558,23 +562,23 @@ namespace Microsoft public int Order { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.EmptyResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.EmptyResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EmptyResult : Microsoft.AspNetCore.Mvc.ActionResult { public EmptyResult() => throw null; public override void ExecuteResult(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.FileContentResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.FileContentResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, string contentType) : base(default(string)) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.FileResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.FileResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class FileResult : Microsoft.AspNetCore.Mvc.ActionResult { public string ContentType { get => throw null; } @@ -585,183 +589,185 @@ namespace Microsoft public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.FileStreamResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.FileStreamResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, 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 FileStreamResult(System.IO.Stream fileStream, string contentType) : base(default(string)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ForbidResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ForbidResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public ForbidResult(string authenticationScheme) => throw null; - public ForbidResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public ForbidResult(System.Collections.Generic.IList authenticationSchemes) => throw null; - public ForbidResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.FormatFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FormatFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.FormatFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.FromBodyAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FromBodyAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata + // Generated from `Microsoft.AspNetCore.Mvc.FromBodyAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.FromFormAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FromFormAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata + // Generated from `Microsoft.AspNetCore.Mvc.FromFormAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class FromFormAttribute : System.Attribute, 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.FromHeaderAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FromHeaderAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata + // Generated from `Microsoft.AspNetCore.Mvc.FromHeaderAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.FromQueryAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FromQueryAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata + // Generated from `Microsoft.AspNetCore.Mvc.FromQueryAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.FromRouteAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FromRouteAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata + // Generated from `Microsoft.AspNetCore.Mvc.FromRouteAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.FromServicesAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FromServicesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata + // Generated from `Microsoft.AspNetCore.Mvc.FromServicesAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.HttpDeleteAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.HttpDeleteAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpDeleteAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute { - public HttpDeleteAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; public HttpDeleteAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpDeleteAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.HttpGetAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.HttpGetAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpGetAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute { - public HttpGetAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; public HttpGetAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpGetAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.HttpHeadAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.HttpHeadAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpHeadAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute { - public HttpHeadAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; public HttpHeadAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpHeadAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.HttpOptionsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.HttpOptionsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpOptionsAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute { - public HttpOptionsAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; public HttpOptionsAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpOptionsAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.HttpPatchAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.HttpPatchAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpPatchAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute { - public HttpPatchAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; public HttpPatchAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpPatchAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.HttpPostAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.HttpPostAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpPostAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute { - public HttpPostAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; public HttpPostAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpPostAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.HttpPutAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.HttpPutAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpPutAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute { - public HttpPutAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; public HttpPutAttribute() : base(default(System.Collections.Generic.IEnumerable)) => throw null; + public HttpPutAttribute(string template) : base(default(System.Collections.Generic.IEnumerable)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.IDesignTimeMvcBuilderConfiguration` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.IDesignTimeMvcBuilderConfiguration` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDesignTimeMvcBuilderConfiguration { void ConfigureMvc(Microsoft.Extensions.DependencyInjection.IMvcBuilder builder); } - // Generated from `Microsoft.AspNetCore.Mvc.IRequestFormLimitsPolicy` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.IRequestFormLimitsPolicy` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRequestFormLimitsPolicy : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - // Generated from `Microsoft.AspNetCore.Mvc.IRequestSizePolicy` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.IRequestSizePolicy` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRequestSizePolicy : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - // Generated from `Microsoft.AspNetCore.Mvc.JsonOptions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.JsonOptions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.JsonResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class JsonResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.JsonResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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, object serializerSettings) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.LocalRedirectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.LocalRedirectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, bool permanent, bool preserveMethod) => throw null; - public LocalRedirectResult(string localUrl, bool permanent) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.MiddlewareFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MiddlewareFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.MiddlewareFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -770,34 +776,35 @@ namespace Microsoft public int Order { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinderAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ModelBinderAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata, Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinderAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(System.Type binderType) => throw null; public ModelBinderAttribute() => throw null; + public ModelBinderAttribute(System.Type binderType) => throw null; public string Name { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelMetadataTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelMetadataTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelMetadataTypeAttribute : System.Attribute { public System.Type MetadataType { get => throw null; } public ModelMetadataTypeAttribute(System.Type type) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.MvcOptions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MvcOptions : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.MvcOptions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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.IEnumerator System.Collections.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 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; } @@ -822,44 +829,44 @@ namespace Microsoft public System.Collections.Generic.IList ValueProviderFactories { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.NoContentResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.NoContentResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NoContentResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public NoContentResult() : base(default(int)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.NonActionAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.NonActionAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NonActionAttribute : System.Attribute { public NonActionAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.NonControllerAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.NonControllerAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NonControllerAttribute : System.Attribute { public NonControllerAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.NonViewComponentAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.NonViewComponentAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NonViewComponentAttribute : System.Attribute { public NonViewComponentAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.NotFoundObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.NotFoundObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NotFoundObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult { public NotFoundObjectResult(object value) : base(default(object)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.NotFoundResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.NotFoundResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NotFoundResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public NotFoundResult() : base(default(int)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ObjectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.ObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -871,95 +878,84 @@ namespace Microsoft public object Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.OkObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.OkObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OkObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult { public OkObjectResult(object value) : base(default(object)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.OkResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.OkResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OkResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public OkResult() : base(default(int)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.PhysicalFileResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.PhysicalFileResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, string contentType) : base(default(string)) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ProblemDetails` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - 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; } - } - - // Generated from `Microsoft.AspNetCore.Mvc.ProducesAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ProducesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.ProducesAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(string contentType, params string[] additionalContentTypes) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ProducesDefaultResponseTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ProducesDefaultResponseTypeAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDefaultResponseMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.ProducesDefaultResponseTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ProducesDefaultResponseTypeAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDefaultResponseMetadataProvider, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { - public ProducesDefaultResponseTypeAttribute(System.Type type) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ProducesErrorResponseTypeAttribute : System.Attribute { public ProducesErrorResponseTypeAttribute(System.Type type) => throw null; public System.Type Type { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ProducesResponseTypeAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RedirectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RedirectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.RedirectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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, bool permanent, bool preserveMethod) => throw null; - public RedirectResult(string url, bool permanent) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RedirectToActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RedirectToActionResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.RedirectToActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -967,18 +963,18 @@ namespace Microsoft 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, 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, bool permanent, bool preserveMethod, string fragment) => 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) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RedirectToPageResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RedirectToPageResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.RedirectToPageResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -988,40 +984,40 @@ namespace Microsoft 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, 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 RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent, bool preserveMethod) => throw null; - public RedirectToPageResult(string pageName, string pageHandler, object routeValues, bool permanent) => throw null; - public RedirectToPageResult(string pageName, string pageHandler, object routeValues) => throw null; - public RedirectToPageResult(string pageName, string pageHandler) => throw null; - public RedirectToPageResult(string pageName, object routeValues) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RedirectToRouteResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RedirectToRouteResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.RedirectToRouteResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(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 RedirectToRouteResult(string routeName, object routeValues, bool permanent, bool preserveMethod) => throw null; - public RedirectToRouteResult(string routeName, object routeValues, bool permanent) => throw null; - public RedirectToRouteResult(string routeName, object routeValues) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RequestFormLimitsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -1039,8 +1035,8 @@ namespace Microsoft public int ValueLengthLimit { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.RequestSizeLimitAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RequestSizeLimitAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.RequestSizeLimitAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class RequestSizeLimitAttribute : 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; } @@ -1048,8 +1044,8 @@ namespace Microsoft public RequestSizeLimitAttribute(System.Int64 bytes) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.RequireHttpsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RequireHttpsAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter + // Generated from `Microsoft.AspNetCore.Mvc.RequireHttpsAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -1058,8 +1054,8 @@ namespace Microsoft public RequireHttpsAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ResponseCacheAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ResponseCacheAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.ResponseCacheAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -1074,7 +1070,7 @@ namespace Microsoft public string[] VaryByQueryKeys { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ResponseCacheLocation` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ResponseCacheLocation` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ResponseCacheLocation { Any, @@ -1082,7 +1078,7 @@ namespace Microsoft None, } - // Generated from `Microsoft.AspNetCore.Mvc.RouteAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RouteAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider { public string Name { get => throw null; set => throw null; } @@ -1092,15 +1088,15 @@ namespace Microsoft public string Template { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.SerializableError` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.SerializableError` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SerializableError : System.Collections.Generic.Dictionary { - public SerializableError(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; public SerializableError() => throw null; + public SerializableError(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ServiceFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ServiceFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.ServiceFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -1109,35 +1105,36 @@ namespace Microsoft public System.Type ServiceType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.SignInResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.SignInResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(string authenticationScheme, 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(System.Security.Claims.ClaimsPrincipal principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.SignOutResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class SignOutResult : Microsoft.AspNetCore.Mvc.ActionResult + // Generated from `Microsoft.AspNetCore.Mvc.SignOutResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(string authenticationScheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public SignOutResult(string authenticationScheme) => throw null; - public SignOutResult(System.Collections.Generic.IList authenticationSchemes, Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; - public SignOutResult(System.Collections.Generic.IList authenticationSchemes) => throw null; - public SignOutResult(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.StatusCodeResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class StatusCodeResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.StatusCodeResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -1145,8 +1142,8 @@ namespace Microsoft public StatusCodeResult(int statusCode) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.TypeFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class TypeFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.TypeFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -1156,88 +1153,88 @@ namespace Microsoft public TypeFilterAttribute(System.Type type) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.UnauthorizedObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.UnauthorizedObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UnauthorizedObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult { public UnauthorizedObjectResult(object value) : base(default(object)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.UnauthorizedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.UnauthorizedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UnauthorizedResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public UnauthorizedResult() : base(default(int)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.UnprocessableEntityObjectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UnprocessableEntityObjectResult : Microsoft.AspNetCore.Mvc.ObjectResult { - public UnprocessableEntityObjectResult(object error) : base(default(object)) => throw null; public UnprocessableEntityObjectResult(Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) : base(default(object)) => throw null; + public UnprocessableEntityObjectResult(object error) : base(default(object)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.UnprocessableEntityResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.UnprocessableEntityResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UnprocessableEntityResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public UnprocessableEntityResult() : base(default(int)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.UnsupportedMediaTypeResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.UnsupportedMediaTypeResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UnsupportedMediaTypeResult : Microsoft.AspNetCore.Mvc.StatusCodeResult { public UnsupportedMediaTypeResult() : base(default(int)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.UrlHelperExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.UrlHelperExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class UrlHelperExtensions { - 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 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) => 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) => 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) => throw null; 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, string pageHandler, object values, string protocol, string host, string fragment) => 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) => 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) => 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) => 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, string routeName, object values, string protocol, string host, string fragment) => 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) => 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) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ValidationProblemDetails` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ValidationProblemDetails : Microsoft.AspNetCore.Mvc.ProblemDetails + // Generated from `Microsoft.AspNetCore.Mvc.ValidationProblemDetails` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 ValidationProblemDetails() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.VirtualFileResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.VirtualFileResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, string contentType) : base(default(string)) => 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 { - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionMethodSelectorAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class ActionMethodSelectorAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.ActionMethodSelectorAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -1245,8 +1242,8 @@ namespace Microsoft public int Order { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HttpMethodActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -1255,22 +1252,22 @@ namespace Microsoft public int Order { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IConsumesActionConstraint` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - internal interface IConsumesActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint + // Generated from `Microsoft.AspNetCore.Mvc.ActionConstraints.IConsumesActionConstraint` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + internal interface IConsumesActionConstraint : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint, Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata { } } namespace ApiExplorer { - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ApiConventionNameMatchBehavior { Any, @@ -1279,57 +1276,57 @@ namespace Microsoft Suffix, } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiConventionResult { public ApiConventionResult(System.Collections.Generic.IReadOnlyList responseMetadataProviders) => throw null; public System.Collections.Generic.IReadOnlyList ResponseMetadataProviders { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionTypeMatchBehavior` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ApiConventionTypeMatchBehavior { Any, AssignableFrom, } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDefaultResponseMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IApiDefaultResponseMetadataProvider : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDefaultResponseMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IApiDefaultResponseMetadataProvider : Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupNameProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupNameProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiDescriptionGroupNameProvider { string GroupName { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionVisibilityProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionVisibilityProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiDescriptionVisibilityProvider { bool IgnoreApi { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestFormatMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestFormatMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiRequestFormatMetadataProvider { System.Collections.Generic.IReadOnlyList GetSupportedContentTypes(string contentType, System.Type objectType); } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiRequestMetadataProvider : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes); } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiResponseMetadataProvider : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void SetContentTypes(Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection contentTypes); @@ -1337,7 +1334,7 @@ namespace Microsoft System.Type Type { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseTypeMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseTypeMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiResponseTypeMetadataProvider { System.Collections.Generic.IReadOnlyList GetSupportedContentTypes(string contentType, System.Type objectType); @@ -1346,12 +1343,12 @@ namespace Microsoft } namespace ApplicationModels { - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ActionModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(System.Reflection.MethodInfo actionMethod, System.Collections.Generic.IReadOnlyList attributes) => 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; } @@ -1367,7 +1364,7 @@ namespace Microsoft public System.Collections.Generic.IList Selectors { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApiConventionApplicationModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApiConventionApplicationModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiConventionApplicationModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention { public ApiConventionApplicationModelConvention(Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute defaultErrorResponseType) => throw null; @@ -1376,16 +1373,16 @@ namespace Microsoft protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiExplorerModel { - public ApiExplorerModel(Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel other) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApiVisibilityConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApiVisibilityConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApiVisibilityConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention { public ApiVisibilityConvention() => throw null; @@ -1393,8 +1390,8 @@ namespace Microsoft protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ApplicationModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -1403,7 +1400,7 @@ namespace Microsoft public System.Collections.Generic.IDictionary Properties { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApplicationModelProviderContext { public ApplicationModelProviderContext(System.Collections.Generic.IEnumerable controllerTypes) => throw null; @@ -1411,27 +1408,27 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel Result { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AttributeRouteModel { public Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider Attribute { get => throw null; } - public AttributeRouteModel(Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider templateProvider) => throw null; - public AttributeRouteModel(Microsoft.AspNetCore.Mvc.ApplicationModels.AttributeRouteModel other) => 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, Microsoft.AspNetCore.Routing.IOutboundParameterTransformer routeTokenTransformer) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ClientErrorResultFilterConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ClientErrorResultFilterConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ClientErrorResultFilterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention { public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; @@ -1439,7 +1436,7 @@ namespace Microsoft protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ConsumesConstraintForFormFileParameterConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ConsumesConstraintForFormFileParameterConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConsumesConstraintForFormFileParameterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention { public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; @@ -1447,15 +1444,15 @@ namespace Microsoft protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ControllerModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(System.Reflection.TypeInfo controllerType, System.Collections.Generic.IReadOnlyList attributes) => 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; } @@ -1468,25 +1465,25 @@ namespace Microsoft public System.Collections.Generic.IList Selectors { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionModelConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IApiExplorerModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiExplorerModel { Microsoft.AspNetCore.Mvc.ApplicationModels.ApiExplorerModel ApiExplorer { get; set; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApplicationModelConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel application); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApplicationModelProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context); @@ -1494,13 +1491,13 @@ namespace Microsoft int Order { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IBindingModel { Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get; set; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICommonModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel { System.Collections.Generic.IReadOnlyList Attributes { get; } @@ -1508,37 +1505,37 @@ namespace Microsoft string Name { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IControllerModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IControllerModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IControllerModelConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel controller); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IFilterModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFilterModel { System.Collections.Generic.IList Filters { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelBaseConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelBaseConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IParameterModelBaseConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase parameter); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IParameterModelConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel parameter); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPropertyModel { System.Collections.Generic.IDictionary Properties { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.InferParameterBindingInfoConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.InferParameterBindingInfoConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InferParameterBindingInfoConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention { public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; @@ -1546,7 +1543,7 @@ namespace Microsoft protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.InvalidModelStateFilterConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.InvalidModelStateFilterConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InvalidModelStateFilterConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention { public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; @@ -1554,8 +1551,8 @@ namespace Microsoft protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -1568,20 +1565,20 @@ namespace Microsoft public System.Collections.Generic.IDictionary Properties { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(System.Type parameterType, System.Collections.Generic.IReadOnlyList attributes) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class PropertyModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -1593,7 +1590,7 @@ namespace Microsoft public string PropertyName { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.RouteTokenTransformerConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.RouteTokenTransformerConvention` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteTokenTransformerConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention { public void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; @@ -1601,34 +1598,34 @@ namespace Microsoft protected virtual bool ShouldApply(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel other) => throw null; public SelectorModel() => throw null; + public SelectorModel(Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel other) => throw null; } } namespace ApplicationParts { - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ApplicationPart { protected ApplicationPart() => throw null; public abstract string Name { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApplicationPartAttribute : System.Attribute { public ApplicationPartAttribute(string assemblyName) => throw null; public string AssemblyName { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ApplicationPartFactory { protected ApplicationPartFactory() => throw null; @@ -1636,7 +1633,7 @@ namespace Microsoft public abstract System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ApplicationPartManager { public ApplicationPartManager() => throw null; @@ -1645,7 +1642,7 @@ namespace Microsoft public void PopulateFeature(TFeature feature) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AssemblyPart : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationPartTypeProvider { public System.Reflection.Assembly Assembly { get => throw null; } @@ -1654,7 +1651,7 @@ namespace Microsoft public System.Collections.Generic.IEnumerable Types { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultApplicationPartFactory : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory { public DefaultApplicationPartFactory() => throw null; @@ -1663,45 +1660,45 @@ namespace Microsoft public static Microsoft.AspNetCore.Mvc.ApplicationParts.DefaultApplicationPartFactory Instance { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApplicationFeatureProvider { } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider<>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider<>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApplicationFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider { void PopulateFeature(System.Collections.Generic.IEnumerable parts, TFeature feature); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationPartTypeProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationPartTypeProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApplicationPartTypeProvider { System.Collections.Generic.IEnumerable Types { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ICompilationReferencesProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ICompilationReferencesProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICompilationReferencesProvider { System.Collections.Generic.IEnumerable GetReferencePaths(); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.NullApplicationPartFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.NullApplicationPartFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ProvideApplicationPartFactoryAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ProvideApplicationPartFactoryAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ProvideApplicationPartFactoryAttribute : System.Attribute { public System.Type GetFactoryType() => throw null; - public ProvideApplicationPartFactoryAttribute(string factoryTypeName) => throw null; public ProvideApplicationPartFactoryAttribute(System.Type factoryType) => throw null; + public ProvideApplicationPartFactoryAttribute(string factoryTypeName) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RelatedAssemblyAttribute : System.Attribute { public string AssemblyFileName { get => throw null; } @@ -1712,21 +1709,21 @@ namespace Microsoft } namespace Authorization { - // Generated from `Microsoft.AspNetCore.Mvc.Authorization.AllowAnonymousFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class AllowAnonymousFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Authorization.IAllowAnonymousFilter + // Generated from `Microsoft.AspNetCore.Mvc.Authorization.AllowAnonymousFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class AllowAnonymousFilter : Microsoft.AspNetCore.Mvc.Authorization.IAllowAnonymousFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { public AllowAnonymousFilter() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class AuthorizeFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory, Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter + // Generated from `Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(string policy) => throw null; - public AuthorizeFilter(System.Collections.Generic.IEnumerable authorizeData) => throw null; - public AuthorizeFilter(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.Collections.Generic.IEnumerable authorizeData) => throw null; - public AuthorizeFilter(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy) => 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; @@ -1737,7 +1734,7 @@ namespace Microsoft } namespace Controllers { - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ControllerActionDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor { public virtual string ActionName { get => throw null; set => throw null; } @@ -1748,79 +1745,84 @@ namespace Microsoft public System.Reflection.MethodInfo MethodInfo { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerBoundPropertyDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerBoundPropertyDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerFeature` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerFeature` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ControllerFeature { public ControllerFeature() => throw null; public System.Collections.Generic.IList Controllers { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerFeatureProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ControllerFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerFeatureProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerParameterDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ControllerParameterDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerActivatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerActivatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerFactoryProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerFactoryProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerPropertyActivator` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.IControllerPropertyActivator` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IControllerPropertyActivator { void Activate(Microsoft.AspNetCore.Mvc.ControllerContext context, object controller); System.Action GetActivatorDelegate(Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor actionDescriptor); } - // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ServiceBasedControllerActivator` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Controllers.ServiceBasedControllerActivator` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ServiceBasedControllerActivator : Microsoft.AspNetCore.Mvc.Controllers.IControllerActivator { public object Create(Microsoft.AspNetCore.Mvc.ControllerContext actionContext) => throw null; @@ -1833,7 +1835,7 @@ namespace Microsoft { namespace Infrastructure { - // Generated from `Microsoft.AspNetCore.Mvc.Core.Infrastructure.IAntiforgeryValidationFailedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Core.Infrastructure.IAntiforgeryValidationFailedResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAntiforgeryValidationFailedResult : Microsoft.AspNetCore.Mvc.IActionResult { } @@ -1842,7 +1844,7 @@ namespace Microsoft } namespace Diagnostics { - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterActionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1854,7 +1856,7 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterActionFilterOnActionExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1866,7 +1868,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterActionFilterOnActionExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1878,7 +1880,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionFilterOnActionExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterActionFilterOnActionExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1890,7 +1892,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionResultEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterActionResultEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterActionResultEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -1901,7 +1903,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterAuthorizationFilterOnAuthorizationEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterAuthorizationFilterOnAuthorizationEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterAuthorizationFilterOnAuthorizationEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1913,7 +1915,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterControllerActionMethodEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterControllerActionMethodEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterControllerActionMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -1926,7 +1928,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterExceptionFilterOnExceptionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterExceptionFilterOnExceptionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterExceptionFilterOnExceptionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1938,7 +1940,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterResourceFilterOnResourceExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1950,7 +1952,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext ResourceExecutedContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterResourceFilterOnResourceExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1962,7 +1964,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResourceFilterOnResourceExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterResourceFilterOnResourceExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1974,7 +1976,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext ResourceExecutedContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterResultFilterOnResultExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1986,7 +1988,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext ResultExecutedContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterResultFilterOnResultExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -1998,7 +2000,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext ResultExecutingContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterResultFilterOnResultExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterResultFilterOnResultExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2010,7 +2012,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext ResultExecutedContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeActionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2022,7 +2024,7 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeActionFilterOnActionExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2034,7 +2036,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeActionFilterOnActionExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2046,7 +2048,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionFilterOnActionExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeActionFilterOnActionExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2058,7 +2060,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionResultEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeActionResultEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeActionResultEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -2069,7 +2071,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeAuthorizationFilterOnAuthorizationEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeAuthorizationFilterOnAuthorizationEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeAuthorizationFilterOnAuthorizationEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2081,7 +2083,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeControllerActionMethodEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeControllerActionMethodEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeControllerActionMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public System.Collections.Generic.IReadOnlyDictionary ActionArguments { get => throw null; } @@ -2093,7 +2095,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeExceptionFilterOnException` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeExceptionFilterOnException` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeExceptionFilterOnException : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2105,7 +2107,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeResourceFilterOnResourceExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2117,7 +2119,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutedContext ResourceExecutedContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeResourceFilterOnResourceExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2129,7 +2131,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResourceFilterOnResourceExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeResourceFilterOnResourceExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2141,7 +2143,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext ResourceExecutingContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutedEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeResultFilterOnResultExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2153,7 +2155,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext ResultExecutedContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutingEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeResultFilterOnResultExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2165,7 +2167,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext ResultExecutingContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeResultFilterOnResultExecutionEventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeResultFilterOnResultExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -2177,13 +2179,11 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext ResultExecutingContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.EventData` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class EventData : System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IEnumerable> + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.EventData` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public abstract class EventData : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList>, System.Collections.IEnumerable { - protected abstract int Count { get; } - int System.Collections.Generic.IReadOnlyCollection>.Count { get => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.EventData+Enumerator` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator> + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.EventData+Enumerator` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -2194,10 +2194,12 @@ namespace Microsoft } + protected abstract int Count { get; } + int System.Collections.Generic.IReadOnlyCollection>.Count { get => throw null; } protected EventData() => throw null; protected const string EventNamespace = default; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; 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; } } @@ -2205,8 +2207,8 @@ namespace Microsoft } namespace Filters { - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class ActionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, Microsoft.AspNetCore.Mvc.Filters.IActionFilter + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -2218,8 +2220,8 @@ namespace Microsoft public int Order { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ExceptionFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class ExceptionFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncExceptionFilter + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ExceptionFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -2227,21 +2229,21 @@ namespace Microsoft public int Order { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterCollection` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterCollection` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FilterCollection : System.Collections.ObjectModel.Collection { - public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Add(int order) where TFilterType : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => 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, int order) => throw null; public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata Add(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() where TFilterType : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => 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 Add() where TFilterType : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => 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 AddService() where TFilterType : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => throw null; + public Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata AddService(int order) where TFilterType : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata => throw null; public FilterCollection() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterScope` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.FilterScope` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class FilterScope { public static int Action; @@ -2251,8 +2253,8 @@ namespace Microsoft public static int Last; } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class ResultFilterAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter + // Generated from `Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 virtual void OnResultExecuted(Microsoft.AspNetCore.Mvc.Filters.ResultExecutedContext context) => throw null; public virtual void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) => throw null; @@ -2264,8 +2266,8 @@ namespace Microsoft } namespace Formatters { - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.FormatFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FormatFilter : Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.FormatFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class FormatFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IResultFilter { public FormatFilter(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public virtual string GetFormat(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; @@ -2275,17 +2277,17 @@ namespace Microsoft public void OnResultExecuting(Microsoft.AspNetCore.Mvc.Filters.ResultExecutingContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, string contentType) => throw null; public void SetMediaTypeMappingForFormat(string format, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => throw null; + public void SetMediaTypeMappingForFormat(string format, string contentType) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpNoContentOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter { public bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) => throw null; @@ -2294,14 +2296,14 @@ namespace Microsoft public System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.IFormatFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.IFormatFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IFormatFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { string GetFormat(Microsoft.AspNetCore.Mvc.ActionContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class InputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiRequestFormatMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.InputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -2313,34 +2315,34 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection SupportedMediaTypes { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.MediaType` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.MediaType` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 System.Text.Encoding Encoding { get => throw null; } - public static System.Text.Encoding GetEncoding(string mediaType) => 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 static System.Text.Encoding GetEncoding(string mediaType) => throw null; public Microsoft.Extensions.Primitives.StringSegment GetParameter(Microsoft.Extensions.Primitives.StringSegment parameterName) => throw null; + public Microsoft.Extensions.Primitives.StringSegment GetParameter(string 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; } - public MediaType(string mediaType, int offset, int? length) => throw null; - public MediaType(string mediaType) => throw null; - public MediaType(Microsoft.Extensions.Primitives.StringSegment mediaType) => throw null; // Stub generator skipped constructor - public static string ReplaceEncoding(string mediaType, System.Text.Encoding encoding) => throw null; + 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 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.MediaTypeCollection` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MediaTypeCollection : System.Collections.ObjectModel.Collection { public void Add(Microsoft.Net.Http.Headers.MediaTypeHeaderValue item) => throw null; @@ -2349,18 +2351,18 @@ namespace Microsoft public bool Remove(Microsoft.Net.Http.Headers.MediaTypeHeaderValue item) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.MediaTypeSegmentWithQuality` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct MediaTypeSegmentWithQuality { public Microsoft.Extensions.Primitives.StringSegment MediaType { get => throw null; } - public MediaTypeSegmentWithQuality(Microsoft.Extensions.Primitives.StringSegment mediaType, double quality) => throw null; // Stub generator skipped constructor + public MediaTypeSegmentWithQuality(Microsoft.Extensions.Primitives.StringSegment mediaType, double quality) => throw null; public double Quality { get => throw null; } public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class OutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter, Microsoft.AspNetCore.Mvc.ApiExplorer.IApiResponseTypeMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -2372,7 +2374,7 @@ namespace Microsoft public virtual void WriteResponseHeaders(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StreamOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.IOutputFormatter { public bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) => throw null; @@ -2380,7 +2382,7 @@ namespace Microsoft public System.Threading.Tasks.Task WriteAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StringOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter { public override bool CanWriteResult(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext context) => throw null; @@ -2388,7 +2390,7 @@ namespace Microsoft public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding encoding) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } @@ -2397,7 +2399,7 @@ namespace Microsoft public SystemTextJsonInputFormatter(Microsoft.AspNetCore.Mvc.JsonOptions options, Microsoft.Extensions.Logging.ILogger logger) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SystemTextJsonOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter { public System.Text.Json.JsonSerializerOptions SerializerOptions { get => throw null; } @@ -2405,7 +2407,7 @@ namespace Microsoft public override System.Threading.Tasks.Task WriteResponseBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context, System.Text.Encoding selectedEncoding) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class TextInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.InputFormatter { public override System.Threading.Tasks.Task ReadRequestBodyAsync(Microsoft.AspNetCore.Mvc.Formatters.InputFormatterContext context) => throw null; @@ -2417,7 +2419,7 @@ namespace Microsoft protected static System.Text.Encoding UTF8EncodingWithoutBOM; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.TextOutputFormatter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class TextOutputFormatter : Microsoft.AspNetCore.Mvc.Formatters.OutputFormatter { public virtual System.Text.Encoding SelectCharacterEncoding(Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterWriteContext context) => throw null; @@ -2431,14 +2433,14 @@ namespace Microsoft } namespace Infrastructure { - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionContextAccessor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionContextAccessor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionContextAccessor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; set => throw null; } public ActionContextAccessor() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionDescriptorCollection { public ActionDescriptorCollection(System.Collections.Generic.IReadOnlyList items, int version) => throw null; @@ -2446,7 +2448,7 @@ namespace Microsoft public int Version { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollectionProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollectionProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ActionDescriptorCollectionProvider : Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider { protected ActionDescriptorCollectionProvider() => throw null; @@ -2454,37 +2456,37 @@ namespace Microsoft public abstract Microsoft.Extensions.Primitives.IChangeToken GetChangeToken(); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionResultObjectValueAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionResultObjectValueAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionResultObjectValueAttribute : System.Attribute { public ActionResultObjectValueAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionResultStatusCodeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ActionResultStatusCodeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActionResultStatusCodeAttribute : System.Attribute { public ActionResultStatusCodeAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.AmbiguousActionException` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.AmbiguousActionException` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AmbiguousActionException : System.InvalidOperationException { - public AmbiguousActionException(string message) => throw null; protected AmbiguousActionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public AmbiguousActionException(string message) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.CompatibilitySwitch<>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.CompatibilitySwitch<>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompatibilitySwitch : Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch where TValue : struct { - public CompatibilitySwitch(string name, TValue initialValue) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions<>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions<>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -2493,28 +2495,28 @@ namespace Microsoft protected Microsoft.AspNetCore.Mvc.CompatibilityVersion Version { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ContentResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ContentResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.DefaultStatusCodeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.DefaultStatusCodeAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultStatusCodeAttribute : System.Attribute { public DefaultStatusCodeAttribute(int statusCode) => throw null; public int StatusCode { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.FileContentResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.FileContentResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -2522,7 +2524,7 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileResultExecutorBase { protected const int BufferSize = default; @@ -2533,7 +2535,7 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.FileStreamResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.FileStreamResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -2541,67 +2543,67 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionContextAccessor { Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get; set; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionDescriptorChangeProvider { Microsoft.Extensions.Primitives.IChangeToken GetChangeToken(); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionDescriptorCollectionProvider { Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection ActionDescriptors { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionInvokerFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionInvokerFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionInvokerFactory { Microsoft.AspNetCore.Mvc.Abstractions.IActionInvoker CreateInvoker(Microsoft.AspNetCore.Mvc.ActionContext actionContext); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor<>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor<>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionResultExecutor where TResult : Microsoft.AspNetCore.Mvc.IActionResult { System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, TResult result); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionResultTypeMapper { Microsoft.AspNetCore.Mvc.IActionResult Convert(object value, System.Type returnType); System.Type GetResultDataType(System.Type returnType); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionSelector` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IActionSelector` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IApiBehaviorMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IApiBehaviorMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApiBehaviorMetadata : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IClientErrorActionResult : Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IClientErrorActionResult : Microsoft.AspNetCore.Mvc.IActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult { } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IClientErrorFactory { Microsoft.AspNetCore.Mvc.IActionResult GetClientError(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorActionResult clientError); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ICompatibilitySwitch` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICompatibilitySwitch { bool IsValueSet { get; } @@ -2609,51 +2611,51 @@ namespace Microsoft object Value { get; set; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IConvertToActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IConvertToActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConvertToActionResult { Microsoft.AspNetCore.Mvc.IActionResult Convert(); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpRequestStreamReaderFactory { System.IO.TextReader CreateReader(System.IO.Stream stream, System.Text.Encoding encoding); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpResponseStreamWriterFactory { System.IO.TextWriter CreateWriter(System.IO.Stream stream, System.Text.Encoding encoding); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IParameterInfoParameterDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IParameterInfoParameterDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IParameterInfoParameterDescriptor { System.Reflection.ParameterInfo ParameterInfo { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPropertyInfoParameterDescriptor { System.Reflection.PropertyInfo PropertyInfo { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStatusCodeActionResult : Microsoft.AspNetCore.Mvc.IActionResult { int? StatusCode { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.LocalRedirectResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.LocalRedirectResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ModelStateInvalidFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ModelStateInvalidFilter : Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IActionFilter + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ModelStateInvalidFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -2662,36 +2664,34 @@ namespace Microsoft public int Order { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.MvcCompatibilityOptions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.MvcCompatibilityOptions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MvcCompatibilityOptions { public Microsoft.AspNetCore.Mvc.CompatibilityVersion CompatibilityVersion { get => throw null; set => throw null; } public MvcCompatibilityOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ObjectResultExecutor : Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { 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; - public ObjectResultExecutor(Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector formatterSelector, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpResponseStreamWriterFactory writerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; protected System.Func WriterFactory { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.OutputFormatterSelector` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PhysicalFileResultExecutor : 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.PhysicalFileResult result) => throw null; - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor+FileMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor+FileMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` protected class FileMetadata { public bool Exists { get => throw null; set => throw null; } @@ -2701,13 +2701,14 @@ namespace Microsoft } + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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)); @@ -2715,35 +2716,35 @@ namespace Microsoft protected ProblemDetailsFactory() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.RedirectResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.RedirectResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToActionResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToActionResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToPageResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToPageResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToRouteResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToRouteResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.VirtualFileResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Infrastructure.VirtualFileResultExecutor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class VirtualFileResultExecutor : 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.VirtualFileResult result) => throw null; @@ -2755,19 +2756,19 @@ namespace Microsoft } namespace ModelBinding { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindNeverAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindNeverAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindNeverAttribute : Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute { public BindNeverAttribute() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindRequiredAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindRequiredAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindRequiredAttribute : Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute { public BindRequiredAttribute() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehavior` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum BindingBehavior { Never, @@ -2775,15 +2776,15 @@ namespace Microsoft Required, } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingBehaviorAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class BindingSourceValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -2792,23 +2793,23 @@ namespace Microsoft public abstract Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class CompositeValueProvider : System.Collections.ObjectModel.Collection, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(System.Collections.Generic.IList valueProviders) => throw null; 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.ControllerContext controllerContext) => throw null; public static System.Threading.Tasks.Task CreateAsync(Microsoft.AspNetCore.Mvc.ActionContext actionContext, System.Collections.Generic.IList factories) => throw null; - public Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.DefaultModelBindingContext` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultModelBindingContext : Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext { public override Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; set => throw null; } @@ -2816,8 +2817,8 @@ namespace Microsoft 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(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; + 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; } @@ -2832,7 +2833,7 @@ namespace Microsoft public override Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider ValueProvider { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.DefaultPropertyFilterProvider<>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.DefaultPropertyFilterProvider<>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultPropertyFilterProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider where TModel : class { public DefaultPropertyFilterProvider() => throw null; @@ -2841,13 +2842,13 @@ namespace Microsoft public virtual System.Collections.Generic.IEnumerable>> PropertyIncludeExpressions { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EmptyModelMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider { public EmptyModelMetadataProvider() : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FormFileValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider { public bool ContainsPrefix(string prefix) => throw null; @@ -2855,15 +2856,15 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderResult GetValue(string key) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.FormFileValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FormValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -2873,71 +2874,71 @@ namespace Microsoft protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.FormValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IBindingSourceValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider { Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource bindingSource); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ICollectionModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ICollectionModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICollectionModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { bool CanCreateInstance(System.Type targetType); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IEnumerableValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider { System.Collections.Generic.IDictionary GetKeysFromPrefix(string prefix); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IKeyRewriterValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider { Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider Filter(); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IModelBinderFactory { Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder CreateBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryFormValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryFormValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryFormValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryFormValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryQueryStringValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryQueryStringValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryQueryStringValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryQueryStringValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class JQueryValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IKeyRewriterValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.JQueryValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -2948,12 +2949,12 @@ namespace Microsoft protected Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer PrefixContainer { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelAttributes { public System.Collections.Generic.IReadOnlyList Attributes { get => 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 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; @@ -2962,14 +2963,14 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList TypeAttributes { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactoryContext` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelBinderFactoryContext { public Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo { get => throw null; set => throw null; } @@ -2978,47 +2979,47 @@ namespace Microsoft public ModelBinderFactoryContext() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 void RemoveType(this System.Collections.Generic.IList list) where TModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProviderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadataProviderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelNames` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelNames` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ModelNames { - public static string CreateIndexModelName(string parentName, string index) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, object container) => 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) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ParameterBinder { - 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 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.PrefixContainer` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PrefixContainer { public bool ContainsPrefix(string prefix) => throw null; @@ -3026,8 +3027,8 @@ namespace Microsoft public PrefixContainer(System.Collections.Generic.ICollection values) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class QueryStringValueProvider : Microsoft.AspNetCore.Mvc.ModelBinding.BindingSourceValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IEnumerableValueProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -3037,49 +3038,49 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.QueryStringValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, System.Globalization.CultureInfo culture) : base(default(Microsoft.AspNetCore.Mvc.ModelBinding.BindingSource)) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.RouteValueProviderFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class SuppressChildValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(string fullTypeName) => throw null; public SuppressChildValidationMetadataProvider(System.Type type) => throw null; + public SuppressChildValidationMetadataProvider(string fullTypeName) => throw null; public System.Type Type { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeException` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeException` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UnsupportedContentTypeException : System.Exception { public UnsupportedContentTypeException(string message) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class UnsupportedContentTypeFilter : Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IActionFilter + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -3087,103 +3088,103 @@ namespace Microsoft public UnsupportedContentTypeFilter() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ValueProviderFactoryExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 static void RemoveType(this System.Collections.Generic.IList list) where TValueProviderFactory : Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviderFactory => throw null; } namespace Binders { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder<>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder<>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ArrayModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder { - 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 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) : 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BodyModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => 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 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) => throw null; + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BodyModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { - 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 BodyModelBinderProvider(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public BodyModelBinderProvider(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory) => throw null; + public BodyModelBinderProvider(System.Collections.Generic.IList formatters, Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder<>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class CollectionModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder, Microsoft.AspNetCore.Mvc.ModelBinding.ICollectionModelBinder + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder<>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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, bool allowValidatingTopLevelNodes, Microsoft.AspNetCore.Mvc.MvcOptions mvcOptions) => 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) => 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; @@ -3192,192 +3193,192 @@ namespace Microsoft protected Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ComplexObjectModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; - public ComplexTypeModelBinder(System.Collections.Generic.IDictionary propertyBinders, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool allowValidatingTopLevelNodes) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DateTimeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DateTimeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DateTimeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DateTimeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DecimalModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DecimalModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder<,>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder<,>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DictionaryModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder> { public override System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => 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 object CreateEmptyCollection(System.Type targetType) => 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 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) : 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) : 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DoubleModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DoubleModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatingPointTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatingPointTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder innerModelBinder) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinder<,>` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinder<,>` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SimpleTypeModelBinder : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder { public System.Threading.Tasks.Task BindModelAsync(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBindingContext bindingContext) => throw null; @@ -3385,7 +3386,7 @@ namespace Microsoft public SimpleTypeModelBinder(System.Type type, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinderProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SimpleTypeModelBinderProvider : Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinderProvider { public Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder GetBinder(Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderProviderContext context) => throw null; @@ -3395,7 +3396,7 @@ namespace Microsoft } namespace Metadata { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindingMetadata { public string BinderModelName { get => throw null; set => throw null; } @@ -3410,7 +3411,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ModelBinding.IPropertyFilterProvider PropertyFilterProvider { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BindingMetadataProviderContext { public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } @@ -3422,8 +3423,8 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList TypeAttributes { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingSourceMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class BindingSourceMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingSourceMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -3431,7 +3432,7 @@ namespace Microsoft public System.Type Type { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultMetadataDetails { public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadata BindingMetadata { get => throw null; set => throw null; } @@ -3448,12 +3449,12 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata ValidationMetadata { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultModelBindingMessageProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelBindingMessageProvider { public override System.Func AttemptedValueIsInvalidAccessor { get => throw null; } - public DefaultModelBindingMessageProvider(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider originalProvider) => throw null; public DefaultModelBindingMessageProvider() => throw null; + public DefaultModelBindingMessageProvider(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider originalProvider) => throw null; public override System.Func MissingBindRequiredValueAccessor { get => throw null; } public override System.Func MissingKeyOrValueAccessor { get => throw null; } public override System.Func MissingRequestBodyRequiredValueAccessor { get => throw null; } @@ -3477,7 +3478,7 @@ namespace Microsoft public override System.Func ValueMustNotBeNullAccessor { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultModelMetadata : Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata { public override System.Collections.Generic.IReadOnlyDictionary AdditionalValues { get => throw null; } @@ -3492,8 +3493,8 @@ namespace Microsoft 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, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider modelBindingMessageProvider) : 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) : 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 Description { get => throw null; } public override string DisplayFormatString { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata DisplayMetadata { get => throw null; } @@ -3532,26 +3533,26 @@ namespace Microsoft public override System.Collections.Generic.IReadOnlyList ValidatorMetadata { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; protected virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails CreateParameterDetails(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key) => throw null; protected virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails[] CreatePropertyDetails(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key) => throw null; protected virtual Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultMetadataDetails CreateTypeDetails(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity key) => throw null; - public DefaultModelMetadataProvider(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider detailsProvider, Microsoft.Extensions.Options.IOptions optionsAccessor) => throw null; public DefaultModelMetadataProvider(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider detailsProvider) => throw null; + public DefaultModelMetadataProvider(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider detailsProvider, Microsoft.Extensions.Options.IOptions optionsAccessor) => throw null; protected Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider DetailsProvider { get => throw null; } public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForConstructor(System.Reflection.ConstructorInfo constructorInfo, System.Type modelType) => throw null; - public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForParameter(System.Reflection.ParameterInfo parameter, System.Type modelType) => throw null; public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForParameter(System.Reflection.ParameterInfo parameter) => throw null; + public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForParameter(System.Reflection.ParameterInfo parameter, System.Type modelType) => throw null; public override System.Collections.Generic.IEnumerable GetMetadataForProperties(System.Type modelType) => throw null; public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForProperty(System.Reflection.PropertyInfo propertyInfo, System.Type modelType) => throw null; public override Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata GetMetadataForType(System.Type modelType) => throw null; protected Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelBindingMessageProvider ModelBindingMessageProvider { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DisplayMetadata { public System.Collections.Generic.IDictionary AdditionalValues { get => throw null; } @@ -3581,7 +3582,7 @@ namespace Microsoft public string TemplateHint { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DisplayMetadataProviderContext { public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } @@ -3592,49 +3593,49 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList TypeAttributes { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ExcludeBindingMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ExcludeBindingMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ExcludeBindingMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IBindingMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider { void CreateBindingMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.BindingMetadataProviderContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface ICompositeMetadataDetailsProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ICompositeMetadataDetailsProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 { } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IDisplayMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDisplayMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider { void CreateDisplayMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DisplayMetadataProviderContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IMetadataDetailsProvider { } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IValidationMetadataProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IValidationMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider { void CreateValidationMetadata(Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.MetadataDetailsProviderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.MetadataDetailsProviderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MetadataDetailsProviderExtensions { - 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 static void RemoveType(this System.Collections.Generic.IList list) where TMetadataDetailsProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationMetadata { public bool? HasValidators { get => throw null; set => throw null; } @@ -3645,7 +3646,7 @@ namespace Microsoft public System.Collections.Generic.IList ValidatorMetadata { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadataProviderContext` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationMetadataProviderContext { public System.Collections.Generic.IReadOnlyList Attributes { get => throw null; } @@ -3660,14 +3661,14 @@ namespace Microsoft } namespace Validation { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorCache` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientValidatorCache` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ClientValidatorCache { 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeClientModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeClientModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompositeClientModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidatorProvider { public CompositeClientModelValidatorProvider(System.Collections.Generic.IEnumerable providers) => throw null; @@ -3675,7 +3676,7 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList ValidatorProviders { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.CompositeModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompositeModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider { public CompositeModelValidatorProvider(System.Collections.Generic.IList providers) => throw null; @@ -3683,36 +3684,45 @@ namespace Microsoft public System.Collections.Generic.IList ValidatorProviders { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IMetadataBasedModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IMetadataBasedModelValidatorProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IMetadataBasedModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider { bool HasValidators(System.Type modelType, System.Collections.Generic.IList validatorMetadata); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IObjectModelValidator` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IObjectModelValidator { void Validate(Microsoft.AspNetCore.Mvc.ActionContext actionContext, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary validationState, string prefix, object model); } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidatorProviderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ModelValidatorProviderExtensions { - 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 static void RemoveType(this System.Collections.Generic.IList list) where TModelValidatorProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidateNeverAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidateNeverAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationVisitor { - public bool AllowShortCircuitingValidationWhenNoValidatorsArePresent { get => throw null; set => throw null; } + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor+StateManager` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + protected struct StateManager : System.IDisposable + { + 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; } @@ -3723,21 +3733,11 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor+StateManager` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - protected struct StateManager : System.IDisposable - { - 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; - public StateManager(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor visitor, object newModel) => throw null; - // Stub generator skipped constructor - } - - protected Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IValidationStrategy Strategy { get => throw null; set => throw null; } protected virtual void SuppressValidation(string key) => throw null; - public virtual bool Validate(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container) => throw null; - public virtual bool Validate(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel) => 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; } protected virtual bool ValidateNode() => throw null; protected Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateDictionary ValidationState { get => throw null; } @@ -3749,7 +3749,7 @@ namespace Microsoft protected virtual bool VisitSimpleType() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidatorCache` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidatorCache { public System.Collections.Generic.IReadOnlyList GetValidators(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IModelValidatorProvider validatorProvider) => throw null; @@ -3760,7 +3760,7 @@ namespace Microsoft } namespace Routing { - // Generated from `Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class DynamicRouteValueTransformer { protected DynamicRouteValueTransformer() => throw null; @@ -3769,11 +3769,11 @@ namespace Microsoft public abstract System.Threading.Tasks.ValueTask TransformAsync(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary values); } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class HttpMethodAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider, Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider + // Generated from `Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public abstract class HttpMethodAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider { - public HttpMethodAttribute(System.Collections.Generic.IEnumerable httpMethods, string template) => throw null; 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; } @@ -3781,13 +3781,13 @@ namespace Microsoft public string Template { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IActionHttpMethodProvider { System.Collections.Generic.IEnumerable HttpMethods { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRouteTemplateProvider { string Name { get; } @@ -3795,27 +3795,27 @@ namespace Microsoft string Template { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.IRouteValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.IRouteValueProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRouteValueProvider { string RouteKey { get; } string RouteValue { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IUrlHelperFactory { Microsoft.AspNetCore.Mvc.IUrlHelper GetUrlHelper(Microsoft.AspNetCore.Mvc.ActionContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.KnownRouteValueConstraint` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class KnownRouteValueConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Mvc.Routing.KnownRouteValueConstraint` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.RouteValueAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.RouteValueAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class RouteValueAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IRouteValueProvider { public string RouteKey { get => throw null; } @@ -3823,7 +3823,7 @@ namespace Microsoft protected RouteValueAttribute(string routeKey, string routeValue) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlHelper` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlHelper` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UrlHelper : Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase { public override string Action(Microsoft.AspNetCore.Mvc.Routing.UrlActionContext actionContext) => throw null; @@ -3835,15 +3835,15 @@ namespace Microsoft public UrlHelper(Microsoft.AspNetCore.Mvc.ActionContext actionContext) : base(default(Microsoft.AspNetCore.Mvc.ActionContext)) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlHelperBase` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 virtualPath, string fragment) => throw null; protected string GenerateUrl(string protocol, string host, string path) => throw null; + protected string GenerateUrl(string protocol, string host, string virtualPath, string fragment) => 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; @@ -3851,7 +3851,7 @@ namespace Microsoft protected UrlHelperBase(Microsoft.AspNetCore.Mvc.ActionContext actionContext) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlHelperFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Routing.UrlHelperFactory` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UrlHelperFactory : Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory { public Microsoft.AspNetCore.Mvc.IUrlHelper GetUrlHelper(Microsoft.AspNetCore.Mvc.ActionContext context) => throw null; @@ -3861,7 +3861,7 @@ namespace Microsoft } namespace ViewFeatures { - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IKeepTempDataResult : Microsoft.AspNetCore.Mvc.IActionResult { } @@ -3870,22 +3870,22 @@ namespace Microsoft } namespace Routing { - // Generated from `Microsoft.AspNetCore.Routing.ControllerLinkGeneratorExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.ControllerLinkGeneratorExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ControllerLinkGeneratorExtensions { - 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 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 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 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; } - // Generated from `Microsoft.AspNetCore.Routing.PageLinkGeneratorExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.PageLinkGeneratorExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class PageLinkGeneratorExtensions { - 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 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 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; + 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; } } @@ -3894,32 +3894,32 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.ApplicationModelConventionExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ApplicationModelConventionExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ApplicationModelConventionExtensions { - public static void Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IParameterModelConvention parameterModelConvention) => 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.IControllerModelConvention controllerModelConvention) => throw null; public static void Add(this System.Collections.Generic.IList conventions, Microsoft.AspNetCore.Mvc.ApplicationModels.IActionModelConvention actionModelConvention) => throw null; - public static void RemoveType(this System.Collections.Generic.IList list) where TApplicationModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention => 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.IParameterModelConvention parameterModelConvention) => throw null; 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 TApplicationModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.IMvcBuilder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IMvcBuilder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IMvcBuilder { Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager PartManager { get; } Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - // Generated from `Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IMvcCoreBuilder { Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager PartManager { get; } Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - // Generated from `Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcCoreMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddApplicationPart(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Reflection.Assembly assembly) => throw null; @@ -3932,15 +3932,15 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcBuilder SetCompatibilityVersion(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, Microsoft.AspNetCore.Mvc.CompatibilityVersion version) => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddAuthorization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddAuthorization(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddControllersAsServices(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddFormatterMappings(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddFormatterMappings(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddFormatterMappings(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddJsonOptions(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action configure) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcOptions(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder ConfigureApiBehaviorOptions(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; @@ -3948,11 +3948,11 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder SetCompatibilityVersion(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, Microsoft.AspNetCore.Mvc.CompatibilityVersion version) => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions` in `Microsoft.AspNetCore.Mvc.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcCoreServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddMvcCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; 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 4ce06860555..817984f8330 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 @@ -8,18 +8,18 @@ namespace Microsoft { namespace Cors { - // Generated from `Microsoft.AspNetCore.Mvc.Cors.CorsAuthorizationFilter` in `Microsoft.AspNetCore.Mvc.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class CorsAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter + // Generated from `Microsoft.AspNetCore.Mvc.Cors.CorsAuthorizationFilter` in `Microsoft.AspNetCore.Mvc.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class CorsAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter { - public CorsAuthorizationFilter(Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider policyProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; public CorsAuthorizationFilter(Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider policyProvider) => throw null; + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Cors.ICorsAuthorizationFilter` in `Microsoft.AspNetCore.Mvc.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - internal interface ICorsAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter + // Generated from `Microsoft.AspNetCore.Mvc.Cors.ICorsAuthorizationFilter` in `Microsoft.AspNetCore.Mvc.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + internal interface ICorsAuthorizationFilter : Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter { } @@ -30,11 +30,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MvcCorsMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcCorsMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Cors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcCorsMvcCoreBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCors(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; 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 8f51348c6bc..fca186c6f10 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Mvc { - // Generated from `Microsoft.AspNetCore.Mvc.HiddenInputAttribute` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.HiddenInputAttribute` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HiddenInputAttribute : System.Attribute { public bool DisplayValue { get => throw null; set => throw null; } @@ -15,35 +15,35 @@ namespace Microsoft namespace DataAnnotations { - // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<>` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class AttributeAdapterBase : Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter, Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator, Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter where TAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute + // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase<>` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 { 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); } - // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAttributeAdapter : Microsoft.AspNetCore.Mvc.ModelBinding.Validation.IClientModelValidator { string GetErrorMessage(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ModelValidationContextBase validationContext); } - // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.IValidationAttributeAdapterProvider` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IValidationAttributeAdapterProvider { Microsoft.AspNetCore.Mvc.DataAnnotations.IAttributeAdapter GetAttributeAdapter(System.ComponentModel.DataAnnotations.ValidationAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer); } - // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MvcDataAnnotationsLocalizationOptions : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.MvcDataAnnotationsLocalizationOptions` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MvcDataAnnotationsLocalizationOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public System.Func DataAnnotationLocalizerProvider; - System.Collections.IEnumerator System.Collections.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 MvcDataAnnotationsLocalizationOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.RequiredAttributeAdapter` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.RequiredAttributeAdapter` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RequiredAttributeAdapter : Microsoft.AspNetCore.Mvc.DataAnnotations.AttributeAdapterBase { public override void AddValidation(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; @@ -51,7 +51,7 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter<>` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapter<>` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); @@ -61,14 +61,14 @@ namespace Microsoft public ValidationAttributeAdapter(TAttribute attribute, Microsoft.Extensions.Localization.IStringLocalizer stringLocalizer) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapterProvider` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationAttributeAdapterProvider` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationProviderAttribute` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.DataAnnotations.ValidationProviderAttribute` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ValidationProviderAttribute : System.Attribute { public abstract System.Collections.Generic.IEnumerable GetValidationAttributes(); @@ -82,19 +82,19 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcDataAnnotationsMvcBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddDataAnnotationsLocalization(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, System.Action setupAction) => 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.Xml.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Mvc.Formatters.Xml.cs index 10a8e4980d6..4bd39721b4e 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 @@ -8,7 +8,7 @@ namespace Microsoft { namespace Formatters { - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class XmlDataContractSerializerInputFormatter : Microsoft.AspNetCore.Mvc.Formatters.TextInputFormatter, Microsoft.AspNetCore.Mvc.Formatters.IInputFormatterExceptionPolicy { protected override bool CanReadType(System.Type type) => throw null; @@ -25,32 +25,32 @@ namespace Microsoft public System.Xml.XmlDictionaryReaderQuotas XmlDictionaryReaderQuotas { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerOutputFormatter` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 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(System.Xml.XmlWriterSettings writerSettings, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public XmlDataContractSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings) => throw null; - public XmlDataContractSerializerOutputFormatter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; + 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; @@ -61,39 +61,39 @@ namespace Microsoft public XmlSerializerInputFormatter(Microsoft.AspNetCore.Mvc.MvcOptions options) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 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(System.Xml.XmlWriterSettings writerSettings, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; - public XmlSerializerOutputFormatter(System.Xml.XmlWriterSettings writerSettings) => throw null; - public XmlSerializerOutputFormatter(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => 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 { - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerable<,>` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DelegatingEnumerable : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerable<,>` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DelegatingEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public void Add(object item) => throw null; - public DelegatingEnumerable(System.Collections.Generic.IEnumerable source, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider elementWrapperProvider) => throw null; public DelegatingEnumerable() => throw null; + public DelegatingEnumerable(System.Collections.Generic.IEnumerable source, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider elementWrapperProvider) => throw null; public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerator<,>` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DelegatingEnumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.DelegatingEnumerator<,>` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DelegatingEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public TWrapped Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } @@ -103,7 +103,7 @@ namespace Microsoft public void Reset() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProvider` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProvider` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EnumerableWrapperProvider : Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider { public EnumerableWrapperProvider(System.Type sourceEnumerableOfT, Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider elementWrapperProvider) => throw null; @@ -111,66 +111,66 @@ namespace Microsoft public System.Type WrappingType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProviderFactory` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.EnumerableWrapperProviderFactory` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IUnwrappable { object Unwrap(System.Type declaredType); } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IWrapperProvider { object Wrap(object original); System.Type WrappingType { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProviderFactory` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProviderFactory` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IWrapperProviderFactory { Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider GetProvider(Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.MvcXmlOptions` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MvcXmlOptions : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.MvcXmlOptions` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MvcXmlOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - System.Collections.IEnumerator System.Collections.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 MvcXmlOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ProblemDetailsWrapper : System.Xml.Serialization.IXmlSerializable, Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetailsWrapper` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ProblemDetailsWrapper : Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable, System.Xml.Serialization.IXmlSerializable { protected static string EmptyKey; public System.Xml.Schema.XmlSchema GetSchema() => throw null; - public ProblemDetailsWrapper(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) => throw null; public ProblemDetailsWrapper() => throw null; + public ProblemDetailsWrapper(Microsoft.AspNetCore.Mvc.ProblemDetails problemDetails) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class SerializableErrorWrapper : System.Xml.Serialization.IXmlSerializable, Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapper` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class SerializableErrorWrapper : Microsoft.AspNetCore.Mvc.Formatters.Xml.IUnwrappable, System.Xml.Serialization.IXmlSerializable { 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(Microsoft.AspNetCore.Mvc.SerializableError error) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProvider` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProvider` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SerializableErrorWrapperProvider : Microsoft.AspNetCore.Mvc.Formatters.Xml.IWrapperProvider { public SerializableErrorWrapperProvider() => throw null; @@ -178,24 +178,24 @@ namespace Microsoft public System.Type WrappingType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProviderFactory` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.SerializableErrorWrapperProviderFactory` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.ValidationProblemDetailsWrapper` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.ValidationProblemDetailsWrapper` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(Microsoft.AspNetCore.Mvc.ValidationProblemDetails problemDetails) => throw null; public ValidationProblemDetailsWrapper() => throw null; + public ValidationProblemDetailsWrapper(Microsoft.AspNetCore.Mvc.ValidationProblemDetails problemDetails) => throw null; public override void WriteXml(System.Xml.XmlWriter writer) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderContext` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WrapperProviderContext { public System.Type DeclaredType { get => throw null; } @@ -203,7 +203,7 @@ namespace Microsoft public WrapperProviderContext(System.Type declaredType, bool isSerialization) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderFactoriesExtensions` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Formatters.Xml.WrapperProviderFactoriesExtensions` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; @@ -215,8 +215,8 @@ namespace Microsoft { namespace Metadata { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DataMemberRequiredBindingMetadataProvider` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DataMemberRequiredBindingMetadataProvider : Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IMetadataDetailsProvider, Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.IBindingMetadataProvider + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DataMemberRequiredBindingMetadataProvider` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DataMemberRequiredBindingMetadataProvider : 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 DataMemberRequiredBindingMetadataProvider() => throw null; @@ -230,24 +230,24 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MvcXmlMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcXmlMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcXmlMvcBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; 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; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddXmlOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.MvcXmlMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcXmlMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Formatters.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcXmlMvcCoreBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddXmlDataContractSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; 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; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddXmlOptions(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddXmlSerializerFormatters(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; 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 7e0aba7126e..f024a16dc78 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 @@ -8,94 +8,94 @@ namespace Microsoft { namespace Localization { - // Generated from `Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer { public virtual System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures) => throw null; - public virtual Microsoft.Extensions.Localization.LocalizedString GetString(string name, params object[] arguments) => 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] { 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, object[] arguments) => throw null; + public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name] { 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer<>` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HtmlLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer, Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer + // Generated from `Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer<>` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class HtmlLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer, Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer { public virtual System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures) => throw null; - public virtual Microsoft.Extensions.Localization.LocalizedString GetString(string name, params object[] arguments) => 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] { get => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerExtensions` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerExtensions` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, params object[] arguments) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerFactory` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizerFactory` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlLocalizerFactory : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory { - public virtual Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer Create(string baseName, string location) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHtmlLocalizer { System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures); - Microsoft.Extensions.Localization.LocalizedString GetString(string name, params object[] arguments); Microsoft.Extensions.Localization.LocalizedString GetString(string name); - Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string name] { get; } + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer<>` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer<>` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHtmlLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer { } - // Generated from `Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizerFactory` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHtmlLocalizerFactory { - Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer Create(string baseName, string location); Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer Create(System.Type resourceSource); + Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer Create(string baseName, string location); } - // Generated from `Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer { } - // Generated from `Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LocalizedHtmlString : Microsoft.AspNetCore.Html.IHtmlContent { public bool IsResourceNotFound { get => throw null; } - public LocalizedHtmlString(string name, string value, bool isResourceNotFound, params object[] arguments) => throw null; - public LocalizedHtmlString(string name, string value, bool isResourceNotFound) => 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 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ViewLocalizer : Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware, Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer, Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer + // Generated from `Microsoft.AspNetCore.Mvc.Localization.ViewLocalizer` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ViewLocalizer : Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer, Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer, Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware { public void Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; public System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures) => throw null; - public Microsoft.Extensions.Localization.LocalizedString GetString(string name, params object[] values) => throw null; public Microsoft.Extensions.Localization.LocalizedString GetString(string name) => throw null; - public virtual Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString this[string key] { get => 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; } @@ -106,38 +106,38 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcLocalizationMvcBuilderExtensions { - 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, 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) => 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, 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) => 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 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 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, 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, Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format, System.Action setupAction) => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcLocalizationMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcLocalizationMvcCoreBuilderExtensions { - 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, 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) => 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, 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) => 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; - 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 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, 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, 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 a03b124b514..2ef42cc70ad 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 @@ -8,7 +8,7 @@ namespace Microsoft { namespace ApplicationParts { - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFactory` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFactory` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompiledRazorAssemblyApplicationPartFactory : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory { public CompiledRazorAssemblyApplicationPartFactory() => throw null; @@ -16,7 +16,7 @@ namespace Microsoft public static System.Collections.Generic.IEnumerable GetDefaultApplicationParts(System.Reflection.Assembly assembly) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyPart` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyPart` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompiledRazorAssemblyPart : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart, Microsoft.AspNetCore.Mvc.ApplicationParts.IRazorCompiledItemProvider { public System.Reflection.Assembly Assembly { get => throw null; } @@ -25,7 +25,14 @@ namespace Microsoft public override string Name { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.IRazorCompiledItemProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.ConsolidatedAssemblyApplicationPartFactory` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ConsolidatedAssemblyApplicationPartFactory : Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartFactory + { + public ConsolidatedAssemblyApplicationPartFactory() => throw null; + public override System.Collections.Generic.IEnumerable GetApplicationParts(System.Reflection.Assembly assembly) => throw null; + } + + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationParts.IRazorCompiledItemProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRazorCompiledItemProvider { System.Collections.Generic.IEnumerable CompiledItems { get; } @@ -34,7 +41,7 @@ namespace Microsoft } namespace Diagnostics { - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewPageEventData` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewPageEventData` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterViewPageEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -47,7 +54,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewPageEventData` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewPageEventData` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeViewPageEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -63,7 +70,7 @@ namespace Microsoft } namespace Razor { - // Generated from `Microsoft.AspNetCore.Mvc.Razor.HelperResult` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.HelperResult` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HelperResult : Microsoft.AspNetCore.Html.IHtmlContent { public HelperResult(System.Func asyncAction) => throw null; @@ -71,12 +78,12 @@ namespace Microsoft public virtual void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.IModelTypeProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.IModelTypeProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IModelTypeProvider { } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.IRazorPage` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.IRazorPage` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRazorPage { Microsoft.AspNetCore.Html.IHtmlContent BodyContent { get; set; } @@ -90,19 +97,19 @@ namespace Microsoft Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get; set; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.IRazorPageActivator` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRazorPageActivator { void Activate(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.IRazorPageFactoryProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRazorPageFactoryProvider { Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult CreateFactory(string relativePath); } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRazorViewEngine : Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine { Microsoft.AspNetCore.Mvc.Razor.RazorPageResult FindPage(Microsoft.AspNetCore.Mvc.ActionContext context, string pageName); @@ -110,48 +117,48 @@ namespace Microsoft Microsoft.AspNetCore.Mvc.Razor.RazorPageResult GetPage(string executingFilePath, string pagePath); } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.ITagHelperActivator` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.ITagHelperActivator` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITagHelperActivator { TTagHelper Create(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.ITagHelperFactory` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.ITagHelperFactory` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITagHelperFactory { TTagHelper CreateTagHelper(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.ITagHelperInitializer<>` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.ITagHelperInitializer<>` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITagHelperInitializer where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper { void Initialize(TTagHelper helper, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.IViewLocationExpander` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.IViewLocationExpander` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpander` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpander` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; public LanguageViewLocationExpander() => throw null; + public LanguageViewLocationExpander(Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat format) => throw null; public void PopulateValues(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum LanguageViewLocationExpanderFormat { SubFolder, Suffix, } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPage` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPage` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class RazorPage : Microsoft.AspNetCore.Mvc.Razor.RazorPageBase { public override void BeginContext(int position, int length, bool isLiteral) => throw null; @@ -164,13 +171,13 @@ namespace Microsoft 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, bool required) => throw null; public Microsoft.AspNetCore.Html.HtmlString RenderSection(string name) => throw null; - public System.Threading.Tasks.Task RenderSectionAsync(string name, bool required) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPage<>` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPage<>` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class RazorPage : Microsoft.AspNetCore.Mvc.Razor.RazorPage { public TModel Model { get => throw null; } @@ -178,14 +185,14 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPageActivator` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPageActivator` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPageBase` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPageBase` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -195,8 +202,8 @@ namespace Microsoft public void BeginWriteTagHelperAttribute() => throw null; public Microsoft.AspNetCore.Html.IHtmlContent BodyContent { get => throw null; set => throw null; } public TTagHelper CreateTagHelper() where TTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper => throw null; - public virtual void DefineSection(string name, Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate section) => 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 void EndAddHtmlAttributeValues(Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext executionContext) => throw null; public abstract void EndContext(); @@ -224,35 +231,35 @@ namespace Microsoft 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 void Write(string value) => throw null; 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(string value) => throw null; public virtual void WriteLiteral(object value) => throw null; + public virtual void WriteLiteral(string value) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPageFactoryResult` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct RazorPageFactoryResult { public System.Func RazorPageFactory { get => throw null; } - public RazorPageFactoryResult(Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor viewDescriptor, System.Func razorPageFactory) => throw null; // Stub generator skipped constructor + public RazorPageFactoryResult(Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor viewDescriptor, System.Func razorPageFactory) => throw null; public bool Success { get => throw null; } public Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor ViewDescriptor { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPageResult` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorPageResult` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct RazorPageResult { 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; - // Stub generator skipped constructor public System.Collections.Generic.IEnumerable SearchedLocations { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorView` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorView` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorView : Microsoft.AspNetCore.Mvc.ViewEngines.IView { public string Path { get => throw null; } @@ -262,8 +269,8 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList ViewStartPages { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RazorViewEngine : Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine, Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class RazorViewEngine : Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine, Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine { 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; @@ -273,10 +280,10 @@ namespace Microsoft 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 Microsoft.Extensions.Caching.Memory.IMemoryCache ViewLookupCache { get => throw null; } + protected internal Microsoft.Extensions.Caching.Memory.IMemoryCache ViewLookupCache { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorViewEngineOptions { public System.Collections.Generic.IList AreaPageViewLocationFormats { get => throw null; } @@ -287,17 +294,17 @@ namespace Microsoft public System.Collections.Generic.IList ViewLocationFormats { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.RenderAsyncDelegate` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate System.Threading.Tasks.Task RenderAsyncDelegate(); - // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelperInitializer<>` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelperInitializer<>` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewLocationExpanderContext { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -312,12 +319,12 @@ namespace Microsoft namespace Compilation { - // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.CompiledViewDescriptor` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompiledViewDescriptor { - public CompiledViewDescriptor(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item, Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute attribute) => throw null; - public CompiledViewDescriptor(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item) => throw null; 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; } @@ -325,19 +332,19 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute ViewAttribute { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewCompiler { System.Threading.Tasks.Task CompileAsync(string relativePath); } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompilerProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompilerProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewCompilerProvider { Microsoft.AspNetCore.Mvc.Razor.Compilation.IViewCompiler GetCompiler(); } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorViewAttribute : System.Attribute { public string Path { get => throw null; } @@ -345,7 +352,7 @@ namespace Microsoft public System.Type ViewType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.ViewsFeature` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.Compilation.ViewsFeature` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewsFeature { public System.Collections.Generic.IList ViewDescriptors { get => throw null; } @@ -355,7 +362,7 @@ namespace Microsoft } namespace Infrastructure { - // Generated from `Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TagHelperMemoryCacheProvider { public Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; set => throw null; } @@ -365,7 +372,7 @@ namespace Microsoft } namespace Internal { - // Generated from `Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorInjectAttribute : System.Attribute { public RazorInjectAttribute() => throw null; @@ -374,31 +381,31 @@ namespace Microsoft } namespace TagHelpers { - // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BodyTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper { 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentManager` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITagHelperComponentManager { System.Collections.Generic.ICollection Components { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentPropertyActivator` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.ITagHelperComponentPropertyActivator` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITagHelperComponentPropertyActivator { void Activate(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context, Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent tagHelperComponent); } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperComponentTagHelper` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class TagHelperComponentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public override void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; @@ -408,15 +415,15 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeature` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeature` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TagHelperFeature { public TagHelperFeature() => throw null; public System.Collections.Generic.IList TagHelpers { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeatureProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class TagHelperFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider + // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.TagHelperFeatureProvider` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class TagHelperFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider { protected virtual bool IncludePart(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPart part) => throw null; protected virtual bool IncludeType(System.Reflection.TypeInfo type) => throw null; @@ -424,15 +431,15 @@ namespace Microsoft public TagHelperFeatureProvider() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UrlResolutionTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { 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 string resolvedUrl) => 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 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; } @@ -446,7 +453,7 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MvcRazorMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcRazorMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcRazorMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddRazorOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; @@ -454,11 +461,11 @@ namespace Microsoft 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.MvcRazorMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcRazorMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcRazorMvcCoreBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddRazorViewEngine(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; 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 fa23971878c..509885cda09 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 @@ -6,22 +6,22 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.PageActionEndpointConventionBuilder` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.PageActionEndpointConventionBuilder` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageActionEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { public void Add(System.Action convention) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RazorPagesEndpointRouteBuilderExtensions { - public static void MapDynamicPageRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, object state, int order) 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; public static void MapDynamicPageRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) where TTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer => throw null; - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToAreaPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string page, string area) => 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; + public static void MapDynamicPageRoute(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, object state, int order) where TTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToAreaPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string page, string area) => throw null; - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string page) => throw null; + public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToAreaPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string page, string area) => throw null; public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToPage(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string page) => throw null; + 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; } @@ -30,13 +30,13 @@ namespace Microsoft { namespace ApplicationModels { - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageApplicationModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel model); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelPartsProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelPartsProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageApplicationModelPartsProvider { Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel CreateHandlerModel(System.Reflection.MethodInfo method); @@ -45,7 +45,7 @@ namespace Microsoft bool IsHandler(System.Reflection.MethodInfo methodInfo); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageApplicationModelProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext context); @@ -53,24 +53,24 @@ namespace Microsoft int Order { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageConvention { } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageHandlerModelConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageHandlerModelConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageHandlerModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel model); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageRouteModelConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention { void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel model); } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageRouteModelProvider { void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext context); @@ -78,7 +78,7 @@ namespace Microsoft int Order { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageApplicationModel { public Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor ActionDescriptor { get => throw null; } @@ -101,7 +101,7 @@ namespace Microsoft public string ViewEnginePath { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModelProviderContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageApplicationModelProviderContext { public Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor ActionDescriptor { get => throw null; } @@ -110,7 +110,7 @@ namespace Microsoft public System.Reflection.TypeInfo PageType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageConventionCollection : System.Collections.ObjectModel.Collection { public Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention AddAreaFolderApplicationModelConvention(string areaName, string folderPath, System.Action action) => throw null; @@ -121,14 +121,14 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention AddFolderRouteModelConvention(string folderPath, System.Action action) => throw null; public Microsoft.AspNetCore.Mvc.ApplicationModels.IPageApplicationModelConvention AddPageApplicationModelConvention(string pageName, System.Action action) => throw null; public Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention AddPageRouteModelConvention(string pageName, System.Action action) => throw null; - public PageConventionCollection(System.Collections.Generic.IList conventions) => throw null; public PageConventionCollection() => throw null; - public void RemoveType() where TPageConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class PageHandlerModel : Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -143,29 +143,29 @@ namespace Microsoft public System.Collections.Generic.IDictionary Properties { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class PageParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class PageParameterModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IBindingModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel { 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(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 PageParameterModel(System.Reflection.ParameterInfo parameterInfo, System.Collections.Generic.IReadOnlyList attributes) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; public System.Reflection.ParameterInfo ParameterInfo { get => throw null; } public string ParameterName { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class PagePropertyModel : Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase, Microsoft.AspNetCore.Mvc.ApplicationModels.IPropertyModel, Microsoft.AspNetCore.Mvc.ApplicationModels.ICommonModel + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(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; + public PagePropertyModel(System.Reflection.PropertyInfo propertyInfo, System.Collections.Generic.IReadOnlyList attributes) : base(default(Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModelBase)) => throw null; public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } public string PropertyName { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteMetadata` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteMetadata` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageRouteMetadata { public string PageRoute { get => throw null; } @@ -173,13 +173,13 @@ namespace Microsoft public string RouteTemplate { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageRouteModel { public string AreaName { get => throw null; } - public PageRouteModel(string relativePath, string viewEnginePath, string areaName) => throw null; - public PageRouteModel(string relativePath, string viewEnginePath) => 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 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; } @@ -188,15 +188,15 @@ namespace Microsoft public string ViewEnginePath { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteModelProviderContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageRouteModelProviderContext { public PageRouteModelProviderContext() => throw null; public System.Collections.Generic.IList RouteModels { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteTransformerConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class PageRouteTransformerConvention : Microsoft.AspNetCore.Mvc.ApplicationModels.IPageRouteModelConvention, Microsoft.AspNetCore.Mvc.ApplicationModels.IPageConvention + // Generated from `Microsoft.AspNetCore.Mvc.ApplicationModels.PageRouteTransformerConvention` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -206,7 +206,7 @@ namespace Microsoft } namespace Diagnostics { - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterHandlerMethodEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterHandlerMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -220,7 +220,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutedEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutedEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterPageFilterOnPageHandlerExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -232,7 +232,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutingEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutingEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterPageFilterOnPageHandlerExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -244,7 +244,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutionEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerExecutionEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterPageFilterOnPageHandlerExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -256,7 +256,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectedEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectedEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterPageFilterOnPageHandlerSelectedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -268,7 +268,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectionEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterPageFilterOnPageHandlerSelectionEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterPageFilterOnPageHandlerSelectionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -280,7 +280,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeHandlerMethodEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeHandlerMethodEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeHandlerMethodEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -293,7 +293,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutedEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutedEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforePageFilterOnPageHandlerExecutedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -305,7 +305,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutingEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutingEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforePageFilterOnPageHandlerExecutingEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -317,7 +317,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutionEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerExecutionEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforePageFilterOnPageHandlerExecutionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -329,7 +329,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectedEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectedEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforePageFilterOnPageHandlerSelectedEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -341,7 +341,7 @@ namespace Microsoft protected override System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectionEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforePageFilterOnPageHandlerSelectionEventData` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforePageFilterOnPageHandlerSelectionEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -356,14 +356,14 @@ namespace Microsoft } namespace Filters { - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAsyncPageFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { 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); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IPageFilter` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.IPageFilter` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { void OnPageHandlerExecuted(Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext context); @@ -371,7 +371,7 @@ namespace Microsoft void OnPageHandlerSelected(Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutedContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageHandlerExecutedContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -385,7 +385,7 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutingContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageHandlerExecutingContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -396,10 +396,10 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Mvc.IActionResult Result { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.PageHandlerExecutionDelegate` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate System.Threading.Tasks.Task PageHandlerExecutionDelegate(); - // Generated from `Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Filters.PageHandlerSelectedContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageHandlerSelectedContext : Microsoft.AspNetCore.Mvc.Filters.FilterContext { public virtual Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; } @@ -411,11 +411,11 @@ namespace Microsoft } namespace RazorPages { - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompiledPageActionDescriptor : Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor { - public CompiledPageActionDescriptor(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor) => throw null; 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; } @@ -424,84 +424,88 @@ namespace Microsoft public System.Reflection.TypeInfo PageTypeInfo { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.IPageActivatorProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.IPageActivatorProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageActivatorProvider { System.Func CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); + System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.IPageFactoryProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.IPageFactoryProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageFactoryProvider { + 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); } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageModelActivatorProvider { System.Func CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); + System.Func CreateAsyncReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; System.Action CreateReleaser(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor); } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.IPageModelFactoryProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.IPageModelFactoryProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageModelFactoryProvider { + 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); } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.NonHandlerAttribute` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.NonHandlerAttribute` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NonHandlerAttribute : System.Attribute { public NonHandlerAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Page` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Page` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class Page : Microsoft.AspNetCore.Mvc.RazorPages.PageBase { protected Page() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 PageActionDescriptor(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor other) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageBase` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageBase` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(object error) => 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 override void BeginContext(int position, int length, bool isLiteral) => 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, 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() => 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, string contentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => 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 override void EndContext() => throw null; public override void EnsureRenderedBodyOrSections() => 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) => 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) => 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) => 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, params string[] authenticationSchemes) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ForbidResult Forbid(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.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(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; @@ -514,124 +518,124 @@ namespace Microsoft 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 virtual Microsoft.AspNetCore.Mvc.PartialViewResult Partial(string viewName, object model) => throw null; public virtual Microsoft.AspNetCore.Mvc.PartialViewResult Partial(string viewName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, string fileDownloadName) => 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; 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; public virtual Microsoft.AspNetCore.Mvc.RedirectResult RedirectPreserveMethod(string url) => 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 RedirectToAction(string actionName, string controllerName, 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, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName) => 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, 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) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, object routeValues) => throw null; + 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 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, 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, 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 RedirectToPage(string pageName, string pageHandler) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage() => 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 RedirectToPagePermanent(string pageName, string pageHandler, 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, object routeValues) => 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, string pageHandler, 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 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(string routeName, string fragment) => 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, 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 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 RedirectToRoutePermanent(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName) => 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 RedirectToRoutePermanent(string routeName) => 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 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, string authenticationScheme) => 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.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.SignOutResult SignOut(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(TModel model, string prefix, Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider valueProvider) where TModel : class => throw null; - public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model, string prefix) where TModel : class => throw null; - public virtual System.Threading.Tasks.Task TryUpdateModelAsync(TModel model) 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(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 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, string prefix) => 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 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(string componentName, 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, object arguments) => 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(string componentName, object arguments) => throw null; public override Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageContext` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageContext : Microsoft.AspNetCore.Mvc.ActionContext { public virtual Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor ActionDescriptor { get => throw null; set => throw null; } - public PageContext(Microsoft.AspNetCore.Mvc.ActionContext actionContext) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageContextAttribute` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageContextAttribute` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageContextAttribute : System.Attribute { public PageContextAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class PageModel : Microsoft.AspNetCore.Mvc.Filters.IPageFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncPageFilter + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageModel` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(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(params string[] authenticationSchemes) => 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(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public virtual Microsoft.AspNetCore.Mvc.BadRequestObjectResult BadRequest(object error) => throw null; public virtual Microsoft.AspNetCore.Mvc.ChallengeResult Challenge() => 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, string contentType) => throw null; - public virtual Microsoft.AspNetCore.Mvc.ContentResult Content(string content, Microsoft.Net.Http.Headers.MediaTypeHeaderValue contentType) => 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.VirtualFileResult File(string virtualPath, string contentType, string fileDownloadName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.VirtualFileResult File(string virtualPath, 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.FileStreamResult File(System.IO.Stream fileStream, 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; + 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.ForbidResult Forbid(params string[] authenticationSchemes) => 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(Microsoft.AspNetCore.Authentication.AuthenticationProperties properties) => throw null; + public virtual Microsoft.AspNetCore.Mvc.FileContentResult File(System.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(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; @@ -649,89 +653,89 @@ namespace Microsoft 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 virtual Microsoft.AspNetCore.Mvc.PartialViewResult Partial(string viewName, object model) => throw null; public virtual Microsoft.AspNetCore.Mvc.PartialViewResult Partial(string viewName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.PhysicalFileResult PhysicalFile(string physicalPath, string contentType, string fileDownloadName) => 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; 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; - 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 RedirectToAction(string actionName, string controllerName, 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, object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToAction(string actionName) => 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, 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) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName, object routeValues) => throw null; + 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 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, 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, 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 RedirectToPage(string pageName, string pageHandler, 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, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(object routeValues) => throw null; public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage() => 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 RedirectToPagePermanent(string pageName, string pageHandler, 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, object routeValues, string fragment) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPagePermanent(string pageName, object routeValues) => 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, string pageHandler, 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 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(string routeName, string fragment) => 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, 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 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 RedirectToRoutePermanent(string routeName, object routeValues) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoutePermanent(string routeName) => throw null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName) => 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 RedirectToRoutePermanent(string routeName) => 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 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, string authenticationScheme) => 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.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.SignOutResult SignOut(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(TModel model, string name, params System.Linq.Expressions.Expression>[] includeExpressions) 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, params System.Linq.Expressions.Expression>[] includeExpressions) 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) 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) where TModel : class => 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(object model, System.Type modelType, string name) => throw null; - public virtual bool TryValidateModel(object model, 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 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 System.Security.Claims.ClaimsPrincipal User { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(string componentName, 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, object arguments) => 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(string componentName, object arguments) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageResult` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.PageResult` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageResult : Microsoft.AspNetCore.Mvc.ActionResult { public string ContentType { get => throw null; set => throw null; } @@ -743,19 +747,28 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RazorPagesOptions : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class RazorPagesOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection Conventions { get => throw null; set => throw null; } - System.Collections.IEnumerator System.Collections.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 RazorPagesOptions() => throw null; public string RootDirectory { get => throw null; set => throw null; } } namespace Infrastructure { - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.CompiledPageActionDescriptorProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } + } + + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HandlerMethodDescriptor { public HandlerMethodDescriptor() => throw null; @@ -765,26 +778,26 @@ namespace Microsoft public System.Collections.Generic.IList Parameters { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerParameterDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerParameterDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageHandlerMethodSelector` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageHandlerMethodSelector` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageHandlerMethodSelector { Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.HandlerMethodDescriptor Select(Microsoft.AspNetCore.Mvc.RazorPages.PageContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageLoader` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.IPageLoader` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPageLoader { Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor Load(Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor actionDescriptor); } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionDescriptorProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionDescriptorProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageActionDescriptorProvider : Microsoft.AspNetCore.Mvc.Abstractions.IActionDescriptorProvider { protected System.Collections.Generic.IList BuildModel() => throw null; @@ -794,7 +807,7 @@ namespace Microsoft public PageActionDescriptorProvider(System.Collections.Generic.IEnumerable pageRouteModelProviders, Microsoft.Extensions.Options.IOptions mvcOptionsAccessor, Microsoft.Extensions.Options.IOptions pagesOptionsAccessor) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageBoundPropertyDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageBoundPropertyDescriptor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageBoundPropertyDescriptor : Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor, Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor { public PageBoundPropertyDescriptor() => throw null; @@ -802,28 +815,29 @@ namespace Microsoft System.Reflection.PropertyInfo Microsoft.AspNetCore.Mvc.Infrastructure.IPropertyInfoParameterDescriptor.PropertyInfo { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageLoader` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageModelAttribute` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageModelAttribute` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageModelAttribute : System.Attribute { public PageModelAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageResultExecutor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageResultExecutor` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageViewLocationExpander` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageViewLocationExpander` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -831,7 +845,7 @@ namespace Microsoft public void PopulateValues(Microsoft.AspNetCore.Mvc.Razor.ViewLocationExpanderContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorPageAdapter : Microsoft.AspNetCore.Mvc.Razor.IRazorPage { public Microsoft.AspNetCore.Html.IHtmlContent BodyContent { get => throw null; set => throw null; } @@ -846,14 +860,14 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAttribute` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAttribute` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ServiceBasedPageModelActivatorProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ServiceBasedPageModelActivatorProvider` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ServiceBasedPageModelActivatorProvider : Microsoft.AspNetCore.Mvc.RazorPages.IPageModelActivatorProvider { public System.Func CreateActivator(Microsoft.AspNetCore.Mvc.RazorPages.CompiledPageActionDescriptor descriptor) => throw null; @@ -869,7 +883,7 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcRazorPagesMvcBuilderExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddRazorPagesOptions(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; @@ -877,15 +891,15 @@ namespace Microsoft public static Microsoft.Extensions.DependencyInjection.IMvcBuilder WithRazorPagesRoot(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, string rootDirectory) => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcRazorPagesMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcRazorPagesMvcCoreBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddRazorPages(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.PageConventionCollectionExtensions` in `Microsoft.AspNetCore.Mvc.RazorPages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; @@ -895,16 +909,16 @@ namespace Microsoft public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AllowAnonymousToAreaPage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string pageName) => throw null; public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AllowAnonymousToFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string folderPath) => throw null; public static Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection AllowAnonymousToPage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string pageName) => throw null; - 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 AuthorizeAreaFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string areaName, string folderPath) => 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 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 AuthorizeFolder(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, 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, 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 AuthorizePage(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, string pageName, string policy) => 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 ConfigureFilter(this Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection conventions, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata filter) => 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.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 f010b6845b7..6838b10c711 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 @@ -8,7 +8,7 @@ namespace Microsoft { namespace Rendering { - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ValidationSummary { All, @@ -19,7 +19,7 @@ namespace Microsoft } namespace TagHelpers { - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AnchorTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public string Action { get => throw null; set => throw null; } @@ -39,7 +39,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CacheTagHelper : Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase { public static string CacheKeyPrefix; @@ -49,7 +49,7 @@ namespace Microsoft public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class CacheTagHelperBase : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public CacheTagHelperBase(System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; @@ -70,21 +70,21 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperMemoryCacheFactory` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperMemoryCacheFactory` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CacheTagHelperMemoryCacheFactory { public Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { get => throw null; } public CacheTagHelperMemoryCacheFactory(Microsoft.Extensions.Options.IOptions options) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperOptions` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperOptions` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CacheTagHelperOptions { public CacheTagHelperOptions() => throw null; public System.Int64 SizeLimit { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ComponentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public ComponentTagHelper() => throw null; @@ -95,7 +95,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DistributedCacheTagHelper : Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperBase { public static string CacheKeyPrefix; @@ -105,7 +105,7 @@ namespace Microsoft public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EnvironmentTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public EnvironmentTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) => throw null; @@ -117,7 +117,7 @@ namespace Microsoft public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FormActionTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public string Action { get => throw null; set => throw null; } @@ -135,7 +135,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FormTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public string Action { get => throw null; set => throw null; } @@ -155,7 +155,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.GlobbingUrlBuilder` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class GlobbingUrlBuilder { public virtual System.Collections.Generic.IReadOnlyList BuildUrlList(string staticUrl, string includePattern, string excludePattern) => throw null; @@ -165,7 +165,7 @@ namespace Microsoft public Microsoft.AspNetCore.Http.PathString RequestPathBase { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ImageTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper { public bool AppendVersion { get => throw null; set => throw null; } @@ -178,7 +178,7 @@ namespace Microsoft public string Src { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InputTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } @@ -194,7 +194,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LabelTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } @@ -205,7 +205,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LinkTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper { public bool? AppendVersion { get => throw null; set => throw null; } @@ -228,7 +228,7 @@ namespace Microsoft public bool SuppressFallbackIntegrity { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OptionTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } @@ -239,7 +239,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PartialTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public string FallbackName { get => throw null; set => throw null; } @@ -253,7 +253,23 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.PersistComponentStateTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 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; } + } + + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.PersistenceMode` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public enum PersistenceMode + { + Server, + WebAssembly, + } + + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RenderAtEndOfFormTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public override void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; @@ -263,7 +279,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ScriptTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper { public bool? AppendVersion { get => throw null; set => throw null; } @@ -284,7 +300,7 @@ namespace Microsoft public bool SuppressFallbackIntegrity { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SelectTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } @@ -298,7 +314,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.TagHelperOutputExtensions` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.TagHelperOutputExtensions` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class TagHelperOutputExtensions { public static void AddClass(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, string classValue, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; @@ -308,7 +324,7 @@ namespace Microsoft public static void RemoveRange(this Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput tagHelperOutput, System.Collections.Generic.IEnumerable attributes) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TextAreaTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } @@ -320,7 +336,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationMessageTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression For { get => throw null; set => throw null; } @@ -331,7 +347,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidationSummaryTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper { protected Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator Generator { get => throw null; } @@ -344,19 +360,19 @@ namespace Microsoft namespace Cache { - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.CacheTagKey` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CacheTagKey : System.IEquatable { - public CacheTagKey(Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper tagHelper) => throw null; public CacheTagKey(Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper tagHelper, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; - public override bool Equals(object obj) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormatter` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormatter` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DistributedCacheTagHelperFormatter : Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter { public System.Threading.Tasks.Task DeserializeAsync(System.Byte[] value) => throw null; @@ -364,21 +380,21 @@ namespace Microsoft public System.Threading.Tasks.Task SerializeAsync(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DistributedCacheTagHelperFormattingContext { public DistributedCacheTagHelperFormattingContext() => throw null; public Microsoft.AspNetCore.Html.HtmlString Html { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperService` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperService` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperStorage` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperStorage` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DistributedCacheTagHelperStorage : Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage { public DistributedCacheTagHelperStorage(Microsoft.Extensions.Caching.Distributed.IDistributedCache distributedCache) => throw null; @@ -386,20 +402,20 @@ namespace Microsoft public System.Threading.Tasks.Task SetAsync(string key, System.Byte[] value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperFormatter` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDistributedCacheTagHelperFormatter { System.Threading.Tasks.Task DeserializeAsync(System.Byte[] value); System.Threading.Tasks.Task SerializeAsync(Microsoft.AspNetCore.Mvc.TagHelpers.Cache.DistributedCacheTagHelperFormattingContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperService` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperService` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TagHelpers.Cache.IDistributedCacheTagHelperStorage` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDistributedCacheTagHelperStorage { System.Threading.Tasks.Task GetAsync(string key); @@ -414,12 +430,12 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.TagHelperServicesExtensions` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.TagHelperServicesExtensions` in `Microsoft.AspNetCore.Mvc.TagHelpers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class TagHelperServicesExtensions { public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCacheTagHelper(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCacheTagHelperLimits(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action configure) => 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 08c549efa6a..78e9154ec15 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 @@ -6,8 +6,8 @@ namespace Microsoft { namespace Mvc { - // Generated from `Microsoft.AspNetCore.Mvc.AutoValidateAntiforgeryTokenAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class AutoValidateAntiforgeryTokenAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.AutoValidateAntiforgeryTokenAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -15,74 +15,74 @@ namespace Microsoft public int Order { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Controller` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class Controller : Microsoft.AspNetCore.Mvc.ControllerBase, System.IDisposable, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, Microsoft.AspNetCore.Mvc.Filters.IActionFilter + // Generated from `Microsoft.AspNetCore.Mvc.Controller` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 { protected Controller() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public virtual Microsoft.AspNetCore.Mvc.JsonResult Json(object data, object serializerSettings) => throw null; public virtual Microsoft.AspNetCore.Mvc.JsonResult Json(object data) => throw null; + public virtual Microsoft.AspNetCore.Mvc.JsonResult Json(object data, object serializerSettings) => throw null; public virtual void OnActionExecuted(Microsoft.AspNetCore.Mvc.Filters.ActionExecutedContext context) => throw null; 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(string viewName, 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() => 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(string viewName, object model) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary TempData { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ViewResult View(string viewName, 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() => 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(string viewName, object model) => throw null; public dynamic ViewBag { get => throw null; } - public virtual Microsoft.AspNetCore.Mvc.ViewComponentResult ViewComponent(string componentName, 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, object arguments) => 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(string componentName, object arguments) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.CookieTempDataProviderOptions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.CookieTempDataProviderOptions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieTempDataProviderOptions { public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set => throw null; } public CookieTempDataProviderOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.IViewComponentHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.IViewComponentHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewComponentHelper { - System.Threading.Tasks.Task InvokeAsync(string name, object arguments); System.Threading.Tasks.Task InvokeAsync(System.Type componentType, object arguments); + System.Threading.Tasks.Task InvokeAsync(string name, object arguments); } - // Generated from `Microsoft.AspNetCore.Mvc.IViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.IViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewComponentResult { void Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.IgnoreAntiforgeryTokenAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class IgnoreAntiforgeryTokenAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + // Generated from `Microsoft.AspNetCore.Mvc.IgnoreAntiforgeryTokenAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.MvcViewOptions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MvcViewOptions : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.MvcViewOptions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MvcViewOptions : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public System.Collections.Generic.IList ClientModelValidatorProviders { get => throw null; } - System.Collections.IEnumerator System.Collections.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 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.PageRemoteAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.PageRemoteAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PageRemoteAttribute : Microsoft.AspNetCore.Mvc.RemoteAttributeBase { protected override string GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; @@ -91,8 +91,8 @@ namespace Microsoft public PageRemoteAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.PartialViewResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class PartialViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.PartialViewResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -105,18 +105,18 @@ namespace Microsoft public string ViewName { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.RemoteAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RemoteAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RemoteAttribute : Microsoft.AspNetCore.Mvc.RemoteAttributeBase { protected override string GetUrl(Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ClientModelValidationContext context) => throw null; - public RemoteAttribute(string routeName) => throw null; - public RemoteAttribute(string action, string controller, string areaName) => throw null; - public RemoteAttribute(string action, string controller) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.RemoteAttributeBase` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.RemoteAttributeBase` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -131,23 +131,23 @@ namespace Microsoft protected Microsoft.AspNetCore.Routing.RouteValueDictionary RouteData { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.SkipStatusCodePagesAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class SkipStatusCodePagesAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IResourceFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata + // Generated from `Microsoft.AspNetCore.Mvc.SkipStatusCodePagesAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class SkipStatusCodePagesAttribute : System.Attribute, 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; } - // Generated from `Microsoft.AspNetCore.Mvc.TempDataAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.TempDataAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TempDataAttribute : System.Attribute { public string Key { get => throw null; set => throw null; } public TempDataAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ValidateAntiForgeryTokenAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -155,7 +155,7 @@ namespace Microsoft public ValidateAntiForgeryTokenAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponent` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponent` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ViewComponent { public Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult Content(string content) => throw null; @@ -167,10 +167,10 @@ namespace Microsoft 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(string viewName, TModel model) => throw null; - public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View(TModel model) => throw null; - public Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult View(string viewName) => 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; } @@ -179,15 +179,15 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine ViewEngine { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponentAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponentAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewComponentAttribute : System.Attribute { public string Name { get => throw null; set => throw null; } public ViewComponentAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ViewComponentResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -201,15 +201,15 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewDataAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewDataAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewDataAttribute : System.Attribute { public string Key { get => throw null; set => throw null; } public ViewDataAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ViewResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.Infrastructure.IStatusCodeActionResult, Microsoft.AspNetCore.Mvc.IActionResult + // Generated from `Microsoft.AspNetCore.Mvc.ViewResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -224,7 +224,7 @@ namespace Microsoft namespace Diagnostics { - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewComponentEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewComponentEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterViewComponentEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -237,7 +237,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.IViewComponentResult ViewComponentResult { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.AfterViewEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AfterViewEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public AfterViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; @@ -248,7 +248,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewComponentEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewComponentEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeViewComponentEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -260,7 +260,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.BeforeViewEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BeforeViewEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public BeforeViewEventData(Microsoft.AspNetCore.Mvc.ViewEngines.IView view, Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext) => throw null; @@ -271,7 +271,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.Rendering.ViewContext ViewContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentAfterViewExecuteEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentAfterViewExecuteEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewComponentAfterViewExecuteEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -283,7 +283,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentBeforeViewExecuteEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.ViewComponentBeforeViewExecuteEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewComponentBeforeViewExecuteEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor ActionDescriptor { get => throw null; } @@ -295,7 +295,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext ViewComponentContext { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.ViewFoundEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewFoundEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -309,7 +309,7 @@ namespace Microsoft public string ViewName { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Diagnostics.ViewNotFoundEventData` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewNotFoundEventData : Microsoft.AspNetCore.Mvc.Diagnostics.EventData { public Microsoft.AspNetCore.Mvc.ActionContext ActionContext { get => throw null; } @@ -326,11 +326,11 @@ namespace Microsoft } namespace ModelBinding { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionaryExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionaryExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ModelStateDictionaryExtensions { - 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 void AddModelError(this Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState, System.Linq.Expressions.Expression> expression, string errorMessage) => 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; @@ -339,7 +339,7 @@ namespace Microsoft } namespace Rendering { - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum CheckBoxHiddenInputRenderMode { EndOfForm, @@ -347,238 +347,238 @@ namespace Microsoft None, } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.FormMethod` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.FormMethod` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum FormMethod { Get, Post, } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum Html5DateRenderingMode { CurrentCulture, Rfc3339, } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperComponentExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperComponentExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperComponentExtensions { - 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, 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, 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperDisplayExtensions { - public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, string htmlFieldName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, object additionalViewData) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object additionalViewData) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, object additionalViewData) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Display(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, string htmlFieldName) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => 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 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, object additionalViewData) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent DisplayFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent DisplayForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, object additionalViewData) => throw null; + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayNameExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayNameExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperEditorExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperEditorExtensions { - public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, string htmlFieldName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, object additionalViewData) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object additionalViewData) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, object additionalViewData) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Editor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string templateName, string htmlFieldName) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => 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 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, object additionalViewData) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent EditorFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, object additionalViewData) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent EditorForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string templateName, object additionalViewData) => throw null; + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperFormExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperFormExtensions { - 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, 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, object htmlAttributes) => 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) => 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, 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, 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, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; public static Microsoft.AspNetCore.Mvc.Rendering.MvcForm BeginForm(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper) => 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, object routeValues) => 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, 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, 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) => 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 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, 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, 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, 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, object routeValues, Microsoft.AspNetCore.Mvc.Rendering.FormMethod method) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperInputExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperInputExtensions { - public static Microsoft.AspNetCore.Html.IHtmlContent CheckBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent CheckBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, bool isChecked) => throw null; 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; + public static Microsoft.AspNetCore.Html.IHtmlContent CheckBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent CheckBoxFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent Hidden(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent Hidden(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Hidden(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent HiddenFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => throw null; - 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 Password(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; + 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, 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 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 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, string value, object htmlAttributes) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string value) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) => 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 TextAreaFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression, object htmlAttributes) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object htmlAttributes) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string value) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent TextArea(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, string value, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent TextAreaFor(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, System.Linq.Expressions.Expression> expression) => 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 TextBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression, object value) => throw null; + 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 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 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 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLabelExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperLabelExtensions { - 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 Label(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => 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 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 LabelForModel(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string labelText, 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 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 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, string labelText, object htmlAttributes) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperLinkExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperLinkExtensions { - 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 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) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, object routeValues, object htmlAttributes) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, object routeValues) => throw null; 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 RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, string routeName, 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) => 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, object routeValues, object htmlAttributes) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, object routeValues) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, object routeValues, object htmlAttributes) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent ActionLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper helper, string linkText, string actionName, string controllerName) => throw null; + 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, string routeName, object routeValues, object htmlAttributes) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperNameExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperNameExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperPartialExtensions { - public static Microsoft.AspNetCore.Html.IHtmlContent Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; - public static Microsoft.AspNetCore.Html.IHtmlContent Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) => 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; public static Microsoft.AspNetCore.Html.IHtmlContent Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName) => throw null; - public static System.Threading.Tasks.Task PartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) => throw null; - public static System.Threading.Tasks.Task PartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => 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; + public static Microsoft.AspNetCore.Html.IHtmlContent Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) => throw null; + public static Microsoft.AspNetCore.Html.IHtmlContent Partial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; public static System.Threading.Tasks.Task PartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName) => throw null; - public static void RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; - public static void RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) => throw null; - public static void RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; + public static System.Threading.Tasks.Task PartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; + public static System.Threading.Tasks.Task PartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) => throw null; public static void RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName) => throw null; - public static System.Threading.Tasks.Task RenderPartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) => throw null; - 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 void RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; + public static void RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) => throw null; + public static void RenderPartial(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) => throw null; public static System.Threading.Tasks.Task RenderPartialAsync(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName) => throw null; + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperSelectExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperSelectExtensions { - 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, 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, 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) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent DropDownList(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => 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; - 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 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 ListBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string 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; public static Microsoft.AspNetCore.Html.IHtmlContent ListBox(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => throw null; + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValidationExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HtmlHelperValidationExtensions { - 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 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, object htmlAttributes) => throw null; public static Microsoft.AspNetCore.Html.IHtmlContent ValidationMessage(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string expression) => 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 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) => 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, string message, string tag) => 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 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, string message, object htmlAttributes, string tag) => 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) => 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 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) => 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, 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValueExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperValueExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, string format) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHtmlHelper { Microsoft.AspNetCore.Html.IHtmlContent ActionLink(string linkText, string actionName, string controllerName, string protocol, string hostname, string fragment, object routeValues, object htmlAttributes); @@ -591,13 +591,13 @@ namespace Microsoft string DisplayText(string expression); Microsoft.AspNetCore.Html.IHtmlContent DropDownList(string expression, System.Collections.Generic.IEnumerable selectList, string optionLabel, object htmlAttributes); Microsoft.AspNetCore.Html.IHtmlContent Editor(string expression, string templateName, string htmlFieldName, object additionalViewData); - string Encode(string value); string Encode(object value); + string Encode(string value); void EndForm(); string FormatValue(object value, string format); string GenerateIdFromName(string fullName); - System.Collections.Generic.IEnumerable GetEnumSelectList() where TEnum : struct; System.Collections.Generic.IEnumerable GetEnumSelectList(System.Type enumType); + System.Collections.Generic.IEnumerable GetEnumSelectList() where TEnum : struct; Microsoft.AspNetCore.Html.IHtmlContent Hidden(string expression, object value, object htmlAttributes); Microsoft.AspNetCore.Mvc.Rendering.Html5DateRenderingMode Html5DateRenderingMode { get; set; } string Id(string expression); @@ -609,8 +609,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(string value); Microsoft.AspNetCore.Html.IHtmlContent Raw(object value); + Microsoft.AspNetCore.Html.IHtmlContent Raw(string 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; } @@ -625,7 +625,7 @@ namespace Microsoft Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<>` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<>` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHtmlHelper : Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper { Microsoft.AspNetCore.Html.IHtmlContent CheckBoxFor(System.Linq.Expressions.Expression> expression, object htmlAttributes); @@ -635,8 +635,8 @@ namespace Microsoft string DisplayTextFor(System.Linq.Expressions.Expression> expression); Microsoft.AspNetCore.Html.IHtmlContent DropDownListFor(System.Linq.Expressions.Expression> expression, System.Collections.Generic.IEnumerable selectList, string optionLabel, object htmlAttributes); Microsoft.AspNetCore.Html.IHtmlContent EditorFor(System.Linq.Expressions.Expression> expression, string templateName, string htmlFieldName, object additionalViewData); - string Encode(string value); string Encode(object value); + string Encode(string value); Microsoft.AspNetCore.Html.IHtmlContent HiddenFor(System.Linq.Expressions.Expression> expression, object htmlAttributes); string IdFor(System.Linq.Expressions.Expression> expression); Microsoft.AspNetCore.Html.IHtmlContent LabelFor(System.Linq.Expressions.Expression> expression, string labelText, object htmlAttributes); @@ -644,8 +644,8 @@ namespace Microsoft string NameFor(System.Linq.Expressions.Expression> expression); Microsoft.AspNetCore.Html.IHtmlContent PasswordFor(System.Linq.Expressions.Expression> expression, object htmlAttributes); Microsoft.AspNetCore.Html.IHtmlContent RadioButtonFor(System.Linq.Expressions.Expression> expression, object value, object htmlAttributes); - Microsoft.AspNetCore.Html.IHtmlContent Raw(string value); Microsoft.AspNetCore.Html.IHtmlContent Raw(object value); + Microsoft.AspNetCore.Html.IHtmlContent Raw(string value); Microsoft.AspNetCore.Html.IHtmlContent TextAreaFor(System.Linq.Expressions.Expression> expression, int rows, int columns, object htmlAttributes); Microsoft.AspNetCore.Html.IHtmlContent TextBoxFor(System.Linq.Expressions.Expression> expression, string format, object htmlAttributes); Microsoft.AspNetCore.Html.IHtmlContent ValidationMessageFor(System.Linq.Expressions.Expression> expression, string message, object htmlAttributes, string tag); @@ -653,14 +653,14 @@ namespace Microsoft Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IJsonHelper { Microsoft.AspNetCore.Html.IHtmlContent Serialize(object value); } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MultiSelectList : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MultiSelectList : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public string DataGroupField { get => throw null; } public string DataTextField { get => throw null; } @@ -668,15 +668,15 @@ namespace Microsoft 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, string dataValueField, string dataTextField, System.Collections.IEnumerable selectedValues, string dataGroupField) => 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) => throw null; - public MultiSelectList(System.Collections.IEnumerable items, System.Collections.IEnumerable selectedValues) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.MvcForm` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.MvcForm` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MvcForm : System.IDisposable { public void Dispose() => throw null; @@ -685,7 +685,7 @@ namespace Microsoft public MvcForm(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, System.Text.Encodings.Web.HtmlEncoder htmlEncoder) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.RenderMode` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.RenderMode` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum RenderMode { Server, @@ -695,18 +695,18 @@ namespace Microsoft WebAssemblyPrerendered, } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.SelectList` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.SelectList` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SelectList : Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList { - public SelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, object selectedValue, string dataGroupField) : base(default(System.Collections.IEnumerable)) => throw null; - public SelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, object selectedValue) : base(default(System.Collections.IEnumerable)) => throw null; - public SelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField) : base(default(System.Collections.IEnumerable)) => throw null; - public SelectList(System.Collections.IEnumerable items, object selectedValue) : base(default(System.Collections.IEnumerable)) => throw null; public SelectList(System.Collections.IEnumerable items) : base(default(System.Collections.IEnumerable)) => throw null; + public SelectList(System.Collections.IEnumerable items, object selectedValue) : base(default(System.Collections.IEnumerable)) => throw null; + public SelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField) : base(default(System.Collections.IEnumerable)) => throw null; + public SelectList(System.Collections.IEnumerable items, string dataValueField, string dataTextField, object selectedValue) : base(default(System.Collections.IEnumerable)) => throw null; + 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SelectListGroup { public bool Disabled { get => throw null; set => throw null; } @@ -714,21 +714,21 @@ namespace Microsoft public SelectListGroup() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.SelectListItem` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.SelectListItem` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(string text, string value, bool selected, bool disabled) => throw null; - public SelectListItem(string text, string value, bool selected) => throw null; - public SelectListItem(string text, string value) => 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.TagBuilder` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.TagBuilder` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TagBuilder : Microsoft.AspNetCore.Html.IHtmlContent { public void AddCssClass(string value) => throw null; @@ -737,22 +737,22 @@ namespace Microsoft public void GenerateId(string name, string invalidCharReplacement) => throw null; public bool HasInnerHtml { get => throw null; } public Microsoft.AspNetCore.Html.IHtmlContentBuilder InnerHtml { get => throw null; } - public void MergeAttribute(string key, string value, bool replaceExisting) => throw null; public void MergeAttribute(string key, string value) => throw null; - public void MergeAttributes(System.Collections.Generic.IDictionary attributes, bool replaceExisting) => throw null; + public void MergeAttribute(string key, string value, bool replaceExisting) => throw null; public void MergeAttributes(System.Collections.Generic.IDictionary attributes) => throw null; + public void MergeAttributes(System.Collections.Generic.IDictionary attributes, bool replaceExisting) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent RenderBody() => throw null; 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(string tagName) => 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 void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.TagRenderMode` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum TagRenderMode { EndTag, @@ -761,16 +761,16 @@ namespace Microsoft StartTag, } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.ViewComponentHelperExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.ViewComponentHelperExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ViewComponentHelperExtensions { - 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 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, 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, object arguments) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.Rendering.ViewContext` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.Rendering.ViewContext` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewContext : Microsoft.AspNetCore.Mvc.ActionContext { public Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode CheckBoxHiddenInputRenderMode { get => throw null; set => throw null; } @@ -784,9 +784,9 @@ namespace Microsoft 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 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 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() => 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; } } @@ -794,7 +794,7 @@ namespace Microsoft } namespace ViewComponents { - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ContentViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ContentViewComponentResult : Microsoft.AspNetCore.Mvc.IViewComponentResult { public string Content { get => throw null; } @@ -803,14 +803,14 @@ namespace Microsoft public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorCollectionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorCollectionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentDescriptorProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultViewComponentDescriptorProvider : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorProvider { public DefaultViewComponentDescriptorProvider(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager partManager) => throw null; @@ -818,31 +818,32 @@ namespace Microsoft public virtual System.Collections.Generic.IEnumerable GetViewComponents() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultViewComponentFactory : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentFactory { public object CreateViewComponent(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; public DefaultViewComponentFactory(Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator activator) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DefaultViewComponentHelper : Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware, Microsoft.AspNetCore.Mvc.IViewComponentHelper + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(string name, object arguments) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentSelector` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentSelector` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.HtmlContentViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.HtmlContentViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlContentViewComponentResult : Microsoft.AspNetCore.Mvc.IViewComponentResult { public Microsoft.AspNetCore.Html.IHtmlContent EncodedContent { get => throw null; } @@ -851,51 +852,53 @@ namespace Microsoft public HtmlContentViewComponentResult(Microsoft.AspNetCore.Html.IHtmlContent encodedContent) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorCollectionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewComponentDescriptorCollectionProvider { Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection ViewComponents { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentDescriptorProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewComponentDescriptorProvider { System.Collections.Generic.IEnumerable GetViewComponents(); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvoker` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvoker` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewComponentInvoker { System.Threading.Tasks.Task InvokeAsync(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvokerFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvokerFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewComponentInvokerFactory { Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentInvoker CreateInstance(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentSelector` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentSelector` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewComponentSelector { Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor SelectComponent(string componentName); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ServiceBasedViewComponentActivator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ServiceBasedViewComponentActivator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ServiceBasedViewComponentActivator : Microsoft.AspNetCore.Mvc.ViewComponents.IViewComponentActivator { public object Create(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; @@ -903,27 +906,27 @@ namespace Microsoft public ServiceBasedViewComponentActivator() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 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 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 Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } public System.IO.TextWriter Writer { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContextAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContextAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewComponentContextAttribute : System.Attribute { public ViewComponentContextAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentConventions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentConventions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ViewComponentConventions { public static string GetComponentFullName(System.Reflection.TypeInfo componentType) => throw null; @@ -932,7 +935,7 @@ namespace Microsoft public static string ViewComponentSuffix; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewComponentDescriptor { public string DisplayName { get => throw null; set => throw null; } @@ -945,7 +948,7 @@ namespace Microsoft public ViewComponentDescriptor() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentDescriptorCollection` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewComponentDescriptorCollection { public System.Collections.Generic.IReadOnlyList Items { get => throw null; } @@ -953,21 +956,21 @@ namespace Microsoft public ViewComponentDescriptorCollection(System.Collections.Generic.IEnumerable items, int version) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeature` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeature` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewComponentFeature { public ViewComponentFeature() => throw null; public System.Collections.Generic.IList ViewComponents { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeatureProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ViewComponentFeatureProvider : Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider, Microsoft.AspNetCore.Mvc.ApplicationParts.IApplicationFeatureProvider + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentFeatureProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewViewComponentResult : Microsoft.AspNetCore.Mvc.IViewComponentResult { public void Execute(Microsoft.AspNetCore.Mvc.ViewComponents.ViewComponentContext context) => throw null; @@ -982,8 +985,8 @@ namespace Microsoft } namespace ViewEngines { - // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.CompositeViewEngine` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class CompositeViewEngine : Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine, Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine + // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.CompositeViewEngine` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class CompositeViewEngine : Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine, Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine { public CompositeViewEngine(Microsoft.Extensions.Options.IOptions optionsAccessor) => throw null; public Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult FindView(Microsoft.AspNetCore.Mvc.ActionContext context, string viewName, bool isMainPage) => throw null; @@ -991,27 +994,27 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyList ViewEngines { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICompositeViewEngine : Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine { System.Collections.Generic.IReadOnlyList ViewEngines { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.IView` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.IView` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IView { string Path { get; } System.Threading.Tasks.Task RenderAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.IViewEngine` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewEngineResult { public Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult EnsureSuccessful(System.Collections.Generic.IEnumerable originalLocations) => throw null; @@ -1026,51 +1029,51 @@ namespace Microsoft } namespace ViewFeatures { - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.AntiforgeryExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.AntiforgeryExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class AntiforgeryExtensions { public static Microsoft.AspNetCore.Html.IHtmlContent GetHtml(this Microsoft.AspNetCore.Antiforgery.IAntiforgery antiforgery, Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class AttributeDictionary : System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyDictionary, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 void Add(string key, string value) => throw null; + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary+Enumerator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary+Enumerator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator> - { - public System.Collections.Generic.KeyValuePair Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public void Dispose() => throw null; - public Enumerator(Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary attributes) => throw null; - // Stub generator skipped constructor - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - public Microsoft.AspNetCore.Mvc.ViewFeatures.AttributeDictionary.Enumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.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 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(string key) => 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 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.CookieTempDataProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.CookieTempDataProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieTempDataProvider : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider { public static string CookieName; @@ -1079,7 +1082,7 @@ namespace Microsoft public void SaveTempData(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IDictionary values) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -1087,8 +1090,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(string value) => throw null; public string Encode(object value) => throw null; + public string Encode(string 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; @@ -1117,21 +1120,21 @@ namespace Microsoft public string IdAttributeDotReplacement { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGeneratorExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGeneratorExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultValidationHtmlAttributeProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultValidationHtmlAttributeProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.FormContext` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FormContext { public bool CanRenderAtEndOfForm { get => throw null; set => throw null; } @@ -1141,12 +1144,12 @@ namespace Microsoft public bool HasAntiforgeryToken { get => throw null; set => throw null; } public bool HasEndOfFormContent { get => throw null; } public bool HasFormData { get => throw null; } - public void RenderedField(string fieldName, bool value) => throw null; public bool RenderedField(string fieldName) => throw null; + public void RenderedField(string fieldName, bool value) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HtmlHelper : Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware, Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; public static System.Collections.Generic.IDictionary AnonymousObjectToHtmlAttributes(object htmlAttributes) => throw null; @@ -1161,8 +1164,8 @@ namespace Microsoft 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(string value) => throw null; public string Encode(object value) => throw null; + public string Encode(string 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; @@ -1186,9 +1189,9 @@ 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; - 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 System.Collections.Generic.IEnumerable GetEnumSelectList(System.Type enumType) => throw null; + public System.Collections.Generic.IEnumerable GetEnumSelectList() where TEnum : struct => 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; } @@ -1203,8 +1206,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(string value) => throw null; public Microsoft.AspNetCore.Html.IHtmlContent Raw(object value) => throw null; + public Microsoft.AspNetCore.Html.IHtmlContent Raw(string 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; @@ -1226,8 +1229,8 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper<>` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HtmlHelper : Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper, Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper, Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper<>` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -1254,7 +1257,7 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelperOptions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlHelperOptions { public Microsoft.AspNetCore.Mvc.Rendering.CheckBoxHiddenInputRenderMode CheckBoxHiddenInputRenderMode { get => throw null; set => throw null; } @@ -1266,22 +1269,22 @@ namespace Microsoft public string ValidationSummaryMessageElement { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IAntiforgeryPolicy : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata { } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFileVersionProvider { string AddFileVersionToPath(Microsoft.AspNetCore.Http.PathString requestPathBase, string path); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHtmlGenerator { - string Encode(string value); string Encode(object value); + string Encode(string 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); @@ -1297,8 +1300,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, 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 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 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); @@ -1307,42 +1310,42 @@ namespace Microsoft string IdAttributeDotReplacement { get; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IModelExpressionProvider { Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression CreateModelExpression(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.Linq.Expressions.Expression> expression); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface ITempDataDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface ITempDataDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { - void Keep(string key); void Keep(); + void Keep(string key); void Load(); object Peek(string key); void Save(); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITempDataDictionaryFactory { Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary GetTempData(Microsoft.AspNetCore.Http.HttpContext context); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewContextAware { void Contextualize(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.InputType` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.InputType` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum InputType { CheckBox, @@ -1352,34 +1355,34 @@ namespace Microsoft Text, } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelExplorer { public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer Container { get => throw null; } - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForExpression(System.Type modelType, 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(Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata metadata, 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 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 GetExplorerForModel(object model) => throw null; - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetExplorerForProperty(string name, object model) => 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) => 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, 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 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorerExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorerExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ModelExplorerExtensions { public static string GetSimpleDisplayText(this Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelExpression { public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata Metadata { get => throw null; } @@ -1389,33 +1392,33 @@ namespace Microsoft public string Name { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpressionProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ModelExpressionProvider : Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider { - public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression CreateModelExpression(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, string expression) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelMetadataProviderExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ModelMetadataProviderExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ModelMetadataProviderExtensions { public static Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer GetModelExplorerForType(this Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider provider, System.Type modelType, object model) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.PartialViewResultExecutor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PartialViewResultExecutor : Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { - public virtual System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.PartialViewResult result) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class SaveTempDataAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -1423,7 +1426,7 @@ namespace Microsoft public SaveTempDataAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.SessionStateTempDataProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.SessionStateTempDataProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SessionStateTempDataProvider : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider { public virtual System.Collections.Generic.IDictionary LoadTempData(Microsoft.AspNetCore.Http.HttpContext context) => throw null; @@ -1431,15 +1434,15 @@ namespace Microsoft public SessionStateTempDataProvider(Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer tempDataSerializer) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.StringHtmlContent` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.StringHtmlContent` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class TempDataDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class TempDataDictionary : Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary, 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 keyValuePair) => throw null; public void Add(string key, object value) => throw null; @@ -1453,27 +1456,27 @@ namespace Microsoft 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(string key) => 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; - public bool Remove(string key) => throw null; bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; + public bool Remove(string key) => throw null; public void Save() => throw null; public TempDataDictionary(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataProvider provider) => throw null; public bool TryGetValue(string key, out object value) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionaryFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionaryFactory` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TemplateInfo { public bool AddVisited(object value) => throw null; @@ -1481,21 +1484,21 @@ namespace Microsoft public string GetFullHtmlFieldName(string partialFieldName) => throw null; public string HtmlFieldPrefix { get => throw null; set => throw null; } public int TemplateDepth { get => throw null; } - public TemplateInfo(Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo original) => throw null; public TemplateInfo() => throw null; + public TemplateInfo(Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo original) => throw null; public bool Visited(Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer modelExplorer) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueDelegate` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueDelegate` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate bool TryGetValueDelegate(object dictionary, string key, out object value); - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class TryGetValueProvider { public static Microsoft.AspNetCore.Mvc.ViewFeatures.TryGetValueDelegate CreateInstance(System.Type targetType) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ValidationHtmlAttributeProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ValidationHtmlAttributeProvider` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -1503,35 +1506,34 @@ namespace Microsoft protected ValidationHtmlAttributeProvider() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewComponentResultExecutor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewComponentResultExecutor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 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) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewContextAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewContextAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewContextAttribute : System.Attribute { public ViewContextAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ViewDataDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + 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 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 string Eval(string expression, string format) => 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; - System.Collections.IEnumerator System.Collections.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 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; } @@ -1540,38 +1542,38 @@ namespace Microsoft public Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExplorer ModelExplorer { get => throw null; set => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelMetadata ModelMetadata { get => throw null; } public Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary ModelState { get => throw null; } - public bool Remove(string key) => throw null; public bool Remove(System.Collections.Generic.KeyValuePair item) => throw null; + public bool Remove(string key) => throw null; protected virtual void SetModel(object value) => throw null; public Microsoft.AspNetCore.Mvc.ViewFeatures.TemplateInfo TemplateInfo { get => throw null; } public bool TryGetValue(string key, out object value) => throw null; public System.Collections.Generic.ICollection Values { get => throw null; } - public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source) => throw null; - public ViewDataDictionary(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider metadataProvider, Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary modelState) => throw null; - protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, object model, System.Type declaredModelType) => throw null; - protected ViewDataDictionary(Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary source, System.Type declaredModelType) => 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; 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary<>` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary<>` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewDataDictionary : Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary { public TModel Model { get => throw null; set => 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.ViewFeatures.ViewDataDictionary source) : 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; 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewDataDictionaryAttribute : System.Attribute { public ViewDataDictionaryAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryControllerPropertyActivator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionaryControllerPropertyActivator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewDataDictionaryControllerPropertyActivator { public void Activate(Microsoft.AspNetCore.Mvc.ControllerContext actionContext, object controller) => throw null; @@ -1579,25 +1581,25 @@ namespace Microsoft public ViewDataDictionaryControllerPropertyActivator(Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) => throw null; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataEvaluator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataEvaluator` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ViewDataEvaluator { - public static Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo Eval(object indexableObject, string expression) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataInfo` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, System.Func valueAccessor) => 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; } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewExecutor { public static string DefaultContentType; @@ -1607,13 +1609,13 @@ 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; } - 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 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; } } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ViewResultExecutor : Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor, Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultExecutor { public System.Threading.Tasks.Task ExecuteAsync(Microsoft.AspNetCore.Mvc.ActionContext context, Microsoft.AspNetCore.Mvc.ViewResult result) => throw null; @@ -1624,7 +1626,7 @@ namespace Microsoft namespace Buffers { - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.IViewBufferScope` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IViewBufferScope { System.IO.TextWriter CreateWriter(System.IO.TextWriter writer); @@ -1632,19 +1634,19 @@ namespace Microsoft void ReturnSegment(Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue[] segment); } - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers.ViewBufferValue` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct ViewBufferValue { public object Value { get => throw null; } - public ViewBufferValue(string value) => throw null; - public ViewBufferValue(Microsoft.AspNetCore.Html.IHtmlContent content) => throw null; // Stub generator skipped constructor + public ViewBufferValue(Microsoft.AspNetCore.Html.IHtmlContent content) => throw null; + public ViewBufferValue(string value) => throw null; } } namespace Infrastructure { - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.Infrastructure.TempDataSerializer` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class TempDataSerializer { public virtual bool CanSerializeType(System.Type type) => throw null; @@ -1661,23 +1663,23 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcBuilderExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcViewFeaturesMvcBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder, System.Action setupAction) => throw null; 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; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddSessionStateTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcBuilder builder) => throw null; 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExtensions` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcViewFeaturesMvcCoreBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddViews(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddCookieTempDataProvider(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder AddViews(this Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder builder) => throw null; + 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 737d5255b10..80bae914ef2 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 @@ -6,17 +6,17 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions` in `Microsoft.AspNetCore.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions` in `Microsoft.AspNetCore.Mvc, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MvcServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddControllers(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddControllers(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddControllersWithViews(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddControllers(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddControllersWithViews(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvc(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; + public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddControllersWithViews(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvc(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; + public static Microsoft.Extensions.DependencyInjection.IMvcBuilder AddMvc(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; 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.Razor.Runtime.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Razor.Runtime.cs index d4ac0f0661d..567e86bb0a2 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 @@ -8,7 +8,7 @@ namespace Microsoft { namespace Hosting { - // Generated from `Microsoft.AspNetCore.Razor.Hosting.IRazorSourceChecksumMetadata` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.IRazorSourceChecksumMetadata` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRazorSourceChecksumMetadata { string Checksum { get; } @@ -16,7 +16,7 @@ namespace Microsoft string Identifier { get; } } - // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class RazorCompiledItem { public abstract string Identifier { get; } @@ -26,7 +26,7 @@ namespace Microsoft public abstract System.Type Type { get; } } - // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorCompiledItemAttribute : System.Attribute { public string Identifier { get => throw null; } @@ -35,13 +35,13 @@ namespace Microsoft public System.Type Type { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemExtensions` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemExtensions` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RazorCompiledItemExtensions { public static System.Collections.Generic.IReadOnlyList GetChecksumMetadata(this Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem item) => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemLoader` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemLoader` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorCompiledItemLoader { protected virtual Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItem CreateItem(Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute attribute) => throw null; @@ -50,7 +50,7 @@ namespace Microsoft public RazorCompiledItemLoader() => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemMetadataAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemMetadataAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorCompiledItemMetadataAttribute : System.Attribute { public string Key { get => throw null; } @@ -58,14 +58,14 @@ namespace Microsoft public string Value { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorConfigurationNameAttribute : System.Attribute { public string ConfigurationName { get => throw null; } public RazorConfigurationNameAttribute(string configurationName) => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorExtensionAssemblyNameAttribute : System.Attribute { public string AssemblyName { get => throw null; } @@ -73,14 +73,14 @@ namespace Microsoft public RazorExtensionAssemblyNameAttribute(string extensionName, string assemblyName) => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorLanguageVersionAttribute : System.Attribute { public string LanguageVersion { get => throw null; } public RazorLanguageVersionAttribute(string languageVersion) => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RazorSourceChecksumAttribute : System.Attribute, Microsoft.AspNetCore.Razor.Hosting.IRazorSourceChecksumMetadata { public string Checksum { get => throw null; } @@ -94,14 +94,14 @@ namespace Microsoft { namespace TagHelpers { - // Generated from `Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TagHelperExecutionContext { public void Add(Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper tagHelper) => throw null; - public void AddHtmlAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) => 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 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 AddTagHelperAttribute(string name, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) => throw null; public bool ChildContentRetrieved { get => throw null; } public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext Context { get => throw null; } public System.Collections.Generic.IDictionary Items { get => throw null; } @@ -112,14 +112,14 @@ namespace Microsoft public System.Collections.Generic.IList TagHelpers { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TagHelperRunner { public System.Threading.Tasks.Task RunAsync(Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext executionContext) => throw null; public TagHelperRunner() => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager` in `Microsoft.AspNetCore.Razor.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager` in `Microsoft.AspNetCore.Razor.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; 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 69c0b944ed5..d8213cf7971 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 @@ -8,17 +8,17 @@ namespace Microsoft { namespace TagHelpers { - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.DefaultTagHelperContent` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultTagHelperContent : Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent { public override Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent Append(string unencoded) => throw null; - public override Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent AppendHtml(string encoded) => throw null; public override Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent htmlContent) => throw null; + public override Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent AppendHtml(string encoded) => throw null; public override Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent Clear() => throw null; public override void CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; public DefaultTagHelperContent() => throw null; - public override string GetContent(System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; public override string GetContent() => throw null; + public override string GetContent(System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; public override bool IsEmptyOrWhiteSpace { get => throw null; } public override bool IsModified { get => throw null; } public override void MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; @@ -26,23 +26,23 @@ namespace Microsoft public override void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlAttributeNameAttribute : System.Attribute { public string DictionaryAttributePrefix { get => throw null; set => throw null; } public bool DictionaryAttributePrefixSet { get => throw null; } - public HtmlAttributeNameAttribute(string name) => throw null; public HtmlAttributeNameAttribute() => throw null; + public HtmlAttributeNameAttribute(string name) => throw null; public string Name { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNotBoundAttribute` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNotBoundAttribute` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlAttributeNotBoundAttribute : System.Attribute { public HtmlAttributeNotBoundAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum HtmlAttributeValueStyle { DoubleQuotes, @@ -51,24 +51,24 @@ namespace Microsoft SingleQuotes, } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlTargetElementAttribute : System.Attribute { public string Attributes { get => throw null; set => throw null; } public const string ElementCatchAllTarget = default; - public HtmlTargetElementAttribute(string tag) => throw null; public HtmlTargetElementAttribute() => throw null; + public HtmlTargetElementAttribute(string tag) => throw null; public string ParentTag { get => throw null; set => throw null; } public string Tag { get => throw null; } public Microsoft.AspNetCore.Razor.TagHelpers.TagStructure TagStructure { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent { } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITagHelperComponent { void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context); @@ -76,12 +76,12 @@ namespace Microsoft System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output); } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.NullHtmlEncoder` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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, string value, int startIndex, int characterCount) => 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 int MaxOutputCharactersPerInputCharacter { get => throw null; } @@ -89,35 +89,35 @@ namespace Microsoft public override bool WillEncode(int unicodeScalar) => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.OutputElementHintAttribute` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.OutputElementHintAttribute` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OutputElementHintAttribute : System.Attribute { public string OutputElement { get => throw null; } public OutputElementHintAttribute(string outputElement) => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; - public ReadOnlyTagHelperAttributeList(System.Collections.Generic.IList attributes) : base(default(System.Collections.Generic.IList)) => 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 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; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.RestrictChildrenAttribute` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.RestrictChildrenAttribute` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RestrictChildrenAttribute : System.Attribute { public System.Collections.Generic.IEnumerable ChildTags { get => throw null; } public RestrictChildrenAttribute(string childTag, params string[] childTags) => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelper` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class TagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent, Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelper` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public abstract class TagHelper : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper, Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent { public virtual void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; public virtual int Order { get => throw null; } @@ -126,28 +126,28 @@ namespace Microsoft protected TagHelper() => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class TagHelperAttribute : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class TagHelperAttribute : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentContainer { public void CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; - public override bool Equals(object obj) => 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, object value, Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle valueStyle) => throw null; - public TagHelperAttribute(string name, object value) => 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; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class TagHelperAttributeList : Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList, System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttributeList` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class TagHelperAttributeList : Microsoft.AspNetCore.Razor.TagHelpers.ReadOnlyTagHelperAttributeList, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable { - public void Add(string name, object value) => throw null; public void Add(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute attribute) => throw null; + public void Add(string name, object value) => 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; } @@ -155,14 +155,14 @@ namespace Microsoft 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 TagHelperAttributeList(System.Collections.Generic.List attributes) => throw null; - public TagHelperAttributeList(System.Collections.Generic.IEnumerable attributes) => 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; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperComponent` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class TagHelperComponent : Microsoft.AspNetCore.Razor.TagHelpers.ITagHelperComponent { public virtual void Init(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context) => throw null; @@ -172,56 +172,56 @@ namespace Microsoft protected TagHelperComponent() => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class TagHelperContent : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContent + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; - 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(string encoded); + public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent AppendFormat(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(string encoded) => throw null; 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(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); - public abstract string GetContent(System.Text.Encodings.Web.HtmlEncoder encoder); public abstract string GetContent(); + public abstract string GetContent(System.Text.Encodings.Web.HtmlEncoder encoder); public abstract bool IsEmptyOrWhiteSpace { get; } public abstract bool IsModified { get; } public abstract void MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination); public abstract void Reinitialize(); public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent SetContent(string unencoded) => throw null; - public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent SetHtmlContent(string encoded) => 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); } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(string tagName, System.Collections.Generic.IDictionary items, string uniqueId) => throw null; public void Reinitialize(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 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 string TagName { get => throw null; } public string UniqueId { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class TagHelperOutput : Microsoft.AspNetCore.Html.IHtmlContentContainer, Microsoft.AspNetCore.Html.IHtmlContent + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 => throw null; } void Microsoft.AspNetCore.Html.IHtmlContentContainer.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder destination) => throw null; - public System.Threading.Tasks.Task GetChildContentAsync(bool useCachedResult, 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() => 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(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; public Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContent PostContent { get => throw null; } @@ -236,7 +236,7 @@ namespace Microsoft public void WriteTo(System.IO.TextWriter writer, System.Text.Encodings.Web.HtmlEncoder encoder) => throw null; } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagMode` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagMode` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum TagMode { SelfClosing, @@ -244,7 +244,7 @@ namespace Microsoft StartTagOnly, } - // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagStructure` in `Microsoft.AspNetCore.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Razor.TagHelpers.TagStructure` in `Microsoft.AspNetCore.Razor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum TagStructure { NormalOrSelfClosing, 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 83d74dff2db..07df657fcf0 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace ResponseCaching { - // Generated from `Microsoft.AspNetCore.ResponseCaching.IResponseCachingFeature` in `Microsoft.AspNetCore.ResponseCaching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCaching.IResponseCachingFeature` in `Microsoft.AspNetCore.ResponseCaching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IResponseCachingFeature { 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 b3d91677326..17108514dbb 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.ResponseCachingExtensions` in `Microsoft.AspNetCore.ResponseCaching, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ResponseCachingExtensions` in `Microsoft.AspNetCore.ResponseCaching, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ResponseCachingExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseResponseCaching(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; @@ -15,21 +15,21 @@ namespace Microsoft } namespace ResponseCaching { - // Generated from `Microsoft.AspNetCore.ResponseCaching.ResponseCachingFeature` in `Microsoft.AspNetCore.ResponseCaching, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCaching.ResponseCachingFeature` in `Microsoft.AspNetCore.ResponseCaching, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResponseCachingFeature : Microsoft.AspNetCore.ResponseCaching.IResponseCachingFeature { public ResponseCachingFeature() => throw null; public string[] VaryByQueryKeys { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware` in `Microsoft.AspNetCore.ResponseCaching, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware` in `Microsoft.AspNetCore.ResponseCaching, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions` in `Microsoft.AspNetCore.ResponseCaching, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions` in `Microsoft.AspNetCore.ResponseCaching, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResponseCachingOptions { public System.Int64 MaximumBodySize { get => throw null; set => throw null; } @@ -44,11 +44,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.ResponseCachingServicesExtensions` in `Microsoft.AspNetCore.ResponseCaching, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ResponseCachingServicesExtensions` in `Microsoft.AspNetCore.ResponseCaching, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ResponseCachingServicesExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddResponseCaching(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; 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 620e2bce97f..27e9ddfb5a7 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 @@ -6,23 +6,23 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.ResponseCompressionBuilderExtensions` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ResponseCompressionBuilderExtensions` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ResponseCompressionBuilderExtensions { public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseResponseCompression(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.ResponseCompressionServicesExtensions` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.ResponseCompressionServicesExtensions` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ResponseCompressionServicesExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddResponseCompression(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; 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 { - // Generated from `Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BrotliCompressionProvider : Microsoft.AspNetCore.ResponseCompression.ICompressionProvider { public BrotliCompressionProvider(Microsoft.Extensions.Options.IOptions options) => throw null; @@ -31,7 +31,7 @@ namespace Microsoft public bool SupportsFlush { get => throw null; } } - // Generated from `Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProviderOptions` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProviderOptions` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BrotliCompressionProviderOptions : Microsoft.Extensions.Options.IOptions { public BrotliCompressionProviderOptions() => throw null; @@ -39,15 +39,15 @@ namespace Microsoft Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProviderOptions Microsoft.Extensions.Options.IOptions.Value { get => throw null; } } - // Generated from `Microsoft.AspNetCore.ResponseCompression.CompressionProviderCollection` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.CompressionProviderCollection` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompressionProviderCollection : System.Collections.ObjectModel.Collection { - public void Add() where TCompressionProvider : Microsoft.AspNetCore.ResponseCompression.ICompressionProvider => throw null; public void Add(System.Type providerType) => throw null; + public void Add() where TCompressionProvider : Microsoft.AspNetCore.ResponseCompression.ICompressionProvider => throw null; public CompressionProviderCollection() => throw null; } - // Generated from `Microsoft.AspNetCore.ResponseCompression.GzipCompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.GzipCompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class GzipCompressionProvider : Microsoft.AspNetCore.ResponseCompression.ICompressionProvider { public System.IO.Stream CreateStream(System.IO.Stream outputStream) => throw null; @@ -56,7 +56,7 @@ namespace Microsoft public bool SupportsFlush { get => throw null; } } - // Generated from `Microsoft.AspNetCore.ResponseCompression.GzipCompressionProviderOptions` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.GzipCompressionProviderOptions` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class GzipCompressionProviderOptions : Microsoft.Extensions.Options.IOptions { public GzipCompressionProviderOptions() => throw null; @@ -64,7 +64,7 @@ namespace Microsoft Microsoft.AspNetCore.ResponseCompression.GzipCompressionProviderOptions Microsoft.Extensions.Options.IOptions.Value { get => throw null; } } - // Generated from `Microsoft.AspNetCore.ResponseCompression.ICompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.ICompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICompressionProvider { System.IO.Stream CreateStream(System.IO.Stream outputStream); @@ -72,7 +72,7 @@ namespace Microsoft bool SupportsFlush { get; } } - // Generated from `Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IResponseCompressionProvider { bool CheckRequestAcceptsCompression(Microsoft.AspNetCore.Http.HttpContext context); @@ -80,21 +80,21 @@ namespace Microsoft bool ShouldCompressResponse(Microsoft.AspNetCore.Http.HttpContext context); } - // Generated from `Microsoft.AspNetCore.ResponseCompression.ResponseCompressionDefaults` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.ResponseCompressionDefaults` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResponseCompressionDefaults { public static System.Collections.Generic.IEnumerable MimeTypes; public ResponseCompressionDefaults() => throw null; } - // Generated from `Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResponseCompressionOptions { public bool EnableForHttps { get => throw null; set => throw null; } @@ -104,7 +104,7 @@ namespace Microsoft public ResponseCompressionOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.ResponseCompression.ResponseCompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.ResponseCompression.ResponseCompressionProvider` in `Microsoft.AspNetCore.ResponseCompression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResponseCompressionProvider : Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider { public bool CheckRequestAcceptsCompression(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 29d501f8291..9d85561e16a 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 @@ -6,37 +6,37 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.RewriteBuilderExtensions` in `Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.RewriteBuilderExtensions` in `Microsoft.AspNetCore.Rewrite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RewriteBuilderExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseRewriter(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Rewrite.RewriteOptions options) => throw null; 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 { - // Generated from `Microsoft.AspNetCore.Rewrite.ApacheModRewriteOptionsExtensions` in `Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Rewrite.ApacheModRewriteOptionsExtensions` in `Microsoft.AspNetCore.Rewrite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ApacheModRewriteOptionsExtensions { - public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddApacheModRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, System.IO.TextReader reader) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Rewrite.IISUrlRewriteOptionsExtensions` in `Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Rewrite.IISUrlRewriteOptionsExtensions` in `Microsoft.AspNetCore.Rewrite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class IISUrlRewriteOptionsExtensions { - public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddIISUrlRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, System.IO.TextReader reader, bool alwaysUseManagedServerVariables = default(bool)) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Rewrite.IRule` in `Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Rewrite.IRule` in `Microsoft.AspNetCore.Rewrite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRule { void ApplyRule(Microsoft.AspNetCore.Rewrite.RewriteContext context); } - // Generated from `Microsoft.AspNetCore.Rewrite.RewriteContext` in `Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Rewrite.RewriteContext` in `Microsoft.AspNetCore.Rewrite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RewriteContext { public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; set => throw null; } @@ -46,14 +46,14 @@ namespace Microsoft public Microsoft.Extensions.FileProviders.IFileProvider StaticFileProvider { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Rewrite.RewriteMiddleware` in `Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Rewrite.RewriteMiddleware` in `Microsoft.AspNetCore.Rewrite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Rewrite.RewriteOptions` in `Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Rewrite.RewriteOptions` in `Microsoft.AspNetCore.Rewrite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RewriteOptions { public RewriteOptions() => throw null; @@ -61,33 +61,33 @@ namespace Microsoft public Microsoft.Extensions.FileProviders.IFileProvider StaticFileProvider { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions` in `Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions` in `Microsoft.AspNetCore.Rewrite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 AddRedirect(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, string regex, string replacement, int statusCode) => 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 AddRedirectToHttps(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode, int? sslPort) => throw null; - public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToHttps(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode) => 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; + public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToHttps(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode) => throw null; + 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, params string[] domains) => 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, int statusCode) => throw null; public static Microsoft.AspNetCore.Rewrite.RewriteOptions AddRedirectToNonWww(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 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 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, 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 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 AddRedirectToWwwPermanent(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; } - // Generated from `Microsoft.AspNetCore.Rewrite.RuleResult` in `Microsoft.AspNetCore.Rewrite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Rewrite.RuleResult` in `Microsoft.AspNetCore.Rewrite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum RuleResult { ContinueRules, 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 990c0bba646..e23f7980c83 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 @@ -6,53 +6,53 @@ namespace Microsoft { namespace Routing { - // Generated from `Microsoft.AspNetCore.Routing.IOutboundParameterTransformer` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IOutboundParameterTransformer` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IOutboundParameterTransformer : Microsoft.AspNetCore.Routing.IParameterPolicy { string TransformOutbound(object value); } - // Generated from `Microsoft.AspNetCore.Routing.IParameterPolicy` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IParameterPolicy` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IParameterPolicy { } - // Generated from `Microsoft.AspNetCore.Routing.IRouteConstraint` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IRouteConstraint` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Routing.IRouteHandler` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IRouteHandler` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRouteHandler { Microsoft.AspNetCore.Http.RequestDelegate GetRequestHandler(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteData routeData); } - // Generated from `Microsoft.AspNetCore.Routing.IRouter` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IRouter` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRouter { Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context); System.Threading.Tasks.Task RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context); } - // Generated from `Microsoft.AspNetCore.Routing.IRoutingFeature` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IRoutingFeature` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRoutingFeature { Microsoft.AspNetCore.Routing.RouteData RouteData { get; set; } } - // Generated from `Microsoft.AspNetCore.Routing.LinkGenerator` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.LinkGenerator` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class LinkGenerator { - 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 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 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)); + 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; } - // Generated from `Microsoft.AspNetCore.Routing.LinkOptions` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.LinkOptions` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LinkOptions { public bool? AppendTrailingSlash { get => throw null; set => throw null; } @@ -61,7 +61,7 @@ namespace Microsoft public bool? LowercaseUrls { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.RouteContext` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteContext` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteContext { public Microsoft.AspNetCore.Http.RequestDelegate Handler { get => throw null; set => throw null; } @@ -70,60 +70,60 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.RouteData` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteData` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteData { - 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(Microsoft.AspNetCore.Routing.RouteValueDictionary values) => throw null; - public RouteData(Microsoft.AspNetCore.Routing.RouteData other) => throw null; - public RouteData() => throw null; - // Generated from `Microsoft.AspNetCore.Routing.RouteData+RouteDataSnapshot` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteData+RouteDataSnapshot` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct RouteDataSnapshot { public void Restore() => throw null; - public RouteDataSnapshot(Microsoft.AspNetCore.Routing.RouteData routeData, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens, System.Collections.Generic.IList routers, Microsoft.AspNetCore.Routing.RouteValueDictionary values) => 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 System.Collections.Generic.IList Routers { get => throw null; } public Microsoft.AspNetCore.Routing.RouteValueDictionary Values { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.RouteDirection` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteDirection` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum RouteDirection { IncomingRequest, UrlGeneration, } - // Generated from `Microsoft.AspNetCore.Routing.RoutingHttpContextExtensions` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RoutingHttpContextExtensions` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Routing.VirtualPathContext` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.VirtualPathContext` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, string routeName) => 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; } - // Generated from `Microsoft.AspNetCore.Routing.VirtualPathData` in `Microsoft.AspNetCore.Routing.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.VirtualPathData` in `Microsoft.AspNetCore.Routing.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.AspNetCore.Routing.RouteValueDictionary dataTokens) => 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; } } 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 d767df1585e..1fb9882b2aa 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 @@ -6,69 +6,105 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EndpointRouteBuilderExtensions { - 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 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, 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.IEndpointConventionBuilder MapDelete(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => 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.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 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 MapPost(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.IEndpointConventionBuilder MapPut(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Builder.FallbackEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.FallbackEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class FallbackEndpointRouteBuilderExtensions { public static string DefaultPattern; - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallback(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.MapRouteRouteBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.MapRouteRouteBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MapRouteRouteBuilderExtensions { - 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 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) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.RouterMiddleware` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.RouteHandlerBuilder` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class RouteHandlerBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + { + public void Add(System.Action convention) => throw null; + public RouteHandlerBuilder(System.Collections.Generic.IEnumerable endpointConventionBuilders) => throw null; + } + + // Generated from `Microsoft.AspNetCore.Builder.RouterMiddleware` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Builder.RoutingBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.RoutingBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, 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 WithDisplayName(this TBuilder builder, string displayName) 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 + { + // Generated from `Microsoft.AspNetCore.Http.OpenApiRouteHandlerBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static 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 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 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 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 Microsoft.AspNetCore.Builder.RouteHandlerBuilder WithTags(this Microsoft.AspNetCore.Builder.RouteHandlerBuilder builder, params string[] tags) => throw null; } } namespace Routing { - // Generated from `Microsoft.AspNetCore.Routing.CompositeEndpointDataSource` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.CompositeEndpointDataSource` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompositeEndpointDataSource : Microsoft.AspNetCore.Routing.EndpointDataSource { public CompositeEndpointDataSource(System.Collections.Generic.IEnumerable endpointDataSources) => throw null; @@ -77,30 +113,30 @@ namespace Microsoft public override Microsoft.Extensions.Primitives.IChangeToken GetChangeToken() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.DataTokensMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.DataTokensMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Routing.DefaultEndpointDataSource` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.DefaultEndpointDataSource` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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 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; } - // Generated from `Microsoft.AspNetCore.Routing.DefaultInlineConstraintResolver` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.DefaultInlineConstraintResolver` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Routing.EndpointDataSource` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.EndpointDataSource` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class EndpointDataSource { protected EndpointDataSource() => throw null; @@ -108,55 +144,82 @@ namespace Microsoft public abstract Microsoft.Extensions.Primitives.IChangeToken GetChangeToken(); } - // Generated from `Microsoft.AspNetCore.Routing.EndpointNameMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.EndpointGroupNameAttribute` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class EndpointGroupNameAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IEndpointGroupNameMetadata + { + public string EndpointGroupName { get => throw null; } + public EndpointGroupNameAttribute(string endpointGroupName) => throw null; + } + + // Generated from `Microsoft.AspNetCore.Routing.EndpointNameAttribute` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class EndpointNameAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IEndpointNameMetadata + { + public string EndpointName { get => throw null; } + public EndpointNameAttribute(string endpointName) => throw null; + } + + // Generated from `Microsoft.AspNetCore.Routing.EndpointNameMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EndpointNameMetadata : Microsoft.AspNetCore.Routing.IEndpointNameMetadata { public string EndpointName { get => throw null; } public EndpointNameMetadata(string endpointName) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.HostAttribute` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.ExcludeFromDescriptionAttribute` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ExcludeFromDescriptionAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IExcludeFromDescriptionMetadata + { + public bool ExcludeFromDescription { get => throw null; } + public ExcludeFromDescriptionAttribute() => throw null; + } + + // Generated from `Microsoft.AspNetCore.Routing.HostAttribute` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HostAttribute : System.Attribute, Microsoft.AspNetCore.Routing.IHostMetadata { - public HostAttribute(string host) => throw null; public HostAttribute(params string[] hosts) => throw null; + public HostAttribute(string host) => throw null; public System.Collections.Generic.IReadOnlyList Hosts { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.HttpMethodMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.HttpMethodMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpMethodMetadata : Microsoft.AspNetCore.Routing.IHttpMethodMetadata { public bool AcceptCorsPreflight { get => throw null; } - public HttpMethodMetadata(System.Collections.Generic.IEnumerable httpMethods, bool acceptCorsPreflight) => 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; } } - // Generated from `Microsoft.AspNetCore.Routing.IDataTokensMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IDataTokensMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDataTokensMetadata { System.Collections.Generic.IReadOnlyDictionary DataTokens { get; } } - // Generated from `Microsoft.AspNetCore.Routing.IDynamicEndpointMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IDynamicEndpointMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDynamicEndpointMetadata { bool IsDynamic { get; } } - // Generated from `Microsoft.AspNetCore.Routing.IEndpointAddressScheme<>` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IEndpointAddressScheme<>` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IEndpointAddressScheme { System.Collections.Generic.IEnumerable FindEndpoints(TAddress address); } - // Generated from `Microsoft.AspNetCore.Routing.IEndpointNameMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IEndpointGroupNameMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IEndpointGroupNameMetadata + { + string EndpointGroupName { get; } + } + + // Generated from `Microsoft.AspNetCore.Routing.IEndpointNameMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IEndpointNameMetadata { string EndpointName { get; } } - // Generated from `Microsoft.AspNetCore.Routing.IEndpointRouteBuilder` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IEndpointRouteBuilder` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IEndpointRouteBuilder { Microsoft.AspNetCore.Builder.IApplicationBuilder CreateApplicationBuilder(); @@ -164,32 +227,38 @@ namespace Microsoft System.IServiceProvider ServiceProvider { get; } } - // Generated from `Microsoft.AspNetCore.Routing.IHostMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IExcludeFromDescriptionMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IExcludeFromDescriptionMetadata + { + bool ExcludeFromDescription { get; } + } + + // Generated from `Microsoft.AspNetCore.Routing.IHostMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostMetadata { System.Collections.Generic.IReadOnlyList Hosts { get; } } - // Generated from `Microsoft.AspNetCore.Routing.IHttpMethodMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IHttpMethodMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpMethodMetadata { bool AcceptCorsPreflight { get; } System.Collections.Generic.IReadOnlyList HttpMethods { get; } } - // Generated from `Microsoft.AspNetCore.Routing.IInlineConstraintResolver` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IInlineConstraintResolver` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IInlineConstraintResolver { Microsoft.AspNetCore.Routing.IRouteConstraint ResolveConstraint(string inlineConstraint); } - // Generated from `Microsoft.AspNetCore.Routing.INamedRouter` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.INamedRouter` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface INamedRouter : Microsoft.AspNetCore.Routing.IRouter { string Name { get; } } - // Generated from `Microsoft.AspNetCore.Routing.IRouteBuilder` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IRouteBuilder` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRouteBuilder { Microsoft.AspNetCore.Builder.IApplicationBuilder ApplicationBuilder { get; } @@ -199,68 +268,68 @@ namespace Microsoft System.IServiceProvider ServiceProvider { get; } } - // Generated from `Microsoft.AspNetCore.Routing.IRouteCollection` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IRouteCollection` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRouteCollection : Microsoft.AspNetCore.Routing.IRouter { void Add(Microsoft.AspNetCore.Routing.IRouter router); } - // Generated from `Microsoft.AspNetCore.Routing.IRouteNameMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.IRouteNameMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRouteNameMetadata { string RouteName { get; } } - // Generated from `Microsoft.AspNetCore.Routing.ISuppressLinkGenerationMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.ISuppressLinkGenerationMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISuppressLinkGenerationMetadata { bool SuppressLinkGeneration { get; } } - // Generated from `Microsoft.AspNetCore.Routing.ISuppressMatchingMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.ISuppressMatchingMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISuppressMatchingMetadata { bool SuppressMatching { get; } } - // Generated from `Microsoft.AspNetCore.Routing.InlineRouteParameterParser` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.InlineRouteParameterParser` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class InlineRouteParameterParser { public static Microsoft.AspNetCore.Routing.Template.TemplatePart ParseRouteParameter(string routeParameter) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.LinkGeneratorEndpointNameAddressExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.LinkGeneratorEndpointNameAddressExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class LinkGeneratorEndpointNameAddressExtensions { - 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, 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 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 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, 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, 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; } - // Generated from `Microsoft.AspNetCore.Routing.LinkGeneratorRouteValuesAddressExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.LinkGeneratorRouteValuesAddressExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class LinkGeneratorRouteValuesAddressExtensions { - 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, 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 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 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, 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, 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; } - // Generated from `Microsoft.AspNetCore.Routing.LinkParser` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.LinkParser` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class LinkParser { protected LinkParser() => throw null; public abstract Microsoft.AspNetCore.Routing.RouteValueDictionary ParsePathByAddress(TAddress address, Microsoft.AspNetCore.Http.PathString path); } - // Generated from `Microsoft.AspNetCore.Routing.LinkParserEndpointNameAddressExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.LinkParserEndpointNameAddressExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Routing.MatcherPolicy` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.MatcherPolicy` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class MatcherPolicy { protected static bool ContainsDynamicEndpoints(System.Collections.Generic.IReadOnlyList endpoints) => throw null; @@ -268,16 +337,16 @@ namespace Microsoft public abstract int Order { get; } } - // Generated from `Microsoft.AspNetCore.Routing.ParameterPolicyFactory` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.ParameterPolicyFactory` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; + public abstract Microsoft.AspNetCore.Routing.IParameterPolicy Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart parameter, string inlineText); protected ParameterPolicyFactory() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RequestDelegateRouteBuilderExtensions { public static Microsoft.AspNetCore.Routing.IRouteBuilder MapDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string template, System.Func handler) => throw null; @@ -299,19 +368,19 @@ namespace Microsoft public static Microsoft.AspNetCore.Routing.IRouteBuilder MapVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder builder, string verb, string template, Microsoft.AspNetCore.Http.RequestDelegate handler) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Route` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Route` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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.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 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; } } - // Generated from `Microsoft.AspNetCore.Routing.RouteBase` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class RouteBase : Microsoft.AspNetCore.Routing.IRouter, Microsoft.AspNetCore.Routing.INamedRouter + // Generated from `Microsoft.AspNetCore.Routing.RouteBase` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -329,20 +398,20 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.RouteBuilder` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteBuilder` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.AspNetCore.Routing.IRouter defaultHandler) => 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; } } - // Generated from `Microsoft.AspNetCore.Routing.RouteCollection` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RouteCollection : Microsoft.AspNetCore.Routing.IRouter, Microsoft.AspNetCore.Routing.IRouteCollection + // Generated from `Microsoft.AspNetCore.Routing.RouteCollection` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -352,7 +421,7 @@ namespace Microsoft public RouteCollection() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.RouteConstraintBuilder` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteConstraintBuilder` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteConstraintBuilder { public void AddConstraint(string key, object value) => throw null; @@ -362,20 +431,20 @@ namespace Microsoft public void SetOptional(string key) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.RouteConstraintMatcher` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteConstraintMatcher` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Routing.RouteCreationException` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteCreationException` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteCreationException : System.Exception { - public RouteCreationException(string message, System.Exception innerException) => throw null; public RouteCreationException(string message) => throw null; + public RouteCreationException(string message, System.Exception innerException) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.RouteEndpoint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteEndpoint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteEndpoint : Microsoft.AspNetCore.Http.Endpoint { public int Order { get => throw null; } @@ -383,7 +452,7 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.Patterns.RoutePattern RoutePattern { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.RouteEndpointBuilder` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteEndpointBuilder` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteEndpointBuilder : Microsoft.AspNetCore.Builder.EndpointBuilder { public override Microsoft.AspNetCore.Http.Endpoint Build() => throw null; @@ -392,8 +461,8 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.Patterns.RoutePattern RoutePattern { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.RouteHandler` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RouteHandler : Microsoft.AspNetCore.Routing.IRouter, Microsoft.AspNetCore.Routing.IRouteHandler + // Generated from `Microsoft.AspNetCore.Routing.RouteHandler` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -401,14 +470,21 @@ namespace Microsoft public RouteHandler(Microsoft.AspNetCore.Http.RequestDelegate requestDelegate) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.RouteNameMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteHandlerOptions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class RouteHandlerOptions + { + public RouteHandlerOptions() => throw null; + public bool ThrowOnBadRequest { get => throw null; set => throw null; } + } + + // Generated from `Microsoft.AspNetCore.Routing.RouteNameMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteNameMetadata : Microsoft.AspNetCore.Routing.IRouteNameMetadata { public string RouteName { get => throw null; } public RouteNameMetadata(string routeName) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.RouteOptions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteOptions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteOptions { public bool AppendTrailingSlash { get => throw null; set => throw null; } @@ -419,7 +495,7 @@ namespace Microsoft public bool SuppressCheckForUnhandledSecurityMetadata { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.RouteValueEqualityComparer` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteValueEqualityComparer` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteValueEqualityComparer : System.Collections.Generic.IEqualityComparer { public static Microsoft.AspNetCore.Routing.RouteValueEqualityComparer Default; @@ -428,7 +504,7 @@ namespace Microsoft public RouteValueEqualityComparer() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.RouteValuesAddress` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RouteValuesAddress` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteValuesAddress { public Microsoft.AspNetCore.Routing.RouteValueDictionary AmbientValues { get => throw null; set => throw null; } @@ -437,21 +513,21 @@ namespace Microsoft public RouteValuesAddress() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.RoutingFeature` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.RoutingFeature` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RoutingFeature : Microsoft.AspNetCore.Routing.IRoutingFeature { public Microsoft.AspNetCore.Routing.RouteData RouteData { get => throw null; set => throw null; } public RoutingFeature() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.SuppressLinkGenerationMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.SuppressLinkGenerationMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SuppressLinkGenerationMetadata : Microsoft.AspNetCore.Routing.ISuppressLinkGenerationMetadata { public bool SuppressLinkGeneration { get => throw null; } public SuppressLinkGenerationMetadata() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.SuppressMatchingMetadata` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.SuppressMatchingMetadata` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SuppressMatchingMetadata : Microsoft.AspNetCore.Routing.ISuppressMatchingMetadata { public bool SuppressMatching { get => throw null; } @@ -460,190 +536,209 @@ namespace Microsoft namespace Constraints { - // Generated from `Microsoft.AspNetCore.Routing.Constraints.AlphaRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Constraints.AlphaRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AlphaRouteConstraint : Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint { public AlphaRouteConstraint() : base(default(System.Text.RegularExpressions.Regex)) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.BoolRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class BoolRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.BoolRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class BoolRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.CompositeRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class CompositeRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.CompositeRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class CompositeRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { public CompositeRouteConstraint(System.Collections.Generic.IEnumerable constraints) => throw null; public System.Collections.Generic.IEnumerable Constraints { 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.DateTimeRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DateTimeRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.DateTimeRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DateTimeRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.DecimalRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DecimalRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.DecimalRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DecimalRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.DoubleRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DoubleRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.DoubleRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DoubleRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.FileNameRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FileNameRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.FileNameRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class FileNameRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.FloatRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FloatRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.FloatRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class FloatRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.GuidRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class GuidRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.GuidRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class GuidRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.HttpMethodRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HttpMethodRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.HttpMethodRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.IntRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class IntRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.IntRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class IntRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.LengthRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class LengthRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.LengthRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class LengthRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy { - public LengthRouteConstraint(int minLength, int maxLength) => throw null; public LengthRouteConstraint(int length) => throw null; + public LengthRouteConstraint(int minLength, 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 int MinLength { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.LongRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class LongRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.LongRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class LongRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.MaxLengthRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MaxLengthRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.MaxLengthRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MaxLengthRouteConstraint : 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 int MaxLength { get => throw null; } public MaxLengthRouteConstraint(int maxLength) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.MaxRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MaxRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.MaxRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MaxRouteConstraint : 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 System.Int64 Max { get => throw null; } public MaxRouteConstraint(System.Int64 max) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.MinLengthRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MinLengthRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.MinLengthRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MinLengthRouteConstraint : 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 int MinLength { get => throw null; } public MinLengthRouteConstraint(int minLength) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.MinRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MinRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.MinRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MinRouteConstraint : 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 System.Int64 Min { get => throw null; } public MinRouteConstraint(System.Int64 min) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.NonFileNameRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class NonFileNameRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.NonFileNameRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class NonFileNameRouteConstraint : 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 NonFileNameRouteConstraint() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.OptionalRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class OptionalRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.OptionalRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class OptionalRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint { 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.RangeRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RangeRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.RangeRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class RangeRouteConstraint : 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 System.Int64 Max { get => throw null; } public System.Int64 Min { get => throw null; } public RangeRouteConstraint(System.Int64 min, System.Int64 max) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.RegexInlineRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Constraints.RegexInlineRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RegexInlineRouteConstraint : Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint { public RegexInlineRouteConstraint(string regexPattern) : base(default(System.Text.RegularExpressions.Regex)) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RegexRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class RegexRouteConstraint : Microsoft.AspNetCore.Routing.IParameterPolicy, Microsoft.AspNetCore.Routing.IRouteConstraint, 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; - public RegexRouteConstraint(string regexPattern) => 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.RequiredRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RequiredRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.RequiredRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.AspNetCore.Routing.Constraints.StringRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class StringRouteConstraint : Microsoft.AspNetCore.Routing.IRouteConstraint, Microsoft.AspNetCore.Routing.IParameterPolicy + // Generated from `Microsoft.AspNetCore.Routing.Constraints.StringRouteConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } } namespace Internal { - // Generated from `Microsoft.AspNetCore.Routing.Internal.DfaGraphWriter` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Internal.DfaGraphWriter` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DfaGraphWriter { public DfaGraphWriter(System.IServiceProvider services) => throw null; @@ -653,7 +748,7 @@ namespace Microsoft } namespace Matching { - // Generated from `Microsoft.AspNetCore.Routing.Matching.CandidateSet` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.CandidateSet` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CandidateSet { public CandidateSet(Microsoft.AspNetCore.Http.Endpoint[] endpoints, Microsoft.AspNetCore.Routing.RouteValueDictionary[] values, int[] scores) => throw null; @@ -665,7 +760,7 @@ namespace Microsoft public void SetValidity(int index, bool value) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Matching.CandidateState` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.CandidateState` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct CandidateState { // Stub generator skipped constructor @@ -674,13 +769,13 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.RouteValueDictionary Values { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EndpointMetadataComparer : System.Collections.Generic.IComparer { int System.Collections.Generic.IComparer.Compare(Microsoft.AspNetCore.Http.Endpoint x, Microsoft.AspNetCore.Http.Endpoint y) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer<>` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer<>` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -690,18 +785,18 @@ namespace Microsoft protected virtual TMetadata GetMetadata(Microsoft.AspNetCore.Http.Endpoint endpoint) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Matching.EndpointSelector` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.EndpointSelector` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Routing.Matching.HostMatcherPolicy` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HostMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy + // Generated from `Microsoft.AspNetCore.Routing.Matching.HostMatcherPolicy` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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; + bool Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.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; } @@ -710,11 +805,11 @@ namespace Microsoft public override int Order { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HttpMethodMatcherPolicy : Microsoft.AspNetCore.Routing.MatcherPolicy, Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy, Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy + // Generated from `Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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; + bool Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.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; } @@ -723,20 +818,20 @@ namespace Microsoft public override int Order { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IEndpointComparerPolicy { System.Collections.Generic.IComparer Comparer { get; } } - // Generated from `Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface INodeBuilderPolicy { bool AppliesToEndpoints(System.Collections.Generic.IReadOnlyList endpoints); @@ -744,35 +839,41 @@ namespace Microsoft System.Collections.Generic.IReadOnlyList GetEdges(System.Collections.Generic.IReadOnlyList endpoints); } - // Generated from `Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.IParameterLiteralNodeMatchingPolicy` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IParameterLiteralNodeMatchingPolicy : Microsoft.AspNetCore.Routing.IParameterPolicy + { + bool MatchesLiteral(string parameterName, string literal); + } + + // Generated from `Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class PolicyJumpTable { public abstract int GetDestination(Microsoft.AspNetCore.Http.HttpContext httpContext); protected PolicyJumpTable() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Matching.PolicyJumpTableEdge` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.PolicyJumpTableEdge` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct PolicyJumpTableEdge { public int Destination { get => throw null; } - public PolicyJumpTableEdge(object state, int destination) => throw null; // Stub generator skipped constructor + public PolicyJumpTableEdge(object state, int destination) => throw null; public object State { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Matching.PolicyNodeEdge` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Matching.PolicyNodeEdge` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct PolicyNodeEdge { public System.Collections.Generic.IReadOnlyList Endpoints { get => throw null; } - public PolicyNodeEdge(object state, System.Collections.Generic.IReadOnlyList endpoints) => throw null; // Stub generator skipped constructor + public PolicyNodeEdge(object state, System.Collections.Generic.IReadOnlyList endpoints) => throw null; public object State { get => throw null; } } } namespace Patterns { - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePattern` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePattern` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RoutePattern { public System.Collections.Generic.IReadOnlyDictionary Defaults { get => throw null; } @@ -787,7 +888,7 @@ namespace Microsoft public System.Collections.Generic.IReadOnlyDictionary RequiredValues { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternException` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternException` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RoutePatternException : System.Exception { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -795,44 +896,44 @@ namespace Microsoft public RoutePatternException(string pattern, string message) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RoutePatternFactory { - public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference Constraint(string 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(object 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, object @default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference[] parameterPolicies) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParameterPart(string parameterName, object @default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind, System.Collections.Generic.IEnumerable parameterPolicies) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParameterPart(string parameterName, object @default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParameterPart(string parameterName, object @default) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParameterPart(string parameterName) => throw null; - public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference ParameterPolicy(string parameterPolicy) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParameterPart(string parameterName, object @default) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParameterPart(string parameterName, object @default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParameterPart(string parameterName, object @default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind, System.Collections.Generic.IEnumerable parameterPolicies) => throw null; + public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart ParameterPart(string parameterName, object @default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference[] parameterPolicies) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference ParameterPolicy(Microsoft.AspNetCore.Routing.IParameterPolicy parameterPolicy) => 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, object defaults, object parameterPolicies) => 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 Pattern(string rawText, 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, object defaults, object parameterPolicies, System.Collections.Generic.IEnumerable 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(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(object defaults, object parameterPolicies, System.Collections.Generic.IEnumerable segments) => 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, object defaults, object parameterPolicies, object requiredValues) => throw null; public static Microsoft.AspNetCore.Routing.Patterns.RoutePattern Pattern(System.Collections.Generic.IEnumerable segments) => 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.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, 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, 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; } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternLiteralPart` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternLiteralPart` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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; } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum RoutePatternParameterKind { CatchAll, @@ -840,7 +941,7 @@ namespace Microsoft Standard, } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RoutePatternParameterPart : Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart { public object Default { get => throw null; } @@ -850,18 +951,18 @@ 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, bool encodeSlashes) : 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) : 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; } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RoutePatternParameterPolicyReference { public string Content { get => throw null; } public Microsoft.AspNetCore.Routing.IParameterPolicy ParameterPolicy { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class RoutePatternPart { public bool IsLiteral { get => throw null; } @@ -871,7 +972,7 @@ namespace Microsoft protected private RoutePatternPart(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind partKind) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum RoutePatternPartKind { Literal, @@ -879,21 +980,21 @@ namespace Microsoft Separator, } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RoutePatternPathSegment { public bool IsSimple { get => throw null; } public System.Collections.Generic.IReadOnlyList Parts { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternSeparatorPart` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternSeparatorPart` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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; } - // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternTransformer` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Patterns.RoutePatternTransformer` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class RoutePatternTransformer { protected RoutePatternTransformer() => throw null; @@ -903,35 +1004,35 @@ namespace Microsoft } namespace Template { - // Generated from `Microsoft.AspNetCore.Routing.Template.InlineConstraint` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.InlineConstraint` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InlineConstraint { public string Constraint { get => throw null; } - public InlineConstraint(string constraint) => throw null; public InlineConstraint(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference other) => throw null; + public InlineConstraint(string constraint) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Template.RoutePrecedence` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.RoutePrecedence` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Routing.Template.RouteTemplate` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.RouteTemplate` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RouteTemplate { 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(string template, System.Collections.Generic.List segments) => 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; } - // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateBinder` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateBinder` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TemplateBinder { public string BindValues(Microsoft.AspNetCore.Routing.RouteValueDictionary acceptedValues) => throw null; @@ -940,15 +1041,15 @@ namespace Microsoft public bool TryProcessConstraints(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary combinedValues, out string parameterName, out Microsoft.AspNetCore.Routing.IRouteConstraint constraint) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateBinderFactory` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateBinderFactory` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class TemplateBinderFactory { - 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); + public abstract Microsoft.AspNetCore.Routing.Template.TemplateBinder Create(Microsoft.AspNetCore.Routing.Template.RouteTemplate template, Microsoft.AspNetCore.Routing.RouteValueDictionary defaults); protected TemplateBinderFactory() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateMatcher` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateMatcher` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TemplateMatcher { public Microsoft.AspNetCore.Routing.RouteValueDictionary Defaults { get => throw null; } @@ -957,13 +1058,13 @@ namespace Microsoft public bool TryMatch(Microsoft.AspNetCore.Http.PathString path, Microsoft.AspNetCore.Routing.RouteValueDictionary values) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateParser` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateParser` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class TemplateParser { public static Microsoft.AspNetCore.Routing.Template.RouteTemplate Parse(string routeTemplate) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Template.TemplatePart` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.TemplatePart` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TemplatePart { public static Microsoft.AspNetCore.Routing.Template.TemplatePart CreateLiteral(string text) => throw null; @@ -976,23 +1077,23 @@ namespace Microsoft public bool IsOptionalSeperator { get => throw null; set => throw null; } public bool IsParameter { get => throw null; } public string Name { get => throw null; } - public TemplatePart(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart other) => 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; } - // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateSegment` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateSegment` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TemplateSegment { public bool IsSimple { get => throw null; } public System.Collections.Generic.List Parts { get => throw null; } - public TemplateSegment(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment other) => throw null; public TemplateSegment() => throw null; + public TemplateSegment(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment other) => throw null; public Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment ToRoutePatternPathSegment() => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateValuesResult` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Template.TemplateValuesResult` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TemplateValuesResult { public Microsoft.AspNetCore.Routing.RouteValueDictionary AcceptedValues { get => throw null; set => throw null; } @@ -1003,7 +1104,7 @@ namespace Microsoft } namespace Tree { - // Generated from `Microsoft.AspNetCore.Routing.Tree.InboundMatch` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Tree.InboundMatch` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InboundMatch { public Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry Entry { get => throw null; set => throw null; } @@ -1011,7 +1112,7 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.Template.TemplateMatcher TemplateMatcher { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InboundRouteEntry { public System.Collections.Generic.IDictionary Constraints { get => throw null; set => throw null; } @@ -1024,7 +1125,7 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.Template.RouteTemplate RouteTemplate { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Tree.OutboundMatch` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Tree.OutboundMatch` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OutboundMatch { public Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry Entry { get => throw null; set => throw null; } @@ -1032,7 +1133,7 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.Template.TemplateBinder TemplateBinder { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OutboundRouteEntry { public System.Collections.Generic.IDictionary Constraints { get => throw null; set => throw null; } @@ -1047,11 +1148,11 @@ namespace Microsoft public Microsoft.AspNetCore.Routing.Template.RouteTemplate RouteTemplate { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TreeRouteBuilder { - public Microsoft.AspNetCore.Routing.Tree.TreeRouter Build(int version) => throw null; public Microsoft.AspNetCore.Routing.Tree.TreeRouter Build() => throw null; + public Microsoft.AspNetCore.Routing.Tree.TreeRouter Build(int version) => throw null; public void Clear() => throw null; public System.Collections.Generic.IList InboundEntries { get => throw null; } public Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry MapInbound(Microsoft.AspNetCore.Routing.IRouter handler, Microsoft.AspNetCore.Routing.Template.RouteTemplate routeTemplate, string routeName, int order) => throw null; @@ -1059,7 +1160,7 @@ namespace Microsoft public System.Collections.Generic.IList OutboundEntries { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Tree.TreeRouter` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Tree.TreeRouter` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TreeRouter : Microsoft.AspNetCore.Routing.IRouter { public Microsoft.AspNetCore.Routing.VirtualPathData GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) => throw null; @@ -1068,7 +1169,7 @@ namespace Microsoft public int Version { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UrlMatchingNode { public Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode CatchAlls { get => throw null; set => throw null; } @@ -1082,7 +1183,7 @@ namespace Microsoft public UrlMatchingNode(int length) => throw null; } - // Generated from `Microsoft.AspNetCore.Routing.Tree.UrlMatchingTree` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Routing.Tree.UrlMatchingTree` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UrlMatchingTree { public int Order { get => throw null; } @@ -1097,11 +1198,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.RoutingServiceCollectionExtensions` in `Microsoft.AspNetCore.Routing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.RoutingServiceCollectionExtensions` in `Microsoft.AspNetCore.Routing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class RoutingServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddRouting(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) => throw null; 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 4ef927c7968..c65b797617f 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 @@ -6,11 +6,11 @@ namespace Microsoft { namespace Hosting { - // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderHttpSysExtensions` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderHttpSysExtensions` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class WebHostBuilderHttpSysExtensions { - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseHttpSys(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action options) => throw null; 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; } } @@ -18,7 +18,7 @@ namespace Microsoft { namespace HttpSys { - // Generated from `Microsoft.AspNetCore.Server.HttpSys.AuthenticationManager` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.AuthenticationManager` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticationManager { public bool AllowAnonymous { get => throw null; set => throw null; } @@ -27,7 +27,7 @@ namespace Microsoft public Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes Schemes { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` [System.Flags] public enum AuthenticationSchemes { @@ -38,7 +38,7 @@ namespace Microsoft None, } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.ClientCertificateMethod` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.ClientCertificateMethod` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ClientCertificateMethod { AllowCertificate, @@ -46,7 +46,7 @@ namespace Microsoft NoCertificate, } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.DelegationRule` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.DelegationRule` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DelegationRule : System.IDisposable { public void Dispose() => throw null; @@ -54,7 +54,7 @@ namespace Microsoft public string UrlPrefix { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.Http503VerbosityLevel` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.Http503VerbosityLevel` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum Http503VerbosityLevel { Basic, @@ -62,19 +62,19 @@ namespace Microsoft Limited, } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.HttpSysDefaults` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.HttpSysDefaults` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpSysDefaults { public const string AuthenticationScheme = default; } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.HttpSysException` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.HttpSysException` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpSysException : System.ComponentModel.Win32Exception { public override int ErrorCode { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpSysOptions { public bool AllowSynchronousIO { get => throw null; set => throw null; } @@ -91,29 +91,31 @@ namespace Microsoft public string RequestQueueName { get => throw null; set => throw null; } public bool ThrowWriteExceptions { get => throw null; set => throw null; } public Microsoft.AspNetCore.Server.HttpSys.TimeoutManager Timeouts { get => throw null; } + public bool UnsafePreferInlineScheduling { get => throw null; set => throw null; } public Microsoft.AspNetCore.Server.HttpSys.UrlPrefixCollection UrlPrefixes { get => throw null; } + public bool UseLatin1RequestHeaders { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.IHttpSysRequestDelegationFeature` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.IHttpSysRequestDelegationFeature` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpSysRequestDelegationFeature { bool CanDelegate { get; } void DelegateRequest(Microsoft.AspNetCore.Server.HttpSys.DelegationRule destination); } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.IHttpSysRequestInfoFeature` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.IHttpSysRequestInfoFeature` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpSysRequestInfoFeature { System.Collections.Generic.IReadOnlyDictionary> RequestInfo { get; } } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.IServerDelegationFeature` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.IServerDelegationFeature` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServerDelegationFeature { Microsoft.AspNetCore.Server.HttpSys.DelegationRule CreateDelegationRule(string queueName, string urlPrefix); } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.RequestQueueMode` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.RequestQueueMode` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum RequestQueueMode { Attach, @@ -121,7 +123,7 @@ namespace Microsoft CreateOrAttach, } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.TimeoutManager` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.TimeoutManager` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TimeoutManager { public System.TimeSpan DrainEntityBody { get => throw null; set => throw null; } @@ -132,12 +134,12 @@ namespace Microsoft public System.TimeSpan RequestQueue { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.UrlPrefix` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.HttpSys.UrlPrefix` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UrlPrefix { - 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 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 override bool Equals(object obj) => throw null; public string FullPrefix { get => throw null; } public override int GetHashCode() => throw null; @@ -150,11 +152,11 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Server.HttpSys.UrlPrefixCollection` in `Microsoft.AspNetCore.Server.HttpSys, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class UrlPrefixCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection + // Generated from `Microsoft.AspNetCore.Server.HttpSys.UrlPrefixCollection` in `Microsoft.AspNetCore.Server.HttpSys, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class UrlPrefixCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - public void Add(string prefix) => throw null; public void Add(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix item) => throw null; + public void Add(string prefix) => 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; @@ -162,8 +164,8 @@ 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(string prefix) => throw null; public bool Remove(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix item) => throw null; + public bool Remove(string prefix) => 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 99bdfe26543..a9b19618d7d 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 @@ -6,20 +6,21 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.IISServerOptions` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.IISServerOptions` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 IISServerOptions() => throw null; + public int MaxRequestBodyBufferSize { get => throw null; set => throw null; } public System.Int64? MaxRequestBodySize { get => throw null; set => throw null; } } } namespace Hosting { - // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderIISExtensions` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.Server.IISIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderIISExtensions` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.Server.IISIntegration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static partial class WebHostBuilderIISExtensions { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseIIS(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) => throw null; @@ -30,34 +31,34 @@ namespace Microsoft { namespace IIS { - // Generated from `Microsoft.AspNetCore.Server.IIS.BadHttpRequestException` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IIS.BadHttpRequestException` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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; } } - // Generated from `Microsoft.AspNetCore.Server.IIS.HttpContextExtensions` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IIS.HttpContextExtensions` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpContextExtensions { public static string GetIISServerVariable(this Microsoft.AspNetCore.Http.HttpContext context, string variableName) => throw null; } - // Generated from `Microsoft.AspNetCore.Server.IIS.IISServerDefaults` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IIS.IISServerDefaults` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IISServerDefaults { public const string AuthenticationScheme = default; public IISServerDefaults() => throw null; } - // Generated from `Microsoft.AspNetCore.Server.IIS.RequestRejectionReason` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IIS.RequestRejectionReason` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal enum RequestRejectionReason { } namespace Core { - // Generated from `Microsoft.AspNetCore.Server.IIS.Core.IISServerAuthenticationHandler` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IIS.Core.IISServerAuthenticationHandler` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IISServerAuthenticationHandler : Microsoft.AspNetCore.Authentication.IAuthenticationHandler { public System.Threading.Tasks.Task AuthenticateAsync() => throw null; @@ -67,7 +68,7 @@ namespace Microsoft public System.Threading.Tasks.Task InitializeAsync(Microsoft.AspNetCore.Authentication.AuthenticationScheme scheme, Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.Server.IIS.Core.ThrowingWasUpgradedWriteOnlyStream` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IIS.Core.ThrowingWasUpgradedWriteOnlyStream` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ThrowingWasUpgradedWriteOnlyStream : Microsoft.AspNetCore.Server.IIS.Core.WriteOnlyStream { public override void Flush() => throw null; @@ -78,7 +79,7 @@ namespace Microsoft public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `Microsoft.AspNetCore.Server.IIS.Core.WriteOnlyStream` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IIS.Core.WriteOnlyStream` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class WriteOnlyStream : System.IO.Stream { public override bool CanRead { get => 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 af4a4f5dde2..9ae689326b1 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.IISOptions` in `Microsoft.AspNetCore.Server.IISIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.IISOptions` in `Microsoft.AspNetCore.Server.IISIntegration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IISOptions { public string AuthenticationDisplayName { get => throw null; set => throw null; } @@ -18,7 +18,7 @@ namespace Microsoft } namespace Hosting { - // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderIISExtensions` in `Microsoft.AspNetCore.Server.IIS, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.Server.IISIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderIISExtensions` in `Microsoft.AspNetCore.Server.IIS, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.Server.IISIntegration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static partial class WebHostBuilderIISExtensions { public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseIISIntegration(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) => throw null; @@ -29,7 +29,7 @@ namespace Microsoft { namespace IISIntegration { - // Generated from `Microsoft.AspNetCore.Server.IISIntegration.IISDefaults` in `Microsoft.AspNetCore.Server.IISIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IISIntegration.IISDefaults` in `Microsoft.AspNetCore.Server.IISIntegration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IISDefaults { public const string AuthenticationScheme = default; @@ -38,18 +38,18 @@ namespace Microsoft public const string Ntlm = default; } - // Generated from `Microsoft.AspNetCore.Server.IISIntegration.IISHostingStartup` in `Microsoft.AspNetCore.Server.IISIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IISIntegration.IISHostingStartup` in `Microsoft.AspNetCore.Server.IISIntegration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IISHostingStartup : Microsoft.AspNetCore.Hosting.IHostingStartup { public void Configure(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) => throw null; public IISHostingStartup() => throw null; } - // Generated from `Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware` in `Microsoft.AspNetCore.Server.IISIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware` in `Microsoft.AspNetCore.Server.IISIntegration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IISMiddleware { - 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 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 549044d4243..82ae43eec4d 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 @@ -6,37 +6,38 @@ namespace Microsoft { namespace Hosting { - // Generated from `Microsoft.AspNetCore.Hosting.KestrelServerOptionsSystemdExtensions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.KestrelServerOptionsSystemdExtensions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class KestrelServerOptionsSystemdExtensions { - public static Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions UseSystemd(this Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions options, System.Action configure) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Hosting.ListenOptionsConnectionLoggingExtensions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.ListenOptionsConnectionLoggingExtensions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ListenOptionsConnectionLoggingExtensions { - public static Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions UseConnectionLogging(this Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions listenOptions, string loggerName) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Hosting.ListenOptionsHttpsExtensions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.ListenOptionsHttpsExtensions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ListenOptionsHttpsExtensions { - 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, 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) => 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, 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.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, 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) => 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.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, 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) => 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) => 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, 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; } } @@ -44,7 +45,7 @@ namespace Microsoft { namespace Kestrel { - // Generated from `Microsoft.AspNetCore.Server.Kestrel.EndpointConfiguration` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.EndpointConfiguration` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EndpointConfiguration { public Microsoft.Extensions.Configuration.IConfigurationSection ConfigSection { get => throw null; } @@ -53,38 +54,38 @@ namespace Microsoft public Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions ListenOptions { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class KestrelConfigurationLoader { - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader AnyIPEndpoint(int port, System.Action configure) => throw null; 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(string name, System.Action configureOptions) => 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(System.Net.IPEndPoint endPoint) => 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.IPAddress address, int port) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader HandleEndpoint(System.UInt64 handle, System.Action configure) => 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, System.Action configure) => 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, System.Action configure) => 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 { - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BadHttpRequestException : Microsoft.AspNetCore.Http.BadHttpRequestException { - 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; 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; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Http2Limits` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Http2Limits` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class Http2Limits { public int HeaderTableSize { get => throw null; set => throw null; } @@ -98,15 +99,14 @@ namespace Microsoft public int MaxStreamsPerConnection { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Http3Limits` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Http3Limits` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class Http3Limits { - public int HeaderTableSize { get => throw null; set => throw null; } public Http3Limits() => throw null; public int MaxRequestHeaderFieldSize { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` [System.Flags] public enum HttpProtocols { @@ -118,8 +118,8 @@ namespace Microsoft None, } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class KestrelServer : System.IDisposable, Microsoft.AspNetCore.Hosting.Server.IServer + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -129,7 +129,7 @@ namespace Microsoft public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerLimits` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerLimits` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class KestrelServerLimits { public Microsoft.AspNetCore.Server.Kestrel.Core.Http2Limits Http2 { get => throw null; } @@ -149,45 +149,49 @@ namespace Microsoft public System.TimeSpan RequestHeadersTimeout { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(Microsoft.Extensions.Configuration.IConfiguration config, bool reloadOnChange) => throw null; - public Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader Configure(Microsoft.Extensions.Configuration.IConfiguration config) => 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.IPEndPoint endPoint, System.Action configure) => throw null; - public void Listen(System.Net.IPEndPoint endPoint) => throw null; - public void Listen(System.Net.IPAddress address, int port, System.Action configure) => throw null; - public void Listen(System.Net.IPAddress address, int port) => throw null; - public void Listen(System.Net.EndPoint endPoint, System.Action configure) => throw null; public void Listen(System.Net.EndPoint endPoint) => throw null; - public void ListenAnyIP(int port, System.Action configure) => 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 ListenHandle(System.UInt64 handle, System.Action configure) => throw null; + public void ListenAnyIP(int port, System.Action configure) => throw null; public void ListenHandle(System.UInt64 handle) => throw null; - public void ListenLocalhost(int port, System.Action configure) => throw null; + public void ListenHandle(System.UInt64 handle, System.Action configure) => throw null; public void ListenLocalhost(int port) => throw null; - public void ListenUnixSocket(string socketPath, System.Action configure) => 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; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ListenOptions : Microsoft.AspNetCore.Connections.IConnectionBuilder + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -197,19 +201,21 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 { - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IConnectionTimeoutFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IConnectionTimeoutFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConnectionTimeoutFeature { void CancelTimeout(); @@ -217,31 +223,31 @@ namespace Microsoft void SetTimeout(System.TimeSpan timeSpan); } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IDecrementConcurrentConnectionCountFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IDecrementConcurrentConnectionCountFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDecrementConcurrentConnectionCountFeature { void ReleaseConnection(); } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttp2StreamIdFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttp2StreamIdFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttp2StreamIdFeature { int StreamId { get; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinRequestBodyDataRateFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinRequestBodyDataRateFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpMinRequestBodyDataRateFeature { Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinDataRate { get; set; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinResponseDataRateFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.IHttpMinResponseDataRateFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpMinResponseDataRateFeature { Microsoft.AspNetCore.Server.Kestrel.Core.MinDataRate MinDataRate { get; set; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.ITlsApplicationProtocolFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Features.ITlsApplicationProtocolFeature` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITlsApplicationProtocolFeature { System.ReadOnlyMemory ApplicationProtocol { get; } @@ -252,7 +258,7 @@ namespace Microsoft { namespace Http { - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum HttpMethod { Connect, @@ -268,16 +274,16 @@ namespace Microsoft Trace, } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpParser<>` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HttpParser where TRequestHandler : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpRequestLineHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpParser<>` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class HttpParser where TRequestHandler : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpRequestLineHandler { - public HttpParser(bool showErrorDetails) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpScheme` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpScheme` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum HttpScheme { Http, @@ -285,7 +291,7 @@ namespace Microsoft Unknown, } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersion` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum HttpVersion { Http10, @@ -295,49 +301,49 @@ namespace Microsoft Unknown, } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersionAndMethod` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpVersionAndMethod` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct HttpVersionAndMethod { - public HttpVersionAndMethod(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod method, int methodEnd) => throw null; // 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; } } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpHeadersHandler { void OnHeader(System.ReadOnlySpan name, System.ReadOnlySpan value); void OnHeadersComplete(bool endStream); - void OnStaticIndexedHeader(int index, System.ReadOnlySpan value); void OnStaticIndexedHeader(int index); + void OnStaticIndexedHeader(int index, System.ReadOnlySpan value); } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpParser<>` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - internal interface IHttpParser where TRequestHandler : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpRequestLineHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpParser<>` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + internal interface IHttpParser where TRequestHandler : Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpHeadersHandler, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpRequestLineHandler { } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpRequestLineHandler` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpRequestLineHandler` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal enum RequestRejectionReason { } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.TargetOffsetPathLength` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.TargetOffsetPathLength` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct TargetOffsetPathLength { public bool IsEncoded { get => throw null; } public int Length { get => throw null; } public int Offset { get => throw null; } - public TargetOffsetPathLength(int offset, int length, bool isEncoded) => throw null; // Stub generator skipped constructor + public TargetOffsetPathLength(int offset, int length, bool isEncoded) => throw null; } } @@ -345,21 +351,22 @@ namespace Microsoft } namespace Https { - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Https.CertificateLoader` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Https.CertificateLoader` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CertificateLoader { public static System.Security.Cryptography.X509Certificates.X509Certificate2 LoadFromStoreCert(string subject, string storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, bool allowInvalid) => throw null; } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Https.ClientCertificateMode` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Https.ClientCertificateMode` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ClientCertificateMode { AllowCertificate, + DelayCertificate, NoCertificate, RequireCertificate, } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionAdapterOptions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpsConnectionAdapterOptions { public void AllowAnyClientCertificate() => throw null; @@ -374,6 +381,27 @@ namespace Microsoft public System.Security.Authentication.SslProtocols SslProtocols { get => throw null; set => throw null; } } + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Https.TlsHandshakeCallbackContext` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 TlsHandshakeCallbackContext() => throw null; + } + + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Https.TlsHandshakeCallbackOptions` in `Microsoft.AspNetCore.Server.Kestrel.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + } } } 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 new file mode 100644 index 00000000000..979ffc7221f --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.cs @@ -0,0 +1,42 @@ +// This file contains auto-generated code. + +namespace Microsoft +{ + namespace AspNetCore + { + namespace Hosting + { + // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderQuicExtensions` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Quic, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static 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 + { + namespace Kestrel + { + namespace Transport + { + namespace Quic + { + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.QuicTransportOptions` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Quic, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class QuicTransportOptions + { + public int Backlog { get => throw null; set => throw null; } + public System.TimeSpan IdleTimeout { get => throw null; set => throw null; } + public System.UInt16 MaxBidirectionalStreamCount { get => throw null; set => throw null; } + public System.Int64? MaxReadBufferSize { get => throw null; set => throw null; } + public System.UInt16 MaxUnidirectionalStreamCount { get => throw null; set => throw null; } + public System.Int64? MaxWriteBufferSize { get => throw null; set => throw null; } + public QuicTransportOptions() => throw null; + } + + } + } + } + } + } +} 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 18a8daecf9e..5c3c77a5b97 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 @@ -6,11 +6,11 @@ namespace Microsoft { namespace Hosting { - // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderSocketExtensions` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderSocketExtensions` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class WebHostBuilderSocketExtensions { - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSockets(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder, System.Action configureOptions) => throw null; 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; } } @@ -22,17 +22,38 @@ namespace Microsoft { namespace Sockets { - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionContextFactory` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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; + } + + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionFactoryOptions` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } + } + + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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; } - // Generated from `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions` in `Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SocketTransportOptions { public int Backlog { get => throw null; set => throw null; } + public System.Func CreateBoundListenSocket { get => throw null; set => throw null; } + 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; } 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 b1fde7a08e7..71b47d54f4b 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 @@ -6,14 +6,14 @@ namespace Microsoft { namespace Hosting { - // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderKestrelExtensions` in `Microsoft.AspNetCore.Server.Kestrel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Hosting.WebHostBuilderKestrelExtensions` in `Microsoft.AspNetCore.Server.Kestrel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseKestrel(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) => throw null; 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; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseKestrel(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) => 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 94dc082fa4c..4daf5ac5360 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 @@ -6,14 +6,14 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.SessionMiddlewareExtensions` in `Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.SessionMiddlewareExtensions` in `Microsoft.AspNetCore.Session, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class SessionMiddlewareExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseSession(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.SessionOptions options) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.SessionOptions` in `Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.SessionOptions` in `Microsoft.AspNetCore.Session, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SessionOptions { public Microsoft.AspNetCore.Http.CookieBuilder Cookie { get => throw null; set => throw null; } @@ -25,7 +25,7 @@ namespace Microsoft } namespace Session { - // Generated from `Microsoft.AspNetCore.Session.DistributedSession` in `Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Session.DistributedSession` in `Microsoft.AspNetCore.Session, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DistributedSession : Microsoft.AspNetCore.Http.ISession { public void Clear() => throw null; @@ -40,34 +40,34 @@ namespace Microsoft public bool TryGetValue(string key, out System.Byte[] value) => throw null; } - // Generated from `Microsoft.AspNetCore.Session.DistributedSessionStore` in `Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Session.DistributedSessionStore` in `Microsoft.AspNetCore.Session, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Session.ISessionStore` in `Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Session.ISessionStore` in `Microsoft.AspNetCore.Session, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISessionStore { Microsoft.AspNetCore.Http.ISession Create(string sessionKey, System.TimeSpan idleTimeout, System.TimeSpan ioTimeout, System.Func tryEstablishSession, bool isNewSessionKey); } - // Generated from `Microsoft.AspNetCore.Session.SessionDefaults` in `Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Session.SessionDefaults` in `Microsoft.AspNetCore.Session, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class SessionDefaults { public static string CookieName; public static string CookiePath; } - // Generated from `Microsoft.AspNetCore.Session.SessionFeature` in `Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Session.SessionFeature` in `Microsoft.AspNetCore.Session, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SessionFeature : Microsoft.AspNetCore.Http.Features.ISessionFeature { public Microsoft.AspNetCore.Http.ISession Session { get => throw null; set => throw null; } public SessionFeature() => throw null; } - // Generated from `Microsoft.AspNetCore.Session.SessionMiddleware` in `Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Session.SessionMiddleware` in `Microsoft.AspNetCore.Session, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SessionMiddleware { public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; @@ -80,11 +80,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.SessionServiceCollectionExtensions` in `Microsoft.AspNetCore.Session, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.SessionServiceCollectionExtensions` in `Microsoft.AspNetCore.Session, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class SessionServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSession(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; 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 ed6c71b061a..65af8652b83 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 @@ -6,16 +6,16 @@ namespace Microsoft { namespace SignalR { - // Generated from `Microsoft.AspNetCore.SignalR.HubException` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubException` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HubException : System.Exception { - public HubException(string message, System.Exception innerException) => throw null; - public HubException(string message) => throw null; - public HubException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.SignalR.IInvocationBinder` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IInvocationBinder` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IInvocationBinder { System.Collections.Generic.IReadOnlyList GetParameterTypes(string methodName); @@ -23,7 +23,7 @@ namespace Microsoft System.Type GetStreamItemType(string streamId); } - // Generated from `Microsoft.AspNetCore.SignalR.ISignalRBuilder` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.ISignalRBuilder` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISignalRBuilder { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } @@ -31,23 +31,23 @@ namespace Microsoft namespace Protocol { - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.CancelInvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.CancelInvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CancelInvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { public CancelInvocationMessage(string invocationId) : base(default(string)) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.CloseMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.CloseMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CloseMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public bool AllowReconnect { get => throw null; } - public CloseMessage(string error, bool allowReconnect) => 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 string Error { get => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompletionMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { public CompletionMessage(string invocationId, string error, object result, bool hasResult) : base(default(string)) => throw null; @@ -60,7 +60,7 @@ namespace Microsoft public static Microsoft.AspNetCore.SignalR.Protocol.CompletionMessage WithResult(string invocationId, object payload) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HandshakeProtocol { public static System.ReadOnlySpan GetSuccessfulHandshake(Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol protocol) => throw null; @@ -70,7 +70,7 @@ namespace Microsoft public static void WriteResponseMessage(Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage responseMessage, System.Buffers.IBufferWriter output) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HandshakeRequestMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HandshakeRequestMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public HandshakeRequestMessage(string protocol, int version) => throw null; @@ -78,7 +78,7 @@ namespace Microsoft public int Version { get => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HandshakeResponseMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public static Microsoft.AspNetCore.SignalR.Protocol.HandshakeResponseMessage Empty; @@ -86,7 +86,7 @@ namespace Microsoft public HandshakeResponseMessage(string error) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class HubInvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public System.Collections.Generic.IDictionary Headers { get => throw null; set => throw null; } @@ -94,23 +94,23 @@ namespace Microsoft public string InvocationId { get => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class HubMessage { protected HubMessage() => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class HubMethodInvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { public object[] Arguments { get => 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; + protected HubMethodInvocationMessage(string invocationId, string target, object[] arguments, string[] streamIds) : base(default(string)) => throw null; public string[] StreamIds { get => throw null; } public string Target { get => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubProtocolConstants` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HubProtocolConstants { public const int CancelInvocationMessageType = default; @@ -122,13 +122,13 @@ namespace Microsoft public const int StreamItemMessageType = default; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubProtocolExtensions` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.HubProtocolExtensions` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HubProtocolExtensions { public static System.Byte[] GetMessageBytes(this Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol hubProtocol, Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubProtocol { System.ReadOnlyMemory GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message); @@ -140,7 +140,7 @@ namespace Microsoft void WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter output); } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.InvocationBindingFailureMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.InvocationBindingFailureMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InvocationBindingFailureMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { public System.Runtime.ExceptionServices.ExceptionDispatchInfo BindingFailure { get => throw null; } @@ -148,22 +148,22 @@ namespace Microsoft public string Target { get => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.InvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.InvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage { public InvocationMessage(string target, object[] arguments) : base(default(string), default(string), default(object[])) => throw null; - public InvocationMessage(string invocationId, string target, object[] arguments, string[] streamIds) : base(default(string), default(string), default(object[])) => throw null; public InvocationMessage(string invocationId, string target, object[] arguments) : base(default(string), default(string), default(object[])) => throw null; + 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; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.PingMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.PingMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PingMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public static Microsoft.AspNetCore.SignalR.Protocol.PingMessage Instance; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.StreamBindingFailureMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.StreamBindingFailureMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StreamBindingFailureMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMessage { public System.Runtime.ExceptionServices.ExceptionDispatchInfo BindingFailure { get => throw null; } @@ -171,18 +171,18 @@ namespace Microsoft public StreamBindingFailureMessage(string id, System.Runtime.ExceptionServices.ExceptionDispatchInfo bindingFailure) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.StreamInvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.StreamInvocationMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StreamInvocationMessage : Microsoft.AspNetCore.SignalR.Protocol.HubMethodInvocationMessage { - public StreamInvocationMessage(string invocationId, string target, object[] arguments, string[] streamIds) : base(default(string), default(string), default(object[])) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.StreamItemMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.StreamItemMessage` in `Microsoft.AspNetCore.SignalR.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StreamItemMessage : Microsoft.AspNetCore.SignalR.Protocol.HubInvocationMessage { - public object Item { get => throw null; } + public object Item { get => throw null; set => throw null; } public StreamItemMessage(string invocationId, object item) : base(default(string)) => throw null; 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 5182626beb7..44ffcf4361c 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 @@ -6,23 +6,23 @@ namespace Microsoft { namespace SignalR { - // Generated from `Microsoft.AspNetCore.SignalR.ClientProxyExtensions` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.ClientProxyExtensions` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ClientProxyExtensions { - 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 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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; } - // Generated from `Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.DefaultHubLifetimeManager<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -41,21 +41,21 @@ namespace Microsoft public override System.Threading.Tasks.Task SendUsersAsync(System.Collections.Generic.IReadOnlyList userIds, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.DefaultUserIdProvider` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.DefaultUserIdProvider` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultUserIdProvider : Microsoft.AspNetCore.SignalR.IUserIdProvider { public DefaultUserIdProvider() => throw null; public virtual string GetUserId(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.DynamicHub` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.DynamicHub` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class DynamicHub : Microsoft.AspNetCore.SignalR.Hub { public Microsoft.AspNetCore.SignalR.DynamicHubClients Clients { get => throw null; set => throw null; } protected DynamicHub() => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.DynamicHubClients` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.DynamicHubClients` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DynamicHubClients { public dynamic All { get => throw null; } @@ -73,7 +73,7 @@ namespace Microsoft public dynamic Users(System.Collections.Generic.IReadOnlyList userIds) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.Hub` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Hub` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class Hub : System.IDisposable { public Microsoft.AspNetCore.SignalR.IHubCallerClients Clients { get => throw null; set => throw null; } @@ -86,14 +86,14 @@ namespace Microsoft public virtual System.Threading.Tasks.Task OnDisconnectedAsync(System.Exception exception) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.Hub<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Hub<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class Hub : Microsoft.AspNetCore.SignalR.Hub where T : class { public Microsoft.AspNetCore.SignalR.IHubCallerClients Clients { get => throw null; set => throw null; } protected Hub() => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.HubCallerContext` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubCallerContext` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class HubCallerContext { public abstract void Abort(); @@ -106,57 +106,57 @@ namespace Microsoft public abstract string UserIdentifier { get; } } - // Generated from `Microsoft.AspNetCore.SignalR.HubClientsExtensions` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubClientsExtensions` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HubClientsExtensions { - 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 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) => throw null; - public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5) => throw null; - public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4) => throw null; - public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3) => 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) => 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, string connection2, string connection3, string connection4, string connection5, string connection6, string connection7, string connection8) => 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) => throw null; - public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2, string connection3, string connection4, string connection5) => throw null; - public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2, string connection3, string connection4) => throw null; - public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2, string connection3) => 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) => 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; + public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4) => throw null; + public static T AllExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5) => throw null; + 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 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 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) => throw null; - public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5) => throw null; - public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4) => throw null; - public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3) => 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) => 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; + public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2, string connection3, string connection4) => throw null; + public static T Clients(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string connection1, string connection2, string connection3, string connection4, string connection5) => throw null; + 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 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 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) => throw null; - public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2, string group3, string group4, string group5) => throw null; - public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2, string group3, string group4) => throw null; - public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2, string group3) => 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) => 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; + public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4) => throw null; + public static T GroupExcept(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string groupName, string excludedConnectionId1, string excludedConnectionId2, string excludedConnectionId3, string excludedConnectionId4, string excludedConnectionId5) => 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) => 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 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, 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) => throw null; - public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2, string user3, string user4, string user5) => throw null; - public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2, string user3, string user4) => throw null; - public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2, string user3) => 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) => 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; + public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2, string group3, string group4) => throw null; + public static T Groups(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string group1, string group2, string group3, string group4, string group5) => throw null; + 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 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; + public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2, string user3, string user4) => throw null; + public static T Users(this Microsoft.AspNetCore.SignalR.IHubClients hubClients, string user1, string user2, string user3, string user4, string user5) => throw null; + 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; } - // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionContext` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionContext` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HubConnectionContext { public virtual void Abort() => throw null; @@ -168,11 +168,11 @@ namespace Microsoft public virtual Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol Protocol { get => throw null; set => throw null; } public virtual System.Security.Claims.ClaimsPrincipal User { get => throw null; } public string UserIdentifier { get => throw null; set => 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 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; } - // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionContextOptions` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionContextOptions` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HubConnectionContextOptions { public System.TimeSpan ClientTimeoutInterval { get => throw null; set => throw null; } @@ -183,43 +183,42 @@ namespace Microsoft public int StreamBufferCapacity { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionHandler<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionHandler<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionStore` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionStore` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HubConnectionStore { - public void Add(Microsoft.AspNetCore.SignalR.HubConnectionContext connection) => throw null; - public int Count { get => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionStore+Enumerator` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + // Generated from `Microsoft.AspNetCore.SignalR.HubConnectionStore+Enumerator` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public Microsoft.AspNetCore.SignalR.HubConnectionContext Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - public Enumerator(Microsoft.AspNetCore.SignalR.HubConnectionStore hubConnectionList) => 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; } - // Generated from `Microsoft.AspNetCore.SignalR.HubInvocationContext` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubInvocationContext` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, string hubMethodName, object[] hubMethodArguments) => 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 System.Reflection.MethodInfo HubMethod { get => throw null; } public System.Collections.Generic.IReadOnlyList HubMethodArguments { get => throw null; } @@ -227,7 +226,7 @@ namespace Microsoft public System.IServiceProvider ServiceProvider { get => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.HubLifetimeContext` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubLifetimeContext` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HubLifetimeContext { public Microsoft.AspNetCore.SignalR.HubCallerContext Context { get => throw null; } @@ -236,7 +235,7 @@ namespace Microsoft public System.IServiceProvider ServiceProvider { get => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.HubLifetimeManager<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubLifetimeManager<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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)); @@ -255,21 +254,21 @@ namespace Microsoft public abstract System.Threading.Tasks.Task SendUsersAsync(System.Collections.Generic.IReadOnlyList userIds, string methodName, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.AspNetCore.SignalR.HubMetadata` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubMetadata` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HubMetadata { public HubMetadata(System.Type hubType) => throw null; public System.Type HubType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.HubMethodNameAttribute` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubMethodNameAttribute` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HubMethodNameAttribute : System.Attribute { public HubMethodNameAttribute(string name) => throw null; public string Name { get => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.HubOptions` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubOptions` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HubOptions { public System.TimeSpan? ClientTimeoutInterval { get => throw null; set => throw null; } @@ -283,60 +282,60 @@ namespace Microsoft public System.Collections.Generic.IList SupportedProtocols { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.SignalR.HubOptions<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubOptions<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HubOptions : Microsoft.AspNetCore.SignalR.HubOptions where THub : Microsoft.AspNetCore.SignalR.Hub { public HubOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.HubOptionsExtensions` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubOptionsExtensions` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HubOptionsExtensions { - 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 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; } - // Generated from `Microsoft.AspNetCore.SignalR.HubOptionsSetup` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubOptionsSetup` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.SignalR.HubOptionsSetup<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.HubOptionsSetup<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.SignalR.IClientProxy` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IClientProxy` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IClientProxy { System.Threading.Tasks.Task SendCoreAsync(string method, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.AspNetCore.SignalR.IGroupManager` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IGroupManager` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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)); } - // Generated from `Microsoft.AspNetCore.SignalR.IHubActivator<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IHubActivator<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubActivator where THub : Microsoft.AspNetCore.SignalR.Hub { THub Create(); void Release(THub hub); } - // Generated from `Microsoft.AspNetCore.SignalR.IHubCallerClients` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IHubCallerClients : Microsoft.AspNetCore.SignalR.IHubClients, Microsoft.AspNetCore.SignalR.IHubCallerClients + // Generated from `Microsoft.AspNetCore.SignalR.IHubCallerClients` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IHubCallerClients : Microsoft.AspNetCore.SignalR.IHubCallerClients, Microsoft.AspNetCore.SignalR.IHubClients { } - // Generated from `Microsoft.AspNetCore.SignalR.IHubCallerClients<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IHubCallerClients<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubCallerClients : Microsoft.AspNetCore.SignalR.IHubClients { T Caller { get; } @@ -344,12 +343,12 @@ namespace Microsoft T OthersInGroup(string groupName); } - // Generated from `Microsoft.AspNetCore.SignalR.IHubClients` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IHubClients` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubClients : Microsoft.AspNetCore.SignalR.IHubClients { } - // Generated from `Microsoft.AspNetCore.SignalR.IHubClients<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IHubClients<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubClients { T All { get; } @@ -363,21 +362,28 @@ namespace Microsoft T Users(System.Collections.Generic.IReadOnlyList userIds); } - // Generated from `Microsoft.AspNetCore.SignalR.IHubContext<,>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IHubContext` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IHubContext + { + Microsoft.AspNetCore.SignalR.IHubClients Clients { get; } + Microsoft.AspNetCore.SignalR.IGroupManager Groups { get; } + } + + // Generated from `Microsoft.AspNetCore.SignalR.IHubContext<,>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubContext where T : class where THub : Microsoft.AspNetCore.SignalR.Hub { Microsoft.AspNetCore.SignalR.IHubClients Clients { get; } Microsoft.AspNetCore.SignalR.IGroupManager Groups { get; } } - // Generated from `Microsoft.AspNetCore.SignalR.IHubContext<>` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IHubContext<>` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubContext where THub : Microsoft.AspNetCore.SignalR.Hub { Microsoft.AspNetCore.SignalR.IHubClients Clients { get; } Microsoft.AspNetCore.SignalR.IGroupManager Groups { get; } } - // Generated from `Microsoft.AspNetCore.SignalR.IHubFilter` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IHubFilter` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubFilter { System.Threading.Tasks.ValueTask InvokeMethodAsync(Microsoft.AspNetCore.SignalR.HubInvocationContext invocationContext, System.Func> next) => throw null; @@ -385,43 +391,43 @@ namespace Microsoft System.Threading.Tasks.Task OnDisconnectedAsync(Microsoft.AspNetCore.SignalR.HubLifetimeContext context, System.Exception exception, System.Func next) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.IHubProtocolResolver` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IHubProtocolResolver` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubProtocolResolver { System.Collections.Generic.IReadOnlyList AllProtocols { get; } Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol GetProtocol(string protocolName, System.Collections.Generic.IReadOnlyList supportedProtocols); } - // Generated from `Microsoft.AspNetCore.SignalR.ISignalRServerBuilder` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.ISignalRServerBuilder` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISignalRServerBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder { } - // Generated from `Microsoft.AspNetCore.SignalR.IUserIdProvider` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.IUserIdProvider` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IUserIdProvider { string GetUserId(Microsoft.AspNetCore.SignalR.HubConnectionContext connection); } - // Generated from `Microsoft.AspNetCore.SignalR.SerializedHubMessage` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.SerializedHubMessage` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(System.Collections.Generic.IReadOnlyList messages) => throw null; public SerializedHubMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) => throw null; + public SerializedHubMessage(System.Collections.Generic.IReadOnlyList messages) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.SerializedMessage` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.SerializedMessage` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct SerializedMessage { public string ProtocolName { get => throw null; } public System.ReadOnlyMemory Serialized { get => throw null; } - public SerializedMessage(string protocolName, System.ReadOnlyMemory serialized) => throw null; // Stub generator skipped constructor + public SerializedMessage(string protocolName, System.ReadOnlyMemory serialized) => throw null; } - // Generated from `Microsoft.AspNetCore.SignalR.SignalRConnectionBuilderExtensions` in `Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.SignalRConnectionBuilderExtensions` in `Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class SignalRConnectionBuilderExtensions { public static Microsoft.AspNetCore.Connections.IConnectionBuilder UseHub(this Microsoft.AspNetCore.Connections.IConnectionBuilder connectionBuilder) where THub : Microsoft.AspNetCore.SignalR.Hub => throw null; @@ -433,7 +439,7 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions` in `Microsoft.AspNetCore.SignalR, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions` in `Microsoft.AspNetCore.SignalR, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static partial class SignalRDependencyInjectionExtensions { 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 5960cbf8742..de932678c6a 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace SignalR { - // Generated from `Microsoft.AspNetCore.SignalR.JsonHubProtocolOptions` in `Microsoft.AspNetCore.SignalR.Protocols.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.JsonHubProtocolOptions` in `Microsoft.AspNetCore.SignalR.Protocols.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class JsonHubProtocolOptions { public JsonHubProtocolOptions() => throw null; @@ -15,13 +15,13 @@ namespace Microsoft namespace Protocol { - // Generated from `Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol` in `Microsoft.AspNetCore.SignalR.Protocols.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol` in `Microsoft.AspNetCore.SignalR.Protocols.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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(Microsoft.Extensions.Options.IOptions options) => throw null; public JsonHubProtocol() => throw null; + public JsonHubProtocol(Microsoft.Extensions.Options.IOptions options) => 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; @@ -36,11 +36,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.JsonProtocolDependencyInjectionExtensions` in `Microsoft.AspNetCore.SignalR.Protocols.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.JsonProtocolDependencyInjectionExtensions` in `Microsoft.AspNetCore.SignalR.Protocols.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class JsonProtocolDependencyInjectionExtensions { - public static TBuilder AddJsonProtocol(this TBuilder builder, System.Action configure) where TBuilder : Microsoft.AspNetCore.SignalR.ISignalRBuilder => throw null; 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 e6f4630be20..aa92dae4ff4 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,20 +6,20 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.HubEndpointConventionBuilder` in `Microsoft.AspNetCore.SignalR, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HubEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IEndpointConventionBuilder + // Generated from `Microsoft.AspNetCore.Builder.HubEndpointConventionBuilder` in `Microsoft.AspNetCore.SignalR, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class HubEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder, Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder { public void Add(System.Action convention) => throw null; } - // Generated from `Microsoft.AspNetCore.Builder.HubEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.SignalR, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.HubEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.SignalR, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HubEndpointRouteBuilderExtensions { - 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 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; } - // Generated from `Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder` in `Microsoft.AspNetCore.SignalR, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.IHubEndpointConventionBuilder` in `Microsoft.AspNetCore.SignalR, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHubEndpointConventionBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { } @@ -27,11 +27,11 @@ namespace Microsoft } namespace SignalR { - // Generated from `Microsoft.AspNetCore.SignalR.GetHttpContextExtensions` in `Microsoft.AspNetCore.SignalR, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.SignalR.GetHttpContextExtensions` in `Microsoft.AspNetCore.SignalR, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class GetHttpContextExtensions { - public static Microsoft.AspNetCore.Http.HttpContext GetHttpContext(this Microsoft.AspNetCore.SignalR.HubConnectionContext connection) => throw null; 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; } } @@ -40,12 +40,12 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions` in `Microsoft.AspNetCore.SignalR, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.SignalR.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.SignalRDependencyInjectionExtensions` in `Microsoft.AspNetCore.SignalR, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.AspNetCore.SignalR.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static partial class SignalRDependencyInjectionExtensions { public static Microsoft.AspNetCore.SignalR.ISignalRServerBuilder AddHubOptions(this Microsoft.AspNetCore.SignalR.ISignalRServerBuilder signalrBuilder, System.Action> configure) where THub : Microsoft.AspNetCore.SignalR.Hub => throw null; - public static Microsoft.AspNetCore.SignalR.ISignalRServerBuilder AddSignalR(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; 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 0aea51b394d..4b68bca97bf 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 @@ -6,48 +6,48 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.DefaultFilesExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.DefaultFilesExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DefaultFilesExtensions { - 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 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; } - // Generated from `Microsoft.AspNetCore.Builder.DefaultFilesOptions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.DefaultFilesOptions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultFilesOptions : Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase { public System.Collections.Generic.IList DefaultFileNames { get => throw null; set => throw null; } - public DefaultFilesOptions(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => 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; } - // Generated from `Microsoft.AspNetCore.Builder.DirectoryBrowserExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.DirectoryBrowserExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DirectoryBrowserExtensions { - 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 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; } - // Generated from `Microsoft.AspNetCore.Builder.DirectoryBrowserOptions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.DirectoryBrowserOptions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DirectoryBrowserOptions : Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase { - public DirectoryBrowserOptions(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; 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; } } - // Generated from `Microsoft.AspNetCore.Builder.FileServerExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.FileServerExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class FileServerExtensions { - 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, bool enableDirectoryBrowsing) => 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) => 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; } - // Generated from `Microsoft.AspNetCore.Builder.FileServerOptions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.FileServerOptions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileServerOptions : Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase { public Microsoft.AspNetCore.Builder.DefaultFilesOptions DefaultFilesOptions { get => throw null; } @@ -58,15 +58,15 @@ namespace Microsoft public Microsoft.AspNetCore.Builder.StaticFileOptions StaticFileOptions { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Builder.StaticFileExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.StaticFileExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class StaticFileExtensions { - 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 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; } - // Generated from `Microsoft.AspNetCore.Builder.StaticFileOptions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.StaticFileOptions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StaticFileOptions : Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase { public Microsoft.AspNetCore.StaticFiles.IContentTypeProvider ContentTypeProvider { get => throw null; set => throw null; } @@ -74,30 +74,30 @@ namespace Microsoft 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 StaticFileOptions(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) : base(default(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions)) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.StaticFilesEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.StaticFilesEndpointRouteBuilderExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class StaticFilesEndpointRouteBuilderExtensions { - public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToFile(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, 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 filePath, Microsoft.AspNetCore.Builder.StaticFileOptions options) => throw null; 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 { - // Generated from `Microsoft.AspNetCore.StaticFiles.DefaultFilesMiddleware` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.DefaultFilesMiddleware` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultFilesMiddleware { 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; } - // Generated from `Microsoft.AspNetCore.StaticFiles.DirectoryBrowserMiddleware` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.DirectoryBrowserMiddleware` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -105,53 +105,52 @@ namespace Microsoft public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) => throw null; } - // Generated from `Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileExtensionContentTypeProvider : Microsoft.AspNetCore.StaticFiles.IContentTypeProvider { - public FileExtensionContentTypeProvider(System.Collections.Generic.IDictionary mapping) => throw null; public FileExtensionContentTypeProvider() => throw null; + public FileExtensionContentTypeProvider(System.Collections.Generic.IDictionary mapping) => throw null; public System.Collections.Generic.IDictionary Mappings { get => throw null; } public bool TryGetContentType(string subpath, out string contentType) => throw null; } - // Generated from `Microsoft.AspNetCore.StaticFiles.HtmlDirectoryFormatter` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.HtmlDirectoryFormatter` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.StaticFiles.IContentTypeProvider` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.IContentTypeProvider` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IContentTypeProvider { bool TryGetContentType(string subpath, out string contentType); } - // Generated from `Microsoft.AspNetCore.StaticFiles.IDirectoryFormatter` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.IDirectoryFormatter` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDirectoryFormatter { System.Threading.Tasks.Task GenerateContentAsync(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IEnumerable contents); } - // Generated from `Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; - public StaticFileResponseContext() => throw null; } namespace Infrastructure { - // Generated from `Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SharedOptions { public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set => throw null; } @@ -160,7 +159,7 @@ namespace Microsoft public SharedOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class SharedOptionsBase { public Microsoft.Extensions.FileProviders.IFileProvider FileProvider { get => throw null; set => throw null; } @@ -177,7 +176,7 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.DirectoryBrowserServiceExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.DirectoryBrowserServiceExtensions` in `Microsoft.AspNetCore.StaticFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 227429209ab..abcc6d38188 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 @@ -6,14 +6,14 @@ namespace Microsoft { namespace Builder { - // Generated from `Microsoft.AspNetCore.Builder.WebSocketMiddlewareExtensions` in `Microsoft.AspNetCore.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.WebSocketMiddlewareExtensions` in `Microsoft.AspNetCore.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class WebSocketMiddlewareExtensions { - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseWebSockets(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.WebSocketOptions options) => throw null; 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; } - // Generated from `Microsoft.AspNetCore.Builder.WebSocketOptions` in `Microsoft.AspNetCore.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Builder.WebSocketOptions` in `Microsoft.AspNetCore.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WebSocketOptions { public System.Collections.Generic.IList AllowedOrigins { get => throw null; } @@ -25,7 +25,7 @@ namespace Microsoft } namespace WebSockets { - // Generated from `Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext` in `Microsoft.AspNetCore.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext` in `Microsoft.AspNetCore.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ExtendedWebSocketAcceptContext : Microsoft.AspNetCore.Http.WebSocketAcceptContext { public ExtendedWebSocketAcceptContext() => throw null; @@ -34,14 +34,14 @@ namespace Microsoft public override string SubProtocol { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.WebSockets.WebSocketMiddleware` in `Microsoft.AspNetCore.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebSockets.WebSocketMiddleware` in `Microsoft.AspNetCore.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.WebSockets.WebSocketsDependencyInjectionExtensions` in `Microsoft.AspNetCore.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebSockets.WebSocketsDependencyInjectionExtensions` in `Microsoft.AspNetCore.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 ed62ebb803f..1b3b474f451 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 @@ -6,34 +6,35 @@ namespace Microsoft { namespace WebUtilities { - // Generated from `Microsoft.AspNetCore.WebUtilities.Base64UrlTextEncoder` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.Base64UrlTextEncoder` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class Base64UrlTextEncoder { public static System.Byte[] Decode(string text) => throw null; public static string Encode(System.Byte[] data) => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.BufferedReadStream` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.BufferedReadStream` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BufferedReadStream : System.IO.Stream { public System.ArraySegment BufferedData { get => throw null; } - public BufferedReadStream(System.IO.Stream inner, int bufferSize, System.Buffers.ArrayPool bytePool) => 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 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; } protected override void Dispose(bool disposing) => throw null; - public bool EnsureBuffered(int minCount) => throw null; public bool EnsureBuffered() => throw null; - public System.Threading.Tasks.Task EnsureBufferedAsync(int minCount, System.Threading.CancellationToken cancellationToken) => throw null; + public bool EnsureBuffered(int minCount) => throw null; public System.Threading.Tasks.Task EnsureBufferedAsync(System.Threading.CancellationToken cancellationToken) => throw null; + 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 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; @@ -42,7 +43,7 @@ namespace Microsoft public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileBufferingReadStream : System.IO.Stream { public override bool CanRead { get => throw null; } @@ -51,19 +52,20 @@ namespace Microsoft 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 FileBufferingReadStream(System.IO.Stream inner, int memoryThreshold, System.Int64? bufferLimit, string tempFileDirectory, 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, System.Func tempFileDirectoryAccessor, System.Buffers.ArrayPool bytePool) => 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) => 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 int MemoryThreshold { get => throw null; } public override System.Int64 Position { get => throw null; set => throw null; } - public override int Read(System.Span buffer) => throw null; public override int Read(System.Byte[] buffer, int offset, 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(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 string TempFileName { get => throw null; } @@ -71,7 +73,7 @@ namespace Microsoft public override System.Threading.Tasks.Task WriteAsync(System.Byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileBufferingWriteStream : System.IO.Stream { public override bool CanRead { get => throw null; } @@ -79,12 +81,13 @@ namespace Microsoft 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 System.Threading.Tasks.Task DrainBufferAsync(System.IO.Stream destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => 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 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 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; @@ -92,52 +95,53 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.WebUtilities.FileMultipartSection` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.FileMultipartSection` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileMultipartSection { - public FileMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection section, Microsoft.Net.Http.Headers.ContentDispositionHeaderValue header) => throw null; public FileMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; + public FileMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection section, Microsoft.Net.Http.Headers.ContentDispositionHeaderValue header) => throw null; public string FileName { get => throw null; } public System.IO.Stream FileStream { get => throw null; } public string Name { get => throw null; } public Microsoft.AspNetCore.WebUtilities.MultipartSection Section { get => throw null; } } - // Generated from `Microsoft.AspNetCore.WebUtilities.FormMultipartSection` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.FormMultipartSection` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FormMultipartSection { - public FormMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection section, Microsoft.Net.Http.Headers.ContentDispositionHeaderValue header) => throw null; public FormMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; + public FormMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection section, Microsoft.Net.Http.Headers.ContentDispositionHeaderValue header) => throw null; public System.Threading.Tasks.Task GetValueAsync() => throw null; public string Name { get => throw null; } public Microsoft.AspNetCore.WebUtilities.MultipartSection Section { get => throw null; } } - // Generated from `Microsoft.AspNetCore.WebUtilities.FormPipeReader` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.FormPipeReader` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FormPipeReader { - public FormPipeReader(System.IO.Pipelines.PipeReader pipeReader, System.Text.Encoding encoding) => throw null; 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 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; } } - // Generated from `Microsoft.AspNetCore.WebUtilities.FormReader` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.FormReader` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, System.Buffers.ArrayPool charPool) => throw null; - public FormReader(string data) => throw null; - public FormReader(System.IO.Stream stream, System.Text.Encoding encoding, System.Buffers.ArrayPool charPool) => throw null; - public FormReader(System.IO.Stream stream, System.Text.Encoding encoding) => 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 System.Collections.Generic.Dictionary ReadForm() => throw null; public System.Threading.Tasks.Task> ReadFormAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; @@ -147,25 +151,25 @@ namespace Microsoft public int ValueLengthLimit { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpRequestStreamReader : System.IO.TextReader { protected override void Dispose(bool disposing) => 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) => 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 override int Peek() => throw null; - public override int Read(System.Span buffer) => throw null; - public override int Read(System.Char[] buffer, int index, int count) => throw null; public override int Read() => 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(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 string ReadLine() => throw null; public override System.Threading.Tasks.Task ReadLineAsync() => throw null; public override System.Threading.Tasks.Task ReadToEndAsync() => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpResponseStreamWriter : System.IO.TextWriter { protected override void Dispose(bool disposing) => throw null; @@ -173,22 +177,22 @@ namespace Microsoft 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, int bufferSize, System.Buffers.ArrayPool bytePool, System.Buffers.ArrayPool charPool) => 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) => throw null; - public override void Write(string value) => throw null; - public override void Write(System.ReadOnlySpan value) => 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 System.Threading.Tasks.Task WriteAsync(string 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 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(string value) => 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; } - // Generated from `Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct KeyValueAccumulator { public void Append(string key, string value) => throw null; @@ -199,7 +203,7 @@ namespace Microsoft public int ValueCount { get => throw null; } } - // Generated from `Microsoft.AspNetCore.WebUtilities.MultipartReader` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.MultipartReader` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MultipartReader { public System.Int64? BodyLengthLimit { get => throw null; set => throw null; } @@ -207,12 +211,12 @@ namespace Microsoft public const int DefaultHeadersLengthLimit = default; public int HeadersCountLimit { get => throw null; set => throw null; } public int HeadersLengthLimit { get => throw null; set => throw null; } - public MultipartReader(string boundary, System.IO.Stream stream, int bufferSize) => throw null; public MultipartReader(string boundary, System.IO.Stream stream) => throw null; + public MultipartReader(string boundary, System.IO.Stream stream, int bufferSize) => throw null; public System.Threading.Tasks.Task ReadNextSectionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.MultipartSection` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.MultipartSection` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MultipartSection { public System.Int64? BaseStreamOffset { get => throw null; set => throw null; } @@ -223,7 +227,7 @@ namespace Microsoft public MultipartSection() => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.MultipartSectionConverterExtensions` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.MultipartSectionConverterExtensions` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MultipartSectionConverterExtensions { public static Microsoft.AspNetCore.WebUtilities.FileMultipartSection AsFileSection(this Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; @@ -231,47 +235,76 @@ namespace Microsoft public static Microsoft.Net.Http.Headers.ContentDispositionHeaderValue GetContentDispositionHeader(this Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.MultipartSectionStreamExtensions` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.MultipartSectionStreamExtensions` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MultipartSectionStreamExtensions { public static System.Threading.Tasks.Task ReadAsStringAsync(this Microsoft.AspNetCore.WebUtilities.MultipartSection section) => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.QueryHelpers` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.QueryHelpers` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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.IEnumerable> 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.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; } - // Generated from `Microsoft.AspNetCore.WebUtilities.ReasonPhrases` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.QueryStringEnumerable` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct QueryStringEnumerable + { + // Generated from `Microsoft.AspNetCore.WebUtilities.QueryStringEnumerable+EncodedNameValuePair` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } + } + + + // Generated from `Microsoft.AspNetCore.WebUtilities.QueryStringEnumerable+Enumerator` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.WebUtilities.ReasonPhrases` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ReasonPhrases { public static string GetReasonPhrase(int statusCode) => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, System.Buffers.ArrayPool bytePool, System.Int64? limit, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `Microsoft.AspNetCore.WebUtilities.WebEncoders` in `Microsoft.AspNetCore.WebUtilities, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebUtilities.WebEncoders` in `Microsoft.AspNetCore.WebUtilities, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class WebEncoders { - public static System.Byte[] Base64UrlDecode(string input, int offset, int count) => 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) => throw null; - public static string Base64UrlEncode(System.ReadOnlySpan input) => throw null; - public static string Base64UrlEncode(System.Byte[] input, int offset, int count) => 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 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 4b284708216..c0af0af75b4 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 @@ -4,26 +4,111 @@ namespace Microsoft { namespace AspNetCore { - // Generated from `Microsoft.AspNetCore.WebHost` in `Microsoft.AspNetCore, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.WebHost` in `Microsoft.AspNetCore, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class WebHost { - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder(string[] args) where TStartup : class => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder(string[] args) => throw null; public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateDefaultBuilder() => 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.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 StartWith(string url, System.Action 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 + { + // Generated from `Microsoft.AspNetCore.Builder.ConfigureHostBuilder` in `Microsoft.AspNetCore, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ConfigureHostBuilder : Microsoft.AspNetCore.Hosting.Infrastructure.ISupportsConfigureWebHost, Microsoft.Extensions.Hosting.IHostBuilder + { + Microsoft.Extensions.Hosting.IHost Microsoft.Extensions.Hosting.IHostBuilder.Build() => throw null; + public Microsoft.Extensions.Hosting.IHostBuilder ConfigureAppConfiguration(System.Action configureDelegate) => throw null; + public Microsoft.Extensions.Hosting.IHostBuilder ConfigureContainer(System.Action configureDelegate) => throw null; + public Microsoft.Extensions.Hosting.IHostBuilder ConfigureHostConfiguration(System.Action configureDelegate) => throw null; + 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; + } + + // Generated from `Microsoft.AspNetCore.Builder.ConfigureWebHostBuilder` in `Microsoft.AspNetCore, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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 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; + } + + // Generated from `Microsoft.AspNetCore.Builder.WebApplication` in `Microsoft.AspNetCore, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class WebApplication : Microsoft.AspNetCore.Builder.IApplicationBuilder, Microsoft.AspNetCore.Routing.IEndpointRouteBuilder, Microsoft.Extensions.Hosting.IHost, System.IAsyncDisposable, System.IDisposable + { + System.IServiceProvider Microsoft.AspNetCore.Builder.IApplicationBuilder.ApplicationServices { get => throw null; set => throw null; } + 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; + Microsoft.AspNetCore.Builder.IApplicationBuilder Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.CreateApplicationBuilder() => throw null; + public static Microsoft.AspNetCore.Builder.WebApplicationBuilder CreateBuilder() => throw null; + public static Microsoft.AspNetCore.Builder.WebApplicationBuilder CreateBuilder(string[] args) => throw null; + public static Microsoft.AspNetCore.Builder.WebApplicationBuilder CreateBuilder(Microsoft.AspNetCore.Builder.WebApplicationOptions options) => throw null; + System.Collections.Generic.ICollection Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.DataSources { get => throw null; } + void System.IDisposable.Dispose() => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public Microsoft.AspNetCore.Hosting.IWebHostEnvironment Environment { get => throw null; } + public Microsoft.Extensions.Hosting.IHostApplicationLifetime Lifetime { get => throw null; } + public Microsoft.Extensions.Logging.ILogger Logger { get => throw null; } + Microsoft.AspNetCore.Builder.IApplicationBuilder Microsoft.AspNetCore.Builder.IApplicationBuilder.New() => throw null; + System.Collections.Generic.IDictionary Microsoft.AspNetCore.Builder.IApplicationBuilder.Properties { get => throw null; } + public void Run(string url = default(string)) => throw null; + public System.Threading.Tasks.Task RunAsync(string url = default(string)) => throw null; + Microsoft.AspNetCore.Http.Features.IFeatureCollection Microsoft.AspNetCore.Builder.IApplicationBuilder.ServerFeatures { get => throw null; } + System.IServiceProvider Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.ServiceProvider { get => throw null; } + public System.IServiceProvider Services { get => throw null; } + public System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.ICollection Urls { get => throw null; } + Microsoft.AspNetCore.Builder.IApplicationBuilder Microsoft.AspNetCore.Builder.IApplicationBuilder.Use(System.Func middleware) => throw null; + } + + // Generated from `Microsoft.AspNetCore.Builder.WebApplicationBuilder` in `Microsoft.AspNetCore, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class WebApplicationBuilder + { + public Microsoft.AspNetCore.Builder.WebApplication Build() => throw null; + public Microsoft.Extensions.Configuration.ConfigurationManager Configuration { get => throw null; } + public Microsoft.AspNetCore.Hosting.IWebHostEnvironment Environment { get => throw null; } + public Microsoft.AspNetCore.Builder.ConfigureHostBuilder Host { get => throw null; } + public Microsoft.Extensions.Logging.ILoggingBuilder Logging { get => throw null; } + public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => throw null; } + public Microsoft.AspNetCore.Builder.ConfigureWebHostBuilder WebHost { get => throw null; } + } + + // Generated from `Microsoft.AspNetCore.Builder.WebApplicationOptions` in `Microsoft.AspNetCore, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 WebApplicationOptions() => throw null; + public string WebRootPath { get => throw null; set => throw null; } + } + + } } namespace Extensions { namespace Hosting { - // Generated from `Microsoft.Extensions.Hosting.GenericHostBuilderExtensions` in `Microsoft.AspNetCore, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.GenericHostBuilderExtensions` in `Microsoft.AspNetCore, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class GenericHostBuilderExtensions { public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureWebHostDefaults(this Microsoft.Extensions.Hosting.IHostBuilder builder, System.Action configure) => 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 bd270b12d78..02572ca5233 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 @@ -8,15 +8,15 @@ namespace Microsoft { namespace Distributed { - // Generated from `Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DistributedCacheEntryExtensions { - 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 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; } - // Generated from `Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DistributedCacheEntryOptions { public System.DateTimeOffset? AbsoluteExpiration { get => throw null; set => throw null; } @@ -25,20 +25,20 @@ namespace Microsoft public System.TimeSpan? SlidingExpiration { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Distributed.DistributedCacheExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 SetString(this Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string key, string value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions options) => 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; } - // Generated from `Microsoft.Extensions.Caching.Distributed.IDistributedCache` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Distributed.IDistributedCache` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IDistributedCache { System.Byte[] Get(string key); @@ -54,14 +54,14 @@ namespace Microsoft } namespace Memory { - // Generated from `Microsoft.Extensions.Caching.Memory.CacheEntryExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.CacheEntryExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, object state) => 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; - 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 RegisterPostEvictionCallback(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, Microsoft.Extensions.Caching.Memory.PostEvictionDelegate callback, object state) => throw null; public static Microsoft.Extensions.Caching.Memory.ICacheEntry SetAbsoluteExpiration(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, System.DateTimeOffset absolute) => throw null; + 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; @@ -69,22 +69,22 @@ namespace Microsoft public static Microsoft.Extensions.Caching.Memory.ICacheEntry SetValue(this Microsoft.Extensions.Caching.Memory.ICacheEntry entry, object value) => throw null; } - // Generated from `Microsoft.Extensions.Caching.Memory.CacheExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.CacheExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, System.TimeSpan absoluteExpirationRelativeToNow) => 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) => 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; } - // Generated from `Microsoft.Extensions.Caching.Memory.CacheItemPriority` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.CacheItemPriority` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum CacheItemPriority { High, @@ -93,7 +93,7 @@ namespace Microsoft Normal, } - // Generated from `Microsoft.Extensions.Caching.Memory.EvictionReason` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.EvictionReason` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum EvictionReason { Capacity, @@ -104,7 +104,7 @@ namespace Microsoft TokenExpired, } - // Generated from `Microsoft.Extensions.Caching.Memory.ICacheEntry` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.ICacheEntry` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ICacheEntry : System.IDisposable { System.DateTimeOffset? AbsoluteExpiration { get; set; } @@ -118,7 +118,7 @@ namespace Microsoft object Value { get; set; } } - // Generated from `Microsoft.Extensions.Caching.Memory.IMemoryCache` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.IMemoryCache` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IMemoryCache : System.IDisposable { Microsoft.Extensions.Caching.Memory.ICacheEntry CreateEntry(object key); @@ -126,20 +126,20 @@ namespace Microsoft bool TryGetValue(object key, out object value); } - // Generated from `Microsoft.Extensions.Caching.Memory.MemoryCacheEntryExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.MemoryCacheEntryExtensions` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, object state) => 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; - 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 RegisterPostEvictionCallback(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, Microsoft.Extensions.Caching.Memory.PostEvictionDelegate callback, object state) => throw null; 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 SetSlidingExpiration(this Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions options, System.TimeSpan offset) => throw null; } - // Generated from `Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MemoryCacheEntryOptions { public System.DateTimeOffset? AbsoluteExpiration { get => throw null; set => throw null; } @@ -152,7 +152,7 @@ namespace Microsoft public System.TimeSpan? SlidingExpiration { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Caching.Memory.PostEvictionCallbackRegistration` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.PostEvictionCallbackRegistration` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PostEvictionCallbackRegistration { public Microsoft.Extensions.Caching.Memory.PostEvictionDelegate EvictionCallback { get => throw null; set => throw null; } @@ -160,20 +160,20 @@ namespace Microsoft public object State { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Caching.Memory.PostEvictionDelegate` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.PostEvictionDelegate` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate void PostEvictionDelegate(object key, object value, Microsoft.Extensions.Caching.Memory.EvictionReason reason, object state); } } namespace Internal { - // Generated from `Microsoft.Extensions.Internal.ISystemClock` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Internal.ISystemClock` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISystemClock { System.DateTimeOffset UtcNow { get; } } - // Generated from `Microsoft.Extensions.Internal.SystemClock` in `Microsoft.Extensions.Caching.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Internal.SystemClock` in `Microsoft.Extensions.Caching.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SystemClock : Microsoft.Extensions.Internal.ISystemClock { public SystemClock() => 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 d7c91d4f302..f029be7013f 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 @@ -8,13 +8,13 @@ namespace Microsoft { namespace Distributed { - // Generated from `Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache` in `Microsoft.Extensions.Caching.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Distributed.MemoryDistributedCache` in `Microsoft.Extensions.Caching.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => 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 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; @@ -26,22 +26,22 @@ namespace Microsoft } namespace Memory { - // Generated from `Microsoft.Extensions.Caching.Memory.MemoryCache` in `Microsoft.Extensions.Caching.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MemoryCache : System.IDisposable, Microsoft.Extensions.Caching.Memory.IMemoryCache + // Generated from `Microsoft.Extensions.Caching.Memory.MemoryCache` in `Microsoft.Extensions.Caching.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MemoryCache : Microsoft.Extensions.Caching.Memory.IMemoryCache, System.IDisposable { 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 void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public MemoryCache(Microsoft.Extensions.Options.IOptions optionsAccessor, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => 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 } - // Generated from `Microsoft.Extensions.Caching.Memory.MemoryCacheOptions` in `Microsoft.Extensions.Caching.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.MemoryCacheOptions` in `Microsoft.Extensions.Caching.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MemoryCacheOptions : Microsoft.Extensions.Options.IOptions { public Microsoft.Extensions.Internal.ISystemClock Clock { get => throw null; set => throw null; } @@ -52,7 +52,7 @@ namespace Microsoft Microsoft.Extensions.Caching.Memory.MemoryCacheOptions Microsoft.Extensions.Options.IOptions.Value { get => throw null; } } - // Generated from `Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions` in `Microsoft.Extensions.Caching.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions` in `Microsoft.Extensions.Caching.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MemoryDistributedCacheOptions : Microsoft.Extensions.Caching.Memory.MemoryCacheOptions { public MemoryDistributedCacheOptions() => throw null; @@ -62,13 +62,13 @@ namespace Microsoft } namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions` in `Microsoft.Extensions.Caching.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions` in `Microsoft.Extensions.Caching.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MemoryCacheServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDistributedMemoryCache(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDistributedMemoryCache(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; + 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 050e22acb3b..3e565035cc6 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 @@ -6,33 +6,41 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.ConfigurationExtensions` in `Microsoft.Extensions.Configuration.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ConfigurationExtensions` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, bool makePathsRelative) => throw null; public static System.Collections.Generic.IEnumerable> AsEnumerable(this Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; + public static System.Collections.Generic.IEnumerable> AsEnumerable(this Microsoft.Extensions.Configuration.IConfiguration configuration, bool makePathsRelative) => throw null; public static bool Exists(this Microsoft.Extensions.Configuration.IConfigurationSection section) => throw null; 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; } - // Generated from `Microsoft.Extensions.Configuration.ConfigurationPath` in `Microsoft.Extensions.Configuration.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ConfigurationKeyNameAttribute` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ConfigurationKeyNameAttribute : System.Attribute + { + public ConfigurationKeyNameAttribute(string name) => throw null; + public string Name { get => throw null; } + } + + // Generated from `Microsoft.Extensions.Configuration.ConfigurationPath` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ConfigurationPath { - public static string Combine(params string[] pathSegments) => throw null; public static string Combine(System.Collections.Generic.IEnumerable pathSegments) => throw null; + 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; } - // Generated from `Microsoft.Extensions.Configuration.ConfigurationRootExtensions` in `Microsoft.Extensions.Configuration.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ConfigurationRootExtensions` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ConfigurationRootExtensions { public static string GetDebugView(this Microsoft.Extensions.Configuration.IConfigurationRoot root) => throw null; } - // Generated from `Microsoft.Extensions.Configuration.IConfiguration` in `Microsoft.Extensions.Configuration.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.IConfiguration` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConfiguration { System.Collections.Generic.IEnumerable GetChildren(); @@ -41,7 +49,7 @@ namespace Microsoft string this[string key] { get; set; } } - // Generated from `Microsoft.Extensions.Configuration.IConfigurationBuilder` in `Microsoft.Extensions.Configuration.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.IConfigurationBuilder` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConfigurationBuilder { Microsoft.Extensions.Configuration.IConfigurationBuilder Add(Microsoft.Extensions.Configuration.IConfigurationSource source); @@ -50,7 +58,7 @@ namespace Microsoft System.Collections.Generic.IList Sources { get; } } - // Generated from `Microsoft.Extensions.Configuration.IConfigurationProvider` in `Microsoft.Extensions.Configuration.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.IConfigurationProvider` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConfigurationProvider { System.Collections.Generic.IEnumerable GetChildKeys(System.Collections.Generic.IEnumerable earlierKeys, string parentPath); @@ -60,14 +68,14 @@ namespace Microsoft bool TryGet(string key, out string value); } - // Generated from `Microsoft.Extensions.Configuration.IConfigurationRoot` in `Microsoft.Extensions.Configuration.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.IConfigurationRoot` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConfigurationRoot : Microsoft.Extensions.Configuration.IConfiguration { System.Collections.Generic.IEnumerable Providers { get; } void Reload(); } - // Generated from `Microsoft.Extensions.Configuration.IConfigurationSection` in `Microsoft.Extensions.Configuration.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.IConfigurationSection` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConfigurationSection : Microsoft.Extensions.Configuration.IConfiguration { string Key { get; } @@ -75,7 +83,7 @@ namespace Microsoft string Value { get; set; } } - // Generated from `Microsoft.Extensions.Configuration.IConfigurationSource` in `Microsoft.Extensions.Configuration.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.IConfigurationSource` in `Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 aeaae3d3b6f..812d09413ee 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 @@ -6,29 +6,45 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.BinderOptions` in `Microsoft.Extensions.Configuration.Binder, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.BinderOptions` in `Microsoft.Extensions.Configuration.Binder, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class BinderOptions { public bool BindNonPublicProperties { get => throw null; set => throw null; } public BinderOptions() => throw null; + public bool ErrorOnUnknownConfiguration { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Configuration.ConfigurationBinder` in `Microsoft.Extensions.Configuration.Binder, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ConfigurationBinder` in `Microsoft.Extensions.Configuration.Binder, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ConfigurationBinder { - public static void Bind(this Microsoft.Extensions.Configuration.IConfiguration configuration, string key, object instance) => throw null; - public static void Bind(this Microsoft.Extensions.Configuration.IConfiguration configuration, object instance, System.Action configureOptions) => throw null; public static void Bind(this Microsoft.Extensions.Configuration.IConfiguration configuration, object instance) => throw null; - public static object Get(this Microsoft.Extensions.Configuration.IConfiguration configuration, System.Type type, System.Action configureOptions) => throw null; + public static void Bind(this Microsoft.Extensions.Configuration.IConfiguration configuration, object instance, System.Action configureOptions) => throw null; + public static void Bind(this Microsoft.Extensions.Configuration.IConfiguration configuration, string key, object instance) => throw null; public static object Get(this Microsoft.Extensions.Configuration.IConfiguration configuration, System.Type type) => throw null; - public static T Get(this Microsoft.Extensions.Configuration.IConfiguration configuration, System.Action configureOptions) => throw null; + public static object Get(this Microsoft.Extensions.Configuration.IConfiguration configuration, System.Type type, System.Action configureOptions) => throw null; public static T Get(this Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; - public static object GetValue(this Microsoft.Extensions.Configuration.IConfiguration configuration, System.Type type, string key, object defaultValue) => throw null; + public static T Get(this Microsoft.Extensions.Configuration.IConfiguration configuration, System.Action configureOptions) => throw null; public static object GetValue(this Microsoft.Extensions.Configuration.IConfiguration configuration, System.Type type, string key) => throw null; - public static T GetValue(this Microsoft.Extensions.Configuration.IConfiguration configuration, string key, T defaultValue) => throw null; + public static object GetValue(this Microsoft.Extensions.Configuration.IConfiguration configuration, System.Type type, string key, object defaultValue) => throw null; 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; } } } } +namespace System +{ + namespace Diagnostics + { + namespace CodeAnalysis + { + /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Configuration.Binder, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Configuration.Binder, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'RequiresUnreferencedCodeAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Configuration.Binder, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + } + } +} 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 c40d785d463..2ef4bf5e895 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 @@ -6,17 +6,17 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.CommandLineConfigurationExtensions` in `Microsoft.Extensions.Configuration.CommandLine, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.CommandLineConfigurationExtensions` in `Microsoft.Extensions.Configuration.CommandLine, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class CommandLineConfigurationExtensions { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddCommandLine(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, string[] args, System.Collections.Generic.IDictionary switchMappings) => 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 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 { - // Generated from `Microsoft.Extensions.Configuration.CommandLine.CommandLineConfigurationProvider` in `Microsoft.Extensions.Configuration.CommandLine, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.CommandLine.CommandLineConfigurationProvider` in `Microsoft.Extensions.Configuration.CommandLine, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CommandLineConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider { protected System.Collections.Generic.IEnumerable Args { get => throw null; } @@ -24,7 +24,7 @@ namespace Microsoft public override void Load() => throw null; } - // Generated from `Microsoft.Extensions.Configuration.CommandLine.CommandLineConfigurationSource` in `Microsoft.Extensions.Configuration.CommandLine, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.CommandLine.CommandLineConfigurationSource` in `Microsoft.Extensions.Configuration.CommandLine, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CommandLineConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public System.Collections.Generic.IEnumerable Args { get => throw null; set => 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 1dc9bc72c93..fb82427659e 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 @@ -6,25 +6,26 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.EnvironmentVariablesExtensions` in `Microsoft.Extensions.Configuration.EnvironmentVariables, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.EnvironmentVariablesExtensions` in `Microsoft.Extensions.Configuration.EnvironmentVariables, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EnvironmentVariablesExtensions { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddEnvironmentVariables(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, string prefix) => throw null; 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 { - // Generated from `Microsoft.Extensions.Configuration.EnvironmentVariables.EnvironmentVariablesConfigurationProvider` in `Microsoft.Extensions.Configuration.EnvironmentVariables, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.EnvironmentVariables.EnvironmentVariablesConfigurationProvider` in `Microsoft.Extensions.Configuration.EnvironmentVariables, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EnvironmentVariablesConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider { - public EnvironmentVariablesConfigurationProvider(string prefix) => throw null; public EnvironmentVariablesConfigurationProvider() => throw null; + public EnvironmentVariablesConfigurationProvider(string prefix) => throw null; public override void Load() => throw null; + public override string ToString() => throw null; } - // Generated from `Microsoft.Extensions.Configuration.EnvironmentVariables.EnvironmentVariablesConfigurationSource` in `Microsoft.Extensions.Configuration.EnvironmentVariables, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.EnvironmentVariables.EnvironmentVariablesConfigurationSource` in `Microsoft.Extensions.Configuration.EnvironmentVariables, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EnvironmentVariablesConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => 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 9ab249e6c74..50b21452fc6 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.FileConfigurationExtensions` in `Microsoft.Extensions.Configuration.FileExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.FileConfigurationExtensions` in `Microsoft.Extensions.Configuration.FileExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class FileConfigurationExtensions { public static System.Action GetFileLoadExceptionHandler(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; @@ -16,7 +16,7 @@ namespace Microsoft public static Microsoft.Extensions.Configuration.IConfigurationBuilder SetFileProvider(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider fileProvider) => throw null; } - // Generated from `Microsoft.Extensions.Configuration.FileConfigurationProvider` in `Microsoft.Extensions.Configuration.FileExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.FileConfigurationProvider` in `Microsoft.Extensions.Configuration.FileExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class FileConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider, System.IDisposable { public void Dispose() => throw null; @@ -28,7 +28,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.Extensions.Configuration.FileConfigurationSource` in `Microsoft.Extensions.Configuration.FileExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.FileConfigurationSource` in `Microsoft.Extensions.Configuration.FileExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class FileConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public abstract Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder); @@ -43,7 +43,7 @@ namespace Microsoft public void ResolveFileProvider() => throw null; } - // Generated from `Microsoft.Extensions.Configuration.FileLoadExceptionContext` in `Microsoft.Extensions.Configuration.FileExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.FileLoadExceptionContext` in `Microsoft.Extensions.Configuration.FileExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileLoadExceptionContext { public System.Exception Exception { get => throw null; set => throw null; } 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 30646542d31..45549101d20 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 @@ -6,34 +6,34 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.IniConfigurationExtensions` in `Microsoft.Extensions.Configuration.Ini, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.IniConfigurationExtensions` in `Microsoft.Extensions.Configuration.Ini, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class IniConfigurationExtensions { - 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 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) => 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, 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 { - // Generated from `Microsoft.Extensions.Configuration.Ini.IniConfigurationProvider` in `Microsoft.Extensions.Configuration.Ini, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Ini.IniConfigurationProvider` in `Microsoft.Extensions.Configuration.Ini, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IniConfigurationProvider : Microsoft.Extensions.Configuration.FileConfigurationProvider { 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; } - // Generated from `Microsoft.Extensions.Configuration.Ini.IniConfigurationSource` in `Microsoft.Extensions.Configuration.Ini, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Ini.IniConfigurationSource` in `Microsoft.Extensions.Configuration.Ini, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.Configuration.Ini.IniStreamConfigurationProvider` in `Microsoft.Extensions.Configuration.Ini, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Ini.IniStreamConfigurationProvider` in `Microsoft.Extensions.Configuration.Ini, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IniStreamConfigurationProvider : Microsoft.Extensions.Configuration.StreamConfigurationProvider { public IniStreamConfigurationProvider(Microsoft.Extensions.Configuration.Ini.IniStreamConfigurationSource source) : base(default(Microsoft.Extensions.Configuration.StreamConfigurationSource)) => throw null; @@ -41,7 +41,7 @@ namespace Microsoft public static System.Collections.Generic.IDictionary Read(System.IO.Stream stream) => throw null; } - // Generated from `Microsoft.Extensions.Configuration.Ini.IniStreamConfigurationSource` in `Microsoft.Extensions.Configuration.Ini, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Ini.IniStreamConfigurationSource` in `Microsoft.Extensions.Configuration.Ini, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IniStreamConfigurationSource : Microsoft.Extensions.Configuration.StreamConfigurationSource { public override Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => 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 7d6c71f1a77..732cdf75dda 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 @@ -6,41 +6,41 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.JsonConfigurationExtensions` in `Microsoft.Extensions.Configuration.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.JsonConfigurationExtensions` in `Microsoft.Extensions.Configuration.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class JsonConfigurationExtensions { - 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 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) => 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, 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 { - // Generated from `Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider` in `Microsoft.Extensions.Configuration.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider` in `Microsoft.Extensions.Configuration.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class JsonConfigurationProvider : Microsoft.Extensions.Configuration.FileConfigurationProvider { 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; } - // Generated from `Microsoft.Extensions.Configuration.Json.JsonConfigurationSource` in `Microsoft.Extensions.Configuration.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Json.JsonConfigurationSource` in `Microsoft.Extensions.Configuration.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.Configuration.Json.JsonStreamConfigurationProvider` in `Microsoft.Extensions.Configuration.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Json.JsonStreamConfigurationProvider` in `Microsoft.Extensions.Configuration.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.Configuration.Json.JsonStreamConfigurationSource` in `Microsoft.Extensions.Configuration.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Json.JsonStreamConfigurationSource` in `Microsoft.Extensions.Configuration.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class JsonStreamConfigurationSource : Microsoft.Extensions.Configuration.StreamConfigurationSource { public override Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => 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 21485926773..92c2850f211 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 @@ -6,18 +6,18 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.KeyPerFileConfigurationBuilderExtensions` in `Microsoft.Extensions.Configuration.KeyPerFile, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.KeyPerFileConfigurationBuilderExtensions` in `Microsoft.Extensions.Configuration.KeyPerFile, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class KeyPerFileConfigurationBuilderExtensions { - 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, string directoryPath, bool optional) => 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, 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 { - // Generated from `Microsoft.Extensions.Configuration.KeyPerFile.KeyPerFileConfigurationProvider` in `Microsoft.Extensions.Configuration.KeyPerFile, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.KeyPerFile.KeyPerFileConfigurationProvider` in `Microsoft.Extensions.Configuration.KeyPerFile, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class KeyPerFileConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider, System.IDisposable { public void Dispose() => throw null; @@ -26,7 +26,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.Extensions.Configuration.KeyPerFile.KeyPerFileConfigurationSource` in `Microsoft.Extensions.Configuration.KeyPerFile, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.KeyPerFile.KeyPerFileConfigurationSource` in `Microsoft.Extensions.Configuration.KeyPerFile, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class KeyPerFileConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; @@ -37,6 +37,7 @@ namespace Microsoft 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; } } } 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 067488007a8..b1c3fb8f20c 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 @@ -6,29 +6,29 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.UserSecretsConfigurationExtensions` in `Microsoft.Extensions.Configuration.UserSecrets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.UserSecretsConfigurationExtensions` in `Microsoft.Extensions.Configuration.UserSecrets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class UserSecretsConfigurationExtensions { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, bool optional, bool reloadOnChange) where T : class => throw null; - 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) where T : class => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, string userSecretsId, bool reloadOnChange) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, string userSecretsId) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, System.Reflection.Assembly assembly, bool optional, bool reloadOnChange) => throw null; - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, System.Reflection.Assembly assembly, bool optional) => throw null; 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; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, System.Reflection.Assembly assembly, bool optional, bool reloadOnChange) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, string userSecretsId) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration, string userSecretsId, bool reloadOnChange) => throw null; + public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddUserSecrets(this Microsoft.Extensions.Configuration.IConfigurationBuilder configuration) where T : class => throw null; + 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 { - // Generated from `Microsoft.Extensions.Configuration.UserSecrets.PathHelper` in `Microsoft.Extensions.Configuration.UserSecrets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.UserSecrets.PathHelper` in `Microsoft.Extensions.Configuration.UserSecrets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PathHelper { public static string GetSecretsPathFromSecretsId(string userSecretsId) => throw null; public PathHelper() => throw null; } - // Generated from `Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute` in `Microsoft.Extensions.Configuration.UserSecrets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute` in `Microsoft.Extensions.Configuration.UserSecrets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UserSecretsIdAttribute : System.Attribute { public string UserSecretsId { get => 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 b0db5c9b87a..213b2d1e24e 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 @@ -6,34 +6,34 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.XmlConfigurationExtensions` in `Microsoft.Extensions.Configuration.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.XmlConfigurationExtensions` in `Microsoft.Extensions.Configuration.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class XmlConfigurationExtensions { - 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 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) => 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, 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 { - // Generated from `Microsoft.Extensions.Configuration.Xml.XmlConfigurationProvider` in `Microsoft.Extensions.Configuration.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Xml.XmlConfigurationProvider` in `Microsoft.Extensions.Configuration.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.Configuration.Xml.XmlConfigurationSource` in `Microsoft.Extensions.Configuration.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Xml.XmlConfigurationSource` in `Microsoft.Extensions.Configuration.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor` in `Microsoft.Extensions.Configuration.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor` in `Microsoft.Extensions.Configuration.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class XmlDocumentDecryptor { public System.Xml.XmlReader CreateDecryptingXmlReader(System.IO.Stream input, System.Xml.XmlReaderSettings settings) => throw null; @@ -42,7 +42,7 @@ namespace Microsoft protected XmlDocumentDecryptor() => throw null; } - // Generated from `Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationProvider` in `Microsoft.Extensions.Configuration.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationProvider` in `Microsoft.Extensions.Configuration.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class XmlStreamConfigurationProvider : Microsoft.Extensions.Configuration.StreamConfigurationProvider { public override void Load(System.IO.Stream stream) => throw null; @@ -50,7 +50,7 @@ namespace Microsoft public XmlStreamConfigurationProvider(Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationSource source) : base(default(Microsoft.Extensions.Configuration.StreamConfigurationSource)) => throw null; } - // Generated from `Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationSource` in `Microsoft.Extensions.Configuration.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationSource` in `Microsoft.Extensions.Configuration.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class XmlStreamConfigurationSource : Microsoft.Extensions.Configuration.StreamConfigurationSource { public override Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => 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 5312dd998f6..9ccfc052940 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 @@ -6,15 +6,15 @@ namespace Microsoft { namespace Configuration { - // Generated from `Microsoft.Extensions.Configuration.ChainedBuilderExtensions` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ChainedBuilderExtensions` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ChainedBuilderExtensions { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddConfiguration(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, Microsoft.Extensions.Configuration.IConfiguration config, bool shouldDisposeConfiguration) => throw null; 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; } - // Generated from `Microsoft.Extensions.Configuration.ChainedConfigurationProvider` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ChainedConfigurationProvider : System.IDisposable, Microsoft.Extensions.Configuration.IConfigurationProvider + // Generated from `Microsoft.Extensions.Configuration.ChainedConfigurationProvider` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ChainedConfigurationProvider : Microsoft.Extensions.Configuration.IConfigurationProvider, System.IDisposable { public ChainedConfigurationProvider(Microsoft.Extensions.Configuration.ChainedConfigurationSource source) => throw null; public void Dispose() => throw null; @@ -25,7 +25,7 @@ namespace Microsoft public bool TryGet(string key, out string value) => throw null; } - // Generated from `Microsoft.Extensions.Configuration.ChainedConfigurationSource` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ChainedConfigurationSource` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ChainedConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => throw null; @@ -34,7 +34,7 @@ namespace Microsoft public bool ShouldDisposeConfiguration { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Configuration.ConfigurationBuilder` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ConfigurationBuilder` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConfigurationBuilder : Microsoft.Extensions.Configuration.IConfigurationBuilder { public Microsoft.Extensions.Configuration.IConfigurationBuilder Add(Microsoft.Extensions.Configuration.IConfigurationSource source) => throw null; @@ -44,7 +44,7 @@ namespace Microsoft public System.Collections.Generic.IList Sources { get => throw null; } } - // Generated from `Microsoft.Extensions.Configuration.ConfigurationKeyComparer` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ConfigurationKeyComparer` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConfigurationKeyComparer : System.Collections.Generic.IComparer { public int Compare(string x, string y) => throw null; @@ -52,7 +52,24 @@ namespace Microsoft public static Microsoft.Extensions.Configuration.ConfigurationKeyComparer Instance { get => throw null; } } - // Generated from `Microsoft.Extensions.Configuration.ConfigurationProvider` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ConfigurationManager` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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; + public ConfigurationManager() => throw null; + public void Dispose() => throw null; + 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; + System.Collections.Generic.IList Microsoft.Extensions.Configuration.IConfigurationBuilder.Sources { get => throw null; } + } + + // Generated from `Microsoft.Extensions.Configuration.ConfigurationProvider` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ConfigurationProvider : Microsoft.Extensions.Configuration.IConfigurationProvider { protected ConfigurationProvider() => throw null; @@ -66,7 +83,7 @@ namespace Microsoft public virtual bool TryGet(string key, out string value) => throw null; } - // Generated from `Microsoft.Extensions.Configuration.ConfigurationReloadToken` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.ConfigurationReloadToken` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConfigurationReloadToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } @@ -76,8 +93,8 @@ namespace Microsoft public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; } - // Generated from `Microsoft.Extensions.Configuration.ConfigurationRoot` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConfigurationRoot : System.IDisposable, Microsoft.Extensions.Configuration.IConfigurationRoot, Microsoft.Extensions.Configuration.IConfiguration + // Generated from `Microsoft.Extensions.Configuration.ConfigurationRoot` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ConfigurationRoot : Microsoft.Extensions.Configuration.IConfiguration, Microsoft.Extensions.Configuration.IConfigurationRoot, System.IDisposable { public ConfigurationRoot(System.Collections.Generic.IList providers) => throw null; public void Dispose() => throw null; @@ -89,8 +106,8 @@ namespace Microsoft public void Reload() => throw null; } - // Generated from `Microsoft.Extensions.Configuration.ConfigurationSection` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConfigurationSection : Microsoft.Extensions.Configuration.IConfigurationSection, Microsoft.Extensions.Configuration.IConfiguration + // Generated from `Microsoft.Extensions.Configuration.ConfigurationSection` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -102,14 +119,14 @@ namespace Microsoft public string Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Configuration.MemoryConfigurationBuilderExtensions` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.MemoryConfigurationBuilderExtensions` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class MemoryConfigurationBuilderExtensions { - public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddInMemoryCollection(this Microsoft.Extensions.Configuration.IConfigurationBuilder configurationBuilder, System.Collections.Generic.IEnumerable> initialData) => throw null; 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; } - // Generated from `Microsoft.Extensions.Configuration.StreamConfigurationProvider` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.StreamConfigurationProvider` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class StreamConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider { public override void Load() => throw null; @@ -118,7 +135,7 @@ namespace Microsoft public StreamConfigurationProvider(Microsoft.Extensions.Configuration.StreamConfigurationSource source) => throw null; } - // Generated from `Microsoft.Extensions.Configuration.StreamConfigurationSource` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.StreamConfigurationSource` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class StreamConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public abstract Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder); @@ -128,8 +145,8 @@ namespace Microsoft namespace Memory { - // Generated from `Microsoft.Extensions.Configuration.Memory.MemoryConfigurationProvider` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class MemoryConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable> + // Generated from `Microsoft.Extensions.Configuration.Memory.MemoryConfigurationProvider` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class MemoryConfigurationProvider : Microsoft.Extensions.Configuration.ConfigurationProvider, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { public void Add(string key, string value) => throw null; public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; @@ -137,7 +154,7 @@ namespace Microsoft public MemoryConfigurationProvider(Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource source) => throw null; } - // Generated from `Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource` in `Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource` in `Microsoft.Extensions.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MemoryConfigurationSource : Microsoft.Extensions.Configuration.IConfigurationSource { public Microsoft.Extensions.Configuration.IConfigurationProvider Build(Microsoft.Extensions.Configuration.IConfigurationBuilder builder) => 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 f117555dc32..e5a355013c5 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.ActivatorUtilities` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ActivatorUtilities` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ActivatorUtilities { public static Microsoft.Extensions.DependencyInjection.ObjectFactory CreateFactory(System.Type instanceType, System.Type[] argumentTypes) => throw null; @@ -16,107 +16,142 @@ namespace Microsoft public static T GetServiceOrCreateInstance(System.IServiceProvider provider) => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.ActivatorUtilitiesConstructorAttribute` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ActivatorUtilitiesConstructorAttribute` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ActivatorUtilitiesConstructorAttribute : System.Attribute { public ActivatorUtilitiesConstructorAttribute() => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.IServiceCollection` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IServiceCollection : System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection + // Generated from `Microsoft.Extensions.DependencyInjection.AsyncServiceScope` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct AsyncServiceScope : Microsoft.Extensions.DependencyInjection.IServiceScope, System.IAsyncDisposable, System.IDisposable + { + // 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; } + } + + // Generated from `Microsoft.Extensions.DependencyInjection.IServiceCollection` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IServiceCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable { } - // Generated from `Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<>` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<>` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServiceProviderFactory { TContainerBuilder CreateBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services); System.IServiceProvider CreateServiceProvider(TContainerBuilder containerBuilder); } - // Generated from `Microsoft.Extensions.DependencyInjection.IServiceScope` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IServiceProviderIsService` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IServiceProviderIsService + { + bool IsService(System.Type serviceType); + } + + // Generated from `Microsoft.Extensions.DependencyInjection.IServiceScope` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServiceScope : System.IDisposable { System.IServiceProvider ServiceProvider { get; } } - // Generated from `Microsoft.Extensions.DependencyInjection.IServiceScopeFactory` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IServiceScopeFactory` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IServiceScopeFactory { Microsoft.Extensions.DependencyInjection.IServiceScope CreateScope(); } - // Generated from `Microsoft.Extensions.DependencyInjection.ISupportRequiredService` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ISupportRequiredService` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISupportRequiredService { object GetRequiredService(System.Type serviceType); } - // Generated from `Microsoft.Extensions.DependencyInjection.ObjectFactory` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ObjectFactory` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public delegate object ObjectFactory(System.IServiceProvider serviceProvider, object[] arguments); - // Generated from `Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public static class ServiceCollectionServiceExtensions + // Generated from `Microsoft.Extensions.DependencyInjection.ServiceCollection` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ServiceCollection : Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable { - 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 => 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 TImplementation : class, TService where TService : class => 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, System.Type serviceType, System.Func implementationFactory) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddScoped(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType) => 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, System.Func implementationFactory) where TService : class => 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 TImplementation : class, TService where TService : class => 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.Type serviceType, object implementationInstance) => 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, System.Func implementationFactory) => 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 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 => 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 TImplementation : class, TService where TService : class => 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, System.Type serviceType, System.Func implementationFactory) => throw null; - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddTransient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Type serviceType) => throw null; + 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 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 bool Remove(Microsoft.Extensions.DependencyInjection.ServiceDescriptor item) => throw null; + public void RemoveAt(int index) => throw null; + public ServiceCollection() => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.ServiceDescriptor` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static 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 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) 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 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; + } + + // Generated from `Microsoft.Extensions.DependencyInjection.ServiceDescriptor` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ServiceDescriptor { - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Describe(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; } public object ImplementationInstance { get => throw null; } public System.Type ImplementationType { get => throw null; } public Microsoft.Extensions.DependencyInjection.ServiceLifetime Lifetime { get => throw null; } - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped(System.Func implementationFactory) 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() where TImplementation : class, TService where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped(System.Type service, System.Type implementationType) => throw null; public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Scoped(System.Type service, System.Func implementationFactory) => 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 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 System.Type ServiceType { get => throw null; } - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(TService implementationInstance) where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(System.Func implementationFactory) 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() where TImplementation : class, TService where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(System.Type serviceType, object implementationInstance) => 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.Func implementationFactory) where TService : class => throw null; + public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Singleton(TService implementationInstance) where TService : class => throw null; public override string ToString() => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Transient(System.Func implementationFactory) 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() where TImplementation : class, TService where TService : class => throw null; - public static Microsoft.Extensions.DependencyInjection.ServiceDescriptor Transient(System.Type service, System.Type implementationType) => 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.ServiceLifetime` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ServiceLifetime` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ServiceLifetime { Scoped, @@ -124,9 +159,11 @@ namespace Microsoft Transient, } - // Generated from `Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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.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; @@ -137,37 +174,37 @@ namespace Microsoft namespace Extensions { - // Generated from `Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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) => 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 services, System.Func implementationFactory) 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 collection) where TImplementation : class, TService where TService : class => 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, System.Type service, System.Func implementationFactory) => 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 TryAddSingleton(this Microsoft.Extensions.DependencyInjection.IServiceCollection collection) where TService : class => 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, System.Type service, System.Type implementationType) => 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) => 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 => 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, System.Type service, System.Type implementationType) => 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) => 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; } } @@ -180,31 +217,13 @@ namespace System { namespace CodeAnalysis { - /* Duplicate type 'AllowNullAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - /* Duplicate type 'DisallowNullAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - /* Duplicate type 'DoesNotReturnAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'MemberNotNullAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - /* Duplicate type 'DoesNotReturnIfAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'MaybeNullAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'MaybeNullWhenAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'MemberNotNullAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'MemberNotNullWhenAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'NotNullAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'NotNullIfNotNullAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'NotNullWhenAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'MemberNotNullWhenAttribute' is not stubbed in this assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ } } 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 852d38a7818..f323c3cc0f2 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 @@ -6,51 +6,32 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.DefaultServiceProviderFactory` in `Microsoft.Extensions.DependencyInjection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.DefaultServiceProviderFactory` in `Microsoft.Extensions.DependencyInjection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultServiceProviderFactory : Microsoft.Extensions.DependencyInjection.IServiceProviderFactory { public Microsoft.Extensions.DependencyInjection.IServiceCollection CreateBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public System.IServiceProvider CreateServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection containerBuilder) => throw null; - public DefaultServiceProviderFactory(Microsoft.Extensions.DependencyInjection.ServiceProviderOptions options) => throw null; public DefaultServiceProviderFactory() => throw null; + public DefaultServiceProviderFactory(Microsoft.Extensions.DependencyInjection.ServiceProviderOptions options) => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.ServiceCollection` in `Microsoft.Extensions.DependencyInjection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ServiceCollection : System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection, Microsoft.Extensions.DependencyInjection.IServiceCollection - { - 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 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 bool Remove(Microsoft.Extensions.DependencyInjection.ServiceDescriptor item) => throw null; - public void RemoveAt(int index) => throw null; - public ServiceCollection() => throw null; - } - - // Generated from `Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions` in `Microsoft.Extensions.DependencyInjection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions` in `Microsoft.Extensions.DependencyInjection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ServiceCollectionContainerBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.ServiceProvider BuildServiceProvider(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, bool validateScopes) => 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) => 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.ServiceProvider` in `Microsoft.Extensions.DependencyInjection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ServiceProvider : System.IServiceProvider, System.IDisposable, System.IAsyncDisposable + // Generated from `Microsoft.Extensions.DependencyInjection.ServiceProvider` in `Microsoft.Extensions.DependencyInjection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.ServiceProviderOptions` in `Microsoft.Extensions.DependencyInjection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ServiceProviderOptions` in `Microsoft.Extensions.DependencyInjection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ServiceProviderOptions { public ServiceProviderOptions() => throw null; 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 188828cbaa9..386247ac356 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 @@ -8,66 +8,66 @@ namespace Microsoft { namespace HealthChecks { - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckContext` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckContext` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HealthCheckContext { public HealthCheckContext() => throw null; public Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration Registration { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public 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, System.TimeSpan? timeout) => 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, Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck instance, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus, System.Collections.Generic.IEnumerable tags, System.TimeSpan? timeout) => 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 System.Collections.Generic.ISet Tags { get => throw null; } public System.TimeSpan Timeout { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct HealthCheckResult { 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; } - 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; // 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; } - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthReport` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthReport` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HealthReport { public System.Collections.Generic.IReadOnlyDictionary Entries { get => 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 HealthReport(System.Collections.Generic.IReadOnlyDictionary entries, System.TimeSpan totalDuration) => throw null; public Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus Status { get => throw null; } public System.TimeSpan TotalDuration { get => throw null; } } - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthReportEntry` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthReportEntry` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct HealthReportEntry { 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; } - 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 HealthReportEntry(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus status, string description, System.TimeSpan duration, System.Exception exception, System.Collections.Generic.IReadOnlyDictionary data) => 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; } } - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum HealthStatus { Degraded, @@ -75,13 +75,13 @@ namespace Microsoft Unhealthy, } - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHealthCheck { System.Threading.Tasks.Task CheckHealthAsync(Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckContext context, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheckPublisher` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheckPublisher` in `Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 a135a164c4d..82cc6e67f1f 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 @@ -6,39 +6,39 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.HealthCheckServiceCollectionExtensions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.HealthCheckServiceCollectionExtensions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HealthCheckServiceCollectionExtensions { public static Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder AddHealthChecks(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.HealthChecksBuilderAddCheckExtensions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.HealthChecksBuilderAddCheckExtensions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HealthChecksBuilderAddCheckExtensions { - 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 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 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 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.HealthChecksBuilderDelegateExtensions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.HealthChecksBuilderDelegateExtensions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHealthChecksBuilder { Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder Add(Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration registration); @@ -50,7 +50,7 @@ namespace Microsoft { namespace HealthChecks { - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckPublisherOptions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckPublisherOptions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HealthCheckPublisherOptions { public System.TimeSpan Delay { get => throw null; set => throw null; } @@ -60,15 +60,15 @@ namespace Microsoft public System.TimeSpan Timeout { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class HealthCheckService { - public abstract System.Threading.Tasks.Task CheckHealthAsync(System.Func predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); 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; } - // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckServiceOptions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckServiceOptions` in `Microsoft.Extensions.Diagnostics.HealthChecks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HealthCheckServiceOptions { public HealthCheckServiceOptions() => 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 new file mode 100644 index 00000000000..4d257c86a71 --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Extensions.Features.cs @@ -0,0 +1,62 @@ +// This file contains auto-generated code. + +namespace Microsoft +{ + namespace AspNetCore + { + namespace Http + { + namespace Features + { + // Generated from `Microsoft.AspNetCore.Http.Features.FeatureCollection` in `Microsoft.Extensions.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 TFeature Get() => 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 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; + } + + // Generated from `Microsoft.AspNetCore.Http.Features.FeatureReference<>` in `Microsoft.Extensions.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + } + + // Generated from `Microsoft.AspNetCore.Http.Features.FeatureReferences<>` in `Microsoft.Extensions.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; + public void Initalize(Microsoft.AspNetCore.Http.Features.IFeatureCollection collection) => throw null; + public void Initalize(Microsoft.AspNetCore.Http.Features.IFeatureCollection collection, int revision) => throw null; + public int Revision { get => throw null; } + } + + // Generated from `Microsoft.AspNetCore.Http.Features.IFeatureCollection` in `Microsoft.Extensions.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); + } + + } + } + } +} 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 4e667633a76..fda24f3b741 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 @@ -6,13 +6,13 @@ namespace Microsoft { namespace FileProviders { - // Generated from `Microsoft.Extensions.FileProviders.IDirectoryContents` in `Microsoft.Extensions.FileProviders.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IDirectoryContents : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.Extensions.FileProviders.IDirectoryContents` in `Microsoft.Extensions.FileProviders.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IDirectoryContents : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { bool Exists { get; } } - // Generated from `Microsoft.Extensions.FileProviders.IFileInfo` in `Microsoft.Extensions.FileProviders.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.IFileInfo` in `Microsoft.Extensions.FileProviders.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFileInfo { System.IO.Stream CreateReadStream(); @@ -24,7 +24,7 @@ namespace Microsoft string PhysicalPath { get; } } - // Generated from `Microsoft.Extensions.FileProviders.IFileProvider` in `Microsoft.Extensions.FileProviders.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.IFileProvider` in `Microsoft.Extensions.FileProviders.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IFileProvider { Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath); @@ -32,8 +32,8 @@ namespace Microsoft Microsoft.Extensions.Primitives.IChangeToken Watch(string filter); } - // Generated from `Microsoft.Extensions.FileProviders.NotFoundDirectoryContents` in `Microsoft.Extensions.FileProviders.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class NotFoundDirectoryContents : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, Microsoft.Extensions.FileProviders.IDirectoryContents + // Generated from `Microsoft.Extensions.FileProviders.NotFoundDirectoryContents` in `Microsoft.Extensions.FileProviders.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class NotFoundDirectoryContents : Microsoft.Extensions.FileProviders.IDirectoryContents, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public bool Exists { get => throw null; } public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; @@ -42,7 +42,7 @@ namespace Microsoft public static Microsoft.Extensions.FileProviders.NotFoundDirectoryContents Singleton { get => throw null; } } - // Generated from `Microsoft.Extensions.FileProviders.NotFoundFileInfo` in `Microsoft.Extensions.FileProviders.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.NotFoundFileInfo` in `Microsoft.Extensions.FileProviders.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NotFoundFileInfo : Microsoft.Extensions.FileProviders.IFileInfo { public System.IO.Stream CreateReadStream() => throw null; @@ -55,7 +55,7 @@ namespace Microsoft public string PhysicalPath { get => throw null; } } - // Generated from `Microsoft.Extensions.FileProviders.NullChangeToken` in `Microsoft.Extensions.FileProviders.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.NullChangeToken` in `Microsoft.Extensions.FileProviders.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NullChangeToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } @@ -64,7 +64,7 @@ namespace Microsoft public static Microsoft.Extensions.FileProviders.NullChangeToken Singleton { get => throw null; } } - // Generated from `Microsoft.Extensions.FileProviders.NullFileProvider` in `Microsoft.Extensions.FileProviders.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.NullFileProvider` in `Microsoft.Extensions.FileProviders.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NullFileProvider : Microsoft.Extensions.FileProviders.IFileProvider { public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) => 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 255d61edb6f..bfd688aeb90 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 @@ -6,11 +6,11 @@ namespace Microsoft { namespace FileProviders { - // Generated from `Microsoft.Extensions.FileProviders.CompositeFileProvider` in `Microsoft.Extensions.FileProviders.Composite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.CompositeFileProvider` in `Microsoft.Extensions.FileProviders.Composite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 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; @@ -19,8 +19,8 @@ namespace Microsoft namespace Composite { - // Generated from `Microsoft.Extensions.FileProviders.Composite.CompositeDirectoryContents` in `Microsoft.Extensions.FileProviders.Composite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class CompositeDirectoryContents : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, Microsoft.Extensions.FileProviders.IDirectoryContents + // Generated from `Microsoft.Extensions.FileProviders.Composite.CompositeDirectoryContents` in `Microsoft.Extensions.FileProviders.Composite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class CompositeDirectoryContents : Microsoft.Extensions.FileProviders.IDirectoryContents, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public CompositeDirectoryContents(System.Collections.Generic.IList fileProviders, string subpath) => throw null; public bool Exists { get => 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 207078505e8..45bc49754ea 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 @@ -6,32 +6,32 @@ namespace Microsoft { namespace FileProviders { - // Generated from `Microsoft.Extensions.FileProviders.EmbeddedFileProvider` in `Microsoft.Extensions.FileProviders.Embedded, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.EmbeddedFileProvider` in `Microsoft.Extensions.FileProviders.Embedded, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EmbeddedFileProvider : Microsoft.Extensions.FileProviders.IFileProvider { - public EmbeddedFileProvider(System.Reflection.Assembly assembly, string baseNamespace) => throw null; 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; } - // Generated from `Microsoft.Extensions.FileProviders.ManifestEmbeddedFileProvider` in `Microsoft.Extensions.FileProviders.Embedded, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.ManifestEmbeddedFileProvider` in `Microsoft.Extensions.FileProviders.Embedded, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, string root, string manifestName, System.DateTimeOffset lastModified) => throw null; - public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly, string root, System.DateTimeOffset lastModified) => throw null; - public ManifestEmbeddedFileProvider(System.Reflection.Assembly assembly, string root) => 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 { - // Generated from `Microsoft.Extensions.FileProviders.Embedded.EmbeddedResourceFileInfo` in `Microsoft.Extensions.FileProviders.Embedded, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.Embedded.EmbeddedResourceFileInfo` in `Microsoft.Extensions.FileProviders.Embedded, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EmbeddedResourceFileInfo : Microsoft.Extensions.FileProviders.IFileInfo { public System.IO.Stream CreateReadStream() => 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 42bdf681ff7..35a3f0ed567 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 @@ -6,15 +6,15 @@ namespace Microsoft { namespace FileProviders { - // Generated from `Microsoft.Extensions.FileProviders.PhysicalFileProvider` in `Microsoft.Extensions.FileProviders.Physical, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class PhysicalFileProvider : System.IDisposable, Microsoft.Extensions.FileProviders.IFileProvider + // Generated from `Microsoft.Extensions.FileProviders.PhysicalFileProvider` in `Microsoft.Extensions.FileProviders.Physical, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => 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; } @@ -24,20 +24,20 @@ namespace Microsoft namespace Internal { - // Generated from `Microsoft.Extensions.FileProviders.Internal.PhysicalDirectoryContents` in `Microsoft.Extensions.FileProviders.Physical, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class PhysicalDirectoryContents : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, Microsoft.Extensions.FileProviders.IDirectoryContents + // Generated from `Microsoft.Extensions.FileProviders.Internal.PhysicalDirectoryContents` in `Microsoft.Extensions.FileProviders.Physical, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class PhysicalDirectoryContents : Microsoft.Extensions.FileProviders.IDirectoryContents, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { 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, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => throw null; public PhysicalDirectoryContents(string directory) => throw null; + public PhysicalDirectoryContents(string directory, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => throw null; } } namespace Physical { - // Generated from `Microsoft.Extensions.FileProviders.Physical.ExclusionFilters` in `Microsoft.Extensions.FileProviders.Physical, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.Physical.ExclusionFilters` in `Microsoft.Extensions.FileProviders.Physical, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` [System.Flags] public enum ExclusionFilters { @@ -48,7 +48,7 @@ namespace Microsoft System, } - // Generated from `Microsoft.Extensions.FileProviders.Physical.PhysicalDirectoryInfo` in `Microsoft.Extensions.FileProviders.Physical, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.Physical.PhysicalDirectoryInfo` in `Microsoft.Extensions.FileProviders.Physical, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PhysicalDirectoryInfo : Microsoft.Extensions.FileProviders.IFileInfo { public System.IO.Stream CreateReadStream() => throw null; @@ -61,7 +61,7 @@ namespace Microsoft public string PhysicalPath { get => throw null; } } - // Generated from `Microsoft.Extensions.FileProviders.Physical.PhysicalFileInfo` in `Microsoft.Extensions.FileProviders.Physical, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.Physical.PhysicalFileInfo` in `Microsoft.Extensions.FileProviders.Physical, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PhysicalFileInfo : Microsoft.Extensions.FileProviders.IFileInfo { public System.IO.Stream CreateReadStream() => throw null; @@ -74,18 +74,18 @@ namespace Microsoft public string PhysicalPath { get => throw null; } } - // Generated from `Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher` in `Microsoft.Extensions.FileProviders.Physical, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher` in `Microsoft.Extensions.FileProviders.Physical, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters) => 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 } - // Generated from `Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken` in `Microsoft.Extensions.FileProviders.Physical, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken` in `Microsoft.Extensions.FileProviders.Physical, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PollingFileChangeToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } @@ -94,7 +94,7 @@ namespace Microsoft public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; } - // Generated from `Microsoft.Extensions.FileProviders.Physical.PollingWildCardChangeToken` in `Microsoft.Extensions.FileProviders.Physical, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileProviders.Physical.PollingWildCardChangeToken` in `Microsoft.Extensions.FileProviders.Physical, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PollingWildCardChangeToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => 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 11da3779934..7e30563d837 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 @@ -6,19 +6,19 @@ namespace Microsoft { namespace FileSystemGlobbing { - // Generated from `Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct FilePatternMatch : System.IEquatable { - public override bool Equals(object obj) => throw null; public bool Equals(Microsoft.Extensions.FileSystemGlobbing.FilePatternMatch other) => throw null; - public FilePatternMatch(string path, string stem) => 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; } } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.InMemoryDirectoryInfo` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.InMemoryDirectoryInfo` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class InMemoryDirectoryInfo : Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase { public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() => throw null; @@ -30,40 +30,40 @@ namespace Microsoft public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase ParentDirectory { get => throw null; } } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Matcher` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Matcher` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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(System.StringComparison comparisonType) => throw null; public Matcher() => throw null; + public Matcher(System.StringComparison comparisonType) => throw null; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.MatcherExtensions` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.MatcherExtensions` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, string rootDir, 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 file) => 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; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.PatternMatchingResult` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, bool hasMatches) => throw null; public PatternMatchingResult(System.Collections.Generic.IEnumerable files) => throw null; + public PatternMatchingResult(System.Collections.Generic.IEnumerable files, bool hasMatches) => throw null; } namespace Abstractions { - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class DirectoryInfoBase : Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase { protected DirectoryInfoBase() => throw null; @@ -72,7 +72,7 @@ namespace Microsoft public abstract Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase GetFile(string path); } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoWrapper` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoWrapper` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DirectoryInfoWrapper : Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase { public DirectoryInfoWrapper(System.IO.DirectoryInfo directoryInfo) => throw null; @@ -84,13 +84,13 @@ namespace Microsoft public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase ParentDirectory { get => throw null; } } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class FileInfoBase : Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase { protected FileInfoBase() => throw null; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class FileInfoWrapper : Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase { public FileInfoWrapper(System.IO.FileInfo fileInfo) => throw null; @@ -99,7 +99,7 @@ namespace Microsoft public override Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase ParentDirectory { get => throw null; } } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class FileSystemInfoBase { protected FileSystemInfoBase() => throw null; @@ -111,27 +111,27 @@ namespace Microsoft } namespace Internal { - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.ILinearPattern` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.ILinearPattern` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILinearPattern : Microsoft.Extensions.FileSystemGlobbing.Internal.IPattern { System.Collections.Generic.IList Segments { get; } } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPathSegment { bool CanProduceStem { get; } bool Match(string value); } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.IPattern` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.IPattern` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPattern { Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext CreatePatternContextForExclude(); Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext CreatePatternContextForInclude(); } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPatternContext { void Declare(System.Action onDeclare); @@ -141,7 +141,7 @@ namespace Microsoft Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase file); } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRaggedPattern : Microsoft.Extensions.FileSystemGlobbing.Internal.IPattern { System.Collections.Generic.IList> Contains { get; } @@ -150,14 +150,14 @@ namespace Microsoft System.Collections.Generic.IList StartsWith { get; } } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct PatternTestResult { public static Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Failed; @@ -169,7 +169,7 @@ namespace Microsoft namespace PathSegments { - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.CurrentPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.CurrentPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CurrentPathSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment { public bool CanProduceStem { get => throw null; } @@ -177,7 +177,7 @@ namespace Microsoft public bool Match(string value) => throw null; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.LiteralPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.LiteralPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LiteralPathSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment { public bool CanProduceStem { get => throw null; } @@ -188,7 +188,7 @@ namespace Microsoft public string Value { get => throw null; } } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.ParentPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.ParentPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ParentPathSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment { public bool CanProduceStem { get => throw null; } @@ -196,7 +196,7 @@ namespace Microsoft public ParentPathSegment() => throw null; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.RecursiveWildcardSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.RecursiveWildcardSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RecursiveWildcardSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment { public bool CanProduceStem { get => throw null; } @@ -204,7 +204,7 @@ namespace Microsoft public RecursiveWildcardSegment() => throw null; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WildcardPathSegment : Microsoft.Extensions.FileSystemGlobbing.Internal.IPathSegment { public string BeginsWith { get => throw null; } @@ -219,7 +219,7 @@ namespace Microsoft } namespace PatternContexts { - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext<>` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext<>` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class PatternContext : Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext { public virtual void Declare(System.Action declare) => throw null; @@ -233,11 +233,10 @@ namespace Microsoft public abstract Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase file); } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinear` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinear` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class PatternContextLinear : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext { - protected string CalculateStem(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase matchedFile) => throw null; - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinear+FrameData` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinear+FrameData` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct FrameData { // Stub generator skipped constructor @@ -249,6 +248,7 @@ namespace Microsoft } + 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; @@ -257,14 +257,14 @@ namespace Microsoft protected bool TestMatchingSegment(string value) => throw null; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinearExclude` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinearExclude` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinearInclude` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinearInclude` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PatternContextLinearInclude : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextLinear { public override void Declare(System.Action onDeclare) => throw null; @@ -272,11 +272,10 @@ namespace Microsoft public override bool Test(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase directory) => throw null; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class PatternContextRagged : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext { - protected string CalculateStem(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase matchedFile) => throw null; - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct FrameData { public int BacktrackAvailable; @@ -291,6 +290,7 @@ namespace Microsoft } + 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; } @@ -302,14 +302,14 @@ namespace Microsoft protected bool TestMatchingSegment(string value) => throw null; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRaggedExclude` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRaggedExclude` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRaggedInclude` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRaggedInclude` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PatternContextRaggedInclude : Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged { public override void Declare(System.Action onDeclare) => throw null; @@ -320,13 +320,13 @@ namespace Microsoft } namespace Patterns { - // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.Patterns.PatternBuilder` in `Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.FileSystemGlobbing.Internal.Patterns.PatternBuilder` in `Microsoft.Extensions.FileSystemGlobbing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PatternBuilder { public Microsoft.Extensions.FileSystemGlobbing.Internal.IPattern Build(string pattern) => throw null; public System.StringComparison ComparisonType { get => throw null; } - public PatternBuilder(System.StringComparison comparisonType) => throw null; public PatternBuilder() => throw null; + public PatternBuilder(System.StringComparison comparisonType) => throw null; } } @@ -334,14 +334,3 @@ namespace Microsoft } } } -namespace System -{ - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - } - } -} 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 c3cf9ec4770..046a467725d 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 @@ -6,27 +6,28 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.ServiceCollectionHostedServiceExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.ServiceCollectionHostedServiceExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ServiceCollectionHostedServiceExtensions { - 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; 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 { - // Generated from `Microsoft.Extensions.Hosting.BackgroundService` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class BackgroundService : System.IDisposable, Microsoft.Extensions.Hosting.IHostedService + // Generated from `Microsoft.Extensions.Hosting.BackgroundService` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public abstract class BackgroundService : Microsoft.Extensions.Hosting.IHostedService, System.IDisposable { protected BackgroundService() => throw null; public virtual void Dispose() => throw null; protected abstract System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken stoppingToken); + public virtual System.Threading.Tasks.Task ExecuteTask { get => throw null; } 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; } - // Generated from `Microsoft.Extensions.Hosting.EnvironmentName` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.EnvironmentName` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EnvironmentName { public static string Development; @@ -34,7 +35,7 @@ namespace Microsoft public static string Staging; } - // Generated from `Microsoft.Extensions.Hosting.Environments` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.Environments` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class Environments { public static string Development; @@ -42,7 +43,7 @@ namespace Microsoft public static string Staging; } - // Generated from `Microsoft.Extensions.Hosting.HostBuilderContext` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.HostBuilderContext` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HostBuilderContext { public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } @@ -51,7 +52,7 @@ namespace Microsoft public System.Collections.Generic.IDictionary Properties { get => throw null; } } - // Generated from `Microsoft.Extensions.Hosting.HostDefaults` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.HostDefaults` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HostDefaults { public static string ApplicationKey; @@ -59,7 +60,7 @@ namespace Microsoft public static string EnvironmentKey; } - // Generated from `Microsoft.Extensions.Hosting.HostEnvironmentEnvExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.HostEnvironmentEnvExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HostEnvironmentEnvExtensions { public static bool IsDevelopment(this Microsoft.Extensions.Hosting.IHostEnvironment hostEnvironment) => throw null; @@ -68,14 +69,14 @@ namespace Microsoft public static bool IsStaging(this Microsoft.Extensions.Hosting.IHostEnvironment hostEnvironment) => throw null; } - // Generated from `Microsoft.Extensions.Hosting.HostingAbstractionsHostBuilderExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.HostingAbstractionsHostBuilderExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HostingAbstractionsHostExtensions { public static void Run(this Microsoft.Extensions.Hosting.IHost host) => throw null; @@ -86,7 +87,7 @@ namespace Microsoft public static System.Threading.Tasks.Task WaitForShutdownAsync(this Microsoft.Extensions.Hosting.IHost host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; } - // Generated from `Microsoft.Extensions.Hosting.HostingEnvironmentExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.HostingEnvironmentExtensions` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HostingEnvironmentExtensions { public static bool IsDevelopment(this Microsoft.Extensions.Hosting.IHostingEnvironment hostingEnvironment) => throw null; @@ -95,7 +96,7 @@ namespace Microsoft public static bool IsStaging(this Microsoft.Extensions.Hosting.IHostingEnvironment hostingEnvironment) => throw null; } - // Generated from `Microsoft.Extensions.Hosting.IApplicationLifetime` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.IApplicationLifetime` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IApplicationLifetime { System.Threading.CancellationToken ApplicationStarted { get; } @@ -104,7 +105,7 @@ namespace Microsoft void StopApplication(); } - // Generated from `Microsoft.Extensions.Hosting.IHost` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.IHost` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHost : System.IDisposable { System.IServiceProvider Services { get; } @@ -112,7 +113,7 @@ namespace Microsoft System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.Extensions.Hosting.IHostApplicationLifetime` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.IHostApplicationLifetime` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostApplicationLifetime { System.Threading.CancellationToken ApplicationStarted { get; } @@ -121,7 +122,7 @@ namespace Microsoft void StopApplication(); } - // Generated from `Microsoft.Extensions.Hosting.IHostBuilder` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.IHostBuilder` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostBuilder { Microsoft.Extensions.Hosting.IHost Build(); @@ -134,7 +135,7 @@ namespace Microsoft Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory); } - // Generated from `Microsoft.Extensions.Hosting.IHostEnvironment` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.IHostEnvironment` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostEnvironment { string ApplicationName { get; set; } @@ -143,21 +144,21 @@ namespace Microsoft string EnvironmentName { get; set; } } - // Generated from `Microsoft.Extensions.Hosting.IHostLifetime` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.IHostLifetime` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostLifetime { System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task WaitForStartAsync(System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.Extensions.Hosting.IHostedService` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.IHostedService` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostedService { System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.Extensions.Hosting.IHostingEnvironment` in `Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.IHostingEnvironment` in `Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHostingEnvironment { string ApplicationName { get; set; } @@ -175,9 +176,9 @@ namespace System { namespace CodeAnalysis { - /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ } } 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 b22998950d0..9ca381c822c 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 @@ -4,23 +4,39 @@ namespace Microsoft { namespace Extensions { + namespace DependencyInjection + { + // Generated from `Microsoft.Extensions.DependencyInjection.OptionsBuilderExtensions` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static class OptionsBuilderExtensions + { + public static Microsoft.Extensions.Options.OptionsBuilder ValidateOnStart(this Microsoft.Extensions.Options.OptionsBuilder optionsBuilder) where TOptions : class => throw null; + } + + } namespace Hosting { - // Generated from `Microsoft.Extensions.Hosting.ConsoleLifetimeOptions` in `Microsoft.Extensions.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.BackgroundServiceExceptionBehavior` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public enum BackgroundServiceExceptionBehavior + { + Ignore, + StopHost, + } + + // Generated from `Microsoft.Extensions.Hosting.ConsoleLifetimeOptions` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConsoleLifetimeOptions { public ConsoleLifetimeOptions() => throw null; public bool SuppressStatusMessages { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Hosting.Host` in `Microsoft.Extensions.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.Host` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class Host { - public static Microsoft.Extensions.Hosting.IHostBuilder CreateDefaultBuilder(string[] args) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder CreateDefaultBuilder() => throw null; + public static Microsoft.Extensions.Hosting.IHostBuilder CreateDefaultBuilder(string[] args) => throw null; } - // Generated from `Microsoft.Extensions.Hosting.HostBuilder` in `Microsoft.Extensions.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.HostBuilder` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HostBuilder : Microsoft.Extensions.Hosting.IHostBuilder { public Microsoft.Extensions.Hosting.IHost Build() => throw null; @@ -34,25 +50,29 @@ namespace Microsoft public Microsoft.Extensions.Hosting.IHostBuilder UseServiceProviderFactory(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory) => throw null; } - // Generated from `Microsoft.Extensions.Hosting.HostOptions` in `Microsoft.Extensions.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.HostOptions` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.Extensions.Hosting.HostingHostBuilderExtensions` in `Microsoft.Extensions.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Hosting.HostingHostBuilderExtensions` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; - public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureLogging(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureLogging) => throw null; + public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureDefaults(this Microsoft.Extensions.Hosting.IHostBuilder builder, string[] args) => throw null; + public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureHostOptions(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureOptions) => throw null; + public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureHostOptions(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureOptions) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureLogging(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureLogging) => throw null; + public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureLogging(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureLogging) => throw null; public static Microsoft.Extensions.Hosting.IHostBuilder ConfigureServices(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureDelegate) => throw null; - public static System.Threading.Tasks.Task RunConsoleAsync(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task RunConsoleAsync(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureOptions, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static Microsoft.Extensions.Hosting.IHostBuilder UseConsoleLifetime(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Action configureOptions) => throw null; + public static System.Threading.Tasks.Task RunConsoleAsync(this Microsoft.Extensions.Hosting.IHostBuilder hostBuilder, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; 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; @@ -61,8 +81,8 @@ namespace Microsoft namespace Internal { - // Generated from `Microsoft.Extensions.Hosting.Internal.ApplicationLifetime` in `Microsoft.Extensions.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ApplicationLifetime : Microsoft.Extensions.Hosting.IHostApplicationLifetime, Microsoft.Extensions.Hosting.IApplicationLifetime + // Generated from `Microsoft.Extensions.Hosting.Internal.ApplicationLifetime` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -73,18 +93,18 @@ namespace Microsoft public void StopApplication() => throw null; } - // Generated from `Microsoft.Extensions.Hosting.Internal.ConsoleLifetime` in `Microsoft.Extensions.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConsoleLifetime : System.IDisposable, Microsoft.Extensions.Hosting.IHostLifetime + // Generated from `Microsoft.Extensions.Hosting.Internal.ConsoleLifetime` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) => throw null; 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; public void Dispose() => throw null; public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task WaitForStartAsync(System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `Microsoft.Extensions.Hosting.Internal.HostingEnvironment` in `Microsoft.Extensions.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HostingEnvironment : Microsoft.Extensions.Hosting.IHostingEnvironment, Microsoft.Extensions.Hosting.IHostEnvironment + // Generated from `Microsoft.Extensions.Hosting.Internal.HostingEnvironment` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } @@ -97,3 +117,34 @@ namespace Microsoft } } } +namespace System +{ + namespace Diagnostics + { + namespace CodeAnalysis + { + /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + } + } + namespace Runtime + { + namespace Versioning + { + /* Duplicate type 'OSPlatformAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'SupportedOSPlatformAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'SupportedOSPlatformGuardAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'TargetPlatformAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'UnsupportedOSPlatformAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'UnsupportedOSPlatformGuardAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + } + } +} 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 67269c5397b..1129a90710b 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 @@ -6,53 +6,53 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpClientBuilderExtensions { - 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 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 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 AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where TClient : class => 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 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) where THandler : System.Net.Http.HttpMessageHandler => 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 SetHandlerLifetime(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.TimeSpan handlerLifetime) => throw null; } - // Generated from `Microsoft.Extensions.DependencyInjection.HttpClientFactoryServiceCollectionExtensions` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.HttpClientFactoryServiceCollectionExtensions` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, 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, string name) 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) where TClient : class => 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, 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) 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, 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) where TClient : class where TImplementation : class, TClient => 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) => 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.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.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; } - // Generated from `Microsoft.Extensions.DependencyInjection.IHttpClientBuilder` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IHttpClientBuilder` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpClientBuilder { string Name { get; } @@ -62,7 +62,7 @@ namespace Microsoft } namespace Http { - // Generated from `Microsoft.Extensions.Http.HttpClientFactoryOptions` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Http.HttpClientFactoryOptions` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HttpClientFactoryOptions { public System.TimeSpan HandlerLifetime { get => throw null; set => throw null; } @@ -73,7 +73,7 @@ namespace Microsoft public bool SuppressHandlerScope { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Http.HttpMessageHandlerBuilder` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Http.HttpMessageHandlerBuilder` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class HttpMessageHandlerBuilder { public abstract System.Collections.Generic.IList AdditionalHandlers { get; } @@ -85,13 +85,13 @@ namespace Microsoft public virtual System.IServiceProvider Services { get => throw null; } } - // Generated from `Microsoft.Extensions.Http.IHttpMessageHandlerBuilderFilter` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Http.IHttpMessageHandlerBuilderFilter` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpMessageHandlerBuilderFilter { System.Action Configure(System.Action next); } - // Generated from `Microsoft.Extensions.Http.ITypedHttpClientFactory<>` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Http.ITypedHttpClientFactory<>` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ITypedHttpClientFactory { TClient CreateClient(System.Net.Http.HttpClient httpClient); @@ -99,19 +99,19 @@ namespace Microsoft namespace Logging { - // Generated from `Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LoggingHttpMessageHandler : System.Net.Http.DelegatingHandler { - public LoggingHttpMessageHandler(Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Http.HttpClientFactoryOptions options) => throw null; 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; } - // Generated from `Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LoggingScopeHttpMessageHandler : System.Net.Http.DelegatingHandler { - public LoggingScopeHttpMessageHandler(Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Http.HttpClientFactoryOptions options) => throw null; 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; } @@ -125,9 +125,9 @@ namespace System { namespace CodeAnalysis { - /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ } } @@ -135,25 +135,25 @@ namespace System { namespace Http { - // Generated from `System.Net.Http.HttpClientFactoryExtensions` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `System.Net.Http.HttpClientFactoryExtensions` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpClientFactoryExtensions { public static System.Net.Http.HttpClient CreateClient(this System.Net.Http.IHttpClientFactory factory) => throw null; } - // Generated from `System.Net.Http.HttpMessageHandlerFactoryExtensions` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `System.Net.Http.HttpMessageHandlerFactoryExtensions` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HttpMessageHandlerFactoryExtensions { public static System.Net.Http.HttpMessageHandler CreateHandler(this System.Net.Http.IHttpMessageHandlerFactory factory) => throw null; } - // Generated from `System.Net.Http.IHttpClientFactory` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `System.Net.Http.IHttpClientFactory` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IHttpClientFactory { System.Net.Http.HttpClient CreateClient(string name); } - // Generated from `System.Net.Http.IHttpMessageHandlerFactory` in `Microsoft.Extensions.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `System.Net.Http.IHttpMessageHandlerFactory` in `Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 d0a44577a04..9c614418114 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Identity { - // Generated from `Microsoft.AspNetCore.Identity.AuthenticatorTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.AuthenticatorTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class AuthenticatorTokenProvider : Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider where TUser : class { public AuthenticatorTokenProvider() => throw null; @@ -15,7 +15,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.ClaimsIdentityOptions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.ClaimsIdentityOptions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ClaimsIdentityOptions { public ClaimsIdentityOptions() => throw null; @@ -26,7 +26,7 @@ namespace Microsoft public string UserNameClaimType { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.DefaultPersonalDataProtector` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.DefaultPersonalDataProtector` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultPersonalDataProtector : Microsoft.AspNetCore.Identity.IPersonalDataProtector { public DefaultPersonalDataProtector(Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing keyRing, Microsoft.AspNetCore.Identity.ILookupProtector protector) => throw null; @@ -34,14 +34,14 @@ namespace Microsoft public virtual string Unprotect(string data) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.DefaultUserConfirmation<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.DefaultUserConfirmation<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Identity.EmailTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.EmailTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -49,21 +49,21 @@ namespace Microsoft public override System.Threading.Tasks.Task GetUserModifierAsync(string purpose, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.ILookupNormalizer` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.ILookupNormalizer` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILookupNormalizer { string NormalizeEmail(string email); string NormalizeName(string name); } - // Generated from `Microsoft.AspNetCore.Identity.ILookupProtector` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.ILookupProtector` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILookupProtector { string Protect(string keyId, string data); string Unprotect(string keyId, string data); } - // Generated from `Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.ILookupProtectorKeyRing` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILookupProtectorKeyRing { string CurrentKeyId { get; } @@ -71,52 +71,52 @@ namespace Microsoft string this[string keyId] { get; } } - // Generated from `Microsoft.AspNetCore.Identity.IPasswordHasher<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IPasswordHasher<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPasswordHasher where TUser : class { string HashPassword(TUser user, string password); Microsoft.AspNetCore.Identity.PasswordVerificationResult VerifyHashedPassword(TUser user, string hashedPassword, string providedPassword); } - // Generated from `Microsoft.AspNetCore.Identity.IPasswordValidator<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IPasswordValidator<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPasswordValidator where TUser : class { System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user, string password); } - // Generated from `Microsoft.AspNetCore.Identity.IPersonalDataProtector` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IPersonalDataProtector` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPersonalDataProtector { string Protect(string data); string Unprotect(string data); } - // Generated from `Microsoft.AspNetCore.Identity.IProtectedUserStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IProtectedUserStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IProtectedUserStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IProtectedUserStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class { } - // Generated from `Microsoft.AspNetCore.Identity.IQueryableRoleStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IQueryableRoleStore : System.IDisposable, Microsoft.AspNetCore.Identity.IRoleStore where TRole : class + // Generated from `Microsoft.AspNetCore.Identity.IQueryableRoleStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IQueryableRoleStore : Microsoft.AspNetCore.Identity.IRoleStore, System.IDisposable where TRole : class { System.Linq.IQueryable Roles { get; } } - // Generated from `Microsoft.AspNetCore.Identity.IQueryableUserStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IQueryableUserStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IQueryableUserStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IQueryableUserStore : Microsoft.AspNetCore.Identity.IUserStore, System.IDisposable where TUser : class { System.Linq.IQueryable Users { get; } } - // Generated from `Microsoft.AspNetCore.Identity.IRoleClaimStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IRoleClaimStore : System.IDisposable, Microsoft.AspNetCore.Identity.IRoleStore where TRole : class + // Generated from `Microsoft.AspNetCore.Identity.IRoleClaimStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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)); } - // Generated from `Microsoft.AspNetCore.Identity.IRoleStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IRoleStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRoleStore : System.IDisposable where TRole : class { System.Threading.Tasks.Task CreateAsync(TRole role, System.Threading.CancellationToken cancellationToken); @@ -131,29 +131,29 @@ namespace Microsoft System.Threading.Tasks.Task UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Identity.IRoleValidator<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IRoleValidator<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IRoleValidator where TRole : class { System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.RoleManager manager, TRole role); } - // Generated from `Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserAuthenticationTokenStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); } - // Generated from `Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserAuthenticatorKeyStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); } - // Generated from `Microsoft.AspNetCore.Identity.IUserClaimStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserClaimStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserClaimStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); @@ -162,20 +162,20 @@ namespace Microsoft System.Threading.Tasks.Task ReplaceClaimAsync(TUser user, System.Security.Claims.Claim claim, System.Security.Claims.Claim newClaim, System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IUserClaimsPrincipalFactory where TUser : class { System.Threading.Tasks.Task CreateAsync(TUser user); } - // Generated from `Microsoft.AspNetCore.Identity.IUserConfirmation<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IUserConfirmation<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IUserConfirmation where TUser : class { System.Threading.Tasks.Task IsConfirmedAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); } - // Generated from `Microsoft.AspNetCore.Identity.IUserEmailStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserEmailStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserEmailStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); @@ -186,8 +186,8 @@ namespace Microsoft System.Threading.Tasks.Task SetNormalizedEmailAsync(TUser user, string normalizedEmail, System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Identity.IUserLockoutStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserLockoutStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserLockoutStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); @@ -198,8 +198,8 @@ namespace Microsoft System.Threading.Tasks.Task SetLockoutEndDateAsync(TUser user, System.DateTimeOffset? lockoutEnd, System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Identity.IUserLoginStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserLoginStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserLoginStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); @@ -207,16 +207,16 @@ namespace Microsoft System.Threading.Tasks.Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Identity.IUserPasswordStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserPasswordStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserPasswordStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); } - // Generated from `Microsoft.AspNetCore.Identity.IUserPhoneNumberStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserPhoneNumberStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserPhoneNumberStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); @@ -224,8 +224,8 @@ namespace Microsoft System.Threading.Tasks.Task SetPhoneNumberConfirmedAsync(TUser user, bool confirmed, System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Identity.IUserRoleStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserRoleStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserRoleStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); @@ -234,14 +234,14 @@ namespace Microsoft System.Threading.Tasks.Task RemoveFromRoleAsync(TUser user, string roleName, System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Identity.IUserSecurityStampStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserSecurityStampStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserSecurityStampStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); } - // Generated from `Microsoft.AspNetCore.Identity.IUserStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IUserStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IUserStore : System.IDisposable where TUser : class { System.Threading.Tasks.Task CreateAsync(TUser user, System.Threading.CancellationToken cancellationToken); @@ -256,22 +256,22 @@ namespace Microsoft System.Threading.Tasks.Task UpdateAsync(TUser user, System.Threading.CancellationToken cancellationToken); } - // Generated from `Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserTwoFactorRecoveryCodeStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); } - // Generated from `Microsoft.AspNetCore.Identity.IUserTwoFactorStore<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUserTwoFactorStore : System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore where TUser : class + // Generated from `Microsoft.AspNetCore.Identity.IUserTwoFactorStore<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); } - // Generated from `Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IUserTwoFactorTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IUserTwoFactorTokenProvider where TUser : class { System.Threading.Tasks.Task CanGenerateTwoFactorTokenAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); @@ -279,13 +279,13 @@ namespace Microsoft System.Threading.Tasks.Task ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user); } - // Generated from `Microsoft.AspNetCore.Identity.IUserValidator<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IUserValidator<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IUserValidator where TUser : class { System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user); } - // Generated from `Microsoft.AspNetCore.Identity.IdentityBuilder` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityBuilder` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityBuilder { public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddClaimsPrincipalFactory() where TFactory : class => throw null; @@ -296,20 +296,20 @@ namespace Microsoft 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) 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 AddTokenProvider(string providerName) where TProvider : class => 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; public virtual Microsoft.AspNetCore.Identity.IdentityBuilder AddUserValidator() where TValidator : class => throw null; - public IdentityBuilder(System.Type user, System.Type role, Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public IdentityBuilder(System.Type user, Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + public IdentityBuilder(System.Type user, System.Type role, Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; public System.Type RoleType { get => throw null; } public Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => throw null; } public System.Type UserType { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.IdentityError` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityError` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityError { public string Code { get => throw null; set => throw null; } @@ -317,7 +317,7 @@ namespace Microsoft public IdentityError() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.IdentityErrorDescriber` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityErrorDescriber` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityErrorDescriber { public virtual Microsoft.AspNetCore.Identity.IdentityError ConcurrencyFailure() => throw null; @@ -345,7 +345,7 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Identity.IdentityError UserNotInRole(string role) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.IdentityOptions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityOptions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityOptions { public Microsoft.AspNetCore.Identity.ClaimsIdentityOptions ClaimsIdentity { get => throw null; set => throw null; } @@ -358,7 +358,7 @@ namespace Microsoft public Microsoft.AspNetCore.Identity.UserOptions User { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.IdentityResult` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityResult` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityResult { public System.Collections.Generic.IEnumerable Errors { get => throw null; } @@ -369,7 +369,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.LockoutOptions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.LockoutOptions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LockoutOptions { public bool AllowedForNewUsers { get => throw null; set => throw null; } @@ -378,7 +378,7 @@ namespace Microsoft public int MaxFailedAccessAttempts { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.PasswordHasher<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.PasswordHasher<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PasswordHasher : Microsoft.AspNetCore.Identity.IPasswordHasher where TUser : class { public virtual string HashPassword(TUser user, string password) => throw null; @@ -386,14 +386,14 @@ namespace Microsoft public virtual Microsoft.AspNetCore.Identity.PasswordVerificationResult VerifyHashedPassword(TUser user, string hashedPassword, string providedPassword) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum PasswordHasherCompatibilityMode { IdentityV2, IdentityV3, } - // Generated from `Microsoft.AspNetCore.Identity.PasswordHasherOptions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.PasswordHasherOptions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PasswordHasherOptions { public Microsoft.AspNetCore.Identity.PasswordHasherCompatibilityMode CompatibilityMode { get => throw null; set => throw null; } @@ -401,7 +401,7 @@ namespace Microsoft public PasswordHasherOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.PasswordOptions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.PasswordOptions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PasswordOptions { public PasswordOptions() => throw null; @@ -413,7 +413,7 @@ namespace Microsoft public int RequiredUniqueChars { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.PasswordValidator<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.PasswordValidator<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PasswordValidator : Microsoft.AspNetCore.Identity.IPasswordValidator where TUser : class { public Microsoft.AspNetCore.Identity.IdentityErrorDescriber Describer { get => throw null; } @@ -425,7 +425,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ValidateAsync(Microsoft.AspNetCore.Identity.UserManager manager, TUser user, string password) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.PasswordVerificationResult` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.PasswordVerificationResult` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum PasswordVerificationResult { Failed, @@ -433,13 +433,13 @@ namespace Microsoft SuccessRehashNeeded, } - // Generated from `Microsoft.AspNetCore.Identity.PersonalDataAttribute` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.PersonalDataAttribute` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PersonalDataAttribute : System.Attribute { public PersonalDataAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.PhoneNumberTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.PhoneNumberTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -447,13 +447,13 @@ namespace Microsoft public PhoneNumberTokenProvider() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.ProtectedPersonalDataAttribute` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.ProtectedPersonalDataAttribute` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ProtectedPersonalDataAttribute : Microsoft.AspNetCore.Identity.PersonalDataAttribute { public ProtectedPersonalDataAttribute() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.RoleManager<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.RoleManager<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RoleManager : System.IDisposable where TRole : class { public virtual System.Threading.Tasks.Task AddClaimAsync(TRole role, System.Security.Claims.Claim claim) => throw null; @@ -487,14 +487,14 @@ namespace Microsoft protected virtual System.Threading.Tasks.Task ValidateRoleAsync(TRole role) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.RoleValidator<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.RoleValidator<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.AspNetCore.Identity.SignInOptions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.SignInOptions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SignInOptions { public bool RequireConfirmedAccount { get => throw null; set => throw null; } @@ -503,7 +503,7 @@ namespace Microsoft public SignInOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.SignInResult` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.SignInResult` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SignInResult { public static Microsoft.AspNetCore.Identity.SignInResult Failed { get => throw null; } @@ -519,7 +519,7 @@ namespace Microsoft public static Microsoft.AspNetCore.Identity.SignInResult TwoFactorRequired { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.StoreOptions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.StoreOptions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StoreOptions { public int MaxLengthForKeys { get => throw null; set => throw null; } @@ -527,7 +527,7 @@ namespace Microsoft public StoreOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.TokenOptions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.TokenOptions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TokenOptions { public string AuthenticatorIssuer { get => throw null; set => throw null; } @@ -544,7 +544,7 @@ namespace Microsoft public TokenOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.TokenProviderDescriptor` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.TokenProviderDescriptor` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class TokenProviderDescriptor { public object ProviderInstance { get => throw null; set => throw null; } @@ -552,7 +552,7 @@ namespace Microsoft public TokenProviderDescriptor(System.Type type) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.TotpSecurityStampBasedTokenProvider<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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); @@ -562,7 +562,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ValidateAsync(string purpose, string token, Microsoft.AspNetCore.Identity.UserManager manager, TUser user) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.UpperInvariantLookupNormalizer` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.UpperInvariantLookupNormalizer` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UpperInvariantLookupNormalizer : Microsoft.AspNetCore.Identity.ILookupNormalizer { public string NormalizeEmail(string email) => throw null; @@ -570,7 +570,7 @@ namespace Microsoft public UpperInvariantLookupNormalizer() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory<,>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory<,>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UserClaimsPrincipalFactory : Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory where TRole : class where TUser : class { protected override System.Threading.Tasks.Task GenerateClaimsAsync(TUser user) => throw null; @@ -578,7 +578,7 @@ namespace Microsoft 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; } - // Generated from `Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UserClaimsPrincipalFactory : Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory where TUser : class { public virtual System.Threading.Tasks.Task CreateAsync(TUser user) => throw null; @@ -588,7 +588,7 @@ namespace Microsoft public Microsoft.AspNetCore.Identity.UserManager UserManager { get => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.UserLoginInfo` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.UserLoginInfo` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UserLoginInfo { public string LoginProvider { get => throw null; set => throw null; } @@ -597,7 +597,7 @@ namespace Microsoft public UserLoginInfo(string loginProvider, string providerKey, string displayName) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.UserManager<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.UserManager<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UserManager : System.IDisposable where TUser : class { public virtual System.Threading.Tasks.Task AccessFailedAsync(TUser user) => throw null; @@ -616,8 +616,8 @@ namespace Microsoft public virtual System.Threading.Tasks.Task ConfirmEmailAsync(TUser user, string token) => throw null; 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, string password) => 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; protected virtual string CreateTwoFactorRecoveryCode() => throw null; public virtual System.Threading.Tasks.Task DeleteAsync(TUser user) => throw null; @@ -723,7 +723,7 @@ namespace Microsoft public virtual System.Threading.Tasks.Task VerifyUserTokenAsync(TUser user, string tokenProvider, string purpose, string token) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.UserOptions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.UserOptions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UserOptions { public string AllowedUserNameCharacters { get => throw null; set => throw null; } @@ -731,7 +731,7 @@ namespace Microsoft public UserOptions() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.UserValidator<>` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.UserValidator<>` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UserValidator : Microsoft.AspNetCore.Identity.IUserValidator where TUser : class { public Microsoft.AspNetCore.Identity.IdentityErrorDescriber Describer { get => throw null; } @@ -745,11 +745,11 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions` in `Microsoft.AspNetCore.Identity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions` in `Microsoft.AspNetCore.Identity, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static partial class IdentityServiceCollectionExtensions { - public static Microsoft.AspNetCore.Identity.IdentityBuilder AddIdentityCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) where TUser : class => throw null; 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; } } @@ -761,7 +761,7 @@ namespace System { namespace Claims { - // Generated from `System.Security.Claims.PrincipalExtensions` in `Microsoft.Extensions.Identity.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `System.Security.Claims.PrincipalExtensions` in `Microsoft.Extensions.Identity.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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 4683d0efb8e..e6208d9b957 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 @@ -6,26 +6,26 @@ namespace Microsoft { namespace Identity { - // Generated from `Microsoft.AspNetCore.Identity.IdentityRole` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityRole` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityRole : Microsoft.AspNetCore.Identity.IdentityRole { - public IdentityRole(string roleName) => throw null; public IdentityRole() => throw null; + public IdentityRole(string roleName) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.IdentityRole<>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityRole<>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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 IdentityRole(string roleName) => throw null; 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 override string ToString() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.IdentityRoleClaim<>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityRoleClaim<>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityRoleClaim where TKey : System.IEquatable { public virtual string ClaimType { get => throw null; set => throw null; } @@ -37,14 +37,14 @@ namespace Microsoft public virtual System.Security.Claims.Claim ToClaim() => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.IdentityUser` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityUser` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityUser : Microsoft.AspNetCore.Identity.IdentityUser { - public IdentityUser(string userName) => throw null; public IdentityUser() => throw null; + public IdentityUser(string userName) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.IdentityUser<>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityUser<>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityUser where TKey : System.IEquatable { public virtual int AccessFailedCount { get => throw null; set => throw null; } @@ -52,8 +52,8 @@ namespace Microsoft 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 IdentityUser(string userName) => throw null; 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; } @@ -67,7 +67,7 @@ namespace Microsoft public virtual string UserName { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.IdentityUserClaim<>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityUserClaim<>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityUserClaim where TKey : System.IEquatable { public virtual string ClaimType { get => throw null; set => throw null; } @@ -79,7 +79,7 @@ namespace Microsoft public virtual TKey UserId { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.IdentityUserLogin<>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityUserLogin<>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityUserLogin where TKey : System.IEquatable { public IdentityUserLogin() => throw null; @@ -89,7 +89,7 @@ namespace Microsoft public virtual TKey UserId { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.IdentityUserRole<>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityUserRole<>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityUserRole where TKey : System.IEquatable { public IdentityUserRole() => throw null; @@ -97,7 +97,7 @@ namespace Microsoft public virtual TKey UserId { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.IdentityUserToken<>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.AspNetCore.Identity.IdentityUserToken<>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class IdentityUserToken where TKey : System.IEquatable { public IdentityUserToken() => throw null; @@ -107,8 +107,8 @@ namespace Microsoft public virtual string Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.AspNetCore.Identity.RoleStoreBase<,,,>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class RoleStoreBase : System.IDisposable, Microsoft.AspNetCore.Identity.IRoleStore, Microsoft.AspNetCore.Identity.IRoleClaimStore, Microsoft.AspNetCore.Identity.IQueryableRoleStore where TKey : System.IEquatable where TRole : Microsoft.AspNetCore.Identity.IdentityRole where TRoleClaim : Microsoft.AspNetCore.Identity.IdentityRoleClaim, new() where TUserRole : Microsoft.AspNetCore.Identity.IdentityUserRole, new() + // Generated from `Microsoft.AspNetCore.Identity.RoleStoreBase<,,,>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 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; @@ -133,8 +133,8 @@ namespace Microsoft public abstract System.Threading.Tasks.Task UpdateAsync(TRole role, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.AspNetCore.Identity.UserStoreBase<,,,,,,,>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class UserStoreBase : Microsoft.AspNetCore.Identity.UserStoreBase, System.IDisposable, Microsoft.AspNetCore.Identity.IUserStore, Microsoft.AspNetCore.Identity.IUserRoleStore 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() + // Generated from `Microsoft.AspNetCore.Identity.UserStoreBase<,,,,,,,>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -147,8 +147,8 @@ namespace Microsoft public UserStoreBase(Microsoft.AspNetCore.Identity.IdentityErrorDescriber describer) : base(default(Microsoft.AspNetCore.Identity.IdentityErrorDescriber)) => throw null; } - // Generated from `Microsoft.AspNetCore.Identity.UserStoreBase<,,,,>` in `Microsoft.Extensions.Identity.Stores, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class UserStoreBase : System.IDisposable, Microsoft.AspNetCore.Identity.IUserTwoFactorStore, Microsoft.AspNetCore.Identity.IUserTwoFactorRecoveryCodeStore, Microsoft.AspNetCore.Identity.IUserStore, Microsoft.AspNetCore.Identity.IUserSecurityStampStore, Microsoft.AspNetCore.Identity.IUserPhoneNumberStore, Microsoft.AspNetCore.Identity.IUserPasswordStore, Microsoft.AspNetCore.Identity.IUserLoginStore, Microsoft.AspNetCore.Identity.IUserLockoutStore, Microsoft.AspNetCore.Identity.IUserEmailStore, Microsoft.AspNetCore.Identity.IUserClaimStore, Microsoft.AspNetCore.Identity.IUserAuthenticatorKeyStore, Microsoft.AspNetCore.Identity.IUserAuthenticationTokenStore, Microsoft.AspNetCore.Identity.IQueryableUserStore 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() + // Generated from `Microsoft.AspNetCore.Identity.UserStoreBase<,,,,>` in `Microsoft.Extensions.Identity.Stores, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 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)); @@ -169,8 +169,8 @@ namespace Microsoft public abstract System.Threading.Tasks.Task FindByNameAsync(string normalizedUserName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); protected abstract System.Threading.Tasks.Task FindTokenAsync(TUser user, string loginProvider, string name, System.Threading.CancellationToken cancellationToken); protected abstract System.Threading.Tasks.Task FindUserAsync(TKey userId, System.Threading.CancellationToken cancellationToken); - protected abstract System.Threading.Tasks.Task FindUserLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); protected abstract System.Threading.Tasks.Task FindUserLoginAsync(TKey userId, string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); + protected abstract System.Threading.Tasks.Task FindUserLoginAsync(string loginProvider, string providerKey, System.Threading.CancellationToken cancellationToken); public virtual System.Threading.Tasks.Task GetAccessFailedCountAsync(TUser user, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task GetAuthenticatorKeyAsync(TUser user, System.Threading.CancellationToken cancellationToken) => throw null; public abstract System.Threading.Tasks.Task> GetClaimsAsync(TUser user, 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 80ed5c2540c..4b1dd8b8ace 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 @@ -6,32 +6,32 @@ namespace Microsoft { namespace Localization { - // Generated from `Microsoft.Extensions.Localization.IStringLocalizer` in `Microsoft.Extensions.Localization.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.IStringLocalizer` in `Microsoft.Extensions.Localization.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStringLocalizer { System.Collections.Generic.IEnumerable GetAllStrings(bool includeParentCultures); - Microsoft.Extensions.Localization.LocalizedString this[string name] { get; } Microsoft.Extensions.Localization.LocalizedString this[string name, params object[] arguments] { get; } + Microsoft.Extensions.Localization.LocalizedString this[string name] { get; } } - // Generated from `Microsoft.Extensions.Localization.IStringLocalizer<>` in `Microsoft.Extensions.Localization.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.IStringLocalizer<>` in `Microsoft.Extensions.Localization.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStringLocalizer : Microsoft.Extensions.Localization.IStringLocalizer { } - // Generated from `Microsoft.Extensions.Localization.IStringLocalizerFactory` in `Microsoft.Extensions.Localization.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.IStringLocalizerFactory` in `Microsoft.Extensions.Localization.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IStringLocalizerFactory { - Microsoft.Extensions.Localization.IStringLocalizer Create(string baseName, string location); Microsoft.Extensions.Localization.IStringLocalizer Create(System.Type resourceSource); + Microsoft.Extensions.Localization.IStringLocalizer Create(string baseName, string location); } - // Generated from `Microsoft.Extensions.Localization.LocalizedString` in `Microsoft.Extensions.Localization.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.LocalizedString` in `Microsoft.Extensions.Localization.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LocalizedString { - public LocalizedString(string name, string value, bool resourceNotFound, string searchedLocation) => throw null; - public LocalizedString(string name, string value, bool resourceNotFound) => throw null; 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 bool ResourceNotFound { get => throw null; } public string SearchedLocation { get => throw null; } @@ -40,21 +40,21 @@ namespace Microsoft public static implicit operator string(Microsoft.Extensions.Localization.LocalizedString localizedString) => throw null; } - // Generated from `Microsoft.Extensions.Localization.StringLocalizer<>` in `Microsoft.Extensions.Localization.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class StringLocalizer : Microsoft.Extensions.Localization.IStringLocalizer, Microsoft.Extensions.Localization.IStringLocalizer + // Generated from `Microsoft.Extensions.Localization.StringLocalizer<>` in `Microsoft.Extensions.Localization.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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] { get => 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; } - // Generated from `Microsoft.Extensions.Localization.StringLocalizerExtensions` in `Microsoft.Extensions.Localization.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.StringLocalizerExtensions` in `Microsoft.Extensions.Localization.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, params object[] arguments) => 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 398ac84965d..ee1d6caabdc 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 @@ -6,70 +6,70 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.LocalizationServiceCollectionExtensions` in `Microsoft.Extensions.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.LocalizationServiceCollectionExtensions` in `Microsoft.Extensions.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class LocalizationServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; 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 { - // Generated from `Microsoft.Extensions.Localization.IResourceNamesCache` in `Microsoft.Extensions.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.IResourceNamesCache` in `Microsoft.Extensions.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IResourceNamesCache { System.Collections.Generic.IList GetOrAdd(string name, System.Func> valueFactory); } - // Generated from `Microsoft.Extensions.Localization.LocalizationOptions` in `Microsoft.Extensions.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.LocalizationOptions` in `Microsoft.Extensions.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LocalizationOptions { public LocalizationOptions() => throw null; public string ResourcesPath { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Localization.ResourceLocationAttribute` in `Microsoft.Extensions.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.ResourceLocationAttribute` in `Microsoft.Extensions.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResourceLocationAttribute : System.Attribute { public string ResourceLocation { get => throw null; } public ResourceLocationAttribute(string resourceLocation) => throw null; } - // Generated from `Microsoft.Extensions.Localization.ResourceManagerStringLocalizer` in `Microsoft.Extensions.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.ResourceManagerStringLocalizer` in `Microsoft.Extensions.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResourceManagerStringLocalizer : Microsoft.Extensions.Localization.IStringLocalizer { 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] { get => 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; } - // Generated from `Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory` in `Microsoft.Extensions.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.ResourceManagerStringLocalizerFactory` in `Microsoft.Extensions.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResourceManagerStringLocalizerFactory : Microsoft.Extensions.Localization.IStringLocalizerFactory { - public Microsoft.Extensions.Localization.IStringLocalizer Create(string baseName, string location) => throw null; 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; protected virtual Microsoft.Extensions.Localization.ResourceLocationAttribute GetResourceLocationAttribute(System.Reflection.Assembly assembly) => throw null; - protected virtual string GetResourcePrefix(string location, string baseName, string resourceLocation) => throw null; - protected virtual string GetResourcePrefix(string baseResourceName, string baseNamespace) => throw null; - protected virtual string GetResourcePrefix(System.Reflection.TypeInfo typeInfo, string baseNamespace, string resourcesRelativePath) => 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; } - // Generated from `Microsoft.Extensions.Localization.ResourceNamesCache` in `Microsoft.Extensions.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.ResourceNamesCache` in `Microsoft.Extensions.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ResourceNamesCache : Microsoft.Extensions.Localization.IResourceNamesCache { public System.Collections.Generic.IList GetOrAdd(string name, System.Func> valueFactory) => throw null; public ResourceNamesCache() => throw null; } - // Generated from `Microsoft.Extensions.Localization.RootNamespaceAttribute` in `Microsoft.Extensions.Localization, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Localization.RootNamespaceAttribute` in `Microsoft.Extensions.Localization, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RootNamespaceAttribute : System.Attribute { 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 315431f5871..88f677b0965 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 @@ -6,15 +6,15 @@ namespace Microsoft { namespace Logging { - // Generated from `Microsoft.Extensions.Logging.EventId` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.EventId` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct EventId { 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 override bool Equals(object obj) => throw null; public bool Equals(Microsoft.Extensions.Logging.EventId other) => throw null; - public EventId(int id, string name = default(string)) => 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; } @@ -22,14 +22,14 @@ namespace Microsoft public static implicit operator Microsoft.Extensions.Logging.EventId(int i) => throw null; } - // Generated from `Microsoft.Extensions.Logging.IExternalScopeProvider` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.IExternalScopeProvider` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IExternalScopeProvider { void ForEachScope(System.Action callback, TState state); System.IDisposable Push(object state); } - // Generated from `Microsoft.Extensions.Logging.ILogger` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.ILogger` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILogger { System.IDisposable BeginScope(TState state); @@ -37,31 +37,38 @@ namespace Microsoft void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter); } - // Generated from `Microsoft.Extensions.Logging.ILogger<>` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.ILogger<>` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILogger : Microsoft.Extensions.Logging.ILogger { } - // Generated from `Microsoft.Extensions.Logging.ILoggerFactory` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.ILoggerFactory` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILoggerFactory : System.IDisposable { void AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider); Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName); } - // Generated from `Microsoft.Extensions.Logging.ILoggerProvider` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.ILoggerProvider` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILoggerProvider : System.IDisposable { Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName); } - // Generated from `Microsoft.Extensions.Logging.ISupportExternalScope` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.ISupportExternalScope` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ISupportExternalScope { void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider); } - // Generated from `Microsoft.Extensions.Logging.LogLevel` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LogDefineOptions` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class LogDefineOptions + { + public LogDefineOptions() => throw null; + public bool SkipEnabledCheck { get => throw null; set => throw null; } + } + + // Generated from `Microsoft.Extensions.Logging.LogLevel` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum LogLevel { Critical, @@ -73,8 +80,8 @@ namespace Microsoft Warning, } - // Generated from `Microsoft.Extensions.Logging.Logger<>` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class Logger : Microsoft.Extensions.Logging.ILogger, Microsoft.Extensions.Logging.ILogger + // Generated from `Microsoft.Extensions.Logging.Logger<>` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class Logger : Microsoft.Extensions.Logging.ILogger, Microsoft.Extensions.Logging.ILogger { System.IDisposable Microsoft.Extensions.Logging.ILogger.BeginScope(TState state) => throw null; bool Microsoft.Extensions.Logging.ILogger.IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) => throw null; @@ -82,41 +89,41 @@ namespace Microsoft public Logger(Microsoft.Extensions.Logging.ILoggerFactory factory) => throw null; } - // Generated from `Microsoft.Extensions.Logging.LoggerExtensions` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LoggerExtensions` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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, string message, params object[] args) => throw null; - public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, System.Exception exception, string message, 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, string message, 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; - public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; - public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; - public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, 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, string message, params object[] args) => throw null; + public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, System.Exception exception, string message, params object[] args) => throw null; + public static void Log(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.LogLevel logLevel, string message, params object[] args) => throw null; public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) => throw null; - public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; - public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; - public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; + public static void LogCritical(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) => throw null; - public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; - public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; - public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; + public static void LogDebug(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) => throw null; - public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; - public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; - public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; + public static void LogError(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) => throw null; - public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; - public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; - public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; + public static void LogInformation(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, 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 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, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, string message, params object[] args) => throw null; + public static void LogTrace(this Microsoft.Extensions.Logging.ILogger logger, string message, params object[] args) => throw null; public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, System.Exception exception, string message, params object[] args) => throw null; + public static void LogWarning(this Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Logging.EventId eventId, string message, params object[] args) => throw null; + 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; } - // Generated from `Microsoft.Extensions.Logging.LoggerExternalScopeProvider` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LoggerExternalScopeProvider` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LoggerExternalScopeProvider : Microsoft.Extensions.Logging.IExternalScopeProvider { public void ForEachScope(System.Action callback, TState state) => throw null; @@ -124,48 +131,67 @@ namespace Microsoft public System.IDisposable Push(object state) => throw null; } - // Generated from `Microsoft.Extensions.Logging.LoggerFactoryExtensions` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LoggerFactoryExtensions` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class LoggerFactoryExtensions { - public static Microsoft.Extensions.Logging.ILogger CreateLogger(this Microsoft.Extensions.Logging.ILoggerFactory factory) => throw null; 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; } - // Generated from `Microsoft.Extensions.Logging.LoggerMessage` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LoggerMessage` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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) => 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) => 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) => 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; + } + + // Generated from `Microsoft.Extensions.Logging.LoggerMessageAttribute` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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; } } namespace Abstractions { - // Generated from `Microsoft.Extensions.Logging.Abstractions.LogEntry<>` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Abstractions.LogEntry<>` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - public LogEntry(Microsoft.Extensions.Logging.LogLevel logLevel, string category, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => 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; } } - // Generated from `Microsoft.Extensions.Logging.Abstractions.NullLogger` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Abstractions.NullLogger` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NullLogger : Microsoft.Extensions.Logging.ILogger { public System.IDisposable BeginScope(TState state) => throw null; @@ -174,8 +200,8 @@ namespace Microsoft public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func formatter) => throw null; } - // Generated from `Microsoft.Extensions.Logging.Abstractions.NullLogger<>` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class NullLogger : Microsoft.Extensions.Logging.ILogger, Microsoft.Extensions.Logging.ILogger + // Generated from `Microsoft.Extensions.Logging.Abstractions.NullLogger<>` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -184,8 +210,8 @@ namespace Microsoft public NullLogger() => throw null; } - // Generated from `Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class NullLoggerFactory : System.IDisposable, Microsoft.Extensions.Logging.ILoggerFactory + // Generated from `Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -194,8 +220,8 @@ namespace Microsoft public NullLoggerFactory() => throw null; } - // Generated from `Microsoft.Extensions.Logging.Abstractions.NullLoggerProvider` in `Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class NullLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider + // Generated from `Microsoft.Extensions.Logging.Abstractions.NullLoggerProvider` in `Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class NullLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable { public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) => throw null; public void Dispose() => throw null; @@ -206,14 +232,3 @@ namespace Microsoft } } } -namespace System -{ - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - } - } -} 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 9e81f3e05c6..f787be48cd3 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Logging { - // Generated from `Microsoft.Extensions.Logging.LoggingBuilderExtensions` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Logging.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LoggingBuilderExtensions` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -14,31 +14,31 @@ namespace Microsoft namespace Configuration { - // Generated from `Microsoft.Extensions.Logging.Configuration.ILoggerProviderConfiguration<>` in `Microsoft.Extensions.Logging.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Configuration.ILoggerProviderConfiguration<>` in `Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILoggerProviderConfiguration { Microsoft.Extensions.Configuration.IConfiguration Configuration { get; } } - // Generated from `Microsoft.Extensions.Logging.Configuration.ILoggerProviderConfigurationFactory` in `Microsoft.Extensions.Logging.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Configuration.ILoggerProviderConfigurationFactory` in `Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILoggerProviderConfigurationFactory { Microsoft.Extensions.Configuration.IConfiguration GetConfiguration(System.Type providerType); } - // Generated from `Microsoft.Extensions.Logging.Configuration.LoggerProviderOptions` in `Microsoft.Extensions.Logging.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Configuration.LoggerProviderOptions` in `Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class LoggerProviderOptions { public static void RegisterProviderOptions(Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TOptions : class => throw null; } - // Generated from `Microsoft.Extensions.Logging.Configuration.LoggerProviderOptionsChangeTokenSource<,>` in `Microsoft.Extensions.Logging.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Configuration.LoggerProviderOptionsChangeTokenSource<,>` in `Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LoggerProviderOptionsChangeTokenSource : Microsoft.Extensions.Options.ConfigurationChangeTokenSource { public LoggerProviderOptionsChangeTokenSource(Microsoft.Extensions.Logging.Configuration.ILoggerProviderConfiguration providerConfiguration) : base(default(Microsoft.Extensions.Configuration.IConfiguration)) => throw null; } - // Generated from `Microsoft.Extensions.Logging.Configuration.LoggingBuilderConfigurationExtensions` in `Microsoft.Extensions.Logging.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Configuration.LoggingBuilderConfigurationExtensions` in `Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class LoggingBuilderConfigurationExtensions { public static void AddConfiguration(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; @@ -48,3 +48,18 @@ namespace Microsoft } } } +namespace System +{ + namespace Diagnostics + { + namespace CodeAnalysis + { + /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'RequiresUnreferencedCodeAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + } + } +} 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 63b781f6907..281c6573fe6 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 @@ -6,24 +6,24 @@ namespace Microsoft { namespace Logging { - // Generated from `Microsoft.Extensions.Logging.ConsoleLoggerExtensions` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.ConsoleLoggerExtensions` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ConsoleLoggerExtensions { - public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsoleFormatter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) where TFormatter : Microsoft.Extensions.Logging.Console.ConsoleFormatter where TOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions => throw null; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsoleFormatter(this Microsoft.Extensions.Logging.ILoggingBuilder builder) where TFormatter : Microsoft.Extensions.Logging.Console.ConsoleFormatter where TOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddJsonConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsoleFormatter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) where TFormatter : Microsoft.Extensions.Logging.Console.ConsoleFormatter where TOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddJsonConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddSimpleConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddJsonConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddSimpleConsole(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; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddSimpleConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) => throw null; 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 { - // Generated from `Microsoft.Extensions.Logging.Console.ConsoleFormatter` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Console.ConsoleFormatter` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ConsoleFormatter { protected ConsoleFormatter(string name) => throw null; @@ -31,7 +31,7 @@ namespace Microsoft public abstract void Write(Microsoft.Extensions.Logging.Abstractions.LogEntry logEntry, Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider, System.IO.TextWriter textWriter); } - // Generated from `Microsoft.Extensions.Logging.Console.ConsoleFormatterNames` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Console.ConsoleFormatterNames` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ConsoleFormatterNames { public const string Json = default; @@ -39,7 +39,7 @@ namespace Microsoft public const string Systemd = default; } - // Generated from `Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConsoleFormatterOptions { public ConsoleFormatterOptions() => throw null; @@ -48,14 +48,14 @@ namespace Microsoft public bool UseUtcTimestamp { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Logging.Console.ConsoleLoggerFormat` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Console.ConsoleLoggerFormat` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum ConsoleLoggerFormat { Default, Systemd, } - // Generated from `Microsoft.Extensions.Logging.Console.ConsoleLoggerOptions` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Console.ConsoleLoggerOptions` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConsoleLoggerOptions { public ConsoleLoggerOptions() => throw null; @@ -68,24 +68,24 @@ namespace Microsoft public bool UseUtcTimestamp { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConsoleLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ISupportExternalScope, Microsoft.Extensions.Logging.ILoggerProvider + // Generated from `Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable { - public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options, System.Collections.Generic.IEnumerable formatters) => 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 Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; public void Dispose() => throw null; public void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider) => throw null; } - // Generated from `Microsoft.Extensions.Logging.Console.JsonConsoleFormatterOptions` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Console.JsonConsoleFormatterOptions` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class JsonConsoleFormatterOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions { public JsonConsoleFormatterOptions() => throw null; public System.Text.Json.JsonWriterOptions JsonWriterOptions { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.Logging.Console.LoggerColorBehavior` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Console.LoggerColorBehavior` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum LoggerColorBehavior { Default, @@ -93,7 +93,7 @@ namespace Microsoft Enabled, } - // Generated from `Microsoft.Extensions.Logging.Console.SimpleConsoleFormatterOptions` in `Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.Console.SimpleConsoleFormatterOptions` in `Microsoft.Extensions.Logging.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SimpleConsoleFormatterOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions { public Microsoft.Extensions.Logging.Console.LoggerColorBehavior ColorBehavior { get => throw null; set => throw null; } @@ -105,24 +105,3 @@ namespace Microsoft } } } -namespace System -{ - namespace Diagnostics - { - namespace CodeAnalysis - { - /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - } - } - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - - } - } -} 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 7571ca1a9f2..62ee5e82901 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Logging { - // Generated from `Microsoft.Extensions.Logging.DebugLoggerFactoryExtensions` in `Microsoft.Extensions.Logging.Debug, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.DebugLoggerFactoryExtensions` in `Microsoft.Extensions.Logging.Debug, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DebugLoggerFactoryExtensions { public static Microsoft.Extensions.Logging.ILoggingBuilder AddDebug(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; @@ -14,8 +14,8 @@ namespace Microsoft namespace Debug { - // Generated from `Microsoft.Extensions.Logging.Debug.DebugLoggerProvider` in `Microsoft.Extensions.Logging.Debug, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class DebugLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider + // Generated from `Microsoft.Extensions.Logging.Debug.DebugLoggerProvider` in `Microsoft.Extensions.Logging.Debug, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DebugLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable { 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 062beacb0b7..fdd0828fb02 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 @@ -6,28 +6,28 @@ namespace Microsoft { namespace Logging { - // Generated from `Microsoft.Extensions.Logging.EventLoggerFactoryExtensions` in `Microsoft.Extensions.Logging.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.EventLoggerFactoryExtensions` in `Microsoft.Extensions.Logging.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; } namespace EventLog { - // Generated from `Microsoft.Extensions.Logging.EventLog.EventLogLoggerProvider` in `Microsoft.Extensions.Logging.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class EventLogLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ISupportExternalScope, Microsoft.Extensions.Logging.ILoggerProvider + // Generated from `Microsoft.Extensions.Logging.EventLog.EventLogLoggerProvider` in `Microsoft.Extensions.Logging.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class EventLogLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable { public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) => throw null; public void Dispose() => throw null; - public EventLogLoggerProvider(Microsoft.Extensions.Options.IOptions options) => throw null; - public EventLogLoggerProvider(Microsoft.Extensions.Logging.EventLog.EventLogSettings settings) => 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 SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider) => throw null; } - // Generated from `Microsoft.Extensions.Logging.EventLog.EventLogSettings` in `Microsoft.Extensions.Logging.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.EventLog.EventLogSettings` in `Microsoft.Extensions.Logging.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EventLogSettings { public EventLogSettings() => 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 54da58dd585..d9fb94eac95 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Logging { - // Generated from `Microsoft.Extensions.Logging.EventSourceLoggerFactoryExtensions` in `Microsoft.Extensions.Logging.EventSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.EventSourceLoggerFactoryExtensions` in `Microsoft.Extensions.Logging.EventSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EventSourceLoggerFactoryExtensions { public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventSourceLogger(this Microsoft.Extensions.Logging.ILoggingBuilder builder) => throw null; @@ -14,18 +14,18 @@ namespace Microsoft namespace EventSource { - // Generated from `Microsoft.Extensions.Logging.EventSource.EventSourceLoggerProvider` in `Microsoft.Extensions.Logging.EventSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class EventSourceLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider + // Generated from `Microsoft.Extensions.Logging.EventSource.EventSourceLoggerProvider` in `Microsoft.Extensions.Logging.EventSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; } - // Generated from `Microsoft.Extensions.Logging.EventSource.LoggingEventSource` in `Microsoft.Extensions.Logging.EventSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.EventSource.LoggingEventSource` in `Microsoft.Extensions.Logging.EventSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LoggingEventSource : System.Diagnostics.Tracing.EventSource { - // Generated from `Microsoft.Extensions.Logging.EventSource.LoggingEventSource+Keywords` in `Microsoft.Extensions.Logging.EventSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.EventSource.LoggingEventSource+Keywords` in `Microsoft.Extensions.Logging.EventSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class Keywords { public const System.Diagnostics.Tracing.EventKeywords FormattedMessage = default; 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 a0f52bf7b4b..dd9a6315114 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 @@ -6,24 +6,24 @@ namespace Microsoft { namespace Logging { - // Generated from `Microsoft.Extensions.Logging.TraceSourceFactoryExtensions` in `Microsoft.Extensions.Logging.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.TraceSourceFactoryExtensions` in `Microsoft.Extensions.Logging.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class TraceSourceFactoryExtensions { - public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string switchName, 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, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) => throw null; 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 { - // Generated from `Microsoft.Extensions.Logging.TraceSource.TraceSourceLoggerProvider` in `Microsoft.Extensions.Logging.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class TraceSourceLoggerProvider : System.IDisposable, Microsoft.Extensions.Logging.ILoggerProvider + // Generated from `Microsoft.Extensions.Logging.TraceSource.TraceSourceLoggerProvider` in `Microsoft.Extensions.Logging.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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, System.Diagnostics.TraceListener rootTraceListener) => 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 655e40c2d90..1cde6671f1a 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 @@ -6,80 +6,82 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.LoggingServiceCollectionExtensions` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.LoggingServiceCollectionExtensions` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class LoggingServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddLogging(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) => throw null; 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 { - // Generated from `Microsoft.Extensions.Logging.ActivityTrackingOptions` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.ActivityTrackingOptions` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` [System.Flags] public enum ActivityTrackingOptions { + Baggage, None, ParentId, SpanId, + Tags, TraceFlags, TraceId, TraceState, } - // Generated from `Microsoft.Extensions.Logging.FilterLoggingBuilderExtensions` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.FilterLoggingBuilderExtensions` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class FilterLoggingBuilderExtensions { - 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 static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, System.Func categoryLevelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; - public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, 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, System.Func levelFilter) => throw null; - public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, string category, Microsoft.Extensions.Logging.LogLevel level) => throw null; - public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, System.Func filter) => throw null; - public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, System.Func categoryLevelFilter) => throw null; - public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, System.Func levelFilter) => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string category, System.Func levelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string category, Microsoft.Extensions.Logging.LogLevel level) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func categoryLevelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func levelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; + 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; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func filter) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string category, System.Func levelFilter) => throw null; public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string category, Microsoft.Extensions.Logging.LogLevel level) => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func filter) => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func categoryLevelFilter) => throw null; - public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func levelFilter) => throw null; + public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, System.Func levelFilter) => throw null; + public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, System.Func categoryLevelFilter) => throw null; + public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, System.Func filter) => throw null; + public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, string category, System.Func levelFilter) => throw null; + public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, string category, Microsoft.Extensions.Logging.LogLevel level) => throw null; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func levelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Func categoryLevelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string category, System.Func levelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; + public static Microsoft.Extensions.Logging.ILoggingBuilder AddFilter(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string category, Microsoft.Extensions.Logging.LogLevel level) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; + public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, System.Func levelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; + public static Microsoft.Extensions.Logging.LoggerFilterOptions AddFilter(this Microsoft.Extensions.Logging.LoggerFilterOptions builder, System.Func categoryLevelFilter) where T : Microsoft.Extensions.Logging.ILoggerProvider => throw null; + 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; } - // Generated from `Microsoft.Extensions.Logging.ILoggingBuilder` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.ILoggingBuilder` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface ILoggingBuilder { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - // Generated from `Microsoft.Extensions.Logging.LoggerFactory` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class LoggerFactory : System.IDisposable, Microsoft.Extensions.Logging.ILoggerFactory + // Generated from `Microsoft.Extensions.Logging.LoggerFactory` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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(System.Collections.Generic.IEnumerable providers, Microsoft.Extensions.Options.IOptionsMonitor filterOption, Microsoft.Extensions.Options.IOptions options = default(Microsoft.Extensions.Options.IOptions)) => 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.Logging.LoggerFilterOptions filterOptions) => throw null; - public LoggerFactory(System.Collections.Generic.IEnumerable providers) => throw null; public LoggerFactory() => throw null; + public LoggerFactory(System.Collections.Generic.IEnumerable providers) => 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 = default(Microsoft.Extensions.Options.IOptions)) => throw null; + public LoggerFactory(System.Collections.Generic.IEnumerable providers, Microsoft.Extensions.Logging.LoggerFilterOptions filterOptions) => throw null; } - // Generated from `Microsoft.Extensions.Logging.LoggerFactoryOptions` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LoggerFactoryOptions` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LoggerFactoryOptions { public Microsoft.Extensions.Logging.ActivityTrackingOptions ActivityTrackingOptions { get => throw null; set => throw null; } public LoggerFactoryOptions() => throw null; } - // Generated from `Microsoft.Extensions.Logging.LoggerFilterOptions` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LoggerFilterOptions` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LoggerFilterOptions { public bool CaptureScopes { get => throw null; set => throw null; } @@ -88,7 +90,7 @@ namespace Microsoft public System.Collections.Generic.IList Rules { get => throw null; } } - // Generated from `Microsoft.Extensions.Logging.LoggerFilterRule` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LoggerFilterRule` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LoggerFilterRule { public string CategoryName { get => throw null; } @@ -99,7 +101,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.Extensions.Logging.LoggingBuilderExtensions` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Logging.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.LoggingBuilderExtensions` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; @@ -108,7 +110,7 @@ namespace Microsoft public static Microsoft.Extensions.Logging.ILoggingBuilder SetMinimumLevel(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Microsoft.Extensions.Logging.LogLevel level) => throw null; } - // Generated from `Microsoft.Extensions.Logging.ProviderAliasAttribute` in `Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Logging.ProviderAliasAttribute` in `Microsoft.Extensions.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ProviderAliasAttribute : System.Attribute { public string Alias { get => 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 76bfdf1bdec..073ff3ccfcd 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 @@ -6,16 +6,16 @@ namespace Microsoft { namespace ObjectPool { - // Generated from `Microsoft.Extensions.ObjectPool.DefaultObjectPool<>` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.DefaultObjectPool<>` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultObjectPool : Microsoft.Extensions.ObjectPool.ObjectPool where T : class { - public DefaultObjectPool(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy, int maximumRetained) => throw null; public DefaultObjectPool(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) => throw null; + public DefaultObjectPool(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy, int maximumRetained) => throw null; public override T Get() => throw null; public override void Return(T obj) => throw null; } - // Generated from `Microsoft.Extensions.ObjectPool.DefaultObjectPoolProvider` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.DefaultObjectPoolProvider` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultObjectPoolProvider : Microsoft.Extensions.ObjectPool.ObjectPoolProvider { public override Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) where T : class => throw null; @@ -23,7 +23,7 @@ namespace Microsoft public int MaximumRetained { get => throw null; set => throw null; } } - // Generated from `Microsoft.Extensions.ObjectPool.DefaultPooledObjectPolicy<>` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.DefaultPooledObjectPolicy<>` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DefaultPooledObjectPolicy : Microsoft.Extensions.ObjectPool.PooledObjectPolicy where T : class, new() { public override T Create() => throw null; @@ -31,14 +31,14 @@ namespace Microsoft public override bool Return(T obj) => throw null; } - // Generated from `Microsoft.Extensions.ObjectPool.IPooledObjectPolicy<>` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.IPooledObjectPolicy<>` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPooledObjectPolicy { T Create(); bool Return(T obj); } - // Generated from `Microsoft.Extensions.ObjectPool.LeakTrackingObjectPool<>` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.LeakTrackingObjectPool<>` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class LeakTrackingObjectPool : Microsoft.Extensions.ObjectPool.ObjectPool where T : class { public override T Get() => throw null; @@ -46,20 +46,20 @@ namespace Microsoft public override void Return(T obj) => throw null; } - // Generated from `Microsoft.Extensions.ObjectPool.LeakTrackingObjectPoolProvider` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.LeakTrackingObjectPoolProvider` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.ObjectPool.ObjectPool` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.ObjectPool` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } - // Generated from `Microsoft.Extensions.ObjectPool.ObjectPool<>` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.ObjectPool<>` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ObjectPool where T : class { public abstract T Get(); @@ -67,22 +67,22 @@ namespace Microsoft public abstract void Return(T obj); } - // Generated from `Microsoft.Extensions.ObjectPool.ObjectPoolProvider` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.ObjectPoolProvider` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class ObjectPoolProvider { - public abstract Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) where T : class; 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; } - // Generated from `Microsoft.Extensions.ObjectPool.ObjectPoolProviderExtensions` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.ObjectPoolProviderExtensions` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ObjectPoolProviderExtensions { - public static Microsoft.Extensions.ObjectPool.ObjectPool CreateStringBuilderPool(this Microsoft.Extensions.ObjectPool.ObjectPoolProvider provider, int initialCapacity, int maximumRetainedCapacity) => throw null; 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; } - // Generated from `Microsoft.Extensions.ObjectPool.PooledObjectPolicy<>` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.PooledObjectPolicy<>` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public abstract class PooledObjectPolicy : Microsoft.Extensions.ObjectPool.IPooledObjectPolicy { public abstract T Create(); @@ -90,7 +90,7 @@ namespace Microsoft public abstract bool Return(T obj); } - // Generated from `Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy` in `Microsoft.Extensions.ObjectPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy` in `Microsoft.Extensions.ObjectPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StringBuilderPooledObjectPolicy : Microsoft.Extensions.ObjectPool.PooledObjectPolicy { public override System.Text.StringBuilder Create() => 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 5f09ef1d2d5..a6b39c41759 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 @@ -6,48 +6,63 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class OptionsBuilderConfigurationExtensions { - 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 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; } - // Generated from `Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class OptionsConfigurationServiceCollectionExtensions { - 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; - 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, 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, 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 { - // Generated from `Microsoft.Extensions.Options.ConfigurationChangeTokenSource<>` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ConfigurationChangeTokenSource<>` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConfigurationChangeTokenSource : Microsoft.Extensions.Options.IOptionsChangeTokenSource { - public ConfigurationChangeTokenSource(string name, Microsoft.Extensions.Configuration.IConfiguration config) => throw null; public ConfigurationChangeTokenSource(Microsoft.Extensions.Configuration.IConfiguration config) => throw null; + public ConfigurationChangeTokenSource(string name, Microsoft.Extensions.Configuration.IConfiguration config) => throw null; public Microsoft.Extensions.Primitives.IChangeToken GetChangeToken() => throw null; public string Name { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ConfigureFromConfigurationOptions<>` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ConfigureFromConfigurationOptions<>` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConfigureFromConfigurationOptions : Microsoft.Extensions.Options.ConfigureOptions where TOptions : class { public ConfigureFromConfigurationOptions(Microsoft.Extensions.Configuration.IConfiguration config) : base(default(System.Action)) => throw null; } - // Generated from `Microsoft.Extensions.Options.NamedConfigureFromConfigurationOptions<>` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.NamedConfigureFromConfigurationOptions<>` in `Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NamedConfigureFromConfigurationOptions : Microsoft.Extensions.Options.ConfigureNamedOptions where TOptions : class { - public NamedConfigureFromConfigurationOptions(string name, Microsoft.Extensions.Configuration.IConfiguration config, System.Action configureBinder) : base(default(string), default(System.Action)) => throw null; 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; } } } } +namespace System +{ + namespace Diagnostics + { + namespace CodeAnalysis + { + /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'RequiresUnreferencedCodeAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + } + } +} 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 b1ce3aa9e21..7ac61567360 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.OptionsBuilderDataAnnotationsExtensions` in `Microsoft.Extensions.Options.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.OptionsBuilderDataAnnotationsExtensions` in `Microsoft.Extensions.Options.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class OptionsBuilderDataAnnotationsExtensions { public static Microsoft.Extensions.Options.OptionsBuilder ValidateDataAnnotations(this Microsoft.Extensions.Options.OptionsBuilder optionsBuilder) where TOptions : class => throw null; @@ -15,7 +15,7 @@ namespace Microsoft } namespace Options { - // Generated from `Microsoft.Extensions.Options.DataAnnotationValidateOptions<>` in `Microsoft.Extensions.Options.DataAnnotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.DataAnnotationValidateOptions<>` in `Microsoft.Extensions.Options.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DataAnnotationValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class { public DataAnnotationValidateOptions(string name) => throw null; @@ -26,3 +26,18 @@ namespace Microsoft } } } +namespace System +{ + namespace Diagnostics + { + namespace CodeAnalysis + { + /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Options.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Options.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + /* Duplicate type 'RequiresUnreferencedCodeAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Options.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + + } + } +} 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 a50698fc082..88cc420093b 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 @@ -6,28 +6,28 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class OptionsServiceCollectionExtensions { - public static Microsoft.Extensions.Options.OptionsBuilder AddOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name) where TOptions : class => throw null; - public static Microsoft.Extensions.Options.OptionsBuilder AddOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TOptions : class => throw null; public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => 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.Options.OptionsBuilder AddOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) where TOptions : class => throw null; + public static Microsoft.Extensions.Options.OptionsBuilder AddOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name) where TOptions : class => throw null; 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) where TConfigureOptions : class => 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 PostConfigure(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureOptions) where TOptions : class => 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) 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 { - // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,,,,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureOptions, Microsoft.Extensions.Options.IConfigureNamedOptions where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TDep5 : class where TOptions : class + // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,,,,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 System.Action Action { get => throw null; } public void Configure(TOptions options) => throw null; @@ -41,8 +41,8 @@ namespace Microsoft public string Name { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,,,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureOptions, Microsoft.Extensions.Options.IConfigureNamedOptions where TDep1 : class where TDep2 : class where TDep3 : class where TDep4 : class where TOptions : class + // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,,,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -55,8 +55,8 @@ namespace Microsoft public string Name { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureOptions, Microsoft.Extensions.Options.IConfigureNamedOptions where TDep1 : class where TDep2 : class where TDep3 : class where TOptions : class + // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -68,8 +68,8 @@ namespace Microsoft public string Name { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureOptions, Microsoft.Extensions.Options.IConfigureNamedOptions where TDep1 : class where TDep2 : class where TOptions : class + // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -80,8 +80,8 @@ namespace Microsoft public string Name { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureOptions, Microsoft.Extensions.Options.IConfigureNamedOptions where TDep : class where TOptions : class + // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -91,8 +91,8 @@ namespace Microsoft public string Name { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureOptions, Microsoft.Extensions.Options.IConfigureNamedOptions where TOptions : class + // Generated from `Microsoft.Extensions.Options.ConfigureNamedOptions<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -101,7 +101,7 @@ namespace Microsoft public string Name { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ConfigureOptions<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ConfigureOptions<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ConfigureOptions : Microsoft.Extensions.Options.IConfigureOptions where TOptions : class { public System.Action Action { get => throw null; } @@ -109,38 +109,38 @@ namespace Microsoft public ConfigureOptions(System.Action action) => throw null; } - // Generated from `Microsoft.Extensions.Options.IConfigureNamedOptions<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IConfigureNamedOptions<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConfigureNamedOptions : Microsoft.Extensions.Options.IConfigureOptions where TOptions : class { void Configure(string name, TOptions options); } - // Generated from `Microsoft.Extensions.Options.IConfigureOptions<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IConfigureOptions<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IConfigureOptions where TOptions : class { void Configure(TOptions options); } - // Generated from `Microsoft.Extensions.Options.IOptions<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IOptions<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IOptions where TOptions : class { TOptions Value { get; } } - // Generated from `Microsoft.Extensions.Options.IOptionsChangeTokenSource<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IOptionsChangeTokenSource<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IOptionsChangeTokenSource { Microsoft.Extensions.Primitives.IChangeToken GetChangeToken(); string Name { get; } } - // Generated from `Microsoft.Extensions.Options.IOptionsFactory<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IOptionsFactory<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IOptionsFactory where TOptions : class { TOptions Create(string name); } - // Generated from `Microsoft.Extensions.Options.IOptionsMonitor<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IOptionsMonitor<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IOptionsMonitor { TOptions CurrentValue { get; } @@ -148,7 +148,7 @@ namespace Microsoft System.IDisposable OnChange(System.Action listener); } - // Generated from `Microsoft.Extensions.Options.IOptionsMonitorCache<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IOptionsMonitorCache<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IOptionsMonitorCache where TOptions : class { void Clear(); @@ -157,64 +157,64 @@ namespace Microsoft bool TryRemove(string name); } - // Generated from `Microsoft.Extensions.Options.IOptionsSnapshot<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IOptionsSnapshot<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IOptionsSnapshot : Microsoft.Extensions.Options.IOptions where TOptions : class { TOptions Get(string name); } - // Generated from `Microsoft.Extensions.Options.IPostConfigureOptions<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IPostConfigureOptions<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IPostConfigureOptions where TOptions : class { void PostConfigure(string name, TOptions options); } - // Generated from `Microsoft.Extensions.Options.IValidateOptions<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.IValidateOptions<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IValidateOptions where TOptions : class { Microsoft.Extensions.Options.ValidateOptionsResult Validate(string name, TOptions options); } - // Generated from `Microsoft.Extensions.Options.Options` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.Options` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class Options { public static Microsoft.Extensions.Options.IOptions Create(TOptions options) where TOptions : class => throw null; public static string DefaultName; } - // Generated from `Microsoft.Extensions.Options.OptionsBuilder<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.OptionsBuilder<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OptionsBuilder where TOptions : class { - public virtual Microsoft.Extensions.Options.OptionsBuilder Configure(System.Action configureOptions) where TDep : 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 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 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 OptionsBuilder(Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name) => 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 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 Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get => 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 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; } - // Generated from `Microsoft.Extensions.Options.OptionsCache<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.OptionsCache<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OptionsCache : Microsoft.Extensions.Options.IOptionsMonitorCache where TOptions : class { public void Clear() => throw null; @@ -224,25 +224,25 @@ namespace Microsoft public virtual bool TryRemove(string name) => throw null; } - // Generated from `Microsoft.Extensions.Options.OptionsFactory<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.OptionsFactory<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OptionsFactory : Microsoft.Extensions.Options.IOptionsFactory where TOptions : class { public TOptions Create(string name) => throw null; protected virtual TOptions CreateInstance(string name) => throw null; - public OptionsFactory(System.Collections.Generic.IEnumerable> setups, System.Collections.Generic.IEnumerable> postConfigures, System.Collections.Generic.IEnumerable> validations) => throw null; 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; } - // Generated from `Microsoft.Extensions.Options.OptionsManager<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class OptionsManager : Microsoft.Extensions.Options.IOptionsSnapshot, Microsoft.Extensions.Options.IOptions where TOptions : class + // Generated from `Microsoft.Extensions.Options.OptionsManager<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 TOptions Value { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.OptionsMonitor<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class OptionsMonitor : System.IDisposable, Microsoft.Extensions.Options.IOptionsMonitor where TOptions : class + // Generated from `Microsoft.Extensions.Options.OptionsMonitor<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class OptionsMonitor : Microsoft.Extensions.Options.IOptionsMonitor, System.IDisposable where TOptions : class { public TOptions CurrentValue { get => throw null; } public void Dispose() => throw null; @@ -251,13 +251,13 @@ namespace Microsoft public OptionsMonitor(Microsoft.Extensions.Options.IOptionsFactory factory, System.Collections.Generic.IEnumerable> sources, Microsoft.Extensions.Options.IOptionsMonitorCache cache) => throw null; } - // Generated from `Microsoft.Extensions.Options.OptionsMonitorExtensions` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.OptionsMonitorExtensions` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class OptionsMonitorExtensions { public static System.IDisposable OnChange(this Microsoft.Extensions.Options.IOptionsMonitor monitor, System.Action listener) => throw null; } - // Generated from `Microsoft.Extensions.Options.OptionsValidationException` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.OptionsValidationException` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OptionsValidationException : System.Exception { public System.Collections.Generic.IEnumerable Failures { get => throw null; } @@ -267,14 +267,14 @@ namespace Microsoft public OptionsValidationException(string optionsName, System.Type optionsType, System.Collections.Generic.IEnumerable failureMessages) => throw null; } - // Generated from `Microsoft.Extensions.Options.OptionsWrapper<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.OptionsWrapper<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class OptionsWrapper : Microsoft.Extensions.Options.IOptions where TOptions : class { public OptionsWrapper(TOptions options) => throw null; public TOptions Value { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,,,,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,,,,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } @@ -289,7 +289,7 @@ namespace Microsoft public PostConfigureOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, TDep5 dependency5, System.Action action) => throw null; } - // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,,,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,,,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } @@ -303,7 +303,7 @@ namespace Microsoft public PostConfigureOptions(string name, TDep1 dependency1, TDep2 dependency2, TDep3 dependency3, TDep4 dependency4, System.Action action) => throw null; } - // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } @@ -316,7 +316,7 @@ namespace Microsoft public PostConfigureOptions(string name, TDep1 dependency, TDep2 dependency2, TDep3 dependency3, System.Action action) => throw null; } - // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TDep1 : class where TDep2 : class where TOptions : class { public System.Action Action { get => throw null; } @@ -328,7 +328,7 @@ namespace Microsoft public PostConfigureOptions(string name, TDep1 dependency, TDep2 dependency2, System.Action action) => throw null; } - // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TDep : class where TOptions : class { public System.Action Action { get => throw null; } @@ -339,7 +339,7 @@ namespace Microsoft public PostConfigureOptions(string name, TDep dependency, System.Action action) => throw null; } - // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.PostConfigureOptions<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class { public System.Action Action { get => throw null; } @@ -348,7 +348,7 @@ namespace Microsoft public PostConfigureOptions(string name, System.Action action) => throw null; } - // Generated from `Microsoft.Extensions.Options.ValidateOptions<,,,,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ValidateOptions<,,,,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class { public TDep1 Dependency1 { get => throw null; } @@ -363,7 +363,7 @@ namespace Microsoft public System.Func Validation { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ValidateOptions<,,,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ValidateOptions<,,,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class { public TDep1 Dependency1 { get => throw null; } @@ -377,7 +377,7 @@ namespace Microsoft public System.Func Validation { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ValidateOptions<,,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ValidateOptions<,,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class { public TDep1 Dependency1 { get => throw null; } @@ -390,7 +390,7 @@ namespace Microsoft public System.Func Validation { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ValidateOptions<,,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ValidateOptions<,,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class { public TDep1 Dependency1 { get => throw null; } @@ -402,7 +402,7 @@ namespace Microsoft public System.Func Validation { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ValidateOptions<,>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ValidateOptions<,>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class { public TDep Dependency { get => throw null; } @@ -413,7 +413,7 @@ namespace Microsoft public System.Func Validation { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ValidateOptions<>` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ValidateOptions<>` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidateOptions : Microsoft.Extensions.Options.IValidateOptions where TOptions : class { public string FailureMessage { get => throw null; } @@ -423,11 +423,11 @@ namespace Microsoft public System.Func Validation { get => throw null; } } - // Generated from `Microsoft.Extensions.Options.ValidateOptionsResult` in `Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Options.ValidateOptionsResult` in `Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ValidateOptionsResult { - public static Microsoft.Extensions.Options.ValidateOptionsResult Fail(string failureMessage) => 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; } @@ -447,9 +447,9 @@ namespace System { namespace CodeAnalysis { - /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'DynamicallyAccessedMemberTypes' is not stubbed in this assembly 'Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ - /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ + /* Duplicate type 'DynamicallyAccessedMembersAttribute' is not stubbed in this assembly 'Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. */ } } 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 669c9934ad4..eb4385c2764 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace Primitives { - // Generated from `Microsoft.Extensions.Primitives.CancellationChangeToken` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Primitives.CancellationChangeToken` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CancellationChangeToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } @@ -15,14 +15,14 @@ namespace Microsoft public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; } - // Generated from `Microsoft.Extensions.Primitives.ChangeToken` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Primitives.ChangeToken` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class ChangeToken { - public static System.IDisposable OnChange(System.Func changeTokenProducer, System.Action changeTokenConsumer, TState state) => throw null; 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; } - // Generated from `Microsoft.Extensions.Primitives.CompositeChangeToken` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Primitives.CompositeChangeToken` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CompositeChangeToken : Microsoft.Extensions.Primitives.IChangeToken { public bool ActiveChangeCallbacks { get => throw null; } @@ -32,13 +32,13 @@ namespace Microsoft public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; } - // Generated from `Microsoft.Extensions.Primitives.Extensions` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Primitives.Extensions` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class Extensions { public static System.Text.StringBuilder Append(this System.Text.StringBuilder builder, Microsoft.Extensions.Primitives.StringSegment segment) => throw null; } - // Generated from `Microsoft.Extensions.Primitives.IChangeToken` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.Primitives.IChangeToken` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IChangeToken { bool ActiveChangeCallbacks { get; } @@ -46,31 +46,33 @@ namespace Microsoft System.IDisposable RegisterChangeCallback(System.Action callback, object state); } - // Generated from `Microsoft.Extensions.Primitives.StringSegment` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct StringSegment : System.IEquatable, System.IEquatable + // Generated from `Microsoft.Extensions.Primitives.StringSegment` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 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 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 override bool Equals(object obj) => throw null; - public bool Equals(string text, System.StringComparison comparisonType) => throw null; public bool Equals(string text) => throw null; - public bool Equals(Microsoft.Extensions.Primitives.StringSegment other, System.StringComparison comparisonType) => throw null; - public bool Equals(Microsoft.Extensions.Primitives.StringSegment other) => 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, int start, int count) => throw null; - public int IndexOf(System.Char c, int start) => throw null; public int IndexOf(System.Char c) => throw null; - public int IndexOfAny(System.Char[] anyOf, int startIndex, int count) => throw null; - public int IndexOfAny(System.Char[] anyOf, int startIndex) => 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 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; @@ -78,25 +80,25 @@ namespace Microsoft public int Offset { get => throw null; } public Microsoft.Extensions.Primitives.StringTokenizer Split(System.Char[] chars) => throw null; public bool StartsWith(string text, System.StringComparison comparisonType) => throw null; - public StringSegment(string buffer, int offset, int length) => throw null; - public StringSegment(string buffer) => throw null; // Stub generator skipped constructor - public Microsoft.Extensions.Primitives.StringSegment Subsegment(int offset, int length) => throw null; + 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 string Substring(int offset, int length) => 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 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.ReadOnlySpan(Microsoft.Extensions.Primitives.StringSegment segment) => 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; } - // Generated from `Microsoft.Extensions.Primitives.StringSegmentComparer` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class StringSegmentComparer : System.Collections.Generic.IEqualityComparer, System.Collections.Generic.IComparer + // Generated from `Microsoft.Extensions.Primitives.StringSegmentComparer` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; public bool Equals(Microsoft.Extensions.Primitives.StringSegment x, Microsoft.Extensions.Primitives.StringSegment y) => throw null; @@ -105,97 +107,97 @@ namespace Microsoft public static Microsoft.Extensions.Primitives.StringSegmentComparer OrdinalIgnoreCase { get => throw null; } } - // Generated from `Microsoft.Extensions.Primitives.StringTokenizer` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct StringTokenizer : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable + // Generated from `Microsoft.Extensions.Primitives.StringTokenizer` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct StringTokenizer : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - // Generated from `Microsoft.Extensions.Primitives.StringTokenizer+Enumerator` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + // Generated from `Microsoft.Extensions.Primitives.StringTokenizer+Enumerator` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public Microsoft.Extensions.Primitives.StringSegment Current { get => throw null; } object System.Collections.IEnumerator.Current { get => throw null; } public void Dispose() => throw null; - public Enumerator(ref Microsoft.Extensions.Primitives.StringTokenizer tokenizer) => 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.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; - public StringTokenizer(string value, System.Char[] separators) => throw null; - public StringTokenizer(Microsoft.Extensions.Primitives.StringSegment value, System.Char[] separators) => 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; } - // Generated from `Microsoft.Extensions.Primitives.StringValues` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct StringValues : System.IEquatable, System.IEquatable, System.IEquatable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection + // Generated from `Microsoft.Extensions.Primitives.StringValues` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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 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 bool operator !=(object 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, 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, 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 bool operator ==(object 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, 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, 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(string value, Microsoft.Extensions.Primitives.StringValues values) => 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; - 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 static Microsoft.Extensions.Primitives.StringValues Empty; - // Generated from `Microsoft.Extensions.Primitives.StringValues+Enumerator` in `Microsoft.Extensions.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.IDisposable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerator + // Generated from `Microsoft.Extensions.Primitives.StringValues+Enumerator` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; - public Enumerator(ref Microsoft.Extensions.Primitives.StringValues values) => 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 Equals(string[] left, Microsoft.Extensions.Primitives.StringValues right) => throw null; - public static bool Equals(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; + 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; + 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 static Microsoft.Extensions.Primitives.StringValues Empty; + 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 static bool Equals(Microsoft.Extensions.Primitives.StringValues left, Microsoft.Extensions.Primitives.StringValues 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 override bool Equals(object obj) => throw null; public bool Equals(string other) => throw null; - public bool Equals(Microsoft.Extensions.Primitives.StringValues 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.IEnumerator System.Collections.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; int System.Collections.Generic.IList.IndexOf(string item) => throw null; 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; } - string System.Collections.Generic.IList.this[int index] { get => throw null; set => 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; - // Stub generator skipped constructor public string[] ToArray() => throw null; public override string ToString() => throw null; - public static implicit operator string[](Microsoft.Extensions.Primitives.StringValues value) => 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; } 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 4a3e67a42b8..bc8e332b8f7 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 @@ -6,17 +6,17 @@ namespace Microsoft { namespace DependencyInjection { - // Generated from `Microsoft.Extensions.DependencyInjection.EncoderServiceCollectionExtensions` in `Microsoft.Extensions.WebEncoders, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.DependencyInjection.EncoderServiceCollectionExtensions` in `Microsoft.Extensions.WebEncoders, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class EncoderServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddWebEncoders(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) => throw null; 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 { - // Generated from `Microsoft.Extensions.WebEncoders.WebEncoderOptions` in `Microsoft.Extensions.WebEncoders, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.WebEncoders.WebEncoderOptions` in `Microsoft.Extensions.WebEncoders, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class WebEncoderOptions { public System.Text.Encodings.Web.TextEncoderSettings TextEncoderSettings { get => throw null; set => throw null; } @@ -25,11 +25,11 @@ namespace Microsoft namespace Testing { - // Generated from `Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder` in `Microsoft.Extensions.WebEncoders, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.WebEncoders.Testing.HtmlTestEncoder` in `Microsoft.Extensions.WebEncoders, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class HtmlTestEncoder : System.Text.Encodings.Web.HtmlEncoder { - public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => 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 HtmlTestEncoder() => throw null; @@ -38,11 +38,11 @@ namespace Microsoft public override bool WillEncode(int unicodeScalar) => throw null; } - // Generated from `Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder` in `Microsoft.Extensions.WebEncoders, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.WebEncoders.Testing.JavaScriptTestEncoder` in `Microsoft.Extensions.WebEncoders, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class JavaScriptTestEncoder : System.Text.Encodings.Web.JavaScriptEncoder { - public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => 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 JavaScriptTestEncoder() => throw null; @@ -51,11 +51,11 @@ namespace Microsoft public override bool WillEncode(int unicodeScalar) => throw null; } - // Generated from `Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder` in `Microsoft.Extensions.WebEncoders, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Extensions.WebEncoders.Testing.UrlTestEncoder` in `Microsoft.Extensions.WebEncoders, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class UrlTestEncoder : System.Text.Encodings.Web.UrlEncoder { - public override void Encode(System.IO.TextWriter output, string value, int startIndex, int characterCount) => 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 int MaxOutputCharactersPerInputCharacter { 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 4804d2fe552..f3354094847 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 @@ -4,85 +4,109 @@ namespace Microsoft { namespace JSInterop { - // Generated from `Microsoft.JSInterop.DotNetObjectReference` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.DotNetObjectReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DotNetObjectReference { public static Microsoft.JSInterop.DotNetObjectReference Create(TValue value) where TValue : class => throw null; } - // Generated from `Microsoft.JSInterop.DotNetObjectReference<>` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.DotNetObjectReference<>` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class DotNetObjectReference : System.IDisposable where TValue : class { public void Dispose() => throw null; public TValue Value { get => throw null; } } - // Generated from `Microsoft.JSInterop.IJSInProcessObjectReference` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IJSInProcessObjectReference : System.IDisposable, System.IAsyncDisposable, Microsoft.JSInterop.IJSObjectReference + // Generated from `Microsoft.JSInterop.DotNetStreamReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class DotNetStreamReference : System.IDisposable + { + public void Dispose() => throw null; + public DotNetStreamReference(System.IO.Stream stream, bool leaveOpen = default(bool)) => throw null; + public bool LeaveOpen { get => throw null; } + public System.IO.Stream Stream { get => throw null; } + } + + // Generated from `Microsoft.JSInterop.IJSInProcessObjectReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IJSInProcessObjectReference : Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable, System.IDisposable { TValue Invoke(string identifier, params object[] args); } - // Generated from `Microsoft.JSInterop.IJSInProcessRuntime` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.IJSInProcessRuntime` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IJSInProcessRuntime : Microsoft.JSInterop.IJSRuntime { TResult Invoke(string identifier, params object[] args); } - // Generated from `Microsoft.JSInterop.IJSObjectReference` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.IJSObjectReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IJSObjectReference : System.IAsyncDisposable { - System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args); System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args); + System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args); } - // Generated from `Microsoft.JSInterop.IJSRuntime` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.IJSRuntime` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IJSRuntime { - System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args); System.Threading.Tasks.ValueTask InvokeAsync(string identifier, System.Threading.CancellationToken cancellationToken, object[] args); + System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args); } - // Generated from `Microsoft.JSInterop.IJSUnmarshalledObjectReference` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IJSUnmarshalledObjectReference : System.IDisposable, System.IAsyncDisposable, Microsoft.JSInterop.IJSObjectReference, Microsoft.JSInterop.IJSInProcessObjectReference + // Generated from `Microsoft.JSInterop.IJSStreamReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IJSStreamReference : System.IAsyncDisposable { - 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); + System.Int64 Length { get; } + System.Threading.Tasks.ValueTask OpenReadStreamAsync(System.Int64 maxAllowedSize = default(System.Int64), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `Microsoft.JSInterop.IJSUnmarshalledRuntime` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.IJSUnmarshalledObjectReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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); + } + + // Generated from `Microsoft.JSInterop.IJSUnmarshalledRuntime` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public interface IJSUnmarshalledRuntime { - 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); + TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1); + TResult InvokeUnmarshalled(string identifier, T0 arg0); + TResult InvokeUnmarshalled(string identifier); } - // Generated from `Microsoft.JSInterop.JSCallResultType` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.JSCallResultType` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum JSCallResultType { Default, JSObjectReference, + JSStreamReference, + JSVoidResult, } - // Generated from `Microsoft.JSInterop.JSException` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.JSDisconnectedException` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class JSDisconnectedException : System.Exception + { + public JSDisconnectedException(string message) => throw null; + } + + // Generated from `Microsoft.JSInterop.JSException` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class JSException : System.Exception { - public JSException(string message, System.Exception innerException) => throw null; public JSException(string message) => throw null; + public JSException(string message, System.Exception innerException) => throw null; } - // Generated from `Microsoft.JSInterop.JSInProcessObjectReferenceExtensions` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.JSInProcessObjectReferenceExtensions` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class JSInProcessObjectReferenceExtensions { public static void InvokeVoid(this Microsoft.JSInterop.IJSInProcessObjectReference jsObjectReference, string identifier, params object[] args) => throw null; } - // Generated from `Microsoft.JSInterop.JSInProcessRuntime` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class JSInProcessRuntime : Microsoft.JSInterop.JSRuntime, Microsoft.JSInterop.IJSRuntime, Microsoft.JSInterop.IJSInProcessRuntime + // Generated from `Microsoft.JSInterop.JSInProcessRuntime` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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; @@ -90,115 +114,139 @@ namespace Microsoft protected JSInProcessRuntime() => throw null; } - // Generated from `Microsoft.JSInterop.JSInProcessRuntimeExtensions` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.JSInProcessRuntimeExtensions` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class JSInProcessRuntimeExtensions { public static void InvokeVoid(this Microsoft.JSInterop.IJSInProcessRuntime jsRuntime, string identifier, params object[] args) => throw null; } - // Generated from `Microsoft.JSInterop.JSInvokableAttribute` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.JSInvokableAttribute` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class JSInvokableAttribute : System.Attribute { public string Identifier { get => throw null; } - public JSInvokableAttribute(string identifier) => throw null; public JSInvokableAttribute() => throw null; + public JSInvokableAttribute(string identifier) => throw null; } - // Generated from `Microsoft.JSInterop.JSObjectReferenceExtensions` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.JSObjectReferenceExtensions` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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.TimeSpan timeout, 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 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.TimeSpan timeout, 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; } - // Generated from `Microsoft.JSInterop.JSRuntime` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public abstract class JSRuntime : Microsoft.JSInterop.IJSRuntime + // Generated from `Microsoft.JSInterop.JSRuntime` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + 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, object[] args) => throw null; 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; } - // Generated from `Microsoft.JSInterop.JSRuntimeExtensions` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.JSRuntimeExtensions` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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.TimeSpan timeout, 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 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.TimeSpan timeout, 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 { - // Generated from `Microsoft.JSInterop.Implementation.JSInProcessObjectReference` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class JSInProcessObjectReference : Microsoft.JSInterop.Implementation.JSObjectReference, System.IDisposable, System.IAsyncDisposable, Microsoft.JSInterop.IJSObjectReference, Microsoft.JSInterop.IJSInProcessObjectReference + // Generated from `Microsoft.JSInterop.Implementation.JSInProcessObjectReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class JSInProcessObjectReference : Microsoft.JSInterop.Implementation.JSObjectReference, Microsoft.JSInterop.IJSInProcessObjectReference, Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable, System.IDisposable { 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; } - // Generated from `Microsoft.JSInterop.Implementation.JSObjectReference` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class JSObjectReference : System.IAsyncDisposable, Microsoft.JSInterop.IJSObjectReference + // Generated from `Microsoft.JSInterop.Implementation.JSObjectReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public class JSObjectReference : Microsoft.JSInterop.IJSObjectReference, System.IAsyncDisposable { public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; protected internal System.Int64 Id { get => throw null; } - 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; + public System.Threading.Tasks.ValueTask InvokeAsync(string identifier, object[] args) => throw null; protected internal JSObjectReference(Microsoft.JSInterop.JSRuntime jsRuntime, System.Int64 id) => throw null; protected void ThrowIfDisposed() => throw null; } + // Generated from `Microsoft.JSInterop.Implementation.JSObjectReferenceJsonWorker` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public static class JSObjectReferenceJsonWorker + { + public static System.Int64 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; + } + + // Generated from `Microsoft.JSInterop.Implementation.JSStreamReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public 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; + } + } namespace Infrastructure { - // Generated from `Microsoft.JSInterop.Infrastructure.DotNetDispatcher` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.Infrastructure.DotNetDispatcher` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class DotNetDispatcher { 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; } - // Generated from `Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct DotNetInvocationInfo { public string AssemblyName { get => throw null; } public string CallId { get => throw null; } - public DotNetInvocationInfo(string assemblyName, string methodIdentifier, System.Int64 dotNetObjectId, string callId) => 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 string MethodIdentifier { get => throw null; } } - // Generated from `Microsoft.JSInterop.Infrastructure.DotNetInvocationResult` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.Infrastructure.DotNetInvocationResult` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public struct DotNetInvocationResult { - public DotNetInvocationResult(object result) => throw null; - public DotNetInvocationResult(System.Exception exception, string errorKind) => throw null; // Stub generator skipped constructor public string ErrorKind { get => throw null; } public System.Exception Exception { get => throw null; } - public object Result { get => throw null; } + public string ResultJson { get => throw null; } public bool Success { get => throw null; } } - // Generated from `Microsoft.JSInterop.Infrastructure.IDotNetObjectReference` in `Microsoft.JSInterop, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.JSInterop.Infrastructure.IDotNetObjectReference` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` internal interface IDotNetObjectReference : System.IDisposable { } + // Generated from `Microsoft.JSInterop.Infrastructure.IJSVoidResult` in `Microsoft.JSInterop, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + public interface IJSVoidResult + { + } + } } } 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 c28d2d89612..c1be8c08cf0 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 @@ -8,7 +8,7 @@ namespace Microsoft { namespace Headers { - // Generated from `Microsoft.Net.Http.Headers.CacheControlHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.CacheControlHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CacheControlHeaderValue { public CacheControlHeaderValue() => throw null; @@ -47,7 +47,7 @@ namespace Microsoft public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.CacheControlHeaderValue parsedValue) => throw null; } - // Generated from `Microsoft.Net.Http.Headers.ContentDispositionHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.ContentDispositionHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ContentDispositionHeaderValue { public ContentDispositionHeaderValue(Microsoft.Extensions.Primitives.StringSegment dispositionType) => throw null; @@ -69,19 +69,19 @@ namespace Microsoft public static bool TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.ContentDispositionHeaderValue parsedValue) => throw null; } - // Generated from `Microsoft.Net.Http.Headers.ContentDispositionHeaderValueIdentityExtensions` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.ContentDispositionHeaderValueIdentityExtensions` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static 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; } - // Generated from `Microsoft.Net.Http.Headers.ContentRangeHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.ContentRangeHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class ContentRangeHeaderValue { public ContentRangeHeaderValue(System.Int64 length) => throw null; - public ContentRangeHeaderValue(System.Int64 from, System.Int64 to, 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 override bool Equals(object obj) => throw null; public System.Int64? From { get => throw null; } public override int GetHashCode() => throw null; @@ -95,11 +95,11 @@ namespace Microsoft public Microsoft.Extensions.Primitives.StringSegment Unit { get => throw null; set => throw null; } } - // Generated from `Microsoft.Net.Http.Headers.CookieHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.CookieHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class CookieHeaderValue { - public CookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name, Microsoft.Extensions.Primitives.StringSegment value) => throw null; 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; } @@ -113,13 +113,13 @@ namespace Microsoft public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.Net.Http.Headers.EntityTagHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.EntityTagHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class EntityTagHeaderValue { public static Microsoft.Net.Http.Headers.EntityTagHeaderValue Any { get => throw null; } public bool Compare(Microsoft.Net.Http.Headers.EntityTagHeaderValue other, bool useStrongComparison) => throw null; - public EntityTagHeaderValue(Microsoft.Extensions.Primitives.StringSegment tag, bool isWeak) => throw null; public EntityTagHeaderValue(Microsoft.Extensions.Primitives.StringSegment tag) => throw null; + public EntityTagHeaderValue(Microsoft.Extensions.Primitives.StringSegment tag, bool isWeak) => throw null; public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public bool IsWeak { get => throw null; } @@ -133,7 +133,7 @@ namespace Microsoft public static bool TryParseStrictList(System.Collections.Generic.IList inputs, out System.Collections.Generic.IList parsedValues) => throw null; } - // Generated from `Microsoft.Net.Http.Headers.HeaderNames` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.HeaderNames` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HeaderNames { public static string Accept; @@ -154,6 +154,7 @@ namespace Microsoft 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; @@ -187,6 +188,7 @@ namespace Microsoft 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; @@ -195,12 +197,14 @@ namespace Microsoft 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; @@ -222,24 +226,28 @@ namespace Microsoft public static string WWWAuthenticate; public static string Warning; public static string WebSocketSubProtocols; + public static string XContentTypeOptions; public static string XFrameOptions; + public static string XPoweredBy; public static string XRequestedWith; + public static string XUACompatible; + public static string XXSSProtection; } - // Generated from `Microsoft.Net.Http.Headers.HeaderQuality` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.HeaderQuality` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public static class HeaderQuality { public const double Match = default; public const double NoMatch = default; } - // Generated from `Microsoft.Net.Http.Headers.HeaderUtilities` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.HeaderUtilities` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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, bool quoted) => 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 bool IsQuoted(Microsoft.Extensions.Primitives.StringSegment input) => throw null; public static Microsoft.Extensions.Primitives.StringSegment RemoveQuotes(Microsoft.Extensions.Primitives.StringSegment input) => throw null; @@ -250,7 +258,7 @@ namespace Microsoft public static Microsoft.Extensions.Primitives.StringSegment UnescapeAsQuotedString(Microsoft.Extensions.Primitives.StringSegment input) => throw null; } - // Generated from `Microsoft.Net.Http.Headers.MediaTypeHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.MediaTypeHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class MediaTypeHeaderValue { public Microsoft.Extensions.Primitives.StringSegment Boundary { get => throw null; set => throw null; } @@ -266,9 +274,10 @@ namespace Microsoft public bool MatchesAllSubTypes { get => throw null; } 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, double quality) => throw null; public MediaTypeHeaderValue(Microsoft.Extensions.Primitives.StringSegment mediaType) => throw null; + public MediaTypeHeaderValue(Microsoft.Extensions.Primitives.StringSegment mediaType, double quality) => throw null; 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; @@ -284,14 +293,14 @@ namespace Microsoft public Microsoft.Extensions.Primitives.StringSegment Type { get => throw null; } } - // Generated from `Microsoft.Net.Http.Headers.MediaTypeHeaderValueComparer` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.MediaTypeHeaderValueComparer` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` 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; } } - // Generated from `Microsoft.Net.Http.Headers.NameValueHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.NameValueHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class NameValueHeaderValue { public Microsoft.Net.Http.Headers.NameValueHeaderValue Copy() => throw null; @@ -302,8 +311,8 @@ namespace Microsoft 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, Microsoft.Extensions.Primitives.StringSegment value) => 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; @@ -315,7 +324,7 @@ namespace Microsoft public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.Net.Http.Headers.RangeConditionHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.RangeConditionHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RangeConditionHeaderValue { public Microsoft.Net.Http.Headers.EntityTagHeaderValue EntityTag { get => throw null; } @@ -323,28 +332,28 @@ namespace Microsoft 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(string entityTag) => 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; } - // Generated from `Microsoft.Net.Http.Headers.RangeHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.RangeHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RangeHeaderValue { 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(System.Int64? from, System.Int64? to) => 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; } } - // Generated from `Microsoft.Net.Http.Headers.RangeItemHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.RangeItemHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class RangeItemHeaderValue { public override bool Equals(object obj) => throw null; @@ -355,7 +364,7 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.Net.Http.Headers.SameSiteMode` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.SameSiteMode` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum SameSiteMode { Lax, @@ -364,7 +373,7 @@ namespace Microsoft Unspecified, } - // Generated from `Microsoft.Net.Http.Headers.SetCookieHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.SetCookieHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class SetCookieHeaderValue { public void AppendToStringBuilder(System.Text.StringBuilder builder) => throw null; @@ -382,8 +391,8 @@ namespace Microsoft 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, Microsoft.Extensions.Primitives.StringSegment value) => 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 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; @@ -391,7 +400,7 @@ namespace Microsoft public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; set => throw null; } } - // Generated from `Microsoft.Net.Http.Headers.StringWithQualityHeaderValue` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.StringWithQualityHeaderValue` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StringWithQualityHeaderValue { public override bool Equals(object obj) => throw null; @@ -400,8 +409,8 @@ namespace Microsoft 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, double quality) => 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; @@ -409,7 +418,7 @@ namespace Microsoft public Microsoft.Extensions.Primitives.StringSegment Value { get => throw null; } } - // Generated from `Microsoft.Net.Http.Headers.StringWithQualityHeaderValueComparer` in `Microsoft.Net.Http.Headers, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` + // Generated from `Microsoft.Net.Http.Headers.StringWithQualityHeaderValueComparer` in `Microsoft.Net.Http.Headers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public class StringWithQualityHeaderValueComparer : System.Collections.Generic.IComparer { public int Compare(Microsoft.Net.Http.Headers.StringWithQualityHeaderValue stringWithQuality1, Microsoft.Net.Http.Headers.StringWithQualityHeaderValue stringWithQuality2) => 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 5bc5e4332ed..5a35f53daef 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 @@ -4,53 +4,53 @@ namespace System { namespace Diagnostics { - // Generated from `System.Diagnostics.EntryWrittenEventArgs` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.EntryWrittenEventArgs` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EntryWrittenEventArgs : System.EventArgs { public System.Diagnostics.EventLogEntry Entry { get => throw null; } - public EntryWrittenEventArgs(System.Diagnostics.EventLogEntry entry) => throw null; public EntryWrittenEventArgs() => throw null; + public EntryWrittenEventArgs(System.Diagnostics.EventLogEntry entry) => throw null; } - // Generated from `System.Diagnostics.EntryWrittenEventHandler` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.EntryWrittenEventHandler` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void EntryWrittenEventHandler(object sender, System.Diagnostics.EntryWrittenEventArgs e); - // Generated from `System.Diagnostics.EventInstance` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.EventInstance` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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, System.Diagnostics.EventLogEntryType entryType) => 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; } } - // Generated from `System.Diagnostics.EventLog` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.EventLog` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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(string source, string logName, string machineName) => throw null; - public static void CreateEventSource(string source, string logName) => throw null; public static void CreateEventSource(System.Diagnostics.EventSourceCreationData sourceData) => throw null; - public static void Delete(string logName, string machineName) => 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 DeleteEventSource(string source, string machineName) => 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(string logName, string machineName, string source) => throw null; - public EventLog(string logName, string machineName) => throw null; - public EventLog(string logName) => throw null; public EventLog() => throw null; - public static bool Exists(string logName, string machineName) => 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 System.Diagnostics.EventLog[] GetEventLogs(string machineName) => 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; @@ -61,26 +61,26 @@ namespace System 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, string machineName) => 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, System.Diagnostics.EventLogEntryType type, int eventID, System.Int16 category, System.Byte[] rawData) => 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) => throw null; - public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type) => throw null; public void WriteEntry(string message) => 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 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) => throw null; - public static void WriteEntry(string source, string message, System.Diagnostics.EventLogEntryType type) => 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 void WriteEvent(System.Diagnostics.EventInstance instance, params object[] values) => 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 static void WriteEvent(string source, System.Diagnostics.EventInstance instance, 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; } - // Generated from `System.Diagnostics.EventLogEntry` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.EventLogEntry` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogEntry : System.ComponentModel.Component, System.Runtime.Serialization.ISerializable { public string Category { get => throw null; } @@ -101,8 +101,8 @@ namespace System public string UserName { get => throw null; } } - // Generated from `System.Diagnostics.EventLogEntryCollection` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EventLogEntryCollection : System.Collections.IEnumerable, System.Collections.ICollection + // Generated from `System.Diagnostics.EventLogEntryCollection` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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; @@ -113,7 +113,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Diagnostics.EventLogEntryType` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.EventLogEntryType` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum EventLogEntryType { Error, @@ -123,25 +123,25 @@ namespace System Warning, } - // Generated from `System.Diagnostics.EventLogTraceListener` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.EventLogTraceListener` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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(string source) => throw null; - public EventLogTraceListener(System.Diagnostics.EventLog eventLog) => 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, params object[] data) => 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; } - // Generated from `System.Diagnostics.EventSourceCreationData` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.EventSourceCreationData` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventSourceCreationData { public int CategoryCount { get => throw null; set => throw null; } @@ -154,7 +154,7 @@ namespace System public string Source { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.OverflowAction` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.OverflowAction` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum OverflowAction { DoNotOverwrite, @@ -166,12 +166,12 @@ namespace System { namespace Reader { - // Generated from `System.Diagnostics.Eventing.Reader.EventBookmark` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventBookmark` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventBookmark { } - // Generated from `System.Diagnostics.Eventing.Reader.EventKeyword` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventKeyword` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventKeyword { public string DisplayName { get => throw null; } @@ -179,7 +179,7 @@ namespace System public System.Int64 Value { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLevel` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLevel` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLevel { public string DisplayName { get => throw null; } @@ -187,13 +187,13 @@ namespace System public int Value { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogConfiguration` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogConfiguration` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogConfiguration : System.IDisposable { public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public EventLogConfiguration(string logName, System.Diagnostics.Eventing.Reader.EventLogSession session) => throw null; public EventLogConfiguration(string logName) => throw null; + public EventLogConfiguration(string logName, System.Diagnostics.Eventing.Reader.EventLogSession session) => 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; } @@ -215,19 +215,19 @@ namespace System public string SecurityDescriptor { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogException` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogException` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogException : System.Exception { - public EventLogException(string message, System.Exception innerException) => throw null; - public EventLogException(string message) => throw null; public EventLogException() => throw null; - protected EventLogException(int errorCode) => throw null; protected EventLogException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + protected EventLogException(int errorCode) => 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; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogInformation` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogInformation` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogInformation { public int? Attributes { get => throw null; } @@ -240,16 +240,16 @@ namespace System public System.Int64? RecordCount { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogInvalidDataException` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogInvalidDataException` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogInvalidDataException : System.Diagnostics.Eventing.Reader.EventLogException { - public EventLogInvalidDataException(string message, System.Exception innerException) => throw null; - public EventLogInvalidDataException(string message) => throw null; public EventLogInvalidDataException() => throw null; protected EventLogInvalidDataException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public EventLogInvalidDataException(string message) => throw null; + public EventLogInvalidDataException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogIsolation` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogIsolation` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum EventLogIsolation { Application, @@ -257,7 +257,7 @@ namespace System System, } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogLink` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogLink` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogLink { public string DisplayName { get => throw null; } @@ -265,7 +265,7 @@ namespace System public string LogName { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogMode` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogMode` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum EventLogMode { AutoBackup, @@ -273,16 +273,16 @@ namespace System Retain, } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogNotFoundException` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogNotFoundException` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogNotFoundException : System.Diagnostics.Eventing.Reader.EventLogException { - public EventLogNotFoundException(string message, System.Exception innerException) => throw null; - public EventLogNotFoundException(string message) => throw null; public EventLogNotFoundException() => throw null; protected EventLogNotFoundException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public EventLogNotFoundException(string message) => throw null; + public EventLogNotFoundException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogPropertySelector` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogPropertySelector` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogPropertySelector : System.IDisposable { public void Dispose() => throw null; @@ -290,62 +290,62 @@ namespace System public EventLogPropertySelector(System.Collections.Generic.IEnumerable propertyQueries) => throw null; } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogProviderDisabledException` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogProviderDisabledException` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogProviderDisabledException : System.Diagnostics.Eventing.Reader.EventLogException { - public EventLogProviderDisabledException(string message, System.Exception innerException) => throw null; - public EventLogProviderDisabledException(string message) => throw null; public EventLogProviderDisabledException() => throw null; protected EventLogProviderDisabledException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public EventLogProviderDisabledException(string message) => throw null; + public EventLogProviderDisabledException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogQuery` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogQuery` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogQuery { - public EventLogQuery(string path, System.Diagnostics.Eventing.Reader.PathType pathType, string query) => throw null; 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; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogReader` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogReader` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogReader : System.IDisposable { public int BatchSize { get => throw null; set => throw null; } public void CancelReading() => throw null; public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; - public EventLogReader(string path, System.Diagnostics.Eventing.Reader.PathType pathType) => throw null; - public EventLogReader(string path) => throw null; - public EventLogReader(System.Diagnostics.Eventing.Reader.EventLogQuery eventQuery, System.Diagnostics.Eventing.Reader.EventBookmark bookmark) => 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 System.Collections.Generic.IList LogStatus { get => throw null; } - public System.Diagnostics.Eventing.Reader.EventRecord ReadEvent(System.TimeSpan timeout) => throw null; public System.Diagnostics.Eventing.Reader.EventRecord ReadEvent() => throw null; - public void Seek(System.IO.SeekOrigin origin, System.Int64 offset) => throw null; - public void Seek(System.Diagnostics.Eventing.Reader.EventBookmark bookmark, System.Int64 offset) => 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; } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogReadingException` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogReadingException` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogReadingException : System.Diagnostics.Eventing.Reader.EventLogException { - public EventLogReadingException(string message, System.Exception innerException) => throw null; - public EventLogReadingException(string message) => throw null; public EventLogReadingException() => throw null; protected EventLogReadingException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; + public EventLogReadingException(string message) => throw null; + public EventLogReadingException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogRecord` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogRecord` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogRecord : System.Diagnostics.Eventing.Reader.EventRecord { public override System.Guid? ActivityId { get => throw null; } public override System.Diagnostics.Eventing.Reader.EventBookmark Bookmark { get => throw null; } public string ContainerLog { get => throw null; } protected override void Dispose(bool disposing) => throw null; - public override string FormatDescription(System.Collections.Generic.IEnumerable values) => throw null; public override string FormatDescription() => throw null; + 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; } @@ -373,35 +373,35 @@ namespace System public override System.Byte? Version { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogSession` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogSession` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogSession : System.IDisposable { public void CancelCurrentOperations() => throw null; - public void ClearLog(string logName, string backupPath) => 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(string server, string domain, string user, System.Security.SecureString password, System.Diagnostics.Eventing.Reader.SessionAuthentication logOnType) => throw null; - public EventLogSession(string server) => throw null; public EventLogSession() => throw null; - public void ExportLog(string path, System.Diagnostics.Eventing.Reader.PathType pathType, string query, string targetFilePath, bool tolerateQueryErrors) => 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 ExportLog(string path, System.Diagnostics.Eventing.Reader.PathType pathType, string query, string targetFilePath) => throw null; - public void ExportLogAndMessages(string path, System.Diagnostics.Eventing.Reader.PathType pathType, string query, string targetFilePath, bool tolerateQueryErrors, System.Globalization.CultureInfo targetCultureInfo) => 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; + public void ExportLogAndMessages(string path, System.Diagnostics.Eventing.Reader.PathType pathType, string query, string targetFilePath, bool tolerateQueryErrors, System.Globalization.CultureInfo targetCultureInfo) => throw null; public System.Diagnostics.Eventing.Reader.EventLogInformation GetLogInformation(string logName, System.Diagnostics.Eventing.Reader.PathType pathType) => throw null; public System.Collections.Generic.IEnumerable GetLogNames() => throw null; public System.Collections.Generic.IEnumerable GetProviderNames() => throw null; public static System.Diagnostics.Eventing.Reader.EventLogSession GlobalSession { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogStatus` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogStatus` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventLogStatus { public string LogName { get => throw null; } public int StatusCode { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogType` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogType` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum EventLogType { Administrative, @@ -410,20 +410,20 @@ namespace System Operational, } - // Generated from `System.Diagnostics.Eventing.Reader.EventLogWatcher` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventLogWatcher` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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(string path) => throw null; - public EventLogWatcher(System.Diagnostics.Eventing.Reader.EventLogQuery eventQuery, System.Diagnostics.Eventing.Reader.EventBookmark bookmark, bool readExistingEvents) => 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) => 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; } - // Generated from `System.Diagnostics.Eventing.Reader.EventMetadata` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventMetadata` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventMetadata { public string Description { get => throw null; } @@ -437,7 +437,7 @@ namespace System public System.Byte Version { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventOpcode` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventOpcode` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventOpcode { public string DisplayName { get => throw null; } @@ -445,13 +445,13 @@ namespace System public int Value { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventProperty` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventProperty` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventProperty { public object Value { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventRecord` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventRecord` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class EventRecord : System.IDisposable { public abstract System.Guid? ActivityId { get; } @@ -459,8 +459,8 @@ namespace System public void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; protected EventRecord() => throw null; - public abstract string FormatDescription(System.Collections.Generic.IEnumerable values); 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 System.Collections.Generic.IEnumerable KeywordsDisplayNames { get; } @@ -486,14 +486,14 @@ namespace System public abstract System.Byte? Version { get; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventRecordWrittenEventArgs` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventRecordWrittenEventArgs` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventRecordWrittenEventArgs : System.EventArgs { public System.Exception EventException { get => throw null; } public System.Diagnostics.Eventing.Reader.EventRecord EventRecord { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.EventTask` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.EventTask` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EventTask { public string DisplayName { get => throw null; } @@ -502,14 +502,14 @@ namespace System public int Value { get => throw null; } } - // Generated from `System.Diagnostics.Eventing.Reader.PathType` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.PathType` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum PathType { FilePath, LogName, } - // Generated from `System.Diagnostics.Eventing.Reader.ProviderMetadata` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.ProviderMetadata` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ProviderMetadata : System.IDisposable { public string DisplayName { get => throw null; } @@ -525,13 +525,13 @@ 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, System.Diagnostics.Eventing.Reader.EventLogSession session, System.Globalization.CultureInfo targetCultureInfo) => 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; } } - // Generated from `System.Diagnostics.Eventing.Reader.SessionAuthentication` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.SessionAuthentication` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum SessionAuthentication { Default, @@ -540,7 +540,7 @@ namespace System Ntlm, } - // Generated from `System.Diagnostics.Eventing.Reader.StandardEventKeywords` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.StandardEventKeywords` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` [System.Flags] public enum StandardEventKeywords { @@ -556,7 +556,7 @@ namespace System WdiDiagnostic, } - // Generated from `System.Diagnostics.Eventing.Reader.StandardEventLevel` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.StandardEventLevel` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum StandardEventLevel { Critical, @@ -567,7 +567,7 @@ namespace System Warning, } - // Generated from `System.Diagnostics.Eventing.Reader.StandardEventOpcode` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.StandardEventOpcode` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum StandardEventOpcode { DataCollectionStart, @@ -583,7 +583,7 @@ namespace System Suspend, } - // Generated from `System.Diagnostics.Eventing.Reader.StandardEventTask` in `System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Eventing.Reader.StandardEventTask` in `System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum StandardEventTask { None, @@ -592,18 +592,4 @@ namespace System } } } - namespace Runtime - { - namespace Versioning - { - /* Duplicate type 'OSPlatformAttribute' is not stubbed in this assembly 'System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'SupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'TargetPlatformAttribute' is not stubbed in this assembly 'System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'UnsupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Diagnostics.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - } - } } 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 f10b9e65da2..b6ac93159af 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 @@ -2,65 +2,37 @@ namespace System { - namespace Diagnostics - { - namespace CodeAnalysis - { - /* Duplicate type 'AllowNullAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'DisallowNullAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'DoesNotReturnAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'DoesNotReturnIfAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MaybeNullAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MaybeNullWhenAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MemberNotNullAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MemberNotNullWhenAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'NotNullAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'NotNullIfNotNullAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'NotNullWhenAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - } - } namespace IO { namespace Pipelines { - // Generated from `System.IO.Pipelines.FlushResult` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.FlushResult` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct FlushResult { - public FlushResult(bool isCanceled, bool isCompleted) => throw null; // Stub generator skipped constructor + public FlushResult(bool isCanceled, bool isCompleted) => throw null; public bool IsCanceled { get => throw null; } public bool IsCompleted { get => throw null; } } - // Generated from `System.IO.Pipelines.IDuplexPipe` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.IDuplexPipe` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IDuplexPipe { System.IO.Pipelines.PipeReader Input { get; } System.IO.Pipelines.PipeWriter Output { get; } } - // Generated from `System.IO.Pipelines.Pipe` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.Pipe` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class Pipe { - public Pipe(System.IO.Pipelines.PipeOptions options) => throw null; public Pipe() => throw null; + public Pipe(System.IO.Pipelines.PipeOptions options) => throw null; public System.IO.Pipelines.PipeReader Reader { get => throw null; } public void Reset() => throw null; public System.IO.Pipelines.PipeWriter Writer { get => throw null; } } - // Generated from `System.IO.Pipelines.PipeOptions` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.PipeOptions` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class PipeOptions { public static System.IO.Pipelines.PipeOptions Default { get => throw null; } @@ -74,25 +46,28 @@ namespace System public System.IO.Pipelines.PipeScheduler WriterScheduler { get => throw null; } } - // Generated from `System.IO.Pipelines.PipeReader` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.PipeReader` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class PipeReader { - public abstract void AdvanceTo(System.SequencePosition consumed, System.SequencePosition examined); public abstract void AdvanceTo(System.SequencePosition consumed); + public abstract void AdvanceTo(System.SequencePosition consumed, System.SequencePosition examined); public virtual System.IO.Stream AsStream(bool leaveOpen = default(bool)) => throw null; public abstract void CancelPendingRead(); 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; - public virtual System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => 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.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 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); } - // Generated from `System.IO.Pipelines.PipeScheduler` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.PipeScheduler` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class PipeScheduler { public static System.IO.Pipelines.PipeScheduler Inline { get => throw null; } @@ -101,11 +76,12 @@ namespace System public static System.IO.Pipelines.PipeScheduler ThreadPool { get => throw null; } } - // Generated from `System.IO.Pipelines.PipeWriter` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.PipeWriter` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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 abstract void Complete(System.Exception exception = default(System.Exception)); public virtual System.Threading.Tasks.ValueTask CompleteAsync(System.Exception exception = default(System.Exception)) => throw null; @@ -116,36 +92,39 @@ namespace System 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; } - // Generated from `System.IO.Pipelines.ReadResult` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.ReadResult` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ReadResult { public System.Buffers.ReadOnlySequence Buffer { get => throw null; } public bool IsCanceled { get => throw null; } public bool IsCompleted { get => throw null; } - public ReadResult(System.Buffers.ReadOnlySequence buffer, bool isCanceled, bool isCompleted) => throw null; // Stub generator skipped constructor + public ReadResult(System.Buffers.ReadOnlySequence buffer, bool isCanceled, bool isCompleted) => throw null; } - // Generated from `System.IO.Pipelines.StreamPipeExtensions` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.StreamPipeExtensions` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static 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; } - // Generated from `System.IO.Pipelines.StreamPipeReaderOptions` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.StreamPipeReaderOptions` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class StreamPipeReaderOptions { public int BufferSize { get => 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 = default(System.Buffers.MemoryPool), int bufferSize = default(int), int minimumReadSize = default(int), bool leaveOpen = default(bool)) => 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 UseZeroByteReads { get => throw null; } } - // Generated from `System.IO.Pipelines.StreamPipeWriterOptions` in `System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.IO.Pipelines.StreamPipeWriterOptions` in `System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class StreamPipeWriterOptions { public bool LeaveOpen { get => throw null; } @@ -156,12 +135,4 @@ namespace System } } - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'System.IO.Pipelines, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - } - } } 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 454757a6fdf..d8e56df70fb 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 @@ -2,64 +2,50 @@ namespace System { - namespace Runtime - { - namespace Versioning - { - /* Duplicate type 'OSPlatformAttribute' is not stubbed in this assembly 'System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'SupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'TargetPlatformAttribute' is not stubbed in this assembly 'System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'UnsupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - } - } namespace Security { namespace Cryptography { namespace Xml { - // Generated from `System.Security.Cryptography.Xml.CipherData` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.CipherData` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class CipherData { - public CipherData(System.Security.Cryptography.Xml.CipherReference cipherReference) => throw null; - public CipherData(System.Byte[] cipherValue) => throw null; public CipherData() => throw null; + public CipherData(System.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; } - // Generated from `System.Security.Cryptography.Xml.CipherReference` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.CipherReference` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class CipherReference : System.Security.Cryptography.Xml.EncryptedReference { - public CipherReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; - public CipherReference(string uri) => throw null; public CipherReference() => throw null; + public CipherReference(string uri) => throw null; + public CipherReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; public override System.Xml.XmlElement GetXml() => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; } - // Generated from `System.Security.Cryptography.Xml.DSAKeyValue` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.DSAKeyValue` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class DSAKeyValue : System.Security.Cryptography.Xml.KeyInfoClause { - public DSAKeyValue(System.Security.Cryptography.DSA key) => throw null; 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; } - // Generated from `System.Security.Cryptography.Xml.DataObject` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.DataObject` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class DataObject { public System.Xml.XmlNodeList Data { get => throw null; set => throw null; } - public DataObject(string id, string mimeType, string encoding, System.Xml.XmlElement data) => 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.XmlElement GetXml() => throw null; public string Id { get => throw null; set => throw null; } @@ -67,15 +53,15 @@ namespace System public string MimeType { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.Xml.DataReference` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.DataReference` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class DataReference : System.Security.Cryptography.Xml.EncryptedReference { - public DataReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; - public DataReference(string uri) => throw null; public DataReference() => throw null; + public DataReference(string uri) => throw null; + public DataReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; } - // Generated from `System.Security.Cryptography.Xml.EncryptedData` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.EncryptedData` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EncryptedData : System.Security.Cryptography.Xml.EncryptedType { public EncryptedData() => throw null; @@ -83,11 +69,11 @@ namespace System public override void LoadXml(System.Xml.XmlElement value) => throw null; } - // Generated from `System.Security.Cryptography.Xml.EncryptedKey` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.EncryptedKey` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EncryptedKey : System.Security.Cryptography.Xml.EncryptedType { - public void AddReference(System.Security.Cryptography.Xml.KeyReference keyReference) => throw null; 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 EncryptedKey() => throw null; public override System.Xml.XmlElement GetXml() => throw null; @@ -96,14 +82,14 @@ namespace System public System.Security.Cryptography.Xml.ReferenceList ReferenceList { get => throw null; } } - // Generated from `System.Security.Cryptography.Xml.EncryptedReference` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.EncryptedReference` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class EncryptedReference { public void AddTransform(System.Security.Cryptography.Xml.Transform transform) => throw null; protected internal bool CacheValid { get => throw null; } - protected EncryptedReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; - protected EncryptedReference(string uri) => 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; } @@ -111,7 +97,7 @@ namespace System public string Uri { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.Xml.EncryptedType` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.EncryptedType` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class EncryptedType { public void AddProperty(System.Security.Cryptography.Xml.EncryptionProperty ep) => throw null; @@ -128,7 +114,7 @@ namespace System public virtual string Type { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.Xml.EncryptedXml` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.EncryptedXml` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EncryptedXml { public void AddKeyNameMapping(string keyName, object keyObject) => throw null; @@ -136,19 +122,19 @@ namespace System 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.SymmetricAlgorithm symmetricAlgorithm) => 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, string keyName) => throw null; public System.Security.Cryptography.Xml.EncryptedData Encrypt(System.Xml.XmlElement inputElement, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public System.Byte[] EncryptData(System.Xml.XmlElement inputElement, System.Security.Cryptography.SymmetricAlgorithm symmetricAlgorithm, bool content) => 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 static System.Byte[] EncryptKey(System.Byte[] keyData, 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 EncryptedXml(System.Xml.XmlDocument document, System.Security.Policy.Evidence evidence) => throw null; - public EncryptedXml(System.Xml.XmlDocument document) => 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 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; @@ -178,22 +164,22 @@ namespace System public const string XmlEncTripleDESUrl = default; } - // Generated from `System.Security.Cryptography.Xml.EncryptionMethod` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.EncryptionMethod` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EncryptionMethod { - public EncryptionMethod(string algorithm) => throw null; 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 void LoadXml(System.Xml.XmlElement value) => throw null; } - // Generated from `System.Security.Cryptography.Xml.EncryptionProperty` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.EncryptionProperty` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class EncryptionProperty { - public EncryptionProperty(System.Xml.XmlElement elementProperty) => throw null; 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; @@ -201,56 +187,56 @@ namespace System public string Target { get => throw null; } } - // Generated from `System.Security.Cryptography.Xml.EncryptionPropertyCollection` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EncryptionPropertyCollection : System.Collections.IList, System.Collections.IEnumerable, System.Collections.ICollection + // Generated from `System.Security.Cryptography.Xml.EncryptionPropertyCollection` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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; public void Clear() => throw null; public bool Contains(System.Security.Cryptography.Xml.EncryptionProperty value) => throw null; bool System.Collections.IList.Contains(object value) => throw null; - public void CopyTo(System.Security.Cryptography.Xml.EncryptionProperty[] array, int index) => throw null; public void CopyTo(System.Array array, int index) => throw null; + public void CopyTo(System.Security.Cryptography.Xml.EncryptionProperty[] array, int index) => throw null; public int Count { get => throw null; } public EncryptionPropertyCollection() => throw null; public System.Collections.IEnumerator GetEnumerator() => throw null; public int IndexOf(System.Security.Cryptography.Xml.EncryptionProperty value) => throw null; int System.Collections.IList.IndexOf(object value) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; public void Insert(int index, System.Security.Cryptography.Xml.EncryptionProperty value) => 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; } public System.Security.Cryptography.Xml.EncryptionProperty Item(int index) => throw null; - object System.Collections.IList.this[int index] { get => throw null; set => throw null; } [System.Runtime.CompilerServices.IndexerName("ItemOf")] public System.Security.Cryptography.Xml.EncryptionProperty 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 => throw null; } 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; } } - // Generated from `System.Security.Cryptography.Xml.IRelDecryptor` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.IRelDecryptor` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IRelDecryptor { System.IO.Stream Decrypt(System.Security.Cryptography.Xml.EncryptionMethod encryptionMethod, System.Security.Cryptography.Xml.KeyInfo keyInfo, System.IO.Stream toDecrypt); } - // Generated from `System.Security.Cryptography.Xml.KeyInfo` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.KeyInfo` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class KeyInfo : System.Collections.IEnumerable { public void AddClause(System.Security.Cryptography.Xml.KeyInfoClause clause) => throw null; public int Count { get => throw null; } - public System.Collections.IEnumerator GetEnumerator(System.Type requestedObjectType) => 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 void LoadXml(System.Xml.XmlElement value) => throw null; } - // Generated from `System.Security.Cryptography.Xml.KeyInfoClause` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.KeyInfoClause` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class KeyInfoClause { public abstract System.Xml.XmlElement GetXml(); @@ -258,88 +244,88 @@ namespace System public abstract void LoadXml(System.Xml.XmlElement element); } - // Generated from `System.Security.Cryptography.Xml.KeyInfoEncryptedKey` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.KeyInfoEncryptedKey` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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(System.Security.Cryptography.Xml.EncryptedKey encryptedKey) => throw null; public KeyInfoEncryptedKey() => throw null; + public KeyInfoEncryptedKey(System.Security.Cryptography.Xml.EncryptedKey encryptedKey) => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; } - // Generated from `System.Security.Cryptography.Xml.KeyInfoName` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.KeyInfoName` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class KeyInfoName : System.Security.Cryptography.Xml.KeyInfoClause { public override System.Xml.XmlElement GetXml() => throw null; - public KeyInfoName(string keyName) => throw null; public KeyInfoName() => throw null; + public KeyInfoName(string keyName) => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; public string Value { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.Xml.KeyInfoNode` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.KeyInfoNode` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class KeyInfoNode : System.Security.Cryptography.Xml.KeyInfoClause { public override System.Xml.XmlElement GetXml() => throw null; - public KeyInfoNode(System.Xml.XmlElement node) => throw null; public KeyInfoNode() => throw null; + public KeyInfoNode(System.Xml.XmlElement node) => throw null; public override void LoadXml(System.Xml.XmlElement value) => throw null; public System.Xml.XmlElement Value { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.Xml.KeyInfoRetrievalMethod` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.KeyInfoRetrievalMethod` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class KeyInfoRetrievalMethod : System.Security.Cryptography.Xml.KeyInfoClause { public override System.Xml.XmlElement GetXml() => throw null; - public KeyInfoRetrievalMethod(string strUri, string typeName) => throw null; - public KeyInfoRetrievalMethod(string strUri) => throw null; public KeyInfoRetrievalMethod() => throw null; + public KeyInfoRetrievalMethod(string strUri) => throw null; + public KeyInfoRetrievalMethod(string strUri, string typeName) => 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; } } - // Generated from `System.Security.Cryptography.Xml.KeyInfoX509Data` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.KeyInfoX509Data` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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(string subjectKeyId) => throw null; public void AddSubjectKeyId(System.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 KeyInfoX509Data(System.Security.Cryptography.X509Certificates.X509Certificate cert, System.Security.Cryptography.X509Certificates.X509IncludeOption includeOption) => throw null; - public KeyInfoX509Data(System.Security.Cryptography.X509Certificates.X509Certificate cert) => throw null; - public KeyInfoX509Data(System.Byte[] rgbCert) => throw null; public KeyInfoX509Data() => throw null; + public KeyInfoX509Data(System.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 void LoadXml(System.Xml.XmlElement element) => throw null; public System.Collections.ArrayList SubjectKeyIds { get => throw null; } public System.Collections.ArrayList SubjectNames { get => throw null; } } - // Generated from `System.Security.Cryptography.Xml.KeyReference` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.KeyReference` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class KeyReference : System.Security.Cryptography.Xml.EncryptedReference { - public KeyReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; - public KeyReference(string uri) => throw null; public KeyReference() => throw null; + public KeyReference(string uri) => throw null; + public KeyReference(string uri, System.Security.Cryptography.Xml.TransformChain transformChain) => throw null; } - // Generated from `System.Security.Cryptography.Xml.RSAKeyValue` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.RSAKeyValue` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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(System.Security.Cryptography.RSA key) => throw null; public RSAKeyValue() => throw null; + public RSAKeyValue(System.Security.Cryptography.RSA key) => throw null; } - // Generated from `System.Security.Cryptography.Xml.Reference` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.Reference` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class Reference { public void AddTransform(System.Security.Cryptography.Xml.Transform transform) => throw null; @@ -348,16 +334,16 @@ namespace System 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(string uri) => throw null; - public Reference(System.IO.Stream stream) => 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; } } - // Generated from `System.Security.Cryptography.Xml.ReferenceList` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ReferenceList : System.Collections.IList, System.Collections.IEnumerable, System.Collections.ICollection + // Generated from `System.Security.Cryptography.Xml.ReferenceList` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ReferenceList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { public int Add(object value) => throw null; public void Clear() => throw null; @@ -371,16 +357,16 @@ 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; - object System.Collections.IList.this[int index] { get => throw null; set => 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; public void Remove(object value) => throw null; public void RemoveAt(int index) => throw null; public object SyncRoot { get => throw null; } } - // Generated from `System.Security.Cryptography.Xml.Signature` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.Signature` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class Signature { public void AddObject(System.Security.Cryptography.Xml.DataObject dataObject) => throw null; @@ -394,8 +380,8 @@ namespace System public System.Security.Cryptography.Xml.SignedInfo SignedInfo { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.Xml.SignedInfo` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SignedInfo : System.Collections.IEnumerable, System.Collections.ICollection + // Generated from `System.Security.Cryptography.Xml.SignedInfo` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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; } @@ -415,18 +401,18 @@ namespace System public object SyncRoot { get => throw null; } } - // Generated from `System.Security.Cryptography.Xml.SignedXml` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.SignedXml` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class SignedXml { public void AddObject(System.Security.Cryptography.Xml.DataObject dataObject) => throw null; public void AddReference(System.Security.Cryptography.Xml.Reference reference) => throw null; - public bool CheckSignature(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, bool verifySignatureOnly) => throw null; - public bool CheckSignature(System.Security.Cryptography.KeyedHashAlgorithm macAlg) => throw null; - public bool CheckSignature(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; public bool CheckSignature() => throw null; + public bool CheckSignature(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; + public bool CheckSignature(System.Security.Cryptography.KeyedHashAlgorithm macAlg) => throw null; + public bool CheckSignature(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, bool verifySignatureOnly) => throw null; public bool CheckSignatureReturningKey(out System.Security.Cryptography.AsymmetricAlgorithm signingKey) => throw null; - public void ComputeSignature(System.Security.Cryptography.KeyedHashAlgorithm macAlg) => 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; @@ -441,9 +427,9 @@ namespace System 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(System.Xml.XmlElement elem) => throw null; - public SignedXml(System.Xml.XmlDocument document) => 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; @@ -474,15 +460,15 @@ namespace System protected string m_strSigningKeyName; } - // Generated from `System.Security.Cryptography.Xml.Transform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.Transform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; protected abstract System.Xml.XmlNodeList GetInnerXml(); - public abstract object GetOutput(System.Type type); public abstract object GetOutput(); + public abstract object GetOutput(System.Type type); public System.Xml.XmlElement GetXml() => throw null; public abstract System.Type[] InputTypes { get; } public abstract void LoadInnerXml(System.Xml.XmlNodeList nodeList); @@ -493,7 +479,7 @@ namespace System protected Transform() => throw null; } - // Generated from `System.Security.Cryptography.Xml.TransformChain` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.TransformChain` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TransformChain { public void Add(System.Security.Cryptography.Xml.Transform transform) => throw null; @@ -503,14 +489,14 @@ namespace System public TransformChain() => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlDecryptionTransform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlDecryptionTransform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } protected override System.Xml.XmlNodeList GetInnerXml() => throw null; - public override object GetOutput(System.Type type) => 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; } protected virtual bool IsTargetElement(System.Xml.XmlElement inputElement, string idValue) => throw null; public override void LoadInnerXml(System.Xml.XmlNodeList nodeList) => throw null; @@ -519,12 +505,12 @@ namespace System public XmlDecryptionTransform() => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlDsigBase64Transform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlDsigBase64Transform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class XmlDsigBase64Transform : System.Security.Cryptography.Xml.Transform { protected override System.Xml.XmlNodeList GetInnerXml() => throw null; - public override object GetOutput(System.Type type) => 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; @@ -532,72 +518,72 @@ namespace System public XmlDsigBase64Transform() => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlDsigC14NTransform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlDsigC14NTransform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class XmlDsigC14NTransform : 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(System.Type type) => 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 XmlDsigC14NTransform(bool includeComments) => throw null; public XmlDsigC14NTransform() => throw null; + public XmlDsigC14NTransform(bool includeComments) => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlDsigC14NWithCommentsTransform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlDsigC14NWithCommentsTransform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class XmlDsigC14NWithCommentsTransform : System.Security.Cryptography.Xml.XmlDsigC14NTransform { public XmlDsigC14NWithCommentsTransform() => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlDsigEnvelopedSignatureTransform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlDsigEnvelopedSignatureTransform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class XmlDsigEnvelopedSignatureTransform : System.Security.Cryptography.Xml.Transform { protected override System.Xml.XmlNodeList GetInnerXml() => throw null; - public override object GetOutput(System.Type type) => 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(bool includeComments) => throw null; public XmlDsigEnvelopedSignatureTransform() => throw null; + public XmlDsigEnvelopedSignatureTransform(bool includeComments) => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlDsigExcC14NTransform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlDsigExcC14NTransform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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(System.Type type) => 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 XmlDsigExcC14NTransform(string inclusiveNamespacesPrefixList) => throw null; - public XmlDsigExcC14NTransform(bool includeComments, string inclusiveNamespacesPrefixList) => throw null; - public XmlDsigExcC14NTransform(bool includeComments) => throw null; public XmlDsigExcC14NTransform() => throw null; + public XmlDsigExcC14NTransform(bool includeComments) => throw null; + public XmlDsigExcC14NTransform(bool includeComments, string inclusiveNamespacesPrefixList) => throw null; + public XmlDsigExcC14NTransform(string inclusiveNamespacesPrefixList) => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlDsigExcC14NWithCommentsTransform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlDsigExcC14NWithCommentsTransform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class XmlDsigExcC14NWithCommentsTransform : System.Security.Cryptography.Xml.XmlDsigExcC14NTransform { - public XmlDsigExcC14NWithCommentsTransform(string inclusiveNamespacesPrefixList) => throw null; public XmlDsigExcC14NWithCommentsTransform() => throw null; + public XmlDsigExcC14NWithCommentsTransform(string inclusiveNamespacesPrefixList) => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlDsigXPathTransform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlDsigXPathTransform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class XmlDsigXPathTransform : System.Security.Cryptography.Xml.Transform { protected override System.Xml.XmlNodeList GetInnerXml() => throw null; - public override object GetOutput(System.Type type) => 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; @@ -605,27 +591,27 @@ namespace System public XmlDsigXPathTransform() => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlDsigXsltTransform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlDsigXsltTransform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class XmlDsigXsltTransform : System.Security.Cryptography.Xml.Transform { protected override System.Xml.XmlNodeList GetInnerXml() => throw null; - public override object GetOutput(System.Type type) => 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(bool includeComments) => throw null; public XmlDsigXsltTransform() => throw null; + public XmlDsigXsltTransform(bool includeComments) => throw null; } - // Generated from `System.Security.Cryptography.Xml.XmlLicenseTransform` in `System.Security.Cryptography.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Security.Cryptography.Xml.XmlLicenseTransform` in `System.Security.Cryptography.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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(System.Type type) => 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; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Permissions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Permissions.cs deleted file mode 100644 index 72cc5ec0f51..00000000000 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Permissions.cs +++ /dev/null @@ -1,2319 +0,0 @@ -// This file contains auto-generated code. - -namespace System -{ - // Generated from `System.ApplicationIdentity` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ApplicationIdentity : System.Runtime.Serialization.ISerializable - { - public ApplicationIdentity(string applicationIdentityFullName) => throw null; - public string CodeBase { get => throw null; } - public string FullName { get => throw null; } - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public override string ToString() => throw null; - } - - namespace Configuration - { - // Generated from `System.Configuration.ConfigurationPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public ConfigurationPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Configuration.ConfigurationPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ConfigurationPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public ConfigurationPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public override System.Security.IPermission CreatePermission() => throw null; - } - - } - namespace Data - { - namespace Common - { - // Generated from `System.Data.Common.DBDataPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class DBDataPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public virtual void Add(string connectionString, string restrictions, System.Data.KeyRestrictionBehavior behavior) => throw null; - public bool AllowBlankPassword { get => throw null; set => throw null; } - protected void Clear() => throw null; - public override System.Security.IPermission Copy() => throw null; - protected virtual System.Data.Common.DBDataPermission CreateInstance() => throw null; - protected DBDataPermission(System.Security.Permissions.PermissionState state, bool allowBlankPassword) => throw null; - protected DBDataPermission(System.Security.Permissions.PermissionState state) => throw null; - protected DBDataPermission(System.Data.Common.DBDataPermissionAttribute permissionAttribute) => throw null; - protected DBDataPermission(System.Data.Common.DBDataPermission permission) => throw null; - protected DBDataPermission() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Data.Common.DBDataPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class DBDataPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public bool AllowBlankPassword { get => throw null; set => throw null; } - public string ConnectionString { get => throw null; set => throw null; } - protected DBDataPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public System.Data.KeyRestrictionBehavior KeyRestrictionBehavior { get => throw null; set => throw null; } - public string KeyRestrictions { get => throw null; set => throw null; } - public bool ShouldSerializeConnectionString() => throw null; - public bool ShouldSerializeKeyRestrictions() => throw null; - } - - } - namespace Odbc - { - // Generated from `System.Data.Odbc.OdbcPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class OdbcPermission : System.Data.Common.DBDataPermission - { - public override void Add(string connectionString, string restrictions, System.Data.KeyRestrictionBehavior behavior) => throw null; - public override System.Security.IPermission Copy() => throw null; - public OdbcPermission(System.Security.Permissions.PermissionState state, bool allowBlankPassword) => throw null; - public OdbcPermission(System.Security.Permissions.PermissionState state) => throw null; - public OdbcPermission() => throw null; - } - - // Generated from `System.Data.Odbc.OdbcPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class OdbcPermissionAttribute : System.Data.Common.DBDataPermissionAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public OdbcPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - } - namespace OleDb - { - // Generated from `System.Data.OleDb.OleDbPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class OleDbPermission : System.Data.Common.DBDataPermission - { - public override System.Security.IPermission Copy() => throw null; - public OleDbPermission(System.Security.Permissions.PermissionState state, bool allowBlankPassword) => throw null; - public OleDbPermission(System.Security.Permissions.PermissionState state) => throw null; - public OleDbPermission() => throw null; - public string Provider { get => throw null; set => throw null; } - } - - // Generated from `System.Data.OleDb.OleDbPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class OleDbPermissionAttribute : System.Data.Common.DBDataPermissionAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public OleDbPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string Provider { get => throw null; set => throw null; } - } - - } - namespace OracleClient - { - // Generated from `System.Data.OracleClient.OraclePermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class OraclePermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public void Add(string connectionString, string restrictions, System.Data.KeyRestrictionBehavior behavior) => throw null; - public bool AllowBlankPassword { get => throw null; set => throw null; } - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public OraclePermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Data.OracleClient.OraclePermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class OraclePermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public bool AllowBlankPassword { get => throw null; set => throw null; } - public string ConnectionString { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public System.Data.KeyRestrictionBehavior KeyRestrictionBehavior { get => throw null; set => throw null; } - public string KeyRestrictions { get => throw null; set => throw null; } - public OraclePermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public bool ShouldSerializeConnectionString() => throw null; - public bool ShouldSerializeKeyRestrictions() => throw null; - } - - } - namespace SqlClient - { - // Generated from `System.Data.SqlClient.SqlClientPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SqlClientPermission : System.Data.Common.DBDataPermission - { - public override void Add(string connectionString, string restrictions, System.Data.KeyRestrictionBehavior behavior) => throw null; - public override System.Security.IPermission Copy() => throw null; - public SqlClientPermission(System.Security.Permissions.PermissionState state, bool allowBlankPassword) => throw null; - public SqlClientPermission(System.Security.Permissions.PermissionState state) => throw null; - public SqlClientPermission() => throw null; - } - - // Generated from `System.Data.SqlClient.SqlClientPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SqlClientPermissionAttribute : System.Data.Common.DBDataPermissionAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public SqlClientPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - } - } - namespace Diagnostics - { - // Generated from `System.Diagnostics.EventLogPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EventLogPermission : System.Security.Permissions.ResourcePermissionBase - { - public EventLogPermission(System.Security.Permissions.PermissionState state) => throw null; - public EventLogPermission(System.Diagnostics.EventLogPermissionEntry[] permissionAccessEntries) => throw null; - public EventLogPermission(System.Diagnostics.EventLogPermissionAccess permissionAccess, string machineName) => throw null; - public EventLogPermission() => throw null; - public System.Diagnostics.EventLogPermissionEntryCollection PermissionEntries { get => throw null; } - } - - // Generated from `System.Diagnostics.EventLogPermissionAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum EventLogPermissionAccess - { - Administer, - Audit, - Browse, - Instrument, - None, - Write, - } - - // Generated from `System.Diagnostics.EventLogPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EventLogPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public EventLogPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string MachineName { get => throw null; set => throw null; } - public System.Diagnostics.EventLogPermissionAccess PermissionAccess { get => throw null; set => throw null; } - } - - // Generated from `System.Diagnostics.EventLogPermissionEntry` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EventLogPermissionEntry - { - public EventLogPermissionEntry(System.Diagnostics.EventLogPermissionAccess permissionAccess, string machineName) => throw null; - public string MachineName { get => throw null; } - public System.Diagnostics.EventLogPermissionAccess PermissionAccess { get => throw null; } - } - - // Generated from `System.Diagnostics.EventLogPermissionEntryCollection` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EventLogPermissionEntryCollection : System.Collections.CollectionBase - { - public int Add(System.Diagnostics.EventLogPermissionEntry value) => throw null; - public void AddRange(System.Diagnostics.EventLogPermissionEntry[] value) => throw null; - public void AddRange(System.Diagnostics.EventLogPermissionEntryCollection value) => throw null; - public bool Contains(System.Diagnostics.EventLogPermissionEntry value) => throw null; - public void CopyTo(System.Diagnostics.EventLogPermissionEntry[] array, int index) => throw null; - public int IndexOf(System.Diagnostics.EventLogPermissionEntry value) => throw null; - public void Insert(int index, System.Diagnostics.EventLogPermissionEntry value) => throw null; - public System.Diagnostics.EventLogPermissionEntry this[int index] { get => throw null; set => 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.Diagnostics.EventLogPermissionEntry value) => throw null; - } - - // Generated from `System.Diagnostics.PerformanceCounterPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PerformanceCounterPermission : System.Security.Permissions.ResourcePermissionBase - { - public PerformanceCounterPermission(System.Security.Permissions.PermissionState state) => throw null; - public PerformanceCounterPermission(System.Diagnostics.PerformanceCounterPermissionEntry[] permissionAccessEntries) => throw null; - public PerformanceCounterPermission(System.Diagnostics.PerformanceCounterPermissionAccess permissionAccess, string machineName, string categoryName) => throw null; - public PerformanceCounterPermission() => throw null; - public System.Diagnostics.PerformanceCounterPermissionEntryCollection PermissionEntries { get => throw null; } - } - - // Generated from `System.Diagnostics.PerformanceCounterPermissionAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum PerformanceCounterPermissionAccess - { - Administer, - Browse, - Instrument, - None, - Read, - Write, - } - - // Generated from `System.Diagnostics.PerformanceCounterPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PerformanceCounterPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public string CategoryName { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public string MachineName { get => throw null; set => throw null; } - public PerformanceCounterPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public System.Diagnostics.PerformanceCounterPermissionAccess PermissionAccess { get => throw null; set => throw null; } - } - - // Generated from `System.Diagnostics.PerformanceCounterPermissionEntry` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PerformanceCounterPermissionEntry - { - public string CategoryName { get => throw null; } - public string MachineName { get => throw null; } - public PerformanceCounterPermissionEntry(System.Diagnostics.PerformanceCounterPermissionAccess permissionAccess, string machineName, string categoryName) => throw null; - public System.Diagnostics.PerformanceCounterPermissionAccess PermissionAccess { get => throw null; } - } - - // Generated from `System.Diagnostics.PerformanceCounterPermissionEntryCollection` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PerformanceCounterPermissionEntryCollection : System.Collections.CollectionBase - { - public int Add(System.Diagnostics.PerformanceCounterPermissionEntry value) => throw null; - public void AddRange(System.Diagnostics.PerformanceCounterPermissionEntry[] value) => throw null; - public void AddRange(System.Diagnostics.PerformanceCounterPermissionEntryCollection value) => throw null; - public bool Contains(System.Diagnostics.PerformanceCounterPermissionEntry value) => throw null; - public void CopyTo(System.Diagnostics.PerformanceCounterPermissionEntry[] array, int index) => throw null; - public int IndexOf(System.Diagnostics.PerformanceCounterPermissionEntry value) => throw null; - public void Insert(int index, System.Diagnostics.PerformanceCounterPermissionEntry value) => throw null; - public System.Diagnostics.PerformanceCounterPermissionEntry this[int index] { get => throw null; set => 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.Diagnostics.PerformanceCounterPermissionEntry value) => throw null; - } - - } - namespace Drawing - { - namespace Printing - { - // Generated from `System.Drawing.Printing.PrintingPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrintingPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement element) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public System.Drawing.Printing.PrintingPermissionLevel Level { get => throw null; set => throw null; } - public PrintingPermission(System.Security.Permissions.PermissionState state) => throw null; - public PrintingPermission(System.Drawing.Printing.PrintingPermissionLevel printingLevel) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Drawing.Printing.PrintingPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrintingPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public System.Drawing.Printing.PrintingPermissionLevel Level { get => throw null; set => throw null; } - public PrintingPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Drawing.Printing.PrintingPermissionLevel` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PrintingPermissionLevel - { - AllPrinting, - DefaultPrinting, - NoPrinting, - SafePrinting, - } - - } - } - namespace Net - { - // Generated from `System.Net.DnsPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DnsPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public DnsPermission(System.Security.Permissions.PermissionState state) => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Net.DnsPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DnsPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public DnsPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Net.EndpointPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EndpointPermission - { - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public string Hostname { get => throw null; } - public int Port { get => throw null; } - public System.Net.TransportType Transport { get => throw null; } - } - - // Generated from `System.Net.NetworkAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum NetworkAccess - { - Accept, - Connect, - } - - // Generated from `System.Net.SocketPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SocketPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public System.Collections.IEnumerator AcceptList { get => throw null; } - public void AddPermission(System.Net.NetworkAccess access, System.Net.TransportType transport, string hostName, int portNumber) => throw null; - public const int AllPorts = default; - public System.Collections.IEnumerator ConnectList { get => throw null; } - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public SocketPermission(System.Security.Permissions.PermissionState state) => throw null; - public SocketPermission(System.Net.NetworkAccess access, System.Net.TransportType transport, string hostName, int portNumber) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Net.SocketPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SocketPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public string Access { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public string Host { get => throw null; set => throw null; } - public string Port { get => throw null; set => throw null; } - public SocketPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string Transport { get => throw null; set => throw null; } - } - - // Generated from `System.Net.TransportType` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum TransportType - { - All, - ConnectionOriented, - Connectionless, - Tcp, - Udp, - } - - // Generated from `System.Net.WebPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class WebPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public System.Collections.IEnumerator AcceptList { get => throw null; } - public void AddPermission(System.Net.NetworkAccess access, string uriString) => throw null; - public void AddPermission(System.Net.NetworkAccess access, System.Text.RegularExpressions.Regex uriRegex) => throw null; - public System.Collections.IEnumerator ConnectList { get => throw null; } - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - public WebPermission(System.Security.Permissions.PermissionState state) => throw null; - public WebPermission(System.Net.NetworkAccess access, string uriString) => throw null; - public WebPermission(System.Net.NetworkAccess access, System.Text.RegularExpressions.Regex uriRegex) => throw null; - public WebPermission() => throw null; - } - - // Generated from `System.Net.WebPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class WebPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public string Accept { get => throw null; set => throw null; } - public string AcceptPattern { get => throw null; set => throw null; } - public string Connect { get => throw null; set => throw null; } - public string ConnectPattern { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public WebPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - namespace Mail - { - // Generated from `System.Net.Mail.SmtpAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum SmtpAccess - { - Connect, - ConnectToUnrestrictedPort, - None, - } - - // Generated from `System.Net.Mail.SmtpPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SmtpPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public System.Net.Mail.SmtpAccess Access { get => throw null; } - public void AddPermission(System.Net.Mail.SmtpAccess access) => throw null; - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public SmtpPermission(bool unrestricted) => throw null; - public SmtpPermission(System.Security.Permissions.PermissionState state) => throw null; - public SmtpPermission(System.Net.Mail.SmtpAccess access) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Net.Mail.SmtpPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SmtpPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public string Access { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public SmtpPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - } - namespace NetworkInformation - { - // Generated from `System.Net.NetworkInformation.NetworkInformationAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum NetworkInformationAccess - { - None, - Ping, - Read, - } - - // Generated from `System.Net.NetworkInformation.NetworkInformationPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class NetworkInformationPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public System.Net.NetworkInformation.NetworkInformationAccess Access { get => throw null; } - public void AddPermission(System.Net.NetworkInformation.NetworkInformationAccess access) => throw null; - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public NetworkInformationPermission(System.Security.Permissions.PermissionState state) => throw null; - public NetworkInformationPermission(System.Net.NetworkInformation.NetworkInformationAccess access) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Net.NetworkInformation.NetworkInformationPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class NetworkInformationPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public string Access { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public NetworkInformationPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - } - namespace PeerToPeer - { - // Generated from `System.Net.PeerToPeer.PnrpPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PnrpPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement e) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public PnrpPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Net.PeerToPeer.PnrpPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PnrpPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public PnrpPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Net.PeerToPeer.PnrpScope` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PnrpScope - { - All, - Global, - LinkLocal, - SiteLocal, - } - - namespace Collaboration - { - // Generated from `System.Net.PeerToPeer.Collaboration.PeerCollaborationPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PeerCollaborationPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement e) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public PeerCollaborationPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Net.PeerToPeer.Collaboration.PeerCollaborationPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PeerCollaborationPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public PeerCollaborationPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - } - } - } - namespace Security - { - // Generated from `System.Security.CodeAccessPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class CodeAccessPermission : System.Security.IStackWalk, System.Security.ISecurityEncodable, System.Security.IPermission - { - public void Assert() => throw null; - protected CodeAccessPermission() => throw null; - public abstract System.Security.IPermission Copy(); - public void Demand() => throw null; - public void Deny() => throw null; - public override bool Equals(object obj) => throw null; - public abstract void FromXml(System.Security.SecurityElement elem); - public override int GetHashCode() => throw null; - public abstract System.Security.IPermission Intersect(System.Security.IPermission target); - public abstract bool IsSubsetOf(System.Security.IPermission target); - public void PermitOnly() => throw null; - public static void RevertAll() => throw null; - public static void RevertAssert() => throw null; - public static void RevertDeny() => throw null; - public static void RevertPermitOnly() => throw null; - public override string ToString() => throw null; - public abstract System.Security.SecurityElement ToXml(); - public virtual System.Security.IPermission Union(System.Security.IPermission other) => throw null; - } - - // Generated from `System.Security.HostProtectionException` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class HostProtectionException : System.SystemException - { - public System.Security.Permissions.HostProtectionResource DemandedResources { get => throw null; } - public HostProtectionException(string message, System.Security.Permissions.HostProtectionResource protectedResources, System.Security.Permissions.HostProtectionResource demandedResources) => throw null; - public HostProtectionException(string message, System.Exception e) => throw null; - public HostProtectionException(string message) => throw null; - public HostProtectionException() => throw null; - protected HostProtectionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.Security.Permissions.HostProtectionResource ProtectedResources { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `System.Security.HostSecurityManager` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class HostSecurityManager - { - public virtual System.Security.Policy.ApplicationTrust DetermineApplicationTrust(System.Security.Policy.Evidence applicationEvidence, System.Security.Policy.Evidence activatorEvidence, System.Security.Policy.TrustManagerContext context) => throw null; - public virtual System.Security.Policy.PolicyLevel DomainPolicy { get => throw null; } - public virtual System.Security.HostSecurityManagerOptions Flags { get => throw null; } - public virtual System.Security.Policy.EvidenceBase GenerateAppDomainEvidence(System.Type evidenceType) => throw null; - public virtual System.Security.Policy.EvidenceBase GenerateAssemblyEvidence(System.Type evidenceType, System.Reflection.Assembly assembly) => throw null; - public virtual System.Type[] GetHostSuppliedAppDomainEvidenceTypes() => throw null; - public virtual System.Type[] GetHostSuppliedAssemblyEvidenceTypes(System.Reflection.Assembly assembly) => throw null; - public HostSecurityManager() => throw null; - public virtual System.Security.Policy.Evidence ProvideAppDomainEvidence(System.Security.Policy.Evidence inputEvidence) => throw null; - public virtual System.Security.Policy.Evidence ProvideAssemblyEvidence(System.Reflection.Assembly loadedAssembly, System.Security.Policy.Evidence inputEvidence) => throw null; - public virtual System.Security.PermissionSet ResolvePolicy(System.Security.Policy.Evidence evidence) => throw null; - } - - // Generated from `System.Security.HostSecurityManagerOptions` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum HostSecurityManagerOptions - { - AllFlags, - HostAppDomainEvidence, - HostAssemblyEvidence, - HostDetermineApplicationTrust, - HostPolicyLevel, - HostResolvePolicy, - None, - } - - // Generated from `System.Security.IEvidenceFactory` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public interface IEvidenceFactory - { - System.Security.Policy.Evidence Evidence { get; } - } - - // Generated from `System.Security.ISecurityPolicyEncodable` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public interface ISecurityPolicyEncodable - { - void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level); - System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level); - } - - // Generated from `System.Security.NamedPermissionSet` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class NamedPermissionSet : System.Security.PermissionSet - { - public override System.Security.PermissionSet Copy() => throw null; - public System.Security.NamedPermissionSet Copy(string name) => throw null; - public string Description { get => throw null; set => throw null; } - public override bool Equals(object o) => throw null; - public override void FromXml(System.Security.SecurityElement et) => throw null; - public override int GetHashCode() => throw null; - public string Name { get => throw null; set => throw null; } - public NamedPermissionSet(string name, System.Security.Permissions.PermissionState state) : base(default(System.Security.PermissionSet)) => throw null; - public NamedPermissionSet(string name, System.Security.PermissionSet permSet) : base(default(System.Security.PermissionSet)) => throw null; - public NamedPermissionSet(string name) : base(default(System.Security.PermissionSet)) => throw null; - public NamedPermissionSet(System.Security.NamedPermissionSet permSet) : base(default(System.Security.PermissionSet)) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.PolicyLevelType` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PolicyLevelType - { - AppDomain, - Enterprise, - Machine, - User, - } - - // Generated from `System.Security.SecurityContext` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SecurityContext : System.IDisposable - { - public static System.Security.SecurityContext Capture() => throw null; - public System.Security.SecurityContext CreateCopy() => throw null; - public void Dispose() => throw null; - public static bool IsFlowSuppressed() => throw null; - public static bool IsWindowsIdentityFlowSuppressed() => throw null; - public static void RestoreFlow() => throw null; - public static void Run(System.Security.SecurityContext securityContext, System.Threading.ContextCallback callback, object state) => throw null; - public static System.Threading.AsyncFlowControl SuppressFlow() => throw null; - public static System.Threading.AsyncFlowControl SuppressFlowWindowsIdentity() => throw null; - } - - // Generated from `System.Security.SecurityContextSource` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum SecurityContextSource - { - CurrentAppDomain, - CurrentAssembly, - } - - // Generated from `System.Security.SecurityManager` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class SecurityManager - { - public static bool CheckExecutionRights { get => throw null; set => throw null; } - public static bool CurrentThreadRequiresSecurityContextCapture() => throw null; - public static System.Security.PermissionSet GetStandardSandbox(System.Security.Policy.Evidence evidence) => throw null; - public static void GetZoneAndOrigin(out System.Collections.ArrayList zone, out System.Collections.ArrayList origin) => throw null; - public static bool IsGranted(System.Security.IPermission perm) => throw null; - public static System.Security.Policy.PolicyLevel LoadPolicyLevelFromFile(string path, System.Security.PolicyLevelType type) => throw null; - public static System.Security.Policy.PolicyLevel LoadPolicyLevelFromString(string str, System.Security.PolicyLevelType type) => throw null; - public static System.Collections.IEnumerator PolicyHierarchy() => throw null; - public static System.Security.PermissionSet ResolvePolicy(System.Security.Policy.Evidence[] evidences) => throw null; - public static System.Security.PermissionSet ResolvePolicy(System.Security.Policy.Evidence evidence, System.Security.PermissionSet reqdPset, System.Security.PermissionSet optPset, System.Security.PermissionSet denyPset, out System.Security.PermissionSet denied) => throw null; - public static System.Security.PermissionSet ResolvePolicy(System.Security.Policy.Evidence evidence) => throw null; - public static System.Collections.IEnumerator ResolvePolicyGroups(System.Security.Policy.Evidence evidence) => throw null; - public static System.Security.PermissionSet ResolveSystemPolicy(System.Security.Policy.Evidence evidence) => throw null; - public static void SavePolicy() => throw null; - public static void SavePolicyLevel(System.Security.Policy.PolicyLevel level) => throw null; - public static bool SecurityEnabled { get => throw null; set => throw null; } - } - - // Generated from `System.Security.SecurityState` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class SecurityState - { - public abstract void EnsureState(); - public bool IsStateAvailable() => throw null; - protected SecurityState() => throw null; - } - - // Generated from `System.Security.SecurityZone` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum SecurityZone - { - Internet, - Intranet, - MyComputer, - NoZone, - Trusted, - Untrusted, - } - - // Generated from `System.Security.XmlSyntaxException` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class XmlSyntaxException : System.SystemException - { - public XmlSyntaxException(string message, System.Exception inner) => throw null; - public XmlSyntaxException(string message) => throw null; - public XmlSyntaxException(int lineNumber, string message) => throw null; - public XmlSyntaxException(int lineNumber) => throw null; - public XmlSyntaxException() => throw null; - } - - namespace Permissions - { - // Generated from `System.Security.Permissions.DataProtectionPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DataProtectionPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public DataProtectionPermission(System.Security.Permissions.PermissionState state) => throw null; - public DataProtectionPermission(System.Security.Permissions.DataProtectionPermissionFlags flag) => throw null; - public System.Security.Permissions.DataProtectionPermissionFlags Flags { get => throw null; set => throw null; } - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.DataProtectionPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DataProtectionPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public DataProtectionPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public System.Security.Permissions.DataProtectionPermissionFlags Flags { get => throw null; set => throw null; } - public bool ProtectData { get => throw null; set => throw null; } - public bool ProtectMemory { get => throw null; set => throw null; } - public bool UnprotectData { get => throw null; set => throw null; } - public bool UnprotectMemory { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.DataProtectionPermissionFlags` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum DataProtectionPermissionFlags - { - AllFlags, - NoFlags, - ProtectData, - ProtectMemory, - UnprotectData, - UnprotectMemory, - } - - // Generated from `System.Security.Permissions.EnvironmentPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EnvironmentPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public void AddPathList(System.Security.Permissions.EnvironmentPermissionAccess flag, string pathList) => throw null; - public override System.Security.IPermission Copy() => throw null; - public EnvironmentPermission(System.Security.Permissions.PermissionState state) => throw null; - public EnvironmentPermission(System.Security.Permissions.EnvironmentPermissionAccess flag, string pathList) => throw null; - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public string GetPathList(System.Security.Permissions.EnvironmentPermissionAccess flag) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public void SetPathList(System.Security.Permissions.EnvironmentPermissionAccess flag, string pathList) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission other) => throw null; - } - - // Generated from `System.Security.Permissions.EnvironmentPermissionAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum EnvironmentPermissionAccess - { - AllAccess, - NoAccess, - Read, - Write, - } - - // Generated from `System.Security.Permissions.EnvironmentPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EnvironmentPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public string All { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public EnvironmentPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string Read { get => throw null; set => throw null; } - public string Write { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.FileDialogPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class FileDialogPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public System.Security.Permissions.FileDialogPermissionAccess Access { get => throw null; set => throw null; } - public override System.Security.IPermission Copy() => throw null; - public FileDialogPermission(System.Security.Permissions.PermissionState state) => throw null; - public FileDialogPermission(System.Security.Permissions.FileDialogPermissionAccess access) => throw null; - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.FileDialogPermissionAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum FileDialogPermissionAccess - { - None, - Open, - OpenSave, - Save, - } - - // Generated from `System.Security.Permissions.FileDialogPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class FileDialogPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public FileDialogPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public bool Open { get => throw null; set => throw null; } - public bool Save { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.FileIOPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public void AddPathList(System.Security.Permissions.FileIOPermissionAccess access, string[] pathList) => throw null; - public void AddPathList(System.Security.Permissions.FileIOPermissionAccess access, string path) => throw null; - public System.Security.Permissions.FileIOPermissionAccess AllFiles { get => throw null; set => throw null; } - public System.Security.Permissions.FileIOPermissionAccess AllLocalFiles { get => throw null; set => throw null; } - public override System.Security.IPermission Copy() => throw null; - public override bool Equals(object o) => throw null; - public FileIOPermission(System.Security.Permissions.PermissionState state) => throw null; - public FileIOPermission(System.Security.Permissions.FileIOPermissionAccess access, string[] pathList) => throw null; - public FileIOPermission(System.Security.Permissions.FileIOPermissionAccess access, string path) => throw null; - public FileIOPermission(System.Security.Permissions.FileIOPermissionAccess access, System.Security.AccessControl.AccessControlActions actions, string[] pathList) => throw null; - public FileIOPermission(System.Security.Permissions.FileIOPermissionAccess access, System.Security.AccessControl.AccessControlActions actions, string path) => throw null; - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public override int GetHashCode() => throw null; - public string[] GetPathList(System.Security.Permissions.FileIOPermissionAccess access) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public void SetPathList(System.Security.Permissions.FileIOPermissionAccess access, string[] pathList) => throw null; - public void SetPathList(System.Security.Permissions.FileIOPermissionAccess access, string path) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission other) => throw null; - } - - // Generated from `System.Security.Permissions.FileIOPermissionAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum FileIOPermissionAccess - { - AllAccess, - Append, - NoAccess, - PathDiscovery, - Read, - Write, - } - - // Generated from `System.Security.Permissions.FileIOPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public string All { get => throw null; set => throw null; } - public System.Security.Permissions.FileIOPermissionAccess AllFiles { get => throw null; set => throw null; } - public System.Security.Permissions.FileIOPermissionAccess AllLocalFiles { get => throw null; set => throw null; } - public string Append { get => throw null; set => throw null; } - public string ChangeAccessControl { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public FileIOPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string PathDiscovery { get => throw null; set => throw null; } - public string Read { get => throw null; set => throw null; } - public string ViewAccessControl { get => throw null; set => throw null; } - public string ViewAndModify { get => throw null; set => throw null; } - public string Write { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.GacIdentityPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class GacIdentityPermission : System.Security.CodeAccessPermission - { - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public GacIdentityPermission(System.Security.Permissions.PermissionState state) => throw null; - public GacIdentityPermission() => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.GacIdentityPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class GacIdentityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public GacIdentityPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Security.Permissions.HostProtectionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class HostProtectionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public bool ExternalProcessMgmt { get => throw null; set => throw null; } - public bool ExternalThreading { get => throw null; set => throw null; } - public HostProtectionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public HostProtectionAttribute() : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public bool MayLeakOnAbort { get => throw null; set => throw null; } - public System.Security.Permissions.HostProtectionResource Resources { get => throw null; set => throw null; } - public bool SecurityInfrastructure { get => throw null; set => throw null; } - public bool SelfAffectingProcessMgmt { get => throw null; set => throw null; } - public bool SelfAffectingThreading { get => throw null; set => throw null; } - public bool SharedState { get => throw null; set => throw null; } - public bool Synchronization { get => throw null; set => throw null; } - public bool UI { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.HostProtectionResource` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum HostProtectionResource - { - All, - ExternalProcessMgmt, - ExternalThreading, - MayLeakOnAbort, - None, - SecurityInfrastructure, - SelfAffectingProcessMgmt, - SelfAffectingThreading, - SharedState, - Synchronization, - UI, - } - - // Generated from `System.Security.Permissions.IUnrestrictedPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public interface IUnrestrictedPermission - { - bool IsUnrestricted(); - } - - // Generated from `System.Security.Permissions.IsolatedStorageContainment` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum IsolatedStorageContainment - { - AdministerIsolatedStorageByUser, - ApplicationIsolationByMachine, - ApplicationIsolationByRoamingUser, - ApplicationIsolationByUser, - AssemblyIsolationByMachine, - AssemblyIsolationByRoamingUser, - AssemblyIsolationByUser, - DomainIsolationByMachine, - DomainIsolationByRoamingUser, - DomainIsolationByUser, - None, - UnrestrictedIsolatedStorage, - } - - // Generated from `System.Security.Permissions.IsolatedStorageFilePermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class IsolatedStorageFilePermission : System.Security.Permissions.IsolatedStoragePermission - { - public override System.Security.IPermission Copy() => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public IsolatedStorageFilePermission(System.Security.Permissions.PermissionState state) : base(default(System.Security.Permissions.PermissionState)) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.IsolatedStorageFilePermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class IsolatedStorageFilePermissionAttribute : System.Security.Permissions.IsolatedStoragePermissionAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public IsolatedStorageFilePermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Security.Permissions.IsolatedStoragePermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class IsolatedStoragePermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public bool IsUnrestricted() => throw null; - protected IsolatedStoragePermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public System.Security.Permissions.IsolatedStorageContainment UsageAllowed { get => throw null; set => throw null; } - public System.Int64 UserQuota { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.IsolatedStoragePermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class IsolatedStoragePermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - protected IsolatedStoragePermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public System.Security.Permissions.IsolatedStorageContainment UsageAllowed { get => throw null; set => throw null; } - public System.Int64 UserQuota { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.KeyContainerPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class KeyContainerPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public System.Security.Permissions.KeyContainerPermissionAccessEntryCollection AccessEntries { get => throw null; } - public override System.Security.IPermission Copy() => throw null; - public System.Security.Permissions.KeyContainerPermissionFlags Flags { get => throw null; } - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public KeyContainerPermission(System.Security.Permissions.PermissionState state) => throw null; - public KeyContainerPermission(System.Security.Permissions.KeyContainerPermissionFlags flags, System.Security.Permissions.KeyContainerPermissionAccessEntry[] accessList) => throw null; - public KeyContainerPermission(System.Security.Permissions.KeyContainerPermissionFlags flags) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.KeyContainerPermissionAccessEntry` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class KeyContainerPermissionAccessEntry - { - public override bool Equals(object o) => throw null; - public System.Security.Permissions.KeyContainerPermissionFlags Flags { get => throw null; set => throw null; } - public override int GetHashCode() => throw null; - public string KeyContainerName { get => throw null; set => throw null; } - public KeyContainerPermissionAccessEntry(string keyStore, string providerName, int providerType, string keyContainerName, int keySpec, System.Security.Permissions.KeyContainerPermissionFlags flags) => throw null; - public KeyContainerPermissionAccessEntry(string keyContainerName, System.Security.Permissions.KeyContainerPermissionFlags flags) => throw null; - public KeyContainerPermissionAccessEntry(System.Security.Cryptography.CspParameters parameters, System.Security.Permissions.KeyContainerPermissionFlags flags) => throw null; - public int KeySpec { get => throw null; set => throw null; } - public string KeyStore { get => throw null; set => throw null; } - public string ProviderName { get => throw null; set => throw null; } - public int ProviderType { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.KeyContainerPermissionAccessEntryCollection` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class KeyContainerPermissionAccessEntryCollection : System.Collections.IEnumerable, System.Collections.ICollection - { - public int Add(System.Security.Permissions.KeyContainerPermissionAccessEntry accessEntry) => throw null; - public void Clear() => throw null; - public void CopyTo(System.Security.Permissions.KeyContainerPermissionAccessEntry[] array, int index) => throw null; - public void CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - public System.Security.Permissions.KeyContainerPermissionAccessEntryEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public int IndexOf(System.Security.Permissions.KeyContainerPermissionAccessEntry accessEntry) => throw null; - public bool IsSynchronized { get => throw null; } - public System.Security.Permissions.KeyContainerPermissionAccessEntry this[int index] { get => throw null; } - public KeyContainerPermissionAccessEntryCollection() => throw null; - public void Remove(System.Security.Permissions.KeyContainerPermissionAccessEntry accessEntry) => throw null; - public object SyncRoot { get => throw null; } - } - - // Generated from `System.Security.Permissions.KeyContainerPermissionAccessEntryEnumerator` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class KeyContainerPermissionAccessEntryEnumerator : System.Collections.IEnumerator - { - public System.Security.Permissions.KeyContainerPermissionAccessEntry Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public KeyContainerPermissionAccessEntryEnumerator() => throw null; - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - // Generated from `System.Security.Permissions.KeyContainerPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class KeyContainerPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public System.Security.Permissions.KeyContainerPermissionFlags Flags { get => throw null; set => throw null; } - public string KeyContainerName { get => throw null; set => throw null; } - public KeyContainerPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public int KeySpec { get => throw null; set => throw null; } - public string KeyStore { get => throw null; set => throw null; } - public string ProviderName { get => throw null; set => throw null; } - public int ProviderType { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.KeyContainerPermissionFlags` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum KeyContainerPermissionFlags - { - AllFlags, - ChangeAcl, - Create, - Decrypt, - Delete, - Export, - Import, - NoFlags, - Open, - Sign, - ViewAcl, - } - - // Generated from `System.Security.Permissions.MediaPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class MediaPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public System.Security.Permissions.MediaPermissionAudio Audio { get => throw null; } - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public System.Security.Permissions.MediaPermissionImage Image { get => throw null; } - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public MediaPermission(System.Security.Permissions.PermissionState state) => throw null; - public MediaPermission(System.Security.Permissions.MediaPermissionVideo permissionVideo) => throw null; - public MediaPermission(System.Security.Permissions.MediaPermissionImage permissionImage) => throw null; - public MediaPermission(System.Security.Permissions.MediaPermissionAudio permissionAudio, System.Security.Permissions.MediaPermissionVideo permissionVideo, System.Security.Permissions.MediaPermissionImage permissionImage) => throw null; - public MediaPermission(System.Security.Permissions.MediaPermissionAudio permissionAudio) => throw null; - public MediaPermission() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - public System.Security.Permissions.MediaPermissionVideo Video { get => throw null; } - } - - // Generated from `System.Security.Permissions.MediaPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class MediaPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public System.Security.Permissions.MediaPermissionAudio Audio { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public System.Security.Permissions.MediaPermissionImage Image { get => throw null; set => throw null; } - public MediaPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public System.Security.Permissions.MediaPermissionVideo Video { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.MediaPermissionAudio` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum MediaPermissionAudio - { - AllAudio, - NoAudio, - SafeAudio, - SiteOfOriginAudio, - } - - // Generated from `System.Security.Permissions.MediaPermissionImage` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum MediaPermissionImage - { - AllImage, - NoImage, - SafeImage, - SiteOfOriginImage, - } - - // Generated from `System.Security.Permissions.MediaPermissionVideo` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum MediaPermissionVideo - { - AllVideo, - NoVideo, - SafeVideo, - SiteOfOriginVideo, - } - - // Generated from `System.Security.Permissions.PermissionSetAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PermissionSetAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public System.Security.PermissionSet CreatePermissionSet() => throw null; - public string File { get => throw null; set => throw null; } - public string Hex { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public PermissionSetAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public bool UnicodeEncoded { get => throw null; set => throw null; } - public string XML { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.PrincipalPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrincipalPermission : System.Security.Permissions.IUnrestrictedPermission, System.Security.ISecurityEncodable, System.Security.IPermission - { - public System.Security.IPermission Copy() => throw null; - public void Demand() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement elem) => throw null; - public override int GetHashCode() => throw null; - public System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public PrincipalPermission(string name, string role, bool isAuthenticated) => throw null; - public PrincipalPermission(string name, string role) => throw null; - public PrincipalPermission(System.Security.Permissions.PermissionState state) => throw null; - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml() => throw null; - public System.Security.IPermission Union(System.Security.IPermission other) => throw null; - } - - // Generated from `System.Security.Permissions.PrincipalPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrincipalPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public bool Authenticated { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public string Name { get => throw null; set => throw null; } - public PrincipalPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string Role { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.PublisherIdentityPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PublisherIdentityPermission : System.Security.CodeAccessPermission - { - public System.Security.Cryptography.X509Certificates.X509Certificate Certificate { get => throw null; set => throw null; } - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public PublisherIdentityPermission(System.Security.Permissions.PermissionState state) => throw null; - public PublisherIdentityPermission(System.Security.Cryptography.X509Certificates.X509Certificate certificate) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.PublisherIdentityPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PublisherIdentityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public string CertFile { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public PublisherIdentityPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string SignedFile { get => throw null; set => throw null; } - public string X509Certificate { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.ReflectionPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ReflectionPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public System.Security.Permissions.ReflectionPermissionFlag Flags { get => throw null; set => throw null; } - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public ReflectionPermission(System.Security.Permissions.ReflectionPermissionFlag flag) => throw null; - public ReflectionPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission other) => throw null; - } - - // Generated from `System.Security.Permissions.ReflectionPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ReflectionPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public System.Security.Permissions.ReflectionPermissionFlag Flags { get => throw null; set => throw null; } - public bool MemberAccess { get => throw null; set => throw null; } - public bool ReflectionEmit { get => throw null; set => throw null; } - public ReflectionPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public bool RestrictedMemberAccess { get => throw null; set => throw null; } - public bool TypeInformation { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.ReflectionPermissionFlag` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum ReflectionPermissionFlag - { - AllFlags, - MemberAccess, - NoFlags, - ReflectionEmit, - RestrictedMemberAccess, - TypeInformation, - } - - // Generated from `System.Security.Permissions.RegistryPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class RegistryPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public void AddPathList(System.Security.Permissions.RegistryPermissionAccess access, string pathList) => throw null; - public void AddPathList(System.Security.Permissions.RegistryPermissionAccess access, System.Security.AccessControl.AccessControlActions actions, string pathList) => throw null; - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement elem) => throw null; - public string GetPathList(System.Security.Permissions.RegistryPermissionAccess access) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public RegistryPermission(System.Security.Permissions.RegistryPermissionAccess access, string pathList) => throw null; - public RegistryPermission(System.Security.Permissions.RegistryPermissionAccess access, System.Security.AccessControl.AccessControlActions control, string pathList) => throw null; - public RegistryPermission(System.Security.Permissions.PermissionState state) => throw null; - public void SetPathList(System.Security.Permissions.RegistryPermissionAccess access, string pathList) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission other) => throw null; - } - - // Generated from `System.Security.Permissions.RegistryPermissionAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum RegistryPermissionAccess - { - AllAccess, - Create, - NoAccess, - Read, - Write, - } - - // Generated from `System.Security.Permissions.RegistryPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class RegistryPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public string All { get => throw null; set => throw null; } - public string ChangeAccessControl { get => throw null; set => throw null; } - public string Create { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public string Read { get => throw null; set => throw null; } - public RegistryPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string ViewAccessControl { get => throw null; set => throw null; } - public string ViewAndModify { get => throw null; set => throw null; } - public string Write { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.ResourcePermissionBase` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class ResourcePermissionBase : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - protected void AddPermissionAccess(System.Security.Permissions.ResourcePermissionBaseEntry entry) => throw null; - public const string Any = default; - protected void Clear() => throw null; - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - protected System.Security.Permissions.ResourcePermissionBaseEntry[] GetPermissionEntries() => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public const string Local = default; - protected System.Type PermissionAccessType { get => throw null; set => throw null; } - protected void RemovePermissionAccess(System.Security.Permissions.ResourcePermissionBaseEntry entry) => throw null; - protected ResourcePermissionBase(System.Security.Permissions.PermissionState state) => throw null; - protected ResourcePermissionBase() => throw null; - protected string[] TagNames { get => throw null; set => throw null; } - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.ResourcePermissionBaseEntry` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ResourcePermissionBaseEntry - { - public int PermissionAccess { get => throw null; } - public string[] PermissionAccessPath { get => throw null; } - public ResourcePermissionBaseEntry(int permissionAccess, string[] permissionAccessPath) => throw null; - public ResourcePermissionBaseEntry() => throw null; - } - - // Generated from `System.Security.Permissions.SecurityPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SecurityPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public System.Security.Permissions.SecurityPermissionFlag Flags { get => throw null; set => throw null; } - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public SecurityPermission(System.Security.Permissions.SecurityPermissionFlag flag) => throw null; - public SecurityPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.SiteIdentityPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SiteIdentityPermission : System.Security.CodeAccessPermission - { - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public string Site { get => throw null; set => throw null; } - public SiteIdentityPermission(string site) => throw null; - public SiteIdentityPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.SiteIdentityPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SiteIdentityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public string Site { get => throw null; set => throw null; } - public SiteIdentityPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Security.Permissions.StorePermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StorePermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public System.Security.Permissions.StorePermissionFlags Flags { get => throw null; set => throw null; } - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public StorePermission(System.Security.Permissions.StorePermissionFlags flag) => throw null; - public StorePermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.StorePermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StorePermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public bool AddToStore { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public bool CreateStore { get => throw null; set => throw null; } - public bool DeleteStore { get => throw null; set => throw null; } - public bool EnumerateCertificates { get => throw null; set => throw null; } - public bool EnumerateStores { get => throw null; set => throw null; } - public System.Security.Permissions.StorePermissionFlags Flags { get => throw null; set => throw null; } - public bool OpenStore { get => throw null; set => throw null; } - public bool RemoveFromStore { get => throw null; set => throw null; } - public StorePermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Security.Permissions.StorePermissionFlags` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum StorePermissionFlags - { - AddToStore, - AllFlags, - CreateStore, - DeleteStore, - EnumerateCertificates, - EnumerateStores, - NoFlags, - OpenStore, - RemoveFromStore, - } - - // Generated from `System.Security.Permissions.StrongNameIdentityPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StrongNameIdentityPermission : System.Security.CodeAccessPermission - { - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement e) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public string Name { get => throw null; set => throw null; } - public System.Security.Permissions.StrongNamePublicKeyBlob PublicKey { get => throw null; set => throw null; } - public StrongNameIdentityPermission(System.Security.Permissions.StrongNamePublicKeyBlob blob, string name, System.Version version) => throw null; - public StrongNameIdentityPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - public System.Version Version { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.StrongNameIdentityPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StrongNameIdentityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public string Name { get => throw null; set => throw null; } - public string PublicKey { get => throw null; set => throw null; } - public StrongNameIdentityPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string Version { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.StrongNamePublicKeyBlob` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StrongNamePublicKeyBlob - { - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public StrongNamePublicKeyBlob(System.Byte[] publicKey) => throw null; - public override string ToString() => throw null; - } - - // Generated from `System.Security.Permissions.TypeDescriptorPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TypeDescriptorPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public System.Security.Permissions.TypeDescriptorPermissionFlags Flags { get => throw null; set => throw null; } - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public TypeDescriptorPermission(System.Security.Permissions.TypeDescriptorPermissionFlags flag) => throw null; - public TypeDescriptorPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Security.Permissions.TypeDescriptorPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TypeDescriptorPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public System.Security.Permissions.TypeDescriptorPermissionFlags Flags { get => throw null; set => throw null; } - public bool RestrictedRegistrationAccess { get => throw null; set => throw null; } - public TypeDescriptorPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Security.Permissions.TypeDescriptorPermissionFlags` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum TypeDescriptorPermissionFlags - { - NoFlags, - RestrictedRegistrationAccess, - } - - // Generated from `System.Security.Permissions.UIPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class UIPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public System.Security.Permissions.UIPermissionClipboard Clipboard { get => throw null; set => throw null; } - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public UIPermission(System.Security.Permissions.UIPermissionWindow windowFlag, System.Security.Permissions.UIPermissionClipboard clipboardFlag) => throw null; - public UIPermission(System.Security.Permissions.UIPermissionWindow windowFlag) => throw null; - public UIPermission(System.Security.Permissions.UIPermissionClipboard clipboardFlag) => throw null; - public UIPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - public System.Security.Permissions.UIPermissionWindow Window { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.UIPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class UIPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public System.Security.Permissions.UIPermissionClipboard Clipboard { get => throw null; set => throw null; } - public override System.Security.IPermission CreatePermission() => throw null; - public UIPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public System.Security.Permissions.UIPermissionWindow Window { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Permissions.UIPermissionClipboard` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum UIPermissionClipboard - { - AllClipboard, - NoClipboard, - OwnClipboard, - } - - // Generated from `System.Security.Permissions.UIPermissionWindow` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum UIPermissionWindow - { - AllWindows, - NoWindows, - SafeSubWindows, - SafeTopLevelWindows, - } - - // Generated from `System.Security.Permissions.UrlIdentityPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class UrlIdentityPermission : System.Security.CodeAccessPermission - { - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - public string Url { get => throw null; set => throw null; } - public UrlIdentityPermission(string site) => throw null; - public UrlIdentityPermission(System.Security.Permissions.PermissionState state) => throw null; - } - - // Generated from `System.Security.Permissions.UrlIdentityPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class UrlIdentityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public string Url { get => throw null; set => throw null; } - public UrlIdentityPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Security.Permissions.WebBrowserPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class WebBrowserPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public System.Security.Permissions.WebBrowserPermissionLevel Level { get => throw null; set => throw null; } - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - public WebBrowserPermission(System.Security.Permissions.WebBrowserPermissionLevel webBrowserPermissionLevel) => throw null; - public WebBrowserPermission(System.Security.Permissions.PermissionState state) => throw null; - public WebBrowserPermission() => throw null; - } - - // Generated from `System.Security.Permissions.WebBrowserPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class WebBrowserPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public System.Security.Permissions.WebBrowserPermissionLevel Level { get => throw null; set => throw null; } - public WebBrowserPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - // Generated from `System.Security.Permissions.WebBrowserPermissionLevel` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum WebBrowserPermissionLevel - { - None, - Safe, - Unrestricted, - } - - // Generated from `System.Security.Permissions.ZoneIdentityPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ZoneIdentityPermission : System.Security.CodeAccessPermission - { - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement esd) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public System.Security.SecurityZone SecurityZone { get => throw null; set => throw null; } - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - public ZoneIdentityPermission(System.Security.SecurityZone zone) => throw null; - public ZoneIdentityPermission(System.Security.Permissions.PermissionState state) => throw null; - } - - // Generated from `System.Security.Permissions.ZoneIdentityPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ZoneIdentityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public System.Security.SecurityZone Zone { get => throw null; set => throw null; } - public ZoneIdentityPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - } - - } - namespace Policy - { - // Generated from `System.Security.Policy.AllMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class AllMembershipCondition : System.Security.Policy.IMembershipCondition, System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - public AllMembershipCondition() => throw null; - public bool Check(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.IMembershipCondition Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.Policy.ApplicationDirectory` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ApplicationDirectory : System.Security.Policy.EvidenceBase - { - public ApplicationDirectory(string name) => throw null; - public object Copy() => throw null; - public string Directory { get => throw null; } - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - } - - // Generated from `System.Security.Policy.ApplicationDirectoryMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ApplicationDirectoryMembershipCondition : System.Security.Policy.IMembershipCondition, System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - public ApplicationDirectoryMembershipCondition() => throw null; - public bool Check(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.IMembershipCondition Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.Policy.ApplicationTrust` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ApplicationTrust : System.Security.Policy.EvidenceBase, System.Security.ISecurityEncodable - { - public System.ApplicationIdentity ApplicationIdentity { get => throw null; set => throw null; } - public ApplicationTrust(System.Security.PermissionSet defaultGrantSet, System.Collections.Generic.IEnumerable fullTrustAssemblies) => throw null; - public ApplicationTrust(System.ApplicationIdentity identity) => throw null; - public ApplicationTrust() => throw null; - public System.Security.Policy.PolicyStatement DefaultGrantSet { get => throw null; set => throw null; } - public object ExtraInfo { get => throw null; set => throw null; } - public void FromXml(System.Security.SecurityElement element) => throw null; - public System.Collections.Generic.IList FullTrustAssemblies { get => throw null; } - public bool IsApplicationTrustedToRun { get => throw null; set => throw null; } - public bool Persist { get => throw null; set => throw null; } - public System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.Policy.ApplicationTrustCollection` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ApplicationTrustCollection : System.Collections.IEnumerable, System.Collections.ICollection - { - public int Add(System.Security.Policy.ApplicationTrust trust) => throw null; - public void AddRange(System.Security.Policy.ApplicationTrust[] trusts) => throw null; - public void AddRange(System.Security.Policy.ApplicationTrustCollection trusts) => throw null; - public void Clear() => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(System.Security.Policy.ApplicationTrust[] array, int index) => throw null; - public int Count { get => throw null; } - public System.Security.Policy.ApplicationTrustCollection Find(System.ApplicationIdentity applicationIdentity, System.Security.Policy.ApplicationVersionMatch versionMatch) => throw null; - public System.Security.Policy.ApplicationTrustEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public bool IsSynchronized { get => throw null; } - public System.Security.Policy.ApplicationTrust this[string appFullName] { get => throw null; } - public System.Security.Policy.ApplicationTrust this[int index] { get => throw null; } - public void Remove(System.Security.Policy.ApplicationTrust trust) => throw null; - public void Remove(System.ApplicationIdentity applicationIdentity, System.Security.Policy.ApplicationVersionMatch versionMatch) => throw null; - public void RemoveRange(System.Security.Policy.ApplicationTrust[] trusts) => throw null; - public void RemoveRange(System.Security.Policy.ApplicationTrustCollection trusts) => throw null; - public object SyncRoot { get => throw null; } - } - - // Generated from `System.Security.Policy.ApplicationTrustEnumerator` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ApplicationTrustEnumerator : System.Collections.IEnumerator - { - public System.Security.Policy.ApplicationTrust Current { get => throw null; } - object System.Collections.IEnumerator.Current { get => throw null; } - public bool MoveNext() => throw null; - public void Reset() => throw null; - } - - // Generated from `System.Security.Policy.ApplicationVersionMatch` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum ApplicationVersionMatch - { - MatchAllVersions, - MatchExactVersion, - } - - // Generated from `System.Security.Policy.CodeConnectAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class CodeConnectAccess - { - public static string AnyScheme; - public CodeConnectAccess(string allowScheme, int allowPort) => throw null; - public static System.Security.Policy.CodeConnectAccess CreateAnySchemeAccess(int allowPort) => throw null; - public static System.Security.Policy.CodeConnectAccess CreateOriginSchemeAccess(int allowPort) => throw null; - public static int DefaultPort; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public static int OriginPort; - public static string OriginScheme; - public int Port { get => throw null; } - public string Scheme { get => throw null; } - } - - // Generated from `System.Security.Policy.CodeGroup` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class CodeGroup - { - public void AddChild(System.Security.Policy.CodeGroup group) => throw null; - public virtual string AttributeString { get => throw null; } - public System.Collections.IList Children { get => throw null; set => throw null; } - protected CodeGroup(System.Security.Policy.IMembershipCondition membershipCondition, System.Security.Policy.PolicyStatement policy) => throw null; - public abstract System.Security.Policy.CodeGroup Copy(); - protected virtual void CreateXml(System.Security.SecurityElement element, System.Security.Policy.PolicyLevel level) => throw null; - public string Description { get => throw null; set => throw null; } - public override bool Equals(object o) => throw null; - public bool Equals(System.Security.Policy.CodeGroup cg, bool compareChildren) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public override int GetHashCode() => throw null; - public System.Security.Policy.IMembershipCondition MembershipCondition { get => throw null; set => throw null; } - public abstract string MergeLogic { get; } - public string Name { get => throw null; set => throw null; } - protected virtual void ParseXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public virtual string PermissionSetName { get => throw null; } - public System.Security.Policy.PolicyStatement PolicyStatement { get => throw null; set => throw null; } - public void RemoveChild(System.Security.Policy.CodeGroup group) => throw null; - public abstract System.Security.Policy.PolicyStatement Resolve(System.Security.Policy.Evidence evidence); - public abstract System.Security.Policy.CodeGroup ResolveMatchingCodeGroups(System.Security.Policy.Evidence evidence); - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.Policy.Evidence` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Evidence : System.Collections.IEnumerable, System.Collections.ICollection - { - public void AddAssembly(object id) => throw null; - public void AddAssemblyEvidence(T evidence) where T : System.Security.Policy.EvidenceBase => throw null; - public void AddHost(object id) => throw null; - public void AddHostEvidence(T evidence) where T : System.Security.Policy.EvidenceBase => throw null; - public void Clear() => throw null; - public System.Security.Policy.Evidence Clone() => throw null; - public void CopyTo(System.Array array, int index) => throw null; - public int Count { get => throw null; } - public Evidence(object[] hostEvidence, object[] assemblyEvidence) => throw null; - public Evidence(System.Security.Policy.EvidenceBase[] hostEvidence, System.Security.Policy.EvidenceBase[] assemblyEvidence) => throw null; - public Evidence(System.Security.Policy.Evidence evidence) => throw null; - public Evidence() => 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; - public System.Collections.IEnumerator GetHostEnumerator() => throw null; - 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 void Merge(System.Security.Policy.Evidence evidence) => throw null; - public void RemoveType(System.Type t) => throw null; - public object SyncRoot { get => throw null; } - } - - // Generated from `System.Security.Policy.EvidenceBase` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class EvidenceBase - { - public virtual System.Security.Policy.EvidenceBase Clone() => throw null; - protected EvidenceBase() => throw null; - } - - // Generated from `System.Security.Policy.FileCodeGroup` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class FileCodeGroup : System.Security.Policy.CodeGroup - { - public override string AttributeString { get => throw null; } - public override System.Security.Policy.CodeGroup Copy() => throw null; - protected override void CreateXml(System.Security.SecurityElement element, System.Security.Policy.PolicyLevel level) => throw null; - public override bool Equals(object o) => throw null; - public FileCodeGroup(System.Security.Policy.IMembershipCondition membershipCondition, System.Security.Permissions.FileIOPermissionAccess access) : base(default(System.Security.Policy.IMembershipCondition), default(System.Security.Policy.PolicyStatement)) => throw null; - public override int GetHashCode() => throw null; - public override string MergeLogic { get => throw null; } - protected override void ParseXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public override string PermissionSetName { get => throw null; } - public override System.Security.Policy.PolicyStatement Resolve(System.Security.Policy.Evidence evidence) => throw null; - public override System.Security.Policy.CodeGroup ResolveMatchingCodeGroups(System.Security.Policy.Evidence evidence) => throw null; - } - - // Generated from `System.Security.Policy.FirstMatchCodeGroup` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class FirstMatchCodeGroup : System.Security.Policy.CodeGroup - { - public override System.Security.Policy.CodeGroup Copy() => throw null; - public FirstMatchCodeGroup(System.Security.Policy.IMembershipCondition membershipCondition, System.Security.Policy.PolicyStatement policy) : base(default(System.Security.Policy.IMembershipCondition), default(System.Security.Policy.PolicyStatement)) => throw null; - public override string MergeLogic { get => throw null; } - public override System.Security.Policy.PolicyStatement Resolve(System.Security.Policy.Evidence evidence) => throw null; - public override System.Security.Policy.CodeGroup ResolveMatchingCodeGroups(System.Security.Policy.Evidence evidence) => throw null; - } - - // Generated from `System.Security.Policy.GacInstalled` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class GacInstalled : System.Security.Policy.EvidenceBase, System.Security.Policy.IIdentityPermissionFactory - { - public object Copy() => throw null; - public System.Security.IPermission CreateIdentityPermission(System.Security.Policy.Evidence evidence) => throw null; - public override bool Equals(object o) => throw null; - public GacInstalled() => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - } - - // Generated from `System.Security.Policy.GacMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class GacMembershipCondition : System.Security.Policy.IMembershipCondition, System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - public bool Check(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.IMembershipCondition Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public GacMembershipCondition() => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.Policy.Hash` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Hash : System.Security.Policy.EvidenceBase, System.Runtime.Serialization.ISerializable - { - public static System.Security.Policy.Hash CreateMD5(System.Byte[] md5) => throw null; - public static System.Security.Policy.Hash CreateSHA1(System.Byte[] sha1) => throw null; - public static System.Security.Policy.Hash CreateSHA256(System.Byte[] sha256) => throw null; - public System.Byte[] GenerateHash(System.Security.Cryptography.HashAlgorithm hashAlg) => throw null; - public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public Hash(System.Reflection.Assembly assembly) => throw null; - public System.Byte[] MD5 { get => throw null; } - public System.Byte[] SHA1 { get => throw null; } - public System.Byte[] SHA256 { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `System.Security.Policy.HashMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class HashMembershipCondition : System.Security.Policy.IMembershipCondition, System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable, System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback - { - public bool Check(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.IMembershipCondition Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => 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.Security.Cryptography.HashAlgorithm HashAlgorithm { get => throw null; set => throw null; } - public HashMembershipCondition(System.Security.Cryptography.HashAlgorithm hashAlg, System.Byte[] value) => throw null; - public System.Byte[] HashValue { get => throw null; set => throw null; } - void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null; - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.Policy.IIdentityPermissionFactory` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public interface IIdentityPermissionFactory - { - System.Security.IPermission CreateIdentityPermission(System.Security.Policy.Evidence evidence); - } - - // Generated from `System.Security.Policy.IMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public interface IMembershipCondition : System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - bool Check(System.Security.Policy.Evidence evidence); - System.Security.Policy.IMembershipCondition Copy(); - bool Equals(object obj); - string ToString(); - } - - // Generated from `System.Security.Policy.NetCodeGroup` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class NetCodeGroup : System.Security.Policy.CodeGroup - { - public static string AbsentOriginScheme; - public void AddConnectAccess(string originScheme, System.Security.Policy.CodeConnectAccess connectAccess) => throw null; - public static string AnyOtherOriginScheme; - public override string AttributeString { get => throw null; } - public override System.Security.Policy.CodeGroup Copy() => throw null; - protected override void CreateXml(System.Security.SecurityElement element, System.Security.Policy.PolicyLevel level) => throw null; - public override bool Equals(object o) => throw null; - public System.Collections.DictionaryEntry[] GetConnectAccessRules() => throw null; - public override int GetHashCode() => throw null; - public override string MergeLogic { get => throw null; } - public NetCodeGroup(System.Security.Policy.IMembershipCondition membershipCondition) : base(default(System.Security.Policy.IMembershipCondition), default(System.Security.Policy.PolicyStatement)) => throw null; - protected override void ParseXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public override string PermissionSetName { get => throw null; } - public void ResetConnectAccess() => throw null; - public override System.Security.Policy.PolicyStatement Resolve(System.Security.Policy.Evidence evidence) => throw null; - public override System.Security.Policy.CodeGroup ResolveMatchingCodeGroups(System.Security.Policy.Evidence evidence) => throw null; - } - - // Generated from `System.Security.Policy.PermissionRequestEvidence` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PermissionRequestEvidence : System.Security.Policy.EvidenceBase - { - public System.Security.Policy.PermissionRequestEvidence Copy() => throw null; - public System.Security.PermissionSet DeniedPermissions { get => throw null; } - public System.Security.PermissionSet OptionalPermissions { get => throw null; } - public PermissionRequestEvidence(System.Security.PermissionSet request, System.Security.PermissionSet optional, System.Security.PermissionSet denied) => throw null; - public System.Security.PermissionSet RequestedPermissions { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `System.Security.Policy.PolicyException` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PolicyException : System.SystemException - { - public PolicyException(string message, System.Exception exception) => throw null; - public PolicyException(string message) => throw null; - public PolicyException() => throw null; - protected PolicyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `System.Security.Policy.PolicyLevel` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PolicyLevel - { - public void AddFullTrustAssembly(System.Security.Policy.StrongNameMembershipCondition snMC) => throw null; - public void AddFullTrustAssembly(System.Security.Policy.StrongName sn) => throw null; - public void AddNamedPermissionSet(System.Security.NamedPermissionSet permSet) => throw null; - public System.Security.NamedPermissionSet ChangeNamedPermissionSet(string name, System.Security.PermissionSet pSet) => throw null; - public static System.Security.Policy.PolicyLevel CreateAppDomainLevel() => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public System.Collections.IList FullTrustAssemblies { get => throw null; } - public System.Security.NamedPermissionSet GetNamedPermissionSet(string name) => throw null; - public string Label { get => throw null; } - public System.Collections.IList NamedPermissionSets { get => throw null; } - public void Recover() => throw null; - public void RemoveFullTrustAssembly(System.Security.Policy.StrongNameMembershipCondition snMC) => throw null; - public void RemoveFullTrustAssembly(System.Security.Policy.StrongName sn) => throw null; - public System.Security.NamedPermissionSet RemoveNamedPermissionSet(string name) => throw null; - public System.Security.NamedPermissionSet RemoveNamedPermissionSet(System.Security.NamedPermissionSet permSet) => throw null; - public void Reset() => throw null; - public System.Security.Policy.PolicyStatement Resolve(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.CodeGroup ResolveMatchingCodeGroups(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.CodeGroup RootCodeGroup { get => throw null; set => throw null; } - public string StoreLocation { get => throw null; } - public System.Security.SecurityElement ToXml() => throw null; - public System.Security.PolicyLevelType Type { get => throw null; } - } - - // Generated from `System.Security.Policy.PolicyStatement` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PolicyStatement : System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - public string AttributeString { get => throw null; } - public System.Security.Policy.PolicyStatementAttribute Attributes { get => throw null; set => throw null; } - public System.Security.Policy.PolicyStatement Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement et, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement et) => throw null; - public override int GetHashCode() => throw null; - public System.Security.PermissionSet PermissionSet { get => throw null; set => throw null; } - public PolicyStatement(System.Security.PermissionSet permSet, System.Security.Policy.PolicyStatementAttribute attributes) => throw null; - public PolicyStatement(System.Security.PermissionSet permSet) => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.Policy.PolicyStatementAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum PolicyStatementAttribute - { - All, - Exclusive, - LevelFinal, - Nothing, - } - - // Generated from `System.Security.Policy.Publisher` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Publisher : System.Security.Policy.EvidenceBase, System.Security.Policy.IIdentityPermissionFactory - { - public System.Security.Cryptography.X509Certificates.X509Certificate Certificate { get => throw null; } - public object Copy() => throw null; - public System.Security.IPermission CreateIdentityPermission(System.Security.Policy.Evidence evidence) => throw null; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public Publisher(System.Security.Cryptography.X509Certificates.X509Certificate cert) => throw null; - public override string ToString() => throw null; - } - - // Generated from `System.Security.Policy.PublisherMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PublisherMembershipCondition : System.Security.Policy.IMembershipCondition, System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - public System.Security.Cryptography.X509Certificates.X509Certificate Certificate { get => throw null; set => throw null; } - public bool Check(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.IMembershipCondition Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public override int GetHashCode() => throw null; - public PublisherMembershipCondition(System.Security.Cryptography.X509Certificates.X509Certificate certificate) => throw null; - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.Policy.Site` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Site : System.Security.Policy.EvidenceBase, System.Security.Policy.IIdentityPermissionFactory - { - public object Copy() => throw null; - public static System.Security.Policy.Site CreateFromUrl(string url) => throw null; - public System.Security.IPermission CreateIdentityPermission(System.Security.Policy.Evidence evidence) => throw null; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public string Name { get => throw null; } - public Site(string name) => throw null; - public override string ToString() => throw null; - } - - // Generated from `System.Security.Policy.SiteMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SiteMembershipCondition : System.Security.Policy.IMembershipCondition, System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - public bool Check(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.IMembershipCondition Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public override int GetHashCode() => throw null; - public string Site { get => throw null; set => throw null; } - public SiteMembershipCondition(string site) => throw null; - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - } - - // Generated from `System.Security.Policy.StrongName` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StrongName : System.Security.Policy.EvidenceBase, System.Security.Policy.IIdentityPermissionFactory - { - public object Copy() => throw null; - public System.Security.IPermission CreateIdentityPermission(System.Security.Policy.Evidence evidence) => throw null; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public string Name { get => throw null; } - public System.Security.Permissions.StrongNamePublicKeyBlob PublicKey { get => throw null; } - public StrongName(System.Security.Permissions.StrongNamePublicKeyBlob blob, string name, System.Version version) => throw null; - public override string ToString() => throw null; - public System.Version Version { get => throw null; } - } - - // Generated from `System.Security.Policy.StrongNameMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StrongNameMembershipCondition : System.Security.Policy.IMembershipCondition, System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - public bool Check(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.IMembershipCondition Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public override int GetHashCode() => throw null; - public string Name { get => throw null; set => throw null; } - public System.Security.Permissions.StrongNamePublicKeyBlob PublicKey { get => throw null; set => throw null; } - public StrongNameMembershipCondition(System.Security.Permissions.StrongNamePublicKeyBlob blob, string name, System.Version version) => throw null; - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - public System.Version Version { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Policy.TrustManagerContext` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TrustManagerContext - { - public virtual bool IgnorePersistedDecision { get => throw null; set => throw null; } - public virtual bool KeepAlive { get => throw null; set => throw null; } - public virtual bool NoPrompt { get => throw null; set => throw null; } - public virtual bool Persist { get => throw null; set => throw null; } - public virtual System.ApplicationIdentity PreviousApplicationIdentity { get => throw null; set => throw null; } - public TrustManagerContext(System.Security.Policy.TrustManagerUIContext uiContext) => throw null; - public TrustManagerContext() => throw null; - public virtual System.Security.Policy.TrustManagerUIContext UIContext { get => throw null; set => throw null; } - } - - // Generated from `System.Security.Policy.TrustManagerUIContext` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum TrustManagerUIContext - { - Install, - Run, - Upgrade, - } - - // Generated from `System.Security.Policy.UnionCodeGroup` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class UnionCodeGroup : System.Security.Policy.CodeGroup - { - public override System.Security.Policy.CodeGroup Copy() => throw null; - public override string MergeLogic { get => throw null; } - public override System.Security.Policy.PolicyStatement Resolve(System.Security.Policy.Evidence evidence) => throw null; - public override System.Security.Policy.CodeGroup ResolveMatchingCodeGroups(System.Security.Policy.Evidence evidence) => throw null; - public UnionCodeGroup(System.Security.Policy.IMembershipCondition membershipCondition, System.Security.Policy.PolicyStatement policy) : base(default(System.Security.Policy.IMembershipCondition), default(System.Security.Policy.PolicyStatement)) => throw null; - } - - // Generated from `System.Security.Policy.Url` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Url : System.Security.Policy.EvidenceBase, System.Security.Policy.IIdentityPermissionFactory - { - public object Copy() => throw null; - public System.Security.IPermission CreateIdentityPermission(System.Security.Policy.Evidence evidence) => throw null; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public Url(string name) => throw null; - public string Value { get => throw null; } - } - - // Generated from `System.Security.Policy.UrlMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class UrlMembershipCondition : System.Security.Policy.IMembershipCondition, System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - public bool Check(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.IMembershipCondition Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - public string Url { get => throw null; set => throw null; } - public UrlMembershipCondition(string url) => throw null; - } - - // Generated from `System.Security.Policy.Zone` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Zone : System.Security.Policy.EvidenceBase, System.Security.Policy.IIdentityPermissionFactory - { - public object Copy() => throw null; - public static System.Security.Policy.Zone CreateFromUrl(string url) => throw null; - public System.Security.IPermission CreateIdentityPermission(System.Security.Policy.Evidence evidence) => throw null; - public override bool Equals(object o) => throw null; - public override int GetHashCode() => throw null; - public System.Security.SecurityZone SecurityZone { get => throw null; } - public override string ToString() => throw null; - public Zone(System.Security.SecurityZone zone) => throw null; - } - - // Generated from `System.Security.Policy.ZoneMembershipCondition` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ZoneMembershipCondition : System.Security.Policy.IMembershipCondition, System.Security.ISecurityPolicyEncodable, System.Security.ISecurityEncodable - { - public bool Check(System.Security.Policy.Evidence evidence) => throw null; - public System.Security.Policy.IMembershipCondition Copy() => throw null; - public override bool Equals(object o) => throw null; - public void FromXml(System.Security.SecurityElement e, System.Security.Policy.PolicyLevel level) => throw null; - public void FromXml(System.Security.SecurityElement e) => throw null; - public override int GetHashCode() => throw null; - public System.Security.SecurityZone SecurityZone { get => throw null; set => throw null; } - public override string ToString() => throw null; - public System.Security.SecurityElement ToXml(System.Security.Policy.PolicyLevel level) => throw null; - public System.Security.SecurityElement ToXml() => throw null; - public ZoneMembershipCondition(System.Security.SecurityZone zone) => throw null; - } - - } - } - namespace ServiceProcess - { - // Generated from `System.ServiceProcess.ServiceControllerPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ServiceControllerPermission : System.Security.Permissions.ResourcePermissionBase - { - public System.ServiceProcess.ServiceControllerPermissionEntryCollection PermissionEntries { get => throw null; } - public ServiceControllerPermission(System.ServiceProcess.ServiceControllerPermissionEntry[] permissionAccessEntries) => throw null; - public ServiceControllerPermission(System.ServiceProcess.ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName) => throw null; - public ServiceControllerPermission(System.Security.Permissions.PermissionState state) => throw null; - public ServiceControllerPermission() => throw null; - } - - // Generated from `System.ServiceProcess.ServiceControllerPermissionAccess` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum ServiceControllerPermissionAccess - { - Browse, - Control, - None, - } - - // Generated from `System.ServiceProcess.ServiceControllerPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ServiceControllerPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public string MachineName { get => throw null; set => throw null; } - public System.ServiceProcess.ServiceControllerPermissionAccess PermissionAccess { get => throw null; set => throw null; } - public ServiceControllerPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public string ServiceName { get => throw null; set => throw null; } - } - - // Generated from `System.ServiceProcess.ServiceControllerPermissionEntry` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ServiceControllerPermissionEntry - { - public string MachineName { get => throw null; } - public System.ServiceProcess.ServiceControllerPermissionAccess PermissionAccess { get => throw null; } - public ServiceControllerPermissionEntry(System.ServiceProcess.ServiceControllerPermissionAccess permissionAccess, string machineName, string serviceName) => throw null; - public ServiceControllerPermissionEntry() => throw null; - public string ServiceName { get => throw null; } - } - - // Generated from `System.ServiceProcess.ServiceControllerPermissionEntryCollection` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ServiceControllerPermissionEntryCollection : System.Collections.CollectionBase - { - public int Add(System.ServiceProcess.ServiceControllerPermissionEntry value) => throw null; - public void AddRange(System.ServiceProcess.ServiceControllerPermissionEntry[] value) => throw null; - public void AddRange(System.ServiceProcess.ServiceControllerPermissionEntryCollection value) => throw null; - public bool Contains(System.ServiceProcess.ServiceControllerPermissionEntry value) => throw null; - public void CopyTo(System.ServiceProcess.ServiceControllerPermissionEntry[] array, int index) => throw null; - public int IndexOf(System.ServiceProcess.ServiceControllerPermissionEntry value) => throw null; - public void Insert(int index, System.ServiceProcess.ServiceControllerPermissionEntry value) => throw null; - public System.ServiceProcess.ServiceControllerPermissionEntry this[int index] { get => throw null; set => 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.ServiceProcess.ServiceControllerPermissionEntry value) => throw null; - } - - } - namespace Transactions - { - // Generated from `System.Transactions.DistributedTransactionPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DistributedTransactionPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public override System.Security.IPermission Copy() => throw null; - public DistributedTransactionPermission(System.Security.Permissions.PermissionState state) => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Transactions.DistributedTransactionPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class DistributedTransactionPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public override System.Security.IPermission CreatePermission() => throw null; - public DistributedTransactionPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public bool Unrestricted { get => throw null; set => throw null; } - } - - } - namespace Web - { - // Generated from `System.Web.AspNetHostingPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class AspNetHostingPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public AspNetHostingPermission(System.Web.AspNetHostingPermissionLevel level) => throw null; - public AspNetHostingPermission(System.Security.Permissions.PermissionState state) => throw null; - public override System.Security.IPermission Copy() => throw null; - public override void FromXml(System.Security.SecurityElement securityElement) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public System.Web.AspNetHostingPermissionLevel Level { get => throw null; set => throw null; } - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission target) => throw null; - } - - // Generated from `System.Web.AspNetHostingPermissionAttribute` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class AspNetHostingPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute - { - public AspNetHostingPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; - public override System.Security.IPermission CreatePermission() => throw null; - public System.Web.AspNetHostingPermissionLevel Level { get => throw null; set => throw null; } - } - - // Generated from `System.Web.AspNetHostingPermissionLevel` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum AspNetHostingPermissionLevel - { - High, - Low, - Medium, - Minimal, - None, - Unrestricted, - } - - } - namespace Xaml - { - namespace Permissions - { - // Generated from `System.Xaml.Permissions.XamlLoadPermission` in `System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class XamlLoadPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission - { - public System.Collections.Generic.IList AllowedAccess { get => throw null; } - public override System.Security.IPermission Copy() => throw null; - public override bool Equals(object obj) => throw null; - public override void FromXml(System.Security.SecurityElement elem) => throw null; - public override int GetHashCode() => throw null; - public bool Includes(System.Xaml.Permissions.XamlAccessLevel requestedAccess) => throw null; - public override System.Security.IPermission Intersect(System.Security.IPermission target) => throw null; - public override bool IsSubsetOf(System.Security.IPermission target) => throw null; - public bool IsUnrestricted() => throw null; - public override System.Security.SecurityElement ToXml() => throw null; - public override System.Security.IPermission Union(System.Security.IPermission other) => throw null; - public XamlLoadPermission(System.Xaml.Permissions.XamlAccessLevel allowedAccess) => throw null; - public XamlLoadPermission(System.Security.Permissions.PermissionState state) => throw null; - public XamlLoadPermission(System.Collections.Generic.IEnumerable allowedAccess) => throw null; - } - - } - } -} diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Windows.Extensions.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Windows.Extensions.cs deleted file mode 100644 index 20124150d05..00000000000 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Windows.Extensions.cs +++ /dev/null @@ -1,108 +0,0 @@ -// This file contains auto-generated code. - -namespace System -{ - namespace Media - { - // Generated from `System.Media.SoundPlayer` in `System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SoundPlayer : System.ComponentModel.Component, System.Runtime.Serialization.ISerializable - { - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public bool IsLoadCompleted { get => throw null; } - public void Load() => throw null; - public void LoadAsync() => throw null; - public event System.ComponentModel.AsyncCompletedEventHandler LoadCompleted; - public int LoadTimeout { get => throw null; set => throw null; } - protected virtual void OnLoadCompleted(System.ComponentModel.AsyncCompletedEventArgs e) => throw null; - protected virtual void OnSoundLocationChanged(System.EventArgs e) => throw null; - protected virtual void OnStreamChanged(System.EventArgs e) => throw null; - public void Play() => throw null; - public void PlayLooping() => throw null; - public void PlaySync() => throw null; - public string SoundLocation { get => throw null; set => throw null; } - public event System.EventHandler SoundLocationChanged; - public SoundPlayer(string soundLocation) => throw null; - public SoundPlayer(System.IO.Stream stream) => throw null; - public SoundPlayer() => throw null; - protected SoundPlayer(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext context) => throw null; - public void Stop() => throw null; - public System.IO.Stream Stream { get => throw null; set => throw null; } - public event System.EventHandler StreamChanged; - public object Tag { get => throw null; set => throw null; } - } - - // Generated from `System.Media.SystemSound` in `System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SystemSound - { - public void Play() => throw null; - } - - // Generated from `System.Media.SystemSounds` in `System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class SystemSounds - { - public static System.Media.SystemSound Asterisk { get => throw null; } - public static System.Media.SystemSound Beep { get => throw null; } - public static System.Media.SystemSound Exclamation { get => throw null; } - public static System.Media.SystemSound Hand { get => throw null; } - public static System.Media.SystemSound Question { get => throw null; } - } - - } - namespace Runtime - { - namespace Versioning - { - /* Duplicate type 'OSPlatformAttribute' is not stubbed in this assembly 'System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'SupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'TargetPlatformAttribute' is not stubbed in this assembly 'System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'UnsupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - } - } - namespace Security - { - namespace Cryptography - { - namespace X509Certificates - { - // Generated from `System.Security.Cryptography.X509Certificates.X509Certificate2UI` in `System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class X509Certificate2UI - { - public static void DisplayCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.IntPtr hwndParent) => throw null; - public static void DisplayCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; - public static System.Security.Cryptography.X509Certificates.X509Certificate2Collection SelectFromCollection(System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates, string title, string message, System.Security.Cryptography.X509Certificates.X509SelectionFlag selectionFlag, System.IntPtr hwndParent) => throw null; - public static System.Security.Cryptography.X509Certificates.X509Certificate2Collection SelectFromCollection(System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates, string title, string message, System.Security.Cryptography.X509Certificates.X509SelectionFlag selectionFlag) => throw null; - public X509Certificate2UI() => throw null; - } - - // Generated from `System.Security.Cryptography.X509Certificates.X509SelectionFlag` in `System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum X509SelectionFlag - { - MultiSelection, - SingleSelection, - } - - } - } - } - namespace Xaml - { - namespace Permissions - { - // Generated from `System.Xaml.Permissions.XamlAccessLevel` in `System.Windows.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class XamlAccessLevel - { - public static System.Xaml.Permissions.XamlAccessLevel AssemblyAccessTo(System.Reflection.AssemblyName assemblyName) => throw null; - public static System.Xaml.Permissions.XamlAccessLevel AssemblyAccessTo(System.Reflection.Assembly assembly) => throw null; - public System.Reflection.AssemblyName AssemblyAccessToAssemblyName { get => throw null; } - public static System.Xaml.Permissions.XamlAccessLevel PrivateAccessTo(string assemblyQualifiedTypeName) => throw null; - public static System.Xaml.Permissions.XamlAccessLevel PrivateAccessTo(System.Type type) => throw null; - public string PrivateAccessToTypeName { get => throw null; } - } - - } - } -} 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 d2b48b6ec72..7ac312cc232 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 @@ -6,7 +6,7 @@ namespace Microsoft { namespace RuntimeBinder { - // Generated from `Microsoft.CSharp.RuntimeBinder.Binder` in `Microsoft.CSharp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.CSharp.RuntimeBinder.Binder` in `Microsoft.CSharp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Binder { public static System.Runtime.CompilerServices.CallSiteBinder BinaryOperation(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, System.Linq.Expressions.ExpressionType operation, System.Type context, System.Collections.Generic.IEnumerable argumentInfo) => throw null; @@ -22,13 +22,13 @@ namespace Microsoft 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; } - // Generated from `Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo` in `Microsoft.CSharp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo` in `Microsoft.CSharp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CSharpArgumentInfo { public static Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo Create(Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags flags, string name) => throw null; } - // Generated from `Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags` in `Microsoft.CSharp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags` in `Microsoft.CSharp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CSharpArgumentInfoFlags { @@ -41,7 +41,7 @@ namespace Microsoft UseCompileTimeType, } - // Generated from `Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags` in `Microsoft.CSharp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags` in `Microsoft.CSharp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CSharpBinderFlags { @@ -57,7 +57,7 @@ namespace Microsoft ValueFromCompoundAssignment, } - // Generated from `Microsoft.CSharp.RuntimeBinder.RuntimeBinderException` in `Microsoft.CSharp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.CSharp.RuntimeBinder.RuntimeBinderException` in `Microsoft.CSharp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RuntimeBinderException : System.Exception { public RuntimeBinderException() => throw null; @@ -66,7 +66,7 @@ namespace Microsoft public RuntimeBinderException(string message, System.Exception innerException) => throw null; } - // Generated from `Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException` in `Microsoft.CSharp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException` in `Microsoft.CSharp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RuntimeBinderInternalCompilerException : System.Exception { public RuntimeBinderInternalCompilerException() => 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 45d3179b443..a62b7a43f0b 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 @@ -4,7 +4,7 @@ namespace Microsoft { namespace VisualBasic { - // Generated from `Microsoft.VisualBasic.AppWinStyle` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.AppWinStyle` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AppWinStyle { Hide, @@ -15,7 +15,7 @@ namespace Microsoft NormalNoFocus, } - // Generated from `Microsoft.VisualBasic.CallType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CallType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CallType { Get, @@ -24,7 +24,7 @@ namespace Microsoft Set, } - // Generated from `Microsoft.VisualBasic.Collection` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.Collection` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Collection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { int System.Collections.IList.Add(object value) => throw null; @@ -55,7 +55,7 @@ namespace Microsoft object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `Microsoft.VisualBasic.ComClassAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.ComClassAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComClassAttribute : System.Attribute { public string ClassID { get => throw null; } @@ -68,14 +68,14 @@ namespace Microsoft public bool InterfaceShadows { get => throw null; set => throw null; } } - // Generated from `Microsoft.VisualBasic.CompareMethod` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompareMethod` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CompareMethod { Binary, Text, } - // Generated from `Microsoft.VisualBasic.Constants` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.Constants` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Constants { public const Microsoft.VisualBasic.MsgBoxResult vbAbort = default; @@ -182,7 +182,7 @@ namespace Microsoft public const Microsoft.VisualBasic.MsgBoxStyle vbYesNoCancel = default; } - // Generated from `Microsoft.VisualBasic.ControlChars` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.ControlChars` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ControlChars { public const System.Char Back = default; @@ -198,7 +198,7 @@ namespace Microsoft public const System.Char VerticalTab = default; } - // Generated from `Microsoft.VisualBasic.Conversion` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.Conversion` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Conversion { public static object CTypeDynamic(object Expression, System.Type TargetType) => throw null; @@ -243,7 +243,7 @@ namespace Microsoft public static double Val(string InputStr) => throw null; } - // Generated from `Microsoft.VisualBasic.DateAndTime` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.DateAndTime` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DateAndTime { public static System.DateTime DateAdd(Microsoft.VisualBasic.DateInterval Interval, double Number, System.DateTime DateValue) => throw null; @@ -273,7 +273,7 @@ namespace Microsoft public static int Year(System.DateTime DateValue) => throw null; } - // Generated from `Microsoft.VisualBasic.DateFormat` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.DateFormat` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DateFormat { GeneralDate, @@ -283,7 +283,7 @@ namespace Microsoft ShortTime, } - // Generated from `Microsoft.VisualBasic.DateInterval` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.DateInterval` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DateInterval { Day, @@ -298,14 +298,14 @@ namespace Microsoft Year, } - // Generated from `Microsoft.VisualBasic.DueDate` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.DueDate` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DueDate { BegOfPeriod, EndOfPeriod, } - // Generated from `Microsoft.VisualBasic.ErrObject` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.ErrObject` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ErrObject { public void Clear() => throw null; @@ -320,7 +320,7 @@ namespace Microsoft public string Source { get => throw null; set => throw null; } } - // Generated from `Microsoft.VisualBasic.FileAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum FileAttribute { @@ -333,7 +333,7 @@ namespace Microsoft Volume, } - // Generated from `Microsoft.VisualBasic.FileSystem` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileSystem` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileSystem { public static void ChDir(string Path) => throw null; @@ -421,7 +421,7 @@ namespace Microsoft public static void WriteLine(int FileNumber, params object[] Output) => throw null; } - // Generated from `Microsoft.VisualBasic.Financial` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.Financial` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Financial { public static double DDB(double Cost, double Salvage, double Life, double Period, double Factor = default(double)) => throw null; @@ -439,7 +439,7 @@ namespace Microsoft public static double SYD(double Cost, double Salvage, double Life, double Period) => throw null; } - // Generated from `Microsoft.VisualBasic.FirstDayOfWeek` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FirstDayOfWeek` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FirstDayOfWeek { Friday, @@ -452,7 +452,7 @@ namespace Microsoft Wednesday, } - // Generated from `Microsoft.VisualBasic.FirstWeekOfYear` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FirstWeekOfYear` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FirstWeekOfYear { FirstFourDays, @@ -461,13 +461,13 @@ namespace Microsoft System, } - // Generated from `Microsoft.VisualBasic.HideModuleNameAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.HideModuleNameAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HideModuleNameAttribute : System.Attribute { public HideModuleNameAttribute() => throw null; } - // Generated from `Microsoft.VisualBasic.Information` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.Information` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Information { public static int Erl() => throw null; @@ -489,7 +489,7 @@ namespace Microsoft public static string VbTypeName(string UrtName) => throw null; } - // Generated from `Microsoft.VisualBasic.Interaction` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.Interaction` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Interaction { public static void AppActivate(int ProcessId) => throw null; @@ -514,7 +514,7 @@ namespace Microsoft public static object Switch(params object[] VarExpr) => throw null; } - // Generated from `Microsoft.VisualBasic.MsgBoxResult` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.MsgBoxResult` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MsgBoxResult { Abort, @@ -526,7 +526,7 @@ namespace Microsoft Yes, } - // Generated from `Microsoft.VisualBasic.MsgBoxStyle` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.MsgBoxStyle` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MsgBoxStyle { @@ -551,7 +551,7 @@ namespace Microsoft YesNoCancel, } - // Generated from `Microsoft.VisualBasic.MyGroupCollectionAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.MyGroupCollectionAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MyGroupCollectionAttribute : System.Attribute { public string CreateMethod { get => throw null; } @@ -561,7 +561,7 @@ namespace Microsoft public string MyGroupName { get => throw null; } } - // Generated from `Microsoft.VisualBasic.OpenAccess` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.OpenAccess` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum OpenAccess { Default, @@ -570,7 +570,7 @@ namespace Microsoft Write, } - // Generated from `Microsoft.VisualBasic.OpenMode` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.OpenMode` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum OpenMode { Append, @@ -580,7 +580,7 @@ namespace Microsoft Random, } - // Generated from `Microsoft.VisualBasic.OpenShare` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.OpenShare` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum OpenShare { Default, @@ -590,14 +590,14 @@ namespace Microsoft Shared, } - // Generated from `Microsoft.VisualBasic.SpcInfo` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.SpcInfo` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SpcInfo { public System.Int16 Count; // Stub generator skipped constructor } - // Generated from `Microsoft.VisualBasic.Strings` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.Strings` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Strings { public static int Asc(System.Char String) => throw null; @@ -614,7 +614,7 @@ namespace Microsoft 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 StartPos, string String1, string String2, Microsoft.VisualBasic.CompareMethod Compare = default(Microsoft.VisualBasic.CompareMethod)) => 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; @@ -659,14 +659,14 @@ namespace Microsoft public static string UCase(string Value) => throw null; } - // Generated from `Microsoft.VisualBasic.TabInfo` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.TabInfo` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TabInfo { public System.Int16 Column; // Stub generator skipped constructor } - // Generated from `Microsoft.VisualBasic.TriState` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.TriState` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TriState { False, @@ -674,7 +674,7 @@ namespace Microsoft UseDefault, } - // Generated from `Microsoft.VisualBasic.VBFixedArrayAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.VBFixedArrayAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class VBFixedArrayAttribute : System.Attribute { public int[] Bounds { get => throw null; } @@ -683,14 +683,14 @@ namespace Microsoft public VBFixedArrayAttribute(int UpperBound1, int UpperBound2) => throw null; } - // Generated from `Microsoft.VisualBasic.VBFixedStringAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.VBFixedStringAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class VBFixedStringAttribute : System.Attribute { public int Length { get => throw null; } public VBFixedStringAttribute(int Length) => throw null; } - // Generated from `Microsoft.VisualBasic.VBMath` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.VBMath` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class VBMath { public static void Randomize() => throw null; @@ -699,7 +699,7 @@ namespace Microsoft public static float Rnd(float Number) => throw null; } - // Generated from `Microsoft.VisualBasic.VariantType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.VariantType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum VariantType { Array, @@ -724,7 +724,7 @@ namespace Microsoft Variant, } - // Generated from `Microsoft.VisualBasic.VbStrConv` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.VbStrConv` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum VbStrConv { @@ -743,35 +743,35 @@ namespace Microsoft namespace CompilerServices { - // Generated from `Microsoft.VisualBasic.CompilerServices.BooleanType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.BooleanType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BooleanType { public static bool FromObject(object Value) => throw null; public static bool FromString(string Value) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.ByteType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.ByteType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ByteType { public static System.Byte FromObject(object Value) => throw null; public static System.Byte FromString(string Value) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.CharArrayType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.CharArrayType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CharArrayType { public static System.Char[] FromObject(object Value) => throw null; public static System.Char[] FromString(string Value) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.CharType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.CharType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CharType { public static System.Char FromObject(object Value) => throw null; public static System.Char FromString(string Value) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.Conversions` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.Conversions` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Conversions { public static object ChangeType(object Expression, System.Type TargetType) => throw null; @@ -829,7 +829,7 @@ namespace Microsoft public static System.UInt16 ToUShort(string Value) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.DateType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.DateType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DateType { public static System.DateTime FromObject(object Value) => throw null; @@ -837,7 +837,7 @@ namespace Microsoft public static System.DateTime FromString(string Value, System.Globalization.CultureInfo culture) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.DecimalType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.DecimalType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DecimalType { public static System.Decimal FromBoolean(bool Value) => throw null; @@ -848,13 +848,13 @@ namespace Microsoft public static System.Decimal Parse(string Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.DesignerGeneratedAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.DesignerGeneratedAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerGeneratedAttribute : System.Attribute { public DesignerGeneratedAttribute() => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.DoubleType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.DoubleType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DoubleType { public static double FromObject(object Value) => throw null; @@ -865,20 +865,20 @@ namespace Microsoft public static double Parse(string Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.IncompleteInitialization` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.IncompleteInitialization` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IncompleteInitialization : System.Exception { public IncompleteInitialization() => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.IntegerType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.IntegerType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IntegerType { public static int FromObject(object Value) => throw null; public static int FromString(string Value) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.LateBinding` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.LateBinding` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LateBinding { public static void LateCall(object o, System.Type objType, string name, object[] args, string[] paramnames, bool[] CopyBack) => throw null; @@ -890,21 +890,21 @@ namespace Microsoft public static void LateSetComplex(object o, System.Type objType, string name, object[] args, string[] paramnames, bool OptimisticSet, bool RValueBase) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.LikeOperator` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.LikeOperator` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; } - // Generated from `Microsoft.VisualBasic.CompilerServices.LongType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.LongType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LongType { public static System.Int64 FromObject(object Value) => throw null; public static System.Int64 FromString(string Value) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.NewLateBinding` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.NewLateBinding` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NewLateBinding { public static object FallbackCall(object Instance, string MemberName, object[] Arguments, string[] ArgumentNames, bool IgnoreReturn) => throw null; @@ -927,10 +927,10 @@ namespace Microsoft public static void LateSetComplex(object Instance, System.Type Type, string MemberName, object[] Arguments, string[] ArgumentNames, System.Type[] TypeArguments, bool OptimisticSet, bool RValueBase) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.ObjectFlowControl` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.ObjectFlowControl` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObjectFlowControl { - // Generated from `Microsoft.VisualBasic.CompilerServices.ObjectFlowControl+ForLoopControl` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.ObjectFlowControl+ForLoopControl` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ForLoopControl { public static bool ForLoopInitObj(object Counter, object Start, object Limit, object StepValue, ref object LoopForResult, ref object CounterResult) => throw null; @@ -944,7 +944,7 @@ namespace Microsoft public static void CheckForSyncLockOnValueType(object Expression) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.ObjectType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.ObjectType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObjectType { public static object AddObj(object o1, object o2) => throw null; @@ -970,7 +970,7 @@ namespace Microsoft public static object XorObj(object obj1, object obj2) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.Operators` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.Operators` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Operators { public static object AddObject(object Left, object Right) => throw null; @@ -1005,19 +1005,19 @@ namespace Microsoft public static object XorObject(object Left, object Right) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.OptionCompareAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.OptionCompareAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OptionCompareAttribute : System.Attribute { public OptionCompareAttribute() => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.OptionTextAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.OptionTextAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OptionTextAttribute : System.Attribute { public OptionTextAttribute() => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.ProjectData` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.ProjectData` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProjectData { public static void ClearProjectError() => throw null; @@ -1027,14 +1027,14 @@ namespace Microsoft public static void SetProjectError(System.Exception ex, int lErl) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.ShortType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.ShortType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ShortType { public static System.Int16 FromObject(object Value) => throw null; public static System.Int16 FromString(string Value) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.SingleType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.SingleType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SingleType { public static float FromObject(object Value) => throw null; @@ -1043,20 +1043,20 @@ namespace Microsoft public static float FromString(string Value, System.Globalization.NumberFormatInfo NumberFormat) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StandardModuleAttribute : System.Attribute { public StandardModuleAttribute() => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.StaticLocalInitFlag` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.StaticLocalInitFlag` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StaticLocalInitFlag { public System.Int16 State; public StaticLocalInitFlag() => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.StringType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.StringType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringType { public static string FromBoolean(bool Value) => throw null; @@ -1080,14 +1080,14 @@ namespace Microsoft public static bool StrLikeText(string Source, string Pattern) => throw null; } - // Generated from `Microsoft.VisualBasic.CompilerServices.Utils` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.Utils` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; } - // Generated from `Microsoft.VisualBasic.CompilerServices.Versioned` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.CompilerServices.Versioned` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Versioned { public static object CallByName(object Instance, string MethodName, Microsoft.VisualBasic.CallType UseCallType, params object[] Arguments) => throw null; @@ -1100,21 +1100,21 @@ namespace Microsoft } namespace FileIO { - // Generated from `Microsoft.VisualBasic.FileIO.DeleteDirectoryOption` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.DeleteDirectoryOption` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DeleteDirectoryOption { DeleteAllContents, ThrowIfDirectoryNonEmpty, } - // Generated from `Microsoft.VisualBasic.FileIO.FieldType` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.FieldType` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FieldType { Delimited, FixedWidth, } - // Generated from `Microsoft.VisualBasic.FileIO.FileSystem` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.FileSystem` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileSystem { public static string CombinePath(string baseDirectory, string relativePath) => throw null; @@ -1175,7 +1175,7 @@ namespace Microsoft public static void WriteAllText(string file, string text, bool append, System.Text.Encoding encoding) => throw null; } - // Generated from `Microsoft.VisualBasic.FileIO.MalformedLineException` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.MalformedLineException` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MalformedLineException : System.Exception { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -1189,21 +1189,21 @@ namespace Microsoft public override string ToString() => throw null; } - // Generated from `Microsoft.VisualBasic.FileIO.RecycleOption` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.RecycleOption` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RecycleOption { DeletePermanently, SendToRecycleBin, } - // Generated from `Microsoft.VisualBasic.FileIO.SearchOption` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.SearchOption` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SearchOption { SearchAllSubDirectories, SearchTopLevelOnly, } - // Generated from `Microsoft.VisualBasic.FileIO.SpecialDirectories` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.SpecialDirectories` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SpecialDirectories { public static string AllUsersApplicationData { get => throw null; } @@ -1218,7 +1218,7 @@ namespace Microsoft public static string Temp { get => throw null; } } - // Generated from `Microsoft.VisualBasic.FileIO.TextFieldParser` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.TextFieldParser` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TextFieldParser : System.IDisposable { public void Close() => throw null; @@ -1251,14 +1251,14 @@ namespace Microsoft // ERR: Stub generator didn't handle member: ~TextFieldParser } - // Generated from `Microsoft.VisualBasic.FileIO.UICancelOption` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.UICancelOption` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UICancelOption { DoNothing, ThrowException, } - // Generated from `Microsoft.VisualBasic.FileIO.UIOption` in `Microsoft.VisualBasic.Core, Version=10.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.VisualBasic.FileIO.UIOption` in `Microsoft.VisualBasic.Core, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UIOption { AllDialogs, 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 95078d0aa0d..df4170b8153 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 @@ -4,7 +4,7 @@ namespace System { namespace ComponentModel { - // Generated from `System.ComponentModel.Win32Exception` in `Microsoft.Win32.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Win32Exception` in `Microsoft.Win32.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Win32Exception : System.Runtime.InteropServices.ExternalException, System.Runtime.Serialization.ISerializable { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Win32.Registry.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs similarity index 80% rename from csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Win32.Registry.cs rename to csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs index c3b204d7377..2786d3970dc 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.Win32.Registry.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.Win32.Registry.cs @@ -4,7 +4,7 @@ namespace Microsoft { namespace Win32 { - // Generated from `Microsoft.Win32.Registry` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.Registry` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Registry { public static Microsoft.Win32.RegistryKey ClassesRoot; @@ -13,12 +13,12 @@ namespace Microsoft 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 void SetValue(string keyName, string valueName, object value, Microsoft.Win32.RegistryValueKind valueKind) => throw null; 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; } - // Generated from `Microsoft.Win32.RegistryHive` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.RegistryHive` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RegistryHive { ClassesRoot, @@ -29,55 +29,55 @@ namespace Microsoft Users, } - // Generated from `Microsoft.Win32.RegistryKey` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.RegistryKey` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RegistryKey : System.MarshalByRefObject, System.IDisposable { public void Close() => throw null; - public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, bool writable, Microsoft.Win32.RegistryOptions options) => throw null; - public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, bool writable) => throw null; - public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, System.Security.AccessControl.RegistrySecurity registrySecurity) => throw null; - public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions registryOptions, System.Security.AccessControl.RegistrySecurity registrySecurity) => throw null; - public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions registryOptions) => throw null; - public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck) => throw null; public Microsoft.Win32.RegistryKey CreateSubKey(string subkey) => throw null; - public void DeleteSubKey(string subkey, bool throwOnMissingSubKey) => throw null; + public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck) => throw null; + public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions registryOptions) => throw null; + public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions registryOptions, System.Security.AccessControl.RegistrySecurity registrySecurity) => throw null; + public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, System.Security.AccessControl.RegistrySecurity registrySecurity) => throw null; + public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, bool writable) => throw null; + public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, bool writable, Microsoft.Win32.RegistryOptions options) => throw null; public void DeleteSubKey(string subkey) => throw null; - public void DeleteSubKeyTree(string subkey, bool throwOnMissingSubKey) => throw null; + public void DeleteSubKey(string subkey, bool throwOnMissingSubKey) => throw null; public void DeleteSubKeyTree(string subkey) => throw null; - public void DeleteValue(string name, bool throwOnMissingValue) => throw null; + public void DeleteSubKeyTree(string subkey, bool throwOnMissingSubKey) => throw null; public void DeleteValue(string name) => throw null; + public void DeleteValue(string name, bool throwOnMissingValue) => throw null; public void Dispose() => throw null; public void Flush() => throw null; - public static Microsoft.Win32.RegistryKey FromHandle(Microsoft.Win32.SafeHandles.SafeRegistryHandle handle, Microsoft.Win32.RegistryView view) => throw null; public static Microsoft.Win32.RegistryKey FromHandle(Microsoft.Win32.SafeHandles.SafeRegistryHandle handle) => throw null; - public System.Security.AccessControl.RegistrySecurity GetAccessControl(System.Security.AccessControl.AccessControlSections includeSections) => throw null; + public static Microsoft.Win32.RegistryKey FromHandle(Microsoft.Win32.SafeHandles.SafeRegistryHandle handle, Microsoft.Win32.RegistryView view) => throw null; public System.Security.AccessControl.RegistrySecurity GetAccessControl() => throw null; + public System.Security.AccessControl.RegistrySecurity GetAccessControl(System.Security.AccessControl.AccessControlSections includeSections) => throw null; public string[] GetSubKeyNames() => throw null; - public object GetValue(string name, object defaultValue, Microsoft.Win32.RegistryValueOptions options) => throw null; - public object GetValue(string name, object defaultValue) => throw null; public object GetValue(string name) => throw null; + public object GetValue(string name, object defaultValue) => throw null; + public object GetValue(string name, object defaultValue, Microsoft.Win32.RegistryValueOptions options) => throw null; public Microsoft.Win32.RegistryValueKind GetValueKind(string name) => throw null; public string[] GetValueNames() => throw null; public Microsoft.Win32.SafeHandles.SafeRegistryHandle Handle { get => throw null; } public string Name { get => throw null; } public static Microsoft.Win32.RegistryKey OpenBaseKey(Microsoft.Win32.RegistryHive hKey, Microsoft.Win32.RegistryView view) => throw null; - public static Microsoft.Win32.RegistryKey OpenRemoteBaseKey(Microsoft.Win32.RegistryHive hKey, string machineName, Microsoft.Win32.RegistryView view) => throw null; public static Microsoft.Win32.RegistryKey OpenRemoteBaseKey(Microsoft.Win32.RegistryHive hKey, string machineName) => 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 Microsoft.Win32.RegistryKey OpenSubKey(string name, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, System.Security.AccessControl.RegistryRights rights) => throw null; - public Microsoft.Win32.RegistryKey OpenSubKey(string name, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck) => throw null; + public static Microsoft.Win32.RegistryKey OpenRemoteBaseKey(Microsoft.Win32.RegistryHive hKey, string machineName, Microsoft.Win32.RegistryView view) => throw null; 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 void SetAccessControl(System.Security.AccessControl.RegistrySecurity registrySecurity) => throw null; - public void SetValue(string name, object value, Microsoft.Win32.RegistryValueKind valueKind) => throw null; public void SetValue(string name, object value) => throw null; + public void SetValue(string name, object value, Microsoft.Win32.RegistryValueKind valueKind) => throw null; public int SubKeyCount { get => throw null; } public override string ToString() => throw null; public int ValueCount { get => throw null; } public Microsoft.Win32.RegistryView View { get => throw null; } } - // Generated from `Microsoft.Win32.RegistryKeyPermissionCheck` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.RegistryKeyPermissionCheck` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RegistryKeyPermissionCheck { Default, @@ -85,7 +85,7 @@ namespace Microsoft ReadWriteSubTree, } - // Generated from `Microsoft.Win32.RegistryOptions` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.RegistryOptions` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum RegistryOptions { @@ -93,7 +93,7 @@ namespace Microsoft Volatile, } - // Generated from `Microsoft.Win32.RegistryValueKind` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.RegistryValueKind` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RegistryValueKind { Binary, @@ -106,7 +106,7 @@ namespace Microsoft Unknown, } - // Generated from `Microsoft.Win32.RegistryValueOptions` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.RegistryValueOptions` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum RegistryValueOptions { @@ -114,7 +114,7 @@ namespace Microsoft None, } - // Generated from `Microsoft.Win32.RegistryView` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.RegistryView` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RegistryView { Default, @@ -124,10 +124,11 @@ namespace Microsoft namespace SafeHandles { - // Generated from `Microsoft.Win32.SafeHandles.SafeRegistryHandle` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeRegistryHandle` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; } @@ -136,71 +137,29 @@ namespace Microsoft } namespace System { - namespace Diagnostics - { - namespace CodeAnalysis - { - /* Duplicate type 'AllowNullAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'DisallowNullAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'DoesNotReturnAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'DoesNotReturnIfAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MaybeNullAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MaybeNullWhenAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MemberNotNullAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MemberNotNullWhenAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'NotNullAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'NotNullIfNotNullAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'NotNullWhenAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - } - } - namespace Runtime - { - namespace Versioning - { - /* Duplicate type 'OSPlatformAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'SupportedOSPlatformAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'TargetPlatformAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'UnsupportedOSPlatformAttribute' is not stubbed in this assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - } - } namespace Security { namespace AccessControl { - // Generated from `System.Security.AccessControl.RegistryAccessRule` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.RegistryAccessRule` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RegistryAccessRule : System.Security.AccessControl.AccessRule { - 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 RegistryAccessRule(string 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; 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; + public RegistryAccessRule(string 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(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; } } - // Generated from `System.Security.AccessControl.RegistryAuditRule` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.RegistryAuditRule` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RegistryAuditRule : System.Security.AccessControl.AuditRule { - 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 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; } } - // Generated from `System.Security.AccessControl.RegistryRights` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.RegistryRights` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum RegistryRights { @@ -220,7 +179,7 @@ namespace System WriteKey, } - // Generated from `System.Security.AccessControl.RegistrySecurity` in `Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.RegistrySecurity` in `Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RegistrySecurity : System.Security.AccessControl.NativeObjectSecurity { public override System.Type AccessRightType { get => throw null; } 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 71988e3bbb3..b6d266eb644 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 { - // Generated from `System.Collections.Concurrent.BlockingCollection<>` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.BlockingCollection<>` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BlockingCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable, System.IDisposable { public void Add(T item) => throw null; @@ -55,7 +55,7 @@ namespace System public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection[] collections, out T item, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Collections.Concurrent.ConcurrentBag<>` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.ConcurrentBag<>` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConcurrentBag : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { public void Add(T item) => throw null; @@ -76,7 +76,7 @@ namespace System public bool TryTake(out T result) => throw null; } - // Generated from `System.Collections.Concurrent.ConcurrentDictionary<,>` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.ConcurrentDictionary<,>` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; @@ -86,6 +86,7 @@ namespace System public TValue AddOrUpdate(TKey key, TValue addValue, System.Func updateValueFactory) => throw null; 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; } 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; @@ -130,7 +131,7 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } } - // Generated from `System.Collections.Concurrent.ConcurrentQueue<>` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.ConcurrentQueue<>` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConcurrentQueue : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { public void Clear() => throw null; @@ -152,7 +153,7 @@ namespace System bool System.Collections.Concurrent.IProducerConsumerCollection.TryTake(out T item) => throw null; } - // Generated from `System.Collections.Concurrent.ConcurrentStack<>` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.ConcurrentStack<>` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConcurrentStack : System.Collections.Concurrent.IProducerConsumerCollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { public void Clear() => throw null; @@ -178,7 +179,7 @@ namespace System bool System.Collections.Concurrent.IProducerConsumerCollection.TryTake(out T item) => throw null; } - // Generated from `System.Collections.Concurrent.EnumerablePartitionerOptions` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.EnumerablePartitionerOptions` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum EnumerablePartitionerOptions { @@ -186,7 +187,7 @@ namespace System None, } - // Generated from `System.Collections.Concurrent.IProducerConsumerCollection<>` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.IProducerConsumerCollection<>` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IProducerConsumerCollection : System.Collections.Generic.IEnumerable, System.Collections.ICollection, System.Collections.IEnumerable { void CopyTo(T[] array, int index); @@ -195,7 +196,7 @@ namespace System bool TryTake(out T item); } - // Generated from `System.Collections.Concurrent.OrderablePartitioner<>` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.OrderablePartitioner<>` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class OrderablePartitioner : System.Collections.Concurrent.Partitioner { public override System.Collections.Generic.IEnumerable GetDynamicPartitions() => throw null; @@ -208,7 +209,7 @@ namespace System protected OrderablePartitioner(bool keysOrderedInEachPartition, bool keysOrderedAcrossPartitions, bool keysNormalized) => throw null; } - // Generated from `System.Collections.Concurrent.Partitioner` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.Partitioner` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Partitioner { public static System.Collections.Concurrent.OrderablePartitioner> Create(int fromInclusive, int toExclusive) => throw null; @@ -221,7 +222,7 @@ namespace System public static System.Collections.Concurrent.OrderablePartitioner Create(TSource[] array, bool loadBalance) => throw null; } - // Generated from `System.Collections.Concurrent.Partitioner<>` in `System.Collections.Concurrent, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Concurrent.Partitioner<>` in `System.Collections.Concurrent, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Partitioner { public virtual System.Collections.Generic.IEnumerable GetDynamicPartitions() => 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 181870a3ca1..61ca6586565 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 @@ -6,7 +6,7 @@ namespace System { namespace Immutable { - // Generated from `System.Collections.Immutable.IImmutableDictionary<,>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.IImmutableDictionary<,>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IImmutableDictionary : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.IEnumerable { System.Collections.Immutable.IImmutableDictionary Add(TKey key, TValue value); @@ -20,7 +20,7 @@ namespace System bool TryGetKey(TKey equalKey, out TKey actualKey); } - // Generated from `System.Collections.Immutable.IImmutableList<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.IImmutableList<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IImmutableList : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable { System.Collections.Immutable.IImmutableList Add(T value); @@ -39,7 +39,7 @@ namespace System System.Collections.Immutable.IImmutableList SetItem(int index, T value); } - // Generated from `System.Collections.Immutable.IImmutableQueue<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.IImmutableQueue<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IImmutableQueue : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { System.Collections.Immutable.IImmutableQueue Clear(); @@ -49,7 +49,7 @@ namespace System T Peek(); } - // Generated from `System.Collections.Immutable.IImmutableSet<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.IImmutableSet<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IImmutableSet : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { System.Collections.Immutable.IImmutableSet Add(T value); @@ -69,7 +69,7 @@ namespace System System.Collections.Immutable.IImmutableSet Union(System.Collections.Generic.IEnumerable other); } - // Generated from `System.Collections.Immutable.IImmutableStack<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.IImmutableStack<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IImmutableStack : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { System.Collections.Immutable.IImmutableStack Clear(); @@ -79,7 +79,7 @@ namespace System System.Collections.Immutable.IImmutableStack Push(T value); } - // Generated from `System.Collections.Immutable.ImmutableArray` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableArray` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableArray { public static int BinarySearch(this System.Collections.Immutable.ImmutableArray array, T value) => throw null; @@ -105,10 +105,10 @@ namespace System public static System.Collections.Immutable.ImmutableArray ToImmutableArray(this System.Collections.Generic.IEnumerable items) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableArray<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableArray<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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> { - // Generated from `System.Collections.Immutable.ImmutableArray<>+Builder` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableArray<>+Builder` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 void Add(T item) => throw null; @@ -154,7 +154,7 @@ namespace System } - // Generated from `System.Collections.Immutable.ImmutableArray<>+Enumerator` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableArray<>+Enumerator` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator { public T Current { get => throw null; } @@ -265,7 +265,7 @@ namespace System public System.Collections.Immutable.ImmutableArray.Builder ToBuilder() => throw null; } - // Generated from `System.Collections.Immutable.ImmutableDictionary` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableDictionary` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableDictionary { public static bool Contains(this System.Collections.Immutable.IImmutableDictionary map, TKey key, TValue value) => throw null; @@ -291,10 +291,10 @@ namespace System public static System.Collections.Immutable.ImmutableDictionary ToImmutableDictionary(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IEqualityComparer keyComparer) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableDictionary<,>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableDictionary<,>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Immutable.ImmutableDictionary<,>+Builder` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableDictionary<,>+Builder` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 void Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -340,7 +340,7 @@ namespace System } - // Generated from `System.Collections.Immutable.ImmutableDictionary<,>+Enumerator` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableDictionary<,>+Enumerator` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable { public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -410,7 +410,7 @@ namespace System public System.Collections.Immutable.ImmutableDictionary WithComparers(System.Collections.Generic.IEqualityComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableHashSet` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableHashSet` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableHashSet { public static System.Collections.Immutable.ImmutableHashSet Create() => throw null; @@ -428,10 +428,10 @@ namespace System public static System.Collections.Immutable.ImmutableHashSet ToImmutableHashSet(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableHashSet<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableHashSet<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Immutable.ImmutableHashSet<>+Builder` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableHashSet<>+Builder` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Builder : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.ISet, System.Collections.IEnumerable { public bool Add(T item) => throw null; @@ -461,7 +461,7 @@ namespace System } - // Generated from `System.Collections.Immutable.ImmutableHashSet<>+Enumerator` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableHashSet<>+Enumerator` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } @@ -519,7 +519,7 @@ namespace System public System.Collections.Immutable.ImmutableHashSet WithComparer(System.Collections.Generic.IEqualityComparer equalityComparer) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableInterlocked` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableInterlocked` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableInterlocked { public static TValue AddOrUpdate(ref System.Collections.Immutable.ImmutableDictionary location, TKey key, System.Func addValueFactory, System.Func updateValueFactory) => throw null; @@ -543,7 +543,7 @@ namespace System public static bool Update(ref T location, System.Func transformer) where T : class => throw null; } - // Generated from `System.Collections.Immutable.ImmutableList` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableList` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableList { public static System.Collections.Immutable.ImmutableList Create() => throw null; @@ -566,10 +566,10 @@ namespace System public static System.Collections.Immutable.ImmutableList ToImmutableList(this System.Collections.Generic.IEnumerable source) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableList<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableList<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Immutable.ImmutableList<>+Builder` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableList<>+Builder` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 void Add(T item) => throw null; @@ -638,7 +638,7 @@ namespace System } - // Generated from `System.Collections.Immutable.ImmutableList<>+Enumerator` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableList<>+Enumerator` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } @@ -738,7 +738,7 @@ namespace System public bool TrueForAll(System.Predicate match) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableQueue` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableQueue` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableQueue { public static System.Collections.Immutable.ImmutableQueue Create() => throw null; @@ -748,10 +748,10 @@ namespace System public static System.Collections.Immutable.IImmutableQueue Dequeue(this System.Collections.Immutable.IImmutableQueue queue, out T value) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableQueue<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableQueue<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ImmutableQueue : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableQueue { - // Generated from `System.Collections.Immutable.ImmutableQueue<>+Enumerator` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableQueue<>+Enumerator` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator { public T Current { get => throw null; } @@ -776,7 +776,7 @@ namespace System public T PeekRef() => throw null; } - // Generated from `System.Collections.Immutable.ImmutableSortedDictionary` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableSortedDictionary` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableSortedDictionary { public static System.Collections.Immutable.ImmutableSortedDictionary Create() => throw null; @@ -797,10 +797,10 @@ 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, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableSortedDictionary<,>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableSortedDictionary<,>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Immutable.ImmutableSortedDictionary<,>+Builder` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableSortedDictionary<,>+Builder` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 void Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -847,7 +847,7 @@ namespace System } - // Generated from `System.Collections.Immutable.ImmutableSortedDictionary<,>+Enumerator` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableSortedDictionary<,>+Enumerator` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable { public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -918,7 +918,7 @@ namespace System public System.Collections.Immutable.ImmutableSortedDictionary WithComparers(System.Collections.Generic.IComparer keyComparer, System.Collections.Generic.IEqualityComparer valueComparer) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableSortedSet` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableSortedSet` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableSortedSet { public static System.Collections.Immutable.ImmutableSortedSet Create() => throw null; @@ -936,10 +936,10 @@ namespace System public static System.Collections.Immutable.ImmutableSortedSet ToImmutableSortedSet(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IComparer comparer) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableSortedSet<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableSortedSet<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Immutable.ImmutableSortedSet<>+Builder` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableSortedSet<>+Builder` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 bool Add(T item) => throw null; @@ -977,7 +977,7 @@ namespace System } - // Generated from `System.Collections.Immutable.ImmutableSortedSet<>+Enumerator` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableSortedSet<>+Enumerator` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } @@ -1054,7 +1054,7 @@ namespace System public System.Collections.Immutable.ImmutableSortedSet WithComparer(System.Collections.Generic.IComparer comparer) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableStack` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableStack` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableStack { public static System.Collections.Immutable.ImmutableStack Create() => throw null; @@ -1064,10 +1064,10 @@ namespace System public static System.Collections.Immutable.IImmutableStack Pop(this System.Collections.Immutable.IImmutableStack stack, out T value) => throw null; } - // Generated from `System.Collections.Immutable.ImmutableStack<>` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableStack<>` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ImmutableStack : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Immutable.IImmutableStack { - // Generated from `System.Collections.Immutable.ImmutableStack<>+Enumerator` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Immutable.ImmutableStack<>+Enumerator` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator { public T Current { get => throw null; } @@ -1096,7 +1096,7 @@ namespace System } namespace Linq { - // Generated from `System.Linq.ImmutableArrayExtensions` in `System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.ImmutableArrayExtensions` in `System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ImmutableArrayExtensions { public static T Aggregate(this System.Collections.Immutable.ImmutableArray immutableArray, System.Func func) => 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 488bcf73c3c..6311d99099f 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 @@ -4,7 +4,7 @@ namespace System { namespace Collections { - // Generated from `System.Collections.CaseInsensitiveComparer` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.CaseInsensitiveComparer` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CaseInsensitiveComparer : System.Collections.IComparer { public CaseInsensitiveComparer() => throw null; @@ -14,7 +14,7 @@ namespace System public static System.Collections.CaseInsensitiveComparer DefaultInvariant { get => throw null; } } - // Generated from `System.Collections.CaseInsensitiveHashCodeProvider` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.CaseInsensitiveHashCodeProvider` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CaseInsensitiveHashCodeProvider : System.Collections.IHashCodeProvider { public CaseInsensitiveHashCodeProvider() => throw null; @@ -24,7 +24,7 @@ namespace System public int GetHashCode(object obj) => throw null; } - // Generated from `System.Collections.CollectionBase` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.CollectionBase` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CollectionBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { int System.Collections.IList.Add(object value) => throw null; @@ -58,7 +58,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Collections.DictionaryBase` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.DictionaryBase` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DictionaryBase : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable { void System.Collections.IDictionary.Add(object key, object value) => throw null; @@ -91,7 +91,7 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } } - // Generated from `System.Collections.Queue` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Queue` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Queue : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable { public virtual void Clear() => throw null; @@ -114,7 +114,7 @@ namespace System public virtual void TrimToSize() => throw null; } - // Generated from `System.Collections.ReadOnlyCollectionBase` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ReadOnlyCollectionBase` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ReadOnlyCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable { void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; @@ -126,7 +126,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Collections.SortedList` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.SortedList` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SortedList : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.ICloneable { public virtual void Add(object key, object value) => throw null; @@ -166,7 +166,7 @@ namespace System public virtual System.Collections.ICollection Values { get => throw null; } } - // Generated from `System.Collections.Stack` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Stack` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Stack : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable { public virtual void Clear() => throw null; @@ -189,7 +189,7 @@ namespace System namespace Specialized { - // Generated from `System.Collections.Specialized.CollectionsUtil` in `System.Collections.NonGeneric, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.CollectionsUtil` in `System.Collections.NonGeneric, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CollectionsUtil { public CollectionsUtil() => 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 2585088e200..7f1ebf51687 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 @@ -6,10 +6,10 @@ namespace System { namespace Specialized { - // Generated from `System.Collections.Specialized.BitVector32` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.BitVector32` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct BitVector32 { - // Generated from `System.Collections.Specialized.BitVector32+Section` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.BitVector32+Section` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Section { public static bool operator !=(System.Collections.Specialized.BitVector32.Section a, System.Collections.Specialized.BitVector32.Section b) => throw null; @@ -41,7 +41,7 @@ namespace System public static string ToString(System.Collections.Specialized.BitVector32 value) => throw null; } - // Generated from `System.Collections.Specialized.HybridDictionary` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.HybridDictionary` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HybridDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable { public void Add(object key, object value) => throw null; @@ -65,7 +65,7 @@ namespace System public System.Collections.ICollection Values { get => throw null; } } - // Generated from `System.Collections.Specialized.IOrderedDictionary` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.IOrderedDictionary` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IOrderedDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable { System.Collections.IDictionaryEnumerator GetEnumerator(); @@ -74,7 +74,7 @@ namespace System void RemoveAt(int index); } - // Generated from `System.Collections.Specialized.ListDictionary` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.ListDictionary` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ListDictionary : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable { public void Add(object key, object value) => throw null; @@ -96,10 +96,10 @@ namespace System public System.Collections.ICollection Values { get => throw null; } } - // Generated from `System.Collections.Specialized.NameObjectCollectionBase` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.NameObjectCollectionBase` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class NameObjectCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { - // Generated from `System.Collections.Specialized.NameObjectCollectionBase+KeysCollection` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.NameObjectCollectionBase+KeysCollection` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class KeysCollection : System.Collections.ICollection, System.Collections.IEnumerable { void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; @@ -143,7 +143,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Collections.Specialized.NameValueCollection` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.NameValueCollection` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NameValueCollection : System.Collections.Specialized.NameObjectCollectionBase { public void Add(System.Collections.Specialized.NameValueCollection c) => throw null; @@ -173,7 +173,7 @@ namespace System public virtual void Set(string name, string value) => throw null; } - // Generated from `System.Collections.Specialized.OrderedDictionary` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.OrderedDictionary` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 void Add(object key, object value) => throw null; @@ -205,7 +205,7 @@ namespace System public System.Collections.ICollection Values { get => throw null; } } - // Generated from `System.Collections.Specialized.StringCollection` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.StringCollection` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { int System.Collections.IList.Add(object value) => throw null; @@ -236,7 +236,7 @@ namespace System public object SyncRoot { get => throw null; } } - // Generated from `System.Collections.Specialized.StringDictionary` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.StringDictionary` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringDictionary : System.Collections.IEnumerable { public virtual void Add(string key, string value) => throw null; @@ -255,7 +255,7 @@ namespace System public virtual System.Collections.ICollection Values { get => throw null; } } - // Generated from `System.Collections.Specialized.StringEnumerator` in `System.Collections.Specialized, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.StringEnumerator` in `System.Collections.Specialized, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringEnumerator { public string Current { get => 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 e26c9f47f58..0a19a5ad326 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 { - // Generated from `System.Collections.BitArray` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.BitArray` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BitArray : System.Collections.ICollection, System.Collections.IEnumerable, System.ICloneable { public System.Collections.BitArray And(System.Collections.BitArray value) => throw null; @@ -33,7 +33,7 @@ namespace System public System.Collections.BitArray Xor(System.Collections.BitArray value) => throw null; } - // Generated from `System.Collections.StructuralComparisons` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.StructuralComparisons` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class StructuralComparisons { public static System.Collections.IComparer StructuralComparer { get => throw null; } @@ -42,7 +42,7 @@ namespace System namespace Generic { - // Generated from `System.Collections.Generic.CollectionExtensions` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.CollectionExtensions` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class CollectionExtensions { public static TValue GetValueOrDefault(this System.Collections.Generic.IReadOnlyDictionary dictionary, TKey key) => throw null; @@ -51,7 +51,7 @@ namespace System public static bool TryAdd(this System.Collections.Generic.IDictionary dictionary, TKey key, TValue value) => throw null; } - // Generated from `System.Collections.Generic.Comparer<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Comparer<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Comparer : System.Collections.Generic.IComparer, System.Collections.IComparer { public abstract int Compare(T x, T y); @@ -61,10 +61,10 @@ namespace System public static System.Collections.Generic.Comparer Default { get => throw null; } } - // Generated from `System.Collections.Generic.Dictionary<,>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Dictionary<,>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Generic.Dictionary<,>+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Dictionary<,>+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IDictionaryEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -79,10 +79,10 @@ namespace System } - // Generated from `System.Collections.Generic.Dictionary<,>+KeyCollection` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Dictionary<,>+KeyCollection` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { - // Generated from `System.Collections.Generic.Dictionary<,>+KeyCollection+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Dictionary<,>+KeyCollection+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public TKey Current { get => throw null; } @@ -111,10 +111,10 @@ namespace System } - // Generated from `System.Collections.Generic.Dictionary<,>+ValueCollection` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Dictionary<,>+ValueCollection` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { - // Generated from `System.Collections.Generic.Dictionary<,>+ValueCollection+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Dictionary<,>+ValueCollection+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public TValue Current { get => throw null; } @@ -196,7 +196,7 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } } - // Generated from `System.Collections.Generic.EqualityComparer<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.EqualityComparer<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EqualityComparer : System.Collections.Generic.IEqualityComparer, System.Collections.IEqualityComparer { public static System.Collections.Generic.EqualityComparer Default { get => throw null; } @@ -207,10 +207,10 @@ namespace System int System.Collections.IEqualityComparer.GetHashCode(object obj) => throw null; } - // Generated from `System.Collections.Generic.HashSet<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.HashSet<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Generic.HashSet<>+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.HashSet<>+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } @@ -262,10 +262,10 @@ namespace System public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; } - // Generated from `System.Collections.Generic.LinkedList<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.LinkedList<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Generic.LinkedList<>+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.LinkedList<>+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } @@ -314,7 +314,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Collections.Generic.LinkedListNode<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.LinkedListNode<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LinkedListNode { public LinkedListNode(T value) => throw null; @@ -325,10 +325,10 @@ namespace System public T ValueRef { get => throw null; } } - // Generated from `System.Collections.Generic.List<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.List<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Generic.List<>+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.List<>+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } @@ -357,6 +357,7 @@ namespace System 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; @@ -408,10 +409,61 @@ namespace System public bool TrueForAll(System.Predicate match) => throw null; } - // Generated from `System.Collections.Generic.Queue<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.PriorityQueue<,>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class PriorityQueue + { + // Generated from `System.Collections.Generic.PriorityQueue<,>+UnorderedItemsCollection` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class UnorderedItemsCollection : System.Collections.Generic.IEnumerable<(TElement, TPriority)>, System.Collections.Generic.IReadOnlyCollection<(TElement, TPriority)>, System.Collections.ICollection, System.Collections.IEnumerable + { + // Generated from `System.Collections.Generic.PriorityQueue<,>+UnorderedItemsCollection+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 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 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; } + } + + // Generated from `System.Collections.Generic.Queue<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Queue : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { - // Generated from `System.Collections.Generic.Queue<>+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Queue<>+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } @@ -430,6 +482,7 @@ namespace System 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; @@ -445,7 +498,7 @@ namespace System public bool TryPeek(out T result) => throw null; } - // Generated from `System.Collections.Generic.ReferenceEqualityComparer` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.ReferenceEqualityComparer` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReferenceEqualityComparer : System.Collections.Generic.IEqualityComparer, System.Collections.IEqualityComparer { public bool Equals(object x, object y) => throw null; @@ -453,10 +506,10 @@ namespace System public static System.Collections.Generic.ReferenceEqualityComparer Instance { get => throw null; } } - // Generated from `System.Collections.Generic.SortedDictionary<,>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.SortedDictionary<,>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Generic.SortedDictionary<,>+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.SortedDictionary<,>+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IDictionaryEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -471,10 +524,10 @@ namespace System } - // Generated from `System.Collections.Generic.SortedDictionary<,>+KeyCollection` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.SortedDictionary<,>+KeyCollection` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class KeyCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { - // Generated from `System.Collections.Generic.SortedDictionary<,>+KeyCollection+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.SortedDictionary<,>+KeyCollection+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public TKey Current { get => throw null; } @@ -503,10 +556,10 @@ namespace System } - // Generated from `System.Collections.Generic.SortedDictionary<,>+ValueCollection` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.SortedDictionary<,>+ValueCollection` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { - // Generated from `System.Collections.Generic.SortedDictionary<,>+ValueCollection+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.SortedDictionary<,>+ValueCollection+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public TValue Current { get => throw null; } @@ -576,7 +629,7 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } } - // Generated from `System.Collections.Generic.SortedList<,>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.SortedList<,>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair keyValuePair) => throw null; @@ -589,7 +642,7 @@ 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.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; } public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; @@ -627,10 +680,10 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } } - // Generated from `System.Collections.Generic.SortedSet<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.SortedSet<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.Generic.SortedSet<>+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.SortedSet<>+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } @@ -690,10 +743,10 @@ namespace System public void UnionWith(System.Collections.Generic.IEnumerable other) => throw null; } - // Generated from `System.Collections.Generic.Stack<>` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Stack<>` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Stack : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { - // Generated from `System.Collections.Generic.Stack<>+Enumerator` in `System.Collections, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.Stack<>+Enumerator` in `System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } @@ -710,6 +763,7 @@ namespace System 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; 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 6c3a1d07be7..7c0852696bf 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 @@ -6,7 +6,7 @@ namespace System { namespace DataAnnotations { - // Generated from `System.ComponentModel.DataAnnotations.AssociatedMetadataTypeTypeDescriptionProvider` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.AssociatedMetadataTypeTypeDescriptionProvider` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssociatedMetadataTypeTypeDescriptionProvider : System.ComponentModel.TypeDescriptionProvider { public AssociatedMetadataTypeTypeDescriptionProvider(System.Type type) => throw null; @@ -14,7 +14,7 @@ namespace System public override System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor(System.Type objectType, object instance) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.AssociationAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.AssociationAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssociationAttribute : System.Attribute { public AssociationAttribute(string name, string thisKey, string otherKey) => throw null; @@ -26,7 +26,7 @@ namespace System public System.Collections.Generic.IEnumerable ThisKeyMembers { get => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.CompareAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.CompareAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CompareAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public CompareAttribute(string otherProperty) => throw null; @@ -37,20 +37,20 @@ namespace System public override bool RequiresValidationContext { get => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.ConcurrencyCheckAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.ConcurrencyCheckAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConcurrencyCheckAttribute : System.Attribute { public ConcurrencyCheckAttribute() => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.CreditCardAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.CreditCardAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CreditCardAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { public CreditCardAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; public override bool IsValid(object value) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.CustomValidationAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.CustomValidationAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CustomValidationAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public CustomValidationAttribute(System.Type validatorType, string method) => throw null; @@ -60,7 +60,7 @@ namespace System public System.Type ValidatorType { get => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.DataType` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.DataType` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DataType { CreditCard, @@ -82,7 +82,7 @@ namespace System Url, } - // Generated from `System.ComponentModel.DataAnnotations.DataTypeAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.DataTypeAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataTypeAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public string CustomDataType { get => throw null; } @@ -94,7 +94,7 @@ namespace System public override bool IsValid(object value) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.DisplayAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.DisplayAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DisplayAttribute : System.Attribute { public bool AutoGenerateField { get => throw null; set => throw null; } @@ -117,7 +117,7 @@ namespace System public string ShortName { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.DisplayColumnAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.DisplayColumnAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DisplayColumnAttribute : System.Attribute { public string DisplayColumn { get => throw null; } @@ -128,7 +128,7 @@ namespace System public bool SortDescending { get => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.DisplayFormatAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.DisplayFormatAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DisplayFormatAttribute : System.Attribute { public bool ApplyFormatInEditMode { get => throw null; set => throw null; } @@ -141,7 +141,7 @@ namespace System public System.Type NullDisplayTextResourceType { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.EditableAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.EditableAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EditableAttribute : System.Attribute { public bool AllowEdit { get => throw null; } @@ -149,14 +149,14 @@ namespace System public EditableAttribute(bool allowEdit) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.EmailAddressAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.EmailAddressAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EmailAddressAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { public EmailAddressAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; public override bool IsValid(object value) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.EnumDataTypeAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.EnumDataTypeAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EnumDataTypeAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { public EnumDataTypeAttribute(System.Type enumType) : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; @@ -164,7 +164,7 @@ namespace System public override bool IsValid(object value) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.FileExtensionsAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.FileExtensionsAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileExtensionsAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { public string Extensions { get => throw null; set => throw null; } @@ -173,7 +173,7 @@ namespace System public override bool IsValid(object value) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.FilterUIHintAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.FilterUIHintAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FilterUIHintAttribute : System.Attribute { public System.Collections.Generic.IDictionary ControlParameters { get => throw null; } @@ -186,19 +186,19 @@ namespace System public string PresentationLayer { get => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.IValidatableObject` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.IValidatableObject` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IValidatableObject { System.Collections.Generic.IEnumerable Validate(System.ComponentModel.DataAnnotations.ValidationContext validationContext); } - // Generated from `System.ComponentModel.DataAnnotations.KeyAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.KeyAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class KeyAttribute : System.Attribute { public KeyAttribute() => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.MaxLengthAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.MaxLengthAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MaxLengthAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public override string FormatErrorMessage(string name) => throw null; @@ -208,14 +208,14 @@ namespace System public MaxLengthAttribute(int length) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.MetadataTypeAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.MetadataTypeAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MetadataTypeAttribute : System.Attribute { public System.Type MetadataClassType { get => throw null; } public MetadataTypeAttribute(System.Type metadataClassType) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.MinLengthAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.MinLengthAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MinLengthAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public override string FormatErrorMessage(string name) => throw null; @@ -224,14 +224,14 @@ namespace System public MinLengthAttribute(int length) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.PhoneAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.PhoneAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PhoneAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { public override bool IsValid(object value) => throw null; public PhoneAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.RangeAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.RangeAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RangeAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public bool ConvertValueInInvariantCulture { get => throw null; set => throw null; } @@ -246,7 +246,7 @@ namespace System public RangeAttribute(int minimum, int maximum) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.RegularExpressionAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.RegularExpressionAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RegularExpressionAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public override string FormatErrorMessage(string name) => throw null; @@ -256,7 +256,7 @@ namespace System public RegularExpressionAttribute(string pattern) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.RequiredAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.RequiredAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RequiredAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public bool AllowEmptyStrings { get => throw null; set => throw null; } @@ -264,14 +264,14 @@ namespace System public RequiredAttribute() => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.ScaffoldColumnAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.ScaffoldColumnAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ScaffoldColumnAttribute : System.Attribute { public bool Scaffold { get => throw null; } public ScaffoldColumnAttribute(bool scaffold) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.StringLengthAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.StringLengthAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringLengthAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute { public override string FormatErrorMessage(string name) => throw null; @@ -281,13 +281,13 @@ namespace System public StringLengthAttribute(int maximumLength) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.TimestampAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.TimestampAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TimestampAttribute : System.Attribute { public TimestampAttribute() => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.UIHintAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.UIHintAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UIHintAttribute : System.Attribute { public System.Collections.Generic.IDictionary ControlParameters { get => throw null; } @@ -300,14 +300,14 @@ namespace System public UIHintAttribute(string uiHint, string presentationLayer, params object[] controlParameters) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.UrlAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.UrlAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UrlAttribute : System.ComponentModel.DataAnnotations.DataTypeAttribute { public override bool IsValid(object value) => throw null; public UrlAttribute() : base(default(System.ComponentModel.DataAnnotations.DataType)) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.ValidationAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.ValidationAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ValidationAttribute : System.Attribute { public string ErrorMessage { get => throw null; set => throw null; } @@ -326,7 +326,7 @@ namespace System protected ValidationAttribute(string errorMessage) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.ValidationContext` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.ValidationContext` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ValidationContext : System.IServiceProvider { public string DisplayName { get => throw null; set => throw null; } @@ -341,7 +341,7 @@ namespace System public ValidationContext(object instance, System.IServiceProvider serviceProvider, System.Collections.Generic.IDictionary items) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.ValidationException` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.ValidationException` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ValidationException : System.Exception { public System.ComponentModel.DataAnnotations.ValidationAttribute ValidationAttribute { get => throw null; } @@ -355,7 +355,7 @@ namespace System public object Value { get => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.ValidationResult` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.ValidationResult` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ValidationResult { public string ErrorMessage { get => throw null; set => throw null; } @@ -367,7 +367,7 @@ namespace System public ValidationResult(string errorMessage, System.Collections.Generic.IEnumerable memberNames) => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.Validator` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.Validator` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Validator { public static bool TryValidateObject(object instance, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Collections.Generic.ICollection validationResults) => throw null; @@ -382,7 +382,7 @@ namespace System namespace Schema { - // Generated from `System.ComponentModel.DataAnnotations.Schema.ColumnAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.Schema.ColumnAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ColumnAttribute : System.Attribute { public ColumnAttribute() => throw null; @@ -392,20 +392,20 @@ namespace System public string TypeName { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.Schema.ComplexTypeAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.Schema.ComplexTypeAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComplexTypeAttribute : System.Attribute { public ComplexTypeAttribute() => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } } - // Generated from `System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DatabaseGeneratedOption { Computed, @@ -413,27 +413,27 @@ namespace System None, } - // Generated from `System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ForeignKeyAttribute : System.Attribute { public ForeignKeyAttribute(string name) => throw null; public string Name { get => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.Schema.InversePropertyAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.Schema.InversePropertyAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InversePropertyAttribute : System.Attribute { public InversePropertyAttribute(string property) => throw null; public string Property { get => throw null; } } - // Generated from `System.ComponentModel.DataAnnotations.Schema.NotMappedAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.Schema.NotMappedAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NotMappedAttribute : System.Attribute { public NotMappedAttribute() => throw null; } - // Generated from `System.ComponentModel.DataAnnotations.Schema.TableAttribute` in `System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataAnnotations.Schema.TableAttribute` in `System.ComponentModel.Annotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TableAttribute : System.Attribute { public string Name { get => throw null; } 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 5c641f115cd..d7b34b9d2e3 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 @@ -4,7 +4,7 @@ namespace System { namespace ComponentModel { - // Generated from `System.ComponentModel.AsyncCompletedEventArgs` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.AsyncCompletedEventArgs` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AsyncCompletedEventArgs : System.EventArgs { public AsyncCompletedEventArgs(System.Exception error, bool cancelled, object userState) => throw null; @@ -14,10 +14,10 @@ namespace System public object UserState { get => throw null; } } - // Generated from `System.ComponentModel.AsyncCompletedEventHandler` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.AsyncCompletedEventHandler` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void AsyncCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - // Generated from `System.ComponentModel.AsyncOperation` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.AsyncOperation` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AsyncOperation { public void OperationCompleted() => throw null; @@ -28,14 +28,14 @@ namespace System // ERR: Stub generator didn't handle member: ~AsyncOperation } - // Generated from `System.ComponentModel.AsyncOperationManager` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.AsyncOperationManager` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } } - // Generated from `System.ComponentModel.BackgroundWorker` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.BackgroundWorker` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BackgroundWorker : System.ComponentModel.Component { public BackgroundWorker() => throw null; @@ -57,7 +57,7 @@ namespace System public bool WorkerSupportsCancellation { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.DoWorkEventArgs` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DoWorkEventArgs` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DoWorkEventArgs : System.ComponentModel.CancelEventArgs { public object Argument { get => throw null; } @@ -65,10 +65,10 @@ namespace System public object Result { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.DoWorkEventHandler` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DoWorkEventHandler` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void DoWorkEventHandler(object sender, System.ComponentModel.DoWorkEventArgs e); - // Generated from `System.ComponentModel.ProgressChangedEventArgs` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ProgressChangedEventArgs` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProgressChangedEventArgs : System.EventArgs { public ProgressChangedEventArgs(int progressPercentage, object userState) => throw null; @@ -76,10 +76,10 @@ namespace System public object UserState { get => throw null; } } - // Generated from `System.ComponentModel.ProgressChangedEventHandler` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ProgressChangedEventHandler` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ProgressChangedEventHandler(object sender, System.ComponentModel.ProgressChangedEventArgs e); - // Generated from `System.ComponentModel.RunWorkerCompletedEventArgs` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.RunWorkerCompletedEventArgs` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RunWorkerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { public object Result { get => throw null; } @@ -87,7 +87,7 @@ namespace System public object UserState { get => throw null; } } - // Generated from `System.ComponentModel.RunWorkerCompletedEventHandler` in `System.ComponentModel.EventBasedAsync, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.RunWorkerCompletedEventHandler` in `System.ComponentModel.EventBasedAsync, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 534e3790a45..42fc8806f8f 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 @@ -4,7 +4,7 @@ namespace System { namespace ComponentModel { - // Generated from `System.ComponentModel.BrowsableAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.BrowsableAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BrowsableAttribute : System.Attribute { public bool Browsable { get => throw null; } @@ -17,7 +17,7 @@ namespace System public static System.ComponentModel.BrowsableAttribute Yes; } - // Generated from `System.ComponentModel.CategoryAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CategoryAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CategoryAttribute : System.Attribute { public static System.ComponentModel.CategoryAttribute Action { get => throw null; } @@ -43,7 +43,7 @@ namespace System public static System.ComponentModel.CategoryAttribute WindowStyle { get => throw null; } } - // Generated from `System.ComponentModel.Component` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Component` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Component : System.MarshalByRefObject, System.ComponentModel.IComponent, System.IDisposable { protected virtual bool CanRaiseEvents { get => throw null; } @@ -60,7 +60,7 @@ namespace System // ERR: Stub generator didn't handle member: ~Component } - // Generated from `System.ComponentModel.ComponentCollection` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ComponentCollection` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComponentCollection : System.Collections.ReadOnlyCollectionBase { public ComponentCollection(System.ComponentModel.IComponent[] components) => throw null; @@ -69,7 +69,7 @@ namespace System public virtual System.ComponentModel.IComponent this[string name] { get => throw null; } } - // Generated from `System.ComponentModel.DescriptionAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DescriptionAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DescriptionAttribute : System.Attribute { public static System.ComponentModel.DescriptionAttribute Default; @@ -82,7 +82,7 @@ namespace System public override bool IsDefaultAttribute() => throw null; } - // Generated from `System.ComponentModel.DesignOnlyAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DesignOnlyAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignOnlyAttribute : System.Attribute { public static System.ComponentModel.DesignOnlyAttribute Default; @@ -95,7 +95,7 @@ namespace System public static System.ComponentModel.DesignOnlyAttribute Yes; } - // Generated from `System.ComponentModel.DesignerAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DesignerAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerAttribute : System.Attribute { public DesignerAttribute(System.Type designerType) => throw null; @@ -110,7 +110,7 @@ namespace System public override object TypeId { get => throw null; } } - // Generated from `System.ComponentModel.DesignerCategoryAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DesignerCategoryAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerCategoryAttribute : System.Attribute { public string Category { get => throw null; } @@ -126,7 +126,7 @@ namespace System public override object TypeId { get => throw null; } } - // Generated from `System.ComponentModel.DesignerSerializationVisibility` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DesignerSerializationVisibility` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DesignerSerializationVisibility { Content, @@ -134,7 +134,7 @@ namespace System Visible, } - // Generated from `System.ComponentModel.DesignerSerializationVisibilityAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DesignerSerializationVisibilityAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerSerializationVisibilityAttribute : System.Attribute { public static System.ComponentModel.DesignerSerializationVisibilityAttribute Content; @@ -148,7 +148,7 @@ namespace System public static System.ComponentModel.DesignerSerializationVisibilityAttribute Visible; } - // Generated from `System.ComponentModel.DisplayNameAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DisplayNameAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DisplayNameAttribute : System.Attribute { public static System.ComponentModel.DisplayNameAttribute Default; @@ -161,7 +161,7 @@ namespace System public override bool IsDefaultAttribute() => throw null; } - // Generated from `System.ComponentModel.EditorAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.EditorAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EditorAttribute : System.Attribute { public EditorAttribute() => throw null; @@ -175,7 +175,7 @@ namespace System public override object TypeId { get => throw null; } } - // Generated from `System.ComponentModel.EventHandlerList` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.EventHandlerList` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventHandlerList : System.IDisposable { public void AddHandler(object key, System.Delegate value) => throw null; @@ -186,14 +186,14 @@ namespace System public void RemoveHandler(object key, System.Delegate value) => throw null; } - // Generated from `System.ComponentModel.IComponent` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IComponent` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IComponent : System.IDisposable { event System.EventHandler Disposed; System.ComponentModel.ISite Site { get; set; } } - // Generated from `System.ComponentModel.IContainer` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IContainer` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IContainer : System.IDisposable { void Add(System.ComponentModel.IComponent component); @@ -202,7 +202,7 @@ namespace System void Remove(System.ComponentModel.IComponent component); } - // Generated from `System.ComponentModel.ISite` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ISite` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISite : System.IServiceProvider { System.ComponentModel.IComponent Component { get; } @@ -211,14 +211,14 @@ namespace System string Name { get; set; } } - // Generated from `System.ComponentModel.ISupportInitialize` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ISupportInitialize` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISupportInitialize { void BeginInit(); void EndInit(); } - // Generated from `System.ComponentModel.ISynchronizeInvoke` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ISynchronizeInvoke` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISynchronizeInvoke { System.IAsyncResult BeginInvoke(System.Delegate method, object[] args); @@ -227,7 +227,7 @@ namespace System bool InvokeRequired { get; } } - // Generated from `System.ComponentModel.ImmutableObjectAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ImmutableObjectAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ImmutableObjectAttribute : System.Attribute { public static System.ComponentModel.ImmutableObjectAttribute Default; @@ -240,14 +240,14 @@ namespace System public static System.ComponentModel.ImmutableObjectAttribute Yes; } - // Generated from `System.ComponentModel.InitializationEventAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.InitializationEventAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InitializationEventAttribute : System.Attribute { public string EventName { get => throw null; } public InitializationEventAttribute(string eventName) => throw null; } - // Generated from `System.ComponentModel.InvalidAsynchronousStateException` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.InvalidAsynchronousStateException` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidAsynchronousStateException : System.ArgumentException { public InvalidAsynchronousStateException() => throw null; @@ -256,7 +256,7 @@ namespace System public InvalidAsynchronousStateException(string message, System.Exception innerException) => throw null; } - // Generated from `System.ComponentModel.InvalidEnumArgumentException` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.InvalidEnumArgumentException` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidEnumArgumentException : System.ArgumentException { public InvalidEnumArgumentException() => throw null; @@ -266,7 +266,7 @@ namespace System public InvalidEnumArgumentException(string argumentName, int invalidValue, System.Type enumClass) => throw null; } - // Generated from `System.ComponentModel.LocalizableAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.LocalizableAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LocalizableAttribute : System.Attribute { public static System.ComponentModel.LocalizableAttribute Default; @@ -279,7 +279,7 @@ namespace System public static System.ComponentModel.LocalizableAttribute Yes; } - // Generated from `System.ComponentModel.MergablePropertyAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.MergablePropertyAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MergablePropertyAttribute : System.Attribute { public bool AllowMerge { get => throw null; } @@ -292,7 +292,7 @@ namespace System public static System.ComponentModel.MergablePropertyAttribute Yes; } - // Generated from `System.ComponentModel.NotifyParentPropertyAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.NotifyParentPropertyAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NotifyParentPropertyAttribute : System.Attribute { public static System.ComponentModel.NotifyParentPropertyAttribute Default; @@ -305,7 +305,7 @@ namespace System public static System.ComponentModel.NotifyParentPropertyAttribute Yes; } - // Generated from `System.ComponentModel.ParenthesizePropertyNameAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ParenthesizePropertyNameAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ParenthesizePropertyNameAttribute : System.Attribute { public static System.ComponentModel.ParenthesizePropertyNameAttribute Default; @@ -317,7 +317,7 @@ namespace System public ParenthesizePropertyNameAttribute(bool needParenthesis) => throw null; } - // Generated from `System.ComponentModel.ReadOnlyAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ReadOnlyAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReadOnlyAttribute : System.Attribute { public static System.ComponentModel.ReadOnlyAttribute Default; @@ -330,7 +330,7 @@ namespace System public static System.ComponentModel.ReadOnlyAttribute Yes; } - // Generated from `System.ComponentModel.RefreshProperties` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.RefreshProperties` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RefreshProperties { All, @@ -338,7 +338,7 @@ namespace System Repaint, } - // Generated from `System.ComponentModel.RefreshPropertiesAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.RefreshPropertiesAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RefreshPropertiesAttribute : System.Attribute { public static System.ComponentModel.RefreshPropertiesAttribute All; @@ -355,7 +355,7 @@ namespace System { namespace Serialization { - // Generated from `System.ComponentModel.Design.Serialization.DesignerSerializerAttribute` in `System.ComponentModel.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.DesignerSerializerAttribute` in `System.ComponentModel.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerSerializerAttribute : System.Attribute { public DesignerSerializerAttribute(System.Type serializerType, System.Type baseSerializerType) => 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 9244e37a5cd..bf098bcad92 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 @@ -2,7 +2,7 @@ namespace System { - // Generated from `System.UriTypeConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UriTypeConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UriTypeConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -15,7 +15,7 @@ namespace System namespace ComponentModel { - // Generated from `System.ComponentModel.AddingNewEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.AddingNewEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AddingNewEventArgs : System.EventArgs { public AddingNewEventArgs() => throw null; @@ -23,10 +23,10 @@ namespace System public object NewObject { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.AddingNewEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.AddingNewEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void AddingNewEventHandler(object sender, System.ComponentModel.AddingNewEventArgs e); - // Generated from `System.ComponentModel.AmbientValueAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.AmbientValueAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AmbientValueAttribute : System.Attribute { public AmbientValueAttribute(System.Type type, string value) => throw null; @@ -45,7 +45,7 @@ namespace System public object Value { get => throw null; } } - // Generated from `System.ComponentModel.ArrayConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ArrayConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ArrayConverter : System.ComponentModel.CollectionConverter { public ArrayConverter() => throw null; @@ -54,7 +54,7 @@ namespace System public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - // Generated from `System.ComponentModel.AttributeCollection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.AttributeCollection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AttributeCollection : System.Collections.ICollection, System.Collections.IEnumerable { protected AttributeCollection() => throw null; @@ -78,7 +78,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.ComponentModel.AttributeProviderAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.AttributeProviderAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AttributeProviderAttribute : System.Attribute { public AttributeProviderAttribute(System.Type type) => throw null; @@ -88,7 +88,7 @@ namespace System public string TypeName { get => throw null; } } - // Generated from `System.ComponentModel.BaseNumberConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.BaseNumberConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class BaseNumberConverter : System.ComponentModel.TypeConverter { internal BaseNumberConverter() => throw null; @@ -98,7 +98,7 @@ namespace System public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; } - // Generated from `System.ComponentModel.BindableAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.BindableAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BindableAttribute : System.Attribute { public bool Bindable { get => throw null; } @@ -115,7 +115,7 @@ namespace System public static System.ComponentModel.BindableAttribute Yes; } - // Generated from `System.ComponentModel.BindableSupport` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.BindableSupport` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum BindableSupport { Default, @@ -123,14 +123,14 @@ namespace System Yes, } - // Generated from `System.ComponentModel.BindingDirection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.BindingDirection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum BindingDirection { OneWay, TwoWay, } - // Generated from `System.ComponentModel.BindingList<>` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.BindingList<>` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -180,7 +180,7 @@ namespace System protected virtual bool SupportsSortingCore { get => throw null; } } - // Generated from `System.ComponentModel.BooleanConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.BooleanConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BooleanConverter : System.ComponentModel.TypeConverter { public BooleanConverter() => throw null; @@ -191,16 +191,16 @@ namespace System public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - // Generated from `System.ComponentModel.ByteConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ByteConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ByteConverter : System.ComponentModel.BaseNumberConverter { public ByteConverter() => throw null; } - // Generated from `System.ComponentModel.CancelEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CancelEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void CancelEventHandler(object sender, System.ComponentModel.CancelEventArgs e); - // Generated from `System.ComponentModel.CharConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CharConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CharConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -209,7 +209,7 @@ namespace System public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType) => throw null; } - // Generated from `System.ComponentModel.CollectionChangeAction` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CollectionChangeAction` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CollectionChangeAction { Add, @@ -217,7 +217,7 @@ namespace System Remove, } - // Generated from `System.ComponentModel.CollectionChangeEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CollectionChangeEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CollectionChangeEventArgs : System.EventArgs { public virtual System.ComponentModel.CollectionChangeAction Action { get => throw null; } @@ -225,19 +225,18 @@ namespace System public virtual object Element { get => throw null; } } - // Generated from `System.ComponentModel.CollectionChangeEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CollectionChangeEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void CollectionChangeEventHandler(object sender, System.ComponentModel.CollectionChangeEventArgs e); - // Generated from `System.ComponentModel.CollectionConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CollectionConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 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; } - // Generated from `System.ComponentModel.ComplexBindingPropertiesAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ComplexBindingPropertiesAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComplexBindingPropertiesAttribute : System.Attribute { public ComplexBindingPropertiesAttribute() => throw null; @@ -250,7 +249,7 @@ namespace System public override int GetHashCode() => throw null; } - // Generated from `System.ComponentModel.ComponentConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ComponentConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComponentConverter : System.ComponentModel.ReferenceConverter { public ComponentConverter(System.Type type) : base(default(System.Type)) => throw null; @@ -258,7 +257,7 @@ namespace System public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - // Generated from `System.ComponentModel.ComponentEditor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ComponentEditor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ComponentEditor { protected ComponentEditor() => throw null; @@ -266,7 +265,7 @@ namespace System public bool EditComponent(object component) => throw null; } - // Generated from `System.ComponentModel.ComponentResourceManager` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ComponentResourceManager` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComponentResourceManager : System.Resources.ResourceManager { public void ApplyResources(object value, string objectName) => throw null; @@ -275,7 +274,7 @@ namespace System public ComponentResourceManager(System.Type t) => throw null; } - // Generated from `System.ComponentModel.Container` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Container` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Container : System.ComponentModel.IContainer, System.IDisposable { public virtual void Add(System.ComponentModel.IComponent component) => throw null; @@ -292,14 +291,14 @@ namespace System // ERR: Stub generator didn't handle member: ~Container } - // Generated from `System.ComponentModel.ContainerFilterService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ContainerFilterService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ContainerFilterService { protected ContainerFilterService() => throw null; public virtual System.ComponentModel.ComponentCollection FilterComponents(System.ComponentModel.ComponentCollection components) => throw null; } - // Generated from `System.ComponentModel.CultureInfoConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CultureInfoConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CultureInfoConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -313,7 +312,7 @@ namespace System public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - // Generated from `System.ComponentModel.CustomTypeDescriptor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CustomTypeDescriptor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CustomTypeDescriptor : System.ComponentModel.ICustomTypeDescriptor { protected CustomTypeDescriptor() => throw null; @@ -332,7 +331,7 @@ namespace System public virtual object GetPropertyOwner(System.ComponentModel.PropertyDescriptor pd) => throw null; } - // Generated from `System.ComponentModel.DataObjectAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataObjectAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataObjectAttribute : System.Attribute { public static System.ComponentModel.DataObjectAttribute DataObject; @@ -346,7 +345,7 @@ namespace System public static System.ComponentModel.DataObjectAttribute NonDataObject; } - // Generated from `System.ComponentModel.DataObjectFieldAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataObjectFieldAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataObjectFieldAttribute : System.Attribute { public DataObjectFieldAttribute(bool primaryKey) => throw null; @@ -361,7 +360,7 @@ namespace System public bool PrimaryKey { get => throw null; } } - // Generated from `System.ComponentModel.DataObjectMethodAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataObjectMethodAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataObjectMethodAttribute : System.Attribute { public DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType methodType) => throw null; @@ -373,7 +372,7 @@ namespace System public System.ComponentModel.DataObjectMethodType MethodType { get => throw null; } } - // Generated from `System.ComponentModel.DataObjectMethodType` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataObjectMethodType` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DataObjectMethodType { Delete, @@ -383,7 +382,7 @@ namespace System Update, } - // Generated from `System.ComponentModel.DateTimeConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DateTimeConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DateTimeConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -393,7 +392,7 @@ namespace System public DateTimeConverter() => throw null; } - // Generated from `System.ComponentModel.DateTimeOffsetConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DateTimeOffsetConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DateTimeOffsetConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -403,7 +402,7 @@ namespace System public DateTimeOffsetConverter() => throw null; } - // Generated from `System.ComponentModel.DecimalConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DecimalConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DecimalConverter : System.ComponentModel.BaseNumberConverter { public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; @@ -411,7 +410,7 @@ namespace System public DecimalConverter() => throw null; } - // Generated from `System.ComponentModel.DefaultBindingPropertyAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DefaultBindingPropertyAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultBindingPropertyAttribute : System.Attribute { public static System.ComponentModel.DefaultBindingPropertyAttribute Default; @@ -422,7 +421,7 @@ namespace System public string Name { get => throw null; } } - // Generated from `System.ComponentModel.DefaultEventAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DefaultEventAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultEventAttribute : System.Attribute { public static System.ComponentModel.DefaultEventAttribute Default; @@ -432,7 +431,7 @@ namespace System public string Name { get => throw null; } } - // Generated from `System.ComponentModel.DefaultPropertyAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DefaultPropertyAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultPropertyAttribute : System.Attribute { public static System.ComponentModel.DefaultPropertyAttribute Default; @@ -442,7 +441,7 @@ namespace System public string Name { get => throw null; } } - // Generated from `System.ComponentModel.DesignTimeVisibleAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DesignTimeVisibleAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignTimeVisibleAttribute : System.Attribute { public static System.ComponentModel.DesignTimeVisibleAttribute Default; @@ -456,13 +455,13 @@ namespace System public static System.ComponentModel.DesignTimeVisibleAttribute Yes; } - // Generated from `System.ComponentModel.DoubleConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DoubleConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DoubleConverter : System.ComponentModel.BaseNumberConverter { public DoubleConverter() => throw null; } - // Generated from `System.ComponentModel.EnumConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.EnumConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EnumConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -479,7 +478,7 @@ namespace System protected System.ComponentModel.TypeConverter.StandardValuesCollection Values { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.EventDescriptor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.EventDescriptor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EventDescriptor : System.ComponentModel.MemberDescriptor { public abstract void AddEventHandler(object component, System.Delegate value); @@ -492,7 +491,7 @@ namespace System public abstract void RemoveEventHandler(object component, System.Delegate value); } - // Generated from `System.ComponentModel.EventDescriptorCollection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.EventDescriptorCollection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventDescriptorCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { public int Add(System.ComponentModel.EventDescriptor value) => throw null; @@ -533,7 +532,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.ComponentModel.ExpandableObjectConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ExpandableObjectConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExpandableObjectConverter : System.ComponentModel.TypeConverter { public ExpandableObjectConverter() => throw null; @@ -541,7 +540,7 @@ namespace System public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - // Generated from `System.ComponentModel.ExtenderProvidedPropertyAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ExtenderProvidedPropertyAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExtenderProvidedPropertyAttribute : System.Attribute { public override bool Equals(object obj) => throw null; @@ -553,7 +552,7 @@ namespace System public System.Type ReceiverType { get => throw null; } } - // Generated from `System.ComponentModel.GuidConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.GuidConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GuidConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -563,7 +562,7 @@ namespace System public GuidConverter() => throw null; } - // Generated from `System.ComponentModel.HandledEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.HandledEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HandledEventArgs : System.EventArgs { public bool Handled { get => throw null; set => throw null; } @@ -571,10 +570,10 @@ namespace System public HandledEventArgs(bool defaultHandledValue) => throw null; } - // Generated from `System.ComponentModel.HandledEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.HandledEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void HandledEventHandler(object sender, System.ComponentModel.HandledEventArgs e); - // Generated from `System.ComponentModel.IBindingList` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IBindingList` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IBindingList : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { void AddIndex(System.ComponentModel.PropertyDescriptor property); @@ -595,7 +594,7 @@ namespace System bool SupportsSorting { get; } } - // Generated from `System.ComponentModel.IBindingListView` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IBindingListView` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IBindingListView : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.ComponentModel.IBindingList { void ApplySort(System.ComponentModel.ListSortDescriptionCollection sorts); @@ -606,14 +605,14 @@ namespace System bool SupportsFiltering { get; } } - // Generated from `System.ComponentModel.ICancelAddNew` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ICancelAddNew` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICancelAddNew { void CancelNew(int itemIndex); void EndNew(int itemIndex); } - // Generated from `System.ComponentModel.IComNativeDescriptorHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IComNativeDescriptorHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IComNativeDescriptorHandler { System.ComponentModel.AttributeCollection GetAttributes(object component); @@ -630,7 +629,7 @@ namespace System object GetPropertyValue(object component, string propertyName, ref bool success); } - // Generated from `System.ComponentModel.ICustomTypeDescriptor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ICustomTypeDescriptor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICustomTypeDescriptor { System.ComponentModel.AttributeCollection GetAttributes(); @@ -647,59 +646,59 @@ namespace System object GetPropertyOwner(System.ComponentModel.PropertyDescriptor pd); } - // Generated from `System.ComponentModel.IDataErrorInfo` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IDataErrorInfo` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDataErrorInfo { string Error { get; } string this[string columnName] { get; } } - // Generated from `System.ComponentModel.IExtenderProvider` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IExtenderProvider` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IExtenderProvider { bool CanExtend(object extendee); } - // Generated from `System.ComponentModel.IIntellisenseBuilder` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IIntellisenseBuilder` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IIntellisenseBuilder { string Name { get; } bool Show(string language, string value, ref string newValue); } - // Generated from `System.ComponentModel.IListSource` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IListSource` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IListSource { bool ContainsListCollection { get; } System.Collections.IList GetList(); } - // Generated from `System.ComponentModel.INestedContainer` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.INestedContainer` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INestedContainer : System.ComponentModel.IContainer, System.IDisposable { System.ComponentModel.IComponent Owner { get; } } - // Generated from `System.ComponentModel.INestedSite` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.INestedSite` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INestedSite : System.ComponentModel.ISite, System.IServiceProvider { string FullName { get; } } - // Generated from `System.ComponentModel.IRaiseItemChangedEvents` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IRaiseItemChangedEvents` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IRaiseItemChangedEvents { bool RaisesItemChangedEvents { get; } } - // Generated from `System.ComponentModel.ISupportInitializeNotification` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ISupportInitializeNotification` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISupportInitializeNotification : System.ComponentModel.ISupportInitialize { event System.EventHandler Initialized; bool IsInitialized { get; } } - // Generated from `System.ComponentModel.ITypeDescriptorContext` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ITypeDescriptorContext` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITypeDescriptorContext : System.IServiceProvider { System.ComponentModel.IContainer Container { get; } @@ -709,14 +708,14 @@ namespace System System.ComponentModel.PropertyDescriptor PropertyDescriptor { get; } } - // Generated from `System.ComponentModel.ITypedList` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ITypedList` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITypedList { System.ComponentModel.PropertyDescriptorCollection GetItemProperties(System.ComponentModel.PropertyDescriptor[] listAccessors); string GetListName(System.ComponentModel.PropertyDescriptor[] listAccessors); } - // Generated from `System.ComponentModel.InheritanceAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.InheritanceAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InheritanceAttribute : System.Attribute { public static System.ComponentModel.InheritanceAttribute Default; @@ -732,7 +731,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.ComponentModel.InheritanceLevel` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.InheritanceLevel` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum InheritanceLevel { Inherited, @@ -740,7 +739,7 @@ namespace System NotInherited, } - // Generated from `System.ComponentModel.InstallerTypeAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.InstallerTypeAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InstallerTypeAttribute : System.Attribute { public override bool Equals(object obj) => throw null; @@ -750,7 +749,7 @@ namespace System public InstallerTypeAttribute(string typeName) => throw null; } - // Generated from `System.ComponentModel.InstanceCreationEditor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.InstanceCreationEditor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class InstanceCreationEditor { public abstract object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Type instanceType); @@ -758,25 +757,25 @@ namespace System public virtual string Text { get => throw null; } } - // Generated from `System.ComponentModel.Int16Converter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Int16Converter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Int16Converter : System.ComponentModel.BaseNumberConverter { public Int16Converter() => throw null; } - // Generated from `System.ComponentModel.Int32Converter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Int32Converter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Int32Converter : System.ComponentModel.BaseNumberConverter { public Int32Converter() => throw null; } - // Generated from `System.ComponentModel.Int64Converter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Int64Converter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Int64Converter : System.ComponentModel.BaseNumberConverter { public Int64Converter() => throw null; } - // Generated from `System.ComponentModel.LicFileLicenseProvider` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.LicFileLicenseProvider` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LicFileLicenseProvider : System.ComponentModel.LicenseProvider { protected virtual string GetKey(System.Type type) => throw null; @@ -785,7 +784,7 @@ namespace System public LicFileLicenseProvider() => throw null; } - // Generated from `System.ComponentModel.License` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.License` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class License : System.IDisposable { public abstract void Dispose(); @@ -793,7 +792,7 @@ namespace System public abstract string LicenseKey { get; } } - // Generated from `System.ComponentModel.LicenseContext` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.LicenseContext` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LicenseContext : System.IServiceProvider { public virtual string GetSavedLicenseKey(System.Type type, System.Reflection.Assembly resourceAssembly) => throw null; @@ -803,7 +802,7 @@ namespace System public virtual System.ComponentModel.LicenseUsageMode UsageMode { get => throw null; } } - // Generated from `System.ComponentModel.LicenseException` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.LicenseException` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LicenseException : System.SystemException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -815,7 +814,7 @@ namespace System public System.Type LicensedType { get => throw null; } } - // Generated from `System.ComponentModel.LicenseManager` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.LicenseManager` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LicenseManager { public static object CreateWithContext(System.Type type, System.ComponentModel.LicenseContext creationContext) => throw null; @@ -831,14 +830,14 @@ namespace System public static System.ComponentModel.License Validate(System.Type type, object instance) => throw null; } - // Generated from `System.ComponentModel.LicenseProvider` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.LicenseProvider` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.ComponentModel.LicenseProviderAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.LicenseProviderAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LicenseProviderAttribute : System.Attribute { public static System.ComponentModel.LicenseProviderAttribute Default; @@ -851,14 +850,14 @@ namespace System public override object TypeId { get => throw null; } } - // Generated from `System.ComponentModel.LicenseUsageMode` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.LicenseUsageMode` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum LicenseUsageMode { Designtime, Runtime, } - // Generated from `System.ComponentModel.ListBindableAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ListBindableAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ListBindableAttribute : System.Attribute { public static System.ComponentModel.ListBindableAttribute Default; @@ -872,7 +871,7 @@ namespace System public static System.ComponentModel.ListBindableAttribute Yes; } - // Generated from `System.ComponentModel.ListChangedEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ListChangedEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ListChangedEventArgs : System.EventArgs { public ListChangedEventArgs(System.ComponentModel.ListChangedType listChangedType, System.ComponentModel.PropertyDescriptor propDesc) => throw null; @@ -885,10 +884,10 @@ namespace System public System.ComponentModel.PropertyDescriptor PropertyDescriptor { get => throw null; } } - // Generated from `System.ComponentModel.ListChangedEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ListChangedEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ListChangedEventHandler(object sender, System.ComponentModel.ListChangedEventArgs e); - // Generated from `System.ComponentModel.ListChangedType` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ListChangedType` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ListChangedType { ItemAdded, @@ -901,7 +900,7 @@ namespace System Reset, } - // Generated from `System.ComponentModel.ListSortDescription` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ListSortDescription` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ListSortDescription { public ListSortDescription(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction) => throw null; @@ -909,7 +908,7 @@ namespace System public System.ComponentModel.ListSortDirection SortDirection { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.ListSortDescriptionCollection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ListSortDescriptionCollection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ListSortDescriptionCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { int System.Collections.IList.Add(object value) => throw null; @@ -932,14 +931,14 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.ComponentModel.ListSortDirection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ListSortDirection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ListSortDirection { Ascending, Descending, } - // Generated from `System.ComponentModel.LookupBindingPropertiesAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.LookupBindingPropertiesAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LookupBindingPropertiesAttribute : System.Attribute { public string DataSource { get => throw null; } @@ -953,7 +952,7 @@ namespace System public string ValueMember { get => throw null; } } - // Generated from `System.ComponentModel.MarshalByValueComponent` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.MarshalByValueComponent` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MarshalByValueComponent : System.ComponentModel.IComponent, System.IDisposable, System.IServiceProvider { public virtual System.ComponentModel.IContainer Container { get => throw null; } @@ -969,7 +968,7 @@ namespace System // ERR: Stub generator didn't handle member: ~MarshalByValueComponent } - // Generated from `System.ComponentModel.MaskedTextProvider` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.MaskedTextProvider` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MaskedTextProvider : System.ICloneable { public bool Add(System.Char input) => throw null; @@ -1054,7 +1053,7 @@ namespace System public bool VerifyString(string input, out int testPosition, out System.ComponentModel.MaskedTextResultHint resultHint) => throw null; } - // Generated from `System.ComponentModel.MaskedTextResultHint` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.MaskedTextResultHint` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MaskedTextResultHint { AlphanumericCharacterExpected, @@ -1074,7 +1073,7 @@ namespace System Unknown, } - // Generated from `System.ComponentModel.MemberDescriptor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.MemberDescriptor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MemberDescriptor { protected virtual System.Attribute[] AttributeArray { get => throw null; set => throw null; } @@ -1101,7 +1100,7 @@ namespace System protected virtual int NameHashCode { get => throw null; } } - // Generated from `System.ComponentModel.MultilineStringConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.MultilineStringConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -1110,7 +1109,7 @@ namespace System public MultilineStringConverter() => throw null; } - // Generated from `System.ComponentModel.NestedContainer` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.NestedContainer` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -1121,7 +1120,7 @@ namespace System protected virtual string OwnerName { get => throw null; } } - // Generated from `System.ComponentModel.NullableConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.NullableConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NullableConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -1142,7 +1141,7 @@ namespace System public System.ComponentModel.TypeConverter UnderlyingTypeConverter { get => throw null; } } - // Generated from `System.ComponentModel.PasswordPropertyTextAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.PasswordPropertyTextAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PasswordPropertyTextAttribute : System.Attribute { public static System.ComponentModel.PasswordPropertyTextAttribute Default; @@ -1156,7 +1155,7 @@ namespace System public static System.ComponentModel.PasswordPropertyTextAttribute Yes; } - // Generated from `System.ComponentModel.PropertyDescriptor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.PropertyDescriptor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class PropertyDescriptor : System.ComponentModel.MemberDescriptor { public virtual void AddValueChanged(object component, System.EventHandler handler) => throw null; @@ -1191,7 +1190,7 @@ namespace System public virtual bool SupportsChangeEvents { get => throw null; } } - // Generated from `System.ComponentModel.PropertyDescriptorCollection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.PropertyDescriptorCollection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PropertyDescriptorCollection : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.Collections.IList { public int Add(System.ComponentModel.PropertyDescriptor value) => throw null; @@ -1242,7 +1241,7 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } } - // Generated from `System.ComponentModel.PropertyTabAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.PropertyTabAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PropertyTabAttribute : System.Attribute { public bool Equals(System.ComponentModel.PropertyTabAttribute other) => throw null; @@ -1260,7 +1259,7 @@ namespace System public System.ComponentModel.PropertyTabScope[] TabScopes { get => throw null; } } - // Generated from `System.ComponentModel.PropertyTabScope` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.PropertyTabScope` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PropertyTabScope { Component, @@ -1269,7 +1268,7 @@ namespace System Static, } - // Generated from `System.ComponentModel.ProvidePropertyAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ProvidePropertyAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProvidePropertyAttribute : System.Attribute { public override bool Equals(object obj) => throw null; @@ -1281,7 +1280,7 @@ namespace System public override object TypeId { get => throw null; } } - // Generated from `System.ComponentModel.RecommendedAsConfigurableAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.RecommendedAsConfigurableAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RecommendedAsConfigurableAttribute : System.Attribute { public static System.ComponentModel.RecommendedAsConfigurableAttribute Default; @@ -1294,7 +1293,7 @@ namespace System public static System.ComponentModel.RecommendedAsConfigurableAttribute Yes; } - // Generated from `System.ComponentModel.ReferenceConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ReferenceConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReferenceConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -1307,7 +1306,7 @@ namespace System public ReferenceConverter(System.Type type) => throw null; } - // Generated from `System.ComponentModel.RefreshEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.RefreshEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RefreshEventArgs : System.EventArgs { public object ComponentChanged { get => throw null; } @@ -1316,10 +1315,10 @@ namespace System public System.Type TypeChanged { get => throw null; } } - // Generated from `System.ComponentModel.RefreshEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.RefreshEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void RefreshEventHandler(System.ComponentModel.RefreshEventArgs e); - // Generated from `System.ComponentModel.RunInstallerAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.RunInstallerAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RunInstallerAttribute : System.Attribute { public static System.ComponentModel.RunInstallerAttribute Default; @@ -1332,13 +1331,13 @@ namespace System public static System.ComponentModel.RunInstallerAttribute Yes; } - // Generated from `System.ComponentModel.SByteConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.SByteConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SByteConverter : System.ComponentModel.BaseNumberConverter { public SByteConverter() => throw null; } - // Generated from `System.ComponentModel.SettingsBindableAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.SettingsBindableAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SettingsBindableAttribute : System.Attribute { public bool Bindable { get => throw null; } @@ -1349,13 +1348,13 @@ namespace System public static System.ComponentModel.SettingsBindableAttribute Yes; } - // Generated from `System.ComponentModel.SingleConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.SingleConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SingleConverter : System.ComponentModel.BaseNumberConverter { public SingleConverter() => throw null; } - // Generated from `System.ComponentModel.StringConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.StringConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -1363,7 +1362,7 @@ namespace System public StringConverter() => throw null; } - // Generated from `System.ComponentModel.SyntaxCheck` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.SyntaxCheck` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class SyntaxCheck { public static bool CheckMachineName(string value) => throw null; @@ -1371,7 +1370,7 @@ namespace System public static bool CheckRootedPath(string value) => throw null; } - // Generated from `System.ComponentModel.TimeSpanConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.TimeSpanConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TimeSpanConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -1381,7 +1380,7 @@ namespace System public TimeSpanConverter() => throw null; } - // Generated from `System.ComponentModel.ToolboxItemAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ToolboxItemAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ToolboxItemAttribute : System.Attribute { public static System.ComponentModel.ToolboxItemAttribute Default; @@ -1396,7 +1395,7 @@ namespace System public string ToolboxItemTypeName { get => throw null; } } - // Generated from `System.ComponentModel.ToolboxItemFilterAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ToolboxItemFilterAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ToolboxItemFilterAttribute : System.Attribute { public override bool Equals(object obj) => throw null; @@ -1410,7 +1409,7 @@ namespace System public override object TypeId { get => throw null; } } - // Generated from `System.ComponentModel.ToolboxItemFilterType` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.ToolboxItemFilterType` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ToolboxItemFilterType { Allow, @@ -1419,10 +1418,10 @@ namespace System Require, } - // Generated from `System.ComponentModel.TypeConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.TypeConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeConverter { - // Generated from `System.ComponentModel.TypeConverter+SimplePropertyDescriptor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.TypeConverter+SimplePropertyDescriptor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` protected abstract class SimplePropertyDescriptor : System.ComponentModel.PropertyDescriptor { public override bool CanResetValue(object component) => throw null; @@ -1436,7 +1435,7 @@ namespace System } - // Generated from `System.ComponentModel.TypeConverter+StandardValuesCollection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.TypeConverter+StandardValuesCollection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StandardValuesCollection : System.Collections.ICollection, System.Collections.IEnumerable { public void CopyTo(System.Array array, int index) => throw null; @@ -1490,7 +1489,7 @@ namespace System public TypeConverter() => throw null; } - // Generated from `System.ComponentModel.TypeDescriptionProvider` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.TypeDescriptionProvider` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TypeDescriptionProvider { public virtual object CreateInstance(System.IServiceProvider provider, System.Type objectType, System.Type[] argTypes, object[] args) => throw null; @@ -1510,7 +1509,7 @@ namespace System protected TypeDescriptionProvider(System.ComponentModel.TypeDescriptionProvider parent) => throw null; } - // Generated from `System.ComponentModel.TypeDescriptor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.TypeDescriptor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeDescriptor { public static System.ComponentModel.TypeDescriptionProvider AddAttributes(System.Type type, params System.Attribute[] attributes) => throw null; @@ -1582,7 +1581,7 @@ namespace System public static void SortDescriptorArray(System.Collections.IList infos) => throw null; } - // Generated from `System.ComponentModel.TypeListConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.TypeListConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TypeListConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -1595,25 +1594,25 @@ namespace System protected TypeListConverter(System.Type[] types) => throw null; } - // Generated from `System.ComponentModel.UInt16Converter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.UInt16Converter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UInt16Converter : System.ComponentModel.BaseNumberConverter { public UInt16Converter() => throw null; } - // Generated from `System.ComponentModel.UInt32Converter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.UInt32Converter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UInt32Converter : System.ComponentModel.BaseNumberConverter { public UInt32Converter() => throw null; } - // Generated from `System.ComponentModel.UInt64Converter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.UInt64Converter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UInt64Converter : System.ComponentModel.BaseNumberConverter { public UInt64Converter() => throw null; } - // Generated from `System.ComponentModel.VersionConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.VersionConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class VersionConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -1624,7 +1623,7 @@ namespace System public VersionConverter() => throw null; } - // Generated from `System.ComponentModel.WarningException` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.WarningException` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class WarningException : System.SystemException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -1640,7 +1639,7 @@ namespace System namespace Design { - // Generated from `System.ComponentModel.Design.ActiveDesignerEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ActiveDesignerEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ActiveDesignerEventArgs : System.EventArgs { public ActiveDesignerEventArgs(System.ComponentModel.Design.IDesignerHost oldDesigner, System.ComponentModel.Design.IDesignerHost newDesigner) => throw null; @@ -1648,10 +1647,10 @@ namespace System public System.ComponentModel.Design.IDesignerHost OldDesigner { get => throw null; } } - // Generated from `System.ComponentModel.Design.ActiveDesignerEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ActiveDesignerEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ActiveDesignerEventHandler(object sender, System.ComponentModel.Design.ActiveDesignerEventArgs e); - // Generated from `System.ComponentModel.Design.CheckoutException` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.CheckoutException` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CheckoutException : System.Runtime.InteropServices.ExternalException { public static System.ComponentModel.Design.CheckoutException Canceled; @@ -1662,7 +1661,7 @@ namespace System public CheckoutException(string message, int errorCode) => throw null; } - // Generated from `System.ComponentModel.Design.CommandID` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.CommandID` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CommandID { public CommandID(System.Guid menuGroup, int commandID) => throw null; @@ -1673,7 +1672,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.ComponentModel.Design.ComponentChangedEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ComponentChangedEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComponentChangedEventArgs : System.EventArgs { public object Component { get => throw null; } @@ -1683,10 +1682,10 @@ namespace System public object OldValue { get => throw null; } } - // Generated from `System.ComponentModel.Design.ComponentChangedEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ComponentChangedEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ComponentChangedEventHandler(object sender, System.ComponentModel.Design.ComponentChangedEventArgs e); - // Generated from `System.ComponentModel.Design.ComponentChangingEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ComponentChangingEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComponentChangingEventArgs : System.EventArgs { public object Component { get => throw null; } @@ -1694,20 +1693,20 @@ namespace System public System.ComponentModel.MemberDescriptor Member { get => throw null; } } - // Generated from `System.ComponentModel.Design.ComponentChangingEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ComponentChangingEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ComponentChangingEventHandler(object sender, System.ComponentModel.Design.ComponentChangingEventArgs e); - // Generated from `System.ComponentModel.Design.ComponentEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ComponentEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComponentEventArgs : System.EventArgs { public virtual System.ComponentModel.IComponent Component { get => throw null; } public ComponentEventArgs(System.ComponentModel.IComponent component) => throw null; } - // Generated from `System.ComponentModel.Design.ComponentEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ComponentEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ComponentEventHandler(object sender, System.ComponentModel.Design.ComponentEventArgs e); - // Generated from `System.ComponentModel.Design.ComponentRenameEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ComponentRenameEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComponentRenameEventArgs : System.EventArgs { public object Component { get => throw null; } @@ -1716,10 +1715,10 @@ namespace System public virtual string OldName { get => throw null; } } - // Generated from `System.ComponentModel.Design.ComponentRenameEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ComponentRenameEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ComponentRenameEventHandler(object sender, System.ComponentModel.Design.ComponentRenameEventArgs e); - // Generated from `System.ComponentModel.Design.DesignerCollection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerCollection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerCollection : System.Collections.ICollection, System.Collections.IEnumerable { void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; @@ -1734,20 +1733,20 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.ComponentModel.Design.DesignerEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerEventArgs : System.EventArgs { public System.ComponentModel.Design.IDesignerHost Designer { get => throw null; } public DesignerEventArgs(System.ComponentModel.Design.IDesignerHost host) => throw null; } - // Generated from `System.ComponentModel.Design.DesignerEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void DesignerEventHandler(object sender, System.ComponentModel.Design.DesignerEventArgs e); - // Generated from `System.ComponentModel.Design.DesignerOptionService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerOptionService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DesignerOptionService : System.ComponentModel.Design.IDesignerOptionService { - // Generated from `System.ComponentModel.Design.DesignerOptionService+DesignerOptionCollection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerOptionService+DesignerOptionCollection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerOptionCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { int System.Collections.IList.Add(object value) => throw null; @@ -1784,7 +1783,7 @@ namespace System protected virtual bool ShowDialog(System.ComponentModel.Design.DesignerOptionService.DesignerOptionCollection options, object optionObject) => throw null; } - // Generated from `System.ComponentModel.Design.DesignerTransaction` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerTransaction` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DesignerTransaction : System.IDisposable { public void Cancel() => throw null; @@ -1801,7 +1800,7 @@ namespace System // ERR: Stub generator didn't handle member: ~DesignerTransaction } - // Generated from `System.ComponentModel.Design.DesignerTransactionCloseEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerTransactionCloseEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerTransactionCloseEventArgs : System.EventArgs { public DesignerTransactionCloseEventArgs(bool commit) => throw null; @@ -1810,10 +1809,10 @@ namespace System public bool TransactionCommitted { get => throw null; } } - // Generated from `System.ComponentModel.Design.DesignerTransactionCloseEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerTransactionCloseEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void DesignerTransactionCloseEventHandler(object sender, System.ComponentModel.Design.DesignerTransactionCloseEventArgs e); - // Generated from `System.ComponentModel.Design.DesignerVerb` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerVerb` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerVerb : System.ComponentModel.Design.MenuCommand { public string Description { get => throw null; set => throw null; } @@ -1823,7 +1822,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.ComponentModel.Design.DesignerVerbCollection` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesignerVerbCollection` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesignerVerbCollection : System.Collections.CollectionBase { public int Add(System.ComponentModel.Design.DesignerVerb value) => throw null; @@ -1836,15 +1835,11 @@ namespace System 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 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; protected override void OnValidate(object value) => throw null; public void Remove(System.ComponentModel.Design.DesignerVerb value) => throw null; } - // Generated from `System.ComponentModel.Design.DesigntimeLicenseContext` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesigntimeLicenseContext` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesigntimeLicenseContext : System.ComponentModel.LicenseContext { public DesigntimeLicenseContext() => throw null; @@ -1853,13 +1848,13 @@ namespace System public override System.ComponentModel.LicenseUsageMode UsageMode { get => throw null; } } - // Generated from `System.ComponentModel.Design.DesigntimeLicenseContextSerializer` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.DesigntimeLicenseContextSerializer` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DesigntimeLicenseContextSerializer { public static void Serialize(System.IO.Stream o, string cryptoKey, System.ComponentModel.Design.DesigntimeLicenseContext context) => throw null; } - // Generated from `System.ComponentModel.Design.HelpContextType` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.HelpContextType` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HelpContextType { Ambient, @@ -1868,7 +1863,7 @@ namespace System Window, } - // Generated from `System.ComponentModel.Design.HelpKeywordAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.HelpKeywordAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HelpKeywordAttribute : System.Attribute { public static System.ComponentModel.Design.HelpKeywordAttribute Default; @@ -1881,7 +1876,7 @@ namespace System public override bool IsDefaultAttribute() => throw null; } - // Generated from `System.ComponentModel.Design.HelpKeywordType` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.HelpKeywordType` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HelpKeywordType { F1Keyword, @@ -1889,7 +1884,7 @@ namespace System GeneralKeyword, } - // Generated from `System.ComponentModel.Design.IComponentChangeService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IComponentChangeService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IComponentChangeService { event System.ComponentModel.Design.ComponentEventHandler ComponentAdded; @@ -1903,20 +1898,20 @@ namespace System void OnComponentChanging(object component, System.ComponentModel.MemberDescriptor member); } - // Generated from `System.ComponentModel.Design.IComponentDiscoveryService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IComponentDiscoveryService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IComponentDiscoveryService { System.Collections.ICollection GetComponentTypes(System.ComponentModel.Design.IDesignerHost designerHost, System.Type baseType); } - // Generated from `System.ComponentModel.Design.IComponentInitializer` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IComponentInitializer` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IComponentInitializer { void InitializeExistingComponent(System.Collections.IDictionary defaultValues); void InitializeNewComponent(System.Collections.IDictionary defaultValues); } - // Generated from `System.ComponentModel.Design.IDesigner` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IDesigner` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesigner : System.IDisposable { System.ComponentModel.IComponent Component { get; } @@ -1925,7 +1920,7 @@ namespace System System.ComponentModel.Design.DesignerVerbCollection Verbs { get; } } - // Generated from `System.ComponentModel.Design.IDesignerEventService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IDesignerEventService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesignerEventService { System.ComponentModel.Design.IDesignerHost ActiveDesigner { get; } @@ -1936,7 +1931,7 @@ namespace System event System.EventHandler SelectionChanged; } - // Generated from `System.ComponentModel.Design.IDesignerFilter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IDesignerFilter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesignerFilter { void PostFilterAttributes(System.Collections.IDictionary attributes); @@ -1947,7 +1942,7 @@ namespace System void PreFilterProperties(System.Collections.IDictionary properties); } - // Generated from `System.ComponentModel.Design.IDesignerHost` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IDesignerHost` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesignerHost : System.ComponentModel.Design.IServiceContainer, System.IServiceProvider { void Activate(); @@ -1973,20 +1968,20 @@ namespace System event System.EventHandler TransactionOpening; } - // Generated from `System.ComponentModel.Design.IDesignerHostTransactionState` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IDesignerHostTransactionState` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesignerHostTransactionState { bool IsClosingTransaction { get; } } - // Generated from `System.ComponentModel.Design.IDesignerOptionService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IDesignerOptionService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesignerOptionService { object GetOptionValue(string pageName, string valueName); void SetOptionValue(string pageName, string valueName, object value); } - // Generated from `System.ComponentModel.Design.IDictionaryService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IDictionaryService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDictionaryService { object GetKey(object value); @@ -1994,7 +1989,7 @@ namespace System void SetValue(object key, object value); } - // Generated from `System.ComponentModel.Design.IEventBindingService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IEventBindingService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEventBindingService { string CreateUniqueMethodName(System.ComponentModel.IComponent component, System.ComponentModel.EventDescriptor e); @@ -2007,20 +2002,20 @@ namespace System bool ShowCode(int lineNumber); } - // Generated from `System.ComponentModel.Design.IExtenderListService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IExtenderListService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IExtenderListService { System.ComponentModel.IExtenderProvider[] GetExtenderProviders(); } - // Generated from `System.ComponentModel.Design.IExtenderProviderService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IExtenderProviderService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IExtenderProviderService { void AddExtenderProvider(System.ComponentModel.IExtenderProvider provider); void RemoveExtenderProvider(System.ComponentModel.IExtenderProvider provider); } - // Generated from `System.ComponentModel.Design.IHelpService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IHelpService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IHelpService { void AddContextAttribute(string name, string value, System.ComponentModel.Design.HelpKeywordType keywordType); @@ -2032,14 +2027,14 @@ namespace System void ShowHelpFromUrl(string helpUrl); } - // Generated from `System.ComponentModel.Design.IInheritanceService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IInheritanceService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IInheritanceService { void AddInheritedComponents(System.ComponentModel.IComponent component, System.ComponentModel.IContainer container); System.ComponentModel.InheritanceAttribute GetInheritanceAttribute(System.ComponentModel.IComponent component); } - // Generated from `System.ComponentModel.Design.IMenuCommandService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IMenuCommandService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IMenuCommandService { void AddCommand(System.ComponentModel.Design.MenuCommand command); @@ -2052,7 +2047,7 @@ namespace System System.ComponentModel.Design.DesignerVerbCollection Verbs { get; } } - // Generated from `System.ComponentModel.Design.IReferenceService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IReferenceService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IReferenceService { System.ComponentModel.IComponent GetComponent(object reference); @@ -2062,21 +2057,21 @@ namespace System object[] GetReferences(System.Type baseType); } - // Generated from `System.ComponentModel.Design.IResourceService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IResourceService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IResourceService { System.Resources.IResourceReader GetResourceReader(System.Globalization.CultureInfo info); System.Resources.IResourceWriter GetResourceWriter(System.Globalization.CultureInfo info); } - // Generated from `System.ComponentModel.Design.IRootDesigner` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IRootDesigner` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IRootDesigner : System.ComponentModel.Design.IDesigner, System.IDisposable { object GetView(System.ComponentModel.Design.ViewTechnology technology); System.ComponentModel.Design.ViewTechnology[] SupportedTechnologies { get; } } - // Generated from `System.ComponentModel.Design.ISelectionService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ISelectionService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISelectionService { bool GetComponentSelected(object component); @@ -2089,7 +2084,7 @@ namespace System void SetSelectedComponents(System.Collections.ICollection components, System.ComponentModel.Design.SelectionTypes selectionType); } - // Generated from `System.ComponentModel.Design.IServiceContainer` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.IServiceContainer` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IServiceContainer : System.IServiceProvider { void AddService(System.Type serviceType, System.ComponentModel.Design.ServiceCreatorCallback callback); @@ -2100,14 +2095,14 @@ namespace System void RemoveService(System.Type serviceType, bool promote); } - // Generated from `System.ComponentModel.Design.ITreeDesigner` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ITreeDesigner` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITreeDesigner : System.ComponentModel.Design.IDesigner, System.IDisposable { System.Collections.ICollection Children { get; } System.ComponentModel.Design.IDesigner Parent { get; } } - // Generated from `System.ComponentModel.Design.ITypeDescriptorFilterService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ITypeDescriptorFilterService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITypeDescriptorFilterService { bool FilterAttributes(System.ComponentModel.IComponent component, System.Collections.IDictionary attributes); @@ -2115,13 +2110,13 @@ namespace System bool FilterProperties(System.ComponentModel.IComponent component, System.Collections.IDictionary properties); } - // Generated from `System.ComponentModel.Design.ITypeDiscoveryService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ITypeDiscoveryService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITypeDiscoveryService { System.Collections.ICollection GetTypes(System.Type baseType, bool excludeGlobalTypes); } - // Generated from `System.ComponentModel.Design.ITypeResolutionService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ITypeResolutionService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITypeResolutionService { System.Reflection.Assembly GetAssembly(System.Reflection.AssemblyName name); @@ -2133,7 +2128,7 @@ namespace System void ReferenceAssembly(System.Reflection.AssemblyName name); } - // Generated from `System.ComponentModel.Design.MenuCommand` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.MenuCommand` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MenuCommand { public virtual bool Checked { get => throw null; set => throw null; } @@ -2151,7 +2146,7 @@ namespace System public virtual bool Visible { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.Design.SelectionTypes` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.SelectionTypes` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SelectionTypes { @@ -2168,7 +2163,7 @@ namespace System Valid, } - // Generated from `System.ComponentModel.Design.ServiceContainer` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ServiceContainer` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ServiceContainer : System.ComponentModel.Design.IServiceContainer, System.IDisposable, System.IServiceProvider { public void AddService(System.Type serviceType, System.ComponentModel.Design.ServiceCreatorCallback callback) => throw null; @@ -2185,10 +2180,10 @@ namespace System public ServiceContainer(System.IServiceProvider parentProvider) => throw null; } - // Generated from `System.ComponentModel.Design.ServiceCreatorCallback` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ServiceCreatorCallback` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate object ServiceCreatorCallback(System.ComponentModel.Design.IServiceContainer container, System.Type serviceType); - // Generated from `System.ComponentModel.Design.StandardCommands` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.StandardCommands` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StandardCommands { public static System.ComponentModel.Design.CommandID AlignBottom; @@ -2249,7 +2244,7 @@ namespace System public static System.ComponentModel.Design.CommandID ViewGrid; } - // Generated from `System.ComponentModel.Design.StandardToolWindows` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.StandardToolWindows` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StandardToolWindows { public static System.Guid ObjectBrowser; @@ -2263,7 +2258,7 @@ namespace System public static System.Guid Toolbox; } - // Generated from `System.ComponentModel.Design.TypeDescriptionProviderService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.TypeDescriptionProviderService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TypeDescriptionProviderService { public abstract System.ComponentModel.TypeDescriptionProvider GetProvider(System.Type type); @@ -2271,7 +2266,7 @@ namespace System protected TypeDescriptionProviderService() => throw null; } - // Generated from `System.ComponentModel.Design.ViewTechnology` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.ViewTechnology` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ViewTechnology { Default, @@ -2281,7 +2276,7 @@ namespace System namespace Serialization { - // Generated from `System.ComponentModel.Design.Serialization.ComponentSerializationService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.ComponentSerializationService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ComponentSerializationService { protected ComponentSerializationService() => throw null; @@ -2298,7 +2293,7 @@ namespace System public abstract void SerializeMemberAbsolute(System.ComponentModel.Design.Serialization.SerializationStore store, object owningObject, System.ComponentModel.MemberDescriptor member); } - // Generated from `System.ComponentModel.Design.Serialization.ContextStack` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.ContextStack` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContextStack { public void Append(object context) => throw null; @@ -2310,7 +2305,7 @@ namespace System public void Push(object context) => throw null; } - // Generated from `System.ComponentModel.Design.Serialization.DefaultSerializationProviderAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.DefaultSerializationProviderAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultSerializationProviderAttribute : System.Attribute { public DefaultSerializationProviderAttribute(System.Type providerType) => throw null; @@ -2318,7 +2313,7 @@ namespace System public string ProviderTypeName { get => throw null; } } - // Generated from `System.ComponentModel.Design.Serialization.DesignerLoader` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.DesignerLoader` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DesignerLoader { public abstract void BeginLoad(System.ComponentModel.Design.Serialization.IDesignerLoaderHost host); @@ -2328,21 +2323,21 @@ namespace System public virtual bool Loading { get => throw null; } } - // Generated from `System.ComponentModel.Design.Serialization.IDesignerLoaderHost` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.IDesignerLoaderHost` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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(); } - // Generated from `System.ComponentModel.Design.Serialization.IDesignerLoaderHost2` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.IDesignerLoaderHost2` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } } - // Generated from `System.ComponentModel.Design.Serialization.IDesignerLoaderService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.IDesignerLoaderService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesignerLoaderService { void AddLoadDependency(); @@ -2350,7 +2345,7 @@ namespace System bool Reload(); } - // Generated from `System.ComponentModel.Design.Serialization.IDesignerSerializationManager` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.IDesignerSerializationManager` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesignerSerializationManager : System.IServiceProvider { void AddSerializationProvider(System.ComponentModel.Design.Serialization.IDesignerSerializationProvider provider); @@ -2368,20 +2363,20 @@ namespace System void SetName(object instance, string name); } - // Generated from `System.ComponentModel.Design.Serialization.IDesignerSerializationProvider` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.IDesignerSerializationProvider` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesignerSerializationProvider { object GetSerializer(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object currentSerializer, System.Type objectType, System.Type serializerType); } - // Generated from `System.ComponentModel.Design.Serialization.IDesignerSerializationService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.IDesignerSerializationService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDesignerSerializationService { System.Collections.ICollection Deserialize(object serializationData); object Serialize(System.Collections.ICollection objects); } - // Generated from `System.ComponentModel.Design.Serialization.INameCreationService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.INameCreationService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INameCreationService { string CreateName(System.ComponentModel.IContainer container, System.Type dataType); @@ -2389,7 +2384,7 @@ namespace System void ValidateName(string name); } - // Generated from `System.ComponentModel.Design.Serialization.InstanceDescriptor` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.InstanceDescriptor` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InstanceDescriptor { public System.Collections.ICollection Arguments { get => throw null; } @@ -2400,7 +2395,7 @@ namespace System public System.Reflection.MemberInfo MemberInfo { get => throw null; } } - // Generated from `System.ComponentModel.Design.Serialization.MemberRelationship` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.MemberRelationship` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MemberRelationship { public static bool operator !=(System.ComponentModel.Design.Serialization.MemberRelationship left, System.ComponentModel.Design.Serialization.MemberRelationship right) => throw null; @@ -2415,7 +2410,7 @@ namespace System public object Owner { get => throw null; } } - // Generated from `System.ComponentModel.Design.Serialization.MemberRelationshipService` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.MemberRelationshipService` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MemberRelationshipService { protected virtual System.ComponentModel.Design.Serialization.MemberRelationship GetRelationship(System.ComponentModel.Design.Serialization.MemberRelationship source) => throw null; @@ -2426,7 +2421,7 @@ namespace System public abstract bool SupportsRelationship(System.ComponentModel.Design.Serialization.MemberRelationship source, System.ComponentModel.Design.Serialization.MemberRelationship relationship); } - // Generated from `System.ComponentModel.Design.Serialization.ResolveNameEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.ResolveNameEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ResolveNameEventArgs : System.EventArgs { public string Name { get => throw null; } @@ -2434,10 +2429,10 @@ namespace System public object Value { get => throw null; set => throw null; } } - // Generated from `System.ComponentModel.Design.Serialization.ResolveNameEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.ResolveNameEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ResolveNameEventHandler(object sender, System.ComponentModel.Design.Serialization.ResolveNameEventArgs e); - // Generated from `System.ComponentModel.Design.Serialization.RootDesignerSerializerAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.RootDesignerSerializerAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RootDesignerSerializerAttribute : System.Attribute { public bool Reloadable { get => throw null; } @@ -2449,7 +2444,7 @@ namespace System public override object TypeId { get => throw null; } } - // Generated from `System.ComponentModel.Design.Serialization.SerializationStore` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.Design.Serialization.SerializationStore` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SerializationStore : System.IDisposable { public abstract void Close(); @@ -2465,7 +2460,7 @@ namespace System } namespace Drawing { - // Generated from `System.Drawing.ColorConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.ColorConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ColorConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -2477,7 +2472,7 @@ namespace System public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; } - // Generated from `System.Drawing.PointConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.PointConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PointConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -2491,7 +2486,7 @@ namespace System public PointConverter() => throw null; } - // Generated from `System.Drawing.RectangleConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.RectangleConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RectangleConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -2505,7 +2500,7 @@ namespace System public RectangleConverter() => throw null; } - // Generated from `System.Drawing.SizeConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.SizeConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SizeConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -2519,7 +2514,7 @@ namespace System public SizeConverter() => throw null; } - // Generated from `System.Drawing.SizeFConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.SizeFConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SizeFConverter : System.ComponentModel.TypeConverter { public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType) => throw null; @@ -2540,7 +2535,7 @@ namespace System { namespace ExtendedProtection { - // Generated from `System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicyTypeConverter` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicyTypeConverter` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExtendedProtectionPolicyTypeConverter : System.ComponentModel.TypeConverter { public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType) => throw null; @@ -2553,16 +2548,16 @@ namespace System } namespace Timers { - // Generated from `System.Timers.ElapsedEventArgs` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Timers.ElapsedEventArgs` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ElapsedEventArgs : System.EventArgs { public System.DateTime SignalTime { get => throw null; } } - // Generated from `System.Timers.ElapsedEventHandler` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Timers.ElapsedEventHandler` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ElapsedEventHandler(object sender, System.Timers.ElapsedEventArgs e); - // Generated from `System.Timers.Timer` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Timers.Timer` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Timer : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize { public bool AutoReset { get => throw null; set => throw null; } @@ -2581,7 +2576,7 @@ namespace System public Timer(double interval) => throw null; } - // Generated from `System.Timers.TimersDescriptionAttribute` in `System.ComponentModel.TypeConverter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Timers.TimersDescriptionAttribute` in `System.ComponentModel.TypeConverter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TimersDescriptionAttribute : System.ComponentModel.DescriptionAttribute { public override string Description { get => 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 ebb79a11b3e..39e22fba8d0 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 @@ -2,7 +2,7 @@ namespace System { - // Generated from `System.IServiceProvider` in `System.ComponentModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IServiceProvider` in `System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IServiceProvider { object GetService(System.Type serviceType); @@ -10,7 +10,7 @@ namespace System namespace ComponentModel { - // Generated from `System.ComponentModel.CancelEventArgs` in `System.ComponentModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.CancelEventArgs` in `System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CancelEventArgs : System.EventArgs { public bool Cancel { get => throw null; set => throw null; } @@ -18,14 +18,14 @@ namespace System public CancelEventArgs(bool cancel) => throw null; } - // Generated from `System.ComponentModel.IChangeTracking` in `System.ComponentModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IChangeTracking` in `System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IChangeTracking { void AcceptChanges(); bool IsChanged { get; } } - // Generated from `System.ComponentModel.IEditableObject` in `System.ComponentModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IEditableObject` in `System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEditableObject { void BeginEdit(); @@ -33,7 +33,7 @@ namespace System void EndEdit(); } - // Generated from `System.ComponentModel.IRevertibleChangeTracking` in `System.ComponentModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.IRevertibleChangeTracking` in `System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IRevertibleChangeTracking : System.ComponentModel.IChangeTracking { void RejectChanges(); 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 d711ada13b5..a3c9f3f9ae2 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 @@ -2,7 +2,7 @@ namespace System { - // Generated from `System.Console` in `System.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Console` in `System.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Console { public static System.ConsoleColor BackgroundColor { get => throw null; set => throw null; } @@ -94,17 +94,17 @@ namespace System public static void WriteLine(System.UInt64 value) => throw null; } - // Generated from `System.ConsoleCancelEventArgs` in `System.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ConsoleCancelEventArgs` in `System.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConsoleCancelEventArgs : System.EventArgs { public bool Cancel { get => throw null; set => throw null; } public System.ConsoleSpecialKey SpecialKey { get => throw null; } } - // Generated from `System.ConsoleCancelEventHandler` in `System.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ConsoleCancelEventHandler` in `System.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ConsoleCancelEventHandler(object sender, System.ConsoleCancelEventArgs e); - // Generated from `System.ConsoleColor` in `System.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ConsoleColor` in `System.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ConsoleColor { Black, @@ -125,7 +125,7 @@ namespace System Yellow, } - // Generated from `System.ConsoleKey` in `System.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ConsoleKey` in `System.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ConsoleKey { A, @@ -274,7 +274,7 @@ namespace System Zoom, } - // Generated from `System.ConsoleKeyInfo` in `System.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ConsoleKeyInfo` in `System.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConsoleKeyInfo : System.IEquatable { public static bool operator !=(System.ConsoleKeyInfo a, System.ConsoleKeyInfo b) => throw null; @@ -289,7 +289,7 @@ namespace System public System.ConsoleModifiers Modifiers { get => throw null; } } - // Generated from `System.ConsoleModifiers` in `System.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ConsoleModifiers` in `System.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ConsoleModifiers { @@ -298,7 +298,7 @@ namespace System Shift, } - // Generated from `System.ConsoleSpecialKey` in `System.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ConsoleSpecialKey` in `System.Console, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ConsoleSpecialKey { ControlBreak, 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 efb505cfe8e..43b60f84c73 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 @@ -4,14 +4,14 @@ namespace System { namespace Data { - // Generated from `System.Data.AcceptRejectRule` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.AcceptRejectRule` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AcceptRejectRule { Cascade, None, } - // Generated from `System.Data.CommandBehavior` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.CommandBehavior` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CommandBehavior { @@ -24,7 +24,7 @@ namespace System SingleRow, } - // Generated from `System.Data.CommandType` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.CommandType` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CommandType { StoredProcedure, @@ -32,7 +32,7 @@ namespace System Text, } - // Generated from `System.Data.ConflictOption` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.ConflictOption` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ConflictOption { CompareAllSearchableValues, @@ -40,7 +40,7 @@ namespace System OverwriteChanges, } - // Generated from `System.Data.ConnectionState` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.ConnectionState` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ConnectionState { @@ -52,7 +52,7 @@ namespace System Open, } - // Generated from `System.Data.Constraint` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Constraint` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Constraint { protected void CheckStateForProperty() => throw null; @@ -65,7 +65,7 @@ namespace System protected virtual System.Data.DataSet _DataSet { get => throw null; } } - // Generated from `System.Data.ConstraintCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.ConstraintCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConstraintCollection : System.Data.InternalDataCollectionBase { public void Add(System.Data.Constraint constraint) => throw null; @@ -89,7 +89,7 @@ namespace System public void RemoveAt(int index) => throw null; } - // Generated from `System.Data.ConstraintException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.ConstraintException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConstraintException : System.Data.DataException { public ConstraintException() => throw null; @@ -98,7 +98,7 @@ namespace System public ConstraintException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.DBConcurrencyException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DBConcurrencyException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DBConcurrencyException : System.SystemException { public void CopyToRows(System.Data.DataRow[] array) => throw null; @@ -112,7 +112,7 @@ namespace System public int RowCount { get => throw null; } } - // Generated from `System.Data.DataColumn` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataColumn` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataColumn : System.ComponentModel.MarshalByValueComponent { public bool AllowDBNull { get => throw null; set => throw null; } @@ -147,7 +147,7 @@ namespace System public bool Unique { get => throw null; set => throw null; } } - // Generated from `System.Data.DataColumnChangeEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataColumnChangeEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataColumnChangeEventArgs : System.EventArgs { public System.Data.DataColumn Column { get => throw null; } @@ -156,10 +156,10 @@ namespace System public System.Data.DataRow Row { get => throw null; } } - // Generated from `System.Data.DataColumnChangeEventHandler` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataColumnChangeEventHandler` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void DataColumnChangeEventHandler(object sender, System.Data.DataColumnChangeEventArgs e); - // Generated from `System.Data.DataColumnCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataColumnCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataColumnCollection : System.Data.InternalDataCollectionBase { public System.Data.DataColumn Add() => throw null; @@ -183,7 +183,7 @@ namespace System public void RemoveAt(int index) => throw null; } - // Generated from `System.Data.DataException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataException : System.SystemException { public DataException() => throw null; @@ -192,7 +192,7 @@ namespace System public DataException(string s, System.Exception innerException) => throw null; } - // Generated from `System.Data.DataReaderExtensions` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataReaderExtensions` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class DataReaderExtensions { public static bool GetBoolean(this System.Data.Common.DbDataReader reader, string name) => throw null; @@ -223,7 +223,7 @@ namespace System 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; } - // Generated from `System.Data.DataRelation` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRelation` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataRelation { protected void CheckStateForProperty() => throw null; @@ -248,7 +248,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Data.DataRelationCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRelationCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DataRelationCollection : System.Data.InternalDataCollectionBase { public virtual System.Data.DataRelation Add(System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn) => throw null; @@ -279,7 +279,7 @@ namespace System protected virtual void RemoveCore(System.Data.DataRelation relation) => throw null; } - // Generated from `System.Data.DataRow` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRow` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataRow { public void AcceptChanges() => throw null; @@ -332,7 +332,7 @@ namespace System public System.Data.DataTable Table { get => throw null; } } - // Generated from `System.Data.DataRowAction` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowAction` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DataRowAction { @@ -346,12 +346,12 @@ namespace System Rollback, } - // Generated from `System.Data.DataRowBuilder` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowBuilder` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataRowBuilder { } - // Generated from `System.Data.DataRowChangeEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowChangeEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataRowChangeEventArgs : System.EventArgs { public System.Data.DataRowAction Action { get => throw null; } @@ -359,10 +359,10 @@ namespace System public System.Data.DataRow Row { get => throw null; } } - // Generated from `System.Data.DataRowChangeEventHandler` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowChangeEventHandler` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void DataRowChangeEventHandler(object sender, System.Data.DataRowChangeEventArgs e); - // Generated from `System.Data.DataRowCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataRowCollection : System.Data.InternalDataCollectionBase { public void Add(System.Data.DataRow row) => throw null; @@ -383,13 +383,13 @@ namespace System public void RemoveAt(int index) => throw null; } - // Generated from `System.Data.DataRowComparer` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowComparer` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class DataRowComparer { public static System.Data.DataRowComparer Default { get => throw null; } } - // Generated from `System.Data.DataRowComparer<>` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowComparer<>` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataRowComparer : System.Collections.Generic.IEqualityComparer where TRow : System.Data.DataRow { public static System.Data.DataRowComparer Default { get => throw null; } @@ -397,7 +397,7 @@ namespace System public int GetHashCode(TRow row) => throw null; } - // Generated from `System.Data.DataRowExtensions` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowExtensions` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class DataRowExtensions { public static T Field(this System.Data.DataRow row, System.Data.DataColumn column) => throw null; @@ -411,7 +411,7 @@ namespace System public static void SetField(this System.Data.DataRow row, string columnName, T value) => throw null; } - // Generated from `System.Data.DataRowState` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowState` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DataRowState { @@ -422,7 +422,7 @@ namespace System Unchanged, } - // Generated from `System.Data.DataRowVersion` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowVersion` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DataRowVersion { Current, @@ -431,7 +431,7 @@ namespace System Proposed, } - // Generated from `System.Data.DataRowView` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataRowView` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataRowView : System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.IDataErrorInfo, System.ComponentModel.IEditableObject, System.ComponentModel.INotifyPropertyChanged { public void BeginEdit() => throw null; @@ -468,7 +468,7 @@ namespace System public System.Data.DataRowVersion RowVersion { get => throw null; } } - // Generated from `System.Data.DataSet` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataSet` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -572,7 +572,7 @@ namespace System public void WriteXmlSchema(string fileName, System.Converter multipleTargetConverter) => throw null; } - // Generated from `System.Data.DataSetDateTime` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataSetDateTime` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DataSetDateTime { Local, @@ -581,14 +581,14 @@ namespace System Utc, } - // Generated from `System.Data.DataSysDescriptionAttribute` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataSysDescriptionAttribute` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataSysDescriptionAttribute : System.ComponentModel.DescriptionAttribute { public DataSysDescriptionAttribute(string description) => throw null; public override string Description { get => throw null; } } - // Generated from `System.Data.DataTable` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataTable` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -714,7 +714,7 @@ namespace System protected internal bool fInitInProgress; } - // Generated from `System.Data.DataTableClearEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataTableClearEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataTableClearEventArgs : System.EventArgs { public DataTableClearEventArgs(System.Data.DataTable dataTable) => throw null; @@ -723,10 +723,10 @@ namespace System public string TableNamespace { get => throw null; } } - // Generated from `System.Data.DataTableClearEventHandler` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataTableClearEventHandler` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void DataTableClearEventHandler(object sender, System.Data.DataTableClearEventArgs e); - // Generated from `System.Data.DataTableCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataTableCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataTableCollection : System.Data.InternalDataCollectionBase { public System.Data.DataTable Add() => throw null; @@ -754,7 +754,7 @@ namespace System public void RemoveAt(int index) => throw null; } - // Generated from `System.Data.DataTableExtensions` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataTableExtensions` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class DataTableExtensions { public static System.Data.DataView AsDataView(this System.Data.DataTable table) => throw null; @@ -765,17 +765,17 @@ namespace System 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; } - // Generated from `System.Data.DataTableNewRowEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataTableNewRowEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataTableNewRowEventArgs : System.EventArgs { public DataTableNewRowEventArgs(System.Data.DataRow dataRow) => throw null; public System.Data.DataRow Row { get => throw null; } } - // Generated from `System.Data.DataTableNewRowEventHandler` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataTableNewRowEventHandler` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void DataTableNewRowEventHandler(object sender, System.Data.DataTableNewRowEventArgs e); - // Generated from `System.Data.DataTableReader` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataTableReader` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataTableReader : System.Data.Common.DbDataReader { public override void Close() => throw null; @@ -818,7 +818,7 @@ namespace System public override int RecordsAffected { get => throw null; } } - // Generated from `System.Data.DataView` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataView` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -900,7 +900,7 @@ namespace System protected virtual void UpdateIndex(bool force) => throw null; } - // Generated from `System.Data.DataViewManager` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataViewManager` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -947,7 +947,7 @@ namespace System protected virtual void TableCollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) => throw null; } - // Generated from `System.Data.DataViewRowState` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataViewRowState` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DataViewRowState { @@ -961,7 +961,7 @@ namespace System Unchanged, } - // Generated from `System.Data.DataViewSetting` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataViewSetting` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataViewSetting { public bool ApplyDefaultSort { get => throw null; set => throw null; } @@ -972,7 +972,7 @@ namespace System public System.Data.DataTable Table { get => throw null; } } - // Generated from `System.Data.DataViewSettingCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DataViewSettingCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataViewSettingCollection : System.Collections.ICollection, System.Collections.IEnumerable { public void CopyTo(System.Array ar, int index) => throw null; @@ -987,7 +987,7 @@ namespace System public object SyncRoot { get => throw null; } } - // Generated from `System.Data.DbType` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DbType` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DbType { AnsiString, @@ -1019,7 +1019,7 @@ namespace System Xml, } - // Generated from `System.Data.DeletedRowInaccessibleException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DeletedRowInaccessibleException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DeletedRowInaccessibleException : System.Data.DataException { public DeletedRowInaccessibleException() => throw null; @@ -1028,7 +1028,7 @@ namespace System public DeletedRowInaccessibleException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.DuplicateNameException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.DuplicateNameException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DuplicateNameException : System.Data.DataException { public DuplicateNameException() => throw null; @@ -1037,14 +1037,14 @@ namespace System public DuplicateNameException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.EnumerableRowCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.EnumerableRowCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EnumerableRowCollection : System.Collections.IEnumerable { internal EnumerableRowCollection() => throw null; System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Data.EnumerableRowCollection<>` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.EnumerableRowCollection<>` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EnumerableRowCollection : System.Data.EnumerableRowCollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { internal EnumerableRowCollection() => throw null; @@ -1052,7 +1052,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Data.EnumerableRowCollectionExtensions` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.EnumerableRowCollectionExtensions` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class EnumerableRowCollectionExtensions { public static System.Data.EnumerableRowCollection Cast(this System.Data.EnumerableRowCollection source) => throw null; @@ -1068,7 +1068,7 @@ namespace System public static System.Data.EnumerableRowCollection Where(this System.Data.EnumerableRowCollection source, System.Func predicate) => throw null; } - // Generated from `System.Data.EvaluateException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.EvaluateException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EvaluateException : System.Data.InvalidExpressionException { public EvaluateException() => throw null; @@ -1077,7 +1077,7 @@ namespace System public EvaluateException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.FillErrorEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.FillErrorEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FillErrorEventArgs : System.EventArgs { public bool Continue { get => throw null; set => throw null; } @@ -1087,10 +1087,10 @@ namespace System public object[] Values { get => throw null; } } - // Generated from `System.Data.FillErrorEventHandler` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.FillErrorEventHandler` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void FillErrorEventHandler(object sender, System.Data.FillErrorEventArgs e); - // Generated from `System.Data.ForeignKeyConstraint` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.ForeignKeyConstraint` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ForeignKeyConstraint : System.Data.Constraint { public virtual System.Data.AcceptRejectRule AcceptRejectRule { get => throw null; set => throw null; } @@ -1110,14 +1110,14 @@ namespace System public virtual System.Data.Rule UpdateRule { get => throw null; set => throw null; } } - // Generated from `System.Data.IColumnMapping` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IColumnMapping` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IColumnMapping { string DataSetColumn { get; set; } string SourceColumn { get; set; } } - // Generated from `System.Data.IColumnMappingCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IColumnMappingCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IColumnMappingCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { System.Data.IColumnMapping Add(string sourceColumnName, string dataSetColumnName); @@ -1128,7 +1128,7 @@ namespace System void RemoveAt(string sourceColumnName); } - // Generated from `System.Data.IDataAdapter` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDataAdapter` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDataAdapter { int Fill(System.Data.DataSet dataSet); @@ -1140,7 +1140,7 @@ namespace System int Update(System.Data.DataSet dataSet); } - // Generated from `System.Data.IDataParameter` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDataParameter` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDataParameter { System.Data.DbType DbType { get; set; } @@ -1152,7 +1152,7 @@ namespace System object Value { get; set; } } - // Generated from `System.Data.IDataParameterCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDataParameterCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDataParameterCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { bool Contains(string parameterName); @@ -1161,7 +1161,7 @@ namespace System void RemoveAt(string parameterName); } - // Generated from `System.Data.IDataReader` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDataReader` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDataReader : System.Data.IDataRecord, System.IDisposable { void Close(); @@ -1173,7 +1173,7 @@ namespace System int RecordsAffected { get; } } - // Generated from `System.Data.IDataRecord` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDataRecord` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDataRecord { int FieldCount { get; } @@ -1203,7 +1203,7 @@ namespace System object this[string name] { get; } } - // Generated from `System.Data.IDbCommand` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDbCommand` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDbCommand : System.IDisposable { void Cancel(); @@ -1222,7 +1222,7 @@ namespace System System.Data.UpdateRowSource UpdatedRowSource { get; set; } } - // Generated from `System.Data.IDbConnection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDbConnection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDbConnection : System.IDisposable { System.Data.IDbTransaction BeginTransaction(); @@ -1237,7 +1237,7 @@ namespace System System.Data.ConnectionState State { get; } } - // Generated from `System.Data.IDbDataAdapter` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDbDataAdapter` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDbDataAdapter : System.Data.IDataAdapter { System.Data.IDbCommand DeleteCommand { get; set; } @@ -1246,7 +1246,7 @@ namespace System System.Data.IDbCommand UpdateCommand { get; set; } } - // Generated from `System.Data.IDbDataParameter` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDbDataParameter` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDbDataParameter : System.Data.IDataParameter { System.Byte Precision { get; set; } @@ -1254,7 +1254,7 @@ namespace System int Size { get; set; } } - // Generated from `System.Data.IDbTransaction` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IDbTransaction` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDbTransaction : System.IDisposable { void Commit(); @@ -1263,7 +1263,7 @@ namespace System void Rollback(); } - // Generated from `System.Data.ITableMapping` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.ITableMapping` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITableMapping { System.Data.IColumnMappingCollection ColumnMappings { get; } @@ -1271,7 +1271,7 @@ namespace System string SourceTable { get; set; } } - // Generated from `System.Data.ITableMappingCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.ITableMappingCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITableMappingCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { System.Data.ITableMapping Add(string sourceTableName, string dataSetTableName); @@ -1282,7 +1282,7 @@ namespace System void RemoveAt(string sourceTableName); } - // Generated from `System.Data.InRowChangingEventException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.InRowChangingEventException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InRowChangingEventException : System.Data.DataException { public InRowChangingEventException() => throw null; @@ -1291,7 +1291,7 @@ namespace System public InRowChangingEventException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.InternalDataCollectionBase` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.InternalDataCollectionBase` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InternalDataCollectionBase : System.Collections.ICollection, System.Collections.IEnumerable { public virtual void CopyTo(System.Array ar, int index) => throw null; @@ -1304,7 +1304,7 @@ namespace System public object SyncRoot { get => throw null; } } - // Generated from `System.Data.InvalidConstraintException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.InvalidConstraintException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidConstraintException : System.Data.DataException { public InvalidConstraintException() => throw null; @@ -1313,7 +1313,7 @@ namespace System public InvalidConstraintException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.InvalidExpressionException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.InvalidExpressionException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidExpressionException : System.Data.DataException { public InvalidExpressionException() => throw null; @@ -1322,7 +1322,7 @@ namespace System public InvalidExpressionException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.IsolationLevel` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.IsolationLevel` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum IsolationLevel { Chaos, @@ -1334,14 +1334,14 @@ namespace System Unspecified, } - // Generated from `System.Data.KeyRestrictionBehavior` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.KeyRestrictionBehavior` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum KeyRestrictionBehavior { AllowOnly, PreventUsage, } - // Generated from `System.Data.LoadOption` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.LoadOption` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum LoadOption { OverwriteChanges, @@ -1349,7 +1349,7 @@ namespace System Upsert, } - // Generated from `System.Data.MappingType` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.MappingType` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MappingType { Attribute, @@ -1358,7 +1358,7 @@ namespace System SimpleContent, } - // Generated from `System.Data.MergeFailedEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.MergeFailedEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MergeFailedEventArgs : System.EventArgs { public string Conflict { get => throw null; } @@ -1366,10 +1366,10 @@ namespace System public System.Data.DataTable Table { get => throw null; } } - // Generated from `System.Data.MergeFailedEventHandler` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.MergeFailedEventHandler` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void MergeFailedEventHandler(object sender, System.Data.MergeFailedEventArgs e); - // Generated from `System.Data.MissingMappingAction` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.MissingMappingAction` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MissingMappingAction { Error, @@ -1377,7 +1377,7 @@ namespace System Passthrough, } - // Generated from `System.Data.MissingPrimaryKeyException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.MissingPrimaryKeyException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MissingPrimaryKeyException : System.Data.DataException { public MissingPrimaryKeyException() => throw null; @@ -1386,7 +1386,7 @@ namespace System public MissingPrimaryKeyException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.MissingSchemaAction` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.MissingSchemaAction` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MissingSchemaAction { Add, @@ -1395,7 +1395,7 @@ namespace System Ignore, } - // Generated from `System.Data.NoNullAllowedException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.NoNullAllowedException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NoNullAllowedException : System.Data.DataException { public NoNullAllowedException() => throw null; @@ -1404,12 +1404,12 @@ namespace System public NoNullAllowedException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.OrderedEnumerableRowCollection<>` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.OrderedEnumerableRowCollection<>` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OrderedEnumerableRowCollection : System.Data.EnumerableRowCollection { } - // Generated from `System.Data.ParameterDirection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.ParameterDirection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ParameterDirection { Input, @@ -1418,7 +1418,7 @@ namespace System ReturnValue, } - // Generated from `System.Data.PropertyCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.PropertyCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PropertyCollection : System.Collections.Hashtable, System.ICloneable { public override object Clone() => throw null; @@ -1426,7 +1426,7 @@ namespace System protected PropertyCollection(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - // Generated from `System.Data.ReadOnlyException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.ReadOnlyException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReadOnlyException : System.Data.DataException { public ReadOnlyException() => throw null; @@ -1435,7 +1435,7 @@ namespace System public ReadOnlyException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.RowNotInTableException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.RowNotInTableException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RowNotInTableException : System.Data.DataException { public RowNotInTableException() => throw null; @@ -1444,7 +1444,7 @@ namespace System public RowNotInTableException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.Rule` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Rule` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum Rule { Cascade, @@ -1453,28 +1453,28 @@ namespace System SetNull, } - // Generated from `System.Data.SchemaSerializationMode` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SchemaSerializationMode` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SchemaSerializationMode { ExcludeSchema, IncludeSchema, } - // Generated from `System.Data.SchemaType` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SchemaType` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SchemaType { Mapped, Source, } - // Generated from `System.Data.SerializationFormat` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SerializationFormat` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SerializationFormat { Binary, Xml, } - // Generated from `System.Data.SqlDbType` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlDbType` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SqlDbType { BigInt, @@ -1510,7 +1510,7 @@ namespace System Xml, } - // Generated from `System.Data.StateChangeEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.StateChangeEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StateChangeEventArgs : System.EventArgs { public System.Data.ConnectionState CurrentState { get => throw null; } @@ -1518,20 +1518,20 @@ namespace System public StateChangeEventArgs(System.Data.ConnectionState originalState, System.Data.ConnectionState currentState) => throw null; } - // Generated from `System.Data.StateChangeEventHandler` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.StateChangeEventHandler` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void StateChangeEventHandler(object sender, System.Data.StateChangeEventArgs e); - // Generated from `System.Data.StatementCompletedEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.StatementCompletedEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StatementCompletedEventArgs : System.EventArgs { public int RecordCount { get => throw null; } public StatementCompletedEventArgs(int recordCount) => throw null; } - // Generated from `System.Data.StatementCompletedEventHandler` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.StatementCompletedEventHandler` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void StatementCompletedEventHandler(object sender, System.Data.StatementCompletedEventArgs e); - // Generated from `System.Data.StatementType` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.StatementType` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum StatementType { Batch, @@ -1541,7 +1541,7 @@ namespace System Update, } - // Generated from `System.Data.StrongTypingException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.StrongTypingException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StrongTypingException : System.Data.DataException { public StrongTypingException() => throw null; @@ -1550,7 +1550,7 @@ namespace System public StrongTypingException(string s, System.Exception innerException) => throw null; } - // Generated from `System.Data.SyntaxErrorException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SyntaxErrorException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SyntaxErrorException : System.Data.InvalidExpressionException { public SyntaxErrorException() => throw null; @@ -1559,7 +1559,7 @@ namespace System public SyntaxErrorException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.TypedTableBase<>` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.TypedTableBase<>` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -1569,7 +1569,7 @@ namespace System protected TypedTableBase(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - // Generated from `System.Data.TypedTableBaseExtensions` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.TypedTableBaseExtensions` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class TypedTableBaseExtensions { public static System.Data.EnumerableRowCollection AsEnumerable(this System.Data.TypedTableBase source) where TRow : System.Data.DataRow => throw null; @@ -1582,7 +1582,7 @@ namespace System public static System.Data.EnumerableRowCollection Where(this System.Data.TypedTableBase source, System.Func predicate) where TRow : System.Data.DataRow => throw null; } - // Generated from `System.Data.UniqueConstraint` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.UniqueConstraint` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UniqueConstraint : System.Data.Constraint { public virtual System.Data.DataColumn[] Columns { get => throw null; } @@ -1601,7 +1601,7 @@ namespace System public UniqueConstraint(string name, string[] columnNames, bool isPrimaryKey) => throw null; } - // Generated from `System.Data.UpdateRowSource` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.UpdateRowSource` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UpdateRowSource { Both, @@ -1610,7 +1610,7 @@ namespace System OutputParameters, } - // Generated from `System.Data.UpdateStatus` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.UpdateStatus` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UpdateStatus { Continue, @@ -1619,7 +1619,7 @@ namespace System SkipCurrentRow, } - // Generated from `System.Data.VersionNotFoundException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.VersionNotFoundException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class VersionNotFoundException : System.Data.DataException { public VersionNotFoundException() => throw null; @@ -1628,7 +1628,7 @@ namespace System public VersionNotFoundException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Data.XmlReadMode` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.XmlReadMode` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlReadMode { Auto, @@ -1640,7 +1640,7 @@ namespace System ReadSchema, } - // Generated from `System.Data.XmlWriteMode` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.XmlWriteMode` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlWriteMode { DiffGram, @@ -1650,14 +1650,14 @@ namespace System namespace Common { - // Generated from `System.Data.Common.CatalogLocation` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.CatalogLocation` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CatalogLocation { End, Start, } - // Generated from `System.Data.Common.DataAdapter` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DataAdapter` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataAdapter : System.ComponentModel.Component, System.Data.IDataAdapter { public bool AcceptChangesDuringFill { get => throw null; set => throw null; } @@ -1692,7 +1692,7 @@ namespace System public virtual int Update(System.Data.DataSet dataSet) => throw null; } - // Generated from `System.Data.Common.DataColumnMapping` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DataColumnMapping` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataColumnMapping : System.MarshalByRefObject, System.Data.IColumnMapping, System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -1705,7 +1705,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Data.Common.DataColumnMappingCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DataColumnMappingCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataColumnMappingCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.IColumnMappingCollection { public int Add(object value) => throw null; @@ -1744,7 +1744,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Data.Common.DataTableMapping` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DataTableMapping` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataTableMapping : System.MarshalByRefObject, System.Data.ITableMapping, System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -1761,7 +1761,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Data.Common.DataTableMappingCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DataTableMappingCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataTableMappingCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.ITableMappingCollection { public int Add(object value) => throw null; @@ -1799,7 +1799,68 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Data.Common.DbColumn` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbBatch` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public abstract class DbBatch : System.IAsyncDisposable, System.IDisposable + { + 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.DbBatchCommand CreateBatchCommand() => throw null; + protected abstract System.Data.Common.DbBatchCommand CreateDbBatchCommand(); + protected DbBatch() => throw null; + protected abstract System.Data.Common.DbBatchCommandCollection DbBatchCommands { get; } + protected abstract System.Data.Common.DbConnection DbConnection { get; set; } + protected abstract System.Data.Common.DbTransaction DbTransaction { get; set; } + public virtual void Dispose() => throw null; + public virtual System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + protected abstract System.Data.Common.DbDataReader ExecuteDbDataReader(System.Data.CommandBehavior behavior); + protected abstract System.Threading.Tasks.Task ExecuteDbDataReaderAsync(System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken); + public abstract int ExecuteNonQuery(); + public abstract System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public System.Data.Common.DbDataReader ExecuteReader(System.Data.CommandBehavior behavior = default(System.Data.CommandBehavior)) => throw null; + public System.Threading.Tasks.Task ExecuteReaderAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public abstract object ExecuteScalar(); + public abstract System.Threading.Tasks.Task ExecuteScalarAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + 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; } + } + + // Generated from `System.Data.Common.DbBatchCommand` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public abstract class DbBatchCommand + { + public abstract string CommandText { get; set; } + public abstract System.Data.CommandType CommandType { get; set; } + protected DbBatchCommand() => throw null; + protected abstract System.Data.Common.DbParameterCollection DbParameterCollection { get; } + public System.Data.Common.DbParameterCollection Parameters { get => throw null; } + public abstract int RecordsAffected { get; } + } + + // Generated from `System.Data.Common.DbBatchCommandCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public abstract class DbBatchCommandCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + { + public abstract void Add(System.Data.Common.DbBatchCommand item); + public abstract void Clear(); + public abstract bool Contains(System.Data.Common.DbBatchCommand item); + public abstract void CopyTo(System.Data.Common.DbBatchCommand[] array, int arrayIndex); + public abstract int Count { get; } + protected DbBatchCommandCollection() => throw null; + protected abstract System.Data.Common.DbBatchCommand GetBatchCommand(int index); + public abstract System.Collections.Generic.IEnumerator GetEnumerator(); + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + 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); + } + + // Generated from `System.Data.Common.DbColumn` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbColumn { public bool? AllowDBNull { get => throw null; set => throw null; } @@ -1829,7 +1890,7 @@ namespace System public string UdtAssemblyQualifiedName { get => throw null; set => throw null; } } - // Generated from `System.Data.Common.DbCommand` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbCommand` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbCommand : System.ComponentModel.Component, System.Data.IDbCommand, System.IAsyncDisposable, System.IDisposable { public abstract void Cancel(); @@ -1872,7 +1933,7 @@ namespace System public abstract System.Data.UpdateRowSource UpdatedRowSource { get; set; } } - // Generated from `System.Data.Common.DbCommandBuilder` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbCommandBuilder` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); @@ -1904,7 +1965,7 @@ namespace System public virtual string UnquoteIdentifier(string quotedIdentifier) => throw null; } - // Generated from `System.Data.Common.DbConnection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbConnection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbConnection : System.ComponentModel.Component, System.Data.IDbConnection, System.IAsyncDisposable, System.IDisposable { protected abstract System.Data.Common.DbTransaction BeginDbTransaction(System.Data.IsolationLevel isolationLevel); @@ -1915,14 +1976,17 @@ namespace System 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 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; public abstract void Close(); public virtual System.Threading.Tasks.Task CloseAsync() => throw null; public abstract string ConnectionString { get; set; } public virtual int ConnectionTimeout { get => throw null; } + public System.Data.Common.DbBatch CreateBatch() => throw null; public System.Data.Common.DbCommand CreateCommand() => throw null; 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; } @@ -1945,7 +2009,7 @@ namespace System public virtual event System.Data.StateChangeEventHandler StateChange; } - // Generated from `System.Data.Common.DbConnectionStringBuilder` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbConnectionStringBuilder` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DbConnectionStringBuilder : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable, System.ComponentModel.ICustomTypeDescriptor { void System.Collections.IDictionary.Add(object keyword, object value) => throw null; @@ -1993,7 +2057,7 @@ namespace System public virtual System.Collections.ICollection Values { get => throw null; } } - // Generated from `System.Data.Common.DbDataAdapter` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbDataAdapter` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -2043,7 +2107,7 @@ namespace System System.Data.IDbCommand System.Data.IDbDataAdapter.UpdateCommand { get => throw null; set => throw null; } } - // Generated from `System.Data.Common.DbDataReader` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbDataReader` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbDataReader : System.MarshalByRefObject, System.Collections.IEnumerable, System.Data.IDataReader, System.Data.IDataRecord, System.IAsyncDisposable, System.IDisposable { public virtual void Close() => throw null; @@ -2106,14 +2170,14 @@ namespace System public virtual int VisibleFieldCount { get => throw null; } } - // Generated from `System.Data.Common.DbDataReaderExtensions` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbDataReaderExtensions` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static 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; } - // Generated from `System.Data.Common.DbDataRecord` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbDataRecord` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbDataRecord : System.ComponentModel.ICustomTypeDescriptor, System.Data.IDataRecord { protected DbDataRecord() => throw null; @@ -2157,14 +2221,14 @@ namespace System public abstract object this[string name] { get; } } - // Generated from `System.Data.Common.DbDataSourceEnumerator` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbDataSourceEnumerator` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbDataSourceEnumerator { protected DbDataSourceEnumerator() => throw null; public abstract System.Data.DataTable GetDataSources(); } - // Generated from `System.Data.Common.DbEnumerator` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbEnumerator` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DbEnumerator : System.Collections.IEnumerator { public object Current { get => throw null; } @@ -2176,9 +2240,11 @@ namespace System public void Reset() => throw null; } - // Generated from `System.Data.Common.DbException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -2188,7 +2254,7 @@ namespace System public virtual string SqlState { get => throw null; } } - // Generated from `System.Data.Common.DbMetaDataCollectionNames` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbMetaDataCollectionNames` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class DbMetaDataCollectionNames { public static string DataSourceInformation; @@ -2198,7 +2264,7 @@ namespace System public static string Restrictions; } - // Generated from `System.Data.Common.DbMetaDataColumnNames` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbMetaDataColumnNames` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class DbMetaDataColumnNames { public static string CollectionName; @@ -2246,7 +2312,7 @@ namespace System public static string TypeName; } - // Generated from `System.Data.Common.DbParameter` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbParameter` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbParameter : System.MarshalByRefObject, System.Data.IDataParameter, System.Data.IDbDataParameter { protected DbParameter() => throw null; @@ -2266,7 +2332,7 @@ namespace System public abstract object Value { get; set; } } - // Generated from `System.Data.Common.DbParameterCollection` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbParameterCollection` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbParameterCollection : System.MarshalByRefObject, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Data.IDataParameterCollection { public abstract int Add(object value); @@ -2303,7 +2369,7 @@ namespace System public abstract object SyncRoot { get; } } - // Generated from `System.Data.Common.DbProviderFactories` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbProviderFactories` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class DbProviderFactories { public static System.Data.Common.DbProviderFactory GetFactory(System.Data.DataRow providerRow) => throw null; @@ -2318,12 +2384,15 @@ namespace System public static bool UnregisterFactory(string providerInvariantName) => throw null; } - // Generated from `System.Data.Common.DbProviderFactory` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbProviderFactory` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbProviderFactory { + public virtual bool CanCreateBatch { get => throw null; } public virtual bool CanCreateCommandBuilder { get => throw null; } public virtual bool CanCreateDataAdapter { get => throw null; } public virtual bool CanCreateDataSourceEnumerator { get => throw null; } + public virtual System.Data.Common.DbBatch CreateBatch() => throw null; + public virtual System.Data.Common.DbBatchCommand CreateBatchCommand() => throw null; public virtual System.Data.Common.DbCommand CreateCommand() => throw null; public virtual System.Data.Common.DbCommandBuilder CreateCommandBuilder() => throw null; public virtual System.Data.Common.DbConnection CreateConnection() => throw null; @@ -2334,14 +2403,14 @@ namespace System protected DbProviderFactory() => throw null; } - // Generated from `System.Data.Common.DbProviderSpecificTypePropertyAttribute` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbProviderSpecificTypePropertyAttribute` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DbProviderSpecificTypePropertyAttribute : System.Attribute { public DbProviderSpecificTypePropertyAttribute(bool isProviderSpecificTypeProperty) => throw null; public bool IsProviderSpecificTypeProperty { get => throw null; } } - // Generated from `System.Data.Common.DbTransaction` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.DbTransaction` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DbTransaction : System.MarshalByRefObject, System.Data.IDbTransaction, System.IAsyncDisposable, System.IDisposable { public abstract void Commit(); @@ -2365,7 +2434,7 @@ namespace System public virtual bool SupportsSavepoints { get => throw null; } } - // Generated from `System.Data.Common.GroupByBehavior` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.GroupByBehavior` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum GroupByBehavior { ExactMatch, @@ -2375,13 +2444,13 @@ namespace System Unrelated, } - // Generated from `System.Data.Common.IDbColumnSchemaGenerator` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.IDbColumnSchemaGenerator` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDbColumnSchemaGenerator { System.Collections.ObjectModel.ReadOnlyCollection GetColumnSchema(); } - // Generated from `System.Data.Common.IdentifierCase` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.IdentifierCase` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum IdentifierCase { Insensitive, @@ -2389,7 +2458,7 @@ namespace System Unknown, } - // Generated from `System.Data.Common.RowUpdatedEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.RowUpdatedEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RowUpdatedEventArgs : System.EventArgs { public System.Data.IDbCommand Command { get => throw null; } @@ -2405,7 +2474,7 @@ namespace System public System.Data.Common.DataTableMapping TableMapping { get => throw null; } } - // Generated from `System.Data.Common.RowUpdatingEventArgs` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.RowUpdatingEventArgs` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RowUpdatingEventArgs : System.EventArgs { protected virtual System.Data.IDbCommand BaseCommand { get => throw null; set => throw null; } @@ -2418,7 +2487,7 @@ namespace System public System.Data.Common.DataTableMapping TableMapping { get => throw null; } } - // Generated from `System.Data.Common.SchemaTableColumn` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.SchemaTableColumn` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class SchemaTableColumn { public static string AllowDBNull; @@ -2440,7 +2509,7 @@ namespace System public static string ProviderType; } - // Generated from `System.Data.Common.SchemaTableOptionalColumn` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.SchemaTableOptionalColumn` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class SchemaTableOptionalColumn { public static string AutoIncrementSeed; @@ -2459,7 +2528,7 @@ namespace System public static string ProviderSpecificDataType; } - // Generated from `System.Data.Common.SupportedJoinOperators` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.Common.SupportedJoinOperators` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SupportedJoinOperators { @@ -2473,13 +2542,13 @@ namespace System } namespace SqlTypes { - // Generated from `System.Data.SqlTypes.INullable` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.INullable` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INullable { bool IsNull { get; } } - // Generated from `System.Data.SqlTypes.SqlAlreadyFilledException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlAlreadyFilledException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SqlAlreadyFilledException : System.Data.SqlTypes.SqlTypeException { public SqlAlreadyFilledException() => throw null; @@ -2487,7 +2556,7 @@ namespace System public SqlAlreadyFilledException(string message, System.Exception e) => throw null; } - // Generated from `System.Data.SqlTypes.SqlBinary` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlBinary` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlBinary : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlBinary x, System.Data.SqlTypes.SqlBinary y) => throw null; @@ -2527,7 +2596,7 @@ namespace System public static implicit operator System.Data.SqlTypes.SqlBinary(System.Byte[] x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlBoolean` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlBoolean` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlBoolean : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !(System.Data.SqlTypes.SqlBoolean x) => throw null; @@ -2598,7 +2667,7 @@ namespace System public static System.Data.SqlTypes.SqlBoolean operator ~(System.Data.SqlTypes.SqlBoolean x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlByte` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlByte` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlByte : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlByte x, System.Data.SqlTypes.SqlByte y) => throw null; @@ -2672,7 +2741,7 @@ namespace System public static System.Data.SqlTypes.SqlByte operator ~(System.Data.SqlTypes.SqlByte x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlBytes` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlBytes` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SqlBytes : System.Data.SqlTypes.INullable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable { public System.Byte[] Buffer { get => throw null; } @@ -2702,7 +2771,7 @@ namespace System public static explicit operator System.Data.SqlTypes.SqlBinary(System.Data.SqlTypes.SqlBytes value) => throw null; } - // Generated from `System.Data.SqlTypes.SqlChars` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlChars` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SqlChars : System.Data.SqlTypes.INullable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable { public System.Char[] Buffer { get => throw null; } @@ -2730,7 +2799,7 @@ namespace System public static explicit operator System.Data.SqlTypes.SqlChars(System.Data.SqlTypes.SqlString value) => throw null; } - // Generated from `System.Data.SqlTypes.SqlCompareOptions` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlCompareOptions` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SqlCompareOptions { @@ -2743,7 +2812,7 @@ namespace System None, } - // Generated from `System.Data.SqlTypes.SqlDateTime` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlDateTime` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlDateTime : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlDateTime x, System.Data.SqlTypes.SqlDateTime y) => throw null; @@ -2795,7 +2864,7 @@ namespace System public static implicit operator System.Data.SqlTypes.SqlDateTime(System.DateTime value) => throw null; } - // Generated from `System.Data.SqlTypes.SqlDecimal` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlDecimal` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlDecimal : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlDecimal x, System.Data.SqlTypes.SqlDecimal y) => throw null; @@ -2882,7 +2951,7 @@ namespace System public static implicit operator System.Data.SqlTypes.SqlDecimal(System.Int64 x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlDouble` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlDouble` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlDouble : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlDouble x, System.Data.SqlTypes.SqlDouble y) => throw null; @@ -2946,7 +3015,7 @@ namespace System public static implicit operator System.Data.SqlTypes.SqlDouble(double x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlGuid` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlGuid` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlGuid : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlGuid x, System.Data.SqlTypes.SqlGuid y) => throw null; @@ -2988,7 +3057,7 @@ namespace System public static implicit operator System.Data.SqlTypes.SqlGuid(System.Guid x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlInt16` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlInt16` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlInt16 : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlInt16 x, System.Data.SqlTypes.SqlInt16 y) => throw null; @@ -3063,7 +3132,7 @@ namespace System public static System.Data.SqlTypes.SqlInt16 operator ~(System.Data.SqlTypes.SqlInt16 x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlInt32` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlInt32` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlInt32 : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlInt32 x, System.Data.SqlTypes.SqlInt32 y) => throw null; @@ -3138,7 +3207,7 @@ namespace System public static System.Data.SqlTypes.SqlInt32 operator ~(System.Data.SqlTypes.SqlInt32 x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlInt64` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlInt64` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlInt64 : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlInt64 x, System.Data.SqlTypes.SqlInt64 y) => throw null; @@ -3213,7 +3282,7 @@ namespace System public static System.Data.SqlTypes.SqlInt64 operator ~(System.Data.SqlTypes.SqlInt64 x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlMoney` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlMoney` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlMoney : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlMoney x, System.Data.SqlTypes.SqlMoney y) => throw null; @@ -3286,7 +3355,7 @@ namespace System public static implicit operator System.Data.SqlTypes.SqlMoney(System.Int64 x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlNotFilledException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlNotFilledException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SqlNotFilledException : System.Data.SqlTypes.SqlTypeException { public SqlNotFilledException() => throw null; @@ -3294,7 +3363,7 @@ namespace System public SqlNotFilledException(string message, System.Exception e) => throw null; } - // Generated from `System.Data.SqlTypes.SqlNullValueException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlNullValueException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SqlNullValueException : System.Data.SqlTypes.SqlTypeException { public SqlNullValueException() => throw null; @@ -3302,7 +3371,7 @@ namespace System public SqlNullValueException(string message, System.Exception e) => throw null; } - // Generated from `System.Data.SqlTypes.SqlSingle` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlSingle` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlSingle : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlSingle x, System.Data.SqlTypes.SqlSingle y) => throw null; @@ -3367,7 +3436,7 @@ namespace System public static implicit operator System.Data.SqlTypes.SqlSingle(float x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlString` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlString` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SqlString : System.Data.SqlTypes.INullable, System.IComparable, System.Xml.Serialization.IXmlSerializable { public static System.Data.SqlTypes.SqlBoolean operator !=(System.Data.SqlTypes.SqlString x, System.Data.SqlTypes.SqlString y) => throw null; @@ -3445,7 +3514,7 @@ namespace System public static implicit operator System.Data.SqlTypes.SqlString(string x) => throw null; } - // Generated from `System.Data.SqlTypes.SqlTruncateException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlTruncateException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SqlTruncateException : System.Data.SqlTypes.SqlTypeException { public SqlTruncateException() => throw null; @@ -3453,7 +3522,7 @@ namespace System public SqlTruncateException(string message, System.Exception e) => throw null; } - // Generated from `System.Data.SqlTypes.SqlTypeException` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlTypeException` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SqlTypeException : System.SystemException { public SqlTypeException() => throw null; @@ -3462,7 +3531,7 @@ namespace System public SqlTypeException(string message, System.Exception e) => throw null; } - // Generated from `System.Data.SqlTypes.SqlXml` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.SqlXml` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SqlXml : System.Data.SqlTypes.INullable, System.Xml.Serialization.IXmlSerializable { public System.Xml.XmlReader CreateReader() => throw null; @@ -3478,7 +3547,7 @@ namespace System void System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) => throw null; } - // Generated from `System.Data.SqlTypes.StorageState` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Data.SqlTypes.StorageState` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum StorageState { Buffer, @@ -3490,7 +3559,7 @@ namespace System } namespace Xml { - // Generated from `System.Xml.XmlDataDocument` in `System.Data.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDataDocument` in `System.Data.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlDataDocument : System.Xml.XmlDocument { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; 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 c1b656c775e..0e049485c1c 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 @@ -6,7 +6,7 @@ namespace System { namespace Contracts { - // Generated from `System.Diagnostics.Contracts.Contract` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.Contract` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Contract { public static void Assert(bool condition) => throw null; @@ -34,33 +34,33 @@ namespace System public static T ValueAtReturn(out T value) => throw null; } - // Generated from `System.Diagnostics.Contracts.ContractAbbreviatorAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractAbbreviatorAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractAbbreviatorAttribute : System.Attribute { public ContractAbbreviatorAttribute() => throw null; } - // Generated from `System.Diagnostics.Contracts.ContractArgumentValidatorAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractArgumentValidatorAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractArgumentValidatorAttribute : System.Attribute { public ContractArgumentValidatorAttribute() => throw null; } - // Generated from `System.Diagnostics.Contracts.ContractClassAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractClassAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractClassAttribute : System.Attribute { public ContractClassAttribute(System.Type typeContainingContracts) => throw null; public System.Type TypeContainingContracts { get => throw null; } } - // Generated from `System.Diagnostics.Contracts.ContractClassForAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractClassForAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractClassForAttribute : System.Attribute { public ContractClassForAttribute(System.Type typeContractsAreFor) => throw null; public System.Type TypeContractsAreFor { get => throw null; } } - // Generated from `System.Diagnostics.Contracts.ContractFailedEventArgs` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractFailedEventArgs` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractFailedEventArgs : System.EventArgs { public string Condition { get => throw null; } @@ -74,7 +74,7 @@ namespace System public bool Unwind { get => throw null; } } - // Generated from `System.Diagnostics.Contracts.ContractFailureKind` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractFailureKind` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ContractFailureKind { Assert, @@ -85,13 +85,13 @@ namespace System Precondition, } - // Generated from `System.Diagnostics.Contracts.ContractInvariantMethodAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractInvariantMethodAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractInvariantMethodAttribute : System.Attribute { public ContractInvariantMethodAttribute() => throw null; } - // Generated from `System.Diagnostics.Contracts.ContractOptionAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractOptionAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractOptionAttribute : System.Attribute { public string Category { get => throw null; } @@ -102,33 +102,33 @@ namespace System public string Value { get => throw null; } } - // Generated from `System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractPublicPropertyNameAttribute : System.Attribute { public ContractPublicPropertyNameAttribute(string name) => throw null; public string Name { get => throw null; } } - // Generated from `System.Diagnostics.Contracts.ContractReferenceAssemblyAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractReferenceAssemblyAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractReferenceAssemblyAttribute : System.Attribute { public ContractReferenceAssemblyAttribute() => throw null; } - // Generated from `System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractRuntimeIgnoredAttribute : System.Attribute { public ContractRuntimeIgnoredAttribute() => throw null; } - // Generated from `System.Diagnostics.Contracts.ContractVerificationAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.ContractVerificationAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractVerificationAttribute : System.Attribute { public ContractVerificationAttribute(bool value) => throw null; public bool Value { get => throw null; } } - // Generated from `System.Diagnostics.Contracts.PureAttribute` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Contracts.PureAttribute` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PureAttribute : System.Attribute { public PureAttribute() => throw null; @@ -140,7 +140,7 @@ namespace System { namespace CompilerServices { - // Generated from `System.Runtime.CompilerServices.ContractHelper` in `System.Diagnostics.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ContractHelper` in `System.Diagnostics.Contracts, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ContractHelper { public static string RaiseContractFailedEvent(System.Diagnostics.Contracts.ContractFailureKind failureKind, string userMessage, string conditionText, System.Exception innerException) => throw null; 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 ab31f56517d..e9029ad501f 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 @@ -4,7 +4,7 @@ namespace System { namespace Diagnostics { - // Generated from `System.Diagnostics.Activity` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.Activity` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class Activity : System.IDisposable { public Activity(string operationName) => throw null; @@ -25,6 +25,7 @@ namespace System public static bool ForceDefaultIdFormat { get => throw null; set => throw null; } public string GetBaggageItem(string key) => throw null; public object GetCustomProperty(string propertyName) => throw null; + public object GetTagItem(string key) => 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; } @@ -36,25 +37,30 @@ namespace System public System.Diagnostics.ActivitySpanId ParentSpanId { get => throw null; } public bool Recorded { get => throw null; } public string RootId { get => throw null; } + public System.Diagnostics.Activity SetBaggage(string key, string value) => throw null; public void SetCustomProperty(string propertyName, object propertyValue) => throw null; public System.Diagnostics.Activity SetEndTime(System.DateTime endTimeUtc) => throw null; public System.Diagnostics.Activity SetIdFormat(System.Diagnostics.ActivityIdFormat format) => throw null; public System.Diagnostics.Activity SetParentId(System.Diagnostics.ActivityTraceId traceId, System.Diagnostics.ActivitySpanId spanId, System.Diagnostics.ActivityTraceFlags activityTraceFlags = default(System.Diagnostics.ActivityTraceFlags)) => throw null; public System.Diagnostics.Activity SetParentId(string parentId) => throw null; public System.Diagnostics.Activity SetStartTime(System.DateTime startTimeUtc) => throw null; + public System.Diagnostics.Activity SetStatus(System.Diagnostics.ActivityStatusCode code, string description = default(string)) => throw null; public System.Diagnostics.Activity SetTag(string key, object value) => throw null; public System.Diagnostics.ActivitySource Source { get => throw null; } public System.Diagnostics.ActivitySpanId SpanId { get => throw null; } public System.Diagnostics.Activity Start() => throw null; public System.DateTime StartTimeUtc { get => throw null; } + public System.Diagnostics.ActivityStatusCode Status { get => throw null; } + public string StatusDescription { get => throw null; } public void Stop() => throw null; 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; } } - // Generated from `System.Diagnostics.ActivityContext` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityContext` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ActivityContext : System.IEquatable { public static bool operator !=(System.Diagnostics.ActivityContext left, System.Diagnostics.ActivityContext right) => throw null; @@ -73,7 +79,7 @@ namespace System public static bool TryParse(string traceParent, string traceState, out System.Diagnostics.ActivityContext context) => throw null; } - // Generated from `System.Diagnostics.ActivityCreationOptions<>` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityCreationOptions<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ActivityCreationOptions { // Stub generator skipped constructor @@ -87,7 +93,7 @@ namespace System public System.Diagnostics.ActivityTraceId TraceId { get => throw null; } } - // Generated from `System.Diagnostics.ActivityEvent` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityEvent` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ActivityEvent { // Stub generator skipped constructor @@ -98,7 +104,7 @@ namespace System public System.DateTimeOffset Timestamp { get => throw null; } } - // Generated from `System.Diagnostics.ActivityIdFormat` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityIdFormat` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum ActivityIdFormat { Hierarchical, @@ -106,7 +112,7 @@ namespace System W3C, } - // Generated from `System.Diagnostics.ActivityKind` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityKind` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum ActivityKind { Client, @@ -116,7 +122,7 @@ namespace System Server, } - // Generated from `System.Diagnostics.ActivityLink` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityLink` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ActivityLink : System.IEquatable { public static bool operator !=(System.Diagnostics.ActivityLink left, System.Diagnostics.ActivityLink right) => throw null; @@ -130,7 +136,7 @@ namespace System public System.Collections.Generic.IEnumerable> Tags { get => throw null; } } - // Generated from `System.Diagnostics.ActivityListener` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityListener` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ActivityListener : System.IDisposable { public ActivityListener() => throw null; @@ -142,7 +148,7 @@ namespace System public System.Func ShouldListenTo { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.ActivitySamplingResult` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivitySamplingResult` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum ActivitySamplingResult { AllData, @@ -151,21 +157,25 @@ namespace System PropagationData, } - // Generated from `System.Diagnostics.ActivitySource` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivitySource` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public 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 void Dispose() => throw null; public bool HasListeners() => throw null; public string Name { get => throw null; } - public System.Diagnostics.Activity StartActivity(string name, System.Diagnostics.ActivityKind kind = default(System.Diagnostics.ActivityKind)) => 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 string Version { get => throw null; } } - // Generated from `System.Diagnostics.ActivitySpanId` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivitySpanId` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ActivitySpanId : System.IEquatable { public static bool operator !=(System.Diagnostics.ActivitySpanId spanId1, System.Diagnostics.ActivitySpanId spandId2) => throw null; @@ -183,10 +193,18 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Diagnostics.ActivityTagsCollection` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityStatusCode` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum ActivityStatusCode + { + Error, + Ok, + Unset, + } + + // Generated from `System.Diagnostics.ActivityTagsCollection` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ActivityTagsCollection : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { - // Generated from `System.Diagnostics.ActivityTagsCollection+Enumerator` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityTagsCollection+Enumerator` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct Enumerator : System.Collections.Generic.IEnumerator>, System.Collections.IEnumerator, System.IDisposable { public System.Collections.Generic.KeyValuePair Current { get => throw null; } @@ -219,7 +237,7 @@ namespace System public System.Collections.Generic.ICollection Values { get => throw null; } } - // Generated from `System.Diagnostics.ActivityTraceFlags` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityTraceFlags` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` [System.Flags] public enum ActivityTraceFlags { @@ -227,7 +245,7 @@ namespace System Recorded, } - // Generated from `System.Diagnostics.ActivityTraceId` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.ActivityTraceId` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ActivityTraceId : System.IEquatable { public static bool operator !=(System.Diagnostics.ActivityTraceId traceId1, System.Diagnostics.ActivityTraceId traceId2) => throw null; @@ -245,7 +263,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Diagnostics.DiagnosticListener` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.DiagnosticListener` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class DiagnosticListener : System.Diagnostics.DiagnosticSource, System.IDisposable, System.IObservable> { public static System.IObservable AllListeners { get => throw null; } @@ -265,7 +283,7 @@ namespace System public override void Write(string name, object value) => throw null; } - // Generated from `System.Diagnostics.DiagnosticSource` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.DiagnosticSource` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class DiagnosticSource { protected DiagnosticSource() => throw null; @@ -278,40 +296,186 @@ namespace System public abstract void Write(string name, object value); } - // Generated from `System.Diagnostics.SampleActivity<>` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Diagnostics.DistributedContextPropagator` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class DistributedContextPropagator + { + // Generated from `System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public delegate void PropagatorGetterCallback(object carrier, string fieldName, out string fieldValue, out System.Collections.Generic.IEnumerable fieldValues); + + + // Generated from `System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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 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); + } + + // Generated from `System.Diagnostics.SampleActivity<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate System.Diagnostics.ActivitySamplingResult SampleActivity(ref System.Diagnostics.ActivityCreationOptions options); - namespace CodeAnalysis + // Generated from `System.Diagnostics.TagList` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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 { - /* Duplicate type 'AllowNullAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ + // Generated from `System.Diagnostics.TagList+Enumerator` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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; + } - /* Duplicate type 'DisallowNullAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'DoesNotReturnAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'DoesNotReturnIfAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MaybeNullAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MaybeNullWhenAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MemberNotNullAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MemberNotNullWhenAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'NotNullAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'NotNullIfNotNullAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'NotNullWhenAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ + 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 Runtime - { - namespace CompilerServices + + namespace Metrics { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ + // Generated from `System.Diagnostics.Metrics.Counter<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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; + } + + // Generated from `System.Diagnostics.Metrics.Histogram<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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, 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; + } + + // Generated from `System.Diagnostics.Metrics.Instrument` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class Instrument + { + 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; } + } + + // Generated from `System.Diagnostics.Metrics.Instrument<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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; + protected void RecordMeasurement(T measurement) => throw null; + 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, System.ReadOnlySpan> tags) => throw null; + protected void RecordMeasurement(T measurement, System.Diagnostics.TagList tagList) => throw null; + } + + // Generated from `System.Diagnostics.Metrics.Measurement<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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 System.ReadOnlySpan> Tags { get => throw null; } + public T Value { get => throw null; } + } + + // Generated from `System.Diagnostics.Metrics.MeasurementCallback<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public delegate void MeasurementCallback(System.Diagnostics.Metrics.Instrument instrument, T measurement, System.ReadOnlySpan> tags, object state); + + // Generated from `System.Diagnostics.Metrics.Meter` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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.ObservableGauge CreateObservableGauge(string name, System.Func observeValue, 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 string Name { get => throw null; } + public string Version { get => throw null; } + } + + // Generated from `System.Diagnostics.Metrics.MeterListener` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class MeterListener : System.IDisposable + { + 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 void RecordObservableInstruments() => throw null; + public void SetMeasurementEventCallback(System.Diagnostics.Metrics.MeasurementCallback measurementCallback) where T : struct => throw null; + public void Start() => throw null; + } + + // Generated from `System.Diagnostics.Metrics.ObservableCounter<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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; + } + + // Generated from `System.Diagnostics.Metrics.ObservableGauge<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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; + } + + // Generated from `System.Diagnostics.Metrics.ObservableInstrument<>` in `System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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; + protected abstract System.Collections.Generic.IEnumerable> Observe(); + } } } 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 a3eef551d27..d0f799c5037 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 @@ -4,7 +4,7 @@ namespace System { namespace Diagnostics { - // Generated from `System.Diagnostics.FileVersionInfo` in `System.Diagnostics.FileVersionInfo, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.FileVersionInfo` in `System.Diagnostics.FileVersionInfo, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileVersionInfo { public string Comments { 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 3a8d90b08fa..dbd20b6c74a 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 @@ -6,10 +6,11 @@ namespace Microsoft { namespace SafeHandles { - // Generated from `Microsoft.Win32.SafeHandles.SafeProcessHandle` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeProcessHandle` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; } @@ -20,23 +21,23 @@ namespace System { namespace Diagnostics { - // Generated from `System.Diagnostics.DataReceivedEventArgs` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DataReceivedEventArgs` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataReceivedEventArgs : System.EventArgs { public string Data { get => throw null; } } - // Generated from `System.Diagnostics.DataReceivedEventHandler` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DataReceivedEventHandler` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void DataReceivedEventHandler(object sender, System.Diagnostics.DataReceivedEventArgs e); - // Generated from `System.Diagnostics.MonitoringDescriptionAttribute` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.MonitoringDescriptionAttribute` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MonitoringDescriptionAttribute : System.ComponentModel.DescriptionAttribute { public override string Description { get => throw null; } public MonitoringDescriptionAttribute(string description) => throw null; } - // Generated from `System.Diagnostics.Process` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Process` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Process : System.ComponentModel.Component, System.IDisposable { public int BasePriority { get => throw null; } @@ -128,7 +129,7 @@ namespace System public System.Int64 WorkingSet64 { get => throw null; } } - // Generated from `System.Diagnostics.ProcessModule` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ProcessModule` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProcessModule : System.ComponentModel.Component { public System.IntPtr BaseAddress { get => throw null; } @@ -140,7 +141,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Diagnostics.ProcessModuleCollection` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ProcessModuleCollection` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProcessModuleCollection : System.Collections.ReadOnlyCollectionBase { public bool Contains(System.Diagnostics.ProcessModule module) => throw null; @@ -151,7 +152,7 @@ namespace System public ProcessModuleCollection(System.Diagnostics.ProcessModule[] processModules) => throw null; } - // Generated from `System.Diagnostics.ProcessPriorityClass` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ProcessPriorityClass` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ProcessPriorityClass { AboveNormal, @@ -162,7 +163,7 @@ namespace System RealTime, } - // Generated from `System.Diagnostics.ProcessStartInfo` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ProcessStartInfo` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProcessStartInfo { public System.Collections.ObjectModel.Collection ArgumentList { get => throw null; } @@ -194,7 +195,7 @@ namespace System public string WorkingDirectory { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.ProcessThread` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ProcessThread` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProcessThread : System.ComponentModel.Component { public int BasePriority { get => throw null; } @@ -214,7 +215,7 @@ namespace System public System.Diagnostics.ThreadWaitReason WaitReason { get => throw null; } } - // Generated from `System.Diagnostics.ProcessThreadCollection` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ProcessThreadCollection` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProcessThreadCollection : System.Collections.ReadOnlyCollectionBase { public int Add(System.Diagnostics.ProcessThread thread) => throw null; @@ -228,7 +229,7 @@ namespace System public void Remove(System.Diagnostics.ProcessThread thread) => throw null; } - // Generated from `System.Diagnostics.ProcessWindowStyle` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ProcessWindowStyle` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ProcessWindowStyle { Hidden, @@ -237,7 +238,7 @@ namespace System Normal, } - // Generated from `System.Diagnostics.ThreadPriorityLevel` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ThreadPriorityLevel` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ThreadPriorityLevel { AboveNormal, @@ -249,7 +250,7 @@ namespace System TimeCritical, } - // Generated from `System.Diagnostics.ThreadState` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ThreadState` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ThreadState { Initialized, @@ -262,7 +263,7 @@ namespace System Wait, } - // Generated from `System.Diagnostics.ThreadWaitReason` in `System.Diagnostics.Process, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ThreadWaitReason` in `System.Diagnostics.Process, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ThreadWaitReason { EventPairHigh, 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 525920f4daf..4507a11d33a 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 @@ -4,7 +4,7 @@ namespace System { namespace Diagnostics { - // Generated from `System.Diagnostics.StackFrame` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.StackFrame` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StackFrame { public virtual int GetFileColumnNumber() => throw null; @@ -23,7 +23,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Diagnostics.StackFrameExtensions` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.StackFrameExtensions` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class StackFrameExtensions { public static System.IntPtr GetNativeIP(this System.Diagnostics.StackFrame stackFrame) => throw null; @@ -34,7 +34,7 @@ namespace System public static bool HasSource(this System.Diagnostics.StackFrame stackFrame) => throw null; } - // Generated from `System.Diagnostics.StackTrace` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.StackTrace` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StackTrace { public virtual int FrameCount { get => throw null; } @@ -55,19 +55,19 @@ namespace System namespace SymbolStore { - // Generated from `System.Diagnostics.SymbolStore.ISymbolBinder` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolBinder` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolBinder { System.Diagnostics.SymbolStore.ISymbolReader GetReader(int importer, string filename, string searchPath); } - // Generated from `System.Diagnostics.SymbolStore.ISymbolBinder1` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolBinder1` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolBinder1 { System.Diagnostics.SymbolStore.ISymbolReader GetReader(System.IntPtr importer, string filename, string searchPath); } - // Generated from `System.Diagnostics.SymbolStore.ISymbolDocument` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolDocument` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolDocument { System.Guid CheckSumAlgorithmId { get; } @@ -82,14 +82,14 @@ namespace System string URL { get; } } - // Generated from `System.Diagnostics.SymbolStore.ISymbolDocumentWriter` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolDocumentWriter` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolDocumentWriter { void SetCheckSum(System.Guid algorithmId, System.Byte[] checkSum); void SetSource(System.Byte[] source); } - // Generated from `System.Diagnostics.SymbolStore.ISymbolMethod` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolMethod` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolMethod { System.Diagnostics.SymbolStore.ISymbolNamespace GetNamespace(); @@ -104,7 +104,7 @@ namespace System System.Diagnostics.SymbolStore.SymbolToken Token { get; } } - // Generated from `System.Diagnostics.SymbolStore.ISymbolNamespace` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolNamespace` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolNamespace { System.Diagnostics.SymbolStore.ISymbolNamespace[] GetNamespaces(); @@ -112,7 +112,7 @@ namespace System string Name { get; } } - // Generated from `System.Diagnostics.SymbolStore.ISymbolReader` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolReader` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolReader { System.Diagnostics.SymbolStore.ISymbolDocument GetDocument(string url, System.Guid language, System.Guid languageVendor, System.Guid documentType); @@ -127,7 +127,7 @@ namespace System System.Diagnostics.SymbolStore.SymbolToken UserEntryPoint { get; } } - // Generated from `System.Diagnostics.SymbolStore.ISymbolScope` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolScope` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolScope { int EndOffset { get; } @@ -139,7 +139,7 @@ namespace System int StartOffset { get; } } - // Generated from `System.Diagnostics.SymbolStore.ISymbolVariable` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolVariable` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolVariable { int AddressField1 { get; } @@ -153,7 +153,7 @@ namespace System int StartOffset { get; } } - // Generated from `System.Diagnostics.SymbolStore.ISymbolWriter` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.ISymbolWriter` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISymbolWriter { void Close(); @@ -178,7 +178,7 @@ namespace System void UsingNamespace(string fullName); } - // Generated from `System.Diagnostics.SymbolStore.SymAddressKind` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.SymAddressKind` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SymAddressKind { BitField, @@ -193,14 +193,14 @@ namespace System NativeStackRegister, } - // Generated from `System.Diagnostics.SymbolStore.SymDocumentType` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.SymDocumentType` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SymDocumentType { public SymDocumentType() => throw null; public static System.Guid Text; } - // Generated from `System.Diagnostics.SymbolStore.SymLanguageType` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.SymLanguageType` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SymLanguageType { public static System.Guid Basic; @@ -217,14 +217,14 @@ namespace System public SymLanguageType() => throw null; } - // Generated from `System.Diagnostics.SymbolStore.SymLanguageVendor` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.SymLanguageVendor` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SymLanguageVendor { public static System.Guid Microsoft; public SymLanguageVendor() => throw null; } - // Generated from `System.Diagnostics.SymbolStore.SymbolToken` in `System.Diagnostics.StackTrace, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SymbolStore.SymbolToken` in `System.Diagnostics.StackTrace, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SymbolToken { public static bool operator !=(System.Diagnostics.SymbolStore.SymbolToken a, System.Diagnostics.SymbolStore.SymbolToken b) => 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 1212c2cd143..a4761361190 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 @@ -4,7 +4,7 @@ namespace System { namespace Diagnostics { - // Generated from `System.Diagnostics.ConsoleTraceListener` in `System.Diagnostics.TextWriterTraceListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ConsoleTraceListener` in `System.Diagnostics.TextWriterTraceListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConsoleTraceListener : System.Diagnostics.TextWriterTraceListener { public override void Close() => throw null; @@ -12,7 +12,7 @@ namespace System public ConsoleTraceListener(bool useErrorStream) => throw null; } - // Generated from `System.Diagnostics.DelimitedListTraceListener` in `System.Diagnostics.TextWriterTraceListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DelimitedListTraceListener` in `System.Diagnostics.TextWriterTraceListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DelimitedListTraceListener : System.Diagnostics.TextWriterTraceListener { public DelimitedListTraceListener(System.IO.Stream stream) => throw null; @@ -29,7 +29,7 @@ namespace System public override void TraceEvent(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, string format, params object[] args) => throw null; } - // Generated from `System.Diagnostics.TextWriterTraceListener` in `System.Diagnostics.TextWriterTraceListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TextWriterTraceListener` in `System.Diagnostics.TextWriterTraceListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TextWriterTraceListener : System.Diagnostics.TraceListener { public override void Close() => throw null; @@ -47,7 +47,7 @@ namespace System public System.IO.TextWriter Writer { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.XmlWriterTraceListener` in `System.Diagnostics.TextWriterTraceListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.XmlWriterTraceListener` in `System.Diagnostics.TextWriterTraceListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlWriterTraceListener : System.Diagnostics.TextWriterTraceListener { public override void Close() => throw null; 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 b43b1b9c220..de234c0fc22 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 @@ -4,7 +4,7 @@ namespace System { namespace Diagnostics { - // Generated from `System.Diagnostics.BooleanSwitch` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.BooleanSwitch` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BooleanSwitch : System.Diagnostics.Switch { public BooleanSwitch(string displayName, string description) : base(default(string), default(string)) => throw null; @@ -13,7 +13,7 @@ namespace System protected override void OnValueChanged() => throw null; } - // Generated from `System.Diagnostics.CorrelationManager` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.CorrelationManager` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CorrelationManager { public System.Guid ActivityId { get => throw null; set => throw null; } @@ -23,7 +23,7 @@ namespace System public void StopLogicalOperation() => throw null; } - // Generated from `System.Diagnostics.DefaultTraceListener` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DefaultTraceListener` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultTraceListener : System.Diagnostics.TraceListener { public bool AssertUiEnabled { get => throw null; set => throw null; } @@ -35,7 +35,7 @@ namespace System public override void WriteLine(string message) => throw null; } - // Generated from `System.Diagnostics.EventTypeFilter` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.EventTypeFilter` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventTypeFilter : System.Diagnostics.TraceFilter { public System.Diagnostics.SourceLevels EventType { get => throw null; set => throw null; } @@ -43,7 +43,7 @@ namespace System 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; } - // Generated from `System.Diagnostics.SourceFilter` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SourceFilter` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -51,7 +51,7 @@ namespace System public SourceFilter(string source) => throw null; } - // Generated from `System.Diagnostics.SourceLevels` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SourceLevels` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SourceLevels { @@ -65,7 +65,7 @@ namespace System Warning, } - // Generated from `System.Diagnostics.SourceSwitch` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SourceSwitch` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SourceSwitch : System.Diagnostics.Switch { public System.Diagnostics.SourceLevels Level { get => throw null; set => throw null; } @@ -75,7 +75,7 @@ namespace System public SourceSwitch(string displayName, string defaultSwitchValue) : base(default(string), default(string)) => throw null; } - // Generated from `System.Diagnostics.Switch` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Switch` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Switch { public System.Collections.Specialized.StringDictionary Attributes { get => throw null; } @@ -90,7 +90,7 @@ namespace System protected string Value { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.SwitchAttribute` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SwitchAttribute` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SwitchAttribute : System.Attribute { public static System.Diagnostics.SwitchAttribute[] GetAll(System.Reflection.Assembly assembly) => throw null; @@ -100,14 +100,14 @@ namespace System public System.Type SwitchType { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.SwitchLevelAttribute` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.SwitchLevelAttribute` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SwitchLevelAttribute : System.Attribute { public SwitchLevelAttribute(System.Type switchLevelType) => throw null; public System.Type SwitchLevelType { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.Trace` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Trace` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Trace { public static void Assert(bool condition) => throw null; @@ -150,7 +150,7 @@ namespace System public static void WriteLineIf(bool condition, string message, string category) => throw null; } - // Generated from `System.Diagnostics.TraceEventCache` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TraceEventCache` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TraceEventCache { public string Callstack { get => throw null; } @@ -162,7 +162,7 @@ namespace System public TraceEventCache() => throw null; } - // Generated from `System.Diagnostics.TraceEventType` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TraceEventType` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TraceEventType { Critical, @@ -177,14 +177,14 @@ namespace System Warning, } - // Generated from `System.Diagnostics.TraceFilter` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TraceFilter` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Diagnostics.TraceLevel` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TraceLevel` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TraceLevel { Error, @@ -194,7 +194,7 @@ namespace System Warning, } - // Generated from `System.Diagnostics.TraceListener` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TraceListener` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TraceListener : System.MarshalByRefObject, System.IDisposable { public System.Collections.Specialized.StringDictionary Attributes { get => throw null; } @@ -231,7 +231,7 @@ namespace System public virtual void WriteLine(string message, string category) => throw null; } - // Generated from `System.Diagnostics.TraceListenerCollection` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TraceListenerCollection` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TraceListenerCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { public int Add(System.Diagnostics.TraceListener listener) => throw null; @@ -262,7 +262,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Diagnostics.TraceOptions` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TraceOptions` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TraceOptions { @@ -275,7 +275,7 @@ namespace System Timestamp, } - // Generated from `System.Diagnostics.TraceSource` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TraceSource` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TraceSource { public System.Collections.Specialized.StringDictionary Attributes { get => throw null; } @@ -297,7 +297,7 @@ namespace System public void TraceTransfer(int id, string message, System.Guid relatedActivityId) => throw null; } - // Generated from `System.Diagnostics.TraceSwitch` in `System.Diagnostics.TraceSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.TraceSwitch` in `System.Diagnostics.TraceSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TraceSwitch : System.Diagnostics.Switch { public System.Diagnostics.TraceLevel Level { get => throw null; set => 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 57a242f6b16..d10871b3284 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 @@ -6,7 +6,7 @@ namespace System { namespace Tracing { - // Generated from `System.Diagnostics.Tracing.DiagnosticCounter` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.DiagnosticCounter` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DiagnosticCounter : System.IDisposable { public void AddMetadata(string key, string value) => throw null; @@ -18,7 +18,7 @@ namespace System public string Name { get => throw null; } } - // Generated from `System.Diagnostics.Tracing.EventActivityOptions` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventActivityOptions` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum EventActivityOptions { @@ -28,7 +28,7 @@ namespace System Recursive, } - // Generated from `System.Diagnostics.Tracing.EventAttribute` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventAttribute` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventAttribute : System.Attribute { public System.Diagnostics.Tracing.EventActivityOptions ActivityOptions { get => throw null; set => throw null; } @@ -44,7 +44,7 @@ namespace System public System.Byte Version { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.Tracing.EventChannel` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventChannel` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EventChannel { Admin, @@ -54,7 +54,7 @@ namespace System Operational, } - // Generated from `System.Diagnostics.Tracing.EventCommand` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventCommand` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EventCommand { Disable, @@ -63,7 +63,7 @@ namespace System Update, } - // Generated from `System.Diagnostics.Tracing.EventCommandEventArgs` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventCommandEventArgs` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventCommandEventArgs : System.EventArgs { public System.Collections.Generic.IDictionary Arguments { get => throw null; } @@ -72,7 +72,7 @@ namespace System public bool EnableEvent(int eventId) => throw null; } - // Generated from `System.Diagnostics.Tracing.EventCounter` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventCounter` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventCounter : System.Diagnostics.Tracing.DiagnosticCounter { public EventCounter(string name, System.Diagnostics.Tracing.EventSource eventSource) => throw null; @@ -81,14 +81,14 @@ namespace System public void WriteMetric(float value) => throw null; } - // Generated from `System.Diagnostics.Tracing.EventDataAttribute` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventDataAttribute` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventDataAttribute : System.Attribute { public EventDataAttribute() => throw null; public string Name { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.Tracing.EventFieldAttribute` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventFieldAttribute` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventFieldAttribute : System.Attribute { public EventFieldAttribute() => throw null; @@ -96,7 +96,7 @@ namespace System public System.Diagnostics.Tracing.EventFieldTags Tags { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.Tracing.EventFieldFormat` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventFieldFormat` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EventFieldFormat { Boolean, @@ -108,20 +108,20 @@ namespace System Xml, } - // Generated from `System.Diagnostics.Tracing.EventFieldTags` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventFieldTags` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum EventFieldTags { None, } - // Generated from `System.Diagnostics.Tracing.EventIgnoreAttribute` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventIgnoreAttribute` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventIgnoreAttribute : System.Attribute { public EventIgnoreAttribute() => throw null; } - // Generated from `System.Diagnostics.Tracing.EventKeywords` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventKeywords` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum EventKeywords { @@ -137,7 +137,7 @@ namespace System WdiDiagnostic, } - // Generated from `System.Diagnostics.Tracing.EventLevel` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventLevel` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EventLevel { Critical, @@ -148,7 +148,7 @@ namespace System Warning, } - // Generated from `System.Diagnostics.Tracing.EventListener` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventListener` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EventListener : System.IDisposable { public void DisableEvents(System.Diagnostics.Tracing.EventSource eventSource) => throw null; @@ -164,7 +164,7 @@ namespace System protected internal virtual void OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs eventData) => throw null; } - // Generated from `System.Diagnostics.Tracing.EventManifestOptions` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventManifestOptions` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum EventManifestOptions { @@ -175,7 +175,7 @@ namespace System Strict, } - // Generated from `System.Diagnostics.Tracing.EventOpcode` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventOpcode` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EventOpcode { DataCollectionStart, @@ -191,10 +191,10 @@ namespace System Suspend, } - // Generated from `System.Diagnostics.Tracing.EventSource` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventSource` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventSource : System.IDisposable { - // Generated from `System.Diagnostics.Tracing.EventSource+EventData` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventSource+EventData` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` protected internal struct EventData { public System.IntPtr DataPointer { get => throw null; set => throw null; } @@ -262,7 +262,7 @@ namespace System // ERR: Stub generator didn't handle member: ~EventSource } - // Generated from `System.Diagnostics.Tracing.EventSourceAttribute` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventSourceAttribute` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventSourceAttribute : System.Attribute { public EventSourceAttribute() => throw null; @@ -271,14 +271,14 @@ namespace System public string Name { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.Tracing.EventSourceCreatedEventArgs` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventSourceCreatedEventArgs` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventSourceCreatedEventArgs : System.EventArgs { public System.Diagnostics.Tracing.EventSource EventSource { get => throw null; } public EventSourceCreatedEventArgs() => throw null; } - // Generated from `System.Diagnostics.Tracing.EventSourceException` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventSourceException` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventSourceException : System.Exception { public EventSourceException() => throw null; @@ -287,7 +287,7 @@ namespace System public EventSourceException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Diagnostics.Tracing.EventSourceOptions` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventSourceOptions` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct EventSourceOptions { public System.Diagnostics.Tracing.EventActivityOptions ActivityOptions { get => throw null; set => throw null; } @@ -298,7 +298,7 @@ namespace System public System.Diagnostics.Tracing.EventTags Tags { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.Tracing.EventSourceSettings` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventSourceSettings` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum EventSourceSettings { @@ -308,20 +308,20 @@ namespace System ThrowOnEventWriteErrors, } - // Generated from `System.Diagnostics.Tracing.EventTags` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventTags` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum EventTags { None, } - // Generated from `System.Diagnostics.Tracing.EventTask` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventTask` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EventTask { None, } - // Generated from `System.Diagnostics.Tracing.EventWrittenEventArgs` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.EventWrittenEventArgs` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventWrittenEventArgs : System.EventArgs { public System.Guid ActivityId { get => throw null; } @@ -343,7 +343,7 @@ namespace System public System.Byte Version { get => throw null; } } - // Generated from `System.Diagnostics.Tracing.IncrementingEventCounter` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.IncrementingEventCounter` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IncrementingEventCounter : System.Diagnostics.Tracing.DiagnosticCounter { public System.TimeSpan DisplayRateTimeScale { get => throw null; set => throw null; } @@ -352,7 +352,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Diagnostics.Tracing.IncrementingPollingCounter` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.IncrementingPollingCounter` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IncrementingPollingCounter : System.Diagnostics.Tracing.DiagnosticCounter { public System.TimeSpan DisplayRateTimeScale { get => throw null; set => throw null; } @@ -360,13 +360,13 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Diagnostics.Tracing.NonEventAttribute` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.NonEventAttribute` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NonEventAttribute : System.Attribute { public NonEventAttribute() => throw null; } - // Generated from `System.Diagnostics.Tracing.PollingCounter` in `System.Diagnostics.Tracing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Tracing.PollingCounter` in `System.Diagnostics.Tracing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PollingCounter : System.Diagnostics.Tracing.DiagnosticCounter { public PollingCounter(string name, System.Diagnostics.Tracing.EventSource eventSource, System.Func metricProvider) => 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 1c19e040bf8..832c87e37bf 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 @@ -4,7 +4,7 @@ namespace System { namespace Drawing { - // Generated from `System.Drawing.Color` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.Color` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Color : System.IEquatable { public static bool operator !=(System.Drawing.Color left, System.Drawing.Color right) => throw null; @@ -145,6 +145,7 @@ namespace System 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 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; } public static System.Drawing.Color RoyalBlue { get => throw null; } @@ -178,7 +179,7 @@ namespace System public static System.Drawing.Color YellowGreen { get => throw null; } } - // Generated from `System.Drawing.ColorTranslator` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.ColorTranslator` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ColorTranslator { public static System.Drawing.Color FromHtml(string htmlColor) => throw null; @@ -189,7 +190,7 @@ namespace System public static int ToWin32(System.Drawing.Color c) => throw null; } - // Generated from `System.Drawing.KnownColor` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.KnownColor` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum KnownColor { ActiveBorder, @@ -334,6 +335,7 @@ namespace System Plum, PowderBlue, Purple, + RebeccaPurple, Red, RosyBrown, RoyalBlue, @@ -368,7 +370,7 @@ namespace System YellowGreen, } - // Generated from `System.Drawing.Point` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.Point` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Point : System.IEquatable { public static bool operator !=(System.Drawing.Point left, System.Drawing.Point right) => throw null; @@ -398,7 +400,7 @@ namespace System public static implicit operator System.Drawing.PointF(System.Drawing.Point p) => throw null; } - // Generated from `System.Drawing.PointF` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.PointF` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PointF : System.IEquatable { public static bool operator !=(System.Drawing.PointF left, System.Drawing.PointF right) => throw null; @@ -415,15 +417,19 @@ namespace System 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 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; } - // Generated from `System.Drawing.Rectangle` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.Rectangle` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Rectangle : System.IEquatable { public static bool operator !=(System.Drawing.Rectangle left, System.Drawing.Rectangle right) => throw null; @@ -465,7 +471,7 @@ namespace System public int Y { get => throw null; set => throw null; } } - // Generated from `System.Drawing.RectangleF` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.RectangleF` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct RectangleF : System.IEquatable { public static bool operator !=(System.Drawing.RectangleF left, System.Drawing.RectangleF right) => throw null; @@ -493,19 +499,23 @@ namespace System 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 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; } - // Generated from `System.Drawing.Size` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.Size` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Size : System.IEquatable { public static bool operator !=(System.Drawing.Size sz1, System.Drawing.Size sz2) => throw null; @@ -538,7 +548,7 @@ namespace System public static implicit operator System.Drawing.SizeF(System.Drawing.Size p) => throw null; } - // Generated from `System.Drawing.SizeF` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.SizeF` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SizeF : System.IEquatable { public static bool operator !=(System.Drawing.SizeF sz1, System.Drawing.SizeF sz2) => throw null; @@ -558,16 +568,20 @@ namespace System // 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 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; } - // Generated from `System.Drawing.SystemColors` in `System.Drawing.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Drawing.SystemColors` in `System.Drawing.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class SystemColors { public static System.Drawing.Color ActiveBorder { get => 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 31fc46aeefb..42898af2b34 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 @@ -2,39 +2,11 @@ namespace System { - namespace Diagnostics - { - namespace CodeAnalysis - { - /* Duplicate type 'AllowNullAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'DisallowNullAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'DoesNotReturnAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'DoesNotReturnIfAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MaybeNullAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MaybeNullWhenAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MemberNotNullAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'MemberNotNullWhenAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'NotNullAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'NotNullIfNotNullAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - /* Duplicate type 'NotNullWhenAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - } - } namespace Formats { namespace Asn1 { - // Generated from `System.Formats.Asn1.Asn1Tag` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.Asn1Tag` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct Asn1Tag : System.IEquatable { public static bool operator !=(System.Formats.Asn1.Asn1Tag left, System.Formats.Asn1.Asn1Tag right) => throw null; @@ -72,7 +44,7 @@ namespace System public static System.Formats.Asn1.Asn1Tag UtcTime; } - // Generated from `System.Formats.Asn1.AsnContentException` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.AsnContentException` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class AsnContentException : System.Exception { public AsnContentException() => throw null; @@ -81,7 +53,7 @@ namespace System public AsnContentException(string message, System.Exception inner) => throw null; } - // Generated from `System.Formats.Asn1.AsnDecoder` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.AsnDecoder` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -117,7 +89,7 @@ namespace System 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; } - // Generated from `System.Formats.Asn1.AsnEncodingRules` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.AsnEncodingRules` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum AsnEncodingRules { BER, @@ -125,7 +97,7 @@ namespace System DER, } - // Generated from `System.Formats.Asn1.AsnReader` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.AsnReader` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -169,7 +141,7 @@ namespace System public bool TryReadUInt64(out System.UInt64 value, System.Formats.Asn1.Asn1Tag? expectedTag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; } - // Generated from `System.Formats.Asn1.AsnReaderOptions` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.AsnReaderOptions` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct AsnReaderOptions { // Stub generator skipped constructor @@ -177,10 +149,10 @@ namespace System public int UtcTimeTwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Formats.Asn1.AsnWriter` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.AsnWriter` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class AsnWriter { - // Generated from `System.Formats.Asn1.AsnWriter+Scope` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.AsnWriter+Scope` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct Scope : System.IDisposable { public void Dispose() => throw null; @@ -228,7 +200,7 @@ namespace System public void WriteUtcTime(System.DateTimeOffset value, int twoDigitYearMax, System.Formats.Asn1.Asn1Tag? tag = default(System.Formats.Asn1.Asn1Tag?)) => throw null; } - // Generated from `System.Formats.Asn1.TagClass` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.TagClass` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum TagClass { Application, @@ -237,7 +209,7 @@ namespace System Universal, } - // Generated from `System.Formats.Asn1.UniversalTagNumber` in `System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Formats.Asn1.UniversalTagNumber` in `System.Formats.Asn1, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum UniversalTagNumber { BMPString, @@ -285,12 +257,4 @@ namespace System } } - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ - - } - } } 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 6f570dac7f5..e33f82838c0 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 @@ -6,7 +6,7 @@ namespace System { namespace Compression { - // Generated from `System.IO.Compression.BrotliDecoder` in `System.IO.Compression.Brotli, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.BrotliDecoder` in `System.IO.Compression.Brotli, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public struct BrotliDecoder : System.IDisposable { // Stub generator skipped constructor @@ -15,7 +15,7 @@ namespace System public static bool TryDecompress(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.IO.Compression.BrotliEncoder` in `System.IO.Compression.Brotli, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.BrotliEncoder` in `System.IO.Compression.Brotli, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public struct BrotliEncoder : System.IDisposable { // Stub generator skipped constructor @@ -28,7 +28,7 @@ namespace System public static bool TryCompress(System.ReadOnlySpan source, System.Span destination, out int bytesWritten, int quality, int window) => throw null; } - // Generated from `System.IO.Compression.BrotliStream` in `System.IO.Compression.Brotli, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.BrotliStream` in `System.IO.Compression.Brotli, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public class BrotliStream : System.IO.Stream { public System.IO.Stream BaseStream { get => throw null; } @@ -53,12 +53,14 @@ namespace System 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; } } 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 8ac378a81fc..e1b983b8182 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 @@ -6,7 +6,7 @@ namespace System { namespace Compression { - // Generated from `System.IO.Compression.ZipFile` in `System.IO.Compression.ZipFile, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.ZipFile` in `System.IO.Compression.ZipFile, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public static class ZipFile { public static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName) => throw null; @@ -21,7 +21,7 @@ namespace System public static System.IO.Compression.ZipArchive OpenRead(string archiveFileName) => throw null; } - // Generated from `System.IO.Compression.ZipFileExtensions` in `System.IO.Compression.ZipFile, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.ZipFileExtensions` in `System.IO.Compression.ZipFile, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public static class ZipFileExtensions { public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile(this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName) => 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 bd857ea246f..1b1b7ff4075 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 @@ -6,27 +6,28 @@ namespace System { namespace Compression { - // Generated from `System.IO.Compression.CompressionLevel` in `System.IO.Compression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.CompressionLevel` in `System.IO.Compression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public enum CompressionLevel { Fastest, NoCompression, Optimal, + SmallestSize, } - // Generated from `System.IO.Compression.CompressionMode` in `System.IO.Compression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.CompressionMode` in `System.IO.Compression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public enum CompressionMode { Compress, Decompress, } - // Generated from `System.IO.Compression.DeflateStream` in `System.IO.Compression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.DeflateStream` in `System.IO.Compression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` 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[] array, 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; } @@ -44,25 +45,25 @@ namespace System 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[] array, int offset, int count) => 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[] array, int offset, int count, System.Threading.CancellationToken cancellationToken) => 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[] array, int offset, int count) => 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[] array, int offset, int count, System.Threading.CancellationToken cancellationToken) => 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; } - // Generated from `System.IO.Compression.GZipStream` in `System.IO.Compression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.GZipStream` in `System.IO.Compression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public class GZipStream : System.IO.Stream { public System.IO.Stream BaseStream { get => throw null; } - public override System.IAsyncResult BeginRead(System.Byte[] array, int offset, int count, System.AsyncCallback asyncCallback, object asyncState) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] array, int offset, int count, 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 override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } @@ -80,20 +81,57 @@ namespace System 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[] array, int offset, int count) => 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[] array, int offset, int count, System.Threading.CancellationToken cancellationToken) => 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[] array, int offset, int count) => 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[] array, int offset, int count, System.Threading.CancellationToken cancellationToken) => 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; } - // Generated from `System.IO.Compression.ZipArchive` in `System.IO.Compression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.ZLibStream` in `System.IO.Compression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + 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 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; + } + + // Generated from `System.IO.Compression.ZipArchive` in `System.IO.Compression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public class ZipArchive : System.IDisposable { public System.IO.Compression.ZipArchiveEntry CreateEntry(string entryName) => throw null; @@ -109,7 +147,7 @@ namespace System public ZipArchive(System.IO.Stream stream, System.IO.Compression.ZipArchiveMode mode, bool leaveOpen, System.Text.Encoding entryNameEncoding) => throw null; } - // Generated from `System.IO.Compression.ZipArchiveEntry` in `System.IO.Compression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.ZipArchiveEntry` in `System.IO.Compression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public class ZipArchiveEntry { public System.IO.Compression.ZipArchive Archive { get => throw null; } @@ -125,7 +163,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.IO.Compression.ZipArchiveMode` in `System.IO.Compression, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` + // Generated from `System.IO.Compression.ZipArchiveMode` in `System.IO.Compression, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089` public enum ZipArchiveMode { Create, 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 new file mode 100644 index 00000000000..3e79653f3ff --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.AccessControl.cs @@ -0,0 +1,139 @@ +// This file contains auto-generated code. + +namespace System +{ + namespace IO + { + // Generated from `System.IO.FileSystemAclExtensions` in `System.IO.FileSystem.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public static 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; + public static System.IO.DirectoryInfo CreateDirectory(this System.Security.AccessControl.DirectorySecurity directorySecurity, string path) => throw null; + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.DirectoryInfo directoryInfo) => throw null; + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.DirectoryInfo directoryInfo, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.FileInfo fileInfo) => throw null; + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.FileInfo fileInfo, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.FileStream fileStream) => throw null; + public static void SetAccessControl(this System.IO.DirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) => throw null; + 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 + { + namespace AccessControl + { + // Generated from `System.Security.AccessControl.DirectoryObjectSecurity` in `System.IO.FileSystem.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public abstract class DirectoryObjectSecurity : System.Security.AccessControl.ObjectSecurity + { + public virtual 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, System.Guid objectType, System.Guid inheritedObjectType) => throw null; + protected void AddAccessRule(System.Security.AccessControl.ObjectAccessRule rule) => throw null; + protected void AddAuditRule(System.Security.AccessControl.ObjectAuditRule rule) => throw null; + public virtual 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, System.Guid objectType, System.Guid inheritedObjectType) => throw null; + protected DirectoryObjectSecurity() => throw null; + protected DirectoryObjectSecurity(System.Security.AccessControl.CommonSecurityDescriptor securityDescriptor) => throw null; + public System.Security.AccessControl.AuthorizationRuleCollection GetAccessRules(bool includeExplicit, bool includeInherited, System.Type targetType) => throw null; + public System.Security.AccessControl.AuthorizationRuleCollection GetAuditRules(bool includeExplicit, bool includeInherited, System.Type targetType) => throw null; + protected override bool ModifyAccess(System.Security.AccessControl.AccessControlModification modification, System.Security.AccessControl.AccessRule rule, out bool modified) => throw null; + protected override bool ModifyAudit(System.Security.AccessControl.AccessControlModification modification, System.Security.AccessControl.AuditRule rule, out bool modified) => throw null; + protected bool RemoveAccessRule(System.Security.AccessControl.ObjectAccessRule rule) => throw null; + protected void RemoveAccessRuleAll(System.Security.AccessControl.ObjectAccessRule rule) => throw null; + protected void RemoveAccessRuleSpecific(System.Security.AccessControl.ObjectAccessRule rule) => throw null; + protected bool RemoveAuditRule(System.Security.AccessControl.ObjectAuditRule rule) => throw null; + protected void RemoveAuditRuleAll(System.Security.AccessControl.ObjectAuditRule rule) => throw null; + protected void RemoveAuditRuleSpecific(System.Security.AccessControl.ObjectAuditRule rule) => throw null; + protected void ResetAccessRule(System.Security.AccessControl.ObjectAccessRule rule) => throw null; + protected void SetAccessRule(System.Security.AccessControl.ObjectAccessRule rule) => throw null; + protected void SetAuditRule(System.Security.AccessControl.ObjectAuditRule rule) => throw null; + } + + // Generated from `System.Security.AccessControl.DirectorySecurity` in `System.IO.FileSystem.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class DirectorySecurity : System.Security.AccessControl.FileSystemSecurity + { + public DirectorySecurity() => throw null; + public DirectorySecurity(string name, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + } + + // Generated from `System.Security.AccessControl.FileSecurity` in `System.IO.FileSystem.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class FileSecurity : System.Security.AccessControl.FileSystemSecurity + { + public FileSecurity() => throw null; + public FileSecurity(string fileName, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + } + + // Generated from `System.Security.AccessControl.FileSystemAccessRule` in `System.IO.FileSystem.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; + public FileSystemAccessRule(string 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(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; } + } + + // Generated from `System.Security.AccessControl.FileSystemAuditRule` in `System.IO.FileSystem.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; + public FileSystemAuditRule(string 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(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; } + } + + // Generated from `System.Security.AccessControl.FileSystemRights` in `System.IO.FileSystem.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + [System.Flags] + public enum FileSystemRights + { + AppendData, + ChangePermissions, + CreateDirectories, + CreateFiles, + Delete, + DeleteSubdirectoriesAndFiles, + ExecuteFile, + FullControl, + ListDirectory, + Modify, + Read, + ReadAndExecute, + ReadAttributes, + ReadData, + ReadExtendedAttributes, + ReadPermissions, + Synchronize, + TakeOwnership, + Traverse, + Write, + WriteAttributes, + WriteData, + WriteExtendedAttributes, + } + + // Generated from `System.Security.AccessControl.FileSystemSecurity` in `System.IO.FileSystem.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 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 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; + public bool RemoveAuditRule(System.Security.AccessControl.FileSystemAuditRule rule) => throw null; + public void RemoveAuditRuleAll(System.Security.AccessControl.FileSystemAuditRule rule) => throw null; + public void RemoveAuditRuleSpecific(System.Security.AccessControl.FileSystemAuditRule rule) => throw null; + 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; + } + + } + } +} 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 d589069bfc7..a50ac804a12 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 @@ -4,7 +4,7 @@ namespace System { namespace IO { - // Generated from `System.IO.DriveInfo` in `System.IO.FileSystem.DriveInfo, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.DriveInfo` in `System.IO.FileSystem.DriveInfo, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DriveInfo : System.Runtime.Serialization.ISerializable { public System.Int64 AvailableFreeSpace { get => throw null; } @@ -22,7 +22,7 @@ namespace System public string VolumeLabel { get => throw null; set => throw null; } } - // Generated from `System.IO.DriveNotFoundException` in `System.IO.FileSystem.DriveInfo, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.DriveNotFoundException` in `System.IO.FileSystem.DriveInfo, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DriveNotFoundException : System.IO.IOException { public DriveNotFoundException() => throw null; @@ -31,7 +31,7 @@ namespace System public DriveNotFoundException(string message, System.Exception innerException) => throw null; } - // Generated from `System.IO.DriveType` in `System.IO.FileSystem.DriveInfo, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.DriveType` in `System.IO.FileSystem.DriveInfo, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DriveType { CDRom, 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 d85bc508dec..5dc014d247d 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 @@ -4,17 +4,17 @@ namespace System { namespace IO { - // Generated from `System.IO.ErrorEventArgs` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.ErrorEventArgs` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ErrorEventArgs : System.EventArgs { public ErrorEventArgs(System.Exception exception) => throw null; public virtual System.Exception GetException() => throw null; } - // Generated from `System.IO.ErrorEventHandler` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.ErrorEventHandler` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ErrorEventHandler(object sender, System.IO.ErrorEventArgs e); - // Generated from `System.IO.FileSystemEventArgs` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileSystemEventArgs` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileSystemEventArgs : System.EventArgs { public System.IO.WatcherChangeTypes ChangeType { get => throw null; } @@ -23,10 +23,10 @@ namespace System public string Name { get => throw null; } } - // Generated from `System.IO.FileSystemEventHandler` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileSystemEventHandler` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void FileSystemEventHandler(object sender, System.IO.FileSystemEventArgs e); - // Generated from `System.IO.FileSystemWatcher` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileSystemWatcher` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize { public void BeginInit() => throw null; @@ -58,7 +58,7 @@ namespace System public System.IO.WaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout) => throw null; } - // Generated from `System.IO.InternalBufferOverflowException` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.InternalBufferOverflowException` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InternalBufferOverflowException : System.SystemException { public InternalBufferOverflowException() => throw null; @@ -67,7 +67,7 @@ namespace System public InternalBufferOverflowException(string message, System.Exception inner) => throw null; } - // Generated from `System.IO.NotifyFilters` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.NotifyFilters` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum NotifyFilters { @@ -81,7 +81,7 @@ namespace System Size, } - // Generated from `System.IO.RenamedEventArgs` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.RenamedEventArgs` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RenamedEventArgs : System.IO.FileSystemEventArgs { public string OldFullPath { get => throw null; } @@ -89,10 +89,10 @@ namespace System public RenamedEventArgs(System.IO.WatcherChangeTypes changeType, string directory, string name, string oldName) : base(default(System.IO.WatcherChangeTypes), default(string), default(string)) => throw null; } - // Generated from `System.IO.RenamedEventHandler` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.RenamedEventHandler` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void RenamedEventHandler(object sender, System.IO.RenamedEventArgs e); - // Generated from `System.IO.WaitForChangedResult` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.WaitForChangedResult` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct WaitForChangedResult { public System.IO.WatcherChangeTypes ChangeType { get => throw null; set => throw null; } @@ -102,7 +102,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.IO.WatcherChangeTypes` in `System.IO.FileSystem.Watcher, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.WatcherChangeTypes` in `System.IO.FileSystem.Watcher, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum WatcherChangeTypes { 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 c4c72345a75..00000000000 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.FileSystem.cs +++ /dev/null @@ -1,327 +0,0 @@ -// This file contains auto-generated code. - -namespace System -{ - namespace IO - { - // Generated from `System.IO.Directory` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public static class Directory - { - public static System.IO.DirectoryInfo CreateDirectory(string path) => 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 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; - } - - // Generated from `System.IO.DirectoryInfo` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - 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; - } - - // Generated from `System.IO.EnumerationOptions` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - 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 bool RecurseSubdirectories { get => throw null; set => throw null; } - public bool ReturnSpecialDirectories { get => throw null; set => throw null; } - } - - // Generated from `System.IO.File` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - 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.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(string path) => throw null; - public static System.DateTime GetCreationTime(string path) => throw null; - public static System.DateTime GetCreationTimeUtc(string path) => 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 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 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 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 void SetAttributes(string path, System.IO.FileAttributes fileAttributes) => 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 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 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; - } - - // Generated from `System.IO.FileInfo` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - 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 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 override string ToString() => throw null; - } - - // Generated from `System.IO.FileSystemInfo` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public abstract class FileSystemInfo : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable - { - public System.IO.FileAttributes Attributes { get => throw null; set => 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 abstract string Name { get; } - protected string OriginalPath; - public void Refresh() => throw null; - public override string ToString() => throw null; - } - - // Generated from `System.IO.MatchCasing` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum MatchCasing - { - CaseInsensitive, - CaseSensitive, - PlatformDefault, - } - - // Generated from `System.IO.MatchType` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum MatchType - { - Simple, - Win32, - } - - // Generated from `System.IO.SearchOption` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum SearchOption - { - AllDirectories, - TopDirectoryOnly, - } - - namespace Enumeration - { - // Generated from `System.IO.Enumeration.FileSystemEntry` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - 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; - } - - // Generated from `System.IO.Enumeration.FileSystemEnumerable<>` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class FileSystemEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - // Generated from `System.IO.Enumeration.FileSystemEnumerable<>+FindPredicate` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public delegate bool FindPredicate(ref System.IO.Enumeration.FileSystemEntry entry); - - - // Generated from `System.IO.Enumeration.FileSystemEnumerable<>+FindTransform` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - 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; } - } - - // Generated from `System.IO.Enumeration.FileSystemEnumerator<>` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - 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); - } - - // Generated from `System.IO.Enumeration.FileSystemName` in `System.IO.FileSystem, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - 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; - } - - } - } -} 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 37bc92806f5..018770df468 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 @@ -6,13 +6,13 @@ namespace System { namespace IsolatedStorage { - // Generated from `System.IO.IsolatedStorage.INormalizeForIsolatedStorage` in `System.IO.IsolatedStorage, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.IsolatedStorage.INormalizeForIsolatedStorage` in `System.IO.IsolatedStorage, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INormalizeForIsolatedStorage { object Normalize(); } - // Generated from `System.IO.IsolatedStorage.IsolatedStorage` in `System.IO.IsolatedStorage, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.IsolatedStorage.IsolatedStorage` in `System.IO.IsolatedStorage, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IsolatedStorage : System.MarshalByRefObject { public object ApplicationIdentity { get => throw null; } @@ -33,7 +33,7 @@ namespace System public virtual System.Int64 UsedSize { get => throw null; } } - // Generated from `System.IO.IsolatedStorage.IsolatedStorageException` in `System.IO.IsolatedStorage, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.IsolatedStorage.IsolatedStorageException` in `System.IO.IsolatedStorage, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IsolatedStorageException : System.Exception { public IsolatedStorageException() => throw null; @@ -42,7 +42,7 @@ namespace System public IsolatedStorageException(string message, System.Exception inner) => throw null; } - // Generated from `System.IO.IsolatedStorage.IsolatedStorageFile` in `System.IO.IsolatedStorage, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.IsolatedStorage.IsolatedStorageFile` in `System.IO.IsolatedStorage, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IsolatedStorageFile : System.IO.IsolatedStorage.IsolatedStorage, System.IDisposable { public override System.Int64 AvailableFreeSpace { get => throw null; } @@ -90,7 +90,7 @@ namespace System public override System.Int64 UsedSize { get => throw null; } } - // Generated from `System.IO.IsolatedStorage.IsolatedStorageFileStream` in `System.IO.IsolatedStorage, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.IsolatedStorage.IsolatedStorageFileStream` in `System.IO.IsolatedStorage, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -134,7 +134,7 @@ namespace System public override void WriteByte(System.Byte value) => throw null; } - // Generated from `System.IO.IsolatedStorage.IsolatedStorageScope` in `System.IO.IsolatedStorage, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.IsolatedStorage.IsolatedStorageScope` in `System.IO.IsolatedStorage, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum IsolatedStorageScope { 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 0aea21647cd..b2cdf2a5c23 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 @@ -6,19 +6,19 @@ namespace Microsoft { namespace SafeHandles { - // Generated from `Microsoft.Win32.SafeHandles.SafeMemoryMappedFileHandle` in `System.IO.MemoryMappedFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeMemoryMappedFileHandle` in `System.IO.MemoryMappedFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeMemoryMappedFileHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { public override bool IsInvalid { get => throw null; } protected override bool ReleaseHandle() => throw null; - internal SafeMemoryMappedFileHandle() : base(default(bool)) => throw null; + public SafeMemoryMappedFileHandle() : base(default(bool)) => throw null; } - // Generated from `Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle` in `System.IO.MemoryMappedFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle` in `System.IO.MemoryMappedFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeMemoryMappedViewHandle : System.Runtime.InteropServices.SafeBuffer { protected override bool ReleaseHandle() => throw null; - internal SafeMemoryMappedViewHandle() : base(default(bool)) => throw null; + public SafeMemoryMappedViewHandle() : base(default(bool)) => throw null; } } @@ -30,7 +30,7 @@ namespace System { namespace MemoryMappedFiles { - // Generated from `System.IO.MemoryMappedFiles.MemoryMappedFile` in `System.IO.MemoryMappedFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.MemoryMappedFiles.MemoryMappedFile` in `System.IO.MemoryMappedFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -59,7 +59,7 @@ namespace System public Microsoft.Win32.SafeHandles.SafeMemoryMappedFileHandle SafeMemoryMappedFileHandle { get => throw null; } } - // Generated from `System.IO.MemoryMappedFiles.MemoryMappedFileAccess` in `System.IO.MemoryMappedFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.MemoryMappedFiles.MemoryMappedFileAccess` in `System.IO.MemoryMappedFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MemoryMappedFileAccess { CopyOnWrite, @@ -70,7 +70,7 @@ namespace System Write, } - // Generated from `System.IO.MemoryMappedFiles.MemoryMappedFileOptions` in `System.IO.MemoryMappedFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.MemoryMappedFiles.MemoryMappedFileOptions` in `System.IO.MemoryMappedFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MemoryMappedFileOptions { @@ -78,7 +78,7 @@ namespace System None, } - // Generated from `System.IO.MemoryMappedFiles.MemoryMappedFileRights` in `System.IO.MemoryMappedFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.MemoryMappedFiles.MemoryMappedFileRights` in `System.IO.MemoryMappedFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MemoryMappedFileRights { @@ -97,7 +97,7 @@ namespace System Write, } - // Generated from `System.IO.MemoryMappedFiles.MemoryMappedViewAccessor` in `System.IO.MemoryMappedFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.MemoryMappedFiles.MemoryMappedViewAccessor` in `System.IO.MemoryMappedFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MemoryMappedViewAccessor : System.IO.UnmanagedMemoryAccessor { protected override void Dispose(bool disposing) => throw null; @@ -106,7 +106,7 @@ namespace System public Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle SafeMemoryMappedViewHandle { get => throw null; } } - // Generated from `System.IO.MemoryMappedFiles.MemoryMappedViewStream` in `System.IO.MemoryMappedFiles, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.MemoryMappedFiles.MemoryMappedViewStream` in `System.IO.MemoryMappedFiles, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MemoryMappedViewStream : System.IO.UnmanagedMemoryStream { protected override void Dispose(bool disposing) => 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 new file mode 100644 index 00000000000..ba07707dd5b --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.IO.Pipes.AccessControl.cs @@ -0,0 +1,92 @@ +// This file contains auto-generated code. + +namespace System +{ + namespace IO + { + namespace Pipes + { + // Generated from `System.IO.Pipes.AnonymousPipeServerStreamAcl` in `System.IO.Pipes.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public static class AnonymousPipeServerStreamAcl + { + 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; + } + + // Generated from `System.IO.Pipes.NamedPipeServerStreamAcl` in `System.IO.Pipes.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + // Generated from `System.IO.Pipes.PipeAccessRights` in `System.IO.Pipes.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + [System.Flags] + public enum PipeAccessRights + { + AccessSystemSecurity, + ChangePermissions, + CreateNewInstance, + Delete, + FullControl, + Read, + ReadAttributes, + ReadData, + ReadExtendedAttributes, + ReadPermissions, + ReadWrite, + Synchronize, + TakeOwnership, + Write, + WriteAttributes, + WriteData, + WriteExtendedAttributes, + } + + // Generated from `System.IO.Pipes.PipeAccessRule` in `System.IO.Pipes.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; + } + + // Generated from `System.IO.Pipes.PipeAuditRule` in `System.IO.Pipes.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class PipeAuditRule : System.Security.AccessControl.AuditRule + { + public System.IO.Pipes.PipeAccessRights PipeAccessRights { get => throw null; } + 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; + } + + // Generated from `System.IO.Pipes.PipeSecurity` in `System.IO.Pipes.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class PipeSecurity : 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 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 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; + 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; + public void RemoveAuditRuleAll(System.IO.Pipes.PipeAuditRule rule) => throw null; + public void RemoveAuditRuleSpecific(System.IO.Pipes.PipeAuditRule rule) => throw null; + public void ResetAccessRule(System.IO.Pipes.PipeAccessRule rule) => throw null; + public void SetAccessRule(System.IO.Pipes.PipeAccessRule rule) => throw null; + public void SetAuditRule(System.IO.Pipes.PipeAuditRule rule) => throw null; + } + + // Generated from `System.IO.Pipes.PipesAclExtensions` in `System.IO.Pipes.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 e5caf6e83c1..26198219432 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 @@ -6,11 +6,12 @@ namespace Microsoft { namespace SafeHandles { - // Generated from `Microsoft.Win32.SafeHandles.SafePipeHandle` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafePipeHandle` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafePipeHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { 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; } @@ -23,7 +24,7 @@ namespace System { namespace Pipes { - // Generated from `System.IO.Pipes.AnonymousPipeClientStream` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Pipes.AnonymousPipeClientStream` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; @@ -34,7 +35,7 @@ namespace System // ERR: Stub generator didn't handle member: ~AnonymousPipeClientStream } - // Generated from `System.IO.Pipes.AnonymousPipeServerStream` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Pipes.AnonymousPipeServerStream` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AnonymousPipeServerStream : System.IO.Pipes.PipeStream { public AnonymousPipeServerStream() : base(default(System.IO.Pipes.PipeDirection), default(int)) => throw null; @@ -51,7 +52,7 @@ namespace System // ERR: Stub generator didn't handle member: ~AnonymousPipeServerStream } - // Generated from `System.IO.Pipes.NamedPipeClientStream` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Pipes.NamedPipeClientStream` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NamedPipeClientStream : System.IO.Pipes.PipeStream { protected internal override void CheckPipePropertyOperations() => throw null; @@ -72,7 +73,7 @@ namespace System // ERR: Stub generator didn't handle member: ~NamedPipeClientStream } - // Generated from `System.IO.Pipes.NamedPipeServerStream` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Pipes.NamedPipeServerStream` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NamedPipeServerStream : System.IO.Pipes.PipeStream { public System.IAsyncResult BeginWaitForConnection(System.AsyncCallback callback, object state) => throw null; @@ -94,7 +95,7 @@ namespace System // ERR: Stub generator didn't handle member: ~NamedPipeServerStream } - // Generated from `System.IO.Pipes.PipeDirection` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Pipes.PipeDirection` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PipeDirection { In, @@ -102,7 +103,7 @@ namespace System Out, } - // Generated from `System.IO.Pipes.PipeOptions` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Pipes.PipeOptions` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum PipeOptions { @@ -112,7 +113,7 @@ namespace System WriteThrough, } - // Generated from `System.IO.Pipes.PipeStream` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Pipes.PipeStream` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -157,10 +158,10 @@ namespace System public override void WriteByte(System.Byte value) => throw null; } - // Generated from `System.IO.Pipes.PipeStreamImpersonationWorker` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Pipes.PipeStreamImpersonationWorker` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void PipeStreamImpersonationWorker(); - // Generated from `System.IO.Pipes.PipeTransmissionMode` in `System.IO.Pipes, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Pipes.PipeTransmissionMode` in `System.IO.Pipes, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PipeTransmissionMode { Byte, 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 8904684df90..93a099122c5 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 @@ -4,7 +4,7 @@ namespace System { namespace Dynamic { - // Generated from `System.Dynamic.BinaryOperationBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.BinaryOperationBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class BinaryOperationBinder : System.Dynamic.DynamicMetaObjectBinder { protected BinaryOperationBinder(System.Linq.Expressions.ExpressionType operation) => throw null; @@ -15,7 +15,7 @@ namespace System public override System.Type ReturnType { get => throw null; } } - // Generated from `System.Dynamic.BindingRestrictions` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.BindingRestrictions` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class BindingRestrictions { public static System.Dynamic.BindingRestrictions Combine(System.Collections.Generic.IList contributingObjects) => throw null; @@ -27,7 +27,7 @@ namespace System public System.Linq.Expressions.Expression ToExpression() => throw null; } - // Generated from `System.Dynamic.CallInfo` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.CallInfo` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallInfo { public int ArgumentCount { get => throw null; } @@ -38,7 +38,7 @@ namespace System public override int GetHashCode() => throw null; } - // Generated from `System.Dynamic.ConvertBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.ConvertBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ConvertBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -50,7 +50,7 @@ namespace System public System.Type Type { get => throw null; } } - // Generated from `System.Dynamic.CreateInstanceBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.CreateInstanceBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CreateInstanceBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -61,7 +61,7 @@ namespace System public override System.Type ReturnType { get => throw null; } } - // Generated from `System.Dynamic.DeleteIndexBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.DeleteIndexBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DeleteIndexBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -72,7 +72,7 @@ namespace System public override System.Type ReturnType { get => throw null; } } - // Generated from `System.Dynamic.DeleteMemberBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.DeleteMemberBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DeleteMemberBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -84,7 +84,7 @@ namespace System public override System.Type ReturnType { get => throw null; } } - // Generated from `System.Dynamic.DynamicMetaObject` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.DynamicMetaObject` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DynamicMetaObject { public virtual System.Dynamic.DynamicMetaObject BindBinaryOperation(System.Dynamic.BinaryOperationBinder binder, System.Dynamic.DynamicMetaObject arg) => throw null; @@ -112,7 +112,7 @@ namespace System public object Value { get => throw null; } } - // Generated from `System.Dynamic.DynamicMetaObjectBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.DynamicMetaObjectBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DynamicMetaObjectBinder : System.Runtime.CompilerServices.CallSiteBinder { public abstract System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args); @@ -124,7 +124,7 @@ namespace System public virtual System.Type ReturnType { get => throw null; } } - // Generated from `System.Dynamic.DynamicObject` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.DynamicObject` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DynamicObject : System.Dynamic.IDynamicMetaObjectProvider { protected DynamicObject() => throw null; @@ -144,7 +144,7 @@ namespace System public virtual bool TryUnaryOperation(System.Dynamic.UnaryOperationBinder binder, out object result) => throw null; } - // Generated from `System.Dynamic.ExpandoObject` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.ExpandoObject` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExpandoObject : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.ComponentModel.INotifyPropertyChanged, System.Dynamic.IDynamicMetaObjectProvider { void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; @@ -168,7 +168,7 @@ namespace System System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } } - // Generated from `System.Dynamic.GetIndexBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.GetIndexBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class GetIndexBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -179,7 +179,7 @@ namespace System public override System.Type ReturnType { get => throw null; } } - // Generated from `System.Dynamic.GetMemberBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.GetMemberBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class GetMemberBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -191,19 +191,19 @@ namespace System public override System.Type ReturnType { get => throw null; } } - // Generated from `System.Dynamic.IDynamicMetaObjectProvider` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.IDynamicMetaObjectProvider` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDynamicMetaObjectProvider { System.Dynamic.DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter); } - // Generated from `System.Dynamic.IInvokeOnGetBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.IInvokeOnGetBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IInvokeOnGetBinder { bool InvokeOnGet { get; } } - // Generated from `System.Dynamic.InvokeBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.InvokeBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class InvokeBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -214,7 +214,7 @@ namespace System public override System.Type ReturnType { get => throw null; } } - // Generated from `System.Dynamic.InvokeMemberBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.InvokeMemberBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class InvokeMemberBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -228,7 +228,7 @@ namespace System public override System.Type ReturnType { get => throw null; } } - // Generated from `System.Dynamic.SetIndexBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.SetIndexBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SetIndexBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -239,7 +239,7 @@ namespace System protected SetIndexBinder(System.Dynamic.CallInfo callInfo) => throw null; } - // Generated from `System.Dynamic.SetMemberBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.SetMemberBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SetMemberBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -251,7 +251,7 @@ namespace System protected SetMemberBinder(string name, bool ignoreCase) => throw null; } - // Generated from `System.Dynamic.UnaryOperationBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Dynamic.UnaryOperationBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class UnaryOperationBinder : System.Dynamic.DynamicMetaObjectBinder { public override System.Dynamic.DynamicMetaObject Bind(System.Dynamic.DynamicMetaObject target, System.Dynamic.DynamicMetaObject[] args) => throw null; @@ -265,17 +265,17 @@ namespace System } namespace Linq { - // Generated from `System.Linq.IOrderedQueryable` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.IOrderedQueryable` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IOrderedQueryable : System.Collections.IEnumerable, System.Linq.IQueryable { } - // Generated from `System.Linq.IOrderedQueryable<>` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.IOrderedQueryable<>` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IOrderedQueryable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryable { } - // Generated from `System.Linq.IQueryProvider` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.IQueryProvider` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IQueryProvider { System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression); @@ -284,7 +284,7 @@ namespace System TResult Execute(System.Linq.Expressions.Expression expression); } - // Generated from `System.Linq.IQueryable` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.IQueryable` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IQueryable : System.Collections.IEnumerable { System.Type ElementType { get; } @@ -292,14 +292,14 @@ namespace System System.Linq.IQueryProvider Provider { get; } } - // Generated from `System.Linq.IQueryable<>` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.IQueryable<>` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IQueryable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Linq.IQueryable { } namespace Expressions { - // Generated from `System.Linq.Expressions.BinaryExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.BinaryExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BinaryExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -314,7 +314,7 @@ namespace System public System.Linq.Expressions.BinaryExpression Update(System.Linq.Expressions.Expression left, System.Linq.Expressions.LambdaExpression conversion, System.Linq.Expressions.Expression right) => throw null; } - // Generated from `System.Linq.Expressions.BlockExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.BlockExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BlockExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -326,7 +326,7 @@ namespace System public System.Collections.ObjectModel.ReadOnlyCollection Variables { get => throw null; } } - // Generated from `System.Linq.Expressions.CatchBlock` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.CatchBlock` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CatchBlock { public System.Linq.Expressions.Expression Body { get => throw null; } @@ -337,7 +337,7 @@ namespace System public System.Linq.Expressions.ParameterExpression Variable { get => throw null; } } - // Generated from `System.Linq.Expressions.ConditionalExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.ConditionalExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConditionalExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -349,7 +349,7 @@ namespace System public System.Linq.Expressions.ConditionalExpression Update(System.Linq.Expressions.Expression test, System.Linq.Expressions.Expression ifTrue, System.Linq.Expressions.Expression ifFalse) => throw null; } - // Generated from `System.Linq.Expressions.ConstantExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.ConstantExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConstantExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -358,7 +358,7 @@ namespace System public object Value { get => throw null; } } - // Generated from `System.Linq.Expressions.DebugInfoExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.DebugInfoExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebugInfoExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -372,7 +372,7 @@ namespace System public override System.Type Type { get => throw null; } } - // Generated from `System.Linq.Expressions.DefaultExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.DefaultExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -380,7 +380,7 @@ namespace System public override System.Type Type { get => throw null; } } - // Generated from `System.Linq.Expressions.DynamicExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.DynamicExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -408,14 +408,14 @@ namespace System public System.Linq.Expressions.DynamicExpression Update(System.Collections.Generic.IEnumerable arguments) => throw null; } - // Generated from `System.Linq.Expressions.DynamicExpressionVisitor` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.DynamicExpressionVisitor` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Linq.Expressions.ElementInit` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.ElementInit` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ElementInit : System.Linq.Expressions.IArgumentProvider { public System.Reflection.MethodInfo AddMethod { get => throw null; } @@ -426,7 +426,7 @@ namespace System public System.Linq.Expressions.ElementInit Update(System.Collections.Generic.IEnumerable arguments) => throw null; } - // Generated from `System.Linq.Expressions.Expression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.Expression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Expression { protected internal virtual System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -751,7 +751,7 @@ namespace System protected internal virtual System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; } - // Generated from `System.Linq.Expressions.Expression<>` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.Expression<>` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Expression : System.Linq.Expressions.LambdaExpression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -761,7 +761,7 @@ namespace System public System.Linq.Expressions.Expression Update(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable parameters) => throw null; } - // Generated from `System.Linq.Expressions.ExpressionType` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.ExpressionType` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ExpressionType { Add, @@ -851,7 +851,7 @@ namespace System Unbox, } - // Generated from `System.Linq.Expressions.ExpressionVisitor` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.ExpressionVisitor` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ExpressionVisitor { protected ExpressionVisitor() => throw null; @@ -896,7 +896,7 @@ namespace System protected internal virtual System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression node) => throw null; } - // Generated from `System.Linq.Expressions.GotoExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.GotoExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GotoExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -908,7 +908,7 @@ namespace System public System.Linq.Expressions.Expression Value { get => throw null; } } - // Generated from `System.Linq.Expressions.GotoExpressionKind` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.GotoExpressionKind` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum GotoExpressionKind { Break, @@ -917,14 +917,14 @@ namespace System Return, } - // Generated from `System.Linq.Expressions.IArgumentProvider` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.IArgumentProvider` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IArgumentProvider { int ArgumentCount { get; } System.Linq.Expressions.Expression GetArgument(int index); } - // Generated from `System.Linq.Expressions.IDynamicExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.IDynamicExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDynamicExpression : System.Linq.Expressions.IArgumentProvider { object CreateCallSite(); @@ -932,7 +932,7 @@ namespace System System.Linq.Expressions.Expression Rewrite(System.Linq.Expressions.Expression[] args); } - // Generated from `System.Linq.Expressions.IndexExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.IndexExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; @@ -946,7 +946,7 @@ namespace System public System.Linq.Expressions.IndexExpression Update(System.Linq.Expressions.Expression @object, System.Collections.Generic.IEnumerable arguments) => throw null; } - // Generated from `System.Linq.Expressions.InvocationExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.InvocationExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; @@ -959,7 +959,7 @@ namespace System public System.Linq.Expressions.InvocationExpression Update(System.Linq.Expressions.Expression expression, System.Collections.Generic.IEnumerable arguments) => throw null; } - // Generated from `System.Linq.Expressions.LabelExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.LabelExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LabelExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -970,7 +970,7 @@ namespace System public System.Linq.Expressions.LabelExpression Update(System.Linq.Expressions.LabelTarget target, System.Linq.Expressions.Expression defaultValue) => throw null; } - // Generated from `System.Linq.Expressions.LabelTarget` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.LabelTarget` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LabelTarget { public string Name { get => throw null; } @@ -978,7 +978,7 @@ namespace System public System.Type Type { get => throw null; } } - // Generated from `System.Linq.Expressions.LambdaExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.LambdaExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class LambdaExpression : System.Linq.Expressions.Expression { public System.Linq.Expressions.Expression Body { get => throw null; } @@ -994,7 +994,7 @@ namespace System public override System.Type Type { get => throw null; } } - // Generated from `System.Linq.Expressions.ListInitExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.ListInitExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ListInitExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1007,7 +1007,7 @@ namespace System public System.Linq.Expressions.ListInitExpression Update(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable initializers) => throw null; } - // Generated from `System.Linq.Expressions.LoopExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.LoopExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LoopExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1019,7 +1019,7 @@ namespace System public System.Linq.Expressions.LoopExpression Update(System.Linq.Expressions.LabelTarget breakLabel, System.Linq.Expressions.LabelTarget continueLabel, System.Linq.Expressions.Expression body) => throw null; } - // Generated from `System.Linq.Expressions.MemberAssignment` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.MemberAssignment` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MemberAssignment : System.Linq.Expressions.MemberBinding { public System.Linq.Expressions.Expression Expression { get => throw null; } @@ -1027,7 +1027,7 @@ namespace System public System.Linq.Expressions.MemberAssignment Update(System.Linq.Expressions.Expression expression) => throw null; } - // Generated from `System.Linq.Expressions.MemberBinding` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.MemberBinding` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MemberBinding { public System.Linq.Expressions.MemberBindingType BindingType { get => throw null; } @@ -1036,7 +1036,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Linq.Expressions.MemberBindingType` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.MemberBindingType` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MemberBindingType { Assignment, @@ -1044,7 +1044,7 @@ namespace System MemberBinding, } - // Generated from `System.Linq.Expressions.MemberExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.MemberExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MemberExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1054,7 +1054,7 @@ namespace System public System.Linq.Expressions.MemberExpression Update(System.Linq.Expressions.Expression expression) => throw null; } - // Generated from `System.Linq.Expressions.MemberInitExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.MemberInitExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MemberInitExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1067,7 +1067,7 @@ namespace System public System.Linq.Expressions.MemberInitExpression Update(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable bindings) => throw null; } - // Generated from `System.Linq.Expressions.MemberListBinding` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.MemberListBinding` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MemberListBinding : System.Linq.Expressions.MemberBinding { public System.Collections.ObjectModel.ReadOnlyCollection Initializers { get => throw null; } @@ -1075,7 +1075,7 @@ namespace System public System.Linq.Expressions.MemberListBinding Update(System.Collections.Generic.IEnumerable initializers) => throw null; } - // Generated from `System.Linq.Expressions.MemberMemberBinding` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.MemberMemberBinding` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MemberMemberBinding : System.Linq.Expressions.MemberBinding { public System.Collections.ObjectModel.ReadOnlyCollection Bindings { get => throw null; } @@ -1083,7 +1083,7 @@ namespace System public System.Linq.Expressions.MemberMemberBinding Update(System.Collections.Generic.IEnumerable bindings) => throw null; } - // Generated from `System.Linq.Expressions.MethodCallExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.MethodCallExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -1097,7 +1097,7 @@ namespace System public System.Linq.Expressions.MethodCallExpression Update(System.Linq.Expressions.Expression @object, System.Collections.Generic.IEnumerable arguments) => throw null; } - // Generated from `System.Linq.Expressions.NewArrayExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.NewArrayExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NewArrayExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1106,7 +1106,7 @@ namespace System public System.Linq.Expressions.NewArrayExpression Update(System.Collections.Generic.IEnumerable expressions) => throw null; } - // Generated from `System.Linq.Expressions.NewExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.NewExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -1120,7 +1120,7 @@ namespace System public System.Linq.Expressions.NewExpression Update(System.Collections.Generic.IEnumerable arguments) => throw null; } - // Generated from `System.Linq.Expressions.ParameterExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.ParameterExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ParameterExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1130,7 +1130,7 @@ namespace System public override System.Type Type { get => throw null; } } - // Generated from `System.Linq.Expressions.RuntimeVariablesExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.RuntimeVariablesExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RuntimeVariablesExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1140,7 +1140,7 @@ namespace System public System.Collections.ObjectModel.ReadOnlyCollection Variables { get => throw null; } } - // Generated from `System.Linq.Expressions.SwitchCase` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.SwitchCase` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SwitchCase { public System.Linq.Expressions.Expression Body { get => throw null; } @@ -1149,7 +1149,7 @@ namespace System public System.Linq.Expressions.SwitchCase Update(System.Collections.Generic.IEnumerable testValues, System.Linq.Expressions.Expression body) => throw null; } - // Generated from `System.Linq.Expressions.SwitchExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.SwitchExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SwitchExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1162,7 +1162,7 @@ namespace System public System.Linq.Expressions.SwitchExpression Update(System.Linq.Expressions.Expression switchValue, System.Collections.Generic.IEnumerable cases, System.Linq.Expressions.Expression defaultBody) => throw null; } - // Generated from `System.Linq.Expressions.SymbolDocumentInfo` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.SymbolDocumentInfo` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SymbolDocumentInfo { public virtual System.Guid DocumentType { get => throw null; } @@ -1171,7 +1171,7 @@ namespace System public virtual System.Guid LanguageVendor { get => throw null; } } - // Generated from `System.Linq.Expressions.TryExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.TryExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TryExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1184,7 +1184,7 @@ namespace System 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; } - // Generated from `System.Linq.Expressions.TypeBinaryExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.TypeBinaryExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeBinaryExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1195,7 +1195,7 @@ namespace System public System.Linq.Expressions.TypeBinaryExpression Update(System.Linq.Expressions.Expression expression) => throw null; } - // Generated from `System.Linq.Expressions.UnaryExpression` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Expressions.UnaryExpression` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnaryExpression : System.Linq.Expressions.Expression { protected internal override System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null; @@ -1216,7 +1216,7 @@ namespace System { namespace CompilerServices { - // Generated from `System.Runtime.CompilerServices.CallSite` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallSite` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallSite { public System.Runtime.CompilerServices.CallSiteBinder Binder { get => throw null; } @@ -1224,7 +1224,7 @@ namespace System public static System.Runtime.CompilerServices.CallSite Create(System.Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder) => throw null; } - // Generated from `System.Runtime.CompilerServices.CallSite<>` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallSite<>` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallSite : System.Runtime.CompilerServices.CallSite where T : class { public static System.Runtime.CompilerServices.CallSite Create(System.Runtime.CompilerServices.CallSiteBinder binder) => throw null; @@ -1232,7 +1232,7 @@ namespace System public T Update { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.CallSiteBinder` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallSiteBinder` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CallSiteBinder { public abstract System.Linq.Expressions.Expression Bind(object[] args, System.Collections.ObjectModel.ReadOnlyCollection parameters, System.Linq.Expressions.LabelTarget returnLabel); @@ -1242,13 +1242,13 @@ namespace System public static System.Linq.Expressions.LabelTarget UpdateLabel { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.CallSiteHelpers` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallSiteHelpers` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class CallSiteHelpers { public static bool IsInternalFrame(System.Reflection.MethodBase mb) => throw null; } - // Generated from `System.Runtime.CompilerServices.DebugInfoGenerator` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.DebugInfoGenerator` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DebugInfoGenerator { public static System.Runtime.CompilerServices.DebugInfoGenerator CreatePdbGenerator() => throw null; @@ -1256,7 +1256,7 @@ namespace System public abstract void MarkSequencePoint(System.Linq.Expressions.LambdaExpression method, int ilOffset, System.Linq.Expressions.DebugInfoExpression sequencePoint); } - // Generated from `System.Runtime.CompilerServices.DynamicAttribute` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.DynamicAttribute` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DynamicAttribute : System.Attribute { public DynamicAttribute() => throw null; @@ -1264,14 +1264,14 @@ namespace System public System.Collections.Generic.IList TransformFlags { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.IRuntimeVariables` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IRuntimeVariables` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IRuntimeVariables { int Count { get; } object this[int index] { get; set; } } - // Generated from `System.Runtime.CompilerServices.ReadOnlyCollectionBuilder<>` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ReadOnlyCollectionBuilder<>` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 void Add(T item) => throw null; @@ -1308,7 +1308,7 @@ namespace System public System.Collections.ObjectModel.ReadOnlyCollection ToReadOnlyCollection() => throw null; } - // Generated from `System.Runtime.CompilerServices.RuleCache<>` in `System.Linq.Expressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.RuleCache<>` in `System.Linq.Expressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 34a16b428eb..c63dc25db6b 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 @@ -4,13 +4,13 @@ namespace System { namespace Linq { - // Generated from `System.Linq.OrderedParallelQuery<>` in `System.Linq.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.OrderedParallelQuery<>` in `System.Linq.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OrderedParallelQuery : System.Linq.ParallelQuery { public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; } - // Generated from `System.Linq.ParallelEnumerable` in `System.Linq.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.ParallelEnumerable` in `System.Linq.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ParallelEnumerable { public static TResult Aggregate(this System.Linq.ParallelQuery source, System.Func seedFactory, System.Func updateAccumulatorFunc, System.Func combineAccumulatorsFunc, System.Func resultSelector) => throw null; @@ -218,14 +218,14 @@ namespace System public static System.Linq.ParallelQuery Zip(this System.Linq.ParallelQuery first, System.Linq.ParallelQuery second, System.Func resultSelector) => throw null; } - // Generated from `System.Linq.ParallelExecutionMode` in `System.Linq.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.ParallelExecutionMode` in `System.Linq.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ParallelExecutionMode { Default, ForceParallelism, } - // Generated from `System.Linq.ParallelMergeOptions` in `System.Linq.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.ParallelMergeOptions` in `System.Linq.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ParallelMergeOptions { AutoBuffered, @@ -234,14 +234,14 @@ namespace System NotBuffered, } - // Generated from `System.Linq.ParallelQuery` in `System.Linq.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.ParallelQuery` in `System.Linq.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ParallelQuery : System.Collections.IEnumerable { System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; internal ParallelQuery() => throw null; } - // Generated from `System.Linq.ParallelQuery<>` in `System.Linq.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.ParallelQuery<>` in `System.Linq.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ParallelQuery : System.Linq.ParallelQuery, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public virtual System.Collections.Generic.IEnumerator GetEnumerator() => 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 ee4e7b28719..ba1896a4172 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 @@ -4,25 +4,25 @@ namespace System { namespace Linq { - // Generated from `System.Linq.EnumerableExecutor` in `System.Linq.Queryable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.EnumerableExecutor` in `System.Linq.Queryable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EnumerableExecutor { internal EnumerableExecutor() => throw null; } - // Generated from `System.Linq.EnumerableExecutor<>` in `System.Linq.Queryable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.EnumerableExecutor<>` in `System.Linq.Queryable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EnumerableExecutor : System.Linq.EnumerableExecutor { public EnumerableExecutor(System.Linq.Expressions.Expression expression) => throw null; } - // Generated from `System.Linq.EnumerableQuery` in `System.Linq.Queryable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.EnumerableQuery` in `System.Linq.Queryable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EnumerableQuery { internal EnumerableQuery() => throw null; } - // Generated from `System.Linq.EnumerableQuery<>` in `System.Linq.Queryable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.EnumerableQuery<>` in `System.Linq.Queryable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { System.Linq.IQueryable System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression expression) => throw null; @@ -39,7 +39,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Linq.Queryable` in `System.Linq.Queryable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Queryable` in `System.Linq.Queryable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -72,6 +72,7 @@ namespace System 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 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; public static bool Contains(this System.Linq.IQueryable source, TSource item) => throw null; public static bool Contains(this System.Linq.IQueryable source, TSource item, System.Collections.Generic.IEqualityComparer comparer) => throw null; @@ -81,14 +82,22 @@ namespace System public static System.Linq.IQueryable DefaultIfEmpty(this System.Linq.IQueryable source, TSource defaultValue) => throw null; public static System.Linq.IQueryable Distinct(this System.Linq.IQueryable source) => throw null; public static System.Linq.IQueryable Distinct(this System.Linq.IQueryable source, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.IQueryable DistinctBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector) => throw null; + public static System.Linq.IQueryable DistinctBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static TSource ElementAt(this System.Linq.IQueryable source, System.Index index) => throw null; public static TSource ElementAt(this System.Linq.IQueryable source, int index) => throw null; + public static TSource ElementAtOrDefault(this System.Linq.IQueryable source, System.Index index) => throw null; public static TSource ElementAtOrDefault(this System.Linq.IQueryable source, int index) => throw null; public static System.Linq.IQueryable Except(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2) => throw null; public static System.Linq.IQueryable Except(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.IQueryable ExceptBy(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Linq.Expressions.Expression> keySelector) => throw null; + public static System.Linq.IQueryable ExceptBy(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Linq.Expressions.Expression> keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static TSource First(this System.Linq.IQueryable source) => throw null; public static TSource First(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static TSource FirstOrDefault(this System.Linq.IQueryable source) => throw null; 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, System.Linq.Expressions.Expression> elementSelector) => throw null; @@ -101,18 +110,28 @@ namespace System 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; public static System.Linq.IQueryable Intersect(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.IQueryable IntersectBy(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Linq.Expressions.Expression> keySelector) => throw null; + public static System.Linq.IQueryable IntersectBy(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 Join(this System.Linq.IQueryable outer, System.Collections.Generic.IEnumerable inner, System.Linq.Expressions.Expression> outerKeySelector, System.Linq.Expressions.Expression> innerKeySelector, System.Linq.Expressions.Expression> resultSelector) => throw null; public static System.Linq.IQueryable Join(this System.Linq.IQueryable outer, System.Collections.Generic.IEnumerable inner, System.Linq.Expressions.Expression> outerKeySelector, System.Linq.Expressions.Expression> innerKeySelector, System.Linq.Expressions.Expression> resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; public static TSource Last(this System.Linq.IQueryable source) => throw null; public static TSource Last(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static TSource LastOrDefault(this System.Linq.IQueryable source) => throw null; 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 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 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 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; public static System.Linq.IOrderedQueryable OrderBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector) => throw null; public static System.Linq.IOrderedQueryable OrderBy(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> keySelector, System.Collections.Generic.IComparer comparer) => throw null; @@ -132,6 +151,8 @@ namespace System public static TSource Single(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; public static TSource SingleOrDefault(this System.Linq.IQueryable source) => throw null; public static TSource SingleOrDefault(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate) => throw null; + public static TSource SingleOrDefault(this System.Linq.IQueryable source, System.Linq.Expressions.Expression> predicate, TSource defaultValue) => throw null; + public static TSource SingleOrDefault(this System.Linq.IQueryable source, TSource defaultValue) => throw null; public static System.Linq.IQueryable Skip(this System.Linq.IQueryable source, int count) => throw null; 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; @@ -156,6 +177,7 @@ namespace System 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 System.Linq.IQueryable Take(this System.Linq.IQueryable source, int count) => 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; @@ -166,9 +188,12 @@ namespace System public static System.Linq.IOrderedQueryable ThenByDescending(this System.Linq.IOrderedQueryable source, System.Linq.Expressions.Expression> keySelector, System.Collections.Generic.IComparer comparer) => throw null; public static System.Linq.IQueryable Union(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2) => throw null; public static System.Linq.IQueryable Union(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Linq.IQueryable UnionBy(this System.Linq.IQueryable source1, System.Collections.Generic.IEnumerable source2, System.Linq.Expressions.Expression> keySelector) => throw null; + 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 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 49172866470..f83bf76f605 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 @@ -4,7 +4,7 @@ namespace System { namespace Linq { - // Generated from `System.Linq.Enumerable` in `System.Linq, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Enumerable` in `System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Enumerable { public static TResult Aggregate(this System.Collections.Generic.IEnumerable source, TAccumulate seed, System.Func func, System.Func resultSelector) => throw null; @@ -36,6 +36,7 @@ namespace System 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 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; public static bool Contains(this System.Collections.Generic.IEnumerable source, TSource value) => throw null; public static bool Contains(this System.Collections.Generic.IEnumerable source, TSource value, System.Collections.Generic.IEqualityComparer comparer) => throw null; @@ -45,15 +46,23 @@ namespace System public static System.Collections.Generic.IEnumerable DefaultIfEmpty(this System.Collections.Generic.IEnumerable source, TSource defaultValue) => throw null; public static System.Collections.Generic.IEnumerable Distinct(this System.Collections.Generic.IEnumerable source) => throw null; public static System.Collections.Generic.IEnumerable Distinct(this System.Collections.Generic.IEnumerable source, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Collections.Generic.IEnumerable DistinctBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; + public static System.Collections.Generic.IEnumerable DistinctBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static TSource ElementAt(this System.Collections.Generic.IEnumerable source, System.Index index) => throw null; public static TSource ElementAt(this System.Collections.Generic.IEnumerable source, int index) => throw null; + public static TSource ElementAtOrDefault(this System.Collections.Generic.IEnumerable source, System.Index index) => throw null; public static TSource ElementAtOrDefault(this System.Collections.Generic.IEnumerable source, int index) => throw null; public static System.Collections.Generic.IEnumerable Empty() => throw null; public static System.Collections.Generic.IEnumerable Except(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second) => throw null; public static System.Collections.Generic.IEnumerable Except(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Collections.Generic.IEnumerable ExceptBy(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Func keySelector) => throw null; + public static System.Collections.Generic.IEnumerable ExceptBy(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Func keySelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; 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, 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, System.Func elementSelector) => throw null; @@ -66,12 +75,16 @@ namespace System 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; public static System.Collections.Generic.IEnumerable Intersect(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public static System.Collections.Generic.IEnumerable IntersectBy(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Func keySelector) => throw null; + public static System.Collections.Generic.IEnumerable IntersectBy(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 Join(this System.Collections.Generic.IEnumerable outer, System.Collections.Generic.IEnumerable inner, System.Func outerKeySelector, System.Func innerKeySelector, System.Func resultSelector) => throw null; public static System.Collections.Generic.IEnumerable Join(this System.Collections.Generic.IEnumerable outer, System.Collections.Generic.IEnumerable inner, System.Func outerKeySelector, System.Func innerKeySelector, System.Func resultSelector, System.Collections.Generic.IEqualityComparer comparer) => throw null; 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, 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; @@ -96,6 +109,9 @@ namespace System 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 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 double Min(this System.Collections.Generic.IEnumerable source) => throw null; @@ -118,6 +134,9 @@ namespace System 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 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; public static System.Linq.IOrderedEnumerable OrderBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector) => throw null; public static System.Linq.IOrderedEnumerable OrderBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IComparer comparer) => throw null; @@ -139,6 +158,8 @@ namespace System 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, 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; @@ -163,6 +184,7 @@ namespace System 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 System.Collections.Generic.IEnumerable Take(this System.Collections.Generic.IEnumerable source, int count) => 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; @@ -183,21 +205,25 @@ namespace System 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 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; + public static System.Collections.Generic.IEnumerable UnionBy(this System.Collections.Generic.IEnumerable first, System.Collections.Generic.IEnumerable second, System.Func keySelector) => throw null; + 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 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; } - // Generated from `System.Linq.IGrouping<,>` in `System.Linq, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.IGrouping<,>` in `System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IGrouping : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { TKey Key { get; } } - // Generated from `System.Linq.ILookup<,>` in `System.Linq, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.ILookup<,>` in `System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ILookup : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { bool Contains(TKey key); @@ -205,13 +231,13 @@ namespace System System.Collections.Generic.IEnumerable this[TKey key] { get; } } - // Generated from `System.Linq.IOrderedEnumerable<>` in `System.Linq, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.IOrderedEnumerable<>` in `System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IOrderedEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { System.Linq.IOrderedEnumerable CreateOrderedEnumerable(System.Func keySelector, System.Collections.Generic.IComparer comparer, bool descending); } - // Generated from `System.Linq.Lookup<,>` in `System.Linq, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Linq.Lookup<,>` in `System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; 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 2b52ef32ecb..0b1f6aaaa4a 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 @@ -2,9 +2,28 @@ namespace System { - // Generated from `System.MemoryExtensions` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.MemoryExtensions` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class MemoryExtensions { + // Generated from `System.MemoryExtensions+TryWriteInterpolatedStringHandler` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public struct TryWriteInterpolatedStringHandler + { + 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 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; @@ -46,6 +65,8 @@ namespace System 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; @@ -80,7 +101,9 @@ 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.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; @@ -136,9 +159,11 @@ 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; } - // Generated from `System.SequencePosition` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.SequencePosition` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct SequencePosition : System.IEquatable { public bool Equals(System.SequencePosition other) => throw null; @@ -152,7 +177,7 @@ namespace System namespace Buffers { - // Generated from `System.Buffers.ArrayBufferWriter<>` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.ArrayBufferWriter<>` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ArrayBufferWriter : System.Buffers.IBufferWriter { public void Advance(int count) => throw null; @@ -168,7 +193,7 @@ namespace System public System.ReadOnlySpan WrittenSpan { get => throw null; } } - // Generated from `System.Buffers.BuffersExtensions` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.BuffersExtensions` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class BuffersExtensions { public static void CopyTo(System.Buffers.ReadOnlySequence source, System.Span destination) => throw null; @@ -177,7 +202,7 @@ namespace System public static void Write(this System.Buffers.IBufferWriter writer, System.ReadOnlySpan value) => throw null; } - // Generated from `System.Buffers.IBufferWriter<>` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.IBufferWriter<>` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IBufferWriter { void Advance(int count); @@ -185,7 +210,7 @@ namespace System System.Span GetSpan(int sizeHint = default(int)); } - // Generated from `System.Buffers.MemoryPool<>` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.MemoryPool<>` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class MemoryPool : System.IDisposable { public void Dispose() => throw null; @@ -196,10 +221,10 @@ namespace System public static System.Buffers.MemoryPool Shared { get => throw null; } } - // Generated from `System.Buffers.ReadOnlySequence<>` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.ReadOnlySequence<>` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ReadOnlySequence { - // Generated from `System.Buffers.ReadOnlySequence<>+Enumerator` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.ReadOnlySequence<>+Enumerator` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct Enumerator { public System.ReadOnlyMemory Current { get => throw null; } @@ -239,7 +264,7 @@ namespace System public bool TryGet(ref System.SequencePosition position, out System.ReadOnlyMemory memory, bool advance = default(bool)) => throw null; } - // Generated from `System.Buffers.ReadOnlySequenceSegment<>` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.ReadOnlySequenceSegment<>` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ReadOnlySequenceSegment { public System.ReadOnlyMemory Memory { get => throw null; set => throw null; } @@ -248,7 +273,7 @@ namespace System public System.Int64 RunningIndex { get => throw null; set => throw null; } } - // Generated from `System.Buffers.SequenceReader<>` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.SequenceReader<>` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct SequenceReader where T : unmanaged, System.IEquatable { public void Advance(System.Int64 count) => throw null; @@ -289,7 +314,7 @@ namespace System public System.ReadOnlySpan UnreadSpan { get => throw null; } } - // Generated from `System.Buffers.SequenceReaderExtensions` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.SequenceReaderExtensions` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class SequenceReaderExtensions { public static bool TryReadBigEndian(ref System.Buffers.SequenceReader reader, out int value) => throw null; @@ -300,7 +325,7 @@ namespace System public static bool TryReadLittleEndian(ref System.Buffers.SequenceReader reader, out System.Int16 value) => throw null; } - // Generated from `System.Buffers.StandardFormat` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.StandardFormat` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct StandardFormat : System.IEquatable { public static bool operator !=(System.Buffers.StandardFormat left, System.Buffers.StandardFormat right) => throw null; @@ -325,11 +350,13 @@ namespace System namespace Binary { - // Generated from `System.Buffers.Binary.BinaryPrimitives` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.Binary.BinaryPrimitives` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -354,6 +381,8 @@ namespace System 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; @@ -370,6 +399,8 @@ namespace System 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; @@ -386,6 +417,8 @@ namespace System 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; @@ -405,7 +438,7 @@ namespace System } namespace Text { - // Generated from `System.Buffers.Text.Base64` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.Text.Base64` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -416,7 +449,7 @@ namespace System public static int GetMaxEncodedToUtf8Length(int length) => throw null; } - // Generated from `System.Buffers.Text.Utf8Formatter` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.Text.Utf8Formatter` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -437,7 +470,7 @@ namespace System public static bool TryFormat(System.UInt16 value, System.Span destination, out int bytesWritten, System.Buffers.StandardFormat format = default(System.Buffers.StandardFormat)) => throw null; } - // Generated from `System.Buffers.Text.Utf8Parser` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Buffers.Text.Utf8Parser` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -464,7 +497,7 @@ namespace System { namespace InteropServices { - // Generated from `System.Runtime.InteropServices.MemoryMarshal` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.InteropServices.MemoryMarshal` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class MemoryMarshal { public static System.ReadOnlySpan AsBytes(System.ReadOnlySpan span) where T : struct => throw null; @@ -476,7 +509,10 @@ namespace System 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 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 T GetReference(System.ReadOnlySpan span) => throw null; public static T GetReference(System.Span span) => throw null; @@ -491,7 +527,7 @@ namespace System public static void Write(System.Span destination, ref T value) where T : struct => throw null; } - // Generated from `System.Runtime.InteropServices.SequenceMarshal` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.InteropServices.SequenceMarshal` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class SequenceMarshal { public static bool TryGetArray(System.Buffers.ReadOnlySequence sequence, out System.ArraySegment segment) => throw null; @@ -504,7 +540,7 @@ namespace System } namespace Text { - // Generated from `System.Text.EncodingExtensions` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.EncodingExtensions` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static 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; @@ -521,7 +557,16 @@ namespace System public static string GetString(this System.Text.Encoding encoding, System.Buffers.ReadOnlySequence bytes) => throw null; } - // Generated from `System.Text.SpanRuneEnumerator` in `System.Memory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.SpanLineEnumerator` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public struct SpanLineEnumerator + { + public System.ReadOnlySpan Current { get => throw null; } + public System.Text.SpanLineEnumerator GetEnumerator() => throw null; + public bool MoveNext() => throw null; + // Stub generator skipped constructor + } + + // Generated from `System.Text.SpanRuneEnumerator` in `System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct SpanRuneEnumerator { public System.Text.Rune Current { get => throw null; } 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 0fda0cbeff4..b9d7e73fdce 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 @@ -8,35 +8,45 @@ namespace System { namespace Json { - // Generated from `System.Net.Http.Json.HttpClientJsonExtensions` in `System.Net.Http.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Http.Json.HttpClientJsonExtensions` in `System.Net.Http.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class HttpClientJsonExtensions { 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 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.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 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 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 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; } - // Generated from `System.Net.Http.Json.HttpContentJsonExtensions` in `System.Net.Http.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Http.Json.HttpContentJsonExtensions` in `System.Net.Http.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static 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.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; } - // Generated from `System.Net.Http.Json.JsonContent` in `System.Net.Http.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Http.Json.JsonContent` in `System.Net.Http.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public 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; 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 e9e6a33864e..a0ca6f514d7 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 @@ -6,7 +6,7 @@ namespace System { namespace Http { - // Generated from `System.Net.Http.ByteArrayContent` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.ByteArrayContent` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ByteArrayContent : System.Net.Http.HttpContent { public ByteArrayContent(System.Byte[] content) => throw null; @@ -19,14 +19,14 @@ namespace System protected internal override bool TryComputeLength(out System.Int64 length) => throw null; } - // Generated from `System.Net.Http.ClientCertificateOption` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.ClientCertificateOption` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ClientCertificateOption { Automatic, Manual, } - // Generated from `System.Net.Http.DelegatingHandler` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.DelegatingHandler` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DelegatingHandler : System.Net.Http.HttpMessageHandler { protected DelegatingHandler() => throw null; @@ -37,17 +37,17 @@ namespace System protected internal override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Net.Http.FormUrlEncodedContent` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.FormUrlEncodedContent` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FormUrlEncodedContent : System.Net.Http.ByteArrayContent { public FormUrlEncodedContent(System.Collections.Generic.IEnumerable> nameValueCollection) : base(default(System.Byte[])) => throw null; protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Net.Http.HeaderEncodingSelector<>` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HeaderEncodingSelector<>` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate System.Text.Encoding HeaderEncodingSelector(string headerName, TContext context); - // Generated from `System.Net.Http.HttpClient` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpClient` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpClient : System.Net.Http.HttpMessageInvoker { public System.Uri BaseAddress { get => throw null; set => throw null; } @@ -108,7 +108,7 @@ namespace System public System.TimeSpan Timeout { get => throw null; set => throw null; } } - // Generated from `System.Net.Http.HttpClientHandler` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpClientHandler` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpClientHandler : System.Net.Http.HttpMessageHandler { public bool AllowAutoRedirect { get => throw null; set => throw null; } @@ -141,14 +141,14 @@ namespace System public bool UseProxy { get => throw null; set => throw null; } } - // Generated from `System.Net.Http.HttpCompletionOption` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpCompletionOption` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HttpCompletionOption { ResponseContentRead, ResponseHeadersRead, } - // Generated from `System.Net.Http.HttpContent` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpContent` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class HttpContent : System.IDisposable { public void CopyTo(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; @@ -179,14 +179,14 @@ namespace System protected internal abstract bool TryComputeLength(out System.Int64 length); } - // Generated from `System.Net.Http.HttpKeepAlivePingPolicy` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpKeepAlivePingPolicy` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HttpKeepAlivePingPolicy { Always, WithActiveRequests, } - // Generated from `System.Net.Http.HttpMessageHandler` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpMessageHandler` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class HttpMessageHandler : System.IDisposable { public void Dispose() => throw null; @@ -196,7 +196,7 @@ namespace System protected internal abstract System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken); } - // Generated from `System.Net.Http.HttpMessageInvoker` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpMessageInvoker` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpMessageInvoker : System.IDisposable { public void Dispose() => throw null; @@ -207,7 +207,7 @@ namespace System public virtual System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Net.Http.HttpMethod` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpMethod` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpMethod : System.IEquatable { public static bool operator !=(System.Net.Http.HttpMethod left, System.Net.Http.HttpMethod right) => throw null; @@ -228,7 +228,7 @@ namespace System public static System.Net.Http.HttpMethod Trace { get => throw null; } } - // Generated from `System.Net.Http.HttpRequestException` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpRequestException` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpRequestException : System.Exception { public HttpRequestException() => throw null; @@ -238,7 +238,7 @@ namespace System public System.Net.HttpStatusCode? StatusCode { get => throw null; } } - // Generated from `System.Net.Http.HttpRequestMessage` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpRequestMessage` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpRequestMessage : System.IDisposable { public System.Net.Http.HttpContent Content { get => throw null; set => throw null; } @@ -257,7 +257,7 @@ namespace System public System.Net.Http.HttpVersionPolicy VersionPolicy { get => throw null; set => throw null; } } - // Generated from `System.Net.Http.HttpRequestOptions` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpRequestOptions` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -281,7 +281,7 @@ namespace System System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } } - // Generated from `System.Net.Http.HttpRequestOptionsKey<>` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpRequestOptionsKey<>` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct HttpRequestOptionsKey { // Stub generator skipped constructor @@ -289,7 +289,7 @@ namespace System public string Key { get => throw null; } } - // Generated from `System.Net.Http.HttpResponseMessage` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpResponseMessage` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpResponseMessage : System.IDisposable { public System.Net.Http.HttpContent Content { get => throw null; set => throw null; } @@ -308,7 +308,7 @@ namespace System public System.Version Version { get => throw null; set => throw null; } } - // Generated from `System.Net.Http.HttpVersionPolicy` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.HttpVersionPolicy` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HttpVersionPolicy { RequestVersionExact, @@ -316,7 +316,7 @@ namespace System RequestVersionOrLower, } - // Generated from `System.Net.Http.MessageProcessingHandler` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.MessageProcessingHandler` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MessageProcessingHandler : System.Net.Http.DelegatingHandler { protected MessageProcessingHandler() => throw null; @@ -327,7 +327,7 @@ namespace System protected internal override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Net.Http.MultipartContent` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.MultipartContent` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -347,7 +347,7 @@ namespace System protected internal override bool TryComputeLength(out System.Int64 length) => throw null; } - // Generated from `System.Net.Http.MultipartFormDataContent` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.MultipartFormDataContent` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MultipartFormDataContent : System.Net.Http.MultipartContent { public override void Add(System.Net.Http.HttpContent content) => throw null; @@ -358,7 +358,7 @@ namespace System protected override System.Threading.Tasks.Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Net.Http.ReadOnlyMemoryContent` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.ReadOnlyMemoryContent` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReadOnlyMemoryContent : System.Net.Http.HttpContent { protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; @@ -370,16 +370,17 @@ namespace System protected internal override bool TryComputeLength(out System.Int64 length) => throw null; } - // Generated from `System.Net.Http.SocketsHttpConnectionContext` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.SocketsHttpConnectionContext` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SocketsHttpConnectionContext { public System.Net.DnsEndPoint DnsEndPoint { get => throw null; } public System.Net.Http.HttpRequestMessage InitialRequestMessage { get => throw null; } } - // Generated from `System.Net.Http.SocketsHttpHandler` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.SocketsHttpHandler` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } @@ -390,6 +391,7 @@ namespace System 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; } @@ -415,7 +417,7 @@ namespace System public bool UseProxy { get => throw null; set => throw null; } } - // Generated from `System.Net.Http.SocketsHttpPlaintextStreamFilterContext` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.SocketsHttpPlaintextStreamFilterContext` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SocketsHttpPlaintextStreamFilterContext { public System.Net.Http.HttpRequestMessage InitialRequestMessage { get => throw null; } @@ -423,7 +425,7 @@ namespace System public System.IO.Stream PlaintextStream { get => throw null; } } - // Generated from `System.Net.Http.StreamContent` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.StreamContent` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StreamContent : System.Net.Http.HttpContent { protected override System.IO.Stream CreateContentReadStream(System.Threading.CancellationToken cancellationToken) => throw null; @@ -437,7 +439,7 @@ namespace System protected internal override bool TryComputeLength(out System.Int64 length) => throw null; } - // Generated from `System.Net.Http.StringContent` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.StringContent` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -448,7 +450,7 @@ namespace System namespace Headers { - // Generated from `System.Net.Http.Headers.AuthenticationHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.AuthenticationHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AuthenticationHeaderValue : System.ICloneable { public AuthenticationHeaderValue(string scheme) => throw null; @@ -463,7 +465,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.AuthenticationHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.CacheControlHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.CacheControlHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CacheControlHeaderValue : System.ICloneable { public CacheControlHeaderValue() => throw null; @@ -491,7 +493,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.CacheControlHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.ContentDispositionHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.ContentDispositionHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContentDispositionHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -513,7 +515,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.ContentDispositionHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.ContentRangeHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.ContentRangeHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContentRangeHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -533,7 +535,7 @@ namespace System public string Unit { get => throw null; set => throw null; } } - // Generated from `System.Net.Http.Headers.EntityTagHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.EntityTagHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EntityTagHeaderValue : System.ICloneable { public static System.Net.Http.Headers.EntityTagHeaderValue Any { get => throw null; } @@ -549,7 +551,30 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.EntityTagHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.HttpContentHeaders` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.HeaderStringValues` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct HeaderStringValues : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable + { + // Generated from `System.Net.Http.Headers.HeaderStringValues+Enumerator` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + // Generated from `System.Net.Http.Headers.HttpContentHeaders` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpContentHeaders : System.Net.Http.Headers.HttpHeaders { public System.Collections.Generic.ICollection Allow { get => throw null; } @@ -565,7 +590,7 @@ namespace System public System.DateTimeOffset? LastModified { get => throw null; set => throw null; } } - // Generated from `System.Net.Http.Headers.HttpHeaderValueCollection<>` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.HttpHeaderValueCollection<>` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpHeaderValueCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable where T : class { public void Add(T item) => throw null; @@ -582,7 +607,7 @@ namespace System public bool TryParseAdd(string input) => throw null; } - // Generated from `System.Net.Http.Headers.HttpHeaders` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.HttpHeaders` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class HttpHeaders : System.Collections.Generic.IEnumerable>>, System.Collections.IEnumerable { public void Add(string name, System.Collections.Generic.IEnumerable values) => throw null; @@ -593,6 +618,7 @@ namespace System 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; @@ -600,7 +626,36 @@ namespace System public bool TryGetValues(string name, out System.Collections.Generic.IEnumerable values) => throw null; } - // Generated from `System.Net.Http.Headers.HttpRequestHeaders` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.HttpHeadersNonValidated` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct HttpHeadersNonValidated : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyDictionary, System.Collections.IEnumerable + { + // Generated from `System.Net.Http.Headers.HttpHeadersNonValidated+Enumerator` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.Net.Http.Headers.HttpRequestHeaders` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpRequestHeaders : System.Net.Http.Headers.HttpHeaders { public System.Net.Http.Headers.HttpHeaderValueCollection Accept { get => throw null; } @@ -636,7 +691,7 @@ namespace System public System.Net.Http.Headers.HttpHeaderValueCollection Warning { get => throw null; } } - // Generated from `System.Net.Http.Headers.HttpResponseHeaders` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.HttpResponseHeaders` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpResponseHeaders : System.Net.Http.Headers.HttpHeaders { public System.Net.Http.Headers.HttpHeaderValueCollection AcceptRanges { get => throw null; } @@ -661,7 +716,7 @@ namespace System public System.Net.Http.Headers.HttpHeaderValueCollection WwwAuthenticate { get => throw null; } } - // Generated from `System.Net.Http.Headers.MediaTypeHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.MediaTypeHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MediaTypeHeaderValue : System.ICloneable { public string CharSet { get => throw null; set => throw null; } @@ -677,7 +732,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.MediaTypeHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.MediaTypeWithQualityHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.MediaTypeWithQualityHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MediaTypeWithQualityHeaderValue : System.Net.Http.Headers.MediaTypeHeaderValue, System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -688,7 +743,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.MediaTypeWithQualityHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.NameValueHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.NameValueHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NameValueHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -704,7 +759,7 @@ namespace System public string Value { get => throw null; set => throw null; } } - // Generated from `System.Net.Http.Headers.NameValueWithParametersHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.NameValueWithParametersHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NameValueWithParametersHeaderValue : System.Net.Http.Headers.NameValueHeaderValue, System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -719,7 +774,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.NameValueWithParametersHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.ProductHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.ProductHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProductHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -734,7 +789,7 @@ namespace System public string Version { get => throw null; } } - // Generated from `System.Net.Http.Headers.ProductInfoHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.ProductInfoHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProductInfoHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -750,7 +805,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.ProductInfoHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.RangeConditionHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.RangeConditionHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RangeConditionHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -766,7 +821,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.RangeConditionHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.RangeHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.RangeHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RangeHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -781,7 +836,7 @@ namespace System public string Unit { get => throw null; set => throw null; } } - // Generated from `System.Net.Http.Headers.RangeItemHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.RangeItemHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RangeItemHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -793,7 +848,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Net.Http.Headers.RetryConditionHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.RetryConditionHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RetryConditionHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -808,7 +863,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.RetryConditionHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.StringWithQualityHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.StringWithQualityHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringWithQualityHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -823,7 +878,7 @@ namespace System public string Value { get => throw null; } } - // Generated from `System.Net.Http.Headers.TransferCodingHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.TransferCodingHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TransferCodingHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -838,7 +893,7 @@ namespace System public string Value { get => throw null; } } - // Generated from `System.Net.Http.Headers.TransferCodingWithQualityHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.TransferCodingWithQualityHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TransferCodingWithQualityHeaderValue : System.Net.Http.Headers.TransferCodingHeaderValue, System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -849,7 +904,7 @@ namespace System public static bool TryParse(string input, out System.Net.Http.Headers.TransferCodingWithQualityHeaderValue parsedValue) => throw null; } - // Generated from `System.Net.Http.Headers.ViaHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.ViaHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ViaHeaderValue : System.ICloneable { object System.ICloneable.Clone() => throw null; @@ -867,7 +922,7 @@ namespace System public ViaHeaderValue(string protocolVersion, string receivedBy, string protocolName, string comment) => throw null; } - // Generated from `System.Net.Http.Headers.WarningHeaderValue` in `System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Http.Headers.WarningHeaderValue` in `System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class WarningHeaderValue : System.ICloneable { public string Agent { get => 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 02b1189b49c..c1642a72074 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 @@ -4,13 +4,13 @@ namespace System { namespace Net { - // Generated from `System.Net.AuthenticationSchemeSelector` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.AuthenticationSchemeSelector` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate System.Net.AuthenticationSchemes AuthenticationSchemeSelector(System.Net.HttpListenerRequest httpRequest); - // Generated from `System.Net.HttpListener` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.HttpListener` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class HttpListener : System.IDisposable { - // Generated from `System.Net.HttpListener+ExtendedProtectionSelector` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.HttpListener+ExtendedProtectionSelector` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy ExtendedProtectionSelector(System.Net.HttpListenerRequest request); @@ -38,14 +38,14 @@ namespace System public bool UnsafeConnectionNtlmAuthentication { get => throw null; set => throw null; } } - // Generated from `System.Net.HttpListenerBasicIdentity` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.HttpListenerBasicIdentity` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } } - // Generated from `System.Net.HttpListenerContext` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.HttpListenerContext` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class HttpListenerContext { public System.Threading.Tasks.Task AcceptWebSocketAsync(string subProtocol) => throw null; @@ -57,7 +57,7 @@ namespace System public System.Security.Principal.IPrincipal User { get => throw null; } } - // Generated from `System.Net.HttpListenerException` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.HttpListenerException` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class HttpListenerException : System.ComponentModel.Win32Exception { public override int ErrorCode { get => throw null; } @@ -67,7 +67,7 @@ namespace System public HttpListenerException(int errorCode, string message) => throw null; } - // Generated from `System.Net.HttpListenerPrefixCollection` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.HttpListenerPrefixCollection` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class HttpListenerPrefixCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public void Add(string uriPrefix) => throw null; @@ -83,7 +83,7 @@ namespace System public bool Remove(string uriPrefix) => throw null; } - // Generated from `System.Net.HttpListenerRequest` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.HttpListenerRequest` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class HttpListenerRequest { public string[] AcceptTypes { get => throw null; } @@ -121,7 +121,7 @@ namespace System public string[] UserLanguages { get => throw null; } } - // Generated from `System.Net.HttpListenerResponse` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.HttpListenerResponse` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class HttpListenerResponse : System.IDisposable { public void Abort() => throw null; @@ -148,7 +148,7 @@ namespace System public string StatusDescription { get => throw null; set => throw null; } } - // Generated from `System.Net.HttpListenerTimeoutManager` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.HttpListenerTimeoutManager` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class HttpListenerTimeoutManager { public System.TimeSpan DrainEntityBody { get => throw null; set => throw null; } @@ -161,7 +161,7 @@ namespace System namespace WebSockets { - // Generated from `System.Net.WebSockets.HttpListenerWebSocketContext` in `System.Net.HttpListener, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.WebSockets.HttpListenerWebSocketContext` in `System.Net.HttpListener, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class HttpListenerWebSocketContext : System.Net.WebSockets.WebSocketContext { public override System.Net.CookieCollection CookieCollection { 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 82791625841..216d1b30a1c 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 @@ -6,7 +6,7 @@ namespace System { namespace Mail { - // Generated from `System.Net.Mail.AlternateView` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.AlternateView` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class AlternateView : System.Net.Mail.AttachmentBase { public AlternateView(System.IO.Stream contentStream) : base(default(System.IO.Stream)) => throw null; @@ -23,7 +23,7 @@ namespace System public System.Net.Mail.LinkedResourceCollection LinkedResources { get => throw null; } } - // Generated from `System.Net.Mail.AlternateViewCollection` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.AlternateViewCollection` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class AlternateViewCollection : System.Collections.ObjectModel.Collection, System.IDisposable { protected override void ClearItems() => throw null; @@ -33,7 +33,7 @@ namespace System protected override void SetItem(int index, System.Net.Mail.AlternateView item) => throw null; } - // Generated from `System.Net.Mail.Attachment` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.Attachment` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class Attachment : System.Net.Mail.AttachmentBase { public Attachment(System.IO.Stream contentStream, System.Net.Mime.ContentType contentType) : base(default(System.IO.Stream)) => throw null; @@ -50,7 +50,7 @@ namespace System public System.Text.Encoding NameEncoding { get => throw null; set => throw null; } } - // Generated from `System.Net.Mail.AttachmentBase` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.AttachmentBase` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class AttachmentBase : System.IDisposable { protected AttachmentBase(System.IO.Stream contentStream) => throw null; @@ -67,7 +67,7 @@ namespace System public System.Net.Mime.TransferEncoding TransferEncoding { get => throw null; set => throw null; } } - // Generated from `System.Net.Mail.AttachmentCollection` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.AttachmentCollection` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class AttachmentCollection : System.Collections.ObjectModel.Collection, System.IDisposable { protected override void ClearItems() => throw null; @@ -77,7 +77,7 @@ namespace System protected override void SetItem(int index, System.Net.Mail.Attachment item) => throw null; } - // Generated from `System.Net.Mail.DeliveryNotificationOptions` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.DeliveryNotificationOptions` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` [System.Flags] public enum DeliveryNotificationOptions { @@ -88,7 +88,7 @@ namespace System OnSuccess, } - // Generated from `System.Net.Mail.LinkedResource` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.LinkedResource` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class LinkedResource : System.Net.Mail.AttachmentBase { public System.Uri ContentLink { get => throw null; set => throw null; } @@ -103,7 +103,7 @@ namespace System public LinkedResource(string fileName, string mediaType) : base(default(System.IO.Stream)) => throw null; } - // Generated from `System.Net.Mail.LinkedResourceCollection` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.LinkedResourceCollection` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class LinkedResourceCollection : System.Collections.ObjectModel.Collection, System.IDisposable { protected override void ClearItems() => throw null; @@ -113,7 +113,7 @@ namespace System protected override void SetItem(int index, System.Net.Mail.LinkedResource item) => throw null; } - // Generated from `System.Net.Mail.MailAddress` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.MailAddress` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class MailAddress { public string Address { get => throw null; } @@ -131,7 +131,7 @@ namespace System public string User { get => throw null; } } - // Generated from `System.Net.Mail.MailAddressCollection` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.MailAddressCollection` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class MailAddressCollection : System.Collections.ObjectModel.Collection { public void Add(string addresses) => throw null; @@ -141,7 +141,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Net.Mail.MailMessage` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.MailMessage` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class MailMessage : System.IDisposable { public System.Net.Mail.AlternateViewCollection AlternateViews { get => throw null; } @@ -171,7 +171,7 @@ namespace System public System.Net.Mail.MailAddressCollection To { get => throw null; } } - // Generated from `System.Net.Mail.MailPriority` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.MailPriority` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum MailPriority { High, @@ -179,10 +179,10 @@ namespace System Normal, } - // Generated from `System.Net.Mail.SendCompletedEventHandler` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.SendCompletedEventHandler` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void SendCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - // Generated from `System.Net.Mail.SmtpClient` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.SmtpClient` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class SmtpClient : System.IDisposable { public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get => throw null; } @@ -215,14 +215,14 @@ namespace System public bool UseDefaultCredentials { get => throw null; set => throw null; } } - // Generated from `System.Net.Mail.SmtpDeliveryFormat` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.SmtpDeliveryFormat` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum SmtpDeliveryFormat { International, SevenBit, } - // Generated from `System.Net.Mail.SmtpDeliveryMethod` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.SmtpDeliveryMethod` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum SmtpDeliveryMethod { Network, @@ -230,7 +230,7 @@ namespace System SpecifiedPickupDirectory, } - // Generated from `System.Net.Mail.SmtpException` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.SmtpException` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -244,7 +244,7 @@ namespace System public System.Net.Mail.SmtpStatusCode StatusCode { get => throw null; set => throw null; } } - // Generated from `System.Net.Mail.SmtpFailedRecipientException` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.SmtpFailedRecipientException` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class SmtpFailedRecipientException : System.Net.Mail.SmtpException, System.Runtime.Serialization.ISerializable { public string FailedRecipient { get => throw null; } @@ -259,7 +259,7 @@ namespace System public SmtpFailedRecipientException(string message, string failedRecipient, System.Exception innerException) => throw null; } - // Generated from `System.Net.Mail.SmtpFailedRecipientsException` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.SmtpFailedRecipientsException` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class SmtpFailedRecipientsException : System.Net.Mail.SmtpFailedRecipientException, System.Runtime.Serialization.ISerializable { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; @@ -272,7 +272,7 @@ namespace System public SmtpFailedRecipientsException(string message, System.Net.Mail.SmtpFailedRecipientException[] innerExceptions) => throw null; } - // Generated from `System.Net.Mail.SmtpStatusCode` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mail.SmtpStatusCode` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum SmtpStatusCode { BadCommandSequence, @@ -305,7 +305,7 @@ namespace System } namespace Mime { - // Generated from `System.Net.Mime.ContentDisposition` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mime.ContentDisposition` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ContentDisposition { public ContentDisposition() => throw null; @@ -323,7 +323,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Net.Mime.ContentType` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mime.ContentType` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ContentType { public string Boundary { get => throw null; set => throw null; } @@ -338,17 +338,17 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Net.Mime.DispositionTypeNames` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mime.DispositionTypeNames` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class DispositionTypeNames { public const string Attachment = default; public const string Inline = default; } - // Generated from `System.Net.Mime.MediaTypeNames` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mime.MediaTypeNames` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class MediaTypeNames { - // Generated from `System.Net.Mime.MediaTypeNames+Application` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mime.MediaTypeNames+Application` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class Application { public const string Json = default; @@ -361,7 +361,7 @@ namespace System } - // Generated from `System.Net.Mime.MediaTypeNames+Image` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mime.MediaTypeNames+Image` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class Image { public const string Gif = default; @@ -370,7 +370,7 @@ namespace System } - // Generated from `System.Net.Mime.MediaTypeNames+Text` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mime.MediaTypeNames+Text` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class Text { public const string Html = default; @@ -382,7 +382,7 @@ namespace System } - // Generated from `System.Net.Mime.TransferEncoding` in `System.Net.Mail, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.Mime.TransferEncoding` in `System.Net.Mail, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum TransferEncoding { Base64, 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 f9368d9480e..3685fa6656c 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 @@ -4,7 +4,7 @@ namespace System { namespace Net { - // Generated from `System.Net.Dns` in `System.Net.NameResolution, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Dns` in `System.Net.NameResolution, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Dns { public static System.IAsyncResult BeginGetHostAddresses(string hostNameOrAddress, System.AsyncCallback requestCallback, object state) => throw null; @@ -17,19 +17,25 @@ namespace System public static System.Net.IPHostEntry EndGetHostEntry(System.IAsyncResult asyncResult) => throw null; public static System.Net.IPHostEntry EndResolve(System.IAsyncResult asyncResult) => throw null; public static System.Net.IPAddress[] GetHostAddresses(string hostNameOrAddress) => throw null; + public static System.Net.IPAddress[] GetHostAddresses(string hostNameOrAddress, System.Net.Sockets.AddressFamily family) => throw null; public static System.Threading.Tasks.Task GetHostAddressesAsync(string hostNameOrAddress) => throw null; + public static System.Threading.Tasks.Task GetHostAddressesAsync(string hostNameOrAddress, System.Net.Sockets.AddressFamily family, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetHostAddressesAsync(string hostNameOrAddress, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Net.IPHostEntry GetHostByAddress(System.Net.IPAddress address) => throw null; public static System.Net.IPHostEntry GetHostByAddress(string address) => throw null; public static System.Net.IPHostEntry GetHostByName(string hostName) => throw null; public static System.Net.IPHostEntry GetHostEntry(System.Net.IPAddress address) => throw null; public static System.Net.IPHostEntry GetHostEntry(string hostNameOrAddress) => throw null; + public static System.Net.IPHostEntry GetHostEntry(string hostNameOrAddress, System.Net.Sockets.AddressFamily family) => throw null; public static System.Threading.Tasks.Task GetHostEntryAsync(System.Net.IPAddress address) => throw null; public static System.Threading.Tasks.Task GetHostEntryAsync(string hostNameOrAddress) => throw null; + public static System.Threading.Tasks.Task GetHostEntryAsync(string hostNameOrAddress, System.Net.Sockets.AddressFamily family, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetHostEntryAsync(string hostNameOrAddress, System.Threading.CancellationToken cancellationToken) => throw null; public static string GetHostName() => throw null; public static System.Net.IPHostEntry Resolve(string hostName) => throw null; } - // Generated from `System.Net.IPHostEntry` in `System.Net.NameResolution, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.IPHostEntry` in `System.Net.NameResolution, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IPHostEntry { public System.Net.IPAddress[] AddressList { get => throw null; set => throw null; } 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 501808a4cf3..00a50a4deec 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 @@ -6,7 +6,7 @@ namespace System { namespace NetworkInformation { - // Generated from `System.Net.NetworkInformation.DuplicateAddressDetectionState` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.DuplicateAddressDetectionState` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DuplicateAddressDetectionState { Deprecated, @@ -16,14 +16,14 @@ namespace System Tentative, } - // Generated from `System.Net.NetworkInformation.GatewayIPAddressInformation` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.GatewayIPAddressInformation` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class GatewayIPAddressInformation { public abstract System.Net.IPAddress Address { get; } protected GatewayIPAddressInformation() => throw null; } - // Generated from `System.Net.NetworkInformation.GatewayIPAddressInformationCollection` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.GatewayIPAddressInformationCollection` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -39,7 +39,7 @@ namespace System public virtual bool Remove(System.Net.NetworkInformation.GatewayIPAddressInformation address) => throw null; } - // Generated from `System.Net.NetworkInformation.IPAddressInformation` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPAddressInformation` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IPAddressInformation { public abstract System.Net.IPAddress Address { get; } @@ -48,7 +48,7 @@ namespace System public abstract bool IsTransient { get; } } - // Generated from `System.Net.NetworkInformation.IPAddressInformationCollection` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPAddressInformationCollection` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -63,7 +63,7 @@ namespace System public virtual bool Remove(System.Net.NetworkInformation.IPAddressInformation address) => throw null; } - // Generated from `System.Net.NetworkInformation.IPGlobalProperties` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPGlobalProperties` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IPGlobalProperties { public virtual System.IAsyncResult BeginGetUnicastAddresses(System.AsyncCallback callback, object state) => throw null; @@ -90,7 +90,7 @@ namespace System public abstract System.Net.NetworkInformation.NetBiosNodeType NodeType { get; } } - // Generated from `System.Net.NetworkInformation.IPGlobalStatistics` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPGlobalStatistics` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IPGlobalStatistics { public abstract int DefaultTtl { get; } @@ -118,7 +118,7 @@ namespace System public abstract System.Int64 ReceivedPacketsWithUnknownProtocol { get; } } - // Generated from `System.Net.NetworkInformation.IPInterfaceProperties` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPInterfaceProperties` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IPInterfaceProperties { public abstract System.Net.NetworkInformation.IPAddressInformationCollection AnycastAddresses { get; } @@ -136,7 +136,7 @@ namespace System public abstract System.Net.NetworkInformation.IPAddressCollection WinsServersAddresses { get; } } - // Generated from `System.Net.NetworkInformation.IPInterfaceStatistics` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPInterfaceStatistics` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IPInterfaceStatistics { public abstract System.Int64 BytesReceived { get; } @@ -154,7 +154,7 @@ namespace System public abstract System.Int64 UnicastPacketsSent { get; } } - // Generated from `System.Net.NetworkInformation.IPv4InterfaceProperties` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPv4InterfaceProperties` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IPv4InterfaceProperties { protected IPv4InterfaceProperties() => throw null; @@ -167,7 +167,7 @@ namespace System public abstract bool UsesWins { get; } } - // Generated from `System.Net.NetworkInformation.IPv4InterfaceStatistics` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPv4InterfaceStatistics` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IPv4InterfaceStatistics { public abstract System.Int64 BytesReceived { get; } @@ -185,7 +185,7 @@ namespace System public abstract System.Int64 UnicastPacketsSent { get; } } - // Generated from `System.Net.NetworkInformation.IPv6InterfaceProperties` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPv6InterfaceProperties` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IPv6InterfaceProperties { public virtual System.Int64 GetScopeId(System.Net.NetworkInformation.ScopeLevel scopeLevel) => throw null; @@ -194,7 +194,7 @@ namespace System public abstract int Mtu { get; } } - // Generated from `System.Net.NetworkInformation.IcmpV4Statistics` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IcmpV4Statistics` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IcmpV4Statistics { public abstract System.Int64 AddressMaskRepliesReceived { get; } @@ -226,7 +226,7 @@ namespace System public abstract System.Int64 TimestampRequestsSent { get; } } - // Generated from `System.Net.NetworkInformation.IcmpV6Statistics` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IcmpV6Statistics` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IcmpV6Statistics { public abstract System.Int64 DestinationUnreachableMessagesReceived { get; } @@ -264,7 +264,7 @@ namespace System public abstract System.Int64 TimeExceededMessagesSent { get; } } - // Generated from `System.Net.NetworkInformation.MulticastIPAddressInformation` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.MulticastIPAddressInformation` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MulticastIPAddressInformation : System.Net.NetworkInformation.IPAddressInformation { public abstract System.Int64 AddressPreferredLifetime { get; } @@ -276,7 +276,7 @@ namespace System public abstract System.Net.NetworkInformation.SuffixOrigin SuffixOrigin { get; } } - // Generated from `System.Net.NetworkInformation.MulticastIPAddressInformationCollection` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.MulticastIPAddressInformationCollection` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -292,7 +292,7 @@ namespace System public virtual bool Remove(System.Net.NetworkInformation.MulticastIPAddressInformation address) => throw null; } - // Generated from `System.Net.NetworkInformation.NetBiosNodeType` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.NetBiosNodeType` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum NetBiosNodeType { Broadcast, @@ -302,19 +302,19 @@ namespace System Unknown, } - // Generated from `System.Net.NetworkInformation.NetworkAddressChangedEventHandler` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.NetworkAddressChangedEventHandler` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void NetworkAddressChangedEventHandler(object sender, System.EventArgs e); - // Generated from `System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void NetworkAvailabilityChangedEventHandler(object sender, System.Net.NetworkInformation.NetworkAvailabilityEventArgs e); - // Generated from `System.Net.NetworkInformation.NetworkAvailabilityEventArgs` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.NetworkAvailabilityEventArgs` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NetworkAvailabilityEventArgs : System.EventArgs { public bool IsAvailable { get => throw null; } } - // Generated from `System.Net.NetworkInformation.NetworkChange` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.NetworkChange` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NetworkChange { public static event System.Net.NetworkInformation.NetworkAddressChangedEventHandler NetworkAddressChanged; @@ -323,7 +323,7 @@ namespace System public static void RegisterNetworkChange(System.Net.NetworkInformation.NetworkChange nc) => throw null; } - // Generated from `System.Net.NetworkInformation.NetworkInformationException` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.NetworkInformationException` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NetworkInformationException : System.ComponentModel.Win32Exception { public override int ErrorCode { get => throw null; } @@ -332,7 +332,7 @@ namespace System public NetworkInformationException(int errorCode) => throw null; } - // Generated from `System.Net.NetworkInformation.NetworkInterface` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.NetworkInterface` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class NetworkInterface { public virtual string Description { get => throw null; } @@ -355,14 +355,14 @@ namespace System public virtual bool SupportsMulticast { get => throw null; } } - // Generated from `System.Net.NetworkInformation.NetworkInterfaceComponent` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.NetworkInterfaceComponent` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum NetworkInterfaceComponent { IPv4, IPv6, } - // Generated from `System.Net.NetworkInformation.NetworkInterfaceType` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.NetworkInterfaceType` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum NetworkInterfaceType { AsymmetricDsl, @@ -395,7 +395,7 @@ namespace System Wwanpp2, } - // Generated from `System.Net.NetworkInformation.OperationalStatus` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.OperationalStatus` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum OperationalStatus { Dormant, @@ -407,7 +407,7 @@ namespace System Up, } - // Generated from `System.Net.NetworkInformation.PhysicalAddress` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.PhysicalAddress` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PhysicalAddress { public override bool Equals(object comparand) => throw null; @@ -422,7 +422,7 @@ namespace System public static bool TryParse(string address, out System.Net.NetworkInformation.PhysicalAddress value) => throw null; } - // Generated from `System.Net.NetworkInformation.PrefixOrigin` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.PrefixOrigin` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PrefixOrigin { Dhcp, @@ -432,7 +432,7 @@ namespace System WellKnown, } - // Generated from `System.Net.NetworkInformation.ScopeLevel` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.ScopeLevel` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ScopeLevel { Admin, @@ -445,7 +445,7 @@ namespace System Subnet, } - // Generated from `System.Net.NetworkInformation.SuffixOrigin` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.SuffixOrigin` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SuffixOrigin { LinkLayerAddress, @@ -456,7 +456,7 @@ namespace System WellKnown, } - // Generated from `System.Net.NetworkInformation.TcpConnectionInformation` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.TcpConnectionInformation` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TcpConnectionInformation { public abstract System.Net.IPEndPoint LocalEndPoint { get; } @@ -465,7 +465,7 @@ namespace System protected TcpConnectionInformation() => throw null; } - // Generated from `System.Net.NetworkInformation.TcpState` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.TcpState` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TcpState { CloseWait, @@ -483,7 +483,7 @@ namespace System Unknown, } - // Generated from `System.Net.NetworkInformation.TcpStatistics` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.TcpStatistics` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TcpStatistics { public abstract System.Int64 ConnectionsAccepted { get; } @@ -503,7 +503,7 @@ namespace System protected TcpStatistics() => throw null; } - // Generated from `System.Net.NetworkInformation.UdpStatistics` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.UdpStatistics` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class UdpStatistics { public abstract System.Int64 DatagramsReceived { get; } @@ -514,7 +514,7 @@ namespace System protected UdpStatistics() => throw null; } - // Generated from `System.Net.NetworkInformation.UnicastIPAddressInformation` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.UnicastIPAddressInformation` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class UnicastIPAddressInformation : System.Net.NetworkInformation.IPAddressInformation { public abstract System.Int64 AddressPreferredLifetime { get; } @@ -528,7 +528,7 @@ namespace System protected UnicastIPAddressInformation() => throw null; } - // Generated from `System.Net.NetworkInformation.UnicastIPAddressInformationCollection` in `System.Net.NetworkInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.UnicastIPAddressInformationCollection` in `System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; 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 ca71f96be96..9af39d02346 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 @@ -6,7 +6,7 @@ namespace System { namespace NetworkInformation { - // Generated from `System.Net.NetworkInformation.IPStatus` in `System.Net.Ping, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPStatus` in `System.Net.Ping, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum IPStatus { BadDestination, @@ -35,7 +35,7 @@ namespace System UnrecognizedNextHeader, } - // Generated from `System.Net.NetworkInformation.Ping` in `System.Net.Ping, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.Ping` in `System.Net.Ping, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Ping : System.ComponentModel.Component { protected override void Dispose(bool disposing) => throw null; @@ -69,17 +69,17 @@ namespace System public System.Threading.Tasks.Task SendPingAsync(string hostNameOrAddress, int timeout, System.Byte[] buffer, System.Net.NetworkInformation.PingOptions options) => throw null; } - // Generated from `System.Net.NetworkInformation.PingCompletedEventArgs` in `System.Net.Ping, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.PingCompletedEventArgs` in `System.Net.Ping, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } } - // Generated from `System.Net.NetworkInformation.PingCompletedEventHandler` in `System.Net.Ping, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.PingCompletedEventHandler` in `System.Net.Ping, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void PingCompletedEventHandler(object sender, System.Net.NetworkInformation.PingCompletedEventArgs e); - // Generated from `System.Net.NetworkInformation.PingException` in `System.Net.Ping, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.PingException` in `System.Net.Ping, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PingException : System.InvalidOperationException { protected PingException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; @@ -87,7 +87,7 @@ namespace System public PingException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Net.NetworkInformation.PingOptions` in `System.Net.Ping, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.PingOptions` in `System.Net.Ping, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PingOptions { public bool DontFragment { get => throw null; set => throw null; } @@ -96,7 +96,7 @@ namespace System public int Ttl { get => throw null; set => throw null; } } - // Generated from `System.Net.NetworkInformation.PingReply` in `System.Net.Ping, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.PingReply` in `System.Net.Ping, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PingReply { public System.Net.IPAddress Address { 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 67f4280c15d..79d93bac06f 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 @@ -4,7 +4,7 @@ namespace System { namespace Net { - // Generated from `System.Net.AuthenticationSchemes` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.AuthenticationSchemes` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum AuthenticationSchemes { @@ -17,7 +17,7 @@ namespace System Ntlm, } - // Generated from `System.Net.Cookie` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Cookie` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Cookie { public string Comment { get => throw null; set => throw null; } @@ -43,7 +43,7 @@ namespace System public int Version { get => throw null; set => throw null; } } - // Generated from `System.Net.CookieCollection` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.CookieCollection` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CookieCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.ICollection, System.Collections.IEnumerable { public void Add(System.Net.Cookie cookie) => throw null; @@ -64,7 +64,7 @@ namespace System public object SyncRoot { get => throw null; } } - // Generated from `System.Net.CookieContainer` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.CookieContainer` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CookieContainer { public void Add(System.Net.Cookie cookie) => throw null; @@ -79,6 +79,7 @@ namespace System 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; public int MaxCookieSize { get => throw null; set => throw null; } @@ -86,7 +87,7 @@ namespace System public void SetCookies(System.Uri uri, string cookieHeader) => throw null; } - // Generated from `System.Net.CookieException` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.CookieException` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CookieException : System.FormatException, System.Runtime.Serialization.ISerializable { public CookieException() => throw null; @@ -95,7 +96,7 @@ namespace System void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; } - // Generated from `System.Net.CredentialCache` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.CredentialCache` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -110,7 +111,7 @@ namespace System public void Remove(string host, int port, string authenticationType) => throw null; } - // Generated from `System.Net.DecompressionMethods` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.DecompressionMethods` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DecompressionMethods { @@ -121,7 +122,7 @@ namespace System None, } - // Generated from `System.Net.DnsEndPoint` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.DnsEndPoint` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DnsEndPoint : System.Net.EndPoint { public override System.Net.Sockets.AddressFamily AddressFamily { get => throw null; } @@ -134,7 +135,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Net.EndPoint` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.EndPoint` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EndPoint { public virtual System.Net.Sockets.AddressFamily AddressFamily { get => throw null; } @@ -143,7 +144,7 @@ namespace System public virtual System.Net.SocketAddress Serialize() => throw null; } - // Generated from `System.Net.HttpStatusCode` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.HttpStatusCode` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HttpStatusCode { Accepted, @@ -214,28 +215,29 @@ namespace System VariantAlsoNegotiates, } - // Generated from `System.Net.HttpVersion` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.HttpVersion` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Net.ICredentials` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.ICredentials` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICredentials { System.Net.NetworkCredential GetCredential(System.Uri uri, string authType); } - // Generated from `System.Net.ICredentialsByHost` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.ICredentialsByHost` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICredentialsByHost { System.Net.NetworkCredential GetCredential(string host, int port, string authenticationType); } - // Generated from `System.Net.IPAddress` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.IPAddress` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IPAddress { public System.Int64 Address { get => throw null; set => throw null; } @@ -261,6 +263,7 @@ namespace System public bool IsIPv6Multicast { get => throw null; } public bool IsIPv6SiteLocal { get => throw null; } 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 System.Net.IPAddress MapToIPv4() => throw null; @@ -279,7 +282,7 @@ namespace System public bool TryWriteBytes(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Net.IPEndPoint` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.IPEndPoint` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IPEndPoint : System.Net.EndPoint { public System.Net.IPAddress Address { get => throw null; set => throw null; } @@ -300,7 +303,7 @@ namespace System public static bool TryParse(string s, out System.Net.IPEndPoint result) => throw null; } - // Generated from `System.Net.IWebProxy` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.IWebProxy` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IWebProxy { System.Net.ICredentials Credentials { get; set; } @@ -308,7 +311,7 @@ namespace System bool IsBypassed(System.Uri host); } - // Generated from `System.Net.NetworkCredential` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkCredential` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NetworkCredential : System.Net.ICredentials, System.Net.ICredentialsByHost { public string Domain { get => throw null; set => throw null; } @@ -324,7 +327,7 @@ namespace System public string UserName { get => throw null; set => throw null; } } - // Generated from `System.Net.SocketAddress` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.SocketAddress` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SocketAddress { public override bool Equals(object comparand) => throw null; @@ -337,7 +340,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Net.TransportContext` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.TransportContext` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TransportContext { public abstract System.Security.Authentication.ExtendedProtection.ChannelBinding GetChannelBinding(System.Security.Authentication.ExtendedProtection.ChannelBindingKind kind); @@ -346,7 +349,7 @@ namespace System namespace Cache { - // Generated from `System.Net.Cache.RequestCacheLevel` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Cache.RequestCacheLevel` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RequestCacheLevel { BypassCache, @@ -358,7 +361,7 @@ namespace System Revalidate, } - // Generated from `System.Net.Cache.RequestCachePolicy` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Cache.RequestCachePolicy` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RequestCachePolicy { public System.Net.Cache.RequestCacheLevel Level { get => throw null; } @@ -370,7 +373,7 @@ namespace System } namespace NetworkInformation { - // Generated from `System.Net.NetworkInformation.IPAddressCollection` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.NetworkInformation.IPAddressCollection` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IPAddressCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public virtual void Add(System.Net.IPAddress address) => throw null; @@ -389,7 +392,7 @@ namespace System } namespace Security { - // Generated from `System.Net.Security.AuthenticationLevel` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.AuthenticationLevel` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AuthenticationLevel { MutualAuthRequested, @@ -397,7 +400,7 @@ namespace System None, } - // Generated from `System.Net.Security.SslPolicyErrors` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.SslPolicyErrors` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SslPolicyErrors { @@ -410,7 +413,7 @@ namespace System } namespace Sockets { - // Generated from `System.Net.Sockets.AddressFamily` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.AddressFamily` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AddressFamily { AppleTalk, @@ -448,7 +451,7 @@ namespace System VoiceView, } - // Generated from `System.Net.Sockets.SocketError` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketError` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SocketError { AccessDenied, @@ -500,7 +503,7 @@ namespace System WouldBlock, } - // Generated from `System.Net.Sockets.SocketException` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketException` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SocketException : System.ComponentModel.Win32Exception { public override int ErrorCode { get => throw null; } @@ -517,7 +520,7 @@ namespace System { namespace Authentication { - // Generated from `System.Security.Authentication.CipherAlgorithmType` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.CipherAlgorithmType` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CipherAlgorithmType { Aes, @@ -532,7 +535,7 @@ namespace System TripleDes, } - // Generated from `System.Security.Authentication.ExchangeAlgorithmType` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.ExchangeAlgorithmType` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ExchangeAlgorithmType { DiffieHellman, @@ -541,7 +544,7 @@ namespace System RsaSign, } - // Generated from `System.Security.Authentication.HashAlgorithmType` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.HashAlgorithmType` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HashAlgorithmType { Md5, @@ -552,7 +555,7 @@ namespace System Sha512, } - // Generated from `System.Security.Authentication.SslProtocols` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.SslProtocols` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SslProtocols { @@ -568,7 +571,7 @@ namespace System namespace ExtendedProtection { - // Generated from `System.Security.Authentication.ExtendedProtection.ChannelBinding` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.ExtendedProtection.ChannelBinding` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ChannelBinding : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { protected ChannelBinding() : base(default(bool)) => throw null; @@ -576,7 +579,7 @@ namespace System public abstract int Size { get; } } - // Generated from `System.Security.Authentication.ExtendedProtection.ChannelBindingKind` in `System.Net.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.ExtendedProtection.ChannelBindingKind` in `System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ChannelBindingKind { Endpoint, 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 ec8af5f33d9..5b917ef6feb 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 @@ -4,7 +4,7 @@ namespace System { namespace Net { - // Generated from `System.Net.AuthenticationManager` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.AuthenticationManager` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AuthenticationManager { public static System.Net.Authorization Authenticate(string challenge, System.Net.WebRequest request, System.Net.ICredentials credentials) => throw null; @@ -17,7 +17,7 @@ namespace System public static void Unregister(string authenticationScheme) => throw null; } - // Generated from `System.Net.Authorization` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Authorization` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Authorization { public Authorization(string token) => throw null; @@ -30,7 +30,7 @@ namespace System public string[] ProtectionRealm { get => throw null; set => throw null; } } - // Generated from `System.Net.FileWebRequest` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.FileWebRequest` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable { public override void Abort() => throw null; @@ -58,7 +58,7 @@ namespace System public override bool UseDefaultCredentials { get => throw null; set => throw null; } } - // Generated from `System.Net.FileWebResponse` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.FileWebResponse` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileWebResponse : System.Net.WebResponse, System.Runtime.Serialization.ISerializable { public override void Close() => throw null; @@ -73,7 +73,7 @@ namespace System public override bool SupportsHeaders { get => throw null; } } - // Generated from `System.Net.FtpStatusCode` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.FtpStatusCode` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FtpStatusCode { AccountNeeded, @@ -115,7 +115,7 @@ namespace System Undefined, } - // Generated from `System.Net.FtpWebRequest` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.FtpWebRequest` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FtpWebRequest : System.Net.WebRequest { public override void Abort() => throw null; @@ -148,7 +148,7 @@ namespace System public bool UsePassive { get => throw null; set => throw null; } } - // Generated from `System.Net.FtpWebResponse` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.FtpWebResponse` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FtpWebResponse : System.Net.WebResponse, System.IDisposable { public string BannerMessage { get => throw null; } @@ -165,7 +165,7 @@ namespace System public string WelcomeMessage { get => throw null; } } - // Generated from `System.Net.GlobalProxySelection` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.GlobalProxySelection` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GlobalProxySelection { public static System.Net.IWebProxy GetEmptyWebProxy() => throw null; @@ -173,10 +173,10 @@ namespace System public static System.Net.IWebProxy Select { get => throw null; set => throw null; } } - // Generated from `System.Net.HttpContinueDelegate` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.HttpContinueDelegate` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void HttpContinueDelegate(int StatusCode, System.Net.WebHeaderCollection httpHeaders); - // Generated from `System.Net.HttpWebRequest` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.HttpWebRequest` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable { public override void Abort() => throw null; @@ -246,7 +246,7 @@ namespace System public string UserAgent { get => throw null; set => throw null; } } - // Generated from `System.Net.HttpWebResponse` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.HttpWebResponse` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpWebResponse : System.Net.WebResponse, System.Runtime.Serialization.ISerializable { public string CharacterSet { get => throw null; } @@ -274,7 +274,7 @@ namespace System public override bool SupportsHeaders { get => throw null; } } - // Generated from `System.Net.IAuthenticationModule` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.IAuthenticationModule` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IAuthenticationModule { System.Net.Authorization Authenticate(string challenge, System.Net.WebRequest request, System.Net.ICredentials credentials); @@ -283,19 +283,19 @@ namespace System System.Net.Authorization PreAuthenticate(System.Net.WebRequest request, System.Net.ICredentials credentials); } - // Generated from `System.Net.ICredentialPolicy` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.ICredentialPolicy` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICredentialPolicy { bool ShouldSendCredential(System.Uri challengeUri, System.Net.WebRequest request, System.Net.NetworkCredential credential, System.Net.IAuthenticationModule authenticationModule); } - // Generated from `System.Net.IWebRequestCreate` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.IWebRequestCreate` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IWebRequestCreate { System.Net.WebRequest Create(System.Uri uri); } - // Generated from `System.Net.ProtocolViolationException` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.ProtocolViolationException` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -305,7 +305,7 @@ namespace System public ProtocolViolationException(string message) => throw null; } - // Generated from `System.Net.WebException` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebException` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -320,7 +320,7 @@ namespace System public WebException(string message, System.Net.WebExceptionStatus status) => throw null; } - // Generated from `System.Net.WebExceptionStatus` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebExceptionStatus` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WebExceptionStatus { CacheEntryNotFound, @@ -346,7 +346,7 @@ namespace System UnknownError, } - // Generated from `System.Net.WebRequest` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebRequest` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class WebRequest : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable { public virtual void Abort() => throw null; @@ -387,10 +387,10 @@ namespace System protected WebRequest(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; } - // Generated from `System.Net.WebRequestMethods` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebRequestMethods` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class WebRequestMethods { - // Generated from `System.Net.WebRequestMethods+File` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebRequestMethods+File` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class File { public const string DownloadFile = default; @@ -398,7 +398,7 @@ namespace System } - // Generated from `System.Net.WebRequestMethods+Ftp` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebRequestMethods+Ftp` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Ftp { public const string AppendFile = default; @@ -417,7 +417,7 @@ namespace System } - // Generated from `System.Net.WebRequestMethods+Http` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebRequestMethods+Http` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Http { public const string Connect = default; @@ -431,7 +431,7 @@ namespace System } - // Generated from `System.Net.WebResponse` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebResponse` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class WebResponse : System.MarshalByRefObject, System.IDisposable, System.Runtime.Serialization.ISerializable { public virtual void Close() => throw null; @@ -453,7 +453,7 @@ namespace System namespace Cache { - // Generated from `System.Net.Cache.HttpCacheAgeControl` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Cache.HttpCacheAgeControl` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HttpCacheAgeControl { MaxAge, @@ -464,7 +464,7 @@ namespace System None, } - // Generated from `System.Net.Cache.HttpRequestCacheLevel` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Cache.HttpRequestCacheLevel` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HttpRequestCacheLevel { BypassCache, @@ -478,7 +478,7 @@ namespace System Revalidate, } - // Generated from `System.Net.Cache.HttpRequestCachePolicy` in `System.Net.Requests, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Cache.HttpRequestCachePolicy` in `System.Net.Requests, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpRequestCachePolicy : System.Net.Cache.RequestCachePolicy { public System.DateTime CacheSyncDate { 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 71678d78f1c..498a281c15d 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 @@ -6,7 +6,7 @@ namespace System { namespace Security { - // Generated from `System.Net.Security.AuthenticatedStream` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.AuthenticatedStream` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class AuthenticatedStream : System.IO.Stream { protected AuthenticatedStream(System.IO.Stream innerStream, bool leaveInnerStreamOpen) => throw null; @@ -21,14 +21,14 @@ namespace System public bool LeaveInnerStreamOpen { get => throw null; } } - // Generated from `System.Net.Security.CipherSuitesPolicy` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.CipherSuitesPolicy` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CipherSuitesPolicy { public System.Collections.Generic.IEnumerable AllowedCipherSuites { get => throw null; } public CipherSuitesPolicy(System.Collections.Generic.IEnumerable allowedCipherSuites) => throw null; } - // Generated from `System.Net.Security.EncryptionPolicy` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.EncryptionPolicy` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EncryptionPolicy { AllowNoEncryption, @@ -36,10 +36,10 @@ namespace System RequireEncryption, } - // Generated from `System.Net.Security.LocalCertificateSelectionCallback` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.LocalCertificateSelectionCallback` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Net.Security.NegotiateStream` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.NegotiateStream` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NegotiateStream : System.Net.Security.AuthenticatedStream { public virtual void AuthenticateAsClient() => throw null; @@ -106,7 +106,7 @@ namespace System public override int WriteTimeout { get => throw null; set => throw null; } } - // Generated from `System.Net.Security.ProtectionLevel` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.ProtectionLevel` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ProtectionLevel { EncryptAndSign, @@ -114,16 +114,16 @@ namespace System Sign, } - // Generated from `System.Net.Security.RemoteCertificateValidationCallback` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.RemoteCertificateValidationCallback` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate bool RemoteCertificateValidationCallback(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors); - // Generated from `System.Net.Security.ServerCertificateSelectionCallback` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.ServerCertificateSelectionCallback` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate System.Security.Cryptography.X509Certificates.X509Certificate ServerCertificateSelectionCallback(object sender, string hostName); - // Generated from `System.Net.Security.ServerOptionsSelectionCallback` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.ServerOptionsSelectionCallback` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate System.Threading.Tasks.ValueTask ServerOptionsSelectionCallback(System.Net.Security.SslStream stream, System.Net.Security.SslClientHelloInfo clientHelloInfo, object state, System.Threading.CancellationToken cancellationToken); - // Generated from `System.Net.Security.SslApplicationProtocol` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.SslApplicationProtocol` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SslApplicationProtocol : System.IEquatable { public static bool operator !=(System.Net.Security.SslApplicationProtocol left, System.Net.Security.SslApplicationProtocol right) => throw null; @@ -133,6 +133,7 @@ namespace System 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; @@ -140,7 +141,14 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Net.Security.SslClientAuthenticationOptions` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.SslCertificateTrust` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; + } + + // Generated from `System.Net.Security.SslClientAuthenticationOptions` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SslClientAuthenticationOptions { public bool AllowRenegotiation { get => throw null; set => throw null; } @@ -156,7 +164,7 @@ namespace System public string TargetHost { get => throw null; set => throw null; } } - // Generated from `System.Net.Security.SslClientHelloInfo` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.SslClientHelloInfo` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SslClientHelloInfo { public string ServerName { get => throw null; } @@ -164,7 +172,7 @@ namespace System public System.Security.Authentication.SslProtocols SslProtocols { get => throw null; } } - // Generated from `System.Net.Security.SslServerAuthenticationOptions` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.SslServerAuthenticationOptions` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SslServerAuthenticationOptions { public bool AllowRenegotiation { get => throw null; set => throw null; } @@ -181,7 +189,7 @@ namespace System public SslServerAuthenticationOptions() => throw null; } - // Generated from `System.Net.Security.SslStream` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.SslStream` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SslStream : System.Net.Security.AuthenticatedStream { public void AuthenticateAsClient(System.Net.Security.SslClientAuthenticationOptions sslClientAuthenticationOptions) => throw null; @@ -235,6 +243,7 @@ namespace System public virtual int KeyExchangeStrength { get => throw null; } public override System.Int64 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; } @@ -263,13 +272,14 @@ namespace System // ERR: Stub generator didn't handle member: ~SslStream } - // Generated from `System.Net.Security.SslStreamCertificateContext` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.SslStreamCertificateContext` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SslStreamCertificateContext { - public static System.Net.Security.SslStreamCertificateContext Create(System.Security.Cryptography.X509Certificates.X509Certificate2 target, System.Security.Cryptography.X509Certificates.X509Certificate2Collection additionalCertificates, bool offline = default(bool)) => throw null; + 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; } - // Generated from `System.Net.Security.TlsCipherSuite` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Security.TlsCipherSuite` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TlsCipherSuite { TLS_AES_128_CCM_8_SHA256, @@ -617,7 +627,7 @@ namespace System { namespace Authentication { - // Generated from `System.Security.Authentication.AuthenticationException` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.AuthenticationException` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AuthenticationException : System.SystemException { public AuthenticationException() => throw null; @@ -626,7 +636,7 @@ namespace System public AuthenticationException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Security.Authentication.InvalidCredentialException` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.InvalidCredentialException` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidCredentialException : System.Security.Authentication.AuthenticationException { public InvalidCredentialException() => throw null; @@ -637,7 +647,7 @@ namespace System namespace ExtendedProtection { - // Generated from `System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExtendedProtectionPolicy : System.Runtime.Serialization.ISerializable { public System.Security.Authentication.ExtendedProtection.ChannelBinding CustomChannelBinding { get => throw null; } @@ -654,7 +664,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Security.Authentication.ExtendedProtection.PolicyEnforcement` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.ExtendedProtection.PolicyEnforcement` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PolicyEnforcement { Always, @@ -662,14 +672,14 @@ namespace System WhenSupported, } - // Generated from `System.Security.Authentication.ExtendedProtection.ProtectionScenario` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.ExtendedProtection.ProtectionScenario` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ProtectionScenario { TransportSelected, TrustedProxy, } - // Generated from `System.Security.Authentication.ExtendedProtection.ServiceNameCollection` in `System.Net.Security, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Authentication.ExtendedProtection.ServiceNameCollection` in `System.Net.Security, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ServiceNameCollection : System.Collections.ReadOnlyCollectionBase { public bool Contains(string searchServiceName) => 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 7f8053b549d..b66863dcaff 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 @@ -4,10 +4,10 @@ namespace System { namespace Net { - // Generated from `System.Net.BindIPEndPoint` in `System.Net.ServicePoint, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.BindIPEndPoint` in `System.Net.ServicePoint, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate System.Net.IPEndPoint BindIPEndPoint(System.Net.ServicePoint servicePoint, System.Net.IPEndPoint remoteEndPoint, int retryCount); - // Generated from `System.Net.SecurityProtocolType` in `System.Net.ServicePoint, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.SecurityProtocolType` in `System.Net.ServicePoint, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` [System.Flags] public enum SecurityProtocolType { @@ -19,7 +19,7 @@ namespace System Tls13, } - // Generated from `System.Net.ServicePoint` in `System.Net.ServicePoint, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.ServicePoint` in `System.Net.ServicePoint, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ServicePoint { public System.Uri Address { get => throw null; } @@ -41,7 +41,7 @@ namespace System public bool UseNagleAlgorithm { get => throw null; set => throw null; } } - // Generated from `System.Net.ServicePointManager` in `System.Net.ServicePoint, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.ServicePointManager` in `System.Net.ServicePoint, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ServicePointManager { public static bool CheckCertificateRevocationList { get => throw null; set => 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 bf7a4dd332b..4c363796b15 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 @@ -6,7 +6,7 @@ namespace System { namespace Sockets { - // Generated from `System.Net.Sockets.IOControlCode` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.IOControlCode` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum IOControlCode { AbsorbRouterAlert, @@ -45,7 +45,7 @@ namespace System UnicastInterface, } - // Generated from `System.Net.Sockets.IPPacketInformation` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.IPPacketInformation` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct IPPacketInformation { public static bool operator !=(System.Net.Sockets.IPPacketInformation packetInformation1, System.Net.Sockets.IPPacketInformation packetInformation2) => throw null; @@ -57,7 +57,7 @@ namespace System public int Interface { get => throw null; } } - // Generated from `System.Net.Sockets.IPProtectionLevel` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.IPProtectionLevel` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum IPProtectionLevel { EdgeRestricted, @@ -66,7 +66,7 @@ namespace System Unspecified, } - // Generated from `System.Net.Sockets.IPv6MulticastOption` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.IPv6MulticastOption` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IPv6MulticastOption { public System.Net.IPAddress Group { get => throw null; set => throw null; } @@ -75,7 +75,7 @@ namespace System public System.Int64 InterfaceIndex { get => throw null; set => throw null; } } - // Generated from `System.Net.Sockets.LingerOption` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.LingerOption` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LingerOption { public bool Enabled { get => throw null; set => throw null; } @@ -83,7 +83,7 @@ namespace System public int LingerTime { get => throw null; set => throw null; } } - // Generated from `System.Net.Sockets.MulticastOption` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.MulticastOption` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MulticastOption { public System.Net.IPAddress Group { get => throw null; set => throw null; } @@ -94,11 +94,11 @@ namespace System public MulticastOption(System.Net.IPAddress group, int interfaceIndex) => throw null; } - // Generated from `System.Net.Sockets.NetworkStream` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.NetworkStream` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NetworkStream : System.IO.Stream { - public override System.IAsyncResult BeginRead(System.Byte[] buffer, int offset, int size, System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] buffer, int offset, int size, System.AsyncCallback callback, object state) => 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 override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanTimeout { get => throw null; } @@ -116,9 +116,9 @@ namespace System 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 size) => 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 size, System.Threading.CancellationToken cancellationToken) => 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 int ReadTimeout { get => throw null; set => throw null; } @@ -126,9 +126,9 @@ namespace System 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.Net.Sockets.Socket Socket { get => throw null; } - public override void Write(System.Byte[] buffer, int offset, int size) => 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 size, System.Threading.CancellationToken cancellationToken) => 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; } @@ -136,7 +136,7 @@ namespace System // ERR: Stub generator didn't handle member: ~NetworkStream } - // Generated from `System.Net.Sockets.ProtocolFamily` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.ProtocolFamily` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ProtocolFamily { AppleTalk, @@ -174,7 +174,7 @@ namespace System VoiceView, } - // Generated from `System.Net.Sockets.ProtocolType` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.ProtocolType` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ProtocolType { Ggp, @@ -204,14 +204,15 @@ namespace System Unspecified, } - // Generated from `System.Net.Sockets.SafeSocketHandle` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SafeSocketHandle` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeSocketHandle : Microsoft.Win32.SafeHandles.SafeHandleMinusOneIsInvalid { 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; } - // Generated from `System.Net.Sockets.SelectMode` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SelectMode` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SelectMode { SelectError, @@ -219,7 +220,7 @@ namespace System SelectWrite, } - // Generated from `System.Net.Sockets.SendPacketsElement` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SendPacketsElement` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SendPacketsElement { public System.Byte[] Buffer { get => throw null; } @@ -227,6 +228,7 @@ namespace System 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; @@ -235,6 +237,8 @@ namespace System 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(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; @@ -242,10 +246,14 @@ namespace System public SendPacketsElement(string filepath, System.Int64 offset, int count, bool endOfPacket) => throw null; } - // Generated from `System.Net.Sockets.Socket` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.Socket` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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.Net.Sockets.AddressFamily AddressFamily { get => throw null; } public int Available { get => throw null; } @@ -279,11 +287,20 @@ namespace System public void Connect(System.Net.IPAddress address, int port) => throw null; public void Connect(System.Net.IPAddress[] addresses, int port) => throw null; public void Connect(string host, int port) => throw null; + public System.Threading.Tasks.Task ConnectAsync(System.Net.EndPoint remoteEP) => throw null; + public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ConnectAsync(System.Net.IPAddress address, int port) => throw null; + public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.IPAddress address, int port, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ConnectAsync(System.Net.IPAddress[] addresses, int port) => throw null; + public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.IPAddress[] addresses, int port, System.Threading.CancellationToken cancellationToken) => throw null; public bool ConnectAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; public static bool ConnectAsync(System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType, System.Net.Sockets.SocketAsyncEventArgs e) => throw null; + 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 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 void Dispose() => throw null; protected virtual void Dispose(bool disposing) => throw null; public bool DontFragment { get => throw null; set => throw null; } @@ -334,14 +351,24 @@ namespace System 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, System.Net.Sockets.SocketFlags socketFlags) => 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 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.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => 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.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) => 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 System.Net.EndPoint RemoteEndPoint { get => throw null; } @@ -358,16 +385,26 @@ namespace System 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, System.Net.Sockets.SocketFlags socketFlags) => 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.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public bool SendAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; public int SendBufferSize { get => throw null; set => throw null; } 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 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.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) => 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 bool SendToAsync(System.Net.Sockets.SocketAsyncEventArgs e) => throw null; public void SetIPProtectionLevel(System.Net.Sockets.IPProtectionLevel level) => throw null; public void SetRawSocketOption(int optionLevel, int optionName, System.ReadOnlySpan optionValue) => throw null; @@ -388,7 +425,7 @@ namespace System // ERR: Stub generator didn't handle member: ~Socket } - // Generated from `System.Net.Sockets.SocketAsyncEventArgs` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketAsyncEventArgs` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SocketAsyncEventArgs : System.EventArgs, System.IDisposable { public System.Net.Sockets.Socket AcceptSocket { get => throw null; set => throw null; } @@ -421,7 +458,7 @@ namespace System // ERR: Stub generator didn't handle member: ~SocketAsyncEventArgs } - // Generated from `System.Net.Sockets.SocketAsyncOperation` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketAsyncOperation` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SocketAsyncOperation { Accept, @@ -436,7 +473,7 @@ namespace System SendTo, } - // Generated from `System.Net.Sockets.SocketFlags` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketFlags` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SocketFlags { @@ -451,7 +488,7 @@ namespace System Truncated, } - // Generated from `System.Net.Sockets.SocketInformation` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketInformation` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SocketInformation { public System.Net.Sockets.SocketInformationOptions Options { get => throw null; set => throw null; } @@ -459,7 +496,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Net.Sockets.SocketInformationOptions` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketInformationOptions` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SocketInformationOptions { @@ -469,7 +506,7 @@ namespace System UseOnlyOverlappedIO, } - // Generated from `System.Net.Sockets.SocketOptionLevel` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketOptionLevel` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SocketOptionLevel { IP, @@ -479,7 +516,7 @@ namespace System Udp, } - // Generated from `System.Net.Sockets.SocketOptionName` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketOptionName` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SocketOptionName { AcceptConnection, @@ -533,7 +570,7 @@ namespace System UseLoopback, } - // Generated from `System.Net.Sockets.SocketReceiveFromResult` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketReceiveFromResult` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SocketReceiveFromResult { public int ReceivedBytes; @@ -541,7 +578,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Net.Sockets.SocketReceiveMessageFromResult` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketReceiveMessageFromResult` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SocketReceiveMessageFromResult { public System.Net.Sockets.IPPacketInformation PacketInformation; @@ -551,7 +588,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Net.Sockets.SocketShutdown` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketShutdown` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SocketShutdown { Both, @@ -559,7 +596,7 @@ namespace System Send, } - // Generated from `System.Net.Sockets.SocketTaskExtensions` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketTaskExtensions` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class SocketTaskExtensions { public static System.Threading.Tasks.Task AcceptAsync(this System.Net.Sockets.Socket socket) => throw null; @@ -583,7 +620,7 @@ namespace System 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; } - // Generated from `System.Net.Sockets.SocketType` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.SocketType` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SocketType { Dgram, @@ -594,7 +631,7 @@ namespace System Unknown, } - // Generated from `System.Net.Sockets.TcpClient` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.TcpClient` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TcpClient : System.IDisposable { protected bool Active { get => throw null; set => throw null; } @@ -612,6 +649,8 @@ namespace System public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.IPAddress address, int port, System.Threading.CancellationToken cancellationToken) => throw null; public System.Threading.Tasks.Task ConnectAsync(System.Net.IPAddress[] addresses, int port) => throw null; public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.IPAddress[] addresses, int port, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ConnectAsync(System.Net.IPEndPoint remoteEP) => throw null; + public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.IPEndPoint remoteEP, System.Threading.CancellationToken cancellationToken) => throw null; 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; } @@ -633,13 +672,15 @@ namespace System // ERR: Stub generator didn't handle member: ~TcpClient } - // Generated from `System.Net.Sockets.TcpListener` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.TcpListener` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TcpListener { public System.Net.Sockets.Socket AcceptSocket() => throw null; public System.Threading.Tasks.Task AcceptSocketAsync() => throw null; + public System.Threading.Tasks.ValueTask AcceptSocketAsync(System.Threading.CancellationToken cancellationToken) => throw null; public System.Net.Sockets.TcpClient AcceptTcpClient() => throw null; public System.Threading.Tasks.Task AcceptTcpClientAsync() => throw null; + public System.Threading.Tasks.ValueTask AcceptTcpClientAsync(System.Threading.CancellationToken cancellationToken) => throw null; protected bool Active { get => throw null; } public void AllowNatTraversal(bool allowed) => throw null; public System.IAsyncResult BeginAcceptSocket(System.AsyncCallback callback, object state) => throw null; @@ -659,7 +700,7 @@ namespace System public TcpListener(int port) => throw null; } - // Generated from `System.Net.Sockets.TransmitFileOptions` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.TransmitFileOptions` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TransmitFileOptions { @@ -671,7 +712,7 @@ namespace System WriteBehind, } - // Generated from `System.Net.Sockets.UdpClient` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.UdpClient` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UdpClient : System.IDisposable { protected bool Active { get => throw null; set => throw null; } @@ -702,12 +743,19 @@ namespace System 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; @@ -717,7 +765,7 @@ namespace System public UdpClient(string hostname, int port) => throw null; } - // Generated from `System.Net.Sockets.UdpReceiveResult` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.UdpReceiveResult` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct UdpReceiveResult : System.IEquatable { public static bool operator !=(System.Net.Sockets.UdpReceiveResult left, System.Net.Sockets.UdpReceiveResult right) => throw null; @@ -731,7 +779,7 @@ namespace System public UdpReceiveResult(System.Byte[] buffer, System.Net.IPEndPoint remoteEndPoint) => throw null; } - // Generated from `System.Net.Sockets.UnixDomainSocketEndPoint` in `System.Net.Sockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.Sockets.UnixDomainSocketEndPoint` in `System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnixDomainSocketEndPoint : System.Net.EndPoint { 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 165dc998a1b..d0e1d3f02d2 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 @@ -4,17 +4,17 @@ namespace System { namespace Net { - // Generated from `System.Net.DownloadDataCompletedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.DownloadDataCompletedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } } - // Generated from `System.Net.DownloadDataCompletedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.DownloadDataCompletedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void DownloadDataCompletedEventHandler(object sender, System.Net.DownloadDataCompletedEventArgs e); - // Generated from `System.Net.DownloadProgressChangedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.DownloadProgressChangedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class DownloadProgressChangedEventArgs : System.ComponentModel.ProgressChangedEventArgs { public System.Int64 BytesReceived { get => throw null; } @@ -22,60 +22,60 @@ namespace System public System.Int64 TotalBytesToReceive { get => throw null; } } - // Generated from `System.Net.DownloadProgressChangedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.DownloadProgressChangedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void DownloadProgressChangedEventHandler(object sender, System.Net.DownloadProgressChangedEventArgs e); - // Generated from `System.Net.DownloadStringCompletedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.DownloadStringCompletedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class DownloadStringCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { internal DownloadStringCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; public string Result { get => throw null; } } - // Generated from `System.Net.DownloadStringCompletedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.DownloadStringCompletedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void DownloadStringCompletedEventHandler(object sender, System.Net.DownloadStringCompletedEventArgs e); - // Generated from `System.Net.OpenReadCompletedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.OpenReadCompletedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } } - // Generated from `System.Net.OpenReadCompletedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.OpenReadCompletedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void OpenReadCompletedEventHandler(object sender, System.Net.OpenReadCompletedEventArgs e); - // Generated from `System.Net.OpenWriteCompletedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.OpenWriteCompletedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } } - // Generated from `System.Net.OpenWriteCompletedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.OpenWriteCompletedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void OpenWriteCompletedEventHandler(object sender, System.Net.OpenWriteCompletedEventArgs e); - // Generated from `System.Net.UploadDataCompletedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadDataCompletedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } - // Generated from `System.Net.UploadDataCompletedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadDataCompletedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void UploadDataCompletedEventHandler(object sender, System.Net.UploadDataCompletedEventArgs e); - // Generated from `System.Net.UploadFileCompletedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadFileCompletedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } - // Generated from `System.Net.UploadFileCompletedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadFileCompletedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void UploadFileCompletedEventHandler(object sender, System.Net.UploadFileCompletedEventArgs e); - // Generated from `System.Net.UploadProgressChangedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadProgressChangedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class UploadProgressChangedEventArgs : System.ComponentModel.ProgressChangedEventArgs { public System.Int64 BytesReceived { get => throw null; } @@ -85,30 +85,30 @@ namespace System internal UploadProgressChangedEventArgs() : base(default(int), default(object)) => throw null; } - // Generated from `System.Net.UploadProgressChangedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadProgressChangedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void UploadProgressChangedEventHandler(object sender, System.Net.UploadProgressChangedEventArgs e); - // Generated from `System.Net.UploadStringCompletedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadStringCompletedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class UploadStringCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { public string Result { get => throw null; } internal UploadStringCompletedEventArgs() : base(default(System.Exception), default(bool), default(object)) => throw null; } - // Generated from `System.Net.UploadStringCompletedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadStringCompletedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void UploadStringCompletedEventHandler(object sender, System.Net.UploadStringCompletedEventArgs e); - // Generated from `System.Net.UploadValuesCompletedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadValuesCompletedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } - // Generated from `System.Net.UploadValuesCompletedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.UploadValuesCompletedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void UploadValuesCompletedEventHandler(object sender, System.Net.UploadValuesCompletedEventArgs e); - // Generated from `System.Net.WebClient` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.WebClient` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class WebClient : System.ComponentModel.Component { public bool AllowReadStreamBuffering { get => throw null; set => throw null; } @@ -233,14 +233,14 @@ namespace System public event System.Net.WriteStreamClosedEventHandler WriteStreamClosed; } - // Generated from `System.Net.WriteStreamClosedEventArgs` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.WriteStreamClosedEventArgs` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class WriteStreamClosedEventArgs : System.EventArgs { public System.Exception Error { get => throw null; } public WriteStreamClosedEventArgs() => throw null; } - // Generated from `System.Net.WriteStreamClosedEventHandler` in `System.Net.WebClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.WriteStreamClosedEventHandler` in `System.Net.WebClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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 cae32fc6a98..cc7966e85e2 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 @@ -4,7 +4,7 @@ namespace System { namespace Net { - // Generated from `System.Net.HttpRequestHeader` in `System.Net.WebHeaderCollection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.HttpRequestHeader` in `System.Net.WebHeaderCollection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HttpRequestHeader { Accept, @@ -50,7 +50,7 @@ namespace System Warning, } - // Generated from `System.Net.HttpResponseHeader` in `System.Net.WebHeaderCollection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.HttpResponseHeader` in `System.Net.WebHeaderCollection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HttpResponseHeader { AcceptRanges, @@ -85,7 +85,7 @@ namespace System WwwAuthenticate, } - // Generated from `System.Net.WebHeaderCollection` in `System.Net.WebHeaderCollection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebHeaderCollection` in `System.Net.WebHeaderCollection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; 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 eec28f133bb..c271011f461 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 @@ -4,7 +4,7 @@ namespace System { namespace Net { - // Generated from `System.Net.IWebProxyScript` in `System.Net.WebProxy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.IWebProxyScript` in `System.Net.WebProxy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IWebProxyScript { void Close(); @@ -12,7 +12,7 @@ namespace System string Run(string url, string host); } - // Generated from `System.Net.WebProxy` in `System.Net.WebProxy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Net.WebProxy` in `System.Net.WebProxy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class WebProxy : System.Net.IWebProxy, System.Runtime.Serialization.ISerializable { public System.Uri Address { get => throw null; set => throw null; } 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 d540cc53336..773f0951c18 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 @@ -6,7 +6,7 @@ namespace System { namespace WebSockets { - // Generated from `System.Net.WebSockets.ClientWebSocket` in `System.Net.WebSockets.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.ClientWebSocket` in `System.Net.WebSockets.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ClientWebSocket : System.Net.WebSockets.WebSocket { public override void Abort() => throw null; @@ -26,13 +26,14 @@ namespace System public override string SubProtocol { get => throw null; } } - // Generated from `System.Net.WebSockets.ClientWebSocketOptions` in `System.Net.WebSockets.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.ClientWebSocketOptions` in `System.Net.WebSockets.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ClientWebSocketOptions { public void AddSubProtocol(string subProtocol) => throw null; public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { 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.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; } 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 aa32e7d646b..7f9e9b9dace 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 @@ -6,7 +6,7 @@ namespace System { namespace WebSockets { - // Generated from `System.Net.WebSockets.ValueWebSocketReceiveResult` in `System.Net.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.ValueWebSocketReceiveResult` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ValueWebSocketReceiveResult { public int Count { get => throw null; } @@ -16,7 +16,7 @@ namespace System public ValueWebSocketReceiveResult(int count, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage) => throw null; } - // Generated from `System.Net.WebSockets.WebSocket` in `System.Net.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.WebSocket` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class WebSocket : System.IDisposable { public abstract void Abort(); @@ -26,6 +26,7 @@ namespace System 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.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.TimeSpan DefaultKeepAliveInterval { get => throw null; } @@ -36,6 +37,7 @@ namespace System 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.Net.WebSockets.WebSocketState State { get; } public abstract string SubProtocol { get; } @@ -43,7 +45,7 @@ namespace System protected WebSocket() => throw null; } - // Generated from `System.Net.WebSockets.WebSocketCloseStatus` in `System.Net.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.WebSocketCloseStatus` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WebSocketCloseStatus { Empty, @@ -58,7 +60,7 @@ namespace System ProtocolError, } - // Generated from `System.Net.WebSockets.WebSocketContext` in `System.Net.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.WebSocketContext` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class WebSocketContext { public abstract System.Net.CookieCollection CookieCollection { get; } @@ -76,7 +78,27 @@ namespace System protected WebSocketContext() => throw null; } - // Generated from `System.Net.WebSockets.WebSocketError` in `System.Net.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.WebSocketCreationOptions` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; + } + + // Generated from `System.Net.WebSockets.WebSocketDeflateOptions` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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 WebSocketDeflateOptions() => throw null; + } + + // Generated from `System.Net.WebSockets.WebSocketError` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WebSocketError { ConnectionClosedPrematurely, @@ -91,7 +113,7 @@ namespace System UnsupportedVersion, } - // Generated from `System.Net.WebSockets.WebSocketException` in `System.Net.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.WebSocketException` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class WebSocketException : System.ComponentModel.Win32Exception { public override int ErrorCode { get => throw null; } @@ -113,7 +135,16 @@ namespace System public WebSocketException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Net.WebSockets.WebSocketMessageType` in `System.Net.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.WebSocketMessageFlags` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + [System.Flags] + public enum WebSocketMessageFlags + { + DisableCompression, + EndOfMessage, + None, + } + + // Generated from `System.Net.WebSockets.WebSocketMessageType` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WebSocketMessageType { Binary, @@ -121,7 +152,7 @@ namespace System Text, } - // Generated from `System.Net.WebSockets.WebSocketReceiveResult` in `System.Net.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.WebSocketReceiveResult` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class WebSocketReceiveResult { public System.Net.WebSockets.WebSocketCloseStatus? CloseStatus { get => throw null; } @@ -133,7 +164,7 @@ namespace System public WebSocketReceiveResult(int count, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Net.WebSockets.WebSocketCloseStatus? closeStatus, string closeStatusDescription) => throw null; } - // Generated from `System.Net.WebSockets.WebSocketState` in `System.Net.WebSockets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebSockets.WebSocketState` in `System.Net.WebSockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WebSocketState { Aborted, 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 9df90886f1d..471b9950d40 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 @@ -4,7 +4,7 @@ namespace System { namespace Numerics { - // Generated from `System.Numerics.Matrix3x2` in `System.Numerics.Vectors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Matrix3x2` in `System.Numerics.Vectors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Matrix3x2 : System.IEquatable { public static bool operator !=(System.Numerics.Matrix3x2 value1, System.Numerics.Matrix3x2 value2) => throw null; @@ -51,7 +51,7 @@ namespace System public System.Numerics.Vector2 Translation { get => throw null; set => throw null; } } - // Generated from `System.Numerics.Matrix4x4` in `System.Numerics.Vectors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Matrix4x4` in `System.Numerics.Vectors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Matrix4x4 : System.IEquatable { public static bool operator !=(System.Numerics.Matrix4x4 value1, System.Numerics.Matrix4x4 value2) => throw null; @@ -128,7 +128,7 @@ namespace System public static System.Numerics.Matrix4x4 Transpose(System.Numerics.Matrix4x4 matrix) => throw null; } - // Generated from `System.Numerics.Plane` in `System.Numerics.Vectors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Plane` in `System.Numerics.Vectors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Plane : System.IEquatable { public static bool operator !=(System.Numerics.Plane value1, System.Numerics.Plane value2) => throw null; @@ -152,7 +152,7 @@ namespace System public static System.Numerics.Plane Transform(System.Numerics.Plane plane, System.Numerics.Quaternion rotation) => throw null; } - // Generated from `System.Numerics.Quaternion` in `System.Numerics.Vectors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Quaternion` in `System.Numerics.Vectors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Quaternion : System.IEquatable { public static bool operator !=(System.Numerics.Quaternion value1, System.Numerics.Quaternion value2) => throw null; @@ -196,17 +196,20 @@ namespace System public float Z; } - // Generated from `System.Numerics.Vector` in `System.Numerics.Vectors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Vector` in `System.Numerics.Vectors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 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 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 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; @@ -272,28 +275,29 @@ namespace System 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 Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) => throw null; - public static System.Numerics.Vector Narrow(System.Numerics.Vector source1, System.Numerics.Vector source2) => 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 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 void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) => throw null; - public static void Widen(System.Numerics.Vector source, out System.Numerics.Vector dest1, out System.Numerics.Vector dest2) => 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 System.Numerics.Vector Xor(System.Numerics.Vector left, System.Numerics.Vector right) where T : struct => throw null; } - // Generated from `System.Numerics.Vector2` in `System.Numerics.Vectors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Vector2` in `System.Numerics.Vectors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Vector2 : System.IEquatable, System.IFormattable { public static bool operator !=(System.Numerics.Vector2 left, System.Numerics.Vector2 right) => throw null; @@ -311,6 +315,7 @@ namespace System 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 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; @@ -341,9 +346,11 @@ namespace System public static System.Numerics.Vector2 Transform(System.Numerics.Vector2 value, System.Numerics.Quaternion rotation) => throw null; public static System.Numerics.Vector2 TransformNormal(System.Numerics.Vector2 normal, System.Numerics.Matrix3x2 matrix) => throw null; public static System.Numerics.Vector2 TransformNormal(System.Numerics.Vector2 normal, System.Numerics.Matrix4x4 matrix) => throw null; + 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; @@ -351,7 +358,7 @@ namespace System public static System.Numerics.Vector2 Zero { get => throw null; } } - // Generated from `System.Numerics.Vector3` in `System.Numerics.Vectors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Vector3` in `System.Numerics.Vectors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Vector3 : System.IEquatable, System.IFormattable { public static bool operator !=(System.Numerics.Vector3 left, System.Numerics.Vector3 right) => throw null; @@ -369,6 +376,7 @@ namespace System public static System.Numerics.Vector3 Clamp(System.Numerics.Vector3 value1, System.Numerics.Vector3 min, System.Numerics.Vector3 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 static System.Numerics.Vector3 Cross(System.Numerics.Vector3 vector1, System.Numerics.Vector3 vector2) => 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; @@ -398,10 +406,12 @@ namespace System public static System.Numerics.Vector3 Transform(System.Numerics.Vector3 position, System.Numerics.Matrix4x4 matrix) => throw null; public static System.Numerics.Vector3 Transform(System.Numerics.Vector3 value, System.Numerics.Quaternion rotation) => throw null; public static System.Numerics.Vector3 TransformNormal(System.Numerics.Vector3 normal, System.Numerics.Matrix4x4 matrix) => throw null; + public bool TryCopyTo(System.Span destination) => throw null; 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; @@ -411,7 +421,7 @@ namespace System public static System.Numerics.Vector3 Zero { get => throw null; } } - // Generated from `System.Numerics.Vector4` in `System.Numerics.Vectors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Vector4` in `System.Numerics.Vectors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Vector4 : System.IEquatable, System.IFormattable { public static bool operator !=(System.Numerics.Vector4 left, System.Numerics.Vector4 right) => throw null; @@ -429,6 +439,7 @@ namespace System 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 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; @@ -459,11 +470,13 @@ namespace System public static System.Numerics.Vector4 Transform(System.Numerics.Vector3 value, System.Numerics.Quaternion rotation) => throw null; public static System.Numerics.Vector4 Transform(System.Numerics.Vector4 vector, System.Numerics.Matrix4x4 matrix) => throw null; public static System.Numerics.Vector4 Transform(System.Numerics.Vector4 value, System.Numerics.Quaternion rotation) => throw null; + public bool TryCopyTo(System.Span destination) => throw null; public static System.Numerics.Vector4 UnitW { get => throw null; } 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; @@ -475,7 +488,7 @@ namespace System public static System.Numerics.Vector4 Zero { get => throw null; } } - // Generated from `System.Numerics.Vector<>` in `System.Numerics.Vectors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Vector<>` in `System.Numerics.Vectors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Vector : System.IEquatable>, System.IFormattable where T : struct { public static bool operator !=(System.Numerics.Vector left, System.Numerics.Vector right) => throw null; @@ -515,10 +528,12 @@ namespace System 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; 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 a714333acc2..ef82ac39bb9 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 @@ -6,7 +6,7 @@ namespace System { namespace ObjectModel { - // Generated from `System.Collections.ObjectModel.KeyedCollection<,>` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ObjectModel.KeyedCollection<,>` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class KeyedCollection : System.Collections.ObjectModel.Collection { protected void ChangeItemKey(TItem item, TKey newKey) => throw null; @@ -26,7 +26,7 @@ namespace System public bool TryGetValue(TKey key, out TItem item) => throw null; } - // Generated from `System.Collections.ObjectModel.ObservableCollection<>` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ObjectModel.ObservableCollection<>` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObservableCollection : System.Collections.ObjectModel.Collection, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.INotifyPropertyChanged { protected System.IDisposable BlockReentrancy() => throw null; @@ -47,10 +47,10 @@ namespace System protected override void SetItem(int index, T item) => throw null; } - // Generated from `System.Collections.ObjectModel.ReadOnlyDictionary<,>` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ObjectModel.ReadOnlyDictionary<,>` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.Collections.ObjectModel.ReadOnlyDictionary<,>+KeyCollection` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ObjectModel.ReadOnlyDictionary<,>+KeyCollection` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -68,7 +68,7 @@ namespace System } - // Generated from `System.Collections.ObjectModel.ReadOnlyDictionary<,>+ValueCollection` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ObjectModel.ReadOnlyDictionary<,>+ValueCollection` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -124,7 +124,7 @@ namespace System System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } } - // Generated from `System.Collections.ObjectModel.ReadOnlyObservableCollection<>` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ObjectModel.ReadOnlyObservableCollection<>` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReadOnlyObservableCollection : System.Collections.ObjectModel.ReadOnlyCollection, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.INotifyPropertyChanged { protected virtual event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; @@ -139,13 +139,13 @@ namespace System } namespace Specialized { - // Generated from `System.Collections.Specialized.INotifyCollectionChanged` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.INotifyCollectionChanged` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INotifyCollectionChanged { event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; } - // Generated from `System.Collections.Specialized.NotifyCollectionChangedAction` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.NotifyCollectionChangedAction` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum NotifyCollectionChangedAction { Add, @@ -155,7 +155,7 @@ namespace System Reset, } - // Generated from `System.Collections.Specialized.NotifyCollectionChangedEventArgs` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.NotifyCollectionChangedEventArgs` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NotifyCollectionChangedEventArgs : System.EventArgs { public System.Collections.Specialized.NotifyCollectionChangedAction Action { get => throw null; } @@ -176,21 +176,21 @@ namespace System public int OldStartingIndex { get => throw null; } } - // Generated from `System.Collections.Specialized.NotifyCollectionChangedEventHandler` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Specialized.NotifyCollectionChangedEventHandler` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void NotifyCollectionChangedEventHandler(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e); } } namespace ComponentModel { - // Generated from `System.ComponentModel.DataErrorsChangedEventArgs` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DataErrorsChangedEventArgs` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataErrorsChangedEventArgs : System.EventArgs { public DataErrorsChangedEventArgs(string propertyName) => throw null; public virtual string PropertyName { get => throw null; } } - // Generated from `System.ComponentModel.INotifyDataErrorInfo` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.INotifyDataErrorInfo` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INotifyDataErrorInfo { event System.EventHandler ErrorsChanged; @@ -198,39 +198,39 @@ namespace System bool HasErrors { get; } } - // Generated from `System.ComponentModel.INotifyPropertyChanged` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.INotifyPropertyChanged` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INotifyPropertyChanged { event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; } - // Generated from `System.ComponentModel.INotifyPropertyChanging` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.INotifyPropertyChanging` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INotifyPropertyChanging { event System.ComponentModel.PropertyChangingEventHandler PropertyChanging; } - // Generated from `System.ComponentModel.PropertyChangedEventArgs` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.PropertyChangedEventArgs` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PropertyChangedEventArgs : System.EventArgs { public PropertyChangedEventArgs(string propertyName) => throw null; public virtual string PropertyName { get => throw null; } } - // Generated from `System.ComponentModel.PropertyChangedEventHandler` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.PropertyChangedEventHandler` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void PropertyChangedEventHandler(object sender, System.ComponentModel.PropertyChangedEventArgs e); - // Generated from `System.ComponentModel.PropertyChangingEventArgs` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.PropertyChangingEventArgs` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PropertyChangingEventArgs : System.EventArgs { public PropertyChangingEventArgs(string propertyName) => throw null; public virtual string PropertyName { get => throw null; } } - // Generated from `System.ComponentModel.PropertyChangingEventHandler` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.PropertyChangingEventHandler` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void PropertyChangingEventHandler(object sender, System.ComponentModel.PropertyChangingEventArgs e); - // Generated from `System.ComponentModel.TypeConverterAttribute` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.TypeConverterAttribute` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeConverterAttribute : System.Attribute { public string ConverterTypeName { get => throw null; } @@ -242,7 +242,7 @@ namespace System public TypeConverterAttribute(string typeName) => throw null; } - // Generated from `System.ComponentModel.TypeDescriptionProviderAttribute` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.TypeDescriptionProviderAttribute` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeDescriptionProviderAttribute : System.Attribute { public TypeDescriptionProviderAttribute(System.Type type) => throw null; @@ -253,7 +253,7 @@ namespace System } namespace Reflection { - // Generated from `System.Reflection.ICustomTypeProvider` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ICustomTypeProvider` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICustomTypeProvider { System.Type GetCustomType(); @@ -264,7 +264,7 @@ namespace System { namespace Input { - // Generated from `System.Windows.Input.ICommand` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Windows.Input.ICommand` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICommand { bool CanExecute(object parameter); @@ -275,7 +275,7 @@ namespace System } namespace Markup { - // Generated from `System.Windows.Markup.ValueSerializerAttribute` in `System.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Windows.Markup.ValueSerializerAttribute` in `System.ObjectModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ValueSerializerAttribute : System.Attribute { public ValueSerializerAttribute(System.Type valueSerializerType) => 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 75d29691dc9..f4c2140fe5d 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 @@ -4,7 +4,7 @@ namespace System { namespace Reflection { - // Generated from `System.Reflection.DispatchProxy` in `System.Reflection.DispatchProxy, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.DispatchProxy` in `System.Reflection.DispatchProxy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DispatchProxy { public static T Create() where TProxy : System.Reflection.DispatchProxy => throw null; 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 b13e6a6b530..d6812f924d0 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 @@ -6,7 +6,7 @@ namespace System { namespace Emit { - // Generated from `System.Reflection.Emit.CustomAttributeBuilder` in `System.Reflection.Emit.ILGeneration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.CustomAttributeBuilder` in `System.Reflection.Emit.ILGeneration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CustomAttributeBuilder { public CustomAttributeBuilder(System.Reflection.ConstructorInfo con, object[] constructorArgs) => throw null; @@ -15,7 +15,7 @@ namespace System public CustomAttributeBuilder(System.Reflection.ConstructorInfo con, object[] constructorArgs, System.Reflection.PropertyInfo[] namedProperties, object[] propertyValues, System.Reflection.FieldInfo[] namedFields, object[] fieldValues) => throw null; } - // Generated from `System.Reflection.Emit.ILGenerator` in `System.Reflection.Emit.ILGeneration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.ILGenerator` in `System.Reflection.Emit.ILGeneration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ILGenerator { public virtual void BeginCatchBlock(System.Type exceptionType) => throw null; @@ -58,7 +58,7 @@ namespace System public virtual void UsingNamespace(string usingNamespace) => throw null; } - // Generated from `System.Reflection.Emit.Label` in `System.Reflection.Emit.ILGeneration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.Label` in `System.Reflection.Emit.ILGeneration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Label : System.IEquatable { public static bool operator !=(System.Reflection.Emit.Label a, System.Reflection.Emit.Label b) => throw null; @@ -69,7 +69,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Emit.LocalBuilder` in `System.Reflection.Emit.ILGeneration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.LocalBuilder` in `System.Reflection.Emit.ILGeneration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LocalBuilder : System.Reflection.LocalVariableInfo { public override bool IsPinned { get => throw null; } @@ -77,7 +77,7 @@ namespace System public override System.Type LocalType { get => throw null; } } - // Generated from `System.Reflection.Emit.ParameterBuilder` in `System.Reflection.Emit.ILGeneration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.ParameterBuilder` in `System.Reflection.Emit.ILGeneration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ParameterBuilder { public virtual int Attributes { get => throw null; } @@ -91,7 +91,7 @@ namespace System public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; } - // Generated from `System.Reflection.Emit.SignatureHelper` in `System.Reflection.Emit.ILGeneration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.SignatureHelper` in `System.Reflection.Emit.ILGeneration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SignatureHelper { public void AddArgument(System.Type clsArgument) => 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 d7e51d65f5c..e696e84576d 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 @@ -6,7 +6,7 @@ namespace System { namespace Emit { - // Generated from `System.Reflection.Emit.DynamicILInfo` in `System.Reflection.Emit.Lightweight, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.DynamicILInfo` in `System.Reflection.Emit.Lightweight, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DynamicILInfo { public System.Reflection.Emit.DynamicMethod DynamicMethod { get => throw null; } @@ -26,7 +26,7 @@ namespace System unsafe public void SetLocalSignature(System.Byte* localSignature, int signatureSize) => throw null; } - // Generated from `System.Reflection.Emit.DynamicMethod` in `System.Reflection.Emit.Lightweight, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.DynamicMethod` in `System.Reflection.Emit.Lightweight, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DynamicMethod : System.Reflection.MethodInfo { public override System.Reflection.MethodAttributes Attributes { 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 3740a80b6f8..582d8a40872 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 @@ -6,7 +6,7 @@ namespace System { namespace Emit { - // Generated from `System.Reflection.Emit.AssemblyBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.AssemblyBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyBuilder : System.Reflection.Assembly { public override string CodeBase { get => throw null; } @@ -36,9 +36,8 @@ 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 bool GlobalAssemblyCache { get => throw null; } public override System.Int64 HostContext { get => throw null; } - public override string ImageRuntimeVersion { 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; } @@ -48,7 +47,7 @@ namespace System public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; } - // Generated from `System.Reflection.Emit.AssemblyBuilderAccess` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.AssemblyBuilderAccess` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum AssemblyBuilderAccess { @@ -56,7 +55,7 @@ namespace System RunAndCollect, } - // Generated from `System.Reflection.Emit.ConstructorBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.ConstructorBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConstructorBuilder : System.Reflection.ConstructorInfo { public override System.Reflection.MethodAttributes Attributes { get => throw null; } @@ -73,6 +72,7 @@ namespace System public override object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) => throw null; 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 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; } @@ -83,12 +83,13 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Reflection.Emit.EnumBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class EnumBuilder : System.Type + // Generated from `System.Reflection.Emit.EnumBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class EnumBuilder : 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 System.Type CreateType() => throw null; public System.Reflection.TypeInfo CreateTypeInfo() => throw null; public override System.Type DeclaringType { get => throw null; } public System.Reflection.Emit.FieldBuilder DefineLiteral(string literalName, object literalValue) => throw null; @@ -120,6 +121,7 @@ namespace System 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; @@ -130,7 +132,6 @@ namespace System 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 System.Type MakeArrayType() => throw null; public override System.Type MakeArrayType(int rank) => throw null; public override System.Type MakeByRefType() => throw null; @@ -146,7 +147,7 @@ namespace System public override System.Type UnderlyingSystemType { get => throw null; } } - // Generated from `System.Reflection.Emit.EventBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.EventBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventBuilder { public void AddOtherMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; @@ -157,7 +158,7 @@ namespace System public void SetRemoveOnMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; } - // Generated from `System.Reflection.Emit.FieldBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.FieldBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FieldBuilder : System.Reflection.FieldInfo { public override System.Reflection.FieldAttributes Attributes { get => throw null; } @@ -168,6 +169,7 @@ namespace System public override object[] GetCustomAttributes(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; } public override System.Reflection.Module Module { get => throw null; } public override string Name { get => throw null; } public override System.Type ReflectedType { get => throw null; } @@ -178,8 +180,8 @@ namespace System public override void SetValue(object obj, object val, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Globalization.CultureInfo culture) => throw null; } - // Generated from `System.Reflection.Emit.GenericTypeParameterBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class GenericTypeParameterBuilder : System.Type + // Generated from `System.Reflection.Emit.GenericTypeParameterBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class GenericTypeParameterBuilder : System.Reflection.TypeInfo { public override System.Reflection.Assembly Assembly { get => throw null; } public override string AssemblyQualifiedName { get => throw null; } @@ -221,6 +223,7 @@ namespace System 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; protected override bool IsByRefImpl() => throw null; public override bool IsByRefLike { get => throw null; } protected override bool IsCOMObjectImpl() => throw null; @@ -235,12 +238,12 @@ namespace System public override bool IsSubclassOf(System.Type c) => throw null; public override bool IsTypeDefinition { get => throw null; } protected override bool IsValueTypeImpl() => throw null; - public override bool IsVariableBoundArray { get => throw null; } public override System.Type MakeArrayType() => throw null; public override System.Type MakeArrayType(int rank) => throw null; public override System.Type MakeByRefType() => throw null; public override System.Type MakeGenericType(params System.Type[] typeArguments) => throw null; public override System.Type MakePointerType() => 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; } @@ -255,7 +258,7 @@ namespace System public override System.Type UnderlyingSystemType { get => throw null; } } - // Generated from `System.Reflection.Emit.MethodBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.MethodBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MethodBuilder : System.Reflection.MethodInfo { public override System.Reflection.MethodAttributes Attributes { get => throw null; } @@ -277,7 +280,6 @@ namespace System public override System.Reflection.ParameterInfo[] GetParameters() => throw null; public bool InitLocals { get => throw null; set => throw null; } 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 IsConstructedGenericMethod { get => throw null; } public override bool IsDefined(System.Type attributeType, bool inherit) => throw null; public override bool IsGenericMethod { get => throw null; } public override bool IsGenericMethodDefinition { get => throw null; } @@ -285,6 +287,7 @@ namespace System public override bool IsSecuritySafeCritical { get => throw null; } public override bool IsSecurityTransparent { get => throw null; } public override System.Reflection.MethodInfo MakeGenericMethod(params System.Type[] typeArguments) => 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; } @@ -301,7 +304,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Reflection.Emit.ModuleBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.ModuleBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ModuleBuilder : System.Reflection.Module { public override System.Reflection.Assembly Assembly { get => throw null; } @@ -330,6 +333,7 @@ namespace System 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; public override int GetHashCode() => 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 bindingFlags) => throw null; public override void GetPEKind(out System.Reflection.PortableExecutableKinds peKind, out System.Reflection.ImageFileMachine machine) => throw null; public override System.Type GetType(string className) => throw null; @@ -353,7 +357,7 @@ namespace System public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) => throw null; } - // Generated from `System.Reflection.Emit.PropertyBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.PropertyBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PropertyBuilder : System.Reflection.PropertyInfo { public void AddOtherMethod(System.Reflection.Emit.MethodBuilder mdBuilder) => throw null; @@ -383,8 +387,8 @@ namespace System public override void SetValue(object obj, object value, object[] index) => throw null; } - // Generated from `System.Reflection.Emit.TypeBuilder` in `System.Reflection.Emit, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class TypeBuilder : System.Type + // Generated from `System.Reflection.Emit.TypeBuilder` in `System.Reflection.Emit, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class TypeBuilder : System.Reflection.TypeInfo { public void AddInterfaceImplementation(System.Type interfaceType) => throw null; public override System.Reflection.Assembly Assembly { get => throw null; } @@ -459,6 +463,7 @@ namespace System 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; protected override bool IsByRefImpl() => throw null; public override bool IsByRefLike { get => throw null; } protected override bool IsCOMObjectImpl() => throw null; @@ -476,12 +481,12 @@ namespace System public override bool IsSecurityTransparent { get => throw null; } public override bool IsSubclassOf(System.Type c) => throw null; public override bool IsTypeDefinition { get => throw null; } - public override bool IsVariableBoundArray { get => throw null; } public override System.Type MakeArrayType() => throw null; public override System.Type MakeArrayType(int rank) => throw null; public override System.Type MakeByRefType() => throw null; public override System.Type MakeGenericType(params System.Type[] typeArguments) => throw null; public override System.Type MakePointerType() => 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; } 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 9c0e6e16e47..3965762e5db 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 @@ -4,7 +4,7 @@ namespace System { namespace Reflection { - // Generated from `System.Reflection.AssemblyFlags` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyFlags` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum AssemblyFlags { @@ -16,7 +16,7 @@ namespace System WindowsRuntime, } - // Generated from `System.Reflection.AssemblyHashAlgorithm` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyHashAlgorithm` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AssemblyHashAlgorithm { MD5, @@ -27,7 +27,7 @@ namespace System Sha512, } - // Generated from `System.Reflection.DeclarativeSecurityAction` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.DeclarativeSecurityAction` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DeclarativeSecurityAction { Assert, @@ -42,7 +42,7 @@ namespace System RequestRefuse, } - // Generated from `System.Reflection.ManifestResourceAttributes` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ManifestResourceAttributes` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ManifestResourceAttributes { @@ -51,7 +51,7 @@ namespace System VisibilityMask, } - // Generated from `System.Reflection.MethodImportAttributes` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MethodImportAttributes` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MethodImportAttributes { @@ -76,7 +76,7 @@ namespace System ThrowOnUnmappableCharMask, } - // Generated from `System.Reflection.MethodSemanticsAttributes` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MethodSemanticsAttributes` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MethodSemanticsAttributes { @@ -90,7 +90,7 @@ namespace System namespace Metadata { - // Generated from `System.Reflection.Metadata.ArrayShape` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ArrayShape` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ArrayShape { // Stub generator skipped constructor @@ -100,7 +100,7 @@ namespace System public System.Collections.Immutable.ImmutableArray Sizes { get => throw null; } } - // Generated from `System.Reflection.Metadata.AssemblyDefinition` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyDefinition` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AssemblyDefinition { // Stub generator skipped constructor @@ -115,7 +115,7 @@ namespace System public System.Version Version { get => throw null; } } - // Generated from `System.Reflection.Metadata.AssemblyDefinitionHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyDefinitionHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AssemblyDefinitionHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.AssemblyDefinitionHandle left, System.Reflection.Metadata.AssemblyDefinitionHandle right) => throw null; @@ -131,7 +131,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.AssemblyDefinitionHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.AssemblyFile` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyFile` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AssemblyFile { // Stub generator skipped constructor @@ -141,7 +141,7 @@ namespace System public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - // Generated from `System.Reflection.Metadata.AssemblyFileHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyFileHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AssemblyFileHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.AssemblyFileHandle left, System.Reflection.Metadata.AssemblyFileHandle right) => throw null; @@ -157,10 +157,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.AssemblyFileHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.AssemblyFileHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyFileHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AssemblyFileHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.AssemblyFileHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyFileHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.AssemblyFileHandle Current { get => throw null; } @@ -179,7 +179,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Reflection.Metadata.AssemblyReference` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyReference` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AssemblyReference { // Stub generator skipped constructor @@ -193,7 +193,7 @@ namespace System public System.Version Version { get => throw null; } } - // Generated from `System.Reflection.Metadata.AssemblyReferenceHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyReferenceHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AssemblyReferenceHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.AssemblyReferenceHandle left, System.Reflection.Metadata.AssemblyReferenceHandle right) => throw null; @@ -209,10 +209,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.AssemblyReferenceHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.AssemblyReferenceHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyReferenceHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AssemblyReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.AssemblyReferenceHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyReferenceHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.AssemblyReferenceHandle Current { get => throw null; } @@ -231,7 +231,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Reflection.Metadata.Blob` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Blob` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Blob { // Stub generator skipped constructor @@ -240,10 +240,10 @@ namespace System public int Length { get => throw null; } } - // Generated from `System.Reflection.Metadata.BlobBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.BlobBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BlobBuilder { - // Generated from `System.Reflection.Metadata.BlobBuilder+Blobs` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.BlobBuilder+Blobs` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Blobs : System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerable, System.Collections.IEnumerator, System.IDisposable { // Stub generator skipped constructor @@ -316,7 +316,7 @@ namespace System public void WriteUserString(string value) => throw null; } - // Generated from `System.Reflection.Metadata.BlobContentId` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.BlobContentId` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct BlobContentId : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.BlobContentId left, System.Reflection.Metadata.BlobContentId right) => throw null; @@ -336,7 +336,7 @@ namespace System public System.UInt32 Stamp { get => throw null; } } - // Generated from `System.Reflection.Metadata.BlobHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.BlobHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct BlobHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.BlobHandle left, System.Reflection.Metadata.BlobHandle right) => throw null; @@ -350,7 +350,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.BlobHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.BlobReader` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.BlobReader` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct BlobReader { public void Align(System.Byte alignment) => throw null; @@ -395,7 +395,7 @@ namespace System public bool TryReadCompressedSignedInteger(out int value) => throw null; } - // Generated from `System.Reflection.Metadata.BlobWriter` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.BlobWriter` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct BlobWriter { public void Align(int alignment) => throw null; @@ -452,7 +452,7 @@ namespace System public void WriteUserString(string value) => throw null; } - // Generated from `System.Reflection.Metadata.Constant` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Constant` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Constant { // Stub generator skipped constructor @@ -461,7 +461,7 @@ namespace System public System.Reflection.Metadata.BlobHandle Value { get => throw null; } } - // Generated from `System.Reflection.Metadata.ConstantHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ConstantHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConstantHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.ConstantHandle left, System.Reflection.Metadata.ConstantHandle right) => throw null; @@ -477,7 +477,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ConstantHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.ConstantTypeCode` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ConstantTypeCode` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ConstantTypeCode { Boolean, @@ -497,7 +497,7 @@ namespace System UInt64, } - // Generated from `System.Reflection.Metadata.CustomAttribute` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomAttribute` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttribute { public System.Reflection.Metadata.EntityHandle Constructor { get => throw null; } @@ -507,7 +507,7 @@ namespace System public System.Reflection.Metadata.BlobHandle Value { get => throw null; } } - // Generated from `System.Reflection.Metadata.CustomAttributeHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomAttributeHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.CustomAttributeHandle left, System.Reflection.Metadata.CustomAttributeHandle right) => throw null; @@ -523,10 +523,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.CustomAttributeHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.CustomAttributeHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomAttributeHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.CustomAttributeHandle Current { get => throw null; } @@ -545,7 +545,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Reflection.Metadata.CustomAttributeNamedArgument<>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomAttributeNamedArgument<>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeNamedArgument { // Stub generator skipped constructor @@ -556,14 +556,14 @@ namespace System public object Value { get => throw null; } } - // Generated from `System.Reflection.Metadata.CustomAttributeNamedArgumentKind` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomAttributeNamedArgumentKind` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CustomAttributeNamedArgumentKind { Field, Property, } - // Generated from `System.Reflection.Metadata.CustomAttributeTypedArgument<>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomAttributeTypedArgument<>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeTypedArgument { // Stub generator skipped constructor @@ -572,7 +572,7 @@ namespace System public object Value { get => throw null; } } - // Generated from `System.Reflection.Metadata.CustomAttributeValue<>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomAttributeValue<>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeValue { // Stub generator skipped constructor @@ -581,7 +581,7 @@ namespace System public System.Collections.Immutable.ImmutableArray> NamedArguments { get => throw null; } } - // Generated from `System.Reflection.Metadata.CustomDebugInformation` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomDebugInformation` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomDebugInformation { // Stub generator skipped constructor @@ -590,7 +590,7 @@ namespace System public System.Reflection.Metadata.BlobHandle Value { get => throw null; } } - // Generated from `System.Reflection.Metadata.CustomDebugInformationHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomDebugInformationHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomDebugInformationHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.CustomDebugInformationHandle left, System.Reflection.Metadata.CustomDebugInformationHandle right) => throw null; @@ -606,10 +606,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.CustomDebugInformationHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.CustomDebugInformationHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomDebugInformationHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomDebugInformationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.CustomDebugInformationHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.CustomDebugInformationHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.CustomDebugInformationHandle Current { get => throw null; } @@ -628,7 +628,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Reflection.Metadata.DebugMetadataHeader` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.DebugMetadataHeader` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebugMetadataHeader { public System.Reflection.Metadata.MethodDefinitionHandle EntryPoint { get => throw null; } @@ -636,7 +636,7 @@ namespace System public int IdStartOffset { get => throw null; } } - // Generated from `System.Reflection.Metadata.DeclarativeSecurityAttribute` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.DeclarativeSecurityAttribute` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DeclarativeSecurityAttribute { public System.Reflection.DeclarativeSecurityAction Action { get => throw null; } @@ -645,7 +645,7 @@ namespace System public System.Reflection.Metadata.BlobHandle PermissionSet { get => throw null; } } - // Generated from `System.Reflection.Metadata.DeclarativeSecurityAttributeHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.DeclarativeSecurityAttributeHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DeclarativeSecurityAttributeHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle left, System.Reflection.Metadata.DeclarativeSecurityAttributeHandle right) => throw null; @@ -661,10 +661,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.DeclarativeSecurityAttributeHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.DeclarativeSecurityAttributeHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.DeclarativeSecurityAttributeHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DeclarativeSecurityAttributeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.DeclarativeSecurityAttributeHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.DeclarativeSecurityAttributeHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.DeclarativeSecurityAttributeHandle Current { get => throw null; } @@ -683,7 +683,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Reflection.Metadata.Document` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Document` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Document { // Stub generator skipped constructor @@ -693,7 +693,7 @@ namespace System public System.Reflection.Metadata.DocumentNameBlobHandle Name { get => throw null; } } - // Generated from `System.Reflection.Metadata.DocumentHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.DocumentHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DocumentHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.DocumentHandle left, System.Reflection.Metadata.DocumentHandle right) => throw null; @@ -709,10 +709,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.DocumentHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.DocumentHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.DocumentHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DocumentHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.DocumentHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.DocumentHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.DocumentHandle Current { get => throw null; } @@ -731,7 +731,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Reflection.Metadata.DocumentNameBlobHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.DocumentNameBlobHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DocumentNameBlobHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.DocumentNameBlobHandle left, System.Reflection.Metadata.DocumentNameBlobHandle right) => throw null; @@ -745,7 +745,7 @@ namespace System public static implicit operator System.Reflection.Metadata.BlobHandle(System.Reflection.Metadata.DocumentNameBlobHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.EntityHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.EntityHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct EntityHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.EntityHandle left, System.Reflection.Metadata.EntityHandle right) => throw null; @@ -762,7 +762,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.EntityHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.EventAccessors` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.EventAccessors` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct EventAccessors { public System.Reflection.Metadata.MethodDefinitionHandle Adder { get => throw null; } @@ -772,7 +772,7 @@ namespace System public System.Reflection.Metadata.MethodDefinitionHandle Remover { get => throw null; } } - // Generated from `System.Reflection.Metadata.EventDefinition` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.EventDefinition` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct EventDefinition { public System.Reflection.EventAttributes Attributes { get => throw null; } @@ -783,7 +783,7 @@ namespace System public System.Reflection.Metadata.EntityHandle Type { get => throw null; } } - // Generated from `System.Reflection.Metadata.EventDefinitionHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.EventDefinitionHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct EventDefinitionHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.EventDefinitionHandle left, System.Reflection.Metadata.EventDefinitionHandle right) => throw null; @@ -799,10 +799,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.EventDefinitionHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.EventDefinitionHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.EventDefinitionHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct EventDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.EventDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.EventDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.EventDefinitionHandle Current { get => throw null; } @@ -821,7 +821,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Reflection.Metadata.ExceptionRegion` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ExceptionRegion` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ExceptionRegion { public System.Reflection.Metadata.EntityHandle CatchType { get => throw null; } @@ -834,7 +834,7 @@ namespace System public int TryOffset { get => throw null; } } - // Generated from `System.Reflection.Metadata.ExceptionRegionKind` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ExceptionRegionKind` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ExceptionRegionKind { Catch, @@ -843,7 +843,7 @@ namespace System Finally, } - // Generated from `System.Reflection.Metadata.ExportedType` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ExportedType` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ExportedType { public System.Reflection.TypeAttributes Attributes { get => throw null; } @@ -856,7 +856,7 @@ namespace System public System.Reflection.Metadata.NamespaceDefinitionHandle NamespaceDefinition { get => throw null; } } - // Generated from `System.Reflection.Metadata.ExportedTypeHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ExportedTypeHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ExportedTypeHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.ExportedTypeHandle left, System.Reflection.Metadata.ExportedTypeHandle right) => throw null; @@ -872,10 +872,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ExportedTypeHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.ExportedTypeHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ExportedTypeHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ExportedTypeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.ExportedTypeHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ExportedTypeHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.ExportedTypeHandle Current { get => throw null; } @@ -894,7 +894,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Reflection.Metadata.FieldDefinition` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.FieldDefinition` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct FieldDefinition { public System.Reflection.FieldAttributes Attributes { get => throw null; } @@ -910,7 +910,7 @@ namespace System public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - // Generated from `System.Reflection.Metadata.FieldDefinitionHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.FieldDefinitionHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct FieldDefinitionHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.FieldDefinitionHandle left, System.Reflection.Metadata.FieldDefinitionHandle right) => throw null; @@ -926,10 +926,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.FieldDefinitionHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.FieldDefinitionHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.FieldDefinitionHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct FieldDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.FieldDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.FieldDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.FieldDefinitionHandle Current { get => throw null; } @@ -948,7 +948,7 @@ namespace System System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; } - // Generated from `System.Reflection.Metadata.GenericParameter` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.GenericParameter` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GenericParameter { public System.Reflection.GenericParameterAttributes Attributes { get => throw null; } @@ -960,7 +960,7 @@ namespace System public System.Reflection.Metadata.EntityHandle Parent { get => throw null; } } - // Generated from `System.Reflection.Metadata.GenericParameterConstraint` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.GenericParameterConstraint` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GenericParameterConstraint { // Stub generator skipped constructor @@ -969,7 +969,7 @@ namespace System public System.Reflection.Metadata.EntityHandle Type { get => throw null; } } - // Generated from `System.Reflection.Metadata.GenericParameterConstraintHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.GenericParameterConstraintHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GenericParameterConstraintHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.GenericParameterConstraintHandle left, System.Reflection.Metadata.GenericParameterConstraintHandle right) => throw null; @@ -985,10 +985,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.GenericParameterConstraintHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.GenericParameterConstraintHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.GenericParameterConstraintHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GenericParameterConstraintHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.GenericParameterConstraintHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.GenericParameterConstraintHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.GenericParameterConstraintHandle Current { get => throw null; } @@ -1008,7 +1008,7 @@ namespace System public System.Reflection.Metadata.GenericParameterConstraintHandle this[int index] { get => throw null; } } - // Generated from `System.Reflection.Metadata.GenericParameterHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.GenericParameterHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GenericParameterHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.GenericParameterHandle left, System.Reflection.Metadata.GenericParameterHandle right) => throw null; @@ -1024,10 +1024,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.GenericParameterHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.GenericParameterHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.GenericParameterHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GenericParameterHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.GenericParameterHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.GenericParameterHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.GenericParameterHandle Current { get => throw null; } @@ -1047,7 +1047,7 @@ namespace System public System.Reflection.Metadata.GenericParameterHandle this[int index] { get => throw null; } } - // Generated from `System.Reflection.Metadata.GuidHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.GuidHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GuidHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.GuidHandle left, System.Reflection.Metadata.GuidHandle right) => throw null; @@ -1061,7 +1061,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.GuidHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.Handle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Handle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Handle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.Handle left, System.Reflection.Metadata.Handle right) => throw null; @@ -1076,7 +1076,7 @@ namespace System public static System.Reflection.Metadata.ModuleDefinitionHandle ModuleDefinition; } - // Generated from `System.Reflection.Metadata.HandleComparer` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.HandleComparer` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; @@ -1088,7 +1088,7 @@ namespace System public int GetHashCode(System.Reflection.Metadata.Handle obj) => throw null; } - // Generated from `System.Reflection.Metadata.HandleKind` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.HandleKind` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HandleKind { AssemblyDefinition, @@ -1130,7 +1130,7 @@ namespace System UserString, } - // Generated from `System.Reflection.Metadata.IConstructedTypeProvider<>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.IConstructedTypeProvider<>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IConstructedTypeProvider : System.Reflection.Metadata.ISZArrayTypeProvider { TType GetArrayType(TType elementType, System.Reflection.Metadata.ArrayShape shape); @@ -1139,7 +1139,7 @@ namespace System TType GetPointerType(TType elementType); } - // Generated from `System.Reflection.Metadata.ICustomAttributeTypeProvider<>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ICustomAttributeTypeProvider<>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICustomAttributeTypeProvider : System.Reflection.Metadata.ISZArrayTypeProvider, System.Reflection.Metadata.ISimpleTypeProvider { TType GetSystemType(); @@ -1148,7 +1148,7 @@ namespace System bool IsSystemType(TType type); } - // Generated from `System.Reflection.Metadata.ILOpCode` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ILOpCode` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ILOpCode { Add, @@ -1371,7 +1371,7 @@ namespace System Xor, } - // Generated from `System.Reflection.Metadata.ILOpCodeExtensions` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ILOpCodeExtensions` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ILOpCodeExtensions { public static int GetBranchOperandSize(this System.Reflection.Metadata.ILOpCode opCode) => throw null; @@ -1380,13 +1380,13 @@ namespace System public static bool IsBranch(this System.Reflection.Metadata.ILOpCode opCode) => throw null; } - // Generated from `System.Reflection.Metadata.ISZArrayTypeProvider<>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ISZArrayTypeProvider<>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISZArrayTypeProvider { TType GetSZArrayType(TType elementType); } - // Generated from `System.Reflection.Metadata.ISignatureTypeProvider<,>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ISignatureTypeProvider<,>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISignatureTypeProvider : System.Reflection.Metadata.IConstructedTypeProvider, System.Reflection.Metadata.ISZArrayTypeProvider, System.Reflection.Metadata.ISimpleTypeProvider { TType GetFunctionPointerType(System.Reflection.Metadata.MethodSignature signature); @@ -1397,7 +1397,7 @@ namespace System TType GetTypeFromSpecification(System.Reflection.Metadata.MetadataReader reader, TGenericContext genericContext, System.Reflection.Metadata.TypeSpecificationHandle handle, System.Byte rawTypeKind); } - // Generated from `System.Reflection.Metadata.ISimpleTypeProvider<>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ISimpleTypeProvider<>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISimpleTypeProvider { TType GetPrimitiveType(System.Reflection.Metadata.PrimitiveTypeCode typeCode); @@ -1405,7 +1405,7 @@ namespace System TType GetTypeFromReference(System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.TypeReferenceHandle handle, System.Byte rawTypeKind); } - // Generated from `System.Reflection.Metadata.ImageFormatLimitationException` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ImageFormatLimitationException` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ImageFormatLimitationException : System.Exception { public ImageFormatLimitationException() => throw null; @@ -1414,7 +1414,7 @@ namespace System public ImageFormatLimitationException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Reflection.Metadata.ImportDefinition` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ImportDefinition` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ImportDefinition { public System.Reflection.Metadata.BlobHandle Alias { get => throw null; } @@ -1425,10 +1425,10 @@ namespace System public System.Reflection.Metadata.EntityHandle TargetType { get => throw null; } } - // Generated from `System.Reflection.Metadata.ImportDefinitionCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ImportDefinitionCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ImportDefinitionCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.ImportDefinitionCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ImportDefinitionCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.ImportDefinition Current { get => throw null; } @@ -1446,7 +1446,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.ImportDefinitionKind` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ImportDefinitionKind` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ImportDefinitionKind { AliasAssemblyNamespace, @@ -1460,7 +1460,7 @@ namespace System ImportXmlNamespace, } - // Generated from `System.Reflection.Metadata.ImportScope` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ImportScope` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ImportScope { public System.Reflection.Metadata.ImportDefinitionCollection GetImports() => throw null; @@ -1469,10 +1469,10 @@ namespace System public System.Reflection.Metadata.ImportScopeHandle Parent { get => throw null; } } - // Generated from `System.Reflection.Metadata.ImportScopeCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ImportScopeCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ImportScopeCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.ImportScopeCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ImportScopeCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.ImportScopeHandle Current { get => throw null; } @@ -1491,7 +1491,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.ImportScopeHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ImportScopeHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ImportScopeHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.ImportScopeHandle left, System.Reflection.Metadata.ImportScopeHandle right) => throw null; @@ -1507,7 +1507,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ImportScopeHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.InterfaceImplementation` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.InterfaceImplementation` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct InterfaceImplementation { public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; @@ -1515,7 +1515,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.InterfaceImplementationHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.InterfaceImplementationHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct InterfaceImplementationHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.InterfaceImplementationHandle left, System.Reflection.Metadata.InterfaceImplementationHandle right) => throw null; @@ -1531,10 +1531,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.InterfaceImplementationHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.InterfaceImplementationHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.InterfaceImplementationHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct InterfaceImplementationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.InterfaceImplementationHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.InterfaceImplementationHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.InterfaceImplementationHandle Current { get => throw null; } @@ -1553,7 +1553,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.LocalConstant` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalConstant` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalConstant { // Stub generator skipped constructor @@ -1561,7 +1561,7 @@ namespace System public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - // Generated from `System.Reflection.Metadata.LocalConstantHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalConstantHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalConstantHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.LocalConstantHandle left, System.Reflection.Metadata.LocalConstantHandle right) => throw null; @@ -1577,10 +1577,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.LocalConstantHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.LocalConstantHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalConstantHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalConstantHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.LocalConstantHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalConstantHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.LocalConstantHandle Current { get => throw null; } @@ -1599,7 +1599,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.LocalScope` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalScope` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalScope { public int EndOffset { get => throw null; } @@ -1613,7 +1613,7 @@ namespace System public int StartOffset { get => throw null; } } - // Generated from `System.Reflection.Metadata.LocalScopeHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalScopeHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalScopeHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.LocalScopeHandle left, System.Reflection.Metadata.LocalScopeHandle right) => throw null; @@ -1629,10 +1629,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.LocalScopeHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.LocalScopeHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalScopeHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalScopeHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.LocalScopeHandleCollection+ChildrenEnumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalScopeHandleCollection+ChildrenEnumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ChildrenEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { // Stub generator skipped constructor @@ -1644,7 +1644,7 @@ namespace System } - // Generated from `System.Reflection.Metadata.LocalScopeHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalScopeHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.LocalScopeHandle Current { get => throw null; } @@ -1663,7 +1663,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.LocalVariable` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalVariable` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalVariable { public System.Reflection.Metadata.LocalVariableAttributes Attributes { get => throw null; } @@ -1672,7 +1672,7 @@ namespace System public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - // Generated from `System.Reflection.Metadata.LocalVariableAttributes` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalVariableAttributes` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum LocalVariableAttributes { @@ -1680,7 +1680,7 @@ namespace System None, } - // Generated from `System.Reflection.Metadata.LocalVariableHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalVariableHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalVariableHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.LocalVariableHandle left, System.Reflection.Metadata.LocalVariableHandle right) => throw null; @@ -1696,10 +1696,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.LocalVariableHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.LocalVariableHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalVariableHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalVariableHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.LocalVariableHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.LocalVariableHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.LocalVariableHandle Current { get => throw null; } @@ -1718,7 +1718,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.ManifestResource` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ManifestResource` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ManifestResource { public System.Reflection.ManifestResourceAttributes Attributes { get => throw null; } @@ -1729,7 +1729,7 @@ namespace System public System.Int64 Offset { get => throw null; } } - // Generated from `System.Reflection.Metadata.ManifestResourceHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ManifestResourceHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ManifestResourceHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.ManifestResourceHandle left, System.Reflection.Metadata.ManifestResourceHandle right) => throw null; @@ -1745,10 +1745,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ManifestResourceHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.ManifestResourceHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ManifestResourceHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ManifestResourceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.ManifestResourceHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ManifestResourceHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.ManifestResourceHandle Current { get => throw null; } @@ -1767,7 +1767,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.MemberReference` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MemberReference` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MemberReference { public TType DecodeFieldSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; @@ -1780,7 +1780,7 @@ namespace System public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - // Generated from `System.Reflection.Metadata.MemberReferenceHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MemberReferenceHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MemberReferenceHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.MemberReferenceHandle left, System.Reflection.Metadata.MemberReferenceHandle right) => throw null; @@ -1796,10 +1796,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MemberReferenceHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.MemberReferenceHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MemberReferenceHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MemberReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.MemberReferenceHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MemberReferenceHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.MemberReferenceHandle Current { get => throw null; } @@ -1818,14 +1818,14 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.MemberReferenceKind` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MemberReferenceKind` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MemberReferenceKind { Field, Method, } - // Generated from `System.Reflection.Metadata.MetadataKind` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MetadataKind` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MetadataKind { Ecma335, @@ -1833,7 +1833,7 @@ namespace System WindowsMetadata, } - // Generated from `System.Reflection.Metadata.MetadataReader` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MetadataReader` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MetadataReader { public System.Reflection.Metadata.AssemblyFileHandleCollection AssemblyFiles { get => throw null; } @@ -1918,7 +1918,7 @@ namespace System public System.Reflection.Metadata.MetadataStringDecoder UTF8Decoder { get => throw null; } } - // Generated from `System.Reflection.Metadata.MetadataReaderOptions` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MetadataReaderOptions` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MetadataReaderOptions { @@ -1927,7 +1927,7 @@ namespace System None, } - // Generated from `System.Reflection.Metadata.MetadataReaderProvider` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MetadataReaderProvider` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MetadataReaderProvider : System.IDisposable { public void Dispose() => throw null; @@ -1940,7 +1940,7 @@ namespace System 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; } - // Generated from `System.Reflection.Metadata.MetadataStreamOptions` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MetadataStreamOptions` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MetadataStreamOptions { @@ -1949,7 +1949,7 @@ namespace System PrefetchMetadata, } - // Generated from `System.Reflection.Metadata.MetadataStringComparer` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MetadataStringComparer` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MetadataStringComparer { public bool Equals(System.Reflection.Metadata.DocumentNameBlobHandle handle, string value) => throw null; @@ -1963,7 +1963,7 @@ namespace System public bool StartsWith(System.Reflection.Metadata.StringHandle handle, string value, bool ignoreCase) => throw null; } - // Generated from `System.Reflection.Metadata.MetadataStringDecoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MetadataStringDecoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MetadataStringDecoder { public static System.Reflection.Metadata.MetadataStringDecoder DefaultUTF8 { get => throw null; } @@ -1972,7 +1972,7 @@ namespace System public MetadataStringDecoder(System.Text.Encoding encoding) => throw null; } - // Generated from `System.Reflection.Metadata.MethodBodyBlock` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodBodyBlock` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MethodBodyBlock { public static System.Reflection.Metadata.MethodBodyBlock Create(System.Reflection.Metadata.BlobReader reader) => throw null; @@ -1986,7 +1986,7 @@ namespace System public int Size { get => throw null; } } - // Generated from `System.Reflection.Metadata.MethodDebugInformation` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodDebugInformation` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodDebugInformation { public System.Reflection.Metadata.DocumentHandle Document { get => throw null; } @@ -1997,7 +1997,7 @@ namespace System public System.Reflection.Metadata.BlobHandle SequencePointsBlob { get => throw null; } } - // Generated from `System.Reflection.Metadata.MethodDebugInformationHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodDebugInformationHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodDebugInformationHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.MethodDebugInformationHandle left, System.Reflection.Metadata.MethodDebugInformationHandle right) => throw null; @@ -2014,10 +2014,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MethodDebugInformationHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.MethodDebugInformationHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodDebugInformationHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodDebugInformationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.MethodDebugInformationHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodDebugInformationHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.MethodDebugInformationHandle Current { get => throw null; } @@ -2036,7 +2036,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.MethodDefinition` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodDefinition` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodDefinition { public System.Reflection.MethodAttributes Attributes { get => throw null; } @@ -2054,7 +2054,7 @@ namespace System public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - // Generated from `System.Reflection.Metadata.MethodDefinitionHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodDefinitionHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodDefinitionHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.MethodDefinitionHandle left, System.Reflection.Metadata.MethodDefinitionHandle right) => throw null; @@ -2071,10 +2071,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MethodDefinitionHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.MethodDefinitionHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodDefinitionHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.MethodDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.MethodDefinitionHandle Current { get => throw null; } @@ -2093,7 +2093,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.MethodImplementation` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodImplementation` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodImplementation { public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; @@ -2103,7 +2103,7 @@ namespace System public System.Reflection.Metadata.TypeDefinitionHandle Type { get => throw null; } } - // Generated from `System.Reflection.Metadata.MethodImplementationHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodImplementationHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodImplementationHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.MethodImplementationHandle left, System.Reflection.Metadata.MethodImplementationHandle right) => throw null; @@ -2119,10 +2119,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MethodImplementationHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.MethodImplementationHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodImplementationHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodImplementationHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.MethodImplementationHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodImplementationHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.MethodImplementationHandle Current { get => throw null; } @@ -2141,7 +2141,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.MethodImport` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodImport` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodImport { public System.Reflection.MethodImportAttributes Attributes { get => throw null; } @@ -2150,7 +2150,7 @@ namespace System public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - // Generated from `System.Reflection.Metadata.MethodSignature<>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodSignature<>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodSignature { public int GenericParameterCount { get => throw null; } @@ -2162,7 +2162,7 @@ namespace System public TType ReturnType { get => throw null; } } - // Generated from `System.Reflection.Metadata.MethodSpecification` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodSpecification` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodSpecification { public System.Collections.Immutable.ImmutableArray DecodeSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; @@ -2172,7 +2172,7 @@ namespace System public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - // Generated from `System.Reflection.Metadata.MethodSpecificationHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.MethodSpecificationHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodSpecificationHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.MethodSpecificationHandle left, System.Reflection.Metadata.MethodSpecificationHandle right) => throw null; @@ -2188,7 +2188,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.MethodSpecificationHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.ModuleDefinition` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ModuleDefinition` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ModuleDefinition { public System.Reflection.Metadata.GuidHandle BaseGenerationId { get => throw null; } @@ -2200,7 +2200,7 @@ namespace System public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - // Generated from `System.Reflection.Metadata.ModuleDefinitionHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ModuleDefinitionHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ModuleDefinitionHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.ModuleDefinitionHandle left, System.Reflection.Metadata.ModuleDefinitionHandle right) => throw null; @@ -2216,7 +2216,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ModuleDefinitionHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.ModuleReference` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ModuleReference` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ModuleReference { public System.Reflection.Metadata.CustomAttributeHandleCollection GetCustomAttributes() => throw null; @@ -2224,7 +2224,7 @@ namespace System public System.Reflection.Metadata.StringHandle Name { get => throw null; } } - // Generated from `System.Reflection.Metadata.ModuleReferenceHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ModuleReferenceHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ModuleReferenceHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.ModuleReferenceHandle left, System.Reflection.Metadata.ModuleReferenceHandle right) => throw null; @@ -2240,7 +2240,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ModuleReferenceHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.NamespaceDefinition` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.NamespaceDefinition` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct NamespaceDefinition { public System.Collections.Immutable.ImmutableArray ExportedTypes { get => throw null; } @@ -2251,7 +2251,7 @@ namespace System public System.Collections.Immutable.ImmutableArray TypeDefinitions { get => throw null; } } - // Generated from `System.Reflection.Metadata.NamespaceDefinitionHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.NamespaceDefinitionHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct NamespaceDefinitionHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.NamespaceDefinitionHandle left, System.Reflection.Metadata.NamespaceDefinitionHandle right) => throw null; @@ -2265,7 +2265,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.NamespaceDefinitionHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.PEReaderExtensions` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.PEReaderExtensions` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class PEReaderExtensions { public static System.Reflection.Metadata.MetadataReader GetMetadataReader(this System.Reflection.PortableExecutable.PEReader peReader) => throw null; @@ -2274,7 +2274,7 @@ namespace System public static System.Reflection.Metadata.MethodBodyBlock GetMethodBody(this System.Reflection.PortableExecutable.PEReader peReader, int relativeVirtualAddress) => throw null; } - // Generated from `System.Reflection.Metadata.Parameter` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Parameter` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Parameter { public System.Reflection.ParameterAttributes Attributes { get => throw null; } @@ -2286,7 +2286,7 @@ namespace System public int SequenceNumber { get => throw null; } } - // Generated from `System.Reflection.Metadata.ParameterHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ParameterHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ParameterHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.ParameterHandle left, System.Reflection.Metadata.ParameterHandle right) => throw null; @@ -2302,10 +2302,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.ParameterHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.ParameterHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ParameterHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ParameterHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.ParameterHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ParameterHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.ParameterHandle Current { get => throw null; } @@ -2324,7 +2324,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.PrimitiveSerializationTypeCode` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.PrimitiveSerializationTypeCode` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PrimitiveSerializationTypeCode { Boolean, @@ -2342,7 +2342,7 @@ namespace System UInt64, } - // Generated from `System.Reflection.Metadata.PrimitiveTypeCode` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.PrimitiveTypeCode` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PrimitiveTypeCode { Boolean, @@ -2365,7 +2365,7 @@ namespace System Void, } - // Generated from `System.Reflection.Metadata.PropertyAccessors` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.PropertyAccessors` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PropertyAccessors { public System.Reflection.Metadata.MethodDefinitionHandle Getter { get => throw null; } @@ -2374,7 +2374,7 @@ namespace System public System.Reflection.Metadata.MethodDefinitionHandle Setter { get => throw null; } } - // Generated from `System.Reflection.Metadata.PropertyDefinition` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.PropertyDefinition` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PropertyDefinition { public System.Reflection.PropertyAttributes Attributes { get => throw null; } @@ -2387,7 +2387,7 @@ namespace System public System.Reflection.Metadata.BlobHandle Signature { get => throw null; } } - // Generated from `System.Reflection.Metadata.PropertyDefinitionHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.PropertyDefinitionHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PropertyDefinitionHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.PropertyDefinitionHandle left, System.Reflection.Metadata.PropertyDefinitionHandle right) => throw null; @@ -2403,10 +2403,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.PropertyDefinitionHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.PropertyDefinitionHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.PropertyDefinitionHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PropertyDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.PropertyDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.PropertyDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.PropertyDefinitionHandle Current { get => throw null; } @@ -2425,7 +2425,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.ReservedBlob<>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.ReservedBlob<>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ReservedBlob where THandle : struct { public System.Reflection.Metadata.Blob Content { get => throw null; } @@ -2434,7 +2434,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.SequencePoint` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SequencePoint` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SequencePoint : System.IEquatable { public System.Reflection.Metadata.DocumentHandle Document { get => throw null; } @@ -2451,10 +2451,10 @@ namespace System public int StartLine { get => throw null; } } - // Generated from `System.Reflection.Metadata.SequencePointCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SequencePointCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SequencePointCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.SequencePointCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SequencePointCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.SequencePoint Current { get => throw null; } @@ -2472,7 +2472,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.SerializationTypeCode` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SerializationTypeCode` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SerializationTypeCode { Boolean, @@ -2495,7 +2495,7 @@ namespace System UInt64, } - // Generated from `System.Reflection.Metadata.SignatureAttributes` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SignatureAttributes` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SignatureAttributes { @@ -2505,7 +2505,7 @@ namespace System None, } - // Generated from `System.Reflection.Metadata.SignatureCallingConvention` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SignatureCallingConvention` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SignatureCallingConvention { CDecl, @@ -2517,7 +2517,7 @@ namespace System VarArgs, } - // Generated from `System.Reflection.Metadata.SignatureHeader` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SignatureHeader` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SignatureHeader : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.SignatureHeader left, System.Reflection.Metadata.SignatureHeader right) => throw null; @@ -2539,7 +2539,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Reflection.Metadata.SignatureKind` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SignatureKind` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SignatureKind { Field, @@ -2549,7 +2549,7 @@ namespace System Property, } - // Generated from `System.Reflection.Metadata.SignatureTypeCode` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SignatureTypeCode` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SignatureTypeCode { Array, @@ -2586,7 +2586,7 @@ namespace System Void, } - // Generated from `System.Reflection.Metadata.SignatureTypeKind` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.SignatureTypeKind` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SignatureTypeKind { Class, @@ -2594,7 +2594,7 @@ namespace System ValueType, } - // Generated from `System.Reflection.Metadata.StandaloneSignature` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.StandaloneSignature` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct StandaloneSignature { public System.Collections.Immutable.ImmutableArray DecodeLocalSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; @@ -2605,7 +2605,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.StandaloneSignatureHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.StandaloneSignatureHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct StandaloneSignatureHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.StandaloneSignatureHandle left, System.Reflection.Metadata.StandaloneSignatureHandle right) => throw null; @@ -2621,14 +2621,14 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.StandaloneSignatureHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.StandaloneSignatureKind` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.StandaloneSignatureKind` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum StandaloneSignatureKind { LocalVariables, Method, } - // Generated from `System.Reflection.Metadata.StringHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.StringHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct StringHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.StringHandle left, System.Reflection.Metadata.StringHandle right) => throw null; @@ -2642,7 +2642,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.StringHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.TypeDefinition` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeDefinition` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypeDefinition { public System.Reflection.TypeAttributes Attributes { get => throw null; } @@ -2666,7 +2666,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.TypeDefinitionHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeDefinitionHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypeDefinitionHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.TypeDefinitionHandle left, System.Reflection.Metadata.TypeDefinitionHandle right) => throw null; @@ -2682,10 +2682,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.TypeDefinitionHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.TypeDefinitionHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeDefinitionHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypeDefinitionHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.TypeDefinitionHandle Current { get => throw null; } @@ -2704,7 +2704,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.TypeLayout` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeLayout` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypeLayout { public bool IsDefault { get => throw null; } @@ -2714,7 +2714,7 @@ namespace System public TypeLayout(int size, int packingSize) => throw null; } - // Generated from `System.Reflection.Metadata.TypeReference` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeReference` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypeReference { public System.Reflection.Metadata.StringHandle Name { get => throw null; } @@ -2723,7 +2723,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.TypeReferenceHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeReferenceHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypeReferenceHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.TypeReferenceHandle left, System.Reflection.Metadata.TypeReferenceHandle right) => throw null; @@ -2739,10 +2739,10 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.TypeReferenceHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.TypeReferenceHandleCollection` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeReferenceHandleCollection` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypeReferenceHandleCollection : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { - // Generated from `System.Reflection.Metadata.TypeReferenceHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeReferenceHandleCollection+Enumerator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Reflection.Metadata.TypeReferenceHandle Current { get => throw null; } @@ -2761,7 +2761,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.TypeSpecification` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeSpecification` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypeSpecification { public TType DecodeSignature(System.Reflection.Metadata.ISignatureTypeProvider provider, TGenericContext genericContext) => throw null; @@ -2770,7 +2770,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.TypeSpecificationHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.TypeSpecificationHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypeSpecificationHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.TypeSpecificationHandle left, System.Reflection.Metadata.TypeSpecificationHandle right) => throw null; @@ -2786,7 +2786,7 @@ namespace System public static implicit operator System.Reflection.Metadata.Handle(System.Reflection.Metadata.TypeSpecificationHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.UserStringHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.UserStringHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct UserStringHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.UserStringHandle left, System.Reflection.Metadata.UserStringHandle right) => throw null; @@ -2802,7 +2802,7 @@ namespace System namespace Ecma335 { - // Generated from `System.Reflection.Metadata.Ecma335.ArrayShapeEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.ArrayShapeEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ArrayShapeEncoder { // Stub generator skipped constructor @@ -2811,7 +2811,7 @@ namespace System public void Shape(int rank, System.Collections.Immutable.ImmutableArray sizes, System.Collections.Immutable.ImmutableArray lowerBounds) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.BlobEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.BlobEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct BlobEncoder { // Stub generator skipped constructor @@ -2829,7 +2829,7 @@ namespace System public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder TypeSpecificationSignature() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.CodedIndex` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.CodedIndex` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class CodedIndex { public static int CustomAttributeType(System.Reflection.Metadata.EntityHandle handle) => throw null; @@ -2849,7 +2849,7 @@ namespace System public static int TypeOrMethodDef(System.Reflection.Metadata.EntityHandle handle) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.ControlFlowBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.ControlFlowBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -2859,7 +2859,7 @@ namespace System public ControlFlowBuilder() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.CustomAttributeArrayTypeEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.CustomAttributeArrayTypeEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeArrayTypeEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -2869,7 +2869,7 @@ namespace System public void ObjectArray() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeElementTypeEncoder { public void Boolean() => throw null; @@ -2893,7 +2893,7 @@ namespace System public void UInt64() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.CustomAttributeNamedArgumentsEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.CustomAttributeNamedArgumentsEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeNamedArgumentsEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -2902,7 +2902,7 @@ namespace System public CustomAttributeNamedArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.CustomModifiersEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.CustomModifiersEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomModifiersEncoder { public System.Reflection.Metadata.Ecma335.CustomModifiersEncoder AddModifier(System.Reflection.Metadata.EntityHandle type, bool isOptional) => throw null; @@ -2911,7 +2911,7 @@ namespace System public CustomModifiersEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.EditAndContinueLogEntry` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.EditAndContinueLogEntry` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct EditAndContinueLogEntry : System.IEquatable { // Stub generator skipped constructor @@ -2923,7 +2923,7 @@ namespace System public System.Reflection.Metadata.Ecma335.EditAndContinueOperation Operation { get => throw null; } } - // Generated from `System.Reflection.Metadata.Ecma335.EditAndContinueOperation` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.EditAndContinueOperation` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EditAndContinueOperation { AddEvent, @@ -2934,7 +2934,7 @@ namespace System Default, } - // Generated from `System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -2949,13 +2949,13 @@ namespace System public static bool IsSmallRegionCount(int exceptionRegionCount) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.ExportedTypeExtensions` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.ExportedTypeExtensions` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ExportedTypeExtensions { public static int GetTypeDefinitionId(this System.Reflection.Metadata.ExportedType exportedType) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.FixedArgumentsEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.FixedArgumentsEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct FixedArgumentsEncoder { public System.Reflection.Metadata.Ecma335.LiteralEncoder AddArgument() => throw null; @@ -2964,7 +2964,7 @@ namespace System public FixedArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.FunctionPointerAttributes` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.FunctionPointerAttributes` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FunctionPointerAttributes { HasExplicitThis, @@ -2972,7 +2972,7 @@ namespace System None, } - // Generated from `System.Reflection.Metadata.Ecma335.GenericTypeArgumentsEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.GenericTypeArgumentsEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GenericTypeArgumentsEncoder { public System.Reflection.Metadata.Ecma335.SignatureTypeEncoder AddArgument() => throw null; @@ -2981,7 +2981,7 @@ namespace System public GenericTypeArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.HeapIndex` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.HeapIndex` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HeapIndex { Blob, @@ -2990,7 +2990,7 @@ namespace System UserString, } - // Generated from `System.Reflection.Metadata.Ecma335.InstructionEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.InstructionEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct InstructionEncoder { public void Branch(System.Reflection.Metadata.ILOpCode code, System.Reflection.Metadata.Ecma335.LabelHandle label) => throw null; @@ -3022,7 +3022,7 @@ namespace System public void Token(int token) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.LabelHandle` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.LabelHandle` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LabelHandle : System.IEquatable { public static bool operator !=(System.Reflection.Metadata.Ecma335.LabelHandle left, System.Reflection.Metadata.Ecma335.LabelHandle right) => throw null; @@ -3035,7 +3035,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.Metadata.Ecma335.LiteralEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.LiteralEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LiteralEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -3049,7 +3049,7 @@ namespace System public System.Reflection.Metadata.Ecma335.VectorEncoder Vector() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.LiteralsEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.LiteralsEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LiteralsEncoder { public System.Reflection.Metadata.Ecma335.LiteralEncoder AddLiteral() => throw null; @@ -3058,7 +3058,7 @@ namespace System public LiteralsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.LocalVariableTypeEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.LocalVariableTypeEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalVariableTypeEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -3069,7 +3069,7 @@ namespace System public void TypedReference() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.LocalVariablesEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.LocalVariablesEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LocalVariablesEncoder { public System.Reflection.Metadata.Ecma335.LocalVariableTypeEncoder AddVariable() => throw null; @@ -3078,7 +3078,7 @@ namespace System public LocalVariablesEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.MetadataAggregator` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MetadataAggregator` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MetadataAggregator { public System.Reflection.Metadata.Handle GetGenerationHandle(System.Reflection.Metadata.Handle handle, out int generation) => throw null; @@ -3086,7 +3086,7 @@ namespace System public MetadataAggregator(System.Reflection.Metadata.MetadataReader baseReader, System.Collections.Generic.IReadOnlyList deltaReaders) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.MetadataBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MetadataBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -3152,7 +3152,7 @@ namespace System public void SetCapacity(System.Reflection.Metadata.Ecma335.TableIndex table, int rowCount) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.MetadataReaderExtensions` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MetadataReaderExtensions` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class MetadataReaderExtensions { public static System.Collections.Generic.IEnumerable GetEditAndContinueLogEntries(this System.Reflection.Metadata.MetadataReader reader) => throw null; @@ -3170,7 +3170,7 @@ namespace System public static System.Reflection.Metadata.SignatureTypeKind ResolveSignatureTypeKind(this System.Reflection.Metadata.MetadataReader reader, System.Reflection.Metadata.EntityHandle typeHandle, System.Byte rawTypeKind) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.MetadataRootBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MetadataRootBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MetadataRootBuilder { public MetadataRootBuilder(System.Reflection.Metadata.Ecma335.MetadataBuilder tablesAndHeaps, string metadataVersion = default(string), bool suppressValidation = default(bool)) => throw null; @@ -3180,7 +3180,7 @@ namespace System public bool SuppressValidation { get => throw null; } } - // Generated from `System.Reflection.Metadata.Ecma335.MetadataSizes` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MetadataSizes` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MetadataSizes { public System.Collections.Immutable.ImmutableArray ExternalRowCounts { get => throw null; } @@ -3189,7 +3189,7 @@ namespace System public System.Collections.Immutable.ImmutableArray RowCounts { get => throw null; } } - // Generated from `System.Reflection.Metadata.Ecma335.MetadataTokens` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MetadataTokens` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class MetadataTokens { public static System.Reflection.Metadata.AssemblyFileHandle AssemblyFileHandle(int rowNumber) => throw null; @@ -3249,7 +3249,7 @@ namespace System public static System.Reflection.Metadata.UserStringHandle UserStringHandle(int offset) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.MethodBodyAttributes` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MethodBodyAttributes` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MethodBodyAttributes { @@ -3257,10 +3257,10 @@ namespace System None, } - // Generated from `System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodBodyStreamEncoder { - // Generated from `System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder+MethodBody` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder+MethodBody` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodBody { public System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder ExceptionRegions { get => throw null; } @@ -3279,7 +3279,7 @@ namespace System public MethodBodyStreamEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.MethodSignatureEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.MethodSignatureEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MethodSignatureEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -3290,7 +3290,7 @@ namespace System public void Parameters(int parameterCount, out System.Reflection.Metadata.Ecma335.ReturnTypeEncoder returnType, out System.Reflection.Metadata.Ecma335.ParametersEncoder parameters) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.NameEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.NameEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct NameEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -3299,7 +3299,7 @@ namespace System public NameEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.NamedArgumentTypeEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.NamedArgumentTypeEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct NamedArgumentTypeEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -3310,7 +3310,7 @@ namespace System public System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder ScalarType() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.NamedArgumentsEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.NamedArgumentsEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct NamedArgumentsEncoder { public void AddArgument(bool isField, System.Action type, System.Action name, System.Action literal) => throw null; @@ -3320,7 +3320,7 @@ namespace System public NamedArgumentsEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.ParameterTypeEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.ParameterTypeEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ParameterTypeEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -3331,7 +3331,7 @@ namespace System public void TypedReference() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.ParametersEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.ParametersEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ParametersEncoder { public System.Reflection.Metadata.Ecma335.ParameterTypeEncoder AddParameter() => throw null; @@ -3342,7 +3342,7 @@ namespace System public System.Reflection.Metadata.Ecma335.ParametersEncoder StartVarArgs() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.PermissionSetEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.PermissionSetEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PermissionSetEncoder { public System.Reflection.Metadata.Ecma335.PermissionSetEncoder AddPermission(string typeName, System.Reflection.Metadata.BlobBuilder encodedArguments) => throw null; @@ -3352,7 +3352,7 @@ namespace System public PermissionSetEncoder(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.PortablePdbBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.PortablePdbBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PortablePdbBuilder { public System.UInt16 FormatVersion { get => throw null; } @@ -3362,7 +3362,7 @@ namespace System public System.Reflection.Metadata.BlobContentId Serialize(System.Reflection.Metadata.BlobBuilder builder) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.ReturnTypeEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.ReturnTypeEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ReturnTypeEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -3374,7 +3374,7 @@ namespace System public void Void() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.ScalarEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.ScalarEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ScalarEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -3385,7 +3385,7 @@ namespace System public void SystemType(string serializedTypeName) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.SignatureDecoder<,>` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.SignatureDecoder<,>` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SignatureDecoder { public TType DecodeFieldSignature(ref System.Reflection.Metadata.BlobReader blobReader) => throw null; @@ -3397,7 +3397,7 @@ namespace System public SignatureDecoder(System.Reflection.Metadata.ISignatureTypeProvider provider, System.Reflection.Metadata.MetadataReader metadataReader, TGenericContext genericContext) => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.SignatureTypeEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.SignatureTypeEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SignatureTypeEncoder { public void Array(System.Action elementType, System.Action arrayShape) => throw null; @@ -3433,7 +3433,7 @@ namespace System public void VoidPointer() => throw null; } - // Generated from `System.Reflection.Metadata.Ecma335.TableIndex` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.TableIndex` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TableIndex { Assembly, @@ -3491,7 +3491,7 @@ namespace System TypeSpec, } - // Generated from `System.Reflection.Metadata.Ecma335.VectorEncoder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.Ecma335.VectorEncoder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct VectorEncoder { public System.Reflection.Metadata.BlobBuilder Builder { get => throw null; } @@ -3504,7 +3504,7 @@ namespace System } namespace PortableExecutable { - // Generated from `System.Reflection.PortableExecutable.Characteristics` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.Characteristics` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum Characteristics { @@ -3525,7 +3525,7 @@ namespace System UpSystemOnly, } - // Generated from `System.Reflection.PortableExecutable.CodeViewDebugDirectoryData` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.CodeViewDebugDirectoryData` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CodeViewDebugDirectoryData { public int Age { get => throw null; } @@ -3534,7 +3534,7 @@ namespace System public string Path { get => throw null; } } - // Generated from `System.Reflection.PortableExecutable.CoffHeader` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.CoffHeader` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CoffHeader { public System.Reflection.PortableExecutable.Characteristics Characteristics { get => throw null; } @@ -3546,7 +3546,7 @@ namespace System public int TimeDateStamp { get => throw null; } } - // Generated from `System.Reflection.PortableExecutable.CorFlags` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.CorFlags` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CorFlags { @@ -3559,7 +3559,7 @@ namespace System TrackDebugData, } - // Generated from `System.Reflection.PortableExecutable.CorHeader` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.CorHeader` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CorHeader { public System.Reflection.PortableExecutable.DirectoryEntry CodeManagerTableDirectory { get => throw null; } @@ -3575,10 +3575,11 @@ namespace System public System.Reflection.PortableExecutable.DirectoryEntry VtableFixupsDirectory { get => throw null; } } - // Generated from `System.Reflection.PortableExecutable.DebugDirectoryBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.DebugDirectoryBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; @@ -3587,7 +3588,7 @@ namespace System public DebugDirectoryBuilder() => throw null; } - // Generated from `System.Reflection.PortableExecutable.DebugDirectoryEntry` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.DebugDirectoryEntry` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DebugDirectoryEntry { public int DataPointer { get => throw null; } @@ -3602,7 +3603,7 @@ namespace System public System.Reflection.PortableExecutable.DebugDirectoryEntryType Type { get => throw null; } } - // Generated from `System.Reflection.PortableExecutable.DebugDirectoryEntryType` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.DebugDirectoryEntryType` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DebugDirectoryEntryType { CodeView, @@ -3613,7 +3614,7 @@ namespace System Unknown, } - // Generated from `System.Reflection.PortableExecutable.DirectoryEntry` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.DirectoryEntry` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DirectoryEntry { // Stub generator skipped constructor @@ -3622,7 +3623,7 @@ namespace System public int Size; } - // Generated from `System.Reflection.PortableExecutable.DllCharacteristics` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.DllCharacteristics` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DllCharacteristics { @@ -3641,7 +3642,7 @@ namespace System WdmDriver, } - // Generated from `System.Reflection.PortableExecutable.Machine` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.Machine` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum Machine { AM33, @@ -3671,7 +3672,7 @@ namespace System WceMipsV2, } - // Generated from `System.Reflection.PortableExecutable.ManagedPEBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.ManagedPEBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ManagedPEBuilder : System.Reflection.PortableExecutable.PEBuilder { protected override System.Collections.Immutable.ImmutableArray CreateSections() => throw null; @@ -3683,10 +3684,10 @@ namespace System public void Sign(System.Reflection.Metadata.BlobBuilder peImage, System.Func, System.Byte[]> signatureProvider) => throw null; } - // Generated from `System.Reflection.PortableExecutable.PEBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class PEBuilder { - // Generated from `System.Reflection.PortableExecutable.PEBuilder+Section` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEBuilder+Section` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` protected struct Section { public System.Reflection.PortableExecutable.SectionCharacteristics Characteristics; @@ -3707,7 +3708,7 @@ namespace System protected abstract System.Reflection.Metadata.BlobBuilder SerializeSection(string name, System.Reflection.PortableExecutable.SectionLocation location); } - // Generated from `System.Reflection.PortableExecutable.PEDirectoriesBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEDirectoriesBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PEDirectoriesBuilder { public int AddressOfEntryPoint { get => throw null; set => throw null; } @@ -3728,7 +3729,7 @@ namespace System public System.Reflection.PortableExecutable.DirectoryEntry ThreadLocalStorageTable { get => throw null; set => throw null; } } - // Generated from `System.Reflection.PortableExecutable.PEHeader` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEHeader` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PEHeader { public int AddressOfEntryPoint { get => throw null; } @@ -3776,7 +3777,7 @@ namespace System public System.Reflection.PortableExecutable.DirectoryEntry ThreadLocalStorageTableDirectory { get => throw null; } } - // Generated from `System.Reflection.PortableExecutable.PEHeaderBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEHeaderBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PEHeaderBuilder { public static System.Reflection.PortableExecutable.PEHeaderBuilder CreateExecutableHeader() => throw null; @@ -3803,7 +3804,7 @@ namespace System public System.Reflection.PortableExecutable.Subsystem Subsystem { get => throw null; } } - // Generated from `System.Reflection.PortableExecutable.PEHeaders` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEHeaders` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PEHeaders { public System.Reflection.PortableExecutable.CoffHeader CoffHeader { get => throw null; } @@ -3826,14 +3827,14 @@ namespace System public bool TryGetDirectoryOffset(System.Reflection.PortableExecutable.DirectoryEntry directory, out int offset) => throw null; } - // Generated from `System.Reflection.PortableExecutable.PEMagic` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEMagic` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PEMagic { PE32, PE32Plus, } - // Generated from `System.Reflection.PortableExecutable.PEMemoryBlock` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEMemoryBlock` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PEMemoryBlock { public System.Collections.Immutable.ImmutableArray GetContent() => throw null; @@ -3845,7 +3846,7 @@ namespace System unsafe public System.Byte* Pointer { get => throw null; } } - // Generated from `System.Reflection.PortableExecutable.PEReader` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEReader` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PEReader : System.IDisposable { public void Dispose() => throw null; @@ -3870,7 +3871,7 @@ namespace System public bool TryOpenAssociatedPortablePdb(string peImagePath, System.Func pdbFileStreamProvider, out System.Reflection.Metadata.MetadataReaderProvider pdbReaderProvider, out string pdbPath) => throw null; } - // Generated from `System.Reflection.PortableExecutable.PEStreamOptions` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PEStreamOptions` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum PEStreamOptions { @@ -3881,7 +3882,7 @@ namespace System PrefetchMetadata, } - // Generated from `System.Reflection.PortableExecutable.PdbChecksumDebugDirectoryData` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.PdbChecksumDebugDirectoryData` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PdbChecksumDebugDirectoryData { public string AlgorithmName { get => throw null; } @@ -3889,14 +3890,14 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Reflection.PortableExecutable.ResourceSectionBuilder` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.ResourceSectionBuilder` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ResourceSectionBuilder { protected ResourceSectionBuilder() => throw null; protected internal abstract void Serialize(System.Reflection.Metadata.BlobBuilder builder, System.Reflection.PortableExecutable.SectionLocation location); } - // Generated from `System.Reflection.PortableExecutable.SectionCharacteristics` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.SectionCharacteristics` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SectionCharacteristics { @@ -3948,7 +3949,7 @@ namespace System TypeReg, } - // Generated from `System.Reflection.PortableExecutable.SectionHeader` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.SectionHeader` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SectionHeader { public string Name { get => throw null; } @@ -3964,7 +3965,7 @@ namespace System public int VirtualSize { get => throw null; } } - // Generated from `System.Reflection.PortableExecutable.SectionLocation` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.SectionLocation` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SectionLocation { public int PointerToRawData { get => throw null; } @@ -3973,7 +3974,7 @@ namespace System public SectionLocation(int relativeVirtualAddress, int pointerToRawData) => throw null; } - // Generated from `System.Reflection.PortableExecutable.Subsystem` in `System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutable.Subsystem` in `System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum Subsystem { EfiApplication, 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 fe79c3bf72f..b8e8273e15d 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 @@ -6,7 +6,7 @@ namespace System { namespace Emit { - // Generated from `System.Reflection.Emit.FlowControl` in `System.Reflection.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.FlowControl` in `System.Reflection.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FlowControl { Branch, @@ -20,7 +20,7 @@ namespace System Throw, } - // Generated from `System.Reflection.Emit.OpCode` in `System.Reflection.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.OpCode` in `System.Reflection.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct OpCode : System.IEquatable { public static bool operator !=(System.Reflection.Emit.OpCode a, System.Reflection.Emit.OpCode b) => throw null; @@ -40,7 +40,7 @@ namespace System public System.Int16 Value { get => throw null; } } - // Generated from `System.Reflection.Emit.OpCodeType` in `System.Reflection.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.OpCodeType` in `System.Reflection.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum OpCodeType { Annotation, @@ -51,7 +51,7 @@ namespace System Primitive, } - // Generated from `System.Reflection.Emit.OpCodes` in `System.Reflection.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.OpCodes` in `System.Reflection.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OpCodes { public static System.Reflection.Emit.OpCode Add; @@ -283,7 +283,7 @@ namespace System public static System.Reflection.Emit.OpCode Xor; } - // Generated from `System.Reflection.Emit.OperandType` in `System.Reflection.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.OperandType` in `System.Reflection.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum OperandType { InlineBrTarget, @@ -306,7 +306,7 @@ namespace System ShortInlineVar, } - // Generated from `System.Reflection.Emit.PackingSize` in `System.Reflection.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.PackingSize` in `System.Reflection.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PackingSize { Size1, @@ -320,7 +320,7 @@ namespace System Unspecified, } - // Generated from `System.Reflection.Emit.StackBehaviour` in `System.Reflection.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Emit.StackBehaviour` in `System.Reflection.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum StackBehaviour { Pop0, 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 5fd74dbf6f1..189c23a12d2 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 @@ -4,7 +4,7 @@ namespace System { namespace Reflection { - // Generated from `System.Reflection.AssemblyExtensions` in `System.Reflection.TypeExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyExtensions` in `System.Reflection.TypeExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class AssemblyExtensions { public static System.Type[] GetExportedTypes(this System.Reflection.Assembly assembly) => throw null; @@ -12,7 +12,7 @@ namespace System public static System.Type[] GetTypes(this System.Reflection.Assembly assembly) => throw null; } - // Generated from `System.Reflection.EventInfoExtensions` in `System.Reflection.TypeExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.EventInfoExtensions` in `System.Reflection.TypeExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class EventInfoExtensions { public static System.Reflection.MethodInfo GetAddMethod(this System.Reflection.EventInfo eventInfo) => throw null; @@ -23,27 +23,27 @@ namespace System public static System.Reflection.MethodInfo GetRemoveMethod(this System.Reflection.EventInfo eventInfo, bool nonPublic) => throw null; } - // Generated from `System.Reflection.MemberInfoExtensions` in `System.Reflection.TypeExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MemberInfoExtensions` in `System.Reflection.TypeExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class MemberInfoExtensions { public static int GetMetadataToken(this System.Reflection.MemberInfo member) => throw null; public static bool HasMetadataToken(this System.Reflection.MemberInfo member) => throw null; } - // Generated from `System.Reflection.MethodInfoExtensions` in `System.Reflection.TypeExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MethodInfoExtensions` in `System.Reflection.TypeExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class MethodInfoExtensions { public static System.Reflection.MethodInfo GetBaseDefinition(this System.Reflection.MethodInfo method) => throw null; } - // Generated from `System.Reflection.ModuleExtensions` in `System.Reflection.TypeExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ModuleExtensions` in `System.Reflection.TypeExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static 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; } - // Generated from `System.Reflection.PropertyInfoExtensions` in `System.Reflection.TypeExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PropertyInfoExtensions` in `System.Reflection.TypeExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class PropertyInfoExtensions { public static System.Reflection.MethodInfo[] GetAccessors(this System.Reflection.PropertyInfo property) => throw null; @@ -54,7 +54,7 @@ namespace System public static System.Reflection.MethodInfo GetSetMethod(this System.Reflection.PropertyInfo property, bool nonPublic) => throw null; } - // Generated from `System.Reflection.TypeExtensions` in `System.Reflection.TypeExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.TypeExtensions` in `System.Reflection.TypeExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class TypeExtensions { public static System.Reflection.ConstructorInfo GetConstructor(this System.Type type, System.Type[] types) => throw null; 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 514c5d21cdb..de557c77d72 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 @@ -4,7 +4,7 @@ namespace System { namespace Resources { - // Generated from `System.Resources.IResourceWriter` in `System.Resources.Writer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.IResourceWriter` in `System.Resources.Writer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IResourceWriter : System.IDisposable { void AddResource(string name, System.Byte[] value); @@ -14,7 +14,7 @@ namespace System void Generate(); } - // Generated from `System.Resources.ResourceWriter` in `System.Resources.Writer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.ResourceWriter` in `System.Resources.Writer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ResourceWriter : System.IDisposable, System.Resources.IResourceWriter { public void AddResource(string name, System.Byte[] value) => throw null; 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 e904a7ccf57..c49f38162ed 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 @@ -6,13 +6,15 @@ namespace System { namespace CompilerServices { - // Generated from `System.Runtime.CompilerServices.Unsafe` in `System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.Unsafe` in `System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -41,8 +43,10 @@ namespace System 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; 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 0721a5d3b62..6a1548143be 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 @@ -6,87 +6,87 @@ namespace System { namespace CompilerServices { - // Generated from `System.Runtime.CompilerServices.CompilerMarshalOverride` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CompilerMarshalOverride` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class CompilerMarshalOverride { } - // Generated from `System.Runtime.CompilerServices.CppInlineNamespaceAttribute` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CppInlineNamespaceAttribute` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CppInlineNamespaceAttribute : System.Attribute { public CppInlineNamespaceAttribute(string dottedName) => throw null; } - // Generated from `System.Runtime.CompilerServices.HasCopySemanticsAttribute` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.HasCopySemanticsAttribute` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HasCopySemanticsAttribute : System.Attribute { public HasCopySemanticsAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.IsBoxed` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsBoxed` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsBoxed { } - // Generated from `System.Runtime.CompilerServices.IsByValue` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsByValue` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsByValue { } - // Generated from `System.Runtime.CompilerServices.IsCopyConstructed` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsCopyConstructed` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsCopyConstructed { } - // Generated from `System.Runtime.CompilerServices.IsExplicitlyDereferenced` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsExplicitlyDereferenced` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsExplicitlyDereferenced { } - // Generated from `System.Runtime.CompilerServices.IsImplicitlyDereferenced` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsImplicitlyDereferenced` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsImplicitlyDereferenced { } - // Generated from `System.Runtime.CompilerServices.IsJitIntrinsic` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsJitIntrinsic` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsJitIntrinsic { } - // Generated from `System.Runtime.CompilerServices.IsLong` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsLong` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsLong { } - // Generated from `System.Runtime.CompilerServices.IsPinned` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsPinned` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsPinned { } - // Generated from `System.Runtime.CompilerServices.IsSignUnspecifiedByte` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsSignUnspecifiedByte` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsSignUnspecifiedByte { } - // Generated from `System.Runtime.CompilerServices.IsUdtReturn` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsUdtReturn` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsUdtReturn { } - // Generated from `System.Runtime.CompilerServices.NativeCppClassAttribute` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.NativeCppClassAttribute` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NativeCppClassAttribute : System.Attribute { public NativeCppClassAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.RequiredAttributeAttribute` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.RequiredAttributeAttribute` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RequiredAttributeAttribute : System.Attribute { public RequiredAttributeAttribute(System.Type requiredContract) => throw null; public System.Type RequiredContract { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.ScopelessEnumAttribute` in `System.Runtime.CompilerServices.VisualC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ScopelessEnumAttribute` in `System.Runtime.CompilerServices.VisualC, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ScopelessEnumAttribute : System.Attribute { public ScopelessEnumAttribute() => 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 index 0767a183256..7556c31c638 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 @@ -6,17 +6,18 @@ namespace System { namespace InteropServices { - // Generated from `System.Runtime.InteropServices.Architecture` in `System.Runtime.InteropServices.RuntimeInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.Architecture` in `System.Runtime.InteropServices.RuntimeInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum Architecture { Arm, Arm64, + S390x, Wasm, X64, X86, } - // Generated from `System.Runtime.InteropServices.OSPlatform` in `System.Runtime.InteropServices.RuntimeInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.OSPlatform` in `System.Runtime.InteropServices.RuntimeInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct OSPlatform : System.IEquatable { public static bool operator !=(System.Runtime.InteropServices.OSPlatform left, System.Runtime.InteropServices.OSPlatform right) => throw null; @@ -33,7 +34,7 @@ namespace System public static System.Runtime.InteropServices.OSPlatform Windows { get => throw null; } } - // Generated from `System.Runtime.InteropServices.RuntimeInformation` in `System.Runtime.InteropServices.RuntimeInformation, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.RuntimeInformation` in `System.Runtime.InteropServices.RuntimeInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class RuntimeInformation { public static string FrameworkDescription { get => 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 b5fac986865..d3c42596b58 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 @@ -2,7 +2,7 @@ namespace System { - // Generated from `System.DataMisalignedException` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.DataMisalignedException` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataMisalignedException : System.SystemException { public DataMisalignedException() => throw null; @@ -10,7 +10,7 @@ namespace System public DataMisalignedException(string message, System.Exception innerException) => throw null; } - // Generated from `System.DllNotFoundException` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.DllNotFoundException` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DllNotFoundException : System.TypeLoadException { public DllNotFoundException() => throw null; @@ -21,7 +21,7 @@ namespace System namespace IO { - // Generated from `System.IO.UnmanagedMemoryAccessor` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.UnmanagedMemoryAccessor` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnmanagedMemoryAccessor : System.IDisposable { public bool CanRead { get => throw null; } @@ -71,14 +71,14 @@ namespace System { namespace CompilerServices { - // Generated from `System.Runtime.CompilerServices.IDispatchConstantAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IDispatchConstantAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IDispatchConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute { public IDispatchConstantAttribute() => throw null; public override object Value { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.IUnknownConstantAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IUnknownConstantAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IUnknownConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute { public IUnknownConstantAttribute() => throw null; @@ -88,13 +88,13 @@ namespace System } namespace InteropServices { - // Generated from `System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AllowReversePInvokeCallsAttribute : System.Attribute { public AllowReversePInvokeCallsAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.ArrayWithOffset` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ArrayWithOffset` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ArrayWithOffset { public static bool operator !=(System.Runtime.InteropServices.ArrayWithOffset a, System.Runtime.InteropServices.ArrayWithOffset b) => throw null; @@ -108,14 +108,14 @@ namespace System public int GetOffset() => throw null; } - // Generated from `System.Runtime.InteropServices.AutomationProxyAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.AutomationProxyAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AutomationProxyAttribute : System.Attribute { public AutomationProxyAttribute(bool val) => throw null; public bool Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.BStrWrapper` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.BStrWrapper` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BStrWrapper { public BStrWrapper(object value) => throw null; @@ -123,7 +123,7 @@ namespace System public string WrappedObject { get => throw null; } } - // Generated from `System.Runtime.InteropServices.BestFitMappingAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.BestFitMappingAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BestFitMappingAttribute : System.Attribute { public bool BestFitMapping { get => throw null; } @@ -131,7 +131,20 @@ namespace System public bool ThrowOnUnmappableChar; } - // Generated from `System.Runtime.InteropServices.COMException` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CLong` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct CLong : System.IEquatable + { + // 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; } + } + + // Generated from `System.Runtime.InteropServices.COMException` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class COMException : System.Runtime.InteropServices.ExternalException { public COMException() => throw null; @@ -142,7 +155,20 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Runtime.InteropServices.CallingConvention` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CULong` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.Runtime.InteropServices.CallingConvention` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CallingConvention { Cdecl, @@ -152,7 +178,7 @@ namespace System Winapi, } - // Generated from `System.Runtime.InteropServices.ClassInterfaceAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ClassInterfaceAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ClassInterfaceAttribute : System.Attribute { public ClassInterfaceAttribute(System.Runtime.InteropServices.ClassInterfaceType classInterfaceType) => throw null; @@ -160,7 +186,7 @@ namespace System public System.Runtime.InteropServices.ClassInterfaceType Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.ClassInterfaceType` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ClassInterfaceType` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ClassInterfaceType { AutoDispatch, @@ -168,27 +194,29 @@ namespace System None, } - // Generated from `System.Runtime.InteropServices.CoClassAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CoClassAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CoClassAttribute : System.Attribute { public System.Type CoClass { get => throw null; } public CoClassAttribute(System.Type coClass) => throw null; } - // Generated from `System.Runtime.InteropServices.CollectionsMarshal` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CollectionsMarshal` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Runtime.InteropServices.ComAliasNameAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComAliasNameAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComAliasNameAttribute : System.Attribute { public ComAliasNameAttribute(string alias) => throw null; public string Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.ComAwareEventInfo` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComAwareEventInfo` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComAwareEventInfo : System.Reflection.EventInfo { public override void AddEventHandler(object target, System.Delegate handler) => throw null; @@ -210,7 +238,7 @@ namespace System public override void RemoveEventHandler(object target, System.Delegate handler) => throw null; } - // Generated from `System.Runtime.InteropServices.ComCompatibleVersionAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComCompatibleVersionAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComCompatibleVersionAttribute : System.Attribute { public int BuildNumber { get => throw null; } @@ -220,20 +248,20 @@ namespace System public int RevisionNumber { get => throw null; } } - // Generated from `System.Runtime.InteropServices.ComConversionLossAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComConversionLossAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComConversionLossAttribute : System.Attribute { public ComConversionLossAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.ComDefaultInterfaceAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComDefaultInterfaceAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComDefaultInterfaceAttribute : System.Attribute { public ComDefaultInterfaceAttribute(System.Type defaultInterface) => throw null; public System.Type Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.ComEventInterfaceAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComEventInterfaceAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComEventInterfaceAttribute : System.Attribute { public ComEventInterfaceAttribute(System.Type SourceInterface, System.Type EventProvider) => throw null; @@ -241,20 +269,20 @@ namespace System public System.Type SourceInterface { get => throw null; } } - // Generated from `System.Runtime.InteropServices.ComEventsHelper` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComEventsHelper` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Runtime.InteropServices.ComImportAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComImportAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComImportAttribute : System.Attribute { public ComImportAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.ComInterfaceType` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComInterfaceType` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ComInterfaceType { InterfaceIsDual, @@ -263,7 +291,7 @@ namespace System InterfaceIsIUnknown, } - // Generated from `System.Runtime.InteropServices.ComMemberType` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComMemberType` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ComMemberType { Method, @@ -271,13 +299,13 @@ namespace System PropSet, } - // Generated from `System.Runtime.InteropServices.ComRegisterFunctionAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComRegisterFunctionAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComRegisterFunctionAttribute : System.Attribute { public ComRegisterFunctionAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.ComSourceInterfacesAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComSourceInterfacesAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComSourceInterfacesAttribute : System.Attribute { public ComSourceInterfacesAttribute(System.Type sourceInterface) => throw null; @@ -288,16 +316,16 @@ namespace System public string Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.ComUnregisterFunctionAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComUnregisterFunctionAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComUnregisterFunctionAttribute : System.Attribute { public ComUnregisterFunctionAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.ComWrappers` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComWrappers` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ComWrappers { - // Generated from `System.Runtime.InteropServices.ComWrappers+ComInterfaceDispatch` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComWrappers+ComInterfaceDispatch` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ComInterfaceDispatch { // Stub generator skipped constructor @@ -306,7 +334,7 @@ namespace System } - // Generated from `System.Runtime.InteropServices.ComWrappers+ComInterfaceEntry` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComWrappers+ComInterfaceEntry` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ComInterfaceEntry { // Stub generator skipped constructor @@ -322,12 +350,13 @@ namespace System 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); } - // Generated from `System.Runtime.InteropServices.CreateComInterfaceFlags` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CreateComInterfaceFlags` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CreateComInterfaceFlags { @@ -336,16 +365,18 @@ namespace System TrackerSupport, } - // Generated from `System.Runtime.InteropServices.CreateObjectFlags` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CreateObjectFlags` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CreateObjectFlags { + Aggregation, None, TrackerObject, UniqueInstance, + Unwrap, } - // Generated from `System.Runtime.InteropServices.CurrencyWrapper` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CurrencyWrapper` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CurrencyWrapper { public CurrencyWrapper(System.Decimal obj) => throw null; @@ -353,14 +384,14 @@ namespace System public System.Decimal WrappedObject { get => throw null; } } - // Generated from `System.Runtime.InteropServices.CustomQueryInterfaceMode` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CustomQueryInterfaceMode` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CustomQueryInterfaceMode { Allow, Ignore, } - // Generated from `System.Runtime.InteropServices.CustomQueryInterfaceResult` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CustomQueryInterfaceResult` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CustomQueryInterfaceResult { Failed, @@ -368,42 +399,42 @@ namespace System NotHandled, } - // Generated from `System.Runtime.InteropServices.DefaultCharSetAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.DefaultCharSetAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultCharSetAttribute : System.Attribute { public System.Runtime.InteropServices.CharSet CharSet { get => throw null; } public DefaultCharSetAttribute(System.Runtime.InteropServices.CharSet charSet) => throw null; } - // Generated from `System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultDllImportSearchPathsAttribute : System.Attribute { public DefaultDllImportSearchPathsAttribute(System.Runtime.InteropServices.DllImportSearchPath paths) => throw null; public System.Runtime.InteropServices.DllImportSearchPath Paths { get => throw null; } } - // Generated from `System.Runtime.InteropServices.DefaultParameterValueAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.DefaultParameterValueAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultParameterValueAttribute : System.Attribute { public DefaultParameterValueAttribute(object value) => throw null; public object Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.DispIdAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.DispIdAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DispIdAttribute : System.Attribute { public DispIdAttribute(int dispId) => throw null; public int Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.DispatchWrapper` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.DispatchWrapper` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DispatchWrapper { public DispatchWrapper(object obj) => throw null; public object WrappedObject { get => throw null; } } - // Generated from `System.Runtime.InteropServices.DllImportAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.DllImportAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DllImportAttribute : System.Attribute { public bool BestFitMapping; @@ -418,10 +449,10 @@ namespace System public string Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.DllImportResolver` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.DllImportResolver` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate System.IntPtr DllImportResolver(string libraryName, System.Reflection.Assembly assembly, System.Runtime.InteropServices.DllImportSearchPath? searchPath); - // Generated from `System.Runtime.InteropServices.DllImportSearchPath` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.DllImportSearchPath` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DllImportSearchPath { @@ -434,13 +465,13 @@ namespace System UserDirectories, } - // Generated from `System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DynamicInterfaceCastableImplementationAttribute : System.Attribute { public DynamicInterfaceCastableImplementationAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.ErrorWrapper` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ErrorWrapper` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ErrorWrapper { public int ErrorCode { get => throw null; } @@ -449,14 +480,14 @@ namespace System public ErrorWrapper(object errorCode) => throw null; } - // Generated from `System.Runtime.InteropServices.GuidAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.GuidAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GuidAttribute : System.Attribute { public GuidAttribute(string guid) => throw null; public string Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.HandleCollector` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.HandleCollector` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HandleCollector { public void Add() => throw null; @@ -469,7 +500,7 @@ namespace System public void Remove() => throw null; } - // Generated from `System.Runtime.InteropServices.HandleRef` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.HandleRef` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct HandleRef { public System.IntPtr Handle { get => throw null; } @@ -480,19 +511,19 @@ namespace System public static explicit operator System.IntPtr(System.Runtime.InteropServices.HandleRef value) => throw null; } - // Generated from `System.Runtime.InteropServices.ICustomAdapter` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ICustomAdapter` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICustomAdapter { object GetUnderlyingObject(); } - // Generated from `System.Runtime.InteropServices.ICustomFactory` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ICustomFactory` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICustomFactory { System.MarshalByRefObject CreateInstance(System.Type serverType); } - // Generated from `System.Runtime.InteropServices.ICustomMarshaler` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ICustomMarshaler` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICustomMarshaler { void CleanUpManagedData(object ManagedObj); @@ -502,27 +533,27 @@ namespace System object MarshalNativeToManaged(System.IntPtr pNativeData); } - // Generated from `System.Runtime.InteropServices.ICustomQueryInterface` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ICustomQueryInterface` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICustomQueryInterface { System.Runtime.InteropServices.CustomQueryInterfaceResult GetInterface(ref System.Guid iid, out System.IntPtr ppv); } - // Generated from `System.Runtime.InteropServices.IDynamicInterfaceCastable` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.IDynamicInterfaceCastable` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDynamicInterfaceCastable { System.RuntimeTypeHandle GetInterfaceImplementation(System.RuntimeTypeHandle interfaceType); bool IsInterfaceImplemented(System.RuntimeTypeHandle interfaceType, bool throwIfNotImplemented); } - // Generated from `System.Runtime.InteropServices.ImportedFromTypeLibAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ImportedFromTypeLibAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ImportedFromTypeLibAttribute : System.Attribute { public ImportedFromTypeLibAttribute(string tlbFile) => throw null; public string Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.InterfaceTypeAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.InterfaceTypeAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InterfaceTypeAttribute : System.Attribute { public InterfaceTypeAttribute(System.Runtime.InteropServices.ComInterfaceType interfaceType) => throw null; @@ -530,7 +561,7 @@ namespace System public System.Runtime.InteropServices.ComInterfaceType Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.InvalidComObjectException` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.InvalidComObjectException` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidComObjectException : System.SystemException { public InvalidComObjectException() => throw null; @@ -539,7 +570,7 @@ namespace System public InvalidComObjectException(string message, System.Exception inner) => throw null; } - // Generated from `System.Runtime.InteropServices.InvalidOleVariantTypeException` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.InvalidOleVariantTypeException` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidOleVariantTypeException : System.SystemException { public InvalidOleVariantTypeException() => throw null; @@ -548,14 +579,14 @@ namespace System public InvalidOleVariantTypeException(string message, System.Exception inner) => throw null; } - // Generated from `System.Runtime.InteropServices.LCIDConversionAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.LCIDConversionAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LCIDConversionAttribute : System.Attribute { public LCIDConversionAttribute(int lcid) => throw null; public int Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ManagedToNativeComInteropStubAttribute : System.Attribute { public System.Type ClassType { get => throw null; } @@ -563,7 +594,7 @@ namespace System public string MethodName { get => throw null; } } - // Generated from `System.Runtime.InteropServices.Marshal` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.Marshal` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Marshal { public static int AddRef(System.IntPtr pUnk) => throw null; @@ -620,6 +651,8 @@ namespace System 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 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; @@ -633,6 +666,7 @@ namespace System 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; @@ -678,6 +712,8 @@ namespace System 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; @@ -724,7 +760,7 @@ namespace System public static void ZeroFreeGlobalAllocUnicode(System.IntPtr s) => throw null; } - // Generated from `System.Runtime.InteropServices.MarshalAsAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.MarshalAsAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MarshalAsAttribute : System.Attribute { public System.Runtime.InteropServices.UnmanagedType ArraySubType; @@ -741,7 +777,7 @@ namespace System public System.Runtime.InteropServices.UnmanagedType Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.MarshalDirectiveException` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.MarshalDirectiveException` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MarshalDirectiveException : System.SystemException { public MarshalDirectiveException() => throw null; @@ -750,7 +786,20 @@ namespace System public MarshalDirectiveException(string message, System.Exception inner) => throw null; } - // Generated from `System.Runtime.InteropServices.NativeLibrary` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.NFloat` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct NFloat : System.IEquatable + { + public bool Equals(System.Runtime.InteropServices.NFloat other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + // Stub generator skipped constructor + public NFloat(double value) => throw null; + public NFloat(float value) => throw null; + public override string ToString() => throw null; + public double Value { get => throw null; } + } + + // Generated from `System.Runtime.InteropServices.NativeLibrary` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class NativeLibrary { public static void Free(System.IntPtr handle) => throw null; @@ -763,19 +812,64 @@ namespace System public static bool TryLoad(string libraryPath, out System.IntPtr handle) => throw null; } - // Generated from `System.Runtime.InteropServices.OptionalAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.NativeMemory` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 Free(void* ptr) => throw null; + unsafe public static void* Realloc(void* ptr, System.UIntPtr byteCount) => throw null; + } + + // Generated from `System.Runtime.InteropServices.OptionalAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OptionalAttribute : System.Attribute { public OptionalAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.PreserveSigAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.PosixSignal` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public enum PosixSignal + { + SIGCHLD, + SIGCONT, + SIGHUP, + SIGINT, + SIGQUIT, + SIGTERM, + SIGTSTP, + SIGTTIN, + SIGTTOU, + SIGWINCH, + } + + // Generated from `System.Runtime.InteropServices.PosixSignalContext` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.Runtime.InteropServices.PosixSignalRegistration` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 + } + + // Generated from `System.Runtime.InteropServices.PreserveSigAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PreserveSigAttribute : System.Attribute { public PreserveSigAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PrimaryInteropAssemblyAttribute : System.Attribute { public int MajorVersion { get => throw null; } @@ -783,14 +877,14 @@ namespace System public PrimaryInteropAssemblyAttribute(int major, int minor) => throw null; } - // Generated from `System.Runtime.InteropServices.ProgIdAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ProgIdAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ProgIdAttribute : System.Attribute { public ProgIdAttribute(string progId) => throw null; public string Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.RuntimeEnvironment` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.RuntimeEnvironment` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class RuntimeEnvironment { public static bool FromGlobalAccessCache(System.Reflection.Assembly a) => throw null; @@ -801,7 +895,7 @@ namespace System public static string SystemConfigurationFile { get => throw null; } } - // Generated from `System.Runtime.InteropServices.SEHException` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.SEHException` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SEHException : System.Runtime.InteropServices.ExternalException { public virtual bool CanResume() => throw null; @@ -811,7 +905,7 @@ namespace System public SEHException(string message, System.Exception inner) => throw null; } - // Generated from `System.Runtime.InteropServices.SafeArrayRankMismatchException` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.SafeArrayRankMismatchException` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeArrayRankMismatchException : System.SystemException { public SafeArrayRankMismatchException() => throw null; @@ -820,7 +914,7 @@ namespace System public SafeArrayRankMismatchException(string message, System.Exception inner) => throw null; } - // Generated from `System.Runtime.InteropServices.SafeArrayTypeMismatchException` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.SafeArrayTypeMismatchException` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeArrayTypeMismatchException : System.SystemException { public SafeArrayTypeMismatchException() => throw null; @@ -829,13 +923,13 @@ namespace System public SafeArrayTypeMismatchException(string message, System.Exception inner) => throw null; } - // Generated from `System.Runtime.InteropServices.StandardOleMarshalObject` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.StandardOleMarshalObject` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StandardOleMarshalObject : System.MarshalByRefObject { protected StandardOleMarshalObject() => throw null; } - // Generated from `System.Runtime.InteropServices.TypeIdentifierAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.TypeIdentifierAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeIdentifierAttribute : System.Attribute { public string Identifier { get => throw null; } @@ -844,7 +938,7 @@ namespace System public TypeIdentifierAttribute(string scope, string identifier) => throw null; } - // Generated from `System.Runtime.InteropServices.TypeLibFuncAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.TypeLibFuncAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeLibFuncAttribute : System.Attribute { public TypeLibFuncAttribute(System.Runtime.InteropServices.TypeLibFuncFlags flags) => throw null; @@ -852,7 +946,7 @@ namespace System public System.Runtime.InteropServices.TypeLibFuncFlags Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.TypeLibFuncFlags` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.TypeLibFuncFlags` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TypeLibFuncFlags { @@ -871,14 +965,14 @@ namespace System FUsesGetLastError, } - // Generated from `System.Runtime.InteropServices.TypeLibImportClassAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.TypeLibImportClassAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeLibImportClassAttribute : System.Attribute { public TypeLibImportClassAttribute(System.Type importClass) => throw null; public string Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.TypeLibTypeAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.TypeLibTypeAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeLibTypeAttribute : System.Attribute { public TypeLibTypeAttribute(System.Runtime.InteropServices.TypeLibTypeFlags flags) => throw null; @@ -886,7 +980,7 @@ namespace System public System.Runtime.InteropServices.TypeLibTypeFlags Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.TypeLibTypeFlags` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.TypeLibTypeFlags` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TypeLibTypeFlags { @@ -906,7 +1000,7 @@ namespace System FReverseBind, } - // Generated from `System.Runtime.InteropServices.TypeLibVarAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.TypeLibVarAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeLibVarAttribute : System.Attribute { public TypeLibVarAttribute(System.Runtime.InteropServices.TypeLibVarFlags flags) => throw null; @@ -914,7 +1008,7 @@ namespace System public System.Runtime.InteropServices.TypeLibVarFlags Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.TypeLibVarFlags` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.TypeLibVarFlags` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TypeLibVarFlags { @@ -933,7 +1027,7 @@ namespace System FUiDefault, } - // Generated from `System.Runtime.InteropServices.TypeLibVersionAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.TypeLibVersionAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeLibVersionAttribute : System.Attribute { public int MajorVersion { get => throw null; } @@ -941,14 +1035,21 @@ namespace System public TypeLibVersionAttribute(int major, int minor) => throw null; } - // Generated from `System.Runtime.InteropServices.UnknownWrapper` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.UnknownWrapper` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnknownWrapper { public UnknownWrapper(object obj) => throw null; public object WrappedObject { get => throw null; } } - // Generated from `System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.UnmanagedCallConvAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class UnmanagedCallConvAttribute : System.Attribute + { + public System.Type[] CallConvs; + public UnmanagedCallConvAttribute() => throw null; + } + + // Generated from `System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnmanagedCallersOnlyAttribute : System.Attribute { public System.Type[] CallConvs; @@ -956,7 +1057,7 @@ namespace System public UnmanagedCallersOnlyAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnmanagedFunctionPointerAttribute : System.Attribute { public bool BestFitMapping; @@ -967,7 +1068,7 @@ namespace System public UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention callingConvention) => throw null; } - // Generated from `System.Runtime.InteropServices.UnmanagedType` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.UnmanagedType` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UnmanagedType { AnsiBStr, @@ -1010,7 +1111,7 @@ namespace System VariantBool, } - // Generated from `System.Runtime.InteropServices.VarEnum` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.VarEnum` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum VarEnum { VT_ARRAY, @@ -1059,7 +1160,7 @@ namespace System VT_VOID, } - // Generated from `System.Runtime.InteropServices.VariantWrapper` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.VariantWrapper` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class VariantWrapper { public VariantWrapper(object obj) => throw null; @@ -1068,7 +1169,7 @@ namespace System namespace ComTypes { - // Generated from `System.Runtime.InteropServices.ComTypes.ADVF` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.ADVF` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ADVF { @@ -1081,7 +1182,7 @@ namespace System ADVF_PRIMEFIRST, } - // Generated from `System.Runtime.InteropServices.ComTypes.BINDPTR` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.BINDPTR` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct BINDPTR { // Stub generator skipped constructor @@ -1090,7 +1191,7 @@ namespace System public System.IntPtr lpvardesc; } - // Generated from `System.Runtime.InteropServices.ComTypes.BIND_OPTS` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.BIND_OPTS` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct BIND_OPTS { // Stub generator skipped constructor @@ -1100,7 +1201,7 @@ namespace System public int grfMode; } - // Generated from `System.Runtime.InteropServices.ComTypes.CALLCONV` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.CALLCONV` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CALLCONV { CC_CDECL, @@ -1115,7 +1216,7 @@ namespace System CC_SYSCALL, } - // Generated from `System.Runtime.InteropServices.ComTypes.CONNECTDATA` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.CONNECTDATA` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CONNECTDATA { // Stub generator skipped constructor @@ -1123,14 +1224,14 @@ namespace System public object pUnk; } - // Generated from `System.Runtime.InteropServices.ComTypes.DATADIR` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.DATADIR` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DATADIR { DATADIR_GET, DATADIR_SET, } - // Generated from `System.Runtime.InteropServices.ComTypes.DESCKIND` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.DESCKIND` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DESCKIND { DESCKIND_FUNCDESC, @@ -1141,7 +1242,7 @@ namespace System DESCKIND_VARDESC, } - // Generated from `System.Runtime.InteropServices.ComTypes.DISPPARAMS` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.DISPPARAMS` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DISPPARAMS { // Stub generator skipped constructor @@ -1151,7 +1252,7 @@ namespace System public System.IntPtr rgvarg; } - // Generated from `System.Runtime.InteropServices.ComTypes.DVASPECT` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.DVASPECT` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DVASPECT { @@ -1161,10 +1262,10 @@ namespace System DVASPECT_THUMBNAIL, } - // Generated from `System.Runtime.InteropServices.ComTypes.ELEMDESC` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.ELEMDESC` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ELEMDESC { - // Generated from `System.Runtime.InteropServices.ComTypes.ELEMDESC+DESCUNION` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.ELEMDESC+DESCUNION` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DESCUNION { // Stub generator skipped constructor @@ -1178,7 +1279,7 @@ namespace System public System.Runtime.InteropServices.ComTypes.TYPEDESC tdesc; } - // Generated from `System.Runtime.InteropServices.ComTypes.EXCEPINFO` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.EXCEPINFO` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct EXCEPINFO { // Stub generator skipped constructor @@ -1193,7 +1294,7 @@ namespace System public System.Int16 wReserved; } - // Generated from `System.Runtime.InteropServices.ComTypes.FILETIME` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.FILETIME` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct FILETIME { // Stub generator skipped constructor @@ -1201,7 +1302,7 @@ namespace System public int dwLowDateTime; } - // Generated from `System.Runtime.InteropServices.ComTypes.FORMATETC` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.FORMATETC` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct FORMATETC { // Stub generator skipped constructor @@ -1212,7 +1313,7 @@ namespace System public System.Runtime.InteropServices.ComTypes.TYMED tymed; } - // Generated from `System.Runtime.InteropServices.ComTypes.FUNCDESC` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.FUNCDESC` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct FUNCDESC { // Stub generator skipped constructor @@ -1230,7 +1331,7 @@ namespace System public System.Int16 wFuncFlags; } - // Generated from `System.Runtime.InteropServices.ComTypes.FUNCFLAGS` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.FUNCFLAGS` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum FUNCFLAGS { @@ -1249,7 +1350,7 @@ namespace System FUNCFLAG_FUSESGETLASTERROR, } - // Generated from `System.Runtime.InteropServices.ComTypes.FUNCKIND` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.FUNCKIND` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FUNCKIND { FUNC_DISPATCH, @@ -1259,7 +1360,7 @@ namespace System FUNC_VIRTUAL, } - // Generated from `System.Runtime.InteropServices.ComTypes.IAdviseSink` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IAdviseSink` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IAdviseSink { void OnClose(); @@ -1269,7 +1370,7 @@ namespace System void OnViewChange(int aspect, int index); } - // Generated from `System.Runtime.InteropServices.ComTypes.IBindCtx` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IBindCtx` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IBindCtx { void EnumObjectParam(out System.Runtime.InteropServices.ComTypes.IEnumString ppenum); @@ -1284,7 +1385,7 @@ namespace System void SetBindOptions(ref System.Runtime.InteropServices.ComTypes.BIND_OPTS pbindopts); } - // Generated from `System.Runtime.InteropServices.ComTypes.IConnectionPoint` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IConnectionPoint` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IConnectionPoint { void Advise(object pUnkSink, out int pdwCookie); @@ -1294,14 +1395,14 @@ namespace System void Unadvise(int dwCookie); } - // Generated from `System.Runtime.InteropServices.ComTypes.IConnectionPointContainer` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IConnectionPointContainer` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); } - // Generated from `System.Runtime.InteropServices.ComTypes.IDLDESC` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IDLDESC` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct IDLDESC { // Stub generator skipped constructor @@ -1309,7 +1410,7 @@ namespace System public System.Runtime.InteropServices.ComTypes.IDLFLAG wIDLFlags; } - // Generated from `System.Runtime.InteropServices.ComTypes.IDLFLAG` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IDLFLAG` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum IDLFLAG { @@ -1320,7 +1421,7 @@ namespace System IDLFLAG_NONE, } - // Generated from `System.Runtime.InteropServices.ComTypes.IDataObject` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IDataObject` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); @@ -1334,7 +1435,7 @@ namespace System void SetData(ref System.Runtime.InteropServices.ComTypes.FORMATETC formatIn, ref System.Runtime.InteropServices.ComTypes.STGMEDIUM medium, bool release); } - // Generated from `System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumConnectionPoints { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints ppenum); @@ -1343,7 +1444,7 @@ namespace System int Skip(int celt); } - // Generated from `System.Runtime.InteropServices.ComTypes.IEnumConnections` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IEnumConnections` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumConnections { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumConnections ppenum); @@ -1352,7 +1453,7 @@ namespace System int Skip(int celt); } - // Generated from `System.Runtime.InteropServices.ComTypes.IEnumFORMATETC` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IEnumFORMATETC` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumFORMATETC { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumFORMATETC newEnum); @@ -1361,7 +1462,7 @@ namespace System int Skip(int celt); } - // Generated from `System.Runtime.InteropServices.ComTypes.IEnumMoniker` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IEnumMoniker` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumMoniker { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumMoniker ppenum); @@ -1370,7 +1471,7 @@ namespace System int Skip(int celt); } - // Generated from `System.Runtime.InteropServices.ComTypes.IEnumSTATDATA` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IEnumSTATDATA` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumSTATDATA { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumSTATDATA newEnum); @@ -1379,7 +1480,7 @@ namespace System int Skip(int celt); } - // Generated from `System.Runtime.InteropServices.ComTypes.IEnumString` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IEnumString` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumString { void Clone(out System.Runtime.InteropServices.ComTypes.IEnumString ppenum); @@ -1388,7 +1489,7 @@ namespace System int Skip(int celt); } - // Generated from `System.Runtime.InteropServices.ComTypes.IEnumVARIANT` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IEnumVARIANT` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumVARIANT { System.Runtime.InteropServices.ComTypes.IEnumVARIANT Clone(); @@ -1397,7 +1498,7 @@ namespace System int Skip(int celt); } - // Generated from `System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum IMPLTYPEFLAGS { @@ -1407,7 +1508,7 @@ namespace System IMPLTYPEFLAG_FSOURCE, } - // Generated from `System.Runtime.InteropServices.ComTypes.IMoniker` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IMoniker` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IMoniker { void BindToObject(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, ref System.Guid riidResult, out object ppvResult); @@ -1432,7 +1533,7 @@ namespace System void Save(System.Runtime.InteropServices.ComTypes.IStream pStm, bool fClearDirty); } - // Generated from `System.Runtime.InteropServices.ComTypes.INVOKEKIND` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.INVOKEKIND` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum INVOKEKIND { @@ -1442,7 +1543,7 @@ namespace System INVOKE_PROPERTYPUTREF, } - // Generated from `System.Runtime.InteropServices.ComTypes.IPersistFile` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IPersistFile` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IPersistFile { void GetClassID(out System.Guid pClassID); @@ -1453,7 +1554,7 @@ namespace System void SaveCompleted(string pszFileName); } - // Generated from `System.Runtime.InteropServices.ComTypes.IRunningObjectTable` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IRunningObjectTable` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IRunningObjectTable { void EnumRunning(out System.Runtime.InteropServices.ComTypes.IEnumMoniker ppenumMoniker); @@ -1465,7 +1566,7 @@ namespace System void Revoke(int dwRegister); } - // Generated from `System.Runtime.InteropServices.ComTypes.IStream` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.IStream` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IStream { void Clone(out System.Runtime.InteropServices.ComTypes.IStream ppstm); @@ -1481,14 +1582,14 @@ namespace System void Write(System.Byte[] pv, int cb, System.IntPtr pcbWritten); } - // Generated from `System.Runtime.InteropServices.ComTypes.ITypeComp` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.ITypeComp` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 BindType(string szName, int lHashVal, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo, out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp); } - // Generated from `System.Runtime.InteropServices.ComTypes.ITypeInfo` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.ITypeInfo` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITypeInfo { void AddressOfMember(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out System.IntPtr ppv); @@ -1512,7 +1613,7 @@ namespace System void ReleaseVarDesc(System.IntPtr pVarDesc); } - // Generated from `System.Runtime.InteropServices.ComTypes.ITypeInfo2` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.ITypeInfo2` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITypeInfo2 : System.Runtime.InteropServices.ComTypes.ITypeInfo { void AddressOfMember(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out System.IntPtr ppv); @@ -1551,7 +1652,7 @@ namespace System void ReleaseVarDesc(System.IntPtr pVarDesc); } - // Generated from `System.Runtime.InteropServices.ComTypes.ITypeLib` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.ITypeLib` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITypeLib { void FindName(string szNameBuf, int lHashVal, System.Runtime.InteropServices.ComTypes.ITypeInfo[] ppTInfo, int[] rgMemId, ref System.Int16 pcFound); @@ -1566,7 +1667,7 @@ namespace System void ReleaseTLibAttr(System.IntPtr pTLibAttr); } - // Generated from `System.Runtime.InteropServices.ComTypes.ITypeLib2` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.ITypeLib2` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); @@ -1585,7 +1686,7 @@ namespace System void ReleaseTLibAttr(System.IntPtr pTLibAttr); } - // Generated from `System.Runtime.InteropServices.ComTypes.LIBFLAGS` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.LIBFLAGS` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum LIBFLAGS { @@ -1595,7 +1696,7 @@ namespace System LIBFLAG_FRESTRICTED, } - // Generated from `System.Runtime.InteropServices.ComTypes.PARAMDESC` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.PARAMDESC` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PARAMDESC { // Stub generator skipped constructor @@ -1603,7 +1704,7 @@ namespace System public System.Runtime.InteropServices.ComTypes.PARAMFLAG wParamFlags; } - // Generated from `System.Runtime.InteropServices.ComTypes.PARAMFLAG` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.PARAMFLAG` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum PARAMFLAG { @@ -1617,7 +1718,7 @@ namespace System PARAMFLAG_NONE, } - // Generated from `System.Runtime.InteropServices.ComTypes.STATDATA` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.STATDATA` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct STATDATA { // Stub generator skipped constructor @@ -1627,7 +1728,7 @@ namespace System public System.Runtime.InteropServices.ComTypes.FORMATETC formatetc; } - // Generated from `System.Runtime.InteropServices.ComTypes.STATSTG` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.STATSTG` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct STATSTG { // Stub generator skipped constructor @@ -1644,7 +1745,7 @@ namespace System public int type; } - // Generated from `System.Runtime.InteropServices.ComTypes.STGMEDIUM` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.STGMEDIUM` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct STGMEDIUM { // Stub generator skipped constructor @@ -1653,7 +1754,7 @@ namespace System public System.IntPtr unionmember; } - // Generated from `System.Runtime.InteropServices.ComTypes.SYSKIND` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.SYSKIND` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SYSKIND { SYS_MAC, @@ -1662,7 +1763,7 @@ namespace System SYS_WIN64, } - // Generated from `System.Runtime.InteropServices.ComTypes.TYMED` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.TYMED` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TYMED { @@ -1676,7 +1777,7 @@ namespace System TYMED_NULL, } - // Generated from `System.Runtime.InteropServices.ComTypes.TYPEATTR` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.TYPEATTR` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TYPEATTR { public const int MEMBER_ID_NIL = default; @@ -1701,7 +1802,7 @@ namespace System public System.Runtime.InteropServices.ComTypes.TYPEFLAGS wTypeFlags; } - // Generated from `System.Runtime.InteropServices.ComTypes.TYPEDESC` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.TYPEDESC` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TYPEDESC { // Stub generator skipped constructor @@ -1709,7 +1810,7 @@ namespace System public System.Int16 vt; } - // Generated from `System.Runtime.InteropServices.ComTypes.TYPEFLAGS` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.TYPEFLAGS` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TYPEFLAGS { @@ -1730,7 +1831,7 @@ namespace System TYPEFLAG_FREVERSEBIND, } - // Generated from `System.Runtime.InteropServices.ComTypes.TYPEKIND` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.TYPEKIND` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TYPEKIND { TKIND_ALIAS, @@ -1744,7 +1845,7 @@ namespace System TKIND_UNION, } - // Generated from `System.Runtime.InteropServices.ComTypes.TYPELIBATTR` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.TYPELIBATTR` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TYPELIBATTR { // Stub generator skipped constructor @@ -1756,10 +1857,10 @@ namespace System public System.Int16 wMinorVerNum; } - // Generated from `System.Runtime.InteropServices.ComTypes.VARDESC` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.VARDESC` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct VARDESC { - // Generated from `System.Runtime.InteropServices.ComTypes.VARDESC+DESCUNION` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.VARDESC+DESCUNION` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DESCUNION { // Stub generator skipped constructor @@ -1777,7 +1878,7 @@ namespace System public System.Int16 wVarFlags; } - // Generated from `System.Runtime.InteropServices.ComTypes.VARFLAGS` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.VARFLAGS` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum VARFLAGS { @@ -1796,7 +1897,7 @@ namespace System VARFLAG_FUIDEFAULT, } - // Generated from `System.Runtime.InteropServices.ComTypes.VARKIND` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComTypes.VARKIND` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum VARKIND { VAR_CONST, @@ -1806,11 +1907,41 @@ namespace System } } + namespace ObjectiveC + { + // Generated from `System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public static class ObjectiveCMarshal + { + // Generated from `System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal+MessageSendFunction` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public enum MessageSendFunction + { + MsgSend, + MsgSendFpret, + MsgSendStret, + MsgSendSuper, + MsgSendSuperStret, + } + + + + + public static System.Runtime.InteropServices.GCHandle CreateReferenceTrackingHandle(object obj, out System.Span taggedMemory) => throw null; + public static void SetMessageSendCallback(System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction msgSendFunction, System.IntPtr func) => throw null; + public static void SetMessageSendPendingException(System.Exception exception) => throw null; + } + + // Generated from `System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class ObjectiveCTrackedTypeAttribute : System.Attribute + { + public ObjectiveCTrackedTypeAttribute() => throw null; + } + + } } } namespace Security { - // Generated from `System.Security.SecureString` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecureString` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecureString : System.IDisposable { public void AppendChar(System.Char c) => throw null; @@ -1827,7 +1958,7 @@ namespace System public void SetAt(int index, System.Char c) => throw null; } - // Generated from `System.Security.SecureStringMarshal` in `System.Runtime.InteropServices, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecureStringMarshal` in `System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class SecureStringMarshal { public static System.IntPtr SecureStringToCoTaskMemAnsi(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 4de8927e326..e1f5ca7b88b 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 @@ -6,7 +6,7 @@ namespace System { namespace Intrinsics { - // Generated from `System.Runtime.Intrinsics.Vector128` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Vector128` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class Vector128 { public static System.Runtime.Intrinsics.Vector128 As(this System.Runtime.Intrinsics.Vector128 vector) where T : struct where U : struct => throw null; @@ -89,7 +89,7 @@ namespace System public static System.Runtime.Intrinsics.Vector128 WithUpper(this System.Runtime.Intrinsics.Vector128 vector, System.Runtime.Intrinsics.Vector64 value) where T : struct => throw null; } - // Generated from `System.Runtime.Intrinsics.Vector128<>` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Vector128<>` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct Vector128 : System.IEquatable> where T : struct { public static System.Runtime.Intrinsics.Vector128 AllBitsSet { get => throw null; } @@ -102,7 +102,7 @@ namespace System public static System.Runtime.Intrinsics.Vector128 Zero { get => throw null; } } - // Generated from `System.Runtime.Intrinsics.Vector256` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Vector256` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class Vector256 { public static System.Runtime.Intrinsics.Vector256 As(this System.Runtime.Intrinsics.Vector256 vector) where T : struct where U : struct => throw null; @@ -177,7 +177,7 @@ namespace System public static System.Runtime.Intrinsics.Vector256 WithUpper(this System.Runtime.Intrinsics.Vector256 vector, System.Runtime.Intrinsics.Vector128 value) where T : struct => throw null; } - // Generated from `System.Runtime.Intrinsics.Vector256<>` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Vector256<>` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct Vector256 : System.IEquatable> where T : struct { public static System.Runtime.Intrinsics.Vector256 AllBitsSet { get => throw null; } @@ -190,7 +190,7 @@ namespace System public static System.Runtime.Intrinsics.Vector256 Zero { get => throw null; } } - // Generated from `System.Runtime.Intrinsics.Vector64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Vector64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class Vector64 { public static System.Runtime.Intrinsics.Vector64 As(this System.Runtime.Intrinsics.Vector64 vector) where T : struct where U : struct => throw null; @@ -245,7 +245,7 @@ namespace System public static System.Runtime.Intrinsics.Vector64 WithElement(this System.Runtime.Intrinsics.Vector64 vector, int index, T value) where T : struct => throw null; } - // Generated from `System.Runtime.Intrinsics.Vector64<>` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Vector64<>` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct Vector64 : System.IEquatable> where T : struct { public static System.Runtime.Intrinsics.Vector64 AllBitsSet { get => throw null; } @@ -260,10 +260,10 @@ namespace System namespace Arm { - // Generated from `System.Runtime.Intrinsics.Arm.AdvSimd` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.AdvSimd` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class AdvSimd : System.Runtime.Intrinsics.Arm.ArmBase { - // Generated from `System.Runtime.Intrinsics.Arm.AdvSimd+Arm64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.AdvSimd+Arm64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { public static System.Runtime.Intrinsics.Vector128 Abs(System.Runtime.Intrinsics.Vector128 value) => throw null; @@ -2476,10 +2476,10 @@ namespace System public static System.Runtime.Intrinsics.Vector128 ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128 value) => throw null; } - // Generated from `System.Runtime.Intrinsics.Arm.Aes` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Aes` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Aes : System.Runtime.Intrinsics.Arm.ArmBase { - // Generated from `System.Runtime.Intrinsics.Arm.Aes+Arm64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Aes+Arm64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { public static bool IsSupported { get => throw null; } @@ -2497,10 +2497,10 @@ namespace System public static System.Runtime.Intrinsics.Vector128 PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; } - // Generated from `System.Runtime.Intrinsics.Arm.ArmBase` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.ArmBase` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ArmBase { - // Generated from `System.Runtime.Intrinsics.Arm.ArmBase+Arm64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.ArmBase+Arm64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Arm64 { internal Arm64() => throw null; @@ -2509,6 +2509,8 @@ namespace System 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; } @@ -2522,10 +2524,10 @@ namespace System public static System.UInt32 ReverseElementBits(System.UInt32 value) => throw null; } - // Generated from `System.Runtime.Intrinsics.Arm.Crc32` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Crc32` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Crc32 : System.Runtime.Intrinsics.Arm.ArmBase { - // Generated from `System.Runtime.Intrinsics.Arm.Crc32+Arm64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Crc32+Arm64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { public static System.UInt32 ComputeCrc32(System.UInt32 crc, System.UInt64 data) => throw null; @@ -2543,10 +2545,10 @@ namespace System public static bool IsSupported { get => throw null; } } - // Generated from `System.Runtime.Intrinsics.Arm.Dp` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Dp` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Dp : System.Runtime.Intrinsics.Arm.AdvSimd { - // Generated from `System.Runtime.Intrinsics.Arm.Dp+Arm64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Dp+Arm64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Arm64 : System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 { public static bool IsSupported { get => throw null; } @@ -2568,10 +2570,10 @@ namespace System public static bool IsSupported { get => throw null; } } - // Generated from `System.Runtime.Intrinsics.Arm.Rdm` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Rdm` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Rdm : System.Runtime.Intrinsics.Arm.AdvSimd { - // Generated from `System.Runtime.Intrinsics.Arm.Rdm+Arm64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Rdm+Arm64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Arm64 : System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 { public static bool IsSupported { get => throw null; } @@ -2617,10 +2619,10 @@ namespace System 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; } - // Generated from `System.Runtime.Intrinsics.Arm.Sha1` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Sha1` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Sha1 : System.Runtime.Intrinsics.Arm.ArmBase { - // Generated from `System.Runtime.Intrinsics.Arm.Sha1+Arm64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Sha1+Arm64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { public static bool IsSupported { get => throw null; } @@ -2636,10 +2638,10 @@ namespace System public static System.Runtime.Intrinsics.Vector128 ScheduleUpdate1(System.Runtime.Intrinsics.Vector128 tw0_3, System.Runtime.Intrinsics.Vector128 w12_15) => throw null; } - // Generated from `System.Runtime.Intrinsics.Arm.Sha256` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Sha256` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Sha256 : System.Runtime.Intrinsics.Arm.ArmBase { - // Generated from `System.Runtime.Intrinsics.Arm.Sha256+Arm64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.Arm.Sha256+Arm64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Arm64 : System.Runtime.Intrinsics.Arm.ArmBase.Arm64 { public static bool IsSupported { get => throw null; } @@ -2656,10 +2658,10 @@ namespace System } namespace X86 { - // Generated from `System.Runtime.Intrinsics.X86.Aes` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Aes` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Aes : System.Runtime.Intrinsics.X86.Sse2 { - // Generated from `System.Runtime.Intrinsics.X86.Aes+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Aes+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.Sse2.X64 { public static bool IsSupported { get => throw null; } @@ -2675,10 +2677,10 @@ namespace System public static System.Runtime.Intrinsics.Vector128 KeygenAssist(System.Runtime.Intrinsics.Vector128 value, System.Byte control) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Avx` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Avx` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Avx : System.Runtime.Intrinsics.X86.Sse42 { - // Generated from `System.Runtime.Intrinsics.X86.Avx+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Avx+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.Sse42.X64 { public static bool IsSupported { get => throw null; } @@ -2933,13 +2935,14 @@ namespace System public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Avx2` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Avx2` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Avx2 : System.Runtime.Intrinsics.X86.Avx { - // Generated from `System.Runtime.Intrinsics.X86.Avx2+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Avx2+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.Avx.X64 { public static bool IsSupported { get => throw null; } + internal X64() => throw null; } @@ -2984,6 +2987,7 @@ namespace System 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; @@ -3339,10 +3343,31 @@ namespace System public static System.Runtime.Intrinsics.Vector256 Xor(System.Runtime.Intrinsics.Vector256 left, System.Runtime.Intrinsics.Vector256 right) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Bmi1` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.AvxVnni` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class AvxVnni : System.Runtime.Intrinsics.X86.Avx2 + { + // Generated from `System.Runtime.Intrinsics.X86.AvxVnni+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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; + } + + // Generated from `System.Runtime.Intrinsics.X86.Bmi1` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Bmi1 : System.Runtime.Intrinsics.X86.X86Base { - // Generated from `System.Runtime.Intrinsics.X86.Bmi1+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Bmi1+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.X86Base.X64 { public static System.UInt64 AndNot(System.UInt64 left, System.UInt64 right) => throw null; @@ -3366,10 +3391,10 @@ namespace System public static System.UInt32 TrailingZeroCount(System.UInt32 value) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Bmi2` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Bmi2` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Bmi2 : System.Runtime.Intrinsics.X86.X86Base { - // Generated from `System.Runtime.Intrinsics.X86.Bmi2+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Bmi2+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.X86Base.X64 { public static bool IsSupported { get => throw null; } @@ -3389,7 +3414,7 @@ namespace System public static System.UInt32 ZeroHighBits(System.UInt32 value, System.UInt32 index) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.FloatComparisonMode` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.FloatComparisonMode` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum FloatComparisonMode { OrderedEqualNonSignaling, @@ -3426,10 +3451,10 @@ namespace System UnorderedTrueSignaling, } - // Generated from `System.Runtime.Intrinsics.X86.Fma` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Fma` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Fma : System.Runtime.Intrinsics.X86.Avx { - // Generated from `System.Runtime.Intrinsics.X86.Fma+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Fma+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.Avx.X64 { public static bool IsSupported { get => throw null; } @@ -3471,10 +3496,10 @@ namespace System public static System.Runtime.Intrinsics.Vector128 MultiplySubtractScalar(System.Runtime.Intrinsics.Vector128 a, System.Runtime.Intrinsics.Vector128 b, System.Runtime.Intrinsics.Vector128 c) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Lzcnt` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Lzcnt` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Lzcnt : System.Runtime.Intrinsics.X86.X86Base { - // Generated from `System.Runtime.Intrinsics.X86.Lzcnt+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Lzcnt+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.X86Base.X64 { public static bool IsSupported { get => throw null; } @@ -3486,10 +3511,10 @@ namespace System public static System.UInt32 LeadingZeroCount(System.UInt32 value) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Pclmulqdq` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Pclmulqdq` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Pclmulqdq : System.Runtime.Intrinsics.X86.Sse2 { - // Generated from `System.Runtime.Intrinsics.X86.Pclmulqdq+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Pclmulqdq+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.Sse2.X64 { public static bool IsSupported { get => throw null; } @@ -3501,10 +3526,10 @@ namespace System public static bool IsSupported { get => throw null; } } - // Generated from `System.Runtime.Intrinsics.X86.Popcnt` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Popcnt` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Popcnt : System.Runtime.Intrinsics.X86.Sse42 { - // Generated from `System.Runtime.Intrinsics.X86.Popcnt+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Popcnt+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.Sse42.X64 { public static bool IsSupported { get => throw null; } @@ -3516,10 +3541,10 @@ namespace System public static System.UInt32 PopCount(System.UInt32 value) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Sse` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Sse : System.Runtime.Intrinsics.X86.X86Base { - // Generated from `System.Runtime.Intrinsics.X86.Sse+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -3621,10 +3646,10 @@ namespace System public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Sse2` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse2` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Sse2 : System.Runtime.Intrinsics.X86.Sse { - // Generated from `System.Runtime.Intrinsics.X86.Sse2+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse2+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -3944,10 +3969,10 @@ namespace System public static System.Runtime.Intrinsics.Vector128 Xor(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Sse3` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse3` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Sse3 : System.Runtime.Intrinsics.X86.Sse2 { - // Generated from `System.Runtime.Intrinsics.X86.Sse3+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse3+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.Sse2.X64 { public static bool IsSupported { get => throw null; } @@ -3977,10 +4002,10 @@ namespace System internal Sse3() => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Sse41` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse41` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Sse41 : System.Runtime.Intrinsics.X86.Ssse3 { - // Generated from `System.Runtime.Intrinsics.X86.Sse41+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse41+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -4135,10 +4160,10 @@ namespace System public static bool TestZ(System.Runtime.Intrinsics.Vector128 left, System.Runtime.Intrinsics.Vector128 right) => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Sse42` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse42` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Sse42 : System.Runtime.Intrinsics.X86.Sse41 { - // Generated from `System.Runtime.Intrinsics.X86.Sse42+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Sse42+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.Sse41.X64 { public static System.UInt64 Crc32(System.UInt64 crc, System.UInt64 data) => throw null; @@ -4155,10 +4180,10 @@ namespace System internal Sse42() => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.Ssse3` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Ssse3` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Ssse3 : System.Runtime.Intrinsics.X86.Sse3 { - // Generated from `System.Runtime.Intrinsics.X86.Ssse3+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.Ssse3+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 : System.Runtime.Intrinsics.X86.Sse3.X64 { public static bool IsSupported { get => throw null; } @@ -4194,10 +4219,10 @@ namespace System internal Ssse3() => throw null; } - // Generated from `System.Runtime.Intrinsics.X86.X86Base` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.X86Base` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X86Base { - // Generated from `System.Runtime.Intrinsics.X86.X86Base+X64` in `System.Runtime.Intrinsics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Runtime.Intrinsics.X86.X86Base+X64` in `System.Runtime.Intrinsics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class X64 { public static bool IsSupported { get => 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 50ced00c841..d4a5e43ecf8 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 @@ -6,19 +6,42 @@ namespace System { namespace Metadata { - // Generated from `System.Reflection.Metadata.AssemblyExtensions` in `System.Runtime.Loader, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Metadata.AssemblyExtensions` in `System.Runtime.Loader, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class AssemblyExtensions { unsafe public static bool TryGetRawMetadata(this System.Reflection.Assembly assembly, out System.Byte* blob, out int length) => throw null; } + // Generated from `System.Reflection.Metadata.MetadataUpdateHandlerAttribute` in `System.Runtime.Loader, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class MetadataUpdateHandlerAttribute : System.Attribute + { + public System.Type HandlerType { get => throw null; } + public MetadataUpdateHandlerAttribute(System.Type handlerType) => throw null; + } + + // Generated from `System.Reflection.Metadata.MetadataUpdater` in `System.Runtime.Loader, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 bool IsSupported { get => throw null; } + } + } } namespace Runtime { + namespace CompilerServices + { + // Generated from `System.Runtime.CompilerServices.CreateNewOnMetadataUpdateAttribute` in `System.Runtime.Loader, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class CreateNewOnMetadataUpdateAttribute : System.Attribute + { + public CreateNewOnMetadataUpdateAttribute() => throw null; + } + + } namespace Loader { - // Generated from `System.Runtime.Loader.AssemblyDependencyResolver` in `System.Runtime.Loader, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Loader.AssemblyDependencyResolver` in `System.Runtime.Loader, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyDependencyResolver { public AssemblyDependencyResolver(string componentAssemblyPath) => throw null; @@ -26,10 +49,10 @@ namespace System public string ResolveUnmanagedDllToPath(string unmanagedDllName) => throw null; } - // Generated from `System.Runtime.Loader.AssemblyLoadContext` in `System.Runtime.Loader, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Loader.AssemblyLoadContext` in `System.Runtime.Loader, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyLoadContext { - // Generated from `System.Runtime.Loader.AssemblyLoadContext+ContextualReflectionScope` in `System.Runtime.Loader, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Loader.AssemblyLoadContext+ContextualReflectionScope` in `System.Runtime.Loader, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ContextualReflectionScope : System.IDisposable { // Stub generator skipped constructor 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 fc5f7d009d5..8841306edb2 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,8 +4,8 @@ namespace System { namespace Numerics { - // Generated from `System.Numerics.BigInteger` in `System.Runtime.Numerics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct BigInteger : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable + // Generated from `System.Numerics.BigInteger` in `System.Runtime.Numerics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct BigInteger : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable { public static bool operator !=(System.Numerics.BigInteger left, System.Numerics.BigInteger right) => throw null; public static bool operator !=(System.Numerics.BigInteger left, System.Int64 right) => throw null; @@ -139,7 +139,7 @@ namespace System public static System.Numerics.BigInteger operator ~(System.Numerics.BigInteger value) => throw null; } - // Generated from `System.Numerics.Complex` in `System.Runtime.Numerics, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.Complex` in `System.Runtime.Numerics, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Complex : System.IEquatable, System.IFormattable { public static bool operator !=(System.Numerics.Complex left, System.Numerics.Complex right) => 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 7cfca24af77..aa9975bf3f0 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 @@ -6,7 +6,7 @@ namespace System { namespace Serialization { - // Generated from `System.Runtime.Serialization.Formatter` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Formatter` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Formatter : System.Runtime.Serialization.IFormatter { public abstract System.Runtime.Serialization.SerializationBinder Binder { get; set; } @@ -40,7 +40,7 @@ namespace System protected System.Collections.Queue m_objectQueue; } - // Generated from `System.Runtime.Serialization.FormatterConverter` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.FormatterConverter` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FormatterConverter : System.Runtime.Serialization.IFormatterConverter { public object Convert(object value, System.Type type) => throw null; @@ -63,7 +63,7 @@ namespace System public System.UInt64 ToUInt64(object value) => throw null; } - // Generated from `System.Runtime.Serialization.FormatterServices` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.FormatterServices` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class FormatterServices { public static void CheckTypeSecurity(System.Type t, System.Runtime.Serialization.Formatters.TypeFilterLevel securityLevel) => throw null; @@ -77,7 +77,7 @@ namespace System public static object PopulateObjectMembers(object obj, System.Reflection.MemberInfo[] members, object[] data) => throw null; } - // Generated from `System.Runtime.Serialization.IFormatter` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.IFormatter` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IFormatter { System.Runtime.Serialization.SerializationBinder Binder { get; set; } @@ -87,14 +87,14 @@ namespace System System.Runtime.Serialization.ISurrogateSelector SurrogateSelector { get; set; } } - // Generated from `System.Runtime.Serialization.ISerializationSurrogate` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ISerializationSurrogate` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); } - // Generated from `System.Runtime.Serialization.ISurrogateSelector` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ISurrogateSelector` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISurrogateSelector { void ChainSelector(System.Runtime.Serialization.ISurrogateSelector selector); @@ -102,7 +102,7 @@ namespace System System.Runtime.Serialization.ISerializationSurrogate GetSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, out System.Runtime.Serialization.ISurrogateSelector selector); } - // Generated from `System.Runtime.Serialization.ObjectIDGenerator` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ObjectIDGenerator` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObjectIDGenerator { public virtual System.Int64 GetId(object obj, out bool firstTime) => throw null; @@ -110,7 +110,7 @@ namespace System public ObjectIDGenerator() => throw null; } - // Generated from `System.Runtime.Serialization.ObjectManager` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ObjectManager` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObjectManager { public virtual void DoFixups() => throw null; @@ -128,7 +128,7 @@ namespace System public void RegisterObject(object obj, System.Int64 objectID, System.Runtime.Serialization.SerializationInfo info, System.Int64 idOfContainingObj, System.Reflection.MemberInfo member, int[] arrayIndex) => throw null; } - // Generated from `System.Runtime.Serialization.SerializationBinder` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.SerializationBinder` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SerializationBinder { public virtual void BindToName(System.Type serializedType, out string assemblyName, out string typeName) => throw null; @@ -136,7 +136,7 @@ namespace System protected SerializationBinder() => throw null; } - // Generated from `System.Runtime.Serialization.SerializationObjectManager` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.SerializationObjectManager` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SerializationObjectManager { public void RaiseOnSerializedEvent() => throw null; @@ -144,7 +144,7 @@ namespace System public SerializationObjectManager(System.Runtime.Serialization.StreamingContext context) => throw null; } - // Generated from `System.Runtime.Serialization.SurrogateSelector` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.SurrogateSelector` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -157,14 +157,14 @@ namespace System namespace Formatters { - // Generated from `System.Runtime.Serialization.Formatters.FormatterAssemblyStyle` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Formatters.FormatterAssemblyStyle` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FormatterAssemblyStyle { Full, Simple, } - // Generated from `System.Runtime.Serialization.Formatters.FormatterTypeStyle` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Formatters.FormatterTypeStyle` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FormatterTypeStyle { TypesAlways, @@ -172,14 +172,14 @@ namespace System XsdString, } - // Generated from `System.Runtime.Serialization.Formatters.IFieldInfo` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Formatters.IFieldInfo` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IFieldInfo { string[] FieldNames { get; set; } System.Type[] FieldTypes { get; set; } } - // Generated from `System.Runtime.Serialization.Formatters.TypeFilterLevel` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Formatters.TypeFilterLevel` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TypeFilterLevel { Full, @@ -188,7 +188,7 @@ namespace System namespace Binary { - // Generated from `System.Runtime.Serialization.Formatters.Binary.BinaryFormatter` in `System.Runtime.Serialization.Formatters, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Formatters.Binary.BinaryFormatter` in `System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BinaryFormatter : System.Runtime.Serialization.IFormatter { public System.Runtime.Serialization.Formatters.FormatterAssemblyStyle AssemblyFormat { 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 b792ee08dce..93587cee869 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 @@ -6,7 +6,7 @@ namespace System { namespace Serialization { - // Generated from `System.Runtime.Serialization.DateTimeFormat` in `System.Runtime.Serialization.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.DateTimeFormat` in `System.Runtime.Serialization.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DateTimeFormat { public DateTimeFormat(string formatString) => throw null; @@ -16,7 +16,7 @@ namespace System public string FormatString { get => throw null; } } - // Generated from `System.Runtime.Serialization.EmitTypeInformation` in `System.Runtime.Serialization.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.EmitTypeInformation` in `System.Runtime.Serialization.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EmitTypeInformation { Always, @@ -26,7 +26,7 @@ namespace System namespace Json { - // Generated from `System.Runtime.Serialization.Json.DataContractJsonSerializer` in `System.Runtime.Serialization.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Json.DataContractJsonSerializer` in `System.Runtime.Serialization.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataContractJsonSerializer : System.Runtime.Serialization.XmlObjectSerializer { public DataContractJsonSerializer(System.Type type) => throw null; @@ -61,7 +61,7 @@ namespace System public override void WriteStartObject(System.Xml.XmlWriter writer, object graph) => throw null; } - // Generated from `System.Runtime.Serialization.Json.DataContractJsonSerializerSettings` in `System.Runtime.Serialization.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Json.DataContractJsonSerializerSettings` in `System.Runtime.Serialization.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataContractJsonSerializerSettings { public DataContractJsonSerializerSettings() => throw null; @@ -75,20 +75,20 @@ namespace System public bool UseSimpleDictionaryFormat { get => throw null; set => throw null; } } - // Generated from `System.Runtime.Serialization.Json.IXmlJsonReaderInitializer` in `System.Runtime.Serialization.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Json.IXmlJsonReaderInitializer` in `System.Runtime.Serialization.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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(System.IO.Stream stream, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose); } - // Generated from `System.Runtime.Serialization.Json.IXmlJsonWriterInitializer` in `System.Runtime.Serialization.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Json.IXmlJsonWriterInitializer` in `System.Runtime.Serialization.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXmlJsonWriterInitializer { void SetOutput(System.IO.Stream stream, System.Text.Encoding encoding, bool ownsStream); } - // Generated from `System.Runtime.Serialization.Json.JsonReaderWriterFactory` in `System.Runtime.Serialization.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.Json.JsonReaderWriterFactory` in `System.Runtime.Serialization.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class JsonReaderWriterFactory { public static System.Xml.XmlDictionaryReader CreateJsonReader(System.Byte[] buffer, System.Xml.XmlDictionaryReaderQuotas quotas) => 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 6f0dc3375d5..d1be990749d 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 @@ -6,7 +6,7 @@ namespace System { namespace Serialization { - // Generated from `System.Runtime.Serialization.CollectionDataContractAttribute` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.CollectionDataContractAttribute` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CollectionDataContractAttribute : System.Attribute { public CollectionDataContractAttribute() => throw null; @@ -24,7 +24,7 @@ namespace System public string ValueName { get => throw null; set => throw null; } } - // Generated from `System.Runtime.Serialization.ContractNamespaceAttribute` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ContractNamespaceAttribute` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContractNamespaceAttribute : System.Attribute { public string ClrNamespace { get => throw null; set => throw null; } @@ -32,7 +32,7 @@ namespace System public ContractNamespaceAttribute(string contractNamespace) => throw null; } - // Generated from `System.Runtime.Serialization.DataContractAttribute` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.DataContractAttribute` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataContractAttribute : System.Attribute { public DataContractAttribute() => throw null; @@ -44,7 +44,7 @@ namespace System public string Namespace { get => throw null; set => throw null; } } - // Generated from `System.Runtime.Serialization.DataMemberAttribute` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.DataMemberAttribute` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataMemberAttribute : System.Attribute { public DataMemberAttribute() => throw null; @@ -55,7 +55,7 @@ namespace System public int Order { get => throw null; set => throw null; } } - // Generated from `System.Runtime.Serialization.EnumMemberAttribute` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.EnumMemberAttribute` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EnumMemberAttribute : System.Attribute { public EnumMemberAttribute() => throw null; @@ -63,7 +63,7 @@ namespace System public string Value { get => throw null; set => throw null; } } - // Generated from `System.Runtime.Serialization.ISerializationSurrogateProvider` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ISerializationSurrogateProvider` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISerializationSurrogateProvider { object GetDeserializedObject(object obj, System.Type targetType); @@ -71,13 +71,13 @@ namespace System System.Type GetSurrogateType(System.Type type); } - // Generated from `System.Runtime.Serialization.IgnoreDataMemberAttribute` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.IgnoreDataMemberAttribute` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IgnoreDataMemberAttribute : System.Attribute { public IgnoreDataMemberAttribute() => throw null; } - // Generated from `System.Runtime.Serialization.InvalidDataContractException` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.InvalidDataContractException` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidDataContractException : System.Exception { public InvalidDataContractException() => throw null; @@ -86,7 +86,7 @@ namespace System public InvalidDataContractException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Runtime.Serialization.KnownTypeAttribute` in `System.Runtime.Serialization.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.KnownTypeAttribute` in `System.Runtime.Serialization.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class KnownTypeAttribute : System.Attribute { public KnownTypeAttribute(System.Type type) => 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 8075b715945..0c121b8f246 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 @@ -6,7 +6,7 @@ namespace System { namespace Serialization { - // Generated from `System.Runtime.Serialization.DataContractResolver` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.DataContractResolver` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DataContractResolver { protected DataContractResolver() => throw null; @@ -14,7 +14,7 @@ namespace System 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); } - // Generated from `System.Runtime.Serialization.DataContractSerializer` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.DataContractSerializer` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataContractSerializer : System.Runtime.Serialization.XmlObjectSerializer { public System.Runtime.Serialization.DataContractResolver DataContractResolver { get => throw null; } @@ -46,14 +46,14 @@ namespace System public override void WriteStartObject(System.Xml.XmlWriter writer, object graph) => throw null; } - // Generated from `System.Runtime.Serialization.DataContractSerializerExtensions` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.DataContractSerializerExtensions` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static 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; } - // Generated from `System.Runtime.Serialization.DataContractSerializerSettings` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.DataContractSerializerSettings` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataContractSerializerSettings { public System.Runtime.Serialization.DataContractResolver DataContractResolver { get => throw null; set => throw null; } @@ -67,32 +67,32 @@ namespace System public bool SerializeReadOnlyTypes { get => throw null; set => throw null; } } - // Generated from `System.Runtime.Serialization.ExportOptions` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ExportOptions` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExportOptions { public ExportOptions() => throw null; public System.Collections.ObjectModel.Collection KnownTypes { get => throw null; } } - // Generated from `System.Runtime.Serialization.ExtensionDataObject` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ExtensionDataObject` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExtensionDataObject { } - // Generated from `System.Runtime.Serialization.IExtensibleDataObject` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.IExtensibleDataObject` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IExtensibleDataObject { System.Runtime.Serialization.ExtensionDataObject ExtensionData { get; set; } } - // Generated from `System.Runtime.Serialization.XPathQueryGenerator` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.XPathQueryGenerator` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Runtime.Serialization.XmlObjectSerializer` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.XmlObjectSerializer` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlObjectSerializer { public abstract bool IsStartObject(System.Xml.XmlDictionaryReader reader); @@ -114,7 +114,7 @@ namespace System protected XmlObjectSerializer() => throw null; } - // Generated from `System.Runtime.Serialization.XmlSerializableServices` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.XmlSerializableServices` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class XmlSerializableServices { public static void AddDefaultSchema(System.Xml.Schema.XmlSchemaSet schemas, System.Xml.XmlQualifiedName typeQName) => throw null; @@ -122,7 +122,7 @@ namespace System public static void WriteNodes(System.Xml.XmlWriter xmlWriter, System.Xml.XmlNode[] nodes) => throw null; } - // Generated from `System.Runtime.Serialization.XsdDataContractExporter` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.XsdDataContractExporter` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XsdDataContractExporter { public bool CanExport(System.Collections.Generic.ICollection assemblies) => throw null; @@ -144,7 +144,7 @@ namespace System } namespace Xml { - // Generated from `System.Xml.IFragmentCapableXmlDictionaryWriter` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IFragmentCapableXmlDictionaryWriter` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IFragmentCapableXmlDictionaryWriter { bool CanFragment { get; } @@ -153,27 +153,27 @@ namespace System void WriteFragment(System.Byte[] buffer, int offset, int count); } - // Generated from `System.Xml.IStreamProvider` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IStreamProvider` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IStreamProvider { System.IO.Stream GetStream(); void ReleaseStream(System.IO.Stream stream); } - // Generated from `System.Xml.IXmlBinaryReaderInitializer` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IXmlBinaryReaderInitializer` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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(System.IO.Stream stream, System.Xml.IXmlDictionary dictionary, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.XmlBinaryReaderSession session, System.Xml.OnXmlDictionaryReaderClose onClose); } - // Generated from `System.Xml.IXmlBinaryWriterInitializer` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IXmlBinaryWriterInitializer` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXmlBinaryWriterInitializer { void SetOutput(System.IO.Stream stream, System.Xml.IXmlDictionary dictionary, System.Xml.XmlBinaryWriterSession session, bool ownsStream); } - // Generated from `System.Xml.IXmlDictionary` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IXmlDictionary` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXmlDictionary { bool TryLookup(System.Xml.XmlDictionaryString value, out System.Xml.XmlDictionaryString result); @@ -181,23 +181,23 @@ namespace System bool TryLookup(string value, out System.Xml.XmlDictionaryString result); } - // Generated from `System.Xml.IXmlTextReaderInitializer` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IXmlTextReaderInitializer` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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(System.IO.Stream stream, System.Text.Encoding encoding, System.Xml.XmlDictionaryReaderQuotas quotas, System.Xml.OnXmlDictionaryReaderClose onClose); } - // Generated from `System.Xml.IXmlTextWriterInitializer` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IXmlTextWriterInitializer` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXmlTextWriterInitializer { void SetOutput(System.IO.Stream stream, System.Text.Encoding encoding, bool ownsStream); } - // Generated from `System.Xml.OnXmlDictionaryReaderClose` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.OnXmlDictionaryReaderClose` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void OnXmlDictionaryReaderClose(System.Xml.XmlDictionaryReader reader); - // Generated from `System.Xml.UniqueId` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.UniqueId` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UniqueId { public static bool operator !=(System.Xml.UniqueId id1, System.Xml.UniqueId id2) => throw null; @@ -218,7 +218,7 @@ namespace System public UniqueId(string value) => throw null; } - // Generated from `System.Xml.XmlBinaryReaderSession` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlBinaryReaderSession` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlBinaryReaderSession : System.Xml.IXmlDictionary { public System.Xml.XmlDictionaryString Add(int id, string value) => throw null; @@ -229,7 +229,7 @@ namespace System public XmlBinaryReaderSession() => throw null; } - // Generated from `System.Xml.XmlBinaryWriterSession` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlBinaryWriterSession` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlBinaryWriterSession { public void Reset() => throw null; @@ -237,7 +237,7 @@ namespace System public XmlBinaryWriterSession() => throw null; } - // Generated from `System.Xml.XmlDictionary` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDictionary` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlDictionary : System.Xml.IXmlDictionary { public virtual System.Xml.XmlDictionaryString Add(string value) => throw null; @@ -249,7 +249,7 @@ namespace System public XmlDictionary(int capacity) => throw null; } - // Generated from `System.Xml.XmlDictionaryReader` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDictionaryReader` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlDictionaryReader : System.Xml.XmlReader { public virtual bool CanCanonicalize { get => throw null; } @@ -378,7 +378,7 @@ namespace System protected XmlDictionaryReader() => throw null; } - // Generated from `System.Xml.XmlDictionaryReaderQuotaTypes` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDictionaryReaderQuotaTypes` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum XmlDictionaryReaderQuotaTypes { @@ -389,7 +389,7 @@ namespace System MaxStringContentLength, } - // Generated from `System.Xml.XmlDictionaryReaderQuotas` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDictionaryReaderQuotas` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlDictionaryReaderQuotas { public void CopyTo(System.Xml.XmlDictionaryReaderQuotas quotas) => throw null; @@ -403,7 +403,7 @@ namespace System public XmlDictionaryReaderQuotas() => throw null; } - // Generated from `System.Xml.XmlDictionaryString` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDictionaryString` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlDictionaryString { public System.Xml.IXmlDictionary Dictionary { get => throw null; } @@ -414,7 +414,7 @@ namespace System public XmlDictionaryString(System.Xml.IXmlDictionary dictionary, string value, int key) => throw null; } - // Generated from `System.Xml.XmlDictionaryWriter` in `System.Runtime.Serialization.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDictionaryWriter` in `System.Runtime.Serialization.Xml, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlDictionaryWriter : System.Xml.XmlWriter { public virtual bool CanCanonicalize { 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 487291325c8..762c6a9e59d 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 @@ -6,46 +6,49 @@ namespace Microsoft { namespace SafeHandles { - // Generated from `Microsoft.Win32.SafeHandles.CriticalHandleMinusOneIsInvalid` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.CriticalHandleMinusOneIsInvalid` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CriticalHandleMinusOneIsInvalid : System.Runtime.InteropServices.CriticalHandle { protected CriticalHandleMinusOneIsInvalid() : base(default(System.IntPtr)) => throw null; public override bool IsInvalid { get => throw null; } } - // Generated from `Microsoft.Win32.SafeHandles.CriticalHandleZeroOrMinusOneIsInvalid` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.CriticalHandleZeroOrMinusOneIsInvalid` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CriticalHandleZeroOrMinusOneIsInvalid : System.Runtime.InteropServices.CriticalHandle { protected CriticalHandleZeroOrMinusOneIsInvalid() : base(default(System.IntPtr)) => throw null; public override bool IsInvalid { get => throw null; } } - // Generated from `Microsoft.Win32.SafeHandles.SafeFileHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeFileHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeFileHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { + 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; } - // Generated from `Microsoft.Win32.SafeHandles.SafeHandleMinusOneIsInvalid` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeHandleMinusOneIsInvalid` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SafeHandleMinusOneIsInvalid : System.Runtime.InteropServices.SafeHandle { public override bool IsInvalid { get => throw null; } protected SafeHandleMinusOneIsInvalid(bool ownsHandle) : base(default(System.IntPtr), default(bool)) => throw null; } - // Generated from `Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SafeHandleZeroOrMinusOneIsInvalid : System.Runtime.InteropServices.SafeHandle { public override bool IsInvalid { get => throw null; } protected SafeHandleZeroOrMinusOneIsInvalid(bool ownsHandle) : base(default(System.IntPtr), default(bool)) => throw null; } - // Generated from `Microsoft.Win32.SafeHandles.SafeWaitHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeWaitHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; } @@ -54,7 +57,7 @@ namespace Microsoft } namespace System { - // Generated from `System.AccessViolationException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AccessViolationException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AccessViolationException : System.SystemException { public AccessViolationException() => throw null; @@ -63,58 +66,58 @@ namespace System public AccessViolationException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Action` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(); - // Generated from `System.Action<,,,,,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Action<,,,,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Action<,,,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Action<,,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Action<,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Action<,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Action<,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10); - // Generated from `System.Action<,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9); - // Generated from `System.Action<,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8); - // Generated from `System.Action<,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); - // Generated from `System.Action<,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); - // Generated from `System.Action<,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); - // Generated from `System.Action<,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4); - // Generated from `System.Action<,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T1 arg1, T2 arg2, T3 arg3); - // Generated from `System.Action<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T1 arg1, T2 arg2); - // Generated from `System.Action<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Action<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void Action(T obj); - // Generated from `System.Activator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Activator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Activator { public static object CreateInstance(System.Type type) => throw null; @@ -132,7 +135,7 @@ namespace System 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; } - // Generated from `System.AggregateException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AggregateException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AggregateException : System.Exception { public AggregateException() => throw null; @@ -152,7 +155,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.AppContext` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AppContext` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class AppContext { public static string BaseDirectory { get => throw null; } @@ -162,7 +165,7 @@ namespace System public static bool TryGetSwitch(string switchName, out bool isEnabled) => throw null; } - // Generated from `System.AppDomain` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AppDomain` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AppDomain : System.MarshalByRefObject { public void AppendPrivatePath(string path) => throw null; @@ -235,14 +238,14 @@ namespace System public static void Unload(System.AppDomain domain) => throw null; } - // Generated from `System.AppDomainSetup` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AppDomainSetup` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AppDomainSetup { public string ApplicationBase { get => throw null; } public string TargetFrameworkName { get => throw null; } } - // Generated from `System.AppDomainUnloadedException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AppDomainUnloadedException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AppDomainUnloadedException : System.SystemException { public AppDomainUnloadedException() => throw null; @@ -251,7 +254,7 @@ namespace System public AppDomainUnloadedException(string message, System.Exception innerException) => throw null; } - // Generated from `System.ApplicationException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ApplicationException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ApplicationException : System.Exception { public ApplicationException() => throw null; @@ -260,7 +263,7 @@ namespace System public ApplicationException(string message, System.Exception innerException) => throw null; } - // Generated from `System.ApplicationId` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ApplicationId` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ApplicationId { public ApplicationId(System.Byte[] publicKeyToken, string name, System.Version version, string processorArchitecture, string culture) => throw null; @@ -275,7 +278,7 @@ namespace System public System.Version Version { get => throw null; } } - // Generated from `System.ArgIterator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ArgIterator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ArgIterator { // Stub generator skipped constructor @@ -290,7 +293,7 @@ namespace System public int GetRemainingCount() => throw null; } - // Generated from `System.ArgumentException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ArgumentException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ArgumentException : System.SystemException { public ArgumentException() => throw null; @@ -304,7 +307,7 @@ namespace System public virtual string ParamName { get => throw null; } } - // Generated from `System.ArgumentNullException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ArgumentNullException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ArgumentNullException : System.ArgumentException { public ArgumentNullException() => throw null; @@ -312,9 +315,10 @@ 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; + public static void ThrowIfNull(object argument, string paramName = default(string)) => throw null; } - // Generated from `System.ArgumentOutOfRangeException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ArgumentOutOfRangeException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ArgumentOutOfRangeException : System.ArgumentException { public virtual object ActualValue { get => throw null; } @@ -328,7 +332,7 @@ namespace System public override string Message { get => throw null; } } - // Generated from `System.ArithmeticException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ArithmeticException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ArithmeticException : System.SystemException { public ArithmeticException() => throw null; @@ -337,7 +341,7 @@ namespace System public ArithmeticException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Array` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Array` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -351,6 +355,7 @@ namespace System 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 void Clear(System.Array array) => throw null; public static void Clear(System.Array array, int index, int length) => throw null; public object Clone() => throw null; int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) => throw null; @@ -420,6 +425,7 @@ namespace System 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 static int MaxLength { get => throw null; } public int Rank { get => throw null; } void System.Collections.IList.Remove(object value) => throw null; void System.Collections.IList.RemoveAt(int index) => throw null; @@ -457,10 +463,10 @@ namespace System public static bool TrueForAll(T[] array, System.Predicate match) => throw null; } - // Generated from `System.ArraySegment<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ArraySegment<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { - // Generated from `System.ArraySegment<>+Enumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ArraySegment<>+Enumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public T Current { get => throw null; } @@ -507,7 +513,7 @@ namespace System public static implicit operator System.ArraySegment(T[] array) => throw null; } - // Generated from `System.ArrayTypeMismatchException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ArrayTypeMismatchException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ArrayTypeMismatchException : System.SystemException { public ArrayTypeMismatchException() => throw null; @@ -516,20 +522,20 @@ namespace System public ArrayTypeMismatchException(string message, System.Exception innerException) => throw null; } - // Generated from `System.AssemblyLoadEventArgs` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AssemblyLoadEventArgs` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyLoadEventArgs : System.EventArgs { public AssemblyLoadEventArgs(System.Reflection.Assembly loadedAssembly) => throw null; public System.Reflection.Assembly LoadedAssembly { get => throw null; } } - // Generated from `System.AssemblyLoadEventHandler` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AssemblyLoadEventHandler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void AssemblyLoadEventHandler(object sender, System.AssemblyLoadEventArgs args); - // Generated from `System.AsyncCallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AsyncCallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void AsyncCallback(System.IAsyncResult ar); - // Generated from `System.Attribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Attribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Attribute { protected Attribute() => throw null; @@ -547,8 +553,8 @@ namespace System 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, System.Type type) => throw null; - public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, System.Type type, 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, System.Type attributeType) => throw null; @@ -572,7 +578,7 @@ namespace System public virtual object TypeId { get => throw null; } } - // Generated from `System.AttributeTargets` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AttributeTargets` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum AttributeTargets { @@ -594,7 +600,7 @@ namespace System Struct, } - // Generated from `System.AttributeUsageAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.AttributeUsageAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AttributeUsageAttribute : System.Attribute { public bool AllowMultiple { get => throw null; set => throw null; } @@ -603,7 +609,7 @@ namespace System public System.AttributeTargets ValidOn { get => throw null; } } - // Generated from `System.BadImageFormatException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.BadImageFormatException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BadImageFormatException : System.SystemException { public BadImageFormatException() => throw null; @@ -619,7 +625,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Base64FormattingOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Base64FormattingOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum Base64FormattingOptions { @@ -627,10 +633,12 @@ namespace System None, } - // Generated from `System.BitConverter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.BitConverter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -641,16 +649,22 @@ namespace System 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 float Int32BitsToSingle(int value) => throw null; public static double Int64BitsToDouble(System.Int64 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; @@ -668,6 +682,7 @@ namespace System 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; @@ -678,9 +693,12 @@ namespace System 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; } - // Generated from `System.Boolean` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Boolean` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Boolean : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable { // Stub generator skipped constructor @@ -716,7 +734,7 @@ namespace System public static bool TryParse(string value, out bool result) => throw null; } - // Generated from `System.Buffer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Buffer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Buffer { public static void BlockCopy(System.Array src, int srcOffset, System.Array dst, int dstOffset, int count) => throw null; @@ -727,8 +745,8 @@ namespace System public static void SetByte(System.Array array, int index, System.Byte value) => throw null; } - // Generated from `System.Byte` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Byte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.Byte` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Byte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { // Stub generator skipped constructor public int CompareTo(System.Byte value) => throw null; @@ -770,14 +788,14 @@ namespace System public static bool TryParse(string s, out System.Byte result) => throw null; } - // Generated from `System.CLSCompliantAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.CLSCompliantAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CLSCompliantAttribute : System.Attribute { public CLSCompliantAttribute(bool isCompliant) => throw null; public bool IsCompliant { get => throw null; } } - // Generated from `System.CannotUnloadAppDomainException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.CannotUnloadAppDomainException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CannotUnloadAppDomainException : System.SystemException { public CannotUnloadAppDomainException() => throw null; @@ -786,8 +804,8 @@ namespace System public CannotUnloadAppDomainException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Char` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Char : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable + // Generated from `System.Char` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Char : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { // Stub generator skipped constructor public int CompareTo(System.Char value) => throw null; @@ -803,6 +821,7 @@ namespace System public System.TypeCode GetTypeCode() => throw null; public static System.Globalization.UnicodeCategory GetUnicodeCategory(System.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 IsControl(System.Char c) => throw null; public static bool IsControl(string s, int index) => throw null; public static bool IsDigit(System.Char c) => throw null; @@ -853,6 +872,7 @@ namespace System 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; 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; @@ -860,10 +880,11 @@ namespace System 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; + bool System.ISpanFormattable.TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider) => throw null; public static bool TryParse(string s, out System.Char result) => throw null; } - // Generated from `System.CharEnumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.CharEnumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CharEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.ICloneable, System.IDisposable { public object Clone() => throw null; @@ -874,16 +895,16 @@ namespace System public void Reset() => throw null; } - // Generated from `System.Comparison<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Comparison<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate int Comparison(T x, T y); - // Generated from `System.ContextBoundObject` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ContextBoundObject` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ContextBoundObject : System.MarshalByRefObject { protected ContextBoundObject() => throw null; } - // Generated from `System.ContextMarshalException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ContextMarshalException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContextMarshalException : System.SystemException { public ContextMarshalException() => throw null; @@ -892,13 +913,13 @@ namespace System public ContextMarshalException(string message, System.Exception inner) => throw null; } - // Generated from `System.ContextStaticAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ContextStaticAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ContextStaticAttribute : System.Attribute { public ContextStaticAttribute() => throw null; } - // Generated from `System.Convert` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Convert` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Convert { public static object ChangeType(object value, System.Type conversionType) => throw null; @@ -1223,10 +1244,10 @@ namespace System public static bool TryToBase64Chars(System.ReadOnlySpan bytes, System.Span chars, out int charsWritten, System.Base64FormattingOptions options = default(System.Base64FormattingOptions)) => throw null; } - // Generated from `System.Converter<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Converter<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TOutput Converter(TInput input); - // Generated from `System.DBNull` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.DBNull` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DBNull : System.IConvertible, System.Runtime.Serialization.ISerializable { public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -1251,8 +1272,71 @@ namespace System public static System.DBNull Value; } - // Generated from `System.DateTime` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct DateTime : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.Runtime.Serialization.ISerializable + // Generated from `System.DateOnly` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct DateOnly : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable + { + 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; } + public int DayNumber { get => throw null; } + public System.DayOfWeek DayOfWeek { get => throw null; } + public int DayOfYear { get => throw null; } + public bool Equals(System.DateOnly value) => throw null; + public override bool Equals(object value) => throw null; + public static System.DateOnly FromDateTime(System.DateTime dateTime) => throw null; + public static System.DateOnly FromDayNumber(int dayNumber) => throw null; + public override int GetHashCode() => throw null; + 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 = 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, 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(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 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; + public string ToShortDateString() => 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 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, 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, 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; + public static bool TryParseExact(string s, string format, out System.DateOnly result) => throw null; + public int Year { get => throw null; } + } + + // Generated from `System.DateTime` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct DateTime : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable, 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; @@ -1375,7 +1459,7 @@ namespace System public int Year { get => throw null; } } - // Generated from `System.DateTimeKind` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.DateTimeKind` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DateTimeKind { Local, @@ -1383,8 +1467,8 @@ namespace System Utc, } - // Generated from `System.DateTimeOffset` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct DateTimeOffset : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + // Generated from `System.DateTimeOffset` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct DateTimeOffset : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable, 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; @@ -1479,7 +1563,7 @@ namespace System public static implicit operator System.DateTimeOffset(System.DateTime dateTime) => throw null; } - // Generated from `System.DayOfWeek` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.DayOfWeek` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DayOfWeek { Friday, @@ -1491,8 +1575,8 @@ namespace System Wednesday, } - // Generated from `System.Decimal` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Decimal : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable + // Generated from `System.Decimal` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Decimal : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { public static bool operator !=(System.Decimal d1, System.Decimal d2) => throw null; public static System.Decimal operator %(System.Decimal d1, System.Decimal d2) => throw null; @@ -1615,7 +1699,7 @@ namespace System public static implicit operator System.Decimal(System.UInt16 value) => throw null; } - // Generated from `System.Delegate` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Delegate` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Delegate : System.ICloneable, System.Runtime.Serialization.ISerializable { public static bool operator !=(System.Delegate d1, System.Delegate d2) => throw null; @@ -1650,7 +1734,7 @@ namespace System public object Target { get => throw null; } } - // Generated from `System.DivideByZeroException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.DivideByZeroException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DivideByZeroException : System.ArithmeticException { public DivideByZeroException() => throw null; @@ -1659,8 +1743,8 @@ namespace System public DivideByZeroException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Double` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Double : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.Double` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Double : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { public static bool operator !=(double left, double right) => throw null; public static bool operator <(double left, double right) => throw null; @@ -1720,7 +1804,7 @@ namespace System public static bool TryParse(string s, out double result) => throw null; } - // Generated from `System.DuplicateWaitObjectException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.DuplicateWaitObjectException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DuplicateWaitObjectException : System.ArgumentException { public DuplicateWaitObjectException() => throw null; @@ -1730,7 +1814,7 @@ namespace System public DuplicateWaitObjectException(string parameterName, string message) => throw null; } - // Generated from `System.EntryPointNotFoundException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.EntryPointNotFoundException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EntryPointNotFoundException : System.TypeLoadException { public EntryPointNotFoundException() => throw null; @@ -1739,7 +1823,7 @@ namespace System public EntryPointNotFoundException(string message, System.Exception inner) => throw null; } - // Generated from `System.Enum` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Enum` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Enum : System.IComparable, System.IConvertible, System.IFormattable { public int CompareTo(object target) => throw null; @@ -1758,8 +1842,12 @@ 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, 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(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; @@ -1790,16 +1878,20 @@ namespace System 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; 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(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; } - // Generated from `System.Environment` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Environment` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Environment { - // Generated from `System.Environment+SpecialFolder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Environment+SpecialFolder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SpecialFolder { AdminTools, @@ -1852,7 +1944,7 @@ namespace System } - // Generated from `System.Environment+SpecialFolderOption` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Environment+SpecialFolderOption` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SpecialFolderOption { Create, @@ -1884,6 +1976,7 @@ 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 void SetEnvironmentVariable(string variable, string value) => throw null; public static void SetEnvironmentVariable(string variable, string value, System.EnvironmentVariableTarget target) => throw null; @@ -1899,7 +1992,7 @@ namespace System public static System.Int64 WorkingSet { get => throw null; } } - // Generated from `System.EnvironmentVariableTarget` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.EnvironmentVariableTarget` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EnvironmentVariableTarget { Machine, @@ -1907,20 +2000,20 @@ namespace System User, } - // Generated from `System.EventArgs` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.EventArgs` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventArgs { public static System.EventArgs Empty; public EventArgs() => throw null; } - // Generated from `System.EventHandler` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.EventHandler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void EventHandler(object sender, System.EventArgs e); - // Generated from `System.EventHandler<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.EventHandler<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void EventHandler(object sender, TEventArgs e); - // Generated from `System.Exception` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Exception` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Exception : System.Runtime.Serialization.ISerializable { public virtual System.Collections.IDictionary Data { get => throw null; } @@ -1942,7 +2035,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.ExecutionEngineException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ExecutionEngineException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExecutionEngineException : System.SystemException { public ExecutionEngineException() => throw null; @@ -1950,7 +2043,7 @@ namespace System public ExecutionEngineException(string message, System.Exception innerException) => throw null; } - // Generated from `System.FieldAccessException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.FieldAccessException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FieldAccessException : System.MemberAccessException { public FieldAccessException() => throw null; @@ -1959,19 +2052,19 @@ namespace System public FieldAccessException(string message, System.Exception inner) => throw null; } - // Generated from `System.FileStyleUriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.FileStyleUriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileStyleUriParser : System.UriParser { public FileStyleUriParser() => throw null; } - // Generated from `System.FlagsAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.FlagsAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FlagsAttribute : System.Attribute { public FlagsAttribute() => throw null; } - // Generated from `System.FormatException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.FormatException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FormatException : System.SystemException { public FormatException() => throw null; @@ -1980,7 +2073,7 @@ namespace System public FormatException(string message, System.Exception innerException) => throw null; } - // Generated from `System.FormattableString` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.FormattableString` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class FormattableString : System.IFormattable { public abstract int ArgumentCount { get; } @@ -1995,64 +2088,64 @@ namespace System string System.IFormattable.ToString(string ignored, System.IFormatProvider formatProvider) => throw null; } - // Generated from `System.FtpStyleUriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.FtpStyleUriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FtpStyleUriParser : System.UriParser { public FtpStyleUriParser() => throw null; } - // Generated from `System.Func<,,,,,,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Func<,,,,,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Func<,,,,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Func<,,,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Func<,,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Func<,,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); - // Generated from `System.Func<,,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10); - // Generated from `System.Func<,,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9); - // Generated from `System.Func<,,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8); - // Generated from `System.Func<,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); - // Generated from `System.Func<,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); - // Generated from `System.Func<,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); - // Generated from `System.Func<,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4); - // Generated from `System.Func<,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3); - // Generated from `System.Func<,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T1 arg1, T2 arg2); - // Generated from `System.Func<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(T arg); - // Generated from `System.Func<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Func<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TResult Func(); - // Generated from `System.GC` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.GC` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class GC { public static void AddMemoryPressure(System.Int64 bytesAllocated) => throw null; @@ -2090,7 +2183,7 @@ namespace System public static void WaitForPendingFinalizers() => throw null; } - // Generated from `System.GCCollectionMode` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.GCCollectionMode` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum GCCollectionMode { Default, @@ -2098,7 +2191,7 @@ namespace System Optimized, } - // Generated from `System.GCGenerationInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.GCGenerationInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GCGenerationInfo { public System.Int64 FragmentationAfterBytes { get => throw null; } @@ -2108,7 +2201,7 @@ namespace System public System.Int64 SizeBeforeBytes { get => throw null; } } - // Generated from `System.GCKind` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.GCKind` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum GCKind { Any, @@ -2117,7 +2210,7 @@ namespace System FullBlocking, } - // Generated from `System.GCMemoryInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.GCMemoryInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GCMemoryInfo { public bool Compacted { get => throw null; } @@ -2139,7 +2232,7 @@ namespace System public System.Int64 TotalCommittedBytes { get => throw null; } } - // Generated from `System.GCNotificationStatus` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.GCNotificationStatus` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum GCNotificationStatus { Canceled, @@ -2149,13 +2242,13 @@ namespace System Timeout, } - // Generated from `System.GenericUriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.GenericUriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GenericUriParser : System.UriParser { public GenericUriParser(System.GenericUriParserOptions options) => throw null; } - // Generated from `System.GenericUriParserOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.GenericUriParserOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum GenericUriParserOptions { @@ -2173,14 +2266,14 @@ namespace System NoUserInfo, } - // Generated from `System.GopherStyleUriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.GopherStyleUriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GopherStyleUriParser : System.UriParser { public GopherStyleUriParser() => throw null; } - // Generated from `System.Guid` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Guid : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable + // Generated from `System.Guid` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Guid : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable { public static bool operator !=(System.Guid a, System.Guid b) => throw null; public static bool operator ==(System.Guid a, System.Guid b) => throw null; @@ -2207,6 +2300,7 @@ namespace System 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 input, 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; @@ -2214,8 +2308,8 @@ namespace System public bool TryWriteBytes(System.Span destination) => throw null; } - // Generated from `System.Half` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Half : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable + // Generated from `System.Half` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Half : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable { public static bool operator !=(System.Half left, System.Half right) => throw null; public static bool operator <(System.Half left, System.Half right) => throw null; @@ -2263,11 +2357,12 @@ namespace System public static explicit operator System.Half(float value) => throw null; } - // Generated from `System.HashCode` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.HashCode` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -2282,19 +2377,19 @@ namespace System public int ToHashCode() => throw null; } - // Generated from `System.HttpStyleUriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.HttpStyleUriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HttpStyleUriParser : System.UriParser { public HttpStyleUriParser() => throw null; } - // Generated from `System.IAsyncDisposable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IAsyncDisposable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IAsyncDisposable { System.Threading.Tasks.ValueTask DisposeAsync(); } - // Generated from `System.IAsyncResult` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IAsyncResult` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IAsyncResult { object AsyncState { get; } @@ -2303,25 +2398,25 @@ namespace System bool IsCompleted { get; } } - // Generated from `System.ICloneable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ICloneable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICloneable { object Clone(); } - // Generated from `System.IComparable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IComparable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IComparable { int CompareTo(object obj); } - // Generated from `System.IComparable<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IComparable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IComparable { int CompareTo(T other); } - // Generated from `System.IConvertible` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IConvertible` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IConvertible { System.TypeCode GetTypeCode(); @@ -2343,43 +2438,43 @@ namespace System System.UInt64 ToUInt64(System.IFormatProvider provider); } - // Generated from `System.ICustomFormatter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ICustomFormatter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICustomFormatter { string Format(string format, object arg, System.IFormatProvider formatProvider); } - // Generated from `System.IDisposable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IDisposable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDisposable { void Dispose(); } - // Generated from `System.IEquatable<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IEquatable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEquatable { bool Equals(T other); } - // Generated from `System.IFormatProvider` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IFormatProvider` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IFormatProvider { object GetFormat(System.Type formatType); } - // Generated from `System.IFormattable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IFormattable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IFormattable { string ToString(string format, System.IFormatProvider formatProvider); } - // Generated from `System.IObservable<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IObservable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IObservable { System.IDisposable Subscribe(System.IObserver observer); } - // Generated from `System.IObserver<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IObserver<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IObserver { void OnCompleted(); @@ -2387,13 +2482,19 @@ namespace System void OnNext(T value); } - // Generated from `System.IProgress<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IProgress<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IProgress { void Report(T value); } - // Generated from `System.Index` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ISpanFormattable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public interface ISpanFormattable : System.IFormattable + { + bool TryFormat(System.Span destination, out int charsWritten, System.ReadOnlySpan format, System.IFormatProvider provider); + } + + // Generated from `System.Index` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Index : System.IEquatable { public static System.Index End { get => throw null; } @@ -2412,7 +2513,7 @@ namespace System public static implicit operator System.Index(int value) => throw null; } - // Generated from `System.IndexOutOfRangeException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IndexOutOfRangeException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IndexOutOfRangeException : System.SystemException { public IndexOutOfRangeException() => throw null; @@ -2420,7 +2521,7 @@ namespace System public IndexOutOfRangeException(string message, System.Exception innerException) => throw null; } - // Generated from `System.InsufficientExecutionStackException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.InsufficientExecutionStackException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InsufficientExecutionStackException : System.SystemException { public InsufficientExecutionStackException() => throw null; @@ -2428,7 +2529,7 @@ namespace System public InsufficientExecutionStackException(string message, System.Exception innerException) => throw null; } - // Generated from `System.InsufficientMemoryException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.InsufficientMemoryException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InsufficientMemoryException : System.OutOfMemoryException { public InsufficientMemoryException() => throw null; @@ -2436,8 +2537,8 @@ namespace System public InsufficientMemoryException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Int16` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Int16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.Int16` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Int16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { public int CompareTo(object value) => throw null; public int CompareTo(System.Int16 value) => throw null; @@ -2479,8 +2580,8 @@ namespace System public static bool TryParse(string s, out System.Int16 result) => throw null; } - // Generated from `System.Int32` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Int32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.Int32` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Int32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { public int CompareTo(int value) => throw null; public int CompareTo(object value) => throw null; @@ -2522,8 +2623,8 @@ namespace System public static bool TryParse(string s, out int result) => throw null; } - // Generated from `System.Int64` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Int64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.Int64` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Int64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { public int CompareTo(System.Int64 value) => throw null; public int CompareTo(object value) => throw null; @@ -2565,8 +2666,8 @@ namespace System public static bool TryParse(string s, out System.Int64 result) => throw null; } - // Generated from `System.IntPtr` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct IntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.Runtime.Serialization.ISerializable + // Generated from `System.IntPtr` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct IntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable, System.Runtime.Serialization.ISerializable { public static bool operator !=(System.IntPtr value1, System.IntPtr value2) => throw null; public static System.IntPtr operator +(System.IntPtr pointer, int offset) => throw null; @@ -2585,6 +2686,7 @@ namespace System public IntPtr(System.Int64 value) => throw null; public static System.IntPtr MaxValue { get => throw null; } public static System.IntPtr MinValue { get => 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; @@ -2598,6 +2700,9 @@ 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.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.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 System.IntPtr Zero; @@ -2609,7 +2714,7 @@ namespace System public static explicit operator System.IntPtr(System.Int64 value) => throw null; } - // Generated from `System.InvalidCastException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.InvalidCastException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidCastException : System.SystemException { public InvalidCastException() => throw null; @@ -2619,7 +2724,7 @@ namespace System public InvalidCastException(string message, int errorCode) => throw null; } - // Generated from `System.InvalidOperationException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.InvalidOperationException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidOperationException : System.SystemException { public InvalidOperationException() => throw null; @@ -2628,7 +2733,7 @@ namespace System public InvalidOperationException(string message, System.Exception innerException) => throw null; } - // Generated from `System.InvalidProgramException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.InvalidProgramException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidProgramException : System.SystemException { public InvalidProgramException() => throw null; @@ -2636,7 +2741,7 @@ namespace System public InvalidProgramException(string message, System.Exception inner) => throw null; } - // Generated from `System.InvalidTimeZoneException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.InvalidTimeZoneException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidTimeZoneException : System.Exception { public InvalidTimeZoneException() => throw null; @@ -2645,7 +2750,7 @@ namespace System public InvalidTimeZoneException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Lazy<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Lazy<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Lazy : System.Lazy { public Lazy(System.Func valueFactory, TMetadata metadata) => throw null; @@ -2657,7 +2762,7 @@ namespace System public TMetadata Metadata { get => throw null; } } - // Generated from `System.Lazy<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Lazy<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Lazy { public bool IsValueCreated { get => throw null; } @@ -2672,13 +2777,13 @@ namespace System public T Value { get => throw null; } } - // Generated from `System.LdapStyleUriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.LdapStyleUriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LdapStyleUriParser : System.UriParser { public LdapStyleUriParser() => throw null; } - // Generated from `System.LoaderOptimization` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.LoaderOptimization` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum LoaderOptimization { DisallowBindings, @@ -2689,7 +2794,7 @@ namespace System SingleDomain, } - // Generated from `System.LoaderOptimizationAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.LoaderOptimizationAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LoaderOptimizationAttribute : System.Attribute { public LoaderOptimizationAttribute(System.LoaderOptimization value) => throw null; @@ -2697,13 +2802,13 @@ namespace System public System.LoaderOptimization Value { get => throw null; } } - // Generated from `System.MTAThreadAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MTAThreadAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MTAThreadAttribute : System.Attribute { public MTAThreadAttribute() => throw null; } - // Generated from `System.MarshalByRefObject` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MarshalByRefObject` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MarshalByRefObject { public object GetLifetimeService() => throw null; @@ -2712,9 +2817,10 @@ namespace System protected System.MarshalByRefObject MemberwiseClone(bool cloneIdentity) => throw null; } - // Generated from `System.Math` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Math` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 double Abs(double value) => throw null; public static float Abs(float value) => throw null; @@ -2737,6 +2843,8 @@ namespace System public static double Cbrt(double d) => throw null; public static System.Decimal Ceiling(System.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 double Clamp(double value, double min, double max) => throw null; @@ -2751,8 +2859,18 @@ namespace System 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 double Exp(double d) => throw null; public static System.Decimal Floor(System.Decimal d) => throw null; @@ -2764,6 +2882,8 @@ 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 double Max(double val1, double val2) => throw null; @@ -2776,6 +2896,8 @@ namespace System 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 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 double Min(double val1, double val2) => throw null; @@ -2790,6 +2912,8 @@ namespace System public static double MinMagnitude(double x, double y) => throw null; 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; 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; @@ -2799,6 +2923,7 @@ namespace System 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 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(double value) => throw null; public static int Sign(float value) => throw null; @@ -2807,6 +2932,7 @@ namespace System public static int Sign(System.SByte value) => throw null; public static int Sign(System.Int16 value) => throw null; public static double Sin(double a) => throw null; + public static (double, double) 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; @@ -2816,7 +2942,7 @@ namespace System public static double Truncate(double d) => throw null; } - // Generated from `System.MathF` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MathF` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class MathF { public static float Abs(float x) => throw null; @@ -2850,6 +2976,8 @@ namespace System public static float MinMagnitude(float x, float y) => throw null; 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; 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; @@ -2857,6 +2985,7 @@ namespace System 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 Sinh(float x) => throw null; public static float Sqrt(float x) => throw null; public static float Tan(float x) => throw null; @@ -2865,7 +2994,7 @@ namespace System public static float Truncate(float x) => throw null; } - // Generated from `System.MemberAccessException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MemberAccessException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MemberAccessException : System.SystemException { public MemberAccessException() => throw null; @@ -2874,7 +3003,7 @@ namespace System public MemberAccessException(string message, System.Exception inner) => throw null; } - // Generated from `System.Memory<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Memory<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Memory : System.IEquatable> { public void CopyTo(System.Memory destination) => throw null; @@ -2899,7 +3028,7 @@ namespace System public static implicit operator System.Memory(T[] array) => throw null; } - // Generated from `System.MethodAccessException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MethodAccessException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MethodAccessException : System.MemberAccessException { public MethodAccessException() => throw null; @@ -2908,7 +3037,7 @@ namespace System public MethodAccessException(string message, System.Exception inner) => throw null; } - // Generated from `System.MidpointRounding` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MidpointRounding` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MidpointRounding { AwayFromZero, @@ -2918,7 +3047,7 @@ namespace System ToZero, } - // Generated from `System.MissingFieldException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MissingFieldException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MissingFieldException : System.MissingMemberException, System.Runtime.Serialization.ISerializable { public override string Message { get => throw null; } @@ -2929,7 +3058,7 @@ namespace System public MissingFieldException(string className, string fieldName) => throw null; } - // Generated from `System.MissingMemberException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MissingMemberException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MissingMemberException : System.MemberAccessException, System.Runtime.Serialization.ISerializable { protected string ClassName; @@ -2944,7 +3073,7 @@ namespace System protected System.Byte[] Signature; } - // Generated from `System.MissingMethodException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MissingMethodException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MissingMethodException : System.MissingMemberException { public override string Message { get => throw null; } @@ -2955,7 +3084,7 @@ namespace System public MissingMethodException(string className, string methodName) => throw null; } - // Generated from `System.ModuleHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ModuleHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ModuleHandle { public static bool operator !=(System.ModuleHandle left, System.ModuleHandle right) => throw null; @@ -2977,7 +3106,7 @@ namespace System public System.RuntimeTypeHandle ResolveTypeHandle(int typeToken, System.RuntimeTypeHandle[] typeInstantiationContext, System.RuntimeTypeHandle[] methodInstantiationContext) => throw null; } - // Generated from `System.MulticastDelegate` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MulticastDelegate` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MulticastDelegate : System.Delegate { public static bool operator !=(System.MulticastDelegate d1, System.MulticastDelegate d2) => throw null; @@ -2993,7 +3122,7 @@ namespace System protected override System.Delegate RemoveImpl(System.Delegate value) => throw null; } - // Generated from `System.MulticastNotSupportedException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.MulticastNotSupportedException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MulticastNotSupportedException : System.SystemException { public MulticastNotSupportedException() => throw null; @@ -3001,31 +3130,31 @@ namespace System public MulticastNotSupportedException(string message, System.Exception inner) => throw null; } - // Generated from `System.NetPipeStyleUriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.NetPipeStyleUriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NetPipeStyleUriParser : System.UriParser { public NetPipeStyleUriParser() => throw null; } - // Generated from `System.NetTcpStyleUriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.NetTcpStyleUriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NetTcpStyleUriParser : System.UriParser { public NetTcpStyleUriParser() => throw null; } - // Generated from `System.NewsStyleUriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.NewsStyleUriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NewsStyleUriParser : System.UriParser { public NewsStyleUriParser() => throw null; } - // Generated from `System.NonSerializedAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.NonSerializedAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NonSerializedAttribute : System.Attribute { public NonSerializedAttribute() => throw null; } - // Generated from `System.NotFiniteNumberException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.NotFiniteNumberException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NotFiniteNumberException : System.ArithmeticException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -3039,7 +3168,7 @@ namespace System public double OffendingNumber { get => throw null; } } - // Generated from `System.NotImplementedException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.NotImplementedException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NotImplementedException : System.SystemException { public NotImplementedException() => throw null; @@ -3048,7 +3177,7 @@ namespace System public NotImplementedException(string message, System.Exception inner) => throw null; } - // Generated from `System.NotSupportedException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.NotSupportedException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NotSupportedException : System.SystemException { public NotSupportedException() => throw null; @@ -3057,7 +3186,7 @@ namespace System public NotSupportedException(string message, System.Exception innerException) => throw null; } - // Generated from `System.NullReferenceException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.NullReferenceException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NullReferenceException : System.SystemException { public NullReferenceException() => throw null; @@ -3066,7 +3195,7 @@ namespace System public NullReferenceException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Nullable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Nullable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Nullable { public static int Compare(T? n1, T? n2) where T : struct => throw null; @@ -3074,7 +3203,7 @@ namespace System public static System.Type GetUnderlyingType(System.Type nullableType) => throw null; } - // Generated from `System.Nullable<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Nullable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Nullable where T : struct { public override bool Equals(object other) => throw null; @@ -3090,7 +3219,7 @@ namespace System public static implicit operator System.Nullable(T value) => throw null; } - // Generated from `System.Object` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Object` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Object { public virtual bool Equals(object obj) => throw null; @@ -3104,7 +3233,7 @@ namespace System // ERR: Stub generator didn't handle member: ~Object } - // Generated from `System.ObjectDisposedException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ObjectDisposedException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObjectDisposedException : System.InvalidOperationException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -3116,7 +3245,7 @@ namespace System public string ObjectName { get => throw null; } } - // Generated from `System.ObsoleteAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ObsoleteAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObsoleteAttribute : System.Attribute { public string DiagnosticId { get => throw null; set => throw null; } @@ -3128,7 +3257,7 @@ namespace System public string UrlFormat { get => throw null; set => throw null; } } - // Generated from `System.OperatingSystem` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.OperatingSystem` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OperatingSystem : System.ICloneable, System.Runtime.Serialization.ISerializable { public object Clone() => throw null; @@ -3141,6 +3270,8 @@ namespace System public static bool IsIOS() => throw null; public static bool IsIOSVersionAtLeast(int major, int minor = default(int), int build = default(int)) => throw null; public static bool IsLinux() => throw null; + public static bool IsMacCatalyst() => throw null; + public static bool IsMacCatalystVersionAtLeast(int major, int minor = default(int), int build = default(int)) => throw null; public static bool IsMacOS() => throw null; public static bool IsMacOSVersionAtLeast(int major, int minor = default(int), int build = default(int)) => throw null; public static bool IsOSPlatform(string platform) => throw null; @@ -3159,7 +3290,7 @@ namespace System public string VersionString { get => throw null; } } - // Generated from `System.OperationCanceledException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.OperationCanceledException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OperationCanceledException : System.SystemException { public System.Threading.CancellationToken CancellationToken { get => throw null; } @@ -3172,7 +3303,7 @@ namespace System public OperationCanceledException(string message, System.Exception innerException, System.Threading.CancellationToken token) => throw null; } - // Generated from `System.OutOfMemoryException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.OutOfMemoryException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OutOfMemoryException : System.SystemException { public OutOfMemoryException() => throw null; @@ -3181,7 +3312,7 @@ namespace System public OutOfMemoryException(string message, System.Exception innerException) => throw null; } - // Generated from `System.OverflowException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.OverflowException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OverflowException : System.ArithmeticException { public OverflowException() => throw null; @@ -3190,13 +3321,13 @@ namespace System public OverflowException(string message, System.Exception innerException) => throw null; } - // Generated from `System.ParamArrayAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ParamArrayAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ParamArrayAttribute : System.Attribute { public ParamArrayAttribute() => throw null; } - // Generated from `System.PlatformID` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.PlatformID` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PlatformID { MacOSX, @@ -3209,7 +3340,7 @@ namespace System Xbox, } - // Generated from `System.PlatformNotSupportedException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.PlatformNotSupportedException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PlatformNotSupportedException : System.NotSupportedException { public PlatformNotSupportedException() => throw null; @@ -3218,10 +3349,10 @@ namespace System public PlatformNotSupportedException(string message, System.Exception inner) => throw null; } - // Generated from `System.Predicate<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Predicate<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate bool Predicate(T obj); - // Generated from `System.Progress<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Progress<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Progress : System.IProgress { protected virtual void OnReport(T value) => throw null; @@ -3231,7 +3362,7 @@ namespace System void System.IProgress.Report(T value) => throw null; } - // Generated from `System.Random` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Random` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Random { public virtual int Next() => throw null; @@ -3240,12 +3371,17 @@ namespace System public virtual void NextBytes(System.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 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; } } - // Generated from `System.Range` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Range` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Range : System.IEquatable { public static System.Range All { get => throw null; } @@ -3262,7 +3398,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.RankException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.RankException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RankException : System.SystemException { public RankException() => throw null; @@ -3271,7 +3407,7 @@ namespace System public RankException(string message, System.Exception innerException) => throw null; } - // Generated from `System.ReadOnlyMemory<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ReadOnlyMemory<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ReadOnlyMemory : System.IEquatable> { public void CopyTo(System.Memory destination) => throw null; @@ -3295,10 +3431,10 @@ namespace System public static implicit operator System.ReadOnlyMemory(T[] array) => throw null; } - // Generated from `System.ReadOnlySpan<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ReadOnlySpan<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ReadOnlySpan { - // Generated from `System.ReadOnlySpan<>+Enumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ReadOnlySpan<>+Enumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator { public T Current { get => throw null; } @@ -3331,7 +3467,7 @@ namespace System public static implicit operator System.ReadOnlySpan(T[] array) => throw null; } - // Generated from `System.ResolveEventArgs` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ResolveEventArgs` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ResolveEventArgs : System.EventArgs { public string Name { get => throw null; } @@ -3340,16 +3476,16 @@ namespace System public ResolveEventArgs(string name, System.Reflection.Assembly requestingAssembly) => throw null; } - // Generated from `System.ResolveEventHandler` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ResolveEventHandler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate System.Reflection.Assembly ResolveEventHandler(object sender, System.ResolveEventArgs args); - // Generated from `System.RuntimeArgumentHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.RuntimeArgumentHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct RuntimeArgumentHandle { // Stub generator skipped constructor } - // Generated from `System.RuntimeFieldHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.RuntimeFieldHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct RuntimeFieldHandle : System.Runtime.Serialization.ISerializable { public static bool operator !=(System.RuntimeFieldHandle left, System.RuntimeFieldHandle right) => throw null; @@ -3362,7 +3498,7 @@ namespace System public System.IntPtr Value { get => throw null; } } - // Generated from `System.RuntimeMethodHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.RuntimeMethodHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct RuntimeMethodHandle : System.Runtime.Serialization.ISerializable { public static bool operator !=(System.RuntimeMethodHandle left, System.RuntimeMethodHandle right) => throw null; @@ -3376,7 +3512,7 @@ namespace System public System.IntPtr Value { get => throw null; } } - // Generated from `System.RuntimeTypeHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.RuntimeTypeHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct RuntimeTypeHandle : System.Runtime.Serialization.ISerializable { public static bool operator !=(System.RuntimeTypeHandle left, object right) => throw null; @@ -3392,8 +3528,8 @@ namespace System public System.IntPtr Value { get => throw null; } } - // Generated from `System.SByte` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct SByte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.SByte` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct SByte : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { public int CompareTo(object obj) => throw null; public int CompareTo(System.SByte value) => throw null; @@ -3435,20 +3571,20 @@ namespace System public static bool TryParse(string s, out System.SByte result) => throw null; } - // Generated from `System.STAThreadAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.STAThreadAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class STAThreadAttribute : System.Attribute { public STAThreadAttribute() => throw null; } - // Generated from `System.SerializableAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.SerializableAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SerializableAttribute : System.Attribute { public SerializableAttribute() => throw null; } - // Generated from `System.Single` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Single : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.Single` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct Single : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { public static bool operator !=(float left, float right) => throw null; public static bool operator <(float left, float right) => throw null; @@ -3508,10 +3644,10 @@ namespace System public static bool TryParse(string s, out float result) => throw null; } - // Generated from `System.Span<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Span<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Span { - // Generated from `System.Span<>+Enumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Span<>+Enumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator { public T Current { get => throw null; } @@ -3547,7 +3683,7 @@ namespace System public static implicit operator System.Span(T[] array) => throw null; } - // Generated from `System.StackOverflowException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.StackOverflowException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StackOverflowException : System.SystemException { public StackOverflowException() => throw null; @@ -3555,7 +3691,7 @@ namespace System public StackOverflowException(string message, System.Exception innerException) => throw null; } - // Generated from `System.String` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.String` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; @@ -3595,7 +3731,10 @@ namespace System 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 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 Empty; public bool EndsWith(System.Char value) => throw null; @@ -3679,6 +3818,8 @@ namespace System 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 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; @@ -3738,10 +3879,11 @@ namespace System 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; } - // Generated from `System.StringComparer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.StringComparer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -3757,12 +3899,14 @@ namespace System public abstract int GetHashCode(string obj); public static System.StringComparer InvariantCulture { get => throw null; } public static System.StringComparer InvariantCultureIgnoreCase { get => throw null; } + public static bool IsWellKnownCultureAwareComparer(System.Collections.Generic.IEqualityComparer comparer, out System.Globalization.CompareInfo compareInfo, out System.Globalization.CompareOptions compareOptions) => throw null; + 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; } - // Generated from `System.StringComparison` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.StringComparison` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum StringComparison { CurrentCulture, @@ -3773,7 +3917,7 @@ namespace System OrdinalIgnoreCase, } - // Generated from `System.StringNormalizationExtensions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.StringNormalizationExtensions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class StringNormalizationExtensions { public static bool IsNormalized(this string strInput) => throw null; @@ -3782,7 +3926,7 @@ namespace System public static string Normalize(this string strInput, System.Text.NormalizationForm normalizationForm) => throw null; } - // Generated from `System.StringSplitOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.StringSplitOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum StringSplitOptions { @@ -3791,7 +3935,7 @@ namespace System TrimEntries, } - // Generated from `System.SystemException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.SystemException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SystemException : System.Exception { public SystemException() => throw null; @@ -3800,14 +3944,82 @@ namespace System public SystemException(string message, System.Exception innerException) => throw null; } - // Generated from `System.ThreadStaticAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ThreadStaticAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ThreadStaticAttribute : System.Attribute { public ThreadStaticAttribute() => throw null; } - // Generated from `System.TimeSpan` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct TimeSpan : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable + // Generated from `System.TimeOnly` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct TimeOnly : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable + { + 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 override bool Equals(object 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; + public int Hour { get => throw null; } + public bool IsBetween(System.TimeOnly start, System.TimeOnly end) => throw null; + public static System.TimeOnly MaxValue { 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 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, 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(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 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(System.Int64 ticks) => throw null; + public string ToLongTimeString() => throw null; + public string ToShortTimeString() => 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.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, 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, 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(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; + } + + // Generated from `System.TimeSpan` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct TimeSpan : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable { public static bool operator !=(System.TimeSpan t1, System.TimeSpan t2) => throw null; public static System.TimeSpan operator *(System.TimeSpan timeSpan, double factor) => throw null; @@ -3894,7 +4106,7 @@ namespace System public static System.TimeSpan Zero; } - // Generated from `System.TimeZone` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TimeZone` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TimeZone { public static System.TimeZone CurrentTimeZone { get => throw null; } @@ -3909,13 +4121,15 @@ namespace System public virtual System.DateTime ToUniversalTime(System.DateTime time) => throw null; } - // Generated from `System.TimeZoneInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TimeZoneInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TimeZoneInfo : System.IEquatable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { - // Generated from `System.TimeZoneInfo+AdjustmentRule` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TimeZoneInfo+AdjustmentRule` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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; + public static System.TimeZoneInfo.AdjustmentRule CreateAdjustmentRule(System.DateTime dateStart, System.DateTime dateEnd, System.TimeSpan daylightDelta, System.TimeZoneInfo.TransitionTime daylightTransitionStart, System.TimeZoneInfo.TransitionTime daylightTransitionEnd, System.TimeSpan baseUtcOffsetDelta) => throw null; public System.DateTime DateEnd { get => throw null; } public System.DateTime DateStart { get => throw null; } public System.TimeSpan DaylightDelta { get => throw null; } @@ -3928,7 +4142,7 @@ namespace System } - // Generated from `System.TimeZoneInfo+TransitionTime` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TimeZoneInfo+TransitionTime` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -3978,6 +4192,7 @@ namespace System public static System.Collections.ObjectModel.ReadOnlyCollection GetSystemTimeZones() => throw null; public System.TimeSpan GetUtcOffset(System.DateTime dateTime) => throw null; public System.TimeSpan GetUtcOffset(System.DateTimeOffset dateTimeOffset) => throw null; + public bool HasIanaId { get => throw null; } public bool HasSameRules(System.TimeZoneInfo other) => throw null; public string Id { get => throw null; } public bool IsAmbiguousTime(System.DateTime dateTime) => throw null; @@ -3991,10 +4206,13 @@ namespace System public bool SupportsDaylightSavingTime { get => throw null; } public string ToSerializedString() => throw null; public override string ToString() => 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 System.TimeZoneInfo Utc { get => throw null; } } - // Generated from `System.TimeZoneNotFoundException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TimeZoneNotFoundException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TimeZoneNotFoundException : System.Exception { public TimeZoneNotFoundException() => throw null; @@ -4003,7 +4221,7 @@ namespace System public TimeZoneNotFoundException(string message, System.Exception innerException) => throw null; } - // Generated from `System.TimeoutException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TimeoutException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TimeoutException : System.SystemException { public TimeoutException() => throw null; @@ -4012,7 +4230,7 @@ namespace System public TimeoutException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Tuple` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Tuple` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -4025,7 +4243,7 @@ namespace System public static System.Tuple Create(T1 item1) => throw null; } - // Generated from `System.Tuple<,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Tuple<,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple { int System.IComparable.CompareTo(object obj) => throw null; @@ -4048,7 +4266,7 @@ namespace System public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest) => throw null; } - // Generated from `System.Tuple<,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Tuple<,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple { int System.IComparable.CompareTo(object obj) => throw null; @@ -4070,7 +4288,7 @@ namespace System public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; } - // Generated from `System.Tuple<,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Tuple<,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple { int System.IComparable.CompareTo(object obj) => throw null; @@ -4091,7 +4309,7 @@ namespace System public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; } - // Generated from `System.Tuple<,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Tuple<,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple { int System.IComparable.CompareTo(object obj) => throw null; @@ -4111,7 +4329,7 @@ namespace System public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; } - // Generated from `System.Tuple<,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Tuple<,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple { int System.IComparable.CompareTo(object obj) => throw null; @@ -4130,7 +4348,7 @@ namespace System public Tuple(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; } - // Generated from `System.Tuple<,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Tuple<,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple { int System.IComparable.CompareTo(object obj) => throw null; @@ -4148,7 +4366,7 @@ namespace System public Tuple(T1 item1, T2 item2, T3 item3) => throw null; } - // Generated from `System.Tuple<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Tuple<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple { int System.IComparable.CompareTo(object obj) => throw null; @@ -4165,7 +4383,7 @@ namespace System public Tuple(T1 item1, T2 item2) => throw null; } - // Generated from `System.Tuple<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Tuple<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Tuple : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable, System.Runtime.CompilerServices.ITuple { int System.IComparable.CompareTo(object obj) => throw null; @@ -4181,7 +4399,7 @@ namespace System public Tuple(T1 item1) => throw null; } - // Generated from `System.TupleExtensions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TupleExtensions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -4249,7 +4467,7 @@ namespace System public static System.ValueTuple ToValueTuple(this System.Tuple value) => throw null; } - // Generated from `System.Type` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Type` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Type : System.Reflection.MemberInfo, System.Reflection.IReflect { public static bool operator !=(System.Type left, System.Type right) => throw null; @@ -4280,6 +4498,7 @@ namespace System protected abstract System.Reflection.TypeAttributes GetAttributeFlagsImpl(); public System.Reflection.ConstructorInfo GetConstructor(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; public System.Reflection.ConstructorInfo GetConstructor(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) => throw null; + public System.Reflection.ConstructorInfo GetConstructor(System.Reflection.BindingFlags bindingAttr, System.Type[] types) => throw null; public System.Reflection.ConstructorInfo GetConstructor(System.Type[] types) => throw null; protected abstract System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers); public System.Reflection.ConstructorInfo[] GetConstructors() => throw null; @@ -4309,12 +4528,14 @@ 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 System.Reflection.MethodInfo GetMethod(string name) => 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; @@ -4445,7 +4666,7 @@ namespace System public abstract System.Type UnderlyingSystemType { get; } } - // Generated from `System.TypeAccessException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TypeAccessException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeAccessException : System.TypeLoadException { public TypeAccessException() => throw null; @@ -4454,7 +4675,7 @@ namespace System public TypeAccessException(string message, System.Exception inner) => throw null; } - // Generated from `System.TypeCode` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TypeCode` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TypeCode { Boolean, @@ -4477,7 +4698,7 @@ namespace System UInt64, } - // Generated from `System.TypeInitializationException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TypeInitializationException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeInitializationException : System.SystemException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -4485,7 +4706,7 @@ namespace System public string TypeName { get => throw null; } } - // Generated from `System.TypeLoadException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TypeLoadException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -4497,7 +4718,7 @@ namespace System public string TypeName { get => throw null; } } - // Generated from `System.TypeUnloadedException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TypeUnloadedException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeUnloadedException : System.SystemException { public TypeUnloadedException() => throw null; @@ -4506,7 +4727,7 @@ namespace System public TypeUnloadedException(string message, System.Exception innerException) => throw null; } - // Generated from `System.TypedReference` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.TypedReference` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TypedReference { public override bool Equals(object o) => throw null; @@ -4519,8 +4740,8 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.UInt16` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct UInt16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.UInt16` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct UInt16 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { public int CompareTo(object value) => throw null; public int CompareTo(System.UInt16 value) => throw null; @@ -4562,8 +4783,8 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.UInt32` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct UInt32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.UInt32` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct UInt32 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { public int CompareTo(object value) => throw null; public int CompareTo(System.UInt32 value) => throw null; @@ -4605,8 +4826,8 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.UInt64` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct UInt64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable + // Generated from `System.UInt64` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct UInt64 : System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable, System.ISpanFormattable { public int CompareTo(object value) => throw null; public int CompareTo(System.UInt64 value) => throw null; @@ -4648,8 +4869,8 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.UIntPtr` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct UIntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.Runtime.Serialization.ISerializable + // Generated from `System.UIntPtr` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct UIntPtr : System.IComparable, System.IComparable, System.IEquatable, System.IFormattable, System.ISpanFormattable, System.Runtime.Serialization.ISerializable { public static bool operator !=(System.UIntPtr value1, System.UIntPtr value2) => throw null; public static System.UIntPtr operator +(System.UIntPtr pointer, int offset) => throw null; @@ -4664,6 +4885,7 @@ namespace System void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; public static System.UIntPtr MaxValue { get => throw null; } public static System.UIntPtr MinValue { get => 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; @@ -4677,6 +4899,9 @@ namespace System public string ToString(string format, System.IFormatProvider provider) => throw null; public System.UInt32 ToUInt32() => throw null; public System.UInt64 ToUInt64() => 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.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.Globalization.NumberStyles style, System.IFormatProvider provider, out System.UIntPtr result) => throw null; public static bool TryParse(string s, out System.UIntPtr result) => throw null; // Stub generator skipped constructor @@ -4692,7 +4917,7 @@ namespace System public static explicit operator System.UIntPtr(System.UInt64 value) => throw null; } - // Generated from `System.UnauthorizedAccessException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UnauthorizedAccessException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnauthorizedAccessException : System.SystemException { public UnauthorizedAccessException() => throw null; @@ -4701,7 +4926,7 @@ namespace System public UnauthorizedAccessException(string message, System.Exception inner) => throw null; } - // Generated from `System.UnhandledExceptionEventArgs` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UnhandledExceptionEventArgs` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnhandledExceptionEventArgs : System.EventArgs { public object ExceptionObject { get => throw null; } @@ -4709,10 +4934,10 @@ namespace System public UnhandledExceptionEventArgs(object exception, bool isTerminating) => throw null; } - // Generated from `System.UnhandledExceptionEventHandler` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UnhandledExceptionEventHandler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void UnhandledExceptionEventHandler(object sender, System.UnhandledExceptionEventArgs e); - // Generated from `System.Uri` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Uri` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Uri : System.Runtime.Serialization.ISerializable { public static bool operator !=(System.Uri uri1, System.Uri uri2) => throw null; @@ -4770,6 +4995,7 @@ namespace System 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, System.UriKind uriKind, out System.Uri result) => throw null; protected virtual string Unescape(string path) => throw null; public static string UnescapeDataString(string stringToUnescape) => throw null; @@ -4778,10 +5004,12 @@ namespace System 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; public static string UriSchemeGopher; public static string UriSchemeHttp; public static string UriSchemeHttps; @@ -4790,11 +5018,16 @@ namespace System 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 bool UserEscaped { get => throw null; } public string UserInfo { get => throw null; } } - // Generated from `System.UriBuilder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UriBuilder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UriBuilder { public override bool Equals(object rparam) => throw null; @@ -4818,7 +5051,7 @@ namespace System public string UserName { get => throw null; set => throw null; } } - // Generated from `System.UriComponents` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UriComponents` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum UriComponents { @@ -4841,7 +5074,14 @@ namespace System UserInfo, } - // Generated from `System.UriFormat` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UriCreationOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct UriCreationOptions + { + public bool DangerousDisablePathAndQueryCanonicalization { get => throw null; set => throw null; } + // Stub generator skipped constructor + } + + // Generated from `System.UriFormat` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UriFormat { SafeUnescaped, @@ -4849,7 +5089,7 @@ namespace System UriEscaped, } - // Generated from `System.UriFormatException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UriFormatException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -4859,7 +5099,7 @@ namespace System public UriFormatException(string textString, System.Exception e) => throw null; } - // Generated from `System.UriHostNameType` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UriHostNameType` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UriHostNameType { Basic, @@ -4869,7 +5109,7 @@ namespace System Unknown, } - // Generated from `System.UriKind` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UriKind` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UriKind { Absolute, @@ -4877,7 +5117,7 @@ namespace System RelativeOrAbsolute, } - // Generated from `System.UriParser` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UriParser` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class UriParser { protected virtual string GetComponents(System.Uri uri, System.UriComponents components, System.UriFormat format) => throw null; @@ -4892,7 +5132,7 @@ namespace System protected UriParser() => throw null; } - // Generated from `System.UriPartial` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.UriPartial` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UriPartial { Authority, @@ -4901,7 +5141,7 @@ namespace System Scheme, } - // Generated from `System.ValueTuple` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueTuple` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -4927,7 +5167,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.ValueTuple<,,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueTuple<,,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -4953,7 +5193,7 @@ namespace System public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest) => throw null; } - // Generated from `System.ValueTuple<,,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueTuple<,,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -4978,7 +5218,7 @@ namespace System public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) => throw null; } - // Generated from `System.ValueTuple<,,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueTuple<,,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5002,7 +5242,7 @@ namespace System public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) => throw null; } - // Generated from `System.ValueTuple<,,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueTuple<,,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5025,7 +5265,7 @@ namespace System public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) => throw null; } - // Generated from `System.ValueTuple<,,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueTuple<,,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5047,7 +5287,7 @@ namespace System public ValueTuple(T1 item1, T2 item2, T3 item3, T4 item4) => throw null; } - // Generated from `System.ValueTuple<,,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueTuple<,,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5068,7 +5308,7 @@ namespace System public ValueTuple(T1 item1, T2 item2, T3 item3) => throw null; } - // Generated from `System.ValueTuple<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueTuple<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5088,7 +5328,7 @@ namespace System public ValueTuple(T1 item1, T2 item2) => throw null; } - // Generated from `System.ValueTuple<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueTuple<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5107,7 +5347,7 @@ namespace System public ValueTuple(T1 item1) => throw null; } - // Generated from `System.ValueType` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ValueType` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ValueType { public override bool Equals(object obj) => throw null; @@ -5116,8 +5356,8 @@ namespace System protected ValueType() => throw null; } - // Generated from `System.Version` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class Version : System.ICloneable, System.IComparable, System.IComparable, System.IEquatable + // Generated from `System.Version` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; @@ -5141,8 +5381,10 @@ namespace System 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 Version() => throw null; @@ -5152,12 +5394,12 @@ namespace System public Version(string version) => throw null; } - // Generated from `System.Void` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Void` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Void { } - // Generated from `System.WeakReference` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.WeakReference` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class WeakReference : System.Runtime.Serialization.ISerializable { public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -5170,7 +5412,7 @@ namespace System // ERR: Stub generator didn't handle member: ~WeakReference } - // Generated from `System.WeakReference<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.WeakReference<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class WeakReference : System.Runtime.Serialization.ISerializable where T : class { public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -5183,7 +5425,7 @@ namespace System namespace Buffers { - // Generated from `System.Buffers.ArrayPool<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Buffers.ArrayPool<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ArrayPool { protected ArrayPool() => throw null; @@ -5194,20 +5436,20 @@ namespace System public static System.Buffers.ArrayPool Shared { get => throw null; } } - // Generated from `System.Buffers.IMemoryOwner<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Buffers.IMemoryOwner<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IMemoryOwner : System.IDisposable { System.Memory Memory { get; } } - // Generated from `System.Buffers.IPinnable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Buffers.IPinnable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IPinnable { System.Buffers.MemoryHandle Pin(int elementIndex); void Unpin(); } - // Generated from `System.Buffers.MemoryHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Buffers.MemoryHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct MemoryHandle : System.IDisposable { public void Dispose() => throw null; @@ -5216,7 +5458,7 @@ namespace System unsafe public void* Pointer { get => throw null; } } - // Generated from `System.Buffers.MemoryManager<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Buffers.MemoryManager<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MemoryManager : System.Buffers.IMemoryOwner, System.Buffers.IPinnable, System.IDisposable { protected System.Memory CreateMemory(int length) => throw null; @@ -5231,7 +5473,7 @@ namespace System public abstract void Unpin(); } - // Generated from `System.Buffers.OperationStatus` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Buffers.OperationStatus` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum OperationStatus { DestinationTooSmall, @@ -5240,10 +5482,10 @@ namespace System NeedMoreData, } - // Generated from `System.Buffers.ReadOnlySpanAction<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Buffers.ReadOnlySpanAction<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ReadOnlySpanAction(System.ReadOnlySpan span, TArg arg); - // Generated from `System.Buffers.SpanAction<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Buffers.SpanAction<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void SpanAction(System.Span span, TArg arg); } @@ -5251,7 +5493,7 @@ namespace System { namespace Compiler { - // Generated from `System.CodeDom.Compiler.GeneratedCodeAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.CodeDom.Compiler.GeneratedCodeAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GeneratedCodeAttribute : System.Attribute { public GeneratedCodeAttribute(string tool, string version) => throw null; @@ -5259,19 +5501,22 @@ namespace System public string Version { get => throw null; } } - // Generated from `System.CodeDom.Compiler.IndentedTextWriter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.CodeDom.Compiler.IndentedTextWriter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5285,6 +5530,11 @@ namespace System 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; @@ -5300,14 +5550,21 @@ namespace System 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 { - // Generated from `System.Collections.ArrayList` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ArrayList` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5364,7 +5621,7 @@ namespace System public virtual void TrimToSize() => throw null; } - // Generated from `System.Collections.Comparer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Comparer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable { public int Compare(object a, object b) => throw null; @@ -5374,7 +5631,7 @@ namespace System public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; } - // Generated from `System.Collections.DictionaryEntry` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.DictionaryEntry` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DictionaryEntry { public void Deconstruct(out object key, out object value) => throw null; @@ -5384,7 +5641,7 @@ namespace System public object Value { get => throw null; set => throw null; } } - // Generated from `System.Collections.Hashtable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Hashtable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5431,7 +5688,7 @@ namespace System protected System.Collections.IHashCodeProvider hcp { get => throw null; set => throw null; } } - // Generated from `System.Collections.ICollection` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ICollection` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICollection : System.Collections.IEnumerable { void CopyTo(System.Array array, int index); @@ -5440,13 +5697,13 @@ namespace System object SyncRoot { get; } } - // Generated from `System.Collections.IComparer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IComparer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IComparer { int Compare(object x, object y); } - // Generated from `System.Collections.IDictionary` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IDictionary` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDictionary : System.Collections.ICollection, System.Collections.IEnumerable { void Add(object key, object value); @@ -5461,7 +5718,7 @@ namespace System System.Collections.ICollection Values { get; } } - // Generated from `System.Collections.IDictionaryEnumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IDictionaryEnumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDictionaryEnumerator : System.Collections.IEnumerator { System.Collections.DictionaryEntry Entry { get; } @@ -5469,13 +5726,13 @@ namespace System object Value { get; } } - // Generated from `System.Collections.IEnumerable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IEnumerable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumerable { System.Collections.IEnumerator GetEnumerator(); } - // Generated from `System.Collections.IEnumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IEnumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumerator { object Current { get; } @@ -5483,20 +5740,20 @@ namespace System void Reset(); } - // Generated from `System.Collections.IEqualityComparer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IEqualityComparer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEqualityComparer { bool Equals(object x, object y); int GetHashCode(object obj); } - // Generated from `System.Collections.IHashCodeProvider` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IHashCodeProvider` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IHashCodeProvider { int GetHashCode(object obj); } - // Generated from `System.Collections.IList` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IList` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IList : System.Collections.ICollection, System.Collections.IEnumerable { int Add(object value); @@ -5511,13 +5768,13 @@ namespace System void RemoveAt(int index); } - // Generated from `System.Collections.IStructuralComparable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IStructuralComparable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IStructuralComparable { int CompareTo(object other, System.Collections.IComparer comparer); } - // Generated from `System.Collections.IStructuralEquatable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.IStructuralEquatable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IStructuralEquatable { bool Equals(object other, System.Collections.IEqualityComparer comparer); @@ -5526,20 +5783,20 @@ namespace System namespace Generic { - // Generated from `System.Collections.Generic.IAsyncEnumerable<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IAsyncEnumerable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IAsyncEnumerable { System.Collections.Generic.IAsyncEnumerator GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } - // Generated from `System.Collections.Generic.IAsyncEnumerator<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IAsyncEnumerator<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IAsyncEnumerator : System.IAsyncDisposable { T Current { get; } System.Threading.Tasks.ValueTask MoveNextAsync(); } - // Generated from `System.Collections.Generic.ICollection<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.ICollection<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { void Add(T item); @@ -5551,13 +5808,13 @@ namespace System bool Remove(T item); } - // Generated from `System.Collections.Generic.IComparer<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IComparer<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IComparer { int Compare(T x, T y); } - // Generated from `System.Collections.Generic.IDictionary<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IDictionary<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDictionary : System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable { void Add(TKey key, TValue value); @@ -5569,26 +5826,26 @@ namespace System System.Collections.Generic.ICollection Values { get; } } - // Generated from `System.Collections.Generic.IEnumerable<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IEnumerable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumerable : System.Collections.IEnumerable { System.Collections.Generic.IEnumerator GetEnumerator(); } - // Generated from `System.Collections.Generic.IEnumerator<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IEnumerator<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEnumerator : System.Collections.IEnumerator, System.IDisposable { T Current { get; } } - // Generated from `System.Collections.Generic.IEqualityComparer<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IEqualityComparer<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IEqualityComparer { bool Equals(T x, T y); int GetHashCode(T obj); } - // Generated from `System.Collections.Generic.IList<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IList<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IList : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { int IndexOf(T item); @@ -5597,13 +5854,13 @@ namespace System void RemoveAt(int index); } - // Generated from `System.Collections.Generic.IReadOnlyCollection<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IReadOnlyCollection<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IReadOnlyCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { int Count { get; } } - // Generated from `System.Collections.Generic.IReadOnlyDictionary<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IReadOnlyDictionary<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IReadOnlyDictionary : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.IEnumerable { bool ContainsKey(TKey key); @@ -5613,13 +5870,13 @@ namespace System System.Collections.Generic.IEnumerable Values { get; } } - // Generated from `System.Collections.Generic.IReadOnlyList<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IReadOnlyList<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IReadOnlyList : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { T this[int index] { get; } } - // Generated from `System.Collections.Generic.IReadOnlySet<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.IReadOnlySet<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IReadOnlySet : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable { bool Contains(T item); @@ -5631,7 +5888,7 @@ namespace System bool SetEquals(System.Collections.Generic.IEnumerable other); } - // Generated from `System.Collections.Generic.ISet<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.ISet<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISet : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { bool Add(T item); @@ -5647,7 +5904,7 @@ namespace System void UnionWith(System.Collections.Generic.IEnumerable other); } - // Generated from `System.Collections.Generic.KeyNotFoundException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.KeyNotFoundException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class KeyNotFoundException : System.SystemException { public KeyNotFoundException() => throw null; @@ -5656,13 +5913,13 @@ namespace System public KeyNotFoundException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Collections.Generic.KeyValuePair` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.KeyValuePair` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class KeyValuePair { public static System.Collections.Generic.KeyValuePair Create(TKey key, TValue value) => throw null; } - // Generated from `System.Collections.Generic.KeyValuePair<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.Generic.KeyValuePair<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct KeyValuePair { public void Deconstruct(out TKey key, out TValue value) => throw null; @@ -5676,7 +5933,7 @@ namespace System } namespace ObjectModel { - // Generated from `System.Collections.ObjectModel.Collection<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ObjectModel.Collection<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5712,7 +5969,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Collections.ObjectModel.ReadOnlyCollection<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Collections.ObjectModel.ReadOnlyCollection<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -5750,7 +6007,7 @@ namespace System } namespace ComponentModel { - // Generated from `System.ComponentModel.DefaultValueAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.DefaultValueAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultValueAttribute : System.Attribute { public DefaultValueAttribute(System.Type type, string value) => throw null; @@ -5774,7 +6031,7 @@ namespace System public virtual object Value { get => throw null; } } - // Generated from `System.ComponentModel.EditorBrowsableAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.EditorBrowsableAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EditorBrowsableAttribute : System.Attribute { public EditorBrowsableAttribute() => throw null; @@ -5784,7 +6041,7 @@ namespace System public System.ComponentModel.EditorBrowsableState State { get => throw null; } } - // Generated from `System.ComponentModel.EditorBrowsableState` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.ComponentModel.EditorBrowsableState` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EditorBrowsableState { Advanced, @@ -5797,7 +6054,7 @@ namespace System { namespace Assemblies { - // Generated from `System.Configuration.Assemblies.AssemblyHashAlgorithm` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Configuration.Assemblies.AssemblyHashAlgorithm` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AssemblyHashAlgorithm { MD5, @@ -5808,7 +6065,7 @@ namespace System SHA512, } - // Generated from `System.Configuration.Assemblies.AssemblyVersionCompatibility` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Configuration.Assemblies.AssemblyVersionCompatibility` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AssemblyVersionCompatibility { SameDomain, @@ -5820,17 +6077,55 @@ namespace System } namespace Diagnostics { - // Generated from `System.Diagnostics.ConditionalAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.ConditionalAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConditionalAttribute : System.Attribute { public string ConditionString { get => throw null; } public ConditionalAttribute(string conditionString) => throw null; } - // Generated from `System.Diagnostics.Debug` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Debug` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Debug { + // Generated from `System.Diagnostics.Debug+AssertInterpolatedStringHandler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + + // Generated from `System.Diagnostics.Debug+WriteIfInterpolatedStringHandler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; @@ -5851,6 +6146,8 @@ namespace System 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; @@ -5860,14 +6157,16 @@ namespace System 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; } - // Generated from `System.Diagnostics.DebuggableAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggableAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebuggableAttribute : System.Attribute { - // Generated from `System.Diagnostics.DebuggableAttribute+DebuggingModes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggableAttribute+DebuggingModes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DebuggingModes { @@ -5886,7 +6185,7 @@ namespace System public bool IsJITTrackingEnabled { get => throw null; } } - // Generated from `System.Diagnostics.Debugger` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.Debugger` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Debugger { public static void Break() => throw null; @@ -5898,14 +6197,14 @@ namespace System public static void NotifyOfCrossThreadDependency() => throw null; } - // Generated from `System.Diagnostics.DebuggerBrowsableAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggerBrowsableAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebuggerBrowsableAttribute : System.Attribute { public DebuggerBrowsableAttribute(System.Diagnostics.DebuggerBrowsableState state) => throw null; public System.Diagnostics.DebuggerBrowsableState State { get => throw null; } } - // Generated from `System.Diagnostics.DebuggerBrowsableState` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggerBrowsableState` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DebuggerBrowsableState { Collapsed, @@ -5913,7 +6212,7 @@ namespace System RootHidden, } - // Generated from `System.Diagnostics.DebuggerDisplayAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggerDisplayAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebuggerDisplayAttribute : System.Attribute { public DebuggerDisplayAttribute(string value) => throw null; @@ -5924,31 +6223,31 @@ namespace System public string Value { get => throw null; } } - // Generated from `System.Diagnostics.DebuggerHiddenAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggerHiddenAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebuggerHiddenAttribute : System.Attribute { public DebuggerHiddenAttribute() => throw null; } - // Generated from `System.Diagnostics.DebuggerNonUserCodeAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggerNonUserCodeAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebuggerNonUserCodeAttribute : System.Attribute { public DebuggerNonUserCodeAttribute() => throw null; } - // Generated from `System.Diagnostics.DebuggerStepThroughAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggerStepThroughAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebuggerStepThroughAttribute : System.Attribute { public DebuggerStepThroughAttribute() => throw null; } - // Generated from `System.Diagnostics.DebuggerStepperBoundaryAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggerStepperBoundaryAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebuggerStepperBoundaryAttribute : System.Attribute { public DebuggerStepperBoundaryAttribute() => throw null; } - // Generated from `System.Diagnostics.DebuggerTypeProxyAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggerTypeProxyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebuggerTypeProxyAttribute : System.Attribute { public DebuggerTypeProxyAttribute(System.Type type) => throw null; @@ -5958,7 +6257,7 @@ namespace System public string TargetTypeName { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.DebuggerVisualizerAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.DebuggerVisualizerAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DebuggerVisualizerAttribute : System.Attribute { public DebuggerVisualizerAttribute(System.Type visualizer) => throw null; @@ -5974,7 +6273,13 @@ namespace System public string VisualizerTypeName { get => throw null; } } - // Generated from `System.Diagnostics.Stopwatch` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.StackTraceHiddenAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class StackTraceHiddenAttribute : System.Attribute + { + public StackTraceHiddenAttribute() => throw null; + } + + // Generated from `System.Diagnostics.Stopwatch` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Stopwatch { public System.TimeSpan Elapsed { get => throw null; } @@ -5994,32 +6299,32 @@ namespace System namespace CodeAnalysis { - // Generated from `System.Diagnostics.CodeAnalysis.AllowNullAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class AllowNullAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.AllowNullAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class AllowNullAttribute : System.Attribute { public AllowNullAttribute() => throw null; } - // Generated from `System.Diagnostics.CodeAnalysis.DisallowNullAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class DisallowNullAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.DisallowNullAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class DisallowNullAttribute : System.Attribute { public DisallowNullAttribute() => throw null; } - // Generated from `System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class DoesNotReturnAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class DoesNotReturnAttribute : System.Attribute { public DoesNotReturnAttribute() => throw null; } - // Generated from `System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class DoesNotReturnIfAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class DoesNotReturnIfAttribute : System.Attribute { public DoesNotReturnIfAttribute(bool parameterValue) => throw null; public bool ParameterValue { get => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DynamicDependencyAttribute : System.Attribute { public string AssemblyName { get => throw null; } @@ -6035,11 +6340,12 @@ namespace System public string TypeName { get => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes` in `Microsoft.Extensions.Configuration.Binder, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Options.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DynamicallyAccessedMemberTypes { All, + Interfaces, NonPublicConstructors, NonPublicEvents, NonPublicFields, @@ -6056,34 +6362,34 @@ namespace System PublicProperties, } - // Generated from `System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class DynamicallyAccessedMembersAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute` in `Microsoft.Extensions.Configuration.Binder, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Options, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Options.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public partial class DynamicallyAccessedMembersAttribute : System.Attribute { public DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes memberTypes) => throw null; public System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes MemberTypes { get => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExcludeFromCodeCoverageAttribute : System.Attribute { public ExcludeFromCodeCoverageAttribute() => throw null; public string Justification { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.MaybeNullAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class MaybeNullAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.MaybeNullAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class MaybeNullAttribute : System.Attribute { public MaybeNullAttribute() => throw null; } - // Generated from `System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class MaybeNullWhenAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class MaybeNullWhenAttribute : System.Attribute { public MaybeNullWhenAttribute(bool returnValue) => throw null; public bool ReturnValue { get => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.MemberNotNullAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.CodeAnalysis.MemberNotNullAttribute` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public partial class MemberNotNullAttribute : System.Attribute { public MemberNotNullAttribute(params string[] members) => throw null; @@ -6091,7 +6397,7 @@ namespace System public string[] Members { get => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute` in `Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public partial class MemberNotNullWhenAttribute : System.Attribute { public MemberNotNullWhenAttribute(bool returnValue, params string[] members) => throw null; @@ -6100,35 +6406,44 @@ namespace System public bool ReturnValue { get => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.NotNullAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class NotNullAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.NotNullAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class NotNullAttribute : System.Attribute { public NotNullAttribute() => throw null; } - // Generated from `System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class NotNullIfNotNullAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class NotNullIfNotNullAttribute : System.Attribute { public NotNullIfNotNullAttribute(string parameterName) => throw null; public string ParameterName { get => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.NotNullWhenAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class NotNullWhenAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.NotNullWhenAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class NotNullWhenAttribute : System.Attribute { public NotNullWhenAttribute(bool returnValue) => throw null; public bool ReturnValue { get => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class RequiresUnreferencedCodeAttribute : System.Attribute + // Generated from `System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute` in `Microsoft.Extensions.Configuration.Binder, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Logging.Configuration, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Options.ConfigurationExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; Microsoft.Extensions.Options.DataAnnotations, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public partial 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; } } - // Generated from `System.Diagnostics.CodeAnalysis.SuppressMessageAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.CodeAnalysis.SuppressMessageAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SuppressMessageAttribute : System.Attribute { public string Category { get => throw null; } @@ -6140,7 +6455,7 @@ namespace System public string Target { get => throw null; set => throw null; } } - // Generated from `System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnconditionalSuppressMessageAttribute : System.Attribute { public string Category { get => throw null; } @@ -6156,7 +6471,7 @@ namespace System } namespace Globalization { - // Generated from `System.Globalization.Calendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.Calendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Calendar : System.ICloneable { public virtual System.DateTime AddDays(System.DateTime time, int days) => throw null; @@ -6208,7 +6523,7 @@ namespace System public virtual int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.CalendarAlgorithmType` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.CalendarAlgorithmType` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CalendarAlgorithmType { LunarCalendar, @@ -6217,7 +6532,7 @@ namespace System Unknown, } - // Generated from `System.Globalization.CalendarWeekRule` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.CalendarWeekRule` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CalendarWeekRule { FirstDay, @@ -6225,7 +6540,7 @@ namespace System FirstFullWeek, } - // Generated from `System.Globalization.CharUnicodeInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.CharUnicodeInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class CharUnicodeInfo { public static int GetDecimalDigitValue(System.Char ch) => throw null; @@ -6239,7 +6554,7 @@ namespace System public static System.Globalization.UnicodeCategory GetUnicodeCategory(string s, int index) => throw null; } - // Generated from `System.Globalization.ChineseLunisolarCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.ChineseLunisolarCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ChineseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar { public const int ChineseEra = default; @@ -6251,7 +6566,7 @@ namespace System public override System.DateTime MinSupportedDateTime { get => throw null; } } - // Generated from `System.Globalization.CompareInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.CompareInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -6322,7 +6637,7 @@ namespace System public System.Globalization.SortVersion Version { get => throw null; } } - // Generated from `System.Globalization.CompareOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.CompareOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CompareOptions { @@ -6337,7 +6652,7 @@ namespace System StringSort, } - // Generated from `System.Globalization.CultureInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.CultureInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CultureInfo : System.ICloneable, System.IFormatProvider { public virtual System.Globalization.Calendar Calendar { get => throw null; } @@ -6388,7 +6703,7 @@ namespace System public bool UseUserOverride { get => throw null; } } - // Generated from `System.Globalization.CultureNotFoundException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.CultureNotFoundException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CultureNotFoundException : System.ArgumentException { public CultureNotFoundException() => throw null; @@ -6406,7 +6721,7 @@ namespace System public override string Message { get => throw null; } } - // Generated from `System.Globalization.CultureTypes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.CultureTypes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CultureTypes { @@ -6420,7 +6735,7 @@ namespace System WindowsOnlyCultures, } - // Generated from `System.Globalization.DateTimeFormatInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.DateTimeFormatInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DateTimeFormatInfo : System.ICloneable, System.IFormatProvider { public string AMDesignator { get => throw null; set => throw null; } @@ -6469,7 +6784,7 @@ namespace System public string YearMonthPattern { get => throw null; set => throw null; } } - // Generated from `System.Globalization.DateTimeStyles` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.DateTimeStyles` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum DateTimeStyles { @@ -6485,7 +6800,7 @@ namespace System RoundtripKind, } - // Generated from `System.Globalization.DaylightTime` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.DaylightTime` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DaylightTime { public DaylightTime(System.DateTime start, System.DateTime end, System.TimeSpan delta) => throw null; @@ -6494,7 +6809,7 @@ namespace System public System.DateTime Start { get => throw null; } } - // Generated from `System.Globalization.DigitShapes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.DigitShapes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DigitShapes { Context, @@ -6502,7 +6817,7 @@ namespace System None, } - // Generated from `System.Globalization.EastAsianLunisolarCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.EastAsianLunisolarCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EastAsianLunisolarCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -6529,13 +6844,13 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.GlobalizationExtensions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.GlobalizationExtensions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class GlobalizationExtensions { public static System.StringComparer GetStringComparer(this System.Globalization.CompareInfo compareInfo, System.Globalization.CompareOptions options) => throw null; } - // Generated from `System.Globalization.GregorianCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.GregorianCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GregorianCalendar : System.Globalization.Calendar { public const int ADEra = default; @@ -6566,7 +6881,7 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.GregorianCalendarTypes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.GregorianCalendarTypes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum GregorianCalendarTypes { Arabic, @@ -6577,7 +6892,7 @@ namespace System USEnglish, } - // Generated from `System.Globalization.HebrewCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.HebrewCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HebrewCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -6606,7 +6921,7 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.HijriCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.HijriCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HijriCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -6637,7 +6952,7 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.ISOWeek` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.ISOWeek` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ISOWeek { public static int GetWeekOfYear(System.DateTime date) => throw null; @@ -6648,7 +6963,7 @@ namespace System public static System.DateTime ToDateTime(int year, int week, System.DayOfWeek dayOfWeek) => throw null; } - // Generated from `System.Globalization.IdnMapping` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.IdnMapping` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IdnMapping { public bool AllowUnassigned { get => throw null; set => throw null; } @@ -6664,7 +6979,7 @@ namespace System public bool UseStd3AsciiRules { get => throw null; set => throw null; } } - // Generated from `System.Globalization.JapaneseCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.JapaneseCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class JapaneseCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -6693,7 +7008,7 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.JapaneseLunisolarCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.JapaneseLunisolarCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class JapaneseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar { protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } @@ -6705,7 +7020,7 @@ namespace System public override System.DateTime MinSupportedDateTime { get => throw null; } } - // Generated from `System.Globalization.JulianCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.JulianCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class JulianCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -6734,7 +7049,7 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.KoreanCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.KoreanCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class KoreanCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -6764,7 +7079,7 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.KoreanLunisolarCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.KoreanLunisolarCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class KoreanLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar { protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } @@ -6776,7 +7091,7 @@ namespace System public override System.DateTime MinSupportedDateTime { get => throw null; } } - // Generated from `System.Globalization.NumberFormatInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.NumberFormatInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NumberFormatInfo : System.ICloneable, System.IFormatProvider { public object Clone() => throw null; @@ -6816,7 +7131,7 @@ namespace System public static System.Globalization.NumberFormatInfo ReadOnly(System.Globalization.NumberFormatInfo nfi) => throw null; } - // Generated from `System.Globalization.NumberStyles` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.NumberStyles` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum NumberStyles { @@ -6839,7 +7154,7 @@ namespace System Number, } - // Generated from `System.Globalization.PersianCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.PersianCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PersianCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -6868,7 +7183,7 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.RegionInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.RegionInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RegionInfo { public virtual string CurrencyEnglishName { get => throw null; } @@ -6892,7 +7207,7 @@ namespace System public virtual string TwoLetterISORegionName { get => throw null; } } - // Generated from `System.Globalization.SortKey` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.SortKey` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SortKey { public static int Compare(System.Globalization.SortKey sortkey1, System.Globalization.SortKey sortkey2) => throw null; @@ -6903,7 +7218,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Globalization.SortVersion` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.SortVersion` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SortVersion : System.IEquatable { public static bool operator !=(System.Globalization.SortVersion left, System.Globalization.SortVersion right) => throw null; @@ -6916,13 +7231,16 @@ namespace System public SortVersion(int fullVersion, System.Guid sortId) => throw null; } - // Generated from `System.Globalization.StringInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.StringInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } @@ -6934,7 +7252,7 @@ namespace System public string SubstringByTextElements(int startingTextElement, int lengthInTextElements) => throw null; } - // Generated from `System.Globalization.TaiwanCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.TaiwanCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TaiwanCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -6963,7 +7281,7 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.TaiwanLunisolarCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.TaiwanLunisolarCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TaiwanLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar { protected override int DaysInYearBeforeMinSupportedYear { get => throw null; } @@ -6974,7 +7292,7 @@ namespace System public TaiwanLunisolarCalendar() => throw null; } - // Generated from `System.Globalization.TextElementEnumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.TextElementEnumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TextElementEnumerator : System.Collections.IEnumerator { public object Current { get => throw null; } @@ -6984,7 +7302,7 @@ namespace System public void Reset() => throw null; } - // Generated from `System.Globalization.TextInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.TextInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TextInfo : System.ICloneable, System.Runtime.Serialization.IDeserializationCallback { public int ANSICodePage { get => throw null; } @@ -7009,7 +7327,7 @@ namespace System public string ToUpper(string str) => throw null; } - // Generated from `System.Globalization.ThaiBuddhistCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.ThaiBuddhistCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ThaiBuddhistCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -7039,7 +7357,7 @@ namespace System public override int TwoDigitYearMax { get => throw null; set => throw null; } } - // Generated from `System.Globalization.TimeSpanStyles` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.TimeSpanStyles` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TimeSpanStyles { @@ -7047,7 +7365,7 @@ namespace System None, } - // Generated from `System.Globalization.UmAlQuraCalendar` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.UmAlQuraCalendar` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UmAlQuraCalendar : System.Globalization.Calendar { public override System.DateTime AddMonths(System.DateTime time, int months) => throw null; @@ -7077,7 +7395,7 @@ namespace System public const int UmAlQuraEra = default; } - // Generated from `System.Globalization.UnicodeCategory` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Globalization.UnicodeCategory` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UnicodeCategory { ClosePunctuation, @@ -7115,7 +7433,7 @@ namespace System } namespace IO { - // Generated from `System.IO.BinaryReader` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.BinaryReader` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BinaryReader : System.IDisposable { public virtual System.IO.Stream BaseStream { get => throw null; } @@ -7141,6 +7459,7 @@ namespace System 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; @@ -7152,7 +7471,7 @@ namespace System public virtual System.UInt64 ReadUInt64() => throw null; } - // Generated from `System.IO.BinaryWriter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.BinaryWriter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BinaryWriter : System.IAsyncDisposable, System.IDisposable { public virtual System.IO.Stream BaseStream { get => throw null; } @@ -7172,6 +7491,7 @@ namespace System 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; @@ -7192,7 +7512,7 @@ namespace System public void Write7BitEncodedInt64(System.Int64 value) => throw null; } - // Generated from `System.IO.BufferedStream` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.BufferedStream` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -7213,7 +7533,7 @@ namespace System 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[] array, int offset, int count) => 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; @@ -7221,14 +7541,107 @@ namespace System 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[] array, int offset, int count) => 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; } - // Generated from `System.IO.DirectoryNotFoundException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Directory` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public static class Directory + { + public static System.IO.DirectoryInfo CreateDirectory(string path) => throw null; + public static System.IO.FileSystemInfo CreateSymbolicLink(string path, string pathToTarget) => 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; + } + + // Generated from `System.IO.DirectoryInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + // Generated from `System.IO.DirectoryNotFoundException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DirectoryNotFoundException : System.IO.IOException { public DirectoryNotFoundException() => throw null; @@ -7237,7 +7650,7 @@ namespace System public DirectoryNotFoundException(string message, System.Exception innerException) => throw null; } - // Generated from `System.IO.EndOfStreamException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.EndOfStreamException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EndOfStreamException : System.IO.IOException { public EndOfStreamException() => throw null; @@ -7246,7 +7659,97 @@ namespace System public EndOfStreamException(string message, System.Exception innerException) => throw null; } - // Generated from `System.IO.FileAccess` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.EnumerationOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.IO.File` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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(string path) => throw null; + public static System.DateTime GetCreationTime(string path) => throw null; + public static System.DateTime GetCreationTimeUtc(string path) => 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 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 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(string path, System.IO.FileAttributes fileAttributes) => 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 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 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; + } + + // Generated from `System.IO.FileAccess` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum FileAccess { @@ -7255,7 +7758,7 @@ namespace System Write, } - // Generated from `System.IO.FileAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum FileAttributes { @@ -7277,7 +7780,39 @@ namespace System Temporary, } - // Generated from `System.IO.FileLoadException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 override string ToString() => throw null; + } + + // Generated from `System.IO.FileLoadException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileLoadException : System.IO.IOException { public FileLoadException() => throw null; @@ -7293,7 +7828,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.IO.FileMode` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileMode` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FileMode { Append, @@ -7304,7 +7839,7 @@ namespace System Truncate, } - // Generated from `System.IO.FileNotFoundException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileNotFoundException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileNotFoundException : System.IO.IOException { public string FileName { get => throw null; } @@ -7320,7 +7855,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.IO.FileOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum FileOptions { @@ -7333,7 +7868,7 @@ namespace System WriteThrough, } - // Generated from `System.IO.FileShare` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileShare` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum FileShare { @@ -7345,11 +7880,11 @@ namespace System Write, } - // Generated from `System.IO.FileStream` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileStream` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FileStream : System.IO.Stream { - public override System.IAsyncResult BeginRead(System.Byte[] array, int offset, int numBytes, System.AsyncCallback callback, object state) => throw null; - public override System.IAsyncResult BeginWrite(System.Byte[] array, int offset, int numBytes, System.AsyncCallback callback, object state) => 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 override bool CanRead { get => throw null; } public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } @@ -7371,6 +7906,7 @@ namespace System 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; @@ -7380,7 +7916,7 @@ namespace System 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[] array, int offset, int count) => 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; @@ -7389,7 +7925,7 @@ namespace System 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[] array, int offset, int count) => 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; @@ -7397,14 +7933,53 @@ namespace System // ERR: Stub generator didn't handle member: ~FileStream } - // Generated from `System.IO.HandleInheritability` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.FileStreamOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.IO.FileSystemInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + // Generated from `System.IO.HandleInheritability` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum HandleInheritability { Inheritable, None, } - // Generated from `System.IO.IOException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.IOException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IOException : System.SystemException { public IOException() => throw null; @@ -7414,7 +7989,7 @@ namespace System public IOException(string message, int hresult) => throw null; } - // Generated from `System.IO.InvalidDataException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.InvalidDataException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidDataException : System.SystemException { public InvalidDataException() => throw null; @@ -7422,7 +7997,22 @@ namespace System public InvalidDataException(string message, System.Exception innerException) => throw null; } - // Generated from `System.IO.MemoryStream` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.MatchCasing` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public enum MatchCasing + { + CaseInsensitive, + CaseSensitive, + PlatformDefault, + } + + // Generated from `System.IO.MatchType` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public enum MatchType + { + Simple, + Win32, + } + + // Generated from `System.IO.MemoryStream` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -7449,23 +8039,23 @@ namespace System 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 destination) => 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 destination, 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 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 source) => 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 source, 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(System.Byte value) => throw null; public virtual void WriteTo(System.IO.Stream stream) => throw null; } - // Generated from `System.IO.Path` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Path` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Path { public static System.Char AltDirectorySeparatorChar; @@ -7517,7 +8107,7 @@ namespace System public static System.Char VolumeSeparatorChar; } - // Generated from `System.IO.PathTooLongException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.PathTooLongException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PathTooLongException : System.IO.IOException { public PathTooLongException() => throw null; @@ -7526,7 +8116,28 @@ namespace System public PathTooLongException(string message, System.Exception innerException) => throw null; } - // Generated from `System.IO.SeekOrigin` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.RandomAccess` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 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; + } + + // Generated from `System.IO.SearchOption` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public enum SearchOption + { + AllDirectories, + TopDirectoryOnly, + } + + // Generated from `System.IO.SeekOrigin` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SeekOrigin { Begin, @@ -7534,7 +8145,7 @@ namespace System End, } - // Generated from `System.IO.Stream` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.Stream` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -7574,6 +8185,8 @@ namespace System 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; @@ -7583,7 +8196,7 @@ namespace System public virtual int WriteTimeout { get => throw null; set => throw null; } } - // Generated from `System.IO.StreamReader` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.StreamReader` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StreamReader : System.IO.TextReader { public virtual System.IO.Stream BaseStream { get => throw null; } @@ -7616,11 +8229,13 @@ namespace System 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; } - // Generated from `System.IO.StreamWriter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.StreamWriter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StreamWriter : System.IO.TextWriter { public virtual bool AutoFlush { get => throw null; set => throw null; } @@ -7637,6 +8252,8 @@ namespace System 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; @@ -7666,7 +8283,7 @@ namespace System public override System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; } - // Generated from `System.IO.StringReader` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.StringReader` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringReader : System.IO.TextReader { public override void Close() => throw null; @@ -7687,7 +8304,7 @@ namespace System public StringReader(string s) => throw null; } - // Generated from `System.IO.StringWriter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.StringWriter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringWriter : System.IO.TextWriter { public override void Close() => throw null; @@ -7719,7 +8336,7 @@ namespace System public override System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; } - // Generated from `System.IO.TextReader` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.TextReader` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TextReader : System.MarshalByRefObject, System.IDisposable { public virtual void Close() => throw null; @@ -7744,7 +8361,7 @@ namespace System protected TextReader() => throw null; } - // Generated from `System.IO.TextWriter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.TextWriter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TextWriter : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable { public virtual void Close() => throw null; @@ -7815,7 +8432,7 @@ namespace System public virtual System.Threading.Tasks.Task WriteLineAsync(string value) => throw null; } - // Generated from `System.IO.UnmanagedMemoryStream` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.IO.UnmanagedMemoryStream` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnmanagedMemoryStream : System.IO.Stream { public override bool CanRead { get => throw null; } @@ -7831,7 +8448,7 @@ namespace System 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 destination) => 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; @@ -7843,16 +8460,82 @@ namespace System 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 source) => 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 + { + // Generated from `System.IO.Enumeration.FileSystemEntry` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + // Generated from `System.IO.Enumeration.FileSystemEnumerable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class FileSystemEnumerable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + // Generated from `System.IO.Enumeration.FileSystemEnumerable<>+FindPredicate` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public delegate bool FindPredicate(ref System.IO.Enumeration.FileSystemEntry entry); + + + // Generated from `System.IO.Enumeration.FileSystemEnumerable<>+FindTransform` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.IO.Enumeration.FileSystemEnumerator<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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); + } + + // Generated from `System.IO.Enumeration.FileSystemName` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 { - // Generated from `System.Net.WebUtility` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Net.WebUtility` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class WebUtility { public static string HtmlDecode(string value) => throw null; @@ -7868,9 +8551,13 @@ namespace System } namespace Numerics { - // Generated from `System.Numerics.BitOperations` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Numerics.BitOperations` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class BitOperations { + 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.UInt32 value) => throw null; public static int LeadingZeroCount(System.UInt64 value) => throw null; public static int Log2(System.UInt32 value) => throw null; @@ -7881,6 +8568,8 @@ namespace System public static System.UInt64 RotateLeft(System.UInt64 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.UInt32 RoundUpToPowerOf2(System.UInt32 value) => throw null; + public static System.UInt64 RoundUpToPowerOf2(System.UInt64 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; @@ -7890,7 +8579,7 @@ namespace System } namespace Reflection { - // Generated from `System.Reflection.AmbiguousMatchException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AmbiguousMatchException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AmbiguousMatchException : System.SystemException { public AmbiguousMatchException() => throw null; @@ -7898,7 +8587,7 @@ namespace System public AmbiguousMatchException(string message, System.Exception inner) => throw null; } - // Generated from `System.Reflection.Assembly` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Assembly` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -7978,7 +8667,7 @@ namespace System public static System.Reflection.Assembly UnsafeLoadFrom(string assemblyFile) => throw null; } - // Generated from `System.Reflection.AssemblyAlgorithmIdAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyAlgorithmIdAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyAlgorithmIdAttribute : System.Attribute { public System.UInt32 AlgorithmId { get => throw null; } @@ -7986,70 +8675,70 @@ namespace System public AssemblyAlgorithmIdAttribute(System.UInt32 algorithmId) => throw null; } - // Generated from `System.Reflection.AssemblyCompanyAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyCompanyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyCompanyAttribute : System.Attribute { public AssemblyCompanyAttribute(string company) => throw null; public string Company { get => throw null; } } - // Generated from `System.Reflection.AssemblyConfigurationAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyConfigurationAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyConfigurationAttribute : System.Attribute { public AssemblyConfigurationAttribute(string configuration) => throw null; public string Configuration { get => throw null; } } - // Generated from `System.Reflection.AssemblyContentType` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyContentType` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AssemblyContentType { Default, WindowsRuntime, } - // Generated from `System.Reflection.AssemblyCopyrightAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyCopyrightAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyCopyrightAttribute : System.Attribute { public AssemblyCopyrightAttribute(string copyright) => throw null; public string Copyright { get => throw null; } } - // Generated from `System.Reflection.AssemblyCultureAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyCultureAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyCultureAttribute : System.Attribute { public AssemblyCultureAttribute(string culture) => throw null; public string Culture { get => throw null; } } - // Generated from `System.Reflection.AssemblyDefaultAliasAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyDefaultAliasAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyDefaultAliasAttribute : System.Attribute { public AssemblyDefaultAliasAttribute(string defaultAlias) => throw null; public string DefaultAlias { get => throw null; } } - // Generated from `System.Reflection.AssemblyDelaySignAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyDelaySignAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyDelaySignAttribute : System.Attribute { public AssemblyDelaySignAttribute(bool delaySign) => throw null; public bool DelaySign { get => throw null; } } - // Generated from `System.Reflection.AssemblyDescriptionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyDescriptionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyDescriptionAttribute : System.Attribute { public AssemblyDescriptionAttribute(string description) => throw null; public string Description { get => throw null; } } - // Generated from `System.Reflection.AssemblyFileVersionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyFileVersionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyFileVersionAttribute : System.Attribute { public AssemblyFileVersionAttribute(string version) => throw null; public string Version { get => throw null; } } - // Generated from `System.Reflection.AssemblyFlagsAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyFlagsAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyFlagsAttribute : System.Attribute { public int AssemblyFlags { get => throw null; } @@ -8059,28 +8748,28 @@ namespace System public System.UInt32 Flags { get => throw null; } } - // Generated from `System.Reflection.AssemblyInformationalVersionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyInformationalVersionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyInformationalVersionAttribute : System.Attribute { public AssemblyInformationalVersionAttribute(string informationalVersion) => throw null; public string InformationalVersion { get => throw null; } } - // Generated from `System.Reflection.AssemblyKeyFileAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyKeyFileAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyKeyFileAttribute : System.Attribute { public AssemblyKeyFileAttribute(string keyFile) => throw null; public string KeyFile { get => throw null; } } - // Generated from `System.Reflection.AssemblyKeyNameAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyKeyNameAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyKeyNameAttribute : System.Attribute { public AssemblyKeyNameAttribute(string keyName) => throw null; public string KeyName { get => throw null; } } - // Generated from `System.Reflection.AssemblyMetadataAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyMetadataAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyMetadataAttribute : System.Attribute { public AssemblyMetadataAttribute(string key, string value) => throw null; @@ -8088,7 +8777,7 @@ namespace System public string Value { get => throw null; } } - // Generated from `System.Reflection.AssemblyName` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyName` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyName : System.ICloneable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable { public AssemblyName() => throw null; @@ -8118,7 +8807,7 @@ namespace System public System.Configuration.Assemblies.AssemblyVersionCompatibility VersionCompatibility { get => throw null; set => throw null; } } - // Generated from `System.Reflection.AssemblyNameFlags` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyNameFlags` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum AssemblyNameFlags { @@ -8129,21 +8818,21 @@ namespace System Retargetable, } - // Generated from `System.Reflection.AssemblyNameProxy` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyNameProxy` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyNameProxy : System.MarshalByRefObject { public AssemblyNameProxy() => throw null; public System.Reflection.AssemblyName GetAssemblyName(string assemblyFile) => throw null; } - // Generated from `System.Reflection.AssemblyProductAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyProductAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyProductAttribute : System.Attribute { public AssemblyProductAttribute(string product) => throw null; public string Product { get => throw null; } } - // Generated from `System.Reflection.AssemblySignatureKeyAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblySignatureKeyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblySignatureKeyAttribute : System.Attribute { public AssemblySignatureKeyAttribute(string publicKey, string countersignature) => throw null; @@ -8151,28 +8840,28 @@ namespace System public string PublicKey { get => throw null; } } - // Generated from `System.Reflection.AssemblyTitleAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyTitleAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyTitleAttribute : System.Attribute { public AssemblyTitleAttribute(string title) => throw null; public string Title { get => throw null; } } - // Generated from `System.Reflection.AssemblyTrademarkAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyTrademarkAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyTrademarkAttribute : System.Attribute { public AssemblyTrademarkAttribute(string trademark) => throw null; public string Trademark { get => throw null; } } - // Generated from `System.Reflection.AssemblyVersionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.AssemblyVersionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyVersionAttribute : System.Attribute { public AssemblyVersionAttribute(string version) => throw null; public string Version { get => throw null; } } - // Generated from `System.Reflection.Binder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Binder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Binder { public abstract System.Reflection.FieldInfo BindToField(System.Reflection.BindingFlags bindingAttr, System.Reflection.FieldInfo[] match, object value, System.Globalization.CultureInfo culture); @@ -8184,7 +8873,7 @@ namespace System public abstract System.Reflection.PropertyInfo SelectProperty(System.Reflection.BindingFlags bindingAttr, System.Reflection.PropertyInfo[] match, System.Type returnType, System.Type[] indexes, System.Reflection.ParameterModifier[] modifiers); } - // Generated from `System.Reflection.BindingFlags` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.BindingFlags` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum BindingFlags { @@ -8211,7 +8900,7 @@ namespace System SuppressChangeType, } - // Generated from `System.Reflection.CallingConventions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.CallingConventions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CallingConventions { @@ -8222,7 +8911,7 @@ namespace System VarArgs, } - // Generated from `System.Reflection.ConstructorInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ConstructorInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ConstructorInfo : System.Reflection.MethodBase { public static bool operator !=(System.Reflection.ConstructorInfo left, System.Reflection.ConstructorInfo right) => throw null; @@ -8237,7 +8926,7 @@ namespace System public static string TypeConstructorName; } - // Generated from `System.Reflection.CustomAttributeData` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.CustomAttributeData` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CustomAttributeData { public virtual System.Type AttributeType { get => throw null; } @@ -8254,7 +8943,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Reflection.CustomAttributeExtensions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.CustomAttributeExtensions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class CustomAttributeExtensions { public static System.Attribute GetCustomAttribute(this System.Reflection.Assembly element, System.Type attributeType) => throw null; @@ -8295,7 +8984,7 @@ namespace System public static bool IsDefined(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) => throw null; } - // Generated from `System.Reflection.CustomAttributeFormatException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.CustomAttributeFormatException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CustomAttributeFormatException : System.FormatException { public CustomAttributeFormatException() => throw null; @@ -8304,7 +8993,7 @@ namespace System public CustomAttributeFormatException(string message, System.Exception inner) => throw null; } - // Generated from `System.Reflection.CustomAttributeNamedArgument` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.CustomAttributeNamedArgument` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeNamedArgument { public static bool operator !=(System.Reflection.CustomAttributeNamedArgument left, System.Reflection.CustomAttributeNamedArgument right) => throw null; @@ -8321,7 +9010,7 @@ namespace System public System.Reflection.CustomAttributeTypedArgument TypedValue { get => throw null; } } - // Generated from `System.Reflection.CustomAttributeTypedArgument` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.CustomAttributeTypedArgument` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CustomAttributeTypedArgument { public static bool operator !=(System.Reflection.CustomAttributeTypedArgument left, System.Reflection.CustomAttributeTypedArgument right) => throw null; @@ -8336,14 +9025,14 @@ namespace System public object Value { get => throw null; } } - // Generated from `System.Reflection.DefaultMemberAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.DefaultMemberAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultMemberAttribute : System.Attribute { public DefaultMemberAttribute(string memberName) => throw null; public string MemberName { get => throw null; } } - // Generated from `System.Reflection.EventAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.EventAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum EventAttributes { @@ -8353,7 +9042,7 @@ namespace System SpecialName, } - // Generated from `System.Reflection.EventInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.EventInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EventInfo : System.Reflection.MemberInfo { public static bool operator !=(System.Reflection.EventInfo left, System.Reflection.EventInfo right) => throw null; @@ -8381,7 +9070,7 @@ namespace System public virtual System.Reflection.MethodInfo RemoveMethod { get => throw null; } } - // Generated from `System.Reflection.ExceptionHandlingClause` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ExceptionHandlingClause` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExceptionHandlingClause { public virtual System.Type CatchType { get => throw null; } @@ -8395,7 +9084,7 @@ namespace System public virtual int TryOffset { get => throw null; } } - // Generated from `System.Reflection.ExceptionHandlingClauseOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ExceptionHandlingClauseOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ExceptionHandlingClauseOptions { @@ -8405,7 +9094,7 @@ namespace System Finally, } - // Generated from `System.Reflection.FieldAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.FieldAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum FieldAttributes { @@ -8430,7 +9119,7 @@ namespace System Static, } - // Generated from `System.Reflection.FieldInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.FieldInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class FieldInfo : System.Reflection.MemberInfo { public static bool operator !=(System.Reflection.FieldInfo left, System.Reflection.FieldInfo right) => throw null; @@ -8469,7 +9158,7 @@ namespace System public virtual void SetValueDirect(System.TypedReference obj, object value) => throw null; } - // Generated from `System.Reflection.GenericParameterAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.GenericParameterAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum GenericParameterAttributes { @@ -8483,7 +9172,7 @@ namespace System VarianceMask, } - // Generated from `System.Reflection.ICustomAttributeProvider` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ICustomAttributeProvider` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICustomAttributeProvider { object[] GetCustomAttributes(System.Type attributeType, bool inherit); @@ -8491,7 +9180,7 @@ namespace System bool IsDefined(System.Type attributeType, bool inherit); } - // Generated from `System.Reflection.IReflect` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.IReflect` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IReflect { System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr); @@ -8508,13 +9197,13 @@ namespace System System.Type UnderlyingSystemType { get; } } - // Generated from `System.Reflection.IReflectableType` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.IReflectableType` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IReflectableType { System.Reflection.TypeInfo GetTypeInfo(); } - // Generated from `System.Reflection.ImageFileMachine` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ImageFileMachine` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ImageFileMachine { AMD64, @@ -8523,7 +9212,7 @@ namespace System IA64, } - // Generated from `System.Reflection.InterfaceMapping` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.InterfaceMapping` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct InterfaceMapping { // Stub generator skipped constructor @@ -8533,13 +9222,13 @@ namespace System public System.Type TargetType; } - // Generated from `System.Reflection.IntrospectionExtensions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.IntrospectionExtensions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IntrospectionExtensions { public static System.Reflection.TypeInfo GetTypeInfo(this System.Type type) => throw null; } - // Generated from `System.Reflection.InvalidFilterCriteriaException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.InvalidFilterCriteriaException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InvalidFilterCriteriaException : System.ApplicationException { public InvalidFilterCriteriaException() => throw null; @@ -8548,7 +9237,7 @@ namespace System public InvalidFilterCriteriaException(string message, System.Exception inner) => throw null; } - // Generated from `System.Reflection.LocalVariableInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.LocalVariableInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LocalVariableInfo { public virtual bool IsPinned { get => throw null; } @@ -8558,7 +9247,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Reflection.ManifestResourceInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ManifestResourceInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ManifestResourceInfo { public virtual string FileName { get => throw null; } @@ -8567,10 +9256,10 @@ namespace System public virtual System.Reflection.ResourceLocation ResourceLocation { get => throw null; } } - // Generated from `System.Reflection.MemberFilter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MemberFilter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate bool MemberFilter(System.Reflection.MemberInfo m, object filterCriteria); - // Generated from `System.Reflection.MemberInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MemberInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MemberInfo : System.Reflection.ICustomAttributeProvider { public static bool operator !=(System.Reflection.MemberInfo left, System.Reflection.MemberInfo right) => throw null; @@ -8593,7 +9282,7 @@ namespace System public abstract System.Type ReflectedType { get; } } - // Generated from `System.Reflection.MemberTypes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MemberTypes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MemberTypes { @@ -8608,7 +9297,7 @@ namespace System TypeInfo, } - // Generated from `System.Reflection.MethodAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MethodAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MethodAttributes { @@ -8638,7 +9327,7 @@ namespace System VtableLayoutMask, } - // Generated from `System.Reflection.MethodBase` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MethodBase` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MethodBase : System.Reflection.MemberInfo { public static bool operator !=(System.Reflection.MethodBase left, System.Reflection.MethodBase right) => throw null; @@ -8681,7 +9370,7 @@ namespace System public virtual System.Reflection.MethodImplAttributes MethodImplementationFlags { get => throw null; } } - // Generated from `System.Reflection.MethodBody` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MethodBody` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MethodBody { public virtual System.Collections.Generic.IList ExceptionHandlingClauses { get => throw null; } @@ -8693,7 +9382,7 @@ namespace System protected MethodBody() => throw null; } - // Generated from `System.Reflection.MethodImplAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MethodImplAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MethodImplAttributes { AggressiveInlining, @@ -8715,7 +9404,7 @@ namespace System Unmanaged, } - // Generated from `System.Reflection.MethodInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.MethodInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MethodInfo : System.Reflection.MethodBase { public static bool operator !=(System.Reflection.MethodInfo left, System.Reflection.MethodInfo right) => throw null; @@ -8737,14 +9426,14 @@ namespace System public abstract System.Reflection.ICustomAttributeProvider ReturnTypeCustomAttributes { get; } } - // Generated from `System.Reflection.Missing` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Missing` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Reflection.Module` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Module` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -8798,10 +9487,38 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Reflection.ModuleResolveEventHandler` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ModuleResolveEventHandler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate System.Reflection.Module ModuleResolveEventHandler(object sender, System.ResolveEventArgs e); - // Generated from `System.Reflection.ObfuscateAssemblyAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.NullabilityInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.Reflection.NullabilityInfoContext` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + // Generated from `System.Reflection.NullabilityState` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public enum NullabilityState + { + NotNull, + Nullable, + Unknown, + } + + // Generated from `System.Reflection.ObfuscateAssemblyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObfuscateAssemblyAttribute : System.Attribute { public bool AssemblyIsPrivate { get => throw null; } @@ -8809,7 +9526,7 @@ namespace System public bool StripAfterObfuscation { get => throw null; set => throw null; } } - // Generated from `System.Reflection.ObfuscationAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ObfuscationAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObfuscationAttribute : System.Attribute { public bool ApplyToMembers { get => throw null; set => throw null; } @@ -8819,7 +9536,7 @@ namespace System public bool StripAfterObfuscation { get => throw null; set => throw null; } } - // Generated from `System.Reflection.ParameterAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ParameterAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ParameterAttributes { @@ -8836,7 +9553,7 @@ namespace System Retval, } - // Generated from `System.Reflection.ParameterInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ParameterInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.IObjectReference { public virtual System.Reflection.ParameterAttributes Attributes { get => throw null; } @@ -8871,7 +9588,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Reflection.ParameterModifier` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ParameterModifier` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ParameterModifier { public bool this[int index] { get => throw null; set => throw null; } @@ -8879,15 +9596,17 @@ namespace System public ParameterModifier(int parameterCount) => throw null; } - // Generated from `System.Reflection.Pointer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.Pointer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Reflection.PortableExecutableKinds` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PortableExecutableKinds` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum PortableExecutableKinds { @@ -8899,7 +9618,7 @@ namespace System Unmanaged32Bit, } - // Generated from `System.Reflection.ProcessorArchitecture` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ProcessorArchitecture` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ProcessorArchitecture { Amd64, @@ -8910,7 +9629,7 @@ namespace System X86, } - // Generated from `System.Reflection.PropertyAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PropertyAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum PropertyAttributes { @@ -8924,7 +9643,7 @@ namespace System SpecialName, } - // Generated from `System.Reflection.PropertyInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.PropertyInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class PropertyInfo : System.Reflection.MemberInfo { public static bool operator !=(System.Reflection.PropertyInfo left, System.Reflection.PropertyInfo right) => throw null; @@ -8959,7 +9678,7 @@ namespace System public virtual void SetValue(object obj, object value, object[] index) => throw null; } - // Generated from `System.Reflection.ReflectionContext` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ReflectionContext` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ReflectionContext { public virtual System.Reflection.TypeInfo GetTypeForObject(object value) => throw null; @@ -8968,7 +9687,7 @@ namespace System protected ReflectionContext() => throw null; } - // Generated from `System.Reflection.ReflectionTypeLoadException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ReflectionTypeLoadException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -8980,7 +9699,7 @@ namespace System public System.Type[] Types { get => throw null; } } - // Generated from `System.Reflection.ResourceAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ResourceAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ResourceAttributes { @@ -8988,7 +9707,7 @@ namespace System Public, } - // Generated from `System.Reflection.ResourceLocation` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.ResourceLocation` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ResourceLocation { @@ -8997,7 +9716,7 @@ namespace System Embedded, } - // Generated from `System.Reflection.RuntimeReflectionExtensions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.RuntimeReflectionExtensions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class RuntimeReflectionExtensions { public static System.Reflection.MethodInfo GetMethodInfo(this System.Delegate del) => throw null; @@ -9013,7 +9732,7 @@ namespace System public static System.Reflection.PropertyInfo GetRuntimeProperty(this System.Type type, string name) => throw null; } - // Generated from `System.Reflection.StrongNameKeyPair` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.StrongNameKeyPair` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -9025,7 +9744,7 @@ namespace System public StrongNameKeyPair(string keyPairContainer) => throw null; } - // Generated from `System.Reflection.TargetException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.TargetException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TargetException : System.ApplicationException { public TargetException() => throw null; @@ -9034,14 +9753,14 @@ namespace System public TargetException(string message, System.Exception inner) => throw null; } - // Generated from `System.Reflection.TargetInvocationException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.TargetInvocationException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TargetInvocationException : System.ApplicationException { public TargetInvocationException(System.Exception inner) => throw null; public TargetInvocationException(string message, System.Exception inner) => throw null; } - // Generated from `System.Reflection.TargetParameterCountException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.TargetParameterCountException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TargetParameterCountException : System.ApplicationException { public TargetParameterCountException() => throw null; @@ -9049,7 +9768,7 @@ namespace System public TargetParameterCountException(string message, System.Exception inner) => throw null; } - // Generated from `System.Reflection.TypeAttributes` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.TypeAttributes` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TypeAttributes { @@ -9087,7 +9806,7 @@ namespace System WindowsRuntime, } - // Generated from `System.Reflection.TypeDelegator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.TypeDelegator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeDelegator : System.Reflection.TypeInfo { public override System.Reflection.Assembly Assembly { get => throw null; } @@ -9146,10 +9865,10 @@ namespace System protected System.Type typeImpl; } - // Generated from `System.Reflection.TypeFilter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.TypeFilter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate bool TypeFilter(System.Type m, object filterCriteria); - // Generated from `System.Reflection.TypeInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Reflection.TypeInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TypeInfo : System.Type, System.Reflection.IReflectableType { public virtual System.Type AsType() => throw null; @@ -9176,14 +9895,14 @@ namespace System } namespace Resources { - // Generated from `System.Resources.IResourceReader` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.IResourceReader` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IResourceReader : System.Collections.IEnumerable, System.IDisposable { void Close(); System.Collections.IDictionaryEnumerator GetEnumerator(); } - // Generated from `System.Resources.MissingManifestResourceException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.MissingManifestResourceException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MissingManifestResourceException : System.SystemException { public MissingManifestResourceException() => throw null; @@ -9192,7 +9911,7 @@ namespace System public MissingManifestResourceException(string message, System.Exception inner) => throw null; } - // Generated from `System.Resources.MissingSatelliteAssemblyException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.MissingSatelliteAssemblyException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MissingSatelliteAssemblyException : System.SystemException { public string CultureName { get => throw null; } @@ -9203,7 +9922,7 @@ namespace System public MissingSatelliteAssemblyException(string message, string cultureName) => throw null; } - // Generated from `System.Resources.NeutralResourcesLanguageAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.NeutralResourcesLanguageAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NeutralResourcesLanguageAttribute : System.Attribute { public string CultureName { get => throw null; } @@ -9212,7 +9931,7 @@ namespace System public NeutralResourcesLanguageAttribute(string cultureName, System.Resources.UltimateResourceFallbackLocation location) => throw null; } - // Generated from `System.Resources.ResourceManager` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.ResourceManager` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ResourceManager { public virtual string BaseName { get => throw null; } @@ -9241,7 +9960,7 @@ namespace System public virtual System.Type ResourceSetType { get => throw null; } } - // Generated from `System.Resources.ResourceReader` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.ResourceReader` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ResourceReader : System.Collections.IEnumerable, System.IDisposable, System.Resources.IResourceReader { public void Close() => throw null; @@ -9253,7 +9972,7 @@ namespace System public ResourceReader(string fileName) => throw null; } - // Generated from `System.Resources.ResourceSet` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.ResourceSet` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ResourceSet : System.Collections.IEnumerable, System.IDisposable { public virtual void Close() => throw null; @@ -9274,14 +9993,14 @@ namespace System public ResourceSet(string fileName) => throw null; } - // Generated from `System.Resources.SatelliteContractVersionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.SatelliteContractVersionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SatelliteContractVersionAttribute : System.Attribute { public SatelliteContractVersionAttribute(string version) => throw null; public string Version { get => throw null; } } - // Generated from `System.Resources.UltimateResourceFallbackLocation` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Resources.UltimateResourceFallbackLocation` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum UltimateResourceFallbackLocation { MainAssembly, @@ -9291,7 +10010,7 @@ namespace System } namespace Runtime { - // Generated from `System.Runtime.AmbiguousImplementationException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.AmbiguousImplementationException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AmbiguousImplementationException : System.Exception { public AmbiguousImplementationException() => throw null; @@ -9299,21 +10018,33 @@ namespace System public AmbiguousImplementationException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Runtime.AssemblyTargetedPatchBandAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.AssemblyTargetedPatchBandAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AssemblyTargetedPatchBandAttribute : System.Attribute { public AssemblyTargetedPatchBandAttribute(string targetedPatchBand) => throw null; public string TargetedPatchBand { get => throw null; } } - // Generated from `System.Runtime.GCLargeObjectHeapCompactionMode` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.DependentHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.Runtime.GCLargeObjectHeapCompactionMode` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum GCLargeObjectHeapCompactionMode { CompactOnce, Default, } - // Generated from `System.Runtime.GCLatencyMode` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.GCLatencyMode` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum GCLatencyMode { Batch, @@ -9323,7 +10054,7 @@ namespace System SustainedLowLatency, } - // Generated from `System.Runtime.GCSettings` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.GCSettings` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class GCSettings { public static bool IsServerGC { get => throw null; } @@ -9331,7 +10062,15 @@ namespace System public static System.Runtime.GCLatencyMode LatencyMode { get => throw null; set => throw null; } } - // Generated from `System.Runtime.MemoryFailPoint` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.JitInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + // Generated from `System.Runtime.MemoryFailPoint` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MemoryFailPoint : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable { public void Dispose() => throw null; @@ -9339,14 +10078,14 @@ namespace System // ERR: Stub generator didn't handle member: ~MemoryFailPoint } - // Generated from `System.Runtime.ProfileOptimization` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.ProfileOptimization` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ProfileOptimization { public static void SetProfileRoot(string directoryPath) => throw null; public static void StartProfile(string profile) => throw null; } - // Generated from `System.Runtime.TargetedPatchingOptOutAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.TargetedPatchingOptOutAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TargetedPatchingOptOutAttribute : System.Attribute { public string Reason { get => throw null; } @@ -9355,14 +10094,14 @@ namespace System namespace CompilerServices { - // Generated from `System.Runtime.CompilerServices.AccessedThroughPropertyAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AccessedThroughPropertyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AccessedThroughPropertyAttribute : System.Attribute { public AccessedThroughPropertyAttribute(string propertyName) => throw null; public string PropertyName { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.AsyncIteratorMethodBuilder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AsyncIteratorMethodBuilder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AsyncIteratorMethodBuilder { // Stub generator skipped constructor @@ -9373,26 +10112,26 @@ namespace System public void MoveNext(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; } - // Generated from `System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AsyncIteratorStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute { public AsyncIteratorStateMachineAttribute(System.Type stateMachineType) : base(default(System.Type)) => throw null; } - // Generated from `System.Runtime.CompilerServices.AsyncMethodBuilderAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AsyncMethodBuilderAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AsyncMethodBuilderAttribute : System.Attribute { public AsyncMethodBuilderAttribute(System.Type builderType) => throw null; public System.Type BuilderType { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.AsyncStateMachineAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AsyncStateMachineAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AsyncStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute { public AsyncStateMachineAttribute(System.Type stateMachineType) : base(default(System.Type)) => throw null; } - // Generated from `System.Runtime.CompilerServices.AsyncTaskMethodBuilder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AsyncTaskMethodBuilder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AsyncTaskMethodBuilder { // Stub generator skipped constructor @@ -9406,7 +10145,7 @@ namespace System public System.Threading.Tasks.Task Task { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.AsyncTaskMethodBuilder<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AsyncTaskMethodBuilder<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AsyncTaskMethodBuilder { // Stub generator skipped constructor @@ -9420,7 +10159,7 @@ namespace System public System.Threading.Tasks.Task Task { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AsyncValueTaskMethodBuilder { // Stub generator skipped constructor @@ -9434,7 +10173,7 @@ namespace System public System.Threading.Tasks.ValueTask Task { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AsyncValueTaskMethodBuilder { // Stub generator skipped constructor @@ -9448,7 +10187,7 @@ namespace System public System.Threading.Tasks.ValueTask Task { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.AsyncVoidMethodBuilder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.AsyncVoidMethodBuilder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AsyncVoidMethodBuilder { // Stub generator skipped constructor @@ -9461,63 +10200,75 @@ namespace System public void Start(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine => throw null; } - // Generated from `System.Runtime.CompilerServices.CallConvCdecl` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallConvCdecl` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallConvCdecl { public CallConvCdecl() => throw null; } - // Generated from `System.Runtime.CompilerServices.CallConvFastcall` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallConvFastcall` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallConvFastcall { public CallConvFastcall() => throw null; } - // Generated from `System.Runtime.CompilerServices.CallConvStdcall` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallConvMemberFunction` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class CallConvMemberFunction + { + public CallConvMemberFunction() => throw null; + } + + // Generated from `System.Runtime.CompilerServices.CallConvStdcall` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallConvStdcall { public CallConvStdcall() => throw null; } - // Generated from `System.Runtime.CompilerServices.CallConvThiscall` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallConvSuppressGCTransition` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class CallConvSuppressGCTransition + { + public CallConvSuppressGCTransition() => throw null; + } + + // Generated from `System.Runtime.CompilerServices.CallConvThiscall` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallConvThiscall { public CallConvThiscall() => throw null; } - // Generated from `System.Runtime.CompilerServices.CallerArgumentExpressionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallerArgumentExpressionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallerArgumentExpressionAttribute : System.Attribute { public CallerArgumentExpressionAttribute(string parameterName) => throw null; public string ParameterName { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.CallerFilePathAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallerFilePathAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallerFilePathAttribute : System.Attribute { public CallerFilePathAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.CallerLineNumberAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallerLineNumberAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallerLineNumberAttribute : System.Attribute { public CallerLineNumberAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.CallerMemberNameAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CallerMemberNameAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CallerMemberNameAttribute : System.Attribute { public CallerMemberNameAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.CompilationRelaxations` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CompilationRelaxations` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CompilationRelaxations { NoStringInterning, } - // Generated from `System.Runtime.CompilerServices.CompilationRelaxationsAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CompilationRelaxationsAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CompilationRelaxationsAttribute : System.Attribute { public int CompilationRelaxations { get => throw null; } @@ -9525,22 +10276,22 @@ namespace System public CompilationRelaxationsAttribute(int relaxations) => throw null; } - // Generated from `System.Runtime.CompilerServices.CompilerGeneratedAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CompilerGeneratedAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CompilerGeneratedAttribute : System.Attribute { public CompilerGeneratedAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.CompilerGlobalScopeAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CompilerGlobalScopeAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CompilerGlobalScopeAttribute : System.Attribute { public CompilerGlobalScopeAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.ConditionalWeakTable<,>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConditionalWeakTable<,>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConditionalWeakTable : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable where TKey : class where TValue : class { - // Generated from `System.Runtime.CompilerServices.ConditionalWeakTable<,>+CreateValueCallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConditionalWeakTable<,>+CreateValueCallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate TValue CreateValueCallback(TKey key); @@ -9556,17 +10307,17 @@ namespace System public bool TryGetValue(TKey key, out TValue value) => throw null; } - // Generated from `System.Runtime.CompilerServices.ConfiguredAsyncDisposable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredAsyncDisposable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredAsyncDisposable { // Stub generator skipped constructor public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable DisposeAsync() => throw null; } - // Generated from `System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredCancelableAsyncEnumerable { - // Generated from `System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<>+Enumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<>+Enumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct Enumerator { public T Current { get => throw null; } @@ -9582,10 +10333,10 @@ namespace System public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable WithCancellation(System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Runtime.CompilerServices.ConfiguredTaskAwaitable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredTaskAwaitable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredTaskAwaitable { - // Generated from `System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion { // Stub generator skipped constructor @@ -9600,10 +10351,10 @@ namespace System public System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter() => throw null; } - // Generated from `System.Runtime.CompilerServices.ConfiguredTaskAwaitable<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredTaskAwaitable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredTaskAwaitable { - // Generated from `System.Runtime.CompilerServices.ConfiguredTaskAwaitable<>+ConfiguredTaskAwaiter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredTaskAwaitable<>+ConfiguredTaskAwaiter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion { // Stub generator skipped constructor @@ -9618,10 +10369,10 @@ namespace System public System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter() => throw null; } - // Generated from `System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredValueTaskAwaitable { - // Generated from `System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion { // Stub generator skipped constructor @@ -9636,10 +10387,10 @@ namespace System public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter GetAwaiter() => throw null; } - // Generated from `System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredValueTaskAwaitable { - // Generated from `System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<>+ConfiguredValueTaskAwaiter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<>+ConfiguredValueTaskAwaiter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ConfiguredValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion { // Stub generator skipped constructor @@ -9654,21 +10405,21 @@ namespace System public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter GetAwaiter() => throw null; } - // Generated from `System.Runtime.CompilerServices.CustomConstantAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.CustomConstantAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CustomConstantAttribute : System.Attribute { protected CustomConstantAttribute() => throw null; public abstract object Value { get; } } - // Generated from `System.Runtime.CompilerServices.DateTimeConstantAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.DateTimeConstantAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DateTimeConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute { public DateTimeConstantAttribute(System.Int64 ticks) => throw null; public override object Value { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.DecimalConstantAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.DecimalConstantAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DecimalConstantAttribute : System.Attribute { public DecimalConstantAttribute(System.Byte scale, System.Byte sign, int hi, int mid, int low) => throw null; @@ -9676,14 +10427,35 @@ namespace System public System.Decimal Value { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.DefaultDependencyAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.DefaultDependencyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DefaultDependencyAttribute : System.Attribute { public DefaultDependencyAttribute(System.Runtime.CompilerServices.LoadHint loadHintArgument) => throw null; public System.Runtime.CompilerServices.LoadHint LoadHint { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.DependencyAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.DefaultInterpolatedStringHandler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + // Generated from `System.Runtime.CompilerServices.DependencyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DependencyAttribute : System.Attribute { public DependencyAttribute(string dependentAssemblyArgument, System.Runtime.CompilerServices.LoadHint loadHintArgument) => throw null; @@ -9691,37 +10463,37 @@ namespace System public System.Runtime.CompilerServices.LoadHint LoadHint { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.DisablePrivateReflectionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.DisablePrivateReflectionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DisablePrivateReflectionAttribute : System.Attribute { public DisablePrivateReflectionAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.DiscardableAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.DiscardableAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DiscardableAttribute : System.Attribute { public DiscardableAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.EnumeratorCancellationAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.EnumeratorCancellationAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EnumeratorCancellationAttribute : System.Attribute { public EnumeratorCancellationAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.ExtensionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ExtensionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExtensionAttribute : System.Attribute { public ExtensionAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.FixedAddressValueTypeAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.FixedAddressValueTypeAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FixedAddressValueTypeAttribute : System.Attribute { public FixedAddressValueTypeAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.FixedBufferAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.FixedBufferAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FixedBufferAttribute : System.Attribute { public System.Type ElementType { get => throw null; } @@ -9729,51 +10501,51 @@ namespace System public int Length { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.FormattableStringFactory` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.FormattableStringFactory` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class FormattableStringFactory { public static System.FormattableString Create(string format, params object[] arguments) => throw null; } - // Generated from `System.Runtime.CompilerServices.IAsyncStateMachine` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IAsyncStateMachine` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IAsyncStateMachine { void MoveNext(); void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine); } - // Generated from `System.Runtime.CompilerServices.ICriticalNotifyCompletion` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ICriticalNotifyCompletion` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICriticalNotifyCompletion : System.Runtime.CompilerServices.INotifyCompletion { void UnsafeOnCompleted(System.Action continuation); } - // Generated from `System.Runtime.CompilerServices.INotifyCompletion` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.INotifyCompletion` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface INotifyCompletion { void OnCompleted(System.Action continuation); } - // Generated from `System.Runtime.CompilerServices.IStrongBox` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IStrongBox` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IStrongBox { object Value { get; set; } } - // Generated from `System.Runtime.CompilerServices.ITuple` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ITuple` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ITuple { object this[int index] { get; } int Length { get; } } - // Generated from `System.Runtime.CompilerServices.IndexerNameAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IndexerNameAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IndexerNameAttribute : System.Attribute { public IndexerNameAttribute(string indexerName) => throw null; } - // Generated from `System.Runtime.CompilerServices.InternalsVisibleToAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.InternalsVisibleToAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InternalsVisibleToAttribute : System.Attribute { public bool AllInternalsVisible { get => throw null; set => throw null; } @@ -9781,40 +10553,54 @@ namespace System public InternalsVisibleToAttribute(string assemblyName) => throw null; } - // Generated from `System.Runtime.CompilerServices.IsByRefLikeAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class InterpolatedStringHandlerArgumentAttribute : System.Attribute + { + public string[] Arguments { get => throw null; } + public InterpolatedStringHandlerArgumentAttribute(params string[] arguments) => throw null; + public InterpolatedStringHandlerArgumentAttribute(string argument) => throw null; + } + + // Generated from `System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class InterpolatedStringHandlerAttribute : System.Attribute + { + public InterpolatedStringHandlerAttribute() => throw null; + } + + // Generated from `System.Runtime.CompilerServices.IsByRefLikeAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IsByRefLikeAttribute : System.Attribute { public IsByRefLikeAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.IsConst` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsConst` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsConst { } - // Generated from `System.Runtime.CompilerServices.IsExternalInit` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsExternalInit` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsExternalInit { } - // Generated from `System.Runtime.CompilerServices.IsReadOnlyAttribute` in `System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Formats.Asn1, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public partial class IsReadOnlyAttribute : System.Attribute + // Generated from `System.Runtime.CompilerServices.IsReadOnlyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class IsReadOnlyAttribute : System.Attribute { public IsReadOnlyAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.IsVolatile` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IsVolatile` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class IsVolatile { } - // Generated from `System.Runtime.CompilerServices.IteratorStateMachineAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.IteratorStateMachineAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IteratorStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute { public IteratorStateMachineAttribute(System.Type stateMachineType) : base(default(System.Type)) => throw null; } - // Generated from `System.Runtime.CompilerServices.LoadHint` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.LoadHint` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum LoadHint { Always, @@ -9822,7 +10608,7 @@ namespace System Sometimes, } - // Generated from `System.Runtime.CompilerServices.MethodCodeType` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.MethodCodeType` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum MethodCodeType { IL, @@ -9831,7 +10617,7 @@ namespace System Runtime, } - // Generated from `System.Runtime.CompilerServices.MethodImplAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.MethodImplAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MethodImplAttribute : System.Attribute { public System.Runtime.CompilerServices.MethodCodeType MethodCodeType; @@ -9841,7 +10627,7 @@ namespace System public System.Runtime.CompilerServices.MethodImplOptions Value { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.MethodImplOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.MethodImplOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum MethodImplOptions { @@ -9856,19 +10642,47 @@ namespace System Unmanaged, } - // Generated from `System.Runtime.CompilerServices.ModuleInitializerAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ModuleInitializerAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ModuleInitializerAttribute : System.Attribute { public ModuleInitializerAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.PreserveBaseOverridesAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.Runtime.CompilerServices.PreserveBaseOverridesAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PreserveBaseOverridesAttribute : System.Attribute { public PreserveBaseOverridesAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.ReferenceAssemblyAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ReferenceAssemblyAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReferenceAssemblyAttribute : System.Attribute { public string Description { get => throw null; } @@ -9876,14 +10690,14 @@ namespace System public ReferenceAssemblyAttribute(string description) => throw null; } - // Generated from `System.Runtime.CompilerServices.RuntimeCompatibilityAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.RuntimeCompatibilityAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RuntimeCompatibilityAttribute : System.Attribute { public RuntimeCompatibilityAttribute() => throw null; public bool WrapNonExceptionThrows { get => throw null; set => throw null; } } - // Generated from `System.Runtime.CompilerServices.RuntimeFeature` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.RuntimeFeature` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class RuntimeFeature { public const string CovariantReturnsOfClasses = default; @@ -9893,16 +10707,17 @@ namespace System public static bool IsSupported(string feature) => throw null; public const string PortablePdb = default; public const string UnmanagedSignatureCallingConvention = default; + public const string VirtualStaticsInInterfaces = default; } - // Generated from `System.Runtime.CompilerServices.RuntimeHelpers` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.RuntimeHelpers` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class RuntimeHelpers { - // Generated from `System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void CleanupCode(object userData, bool exceptionThrown); - // Generated from `System.Runtime.CompilerServices.RuntimeHelpers+TryCode` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.RuntimeHelpers+TryCode` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void TryCode(object userData); @@ -9929,7 +10744,7 @@ namespace System public static bool TryEnsureSufficientExecutionStack() => throw null; } - // Generated from `System.Runtime.CompilerServices.RuntimeWrappedException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.RuntimeWrappedException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RuntimeWrappedException : System.Exception { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -9937,32 +10752,32 @@ namespace System public object WrappedException { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.SkipLocalsInitAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.SkipLocalsInitAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SkipLocalsInitAttribute : System.Attribute { public SkipLocalsInitAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.SpecialNameAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.SpecialNameAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SpecialNameAttribute : System.Attribute { public SpecialNameAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.StateMachineAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.StateMachineAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StateMachineAttribute : System.Attribute { public StateMachineAttribute(System.Type stateMachineType) => throw null; public System.Type StateMachineType { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.StringFreezingAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.StringFreezingAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringFreezingAttribute : System.Attribute { public StringFreezingAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.StrongBox<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.StrongBox<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StrongBox : System.Runtime.CompilerServices.IStrongBox { public StrongBox() => throw null; @@ -9971,13 +10786,13 @@ namespace System object System.Runtime.CompilerServices.IStrongBox.Value { get => throw null; set => throw null; } } - // Generated from `System.Runtime.CompilerServices.SuppressIldasmAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.SuppressIldasmAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SuppressIldasmAttribute : System.Attribute { public SuppressIldasmAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.SwitchExpressionException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.SwitchExpressionException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SwitchExpressionException : System.InvalidOperationException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -9990,7 +10805,7 @@ namespace System public object UnmatchedValue { get => throw null; } } - // Generated from `System.Runtime.CompilerServices.TaskAwaiter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.TaskAwaiter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion { public void GetResult() => throw null; @@ -10000,7 +10815,7 @@ namespace System public void UnsafeOnCompleted(System.Action continuation) => throw null; } - // Generated from `System.Runtime.CompilerServices.TaskAwaiter<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.TaskAwaiter<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct TaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion { public TResult GetResult() => throw null; @@ -10010,34 +10825,34 @@ namespace System public void UnsafeOnCompleted(System.Action continuation) => throw null; } - // Generated from `System.Runtime.CompilerServices.TupleElementNamesAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.TupleElementNamesAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TupleElementNamesAttribute : System.Attribute { public System.Collections.Generic.IList TransformNames { get => throw null; } public TupleElementNamesAttribute(string[] transformNames) => throw null; } - // Generated from `System.Runtime.CompilerServices.TypeForwardedFromAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.TypeForwardedFromAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeForwardedFromAttribute : System.Attribute { public string AssemblyFullName { get => throw null; } public TypeForwardedFromAttribute(string assemblyFullName) => throw null; } - // Generated from `System.Runtime.CompilerServices.TypeForwardedToAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.TypeForwardedToAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TypeForwardedToAttribute : System.Attribute { public System.Type Destination { get => throw null; } public TypeForwardedToAttribute(System.Type destination) => throw null; } - // Generated from `System.Runtime.CompilerServices.UnsafeValueTypeAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.UnsafeValueTypeAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnsafeValueTypeAttribute : System.Attribute { public UnsafeValueTypeAttribute() => throw null; } - // Generated from `System.Runtime.CompilerServices.ValueTaskAwaiter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ValueTaskAwaiter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion { public void GetResult() => throw null; @@ -10047,7 +10862,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Runtime.CompilerServices.ValueTaskAwaiter<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.ValueTaskAwaiter<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ValueTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion { public TResult GetResult() => throw null; @@ -10057,10 +10872,10 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Runtime.CompilerServices.YieldAwaitable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.YieldAwaitable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct YieldAwaitable { - // Generated from `System.Runtime.CompilerServices.YieldAwaitable+YieldAwaiter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.CompilerServices.YieldAwaitable+YieldAwaiter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct YieldAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion { public void GetResult() => throw null; @@ -10078,7 +10893,7 @@ namespace System } namespace ConstrainedExecution { - // Generated from `System.Runtime.ConstrainedExecution.Cer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.ConstrainedExecution.Cer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum Cer { MayFail, @@ -10086,7 +10901,7 @@ namespace System Success, } - // Generated from `System.Runtime.ConstrainedExecution.Consistency` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.ConstrainedExecution.Consistency` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum Consistency { MayCorruptAppDomain, @@ -10095,20 +10910,20 @@ namespace System WillNotCorruptState, } - // Generated from `System.Runtime.ConstrainedExecution.CriticalFinalizerObject` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.ConstrainedExecution.CriticalFinalizerObject` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CriticalFinalizerObject { protected CriticalFinalizerObject() => throw null; // ERR: Stub generator didn't handle member: ~CriticalFinalizerObject } - // Generated from `System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PrePrepareMethodAttribute : System.Attribute { public PrePrepareMethodAttribute() => throw null; } - // Generated from `System.Runtime.ConstrainedExecution.ReliabilityContractAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.ConstrainedExecution.ReliabilityContractAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReliabilityContractAttribute : System.Attribute { public System.Runtime.ConstrainedExecution.Cer Cer { get => throw null; } @@ -10119,24 +10934,25 @@ namespace System } namespace ExceptionServices { - // Generated from `System.Runtime.ExceptionServices.ExceptionDispatchInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.ExceptionServices.ExceptionDispatchInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FirstChanceExceptionEventArgs : System.EventArgs { public System.Exception Exception { get => throw null; } public FirstChanceExceptionEventArgs(System.Exception exception) => throw null; } - // Generated from `System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HandleProcessCorruptedStateExceptionsAttribute : System.Attribute { public HandleProcessCorruptedStateExceptionsAttribute() => throw null; @@ -10145,7 +10961,7 @@ namespace System } namespace InteropServices { - // Generated from `System.Runtime.InteropServices.CharSet` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CharSet` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CharSet { Ansi, @@ -10154,14 +10970,14 @@ namespace System Unicode, } - // Generated from `System.Runtime.InteropServices.ComVisibleAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ComVisibleAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComVisibleAttribute : System.Attribute { public ComVisibleAttribute(bool visibility) => throw null; public bool Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.CriticalHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.CriticalHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable { public void Close() => throw null; @@ -10177,7 +10993,7 @@ namespace System // ERR: Stub generator didn't handle member: ~CriticalHandle } - // Generated from `System.Runtime.InteropServices.ExternalException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.ExternalException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExternalException : System.SystemException { public virtual int ErrorCode { get => throw null; } @@ -10189,14 +11005,14 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Runtime.InteropServices.FieldOffsetAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.FieldOffsetAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FieldOffsetAttribute : System.Attribute { public FieldOffsetAttribute(int offset) => throw null; public int Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.GCHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.GCHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct GCHandle { public static bool operator !=(System.Runtime.InteropServices.GCHandle a, System.Runtime.InteropServices.GCHandle b) => throw null; @@ -10216,7 +11032,7 @@ namespace System public static explicit operator System.Runtime.InteropServices.GCHandle(System.IntPtr value) => throw null; } - // Generated from `System.Runtime.InteropServices.GCHandleType` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.GCHandleType` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum GCHandleType { Normal, @@ -10225,13 +11041,13 @@ namespace System WeakTrackResurrection, } - // Generated from `System.Runtime.InteropServices.InAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.InAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class InAttribute : System.Attribute { public InAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.LayoutKind` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.LayoutKind` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum LayoutKind { Auto, @@ -10239,13 +11055,13 @@ namespace System Sequential, } - // Generated from `System.Runtime.InteropServices.OutAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.OutAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OutAttribute : System.Attribute { public OutAttribute() => throw null; } - // Generated from `System.Runtime.InteropServices.SafeBuffer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.SafeBuffer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SafeBuffer : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { unsafe public void AcquirePointer(ref System.Byte* pointer) => throw null; @@ -10255,13 +11071,15 @@ namespace System 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; } - // Generated from `System.Runtime.InteropServices.SafeHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.SafeHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SafeHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable { public void Close() => throw null; @@ -10280,7 +11098,7 @@ namespace System // ERR: Stub generator didn't handle member: ~SafeHandle } - // Generated from `System.Runtime.InteropServices.StructLayoutAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.StructLayoutAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StructLayoutAttribute : System.Attribute { public System.Runtime.InteropServices.CharSet CharSet; @@ -10291,7 +11109,7 @@ namespace System public System.Runtime.InteropServices.LayoutKind Value { get => throw null; } } - // Generated from `System.Runtime.InteropServices.SuppressGCTransitionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.InteropServices.SuppressGCTransitionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SuppressGCTransitionAttribute : System.Attribute { public SuppressGCTransitionAttribute() => throw null; @@ -10300,7 +11118,7 @@ namespace System } namespace Remoting { - // Generated from `System.Runtime.Remoting.ObjectHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Remoting.ObjectHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObjectHandle : System.MarshalByRefObject { public ObjectHandle(object o) => throw null; @@ -10310,13 +11128,13 @@ namespace System } namespace Serialization { - // Generated from `System.Runtime.Serialization.IDeserializationCallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.IDeserializationCallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDeserializationCallback { void OnDeserialization(object sender); } - // Generated from `System.Runtime.Serialization.IFormatterConverter` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.IFormatterConverter` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IFormatterConverter { object Convert(object value, System.Type type); @@ -10338,63 +11156,63 @@ namespace System System.UInt64 ToUInt64(object value); } - // Generated from `System.Runtime.Serialization.IObjectReference` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.IObjectReference` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IObjectReference { object GetRealObject(System.Runtime.Serialization.StreamingContext context); } - // Generated from `System.Runtime.Serialization.ISafeSerializationData` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ISafeSerializationData` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISafeSerializationData { void CompleteDeserialization(object deserialized); } - // Generated from `System.Runtime.Serialization.ISerializable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.ISerializable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISerializable { void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context); } - // Generated from `System.Runtime.Serialization.OnDeserializedAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.OnDeserializedAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OnDeserializedAttribute : System.Attribute { public OnDeserializedAttribute() => throw null; } - // Generated from `System.Runtime.Serialization.OnDeserializingAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.OnDeserializingAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OnDeserializingAttribute : System.Attribute { public OnDeserializingAttribute() => throw null; } - // Generated from `System.Runtime.Serialization.OnSerializedAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.OnSerializedAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OnSerializedAttribute : System.Attribute { public OnSerializedAttribute() => throw null; } - // Generated from `System.Runtime.Serialization.OnSerializingAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.OnSerializingAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OnSerializingAttribute : System.Attribute { public OnSerializingAttribute() => throw null; } - // Generated from `System.Runtime.Serialization.OptionalFieldAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.OptionalFieldAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OptionalFieldAttribute : System.Attribute { public OptionalFieldAttribute() => throw null; public int VersionAdded { get => throw null; set => throw null; } } - // Generated from `System.Runtime.Serialization.SafeSerializationEventArgs` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.SafeSerializationEventArgs` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeSerializationEventArgs : System.EventArgs { public void AddSerializedState(System.Runtime.Serialization.ISafeSerializationData serializedState) => throw null; public System.Runtime.Serialization.StreamingContext StreamingContext { get => throw null; } } - // Generated from `System.Runtime.Serialization.SerializationEntry` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.SerializationEntry` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SerializationEntry { public string Name { get => throw null; } @@ -10403,7 +11221,7 @@ namespace System public object Value { get => throw null; } } - // Generated from `System.Runtime.Serialization.SerializationException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.SerializationException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SerializationException : System.SystemException { public SerializationException() => throw null; @@ -10412,7 +11230,7 @@ namespace System public SerializationException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Runtime.Serialization.SerializationInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.SerializationInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SerializationInfo { public void AddValue(string name, System.DateTime value) => throw null; @@ -10459,7 +11277,7 @@ namespace System public void SetType(System.Type type) => throw null; } - // Generated from `System.Runtime.Serialization.SerializationInfoEnumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.SerializationInfoEnumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SerializationInfoEnumerator : System.Collections.IEnumerator { public System.Runtime.Serialization.SerializationEntry Current { get => throw null; } @@ -10471,7 +11289,7 @@ namespace System public object Value { get => throw null; } } - // Generated from `System.Runtime.Serialization.StreamingContext` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.StreamingContext` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct StreamingContext { public object Context { get => throw null; } @@ -10483,7 +11301,7 @@ namespace System public StreamingContext(System.Runtime.Serialization.StreamingContextStates state, object additional) => throw null; } - // Generated from `System.Runtime.Serialization.StreamingContextStates` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Serialization.StreamingContextStates` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum StreamingContextStates { @@ -10501,14 +11319,14 @@ namespace System } namespace Versioning { - // Generated from `System.Runtime.Versioning.ComponentGuaranteesAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Versioning.ComponentGuaranteesAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ComponentGuaranteesAttribute : System.Attribute { public ComponentGuaranteesAttribute(System.Runtime.Versioning.ComponentGuaranteesOptions guarantees) => throw null; public System.Runtime.Versioning.ComponentGuaranteesOptions Guarantees { get => throw null; } } - // Generated from `System.Runtime.Versioning.ComponentGuaranteesOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Versioning.ComponentGuaranteesOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ComponentGuaranteesOptions { @@ -10518,7 +11336,7 @@ namespace System Stable, } - // Generated from `System.Runtime.Versioning.FrameworkName` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Versioning.FrameworkName` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FrameworkName : System.IEquatable { public static bool operator !=(System.Runtime.Versioning.FrameworkName left, System.Runtime.Versioning.FrameworkName right) => throw null; @@ -10536,14 +11354,23 @@ namespace System public System.Version Version { get => throw null; } } - // Generated from `System.Runtime.Versioning.OSPlatformAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public abstract class OSPlatformAttribute : System.Attribute + // Generated from `System.Runtime.Versioning.OSPlatformAttribute` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public abstract partial class OSPlatformAttribute : System.Attribute { protected private OSPlatformAttribute(string platformName) => throw null; public string PlatformName { get => throw null; } } - // Generated from `System.Runtime.Versioning.ResourceConsumptionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Versioning.RequiresPreviewFeaturesAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } + } + + // Generated from `System.Runtime.Versioning.ResourceConsumptionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ResourceConsumptionAttribute : System.Attribute { public System.Runtime.Versioning.ResourceScope ConsumptionScope { get => throw null; } @@ -10552,14 +11379,14 @@ namespace System public System.Runtime.Versioning.ResourceScope ResourceScope { get => throw null; } } - // Generated from `System.Runtime.Versioning.ResourceExposureAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Versioning.ResourceExposureAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ResourceExposureAttribute : System.Attribute { public ResourceExposureAttribute(System.Runtime.Versioning.ResourceScope exposureLevel) => throw null; public System.Runtime.Versioning.ResourceScope ResourceExposureLevel { get => throw null; } } - // Generated from `System.Runtime.Versioning.ResourceScope` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Versioning.ResourceScope` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ResourceScope { @@ -10572,13 +11399,19 @@ namespace System Process, } - // Generated from `System.Runtime.Versioning.SupportedOSPlatformAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SupportedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute + // Generated from `System.Runtime.Versioning.SupportedOSPlatformAttribute` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public partial class SupportedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute { public SupportedOSPlatformAttribute(string platformName) : base(default(string)) => throw null; } - // Generated from `System.Runtime.Versioning.TargetFrameworkAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Versioning.SupportedOSPlatformGuardAttribute` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public partial class SupportedOSPlatformGuardAttribute : System.Runtime.Versioning.OSPlatformAttribute + { + public SupportedOSPlatformGuardAttribute(string platformName) : base(default(string)) => throw null; + } + + // Generated from `System.Runtime.Versioning.TargetFrameworkAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TargetFrameworkAttribute : System.Attribute { public string FrameworkDisplayName { get => throw null; set => throw null; } @@ -10586,19 +11419,25 @@ namespace System public TargetFrameworkAttribute(string frameworkName) => throw null; } - // Generated from `System.Runtime.Versioning.TargetPlatformAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class TargetPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute + // Generated from `System.Runtime.Versioning.TargetPlatformAttribute` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public partial class TargetPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute { public TargetPlatformAttribute(string platformName) : base(default(string)) => throw null; } - // Generated from `System.Runtime.Versioning.UnsupportedOSPlatformAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class UnsupportedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute + // Generated from `System.Runtime.Versioning.UnsupportedOSPlatformAttribute` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public partial class UnsupportedOSPlatformAttribute : System.Runtime.Versioning.OSPlatformAttribute { public UnsupportedOSPlatformAttribute(string platformName) : base(default(string)) => throw null; } - // Generated from `System.Runtime.Versioning.VersioningHelper` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute` in `Microsoft.Extensions.Hosting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public partial class UnsupportedOSPlatformGuardAttribute : System.Runtime.Versioning.OSPlatformAttribute + { + public UnsupportedOSPlatformGuardAttribute(string platformName) : base(default(string)) => throw null; + } + + // Generated from `System.Runtime.Versioning.VersioningHelper` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class VersioningHelper { public static string MakeVersionSafeName(string name, System.Runtime.Versioning.ResourceScope from, System.Runtime.Versioning.ResourceScope to) => throw null; @@ -10609,14 +11448,14 @@ namespace System } namespace Security { - // Generated from `System.Security.AllowPartiallyTrustedCallersAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AllowPartiallyTrustedCallersAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AllowPartiallyTrustedCallersAttribute : System.Attribute { public AllowPartiallyTrustedCallersAttribute() => throw null; public System.Security.PartialTrustVisibilityLevel PartialTrustVisibilityLevel { get => throw null; set => throw null; } } - // Generated from `System.Security.IPermission` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.IPermission` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IPermission : System.Security.ISecurityEncodable { System.Security.IPermission Copy(); @@ -10626,14 +11465,14 @@ namespace System System.Security.IPermission Union(System.Security.IPermission target); } - // Generated from `System.Security.ISecurityEncodable` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.ISecurityEncodable` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ISecurityEncodable { void FromXml(System.Security.SecurityElement e); System.Security.SecurityElement ToXml(); } - // Generated from `System.Security.IStackWalk` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.IStackWalk` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IStackWalk { void Assert(); @@ -10642,14 +11481,14 @@ namespace System void PermitOnly(); } - // Generated from `System.Security.PartialTrustVisibilityLevel` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.PartialTrustVisibilityLevel` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PartialTrustVisibilityLevel { NotVisibleByDefault, VisibleToAllHosts, } - // Generated from `System.Security.PermissionSet` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.PermissionSet` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -10690,7 +11529,7 @@ namespace System public System.Security.PermissionSet Union(System.Security.PermissionSet other) => throw null; } - // Generated from `System.Security.SecurityCriticalAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecurityCriticalAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecurityCriticalAttribute : System.Attribute { public System.Security.SecurityCriticalScope Scope { get => throw null; } @@ -10698,14 +11537,14 @@ namespace System public SecurityCriticalAttribute(System.Security.SecurityCriticalScope scope) => throw null; } - // Generated from `System.Security.SecurityCriticalScope` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecurityCriticalScope` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SecurityCriticalScope { Everything, Explicit, } - // Generated from `System.Security.SecurityElement` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecurityElement` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecurityElement { public void AddAttribute(string name, string value) => throw null; @@ -10730,7 +11569,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Security.SecurityException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecurityException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecurityException : System.SystemException { public object Demanded { get => throw null; set => throw null; } @@ -10753,7 +11592,7 @@ namespace System public string Url { get => throw null; set => throw null; } } - // Generated from `System.Security.SecurityRuleSet` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecurityRuleSet` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SecurityRuleSet { Level1, @@ -10761,7 +11600,7 @@ namespace System None, } - // Generated from `System.Security.SecurityRulesAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecurityRulesAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecurityRulesAttribute : System.Attribute { public System.Security.SecurityRuleSet RuleSet { get => throw null; } @@ -10769,37 +11608,37 @@ namespace System public bool SkipVerificationInFullTrust { get => throw null; set => throw null; } } - // Generated from `System.Security.SecuritySafeCriticalAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecuritySafeCriticalAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecuritySafeCriticalAttribute : System.Attribute { public SecuritySafeCriticalAttribute() => throw null; } - // Generated from `System.Security.SecurityTransparentAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecurityTransparentAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecurityTransparentAttribute : System.Attribute { public SecurityTransparentAttribute() => throw null; } - // Generated from `System.Security.SecurityTreatAsSafeAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SecurityTreatAsSafeAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecurityTreatAsSafeAttribute : System.Attribute { public SecurityTreatAsSafeAttribute() => throw null; } - // Generated from `System.Security.SuppressUnmanagedCodeSecurityAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.SuppressUnmanagedCodeSecurityAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SuppressUnmanagedCodeSecurityAttribute : System.Attribute { public SuppressUnmanagedCodeSecurityAttribute() => throw null; } - // Generated from `System.Security.UnverifiableCodeAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.UnverifiableCodeAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnverifiableCodeAttribute : System.Attribute { public UnverifiableCodeAttribute() => throw null; } - // Generated from `System.Security.VerificationException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.VerificationException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class VerificationException : System.SystemException { public VerificationException() => throw null; @@ -10810,7 +11649,7 @@ namespace System namespace Cryptography { - // Generated from `System.Security.Cryptography.CryptographicException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CryptographicException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CryptographicException : System.SystemException { public CryptographicException() => throw null; @@ -10824,20 +11663,20 @@ namespace System } namespace Permissions { - // Generated from `System.Security.Permissions.CodeAccessSecurityAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Permissions.CodeAccessSecurityAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CodeAccessSecurityAttribute : System.Security.Permissions.SecurityAttribute { protected CodeAccessSecurityAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) => throw null; } - // Generated from `System.Security.Permissions.PermissionState` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Permissions.PermissionState` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PermissionState { None, Unrestricted, } - // Generated from `System.Security.Permissions.SecurityAction` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Permissions.SecurityAction` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum SecurityAction { Assert, @@ -10851,7 +11690,7 @@ namespace System RequestRefuse, } - // Generated from `System.Security.Permissions.SecurityAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Permissions.SecurityAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SecurityAttribute : System.Attribute { public System.Security.Permissions.SecurityAction Action { get => throw null; set => throw null; } @@ -10860,7 +11699,7 @@ namespace System public bool Unrestricted { get => throw null; set => throw null; } } - // Generated from `System.Security.Permissions.SecurityPermissionAttribute` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Permissions.SecurityPermissionAttribute` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecurityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute { public bool Assertion { get => throw null; set => throw null; } @@ -10882,7 +11721,7 @@ namespace System public bool UnmanagedCode { get => throw null; set => throw null; } } - // Generated from `System.Security.Permissions.SecurityPermissionFlag` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Permissions.SecurityPermissionFlag` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SecurityPermissionFlag { @@ -10907,7 +11746,7 @@ namespace System } namespace Principal { - // Generated from `System.Security.Principal.IIdentity` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.IIdentity` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IIdentity { string AuthenticationType { get; } @@ -10915,14 +11754,14 @@ namespace System string Name { get; } } - // Generated from `System.Security.Principal.IPrincipal` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.IPrincipal` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IPrincipal { System.Security.Principal.IIdentity Identity { get; } bool IsInRole(string role); } - // Generated from `System.Security.Principal.PrincipalPolicy` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.PrincipalPolicy` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PrincipalPolicy { NoPrincipal, @@ -10930,7 +11769,7 @@ namespace System WindowsPrincipal, } - // Generated from `System.Security.Principal.TokenImpersonationLevel` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.TokenImpersonationLevel` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TokenImpersonationLevel { Anonymous, @@ -10944,7 +11783,7 @@ namespace System } namespace Text { - // Generated from `System.Text.Decoder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.Decoder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -10964,7 +11803,7 @@ namespace System public virtual void Reset() => throw null; } - // Generated from `System.Text.DecoderExceptionFallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.DecoderExceptionFallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DecoderExceptionFallback : System.Text.DecoderFallback { public override System.Text.DecoderFallbackBuffer CreateFallbackBuffer() => throw null; @@ -10974,7 +11813,7 @@ namespace System public override int MaxCharCount { get => throw null; } } - // Generated from `System.Text.DecoderExceptionFallbackBuffer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.DecoderExceptionFallbackBuffer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DecoderExceptionFallbackBuffer : System.Text.DecoderFallbackBuffer { public DecoderExceptionFallbackBuffer() => throw null; @@ -10984,7 +11823,7 @@ namespace System public override int Remaining { get => throw null; } } - // Generated from `System.Text.DecoderFallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.DecoderFallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DecoderFallback { public abstract System.Text.DecoderFallbackBuffer CreateFallbackBuffer(); @@ -10994,7 +11833,7 @@ namespace System public static System.Text.DecoderFallback ReplacementFallback { get => throw null; } } - // Generated from `System.Text.DecoderFallbackBuffer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.DecoderFallbackBuffer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DecoderFallbackBuffer { protected DecoderFallbackBuffer() => throw null; @@ -11005,7 +11844,7 @@ namespace System public virtual void Reset() => throw null; } - // Generated from `System.Text.DecoderFallbackException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.DecoderFallbackException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DecoderFallbackException : System.ArgumentException { public System.Byte[] BytesUnknown { get => throw null; } @@ -11016,7 +11855,7 @@ namespace System public int Index { get => throw null; } } - // Generated from `System.Text.DecoderReplacementFallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.DecoderReplacementFallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DecoderReplacementFallback : System.Text.DecoderFallback { public override System.Text.DecoderFallbackBuffer CreateFallbackBuffer() => throw null; @@ -11028,7 +11867,7 @@ namespace System public override int MaxCharCount { get => throw null; } } - // Generated from `System.Text.DecoderReplacementFallbackBuffer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.DecoderReplacementFallbackBuffer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DecoderReplacementFallbackBuffer : System.Text.DecoderFallbackBuffer { public DecoderReplacementFallbackBuffer(System.Text.DecoderReplacementFallback fallback) => throw null; @@ -11039,7 +11878,7 @@ namespace System public override void Reset() => throw null; } - // Generated from `System.Text.Encoder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.Encoder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -11057,7 +11896,7 @@ namespace System public virtual void Reset() => throw null; } - // Generated from `System.Text.EncoderExceptionFallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.EncoderExceptionFallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EncoderExceptionFallback : System.Text.EncoderFallback { public override System.Text.EncoderFallbackBuffer CreateFallbackBuffer() => throw null; @@ -11067,7 +11906,7 @@ namespace System public override int MaxCharCount { get => throw null; } } - // Generated from `System.Text.EncoderExceptionFallbackBuffer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.EncoderExceptionFallbackBuffer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EncoderExceptionFallbackBuffer : System.Text.EncoderFallbackBuffer { public EncoderExceptionFallbackBuffer() => throw null; @@ -11078,7 +11917,7 @@ namespace System public override int Remaining { get => throw null; } } - // Generated from `System.Text.EncoderFallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.EncoderFallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EncoderFallback { public abstract System.Text.EncoderFallbackBuffer CreateFallbackBuffer(); @@ -11088,7 +11927,7 @@ namespace System public static System.Text.EncoderFallback ReplacementFallback { get => throw null; } } - // Generated from `System.Text.EncoderFallbackBuffer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.EncoderFallbackBuffer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EncoderFallbackBuffer { protected EncoderFallbackBuffer() => throw null; @@ -11100,7 +11939,7 @@ namespace System public virtual void Reset() => throw null; } - // Generated from `System.Text.EncoderFallbackException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.EncoderFallbackException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EncoderFallbackException : System.ArgumentException { public System.Char CharUnknown { get => throw null; } @@ -11113,7 +11952,7 @@ namespace System public bool IsUnknownSurrogate() => throw null; } - // Generated from `System.Text.EncoderReplacementFallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.EncoderReplacementFallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EncoderReplacementFallback : System.Text.EncoderFallback { public override System.Text.EncoderFallbackBuffer CreateFallbackBuffer() => throw null; @@ -11125,7 +11964,7 @@ namespace System public override int MaxCharCount { get => throw null; } } - // Generated from `System.Text.EncoderReplacementFallbackBuffer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.EncoderReplacementFallbackBuffer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EncoderReplacementFallbackBuffer : System.Text.EncoderFallbackBuffer { public EncoderReplacementFallbackBuffer(System.Text.EncoderReplacementFallback fallback) => throw null; @@ -11137,7 +11976,7 @@ namespace System public override void Reset() => throw null; } - // Generated from `System.Text.Encoding` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.Encoding` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Encoding : System.ICloneable { public static System.Text.Encoding ASCII { get => throw null; } @@ -11214,7 +12053,7 @@ namespace System public virtual int WindowsCodePage { get => throw null; } } - // Generated from `System.Text.EncodingInfo` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.EncodingInfo` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EncodingInfo { public int CodePage { get => throw null; } @@ -11226,7 +12065,7 @@ namespace System public string Name { get => throw null; } } - // Generated from `System.Text.EncodingProvider` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.EncodingProvider` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class EncodingProvider { public EncodingProvider() => throw null; @@ -11237,7 +12076,7 @@ namespace System public virtual System.Collections.Generic.IEnumerable GetEncodings() => throw null; } - // Generated from `System.Text.NormalizationForm` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.NormalizationForm` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum NormalizationForm { FormC, @@ -11246,8 +12085,8 @@ namespace System FormKD, } - // Generated from `System.Text.Rune` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct Rune : System.IComparable, System.IComparable, System.IEquatable + // Generated from `System.Text.Rune` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; @@ -11294,6 +12133,7 @@ namespace System 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; @@ -11302,6 +12142,7 @@ namespace System 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; } @@ -11311,10 +12152,29 @@ namespace System public static explicit operator System.Text.Rune(System.UInt32 value) => throw null; } - // Generated from `System.Text.StringBuilder` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.StringBuilder` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class StringBuilder : System.Runtime.Serialization.ISerializable { - // Generated from `System.Text.StringBuilder+ChunkEnumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.StringBuilder+AppendInterpolatedStringHandler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + + // Generated from `System.Text.StringBuilder+ChunkEnumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ChunkEnumerator { // Stub generator skipped constructor @@ -11326,6 +12186,7 @@ namespace System 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; @@ -11341,6 +12202,7 @@ namespace System 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; @@ -11363,6 +12225,8 @@ namespace System 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")] @@ -11411,7 +12275,7 @@ namespace System public string ToString(int startIndex, int length) => throw null; } - // Generated from `System.Text.StringRuneEnumerator` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.StringRuneEnumerator` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } @@ -11427,7 +12291,7 @@ namespace System namespace Unicode { - // Generated from `System.Text.Unicode.Utf8` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.Unicode.Utf8` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -11438,7 +12302,7 @@ namespace System } namespace Threading { - // Generated from `System.Threading.CancellationToken` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.CancellationToken` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CancellationToken { public static bool operator !=(System.Threading.CancellationToken left, System.Threading.CancellationToken right) => throw null; @@ -11453,14 +12317,16 @@ namespace System 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; } } - // Generated from `System.Threading.CancellationTokenRegistration` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.CancellationTokenRegistration` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct CancellationTokenRegistration : System.IAsyncDisposable, System.IDisposable, System.IEquatable { public static bool operator !=(System.Threading.CancellationTokenRegistration left, System.Threading.CancellationTokenRegistration right) => throw null; @@ -11475,7 +12341,7 @@ namespace System public bool Unregister() => throw null; } - // Generated from `System.Threading.CancellationTokenSource` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.CancellationTokenSource` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CancellationTokenSource : System.IDisposable { public void Cancel() => throw null; @@ -11492,9 +12358,10 @@ namespace System 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; } - // Generated from `System.Threading.LazyThreadSafetyMode` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.LazyThreadSafetyMode` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum LazyThreadSafetyMode { ExecutionAndPublication, @@ -11502,14 +12369,22 @@ namespace System PublicationOnly, } - // Generated from `System.Threading.Timeout` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.PeriodicTimer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; + } + + // Generated from `System.Threading.Timeout` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Timeout { public const int Infinite = default; public static System.TimeSpan InfiniteTimeSpan; } - // Generated from `System.Threading.Timer` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Timer` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Timer : System.MarshalByRefObject, System.IAsyncDisposable, System.IDisposable { public static System.Int64 ActiveCount { get => throw null; } @@ -11527,10 +12402,10 @@ namespace System public Timer(System.Threading.TimerCallback callback, object state, System.UInt32 dueTime, System.UInt32 period) => throw null; } - // Generated from `System.Threading.TimerCallback` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.TimerCallback` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void TimerCallback(object state); - // Generated from `System.Threading.WaitHandle` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.WaitHandle` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class WaitHandle : System.MarshalByRefObject, System.IDisposable { public virtual void Close() => throw null; @@ -11561,7 +12436,7 @@ namespace System public const int WaitTimeout = default; } - // Generated from `System.Threading.WaitHandleExtensions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.WaitHandleExtensions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class WaitHandleExtensions { public static Microsoft.Win32.SafeHandles.SafeWaitHandle GetSafeWaitHandle(this System.Threading.WaitHandle waitHandle) => throw null; @@ -11570,7 +12445,7 @@ namespace System namespace Tasks { - // Generated from `System.Threading.Tasks.ConcurrentExclusiveSchedulerPair` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.ConcurrentExclusiveSchedulerPair` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ConcurrentExclusiveSchedulerPair { public void Complete() => throw null; @@ -11583,7 +12458,7 @@ namespace System public System.Threading.Tasks.TaskScheduler ExclusiveScheduler { get => throw null; } } - // Generated from `System.Threading.Tasks.Task` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Task` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Task : System.IAsyncResult, System.IDisposable { public object AsyncState { get => throw null; } @@ -11668,6 +12543,9 @@ namespace System 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; @@ -11681,7 +12559,7 @@ namespace System public static System.Runtime.CompilerServices.YieldAwaitable Yield() => throw null; } - // Generated from `System.Threading.Tasks.Task<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Task<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Task : System.Threading.Tasks.Task { public System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => throw null; @@ -11716,9 +12594,12 @@ namespace System 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; } - // Generated from `System.Threading.Tasks.TaskAsyncEnumerableExtensions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskAsyncEnumerableExtensions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class TaskAsyncEnumerableExtensions { public static System.Runtime.CompilerServices.ConfiguredAsyncDisposable ConfigureAwait(this System.IAsyncDisposable source, bool continueOnCapturedContext) => throw null; @@ -11726,7 +12607,7 @@ namespace System public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable WithCancellation(this System.Collections.Generic.IAsyncEnumerable source, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Threading.Tasks.TaskCanceledException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskCanceledException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TaskCanceledException : System.OperationCanceledException { public System.Threading.Tasks.Task Task { get => throw null; } @@ -11738,7 +12619,7 @@ namespace System public TaskCanceledException(string message, System.Exception innerException, System.Threading.CancellationToken token) => throw null; } - // Generated from `System.Threading.Tasks.TaskCompletionSource` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskCompletionSource` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TaskCompletionSource { public void SetCanceled() => throw null; @@ -11758,7 +12639,7 @@ namespace System public bool TrySetResult() => throw null; } - // Generated from `System.Threading.Tasks.TaskCompletionSource<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskCompletionSource<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TaskCompletionSource { public void SetCanceled() => throw null; @@ -11778,7 +12659,7 @@ namespace System public bool TrySetResult(TResult result) => throw null; } - // Generated from `System.Threading.Tasks.TaskContinuationOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskContinuationOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TaskContinuationOptions { @@ -11799,7 +12680,7 @@ namespace System RunContinuationsAsynchronously, } - // Generated from `System.Threading.Tasks.TaskCreationOptions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskCreationOptions` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TaskCreationOptions { @@ -11812,14 +12693,14 @@ namespace System RunContinuationsAsynchronously, } - // Generated from `System.Threading.Tasks.TaskExtensions` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public static class TaskExtensions + // Generated from `System.Threading.Tasks.TaskExtensions` in `Microsoft.AspNetCore.Http.Connections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60; System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } - // Generated from `System.Threading.Tasks.TaskFactory` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskFactory` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TaskFactory { public System.Threading.CancellationToken CancellationToken { get => throw null; } @@ -11903,7 +12784,7 @@ namespace System public TaskFactory(System.Threading.Tasks.TaskScheduler scheduler) => throw null; } - // Generated from `System.Threading.Tasks.TaskFactory<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskFactory<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TaskFactory { public System.Threading.CancellationToken CancellationToken { get => throw null; } @@ -11952,7 +12833,7 @@ namespace System public TaskFactory(System.Threading.Tasks.TaskScheduler scheduler) => throw null; } - // Generated from `System.Threading.Tasks.TaskScheduler` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskScheduler` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TaskScheduler { public static System.Threading.Tasks.TaskScheduler Current { get => throw null; } @@ -11969,7 +12850,7 @@ namespace System public static event System.EventHandler UnobservedTaskException; } - // Generated from `System.Threading.Tasks.TaskSchedulerException` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskSchedulerException` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TaskSchedulerException : System.Exception { public TaskSchedulerException() => throw null; @@ -11979,7 +12860,7 @@ namespace System public TaskSchedulerException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Threading.Tasks.TaskStatus` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.TaskStatus` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum TaskStatus { Canceled, @@ -11992,7 +12873,7 @@ namespace System WaitingToRun, } - // Generated from `System.Threading.Tasks.UnobservedTaskExceptionEventArgs` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.UnobservedTaskExceptionEventArgs` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnobservedTaskExceptionEventArgs : System.EventArgs { public System.AggregateException Exception { get => throw null; } @@ -12001,7 +12882,7 @@ namespace System public UnobservedTaskExceptionEventArgs(System.AggregateException exception) => throw null; } - // Generated from `System.Threading.Tasks.ValueTask` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.ValueTask` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ValueTask : System.IEquatable { public static bool operator !=(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; @@ -12028,7 +12909,7 @@ namespace System public ValueTask(System.Threading.Tasks.Task task) => throw null; } - // Generated from `System.Threading.Tasks.ValueTask<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.ValueTask<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ValueTask : System.IEquatable> { public static bool operator !=(System.Threading.Tasks.ValueTask left, System.Threading.Tasks.ValueTask right) => throw null; @@ -12054,7 +12935,7 @@ namespace System namespace Sources { - // Generated from `System.Threading.Tasks.Sources.IValueTaskSource` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Sources.IValueTaskSource` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IValueTaskSource { void GetResult(System.Int16 token); @@ -12062,7 +12943,7 @@ namespace System void OnCompleted(System.Action continuation, object state, System.Int16 token, System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags flags); } - // Generated from `System.Threading.Tasks.Sources.IValueTaskSource<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Sources.IValueTaskSource<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IValueTaskSource { TResult GetResult(System.Int16 token); @@ -12070,7 +12951,7 @@ namespace System void OnCompleted(System.Action continuation, object state, System.Int16 token, System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags flags); } - // Generated from `System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<>` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<>` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ManualResetValueTaskSourceCore { public TResult GetResult(System.Int16 token) => throw null; @@ -12084,7 +12965,7 @@ namespace System public System.Int16 Version { get => throw null; } } - // Generated from `System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ValueTaskSourceOnCompletedFlags { @@ -12093,7 +12974,7 @@ namespace System UseSchedulingContext, } - // Generated from `System.Threading.Tasks.Sources.ValueTaskSourceStatus` in `System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Sources.ValueTaskSourceStatus` in `System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ValueTaskSourceStatus { Canceled, diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.AccessControl.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs similarity index 90% rename from csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.AccessControl.cs rename to csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs index f9e76db5298..d974b297592 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.AccessControl.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.AccessControl.cs @@ -2,53 +2,11 @@ namespace System { - namespace Diagnostics - { - namespace CodeAnalysis - { - /* Duplicate type 'AllowNullAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'DisallowNullAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'DoesNotReturnAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'DoesNotReturnIfAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MaybeNullAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MaybeNullWhenAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MemberNotNullAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MemberNotNullWhenAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'NotNullAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'NotNullIfNotNullAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'NotNullWhenAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - } - } - namespace Runtime - { - namespace Versioning - { - /* Duplicate type 'OSPlatformAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'SupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'TargetPlatformAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'UnsupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - } - } namespace Security { namespace AccessControl { - // Generated from `System.Security.AccessControl.AccessControlActions` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AccessControlActions` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum AccessControlActions { @@ -57,7 +15,7 @@ namespace System View, } - // Generated from `System.Security.AccessControl.AccessControlModification` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AccessControlModification` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AccessControlModification { Add, @@ -68,7 +26,7 @@ namespace System Set, } - // Generated from `System.Security.AccessControl.AccessControlSections` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AccessControlSections` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum AccessControlSections { @@ -80,31 +38,31 @@ namespace System Owner, } - // Generated from `System.Security.AccessControl.AccessControlType` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AccessControlType` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AccessControlType { Allow, Deny, } - // Generated from `System.Security.AccessControl.AccessRule` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AccessRule` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Security.AccessControl.AccessRule<>` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AccessRule<>` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AccessRule : System.Security.AccessControl.AccessRule where T : struct { - 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 AccessRule(string 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; - public AccessRule(System.Security.Principal.IdentityReference 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 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; + public AccessRule(System.Security.Principal.IdentityReference 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 AccessRule(string 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; + 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; } } - // Generated from `System.Security.AccessControl.AceEnumerator` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AceEnumerator` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AceEnumerator : System.Collections.IEnumerator { public System.Security.AccessControl.GenericAce Current { get => throw null; } @@ -113,7 +71,7 @@ namespace System public void Reset() => throw null; } - // Generated from `System.Security.AccessControl.AceFlags` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AceFlags` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum AceFlags { @@ -129,7 +87,7 @@ namespace System SuccessfulAccess, } - // Generated from `System.Security.AccessControl.AceQualifier` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AceQualifier` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AceQualifier { AccessAllowed, @@ -138,7 +96,7 @@ namespace System SystemAudit, } - // Generated from `System.Security.AccessControl.AceType` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AceType` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum AceType { AccessAllowed, @@ -161,7 +119,7 @@ namespace System SystemAuditObject, } - // Generated from `System.Security.AccessControl.AuditFlags` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AuditFlags` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum AuditFlags { @@ -170,24 +128,24 @@ namespace System Success, } - // Generated from `System.Security.AccessControl.AuditRule` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AuditRule` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Security.AccessControl.AuditRule<>` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AuditRule<>` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AuditRule : System.Security.AccessControl.AuditRule where T : struct { - 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 AuditRule(string 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; - public AuditRule(System.Security.Principal.IdentityReference 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 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; + public AuditRule(System.Security.Principal.IdentityReference 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 AuditRule(string 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; + 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; } } - // Generated from `System.Security.AccessControl.AuthorizationRule` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AuthorizationRule` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class AuthorizationRule { protected internal int AccessMask { get => throw null; } @@ -198,7 +156,7 @@ namespace System public System.Security.AccessControl.PropagationFlags PropagationFlags { get => throw null; } } - // Generated from `System.Security.AccessControl.AuthorizationRuleCollection` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.AuthorizationRuleCollection` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AuthorizationRuleCollection : System.Collections.ReadOnlyCollectionBase { public void AddRule(System.Security.AccessControl.AuthorizationRule rule) => throw null; @@ -207,7 +165,7 @@ namespace System public System.Security.AccessControl.AuthorizationRule this[int index] { get => throw null; } } - // Generated from `System.Security.AccessControl.CommonAce` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.CommonAce` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CommonAce : System.Security.AccessControl.QualifiedAce { public override int BinaryLength { get => throw null; } @@ -216,7 +174,7 @@ namespace System public static int MaxOpaqueLength(bool isCallback) => throw null; } - // Generated from `System.Security.AccessControl.CommonAcl` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.CommonAcl` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CommonAcl : System.Security.AccessControl.GenericAcl { public override int BinaryLength { get => throw null; } @@ -232,7 +190,7 @@ namespace System public override System.Byte Revision { get => throw null; } } - // Generated from `System.Security.AccessControl.CommonObjectSecurity` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.CommonObjectSecurity` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class CommonObjectSecurity : System.Security.AccessControl.ObjectSecurity { protected void AddAccessRule(System.Security.AccessControl.AccessRule rule) => throw null; @@ -253,15 +211,15 @@ namespace System protected void SetAuditRule(System.Security.AccessControl.AuditRule rule) => throw null; } - // Generated from `System.Security.AccessControl.CommonSecurityDescriptor` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.CommonSecurityDescriptor` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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, string sddlForm) => throw null; - public CommonSecurityDescriptor(bool isContainer, bool isDS, System.Security.AccessControl.RawSecurityDescriptor rawSecurityDescriptor) => 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.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; } @@ -277,7 +235,7 @@ namespace System public System.Security.AccessControl.SystemAcl SystemAcl { get => throw null; set => throw null; } } - // Generated from `System.Security.AccessControl.CompoundAce` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.CompoundAce` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CompoundAce : System.Security.AccessControl.KnownAce { public override int BinaryLength { get => throw null; } @@ -286,13 +244,13 @@ namespace System public override void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; } - // Generated from `System.Security.AccessControl.CompoundAceType` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.CompoundAceType` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CompoundAceType { Impersonation, } - // Generated from `System.Security.AccessControl.ControlFlags` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.ControlFlags` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ControlFlags { @@ -315,7 +273,7 @@ namespace System SystemAclProtected, } - // Generated from `System.Security.AccessControl.CustomAce` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.CustomAce` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CustomAce : System.Security.AccessControl.GenericAce { public override int BinaryLength { get => throw null; } @@ -327,27 +285,27 @@ namespace System public void SetOpaque(System.Byte[] opaque) => throw null; } - // Generated from `System.Security.AccessControl.DiscretionaryAcl` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.DiscretionaryAcl` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DiscretionaryAcl : System.Security.AccessControl.CommonAcl { - 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 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, System.Security.AccessControl.ObjectAccessRule rule) => throw null; - public DiscretionaryAcl(bool isContainer, bool isDS, int capacity) => 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 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 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 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 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 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 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 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, 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) => 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 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; } - // Generated from `System.Security.AccessControl.GenericAce` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.GenericAce` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class GenericAce { public static bool operator !=(System.Security.AccessControl.GenericAce left, System.Security.AccessControl.GenericAce right) => throw null; @@ -367,8 +325,8 @@ namespace System public System.Security.AccessControl.PropagationFlags PropagationFlags { get => throw null; } } - // Generated from `System.Security.AccessControl.GenericAcl` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public abstract class GenericAcl : System.Collections.IEnumerable, System.Collections.ICollection + // Generated from `System.Security.AccessControl.GenericAcl` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public abstract class GenericAcl : System.Collections.ICollection, System.Collections.IEnumerable { public static System.Byte AclRevision; public static System.Byte AclRevisionDS; @@ -387,7 +345,7 @@ namespace System public virtual object SyncRoot { get => throw null; } } - // Generated from `System.Security.AccessControl.GenericSecurityDescriptor` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.GenericSecurityDescriptor` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class GenericSecurityDescriptor { public int BinaryLength { get => throw null; } @@ -401,7 +359,7 @@ namespace System public static System.Byte Revision { get => throw null; } } - // Generated from `System.Security.AccessControl.InheritanceFlags` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.InheritanceFlags` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum InheritanceFlags { @@ -410,7 +368,7 @@ namespace System ObjectInherit, } - // Generated from `System.Security.AccessControl.KnownAce` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.KnownAce` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class KnownAce : System.Security.AccessControl.GenericAce { public int AccessMask { get => throw null; set => throw null; } @@ -418,26 +376,26 @@ namespace System public System.Security.Principal.SecurityIdentifier SecurityIdentifier { get => throw null; set => throw null; } } - // Generated from `System.Security.AccessControl.NativeObjectSecurity` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.NativeObjectSecurity` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class NativeObjectSecurity : System.Security.AccessControl.CommonObjectSecurity { - // Generated from `System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.NativeObjectSecurity+ExceptionFromErrorCode` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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, string name, 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, string name, System.Security.AccessControl.AccessControlSections includeSections) : 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, 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) : base(default(bool)) => throw null; - protected void Persist(string name, System.Security.AccessControl.AccessControlSections includeSections, object exceptionContext) => 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, 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 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 void Persist(System.Runtime.InteropServices.SafeHandle handle, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + protected void Persist(string name, System.Security.AccessControl.AccessControlSections includeSections, object exceptionContext) => throw null; } - // Generated from `System.Security.AccessControl.ObjectAccessRule` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.ObjectAccessRule` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ObjectAccessRule : System.Security.AccessControl.AccessRule { public System.Guid InheritedObjectType { get => throw null; } @@ -446,7 +404,7 @@ namespace System public System.Guid ObjectType { get => throw null; } } - // Generated from `System.Security.AccessControl.ObjectAce` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.ObjectAce` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ObjectAce : System.Security.AccessControl.QualifiedAce { public override int BinaryLength { get => throw null; } @@ -458,7 +416,7 @@ namespace System public System.Guid ObjectAceType { get => throw null; set => throw null; } } - // Generated from `System.Security.AccessControl.ObjectAceFlags` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.ObjectAceFlags` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ObjectAceFlags { @@ -467,7 +425,7 @@ namespace System ObjectAceTypePresent, } - // Generated from `System.Security.AccessControl.ObjectAuditRule` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.ObjectAuditRule` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ObjectAuditRule : System.Security.AccessControl.AuditRule { public System.Guid InheritedObjectType { get => throw null; } @@ -476,7 +434,7 @@ namespace System public System.Guid ObjectType { get => throw null; } } - // Generated from `System.Security.AccessControl.ObjectSecurity` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.ObjectSecurity` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ObjectSecurity { public abstract System.Type AccessRightType { get; } @@ -502,13 +460,13 @@ 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(bool isContainer, bool isDS) => throw null; - protected ObjectSecurity(System.Security.AccessControl.CommonSecurityDescriptor securityDescriptor) => 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(string name, System.Security.AccessControl.AccessControlSections includeSections) => throw null; - 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(bool enableOwnershipPrivilege, string name, 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; protected void ReadLock() => throw null; @@ -518,15 +476,15 @@ 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, System.Security.AccessControl.AccessControlSections includeSections) => throw null; public void SetSecurityDescriptorBinaryForm(System.Byte[] binaryForm) => throw null; - public void SetSecurityDescriptorSddlForm(string sddlForm, System.Security.AccessControl.AccessControlSections includeSections) => throw null; + public void SetSecurityDescriptorBinaryForm(System.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; } - // Generated from `System.Security.AccessControl.ObjectSecurity<>` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.ObjectSecurity<>` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ObjectSecurity : System.Security.AccessControl.NativeObjectSecurity where T : struct { public override System.Type AccessRightType { get => throw null; } @@ -536,13 +494,13 @@ namespace System public virtual void AddAuditRule(System.Security.AccessControl.AuditRule 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 System.Type AuditRuleType { get => 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 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, 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, System.Runtime.InteropServices.SafeHandle safeHandle, System.Security.AccessControl.AccessControlSections includeSections) : base(default(bool), default(System.Security.AccessControl.ResourceType)) => throw null; protected ObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType) : base(default(bool), default(System.Security.AccessControl.ResourceType)) => throw null; - protected internal void Persist(string name) => throw null; + protected ObjectSecurity(bool isContainer, System.Security.AccessControl.ResourceType resourceType, System.Runtime.InteropServices.SafeHandle safeHandle, System.Security.AccessControl.AccessControlSections includeSections) : base(default(bool), default(System.Security.AccessControl.ResourceType)) => throw null; + 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; 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; @@ -554,17 +512,17 @@ namespace System public virtual void SetAuditRule(System.Security.AccessControl.AuditRule rule) => throw null; } - // Generated from `System.Security.AccessControl.PrivilegeNotHeldException` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.PrivilegeNotHeldException` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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(string privilege, System.Exception inner) => throw null; - public PrivilegeNotHeldException(string privilege) => throw null; public PrivilegeNotHeldException() => throw null; + public PrivilegeNotHeldException(string privilege) => throw null; + public PrivilegeNotHeldException(string privilege, System.Exception inner) => throw null; } - // Generated from `System.Security.AccessControl.PropagationFlags` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.PropagationFlags` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum PropagationFlags { @@ -573,7 +531,7 @@ namespace System None, } - // Generated from `System.Security.AccessControl.QualifiedAce` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.QualifiedAce` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class QualifiedAce : System.Security.AccessControl.KnownAce { public System.Security.AccessControl.AceQualifier AceQualifier { get => throw null; } @@ -584,7 +542,7 @@ namespace System public void SetOpaque(System.Byte[] opaque) => throw null; } - // Generated from `System.Security.AccessControl.RawAcl` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.RawAcl` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RawAcl : System.Security.AccessControl.GenericAcl { public override int BinaryLength { get => throw null; } @@ -598,22 +556,22 @@ namespace System public override System.Byte Revision { get => throw null; } } - // Generated from `System.Security.AccessControl.RawSecurityDescriptor` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.RawSecurityDescriptor` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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(string sddlForm) => 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(System.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 void SetFlags(System.Security.AccessControl.ControlFlags flags) => throw null; public System.Security.AccessControl.RawAcl SystemAcl { get => throw null; set => throw null; } } - // Generated from `System.Security.AccessControl.ResourceType` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.ResourceType` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ResourceType { DSObject, @@ -631,7 +589,7 @@ namespace System WmiGuidObject, } - // Generated from `System.Security.AccessControl.SecurityInfos` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.SecurityInfos` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SecurityInfos { @@ -641,24 +599,62 @@ namespace System SystemAcl, } - // Generated from `System.Security.AccessControl.SystemAcl` in `System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.AccessControl.SystemAcl` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SystemAcl : System.Security.AccessControl.CommonAcl { - public void AddAudit(System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAuditRule rule) => 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.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.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAuditRule rule) => 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 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 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 void RemoveAuditSpecific(System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAuditRule rule) => throw null; - public void RemoveAuditSpecific(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.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; public void RemoveAuditSpecific(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.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAuditRule rule) => 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 RemoveAuditSpecific(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 RemoveAuditSpecific(System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAuditRule rule) => 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) => throw null; - public SystemAcl(bool isContainer, bool isDS, int capacity) => 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 + { + // Generated from `System.Security.Policy.Evidence` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; + public void AddHost(object id) => throw null; + public void AddHostEvidence(T evidence) where T : System.Security.Policy.EvidenceBase => throw null; + public void Clear() => throw null; + public System.Security.Policy.Evidence Clone() => throw null; + public void CopyTo(System.Array array, int index) => throw null; + public int Count { get => throw null; } + public Evidence() => 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; + public System.Collections.IEnumerator GetHostEnumerator() => throw null; + 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 void Merge(System.Security.Policy.Evidence evidence) => throw null; + public void RemoveType(System.Type t) => throw null; + public object SyncRoot { get => throw null; } + } + + // Generated from `System.Security.Policy.EvidenceBase` in `System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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 68b148c5b03..587b68433f8 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 @@ -6,7 +6,7 @@ namespace System { namespace Claims { - // Generated from `System.Security.Claims.Claim` in `System.Security.Claims, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Claims.Claim` in `System.Security.Claims, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Claim { public Claim(System.IO.BinaryReader reader) => throw null; @@ -33,7 +33,7 @@ namespace System protected virtual void WriteTo(System.IO.BinaryWriter writer, System.Byte[] userData) => throw null; } - // Generated from `System.Security.Claims.ClaimTypes` in `System.Security.Claims, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Claims.ClaimTypes` in `System.Security.Claims, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ClaimTypes { public const string Actor = default; @@ -92,7 +92,7 @@ namespace System public const string X500DistinguishedName = default; } - // Generated from `System.Security.Claims.ClaimValueTypes` in `System.Security.Claims, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Claims.ClaimValueTypes` in `System.Security.Claims, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ClaimValueTypes { public const string Base64Binary = default; @@ -124,7 +124,7 @@ namespace System public const string YearMonthDuration = default; } - // Generated from `System.Security.Claims.ClaimsIdentity` in `System.Security.Claims, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Claims.ClaimsIdentity` in `System.Security.Claims, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ClaimsIdentity : System.Security.Principal.IIdentity { public System.Security.Claims.ClaimsIdentity Actor { get => throw null; set => throw null; } @@ -170,7 +170,7 @@ namespace System protected virtual void WriteTo(System.IO.BinaryWriter writer, System.Byte[] userData) => throw null; } - // Generated from `System.Security.Claims.ClaimsPrincipal` in `System.Security.Claims, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Claims.ClaimsPrincipal` in `System.Security.Claims, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ClaimsPrincipal : System.Security.Principal.IPrincipal { public virtual void AddIdentities(System.Collections.Generic.IEnumerable identities) => throw null; @@ -205,7 +205,7 @@ namespace System } namespace Principal { - // Generated from `System.Security.Principal.GenericIdentity` in `System.Security.Claims, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.GenericIdentity` in `System.Security.Claims, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GenericIdentity : System.Security.Claims.ClaimsIdentity { public override string AuthenticationType { get => throw null; } @@ -218,7 +218,7 @@ namespace System public override string Name { get => throw null; } } - // Generated from `System.Security.Principal.GenericPrincipal` in `System.Security.Claims, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.GenericPrincipal` in `System.Security.Claims, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GenericPrincipal : System.Security.Claims.ClaimsPrincipal { public GenericPrincipal(System.Security.Principal.IIdentity identity, string[] roles) => 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 index 4636b367326..633724e1714 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 @@ -6,7 +6,7 @@ namespace System { namespace Cryptography { - // Generated from `System.Security.Cryptography.Aes` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.Aes` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Aes : System.Security.Cryptography.SymmetricAlgorithm { protected Aes() => throw null; @@ -14,7 +14,7 @@ namespace System public static System.Security.Cryptography.Aes Create(string algorithmName) => throw null; } - // Generated from `System.Security.Cryptography.AesCcm` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AesCcm` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AesCcm : System.IDisposable { public AesCcm(System.Byte[] key) => throw null; @@ -24,11 +24,12 @@ namespace System 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 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; } } - // Generated from `System.Security.Cryptography.AesGcm` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AesGcm` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AesGcm : System.IDisposable { public AesGcm(System.Byte[] key) => throw null; @@ -38,11 +39,12 @@ namespace System 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 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; } } - // Generated from `System.Security.Cryptography.AesManaged` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AesManaged` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AesManaged : System.Security.Cryptography.Aes { public AesManaged() => throw null; @@ -64,7 +66,7 @@ namespace System public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.AsymmetricKeyExchangeDeformatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AsymmetricKeyExchangeDeformatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class AsymmetricKeyExchangeDeformatter { protected AsymmetricKeyExchangeDeformatter() => throw null; @@ -73,7 +75,7 @@ namespace System public abstract void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key); } - // Generated from `System.Security.Cryptography.AsymmetricKeyExchangeFormatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AsymmetricKeyExchangeFormatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class AsymmetricKeyExchangeFormatter { protected AsymmetricKeyExchangeFormatter() => throw null; @@ -83,7 +85,7 @@ namespace System public abstract void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key); } - // Generated from `System.Security.Cryptography.AsymmetricSignatureDeformatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AsymmetricSignatureDeformatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class AsymmetricSignatureDeformatter { protected AsymmetricSignatureDeformatter() => throw null; @@ -93,7 +95,7 @@ namespace System public virtual bool VerifySignature(System.Security.Cryptography.HashAlgorithm hash, System.Byte[] rgbSignature) => throw null; } - // Generated from `System.Security.Cryptography.AsymmetricSignatureFormatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AsymmetricSignatureFormatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class AsymmetricSignatureFormatter { protected AsymmetricSignatureFormatter() => throw null; @@ -103,7 +105,20 @@ namespace System public abstract void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key); } - // Generated from `System.Security.Cryptography.CryptoConfig` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ChaCha20Poly1305` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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 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 static bool IsSupported { get => throw null; } + } + + // Generated from `System.Security.Cryptography.CryptoConfig` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CryptoConfig { public static void AddAlgorithm(System.Type algorithm, params string[] names) => throw null; @@ -116,7 +131,7 @@ namespace System public static string MapNameToOID(string name) => throw null; } - // Generated from `System.Security.Cryptography.DES` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DES` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DES : System.Security.Cryptography.SymmetricAlgorithm { public static System.Security.Cryptography.DES Create() => throw null; @@ -127,7 +142,7 @@ namespace System public override System.Byte[] Key { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.DSA` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DSA` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm { public static System.Security.Cryptography.DSA Create() => throw null; @@ -188,7 +203,7 @@ namespace System protected virtual bool VerifySignatureCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; } - // Generated from `System.Security.Cryptography.DSAParameters` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DSAParameters` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DSAParameters { public int Counter; @@ -202,7 +217,7 @@ namespace System public System.Byte[] Y; } - // Generated from `System.Security.Cryptography.DSASignatureDeformatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DSASignatureDeformatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DSASignatureDeformatter : System.Security.Cryptography.AsymmetricSignatureDeformatter { public DSASignatureDeformatter() => throw null; @@ -212,14 +227,14 @@ namespace System public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; } - // Generated from `System.Security.Cryptography.DSASignatureFormat` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DSASignatureFormat` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DSASignatureFormat { IeeeP1363FixedFieldConcatenation, Rfc3279DerSequence, } - // Generated from `System.Security.Cryptography.DSASignatureFormatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DSASignatureFormatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DSASignatureFormatter : System.Security.Cryptography.AsymmetricSignatureFormatter { public override System.Byte[] CreateSignature(System.Byte[] rgbHash) => throw null; @@ -229,7 +244,7 @@ namespace System public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - // Generated from `System.Security.Cryptography.DeriveBytes` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DeriveBytes` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class DeriveBytes : System.IDisposable { protected DeriveBytes() => throw null; @@ -239,10 +254,10 @@ namespace System public abstract void Reset(); } - // Generated from `System.Security.Cryptography.ECCurve` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECCurve` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ECCurve { - // Generated from `System.Security.Cryptography.ECCurve+ECCurveType` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECCurve+ECCurveType` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ECCurveType { Characteristic2, @@ -254,7 +269,7 @@ namespace System } - // Generated from `System.Security.Cryptography.ECCurve+NamedCurves` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECCurve+NamedCurves` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class NamedCurves { public static System.Security.Cryptography.ECCurve brainpoolP160r1 { get => throw null; } @@ -299,7 +314,7 @@ namespace System public void Validate() => throw null; } - // Generated from `System.Security.Cryptography.ECDiffieHellman` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECDiffieHellman` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ECDiffieHellman : System.Security.Cryptography.AsymmetricAlgorithm { public static System.Security.Cryptography.ECDiffieHellman Create() => throw null; @@ -338,7 +353,7 @@ namespace System public override bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.ECDiffieHellmanPublicKey` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECDiffieHellmanPublicKey` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ECDiffieHellmanPublicKey : System.IDisposable { public void Dispose() => throw null; @@ -347,11 +362,13 @@ namespace System 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 string ToXmlString() => throw null; + public virtual bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.ECDsa` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECDsa` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class ECDsa : System.Security.Cryptography.AsymmetricAlgorithm { public static System.Security.Cryptography.ECDsa Create() => throw null; @@ -419,7 +436,7 @@ namespace System protected virtual bool VerifyHashCore(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.DSASignatureFormat signatureFormat) => throw null; } - // Generated from `System.Security.Cryptography.ECParameters` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECParameters` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ECParameters { public System.Security.Cryptography.ECCurve Curve; @@ -429,7 +446,7 @@ namespace System public void Validate() => throw null; } - // Generated from `System.Security.Cryptography.ECPoint` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECPoint` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ECPoint { // Stub generator skipped constructor @@ -437,7 +454,7 @@ namespace System public System.Byte[] Y; } - // Generated from `System.Security.Cryptography.HKDF` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.HKDF` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -448,7 +465,7 @@ namespace System public static int Extract(System.Security.Cryptography.HashAlgorithmName hashAlgorithmName, System.ReadOnlySpan ikm, System.ReadOnlySpan salt, System.Span prk) => throw null; } - // Generated from `System.Security.Cryptography.HMACMD5` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.HMACMD5` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HMACMD5 : System.Security.Cryptography.HMAC { protected override void Dispose(bool disposing) => throw null; @@ -456,13 +473,17 @@ namespace System 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.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; protected override System.Byte[] HashFinal() => throw null; 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; } - // Generated from `System.Security.Cryptography.HMACSHA1` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.HMACSHA1` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HMACSHA1 : System.Security.Cryptography.HMAC { protected override void Dispose(bool disposing) => throw null; @@ -471,13 +492,17 @@ namespace System 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.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; protected override System.Byte[] HashFinal() => throw null; 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; } - // Generated from `System.Security.Cryptography.HMACSHA256` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.HMACSHA256` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HMACSHA256 : System.Security.Cryptography.HMAC { protected override void Dispose(bool disposing) => throw null; @@ -485,13 +510,17 @@ namespace System 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.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; protected override System.Byte[] HashFinal() => throw null; 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; } - // Generated from `System.Security.Cryptography.HMACSHA384` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.HMACSHA384` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HMACSHA384 : System.Security.Cryptography.HMAC { protected override void Dispose(bool disposing) => throw null; @@ -499,14 +528,18 @@ namespace System 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.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; protected override System.Byte[] HashFinal() => throw null; 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; } - // Generated from `System.Security.Cryptography.HMACSHA512` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.HMACSHA512` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HMACSHA512 : System.Security.Cryptography.HMAC { protected override void Dispose(bool disposing) => throw null; @@ -514,14 +547,18 @@ namespace System 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.ReadOnlySpan key, System.ReadOnlySpan source) => throw null; + public static int HashData(System.ReadOnlySpan key, System.ReadOnlySpan source, System.Span destination) => throw null; protected override System.Byte[] HashFinal() => throw null; 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; } - // Generated from `System.Security.Cryptography.IncrementalHash` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.IncrementalHash` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IncrementalHash : System.IDisposable { public System.Security.Cryptography.HashAlgorithmName AlgorithmName { get => throw null; } @@ -541,7 +578,7 @@ namespace System public bool TryGetHashAndReset(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.MD5` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.MD5` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MD5 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.MD5 Create() => throw null; @@ -553,14 +590,14 @@ namespace System public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.MaskGenerationMethod` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.MaskGenerationMethod` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class MaskGenerationMethod { public abstract System.Byte[] GenerateMask(System.Byte[] rgbSeed, int cbReturn); protected MaskGenerationMethod() => throw null; } - // Generated from `System.Security.Cryptography.PKCS1MaskGenerationMethod` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.PKCS1MaskGenerationMethod` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PKCS1MaskGenerationMethod : System.Security.Cryptography.MaskGenerationMethod { public override System.Byte[] GenerateMask(System.Byte[] rgbSeed, int cbReturn) => throw null; @@ -568,7 +605,7 @@ namespace System public PKCS1MaskGenerationMethod() => throw null; } - // Generated from `System.Security.Cryptography.RC2` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RC2` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class RC2 : System.Security.Cryptography.SymmetricAlgorithm { public static System.Security.Cryptography.RC2 Create() => throw null; @@ -579,7 +616,7 @@ namespace System protected RC2() => throw null; } - // Generated from `System.Security.Cryptography.RSA` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSA` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class RSA : System.Security.Cryptography.AsymmetricAlgorithm { public static System.Security.Cryptography.RSA Create() => throw null; @@ -633,7 +670,7 @@ namespace System public virtual bool VerifyHash(System.ReadOnlySpan hash, System.ReadOnlySpan signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; } - // Generated from `System.Security.Cryptography.RSAEncryptionPadding` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSAEncryptionPadding` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSAEncryptionPadding : System.IEquatable { public static bool operator !=(System.Security.Cryptography.RSAEncryptionPadding left, System.Security.Cryptography.RSAEncryptionPadding right) => throw null; @@ -652,14 +689,14 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Security.Cryptography.RSAEncryptionPaddingMode` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSAEncryptionPaddingMode` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RSAEncryptionPaddingMode { Oaep, Pkcs1, } - // Generated from `System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSAOAEPKeyExchangeDeformatter : System.Security.Cryptography.AsymmetricKeyExchangeDeformatter { public override System.Byte[] DecryptKeyExchange(System.Byte[] rgbData) => throw null; @@ -669,7 +706,7 @@ namespace System public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - // Generated from `System.Security.Cryptography.RSAOAEPKeyExchangeFormatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSAOAEPKeyExchangeFormatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSAOAEPKeyExchangeFormatter : System.Security.Cryptography.AsymmetricKeyExchangeFormatter { public override System.Byte[] CreateKeyExchange(System.Byte[] rgbData) => throw null; @@ -682,7 +719,7 @@ namespace System public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - // Generated from `System.Security.Cryptography.RSAPKCS1KeyExchangeDeformatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSAPKCS1KeyExchangeDeformatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSAPKCS1KeyExchangeDeformatter : System.Security.Cryptography.AsymmetricKeyExchangeDeformatter { public override System.Byte[] DecryptKeyExchange(System.Byte[] rgbIn) => throw null; @@ -693,7 +730,7 @@ namespace System public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - // Generated from `System.Security.Cryptography.RSAPKCS1KeyExchangeFormatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSAPKCS1KeyExchangeFormatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSAPKCS1KeyExchangeFormatter : System.Security.Cryptography.AsymmetricKeyExchangeFormatter { public override System.Byte[] CreateKeyExchange(System.Byte[] rgbData) => throw null; @@ -705,7 +742,7 @@ namespace System public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - // Generated from `System.Security.Cryptography.RSAPKCS1SignatureDeformatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSAPKCS1SignatureDeformatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSAPKCS1SignatureDeformatter : System.Security.Cryptography.AsymmetricSignatureDeformatter { public RSAPKCS1SignatureDeformatter() => throw null; @@ -715,7 +752,7 @@ namespace System public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; } - // Generated from `System.Security.Cryptography.RSAPKCS1SignatureFormatter` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSAPKCS1SignatureFormatter` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSAPKCS1SignatureFormatter : System.Security.Cryptography.AsymmetricSignatureFormatter { public override System.Byte[] CreateSignature(System.Byte[] rgbHash) => throw null; @@ -725,7 +762,7 @@ namespace System public override void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; } - // Generated from `System.Security.Cryptography.RSAParameters` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSAParameters` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct RSAParameters { public System.Byte[] D; @@ -739,7 +776,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Security.Cryptography.RSASignaturePadding` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSASignaturePadding` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSASignaturePadding : System.IEquatable { public static bool operator !=(System.Security.Cryptography.RSASignaturePadding left, System.Security.Cryptography.RSASignaturePadding right) => throw null; @@ -753,14 +790,14 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Security.Cryptography.RSASignaturePaddingMode` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSASignaturePaddingMode` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RSASignaturePaddingMode { Pkcs1, Pss, } - // Generated from `System.Security.Cryptography.RandomNumberGenerator` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RandomNumberGenerator` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class RandomNumberGenerator : System.IDisposable { public static System.Security.Cryptography.RandomNumberGenerator Create() => throw null; @@ -771,6 +808,7 @@ namespace System 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; @@ -778,7 +816,7 @@ namespace System protected RandomNumberGenerator() => throw null; } - // Generated from `System.Security.Cryptography.Rfc2898DeriveBytes` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.Rfc2898DeriveBytes` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Rfc2898DeriveBytes : System.Security.Cryptography.DeriveBytes { public System.Byte[] CryptDeriveKey(string algname, string alghashname, int keySize, System.Byte[] rgbIV) => throw null; @@ -786,6 +824,12 @@ namespace System 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; @@ -798,7 +842,7 @@ namespace System public System.Byte[] Salt { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.Rijndael` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.Rijndael` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class Rijndael : System.Security.Cryptography.SymmetricAlgorithm { public static System.Security.Cryptography.Rijndael Create() => throw null; @@ -806,7 +850,7 @@ namespace System protected Rijndael() => throw null; } - // Generated from `System.Security.Cryptography.RijndaelManaged` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RijndaelManaged` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RijndaelManaged : System.Security.Cryptography.Rijndael { public override int BlockSize { get => throw null; set => throw null; } @@ -815,6 +859,7 @@ namespace System 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; } @@ -826,7 +871,7 @@ namespace System public RijndaelManaged() => throw null; } - // Generated from `System.Security.Cryptography.SHA1` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA1` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SHA1 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.SHA1 Create() => throw null; @@ -838,7 +883,7 @@ namespace System public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA1Managed` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA1Managed` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SHA1Managed : System.Security.Cryptography.SHA1 { protected override void Dispose(bool disposing) => throw null; @@ -850,7 +895,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA256` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA256` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SHA256 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.SHA256 Create() => throw null; @@ -862,7 +907,7 @@ namespace System public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA256Managed` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA256Managed` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SHA256Managed : System.Security.Cryptography.SHA256 { protected override void Dispose(bool disposing) => throw null; @@ -874,7 +919,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA384` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA384` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SHA384 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.SHA384 Create() => throw null; @@ -886,7 +931,7 @@ namespace System public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA384Managed` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA384Managed` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SHA384Managed : System.Security.Cryptography.SHA384 { protected override void Dispose(bool disposing) => throw null; @@ -898,7 +943,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA512` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA512` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SHA512 : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.SHA512 Create() => throw null; @@ -910,7 +955,7 @@ namespace System public static bool TryHashData(System.ReadOnlySpan source, System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA512Managed` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA512Managed` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SHA512Managed : System.Security.Cryptography.SHA512 { protected override void Dispose(bool disposing) => throw null; @@ -922,7 +967,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SignatureDescription` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SignatureDescription` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SignatureDescription { public virtual System.Security.Cryptography.AsymmetricSignatureDeformatter CreateDeformatter(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; @@ -936,7 +981,7 @@ namespace System public SignatureDescription(System.Security.SecurityElement el) => throw null; } - // Generated from `System.Security.Cryptography.TripleDES` in `System.Security.Cryptography.Algorithms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.TripleDES` in `System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm { public static System.Security.Cryptography.TripleDES Create() => throw null; diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Cng.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs similarity index 92% rename from csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Cng.cs rename to csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs index a07eefffc89..ecb9e6beec5 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Cryptography.Cng.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.Cng.cs @@ -6,32 +6,32 @@ namespace Microsoft { namespace SafeHandles { - // Generated from `Microsoft.Win32.SafeHandles.SafeNCryptHandle` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeNCryptHandle` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SafeNCryptHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { public override bool IsInvalid { get => throw null; } protected override bool ReleaseHandle() => throw null; protected abstract bool ReleaseNativeHandle(); - protected SafeNCryptHandle(System.IntPtr handle, System.Runtime.InteropServices.SafeHandle parentHandle) : base(default(bool)) => throw null; protected SafeNCryptHandle() : base(default(bool)) => throw null; + protected SafeNCryptHandle(System.IntPtr handle, System.Runtime.InteropServices.SafeHandle parentHandle) : base(default(bool)) => throw null; } - // Generated from `Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeNCryptKeyHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle { protected override bool ReleaseNativeHandle() => throw null; - public SafeNCryptKeyHandle(System.IntPtr handle, System.Runtime.InteropServices.SafeHandle parentHandle) => throw null; public SafeNCryptKeyHandle() => throw null; + public SafeNCryptKeyHandle(System.IntPtr handle, System.Runtime.InteropServices.SafeHandle parentHandle) => throw null; } - // Generated from `Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeNCryptProviderHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle { protected override bool ReleaseNativeHandle() => throw null; public SafeNCryptProviderHandle() => throw null; } - // Generated from `Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeNCryptSecretHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle { protected override bool ReleaseNativeHandle() => throw null; @@ -43,35 +43,21 @@ namespace Microsoft } namespace System { - namespace Runtime - { - namespace Versioning - { - /* Duplicate type 'OSPlatformAttribute' is not stubbed in this assembly 'System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'SupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'TargetPlatformAttribute' is not stubbed in this assembly 'System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'UnsupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - } - } namespace Security { namespace Cryptography { - // Generated from `System.Security.Cryptography.AesCng` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AesCng` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AesCng : System.Security.Cryptography.Aes { - public AesCng(string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions openOptions) => throw null; - public AesCng(string keyName, System.Security.Cryptography.CngProvider provider) => throw null; - public AesCng(string keyName) => throw null; public AesCng() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => 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 CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => 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; @@ -79,7 +65,7 @@ namespace System public override int KeySize { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.CngAlgorithm` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngAlgorithm` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CngAlgorithm : System.IEquatable { public static bool operator !=(System.Security.Cryptography.CngAlgorithm left, System.Security.Cryptography.CngAlgorithm right) => throw null; @@ -94,8 +80,8 @@ 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 override bool Equals(object obj) => throw null; public bool Equals(System.Security.Cryptography.CngAlgorithm other) => throw null; + public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.Security.Cryptography.CngAlgorithm MD5 { get => throw null; } public static System.Security.Cryptography.CngAlgorithm Rsa { get => throw null; } @@ -106,7 +92,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Security.Cryptography.CngAlgorithmGroup` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngAlgorithmGroup` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CngAlgorithmGroup : System.IEquatable { public static bool operator !=(System.Security.Cryptography.CngAlgorithmGroup left, System.Security.Cryptography.CngAlgorithmGroup right) => throw null; @@ -117,14 +103,14 @@ namespace System 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 override bool Equals(object obj) => throw null; public bool Equals(System.Security.Cryptography.CngAlgorithmGroup other) => throw null; + public override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public static System.Security.Cryptography.CngAlgorithmGroup Rsa { get => throw null; } public override string ToString() => throw null; } - // Generated from `System.Security.Cryptography.CngExportPolicies` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngExportPolicies` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CngExportPolicies { @@ -135,35 +121,35 @@ namespace System None, } - // Generated from `System.Security.Cryptography.CngKey` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngKey` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CngKey : System.IDisposable { public System.Security.Cryptography.CngAlgorithm Algorithm { get => throw null; } public System.Security.Cryptography.CngAlgorithmGroup AlgorithmGroup { get => throw null; } - public static System.Security.Cryptography.CngKey Create(System.Security.Cryptography.CngAlgorithm algorithm, string keyName, System.Security.Cryptography.CngKeyCreationParameters creationParameters) => throw null; - public static System.Security.Cryptography.CngKey Create(System.Security.Cryptography.CngAlgorithm algorithm, string keyName) => throw null; public static System.Security.Cryptography.CngKey Create(System.Security.Cryptography.CngAlgorithm algorithm) => throw null; + public static System.Security.Cryptography.CngKey Create(System.Security.Cryptography.CngAlgorithm algorithm, string keyName) => throw null; + public static System.Security.Cryptography.CngKey Create(System.Security.Cryptography.CngAlgorithm algorithm, string keyName, System.Security.Cryptography.CngKeyCreationParameters creationParameters) => throw null; public void Delete() => throw null; public void Dispose() => throw null; - public static bool Exists(string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions options) => throw null; - public static bool Exists(string keyName, System.Security.Cryptography.CngProvider provider) => throw null; 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 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, System.Security.Cryptography.CngProvider provider) => 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 bool IsEphemeral { get => throw null; } public bool IsMachineKey { get => throw null; } public string KeyName { get => throw null; } public int KeySize { get => throw null; } public System.Security.Cryptography.CngKeyUsages KeyUsage { get => throw null; } - public static System.Security.Cryptography.CngKey Open(string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions openOptions) => 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) => throw null; public static System.Security.Cryptography.CngKey Open(Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle, System.Security.Cryptography.CngKeyHandleOpenOptions keyHandleOpenOptions) => throw null; + 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 System.Security.Cryptography.CngProvider Provider { get => throw null; } public Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle ProviderHandle { get => throw null; } @@ -172,7 +158,7 @@ namespace System public string UniqueName { get => throw null; } } - // Generated from `System.Security.Cryptography.CngKeyBlobFormat` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngKeyBlobFormat` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CngKeyBlobFormat : System.IEquatable { public static bool operator !=(System.Security.Cryptography.CngKeyBlobFormat left, System.Security.Cryptography.CngKeyBlobFormat right) => throw null; @@ -182,8 +168,8 @@ namespace System 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 override bool Equals(object obj) => throw null; public bool Equals(System.Security.Cryptography.CngKeyBlobFormat other) => throw null; + public override bool Equals(object obj) => 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; } @@ -193,7 +179,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Security.Cryptography.CngKeyCreationOptions` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngKeyCreationOptions` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CngKeyCreationOptions { @@ -202,7 +188,7 @@ namespace System OverwriteExistingKey, } - // Generated from `System.Security.Cryptography.CngKeyCreationParameters` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngKeyCreationParameters` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CngKeyCreationParameters { public CngKeyCreationParameters() => throw null; @@ -215,7 +201,7 @@ namespace System public System.Security.Cryptography.CngUIPolicy UIPolicy { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.CngKeyHandleOpenOptions` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngKeyHandleOpenOptions` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CngKeyHandleOpenOptions { @@ -223,7 +209,7 @@ namespace System None, } - // Generated from `System.Security.Cryptography.CngKeyOpenOptions` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngKeyOpenOptions` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CngKeyOpenOptions { @@ -233,7 +219,7 @@ namespace System UserKey, } - // Generated from `System.Security.Cryptography.CngKeyUsages` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngKeyUsages` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CngKeyUsages { @@ -244,28 +230,28 @@ namespace System Signing, } - // Generated from `System.Security.Cryptography.CngProperty` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngProperty` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; - public CngProperty(string name, System.Byte[] value, System.Security.Cryptography.CngPropertyOptions options) => throw null; // Stub generator skipped constructor - public override bool Equals(object obj) => throw null; + 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 override bool Equals(object obj) => throw null; public override int GetHashCode() => throw null; public System.Byte[] GetValue() => throw null; public string Name { get => throw null; } public System.Security.Cryptography.CngPropertyOptions Options { get => throw null; } } - // Generated from `System.Security.Cryptography.CngPropertyCollection` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngPropertyCollection` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CngPropertyCollection : System.Collections.ObjectModel.Collection { public CngPropertyCollection() => throw null; } - // Generated from `System.Security.Cryptography.CngPropertyOptions` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngPropertyOptions` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CngPropertyOptions { @@ -274,29 +260,30 @@ namespace System Persist, } - // Generated from `System.Security.Cryptography.CngProvider` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngProvider` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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 override bool Equals(object obj) => throw null; public bool Equals(System.Security.Cryptography.CngProvider other) => throw null; + public override bool Equals(object obj) => 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 string Provider { get => throw null; } public override string ToString() => throw null; } - // Generated from `System.Security.Cryptography.CngUIPolicy` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngUIPolicy` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CngUIPolicy { - public CngUIPolicy(System.Security.Cryptography.CngUIProtectionLevels protectionLevel, string friendlyName, string description, string useContext, string creationTitle) => 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) => throw null; - public CngUIPolicy(System.Security.Cryptography.CngUIProtectionLevels protectionLevel, string friendlyName) => 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; } @@ -304,7 +291,7 @@ namespace System public string UseContext { get => throw null; } } - // Generated from `System.Security.Cryptography.CngUIProtectionLevels` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CngUIProtectionLevels` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CngUIProtectionLevels { @@ -313,17 +300,17 @@ namespace System ProtectKey, } - // Generated from `System.Security.Cryptography.DSACng` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DSACng` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DSACng : System.Security.Cryptography.DSA { public override System.Byte[] CreateSignature(System.Byte[] rgbHash) => throw null; - public DSACng(int keySize) => throw null; - public DSACng(System.Security.Cryptography.CngKey key) => throw null; public DSACng() => throw null; + public DSACng(System.Security.Cryptography.CngKey key) => throw null; + public DSACng(int keySize) => throw null; protected override void Dispose(bool disposing) => throw null; public override System.Security.Cryptography.DSAParameters ExportParameters(bool includePrivateParameters) => throw null; - protected override System.Byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => 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 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; } @@ -332,21 +319,21 @@ namespace System public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; } - // Generated from `System.Security.Cryptography.ECDiffieHellmanCng` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECDiffieHellmanCng` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public 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 override System.Byte[] DeriveKeyMaterial(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey) => 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 Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle DeriveSecretAgreementHandle(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey) => 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(int keySize) => throw null; - public ECDiffieHellmanCng(System.Security.Cryptography.ECCurve curve) => throw null; - public ECDiffieHellmanCng(System.Security.Cryptography.CngKey key) => 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.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; @@ -366,7 +353,7 @@ namespace System public bool UseSecretAgreementAsHmacKey { get => throw null; } } - // Generated from `System.Security.Cryptography.ECDiffieHellmanCngPublicKey` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECDiffieHellmanCngPublicKey` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ECDiffieHellmanCngPublicKey : System.Security.Cryptography.ECDiffieHellmanPublicKey { public System.Security.Cryptography.CngKeyBlobFormat BlobFormat { get => throw null; } @@ -379,7 +366,7 @@ namespace System public override string ToXmlString() => throw null; } - // Generated from `System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ECDiffieHellmanKeyDerivationFunction { Hash, @@ -387,77 +374,77 @@ namespace System Tls, } - // Generated from `System.Security.Cryptography.ECDsaCng` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECDsaCng` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ECDsaCng : System.Security.Cryptography.ECDsa { protected override void Dispose(bool disposing) => throw null; - public ECDsaCng(int keySize) => throw null; - public ECDsaCng(System.Security.Cryptography.ECCurve curve) => throw null; - public ECDsaCng(System.Security.Cryptography.CngKey key) => throw null; public ECDsaCng() => 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.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; } - protected override System.Byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => 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 override void ImportParameters(System.Security.Cryptography.ECParameters parameters) => throw null; public System.Security.Cryptography.CngKey Key { get => throw null; } public override int KeySize { get => throw null; set => throw null; } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public System.Byte[] SignData(System.IO.Stream data) => throw null; - public System.Byte[] SignData(System.Byte[] data, int offset, int count) => 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 string ToXmlString(System.Security.Cryptography.ECKeyXmlFormat format) => throw null; - public bool VerifyData(System.IO.Stream 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.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; } - // Generated from `System.Security.Cryptography.ECKeyXmlFormat` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ECKeyXmlFormat` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ECKeyXmlFormat { Rfc4050, } - // Generated from `System.Security.Cryptography.RSACng` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSACng` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSACng : System.Security.Cryptography.RSA { public override System.Byte[] Decrypt(System.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.Security.Cryptography.RSAParameters ExportParameters(bool includePrivateParameters) => throw null; - protected override System.Byte[] HashData(System.IO.Stream data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) => 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 override void ImportParameters(System.Security.Cryptography.RSAParameters parameters) => throw null; public System.Security.Cryptography.CngKey Key { get => throw null; } public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } - public RSACng(int keySize) => throw null; - public RSACng(System.Security.Cryptography.CngKey key) => 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 VerifyHash(System.Byte[] hash, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; } - // Generated from `System.Security.Cryptography.TripleDESCng` in `System.Security.Cryptography.Cng, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.TripleDESCng` in `System.Security.Cryptography.Cng, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TripleDESCng : System.Security.Cryptography.TripleDES { - public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; - public override System.Security.Cryptography.ICryptoTransform CreateEncryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => 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; } - public TripleDESCng(string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions openOptions) => throw null; - public TripleDESCng(string keyName, System.Security.Cryptography.CngProvider provider) => throw null; - public TripleDESCng(string keyName) => 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; } } 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 d53afe7e551..f653afbe2db 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 @@ -6,7 +6,7 @@ namespace System { namespace Cryptography { - // Generated from `System.Security.Cryptography.AesCryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AesCryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AesCryptoServiceProvider : System.Security.Cryptography.Aes { public AesCryptoServiceProvider() => throw null; @@ -28,7 +28,7 @@ namespace System public override System.Security.Cryptography.PaddingMode Padding { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.CspKeyContainerInfo` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CspKeyContainerInfo` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CspKeyContainerInfo { public bool Accessible { get => throw null; } @@ -46,7 +46,7 @@ namespace System public string UniqueKeyContainerName { get => throw null; } } - // Generated from `System.Security.Cryptography.CspParameters` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CspParameters` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CspParameters { public CspParameters() => throw null; @@ -62,7 +62,7 @@ namespace System public int ProviderType; } - // Generated from `System.Security.Cryptography.CspProviderFlags` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CspProviderFlags` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CspProviderFlags { @@ -77,7 +77,7 @@ namespace System UseUserProtectedKey, } - // Generated from `System.Security.Cryptography.DESCryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DESCryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DESCryptoServiceProvider : System.Security.Cryptography.DES { public override System.Security.Cryptography.ICryptoTransform CreateDecryptor() => throw null; @@ -89,7 +89,7 @@ namespace System public override void GenerateKey() => throw null; } - // Generated from `System.Security.Cryptography.DSACryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.DSACryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DSACryptoServiceProvider : System.Security.Cryptography.DSA, System.Security.Cryptography.ICspAsymmetricAlgorithm { public override System.Byte[] CreateSignature(System.Byte[] rgbHash) => throw null; @@ -121,7 +121,7 @@ namespace System public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; } - // Generated from `System.Security.Cryptography.ICspAsymmetricAlgorithm` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ICspAsymmetricAlgorithm` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICspAsymmetricAlgorithm { System.Security.Cryptography.CspKeyContainerInfo CspKeyContainerInfo { get; } @@ -129,14 +129,14 @@ namespace System void ImportCspBlob(System.Byte[] rawData); } - // Generated from `System.Security.Cryptography.KeyNumber` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.KeyNumber` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum KeyNumber { Exchange, Signature, } - // Generated from `System.Security.Cryptography.MD5CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.MD5CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class MD5CryptoServiceProvider : System.Security.Cryptography.MD5 { protected override void Dispose(bool disposing) => throw null; @@ -148,7 +148,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.PasswordDeriveBytes` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.PasswordDeriveBytes` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PasswordDeriveBytes : System.Security.Cryptography.DeriveBytes { public System.Byte[] CryptDeriveKey(string algname, string alghashname, int keySize, System.Byte[] rgbIV) => throw null; @@ -168,7 +168,7 @@ namespace System public System.Byte[] Salt { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.RC2CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RC2CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RC2CryptoServiceProvider : System.Security.Cryptography.RC2 { public override System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.Byte[] rgbIV) => throw null; @@ -180,7 +180,7 @@ namespace System public bool UseSalt { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.RNGCryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RNGCryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RNGCryptoServiceProvider : System.Security.Cryptography.RandomNumberGenerator { protected override void Dispose(bool disposing) => throw null; @@ -195,7 +195,7 @@ namespace System public RNGCryptoServiceProvider(string str) => throw null; } - // Generated from `System.Security.Cryptography.RSACryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.RSACryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RSACryptoServiceProvider : System.Security.Cryptography.RSA, System.Security.Cryptography.ICspAsymmetricAlgorithm { public System.Security.Cryptography.CspKeyContainerInfo CspKeyContainerInfo { get => throw null; } @@ -233,7 +233,7 @@ namespace System public bool VerifyHash(System.Byte[] rgbHash, string str, System.Byte[] rgbSignature) => throw null; } - // Generated from `System.Security.Cryptography.SHA1CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA1CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SHA1CryptoServiceProvider : System.Security.Cryptography.SHA1 { protected override void Dispose(bool disposing) => throw null; @@ -245,7 +245,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA256CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA256CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SHA256CryptoServiceProvider : System.Security.Cryptography.SHA256 { protected override void Dispose(bool disposing) => throw null; @@ -257,7 +257,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA384CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA384CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SHA384CryptoServiceProvider : System.Security.Cryptography.SHA384 { protected override void Dispose(bool disposing) => throw null; @@ -269,7 +269,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.SHA512CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SHA512CryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SHA512CryptoServiceProvider : System.Security.Cryptography.SHA512 { protected override void Dispose(bool disposing) => throw null; @@ -281,7 +281,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.TripleDESCryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.TripleDESCryptoServiceProvider` in `System.Security.Cryptography.Csp, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class TripleDESCryptoServiceProvider : System.Security.Cryptography.TripleDES { public override int BlockSize { get => throw null; set => throw null; } 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 621d0ecf321..947661b0140 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 @@ -6,7 +6,7 @@ namespace System { namespace Cryptography { - // Generated from `System.Security.Cryptography.AsnEncodedData` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AsnEncodedData` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AsnEncodedData { protected AsnEncodedData() => throw null; @@ -23,7 +23,7 @@ namespace System public System.Byte[] RawData { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.AsnEncodedDataCollection` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AsnEncodedDataCollection` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AsnEncodedDataCollection : System.Collections.ICollection, System.Collections.IEnumerable { public int Add(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; @@ -40,7 +40,7 @@ namespace System public object SyncRoot { get => throw null; } } - // Generated from `System.Security.Cryptography.AsnEncodedDataEnumerator` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AsnEncodedDataEnumerator` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AsnEncodedDataEnumerator : System.Collections.IEnumerator { public System.Security.Cryptography.AsnEncodedData Current { get => throw null; } @@ -49,7 +49,7 @@ namespace System public void Reset() => throw null; } - // Generated from `System.Security.Cryptography.FromBase64Transform` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.FromBase64Transform` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class FromBase64Transform : System.IDisposable, System.Security.Cryptography.ICryptoTransform { public virtual bool CanReuseTransform { get => throw null; } @@ -66,14 +66,14 @@ namespace System // ERR: Stub generator didn't handle member: ~FromBase64Transform } - // Generated from `System.Security.Cryptography.FromBase64TransformMode` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.FromBase64TransformMode` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum FromBase64TransformMode { DoNotIgnoreWhiteSpaces, IgnoreWhiteSpaces, } - // Generated from `System.Security.Cryptography.Oid` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.Oid` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Oid { public string FriendlyName { get => throw null; set => throw null; } @@ -86,7 +86,7 @@ namespace System public string Value { get => throw null; set => throw null; } } - // Generated from `System.Security.Cryptography.OidCollection` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.OidCollection` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OidCollection : System.Collections.ICollection, System.Collections.IEnumerable { public int Add(System.Security.Cryptography.Oid oid) => throw null; @@ -102,7 +102,7 @@ namespace System public object SyncRoot { get => throw null; } } - // Generated from `System.Security.Cryptography.OidEnumerator` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.OidEnumerator` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class OidEnumerator : System.Collections.IEnumerator { public System.Security.Cryptography.Oid Current { get => throw null; } @@ -111,7 +111,7 @@ namespace System public void Reset() => throw null; } - // Generated from `System.Security.Cryptography.OidGroup` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.OidGroup` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum OidGroup { All, @@ -127,7 +127,7 @@ namespace System Template, } - // Generated from `System.Security.Cryptography.PemEncoding` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.PemEncoding` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class PemEncoding { public static System.Security.Cryptography.PemFields Find(System.ReadOnlySpan pemData) => throw null; @@ -137,7 +137,7 @@ namespace System public static System.Char[] Write(System.ReadOnlySpan label, System.ReadOnlySpan data) => throw null; } - // Generated from `System.Security.Cryptography.PemFields` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.PemFields` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct PemFields { public System.Range Base64Data { get => throw null; } @@ -147,7 +147,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Security.Cryptography.ToBase64Transform` in `System.Security.Cryptography.Encoding, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ToBase64Transform` in `System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ToBase64Transform : System.IDisposable, System.Security.Cryptography.ICryptoTransform { public virtual bool CanReuseTransform { get => throw null; } 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..a3e404fc36b --- /dev/null +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Cryptography.OpenSsl.cs @@ -0,0 +1,106 @@ +// This file contains auto-generated code. + +namespace System +{ + namespace Security + { + namespace Cryptography + { + // Generated from `System.Security.Cryptography.DSAOpenSsl` in `System.Security.Cryptography.OpenSsl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class DSAOpenSsl : System.Security.Cryptography.DSA + { + public override System.Byte[] CreateSignature(System.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; + protected override void Dispose(bool disposing) => throw null; + public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateKeyHandle() => 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 override void ImportParameters(System.Security.Cryptography.DSAParameters parameters) => throw null; + public override int KeySize { set => throw null; } + public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => throw null; } + public override bool VerifySignature(System.Byte[] rgbHash, System.Byte[] rgbSignature) => throw null; + } + + // Generated from `System.Security.Cryptography.ECDiffieHellmanOpenSsl` in `System.Security.Cryptography.OpenSsl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class ECDiffieHellmanOpenSsl : 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 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 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 override System.Security.Cryptography.ECParameters ExportExplicitParameters(bool includePrivateParameters) => throw null; + public override System.Security.Cryptography.ECParameters ExportParameters(bool includePrivateParameters) => throw null; + public override void GenerateKey(System.Security.Cryptography.ECCurve curve) => throw null; + public override void ImportParameters(System.Security.Cryptography.ECParameters parameters) => throw null; + public override System.Security.Cryptography.ECDiffieHellmanPublicKey PublicKey { get => throw null; } + } + + // Generated from `System.Security.Cryptography.ECDsaOpenSsl` in `System.Security.Cryptography.OpenSsl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class ECDsaOpenSsl : System.Security.Cryptography.ECDsa + { + protected override void Dispose(bool disposing) => throw null; + 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.Security.Cryptography.ECParameters ExportExplicitParameters(bool includePrivateParameters) => throw null; + public override System.Security.Cryptography.ECParameters ExportParameters(bool includePrivateParameters) => throw null; + public override void GenerateKey(System.Security.Cryptography.ECCurve curve) => 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 override void ImportParameters(System.Security.Cryptography.ECParameters parameters) => 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.Byte[] SignHash(System.Byte[] hash) => throw null; + public override bool VerifyHash(System.Byte[] hash, System.Byte[] signature) => throw null; + } + + // Generated from `System.Security.Cryptography.RSAOpenSsl` in `System.Security.Cryptography.OpenSsl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class RSAOpenSsl : System.Security.Cryptography.RSA + { + public override System.Byte[] Decrypt(System.Byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + protected override void Dispose(bool disposing) => throw null; + public System.Security.Cryptography.SafeEvpPKeyHandle DuplicateKeyHandle() => throw null; + public override System.Byte[] Encrypt(System.Byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding) => throw null; + public override System.Security.Cryptography.RSAParameters 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 override void ImportParameters(System.Security.Cryptography.RSAParameters parameters) => throw null; + public override int KeySize { set => throw null; } + public override System.Security.Cryptography.KeySizes[] LegalKeySizes { get => 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 override System.Byte[] SignHash(System.Byte[] hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + public override bool VerifyHash(System.Byte[] hash, System.Byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding) => throw null; + } + + // Generated from `System.Security.Cryptography.SafeEvpPKeyHandle` in `System.Security.Cryptography.OpenSsl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class SafeEvpPKeyHandle : System.Runtime.InteropServices.SafeHandle + { + 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; + } + + } + } +} 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 16a0b16541d..28ca469660a 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 @@ -6,7 +6,7 @@ namespace System { namespace Cryptography { - // Generated from `System.Security.Cryptography.AsymmetricAlgorithm` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.AsymmetricAlgorithm` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class AsymmetricAlgorithm : System.IDisposable { protected AsymmetricAlgorithm() => throw null; @@ -40,7 +40,7 @@ namespace System public virtual bool TryExportSubjectPublicKeyInfo(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.CipherMode` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CipherMode` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CipherMode { CBC, @@ -50,7 +50,7 @@ namespace System OFB, } - // Generated from `System.Security.Cryptography.CryptoStream` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CryptoStream` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -59,6 +59,8 @@ namespace System public override bool CanSeek { get => throw null; } public override bool CanWrite { get => throw null; } public void Clear() => 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 CryptoStream(System.IO.Stream stream, System.Security.Cryptography.ICryptoTransform transform, System.Security.Cryptography.CryptoStreamMode mode) => throw null; public CryptoStream(System.IO.Stream stream, System.Security.Cryptography.ICryptoTransform transform, System.Security.Cryptography.CryptoStreamMode mode, bool leaveOpen) => throw null; protected override void Dispose(bool disposing) => throw null; @@ -74,29 +76,31 @@ namespace System 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 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; } - // Generated from `System.Security.Cryptography.CryptoStreamMode` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CryptoStreamMode` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum CryptoStreamMode { Read, Write, } - // Generated from `System.Security.Cryptography.CryptographicOperations` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CryptographicOperations` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; } - // Generated from `System.Security.Cryptography.CryptographicUnexpectedOperationException` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.CryptographicUnexpectedOperationException` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CryptographicUnexpectedOperationException : System.Security.Cryptography.CryptographicException { public CryptographicUnexpectedOperationException() => throw null; @@ -106,7 +110,7 @@ namespace System public CryptographicUnexpectedOperationException(string format, string insert) => throw null; } - // Generated from `System.Security.Cryptography.HMAC` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.HMAC` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm { protected int BlockSizeValue { get => throw null; set => throw null; } @@ -123,7 +127,7 @@ namespace System protected override bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.HashAlgorithm` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.HashAlgorithm` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class HashAlgorithm : System.IDisposable, System.Security.Cryptography.ICryptoTransform { public virtual bool CanReuseTransform { get => throw null; } @@ -155,7 +159,7 @@ namespace System protected virtual bool TryHashFinal(System.Span destination, out int bytesWritten) => throw null; } - // Generated from `System.Security.Cryptography.HashAlgorithmName` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.HashAlgorithmName` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct HashAlgorithmName : System.IEquatable { public static bool operator !=(System.Security.Cryptography.HashAlgorithmName left, System.Security.Cryptography.HashAlgorithmName right) => throw null; @@ -176,7 +180,7 @@ namespace System public static bool TryFromOid(string oidValue, out System.Security.Cryptography.HashAlgorithmName value) => throw null; } - // Generated from `System.Security.Cryptography.ICryptoTransform` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.ICryptoTransform` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface ICryptoTransform : System.IDisposable { bool CanReuseTransform { get; } @@ -187,7 +191,7 @@ namespace System System.Byte[] TransformFinalBlock(System.Byte[] inputBuffer, int inputOffset, int inputCount); } - // Generated from `System.Security.Cryptography.KeySizes` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.KeySizes` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class KeySizes { public KeySizes(int minSize, int maxSize, int skipSize) => throw null; @@ -196,7 +200,7 @@ namespace System public int SkipSize { get => throw null; } } - // Generated from `System.Security.Cryptography.KeyedHashAlgorithm` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.KeyedHashAlgorithm` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class KeyedHashAlgorithm : System.Security.Cryptography.HashAlgorithm { public static System.Security.Cryptography.KeyedHashAlgorithm Create() => throw null; @@ -207,7 +211,7 @@ namespace System protected KeyedHashAlgorithm() => throw null; } - // Generated from `System.Security.Cryptography.PaddingMode` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.PaddingMode` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PaddingMode { ANSIX923, @@ -217,7 +221,7 @@ namespace System Zeros, } - // Generated from `System.Security.Cryptography.PbeEncryptionAlgorithm` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.PbeEncryptionAlgorithm` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum PbeEncryptionAlgorithm { Aes128Cbc, @@ -227,7 +231,7 @@ namespace System Unknown, } - // Generated from `System.Security.Cryptography.PbeParameters` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.PbeParameters` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PbeParameters { public System.Security.Cryptography.PbeEncryptionAlgorithm EncryptionAlgorithm { get => throw null; } @@ -236,7 +240,7 @@ namespace System public PbeParameters(System.Security.Cryptography.PbeEncryptionAlgorithm encryptionAlgorithm, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int iterationCount) => throw null; } - // Generated from `System.Security.Cryptography.SymmetricAlgorithm` in `System.Security.Cryptography.Primitives, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.SymmetricAlgorithm` in `System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SymmetricAlgorithm : System.IDisposable { public virtual int BlockSize { get => throw null; set => throw null; } @@ -248,12 +252,33 @@ namespace System public abstract System.Security.Cryptography.ICryptoTransform CreateDecryptor(System.Byte[] rgbKey, System.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 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; } 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; } @@ -269,6 +294,18 @@ namespace System public virtual System.Security.Cryptography.PaddingMode Padding { get => throw null; set => throw null; } 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 ValidKeySize(int bitLength) => throw null; } 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 d948de60fb7..225470f8664 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 @@ -6,12 +6,12 @@ namespace Microsoft { namespace SafeHandles { - // Generated from `Microsoft.Win32.SafeHandles.SafeX509ChainHandle` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeX509ChainHandle` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeX509ChainHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { protected override void Dispose(bool disposing) => throw null; protected override bool ReleaseHandle() => throw null; - internal SafeX509ChainHandle() : base(default(bool)) => throw null; + public SafeX509ChainHandle() : base(default(bool)) => throw null; } } @@ -25,7 +25,7 @@ namespace System { namespace X509Certificates { - // Generated from `System.Security.Cryptography.X509Certificates.CertificateRequest` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.CertificateRequest` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CertificateRequest { public System.Collections.ObjectModel.Collection CertificateExtensions { get => throw null; } @@ -46,7 +46,7 @@ namespace System public System.Security.Cryptography.X509Certificates.X500DistinguishedName SubjectName { get => throw null; } } - // Generated from `System.Security.Cryptography.X509Certificates.DSACertificateExtensions` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.DSACertificateExtensions` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class DSACertificateExtensions { public static System.Security.Cryptography.X509Certificates.X509Certificate2 CopyWithPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.DSA privateKey) => throw null; @@ -54,7 +54,7 @@ namespace System public static System.Security.Cryptography.DSA GetDSAPublicKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.ECDsaCertificateExtensions` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.ECDsaCertificateExtensions` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ECDsaCertificateExtensions { public static System.Security.Cryptography.X509Certificates.X509Certificate2 CopyWithPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.ECDsa privateKey) => throw null; @@ -62,7 +62,7 @@ namespace System public static System.Security.Cryptography.ECDsa GetECDsaPublicKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.OpenFlags` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.OpenFlags` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum OpenFlags { @@ -73,17 +73,25 @@ namespace System ReadWrite, } - // Generated from `System.Security.Cryptography.X509Certificates.PublicKey` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.PublicKey` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PublicKey { + public static System.Security.Cryptography.X509Certificates.PublicKey CreateFromSubjectPublicKeyInfo(System.ReadOnlySpan source, out int bytesRead) => 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 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; } - // Generated from `System.Security.Cryptography.X509Certificates.RSACertificateExtensions` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.RSACertificateExtensions` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class RSACertificateExtensions { public static System.Security.Cryptography.X509Certificates.X509Certificate2 CopyWithPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.RSA privateKey) => throw null; @@ -91,14 +99,14 @@ namespace System public static System.Security.Cryptography.RSA GetRSAPublicKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.StoreLocation` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.StoreLocation` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum StoreLocation { CurrentUser, LocalMachine, } - // Generated from `System.Security.Cryptography.X509Certificates.StoreName` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.StoreName` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum StoreName { AddressBook, @@ -111,7 +119,7 @@ namespace System TrustedPublisher, } - // Generated from `System.Security.Cryptography.X509Certificates.SubjectAlternativeNameBuilder` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.SubjectAlternativeNameBuilder` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SubjectAlternativeNameBuilder { public void AddDnsName(string dnsName) => throw null; @@ -123,7 +131,7 @@ namespace System public SubjectAlternativeNameBuilder() => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X500DistinguishedName` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X500DistinguishedName` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X500DistinguishedName : System.Security.Cryptography.AsnEncodedData { public string Decode(System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags flag) => throw null; @@ -137,7 +145,7 @@ namespace System public X500DistinguishedName(string distinguishedName, System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags flag) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum X500DistinguishedNameFlags { @@ -153,7 +161,7 @@ namespace System UseUTF8Encoding, } - // Generated from `System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509BasicConstraintsExtension : System.Security.Cryptography.X509Certificates.X509Extension { public bool CertificateAuthority { get => throw null; } @@ -165,7 +173,7 @@ namespace System public X509BasicConstraintsExtension(bool certificateAuthority, bool hasPathLengthConstraint, int pathLengthConstraint, bool critical) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509Certificate` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509Certificate` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -228,12 +236,14 @@ namespace System public X509Certificate(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509Certificate2` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509Certificate2` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509Certificate2 : System.Security.Cryptography.X509Certificates.X509Certificate { public bool Archived { get => throw null; set => throw null; } + 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 CreateFromPemFile(string certPemFilePath, string keyPemFilePath = default(string)) => throw null; public System.Security.Cryptography.X509Certificates.X509ExtensionCollection Extensions { get => throw null; } @@ -241,6 +251,8 @@ namespace System 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 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; @@ -283,8 +295,8 @@ namespace System public X509Certificate2(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509Certificate2Collection` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class X509Certificate2Collection : System.Security.Cryptography.X509Certificates.X509CertificateCollection + // Generated from `System.Security.Cryptography.X509Certificates.X509Certificate2Collection` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; @@ -294,6 +306,7 @@ namespace System public System.Byte[] Export(System.Security.Cryptography.X509Certificates.X509ContentType contentType, string password) => 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; @@ -315,21 +328,22 @@ namespace System public X509Certificate2Collection(System.Security.Cryptography.X509Certificates.X509Certificate2[] certificates) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509Certificate2Enumerator` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class X509Certificate2Enumerator : System.Collections.IEnumerator + // Generated from `System.Security.Cryptography.X509Certificates.X509Certificate2Enumerator` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; } + void System.IDisposable.Dispose() => 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; } - // Generated from `System.Security.Cryptography.X509Certificates.X509CertificateCollection` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509CertificateCollection` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509CertificateCollection : System.Collections.CollectionBase { - // Generated from `System.Security.Cryptography.X509Certificates.X509CertificateCollection+X509CertificateEnumerator` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509CertificateCollection+X509CertificateEnumerator` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509CertificateEnumerator : System.Collections.IEnumerator { public System.Security.Cryptography.X509Certificates.X509Certificate Current { get => throw null; } @@ -359,7 +373,7 @@ namespace System public X509CertificateCollection(System.Security.Cryptography.X509Certificates.X509Certificate[] value) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509Chain` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509Chain` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509Chain : System.IDisposable { public bool Build(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; @@ -377,7 +391,7 @@ namespace System public X509Chain(bool useMachineContext) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509ChainElement` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509ChainElement` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509ChainElement { public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } @@ -385,29 +399,31 @@ namespace System public string Information { get => throw null; } } - // Generated from `System.Security.Cryptography.X509Certificates.X509ChainElementCollection` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class X509ChainElementCollection : System.Collections.ICollection, System.Collections.IEnumerable + // Generated from `System.Security.Cryptography.X509Certificates.X509ChainElementCollection` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class X509ChainElementCollection : System.Collections.Generic.IEnumerable, System.Collections.ICollection, System.Collections.IEnumerable { 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; 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; } } - // Generated from `System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class X509ChainElementEnumerator : System.Collections.IEnumerator + // Generated from `System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; } + void System.IDisposable.Dispose() => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509ChainPolicy` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509ChainPolicy` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509ChainPolicy { public System.Security.Cryptography.OidCollection ApplicationPolicy { get => throw null; } @@ -425,7 +441,7 @@ namespace System public X509ChainPolicy() => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509ChainStatus` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509ChainStatus` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct X509ChainStatus { public System.Security.Cryptography.X509Certificates.X509ChainStatusFlags Status { get => throw null; set => throw null; } @@ -433,7 +449,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Security.Cryptography.X509Certificates.X509ChainStatusFlags` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509ChainStatusFlags` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum X509ChainStatusFlags { @@ -465,14 +481,14 @@ namespace System UntrustedRoot, } - // Generated from `System.Security.Cryptography.X509Certificates.X509ChainTrustMode` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509ChainTrustMode` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum X509ChainTrustMode { CustomRootTrust, System, } - // Generated from `System.Security.Cryptography.X509Certificates.X509ContentType` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509ContentType` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum X509ContentType { Authenticode, @@ -485,7 +501,7 @@ namespace System Unknown, } - // Generated from `System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509EnhancedKeyUsageExtension : System.Security.Cryptography.X509Certificates.X509Extension { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; @@ -495,7 +511,7 @@ namespace System public X509EnhancedKeyUsageExtension(System.Security.Cryptography.OidCollection enhancedKeyUsages, bool critical) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509Extension` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509Extension` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509Extension : System.Security.Cryptography.AsnEncodedData { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; @@ -508,14 +524,15 @@ namespace System public X509Extension(string oid, System.ReadOnlySpan rawData, bool critical) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509ExtensionCollection` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class X509ExtensionCollection : System.Collections.ICollection, System.Collections.IEnumerable + // Generated from `System.Security.Cryptography.X509Certificates.X509ExtensionCollection` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class X509ExtensionCollection : System.Collections.Generic.IEnumerable, System.Collections.ICollection, System.Collections.IEnumerable { 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; public int Count { get => 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 System.Security.Cryptography.X509Certificates.X509Extension this[int index] { get => throw null; } @@ -524,16 +541,17 @@ namespace System public X509ExtensionCollection() => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class X509ExtensionEnumerator : System.Collections.IEnumerator + // Generated from `System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public 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; } + void System.IDisposable.Dispose() => throw null; public bool MoveNext() => throw null; public void Reset() => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509FindType` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509FindType` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum X509FindType { FindByApplicationPolicy, @@ -553,7 +571,7 @@ namespace System FindByTimeValid, } - // Generated from `System.Security.Cryptography.X509Certificates.X509IncludeOption` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509IncludeOption` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum X509IncludeOption { EndCertOnly, @@ -562,7 +580,7 @@ namespace System WholeChain, } - // Generated from `System.Security.Cryptography.X509Certificates.X509KeyStorageFlags` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509KeyStorageFlags` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum X509KeyStorageFlags { @@ -575,7 +593,7 @@ namespace System UserProtected, } - // Generated from `System.Security.Cryptography.X509Certificates.X509KeyUsageExtension` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509KeyUsageExtension` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509KeyUsageExtension : System.Security.Cryptography.X509Certificates.X509Extension { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; @@ -585,7 +603,7 @@ namespace System public X509KeyUsageExtension(System.Security.Cryptography.X509Certificates.X509KeyUsageFlags keyUsages, bool critical) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509KeyUsageFlags` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509KeyUsageFlags` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum X509KeyUsageFlags { @@ -601,7 +619,7 @@ namespace System None, } - // Generated from `System.Security.Cryptography.X509Certificates.X509NameType` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509NameType` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum X509NameType { DnsFromAlternativeName, @@ -612,7 +630,7 @@ namespace System UrlName, } - // Generated from `System.Security.Cryptography.X509Certificates.X509RevocationFlag` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509RevocationFlag` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum X509RevocationFlag { EndCertificateOnly, @@ -620,7 +638,7 @@ namespace System ExcludeRoot, } - // Generated from `System.Security.Cryptography.X509Certificates.X509RevocationMode` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509RevocationMode` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum X509RevocationMode { NoCheck, @@ -628,7 +646,7 @@ namespace System Online, } - // Generated from `System.Security.Cryptography.X509Certificates.X509SignatureGenerator` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509SignatureGenerator` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class X509SignatureGenerator { protected abstract System.Security.Cryptography.X509Certificates.PublicKey BuildPublicKey(); @@ -640,7 +658,7 @@ namespace System protected X509SignatureGenerator() => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509Store` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509Store` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509Store : System.IDisposable { public void Add(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; @@ -666,7 +684,7 @@ namespace System public X509Store(string storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.OpenFlags flags) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class X509SubjectKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.X509Extension { public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; @@ -680,7 +698,7 @@ namespace System public X509SubjectKeyIdentifierExtension(string subjectKeyIdentifier, bool critical) => throw null; } - // Generated from `System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierHashAlgorithm` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierHashAlgorithm` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum X509SubjectKeyIdentifierHashAlgorithm { CapiSha1, @@ -688,7 +706,7 @@ namespace System ShortSha1, } - // Generated from `System.Security.Cryptography.X509Certificates.X509VerificationFlags` in `System.Security.Cryptography.X509Certificates, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Cryptography.X509Certificates.X509VerificationFlags` in `System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum X509VerificationFlags { diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Principal.Windows.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs similarity index 90% rename from csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Principal.Windows.cs rename to csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs index 6e640f2de63..ee8965c6db9 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/System.Security.Principal.Windows.cs +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Security.Principal.Windows.cs @@ -6,12 +6,13 @@ namespace Microsoft { namespace SafeHandles { - // Generated from `Microsoft.Win32.SafeHandles.SafeAccessTokenHandle` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `Microsoft.Win32.SafeHandles.SafeAccessTokenHandle` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SafeAccessTokenHandle : System.Runtime.InteropServices.SafeHandle { 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; } @@ -20,35 +21,21 @@ namespace Microsoft } namespace System { - namespace Runtime - { - namespace Versioning - { - /* Duplicate type 'OSPlatformAttribute' is not stubbed in this assembly 'System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'SupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'TargetPlatformAttribute' is not stubbed in this assembly 'System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'UnsupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - } - } namespace Security { namespace Principal { - // Generated from `System.Security.Principal.IdentityNotMappedException` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.IdentityNotMappedException` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class IdentityNotMappedException : System.SystemException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) => throw null; - public IdentityNotMappedException(string message, System.Exception inner) => throw null; - public IdentityNotMappedException(string message) => throw null; public IdentityNotMappedException() => throw null; + public IdentityNotMappedException(string message) => throw null; + public IdentityNotMappedException(string message, System.Exception inner) => throw null; public System.Security.Principal.IdentityReferenceCollection UnmappedIdentities { get => throw null; } } - // Generated from `System.Security.Principal.IdentityReference` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.IdentityReference` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class IdentityReference { public static bool operator !=(System.Security.Principal.IdentityReference left, System.Security.Principal.IdentityReference right) => throw null; @@ -62,8 +49,8 @@ namespace System public abstract string Value { get; } } - // Generated from `System.Security.Principal.IdentityReferenceCollection` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class IdentityReferenceCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection + // Generated from `System.Security.Principal.IdentityReferenceCollection` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public class IdentityReferenceCollection : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public void Add(System.Security.Principal.IdentityReference identity) => throw null; public void Clear() => throw null; @@ -72,16 +59,16 @@ namespace System 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(int capacity) => throw null; public IdentityReferenceCollection() => throw null; + public IdentityReferenceCollection(int capacity) => 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.IdentityReferenceCollection Translate(System.Type targetType, bool forceSuccess) => throw null; public System.Security.Principal.IdentityReferenceCollection Translate(System.Type targetType) => throw null; + public System.Security.Principal.IdentityReferenceCollection Translate(System.Type targetType, bool forceSuccess) => throw null; } - // Generated from `System.Security.Principal.NTAccount` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.NTAccount` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NTAccount : System.Security.Principal.IdentityReference { public static bool operator !=(System.Security.Principal.NTAccount left, System.Security.Principal.NTAccount right) => throw null; @@ -96,7 +83,7 @@ namespace System public override string Value { get => throw null; } } - // Generated from `System.Security.Principal.SecurityIdentifier` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.SecurityIdentifier` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SecurityIdentifier : System.Security.Principal.IdentityReference, System.IComparable { public static bool operator !=(System.Security.Principal.SecurityIdentifier left, System.Security.Principal.SecurityIdentifier right) => throw null; @@ -104,8 +91,8 @@ namespace System 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 override bool Equals(object o) => throw null; public bool Equals(System.Security.Principal.SecurityIdentifier sid) => throw null; + public override bool Equals(object o) => throw null; public void GetBinaryForm(System.Byte[] binaryForm, int offset) => throw null; public override int GetHashCode() => throw null; public bool IsAccountSid() => throw null; @@ -114,16 +101,16 @@ namespace System public bool IsWellKnown(System.Security.Principal.WellKnownSidType type) => throw null; public static int MaxBinaryLength; public static int MinBinaryLength; - public SecurityIdentifier(string sddlForm) => throw null; - public SecurityIdentifier(System.Security.Principal.WellKnownSidType sidType, System.Security.Principal.SecurityIdentifier domainSid) => throw null; - public SecurityIdentifier(System.IntPtr binaryForm) => throw null; 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 override string ToString() => throw null; public override System.Security.Principal.IdentityReference Translate(System.Type targetType) => throw null; public override string Value { get => throw null; } } - // Generated from `System.Security.Principal.TokenAccessLevels` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.TokenAccessLevels` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum TokenAccessLevels { @@ -142,7 +129,7 @@ namespace System Write, } - // Generated from `System.Security.Principal.WellKnownSidType` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.WellKnownSidType` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WellKnownSidType { AccountAdministratorSid, @@ -243,7 +230,7 @@ namespace System WorldSid, } - // Generated from `System.Security.Principal.WindowsAccountType` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.WindowsAccountType` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WindowsAccountType { Anonymous, @@ -252,7 +239,7 @@ namespace System System, } - // Generated from `System.Security.Principal.WindowsBuiltInRole` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.WindowsBuiltInRole` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WindowsBuiltInRole { AccountOperator, @@ -266,8 +253,8 @@ namespace System User, } - // Generated from `System.Security.Principal.WindowsIdentity` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class WindowsIdentity : System.Security.Claims.ClaimsIdentity, System.Runtime.Serialization.ISerializable, System.Runtime.Serialization.IDeserializationCallback, System.IDisposable + // Generated from `System.Security.Principal.WindowsIdentity` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + 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; } @@ -278,9 +265,9 @@ namespace System 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(bool ifImpersonating) => throw null; - public static System.Security.Principal.WindowsIdentity GetCurrent(System.Security.Principal.TokenAccessLevels desiredAccess) => 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; 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; } @@ -293,28 +280,28 @@ namespace System public System.Security.Principal.SecurityIdentifier Owner { get => throw null; } public static void RunImpersonated(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle safeAccessTokenHandle, System.Action action) => throw null; 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 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 System.Security.Principal.SecurityIdentifier User { get => throw null; } public virtual System.Collections.Generic.IEnumerable UserClaims { get => throw null; } - public WindowsIdentity(string sUserPrincipalName) => throw null; - public WindowsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public WindowsIdentity(System.IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType, bool isAuthenticated) => throw null; - public WindowsIdentity(System.IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType) => throw null; - public WindowsIdentity(System.IntPtr userToken, string type) => 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; } - // Generated from `System.Security.Principal.WindowsPrincipal` in `System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Security.Principal.WindowsPrincipal` in `System.Security.Principal.Windows, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class WindowsPrincipal : System.Security.Claims.ClaimsPrincipal { 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.WindowsBuiltInRole role) => 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.Text.Encoding.CodePages.cs b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/System.Text.Encoding.CodePages.cs index 7331b0d3084..7d62b664685 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 @@ -4,7 +4,7 @@ namespace System { namespace Text { - // Generated from `System.Text.CodePagesEncodingProvider` in `System.Text.Encoding.CodePages, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.CodePagesEncodingProvider` in `System.Text.Encoding.CodePages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CodePagesEncodingProvider : System.Text.EncodingProvider { public override System.Text.Encoding GetEncoding(int codepage) => 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 7989892741f..310193c3e58 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 @@ -4,7 +4,7 @@ namespace System { namespace Text { - // Generated from `System.Text.ASCIIEncoding` in `System.Text.Encoding.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.ASCIIEncoding` in `System.Text.Encoding.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ASCIIEncoding : System.Text.Encoding { public ASCIIEncoding() => throw null; @@ -30,7 +30,7 @@ namespace System public override bool IsSingleByte { get => throw null; } } - // Generated from `System.Text.UTF32Encoding` in `System.Text.Encoding.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.UTF32Encoding` in `System.Text.Encoding.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UTF32Encoding : System.Text.Encoding { public override bool Equals(object value) => throw null; @@ -57,7 +57,7 @@ namespace System public UTF32Encoding(bool bigEndian, bool byteOrderMark, bool throwOnInvalidCharacters) => throw null; } - // Generated from `System.Text.UTF7Encoding` in `System.Text.Encoding.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.UTF7Encoding` in `System.Text.Encoding.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UTF7Encoding : System.Text.Encoding { public override bool Equals(object value) => throw null; @@ -81,7 +81,7 @@ namespace System public UTF7Encoding(bool allowOptionals) => throw null; } - // Generated from `System.Text.UTF8Encoding` in `System.Text.Encoding.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.UTF8Encoding` in `System.Text.Encoding.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UTF8Encoding : System.Text.Encoding { public override bool Equals(object value) => throw null; @@ -112,7 +112,7 @@ namespace System public UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes) => throw null; } - // Generated from `System.Text.UnicodeEncoding` in `System.Text.Encoding.Extensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.UnicodeEncoding` in `System.Text.Encoding.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnicodeEncoding : System.Text.Encoding { public const int CharSize = default; 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 501f6270349..2801844f0fd 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 @@ -8,7 +8,7 @@ namespace System { namespace Web { - // Generated from `System.Text.Encodings.Web.HtmlEncoder` in `System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Encodings.Web.HtmlEncoder` in `System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class HtmlEncoder : System.Text.Encodings.Web.TextEncoder { public static System.Text.Encodings.Web.HtmlEncoder Create(System.Text.Encodings.Web.TextEncoderSettings settings) => throw null; @@ -17,7 +17,7 @@ namespace System protected HtmlEncoder() => throw null; } - // Generated from `System.Text.Encodings.Web.JavaScriptEncoder` in `System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Encodings.Web.JavaScriptEncoder` in `System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -27,7 +27,7 @@ namespace System public static System.Text.Encodings.Web.JavaScriptEncoder UnsafeRelaxedJsonEscaping { get => throw null; } } - // Generated from `System.Text.Encodings.Web.TextEncoder` in `System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Encodings.Web.TextEncoder` in `System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -44,7 +44,7 @@ namespace System public abstract bool WillEncode(int unicodeScalar); } - // Generated from `System.Text.Encodings.Web.TextEncoderSettings` in `System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Encodings.Web.TextEncoderSettings` in `System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TextEncoderSettings { public virtual void AllowCharacter(System.Char character) => throw null; @@ -63,7 +63,7 @@ namespace System public TextEncoderSettings(params System.Text.Unicode.UnicodeRange[] allowedRanges) => throw null; } - // Generated from `System.Text.Encodings.Web.UrlEncoder` in `System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Encodings.Web.UrlEncoder` in `System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -76,7 +76,7 @@ namespace System } namespace Unicode { - // Generated from `System.Text.Unicode.UnicodeRange` in `System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Unicode.UnicodeRange` in `System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class UnicodeRange { public static System.Text.Unicode.UnicodeRange Create(System.Char firstCharacter, System.Char lastCharacter) => throw null; @@ -85,7 +85,7 @@ namespace System public UnicodeRange(int firstCodePoint, int length) => throw null; } - // Generated from `System.Text.Unicode.UnicodeRanges` in `System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Unicode.UnicodeRanges` in `System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class UnicodeRanges { public static System.Text.Unicode.UnicodeRange All { 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 0f525b2ed3d..4b830a3f152 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 @@ -6,7 +6,7 @@ namespace System { namespace Json { - // Generated from `System.Text.Json.JsonCommentHandling` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonCommentHandling` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum JsonCommentHandling { Allow, @@ -14,7 +14,7 @@ namespace System Skip, } - // Generated from `System.Text.Json.JsonDocument` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonDocument` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class JsonDocument : System.IDisposable { public void Dispose() => throw null; @@ -30,7 +30,7 @@ namespace System public void WriteTo(System.Text.Json.Utf8JsonWriter writer) => throw null; } - // Generated from `System.Text.Json.JsonDocumentOptions` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonDocumentOptions` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct JsonDocumentOptions { public bool AllowTrailingCommas { get => throw null; set => throw null; } @@ -39,10 +39,10 @@ namespace System public int MaxDepth { get => throw null; set => throw null; } } - // Generated from `System.Text.Json.JsonElement` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonElement` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct JsonElement { - // Generated from `System.Text.Json.JsonElement+ArrayEnumerator` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonElement+ArrayEnumerator` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ArrayEnumerator : System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerable, System.Collections.IEnumerator, System.IDisposable { // Stub generator skipped constructor @@ -57,7 +57,7 @@ namespace System } - // Generated from `System.Text.Json.JsonElement+ObjectEnumerator` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonElement+ObjectEnumerator` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct ObjectEnumerator : System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerable, System.Collections.IEnumerator, System.IDisposable { public System.Text.Json.JsonProperty Current { get => throw null; } @@ -99,6 +99,7 @@ namespace System 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 override string ToString() => throw null; public bool TryGetByte(out System.Byte value) => throw null; public bool TryGetBytesFromBase64(out System.Byte[] value) => throw null; @@ -118,6 +119,7 @@ namespace System 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 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(string text) => throw null; @@ -125,7 +127,7 @@ namespace System public void WriteTo(System.Text.Json.Utf8JsonWriter writer) => throw null; } - // Generated from `System.Text.Json.JsonEncodedText` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonEncodedText` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; @@ -139,7 +141,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Text.Json.JsonException` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonException` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class JsonException : System.Exception { public System.Int64? BytePositionInLine { get => throw null; } @@ -155,7 +157,7 @@ namespace System public string Path { get => throw null; } } - // Generated from `System.Text.Json.JsonNamingPolicy` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonNamingPolicy` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class JsonNamingPolicy { public static System.Text.Json.JsonNamingPolicy CamelCase { get => throw null; } @@ -163,7 +165,7 @@ namespace System protected JsonNamingPolicy() => throw null; } - // Generated from `System.Text.Json.JsonProperty` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonProperty` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct JsonProperty { // Stub generator skipped constructor @@ -176,7 +178,7 @@ namespace System public void WriteTo(System.Text.Json.Utf8JsonWriter writer) => throw null; } - // Generated from `System.Text.Json.JsonReaderOptions` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonReaderOptions` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct JsonReaderOptions { public bool AllowTrailingCommas { get => throw null; set => throw null; } @@ -185,7 +187,7 @@ namespace System public int MaxDepth { get => throw null; set => throw null; } } - // Generated from `System.Text.Json.JsonReaderState` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonReaderState` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct JsonReaderState { // Stub generator skipped constructor @@ -193,37 +195,91 @@ namespace System public System.Text.Json.JsonReaderOptions Options { get => throw null; } } - // Generated from `System.Text.Json.JsonSerializer` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonSerializer` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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(string json, System.Type returnType, 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.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.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 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 string Serialize(object value, System.Type inputType, 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.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 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, 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(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(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(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; } - // Generated from `System.Text.Json.JsonSerializerDefaults` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonSerializerDefaults` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum JsonSerializerDefaults { General, Web, } - // Generated from `System.Text.Json.JsonSerializerOptions` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonSerializerOptions` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public 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 System.Collections.Generic.IList Converters { get => throw null; } public int DefaultBufferSize { get => throw null; set => throw null; } @@ -244,10 +300,11 @@ namespace System 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.JsonUnknownTypeHandling UnknownTypeHandling { get => throw null; set => throw null; } public bool WriteIndented { get => throw null; set => throw null; } } - // Generated from `System.Text.Json.JsonTokenType` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonTokenType` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum JsonTokenType { Comment, @@ -264,7 +321,7 @@ namespace System True, } - // Generated from `System.Text.Json.JsonValueKind` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonValueKind` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum JsonValueKind { Array, @@ -277,7 +334,7 @@ namespace System Undefined, } - // Generated from `System.Text.Json.JsonWriterOptions` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.JsonWriterOptions` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct JsonWriterOptions { public System.Text.Encodings.Web.JavaScriptEncoder Encoder { get => throw null; set => throw null; } @@ -286,7 +343,7 @@ namespace System public bool SkipValidation { get => throw null; set => throw null; } } - // Generated from `System.Text.Json.Utf8JsonReader` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Utf8JsonReader` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct Utf8JsonReader { public System.Int64 BytesConsumed { get => throw null; } @@ -345,7 +402,7 @@ namespace System public bool ValueTextEquals(string text) => throw null; } - // Generated from `System.Text.Json.Utf8JsonWriter` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Utf8JsonWriter` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class Utf8JsonWriter : System.IAsyncDisposable, System.IDisposable { public System.Int64 BytesCommitted { get => throw null; } @@ -420,6 +477,9 @@ namespace System 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; @@ -467,38 +527,254 @@ namespace System public void WriteStringValue(string value) => throw null; } + namespace Nodes + { + // Generated from `System.Text.Json.Nodes.JsonArray` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class JsonArray : System.Text.Json.Nodes.JsonNode, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + { + public void Add(System.Text.Json.Nodes.JsonNode item) => throw null; + public void Add(T value) => throw null; + public void Clear() => throw null; + public bool Contains(System.Text.Json.Nodes.JsonNode item) => throw null; + 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 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; + } + + // Generated from `System.Text.Json.Nodes.JsonNode` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class JsonNode + { + public System.Text.Json.Nodes.JsonArray AsArray() => throw null; + public System.Text.Json.Nodes.JsonObject AsObject() => throw null; + 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 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(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 System.Text.Json.Nodes.JsonNode Root { get => throw null; } + 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; + } + + // Generated from `System.Text.Json.Nodes.JsonNodeOptions` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public struct JsonNodeOptions + { + // Stub generator skipped constructor + public bool PropertyNameCaseInsensitive { get => throw null; set => throw null; } + } + + // Generated from `System.Text.Json.Nodes.JsonObject` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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; + public void 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 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 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; + 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; + } + + // Generated from `System.Text.Json.Nodes.JsonValue` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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(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(int 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(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(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 { - // Generated from `System.Text.Json.Serialization.JsonAttribute` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.IJsonOnDeserialized` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public interface IJsonOnDeserialized + { + void OnDeserialized(); + } + + // Generated from `System.Text.Json.Serialization.IJsonOnDeserializing` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public interface IJsonOnDeserializing + { + void OnDeserializing(); + } + + // Generated from `System.Text.Json.Serialization.IJsonOnSerialized` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public interface IJsonOnSerialized + { + void OnSerialized(); + } + + // Generated from `System.Text.Json.Serialization.IJsonOnSerializing` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public interface IJsonOnSerializing + { + void OnSerializing(); + } + + // Generated from `System.Text.Json.Serialization.JsonAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class JsonAttribute : System.Attribute { protected JsonAttribute() => throw null; } - // Generated from `System.Text.Json.Serialization.JsonConstructorAttribute` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonConstructorAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class JsonConstructorAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonConstructorAttribute() => throw null; } - // Generated from `System.Text.Json.Serialization.JsonConverter` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonConverter` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class JsonConverter { public abstract bool CanConvert(System.Type typeToConvert); internal JsonConverter() => throw null; } - // Generated from `System.Text.Json.Serialization.JsonConverter<>` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonConverter<>` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class JsonConverter : System.Text.Json.Serialization.JsonConverter { public override bool CanConvert(System.Type typeToConvert) => 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; } - // Generated from `System.Text.Json.Serialization.JsonConverterAttribute` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonConverterAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class JsonConverterAttribute : System.Text.Json.Serialization.JsonAttribute { public System.Type ConverterType { get => throw null; } @@ -507,27 +783,27 @@ namespace System public JsonConverterAttribute(System.Type converterType) => throw null; } - // Generated from `System.Text.Json.Serialization.JsonConverterFactory` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonConverterFactory` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } - // Generated from `System.Text.Json.Serialization.JsonExtensionDataAttribute` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonExtensionDataAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class JsonExtensionDataAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonExtensionDataAttribute() => throw null; } - // Generated from `System.Text.Json.Serialization.JsonIgnoreAttribute` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonIgnoreAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class JsonIgnoreAttribute : System.Text.Json.Serialization.JsonAttribute { public System.Text.Json.Serialization.JsonIgnoreCondition Condition { get => throw null; set => throw null; } public JsonIgnoreAttribute() => throw null; } - // Generated from `System.Text.Json.Serialization.JsonIgnoreCondition` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonIgnoreCondition` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum JsonIgnoreCondition { Always, @@ -536,13 +812,20 @@ namespace System WhenWritingNull, } - // Generated from `System.Text.Json.Serialization.JsonIncludeAttribute` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonIncludeAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class JsonIncludeAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonIncludeAttribute() => throw null; } - // Generated from `System.Text.Json.Serialization.JsonNumberHandling` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonKnownNamingPolicy` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum JsonKnownNamingPolicy + { + CamelCase, + Unspecified, + } + + // Generated from `System.Text.Json.Serialization.JsonNumberHandling` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` [System.Flags] public enum JsonNumberHandling { @@ -552,21 +835,67 @@ namespace System WriteAsString, } - // Generated from `System.Text.Json.Serialization.JsonNumberHandlingAttribute` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonNumberHandlingAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public 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; } - // Generated from `System.Text.Json.Serialization.JsonPropertyNameAttribute` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonPropertyNameAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class JsonPropertyNameAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonPropertyNameAttribute(string name) => throw null; public string Name { get => throw null; } } - // Generated from `System.Text.Json.Serialization.JsonStringEnumConverter` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonPropertyOrderAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class JsonPropertyOrderAttribute : System.Text.Json.Serialization.JsonAttribute + { + public JsonPropertyOrderAttribute(int order) => throw null; + public int Order { get => throw null; } + } + + // Generated from `System.Text.Json.Serialization.JsonSerializableAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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; } + } + + // Generated from `System.Text.Json.Serialization.JsonSerializerContext` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class JsonSerializerContext + { + protected abstract System.Text.Json.JsonSerializerOptions GeneratedSerializerOptions { get; } + public abstract System.Text.Json.Serialization.Metadata.JsonTypeInfo GetTypeInfo(System.Type type); + protected JsonSerializerContext(System.Text.Json.JsonSerializerOptions options) => throw null; + public System.Text.Json.JsonSerializerOptions Options { get => throw null; } + } + + // Generated from `System.Text.Json.Serialization.JsonSourceGenerationMode` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + [System.Flags] + public enum JsonSourceGenerationMode + { + Default, + Metadata, + Serialization, + } + + // Generated from `System.Text.Json.Serialization.JsonSourceGenerationOptionsAttribute` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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; } + } + + // Generated from `System.Text.Json.Serialization.JsonStringEnumConverter` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class JsonStringEnumConverter : System.Text.Json.Serialization.JsonConverterFactory { public override bool CanConvert(System.Type typeToConvert) => throw null; @@ -575,22 +904,30 @@ namespace System public JsonStringEnumConverter(System.Text.Json.JsonNamingPolicy namingPolicy = default(System.Text.Json.JsonNamingPolicy), bool allowIntegerValues = default(bool)) => throw null; } - // Generated from `System.Text.Json.Serialization.ReferenceHandler` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.JsonUnknownTypeHandling` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum JsonUnknownTypeHandling + { + JsonElement, + JsonNode, + } + + // Generated from `System.Text.Json.Serialization.ReferenceHandler` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } - // Generated from `System.Text.Json.Serialization.ReferenceHandler<>` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.ReferenceHandler<>` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } - // Generated from `System.Text.Json.Serialization.ReferenceResolver` in `System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Text.Json.Serialization.ReferenceResolver` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ReferenceResolver { public abstract void AddReference(string referenceId, object value); @@ -599,6 +936,138 @@ namespace System public abstract object ResolveReference(string referenceId); } + namespace Metadata + { + // Generated from `System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues<>` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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; } + } + + // Generated from `System.Text.Json.Serialization.Metadata.JsonMetadataServices` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + 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.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 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 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 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 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 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 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 CreateValueInfo(System.Text.Json.JsonSerializerOptions options, System.Text.Json.Serialization.JsonConverter converter) => 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 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.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 Int32Converter { 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 JsonElementConverter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter JsonNodeConverter { get => throw null; } + 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 SingleConverter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter StringConverter { 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 UriConverter { get => throw null; } + public static System.Text.Json.Serialization.JsonConverter VersionConverter { get => throw null; } + } + + // Generated from `System.Text.Json.Serialization.Metadata.JsonObjectInfoValues<>` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class JsonObjectInfoValues + { + public System.Func ConstructorParameterMetadataInitializer { get => throw null; set => throw null; } + 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; } + } + + // Generated from `System.Text.Json.Serialization.Metadata.JsonParameterInfoValues` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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; } + } + + // Generated from `System.Text.Json.Serialization.Metadata.JsonPropertyInfo` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class JsonPropertyInfo + { + } + + // Generated from `System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<>` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public 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 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; } + } + + // Generated from `System.Text.Json.Serialization.Metadata.JsonTypeInfo` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class JsonTypeInfo + { + internal JsonTypeInfo() => throw null; + } + + // Generated from `System.Text.Json.Serialization.Metadata.JsonTypeInfo<>` in `System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class JsonTypeInfo : System.Text.Json.Serialization.Metadata.JsonTypeInfo + { + public System.Action SerializeHandler { get => 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 a2c668e5e18..7d00c8800b6 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 @@ -6,7 +6,7 @@ namespace System { namespace RegularExpressions { - // Generated from `System.Text.RegularExpressions.Capture` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.Capture` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Capture { internal Capture() => throw null; @@ -14,9 +14,10 @@ namespace System 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; } } - // Generated from `System.Text.RegularExpressions.CaptureCollection` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.CaptureCollection` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { void System.Collections.Generic.ICollection.Add(System.Text.RegularExpressions.Capture item) => throw null; @@ -47,7 +48,7 @@ namespace System public object SyncRoot { get => throw null; } } - // Generated from `System.Text.RegularExpressions.Group` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.Group` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Group : System.Text.RegularExpressions.Capture { public System.Text.RegularExpressions.CaptureCollection Captures { get => throw null; } @@ -57,7 +58,7 @@ namespace System public static System.Text.RegularExpressions.Group Synchronized(System.Text.RegularExpressions.Group inner) => throw null; } - // Generated from `System.Text.RegularExpressions.GroupCollection` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.GroupCollection` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { void System.Collections.Generic.ICollection.Add(System.Text.RegularExpressions.Group item) => throw null; @@ -94,7 +95,7 @@ namespace System public System.Collections.Generic.IEnumerable Values { get => throw null; } } - // Generated from `System.Text.RegularExpressions.Match` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.Match` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Match : System.Text.RegularExpressions.Group { public static System.Text.RegularExpressions.Match Empty { get => throw null; } @@ -104,7 +105,7 @@ namespace System public static System.Text.RegularExpressions.Match Synchronized(System.Text.RegularExpressions.Match inner) => throw null; } - // Generated from `System.Text.RegularExpressions.MatchCollection` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.MatchCollection` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 { void System.Collections.Generic.ICollection.Add(System.Text.RegularExpressions.Match item) => throw null; @@ -135,10 +136,10 @@ namespace System public object SyncRoot { get => throw null; } } - // Generated from `System.Text.RegularExpressions.MatchEvaluator` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.MatchEvaluator` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate string MatchEvaluator(System.Text.RegularExpressions.Match match); - // Generated from `System.Text.RegularExpressions.Regex` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.Regex` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Regex : System.Runtime.Serialization.ISerializable { public static int CacheSize { get => throw null; set => throw null; } @@ -212,7 +213,7 @@ namespace System protected internal System.Text.RegularExpressions.RegexOptions roptions; } - // Generated from `System.Text.RegularExpressions.RegexCompilationInfo` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.RegexCompilationInfo` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RegexCompilationInfo { public bool IsPublic { get => throw null; set => throw null; } @@ -225,7 +226,7 @@ namespace System public RegexCompilationInfo(string pattern, System.Text.RegularExpressions.RegexOptions options, string name, string fullnamespace, bool ispublic, System.TimeSpan matchTimeout) => throw null; } - // Generated from `System.Text.RegularExpressions.RegexMatchTimeoutException` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.RegexMatchTimeoutException` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -239,7 +240,7 @@ namespace System public RegexMatchTimeoutException(string regexInput, string regexPattern, System.TimeSpan matchTimeout) => throw null; } - // Generated from `System.Text.RegularExpressions.RegexOptions` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.RegexOptions` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum RegexOptions { @@ -255,7 +256,7 @@ namespace System Singleline, } - // Generated from `System.Text.RegularExpressions.RegexParseError` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.RegexParseError` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum RegexParseError { AlternationHasComment, @@ -292,7 +293,7 @@ namespace System UnterminatedComment, } - // Generated from `System.Text.RegularExpressions.RegexParseException` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.RegexParseException` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RegexParseException : System.ArgumentException { public System.Text.RegularExpressions.RegexParseError Error { get => throw null; } @@ -300,7 +301,7 @@ namespace System public int Offset { get => throw null; } } - // Generated from `System.Text.RegularExpressions.RegexRunner` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.RegexRunner` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class RegexRunner { protected void Capture(int capnum, int start, int end) => throw null; @@ -343,7 +344,7 @@ namespace System protected internal int runtrackpos; } - // Generated from `System.Text.RegularExpressions.RegexRunnerFactory` in `System.Text.RegularExpressions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Text.RegularExpressions.RegexRunnerFactory` in `System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class RegexRunnerFactory { protected internal abstract System.Text.RegularExpressions.RegexRunner CreateInstance(); 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 c245f9ef282..9fef5ed46d6 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 @@ -6,7 +6,7 @@ namespace System { namespace Channels { - // Generated from `System.Threading.Channels.BoundedChannelFullMode` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.BoundedChannelFullMode` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum BoundedChannelFullMode { DropNewest, @@ -15,7 +15,7 @@ namespace System Wait, } - // Generated from `System.Threading.Channels.BoundedChannelOptions` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.BoundedChannelOptions` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class BoundedChannelOptions : System.Threading.Channels.ChannelOptions { public BoundedChannelOptions(int capacity) => throw null; @@ -23,16 +23,17 @@ namespace System public System.Threading.Channels.BoundedChannelFullMode FullMode { get => throw null; set => throw null; } } - // Generated from `System.Threading.Channels.Channel` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.Channel` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class Channel { 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; } - // Generated from `System.Threading.Channels.Channel<,>` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.Channel<,>` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Channel { protected Channel() => throw null; @@ -42,13 +43,13 @@ namespace System public static implicit operator System.Threading.Channels.ChannelWriter(System.Threading.Channels.Channel channel) => throw null; } - // Generated from `System.Threading.Channels.Channel<>` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.Channel<>` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class Channel : System.Threading.Channels.Channel { protected Channel() => throw null; } - // Generated from `System.Threading.Channels.ChannelClosedException` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.ChannelClosedException` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class ChannelClosedException : System.InvalidOperationException { public ChannelClosedException() => throw null; @@ -58,7 +59,7 @@ namespace System public ChannelClosedException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Threading.Channels.ChannelOptions` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.ChannelOptions` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ChannelOptions { public bool AllowSynchronousContinuations { get => throw null; set => throw null; } @@ -67,20 +68,22 @@ namespace System public bool SingleWriter { get => throw null; set => throw null; } } - // Generated from `System.Threading.Channels.ChannelReader<>` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.ChannelReader<>` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` 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; } 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)); } - // Generated from `System.Threading.Channels.ChannelWriter<>` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.ChannelWriter<>` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public abstract class ChannelWriter { protected ChannelWriter() => throw null; @@ -91,7 +94,7 @@ namespace System public virtual System.Threading.Tasks.ValueTask WriteAsync(T item, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; } - // Generated from `System.Threading.Channels.UnboundedChannelOptions` in `System.Threading.Channels, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Threading.Channels.UnboundedChannelOptions` in `System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public 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 a38ea8ffa68..b9fb80be02d 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 @@ -4,10 +4,10 @@ namespace System { namespace Threading { - // Generated from `System.Threading.IOCompletionCallback` in `System.Threading.Overlapped, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.IOCompletionCallback` in `System.Threading.Overlapped, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` unsafe public delegate void IOCompletionCallback(System.UInt32 errorCode, System.UInt32 numBytes, System.Threading.NativeOverlapped* pOVERLAP); - // Generated from `System.Threading.NativeOverlapped` in `System.Threading.Overlapped, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.NativeOverlapped` in `System.Threading.Overlapped, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct NativeOverlapped { public System.IntPtr EventHandle; @@ -18,7 +18,7 @@ namespace System public int OffsetLow; } - // Generated from `System.Threading.Overlapped` in `System.Threading.Overlapped, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Overlapped` in `System.Threading.Overlapped, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Overlapped { public System.IAsyncResult AsyncResult { get => throw null; set => throw null; } @@ -37,15 +37,16 @@ namespace System unsafe public System.Threading.NativeOverlapped* UnsafePack(System.Threading.IOCompletionCallback iocb, object userData) => throw null; } - // Generated from `System.Threading.PreAllocatedOverlapped` in `System.Threading.Overlapped, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.PreAllocatedOverlapped` in `System.Threading.Overlapped, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class PreAllocatedOverlapped : System.IDisposable { public void Dispose() => throw null; public PreAllocatedOverlapped(System.Threading.IOCompletionCallback callback, object state, object pinData) => 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 } - // Generated from `System.Threading.ThreadPoolBoundHandle` in `System.Threading.Overlapped, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadPoolBoundHandle` in `System.Threading.Overlapped, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ThreadPoolBoundHandle : System.IDisposable { unsafe public System.Threading.NativeOverlapped* AllocateNativeOverlapped(System.Threading.IOCompletionCallback callback, object state, object pinData) => throw null; @@ -55,6 +56,7 @@ namespace System unsafe public void FreeNativeOverlapped(System.Threading.NativeOverlapped* overlapped) => throw null; unsafe public static 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; } } 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 bb377d006aa..40bf8dedbbc 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 @@ -2,49 +2,13 @@ namespace System { - namespace Diagnostics - { - namespace CodeAnalysis - { - /* Duplicate type 'AllowNullAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'DisallowNullAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'DoesNotReturnAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'DoesNotReturnIfAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MaybeNullAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MaybeNullWhenAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MemberNotNullAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'MemberNotNullWhenAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'NotNullAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'NotNullIfNotNullAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - /* Duplicate type 'NotNullWhenAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - } - } - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. */ - - } - } namespace Threading { namespace Tasks { namespace Dataflow { - // Generated from `System.Threading.Tasks.Dataflow.ActionBlock<>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.ActionBlock<>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ActionBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.ITargetBlock { public ActionBlock(System.Action action) => throw null; @@ -60,7 +24,7 @@ namespace System public override string ToString() => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.BatchBlock<>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.BatchBlock<>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 BatchBlock(int batchSize) => throw null; @@ -81,7 +45,7 @@ namespace System public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.BatchedJoinBlock<,,>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.BatchedJoinBlock<,,>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 int BatchSize { get => throw null; } @@ -103,7 +67,7 @@ namespace System public bool TryReceiveAll(out System.Collections.Generic.IList, System.Collections.Generic.IList, System.Collections.Generic.IList>> items) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.BatchedJoinBlock<,>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.BatchedJoinBlock<,>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 int BatchSize { get => throw null; } @@ -124,7 +88,7 @@ namespace System public bool TryReceiveAll(out System.Collections.Generic.IList, System.Collections.Generic.IList>> items) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.BroadcastBlock<>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.BroadcastBlock<>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -142,7 +106,7 @@ namespace System bool System.Threading.Tasks.Dataflow.IReceivableSourceBlock.TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.BufferBlock<>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.BufferBlock<>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 BufferBlock() => throw null; @@ -161,7 +125,7 @@ namespace System public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.DataflowBlock` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.DataflowBlock` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class DataflowBlock { public static System.IObservable AsObservable(this System.Threading.Tasks.Dataflow.ISourceBlock source) => throw null; @@ -182,6 +146,7 @@ namespace System public static TOutput Receive(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.Threading.CancellationToken cancellationToken) => throw null; public static TOutput Receive(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.TimeSpan timeout) => throw null; public static TOutput Receive(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Collections.Generic.IAsyncEnumerable ReceiveAllAsync(this System.Threading.Tasks.Dataflow.IReceivableSourceBlock source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public static System.Threading.Tasks.Task ReceiveAsync(this System.Threading.Tasks.Dataflow.ISourceBlock source) => throw null; public static System.Threading.Tasks.Task ReceiveAsync(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.Threading.CancellationToken cancellationToken) => throw null; public static System.Threading.Tasks.Task ReceiveAsync(this System.Threading.Tasks.Dataflow.ISourceBlock source, System.TimeSpan timeout) => throw null; @@ -191,7 +156,7 @@ namespace System public static bool TryReceive(this System.Threading.Tasks.Dataflow.IReceivableSourceBlock source, out TOutput item) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.DataflowBlockOptions` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.DataflowBlockOptions` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataflowBlockOptions { public int BoundedCapacity { get => throw null; set => throw null; } @@ -204,7 +169,7 @@ namespace System public const int Unbounded = default; } - // Generated from `System.Threading.Tasks.Dataflow.DataflowLinkOptions` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.DataflowLinkOptions` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class DataflowLinkOptions { public bool Append { get => throw null; set => throw null; } @@ -213,7 +178,7 @@ namespace System public bool PropagateCompletion { get => throw null; set => throw null; } } - // Generated from `System.Threading.Tasks.Dataflow.DataflowMessageHeader` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.DataflowMessageHeader` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct DataflowMessageHeader : System.IEquatable { public static bool operator !=(System.Threading.Tasks.Dataflow.DataflowMessageHeader left, System.Threading.Tasks.Dataflow.DataflowMessageHeader right) => throw null; @@ -227,7 +192,7 @@ namespace System public bool IsValid { get => throw null; } } - // Generated from `System.Threading.Tasks.Dataflow.DataflowMessageStatus` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.DataflowMessageStatus` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DataflowMessageStatus { Accepted, @@ -237,7 +202,7 @@ namespace System Postponed, } - // Generated from `System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExecutionDataflowBlockOptions : System.Threading.Tasks.Dataflow.DataflowBlockOptions { public ExecutionDataflowBlockOptions() => throw null; @@ -245,7 +210,7 @@ namespace System public bool SingleProducerConstrained { get => throw null; set => throw null; } } - // Generated from `System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class GroupingDataflowBlockOptions : System.Threading.Tasks.Dataflow.DataflowBlockOptions { public bool Greedy { get => throw null; set => throw null; } @@ -253,7 +218,7 @@ namespace System public System.Int64 MaxNumberOfGroups { get => throw null; set => throw null; } } - // Generated from `System.Threading.Tasks.Dataflow.IDataflowBlock` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.IDataflowBlock` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IDataflowBlock { void Complete(); @@ -261,19 +226,19 @@ namespace System void Fault(System.Exception exception); } - // Generated from `System.Threading.Tasks.Dataflow.IPropagatorBlock<,>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.IPropagatorBlock<,>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IPropagatorBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.ISourceBlock, System.Threading.Tasks.Dataflow.ITargetBlock { } - // Generated from `System.Threading.Tasks.Dataflow.IReceivableSourceBlock<>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.IReceivableSourceBlock<>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); } - // Generated from `System.Threading.Tasks.Dataflow.ISourceBlock<>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.ISourceBlock<>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); @@ -282,13 +247,13 @@ namespace System bool ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock target); } - // Generated from `System.Threading.Tasks.Dataflow.ITargetBlock<>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.ITargetBlock<>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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); } - // Generated from `System.Threading.Tasks.Dataflow.JoinBlock<,,>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.JoinBlock<,,>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class JoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock>, System.Threading.Tasks.Dataflow.ISourceBlock> { public void Complete() => throw null; @@ -309,7 +274,7 @@ namespace System public bool TryReceiveAll(out System.Collections.Generic.IList> items) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.JoinBlock<,>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.JoinBlock<,>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class JoinBlock : System.Threading.Tasks.Dataflow.IDataflowBlock, System.Threading.Tasks.Dataflow.IReceivableSourceBlock>, System.Threading.Tasks.Dataflow.ISourceBlock> { public void Complete() => throw null; @@ -329,7 +294,7 @@ namespace System public bool TryReceiveAll(out System.Collections.Generic.IList> items) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.TransformBlock<,>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.TransformBlock<,>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 void Complete() => throw null; @@ -351,7 +316,7 @@ namespace System public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.TransformManyBlock<,>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.TransformManyBlock<,>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 void Complete() => throw null; @@ -373,7 +338,7 @@ namespace System public bool TryReceiveAll(out System.Collections.Generic.IList items) => throw null; } - // Generated from `System.Threading.Tasks.Dataflow.WriteOnceBlock<>` in `System.Threading.Tasks.Dataflow, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Dataflow.WriteOnceBlock<>` in `System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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 void Complete() => throw null; 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 773d4294b84..598ad1d2393 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 @@ -6,7 +6,7 @@ namespace System { namespace Tasks { - // Generated from `System.Threading.Tasks.Parallel` in `System.Threading.Tasks.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.Parallel` in `System.Threading.Tasks.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Parallel { public static System.Threading.Tasks.ParallelLoopResult For(int fromInclusive, int toExclusive, System.Action body) => throw null; @@ -41,11 +41,17 @@ namespace System 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.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.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 void Invoke(params System.Action[] actions) => throw null; } - // Generated from `System.Threading.Tasks.ParallelLoopResult` in `System.Threading.Tasks.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.ParallelLoopResult` in `System.Threading.Tasks.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct ParallelLoopResult { public bool IsCompleted { get => throw null; } @@ -53,7 +59,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Threading.Tasks.ParallelLoopState` in `System.Threading.Tasks.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.ParallelLoopState` in `System.Threading.Tasks.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ParallelLoopState { public void Break() => throw null; @@ -64,7 +70,7 @@ namespace System public void Stop() => throw null; } - // Generated from `System.Threading.Tasks.ParallelOptions` in `System.Threading.Tasks.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Tasks.ParallelOptions` in `System.Threading.Tasks.Parallel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ParallelOptions { public System.Threading.CancellationToken CancellationToken { get => throw null; set => throw null; } 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 cb774779ae5..d453b92fdc3 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 @@ -2,7 +2,7 @@ namespace System { - // Generated from `System.LocalDataStoreSlot` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.LocalDataStoreSlot` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LocalDataStoreSlot { // ERR: Stub generator didn't handle member: ~LocalDataStoreSlot @@ -10,7 +10,7 @@ namespace System namespace Threading { - // Generated from `System.Threading.ApartmentState` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ApartmentState` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ApartmentState { MTA, @@ -18,7 +18,7 @@ namespace System Unknown, } - // Generated from `System.Threading.CompressedStack` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.CompressedStack` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CompressedStack : System.Runtime.Serialization.ISerializable { public static System.Threading.CompressedStack Capture() => throw null; @@ -28,10 +28,10 @@ namespace System public static void Run(System.Threading.CompressedStack compressedStack, System.Threading.ContextCallback callback, object state) => throw null; } - // Generated from `System.Threading.ParameterizedThreadStart` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ParameterizedThreadStart` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ParameterizedThreadStart(object obj); - // Generated from `System.Threading.Thread` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Thread` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject { public void Abort() => throw null; @@ -86,6 +86,8 @@ namespace System 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; @@ -116,23 +118,23 @@ namespace System // ERR: Stub generator didn't handle member: ~Thread } - // Generated from `System.Threading.ThreadAbortException` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadAbortException` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ThreadAbortException : System.SystemException { public object ExceptionState { get => throw null; } } - // Generated from `System.Threading.ThreadExceptionEventArgs` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadExceptionEventArgs` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ThreadExceptionEventArgs : System.EventArgs { public System.Exception Exception { get => throw null; } public ThreadExceptionEventArgs(System.Exception t) => throw null; } - // Generated from `System.Threading.ThreadExceptionEventHandler` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadExceptionEventHandler` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ThreadExceptionEventHandler(object sender, System.Threading.ThreadExceptionEventArgs e); - // Generated from `System.Threading.ThreadInterruptedException` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadInterruptedException` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ThreadInterruptedException : System.SystemException { public ThreadInterruptedException() => throw null; @@ -141,7 +143,7 @@ namespace System public ThreadInterruptedException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Threading.ThreadPriority` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadPriority` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ThreadPriority { AboveNormal, @@ -151,15 +153,15 @@ namespace System Normal, } - // Generated from `System.Threading.ThreadStart` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadStart` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ThreadStart(); - // Generated from `System.Threading.ThreadStartException` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadStartException` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ThreadStartException : System.SystemException { } - // Generated from `System.Threading.ThreadState` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadState` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ThreadState { @@ -175,7 +177,7 @@ namespace System WaitSleepJoin, } - // Generated from `System.Threading.ThreadStateException` in `System.Threading.Thread, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadStateException` in `System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ThreadStateException : System.SystemException { public ThreadStateException() => 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 68a04c3a279..0dadac294dc 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 @@ -4,19 +4,19 @@ namespace System { namespace Threading { - // Generated from `System.Threading.IThreadPoolWorkItem` in `System.Threading.ThreadPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.IThreadPoolWorkItem` in `System.Threading.ThreadPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IThreadPoolWorkItem { void Execute(); } - // Generated from `System.Threading.RegisteredWaitHandle` in `System.Threading.ThreadPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.RegisteredWaitHandle` in `System.Threading.ThreadPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class RegisteredWaitHandle : System.MarshalByRefObject { public bool Unregister(System.Threading.WaitHandle waitObject) => throw null; } - // Generated from `System.Threading.ThreadPool` in `System.Threading.ThreadPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadPool` in `System.Threading.ThreadPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class ThreadPool { public static bool BindHandle(System.IntPtr osHandle) => throw null; @@ -46,10 +46,10 @@ namespace System public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.UInt32 millisecondsTimeOutInterval, bool executeOnlyOnce) => throw null; } - // Generated from `System.Threading.WaitCallback` in `System.Threading.ThreadPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.WaitCallback` in `System.Threading.ThreadPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void WaitCallback(object state); - // Generated from `System.Threading.WaitOrTimerCallback` in `System.Threading.ThreadPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.WaitOrTimerCallback` in `System.Threading.ThreadPool, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void WaitOrTimerCallback(object state, bool timedOut); } 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 3e58674e8f1..55b024e1dcc 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 @@ -4,7 +4,7 @@ namespace System { namespace Threading { - // Generated from `System.Threading.AbandonedMutexException` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.AbandonedMutexException` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AbandonedMutexException : System.SystemException { public AbandonedMutexException() => throw null; @@ -18,8 +18,8 @@ namespace System public int MutexIndex { get => throw null; } } - // Generated from `System.Threading.AsyncFlowControl` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public struct AsyncFlowControl : System.IDisposable + // Generated from `System.Threading.AsyncFlowControl` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + public struct AsyncFlowControl : System.IDisposable, System.IEquatable { 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; @@ -31,7 +31,7 @@ namespace System public void Undo() => throw null; } - // Generated from `System.Threading.AsyncLocal<>` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.AsyncLocal<>` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AsyncLocal { public AsyncLocal() => throw null; @@ -39,7 +39,7 @@ namespace System public T Value { get => throw null; set => throw null; } } - // Generated from `System.Threading.AsyncLocalValueChangedArgs<>` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.AsyncLocalValueChangedArgs<>` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct AsyncLocalValueChangedArgs { // Stub generator skipped constructor @@ -48,13 +48,13 @@ namespace System public bool ThreadContextChanged { get => throw null; } } - // Generated from `System.Threading.AutoResetEvent` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.AutoResetEvent` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class AutoResetEvent : System.Threading.EventWaitHandle { public AutoResetEvent(bool initialState) : base(default(bool), default(System.Threading.EventResetMode)) => throw null; } - // Generated from `System.Threading.Barrier` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Barrier` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Barrier : System.IDisposable { public System.Int64 AddParticipant() => throw null; @@ -76,7 +76,7 @@ namespace System public bool SignalAndWait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Threading.BarrierPostPhaseException` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.BarrierPostPhaseException` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class BarrierPostPhaseException : System.Exception { public BarrierPostPhaseException() => throw null; @@ -86,10 +86,10 @@ namespace System public BarrierPostPhaseException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Threading.ContextCallback` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ContextCallback` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ContextCallback(object state); - // Generated from `System.Threading.CountdownEvent` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.CountdownEvent` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CountdownEvent : System.IDisposable { public void AddCount() => throw null; @@ -115,14 +115,14 @@ namespace System public System.Threading.WaitHandle WaitHandle { get => throw null; } } - // Generated from `System.Threading.EventResetMode` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.EventResetMode` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EventResetMode { AutoReset, ManualReset, } - // Generated from `System.Threading.EventWaitHandle` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.EventWaitHandle` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class EventWaitHandle : System.Threading.WaitHandle { public EventWaitHandle(bool initialState, System.Threading.EventResetMode mode) => throw null; @@ -134,7 +134,7 @@ namespace System public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle result) => throw null; } - // Generated from `System.Threading.ExecutionContext` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ExecutionContext` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ExecutionContext : System.IDisposable, System.Runtime.Serialization.ISerializable { public static System.Threading.ExecutionContext Capture() => throw null; @@ -148,7 +148,7 @@ namespace System public static System.Threading.AsyncFlowControl SuppressFlow() => throw null; } - // Generated from `System.Threading.HostExecutionContext` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.HostExecutionContext` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HostExecutionContext : System.IDisposable { public virtual System.Threading.HostExecutionContext CreateCopy() => throw null; @@ -159,7 +159,7 @@ namespace System protected internal object State { get => throw null; set => throw null; } } - // Generated from `System.Threading.HostExecutionContextManager` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.HostExecutionContextManager` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class HostExecutionContextManager { public virtual System.Threading.HostExecutionContext Capture() => throw null; @@ -168,7 +168,7 @@ namespace System public virtual object SetHostExecutionContext(System.Threading.HostExecutionContext hostExecutionContext) => throw null; } - // Generated from `System.Threading.Interlocked` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Interlocked` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Interlocked { public static int Add(ref int location1, int value) => throw null; @@ -215,7 +215,7 @@ namespace System public static System.UInt64 Read(ref System.UInt64 location) => throw null; } - // Generated from `System.Threading.LazyInitializer` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.LazyInitializer` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class LazyInitializer { public static T EnsureInitialized(ref T target) where T : class => throw null; @@ -225,7 +225,7 @@ namespace System public static T EnsureInitialized(ref T target, ref object syncLock, System.Func valueFactory) where T : class => throw null; } - // Generated from `System.Threading.LockCookie` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.LockCookie` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct LockCookie { public static bool operator !=(System.Threading.LockCookie a, System.Threading.LockCookie b) => throw null; @@ -236,7 +236,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Threading.LockRecursionException` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.LockRecursionException` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class LockRecursionException : System.Exception { public LockRecursionException() => throw null; @@ -245,20 +245,20 @@ namespace System public LockRecursionException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Threading.LockRecursionPolicy` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.LockRecursionPolicy` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum LockRecursionPolicy { NoRecursion, SupportsRecursion, } - // Generated from `System.Threading.ManualResetEvent` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ManualResetEvent` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ManualResetEvent : System.Threading.EventWaitHandle { public ManualResetEvent(bool initialState) : base(default(bool), default(System.Threading.EventResetMode)) => throw null; } - // Generated from `System.Threading.ManualResetEventSlim` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ManualResetEventSlim` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ManualResetEventSlim : System.IDisposable { public void Dispose() => throw null; @@ -279,7 +279,7 @@ namespace System public System.Threading.WaitHandle WaitHandle { get => throw null; } } - // Generated from `System.Threading.Monitor` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Monitor` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Monitor { public static void Enter(object obj) => throw null; @@ -302,7 +302,7 @@ namespace System public static bool Wait(object obj, int millisecondsTimeout, bool exitContext) => throw null; } - // Generated from `System.Threading.Mutex` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Mutex` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Mutex : System.Threading.WaitHandle { public Mutex() => throw null; @@ -314,7 +314,7 @@ namespace System public static bool TryOpenExisting(string name, out System.Threading.Mutex result) => throw null; } - // Generated from `System.Threading.ReaderWriterLock` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ReaderWriterLock` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReaderWriterLock : System.Runtime.ConstrainedExecution.CriticalFinalizerObject { public void AcquireReaderLock(System.TimeSpan timeout) => throw null; @@ -335,7 +335,7 @@ namespace System public int WriterSeqNum { get => throw null; } } - // Generated from `System.Threading.ReaderWriterLockSlim` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ReaderWriterLockSlim` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ReaderWriterLockSlim : System.IDisposable { public int CurrentReadCount { get => throw null; } @@ -366,7 +366,7 @@ namespace System public int WaitingWriteCount { get => throw null; } } - // Generated from `System.Threading.Semaphore` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Semaphore` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class Semaphore : System.Threading.WaitHandle { public static System.Threading.Semaphore OpenExisting(string name) => throw null; @@ -378,7 +378,7 @@ namespace System public static bool TryOpenExisting(string name, out System.Threading.Semaphore result) => throw null; } - // Generated from `System.Threading.SemaphoreFullException` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.SemaphoreFullException` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SemaphoreFullException : System.SystemException { public SemaphoreFullException() => throw null; @@ -387,7 +387,7 @@ namespace System public SemaphoreFullException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Threading.SemaphoreSlim` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.SemaphoreSlim` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SemaphoreSlim : System.IDisposable { public System.Threading.WaitHandle AvailableWaitHandle { get => throw null; } @@ -412,10 +412,10 @@ namespace System public System.Threading.Tasks.Task WaitAsync(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) => throw null; } - // Generated from `System.Threading.SendOrPostCallback` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.SendOrPostCallback` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void SendOrPostCallback(object state); - // Generated from `System.Threading.SpinLock` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.SpinLock` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SpinLock { public void Enter(ref bool lockTaken) => throw null; @@ -431,7 +431,7 @@ namespace System public void TryEnter(ref bool lockTaken) => throw null; } - // Generated from `System.Threading.SpinWait` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.SpinWait` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct SpinWait { public int Count { get => throw null; } @@ -445,7 +445,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Threading.SynchronizationContext` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.SynchronizationContext` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SynchronizationContext { public virtual System.Threading.SynchronizationContext CreateCopy() => throw null; @@ -462,7 +462,7 @@ namespace System protected static int WaitHelper(System.IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout) => throw null; } - // Generated from `System.Threading.SynchronizationLockException` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.SynchronizationLockException` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SynchronizationLockException : System.SystemException { public SynchronizationLockException() => throw null; @@ -471,7 +471,7 @@ namespace System public SynchronizationLockException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Threading.ThreadLocal<>` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.ThreadLocal<>` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ThreadLocal : System.IDisposable { public void Dispose() => throw null; @@ -487,7 +487,7 @@ namespace System // ERR: Stub generator didn't handle member: ~ThreadLocal } - // Generated from `System.Threading.Volatile` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.Volatile` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Volatile { public static System.IntPtr Read(ref System.IntPtr location) => throw null; @@ -520,7 +520,7 @@ namespace System public static void Write(ref T location, T value) where T : class => throw null; } - // Generated from `System.Threading.WaitHandleCannotBeOpenedException` in `System.Threading, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Threading.WaitHandleCannotBeOpenedException` in `System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class WaitHandleCannotBeOpenedException : System.ApplicationException { public WaitHandleCannotBeOpenedException() => 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 85d3bae3020..7879a339bc0 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 @@ -4,7 +4,7 @@ namespace System { namespace Transactions { - // Generated from `System.Transactions.CommittableTransaction` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.CommittableTransaction` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class CommittableTransaction : System.Transactions.Transaction, System.IAsyncResult { object System.IAsyncResult.AsyncState { get => throw null; } @@ -19,27 +19,27 @@ namespace System bool System.IAsyncResult.IsCompleted { get => throw null; } } - // Generated from `System.Transactions.DependentCloneOption` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.DependentCloneOption` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum DependentCloneOption { BlockCommitUntilComplete, RollbackIfNotComplete, } - // Generated from `System.Transactions.DependentTransaction` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.DependentTransaction` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class DependentTransaction : System.Transactions.Transaction { public void Complete() => throw null; } - // Generated from `System.Transactions.Enlistment` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.Enlistment` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class Enlistment { public void Done() => throw null; internal Enlistment() => throw null; } - // Generated from `System.Transactions.EnlistmentOptions` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.EnlistmentOptions` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` [System.Flags] public enum EnlistmentOptions { @@ -47,7 +47,7 @@ namespace System None, } - // Generated from `System.Transactions.EnterpriseServicesInteropOption` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.EnterpriseServicesInteropOption` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum EnterpriseServicesInteropOption { Automatic, @@ -55,10 +55,10 @@ namespace System None, } - // Generated from `System.Transactions.HostCurrentTransactionCallback` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.HostCurrentTransactionCallback` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate System.Transactions.Transaction HostCurrentTransactionCallback(); - // Generated from `System.Transactions.IDtcTransaction` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.IDtcTransaction` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IDtcTransaction { void Abort(System.IntPtr reason, int retaining, int async); @@ -66,7 +66,7 @@ namespace System void GetTransactionInfo(System.IntPtr transactionInformation); } - // Generated from `System.Transactions.IEnlistmentNotification` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.IEnlistmentNotification` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IEnlistmentNotification { void Commit(System.Transactions.Enlistment enlistment); @@ -75,7 +75,7 @@ namespace System void Rollback(System.Transactions.Enlistment enlistment); } - // Generated from `System.Transactions.IPromotableSinglePhaseNotification` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.IPromotableSinglePhaseNotification` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface IPromotableSinglePhaseNotification : System.Transactions.ITransactionPromoter { void Initialize(); @@ -83,25 +83,25 @@ namespace System void SinglePhaseCommit(System.Transactions.SinglePhaseEnlistment singlePhaseEnlistment); } - // Generated from `System.Transactions.ISimpleTransactionSuperior` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.ISimpleTransactionSuperior` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface ISimpleTransactionSuperior : System.Transactions.ITransactionPromoter { void Rollback(); } - // Generated from `System.Transactions.ISinglePhaseNotification` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.ISinglePhaseNotification` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface ISinglePhaseNotification : System.Transactions.IEnlistmentNotification { void SinglePhaseCommit(System.Transactions.SinglePhaseEnlistment singlePhaseEnlistment); } - // Generated from `System.Transactions.ITransactionPromoter` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.ITransactionPromoter` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public interface ITransactionPromoter { System.Byte[] Promote(); } - // Generated from `System.Transactions.IsolationLevel` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.IsolationLevel` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum IsolationLevel { Chaos, @@ -113,7 +113,7 @@ namespace System Unspecified, } - // Generated from `System.Transactions.PreparingEnlistment` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.PreparingEnlistment` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class PreparingEnlistment : System.Transactions.Enlistment { public void ForceRollback() => throw null; @@ -122,7 +122,7 @@ namespace System public System.Byte[] RecoveryInformation() => throw null; } - // Generated from `System.Transactions.SinglePhaseEnlistment` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.SinglePhaseEnlistment` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class SinglePhaseEnlistment : System.Transactions.Enlistment { public void Aborted() => throw null; @@ -132,13 +132,13 @@ namespace System public void InDoubt(System.Exception e) => throw null; } - // Generated from `System.Transactions.SubordinateTransaction` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.SubordinateTransaction` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class SubordinateTransaction : System.Transactions.Transaction { public SubordinateTransaction(System.Transactions.IsolationLevel isoLevel, System.Transactions.ISimpleTransactionSuperior superior) => throw null; } - // Generated from `System.Transactions.Transaction` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.Transaction` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class Transaction : System.IDisposable, System.Runtime.Serialization.ISerializable { public static bool operator !=(System.Transactions.Transaction x, System.Transactions.Transaction y) => throw null; @@ -168,7 +168,7 @@ namespace System public System.Transactions.TransactionInformation TransactionInformation { get => throw null; } } - // Generated from `System.Transactions.TransactionAbortedException` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionAbortedException` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TransactionAbortedException : System.Transactions.TransactionException { public TransactionAbortedException() => throw null; @@ -177,17 +177,17 @@ namespace System public TransactionAbortedException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Transactions.TransactionCompletedEventHandler` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionCompletedEventHandler` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void TransactionCompletedEventHandler(object sender, System.Transactions.TransactionEventArgs e); - // Generated from `System.Transactions.TransactionEventArgs` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionEventArgs` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TransactionEventArgs : System.EventArgs { public System.Transactions.Transaction Transaction { get => throw null; } public TransactionEventArgs() => throw null; } - // Generated from `System.Transactions.TransactionException` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionException` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TransactionException : System.SystemException { public TransactionException() => throw null; @@ -196,7 +196,7 @@ namespace System public TransactionException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Transactions.TransactionInDoubtException` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionInDoubtException` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TransactionInDoubtException : System.Transactions.TransactionException { public TransactionInDoubtException() => throw null; @@ -205,7 +205,7 @@ namespace System public TransactionInDoubtException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Transactions.TransactionInformation` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionInformation` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TransactionInformation { public System.DateTime CreationTime { get => throw null; } @@ -214,7 +214,7 @@ namespace System public System.Transactions.TransactionStatus Status { get => throw null; } } - // Generated from `System.Transactions.TransactionInterop` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionInterop` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class TransactionInterop { public static System.Transactions.IDtcTransaction GetDtcTransaction(System.Transactions.Transaction transaction) => throw null; @@ -227,7 +227,7 @@ namespace System public static System.Guid PromoterTypeDtc; } - // Generated from `System.Transactions.TransactionManager` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionManager` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public static class TransactionManager { public static System.TimeSpan DefaultTimeout { get => throw null; } @@ -238,7 +238,7 @@ namespace System public static System.Transactions.Enlistment Reenlist(System.Guid resourceManagerIdentifier, System.Byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification) => throw null; } - // Generated from `System.Transactions.TransactionManagerCommunicationException` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionManagerCommunicationException` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TransactionManagerCommunicationException : System.Transactions.TransactionException { public TransactionManagerCommunicationException() => throw null; @@ -247,7 +247,7 @@ namespace System public TransactionManagerCommunicationException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Transactions.TransactionOptions` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionOptions` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public struct TransactionOptions { public static bool operator !=(System.Transactions.TransactionOptions x, System.Transactions.TransactionOptions y) => throw null; @@ -259,7 +259,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Transactions.TransactionPromotionException` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionPromotionException` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TransactionPromotionException : System.Transactions.TransactionException { public TransactionPromotionException() => throw null; @@ -268,7 +268,7 @@ namespace System public TransactionPromotionException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Transactions.TransactionScope` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionScope` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class TransactionScope : System.IDisposable { public void Complete() => throw null; @@ -289,14 +289,14 @@ namespace System public TransactionScope(System.Transactions.TransactionScopeOption scopeOption, System.Transactions.TransactionScopeAsyncFlowOption asyncFlowOption) => throw null; } - // Generated from `System.Transactions.TransactionScopeAsyncFlowOption` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionScopeAsyncFlowOption` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum TransactionScopeAsyncFlowOption { Enabled, Suppress, } - // Generated from `System.Transactions.TransactionScopeOption` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionScopeOption` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum TransactionScopeOption { Required, @@ -304,10 +304,10 @@ namespace System Suppress, } - // Generated from `System.Transactions.TransactionStartedEventHandler` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionStartedEventHandler` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public delegate void TransactionStartedEventHandler(object sender, System.Transactions.TransactionEventArgs e); - // Generated from `System.Transactions.TransactionStatus` in `System.Transactions.Local, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Transactions.TransactionStatus` in `System.Transactions.Local, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public enum TransactionStatus { Aborted, 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 3de0f514bd5..b0420c2dc3f 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 @@ -4,7 +4,7 @@ namespace System { namespace Web { - // Generated from `System.Web.HttpUtility` in `System.Web.HttpUtility, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + // Generated from `System.Web.HttpUtility` in `System.Web.HttpUtility, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` public class HttpUtility { public static string HtmlAttributeEncode(string s) => throw null; 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 b2db8cc8de0..a55cb161611 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 @@ -4,7 +4,7 @@ namespace System { namespace Xml { - // Generated from `System.Xml.ConformanceLevel` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.ConformanceLevel` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ConformanceLevel { Auto, @@ -12,7 +12,7 @@ namespace System Fragment, } - // Generated from `System.Xml.DtdProcessing` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.DtdProcessing` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum DtdProcessing { Ignore, @@ -20,33 +20,33 @@ namespace System Prohibit, } - // Generated from `System.Xml.EntityHandling` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.EntityHandling` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum EntityHandling { ExpandCharEntities, ExpandEntities, } - // Generated from `System.Xml.Formatting` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Formatting` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum Formatting { Indented, None, } - // Generated from `System.Xml.IApplicationResourceStreamResolver` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IApplicationResourceStreamResolver` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IApplicationResourceStreamResolver { System.IO.Stream GetApplicationResourceStream(System.Uri relativeUri); } - // Generated from `System.Xml.IHasXmlNode` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IHasXmlNode` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IHasXmlNode { System.Xml.XmlNode GetNode(); } - // Generated from `System.Xml.IXmlLineInfo` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IXmlLineInfo` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXmlLineInfo { bool HasLineInfo(); @@ -54,7 +54,7 @@ namespace System int LinePosition { get; } } - // Generated from `System.Xml.IXmlNamespaceResolver` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.IXmlNamespaceResolver` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXmlNamespaceResolver { System.Collections.Generic.IDictionary GetNamespacesInScope(System.Xml.XmlNamespaceScope scope); @@ -62,7 +62,7 @@ namespace System string LookupPrefix(string namespaceName); } - // Generated from `System.Xml.NameTable` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.NameTable` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class NameTable : System.Xml.XmlNameTable { public override string Add(System.Char[] key, int start, int len) => throw null; @@ -72,7 +72,7 @@ namespace System public NameTable() => throw null; } - // Generated from `System.Xml.NamespaceHandling` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.NamespaceHandling` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum NamespaceHandling { @@ -80,7 +80,7 @@ namespace System OmitDuplicates, } - // Generated from `System.Xml.NewLineHandling` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.NewLineHandling` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum NewLineHandling { Entitize, @@ -88,7 +88,7 @@ namespace System Replace, } - // Generated from `System.Xml.ReadState` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.ReadState` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ReadState { Closed, @@ -98,7 +98,7 @@ namespace System Interactive, } - // Generated from `System.Xml.ValidationType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.ValidationType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum ValidationType { Auto, @@ -108,7 +108,7 @@ namespace System XDR, } - // Generated from `System.Xml.WhitespaceHandling` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.WhitespaceHandling` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WhitespaceHandling { All, @@ -116,7 +116,7 @@ namespace System Significant, } - // Generated from `System.Xml.WriteState` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.WriteState` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum WriteState { Attribute, @@ -128,7 +128,7 @@ namespace System Start, } - // Generated from `System.Xml.XmlAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAttribute : System.Xml.XmlNode { public override System.Xml.XmlNode AppendChild(System.Xml.XmlNode newChild) => throw null; @@ -157,7 +157,7 @@ namespace System protected internal XmlAttribute(string prefix, string localName, string namespaceURI, System.Xml.XmlDocument doc) => throw null; } - // Generated from `System.Xml.XmlAttributeCollection` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlAttributeCollection` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAttributeCollection : System.Xml.XmlNamedNodeMap, System.Collections.ICollection, System.Collections.IEnumerable { public System.Xml.XmlAttribute Append(System.Xml.XmlAttribute node) => throw null; @@ -181,7 +181,7 @@ namespace System object System.Collections.ICollection.SyncRoot { get => throw null; } } - // Generated from `System.Xml.XmlCDataSection` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlCDataSection` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlCDataSection : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -195,7 +195,7 @@ namespace System protected internal XmlCDataSection(string data, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - // Generated from `System.Xml.XmlCharacterData` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlCharacterData` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlCharacterData : System.Xml.XmlLinkedNode { public virtual void AppendData(string strData) => throw null; @@ -210,7 +210,7 @@ namespace System protected internal XmlCharacterData(string data, System.Xml.XmlDocument doc) => throw null; } - // Generated from `System.Xml.XmlComment` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlComment` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlComment : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -222,7 +222,7 @@ namespace System protected internal XmlComment(string comment, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - // Generated from `System.Xml.XmlConvert` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlConvert` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlConvert { public static string DecodeName(string name) => throw null; @@ -287,7 +287,7 @@ namespace System public XmlConvert() => throw null; } - // Generated from `System.Xml.XmlDateTimeSerializationMode` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDateTimeSerializationMode` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlDateTimeSerializationMode { Local, @@ -296,7 +296,7 @@ namespace System Utc, } - // Generated from `System.Xml.XmlDeclaration` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDeclaration` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlDeclaration : System.Xml.XmlLinkedNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -313,7 +313,7 @@ namespace System protected internal XmlDeclaration(string version, string encoding, string standalone, System.Xml.XmlDocument doc) => throw null; } - // Generated from `System.Xml.XmlDocument` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDocument` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlDocument : System.Xml.XmlNode { public override string BaseURI { get => throw null; } @@ -385,7 +385,7 @@ namespace System public virtual System.Xml.XmlResolver XmlResolver { set => throw null; } } - // Generated from `System.Xml.XmlDocumentFragment` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDocumentFragment` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlDocumentFragment : System.Xml.XmlNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -400,7 +400,7 @@ namespace System protected internal XmlDocumentFragment(System.Xml.XmlDocument ownerDocument) => throw null; } - // Generated from `System.Xml.XmlDocumentType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlDocumentType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlDocumentType : System.Xml.XmlLinkedNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -418,7 +418,7 @@ namespace System protected internal XmlDocumentType(string name, string publicId, string systemId, string internalSubset, System.Xml.XmlDocument doc) => throw null; } - // Generated from `System.Xml.XmlElement` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlElement` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlElement : System.Xml.XmlLinkedNode { public override System.Xml.XmlAttributeCollection Attributes { get => throw null; } @@ -460,7 +460,7 @@ namespace System protected internal XmlElement(string prefix, string localName, string namespaceURI, System.Xml.XmlDocument doc) => throw null; } - // Generated from `System.Xml.XmlEntity` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlEntity` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlEntity : System.Xml.XmlNode { public override string BaseURI { get => throw null; } @@ -479,7 +479,7 @@ namespace System public override void WriteTo(System.Xml.XmlWriter w) => throw null; } - // Generated from `System.Xml.XmlEntityReference` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlEntityReference` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlEntityReference : System.Xml.XmlLinkedNode { public override string BaseURI { get => throw null; } @@ -494,7 +494,7 @@ namespace System protected internal XmlEntityReference(string name, System.Xml.XmlDocument doc) => throw null; } - // Generated from `System.Xml.XmlException` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlException` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlException : System.SystemException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -509,7 +509,7 @@ namespace System public XmlException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; } - // Generated from `System.Xml.XmlImplementation` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlImplementation` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlImplementation { public virtual System.Xml.XmlDocument CreateDocument() => throw null; @@ -518,7 +518,7 @@ namespace System public XmlImplementation(System.Xml.XmlNameTable nt) => throw null; } - // Generated from `System.Xml.XmlLinkedNode` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlLinkedNode` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlLinkedNode : System.Xml.XmlNode { public override System.Xml.XmlNode NextSibling { get => throw null; } @@ -526,7 +526,7 @@ namespace System internal XmlLinkedNode() => throw null; } - // Generated from `System.Xml.XmlNameTable` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNameTable` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlNameTable { public abstract string Add(System.Char[] array, int offset, int length); @@ -536,7 +536,7 @@ namespace System protected XmlNameTable() => throw null; } - // Generated from `System.Xml.XmlNamedNodeMap` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNamedNodeMap` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlNamedNodeMap : System.Collections.IEnumerable { public virtual int Count { get => throw null; } @@ -550,7 +550,7 @@ namespace System internal XmlNamedNodeMap() => throw null; } - // Generated from `System.Xml.XmlNamespaceManager` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNamespaceManager` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlNamespaceManager : System.Collections.IEnumerable, System.Xml.IXmlNamespaceResolver { public virtual void AddNamespace(string prefix, string uri) => throw null; @@ -567,7 +567,7 @@ namespace System public XmlNamespaceManager(System.Xml.XmlNameTable nameTable) => throw null; } - // Generated from `System.Xml.XmlNamespaceScope` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNamespaceScope` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlNamespaceScope { All, @@ -575,7 +575,7 @@ namespace System Local, } - // Generated from `System.Xml.XmlNode` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNode` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -628,7 +628,7 @@ namespace System internal XmlNode() => throw null; } - // Generated from `System.Xml.XmlNodeChangedAction` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNodeChangedAction` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlNodeChangedAction { Change, @@ -636,7 +636,7 @@ namespace System Remove, } - // Generated from `System.Xml.XmlNodeChangedEventArgs` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNodeChangedEventArgs` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlNodeChangedEventArgs : System.EventArgs { public System.Xml.XmlNodeChangedAction Action { get => throw null; } @@ -648,10 +648,10 @@ namespace System public XmlNodeChangedEventArgs(System.Xml.XmlNode node, System.Xml.XmlNode oldParent, System.Xml.XmlNode newParent, string oldValue, string newValue, System.Xml.XmlNodeChangedAction action) => throw null; } - // Generated from `System.Xml.XmlNodeChangedEventHandler` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNodeChangedEventHandler` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void XmlNodeChangedEventHandler(object sender, System.Xml.XmlNodeChangedEventArgs e); - // Generated from `System.Xml.XmlNodeList` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNodeList` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlNodeList : System.Collections.IEnumerable, System.IDisposable { public abstract int Count { get; } @@ -664,7 +664,7 @@ namespace System protected XmlNodeList() => throw null; } - // Generated from `System.Xml.XmlNodeOrder` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNodeOrder` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlNodeOrder { After, @@ -673,7 +673,7 @@ namespace System Unknown, } - // Generated from `System.Xml.XmlNodeReader` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNodeReader` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlNodeReader : System.Xml.XmlReader, System.Xml.IXmlNamespaceResolver { public override int AttributeCount { get => throw null; } @@ -723,7 +723,7 @@ namespace System public override System.Xml.XmlSpace XmlSpace { get => throw null; } } - // Generated from `System.Xml.XmlNodeType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNodeType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlNodeType { Attribute, @@ -746,7 +746,7 @@ namespace System XmlDeclaration, } - // Generated from `System.Xml.XmlNotation` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlNotation` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlNotation : System.Xml.XmlNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -762,7 +762,7 @@ namespace System public override void WriteTo(System.Xml.XmlWriter w) => throw null; } - // Generated from `System.Xml.XmlOutputMethod` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlOutputMethod` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlOutputMethod { AutoDetect, @@ -771,7 +771,7 @@ namespace System Xml, } - // Generated from `System.Xml.XmlParserContext` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlParserContext` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlParserContext { public string BaseURI { get => throw null; set => throw null; } @@ -790,7 +790,7 @@ namespace System public System.Xml.XmlSpace XmlSpace { get => throw null; set => throw null; } } - // Generated from `System.Xml.XmlProcessingInstruction` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlProcessingInstruction` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlProcessingInstruction : System.Xml.XmlLinkedNode { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -806,7 +806,7 @@ namespace System protected internal XmlProcessingInstruction(string target, string data, System.Xml.XmlDocument doc) => throw null; } - // Generated from `System.Xml.XmlQualifiedName` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlQualifiedName` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlQualifiedName { public static bool operator !=(System.Xml.XmlQualifiedName a, System.Xml.XmlQualifiedName b) => throw null; @@ -824,7 +824,7 @@ namespace System public XmlQualifiedName(string name, string ns) => throw null; } - // Generated from `System.Xml.XmlReader` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlReader` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlReader : System.IDisposable { public abstract int AttributeCount { get; } @@ -963,7 +963,7 @@ namespace System public virtual System.Xml.XmlSpace XmlSpace { get => throw null; } } - // Generated from `System.Xml.XmlReaderSettings` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlReaderSettings` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlReaderSettings { public bool Async { get => throw null; set => throw null; } @@ -990,7 +990,7 @@ namespace System public System.Xml.XmlResolver XmlResolver { set => throw null; } } - // Generated from `System.Xml.XmlResolver` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlResolver` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlResolver { public virtual System.Net.ICredentials Credentials { set => throw null; } @@ -1001,7 +1001,7 @@ namespace System protected XmlResolver() => throw null; } - // Generated from `System.Xml.XmlSecureResolver` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlSecureResolver` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSecureResolver : System.Xml.XmlResolver { public override System.Net.ICredentials Credentials { set => throw null; } @@ -1011,7 +1011,7 @@ namespace System public XmlSecureResolver(System.Xml.XmlResolver resolver, string securityUrl) => throw null; } - // Generated from `System.Xml.XmlSignificantWhitespace` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlSignificantWhitespace` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSignificantWhitespace : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -1026,7 +1026,7 @@ namespace System protected internal XmlSignificantWhitespace(string strData, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - // Generated from `System.Xml.XmlSpace` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlSpace` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlSpace { Default, @@ -1034,7 +1034,7 @@ namespace System Preserve, } - // Generated from `System.Xml.XmlText` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlText` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlText : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -1050,7 +1050,7 @@ namespace System protected internal XmlText(string strData, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - // Generated from `System.Xml.XmlTextReader` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlTextReader` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlTextReader : System.Xml.XmlReader, System.Xml.IXmlLineInfo, System.Xml.IXmlNamespaceResolver { public override int AttributeCount { get => throw null; } @@ -1130,7 +1130,7 @@ namespace System public XmlTextReader(string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; } - // Generated from `System.Xml.XmlTextWriter` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlTextWriter` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlTextWriter : System.Xml.XmlWriter { public System.IO.Stream BaseStream { get => throw null; } @@ -1175,7 +1175,7 @@ namespace System public XmlTextWriter(string filename, System.Text.Encoding encoding) => throw null; } - // Generated from `System.Xml.XmlTokenizedType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlTokenizedType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlTokenizedType { CDATA, @@ -1193,7 +1193,7 @@ namespace System QName, } - // Generated from `System.Xml.XmlUrlResolver` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlUrlResolver` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlUrlResolver : System.Xml.XmlResolver { public System.Net.Cache.RequestCachePolicy CachePolicy { set => throw null; } @@ -1205,7 +1205,7 @@ namespace System public XmlUrlResolver() => throw null; } - // Generated from `System.Xml.XmlValidatingReader` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlValidatingReader` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlValidatingReader : System.Xml.XmlReader, System.Xml.IXmlLineInfo, System.Xml.IXmlNamespaceResolver { public override int AttributeCount { get => throw null; } @@ -1268,7 +1268,7 @@ namespace System public XmlValidatingReader(string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context) => throw null; } - // Generated from `System.Xml.XmlWhitespace` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlWhitespace` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlWhitespace : System.Xml.XmlCharacterData { public override System.Xml.XmlNode CloneNode(bool deep) => throw null; @@ -1283,7 +1283,7 @@ namespace System protected internal XmlWhitespace(string strData, System.Xml.XmlDocument doc) : base(default(string), default(System.Xml.XmlDocument)) => throw null; } - // Generated from `System.Xml.XmlWriter` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlWriter` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlWriter : System.IAsyncDisposable, System.IDisposable { public virtual void Close() => throw null; @@ -1389,7 +1389,7 @@ namespace System protected XmlWriter() => throw null; } - // Generated from `System.Xml.XmlWriterSettings` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XmlWriterSettings` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlWriterSettings { public bool Async { get => throw null; set => throw null; } @@ -1414,7 +1414,7 @@ namespace System namespace Resolvers { - // Generated from `System.Xml.Resolvers.XmlKnownDtds` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Resolvers.XmlKnownDtds` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum XmlKnownDtds { @@ -1424,7 +1424,7 @@ namespace System Xhtml10, } - // Generated from `System.Xml.Resolvers.XmlPreloadedResolver` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Resolvers.XmlPreloadedResolver` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlPreloadedResolver : System.Xml.XmlResolver { public void Add(System.Uri uri, System.Byte[] value) => throw null; @@ -1448,7 +1448,7 @@ namespace System } namespace Schema { - // Generated from `System.Xml.Schema.IXmlSchemaInfo` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.IXmlSchemaInfo` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXmlSchemaInfo { bool IsDefault { get; } @@ -1460,7 +1460,7 @@ namespace System System.Xml.Schema.XmlSchemaValidity Validity { get; } } - // Generated from `System.Xml.Schema.ValidationEventArgs` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.ValidationEventArgs` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ValidationEventArgs : System.EventArgs { public System.Xml.Schema.XmlSchemaException Exception { get => throw null; } @@ -1468,10 +1468,10 @@ namespace System public System.Xml.Schema.XmlSeverityType Severity { get => throw null; } } - // Generated from `System.Xml.Schema.ValidationEventHandler` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.ValidationEventHandler` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void ValidationEventHandler(object sender, System.Xml.Schema.ValidationEventArgs e); - // Generated from `System.Xml.Schema.XmlAtomicValue` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlAtomicValue` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAtomicValue : System.Xml.XPath.XPathItem, System.ICloneable { public System.Xml.Schema.XmlAtomicValue Clone() => throw null; @@ -1490,7 +1490,7 @@ namespace System public override System.Xml.Schema.XmlSchemaType XmlType { get => throw null; } } - // Generated from `System.Xml.Schema.XmlSchema` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchema` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchema : System.Xml.Schema.XmlSchemaObject { public System.Xml.Schema.XmlSchemaForm AttributeFormDefault { get => throw null; set => throw null; } @@ -1526,14 +1526,14 @@ namespace System public XmlSchema() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaAll` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaAll` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaAll : System.Xml.Schema.XmlSchemaGroupBase { public override System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } public XmlSchemaAll() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaAnnotated` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaAnnotated` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaAnnotated : System.Xml.Schema.XmlSchemaObject { public System.Xml.Schema.XmlSchemaAnnotation Annotation { get => throw null; set => throw null; } @@ -1542,7 +1542,7 @@ namespace System public XmlSchemaAnnotated() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaAnnotation` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaAnnotation` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaAnnotation : System.Xml.Schema.XmlSchemaObject { public string Id { get => throw null; set => throw null; } @@ -1551,7 +1551,7 @@ namespace System public XmlSchemaAnnotation() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaAny` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaAny` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaAny : System.Xml.Schema.XmlSchemaParticle { public string Namespace { get => throw null; set => throw null; } @@ -1559,7 +1559,7 @@ namespace System public XmlSchemaAny() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaAnyAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaAnyAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaAnyAttribute : System.Xml.Schema.XmlSchemaAnnotated { public string Namespace { get => throw null; set => throw null; } @@ -1567,7 +1567,7 @@ namespace System public XmlSchemaAnyAttribute() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaAppInfo` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaAppInfo` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaAppInfo : System.Xml.Schema.XmlSchemaObject { public System.Xml.XmlNode[] Markup { get => throw null; set => throw null; } @@ -1575,7 +1575,7 @@ namespace System public XmlSchemaAppInfo() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaAttribute : System.Xml.Schema.XmlSchemaAnnotated { public System.Xml.Schema.XmlSchemaSimpleType AttributeSchemaType { get => throw null; } @@ -1592,7 +1592,7 @@ namespace System public XmlSchemaAttribute() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaAttributeGroup` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaAttributeGroup` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaAttributeGroup : System.Xml.Schema.XmlSchemaAnnotated { public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } @@ -1603,21 +1603,21 @@ namespace System public XmlSchemaAttributeGroup() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaAttributeGroupRef` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaAttributeGroupRef` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaAttributeGroupRef : System.Xml.Schema.XmlSchemaAnnotated { public System.Xml.XmlQualifiedName RefName { get => throw null; set => throw null; } public XmlSchemaAttributeGroupRef() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaChoice` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaChoice` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaChoice : System.Xml.Schema.XmlSchemaGroupBase { public override System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } public XmlSchemaChoice() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaCollection` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaCollection` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaCollection : System.Collections.ICollection, System.Collections.IEnumerable { public System.Xml.Schema.XmlSchema Add(System.Xml.Schema.XmlSchema schema) => throw null; @@ -1643,7 +1643,7 @@ namespace System public XmlSchemaCollection(System.Xml.XmlNameTable nametable) => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaCollectionEnumerator` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaCollectionEnumerator` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaCollectionEnumerator : System.Collections.IEnumerator { public System.Xml.Schema.XmlSchema Current { get => throw null; } @@ -1653,14 +1653,14 @@ namespace System void System.Collections.IEnumerator.Reset() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaCompilationSettings` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaCompilationSettings` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaCompilationSettings { public bool EnableUpaCheck { get => throw null; set => throw null; } public XmlSchemaCompilationSettings() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaComplexContent` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaComplexContent` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaComplexContent : System.Xml.Schema.XmlSchemaContentModel { public override System.Xml.Schema.XmlSchemaContent Content { get => throw null; set => throw null; } @@ -1668,7 +1668,7 @@ namespace System public XmlSchemaComplexContent() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaComplexContentExtension` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaComplexContentExtension` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaComplexContentExtension : System.Xml.Schema.XmlSchemaContent { public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } @@ -1678,7 +1678,7 @@ namespace System public XmlSchemaComplexContentExtension() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaComplexContentRestriction` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaComplexContentRestriction` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaComplexContentRestriction : System.Xml.Schema.XmlSchemaContent { public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } @@ -1688,7 +1688,7 @@ namespace System public XmlSchemaComplexContentRestriction() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaComplexType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaComplexType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaComplexType : System.Xml.Schema.XmlSchemaType { public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } @@ -1706,20 +1706,20 @@ namespace System public XmlSchemaComplexType() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaContent` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaContent` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaContent : System.Xml.Schema.XmlSchemaAnnotated { protected XmlSchemaContent() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaContentModel` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaContentModel` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaContentModel : System.Xml.Schema.XmlSchemaAnnotated { public abstract System.Xml.Schema.XmlSchemaContent Content { get; set; } protected XmlSchemaContentModel() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaContentProcessing` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaContentProcessing` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlSchemaContentProcessing { Lax, @@ -1728,7 +1728,7 @@ namespace System Strict, } - // Generated from `System.Xml.Schema.XmlSchemaContentType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaContentType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlSchemaContentType { ElementOnly, @@ -1737,7 +1737,7 @@ namespace System TextOnly, } - // Generated from `System.Xml.Schema.XmlSchemaDatatype` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaDatatype` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaDatatype { public virtual object ChangeType(object value, System.Type targetType) => throw null; @@ -1750,7 +1750,7 @@ namespace System public virtual System.Xml.Schema.XmlSchemaDatatypeVariety Variety { get => throw null; } } - // Generated from `System.Xml.Schema.XmlSchemaDatatypeVariety` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaDatatypeVariety` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlSchemaDatatypeVariety { Atomic, @@ -1758,7 +1758,7 @@ namespace System Union, } - // Generated from `System.Xml.Schema.XmlSchemaDerivationMethod` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaDerivationMethod` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum XmlSchemaDerivationMethod { @@ -1772,7 +1772,7 @@ namespace System Union, } - // Generated from `System.Xml.Schema.XmlSchemaDocumentation` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaDocumentation` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaDocumentation : System.Xml.Schema.XmlSchemaObject { public string Language { get => throw null; set => throw null; } @@ -1781,7 +1781,7 @@ namespace System public XmlSchemaDocumentation() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaElement` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaElement` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaElement : System.Xml.Schema.XmlSchemaParticle { public System.Xml.Schema.XmlSchemaDerivationMethod Block { get => throw null; set => throw null; } @@ -1805,13 +1805,13 @@ namespace System public XmlSchemaElement() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaEnumerationFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaEnumerationFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaEnumerationFacet : System.Xml.Schema.XmlSchemaFacet { public XmlSchemaEnumerationFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaException` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaException` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaException : System.SystemException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -1827,7 +1827,7 @@ namespace System public XmlSchemaException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaExternal` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaExternal` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaExternal : System.Xml.Schema.XmlSchemaObject { public string Id { get => throw null; set => throw null; } @@ -1837,7 +1837,7 @@ namespace System protected XmlSchemaExternal() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaFacet : System.Xml.Schema.XmlSchemaAnnotated { public virtual bool IsFixed { get => throw null; set => throw null; } @@ -1845,7 +1845,7 @@ namespace System protected XmlSchemaFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaForm` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaForm` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlSchemaForm { None, @@ -1853,13 +1853,13 @@ namespace System Unqualified, } - // Generated from `System.Xml.Schema.XmlSchemaFractionDigitsFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaFractionDigitsFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaFractionDigitsFacet : System.Xml.Schema.XmlSchemaNumericFacet { public XmlSchemaFractionDigitsFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaGroup` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaGroup` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaGroup : System.Xml.Schema.XmlSchemaAnnotated { public string Name { get => throw null; set => throw null; } @@ -1868,14 +1868,14 @@ namespace System public XmlSchemaGroup() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaGroupBase` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaGroupBase` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaGroupBase : System.Xml.Schema.XmlSchemaParticle { public abstract System.Xml.Schema.XmlSchemaObjectCollection Items { get; } internal XmlSchemaGroupBase() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaGroupRef` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaGroupRef` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaGroupRef : System.Xml.Schema.XmlSchemaParticle { public System.Xml.Schema.XmlSchemaGroupBase Particle { get => throw null; } @@ -1883,7 +1883,7 @@ namespace System public XmlSchemaGroupRef() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaIdentityConstraint` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaIdentityConstraint` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaIdentityConstraint : System.Xml.Schema.XmlSchemaAnnotated { public System.Xml.Schema.XmlSchemaObjectCollection Fields { get => throw null; } @@ -1893,7 +1893,7 @@ namespace System public XmlSchemaIdentityConstraint() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaImport` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaImport` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaImport : System.Xml.Schema.XmlSchemaExternal { public System.Xml.Schema.XmlSchemaAnnotation Annotation { get => throw null; set => throw null; } @@ -1901,17 +1901,17 @@ namespace System public XmlSchemaImport() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaInclude` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaInclude` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaInclude : System.Xml.Schema.XmlSchemaExternal { public System.Xml.Schema.XmlSchemaAnnotation Annotation { get => throw null; set => throw null; } public XmlSchemaInclude() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaInference` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaInference` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaInference { - // Generated from `System.Xml.Schema.XmlSchemaInference+InferenceOption` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaInference+InferenceOption` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum InferenceOption { Relaxed, @@ -1926,7 +1926,7 @@ namespace System public XmlSchemaInference() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaInferenceException` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaInferenceException` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaInferenceException : System.Xml.Schema.XmlSchemaException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -1937,7 +1937,7 @@ namespace System public XmlSchemaInferenceException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaInfo` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaInfo` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaInfo : System.Xml.Schema.IXmlSchemaInfo { public System.Xml.Schema.XmlSchemaContentType ContentType { get => throw null; set => throw null; } @@ -1951,62 +1951,62 @@ namespace System public XmlSchemaInfo() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaKey` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaKey` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaKey : System.Xml.Schema.XmlSchemaIdentityConstraint { public XmlSchemaKey() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaKeyref` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaKeyref` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaKeyref : System.Xml.Schema.XmlSchemaIdentityConstraint { public System.Xml.XmlQualifiedName Refer { get => throw null; set => throw null; } public XmlSchemaKeyref() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaLengthFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaLengthFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaLengthFacet : System.Xml.Schema.XmlSchemaNumericFacet { public XmlSchemaLengthFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaMaxExclusiveFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaMaxExclusiveFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaMaxExclusiveFacet : System.Xml.Schema.XmlSchemaFacet { public XmlSchemaMaxExclusiveFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaMaxInclusiveFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaMaxInclusiveFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaMaxInclusiveFacet : System.Xml.Schema.XmlSchemaFacet { public XmlSchemaMaxInclusiveFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaMaxLengthFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaMaxLengthFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaMaxLengthFacet : System.Xml.Schema.XmlSchemaNumericFacet { public XmlSchemaMaxLengthFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaMinExclusiveFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaMinExclusiveFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaMinExclusiveFacet : System.Xml.Schema.XmlSchemaFacet { public XmlSchemaMinExclusiveFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaMinInclusiveFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaMinInclusiveFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaMinInclusiveFacet : System.Xml.Schema.XmlSchemaFacet { public XmlSchemaMinInclusiveFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaMinLengthFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaMinLengthFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaMinLengthFacet : System.Xml.Schema.XmlSchemaNumericFacet { public XmlSchemaMinLengthFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaNotation` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaNotation` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaNotation : System.Xml.Schema.XmlSchemaAnnotated { public string Name { get => throw null; set => throw null; } @@ -2015,13 +2015,13 @@ namespace System public XmlSchemaNotation() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaNumericFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaNumericFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaNumericFacet : System.Xml.Schema.XmlSchemaFacet { protected XmlSchemaNumericFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaObject` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaObject` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaObject { public int LineNumber { get => throw null; set => throw null; } @@ -2032,7 +2032,7 @@ namespace System protected XmlSchemaObject() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaObjectCollection` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaObjectCollection` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaObjectCollection : System.Collections.CollectionBase { public int Add(System.Xml.Schema.XmlSchemaObject item) => throw null; @@ -2051,7 +2051,7 @@ namespace System public XmlSchemaObjectCollection(System.Xml.Schema.XmlSchemaObject parent) => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaObjectEnumerator` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaObjectEnumerator` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaObjectEnumerator : System.Collections.IEnumerator { public System.Xml.Schema.XmlSchemaObject Current { get => throw null; } @@ -2062,7 +2062,7 @@ namespace System void System.Collections.IEnumerator.Reset() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaObjectTable` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaObjectTable` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaObjectTable { public bool Contains(System.Xml.XmlQualifiedName name) => throw null; @@ -2073,7 +2073,7 @@ namespace System public System.Collections.ICollection Values { get => throw null; } } - // Generated from `System.Xml.Schema.XmlSchemaParticle` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaParticle` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaParticle : System.Xml.Schema.XmlSchemaAnnotated { public System.Decimal MaxOccurs { get => throw null; set => throw null; } @@ -2083,13 +2083,13 @@ namespace System protected XmlSchemaParticle() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaPatternFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaPatternFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaPatternFacet : System.Xml.Schema.XmlSchemaFacet { public XmlSchemaPatternFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaRedefine` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaRedefine` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaRedefine : System.Xml.Schema.XmlSchemaExternal { public System.Xml.Schema.XmlSchemaObjectTable AttributeGroups { get => throw null; } @@ -2099,14 +2099,14 @@ namespace System public XmlSchemaRedefine() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSequence` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSequence` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaSequence : System.Xml.Schema.XmlSchemaGroupBase { public override System.Xml.Schema.XmlSchemaObjectCollection Items { get => throw null; } public XmlSchemaSequence() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaSet { public System.Xml.Schema.XmlSchema Add(System.Xml.Schema.XmlSchema schema) => throw null; @@ -2135,14 +2135,14 @@ namespace System public XmlSchemaSet(System.Xml.XmlNameTable nameTable) => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSimpleContent` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSimpleContent` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaSimpleContent : System.Xml.Schema.XmlSchemaContentModel { public override System.Xml.Schema.XmlSchemaContent Content { get => throw null; set => throw null; } public XmlSchemaSimpleContent() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSimpleContentExtension` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSimpleContentExtension` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaSimpleContentExtension : System.Xml.Schema.XmlSchemaContent { public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } @@ -2151,7 +2151,7 @@ namespace System public XmlSchemaSimpleContentExtension() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSimpleContentRestriction` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSimpleContentRestriction` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaSimpleContentRestriction : System.Xml.Schema.XmlSchemaContent { public System.Xml.Schema.XmlSchemaAnyAttribute AnyAttribute { get => throw null; set => throw null; } @@ -2162,20 +2162,20 @@ namespace System public XmlSchemaSimpleContentRestriction() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSimpleType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSimpleType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaSimpleType : System.Xml.Schema.XmlSchemaType { public System.Xml.Schema.XmlSchemaSimpleTypeContent Content { get => throw null; set => throw null; } public XmlSchemaSimpleType() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSimpleTypeContent` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSimpleTypeContent` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSchemaSimpleTypeContent : System.Xml.Schema.XmlSchemaAnnotated { protected XmlSchemaSimpleTypeContent() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSimpleTypeList` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSimpleTypeList` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaSimpleTypeList : System.Xml.Schema.XmlSchemaSimpleTypeContent { public System.Xml.Schema.XmlSchemaSimpleType BaseItemType { get => throw null; set => throw null; } @@ -2184,7 +2184,7 @@ namespace System public XmlSchemaSimpleTypeList() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSimpleTypeRestriction` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSimpleTypeRestriction` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaSimpleTypeRestriction : System.Xml.Schema.XmlSchemaSimpleTypeContent { public System.Xml.Schema.XmlSchemaSimpleType BaseType { get => throw null; set => throw null; } @@ -2193,7 +2193,7 @@ namespace System public XmlSchemaSimpleTypeRestriction() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaSimpleTypeUnion` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaSimpleTypeUnion` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaSimpleTypeUnion : System.Xml.Schema.XmlSchemaSimpleTypeContent { public System.Xml.Schema.XmlSchemaSimpleType[] BaseMemberTypes { get => throw null; } @@ -2202,13 +2202,13 @@ namespace System public XmlSchemaSimpleTypeUnion() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaTotalDigitsFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaTotalDigitsFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaTotalDigitsFacet : System.Xml.Schema.XmlSchemaNumericFacet { public XmlSchemaTotalDigitsFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaType : System.Xml.Schema.XmlSchemaAnnotated { public object BaseSchemaType { get => throw null; } @@ -2229,13 +2229,13 @@ namespace System public XmlSchemaType() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaUnique` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaUnique` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaUnique : System.Xml.Schema.XmlSchemaIdentityConstraint { public XmlSchemaUnique() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaUse` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaUse` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlSchemaUse { None, @@ -2244,7 +2244,7 @@ namespace System Required, } - // Generated from `System.Xml.Schema.XmlSchemaValidationException` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaValidationException` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaValidationException : System.Xml.Schema.XmlSchemaException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -2257,7 +2257,7 @@ namespace System public XmlSchemaValidationException(string message, System.Exception innerException, int lineNumber, int linePosition) => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaValidationFlags` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaValidationFlags` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum XmlSchemaValidationFlags { @@ -2269,7 +2269,7 @@ namespace System ReportValidationWarnings, } - // Generated from `System.Xml.Schema.XmlSchemaValidator` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaValidator` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaValidator { public void AddSchema(System.Xml.Schema.XmlSchema schema) => throw null; @@ -2299,7 +2299,7 @@ namespace System public XmlSchemaValidator(System.Xml.XmlNameTable nameTable, System.Xml.Schema.XmlSchemaSet schemas, System.Xml.IXmlNamespaceResolver namespaceResolver, System.Xml.Schema.XmlSchemaValidationFlags validationFlags) => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaValidity` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaValidity` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlSchemaValidity { Invalid, @@ -2307,27 +2307,27 @@ namespace System Valid, } - // Generated from `System.Xml.Schema.XmlSchemaWhiteSpaceFacet` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaWhiteSpaceFacet` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaWhiteSpaceFacet : System.Xml.Schema.XmlSchemaFacet { public XmlSchemaWhiteSpaceFacet() => throw null; } - // Generated from `System.Xml.Schema.XmlSchemaXPath` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSchemaXPath` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaXPath : System.Xml.Schema.XmlSchemaAnnotated { public string XPath { get => throw null; set => throw null; } public XmlSchemaXPath() => throw null; } - // Generated from `System.Xml.Schema.XmlSeverityType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlSeverityType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlSeverityType { Error, Warning, } - // Generated from `System.Xml.Schema.XmlTypeCode` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlTypeCode` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlTypeCode { AnyAtomicType, @@ -2387,13 +2387,13 @@ namespace System YearMonthDuration, } - // Generated from `System.Xml.Schema.XmlValueGetter` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.XmlValueGetter` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate object XmlValueGetter(); } namespace Serialization { - // Generated from `System.Xml.Serialization.IXmlSerializable` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.IXmlSerializable` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXmlSerializable { System.Xml.Schema.XmlSchema GetSchema(); @@ -2401,13 +2401,13 @@ namespace System void WriteXml(System.Xml.XmlWriter writer); } - // Generated from `System.Xml.Serialization.XmlAnyAttributeAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlAnyAttributeAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAnyAttributeAttribute : System.Attribute { public XmlAnyAttributeAttribute() => throw null; } - // Generated from `System.Xml.Serialization.XmlAnyElementAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlAnyElementAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAnyElementAttribute : System.Attribute { public string Name { get => throw null; set => throw null; } @@ -2418,7 +2418,7 @@ namespace System public XmlAnyElementAttribute(string name, string ns) => throw null; } - // Generated from `System.Xml.Serialization.XmlAttributeAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlAttributeAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAttributeAttribute : System.Attribute { public string AttributeName { get => throw null; set => throw null; } @@ -2432,7 +2432,7 @@ namespace System public XmlAttributeAttribute(string attributeName, System.Type type) => throw null; } - // Generated from `System.Xml.Serialization.XmlElementAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlElementAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlElementAttribute : System.Attribute { public string DataType { get => throw null; set => throw null; } @@ -2448,7 +2448,7 @@ namespace System public XmlElementAttribute(string elementName, System.Type type) => throw null; } - // Generated from `System.Xml.Serialization.XmlEnumAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlEnumAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlEnumAttribute : System.Attribute { public string Name { get => throw null; set => throw null; } @@ -2456,19 +2456,19 @@ namespace System public XmlEnumAttribute(string name) => throw null; } - // Generated from `System.Xml.Serialization.XmlIgnoreAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlIgnoreAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlIgnoreAttribute : System.Attribute { public XmlIgnoreAttribute() => throw null; } - // Generated from `System.Xml.Serialization.XmlNamespaceDeclarationsAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlNamespaceDeclarationsAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlNamespaceDeclarationsAttribute : System.Attribute { public XmlNamespaceDeclarationsAttribute() => throw null; } - // Generated from `System.Xml.Serialization.XmlRootAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlRootAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlRootAttribute : System.Attribute { public string DataType { get => throw null; set => throw null; } @@ -2479,7 +2479,7 @@ namespace System public XmlRootAttribute(string elementName) => throw null; } - // Generated from `System.Xml.Serialization.XmlSchemaProviderAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSchemaProviderAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaProviderAttribute : System.Attribute { public bool IsAny { get => throw null; set => throw null; } @@ -2487,7 +2487,7 @@ namespace System public XmlSchemaProviderAttribute(string methodName) => throw null; } - // Generated from `System.Xml.Serialization.XmlSerializerNamespaces` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializerNamespaces` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSerializerNamespaces { public void Add(string prefix, string ns) => throw null; @@ -2498,7 +2498,7 @@ namespace System public XmlSerializerNamespaces(System.Xml.Serialization.XmlSerializerNamespaces namespaces) => throw null; } - // Generated from `System.Xml.Serialization.XmlTextAttribute` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlTextAttribute` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlTextAttribute : System.Attribute { public string DataType { get => throw null; set => throw null; } @@ -2510,13 +2510,13 @@ namespace System } namespace XPath { - // Generated from `System.Xml.XPath.IXPathNavigable` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.IXPathNavigable` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXPathNavigable { System.Xml.XPath.XPathNavigator CreateNavigator(); } - // Generated from `System.Xml.XPath.XPathExpression` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XPathExpression` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XPathExpression { public abstract void AddSort(object expr, System.Collections.IComparer comparer); @@ -2530,7 +2530,7 @@ namespace System public abstract void SetContext(System.Xml.XmlNamespaceManager nsManager); } - // Generated from `System.Xml.XPath.XPathItem` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XPathItem` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XPathItem { public abstract bool IsNode { get; } @@ -2548,7 +2548,7 @@ namespace System public abstract System.Xml.Schema.XmlSchemaType XmlType { get; } } - // Generated from `System.Xml.XPath.XPathNamespaceScope` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XPathNamespaceScope` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XPathNamespaceScope { All, @@ -2556,7 +2556,7 @@ namespace System Local, } - // Generated from `System.Xml.XPath.XPathNavigator` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XPathNavigator` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -2677,7 +2677,7 @@ namespace System public override System.Xml.Schema.XmlSchemaType XmlType { get => throw null; } } - // Generated from `System.Xml.XPath.XPathNodeIterator` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XPathNodeIterator` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XPathNodeIterator : System.Collections.IEnumerable, System.ICloneable { public abstract System.Xml.XPath.XPathNodeIterator Clone(); @@ -2690,7 +2690,7 @@ namespace System protected XPathNodeIterator() => throw null; } - // Generated from `System.Xml.XPath.XPathNodeType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XPathNodeType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XPathNodeType { All, @@ -2705,7 +2705,7 @@ namespace System Whitespace, } - // Generated from `System.Xml.XPath.XPathResultType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XPathResultType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XPathResultType { Any, @@ -2717,7 +2717,7 @@ namespace System String, } - // Generated from `System.Xml.XPath.XmlCaseOrder` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XmlCaseOrder` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlCaseOrder { LowerFirst, @@ -2725,14 +2725,14 @@ namespace System UpperFirst, } - // Generated from `System.Xml.XPath.XmlDataType` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XmlDataType` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlDataType { Number, Text, } - // Generated from `System.Xml.XPath.XmlSortOrder` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XmlSortOrder` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XmlSortOrder { Ascending, @@ -2742,7 +2742,7 @@ namespace System } namespace Xsl { - // Generated from `System.Xml.Xsl.IXsltContextFunction` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.IXsltContextFunction` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXsltContextFunction { System.Xml.XPath.XPathResultType[] ArgTypes { get; } @@ -2752,7 +2752,7 @@ namespace System System.Xml.XPath.XPathResultType ReturnType { get; } } - // Generated from `System.Xml.Xsl.IXsltContextVariable` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.IXsltContextVariable` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXsltContextVariable { object Evaluate(System.Xml.Xsl.XsltContext xsltContext); @@ -2761,7 +2761,7 @@ namespace System System.Xml.XPath.XPathResultType VariableType { get; } } - // Generated from `System.Xml.Xsl.XslCompiledTransform` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.XslCompiledTransform` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XslCompiledTransform { public void Load(System.Xml.XPath.IXPathNavigable stylesheet) => throw null; @@ -2792,7 +2792,7 @@ namespace System public XslCompiledTransform(bool enableDebug) => throw null; } - // Generated from `System.Xml.Xsl.XslTransform` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.XslTransform` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XslTransform { public void Load(System.Xml.XPath.IXPathNavigable stylesheet) => throw null; @@ -2825,7 +2825,7 @@ namespace System public XslTransform() => throw null; } - // Generated from `System.Xml.Xsl.XsltArgumentList` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.XsltArgumentList` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XsltArgumentList { public void AddExtensionObject(string namespaceUri, object extension) => throw null; @@ -2839,7 +2839,7 @@ namespace System public event System.Xml.Xsl.XsltMessageEncounteredEventHandler XsltMessageEncountered; } - // Generated from `System.Xml.Xsl.XsltCompileException` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.XsltCompileException` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XsltCompileException : System.Xml.Xsl.XsltException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -2850,7 +2850,7 @@ namespace System public XsltCompileException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Xml.Xsl.XsltContext` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.XsltContext` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XsltContext : System.Xml.XmlNamespaceManager { public abstract int CompareDocument(string baseUri, string nextbaseUri); @@ -2862,7 +2862,7 @@ namespace System protected XsltContext(System.Xml.NameTable table) : base(default(System.Xml.XmlNameTable)) => throw null; } - // Generated from `System.Xml.Xsl.XsltException` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.XsltException` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XsltException : System.SystemException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; @@ -2876,17 +2876,17 @@ namespace System public XsltException(string message, System.Exception innerException) => throw null; } - // Generated from `System.Xml.Xsl.XsltMessageEncounteredEventArgs` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.XsltMessageEncounteredEventArgs` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XsltMessageEncounteredEventArgs : System.EventArgs { public abstract string Message { get; } protected XsltMessageEncounteredEventArgs() => throw null; } - // Generated from `System.Xml.Xsl.XsltMessageEncounteredEventHandler` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.XsltMessageEncounteredEventHandler` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void XsltMessageEncounteredEventHandler(object sender, System.Xml.Xsl.XsltMessageEncounteredEventArgs e); - // Generated from `System.Xml.Xsl.XsltSettings` in `System.Xml.ReaderWriter, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Xsl.XsltSettings` in `System.Xml.ReaderWriter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XsltSettings { public static System.Xml.Xsl.XsltSettings Default { 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 844ef9fca26..32fb1639183 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 @@ -6,7 +6,7 @@ namespace System { namespace Linq { - // Generated from `System.Xml.Linq.Extensions` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.Extensions` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Extensions { public static System.Collections.Generic.IEnumerable Ancestors(this System.Collections.Generic.IEnumerable source) where T : System.Xml.Linq.XNode => throw null; @@ -29,7 +29,7 @@ namespace System public static void Remove(this System.Collections.Generic.IEnumerable source) where T : System.Xml.Linq.XNode => throw null; } - // Generated from `System.Xml.Linq.LoadOptions` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.LoadOptions` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum LoadOptions { @@ -39,7 +39,7 @@ namespace System SetLineInfo, } - // Generated from `System.Xml.Linq.ReaderOptions` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.ReaderOptions` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum ReaderOptions { @@ -47,7 +47,7 @@ namespace System OmitDuplicateNamespaces, } - // Generated from `System.Xml.Linq.SaveOptions` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.SaveOptions` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum SaveOptions { @@ -56,7 +56,7 @@ namespace System OmitDuplicateNamespaces, } - // Generated from `System.Xml.Linq.XAttribute` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XAttribute` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XAttribute : System.Xml.Linq.XObject { public static System.Collections.Generic.IEnumerable EmptySequence { get => throw null; } @@ -98,7 +98,7 @@ namespace System public static explicit operator string(System.Xml.Linq.XAttribute attribute) => throw null; } - // Generated from `System.Xml.Linq.XCData` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XCData` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XCData : System.Xml.Linq.XText { public override System.Xml.XmlNodeType NodeType { get => throw null; } @@ -108,7 +108,7 @@ namespace System public XCData(string value) : base(default(System.Xml.Linq.XText)) => throw null; } - // Generated from `System.Xml.Linq.XComment` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XComment` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XComment : System.Xml.Linq.XNode { public override System.Xml.XmlNodeType NodeType { get => throw null; } @@ -119,7 +119,7 @@ namespace System public XComment(string value) => throw null; } - // Generated from `System.Xml.Linq.XContainer` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XContainer` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XContainer : System.Xml.Linq.XNode { public void Add(object content) => throw null; @@ -142,7 +142,7 @@ namespace System internal XContainer() => throw null; } - // Generated from `System.Xml.Linq.XDeclaration` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XDeclaration` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XDeclaration { public string Encoding { get => throw null; set => throw null; } @@ -153,7 +153,7 @@ namespace System public XDeclaration(string version, string encoding, string standalone) => throw null; } - // Generated from `System.Xml.Linq.XDocument` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XDocument` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XDocument : System.Xml.Linq.XContainer { public System.Xml.Linq.XDeclaration Declaration { get => throw null; set => throw null; } @@ -191,7 +191,7 @@ namespace System public XDocument(params object[] content) => throw null; } - // Generated from `System.Xml.Linq.XDocumentType` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XDocumentType` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XDocumentType : System.Xml.Linq.XNode { public string InternalSubset { get => throw null; set => throw null; } @@ -205,7 +205,7 @@ namespace System public XDocumentType(string name, string publicId, string systemId, string internalSubset) => throw null; } - // Generated from `System.Xml.Linq.XElement` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XElement` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XElement : System.Xml.Linq.XContainer, System.Xml.Serialization.IXmlSerializable { public System.Collections.Generic.IEnumerable AncestorsAndSelf() => throw null; @@ -297,7 +297,7 @@ namespace System public static explicit operator string(System.Xml.Linq.XElement element) => throw null; } - // Generated from `System.Xml.Linq.XName` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XName` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XName : System.IEquatable, System.Runtime.Serialization.ISerializable { public static bool operator !=(System.Xml.Linq.XName left, System.Xml.Linq.XName right) => throw null; @@ -315,7 +315,7 @@ namespace System public static implicit operator System.Xml.Linq.XName(string expandedName) => throw null; } - // Generated from `System.Xml.Linq.XNamespace` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XNamespace` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XNamespace { public static bool operator !=(System.Xml.Linq.XNamespace left, System.Xml.Linq.XNamespace right) => throw null; @@ -333,7 +333,7 @@ namespace System public static implicit operator System.Xml.Linq.XNamespace(string namespaceName) => throw null; } - // Generated from `System.Xml.Linq.XNode` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XNode` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XNode : System.Xml.Linq.XObject { public void AddAfterSelf(object content) => throw null; @@ -370,7 +370,7 @@ namespace System internal XNode() => throw null; } - // Generated from `System.Xml.Linq.XNodeDocumentOrderComparer` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XNodeDocumentOrderComparer` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XNodeDocumentOrderComparer : System.Collections.Generic.IComparer, System.Collections.IComparer { public int Compare(System.Xml.Linq.XNode x, System.Xml.Linq.XNode y) => throw null; @@ -378,7 +378,7 @@ namespace System public XNodeDocumentOrderComparer() => throw null; } - // Generated from `System.Xml.Linq.XNodeEqualityComparer` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XNodeEqualityComparer` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XNodeEqualityComparer : System.Collections.Generic.IEqualityComparer, System.Collections.IEqualityComparer { public bool Equals(System.Xml.Linq.XNode x, System.Xml.Linq.XNode y) => throw null; @@ -388,7 +388,7 @@ namespace System public XNodeEqualityComparer() => throw null; } - // Generated from `System.Xml.Linq.XObject` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XObject` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XObject : System.Xml.IXmlLineInfo { public void AddAnnotation(object annotation) => throw null; @@ -410,7 +410,7 @@ namespace System internal XObject() => throw null; } - // Generated from `System.Xml.Linq.XObjectChange` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XObjectChange` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public enum XObjectChange { Add, @@ -419,7 +419,7 @@ namespace System Value, } - // Generated from `System.Xml.Linq.XObjectChangeEventArgs` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XObjectChangeEventArgs` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XObjectChangeEventArgs : System.EventArgs { public static System.Xml.Linq.XObjectChangeEventArgs Add; @@ -430,7 +430,7 @@ namespace System public XObjectChangeEventArgs(System.Xml.Linq.XObjectChange objectChange) => throw null; } - // Generated from `System.Xml.Linq.XProcessingInstruction` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XProcessingInstruction` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XProcessingInstruction : System.Xml.Linq.XNode { public string Data { get => throw null; set => throw null; } @@ -442,7 +442,7 @@ namespace System public XProcessingInstruction(string target, string data) => throw null; } - // Generated from `System.Xml.Linq.XStreamingElement` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XStreamingElement` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XStreamingElement { public void Add(object content) => throw null; @@ -463,7 +463,7 @@ namespace System public XStreamingElement(System.Xml.Linq.XName name, params object[] content) => throw null; } - // Generated from `System.Xml.Linq.XText` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Linq.XText` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XText : System.Xml.Linq.XNode { public override System.Xml.XmlNodeType NodeType { get => throw null; } @@ -477,7 +477,7 @@ namespace System } namespace Schema { - // Generated from `System.Xml.Schema.Extensions` in `System.Xml.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Schema.Extensions` in `System.Xml.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Extensions { public static System.Xml.Schema.IXmlSchemaInfo GetSchemaInfo(this System.Xml.Linq.XAttribute source) => 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 a110a8fabad..ee8b0ec0f95 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 @@ -6,7 +6,7 @@ namespace System { namespace XPath { - // Generated from `System.Xml.XPath.Extensions` in `System.Xml.XPath.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.Extensions` in `System.Xml.XPath.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static class Extensions { public static System.Xml.XPath.XPathNavigator CreateNavigator(this System.Xml.Linq.XNode node) => throw null; @@ -19,7 +19,7 @@ namespace System public static System.Collections.Generic.IEnumerable XPathSelectElements(this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver resolver) => throw null; } - // Generated from `System.Xml.XPath.XDocumentExtensions` in `System.Xml.XPath.XDocument, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XDocumentExtensions` in `System.Xml.XPath.XDocument, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public static 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 b83d88692b1..f92e22f5228 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 @@ -6,7 +6,7 @@ namespace System { namespace XPath { - // Generated from `System.Xml.XPath.XPathDocument` in `System.Xml.XPath, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XPathDocument` in `System.Xml.XPath, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XPathDocument : System.Xml.XPath.IXPathNavigable { public System.Xml.XPath.XPathNavigator CreateNavigator() => throw null; @@ -18,7 +18,7 @@ namespace System public XPathDocument(string uri, System.Xml.XmlSpace space) => throw null; } - // Generated from `System.Xml.XPath.XPathException` in `System.Xml.XPath, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.XPath.XPathException` in `System.Xml.XPath, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XPathException : System.SystemException { public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; 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 8135ec2157d..33d69f278f5 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 @@ -6,7 +6,7 @@ namespace System { namespace Serialization { - // Generated from `System.Xml.Serialization.CodeGenerationOptions` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.CodeGenerationOptions` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum CodeGenerationOptions { @@ -18,7 +18,7 @@ namespace System None, } - // Generated from `System.Xml.Serialization.CodeIdentifier` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.CodeIdentifier` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CodeIdentifier { public CodeIdentifier() => throw null; @@ -27,7 +27,7 @@ namespace System public static string MakeValid(string identifier) => throw null; } - // Generated from `System.Xml.Serialization.CodeIdentifiers` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.CodeIdentifiers` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class CodeIdentifiers { public void Add(string identifier, object value) => throw null; @@ -45,14 +45,14 @@ namespace System public bool UseCamelCasing { get => throw null; set => throw null; } } - // Generated from `System.Xml.Serialization.IXmlTextParser` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.IXmlTextParser` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public interface IXmlTextParser { bool Normalized { get; set; } System.Xml.WhitespaceHandling WhitespaceHandling { get; set; } } - // Generated from `System.Xml.Serialization.ImportContext` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.ImportContext` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class ImportContext { public ImportContext(System.Xml.Serialization.CodeIdentifiers identifiers, bool shareTypes) => throw null; @@ -61,13 +61,13 @@ namespace System public System.Collections.Specialized.StringCollection Warnings { get => throw null; } } - // Generated from `System.Xml.Serialization.SchemaImporter` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SchemaImporter` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class SchemaImporter { internal SchemaImporter() => throw null; } - // Generated from `System.Xml.Serialization.SoapAttributeAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapAttributeAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapAttributeAttribute : System.Attribute { public string AttributeName { get => throw null; set => throw null; } @@ -77,7 +77,7 @@ namespace System public SoapAttributeAttribute(string attributeName) => throw null; } - // Generated from `System.Xml.Serialization.SoapAttributeOverrides` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapAttributeOverrides` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapAttributeOverrides { public void Add(System.Type type, System.Xml.Serialization.SoapAttributes attributes) => throw null; @@ -87,7 +87,7 @@ namespace System public SoapAttributeOverrides() => throw null; } - // Generated from `System.Xml.Serialization.SoapAttributes` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapAttributes` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapAttributes { public System.Xml.Serialization.SoapAttributeAttribute SoapAttribute { get => throw null; set => throw null; } @@ -100,7 +100,7 @@ namespace System public System.Xml.Serialization.SoapTypeAttribute SoapType { get => throw null; set => throw null; } } - // Generated from `System.Xml.Serialization.SoapElementAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapElementAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapElementAttribute : System.Attribute { public string DataType { get => throw null; set => throw null; } @@ -110,7 +110,7 @@ namespace System public SoapElementAttribute(string elementName) => throw null; } - // Generated from `System.Xml.Serialization.SoapEnumAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapEnumAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapEnumAttribute : System.Attribute { public string Name { get => throw null; set => throw null; } @@ -118,20 +118,20 @@ namespace System public SoapEnumAttribute(string name) => throw null; } - // Generated from `System.Xml.Serialization.SoapIgnoreAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapIgnoreAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapIgnoreAttribute : System.Attribute { public SoapIgnoreAttribute() => throw null; } - // Generated from `System.Xml.Serialization.SoapIncludeAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapIncludeAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapIncludeAttribute : System.Attribute { public SoapIncludeAttribute(System.Type type) => throw null; public System.Type Type { get => throw null; set => throw null; } } - // Generated from `System.Xml.Serialization.SoapReflectionImporter` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapReflectionImporter` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapReflectionImporter { public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string elementName, string ns, System.Xml.Serialization.XmlReflectionMember[] members) => throw null; @@ -148,7 +148,7 @@ namespace System public SoapReflectionImporter(string defaultNamespace) => throw null; } - // Generated from `System.Xml.Serialization.SoapSchemaMember` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapSchemaMember` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapSchemaMember { public string MemberName { get => throw null; set => throw null; } @@ -156,7 +156,7 @@ namespace System public SoapSchemaMember() => throw null; } - // Generated from `System.Xml.Serialization.SoapTypeAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.SoapTypeAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class SoapTypeAttribute : System.Attribute { public bool IncludeInSchema { get => throw null; set => throw null; } @@ -167,7 +167,7 @@ namespace System public string TypeName { get => throw null; set => throw null; } } - // Generated from `System.Xml.Serialization.UnreferencedObjectEventArgs` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.UnreferencedObjectEventArgs` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class UnreferencedObjectEventArgs : System.EventArgs { public string UnreferencedId { get => throw null; } @@ -175,10 +175,10 @@ namespace System public UnreferencedObjectEventArgs(object o, string id) => throw null; } - // Generated from `System.Xml.Serialization.UnreferencedObjectEventHandler` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.UnreferencedObjectEventHandler` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void UnreferencedObjectEventHandler(object sender, System.Xml.Serialization.UnreferencedObjectEventArgs e); - // Generated from `System.Xml.Serialization.XmlAnyElementAttributes` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlAnyElementAttributes` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAnyElementAttributes : System.Collections.CollectionBase { public int Add(System.Xml.Serialization.XmlAnyElementAttribute attribute) => throw null; @@ -191,7 +191,7 @@ namespace System public XmlAnyElementAttributes() => throw null; } - // Generated from `System.Xml.Serialization.XmlArrayAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlArrayAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlArrayAttribute : System.Attribute { public string ElementName { get => throw null; set => throw null; } @@ -203,7 +203,7 @@ namespace System public XmlArrayAttribute(string elementName) => throw null; } - // Generated from `System.Xml.Serialization.XmlArrayItemAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlArrayItemAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlArrayItemAttribute : System.Attribute { public string DataType { get => throw null; set => throw null; } @@ -219,7 +219,7 @@ namespace System public XmlArrayItemAttribute(string elementName, System.Type type) => throw null; } - // Generated from `System.Xml.Serialization.XmlArrayItemAttributes` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlArrayItemAttributes` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlArrayItemAttributes : System.Collections.CollectionBase { public int Add(System.Xml.Serialization.XmlArrayItemAttribute attribute) => throw null; @@ -232,7 +232,7 @@ namespace System public XmlArrayItemAttributes() => throw null; } - // Generated from `System.Xml.Serialization.XmlAttributeEventArgs` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlAttributeEventArgs` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAttributeEventArgs : System.EventArgs { public System.Xml.XmlAttribute Attr { get => throw null; } @@ -242,10 +242,10 @@ namespace System public object ObjectBeingDeserialized { get => throw null; } } - // Generated from `System.Xml.Serialization.XmlAttributeEventHandler` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlAttributeEventHandler` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void XmlAttributeEventHandler(object sender, System.Xml.Serialization.XmlAttributeEventArgs e); - // Generated from `System.Xml.Serialization.XmlAttributeOverrides` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlAttributeOverrides` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAttributeOverrides { public void Add(System.Type type, System.Xml.Serialization.XmlAttributes attributes) => throw null; @@ -255,7 +255,7 @@ namespace System public XmlAttributeOverrides() => throw null; } - // Generated from `System.Xml.Serialization.XmlAttributes` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlAttributes` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlAttributes { public System.Xml.Serialization.XmlAnyAttributeAttribute XmlAnyAttribute { get => throw null; set => throw null; } @@ -276,7 +276,7 @@ namespace System public bool Xmlns { get => throw null; set => throw null; } } - // Generated from `System.Xml.Serialization.XmlChoiceIdentifierAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlChoiceIdentifierAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlChoiceIdentifierAttribute : System.Attribute { public string MemberName { get => throw null; set => throw null; } @@ -284,7 +284,7 @@ namespace System public XmlChoiceIdentifierAttribute(string name) => throw null; } - // Generated from `System.Xml.Serialization.XmlDeserializationEvents` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlDeserializationEvents` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public struct XmlDeserializationEvents { public System.Xml.Serialization.XmlAttributeEventHandler OnUnknownAttribute { get => throw null; set => throw null; } @@ -294,7 +294,7 @@ namespace System // Stub generator skipped constructor } - // Generated from `System.Xml.Serialization.XmlElementAttributes` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlElementAttributes` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlElementAttributes : System.Collections.CollectionBase { public int Add(System.Xml.Serialization.XmlElementAttribute attribute) => throw null; @@ -307,7 +307,7 @@ namespace System public XmlElementAttributes() => throw null; } - // Generated from `System.Xml.Serialization.XmlElementEventArgs` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlElementEventArgs` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlElementEventArgs : System.EventArgs { public System.Xml.XmlElement Element { get => throw null; } @@ -317,17 +317,17 @@ namespace System public object ObjectBeingDeserialized { get => throw null; } } - // Generated from `System.Xml.Serialization.XmlElementEventHandler` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlElementEventHandler` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void XmlElementEventHandler(object sender, System.Xml.Serialization.XmlElementEventArgs e); - // Generated from `System.Xml.Serialization.XmlIncludeAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlIncludeAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlIncludeAttribute : System.Attribute { public System.Type Type { get => throw null; set => throw null; } public XmlIncludeAttribute(System.Type type) => throw null; } - // Generated from `System.Xml.Serialization.XmlMapping` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlMapping` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlMapping { public string ElementName { get => throw null; } @@ -337,7 +337,7 @@ namespace System public string XsdElementName { get => throw null; } } - // Generated from `System.Xml.Serialization.XmlMappingAccess` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlMappingAccess` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` [System.Flags] public enum XmlMappingAccess { @@ -346,7 +346,7 @@ namespace System Write, } - // Generated from `System.Xml.Serialization.XmlMemberMapping` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlMemberMapping` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlMemberMapping { public bool Any { get => throw null; } @@ -360,7 +360,7 @@ namespace System public string XsdElementName { get => throw null; } } - // Generated from `System.Xml.Serialization.XmlMembersMapping` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlMembersMapping` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlMembersMapping : System.Xml.Serialization.XmlMapping { public int Count { get => throw null; } @@ -369,7 +369,7 @@ namespace System public string TypeNamespace { get => throw null; } } - // Generated from `System.Xml.Serialization.XmlNodeEventArgs` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlNodeEventArgs` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlNodeEventArgs : System.EventArgs { public int LineNumber { get => throw null; } @@ -382,10 +382,10 @@ namespace System public string Text { get => throw null; } } - // Generated from `System.Xml.Serialization.XmlNodeEventHandler` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlNodeEventHandler` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void XmlNodeEventHandler(object sender, System.Xml.Serialization.XmlNodeEventArgs e); - // Generated from `System.Xml.Serialization.XmlReflectionImporter` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlReflectionImporter` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlReflectionImporter { public System.Xml.Serialization.XmlMembersMapping ImportMembersMapping(string elementName, string ns, System.Xml.Serialization.XmlReflectionMember[] members, bool hasWrapperElement) => throw null; @@ -404,7 +404,7 @@ namespace System public XmlReflectionImporter(string defaultNamespace) => throw null; } - // Generated from `System.Xml.Serialization.XmlReflectionMember` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlReflectionMember` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlReflectionMember { public bool IsReturnValue { get => throw null; set => throw null; } @@ -416,7 +416,7 @@ namespace System public XmlReflectionMember() => throw null; } - // Generated from `System.Xml.Serialization.XmlSchemaEnumerator` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSchemaEnumerator` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaEnumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable { public System.Xml.Schema.XmlSchema Current { get => throw null; } @@ -427,7 +427,7 @@ namespace System public XmlSchemaEnumerator(System.Xml.Serialization.XmlSchemas list) => throw null; } - // Generated from `System.Xml.Serialization.XmlSchemaExporter` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSchemaExporter` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaExporter { public string ExportAnyType(System.Xml.Serialization.XmlMembersMapping members) => throw null; @@ -439,7 +439,7 @@ namespace System public XmlSchemaExporter(System.Xml.Serialization.XmlSchemas schemas) => throw null; } - // Generated from `System.Xml.Serialization.XmlSchemaImporter` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSchemaImporter` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemaImporter : System.Xml.Serialization.SchemaImporter { public System.Xml.Serialization.XmlMembersMapping ImportAnyType(System.Xml.XmlQualifiedName typeName, string elementName) => throw null; @@ -457,7 +457,7 @@ namespace System public XmlSchemaImporter(System.Xml.Serialization.XmlSchemas schemas, System.Xml.Serialization.CodeIdentifiers typeIdentifiers) => throw null; } - // Generated from `System.Xml.Serialization.XmlSchemas` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSchemas` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSchemas : System.Collections.CollectionBase, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { public int Add(System.Xml.Schema.XmlSchema schema) => throw null; @@ -485,25 +485,25 @@ namespace System public XmlSchemas() => throw null; } - // Generated from `System.Xml.Serialization.XmlSerializationCollectionFixupCallback` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializationCollectionFixupCallback` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void XmlSerializationCollectionFixupCallback(object collection, object collectionItems); - // Generated from `System.Xml.Serialization.XmlSerializationFixupCallback` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializationFixupCallback` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void XmlSerializationFixupCallback(object fixup); - // Generated from `System.Xml.Serialization.XmlSerializationGeneratedCode` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializationGeneratedCode` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSerializationGeneratedCode { protected XmlSerializationGeneratedCode() => throw null; } - // Generated from `System.Xml.Serialization.XmlSerializationReadCallback` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializationReadCallback` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate object XmlSerializationReadCallback(); - // Generated from `System.Xml.Serialization.XmlSerializationReader` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializationReader` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSerializationReader : System.Xml.Serialization.XmlSerializationGeneratedCode { - // Generated from `System.Xml.Serialization.XmlSerializationReader+CollectionFixup` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializationReader+CollectionFixup` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` protected class CollectionFixup { public System.Xml.Serialization.XmlSerializationCollectionFixupCallback Callback { get => throw null; } @@ -513,7 +513,7 @@ namespace System } - // Generated from `System.Xml.Serialization.XmlSerializationReader+Fixup` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializationReader+Fixup` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` protected class Fixup { public System.Xml.Serialization.XmlSerializationFixupCallback Callback { get => throw null; } @@ -603,10 +603,10 @@ namespace System protected XmlSerializationReader() => throw null; } - // Generated from `System.Xml.Serialization.XmlSerializationWriteCallback` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializationWriteCallback` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public delegate void XmlSerializationWriteCallback(object o); - // Generated from `System.Xml.Serialization.XmlSerializationWriter` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializationWriter` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` 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; @@ -706,7 +706,7 @@ namespace System protected XmlSerializationWriter() => throw null; } - // Generated from `System.Xml.Serialization.XmlSerializer` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializer` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSerializer { public virtual bool CanDeserialize(System.Xml.XmlReader xmlReader) => throw null; @@ -748,7 +748,7 @@ namespace System public XmlSerializer(System.Xml.Serialization.XmlTypeMapping xmlTypeMapping) => throw null; } - // Generated from `System.Xml.Serialization.XmlSerializerAssemblyAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializerAssemblyAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSerializerAssemblyAttribute : System.Attribute { public string AssemblyName { get => throw null; set => throw null; } @@ -758,7 +758,7 @@ namespace System public XmlSerializerAssemblyAttribute(string assemblyName, string codeBase) => throw null; } - // Generated from `System.Xml.Serialization.XmlSerializerFactory` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializerFactory` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSerializerFactory { public System.Xml.Serialization.XmlSerializer CreateSerializer(System.Type type) => throw null; @@ -772,7 +772,7 @@ namespace System public XmlSerializerFactory() => throw null; } - // Generated from `System.Xml.Serialization.XmlSerializerImplementation` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializerImplementation` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public abstract class XmlSerializerImplementation { public virtual bool CanSerialize(System.Type type) => throw null; @@ -785,7 +785,7 @@ namespace System protected XmlSerializerImplementation() => throw null; } - // Generated from `System.Xml.Serialization.XmlSerializerVersionAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlSerializerVersionAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlSerializerVersionAttribute : System.Attribute { public string Namespace { get => throw null; set => throw null; } @@ -796,7 +796,7 @@ namespace System public XmlSerializerVersionAttribute(System.Type type) => throw null; } - // Generated from `System.Xml.Serialization.XmlTypeAttribute` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlTypeAttribute` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlTypeAttribute : System.Attribute { public bool AnonymousType { get => throw null; set => throw null; } @@ -807,7 +807,7 @@ namespace System public XmlTypeAttribute(string typeName) => throw null; } - // Generated from `System.Xml.Serialization.XmlTypeMapping` in `System.Xml.XmlSerializer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` + // Generated from `System.Xml.Serialization.XmlTypeMapping` in `System.Xml.XmlSerializer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` public class XmlTypeMapping : System.Xml.Serialization.XmlMapping { public string TypeFullName { get => throw null; } From 9268437a58b9a5abf4c7b0deb72aaf9549fc3b70 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 8 Aug 2022 12:42:04 +0200 Subject: [PATCH 646/736] Ruby: Generalize `SynthHashSplatParameterNode` to also work for synthesized methods --- .../dataflow/internal/DataFlowDispatch.qll | 7 +- .../dataflow/internal/DataFlowPrivate.qll | 82 ++--- .../dataflow/summaries/Summaries.expected | 316 +++++++++--------- .../dataflow/summaries/summaries.rb | 2 + 4 files changed, 213 insertions(+), 194 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index 9bfc4f5c9b6..3ec315b5d9b 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -65,7 +65,12 @@ class DataFlowCallable extends TDataFlowCallable { string toString() { result = [this.asCallable().toString(), this.asLibraryCallable()] } /** Gets the location of this callable. */ - Location getLocation() { result = this.asCallable().getLocation() } + Location getLocation() { + result = this.asCallable().getLocation() + or + this instanceof TLibraryCallable and + result instanceof EmptyLocation + } } /** diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index a9103e5b666..2386fd0bf6e 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -227,7 +227,9 @@ private module Cached { } or TSelfParameterNode(MethodBase m) or TBlockParameterNode(MethodBase m) or - TSynthHashSplatParameterNode(MethodBase m) { m.getAParameter() instanceof KeywordParameter } or + TSynthHashSplatParameterNode(DataFlowCallable c) { + isParameterNode(_, c, any(ParameterPosition p | p.isKeyword(_))) + } or TExprPostUpdateNode(CfgNodes::ExprCfgNode n) { n instanceof Argument or n = any(CfgNodes::ExprNodes::InstanceVariableAccessCfgNode v).getReceiver() @@ -477,10 +479,13 @@ private module ParameterNodes { abstract class ParameterNodeImpl extends NodeImpl { abstract Parameter getParameter(); - abstract predicate isSourceParameterOf(Callable c, ParameterPosition pos); + abstract predicate isParameterOf(DataFlowCallable c, ParameterPosition pos); - predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { - this.isSourceParameterOf(c.asCallable(), pos) + final predicate isSourceParameterOf(Callable c, ParameterPosition pos) { + exists(DataFlowCallable callable | + this.isParameterOf(callable, pos) and + c = callable.asCallable() + ) } } @@ -495,21 +500,23 @@ private module ParameterNodes { override Parameter getParameter() { result = parameter } - override predicate isSourceParameterOf(Callable c, ParameterPosition pos) { - exists(int i | pos.isPositional(i) and c.getParameter(i) = parameter | - parameter instanceof SimpleParameter - or - parameter instanceof OptionalParameter - ) - or - parameter = - any(KeywordParameter kp | - c.getAParameter() = kp and - pos.isKeyword(kp.getName()) + override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { + exists(Callable callable | callable = c.asCallable() | + exists(int i | pos.isPositional(i) and callable.getParameter(i) = parameter | + parameter instanceof SimpleParameter + or + parameter instanceof OptionalParameter ) - or - parameter = c.getAParameter().(HashSplatParameter) and - pos.isHashSplat() + or + parameter = + any(KeywordParameter kp | + callable.getAParameter() = kp and + pos.isKeyword(kp.getName()) + ) + or + parameter = callable.getAParameter().(HashSplatParameter) and + pos.isHashSplat() + ) } override CfgScope getCfgScope() { result = parameter.getCallable() } @@ -532,8 +539,8 @@ private module ParameterNodes { override Parameter getParameter() { none() } - override predicate isSourceParameterOf(Callable c, ParameterPosition pos) { - method = c and pos.isSelf() + override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { + method = c.asCallable() and pos.isSelf() } override CfgScope getCfgScope() { result = method } @@ -558,8 +565,8 @@ private module ParameterNodes { result = method.getAParameter() and result instanceof BlockParameter } - override predicate isSourceParameterOf(Callable c, ParameterPosition pos) { - c = method and pos.isBlock() + override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { + c.asCallable() = method and pos.isBlock() } override CfgScope getCfgScope() { result = method } @@ -612,37 +619,36 @@ private module ParameterNodes { * collapsed anyway. */ class SynthHashSplatParameterNode extends ParameterNodeImpl, TSynthHashSplatParameterNode { - private MethodBase method; + private DataFlowCallable callable; - SynthHashSplatParameterNode() { this = TSynthHashSplatParameterNode(method) } - - final Callable getMethod() { result = method } + SynthHashSplatParameterNode() { this = TSynthHashSplatParameterNode(callable) } /** * Gets a keyword parameter that will be the result of reading `c` out of this * synthesized node. */ - NormalParameterNode getAKeywordParameter(ContentSet c) { - exists(KeywordParameter p | - p = result.getParameter() and - p = method.getAParameter() + ParameterNode getAKeywordParameter(ContentSet c) { + exists(string name | + isParameterNode(result, callable, any(ParameterPosition p | p.isKeyword(name))) | - c = getKeywordContent(p.getName()) or + c = getKeywordContent(name) or c.isSingleton(TUnknownElementContent()) ) } - override Parameter getParameter() { none() } + final override Parameter getParameter() { none() } - override predicate isSourceParameterOf(Callable c, ParameterPosition pos) { - c = method and pos.isHashSplat() + final override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { + c = callable and pos.isHashSplat() } - override CfgScope getCfgScope() { result = method } + final override CfgScope getCfgScope() { result = callable.asCallable() } - override Location getLocationImpl() { result = method.getLocation() } + final override DataFlowCallable getEnclosingCallable() { result = callable } - override string toStringImpl() { result = "**kwargs" } + final override Location getLocationImpl() { result = callable.getLocation() } + + final override string toStringImpl() { result = "**kwargs" } } /** A parameter for a library callable with a flow summary. */ @@ -654,8 +660,6 @@ private module ParameterNodes { override Parameter getParameter() { none() } - override predicate isSourceParameterOf(Callable c, ParameterPosition pos) { none() } - override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { sc = c.asLibraryCallable() and pos = pos_ } diff --git a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected index 595ec706db6..1669a6b07fa 100644 --- a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected +++ b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected @@ -19,19 +19,19 @@ edges | 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:54:22:54:28 | tainted : | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:55:17:55:23 | tainted : | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:57:27:57:33 | tainted : | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:61:32:61:38 | tainted : | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:63:23:63:29 | tainted : | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:102:16:102:22 | tainted : | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:108:14:108:20 | tainted : | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:111:16:111:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:111:16:111:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:112:21:112:27 | tainted | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:112:21:112:27 | tainted | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:115:26:115:32 | tainted | -| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:115:26:115:32 | 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:104:16:104:22 | tainted : | +| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:110:14:110:20 | tainted : | +| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:113:16:113:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:113:16:113:22 | tainted | +| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:114:21:114:27 | tainted | +| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:114:21:114:27 | tainted | +| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:117:26:117:32 | tainted | +| summaries.rb:1:11:1:36 | call to identity : | summaries.rb:117:26:117:32 | 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:12:7:3 | call to apply_block : | summaries.rb:9:6:9:13 | tainted2 | @@ -64,55 +64,58 @@ edges | summaries.rb:44:8:44:8 | t : | summaries.rb:44:8:44:27 | call to matchedByNameRcv | | summaries.rb:48:24:48:41 | call to source : | summaries.rb:48:8:48:42 | call to preserveTaint | | summaries.rb:51:24:51:30 | tainted : | summaries.rb:51:6:51:31 | call to namedArg | -| summaries.rb:54:22:54:28 | tainted : | summaries.rb:54:6:54:29 | call to anyArg | -| summaries.rb:55:17:55:23 | tainted : | summaries.rb:55:6:55:24 | call to anyArg | -| summaries.rb:57:27:57:33 | tainted : | summaries.rb:57:6:57:34 | call to anyNamedArg | -| summaries.rb:61:32:61:38 | tainted : | summaries.rb:61:6:61:39 | call to anyPositionFromOne | -| summaries.rb:63:23:63:29 | tainted : | summaries.rb:63:40:63:40 | x : | -| summaries.rb:63:40:63:40 | x : | summaries.rb:64:8:64:8 | x | -| summaries.rb:71:24:71:53 | call to source : | summaries.rb:71:8:71:54 | call to preserveTaint | -| summaries.rb:74:26:74:56 | call to source : | summaries.rb:74:8:74:57 | call to preserveTaint | -| summaries.rb:77:15:77:29 | call to source : | summaries.rb:79:6:79:6 | a [element 1] : | -| summaries.rb:77:15:77:29 | call to source : | summaries.rb:79:6:79:6 | a [element 1] : | -| summaries.rb:77:15:77:29 | call to source : | summaries.rb:81:5:81:5 | a [element 1] : | -| summaries.rb:77:15:77:29 | call to source : | summaries.rb:81:5:81:5 | a [element 1] : | -| summaries.rb:77:32:77:46 | call to source : | summaries.rb:80:6:80:6 | a [element 2] : | -| summaries.rb:77:32:77:46 | call to source : | summaries.rb:80:6:80:6 | a [element 2] : | -| summaries.rb:77:32:77:46 | call to source : | summaries.rb:85:1:85:1 | a [element 2] : | -| summaries.rb:77:32:77:46 | call to source : | summaries.rb:85:1:85:1 | a [element 2] : | -| summaries.rb:79:6:79:6 | a [element 1] : | summaries.rb:79:6:79:9 | ...[...] | -| summaries.rb:79:6:79:6 | a [element 1] : | summaries.rb:79:6:79:9 | ...[...] | -| summaries.rb:80:6:80:6 | a [element 2] : | summaries.rb:80:6:80:9 | ...[...] | -| summaries.rb:80:6:80:6 | a [element 2] : | summaries.rb:80:6:80:9 | ...[...] | -| summaries.rb:81:5:81:5 | a [element 1] : | summaries.rb:81:5:81:22 | call to withElementOne [element 1] : | -| summaries.rb:81:5:81:5 | a [element 1] : | summaries.rb:81:5:81:22 | call to withElementOne [element 1] : | -| summaries.rb:81:5:81:22 | call to withElementOne [element 1] : | summaries.rb:83:6:83:6 | b [element 1] : | -| summaries.rb:81:5:81:22 | call to withElementOne [element 1] : | summaries.rb:83:6:83:6 | b [element 1] : | -| summaries.rb:83:6:83:6 | b [element 1] : | summaries.rb:83:6:83:9 | ...[...] | -| summaries.rb:83:6:83:6 | b [element 1] : | summaries.rb:83:6:83:9 | ...[...] | -| summaries.rb:85:1:85:1 | [post] a [element 2] : | summaries.rb:88:6:88:6 | a [element 2] : | -| summaries.rb:85:1:85:1 | [post] a [element 2] : | summaries.rb:88:6:88:6 | a [element 2] : | -| summaries.rb:85:1:85:1 | a [element 2] : | summaries.rb:85:1:85:1 | [post] a [element 2] : | -| summaries.rb:85:1:85:1 | a [element 2] : | summaries.rb:85:1:85:1 | [post] a [element 2] : | -| summaries.rb:88:6:88:6 | a [element 2] : | summaries.rb:88:6:88:9 | ...[...] | -| summaries.rb:88:6:88:6 | a [element 2] : | summaries.rb:88:6:88:9 | ...[...] | -| summaries.rb:91:1:91:1 | [post] x [@value] : | summaries.rb:92:6:92:6 | x [@value] : | -| summaries.rb:91:1:91:1 | [post] x [@value] : | summaries.rb:92:6:92:6 | x [@value] : | -| summaries.rb:91:13:91:26 | call to source : | summaries.rb:91:1:91:1 | [post] x [@value] : | -| summaries.rb:91:13:91:26 | call to source : | summaries.rb:91:1:91:1 | [post] x [@value] : | -| summaries.rb:92:6:92:6 | x [@value] : | summaries.rb:92:6:92:16 | call to get_value | -| summaries.rb:92:6:92:6 | x [@value] : | summaries.rb:92:6:92:16 | call to get_value | -| summaries.rb:102:16:102:22 | [post] tainted : | summaries.rb:108:14:108:20 | tainted : | -| summaries.rb:102:16:102:22 | [post] tainted : | summaries.rb:111:16:111:22 | tainted | -| summaries.rb:102:16:102:22 | [post] tainted : | summaries.rb:112:21:112:27 | tainted | -| summaries.rb:102:16:102:22 | [post] tainted : | summaries.rb:115:26:115:32 | tainted | -| summaries.rb:102:16:102:22 | tainted : | summaries.rb:102:16:102:22 | [post] tainted : | -| summaries.rb:102:16:102:22 | tainted : | summaries.rb:102:25:102:25 | [post] y : | -| summaries.rb:102:16:102:22 | tainted : | summaries.rb:102:33:102:33 | [post] z : | -| summaries.rb:102:25:102:25 | [post] y : | summaries.rb:104:6:104:6 | y | -| summaries.rb:102:33:102:33 | [post] z : | summaries.rb:105:6:105:6 | z | -| summaries.rb:108:1:108:1 | [post] x : | summaries.rb:109:6:109:6 | x | -| summaries.rb:108:14:108:20 | tainted : | summaries.rb:108:1:108:1 | [post] x : | +| summaries.rb:53:15:53:31 | call to source : | summaries.rb:54:21:54:24 | args [element :foo] : | +| summaries.rb:54:19:54:24 | ** ... [element :foo] : | summaries.rb:54:6:54:25 | call to namedArg | +| summaries.rb:54:21:54:24 | args [element :foo] : | summaries.rb:54:19:54:24 | ** ... [element :foo] : | +| summaries.rb:56:22:56:28 | tainted : | summaries.rb:56:6:56:29 | call to anyArg | +| summaries.rb:57:17:57:23 | tainted : | summaries.rb:57:6:57:24 | call to anyArg | +| summaries.rb:59:27:59:33 | tainted : | summaries.rb:59:6:59:34 | call to anyNamedArg | +| summaries.rb:63:32:63:38 | tainted : | summaries.rb:63:6:63:39 | call to anyPositionFromOne | +| summaries.rb:65:23:65:29 | tainted : | summaries.rb:65:40:65:40 | x : | +| summaries.rb:65:40:65:40 | x : | summaries.rb:66:8:66:8 | x | +| summaries.rb:73:24:73:53 | call to source : | summaries.rb:73:8:73:54 | call to preserveTaint | +| summaries.rb:76:26:76:56 | call to source : | summaries.rb:76:8:76:57 | call to preserveTaint | +| summaries.rb:79:15:79:29 | call to source : | summaries.rb:81:6:81:6 | a [element 1] : | +| summaries.rb:79:15:79:29 | call to source : | summaries.rb:81:6:81:6 | a [element 1] : | +| summaries.rb:79:15:79:29 | call to source : | summaries.rb:83:5:83:5 | a [element 1] : | +| summaries.rb:79:15:79:29 | call to source : | summaries.rb:83:5:83:5 | a [element 1] : | +| summaries.rb:79:32:79:46 | call to source : | summaries.rb:82:6:82:6 | a [element 2] : | +| summaries.rb:79:32:79:46 | call to source : | summaries.rb:82:6:82:6 | a [element 2] : | +| summaries.rb:79:32:79:46 | call to source : | summaries.rb:87:1:87:1 | a [element 2] : | +| summaries.rb:79:32:79:46 | call to source : | summaries.rb:87:1:87:1 | a [element 2] : | +| summaries.rb:81:6:81:6 | a [element 1] : | summaries.rb:81:6:81:9 | ...[...] | +| summaries.rb:81:6:81:6 | a [element 1] : | summaries.rb:81:6:81:9 | ...[...] | +| summaries.rb:82:6:82:6 | a [element 2] : | summaries.rb:82:6:82:9 | ...[...] | +| summaries.rb:82:6:82:6 | a [element 2] : | summaries.rb:82:6:82:9 | ...[...] | +| summaries.rb:83:5:83:5 | a [element 1] : | summaries.rb:83:5:83:22 | call to withElementOne [element 1] : | +| summaries.rb:83:5:83:5 | a [element 1] : | summaries.rb:83:5:83:22 | call to withElementOne [element 1] : | +| summaries.rb:83:5:83:22 | call to withElementOne [element 1] : | summaries.rb:85:6:85:6 | b [element 1] : | +| summaries.rb:83:5:83:22 | call to withElementOne [element 1] : | summaries.rb:85:6:85:6 | b [element 1] : | +| summaries.rb:85:6:85:6 | b [element 1] : | summaries.rb:85:6:85:9 | ...[...] | +| summaries.rb:85:6:85:6 | b [element 1] : | summaries.rb:85:6:85:9 | ...[...] | +| summaries.rb:87:1:87:1 | [post] a [element 2] : | summaries.rb:90:6:90:6 | a [element 2] : | +| summaries.rb:87:1:87:1 | [post] a [element 2] : | summaries.rb:90:6:90:6 | a [element 2] : | +| summaries.rb:87:1:87:1 | a [element 2] : | summaries.rb:87:1:87:1 | [post] a [element 2] : | +| summaries.rb:87:1:87:1 | a [element 2] : | summaries.rb:87:1:87:1 | [post] a [element 2] : | +| summaries.rb:90:6:90:6 | a [element 2] : | summaries.rb:90:6:90:9 | ...[...] | +| summaries.rb:90:6:90:6 | a [element 2] : | summaries.rb:90:6:90:9 | ...[...] | +| summaries.rb:93:1:93:1 | [post] x [@value] : | summaries.rb:94:6:94:6 | x [@value] : | +| summaries.rb:93:1:93:1 | [post] x [@value] : | summaries.rb:94:6:94:6 | x [@value] : | +| summaries.rb:93:13:93:26 | call to source : | summaries.rb:93:1:93:1 | [post] x [@value] : | +| summaries.rb:93:13:93:26 | call to source : | summaries.rb:93:1:93:1 | [post] x [@value] : | +| summaries.rb:94:6:94:6 | x [@value] : | summaries.rb:94:6:94:16 | call to get_value | +| summaries.rb:94:6:94:6 | x [@value] : | summaries.rb:94:6:94:16 | call to get_value | +| summaries.rb:104:16:104:22 | [post] tainted : | summaries.rb:110:14:110:20 | tainted : | +| summaries.rb:104:16:104:22 | [post] tainted : | summaries.rb:113:16:113:22 | tainted | +| summaries.rb:104:16:104:22 | [post] tainted : | summaries.rb:114:21:114:27 | tainted | +| summaries.rb:104:16:104:22 | [post] tainted : | summaries.rb:117:26:117:32 | tainted | +| summaries.rb:104:16:104:22 | tainted : | summaries.rb:104:16:104:22 | [post] tainted : | +| summaries.rb:104:16:104:22 | tainted : | summaries.rb:104:25:104:25 | [post] y : | +| summaries.rb:104:16:104:22 | tainted : | summaries.rb:104:33:104:33 | [post] z : | +| summaries.rb:104:25:104:25 | [post] y : | summaries.rb:106:6:106:6 | y | +| summaries.rb:104:33:104:33 | [post] z : | summaries.rb:107:6:107:6 | z | +| summaries.rb:110:1:110:1 | [post] x : | summaries.rb:111:6:111:6 | x | +| summaries.rb:110:14:110:20 | tainted : | summaries.rb:110:1:110:1 | [post] x : | nodes | 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 : | @@ -169,72 +172,76 @@ nodes | summaries.rb:48:24:48:41 | call to source : | semmle.label | call to source : | | summaries.rb:51:6:51:31 | call to namedArg | semmle.label | call to namedArg | | summaries.rb:51:24:51:30 | tainted : | semmle.label | tainted : | -| summaries.rb:54:6:54:29 | call to anyArg | semmle.label | call to anyArg | -| summaries.rb:54:22:54:28 | tainted : | semmle.label | tainted : | -| summaries.rb:55:6:55:24 | call to anyArg | semmle.label | call to anyArg | -| summaries.rb:55:17:55:23 | tainted : | semmle.label | tainted : | -| summaries.rb:57:6:57:34 | call to anyNamedArg | semmle.label | call to anyNamedArg | -| summaries.rb:57:27:57:33 | tainted : | semmle.label | tainted : | -| summaries.rb:61:6:61:39 | call to anyPositionFromOne | semmle.label | call to anyPositionFromOne | -| summaries.rb:61:32:61:38 | tainted : | semmle.label | tainted : | -| summaries.rb:63:23:63:29 | tainted : | semmle.label | tainted : | -| summaries.rb:63:40:63:40 | x : | semmle.label | x : | -| summaries.rb:64:8:64:8 | x | semmle.label | x | -| summaries.rb:71:8:71:54 | call to preserveTaint | semmle.label | call to preserveTaint | -| summaries.rb:71:24:71:53 | call to source : | semmle.label | call to source : | -| summaries.rb:74:8:74:57 | call to preserveTaint | semmle.label | call to preserveTaint | -| summaries.rb:74:26:74:56 | call to source : | semmle.label | call to source : | -| summaries.rb:77:15:77:29 | call to source : | semmle.label | call to source : | -| summaries.rb:77:15:77:29 | call to source : | semmle.label | call to source : | -| summaries.rb:77:32:77:46 | call to source : | semmle.label | call to source : | -| summaries.rb:77:32:77:46 | call to source : | semmle.label | call to source : | -| summaries.rb:79:6:79:6 | a [element 1] : | semmle.label | a [element 1] : | -| summaries.rb:79:6:79:6 | a [element 1] : | semmle.label | a [element 1] : | -| summaries.rb:79:6:79:9 | ...[...] | semmle.label | ...[...] | -| summaries.rb:79:6:79:9 | ...[...] | semmle.label | ...[...] | -| summaries.rb:80:6:80:6 | a [element 2] : | semmle.label | a [element 2] : | -| summaries.rb:80:6:80:6 | a [element 2] : | semmle.label | a [element 2] : | -| summaries.rb:80:6:80:9 | ...[...] | semmle.label | ...[...] | -| summaries.rb:80:6:80:9 | ...[...] | semmle.label | ...[...] | -| summaries.rb:81:5:81:5 | a [element 1] : | semmle.label | a [element 1] : | -| summaries.rb:81:5:81:5 | a [element 1] : | semmle.label | a [element 1] : | -| summaries.rb:81:5:81:22 | call to withElementOne [element 1] : | semmle.label | call to withElementOne [element 1] : | -| summaries.rb:81:5:81:22 | call to withElementOne [element 1] : | semmle.label | call to withElementOne [element 1] : | -| summaries.rb:83:6:83:6 | b [element 1] : | semmle.label | b [element 1] : | -| summaries.rb:83:6:83:6 | b [element 1] : | semmle.label | b [element 1] : | -| summaries.rb:83:6:83:9 | ...[...] | semmle.label | ...[...] | -| summaries.rb:83:6:83:9 | ...[...] | semmle.label | ...[...] | -| summaries.rb:85:1:85:1 | [post] a [element 2] : | semmle.label | [post] a [element 2] : | -| summaries.rb:85:1:85:1 | [post] a [element 2] : | semmle.label | [post] a [element 2] : | -| summaries.rb:85:1:85:1 | a [element 2] : | semmle.label | a [element 2] : | -| summaries.rb:85:1:85:1 | a [element 2] : | semmle.label | a [element 2] : | -| summaries.rb:88:6:88:6 | a [element 2] : | semmle.label | a [element 2] : | -| summaries.rb:88:6:88:6 | a [element 2] : | semmle.label | a [element 2] : | -| summaries.rb:88:6:88:9 | ...[...] | semmle.label | ...[...] | -| summaries.rb:88:6:88:9 | ...[...] | semmle.label | ...[...] | -| summaries.rb:91:1:91:1 | [post] x [@value] : | semmle.label | [post] x [@value] : | -| summaries.rb:91:1:91:1 | [post] x [@value] : | semmle.label | [post] x [@value] : | -| summaries.rb:91:13:91:26 | call to source : | semmle.label | call to source : | -| summaries.rb:91:13:91:26 | call to source : | semmle.label | call to source : | -| summaries.rb:92:6:92:6 | x [@value] : | semmle.label | x [@value] : | -| summaries.rb:92:6:92:6 | x [@value] : | semmle.label | x [@value] : | -| summaries.rb:92:6:92:16 | call to get_value | semmle.label | call to get_value | -| summaries.rb:92:6:92:16 | call to get_value | semmle.label | call to get_value | -| summaries.rb:102:16:102:22 | [post] tainted : | semmle.label | [post] tainted : | -| summaries.rb:102:16:102:22 | tainted : | semmle.label | tainted : | -| summaries.rb:102:25:102:25 | [post] y : | semmle.label | [post] y : | -| summaries.rb:102:33:102:33 | [post] z : | semmle.label | [post] z : | -| summaries.rb:104:6:104:6 | y | semmle.label | y | -| summaries.rb:105:6:105:6 | z | semmle.label | z | -| summaries.rb:108:1:108:1 | [post] x : | semmle.label | [post] x : | -| summaries.rb:108:14:108:20 | tainted : | semmle.label | tainted : | -| summaries.rb:109:6:109:6 | x | semmle.label | x | -| summaries.rb:111:16:111:22 | tainted | semmle.label | tainted | -| summaries.rb:111:16:111:22 | tainted | semmle.label | tainted | -| summaries.rb:112:21:112:27 | tainted | semmle.label | tainted | -| summaries.rb:112:21:112:27 | tainted | semmle.label | tainted | -| summaries.rb:115:26:115:32 | tainted | semmle.label | tainted | -| summaries.rb:115:26:115:32 | tainted | semmle.label | tainted | +| summaries.rb:53:15:53:31 | call to source : | semmle.label | call to source : | +| summaries.rb:54:6:54:25 | call to namedArg | semmle.label | call to namedArg | +| summaries.rb:54:19:54:24 | ** ... [element :foo] : | semmle.label | ** ... [element :foo] : | +| summaries.rb:54:21:54:24 | args [element :foo] : | semmle.label | args [element :foo] : | +| summaries.rb:56:6:56:29 | call to anyArg | semmle.label | call to anyArg | +| summaries.rb:56:22:56:28 | tainted : | semmle.label | tainted : | +| summaries.rb:57:6:57:24 | call to anyArg | semmle.label | call to anyArg | +| summaries.rb:57:17:57:23 | tainted : | semmle.label | tainted : | +| summaries.rb:59:6:59:34 | call to anyNamedArg | semmle.label | call to anyNamedArg | +| summaries.rb:59:27:59:33 | tainted : | semmle.label | tainted : | +| summaries.rb:63:6:63:39 | call to anyPositionFromOne | semmle.label | call to anyPositionFromOne | +| summaries.rb:63:32:63:38 | tainted : | semmle.label | tainted : | +| summaries.rb:65:23:65:29 | tainted : | semmle.label | tainted : | +| summaries.rb:65:40:65:40 | x : | semmle.label | x : | +| summaries.rb:66:8:66:8 | x | semmle.label | x | +| summaries.rb:73:8:73:54 | call to preserveTaint | semmle.label | call to preserveTaint | +| summaries.rb:73:24:73:53 | call to source : | semmle.label | call to source : | +| summaries.rb:76:8:76:57 | call to preserveTaint | semmle.label | call to preserveTaint | +| summaries.rb:76:26:76:56 | call to source : | semmle.label | call to source : | +| summaries.rb:79:15:79:29 | call to source : | semmle.label | call to source : | +| summaries.rb:79:15:79:29 | call to source : | semmle.label | call to source : | +| summaries.rb:79:32:79:46 | call to source : | semmle.label | call to source : | +| summaries.rb:79:32:79:46 | call to source : | semmle.label | call to source : | +| summaries.rb:81:6:81:6 | a [element 1] : | semmle.label | a [element 1] : | +| summaries.rb:81:6:81:6 | a [element 1] : | semmle.label | a [element 1] : | +| summaries.rb:81:6:81:9 | ...[...] | semmle.label | ...[...] | +| summaries.rb:81:6:81:9 | ...[...] | semmle.label | ...[...] | +| summaries.rb:82:6:82:6 | a [element 2] : | semmle.label | a [element 2] : | +| summaries.rb:82:6:82:6 | a [element 2] : | semmle.label | a [element 2] : | +| summaries.rb:82:6:82:9 | ...[...] | semmle.label | ...[...] | +| summaries.rb:82:6:82:9 | ...[...] | semmle.label | ...[...] | +| summaries.rb:83:5:83:5 | a [element 1] : | semmle.label | a [element 1] : | +| summaries.rb:83:5:83:5 | a [element 1] : | semmle.label | a [element 1] : | +| summaries.rb:83:5:83:22 | call to withElementOne [element 1] : | semmle.label | call to withElementOne [element 1] : | +| summaries.rb:83:5:83:22 | call to withElementOne [element 1] : | semmle.label | call to withElementOne [element 1] : | +| summaries.rb:85:6:85:6 | b [element 1] : | semmle.label | b [element 1] : | +| summaries.rb:85:6:85:6 | b [element 1] : | semmle.label | b [element 1] : | +| summaries.rb:85:6:85:9 | ...[...] | semmle.label | ...[...] | +| summaries.rb:85:6:85:9 | ...[...] | semmle.label | ...[...] | +| summaries.rb:87:1:87:1 | [post] a [element 2] : | semmle.label | [post] a [element 2] : | +| summaries.rb:87:1:87:1 | [post] a [element 2] : | semmle.label | [post] a [element 2] : | +| summaries.rb:87:1:87:1 | a [element 2] : | semmle.label | a [element 2] : | +| summaries.rb:87:1:87:1 | a [element 2] : | semmle.label | a [element 2] : | +| summaries.rb:90:6:90:6 | a [element 2] : | semmle.label | a [element 2] : | +| summaries.rb:90:6:90:6 | a [element 2] : | semmle.label | a [element 2] : | +| summaries.rb:90:6:90:9 | ...[...] | semmle.label | ...[...] | +| summaries.rb:90:6:90:9 | ...[...] | semmle.label | ...[...] | +| summaries.rb:93:1:93:1 | [post] x [@value] : | semmle.label | [post] x [@value] : | +| summaries.rb:93:1:93:1 | [post] x [@value] : | semmle.label | [post] x [@value] : | +| summaries.rb:93:13:93:26 | call to source : | semmle.label | call to source : | +| summaries.rb:93:13:93:26 | call to source : | semmle.label | call to source : | +| summaries.rb:94:6:94:6 | x [@value] : | semmle.label | x [@value] : | +| summaries.rb:94:6:94:6 | x [@value] : | semmle.label | x [@value] : | +| summaries.rb:94:6:94:16 | call to get_value | semmle.label | call to get_value | +| summaries.rb:94:6:94:16 | call to get_value | semmle.label | call to get_value | +| summaries.rb:104:16:104:22 | [post] tainted : | semmle.label | [post] tainted : | +| summaries.rb:104:16:104:22 | tainted : | semmle.label | tainted : | +| summaries.rb:104:25:104:25 | [post] y : | semmle.label | [post] y : | +| summaries.rb:104:33:104:33 | [post] z : | semmle.label | [post] z : | +| summaries.rb:106:6:106:6 | y | semmle.label | y | +| summaries.rb:107:6:107:6 | z | semmle.label | z | +| summaries.rb:110:1:110:1 | [post] x : | semmle.label | [post] x : | +| summaries.rb:110:14:110:20 | tainted : | semmle.label | tainted : | +| summaries.rb:111:6:111:6 | x | semmle.label | x | +| summaries.rb:113:16:113:22 | tainted | semmle.label | tainted | +| summaries.rb:113:16:113:22 | tainted | semmle.label | tainted | +| summaries.rb:114:21:114:27 | tainted | semmle.label | tainted | +| summaries.rb:114:21:114:27 | tainted | semmle.label | tainted | +| summaries.rb:117:26:117:32 | tainted | semmle.label | tainted | +| summaries.rb:117:26:117:32 | tainted | semmle.label | tainted | subpaths invalidSpecComponent #select @@ -265,32 +272,33 @@ invalidSpecComponent | summaries.rb:44:8:44:27 | call to matchedByNameRcv | summaries.rb:40:7:40:17 | call to source : | summaries.rb:44:8:44:27 | call to matchedByNameRcv | $@ | summaries.rb:40:7:40:17 | call to source : | call to source : | | summaries.rb:48:8:48:42 | call to preserveTaint | summaries.rb:48:24:48:41 | call to source : | summaries.rb:48:8:48:42 | call to preserveTaint | $@ | summaries.rb:48:24:48:41 | call to source : | call to source : | | summaries.rb:51:6:51:31 | call to namedArg | summaries.rb:1:20:1:36 | call to source : | summaries.rb:51:6:51:31 | call to namedArg | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:54:6:54:29 | call to anyArg | summaries.rb:1:20:1:36 | call to source : | summaries.rb:54:6:54:29 | call to anyArg | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:55:6:55:24 | call to anyArg | summaries.rb:1:20:1:36 | call to source : | summaries.rb:55:6:55:24 | call to anyArg | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:57:6:57:34 | call to anyNamedArg | summaries.rb:1:20:1:36 | call to source : | summaries.rb:57:6:57:34 | call to anyNamedArg | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:61:6:61:39 | call to anyPositionFromOne | summaries.rb:1:20:1:36 | call to source : | summaries.rb:61:6:61:39 | call to anyPositionFromOne | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:64:8:64:8 | x | summaries.rb:1:20:1:36 | call to source : | summaries.rb:64:8:64:8 | x | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:71:8:71:54 | call to preserveTaint | summaries.rb:71:24:71:53 | call to source : | summaries.rb:71:8:71:54 | call to preserveTaint | $@ | summaries.rb:71:24:71:53 | call to source : | call to source : | -| summaries.rb:74:8:74:57 | call to preserveTaint | summaries.rb:74:26:74:56 | call to source : | summaries.rb:74:8:74:57 | call to preserveTaint | $@ | summaries.rb:74:26:74:56 | call to source : | call to source : | -| summaries.rb:79:6:79:9 | ...[...] | summaries.rb:77:15:77:29 | call to source : | summaries.rb:79:6:79:9 | ...[...] | $@ | summaries.rb:77:15:77:29 | call to source : | call to source : | -| summaries.rb:79:6:79:9 | ...[...] | summaries.rb:77:15:77:29 | call to source : | summaries.rb:79:6:79:9 | ...[...] | $@ | summaries.rb:77:15:77:29 | call to source : | call to source : | -| summaries.rb:80:6:80:9 | ...[...] | summaries.rb:77:32:77:46 | call to source : | summaries.rb:80:6:80:9 | ...[...] | $@ | summaries.rb:77:32:77:46 | call to source : | call to source : | -| summaries.rb:80:6:80:9 | ...[...] | summaries.rb:77:32:77:46 | call to source : | summaries.rb:80:6:80:9 | ...[...] | $@ | summaries.rb:77:32:77:46 | call to source : | call to source : | -| summaries.rb:83:6:83:9 | ...[...] | summaries.rb:77:15:77:29 | call to source : | summaries.rb:83:6:83:9 | ...[...] | $@ | summaries.rb:77:15:77:29 | call to source : | call to source : | -| summaries.rb:83:6:83:9 | ...[...] | summaries.rb:77:15:77:29 | call to source : | summaries.rb:83:6:83:9 | ...[...] | $@ | summaries.rb:77:15:77:29 | call to source : | call to source : | -| summaries.rb:88:6:88:9 | ...[...] | summaries.rb:77:32:77:46 | call to source : | summaries.rb:88:6:88:9 | ...[...] | $@ | summaries.rb:77:32:77:46 | call to source : | call to source : | -| summaries.rb:88:6:88:9 | ...[...] | summaries.rb:77:32:77:46 | call to source : | summaries.rb:88:6:88:9 | ...[...] | $@ | summaries.rb:77:32:77:46 | call to source : | call to source : | -| summaries.rb:92:6:92:16 | call to get_value | summaries.rb:91:13:91:26 | call to source : | summaries.rb:92:6:92:16 | call to get_value | $@ | summaries.rb:91:13:91:26 | call to source : | call to source : | -| summaries.rb:92:6:92:16 | call to get_value | summaries.rb:91:13:91:26 | call to source : | summaries.rb:92:6:92:16 | call to get_value | $@ | summaries.rb:91:13:91:26 | call to source : | call to source : | -| summaries.rb:104:6:104:6 | y | summaries.rb:1:20:1:36 | call to source : | summaries.rb:104:6:104:6 | y | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:105:6:105:6 | z | summaries.rb:1:20:1:36 | call to source : | summaries.rb:105:6:105:6 | z | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:109:6:109:6 | x | summaries.rb:1:20:1:36 | call to source : | summaries.rb:109:6:109:6 | x | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:111:16:111:22 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:111:16:111:22 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:111:16:111:22 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:111:16:111:22 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:112:21:112:27 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:112:21:112:27 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:112:21:112:27 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:112:21:112:27 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:115:26:115:32 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:115:26:115:32 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | -| summaries.rb:115:26:115:32 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:115:26:115:32 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:54:6:54:25 | call to namedArg | summaries.rb:53:15:53:31 | call to source : | summaries.rb:54:6:54:25 | call to namedArg | $@ | summaries.rb:53:15:53:31 | call to source : | call to source : | +| summaries.rb:56:6:56:29 | call to anyArg | summaries.rb:1:20:1:36 | call to source : | summaries.rb:56:6:56:29 | call to anyArg | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:57:6:57:24 | call to anyArg | summaries.rb:1:20:1:36 | call to source : | summaries.rb:57:6:57:24 | call to anyArg | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:59:6:59:34 | call to anyNamedArg | summaries.rb:1:20:1:36 | call to source : | summaries.rb:59:6:59:34 | call to anyNamedArg | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:63:6:63:39 | call to anyPositionFromOne | summaries.rb:1:20:1:36 | call to source : | summaries.rb:63:6:63:39 | call to anyPositionFromOne | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:66:8:66:8 | x | summaries.rb:1:20:1:36 | call to source : | summaries.rb:66:8:66:8 | x | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:73:8:73:54 | call to preserveTaint | summaries.rb:73:24:73:53 | call to source : | summaries.rb:73:8:73:54 | call to preserveTaint | $@ | summaries.rb:73:24:73:53 | call to source : | call to source : | +| summaries.rb:76:8:76:57 | call to preserveTaint | summaries.rb:76:26:76:56 | call to source : | summaries.rb:76:8:76:57 | call to preserveTaint | $@ | summaries.rb:76:26:76:56 | call to source : | call to source : | +| summaries.rb:81:6:81:9 | ...[...] | summaries.rb:79:15:79:29 | call to source : | summaries.rb:81:6:81:9 | ...[...] | $@ | summaries.rb:79:15:79:29 | call to source : | call to source : | +| summaries.rb:81:6:81:9 | ...[...] | summaries.rb:79:15:79:29 | call to source : | summaries.rb:81:6:81:9 | ...[...] | $@ | summaries.rb:79:15:79:29 | call to source : | call to source : | +| summaries.rb:82:6:82:9 | ...[...] | summaries.rb:79:32:79:46 | call to source : | summaries.rb:82:6:82:9 | ...[...] | $@ | summaries.rb:79:32:79:46 | call to source : | call to source : | +| summaries.rb:82:6:82:9 | ...[...] | summaries.rb:79:32:79:46 | call to source : | summaries.rb:82:6:82:9 | ...[...] | $@ | summaries.rb:79:32:79:46 | call to source : | call to source : | +| summaries.rb:85:6:85:9 | ...[...] | summaries.rb:79:15:79:29 | call to source : | summaries.rb:85:6:85:9 | ...[...] | $@ | summaries.rb:79:15:79:29 | call to source : | call to source : | +| summaries.rb:85:6:85:9 | ...[...] | summaries.rb:79:15:79:29 | call to source : | summaries.rb:85:6:85:9 | ...[...] | $@ | summaries.rb:79:15:79:29 | call to source : | call to source : | +| summaries.rb:90:6:90:9 | ...[...] | summaries.rb:79:32:79:46 | call to source : | summaries.rb:90:6:90:9 | ...[...] | $@ | summaries.rb:79:32:79:46 | call to source : | call to source : | +| summaries.rb:90:6:90:9 | ...[...] | summaries.rb:79:32:79:46 | call to source : | summaries.rb:90:6:90:9 | ...[...] | $@ | summaries.rb:79:32:79:46 | call to source : | call to source : | +| summaries.rb:94:6:94:16 | call to get_value | summaries.rb:93:13:93:26 | call to source : | summaries.rb:94:6:94:16 | call to get_value | $@ | summaries.rb:93:13:93:26 | call to source : | call to source : | +| summaries.rb:94:6:94:16 | call to get_value | summaries.rb:93:13:93:26 | call to source : | summaries.rb:94:6:94:16 | call to get_value | $@ | summaries.rb:93:13:93:26 | call to source : | call to source : | +| summaries.rb:106:6:106:6 | y | summaries.rb:1:20:1:36 | call to source : | summaries.rb:106:6:106:6 | y | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:107:6:107:6 | z | summaries.rb:1:20:1:36 | call to source : | summaries.rb:107:6:107:6 | z | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:111:6:111:6 | x | summaries.rb:1:20:1:36 | call to source : | summaries.rb:111:6:111:6 | x | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:113:16:113:22 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:113:16:113:22 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:113:16:113:22 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:113:16:113:22 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:114:21:114:27 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:114:21:114:27 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:114:21:114:27 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:114:21:114:27 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:117:26:117:32 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:117:26:117:32 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | +| summaries.rb:117:26:117:32 | tainted | summaries.rb:1:20:1:36 | call to source : | summaries.rb:117:26:117:32 | tainted | $@ | summaries.rb:1:20:1:36 | call to source : | call to source : | warning | CSV type row should have 5 columns but has 2: test;TooFewColumns | | CSV type row should have 5 columns but has 8: test;TooManyColumns;;;Member[Foo].Instance;too;many;columns | diff --git a/ruby/ql/test/library-tests/dataflow/summaries/summaries.rb b/ruby/ql/test/library-tests/dataflow/summaries/summaries.rb index baa662736f5..cf92b7948e7 100644 --- a/ruby/ql/test/library-tests/dataflow/summaries/summaries.rb +++ b/ruby/ql/test/library-tests/dataflow/summaries/summaries.rb @@ -50,6 +50,8 @@ end sink(Foo.namedArg(foo: tainted)) # $ hasTaintFlow=tainted sink(Foo.namedArg(tainted)) +args = { foo: source("tainted") } +sink(Foo.namedArg(**args)) # $ hasTaintFlow=tainted sink(Foo.anyArg(foo: tainted)) # $ hasTaintFlow=tainted sink(Foo.anyArg(tainted)) # $ hasTaintFlow=tainted From 02bea35da2f63c0049e556d4d75f8c1a39b29bed Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 8 Aug 2022 18:35:25 +0300 Subject: [PATCH 647/736] Update DangerousUseMbtowc.qhelp --- .../Security/CWE/CWE-125/DangerousUseMbtowc.qhelp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp index 5a9aa77214d..fd8842050dc 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp @@ -3,7 +3,7 @@ "qhelp.dtd"> -

    Using function mbtowc with an invalid length argument can result in an out-of-bounds access error or unexpected result. If you are sure you are working with a null-terminated string, use the length macros, if not, use the correctly computed length.

    +

    Using a function to convert multibyte or wide characters with an invalid length argument may result in an out-of-range access error or unexpected results.

    @@ -20,4 +20,4 @@ -
    \ No newline at end of file + From 5ee499389ebc22babc3648144bdb30ff4dc19a33 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 8 Aug 2022 18:36:53 +0300 Subject: [PATCH 648/736] Rename DangerousUseMbtowc.cpp to DangerousWorksWithMultibyteOrWideCharacters.cpp --- ...Mbtowc.cpp => DangerousWorksWithMultibyteOrWideCharacters.cpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename cpp/ql/src/experimental/Security/CWE/CWE-125/{DangerousUseMbtowc.cpp => DangerousWorksWithMultibyteOrWideCharacters.cpp} (100%) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.cpp b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.cpp similarity index 100% rename from cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.cpp rename to cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.cpp From ef04b8f5b3262f4098ceca9b339ee8765747567c Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 8 Aug 2022 18:37:15 +0300 Subject: [PATCH 649/736] Rename DangerousUseMbtowc.qhelp to DangerousWorksWithMultibyteOrWideCharacters.qhelp --- ...wc.qhelp => DangerousWorksWithMultibyteOrWideCharacters.qhelp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename cpp/ql/src/experimental/Security/CWE/CWE-125/{DangerousUseMbtowc.qhelp => DangerousWorksWithMultibyteOrWideCharacters.qhelp} (100%) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.qhelp similarity index 100% rename from cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.qhelp rename to cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.qhelp From bce395f201926d0a65a5d2546ef806bc89934041 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 8 Aug 2022 18:38:24 +0300 Subject: [PATCH 650/736] Rename DangerousUseMbtowc.expected to DangerousWorksWithMultibyteOrWideCharacters.expected --- ...ected => DangerousWorksWithMultibyteOrWideCharacters.expected} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/{DangerousUseMbtowc.expected => DangerousWorksWithMultibyteOrWideCharacters.expected} (100%) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousWorksWithMultibyteOrWideCharacters.expected similarity index 100% rename from cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.expected rename to cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousWorksWithMultibyteOrWideCharacters.expected From 9b5154f87864e99dd0d49c3dbcdcbbff9cd55332 Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 8 Aug 2022 18:39:10 +0300 Subject: [PATCH 651/736] Update and rename DangerousUseMbtowc.qlref to DangerousWorksWithMultibyteOrWideCharacters.qlref --- .../Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.qlref | 1 - .../tests/DangerousWorksWithMultibyteOrWideCharacters.qlref | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.qlref create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousWorksWithMultibyteOrWideCharacters.qlref diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.qlref b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.qlref deleted file mode 100644 index f8b0cddbb28..00000000000 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousUseMbtowc.qlref +++ /dev/null @@ -1 +0,0 @@ -experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousWorksWithMultibyteOrWideCharacters.qlref b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousWorksWithMultibyteOrWideCharacters.qlref new file mode 100644 index 00000000000..228684a4e25 --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-125/semmle/tests/DangerousWorksWithMultibyteOrWideCharacters.qlref @@ -0,0 +1 @@ +experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql From 7cbf79b1443a94042f74c026f2886596ee04ab0a Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 8 Aug 2022 18:39:41 +0300 Subject: [PATCH 652/736] Rename DangerousUseMbtowc.ql to DangerousWorksWithMultibyteOrWideCharacters.ql --- ...seMbtowc.ql => DangerousWorksWithMultibyteOrWideCharacters.ql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename cpp/ql/src/experimental/Security/CWE/CWE-125/{DangerousUseMbtowc.ql => DangerousWorksWithMultibyteOrWideCharacters.ql} (100%) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql similarity index 100% rename from cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousUseMbtowc.ql rename to cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql From 212b1031b2ce6d739fb0d01bde9bdb37aa23b74e Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 8 Aug 2022 18:42:54 +0300 Subject: [PATCH 653/736] Update DangerousWorksWithMultibyteOrWideCharacters.qhelp --- .../CWE-125/DangerousWorksWithMultibyteOrWideCharacters.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.qhelp b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.qhelp index fd8842050dc..e6f18c5c8ae 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.qhelp +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.qhelp @@ -9,7 +9,7 @@

    The following example shows the erroneous and corrected method of using function mbtowc.

    - +
    From 4fdf4b23bd2e142cdc8fed959d5596f88dc1d66c Mon Sep 17 00:00:00 2001 From: ihsinme Date: Mon, 8 Aug 2022 18:46:39 +0300 Subject: [PATCH 654/736] Update DangerousWorksWithMultibyteOrWideCharacters.ql --- .../DangerousWorksWithMultibyteOrWideCharacters.ql | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql index 0b87d920b6f..f73ba21c39b 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql @@ -1,8 +1,8 @@ /** - * @name Dangerous use mbtowc. - * @description Using function mbtowc with an invalid length argument can result in an out-of-bounds access error or unexpected result. + * @name Dangerous use convert function. + * @description Using convert function with an invalid length argument can result in an out-of-bounds access error or unexpected result. * @kind problem - * @id cpp/dangerous-use-mbtowc + * @id cpp/dangerous-use-convert-function * @problem.severity warning * @precision medium * @tags correctness @@ -117,8 +117,7 @@ predicate findUseCharacterConversion(Expr exp, string msg) { predicate findUseMultibyteCharacter(Expr exp, string msg) { exists(ArrayType arrayType, ArrayExpr arrayExpr | arrayExpr = exp and - arrayExpr.getArrayBase().getType() = - arrayType and + arrayExpr.getArrayBase().getType() = arrayType and ( exists(AssignExpr assZero, SizeofExprOperator sizeofArray, Expr oneValue | oneValue.getValue() = "1" and From dc853d97283183f71ae38b931fb02aba340cef66 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Fri, 29 Jul 2022 16:11:26 +1200 Subject: [PATCH 655/736] Ruby: Model ActiveRecord associations --- .../codeql/ruby/frameworks/ActiveRecord.qll | 172 ++++++++++++++++++ .../active_record/ActiveRecord.expected | 124 +++++++++++++ .../frameworks/active_record/associations.rb | 51 ++++++ 3 files changed, 347 insertions(+) create mode 100644 ruby/ql/test/library-tests/frameworks/active_record/associations.rb diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index a983005e766..996fb2ec1a8 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -516,3 +516,175 @@ private module Persistence { override DataFlow::Node getValue() { assignNode.getRhs() = result.asExpr() } } } + +/** + * A method call inside an ActiveRecord model class that establishes an + * association between this model and another model. + * + * ```rb + * class User + * has_many :posts + * has_one :profile + * end + * ``` + */ +private class ActiveRecordAssociation extends DataFlow::CallNode { + private ActiveRecordModelClass modelClass; + + ActiveRecordAssociation() { + not exists(this.asExpr().getExpr().getEnclosingMethod()) and + this.asExpr().getExpr().getEnclosingModule() = modelClass and + this.getMethodName() = ["has_one", "has_many", "belongs_to", "has_and_belongs_to_many"] + } + + /** + * Gets the class which declares this association. + * For example, in + * ```rb + * class User + * has_many :posts + * end + * ``` + * the source class is `User`. + */ + ActiveRecordModelClass getSourceClass() { result = modelClass } + + /** + * Gets the class which this association refers to. + * For example, in + * ```rb + * class User + * has_many :posts + * end + * ``` + * the target class is `Post`. + */ + ActiveRecordModelClass getTargetClass() { + result.getName().toLowerCase() = this.getTargetModelName() + } + + /** + * Gets the (lowercase) name of the model this association targets. + * For example, in `has_many :posts`, this is `post`. + */ + string getTargetModelName() { + exists(string s | + s = this.getArgument(0).asExpr().getExpr().getConstantValue().getStringlikeValue() + | + // has_one :profile + // belongs_to :user + this.isSingular() and + result = s + or + // has_many :posts + // has_many :stories + this.isCollection() and + pluralize(result) = s + ) + } + + /** Holds if this association is one-to-one */ + predicate isSingular() { this.getMethodName() = ["has_one", "belongs_to"] } + + /** Holds if this association is one-to-many or many-to-many */ + predicate isCollection() { this.getMethodName() = ["has_many", "has_and_belongs_to_many"] } +} + +/** + * Converts `input` to plural form. + */ +bindingset[input] +bindingset[result] +private string pluralize(string input) { + exists(string stem | stem + "y" = input | result = stem + "ies") + or + result = input + "s" +} + +/** + * A call to a method generated by an ActiveRecord association. + * These yield ActiveRecord collection proxies, which act like collections but + * add some additional methods. + * We exclude `_changed?` and `_previously_changed?` because these + * do not yield ActiveRecord instances. + * https://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html + */ +private class ActiveRecordAssociationMethodCall extends DataFlow::CallNode { + ActiveRecordAssociation assoc; + + ActiveRecordAssociationMethodCall() { + exists(string model | model = assoc.getTargetModelName() | + this.getReceiver().(ActiveRecordInstance).getClass() = assoc.getSourceClass() and + ( + assoc.isCollection() and + ( + this.getMethodName() = pluralize(model) + ["", "=", "<<"] + or + this.getMethodName() = model + ["_ids", "_ids="] + ) + or + assoc.isSingular() and + ( + this.getMethodName() = model + ["", "="] or + this.getMethodName() = ["build_", "reload_"] + model or + this.getMethodName() = "create_" + model + ["!", ""] + ) + ) + ) + } + + ActiveRecordAssociation getAssociation() { result = assoc } +} + +/** + * A method call on an ActiveRecord collection proxy that yields one or more + * ActiveRecord instances. + * Example: + * ```rb + * class User < ActiveRecord::Base + * has_many :posts + * end + * + * User.new.posts.create + * ``` + * https://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html + */ +private class ActiveRecordCollectionProxyMethodCall extends DataFlow::CallNode { + ActiveRecordCollectionProxyMethodCall() { + this.getMethodName() = + [ + "push", "concat", "build", "create", "create!", "delete", "delete_all", "destroy", + "destroy_all", "find", "distinct", "reset", "reload" + ] and + ( + this.getReceiver().(ActiveRecordAssociationMethodCall).getAssociation().isCollection() + or + exists(ActiveRecordCollectionProxyMethodCall receiver | receiver = this.getReceiver() | + receiver.getAssociation().isCollection() and + receiver.getMethodName() = ["reset", "reload", "distinct"] + ) + ) + } + + ActiveRecordAssociation getAssociation() { + result = this.getReceiver().(ActiveRecordAssociationMethodCall).getAssociation() + } +} + +/** + * A call to an association method which yields ActiveRecord instances. + */ +private class ActiveRecordAssociationModelInstantiation extends ActiveRecordModelInstantiation instanceof ActiveRecordAssociationMethodCall { + override ActiveRecordModelClass getClass() { + result = this.(ActiveRecordAssociationMethodCall).getAssociation().getTargetClass() + } +} + +/** + * A call to a method on a collection proxy which yields ActiveRecord instances. + */ +private class ActiveRecordCollectionProxyModelInstantiation extends ActiveRecordModelInstantiation instanceof ActiveRecordCollectionProxyMethodCall { + override ActiveRecordModelClass getClass() { + result = this.(ActiveRecordCollectionProxyMethodCall).getAssociation().getTargetClass() + } +} 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 d4022297559..b483e30921a 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected +++ b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected @@ -2,15 +2,94 @@ activeRecordModelClasses | ActiveRecord.rb:1:1:3:3 | UserGroup | | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:17:1:21:3 | Admin | +| associations.rb:1:1:3:3 | Author | +| associations.rb:5:1:9:3 | Post | +| associations.rb:11:1:13:3 | Tag | +| associations.rb:15:1:17:3 | Comment | activeRecordInstances | ActiveRecord.rb:9:5:9:68 | call to find | | ActiveRecord.rb:13:5:13:40 | call to find_by | +| ActiveRecord.rb:13:5:13:46 | call to users | | ActiveRecord.rb:36:5:36:30 | call to find_by_name | | ActiveRecord.rb:55:5:57:7 | if ... | | ActiveRecord.rb:55:43:56:40 | then ... | | ActiveRecord.rb:56:7:56:40 | call to find_by | | ActiveRecord.rb:60:5:60:33 | call to find_by | | ActiveRecord.rb:62:5:62:34 | call to find | +| associations.rb:19:1:19:20 | ... = ... | +| associations.rb:19:1:19:20 | ... = ... | +| associations.rb:19:11:19:20 | call to new | +| associations.rb:21:1:21:28 | ... = ... | +| associations.rb:21:1:21:28 | ... = ... | +| associations.rb:21:9:21:15 | author1 | +| associations.rb:21:9:21:21 | call to posts | +| associations.rb:21:9:21:28 | call to create | +| associations.rb:23:1:23:32 | ... = ... | +| associations.rb:23:12:23:16 | post1 | +| associations.rb:23:12:23:25 | call to comments | +| associations.rb:23:12:23:32 | call to create | +| associations.rb:25:1:25:22 | ... = ... | +| associations.rb:25:1:25:22 | ... = ... | +| associations.rb:25:11:25:15 | post1 | +| associations.rb:25:11:25:22 | call to author | +| associations.rb:27:1:27:28 | ... = ... | +| associations.rb:27:1:27:28 | ... = ... | +| associations.rb:27:9:27:15 | author2 | +| associations.rb:27:9:27:21 | call to posts | +| associations.rb:27:9:27:28 | call to create | +| associations.rb:29:1:29:7 | author2 | +| associations.rb:29:1:29:13 | call to posts | +| associations.rb:29:18:29:22 | post2 | +| associations.rb:33:1:33:5 | post2 | +| associations.rb:33:1:33:14 | call to comments | +| associations.rb:33:1:33:21 | call to create | +| associations.rb:35:1:35:7 | author1 | +| associations.rb:35:1:35:13 | call to posts | +| associations.rb:35:1:35:20 | call to reload | +| associations.rb:35:1:35:27 | call to create | +| associations.rb:37:1:37:5 | post1 | +| associations.rb:38:1:38:5 | post1 | +| associations.rb:40:1:40:7 | author1 | +| associations.rb:40:1:40:13 | call to posts | +| associations.rb:40:1:40:25 | call to push | +| associations.rb:40:20:40:24 | post2 | +| associations.rb:41:1:41:7 | author1 | +| associations.rb:41:1:41:13 | call to posts | +| associations.rb:41:1:41:27 | call to concat | +| associations.rb:41:22:41:26 | post2 | +| associations.rb:42:1:42:7 | author1 | +| associations.rb:42:1:42:13 | call to posts | +| associations.rb:42:1:42:19 | call to build | +| associations.rb:43:1:43:7 | author1 | +| associations.rb:43:1:43:13 | call to posts | +| associations.rb:43:1:43:20 | call to create | +| associations.rb:44:1:44:7 | author1 | +| associations.rb:44:1:44:13 | call to posts | +| associations.rb:44:1:44:21 | call to create! | +| associations.rb:45:1:45:7 | author1 | +| associations.rb:45:1:45:13 | call to posts | +| associations.rb:45:1:45:20 | call to delete | +| associations.rb:46:1:46:7 | author1 | +| associations.rb:46:1:46:13 | call to posts | +| associations.rb:46:1:46:24 | call to delete_all | +| associations.rb:47:1:47:7 | author1 | +| associations.rb:47:1:47:13 | call to posts | +| associations.rb:47:1:47:21 | call to destroy | +| associations.rb:48:1:48:7 | author1 | +| associations.rb:48:1:48:13 | call to posts | +| associations.rb:48:1:48:25 | call to destroy_all | +| associations.rb:49:1:49:7 | author1 | +| associations.rb:49:1:49:13 | call to posts | +| associations.rb:49:1:49:22 | call to distinct | +| associations.rb:49:1:49:36 | call to find | +| associations.rb:50:1:50:7 | author1 | +| associations.rb:50:1:50:13 | call to posts | +| associations.rb:50:1:50:19 | call to reset | +| associations.rb:50:1:50:33 | call to find | +| associations.rb:51:1:51:7 | author1 | +| associations.rb:51:1:51:13 | call to posts | +| associations.rb:51:1:51:20 | call to reload | +| associations.rb:51:1:51:34 | call to find | activeRecordSqlExecutionRanges | ActiveRecord.rb:9:33:9:67 | "name='#{...}' and pass='#{...}'" | | ActiveRecord.rb:19:16:19:24 | condition | @@ -53,6 +132,13 @@ activeRecordModelClassMethodCalls | ActiveRecord.rb:92:5:92:71 | call to update | | ActiveRecord.rb:98:13:98:54 | call to annotate | | ActiveRecord.rb:102:13:102:77 | call to annotate | +| associations.rb:2:3:2:17 | call to has_many | +| associations.rb:6:3:6:20 | call to belongs_to | +| associations.rb:7:3:7:20 | call to has_many | +| associations.rb:8:3:8:31 | call to has_and_belongs_to_many | +| associations.rb:12:3:12:32 | call to has_and_belongs_to_many | +| associations.rb:16:3:16:18 | call to belongs_to | +| associations.rb:19:11:19:20 | call to new | potentiallyUnsafeSqlExecutingMethodCall | ActiveRecord.rb:9:5:9:68 | call to find | | ActiveRecord.rb:19:5:19:25 | call to destroy_by | @@ -68,10 +154,48 @@ potentiallyUnsafeSqlExecutingMethodCall activeRecordModelInstantiations | ActiveRecord.rb:9:5:9:68 | call to find | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:13:5:13:40 | call to find_by | ActiveRecord.rb:1:1:3:3 | UserGroup | +| ActiveRecord.rb:13:5:13:46 | call to users | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:36:5:36:30 | call to find_by_name | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:56:7:56:40 | call to find_by | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:60:5:60:33 | call to find_by | ActiveRecord.rb:5:1:15:3 | User | | ActiveRecord.rb:62:5:62:34 | call to find | ActiveRecord.rb:5:1:15:3 | User | +| associations.rb:19:11:19:20 | call to new | associations.rb:1:1:3:3 | Author | +| associations.rb:21:9:21:21 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:21:9:21:28 | call to create | associations.rb:5:1:9:3 | Post | +| associations.rb:23:12:23:25 | call to comments | associations.rb:15:1:17:3 | Comment | +| associations.rb:23:12:23:32 | call to create | associations.rb:15:1:17:3 | Comment | +| associations.rb:25:11:25:22 | call to author | associations.rb:1:1:3:3 | Author | +| associations.rb:27:9:27:21 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:27:9:27:28 | call to create | associations.rb:5:1:9:3 | Post | +| associations.rb:29:1:29:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:33:1:33:14 | call to comments | associations.rb:15:1:17:3 | Comment | +| associations.rb:33:1:33:21 | call to create | associations.rb:15:1:17:3 | Comment | +| associations.rb:35:1:35:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:35:1:35:20 | call to reload | associations.rb:5:1:9:3 | Post | +| associations.rb:40:1:40:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:40:1:40:25 | call to push | associations.rb:5:1:9:3 | Post | +| associations.rb:41:1:41:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:41:1:41:27 | call to concat | associations.rb:5:1:9:3 | Post | +| associations.rb:42:1:42:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:42:1:42:19 | call to build | associations.rb:5:1:9:3 | Post | +| associations.rb:43:1:43:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:43:1:43:20 | call to create | associations.rb:5:1:9:3 | Post | +| associations.rb:44:1:44:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:44:1:44:21 | call to create! | associations.rb:5:1:9:3 | Post | +| associations.rb:45:1:45:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:45:1:45:20 | call to delete | associations.rb:5:1:9:3 | Post | +| associations.rb:46:1:46:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:46:1:46:24 | call to delete_all | associations.rb:5:1:9:3 | Post | +| associations.rb:47:1:47:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:47:1:47:21 | call to destroy | associations.rb:5:1:9:3 | Post | +| associations.rb:48:1:48:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:48:1:48:25 | call to destroy_all | associations.rb:5:1:9:3 | Post | +| associations.rb:49:1:49:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:49:1:49:22 | call to distinct | associations.rb:5:1:9:3 | Post | +| associations.rb:50:1:50:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:50:1:50:19 | call to reset | associations.rb:5:1:9:3 | Post | +| associations.rb:51:1:51:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:51:1:51:20 | call to reload | associations.rb:5:1:9:3 | Post | persistentWriteAccesses | ActiveRecord.rb:72:5:72:24 | call to create | ActiveRecord.rb:72:18:72:23 | call to params | | ActiveRecord.rb:76:5:76:66 | call to create | ActiveRecord.rb:76:24:76:36 | ...[...] | diff --git a/ruby/ql/test/library-tests/frameworks/active_record/associations.rb b/ruby/ql/test/library-tests/frameworks/active_record/associations.rb new file mode 100644 index 00000000000..1fa671d1e1d --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/active_record/associations.rb @@ -0,0 +1,51 @@ +class Author < ActiveRecord::Base + has_many :posts +end + +class Post < ActiveRecord::Base + belongs_to :author + has_many :comments + has_and_belongs_to_many :tags +end + +class Tag < ActiveRecord::Base + has_and_belongs_to_many :posts +end + +class Comment < ActiveRecord::Base + belongs_to :post +end + +author1 = Author.new + +post1 = author1.posts.create + +comment1 = post1.comments.create + +author2 = post1.author + +post2 = author2.posts.create + +author2.posts << post2 + +# The final method call in this chain should not be recognised as an +# instantiation. +post2.comments.create.create + +author1.posts.reload.create + +post1.build_tag +post1.build_tag + +author1.posts.push(post2) +author1.posts.concat(post2) +author1.posts.build +author1.posts.create +author1.posts.create! +author1.posts.delete +author1.posts.delete_all +author1.posts.destroy +author1.posts.destroy_all +author1.posts.distinct.find(post_id) +author1.posts.reset.find(post_id) +author1.posts.reload.find(post_id) From 58b628b6d1f133849281602a447e03488462be9e Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Fri, 5 Aug 2022 11:59:33 +1200 Subject: [PATCH 656/736] Ruby: Add change note --- .../change-notes/2022-08-05-active-record-associations.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ruby/ql/lib/change-notes/2022-08-05-active-record-associations.md diff --git a/ruby/ql/lib/change-notes/2022-08-05-active-record-associations.md b/ruby/ql/lib/change-notes/2022-08-05-active-record-associations.md new file mode 100644 index 00000000000..9fa4d0a6cd5 --- /dev/null +++ b/ruby/ql/lib/change-notes/2022-08-05-active-record-associations.md @@ -0,0 +1,6 @@ +--- +category: minorAnalysis +--- +* Calls to methods generated by ActiveRecord associations are now recognised as + instantiations of ActiveRecord objects. This increases the sensitivity of + queries such as `rb/sql-injection` and `rb/stored-xss`. From 831f7224024deaf88bd72e6a346d30fa7b9f3967 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 9 Aug 2022 13:37:53 +1200 Subject: [PATCH 657/736] Ruby: Make room for new test --- .../active_record/ActiveRecord.expected | 96 +++++++++---------- .../frameworks/active_record/associations.rb | 2 + 2 files changed, 50 insertions(+), 48 deletions(-) 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 b483e30921a..e54eefefc1b 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected +++ b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected @@ -40,56 +40,56 @@ activeRecordInstances | associations.rb:29:1:29:7 | author2 | | associations.rb:29:1:29:13 | call to posts | | associations.rb:29:18:29:22 | post2 | -| associations.rb:33:1:33:5 | post2 | -| associations.rb:33:1:33:14 | call to comments | -| associations.rb:33:1:33:21 | call to create | -| associations.rb:35:1:35:7 | author1 | -| associations.rb:35:1:35:13 | call to posts | -| associations.rb:35:1:35:20 | call to reload | -| associations.rb:35:1:35:27 | call to create | -| associations.rb:37:1:37:5 | post1 | -| associations.rb:38:1:38:5 | post1 | -| associations.rb:40:1:40:7 | author1 | -| associations.rb:40:1:40:13 | call to posts | -| associations.rb:40:1:40:25 | call to push | -| associations.rb:40:20:40:24 | post2 | -| associations.rb:41:1:41:7 | author1 | -| associations.rb:41:1:41:13 | call to posts | -| associations.rb:41:1:41:27 | call to concat | -| associations.rb:41:22:41:26 | post2 | +| associations.rb:35:1:35:5 | post2 | +| associations.rb:35:1:35:14 | call to comments | +| associations.rb:35:1:35:21 | call to create | +| associations.rb:37:1:37:7 | author1 | +| associations.rb:37:1:37:13 | call to posts | +| associations.rb:37:1:37:20 | call to reload | +| associations.rb:37:1:37:27 | call to create | +| associations.rb:39:1:39:5 | post1 | +| associations.rb:40:1:40:5 | post1 | | associations.rb:42:1:42:7 | author1 | | associations.rb:42:1:42:13 | call to posts | -| associations.rb:42:1:42:19 | call to build | +| associations.rb:42:1:42:25 | call to push | +| associations.rb:42:20:42:24 | post2 | | associations.rb:43:1:43:7 | author1 | | associations.rb:43:1:43:13 | call to posts | -| associations.rb:43:1:43:20 | call to create | +| associations.rb:43:1:43:27 | call to concat | +| associations.rb:43:22:43:26 | post2 | | associations.rb:44:1:44:7 | author1 | | associations.rb:44:1:44:13 | call to posts | -| associations.rb:44:1:44:21 | call to create! | +| associations.rb:44:1:44:19 | call to build | | associations.rb:45:1:45:7 | author1 | | associations.rb:45:1:45:13 | call to posts | -| associations.rb:45:1:45:20 | call to delete | +| associations.rb:45:1:45:20 | call to create | | associations.rb:46:1:46:7 | author1 | | associations.rb:46:1:46:13 | call to posts | -| associations.rb:46:1:46:24 | call to delete_all | +| associations.rb:46:1:46:21 | call to create! | | associations.rb:47:1:47:7 | author1 | | associations.rb:47:1:47:13 | call to posts | -| associations.rb:47:1:47:21 | call to destroy | +| associations.rb:47:1:47:20 | call to delete | | associations.rb:48:1:48:7 | author1 | | associations.rb:48:1:48:13 | call to posts | -| associations.rb:48:1:48:25 | call to destroy_all | +| associations.rb:48:1:48:24 | call to delete_all | | associations.rb:49:1:49:7 | author1 | | associations.rb:49:1:49:13 | call to posts | -| associations.rb:49:1:49:22 | call to distinct | -| associations.rb:49:1:49:36 | call to find | +| associations.rb:49:1:49:21 | call to destroy | | associations.rb:50:1:50:7 | author1 | | associations.rb:50:1:50:13 | call to posts | -| associations.rb:50:1:50:19 | call to reset | -| associations.rb:50:1:50:33 | call to find | +| associations.rb:50:1:50:25 | call to destroy_all | | associations.rb:51:1:51:7 | author1 | | associations.rb:51:1:51:13 | call to posts | -| associations.rb:51:1:51:20 | call to reload | -| associations.rb:51:1:51:34 | call to find | +| associations.rb:51:1:51:22 | call to distinct | +| associations.rb:51:1:51:36 | call to find | +| associations.rb:52:1:52:7 | author1 | +| associations.rb:52:1:52:13 | call to posts | +| associations.rb:52:1:52:19 | call to reset | +| associations.rb:52:1:52:33 | call to find | +| associations.rb:53:1:53:7 | author1 | +| associations.rb:53:1:53:13 | call to posts | +| associations.rb:53:1:53:20 | call to reload | +| associations.rb:53:1:53:34 | call to find | activeRecordSqlExecutionRanges | ActiveRecord.rb:9:33:9:67 | "name='#{...}' and pass='#{...}'" | | ActiveRecord.rb:19:16:19:24 | condition | @@ -168,34 +168,34 @@ activeRecordModelInstantiations | associations.rb:27:9:27:21 | call to posts | associations.rb:5:1:9:3 | Post | | associations.rb:27:9:27:28 | call to create | associations.rb:5:1:9:3 | Post | | associations.rb:29:1:29:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:33:1:33:14 | call to comments | associations.rb:15:1:17:3 | Comment | -| associations.rb:33:1:33:21 | call to create | associations.rb:15:1:17:3 | Comment | -| associations.rb:35:1:35:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:35:1:35:20 | call to reload | associations.rb:5:1:9:3 | Post | -| associations.rb:40:1:40:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:40:1:40:25 | call to push | associations.rb:5:1:9:3 | Post | -| associations.rb:41:1:41:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:41:1:41:27 | call to concat | associations.rb:5:1:9:3 | Post | +| associations.rb:35:1:35:14 | call to comments | associations.rb:15:1:17:3 | Comment | +| associations.rb:35:1:35:21 | call to create | associations.rb:15:1:17:3 | Comment | +| associations.rb:37:1:37:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:37:1:37:20 | call to reload | associations.rb:5:1:9:3 | Post | | associations.rb:42:1:42:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:42:1:42:19 | call to build | associations.rb:5:1:9:3 | Post | +| associations.rb:42:1:42:25 | call to push | associations.rb:5:1:9:3 | Post | | associations.rb:43:1:43:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:43:1:43:20 | call to create | associations.rb:5:1:9:3 | Post | +| associations.rb:43:1:43:27 | call to concat | associations.rb:5:1:9:3 | Post | | associations.rb:44:1:44:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:44:1:44:21 | call to create! | associations.rb:5:1:9:3 | Post | +| associations.rb:44:1:44:19 | call to build | associations.rb:5:1:9:3 | Post | | associations.rb:45:1:45:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:45:1:45:20 | call to delete | associations.rb:5:1:9:3 | Post | +| associations.rb:45:1:45:20 | call to create | associations.rb:5:1:9:3 | Post | | associations.rb:46:1:46:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:46:1:46:24 | call to delete_all | associations.rb:5:1:9:3 | Post | +| associations.rb:46:1:46:21 | call to create! | associations.rb:5:1:9:3 | Post | | associations.rb:47:1:47:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:47:1:47:21 | call to destroy | associations.rb:5:1:9:3 | Post | +| associations.rb:47:1:47:20 | call to delete | associations.rb:5:1:9:3 | Post | | associations.rb:48:1:48:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:48:1:48:25 | call to destroy_all | associations.rb:5:1:9:3 | Post | +| associations.rb:48:1:48:24 | call to delete_all | associations.rb:5:1:9:3 | Post | | associations.rb:49:1:49:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:49:1:49:22 | call to distinct | associations.rb:5:1:9:3 | Post | +| associations.rb:49:1:49:21 | call to destroy | associations.rb:5:1:9:3 | Post | | associations.rb:50:1:50:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:50:1:50:19 | call to reset | associations.rb:5:1:9:3 | Post | +| associations.rb:50:1:50:25 | call to destroy_all | associations.rb:5:1:9:3 | Post | | associations.rb:51:1:51:13 | call to posts | associations.rb:5:1:9:3 | Post | -| associations.rb:51:1:51:20 | call to reload | associations.rb:5:1:9:3 | Post | +| associations.rb:51:1:51:22 | call to distinct | associations.rb:5:1:9:3 | Post | +| associations.rb:52:1:52:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:52:1:52:19 | call to reset | associations.rb:5:1:9:3 | Post | +| associations.rb:53:1:53:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:53:1:53:20 | call to reload | associations.rb:5:1:9:3 | Post | persistentWriteAccesses | ActiveRecord.rb:72:5:72:24 | call to create | ActiveRecord.rb:72:18:72:23 | call to params | | ActiveRecord.rb:76:5:76:66 | call to create | ActiveRecord.rb:76:24:76:36 | ...[...] | diff --git a/ruby/ql/test/library-tests/frameworks/active_record/associations.rb b/ruby/ql/test/library-tests/frameworks/active_record/associations.rb index 1fa671d1e1d..786a96d07aa 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/associations.rb +++ b/ruby/ql/test/library-tests/frameworks/active_record/associations.rb @@ -28,6 +28,8 @@ post2 = author2.posts.create author2.posts << post2 + + # The final method call in this chain should not be recognised as an # instantiation. post2.comments.create.create From e3115b5ed74dc55c5eb15b767661c867c683153d Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 9 Aug 2022 13:40:30 +1200 Subject: [PATCH 658/736] Ruby: Add test for other= --- .../frameworks/active_record/ActiveRecord.expected | 9 +++++++++ .../frameworks/active_record/associations.rb | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) 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 e54eefefc1b..e01a7800b8c 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected +++ b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected @@ -40,6 +40,13 @@ activeRecordInstances | associations.rb:29:1:29:7 | author2 | | associations.rb:29:1:29:13 | call to posts | | associations.rb:29:18:29:22 | post2 | +| associations.rb:31:1:31:5 | post1 | +| associations.rb:31:1:31:12 | __synth__0 | +| associations.rb:31:1:31:12 | call to author= | +| associations.rb:31:1:31:22 | ... | +| associations.rb:31:16:31:22 | ... = ... | +| associations.rb:31:16:31:22 | ... = ... | +| associations.rb:31:16:31:22 | author2 | | associations.rb:35:1:35:5 | post2 | | associations.rb:35:1:35:14 | call to comments | | associations.rb:35:1:35:21 | call to create | @@ -168,6 +175,7 @@ activeRecordModelInstantiations | associations.rb:27:9:27:21 | call to posts | associations.rb:5:1:9:3 | Post | | associations.rb:27:9:27:28 | call to create | associations.rb:5:1:9:3 | Post | | associations.rb:29:1:29:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:31:1:31:12 | call to author= | associations.rb:1:1:3:3 | Author | | associations.rb:35:1:35:14 | call to comments | associations.rb:15:1:17:3 | Comment | | associations.rb:35:1:35:21 | call to create | associations.rb:15:1:17:3 | Comment | | associations.rb:37:1:37:13 | call to posts | associations.rb:5:1:9:3 | Post | @@ -206,3 +214,4 @@ persistentWriteAccesses | ActiveRecord.rb:88:5:88:69 | call to update | ActiveRecord.rb:88:27:88:39 | ...[...] | | ActiveRecord.rb:88:5:88:69 | call to update | ActiveRecord.rb:88:52:88:68 | ...[...] | | ActiveRecord.rb:92:5:92:71 | call to update | ActiveRecord.rb:92:21:92:70 | call to [] | +| associations.rb:31:16:31:22 | ... = ... | associations.rb:31:16:31:22 | author2 | diff --git a/ruby/ql/test/library-tests/frameworks/active_record/associations.rb b/ruby/ql/test/library-tests/frameworks/active_record/associations.rb index 786a96d07aa..891ee45fb72 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/associations.rb +++ b/ruby/ql/test/library-tests/frameworks/active_record/associations.rb @@ -28,7 +28,7 @@ post2 = author2.posts.create author2.posts << post2 - +post1.author = author2 # The final method call in this chain should not be recognised as an # instantiation. From 22d7b046ab034d67c0440d831c2f617f68b74a74 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 9 Aug 2022 13:42:29 +1200 Subject: [PATCH 659/736] Ruby: Fix << --- ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll | 4 +++- .../frameworks/active_record/ActiveRecord.expected | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 996fb2ec1a8..a4994118b5c 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -618,7 +618,9 @@ private class ActiveRecordAssociationMethodCall extends DataFlow::CallNode { ( assoc.isCollection() and ( - this.getMethodName() = pluralize(model) + ["", "=", "<<"] + this.getMethodName() = pluralize(model) + ["", "="] + or + this.getMethodName() = "<<" or this.getMethodName() = model + ["_ids", "_ids="] ) 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 e01a7800b8c..a77e70879ac 100644 --- a/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected +++ b/ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.expected @@ -39,6 +39,7 @@ activeRecordInstances | associations.rb:27:9:27:28 | call to create | | associations.rb:29:1:29:7 | author2 | | associations.rb:29:1:29:13 | call to posts | +| associations.rb:29:1:29:22 | ... << ... | | associations.rb:29:18:29:22 | post2 | | associations.rb:31:1:31:5 | post1 | | associations.rb:31:1:31:12 | __synth__0 | @@ -175,6 +176,8 @@ activeRecordModelInstantiations | associations.rb:27:9:27:21 | call to posts | associations.rb:5:1:9:3 | Post | | associations.rb:27:9:27:28 | call to create | associations.rb:5:1:9:3 | Post | | associations.rb:29:1:29:13 | call to posts | associations.rb:5:1:9:3 | Post | +| associations.rb:29:1:29:22 | ... << ... | associations.rb:11:1:13:3 | Tag | +| associations.rb:29:1:29:22 | ... << ... | associations.rb:15:1:17:3 | Comment | | associations.rb:31:1:31:12 | call to author= | associations.rb:1:1:3:3 | Author | | associations.rb:35:1:35:14 | call to comments | associations.rb:15:1:17:3 | Comment | | associations.rb:35:1:35:21 | call to create | associations.rb:15:1:17:3 | Comment | From 1a92fc90e02303a2f6fc78101be0842f9240d13b Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Fri, 1 Jul 2022 11:18:14 +0200 Subject: [PATCH 660/736] C#: Add test to demonstrate missing dataflow for default constructors --- .../library-tests/dataflow/fields/C_ctor.cs | 42 +++++++++++++++++++ .../dataflow/fields/FieldFlow.expected | 28 +++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 csharp/ql/test/library-tests/dataflow/fields/C_ctor.cs diff --git a/csharp/ql/test/library-tests/dataflow/fields/C_ctor.cs b/csharp/ql/test/library-tests/dataflow/fields/C_ctor.cs new file mode 100644 index 00000000000..346c24068bb --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/fields/C_ctor.cs @@ -0,0 +1,42 @@ +public class C_no_ctor +{ + private Elem s1 = Util.Source(1); + + void M1() + { + C_no_ctor c = new C_no_ctor(); + c.M2(); + } + + public void M2() + { + Util.Sink(s1); // $ hasValueFlow=1 + } +} + +public class C_with_ctor +{ + private Elem s1 = Util.Source(1); + + void M1() + { + C_with_ctor c = new C_with_ctor(); + c.M2(); + } + + public C_with_ctor() { } + + public void M2() + { + Util.Sink(s1); // $ hasValueFlow=1 + } +} + +class Util +{ + public static void Sink(object o) { } + + public static T Source(object source) => throw null; +} + +public class Elem { } diff --git a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected index 9d18b7ebad4..7f98037c643 100644 --- a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected @@ -1,4 +1,5 @@ failures +| C_ctor.cs:13:24:13:42 | // ... | Missing result:hasValueFlow=1 | edges | A.cs:5:17:5:28 | call to method Source : C | A.cs:6:24:6:24 | access to local variable c : C | | A.cs:5:17:5:28 | call to method Source : C | A.cs:6:24:6:24 | access to local variable c : C | @@ -308,6 +309,18 @@ edges | C.cs:25:14:25:15 | this access [field s3] : Elem | C.cs:25:14:25:15 | access to field s3 | | C.cs:27:14:27:15 | this access [property s5] : Elem | C.cs:27:14:27:15 | access to property s5 | | C.cs:27:14:27:15 | this access [property s5] : Elem | C.cs:27:14:27:15 | access to property s5 | +| C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor [field s1] : Elem | +| C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor [field s1] : Elem | +| C_ctor.cs:19:23:19:42 | call to method Source : Elem | C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | +| C_ctor.cs:19:23:19:42 | call to method Source : Elem | C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | +| C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor [field s1] : Elem | C_ctor.cs:24:9:24:9 | access to local variable c [field s1] : Elem | +| C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor [field s1] : Elem | C_ctor.cs:24:9:24:9 | access to local variable c [field s1] : Elem | +| C_ctor.cs:24:9:24:9 | access to local variable c [field s1] : Elem | C_ctor.cs:29:17:29:18 | this [field s1] : Elem | +| C_ctor.cs:24:9:24:9 | access to local variable c [field s1] : Elem | C_ctor.cs:29:17:29:18 | this [field s1] : Elem | +| C_ctor.cs:29:17:29:18 | this [field s1] : Elem | C_ctor.cs:31:19:31:20 | this access [field s1] : Elem | +| C_ctor.cs:29:17:29:18 | this [field s1] : Elem | C_ctor.cs:31:19:31:20 | this access [field s1] : Elem | +| C_ctor.cs:31:19:31:20 | this access [field s1] : Elem | C_ctor.cs:31:19:31:20 | access to field s1 | +| C_ctor.cs:31:19:31:20 | this access [field s1] : Elem | C_ctor.cs:31:19:31:20 | access to field s1 | | D.cs:8:9:8:11 | this [field trivialPropField] : Object | D.cs:8:22:8:25 | this access [field trivialPropField] : Object | | D.cs:8:9:8:11 | this [field trivialPropField] : Object | D.cs:8:22:8:25 | this access [field trivialPropField] : Object | | D.cs:8:22:8:25 | this access [field trivialPropField] : Object | D.cs:8:22:8:42 | access to field trivialPropField : Object | @@ -1235,6 +1248,20 @@ nodes | C.cs:27:14:27:15 | this access [property s5] : Elem | semmle.label | this access [property s5] : Elem | | C.cs:28:14:28:15 | access to property s6 | semmle.label | access to property s6 | | C.cs:28:14:28:15 | access to property s6 | semmle.label | access to property s6 | +| C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | semmle.label | [post] this access [field s1] : Elem | +| C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | semmle.label | [post] this access [field s1] : Elem | +| C_ctor.cs:19:23:19:42 | call to method Source : Elem | semmle.label | call to method Source : Elem | +| C_ctor.cs:19:23:19:42 | call to method Source : Elem | semmle.label | call to method Source : Elem | +| C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor [field s1] : Elem | semmle.label | object creation of type C_with_ctor [field s1] : Elem | +| C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor [field s1] : Elem | semmle.label | object creation of type C_with_ctor [field s1] : Elem | +| C_ctor.cs:24:9:24:9 | access to local variable c [field s1] : Elem | semmle.label | access to local variable c [field s1] : Elem | +| C_ctor.cs:24:9:24:9 | access to local variable c [field s1] : Elem | semmle.label | access to local variable c [field s1] : Elem | +| C_ctor.cs:29:17:29:18 | this [field s1] : Elem | semmle.label | this [field s1] : Elem | +| C_ctor.cs:29:17:29:18 | this [field s1] : Elem | semmle.label | this [field s1] : Elem | +| C_ctor.cs:31:19:31:20 | access to field s1 | semmle.label | access to field s1 | +| C_ctor.cs:31:19:31:20 | access to field s1 | semmle.label | access to field s1 | +| C_ctor.cs:31:19:31:20 | this access [field s1] : Elem | semmle.label | this access [field s1] : Elem | +| C_ctor.cs:31:19:31:20 | this access [field s1] : Elem | semmle.label | this access [field s1] : Elem | | D.cs:8:9:8:11 | this [field trivialPropField] : Object | semmle.label | this [field trivialPropField] : Object | | D.cs:8:9:8:11 | this [field trivialPropField] : Object | semmle.label | this [field trivialPropField] : Object | | D.cs:8:22:8:25 | this access [field trivialPropField] : Object | semmle.label | this access [field trivialPropField] : Object | @@ -1998,6 +2025,7 @@ subpaths | C.cs:26:14:26:15 | access to field s4 | C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | $@ | C.cs:6:30:6:44 | call to method Source : Elem | call to method Source : Elem | | C.cs:27:14:27:15 | access to property s5 | C.cs:7:37:7:51 | call to method Source : Elem | C.cs:27:14:27:15 | access to property s5 | $@ | C.cs:7:37:7:51 | call to method Source : Elem | call to method Source : Elem | | C.cs:28:14:28:15 | access to property s6 | C.cs:8:30:8:44 | call to method Source : Elem | C.cs:28:14:28:15 | access to property s6 | $@ | C.cs:8:30:8:44 | call to method Source : Elem | call to method Source : Elem | +| C_ctor.cs:31:19:31:20 | access to field s1 | C_ctor.cs:19:23:19:42 | call to method Source : Elem | C_ctor.cs:31:19:31:20 | access to field s1 | $@ | C_ctor.cs:19:23:19:42 | call to method Source : Elem | call to method Source : Elem | | D.cs:32:14:32:23 | access to property AutoProp | D.cs:29:17:29:33 | call to method Source : Object | D.cs:32:14:32:23 | access to property AutoProp | $@ | D.cs:29:17:29:33 | call to method Source : Object | call to method Source : Object | | D.cs:39:14:39:26 | access to property TrivialProp | D.cs:37:26:37:42 | call to method Source : Object | D.cs:39:14:39:26 | access to property TrivialProp | $@ | D.cs:37:26:37:42 | call to method Source : Object | call to method Source : Object | | D.cs:40:14:40:31 | access to field trivialPropField | D.cs:37:26:37:42 | call to method Source : Object | D.cs:40:14:40:31 | access to field trivialPropField | $@ | D.cs:37:26:37:42 | call to method Source : Object | call to method Source : Object | From 36c913061c1b8420538974fc5866850fc35710cc Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Fri, 1 Jul 2022 11:21:36 +0200 Subject: [PATCH 661/736] C#: Fix dataflow for default constructors --- .../dataflow/internal/DataFlowDispatch.qll | 11 ++++++++ .../dataflow/fields/FieldFlow.expected | 28 ++++++++++++++++++- 2 files changed, 38 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 d35b741fb0c..c0882219058 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -4,6 +4,7 @@ private import dotnet private import DataFlowImplCommon as DataFlowImplCommon private import DataFlowPublic private import DataFlowPrivate +private import semmle.code.csharp.controlflow.internal.Splitting private import FlowSummaryImpl as FlowSummaryImpl private import semmle.code.csharp.dataflow.FlowSummary as FlowSummary private import semmle.code.csharp.dataflow.ExternalFlow @@ -39,6 +40,16 @@ DotNet::Callable getCallableForDataFlow(DotNet::Callable c) { // C# callable without C# implementation in the database unboundDecl.matchesHandle(result.(CIL::Callable)) ) + or + result = c.getUnboundDeclaration() and + isDefaultConstructorWithMemberInit(result) +} + +private predicate isDefaultConstructorWithMemberInit(InstanceConstructor c) { + c.isUnboundDeclaration() and + c.getFile().fromSource() and + not c.hasBody() and + InitializerSplitting::constructorInitializes(c, _) } /** diff --git a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected index 7f98037c643..7f16574b384 100644 --- a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected @@ -1,5 +1,4 @@ failures -| C_ctor.cs:13:24:13:42 | // ... | Missing result:hasValueFlow=1 | edges | A.cs:5:17:5:28 | call to method Source : C | A.cs:6:24:6:24 | access to local variable c : C | | A.cs:5:17:5:28 | call to method Source : C | A.cs:6:24:6:24 | access to local variable c : C | @@ -309,6 +308,18 @@ edges | C.cs:25:14:25:15 | this access [field s3] : Elem | C.cs:25:14:25:15 | access to field s3 | | C.cs:27:14:27:15 | this access [property s5] : Elem | C.cs:27:14:27:15 | access to property s5 | | C.cs:27:14:27:15 | this access [property s5] : Elem | C.cs:27:14:27:15 | access to property s5 | +| C_ctor.cs:3:18:3:19 | [post] this access [field s1] : Elem | C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor [field s1] : Elem | +| C_ctor.cs:3:18:3:19 | [post] this access [field s1] : Elem | C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor [field s1] : Elem | +| C_ctor.cs:3:23:3:42 | call to method Source : Elem | C_ctor.cs:3:18:3:19 | [post] this access [field s1] : Elem | +| C_ctor.cs:3:23:3:42 | call to method Source : Elem | C_ctor.cs:3:18:3:19 | [post] this access [field s1] : Elem | +| C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor [field s1] : Elem | C_ctor.cs:8:9:8:9 | access to local variable c [field s1] : Elem | +| C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor [field s1] : Elem | C_ctor.cs:8:9:8:9 | access to local variable c [field s1] : Elem | +| C_ctor.cs:8:9:8:9 | access to local variable c [field s1] : Elem | C_ctor.cs:11:17:11:18 | this [field s1] : Elem | +| C_ctor.cs:8:9:8:9 | access to local variable c [field s1] : Elem | C_ctor.cs:11:17:11:18 | this [field s1] : Elem | +| C_ctor.cs:11:17:11:18 | this [field s1] : Elem | C_ctor.cs:13:19:13:20 | this access [field s1] : Elem | +| C_ctor.cs:11:17:11:18 | this [field s1] : Elem | C_ctor.cs:13:19:13:20 | this access [field s1] : Elem | +| C_ctor.cs:13:19:13:20 | this access [field s1] : Elem | C_ctor.cs:13:19:13:20 | access to field s1 | +| C_ctor.cs:13:19:13:20 | this access [field s1] : Elem | C_ctor.cs:13:19:13:20 | access to field s1 | | C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor [field s1] : Elem | | C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor [field s1] : Elem | | C_ctor.cs:19:23:19:42 | call to method Source : Elem | C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | @@ -1248,6 +1259,20 @@ nodes | C.cs:27:14:27:15 | this access [property s5] : Elem | semmle.label | this access [property s5] : Elem | | C.cs:28:14:28:15 | access to property s6 | semmle.label | access to property s6 | | C.cs:28:14:28:15 | access to property s6 | semmle.label | access to property s6 | +| C_ctor.cs:3:18:3:19 | [post] this access [field s1] : Elem | semmle.label | [post] this access [field s1] : Elem | +| C_ctor.cs:3:18:3:19 | [post] this access [field s1] : Elem | semmle.label | [post] this access [field s1] : Elem | +| C_ctor.cs:3:23:3:42 | call to method Source : Elem | semmle.label | call to method Source : Elem | +| C_ctor.cs:3:23:3:42 | call to method Source : Elem | semmle.label | call to method Source : Elem | +| C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor [field s1] : Elem | semmle.label | object creation of type C_no_ctor [field s1] : Elem | +| C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor [field s1] : Elem | semmle.label | object creation of type C_no_ctor [field s1] : Elem | +| C_ctor.cs:8:9:8:9 | access to local variable c [field s1] : Elem | semmle.label | access to local variable c [field s1] : Elem | +| C_ctor.cs:8:9:8:9 | access to local variable c [field s1] : Elem | semmle.label | access to local variable c [field s1] : Elem | +| C_ctor.cs:11:17:11:18 | this [field s1] : Elem | semmle.label | this [field s1] : Elem | +| C_ctor.cs:11:17:11:18 | this [field s1] : Elem | semmle.label | this [field s1] : Elem | +| C_ctor.cs:13:19:13:20 | access to field s1 | semmle.label | access to field s1 | +| C_ctor.cs:13:19:13:20 | access to field s1 | semmle.label | access to field s1 | +| C_ctor.cs:13:19:13:20 | this access [field s1] : Elem | semmle.label | this access [field s1] : Elem | +| C_ctor.cs:13:19:13:20 | this access [field s1] : Elem | semmle.label | this access [field s1] : Elem | | C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | semmle.label | [post] this access [field s1] : Elem | | C_ctor.cs:19:18:19:19 | [post] this access [field s1] : Elem | semmle.label | [post] this access [field s1] : Elem | | C_ctor.cs:19:23:19:42 | call to method Source : Elem | semmle.label | call to method Source : Elem | @@ -2025,6 +2050,7 @@ subpaths | C.cs:26:14:26:15 | access to field s4 | C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | $@ | C.cs:6:30:6:44 | call to method Source : Elem | call to method Source : Elem | | C.cs:27:14:27:15 | access to property s5 | C.cs:7:37:7:51 | call to method Source : Elem | C.cs:27:14:27:15 | access to property s5 | $@ | C.cs:7:37:7:51 | call to method Source : Elem | call to method Source : Elem | | C.cs:28:14:28:15 | access to property s6 | C.cs:8:30:8:44 | call to method Source : Elem | C.cs:28:14:28:15 | access to property s6 | $@ | C.cs:8:30:8:44 | call to method Source : Elem | call to method Source : Elem | +| C_ctor.cs:13:19:13:20 | access to field s1 | C_ctor.cs:3:23:3:42 | call to method Source : Elem | C_ctor.cs:13:19:13:20 | access to field s1 | $@ | C_ctor.cs:3:23:3:42 | call to method Source : Elem | call to method Source : Elem | | C_ctor.cs:31:19:31:20 | access to field s1 | C_ctor.cs:19:23:19:42 | call to method Source : Elem | C_ctor.cs:31:19:31:20 | access to field s1 | $@ | C_ctor.cs:19:23:19:42 | call to method Source : Elem | call to method Source : Elem | | D.cs:32:14:32:23 | access to property AutoProp | D.cs:29:17:29:33 | call to method Source : Object | D.cs:32:14:32:23 | access to property AutoProp | $@ | D.cs:29:17:29:33 | call to method Source : Object | call to method Source : Object | | D.cs:39:14:39:26 | access to property TrivialProp | D.cs:37:26:37:42 | call to method Source : Object | D.cs:39:14:39:26 | access to property TrivialProp | $@ | D.cs:37:26:37:42 | call to method Source : Object | call to method Source : Object | From dd465e739bbb4e39c0f2bc51bc43f33f625f2ea9 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 3 Aug 2022 10:41:44 +0200 Subject: [PATCH 662/736] Code review suggestion --- .../dataflow/internal/DataFlowDispatch.qll | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) 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 c0882219058..76c018df03d 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -4,7 +4,6 @@ private import dotnet private import DataFlowImplCommon as DataFlowImplCommon private import DataFlowPublic private import DataFlowPrivate -private import semmle.code.csharp.controlflow.internal.Splitting private import FlowSummaryImpl as FlowSummaryImpl private import semmle.code.csharp.dataflow.FlowSummary as FlowSummary private import semmle.code.csharp.dataflow.ExternalFlow @@ -22,7 +21,13 @@ private import semmle.code.csharp.frameworks.system.collections.Generic */ DotNet::Callable getCallableForDataFlow(DotNet::Callable c) { exists(DotNet::Callable unboundDecl | unboundDecl = c.getUnboundDeclaration() | - result.hasBody() and + ( + result.hasBody() + or + // take synthesized bodies into account, e.g. implicit constructors + // with field initializer assignments + result = any(ControlFlow::Nodes::ElementNode n).getEnclosingCallable() + ) and if unboundDecl.getFile().fromSource() then // C# callable with C# implementation in the database @@ -40,16 +45,6 @@ DotNet::Callable getCallableForDataFlow(DotNet::Callable c) { // C# callable without C# implementation in the database unboundDecl.matchesHandle(result.(CIL::Callable)) ) - or - result = c.getUnboundDeclaration() and - isDefaultConstructorWithMemberInit(result) -} - -private predicate isDefaultConstructorWithMemberInit(InstanceConstructor c) { - c.isUnboundDeclaration() and - c.getFile().fromSource() and - not c.hasBody() and - InitializerSplitting::constructorInitializes(c, _) } /** From 2cab1ed076e9ce2df4203ed86a8b506134ad2c0a Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 9 Aug 2022 07:59:21 +0200 Subject: [PATCH 663/736] Fix path of `fetch-codeql` --- .github/workflows/csv-coverage-timeseries.yml | 2 +- .github/workflows/csv-coverage-update.yml | 2 +- .github/workflows/csv-coverage.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/csv-coverage-timeseries.yml b/.github/workflows/csv-coverage-timeseries.yml index ea216f68949..42fd4711dac 100644 --- a/.github/workflows/csv-coverage-timeseries.yml +++ b/.github/workflows/csv-coverage-timeseries.yml @@ -22,7 +22,7 @@ jobs: with: python-version: 3.8 - name: Download CodeQL CLI - uses: ./.github/actions/fetch-codeql + uses: ./script/.github/actions/fetch-codeql - name: Build modeled package list run: | python script/misc/scripts/library-coverage/generate-timeseries.py codeqlModels diff --git a/.github/workflows/csv-coverage-update.yml b/.github/workflows/csv-coverage-update.yml index 1de2149ce2e..6474044c483 100644 --- a/.github/workflows/csv-coverage-update.yml +++ b/.github/workflows/csv-coverage-update.yml @@ -26,7 +26,7 @@ jobs: with: python-version: 3.8 - name: Download CodeQL CLI - uses: ./.github/actions/fetch-codeql + uses: ./ql/.github/actions/fetch-codeql - name: Generate coverage files run: | python ql/misc/scripts/library-coverage/generate-report.py ci ql ql diff --git a/.github/workflows/csv-coverage.yml b/.github/workflows/csv-coverage.yml index e829957a0d3..e330490b69b 100644 --- a/.github/workflows/csv-coverage.yml +++ b/.github/workflows/csv-coverage.yml @@ -26,7 +26,7 @@ jobs: with: python-version: 3.8 - name: Download CodeQL CLI - uses: ./.github/actions/fetch-codeql + uses: ./script/.github/actions/fetch-codeql - name: Build modeled package list run: | python script/misc/scripts/library-coverage/generate-report.py ci codeqlModels script From 27b699df33468ec8282cc47798cb9382ef0852f2 Mon Sep 17 00:00:00 2001 From: yo-h <55373593+yo-h@users.noreply.github.com> Date: Wed, 1 Sep 2021 16:30:57 -0400 Subject: [PATCH 664/736] Java: adjust test `options` for JDK 17 upgrade --- java/ql/test/library-tests/printAst/options | 2 +- java/ql/test/library-tests/ssa/options | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/test/library-tests/printAst/options b/java/ql/test/library-tests/printAst/options index e41003a6e3c..a2f4d45311b 100644 --- a/java/ql/test/library-tests/printAst/options +++ b/java/ql/test/library-tests/printAst/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args --enable-preview -source 16 -target 16 +//semmle-extractor-options: --javac-args -source 17 -target 17 diff --git a/java/ql/test/library-tests/ssa/options b/java/ql/test/library-tests/ssa/options index e41003a6e3c..a2f4d45311b 100644 --- a/java/ql/test/library-tests/ssa/options +++ b/java/ql/test/library-tests/ssa/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args --enable-preview -source 16 -target 16 +//semmle-extractor-options: --javac-args -source 17 -target 17 From 0bf7e075e5cc418474fc8ec06cdc3556acb703db Mon Sep 17 00:00:00 2001 From: yo-h <55373593+yo-h@users.noreply.github.com> Date: Fri, 26 Nov 2021 17:20:29 -0500 Subject: [PATCH 665/736] Java 17: adjust expected test output --- .../literals/booleanLiterals/booleanLiterals.expected | 2 +- .../library-tests/literals/charLiterals/charLiterals.expected | 2 +- .../literals/doubleLiterals/doubleLiterals.expected | 2 +- .../literals/floatLiterals/floatLiterals.expected | 2 +- .../literals/integerLiterals/integerLiterals.expected | 2 +- .../library-tests/literals/longLiterals/longLiterals.expected | 2 +- .../library-tests/literals/nullLiterals/nullLiterals.expected | 2 +- .../literals/stringLiterals/stringLiterals.expected | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/java/ql/test/library-tests/literals/booleanLiterals/booleanLiterals.expected b/java/ql/test/library-tests/literals/booleanLiterals/booleanLiterals.expected index 75acbb8d07f..72740fc902b 100644 --- a/java/ql/test/library-tests/literals/booleanLiterals/booleanLiterals.expected +++ b/java/ql/test/library-tests/literals/booleanLiterals/booleanLiterals.expected @@ -1,6 +1,6 @@ | BooleanLiterals.java:5:3:5:6 | true | true | true | | BooleanLiterals.java:6:3:6:7 | false | false | false | -| BooleanLiterals.java:8:8:8:26 | 4\\u0072\\u0075\\u0065 | true | true | +| BooleanLiterals.java:8:3:8:26 | \\u0074\\u0072\\u0075\\u0065 | true | true | | BooleanLiterals.java:13:3:13:6 | true | true | true | | BooleanLiterals.java:13:11:13:14 | true | true | true | | BooleanLiterals.java:14:3:14:7 | false | false | false | diff --git a/java/ql/test/library-tests/literals/charLiterals/charLiterals.expected b/java/ql/test/library-tests/literals/charLiterals/charLiterals.expected index 07a8522ed0a..f029e7c3ddd 100644 --- a/java/ql/test/library-tests/literals/charLiterals/charLiterals.expected +++ b/java/ql/test/library-tests/literals/charLiterals/charLiterals.expected @@ -13,7 +13,7 @@ | CharLiterals.java:18:3:18:10 | '\\uDC00' | \ufffd | 56320 | | CharLiterals.java:20:3:20:16 | '\\u005C\\u005C' | \\ | 92 | | CharLiterals.java:21:3:21:16 | '\\u005C\\u0027' | ' | 39 | -| CharLiterals.java:22:8:22:15 | 7a\\u0027 | a | 97 | +| CharLiterals.java:22:3:22:15 | \\u0027a\\u0027 | a | 97 | | CharLiterals.java:27:4:27:6 | 'a' | a | 97 | | CharLiterals.java:28:4:28:6 | 'a' | a | 97 | | CharLiterals.java:33:3:33:5 | 'a' | a | 97 | diff --git a/java/ql/test/library-tests/literals/doubleLiterals/doubleLiterals.expected b/java/ql/test/library-tests/literals/doubleLiterals/doubleLiterals.expected index 574ba90a98f..78fe1012d28 100644 --- a/java/ql/test/library-tests/literals/doubleLiterals/doubleLiterals.expected +++ b/java/ql/test/library-tests/literals/doubleLiterals/doubleLiterals.expected @@ -12,7 +12,7 @@ | DoubleLiterals.java:17:3:17:10 | 4.9e-324 | 4.9E-324 | 4.9E-324 | | DoubleLiterals.java:18:3:18:28 | 0x0.0_0000_0000_0001P-1022 | 4.9E-324 | 4.9E-324 | | DoubleLiterals.java:19:3:19:13 | 0x1.0P-1074 | 4.9E-324 | 4.9E-324 | -| DoubleLiterals.java:21:8:21:20 | 0\\u002E\\u0030 | 0.0 | 0.0 | +| DoubleLiterals.java:21:3:21:20 | \\u0030\\u002E\\u0030 | 0.0 | 0.0 | | DoubleLiterals.java:26:4:26:6 | 0.0 | 0.0 | 0.0 | | DoubleLiterals.java:27:4:27:6 | 0.0 | 0.0 | 0.0 | | DoubleLiterals.java:28:4:28:6 | 1.0 | 1.0 | 1.0 | diff --git a/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.expected b/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.expected index c1a499f0f52..b6165d236f7 100644 --- a/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.expected +++ b/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.expected @@ -11,7 +11,7 @@ | FloatLiterals.java:16:3:16:10 | 1.4e-45f | 1.4E-45 | 1.4E-45 | | FloatLiterals.java:17:3:17:18 | 0x0.000002P-126f | 1.4E-45 | 1.4E-45 | | FloatLiterals.java:18:3:18:13 | 0x1.0P-149f | 1.4E-45 | 1.4E-45 | -| FloatLiterals.java:20:8:20:26 | 0\\u002E\\u0030\\u0066 | 0.0 | 0.0 | +| FloatLiterals.java:20:3:20:26 | \\u0030\\u002E\\u0030\\u0066 | 0.0 | 0.0 | | FloatLiterals.java:25:4:25:6 | 0.f | 0.0 | 0.0 | | FloatLiterals.java:26:4:26:6 | 0.f | 0.0 | 0.0 | | FloatLiterals.java:27:4:27:7 | 1.0f | 1.0 | 1.0 | diff --git a/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.expected b/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.expected index 3ff7870ca66..ba110536136 100644 --- a/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.expected +++ b/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.expected @@ -18,7 +18,7 @@ | IntegerLiterals.java:23:3:23:13 | 0xffff_ffff | -1 | -1 | | IntegerLiterals.java:24:3:24:16 | 0377_7777_7777 | -1 | -1 | | IntegerLiterals.java:25:3:25:43 | 0b1111_1111_1111_1111_1111_1111_1111_1111 | -1 | -1 | -| IntegerLiterals.java:27:8:27:8 | 0 | 0 | 0 | +| IntegerLiterals.java:27:3:27:8 | \\u0030 | 0 | 0 | | IntegerLiterals.java:32:4:32:4 | 0 | 0 | 0 | | IntegerLiterals.java:33:4:33:4 | 0 | 0 | 0 | | IntegerLiterals.java:34:4:34:4 | 1 | 1 | 1 | diff --git a/java/ql/test/library-tests/literals/longLiterals/longLiterals.expected b/java/ql/test/library-tests/literals/longLiterals/longLiterals.expected index d020a8f1c87..2ad0b033204 100644 --- a/java/ql/test/library-tests/literals/longLiterals/longLiterals.expected +++ b/java/ql/test/library-tests/literals/longLiterals/longLiterals.expected @@ -18,7 +18,7 @@ | LongLiterals.java:23:3:23:24 | 0xffff_ffff_ffff_ffffL | -1 | | LongLiterals.java:24:3:24:31 | 017_7777_7777_7777_7777_7777L | -1 | | LongLiterals.java:25:3:25:84 | 0b1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111L | -1 | -| LongLiterals.java:27:8:27:14 | 0\\u004C | 0 | +| LongLiterals.java:27:3:27:14 | \\u0030\\u004C | 0 | | LongLiterals.java:32:4:32:5 | 0L | 0 | | LongLiterals.java:33:4:33:5 | 0L | 0 | | LongLiterals.java:34:4:34:5 | 1L | 1 | diff --git a/java/ql/test/library-tests/literals/nullLiterals/nullLiterals.expected b/java/ql/test/library-tests/literals/nullLiterals/nullLiterals.expected index 0401876d07c..cee648bd7ec 100644 --- a/java/ql/test/library-tests/literals/nullLiterals/nullLiterals.expected +++ b/java/ql/test/library-tests/literals/nullLiterals/nullLiterals.expected @@ -1,3 +1,3 @@ | NullLiterals.java:5:3:5:6 | null | null | -| NullLiterals.java:7:8:7:26 | null | null | +| NullLiterals.java:7:3:7:26 | null | null | | NullLiterals.java:12:12:12:15 | null | null | diff --git a/java/ql/test/library-tests/literals/stringLiterals/stringLiterals.expected b/java/ql/test/library-tests/literals/stringLiterals/stringLiterals.expected index ec2c2e29c85..5ce440d6a7e 100644 --- a/java/ql/test/library-tests/literals/stringLiterals/stringLiterals.expected +++ b/java/ql/test/library-tests/literals/stringLiterals/stringLiterals.expected @@ -21,7 +21,7 @@ | StringLiterals.java:29:3:29:10 | "\\uDC00" | \ufffd | | | StringLiterals.java:30:3:30:31 | "hello\\uD800hello\\uDC00world" | hello\ufffdhello\ufffdworld | | | StringLiterals.java:32:3:32:16 | "\\u005C\\u0022" | " | | -| StringLiterals.java:33:8:33:20 | 2\\u0061\\u0022 | a | | +| StringLiterals.java:33:3:33:20 | \\u0022\\u0061\\u0022 | a | | | StringLiterals.java:38:3:40:5 | """ \t \n\t\ttest "text" and escaped \\u0022\n\t\t""" | test "text" and escaped "\n | text-block | | StringLiterals.java:42:3:44:5 | """\n\t\t\tindented\n\t\t""" | \tindented\n | text-block | | StringLiterals.java:45:3:47:5 | """\n\tno indentation last line\n\t\t""" | no indentation last line\n | text-block | @@ -35,7 +35,7 @@ | StringLiterals.java:70:3:71:18 | """\n\t\t3 quotes:""\\"""" | 3 quotes:""" | text-block | | StringLiterals.java:72:3:75:5 | """\n\t\tline \\\n\t\tcontinuation \\\n\t\t""" | line continuation | text-block | | StringLiterals.java:76:3:80:5 | """\n\t\tExplicit line breaks:\\n\n\t\t\\r\\n\n\t\t\\r\n\t\t""" | Explicit line breaks:\n\n\r\n\n\r\n | text-block | -| StringLiterals.java:83:10:85:16 | 2"\\u0022\n\t\ttest\n\t\t\\u0022\\uu0022" | test\n | | +| StringLiterals.java:83:3:85:16 | \\uuu0022"\\u0022\n\t\ttest\n\t\t\\u0022\\uu0022" | test\n | | | StringLiterals.java:91:3:91:19 | "hello" + "world" | helloworld | | | StringLiterals.java:92:3:93:20 | """\n\t\thello""" + "world" | helloworld | text-block | | StringLiterals.java:94:10:94:12 | "a" | a | | From c46b54b9c2daa9ace7ddf33857b741f262cdd5c7 Mon Sep 17 00:00:00 2001 From: yo-h <55373593+yo-h@users.noreply.github.com> Date: Fri, 26 Nov 2021 17:22:05 -0500 Subject: [PATCH 666/736] Java 17: exclude non-source locations in some tests --- .../dataflow/modulus-analysis/ModulusAnalysis.ql | 2 +- .../dataflow/range-analysis/RangeAnalysis.ql | 2 +- .../library-tests/literals/floatLiterals/floatLiterals.ql | 6 ++++++ .../literals/integerLiterals/integerLiterals.ql | 8 +++++++- .../literals/literals-numeric/negativeNumericLiterals.ql | 8 +++++++- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/java/ql/test/library-tests/dataflow/modulus-analysis/ModulusAnalysis.ql b/java/ql/test/library-tests/dataflow/modulus-analysis/ModulusAnalysis.ql index b9a71b74412..93e95da4bbe 100644 --- a/java/ql/test/library-tests/dataflow/modulus-analysis/ModulusAnalysis.ql +++ b/java/ql/test/library-tests/dataflow/modulus-analysis/ModulusAnalysis.ql @@ -3,5 +3,5 @@ import semmle.code.java.dataflow.ModulusAnalysis import semmle.code.java.dataflow.Bound from Expr e, Bound b, int delta, int mod -where exprModulus(e, b, delta, mod) +where exprModulus(e, b, delta, mod) and e.getCompilationUnit().fromSource() select e, b.toString(), delta, mod diff --git a/java/ql/test/library-tests/dataflow/range-analysis/RangeAnalysis.ql b/java/ql/test/library-tests/dataflow/range-analysis/RangeAnalysis.ql index f5f84a58d1f..56a9c81b5f9 100644 --- a/java/ql/test/library-tests/dataflow/range-analysis/RangeAnalysis.ql +++ b/java/ql/test/library-tests/dataflow/range-analysis/RangeAnalysis.ql @@ -8,5 +8,5 @@ private string getDirectionString(boolean d) { } from Expr e, Bound b, int delta, boolean upper, Reason reason -where bounded(e, b, delta, upper, reason) +where bounded(e, b, delta, upper, reason) and e.getCompilationUnit().fromSource() select e, b.toString(), delta, getDirectionString(upper), reason diff --git a/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql b/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql index 69051a50fe9..ff8056ed3f7 100644 --- a/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql +++ b/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql @@ -1,4 +1,10 @@ import semmle.code.java.Expr +class SrcFloatingPointLiteral extends FloatLiteral { + SrcFloatingPointLiteral() { + this.getCompilationUnit().fromSource() + } +} + from FloatLiteral lit select lit, lit.getValue(), lit.getFloatValue() diff --git a/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.ql b/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.ql index 264f5b77b99..aa0d68d6c55 100644 --- a/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.ql +++ b/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.ql @@ -1,4 +1,10 @@ import semmle.code.java.Expr -from IntegerLiteral lit +class SrcIntegerLiteral extends IntegerLiteral { + SrcIntegerLiteral() { + this.getCompilationUnit().fromSource() + } +} + +from SrcIntegerLiteral lit select lit, lit.getValue(), lit.getIntValue() diff --git a/java/ql/test/library-tests/literals/literals-numeric/negativeNumericLiterals.ql b/java/ql/test/library-tests/literals/literals-numeric/negativeNumericLiterals.ql index f8125960983..969b72f7c29 100644 --- a/java/ql/test/library-tests/literals/literals-numeric/negativeNumericLiterals.ql +++ b/java/ql/test/library-tests/literals/literals-numeric/negativeNumericLiterals.ql @@ -1,6 +1,12 @@ import java -from Literal l +class SrcLiteral extends Literal { + SrcLiteral() { + this.getCompilationUnit().fromSource() + } +} + +from SrcLiteral l where l instanceof IntegerLiteral or l instanceof LongLiteral or From 80f5b977d6fd2d02a5f06f69c883524a69e4fa51 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 28 Jul 2022 11:48:50 +0100 Subject: [PATCH 667/736] Use sealed classes released version --- java/ql/test/library-tests/types/sealed-classes/options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/test/library-tests/types/sealed-classes/options b/java/ql/test/library-tests/types/sealed-classes/options index e41003a6e3c..a2f4d45311b 100644 --- a/java/ql/test/library-tests/types/sealed-classes/options +++ b/java/ql/test/library-tests/types/sealed-classes/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args --enable-preview -source 16 -target 16 +//semmle-extractor-options: --javac-args -source 17 -target 17 From 1c6642f3fb3ea5cedd2827f583929953273b3f0c Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Thu, 28 Jul 2022 14:17:20 +0100 Subject: [PATCH 668/736] Format QL --- .../library-tests/literals/floatLiterals/floatLiterals.ql | 4 +--- .../library-tests/literals/integerLiterals/integerLiterals.ql | 4 +--- .../literals/literals-numeric/negativeNumericLiterals.ql | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql b/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql index ff8056ed3f7..765a3cfc7d1 100644 --- a/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql +++ b/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql @@ -1,9 +1,7 @@ import semmle.code.java.Expr class SrcFloatingPointLiteral extends FloatLiteral { - SrcFloatingPointLiteral() { - this.getCompilationUnit().fromSource() - } + SrcFloatingPointLiteral() { this.getCompilationUnit().fromSource() } } from FloatLiteral lit diff --git a/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.ql b/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.ql index aa0d68d6c55..5711aa25b9f 100644 --- a/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.ql +++ b/java/ql/test/library-tests/literals/integerLiterals/integerLiterals.ql @@ -1,9 +1,7 @@ import semmle.code.java.Expr class SrcIntegerLiteral extends IntegerLiteral { - SrcIntegerLiteral() { - this.getCompilationUnit().fromSource() - } + SrcIntegerLiteral() { this.getCompilationUnit().fromSource() } } from SrcIntegerLiteral lit diff --git a/java/ql/test/library-tests/literals/literals-numeric/negativeNumericLiterals.ql b/java/ql/test/library-tests/literals/literals-numeric/negativeNumericLiterals.ql index 969b72f7c29..ccda3b33a02 100644 --- a/java/ql/test/library-tests/literals/literals-numeric/negativeNumericLiterals.ql +++ b/java/ql/test/library-tests/literals/literals-numeric/negativeNumericLiterals.ql @@ -1,9 +1,7 @@ import java class SrcLiteral extends Literal { - SrcLiteral() { - this.getCompilationUnit().fromSource() - } + SrcLiteral() { this.getCompilationUnit().fromSource() } } from SrcLiteral l From 73b6697ea6adf6b85a5e3aa88af09709b33d7cea Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 8 Aug 2022 13:31:05 +0200 Subject: [PATCH 669/736] C#: Add ServiceStack 6.2.0 and friends. --- .../4.7.0/Microsoft.CSharp.csproj | 12 + ...ns.DependencyInjection.Abstractions.csproj | 12 + ...soft.Extensions.DependencyInjection.csproj | 14 + .../6.0.0/Microsoft.Extensions.Http.csproj | 16 + ...oft.Extensions.Logging.Abstractions.csproj | 12 + .../6.0.0/Microsoft.Extensions.Logging.csproj | 17 + .../6.0.0/Microsoft.Extensions.Options.csproj | 14 + .../5.0.0/Microsoft.NETCore.Platforms.csproj | 12 + .../5.0.0/Microsoft.Win32.SystemEvents.csproj | 13 + .../6.2.0/ServiceStack.Client.cs | 3211 ++++ .../6.2.0/ServiceStack.Client.csproj | 15 + .../6.2.0/ServiceStack.Common.cs | 5144 ++++++ .../6.2.0/ServiceStack.Common.csproj | 15 + .../6.2.0/ServiceStack.Interfaces.cs | 6366 ++++++++ .../6.2.0/ServiceStack.Interfaces.csproj | 12 + .../6.2.0/ServiceStack.OrmLite.SqlServer.cs | 353 + .../ServiceStack.OrmLite.SqlServer.csproj | 17 + .../6.2.0/ServiceStack.OrmLite.cs | 3500 +++++ .../6.2.0/ServiceStack.OrmLite.csproj | 14 + .../6.2.0/ServiceStack.Text.cs | 4175 +++++ .../6.2.0/ServiceStack.Text.csproj | 15 + .../stubs/ServiceStack/6.2.0/ServiceStack.cs | 12871 ++++++++++++++++ .../ServiceStack/6.2.0/ServiceStack.csproj | 18 + ...System.Diagnostics.DiagnosticSource.csproj | 13 + .../5.0.2/System.Drawing.Common.cs | 3266 ++++ .../5.0.2/System.Drawing.Common.csproj | 13 + .../System.Memory/4.5.4/System.Memory.csproj | 12 + ...tem.Runtime.CompilerServices.Unsafe.csproj | 12 + 28 files changed, 39164 insertions(+) create mode 100644 csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj create mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj create mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/6.0.0/Microsoft.Extensions.DependencyInjection.csproj create mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/6.0.0/Microsoft.Extensions.Http.csproj create mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/6.0.0/Microsoft.Extensions.Logging.Abstractions.csproj create mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/6.0.0/Microsoft.Extensions.Logging.csproj create mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/6.0.0/Microsoft.Extensions.Options.csproj create mode 100644 csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/5.0.0/Microsoft.NETCore.Platforms.csproj create mode 100644 csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/5.0.0/Microsoft.Win32.SystemEvents.csproj create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.cs create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.csproj create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.cs create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.csproj create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Interfaces/6.2.0/ServiceStack.Interfaces.cs create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Interfaces/6.2.0/ServiceStack.Interfaces.csproj create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.cs create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.csproj create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.cs create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.csproj create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.cs create mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.csproj create mode 100644 csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.cs create mode 100644 csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.csproj create mode 100644 csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.0/System.Diagnostics.DiagnosticSource.csproj create mode 100644 csharp/ql/test/resources/stubs/System.Drawing.Common/5.0.2/System.Drawing.Common.cs create mode 100644 csharp/ql/test/resources/stubs/System.Drawing.Common/5.0.2/System.Drawing.Common.csproj create mode 100644 csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj create mode 100644 csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj diff --git a/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj b/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj new file mode 100644 index 00000000000..a04faa3ef58 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj @@ -0,0 +1,12 @@ + + + net6.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj new file mode 100644 index 00000000000..a04faa3ef58 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj @@ -0,0 +1,12 @@ + + + net6.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/6.0.0/Microsoft.Extensions.DependencyInjection.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/6.0.0/Microsoft.Extensions.DependencyInjection.csproj new file mode 100644 index 00000000000..25609b26038 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/6.0.0/Microsoft.Extensions.DependencyInjection.csproj @@ -0,0 +1,14 @@ + + + net6.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/6.0.0/Microsoft.Extensions.Http.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/6.0.0/Microsoft.Extensions.Http.csproj new file mode 100644 index 00000000000..e9d79c6ec5d --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/6.0.0/Microsoft.Extensions.Http.csproj @@ -0,0 +1,16 @@ + + + net6.0 + true + bin\ + false + + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/6.0.0/Microsoft.Extensions.Logging.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/6.0.0/Microsoft.Extensions.Logging.Abstractions.csproj new file mode 100644 index 00000000000..a04faa3ef58 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/6.0.0/Microsoft.Extensions.Logging.Abstractions.csproj @@ -0,0 +1,12 @@ + + + net6.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/6.0.0/Microsoft.Extensions.Logging.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/6.0.0/Microsoft.Extensions.Logging.csproj new file mode 100644 index 00000000000..ce74d5604a3 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/6.0.0/Microsoft.Extensions.Logging.csproj @@ -0,0 +1,17 @@ + + + net6.0 + true + bin\ + false + + + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/6.0.0/Microsoft.Extensions.Options.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/6.0.0/Microsoft.Extensions.Options.csproj new file mode 100644 index 00000000000..69cae697119 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/6.0.0/Microsoft.Extensions.Options.csproj @@ -0,0 +1,14 @@ + + + net6.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/5.0.0/Microsoft.NETCore.Platforms.csproj b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/5.0.0/Microsoft.NETCore.Platforms.csproj new file mode 100644 index 00000000000..a04faa3ef58 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/5.0.0/Microsoft.NETCore.Platforms.csproj @@ -0,0 +1,12 @@ + + + net6.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/5.0.0/Microsoft.Win32.SystemEvents.csproj b/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/5.0.0/Microsoft.Win32.SystemEvents.csproj new file mode 100644 index 00000000000..220f525ccec --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/5.0.0/Microsoft.Win32.SystemEvents.csproj @@ -0,0 +1,13 @@ + + + net6.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.cs b/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.cs new file mode 100644 index 00000000000..fcdc345b685 --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.cs @@ -0,0 +1,3211 @@ +// This file contains auto-generated code. + +namespace ServiceStack +{ + // Generated from `ServiceStack.AdminCreateUser` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminCreateUser : ServiceStack.AdminUserBase, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public AdminCreateUser() => throw null; + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminDeleteUser` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminDeleteUser : ServiceStack.IDelete, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public AdminDeleteUser() => throw null; + public string Id { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminDeleteUserResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminDeleteUserResponse : ServiceStack.IHasResponseStatus + { + public AdminDeleteUserResponse() => throw null; + public string Id { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminGetUser` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminGetUser : ServiceStack.IGet, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public AdminGetUser() => throw null; + public string Id { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminQueryUsers` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminQueryUsers : ServiceStack.IGet, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public AdminQueryUsers() => throw null; + public string OrderBy { get => throw null; set => throw null; } + public string Query { get => throw null; set => throw null; } + public int? Skip { get => throw null; set => throw null; } + public int? Take { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminUi` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public class AdminUi + { + public ServiceStack.ApiCss Css { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminUi` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum AdminUi + { + public ServiceStack.ApiCss Css { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AdminUpdateUser` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AdminUpdateUser : ServiceStack.AdminUserBase, ServiceStack.IPut, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public System.Collections.Generic.List AddPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List AddRoles { get => throw null; set => throw null; } + public AdminUpdateUser() => throw null; + public string Id { get => throw null; set => throw null; } + public bool? LockUser { get => throw null; set => throw null; } + public System.Collections.Generic.List RemovePermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List RemoveRoles { get => throw null; set => throw null; } + public bool? UnlockUser { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AdminUserBase` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public abstract class AdminUserBase : ServiceStack.IMeta +{ + protected AdminUserBase() => throw null; + public string DisplayName { get => throw null; set => throw null; } + public string Email { get => throw null; set => throw null; } + public string FirstName { get => throw null; set => throw null; } + public string LastName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary UserAuthProperties { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AdminUserResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AdminUserResponse : ServiceStack.IHasResponseStatus +{ + public AdminUserResponse() => throw null; + public System.Collections.Generic.List> Details { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Result { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AdminUsersInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AdminUsersInfo : ServiceStack.IMeta +{ + public string AccessRole { get => throw null; set => throw null; } + public AdminUsersInfo() => throw null; + public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } + public ServiceStack.ApiCss Css { get => throw null; set => throw null; } + public System.Collections.Generic.List Enabled { get => throw null; set => throw null; } + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List QueryMediaRules { get => throw null; set => throw null; } + public System.Collections.Generic.List QueryUserAuthProperties { get => throw null; set => throw null; } + public ServiceStack.MetadataType UserAuth { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AdminUsersResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AdminUsersResponse : ServiceStack.IHasResponseStatus +{ + public AdminUsersResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List> Results { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AesUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class AesUtils +{ + public const int BlockSize = default; + public const int BlockSizeBytes = default; + public static string CreateBase64Key() => throw null; + public static void CreateCryptAuthKeysAndIv(out System.Byte[] cryptKey, out System.Byte[] authKey, out System.Byte[] iv) => throw null; + public static System.Byte[] CreateIv() => throw null; + public static System.Byte[] CreateKey() => throw null; + public static void CreateKeyAndIv(out System.Byte[] cryptKey, out System.Byte[] iv) => throw null; + public static System.Security.Cryptography.SymmetricAlgorithm CreateSymmetricAlgorithm() => throw null; + public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, System.Byte[] cryptKey, System.Byte[] iv) => throw null; + public static string Decrypt(string encryptedBase64, System.Byte[] cryptKey, System.Byte[] iv) => throw null; + public static System.Byte[] Encrypt(System.Byte[] bytesToEncrypt, System.Byte[] cryptKey, System.Byte[] iv) => throw null; + public static string Encrypt(string text, System.Byte[] cryptKey, System.Byte[] iv) => throw null; + public const int KeySize = default; + public const int KeySizeBytes = default; +} + +// Generated from `ServiceStack.ApiCss` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ApiCss +{ + public ApiCss() => throw null; + public string Field { get => throw null; set => throw null; } + public string Fieldset { get => throw null; set => throw null; } + public string Form { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ApiFormat` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ApiFormat +{ + public ApiFormat() => throw null; + public bool AssumeUtc { get => throw null; set => throw null; } + public ServiceStack.FormatInfo Date { get => throw null; set => throw null; } + public string Locale { get => throw null; set => throw null; } + public ServiceStack.FormatInfo Number { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ApiResult` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ApiResult +{ + public static ServiceStack.ApiResult Create(TResponse response) => throw null; + public static ServiceStack.ApiResult CreateError(System.Exception ex) => throw null; + public static ServiceStack.ApiResult CreateError(ServiceStack.ResponseStatus errorStatus) => throw null; + public static ServiceStack.ApiResult CreateError(string message, string errorCode = default(string)) => throw null; + public static ServiceStack.ApiResult CreateError(System.Exception ex) => throw null; + public static ServiceStack.ApiResult CreateError(ServiceStack.ResponseStatus errorStatus) => throw null; + public static ServiceStack.ApiResult CreateError(string message, string errorCode = default(string)) => throw null; + public static ServiceStack.ApiResult CreateFieldError(string fieldName, string message, string errorCode = default(string)) => throw null; + public static ServiceStack.ApiResult CreateFieldError(string fieldName, string message, string errorCode = default(string)) => throw null; + public const string FieldErrorCode = default; +} + +// Generated from `ServiceStack.ApiResult<>` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ApiResult : ServiceStack.IHasErrorStatus +{ + public void AddFieldError(string fieldName, string message, string errorCode = default(string)) => throw null; + public ApiResult() => throw null; + public ApiResult(ServiceStack.ResponseStatus errorStatus) => throw null; + public ApiResult(TResponse response) => throw null; + public void ClearErrors() => throw null; + public bool Completed { get => throw null; } + public ServiceStack.ResponseStatus Error { get => throw null; set => throw null; } + public string ErrorMessage { get => throw null; } + public string ErrorSummary { get => throw null; } + public ServiceStack.ResponseError[] Errors { get => throw null; } + public bool Failed { get => throw null; } + public ServiceStack.ResponseError FieldError(string fieldName) => throw null; + public string FieldErrorMessage(string fieldName) => throw null; + public bool HasFieldError(string fieldName) => throw null; + public bool IsLoading { get => throw null; set => throw null; } + public TResponse Response { get => throw null; } + public void SetError(string errorMessage, string errorCode = default(string)) => throw null; + public string StackTrace { get => throw null; set => throw null; } + public bool Succeeded { get => throw null; } +} + +// Generated from `ServiceStack.ApiResultUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ApiResultUtils +{ + public static ServiceStack.ApiResult Api(this ServiceStack.IServiceClient client, ServiceStack.IReturnVoid request) => throw null; + public static ServiceStack.ApiResult Api(this ServiceStack.IServiceClient client, ServiceStack.IReturn request) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturnVoid request) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn request) => throw null; + public static void ThrowIfError(this ServiceStack.ApiResult api) => throw null; + public static ServiceStack.ApiResult ToApiResult(this System.Exception ex) => throw null; + public static ServiceStack.ApiResult ToApiResult(this System.Exception ex) => throw null; + public static ServiceStack.AuthenticateResponse ToAuthenticateResponse(this ServiceStack.RegisterResponse from) => throw null; +} + +// Generated from `ServiceStack.ApiUiInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ApiUiInfo : ServiceStack.IMeta +{ + public ApiUiInfo() => throw null; + public ServiceStack.ApiCss ExplorerCss { get => throw null; set => throw null; } + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public ServiceStack.ApiCss LocodeCss { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AppInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AppInfo : ServiceStack.IMeta +{ + public AppInfo() => throw null; + public string BackgroundColor { get => throw null; set => throw null; } + public string BackgroundImageUrl { get => throw null; set => throw null; } + public string BaseUrl { get => throw null; set => throw null; } + public string BrandImageUrl { get => throw null; set => throw null; } + public string BrandUrl { get => throw null; set => throw null; } + public string IconUrl { get => throw null; set => throw null; } + public string JsTextCase { get => throw null; set => throw null; } + public string LinkColor { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string ServiceDescription { get => throw null; set => throw null; } + public string ServiceIconUrl { get => throw null; set => throw null; } + public string ServiceName { get => throw null; set => throw null; } + public string ServiceStackVersion { get => throw null; } + public string TextColor { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AppMetadata` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AppMetadata : ServiceStack.IMeta +{ + public ServiceStack.MetadataTypes Api { get => throw null; set => throw null; } + public ServiceStack.AppInfo App { get => throw null; set => throw null; } + public AppMetadata() => throw null; + public ServiceStack.AppMetadataCache Cache { get => throw null; set => throw null; } + public ServiceStack.ConfigInfo Config { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ContentTypeFormats { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary CustomPlugins { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary HttpHandlers { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.PluginInfo Plugins { get => throw null; set => throw null; } + public ServiceStack.UiInfo Ui { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AppMetadataCache` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AppMetadataCache +{ + public AppMetadataCache(System.Collections.Generic.Dictionary operationsMap, System.Collections.Generic.Dictionary typesMap) => throw null; + public System.Collections.Generic.Dictionary OperationsMap { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary TypesMap { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AppMetadataUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class AppMetadataUtils +{ + public static void EachOperation(this ServiceStack.AppMetadata app, System.Action configure) => throw null; + public static void EachOperation(this ServiceStack.AppMetadata app, System.Action configure, System.Predicate where) => throw null; + public static void EachProperty(this ServiceStack.MetadataType type, System.Func where, System.Action configure) => throw null; + public static void EachType(this ServiceStack.AppMetadata app, System.Action configure) => throw null; + public static void EachType(this ServiceStack.AppMetadata app, System.Action configure, System.Predicate where) => throw null; + public static System.Threading.Tasks.Task GetAppMetadataAsync(this string baseUrl) => throw null; + public static ServiceStack.AppMetadataCache GetCache(this ServiceStack.AppMetadata app) => throw null; + public static ServiceStack.MetadataOperationType GetOperation(this ServiceStack.AppMetadata app, string name) => throw null; + public static ServiceStack.MetadataType GetType(this ServiceStack.AppMetadata app, System.Type type) => throw null; + public static ServiceStack.MetadataType GetType(this ServiceStack.AppMetadata app, string name) => throw null; + public static ServiceStack.MetadataType GetType(this ServiceStack.AppMetadata app, string @namespace, string name) => throw null; + public static bool IsSystemType(this ServiceStack.MetadataPropertyType prop) => throw null; + public static ServiceStack.MetadataPropertyType Property(this ServiceStack.MetadataType type, string name) => throw null; + public static void Property(this ServiceStack.MetadataType type, string name, System.Action configure) => throw null; + public static void RemoveProperty(this ServiceStack.MetadataType type, System.Predicate where) => throw null; + public static void RemoveProperty(this ServiceStack.MetadataType type, string name) => throw null; + public static ServiceStack.MetadataPropertyType ReorderProperty(this ServiceStack.MetadataType type, string name, int index) => throw null; + public static ServiceStack.MetadataPropertyType ReorderProperty(this ServiceStack.MetadataType type, string name, string before = default(string), string after = default(string)) => throw null; + public static ServiceStack.MetadataPropertyType RequiredProperty(this ServiceStack.MetadataType type, string name) => throw null; + public static ServiceStack.FieldCss ToCss(this ServiceStack.FieldCssAttribute attr) => throw null; + public static ServiceStack.FormatInfo ToFormat(this ServiceStack.FormatAttribute attr) => throw null; + public static ServiceStack.FormatInfo ToFormat(this ServiceStack.Intl attr) => throw null; + public static ServiceStack.InputInfo ToInput(this ServiceStack.InputAttributeBase input, System.Action configure = default(System.Action)) => throw null; +} + +// Generated from `ServiceStack.AppTags` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AppTags +{ + public AppTags() => throw null; + public string Default { get => throw null; set => throw null; } + public string Other { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AssignRoles` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AssignRoles : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public AssignRoles() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AssignRolesResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AssignRolesResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta +{ + public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } + public AssignRolesResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AsyncServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AsyncServiceClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion +{ + public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } + public AsyncServiceClient() => throw null; + public string BaseUri { get => throw null; set => throw null; } + public string BearerToken { get => throw null; set => throw null; } + public static int BufferSize; + public string ContentType { 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 bool DisableAutoCompression { get => throw null; set => throw null; } + public static bool DisableTimer { get => throw null; set => throw null; } + public void Dispose() => throw null; + public bool EmulateHttpViaPost { get => throw null; set => throw null; } + public bool EnableAutoRefreshToken { get => throw null; set => throw null; } + public ServiceStack.ExceptionFilterDelegate ExceptionFilter { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary GetCookieValues() => throw null; + public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } + public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } + public System.Net.Http.HttpClient HttpClient { get => throw null; set => throw null; } + public System.Text.StringBuilder HttpLog { get => throw null; set => throw null; } + public System.Action HttpLogFilter { get => throw null; set => throw null; } + public System.Action OnAuthenticationRequired { get => throw null; set => throw null; } + public ServiceStack.ProgressDelegate OnDownloadProgress { get => throw null; set => throw null; } + public ServiceStack.ProgressDelegate OnUploadProgress { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public string RefreshTokenUri { get => throw null; set => throw null; } + public string RequestCompressionType { get => throw null; set => throw null; } + public System.Action RequestFilter { get => throw null; set => throw null; } + public System.Action ResponseFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterDelegate ResultsFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string SessionId { get => throw null; set => throw null; } + public void SetCredentials(string userName, string password) => throw null; + public bool ShareCookiesWithBrowser { get => throw null; set => throw null; } + public bool StoreCookies { get => throw null; set => throw null; } + public ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; set => throw null; } + public ServiceStack.Web.StreamSerializerDelegate StreamSerializer { get => throw null; set => throw null; } + public System.TimeSpan? Timeout { get => throw null; set => throw null; } + public string UserAgent { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + public int Version { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AsyncTimer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AsyncTimer : ServiceStack.ITimer, System.IDisposable +{ + public AsyncTimer(System.Threading.Timer timer) => throw null; + public void Cancel() => throw null; + public void Dispose() => throw null; + public System.Threading.Timer Timer; +} + +// Generated from `ServiceStack.AuthInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AuthInfo : ServiceStack.IMeta +{ + public AuthInfo() => throw null; + public System.Collections.Generic.List AuthProviders { get => throw null; set => throw null; } + public bool? HasAuthRepository { get => throw null; set => throw null; } + public bool? HasAuthSecret { get => throw null; set => throw null; } + public string HtmlRedirect { get => throw null; set => throw null; } + public bool? IncludesOAuthTokens { get => throw null; set => throw null; } + public bool? IncludesRoles { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary> RoleLinks { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.Authenticate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class Authenticate : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public string AccessToken { get => throw null; set => throw null; } + public string AccessTokenSecret { get => throw null; set => throw null; } + public Authenticate() => throw null; + public Authenticate(string provider) => throw null; + public string ErrorView { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public bool? RememberMe { get => throw null; set => throw null; } + public string State { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + public string cnonce { get => throw null; set => throw null; } + public string nc { get => throw null; set => throw null; } + public string nonce { get => throw null; set => throw null; } + public string oauth_token { get => throw null; set => throw null; } + public string oauth_verifier { get => throw null; set => throw null; } + public string provider { get => throw null; set => throw null; } + public string qop { get => throw null; set => throw null; } + public string response { get => throw null; set => throw null; } + public string scope { get => throw null; set => throw null; } + public string uri { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AuthenticateResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AuthenticateResponse : ServiceStack.IHasBearerToken, ServiceStack.IHasRefreshToken, ServiceStack.IHasResponseStatus, ServiceStack.IHasSessionId, ServiceStack.IMeta +{ + public AuthenticateResponse() => throw null; + public string BearerToken { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public string ReferrerUrl { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AuthenticationException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AuthenticationException : System.Exception, ServiceStack.IHasStatusCode +{ + public AuthenticationException() => throw null; + public AuthenticationException(string message) => throw null; + public AuthenticationException(string message, System.Exception innerException) => throw null; + public int StatusCode { get => throw null; } +} + +// Generated from `ServiceStack.AuthenticationInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AuthenticationInfo +{ + public AuthenticationInfo(string authHeader) => throw null; + public override string ToString() => throw null; + public string cnonce { get => throw null; set => throw null; } + public string method { get => throw null; set => throw null; } + public int nc { get => throw null; set => throw null; } + public string nonce { get => throw null; set => throw null; } + public string opaque { get => throw null; set => throw null; } + public string qop { get => throw null; set => throw null; } + public string realm { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AutoQueryConvention` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AutoQueryConvention +{ + public AutoQueryConvention() => throw null; + public string Name { get => throw null; set => throw null; } + public string Types { get => throw null; set => throw null; } + public string Value { get => throw null; set => throw null; } + public string ValueType { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.AutoQueryInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class AutoQueryInfo : ServiceStack.IMeta +{ + public string AccessRole { get => throw null; set => throw null; } + public bool? Async { get => throw null; set => throw null; } + public AutoQueryInfo() => throw null; + public bool? AutoQueryViewer { get => throw null; set => throw null; } + public bool? CrudEvents { get => throw null; set => throw null; } + public bool? CrudEventsServices { get => throw null; set => throw null; } + public int? MaxLimit { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string NamedConnection { get => throw null; set => throw null; } + public bool? OrderByPrimaryKey { get => throw null; set => throw null; } + public bool? RawSqlFilters { get => throw null; set => throw null; } + public bool? UntypedQueries { get => throw null; set => throw null; } + public System.Collections.Generic.List ViewerConventions { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.BrotliCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class BrotliCompressor : ServiceStack.Caching.IStreamCompressor +{ + public BrotliCompressor() => throw null; + public System.Byte[] Compress(System.Byte[] buffer) => throw null; + public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public System.IO.Stream Decompress(System.IO.Stream gzStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] DecompressBytes(System.Byte[] zipBuffer) => throw null; + public string Encoding { get => throw null; } + public static ServiceStack.BrotliCompressor Instance { get => throw null; } +} + +// Generated from `ServiceStack.CachedServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class CachedServiceClient : ServiceStack.ICachedServiceClient, ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable +{ + public void AddHeader(string name, string value) => throw null; + public string BearerToken { get => throw null; set => throw null; } + public int CacheCount { get => throw null; } + public System.Int64 CacheHits { get => throw null; } + public CachedServiceClient(ServiceStack.ServiceClientBase client) => throw null; + public CachedServiceClient(ServiceStack.ServiceClientBase client, System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; + public System.Int64 CachesAdded { get => throw null; } + public System.Int64 CachesRemoved { get => throw null; } + public int CleanCachesWhenCountExceeds { get => throw null; set => throw null; } + public System.TimeSpan? ClearCachesOlderThan { get => throw null; set => throw null; } + public void ClearCookies() => throw null; + public System.TimeSpan? ClearExpiredCachesOlderThan { get => throw null; set => throw null; } + public void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, object requestDto) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Delete(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Delete(ServiceStack.IReturn request) => throw null; + public TResponse Delete(object request) => throw null; + public TResponse Delete(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Dispose() => throw null; + public System.Int64 ErrorFallbackHits { get => throw null; } + public void Get(ServiceStack.IReturnVoid request) => throw null; + public TResponse Get(ServiceStack.IReturn requestDto) => throw null; + public TResponse Get(object requestDto) => throw null; + public TResponse Get(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.Dictionary GetCookieValues() => throw null; + public System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; + public System.Int64 NotModifiedHits { get => throw null; } + public object OnExceptionFilter(System.Net.WebException webEx, System.Net.WebResponse webRes, string requestUri, System.Type responseType) => throw null; + public void Patch(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Patch(ServiceStack.IReturn requestDto) => throw null; + public TResponse Patch(object requestDto) => throw null; + public TResponse Patch(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Post(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Post(ServiceStack.IReturn requestDto) => throw null; + public TResponse Post(object requestDto) => throw null; + public TResponse Post(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType, string fieldName = default(string)) => throw null; + public TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; + public TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; + public void Publish(object requestDto) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; + public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public void Put(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Put(ServiceStack.IReturn requestDto) => throw null; + public TResponse Put(object requestDto) => throw null; + public TResponse Put(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public int RemoveCachesOlderThan(System.TimeSpan age) => throw null; + public int RemoveExpiredCachesOlderThan(System.TimeSpan age) => throw null; + public TResponse Send(object request) => throw null; + public TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request) => throw null; + public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void SendOneWay(object requestDto) => throw null; + public void SendOneWay(string relativeOrAbsoluteUri, object requestDto) => throw null; + public string SessionId { get => throw null; set => throw null; } + public void SetCache(System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; + public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; + public void SetCredentials(string userName, string password) => throw null; + public int Version { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.CachedServiceClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class CachedServiceClientExtensions +{ + public static ServiceStack.IServiceClient WithCache(this ServiceStack.ServiceClientBase client) => throw null; + public static ServiceStack.IServiceClient WithCache(this ServiceStack.ServiceClientBase client, System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; +} + +// Generated from `ServiceStack.CancelRequest` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class CancelRequest : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public CancelRequest() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Tag { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.CancelRequestResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class CancelRequestResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta +{ + public CancelRequestResponse() => throw null; + public System.TimeSpan Elapsed { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public string Tag { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.CheckCrudEvents` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class CheckCrudEvents : ServiceStack.IReturn, ServiceStack.IReturn +{ + public string AuthSecret { get => throw null; set => throw null; } + public CheckCrudEvents() => throw null; + public System.Collections.Generic.List Ids { get => throw null; set => throw null; } + public string Model { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.CheckCrudEventsResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class CheckCrudEventsResponse : ServiceStack.IHasResponseStatus +{ + public CheckCrudEventsResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ClientConfig` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ClientConfig +{ + public static void ConfigureTls12() => throw null; + public static string DefaultEncodeDispositionFileName(string fileName) => throw null; + public static System.Func EncodeDispositionFileName { get => throw null; set => throw null; } + public static bool SkipEmptyArrays { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ClientDiagnosticUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ClientDiagnosticUtils +{ + public static void InitMessage(this System.Diagnostics.DiagnosticListener listener, ServiceStack.Messaging.IMessage msg) => throw null; +} + +// Generated from `ServiceStack.ClientDiagnostics` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ClientDiagnostics +{ + public static void WriteRequestAfter(this System.Diagnostics.DiagnosticListener listener, System.Guid operationId, System.Net.Http.HttpRequestMessage httpReq, object response, string operation = default(string)) => throw null; + public static System.Guid WriteRequestBefore(this System.Diagnostics.DiagnosticListener listener, System.Net.Http.HttpRequestMessage httpReq, object request, System.Type responseType, string operation = default(string)) => throw null; + public static void WriteRequestError(this System.Diagnostics.DiagnosticListener listener, System.Guid operationId, System.Net.Http.HttpRequestMessage httpReq, System.Exception ex, string operation = default(string)) => throw null; +} + +// Generated from `ServiceStack.ClientFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ClientFactory +{ + public static ServiceStack.IOneWayClient Create(string endpointUrl) => throw null; +} + +// Generated from `ServiceStack.ConfigInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ConfigInfo : ServiceStack.IMeta +{ + public ConfigInfo() => throw null; + public bool? DebugMode { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ContentFormat` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ContentFormat +{ + public static System.Collections.Generic.Dictionary ContentTypeAliases; + public static string GetContentFormat(ServiceStack.Format format) => throw null; + public static string GetContentFormat(string contentType) => throw null; + public static ServiceStack.RequestAttributes GetEndpointAttributes(string contentType) => throw null; + public static string GetRealContentType(string contentType) => throw null; + public static ServiceStack.RequestAttributes GetRequestAttribute(string httpMethod) => throw null; + public static bool IsBinary(this string contentType) => throw null; + public static bool MatchesContentType(this string contentType, string matchesContentType) => throw null; + public static string NormalizeContentType(string contentType) => throw null; + public static string ToContentFormat(this string contentType) => throw null; + public static string ToContentType(this ServiceStack.Format formats) => throw null; + public static ServiceStack.Feature ToFeature(this string contentType) => throw null; + public const string Utf8Suffix = default; +} + +// Generated from `ServiceStack.ConvertSessionToToken` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ConvertSessionToToken : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public ConvertSessionToToken() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public bool PreserveSession { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ConvertSessionToTokenResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ConvertSessionToTokenResponse : ServiceStack.IMeta +{ + public string AccessToken { get => throw null; set => throw null; } + public ConvertSessionToTokenResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.CrudEvent` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class CrudEvent : ServiceStack.IMeta +{ + public CrudEvent() => throw null; + public System.DateTime EventDate { get => throw null; set => throw null; } + public string EventType { get => throw null; set => throw null; } + public System.Int64 Id { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Model { get => throw null; set => throw null; } + public string ModelId { get => throw null; set => throw null; } + public int? RefId { get => throw null; set => throw null; } + public string RefIdStr { get => throw null; set => throw null; } + public string RemoteIp { get => throw null; set => throw null; } + public string RequestBody { get => throw null; set => throw null; } + public string RequestType { get => throw null; set => throw null; } + public System.Int64? RowsUpdated { get => throw null; set => throw null; } + public string Urn { get => throw null; set => throw null; } + public string UserAuthId { get => throw null; set => throw null; } + public string UserAuthName { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.CssUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class CssUtils +{ + // Generated from `ServiceStack.CssUtils+Bootstrap` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Bootstrap + { + public static string InputClass(ServiceStack.ResponseStatus status, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + public static string InputClass(ServiceStack.ApiResult apiResult, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + } + + + // Generated from `ServiceStack.CssUtils+Tailwind` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Tailwind + { + public static string InputClass(ServiceStack.ResponseStatus status, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + public static string InputClass(ServiceStack.ApiResult apiResult, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + } + + + public static string Active(bool condition) => throw null; + public static string ClassNames(params string[] classes) => throw null; + public static string Selected(bool condition) => throw null; +} + +// Generated from `ServiceStack.CsvServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class CsvServiceClient : ServiceStack.ServiceClientBase +{ + public override string ContentType { get => throw null; } + public CsvServiceClient() => throw null; + public CsvServiceClient(string baseUri) => throw null; + public CsvServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; + public override T DeserializeFromStream(System.IO.Stream stream) => throw null; + public override string Format { get => throw null; } + public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; + public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } +} + +// Generated from `ServiceStack.CustomPluginInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class CustomPluginInfo : ServiceStack.IMeta +{ + public string AccessRole { get => throw null; set => throw null; } + public CustomPluginInfo() => throw null; + public System.Collections.Generic.List Enabled { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.DeflateCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class DeflateCompressor : ServiceStack.Caching.IStreamCompressor +{ + public System.Byte[] Compress(System.Byte[] bytes) => throw null; + public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public System.IO.Stream Decompress(System.IO.Stream zipBuffer, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] DecompressBytes(System.Byte[] zipBuffer) => throw null; + public DeflateCompressor() => throw null; + public string Encoding { get => throw null; } + public static ServiceStack.DeflateCompressor Instance { get => throw null; } +} + +// Generated from `ServiceStack.DeleteFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class DeleteFileUpload : ServiceStack.IDelete, ServiceStack.IHasBearerToken, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public string BearerToken { get => throw null; set => throw null; } + public DeleteFileUpload() => throw null; + public string Name { get => throw null; set => throw null; } + public string Path { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.DeleteFileUploadResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class DeleteFileUploadResponse +{ + public DeleteFileUploadResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public bool Result { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.DynamicRequest` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class DynamicRequest +{ + public DynamicRequest() => throw null; + public System.Collections.Generic.Dictionary Params { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.EncryptedMessage` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class EncryptedMessage : ServiceStack.IReturn, ServiceStack.IReturn +{ + public string EncryptedBody { get => throw null; set => throw null; } + public EncryptedMessage() => throw null; + public string EncryptedSymmetricKey { get => throw null; set => throw null; } + public string KeyId { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.EncryptedMessageResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class EncryptedMessageResponse +{ + public string EncryptedBody { get => throw null; set => throw null; } + public EncryptedMessageResponse() => throw null; +} + +// Generated from `ServiceStack.EncryptedServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class EncryptedServiceClient : ServiceStack.IEncryptedClient, ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IReplyClient, ServiceStack.IServiceGateway +{ + public string BearerToken { get => throw null; set => throw null; } + public ServiceStack.IJsonServiceClient Client { get => throw null; set => throw null; } + public ServiceStack.EncryptedMessage CreateEncryptedMessage(object request, string operationName, System.Byte[] cryptKey, System.Byte[] authKey, System.Byte[] iv, string verb = default(string)) => throw null; + public ServiceStack.WebServiceException DecryptedException(ServiceStack.WebServiceException ex, System.Byte[] cryptKey, System.Byte[] authKey) => throw null; + public EncryptedServiceClient(ServiceStack.IJsonServiceClient client, System.Security.Cryptography.RSAParameters publicKey) => throw null; + public EncryptedServiceClient(ServiceStack.IJsonServiceClient client, string publicKeyXml) => throw null; + public string KeyId { get => throw null; set => throw null; } + public System.Security.Cryptography.RSAParameters PublicKey { get => throw null; set => throw null; } + public void Publish(object request) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; + public TResponse Send(object request) => throw null; + public TResponse Send(string httpMethod, ServiceStack.IReturn request) => throw null; + public TResponse Send(string httpMethod, object request) => throw null; + public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; + public string ServerPublicKeyXml { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public int Version { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ErrorUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ErrorUtils +{ + public static ServiceStack.ResponseStatus AddFieldError(this ServiceStack.ResponseStatus status, string fieldName, string errorMessage, string errorCode = default(string)) => throw null; + public static ServiceStack.ResponseStatus AsResponseStatus(this System.Exception ex) => throw null; + public static ServiceStack.ResponseStatus CreateError(System.Exception ex) => throw null; + public static ServiceStack.ResponseStatus CreateError(string message, string errorCode = default(string)) => throw null; + public static ServiceStack.ResponseStatus CreateFieldError(string fieldName, string errorMessage, string errorCode = default(string)) => throw null; + public static ServiceStack.ResponseError FieldError(this ServiceStack.ResponseStatus status, string fieldName) => throw null; + public const string FieldErrorCode = default; + public static string FieldErrorMessage(this ServiceStack.ResponseStatus status, string fieldName) => throw null; + public static bool HasErrorField(this ServiceStack.ResponseStatus status, string fieldName) => throw null; + public static bool IsError(this ServiceStack.ResponseStatus status) => throw null; + public static bool IsSuccess(this ServiceStack.ResponseStatus status) => throw null; + public static bool ShowSummary(this ServiceStack.ResponseStatus status, params string[] exceptFields) => throw null; + public static string SummaryMessage(this ServiceStack.ResponseStatus status, params string[] exceptFields) => throw null; +} + +// Generated from `ServiceStack.ExceptionFilterDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate object ExceptionFilterDelegate(System.Net.WebException webEx, System.Net.WebResponse webResponse, string requestUri, System.Type responseType); + +// Generated from `ServiceStack.ExceptionFilterHttpDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate object ExceptionFilterHttpDelegate(System.Net.Http.HttpResponseMessage webResponse, string requestUri, System.Type responseType); + +// Generated from `ServiceStack.ExplorerUi` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ExplorerUi +{ + public ServiceStack.ApiCss Css { get => throw null; set => throw null; } + public ExplorerUi() => throw null; + public ServiceStack.AppTags Tags { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.FieldCss` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class FieldCss +{ + public string Field { get => throw null; set => throw null; } + public FieldCss() => throw null; + public string Input { get => throw null; set => throw null; } + public string Label { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.FileContent` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class FileContent +{ + public System.Byte[] Body { get => throw null; set => throw null; } + public FileContent() => throw null; + public int Length { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.FilesUploadInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class FilesUploadInfo : ServiceStack.IMeta +{ + public string BasePath { get => throw null; set => throw null; } + public FilesUploadInfo() => throw null; + public System.Collections.Generic.List Locations { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.FilesUploadLocation` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class FilesUploadLocation +{ + public System.Collections.Generic.HashSet AllowExtensions { get => throw null; set => throw null; } + public string AllowOperations { get => throw null; set => throw null; } + public FilesUploadLocation() => throw null; + public System.Int64? MaxFileBytes { get => throw null; set => throw null; } + public int? MaxFileCount { get => throw null; set => throw null; } + public System.Int64? MinFileBytes { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string ReadAccessRole { get => throw null; set => throw null; } + public string WriteAccessRole { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.FormatInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class FormatInfo +{ + public FormatInfo() => throw null; + public string Locale { get => throw null; set => throw null; } + public string Method { get => throw null; set => throw null; } + public string Options { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GZipCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GZipCompressor : ServiceStack.Caching.IStreamCompressor +{ + public System.Byte[] Compress(System.Byte[] buffer) => throw null; + public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public string Decompress(System.Byte[] gzBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public System.IO.Stream Decompress(System.IO.Stream gzStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] DecompressBytes(System.Byte[] gzBuffer) => throw null; + public string Encoding { get => throw null; } + public GZipCompressor() => throw null; + public static ServiceStack.GZipCompressor Instance { get => throw null; } +} + +// Generated from `ServiceStack.GetAccessToken` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetAccessToken : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public GetAccessToken() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetAccessTokenResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetAccessTokenResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta +{ + public string AccessToken { get => throw null; set => throw null; } + public GetAccessTokenResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetApiKeys` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetApiKeys : ServiceStack.IGet, ServiceStack.IMeta, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public string Environment { get => throw null; set => throw null; } + public GetApiKeys() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetApiKeysResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetApiKeysResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta +{ + public GetApiKeysResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetCrudEvents` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetCrudEvents : ServiceStack.QueryDb +{ + public string AuthSecret { get => throw null; set => throw null; } + public GetCrudEvents() => throw null; + public string Model { get => throw null; set => throw null; } + public string ModelId { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetEventSubscribers` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetEventSubscribers : ServiceStack.IGet, ServiceStack.IReturn, ServiceStack.IReturn>>, ServiceStack.IVerb +{ + public string[] Channels { get => throw null; set => throw null; } + public GetEventSubscribers() => throw null; +} + +// Generated from `ServiceStack.GetFile` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetFile : ServiceStack.IGet, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public GetFile() => throw null; + public string Path { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetFileUpload : ServiceStack.IGet, ServiceStack.IHasBearerToken, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public bool? Attachment { get => throw null; set => throw null; } + public string BearerToken { get => throw null; set => throw null; } + public GetFileUpload() => throw null; + public string Name { get => throw null; set => throw null; } + public string Path { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetNavItems` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetNavItems : ServiceStack.IReturn, ServiceStack.IReturn +{ + public GetNavItems() => throw null; + public string Name { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetNavItemsResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetNavItemsResponse : ServiceStack.IMeta +{ + public string BaseUrl { get => throw null; set => throw null; } + public GetNavItemsResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary> NavItemsMap { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetPublicKey` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetPublicKey : ServiceStack.IReturn, ServiceStack.IReturn +{ + public GetPublicKey() => throw null; +} + +// Generated from `ServiceStack.GetValidationRules` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetValidationRules : ServiceStack.IReturn, ServiceStack.IReturn +{ + public string AuthSecret { get => throw null; set => throw null; } + public GetValidationRules() => throw null; + public string Type { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.GetValidationRulesResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class GetValidationRulesResponse +{ + public GetValidationRulesResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.HashUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class HashUtils +{ + public static System.Security.Cryptography.HashAlgorithm GetHashAlgorithm(string hashAlgorithm) => throw null; +} + +// Generated from `ServiceStack.HmacUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class HmacUtils +{ + public static System.Byte[] Authenticate(System.Byte[] encryptedBytes, System.Byte[] authKey, System.Byte[] iv) => throw null; + public static System.Security.Cryptography.HMAC CreateHashAlgorithm(System.Byte[] authKey) => throw null; + public static System.Byte[] DecryptAuthenticated(System.Byte[] authEncryptedBytes, System.Byte[] cryptKey) => throw null; + public const int KeySize = default; + public const int KeySizeBytes = default; + public static bool Verify(System.Byte[] authEncryptedBytes, System.Byte[] authKey) => throw null; +} + +// Generated from `ServiceStack.HttpCacheEntry` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class HttpCacheEntry +{ + public System.TimeSpan? Age { get => throw null; set => throw null; } + public bool CanUseCacheOnError() => throw null; + public System.Int64? ContentLength { get => throw null; set => throw null; } + public System.DateTime Created { get => throw null; set => throw null; } + public string ETag { get => throw null; set => throw null; } + public System.DateTime Expires { get => throw null; set => throw null; } + public bool HasExpired() => throw null; + public HttpCacheEntry(object response) => throw null; + public System.DateTime? LastModified { get => throw null; set => throw null; } + public System.TimeSpan MaxAge { 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 object Response { get => throw null; set => throw null; } + public void SetMaxAge(System.TimeSpan maxAge) => throw null; + public bool ShouldRevalidate() => throw null; +} + +// Generated from `ServiceStack.HttpClientDiagnosticEvent` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class HttpClientDiagnosticEvent : ServiceStack.DiagnosticEvent +{ + public HttpClientDiagnosticEvent() => throw null; + public System.Net.Http.HttpRequestMessage HttpRequest { get => throw null; set => throw null; } + public System.Net.Http.HttpResponseMessage HttpResponse { get => throw null; set => throw null; } + public object Request { get => throw null; set => throw null; } + public object Response { get => throw null; set => throw null; } + public System.Type ResponseType { get => throw null; set => throw null; } + public override string Source { get => throw null; } +} + +// Generated from `ServiceStack.HttpExt` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class HttpExt +{ + public static string GetDispositionFileName(string fileName) => throw null; + public static bool HasNonAscii(string s) => throw null; +} + +// Generated from `ServiceStack.ICachedServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public interface ICachedServiceClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable +{ + int CacheCount { get; } + System.Int64 CacheHits { get; } + System.Int64 CachesAdded { get; } + System.Int64 CachesRemoved { get; } + System.Int64 ErrorFallbackHits { get; } + System.Int64 NotModifiedHits { get; } + int RemoveCachesOlderThan(System.TimeSpan age); + int RemoveExpiredCachesOlderThan(System.TimeSpan age); + void SetCache(System.Collections.Concurrent.ConcurrentDictionary cache); +} + +// Generated from `ServiceStack.ICachedServiceClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ICachedServiceClientExtensions +{ + public static void ClearCache(this ServiceStack.ICachedServiceClient client) => throw null; + public static System.Collections.Generic.Dictionary GetStats(this ServiceStack.ICachedServiceClient client) => throw null; +} + +// Generated from `ServiceStack.IHasCookieContainer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public interface IHasCookieContainer +{ + System.Net.CookieContainer CookieContainer { get; } +} + +// Generated from `ServiceStack.IHasJsonApiClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public interface IHasJsonApiClient +{ + ServiceStack.JsonApiClient Client { get; } +} + +// Generated from `ServiceStack.IServiceClientMeta` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public interface IServiceClientMeta +{ + bool AlwaysSendBasicAuthHeader { get; } + string AsyncOneWayBaseUri { get; } + string BaseUri { get; set; } + string BearerToken { get; set; } + string Format { get; } + string Password { get; } + string RefreshToken { get; set; } + string RefreshTokenUri { get; set; } + string ResolveTypedUrl(string httpMethod, object requestDto); + string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl); + string SessionId { get; } + string SyncReplyBaseUri { get; } + string UserName { get; } + int Version { get; } +} + +// Generated from `ServiceStack.ITimer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public interface ITimer : System.IDisposable +{ + void Cancel(); +} + +// Generated from `ServiceStack.ImageInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ImageInfo +{ + public string Alt { get => throw null; set => throw null; } + public string Cls { get => throw null; set => throw null; } + public ImageInfo() => throw null; + public string Svg { get => throw null; set => throw null; } + public string Uri { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.InputInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class InputInfo : ServiceStack.IMeta +{ + public string Accept { get => throw null; set => throw null; } + public System.Collections.Generic.KeyValuePair[] AllowableEntries { get => throw null; set => throw null; } + public string[] AllowableValues { get => throw null; set => throw null; } + public string Autocomplete { get => throw null; set => throw null; } + public string Autofocus { get => throw null; set => throw null; } + public string Capture { get => throw null; set => throw null; } + public ServiceStack.FieldCss Css { get => throw null; set => throw null; } + public bool? Disabled { get => throw null; set => throw null; } + public string Help { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public bool? Ignore { get => throw null; set => throw null; } + public InputInfo() => throw null; + public InputInfo(string id) => throw null; + public InputInfo(string id, string type) => throw null; + public string Label { get => throw null; set => throw null; } + public string Max { get => throw null; set => throw null; } + public int? MaxLength { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Min { get => throw null; set => throw null; } + public int? MinLength { get => throw null; set => throw null; } + public bool? Multiple { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string Options { get => throw null; set => throw null; } + public string Pattern { get => throw null; set => throw null; } + public string Placeholder { get => throw null; set => throw null; } + public bool? ReadOnly { get => throw null; set => throw null; } + public bool? Required { get => throw null; set => throw null; } + public string Size { get => throw null; set => throw null; } + public int? Step { 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 Value { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.JsonApiClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class JsonApiClient : ServiceStack.IHasBearerToken, ServiceStack.IHasCookieContainer, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IJsonServiceClient, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientMeta, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable +{ + public void AddHeader(string name, string value) => throw null; + public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } + public ServiceStack.ApiResult ApiForm(ServiceStack.IReturn request, System.Net.Http.MultipartFormDataContent body) => throw null; + public ServiceStack.ApiResult ApiForm(string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request) => throw null; + public System.Threading.Tasks.Task> ApiFormAsync(ServiceStack.IReturn request, System.Net.Http.MultipartFormDataContent body, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> ApiFormAsync(string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string AsyncOneWayBaseUri { get => throw null; set => throw null; } + public string BasePath { get => throw null; set => throw null; } + public string BaseUri { get => throw null; set => throw null; } + public string BearerToken { get => throw null; set => throw null; } + public void CancelAsync() => throw null; + public void ClearCookies() => throw null; + public string ContentType; + public System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } + public System.Net.ICredentials Credentials { get => throw null; set => throw null; } + public void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, object requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string DefaultBasePath { get => throw null; set => throw null; } + public const string DefaultHttpMethod = default; + public static string DefaultUserAgent; + public void Delete(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Delete(ServiceStack.IReturn requestDto) => throw null; + public TResponse Delete(object requestDto) => throw null; + public TResponse Delete(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task DeleteAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token) => throw null; + public void Dispose() => throw null; + public bool EnableAutoRefreshToken { get => throw null; set => throw null; } + public ServiceStack.ExceptionFilterHttpDelegate ExceptionFilter { get => throw null; set => throw null; } + public string Format { get => throw null; set => throw null; } + public void Get(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Get(ServiceStack.IReturn requestDto) => throw null; + public TResponse Get(object requestDto) => throw null; + public TResponse Get(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task GetAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token) => throw null; + public System.Collections.Generic.Dictionary GetCookieValues() => throw null; + public System.Net.Http.HttpClient GetHttpClient() => throw null; + public string GetHttpMethod(object request) => throw null; + public virtual System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; + public static System.Byte[] GetResponseBytes(object response) => throw null; + public static System.Func GlobalHttpMessageHandlerFactory { get => throw null; set => throw null; } + public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } + public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } + public System.Net.Http.HttpClient HttpClient { get => throw null; set => throw null; } + public System.Net.Http.HttpMessageHandler HttpMessageHandler { get => throw null; set => throw null; } + public JsonApiClient(System.Net.Http.HttpClient httpClient) => throw null; + public JsonApiClient(string baseUri) => throw null; + public string Password { get => throw null; set => throw null; } + public void Patch(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Patch(ServiceStack.IReturn requestDto) => throw null; + public TResponse Patch(object requestDto) => throw null; + public TResponse Patch(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PatchAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token) => throw null; + public void Post(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Post(ServiceStack.IReturn requestDto) => throw null; + public TResponse Post(object requestDto) => throw null; + public TResponse Post(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PostAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token) => throw null; + public virtual TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType = default(string), string fieldName = default(string)) => throw null; + public virtual System.Threading.Tasks.Task PostFileAsync(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType = default(string), string fieldName = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public System.Threading.Tasks.Task PostFileWithRequestAsync(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostFileWithRequestAsync(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; + public TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; + public virtual TResponse PostFilesWithRequest(string requestUri, object request, ServiceStack.UploadFile[] files) => throw null; + public System.Threading.Tasks.Task PostFilesWithRequestAsync(object request, System.Collections.Generic.IEnumerable files, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PostFilesWithRequestAsync(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostFilesWithRequestAsync(string requestUri, object request, ServiceStack.UploadFile[] files, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void Publish(object request) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; + public virtual System.Threading.Tasks.Task PublishAsync(object request, System.Threading.CancellationToken token) => throw null; + public void Put(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Put(ServiceStack.IReturn requestDto) => throw null; + public TResponse Put(object requestDto) => throw null; + public TResponse Put(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PutAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token) => throw null; + public virtual TResponse PutFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType = default(string), string fieldName = default(string)) => throw null; + public string RefreshToken { get => throw null; set => throw null; } + public string RefreshTokenUri { get => throw null; set => throw null; } + public string RequestCompressionType { get => throw null; set => throw null; } + public System.Action RequestFilter { get => throw null; set => throw null; } + public virtual string ResolveTypedUrl(string httpMethod, object requestDto) => throw null; + public virtual string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl) => throw null; + public System.Action ResponseFilter { get => throw null; set => throw null; } + protected T ResultFilter(T response, System.Net.Http.HttpResponseMessage httpRes, string httpMethod, string requestUri, object request) where T : class => throw null; + public ServiceStack.ResultsFilterHttpDelegate ResultsFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterHttpResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } + public virtual TResponse Send(object request) => throw null; + public TResponse Send(string httpMethod, string absoluteUrl, object request) => throw null; + public TResponse Send(string httpMethod, string absoluteUrl, object request, object dto) => throw null; + public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; + public virtual System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public virtual System.Threading.Tasks.Task SendAsync(object request) => throw null; + public virtual System.Threading.Tasks.Task SendAsync(object request, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, object dto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public TResponse SendForm(string httpMethod, string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request) => throw null; + public System.Threading.Tasks.Task SendFormAsync(string httpMethod, string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void SendOneWay(object request) => throw null; + public void SendOneWay(string relativeOrAbsoluteUrl, object request) => throw null; + public string SessionId { get => throw null; set => throw null; } + public ServiceStack.JsonApiClient SetBaseUri(string baseUri) => throw null; + public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; + public void SetCredentials(string userName, string password) => throw null; + public string SyncReplyBaseUri { get => throw null; set => throw null; } + public void ThrowWebServiceException(System.Net.Http.HttpResponseMessage httpRes, object request, string requestUri, object response) => throw null; + public virtual string ToAbsoluteUrl(string relativeOrAbsoluteUrl) => throw null; + public static ServiceStack.WebServiceException ToWebServiceException(System.Net.Http.HttpResponseMessage httpRes, object response, System.Func parseDtoFn) => throw null; + public ServiceStack.TypedUrlResolverDelegate TypedUrlResolver { get => throw null; set => throw null; } + public ServiceStack.UrlResolverDelegate UrlResolver { get => throw null; set => throw null; } + public string UseBasePath { set => throw null; } + public bool UseCookies { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + public int Version { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.JsonApiClientUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class JsonApiClientUtils +{ + public static void AddApiKeyAuth(this System.Net.Http.HttpRequestMessage request, string apiKey) => throw null; + public static void AddBasicAuth(this System.Net.Http.HttpRequestMessage request, string userName, string password) => throw null; + public static void AddBearerToken(this System.Net.Http.HttpRequestMessage request, string bearerToken) => throw null; + public static System.Net.Http.MultipartFormDataContent AddCsvParam(this System.Net.Http.MultipartFormDataContent content, string key, T value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, System.IO.FileInfo file, string mimeType = default(string)) => throw null; + public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, ServiceStack.IO.IVirtualFile file, string mimeType = default(string)) => throw null; + public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, string fileName, System.ReadOnlyMemory fileContents, string mimeType = default(string)) => throw null; + public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, string fileName, System.IO.Stream fileContents, string mimeType = default(string)) => throw null; + public static System.Threading.Tasks.Task AddFileAsync(this System.Net.Http.MultipartFormDataContent content, string fieldName, System.IO.FileInfo file, string mimeType = default(string)) => throw null; + public static System.Net.Http.HttpContent AddFileInfo(this System.Net.Http.HttpContent content, string fieldName, string fileName, string mimeType = default(string)) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddJsonApiClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string baseUrl) => throw null; + public static System.Net.Http.MultipartFormDataContent AddJsonParam(this System.Net.Http.MultipartFormDataContent content, string key, T value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddJsvParam(this System.Net.Http.MultipartFormDataContent content, string key, T value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParam(this System.Net.Http.MultipartFormDataContent content, string key, object value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParam(this System.Net.Http.MultipartFormDataContent content, string key, string value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParams(this System.Net.Http.MultipartFormDataContent content, System.Collections.Generic.Dictionary map) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParams(this System.Net.Http.MultipartFormDataContent content, System.Collections.IDictionary map) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParams(this System.Net.Http.MultipartFormDataContent content, T dto) => throw null; + public static System.Threading.Tasks.Task> ApiAppMetadataAsync(this ServiceStack.IHasJsonApiClient instance, bool reload = default(bool)) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturnVoid request) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturn request) => throw null; + public static System.Threading.Tasks.Task> ApiCacheAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturn requestDto) => throw null; + public static string GetContentType(this System.Net.Http.HttpResponseMessage httpRes) => throw null; + public static System.Byte[] ReadAsByteArray(this System.Net.Http.HttpContent content) => throw null; + public static System.ReadOnlyMemory ReadAsMemoryBytes(this System.Net.Http.HttpContent content) => throw null; + public static string ReadAsString(this System.Net.Http.HttpContent content) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturn request) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Net.Http.Headers.HttpResponseHeaders headers) => throw null; + public static System.Net.Http.HttpContent ToHttpContent(this ServiceStack.IO.IVirtualFile file) => throw null; + public static System.Net.WebHeaderCollection ToWebHeaderCollection(this System.Net.Http.Headers.HttpResponseHeaders headers) => throw null; +} + +// Generated from `ServiceStack.JsonServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class JsonServiceClient : ServiceStack.ServiceClientBase, ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IJsonServiceClient, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable +{ + public override string ContentType { get => throw null; } + public override T DeserializeFromStream(System.IO.Stream stream) => throw null; + public override string Format { get => throw null; } + public JsonServiceClient() => throw null; + public JsonServiceClient(string baseUri) => throw null; + public JsonServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; + public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; + public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } +} + +// Generated from `ServiceStack.JsvServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class JsvServiceClient : ServiceStack.ServiceClientBase +{ + public override string ContentType { get => throw null; } + public override T DeserializeFromStream(System.IO.Stream stream) => throw null; + public override string Format { get => throw null; } + public JsvServiceClient() => throw null; + public JsvServiceClient(string baseUri) => throw null; + public JsvServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; + public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; + public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } +} + +// Generated from `ServiceStack.LinkInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class LinkInfo +{ + public string Hide { get => throw null; set => throw null; } + public string Href { get => throw null; set => throw null; } + public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public string Label { get => throw null; set => throw null; } + public LinkInfo() => throw null; + public string Show { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.LocodeUi` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class LocodeUi +{ + public ServiceStack.ApiCss Css { get => throw null; set => throw null; } + public LocodeUi() => throw null; + public int MaxFieldLength { get => throw null; set => throw null; } + public int MaxNestedFieldLength { get => throw null; set => throw null; } + public int MaxNestedFields { get => throw null; set => throw null; } + public ServiceStack.AppTags Tags { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MediaRule` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MediaRule : ServiceStack.IMeta +{ + public string[] ApplyTo { get => throw null; set => throw null; } + public MediaRule() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Rule { get => throw null; set => throw null; } + public string Size { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MessageExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class MessageExtensions +{ + public static ServiceStack.Messaging.IMessageProducer CreateMessageProducer(this ServiceStack.Messaging.IMessageService mqServer) => throw null; + public static ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient(this ServiceStack.Messaging.IMessageService mqServer) => throw null; + public static System.Byte[] ToBytes(this ServiceStack.Messaging.IMessage message) => throw null; + public static System.Byte[] ToBytes(this ServiceStack.Messaging.IMessage message) => throw null; + public static string ToDlqQueueName(this ServiceStack.Messaging.IMessage message) => throw null; + public static string ToInQueueName(this ServiceStack.Messaging.IMessage message) => throw null; + public static string ToInQueueName(this ServiceStack.Messaging.IMessage message) => throw null; + public static ServiceStack.Messaging.IMessage ToMessage(this System.Byte[] bytes, System.Type ofType) => throw null; + public static ServiceStack.Messaging.Message ToMessage(this System.Byte[] bytes) => throw null; + public static string ToString(System.Byte[] bytes) => throw null; +} + +// Generated from `ServiceStack.MetaAuthProvider` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetaAuthProvider : ServiceStack.IMeta +{ + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } + public string Label { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public MetaAuthProvider() => throw null; + public string Name { get => throw null; set => throw null; } + public ServiceStack.NavItem NavItem { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataApp` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataApp : ServiceStack.IReturn, ServiceStack.IReturn +{ + public System.Collections.Generic.List IncludeTypes { get => throw null; set => throw null; } + public MetadataApp() => throw null; + public string View { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataAttribute` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataAttribute +{ + public System.Collections.Generic.List Args { get => throw null; set => throw null; } + public System.Attribute Attribute { get => throw null; set => throw null; } + public System.Collections.Generic.List ConstructorArgs { get => throw null; set => throw null; } + public MetadataAttribute() => throw null; + public string Name { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataDataContract` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataDataContract +{ + public MetadataDataContract() => throw null; + public string Name { get => throw null; set => throw null; } + public string Namespace { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataDataMember` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataDataMember +{ + public bool? EmitDefaultValue { get => throw null; set => throw null; } + public bool? IsRequired { get => throw null; set => throw null; } + public MetadataDataMember() => throw null; + public string Name { get => throw null; set => throw null; } + public int? Order { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataOperationType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataOperationType +{ + public System.Collections.Generic.List Actions { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName DataModel { get => throw null; set => throw null; } + public MetadataOperationType() => throw null; + public string Method { get => throw null; set => throw null; } + public ServiceStack.MetadataType Request { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiresAnyPermission { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiresAnyRole { get => throw null; set => throw null; } + public bool? RequiresAuth { get => throw null; set => throw null; } + public ServiceStack.MetadataType Response { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName ReturnType { get => throw null; set => throw null; } + public bool? ReturnsVoid { get => throw null; set => throw null; } + public System.Collections.Generic.List Routes { get => throw null; set => throw null; } + public System.Collections.Generic.List Tags { get => throw null; set => throw null; } + public ServiceStack.ApiUiInfo Ui { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName ViewModel { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataPropertyType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataPropertyType +{ + public int? AllowableMax { get => throw null; set => throw null; } + public int? AllowableMin { get => throw null; set => throw null; } + public string[] AllowableValues { get => throw null; set => throw null; } + public System.Collections.Generic.List Attributes { get => throw null; set => throw null; } + public ServiceStack.MetadataDataMember DataMember { get => throw null; set => throw null; } + public string Description { get => throw null; set => throw null; } + public string DisplayType { get => throw null; set => throw null; } + public ServiceStack.FormatInfo Format { get => throw null; set => throw null; } + public string[] GenericArgs { get => throw null; set => throw null; } + public ServiceStack.InputInfo Input { get => throw null; set => throw null; } + public bool? IsEnum { get => throw null; set => throw null; } + public bool? IsPrimaryKey { get => throw null; set => throw null; } + public bool? IsRequired { get => throw null; set => throw null; } + public bool? IsValueType { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public MetadataPropertyType() => throw null; + public string Name { get => throw null; set => throw null; } + public string Namespace { get => throw null; set => throw null; } + public string ParamType { get => throw null; set => throw null; } + public System.Reflection.PropertyInfo PropertyInfo { get => throw null; set => throw null; } + public System.Type PropertyType { get => throw null; set => throw null; } + public bool? ReadOnly { get => throw null; set => throw null; } + public ServiceStack.RefInfo Ref { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } + public string Value { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataRoute` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataRoute +{ + public MetadataRoute() => throw null; + public string Notes { get => throw null; set => throw null; } + public string Path { get => throw null; set => throw null; } + public ServiceStack.RouteAttribute RouteAttribute { get => throw null; set => throw null; } + public string Summary { get => throw null; set => throw null; } + public string Verbs { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataType : ServiceStack.IMeta +{ + public System.Collections.Generic.List Attributes { get => throw null; set => throw null; } + public ServiceStack.MetadataDataContract DataContract { get => throw null; set => throw null; } + public string Description { get => throw null; set => throw null; } + public string DisplayType { get => throw null; set => throw null; } + public System.Collections.Generic.List EnumDescriptions { get => throw null; set => throw null; } + public System.Collections.Generic.List EnumMemberValues { get => throw null; set => throw null; } + public System.Collections.Generic.List EnumNames { get => throw null; set => throw null; } + public System.Collections.Generic.List EnumValues { get => throw null; set => throw null; } + protected bool Equals(ServiceStack.MetadataType other) => throw null; + public override bool Equals(object obj) => throw null; + public string[] GenericArgs { get => throw null; set => throw null; } + public string GetFullName() => throw null; + public override int GetHashCode() => throw null; + public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName[] Implements { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName Inherits { get => throw null; set => throw null; } + public System.Collections.Generic.List InnerTypes { get => throw null; set => throw null; } + public bool? IsAbstract { get => throw null; set => throw null; } + public bool IsClass { get => throw null; } + public bool? IsEnum { get => throw null; set => throw null; } + public bool? IsEnumInt { get => throw null; set => throw null; } + public bool? IsInterface { get => throw null; set => throw null; } + public bool? IsNested { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public MetadataType() => throw null; + public string Name { get => throw null; set => throw null; } + public string Namespace { get => throw null; set => throw null; } + public string Notes { get => throw null; set => throw null; } + public System.Collections.Generic.List Properties { get => throw null; set => throw null; } + public ServiceStack.MetadataOperationType RequestType { get => throw null; set => throw null; } + public System.Type Type { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataTypeExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class MetadataTypeExtensions +{ + public static System.Collections.Generic.List GetOperationsByTags(this ServiceStack.MetadataTypes types, string[] tags) => throw null; + public static System.Collections.Generic.List GetRoutes(this System.Collections.Generic.List operations, ServiceStack.MetadataType type) => throw null; + public static System.Collections.Generic.List GetRoutes(this System.Collections.Generic.List operations, string typeName) => throw null; + public static bool ImplementsAny(this ServiceStack.MetadataType type, System.Collections.Generic.HashSet typeNames) => throw null; + public static bool ImplementsAny(this ServiceStack.MetadataType type, params string[] typeNames) => throw null; + public static bool InheritsAny(this ServiceStack.MetadataType type, System.Collections.Generic.HashSet typeNames) => throw null; + public static bool InheritsAny(this ServiceStack.MetadataType type, params string[] typeNames) => throw null; + public static bool IsSystemOrServiceStackType(this ServiceStack.MetadataTypeName metaRef) => throw null; + public static bool ReferencesAny(this ServiceStack.MetadataOperationType op, params string[] typeNames) => throw null; + public static string ToScriptSignature(this ServiceStack.ScriptMethodType method) => throw null; +} + +// Generated from `ServiceStack.MetadataTypeName` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataTypeName +{ + public string[] GenericArgs { get => throw null; set => throw null; } + public MetadataTypeName() => throw null; + public string Name { 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; } +} + +// Generated from `ServiceStack.MetadataTypes` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataTypes +{ + public ServiceStack.MetadataTypesConfig Config { get => throw null; set => throw null; } + public MetadataTypes() => throw null; + public System.Collections.Generic.List Namespaces { get => throw null; set => throw null; } + public System.Collections.Generic.List Operations { get => throw null; set => throw null; } + public System.Collections.Generic.List Types { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.MetadataTypesConfig` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class MetadataTypesConfig +{ + public bool AddDataContractAttributes { get => throw null; set => throw null; } + public string AddDefaultXmlNamespace { get => throw null; set => throw null; } + public bool AddDescriptionAsComments { get => throw null; set => throw null; } + public bool AddGeneratedCodeAttributes { get => throw null; set => throw null; } + public int? AddImplicitVersion { get => throw null; set => throw null; } + public bool AddIndexesToDataMembers { get => throw null; set => throw null; } + public bool AddModelExtensions { get => throw null; set => throw null; } + public System.Collections.Generic.List AddNamespaces { get => throw null; set => throw null; } + public bool AddPropertyAccessors { get => throw null; set => throw null; } + public bool AddResponseStatus { get => throw null; set => throw null; } + public bool AddReturnMarker { get => throw null; set => throw null; } + public bool AddServiceStackTypes { get => throw null; set => throw null; } + public string BaseClass { get => throw null; set => throw null; } + public string BaseUrl { get => throw null; set => throw null; } + public string DataClass { get => throw null; set => throw null; } + public string DataClassJson { get => throw null; set => throw null; } + public System.Collections.Generic.List DefaultImports { get => throw null; set => throw null; } + public System.Collections.Generic.List DefaultNamespaces { get => throw null; set => throw null; } + public bool ExcludeGenericBaseTypes { get => throw null; set => throw null; } + public bool ExcludeImplementedInterfaces { get => throw null; set => throw null; } + public bool ExcludeNamespace { get => throw null; set => throw null; } + public System.Collections.Generic.List ExcludeTypes { get => throw null; set => throw null; } + public bool ExportAsTypes { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet ExportAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet ExportTypes { get => throw null; set => throw null; } + public bool ExportValueTypes { get => throw null; set => throw null; } + public string GlobalNamespace { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet IgnoreTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List IgnoreTypesInNamespaces { get => throw null; set => throw null; } + public System.Collections.Generic.List IncludeTypes { get => throw null; set => throw null; } + public bool InitializeCollections { get => throw null; set => throw null; } + public bool MakeDataContractsExtensible { get => throw null; set => throw null; } + public bool MakeInternal { get => throw null; set => throw null; } + public bool MakePartial { get => throw null; set => throw null; } + public bool MakePropertiesOptional { get => throw null; set => throw null; } + public bool MakeVirtual { get => throw null; set => throw null; } + public MetadataTypesConfig(string baseUrl = default(string), bool makePartial = default(bool), bool makeVirtual = default(bool), bool addReturnMarker = default(bool), bool convertDescriptionToComments = default(bool), bool addDataContractAttributes = default(bool), bool addIndexesToDataMembers = default(bool), bool addGeneratedCodeAttributes = default(bool), string addDefaultXmlNamespace = default(string), string baseClass = default(string), string package = default(string), bool addResponseStatus = default(bool), bool addServiceStackTypes = default(bool), bool addModelExtensions = default(bool), bool addPropertyAccessors = default(bool), bool excludeGenericBaseTypes = default(bool), bool settersReturnThis = default(bool), bool makePropertiesOptional = default(bool), bool makeDataContractsExtensible = default(bool), bool initializeCollections = default(bool), int? addImplicitVersion = default(int?)) => throw null; + public string Package { get => throw null; set => throw null; } + public bool SettersReturnThis { get => throw null; set => throw null; } + public System.Collections.Generic.List TreatTypesAsStrings { get => throw null; set => throw null; } + public string UsePath { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ModifyValidationRules` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ModifyValidationRules : ServiceStack.IReturn, ServiceStack.IReturnVoid +{ + public string AuthSecret { get => throw null; set => throw null; } + public bool? ClearCache { get => throw null; set => throw null; } + public int[] DeleteRuleIds { get => throw null; set => throw null; } + public ModifyValidationRules() => throw null; + public System.Collections.Generic.List SaveRules { get => throw null; set => throw null; } + public int[] SuspendRuleIds { get => throw null; set => throw null; } + public int[] UnsuspendRuleIds { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.NameValueCollectionWrapperExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class NameValueCollectionWrapperExtensions +{ + public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Specialized.NameValueCollection nameValues) => throw null; + public static string ToFormUrlEncoded(this System.Collections.Specialized.NameValueCollection queryParams) => throw null; + public static System.Collections.Specialized.NameValueCollection ToNameValueCollection(this System.Collections.Generic.Dictionary map) => throw null; +} + +// Generated from `ServiceStack.NetStandardPclExportClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class NetStandardPclExportClient : ServiceStack.PclExportClient +{ + public static ServiceStack.PclExportClient Configure() => throw null; + public override string GetHeader(System.Net.WebHeaderCollection headers, string name, System.Func valuePredicate) => throw null; + public NetStandardPclExportClient() => throw null; + public static ServiceStack.NetStandardPclExportClient Provider; + public override void SetIfModifiedSince(System.Net.HttpWebRequest webReq, System.DateTime lastModified) => throw null; +} + +// Generated from `ServiceStack.NewInstanceResolver` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class NewInstanceResolver : ServiceStack.Configuration.IResolver +{ + public NewInstanceResolver() => throw null; + public T TryResolve() => throw null; +} + +// Generated from `ServiceStack.PclExportClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class PclExportClient +{ + public virtual void AddHeader(System.Net.WebRequest webReq, System.Collections.Specialized.NameValueCollection headers) => throw null; + public virtual void CloseReadStream(System.IO.Stream stream) => throw null; + public virtual void CloseWriteStream(System.IO.Stream stream) => throw null; + public static void Configure(ServiceStack.PclExportClient instance) => throw null; + public static bool ConfigureProvider(string typeName) => throw null; + public virtual System.Exception CreateTimeoutException(System.Exception ex, string errorMsg) => throw null; + public virtual ServiceStack.ITimer CreateTimer(System.Threading.TimerCallback cb, System.TimeSpan timeOut, object state) => throw null; + public static System.Threading.Tasks.Task EmptyTask; + public virtual string GetHeader(System.Net.WebHeaderCollection headers, string name, System.Func valuePredicate) => throw null; + public virtual string HtmlAttributeEncode(string html) => throw null; + public virtual string HtmlDecode(string html) => throw null; + public virtual string HtmlEncode(string html) => throw null; + public static ServiceStack.PclExportClient Instance; + public virtual bool IsWebException(System.Net.WebException webEx) => throw null; + public System.Collections.Specialized.NameValueCollection NewNameValueCollection() => throw null; + public virtual System.Collections.Specialized.NameValueCollection ParseQueryString(string query) => throw null; + public PclExportClient() => throw null; + public virtual void RunOnUiThread(System.Action fn) => throw null; + public virtual void SetCookieContainer(System.Net.HttpWebRequest webRequest, ServiceStack.AsyncServiceClient client) => throw null; + public virtual void SetCookieContainer(System.Net.HttpWebRequest webRequest, ServiceStack.ServiceClientBase client) => throw null; + public virtual void SetIfModifiedSince(System.Net.HttpWebRequest webReq, System.DateTime lastModified) => throw null; + public virtual void SynchronizeCookies(ServiceStack.AsyncServiceClient client) => throw null; + public System.Threading.SynchronizationContext UiContext; + public virtual string UrlDecode(string url) => throw null; + public virtual string UrlEncode(string url) => throw null; + public virtual System.Threading.Tasks.Task WaitAsync(int waitForMs) => throw null; +} + +// Generated from `ServiceStack.PlatformRsaUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class PlatformRsaUtils +{ + public static System.Byte[] Decrypt(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes) => throw null; + public static System.Byte[] Encrypt(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes) => throw null; + public static string ExportToXml(System.Security.Cryptography.RSAParameters csp, bool includePrivateParameters) => throw null; + public static System.Security.Cryptography.RSAParameters ExtractFromXml(string xml) => throw null; + public static void FromXml(this System.Security.Cryptography.RSA rsa, string xml) => throw null; + public static System.Byte[] SignData(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes, string hashAlgorithm) => throw null; + public static System.Security.Cryptography.HashAlgorithmName ToHashAlgorithmName(string hashAlgorithm) => throw null; + public static string ToXml(this System.Security.Cryptography.RSA rsa, bool includePrivateParameters) => throw null; + public static bool VerifyData(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes, System.Byte[] signature, string hashAlgorithm) => throw null; +} + +// Generated from `ServiceStack.PluginInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class PluginInfo : ServiceStack.IMeta +{ + public ServiceStack.AdminUsersInfo AdminUsers { get => throw null; set => throw null; } + public ServiceStack.AuthInfo Auth { get => throw null; set => throw null; } + public ServiceStack.AutoQueryInfo AutoQuery { get => throw null; set => throw null; } + public ServiceStack.FilesUploadInfo FilesUpload { get => throw null; set => throw null; } + public System.Collections.Generic.List Loaded { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public PluginInfo() => throw null; + public ServiceStack.ProfilingInfo Profiling { get => throw null; set => throw null; } + public ServiceStack.RequestLogsInfo RequestLogs { get => throw null; set => throw null; } + public ServiceStack.SharpPagesInfo SharpPages { get => throw null; set => throw null; } + public ServiceStack.ValidationInfo Validation { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ProfilingInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ProfilingInfo : ServiceStack.IMeta +{ + public string AccessRole { get => throw null; set => throw null; } + public int DefaultLimit { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ProfilingInfo() => throw null; + public System.Collections.Generic.List SummaryFields { get => throw null; set => throw null; } + public string TagLabel { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ProgressDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate void ProgressDelegate(System.Int64 done, System.Int64 total); + +// Generated from `ServiceStack.RefInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class RefInfo +{ + public string Model { get => throw null; set => throw null; } + public string RefId { get => throw null; set => throw null; } + public RefInfo() => throw null; + public string RefLabel { get => throw null; set => throw null; } + public string SelfId { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.RefreshTokenException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class RefreshTokenException : ServiceStack.WebServiceException +{ + public RefreshTokenException(ServiceStack.WebServiceException webEx) => throw null; + public RefreshTokenException(string message) => throw null; + public RefreshTokenException(string message, System.Exception innerException) => throw null; +} + +// Generated from `ServiceStack.RegenerateApiKeys` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class RegenerateApiKeys : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public string Environment { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public RegenerateApiKeys() => throw null; +} + +// Generated from `ServiceStack.RegenerateApiKeysResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class RegenerateApiKeysResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta +{ + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public RegenerateApiKeysResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.Register` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class Register : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public bool? AutoLogin { get => throw null; set => throw null; } + public string ConfirmPassword { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public string Email { get => throw null; set => throw null; } + public string ErrorView { get => throw null; set => throw null; } + public string FirstName { get => throw null; set => throw null; } + public string LastName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public Register() => throw null; + public string UserName { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.RegisterResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class RegisterResponse : ServiceStack.IHasBearerToken, ServiceStack.IHasRefreshToken, ServiceStack.IHasResponseStatus, ServiceStack.IHasSessionId, ServiceStack.IMeta +{ + public string BearerToken { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public string ReferrerUrl { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public RegisterResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ReplaceFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ReplaceFileUpload : ServiceStack.IHasBearerToken, ServiceStack.IPut, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public string BearerToken { 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 ReplaceFileUpload() => throw null; +} + +// Generated from `ServiceStack.ReplaceFileUploadResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ReplaceFileUploadResponse +{ + public ReplaceFileUploadResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.RequestLogsInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class RequestLogsInfo : ServiceStack.IMeta +{ + public string AccessRole { get => throw null; set => throw null; } + public int DefaultLimit { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string RequestLogger { get => throw null; set => throw null; } + public RequestLogsInfo() => throw null; + public string[] RequiredRoles { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ResponseStatusUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ResponseStatusUtils +{ + public static ServiceStack.ResponseStatus CreateResponseStatus(string errorCode, string errorMessage, System.Collections.Generic.IEnumerable validationErrors = default(System.Collections.Generic.IEnumerable)) => throw null; +} + +// Generated from `ServiceStack.RestRoute` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class RestRoute +{ + public ServiceStack.RouteResolutionResult Apply(object request, string httpMethod) => throw null; + public const string EmptyArray = default; + public string ErrorMsg { get => throw null; set => throw null; } + public static System.Func FormatQueryParameterValue; + public string FormatQueryParameters(object request) => throw null; + public static System.Func FormatVariable; + public string[] HttpMethods { get => throw null; } + public bool IsValid { get => throw null; } + public string Path { get => throw null; } + public int Priority { get => throw null; } + public System.Collections.Generic.List QueryStringVariables { get => throw null; } + public RestRoute(System.Type type, string path, string verbs, int priority) => throw null; + public System.Type Type { get => throw null; set => throw null; } + public System.Collections.Generic.ICollection Variables { get => throw null; } +} + +// Generated from `ServiceStack.ResultsFilterDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate object ResultsFilterDelegate(System.Type responseType, string httpMethod, string requestUri, object request); + +// Generated from `ServiceStack.ResultsFilterHttpDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate object ResultsFilterHttpDelegate(System.Type responseType, string httpMethod, string requestUri, object request); + +// Generated from `ServiceStack.ResultsFilterHttpResponseDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate void ResultsFilterHttpResponseDelegate(System.Net.Http.HttpResponseMessage webResponse, object response, string httpMethod, string requestUri, object request); + +// Generated from `ServiceStack.ResultsFilterResponseDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate void ResultsFilterResponseDelegate(System.Net.WebResponse webResponse, object response, string httpMethod, string requestUri, object request); + +// Generated from `ServiceStack.RouteResolutionResult` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class RouteResolutionResult +{ + public static ServiceStack.RouteResolutionResult Error(ServiceStack.RestRoute route, string errorMsg) => throw null; + public string FailReason { get => throw null; set => throw null; } + public bool Matches { get => throw null; } + public ServiceStack.RestRoute Route { get => throw null; set => throw null; } + public RouteResolutionResult() => throw null; + public static ServiceStack.RouteResolutionResult Success(ServiceStack.RestRoute route, string uri) => throw null; + public string Uri { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.RsaKeyLengths` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public enum RsaKeyLengths +{ + Bit1024, + Bit2048, + Bit4096, +} + +// Generated from `ServiceStack.RsaKeyPair` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class RsaKeyPair +{ + public string PrivateKey { get => throw null; set => throw null; } + public string PublicKey { get => throw null; set => throw null; } + public RsaKeyPair() => throw null; +} + +// Generated from `ServiceStack.RsaUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class RsaUtils +{ + public static System.Byte[] Authenticate(System.Byte[] dataToSign, System.Security.Cryptography.RSAParameters privateKey, string hashAlgorithm = default(string), ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static System.Security.Cryptography.RSAParameters CreatePrivateKeyParams(ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static ServiceStack.RsaKeyPair CreatePublicAndPrivateKeyPair(ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, System.Security.Cryptography.RSAParameters privateKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, string privateKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string Decrypt(this string text) => throw null; + public static string Decrypt(string encryptedText, System.Security.Cryptography.RSAParameters privateKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string Decrypt(string encryptedText, string privateKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static ServiceStack.RsaKeyPair DefaultKeyPair; + public static bool DoOAEPPadding; + public static System.Byte[] Encrypt(System.Byte[] bytes, System.Security.Cryptography.RSAParameters publicKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static System.Byte[] Encrypt(System.Byte[] bytes, string publicKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string Encrypt(this string text) => throw null; + public static string Encrypt(string text, System.Security.Cryptography.RSAParameters publicKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string Encrypt(string text, string publicKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string FromPrivateRSAParameters(this System.Security.Cryptography.RSAParameters privateKey) => throw null; + public static string FromPublicRSAParameters(this System.Security.Cryptography.RSAParameters publicKey) => throw null; + public static ServiceStack.RsaKeyLengths KeyLength; + public static string ToPrivateKeyXml(this System.Security.Cryptography.RSAParameters privateKey) => throw null; + public static System.Security.Cryptography.RSAParameters ToPrivateRSAParameters(this string privateKeyXml) => throw null; + public static string ToPublicKeyXml(this System.Security.Cryptography.RSAParameters publicKey) => throw null; + public static System.Security.Cryptography.RSAParameters ToPublicRSAParameters(this string publicKeyXml) => throw null; + public static System.Security.Cryptography.RSAParameters ToPublicRsaParameters(this System.Security.Cryptography.RSAParameters privateKey) => throw null; + public static bool Verify(System.Byte[] dataToVerify, System.Byte[] signature, System.Security.Cryptography.RSAParameters publicKey, string hashAlgorithm = default(string), ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; +} + +// Generated from `ServiceStack.ScriptMethodType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ScriptMethodType +{ + public string Name { get => throw null; set => throw null; } + public string[] ParamNames { get => throw null; set => throw null; } + public string[] ParamTypes { get => throw null; set => throw null; } + public string ReturnType { get => throw null; set => throw null; } + public ScriptMethodType() => throw null; +} + +// Generated from `ServiceStack.ServerEventCallback` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate void ServerEventCallback(ServiceStack.ServerEventsClient source, ServiceStack.ServerEventMessage args); + +// Generated from `ServiceStack.ServerEventClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ServerEventClientExtensions +{ + public static ServiceStack.AuthenticateResponse Authenticate(this ServiceStack.ServerEventsClient client, ServiceStack.Authenticate request) => throw null; + public static System.Threading.Tasks.Task AuthenticateAsync(this ServiceStack.ServerEventsClient client, ServiceStack.Authenticate request) => throw null; + public static System.Collections.Generic.List GetChannelSubscribers(this ServiceStack.ServerEventsClient client) => throw null; + public static System.Threading.Tasks.Task> GetChannelSubscribersAsync(this ServiceStack.ServerEventsClient client) => throw null; + public static T Populate(this T dst, ServiceStack.ServerEventMessage src, System.Collections.Generic.Dictionary msg) where T : ServiceStack.ServerEventMessage => throw null; + public static ServiceStack.ServerEventsClient RegisterHandlers(this ServiceStack.ServerEventsClient client, System.Collections.Generic.Dictionary handlers) => throw null; + public static void SubscribeToChannels(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; + public static System.Threading.Tasks.Task SubscribeToChannelsAsync(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; + public static void UnsubscribeFromChannels(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; + public static System.Threading.Tasks.Task UnsubscribeFromChannelsAsync(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; + public static void UpdateSubscriber(this ServiceStack.ServerEventsClient client, ServiceStack.UpdateEventSubscriber request) => throw null; + public static System.Threading.Tasks.Task UpdateSubscriberAsync(this ServiceStack.ServerEventsClient client, ServiceStack.UpdateEventSubscriber request) => throw null; +} + +// Generated from `ServiceStack.ServerEventCommand` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventCommand : ServiceStack.ServerEventMessage +{ + public string[] Channels { get => throw null; set => throw null; } + public System.DateTime CreatedAt { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public bool IsAuthenticated { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public ServerEventCommand() => throw null; + public string UserId { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ServerEventConnect` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventConnect : ServiceStack.ServerEventCommand +{ + public System.Int64 HeartbeatIntervalMs { get => throw null; set => throw null; } + public string HeartbeatUrl { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Int64 IdleTimeoutMs { get => throw null; set => throw null; } + public ServerEventConnect() => throw null; + public string UnRegisterUrl { get => throw null; set => throw null; } + public string UpdateSubscriberUrl { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ServerEventHeartbeat` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventHeartbeat : ServiceStack.ServerEventCommand +{ + public ServerEventHeartbeat() => throw null; +} + +// Generated from `ServiceStack.ServerEventJoin` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventJoin : ServiceStack.ServerEventCommand +{ + public ServerEventJoin() => throw null; +} + +// Generated from `ServiceStack.ServerEventLeave` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventLeave : ServiceStack.ServerEventCommand +{ + public ServerEventLeave() => throw null; +} + +// Generated from `ServiceStack.ServerEventMessage` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventMessage : ServiceStack.IMeta +{ + public string Channel { get => throw null; set => throw null; } + public string CssSelector { get => throw null; set => throw null; } + public string Data { get => throw null; set => throw null; } + public System.Int64 EventId { get => throw null; set => throw null; } + public string Json { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Op { get => throw null; set => throw null; } + public string Selector { get => throw null; set => throw null; } + public ServerEventMessage() => throw null; + public string Target { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ServerEventReceiver` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventReceiver : ServiceStack.IReceiver +{ + public ServiceStack.ServerEventsClient Client { get => throw null; set => throw null; } + public static ServiceStack.Logging.ILog Log; + public virtual void NoSuchMethod(string selector, object message) => throw null; + public ServiceStack.ServerEventMessage Request { get => throw null; set => throw null; } + public ServerEventReceiver() => throw null; +} + +// Generated from `ServiceStack.ServerEventUpdate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventUpdate : ServiceStack.ServerEventCommand +{ + public ServerEventUpdate() => throw null; +} + +// Generated from `ServiceStack.ServerEventUser` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventUser : ServiceStack.IMeta +{ + public string[] Channels { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public ServerEventUser() => throw null; + public string UserId { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ServerEventsClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ServerEventsClient : System.IDisposable +{ + public ServiceStack.ServerEventsClient AddListener(string eventName, System.Action handler) => throw null; + public System.Action AllRequestFilters { get => throw null; set => throw null; } + public string BaseUri { get => throw null; set => throw null; } + public static int BufferSize; + public string[] Channels { get => throw null; set => throw null; } + public System.Threading.Tasks.Task Connect() => throw null; + public string ConnectionDisplayName { get => throw null; } + public ServiceStack.ServerEventConnect ConnectionInfo { get => throw null; set => throw null; } + public void Dispose() => throw null; + public string EventStreamPath { get => throw null; set => throw null; } + public System.Action EventStreamRequestFilter { get => throw null; set => throw null; } + public string EventStreamUri { get => throw null; set => throw null; } + public virtual string GetStatsDescription() => throw null; + public System.Collections.Concurrent.ConcurrentDictionary Handlers { get => throw null; } + public bool HasListener(string eventName, System.Action handler) => throw null; + public bool HasListeners(string eventName) => throw null; + protected void Heartbeat(object state) => throw null; + public System.Action HeartbeatRequestFilter { get => throw null; set => throw null; } + public System.Func HttpClientHandlerFactory { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task InternalStop() => throw null; + public bool IsStopped { get => throw null; } + public System.DateTime LastPulseAt { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary NamedReceivers { get => throw null; } + public System.Action OnCommand; + protected void OnCommandReceived(ServiceStack.ServerEventCommand e) => throw null; + public System.Action OnConnect; + protected void OnConnectReceived() => throw null; + public System.Action OnException; + protected void OnExceptionReceived(System.Exception ex) => throw null; + public System.Action OnHeartbeat; + protected void OnHeartbeatReceived(ServiceStack.ServerEventHeartbeat e) => throw null; + public System.Action OnJoin; + protected void OnJoinReceived(ServiceStack.ServerEventJoin e) => throw null; + public System.Action OnLeave; + protected void OnLeaveReceived(ServiceStack.ServerEventLeave e) => throw null; + public System.Action OnMessage; + protected void OnMessageReceived(ServiceStack.ServerEventMessage e) => throw null; + public System.Action OnReconnect; + public System.Action OnUpdate; + protected void OnUpdateReceived(ServiceStack.ServerEventUpdate e) => throw null; + public void ProcessLine(string line) => throw null; + public void ProcessResponse(System.IO.Stream stream) => throw null; + public void RaiseEvent(string eventName, ServiceStack.ServerEventMessage message) => throw null; + public System.Collections.Generic.List ReceiverTypes { get => throw null; } + public ServiceStack.ServerEventsClient RegisterNamedReceiver(string receiverName) where T : ServiceStack.IReceiver => throw null; + public ServiceStack.ServerEventsClient RegisterReceiver() where T : ServiceStack.IReceiver => throw null; + public void RemoveAllListeners() => throw null; + public void RemoveAllRegistrations() => throw null; + public ServiceStack.ServerEventsClient RemoveListener(string eventName, System.Action handler) => throw null; + public ServiceStack.ServerEventsClient RemoveListeners(string eventName) => throw null; + public System.Func ResolveStreamUrl { get => throw null; set => throw null; } + public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } + public void Restart() => throw null; + public ServerEventsClient(string baseUri, params string[] channels) => throw null; + public ServiceStack.IServiceClient ServiceClient { get => throw null; set => throw null; } + public ServiceStack.ServerEventsClient Start() => throw null; + protected void StartNewHeartbeat() => throw null; + public string Status { get => throw null; } + public virtual System.Threading.Tasks.Task Stop() => throw null; + public bool StrictMode { get => throw null; set => throw null; } + public string SubscriptionId { get => throw null; } + public int TimesStarted { get => throw null; } + public static ServiceStack.ServerEventMessage ToTypedMessage(ServiceStack.ServerEventMessage e) => throw null; + public System.Action UnRegisterRequestFilter { get => throw null; set => throw null; } + public void Update(string[] subscribe = default(string[]), string[] unsubscribe = default(string[])) => throw null; + public System.Threading.Tasks.Task WaitForNextCommand() => throw null; + public System.Threading.Tasks.Task WaitForNextHeartbeat() => throw null; + public System.Threading.Tasks.Task WaitForNextMessage() => throw null; +} + +// Generated from `ServiceStack.ServiceClientBase` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public abstract class ServiceClientBase : ServiceStack.IHasBearerToken, ServiceStack.IHasCookieContainer, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientMeta, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, ServiceStack.Messaging.IMessageProducer, System.IDisposable +{ + public virtual string Accept { get => throw null; } + public void AddHeader(string name, string value) => throw null; + public bool AllowAutoRedirect { get => throw null; set => throw null; } + public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } + public string AsyncOneWayBaseUri { get => throw null; set => throw null; } + public string BasePath { get => throw null; set => throw null; } + public string BaseUri { get => throw null; set => throw null; } + public string BearerToken { get => throw null; set => throw null; } + public void CaptureHttp(System.Action httpFilter) => throw null; + public void CaptureHttp(bool print = default(bool), bool log = default(bool), bool clear = default(bool)) => throw null; + public void ClearCookies() => throw null; + public abstract string ContentType { get; } + public System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } + public System.Net.ICredentials Credentials { get => throw null; set => throw null; } + public virtual void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse CustomMethod(string httpVerb, object requestDto) => throw null; + public virtual System.Net.HttpWebResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object requestDto) => throw null; + public virtual TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse CustomMethod(string httpVerb, object requestDto) => throw null; + public virtual TResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object requestDto = default(object)) => throw null; + public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public const string DefaultHttpMethod = default; + public static string DefaultUserAgent; + public virtual void Delete(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Delete(object requestDto) => throw null; + public virtual System.Net.HttpWebResponse Delete(string relativeOrAbsoluteUrl) => throw null; + public virtual TResponse Delete(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Delete(object requestDto) => throw null; + public virtual TResponse Delete(string relativeOrAbsoluteUrl) => throw null; + public virtual System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected T Deserialize(string text) => throw null; + public abstract T DeserializeFromStream(System.IO.Stream stream); + public bool DisableAutoCompression { get => throw null; set => throw null; } + public void Dispose() => throw null; + public System.Byte[] DownloadBytes(string httpMethod, string requestUri, object request) => throw null; + public System.Threading.Tasks.Task DownloadBytesAsync(string httpMethod, string requestUri, object request) => throw null; + public bool EmulateHttpViaPost { get => throw null; set => throw null; } + public bool EnableAutoRefreshToken { get => throw null; set => throw null; } + public ServiceStack.ExceptionFilterDelegate ExceptionFilter { get => throw null; set => throw null; } + public abstract string Format { get; } + public virtual void Get(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Get(object requestDto) => throw null; + public virtual System.Net.HttpWebResponse Get(string relativeOrAbsoluteUrl) => throw null; + public virtual TResponse Get(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Get(object requestDto) => throw null; + public virtual TResponse Get(string relativeOrAbsoluteUrl) => throw null; + public virtual System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.Dictionary GetCookieValues() => throw null; + public string GetHttpMethod(object request) => throw null; + public virtual System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; + protected TResponse GetResponse(System.Net.WebResponse webRes) => throw null; + public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } + public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } + protected virtual bool HandleResponseException(System.Exception ex, object request, string requestUri, System.Func createWebRequest, System.Func getResponse, out TResponse response) => throw null; + public virtual System.Net.HttpWebResponse Head(ServiceStack.IReturn requestDto) => throw null; + public virtual System.Net.HttpWebResponse Head(object requestDto) => throw null; + public virtual System.Net.HttpWebResponse Head(string relativeOrAbsoluteUrl) => throw null; + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } + public System.Net.Http.HttpClient HttpClient { get => throw null; set => throw null; } + public System.Text.StringBuilder HttpLog { get => throw null; set => throw null; } + public System.Action HttpLogFilter { get => throw null; set => throw null; } + public string HttpMethod { get => throw null; set => throw null; } + public System.Action OnAuthenticationRequired { get => throw null; set => throw null; } + public ServiceStack.ProgressDelegate OnDownloadProgress { get => throw null; set => throw null; } + public ServiceStack.ProgressDelegate OnUploadProgress { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public virtual void Patch(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Patch(object requestDto) => throw null; + public virtual TResponse Patch(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Patch(object requestDto) => throw null; + public virtual TResponse Patch(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public virtual System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void Post(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Post(object requestDto) => throw null; + public virtual TResponse Post(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Post(object requestDto) => throw null; + public virtual TResponse Post(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public virtual System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType, string fieldName = default(string)) => throw null; + public virtual TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public virtual TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public virtual TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; + public virtual TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; + protected System.Net.WebRequest PrepareWebRequest(string httpMethod, string requestUri, object request, System.Action sendRequestAction) => throw null; + public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } + public virtual void Publish(object requestDto) => throw null; + public void Publish(ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(T requestDto) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PublishAsync(object request, System.Threading.CancellationToken token) => throw null; + public virtual void Put(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Put(object requestDto) => throw null; + public virtual TResponse Put(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Put(object requestDto) => throw null; + public virtual TResponse Put(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public virtual System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.TimeSpan? ReadWriteTimeout { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public string RefreshTokenUri { get => throw null; set => throw null; } + public string RequestCompressionType { get => throw null; set => throw null; } + public System.Action RequestFilter { get => throw null; set => throw null; } + public virtual string ResolveTypedUrl(string httpMethod, object requestDto) => throw null; + public virtual string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl) => throw null; + public System.Action ResponseFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterDelegate ResultsFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } + public virtual TResponse Send(object request) => throw null; + public virtual TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request) => throw null; + public virtual System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; + public virtual void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public virtual System.Threading.Tasks.Task SendAsync(object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void SendOneWay(object request) => throw null; + public virtual void SendOneWay(string relativeOrAbsoluteUrl, object request) => throw null; + public virtual void SendOneWay(string httpMethod, string relativeOrAbsoluteUrl, object requestDto) => throw null; + protected virtual System.Net.WebRequest SendRequest(string httpMethod, string requestUri, object request) => throw null; + public static string SendStringToUrl(System.Net.HttpWebRequest webReq, string method, string requestBody, string contentType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task SendStringToUrlAsync(System.Net.HttpWebRequest webReq, string method, string requestBody, string contentType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual void SerializeRequestToStream(object request, System.IO.Stream requestStream, bool keepOpen = default(bool)) => throw null; + public abstract void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream); + protected ServiceClientBase() => throw null; + protected ServiceClientBase(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; + public string SessionId { get => throw null; set => throw null; } + public void SetBaseUri(string baseUri) => throw null; + public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; + public void SetCredentials(string userName, string password) => throw null; + public bool ShareCookiesWithBrowser { get => throw null; set => throw null; } + public bool StoreCookies { get => throw null; set => throw null; } + public abstract ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get; } + public string SyncReplyBaseUri { get => throw null; set => throw null; } + protected void ThrowResponseTypeException(object request, System.Exception ex, string requestUri) => throw null; + public void ThrowWebServiceException(System.Exception ex, string requestUri) => throw null; + public System.TimeSpan? Timeout { get => throw null; set => throw null; } + public virtual string ToAbsoluteUrl(string relativeOrAbsoluteUrl) => throw null; + public static ServiceStack.WebServiceException ToWebServiceException(System.Net.WebException webEx, System.Func parseDtoFn, string contentType) => throw null; + public ServiceStack.TypedUrlResolverDelegate TypedUrlResolver { get => throw null; set => throw null; } + public static void UploadFile(System.Net.WebRequest webRequest, System.IO.Stream fileStream, string fileName, string mimeType, string accept = default(string), System.Action requestFilter = default(System.Action), string method = default(string), string fieldName = default(string)) => throw null; + public ServiceStack.UrlResolverDelegate UrlResolver { get => throw null; set => throw null; } + public string UseBasePath { set => throw null; } + public string UserAgent { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + public int Version { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ServiceClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ServiceClientExtensions +{ + public static void AddAuthSecret(this ServiceStack.IRestClient client, string authsecret) => throw null; + public static T Apply(this T client, System.Action fn) where T : ServiceStack.IServiceGateway => throw null; + public static System.Net.CookieContainer AssertCookieContainer(this ServiceStack.IServiceClient client) => throw null; + public static TResponse Delete(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; + public static void DeleteCookie(this System.Net.CookieContainer cookieContainer, System.Uri uri, string name) => throw null; + public static void DeleteCookie(this ServiceStack.IHasCookieContainer hasCookieContainer, System.Uri uri, string name) => throw null; + public static void DeleteCookie(this ServiceStack.IJsonServiceClient client, string name) => throw null; + public static void DeleteRefreshTokenCookie(this ServiceStack.IJsonServiceClient client) => throw null; + public static void DeleteTokenCookie(this ServiceStack.IJsonServiceClient client) => throw null; + public static void DeleteTokenCookies(this ServiceStack.IJsonServiceClient client) => throw null; + public static TResponse Get(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; + public static string GetCookieValue(this ServiceStack.AsyncServiceClient client, string name) => throw null; + public static ServiceStack.IEncryptedClient GetEncryptedClient(this ServiceStack.IJsonServiceClient client, System.Security.Cryptography.RSAParameters publicKey) => throw null; + public static ServiceStack.IEncryptedClient GetEncryptedClient(this ServiceStack.IJsonServiceClient client, string serverPublicKeyXml) => throw null; + public static string GetOptions(this ServiceStack.IServiceClient client) => throw null; + public static string GetPermanentSessionId(this ServiceStack.IServiceClient client) => throw null; + public static string GetRefreshTokenCookie(this ServiceStack.AsyncServiceClient client) => throw null; + public static string GetRefreshTokenCookie(this System.Net.CookieContainer cookies, string baseUri) => throw null; + public static string GetRefreshTokenCookie(this ServiceStack.IServiceClient client) => throw null; + public static string GetSessionId(this ServiceStack.IServiceClient client) => throw null; + public static string GetTokenCookie(this ServiceStack.AsyncServiceClient client) => throw null; + public static string GetTokenCookie(this System.Net.CookieContainer cookies, string baseUri) => throw null; + public static string GetTokenCookie(this ServiceStack.IServiceClient client) => throw null; + public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; + public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; + public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; + public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; + public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void PopulateRequestMetadata(this ServiceStack.IHasSessionId client, object request) => throw null; + public static void PopulateRequestMetadatas(this ServiceStack.IHasSessionId client, System.Collections.Generic.IEnumerable requests) => throw null; + public static TResponse Post(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; + public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; + public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; + public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; + public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; + public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static TResponse PostFile(this ServiceStack.IRestClient client, string relativeOrAbsoluteUrl, System.IO.FileInfo fileToUpload, string mimeType, string fieldName = default(string)) => throw null; + public static TResponse PostFileWithRequest(this ServiceStack.IRestClient client, System.IO.FileInfo fileToUpload, object request, string fieldName = default(string)) => throw null; + public static TResponse PostFileWithRequest(this ServiceStack.IRestClient client, string relativeOrAbsoluteUrl, System.IO.FileInfo fileToUpload, object request, string fieldName = default(string)) => throw null; + public static TResponse Put(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; + public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; + public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; + public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; + public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; + public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.IO.Stream ResponseStream(this System.Net.WebResponse webRes) => throw null; + public static void Send(this ServiceStack.IEncryptedClient client, ServiceStack.IReturnVoid request) => throw null; + public static void SetCookie(this System.Net.CookieContainer cookieContainer, System.Uri baseUri, string name, string value, System.DateTime? expiresAt, string path = default(string), bool? httpOnly = default(bool?), bool? secure = default(bool?)) => throw null; + public static void SetCookie(this ServiceStack.IServiceClient client, System.Uri baseUri, string name, string value, System.DateTime? expiresAt = default(System.DateTime?), string path = default(string), bool? httpOnly = default(bool?), bool? secure = default(bool?)) => throw null; + public static void SetOptions(this ServiceStack.IServiceClient client, string options) => throw null; + public static void SetPermanentSessionId(this ServiceStack.IServiceClient client, string sessionId) => throw null; + public static void SetRefreshTokenCookie(this System.Net.CookieContainer cookies, string baseUri, string token) => throw null; + public static void SetRefreshTokenCookie(this ServiceStack.IServiceClient client, string token) => throw null; + public static void SetSessionId(this ServiceStack.IServiceClient client, string sessionId) => throw null; + public static void SetTokenCookie(this System.Net.CookieContainer cookies, string baseUri, string token) => throw null; + public static void SetTokenCookie(this ServiceStack.IServiceClient client, string token) => throw null; + public static void SetUserAgent(this System.Net.HttpWebRequest req, string userAgent) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Net.CookieContainer cookies, string baseUri) => throw null; + public static T WithBasePath(this T client, string basePath) where T : ServiceStack.ServiceClientBase => throw null; +} + +// Generated from `ServiceStack.ServiceClientUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ServiceClientUtils +{ + public static string GetAutoQueryMethod(System.Type requestType) => throw null; + public static string GetHttpMethod(System.Type requestType) => throw null; + public static string GetIVerbMethod(System.Type requestType) => throw null; + public static string GetIVerbMethod(System.Type[] interfaceTypes) => throw null; + public static string[] GetRouteMethods(System.Type requestType) => throw null; + public static string GetSingleRouteMethod(System.Type requestType) => throw null; + public static System.Collections.Generic.HashSet SupportedMethods { get => throw null; } +} + +// Generated from `ServiceStack.ServiceGatewayAsyncWrappers` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ServiceGatewayAsyncWrappers +{ + public static System.Threading.Tasks.Task> Api(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> ApiAllAsync(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn[] requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> ApiAllAsync(this ServiceStack.IServiceClientAsync client, System.Collections.Generic.List> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> ApiAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PublishAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PublishAllAsync(this ServiceStack.IServiceGatewayAsync client, System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PublishAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task Send(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn[] requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceClientAsync client, System.Collections.Generic.List> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; +} + +// Generated from `ServiceStack.ServiceGatewayExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class ServiceGatewayExtensions +{ + public static ServiceStack.ApiResult Api(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid request) => throw null; + public static ServiceStack.ApiResult Api(this ServiceStack.IServiceGateway client, ServiceStack.IReturn request) => throw null; + public static ServiceStack.ApiResult> ApiAll(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> request) => throw null; + public static System.Type GetResponseType(this ServiceStack.IServiceGateway client, object request) => throw null; + public static void Send(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid request) => throw null; + public static object Send(this ServiceStack.IServiceGateway client, System.Type responseType, object request) => throw null; + public static TResponse Send(this ServiceStack.IServiceGateway client, ServiceStack.IReturn request) => throw null; + public static System.Collections.Generic.List SendAll(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> request) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, System.Type responseType, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; +} + +// Generated from `ServiceStack.SharpPagesInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class SharpPagesInfo : ServiceStack.IMeta +{ + public string ApiPath { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public bool? MetadataDebug { get => throw null; set => throw null; } + public string MetadataDebugAdminRole { get => throw null; set => throw null; } + public string ScriptAdminRole { get => throw null; set => throw null; } + public SharpPagesInfo() => throw null; + public bool? SpaFallback { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.SingletonInstanceResolver` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class SingletonInstanceResolver : ServiceStack.Configuration.IResolver +{ + public SingletonInstanceResolver() => throw null; + public T TryResolve() => throw null; +} + +// Generated from `ServiceStack.StoreFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class StoreFileUpload : ServiceStack.IHasBearerToken, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public string BearerToken { 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 StoreFileUpload() => throw null; +} + +// Generated from `ServiceStack.StoreFileUploadResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class StoreFileUploadResponse +{ + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + public StoreFileUploadResponse() => throw null; +} + +// Generated from `ServiceStack.StreamCompressors` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class StreamCompressors +{ + public static ServiceStack.Caching.IStreamCompressor Get(string encoding) => throw null; + public static ServiceStack.Caching.IStreamCompressor GetRequired(string encoding) => throw null; + public static bool Remove(string encoding) => throw null; + public static void Set(string encoding, ServiceStack.Caching.IStreamCompressor compressor) => throw null; + public static bool SupportsEncoding(string encoding) => throw null; +} + +// Generated from `ServiceStack.StreamExt` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class StreamExt +{ + public static System.Byte[] Compress(this string text, string compressionType, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public static System.Byte[] CompressBytes(this System.Byte[] bytes, string compressionType) => throw null; + public static System.IO.Stream CompressStream(this System.IO.Stream stream, string compressionType) => throw null; + public static string Decompress(this System.Byte[] gzBuffer, string compressionType) => throw null; + public static System.IO.Stream Decompress(this System.IO.Stream gzStream, string compressionType) => throw null; + public static System.Byte[] DecompressBytes(this System.Byte[] gzBuffer, string compressionType) => throw null; + public static System.Byte[] Deflate(this string text) => throw null; + public static string GUnzip(this System.Byte[] gzBuffer) => throw null; + public static System.Byte[] GZip(this string text) => throw null; + public static string Inflate(this System.Byte[] gzBuffer) => throw null; + public static System.Byte[] ToBytes(this System.IO.Stream stream) => throw null; + public static string ToUtf8String(this System.IO.Stream stream) => throw null; + public static void Write(this System.IO.Stream stream, string text) => throw null; +} + +// Generated from `ServiceStack.StreamFiles` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class StreamFiles : ServiceStack.IReturn, ServiceStack.IReturn +{ + public System.Collections.Generic.List Paths { get => throw null; set => throw null; } + public StreamFiles() => throw null; +} + +// Generated from `ServiceStack.StreamServerEvents` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class StreamServerEvents : ServiceStack.IReturn, ServiceStack.IReturn +{ + public string[] Channels { get => throw null; set => throw null; } + public StreamServerEvents() => throw null; +} + +// Generated from `ServiceStack.StreamServerEventsResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class StreamServerEventsResponse +{ + public string Channel { get => throw null; set => throw null; } + public string[] Channels { get => throw null; set => throw null; } + public System.Int64 CreatedAt { get => throw null; set => throw null; } + public string CssSelector { get => throw null; set => throw null; } + public string Data { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public System.Int64 EventId { get => throw null; set => throw null; } + public System.Int64 HeartbeatIntervalMs { get => throw null; set => throw null; } + public string HeartbeatUrl { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Int64 IdleTimeoutMs { get => throw null; set => throw null; } + public bool IsAuthenticated { get => throw null; set => throw null; } + public string Json { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Op { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public string Selector { get => throw null; set => throw null; } + public StreamServerEventsResponse() => throw null; + public string Target { get => throw null; set => throw null; } + public string UnRegisterUrl { get => throw null; set => throw null; } + public string UpdateSubscriberUrl { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.ThemeInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ThemeInfo +{ + public string Form { get => throw null; set => throw null; } + public ServiceStack.ImageInfo ModelIcon { get => throw null; set => throw null; } + public ThemeInfo() => throw null; +} + +// Generated from `ServiceStack.TokenException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class TokenException : ServiceStack.AuthenticationException +{ + public TokenException(string message) => throw null; +} + +// Generated from `ServiceStack.TypedUrlResolverDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate string TypedUrlResolverDelegate(ServiceStack.IServiceClientMeta client, string httpMethod, object requestDto); + +// Generated from `ServiceStack.UiInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class UiInfo : ServiceStack.IMeta +{ + public ServiceStack.AdminUi Admin { get => throw null; set => throw null; } + public System.Collections.Generic.List AdminLinks { get => throw null; set => throw null; } + public System.Collections.Generic.List AlwaysHideTags { get => throw null; set => throw null; } + public ServiceStack.ImageInfo BrandIcon { get => throw null; set => throw null; } + public ServiceStack.ApiFormat DefaultFormats { get => throw null; set => throw null; } + public ServiceStack.ExplorerUi Explorer { get => throw null; set => throw null; } + public System.Collections.Generic.List HideTags { get => throw null; set => throw null; } + public ServiceStack.LocodeUi Locode { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Modules { get => throw null; set => throw null; } + public ServiceStack.ThemeInfo Theme { get => throw null; set => throw null; } + public UiInfo() => throw null; +} + +// Generated from `ServiceStack.UnAssignRoles` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class UnAssignRoles : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public UnAssignRoles() => throw null; + public string UserName { get => throw null; set => throw null; } +} + +// Generated from `ServiceStack.UnAssignRolesResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class UnAssignRolesResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta +{ + public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public UnAssignRolesResponse() => throw null; +} + +// Generated from `ServiceStack.UpdateEventSubscriber` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class UpdateEventSubscriber : ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb +{ + public string Id { get => throw null; set => throw null; } + public string[] SubscribeChannels { get => throw null; set => throw null; } + public string[] UnsubscribeChannels { get => throw null; set => throw null; } + public UpdateEventSubscriber() => throw null; +} + +// Generated from `ServiceStack.UpdateEventSubscriberResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class UpdateEventSubscriberResponse +{ + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public UpdateEventSubscriberResponse() => throw null; +} + +// Generated from `ServiceStack.UploadedFile` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class UploadedFile +{ + public System.Int64 ContentLength { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public string FileName { get => throw null; set => throw null; } + public string FilePath { get => throw null; set => throw null; } + public UploadedFile() => throw null; +} + +// Generated from `ServiceStack.UrlExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class UrlExtensions +{ + public static string AsHttps(this string absoluteUrl) => throw null; + public static string ExpandGenericTypeName(System.Type type) => throw null; + public static string ExpandTypeName(this System.Type type) => throw null; + public static string GetFullyQualifiedName(this System.Type type) => throw null; + public static string GetMetadataPropertyType(this System.Type type) => throw null; + public static string GetOperationName(this System.Type type) => throw null; + public static System.Collections.Generic.Dictionary GetQueryPropertyTypes(this System.Type requestType) => throw null; + public static string ToApiUrl(this System.Type requestType) => throw null; + public static string ToDeleteUrl(this object requestDto) => throw null; + public static string ToGetUrl(this object requestDto) => throw null; + public static string ToOneWayUrl(this object requestDto, string format = default(string)) => throw null; + public static string ToOneWayUrlOnly(this object requestDto, string format = default(string)) => throw null; + public static string ToPostUrl(this object requestDto) => throw null; + public static string ToPutUrl(this object requestDto) => throw null; + public static string ToRelativeUri(this ServiceStack.IReturn requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; + public static string ToRelativeUri(this object requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; + public static string ToReplyUrl(this object requestDto, string format = default(string)) => throw null; + public static string ToReplyUrlOnly(this object requestDto, string format = default(string)) => throw null; + public static string ToUrl(this ServiceStack.IReturn requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; + public static string ToUrl(this object requestDto, string httpMethod, System.Func fallback) => throw null; + public static string ToUrl(this object requestDto, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; +} + +// Generated from `ServiceStack.UrlResolverDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public delegate string UrlResolverDelegate(ServiceStack.IServiceClientMeta client, string httpMethod, string relativeOrAbsoluteUrl); + +// Generated from `ServiceStack.UserApiKey` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class UserApiKey : ServiceStack.IMeta +{ + public System.DateTime? ExpiryDate { get => throw null; set => throw null; } + public string Key { get => throw null; set => throw null; } + public string KeyType { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public UserApiKey() => throw null; +} + +// Generated from `ServiceStack.ValidationInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ValidationInfo : ServiceStack.IMeta +{ + public string AccessRole { get => throw null; set => throw null; } + public bool? HasValidationSource { get => throw null; set => throw null; } + public bool? HasValidationSourceAdmin { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List PropertyValidators { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + public System.Collections.Generic.List TypeValidators { get => throw null; set => throw null; } + public ValidationInfo() => throw null; +} + +// Generated from `ServiceStack.WebRequestUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class WebRequestUtils +{ + public static void AddApiKeyAuth(this System.Net.WebRequest client, string apiKey) => throw null; + public static void AddBasicAuth(this System.Net.WebRequest client, string userName, string password) => throw null; + public static void AddBearerToken(this System.Net.WebRequest client, string bearerToken) => throw null; + public static void AppendHttpRequestHeaders(this System.Net.HttpWebRequest webReq, System.Text.StringBuilder sb, System.Uri baseUri = default(System.Uri)) => throw null; + public static void AppendHttpResponseHeaders(this System.Net.HttpWebResponse webRes, System.Text.StringBuilder sb) => throw null; + public static string CalculateMD5Hash(string input) => throw null; + public static System.Type GetErrorResponseDtoType(System.Type requestType) => throw null; + public static System.Type GetErrorResponseDtoType(object request) => throw null; + public static System.Type GetErrorResponseDtoType(object request) => throw null; + public static string GetResponseDtoName(System.Type requestType) => throw null; + public static ServiceStack.ResponseStatus GetResponseStatus(this object response) => throw null; + public static System.Net.HttpWebRequest InitWebRequest(string url, string method = default(string), System.Collections.Generic.Dictionary headers = default(System.Collections.Generic.Dictionary)) => throw null; + public const string ResponseDtoSuffix = default; +} + +// Generated from `ServiceStack.WebServiceException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class WebServiceException : System.Exception, ServiceStack.IHasStatusCode, ServiceStack.IHasStatusDescription, ServiceStack.Model.IResponseStatusConvertible +{ + public string ErrorCode { get => throw null; } + public string ErrorMessage { get => throw null; } + public System.Collections.Generic.List GetFieldErrors() => throw null; + public bool IsAny400() => throw null; + public bool IsAny500() => throw null; + public override string Message { get => throw null; } + public string ResponseBody { get => throw null; set => throw null; } + public object ResponseDto { get => throw null; set => throw null; } + public System.Net.WebHeaderCollection ResponseHeaders { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; } + public string ServerStackTrace { get => throw null; } + public object State { get => throw null; set => throw null; } + public int StatusCode { get => throw null; set => throw null; } + public string StatusDescription { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ToResponseStatus() => throw null; + public override string ToString() => throw null; + public WebServiceException() => throw null; + public WebServiceException(string message) => throw null; + public WebServiceException(string message, System.Exception innerException) => throw null; + public static ServiceStack.Logging.ILog log; +} + +// Generated from `ServiceStack.XmlServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class XmlServiceClient : ServiceStack.ServiceClientBase +{ + public override string ContentType { get => throw null; } + public override T DeserializeFromStream(System.IO.Stream stream) => throw null; + public override string Format { get => throw null; } + public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; + public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } + public XmlServiceClient() => throw null; + public XmlServiceClient(string baseUri) => throw null; + public XmlServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; +} + +// Generated from `ServiceStack.ZLibCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public class ZLibCompressor : ServiceStack.Caching.IStreamCompressor +{ + public System.Byte[] Compress(System.Byte[] bytes) => throw null; + public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public System.IO.Stream Decompress(System.IO.Stream zipBuffer, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] DecompressBytes(System.Byte[] zipBuffer) => throw null; + public string Encoding { get => throw null; } + public static ServiceStack.ZLibCompressor Instance { get => throw null; } + public ZLibCompressor() => throw null; +} + +namespace Html +{ + // Generated from `ServiceStack.Html.Input` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Input + { + // Generated from `ServiceStack.Html.Input+ConfigureCss` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConfigureCss + { + public ConfigureCss(ServiceStack.InputInfo input) => throw null; + public ServiceStack.Html.Input.ConfigureCss FieldsPerRow(int sm, int? md = default(int?), int? lg = default(int?), int? xl = default(int?), int? xl2 = default(int?)) => throw null; + public ServiceStack.InputInfo Input { get => throw null; } + } + + + // Generated from `ServiceStack.Html.Input+Types` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Types + { + public const string Checkbox = default; + public const string Color = default; + public const string Date = default; + public const string DatetimeLocal = default; + public const string Email = default; + public const string File = default; + public const string Hidden = default; + public const string Image = default; + public const string Month = default; + public const string Number = default; + public const string Password = default; + public const string Radio = default; + public const string Range = default; + public const string Reset = default; + public const string Search = default; + public const string Select = default; + public const string Submit = default; + public const string Tel = default; + public const string Text = default; + public const string Textarea = default; + public const string Time = default; + public const string Url = default; + public const string Week = default; + } + + + public static ServiceStack.InputInfo AddCss(this ServiceStack.InputInfo input, System.Action configure) => throw null; + public static ServiceStack.InputInfo FieldsPerRow(this ServiceStack.InputInfo input, int sm, int? md = default(int?), int? lg = default(int?), int? xl = default(int?), int? xl2 = default(int?)) => throw null; + public static ServiceStack.InputInfo For(System.Linq.Expressions.Expression> expr) => throw null; + public static ServiceStack.InputInfo For(System.Linq.Expressions.Expression> expr, System.Action configure) => throw null; + public static System.Collections.Generic.List FromGridLayout(System.Collections.Generic.IEnumerable> gridLayout) => throw null; + public static string GetDescription(System.Reflection.MemberInfo mi) => throw null; + public static bool GetEnumEntries(System.Type enumType, out System.Collections.Generic.KeyValuePair[] entries) => throw null; + public static string[] GetEnumValues(System.Type enumType) => throw null; + } + + // Generated from `ServiceStack.Html.InspectUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class InspectUtils + { + public static object Evaluate(System.Linq.Expressions.Expression arg) => throw null; + public static System.Linq.Expressions.Expression FindMember(System.Linq.Expressions.Expression e) => throw null; + public static string[] GetFieldNames(this System.Linq.Expressions.Expression> expr) => throw null; + public static System.Reflection.PropertyInfo PropertyFromExpression(System.Linq.Expressions.Expression> expr) => throw null; + } + + // Generated from `ServiceStack.Html.Media` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Media + { + } + + // Generated from `ServiceStack.Html.MediaRuleCreator` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MediaRuleCreator + { + public MediaRuleCreator(string size) => throw null; + public ServiceStack.MediaRule Show(System.Linq.Expressions.Expression> expr) => throw null; + public string Size { get => throw null; } + } + + // Generated from `ServiceStack.Html.MediaRules` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MediaRules + { + public static ServiceStack.Html.MediaRuleCreator ExtraLarge; + public static ServiceStack.Html.MediaRuleCreator ExtraLarge2x; + public static ServiceStack.Html.MediaRuleCreator ExtraSmall; + public static ServiceStack.Html.MediaRuleCreator Large; + public static ServiceStack.Html.MediaRuleCreator Medium; + public static string MinVisibleSize(this System.Collections.Generic.IEnumerable mediaRules, string target) => throw null; + public static ServiceStack.Html.MediaRuleCreator Small; + } + + // Generated from `ServiceStack.Html.MediaSizes` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MediaSizes + { + public static string[] All; + public const string ExtraLarge = default; + public const string ExtraLarge2x = default; + public const string ExtraSmall = default; + public static string ForBootstrap(string size) => throw null; + public static string ForTailwind(string size) => throw null; + public const string Large = default; + public const string Medium = default; + public const string Small = default; + } + +} +namespace Messaging +{ + // Generated from `ServiceStack.Messaging.InMemoryMessageQueueClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryMessageQueueClient : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.Messaging.IMessageQueueClient, System.IDisposable + { + public void Ack(ServiceStack.Messaging.IMessage message) => throw null; + public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; + public void Dispose() => throw null; + public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; + public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; + public string GetTempQueueName() => throw null; + public InMemoryMessageQueueClient(ServiceStack.Messaging.MessageQueueClientFactory factory) => throw null; + public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; + public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(T messageBody) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public void SendOneWay(object requestDto) => throw null; + public void SendOneWay(string queueName, object requestDto) => throw null; + } + + // Generated from `ServiceStack.Messaging.MessageQueueClientFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MessageQueueClientFactory : ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + { + public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; + public void Dispose() => throw null; + public System.Byte[] GetMessageAsync(string queueName) => throw null; + public MessageQueueClientFactory() => throw null; + public event System.EventHandler MessageReceived; + public void PublishMessage(string queueName, System.Byte[] messageBytes) => throw null; + public void PublishMessage(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + } + + // Generated from `ServiceStack.Messaging.RedisMessageFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisMessageFactory : ServiceStack.Messaging.IMessageFactory, ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + { + public ServiceStack.Messaging.IMessageProducer CreateMessageProducer() => throw null; + public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; + public void Dispose() => throw null; + public RedisMessageFactory(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; + } + + // Generated from `ServiceStack.Messaging.RedisMessageProducer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisMessageProducer : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, System.IDisposable + { + public void Dispose() => throw null; + public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(T messageBody) => throw null; + public ServiceStack.Redis.IRedisNativeClient ReadWriteClient { get => throw null; } + public RedisMessageProducer(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; + public RedisMessageProducer(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public void SendOneWay(object requestDto) => throw null; + public void SendOneWay(string queueName, object requestDto) => throw null; + } + + // Generated from `ServiceStack.Messaging.RedisMessageQueueClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisMessageQueueClient : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.Messaging.IMessageQueueClient, System.IDisposable + { + public void Ack(ServiceStack.Messaging.IMessage message) => throw null; + public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; + public void Dispose() => throw null; + public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; + public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; + public string GetTempQueueName() => throw null; + public int MaxSuccessQueueSize { get => throw null; set => throw null; } + public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; + public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(T messageBody) => throw null; + public ServiceStack.Redis.IRedisNativeClient ReadOnlyClient { get => throw null; } + public ServiceStack.Redis.IRedisNativeClient ReadWriteClient { get => throw null; } + public RedisMessageQueueClient(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; + public RedisMessageQueueClient(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public void SendOneWay(object requestDto) => throw null; + public void SendOneWay(string queueName, object requestDto) => throw null; + } + + // Generated from `ServiceStack.Messaging.RedisMessageQueueClientFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisMessageQueueClientFactory : ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + { + public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; + public void Dispose() => throw null; + public RedisMessageQueueClientFactory(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; + } + +} +namespace Pcl +{ + // Generated from `ServiceStack.Pcl.HttpUtility` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpUtility + { + public HttpUtility() => 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; + } + +} +namespace Serialization +{ + // Generated from `ServiceStack.Serialization.DataContractSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DataContractSerializer : ServiceStack.Text.IStringSerializer + { + public System.Byte[] Compress(XmlDto from) => throw null; + public void CompressToStream(XmlDto from, System.IO.Stream stream) => throw null; + public DataContractSerializer(System.Xml.XmlDictionaryReaderQuotas quotas = default(System.Xml.XmlDictionaryReaderQuotas)) => throw null; + public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public T DeserializeFromStream(System.IO.Stream stream) => throw null; + public object DeserializeFromString(string xml, System.Type type) => throw null; + public T DeserializeFromString(string xml) => throw null; + public static ServiceStack.Serialization.DataContractSerializer Instance; + public string Parse(XmlDto from, bool indentXml) => throw null; + public void SerializeToStream(object obj, System.IO.Stream stream) => throw null; + public string SerializeToString(XmlDto from) => throw null; + } + + // Generated from `ServiceStack.Serialization.IStringStreamSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IStringStreamSerializer + { + object DeserializeFromStream(System.Type type, System.IO.Stream stream); + T DeserializeFromStream(System.IO.Stream stream); + void SerializeToStream(T obj, System.IO.Stream stream); + } + + // Generated from `ServiceStack.Serialization.JsonDataContractSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonDataContractSerializer : ServiceStack.Text.IStringSerializer + { + public static object BclDeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public static object BclDeserializeFromString(string json, System.Type returnType) => throw null; + public static void BclSerializeToStream(T obj, System.IO.Stream stream) => throw null; + public static string BclSerializeToString(T obj) => throw null; + public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public T DeserializeFromStream(System.IO.Stream stream) => throw null; + public object DeserializeFromString(string json, System.Type returnType) => throw null; + public T DeserializeFromString(string json) => throw null; + public static ServiceStack.Serialization.JsonDataContractSerializer Instance; + public JsonDataContractSerializer() => throw null; + public void SerializeToStream(T obj, System.IO.Stream stream) => throw null; + public string SerializeToString(T obj) => throw null; + public ServiceStack.Text.IStringSerializer TextSerializer { get => throw null; set => throw null; } + public bool UseBcl { get => throw null; set => throw null; } + public static void UseSerializer(ServiceStack.Text.IStringSerializer textSerializer) => throw null; + } + + // Generated from `ServiceStack.Serialization.KeyValueDataContractDeserializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class KeyValueDataContractDeserializer + { + public static ServiceStack.Serialization.KeyValueDataContractDeserializer Instance; + public KeyValueDataContractDeserializer() => throw null; + public object Parse(System.Collections.Generic.IDictionary keyValuePairs, System.Type returnType) => throw null; + public object Parse(System.Collections.Specialized.NameValueCollection nameValues, System.Type returnType) => throw null; + public To Parse(System.Collections.Generic.IDictionary keyValuePairs) => throw null; + public object Populate(object instance, System.Collections.Specialized.NameValueCollection nameValues, System.Type returnType) => throw null; + } + + // Generated from `ServiceStack.Serialization.RequestBindingError` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestBindingError + { + public string ErrorMessage { 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 string PropertyValueString { get => throw null; set => throw null; } + public RequestBindingError() => throw null; + } + + // Generated from `ServiceStack.Serialization.StringMapTypeDeserializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringMapTypeDeserializer + { + public static System.Collections.Generic.Dictionary ContentTypeStringSerializers { get => throw null; } + public object CreateFromMap(System.Collections.Generic.IDictionary keyValuePairs) => throw null; + public object CreateFromMap(System.Collections.Specialized.NameValueCollection nameValues) => throw null; + public object PopulateFromMap(object instance, System.Collections.Generic.IDictionary keyValuePairs, System.Collections.Generic.HashSet ignoredWarningsOnPropertyNames = default(System.Collections.Generic.HashSet)) => throw null; + public object PopulateFromMap(object instance, System.Collections.Specialized.NameValueCollection nameValues, System.Collections.Generic.HashSet ignoredWarningsOnPropertyNames = default(System.Collections.Generic.HashSet)) => throw null; + public StringMapTypeDeserializer(System.Type type) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary TypeStringSerializers { get => throw null; } + } + + // Generated from `ServiceStack.Serialization.XmlSerializableSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlSerializableSerializer : ServiceStack.Text.IStringSerializer + { + public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public object DeserializeFromString(string xml, System.Type type) => throw null; + public To DeserializeFromString(string xml) => throw null; + public static ServiceStack.Serialization.XmlSerializableSerializer Instance; + public To Parse(System.IO.Stream from) => throw null; + public To Parse(System.IO.TextReader from) => throw null; + public void SerializeToStream(object obj, System.IO.Stream stream) => throw null; + public string SerializeToString(XmlDto from) => throw null; + public XmlSerializableSerializer() => throw null; + public static System.Xml.XmlWriterSettings XmlWriterSettings { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Serialization.XmlSerializerWrapper` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlSerializerWrapper : System.Runtime.Serialization.XmlObjectSerializer + { + public static string GetNamespace(System.Type type) => throw null; + public override bool IsStartObject(System.Xml.XmlDictionaryReader reader) => throw null; + public override object ReadObject(System.Xml.XmlDictionaryReader reader) => throw null; + public override object ReadObject(System.Xml.XmlDictionaryReader reader, bool verifyObjectName) => throw null; + public override void WriteEndObject(System.Xml.XmlDictionaryWriter writer) => throw null; + public override void WriteObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; + public override void WriteObjectContent(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; + public override void WriteStartObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; + public XmlSerializerWrapper(System.Type type) => throw null; + public XmlSerializerWrapper(System.Type type, string name, string ns) => throw null; + } + +} +namespace Support +{ + // Generated from `ServiceStack.Support.NetDeflateProvider` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetDeflateProvider : ServiceStack.Caching.IDeflateProvider + { + public System.Byte[] Deflate(System.Byte[] bytes) => throw null; + public System.Byte[] Deflate(string text) => throw null; + public System.IO.Stream DeflateStream(System.IO.Stream outputStream) => throw null; + public string Inflate(System.Byte[] gzBuffer) => throw null; + public System.Byte[] InflateBytes(System.Byte[] gzBuffer) => throw null; + public System.IO.Stream InflateStream(System.IO.Stream inputStream) => throw null; + public static ServiceStack.Support.NetDeflateProvider Instance { get => throw null; } + public NetDeflateProvider() => throw null; + } + + // Generated from `ServiceStack.Support.NetGZipProvider` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetGZipProvider : ServiceStack.Caching.IGZipProvider + { + public string GUnzip(System.Byte[] gzBuffer) => throw null; + public System.Byte[] GUnzipBytes(System.Byte[] gzBuffer) => throw null; + public System.IO.Stream GUnzipStream(System.IO.Stream inputStream) => throw null; + public System.Byte[] GZip(System.Byte[] bytes) => throw null; + public System.Byte[] GZip(string text) => throw null; + public System.IO.Stream GZipStream(System.IO.Stream outputStream) => throw null; + public static ServiceStack.Support.NetGZipProvider Instance { get => throw null; } + public NetGZipProvider() => throw null; + } + +} +namespace Validation +{ + // Generated from `ServiceStack.Validation.ValidationError` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationError : System.ArgumentException, ServiceStack.Model.IResponseStatusConvertible + { + public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode, string errorMessage) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode, string errorMessage, string fieldName) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(ServiceStack.Validation.ValidationErrorField error) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(string errorCode) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(string errorCode, string errorMessage) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(string errorCode, string errorMessage, string fieldName) => throw null; + public string ErrorCode { get => throw null; } + public string ErrorMessage { get => throw null; } + public override string Message { get => throw null; } + public static void ThrowIfNotValid(ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; + public ServiceStack.ResponseStatus ToResponseStatus() => throw null; + public string ToXml() => throw null; + public ValidationError(ServiceStack.Validation.ValidationErrorField validationError) => throw null; + public ValidationError(ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; + public ValidationError(string errorCode) => throw null; + public ValidationError(string errorCode, string errorMessage) => throw null; + public System.Collections.Generic.IList Violations { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Validation.ValidationErrorField` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationErrorField : ServiceStack.IMeta + { + public object AttemptedValue { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public string ErrorMessage { get => throw null; set => throw null; } + public string FieldName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ValidationErrorField(System.Enum errorCode) => throw null; + public ValidationErrorField(System.Enum errorCode, string fieldName) => throw null; + public ValidationErrorField(System.Enum errorCode, string fieldName, string errorMessage) => throw null; + public ValidationErrorField(string errorCode) => throw null; + public ValidationErrorField(string errorCode, string fieldName) => throw null; + public ValidationErrorField(string errorCode, string fieldName, string errorMessage) => throw null; + public ValidationErrorField(string errorCode, string fieldName, string errorMessage, object attemptedValue) => throw null; + } + + // Generated from `ServiceStack.Validation.ValidationErrorResult` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationErrorResult + { + public string ErrorCode { get => throw null; set => throw null; } + public string ErrorMessage { get => throw null; set => throw null; } + public System.Collections.Generic.IList Errors { get => throw null; set => throw null; } + public virtual bool IsValid { get => throw null; } + public void Merge(ServiceStack.Validation.ValidationErrorResult result) => throw null; + public virtual string Message { get => throw null; } + public static ServiceStack.Validation.ValidationErrorResult Success { get => throw null; } + public string SuccessCode { get => throw null; set => throw null; } + public string SuccessMessage { get => throw null; set => throw null; } + public ValidationErrorResult() => throw null; + public ValidationErrorResult(System.Collections.Generic.IList errors) => throw null; + public ValidationErrorResult(System.Collections.Generic.IList errors, string successCode, string errorCode) => throw null; + } + +} +} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.csproj new file mode 100644 index 00000000000..530753a6985 --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.csproj @@ -0,0 +1,15 @@ + + + net6.0 + true + bin\ + false + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.cs b/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.cs new file mode 100644 index 00000000000..5d83094a618 --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.cs @@ -0,0 +1,5144 @@ +// This file contains auto-generated code. + +namespace ServiceStack +{ + // Generated from `ServiceStack.ActionExecExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ActionExecExtensions + { + public static void ExecAllAndWait(this System.Collections.Generic.ICollection actions, System.TimeSpan timeout) => throw null; + public static System.Collections.Generic.List ExecAsync(this System.Collections.Generic.IEnumerable actions) => throw null; + public static bool WaitAll(this System.Collections.Generic.ICollection waitHandles, System.TimeSpan timeout) => throw null; + public static bool WaitAll(this System.Collections.Generic.ICollection waitHandles, int timeoutMs) => throw null; + public static bool WaitAll(this System.Collections.Generic.List asyncResults, System.TimeSpan timeout) => throw null; + public static bool WaitAll(this System.Collections.Generic.List waitHandles, int timeoutMs) => throw null; + public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) => throw null; + public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, int timeOutMs) => throw null; + } + + // Generated from `ServiceStack.ActionInvoker` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void ActionInvoker(object instance, params object[] args); + + // Generated from `ServiceStack.AssertExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AssertExtensions + { + public static void ThrowIfNull(this object obj) => throw null; + public static void ThrowIfNull(this object obj, string varName) => throw null; + public static T ThrowIfNull(this T obj, string varName) => throw null; + public static System.Collections.ICollection ThrowIfNullOrEmpty(this System.Collections.ICollection collection) => throw null; + public static System.Collections.ICollection ThrowIfNullOrEmpty(this System.Collections.ICollection collection, string varName) => throw null; + public static string ThrowIfNullOrEmpty(this string strValue) => throw null; + public static string ThrowIfNullOrEmpty(this string strValue, string varName) => throw null; + public static System.Collections.Generic.ICollection ThrowIfNullOrEmpty(this System.Collections.Generic.ICollection collection) => throw null; + public static System.Collections.Generic.ICollection ThrowIfNullOrEmpty(this System.Collections.Generic.ICollection collection, string varName) => throw null; + public static void ThrowOnFirstNull(params object[] objs) => throw null; + } + + // Generated from `ServiceStack.AssertUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AssertUtils + { + public static void AreNotNull(System.Collections.Generic.IDictionary fieldMap) => throw null; + public static void AreNotNull(params T[] fields) => throw null; + } + + // Generated from `ServiceStack.AttributeExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AttributeExtensions + { + public static string GetDescription(this System.Reflection.MemberInfo mi) => throw null; + public static string GetDescription(this System.Reflection.ParameterInfo pi) => throw null; + public static string GetDescription(this System.Type type) => throw null; + } + + // Generated from `ServiceStack.BundleOptions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BundleOptions + { + public bool Bundle { get => throw null; set => throw null; } + public BundleOptions() => throw null; + public bool Cache { get => throw null; set => throw null; } + public bool IIFE { get => throw null; set => throw null; } + public bool Minify { get => throw null; set => throw null; } + public string OutputTo { get => throw null; set => throw null; } + public string OutputWebPath { get => throw null; set => throw null; } + public string PathBase { get => throw null; set => throw null; } + public bool RegisterModuleInAmd { get => throw null; set => throw null; } + public bool SaveToDisk { get => throw null; set => throw null; } + public System.Collections.Generic.List Sources { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ByteArrayComparer` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ByteArrayComparer : System.Collections.Generic.IEqualityComparer + { + public ByteArrayComparer() => throw null; + public bool Equals(System.Byte[] left, System.Byte[] right) => throw null; + public int GetHashCode(System.Byte[] key) => throw null; + public static ServiceStack.ByteArrayComparer Instance; + } + + // Generated from `ServiceStack.ByteArrayExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ByteArrayExtensions + { + public static bool AreEqual(this System.Byte[] b1, System.Byte[] b2) => throw null; + public static System.Byte[] ToSha1Hash(this System.Byte[] bytes) => throw null; + } + + // Generated from `ServiceStack.CachedExpressionCompiler` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CachedExpressionCompiler + { + public static System.Func Compile(this System.Linq.Expressions.Expression> lambdaExpression) => throw null; + public static object Evaluate(System.Linq.Expressions.Expression arg) => throw null; + } + + // Generated from `ServiceStack.Command` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Command + { + public System.Collections.Generic.List> Args { get => throw null; set => throw null; } + public System.ReadOnlyMemory AsMemory() => throw null; + public Command() => throw null; + public int IndexOfMethodEnd(System.ReadOnlyMemory commandsString, int pos) => throw null; + public string Name { get => throw null; set => throw null; } + public System.ReadOnlyMemory Original { get => throw null; set => throw null; } + public System.ReadOnlyMemory Suffix { get => throw null; set => throw null; } + public virtual string ToDebugString() => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.CommandsUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CommandsUtils + { + public CommandsUtils() => throw null; + public static System.Collections.Generic.List ExecuteAsyncCommandExec(System.Collections.Generic.IEnumerable commands) => throw null; + public static void ExecuteAsyncCommandExec(System.TimeSpan timeout, System.Collections.Generic.IEnumerable commands) => throw null; + public static System.Collections.Generic.List ExecuteAsyncCommandList(System.TimeSpan timeout, System.Collections.Generic.IEnumerable> commands) => throw null; + public static System.Collections.Generic.List ExecuteAsyncCommandList(System.TimeSpan timeout, params ServiceStack.Commands.ICommandList[] commands) => throw null; + public static void WaitAll(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) => throw null; + } + + // Generated from `ServiceStack.CommonDiagnosticUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CommonDiagnosticUtils + { + public static void Init(this System.Diagnostics.DiagnosticListener listener, ServiceStack.Messaging.IMessage msg) => throw null; + } + + // Generated from `ServiceStack.ConnectionInfo` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConnectionInfo + { + public ConnectionInfo() => throw null; + public string ConnectionString { get => throw null; set => throw null; } + public string NamedConnection { get => throw null; set => throw null; } + public string ProviderName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ContainerExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ContainerExtensions + { + public static ServiceStack.IContainer AddSingleton(this ServiceStack.IContainer container, System.Type type) => throw null; + public static ServiceStack.IContainer AddSingleton(this ServiceStack.IContainer container) where TImpl : TService => throw null; + public static ServiceStack.IContainer AddSingleton(this ServiceStack.IContainer container) => throw null; + public static ServiceStack.IContainer AddSingleton(this ServiceStack.IContainer container, System.Func factory) => throw null; + public static ServiceStack.IContainer AddTransient(this ServiceStack.IContainer container, System.Type type) => throw null; + public static ServiceStack.IContainer AddTransient(this ServiceStack.IContainer container) where TImpl : TService => throw null; + public static ServiceStack.IContainer AddTransient(this ServiceStack.IContainer container) => throw null; + public static ServiceStack.IContainer AddTransient(this ServiceStack.IContainer container, System.Func factory) => throw null; + public static bool Exists(this ServiceStack.IContainer container) => throw null; + public static T Resolve(this ServiceStack.IContainer container) => throw null; + public static T Resolve(this ServiceStack.Configuration.IResolver container) => throw null; + } + + // Generated from `ServiceStack.DictionaryExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DictionaryExtensions + { + public static System.Collections.Generic.List ConvertAll(System.Collections.Generic.IDictionary map, System.Func createFn) => throw null; + public static void ForEach(this System.Collections.Generic.Dictionary dictionary, System.Action onEachFn) => throw null; + public static V GetOrAdd(this System.Collections.Generic.Dictionary map, K key, System.Func createFn) => throw null; + public static TValue GetValue(this System.Collections.Generic.Dictionary dictionary, TKey key, System.Func defaultValue) => throw null; + public static TValue GetValueOrDefault(this System.Collections.Generic.Dictionary dictionary, TKey key) => throw null; + public static bool IsNullOrEmpty(this System.Collections.IDictionary dictionary) => throw null; + public static System.Collections.Generic.Dictionary Merge(this System.Collections.Generic.IDictionary initial, params System.Collections.Generic.IEnumerable>[] withSources) => throw null; + public static System.Collections.Generic.Dictionary MoveKey(this System.Collections.Generic.Dictionary map, TKey oldKey, TKey newKey, System.Func valueFilter = default(System.Func)) => throw null; + public static System.Collections.Generic.KeyValuePair PairWith(this TKey key, TValue value) => throw null; + public static System.Collections.Generic.Dictionary RemoveKey(this System.Collections.Generic.Dictionary map, TKey key) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary ToConcurrentDictionary(this System.Collections.Generic.IDictionary from) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Concurrent.ConcurrentDictionary map) => throw null; + public static bool TryRemove(this System.Collections.Generic.Dictionary map, TKey key, out TValue value) => throw null; + public static bool UnorderedEquivalentTo(this System.Collections.Generic.IDictionary thisMap, System.Collections.Generic.IDictionary otherMap) => throw null; + } + + // Generated from `ServiceStack.DirectoryInfoExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DirectoryInfoExtensions + { + public static System.Collections.Generic.IEnumerable GetMatchingFiles(this System.IO.DirectoryInfo rootDirPath, string fileSearchPattern) => throw null; + public static System.Collections.Generic.IEnumerable GetMatchingFiles(string rootDirPath, string fileSearchPattern) => throw null; + } + + // Generated from `ServiceStack.DisposableExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DisposableExtensions + { + public static void Dispose(this System.Collections.Generic.IEnumerable resources) => throw null; + public static void Dispose(this System.Collections.Generic.IEnumerable resources, ServiceStack.Logging.ILog log) => throw null; + public static void Dispose(params System.IDisposable[] disposables) => throw null; + public static void Run(this T disposable, System.Action runActionThenDispose) where T : System.IDisposable => throw null; + } + + // Generated from `ServiceStack.EnumExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class EnumExtensions + { + public static T Add(this System.Enum @enum, T value) => throw null; + public static System.TypeCode GetTypeCode(this System.Enum @enum) => throw null; + public static bool Has(this System.Enum @enum, T value) => throw null; + public static bool Is(this System.Enum @enum, T value) => throw null; + public static T Remove(this System.Enum @enum, T value) => throw null; + public static string ToDescription(this System.Enum @enum) => throw null; + public static System.Collections.Generic.List> ToKeyValuePairs(this System.Collections.Generic.IEnumerable enums) where T : System.Enum => throw null; + public static System.Collections.Generic.List ToList(this System.Enum @enum) => throw null; + } + + // Generated from `ServiceStack.EnumUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class EnumUtils + { + public static System.Collections.Generic.IEnumerable GetValues() where T : System.Enum => throw null; + } + + // Generated from `ServiceStack.EnumerableExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class EnumerableExtensions + { + public static System.Threading.Tasks.Task AllAsync(this System.Collections.Generic.IEnumerable source, System.Func> predicate) => throw null; + public static System.Threading.Tasks.Task AllAsync(this System.Collections.Generic.IEnumerable> source, System.Func predicate) => throw null; + public static System.Collections.Generic.List AllKeysWithDefaultValues(System.Collections.IEnumerable collection) => throw null; + public static System.Threading.Tasks.Task AnyAsync(this System.Collections.Generic.IEnumerable source, System.Func> predicate) => throw null; + public static System.Threading.Tasks.Task AnyAsync(this System.Collections.Generic.IEnumerable> source, System.Func predicate) => throw null; + public static System.Collections.Generic.IEnumerable BatchesOf(this System.Collections.Generic.IEnumerable sequence, int batchSize) => throw null; + public static T[] CombineDistinct(this T[] original, params T[][] others) => throw null; + public static System.Collections.Generic.HashSet CombineSet(this T[] original, params T[][] others) => throw null; + public static void Each(this System.Collections.Generic.IEnumerable values, System.Action action) => throw null; + public static void Each(this System.Collections.Generic.IEnumerable values, System.Action action) => throw null; + public static void Each(this System.Collections.Generic.IDictionary map, System.Action action) => throw null; + public static bool EquivalentTo(this System.Byte[] bytes, System.Byte[] other) => throw null; + public static bool EquivalentTo(this System.Collections.Generic.IDictionary a, System.Collections.Generic.IDictionary b, System.Func comparer = default(System.Func)) => throw null; + public static bool EquivalentTo(this System.Collections.Generic.IEnumerable thisList, System.Collections.Generic.IEnumerable otherList, System.Func comparer = default(System.Func)) => throw null; + public static bool EquivalentTo(this T[] array, T[] otherArray, System.Func comparer = default(System.Func)) => throw null; + public static System.Type FirstElementType(System.Collections.IEnumerable collection, string key) => throw null; + public static T FirstNonDefault(this System.Collections.Generic.IEnumerable values) => throw null; + public static string FirstNonDefaultOrEmpty(this System.Collections.Generic.IEnumerable values) => throw null; + public static bool IsEmpty(this System.Collections.Generic.ICollection collection) => throw null; + public static bool IsEmpty(this T[] collection) => throw null; + public static System.Collections.Generic.List Map(this System.Collections.Generic.IEnumerable items, System.Func converter) => throw null; + public static System.Collections.Generic.List Map(this System.Collections.IEnumerable items, System.Func converter) => throw null; + public static System.Collections.IEnumerable Safe(this System.Collections.IEnumerable enumerable) => throw null; + public static System.Collections.Generic.IEnumerable Safe(this System.Collections.Generic.IEnumerable enumerable) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Generic.IEnumerable list, System.Func> map) => throw null; + public static System.Collections.Generic.HashSet ToHashSet(this System.Collections.Generic.IEnumerable items) => throw null; + public static System.Collections.Generic.List ToObjects(this System.Collections.Generic.IEnumerable items) => throw null; + public static System.Collections.Generic.Dictionary ToSafeDictionary(this System.Collections.Generic.IEnumerable list, System.Func expr) => throw null; + public static System.Collections.Generic.HashSet ToSet(this System.Collections.Generic.IEnumerable items) => throw null; + public static System.Collections.Generic.HashSet ToSet(this System.Collections.Generic.IEnumerable items, System.Collections.Generic.IEqualityComparer comparer) => throw null; + } + + // Generated from `ServiceStack.EnumerableUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class EnumerableUtils + { + public static int Count(System.Collections.IEnumerable items) => throw null; + public static object ElementAt(System.Collections.IEnumerable items, int index) => throw null; + public static object FirstOrDefault(System.Collections.IEnumerable items) => throw null; + public static bool IsEmpty(System.Collections.IEnumerable items) => throw null; + public static System.Collections.IEnumerable NullIfEmpty(System.Collections.IEnumerable items) => throw null; + public static System.Collections.Generic.List Skip(System.Collections.IEnumerable items, int count) => throw null; + public static System.Collections.Generic.List SplitOnFirst(System.Collections.IEnumerable items, out object first) => throw null; + public static System.Collections.Generic.List Take(System.Collections.IEnumerable items, int count) => throw null; + public static System.Collections.Generic.List ToList(System.Collections.IEnumerable items) => throw null; + } + + // Generated from `ServiceStack.ExecUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ExecUtils + { + public static int BaseDelayMs { get => throw null; set => throw null; } + public static int CalculateExponentialDelay(int retriesAttempted) => throw null; + public static int CalculateExponentialDelay(int retriesAttempted, int baseDelay, int maxBackOffMs) => throw null; + public static int CalculateFullJitterBackOffDelay(int retriesAttempted) => throw null; + public static int CalculateFullJitterBackOffDelay(int retriesAttempted, int baseDelay, int maxBackOffMs) => throw null; + public static int CalculateMemoryLockDelay(int retries) => throw null; + public static System.Threading.Tasks.Task DelayBackOffMultiplierAsync(int retriesAttempted) => throw null; + public static void ExecAll(this System.Collections.Generic.IEnumerable instances, System.Action action) => throw null; + public static System.Threading.Tasks.Task ExecAllAsync(this System.Collections.Generic.IEnumerable instances, System.Func action) => throw null; + public static System.Threading.Tasks.Task ExecAllReturnFirstAsync(this System.Collections.Generic.IEnumerable instances, System.Func> action) => throw null; + public static void ExecAllWithFirstOut(this System.Collections.Generic.IEnumerable instances, System.Func action, ref TReturn firstResult) => throw null; + public static TReturn ExecReturnFirstWithResult(this System.Collections.Generic.IEnumerable instances, System.Func action) => throw null; + public static System.Threading.Tasks.Task ExecReturnFirstWithResultAsync(this System.Collections.Generic.IEnumerable instances, System.Func> action) => throw null; + public static void LogError(System.Type declaringType, string clientMethodName, System.Exception ex) => throw null; + public static int MaxBackOffMs { get => throw null; set => throw null; } + public static int MaxRetries { get => throw null; set => throw null; } + public static void RetryOnException(System.Action action, System.TimeSpan? timeOut) => throw null; + public static void RetryOnException(System.Action action, int maxRetries) => throw null; + public static System.Threading.Tasks.Task RetryOnExceptionAsync(System.Func action, System.TimeSpan? timeOut) => throw null; + public static System.Threading.Tasks.Task RetryOnExceptionAsync(System.Func action, int maxRetries) => throw null; + public static void RetryUntilTrue(System.Func action, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; + public static System.Threading.Tasks.Task RetryUntilTrueAsync(System.Func> action, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; + public static string ShellExec(string command, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static void SleepBackOffMultiplier(int retriesAttempted) => throw null; + } + + // Generated from `ServiceStack.ExpressionUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ExpressionUtils + { + public static System.Collections.Generic.Dictionary AssignedValues(this System.Linq.Expressions.Expression> expr) => throw null; + public static string[] GetFieldNames(this System.Linq.Expressions.Expression> expr) => throw null; + public static System.Linq.Expressions.MemberExpression GetMemberExpression(System.Linq.Expressions.Expression> expr) => throw null; + public static string GetMemberName(System.Linq.Expressions.Expression> fieldExpr) => throw null; + public static object GetValue(this System.Linq.Expressions.MemberBinding binding) => throw null; + public static System.Reflection.PropertyInfo ToPropertyInfo(this System.Linq.Expressions.Expression fieldExpr) => throw null; + public static System.Reflection.PropertyInfo ToPropertyInfo(System.Linq.Expressions.LambdaExpression lambda) => throw null; + public static System.Reflection.PropertyInfo ToPropertyInfo(System.Linq.Expressions.MemberExpression m) => throw null; + } + + // Generated from `ServiceStack.FuncUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class FuncUtils + { + public static bool TryExec(System.Action action) => throw null; + public static T TryExec(System.Func func) => throw null; + public static T TryExec(System.Func func, T defaultValue) => throw null; + public static void WaitWhile(System.Func condition, int millisecondTimeout, int millsecondPollPeriod = default(int)) => throw null; + } + + // Generated from `ServiceStack.Gist` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Gist + { + public System.DateTime Created_At { get => throw null; set => throw null; } + public string Description { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Files { get => throw null; set => throw null; } + public Gist() => throw null; + public string Html_Url { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public bool Public { get => throw null; set => throw null; } + public System.DateTime? Updated_At { get => throw null; set => throw null; } + public string Url { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GistChangeStatus` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GistChangeStatus + { + public int Additions { get => throw null; set => throw null; } + public int Deletions { get => throw null; set => throw null; } + public GistChangeStatus() => throw null; + public int Total { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GistFile` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GistFile + { + public string Content { get => throw null; set => throw null; } + public string Filename { get => throw null; set => throw null; } + public GistFile() => throw null; + public string Language { get => throw null; set => throw null; } + public string Raw_Url { get => throw null; set => throw null; } + public int Size { get => throw null; set => throw null; } + public bool Truncated { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GistHistory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GistHistory + { + public ServiceStack.GistChangeStatus Change_Status { get => throw null; set => throw null; } + public System.DateTime Committed_At { get => throw null; set => throw null; } + public GistHistory() => throw null; + public string Url { get => throw null; set => throw null; } + public ServiceStack.GithubUser User { get => throw null; set => throw null; } + public string Version { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GistLink` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GistLink + { + public string Description { get => throw null; set => throw null; } + public static ServiceStack.GistLink Get(System.Collections.Generic.List links, string gistAlias) => throw null; + public string GistId { get => throw null; set => throw null; } + public GistLink() => throw null; + public bool MatchesTag(string tagName) => throw null; + public System.Collections.Generic.Dictionary Modifiers { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public static System.Collections.Generic.List Parse(string md) => throw null; + public static string RenderLinks(System.Collections.Generic.List links) => throw null; + public string Repo { get => throw null; set => throw null; } + public string[] Tags { get => throw null; set => throw null; } + public string To { get => throw null; set => throw null; } + public string ToListItem() => throw null; + public override string ToString() => throw null; + public string ToTagsString() => throw null; + public static bool TryParseGitHubUrl(string url, out string gistId, out string user, out string repo) => throw null; + public string Url { get => throw null; set => throw null; } + public string User { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GistUser` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GistUser + { + public string Avatar_Url { get => throw null; set => throw null; } + public GistUser() => throw null; + public string Gists_Url { get => throw null; set => throw null; } + public string Gravatar_Id { get => throw null; set => throw null; } + public string Html_Url { get => throw null; set => throw null; } + public System.Int64 Id { get => throw null; set => throw null; } + public string Login { get => throw null; set => throw null; } + public bool Site_Admin { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } + public string Url { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GitHubGateway` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GitHubGateway : ServiceStack.IGistGateway, ServiceStack.IGitHubGateway + { + public string AccessToken { get => throw null; set => throw null; } + public const string ApiBaseUrl = default; + public virtual void ApplyRequestFilters(System.Net.Http.HttpRequestMessage req) => throw null; + protected virtual void AssertAccessToken() => throw null; + public virtual System.Tuple AssertRepo(string[] orgs, string name, bool useFork = default(bool)) => throw null; + public string BaseUrl { get => throw null; set => throw null; } + public virtual ServiceStack.Gist CreateGist(string description, bool isPublic, System.Collections.Generic.Dictionary files) => throw null; + public virtual ServiceStack.Gist CreateGist(string description, bool isPublic, System.Collections.Generic.Dictionary textFiles) => throw null; + public virtual void CreateGistFile(string gistId, string filePath, string contents) => throw null; + public virtual ServiceStack.GithubGist CreateGithubGist(string description, bool isPublic, System.Collections.Generic.Dictionary files) => throw null; + public virtual ServiceStack.GithubGist CreateGithubGist(string description, bool isPublic, System.Collections.Generic.Dictionary textFiles) => throw null; + public virtual void DeleteGistFiles(string gistId, params string[] filePaths) => throw null; + public virtual void DownloadFile(string downloadUrl, string fileName) => throw null; + public virtual System.Tuple FindRepo(string[] orgs, string name, bool useFork = default(bool)) => throw null; + public virtual ServiceStack.Gist GetGist(string gistId) => throw null; + public ServiceStack.Gist GetGist(string gistId, string version) => throw null; + public System.Threading.Tasks.Task GetGistAsync(string gistId) => throw null; + public System.Threading.Tasks.Task GetGistAsync(string gistId, string version) => throw null; + public virtual ServiceStack.GithubGist GetGithubGist(string gistId) => throw null; + public virtual ServiceStack.GithubGist GetGithubGist(string gistId, string version) => throw null; + public virtual string GetJson(string route) => throw null; + public virtual T GetJson(string route) => throw null; + public virtual System.Threading.Tasks.Task GetJsonAsync(string route) => throw null; + public virtual System.Threading.Tasks.Task GetJsonAsync(string route) => throw null; + public virtual System.Threading.Tasks.Task> GetJsonCollectionAsync(string route) => throw null; + public System.Func GetJsonFilter { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List GetOrgRepos(string githubOrg) => throw null; + public virtual System.Threading.Tasks.Task> GetOrgReposAsync(string githubOrg) => throw null; + public ServiceStack.GithubRateLimits GetRateLimits() => throw null; + public System.Threading.Tasks.Task GetRateLimitsAsync() => throw null; + public virtual ServiceStack.GithubRepo GetRepo(string userOrOrg, string repo) => throw null; + public virtual System.Threading.Tasks.Task GetRepoAsync(string userOrOrg, string repo) => throw null; + public virtual System.Threading.Tasks.Task> GetSourceReposAsync(string orgName) => throw null; + public virtual string GetSourceZipUrl(string user, string repo) => throw null; + public virtual string GetSourceZipUrl(string user, string repo, string tag) => throw null; + public virtual System.Threading.Tasks.Task GetSourceZipUrlAsync(string user, string repo) => throw null; + public virtual System.Threading.Tasks.Task> GetUserAndOrgReposAsync(string githubOrgOrUser) => throw null; + public virtual System.Collections.Generic.List GetUserRepos(string githubUser) => throw null; + public virtual System.Threading.Tasks.Task> GetUserReposAsync(string githubUser) => throw null; + public GitHubGateway() => throw null; + public GitHubGateway(string accessToken) => throw null; + public static bool IsDirSep(System.Char c) => throw null; + public virtual System.Collections.Generic.Dictionary ParseLinkUrls(string linkHeader) => throw null; + public virtual System.Collections.Generic.IEnumerable StreamJsonCollection(string route) => throw null; + public static System.Collections.Generic.Dictionary ToTextFiles(System.Collections.Generic.Dictionary files) => throw null; + public string UserAgent { get => throw null; set => throw null; } + public virtual void WriteGistFile(string gistId, string filePath, string contents) => throw null; + public virtual void WriteGistFiles(string gistId, System.Collections.Generic.Dictionary files, string description = default(string), bool deleteMissing = default(bool)) => throw null; + public virtual void WriteGistFiles(string gistId, System.Collections.Generic.Dictionary textFiles, string description = default(string), bool deleteMissing = default(bool)) => throw null; + } + + // Generated from `ServiceStack.GithubGist` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GithubGist : ServiceStack.Gist + { + public int Comments { get => throw null; set => throw null; } + public string Comments_Url { get => throw null; set => throw null; } + public string Commits_Url { get => throw null; set => throw null; } + public string Forks_Url { get => throw null; set => throw null; } + public string Git_Pull_Url { get => throw null; set => throw null; } + public string Git_Push_Url { get => throw null; set => throw null; } + public GithubGist() => throw null; + public ServiceStack.GistHistory[] History { get => throw null; set => throw null; } + public string Node_Id { get => throw null; set => throw null; } + public ServiceStack.GithubUser Owner { get => throw null; set => throw null; } + public bool Truncated { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GithubRateLimit` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GithubRateLimit + { + public GithubRateLimit() => throw null; + public int Limit { get => throw null; set => throw null; } + public int Remaining { get => throw null; set => throw null; } + public System.Int64 Reset { get => throw null; set => throw null; } + public int Used { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GithubRateLimits` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GithubRateLimits + { + public GithubRateLimits() => throw null; + public ServiceStack.GithubResourcesRateLimits Resources { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GithubRepo` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GithubRepo + { + public System.DateTime Created_At { get => throw null; set => throw null; } + public string Description { get => throw null; set => throw null; } + public bool Fork { get => throw null; set => throw null; } + public string Full_Name { get => throw null; set => throw null; } + public GithubRepo() => throw null; + public bool Has_Downloads { get => throw null; set => throw null; } + public string Homepage { get => throw null; set => throw null; } + public string Html_Url { get => throw null; set => throw null; } + public int Id { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public ServiceStack.GithubRepo Parent { get => throw null; set => throw null; } + public bool Private { get => throw null; set => throw null; } + public int Size { get => throw null; set => throw null; } + public int Stargazers_Count { get => throw null; set => throw null; } + public System.DateTime? Updated_At { get => throw null; set => throw null; } + public string Url { get => throw null; set => throw null; } + public int Watchers_Count { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GithubResourcesRateLimits` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GithubResourcesRateLimits + { + public ServiceStack.GithubRateLimit Core { get => throw null; set => throw null; } + public GithubResourcesRateLimits() => throw null; + public ServiceStack.GithubRateLimit Graphql { get => throw null; set => throw null; } + public ServiceStack.GithubRateLimit Integration_Manifest { get => throw null; set => throw null; } + public ServiceStack.GithubRateLimit Search { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GithubUser` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GithubUser : ServiceStack.GistUser + { + public string Events_Url { get => throw null; set => throw null; } + public string Followers_Url { get => throw null; set => throw null; } + public string Following_Url { get => throw null; set => throw null; } + public GithubUser() => throw null; + public string Node_Id { get => throw null; set => throw null; } + public string Organizations_Url { get => throw null; set => throw null; } + public string Received_Events_Url { get => throw null; set => throw null; } + public string Repos_Url { get => throw null; set => throw null; } + public string Starred_Url { get => throw null; set => throw null; } + public string Subscriptions_Url { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HtmlDumpOptions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlDumpOptions + { + public string Caption { get => throw null; set => throw null; } + public string CaptionIfEmpty { get => throw null; set => throw null; } + public string ChildClass { get => throw null; set => throw null; } + public string ClassName { get => throw null; set => throw null; } + public ServiceStack.Script.DefaultScripts Defaults { get => throw null; set => throw null; } + public string Display { get => throw null; set => throw null; } + public ServiceStack.TextStyle HeaderStyle { get => throw null; set => throw null; } + public string HeaderTag { get => throw null; set => throw null; } + public string[] Headers { get => throw null; set => throw null; } + public HtmlDumpOptions() => throw null; + public string Id { get => throw null; set => throw null; } + public static ServiceStack.HtmlDumpOptions Parse(System.Collections.Generic.Dictionary options, ServiceStack.Script.DefaultScripts defaults = default(ServiceStack.Script.DefaultScripts)) => throw null; + } + + // Generated from `ServiceStack.IGistGateway` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IGistGateway + { + ServiceStack.Gist CreateGist(string description, bool isPublic, System.Collections.Generic.Dictionary files); + ServiceStack.Gist CreateGist(string description, bool isPublic, System.Collections.Generic.Dictionary textFiles); + void CreateGistFile(string gistId, string filePath, string contents); + void DeleteGistFiles(string gistId, params string[] filePaths); + ServiceStack.Gist GetGist(string gistId); + ServiceStack.Gist GetGist(string gistId, string version); + System.Threading.Tasks.Task GetGistAsync(string gistId); + System.Threading.Tasks.Task GetGistAsync(string gistId, string version); + void WriteGistFile(string gistId, string filePath, string contents); + void WriteGistFiles(string gistId, System.Collections.Generic.Dictionary files, string description = default(string), bool deleteMissing = default(bool)); + void WriteGistFiles(string gistId, System.Collections.Generic.Dictionary textFiles, string description = default(string), bool deleteMissing = default(bool)); + } + + // Generated from `ServiceStack.IGitHubGateway` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IGitHubGateway : ServiceStack.IGistGateway + { + void DownloadFile(string downloadUrl, string fileName); + System.Tuple FindRepo(string[] orgs, string name, bool useFork = default(bool)); + string GetJson(string route); + T GetJson(string route); + System.Threading.Tasks.Task GetJsonAsync(string route); + System.Threading.Tasks.Task GetJsonAsync(string route); + System.Threading.Tasks.Task> GetJsonCollectionAsync(string route); + System.Collections.Generic.List GetOrgRepos(string githubOrg); + System.Threading.Tasks.Task> GetOrgReposAsync(string githubOrg); + ServiceStack.GithubRepo GetRepo(string userOrOrg, string repo); + System.Threading.Tasks.Task GetRepoAsync(string userOrOrg, string repo); + System.Threading.Tasks.Task> GetSourceReposAsync(string orgName); + string GetSourceZipUrl(string user, string repo); + System.Threading.Tasks.Task GetSourceZipUrlAsync(string user, string repo); + System.Threading.Tasks.Task> GetUserAndOrgReposAsync(string githubOrgOrUser); + System.Collections.Generic.List GetUserRepos(string githubUser); + System.Threading.Tasks.Task> GetUserReposAsync(string githubUser); + System.Collections.Generic.IEnumerable StreamJsonCollection(string route); + } + + // Generated from `ServiceStack.IPAddressExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class IPAddressExtensions + { + public static System.Collections.Generic.Dictionary GetAllNetworkInterfaceIpv4Addresses() => throw null; + public static System.Collections.Generic.List GetAllNetworkInterfaceIpv6Addresses() => throw null; + public static System.Net.IPAddress GetBroadcastAddress(this System.Net.IPAddress address, System.Net.IPAddress subnetMask) => throw null; + public static System.Net.IPAddress GetNetworkAddress(this System.Net.IPAddress address, System.Net.IPAddress subnetMask) => throw null; + public static System.Byte[] GetNetworkAddressBytes(System.Byte[] ipAdressBytes, System.Byte[] subnetMaskBytes) => throw null; + public static bool IsInSameIpv4Subnet(this System.Byte[] address1Bytes, System.Byte[] address2Bytes, System.Byte[] subnetMaskBytes) => throw null; + public static bool IsInSameIpv4Subnet(this System.Net.IPAddress address2, System.Net.IPAddress address, System.Net.IPAddress subnetMask) => throw null; + public static bool IsInSameIpv6Subnet(this System.Byte[] address1Bytes, System.Byte[] address2Bytes) => throw null; + public static bool IsInSameIpv6Subnet(this System.Net.IPAddress address2, System.Net.IPAddress address) => throw null; + } + + // Generated from `ServiceStack.IdUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class IdUtils + { + public static string CreateCacheKeyPath(string idValue) => throw null; + public static string CreateUrn(System.Type type, object id) => throw null; + public static string CreateUrn(string type, object id) => throw null; + public static string CreateUrn(this T entity) => throw null; + public static string CreateUrn(object id) => throw null; + public static object GetId(this T entity) => throw null; + public static System.Reflection.PropertyInfo GetIdProperty(this System.Type type) => throw null; + public static object GetObjectId(this object entity) => throw null; + public const string IdField = default; + public static object ToId(this T entity) => throw null; + public static string ToSafePathCacheKey(this string idValue) => throw null; + public static string ToUrn(this T entity) => throw null; + public static string ToUrn(this object id) => throw null; + } + + // Generated from `ServiceStack.IdUtils<>` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class IdUtils + { + public static object GetId(T entity) => throw null; + } + + // Generated from `ServiceStack.InputOptions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InputOptions + { + public string ErrorClass { get => throw null; set => throw null; } + public string Help { get => throw null; set => throw null; } + public bool Inline { get => throw null; set => throw null; } + public InputOptions() => throw null; + public System.Collections.Generic.IEnumerable> InputValues { set => throw null; } + public string Label { get => throw null; set => throw null; } + public string LabelClass { get => throw null; set => throw null; } + public bool PreserveValue { get => throw null; set => throw null; } + public bool ShowErrors { get => throw null; set => throw null; } + public string Size { get => throw null; set => throw null; } + public object Values { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Inspect` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Inspect + { + // Generated from `ServiceStack.Inspect+Config` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Config + { + public static void DefaultVarsFilter(object anonArgs) => throw null; + public static System.Func DumpTableFilter { get => throw null; set => throw null; } + public static System.Action VarsFilter { get => throw null; set => throw null; } + public const string VarsName = default; + } + + + public static string dump(T instance) => throw null; + public static string dumpTable(object instance) => throw null; + public static string dumpTable(object instance, string[] headers) => throw null; + public static string dumpTable(object instance, ServiceStack.TextDumpOptions options) => throw null; + public static string htmlDump(object target) => throw null; + public static string htmlDump(object target, ServiceStack.HtmlDumpOptions options) => throw null; + public static string htmlDump(object target, string[] headers) => throw null; + public static void printDump(T instance) => throw null; + public static void printDumpTable(object instance) => throw null; + public static void printDumpTable(object instance, string[] headers) => throw null; + public static void printHtmlDump(object instance) => throw null; + public static void printHtmlDump(object instance, string[] headers) => throw null; + public static void vars(object anonArgs) => throw null; + } + + // Generated from `ServiceStack.InstanceMapper` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object InstanceMapper(object instance); + + // Generated from `ServiceStack.IntExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class IntExtensions + { + public static System.Collections.Generic.IEnumerable Times(this int times) => throw null; + public static void Times(this int times, System.Action actionFn) => throw null; + public static void Times(this int times, System.Action actionFn) => throw null; + public static System.Collections.Generic.List Times(this int times, System.Func actionFn) => throw null; + public static System.Collections.Generic.List Times(this int times, System.Func actionFn) => throw null; + public static System.Collections.Generic.List TimesAsync(this int times, System.Action actionFn) => throw null; + public static System.Collections.Generic.List TimesAsync(this int times, System.Action actionFn) => throw null; + public static System.Threading.Tasks.Task TimesAsync(this int times, System.Func actionFn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> TimesAsync(this int times, System.Func> actionFn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.JS` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JS + { + public static void Configure() => throw null; + public static ServiceStack.Script.ScriptScopeContext CreateScope(System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary), ServiceStack.Script.ScriptMethods functions = default(ServiceStack.Script.ScriptMethods)) => throw null; + public const string EvalAstCacheKeyPrefix = default; + public const string EvalCacheKeyPrefix = default; + public const string EvalScriptCacheKeyPrefix = default; + public static void UnConfigure() => throw null; + public static object eval(System.ReadOnlySpan js, ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static object eval(ServiceStack.Script.ScriptContext context, ServiceStack.Script.JsToken token, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static object eval(ServiceStack.Script.ScriptContext context, System.ReadOnlySpan expr, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static object eval(ServiceStack.Script.ScriptContext context, string expr, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static object eval(string js) => throw null; + public static object eval(string js, ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static object evalCached(ServiceStack.Script.ScriptContext context, string expr) => throw null; + public static ServiceStack.Script.JsToken expression(string js) => throw null; + public static ServiceStack.Script.JsToken expressionCached(ServiceStack.Script.ScriptContext context, string expr) => throw null; + public static ServiceStack.Script.SharpPage scriptCached(ServiceStack.Script.ScriptContext context, string evalCode) => throw null; + } + + // Generated from `ServiceStack.JSON` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JSON + { + public static object parse(string json) => throw null; + public static object parseSpan(System.ReadOnlySpan json) => throw null; + public static string stringify(object value) => throw null; + } + + // Generated from `ServiceStack.MethodInvoker` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object MethodInvoker(object instance, params object[] args); + + // Generated from `ServiceStack.ModelConfig<>` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ModelConfig + { + public static void Id(ServiceStack.GetMemberDelegate getIdFn) => throw null; + public ModelConfig() => throw null; + } + + // Generated from `ServiceStack.NavButtonGroupDefaults` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class NavButtonGroupDefaults + { + public static ServiceStack.NavOptions Create() => throw null; + public static ServiceStack.NavOptions ForNavButtonGroup(this ServiceStack.NavOptions options) => throw null; + public static string NavClass { get => throw null; set => throw null; } + public static string NavItemClass { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NavDefaults` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class NavDefaults + { + public static string ChildNavItemClass { get => throw null; set => throw null; } + public static string ChildNavLinkClass { get => throw null; set => throw null; } + public static string ChildNavMenuClass { get => throw null; set => throw null; } + public static string ChildNavMenuItemClass { get => throw null; set => throw null; } + public static ServiceStack.NavOptions Create() => throw null; + public static ServiceStack.NavOptions ForNav(this ServiceStack.NavOptions options) => throw null; + public static string NavClass { get => throw null; set => throw null; } + public static string NavItemClass { get => throw null; set => throw null; } + public static string NavLinkClass { get => throw null; set => throw null; } + public static ServiceStack.NavOptions OverrideDefaults(ServiceStack.NavOptions targets, ServiceStack.NavOptions source) => throw null; + } + + // Generated from `ServiceStack.NavLinkDefaults` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class NavLinkDefaults + { + public static ServiceStack.NavOptions ForNavLink(this ServiceStack.NavOptions options) => throw null; + } + + // Generated from `ServiceStack.NavOptions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NavOptions + { + public string ActivePath { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet Attributes { get => throw null; set => throw null; } + public string BaseHref { get => throw null; set => throw null; } + public string ChildNavItemClass { get => throw null; set => throw null; } + public string ChildNavLinkClass { get => throw null; set => throw null; } + public string ChildNavMenuClass { get => throw null; set => throw null; } + public string ChildNavMenuItemClass { get => throw null; set => throw null; } + public string NavClass { get => throw null; set => throw null; } + public string NavItemClass { get => throw null; set => throw null; } + public string NavLinkClass { get => throw null; set => throw null; } + public NavOptions() => throw null; + } + + // Generated from `ServiceStack.NavbarDefaults` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class NavbarDefaults + { + public static ServiceStack.NavOptions Create() => throw null; + public static ServiceStack.NavOptions ForNavbar(this ServiceStack.NavOptions options) => throw null; + public static string NavClass { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NetCoreExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class NetCoreExtensions + { + public static void Close(this System.Data.Common.DbDataReader reader) => throw null; + public static void Close(this System.Net.Sockets.Socket socket) => throw null; + } + + // Generated from `ServiceStack.ObjectActivator` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ObjectActivator(params object[] args); + + // Generated from `ServiceStack.PerfUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class PerfUtils + { + public static double Measure(System.Action fn, int times = default(int), int runForMs = default(int), System.Action setup = default(System.Action), System.Action warmup = default(System.Action), System.Action teardown = default(System.Action)) => throw null; + public static double MeasureFor(System.Action fn, int runForMs) => throw null; + public static System.TimeSpan ToTimeSpan(this System.Int64 fromTicks) => throw null; + } + + // Generated from `ServiceStack.ProcessResult` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProcessResult + { + public System.Int64? CallbackDurationMs { get => throw null; set => throw null; } + public System.Int64 DurationMs { get => throw null; set => throw null; } + public System.DateTime EndAt { get => throw null; set => throw null; } + public int? ExitCode { get => throw null; set => throw null; } + public ProcessResult() => throw null; + public System.DateTime StartAt { get => throw null; set => throw null; } + public string StdErr { get => throw null; set => throw null; } + public string StdOut { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ProcessUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ProcessUtils + { + public static System.Diagnostics.ProcessStartInfo ConvertToCmdExec(this System.Diagnostics.ProcessStartInfo startInfo) => throw null; + public static ServiceStack.ProcessResult CreateErrorResult(System.Exception e) => throw null; + public static System.Diagnostics.Process CreateProcess(string fileName, string arguments, string workingDir) => throw null; + public static string FindExePath(string exeName) => throw null; + public static string Run(string fileName, string arguments = default(string), string workingDir = default(string)) => throw null; + public static System.Threading.Tasks.Task RunAsync(System.Diagnostics.ProcessStartInfo startInfo, int? timeoutMs = default(int?), System.Action onOut = default(System.Action), System.Action onError = default(System.Action)) => throw null; + public static string RunShell(string arguments, string workingDir = default(string)) => throw null; + public static System.Threading.Tasks.Task RunShellAsync(string arguments, string workingDir = default(string), int? timeoutMs = default(int?), System.Action onOut = default(System.Action), System.Action onError = default(System.Action)) => throw null; + } + + // Generated from `ServiceStack.RequestExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static partial class RequestExtensions + { + public static System.Collections.Generic.Dictionary GetRequestParams(this ServiceStack.Web.IRequest request) => throw null; + } + + // Generated from `ServiceStack.Run` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Run + { + Always, + IgnoreInDebug, + OnlyInDebug, + } + + // Generated from `ServiceStack.SharpPagesExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SharpPagesExtensions + { + public static System.Threading.Tasks.Task RenderToStringAsync(this ServiceStack.Web.IStreamWriterAsync writer) => throw null; + } + + // Generated from `ServiceStack.SimpleAppSettings` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SimpleAppSettings : ServiceStack.Configuration.IAppSettings + { + public bool Exists(string key) => throw null; + public T Get(string key) => throw null; + public T Get(string key, T defaultValue) => throw null; + public System.Collections.Generic.Dictionary GetAll() => throw null; + public System.Collections.Generic.List GetAllKeys() => throw null; + public System.Collections.Generic.IDictionary GetDictionary(string key) => throw null; + public System.Collections.Generic.List> GetKeyValuePairs(string key) => throw null; + public System.Collections.Generic.IList GetList(string key) => throw null; + public string GetString(string key) => throw null; + public void Set(string key, T value) => throw null; + public SimpleAppSettings(System.Collections.Generic.Dictionary settings = default(System.Collections.Generic.Dictionary)) => throw null; + } + + // Generated from `ServiceStack.SimpleContainer` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SimpleContainer : ServiceStack.Configuration.IResolver, ServiceStack.IContainer + { + public ServiceStack.IContainer AddSingleton(System.Type type, System.Func factory) => throw null; + public ServiceStack.IContainer AddTransient(System.Type type, System.Func factory) => throw null; + public System.Func CreateFactory(System.Type type) => throw null; + public void Dispose() => throw null; + public bool Exists(System.Type type) => throw null; + protected System.Collections.Concurrent.ConcurrentDictionary> Factory; + public System.Collections.Generic.HashSet IgnoreTypesNamed { get => throw null; } + protected virtual bool IncludeProperty(System.Reflection.PropertyInfo pi) => throw null; + protected System.Collections.Concurrent.ConcurrentDictionary InstanceCache; + public object RequiredResolve(System.Type type, System.Type ownerType) => throw null; + public object Resolve(System.Type type) => throw null; + protected virtual System.Reflection.ConstructorInfo ResolveBestConstructor(System.Type type) => throw null; + public SimpleContainer() => throw null; + public T TryResolve() => throw null; + } + + // Generated from `ServiceStack.SiteUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SiteUtils + { + public static string ToUrlEncoded(System.Collections.Generic.List args) => throw null; + public static string UrlFromSlug(string slug) => throw null; + public static string UrlToSlug(string url) => throw null; + } + + // Generated from `ServiceStack.StaticActionInvoker` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void StaticActionInvoker(params object[] args); + + // Generated from `ServiceStack.StaticMethodInvoker` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object StaticMethodInvoker(params object[] args); + + // Generated from `ServiceStack.StopExecutionException` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StopExecutionException : System.Exception + { + public StopExecutionException() => throw null; + public StopExecutionException(string message) => throw null; + public StopExecutionException(string message, System.Exception innerException) => throw null; + } + + // Generated from `ServiceStack.StringUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StringUtils + { + public static void AppendLine(this System.Text.StringBuilder sb, System.ReadOnlyMemory line) => throw null; + public static string ConvertHtmlCodes(this string html) => throw null; + public static System.Collections.Generic.Dictionary EscapedCharMap; + public static System.Collections.Generic.IDictionary HtmlCharacterCodes; + public static string HtmlDecode(this string html) => throw null; + public static string HtmlEncode(this string html) => throw null; + public static string HtmlEncodeLite(this string html) => throw null; + public static System.ReadOnlyMemory NewLineMemory; + public static System.ReadOnlyMemory ParseArguments(System.ReadOnlyMemory argsString, out System.Collections.Generic.List> args) => throw null; + public static System.Collections.Generic.List ParseCommands(this System.ReadOnlyMemory commandsString, System.Char separator = default(System.Char)) => throw null; + public static System.Collections.Generic.List ParseCommands(this string commandsString) => throw null; + public static ServiceStack.TextNode ParseTypeIntoNodes(this string typeDef) => throw null; + public static ServiceStack.TextNode ParseTypeIntoNodes(this string typeDef, System.Char[] genericDelimChars) => throw null; + public static string RemoveSuffix(string name, string suffix) => throw null; + public static string ReplaceOutsideOfQuotes(this string str, params string[] replaceStringsPairs) => throw null; + public static string ReplacePairs(string str, string[] replaceStringsPairs) => throw null; + public static string SafeInput(this string text) => throw null; + public static string SnakeCaseToPascalCase(string snakeCase) => throw null; + public static System.Collections.Generic.List SplitGenericArgs(string argList) => throw null; + public static string[] SplitVarNames(string fields) => throw null; + public static string ToChar(this int codePoint) => throw null; + public static string ToEscapedString(this string input) => throw null; + } + + // Generated from `ServiceStack.TaskExt` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TaskExt + { + public static System.Threading.Tasks.Task AsTaskException(this System.Exception ex) => throw null; + public static System.Threading.Tasks.Task AsTaskException(this System.Exception ex) => throw null; + public static System.Threading.Tasks.Task AsTaskResult(this T result) => throw null; + public static System.Threading.Tasks.ValueTask AsValueTask(this System.Threading.Tasks.Task task) => throw null; + public static System.Threading.Tasks.ValueTask AsValueTask(this System.Threading.Tasks.Task task) => throw null; + public static object GetResult(this System.Threading.Tasks.Task task) => throw null; + public static T GetResult(this System.Threading.Tasks.Task task) => throw null; + public static void RunSync(System.Func task) => throw null; + public static TResult RunSync(System.Func> task) => throw null; + public static void Wait(this System.Threading.Tasks.ValueTask task) => throw null; + } + + // Generated from `ServiceStack.TextDumpOptions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TextDumpOptions + { + public string Caption { get => throw null; set => throw null; } + public string CaptionIfEmpty { get => throw null; set => throw null; } + public ServiceStack.Script.DefaultScripts Defaults { get => throw null; set => throw null; } + public ServiceStack.TextStyle HeaderStyle { get => throw null; set => throw null; } + public string[] Headers { get => throw null; set => throw null; } + public bool IncludeRowNumbers { get => throw null; set => throw null; } + public static ServiceStack.TextDumpOptions Parse(System.Collections.Generic.Dictionary options, ServiceStack.Script.DefaultScripts defaults = default(ServiceStack.Script.DefaultScripts)) => throw null; + public TextDumpOptions() => throw null; + } + + // Generated from `ServiceStack.TextNode` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TextNode + { + public System.Collections.Generic.List Children { get => throw null; set => throw null; } + public string Text { get => throw null; set => throw null; } + public TextNode() => throw null; + } + + // Generated from `ServiceStack.TextStyle` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum TextStyle + { + CamelCase, + Humanize, + None, + PascalCase, + SplitCase, + TitleCase, + } + + // Generated from `ServiceStack.TypeExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TypeExtensions + { + public static void AddReferencedTypes(System.Type type, System.Collections.Generic.HashSet refTypes) => throw null; + public static T ConvertFromObject(object value) => throw null; + public static object ConvertToObject(T value) => throw null; + public static System.Linq.Expressions.LambdaExpression CreatePropertyAccessorExpression(System.Type type, System.Reflection.PropertyInfo forProperty) => throw null; + public static ServiceStack.ActionInvoker GetActionInvoker(this System.Reflection.MethodInfo method) => throw null; + public static ServiceStack.ActionInvoker GetActionInvokerToCache(System.Reflection.MethodInfo method) => throw null; + public static ServiceStack.ObjectActivator GetActivator(this System.Reflection.ConstructorInfo ctor) => throw null; + public static ServiceStack.ObjectActivator GetActivatorToCache(System.Reflection.ConstructorInfo ctor) => throw null; + public static ServiceStack.MethodInvoker GetInvoker(this System.Reflection.MethodInfo method) => throw null; + public static System.Delegate GetInvokerDelegate(this System.Reflection.MethodInfo method) => throw null; + public static ServiceStack.MethodInvoker GetInvokerToCache(System.Reflection.MethodInfo method) => throw null; + public static System.Func GetPropertyAccessor(this System.Type type, System.Reflection.PropertyInfo forProperty) => throw null; + public static System.Type[] GetReferencedTypes(this System.Type type) => throw null; + public static ServiceStack.StaticActionInvoker GetStaticActionInvoker(this System.Reflection.MethodInfo method) => throw null; + public static ServiceStack.StaticActionInvoker GetStaticActionInvokerToCache(System.Reflection.MethodInfo method) => throw null; + public static ServiceStack.StaticMethodInvoker GetStaticInvoker(this System.Reflection.MethodInfo method) => throw null; + public static ServiceStack.StaticMethodInvoker GetStaticInvokerToCache(System.Reflection.MethodInfo method) => throw null; + public static bool? IsNotNullable(this System.Reflection.PropertyInfo property) => throw null; + public static bool? IsNotNullable(System.Type memberType, System.Reflection.MemberInfo declaringType, System.Collections.Generic.IEnumerable customAttributes) => throw null; + } + + // Generated from `ServiceStack.UrnId` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UrnId + { + public static string Create(System.Type objectType, string idFieldValue) => throw null; + public static string Create(System.Type objectType, string idFieldName, string idFieldValue) => throw null; + public static string Create(string objectTypeName, string idFieldValue) => throw null; + public static string Create(object idFieldValue) => throw null; + public static string Create(string idFieldValue) => throw null; + public static string Create(string idFieldName, string idFieldValue) => throw null; + public static string CreateWithParts(string objectTypeName, params string[] keyParts) => throw null; + public static string CreateWithParts(params string[] keyParts) => throw null; + public static System.Guid GetGuidId(string urn) => throw null; + public static System.Int64 GetLongId(string urn) => throw null; + public static string GetStringId(string urn) => throw null; + public string IdFieldName { get => throw null; set => throw null; } + public string IdFieldValue { get => throw null; set => throw null; } + public static ServiceStack.UrnId Parse(string urnId) => throw null; + public string TypeName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.View` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class View + { + public static System.Collections.Generic.List GetNavItems(string key) => throw null; + public static void Load(ServiceStack.Configuration.IAppSettings settings) => throw null; + public static System.Collections.Generic.List NavItems { get => throw null; } + public static System.Collections.Generic.Dictionary> NavItemsMap { get => throw null; } + } + + // Generated from `ServiceStack.ViewUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ViewUtils + { + public static string BundleCss(string filterName, ServiceStack.IO.IVirtualPathProvider webVfs, ServiceStack.IO.IVirtualPathProvider contentVfs, ServiceStack.ICompressor cssCompressor, ServiceStack.BundleOptions options) => throw null; + public static string BundleHtml(string filterName, ServiceStack.IO.IVirtualPathProvider webVfs, ServiceStack.IO.IVirtualPathProvider contentVfs, ServiceStack.ICompressor htmlCompressor, ServiceStack.BundleOptions options) => throw null; + public static string BundleJs(string filterName, ServiceStack.IO.IVirtualPathProvider webVfs, ServiceStack.IO.IVirtualPathProvider contentVfs, ServiceStack.ICompressor jsCompressor, ServiceStack.BundleOptions options) => throw null; + public static string CssIncludes(ServiceStack.IO.IVirtualPathProvider vfs, System.Collections.Generic.List cssFiles) => throw null; + public static string DumpTable(this object target) => throw null; + public static string DumpTable(this object target, ServiceStack.TextDumpOptions options) => throw null; + public static string ErrorResponse(ServiceStack.ResponseStatus errorStatus, string fieldName) => throw null; + public static string ErrorResponseExcept(ServiceStack.ResponseStatus errorStatus, System.Collections.Generic.ICollection fieldNames) => throw null; + public static string ErrorResponseExcept(ServiceStack.ResponseStatus errorStatus, string fieldNames) => throw null; + public static string ErrorResponseSummary(ServiceStack.ResponseStatus errorStatus) => throw null; + public static bool FormCheckValue(ServiceStack.Web.IRequest req, string name) => throw null; + public static string FormControl(ServiceStack.Web.IRequest req, System.Collections.Generic.Dictionary args, string tagName, ServiceStack.InputOptions inputOptions) => throw null; + public static string FormQuery(ServiceStack.Web.IRequest req, string name) => throw null; + public static string[] FormQueryValues(ServiceStack.Web.IRequest req, string name) => throw null; + public static string FormValue(ServiceStack.Web.IRequest req, string name) => throw null; + public static string FormValue(ServiceStack.Web.IRequest req, string name, string defaultValue) => throw null; + public static string[] FormValues(ServiceStack.Web.IRequest req, string name) => throw null; + public static System.Collections.Generic.IEnumerable GetBundleFiles(string filterName, ServiceStack.IO.IVirtualPathProvider webVfs, ServiceStack.IO.IVirtualPathProvider contentVfs, System.Collections.Generic.IEnumerable virtualPaths, string assetExt) => throw null; + public static System.Globalization.CultureInfo GetDefaultCulture(this ServiceStack.Script.DefaultScripts defaultScripts) => throw null; + public static string GetDefaultTableClassName(this ServiceStack.Script.DefaultScripts defaultScripts) => throw null; + public static ServiceStack.ResponseStatus GetErrorStatus(ServiceStack.Web.IRequest req) => throw null; + public static System.Collections.Generic.List GetNavItems(string key) => throw null; + public static string GetParam(ServiceStack.Web.IRequest req, string name) => throw null; + public static bool HasErrorStatus(ServiceStack.Web.IRequest req) => throw null; + public static string HtmlDump(object target) => throw null; + public static string HtmlDump(object target, ServiceStack.HtmlDumpOptions options) => throw null; + public static string HtmlHiddenInputs(System.Collections.Generic.IEnumerable> inputValues) => throw null; + public static bool IsNull(object test) => throw null; + public static string JsIncludes(ServiceStack.IO.IVirtualPathProvider vfs, System.Collections.Generic.List jsFiles) => throw null; + public static void Load(ServiceStack.Configuration.IAppSettings settings) => throw null; + public static string Nav(System.Collections.Generic.List navItems, ServiceStack.NavOptions options) => throw null; + public static string NavButtonGroup(System.Collections.Generic.List navItems, ServiceStack.NavOptions options) => throw null; + public static string NavButtonGroup(ServiceStack.NavItem navItem, ServiceStack.NavOptions options) => throw null; + public static System.Collections.Generic.List NavItems { get => throw null; } + public static string NavItemsKey { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary> NavItemsMap { get => throw null; } + public static string NavItemsMapKey { get => throw null; set => throw null; } + public static string NavLink(ServiceStack.NavItem navItem, ServiceStack.NavOptions options) => throw null; + public static void NavLink(System.Text.StringBuilder sb, ServiceStack.NavItem navItem, ServiceStack.NavOptions options) => throw null; + public static void NavLinkButton(System.Text.StringBuilder sb, ServiceStack.NavItem navItem, ServiceStack.NavOptions options) => throw null; + public static void PrintDumpTable(this object target) => throw null; + public static void PrintDumpTable(this object target, ServiceStack.TextDumpOptions options) => throw null; + public static bool ShowNav(this ServiceStack.NavItem navItem, System.Collections.Generic.HashSet attributes) => throw null; + public static System.Collections.Generic.List SplitStringList(System.Collections.IEnumerable strings) => throw null; + public static string StyleText(string text, ServiceStack.TextStyle textStyle) => throw null; + public static string TextDump(this object target) => throw null; + public static string TextDump(this object target, ServiceStack.TextDumpOptions options) => throw null; + public static System.Collections.Generic.List> ToKeyValues(object values) => throw null; + public static System.Collections.Generic.List ToStringList(System.Collections.IEnumerable strings) => throw null; + public static System.Collections.Generic.IEnumerable ToStrings(string filterName, object arg) => throw null; + public static System.Collections.Generic.List ToVarNames(string fieldNames) => throw null; + public static string ValidationSuccess(string message, System.Collections.Generic.Dictionary divAttrs) => throw null; + public static string ValidationSuccessCssClassNames; + public static string ValidationSummary(ServiceStack.ResponseStatus errorStatus, System.Collections.Generic.ICollection exceptFields, System.Collections.Generic.Dictionary divAttrs) => throw null; + public static string ValidationSummary(ServiceStack.ResponseStatus errorStatus, string exceptFor) => throw null; + public static string ValidationSummaryCssClassNames; + } + + // Generated from `ServiceStack.VirtualFileExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class VirtualFileExtensions + { + public static ServiceStack.IO.IVirtualDirectory[] GetAllRootDirectories(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; + public static System.Byte[] GetBytesContentsAsBytes(this ServiceStack.IO.IVirtualFile file) => throw null; + public static System.ReadOnlyMemory GetBytesContentsAsMemory(this ServiceStack.IO.IVirtualFile file) => throw null; + public static ServiceStack.IO.FileSystemVirtualFiles GetFileSystemVirtualFiles(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; + public static ServiceStack.IO.GistVirtualFiles GetGistVirtualFiles(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; + public static ServiceStack.IO.MemoryVirtualFiles GetMemoryVirtualFiles(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; + public static ServiceStack.IO.ResourceVirtualFiles GetResourceVirtualFiles(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; + public static System.ReadOnlyMemory GetTextContentsAsMemory(this ServiceStack.IO.IVirtualFile file) => throw null; + public static T GetVirtualFileSource(this ServiceStack.IO.IVirtualPathProvider vfs) where T : class => throw null; + public static bool ShouldSkipPath(this ServiceStack.IO.IVirtualNode node) => throw null; + } + + // Generated from `ServiceStack.VirtualPathUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class VirtualPathUtils + { + public static bool Exists(this ServiceStack.IO.IVirtualNode node) => throw null; + public static ServiceStack.IO.IVirtualFile GetDefaultDocument(this ServiceStack.IO.IVirtualDirectory dir, System.Collections.Generic.List defaultDocuments) => throw null; + public static ServiceStack.IO.IVirtualNode GetVirtualNode(this ServiceStack.IO.IVirtualPathProvider pathProvider, string virtualPath) => throw null; + public static System.Collections.Generic.IEnumerable> GroupByFirstToken(this System.Collections.Generic.IEnumerable resourceNames, System.Char pathSeparator = default(System.Char)) => throw null; + public static bool IsDirectory(this ServiceStack.IO.IVirtualNode node) => throw null; + public static bool IsFile(this ServiceStack.IO.IVirtualNode node) => throw null; + public static bool IsValidFileName(string path) => throw null; + public static bool IsValidFilePath(string path) => throw null; + public static System.TimeSpan MaxRetryOnExceptionTimeout { get => throw null; } + public static System.Byte[] ReadAllBytes(this ServiceStack.IO.IVirtualFile file) => throw null; + public static string SafeFileName(string uri) => throw null; + public static System.Collections.Generic.Stack TokenizeResourcePath(this string str, System.Char pathSeparator = default(System.Char)) => throw null; + public static System.Collections.Generic.Stack TokenizeVirtualPath(this string str, ServiceStack.IO.IVirtualPathProvider pathProvider) => throw null; + public static System.Collections.Generic.Stack TokenizeVirtualPath(this string str, string virtualPathSeparator) => throw null; + } + + // Generated from `ServiceStack.Words` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Words + { + public static string Capitalize(string word) => throw null; + public static string Pluralize(string word) => throw null; + public static string Singularize(string word) => throw null; + } + + // Generated from `ServiceStack.XLinqExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class XLinqExtensions + { + public static System.Collections.Generic.IEnumerable AllElements(this System.Collections.Generic.IEnumerable elements, string name) => throw null; + public static System.Collections.Generic.IEnumerable AllElements(this System.Xml.Linq.XElement element, string name) => throw null; + public static System.Xml.Linq.XAttribute AnyAttribute(this System.Xml.Linq.XElement element, string name) => throw null; + public static System.Xml.Linq.XElement AnyElement(this System.Collections.Generic.IEnumerable elements, string name) => throw null; + public static System.Xml.Linq.XElement AnyElement(this System.Xml.Linq.XElement element, string name) => throw null; + public static void AssertElementHasValue(this System.Xml.Linq.XElement element, string name) => throw null; + public static System.Xml.Linq.XElement FirstElement(this System.Xml.Linq.XElement element) => throw null; + public static T GetAttributeValueOrDefault(this System.Xml.Linq.XAttribute attr, string name, System.Func converter) => throw null; + public static bool GetBool(this System.Xml.Linq.XElement el, string name) => throw null; + public static bool GetBoolOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.DateTime GetDateTime(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.DateTime GetDateTimeOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Decimal GetDecimal(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Decimal GetDecimalOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Xml.Linq.XElement GetElement(this System.Xml.Linq.XElement element, string name) => throw null; + public static T GetElementValueOrDefault(this System.Xml.Linq.XElement element, string name, System.Func converter) => throw null; + public static System.Guid GetGuid(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Guid GetGuidOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; + public static int GetInt(this System.Xml.Linq.XElement el, string name) => throw null; + public static int GetIntOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Int64 GetLong(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Int64 GetLongOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; + public static bool? GetNullableBool(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.DateTime? GetNullableDateTime(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Decimal? GetNullableDecimal(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Guid? GetNullableGuid(this System.Xml.Linq.XElement el, string name) => throw null; + public static int? GetNullableInt(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Int64? GetNullableLong(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.TimeSpan? GetNullableTimeSpan(this System.Xml.Linq.XElement el, string name) => throw null; + public static string GetString(this System.Xml.Linq.XElement el, string name) => throw null; + public static string GetStringAttributeOrDefault(this System.Xml.Linq.XElement element, string name) => throw null; + public static System.TimeSpan GetTimeSpan(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.TimeSpan GetTimeSpanOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; + public static System.Collections.Generic.List GetValues(this System.Collections.Generic.IEnumerable els) => throw null; + public static System.Xml.Linq.XElement NextElement(this System.Xml.Linq.XElement element) => throw null; + } + + namespace AsyncEx + { + // Generated from `ServiceStack.AsyncEx.AsyncManualResetEvent` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AsyncManualResetEvent + { + public AsyncManualResetEvent() => throw null; + public AsyncManualResetEvent(bool set) => throw null; + public int Id { get => throw null; } + public bool IsSet { get => throw null; } + public void Reset() => throw null; + public void Set() => throw null; + public void Wait() => throw null; + public void Wait(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task WaitAsync() => throw null; + public System.Threading.Tasks.Task WaitAsync(System.Threading.CancellationToken cancellationToken) => throw null; + } + + // Generated from `ServiceStack.AsyncEx.CancellationTokenTaskSource<>` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CancellationTokenTaskSource : System.IDisposable + { + public CancellationTokenTaskSource(System.Threading.CancellationToken cancellationToken) => throw null; + public void Dispose() => throw null; + public System.Threading.Tasks.Task Task { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AsyncEx.TaskCompletionSourceExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TaskCompletionSourceExtensions + { + public static System.Threading.Tasks.TaskCompletionSource CreateAsyncTaskSource() => throw null; + public static bool TryCompleteFromCompletedTask(this System.Threading.Tasks.TaskCompletionSource @this, System.Threading.Tasks.Task task) where TSourceResult : TResult => throw null; + public static bool TryCompleteFromCompletedTask(this System.Threading.Tasks.TaskCompletionSource @this, System.Threading.Tasks.Task task, System.Func resultFunc) => throw null; + } + + // Generated from `ServiceStack.AsyncEx.TaskExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TaskExtensions + { + public static void WaitAndUnwrapException(this System.Threading.Tasks.Task task) => throw null; + public static void WaitAndUnwrapException(this System.Threading.Tasks.Task task, System.Threading.CancellationToken cancellationToken) => throw null; + public static TResult WaitAndUnwrapException(this System.Threading.Tasks.Task task) => throw null; + public static TResult WaitAndUnwrapException(this System.Threading.Tasks.Task task, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task WaitAsync(this System.Threading.Tasks.Task @this, System.Threading.CancellationToken cancellationToken) => throw null; + public static void WaitWithoutException(this System.Threading.Tasks.Task task) => throw null; + public static void WaitWithoutException(this System.Threading.Tasks.Task task, System.Threading.CancellationToken cancellationToken) => throw null; + } + + } + namespace Data + { + // Generated from `ServiceStack.Data.DbConnectionFactory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DbConnectionFactory : ServiceStack.Data.IDbConnectionFactory + { + public System.Data.IDbConnection CreateDbConnection() => throw null; + public DbConnectionFactory(System.Func connectionFactoryFn) => throw null; + public System.Data.IDbConnection OpenDbConnection() => throw null; + } + + // Generated from `ServiceStack.Data.IDbConnectionFactory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDbConnectionFactory + { + System.Data.IDbConnection CreateDbConnection(); + System.Data.IDbConnection OpenDbConnection(); + } + + // Generated from `ServiceStack.Data.IDbConnectionFactoryExtended` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDbConnectionFactoryExtended : ServiceStack.Data.IDbConnectionFactory + { + System.Data.IDbConnection OpenDbConnection(string namedConnection); + System.Data.IDbConnection OpenDbConnectionString(string connectionString); + System.Data.IDbConnection OpenDbConnectionString(string connectionString, string providerName); + } + + // Generated from `ServiceStack.Data.IHasDbCommand` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasDbCommand + { + System.Data.IDbCommand DbCommand { get; } + } + + // Generated from `ServiceStack.Data.IHasDbConnection` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasDbConnection + { + System.Data.IDbConnection DbConnection { get; } + } + + // Generated from `ServiceStack.Data.IHasDbTransaction` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasDbTransaction + { + System.Data.IDbTransaction DbTransaction { get; } + } + + } + namespace Extensions + { + // Generated from `ServiceStack.Extensions.UtilExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class UtilExtensions + { + } + + } + namespace IO + { + // Generated from `ServiceStack.IO.FileSystemVirtualFiles` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FileSystemVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase, ServiceStack.IO.IVirtualFiles, ServiceStack.IO.IVirtualPathProvider + { + public void AppendFile(string filePath, System.IO.Stream stream) => throw null; + public void AppendFile(string filePath, string textContents) => throw null; + public static string AssertDirectory(string dirPath, int timeoutMs = default(int)) => throw null; + public static void DeleteDirectoryRecursive(string path) => throw null; + public void DeleteFile(string filePath) => throw null; + public void DeleteFiles(System.Collections.Generic.IEnumerable filePaths) => throw null; + public void DeleteFolder(string dirPath) => throw null; + public override bool DirectoryExists(string virtualPath) => throw null; + public string EnsureDirectory(string dirPath) => throw null; + public override bool FileExists(string virtualPath) => throw null; + public FileSystemVirtualFiles(System.IO.DirectoryInfo rootDirInfo) => throw null; + public FileSystemVirtualFiles(string rootDirectoryPath) => throw null; + protected override void Initialize() => throw null; + public override string RealPathSeparator { get => throw null; } + public static void RecreateDirectory(string dirPath, int timeoutMs = default(int)) => throw null; + protected ServiceStack.VirtualPath.FileSystemVirtualDirectory RootDir; + public System.IO.DirectoryInfo RootDirInfo { get => throw null; set => throw null; } + public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } + public override string VirtualPathSeparator { get => throw null; } + public void WriteFile(string filePath, System.IO.Stream stream) => throw null; + public void WriteFile(string filePath, string textContents) => throw null; + public override System.Threading.Tasks.Task WriteFileAsync(string filePath, object contents, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)) => throw null; + } + + // Generated from `ServiceStack.IO.GistVirtualDirectory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GistVirtualDirectory : ServiceStack.VirtualPath.AbstractVirtualDirectoryBase + { + public void AddFile(string virtualPath, System.IO.Stream stream) => throw null; + public void AddFile(string virtualPath, string contents) => throw null; + public System.DateTime DirLastModified { get => throw null; set => throw null; } + public string DirPath { get => throw null; set => throw null; } + public override System.Collections.Generic.IEnumerable Directories { get => throw null; } + public System.Collections.Generic.IEnumerable EnumerateFiles(string pattern) => throw null; + public override System.Collections.Generic.IEnumerable Files { get => throw null; } + public ServiceStack.IGistGateway Gateway { get => throw null; } + public override System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; + protected override ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName) => throw null; + public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + protected override ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName) => throw null; + protected override System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern) => throw null; + public string GistId { get => throw null; } + public GistVirtualDirectory(ServiceStack.IO.GistVirtualFiles pathProvider, string dirPath, ServiceStack.IO.GistVirtualDirectory parentDir) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; + public override System.DateTime LastModified { get => throw null; } + public override string Name { get => throw null; } + public override string VirtualPath { get => throw null; } + } + + // Generated from `ServiceStack.IO.GistVirtualFile` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GistVirtualFile : ServiceStack.VirtualPath.AbstractVirtualFileBase + { + public ServiceStack.IGistGateway Client { get => throw null; } + public System.Int64 ContentLength { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public string DirPath { get => throw null; } + public override string Extension { get => throw null; } + public System.DateTime FileLastModified { get => throw null; set => throw null; } + public string FilePath { get => throw null; set => throw null; } + public override object GetContents() => throw null; + public string GistId { get => throw null; } + public GistVirtualFile(ServiceStack.IO.GistVirtualFiles pathProvider, ServiceStack.IO.IVirtualDirectory directory) : base(default(ServiceStack.IO.IVirtualPathProvider), default(ServiceStack.IO.IVirtualDirectory)) => throw null; + public ServiceStack.IO.GistVirtualFile Init(string filePath, System.DateTime lastModified, string text, System.IO.MemoryStream stream) => throw null; + public override System.DateTime LastModified { get => throw null; } + public override System.Int64 Length { get => throw null; } + public override string Name { get => throw null; } + public override System.IO.Stream OpenRead() => throw null; + public override void Refresh() => throw null; + public System.IO.Stream Stream { get => throw null; set => throw null; } + public string Text { get => throw null; set => throw null; } + public override string VirtualPath { get => throw null; } + } + + // Generated from `ServiceStack.IO.GistVirtualFiles` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GistVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase, ServiceStack.IO.IVirtualFiles, ServiceStack.IO.IVirtualPathProvider + { + public void AppendFile(string filePath, System.IO.Stream stream) => throw null; + public void AppendFile(string filePath, string textContents) => throw null; + public const string Base64Modifier = default; + public void ClearGist() => throw null; + public void DeleteFile(string filePath) => throw null; + public void DeleteFiles(System.Collections.Generic.IEnumerable virtualFilePaths) => throw null; + public void DeleteFolder(string dirPath) => throw null; + public const System.Char DirSep = default; + public override bool DirectoryExists(string virtualPath) => throw null; + public System.Collections.Generic.IEnumerable EnumerateFiles(string prefix = default(string)) => throw null; + public override bool FileExists(string virtualPath) => throw null; + public ServiceStack.IGistGateway Gateway { get => throw null; } + public override System.Collections.Generic.IEnumerable GetAllFiles() => throw null; + public string GetDirPath(string filePath) => throw null; + public override ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; + public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + public static string GetFileName(string filePath) => throw null; + public ServiceStack.Gist GetGist(bool refresh = default(bool)) => throw null; + public System.Threading.Tasks.Task GetGistAsync(bool refresh = default(bool)) => throw null; + public static bool GetGistContents(string filePath, ServiceStack.Gist gist, out string text, out System.IO.MemoryStream stream) => throw null; + public static bool GetGistTextContents(string filePath, ServiceStack.Gist gist, out string text) => throw null; + public System.Collections.Generic.IEnumerable GetImmediateDirectories(string fromDirPath) => throw null; + public System.Collections.Generic.IEnumerable GetImmediateFiles(string fromDirPath) => throw null; + public string GetImmediateSubDirPath(string fromDirPath, string subDirPath) => throw null; + public string GistId { get => throw null; set => throw null; } + public GistVirtualFiles(ServiceStack.Gist gist) => throw null; + public GistVirtualFiles(ServiceStack.Gist gist, ServiceStack.IGistGateway gateway) => throw null; + public GistVirtualFiles(ServiceStack.Gist gist, string accessToken) => throw null; + public GistVirtualFiles(string gistId) => throw null; + public GistVirtualFiles(string gistId, ServiceStack.IGistGateway gateway) => throw null; + public GistVirtualFiles(string gistId, string accessToken) => throw null; + protected override void Initialize() => throw null; + public static bool IsDirSep(System.Char c) => throw null; + public System.DateTime LastRefresh { get => throw null; set => throw null; } + public System.Threading.Tasks.Task LoadAllTruncatedFilesAsync() => throw null; + public override string RealPathSeparator { get => throw null; } + public System.TimeSpan RefreshAfter { get => throw null; set => throw null; } + public string ResolveGistFileName(string filePath) => throw null; + public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } + public override string SanitizePath(string filePath) => throw null; + public static string ToBase64(System.Byte[] bytes) => throw null; + public static string ToBase64(System.IO.Stream stream) => throw null; + public override string VirtualPathSeparator { get => throw null; } + public void WriteFile(string virtualPath, System.IO.Stream stream) => throw null; + public void WriteFile(string virtualPath, string contents) => throw null; + public override void WriteFiles(System.Collections.Generic.Dictionary files) => throw null; + public override void WriteFiles(System.Collections.Generic.Dictionary textFiles) => throw null; + public void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)) => throw null; + } + + // Generated from `ServiceStack.IO.InMemoryVirtualDirectory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryVirtualDirectory : ServiceStack.VirtualPath.AbstractVirtualDirectoryBase + { + public void AddFile(string filePath, System.IO.Stream stream) => throw null; + public void AddFile(string filePath, string contents) => throw null; + public System.DateTime DirLastModified { get => throw null; set => throw null; } + public string DirPath { get => throw null; set => throw null; } + public override System.Collections.Generic.IEnumerable Directories { get => throw null; } + public System.Collections.Generic.IEnumerable EnumerateFiles(string pattern) => throw null; + public override System.Collections.Generic.IEnumerable Files { get => throw null; } + public override System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; + protected override ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName) => throw null; + public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + protected override ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName) => throw null; + protected override System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern) => throw null; + public bool HasFiles() => throw null; + public InMemoryVirtualDirectory(ServiceStack.IO.MemoryVirtualFiles pathProvider, string dirPath, ServiceStack.IO.IVirtualDirectory parentDir = default(ServiceStack.IO.IVirtualDirectory)) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; + public override System.DateTime LastModified { get => throw null; } + public override string Name { get => throw null; } + public override string VirtualPath { get => throw null; } + } + + // Generated from `ServiceStack.IO.InMemoryVirtualFile` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryVirtualFile : ServiceStack.VirtualPath.AbstractVirtualFileBase + { + public System.Byte[] ByteContents { get => throw null; set => throw null; } + public string DirPath { get => throw null; } + public System.DateTime FileLastModified { get => throw null; set => throw null; } + public string FilePath { get => throw null; set => throw null; } + public override object GetContents() => throw null; + public InMemoryVirtualFile(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory directory) : base(default(ServiceStack.IO.IVirtualPathProvider), default(ServiceStack.IO.IVirtualDirectory)) => throw null; + public override System.DateTime LastModified { get => throw null; } + public override System.Int64 Length { get => throw null; } + public override string Name { get => throw null; } + public override System.IO.Stream OpenRead() => throw null; + public override void Refresh() => throw null; + public void SetContents(string text, System.Byte[] bytes) => throw null; + public string TextContents { get => throw null; set => throw null; } + public override string VirtualPath { get => throw null; } + } + + // Generated from `ServiceStack.IO.MemoryVirtualFiles` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MemoryVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase, ServiceStack.IO.IVirtualFiles, ServiceStack.IO.IVirtualPathProvider + { + public void AddFile(ServiceStack.IO.InMemoryVirtualFile file) => throw null; + public void AppendFile(string filePath, System.IO.Stream stream) => throw null; + public void AppendFile(string filePath, string textContents) => throw null; + public void Clear() => throw null; + public void DeleteFile(string filePath) => throw null; + public void DeleteFiles(System.Collections.Generic.IEnumerable filePaths) => throw null; + public void DeleteFolder(string dirPath) => throw null; + public const System.Char DirSep = default; + public override bool DirectoryExists(string virtualPath) => throw null; + public System.Collections.Generic.List Files { get => throw null; } + public override System.Collections.Generic.IEnumerable GetAllFiles() => throw null; + public string GetDirPath(string filePath) => throw null; + public override ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; + public ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath, bool forceDir) => throw null; + public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + public System.Collections.Generic.IEnumerable GetImmediateDirectories(string fromDirPath) => throw null; + public System.Collections.Generic.IEnumerable GetImmediateFiles(string fromDirPath) => throw null; + public string GetImmediateSubDirPath(string fromDirPath, string subDirPath) => throw null; + public ServiceStack.IO.IVirtualDirectory GetParentDirectory(string dirPath) => throw null; + protected override void Initialize() => throw null; + public MemoryVirtualFiles() => throw null; + public override string RealPathSeparator { get => throw null; } + public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } + public override string VirtualPathSeparator { get => throw null; } + public void WriteFile(string filePath, System.IO.Stream stream) => throw null; + public void WriteFile(string filePath, string textContents) => throw null; + public void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)) => throw null; + } + + // Generated from `ServiceStack.IO.MultiVirtualDirectory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MultiVirtualDirectory : ServiceStack.IO.IVirtualDirectory, ServiceStack.IO.IVirtualNode, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public System.Collections.Generic.IEnumerable Directories { get => throw null; } + public ServiceStack.IO.IVirtualDirectory Directory { get => throw null; } + public System.Collections.Generic.IEnumerable Files { get => throw null; } + public System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; + public ServiceStack.IO.IVirtualDirectory GetDirectory(System.Collections.Generic.Stack virtualPath) => throw null; + public ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public ServiceStack.IO.IVirtualFile GetFile(System.Collections.Generic.Stack virtualPath) => throw null; + public ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + public bool IsDirectory { get => throw null; } + public bool IsRoot { get => throw null; } + public System.DateTime LastModified { get => throw null; } + public MultiVirtualDirectory(ServiceStack.IO.IVirtualDirectory[] dirs) => throw null; + public string Name { get => throw null; } + public ServiceStack.IO.IVirtualDirectory ParentDirectory { get => throw null; } + public string RealPath { get => throw null; } + public static ServiceStack.IO.IVirtualDirectory ToVirtualDirectory(System.Collections.Generic.IEnumerable dirs) => throw null; + public string VirtualPath { get => throw null; } + } + + // Generated from `ServiceStack.IO.MultiVirtualFiles` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MultiVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase, ServiceStack.IO.IVirtualFiles, ServiceStack.IO.IVirtualPathProvider + { + public void AppendFile(string filePath, System.IO.Stream stream) => throw null; + public void AppendFile(string filePath, string textContents) => throw null; + public System.Collections.Generic.List ChildProviders { get => throw null; set => throw null; } + public System.Collections.Generic.IEnumerable ChildVirtualFiles { get => throw null; } + public override string CombineVirtualPath(string basePath, string relativePath) => throw null; + public void DeleteFile(string filePath) => throw null; + public void DeleteFiles(System.Collections.Generic.IEnumerable filePaths) => throw null; + public void DeleteFolder(string dirPath) => throw null; + public override bool DirectoryExists(string virtualPath) => throw null; + public override bool FileExists(string virtualPath) => throw null; + public override System.Collections.Generic.IEnumerable GetAllFiles() => throw null; + public override System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; + public override ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; + public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + public override System.Collections.Generic.IEnumerable GetRootDirectories() => throw null; + public override System.Collections.Generic.IEnumerable GetRootFiles() => throw null; + protected override void Initialize() => throw null; + public override bool IsSharedFile(ServiceStack.IO.IVirtualFile virtualFile) => throw null; + public override bool IsViewFile(ServiceStack.IO.IVirtualFile virtualFile) => throw null; + public MultiVirtualFiles(params ServiceStack.IO.IVirtualPathProvider[] childProviders) => throw null; + public override string RealPathSeparator { get => throw null; } + public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } + public override string ToString() => throw null; + public override string VirtualPathSeparator { get => throw null; } + public void WriteFile(string filePath, System.IO.Stream stream) => throw null; + public void WriteFile(string filePath, string textContents) => throw null; + public void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)) => throw null; + } + + // Generated from `ServiceStack.IO.ResourceVirtualFiles` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ResourceVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase + { + public System.Reflection.Assembly BackingAssembly { get => throw null; } + public string CleanPath(string filePath) => throw null; + public override string CombineVirtualPath(string basePath, string relativePath) => throw null; + public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + protected override void Initialize() => throw null; + public System.DateTime LastModified { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet PartialFileNames { get => throw null; set => throw null; } + public override string RealPathSeparator { get => throw null; } + public ResourceVirtualFiles(System.Reflection.Assembly backingAssembly, string rootNamespace = default(string)) => throw null; + public ResourceVirtualFiles(System.Type baseTypeInAssembly) => throw null; + protected ServiceStack.VirtualPath.ResourceVirtualDirectory RootDir; + public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } + public string RootNamespace { get => throw null; } + public override string VirtualPathSeparator { get => throw null; } + } + + // Generated from `ServiceStack.IO.VirtualDirectoryExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class VirtualDirectoryExtensions + { + public static System.Collections.Generic.IEnumerable GetAllFiles(this ServiceStack.IO.IVirtualDirectory dir) => throw null; + public static System.Collections.Generic.IEnumerable GetDirectories(this ServiceStack.IO.IVirtualDirectory dir) => throw null; + public static System.Collections.Generic.IEnumerable GetFiles(this ServiceStack.IO.IVirtualDirectory dir) => throw null; + public static System.Threading.Tasks.Task WriteFileAsync(this ServiceStack.IO.IVirtualFiles vfs, string filePath, System.Byte[] binaryContents, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteFileAsync(this ServiceStack.IO.IVirtualFiles vfs, string filePath, ServiceStack.IO.IVirtualFile file, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteFileAsync(this ServiceStack.IO.IVirtualFiles vfs, string filePath, System.ReadOnlyMemory romBytes, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteFileAsync(this ServiceStack.IO.IVirtualFiles vfs, string filePath, System.ReadOnlyMemory textContents, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteFileAsync(this ServiceStack.IO.IVirtualFiles vfs, string filePath, System.IO.Stream stream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteFileAsync(this ServiceStack.IO.IVirtualFiles vfs, string filePath, string textContents, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.IO.VirtualFilesExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class VirtualFilesExtensions + { + public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.Byte[] bytes) => throw null; + public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.ReadOnlyMemory bytes) => throw null; + public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.ReadOnlyMemory text) => throw null; + public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.IO.Stream stream) => throw null; + public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, object contents) => throw null; + public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, string textContents) => throw null; + public static void CopyFrom(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.IEnumerable srcFiles, System.Func toPath = default(System.Func)) => throw null; + public static void DeleteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, ServiceStack.IO.IVirtualFile file) => throw null; + public static void DeleteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath) => throw null; + public static void DeleteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.IEnumerable files) => throw null; + public static void DeleteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.IEnumerable filePaths) => throw null; + public static void DeleteFolder(this ServiceStack.IO.IVirtualPathProvider pathProvider, string dirPath) => throw null; + public static bool IsDirectory(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath) => throw null; + public static bool IsFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath) => throw null; + public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, ServiceStack.IO.IVirtualFile file, string filePath = default(string)) => throw null; + public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.Byte[] bytes) => throw null; + public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.ReadOnlyMemory bytes) => throw null; + public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.ReadOnlyMemory text) => throw null; + public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.IO.Stream stream) => throw null; + public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, object contents) => throw null; + public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, string textContents) => throw null; + public static void WriteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.Dictionary files) => throw null; + public static void WriteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.Dictionary textFiles) => throw null; + public static void WriteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.IEnumerable srcFiles, System.Func toPath = default(System.Func)) => throw null; + } + + } + namespace Logging + { + // Generated from `ServiceStack.Logging.ConsoleLogFactory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConsoleLogFactory : ServiceStack.Logging.ILogFactory + { + public static void Configure(bool debugEnabled = default(bool)) => throw null; + public ConsoleLogFactory(bool debugEnabled = default(bool)) => throw null; + public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; + public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; + } + + // Generated from `ServiceStack.Logging.ConsoleLogger` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConsoleLogger : ServiceStack.Logging.ILog + { + public ConsoleLogger(System.Type type) => throw null; + public ConsoleLogger(string type) => 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 FatalFormat(string format, params object[] args) => 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; set => 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; + } + + // Generated from `ServiceStack.Logging.DebugLogFactory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DebugLogFactory : ServiceStack.Logging.ILogFactory + { + public DebugLogFactory(bool debugEnabled = default(bool)) => throw null; + public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; + public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; + } + + // Generated from `ServiceStack.Logging.DebugLogger` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DebugLogger : ServiceStack.Logging.ILog + { + 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 DebugLogger(System.Type type) => throw null; + public DebugLogger(string type) => 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 FatalFormat(string format, params object[] args) => 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; set => 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; + } + + } + namespace MiniProfiler + { + namespace Data + { + // Generated from `ServiceStack.MiniProfiler.Data.ExecuteType` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum ExecuteType + { + NonQuery, + None, + Reader, + Scalar, + } + + // Generated from `ServiceStack.MiniProfiler.Data.IDbProfiler` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDbProfiler + { + void ExecuteFinish(System.Data.Common.DbCommand profiledDbCommand, ServiceStack.MiniProfiler.Data.ExecuteType executeType, System.Data.Common.DbDataReader reader); + void ExecuteStart(System.Data.Common.DbCommand profiledDbCommand, ServiceStack.MiniProfiler.Data.ExecuteType executeType); + bool IsActive { get; } + void OnError(System.Data.Common.DbCommand profiledDbCommand, ServiceStack.MiniProfiler.Data.ExecuteType executeType, System.Exception exception); + void ReaderFinish(System.Data.Common.DbDataReader reader); + } + + // Generated from `ServiceStack.MiniProfiler.Data.ProfiledCommand` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProfiledCommand : System.Data.Common.DbCommand, ServiceStack.Data.IHasDbCommand + { + public override void Cancel() => throw null; + public override string CommandText { get => throw null; set => throw null; } + public override int CommandTimeout { get => throw null; set => throw null; } + public override System.Data.CommandType CommandType { get => throw null; set => throw null; } + protected override System.Data.Common.DbParameter CreateDbParameter() => throw null; + public System.Data.Common.DbCommand DbCommand { get => throw null; set => throw null; } + System.Data.IDbCommand ServiceStack.Data.IHasDbCommand.DbCommand { get => throw null; } + protected override System.Data.Common.DbConnection DbConnection { get => throw null; set => throw null; } + protected override System.Data.Common.DbParameterCollection DbParameterCollection { get => throw null; } + protected ServiceStack.MiniProfiler.Data.IDbProfiler DbProfiler { get => throw null; set => throw null; } + protected override System.Data.Common.DbTransaction DbTransaction { get => throw null; set => throw null; } + public override bool DesignTimeVisible { get => throw null; set => throw null; } + protected override void Dispose(bool disposing) => throw null; + protected override System.Data.Common.DbDataReader ExecuteDbDataReader(System.Data.CommandBehavior behavior) => throw null; + public override int ExecuteNonQuery() => throw null; + public override object ExecuteScalar() => throw null; + public override void Prepare() => throw null; + public ProfiledCommand(System.Data.Common.DbCommand cmd, System.Data.Common.DbConnection conn, ServiceStack.MiniProfiler.Data.IDbProfiler profiler) => throw null; + public override System.Data.UpdateRowSource UpdatedRowSource { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MiniProfiler.Data.ProfiledConnection` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProfiledConnection : System.Data.Common.DbConnection, ServiceStack.Data.IHasDbConnection + { + protected bool AutoDisposeConnection { get => throw null; set => throw null; } + protected override System.Data.Common.DbTransaction BeginDbTransaction(System.Data.IsolationLevel isolationLevel) => throw null; + protected override bool CanRaiseEvents { get => throw null; } + public override void ChangeDatabase(string databaseName) => throw null; + public override void Close() => throw null; + public override string ConnectionString { get => throw null; set => throw null; } + public override int ConnectionTimeout { get => throw null; } + protected override System.Data.Common.DbCommand CreateDbCommand() => throw null; + public override string DataSource { get => throw null; } + public override string Database { get => throw null; } + public System.Data.IDbConnection DbConnection { get => throw null; } + protected override void Dispose(bool disposing) => throw null; + public System.Data.Common.DbConnection InnerConnection { get => throw null; set => throw null; } + public override void Open() => throw null; + public ProfiledConnection(System.Data.Common.DbConnection connection, ServiceStack.MiniProfiler.Data.IDbProfiler profiler, bool autoDisposeConnection = default(bool)) => throw null; + public ProfiledConnection(System.Data.IDbConnection connection, ServiceStack.MiniProfiler.Data.IDbProfiler profiler, bool autoDisposeConnection = default(bool)) => throw null; + public ServiceStack.MiniProfiler.Data.IDbProfiler Profiler { get => throw null; set => throw null; } + public override string ServerVersion { get => throw null; } + public override System.Data.ConnectionState State { get => throw null; } + public System.Data.Common.DbConnection WrappedConnection { get => throw null; } + } + + // Generated from `ServiceStack.MiniProfiler.Data.ProfiledDbDataReader` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProfiledDbDataReader : System.Data.Common.DbDataReader + { + public override void Close() => 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 dataOffset, System.Byte[] buffer, int bufferOffset, int length) => throw null; + public override System.Char GetChar(int ordinal) => throw null; + public override System.Int64 GetChars(int ordinal, System.Int64 dataOffset, System.Char[] buffer, int bufferOffset, 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 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 ProfiledDbDataReader(System.Data.Common.DbDataReader reader, System.Data.Common.DbConnection connection, ServiceStack.MiniProfiler.Data.IDbProfiler profiler) => throw null; + public override bool Read() => throw null; + public override int RecordsAffected { get => throw null; } + } + + // Generated from `ServiceStack.MiniProfiler.Data.ProfiledDbTransaction` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProfiledDbTransaction : System.Data.Common.DbTransaction, ServiceStack.Data.IHasDbTransaction + { + public override void Commit() => throw null; + protected override System.Data.Common.DbConnection DbConnection { get => throw null; } + public System.Data.IDbTransaction DbTransaction { get => throw null; } + protected override void Dispose(bool disposing) => throw null; + public override System.Data.IsolationLevel IsolationLevel { get => throw null; } + public ProfiledDbTransaction(System.Data.Common.DbTransaction transaction, ServiceStack.MiniProfiler.Data.ProfiledConnection connection) => throw null; + public override void Rollback() => throw null; + } + + // Generated from `ServiceStack.MiniProfiler.Data.ProfiledProviderFactory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProfiledProviderFactory : System.Data.Common.DbProviderFactory + { + public override System.Data.Common.DbCommand CreateCommand() => throw null; + public override System.Data.Common.DbConnection CreateConnection() => throw null; + public override System.Data.Common.DbConnectionStringBuilder CreateConnectionStringBuilder() => throw null; + public override System.Data.Common.DbParameter CreateParameter() => throw null; + public void InitProfiledDbProviderFactory(ServiceStack.MiniProfiler.Data.IDbProfiler profiler, System.Data.Common.DbProviderFactory wrappedFactory) => throw null; + public static ServiceStack.MiniProfiler.Data.ProfiledProviderFactory Instance; + protected ProfiledProviderFactory() => throw null; + public ProfiledProviderFactory(ServiceStack.MiniProfiler.Data.IDbProfiler profiler, System.Data.Common.DbProviderFactory wrappedFactory) => throw null; + protected ServiceStack.MiniProfiler.Data.IDbProfiler Profiler { get => throw null; set => throw null; } + protected System.Data.Common.DbProviderFactory WrappedFactory { get => throw null; set => throw null; } + } + + } + } + namespace Reflection + { + // Generated from `ServiceStack.Reflection.DelegateFactory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DelegateFactory + { + // Generated from `ServiceStack.Reflection.DelegateFactory+LateBoundMethod` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object LateBoundMethod(object target, object[] arguments); + + + // Generated from `ServiceStack.Reflection.DelegateFactory+LateBoundVoid` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void LateBoundVoid(object target, object[] arguments); + + + public static ServiceStack.Reflection.DelegateFactory.LateBoundMethod Create(System.Reflection.MethodInfo method) => throw null; + public static ServiceStack.Reflection.DelegateFactory.LateBoundVoid CreateVoid(System.Reflection.MethodInfo method) => throw null; + } + + } + namespace Script + { + // Generated from `ServiceStack.Script.BindingExpressionException` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BindingExpressionException : System.Exception + { + public BindingExpressionException(string message, string member, string expression, System.Exception inner = default(System.Exception)) => throw null; + public string Expression { get => throw null; } + public string Member { get => throw null; } + } + + // Generated from `ServiceStack.Script.CallExpressionUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CallExpressionUtils + { + public static System.ReadOnlySpan ParseJsCallExpression(this System.ReadOnlySpan literal, out ServiceStack.Script.JsCallExpression expression, bool filterExpression = default(bool)) => throw null; + } + + // Generated from `ServiceStack.Script.CaptureScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CaptureScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public CaptureScriptBlock() => throw null; + public override string Name { get => throw null; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.CsvScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public CsvScriptBlock() => throw null; + public override string Name { get => throw null; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken ct) => throw null; + } + + // Generated from `ServiceStack.Script.DefaultScriptBlocks` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultScriptBlocks : ServiceStack.Script.IScriptPlugin + { + public DefaultScriptBlocks() => throw null; + public void Register(ServiceStack.Script.ScriptContext context) => throw null; + } + + // Generated from `ServiceStack.Script.DefaultScripts` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultScripts : ServiceStack.Script.ScriptMethods, ServiceStack.Script.IConfigureScriptContext + { + public bool AND(object lhs, object rhs) => throw null; + public int AssertWithinMaxQuota(int value) => throw null; + public void Configure(ServiceStack.Script.ScriptContext context) => throw null; + public static bool ContainsXss(string text) => throw null; + public DefaultScripts() => throw null; + public static System.Collections.Generic.List EvaluateWhenSkippingFilterExecution; + public static string GetVarNameFromStringOrArrowExpression(string filterName, object argExpr) => throw null; + public static ServiceStack.Script.DefaultScripts Instance; + public bool IsNullOrWhiteSpace(object target) => throw null; + public static bool MatchesStringValue(object target, System.Func match) => throw null; + public bool OR(object lhs, object rhs) => throw null; + public static System.Collections.Generic.List RemoveNewLinesFor { get => throw null; } + public static string TextDump(object target, ServiceStack.TextDumpOptions options) => throw null; + public static string TextList(System.Collections.IEnumerable items, ServiceStack.TextDumpOptions options) => throw null; + public static string[] XssFragments; + public double abs(double value) => throw null; + public double acos(double value) => throw null; + public object add(object lhs, object rhs) => throw null; + public System.DateTime addDays(System.DateTime target, int count) => throw null; + public string addHashParams(string url, object urlParams) => throw null; + public System.DateTime addHours(System.DateTime target, int count) => throw null; + public object addItem(object collection, object value) => throw null; + public System.DateTime addMilliseconds(System.DateTime target, int count) => throw null; + public System.DateTime addMinutes(System.DateTime target, int count) => throw null; + public System.DateTime addMonths(System.DateTime target, int count) => throw null; + public string addPath(string target, string pathToAppend) => throw null; + public string addPaths(string target, System.Collections.IEnumerable pathsToAppend) => throw null; + public string addQueryString(string url, object urlParams) => throw null; + public System.DateTime addSeconds(System.DateTime target, int count) => throw null; + public System.DateTime addTicks(System.DateTime target, int count) => throw null; + public ServiceStack.Script.IgnoreResult addTo(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; + public ServiceStack.Script.IgnoreResult addToGlobal(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; + public ServiceStack.Script.IgnoreResult addToStart(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; + public ServiceStack.Script.IgnoreResult addToStartGlobal(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; + public System.DateTime addYears(System.DateTime target, int count) => throw null; + public bool all(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public bool all(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public bool any(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public bool any(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public bool any(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public string appSetting(string name) => throw null; + public string append(string target, string suffix) => throw null; + public string appendFmt(string target, string format, object arg) => throw null; + public string appendFmt(string target, string format, object arg0, object arg1) => throw null; + public string appendFmt(string target, string format, object arg0, object arg1, object arg2) => throw null; + public string appendLine(string target) => throw null; + public ServiceStack.Script.IgnoreResult appendTo(ServiceStack.Script.ScriptScopeContext scope, string value, object argExpr) => throw null; + public ServiceStack.Script.IgnoreResult appendToGlobal(ServiceStack.Script.ScriptScopeContext scope, string value, object argExpr) => throw null; + public string asString(object target) => throw null; + public object assign(ServiceStack.Script.ScriptScopeContext scope, string argExpr, object value) => throw null; + public object assignError(ServiceStack.Script.ScriptScopeContext scope, string errorBinding) => throw null; + public object assignErrorAndContinueExecuting(ServiceStack.Script.ScriptScopeContext scope, string errorBinding) => throw null; + public object assignGlobal(ServiceStack.Script.ScriptScopeContext scope, string argExpr, object value) => throw null; + public System.Threading.Tasks.Task assignTo(ServiceStack.Script.ScriptScopeContext scope, object argExpr) => throw null; + public ServiceStack.Script.IgnoreResult assignTo(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; + public System.Threading.Tasks.Task assignToGlobal(ServiceStack.Script.ScriptScopeContext scope, object argExpr) => throw null; + public ServiceStack.Script.IgnoreResult assignToGlobal(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; + public double atan(double value) => throw null; + public double atan2(double y, double x) => throw null; + public double average(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public double average(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public double average(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public string base64(System.Byte[] bytes) => throw null; + public System.Threading.Tasks.Task buffer(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public string camelCase(string text) => throw null; + public object catchError(ServiceStack.Script.ScriptScopeContext scope, string errorBinding) => throw null; + public double ceiling(double value) => throw null; + public object coerce(string str) => throw null; + public int compareTo(string text, string other) => throw null; + public System.Collections.Generic.IEnumerable concat(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; + public string concat(System.Collections.Generic.IEnumerable target) => throw null; + public bool contains(object target, object needle) => throw null; + public bool containsXss(object target) => throw null; + public string contentType(string fileOrExt) => throw null; + public object continueExecutingFiltersOnError(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object continueExecutingFiltersOnError(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; + public double cos(double value) => throw null; + public int count(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public int count(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public int count(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public ServiceStack.IRawString cssIncludes(System.Collections.IEnumerable cssFiles) => throw null; + public System.Threading.Tasks.Task csv(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; + public ServiceStack.IRawString csv(object value) => throw null; + public string currency(System.Decimal decimalValue) => throw null; + public string currency(System.Decimal decimalValue, string culture) => throw null; + public System.DateTime date(int year, int month, int day) => throw null; + public System.DateTime date(int year, int month, int day, int hour, int min, int secs) => throw null; + public string dateFormat(System.DateTime dateValue) => throw null; + public string dateFormat(System.DateTime dateValue, string format) => throw null; + public string dateTimeFormat(System.DateTime dateValue) => throw null; + public object debugMode(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Decimal decimalAdd(System.Decimal lhs, System.Decimal rhs) => throw null; + public System.Decimal decimalDiv(System.Decimal lhs, System.Decimal rhs) => throw null; + public System.Decimal decimalMul(System.Decimal lhs, System.Decimal rhs) => throw null; + public System.Decimal decimalSub(System.Decimal lhs, System.Decimal rhs) => throw null; + public System.Int64 decr(System.Int64 value) => throw null; + public System.Int64 decrBy(System.Int64 value, System.Int64 by) => throw null; + public System.Int64 decrement(System.Int64 value) => throw null; + public System.Int64 decrementBy(System.Int64 value, System.Int64 by) => throw null; + public object @default(object returnTarget, object elseReturn) => throw null; + public string dirPath(string filePath) => throw null; + public System.Collections.Generic.IEnumerable distinct(System.Collections.Generic.IEnumerable items) => throw null; + public double div(double lhs, double rhs) => throw null; + public double divide(double lhs, double rhs) => throw null; + public object @do(ServiceStack.Script.ScriptScopeContext scope, object expression) => throw null; + public System.Threading.Tasks.Task @do(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Threading.Tasks.Task @do(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public object doIf(object test) => throw null; + public object doIf(object ignoreTarget, object test) => throw null; + public double doubleAdd(double lhs, double rhs) => throw null; + public double doubleDiv(double lhs, double rhs) => throw null; + public double doubleMul(double lhs, double rhs) => throw null; + public double doubleSub(double lhs, double rhs) => throw null; + public System.Threading.Tasks.Task dump(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; + public System.Threading.Tasks.Task dump(ServiceStack.Script.ScriptScopeContext scope, object items, string jsConfig) => throw null; + public ServiceStack.IRawString dump(object value) => throw null; + public double e() => throw null; + public object echo(object value) => throw null; + public object elementAt(System.Collections.IEnumerable target, int index) => throw null; + public ServiceStack.Script.StopExecution end() => throw null; + public System.Threading.Tasks.Task end(ServiceStack.Script.ScriptScopeContext scope, object ignore) => throw null; + public ServiceStack.Script.StopExecution end(object ignore) => throw null; + public object endIf(object test) => throw null; + public object endIf(object returnTarget, bool test) => throw null; + public object endIfAll(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object endIfAny(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object endIfDebug(object returnTarget) => throw null; + public object endIfEmpty(object target) => throw null; + public object endIfEmpty(object ignoreTarget, object target) => throw null; + public object endIfError(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object endIfError(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; + public object endIfExists(object target) => throw null; + public object endIfExists(object ignoreTarget, object target) => throw null; + public object endIfFalsy(object target) => throw null; + public object endIfFalsy(object ignoreTarget, object target) => throw null; + public object endIfNotEmpty(object target) => throw null; + public object endIfNotEmpty(object ignoreTarget, object target) => throw null; + public object endIfNotNull(object target) => throw null; + public object endIfNotNull(object ignoreTarget, object target) => throw null; + public object endIfNull(object target) => throw null; + public object endIfNull(object ignoreTarget, object target) => throw null; + public object endIfTruthy(object target) => throw null; + public object endIfTruthy(object ignoreTarget, object target) => throw null; + public object endWhere(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object endWhere(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public bool endsWith(string text, string needle) => throw null; + public object ensureAllArgsNotEmpty(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; + public object ensureAllArgsNotEmpty(ServiceStack.Script.ScriptScopeContext scope, object args, object options) => throw null; + public object ensureAllArgsNotNull(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; + public object ensureAllArgsNotNull(ServiceStack.Script.ScriptScopeContext scope, object args, object options) => throw null; + public object ensureAnyArgsNotEmpty(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; + public object ensureAnyArgsNotEmpty(ServiceStack.Script.ScriptScopeContext scope, object args, object options) => throw null; + public object ensureAnyArgsNotNull(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; + public object ensureAnyArgsNotNull(ServiceStack.Script.ScriptScopeContext scope, object args, object options) => throw null; + public bool eq(object target, object other) => throw null; + public bool equals(object target, object other) => throw null; + public bool equivalentTo(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; + public string escapeBackticks(string text) => throw null; + public string escapeDoubleQuotes(string text) => throw null; + public string escapeNewLines(string text) => throw null; + public string escapePrimeQuotes(string text) => throw null; + public string escapeSingleQuotes(string text) => throw null; + public object eval(ServiceStack.Script.ScriptScopeContext scope, string js) => throw null; + public System.Threading.Tasks.Task evalScript(ServiceStack.Script.ScriptScopeContext scope, string source) => throw null; + public System.Threading.Tasks.Task evalScript(ServiceStack.Script.ScriptScopeContext scope, string source, System.Collections.Generic.Dictionary args) => throw null; + public System.Threading.Tasks.Task evalTemplate(ServiceStack.Script.ScriptScopeContext scope, string source) => throw null; + public System.Threading.Tasks.Task evalTemplate(ServiceStack.Script.ScriptScopeContext scope, string source, System.Collections.Generic.Dictionary args) => throw null; + public bool every(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; + public System.Collections.Generic.IEnumerable except(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; + public bool exists(object test) => throw null; + public double exp(double value) => throw null; + public object falsy(object test, object returnIfFalsy) => throw null; + public object field(object target, string fieldName) => throw null; + public System.Reflection.FieldInfo[] fieldTypes(object o) => throw null; + public System.Collections.Generic.List fields(object o) => throw null; + public System.Collections.Generic.List filter(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; + public object find(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; + public int findIndex(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; + public object first(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public object first(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object first(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public System.Collections.Generic.List flat(System.Collections.IList list) => throw null; + public System.Collections.Generic.List flat(System.Collections.IList list, int depth) => throw null; + public System.Collections.Generic.List flatMap(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; + public System.Collections.Generic.List flatMap(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression, int depth) => throw null; + public System.Collections.Generic.List flatten(object target) => throw null; + public System.Collections.Generic.List flatten(object target, int depth) => throw null; + public double floor(double value) => throw null; + public string fmt(string format, object arg) => throw null; + public string fmt(string format, object arg0, object arg1) => throw null; + public string fmt(string format, object arg0, object arg1, object arg2) => throw null; + public ServiceStack.Script.IgnoreResult forEach(ServiceStack.Script.ScriptScopeContext scope, object target, ServiceStack.Script.JsArrowFunctionExpression arrowExpr) => throw null; + public System.Collections.Specialized.NameValueCollection form(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.Dictionary formDictionary(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string formQuery(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string[] formQueryValues(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string format(object obj, string format) => throw null; + public ServiceStack.IRawString formatRaw(object obj, string fmt) => throw null; + public System.Byte[] fromBase64(string base64) => throw null; + public System.Char fromCharCode(int charCode) => throw null; + public string fromUtf8Bytes(System.Byte[] target) => throw null; + public string generateSlug(string phrase) => throw null; + public object get(object target, object key) => throw null; + public string[] glob(System.Collections.Generic.IEnumerable strings, string pattern) => throw null; + public string globln(System.Collections.Generic.IEnumerable strings, string pattern) => throw null; + public bool greaterThan(object target, object other) => throw null; + public bool greaterThanEqual(object target, object other) => throw null; + public System.Collections.Generic.IEnumerable> groupBy(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable items, object expression) => throw null; + public System.Collections.Generic.IEnumerable> groupBy(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable items, object expression, object scopeOptions) => throw null; + public bool gt(object target, object other) => throw null; + public bool gte(object target, object other) => throw null; + public bool hasError(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool hasFlag(System.Enum source, object value) => throw null; + public bool hasMaxCount(object target, int maxCount) => throw null; + public bool hasMinCount(object target, int minCount) => throw null; + public string htmlDecode(string value) => throw null; + public string htmlEncode(string value) => throw null; + public string httpMethod(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string httpParam(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string httpPathInfo(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string httpRequestUrl(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string humanize(string text) => throw null; + public object @if(object test) => throw null; + public object @if(object returnTarget, object test) => throw null; + public object ifDebug(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object ifDebug(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; + public object ifDo(object test) => throw null; + public object ifDo(object ignoreTarget, object test) => throw null; + public object ifElse(object returnTarget, object test, object defaultValue) => throw null; + public object ifEmpty(object returnTarget, object test) => throw null; + public object ifEnd(bool test) => throw null; + public object ifEnd(object ignoreTarget, bool test) => throw null; + public object ifError(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object ifError(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; + public object ifExists(object target) => throw null; + public object ifExists(object returnTarget, object test) => throw null; + public object ifFalse(object returnTarget, object test) => throw null; + public object ifFalsy(object returnTarget, object test) => throw null; + public object ifHttpDelete(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object ifHttpDelete(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; + public object ifHttpGet(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object ifHttpGet(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; + public object ifHttpPatch(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object ifHttpPatch(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; + public object ifHttpPost(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object ifHttpPost(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; + public object ifHttpPut(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object ifHttpPut(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; + public object ifMatchesPathInfo(ServiceStack.Script.ScriptScopeContext scope, object returnTarget, string pathInfo) => throw null; + public object ifNo(object returnTarget, object target) => throw null; + public object ifNoError(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object ifNoError(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; + public object ifNot(object returnTarget, object test) => throw null; + public object ifNotElse(object returnTarget, object test, object defaultValue) => throw null; + public object ifNotEmpty(object target) => throw null; + public object ifNotEmpty(object returnTarget, object test) => throw null; + public object ifNotEnd(bool test) => throw null; + public object ifNotEnd(object ignoreTarget, bool test) => throw null; + public object ifNotExists(object returnTarget, object test) => throw null; + public object ifNotOnly(bool test) => throw null; + public object ifNotOnly(object ignoreTarget, bool test) => throw null; + public object ifOnly(bool test) => throw null; + public object ifOnly(object ignoreTarget, bool test) => throw null; + public object ifShow(object test, object useValue) => throw null; + public object ifShowRaw(object test, object useValue) => throw null; + public object ifThrow(ServiceStack.Script.ScriptScopeContext scope, bool test, string message) => throw null; + public object ifThrow(ServiceStack.Script.ScriptScopeContext scope, bool test, string message, object options) => throw null; + public object ifThrowArgumentException(ServiceStack.Script.ScriptScopeContext scope, bool test, string message) => throw null; + public object ifThrowArgumentException(ServiceStack.Script.ScriptScopeContext scope, bool test, string message, object options) => throw null; + public object ifThrowArgumentException(ServiceStack.Script.ScriptScopeContext scope, bool test, string message, string paramName, object options) => throw null; + public object ifThrowArgumentNullException(ServiceStack.Script.ScriptScopeContext scope, bool test, string paramName) => throw null; + public object ifThrowArgumentNullException(ServiceStack.Script.ScriptScopeContext scope, bool test, string paramName, object options) => throw null; + public object ifTrue(object returnTarget, object test) => throw null; + public object ifTruthy(object returnTarget, object test) => throw null; + public object ifUse(object test, object useValue) => throw null; + public object iif(object test, object ifTrue, object ifFalse) => throw null; + public object importRequestParams(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object importRequestParams(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable onlyImportArgNames) => throw null; + public bool includes(System.Collections.IList list, object item) => throw null; + public bool includes(System.Collections.IList list, object item, int fromIndex) => throw null; + public System.Int64 incr(System.Int64 value) => throw null; + public System.Int64 incrBy(System.Int64 value, System.Int64 by) => throw null; + public System.Int64 increment(System.Int64 value) => throw null; + public System.Int64 incrementBy(System.Int64 value, System.Int64 by) => throw null; + public string indent() => throw null; + public ServiceStack.IRawString indentJson(object value) => throw null; + public ServiceStack.IRawString indentJson(object value, string jsconfig) => throw null; + public string indents(int count) => throw null; + public int indexOf(object target, object item) => throw null; + public int indexOf(object target, object item, int startIndex) => throw null; + public bool instanceOf(object target, object type) => throw null; + public int intAdd(int lhs, int rhs) => throw null; + public int intDiv(int lhs, int rhs) => throw null; + public int intMul(int lhs, int rhs) => throw null; + public int intSub(int lhs, int rhs) => throw null; + public System.Collections.Generic.IEnumerable intersect(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; + public bool isAnonObject(object target) => throw null; + public bool isArray(object target) => throw null; + public bool isBinary(string fileOrExt) => throw null; + public bool isBool(object target) => throw null; + public bool isByte(object target) => throw null; + public bool isBytes(object target) => throw null; + public bool isChar(object target) => throw null; + public bool isChars(object target) => throw null; + public bool isClass(object target) => throw null; + public bool isDecimal(object target) => throw null; + public bool isDictionary(object target) => throw null; + public bool isDouble(object target) => throw null; + public bool isDto(object target) => throw null; + public bool isEmpty(object target) => throw null; + public bool isEnum(System.Enum source, object value) => throw null; + public bool isEnum(object target) => throw null; + public bool isEnumerable(object target) => throw null; + public bool isEven(int value) => throw null; + public static bool isFalsy(object target) => throw null; + public bool isFloat(object target) => throw null; + public bool isHttpDelete(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool isHttpGet(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool isHttpPatch(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool isHttpPost(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool isHttpPut(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool isInfinity(double value) => throw null; + public bool isInt(object target) => throw null; + public bool isInteger(object target) => throw null; + public bool isKeyValuePair(object target) => throw null; + public bool isList(object target) => throw null; + public bool isLong(object target) => throw null; + public bool isNaN(double value) => throw null; + public bool isNegative(double value) => throw null; + public bool isNotNull(object test) => throw null; + public bool isNull(object test) => throw null; + public bool isNumber(object target) => throw null; + public bool isObjectDictionary(object target) => throw null; + public bool isOdd(int value) => throw null; + public bool isPositive(double value) => throw null; + public bool isRealNumber(object target) => throw null; + public bool isString(object target) => throw null; + public bool isStringDictionary(object target) => throw null; + public static bool isTrue(object target) => throw null; + public static bool isTruthy(object target) => throw null; + public bool isTuple(object target) => throw null; + public bool isType(object target, string typeName) => throw null; + public bool isValueType(object target) => throw null; + public bool isZero(double value) => throw null; + public System.Collections.Generic.List itemsOf(int count, object target) => throw null; + public string join(System.Collections.Generic.IEnumerable values) => throw null; + public string join(System.Collections.Generic.IEnumerable values, string delimiter) => throw null; + public string joinln(System.Collections.Generic.IEnumerable values) => throw null; + public ServiceStack.IRawString jsIncludes(System.Collections.IEnumerable jsFiles) => throw null; + public ServiceStack.IRawString jsQuotedString(string text) => throw null; + public ServiceStack.IRawString jsString(string text) => throw null; + public System.Threading.Tasks.Task json(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; + public System.Threading.Tasks.Task json(ServiceStack.Script.ScriptScopeContext scope, object items, string jsConfig) => throw null; + public ServiceStack.IRawString json(object value) => throw null; + public ServiceStack.IRawString json(object value, string jsconfig) => throw null; + public ServiceStack.Text.JsonArrayObjects jsonToArrayObjects(string json) => throw null; + public ServiceStack.Text.JsonObject jsonToObject(string json) => throw null; + public System.Collections.Generic.Dictionary jsonToObjectDictionary(string json) => throw null; + public System.Collections.Generic.Dictionary jsonToStringDictionary(string json) => throw null; + public System.Threading.Tasks.Task jsv(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; + public System.Threading.Tasks.Task jsv(ServiceStack.Script.ScriptScopeContext scope, object items, string jsConfig) => throw null; + public ServiceStack.IRawString jsv(object value) => throw null; + public ServiceStack.IRawString jsv(object value, string jsconfig) => throw null; + public System.Collections.Generic.Dictionary jsvToObjectDictionary(string json) => throw null; + public System.Collections.Generic.Dictionary jsvToStringDictionary(string json) => throw null; + public string kebabCase(string text) => throw null; + public System.Collections.Generic.KeyValuePair keyValuePair(string key, object value) => throw null; + public System.Collections.ICollection keys(object target) => throw null; + public object last(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public System.Exception lastError(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string lastErrorMessage(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string lastErrorStackTrace(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public int lastIndexOf(object target, object item) => throw null; + public int lastIndexOf(object target, object item, int startIndex) => throw null; + public string lastLeftPart(string text, string needle) => throw null; + public string lastRightPart(string text, string needle) => throw null; + public string leftPart(string text, string needle) => throw null; + public int length(object target) => throw null; + public bool lessThan(object target, object other) => throw null; + public bool lessThanEqual(object target, object other) => throw null; + public object let(ServiceStack.Script.ScriptScopeContext scope, object target, object scopeBindings) => throw null; + public System.Collections.Generic.IEnumerable limit(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable original, object skipOrBinding, object takeOrBinding) => throw null; + public double log(double value) => throw null; + public double log(double a, double newBase) => throw null; + public double log10(double value) => throw null; + public double log2(double value) => throw null; + public System.Int64 longAdd(System.Int64 lhs, System.Int64 rhs) => throw null; + public System.Int64 longDiv(System.Int64 lhs, System.Int64 rhs) => throw null; + public System.Int64 longMul(System.Int64 lhs, System.Int64 rhs) => throw null; + public System.Int64 longSub(System.Int64 lhs, System.Int64 rhs) => throw null; + public string lower(string text) => throw null; + public bool lt(object target, object other) => throw null; + public bool lte(object target, object other) => throw null; + public object map(ServiceStack.Script.ScriptScopeContext scope, object items, object expression) => throw null; + public object map(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public bool matchesPathInfo(ServiceStack.Script.ScriptScopeContext scope, string pathInfo) => throw null; + public object max(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public object max(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object max(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public object merge(System.Collections.Generic.IDictionary target, object sources) => throw null; + public object merge(object sources) => throw null; + public object min(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public object min(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object min(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public System.Int64 mod(System.Int64 value, System.Int64 divisor) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object multiply(object lhs, object rhs) => throw null; + public System.Collections.Generic.List navItems() => throw null; + public System.Collections.Generic.List navItems(string key) => throw null; + public string newLine() => throw null; + public string newLine(string target) => throw null; + public string newLines(int count) => throw null; + public System.Guid nguid() => throw null; + public bool not(bool target) => throw null; + public bool not(object target, object other) => throw null; + public bool notEquals(object target, object other) => throw null; + public System.DateTime now() => throw null; + public System.DateTimeOffset nowOffset() => throw null; + public System.Collections.IEnumerable of(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable target, object scopeOptions) => throw null; + public object onlyIf(object test) => throw null; + public object onlyIf(object returnTarget, bool test) => throw null; + public object onlyIfAll(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object onlyIfAny(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object onlyIfDebug(object returnTarget) => throw null; + public object onlyIfEmpty(object target) => throw null; + public object onlyIfEmpty(object ignoreTarget, object target) => throw null; + public object onlyIfExists(object target) => throw null; + public object onlyIfExists(object ignoreTarget, object target) => throw null; + public object onlyIfFalsy(object target) => throw null; + public object onlyIfFalsy(object ignoreTarget, object target) => throw null; + public object onlyIfNotEmpty(object target) => throw null; + public object onlyIfNotEmpty(object ignoreTarget, object target) => throw null; + public object onlyIfNotNull(object target) => throw null; + public object onlyIfNotNull(object ignoreTarget, object target) => throw null; + public object onlyIfNull(object target) => throw null; + public object onlyIfNull(object ignoreTarget, object target) => throw null; + public object onlyIfTruthy(object target) => throw null; + public object onlyIfTruthy(object ignoreTarget, object target) => throw null; + public object onlyWhere(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object onlyWhere(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public System.Collections.Generic.IEnumerable orderBy(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Collections.Generic.IEnumerable orderBy(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public System.Collections.Generic.IEnumerable orderByDesc(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Collections.Generic.IEnumerable orderByDesc(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public System.Collections.Generic.IEnumerable orderByDescending(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Collections.Generic.IEnumerable orderByDescending(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public static System.Collections.Generic.IEnumerable orderByInternal(string filterName, ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public object otherwise(object returnTarget, object elseReturn) => throw null; + public object ownProps(System.Collections.Generic.IEnumerable> target) => throw null; + public string padLeft(string text, int totalWidth) => throw null; + public string padLeft(string text, int totalWidth, System.Char padChar) => throw null; + public string padRight(string text, int totalWidth) => throw null; + public string padRight(string text, int totalWidth, System.Char padChar) => throw null; + public System.Collections.Generic.KeyValuePair pair(string key, object value) => throw null; + public System.Collections.Generic.IEnumerable> parseAsKeyValues(string target) => throw null; + public System.Collections.Generic.IEnumerable> parseAsKeyValues(string target, string delimiter) => throw null; + public System.Collections.Generic.List> parseCsv(string csv) => throw null; + public object parseJson(string json) => throw null; + public System.Collections.Generic.Dictionary parseKeyValueText(string target) => throw null; + public System.Collections.Generic.Dictionary parseKeyValueText(string target, string delimiter) => throw null; + public System.Collections.Generic.List> parseKeyValues(string keyValuesText) => throw null; + public System.Collections.Generic.List> parseKeyValues(string keyValuesText, string delimiter) => throw null; + public System.Threading.Tasks.Task partial(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public System.Threading.Tasks.Task partial(ServiceStack.Script.ScriptScopeContext scope, object target, object scopedParams) => throw null; + public string pascalCase(string text) => throw null; + public ServiceStack.IRawString pass(string target) => throw null; + public double pi() => throw null; + public object pop(System.Collections.IList list) => throw null; + public double pow(double x, double y) => throw null; + public ServiceStack.Script.IgnoreResult prependTo(ServiceStack.Script.ScriptScopeContext scope, string value, object argExpr) => throw null; + public ServiceStack.Script.IgnoreResult prependToGlobal(ServiceStack.Script.ScriptScopeContext scope, string value, object argExpr) => throw null; + public System.Reflection.PropertyInfo[] propTypes(object o) => throw null; + public object property(object target, string propertyName) => throw null; + public System.Collections.Generic.List props(object o) => throw null; + public int push(System.Collections.IList list, object item) => throw null; + public object putItem(System.Collections.IDictionary dictionary, object key, object value) => throw null; + public System.Collections.Specialized.NameValueCollection qs(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Specialized.NameValueCollection query(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.Dictionary queryDictionary(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string queryString(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.IEnumerable range(int count) => throw null; + public System.Collections.Generic.IEnumerable range(int start, int count) => throw null; + public ServiceStack.IRawString raw(object value) => throw null; + public object rawBodyAsJson(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string rawBodyAsString(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.IEnumerable readLines(string contents) => throw null; + public object reduce(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object reduce(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public object remove(object target, object keysToRemove) => throw null; + public object removeKeyFromDictionary(System.Collections.IDictionary dictionary, object keyToRemove) => throw null; + public string repeat(string text, int times) => throw null; + public string repeating(int times, string text) => throw null; + public string replace(string text, string oldValue, string newValue) => throw null; + public System.IO.Stream requestBody(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Threading.Tasks.Task requestBodyAsJson(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Threading.Tasks.Task requestBodyAsString(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object resolveArg(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string resolveAsset(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; + public object resolveContextArg(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public object resolveGlobal(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public object resolvePageArg(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public ServiceStack.Script.StopExecution @return(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.Script.StopExecution @return(ServiceStack.Script.ScriptScopeContext scope, object returnValue) => throw null; + public ServiceStack.Script.StopExecution @return(ServiceStack.Script.ScriptScopeContext scope, object returnValue, System.Collections.Generic.Dictionary returnArgs) => throw null; + public System.Collections.Generic.IEnumerable reverse(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable original) => throw null; + public string rightPart(string text, string needle) => throw null; + public double round(double value) => throw null; + public double round(double value, int decimals) => throw null; + public object scopeVars(object target) => throw null; + public System.Threading.Tasks.Task select(ServiceStack.Script.ScriptScopeContext scope, object target, object selectTemplate) => throw null; + public System.Threading.Tasks.Task select(ServiceStack.Script.ScriptScopeContext scope, object target, object selectTemplate, object scopeOptions) => throw null; + public System.Threading.Tasks.Task selectEach(ServiceStack.Script.ScriptScopeContext scope, object target, object items) => throw null; + public System.Threading.Tasks.Task selectEach(ServiceStack.Script.ScriptScopeContext scope, object target, object items, object scopeOptions) => throw null; + public object selectFields(object target, object names) => throw null; + public System.Threading.Tasks.Task selectPartial(ServiceStack.Script.ScriptScopeContext scope, object target, string pageName) => throw null; + public System.Threading.Tasks.Task selectPartial(ServiceStack.Script.ScriptScopeContext scope, object target, string pageName, object scopedParams) => throw null; + public bool sequenceEquals(System.Collections.IEnumerable a, System.Collections.IEnumerable b) => throw null; + public string setHashParams(string url, object urlParams) => throw null; + public string setQueryString(string url, object urlParams) => throw null; + public object shift(System.Collections.IList list) => throw null; + public object show(object ignoreTarget, object useValue) => throw null; + public object showFmt(object ignoreTarget, string format, object arg) => throw null; + public object showFmt(object ignoreTarget, string format, object arg1, object arg2) => throw null; + public object showFmt(object ignoreTarget, string format, object arg1, object arg2, object arg3) => throw null; + public ServiceStack.IRawString showFmtRaw(object ignoreTarget, string format, object arg) => throw null; + public ServiceStack.IRawString showFmtRaw(object ignoreTarget, string format, object arg1, object arg2) => throw null; + public ServiceStack.IRawString showFmtRaw(object ignoreTarget, string format, object arg1, object arg2, object arg3) => throw null; + public object showFormat(object ignoreTarget, object arg, string fmt) => throw null; + public object showIf(object useValue, object test) => throw null; + public object showIfExists(object useValue, object test) => throw null; + public ServiceStack.IRawString showRaw(object ignoreTarget, string content) => throw null; + public int sign(double value) => throw null; + public double sin(double value) => throw null; + public double sinh(double value) => throw null; + public System.Collections.Generic.IEnumerable skip(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable original, object countOrBinding) => throw null; + public object skipExecutingFiltersOnError(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object skipExecutingFiltersOnError(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; + public System.Collections.Generic.IEnumerable skipWhile(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Collections.Generic.IEnumerable skipWhile(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public System.Collections.Generic.List slice(System.Collections.IList list) => throw null; + public System.Collections.Generic.List slice(System.Collections.IList list, int begin) => throw null; + public System.Collections.Generic.List slice(System.Collections.IList list, int begin, int end) => throw null; + public string snakeCase(string text) => throw null; + public bool some(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; + public System.Collections.Generic.List sort(System.Collections.Generic.List list) => throw null; + public string space() => throw null; + public string spaces(int count) => throw null; + public object splice(System.Collections.IList list, int removeAt) => throw null; + public System.Collections.Generic.List splice(System.Collections.IList list, int removeAt, int deleteCount) => throw null; + public System.Collections.Generic.List splice(System.Collections.IList list, int removeAt, int deleteCount, System.Collections.Generic.List insertItems) => throw null; + public string[] split(string stringList) => throw null; + public string[] split(string stringList, object delimiter) => throw null; + public string splitCase(string text) => throw null; + public static string[] splitLines(string contents) => throw null; + public string[] splitOnFirst(string text, string needle) => throw null; + public string[] splitOnLast(string text, string needle) => throw null; + public System.Collections.Generic.List splitStringList(System.Collections.IEnumerable strings) => throw null; + public double sqrt(double value) => throw null; + public bool startsWith(string text, string needle) => throw null; + public bool startsWithPathInfo(ServiceStack.Script.ScriptScopeContext scope, string pathInfo) => throw null; + public System.Reflection.FieldInfo[] staticFieldTypes(object o) => throw null; + public System.Collections.Generic.List staticFields(object o) => throw null; + public System.Reflection.PropertyInfo[] staticPropTypes(object o) => throw null; + public System.Collections.Generic.List staticProps(object o) => throw null; + public System.Collections.Generic.List step(System.Collections.IEnumerable target, object scopeOptions) => throw null; + public object sub(object lhs, object rhs) => throw null; + public string substring(string text, int startIndex) => throw null; + public string substring(string text, int startIndex, int length) => throw null; + public string substringWithElipsis(string text, int length) => throw null; + public string substringWithElipsis(string text, int startIndex, int length) => throw null; + public string substringWithEllipsis(string text, int length) => throw null; + public string substringWithEllipsis(string text, int startIndex, int length) => throw null; + public object subtract(object lhs, object rhs) => throw null; + public object sum(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; + public object sum(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public object sum(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public object sync(object value) => throw null; + public System.Collections.Generic.IEnumerable take(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable original, object countOrBinding) => throw null; + public System.Collections.Generic.IEnumerable takeWhile(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Collections.Generic.IEnumerable takeWhile(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public double tan(double value) => throw null; + public double tanh(double value) => throw null; + public ServiceStack.IRawString textDump(object target) => throw null; + public ServiceStack.IRawString textDump(object target, System.Collections.Generic.Dictionary options) => throw null; + public ServiceStack.IRawString textList(System.Collections.IEnumerable target) => throw null; + public ServiceStack.IRawString textList(System.Collections.IEnumerable target, System.Collections.Generic.Dictionary options) => throw null; + public string textStyle(string text, string headerStyle) => throw null; + public System.Collections.Generic.IEnumerable thenBy(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Collections.Generic.IEnumerable thenBy(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public System.Collections.Generic.IEnumerable thenByDescending(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Collections.Generic.IEnumerable thenByDescending(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public static System.Collections.Generic.IEnumerable thenByInternal(string filterName, ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public object @throw(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; + public object @throw(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; + public object throwArgumentException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; + public object throwArgumentException(ServiceStack.Script.ScriptScopeContext scope, string message, string options) => throw null; + public object throwArgumentNullException(ServiceStack.Script.ScriptScopeContext scope, string paramName) => throw null; + public object throwArgumentNullException(ServiceStack.Script.ScriptScopeContext scope, string paramName, object options) => throw null; + public object throwArgumentNullExceptionIf(ServiceStack.Script.ScriptScopeContext scope, string paramName, bool test) => throw null; + public object throwArgumentNullExceptionIf(ServiceStack.Script.ScriptScopeContext scope, string paramName, bool test, object options) => throw null; + public System.Threading.Tasks.Task throwAsync(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; + public System.Threading.Tasks.Task throwAsync(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; + public object throwFileNotFoundException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; + public object throwFileNotFoundException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; + public object throwIf(ServiceStack.Script.ScriptScopeContext scope, string message, bool test) => throw null; + public object throwIf(ServiceStack.Script.ScriptScopeContext scope, string message, bool test, object options) => throw null; + public object throwNotImplementedException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; + public object throwNotImplementedException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; + public object throwNotSupportedException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; + public object throwNotSupportedException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; + public object throwOptimisticConcurrencyException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; + public object throwOptimisticConcurrencyException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; + public object throwUnauthorizedAccessException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; + public object throwUnauthorizedAccessException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; + public System.TimeSpan time(int hours, int mins, int secs) => throw null; + public System.TimeSpan time(int days, int hours, int mins, int secs) => throw null; + public string timeFormat(System.TimeSpan timeValue) => throw null; + public string timeFormat(System.TimeSpan timeValue, string format) => throw null; + public System.Collections.Generic.List times(int count) => throw null; + public string titleCase(string text) => throw null; + public System.Threading.Tasks.Task to(ServiceStack.Script.ScriptScopeContext scope, object argExpr) => throw null; + public ServiceStack.Script.IgnoreResult to(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; + public object[] toArray(System.Collections.IEnumerable target) => throw null; + public bool toBool(object target) => throw null; + public System.Byte toByte(object target) => throw null; + public System.Char toChar(object target) => throw null; + public int toCharCode(object target) => throw null; + public System.Char[] toChars(object target) => throw null; + public System.Collections.Generic.Dictionary toCoercedDictionary(object target) => throw null; + public System.DateTime toDateTime(object target) => throw null; + public System.Decimal toDecimal(object target) => throw null; + public System.Collections.Generic.Dictionary toDictionary(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Collections.Generic.Dictionary toDictionary(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public double toDouble(object target) => throw null; + public float toFloat(object target) => throw null; + public System.Threading.Tasks.Task toGlobal(ServiceStack.Script.ScriptScopeContext scope, object argExpr) => throw null; + public ServiceStack.Script.IgnoreResult toGlobal(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; + public int toInt(object target) => throw null; + public System.Collections.Generic.List toKeys(object target) => throw null; + public System.Collections.Generic.List toList(System.Collections.IEnumerable target) => throw null; + public System.Int64 toLong(object target) => throw null; + public System.Collections.Generic.Dictionary toObjectDictionary(object target) => throw null; + public string toQueryString(object keyValuePairs) => throw null; + public string toString(object target) => throw null; + public System.Collections.Generic.Dictionary toStringDictionary(System.Collections.IDictionary map) => throw null; + public System.Collections.Generic.List toStringList(System.Collections.IEnumerable target) => throw null; + public System.TimeSpan toTimeSpan(object target) => throw null; + public System.Byte[] toUtf8Bytes(string target) => throw null; + public System.Collections.Generic.List toValues(object target) => throw null; + public System.Collections.Generic.List toVarNames(System.Collections.IEnumerable names) => throw null; + public string trim(string text) => throw null; + public string trim(string text, System.Char c) => throw null; + public string trimEnd(string text) => throw null; + public string trimEnd(string text, System.Char c) => throw null; + public string trimStart(string text) => throw null; + public string trimStart(string text, System.Char c) => throw null; + public double truncate(double value) => throw null; + public object truthy(object test, object returnIfTruthy) => throw null; + public ServiceStack.IRawString typeFullName(object target) => throw null; + public ServiceStack.IRawString typeName(object target) => throw null; + public System.Collections.Generic.IEnumerable union(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; + public object unless(object returnTarget, object test) => throw null; + public object unlessElse(object returnTarget, object test, object defaultValue) => throw null; + public object unshift(System.Collections.IList list, object item) => throw null; + public object unwrap(object value) => throw null; + public string upper(string text) => throw null; + public string urlDecode(string value) => throw null; + public string urlEncode(string value) => throw null; + public string urlEncode(string value, bool upperCase) => throw null; + public object use(object ignoreTarget, object useValue) => throw null; + public object useFmt(object ignoreTarget, string format, object arg) => throw null; + public object useFmt(object ignoreTarget, string format, object arg1, object arg2) => throw null; + public object useFmt(object ignoreTarget, string format, object arg1, object arg2, object arg3) => throw null; + public object useFormat(object ignoreTarget, object arg, string fmt) => throw null; + public object useIf(object useValue, object test) => throw null; + public System.DateTime utcNow() => throw null; + public System.DateTimeOffset utcNowOffset() => throw null; + public System.Collections.ICollection values(object target) => throw null; + public object when(object returnTarget, object test) => throw null; + public System.Collections.Generic.IEnumerable where(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; + public System.Collections.Generic.IEnumerable where(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; + public object withKeys(System.Collections.Generic.IDictionary target, object keys) => throw null; + public object withoutEmptyValues(object target) => throw null; + public object withoutKeys(System.Collections.Generic.IDictionary target, object keys) => throw null; + public object withoutNullValues(object target) => throw null; + public ServiceStack.Script.IgnoreResult write(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; + public ServiceStack.Script.IgnoreResult writeln(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; + public System.Threading.Tasks.Task xml(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; + public System.Collections.Generic.List zip(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable original, object itemsOrBinding) => throw null; + } + + // Generated from `ServiceStack.Script.DefnScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefnScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public DefnScriptBlock() => throw null; + public override string Name { get => throw null; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.DirectoryScripts` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DirectoryScripts : ServiceStack.Script.IOScript + { + public ServiceStack.Script.IgnoreResult Copy(string from, string to) => throw null; + public static void CopyAllTo(string src, string dst, string[] excludePaths = default(string[])) => throw null; + public ServiceStack.Script.IgnoreResult CreateDirectory(string path) => throw null; + public ServiceStack.Script.IgnoreResult Delete(string path) => throw null; + public DirectoryScripts() => throw null; + public bool Exists(string path) => throw null; + public string GetCurrentDirectory() => throw null; + public string[] GetDirectories(string path) => throw null; + public string GetDirectoryRoot(string path) => throw null; + public string[] GetFileSystemEntries(string path) => throw null; + public string[] GetFiles(string path) => throw null; + public string[] GetLogicalDrives() => throw null; + public System.IO.DirectoryInfo GetParent(string path) => throw null; + public ServiceStack.Script.IgnoreResult Move(string from, string to) => throw null; + } + + // Generated from `ServiceStack.Script.EachScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EachScriptBlock : ServiceStack.Script.ScriptBlock + { + public EachScriptBlock() => throw null; + public override string Name { get => throw null; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.EvalScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EvalScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public EvalScriptBlock() => throw null; + public override string Name { get => throw null; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.FileScripts` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FileScripts : ServiceStack.Script.IOScript + { + public ServiceStack.Script.IgnoreResult AppendAllLines(string path, string[] lines) => throw null; + public ServiceStack.Script.IgnoreResult AppendAllText(string path, string text) => throw null; + public ServiceStack.Script.IgnoreResult Copy(string from, string to) => throw null; + public ServiceStack.Script.IgnoreResult Create(string path) => throw null; + public ServiceStack.Script.IgnoreResult Decrypt(string path) => throw null; + public ServiceStack.Script.IgnoreResult Delete(string path) => throw null; + public ServiceStack.Script.IgnoreResult Encrypt(string path) => throw null; + public bool Exists(string path) => throw null; + public FileScripts() => throw null; + public ServiceStack.Script.IgnoreResult Move(string from, string to) => throw null; + public System.Byte[] ReadAllBytes(string path) => throw null; + public string[] ReadAllLines(string path) => throw null; + public string ReadAllText(string path) => throw null; + public ServiceStack.Script.IgnoreResult Replace(string from, string to, string backup) => throw null; + public ServiceStack.Script.IgnoreResult WriteAllBytes(string path, System.Byte[] bytes) => throw null; + public ServiceStack.Script.IgnoreResult WriteAllLines(string path, string[] lines) => throw null; + public ServiceStack.Script.IgnoreResult WriteAllText(string path, string text) => throw null; + } + + // Generated from `ServiceStack.Script.FunctionScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FunctionScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public FunctionScriptBlock() => throw null; + public override string Name { get => throw null; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.GitHubPlugin` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GitHubPlugin : ServiceStack.Script.IScriptPlugin + { + public GitHubPlugin() => throw null; + public void Register(ServiceStack.Script.ScriptContext context) => throw null; + } + + // Generated from `ServiceStack.Script.GitHubScripts` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GitHubScripts : ServiceStack.Script.ScriptMethods + { + public GitHubScripts() => throw null; + public ServiceStack.IO.GistVirtualFiles gistVirtualFiles(string gistId) => throw null; + public ServiceStack.IO.GistVirtualFiles gistVirtualFiles(string gistId, string accessToken) => throw null; + public ServiceStack.Script.IgnoreResult githuDeleteGistFiles(ServiceStack.GitHubGateway gateway, string gistId, System.Collections.Generic.IEnumerable filePaths) => throw null; + public ServiceStack.Script.IgnoreResult githuDeleteGistFiles(ServiceStack.GitHubGateway gateway, string gistId, string filePath) => throw null; + public ServiceStack.GithubGist githubCreateGist(ServiceStack.GitHubGateway gateway, string description, System.Collections.Generic.Dictionary files) => throw null; + public ServiceStack.GithubGist githubCreatePrivateGist(ServiceStack.GitHubGateway gateway, string description, System.Collections.Generic.Dictionary files) => throw null; + public ServiceStack.GitHubGateway githubGateway() => throw null; + public ServiceStack.GitHubGateway githubGateway(string accessToken) => throw null; + public ServiceStack.GithubGist githubGist(ServiceStack.GitHubGateway gateway, string gistId) => throw null; + public System.Collections.Generic.List githubOrgRepos(ServiceStack.GitHubGateway gateway, string githubOrg) => throw null; + public System.Threading.Tasks.Task githubSourceRepos(ServiceStack.GitHubGateway gateway, string orgName) => throw null; + public string githubSourceZipUrl(ServiceStack.GitHubGateway gateway, string orgNames, string name) => throw null; + public System.Threading.Tasks.Task githubUserAndOrgRepos(ServiceStack.GitHubGateway gateway, string githubOrgOrUser) => throw null; + public System.Collections.Generic.List githubUserRepos(ServiceStack.GitHubGateway gateway, string githubUser) => throw null; + public ServiceStack.Script.IgnoreResult githubWriteGistFile(ServiceStack.GitHubGateway gateway, string gistId, string filePath, string contents) => throw null; + public ServiceStack.Script.IgnoreResult githubWriteGistFiles(ServiceStack.GitHubGateway gateway, string gistId, System.Collections.Generic.Dictionary gistFiles) => throw null; + } + + // Generated from `ServiceStack.Script.HtmlPageFormat` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlPageFormat : ServiceStack.Script.PageFormat + { + public static System.Threading.Tasks.Task HtmlEncodeTransformer(System.IO.Stream stream) => throw null; + public static string HtmlEncodeValue(object value) => throw null; + public virtual object HtmlExpressionException(ServiceStack.Script.PageResult result, System.Exception ex) => throw null; + public HtmlPageFormat() => throw null; + public ServiceStack.Script.SharpPage HtmlResolveLayout(ServiceStack.Script.SharpPage page) => throw null; + } + + // Generated from `ServiceStack.Script.HtmlScriptBlocks` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlScriptBlocks : ServiceStack.Script.IScriptPlugin + { + public HtmlScriptBlocks() => throw null; + public void Register(ServiceStack.Script.ScriptContext context) => throw null; + } + + // Generated from `ServiceStack.Script.HtmlScripts` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlScripts : ServiceStack.Script.ScriptMethods, ServiceStack.Script.IConfigureScriptContext + { + public void Configure(ServiceStack.Script.ScriptContext context) => throw null; + public static System.Collections.Generic.List EvaluateWhenSkippingFilterExecution; + public static string HtmlDump(object target, ServiceStack.HtmlDumpOptions options) => throw null; + public static string HtmlList(System.Collections.IEnumerable items, ServiceStack.HtmlDumpOptions options) => throw null; + public HtmlScripts() => throw null; + public static System.Collections.Generic.HashSet VoidElements { get => throw null; } + public ServiceStack.IRawString htmlA(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlA(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public string htmlAddClass(object target, string name) => throw null; + public ServiceStack.IRawString htmlAttrs(object target) => throw null; + public string htmlAttrsList(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlB(string text) => throw null; + public ServiceStack.IRawString htmlB(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlButton(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlButton(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlClass(object target) => throw null; + public string htmlClassList(object target) => throw null; + public ServiceStack.IRawString htmlDiv(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlDiv(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlDump(object target) => throw null; + public ServiceStack.IRawString htmlDump(object target, System.Collections.Generic.Dictionary options) => throw null; + public ServiceStack.IRawString htmlEm(string text) => throw null; + public ServiceStack.IRawString htmlEm(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlError(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.IRawString htmlError(ServiceStack.Script.ScriptScopeContext scope, System.Exception ex) => throw null; + public ServiceStack.IRawString htmlError(ServiceStack.Script.ScriptScopeContext scope, System.Exception ex, object options) => throw null; + public ServiceStack.IRawString htmlErrorDebug(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.IRawString htmlErrorDebug(ServiceStack.Script.ScriptScopeContext scope, System.Exception ex, object options) => throw null; + public ServiceStack.IRawString htmlErrorDebug(ServiceStack.Script.ScriptScopeContext scope, object ex) => throw null; + public ServiceStack.IRawString htmlErrorMessage(System.Exception ex) => throw null; + public ServiceStack.IRawString htmlErrorMessage(System.Exception ex, object options) => throw null; + public ServiceStack.IRawString htmlErrorMessage(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.IRawString htmlForm(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlForm(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlFormat(string htmlWithFormat, string arg) => throw null; + public ServiceStack.IRawString htmlH1(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH1(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH2(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH2(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH3(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH3(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH4(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH4(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH5(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH5(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH6(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlH6(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public bool htmlHasClass(object target, string name) => throw null; + public ServiceStack.IRawString htmlHiddenInputs(System.Collections.Generic.Dictionary inputValues) => throw null; + public ServiceStack.IRawString htmlImage(string src) => throw null; + public ServiceStack.IRawString htmlImage(string src, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlImg(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlImg(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlInput(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlInput(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlLabel(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlLabel(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlLi(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlLi(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlLink(string href) => throw null; + public ServiceStack.IRawString htmlLink(string href, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlList(System.Collections.IEnumerable target) => throw null; + public ServiceStack.IRawString htmlList(System.Collections.IEnumerable target, System.Collections.Generic.Dictionary options) => throw null; + public ServiceStack.IRawString htmlOl(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlOl(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlOption(string text) => throw null; + public ServiceStack.IRawString htmlOption(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlOptions(object values) => throw null; + public ServiceStack.IRawString htmlOptions(object values, object options) => throw null; + public ServiceStack.IRawString htmlSelect(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlSelect(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlSpan(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlSpan(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTable(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTable(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTag(System.Collections.Generic.Dictionary attrs, string tag) => throw null; + public ServiceStack.IRawString htmlTag(string innerHtml, System.Collections.Generic.Dictionary attrs, string tag) => throw null; + public ServiceStack.IRawString htmlTd(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTd(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTextArea(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTextArea(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTh(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTh(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTr(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlTr(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlUl(System.Collections.Generic.Dictionary attrs) => throw null; + public ServiceStack.IRawString htmlUl(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; + } + + // Generated from `ServiceStack.Script.IConfigurePageResult` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IConfigurePageResult + { + void Configure(ServiceStack.Script.PageResult pageResult); + } + + // Generated from `ServiceStack.Script.IConfigureScriptContext` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IConfigureScriptContext + { + void Configure(ServiceStack.Script.ScriptContext context); + } + + // Generated from `ServiceStack.Script.IOScript` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOScript + { + ServiceStack.Script.IgnoreResult Copy(string from, string to); + ServiceStack.Script.IgnoreResult Delete(string path); + bool Exists(string target); + ServiceStack.Script.IgnoreResult Move(string from, string to); + } + + // Generated from `ServiceStack.Script.IPageResult` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPageResult + { + } + + // Generated from `ServiceStack.Script.IResultInstruction` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IResultInstruction + { + } + + // Generated from `ServiceStack.Script.IScriptPlugin` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IScriptPlugin + { + void Register(ServiceStack.Script.ScriptContext context); + } + + // Generated from `ServiceStack.Script.IScriptPluginAfter` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IScriptPluginAfter + { + void AfterPluginsLoaded(ServiceStack.Script.ScriptContext context); + } + + // Generated from `ServiceStack.Script.IScriptPluginBefore` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IScriptPluginBefore + { + void BeforePluginsLoaded(ServiceStack.Script.ScriptContext context); + } + + // Generated from `ServiceStack.Script.ISharpPages` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISharpPages + { + ServiceStack.Script.SharpPage AddPage(string virtualPath, ServiceStack.IO.IVirtualFile file); + ServiceStack.Script.SharpCodePage GetCodePage(string virtualPath); + System.DateTime GetLastModified(ServiceStack.Script.SharpPage page); + ServiceStack.Script.SharpPage GetPage(string virtualPath); + ServiceStack.Script.SharpPage OneTimePage(string contents, string ext); + ServiceStack.Script.SharpPage OneTimePage(string contents, string ext, System.Action init); + ServiceStack.Script.SharpPage ResolveLayoutPage(ServiceStack.Script.SharpCodePage page, string layout); + ServiceStack.Script.SharpPage ResolveLayoutPage(ServiceStack.Script.SharpPage page, string layout); + ServiceStack.Script.SharpPage TryGetPage(string path); + } + + // Generated from `ServiceStack.Script.IfScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IfScriptBlock : ServiceStack.Script.ScriptBlock + { + public IfScriptBlock() => throw null; + public override string Name { get => throw null; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.IgnoreResult` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IgnoreResult : ServiceStack.Script.IResultInstruction + { + public static ServiceStack.Script.IgnoreResult Value; + } + + // Generated from `ServiceStack.Script.InvokerType` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum InvokerType + { + ContextBlock, + ContextFilter, + Filter, + } + + // Generated from `ServiceStack.Script.JsAddition` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsAddition : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsAddition Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsAnd` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsAnd : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsAnd Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsArrayExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsArrayExpression : ServiceStack.Script.JsExpression + { + public ServiceStack.Script.JsToken[] Elements { get => throw null; } + protected bool Equals(ServiceStack.Script.JsArrayExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsArrayExpression(System.Collections.Generic.IEnumerable elements) => throw null; + public JsArrayExpression(params ServiceStack.Script.JsToken[] elements) => throw null; + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsArrowFunctionExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsArrowFunctionExpression : ServiceStack.Script.JsExpression + { + public ServiceStack.Script.JsToken Body { get => throw null; } + protected bool Equals(ServiceStack.Script.JsArrowFunctionExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public object Invoke(ServiceStack.Script.ScriptScopeContext scope, params object[] @params) => throw null; + public object Invoke(params object[] @params) => throw null; + public JsArrowFunctionExpression(ServiceStack.Script.JsIdentifier param, ServiceStack.Script.JsToken body) => throw null; + public JsArrowFunctionExpression(ServiceStack.Script.JsIdentifier[] @params, ServiceStack.Script.JsToken body) => throw null; + public ServiceStack.Script.JsIdentifier[] Params { get => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsAssignment` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsAssignment : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsAssignment Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsAssignmentExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsAssignmentExpression : ServiceStack.Script.JsExpression + { + protected bool Equals(ServiceStack.Script.JsAssignmentExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsAssignmentExpression(ServiceStack.Script.JsToken left, ServiceStack.Script.JsAssignment @operator, ServiceStack.Script.JsToken right) => throw null; + public ServiceStack.Script.JsToken Left { get => throw null; set => throw null; } + public ServiceStack.Script.JsAssignment Operator { get => throw null; set => throw null; } + public ServiceStack.Script.JsToken Right { get => throw null; set => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsBinaryExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsBinaryExpression : ServiceStack.Script.JsExpression + { + protected bool Equals(ServiceStack.Script.JsBinaryExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsBinaryExpression(ServiceStack.Script.JsToken left, ServiceStack.Script.JsBinaryOperator @operator, ServiceStack.Script.JsToken right) => throw null; + public ServiceStack.Script.JsToken Left { get => throw null; set => throw null; } + public ServiceStack.Script.JsBinaryOperator Operator { get => throw null; set => throw null; } + public ServiceStack.Script.JsToken Right { get => throw null; set => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsBinaryOperator` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class JsBinaryOperator : ServiceStack.Script.JsOperator + { + public abstract object Evaluate(object lhs, object rhs); + protected JsBinaryOperator() => throw null; + } + + // Generated from `ServiceStack.Script.JsBitwiseAnd` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsBitwiseAnd : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsBitwiseAnd Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsBitwiseLeftShift` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsBitwiseLeftShift : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsBitwiseLeftShift Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsBitwiseNot` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsBitwiseNot : ServiceStack.Script.JsUnaryOperator + { + public override object Evaluate(object target) => throw null; + public static ServiceStack.Script.JsBitwiseNot Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsBitwiseOr` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsBitwiseOr : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsBitwiseOr Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsBitwiseRightShift` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsBitwiseRightShift : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsBitwiseRightShift Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsBitwiseXOr` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsBitwiseXOr : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsBitwiseXOr Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsBlockStatement` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsBlockStatement : ServiceStack.Script.JsStatement + { + protected bool Equals(ServiceStack.Script.JsBlockStatement other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public JsBlockStatement(ServiceStack.Script.JsStatement statement) => throw null; + public JsBlockStatement(ServiceStack.Script.JsStatement[] statements) => throw null; + public ServiceStack.Script.JsStatement[] Statements { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsCallExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsCallExpression : ServiceStack.Script.JsExpression + { + public ServiceStack.Script.JsToken[] Arguments { get => throw null; } + public ServiceStack.Script.JsToken Callee { get => throw null; } + protected bool Equals(ServiceStack.Script.JsCallExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static System.Collections.Generic.List EvaluateArgumentValues(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsToken[] args) => throw null; + public string GetDisplayName() => throw null; + public override int GetHashCode() => throw null; + public static object InvokeDelegate(System.Delegate fn, object target, bool isMemberExpr, System.Collections.Generic.List fnArgValues) => throw null; + public JsCallExpression(ServiceStack.Script.JsToken callee, params ServiceStack.Script.JsToken[] arguments) => throw null; + public string Name { get => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.Script.JsCoalescing` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsCoalescing : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsCoalescing Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsConditionalExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsConditionalExpression : ServiceStack.Script.JsExpression + { + public ServiceStack.Script.JsToken Alternate { get => throw null; } + public ServiceStack.Script.JsToken Consequent { get => throw null; } + protected bool Equals(ServiceStack.Script.JsConditionalExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsConditionalExpression(ServiceStack.Script.JsToken test, ServiceStack.Script.JsToken consequent, ServiceStack.Script.JsToken alternate) => throw null; + public ServiceStack.Script.JsToken Test { get => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsDeclaration` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsDeclaration : ServiceStack.Script.JsExpression + { + protected bool Equals(ServiceStack.Script.JsDeclaration other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public ServiceStack.Script.JsIdentifier Id { get => throw null; set => throw null; } + public ServiceStack.Script.JsToken Init { get => throw null; set => throw null; } + public JsDeclaration(ServiceStack.Script.JsIdentifier id, ServiceStack.Script.JsToken init) => throw null; + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsDivision` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsDivision : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsDivision Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsEquals` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsEquals : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsEquals Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class JsExpression : ServiceStack.Script.JsToken + { + protected JsExpression() => throw null; + public abstract System.Collections.Generic.Dictionary ToJsAst(); + public virtual string ToJsAstType() => throw null; + } + + // Generated from `ServiceStack.Script.JsExpressionStatement` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsExpressionStatement : ServiceStack.Script.JsStatement + { + protected bool Equals(ServiceStack.Script.JsExpressionStatement other) => throw null; + public override bool Equals(object obj) => throw null; + public ServiceStack.Script.JsToken Expression { get => throw null; } + public override int GetHashCode() => throw null; + public JsExpressionStatement(ServiceStack.Script.JsToken expression) => throw null; + } + + // Generated from `ServiceStack.Script.JsExpressionUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsExpressionUtils + { + public static ServiceStack.Script.JsExpression CreateJsExpression(ServiceStack.Script.JsToken lhs, ServiceStack.Script.JsBinaryOperator op, ServiceStack.Script.JsToken rhs) => throw null; + public static ServiceStack.Script.JsToken GetCachedJsExpression(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static ServiceStack.Script.JsToken GetCachedJsExpression(this string expr, ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static object GetJsExpressionAndEvaluate(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope, System.Action ifNone = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task GetJsExpressionAndEvaluateAsync(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope, System.Action ifNone = default(System.Action)) => throw null; + public static bool GetJsExpressionAndEvaluateToBool(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope, System.Action ifNone = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task GetJsExpressionAndEvaluateToBoolAsync(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope, System.Action ifNone = default(System.Action)) => throw null; + public static System.ReadOnlySpan ParseBinaryExpression(this System.ReadOnlySpan literal, out ServiceStack.Script.JsExpression expr, bool filterExpression) => throw null; + public static System.ReadOnlySpan ParseJsExpression(this System.ReadOnlyMemory literal, out ServiceStack.Script.JsToken token) => throw null; + public static System.ReadOnlySpan ParseJsExpression(this System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token) => throw null; + public static System.ReadOnlySpan ParseJsExpression(this System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token, bool filterExpression) => throw null; + public static System.ReadOnlySpan ParseJsExpression(this string literal, out ServiceStack.Script.JsToken token) => throw null; + } + + // Generated from `ServiceStack.Script.JsFilterExpressionStatement` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsFilterExpressionStatement : ServiceStack.Script.JsStatement + { + protected bool Equals(ServiceStack.Script.JsFilterExpressionStatement other) => throw null; + public override bool Equals(object obj) => throw null; + public ServiceStack.Script.PageVariableFragment FilterExpression { get => throw null; } + public override int GetHashCode() => throw null; + public JsFilterExpressionStatement(System.ReadOnlyMemory originalText, ServiceStack.Script.JsToken expr, System.Collections.Generic.List filters) => throw null; + public JsFilterExpressionStatement(string originalText, ServiceStack.Script.JsToken expr, params ServiceStack.Script.JsCallExpression[] filters) => throw null; + } + + // Generated from `ServiceStack.Script.JsGreaterThan` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsGreaterThan : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsGreaterThan Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsGreaterThanEqual` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsGreaterThanEqual : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsGreaterThanEqual Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsIdentifier` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsIdentifier : ServiceStack.Script.JsExpression + { + protected bool Equals(ServiceStack.Script.JsIdentifier other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsIdentifier(System.ReadOnlySpan name) => throw null; + public JsIdentifier(string name) => throw null; + public string Name { get => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.Script.JsLessThan` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsLessThan : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsLessThan Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsLessThanEqual` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsLessThanEqual : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsLessThanEqual Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsLiteral` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsLiteral : ServiceStack.Script.JsExpression + { + protected bool Equals(ServiceStack.Script.JsLiteral other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static ServiceStack.Script.JsLiteral False; + public override int GetHashCode() => throw null; + public JsLiteral(object value) => throw null; + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + public override string ToString() => throw null; + public static ServiceStack.Script.JsLiteral True; + public object Value { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsLogicOperator` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class JsLogicOperator : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + protected JsLogicOperator() => throw null; + public abstract bool Test(object lhs, object rhs); + } + + // Generated from `ServiceStack.Script.JsLogicalExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsLogicalExpression : ServiceStack.Script.JsExpression + { + protected bool Equals(ServiceStack.Script.JsLogicalExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsLogicalExpression(ServiceStack.Script.JsToken left, ServiceStack.Script.JsLogicOperator @operator, ServiceStack.Script.JsToken right) => throw null; + public ServiceStack.Script.JsToken Left { get => throw null; set => throw null; } + public ServiceStack.Script.JsLogicOperator Operator { get => throw null; set => throw null; } + public ServiceStack.Script.JsToken Right { get => throw null; set => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsMemberExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsMemberExpression : ServiceStack.Script.JsExpression + { + public bool Computed { get => throw null; } + protected bool Equals(ServiceStack.Script.JsMemberExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsMemberExpression(ServiceStack.Script.JsToken @object, ServiceStack.Script.JsToken property) => throw null; + public JsMemberExpression(ServiceStack.Script.JsToken @object, ServiceStack.Script.JsToken property, bool computed) => throw null; + public ServiceStack.Script.JsToken Object { get => throw null; } + public ServiceStack.Script.JsToken Property { get => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsMinus` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsMinus : ServiceStack.Script.JsUnaryOperator + { + public override object Evaluate(object target) => throw null; + public static ServiceStack.Script.JsMinus Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsMod` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsMod : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsMod Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsMultiplication` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsMultiplication : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsMultiplication Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsNot` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsNot : ServiceStack.Script.JsUnaryOperator + { + public override object Evaluate(object target) => throw null; + public static ServiceStack.Script.JsNot Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsNotEquals` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsNotEquals : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsNotEquals Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsNull` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsNull + { + public const string String = default; + public static ServiceStack.Script.JsLiteral Value; + } + + // Generated from `ServiceStack.Script.JsObjectExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsObjectExpression : ServiceStack.Script.JsExpression + { + protected bool Equals(ServiceStack.Script.JsObjectExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public static string GetKey(ServiceStack.Script.JsToken token) => throw null; + public JsObjectExpression(System.Collections.Generic.IEnumerable properties) => throw null; + public JsObjectExpression(params ServiceStack.Script.JsProperty[] properties) => throw null; + public ServiceStack.Script.JsProperty[] Properties { get => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsOperator` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class JsOperator : ServiceStack.Script.JsToken + { + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + protected JsOperator() => throw null; + public override string ToRawString() => throw null; + public abstract string Token { get; } + } + + // Generated from `ServiceStack.Script.JsOr` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsOr : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsOr Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsPageBlockFragmentStatement` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsPageBlockFragmentStatement : ServiceStack.Script.JsStatement + { + public ServiceStack.Script.PageBlockFragment Block { get => throw null; } + protected bool Equals(ServiceStack.Script.JsPageBlockFragmentStatement other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public JsPageBlockFragmentStatement(ServiceStack.Script.PageBlockFragment block) => throw null; + } + + // Generated from `ServiceStack.Script.JsPlus` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsPlus : ServiceStack.Script.JsUnaryOperator + { + public override object Evaluate(object target) => throw null; + public static ServiceStack.Script.JsPlus Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsProperty` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsProperty + { + protected bool Equals(ServiceStack.Script.JsProperty other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public JsProperty(ServiceStack.Script.JsToken key, ServiceStack.Script.JsToken value) => throw null; + public JsProperty(ServiceStack.Script.JsToken key, ServiceStack.Script.JsToken value, bool shorthand) => throw null; + public ServiceStack.Script.JsToken Key { get => throw null; } + public bool Shorthand { get => throw null; } + public ServiceStack.Script.JsToken Value { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsSpreadElement` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsSpreadElement : ServiceStack.Script.JsExpression + { + public ServiceStack.Script.JsToken Argument { get => throw null; } + protected bool Equals(ServiceStack.Script.JsSpreadElement other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsSpreadElement(ServiceStack.Script.JsToken argument) => throw null; + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsStatement` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class JsStatement + { + protected JsStatement() => throw null; + } + + // Generated from `ServiceStack.Script.JsStrictEquals` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsStrictEquals : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsStrictEquals Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsStrictNotEquals` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsStrictNotEquals : ServiceStack.Script.JsLogicOperator + { + public static ServiceStack.Script.JsStrictNotEquals Operator; + public override bool Test(object lhs, object rhs) => throw null; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsSubtraction` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsSubtraction : ServiceStack.Script.JsBinaryOperator + { + public override object Evaluate(object lhs, object rhs) => throw null; + public static ServiceStack.Script.JsSubtraction Operator; + public override string Token { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsTemplateElement` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsTemplateElement + { + protected bool Equals(ServiceStack.Script.JsTemplateElement other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public JsTemplateElement(ServiceStack.Script.JsTemplateElementValue value, bool tail) => throw null; + public JsTemplateElement(string raw, string cooked, bool tail = default(bool)) => throw null; + public bool Tail { get => throw null; } + public ServiceStack.Script.JsTemplateElementValue Value { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsTemplateElementValue` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsTemplateElementValue + { + public string Cooked { get => throw null; } + protected bool Equals(ServiceStack.Script.JsTemplateElementValue other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public JsTemplateElementValue(string raw, string cooked) => throw null; + public string Raw { get => throw null; } + } + + // Generated from `ServiceStack.Script.JsTemplateLiteral` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsTemplateLiteral : ServiceStack.Script.JsExpression + { + protected bool Equals(ServiceStack.Script.JsTemplateLiteral other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.Script.JsToken[] Expressions { get => throw null; } + public override int GetHashCode() => throw null; + public JsTemplateLiteral(ServiceStack.Script.JsTemplateElement[] quasis = default(ServiceStack.Script.JsTemplateElement[]), ServiceStack.Script.JsToken[] expressions = default(ServiceStack.Script.JsToken[])) => throw null; + public JsTemplateLiteral(string cooked) => throw null; + public ServiceStack.Script.JsTemplateElement[] Quasis { get => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.Script.JsToken` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class JsToken : ServiceStack.IRawString + { + public abstract object Evaluate(ServiceStack.Script.ScriptScopeContext scope); + protected JsToken() => throw null; + public string JsonValue(object value) => throw null; + public abstract string ToRawString(); + public override string ToString() => throw null; + public static object UnwrapValue(ServiceStack.Script.JsToken token) => throw null; + } + + // Generated from `ServiceStack.Script.JsTokenUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsTokenUtils + { + public static System.ReadOnlySpan AdvancePastPipeOperator(this System.ReadOnlySpan literal) => throw null; + public static System.ReadOnlyMemory Chop(this System.ReadOnlyMemory literal, System.Char c) => throw null; + public static System.ReadOnlySpan Chop(this System.ReadOnlySpan literal, System.Char c) => throw null; + public static System.ReadOnlyMemory ChopNewLine(this System.ReadOnlyMemory literal) => throw null; + public static int CountPrecedingOccurrences(this System.ReadOnlySpan literal, int index, System.Char c) => throw null; + public static object Evaluate(this ServiceStack.Script.JsToken token) => throw null; + public static bool Evaluate(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope, out object result, out System.Threading.Tasks.Task asyncResult) => throw null; + public static System.Threading.Tasks.Task EvaluateAsync(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static bool EvaluateToBool(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static bool EvaluateToBool(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope, out bool? result, out System.Threading.Tasks.Task asyncResult) => throw null; + public static System.Threading.Tasks.Task EvaluateToBoolAsync(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static bool FirstCharEquals(this System.ReadOnlySpan literal, System.Char c) => throw null; + public static bool FirstCharEquals(this string literal, System.Char c) => throw null; + public static int GetBinaryPrecedence(string token) => throw null; + public static ServiceStack.Script.JsUnaryOperator GetUnaryOperator(this System.Char c) => throw null; + public static int IndexOfQuotedString(this System.ReadOnlySpan literal, System.Char quoteChar, out bool hasEscapeChars) => throw null; + public static bool IsEnd(this System.Char c) => throw null; + public static bool IsExpressionTerminatorChar(this System.Char c) => throw null; + public static bool IsNumericChar(this System.Char c) => throw null; + public static bool IsOperatorChar(this System.Char c) => throw null; + public static bool IsValidVarNameChar(this System.Char c) => throw null; + public static System.Byte[] NewLineUtf8; + public static System.Collections.Generic.Dictionary OperatorPrecedence; + public static System.ReadOnlySpan ParseArgumentsList(this System.ReadOnlySpan literal, out System.Collections.Generic.List args) => throw null; + public static System.ReadOnlySpan ParseJsToken(this System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token) => throw null; + public static System.ReadOnlySpan ParseJsToken(this System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token, bool filterExpression) => throw null; + public static System.ReadOnlyMemory ParseVarName(this System.ReadOnlyMemory literal, out System.ReadOnlyMemory varName) => throw null; + public static System.ReadOnlySpan ParseVarName(this System.ReadOnlySpan literal, out System.ReadOnlySpan varName) => throw null; + public static bool SafeCharEquals(this System.ReadOnlySpan literal, int index, System.Char c) => throw null; + public static System.Char SafeGetChar(this System.ReadOnlyMemory literal, int index) => throw null; + public static System.Char SafeGetChar(this System.ReadOnlySpan literal, int index) => throw null; + public static System.Collections.Generic.Dictionary ToJsAst(this ServiceStack.Script.JsToken token) => throw null; + public static string ToJsAstString(this ServiceStack.Script.JsToken token) => throw null; + public static string ToJsAstType(this System.Type type) => throw null; + } + + // Generated from `ServiceStack.Script.JsUnaryExpression` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsUnaryExpression : ServiceStack.Script.JsExpression + { + public ServiceStack.Script.JsToken Argument { get => throw null; } + protected bool Equals(ServiceStack.Script.JsUnaryExpression other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsUnaryExpression(ServiceStack.Script.JsUnaryOperator @operator, ServiceStack.Script.JsToken argument) => throw null; + public ServiceStack.Script.JsUnaryOperator Operator { get => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsUnaryOperator` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class JsUnaryOperator : ServiceStack.Script.JsOperator + { + public abstract object Evaluate(object target); + protected JsUnaryOperator() => throw null; + } + + // Generated from `ServiceStack.Script.JsVariableDeclaration` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsVariableDeclaration : ServiceStack.Script.JsExpression + { + public ServiceStack.Script.JsDeclaration[] Declarations { get => throw null; } + protected bool Equals(ServiceStack.Script.JsVariableDeclaration other) => throw null; + public override bool Equals(object obj) => throw null; + public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public override int GetHashCode() => throw null; + public JsVariableDeclaration(ServiceStack.Script.JsVariableDeclarationKind kind, params ServiceStack.Script.JsDeclaration[] declarations) => throw null; + public ServiceStack.Script.JsVariableDeclarationKind Kind { get => throw null; } + public override System.Collections.Generic.Dictionary ToJsAst() => throw null; + public override string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.JsVariableDeclarationKind` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum JsVariableDeclarationKind + { + Const, + Let, + Var, + } + + // Generated from `ServiceStack.Script.KeyValuesScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class KeyValuesScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public KeyValuesScriptBlock() => throw null; + public override string Name { get => throw null; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken ct) => throw null; + } + + // Generated from `ServiceStack.Script.Lisp` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Lisp + { + // Generated from `ServiceStack.Script.Lisp+BuiltInFunc` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BuiltInFunc : ServiceStack.Script.Lisp.LispFunc + { + public ServiceStack.Script.Lisp.BuiltInFuncBody Body { get => throw null; } + public BuiltInFunc(string name, int carity, ServiceStack.Script.Lisp.BuiltInFuncBody body) : base(default(int)) => throw null; + public object EvalWith(ServiceStack.Script.Lisp.Interpreter interp, ServiceStack.Script.Lisp.Cell arg, ServiceStack.Script.Lisp.Cell interpEnv) => throw null; + public string Name { get => throw null; } + public override string ToString() => throw null; + } + + + // Generated from `ServiceStack.Script.Lisp+BuiltInFuncBody` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object BuiltInFuncBody(ServiceStack.Script.Lisp.Interpreter interp, object[] frame); + + + // Generated from `ServiceStack.Script.Lisp+Cell` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Cell : System.Collections.IEnumerable + { + public object Car; + public object Cdr; + public Cell(object car, object cdr) => throw null; + public System.Collections.IEnumerator GetEnumerator() => throw null; + public int Length { get => throw null; } + public override string ToString() => throw null; + public void Walk(System.Action fn) => throw null; + } + + + // Generated from `ServiceStack.Script.Lisp+Interpreter` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Interpreter + { + public ServiceStack.Script.ScriptScopeContext AssertScope() => throw null; + public System.IO.TextWriter COut { get => throw null; set => throw null; } + public void Def(string name, int carity, ServiceStack.Script.Lisp.BuiltInFuncBody body) => throw null; + public void Def(string name, int carity, System.Func body) => throw null; + public object Eval(System.Collections.Generic.IEnumerable sExpressions) => throw null; + public object Eval(System.Collections.Generic.IEnumerable sExpressions, ServiceStack.Script.Lisp.Cell env) => throw null; + public object Eval(object x) => throw null; + public object Eval(object x, ServiceStack.Script.Lisp.Cell env) => throw null; + public static object[] EvalArgs(ServiceStack.Script.Lisp.Cell arg, ServiceStack.Script.Lisp.Interpreter interp, ServiceStack.Script.Lisp.Cell env = default(ServiceStack.Script.Lisp.Cell)) => throw null; + public static System.Collections.Generic.Dictionary EvalMapArgs(ServiceStack.Script.Lisp.Cell arg, ServiceStack.Script.Lisp.Interpreter interp, ServiceStack.Script.Lisp.Cell env = default(ServiceStack.Script.Lisp.Cell)) => throw null; + public int Evaluations { get => throw null; set => throw null; } + public object GetSymbolValue(string name) => throw null; + public void InitGlobals() => throw null; + public Interpreter() => throw null; + public Interpreter(ServiceStack.Script.Lisp.Interpreter globalInterp) => throw null; + public string ReplEval(ServiceStack.Script.ScriptContext context, System.IO.Stream outputStream, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public ServiceStack.Script.ScriptScopeContext? Scope { get => throw null; set => throw null; } + public void SetSymbolValue(string name, object value) => throw null; + public static int TotalEvaluations { get => throw null; } + } + + + // Generated from `ServiceStack.Script.Lisp+LispFunc` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class LispFunc + { + public int Carity { get => throw null; } + public void EvalFrame(object[] frame, ServiceStack.Script.Lisp.Interpreter interp, ServiceStack.Script.Lisp.Cell env) => throw null; + protected LispFunc(int carity) => throw null; + public object[] MakeFrame(ServiceStack.Script.Lisp.Cell arg) => throw null; + } + + + // Generated from `ServiceStack.Script.Lisp+Reader` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Reader + { + public static object EOF; + public object Read() => throw null; + public Reader(System.ReadOnlyMemory source) => throw null; + } + + + // Generated from `ServiceStack.Script.Lisp+Sym` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Sym + { + public override int GetHashCode() => throw null; + public bool IsInterned { get => throw null; } + public string Name { get => throw null; } + public static ServiceStack.Script.Lisp.Sym New(string name) => throw null; + protected static ServiceStack.Script.Lisp.Sym New(string name, System.Func make) => throw null; + public Sym(string name) => throw null; + protected static System.Collections.Generic.Dictionary Table; + public override string ToString() => throw null; + } + + + public static bool AllowLoadingRemoteScripts { get => throw null; set => throw null; } + public static ServiceStack.Script.Lisp.Sym BOOL_FALSE; + public static ServiceStack.Script.Lisp.Sym BOOL_TRUE; + public static ServiceStack.Script.Lisp.Interpreter CreateInterpreter() => throw null; + public const string Extensions = default; + public static void Import(System.ReadOnlyMemory lisp) => throw null; + public static void Import(string lisp) => throw null; + public static string IndexGistId { get => throw null; set => throw null; } + public static void Init() => throw null; + public static string InitScript; + public const string LispCore = default; + public static System.Collections.Generic.List Parse(System.ReadOnlyMemory lisp) => throw null; + public static System.Collections.Generic.List Parse(string lisp) => throw null; + public const string Prelude = default; + public static object QqExpand(object x) => throw null; + public static object QqQuote(object x) => throw null; + public static void Reset() => throw null; + public static void RunRepl(ServiceStack.Script.ScriptContext context) => throw null; + public static void Set(string symbolName, object value) => throw null; + public static string Str(object x, bool quoteString = default(bool)) => throw null; + public static ServiceStack.Script.Lisp.Sym TRUE; + public static ServiceStack.Script.Lisp.Cell ToCons(System.Collections.IEnumerable seq) => throw null; + } + + // Generated from `ServiceStack.Script.LispEvalException` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LispEvalException : System.Exception + { + public LispEvalException(string msg, object x, bool quoteString = default(bool)) => throw null; + public override string ToString() => throw null; + public System.Collections.Generic.List Trace { get => throw null; } + } + + // Generated from `ServiceStack.Script.LispScriptMethods` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LispScriptMethods : ServiceStack.Script.ScriptMethods + { + public LispScriptMethods() => throw null; + public System.Collections.Generic.List gistindex(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.List symbols(ServiceStack.Script.ScriptScopeContext scope) => throw null; + } + + // Generated from `ServiceStack.Script.LispStatements` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LispStatements : ServiceStack.Script.JsStatement + { + protected bool Equals(ServiceStack.Script.LispStatements other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public LispStatements(object[] sExpressions) => throw null; + public object[] SExpressions { get => throw null; } + } + + // Generated from `ServiceStack.Script.MarkdownTable` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MarkdownTable + { + public string Caption { get => throw null; set => throw null; } + public System.Collections.Generic.List HeaderTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List Headers { get => throw null; } + public bool IncludeHeaders { get => throw null; set => throw null; } + public bool IncludeRowNumbers { get => throw null; set => throw null; } + public MarkdownTable() => throw null; + public string Render() => throw null; + public System.Collections.Generic.List> Rows { get => throw null; } + } + + // Generated from `ServiceStack.Script.NoopScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NoopScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public override string Name { get => throw null; } + public NoopScriptBlock() => throw null; + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.PageBlockFragment` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageBlockFragment : ServiceStack.Script.PageFragment + { + public System.ReadOnlyMemory Argument { get => throw null; } + public string ArgumentString { get => throw null; } + public ServiceStack.Script.PageFragment[] Body { get => throw null; } + public ServiceStack.Script.PageElseBlock[] ElseBlocks { get => throw null; } + protected bool Equals(ServiceStack.Script.PageBlockFragment other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public string Name { get => throw null; } + public System.ReadOnlyMemory OriginalText { get => throw null; set => throw null; } + public PageBlockFragment(System.ReadOnlyMemory originalText, string name, System.ReadOnlyMemory argument, System.Collections.Generic.IEnumerable body, System.Collections.Generic.IEnumerable elseStatements = default(System.Collections.Generic.IEnumerable)) => throw null; + public PageBlockFragment(string name, System.ReadOnlyMemory argument, System.Collections.Generic.List body, System.Collections.Generic.List elseStatements = default(System.Collections.Generic.List)) => throw null; + public PageBlockFragment(string originalText, string name, string argument, ServiceStack.Script.JsBlockStatement body, System.Collections.Generic.IEnumerable elseStatements = default(System.Collections.Generic.IEnumerable)) => throw null; + public PageBlockFragment(string originalText, string name, string argument, ServiceStack.Script.JsStatement body, System.Collections.Generic.IEnumerable elseStatements = default(System.Collections.Generic.IEnumerable)) => throw null; + public PageBlockFragment(string originalText, string name, string argument, System.Collections.Generic.List body, System.Collections.Generic.List elseStatements = default(System.Collections.Generic.List)) => throw null; + } + + // Generated from `ServiceStack.Script.PageElseBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageElseBlock : ServiceStack.Script.PageFragment + { + public System.ReadOnlyMemory Argument { get => throw null; } + public ServiceStack.Script.PageFragment[] Body { get => throw null; } + protected bool Equals(ServiceStack.Script.PageElseBlock other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public PageElseBlock(System.ReadOnlyMemory argument, System.Collections.Generic.IEnumerable body) => throw null; + public PageElseBlock(System.ReadOnlyMemory argument, ServiceStack.Script.PageFragment[] body) => throw null; + public PageElseBlock(string argument, ServiceStack.Script.JsBlockStatement block) => throw null; + public PageElseBlock(string argument, ServiceStack.Script.JsStatement statement) => throw null; + public PageElseBlock(string argument, System.Collections.Generic.List body) => throw null; + } + + // Generated from `ServiceStack.Script.PageFormat` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageFormat + { + public string ArgsPrefix { get => throw null; set => throw null; } + public string ArgsSuffix { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public string DefaultEncodeValue(object value) => throw null; + public virtual object DefaultExpressionException(ServiceStack.Script.PageResult result, System.Exception ex) => throw null; + public ServiceStack.Script.SharpPage DefaultResolveLayout(ServiceStack.Script.SharpPage page) => throw null; + public virtual System.Threading.Tasks.Task DefaultViewException(ServiceStack.Script.PageResult pageResult, ServiceStack.Web.IRequest req, System.Exception ex) => throw null; + public System.Func EncodeValue { get => throw null; set => throw null; } + public string Extension { get => throw null; set => throw null; } + public System.Func OnExpressionException { get => throw null; set => throw null; } + public System.Func OnViewException { get => throw null; set => throw null; } + public PageFormat() => throw null; + public System.Func ResolveLayout { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Script.PageFragment` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class PageFragment + { + protected PageFragment() => throw null; + } + + // Generated from `ServiceStack.Script.PageJsBlockStatementFragment` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageJsBlockStatementFragment : ServiceStack.Script.PageFragment + { + public ServiceStack.Script.JsBlockStatement Block { get => throw null; } + protected bool Equals(ServiceStack.Script.PageJsBlockStatementFragment other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public PageJsBlockStatementFragment(ServiceStack.Script.JsBlockStatement statement) => throw null; + public bool Quiet { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Script.PageLispStatementFragment` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageLispStatementFragment : ServiceStack.Script.PageFragment + { + protected bool Equals(ServiceStack.Script.PageLispStatementFragment other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public ServiceStack.Script.LispStatements LispStatements { get => throw null; } + public PageLispStatementFragment(ServiceStack.Script.LispStatements statements) => throw null; + public bool Quiet { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Script.PageResult` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageResult : ServiceStack.Script.IPageResult, ServiceStack.Web.IHasOptions, ServiceStack.Web.IStreamWriterAsync, System.IDisposable + { + public System.Collections.Generic.Dictionary Args { get => throw null; set => throw null; } + public void AssertNextEvaluation() => throw null; + public void AssertNextPartial() => throw null; + public ServiceStack.Script.PageResult AssignArgs(System.Collections.Generic.Dictionary args) => throw null; + public string AssignExceptionsTo { get => throw null; set => throw null; } + public string CatchExceptionsIn { get => throw null; set => throw null; } + public ServiceStack.Script.PageResult Clone(ServiceStack.Script.SharpPage page) => throw null; + public ServiceStack.Script.SharpCodePage CodePage { get => throw null; } + public string ContentType { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptContext Context { get => throw null; } + public ServiceStack.Script.ScriptScopeContext CreateScope(System.IO.Stream outputStream = default(System.IO.Stream)) => throw null; + public bool DisableBuffering { get => throw null; set => throw null; } + public void Dispose() => throw null; + public object EvaluateIfToken(object value, ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Int64 Evaluations { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet ExcludeFiltersNamed { get => throw null; } + public ServiceStack.Script.PageResult Execute() => throw null; + public System.Collections.Generic.Dictionary>> FilterTransformers { get => throw null; set => throw null; } + public ServiceStack.Script.PageFormat Format { get => throw null; } + public ServiceStack.Script.ScriptBlock GetBlock(string name) => throw null; + public bool HaltExecution { get => throw null; set => throw null; } + public System.Threading.Tasks.Task Init() => throw null; + public System.Exception LastFilterError { get => throw null; set => throw null; } + public string[] LastFilterStackTrace { get => throw null; set => throw null; } + public string Layout { get => throw null; set => throw null; } + public ServiceStack.Script.SharpPage LayoutPage { get => throw null; set => throw null; } + public object Model { get => throw null; set => throw null; } + public bool NoLayout { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Options { get => throw null; set => throw null; } + public System.Collections.Generic.List>> OutputTransformers { get => throw null; set => throw null; } + public ServiceStack.Script.SharpPage Page { get => throw null; } + public PageResult(ServiceStack.Script.SharpCodePage page) => throw null; + public PageResult(ServiceStack.Script.SharpPage page) => throw null; + public System.Collections.Generic.List>> PageTransformers { get => throw null; set => throw null; } + public System.ReadOnlySpan ParseJsExpression(ServiceStack.Script.ScriptScopeContext scope, System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token) => throw null; + public int PartialStackDepth { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Partials { get => throw null; set => throw null; } + public void ResetIterations() => throw null; + public string Result { get => throw null; } + public string ResultOutput { get => throw null; } + public bool RethrowExceptions { get => throw null; set => throw null; } + public ServiceStack.Script.ReturnValue ReturnValue { get => throw null; set => throw null; } + public System.Collections.Generic.List ScriptBlocks { get => throw null; set => throw null; } + public System.Collections.Generic.List ScriptMethods { get => throw null; set => throw null; } + public bool ShouldSkipFilterExecution(ServiceStack.Script.JsStatement statement) => throw null; + public bool ShouldSkipFilterExecution(ServiceStack.Script.PageFragment fragment) => throw null; + public bool ShouldSkipFilterExecution(ServiceStack.Script.PageVariableFragment var) => throw null; + public bool? SkipExecutingFiltersIfError { get => throw null; set => throw null; } + public bool SkipFilterExecution { get => throw null; set => throw null; } + public int StackDepth { get => throw null; set => throw null; } + public System.Collections.Generic.List TemplateBlocks { get => throw null; } + public System.Collections.Generic.List TemplateFilters { get => throw null; } + public ServiceStack.Script.ScriptBlock TryGetBlock(string name) => throw null; + public string VirtualPath { get => throw null; } + public System.Threading.Tasks.Task WriteCodePageAsync(ServiceStack.Script.SharpCodePage page, ServiceStack.Script.ScriptScopeContext scope, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task WritePageAsync(ServiceStack.Script.SharpPage page, ServiceStack.Script.ScriptScopeContext scope, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task WritePageAsync(ServiceStack.Script.SharpPage page, ServiceStack.Script.SharpCodePage codePage, ServiceStack.Script.ScriptScopeContext scope, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task WriteStatementsAsync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable blockStatements, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task WriteStatementsAsync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable blockStatements, string callTrace, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task WriteVarAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageVariableFragment var, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.PageStringFragment` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageStringFragment : ServiceStack.Script.PageFragment + { + protected bool Equals(ServiceStack.Script.PageStringFragment other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public PageStringFragment(System.ReadOnlyMemory value) => throw null; + public PageStringFragment(string value) => throw null; + public System.ReadOnlyMemory Value { get => throw null; set => throw null; } + public string ValueString { get => throw null; } + public System.ReadOnlyMemory ValueUtf8 { get => throw null; } + } + + // Generated from `ServiceStack.Script.PageVariableFragment` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageVariableFragment : ServiceStack.Script.PageFragment + { + public string Binding { get => throw null; } + protected bool Equals(ServiceStack.Script.PageVariableFragment other) => throw null; + public override bool Equals(object obj) => throw null; + public object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.Script.JsToken Expression { get => throw null; } + public ServiceStack.Script.JsCallExpression[] FilterExpressions { get => throw null; } + public override int GetHashCode() => throw null; + public ServiceStack.Script.JsCallExpression InitialExpression { get => throw null; } + public object InitialValue { get => throw null; } + public System.ReadOnlyMemory OriginalText { get => throw null; set => throw null; } + public System.ReadOnlyMemory OriginalTextUtf8 { get => throw null; } + public PageVariableFragment(System.ReadOnlyMemory originalText, ServiceStack.Script.JsToken expr, System.Collections.Generic.List filterCommands) => throw null; + } + + // Generated from `ServiceStack.Script.ParseRealNumber` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ParseRealNumber(System.ReadOnlySpan numLiteral); + + // Generated from `ServiceStack.Script.PartialScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PartialScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public override string Name { get => throw null; } + public PartialScriptBlock() => throw null; + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.ProtectedScriptBlocks` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProtectedScriptBlocks : ServiceStack.Script.IScriptPlugin + { + public ProtectedScriptBlocks() => throw null; + public void Register(ServiceStack.Script.ScriptContext context) => throw null; + } + + // Generated from `ServiceStack.Script.ProtectedScripts` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProtectedScripts : ServiceStack.Script.ScriptMethods + { + public ServiceStack.Script.IgnoreResult AppendAllLines(ServiceStack.Script.FileScripts fs, string path, string[] lines) => throw null; + public ServiceStack.Script.IgnoreResult AppendAllLines(string path, string[] lines) => throw null; + public ServiceStack.Script.IgnoreResult AppendAllText(ServiceStack.Script.FileScripts fs, string path, string text) => throw null; + public ServiceStack.Script.IgnoreResult AppendAllText(string path, string text) => throw null; + public System.Delegate C(string qualifiedMethodName) => throw null; + public ServiceStack.ObjectActivator Constructor(string qualifiedConstructorName) => throw null; + public ServiceStack.Script.IgnoreResult Copy(ServiceStack.Script.IOScript os, string from, string to) => throw null; + public ServiceStack.Script.IgnoreResult Copy(string from, string to) => throw null; + public ServiceStack.Script.IgnoreResult Create(ServiceStack.Script.FileScripts fs, string from, string to) => throw null; + public ServiceStack.Script.IgnoreResult Create(string from, string to) => throw null; + public static string CreateCacheKey(string url, System.Collections.Generic.Dictionary options = default(System.Collections.Generic.Dictionary)) => throw null; + public ServiceStack.Script.IgnoreResult CreateDirectory(ServiceStack.Script.DirectoryScripts ds, string path) => throw null; + public ServiceStack.Script.IgnoreResult CreateDirectory(string path) => throw null; + public ServiceStack.Script.IgnoreResult Decrypt(ServiceStack.Script.FileScripts fs, string path) => throw null; + public ServiceStack.Script.IgnoreResult Decrypt(string path) => throw null; + public ServiceStack.Script.IgnoreResult Delete(ServiceStack.Script.IOScript os, string path) => throw null; + public ServiceStack.Script.IgnoreResult Delete(string path) => throw null; + public ServiceStack.Script.DirectoryScripts Directory() => throw null; + public ServiceStack.Script.IgnoreResult Encrypt(ServiceStack.Script.FileScripts fs, string path) => throw null; + public ServiceStack.Script.IgnoreResult Encrypt(string path) => throw null; + public bool Exists(ServiceStack.Script.IOScript os, string path) => throw null; + public bool Exists(string path) => throw null; + public System.Delegate F(string qualifiedMethodName) => throw null; + public System.Delegate F(string qualifiedMethodName, System.Collections.Generic.List args) => throw null; + public ServiceStack.Script.FileScripts File() => throw null; + public System.Delegate Function(string qualifiedMethodName) => throw null; + public System.Delegate Function(string qualifiedMethodName, System.Collections.Generic.List args) => throw null; + public string GetCurrentDirectory() => throw null; + public string GetCurrentDirectory(ServiceStack.Script.DirectoryScripts ds) => throw null; + public string[] GetDirectories(ServiceStack.Script.DirectoryScripts ds, string path) => throw null; + public string[] GetDirectories(string path) => throw null; + public string GetDirectoryRoot(ServiceStack.Script.DirectoryScripts ds, string path) => throw null; + public string GetDirectoryRoot(string path) => throw null; + public string[] GetFiles(ServiceStack.Script.DirectoryScripts ds, string path) => throw null; + public string[] GetFiles(string path) => throw null; + public string[] GetLogicalDrives() => throw null; + public string[] GetLogicalDrives(ServiceStack.Script.DirectoryScripts ds) => throw null; + public static ServiceStack.Script.ProtectedScripts Instance; + public ServiceStack.Script.IgnoreResult Move(ServiceStack.Script.IOScript os, string from, string to) => throw null; + public ServiceStack.Script.IgnoreResult Move(string from, string to) => throw null; + public ProtectedScripts() => throw null; + public System.Byte[] ReadAllBytes(ServiceStack.Script.FileScripts fs, string path) => throw null; + public System.Byte[] ReadAllBytes(string path) => throw null; + public string[] ReadAllLines(ServiceStack.Script.FileScripts fs, string path) => throw null; + public string[] ReadAllLines(string path) => throw null; + public string ReadAllText(ServiceStack.Script.FileScripts fs, string path) => throw null; + public string ReadAllText(string path) => throw null; + public ServiceStack.Script.IgnoreResult Replace(ServiceStack.Script.FileScripts fs, string from, string to, string backup) => throw null; + public ServiceStack.Script.IgnoreResult Replace(string from, string to, string backup) => throw null; + public ServiceStack.IO.IVirtualFile ResolveFile(ServiceStack.IO.IVirtualPathProvider virtualFiles, string fromVirtualPath, string virtualPath) => throw null; + public ServiceStack.IO.IVirtualFile ResolveFile(string filterName, ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; + public static string TypeNotFoundErrorMessage(string typeName) => throw null; + public ServiceStack.Script.IgnoreResult WriteAllBytes(ServiceStack.Script.FileScripts fs, string path, System.Byte[] bytes) => throw null; + public ServiceStack.Script.IgnoreResult WriteAllBytes(string path, System.Byte[] bytes) => throw null; + public ServiceStack.Script.IgnoreResult WriteAllLines(ServiceStack.Script.FileScripts fs, string path, string[] lines) => throw null; + public ServiceStack.Script.IgnoreResult WriteAllLines(string path, string[] lines) => throw null; + public ServiceStack.Script.IgnoreResult WriteAllText(ServiceStack.Script.FileScripts fs, string path, string text) => throw null; + public ServiceStack.Script.IgnoreResult WriteAllText(string path, string text) => throw null; + public System.Collections.Generic.IEnumerable allFiles() => throw null; + public System.Collections.Generic.IEnumerable allFiles(ServiceStack.IO.IVirtualPathProvider vfs) => throw null; + public System.Reflection.MemberInfo[] allMemberInfos(object o) => throw null; + public ServiceStack.Script.ScriptMethodInfo[] allMethodTypes(object o) => throw null; + public System.Collections.Generic.IEnumerable allRootDirectories() => throw null; + public System.Collections.Generic.IEnumerable allRootDirectories(ServiceStack.IO.IVirtualPathProvider vfs) => throw null; + public System.Collections.Generic.IEnumerable allRootFiles() => throw null; + public System.Collections.Generic.IEnumerable allRootFiles(ServiceStack.IO.IVirtualPathProvider vfs) => throw null; + public string appendToFile(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath, object contents) => throw null; + public string appendToFile(string virtualPath, object contents) => throw null; + public System.Type assertTypeOf(string name) => throw null; + public System.Byte[] bytesContent(ServiceStack.IO.IVirtualFile file) => throw null; + public object cacheClear(ServiceStack.Script.ScriptScopeContext scope, object cacheNames) => throw null; + public object call(object instance, string name) => throw null; + public object call(object instance, string name, System.Collections.Generic.List args) => throw null; + public string cat(ServiceStack.Script.ScriptScopeContext scope, string target) => throw null; + public string combinePath(ServiceStack.IO.IVirtualPathProvider vfs, string basePath, string relativePath) => throw null; + public string combinePath(string basePath, string relativePath) => throw null; + public string cp(ServiceStack.Script.ScriptScopeContext scope, string from, string to) => throw null; + public object createInstance(System.Type type) => throw null; + public object createInstance(System.Type type, System.Collections.Generic.List constructorArgs) => throw null; + public object @default(string typeName) => throw null; + public string deleteDirectory(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public string deleteDirectory(string virtualPath) => throw null; + public string deleteFile(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public string deleteFile(string virtualPath) => throw null; + public ServiceStack.IO.IVirtualDirectory dir(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public ServiceStack.IO.IVirtualDirectory dir(string virtualPath) => throw null; + public string dirDelete(string virtualPath) => throw null; + public System.Collections.Generic.IEnumerable dirDirectories(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath) => throw null; + public System.Collections.Generic.IEnumerable dirDirectories(string dirPath) => throw null; + public ServiceStack.IO.IVirtualDirectory dirDirectory(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath, string dirName) => throw null; + public ServiceStack.IO.IVirtualDirectory dirDirectory(string dirPath, string dirName) => throw null; + public bool dirExists(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public bool dirExists(string virtualPath) => throw null; + public ServiceStack.IO.IVirtualFile dirFile(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath, string fileName) => throw null; + public ServiceStack.IO.IVirtualFile dirFile(string dirPath, string fileName) => throw null; + public System.Collections.Generic.IEnumerable dirFiles(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath) => throw null; + public System.Collections.Generic.IEnumerable dirFiles(string dirPath) => throw null; + public System.Collections.Generic.IEnumerable dirFilesFind(string dirPath, string globPattern) => throw null; + public System.Collections.Generic.IEnumerable dirFindFiles(ServiceStack.IO.IVirtualDirectory dir, string globPattern) => throw null; + public System.Collections.Generic.IEnumerable dirFindFiles(ServiceStack.IO.IVirtualDirectory dir, string globPattern, int maxDepth) => throw null; + public string exePath(string exeName) => throw null; + public ServiceStack.Script.StopExecution exit(int exitCode) => throw null; + public ServiceStack.IO.IVirtualFile file(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public ServiceStack.IO.IVirtualFile file(string virtualPath) => throw null; + public string fileAppend(string virtualPath, object contents) => throw null; + public System.Byte[] fileBytesContent(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public System.Byte[] fileBytesContent(string virtualPath) => throw null; + public string fileContentType(ServiceStack.IO.IVirtualFile file) => throw null; + public object fileContents(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public object fileContents(object file) => throw null; + public System.Threading.Tasks.Task fileContentsWithCache(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; + public System.Threading.Tasks.Task fileContentsWithCache(ServiceStack.Script.ScriptScopeContext scope, string virtualPath, object options) => throw null; + public string fileDelete(string virtualPath) => throw null; + public bool fileExists(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public bool fileExists(string virtualPath) => throw null; + public string fileHash(ServiceStack.IO.IVirtualFile file) => throw null; + public string fileHash(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public string fileHash(string virtualPath) => throw null; + public bool fileIsBinary(ServiceStack.IO.IVirtualFile file) => throw null; + public string fileReadAll(string virtualPath) => throw null; + public System.Byte[] fileReadAllBytes(string virtualPath) => throw null; + public string fileTextContents(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public string fileTextContents(string virtualPath) => throw null; + public string fileWrite(string virtualPath, object contents) => throw null; + public System.Collections.Generic.IEnumerable filesFind(string globPattern) => throw null; + public System.Collections.Generic.IEnumerable findFiles(ServiceStack.IO.IVirtualPathProvider vfs, string globPattern) => throw null; + public System.Collections.Generic.IEnumerable findFiles(ServiceStack.IO.IVirtualPathProvider vfs, string globPattern, int maxDepth) => throw null; + public System.Collections.Generic.IEnumerable findFiles(string globPattern) => throw null; + public System.Collections.Generic.IEnumerable findFilesInDirectory(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath, string globPattern) => throw null; + public System.Collections.Generic.IEnumerable findFilesInDirectory(string dirPath, string globPattern) => throw null; + public System.Type getType(object instance) => throw null; + public System.Threading.Tasks.Task ifDebugIncludeScript(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; + public System.Threading.Tasks.Task includeFile(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; + public System.Threading.Tasks.Task includeFileWithCache(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; + public System.Threading.Tasks.Task includeFileWithCache(ServiceStack.Script.ScriptScopeContext scope, string virtualPath, object options) => throw null; + public System.Threading.Tasks.Task includeUrl(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; + public System.Threading.Tasks.Task includeUrl(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; + public System.Threading.Tasks.Task includeUrlWithCache(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; + public System.Threading.Tasks.Task includeUrlWithCache(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; + public ServiceStack.Script.IgnoreResult inspectVars(object vars) => throw null; + public object invalidateAllCaches(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.Script.ScriptMethodInfo[] methodTypes(object o) => throw null; + public System.Collections.Generic.List methods(object o) => throw null; + public string mkdir(ServiceStack.Script.ScriptScopeContext scope, string target) => throw null; + public string mv(ServiceStack.Script.ScriptScopeContext scope, string from, string to) => throw null; + public object @new(string typeName) => throw null; + public object @new(string typeName, System.Collections.Generic.List constructorArgs) => throw null; + public string osPaths(string path) => throw null; + public string proc(ServiceStack.Script.ScriptScopeContext scope, string fileName) => throw null; + public string proc(ServiceStack.Script.ScriptScopeContext scope, string fileName, System.Collections.Generic.Dictionary options) => throw null; + public object resolve(ServiceStack.Script.ScriptScopeContext scope, object type) => throw null; + public ServiceStack.IO.IVirtualFile resolveFile(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; + public string rm(ServiceStack.Script.ScriptScopeContext scope, string from, string to) => throw null; + public string rmdir(ServiceStack.Script.ScriptScopeContext scope, string target) => throw null; + public System.Collections.Generic.List scriptMethodNames(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.List scriptMethodSignatures(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.List scriptMethods(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object set(object instance, System.Collections.Generic.Dictionary args) => throw null; + public string sh(ServiceStack.Script.ScriptScopeContext scope, string arguments) => throw null; + public string sh(ServiceStack.Script.ScriptScopeContext scope, string arguments, System.Collections.Generic.Dictionary options) => throw null; + public string sha1(object target) => throw null; + public string sha256(object target) => throw null; + public string sha512(object target) => throw null; + public ServiceStack.Script.ScriptMethodInfo[] staticMethodTypes(object o) => throw null; + public System.Collections.Generic.List staticMethods(object o) => throw null; + public string textContents(ServiceStack.IO.IVirtualFile file) => throw null; + public string touch(ServiceStack.Script.ScriptScopeContext scope, string target) => throw null; + public string typeQualifiedName(System.Type type) => throw null; + public System.Type @typeof(string typeName) => throw null; + public System.Type typeofProgId(string name) => throw null; + public System.ReadOnlyMemory urlBytesContents(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; + public System.Threading.Tasks.Task urlContents(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; + public System.Threading.Tasks.Task urlContents(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; + public System.Threading.Tasks.Task urlContentsWithCache(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; + public System.Threading.Tasks.Task urlContentsWithCache(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; + public string urlTextContents(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; + public string urlTextContents(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; + public System.Collections.Generic.IEnumerable vfsAllFiles() => throw null; + public System.Collections.Generic.IEnumerable vfsAllRootDirectories() => throw null; + public System.Collections.Generic.IEnumerable vfsAllRootFiles() => throw null; + public string vfsCombinePath(string basePath, string relativePath) => throw null; + public ServiceStack.IO.FileSystemVirtualFiles vfsFileSystem(string dirPath) => throw null; + public ServiceStack.IO.GistVirtualFiles vfsGist(string gistId) => throw null; + public ServiceStack.IO.GistVirtualFiles vfsGist(string gistId, string accessToken) => throw null; + public ServiceStack.IO.MemoryVirtualFiles vfsMemory() => throw null; + public string writeFile(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath, object contents) => throw null; + public string writeFile(string virtualPath, object contents) => throw null; + public object writeFiles(ServiceStack.IO.IVirtualPathProvider vfs, System.Collections.Generic.Dictionary files) => throw null; + public object writeTextFiles(ServiceStack.IO.IVirtualPathProvider vfs, System.Collections.Generic.Dictionary textFiles) => throw null; + public string xcopy(ServiceStack.Script.ScriptScopeContext scope, string from, string to) => throw null; + } + + // Generated from `ServiceStack.Script.RawScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RawScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public override string Name { get => throw null; } + public RawScriptBlock() => throw null; + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.RawString` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RawString : ServiceStack.IRawString + { + public static ServiceStack.Script.RawString Empty; + public RawString(string value) => throw null; + public string ToRawString() => throw null; + } + + // Generated from `ServiceStack.Script.ReturnValue` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReturnValue + { + public System.Collections.Generic.Dictionary Args { get => throw null; } + public object Result { get => throw null; } + public ReturnValue(object result, System.Collections.Generic.Dictionary args) => throw null; + } + + // Generated from `ServiceStack.Script.ScopeVars` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScopeVars : System.Collections.Generic.Dictionary + { + public ScopeVars() => throw null; + public ScopeVars(System.Collections.Generic.IDictionary dictionary) => throw null; + public ScopeVars(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public ScopeVars(System.Collections.Generic.IEqualityComparer comparer) => throw null; + public ScopeVars(int capacity) => throw null; + public ScopeVars(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptABlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptABlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptABlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptBBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptBBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptBBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ScriptBlock : ServiceStack.Script.IConfigureScriptContext + { + protected int AssertWithinMaxQuota(int value) => throw null; + public virtual ServiceStack.Script.ScriptLanguage Body { get => throw null; } + protected bool CanExportScopeArgs(object element) => throw null; + public void Configure(ServiceStack.Script.ScriptContext context) => throw null; + public ServiceStack.Script.ScriptContext Context { get => throw null; set => throw null; } + protected virtual string GetCallTrace(ServiceStack.Script.PageBlockFragment fragment) => throw null; + protected virtual string GetElseCallTrace(ServiceStack.Script.PageElseBlock fragment) => throw null; + public abstract string Name { get; } + public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } + protected ScriptBlock() => throw null; + protected virtual System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsStatement[] body, string callTrace, System.Threading.CancellationToken cancel) => throw null; + public abstract System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token); + protected virtual System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment[] body, string callTrace, System.Threading.CancellationToken cancel) => throw null; + protected virtual System.Threading.Tasks.Task WriteBodyAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment fragment, System.Threading.CancellationToken token) => throw null; + protected virtual System.Threading.Tasks.Task WriteElseAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageElseBlock fragment, System.Threading.CancellationToken token) => throw null; + protected System.Threading.Tasks.Task WriteElseAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageElseBlock[] elseBlocks, System.Threading.CancellationToken cancel) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptButtonBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptButtonBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptButtonBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptCode` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptCode : ServiceStack.Script.ScriptLanguage + { + public static ServiceStack.Script.ScriptLanguage Language; + public override string Name { get => throw null; } + public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; + public override System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; + public override System.Threading.Tasks.Task WriteStatementAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsStatement statement, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptCodeUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ScriptCodeUtils + { + public static ServiceStack.Script.SharpPage CodeBlock(this ServiceStack.Script.ScriptContext context, string code) => throw null; + public static ServiceStack.Script.SharpPage CodeSharpPage(this ServiceStack.Script.ScriptContext context, string code) => throw null; + public static string EnsureReturn(string code) => throw null; + public static object EvaluateCode(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static T EvaluateCode(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Threading.Tasks.Task EvaluateCodeAsync(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Threading.Tasks.Task EvaluateCodeAsync(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static ServiceStack.Script.JsBlockStatement ParseCode(this ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory code) => throw null; + public static ServiceStack.Script.JsBlockStatement ParseCode(this ServiceStack.Script.ScriptContext context, string code) => throw null; + public static System.ReadOnlyMemory ParseCodeScriptBlock(this System.ReadOnlyMemory literal, ServiceStack.Script.ScriptContext context, out ServiceStack.Script.PageBlockFragment blockFragment) => throw null; + public static string RenderCode(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Threading.Tasks.Task RenderCodeAsync(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptConfig` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ScriptConfig + { + public static bool AllowAssignmentExpressions { get => throw null; set => throw null; } + public static bool AllowUnixPipeSyntax { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet CaptureAndEvaluateExceptionsToNull { get => throw null; set => throw null; } + public static System.Globalization.CultureInfo CreateCulture() => throw null; + public static System.Globalization.CultureInfo DefaultCulture { get => throw null; set => throw null; } + public static string DefaultDateFormat { get => throw null; set => throw null; } + public static string DefaultDateTimeFormat { get => throw null; set => throw null; } + public static string DefaultErrorClassName { get => throw null; set => throw null; } + public static System.TimeSpan DefaultFileCacheExpiry { get => throw null; set => throw null; } + public static string DefaultIndent { get => throw null; set => throw null; } + public static string DefaultJsConfig { get => throw null; set => throw null; } + public static string DefaultNewLine { get => throw null; set => throw null; } + public static System.StringComparison DefaultStringComparison { get => throw null; set => throw null; } + public static string DefaultTableClassName { get => throw null; set => throw null; } + public static string DefaultTimeFormat { get => throw null; set => throw null; } + public static System.TimeSpan DefaultUrlCacheExpiry { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet FatalExceptions { get => throw null; set => throw null; } + public static ServiceStack.Script.ParseRealNumber ParseRealNumber; + } + + // Generated from `ServiceStack.Script.ScriptConstants` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ScriptConstants + { + public const string AssetsBase = default; + public const string AssignError = default; + public const string BaseUrl = default; + public const string CatchError = default; + public const string Comparer = default; + public const string Debug = default; + public const string DefaultCulture = default; + public const string DefaultDateFormat = default; + public const string DefaultDateTimeFormat = default; + public const string DefaultErrorClassName = default; + public const string DefaultFileCacheExpiry = default; + public const string DefaultIndent = default; + public const string DefaultJsConfig = default; + public const string DefaultNewLine = default; + public const string DefaultStringComparison = default; + public const string DefaultTableClassName = default; + public const string DefaultTimeFormat = default; + public const string DefaultUrlCacheExpiry = default; + public const string Dto = default; + public static ServiceStack.IRawString EmptyRawString { get => throw null; } + public const string ErrorCode = default; + public const string ErrorMessage = default; + public static ServiceStack.IRawString FalseRawString { get => throw null; } + public const string Field = default; + public const string Format = default; + public const string Global = default; + public const string HtmlEncode = default; + public const string IfErrorReturn = default; + public const string Index = default; + public const string It = default; + public const string Map = default; + public const string Model = default; + public const string Page = default; + public const string Partial = default; + public const string PartialArg = default; + public const string PathArgs = default; + public const string PathBase = default; + public const string PathInfo = default; + public const string Request = default; + public const string Return = default; + public const string TempFilePath = default; + public static ServiceStack.IRawString TrueRawString { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptContext` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptContext : System.IDisposable + { + public bool AllowScriptingOfAllTypes { get => throw null; set => throw null; } + public ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Args { get => throw null; } + public ServiceStack.Script.ProtectedScripts AssertProtectedMethods() => throw null; + public string AssignExceptionsTo { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary> AssignExpressionCache { get => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary Cache { get => throw null; } + public ServiceStack.IO.IVirtualFiles CacheFiles { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary, object> CacheMemory { get => throw null; } + public bool CheckForModifiedPages { get => throw null; set => throw null; } + public System.TimeSpan? CheckForModifiedPagesAfter { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary> CodePageInvokers { get => throw null; } + public System.Collections.Generic.Dictionary CodePages { get => throw null; } + public ServiceStack.IContainer Container { get => throw null; set => throw null; } + public bool DebugMode { get => throw null; set => throw null; } + public string DefaultLayoutPage { get => throw null; set => throw null; } + public ServiceStack.Script.DefaultScripts DefaultMethods { get => throw null; } + public ServiceStack.Script.ScriptLanguage DefaultScriptLanguage { get => throw null; set => throw null; } + public void Dispose() => throw null; + public ServiceStack.IO.InMemoryVirtualFile EmptyFile { get => throw null; } + public ServiceStack.Script.SharpPage EmptyPage { get => throw null; } + public System.Collections.Generic.HashSet ExcludeFiltersNamed { get => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary> ExpiringCache { get => throw null; } + public System.Collections.Generic.HashSet FileFilterNames { get => throw null; } + public System.Collections.Generic.Dictionary>> FilterTransformers { get => throw null; set => throw null; } + public System.Action GetAssignExpression(System.Type targetType, System.ReadOnlyMemory expression) => throw null; + public ServiceStack.Script.ScriptBlock GetBlock(string name) => throw null; + public ServiceStack.Script.SharpCodePage GetCodePage(string virtualPath) => throw null; + public ServiceStack.Script.PageFormat GetFormat(string extension) => throw null; + public ServiceStack.Script.SharpPage GetPage(string virtualPath) => throw null; + public void GetPage(string fromVirtualPath, string virtualPath, out ServiceStack.Script.SharpPage page, out ServiceStack.Script.SharpCodePage codePage) => throw null; + public string GetPathMapping(string prefix, string key) => throw null; + public ServiceStack.Script.ScriptLanguage GetScriptLanguage(string name) => throw null; + public bool HasInit { get => throw null; set => throw null; } + public ServiceStack.Script.HtmlScripts HtmlMethods { get => throw null; } + public string IndexPage { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptContext Init() => throw null; + public System.Collections.Generic.List InsertPlugins { get => throw null; } + public System.Collections.Generic.List InsertScriptBlocks { get => throw null; } + public System.Collections.Generic.List InsertScriptMethods { get => throw null; } + public System.DateTime? InvalidateCachesBefore { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary, ServiceStack.Script.JsToken> JsTokenCache { get => throw null; } + public ServiceStack.Logging.ILog Log { get => throw null; } + public System.Int64 MaxEvaluations { get => throw null; set => throw null; } + public int MaxQuota { get => throw null; set => throw null; } + public int MaxStackDepth { get => throw null; set => throw null; } + public System.Action OnAfterPlugins { get => throw null; set => throw null; } + public System.Action OnRenderException { get => throw null; set => throw null; } + public System.Func> OnUnhandledExpression { get => throw null; set => throw null; } + public ServiceStack.Script.SharpPage OneTimePage(string contents, string ext = default(string)) => throw null; + public System.Collections.Generic.HashSet OnlyEvaluateFiltersWhenSkippingPageFilterExecution { get => throw null; set => throw null; } + public System.Collections.Generic.List PageFormats { get => throw null; set => throw null; } + public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ParseAsLanguage { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary PathMappings { get => throw null; } + public System.Collections.Generic.List Plugins { get => throw null; } + public System.Collections.Generic.List> Preprocessors { get => throw null; } + public ServiceStack.Script.ProtectedScripts ProtectedMethods { get => throw null; } + public ServiceStack.Script.ScriptContext RemoveBlocks(System.Predicate match) => throw null; + public ServiceStack.Script.ScriptContext RemoveFilters(System.Predicate match) => throw null; + public System.Collections.Generic.HashSet RemoveNewLineAfterFiltersNamed { get => throw null; set => throw null; } + public void RemovePathMapping(string prefix, string mapPath) => throw null; + public ServiceStack.Script.ScriptContext RemovePlugins(System.Predicate match) => throw null; + public bool RenderExpressionExceptions { get => throw null; set => throw null; } + public System.Collections.Generic.List ScanAssemblies { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptContext ScanType(System.Type type) => throw null; + public System.Collections.Generic.List ScanTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List ScriptAssemblies { get => throw null; set => throw null; } + public System.Collections.Generic.List ScriptBlocks { get => throw null; } + public ScriptContext() => throw null; + public System.Collections.Generic.List ScriptLanguages { get => throw null; } + public System.Collections.Generic.List ScriptMethods { get => throw null; } + public System.Collections.Generic.List ScriptNamespaces { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ScriptTypeNameMap { get => throw null; } + public System.Collections.Generic.Dictionary ScriptTypeQualifiedNameMap { get => throw null; } + public System.Collections.Generic.List ScriptTypes { get => throw null; set => throw null; } + public string SetPathMapping(string prefix, string mapPath, string toPath) => throw null; + public bool SkipExecutingFiltersIfError { get => throw null; set => throw null; } + public bool TryGetPage(string fromVirtualPath, string virtualPath, out ServiceStack.Script.SharpPage page, out ServiceStack.Script.SharpCodePage codePage) => throw null; + public ServiceStack.IO.IVirtualPathProvider VirtualFiles { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptContextUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ScriptContextUtils + { + public static ServiceStack.Script.ScriptScopeContext CreateScope(this ServiceStack.Script.ScriptContext context, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary), ServiceStack.Script.ScriptMethods functions = default(ServiceStack.Script.ScriptMethods), ServiceStack.Script.ScriptBlock blocks = default(ServiceStack.Script.ScriptBlock)) => throw null; + public static string ErrorNoReturn; + public static bool EvaluateResult(this ServiceStack.Script.PageResult pageResult, out object returnValue) => throw null; + public static System.Threading.Tasks.Task> EvaluateResultAsync(this ServiceStack.Script.PageResult pageResult) => throw null; + public static System.Exception HandleException(System.Exception e, ServiceStack.Script.PageResult pageResult) => throw null; + public static System.Threading.Tasks.Task RenderAsync(this ServiceStack.Script.PageResult pageResult, System.IO.Stream stream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string RenderScript(this ServiceStack.Script.PageResult pageResult) => throw null; + public static System.Threading.Tasks.Task RenderScriptAsync(this ServiceStack.Script.PageResult pageResult, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void RenderToStream(this ServiceStack.Script.PageResult pageResult, System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task RenderToStreamAsync(this ServiceStack.Script.PageResult pageResult, System.IO.Stream stream) => throw null; + public static bool ShouldRethrow(System.Exception e) => throw null; + public static void ThrowNoReturn() => throw null; + } + + // Generated from `ServiceStack.Script.ScriptDdBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptDdBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptDdBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptDivBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptDivBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptDivBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptDlBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptDlBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptDlBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptDtBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptDtBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptDtBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptEmBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptEmBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptEmBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptException` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptException : System.Exception + { + public ServiceStack.Script.PageResult PageResult { get => throw null; } + public string PageStackTrace { get => throw null; } + public ScriptException(ServiceStack.Script.PageResult pageResult) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptExtensions` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ScriptExtensions + { + public static string AsString(this object str) => throw null; + public static object InStopFilter(this System.Exception ex, ServiceStack.Script.ScriptScopeContext scope, object options) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptFormBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptFormBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptFormBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptHtmlBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ScriptHtmlBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public override string Name { get => throw null; } + protected ScriptHtmlBlock() => throw null; + public virtual string Suffix { get => throw null; } + public abstract string Tag { get; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptIBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptIBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptIBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptImgBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptImgBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptImgBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptInputBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptInputBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptInputBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptLanguage` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ScriptLanguage + { + public virtual string LineComment { get => throw null; } + public abstract string Name { get; } + public System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body) => throw null; + public abstract System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers); + public virtual ServiceStack.Script.PageBlockFragment ParseVerbatimBlock(string blockName, System.ReadOnlyMemory argument, System.ReadOnlyMemory body) => throw null; + protected ScriptLanguage() => throw null; + public static object UnwrapValue(object value) => throw null; + public static ServiceStack.Script.ScriptLanguage Verbatim { get => throw null; } + public virtual System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; + public virtual System.Threading.Tasks.Task WriteStatementAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsStatement statement, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptLiBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptLiBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptLiBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptLinkBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptLinkBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptLinkBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptLisp` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptLisp : ServiceStack.Script.ScriptLanguage, ServiceStack.Script.IConfigureScriptContext + { + public void Configure(ServiceStack.Script.ScriptContext context) => throw null; + public static ServiceStack.Script.ScriptLanguage Language; + public override string LineComment { get => throw null; } + public override string Name { get => throw null; } + public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; + public override System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; + public override System.Threading.Tasks.Task WriteStatementAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsStatement statement, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptLispUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ScriptLispUtils + { + public static string EnsureReturn(string lisp) => throw null; + public static object EvaluateLisp(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static T EvaluateLisp(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Threading.Tasks.Task EvaluateLispAsync(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Threading.Tasks.Task EvaluateLispAsync(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static ServiceStack.Script.Lisp.Interpreter GetLispInterpreter(this ServiceStack.Script.PageResult pageResult, ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static ServiceStack.Script.Lisp.Interpreter GetLispInterpreter(this ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static ServiceStack.Script.SharpPage LispSharpPage(this ServiceStack.Script.ScriptContext context, string lisp) => throw null; + public static ServiceStack.Script.LispStatements ParseLisp(this ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory lisp) => throw null; + public static ServiceStack.Script.LispStatements ParseLisp(this ServiceStack.Script.ScriptContext context, string lisp) => throw null; + public static string RenderLisp(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Threading.Tasks.Task RenderLispAsync(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptMetaBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptMetaBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptMetaBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptMethodInfo` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptMethodInfo + { + public string Body { get => throw null; } + public static ServiceStack.Script.ScriptMethodInfo Create(System.Reflection.MethodInfo mi) => throw null; + public string FirstParam { get => throw null; } + public string FirstParamType { get => throw null; } + public System.Reflection.MethodInfo GetMethodInfo() => throw null; + public static System.Collections.Generic.List GetScriptMethods(System.Type scriptMethodsType, System.Func where = default(System.Func)) => throw null; + public string Name { get => throw null; } + public int ParamCount { get => throw null; } + public string[] ParamNames { get => throw null; } + public string[] ParamTypes { get => throw null; } + public string[] RemainingParams { get => throw null; } + public string Return { get => throw null; } + public string ReturnType { get => throw null; } + public ScriptMethodInfo(System.Reflection.MethodInfo methodInfo, System.Reflection.ParameterInfo[] @params) => throw null; + public string ScriptSignature { get => throw null; } + public string Signature { get => throw null; } + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.Script.ScriptMethods` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptMethods + { + public ServiceStack.Script.ScriptContext Context { get => throw null; set => throw null; } + public ServiceStack.MethodInvoker GetInvoker(string name, int argsCount, ServiceStack.Script.InvokerType type) => throw null; + public System.Collections.Concurrent.ConcurrentDictionary InvokerCache { get => throw null; } + public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } + public System.Collections.Generic.List QueryFilters(string filterName) => throw null; + public ScriptMethods() => throw null; + } + + // Generated from `ServiceStack.Script.ScriptOlBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptOlBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptOlBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptOptionBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptOptionBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptOptionBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptPBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptPBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptPBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptPreprocessors` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ScriptPreprocessors + { + public static string TransformCodeBlocks(string script) => throw null; + public static string TransformStatementBody(string body) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptScopeContext` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct ScriptScopeContext + { + public ServiceStack.Script.ScriptScopeContext Clone() => throw null; + public ServiceStack.Script.SharpCodePage CodePage { get => throw null; } + public ServiceStack.Script.ScriptContext Context { get => throw null; } + public System.IO.Stream OutputStream { get => throw null; } + public ServiceStack.Script.SharpPage Page { get => throw null; } + public ServiceStack.Script.PageResult PageResult { get => throw null; } + public System.Collections.Generic.Dictionary ScopedParams { get => throw null; set => throw null; } + // Stub generator skipped constructor + public ScriptScopeContext(ServiceStack.Script.PageResult pageResult, System.IO.Stream outputStream, System.Collections.Generic.Dictionary scopedParams) => throw null; + public ScriptScopeContext(ServiceStack.Script.ScriptContext context, System.Collections.Generic.Dictionary scopedParams) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptScopeContextUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ScriptScopeContextUtils + { + public static ServiceStack.Script.ScriptScopeContext CreateScopedContext(this ServiceStack.Script.ScriptScopeContext scope, string template, System.Collections.Generic.Dictionary scopeParams = default(System.Collections.Generic.Dictionary), bool cachePage = default(bool)) => throw null; + public static object EvaluateExpression(this ServiceStack.Script.ScriptScopeContext scope, string expr) => throw null; + public static object GetArgument(this ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public static object GetValue(this ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public static void InvokeAssignExpression(this ServiceStack.Script.ScriptScopeContext scope, string assignExpr, object target, object value) => throw null; + public static ServiceStack.Script.StopExecution ReturnValue(this ServiceStack.Script.ScriptScopeContext scope, object returnValue, System.Collections.Generic.Dictionary returnArgs = default(System.Collections.Generic.Dictionary)) => throw null; + public static ServiceStack.Script.ScriptScopeContext ScopeWith(this ServiceStack.Script.ScriptScopeContext parentContext, System.Collections.Generic.Dictionary scopedParams = default(System.Collections.Generic.Dictionary), System.IO.Stream outputStream = default(System.IO.Stream)) => throw null; + public static ServiceStack.Script.ScriptScopeContext ScopeWithParams(this ServiceStack.Script.ScriptScopeContext parentContext, System.Collections.Generic.Dictionary scopedParams) => throw null; + public static ServiceStack.Script.ScriptScopeContext ScopeWithStream(this ServiceStack.Script.ScriptScopeContext scope, System.IO.Stream stream) => throw null; + public static bool TryGetMethod(this ServiceStack.Script.ScriptScopeContext scope, string name, int fnArgValuesCount, out System.Delegate fn, out ServiceStack.Script.ScriptMethods scriptMethod, out bool requiresScope) => throw null; + public static bool TryGetValue(this ServiceStack.Script.ScriptScopeContext scope, string name, out object value) => throw null; + public static System.Threading.Tasks.Task WritePageAsync(this ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static System.Threading.Tasks.Task WritePageAsync(this ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.SharpPage page, ServiceStack.Script.SharpCodePage codePage, System.Collections.Generic.Dictionary pageParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptScriptBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptScriptBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptSelectBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptSelectBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptSelectBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptSpanBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptSpanBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptSpanBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptStrongBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptStrongBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptStrongBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptStyleBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptStyleBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptStyleBlock() => throw null; + public override string Suffix { get => throw null; } + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptTBodyBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptTBodyBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptTBodyBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptTFootBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptTFootBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptTFootBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptTHeadBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptTHeadBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptTHeadBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptTableBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptTableBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptTableBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptTdBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptTdBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptTdBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptTemplate` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptTemplate : ServiceStack.Script.ScriptLanguage + { + public static ServiceStack.Script.ScriptLanguage Language; + public override string Name { get => throw null; } + public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; + public override System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptTemplateUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ScriptTemplateUtils + { + public static System.Collections.Concurrent.ConcurrentDictionary> BinderCache { get => throw null; } + public static System.Func Compile(System.Type type, System.ReadOnlyMemory expr) => throw null; + public static System.Action CompileAssign(System.Type type, System.ReadOnlyMemory expr) => throw null; + public static System.Reflection.MethodInfo CreateConvertMethod(System.Type toType) => throw null; + public static object Evaluate(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static T Evaluate(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Threading.Tasks.Task EvaluateAsync(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Threading.Tasks.Task EvaluateAsync(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static object EvaluateBinding(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsToken token) => throw null; + public static T EvaluateBindingAs(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsToken token) => throw null; + public static string EvaluateScript(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static string EvaluateScript(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args, out ServiceStack.Script.ScriptException error) => throw null; + public static string EvaluateScript(this ServiceStack.Script.ScriptContext context, string script, out ServiceStack.Script.ScriptException error) => throw null; + public static System.Threading.Tasks.Task EvaluateScriptAsync(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Func GetMemberExpression(System.Type targetType, System.ReadOnlyMemory expression) => throw null; + public static bool IsWhiteSpace(this System.Char c) => throw null; + public static System.Collections.Generic.List ParseScript(this ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory text) => throw null; + public static System.Collections.Generic.List ParseTemplate(this ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory text) => throw null; + public static System.Collections.Generic.List ParseTemplate(string text) => throw null; + public static System.ReadOnlyMemory ParseTemplateBody(this System.ReadOnlyMemory literal, System.ReadOnlyMemory blockName, out System.ReadOnlyMemory body) => throw null; + public static System.ReadOnlyMemory ParseTemplateElseBlock(this System.ReadOnlyMemory literal, string blockName, out System.ReadOnlyMemory elseArgument, out System.ReadOnlyMemory elseBody) => throw null; + public static System.ReadOnlyMemory ParseTemplateScriptBlock(this System.ReadOnlyMemory literal, ServiceStack.Script.ScriptContext context, out ServiceStack.Script.PageBlockFragment blockFragment) => throw null; + public static string RenderScript(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static string RenderScript(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args, out ServiceStack.Script.ScriptException error) => throw null; + public static string RenderScript(this ServiceStack.Script.ScriptContext context, string script, out ServiceStack.Script.ScriptException error) => throw null; + public static System.Threading.Tasks.Task RenderScriptAsync(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static ServiceStack.Script.SharpPage SharpScriptPage(this ServiceStack.Script.ScriptContext context, string code) => throw null; + public static ServiceStack.Script.SharpPage TemplateSharpPage(this ServiceStack.Script.ScriptContext context, string code) => throw null; + public static ServiceStack.IRawString ToRawString(this string value) => throw null; + } + + // Generated from `ServiceStack.Script.ScriptTextAreaBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptTextAreaBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptTextAreaBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptTrBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptTrBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptTrBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptUlBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptUlBlock : ServiceStack.Script.ScriptHtmlBlock + { + public ScriptUlBlock() => throw null; + public override string Tag { get => throw null; } + } + + // Generated from `ServiceStack.Script.ScriptVerbatim` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptVerbatim : ServiceStack.Script.ScriptLanguage + { + public static ServiceStack.Script.ScriptLanguage Language; + public override string Name { get => throw null; } + public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; + } + + // Generated from `ServiceStack.Script.SharpCodePage` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class SharpCodePage : System.IDisposable + { + public System.Collections.Generic.Dictionary Args { get => throw null; } + public ServiceStack.Script.ScriptContext Context { get => throw null; set => throw null; } + public virtual void Dispose() => throw null; + public ServiceStack.Script.PageFormat Format { get => throw null; set => throw null; } + public bool HasInit { get => throw null; set => throw null; } + public virtual ServiceStack.Script.SharpCodePage Init() => throw null; + public string Layout { get => throw null; set => throw null; } + public ServiceStack.Script.SharpPage LayoutPage { get => throw null; set => throw null; } + public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptScopeContext Scope { get => throw null; set => throw null; } + protected SharpCodePage(string layout = default(string)) => throw null; + public string VirtualPath { get => throw null; set => throw null; } + public System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope) => throw null; + } + + // Generated from `ServiceStack.Script.SharpPage` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharpPage + { + public System.Collections.Generic.Dictionary Args { get => throw null; set => throw null; } + public System.ReadOnlyMemory BodyContents { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptContext Context { get => throw null; } + public ServiceStack.IO.IVirtualFile File { get => throw null; } + public System.ReadOnlyMemory FileContents { get => throw null; set => throw null; } + public ServiceStack.Script.PageFormat Format { get => throw null; } + public bool HasInit { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task Init() => throw null; + public bool IsImmutable { get => throw null; set => throw null; } + public bool IsLayout { get => throw null; set => throw null; } + public bool IsTempFile { get => throw null; } + public System.DateTime LastModified { get => throw null; set => throw null; } + public System.DateTime LastModifiedCheck { get => throw null; set => throw null; } + public ServiceStack.Script.SharpPage LayoutPage { get => throw null; set => throw null; } + public System.Threading.Tasks.Task Load() => throw null; + public ServiceStack.Script.PageFragment[] PageFragments { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptLanguage ScriptLanguage { get => throw null; set => throw null; } + public SharpPage(ServiceStack.Script.ScriptContext context, ServiceStack.IO.IVirtualFile file, ServiceStack.Script.PageFormat format = default(ServiceStack.Script.PageFormat)) => throw null; + public SharpPage(ServiceStack.Script.ScriptContext context, ServiceStack.Script.PageFragment[] body) => throw null; + public string VirtualPath { get => throw null; } + } + + // Generated from `ServiceStack.Script.SharpPages` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharpPages : ServiceStack.Script.ISharpPages + { + public virtual ServiceStack.Script.SharpPage AddPage(string virtualPath, ServiceStack.IO.IVirtualFile file) => throw null; + public ServiceStack.Script.ScriptContext Context { get => throw null; } + public ServiceStack.Script.SharpCodePage GetCodePage(string virtualPath) => throw null; + public System.DateTime GetLastModified(ServiceStack.Script.SharpPage page) => throw null; + public System.DateTime GetLastModifiedPage(ServiceStack.Script.SharpPage page) => throw null; + public virtual ServiceStack.Script.SharpPage GetPage(string pathInfo) => throw null; + public static string Layout; + public virtual ServiceStack.Script.SharpPage OneTimePage(string contents, string ext) => throw null; + public ServiceStack.Script.SharpPage OneTimePage(string contents, string ext, System.Action init) => throw null; + public virtual ServiceStack.Script.SharpPage ResolveLayoutPage(ServiceStack.Script.SharpCodePage page, string layout) => throw null; + public virtual ServiceStack.Script.SharpPage ResolveLayoutPage(ServiceStack.Script.SharpPage page, string layout) => throw null; + public SharpPages(ServiceStack.Script.ScriptContext context) => throw null; + public virtual ServiceStack.Script.SharpPage TryGetPage(string path) => throw null; + } + + // Generated from `ServiceStack.Script.SharpPartialPage` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharpPartialPage : ServiceStack.Script.SharpPage + { + public override System.Threading.Tasks.Task Init() => throw null; + public SharpPartialPage(ServiceStack.Script.ScriptContext context, string name, System.Collections.Generic.IEnumerable body, string format, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) : base(default(ServiceStack.Script.ScriptContext), default(ServiceStack.Script.PageFragment[])) => throw null; + } + + // Generated from `ServiceStack.Script.SharpScript` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharpScript : ServiceStack.Script.ScriptLanguage + { + public static ServiceStack.Script.ScriptLanguage Language; + public override string Name { get => throw null; } + public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; + } + + // Generated from `ServiceStack.Script.StopExecution` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StopExecution : ServiceStack.Script.IResultInstruction + { + public static ServiceStack.Script.StopExecution Value; + } + + // Generated from `ServiceStack.Script.StopFilterExecutionException` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StopFilterExecutionException : ServiceStack.StopExecutionException, ServiceStack.Model.IResponseStatusConvertible + { + public object Options { get => throw null; } + public ServiceStack.Script.ScriptScopeContext Scope { get => throw null; } + public StopFilterExecutionException(ServiceStack.Script.ScriptScopeContext scope, object options, System.Exception innerException) => throw null; + public ServiceStack.ResponseStatus ToResponseStatus() => throw null; + } + + // Generated from `ServiceStack.Script.SyntaxErrorException` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SyntaxErrorException : System.ArgumentException + { + public SyntaxErrorException() => throw null; + public SyntaxErrorException(string message) => throw null; + public SyntaxErrorException(string message, System.Exception innerException) => throw null; + } + + // Generated from `ServiceStack.Script.TemplateFilterUtils` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TemplateFilterUtils + { + public static ServiceStack.Script.ScriptScopeContext AddItemToScope(this ServiceStack.Script.ScriptScopeContext scope, string itemBinding, object item) => throw null; + public static ServiceStack.Script.ScriptScopeContext AddItemToScope(this ServiceStack.Script.ScriptScopeContext scope, string itemBinding, object item, int index) => throw null; + public static System.Collections.Generic.IEnumerable AssertEnumerable(this object items, string filterName) => throw null; + public static string AssertExpression(this ServiceStack.Script.ScriptScopeContext scope, string filterName, object expression) => throw null; + public static ServiceStack.Script.JsToken AssertExpression(this ServiceStack.Script.ScriptScopeContext scope, string filterName, object expression, object scopeOptions, out string itemBinding) => throw null; + public static object AssertNoCircularDeps(this object value) => throw null; + public static System.Collections.Generic.Dictionary AssertOptions(this ServiceStack.Script.ScriptScopeContext scope, string filterName, object scopedParams) => throw null; + public static System.Collections.Generic.Dictionary AssertOptions(this object scopedParams, string filterName) => throw null; + public static ServiceStack.Script.ScriptContext CreateNewContext(this ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; + public static System.Collections.Generic.Dictionary GetParamsWithItemBinding(this ServiceStack.Script.ScriptScopeContext scope, string filterName, ServiceStack.Script.SharpPage page, object scopedParams, out string itemBinding) => throw null; + public static System.Collections.Generic.Dictionary GetParamsWithItemBinding(this ServiceStack.Script.ScriptScopeContext scope, string filterName, object scopedParams, out string itemBinding) => throw null; + public static System.Collections.Generic.Dictionary GetParamsWithItemBindingOnly(this ServiceStack.Script.ScriptScopeContext scope, string filterName, ServiceStack.Script.SharpPage page, object scopedParams, out string itemBinding) => throw null; + public static object GetValueOrEvaluateBinding(this ServiceStack.Script.ScriptScopeContext scope, object valueOrBinding, System.Type returnType) => throw null; + public static T GetValueOrEvaluateBinding(this ServiceStack.Script.ScriptScopeContext scope, object valueOrBinding) => throw null; + public static bool TryGetPage(this ServiceStack.Script.ScriptScopeContext scope, string virtualPath, out ServiceStack.Script.SharpPage page, out ServiceStack.Script.SharpCodePage codePage) => throw null; + } + + // Generated from `ServiceStack.Script.WhileScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class WhileScriptBlock : ServiceStack.Script.ScriptBlock + { + public override string Name { get => throw null; } + public WhileScriptBlock() => throw null; + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken ct) => throw null; + } + + // Generated from `ServiceStack.Script.WithScriptBlock` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class WithScriptBlock : ServiceStack.Script.ScriptBlock + { + public override string Name { get => throw null; } + public WithScriptBlock() => throw null; + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + } + namespace Support + { + // Generated from `ServiceStack.Support.ActionExecHandler` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ActionExecHandler : ServiceStack.Commands.ICommand, ServiceStack.Commands.ICommandExec + { + public ActionExecHandler(System.Action action, System.Threading.AutoResetEvent waitHandle) => throw null; + public bool Execute() => throw null; + } + + // Generated from `ServiceStack.Support.AdapterBase` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AdapterBase + { + protected AdapterBase() => throw null; + protected void Execute(System.Action action) => throw null; + protected T Execute(System.Func action) => throw null; + protected System.Threading.Tasks.Task ExecuteAsync(System.Func action, System.Threading.CancellationToken token) => throw null; + protected System.Threading.Tasks.Task ExecuteAsync(System.Func action) => throw null; + protected System.Threading.Tasks.Task ExecuteAsync(System.Func> action, System.Threading.CancellationToken token) => throw null; + protected System.Threading.Tasks.Task ExecuteAsync(System.Func> action) => throw null; + protected abstract ServiceStack.Logging.ILog Log { get; } + } + + // Generated from `ServiceStack.Support.CommandExecsHandler` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CommandExecsHandler : ServiceStack.Commands.ICommand, ServiceStack.Commands.ICommandExec + { + public CommandExecsHandler(ServiceStack.Commands.ICommandExec command, System.Threading.AutoResetEvent waitHandle) => throw null; + public bool Execute() => throw null; + } + + // Generated from `ServiceStack.Support.CommandResultsHandler<>` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CommandResultsHandler : ServiceStack.Commands.ICommand, ServiceStack.Commands.ICommandExec + { + public CommandResultsHandler(System.Collections.Generic.List results, ServiceStack.Commands.ICommandList command, System.Threading.AutoResetEvent waitHandle) => throw null; + public bool Execute() => throw null; + } + + // Generated from `ServiceStack.Support.InMemoryLog` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryLog : ServiceStack.Logging.ILog + { + public System.Text.StringBuilder CombinedLog { get => throw null; set => throw null; } + public void Debug(object message) => throw null; + public void Debug(object message, System.Exception exception) => throw null; + public System.Collections.Generic.List DebugEntries { get => throw null; set => throw null; } + public System.Collections.Generic.List DebugExceptions { get => throw null; set => 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 System.Collections.Generic.List ErrorEntries { get => throw null; set => throw null; } + public System.Collections.Generic.List ErrorExceptions { get => throw null; set => 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 System.Collections.Generic.List FatalEntries { get => throw null; set => throw null; } + public System.Collections.Generic.List FatalExceptions { get => throw null; set => throw null; } + public void FatalFormat(string format, params object[] args) => throw null; + public bool HasExceptions { get => throw null; } + public InMemoryLog(string loggerName) => throw null; + public void Info(object message) => throw null; + public void Info(object message, System.Exception exception) => throw null; + public System.Collections.Generic.List InfoEntries { get => throw null; set => throw null; } + public System.Collections.Generic.List InfoExceptions { get => throw null; set => throw null; } + public void InfoFormat(string format, params object[] args) => throw null; + public bool IsDebugEnabled { get => throw null; set => throw null; } + public string LoggerName { get => throw null; set => throw null; } + public void Warn(object message) => throw null; + public void Warn(object message, System.Exception exception) => throw null; + public System.Collections.Generic.List WarnEntries { get => throw null; set => throw null; } + public System.Collections.Generic.List WarnExceptions { get => throw null; set => throw null; } + public void WarnFormat(string format, params object[] args) => throw null; + } + + // Generated from `ServiceStack.Support.InMemoryLogFactory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryLogFactory : ServiceStack.Logging.ILogFactory + { + public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; + public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; + public InMemoryLogFactory(bool debugEnabled = default(bool)) => throw null; + } + + } + namespace VirtualPath + { + // Generated from `ServiceStack.VirtualPath.AbstractVirtualDirectoryBase` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AbstractVirtualDirectoryBase : ServiceStack.IO.IVirtualDirectory, ServiceStack.IO.IVirtualNode, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected AbstractVirtualDirectoryBase(ServiceStack.IO.IVirtualPathProvider owningProvider) => throw null; + protected AbstractVirtualDirectoryBase(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory parentDirectory) => throw null; + public abstract System.Collections.Generic.IEnumerable Directories { get; } + public ServiceStack.IO.IVirtualDirectory Directory { get => throw null; } + public override bool Equals(object obj) => throw null; + public abstract System.Collections.Generic.IEnumerable Files { get; } + public virtual System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; + public virtual ServiceStack.IO.IVirtualDirectory GetDirectory(System.Collections.Generic.Stack virtualPath) => throw null; + public virtual ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; + protected abstract ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName); + public abstract System.Collections.Generic.IEnumerator GetEnumerator(); + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public virtual ServiceStack.IO.IVirtualFile GetFile(System.Collections.Generic.Stack virtualPath) => throw null; + public virtual ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + protected abstract ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName); + public override int GetHashCode() => throw null; + protected abstract System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern); + protected virtual string GetPathToRoot(string separator, System.Func pathSel) => throw null; + protected virtual string GetRealPathToRoot() => throw null; + protected virtual string GetVirtualPathToRoot() => throw null; + public virtual bool IsDirectory { get => throw null; } + public virtual bool IsRoot { get => throw null; } + public abstract System.DateTime LastModified { get; } + public abstract string Name { get; } + public ServiceStack.IO.IVirtualDirectory ParentDirectory { get => throw null; set => throw null; } + public virtual string RealPath { get => throw null; } + public override string ToString() => throw null; + public virtual string VirtualPath { get => throw null; } + protected ServiceStack.IO.IVirtualPathProvider VirtualPathProvider; + } + + // Generated from `ServiceStack.VirtualPath.AbstractVirtualFileBase` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AbstractVirtualFileBase : ServiceStack.IO.IVirtualFile, ServiceStack.IO.IVirtualNode + { + protected AbstractVirtualFileBase(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory directory) => throw null; + public ServiceStack.IO.IVirtualDirectory Directory { get => throw null; set => throw null; } + public override bool Equals(object obj) => throw null; + public virtual string Extension { get => throw null; } + public virtual object GetContents() => throw null; + public virtual string GetFileHash() => throw null; + public override int GetHashCode() => throw null; + protected virtual string GetPathToRoot(string separator, System.Func pathSel) => throw null; + protected virtual string GetRealPathToRoot() => throw null; + protected virtual string GetVirtualPathToRoot() => throw null; + public virtual bool IsDirectory { get => throw null; } + public abstract System.DateTime LastModified { get; } + public abstract System.Int64 Length { get; } + public abstract string Name { get; } + public abstract System.IO.Stream OpenRead(); + public virtual System.IO.StreamReader OpenText() => throw null; + public virtual System.Byte[] ReadAllBytes() => throw null; + public virtual string ReadAllText() => throw null; + public virtual string RealPath { get => throw null; } + public virtual void Refresh() => throw null; + public static System.Collections.Generic.List ScanSkipPaths { get => throw null; set => throw null; } + public override string ToString() => throw null; + public virtual string VirtualPath { get => throw null; } + public ServiceStack.IO.IVirtualPathProvider VirtualPathProvider { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task WritePartialToAsync(System.IO.Stream toStream, System.Int64 start, System.Int64 end, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.VirtualPath.AbstractVirtualPathProviderBase` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AbstractVirtualPathProviderBase : ServiceStack.IO.IVirtualPathProvider + { + protected AbstractVirtualPathProviderBase() => throw null; + public virtual void AppendFile(string path, System.ReadOnlyMemory bytes) => throw null; + public virtual void AppendFile(string path, System.ReadOnlyMemory text) => throw null; + public virtual void AppendFile(string path, object contents) => throw null; + protected ServiceStack.IO.IVirtualFiles AssertVirtualFiles() => throw null; + public virtual string CombineVirtualPath(string basePath, string relativePath) => throw null; + protected System.NotSupportedException CreateContentNotSupportedException(object value) => throw null; + public virtual bool DirectoryExists(string virtualPath) => throw null; + public virtual bool FileExists(string virtualPath) => throw null; + public virtual System.Collections.Generic.IEnumerable GetAllFiles() => throw null; + public virtual System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; + public virtual ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; + public virtual ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + public virtual string GetFileHash(ServiceStack.IO.IVirtualFile virtualFile) => throw null; + public virtual string GetFileHash(string virtualPath) => throw null; + public virtual System.Collections.Generic.IEnumerable GetRootDirectories() => throw null; + public virtual System.Collections.Generic.IEnumerable GetRootFiles() => throw null; + protected abstract void Initialize(); + public virtual bool IsSharedFile(ServiceStack.IO.IVirtualFile virtualFile) => throw null; + public virtual bool IsViewFile(ServiceStack.IO.IVirtualFile virtualFile) => throw null; + public abstract string RealPathSeparator { get; } + public abstract ServiceStack.IO.IVirtualDirectory RootDirectory { get; } + public virtual string SanitizePath(string filePath) => throw null; + public override string ToString() => throw null; + public abstract string VirtualPathSeparator { get; } + public virtual void WriteFile(string path, System.ReadOnlyMemory bytes) => throw null; + public virtual void WriteFile(string path, System.ReadOnlyMemory text) => throw null; + public virtual void WriteFile(string path, object contents) => throw null; + public virtual System.Threading.Tasks.Task WriteFileAsync(string path, object contents, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void WriteFiles(System.Collections.Generic.Dictionary files) => throw null; + public virtual void WriteFiles(System.Collections.Generic.Dictionary textFiles) => throw null; + } + + // Generated from `ServiceStack.VirtualPath.FileSystemMapping` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FileSystemMapping : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase + { + public string Alias { get => throw null; set => throw null; } + public FileSystemMapping(string alias, System.IO.DirectoryInfo rootDirInfo) => throw null; + public FileSystemMapping(string alias, string rootDirectoryPath) => throw null; + public override ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; + public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; + public string GetRealVirtualPath(string virtualPath) => throw null; + public override System.Collections.Generic.IEnumerable GetRootDirectories() => throw null; + public override System.Collections.Generic.IEnumerable GetRootFiles() => throw null; + protected override void Initialize() => throw null; + public override string RealPathSeparator { get => throw null; } + protected ServiceStack.VirtualPath.FileSystemVirtualDirectory RootDir; + protected System.IO.DirectoryInfo RootDirInfo; + public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } + public override string VirtualPathSeparator { get => throw null; } + } + + // Generated from `ServiceStack.VirtualPath.FileSystemVirtualDirectory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FileSystemVirtualDirectory : ServiceStack.VirtualPath.AbstractVirtualDirectoryBase + { + protected System.IO.DirectoryInfo BackingDirInfo; + public override System.Collections.Generic.IEnumerable Directories { get => throw null; } + public System.Collections.Generic.IEnumerable EnumerateDirectories(string dirName) => throw null; + public System.Collections.Generic.IEnumerable EnumerateFiles(string pattern) => throw null; + public FileSystemVirtualDirectory(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory parentDirectory, System.IO.DirectoryInfo dInfo) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; + public override System.Collections.Generic.IEnumerable Files { get => throw null; } + protected override ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string dName) => throw null; + public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + protected override ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fName) => throw null; + protected override System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern) => throw null; + public override System.DateTime LastModified { get => throw null; } + public override string Name { get => throw null; } + public override string RealPath { get => throw null; } + } + + // Generated from `ServiceStack.VirtualPath.FileSystemVirtualFile` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FileSystemVirtualFile : ServiceStack.VirtualPath.AbstractVirtualFileBase + { + protected System.IO.FileInfo BackingFile; + public FileSystemVirtualFile(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory directory, System.IO.FileInfo fInfo) : base(default(ServiceStack.IO.IVirtualPathProvider), default(ServiceStack.IO.IVirtualDirectory)) => throw null; + public override System.DateTime LastModified { get => throw null; } + public override System.Int64 Length { get => throw null; } + public override string Name { get => throw null; } + public override System.IO.Stream OpenRead() => throw null; + public override string RealPath { get => throw null; } + public override void Refresh() => throw null; + } + + // Generated from `ServiceStack.VirtualPath.ResourceVirtualDirectory` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ResourceVirtualDirectory : ServiceStack.VirtualPath.AbstractVirtualDirectoryBase + { + protected virtual ServiceStack.VirtualPath.ResourceVirtualDirectory ConsumeTokensForVirtualDir(System.Collections.Generic.Stack resourceTokens) => throw null; + protected virtual ServiceStack.VirtualPath.ResourceVirtualDirectory CreateVirtualDirectory(System.Linq.IGrouping subResources) => throw null; + protected virtual ServiceStack.VirtualPath.ResourceVirtualFile CreateVirtualFile(string resourceName) => throw null; + public override System.Collections.Generic.IEnumerable Directories { get => throw null; } + public string DirectoryName { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet EmbeddedResourceTreatAsFiles { get => throw null; set => throw null; } + public override System.Collections.Generic.IEnumerable Files { get => throw null; } + protected override ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName) => throw null; + public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + protected override ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName) => throw null; + protected override System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern) => throw null; + protected override string GetRealPathToRoot() => throw null; + public static System.Collections.Generic.List GetResourceNames(System.Reflection.Assembly asm, string basePath) => throw null; + protected void InitializeDirectoryStructure(System.Collections.Generic.List manifestResourceNames) => throw null; + public override System.DateTime LastModified { get => throw null; } + public override string Name { get => throw null; } + public ResourceVirtualDirectory(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory parentDir, System.Reflection.Assembly backingAsm, System.DateTime lastModified, string rootNamespace) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; + public ResourceVirtualDirectory(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory parentDir, System.Reflection.Assembly backingAsm, System.DateTime lastModified, string rootNamespace, string directoryName, System.Collections.Generic.List manifestResourceNames) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; + protected System.Collections.Generic.List SubDirectories; + protected System.Collections.Generic.List SubFiles; + public string TranslatePath(string path) => throw null; + protected System.Reflection.Assembly backingAssembly; + public string rootNamespace { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.VirtualPath.ResourceVirtualFile` in `ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ResourceVirtualFile : ServiceStack.VirtualPath.AbstractVirtualFileBase + { + protected System.Reflection.Assembly BackingAssembly; + protected string FileName; + public override System.DateTime LastModified { get => throw null; } + public override System.Int64 Length { get => throw null; } + public override string Name { get => throw null; } + public override System.IO.Stream OpenRead() => throw null; + public override string RealPath { get => throw null; } + public ResourceVirtualFile(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.VirtualPath.ResourceVirtualDirectory directory, string fileName) : base(default(ServiceStack.IO.IVirtualPathProvider), default(ServiceStack.IO.IVirtualDirectory)) => throw null; + public override string VirtualPath { get => throw null; } + } + + } +} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.csproj new file mode 100644 index 00000000000..2a0517584ca --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.csproj @@ -0,0 +1,15 @@ + + + net6.0 + true + bin\ + false + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/6.2.0/ServiceStack.Interfaces.cs b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/6.2.0/ServiceStack.Interfaces.cs new file mode 100644 index 00000000000..e8e6da9dd5f --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/6.2.0/ServiceStack.Interfaces.cs @@ -0,0 +1,6366 @@ +// This file contains auto-generated code. + +namespace ServiceStack +{ + // Generated from `ServiceStack.AllowResetAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AllowResetAttribute : ServiceStack.AttributeBase + { + public AllowResetAttribute() => throw null; + } + + // Generated from `ServiceStack.ApiAllowableValuesAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiAllowableValuesAttribute : ServiceStack.AttributeBase + { + public ApiAllowableValuesAttribute() => throw null; + public ApiAllowableValuesAttribute(System.Func listAction) => throw null; + public ApiAllowableValuesAttribute(string[] values) => throw null; + public ApiAllowableValuesAttribute(System.Type enumType) => throw null; + public ApiAllowableValuesAttribute(int min, int max) => throw null; + public ApiAllowableValuesAttribute(string name) => throw null; + public ApiAllowableValuesAttribute(string name, System.Func listAction) => throw null; + public ApiAllowableValuesAttribute(string name, System.Type enumType) => throw null; + public ApiAllowableValuesAttribute(string name, int min, int max) => throw null; + public ApiAllowableValuesAttribute(string name, params string[] values) => throw null; + public int? Max { get => throw null; set => throw null; } + public int? Min { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } + public string[] Values { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ApiAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiAttribute : ServiceStack.AttributeBase + { + public ApiAttribute() => throw null; + public ApiAttribute(string description) => throw null; + public ApiAttribute(string description, int generateBodyParameter) => throw null; + public ApiAttribute(string description, int generateBodyParameter, bool isRequired) => throw null; + public int BodyParameter { get => throw null; set => throw null; } + public string Description { get => throw null; set => throw null; } + public bool IsRequired { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ApiMemberAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiMemberAttribute : ServiceStack.AttributeBase + { + public bool AllowMultiple { get => throw null; set => throw null; } + public ApiMemberAttribute() => throw null; + public string DataType { get => throw null; set => throw null; } + public string Description { get => throw null; set => throw null; } + public bool ExcludeInSchema { get => throw null; set => throw null; } + public string Format { 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 string ParameterType { get => throw null; set => throw null; } + public string Route { get => throw null; set => throw null; } + public string Verb { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ApiResponseAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiResponseAttribute : ServiceStack.AttributeBase, ServiceStack.IApiResponseDescription + { + public ApiResponseAttribute() => throw null; + public ApiResponseAttribute(System.Net.HttpStatusCode statusCode, string description) => throw null; + public ApiResponseAttribute(int statusCode, string description) => throw null; + public string Description { get => throw null; set => throw null; } + public bool IsDefaultResponse { get => throw null; set => throw null; } + public System.Type ResponseType { get => throw null; set => throw null; } + public int StatusCode { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ApplyTo` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum ApplyTo + { + Acl, + All, + BaseLineControl, + CheckIn, + CheckOut, + Connect, + Copy, + Delete, + Get, + Head, + Label, + Lock, + Merge, + MkActivity, + MkCol, + MkWorkSpace, + Move, + None, + Options, + OrderPatch, + Patch, + Post, + PropFind, + PropPatch, + Put, + Report, + Search, + Trace, + UnCheckOut, + UnLock, + Update, + VersionControl, + } + + // Generated from `ServiceStack.ArrayOfGuid` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ArrayOfGuid : System.Collections.Generic.List + { + public ArrayOfGuid() => throw null; + public ArrayOfGuid(System.Collections.Generic.IEnumerable collection) => throw null; + public ArrayOfGuid(params System.Guid[] args) => throw null; + } + + // Generated from `ServiceStack.ArrayOfGuidId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ArrayOfGuidId : System.Collections.Generic.List + { + public ArrayOfGuidId() => throw null; + public ArrayOfGuidId(System.Collections.Generic.IEnumerable collection) => throw null; + public ArrayOfGuidId(params System.Guid[] args) => throw null; + } + + // Generated from `ServiceStack.ArrayOfInt` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ArrayOfInt : System.Collections.Generic.List + { + public ArrayOfInt() => throw null; + public ArrayOfInt(System.Collections.Generic.IEnumerable collection) => throw null; + public ArrayOfInt(params int[] args) => throw null; + } + + // Generated from `ServiceStack.ArrayOfIntId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ArrayOfIntId : System.Collections.Generic.List + { + public ArrayOfIntId() => throw null; + public ArrayOfIntId(System.Collections.Generic.IEnumerable collection) => throw null; + public ArrayOfIntId(params int[] args) => throw null; + } + + // Generated from `ServiceStack.ArrayOfLong` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ArrayOfLong : System.Collections.Generic.List + { + public ArrayOfLong() => throw null; + public ArrayOfLong(System.Collections.Generic.IEnumerable collection) => throw null; + public ArrayOfLong(params System.Int64[] args) => throw null; + } + + // Generated from `ServiceStack.ArrayOfLongId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ArrayOfLongId : System.Collections.Generic.List + { + public ArrayOfLongId() => throw null; + public ArrayOfLongId(System.Collections.Generic.IEnumerable collection) => throw null; + public ArrayOfLongId(params System.Int64[] args) => throw null; + } + + // Generated from `ServiceStack.ArrayOfString` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ArrayOfString : System.Collections.Generic.List + { + public ArrayOfString() => throw null; + public ArrayOfString(System.Collections.Generic.IEnumerable collection) => throw null; + public ArrayOfString(params string[] args) => throw null; + } + + // Generated from `ServiceStack.ArrayOfStringId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ArrayOfStringId : System.Collections.Generic.List + { + public ArrayOfStringId() => throw null; + public ArrayOfStringId(System.Collections.Generic.IEnumerable collection) => throw null; + public ArrayOfStringId(params string[] args) => throw null; + } + + // Generated from `ServiceStack.AttributeBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AttributeBase : System.Attribute + { + public AttributeBase() => throw null; + protected System.Guid typeId; + } + + // Generated from `ServiceStack.AuditBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AuditBase + { + protected AuditBase() => throw null; + public string CreatedBy { get => throw null; set => throw null; } + public System.DateTime CreatedDate { get => throw null; set => throw null; } + public string DeletedBy { get => throw null; set => throw null; } + public System.DateTime? DeletedDate { get => throw null; set => throw null; } + public string ModifiedBy { get => throw null; set => throw null; } + public System.DateTime ModifiedDate { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoApplyAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoApplyAttribute : ServiceStack.AttributeBase + { + public string[] Args { get => throw null; } + public AutoApplyAttribute(string name, params string[] args) => throw null; + public string Name { get => throw null; } + } + + // Generated from `ServiceStack.AutoDefaultAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoDefaultAttribute : ServiceStack.ScriptValueAttribute + { + public AutoDefaultAttribute() => throw null; + } + + // Generated from `ServiceStack.AutoFilterAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoFilterAttribute : ServiceStack.ScriptValueAttribute + { + public AutoFilterAttribute() => throw null; + public AutoFilterAttribute(ServiceStack.QueryTerm term, string field) => throw null; + public AutoFilterAttribute(ServiceStack.QueryTerm term, string field, string template) => throw null; + public AutoFilterAttribute(string field) => throw null; + public AutoFilterAttribute(string field, string template) => throw null; + public string Field { get => throw null; set => throw null; } + public string Operand { get => throw null; set => throw null; } + public string Template { get => throw null; set => throw null; } + public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } + public string ValueFormat { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoIgnoreAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoIgnoreAttribute : ServiceStack.AttributeBase + { + public AutoIgnoreAttribute() => throw null; + } + + // Generated from `ServiceStack.AutoMapAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoMapAttribute : ServiceStack.AttributeBase + { + public AutoMapAttribute() => throw null; + public AutoMapAttribute(string to) => throw null; + public string To { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoPopulateAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoPopulateAttribute : ServiceStack.ScriptValueAttribute + { + public AutoPopulateAttribute() => throw null; + public AutoPopulateAttribute(string field) => throw null; + public string Field { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoQueryViewerAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryViewerAttribute : ServiceStack.AttributeBase + { + public AutoQueryViewerAttribute() => throw null; + public string BackgroundColor { get => throw null; set => throw null; } + public string BackgroundImageUrl { get => throw null; set => throw null; } + public string BrandImageUrl { get => throw null; set => throw null; } + public string BrandUrl { get => throw null; set => throw null; } + public string DefaultFields { get => throw null; set => throw null; } + public string DefaultSearchField { get => throw null; set => throw null; } + public string DefaultSearchText { get => throw null; set => throw null; } + public string DefaultSearchType { get => throw null; set => throw null; } + public string Description { get => throw null; set => throw null; } + public string IconUrl { get => throw null; set => throw null; } + public string LinkColor { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string TextColor { get => throw null; set => throw null; } + public string Title { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoQueryViewerFieldAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryViewerFieldAttribute : ServiceStack.AttributeBase + { + public AutoQueryViewerFieldAttribute() => throw null; + public string Description { get => throw null; set => throw null; } + public bool HideInSummary { get => throw null; set => throw null; } + public string LayoutHint { get => throw null; set => throw null; } + public string Title { get => throw null; set => throw null; } + public string ValueFormat { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoUpdateAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoUpdateAttribute : ServiceStack.AttributeBase + { + public AutoUpdateAttribute(ServiceStack.AutoUpdateStyle style) => throw null; + public ServiceStack.AutoUpdateStyle Style { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoUpdateStyle` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum AutoUpdateStyle + { + Always, + NonDefaults, + } + + // Generated from `ServiceStack.Behavior` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Behavior + { + public const string AuditCreate = default; + public const string AuditDelete = default; + public const string AuditModify = default; + public const string AuditQuery = default; + public const string AuditSoftDelete = default; + } + + // Generated from `ServiceStack.BoolResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BoolResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + public BoolResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public bool Result { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.CallStyle` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum CallStyle + { + OneWay, + Reply, + } + + // Generated from `ServiceStack.CurrencyDisplay` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum CurrencyDisplay + { + Code, + Name, + NarrowSymbol, + Symbol, + Undefined, + } + + // Generated from `ServiceStack.CurrencySign` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum CurrencySign + { + Accounting, + Standard, + Undefined, + } + + // Generated from `ServiceStack.DateMonth` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum DateMonth + { + Digits2, + Long, + Narrow, + Numeric, + Short, + Undefined, + } + + // Generated from `ServiceStack.DatePart` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum DatePart + { + Digits2, + Numeric, + Undefined, + } + + // Generated from `ServiceStack.DateStyle` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum DateStyle + { + Full, + Long, + Medium, + Short, + Undefined, + } + + // Generated from `ServiceStack.DateText` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum DateText + { + Long, + Narrow, + Short, + Undefined, + } + + // Generated from `ServiceStack.EmitCSharp` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitCSharp : ServiceStack.EmitCodeAttribute + { + public EmitCSharp(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; + } + + // Generated from `ServiceStack.EmitCodeAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitCodeAttribute : ServiceStack.AttributeBase + { + public EmitCodeAttribute(ServiceStack.Lang lang, string[] statements) => throw null; + public EmitCodeAttribute(ServiceStack.Lang lang, string statement) => throw null; + public ServiceStack.Lang Lang { get => throw null; set => throw null; } + public string[] Statements { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.EmitDart` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitDart : ServiceStack.EmitCodeAttribute + { + public EmitDart(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; + } + + // Generated from `ServiceStack.EmitFSharp` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitFSharp : ServiceStack.EmitCodeAttribute + { + public EmitFSharp(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; + } + + // Generated from `ServiceStack.EmitJava` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitJava : ServiceStack.EmitCodeAttribute + { + public EmitJava(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; + } + + // Generated from `ServiceStack.EmitKotlin` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitKotlin : ServiceStack.EmitCodeAttribute + { + public EmitKotlin(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; + } + + // Generated from `ServiceStack.EmitSwift` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitSwift : ServiceStack.EmitCodeAttribute + { + public EmitSwift(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; + } + + // Generated from `ServiceStack.EmitTypeScript` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitTypeScript : ServiceStack.EmitCodeAttribute + { + public EmitTypeScript(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; + } + + // Generated from `ServiceStack.EmitVb` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitVb : ServiceStack.EmitCodeAttribute + { + public EmitVb(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; + } + + // Generated from `ServiceStack.EmptyResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmptyResponse : ServiceStack.IHasResponseStatus + { + public EmptyResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Endpoint` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Endpoint + { + Http, + Mq, + Other, + Tcp, + } + + // Generated from `ServiceStack.ErrorResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ErrorResponse : ServiceStack.IHasResponseStatus + { + public ErrorResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ExplorerCssAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ExplorerCssAttribute : ServiceStack.AttributeBase + { + public ExplorerCssAttribute() => throw null; + public string Field { get => throw null; set => throw null; } + public string Fieldset { get => throw null; set => throw null; } + public string Form { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FallbackRouteAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FallbackRouteAttribute : ServiceStack.RouteAttribute + { + public FallbackRouteAttribute(string path) : base(default(string)) => throw null; + public FallbackRouteAttribute(string path, string verbs) : base(default(string)) => throw null; + } + + // Generated from `ServiceStack.Feature` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum Feature + { + All, + Csv, + CustomFormat, + Grpc, + Html, + Json, + Jsv, + Markdown, + Metadata, + MsgPack, + None, + PredefinedRoutes, + ProtoBuf, + Razor, + RequestInfo, + ServiceDiscovery, + Soap, + Soap11, + Soap12, + Validation, + Wire, + Xml, + } + + // Generated from `ServiceStack.FieldAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FieldAttribute : ServiceStack.InputAttributeBase + { + public FieldAttribute() => throw null; + public FieldAttribute(string name) => throw null; + public string FieldCss { get => throw null; set => throw null; } + public string InputCss { get => throw null; set => throw null; } + public string LabelCss { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FieldCssAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FieldCssAttribute : ServiceStack.AttributeBase + { + public string Field { get => throw null; set => throw null; } + public FieldCssAttribute() => throw null; + public string Input { get => throw null; set => throw null; } + public string Label { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Format` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Format + { + Csv, + Html, + Json, + Jsv, + MsgPack, + Other, + ProtoBuf, + Soap11, + Soap12, + Wire, + Xml, + } + + // Generated from `ServiceStack.FormatAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FormatAttribute : ServiceStack.AttributeBase + { + public FormatAttribute() => throw null; + public FormatAttribute(string method) => throw null; + public string Locale { get => throw null; set => throw null; } + public string Method { get => throw null; set => throw null; } + public string Options { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FormatMethods` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class FormatMethods + { + public const string Attachment = default; + public const string Bytes = default; + public const string Currency = default; + public const string Hidden = default; + public const string Icon = default; + public const string IconRounded = default; + public const string Link = default; + public const string LinkEmail = default; + public const string LinkPhone = default; + } + + // Generated from `ServiceStack.GenerateBodyParameter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class GenerateBodyParameter + { + public const int Always = default; + public const int IfNotDisabled = default; + public const int Never = default; + } + + // Generated from `ServiceStack.Http` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Http + { + Delete, + Get, + Head, + Options, + Other, + Patch, + Post, + Put, + } + + // Generated from `ServiceStack.IAny<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAny + { + object Any(T request); + } + + // Generated from `ServiceStack.IAnyVoid<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAnyVoid + { + void Any(T request); + } + + // Generated from `ServiceStack.IApiResponseDescription` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IApiResponseDescription + { + string Description { get; } + int StatusCode { get; } + } + + // Generated from `ServiceStack.ICompressor` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICompressor + { + string Compress(string source); + } + + // Generated from `ServiceStack.IContainer` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IContainer + { + ServiceStack.IContainer AddSingleton(System.Type type, System.Func factory); + ServiceStack.IContainer AddTransient(System.Type type, System.Func factory); + System.Func CreateFactory(System.Type type); + bool Exists(System.Type type); + object Resolve(System.Type type); + } + + // Generated from `ServiceStack.ICreateDb<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICreateDb : ServiceStack.ICrud + { + } + + // Generated from `ServiceStack.ICrud` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICrud + { + } + + // Generated from `ServiceStack.IDelete` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDelete : ServiceStack.IVerb + { + } + + // Generated from `ServiceStack.IDelete<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDelete + { + object Delete(T request); + } + + // Generated from `ServiceStack.IDeleteDb<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDeleteDb
    : ServiceStack.ICrud + { + } + + // Generated from `ServiceStack.IDeleteVoid<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDeleteVoid + { + void Delete(T request); + } + + // Generated from `ServiceStack.IEncryptedClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IEncryptedClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IReplyClient, ServiceStack.IServiceGateway + { + ServiceStack.IJsonServiceClient Client { get; } + TResponse Send(string httpMethod, ServiceStack.IReturn request); + TResponse Send(string httpMethod, object request); + string ServerPublicKeyXml { get; } + } + + // Generated from `ServiceStack.IGet` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IGet : ServiceStack.IVerb + { + } + + // Generated from `ServiceStack.IGet<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IGet + { + object Get(T request); + } + + // Generated from `ServiceStack.IGetVoid<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IGetVoid + { + void Get(T request); + } + + // Generated from `ServiceStack.IHasAuthSecret` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasAuthSecret + { + string AuthSecret { get; set; } + } + + // Generated from `ServiceStack.IHasBearerToken` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasBearerToken + { + string BearerToken { get; set; } + } + + // Generated from `ServiceStack.IHasErrorCode` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasErrorCode + { + string ErrorCode { get; } + } + + // Generated from `ServiceStack.IHasErrorStatus` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasErrorStatus + { + ServiceStack.ResponseStatus Error { get; } + } + + // Generated from `ServiceStack.IHasRefreshToken` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasRefreshToken + { + string RefreshToken { get; set; } + } + + // Generated from `ServiceStack.IHasResponseStatus` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasResponseStatus + { + ServiceStack.ResponseStatus ResponseStatus { get; set; } + } + + // Generated from `ServiceStack.IHasSessionId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasSessionId + { + string SessionId { get; set; } + } + + // Generated from `ServiceStack.IHasTraceId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasTraceId + { + string TraceId { get; } + } + + // Generated from `ServiceStack.IHasVersion` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasVersion + { + int Version { get; set; } + } + + // Generated from `ServiceStack.IHtmlString` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHtmlString + { + string ToHtmlString(); + } + + // Generated from `ServiceStack.IHttpRestClientAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHttpRestClientAsync : ServiceStack.IRestClientAsync, ServiceStack.IServiceClientCommon, System.IDisposable + { + System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.IJoin` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IJoin + { + } + + // Generated from `ServiceStack.IJoin<,,,,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IJoin : ServiceStack.IJoin + { + } + + // Generated from `ServiceStack.IJoin<,,,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IJoin : ServiceStack.IJoin + { + } + + // Generated from `ServiceStack.IJoin<,,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IJoin : ServiceStack.IJoin + { + } + + // Generated from `ServiceStack.IJoin<,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IJoin : ServiceStack.IJoin + { + } + + // Generated from `ServiceStack.IJsonServiceClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IJsonServiceClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable + { + string BaseUri { get; } + } + + // Generated from `ServiceStack.ILeftJoin<,,,,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILeftJoin : ServiceStack.IJoin + { + } + + // Generated from `ServiceStack.ILeftJoin<,,,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILeftJoin : ServiceStack.IJoin + { + } + + // Generated from `ServiceStack.ILeftJoin<,,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILeftJoin : ServiceStack.IJoin + { + } + + // Generated from `ServiceStack.ILeftJoin<,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILeftJoin : ServiceStack.IJoin + { + } + + // Generated from `ServiceStack.IMeta` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMeta + { + System.Collections.Generic.Dictionary Meta { get; set; } + } + + // Generated from `ServiceStack.IOneWayClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOneWayClient + { + void SendAllOneWay(System.Collections.Generic.IEnumerable requests); + void SendOneWay(object requestDto); + void SendOneWay(string relativeOrAbsoluteUri, object requestDto); + } + + // Generated from `ServiceStack.IOptions` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOptions : ServiceStack.IVerb + { + } + + // Generated from `ServiceStack.IOptions<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOptions + { + object Options(T request); + } + + // Generated from `ServiceStack.IOptionsVoid<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOptionsVoid + { + void Options(T request); + } + + // Generated from `ServiceStack.IPatch` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPatch : ServiceStack.IVerb + { + } + + // Generated from `ServiceStack.IPatch<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPatch + { + object Patch(T request); + } + + // Generated from `ServiceStack.IPatchDb<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPatchDb
    : ServiceStack.ICrud + { + } + + // Generated from `ServiceStack.IPatchVoid<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPatchVoid + { + void Patch(T request); + } + + // Generated from `ServiceStack.IPost` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPost : ServiceStack.IVerb + { + } + + // Generated from `ServiceStack.IPost<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPost + { + object Post(T request); + } + + // Generated from `ServiceStack.IPostVoid<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPostVoid + { + void Post(T request); + } + + // Generated from `ServiceStack.IPut` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPut : ServiceStack.IVerb + { + } + + // Generated from `ServiceStack.IPut<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPut + { + object Put(T request); + } + + // Generated from `ServiceStack.IPutVoid<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPutVoid + { + void Put(T request); + } + + // Generated from `ServiceStack.IQuery` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQuery : ServiceStack.IMeta + { + string Fields { get; set; } + string Include { get; set; } + string OrderBy { get; set; } + string OrderByDesc { get; set; } + int? Skip { get; set; } + int? Take { get; set; } + } + + // Generated from `ServiceStack.IQueryData` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryData : ServiceStack.IMeta, ServiceStack.IQuery + { + } + + // Generated from `ServiceStack.IQueryData<,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryData : ServiceStack.IMeta, ServiceStack.IQuery, ServiceStack.IQueryData + { + } + + // Generated from `ServiceStack.IQueryData<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryData : ServiceStack.IMeta, ServiceStack.IQuery, ServiceStack.IQueryData + { + } + + // Generated from `ServiceStack.IQueryDb` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryDb : ServiceStack.IMeta, ServiceStack.IQuery + { + } + + // Generated from `ServiceStack.IQueryDb<,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryDb : ServiceStack.IMeta, ServiceStack.IQuery, ServiceStack.IQueryDb + { + } + + // Generated from `ServiceStack.IQueryDb<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryDb : ServiceStack.IMeta, ServiceStack.IQuery, ServiceStack.IQueryDb + { + } + + // Generated from `ServiceStack.IQueryResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + int Offset { get; set; } + int Total { get; set; } + } + + // Generated from `ServiceStack.IRawString` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRawString + { + string ToRawString(); + } + + // Generated from `ServiceStack.IReceiver` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IReceiver + { + void NoSuchMethod(string selector, object message); + } + + // Generated from `ServiceStack.IReflectAttributeConverter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IReflectAttributeConverter + { + ServiceStack.ReflectAttribute ToReflectAttribute(); + } + + // Generated from `ServiceStack.IReflectAttributeFilter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IReflectAttributeFilter + { + bool ShouldInclude(System.Reflection.PropertyInfo pi, string value); + } + + // Generated from `ServiceStack.IReplyClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IReplyClient : ServiceStack.IServiceGateway + { + } + + // Generated from `ServiceStack.IRequiresSchema` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequiresSchema + { + void InitSchema(); + } + + // Generated from `ServiceStack.IRequiresSchemaAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequiresSchemaAsync + { + System.Threading.Tasks.Task InitSchemaAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.IResponseStatus` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IResponseStatus + { + string ErrorCode { get; set; } + string ErrorMessage { get; set; } + bool IsSuccess { get; } + string StackTrace { get; set; } + } + + // Generated from `ServiceStack.IRestClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRestClient : ServiceStack.IRestClientSync, ServiceStack.IServiceClientCommon, System.IDisposable + { + void AddHeader(string name, string value); + void ClearCookies(); + TResponse Delete(string relativeOrAbsoluteUrl); + TResponse Get(string relativeOrAbsoluteUrl); + System.Collections.Generic.Dictionary GetCookieValues(); + System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto); + TResponse Patch(string relativeOrAbsoluteUrl, object requestDto); + TResponse Post(string relativeOrAbsoluteUrl, object request); + TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType, string fieldName = default(string)); + TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)); + TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)); + TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files); + TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files); + TResponse Put(string relativeOrAbsoluteUrl, object requestDto); + TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request); + void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)); + } + + // Generated from `ServiceStack.IRestClientAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRestClientAsync : ServiceStack.IServiceClientCommon, System.IDisposable + { + System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.IRestClientSync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRestClientSync : ServiceStack.IServiceClientCommon, System.IDisposable + { + void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto); + TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto); + TResponse CustomMethod(string httpVerb, object requestDto); + void Delete(ServiceStack.IReturnVoid requestDto); + TResponse Delete(ServiceStack.IReturn requestDto); + TResponse Delete(object requestDto); + void Get(ServiceStack.IReturnVoid requestDto); + TResponse Get(ServiceStack.IReturn requestDto); + TResponse Get(object requestDto); + void Patch(ServiceStack.IReturnVoid requestDto); + TResponse Patch(ServiceStack.IReturn requestDto); + TResponse Patch(object requestDto); + void Post(ServiceStack.IReturnVoid requestDto); + TResponse Post(ServiceStack.IReturn requestDto); + TResponse Post(object requestDto); + void Put(ServiceStack.IReturnVoid requestDto); + TResponse Put(ServiceStack.IReturn requestDto); + TResponse Put(object requestDto); + } + + // Generated from `ServiceStack.IRestGateway` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRestGateway + { + T Delete(ServiceStack.IReturn request); + T Get(ServiceStack.IReturn request); + T Post(ServiceStack.IReturn request); + T Put(ServiceStack.IReturn request); + T Send(ServiceStack.IReturn request); + } + + // Generated from `ServiceStack.IRestGatewayAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRestGatewayAsync + { + System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); + System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); + System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); + System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); + System.Threading.Tasks.Task SendAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); + } + + // Generated from `ServiceStack.IRestServiceClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRestServiceClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable + { + } + + // Generated from `ServiceStack.IReturn` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IReturn + { + } + + // Generated from `ServiceStack.IReturn<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IReturn : ServiceStack.IReturn + { + } + + // Generated from `ServiceStack.IReturnVoid` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IReturnVoid : ServiceStack.IReturn + { + } + + // Generated from `ServiceStack.ISaveDb<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISaveDb
    : ServiceStack.ICrud + { + } + + // Generated from `ServiceStack.IScriptValue` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IScriptValue + { + string Eval { get; set; } + string Expression { get; set; } + bool NoCache { get; set; } + object Value { get; set; } + } + + // Generated from `ServiceStack.ISequenceSource` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISequenceSource : ServiceStack.IRequiresSchema + { + System.Int64 Increment(string key, System.Int64 amount = default(System.Int64)); + void Reset(string key, System.Int64 startingAt = default(System.Int64)); + } + + // Generated from `ServiceStack.ISequenceSourceAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISequenceSourceAsync : ServiceStack.IRequiresSchema + { + System.Threading.Tasks.Task IncrementAsync(string key, System.Int64 amount = default(System.Int64), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ResetAsync(string key, System.Int64 startingAt = default(System.Int64), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.IService` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IService + { + } + + // Generated from `ServiceStack.IServiceAfterFilter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceAfterFilter + { + object OnAfterExecute(object response); + } + + // Generated from `ServiceStack.IServiceAfterFilterAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceAfterFilterAsync + { + System.Threading.Tasks.Task OnAfterExecuteAsync(object response); + } + + // Generated from `ServiceStack.IServiceBeforeFilter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceBeforeFilter + { + void OnBeforeExecute(object requestDto); + } + + // Generated from `ServiceStack.IServiceBeforeFilterAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceBeforeFilterAsync + { + System.Threading.Tasks.Task OnBeforeExecuteAsync(object requestDto); + } + + // Generated from `ServiceStack.IServiceClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable + { + } + + // Generated from `ServiceStack.IServiceClientAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceClientAsync : ServiceStack.IRestClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceGatewayAsync, System.IDisposable + { + } + + // Generated from `ServiceStack.IServiceClientCommon` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceClientCommon : System.IDisposable + { + void SetCredentials(string userName, string password); + } + + // Generated from `ServiceStack.IServiceClientSync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceClientSync : ServiceStack.IRestClientSync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceGateway, System.IDisposable + { + } + + // Generated from `ServiceStack.IServiceErrorFilter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceErrorFilter + { + System.Threading.Tasks.Task OnExceptionAsync(object requestDto, System.Exception ex); + } + + // Generated from `ServiceStack.IServiceFilters` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceFilters : ServiceStack.IServiceAfterFilter, ServiceStack.IServiceBeforeFilter, ServiceStack.IServiceErrorFilter + { + } + + // Generated from `ServiceStack.IServiceGateway` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceGateway + { + void Publish(object requestDto); + void PublishAll(System.Collections.Generic.IEnumerable requestDtos); + TResponse Send(object requestDto); + System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requestDtos); + } + + // Generated from `ServiceStack.IServiceGatewayAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceGatewayAsync + { + System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.IStream` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IStream : ServiceStack.IVerb + { + } + + // Generated from `ServiceStack.IUpdateDb<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUpdateDb
    : ServiceStack.ICrud + { + } + + // Generated from `ServiceStack.IUrlFilter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUrlFilter + { + string ToUrl(string absoluteUrl); + } + + // Generated from `ServiceStack.IValidateRule` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidateRule + { + string Condition { get; set; } + string ErrorCode { get; set; } + string Message { get; set; } + string Validator { get; set; } + } + + // Generated from `ServiceStack.IValidationSource` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidationSource + { + System.Collections.Generic.IEnumerable> GetValidationRules(System.Type type); + } + + // Generated from `ServiceStack.IValidationSourceAdmin` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidationSourceAdmin + { + System.Threading.Tasks.Task ClearCacheAsync(); + System.Threading.Tasks.Task DeleteValidationRulesAsync(params int[] ids); + System.Collections.Generic.List GetAllValidateRules(); + System.Threading.Tasks.Task> GetAllValidateRulesAsync(); + System.Threading.Tasks.Task> GetAllValidateRulesAsync(string typeName); + System.Threading.Tasks.Task> GetValidateRulesByIdsAsync(params int[] ids); + void SaveValidationRules(System.Collections.Generic.List validateRules); + System.Threading.Tasks.Task SaveValidationRulesAsync(System.Collections.Generic.List validateRules); + } + + // Generated from `ServiceStack.IVerb` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IVerb + { + } + + // Generated from `ServiceStack.IconAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IconAttribute : ServiceStack.AttributeBase + { + public string Alt { get => throw null; set => throw null; } + public string Cls { get => throw null; set => throw null; } + public IconAttribute() => throw null; + public string Svg { get => throw null; set => throw null; } + public string Uri { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.IdResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IdResponse : ServiceStack.IHasResponseStatus + { + public string Id { get => throw null; set => throw null; } + public IdResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.InputAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InputAttribute : ServiceStack.InputAttributeBase + { + public InputAttribute() => throw null; + } + + // Generated from `ServiceStack.InputAttributeBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InputAttributeBase : ServiceStack.MetadataAttributeBase + { + public string Accept { get => throw null; set => throw null; } + public string[] AllowableValues { get => throw null; set => throw null; } + public string Autocomplete { get => throw null; set => throw null; } + public string Autofocus { get => throw null; set => throw null; } + public string Capture { get => throw null; set => throw null; } + public bool Disabled { get => throw null; set => throw null; } + public string Help { get => throw null; set => throw null; } + public bool Ignore { get => throw null; set => throw null; } + public InputAttributeBase() => throw null; + public string Label { get => throw null; set => throw null; } + public string Max { get => throw null; set => throw null; } + public int MaxLength { get => throw null; set => throw null; } + public string Min { get => throw null; set => throw null; } + public int MinLength { get => throw null; set => throw null; } + public bool Multiple { get => throw null; set => throw null; } + public string Options { get => throw null; set => throw null; } + public string Pattern { get => throw null; set => throw null; } + public string Placeholder { get => throw null; set => throw null; } + public bool ReadOnly { get => throw null; set => throw null; } + public bool Required { get => throw null; set => throw null; } + public string Size { get => throw null; set => throw null; } + public int Step { 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 Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.IntResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IntResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + public IntResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public int Result { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Intl` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Intl : ServiceStack.MetadataAttributeBase + { + public string Currency { get => throw null; set => throw null; } + public ServiceStack.CurrencyDisplay CurrencyDisplay { get => throw null; set => throw null; } + public ServiceStack.CurrencySign CurrencySign { get => throw null; set => throw null; } + public ServiceStack.DateStyle Date { get => throw null; set => throw null; } + public ServiceStack.DatePart Day { get => throw null; set => throw null; } + public ServiceStack.DateText Era { get => throw null; set => throw null; } + public int FractionalSecondDigits { get => throw null; set => throw null; } + public ServiceStack.DatePart Hour { get => throw null; set => throw null; } + public bool Hour12 { get => throw null; set => throw null; } + public Intl() => throw null; + public Intl(ServiceStack.IntlFormat type) => throw null; + public string Locale { get => throw null; set => throw null; } + public int MaximumFractionDigits { get => throw null; set => throw null; } + public int MaximumSignificantDigits { get => throw null; set => throw null; } + public int MinimumFractionDigits { get => throw null; set => throw null; } + public int MinimumIntegerDigits { get => throw null; set => throw null; } + public int MinimumSignificantDigits { get => throw null; set => throw null; } + public ServiceStack.DatePart Minute { get => throw null; set => throw null; } + public ServiceStack.DateMonth Month { get => throw null; set => throw null; } + public ServiceStack.Notation Notation { get => throw null; set => throw null; } + public ServiceStack.NumberStyle Number { get => throw null; set => throw null; } + public ServiceStack.Numeric Numeric { get => throw null; set => throw null; } + public string Options { get => throw null; set => throw null; } + public ServiceStack.RelativeTimeStyle RelativeTime { get => throw null; set => throw null; } + public ServiceStack.RoundingMode RoundingMode { get => throw null; set => throw null; } + public ServiceStack.DatePart Second { get => throw null; set => throw null; } + public ServiceStack.SignDisplay SignDisplay { get => throw null; set => throw null; } + public ServiceStack.TimeStyle Time { get => throw null; set => throw null; } + public string TimeZone { get => throw null; set => throw null; } + public ServiceStack.DateText TimeZoneName { get => throw null; set => throw null; } + public ServiceStack.IntlFormat Type { get => throw null; set => throw null; } + public string Unit { get => throw null; set => throw null; } + public ServiceStack.UnitDisplay UnitDisplay { get => throw null; set => throw null; } + public ServiceStack.DateText Weekday { get => throw null; set => throw null; } + public ServiceStack.DatePart Year { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.IntlDateTime` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IntlDateTime : ServiceStack.Intl + { + public IntlDateTime() => throw null; + public IntlDateTime(ServiceStack.DateStyle date, ServiceStack.TimeStyle time = default(ServiceStack.TimeStyle)) => throw null; + public override bool ShouldInclude(System.Reflection.PropertyInfo pi, string value) => throw null; + } + + // Generated from `ServiceStack.IntlFormat` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum IntlFormat + { + DateTime, + Number, + RelativeTime, + } + + // Generated from `ServiceStack.IntlNumber` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IntlNumber : ServiceStack.Intl + { + public IntlNumber() => throw null; + public IntlNumber(ServiceStack.NumberStyle style) => throw null; + public override bool ShouldInclude(System.Reflection.PropertyInfo pi, string value) => throw null; + } + + // Generated from `ServiceStack.IntlRelativeTime` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IntlRelativeTime : ServiceStack.Intl + { + public IntlRelativeTime() => throw null; + public IntlRelativeTime(ServiceStack.Numeric numeric) => throw null; + public override bool ShouldInclude(System.Reflection.PropertyInfo pi, string value) => throw null; + } + + // Generated from `ServiceStack.Lang` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum Lang + { + CSharp, + Dart, + FSharp, + Go, + Java, + Kotlin, + Php, + Python, + Swift, + TypeScript, + Vb, + } + + // Generated from `ServiceStack.LocodeCssAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LocodeCssAttribute : ServiceStack.AttributeBase + { + public string Field { get => throw null; set => throw null; } + public string Fieldset { get => throw null; set => throw null; } + public string Form { get => throw null; set => throw null; } + public LocodeCssAttribute() => throw null; + } + + // Generated from `ServiceStack.MetadataAttributeBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataAttributeBase : ServiceStack.AttributeBase, ServiceStack.IReflectAttributeFilter + { + public MetadataAttributeBase() => throw null; + public virtual bool ShouldInclude(System.Reflection.PropertyInfo pi, string value) => throw null; + } + + // Generated from `ServiceStack.MultiPartFieldAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MultiPartFieldAttribute : ServiceStack.AttributeBase + { + public string ContentType { get => throw null; set => throw null; } + public MultiPartFieldAttribute(System.Type stringSerializer) => throw null; + public MultiPartFieldAttribute(string contentType) => throw null; + public System.Type StringSerializer { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NamedConnectionAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NamedConnectionAttribute : ServiceStack.AttributeBase + { + public string Name { get => throw null; set => throw null; } + public NamedConnectionAttribute(string name) => throw null; + } + + // Generated from `ServiceStack.NavItem` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NavItem : ServiceStack.IMeta + { + public System.Collections.Generic.List Children { get => throw null; set => throw null; } + public string ClassName { get => throw null; set => throw null; } + public bool? Exact { get => throw null; set => throw null; } + public string Hide { get => throw null; set => throw null; } + public string Href { get => throw null; set => throw null; } + public string IconClass { get => throw null; set => throw null; } + public string IconSrc { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public string Label { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public NavItem() => throw null; + public string Show { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Network` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Network + { + External, + LocalSubnet, + Localhost, + } + + // Generated from `ServiceStack.Notation` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Notation + { + Compact, + Engineering, + Scientific, + Standard, + Undefined, + } + + // Generated from `ServiceStack.NotesAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NotesAttribute : ServiceStack.AttributeBase + { + public string Notes { get => throw null; set => throw null; } + public NotesAttribute(string notes) => throw null; + } + + // Generated from `ServiceStack.NumberCurrency` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class NumberCurrency + { + public const string AED = default; + public const string AUD = default; + public const string BRL = default; + public const string CAD = default; + public const string CHF = default; + public const string CLP = default; + public const string CNY = default; + public const string COP = default; + public const string CZK = default; + public const string DKK = default; + public const string EUR = default; + public const string GBP = default; + public const string HKD = default; + public const string HUF = default; + public const string IDR = default; + public const string ILS = default; + public const string INR = default; + public const string JPY = default; + public const string KRW = default; + public const string MXN = default; + public const string MYR = default; + public const string NOK = default; + public const string NZD = default; + public const string PHP = default; + public const string PLN = default; + public const string RON = default; + public const string RUB = default; + public const string SAR = default; + public const string SEK = default; + public const string SGD = default; + public const string THB = default; + public const string TRY = default; + public const string TWD = default; + public const string USD = default; + public const string ZAR = default; + } + + // Generated from `ServiceStack.NumberStyle` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum NumberStyle + { + Currency, + Decimal, + Percent, + Undefined, + Unit, + } + + // Generated from `ServiceStack.NumberUnit` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class NumberUnit + { + public const string Acre = default; + public const string Bit = default; + public const string Byte = default; + public const string Celsius = default; + public const string Centimeter = default; + public const string Day = default; + public const string Degree = default; + public const string Fahrenheit = default; + public const string Foot = default; + public const string Gallon = default; + public const string Gigabit = default; + public const string Gigabyte = default; + public const string Gram = default; + public const string Hectare = default; + public const string Hour = default; + public const string Inch = default; + public const string Kilobit = default; + public const string Kilobyte = default; + public const string Kilogram = default; + public const string Kilometer = default; + public const string Liter = default; + public const string Megabit = default; + public const string Megabyte = default; + public const string Meter = default; + public const string Mile = default; + public const string Milliliter = default; + public const string Millimeter = default; + public const string Millisecond = default; + public const string Minute = default; + public const string Month = default; + public const string Ounce = default; + public const string Percent = default; + public const string Petabyte = default; + public const string Pound = default; + public const string Second = default; + public const string Stone = default; + public const string Terabit = default; + public const string Terabyte = default; + public const string Week = default; + public const string Yard = default; + public const string Year = default; + } + + // Generated from `ServiceStack.Numeric` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Numeric + { + Always, + Auto, + Undefined, + } + + // Generated from `ServiceStack.PageArgAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageArgAttribute : ServiceStack.AttributeBase + { + public string Name { get => throw null; set => throw null; } + public PageArgAttribute(string name, string value) => throw null; + public string Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PageAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PageAttribute : ServiceStack.AttributeBase + { + public string Layout { get => throw null; set => throw null; } + public PageAttribute(string virtualPath, string layout = default(string)) => throw null; + public string VirtualPath { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PriorityAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PriorityAttribute : ServiceStack.AttributeBase + { + public PriorityAttribute(int value) => throw null; + public int Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Properties` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Properties : System.Collections.Generic.List + { + public Properties() => throw null; + public Properties(System.Collections.Generic.IEnumerable collection) => throw null; + } + + // Generated from `ServiceStack.Property` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Property + { + public string Name { get => throw null; set => throw null; } + public Property() => throw null; + public string Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class QueryBase : ServiceStack.IMeta, ServiceStack.IQuery + { + public virtual string Fields { get => throw null; set => throw null; } + public virtual string Include { get => throw null; set => throw null; } + public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public virtual string OrderBy { get => throw null; set => throw null; } + public virtual string OrderByDesc { get => throw null; set => throw null; } + protected QueryBase() => throw null; + public virtual int? Skip { get => throw null; set => throw null; } + public virtual int? Take { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryData<,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class QueryData : ServiceStack.QueryBase, ServiceStack.IMeta, ServiceStack.IQuery, ServiceStack.IQueryData, ServiceStack.IQueryData, ServiceStack.IReturn, ServiceStack.IReturn> + { + protected QueryData() => throw null; + } + + // Generated from `ServiceStack.QueryData<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class QueryData : ServiceStack.QueryBase, ServiceStack.IMeta, ServiceStack.IQuery, ServiceStack.IQueryData, ServiceStack.IQueryData, ServiceStack.IReturn, ServiceStack.IReturn> + { + protected QueryData() => throw null; + } + + // Generated from `ServiceStack.QueryDataAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class QueryDataAttribute : ServiceStack.AttributeBase + { + public ServiceStack.QueryTerm DefaultTerm { get => throw null; set => throw null; } + public QueryDataAttribute() => throw null; + public QueryDataAttribute(ServiceStack.QueryTerm defaultTerm) => throw null; + } + + // Generated from `ServiceStack.QueryDataFieldAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class QueryDataFieldAttribute : ServiceStack.AttributeBase + { + public string Condition { get => throw null; set => throw null; } + public string Field { get => throw null; set => throw null; } + public QueryDataFieldAttribute() => throw null; + public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryDb<,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class QueryDb : ServiceStack.QueryBase, ServiceStack.IMeta, ServiceStack.IQuery, ServiceStack.IQueryDb, ServiceStack.IQueryDb, ServiceStack.IReturn, ServiceStack.IReturn> + { + protected QueryDb() => throw null; + } + + // Generated from `ServiceStack.QueryDb<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class QueryDb : ServiceStack.QueryBase, ServiceStack.IMeta, ServiceStack.IQuery, ServiceStack.IQueryDb, ServiceStack.IQueryDb, ServiceStack.IReturn, ServiceStack.IReturn> + { + protected QueryDb() => throw null; + } + + // Generated from `ServiceStack.QueryDbAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class QueryDbAttribute : ServiceStack.AttributeBase + { + public ServiceStack.QueryTerm DefaultTerm { get => throw null; set => throw null; } + public QueryDbAttribute() => throw null; + public QueryDbAttribute(ServiceStack.QueryTerm defaultTerm) => throw null; + } + + // Generated from `ServiceStack.QueryDbFieldAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class QueryDbFieldAttribute : ServiceStack.AttributeBase + { + public string Field { get => throw null; set => throw null; } + public string Operand { get => throw null; set => throw null; } + public QueryDbFieldAttribute() => throw null; + public string Template { get => throw null; set => throw null; } + public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } + public int ValueArity { get => throw null; set => throw null; } + public string ValueFormat { get => throw null; set => throw null; } + public ServiceStack.ValueStyle ValueStyle { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryResponse<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class QueryResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta, ServiceStack.IQueryResponse + { + public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public virtual int Offset { get => throw null; set => throw null; } + public QueryResponse() => throw null; + public virtual ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List Results { get => throw null; set => throw null; } + public virtual int Total { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryTerm` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum QueryTerm + { + And, + Default, + Ensure, + Or, + } + + // Generated from `ServiceStack.RefAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RefAttribute : ServiceStack.AttributeBase + { + public string Model { get => throw null; set => throw null; } + public RefAttribute() => throw null; + public string RefId { get => throw null; set => throw null; } + public string RefLabel { get => throw null; set => throw null; } + public string SelfId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ReflectAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReflectAttribute + { + public System.Collections.Generic.List> ConstructorArgs { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public System.Collections.Generic.List> PropertyArgs { get => throw null; set => throw null; } + public ReflectAttribute() => throw null; + } + + // Generated from `ServiceStack.RelativeTimeStyle` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum RelativeTimeStyle + { + Long, + Narrow, + Short, + Undefined, + } + + // Generated from `ServiceStack.RequestAttributes` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum RequestAttributes + { + Any, + AnyCallStyle, + AnyEndpoint, + AnyFormat, + AnyHttpMethod, + AnyNetworkAccessType, + AnySecurityMode, + Csv, + EndpointOther, + External, + FormatOther, + Grpc, + Html, + Http, + HttpDelete, + HttpGet, + HttpHead, + HttpOptions, + HttpOther, + HttpPatch, + HttpPost, + HttpPut, + InProcess, + InSecure, + InternalNetworkAccess, + Json, + Jsv, + LocalSubnet, + Localhost, + MessageQueue, + MsgPack, + None, + OneWay, + ProtoBuf, + Reply, + Secure, + Soap11, + Soap12, + Tcp, + Wire, + Xml, + } + + // Generated from `ServiceStack.RequestAttributesExtensions` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class RequestAttributesExtensions + { + public static string FromFormat(this ServiceStack.Format format) => throw null; + public static bool IsExternal(this ServiceStack.RequestAttributes attrs) => throw null; + public static bool IsLocalSubnet(this ServiceStack.RequestAttributes attrs) => throw null; + public static bool IsLocalhost(this ServiceStack.RequestAttributes attrs) => throw null; + public static ServiceStack.Feature ToFeature(this ServiceStack.Format format) => throw null; + public static ServiceStack.Format ToFormat(this ServiceStack.Feature feature) => throw null; + public static ServiceStack.Format ToFormat(this string format) => throw null; + public static ServiceStack.RequestAttributes ToRequestAttribute(this ServiceStack.Format format) => throw null; + public static ServiceStack.Feature ToSoapFeature(this ServiceStack.RequestAttributes attributes) => throw null; + } + + // Generated from `ServiceStack.RequestLogEntry` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestLogEntry : ServiceStack.IMeta + { + public string AbsoluteUri { get => throw null; set => throw null; } + public System.DateTime DateTime { get => throw null; set => throw null; } + public object ErrorResponse { get => throw null; set => throw null; } + public System.Collections.IDictionary ExceptionData { get => throw null; set => throw null; } + public string ExceptionSource { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary FormData { get => throw null; set => throw null; } + public string ForwardedFor { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } + public string HttpMethod { get => throw null; set => throw null; } + public System.Int64 Id { get => throw null; set => throw null; } + public string IpAddress { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string OperationName { get => throw null; set => throw null; } + public string PathInfo { get => throw null; set => throw null; } + public string Referer { get => throw null; set => throw null; } + public string RequestBody { get => throw null; set => throw null; } + public object RequestDto { get => throw null; set => throw null; } + public System.TimeSpan RequestDuration { get => throw null; set => throw null; } + public RequestLogEntry() => throw null; + public object ResponseDto { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ResponseHeaders { get => throw null; set => throw null; } + public object Session { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public int StatusCode { get => throw null; set => throw null; } + public string StatusDescription { get => throw null; set => throw null; } + public string TraceId { get => throw null; set => throw null; } + public string UserAuthId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ResponseError` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ResponseError : ServiceStack.IMeta + { + public string ErrorCode { get => throw null; set => throw null; } + public string FieldName { get => throw null; set => throw null; } + public string Message { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ResponseError() => throw null; + } + + // Generated from `ServiceStack.ResponseStatus` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ResponseStatus : ServiceStack.IMeta + { + public string ErrorCode { get => throw null; set => throw null; } + public System.Collections.Generic.List Errors { get => throw null; set => throw null; } + public string Message { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ResponseStatus() => throw null; + public ResponseStatus(string errorCode) => throw null; + public ResponseStatus(string errorCode, string message) => throw null; + public string StackTrace { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RestrictAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RestrictAttribute : ServiceStack.AttributeBase + { + public ServiceStack.RequestAttributes AccessTo { get => throw null; set => throw null; } + public ServiceStack.RequestAttributes[] AccessibleToAny { get => throw null; set => throw null; } + public bool CanShowTo(ServiceStack.RequestAttributes restrictions) => throw null; + public bool ExternalOnly { get => throw null; set => throw null; } + public bool HasAccessTo(ServiceStack.RequestAttributes restrictions) => throw null; + public bool HasNoAccessRestrictions { get => throw null; } + public bool HasNoVisibilityRestrictions { get => throw null; } + public bool Hide { set => throw null; } + public bool InternalOnly { get => throw null; set => throw null; } + public bool LocalhostOnly { get => throw null; set => throw null; } + public RestrictAttribute() => throw null; + public RestrictAttribute(ServiceStack.RequestAttributes[] allowedAccessScenarios, ServiceStack.RequestAttributes[] visibleToScenarios) => throw null; + public RestrictAttribute(params ServiceStack.RequestAttributes[] restrictAccessAndVisibilityToScenarios) => throw null; + public ServiceStack.RequestAttributes VisibilityTo { get => throw null; set => throw null; } + public bool VisibleInternalOnly { get => throw null; set => throw null; } + public bool VisibleLocalhostOnly { get => throw null; set => throw null; } + public ServiceStack.RequestAttributes[] VisibleToAny { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RestrictExtensions` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class RestrictExtensions + { + public static bool HasAnyRestrictionsOf(ServiceStack.RequestAttributes allRestrictions, ServiceStack.RequestAttributes restrictions) => throw null; + public static ServiceStack.RequestAttributes ToAllowedFlagsSet(this ServiceStack.RequestAttributes restrictTo) => throw null; + } + + // Generated from `ServiceStack.RoundingMode` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum RoundingMode + { + Ceil, + Expand, + Floor, + HalfCeil, + HalfEven, + HalfExpand, + HalfFloor, + HalfTrunc, + Trunc, + Undefined, + } + + // Generated from `ServiceStack.RouteAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RouteAttribute : ServiceStack.AttributeBase, ServiceStack.IReflectAttributeConverter + { + protected bool Equals(ServiceStack.RouteAttribute other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public string Matches { get => throw null; set => throw null; } + public string Notes { get => throw null; set => throw null; } + public string Path { get => throw null; set => throw null; } + public int Priority { get => throw null; set => throw null; } + public RouteAttribute(string path) => throw null; + public RouteAttribute(string path, string verbs) => throw null; + public string Summary { get => throw null; set => throw null; } + public ServiceStack.ReflectAttribute ToReflectAttribute() => throw null; + public string Verbs { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ScriptValue` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct ScriptValue : ServiceStack.IScriptValue + { + public string Eval { get => throw null; set => throw null; } + public string Expression { get => throw null; set => throw null; } + public bool NoCache { get => throw null; set => throw null; } + // Stub generator skipped constructor + public object Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ScriptValueAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ScriptValueAttribute : ServiceStack.AttributeBase, ServiceStack.IScriptValue + { + public string Eval { get => throw null; set => throw null; } + public string Expression { get => throw null; set => throw null; } + public bool NoCache { get => throw null; set => throw null; } + protected ScriptValueAttribute() => throw null; + public object Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Security` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Security + { + InSecure, + Secure, + } + + // Generated from `ServiceStack.SignDisplay` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum SignDisplay + { + Always, + Auto, + ExceptZero, + Negative, + Never, + Undefined, + } + + // Generated from `ServiceStack.SqlTemplate` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlTemplate + { + public const string CaseInsensitiveLike = default; + public const string CaseSensitiveLike = default; + public const string GreaterThan = default; + public const string GreaterThanOrEqual = default; + public const string IsNotNull = default; + public const string IsNull = default; + public const string LessThan = default; + public const string LessThanOrEqual = default; + public const string NotEqual = default; + } + + // Generated from `ServiceStack.StrictModeException` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StrictModeException : System.ArgumentException + { + public string Code { get => throw null; set => throw null; } + public StrictModeException() => throw null; + public StrictModeException(string message, System.Exception innerException, string code = default(string)) => throw null; + public StrictModeException(string message, string code = default(string)) => throw null; + public StrictModeException(string message, string paramName, string code = default(string)) => throw null; + } + + // Generated from `ServiceStack.StringResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public string Result { get => throw null; set => throw null; } + public StringResponse() => throw null; + } + + // Generated from `ServiceStack.StringsResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringsResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + public StringsResponse() => throw null; + } + + // Generated from `ServiceStack.SwaggerType` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SwaggerType + { + public const string Array = default; + public const string Boolean = default; + public const string Byte = default; + public const string Date = default; + public const string Double = default; + public const string Float = default; + public const string Int = default; + public const string Long = default; + public const string String = default; + } + + // Generated from `ServiceStack.SynthesizeAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SynthesizeAttribute : ServiceStack.AttributeBase + { + public SynthesizeAttribute() => throw null; + } + + // Generated from `ServiceStack.TagAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TagAttribute : ServiceStack.AttributeBase + { + public string Name { get => throw null; set => throw null; } + public TagAttribute() => throw null; + public TagAttribute(string name) => throw null; + } + + // Generated from `ServiceStack.TagNames` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TagNames + { + public const string Auth = default; + } + + // Generated from `ServiceStack.TextInputAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TextInputAttribute : ServiceStack.AttributeBase + { + public string[] AllowableValues { get => throw null; set => throw null; } + public string Help { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public bool? IsRequired { get => throw null; set => throw null; } + public string Label { get => throw null; set => throw null; } + public string Max { get => throw null; set => throw null; } + public int? MaxLength { get => throw null; set => throw null; } + public string Min { get => throw null; set => throw null; } + public int? MinLength { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string Pattern { get => throw null; set => throw null; } + public string Placeholder { get => throw null; set => throw null; } + public bool? ReadOnly { get => throw null; set => throw null; } + public string Size { get => throw null; set => throw null; } + public int? Step { get => throw null; set => throw null; } + public TextInputAttribute() => throw null; + public TextInputAttribute(string id) => throw null; + public TextInputAttribute(string id, string type) => throw null; + public string Type { get => throw null; set => throw null; } + public string Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.TimeStyle` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum TimeStyle + { + Full, + Long, + Medium, + Short, + Undefined, + } + + // Generated from `ServiceStack.UnitDisplay` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum UnitDisplay + { + Long, + Narrow, + Short, + Undefined, + } + + // Generated from `ServiceStack.UploadFile` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UploadFile + { + public string ContentType { get => throw null; set => throw null; } + public string FieldName { get => throw null; set => throw null; } + public string FileName { get => throw null; set => throw null; } + public System.IO.Stream Stream { get => throw null; set => throw null; } + public UploadFile(System.IO.Stream stream) => throw null; + public UploadFile(string fileName, System.IO.Stream stream) => throw null; + public UploadFile(string fileName, System.IO.Stream stream, string fieldName) => throw null; + public UploadFile(string fileName, System.IO.Stream stream, string fieldName, string contentType) => throw null; + } + + // Generated from `ServiceStack.UploadToAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UploadToAttribute : ServiceStack.AttributeBase + { + public string Location { get => throw null; set => throw null; } + public UploadToAttribute(string location) => throw null; + } + + // Generated from `ServiceStack.ValidateAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateAttribute : ServiceStack.AttributeBase, ServiceStack.IReflectAttributeConverter, ServiceStack.IValidateRule + { + public string[] AllConditions { get => throw null; set => throw null; } + public string[] AnyConditions { get => throw null; set => throw null; } + public static string Combine(string comparand, params string[] conditions) => throw null; + public string Condition { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public string Message { get => throw null; set => throw null; } + public ServiceStack.ReflectAttribute ToReflectAttribute() => throw null; + public ValidateAttribute() => throw null; + public ValidateAttribute(string validator) => throw null; + public string Validator { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ValidateCreditCardAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateCreditCardAttribute : ServiceStack.ValidateAttribute + { + public ValidateCreditCardAttribute() => throw null; + } + + // Generated from `ServiceStack.ValidateEmailAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateEmailAttribute : ServiceStack.ValidateAttribute + { + public ValidateEmailAttribute() => throw null; + } + + // Generated from `ServiceStack.ValidateEmptyAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateEmptyAttribute : ServiceStack.ValidateAttribute + { + public ValidateEmptyAttribute() => throw null; + } + + // Generated from `ServiceStack.ValidateEqualAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateEqualAttribute : ServiceStack.ValidateAttribute + { + public ValidateEqualAttribute(int value) => throw null; + public ValidateEqualAttribute(string value) => throw null; + } + + // Generated from `ServiceStack.ValidateExactLengthAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateExactLengthAttribute : ServiceStack.ValidateAttribute + { + public ValidateExactLengthAttribute(int length) => throw null; + } + + // Generated from `ServiceStack.ValidateExclusiveBetweenAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateExclusiveBetweenAttribute : ServiceStack.ValidateAttribute + { + public ValidateExclusiveBetweenAttribute(System.Char from, System.Char to) => throw null; + public ValidateExclusiveBetweenAttribute(int from, int to) => throw null; + public ValidateExclusiveBetweenAttribute(string from, string to) => throw null; + } + + // Generated from `ServiceStack.ValidateGreaterThanAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateGreaterThanAttribute : ServiceStack.ValidateAttribute + { + public ValidateGreaterThanAttribute(int value) => throw null; + } + + // Generated from `ServiceStack.ValidateGreaterThanOrEqualAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateGreaterThanOrEqualAttribute : ServiceStack.ValidateAttribute + { + public ValidateGreaterThanOrEqualAttribute(int value) => throw null; + } + + // Generated from `ServiceStack.ValidateHasPermissionAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateHasPermissionAttribute : ServiceStack.ValidateRequestAttribute + { + public ValidateHasPermissionAttribute(string permission) => throw null; + } + + // Generated from `ServiceStack.ValidateHasRoleAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateHasRoleAttribute : ServiceStack.ValidateRequestAttribute + { + public ValidateHasRoleAttribute(string role) => throw null; + } + + // Generated from `ServiceStack.ValidateInclusiveBetweenAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateInclusiveBetweenAttribute : ServiceStack.ValidateAttribute + { + public ValidateInclusiveBetweenAttribute(System.Char from, System.Char to) => throw null; + public ValidateInclusiveBetweenAttribute(int from, int to) => throw null; + public ValidateInclusiveBetweenAttribute(string from, string to) => throw null; + } + + // Generated from `ServiceStack.ValidateIsAdminAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateIsAdminAttribute : ServiceStack.ValidateRequestAttribute + { + public ValidateIsAdminAttribute() => throw null; + } + + // Generated from `ServiceStack.ValidateIsAuthenticatedAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateIsAuthenticatedAttribute : ServiceStack.ValidateRequestAttribute + { + public ValidateIsAuthenticatedAttribute() => throw null; + } + + // Generated from `ServiceStack.ValidateLengthAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateLengthAttribute : ServiceStack.ValidateAttribute + { + public ValidateLengthAttribute(int min, int max) => throw null; + } + + // Generated from `ServiceStack.ValidateLessThanAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateLessThanAttribute : ServiceStack.ValidateAttribute + { + public ValidateLessThanAttribute(int value) => throw null; + } + + // Generated from `ServiceStack.ValidateLessThanOrEqualAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateLessThanOrEqualAttribute : ServiceStack.ValidateAttribute + { + public ValidateLessThanOrEqualAttribute(int value) => throw null; + } + + // Generated from `ServiceStack.ValidateMaximumLengthAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateMaximumLengthAttribute : ServiceStack.ValidateAttribute + { + public ValidateMaximumLengthAttribute(int max) => throw null; + } + + // Generated from `ServiceStack.ValidateMinimumLengthAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateMinimumLengthAttribute : ServiceStack.ValidateAttribute + { + public ValidateMinimumLengthAttribute(int min) => throw null; + } + + // Generated from `ServiceStack.ValidateNotEmptyAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateNotEmptyAttribute : ServiceStack.ValidateAttribute + { + public ValidateNotEmptyAttribute() => throw null; + } + + // Generated from `ServiceStack.ValidateNotEqualAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateNotEqualAttribute : ServiceStack.ValidateAttribute + { + public ValidateNotEqualAttribute(int value) => throw null; + public ValidateNotEqualAttribute(string value) => throw null; + } + + // Generated from `ServiceStack.ValidateNotNullAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateNotNullAttribute : ServiceStack.ValidateAttribute + { + public ValidateNotNullAttribute() => throw null; + } + + // Generated from `ServiceStack.ValidateNullAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateNullAttribute : ServiceStack.ValidateAttribute + { + public ValidateNullAttribute() => throw null; + } + + // Generated from `ServiceStack.ValidateRegularExpressionAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateRegularExpressionAttribute : ServiceStack.ValidateAttribute + { + public ValidateRegularExpressionAttribute(string pattern) => throw null; + } + + // Generated from `ServiceStack.ValidateRequestAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateRequestAttribute : ServiceStack.AttributeBase, ServiceStack.IReflectAttributeConverter, ServiceStack.IValidateRule + { + public string[] AllConditions { get => throw null; set => throw null; } + public string[] AnyConditions { get => throw null; set => throw null; } + public string Condition { get => throw null; set => throw null; } + public string[] Conditions { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public string Message { get => throw null; set => throw null; } + public int StatusCode { get => throw null; set => throw null; } + public ServiceStack.ReflectAttribute ToReflectAttribute() => throw null; + public ValidateRequestAttribute() => throw null; + public ValidateRequestAttribute(string validator) => throw null; + public string Validator { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ValidateRule` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateRule : ServiceStack.IValidateRule + { + public string Condition { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public string Message { get => throw null; set => throw null; } + public ValidateRule() => throw null; + public string Validator { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ValidateScalePrecisionAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateScalePrecisionAttribute : ServiceStack.ValidateAttribute + { + public ValidateScalePrecisionAttribute(int scale, int precision) => throw null; + } + + // Generated from `ServiceStack.ValidationRule` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationRule : ServiceStack.ValidateRule + { + public string CreatedBy { get => throw null; set => throw null; } + public System.DateTime? CreatedDate { get => throw null; set => throw null; } + protected bool Equals(ServiceStack.ValidationRule other) => throw null; + public override bool Equals(object obj) => throw null; + public string Field { get => throw null; set => throw null; } + public override int GetHashCode() => throw null; + public int Id { get => throw null; set => throw null; } + public string ModifiedBy { get => throw null; set => throw null; } + public System.DateTime? ModifiedDate { get => throw null; set => throw null; } + public string Notes { get => throw null; set => throw null; } + public string SuspendedBy { get => throw null; set => throw null; } + public System.DateTime? SuspendedDate { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } + public ValidationRule() => throw null; + } + + // Generated from `ServiceStack.ValueStyle` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum ValueStyle + { + List, + Multiple, + Single, + } + + namespace Auth + { + // Generated from `ServiceStack.Auth.IAuthTokens` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthTokens : ServiceStack.Auth.IUserAuthDetailsExtended + { + string AccessToken { get; set; } + string AccessTokenSecret { get; set; } + System.Collections.Generic.Dictionary Items { get; set; } + string Provider { get; set; } + string RefreshToken { get; set; } + System.DateTime? RefreshTokenExpiry { get; set; } + string RequestToken { get; set; } + string RequestTokenSecret { get; set; } + string UserId { get; set; } + } + + // Generated from `ServiceStack.Auth.IPasswordHasher` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPasswordHasher + { + string HashPassword(string password); + bool VerifyPassword(string hashedPassword, string providedPassword, out bool needsRehash); + System.Byte Version { get; } + } + + // Generated from `ServiceStack.Auth.IUserAuth` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUserAuth : ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.IMeta + { + System.DateTime CreatedDate { get; set; } + string DigestHa1Hash { get; set; } + int Id { get; set; } + int InvalidLoginAttempts { get; set; } + System.DateTime? LastLoginAttempt { get; set; } + System.DateTime? LockedDate { get; set; } + System.DateTime ModifiedDate { get; set; } + string PasswordHash { get; set; } + System.Collections.Generic.List Permissions { get; set; } + string PrimaryEmail { get; set; } + int? RefId { get; set; } + string RefIdStr { get; set; } + System.Collections.Generic.List Roles { get; set; } + string Salt { get; set; } + } + + // Generated from `ServiceStack.Auth.IUserAuthDetails` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUserAuthDetails : ServiceStack.Auth.IAuthTokens, ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.IMeta + { + System.DateTime CreatedDate { get; set; } + int Id { get; set; } + System.DateTime ModifiedDate { get; set; } + int? RefId { get; set; } + string RefIdStr { get; set; } + int UserAuthId { get; set; } + } + + // Generated from `ServiceStack.Auth.IUserAuthDetailsExtended` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUserAuthDetailsExtended + { + string Address { get; set; } + string Address2 { get; set; } + System.DateTime? BirthDate { get; set; } + string BirthDateRaw { get; set; } + string City { get; set; } + string Company { get; set; } + string Country { get; set; } + string Culture { get; set; } + string DisplayName { get; set; } + string Email { get; set; } + string FirstName { get; set; } + string FullName { get; set; } + string Gender { get; set; } + string Language { get; set; } + string LastName { get; set; } + string MailAddress { get; set; } + string Nickname { get; set; } + string PhoneNumber { get; set; } + string PostalCode { get; set; } + string State { get; set; } + string TimeZone { get; set; } + string UserName { get; set; } + } + + // Generated from `ServiceStack.Auth.UserAuthBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UserAuthBase : ServiceStack.Auth.IUserAuth, ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.IMeta + { + public virtual string Address { get => throw null; set => throw null; } + public virtual string Address2 { get => throw null; set => throw null; } + public virtual System.DateTime? BirthDate { get => throw null; set => throw null; } + public virtual string BirthDateRaw { get => throw null; set => throw null; } + public virtual string City { get => throw null; set => throw null; } + public virtual string Company { get => throw null; set => throw null; } + public virtual string Country { get => throw null; set => throw null; } + public virtual System.DateTime CreatedDate { get => throw null; set => throw null; } + public virtual string Culture { get => throw null; set => throw null; } + public virtual string DigestHa1Hash { get => throw null; set => throw null; } + public virtual string DisplayName { get => throw null; set => throw null; } + public virtual string Email { get => throw null; set => throw null; } + public virtual string FirstName { get => throw null; set => throw null; } + public virtual string FullName { get => throw null; set => throw null; } + public virtual string Gender { get => throw null; set => throw null; } + public virtual int Id { get => throw null; set => throw null; } + public virtual int InvalidLoginAttempts { get => throw null; set => throw null; } + public virtual string Language { get => throw null; set => throw null; } + public virtual System.DateTime? LastLoginAttempt { get => throw null; set => throw null; } + public virtual string LastName { get => throw null; set => throw null; } + public virtual System.DateTime? LockedDate { get => throw null; set => throw null; } + public virtual string MailAddress { get => throw null; set => throw null; } + public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public virtual System.DateTime ModifiedDate { get => throw null; set => throw null; } + public virtual string Nickname { get => throw null; set => throw null; } + public virtual string PasswordHash { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public virtual string PhoneNumber { get => throw null; set => throw null; } + public virtual string PostalCode { get => throw null; set => throw null; } + public virtual string PrimaryEmail { get => throw null; set => throw null; } + public virtual int? RefId { get => throw null; set => throw null; } + public virtual string RefIdStr { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public virtual string Salt { get => throw null; set => throw null; } + public virtual string State { get => throw null; set => throw null; } + public virtual string TimeZone { get => throw null; set => throw null; } + public UserAuthBase() => throw null; + public virtual string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.UserAuthDetailsBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UserAuthDetailsBase : ServiceStack.Auth.IAuthTokens, ServiceStack.Auth.IUserAuthDetails, ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.IMeta + { + public virtual string AccessToken { get => throw null; set => throw null; } + public virtual string AccessTokenSecret { get => throw null; set => throw null; } + public virtual string Address { get => throw null; set => throw null; } + public virtual string Address2 { get => throw null; set => throw null; } + public virtual System.DateTime? BirthDate { get => throw null; set => throw null; } + public virtual string BirthDateRaw { get => throw null; set => throw null; } + public virtual string City { get => throw null; set => throw null; } + public virtual string Company { get => throw null; set => throw null; } + public virtual string Country { get => throw null; set => throw null; } + public virtual System.DateTime CreatedDate { get => throw null; set => throw null; } + public virtual string Culture { get => throw null; set => throw null; } + public virtual string DisplayName { get => throw null; set => throw null; } + public virtual string Email { get => throw null; set => throw null; } + public virtual string FirstName { get => throw null; set => throw null; } + public virtual string FullName { get => throw null; set => throw null; } + public virtual string Gender { get => throw null; set => throw null; } + public virtual int Id { get => throw null; set => throw null; } + public virtual System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public virtual string Language { get => throw null; set => throw null; } + public virtual string LastName { get => throw null; set => throw null; } + public virtual string MailAddress { get => throw null; set => throw null; } + public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public virtual System.DateTime ModifiedDate { get => throw null; set => throw null; } + public virtual string Nickname { get => throw null; set => throw null; } + public virtual string PhoneNumber { get => throw null; set => throw null; } + public virtual string PostalCode { get => throw null; set => throw null; } + public virtual string Provider { get => throw null; set => throw null; } + public virtual int? RefId { get => throw null; set => throw null; } + public virtual string RefIdStr { get => throw null; set => throw null; } + public virtual string RefreshToken { get => throw null; set => throw null; } + public virtual System.DateTime? RefreshTokenExpiry { get => throw null; set => throw null; } + public virtual string RequestToken { get => throw null; set => throw null; } + public virtual string RequestTokenSecret { get => throw null; set => throw null; } + public virtual string State { get => throw null; set => throw null; } + public virtual string TimeZone { get => throw null; set => throw null; } + public UserAuthDetailsBase() => throw null; + public virtual int UserAuthId { get => throw null; set => throw null; } + public virtual string UserId { get => throw null; set => throw null; } + public virtual string UserName { get => throw null; set => throw null; } + } + + } + namespace Caching + { + // Generated from `ServiceStack.Caching.ICacheClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICacheClient : System.IDisposable + { + bool Add(string key, T value); + bool Add(string key, T value, System.DateTime expiresAt); + bool Add(string key, T value, System.TimeSpan expiresIn); + System.Int64 Decrement(string key, System.UInt32 amount); + void FlushAll(); + T Get(string key); + System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys); + System.Int64 Increment(string key, System.UInt32 amount); + bool Remove(string key); + void RemoveAll(System.Collections.Generic.IEnumerable keys); + bool Replace(string key, T value); + bool Replace(string key, T value, System.DateTime expiresAt); + bool Replace(string key, T value, System.TimeSpan expiresIn); + bool Set(string key, T value); + bool Set(string key, T value, System.DateTime expiresAt); + bool Set(string key, T value, System.TimeSpan expiresIn); + void SetAll(System.Collections.Generic.IDictionary values); + } + + // Generated from `ServiceStack.Caching.ICacheClientAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICacheClientAsync : System.IAsyncDisposable + { + System.Threading.Tasks.Task AddAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RemoveExpiredEntriesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Caching.ICacheClientExtended` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICacheClientExtended : ServiceStack.Caching.ICacheClient, System.IDisposable + { + System.Collections.Generic.IEnumerable GetKeysByPattern(string pattern); + System.TimeSpan? GetTimeToLive(string key); + void RemoveExpiredEntries(); + } + + // Generated from `ServiceStack.Caching.IDeflateProvider` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDeflateProvider + { + System.Byte[] Deflate(System.Byte[] bytes); + System.Byte[] Deflate(string text); + System.IO.Stream DeflateStream(System.IO.Stream outputStream); + string Inflate(System.Byte[] gzBuffer); + System.Byte[] InflateBytes(System.Byte[] gzBuffer); + System.IO.Stream InflateStream(System.IO.Stream inputStream); + } + + // Generated from `ServiceStack.Caching.IGZipProvider` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IGZipProvider + { + string GUnzip(System.Byte[] gzBuffer); + System.Byte[] GUnzipBytes(System.Byte[] gzBuffer); + System.IO.Stream GUnzipStream(System.IO.Stream gzStream); + System.Byte[] GZip(System.Byte[] bytes); + System.Byte[] GZip(string text); + System.IO.Stream GZipStream(System.IO.Stream outputStream); + } + + // Generated from `ServiceStack.Caching.IMemcachedClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMemcachedClient : System.IDisposable + { + bool Add(string key, object value); + bool Add(string key, object value, System.DateTime expiresAt); + bool CheckAndSet(string key, object value, System.UInt64 lastModifiedValue); + bool CheckAndSet(string key, object value, System.UInt64 lastModifiedValue, System.DateTime expiresAt); + System.Int64 Decrement(string key, System.UInt32 amount); + void FlushAll(); + object Get(string key); + object Get(string key, out System.UInt64 lastModifiedValue); + System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys); + System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys, out System.Collections.Generic.IDictionary lastModifiedValues); + System.Int64 Increment(string key, System.UInt32 amount); + bool Remove(string key); + void RemoveAll(System.Collections.Generic.IEnumerable keys); + bool Replace(string key, object value); + bool Replace(string key, object value, System.DateTime expiresAt); + bool Set(string key, object value); + bool Set(string key, object value, System.DateTime expiresAt); + } + + // Generated from `ServiceStack.Caching.IRemoveByPattern` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRemoveByPattern + { + void RemoveByPattern(string pattern); + void RemoveByRegex(string regex); + } + + // Generated from `ServiceStack.Caching.IRemoveByPatternAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRemoveByPatternAsync + { + System.Threading.Tasks.Task RemoveByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RemoveByRegexAsync(string regex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Caching.ISession` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISession + { + T Get(string key); + object this[string key] { get; set; } + bool Remove(string key); + void RemoveAll(); + void Set(string key, T value); + } + + // Generated from `ServiceStack.Caching.ISessionAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISessionAsync + { + System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RemoveAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Caching.ISessionFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISessionFactory + { + ServiceStack.Caching.ISession CreateSession(string sessionId); + ServiceStack.Caching.ISessionAsync CreateSessionAsync(string sessionId); + ServiceStack.Caching.ISession GetOrCreateSession(); + ServiceStack.Caching.ISession GetOrCreateSession(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes); + ServiceStack.Caching.ISessionAsync GetOrCreateSessionAsync(); + ServiceStack.Caching.ISessionAsync GetOrCreateSessionAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes); + } + + // Generated from `ServiceStack.Caching.IStreamCompressor` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IStreamCompressor + { + System.Byte[] Compress(System.Byte[] bytes); + System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)); + System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)); + string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)); + System.IO.Stream Decompress(System.IO.Stream zipBuffer, bool leaveOpen = default(bool)); + System.Byte[] DecompressBytes(System.Byte[] zipBuffer); + string Encoding { get; } + } + + } + namespace Commands + { + // Generated from `ServiceStack.Commands.ICommand` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICommand + { + void Execute(); + } + + // Generated from `ServiceStack.Commands.ICommand<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICommand + { + ReturnType Execute(); + } + + // Generated from `ServiceStack.Commands.ICommandExec` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICommandExec : ServiceStack.Commands.ICommand + { + } + + // Generated from `ServiceStack.Commands.ICommandList<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICommandList : ServiceStack.Commands.ICommand> + { + } + + } + namespace Configuration + { + // Generated from `ServiceStack.Configuration.IAppSettings` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAppSettings + { + bool Exists(string key); + T Get(string name); + T Get(string name, T defaultValue); + System.Collections.Generic.Dictionary GetAll(); + System.Collections.Generic.List GetAllKeys(); + System.Collections.Generic.IDictionary GetDictionary(string key); + System.Collections.Generic.List> GetKeyValuePairs(string key); + System.Collections.Generic.IList GetList(string key); + string GetString(string name); + void Set(string key, T value); + } + + // Generated from `ServiceStack.Configuration.IContainerAdapter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IContainerAdapter : ServiceStack.Configuration.IResolver + { + T Resolve(); + } + + // Generated from `ServiceStack.Configuration.IHasResolver` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasResolver + { + ServiceStack.Configuration.IResolver Resolver { get; } + } + + // Generated from `ServiceStack.Configuration.IRelease` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRelease + { + void Release(object instance); + } + + // Generated from `ServiceStack.Configuration.IResolver` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IResolver + { + T TryResolve(); + } + + // Generated from `ServiceStack.Configuration.IRuntimeAppSettings` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRuntimeAppSettings + { + T Get(ServiceStack.Web.IRequest request, string name, T defaultValue); + } + + // Generated from `ServiceStack.Configuration.ITypeFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypeFactory + { + object CreateInstance(ServiceStack.Configuration.IResolver resolver, System.Type type); + } + + } + namespace Data + { + // Generated from `ServiceStack.Data.DataException` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DataException : System.Exception + { + public DataException() => throw null; + public DataException(string message) => throw null; + public DataException(string message, System.Exception innerException) => throw null; + } + + // Generated from `ServiceStack.Data.IEntityStore` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IEntityStore : System.IDisposable + { + void Delete(T entity); + void DeleteAll(); + void DeleteById(object id); + void DeleteByIds(System.Collections.ICollection ids); + T GetById(object id); + System.Collections.Generic.IList GetByIds(System.Collections.ICollection ids); + T Store(T entity); + void StoreAll(System.Collections.Generic.IEnumerable entities); + } + + // Generated from `ServiceStack.Data.IEntityStore<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IEntityStore + { + void Delete(T entity); + void DeleteAll(); + void DeleteById(object id); + void DeleteByIds(System.Collections.IEnumerable ids); + System.Collections.Generic.IList GetAll(); + T GetById(object id); + System.Collections.Generic.IList GetByIds(System.Collections.IEnumerable ids); + T Store(T entity); + void StoreAll(System.Collections.Generic.IEnumerable entities); + } + + // Generated from `ServiceStack.Data.IEntityStoreAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IEntityStoreAsync + { + System.Threading.Tasks.Task DeleteAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteByIdsAsync(System.Collections.ICollection ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetByIdsAsync(System.Collections.ICollection ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task StoreAllAsync(System.Collections.Generic.IEnumerable entities, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task StoreAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Data.IEntityStoreAsync<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IEntityStoreAsync + { + System.Threading.Tasks.Task DeleteAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task StoreAllAsync(System.Collections.Generic.IEnumerable entities, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task StoreAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Data.OptimisticConcurrencyException` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OptimisticConcurrencyException : ServiceStack.Data.DataException + { + public OptimisticConcurrencyException() => throw null; + public OptimisticConcurrencyException(string message) => throw null; + public OptimisticConcurrencyException(string message, System.Exception innerException) => throw null; + } + + } + namespace DataAnnotations + { + // Generated from `ServiceStack.DataAnnotations.AliasAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AliasAttribute : ServiceStack.AttributeBase + { + public AliasAttribute(string name) => throw null; + public string Name { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.AutoIdAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoIdAttribute : ServiceStack.AttributeBase + { + public AutoIdAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.AutoIncrementAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoIncrementAttribute : ServiceStack.AttributeBase + { + public AutoIncrementAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.BelongToAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BelongToAttribute : ServiceStack.AttributeBase + { + public BelongToAttribute(System.Type belongToTableType) => throw null; + public System.Type BelongToTableType { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.CheckConstraintAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CheckConstraintAttribute : ServiceStack.AttributeBase + { + public CheckConstraintAttribute(string constraint) => throw null; + public string Constraint { get => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.CompositeIndexAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CompositeIndexAttribute : ServiceStack.AttributeBase + { + public CompositeIndexAttribute() => throw null; + public CompositeIndexAttribute(bool unique, params string[] fieldNames) => throw null; + public CompositeIndexAttribute(params string[] fieldNames) => throw null; + public System.Collections.Generic.List FieldNames { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public bool Unique { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.CompositeKeyAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CompositeKeyAttribute : ServiceStack.AttributeBase + { + public CompositeKeyAttribute() => throw null; + public CompositeKeyAttribute(params string[] fieldNames) => throw null; + public System.Collections.Generic.List FieldNames { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.ComputeAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ComputeAttribute : ServiceStack.AttributeBase + { + public ComputeAttribute() => throw null; + public ComputeAttribute(string expression) => throw null; + public string Expression { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.ComputedAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ComputedAttribute : ServiceStack.AttributeBase + { + public ComputedAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.CustomFieldAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomFieldAttribute : ServiceStack.AttributeBase + { + public CustomFieldAttribute() => throw null; + public CustomFieldAttribute(string sql) => throw null; + public int Order { get => throw null; set => throw null; } + public string Sql { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.CustomInsertAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomInsertAttribute : ServiceStack.AttributeBase + { + public CustomInsertAttribute(string sql) => throw null; + public string Sql { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.CustomSelectAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomSelectAttribute : ServiceStack.AttributeBase + { + public CustomSelectAttribute(string sql) => throw null; + public string Sql { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.CustomUpdateAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomUpdateAttribute : ServiceStack.AttributeBase + { + public CustomUpdateAttribute(string sql) => throw null; + public string Sql { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.DecimalLengthAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DecimalLengthAttribute : ServiceStack.AttributeBase + { + public DecimalLengthAttribute() => throw null; + public DecimalLengthAttribute(int precision) => throw null; + public DecimalLengthAttribute(int precision, int scale) => throw null; + public int Precision { get => throw null; set => throw null; } + public int Scale { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.DefaultAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultAttribute : ServiceStack.AttributeBase + { + public DefaultAttribute(System.Type defaultType, string defaultValue) => throw null; + public DefaultAttribute(double doubleValue) => throw null; + public DefaultAttribute(int intValue) => throw null; + public DefaultAttribute(string defaultValue) => throw null; + public System.Type DefaultType { get => throw null; set => throw null; } + public string DefaultValue { get => throw null; set => throw null; } + public double DoubleValue { get => throw null; set => throw null; } + public int IntValue { get => throw null; set => throw null; } + public bool OnUpdate { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.DescriptionAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DescriptionAttribute : ServiceStack.AttributeBase + { + public string Description { get => throw null; set => throw null; } + public DescriptionAttribute(string description) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.EnumAsCharAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EnumAsCharAttribute : ServiceStack.AttributeBase + { + public EnumAsCharAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.EnumAsIntAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EnumAsIntAttribute : ServiceStack.AttributeBase + { + public EnumAsIntAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.ExcludeAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ExcludeAttribute : ServiceStack.AttributeBase + { + public ExcludeAttribute(ServiceStack.Feature feature) => throw null; + public ServiceStack.Feature Feature { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.ExcludeMetadataAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ExcludeMetadataAttribute : ServiceStack.DataAnnotations.ExcludeAttribute + { + public ExcludeMetadataAttribute() : base(default(ServiceStack.Feature)) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.ForeignKeyAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ForeignKeyAttribute : ServiceStack.DataAnnotations.ReferencesAttribute + { + public ForeignKeyAttribute(System.Type type) : base(default(System.Type)) => throw null; + public string ForeignKeyName { get => throw null; set => throw null; } + public string OnDelete { get => throw null; set => throw null; } + public string OnUpdate { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.HashKeyAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HashKeyAttribute : ServiceStack.AttributeBase + { + public HashKeyAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.IdAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IdAttribute : ServiceStack.AttributeBase + { + public int Id { get => throw null; } + public IdAttribute(int id) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.IgnoreAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IgnoreAttribute : ServiceStack.AttributeBase + { + public IgnoreAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.IgnoreOnInsertAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IgnoreOnInsertAttribute : ServiceStack.AttributeBase + { + public IgnoreOnInsertAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.IgnoreOnSelectAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IgnoreOnSelectAttribute : ServiceStack.AttributeBase + { + public IgnoreOnSelectAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.IgnoreOnUpdateAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IgnoreOnUpdateAttribute : ServiceStack.AttributeBase + { + public IgnoreOnUpdateAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.IndexAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IndexAttribute : ServiceStack.AttributeBase + { + public bool Clustered { get => throw null; set => throw null; } + public IndexAttribute() => throw null; + public IndexAttribute(bool unique) => throw null; + public string Name { get => throw null; set => throw null; } + public bool NonClustered { get => throw null; set => throw null; } + public bool Unique { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.MapColumnAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MapColumnAttribute : ServiceStack.AttributeBase + { + public string Column { get => throw null; set => throw null; } + public MapColumnAttribute(string table, string column) => throw null; + public string Table { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.MetaAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetaAttribute : ServiceStack.AttributeBase + { + public MetaAttribute(string name, string value) => throw null; + public string Name { get => throw null; set => throw null; } + public string Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.PersistedAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PersistedAttribute : ServiceStack.AttributeBase + { + public PersistedAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlBigIntArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlBigIntArrayAttribute : ServiceStack.DataAnnotations.PgSqlLongArrayAttribute + { + public PgSqlBigIntArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlDecimalArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlDecimalArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlDecimalArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlDoubleArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlDoubleArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlDoubleArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlFloatArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlFloatArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlFloatArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlHStoreAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlHStoreAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlHStoreAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlIntArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlIntArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlIntArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlJsonAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlJsonAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlJsonAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlJsonBAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlJsonBAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlJsonBAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlLongArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlLongArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlLongArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlShortArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlShortArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlShortArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlTextArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlTextArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlTextArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlTimestampArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlTimestampArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlTimestampArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlTimestampAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlTimestampAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlTimestampAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlTimestampTzArrayAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlTimestampTzArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlTimestampTzArrayAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PgSqlTimestampTzAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PgSqlTimestampTzAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute + { + public PgSqlTimestampTzAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.PostCreateTableAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostCreateTableAttribute : ServiceStack.AttributeBase + { + public PostCreateTableAttribute(string sql) => throw null; + public string Sql { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.PostDropTableAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostDropTableAttribute : ServiceStack.AttributeBase + { + public PostDropTableAttribute(string sql) => throw null; + public string Sql { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.PreCreateTableAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PreCreateTableAttribute : ServiceStack.AttributeBase + { + public PreCreateTableAttribute(string sql) => throw null; + public string Sql { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.PreDropTableAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PreDropTableAttribute : ServiceStack.AttributeBase + { + public PreDropTableAttribute(string sql) => throw null; + public string Sql { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.PrimaryKeyAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PrimaryKeyAttribute : ServiceStack.AttributeBase + { + public PrimaryKeyAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.RangeAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RangeAttribute : ServiceStack.AttributeBase + { + public object Maximum { get => throw null; set => throw null; } + public object Minimum { get => throw null; set => throw null; } + public System.Type OperandType { 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; + } + + // Generated from `ServiceStack.DataAnnotations.RangeKeyAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RangeKeyAttribute : ServiceStack.AttributeBase + { + public RangeKeyAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.ReferenceAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReferenceAttribute : ServiceStack.AttributeBase + { + public ReferenceAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.ReferenceFieldAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReferenceFieldAttribute : ServiceStack.AttributeBase + { + public string Field { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Type Model { get => throw null; set => throw null; } + public ReferenceFieldAttribute() => throw null; + public ReferenceFieldAttribute(System.Type model, string id) => throw null; + public ReferenceFieldAttribute(System.Type model, string id, string field) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.ReferencesAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReferencesAttribute : ServiceStack.AttributeBase + { + public ReferencesAttribute(System.Type type) => throw null; + public System.Type Type { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataAnnotations.RequiredAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequiredAttribute : ServiceStack.AttributeBase + { + public RequiredAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.ReturnOnInsertAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReturnOnInsertAttribute : ServiceStack.AttributeBase + { + public ReturnOnInsertAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.RowVersionAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RowVersionAttribute : ServiceStack.AttributeBase + { + public RowVersionAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.SchemaAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SchemaAttribute : ServiceStack.AttributeBase + { + public string Name { get => throw null; set => throw null; } + public SchemaAttribute(string name) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.SequenceAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SequenceAttribute : ServiceStack.AttributeBase + { + public string Name { get => throw null; set => throw null; } + public SequenceAttribute(string name) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.SqlServerBucketCountAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerBucketCountAttribute : ServiceStack.AttributeBase + { + public int Count { get => throw null; set => throw null; } + public SqlServerBucketCountAttribute(int count) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.SqlServerCollateAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerCollateAttribute : ServiceStack.AttributeBase + { + public string Collation { get => throw null; set => throw null; } + public SqlServerCollateAttribute(string collation) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.SqlServerDurability` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum SqlServerDurability + { + SchemaAndData, + SchemaOnly, + } + + // Generated from `ServiceStack.DataAnnotations.SqlServerFileTableAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerFileTableAttribute : ServiceStack.AttributeBase + { + public string FileTableCollateFileName { get => throw null; set => throw null; } + public string FileTableDirectory { get => throw null; set => throw null; } + public SqlServerFileTableAttribute() => throw null; + public SqlServerFileTableAttribute(string directory, string collateFileName = default(string)) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.SqlServerMemoryOptimizedAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerMemoryOptimizedAttribute : ServiceStack.AttributeBase + { + public ServiceStack.DataAnnotations.SqlServerDurability? Durability { get => throw null; set => throw null; } + public SqlServerMemoryOptimizedAttribute() => throw null; + public SqlServerMemoryOptimizedAttribute(ServiceStack.DataAnnotations.SqlServerDurability durability) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.StringLengthAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringLengthAttribute : ServiceStack.AttributeBase + { + public const int MaxText = default; + public int MaximumLength { get => throw null; set => throw null; } + public int MinimumLength { get => throw null; set => throw null; } + public StringLengthAttribute(int maximumLength) => throw null; + public StringLengthAttribute(int minimumLength, int maximumLength) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.UniqueAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UniqueAttribute : ServiceStack.AttributeBase + { + public UniqueAttribute() => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.UniqueConstraintAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UniqueConstraintAttribute : ServiceStack.AttributeBase + { + public System.Collections.Generic.List FieldNames { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public UniqueConstraintAttribute() => throw null; + public UniqueConstraintAttribute(params string[] fieldNames) => throw null; + } + + // Generated from `ServiceStack.DataAnnotations.UniqueIdAttribute` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UniqueIdAttribute : ServiceStack.AttributeBase + { + public int Id { get => throw null; } + public UniqueIdAttribute(int id) => throw null; + } + + } + namespace IO + { + // Generated from `ServiceStack.IO.IEndpoint` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IEndpoint + { + string Host { get; } + int Port { get; } + } + + // Generated from `ServiceStack.IO.IHasVirtualFiles` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasVirtualFiles + { + ServiceStack.IO.IVirtualDirectory GetDirectory(); + ServiceStack.IO.IVirtualFile GetFile(); + bool IsDirectory { get; } + bool IsFile { get; } + } + + // Generated from `ServiceStack.IO.IVirtualDirectory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IVirtualDirectory : ServiceStack.IO.IVirtualNode, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + System.Collections.Generic.IEnumerable Directories { get; } + System.Collections.Generic.IEnumerable Files { get; } + System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)); + ServiceStack.IO.IVirtualDirectory GetDirectory(System.Collections.Generic.Stack virtualPath); + ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath); + ServiceStack.IO.IVirtualFile GetFile(System.Collections.Generic.Stack virtualPath); + ServiceStack.IO.IVirtualFile GetFile(string virtualPath); + bool IsRoot { get; } + ServiceStack.IO.IVirtualDirectory ParentDirectory { get; } + } + + // Generated from `ServiceStack.IO.IVirtualFile` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IVirtualFile : ServiceStack.IO.IVirtualNode + { + string Extension { get; } + object GetContents(); + string GetFileHash(); + System.Int64 Length { get; } + System.IO.Stream OpenRead(); + System.IO.StreamReader OpenText(); + string ReadAllText(); + void Refresh(); + ServiceStack.IO.IVirtualPathProvider VirtualPathProvider { get; } + System.Threading.Tasks.Task WritePartialToAsync(System.IO.Stream toStream, System.Int64 start, System.Int64 end, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.IO.IVirtualFiles` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IVirtualFiles : ServiceStack.IO.IVirtualPathProvider + { + void AppendFile(string filePath, System.IO.Stream stream); + void AppendFile(string filePath, object contents); + void AppendFile(string filePath, string textContents); + void DeleteFile(string filePath); + void DeleteFiles(System.Collections.Generic.IEnumerable filePaths); + void DeleteFolder(string dirPath); + void WriteFile(string filePath, System.IO.Stream stream); + void WriteFile(string filePath, object contents); + void WriteFile(string filePath, string textContents); + System.Threading.Tasks.Task WriteFileAsync(string filePath, object contents, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void WriteFiles(System.Collections.Generic.Dictionary files); + void WriteFiles(System.Collections.Generic.Dictionary textFiles); + void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)); + } + + // Generated from `ServiceStack.IO.IVirtualFilesAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IVirtualFilesAsync : ServiceStack.IO.IVirtualFiles, ServiceStack.IO.IVirtualPathProvider + { + System.Threading.Tasks.Task AppendFileAsync(string filePath, System.IO.Stream stream); + System.Threading.Tasks.Task AppendFileAsync(string filePath, string textContents); + System.Threading.Tasks.Task DeleteFileAsync(string filePath); + System.Threading.Tasks.Task DeleteFilesAsync(System.Collections.Generic.IEnumerable filePaths); + System.Threading.Tasks.Task DeleteFolderAsync(string dirPath); + System.Threading.Tasks.Task WriteFileAsync(string filePath, System.IO.Stream stream); + System.Threading.Tasks.Task WriteFileAsync(string filePath, string textContents); + System.Threading.Tasks.Task WriteFilesAsync(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)); + } + + // Generated from `ServiceStack.IO.IVirtualNode` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IVirtualNode + { + ServiceStack.IO.IVirtualDirectory Directory { get; } + bool IsDirectory { get; } + System.DateTime LastModified { get; } + string Name { get; } + string RealPath { get; } + string VirtualPath { get; } + } + + // Generated from `ServiceStack.IO.IVirtualPathProvider` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IVirtualPathProvider + { + string CombineVirtualPath(string basePath, string relativePath); + bool DirectoryExists(string virtualPath); + bool FileExists(string virtualPath); + System.Collections.Generic.IEnumerable GetAllFiles(); + System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)); + ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath); + ServiceStack.IO.IVirtualFile GetFile(string virtualPath); + string GetFileHash(ServiceStack.IO.IVirtualFile virtualFile); + string GetFileHash(string virtualPath); + System.Collections.Generic.IEnumerable GetRootDirectories(); + System.Collections.Generic.IEnumerable GetRootFiles(); + bool IsSharedFile(ServiceStack.IO.IVirtualFile virtualFile); + bool IsViewFile(ServiceStack.IO.IVirtualFile virtualFile); + string RealPathSeparator { get; } + ServiceStack.IO.IVirtualDirectory RootDirectory { get; } + string VirtualPathSeparator { get; } + } + + } + namespace Logging + { + // Generated from `ServiceStack.Logging.GenericLogFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GenericLogFactory : ServiceStack.Logging.ILogFactory + { + public GenericLogFactory(System.Action onMessage) => throw null; + public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; + public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; + public System.Action OnMessage; + } + + // Generated from `ServiceStack.Logging.GenericLogger` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GenericLogger : ServiceStack.Logging.ILog + { + public bool CaptureLogs { get => throw null; set => 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 FatalFormat(string format, params object[] args) => throw null; + public GenericLogger(System.Type type) => throw null; + public GenericLogger(string type) => 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; set => throw null; } + public virtual void Log(object message) => throw null; + public virtual void Log(object message, System.Exception exception) => throw null; + public virtual void LogFormat(object message, params object[] args) => throw null; + public System.Text.StringBuilder Logs; + public virtual void OnLog(string message) => throw null; + public System.Action OnMessage; + 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; + } + + // Generated from `ServiceStack.Logging.ILog` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILog + { + 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 FatalFormat(string format, params object[] args); + void Info(object message); + void Info(object message, System.Exception exception); + void InfoFormat(string format, params object[] args); + bool IsDebugEnabled { get; } + void Warn(object message); + void Warn(object message, System.Exception exception); + void WarnFormat(string format, params object[] args); + } + + // Generated from `ServiceStack.Logging.ILogFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILogFactory + { + ServiceStack.Logging.ILog GetLogger(System.Type type); + ServiceStack.Logging.ILog GetLogger(string typeName); + } + + // Generated from `ServiceStack.Logging.ILogWithContext` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILogWithContext : ServiceStack.Logging.ILog, ServiceStack.Logging.ILogWithException + { + System.IDisposable PushProperty(string key, object value); + } + + // Generated from `ServiceStack.Logging.ILogWithContextExtensions` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ILogWithContextExtensions + { + public static System.IDisposable PushProperty(this ServiceStack.Logging.ILog logger, string key, object value) => throw null; + } + + // Generated from `ServiceStack.Logging.ILogWithException` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILogWithException : ServiceStack.Logging.ILog + { + void Debug(System.Exception exception, string format, params object[] args); + void Error(System.Exception exception, string format, params object[] args); + void Fatal(System.Exception exception, string format, params object[] args); + void Info(System.Exception exception, string format, params object[] args); + void Warn(System.Exception exception, string format, params object[] args); + } + + // Generated from `ServiceStack.Logging.ILogWithExceptionExtensions` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ILogWithExceptionExtensions + { + public static void Debug(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; + public static void Error(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; + public static void Fatal(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; + public static void Info(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; + public static void Warn(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; + } + + // Generated from `ServiceStack.Logging.LazyLogger` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LazyLogger : ServiceStack.Logging.ILog + { + 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 FatalFormat(string format, params object[] args) => 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 LazyLogger(System.Type type) => throw null; + public System.Type Type { 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; + } + + // Generated from `ServiceStack.Logging.LogManager` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LogManager + { + public static ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; + public static ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; + public static ServiceStack.Logging.ILogFactory LogFactory { get => throw null; set => throw null; } + public LogManager() => throw null; + } + + // Generated from `ServiceStack.Logging.NullDebugLogger` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NullDebugLogger : ServiceStack.Logging.ILog + { + 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 FatalFormat(string format, params object[] args) => 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; set => throw null; } + public NullDebugLogger(System.Type type) => throw null; + public NullDebugLogger(string type) => 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; + } + + // Generated from `ServiceStack.Logging.NullLogFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NullLogFactory : ServiceStack.Logging.ILogFactory + { + public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; + public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; + public NullLogFactory(bool debugEnabled = default(bool)) => throw null; + } + + // Generated from `ServiceStack.Logging.StringBuilderLog` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringBuilderLog : ServiceStack.Logging.ILog + { + 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 FatalFormat(string format, params object[] args) => 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; set => throw null; } + public StringBuilderLog(System.Type type, System.Text.StringBuilder logs) => throw null; + public StringBuilderLog(string type, System.Text.StringBuilder logs) => 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; + } + + // Generated from `ServiceStack.Logging.StringBuilderLogFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringBuilderLogFactory : ServiceStack.Logging.ILogFactory + { + public void ClearLogs() => throw null; + public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; + public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; + public string GetLogs() => throw null; + public StringBuilderLogFactory(bool debugEnabled = default(bool)) => throw null; + } + + // Generated from `ServiceStack.Logging.TestLogFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TestLogFactory : ServiceStack.Logging.ILogFactory + { + public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; + public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; + public TestLogFactory(bool debugEnabled = default(bool)) => throw null; + } + + // Generated from `ServiceStack.Logging.TestLogger` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TestLogger : ServiceStack.Logging.ILog + { + // Generated from `ServiceStack.Logging.TestLogger+Levels` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Levels + { + DEBUG, + ERROR, + FATAL, + INFO, + WARN, + } + + + 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 FatalFormat(string format, params object[] args) => throw null; + public static System.Collections.Generic.IList> GetLogs() => 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; set => throw null; } + public TestLogger(System.Type type) => throw null; + public TestLogger(string type) => 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; + } + + } + namespace Messaging + { + // Generated from `ServiceStack.Messaging.IMessage` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessage : ServiceStack.IMeta, ServiceStack.Model.IHasId + { + object Body { get; set; } + System.DateTime CreatedDate { get; } + ServiceStack.ResponseStatus Error { get; set; } + int Options { get; set; } + System.Int64 Priority { get; set; } + System.Guid? ReplyId { get; set; } + string ReplyTo { get; set; } + int RetryAttempts { get; set; } + string Tag { get; set; } + string TraceId { get; set; } + } + + // Generated from `ServiceStack.Messaging.IMessage<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessage : ServiceStack.IMeta, ServiceStack.Messaging.IMessage, ServiceStack.Model.IHasId + { + T GetBody(); + } + + // Generated from `ServiceStack.Messaging.IMessageFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessageFactory : ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + { + ServiceStack.Messaging.IMessageProducer CreateMessageProducer(); + } + + // Generated from `ServiceStack.Messaging.IMessageHandler` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessageHandler + { + ServiceStack.Messaging.IMessageHandlerStats GetStats(); + System.Type MessageType { get; } + ServiceStack.Messaging.IMessageQueueClient MqClient { get; } + void Process(ServiceStack.Messaging.IMessageQueueClient mqClient); + void ProcessMessage(ServiceStack.Messaging.IMessageQueueClient mqClient, object mqResponse); + int ProcessQueue(ServiceStack.Messaging.IMessageQueueClient mqClient, string queueName, System.Func doNext = default(System.Func)); + } + + // Generated from `ServiceStack.Messaging.IMessageHandlerStats` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessageHandlerStats + { + void Add(ServiceStack.Messaging.IMessageHandlerStats stats); + System.DateTime? LastMessageProcessed { get; } + string Name { get; } + int TotalMessagesFailed { get; } + int TotalMessagesProcessed { get; } + int TotalNormalMessagesReceived { get; } + int TotalPriorityMessagesReceived { get; } + int TotalRetries { get; } + } + + // Generated from `ServiceStack.Messaging.IMessageProducer` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessageProducer : System.IDisposable + { + void Publish(ServiceStack.Messaging.IMessage message); + void Publish(T messageBody); + } + + // Generated from `ServiceStack.Messaging.IMessageQueueClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessageQueueClient : ServiceStack.Messaging.IMessageProducer, System.IDisposable + { + void Ack(ServiceStack.Messaging.IMessage message); + ServiceStack.Messaging.IMessage CreateMessage(object mqResponse); + ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)); + ServiceStack.Messaging.IMessage GetAsync(string queueName); + string GetTempQueueName(); + void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)); + void Notify(string queueName, ServiceStack.Messaging.IMessage message); + void Publish(string queueName, ServiceStack.Messaging.IMessage message); + } + + // Generated from `ServiceStack.Messaging.IMessageQueueClientFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessageQueueClientFactory : System.IDisposable + { + ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient(); + } + + // Generated from `ServiceStack.Messaging.IMessageService` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessageService : System.IDisposable + { + ServiceStack.Messaging.IMessageHandlerStats GetStats(); + string GetStatsDescription(); + string GetStatus(); + ServiceStack.Messaging.IMessageFactory MessageFactory { get; } + void RegisterHandler(System.Func, object> processMessageFn); + void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx); + void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx, int noOfThreads); + void RegisterHandler(System.Func, object> processMessageFn, int noOfThreads); + System.Collections.Generic.List RegisteredTypes { get; } + void Start(); + void Stop(); + } + + // Generated from `ServiceStack.Messaging.Message` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Message : ServiceStack.IMeta, ServiceStack.Messaging.IMessage, ServiceStack.Model.IHasId + { + public object Body { get => throw null; set => throw null; } + public static ServiceStack.Messaging.Message Create(T request) => throw null; + public System.DateTime CreatedDate { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus Error { get => throw null; set => throw null; } + public System.Guid Id { get => throw null; set => throw null; } + public Message() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public int Options { get => throw null; set => throw null; } + public System.Int64 Priority { get => throw null; set => throw null; } + public System.Guid? ReplyId { get => throw null; set => throw null; } + public string ReplyTo { get => throw null; set => throw null; } + public int RetryAttempts { get => throw null; set => throw null; } + public string Tag { get => throw null; set => throw null; } + public string TraceId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Messaging.Message<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Message : ServiceStack.Messaging.Message, ServiceStack.IMeta, ServiceStack.Messaging.IMessage, ServiceStack.Messaging.IMessage, ServiceStack.Model.IHasId + { + public static ServiceStack.Messaging.IMessage Create(object oBody) => throw null; + public T GetBody() => throw null; + public Message() => throw null; + public Message(T body) => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.Messaging.MessageFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MessageFactory + { + public static ServiceStack.Messaging.IMessage Create(object response) => throw null; + } + + // Generated from `ServiceStack.Messaging.MessageHandlerStats` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MessageHandlerStats : ServiceStack.Messaging.IMessageHandlerStats + { + public virtual void Add(ServiceStack.Messaging.IMessageHandlerStats stats) => throw null; + public System.DateTime? LastMessageProcessed { get => throw null; set => throw null; } + public MessageHandlerStats(string name) => throw null; + public MessageHandlerStats(string name, int totalMessagesProcessed, int totalMessagesFailed, int totalRetries, int totalNormalMessagesReceived, int totalPriorityMessagesReceived, System.DateTime? lastMessageProcessed) => throw null; + public string Name { get => throw null; set => throw null; } + public override string ToString() => throw null; + public int TotalMessagesFailed { get => throw null; set => throw null; } + public int TotalMessagesProcessed { get => throw null; set => throw null; } + public int TotalNormalMessagesReceived { get => throw null; set => throw null; } + public int TotalPriorityMessagesReceived { get => throw null; set => throw null; } + public int TotalRetries { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Messaging.MessageHandlerStatsExtensions` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MessageHandlerStatsExtensions + { + public static ServiceStack.Messaging.IMessageHandlerStats CombineStats(this System.Collections.Generic.IEnumerable stats) => throw null; + } + + // Generated from `ServiceStack.Messaging.MessageOption` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum MessageOption + { + All, + None, + NotifyOneWay, + } + + // Generated from `ServiceStack.Messaging.MessagingException` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MessagingException : System.Exception, ServiceStack.IHasResponseStatus, ServiceStack.Model.IResponseStatusConvertible + { + public MessagingException() => throw null; + public MessagingException(ServiceStack.ResponseStatus responseStatus, System.Exception innerException = default(System.Exception)) => throw null; + public MessagingException(ServiceStack.ResponseStatus responseStatus, object responseDto, System.Exception innerException = default(System.Exception)) => throw null; + public MessagingException(string message) => throw null; + public MessagingException(string message, System.Exception innerException) => throw null; + public object ResponseDto { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ToResponseStatus() => throw null; + } + + // Generated from `ServiceStack.Messaging.QueueNames` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class QueueNames + { + public string Dlq { get => throw null; } + public static string Exchange; + public static string ExchangeDlq; + public static string ExchangeTopic; + public static string GetTempQueueName() => throw null; + public string In { get => throw null; } + public static bool IsTempQueue(string queueName) => throw null; + public static string MqPrefix; + public string Out { get => throw null; } + public string Priority { get => throw null; } + public QueueNames(System.Type messageType) => throw null; + public static string QueuePrefix; + public static string ResolveQueueName(string typeName, string queueSuffix) => throw null; + public static System.Func ResolveQueueNameFn; + public static void SetQueuePrefix(string prefix) => throw null; + public static string TempMqPrefix; + public static string TopicIn; + public static string TopicOut; + } + + // Generated from `ServiceStack.Messaging.QueueNames<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class QueueNames + { + public static string[] AllQueueNames { get => throw null; } + public static string Dlq { get => throw null; set => throw null; } + public static string In { get => throw null; set => throw null; } + public static string Out { get => throw null; set => throw null; } + public static string Priority { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Messaging.UnRetryableMessagingException` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UnRetryableMessagingException : ServiceStack.Messaging.MessagingException + { + public UnRetryableMessagingException() => throw null; + public UnRetryableMessagingException(string message) => throw null; + public UnRetryableMessagingException(string message, System.Exception innerException) => throw null; + } + + // Generated from `ServiceStack.Messaging.WorkerStatus` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class WorkerStatus + { + public const int Disposed = default; + public const int Started = default; + public const int Starting = default; + public const int Stopped = default; + public const int Stopping = default; + public static string ToString(int workerStatus) => throw null; + } + + } + namespace Model + { + // Generated from `ServiceStack.Model.ICacheByDateModified` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICacheByDateModified + { + System.DateTime? LastModified { get; } + } + + // Generated from `ServiceStack.Model.ICacheByEtag` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICacheByEtag + { + string Etag { get; } + } + + // Generated from `ServiceStack.Model.IHasAction` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasAction + { + string Action { get; } + } + + // Generated from `ServiceStack.Model.IHasGuidId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasGuidId : ServiceStack.Model.IHasId + { + } + + // Generated from `ServiceStack.Model.IHasId<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasId + { + T Id { get; } + } + + // Generated from `ServiceStack.Model.IHasIntId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasIntId : ServiceStack.Model.IHasId + { + } + + // Generated from `ServiceStack.Model.IHasLongId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasLongId : ServiceStack.Model.IHasId + { + } + + // Generated from `ServiceStack.Model.IHasNamed<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasNamed + { + T this[string listId] { get; set; } + } + + // Generated from `ServiceStack.Model.IHasNamedCollection<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasNamedCollection : ServiceStack.Model.IHasNamed> + { + } + + // Generated from `ServiceStack.Model.IHasNamedList<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasNamedList : ServiceStack.Model.IHasNamed> + { + } + + // Generated from `ServiceStack.Model.IHasStringId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasStringId : ServiceStack.Model.IHasId + { + } + + // Generated from `ServiceStack.Model.IMutId<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMutId + { + T Id { get; set; } + } + + // Generated from `ServiceStack.Model.IMutIntId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMutIntId : ServiceStack.Model.IMutId + { + } + + // Generated from `ServiceStack.Model.IMutLongId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMutLongId : ServiceStack.Model.IMutId + { + } + + // Generated from `ServiceStack.Model.IMutStringId` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMutStringId : ServiceStack.Model.IMutId + { + } + + // Generated from `ServiceStack.Model.IResponseStatusConvertible` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IResponseStatusConvertible + { + ServiceStack.ResponseStatus ToResponseStatus(); + } + + } + namespace Redis + { + // Generated from `ServiceStack.Redis.IHasStats` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasStats + { + System.Collections.Generic.Dictionary Stats { get; } + } + + // Generated from `ServiceStack.Redis.IRedisClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisClient : ServiceStack.Caching.ICacheClient, ServiceStack.Caching.ICacheClientExtended, ServiceStack.Caching.IRemoveByPattern, ServiceStack.Data.IEntityStore, System.IDisposable + { + System.IDisposable AcquireLock(string key); + System.IDisposable AcquireLock(string key, System.TimeSpan timeOut); + System.Int64 AddGeoMember(string key, double longitude, double latitude, string member); + System.Int64 AddGeoMembers(string key, params ServiceStack.Redis.RedisGeo[] geoPoints); + void AddItemToList(string listId, string value); + void AddItemToSet(string setId, string item); + bool AddItemToSortedSet(string setId, string value); + bool AddItemToSortedSet(string setId, string value, double score); + void AddRangeToList(string listId, System.Collections.Generic.List values); + void AddRangeToSet(string setId, System.Collections.Generic.List items); + bool AddRangeToSortedSet(string setId, System.Collections.Generic.List values, double score); + bool AddRangeToSortedSet(string setId, System.Collections.Generic.List values, System.Int64 score); + bool AddToHyperLog(string key, params string[] elements); + System.Int64 AppendTo(string key, string value); + ServiceStack.Redis.Generic.IRedisTypedClient As(); + string BlockingDequeueItemFromList(string listId, System.TimeSpan? timeOut); + ServiceStack.Redis.ItemRef BlockingDequeueItemFromLists(string[] listIds, System.TimeSpan? timeOut); + string BlockingPopAndPushItemBetweenLists(string fromListId, string toListId, System.TimeSpan? timeOut); + string BlockingPopItemFromList(string listId, System.TimeSpan? timeOut); + ServiceStack.Redis.ItemRef BlockingPopItemFromLists(string[] listIds, System.TimeSpan? timeOut); + string BlockingRemoveStartFromList(string listId, System.TimeSpan? timeOut); + ServiceStack.Redis.ItemRef BlockingRemoveStartFromLists(string[] listIds, System.TimeSpan? timeOut); + double CalculateDistanceBetweenGeoMembers(string key, string fromMember, string toMember, string unit = default(string)); + string CalculateSha1(string luaBody); + int ConnectTimeout { get; set; } + bool ContainsKey(string key); + System.Int64 CountHyperLog(string key); + ServiceStack.Redis.Pipeline.IRedisPipeline CreatePipeline(); + ServiceStack.Redis.IRedisSubscription CreateSubscription(); + ServiceStack.Redis.IRedisTransaction CreateTransaction(); + ServiceStack.Redis.RedisText Custom(params object[] cmdWithArgs); + System.Int64 Db { get; set; } + System.Int64 DbSize { get; } + System.Int64 DecrementValue(string key); + System.Int64 DecrementValueBy(string key, int count); + string DequeueItemFromList(string listId); + string Echo(string text); + void EnqueueItemOnList(string listId, string value); + T ExecCachedLua(string scriptBody, System.Func scriptSha1); + ServiceStack.Redis.RedisText ExecLua(string luaBody, string[] keys, string[] args); + ServiceStack.Redis.RedisText ExecLua(string body, params string[] args); + System.Int64 ExecLuaAsInt(string luaBody, string[] keys, string[] args); + System.Int64 ExecLuaAsInt(string luaBody, params string[] args); + System.Collections.Generic.List ExecLuaAsList(string luaBody, string[] keys, string[] args); + System.Collections.Generic.List ExecLuaAsList(string luaBody, params string[] args); + string ExecLuaAsString(string luaBody, string[] keys, string[] args); + string ExecLuaAsString(string luaBody, params string[] args); + ServiceStack.Redis.RedisText ExecLuaSha(string sha1, string[] keys, string[] args); + ServiceStack.Redis.RedisText ExecLuaSha(string sha1, params string[] args); + System.Int64 ExecLuaShaAsInt(string sha1, string[] keys, string[] args); + System.Int64 ExecLuaShaAsInt(string sha1, params string[] args); + System.Collections.Generic.List ExecLuaShaAsList(string sha1, string[] keys, string[] args); + System.Collections.Generic.List ExecLuaShaAsList(string sha1, params string[] args); + string ExecLuaShaAsString(string sha1, string[] keys, string[] args); + string ExecLuaShaAsString(string sha1, params string[] args); + bool ExpireEntryAt(string key, System.DateTime expireAt); + bool ExpireEntryIn(string key, System.TimeSpan expireIn); + string[] FindGeoMembersInRadius(string key, double longitude, double latitude, double radius, string unit); + string[] FindGeoMembersInRadius(string key, string member, double radius, string unit); + System.Collections.Generic.List FindGeoResultsInRadius(string key, double longitude, double latitude, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?)); + System.Collections.Generic.List FindGeoResultsInRadius(string key, string member, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?)); + void FlushDb(); + System.Collections.Generic.Dictionary GetAllEntriesFromHash(string hashId); + System.Collections.Generic.List GetAllItemsFromList(string listId); + System.Collections.Generic.HashSet GetAllItemsFromSet(string setId); + System.Collections.Generic.List GetAllItemsFromSortedSet(string setId); + System.Collections.Generic.List GetAllItemsFromSortedSetDesc(string setId); + System.Collections.Generic.List GetAllKeys(); + System.Collections.Generic.IDictionary GetAllWithScoresFromSortedSet(string setId); + string GetAndSetValue(string key, string value); + string GetClient(); + System.Collections.Generic.List> GetClientsInfo(); + string GetConfig(string item); + System.Collections.Generic.HashSet GetDifferencesFromSet(string fromSetId, params string[] withSetIds); + ServiceStack.Redis.RedisKeyType GetEntryType(string key); + T GetFromHash(object id); + System.Collections.Generic.List GetGeoCoordinates(string key, params string[] members); + string[] GetGeohashes(string key, params string[] members); + System.Int64 GetHashCount(string hashId); + System.Collections.Generic.List GetHashKeys(string hashId); + System.Collections.Generic.List GetHashValues(string hashId); + System.Collections.Generic.HashSet GetIntersectFromSets(params string[] setIds); + string GetItemFromList(string listId, int listIndex); + System.Int64 GetItemIndexInSortedSet(string setId, string value); + System.Int64 GetItemIndexInSortedSetDesc(string setId, string value); + double GetItemScoreInSortedSet(string setId, string value); + System.Int64 GetListCount(string listId); + string GetRandomItemFromSet(string setId); + string GetRandomKey(); + System.Collections.Generic.List GetRangeFromList(string listId, int startingFrom, int endingAt); + System.Collections.Generic.List GetRangeFromSortedList(string listId, int startingFrom, int endingAt); + System.Collections.Generic.List GetRangeFromSortedSet(string setId, int fromRank, int toRank); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, double fromScore, double toScore); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, double fromScore, double toScore); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetDesc(string setId, int fromRank, int toRank); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSet(string setId, int fromRank, int toRank); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, double fromScore, double toScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, double fromScore, double toScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetDesc(string setId, int fromRank, int toRank); + ServiceStack.Redis.RedisServerRole GetServerRole(); + ServiceStack.Redis.RedisText GetServerRoleInfo(); + System.DateTime GetServerTime(); + System.Int64 GetSetCount(string setId); + System.Collections.Generic.List GetSortedEntryValues(string key, int startingFrom, int endingAt); + System.Collections.Generic.List GetSortedItemsFromList(string listId, ServiceStack.Redis.SortOptions sortOptions); + System.Int64 GetSortedSetCount(string setId); + System.Int64 GetSortedSetCount(string setId, double fromScore, double toScore); + System.Int64 GetSortedSetCount(string setId, System.Int64 fromScore, System.Int64 toScore); + System.Int64 GetSortedSetCount(string setId, string fromStringScore, string toStringScore); + System.Int64 GetStringCount(string key); + System.Collections.Generic.HashSet GetUnionFromSets(params string[] setIds); + string GetValue(string key); + string GetValueFromHash(string hashId, string key); + System.Collections.Generic.List GetValues(System.Collections.Generic.List keys); + System.Collections.Generic.List GetValues(System.Collections.Generic.List keys); + System.Collections.Generic.List GetValuesFromHash(string hashId, params string[] keys); + System.Collections.Generic.Dictionary GetValuesMap(System.Collections.Generic.List keys); + System.Collections.Generic.Dictionary GetValuesMap(System.Collections.Generic.List keys); + bool HadExceptions { get; } + bool HasLuaScript(string sha1Ref); + bool HashContainsEntry(string hashId, string key); + ServiceStack.Model.IHasNamed Hashes { get; set; } + string Host { get; } + double IncrementItemInSortedSet(string setId, string value, double incrementBy); + double IncrementItemInSortedSet(string setId, string value, System.Int64 incrementBy); + System.Int64 IncrementValue(string key); + double IncrementValueBy(string key, double count); + System.Int64 IncrementValueBy(string key, int count); + System.Int64 IncrementValueBy(string key, System.Int64 count); + double IncrementValueInHash(string hashId, string key, double incrementBy); + System.Int64 IncrementValueInHash(string hashId, string key, int incrementBy); + System.Collections.Generic.Dictionary Info { get; } + System.Int64 InsertAt(string key, int offset, string value); + string this[string key] { get; set; } + void KillClient(string address); + System.Int64 KillClients(string fromAddress = default(string), string withId = default(string), ServiceStack.Redis.RedisClientType? ofType = default(ServiceStack.Redis.RedisClientType?), bool? skipMe = default(bool?)); + void KillRunningLuaScript(); + System.DateTime LastSave { get; } + ServiceStack.Model.IHasNamed Lists { get; set; } + string LoadLuaScript(string body); + void MergeHyperLogs(string toKey, params string[] fromKeys); + void MoveBetweenSets(string fromSetId, string toSetId, string item); + string Password { get; set; } + void PauseAllClients(System.TimeSpan duration); + bool Ping(); + string PopAndPushItemBetweenLists(string fromListId, string toListId); + string PopItemFromList(string listId); + string PopItemFromSet(string setId); + string PopItemWithHighestScoreFromSortedSet(string setId); + string PopItemWithLowestScoreFromSortedSet(string setId); + System.Collections.Generic.List PopItemsFromSet(string setId, int count); + int Port { get; } + void PrependItemToList(string listId, string value); + void PrependRangeToList(string listId, System.Collections.Generic.List values); + System.Int64 PublishMessage(string toChannel, string message); + void PushItemToList(string listId, string value); + void RemoveAllFromList(string listId); + void RemoveAllLuaScripts(); + string RemoveEndFromList(string listId); + bool RemoveEntry(params string[] args); + bool RemoveEntryFromHash(string hashId, string key); + System.Int64 RemoveItemFromList(string listId, string value); + System.Int64 RemoveItemFromList(string listId, string value, int noOfMatches); + void RemoveItemFromSet(string setId, string item); + bool RemoveItemFromSortedSet(string setId, string value); + System.Int64 RemoveItemsFromSortedSet(string setId, System.Collections.Generic.List values); + System.Int64 RemoveRangeFromSortedSet(string setId, int minRank, int maxRank); + System.Int64 RemoveRangeFromSortedSetByScore(string setId, double fromScore, double toScore); + System.Int64 RemoveRangeFromSortedSetByScore(string setId, System.Int64 fromScore, System.Int64 toScore); + System.Int64 RemoveRangeFromSortedSetBySearch(string setId, string start = default(string), string end = default(string)); + string RemoveStartFromList(string listId); + void RenameKey(string fromName, string toName); + void ResetInfoStats(); + int RetryCount { get; set; } + int RetryTimeout { get; set; } + void RewriteAppendOnlyFileAsync(); + void Save(); + void SaveAsync(); + void SaveConfig(); + System.Collections.Generic.IEnumerable> ScanAllHashEntries(string hashId, string pattern = default(string), int pageSize = default(int)); + System.Collections.Generic.IEnumerable ScanAllKeys(string pattern = default(string), int pageSize = default(int)); + System.Collections.Generic.IEnumerable ScanAllSetItems(string setId, string pattern = default(string), int pageSize = default(int)); + System.Collections.Generic.IEnumerable> ScanAllSortedSetItems(string setId, string pattern = default(string), int pageSize = default(int)); + System.Collections.Generic.List SearchKeys(string pattern); + System.Collections.Generic.List SearchSortedSet(string setId, string start = default(string), string end = default(string), int? skip = default(int?), int? take = default(int?)); + System.Int64 SearchSortedSetCount(string setId, string start = default(string), string end = default(string)); + int SendTimeout { get; set; } + void SetAll(System.Collections.Generic.Dictionary map); + void SetAll(System.Collections.Generic.IEnumerable keys, System.Collections.Generic.IEnumerable values); + void SetClient(string name); + void SetConfig(string item, string value); + bool SetContainsItem(string setId, string item); + bool SetEntryInHash(string hashId, string key, string value); + bool SetEntryInHashIfNotExists(string hashId, string key, string value); + void SetItemInList(string listId, int listIndex, string value); + void SetRangeInHash(string hashId, System.Collections.Generic.IEnumerable> keyValuePairs); + void SetValue(string key, string value); + void SetValue(string key, string value, System.TimeSpan expireIn); + bool SetValueIfExists(string key, string value); + bool SetValueIfExists(string key, string value, System.TimeSpan expireIn); + bool SetValueIfNotExists(string key, string value); + bool SetValueIfNotExists(string key, string value, System.TimeSpan expireIn); + void SetValues(System.Collections.Generic.Dictionary map); + ServiceStack.Model.IHasNamed Sets { get; set; } + void Shutdown(); + void ShutdownNoSave(); + string Slice(string key, int fromIndex, int toIndex); + bool SortedSetContainsItem(string setId, string value); + ServiceStack.Model.IHasNamed SortedSets { get; set; } + void StoreAsHash(T entity); + void StoreDifferencesFromSet(string intoSetId, string fromSetId, params string[] withSetIds); + void StoreIntersectFromSets(string intoSetId, params string[] setIds); + System.Int64 StoreIntersectFromSortedSets(string intoSetId, string[] setIds, string[] args); + System.Int64 StoreIntersectFromSortedSets(string intoSetId, params string[] setIds); + object StoreObject(object entity); + void StoreUnionFromSets(string intoSetId, params string[] setIds); + System.Int64 StoreUnionFromSortedSets(string intoSetId, string[] setIds, string[] args); + System.Int64 StoreUnionFromSortedSets(string intoSetId, params string[] setIds); + void TrimList(string listId, int keepStartingFrom, int keepEndingAt); + string Type(string key); + void UnWatch(); + string UrnKey(System.Type type, object id); + string UrnKey(T value); + string UrnKey(object id); + string Username { get; set; } + void Watch(params string[] keys); + System.Collections.Generic.Dictionary WhichLuaScriptsExists(params string[] sha1Refs); + void WriteAll(System.Collections.Generic.IEnumerable entities); + } + + // Generated from `ServiceStack.Redis.IRedisClientAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisClientAsync : ServiceStack.Caching.ICacheClientAsync, ServiceStack.Caching.IRemoveByPatternAsync, ServiceStack.Data.IEntityStoreAsync, System.IAsyncDisposable + { + System.Threading.Tasks.ValueTask AcquireLockAsync(string key, System.TimeSpan? timeOut = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddGeoMemberAsync(string key, double longitude, double latitude, string member, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddGeoMembersAsync(string key, ServiceStack.Redis.RedisGeo[] geoPoints, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddGeoMembersAsync(string key, params ServiceStack.Redis.RedisGeo[] geoPoints); + System.Threading.Tasks.ValueTask AddItemToListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddItemToSetAsync(string setId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddItemToSortedSetAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddItemToSortedSetAsync(string setId, string value, double score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddRangeToListAsync(string listId, System.Collections.Generic.List values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddRangeToSetAsync(string setId, System.Collections.Generic.List items, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddRangeToSortedSetAsync(string setId, System.Collections.Generic.List values, double score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddRangeToSortedSetAsync(string setId, System.Collections.Generic.List values, System.Int64 score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddToHyperLogAsync(string key, string[] elements, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddToHyperLogAsync(string key, params string[] elements); + System.Threading.Tasks.ValueTask AppendToAsync(string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Redis.Generic.IRedisTypedClientAsync As(); + System.Threading.Tasks.ValueTask BackgroundRewriteAppendOnlyFileAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BackgroundSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingDequeueItemFromListAsync(string listId, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingDequeueItemFromListsAsync(string[] listIds, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingPopAndPushItemBetweenListsAsync(string fromListId, string toListId, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingPopItemFromListAsync(string listId, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingPopItemFromListsAsync(string[] listIds, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingRemoveStartFromListAsync(string listId, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingRemoveStartFromListsAsync(string[] listIds, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CalculateDistanceBetweenGeoMembersAsync(string key, string fromMember, string toMember, string unit = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CalculateSha1Async(string luaBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + int ConnectTimeout { get; set; } + System.Threading.Tasks.ValueTask ContainsKeyAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CountHyperLogAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Redis.Pipeline.IRedisPipelineAsync CreatePipeline(); + System.Threading.Tasks.ValueTask CreateSubscriptionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CreateTransactionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CustomAsync(object[] cmdWithArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CustomAsync(params object[] cmdWithArgs); + System.Int64 Db { get; } + System.Threading.Tasks.ValueTask DbSizeAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DecrementValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DecrementValueByAsync(string key, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DequeueItemFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EchoAsync(string text, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EnqueueItemOnListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecCachedLuaAsync(string scriptBody, System.Func> scriptSha1, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaAsIntAsync(string luaBody, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaAsIntAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaAsIntAsync(string luaBody, params string[] args); + System.Threading.Tasks.ValueTask> ExecLuaAsListAsync(string luaBody, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> ExecLuaAsListAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> ExecLuaAsListAsync(string luaBody, params string[] args); + System.Threading.Tasks.ValueTask ExecLuaAsStringAsync(string luaBody, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaAsStringAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaAsStringAsync(string luaBody, params string[] args); + System.Threading.Tasks.ValueTask ExecLuaAsync(string body, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaAsync(string body, params string[] args); + System.Threading.Tasks.ValueTask ExecLuaShaAsIntAsync(string sha1, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaShaAsIntAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaShaAsIntAsync(string sha1, params string[] args); + System.Threading.Tasks.ValueTask> ExecLuaShaAsListAsync(string sha1, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> ExecLuaShaAsListAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> ExecLuaShaAsListAsync(string sha1, params string[] args); + System.Threading.Tasks.ValueTask ExecLuaShaAsStringAsync(string sha1, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaShaAsStringAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaShaAsStringAsync(string sha1, params string[] args); + System.Threading.Tasks.ValueTask ExecLuaShaAsync(string sha1, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaShaAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExecLuaShaAsync(string sha1, params string[] args); + System.Threading.Tasks.ValueTask ExpireEntryAtAsync(string key, System.DateTime expireAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExpireEntryInAsync(string key, System.TimeSpan expireIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask FindGeoMembersInRadiusAsync(string key, double longitude, double latitude, double radius, string unit, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask FindGeoMembersInRadiusAsync(string key, string member, double radius, string unit, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> FindGeoResultsInRadiusAsync(string key, double longitude, double latitude, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> FindGeoResultsInRadiusAsync(string key, string member, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask FlushDbAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ForegroundSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllEntriesFromHashAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllItemsFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllItemsFromSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllItemsFromSortedSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllItemsFromSortedSetDescAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllKeysAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllWithScoresFromSortedSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetAndSetValueAsync(string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask>> GetClientsInfoAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetConfigAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetDifferencesFromSetAsync(string fromSetId, string[] withSetIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetDifferencesFromSetAsync(string fromSetId, params string[] withSetIds); + System.Threading.Tasks.ValueTask GetEntryTypeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetFromHashAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetGeoCoordinatesAsync(string key, string[] members, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetGeoCoordinatesAsync(string key, params string[] members); + System.Threading.Tasks.ValueTask GetGeohashesAsync(string key, string[] members, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetGeohashesAsync(string key, params string[] members); + System.Threading.Tasks.ValueTask GetHashCountAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetHashKeysAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetHashValuesAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetIntersectFromSetsAsync(string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetIntersectFromSetsAsync(params string[] setIds); + System.Threading.Tasks.ValueTask GetItemFromListAsync(string listId, int listIndex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetItemIndexInSortedSetAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetItemIndexInSortedSetDescAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetItemScoreInSortedSetAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetListCountAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetRandomItemFromSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetRandomKeyAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromListAsync(string listId, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedListAsync(string listId, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetDescAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetDescAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetServerRoleAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetServerRoleInfoAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetServerTimeAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetSetCountAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetSlowlogAsync(int? numberOfRecords = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetSortedEntryValuesAsync(string key, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetSortedItemsFromListAsync(string listId, ServiceStack.Redis.SortOptions sortOptions, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetSortedSetCountAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetSortedSetCountAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetSortedSetCountAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetSortedSetCountAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetStringCountAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetUnionFromSetsAsync(string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetUnionFromSetsAsync(params string[] setIds); + System.Threading.Tasks.ValueTask GetValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetValueFromHashAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetValuesAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetValuesAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetValuesFromHashAsync(string hashId, string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetValuesFromHashAsync(string hashId, params string[] keys); + System.Threading.Tasks.ValueTask> GetValuesMapAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetValuesMapAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + bool HadExceptions { get; } + System.Threading.Tasks.ValueTask HasLuaScriptAsync(string sha1Ref, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HashContainsEntryAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Model.IHasNamed Hashes { get; } + string Host { get; } + System.Threading.Tasks.ValueTask IncrementItemInSortedSetAsync(string setId, string value, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementItemInSortedSetAsync(string setId, string value, System.Int64 incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementValueByAsync(string key, double count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementValueByAsync(string key, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementValueByAsync(string key, System.Int64 count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementValueInHashAsync(string hashId, string key, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementValueInHashAsync(string hashId, string key, int incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> InfoAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask InsertAtAsync(string key, int offset, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask KillClientAsync(string address, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask KillClientsAsync(string fromAddress = default(string), string withId = default(string), ServiceStack.Redis.RedisClientType? ofType = default(ServiceStack.Redis.RedisClientType?), bool? skipMe = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask KillRunningLuaScriptAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LastSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Model.IHasNamed Lists { get; } + System.Threading.Tasks.ValueTask LoadLuaScriptAsync(string body, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MergeHyperLogsAsync(string toKey, string[] fromKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MergeHyperLogsAsync(string toKey, params string[] fromKeys); + System.Threading.Tasks.ValueTask MoveBetweenSetsAsync(string fromSetId, string toSetId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string Password { get; set; } + System.Threading.Tasks.ValueTask PauseAllClientsAsync(System.TimeSpan duration, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PingAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopAndPushItemBetweenListsAsync(string fromListId, string toListId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemFromSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemWithHighestScoreFromSortedSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemWithLowestScoreFromSortedSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> PopItemsFromSetAsync(string setId, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + int Port { get; } + System.Threading.Tasks.ValueTask PrependItemToListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PrependRangeToListAsync(string listId, System.Collections.Generic.List values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PublishMessageAsync(string toChannel, string message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PushItemToListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAllFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAllLuaScriptsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEndFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEntryAsync(string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEntryAsync(params string[] args); + System.Threading.Tasks.ValueTask RemoveEntryFromHashAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveItemFromListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveItemFromListAsync(string listId, string value, int noOfMatches, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveItemFromSetAsync(string setId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveItemFromSortedSetAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveItemsFromSortedSetAsync(string setId, System.Collections.Generic.List values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetAsync(string setId, int minRank, int maxRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetByScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetByScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetBySearchAsync(string setId, string start = default(string), string end = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveStartFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RenameKeyAsync(string fromName, string toName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ResetInfoStatsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + int RetryCount { get; set; } + int RetryTimeout { get; set; } + System.Threading.Tasks.ValueTask SaveConfigAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Collections.Generic.IAsyncEnumerable> ScanAllHashEntriesAsync(string hashId, string pattern = default(string), int pageSize = default(int), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Collections.Generic.IAsyncEnumerable ScanAllKeysAsync(string pattern = default(string), int pageSize = default(int), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Collections.Generic.IAsyncEnumerable ScanAllSetItemsAsync(string setId, string pattern = default(string), int pageSize = default(int), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Collections.Generic.IAsyncEnumerable> ScanAllSortedSetItemsAsync(string setId, string pattern = default(string), int pageSize = default(int), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> SearchKeysAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> SearchSortedSetAsync(string setId, string start = default(string), string end = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SearchSortedSetCountAsync(string setId, string start = default(string), string end = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SelectAsync(System.Int64 db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + int SendTimeout { get; set; } + System.Threading.Tasks.ValueTask SetAllAsync(System.Collections.Generic.IDictionary map, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetAllAsync(System.Collections.Generic.IEnumerable keys, System.Collections.Generic.IEnumerable values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetClientAsync(string name, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetConfigAsync(string item, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetContainsItemAsync(string setId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetEntryInHashAsync(string hashId, string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetEntryInHashIfNotExistsAsync(string hashId, string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetItemInListAsync(string listId, int listIndex, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetRangeInHashAsync(string hashId, System.Collections.Generic.IEnumerable> keyValuePairs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueAsync(string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueAsync(string key, string value, System.TimeSpan expireIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueIfExistsAsync(string key, string value, System.TimeSpan? expireIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueIfNotExistsAsync(string key, string value, System.TimeSpan? expireIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValuesAsync(System.Collections.Generic.IDictionary map, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Model.IHasNamed Sets { get; } + System.Threading.Tasks.ValueTask ShutdownAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ShutdownNoSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SliceAsync(string key, int fromIndex, int toIndex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SlowlogResetAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SortedSetContainsItemAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Model.IHasNamed SortedSets { get; } + System.Threading.Tasks.ValueTask StoreAsHashAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreDifferencesFromSetAsync(string intoSetId, string fromSetId, string[] withSetIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreDifferencesFromSetAsync(string intoSetId, string fromSetId, params string[] withSetIds); + System.Threading.Tasks.ValueTask StoreIntersectFromSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreIntersectFromSetsAsync(string intoSetId, params string[] setIds); + System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(string intoSetId, string[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(string intoSetId, params string[] setIds); + System.Threading.Tasks.ValueTask StoreObjectAsync(object entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreUnionFromSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreUnionFromSetsAsync(string intoSetId, params string[] setIds); + System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(string intoSetId, string[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(string intoSetId, params string[] setIds); + System.Threading.Tasks.ValueTask TrimListAsync(string listId, int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask TypeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask UnWatchAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string UrnKey(System.Type type, object id); + string UrnKey(T value); + string UrnKey(object id); + string Username { get; set; } + System.Threading.Tasks.ValueTask WatchAsync(string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask WatchAsync(params string[] keys); + System.Threading.Tasks.ValueTask> WhichLuaScriptsExistsAsync(string[] sha1Refs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> WhichLuaScriptsExistsAsync(params string[] sha1Refs); + System.Threading.Tasks.ValueTask WriteAllAsync(System.Collections.Generic.IEnumerable entities, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.IRedisClientCacheManager` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisClientCacheManager : System.IDisposable + { + ServiceStack.Caching.ICacheClient GetCacheClient(); + ServiceStack.Redis.IRedisClient GetClient(); + ServiceStack.Caching.ICacheClient GetReadOnlyCacheClient(); + ServiceStack.Redis.IRedisClient GetReadOnlyClient(); + } + + // Generated from `ServiceStack.Redis.IRedisClientsManager` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisClientsManager : System.IDisposable + { + ServiceStack.Caching.ICacheClient GetCacheClient(); + ServiceStack.Redis.IRedisClient GetClient(); + ServiceStack.Caching.ICacheClient GetReadOnlyCacheClient(); + ServiceStack.Redis.IRedisClient GetReadOnlyClient(); + } + + // Generated from `ServiceStack.Redis.IRedisClientsManagerAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisClientsManagerAsync : System.IAsyncDisposable + { + System.Threading.Tasks.ValueTask GetCacheClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetReadOnlyCacheClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetReadOnlyClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.IRedisHash` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisHash : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + bool AddIfNotExists(System.Collections.Generic.KeyValuePair item); + void AddRange(System.Collections.Generic.IEnumerable> items); + System.Int64 IncrementValue(string key, int incrementBy); + } + + // Generated from `ServiceStack.Redis.IRedisHashAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisHashAsync : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.IAsyncEnumerable> + { + System.Threading.Tasks.ValueTask AddAsync(System.Collections.Generic.KeyValuePair item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddAsync(string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddIfNotExistsAsync(System.Collections.Generic.KeyValuePair item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddRangeAsync(System.Collections.Generic.IEnumerable> items, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ContainsKeyAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementValueAsync(string key, int incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.IRedisList` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisList : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + { + void Append(string value); + string BlockingDequeue(System.TimeSpan? timeOut); + string BlockingPop(System.TimeSpan? timeOut); + string BlockingRemoveStart(System.TimeSpan? timeOut); + string Dequeue(); + void Enqueue(string value); + System.Collections.Generic.List GetAll(); + System.Collections.Generic.List GetRange(int startingFrom, int endingAt); + System.Collections.Generic.List GetRangeFromSortedList(int startingFrom, int endingAt); + string Pop(); + string PopAndPush(ServiceStack.Redis.IRedisList toList); + void Prepend(string value); + void Push(string value); + void RemoveAll(); + string RemoveEnd(); + string RemoveStart(); + System.Int64 RemoveValue(string value); + System.Int64 RemoveValue(string value, int noOfMatches); + void Trim(int keepStartingFrom, int keepEndingAt); + } + + // Generated from `ServiceStack.Redis.IRedisListAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisListAsync : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.IAsyncEnumerable + { + System.Threading.Tasks.ValueTask AddAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AppendAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingDequeueAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingPopAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingRemoveStartAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ContainsAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DequeueAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ElementAtAsync(int index, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EnqueueAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedListAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IndexOfAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopAndPushAsync(ServiceStack.Redis.IRedisListAsync toList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PrependAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PushAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAtAsync(int index, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEndAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveStartAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveValueAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveValueAsync(string value, int noOfMatches, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueAsync(int index, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask TrimAsync(int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.IRedisNativeClient` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisNativeClient : System.IDisposable + { + System.Int64 Append(string key, System.Byte[] value); + System.Byte[][] BLPop(string[] listIds, int timeOutSecs); + System.Byte[][] BLPop(string listId, int timeOutSecs); + System.Byte[][] BLPopValue(string[] listIds, int timeOutSecs); + System.Byte[] BLPopValue(string listId, int timeOutSecs); + System.Byte[][] BRPop(string[] listIds, int timeOutSecs); + System.Byte[][] BRPop(string listId, int timeOutSecs); + System.Byte[] BRPopLPush(string fromListId, string toListId, int timeOutSecs); + System.Byte[][] BRPopValue(string[] listIds, int timeOutSecs); + System.Byte[] BRPopValue(string listId, int timeOutSecs); + void BgRewriteAof(); + void BgSave(); + string CalculateSha1(string luaBody); + string ClientGetName(); + void ClientKill(string host); + System.Int64 ClientKill(string addr = default(string), string id = default(string), string type = default(string), string skipMe = default(string)); + System.Byte[] ClientList(); + void ClientPause(int timeOutMs); + void ClientSetName(string client); + System.Byte[][] ConfigGet(string pattern); + void ConfigResetStat(); + void ConfigRewrite(); + void ConfigSet(string item, System.Byte[] value); + ServiceStack.Redis.IRedisSubscription CreateSubscription(); + System.Int64 Db { get; set; } + System.Int64 DbSize { get; } + void DebugSegfault(); + System.Int64 Decr(string key); + System.Int64 DecrBy(string key, int decrBy); + System.Int64 Del(params string[] keys); + System.Int64 Del(string key); + System.Byte[] Dump(string key); + string Echo(string text); + System.Byte[][] Eval(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); + ServiceStack.Redis.RedisData EvalCommand(string luaBody, int numberKeysInArgs, params System.Byte[][] keys); + System.Int64 EvalInt(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); + System.Byte[][] EvalSha(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); + ServiceStack.Redis.RedisData EvalShaCommand(string sha1, int numberKeysInArgs, params System.Byte[][] keys); + System.Int64 EvalShaInt(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); + string EvalShaStr(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); + string EvalStr(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); + System.Int64 Exists(string key); + bool Expire(string key, int seconds); + bool ExpireAt(string key, System.Int64 unixTime); + void FlushAll(); + void FlushDb(); + System.Int64 GeoAdd(string key, double longitude, double latitude, string member); + System.Int64 GeoAdd(string key, params ServiceStack.Redis.RedisGeo[] geoPoints); + double GeoDist(string key, string fromMember, string toMember, string unit = default(string)); + string[] GeoHash(string key, params string[] members); + System.Collections.Generic.List GeoPos(string key, params string[] members); + System.Collections.Generic.List GeoRadius(string key, double longitude, double latitude, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?)); + System.Collections.Generic.List GeoRadiusByMember(string key, string member, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?)); + System.Byte[] Get(string key); + System.Int64 GetBit(string key, int offset); + System.Byte[] GetRange(string key, int fromIndex, int toIndex); + System.Byte[] GetSet(string key, System.Byte[] value); + System.Int64 HDel(string hashId, System.Byte[] key); + System.Int64 HExists(string hashId, System.Byte[] key); + System.Byte[] HGet(string hashId, System.Byte[] key); + System.Byte[][] HGetAll(string hashId); + System.Int64 HIncrby(string hashId, System.Byte[] key, int incrementBy); + double HIncrbyFloat(string hashId, System.Byte[] key, double incrementBy); + System.Byte[][] HKeys(string hashId); + System.Int64 HLen(string hashId); + System.Byte[][] HMGet(string hashId, params System.Byte[][] keysAndArgs); + void HMSet(string hashId, System.Byte[][] keys, System.Byte[][] values); + ServiceStack.Redis.ScanResult HScan(string hashId, System.UInt64 cursor, int count = default(int), string match = default(string)); + System.Int64 HSet(string hashId, System.Byte[] key, System.Byte[] value); + System.Int64 HSetNX(string hashId, System.Byte[] key, System.Byte[] value); + System.Byte[][] HVals(string hashId); + System.Int64 Incr(string key); + System.Int64 IncrBy(string key, int incrBy); + double IncrByFloat(string key, double incrBy); + System.Collections.Generic.Dictionary Info { get; } + System.Byte[][] Keys(string pattern); + System.Byte[] LIndex(string listId, int listIndex); + void LInsert(string listId, bool insertBefore, System.Byte[] pivot, System.Byte[] value); + System.Int64 LLen(string listId); + System.Byte[] LPop(string listId); + System.Int64 LPush(string listId, System.Byte[] value); + System.Int64 LPushX(string listId, System.Byte[] value); + System.Byte[][] LRange(string listId, int startingFrom, int endingAt); + System.Int64 LRem(string listId, int removeNoOfMatches, System.Byte[] value); + void LSet(string listId, int listIndex, System.Byte[] value); + void LTrim(string listId, int keepStartingFrom, int keepEndingAt); + System.DateTime LastSave { get; } + System.Byte[][] MGet(params System.Byte[][] keysAndArgs); + System.Byte[][] MGet(params string[] keys); + void MSet(System.Byte[][] keys, System.Byte[][] values); + void MSet(string[] keys, System.Byte[][] values); + bool MSetNx(System.Byte[][] keys, System.Byte[][] values); + bool MSetNx(string[] keys, System.Byte[][] values); + void Migrate(string host, int port, string key, int destinationDb, System.Int64 timeoutMs); + bool Move(string key, int db); + System.Int64 ObjectIdleTime(string key); + bool PExpire(string key, System.Int64 ttlMs); + bool PExpireAt(string key, System.Int64 unixTimeMs); + void PSetEx(string key, System.Int64 expireInMs, System.Byte[] value); + System.Byte[][] PSubscribe(params string[] toChannelsMatchingPatterns); + System.Int64 PTtl(string key); + System.Byte[][] PUnSubscribe(params string[] toChannelsMatchingPatterns); + bool Persist(string key); + bool PfAdd(string key, params System.Byte[][] elements); + System.Int64 PfCount(string key); + void PfMerge(string toKeyId, params string[] fromKeys); + bool Ping(); + System.Int64 Publish(string toChannel, System.Byte[] message); + void Quit(); + System.Byte[] RPop(string listId); + System.Byte[] RPopLPush(string fromListId, string toListId); + System.Int64 RPush(string listId, System.Byte[] value); + System.Int64 RPushX(string listId, System.Byte[] value); + string RandomKey(); + ServiceStack.Redis.RedisData RawCommand(params System.Byte[][] cmdWithBinaryArgs); + ServiceStack.Redis.RedisData RawCommand(params object[] cmdWithArgs); + System.Byte[][] ReceiveMessages(); + void Rename(string oldKeyName, string newKeyName); + bool RenameNx(string oldKeyName, string newKeyName); + System.Byte[] Restore(string key, System.Int64 expireMs, System.Byte[] dumpValue); + ServiceStack.Redis.RedisText Role(); + System.Int64 SAdd(string setId, System.Byte[] value); + System.Int64 SAdd(string setId, System.Byte[][] value); + System.Int64 SCard(string setId); + System.Byte[][] SDiff(string fromSetId, params string[] withSetIds); + void SDiffStore(string intoSetId, string fromSetId, params string[] withSetIds); + System.Byte[][] SInter(params string[] setIds); + void SInterStore(string intoSetId, params string[] setIds); + System.Int64 SIsMember(string setId, System.Byte[] value); + System.Byte[][] SMembers(string setId); + void SMove(string fromSetId, string toSetId, System.Byte[] value); + System.Byte[] SPop(string setId); + System.Byte[][] SPop(string setId, int count); + System.Byte[] SRandMember(string setId); + System.Int64 SRem(string setId, System.Byte[] value); + ServiceStack.Redis.ScanResult SScan(string setId, System.UInt64 cursor, int count = default(int), string match = default(string)); + System.Byte[][] SUnion(params string[] setIds); + void SUnionStore(string intoSetId, params string[] setIds); + void Save(); + ServiceStack.Redis.ScanResult Scan(System.UInt64 cursor, int count = default(int), string match = default(string)); + System.Byte[][] ScriptExists(params System.Byte[][] sha1Refs); + void ScriptFlush(); + void ScriptKill(); + System.Byte[] ScriptLoad(string body); + void Set(string key, System.Byte[] value); + System.Int64 SetBit(string key, int offset, int value); + void SetEx(string key, int expireInSeconds, System.Byte[] value); + System.Int64 SetNX(string key, System.Byte[] value); + System.Int64 SetRange(string key, int offset, System.Byte[] value); + void Shutdown(); + void SlaveOf(string hostname, int port); + void SlaveOfNoOne(); + System.Byte[][] Sort(string listOrSetId, ServiceStack.Redis.SortOptions sortOptions); + System.Int64 StrLen(string key); + System.Byte[][] Subscribe(params string[] toChannels); + System.Byte[][] Time(); + System.Int64 Ttl(string key); + string Type(string key); + System.Byte[][] UnSubscribe(params string[] toChannels); + void UnWatch(); + void Watch(params string[] keys); + System.Int64 ZAdd(string setId, double score, System.Byte[] value); + System.Int64 ZAdd(string setId, System.Int64 score, System.Byte[] value); + System.Int64 ZCard(string setId); + double ZIncrBy(string setId, double incrBy, System.Byte[] value); + double ZIncrBy(string setId, System.Int64 incrBy, System.Byte[] value); + System.Int64 ZInterStore(string intoSetId, params string[] setIds); + System.Int64 ZLexCount(string setId, string min, string max); + System.Byte[][] ZRange(string setId, int min, int max); + System.Byte[][] ZRangeByLex(string setId, string min, string max, int? skip = default(int?), int? take = default(int?)); + System.Byte[][] ZRangeByScore(string setId, double min, double max, int? skip, int? take); + System.Byte[][] ZRangeByScore(string setId, System.Int64 min, System.Int64 max, int? skip, int? take); + System.Byte[][] ZRangeByScoreWithScores(string setId, double min, double max, int? skip, int? take); + System.Byte[][] ZRangeByScoreWithScores(string setId, System.Int64 min, System.Int64 max, int? skip, int? take); + System.Byte[][] ZRangeWithScores(string setId, int min, int max); + System.Int64 ZRank(string setId, System.Byte[] value); + System.Int64 ZRem(string setId, System.Byte[] value); + System.Int64 ZRem(string setId, System.Byte[][] values); + System.Int64 ZRemRangeByLex(string setId, string min, string max); + System.Int64 ZRemRangeByRank(string setId, int min, int max); + System.Int64 ZRemRangeByScore(string setId, double fromScore, double toScore); + System.Int64 ZRemRangeByScore(string setId, System.Int64 fromScore, System.Int64 toScore); + System.Byte[][] ZRevRange(string setId, int min, int max); + System.Byte[][] ZRevRangeByScore(string setId, double min, double max, int? skip, int? take); + System.Byte[][] ZRevRangeByScore(string setId, System.Int64 min, System.Int64 max, int? skip, int? take); + System.Byte[][] ZRevRangeByScoreWithScores(string setId, double min, double max, int? skip, int? take); + System.Byte[][] ZRevRangeByScoreWithScores(string setId, System.Int64 min, System.Int64 max, int? skip, int? take); + System.Byte[][] ZRevRangeWithScores(string setId, int min, int max); + System.Int64 ZRevRank(string setId, System.Byte[] value); + ServiceStack.Redis.ScanResult ZScan(string setId, System.UInt64 cursor, int count = default(int), string match = default(string)); + double ZScore(string setId, System.Byte[] value); + System.Int64 ZUnionStore(string intoSetId, params string[] setIds); + } + + // Generated from `ServiceStack.Redis.IRedisNativeClientAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisNativeClientAsync : System.IAsyncDisposable + { + System.Threading.Tasks.ValueTask AppendAsync(string key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BLPopAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BLPopAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BLPopValueAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BLPopValueAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BRPopAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BRPopAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BRPopLPushAsync(string fromListId, string toListId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BRPopValueAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BRPopValueAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BgRewriteAofAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BgSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BitCountAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CalculateSha1Async(string luaBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClientGetNameAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClientKillAsync(string host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClientKillAsync(string addr = default(string), string id = default(string), string type = default(string), string skipMe = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClientListAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClientPauseAsync(int timeOutMs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClientSetNameAsync(string client, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ConfigGetAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ConfigResetStatAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ConfigRewriteAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ConfigSetAsync(string item, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CreateSubscriptionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Int64 Db { get; } + System.Threading.Tasks.ValueTask DbSizeAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DebugSegfaultAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DecrAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DecrByAsync(string key, System.Int64 decrBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DelAsync(string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DelAsync(params string[] keys); + System.Threading.Tasks.ValueTask DelAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DumpAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EchoAsync(string text, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EvalAsync(string luaBody, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EvalAsync(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); + System.Threading.Tasks.ValueTask EvalCommandAsync(string luaBody, int numberKeysInArgs, System.Byte[][] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EvalCommandAsync(string luaBody, int numberKeysInArgs, params System.Byte[][] keys); + System.Threading.Tasks.ValueTask EvalIntAsync(string luaBody, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EvalIntAsync(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); + System.Threading.Tasks.ValueTask EvalShaAsync(string sha1, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EvalShaAsync(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); + System.Threading.Tasks.ValueTask EvalShaCommandAsync(string sha1, int numberKeysInArgs, System.Byte[][] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EvalShaCommandAsync(string sha1, int numberKeysInArgs, params System.Byte[][] keys); + System.Threading.Tasks.ValueTask EvalShaIntAsync(string sha1, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EvalShaIntAsync(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); + System.Threading.Tasks.ValueTask EvalShaStrAsync(string sha1, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EvalShaStrAsync(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); + System.Threading.Tasks.ValueTask EvalStrAsync(string luaBody, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EvalStrAsync(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); + System.Threading.Tasks.ValueTask ExistsAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExpireAsync(string key, int seconds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExpireAtAsync(string key, System.Int64 unixTime, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask FlushDbAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GeoAddAsync(string key, ServiceStack.Redis.RedisGeo[] geoPoints, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GeoAddAsync(string key, double longitude, double latitude, string member, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GeoAddAsync(string key, params ServiceStack.Redis.RedisGeo[] geoPoints); + System.Threading.Tasks.ValueTask GeoDistAsync(string key, string fromMember, string toMember, string unit = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GeoHashAsync(string key, string[] members, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GeoHashAsync(string key, params string[] members); + System.Threading.Tasks.ValueTask> GeoPosAsync(string key, string[] members, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GeoPosAsync(string key, params string[] members); + System.Threading.Tasks.ValueTask> GeoRadiusAsync(string key, double longitude, double latitude, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GeoRadiusByMemberAsync(string key, string member, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetBitAsync(string key, int offset, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetRangeAsync(string key, int fromIndex, int toIndex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetSetAsync(string key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HDelAsync(string hashId, System.Byte[] key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HExistsAsync(string hashId, System.Byte[] key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HGetAllAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HGetAsync(string hashId, System.Byte[] key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HIncrbyAsync(string hashId, System.Byte[] key, int incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HIncrbyFloatAsync(string hashId, System.Byte[] key, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HKeysAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HLenAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HMGetAsync(string hashId, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HMGetAsync(string hashId, params System.Byte[][] keysAndArgs); + System.Threading.Tasks.ValueTask HMSetAsync(string hashId, System.Byte[][] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HScanAsync(string hashId, System.UInt64 cursor, int count = default(int), string match = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HSetAsync(string hashId, System.Byte[] key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HSetNXAsync(string hashId, System.Byte[] key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HValsAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrByAsync(string key, System.Int64 incrBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrByFloatAsync(string key, double incrBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> InfoAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask KeysAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LIndexAsync(string listId, int listIndex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LInsertAsync(string listId, bool insertBefore, System.Byte[] pivot, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LLenAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LPopAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LPushAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LPushXAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LRangeAsync(string listId, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LRemAsync(string listId, int removeNoOfMatches, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LSetAsync(string listId, int listIndex, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LTrimAsync(string listId, int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask LastSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MGetAsync(System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MGetAsync(string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MGetAsync(params System.Byte[][] keysAndArgs); + System.Threading.Tasks.ValueTask MGetAsync(params string[] keys); + System.Threading.Tasks.ValueTask MSetAsync(System.Byte[][] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MSetAsync(string[] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MSetNxAsync(System.Byte[][] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MSetNxAsync(string[] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MigrateAsync(string host, int port, string key, int destinationDb, System.Int64 timeoutMs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MoveAsync(string key, int db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ObjectIdleTimeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PExpireAsync(string key, System.Int64 ttlMs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PExpireAtAsync(string key, System.Int64 unixTimeMs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PSetExAsync(string key, System.Int64 expireInMs, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PSubscribeAsync(string[] toChannelsMatchingPatterns, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PSubscribeAsync(params string[] toChannelsMatchingPatterns); + System.Threading.Tasks.ValueTask PTtlAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PUnSubscribeAsync(string[] toChannelsMatchingPatterns, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PUnSubscribeAsync(params string[] toChannelsMatchingPatterns); + System.Threading.Tasks.ValueTask PersistAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PfAddAsync(string key, System.Byte[][] elements, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PfAddAsync(string key, params System.Byte[][] elements); + System.Threading.Tasks.ValueTask PfCountAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PfMergeAsync(string toKeyId, string[] fromKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PfMergeAsync(string toKeyId, params string[] fromKeys); + System.Threading.Tasks.ValueTask PingAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PublishAsync(string toChannel, System.Byte[] message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask QuitAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RPopAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RPopLPushAsync(string fromListId, string toListId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RPushAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RPushXAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RandomKeyAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RawCommandAsync(System.Byte[][] cmdWithBinaryArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RawCommandAsync(object[] cmdWithArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RawCommandAsync(params System.Byte[][] cmdWithBinaryArgs); + System.Threading.Tasks.ValueTask RawCommandAsync(params object[] cmdWithArgs); + System.Threading.Tasks.ValueTask ReceiveMessagesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RenameAsync(string oldKeyName, string newKeyName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RenameNxAsync(string oldKeyName, string newKeyName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RestoreAsync(string key, System.Int64 expireMs, System.Byte[] dumpValue, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RoleAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SAddAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SAddAsync(string setId, System.Byte[][] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SCardAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SDiffAsync(string fromSetId, string[] withSetIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SDiffAsync(string fromSetId, params string[] withSetIds); + System.Threading.Tasks.ValueTask SDiffStoreAsync(string intoSetId, string fromSetId, string[] withSetIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SDiffStoreAsync(string intoSetId, string fromSetId, params string[] withSetIds); + System.Threading.Tasks.ValueTask SInterAsync(string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SInterAsync(params string[] setIds); + System.Threading.Tasks.ValueTask SInterStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SInterStoreAsync(string intoSetId, params string[] setIds); + System.Threading.Tasks.ValueTask SIsMemberAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SMembersAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SMoveAsync(string fromSetId, string toSetId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SPopAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SPopAsync(string setId, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SRandMemberAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SRemAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SScanAsync(string setId, System.UInt64 cursor, int count = default(int), string match = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SUnionAsync(string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SUnionAsync(params string[] setIds); + System.Threading.Tasks.ValueTask SUnionStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SUnionStoreAsync(string intoSetId, params string[] setIds); + System.Threading.Tasks.ValueTask SaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ScanAsync(System.UInt64 cursor, int count = default(int), string match = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ScriptExistsAsync(System.Byte[][] sha1Refs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ScriptExistsAsync(params System.Byte[][] sha1Refs); + System.Threading.Tasks.ValueTask ScriptFlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ScriptKillAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ScriptLoadAsync(string body, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SelectAsync(System.Int64 db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetAsync(string key, System.Byte[] value, bool exists, System.Int64 expirySeconds = default(System.Int64), System.Int64 expiryMilliseconds = default(System.Int64), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetAsync(string key, System.Byte[] value, System.Int64 expirySeconds = default(System.Int64), System.Int64 expiryMilliseconds = default(System.Int64), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetBitAsync(string key, int offset, int value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetExAsync(string key, int expireInSeconds, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetNXAsync(string key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetRangeAsync(string key, int offset, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ShutdownAsync(bool noSave = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SlaveOfAsync(string hostname, int port, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SlaveOfNoOneAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SlowlogGetAsync(int? top = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SlowlogResetAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SortAsync(string listOrSetId, ServiceStack.Redis.SortOptions sortOptions, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StrLenAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SubscribeAsync(string[] toChannels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SubscribeAsync(params string[] toChannels); + System.Threading.Tasks.ValueTask TimeAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask TtlAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask TypeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask UnSubscribeAsync(string[] toChannels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask UnSubscribeAsync(params string[] toChannels); + System.Threading.Tasks.ValueTask UnWatchAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask WatchAsync(string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask WatchAsync(params string[] keys); + System.Threading.Tasks.ValueTask ZAddAsync(string setId, double score, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZAddAsync(string setId, System.Int64 score, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZCardAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZCountAsync(string setId, double min, double max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZIncrByAsync(string setId, double incrBy, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZIncrByAsync(string setId, System.Int64 incrBy, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZInterStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZInterStoreAsync(string intoSetId, params string[] setIds); + System.Threading.Tasks.ValueTask ZLexCountAsync(string setId, string min, string max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRangeAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRangeByLexAsync(string setId, string min, string max, int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRangeByScoreAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRangeByScoreAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRangeByScoreWithScoresAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRangeByScoreWithScoresAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRangeWithScoresAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRankAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRemAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRemAsync(string setId, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRemRangeByLexAsync(string setId, string min, string max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRemRangeByRankAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRemRangeByScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRemRangeByScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRevRangeAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRevRangeByScoreAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRevRangeByScoreAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRevRangeByScoreWithScoresAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRevRangeByScoreWithScoresAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRevRangeWithScoresAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZRevRankAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZScanAsync(string setId, System.UInt64 cursor, int count = default(int), string match = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZScoreAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZUnionStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ZUnionStoreAsync(string intoSetId, params string[] setIds); + } + + // Generated from `ServiceStack.Redis.IRedisPubSubServer` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisPubSubServer : System.IDisposable + { + string[] Channels { get; } + ServiceStack.Redis.IRedisClientsManager ClientsManager { get; } + System.DateTime CurrentServerTime { get; } + string GetStatsDescription(); + string GetStatus(); + System.Action OnDispose { get; set; } + System.Action OnError { get; set; } + System.Action OnEvent { get; set; } + System.Action OnFailover { get; set; } + System.Action OnInit { get; set; } + System.Action OnMessage { get; set; } + System.Action OnStart { get; set; } + System.Action OnStop { get; set; } + System.Action OnUnSubscribe { get; set; } + void Restart(); + ServiceStack.Redis.IRedisPubSubServer Start(); + void Stop(); + System.TimeSpan? WaitBeforeNextRestart { get; set; } + } + + // Generated from `ServiceStack.Redis.IRedisSet` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSet : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + System.Collections.Generic.HashSet Diff(ServiceStack.Redis.IRedisSet[] withSets); + System.Collections.Generic.HashSet GetAll(); + string GetRandomEntry(); + System.Collections.Generic.List GetRangeFromSortedSet(int startingFrom, int endingAt); + System.Collections.Generic.HashSet Intersect(params ServiceStack.Redis.IRedisSet[] withSets); + void Move(string value, ServiceStack.Redis.IRedisSet toSet); + string Pop(); + void StoreDiff(ServiceStack.Redis.IRedisSet fromSet, params ServiceStack.Redis.IRedisSet[] withSets); + void StoreIntersect(params ServiceStack.Redis.IRedisSet[] withSets); + void StoreUnion(params ServiceStack.Redis.IRedisSet[] withSets); + System.Collections.Generic.HashSet Union(params ServiceStack.Redis.IRedisSet[] withSets); + } + + // Generated from `ServiceStack.Redis.IRedisSetAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSetAsync : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.IAsyncEnumerable + { + System.Threading.Tasks.ValueTask AddAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ContainsAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> DiffAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetRandomEntryAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> IntersectAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> IntersectAsync(params ServiceStack.Redis.IRedisSetAsync[] withSets); + System.Threading.Tasks.ValueTask MoveAsync(string value, ServiceStack.Redis.IRedisSetAsync toSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreDiffAsync(ServiceStack.Redis.IRedisSetAsync fromSet, ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreDiffAsync(ServiceStack.Redis.IRedisSetAsync fromSet, params ServiceStack.Redis.IRedisSetAsync[] withSets); + System.Threading.Tasks.ValueTask StoreIntersectAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreIntersectAsync(params ServiceStack.Redis.IRedisSetAsync[] withSets); + System.Threading.Tasks.ValueTask StoreUnionAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreUnionAsync(params ServiceStack.Redis.IRedisSetAsync[] withSets); + System.Threading.Tasks.ValueTask> UnionAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> UnionAsync(params ServiceStack.Redis.IRedisSetAsync[] withSets); + } + + // Generated from `ServiceStack.Redis.IRedisSortedSet` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSortedSet : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + System.Collections.Generic.List GetAll(); + System.Int64 GetItemIndex(string value); + double GetItemScore(string value); + System.Collections.Generic.List GetRange(int startingRank, int endingRank); + System.Collections.Generic.List GetRangeByScore(double fromScore, double toScore); + System.Collections.Generic.List GetRangeByScore(double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.List GetRangeByScore(string fromStringScore, string toStringScore); + System.Collections.Generic.List GetRangeByScore(string fromStringScore, string toStringScore, int? skip, int? take); + void IncrementItemScore(string value, double incrementByScore); + string PopItemWithHighestScore(); + string PopItemWithLowestScore(); + void RemoveRange(int fromRank, int toRank); + void RemoveRangeByScore(double fromScore, double toScore); + void StoreFromIntersect(params ServiceStack.Redis.IRedisSortedSet[] ofSets); + void StoreFromUnion(params ServiceStack.Redis.IRedisSortedSet[] ofSets); + } + + // Generated from `ServiceStack.Redis.IRedisSortedSetAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSortedSetAsync : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.IAsyncEnumerable + { + System.Threading.Tasks.ValueTask AddAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ContainsAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetItemIndexAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetItemScoreAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeAsync(int startingRank, int endingRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeByScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeByScoreAsync(double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeByScoreAsync(string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeByScoreAsync(string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementItemScoreAsync(string value, double incrementByScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemWithHighestScoreAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemWithLowestScoreAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeAsync(int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeByScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreFromIntersectAsync(ServiceStack.Redis.IRedisSortedSetAsync[] ofSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreFromIntersectAsync(params ServiceStack.Redis.IRedisSortedSetAsync[] ofSets); + System.Threading.Tasks.ValueTask StoreFromUnionAsync(ServiceStack.Redis.IRedisSortedSetAsync[] ofSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreFromUnionAsync(params ServiceStack.Redis.IRedisSortedSetAsync[] ofSets); + } + + // Generated from `ServiceStack.Redis.IRedisSubscription` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSubscription : System.IDisposable + { + System.Action OnMessage { get; set; } + System.Action OnMessageBytes { get; set; } + System.Action OnSubscribe { get; set; } + System.Action OnUnSubscribe { get; set; } + void SubscribeToChannels(params string[] channels); + void SubscribeToChannelsMatching(params string[] patterns); + System.Int64 SubscriptionCount { get; } + void UnSubscribeFromAllChannels(); + void UnSubscribeFromChannels(params string[] channels); + void UnSubscribeFromChannelsMatching(params string[] patterns); + } + + // Generated from `ServiceStack.Redis.IRedisSubscriptionAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSubscriptionAsync : System.IAsyncDisposable + { + event System.Func OnMessageAsync; + event System.Func OnMessageBytesAsync; + event System.Func OnSubscribeAsync; + event System.Func OnUnSubscribeAsync; + System.Threading.Tasks.ValueTask SubscribeToChannelsAsync(string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SubscribeToChannelsAsync(params string[] channels); + System.Threading.Tasks.ValueTask SubscribeToChannelsMatchingAsync(string[] patterns, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SubscribeToChannelsMatchingAsync(params string[] patterns); + System.Int64 SubscriptionCount { get; } + System.Threading.Tasks.ValueTask UnSubscribeFromAllChannelsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask UnSubscribeFromChannelsAsync(string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask UnSubscribeFromChannelsAsync(params string[] channels); + System.Threading.Tasks.ValueTask UnSubscribeFromChannelsMatchingAsync(string[] patterns, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask UnSubscribeFromChannelsMatchingAsync(params string[] patterns); + } + + // Generated from `ServiceStack.Redis.IRedisTransaction` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTransaction : ServiceStack.Redis.IRedisTransactionBase, ServiceStack.Redis.Pipeline.IRedisPipelineShared, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, ServiceStack.Redis.Pipeline.IRedisQueueableOperation, System.IDisposable + { + bool Commit(); + void Rollback(); + } + + // Generated from `ServiceStack.Redis.IRedisTransactionAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTransactionAsync : ServiceStack.Redis.IRedisTransactionBaseAsync, ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync, System.IAsyncDisposable + { + System.Threading.Tasks.ValueTask CommitAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RollbackAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.IRedisTransactionBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTransactionBase : ServiceStack.Redis.Pipeline.IRedisPipelineShared, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, System.IDisposable + { + } + + // Generated from `ServiceStack.Redis.IRedisTransactionBaseAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTransactionBaseAsync : ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, System.IAsyncDisposable + { + } + + // Generated from `ServiceStack.Redis.ItemRef` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ItemRef + { + public string Id { get => throw null; set => throw null; } + public string Item { get => throw null; set => throw null; } + public ItemRef() => throw null; + } + + // Generated from `ServiceStack.Redis.RedisClientType` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum RedisClientType + { + Normal, + PubSub, + Slave, + } + + // Generated from `ServiceStack.Redis.RedisData` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisData + { + public System.Collections.Generic.List Children { get => throw null; set => throw null; } + public System.Byte[] Data { get => throw null; set => throw null; } + public RedisData() => throw null; + } + + // Generated from `ServiceStack.Redis.RedisGeo` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisGeo + { + public double Latitude { get => throw null; set => throw null; } + public double Longitude { get => throw null; set => throw null; } + public string Member { get => throw null; set => throw null; } + public RedisGeo() => throw null; + public RedisGeo(double longitude, double latitude, string member) => throw null; + } + + // Generated from `ServiceStack.Redis.RedisGeoResult` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisGeoResult + { + public double Distance { get => throw null; set => throw null; } + public System.Int64 Hash { get => throw null; set => throw null; } + public double Latitude { get => throw null; set => throw null; } + public double Longitude { get => throw null; set => throw null; } + public string Member { get => throw null; set => throw null; } + public RedisGeoResult() => throw null; + public string Unit { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Redis.RedisGeoUnit` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class RedisGeoUnit + { + public const string Feet = default; + public const string Kilometers = default; + public const string Meters = default; + public const string Miles = default; + } + + // Generated from `ServiceStack.Redis.RedisKeyType` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum RedisKeyType + { + Hash, + List, + None, + Set, + SortedSet, + String, + } + + // Generated from `ServiceStack.Redis.RedisServerRole` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum RedisServerRole + { + Master, + Sentinel, + Slave, + Unknown, + } + + // Generated from `ServiceStack.Redis.RedisText` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisText + { + public System.Collections.Generic.List Children { get => throw null; set => throw null; } + public RedisText() => throw null; + public string Text { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Redis.ScanResult` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScanResult + { + public System.UInt64 Cursor { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + public ScanResult() => throw null; + } + + // Generated from `ServiceStack.Redis.SlowlogItem` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SlowlogItem + { + public string[] Arguments { get => throw null; set => throw null; } + public int Duration { get => throw null; set => throw null; } + public int Id { get => throw null; set => throw null; } + public SlowlogItem(int id, System.DateTime timeStamp, int duration, string[] arguments) => throw null; + public System.DateTime Timestamp { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Redis.SortOptions` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SortOptions + { + public string GetPattern { get => throw null; set => throw null; } + public int? Skip { get => throw null; set => throw null; } + public bool SortAlpha { get => throw null; set => throw null; } + public bool SortDesc { get => throw null; set => throw null; } + public SortOptions() => throw null; + public string SortPattern { get => throw null; set => throw null; } + public string StoreAtKey { get => throw null; set => throw null; } + public int? Take { get => throw null; set => throw null; } + } + + namespace Generic + { + // Generated from `ServiceStack.Redis.Generic.IRedisHash<,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisHash : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + System.Collections.Generic.Dictionary GetAll(); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisHashAsync<,>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisHashAsync : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.IAsyncEnumerable> + { + System.Threading.Tasks.ValueTask AddAsync(System.Collections.Generic.KeyValuePair item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddAsync(TKey key, TValue value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ContainsKeyAsync(TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAsync(TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisList<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisList : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.IEnumerable + { + void AddRange(System.Collections.Generic.IEnumerable values); + void Append(T value); + T BlockingDequeue(System.TimeSpan? timeOut); + T BlockingPop(System.TimeSpan? timeOut); + T BlockingRemoveStart(System.TimeSpan? timeOut); + T Dequeue(); + void Enqueue(T value); + System.Collections.Generic.List GetAll(); + System.Collections.Generic.List GetRange(int startingFrom, int endingAt); + System.Collections.Generic.List GetRangeFromSortedList(int startingFrom, int endingAt); + T Pop(); + T PopAndPush(ServiceStack.Redis.Generic.IRedisList toList); + void Prepend(T value); + void Push(T value); + void RemoveAll(); + T RemoveEnd(); + T RemoveStart(); + System.Int64 RemoveValue(T value); + System.Int64 RemoveValue(T value, int noOfMatches); + void Trim(int keepStartingFrom, int keepEndingAt); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisListAsync<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisListAsync : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.IAsyncEnumerable + { + System.Threading.Tasks.ValueTask AddAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddRangeAsync(System.Collections.Generic.IEnumerable values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AppendAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingDequeueAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingPopAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingRemoveStartAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ContainsAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DequeueAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ElementAtAsync(int index, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EnqueueAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedListAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IndexOfAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopAndPushAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PrependAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PushAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveAtAsync(int index, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEndAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveStartAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveValueAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveValueAsync(T value, int noOfMatches, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueAsync(int index, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask TrimAsync(int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisSet<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSet : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + System.Collections.Generic.HashSet GetAll(); + void GetDifferences(params ServiceStack.Redis.Generic.IRedisSet[] withSets); + T GetRandomItem(); + void MoveTo(T item, ServiceStack.Redis.Generic.IRedisSet toSet); + T PopRandomItem(); + void PopulateWithDifferencesOf(ServiceStack.Redis.Generic.IRedisSet fromSet, params ServiceStack.Redis.Generic.IRedisSet[] withSets); + void PopulateWithIntersectOf(params ServiceStack.Redis.Generic.IRedisSet[] sets); + void PopulateWithUnionOf(params ServiceStack.Redis.Generic.IRedisSet[] sets); + System.Collections.Generic.List Sort(int startingFrom, int endingAt); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisSetAsync<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSetAsync : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.IAsyncEnumerable + { + System.Threading.Tasks.ValueTask AddAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ContainsAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetDifferencesAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetDifferencesAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets); + System.Threading.Tasks.ValueTask GetRandomItemAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask MoveToAsync(T item, ServiceStack.Redis.Generic.IRedisSetAsync toSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopRandomItemAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopulateWithDifferencesOfAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopulateWithDifferencesOfAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets); + System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); + System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); + System.Threading.Tasks.ValueTask RemoveAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> SortAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisSortedSet<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSortedSet : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + void Add(T item, double score); + System.Collections.Generic.List GetAll(); + System.Collections.Generic.List GetAllDescending(); + double GetItemScore(T item); + System.Collections.Generic.List GetRange(int fromRank, int toRank); + System.Collections.Generic.List GetRangeByHighestScore(double fromScore, double toScore); + System.Collections.Generic.List GetRangeByHighestScore(double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.List GetRangeByLowestScore(double fromScore, double toScore); + System.Collections.Generic.List GetRangeByLowestScore(double fromScore, double toScore, int? skip, int? take); + double IncrementItem(T item, double incrementBy); + int IndexOf(T item); + System.Int64 IndexOfDescending(T item); + T PopItemWithHighestScore(); + T PopItemWithLowestScore(); + System.Int64 PopulateWithIntersectOf(ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args); + System.Int64 PopulateWithIntersectOf(params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds); + System.Int64 PopulateWithUnionOf(ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args); + System.Int64 PopulateWithUnionOf(params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds); + System.Int64 RemoveRange(int minRank, int maxRank); + System.Int64 RemoveRangeByScore(double fromScore, double toScore); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisSortedSetAsync<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisSortedSetAsync : ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.Collections.Generic.IAsyncEnumerable + { + System.Threading.Tasks.ValueTask AddAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddAsync(T item, double score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ContainsAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllDescendingAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetItemScoreAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeAsync(int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeByHighestScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeByHighestScoreAsync(double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeByLowestScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeByLowestScoreAsync(double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementItemAsync(T item, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IndexOfAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IndexOfDescendingAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemWithHighestScoreAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemWithLowestScoreAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds); + System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds); + System.Threading.Tasks.ValueTask RemoveAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeAsync(int minRank, int maxRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeByScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisTypedClient<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTypedClient : ServiceStack.Data.IEntityStore + { + System.IDisposable AcquireLock(); + System.IDisposable AcquireLock(System.TimeSpan timeOut); + void AddItemToList(ServiceStack.Redis.Generic.IRedisList fromList, T value); + void AddItemToSet(ServiceStack.Redis.Generic.IRedisSet toSet, T item); + void AddItemToSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet toSet, T value); + void AddItemToSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet toSet, T value, double score); + void AddToRecentsList(T value); + T BlockingDequeueItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, System.TimeSpan? timeOut); + T BlockingPopAndPushItemBetweenLists(ServiceStack.Redis.Generic.IRedisList fromList, ServiceStack.Redis.Generic.IRedisList toList, System.TimeSpan? timeOut); + T BlockingPopItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, System.TimeSpan? timeOut); + T BlockingRemoveStartFromList(ServiceStack.Redis.Generic.IRedisList fromList, System.TimeSpan? timeOut); + bool ContainsKey(string key); + ServiceStack.Redis.Generic.IRedisTypedPipeline CreatePipeline(); + ServiceStack.Redis.Generic.IRedisTypedTransaction CreateTransaction(); + System.Int64 Db { get; set; } + System.Int64 DecrementValue(string key); + System.Int64 DecrementValueBy(string key, int count); + void DeleteRelatedEntities(object parentId); + void DeleteRelatedEntity(object parentId, object childId); + T DequeueItemFromList(ServiceStack.Redis.Generic.IRedisList fromList); + void EnqueueItemOnList(ServiceStack.Redis.Generic.IRedisList fromList, T item); + bool ExpireAt(object id, System.DateTime dateTime); + bool ExpireEntryAt(string key, System.DateTime dateTime); + bool ExpireEntryIn(string key, System.TimeSpan expiresAt); + bool ExpireIn(object id, System.TimeSpan expiresAt); + void FlushAll(); + void FlushDb(); + System.Collections.Generic.Dictionary GetAllEntriesFromHash(ServiceStack.Redis.Generic.IRedisHash hash); + System.Collections.Generic.List GetAllItemsFromList(ServiceStack.Redis.Generic.IRedisList fromList); + System.Collections.Generic.HashSet GetAllItemsFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet); + System.Collections.Generic.List GetAllItemsFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set); + System.Collections.Generic.List GetAllItemsFromSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set); + System.Collections.Generic.List GetAllKeys(); + System.Collections.Generic.IDictionary GetAllWithScoresFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set); + T GetAndSetValue(string key, T value); + System.Collections.Generic.HashSet GetDifferencesFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet, params ServiceStack.Redis.Generic.IRedisSet[] withSets); + System.Collections.Generic.List GetEarliestFromRecentsList(int skip, int take); + ServiceStack.Redis.RedisKeyType GetEntryType(string key); + T GetFromHash(object id); + ServiceStack.Redis.Generic.IRedisHash GetHash(string hashId); + System.Int64 GetHashCount(ServiceStack.Redis.Generic.IRedisHash hash); + System.Collections.Generic.List GetHashKeys(ServiceStack.Redis.Generic.IRedisHash hash); + System.Collections.Generic.List GetHashValues(ServiceStack.Redis.Generic.IRedisHash hash); + System.Collections.Generic.HashSet GetIntersectFromSets(params ServiceStack.Redis.Generic.IRedisSet[] sets); + T GetItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, int listIndex); + System.Int64 GetItemIndexInSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, T value); + System.Int64 GetItemIndexInSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set, T value); + double GetItemScoreInSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, T value); + System.Collections.Generic.List GetLatestFromRecentsList(int skip, int take); + System.Int64 GetListCount(ServiceStack.Redis.Generic.IRedisList fromList); + System.Int64 GetNextSequence(); + System.Int64 GetNextSequence(int incrBy); + T GetRandomItemFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet); + string GetRandomKey(); + System.Collections.Generic.List GetRangeFromList(ServiceStack.Redis.Generic.IRedisList fromList, int startingFrom, int endingAt); + System.Collections.Generic.List GetRangeFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore); + System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore); + System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take); + System.Collections.Generic.List GetRangeFromSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take); + System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank); + System.Collections.Generic.List GetRelatedEntities(object parentId); + System.Int64 GetRelatedEntitiesCount(object parentId); + System.Int64 GetSetCount(ServiceStack.Redis.Generic.IRedisSet set); + System.Collections.Generic.List GetSortedEntryValues(ServiceStack.Redis.Generic.IRedisSet fromSet, int startingFrom, int endingAt); + System.Int64 GetSortedSetCount(ServiceStack.Redis.Generic.IRedisSortedSet set); + System.TimeSpan GetTimeToLive(string key); + System.Collections.Generic.HashSet GetUnionFromSets(params ServiceStack.Redis.Generic.IRedisSet[] sets); + T GetValue(string key); + T GetValueFromHash(ServiceStack.Redis.Generic.IRedisHash hash, TKey key); + System.Collections.Generic.List GetValues(System.Collections.Generic.List keys); + bool HashContainsEntry(ServiceStack.Redis.Generic.IRedisHash hash, TKey key); + double IncrementItemInSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, T value, double incrementBy); + System.Int64 IncrementValue(string key); + System.Int64 IncrementValueBy(string key, int count); + void InsertAfterItemInList(ServiceStack.Redis.Generic.IRedisList toList, T pivot, T value); + void InsertBeforeItemInList(ServiceStack.Redis.Generic.IRedisList toList, T pivot, T value); + T this[string key] { get; set; } + ServiceStack.Model.IHasNamed> Lists { get; set; } + void MoveBetweenSets(ServiceStack.Redis.Generic.IRedisSet fromSet, ServiceStack.Redis.Generic.IRedisSet toSet, T item); + T PopAndPushItemBetweenLists(ServiceStack.Redis.Generic.IRedisList fromList, ServiceStack.Redis.Generic.IRedisList toList); + T PopItemFromList(ServiceStack.Redis.Generic.IRedisList fromList); + T PopItemFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet); + T PopItemWithHighestScoreFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet fromSet); + T PopItemWithLowestScoreFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet fromSet); + void PrependItemToList(ServiceStack.Redis.Generic.IRedisList fromList, T value); + void PushItemToList(ServiceStack.Redis.Generic.IRedisList fromList, T item); + ServiceStack.Redis.IRedisClient RedisClient { get; } + void RemoveAllFromList(ServiceStack.Redis.Generic.IRedisList fromList); + T RemoveEndFromList(ServiceStack.Redis.Generic.IRedisList fromList); + bool RemoveEntry(params ServiceStack.Model.IHasStringId[] entities); + bool RemoveEntry(params string[] args); + bool RemoveEntry(string key); + bool RemoveEntryFromHash(ServiceStack.Redis.Generic.IRedisHash hash, TKey key); + System.Int64 RemoveItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, T value); + System.Int64 RemoveItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, T value, int noOfMatches); + void RemoveItemFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet, T item); + bool RemoveItemFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet fromSet, T value); + System.Int64 RemoveRangeFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, int minRank, int maxRank); + System.Int64 RemoveRangeFromSortedSetByScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); + T RemoveStartFromList(ServiceStack.Redis.Generic.IRedisList fromList); + void Save(); + void SaveAsync(); + T[] SearchKeys(string pattern); + string SequenceKey { get; set; } + bool SetContainsItem(ServiceStack.Redis.Generic.IRedisSet set, T item); + bool SetEntryInHash(ServiceStack.Redis.Generic.IRedisHash hash, TKey key, T value); + bool SetEntryInHashIfNotExists(ServiceStack.Redis.Generic.IRedisHash hash, TKey key, T value); + void SetItemInList(ServiceStack.Redis.Generic.IRedisList toList, int listIndex, T value); + void SetRangeInHash(ServiceStack.Redis.Generic.IRedisHash hash, System.Collections.Generic.IEnumerable> keyValuePairs); + void SetSequence(int value); + void SetValue(string key, T entity); + void SetValue(string key, T entity, System.TimeSpan expireIn); + bool SetValueIfExists(string key, T entity); + bool SetValueIfNotExists(string key, T entity); + ServiceStack.Model.IHasNamed> Sets { get; set; } + System.Collections.Generic.List SortList(ServiceStack.Redis.Generic.IRedisList fromList, int startingFrom, int endingAt); + bool SortedSetContainsItem(ServiceStack.Redis.Generic.IRedisSortedSet set, T value); + ServiceStack.Model.IHasNamed> SortedSets { get; set; } + T Store(T entity, System.TimeSpan expireIn); + void StoreAsHash(T entity); + void StoreDifferencesFromSet(ServiceStack.Redis.Generic.IRedisSet intoSet, ServiceStack.Redis.Generic.IRedisSet fromSet, params ServiceStack.Redis.Generic.IRedisSet[] withSets); + void StoreIntersectFromSets(ServiceStack.Redis.Generic.IRedisSet intoSet, params ServiceStack.Redis.Generic.IRedisSet[] sets); + System.Int64 StoreIntersectFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args); + System.Int64 StoreIntersectFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds); + void StoreRelatedEntities(object parentId, System.Collections.Generic.List children); + void StoreRelatedEntities(object parentId, params TChild[] children); + void StoreUnionFromSets(ServiceStack.Redis.Generic.IRedisSet intoSet, params ServiceStack.Redis.Generic.IRedisSet[] sets); + System.Int64 StoreUnionFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args); + System.Int64 StoreUnionFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds); + void TrimList(ServiceStack.Redis.Generic.IRedisList fromList, int keepStartingFrom, int keepEndingAt); + ServiceStack.Redis.IRedisSet TypeIdsSet { get; } + string UrnKey(T value); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisTypedClientAsync<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTypedClientAsync : ServiceStack.Data.IEntityStoreAsync + { + System.Threading.Tasks.ValueTask AcquireLockAsync(System.TimeSpan? timeOut = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddItemToListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddItemToSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync toSet, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddItemToSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync toSet, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddItemToSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync toSet, T value, double score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask AddToRecentsListAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BackgroundSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingDequeueItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingPopAndPushItemBetweenListsAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, ServiceStack.Redis.Generic.IRedisListAsync toList, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingPopItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask BlockingRemoveStartFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ContainsKeyAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Redis.Generic.IRedisTypedPipelineAsync CreatePipeline(); + System.Threading.Tasks.ValueTask> CreateTransactionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Int64 Db { get; } + System.Threading.Tasks.ValueTask DecrementValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DecrementValueByAsync(string key, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DeleteRelatedEntitiesAsync(object parentId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DeleteRelatedEntityAsync(object parentId, object childId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask DequeueItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask EnqueueItemOnListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExpireAtAsync(object id, System.DateTime dateTime, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExpireEntryAtAsync(string key, System.DateTime dateTime, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExpireEntryInAsync(string key, System.TimeSpan expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ExpireInAsync(object id, System.TimeSpan expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask FlushDbAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ForegroundSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllEntriesFromHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllItemsFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllItemsFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllItemsFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllItemsFromSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllKeysAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetAllWithScoresFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetAndSetValueAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets); + System.Threading.Tasks.ValueTask> GetEarliestFromRecentsListAsync(int skip, int take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetEntryTypeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetFromHashAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Redis.Generic.IRedisHashAsync GetHash(string hashId); + System.Threading.Tasks.ValueTask GetHashCountAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetHashKeysAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetHashValuesAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetIntersectFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetIntersectFromSetsAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); + System.Threading.Tasks.ValueTask GetItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int listIndex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetItemIndexInSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetItemIndexInSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetItemScoreInSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetLatestFromRecentsListAsync(int skip, int take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetListCountAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetNextSequenceAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetNextSequenceAsync(int incrBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetRandomItemFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetRandomKeyAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeFromSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetRelatedEntitiesAsync(object parentId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetRelatedEntitiesCountAsync(object parentId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetSetCountAsync(ServiceStack.Redis.Generic.IRedisSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetSortedEntryValuesAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetSortedSetCountAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetUnionFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetUnionFromSetsAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); + System.Threading.Tasks.ValueTask GetValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask GetValueFromHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask> GetValuesAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask HashContainsEntryAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementItemInSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask IncrementValueByAsync(string key, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask InsertAfterItemInListAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, T pivot, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask InsertBeforeItemInListAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, T pivot, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Model.IHasNamed> Lists { get; } + System.Threading.Tasks.ValueTask MoveBetweenSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync toSet, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopAndPushItemBetweenListsAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, ServiceStack.Redis.Generic.IRedisListAsync toList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemWithHighestScoreFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PopItemWithLowestScoreFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PrependItemToListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask PushItemToListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Redis.IRedisClientAsync RedisClient { get; } + System.Threading.Tasks.ValueTask RemoveAllFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEndFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEntryAsync(ServiceStack.Model.IHasStringId[] entities, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEntryAsync(string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEntryAsync(params ServiceStack.Model.IHasStringId[] entities); + System.Threading.Tasks.ValueTask RemoveEntryAsync(params string[] args); + System.Threading.Tasks.ValueTask RemoveEntryAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveEntryFromHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, int noOfMatches, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveItemFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveItemFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync fromSet, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int minRank, int maxRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetByScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RemoveStartFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SearchKeysAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SelectAsync(System.Int64 db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string SequenceKey { get; set; } + System.Threading.Tasks.ValueTask SetContainsItemAsync(ServiceStack.Redis.Generic.IRedisSetAsync set, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetEntryInHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetEntryInHashIfNotExistsAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetItemInListAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, int listIndex, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetRangeInHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Collections.Generic.IEnumerable> keyValuePairs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetSequenceAsync(int value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueAsync(string key, T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueAsync(string key, T entity, System.TimeSpan expireIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueIfExistsAsync(string key, T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SetValueIfNotExistsAsync(string key, T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Model.IHasNamed> Sets { get; } + System.Threading.Tasks.ValueTask> SortListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask SortedSetContainsItemAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Model.IHasNamed> SortedSets { get; } + System.Threading.Tasks.ValueTask StoreAsHashAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreAsync(T entity, System.TimeSpan expireIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync fromSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets); + System.Threading.Tasks.ValueTask StoreIntersectFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreIntersectFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); + System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds); + System.Threading.Tasks.ValueTask StoreRelatedEntitiesAsync(object parentId, System.Collections.Generic.List children, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreRelatedEntitiesAsync(object parentId, TChild[] children, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreRelatedEntitiesAsync(object parentId, params TChild[] children); + System.Threading.Tasks.ValueTask StoreUnionFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreUnionFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); + System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds); + System.Threading.Tasks.ValueTask TrimListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Redis.IRedisSetAsync TypeIdsSet { get; } + string UrnKey(T value); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisTypedPipeline<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTypedPipeline : ServiceStack.Redis.Generic.IRedisTypedQueueableOperation, ServiceStack.Redis.Pipeline.IRedisPipelineShared, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, System.IDisposable + { + } + + // Generated from `ServiceStack.Redis.Generic.IRedisTypedPipelineAsync<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTypedPipelineAsync : ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync, ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, System.IAsyncDisposable + { + } + + // Generated from `ServiceStack.Redis.Generic.IRedisTypedQueueableOperation<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTypedQueueableOperation + { + void QueueCommand(System.Action> command); + void QueueCommand(System.Action> command, System.Action onSuccessCallback); + void QueueCommand(System.Action> command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, System.Byte[]> command); + void QueueCommand(System.Func, System.Byte[]> command, System.Action onSuccessCallback); + void QueueCommand(System.Func, System.Byte[]> command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, System.Collections.Generic.HashSet> command); + void QueueCommand(System.Func, System.Collections.Generic.HashSet> command, System.Action> onSuccessCallback); + void QueueCommand(System.Func, System.Collections.Generic.HashSet> command, System.Action> onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, System.Collections.Generic.List> command); + void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback); + void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, System.Collections.Generic.List> command); + void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback); + void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, T> command); + void QueueCommand(System.Func, T> command, System.Action onSuccessCallback); + void QueueCommand(System.Func, T> command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, bool> command); + void QueueCommand(System.Func, bool> command, System.Action onSuccessCallback); + void QueueCommand(System.Func, bool> command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, double> command); + void QueueCommand(System.Func, double> command, System.Action onSuccessCallback); + void QueueCommand(System.Func, double> command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, int> command); + void QueueCommand(System.Func, int> command, System.Action onSuccessCallback); + void QueueCommand(System.Func, int> command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, System.Int64> command); + void QueueCommand(System.Func, System.Int64> command, System.Action onSuccessCallback); + void QueueCommand(System.Func, System.Int64> command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func, string> command); + void QueueCommand(System.Func, string> command, System.Action onSuccessCallback); + void QueueCommand(System.Func, string> command, System.Action onSuccessCallback, System.Action onErrorCallback); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTypedQueueableOperationAsync + { + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisTypedTransaction<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTypedTransaction : ServiceStack.Redis.Generic.IRedisTypedQueueableOperation, System.IDisposable + { + bool Commit(); + void Rollback(); + } + + // Generated from `ServiceStack.Redis.Generic.IRedisTypedTransactionAsync<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisTypedTransactionAsync : ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync, System.IAsyncDisposable + { + System.Threading.Tasks.ValueTask CommitAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask RollbackAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + } + namespace Pipeline + { + // Generated from `ServiceStack.Redis.Pipeline.IRedisPipeline` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisPipeline : ServiceStack.Redis.Pipeline.IRedisPipelineShared, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, ServiceStack.Redis.Pipeline.IRedisQueueableOperation, System.IDisposable + { + } + + // Generated from `ServiceStack.Redis.Pipeline.IRedisPipelineAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisPipelineAsync : ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync, System.IAsyncDisposable + { + } + + // Generated from `ServiceStack.Redis.Pipeline.IRedisPipelineShared` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisPipelineShared : ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, System.IDisposable + { + void Flush(); + bool Replay(); + } + + // Generated from `ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisPipelineSharedAsync : ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, System.IAsyncDisposable + { + System.Threading.Tasks.ValueTask FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.ValueTask ReplayAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisQueueCompletableOperation + { + void CompleteBytesQueuedCommand(System.Func bytesReadCommand); + void CompleteDoubleQueuedCommand(System.Func doubleReadCommand); + void CompleteIntQueuedCommand(System.Func intReadCommand); + void CompleteLongQueuedCommand(System.Func longReadCommand); + void CompleteMultiBytesQueuedCommand(System.Func multiBytesReadCommand); + void CompleteMultiStringQueuedCommand(System.Func> multiStringReadCommand); + void CompleteRedisDataQueuedCommand(System.Func redisDataReadCommand); + void CompleteStringQueuedCommand(System.Func stringReadCommand); + void CompleteVoidQueuedCommand(System.Action voidReadCommand); + } + + // Generated from `ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisQueueCompletableOperationAsync + { + void CompleteBytesQueuedCommandAsync(System.Func> bytesReadCommand); + void CompleteDoubleQueuedCommandAsync(System.Func> doubleReadCommand); + void CompleteIntQueuedCommandAsync(System.Func> intReadCommand); + void CompleteLongQueuedCommandAsync(System.Func> longReadCommand); + void CompleteMultiBytesQueuedCommandAsync(System.Func> multiBytesReadCommand); + void CompleteMultiStringQueuedCommandAsync(System.Func>> multiStringReadCommand); + void CompleteRedisDataQueuedCommandAsync(System.Func> redisDataReadCommand); + void CompleteStringQueuedCommandAsync(System.Func> stringReadCommand); + void CompleteVoidQueuedCommandAsync(System.Func voidReadCommand); + } + + // Generated from `ServiceStack.Redis.Pipeline.IRedisQueueableOperation` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisQueueableOperation + { + void QueueCommand(System.Action command); + void QueueCommand(System.Action command, System.Action onSuccessCallback); + void QueueCommand(System.Action command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func command); + void QueueCommand(System.Func command, System.Action onSuccessCallback); + void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func command); + void QueueCommand(System.Func command, System.Action onSuccessCallback); + void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func> command); + void QueueCommand(System.Func> command, System.Action> onSuccessCallback); + void QueueCommand(System.Func> command, System.Action> onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func> command); + void QueueCommand(System.Func> command, System.Action> onSuccessCallback); + void QueueCommand(System.Func> command, System.Action> onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func> command); + void QueueCommand(System.Func> command, System.Action> onSuccessCallback); + void QueueCommand(System.Func> command, System.Action> onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func command); + void QueueCommand(System.Func command, System.Action onSuccessCallback); + void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func command); + void QueueCommand(System.Func command, System.Action onSuccessCallback); + void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func command); + void QueueCommand(System.Func command, System.Action onSuccessCallback); + void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func command); + void QueueCommand(System.Func command, System.Action onSuccessCallback); + void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func command); + void QueueCommand(System.Func command, System.Action onSuccessCallback); + void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func command); + void QueueCommand(System.Func command, System.Action onSuccessCallback); + void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); + void QueueCommand(System.Func command); + void QueueCommand(System.Func command, System.Action onSuccessCallback); + void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); + } + + // Generated from `ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisQueueableOperationAsync + { + void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + void QueueCommand(System.Func command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); + } + + } + } + namespace Web + { + // Generated from `ServiceStack.Web.IContentTypeReader` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IContentTypeReader + { + object DeserializeFromStream(string contentType, System.Type type, System.IO.Stream requestStream); + object DeserializeFromString(string contentType, System.Type type, string request); + ServiceStack.Web.StreamDeserializerDelegate GetStreamDeserializer(string contentType); + ServiceStack.Web.StreamDeserializerDelegateAsync GetStreamDeserializerAsync(string contentType); + } + + // Generated from `ServiceStack.Web.IContentTypeWriter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IContentTypeWriter + { + ServiceStack.Web.StreamSerializerDelegateAsync GetStreamSerializerAsync(string contentType); + System.Byte[] SerializeToBytes(ServiceStack.Web.IRequest req, object response); + System.Threading.Tasks.Task SerializeToStreamAsync(ServiceStack.Web.IRequest requestContext, object response, System.IO.Stream toStream); + string SerializeToString(ServiceStack.Web.IRequest req, object response); + string SerializeToString(ServiceStack.Web.IRequest req, object response, string contentType); + } + + // Generated from `ServiceStack.Web.IContentTypes` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IContentTypes : ServiceStack.Web.IContentTypeReader, ServiceStack.Web.IContentTypeWriter + { + System.Collections.Generic.Dictionary ContentTypeFormats { get; } + string GetFormatContentType(string format); + void Register(string contentType, ServiceStack.Web.StreamSerializerDelegate streamSerializer, ServiceStack.Web.StreamDeserializerDelegate streamDeserializer); + void RegisterAsync(string contentType, ServiceStack.Web.StreamSerializerDelegateAsync responseSerializer, ServiceStack.Web.StreamDeserializerDelegateAsync streamDeserializer); + void Remove(string contentType); + } + + // Generated from `ServiceStack.Web.ICookies` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICookies + { + void AddPermanentCookie(string cookieName, string cookieValue, bool? secureOnly = default(bool?)); + void AddSessionCookie(string cookieName, string cookieValue, bool? secureOnly = default(bool?)); + void DeleteCookie(string cookieName); + } + + // Generated from `ServiceStack.Web.IExpirable` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IExpirable + { + System.DateTime? LastModified { get; } + } + + // Generated from `ServiceStack.Web.IHasHeaders` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasHeaders + { + System.Collections.Generic.Dictionary Headers { get; } + } + + // Generated from `ServiceStack.Web.IHasOptions` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasOptions + { + System.Collections.Generic.IDictionary Options { get; } + } + + // Generated from `ServiceStack.Web.IHasRequestFilter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasRequestFilter : ServiceStack.Web.IRequestFilterBase + { + void RequestFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto); + } + + // Generated from `ServiceStack.Web.IHasRequestFilterAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasRequestFilterAsync : ServiceStack.Web.IRequestFilterBase + { + System.Threading.Tasks.Task RequestFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto); + } + + // Generated from `ServiceStack.Web.IHasResponseFilter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasResponseFilter : ServiceStack.Web.IResponseFilterBase + { + void ResponseFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response); + } + + // Generated from `ServiceStack.Web.IHasResponseFilterAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasResponseFilterAsync : ServiceStack.Web.IResponseFilterBase + { + System.Threading.Tasks.Task ResponseFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response); + } + + // Generated from `ServiceStack.Web.IHttpError` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHttpError : ServiceStack.Web.IHasOptions, ServiceStack.Web.IHttpResult + { + string ErrorCode { get; } + string Message { get; } + string StackTrace { get; } + } + + // Generated from `ServiceStack.Web.IHttpFile` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHttpFile + { + System.Int64 ContentLength { get; } + string ContentType { get; } + string FileName { get; } + System.IO.Stream InputStream { get; } + string Name { get; } + } + + // Generated from `ServiceStack.Web.IHttpRequest` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHttpRequest : ServiceStack.Configuration.IResolver, ServiceStack.Web.IRequest + { + string Accept { get; } + string HttpMethod { get; } + ServiceStack.Web.IHttpResponse HttpResponse { get; } + string XForwardedFor { get; } + int? XForwardedPort { get; } + string XForwardedProtocol { get; } + string XRealIp { get; } + } + + // Generated from `ServiceStack.Web.IHttpResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHttpResponse : ServiceStack.Web.IResponse + { + void ClearCookies(); + ServiceStack.Web.ICookies Cookies { get; } + void SetCookie(System.Net.Cookie cookie); + } + + // Generated from `ServiceStack.Web.IHttpResult` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHttpResult : ServiceStack.Web.IHasOptions + { + string ContentType { get; set; } + System.Collections.Generic.List Cookies { get; } + System.Collections.Generic.Dictionary Headers { get; } + int PaddingLength { get; set; } + ServiceStack.Web.IRequest RequestContext { get; set; } + object Response { get; set; } + ServiceStack.Web.IContentTypeWriter ResponseFilter { get; set; } + System.Func ResultScope { get; set; } + int Status { get; set; } + System.Net.HttpStatusCode StatusCode { get; set; } + string StatusDescription { get; set; } + } + + // Generated from `ServiceStack.Web.IPartialWriter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPartialWriter + { + bool IsPartialRequest { get; } + void WritePartialTo(ServiceStack.Web.IResponse response); + } + + // Generated from `ServiceStack.Web.IPartialWriterAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPartialWriterAsync + { + bool IsPartialRequest { get; } + System.Threading.Tasks.Task WritePartialToAsync(ServiceStack.Web.IResponse response, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Web.IRequest` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequest : ServiceStack.Configuration.IResolver + { + string AbsoluteUri { get; } + string[] AcceptTypes { get; } + string Authorization { get; } + System.Int64 ContentLength { get; } + string ContentType { get; } + System.Collections.Generic.IDictionary Cookies { get; } + object Dto { get; set; } + ServiceStack.Web.IHttpFile[] Files { get; } + System.Collections.Specialized.NameValueCollection FormData { get; } + string GetRawBody(); + System.Threading.Tasks.Task GetRawBodyAsync(); + bool HasExplicitResponseContentType { get; } + System.Collections.Specialized.NameValueCollection Headers { get; } + System.IO.Stream InputStream { get; } + bool IsLocal { get; } + bool IsSecureConnection { get; } + System.Collections.Generic.Dictionary Items { get; } + string OperationName { get; set; } + string OriginalPathInfo { get; } + object OriginalRequest { get; } + string PathInfo { get; } + System.Collections.Specialized.NameValueCollection QueryString { get; } + string RawUrl { get; } + string RemoteIp { get; } + ServiceStack.RequestAttributes RequestAttributes { get; set; } + ServiceStack.Web.IRequestPreferences RequestPreferences { get; } + ServiceStack.Web.IResponse Response { get; } + string ResponseContentType { get; set; } + System.Uri UrlReferrer { get; } + bool UseBufferedStream { get; set; } + string UserAgent { get; } + string UserHostAddress { get; } + string Verb { get; } + } + + // Generated from `ServiceStack.Web.IRequestFilterBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequestFilterBase + { + ServiceStack.Web.IRequestFilterBase Copy(); + int Priority { get; } + } + + // Generated from `ServiceStack.Web.IRequestLogger` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequestLogger + { + System.Func CurrentDateFn { get; set; } + bool EnableErrorTracking { get; set; } + bool EnableRequestBodyTracking { get; set; } + bool EnableResponseTracking { get; set; } + bool EnableSessionTracking { get; set; } + System.Type[] ExcludeRequestDtoTypes { get; set; } + System.Type[] ExcludeResponseTypes { get; set; } + System.Collections.Generic.List GetLatestLogs(int? take); + System.Type[] HideRequestBodyForRequestDtoTypes { get; set; } + System.Func IgnoreFilter { get; set; } + bool LimitToServiceRequests { get; set; } + void Log(ServiceStack.Web.IRequest request, object requestDto, object response, System.TimeSpan elapsed); + System.Func RequestBodyTrackingFilter { get; set; } + System.Action RequestLogFilter { get; set; } + string[] RequiredRoles { get; set; } + System.Func ResponseTrackingFilter { get; set; } + System.Func SkipLogging { get; set; } + } + + // Generated from `ServiceStack.Web.IRequestPreferences` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequestPreferences + { + bool AcceptsBrotli { get; } + bool AcceptsDeflate { get; } + bool AcceptsGzip { get; } + } + + // Generated from `ServiceStack.Web.IRequiresRequest` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequiresRequest + { + ServiceStack.Web.IRequest Request { get; set; } + } + + // Generated from `ServiceStack.Web.IRequiresRequestStream` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequiresRequestStream + { + System.IO.Stream RequestStream { get; set; } + } + + // Generated from `ServiceStack.Web.IResponse` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IResponse + { + void AddHeader(string name, string value); + void Close(); + System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string ContentType { get; set; } + object Dto { get; set; } + void End(); + void Flush(); + System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string GetHeader(string name); + bool HasStarted { get; } + bool IsClosed { get; } + System.Collections.Generic.Dictionary Items { get; } + bool KeepAlive { get; set; } + object OriginalResponse { get; } + System.IO.Stream OutputStream { get; } + void Redirect(string url); + void RemoveHeader(string name); + ServiceStack.Web.IRequest Request { get; } + void SetContentLength(System.Int64 contentLength); + int StatusCode { get; set; } + string StatusDescription { get; set; } + bool UseBufferedStream { get; set; } + } + + // Generated from `ServiceStack.Web.IResponseFilterBase` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IResponseFilterBase + { + ServiceStack.Web.IResponseFilterBase Copy(); + int Priority { get; } + } + + // Generated from `ServiceStack.Web.IRestPath` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRestPath + { + object CreateRequest(string pathInfo, System.Collections.Generic.Dictionary queryStringAndFormData, object fromInstance); + bool IsWildCardPath { get; } + System.Type RequestType { get; } + } + + // Generated from `ServiceStack.Web.IServiceController` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceController : ServiceStack.Web.IServiceExecutor + { + object Execute(ServiceStack.Web.IRequest request, bool applyFilters); + object Execute(object requestDto); + object Execute(object requestDto, ServiceStack.Web.IRequest request); + object Execute(object requestDto, ServiceStack.Web.IRequest request, bool applyFilters); + object ExecuteMessage(ServiceStack.Messaging.IMessage mqMessage); + object ExecuteMessage(ServiceStack.Messaging.IMessage dto, ServiceStack.Web.IRequest request); + System.Threading.Tasks.Task GatewayExecuteAsync(object requestDto, ServiceStack.Web.IRequest req, bool applyFilters); + ServiceStack.Web.IRestPath GetRestPathForRequest(string httpMethod, string pathInfo); + } + + // Generated from `ServiceStack.Web.IServiceExecutor` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceExecutor + { + System.Threading.Tasks.Task ExecuteAsync(object requestDto, ServiceStack.Web.IRequest request); + } + + // Generated from `ServiceStack.Web.IServiceGatewayFactory` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceGatewayFactory + { + ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest request); + } + + // Generated from `ServiceStack.Web.IServiceRoutes` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceRoutes + { + ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs); + ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, int priority); + ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, string summary, string notes); + ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, string summary, string notes, string matches); + ServiceStack.Web.IServiceRoutes Add(string restPath); + ServiceStack.Web.IServiceRoutes Add(string restPath, string verbs); + } + + // Generated from `ServiceStack.Web.IServiceRunner` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceRunner + { + object Process(ServiceStack.Web.IRequest requestContext, object instance, object request); + } + + // Generated from `ServiceStack.Web.IServiceRunner<>` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceRunner : ServiceStack.Web.IServiceRunner + { + object Execute(ServiceStack.Web.IRequest req, object instance, ServiceStack.Messaging.IMessage request); + System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, object instance, TRequest requestDto); + object ExecuteOneWay(ServiceStack.Web.IRequest req, object instance, TRequest requestDto); + System.Threading.Tasks.Task HandleExceptionAsync(ServiceStack.Web.IRequest req, TRequest requestDto, System.Exception ex, object instance); + object OnAfterExecute(ServiceStack.Web.IRequest req, object response, object service); + void OnBeforeExecute(ServiceStack.Web.IRequest req, TRequest request, object service); + } + + // Generated from `ServiceStack.Web.IStreamWriter` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IStreamWriter + { + void WriteTo(System.IO.Stream responseStream); + } + + // Generated from `ServiceStack.Web.IStreamWriterAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IStreamWriterAsync + { + System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Web.StreamDeserializerDelegate` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object StreamDeserializerDelegate(System.Type type, System.IO.Stream fromStream); + + // Generated from `ServiceStack.Web.StreamDeserializerDelegateAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate System.Threading.Tasks.Task StreamDeserializerDelegateAsync(System.Type type, System.IO.Stream fromStream); + + // Generated from `ServiceStack.Web.StreamSerializerDelegate` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void StreamSerializerDelegate(ServiceStack.Web.IRequest req, object dto, System.IO.Stream outputStream); + + // Generated from `ServiceStack.Web.StreamSerializerDelegateAsync` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate System.Threading.Tasks.Task StreamSerializerDelegateAsync(ServiceStack.Web.IRequest req, object dto, System.IO.Stream outputStream); + + // Generated from `ServiceStack.Web.StringDeserializerDelegate` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object StringDeserializerDelegate(string contents, System.Type type); + + // Generated from `ServiceStack.Web.StringSerializerDelegate` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate string StringSerializerDelegate(ServiceStack.Web.IRequest req, object dto); + + // Generated from `ServiceStack.Web.TextDeserializerDelegate` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object TextDeserializerDelegate(System.Type type, string dto); + + // Generated from `ServiceStack.Web.TextSerializerDelegate` in `ServiceStack.Interfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate string TextSerializerDelegate(object dto); + + } +} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/6.2.0/ServiceStack.Interfaces.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/6.2.0/ServiceStack.Interfaces.csproj new file mode 100644 index 00000000000..a04faa3ef58 --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/6.2.0/ServiceStack.Interfaces.csproj @@ -0,0 +1,12 @@ + + + net6.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.cs b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.cs new file mode 100644 index 00000000000..3664d91e8ff --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.cs @@ -0,0 +1,353 @@ +// This file contains auto-generated code. + +namespace ServiceStack +{ + namespace OrmLite + { + // Generated from `ServiceStack.OrmLite.SqlServer2008Dialect` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlServer2008Dialect + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2008OrmLiteDialectProvider Instance { get => throw null; } + public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.SqlServer2012Dialect` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlServer2012Dialect + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2012OrmLiteDialectProvider Instance { get => throw null; } + public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.SqlServer2014Dialect` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlServer2014Dialect + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2014OrmLiteDialectProvider Instance { get => throw null; } + public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.SqlServer2016Dialect` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlServer2016Dialect + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2016OrmLiteDialectProvider Instance { get => throw null; } + public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.SqlServer2017Dialect` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlServer2017Dialect + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2017OrmLiteDialectProvider Instance { get => throw null; } + public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.SqlServer2019Dialect` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlServer2019Dialect + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2019OrmLiteDialectProvider Instance { get => throw null; } + public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.SqlServerDialect` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlServerDialect + { + public static ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider Instance { get => throw null; } + public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } + } + + namespace SqlServer + { + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2008OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServer2008OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2008OrmLiteDialectProvider Instance; + public override string SqlConcat(System.Collections.Generic.IEnumerable args) => throw null; + public SqlServer2008OrmLiteDialectProvider() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2012OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServer2012OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider + { + public override void AppendFieldCondition(System.Text.StringBuilder sqlFilter, ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDbCommand cmd) => throw null; + public override void AppendNullFieldCondition(System.Text.StringBuilder sqlFilter, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public override bool DoesSequenceExist(System.Data.IDbCommand dbCmd, string sequenceName) => throw null; + public override System.Threading.Tasks.Task DoesSequenceExistAsync(System.Data.IDbCommand dbCmd, string sequenceName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected override string GetAutoIncrementDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public override string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static ServiceStack.OrmLite.SqlServer.SqlServer2012OrmLiteDialectProvider Instance; + public override System.Collections.Generic.List SequenceList(System.Type tableType) => throw null; + protected override bool ShouldSkipInsert(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public SqlServer2012OrmLiteDialectProvider() => throw null; + protected override bool SupportsSequences(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public override string ToCreateSequenceStatement(System.Type tableType, string sequenceName) => throw null; + public override System.Collections.Generic.List ToCreateSequenceStatements(System.Type tableType) => throw null; + public override string ToCreateTableStatement(System.Type tableType) => throw null; + public override string ToSelectStatement(ServiceStack.OrmLite.QueryType queryType, ServiceStack.OrmLite.ModelDefinition modelDef, string selectExpression, string bodyExpression, string orderByExpression = default(string), int? offset = default(int?), int? rows = default(int?), System.Collections.Generic.ISet tags = default(System.Collections.Generic.ISet)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2014OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServer2014OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServer2012OrmLiteDialectProvider + { + public override string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static ServiceStack.OrmLite.SqlServer.SqlServer2014OrmLiteDialectProvider Instance; + public SqlServer2014OrmLiteDialectProvider() => throw null; + public override string ToCreateTableStatement(System.Type tableType) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2016Expression<>` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServer2016Expression : ServiceStack.OrmLite.SqlServer.SqlServerExpression + { + public SqlServer2016Expression(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) : base(default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + protected override object VisitSqlMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2016OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServer2016OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServer2014OrmLiteDialectProvider + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2016OrmLiteDialectProvider Instance; + public override ServiceStack.OrmLite.SqlExpression SqlExpression() => throw null; + public SqlServer2016OrmLiteDialectProvider() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2017OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServer2017OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServer2016OrmLiteDialectProvider + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2017OrmLiteDialectProvider Instance; + public SqlServer2017OrmLiteDialectProvider() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2019OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServer2019OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServer2017OrmLiteDialectProvider + { + public static ServiceStack.OrmLite.SqlServer.SqlServer2019OrmLiteDialectProvider Instance; + public SqlServer2019OrmLiteDialectProvider() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServerExpression<>` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerExpression : ServiceStack.OrmLite.SqlExpression + { + protected override void ConvertToPlaceholderAndParameter(ref object right) => throw null; + public override string GetSubstringSql(object quotedColumn, int startIndex, int? length = default(int?)) => throw null; + public override void PrepareUpdateStatement(System.Data.IDbCommand dbCmd, T item, bool excludeDefaults = default(bool)) => throw null; + public SqlServerExpression(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) : base(default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public override string ToDeleteRowStatement() => throw null; + protected override ServiceStack.OrmLite.PartialSqlString ToLengthPartialString(object arg) => throw null; + protected override void VisitFilter(string operand, object originalLeft, object originalRight, ref object left, ref object right) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerOrmLiteDialectProvider : ServiceStack.OrmLite.OrmLiteDialectProviderBase + { + public override System.Data.IDbConnection CreateConnection(string connectionString, System.Collections.Generic.Dictionary options) => throw null; + public override System.Data.IDbDataParameter CreateParam() => throw null; + public override void DisableForeignKeysCheck(System.Data.IDbCommand cmd) => throw null; + public override System.Threading.Tasks.Task DisableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void DisableIdentityInsert(System.Data.IDbCommand cmd) => throw null; + public override System.Threading.Tasks.Task DisableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override bool DoesColumnExist(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string)) => throw null; + public override System.Threading.Tasks.Task DoesColumnExistAsync(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override bool DoesSchemaExist(System.Data.IDbCommand dbCmd, string schemaName) => throw null; + public override System.Threading.Tasks.Task DoesSchemaExistAsync(System.Data.IDbCommand dbCmd, string schemaName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override bool DoesTableExist(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string)) => throw null; + public override System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void EnableForeignKeysCheck(System.Data.IDbCommand cmd) => throw null; + public override System.Threading.Tasks.Task EnableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void EnableIdentityInsert(System.Data.IDbCommand cmd) => throw null; + public override System.Threading.Tasks.Task EnableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task ExecuteScalarAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override string GetAutoIdDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + protected virtual string GetAutoIncrementDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public override string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public override string GetDropForeignKeyConstraints(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public override string GetForeignKeyOnDeleteClause(ServiceStack.OrmLite.ForeignKeyConstraint foreignKey) => throw null; + public override string GetForeignKeyOnUpdateClause(ServiceStack.OrmLite.ForeignKeyConstraint foreignKey) => throw null; + public override string GetLoadChildrenSubSelect(ServiceStack.OrmLite.SqlExpression expr) => throw null; + public override string GetQuotedValue(string paramValue) => throw null; + public override bool HasInsertReturnValues(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public override void InitConnection(System.Data.IDbConnection dbConn) => throw null; + public static ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider Instance; + public override System.Threading.Tasks.Task OpenAsync(System.Data.IDbConnection db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void PrepareInsertRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args) => throw null; + public override void PrepareParameterizedInsertStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection), System.Func shouldInclude = default(System.Func)) => throw null; + public override System.Threading.Tasks.Task ReadAsync(System.Data.IDataReader reader, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task ReaderEach(System.Data.IDataReader reader, System.Action fn, Return source, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task> ReaderEach(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task ReaderRead(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected string Sequence(string schema, string sequence) => throw null; + protected virtual bool ShouldReturnOnInsert(ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + protected override bool ShouldSkipInsert(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public override string SqlBool(bool value) => throw null; + public override string SqlCast(object fieldOrValue, string castAs) => throw null; + public override string SqlCurrency(string fieldOrValue, string currencySymbol) => throw null; + public override ServiceStack.OrmLite.SqlExpression SqlExpression() => throw null; + public override string SqlLimit(int? offset = default(int?), int? rows = default(int?)) => throw null; + public override string SqlRandom { get => throw null; } + public SqlServerOrmLiteDialectProvider() => throw null; + protected static string SqlTop(string sql, int take, string selectType = default(string)) => throw null; + protected virtual bool SupportsSequences(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public override string ToAddColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public override string ToAlterColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public override string ToChangeColumnNameStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef, string oldColumnName) => throw null; + public override string ToCreateSchemaStatement(string schemaName) => throw null; + public override string ToInsertRowStatement(System.Data.IDbCommand cmd, object objWithProperties, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)) => throw null; + public override string ToSelectStatement(ServiceStack.OrmLite.QueryType queryType, ServiceStack.OrmLite.ModelDefinition modelDef, string selectExpression, string bodyExpression, string orderByExpression = default(string), int? offset = default(int?), int? rows = default(int?), System.Collections.Generic.ISet tags = default(System.Collections.Generic.ISet)) => throw null; + public override string ToTableNamesStatement(string schema) => throw null; + public override string ToTableNamesWithRowCountsStatement(bool live, string schema) => throw null; + protected System.Data.SqlClient.SqlDataReader Unwrap(System.Data.IDataReader reader) => throw null; + protected System.Data.SqlClient.SqlCommand Unwrap(System.Data.IDbCommand cmd) => throw null; + protected System.Data.SqlClient.SqlConnection Unwrap(System.Data.IDbConnection db) => throw null; + public static string UseAliasesOrStripTablePrefixes(string selectExpression) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.SqlServerTableHint` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerTableHint + { + public static ServiceStack.OrmLite.JoinFormatDelegate NoLock; + public static ServiceStack.OrmLite.JoinFormatDelegate ReadCommitted; + public static ServiceStack.OrmLite.JoinFormatDelegate ReadPast; + public static ServiceStack.OrmLite.JoinFormatDelegate ReadUncommitted; + public static ServiceStack.OrmLite.JoinFormatDelegate RepeatableRead; + public static ServiceStack.OrmLite.JoinFormatDelegate Serializable; + public SqlServerTableHint() => throw null; + } + + namespace Converters + { + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlJsonAttribute` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlJsonAttribute : System.Attribute + { + public SqlJsonAttribute() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerBoolConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerBoolConverter : ServiceStack.OrmLite.Converters.BoolConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public SqlServerBoolConverter() => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerByteArrayConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerByteArrayConverter : ServiceStack.OrmLite.Converters.ByteArrayConverter + { + public override string ColumnDefinition { get => throw null; } + public SqlServerByteArrayConverter() => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerDateTime2Converter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerDateTime2Converter : ServiceStack.OrmLite.SqlServer.Converters.SqlServerDateTimeConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public SqlServerDateTime2Converter() => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerDateTimeConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerDateTimeConverter : ServiceStack.OrmLite.Converters.DateTimeConverter + { + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public SqlServerDateTimeConverter() => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerDecimalConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerDecimalConverter : ServiceStack.OrmLite.Converters.DecimalConverter + { + public SqlServerDecimalConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerDoubleConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerDoubleConverter : ServiceStack.OrmLite.Converters.DoubleConverter + { + public override string ColumnDefinition { get => throw null; } + public SqlServerDoubleConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerFloatConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerFloatConverter : ServiceStack.OrmLite.Converters.FloatConverter + { + public override string ColumnDefinition { get => throw null; } + public SqlServerFloatConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerGuidConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerGuidConverter : ServiceStack.OrmLite.Converters.GuidConverter + { + public override string ColumnDefinition { get => throw null; } + public SqlServerGuidConverter() => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerJsonStringConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerJsonStringConverter : ServiceStack.OrmLite.SqlServer.Converters.SqlServerStringConverter + { + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public SqlServerJsonStringConverter() => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerRowVersionConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerRowVersionConverter : ServiceStack.OrmLite.Converters.RowVersionConverter + { + public override string ColumnDefinition { get => throw null; } + public SqlServerRowVersionConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerSByteConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerSByteConverter : ServiceStack.OrmLite.Converters.SByteConverter + { + public override System.Data.DbType DbType { get => throw null; } + public SqlServerSByteConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerStringConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerStringConverter : ServiceStack.OrmLite.Converters.StringConverter + { + public override string GetColumnDefinition(int? stringLength) => throw null; + public override void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType) => throw null; + public override string MaxColumnDefinition { get => throw null; } + public override int MaxVarCharLength { get => throw null; } + public SqlServerStringConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerTimeConverter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerTimeConverter : ServiceStack.OrmLite.OrmLiteConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public int? Precision { get => throw null; set => throw null; } + public SqlServerTimeConverter() => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerUInt16Converter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerUInt16Converter : ServiceStack.OrmLite.Converters.UInt16Converter + { + public override System.Data.DbType DbType { get => throw null; } + public SqlServerUInt16Converter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerUInt32Converter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerUInt32Converter : ServiceStack.OrmLite.Converters.UInt32Converter + { + public override System.Data.DbType DbType { get => throw null; } + public SqlServerUInt32Converter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerUInt64Converter` in `ServiceStack.OrmLite.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlServerUInt64Converter : ServiceStack.OrmLite.Converters.UInt64Converter + { + public override System.Data.DbType DbType { get => throw null; } + public SqlServerUInt64Converter() => throw null; + } + + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.csproj new file mode 100644 index 00000000000..f6a299fe125 --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.csproj @@ -0,0 +1,17 @@ + + + net6.0 + true + bin\ + false + + + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.cs b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.cs new file mode 100644 index 00000000000..e11d0b84801 --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.cs @@ -0,0 +1,3500 @@ +// This file contains auto-generated code. + +namespace ServiceStack +{ + namespace OrmLite + { + // Generated from `ServiceStack.OrmLite.AliasNamingStrategy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AliasNamingStrategy : ServiceStack.OrmLite.OrmLiteNamingStrategyBase + { + public AliasNamingStrategy() => throw null; + public System.Collections.Generic.Dictionary ColumnAliases; + public override string GetColumnName(string name) => throw null; + public override string GetTableName(string name) => throw null; + public System.Collections.Generic.Dictionary TableAliases; + public ServiceStack.OrmLite.INamingStrategy UseNamingStrategy { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.CaptureSqlFilter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CaptureSqlFilter : ServiceStack.OrmLite.OrmLiteResultsFilter + { + public CaptureSqlFilter() : base(default(System.Collections.IEnumerable)) => throw null; + public System.Collections.Generic.List SqlCommandHistory { get => throw null; set => throw null; } + public System.Collections.Generic.List SqlStatements { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.ColumnSchema` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ColumnSchema + { + 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 CollationType { get => throw null; set => throw null; } + public string ColumnDefinition { get => throw null; } + public string ColumnName { get => throw null; set => throw null; } + public int ColumnOrdinal { get => throw null; set => throw null; } + public ColumnSchema() => 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 object DefaultValue { get => throw null; set => 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 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 IsRowVersion { get => throw null; set => throw null; } + public bool IsUnique { get => throw null; set => throw null; } + public int NumericPrecision { get => throw null; set => throw null; } + public int NumericScale { get => throw null; set => throw null; } + public System.Type ProviderSpecificDataType { get => throw null; set => throw null; } + public int ProviderType { get => throw null; set => throw null; } + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.OrmLite.ConflictResolution` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConflictResolution + { + public ConflictResolution() => throw null; + public const string Ignore = default; + } + + // Generated from `ServiceStack.OrmLite.DbDataParameterExtensions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DbDataParameterExtensions + { + public static System.Data.IDbDataParameter AddParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef, System.Action paramFilter) => throw null; + public static System.Data.IDbDataParameter AddQueryParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static System.Data.IDbDataParameter AddUpdateParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static System.Data.IDbDataParameter CreateParam(this System.Data.IDbConnection db, string name, object value = default(object), System.Type fieldType = default(System.Type), System.Data.DbType? dbType = default(System.Data.DbType?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?), int? size = default(int?)) => throw null; + public static System.Data.IDbDataParameter CreateParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string name, object value = default(object), System.Type fieldType = default(System.Type), System.Data.DbType? dbType = default(System.Data.DbType?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?), int? size = default(int?)) => throw null; + public static string GetInsertParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static string GetUpdateParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + } + + // Generated from `ServiceStack.OrmLite.DbScripts` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DbScripts : ServiceStack.Script.ScriptMethods + { + public ServiceStack.Data.IDbConnectionFactory DbFactory { get => throw null; set => throw null; } + public DbScripts() => throw null; + public System.Data.IDbConnection OpenDbConnection(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary options) => throw null; + public string[] dbColumnNames(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; + public string[] dbColumnNames(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; + public ServiceStack.OrmLite.ColumnSchema[] dbColumns(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; + public ServiceStack.OrmLite.ColumnSchema[] dbColumns(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; + public System.Int64 dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public System.Int64 dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public System.Int64 dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public ServiceStack.OrmLite.ColumnSchema[] dbDesc(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public ServiceStack.OrmLite.ColumnSchema[] dbDesc(ServiceStack.Script.ScriptScopeContext scope, string sql, object options) => throw null; + public int dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public int dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public int dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public bool dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public bool dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public bool dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Collections.Generic.List dbNamedConnections() => throw null; + public object dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public object dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public object dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public object dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public object dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public object dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public object dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public object dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public object dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Collections.Generic.List dbTableNames(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.List dbTableNames(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; + public System.Collections.Generic.List dbTableNames(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Collections.Generic.List> dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.List> dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; + public System.Collections.Generic.List> dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; + public bool isUnsafeSql(string sql) => throw null; + public bool isUnsafeSqlFragment(string sql) => throw null; + public string ormliteVar(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string sqlBool(ServiceStack.Script.ScriptScopeContext scope, bool value) => throw null; + public string sqlCast(ServiceStack.Script.ScriptScopeContext scope, object fieldOrValue, string castAs) => throw null; + public string sqlConcat(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable values) => throw null; + public string sqlCurrency(ServiceStack.Script.ScriptScopeContext scope, string fieldOrValue) => throw null; + public string sqlCurrency(ServiceStack.Script.ScriptScopeContext scope, string fieldOrValue, string symbol) => throw null; + public string sqlFalse(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string sqlLimit(ServiceStack.Script.ScriptScopeContext scope, int? limit) => throw null; + public string sqlLimit(ServiceStack.Script.ScriptScopeContext scope, int? offset, int? limit) => throw null; + public string sqlOrderByFields(ServiceStack.Script.ScriptScopeContext scope, string orderBy) => throw null; + public string sqlQuote(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string sqlSkip(ServiceStack.Script.ScriptScopeContext scope, int? offset) => throw null; + public string sqlTake(ServiceStack.Script.ScriptScopeContext scope, int? limit) => throw null; + public string sqlTrue(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string sqlVerifyFragment(string sql) => throw null; + public ServiceStack.Script.IgnoreResult useDb(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary dbConnOptions) => throw null; + } + + // Generated from `ServiceStack.OrmLite.DbScriptsAsync` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DbScriptsAsync : ServiceStack.Script.ScriptMethods + { + public ServiceStack.Data.IDbConnectionFactory DbFactory { get => throw null; set => throw null; } + public DbScriptsAsync() => throw null; + public System.Threading.Tasks.Task OpenDbConnectionAsync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary options) => throw null; + public System.Threading.Tasks.Task dbColumnNames(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; + public System.Threading.Tasks.Task dbColumnNames(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; + public string[] dbColumnNamesSync(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; + public string[] dbColumnNamesSync(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; + public System.Threading.Tasks.Task dbColumns(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; + public System.Threading.Tasks.Task dbColumns(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; + public ServiceStack.OrmLite.ColumnSchema[] dbColumnsSync(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; + public ServiceStack.OrmLite.ColumnSchema[] dbColumnsSync(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; + public System.Threading.Tasks.Task dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public System.Threading.Tasks.Task dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public System.Threading.Tasks.Task dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Int64 dbCountSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public System.Int64 dbCountSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public System.Int64 dbCountSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Threading.Tasks.Task dbDesc(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public System.Threading.Tasks.Task dbDesc(ServiceStack.Script.ScriptScopeContext scope, string sql, object options) => throw null; + public ServiceStack.OrmLite.ColumnSchema[] dbDescSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public ServiceStack.OrmLite.ColumnSchema[] dbDescSync(ServiceStack.Script.ScriptScopeContext scope, string sql, object options) => throw null; + public System.Threading.Tasks.Task dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public System.Threading.Tasks.Task dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public System.Threading.Tasks.Task dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public int dbExecSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public int dbExecSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public int dbExecSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Threading.Tasks.Task dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public System.Threading.Tasks.Task dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public System.Threading.Tasks.Task dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public bool dbExistsSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public bool dbExistsSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public bool dbExistsSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Collections.Generic.List dbNamedConnections() => throw null; + public System.Threading.Tasks.Task dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public System.Threading.Tasks.Task dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public System.Threading.Tasks.Task dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public object dbScalarSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public object dbScalarSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public object dbScalarSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Threading.Tasks.Task dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public System.Threading.Tasks.Task dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public System.Threading.Tasks.Task dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public object dbSelectSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public object dbSelectSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public object dbSelectSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Threading.Tasks.Task dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public System.Threading.Tasks.Task dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public System.Threading.Tasks.Task dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public object dbSingleSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; + public object dbSingleSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; + public object dbSingleSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Threading.Tasks.Task dbTableNames(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Threading.Tasks.Task dbTableNames(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; + public System.Threading.Tasks.Task dbTableNames(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Collections.Generic.List dbTableNamesSync(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.List dbTableNamesSync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; + public System.Collections.Generic.List dbTableNamesSync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Threading.Tasks.Task dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Threading.Tasks.Task dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; + public System.Threading.Tasks.Task dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; + public System.Collections.Generic.List> dbTableNamesWithRowCountsSync(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.List> dbTableNamesWithRowCountsSync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; + public System.Collections.Generic.List> dbTableNamesWithRowCountsSync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; + public bool isUnsafeSql(string sql) => throw null; + public bool isUnsafeSqlFragment(string sql) => throw null; + public string ormliteVar(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string sqlBool(ServiceStack.Script.ScriptScopeContext scope, bool value) => throw null; + public string sqlCast(ServiceStack.Script.ScriptScopeContext scope, object fieldOrValue, string castAs) => throw null; + public string sqlConcat(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable values) => throw null; + public string sqlCurrency(ServiceStack.Script.ScriptScopeContext scope, string fieldOrValue) => throw null; + public string sqlCurrency(ServiceStack.Script.ScriptScopeContext scope, string fieldOrValue, string symbol) => throw null; + public string sqlFalse(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string sqlLimit(ServiceStack.Script.ScriptScopeContext scope, int? limit) => throw null; + public string sqlLimit(ServiceStack.Script.ScriptScopeContext scope, int? offset, int? limit) => throw null; + public string sqlOrderByFields(ServiceStack.Script.ScriptScopeContext scope, string orderBy) => throw null; + public string sqlQuote(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string sqlSkip(ServiceStack.Script.ScriptScopeContext scope, int? offset) => throw null; + public string sqlTake(ServiceStack.Script.ScriptScopeContext scope, int? limit) => throw null; + public string sqlTrue(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string sqlVerifyFragment(string sql) => throw null; + public ServiceStack.Script.IgnoreResult useDb(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary dbConnOptions) => throw null; + } + + // Generated from `ServiceStack.OrmLite.DbTypes<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DbTypes where TDialect : ServiceStack.OrmLite.IOrmLiteDialectProvider + { + public System.Collections.Generic.Dictionary ColumnDbTypeMap; + public System.Collections.Generic.Dictionary ColumnTypeMap; + public System.Data.DbType DbType; + public DbTypes() => throw null; + public void Set(System.Data.DbType dbType, string fieldDefinition) => throw null; + public bool ShouldQuoteValue; + public string TextDefinition; + } + + // Generated from `ServiceStack.OrmLite.DictionaryRow` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct DictionaryRow : ServiceStack.OrmLite.IDynamicRow, ServiceStack.OrmLite.IDynamicRow> + { + // Stub generator skipped constructor + public DictionaryRow(System.Type type, System.Collections.Generic.Dictionary fields) => throw null; + public System.Collections.Generic.Dictionary Fields { get => throw null; } + public System.Type Type { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.DynamicRowUtils` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DynamicRowUtils + { + } + + // Generated from `ServiceStack.OrmLite.EnumMemberAccess` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EnumMemberAccess : ServiceStack.OrmLite.PartialSqlString + { + public EnumMemberAccess(string text, System.Type enumType) : base(default(string)) => throw null; + public System.Type EnumType { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.FieldDefinition` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FieldDefinition + { + public string Alias { get => throw null; set => throw null; } + public bool AutoId { get => throw null; set => throw null; } + public bool AutoIncrement { get => throw null; set => throw null; } + public string BelongToModelName { get => throw null; set => throw null; } + public string CheckConstraint { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition Clone(System.Action modifier = default(System.Action)) => throw null; + public System.Type ColumnType { get => throw null; } + public string ComputeExpression { get => throw null; set => throw null; } + public string CustomFieldDefinition { get => throw null; set => throw null; } + public string CustomInsert { get => throw null; set => throw null; } + public string CustomSelect { get => throw null; set => throw null; } + public string CustomUpdate { get => throw null; set => throw null; } + public string DefaultValue { get => throw null; set => throw null; } + public FieldDefinition() => throw null; + public int? FieldLength { get => throw null; set => throw null; } + public string FieldName { get => throw null; } + public ServiceStack.OrmLite.FieldReference FieldReference { get => throw null; set => throw null; } + public System.Type FieldType { get => throw null; set => throw null; } + public object FieldTypeDefaultValue { get => throw null; set => throw null; } + public ServiceStack.OrmLite.ForeignKeyConstraint ForeignKey { get => throw null; set => throw null; } + public string GetQuotedName(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + public string GetQuotedValue(object fromInstance, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public object GetValue(object instance) => throw null; + public ServiceStack.GetMemberDelegate GetValueFn { get => throw null; set => throw null; } + public bool IgnoreOnInsert { get => throw null; set => throw null; } + public bool IgnoreOnUpdate { get => throw null; set => throw null; } + public string IndexName { get => throw null; set => throw null; } + public bool IsClustered { get => throw null; set => throw null; } + public bool IsComputed { get => throw null; set => throw null; } + public bool IsIndexed { get => throw null; set => throw null; } + public bool IsNonClustered { get => throw null; set => throw null; } + public bool IsNullable { get => throw null; set => throw null; } + public bool IsPersisted { get => throw null; set => throw null; } + public bool IsPrimaryKey { get => throw null; set => throw null; } + public bool IsRefType { get => throw null; set => throw null; } + public bool IsReference { get => throw null; set => throw null; } + public bool IsRowVersion { get => throw null; set => throw null; } + public bool IsSelfRefField(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public bool IsSelfRefField(string name) => throw null; + public bool IsUniqueConstraint { get => throw null; set => throw null; } + public bool IsUniqueIndex { get => throw null; set => throw null; } + public ServiceStack.OrmLite.ModelDefinition ModelDef { 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 System.Reflection.PropertyInfo PropertyInfo { get => throw null; set => throw null; } + public bool RequiresAlias { get => throw null; } + public bool ReturnOnInsert { get => throw null; set => throw null; } + public int? Scale { get => throw null; set => throw null; } + public string Sequence { get => throw null; set => throw null; } + public void SetValue(object instance, object value) => throw null; + public ServiceStack.SetMemberDelegate SetValueFn { get => throw null; set => throw null; } + public bool ShouldSkipDelete() => throw null; + public bool ShouldSkipInsert() => throw null; + public bool ShouldSkipUpdate() => throw null; + public override string ToString() => throw null; + public System.Type TreatAsType { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.FieldReference` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FieldReference + { + public ServiceStack.OrmLite.FieldDefinition FieldDef { get => throw null; } + public FieldReference(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public string RefField { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition RefFieldDef { get => throw null; } + public string RefId { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition RefIdFieldDef { get => throw null; } + public System.Type RefModel { get => throw null; set => throw null; } + public ServiceStack.OrmLite.ModelDefinition RefModelDef { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.ForeignKeyConstraint` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ForeignKeyConstraint + { + public ForeignKeyConstraint(System.Type type, string onDelete = default(string), string onUpdate = default(string), string foreignKeyName = default(string)) => throw null; + public string ForeignKeyName { get => throw null; set => throw null; } + public string GetForeignKeyName(ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.ModelDefinition refModelDef, ServiceStack.OrmLite.INamingStrategy namingStrategy, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public string OnDelete { get => throw null; set => throw null; } + public string OnUpdate { get => throw null; set => throw null; } + public System.Type ReferenceType { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.GetValueDelegate` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object GetValueDelegate(int i); + + // Generated from `ServiceStack.OrmLite.IDynamicRow` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDynamicRow + { + System.Type Type { get; } + } + + // Generated from `ServiceStack.OrmLite.IDynamicRow<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDynamicRow : ServiceStack.OrmLite.IDynamicRow + { + T Fields { get; } + } + + // Generated from `ServiceStack.OrmLite.IHasColumnDefinitionLength` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasColumnDefinitionLength + { + string GetColumnDefinition(int? length); + } + + // Generated from `ServiceStack.OrmLite.IHasColumnDefinitionPrecision` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasColumnDefinitionPrecision + { + string GetColumnDefinition(int? precision, int? scale); + } + + // Generated from `ServiceStack.OrmLite.IHasDialectProvider` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasDialectProvider + { + ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get; } + } + + // Generated from `ServiceStack.OrmLite.IHasUntypedSqlExpression` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasUntypedSqlExpression + { + ServiceStack.OrmLite.IUntypedSqlExpression GetUntyped(); + } + + // Generated from `ServiceStack.OrmLite.INamingStrategy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface INamingStrategy + { + string ApplyNameRestrictions(string name); + string GetColumnName(string name); + string GetSchemaName(ServiceStack.OrmLite.ModelDefinition modelDef); + string GetSchemaName(string name); + string GetSequenceName(string modelName, string fieldName); + string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef); + string GetTableName(string name); + } + + // Generated from `ServiceStack.OrmLite.IOrmLiteConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOrmLiteConverter + { + string ColumnDefinition { get; } + System.Data.DbType DbType { get; } + ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get; set; } + object FromDbValue(System.Type fieldType, object value); + object GetValue(System.Data.IDataReader reader, int columnIndex, object[] values); + void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType); + object ToDbValue(System.Type fieldType, object value); + string ToQuotedString(System.Type fieldType, object value); + } + + // Generated from `ServiceStack.OrmLite.IOrmLiteDialectProvider` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOrmLiteDialectProvider + { + System.Data.IDbConnection CreateConnection(string filePath, System.Collections.Generic.Dictionary options); + System.Data.IDbDataParameter CreateParam(); + System.Data.IDbCommand CreateParameterizedDeleteStatement(System.Data.IDbConnection connection, object objWithProperties); + void DisableForeignKeysCheck(System.Data.IDbCommand cmd); + System.Threading.Tasks.Task DisableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void DisableIdentityInsert(System.Data.IDbCommand cmd); + System.Threading.Tasks.Task DisableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + bool DoesColumnExist(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string)); + System.Threading.Tasks.Task DoesColumnExistAsync(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + bool DoesSchemaExist(System.Data.IDbCommand dbCmd, string schema); + System.Threading.Tasks.Task DoesSchemaExistAsync(System.Data.IDbCommand dbCmd, string schema, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + bool DoesSequenceExist(System.Data.IDbCommand dbCmd, string sequenceName); + System.Threading.Tasks.Task DoesSequenceExistAsync(System.Data.IDbCommand dbCmd, string sequenceName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + bool DoesTableExist(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string)); + bool DoesTableExist(System.Data.IDbConnection db, string tableName, string schema = default(string)); + System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbConnection db, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void DropColumn(System.Data.IDbConnection db, System.Type modelType, string columnName); + void EnableForeignKeysCheck(System.Data.IDbCommand cmd); + System.Threading.Tasks.Task EnableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void EnableIdentityInsert(System.Data.IDbCommand cmd); + System.Threading.Tasks.Task EnableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string EscapeWildcards(string value); + ServiceStack.OrmLite.IOrmLiteExecFilter ExecFilter { get; set; } + System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExecuteScalarAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + object FromDbRowVersion(System.Type fieldType, object value); + object FromDbValue(object value, System.Type type); + string GenerateComment(string text); + string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef); + string GetColumnNames(ServiceStack.OrmLite.ModelDefinition modelDef); + ServiceStack.OrmLite.SelectItem[] GetColumnNames(ServiceStack.OrmLite.ModelDefinition modelDef, string tablePrefix); + ServiceStack.OrmLite.IOrmLiteConverter GetConverter(System.Type type); + ServiceStack.OrmLite.IOrmLiteConverter GetConverterBestMatch(ServiceStack.OrmLite.FieldDefinition fieldDef); + ServiceStack.OrmLite.IOrmLiteConverter GetConverterBestMatch(System.Type type); + string GetDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef); + string GetDefaultValue(System.Type tableType, string fieldName); + string GetDropForeignKeyConstraints(ServiceStack.OrmLite.ModelDefinition modelDef); + System.Collections.Generic.Dictionary GetFieldDefinitionMap(ServiceStack.OrmLite.ModelDefinition modelDef); + object GetFieldValue(ServiceStack.OrmLite.FieldDefinition fieldDef, object value); + object GetFieldValue(System.Type fieldType, object value); + System.Int64 GetLastInsertId(System.Data.IDbCommand command); + string GetLastInsertIdSqlSuffix(); + string GetLoadChildrenSubSelect(ServiceStack.OrmLite.SqlExpression expr); + object GetParamValue(object value, System.Type fieldType); + string GetQuotedColumnName(string columnName); + string GetQuotedName(string name); + string GetQuotedName(string name, string schema); + string GetQuotedTableName(ServiceStack.OrmLite.ModelDefinition modelDef); + string GetQuotedTableName(string tableName, string schema = default(string)); + string GetQuotedTableName(string tableName, string schema, bool useStrategy); + string GetQuotedValue(object value, System.Type fieldType); + string GetQuotedValue(string paramValue); + string GetRowVersionColumn(ServiceStack.OrmLite.FieldDefinition field, string tablePrefix = default(string)); + ServiceStack.OrmLite.SelectItem GetRowVersionSelectColumn(ServiceStack.OrmLite.FieldDefinition field, string tablePrefix = default(string)); + string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef); + string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef, bool useStrategy); + string GetTableName(string table, string schema = default(string)); + string GetTableName(string table, string schema, bool useStrategy); + object GetValue(System.Data.IDataReader reader, int columnIndex, System.Type type); + int GetValues(System.Data.IDataReader reader, object[] values); + bool HasInsertReturnValues(ServiceStack.OrmLite.ModelDefinition modelDef); + void InitConnection(System.Data.IDbConnection dbConn); + void InitQueryParam(System.Data.IDbDataParameter param); + void InitUpdateParam(System.Data.IDbDataParameter param); + System.Threading.Tasks.Task InsertAndGetLastInsertIdAsync(System.Data.IDbCommand dbCmd, System.Threading.CancellationToken token); + string MergeParamsIntoSql(string sql, System.Collections.Generic.IEnumerable dbParams); + ServiceStack.OrmLite.INamingStrategy NamingStrategy { get; set; } + System.Action OnOpenConnection { get; set; } + System.Threading.Tasks.Task OpenAsync(System.Data.IDbConnection db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Func ParamNameFilter { get; set; } + string ParamString { get; set; } + void PrepareInsertRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args); + bool PrepareParameterizedDeleteStatement(System.Data.IDbCommand cmd, System.Collections.Generic.IDictionary deleteFieldValues); + void PrepareParameterizedInsertStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection), System.Func shouldInclude = default(System.Func)); + bool PrepareParameterizedUpdateStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)); + void PrepareStoredProcedureStatement(System.Data.IDbCommand cmd, T obj); + void PrepareUpdateRowAddStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args, string sqlFilter); + void PrepareUpdateRowStatement(System.Data.IDbCommand dbCmd, object objWithProperties, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)); + void PrepareUpdateRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args, string sqlFilter); + System.Threading.Tasks.Task ReadAsync(System.Data.IDataReader reader, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ReaderEach(System.Data.IDataReader reader, System.Action fn, Return source, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> ReaderEach(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ReaderRead(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void RegisterConverter(ServiceStack.OrmLite.IOrmLiteConverter converter); + string SanitizeFieldNameForParamName(string fieldName); + System.Collections.Generic.List SequenceList(System.Type tableType); + System.Threading.Tasks.Task> SequenceListAsync(System.Type tableType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void SetParameter(ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDbDataParameter p); + void SetParameterValues(System.Data.IDbCommand dbCmd, object obj); + string SqlBool(bool value); + string SqlCast(object fieldOrValue, string castAs); + string SqlConcat(System.Collections.Generic.IEnumerable args); + string SqlConflict(string sql, string conflictResolution); + string SqlCurrency(string fieldOrValue); + string SqlCurrency(string fieldOrValue, string currencySymbol); + ServiceStack.OrmLite.SqlExpression SqlExpression(); + string SqlLimit(int? offset = default(int?), int? rows = default(int?)); + string SqlRandom { get; } + ServiceStack.Text.IStringSerializer StringSerializer { get; set; } + string ToAddColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef); + string ToAddForeignKeyStatement(System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> foreignField, ServiceStack.OrmLite.OnFkOption onUpdate, ServiceStack.OrmLite.OnFkOption onDelete, string foreignKeyName = default(string)); + string ToAlterColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef); + string ToChangeColumnNameStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef, string oldColumnName); + string ToCreateIndexStatement(System.Linq.Expressions.Expression> field, string indexName = default(string), bool unique = default(bool)); + System.Collections.Generic.List ToCreateIndexStatements(System.Type tableType); + string ToCreateSchemaStatement(string schema); + string ToCreateSequenceStatement(System.Type tableType, string sequenceName); + System.Collections.Generic.List ToCreateSequenceStatements(System.Type tableType); + string ToCreateTableStatement(System.Type tableType); + object ToDbValue(object value, System.Type type); + string ToDeleteStatement(System.Type tableType, string sqlFilter, params object[] filterParams); + string ToExecuteProcedureStatement(object objWithProperties); + string ToExistStatement(System.Type fromTableType, object objWithProperties, string sqlFilter, params object[] filterParams); + string ToInsertRowStatement(System.Data.IDbCommand cmd, object objWithProperties, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)); + string ToInsertStatement(System.Data.IDbCommand dbCmd, T item, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)); + string ToPostCreateTableStatement(ServiceStack.OrmLite.ModelDefinition modelDef); + string ToPostDropTableStatement(ServiceStack.OrmLite.ModelDefinition modelDef); + string ToRowCountStatement(string innerSql); + string ToSelectFromProcedureStatement(object fromObjWithProperties, System.Type outputModelType, string sqlFilter, params object[] filterParams); + string ToSelectStatement(ServiceStack.OrmLite.QueryType queryType, ServiceStack.OrmLite.ModelDefinition modelDef, string selectExpression, string bodyExpression, string orderByExpression = default(string), int? offset = default(int?), int? rows = default(int?), System.Collections.Generic.ISet tags = default(System.Collections.Generic.ISet)); + string ToSelectStatement(System.Type tableType, string sqlFilter, params object[] filterParams); + string ToTableNamesStatement(string schema); + string ToTableNamesWithRowCountsStatement(bool live, string schema); + string ToUpdateStatement(System.Data.IDbCommand dbCmd, T item, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)); + System.Collections.Generic.Dictionary Variables { get; } + } + + // Generated from `ServiceStack.OrmLite.IOrmLiteExecFilter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOrmLiteExecFilter + { + System.Data.IDbCommand CreateCommand(System.Data.IDbConnection dbConn); + void DisposeCommand(System.Data.IDbCommand dbCmd, System.Data.IDbConnection dbConn); + void Exec(System.Data.IDbConnection dbConn, System.Action filter); + System.Data.IDbCommand Exec(System.Data.IDbConnection dbConn, System.Func filter); + System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func> filter); + System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func filter); + T Exec(System.Data.IDbConnection dbConn, System.Func filter); + System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func> filter); + System.Collections.Generic.IEnumerable ExecLazy(System.Data.IDbConnection dbConn, System.Func> filter); + ServiceStack.OrmLite.SqlExpression SqlExpression(System.Data.IDbConnection dbConn); + } + + // Generated from `ServiceStack.OrmLite.IOrmLiteResultsFilter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOrmLiteResultsFilter + { + int ExecuteSql(System.Data.IDbCommand dbCmd); + System.Collections.Generic.List GetColumn(System.Data.IDbCommand dbCmd); + System.Collections.Generic.HashSet GetColumnDistinct(System.Data.IDbCommand dbCmd); + System.Collections.Generic.Dictionary GetDictionary(System.Data.IDbCommand dbCmd); + System.Collections.Generic.List> GetKeyValuePairs(System.Data.IDbCommand dbCmd); + System.Int64 GetLastInsertId(System.Data.IDbCommand dbCmd); + System.Collections.Generic.List GetList(System.Data.IDbCommand dbCmd); + System.Int64 GetLongScalar(System.Data.IDbCommand dbCmd); + System.Collections.Generic.Dictionary> GetLookup(System.Data.IDbCommand dbCmd); + System.Collections.IList GetRefList(System.Data.IDbCommand dbCmd, System.Type refType); + object GetRefSingle(System.Data.IDbCommand dbCmd, System.Type refType); + object GetScalar(System.Data.IDbCommand dbCmd); + T GetScalar(System.Data.IDbCommand dbCmd); + T GetSingle(System.Data.IDbCommand dbCmd); + } + + // Generated from `ServiceStack.OrmLite.IPropertyInvoker` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPropertyInvoker + { + System.Func ConvertValueFn { get; set; } + object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object fromInstance); + void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, System.Type fieldType, object onInstance, object withValue); + } + + // Generated from `ServiceStack.OrmLite.ISetDbTransaction` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + internal interface ISetDbTransaction + { + System.Data.IDbTransaction Transaction { get; set; } + } + + // Generated from `ServiceStack.OrmLite.ISqlExpression` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISqlExpression + { + System.Collections.Generic.List Params { get; } + string SelectInto(); + string SelectInto(ServiceStack.OrmLite.QueryType forType); + string ToSelectStatement(); + string ToSelectStatement(ServiceStack.OrmLite.QueryType forType); + } + + // Generated from `ServiceStack.OrmLite.IUntypedApi` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUntypedApi + { + System.Collections.IEnumerable Cast(System.Collections.IEnumerable results); + System.Data.IDbConnection Db { get; set; } + System.Data.IDbCommand DbCmd { get; set; } + int Delete(object obj, object anonType); + int DeleteAll(); + int DeleteById(object id); + int DeleteByIds(System.Collections.IEnumerable idValues); + int DeleteNonDefaults(object obj, object filter); + System.Int64 Insert(object obj, System.Action commandFilter, bool selectIdentity = default(bool)); + System.Int64 Insert(object obj, bool selectIdentity = default(bool)); + void InsertAll(System.Collections.IEnumerable objs); + void InsertAll(System.Collections.IEnumerable objs, System.Action commandFilter); + bool Save(object obj); + int SaveAll(System.Collections.IEnumerable objs); + System.Threading.Tasks.Task SaveAllAsync(System.Collections.IEnumerable objs, System.Threading.CancellationToken token); + System.Threading.Tasks.Task SaveAsync(object obj, System.Threading.CancellationToken token); + int Update(object obj); + int UpdateAll(System.Collections.IEnumerable objs); + int UpdateAll(System.Collections.IEnumerable objs, System.Action commandFilter); + System.Threading.Tasks.Task UpdateAsync(object obj, System.Threading.CancellationToken token); + } + + // Generated from `ServiceStack.OrmLite.IUntypedSqlExpression` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUntypedSqlExpression : ServiceStack.OrmLite.ISqlExpression + { + ServiceStack.OrmLite.IUntypedSqlExpression AddCondition(string condition, string sqlFilter, params object[] filterParams); + ServiceStack.OrmLite.IUntypedSqlExpression And(string sqlFilter, params object[] filterParams); + ServiceStack.OrmLite.IUntypedSqlExpression And(System.Linq.Expressions.Expression> predicate); + ServiceStack.OrmLite.IUntypedSqlExpression And(System.Linq.Expressions.Expression> predicate); + string BodyExpression { get; } + ServiceStack.OrmLite.IUntypedSqlExpression ClearLimits(); + ServiceStack.OrmLite.IUntypedSqlExpression Clone(); + System.Data.IDbDataParameter CreateParam(string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?)); + ServiceStack.OrmLite.IUntypedSqlExpression CrossJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); + ServiceStack.OrmLite.IUntypedSqlExpression CustomJoin(string joinString); + ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression Ensure(string sqlFilter, params object[] filterParams); + ServiceStack.OrmLite.IUntypedSqlExpression Ensure(System.Linq.Expressions.Expression> predicate); + ServiceStack.OrmLite.IUntypedSqlExpression Ensure(System.Linq.Expressions.Expression> predicate); + System.Tuple FirstMatchingField(string fieldName); + ServiceStack.OrmLite.IUntypedSqlExpression From(string tables); + string FromExpression { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); + System.Collections.Generic.IList GetAllFields(); + ServiceStack.OrmLite.ModelDefinition GetModelDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef); + ServiceStack.OrmLite.IUntypedSqlExpression GroupBy(); + ServiceStack.OrmLite.IUntypedSqlExpression GroupBy(string groupBy); + string GroupByExpression { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression Having(); + ServiceStack.OrmLite.IUntypedSqlExpression Having(string sqlFilter, params object[] filterParams); + string HavingExpression { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression Insert(); + ServiceStack.OrmLite.IUntypedSqlExpression Insert(System.Collections.Generic.List insertFields); + System.Collections.Generic.List InsertFields { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression Join(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)); + ServiceStack.OrmLite.IUntypedSqlExpression Join(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); + ServiceStack.OrmLite.IUntypedSqlExpression LeftJoin(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)); + ServiceStack.OrmLite.IUntypedSqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); + ServiceStack.OrmLite.IUntypedSqlExpression Limit(); + ServiceStack.OrmLite.IUntypedSqlExpression Limit(int rows); + ServiceStack.OrmLite.IUntypedSqlExpression Limit(int skip, int rows); + ServiceStack.OrmLite.IUntypedSqlExpression Limit(int? skip, int? rows); + ServiceStack.OrmLite.ModelDefinition ModelDef { get; } + int? Offset { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression Or(string sqlFilter, params object[] filterParams); + ServiceStack.OrmLite.IUntypedSqlExpression Or(System.Linq.Expressions.Expression> predicate); + ServiceStack.OrmLite.IUntypedSqlExpression Or(System.Linq.Expressions.Expression> predicate); + ServiceStack.OrmLite.IUntypedSqlExpression OrderBy(); + ServiceStack.OrmLite.IUntypedSqlExpression OrderBy(string orderBy); + ServiceStack.OrmLite.IUntypedSqlExpression OrderBy
    (System.Linq.Expressions.Expression> keySelector); + ServiceStack.OrmLite.IUntypedSqlExpression OrderByDescending(string orderBy); + ServiceStack.OrmLite.IUntypedSqlExpression OrderByDescending
    (System.Linq.Expressions.Expression> keySelector); + string OrderByExpression { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression OrderByFields(params ServiceStack.OrmLite.FieldDefinition[] fields); + ServiceStack.OrmLite.IUntypedSqlExpression OrderByFields(params string[] fieldNames); + ServiceStack.OrmLite.IUntypedSqlExpression OrderByFieldsDescending(params ServiceStack.OrmLite.FieldDefinition[] fields); + ServiceStack.OrmLite.IUntypedSqlExpression OrderByFieldsDescending(params string[] fieldNames); + bool PrefixFieldWithTableName { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); + int? Rows { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression Select(); + ServiceStack.OrmLite.IUntypedSqlExpression Select(string selectExpression); + ServiceStack.OrmLite.IUntypedSqlExpression Select(System.Linq.Expressions.Expression> fields); + ServiceStack.OrmLite.IUntypedSqlExpression Select(System.Linq.Expressions.Expression> fields); + ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(); + ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields); + ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields); + string SelectExpression { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression Skip(int? skip = default(int?)); + string SqlColumn(string columnName); + string SqlTable(ServiceStack.OrmLite.ModelDefinition modelDef); + string TableAlias { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression Take(int? take = default(int?)); + ServiceStack.OrmLite.IUntypedSqlExpression ThenBy(string orderBy); + ServiceStack.OrmLite.IUntypedSqlExpression ThenBy
    (System.Linq.Expressions.Expression> keySelector); + ServiceStack.OrmLite.IUntypedSqlExpression ThenByDescending(string orderBy); + ServiceStack.OrmLite.IUntypedSqlExpression ThenByDescending
    (System.Linq.Expressions.Expression> keySelector); + string ToCountStatement(); + string ToDeleteRowStatement(); + ServiceStack.OrmLite.IUntypedSqlExpression UnsafeAnd(string rawSql, params object[] filterParams); + ServiceStack.OrmLite.IUntypedSqlExpression UnsafeFrom(string rawFrom); + ServiceStack.OrmLite.IUntypedSqlExpression UnsafeOr(string rawSql, params object[] filterParams); + ServiceStack.OrmLite.IUntypedSqlExpression UnsafeSelect(string rawSelect); + ServiceStack.OrmLite.IUntypedSqlExpression UnsafeWhere(string rawSql, params object[] filterParams); + ServiceStack.OrmLite.IUntypedSqlExpression Update(); + ServiceStack.OrmLite.IUntypedSqlExpression Update(System.Collections.Generic.List updateFields); + System.Collections.Generic.List UpdateFields { get; set; } + ServiceStack.OrmLite.IUntypedSqlExpression Where(); + ServiceStack.OrmLite.IUntypedSqlExpression Where(string sqlFilter, params object[] filterParams); + ServiceStack.OrmLite.IUntypedSqlExpression Where(System.Linq.Expressions.Expression> predicate); + ServiceStack.OrmLite.IUntypedSqlExpression Where(System.Linq.Expressions.Expression> predicate); + string WhereExpression { get; set; } + bool WhereStatementWithoutWhereString { get; set; } + } + + // Generated from `ServiceStack.OrmLite.IndexFieldsCacheKey` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IndexFieldsCacheKey + { + public ServiceStack.OrmLite.IOrmLiteDialectProvider Dialect { get => throw null; set => throw null; } + public override bool Equals(object obj) => throw null; + public System.Collections.Generic.List Fields { get => throw null; set => throw null; } + public override int GetHashCode() => throw null; + public IndexFieldsCacheKey(System.Data.IDataReader reader, ServiceStack.OrmLite.ModelDefinition modelDefinition, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; + public ServiceStack.OrmLite.ModelDefinition ModelDefinition { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.JoinFormatDelegate` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate string JoinFormatDelegate(ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, string joinExpr); + + // Generated from `ServiceStack.OrmLite.LowercaseUnderscoreNamingStrategy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LowercaseUnderscoreNamingStrategy : ServiceStack.OrmLite.OrmLiteNamingStrategyBase + { + public override string GetColumnName(string name) => throw null; + public override string GetTableName(string name) => throw null; + public LowercaseUnderscoreNamingStrategy() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Messages` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Messages + { + public const string LegacyApi = default; + } + + // Generated from `ServiceStack.OrmLite.ModelDefinition` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ModelDefinition + { + public void AfterInit() => throw null; + public string Alias { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition[] AllFieldDefinitionsArray { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition AssertFieldDefinition(string fieldName) => throw null; + public ServiceStack.OrmLite.FieldDefinition AssertFieldDefinition(string fieldName, System.Func sanitizeFieldName) => throw null; + public ServiceStack.OrmLite.FieldDefinition[] AutoIdFields { get => throw null; set => throw null; } + public System.Collections.Generic.List CompositeIndexes { get => throw null; set => throw null; } + public System.Collections.Generic.List FieldDefinitions { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition[] FieldDefinitionsArray { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition[] FieldDefinitionsWithAliases { get => throw null; set => throw null; } + public System.Collections.Generic.List GetAutoIdFieldDefinitions() => throw null; + public ServiceStack.OrmLite.FieldDefinition GetFieldDefinition(System.Func predicate) => throw null; + public ServiceStack.OrmLite.FieldDefinition GetFieldDefinition(string fieldName) => throw null; + public ServiceStack.OrmLite.FieldDefinition GetFieldDefinition(string fieldName, System.Func sanitizeFieldName) => throw null; + public ServiceStack.OrmLite.FieldDefinition GetFieldDefinition(System.Linq.Expressions.Expression> field) => throw null; + public System.Collections.Generic.Dictionary GetFieldDefinitionMap(System.Func sanitizeFieldName) => throw null; + public ServiceStack.OrmLite.FieldDefinition[] GetOrderedFieldDefinitions(System.Collections.Generic.ICollection fieldNames, System.Func sanitizeFieldName = default(System.Func)) => throw null; + public object GetPrimaryKey(object instance) => throw null; + public string GetQuotedName(string fieldName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + public bool HasAnyReferences(System.Collections.Generic.IEnumerable fieldNames) => throw null; + public bool HasAutoIncrementId { get => throw null; } + public bool HasSequenceAttribute { get => throw null; } + public System.Collections.Generic.List IgnoredFieldDefinitions { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition[] IgnoredFieldDefinitionsArray { get => throw null; set => throw null; } + public bool IsInSchema { get => throw null; } + public bool IsRefField(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public bool IsReference(string fieldName) => throw null; + public ModelDefinition() => throw null; + public string ModelName { get => throw null; } + public System.Type ModelType { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string PostCreateTableSql { get => throw null; set => throw null; } + public string PostDropTableSql { get => throw null; set => throw null; } + public string PreCreateTableSql { get => throw null; set => throw null; } + public string PreDropTableSql { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition PrimaryKey { get => throw null; } + public ServiceStack.OrmLite.FieldDefinition[] ReferenceFieldDefinitionsArray { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet ReferenceFieldNames { get => throw null; set => throw null; } + public ServiceStack.OrmLite.FieldDefinition RowVersion { get => throw null; set => throw null; } + public const string RowVersionName = default; + public string Schema { get => throw null; set => throw null; } + public override string ToString() => throw null; + public System.Collections.Generic.List UniqueConstraints { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.ModelDefinition<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ModelDefinition + { + public static ServiceStack.OrmLite.ModelDefinition Definition { get => throw null; } + public static string PrimaryKeyName { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.NativeValueOrmLiteConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class NativeValueOrmLiteConverter : ServiceStack.OrmLite.OrmLiteConverter + { + protected NativeValueOrmLiteConverter() => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.ObjectRow` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct ObjectRow : ServiceStack.OrmLite.IDynamicRow, ServiceStack.OrmLite.IDynamicRow + { + public object Fields { get => throw null; } + // Stub generator skipped constructor + public ObjectRow(System.Type type, object fields) => throw null; + public System.Type Type { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.OnFkOption` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum OnFkOption + { + Cascade, + NoAction, + Restrict, + SetDefault, + SetNull, + } + + // Generated from `ServiceStack.OrmLite.OrmLiteCommand` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteCommand : ServiceStack.Data.IHasDbCommand, ServiceStack.OrmLite.IHasDialectProvider, System.Data.IDbCommand, System.IDisposable + { + public void Cancel() => throw null; + public string CommandText { get => throw null; set => throw null; } + public int CommandTimeout { get => throw null; set => throw null; } + public System.Data.CommandType CommandType { get => throw null; set => throw null; } + public System.Data.IDbConnection Connection { get => throw null; set => throw null; } + public System.Guid ConnectionId { get => throw null; } + public System.Data.IDbDataParameter CreateParameter() => throw null; + public System.Data.IDbCommand DbCommand { get => throw null; } + public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } + public void Dispose() => throw null; + public int ExecuteNonQuery() => throw null; + public System.Data.IDataReader ExecuteReader() => throw null; + public System.Data.IDataReader ExecuteReader(System.Data.CommandBehavior behavior) => throw null; + public object ExecuteScalar() => throw null; + public bool IsDisposed { get => throw null; set => throw null; } + public OrmLiteCommand(ServiceStack.OrmLite.OrmLiteConnection dbConn, System.Data.IDbCommand dbCmd) => throw null; + public System.Data.IDataParameterCollection Parameters { get => throw null; } + public void Prepare() => throw null; + public System.Data.IDbTransaction Transaction { get => throw null; set => throw null; } + public System.Data.UpdateRowSource UpdatedRowSource { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.OrmLiteConfig` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteConfig + { + public static System.Action AfterExecFilter { get => throw null; set => throw null; } + public static System.Action BeforeExecFilter { get => throw null; set => throw null; } + public static void ClearCache() => throw null; + public static int CommandTimeout { get => throw null; set => throw null; } + public static bool DeoptimizeReader { get => throw null; set => throw null; } + public static ServiceStack.OrmLite.IOrmLiteDialectProvider Dialect(this System.Data.IDbCommand dbCmd) => throw null; + public static ServiceStack.OrmLite.IOrmLiteDialectProvider Dialect(this System.Data.IDbConnection db) => throw null; + public static ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } + public static bool DisableColumnGuessFallback { get => throw null; set => throw null; } + public static System.Action ExceptionFilter { get => throw null; set => throw null; } + public static ServiceStack.OrmLite.IOrmLiteExecFilter ExecFilter { get => throw null; set => throw null; } + public static ServiceStack.OrmLite.IOrmLiteDialectProvider GetDialectProvider(this System.Data.IDbCommand dbCmd) => throw null; + public static ServiceStack.OrmLite.IOrmLiteDialectProvider GetDialectProvider(this System.Data.IDbConnection db) => throw null; + public static ServiceStack.OrmLite.IOrmLiteExecFilter GetExecFilter(this System.Data.IDbCommand dbCmd) => throw null; + public static ServiceStack.OrmLite.IOrmLiteExecFilter GetExecFilter(this System.Data.IDbConnection db) => throw null; + public static ServiceStack.OrmLite.IOrmLiteExecFilter GetExecFilter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + public static ServiceStack.OrmLite.ModelDefinition GetModelMetadata(this System.Type modelType) => throw null; + public const string IdField = default; + public static bool IncludeTablePrefixes { get => throw null; set => throw null; } + public static System.Action InsertFilter { get => throw null; set => throw null; } + public static bool IsCaseInsensitive { get => throw null; set => throw null; } + public static System.Func LoadReferenceSelectFilter { get => throw null; set => throw null; } + public static System.Func OnDbNullFilter { get => throw null; set => throw null; } + public static System.Action OnModelDefinitionInit { get => throw null; set => throw null; } + public static System.Data.IDbConnection OpenDbConnection(this string dbConnectionStringOrFilePath) => throw null; + public static System.Data.IDbConnection OpenReadOnlyDbConnection(this string dbConnectionStringOrFilePath) => throw null; + public static System.Func ParamNameFilter { get => throw null; set => throw null; } + public static System.Action PopulatedObjectFilter { get => throw null; set => throw null; } + public static void ResetLogFactory(ServiceStack.Logging.ILogFactory logFactory = default(ServiceStack.Logging.ILogFactory)) => throw null; + public static ServiceStack.OrmLite.IOrmLiteResultsFilter ResultsFilter { get => throw null; set => throw null; } + public static System.Func SanitizeFieldNameForParamNameFn; + public static void SetCommandTimeout(this System.Data.IDbConnection db, int? commandTimeout) => throw null; + public static void SetLastCommandText(this System.Data.IDbConnection db, string sql) => throw null; + public static bool SkipForeignKeys { get => throw null; set => throw null; } + public static System.Action SqlExpressionInitFilter { get => throw null; set => throw null; } + public static System.Action SqlExpressionSelectFilter { get => throw null; set => throw null; } + public static System.Func StringFilter { get => throw null; set => throw null; } + public static bool StripUpperInLike { get => throw null; set => throw null; } + public static bool ThrowOnError { get => throw null; set => throw null; } + public static System.Data.IDbConnection ToDbConnection(this string dbConnectionStringOrFilePath) => throw null; + public static System.Data.IDbConnection ToDbConnection(this string dbConnectionStringOrFilePath, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + public static System.Action UpdateFilter { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.OrmLiteConflictResolutions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteConflictResolutions + { + public static void OnConflict(this System.Data.IDbCommand dbCmd, string conflictResolution) => throw null; + public static void OnConflictIgnore(this System.Data.IDbCommand dbCmd) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteConnection` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteConnection : ServiceStack.Data.IHasDbConnection, ServiceStack.Data.IHasDbTransaction, ServiceStack.OrmLite.IHasDialectProvider, System.Data.IDbConnection, System.IDisposable + { + public bool AutoDisposeConnection { get => throw null; set => throw null; } + public System.Data.IDbTransaction BeginTransaction() => throw null; + public System.Data.IDbTransaction BeginTransaction(System.Data.IsolationLevel isolationLevel) => throw null; + public void ChangeDatabase(string databaseName) => throw null; + public void Close() => throw null; + public int? CommandTimeout { get => throw null; set => throw null; } + public System.Guid ConnectionId { get => throw null; set => throw null; } + public string ConnectionString { get => throw null; set => throw null; } + public int ConnectionTimeout { get => throw null; } + public System.Data.IDbCommand CreateCommand() => throw null; + public string Database { get => throw null; } + public System.Data.IDbConnection DbConnection { get => throw null; } + public System.Data.IDbTransaction DbTransaction { get => throw null; } + public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } + public void Dispose() => throw null; + public ServiceStack.OrmLite.OrmLiteConnectionFactory Factory; + public string LastCommandText { get => throw null; set => throw null; } + public void Open() => throw null; + public System.Threading.Tasks.Task OpenAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public OrmLiteConnection(ServiceStack.OrmLite.OrmLiteConnectionFactory factory) => throw null; + public System.Data.ConnectionState State { get => throw null; } + public System.Data.IDbTransaction Transaction { get => throw null; set => throw null; } + public static explicit operator System.Data.Common.DbConnection(ServiceStack.OrmLite.OrmLiteConnection dbConn) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteConnectionFactory` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteConnectionFactory : ServiceStack.Data.IDbConnectionFactory, ServiceStack.Data.IDbConnectionFactoryExtended + { + public System.Data.IDbCommand AlwaysReturnCommand { get => throw null; set => throw null; } + public System.Data.IDbTransaction AlwaysReturnTransaction { get => throw null; set => throw null; } + public bool AutoDisposeConnection { get => throw null; set => throw null; } + public System.Func ConnectionFilter { get => throw null; set => throw null; } + public string ConnectionString { get => throw null; set => throw null; } + public virtual System.Data.IDbConnection CreateDbConnection() => throw null; + public static System.Data.IDbConnection CreateDbConnection(string namedConnection) => throw null; + public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary DialectProviders { get => throw null; } + public static System.Collections.Generic.Dictionary NamedConnections { get => throw null; } + public System.Action OnDispose { get => throw null; set => throw null; } + public virtual System.Data.IDbConnection OpenDbConnection() => throw null; + public virtual System.Data.IDbConnection OpenDbConnection(string namedConnection) => throw null; + public virtual System.Threading.Tasks.Task OpenDbConnectionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task OpenDbConnectionAsync(string namedConnection, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Data.IDbConnection OpenDbConnectionString(string connectionString) => throw null; + public virtual System.Data.IDbConnection OpenDbConnectionString(string connectionString, string providerName) => throw null; + public virtual System.Threading.Tasks.Task OpenDbConnectionStringAsync(string connectionString, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task OpenDbConnectionStringAsync(string connectionString, string providerName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public OrmLiteConnectionFactory() => throw null; + public OrmLiteConnectionFactory(string connectionString) => throw null; + public OrmLiteConnectionFactory(string connectionString, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + public OrmLiteConnectionFactory(string connectionString, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, bool setGlobalDialectProvider) => throw null; + public virtual void RegisterConnection(string namedConnection, ServiceStack.OrmLite.OrmLiteConnectionFactory connectionFactory) => throw null; + public virtual void RegisterConnection(string namedConnection, string connectionString, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + public virtual void RegisterDialectProvider(string providerName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteConnectionFactoryExtensions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteConnectionFactoryExtensions + { + public static System.Guid GetConnectionId(this System.Data.IDbCommand dbCmd) => throw null; + public static System.Guid GetConnectionId(this System.Data.IDbConnection db) => throw null; + public static ServiceStack.OrmLite.IOrmLiteDialectProvider GetDialectProvider(this ServiceStack.Data.IDbConnectionFactory connectionFactory, ServiceStack.ConnectionInfo dbInfo) => throw null; + public static ServiceStack.OrmLite.IOrmLiteDialectProvider GetDialectProvider(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string providerName = default(string), string namedConnection = default(string)) => throw null; + public static System.Data.IDbConnection Open(this ServiceStack.Data.IDbConnectionFactory connectionFactory) => throw null; + public static System.Data.IDbConnection Open(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string namedConnection) => throw null; + public static System.Threading.Tasks.Task OpenAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task OpenAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string namedConnection, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Data.IDbConnection OpenDbConnection(this ServiceStack.Data.IDbConnectionFactory dbFactory, ServiceStack.ConnectionInfo connInfo) => throw null; + public static System.Data.IDbConnection OpenDbConnection(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string namedConnection) => throw null; + public static System.Threading.Tasks.Task OpenDbConnectionAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task OpenDbConnectionAsync(this ServiceStack.Data.IDbConnectionFactory dbFactory, ServiceStack.ConnectionInfo connInfo) => throw null; + public static System.Threading.Tasks.Task OpenDbConnectionAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string namedConnection, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Data.IDbConnection OpenDbConnectionString(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string connectionString) => throw null; + public static System.Data.IDbConnection OpenDbConnectionString(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string connectionString, string providerName) => throw null; + public static System.Threading.Tasks.Task OpenDbConnectionStringAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string connectionString, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task OpenDbConnectionStringAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string connectionString, string providerName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void RegisterConnection(this ServiceStack.Data.IDbConnectionFactory dbFactory, string namedConnection, ServiceStack.OrmLite.OrmLiteConnectionFactory connectionFactory) => throw null; + public static void RegisterConnection(this ServiceStack.Data.IDbConnectionFactory dbFactory, string namedConnection, string connectionString, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + public static System.Data.IDbCommand ToDbCommand(this System.Data.IDbCommand dbCmd) => throw null; + public static System.Data.IDbConnection ToDbConnection(this System.Data.IDbConnection db) => throw null; + public static System.Data.IDbTransaction ToDbTransaction(this System.Data.IDbTransaction dbTrans) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteConnectionUtils` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteConnectionUtils + { + public static System.Data.IDbTransaction GetTransaction(this System.Data.IDbConnection db) => throw null; + public static bool InTransaction(this System.Data.IDbConnection db) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteContext` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteContext + { + public void ClearItems() => throw null; + public static System.Collections.IDictionary ContextItems; + public static ServiceStack.OrmLite.OrmLiteState CreateNewState() => throw null; + public T GetOrCreate(System.Func createFn) => throw null; + public static ServiceStack.OrmLite.OrmLiteState GetOrCreateState() => throw null; + public static ServiceStack.OrmLite.OrmLiteContext Instance; + public virtual System.Collections.IDictionary Items { get => throw null; set => throw null; } + public OrmLiteContext() => throw null; + public static ServiceStack.OrmLite.OrmLiteState OrmLiteState { get => throw null; set => throw null; } + public static bool UseThreadStatic; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class OrmLiteConverter : ServiceStack.OrmLite.IOrmLiteConverter + { + public abstract string ColumnDefinition { get; } + public virtual System.Data.DbType DbType { get => throw null; } + public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } + public virtual object FromDbValue(System.Type fieldType, object value) => throw null; + public virtual object GetValue(System.Data.IDataReader reader, int columnIndex, object[] values) => throw null; + public virtual void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType) => throw null; + public static ServiceStack.Logging.ILog Log; + protected OrmLiteConverter() => throw null; + public virtual object ToDbValue(System.Type fieldType, object value) => throw null; + public virtual string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteConverterExtensions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteConverterExtensions + { + public static object ConvertNumber(this ServiceStack.OrmLite.IOrmLiteConverter converter, System.Type toIntegerType, object value) => throw null; + public static object ConvertNumber(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Type toIntegerType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteDataParameter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteDataParameter : System.Data.IDataParameter, System.Data.IDbDataParameter + { + public System.Data.DbType DbType { get => throw null; set => throw null; } + public System.Data.ParameterDirection Direction { get => throw null; set => throw null; } + public bool IsNullable { get => throw null; set => throw null; } + public OrmLiteDataParameter() => throw null; + public string ParameterName { get => throw null; set => throw null; } + public System.Byte Precision { get => throw null; set => throw null; } + public System.Byte Scale { get => throw null; set => throw null; } + public int Size { get => throw null; set => throw null; } + public string SourceColumn { get => throw null; set => throw null; } + public System.Data.DataRowVersion SourceVersion { get => throw null; set => throw null; } + public object Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.OrmLiteDefaultNamingStrategy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteDefaultNamingStrategy : ServiceStack.OrmLite.OrmLiteNamingStrategyBase + { + public OrmLiteDefaultNamingStrategy() => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteDialectProviderBase<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class OrmLiteDialectProviderBase : ServiceStack.OrmLite.IOrmLiteDialectProvider where TDialect : ServiceStack.OrmLite.IOrmLiteDialectProvider + { + protected System.Data.IDbDataParameter AddParameter(System.Data.IDbCommand cmd, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public virtual void AppendFieldCondition(System.Text.StringBuilder sqlFilter, ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDbCommand cmd) => throw null; + public virtual void AppendNullFieldCondition(System.Text.StringBuilder sqlFilter, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + protected virtual void ApplyTags(System.Text.StringBuilder sqlBuilder, System.Collections.Generic.ISet tags) => throw null; + public string AutoIncrementDefinition; + public virtual string ColumnNameOnly(string columnExpr) => throw null; + public System.Collections.Generic.Dictionary Converters; + public abstract System.Data.IDbConnection CreateConnection(string filePath, System.Collections.Generic.Dictionary options); + public abstract System.Data.IDbDataParameter CreateParam(); + public System.Data.IDbCommand CreateParameterizedDeleteStatement(System.Data.IDbConnection connection, object objWithProperties) => throw null; + public System.Func> CreateTableFieldsStrategy { get => throw null; set => throw null; } + public ServiceStack.OrmLite.Converters.DecimalConverter DecimalConverter { get => throw null; } + public string DefaultValueFormat; + public virtual void DisableForeignKeysCheck(System.Data.IDbCommand cmd) => throw null; + public virtual System.Threading.Tasks.Task DisableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void DisableIdentityInsert(System.Data.IDbCommand cmd) => throw null; + public virtual System.Threading.Tasks.Task DisableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual bool DoesColumnExist(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string)) => throw null; + public virtual System.Threading.Tasks.Task DoesColumnExistAsync(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public abstract bool DoesSchemaExist(System.Data.IDbCommand dbCmd, string schemaName); + public virtual System.Threading.Tasks.Task DoesSchemaExistAsync(System.Data.IDbCommand dbCmd, string schema, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual bool DoesSequenceExist(System.Data.IDbCommand dbCmd, string sequenceName) => throw null; + public virtual System.Threading.Tasks.Task DoesSequenceExistAsync(System.Data.IDbCommand dbCmd, string sequenceName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual bool DoesTableExist(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string)) => throw null; + public virtual bool DoesTableExist(System.Data.IDbConnection db, string tableName, string schema = default(string)) => throw null; + public virtual System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbConnection db, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void DropColumn(System.Data.IDbConnection db, System.Type modelType, string columnName) => throw null; + public virtual void EnableForeignKeysCheck(System.Data.IDbCommand cmd) => throw null; + public virtual System.Threading.Tasks.Task EnableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void EnableIdentityInsert(System.Data.IDbCommand cmd) => throw null; + public virtual System.Threading.Tasks.Task EnableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.OrmLite.Converters.EnumConverter EnumConverter { get => throw null; set => throw null; } + public virtual string EscapeWildcards(string value) => throw null; + public ServiceStack.OrmLite.IOrmLiteExecFilter ExecFilter { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task ExecuteScalarAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual string FkOptionToString(ServiceStack.OrmLite.OnFkOption option) => throw null; + public virtual object FromDbRowVersion(System.Type fieldType, object value) => throw null; + public virtual object FromDbValue(object value, System.Type type) => throw null; + public virtual string GenerateComment(string text) => throw null; + public virtual string GetAutoIdDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public virtual string GetCheckConstraint(ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public virtual string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public virtual string GetColumnNames(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public virtual ServiceStack.OrmLite.SelectItem[] GetColumnNames(ServiceStack.OrmLite.ModelDefinition modelDef, string tablePrefix) => throw null; + public string GetColumnTypeDefinition(System.Type columnType, int? fieldLength, int? scale) => throw null; + protected virtual string GetCompositeIndexName(ServiceStack.DataAnnotations.CompositeIndexAttribute compositeIndex, ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + protected virtual string GetCompositeIndexNameWithSchema(ServiceStack.DataAnnotations.CompositeIndexAttribute compositeIndex, ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public ServiceStack.OrmLite.IOrmLiteConverter GetConverter(System.Type type) => throw null; + public virtual ServiceStack.OrmLite.IOrmLiteConverter GetConverterBestMatch(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public ServiceStack.OrmLite.IOrmLiteConverter GetConverterBestMatch(System.Type type) => throw null; + public virtual string GetDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public string GetDefaultValue(System.Type tableType, string fieldName) => throw null; + public virtual string GetDropForeignKeyConstraints(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public System.Collections.Generic.Dictionary GetFieldDefinitionMap(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public static System.Collections.Generic.IEnumerable GetFieldDefinitions(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public object GetFieldValue(ServiceStack.OrmLite.FieldDefinition fieldDef, object value) => throw null; + public object GetFieldValue(System.Type fieldType, object value) => throw null; + public virtual string GetForeignKeyOnDeleteClause(ServiceStack.OrmLite.ForeignKeyConstraint foreignKey) => throw null; + public virtual string GetForeignKeyOnUpdateClause(ServiceStack.OrmLite.ForeignKeyConstraint foreignKey) => throw null; + protected virtual string GetIndexName(bool isUnique, string modelName, string fieldName) => throw null; + protected virtual object GetInsertDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public virtual ServiceStack.OrmLite.FieldDefinition[] GetInsertFieldDefinitions(ServiceStack.OrmLite.ModelDefinition modelDef, System.Collections.Generic.ICollection insertFields) => throw null; + public virtual System.Int64 GetLastInsertId(System.Data.IDbCommand dbCmd) => throw null; + public virtual string GetLastInsertIdSqlSuffix() => throw null; + public virtual string GetLoadChildrenSubSelect(ServiceStack.OrmLite.SqlExpression expr) => throw null; + protected static ServiceStack.OrmLite.ModelDefinition GetModel(System.Type modelType) => throw null; + public virtual object GetParamValue(object value, System.Type fieldType) => throw null; + public virtual string GetQuotedColumnName(string columnName) => throw null; + public virtual string GetQuotedName(string name) => throw null; + public virtual string GetQuotedName(string name, string schema) => throw null; + public virtual string GetQuotedTableName(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public virtual string GetQuotedTableName(string tableName, string schema = default(string)) => throw null; + public virtual string GetQuotedTableName(string tableName, string schema, bool useStrategy) => throw null; + public virtual string GetQuotedValue(object value, System.Type fieldType) => throw null; + public virtual string GetQuotedValue(string paramValue) => throw null; + protected virtual object GetQuotedValueOrDbNull(ServiceStack.OrmLite.FieldDefinition fieldDef, object obj) => throw null; + public virtual string GetRowVersionColumn(ServiceStack.OrmLite.FieldDefinition field, string tablePrefix = default(string)) => throw null; + public virtual ServiceStack.OrmLite.SelectItem GetRowVersionSelectColumn(ServiceStack.OrmLite.FieldDefinition field, string tablePrefix = default(string)) => throw null; + public virtual string GetSchemaName(string schema) => throw null; + public virtual string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public virtual string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef, bool useStrategy) => throw null; + public virtual string GetTableName(string table, string schema = default(string)) => throw null; + public virtual string GetTableName(string table, string schema, bool useStrategy) => throw null; + protected virtual string GetUniqueConstraintName(ServiceStack.DataAnnotations.UniqueConstraintAttribute constraint, string tableName) => throw null; + public virtual string GetUniqueConstraints(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + protected virtual object GetValue(ServiceStack.OrmLite.FieldDefinition fieldDef, object obj) => throw null; + public object GetValue(System.Data.IDataReader reader, int columnIndex, System.Type type) => throw null; + protected virtual object GetValueOrDbNull(ServiceStack.OrmLite.FieldDefinition fieldDef, object obj) => throw null; + public virtual int GetValues(System.Data.IDataReader reader, object[] values) => throw null; + public virtual bool HasInsertReturnValues(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + protected void InitColumnTypeMap() => throw null; + public virtual void InitConnection(System.Data.IDbConnection dbConn) => throw null; + public virtual void InitDbParam(System.Data.IDbDataParameter dbParam, System.Type columnType) => throw null; + public virtual void InitQueryParam(System.Data.IDbDataParameter param) => throw null; + public virtual void InitUpdateParam(System.Data.IDbDataParameter param) => throw null; + public virtual System.Threading.Tasks.Task InsertAndGetLastInsertIdAsync(System.Data.IDbCommand dbCmd, System.Threading.CancellationToken token) => throw null; + public virtual bool IsFullSelectStatement(string sql) => throw null; + protected static ServiceStack.Logging.ILog Log; + public virtual string MergeParamsIntoSql(string sql, System.Collections.Generic.IEnumerable dbParams) => throw null; + public ServiceStack.OrmLite.INamingStrategy NamingStrategy { get => throw null; set => throw null; } + public System.Action OnOpenConnection { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task OpenAsync(System.Data.IDbConnection db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected OrmLiteDialectProviderBase() => throw null; + public System.Func ParamNameFilter { get => throw null; set => throw null; } + public string ParamString { get => throw null; set => throw null; } + public virtual void PrepareInsertRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args) => throw null; + public virtual bool PrepareParameterizedDeleteStatement(System.Data.IDbCommand cmd, System.Collections.Generic.IDictionary deleteFieldValues) => throw null; + public virtual void PrepareParameterizedInsertStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection), System.Func shouldInclude = default(System.Func)) => throw null; + public virtual bool PrepareParameterizedUpdateStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)) => throw null; + public virtual void PrepareStoredProcedureStatement(System.Data.IDbCommand cmd, T obj) => throw null; + public virtual void PrepareUpdateRowAddStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args, string sqlFilter) => throw null; + public virtual void PrepareUpdateRowStatement(System.Data.IDbCommand dbCmd, object objWithProperties, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)) => throw null; + public virtual void PrepareUpdateRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args, string sqlFilter) => throw null; + public virtual string QuoteIfRequired(string name) => throw null; + public virtual System.Threading.Tasks.Task ReadAsync(System.Data.IDataReader reader, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task ReaderEach(System.Data.IDataReader reader, System.Action fn, Return source, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task> ReaderEach(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task ReaderRead(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.OrmLite.Converters.ReferenceTypeConverter ReferenceTypeConverter { get => throw null; set => throw null; } + public void RegisterConverter(ServiceStack.OrmLite.IOrmLiteConverter converter) => throw null; + public void RemoveConverter() => throw null; + public virtual string ResolveFragment(string sql) => throw null; + public ServiceStack.OrmLite.Converters.RowVersionConverter RowVersionConverter { get => throw null; set => throw null; } + public virtual string SanitizeFieldNameForParamName(string fieldName) => throw null; + public virtual string SelectIdentitySql { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List SequenceList(System.Type tableType) => throw null; + public virtual System.Threading.Tasks.Task> SequenceListAsync(System.Type tableType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void SetParameter(ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDbDataParameter p) => throw null; + protected virtual void SetParameterSize(ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDataParameter p) => throw null; + public virtual void SetParameterValue(ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDataParameter p, object obj) => throw null; + public virtual void SetParameterValues(System.Data.IDbCommand dbCmd, object obj) => throw null; + public virtual bool ShouldQuote(string name) => throw null; + public virtual bool ShouldQuoteValue(System.Type fieldType) => throw null; + protected virtual bool ShouldSkipInsert(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public virtual string SqlBool(bool value) => throw null; + public virtual string SqlCast(object fieldOrValue, string castAs) => throw null; + public virtual string SqlConcat(System.Collections.Generic.IEnumerable args) => throw null; + public virtual string SqlConflict(string sql, string conflictResolution) => throw null; + public virtual string SqlCurrency(string fieldOrValue) => throw null; + public virtual string SqlCurrency(string fieldOrValue, string currencySymbol) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SqlExpression() => throw null; + public virtual string SqlLimit(int? offset = default(int?), int? rows = default(int?)) => throw null; + public virtual string SqlRandom { get => throw null; } + public ServiceStack.OrmLite.Converters.StringConverter StringConverter { get => throw null; } + public ServiceStack.Text.IStringSerializer StringSerializer { get => throw null; set => throw null; } + public virtual string ToAddColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public virtual string ToAddForeignKeyStatement(System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> foreignField, ServiceStack.OrmLite.OnFkOption onUpdate, ServiceStack.OrmLite.OnFkOption onDelete, string foreignKeyName = default(string)) => throw null; + public virtual string ToAlterColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public virtual string ToChangeColumnNameStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef, string oldColumnName) => throw null; + protected virtual string ToCreateIndexStatement(bool isUnique, string indexName, ServiceStack.OrmLite.ModelDefinition modelDef, string fieldName, bool isCombined = default(bool), ServiceStack.OrmLite.FieldDefinition fieldDef = default(ServiceStack.OrmLite.FieldDefinition)) => throw null; + public virtual string ToCreateIndexStatement(System.Linq.Expressions.Expression> field, string indexName = default(string), bool unique = default(bool)) => throw null; + public virtual System.Collections.Generic.List ToCreateIndexStatements(System.Type tableType) => throw null; + public abstract string ToCreateSchemaStatement(string schemaName); + public virtual string ToCreateSequenceStatement(System.Type tableType, string sequenceName) => throw null; + public virtual System.Collections.Generic.List ToCreateSequenceStatements(System.Type tableType) => throw null; + public virtual string ToCreateTableStatement(System.Type tableType) => throw null; + public virtual object ToDbValue(object value, System.Type type) => throw null; + public virtual string ToDeleteStatement(System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; + protected virtual string ToDropColumnStatement(System.Type modelType, string columnName, ServiceStack.OrmLite.IOrmLiteDialectProvider provider) => throw null; + public virtual string ToExecuteProcedureStatement(object objWithProperties) => throw null; + public virtual string ToExistStatement(System.Type fromTableType, object objWithProperties, string sqlFilter, params object[] filterParams) => throw null; + public virtual string ToInsertRowStatement(System.Data.IDbCommand cmd, object objWithProperties, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)) => throw null; + public virtual string ToInsertStatement(System.Data.IDbCommand dbCmd, T item, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)) => throw null; + public virtual string ToPostCreateTableStatement(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public virtual string ToPostDropTableStatement(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public virtual string ToRowCountStatement(string innerSql) => throw null; + public virtual string ToSelectFromProcedureStatement(object fromObjWithProperties, System.Type outputModelType, string sqlFilter, params object[] filterParams) => throw null; + public virtual string ToSelectStatement(ServiceStack.OrmLite.QueryType queryType, ServiceStack.OrmLite.ModelDefinition modelDef, string selectExpression, string bodyExpression, string orderByExpression = default(string), int? offset = default(int?), int? rows = default(int?), System.Collections.Generic.ISet tags = default(System.Collections.Generic.ISet)) => throw null; + public virtual string ToSelectStatement(System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; + public virtual string ToTableNamesStatement(string schema) => throw null; + public virtual string ToTableNamesWithRowCountsStatement(bool live, string schema) => throw null; + public virtual string ToUpdateStatement(System.Data.IDbCommand dbCmd, T item, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)) => throw null; + public ServiceStack.OrmLite.Converters.ValueTypeConverter ValueTypeConverter { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Variables { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.OrmLiteDialectProviderExtensions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteDialectProviderExtensions + { + public static string FmtColumn(this string columnName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static string FmtTable(this string tableName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static object FromDbValue(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Data.IDataReader reader, int columnIndex, System.Type type) => throw null; + public static ServiceStack.OrmLite.IOrmLiteConverter GetConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; + public static ServiceStack.OrmLite.Converters.DateTimeConverter GetDateTimeConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; + public static ServiceStack.OrmLite.Converters.DecimalConverter GetDecimalConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; + public static string GetParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, int indexNo = default(int)) => throw null; + public static string GetParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string name) => throw null; + public static string GetParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string name, string format) => throw null; + public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, string fieldName) => throw null; + public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, string tableAlias, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, string tableAlias, string fieldName) => throw null; + public static ServiceStack.OrmLite.Converters.StringConverter GetStringConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; + public static bool HasConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Type type) => throw null; + public static void InitDbParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Data.IDbDataParameter dbParam, System.Type columnType) => throw null; + public static void InitDbParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Data.IDbDataParameter dbParam, System.Type columnType, object value) => throw null; + public static bool IsMySqlConnector(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; + public static string SqlSpread(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, params T[] values) => throw null; + public static string ToFieldName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string paramName) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteExecFilter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteExecFilter : ServiceStack.OrmLite.IOrmLiteExecFilter + { + public virtual System.Data.IDbCommand CreateCommand(System.Data.IDbConnection dbConn) => throw null; + public virtual void DisposeCommand(System.Data.IDbCommand dbCmd, System.Data.IDbConnection dbConn) => throw null; + public virtual void Exec(System.Data.IDbConnection dbConn, System.Action filter) => throw null; + public virtual System.Data.IDbCommand Exec(System.Data.IDbConnection dbConn, System.Func filter) => throw null; + public virtual System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func> filter) => throw null; + public virtual System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func filter) => throw null; + public virtual T Exec(System.Data.IDbConnection dbConn, System.Func filter) => throw null; + public virtual System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func> filter) => throw null; + public virtual System.Collections.Generic.IEnumerable ExecLazy(System.Data.IDbConnection dbConn, System.Func> filter) => throw null; + public OrmLiteExecFilter() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SqlExpression(System.Data.IDbConnection dbConn) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteNamingStrategyBase` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteNamingStrategyBase : ServiceStack.OrmLite.INamingStrategy + { + public virtual string ApplyNameRestrictions(string name) => throw null; + public virtual string GetColumnName(string name) => throw null; + public virtual string GetSchemaName(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public virtual string GetSchemaName(string name) => throw null; + public virtual string GetSequenceName(string modelName, string fieldName) => throw null; + public virtual string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public virtual string GetTableName(string name) => throw null; + public OrmLiteNamingStrategyBase() => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLitePersistenceProvider` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLitePersistenceProvider : ServiceStack.Data.IEntityStore, System.IDisposable + { + public System.Data.IDbConnection Connection { get => throw null; } + protected string ConnectionString { get => throw null; set => throw null; } + public void Delete(T entity) => throw null; + public void DeleteAll() => throw null; + public void DeleteById(object id) => throw null; + public void DeleteByIds(System.Collections.ICollection ids) => throw null; + public void Dispose() => throw null; + protected bool DisposeConnection; + public T GetById(object id) => throw null; + public System.Collections.Generic.IList GetByIds(System.Collections.ICollection ids) => throw null; + public OrmLitePersistenceProvider(System.Data.IDbConnection connection) => throw null; + public OrmLitePersistenceProvider(string connectionString) => throw null; + public T Store(T entity) => throw null; + public void StoreAll(System.Collections.Generic.IEnumerable entities) => throw null; + protected System.Data.IDbConnection connection; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteReadApi` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteReadApi + { + public static System.Collections.Generic.List Column(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; + public static System.Collections.Generic.List Column(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static System.Collections.Generic.List Column(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Collections.Generic.HashSet ColumnDistinct(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; + public static System.Collections.Generic.HashSet ColumnDistinct(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static System.Collections.Generic.HashSet ColumnDistinct(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Collections.Generic.IEnumerable ColumnLazy(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; + public static System.Collections.Generic.IEnumerable ColumnLazy(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static System.Collections.Generic.IEnumerable ColumnLazy(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Collections.Generic.Dictionary Dictionary(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; + public static System.Collections.Generic.Dictionary Dictionary(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static int ExecuteNonQuery(this System.Data.IDbConnection dbConn, string sql) => throw null; + public static int ExecuteNonQuery(this System.Data.IDbConnection dbConn, string sql, System.Action dbCmdFilter) => throw null; + public static int ExecuteNonQuery(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; + public static int ExecuteNonQuery(this System.Data.IDbConnection dbConn, string sql, object anonType) => throw null; + public static bool Exists(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> expression) => throw null; + public static bool Exists(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static bool Exists(this System.Data.IDbConnection dbConn, object anonType) => throw null; + public static bool Exists(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Collections.Generic.List> KeyValuePairs(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; + public static System.Collections.Generic.List> KeyValuePairs(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Int64 LastInsertId(this System.Data.IDbConnection dbConn) => throw null; + public static void LoadReferences(this System.Data.IDbConnection dbConn, T instance) => throw null; + public static T LoadSingleById(this System.Data.IDbConnection dbConn, object idValue, System.Linq.Expressions.Expression> include) => throw null; + public static T LoadSingleById(this System.Data.IDbConnection dbConn, object idValue, string[] include = default(string[])) => throw null; + public static System.Int64 LongScalar(this System.Data.IDbConnection dbConn) => throw null; + public static System.Collections.Generic.Dictionary> Lookup(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; + public static System.Collections.Generic.Dictionary> Lookup(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static System.Collections.Generic.Dictionary> Lookup(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static T Scalar(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; + public static T Scalar(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static T Scalar(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, string sql) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, string sql, object anonType) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Type fromTableType) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Type fromTableType, string sql, object anonType) => throw null; + public static System.Collections.Generic.List SelectByIds(this System.Data.IDbConnection dbConn, System.Collections.IEnumerable idValues) => throw null; + public static System.Collections.Generic.IEnumerable SelectLazy(this System.Data.IDbConnection dbConn) => throw null; + public static System.Collections.Generic.IEnumerable SelectLazy(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.IEnumerable SelectLazy(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Collections.Generic.List SelectNonDefaults(this System.Data.IDbConnection dbConn, T filter) => throw null; + public static System.Collections.Generic.List SelectNonDefaults(this System.Data.IDbConnection dbConn, string sql, T filter) => throw null; + public static T Single(this System.Data.IDbConnection dbConn, object anonType) => throw null; + public static T Single(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static T Single(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static T SingleById(this System.Data.IDbConnection dbConn, object idValue) => throw null; + public static T SingleWhere(this System.Data.IDbConnection dbConn, string name, object value) => throw null; + public static System.Collections.Generic.List SqlColumn(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; + public static System.Collections.Generic.List SqlColumn(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; + public static System.Collections.Generic.List SqlColumn(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static System.Collections.Generic.List SqlColumn(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; + public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, string sql, System.Action dbCmdFilter) => throw null; + public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; + public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Data.IDbCommand SqlProc(this System.Data.IDbConnection dbConn, string name, object inParams = default(object), bool excludeDefaults = default(bool)) => throw null; + public static System.Collections.Generic.List SqlProcedure(this System.Data.IDbConnection dbConn, object anonType) => throw null; + public static System.Collections.Generic.List SqlProcedure(this System.Data.IDbConnection dbConn, object anonType, string sqlFilter, params object[] filterParams) where TOutputModel : new() => throw null; + public static T SqlScalar(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; + public static T SqlScalar(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; + public static T SqlScalar(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static T SqlScalar(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Collections.Generic.List Where(this System.Data.IDbConnection dbConn, object anonType) => throw null; + public static System.Collections.Generic.List Where(this System.Data.IDbConnection dbConn, string name, object value) => throw null; + public static System.Collections.Generic.IEnumerable WhereLazy(this System.Data.IDbConnection dbConn, object anonType) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteReadApiAsync` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteReadApiAsync + { + public static System.Threading.Tasks.Task> ColumnAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ColumnAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ColumnAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ColumnDistinctAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ColumnDistinctAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ColumnDistinctAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> DictionaryAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> DictionaryAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> DictionaryAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExecuteNonQueryAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExecuteNonQueryAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExecuteNonQueryAsync(this System.Data.IDbConnection dbConn, string sql, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> KeyValuePairsAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> KeyValuePairsAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> KeyValuePairsAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task LoadReferencesAsync(this System.Data.IDbConnection dbConn, T instance, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task LoadSingleByIdAsync(this System.Data.IDbConnection dbConn, object idValue, System.Linq.Expressions.Expression> include, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task LoadSingleByIdAsync(this System.Data.IDbConnection dbConn, object idValue, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task LongScalarAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> LookupAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> LookupAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> LookupAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static T ScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, string sql, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Type fromTableType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Type fromTableType, string sqlFilter, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectByIdsAsync(this System.Data.IDbConnection dbConn, System.Collections.IEnumerable idValues, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectNonDefaultsAsync(this System.Data.IDbConnection dbConn, T filter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectNonDefaultsAsync(this System.Data.IDbConnection dbConn, string sql, T filter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleByIdAsync(this System.Data.IDbConnection dbConn, object idValue, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleWhereAsync(this System.Data.IDbConnection dbConn, string name, object value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlColumnAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlColumnAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlColumnAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlColumnAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, string sql, System.Action dbCmdFilter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SqlProcedureAsync(this System.Data.IDbConnection dbConn, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SqlScalarAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SqlScalarAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SqlScalarAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SqlScalarAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> WhereAsync(this System.Data.IDbConnection dbConn, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> WhereAsync(this System.Data.IDbConnection dbConn, string name, object value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteReadCommandExtensions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteReadCommandExtensions + { + public static System.Data.IDbDataParameter AddParam(this System.Data.IDbCommand dbCmd, string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?), int? size = default(int?), System.Action paramFilter = default(System.Action)) => throw null; + public static void ClearFilters(this System.Data.IDbCommand dbCmd) => throw null; + public static System.Data.IDbDataParameter CreateParam(this System.Data.IDbCommand dbCmd, string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?), int? size = default(int?)) => throw null; + public static ServiceStack.OrmLite.FieldDefinition GetRefFieldDef(this ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.ModelDefinition refModelDef, System.Type refType) => throw null; + public static ServiceStack.OrmLite.FieldDefinition GetRefFieldDefIfExists(this ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.ModelDefinition refModelDef) => throw null; + public static ServiceStack.OrmLite.FieldDefinition GetSelfRefFieldDefIfExists(this ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.ModelDefinition refModelDef, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static void LoadReferences(this System.Data.IDbCommand dbCmd, T instance, System.Collections.Generic.IEnumerable include = default(System.Collections.Generic.IEnumerable)) => throw null; + public static System.Int64 LongScalar(this System.Data.IDbCommand dbCmd) => throw null; + public static System.Data.IDbCommand SetFilters(this System.Data.IDbCommand dbCmd, object anonType) => throw null; + public const string UseDbConnectionExtensions = default; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteReadExpressionsApi` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteReadExpressionsApi + { + public static System.Int64 Count(this System.Data.IDbConnection dbConn) => throw null; + public static System.Int64 Count(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> expression) => throw null; + public static System.Int64 Count(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static void DisableForeignKeysCheck(this System.Data.IDbConnection dbConn) => throw null; + public static void EnableForeignKeysCheck(this System.Data.IDbConnection dbConn) => throw null; + public static void Exec(this System.Data.IDbConnection dbConn, System.Action filter) => throw null; + public static System.Data.IDbCommand Exec(this System.Data.IDbConnection dbConn, System.Func filter) => throw null; + public static System.Threading.Tasks.Task Exec(this System.Data.IDbConnection dbConn, System.Func> filter) => throw null; + public static System.Threading.Tasks.Task Exec(this System.Data.IDbConnection dbConn, System.Func filter) => throw null; + public static T Exec(this System.Data.IDbConnection dbConn, System.Func filter) => throw null; + public static System.Threading.Tasks.Task Exec(this System.Data.IDbConnection dbConn, System.Func> filter) => throw null; + public static System.Collections.Generic.IEnumerable ExecLazy(this System.Data.IDbConnection dbConn, System.Func> filter) => throw null; + public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn) => throw null; + public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, System.Action> options) => throw null; + public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.TableOptions tableOptions) => throw null; + public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.TableOptions tableOptions, System.Action> options) => throw null; + public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, string fromExpression) => throw null; + public static string GetQuotedTableName(this System.Data.IDbConnection db) => throw null; + public static System.Data.DataTable GetSchemaTable(this System.Data.IDbConnection dbConn, string sql) => throw null; + public static ServiceStack.OrmLite.ColumnSchema[] GetTableColumns(this System.Data.IDbConnection dbConn, System.Type type) => throw null; + public static ServiceStack.OrmLite.ColumnSchema[] GetTableColumns(this System.Data.IDbConnection dbConn, string sql) => throw null; + public static ServiceStack.OrmLite.ColumnSchema[] GetTableColumns(this System.Data.IDbConnection dbConn) => throw null; + public static string GetTableName(this System.Data.IDbConnection db) => throw null; + public static System.Collections.Generic.List GetTableNames(this System.Data.IDbConnection db) => throw null; + public static System.Collections.Generic.List GetTableNames(this System.Data.IDbConnection db, string schema) => throw null; + public static System.Threading.Tasks.Task> GetTableNamesAsync(this System.Data.IDbConnection db) => throw null; + public static System.Threading.Tasks.Task> GetTableNamesAsync(this System.Data.IDbConnection db, string schema) => throw null; + public static System.Collections.Generic.List> GetTableNamesWithRowCounts(this System.Data.IDbConnection db, bool live = default(bool), string schema = default(string)) => throw null; + public static System.Threading.Tasks.Task>> GetTableNamesWithRowCountsAsync(this System.Data.IDbConnection db, bool live = default(bool), string schema = default(string)) => throw null; + public static ServiceStack.OrmLite.JoinFormatDelegate JoinAlias(this System.Data.IDbConnection db, string alias) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Linq.Expressions.Expression> include) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Collections.Generic.IEnumerable include) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] include = default(string[])) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, System.Linq.Expressions.Expression> include) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, string[] include = default(string[])) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Linq.Expressions.Expression> include) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Collections.Generic.IEnumerable include) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression = default(ServiceStack.OrmLite.SqlExpression), string[] include = default(string[])) => throw null; + public static System.Data.IDbCommand OpenCommand(this System.Data.IDbConnection dbConn) => throw null; + public static System.Data.IDbTransaction OpenTransaction(this System.Data.IDbConnection dbConn) => throw null; + public static System.Data.IDbTransaction OpenTransaction(this System.Data.IDbConnection dbConn, System.Data.IsolationLevel isolationLevel) => throw null; + public static System.Data.IDbTransaction OpenTransactionIfNotExists(this System.Data.IDbConnection dbConn) => throw null; + public static System.Data.IDbTransaction OpenTransactionIfNotExists(this System.Data.IDbConnection dbConn, System.Data.IsolationLevel isolationLevel) => throw null; + public static System.Int64 RowCount(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; + public static System.Int64 RowCount(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; + public static System.Int64 RowCount(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static TKey Scalar(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; + public static TKey Scalar(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> predicate) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression expression, object anonType = default(object)) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; + public static T Single(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate) => throw null; + public static T Single(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression expression) => throw null; + public static T Single(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static ServiceStack.OrmLite.TableOptions TableAlias(this System.Data.IDbConnection db, string alias) => throw null; + public static ServiceStack.OrmLite.SqlExpression TagWith(this ServiceStack.OrmLite.SqlExpression expression, string tag) => throw null; + public static ServiceStack.OrmLite.SqlExpression TagWithCallSite(this ServiceStack.OrmLite.SqlExpression expression, string filePath = default(string), int lineNumber = default(int)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteReadExpressionsApiAsync` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteReadExpressionsApiAsync + { + public static System.Threading.Tasks.Task CountAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task CountAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task CountAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DisableForeignKeysCheckAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task EnableForeignKeysCheckAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetSchemaTableAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetTableColumnsAsync(this System.Data.IDbConnection dbConn, System.Type type, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetTableColumnsAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetTableColumnsAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Linq.Expressions.Expression> include) => throw null; + public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Collections.Generic.IEnumerable include, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, System.Linq.Expressions.Expression> include) => throw null; + public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Collections.Generic.IEnumerable include, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task RowCountAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task RowCountAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteResultsFilter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteResultsFilter : ServiceStack.OrmLite.IOrmLiteResultsFilter, System.IDisposable + { + public System.Collections.IEnumerable ColumnDistinctResults { get => throw null; set => throw null; } + public System.Func ColumnDistinctResultsFn { get => throw null; set => throw null; } + public System.Collections.IEnumerable ColumnResults { get => throw null; set => throw null; } + public System.Func ColumnResultsFn { get => throw null; set => throw null; } + public System.Collections.IDictionary DictionaryResults { get => throw null; set => throw null; } + public System.Func DictionaryResultsFn { get => throw null; set => throw null; } + public void Dispose() => throw null; + public int ExecuteSql(System.Data.IDbCommand dbCmd) => throw null; + public System.Func ExecuteSqlFn { get => throw null; set => throw null; } + public int ExecuteSqlResult { get => throw null; set => throw null; } + public System.Collections.Generic.List GetColumn(System.Data.IDbCommand dbCmd) => throw null; + public System.Collections.Generic.HashSet GetColumnDistinct(System.Data.IDbCommand dbCmd) => throw null; + public System.Collections.Generic.Dictionary GetDictionary(System.Data.IDbCommand dbCmd) => throw null; + public System.Collections.Generic.List> GetKeyValuePairs(System.Data.IDbCommand dbCmd) => throw null; + public System.Int64 GetLastInsertId(System.Data.IDbCommand dbCmd) => throw null; + public System.Collections.Generic.List GetList(System.Data.IDbCommand dbCmd) => throw null; + public System.Int64 GetLongScalar(System.Data.IDbCommand dbCmd) => throw null; + public System.Collections.Generic.Dictionary> GetLookup(System.Data.IDbCommand dbCmd) => throw null; + public System.Collections.IList GetRefList(System.Data.IDbCommand dbCmd, System.Type refType) => throw null; + public object GetRefSingle(System.Data.IDbCommand dbCmd, System.Type refType) => throw null; + public object GetScalar(System.Data.IDbCommand dbCmd) => throw null; + public T GetScalar(System.Data.IDbCommand dbCmd) => throw null; + public T GetSingle(System.Data.IDbCommand dbCmd) => throw null; + public System.Int64 LastInsertId { get => throw null; set => throw null; } + public System.Func LastInsertIdFn { get => throw null; set => throw null; } + public System.Int64 LongScalarResult { get => throw null; set => throw null; } + public System.Func LongScalarResultFn { get => throw null; set => throw null; } + public System.Collections.IDictionary LookupResults { get => throw null; set => throw null; } + public System.Func LookupResultsFn { get => throw null; set => throw null; } + public OrmLiteResultsFilter(System.Collections.IEnumerable results = default(System.Collections.IEnumerable)) => throw null; + public bool PrintSql { get => throw null; set => throw null; } + public System.Collections.IEnumerable RefResults { get => throw null; set => throw null; } + public System.Func RefResultsFn { get => throw null; set => throw null; } + public object RefSingleResult { get => throw null; set => throw null; } + public System.Func RefSingleResultFn { get => throw null; set => throw null; } + public System.Collections.IEnumerable Results { get => throw null; set => throw null; } + public System.Func ResultsFn { get => throw null; set => throw null; } + public object ScalarResult { get => throw null; set => throw null; } + public System.Func ScalarResultFn { get => throw null; set => throw null; } + public object SingleResult { get => throw null; set => throw null; } + public System.Func SingleResultFn { get => throw null; set => throw null; } + public System.Action SqlCommandFilter { get => throw null; set => throw null; } + public System.Action SqlFilter { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.OrmLiteResultsFilterExtensions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteResultsFilterExtensions + { + public static T ConvertTo(this System.Data.IDbCommand dbCmd, string sql = default(string)) => throw null; + public static System.Collections.IList ConvertToList(this System.Data.IDbCommand dbCmd, System.Type refType, string sql = default(string)) => throw null; + public static System.Collections.Generic.List ConvertToList(this System.Data.IDbCommand dbCmd, string sql = default(string)) => throw null; + public static System.Int64 ExecLongScalar(this System.Data.IDbCommand dbCmd, string sql = default(string)) => throw null; + public static int ExecNonQuery(this System.Data.IDbCommand dbCmd) => throw null; + public static int ExecNonQuery(this System.Data.IDbCommand dbCmd, string sql, System.Action dbCmdFilter) => throw null; + public static int ExecNonQuery(this System.Data.IDbCommand dbCmd, string sql, System.Collections.Generic.Dictionary dict) => throw null; + public static int ExecNonQuery(this System.Data.IDbCommand dbCmd, string sql, object anonType = default(object)) => throw null; + public static System.Data.IDbDataParameter PopulateWith(this System.Data.IDbDataParameter to, System.Data.IDbDataParameter from) => throw null; + public static object Scalar(this System.Data.IDbCommand dbCmd, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; + public static object Scalar(this System.Data.IDbCommand dbCmd, string sql = default(string)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteResultsFilterExtensionsAsync` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteResultsFilterExtensionsAsync + { + public static System.Threading.Tasks.Task ConvertToAsync(this System.Data.IDbCommand dbCmd) => throw null; + public static System.Threading.Tasks.Task ConvertToAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; + public static System.Threading.Tasks.Task ConvertToListAsync(this System.Data.IDbCommand dbCmd, System.Type refType) => throw null; + public static System.Threading.Tasks.Task ConvertToListAsync(this System.Data.IDbCommand dbCmd, System.Type refType, string sql, System.Threading.CancellationToken token) => throw null; + public static System.Threading.Tasks.Task> ConvertToListAsync(this System.Data.IDbCommand dbCmd) => throw null; + public static System.Threading.Tasks.Task> ConvertToListAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; + public static System.Threading.Tasks.Task ExecLongScalarAsync(this System.Data.IDbCommand dbCmd) => throw null; + public static System.Threading.Tasks.Task ExecLongScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; + public static System.Threading.Tasks.Task ExecNonQueryAsync(this System.Data.IDbCommand dbCmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExecNonQueryAsync(this System.Data.IDbCommand dbCmd, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExecNonQueryAsync(this System.Data.IDbCommand dbCmd, string sql, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd, ServiceStack.OrmLite.ISqlExpression expression, System.Threading.CancellationToken token) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; + public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteSPStatement` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteSPStatement : System.IDisposable + { + public System.Collections.Generic.List ConvertFirstColumnToList() => throw null; + public System.Collections.Generic.HashSet ConvertFirstColumnToListDistinct() => throw null; + public T ConvertTo() => throw null; + public System.Collections.Generic.List ConvertToList() => throw null; + public T ConvertToScalar() => throw null; + public System.Collections.Generic.List ConvertToScalarList() => throw null; + public void Dispose() => throw null; + public int ExecuteNonQuery() => throw null; + public bool HasResult() => throw null; + public OrmLiteSPStatement(System.Data.IDbCommand dbCmd) => throw null; + public OrmLiteSPStatement(System.Data.IDbConnection db, System.Data.IDbCommand dbCmd) => throw null; + public int ReturnValue { get => throw null; } + public bool TryGetParameterValue(string parameterName, out object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteSchemaApi` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteSchemaApi + { + public static bool ColumnExists(this System.Data.IDbConnection dbConn, string columnName, string tableName, string schema = default(string)) => throw null; + public static bool ColumnExists(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; + public static System.Threading.Tasks.Task ColumnExistsAsync(this System.Data.IDbConnection dbConn, string columnName, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ColumnExistsAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static bool CreateSchema(this System.Data.IDbConnection dbConn, string schemaName) => throw null; + public static void CreateSchema(this System.Data.IDbConnection dbConn) => throw null; + public static void CreateTable(this System.Data.IDbConnection dbConn, bool overwrite, System.Type modelType) => throw null; + public static void CreateTable(this System.Data.IDbConnection dbConn, bool overwrite = default(bool)) => throw null; + public static bool CreateTableIfNotExists(this System.Data.IDbConnection dbConn, System.Type modelType) => throw null; + public static void CreateTableIfNotExists(this System.Data.IDbConnection dbConn, params System.Type[] tableTypes) => throw null; + public static bool CreateTableIfNotExists(this System.Data.IDbConnection dbConn) => throw null; + public static void CreateTables(this System.Data.IDbConnection dbConn, bool overwrite, params System.Type[] tableTypes) => throw null; + public static void DropAndCreateTable(this System.Data.IDbConnection dbConn, System.Type modelType) => throw null; + public static void DropAndCreateTable(this System.Data.IDbConnection dbConn) => throw null; + public static void DropAndCreateTables(this System.Data.IDbConnection dbConn, params System.Type[] tableTypes) => throw null; + public static void DropTable(this System.Data.IDbConnection dbConn, System.Type modelType) => throw null; + public static void DropTable(this System.Data.IDbConnection dbConn) => throw null; + public static void DropTables(this System.Data.IDbConnection dbConn, params System.Type[] tableTypes) => throw null; + public static bool TableExists(this System.Data.IDbConnection dbConn, string tableName, string schema = default(string)) => throw null; + public static bool TableExists(this System.Data.IDbConnection dbConn) => throw null; + public static System.Threading.Tasks.Task TableExistsAsync(this System.Data.IDbConnection dbConn, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task TableExistsAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteSchemaModifyApi` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteSchemaModifyApi + { + public static void AddColumn(this System.Data.IDbConnection dbConn, System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static void AddColumn(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; + public static void AddForeignKey(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> foreignField, ServiceStack.OrmLite.OnFkOption onUpdate, ServiceStack.OrmLite.OnFkOption onDelete, string foreignKeyName = default(string)) => throw null; + public static void AlterColumn(this System.Data.IDbConnection dbConn, System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public static void AlterColumn(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; + public static void AlterTable(this System.Data.IDbConnection dbConn, System.Type modelType, string command) => throw null; + public static void AlterTable(this System.Data.IDbConnection dbConn, string command) => throw null; + public static void ChangeColumnName(this System.Data.IDbConnection dbConn, System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef, string oldColumnName) => throw null; + public static void ChangeColumnName(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, string oldColumnName) => throw null; + public static void CreateIndex(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, string indexName = default(string), bool unique = default(bool)) => throw null; + public static void DropColumn(this System.Data.IDbConnection dbConn, System.Type modelType, string columnName) => throw null; + public static void DropColumn(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; + public static void DropColumn(this System.Data.IDbConnection dbConn, string columnName) => throw null; + public static void DropForeignKey(this System.Data.IDbConnection dbConn, string foreignKeyName) => throw null; + public static void DropIndex(this System.Data.IDbConnection dbConn, string indexName) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteState` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteState + { + public System.Int64 Id; + public OrmLiteState() => throw null; + public ServiceStack.OrmLite.IOrmLiteResultsFilter ResultsFilter; + public System.Data.IDbTransaction TSTransaction; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteTransaction` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteTransaction : ServiceStack.Data.IHasDbTransaction, System.Data.IDbTransaction, System.IDisposable + { + public void Commit() => throw null; + public System.Data.IDbConnection Connection { get => throw null; } + public static ServiceStack.OrmLite.OrmLiteTransaction Create(System.Data.IDbConnection db, System.Data.IsolationLevel? isolationLevel = default(System.Data.IsolationLevel?)) => throw null; + public System.Data.IDbTransaction DbTransaction { get => throw null; } + public void Dispose() => throw null; + public System.Data.IsolationLevel IsolationLevel { get => throw null; } + public OrmLiteTransaction(System.Data.IDbConnection db, System.Data.IDbTransaction transaction) => throw null; + public void Rollback() => throw null; + public System.Data.IDbTransaction Transaction { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.OrmLiteUtils` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteUtils + { + public static string AliasOrColumn(this string quotedExpr) => throw null; + public static string[] AllAnonFields(this System.Type type) => throw null; + public static void AssertNotAnonType() => throw null; + public static System.Text.StringBuilder CaptureSql() => throw null; + public static void CaptureSql(System.Text.StringBuilder sb) => throw null; + public static object ConvertTo(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Type type) => throw null; + public static T ConvertTo(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Collections.Generic.HashSet onlyFields = default(System.Collections.Generic.HashSet)) => throw null; + public static System.Collections.Generic.Dictionary ConvertToDictionaryObjects(this System.Data.IDataReader dataReader) => throw null; + public static System.Collections.Generic.IDictionary ConvertToExpandoObject(this System.Data.IDataReader dataReader) => throw null; + public static System.Collections.IList ConvertToList(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Type type) => throw null; + public static System.Collections.Generic.List ConvertToList(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Collections.Generic.HashSet onlyFields = default(System.Collections.Generic.HashSet)) => throw null; + public static System.Collections.Generic.List ConvertToListObjects(this System.Data.IDataReader dataReader) => throw null; + public static System.UInt64 ConvertToULong(System.Byte[] bytes) => throw null; + public static T ConvertToValueTuple(this System.Data.IDataReader reader, object[] values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + public static T CreateInstance() => throw null; + public static void DebugCommand(this ServiceStack.Logging.ILog log, System.Data.IDbCommand cmd) => throw null; + public static T EvalFactoryFn(this System.Linq.Expressions.Expression> expr) => throw null; + public static string GetColumnNames(this ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; + public static string GetDebugString(this System.Data.IDbCommand cmd) => throw null; + public static System.Tuple[] GetIndexFieldsCache(this System.Data.IDataReader reader, ServiceStack.OrmLite.ModelDefinition modelDefinition, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Collections.Generic.HashSet onlyFields = default(System.Collections.Generic.HashSet), int startPos = default(int), int? endPos = default(int?)) => throw null; + public static ServiceStack.OrmLite.ModelDefinition GetModelDefinition(System.Type modelType) => throw null; + public static System.Collections.Generic.List GetNonDefaultValueInsertFields(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, object obj) => throw null; + public static System.Collections.Generic.List GetNonDefaultValueInsertFields(T obj) => throw null; + public static void HandleException(System.Exception ex, string message = default(string)) => throw null; + public static string[] IllegalSqlFragmentTokens; + public static bool IsRefType(this System.Type fieldType) => throw null; + public static bool IsScalar() => throw null; + public static ServiceStack.OrmLite.JoinFormatDelegate JoinAlias(string alias) => throw null; + public static System.Collections.Generic.List Merge(this System.Collections.Generic.List parents, System.Collections.Generic.List children) => throw null; + public static System.Collections.Generic.List Merge(this Parent parent, System.Collections.Generic.List children) => throw null; + public static string OrderByFields(ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string orderBy) => throw null; + public static System.Collections.Generic.List ParseTokens(this string expr) => throw null; + public static void PrintSql() => throw null; + public static string QuotedLiteral(string text) => throw null; + public static string SqlColumn(this string columnName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static string SqlColumnRaw(this string columnName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static string SqlFmt(this string sqlText, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, params object[] sqlParams) => throw null; + public static string SqlFmt(this string sqlText, params object[] sqlParams) => throw null; + public static string SqlInParams(this T[] values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static ServiceStack.OrmLite.SqlInValues SqlInValues(this T[] values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static string SqlJoin(System.Collections.IEnumerable values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static string SqlJoin(this System.Collections.Generic.List values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static string SqlParam(this string paramValue) => throw null; + public static string SqlTable(this string tableName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static string SqlTableRaw(this string tableName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public static string SqlValue(this object value) => throw null; + public static string SqlVerifyFragment(this string sqlFragment) => throw null; + public static string SqlVerifyFragment(this string sqlFragment, System.Collections.Generic.IEnumerable illegalFragments) => throw null; + public static System.Func SqlVerifyFragmentFn { get => throw null; set => throw null; } + public static string StripDbQuotes(this string quotedExpr) => throw null; + public static string StripQuotedStrings(this string text, System.Char quote = default(System.Char)) => throw null; + public static string StripTablePrefixes(this string selectExpression) => throw null; + public static string ToSelectString(this System.Collections.Generic.IEnumerable items) => throw null; + public static void UnCaptureSql() => throw null; + public static string UnCaptureSqlAndFree(System.Text.StringBuilder sb) => throw null; + public static void UnPrintSql() => throw null; + public static string UnquotedColumnName(string columnExpr) => throw null; + public static System.Text.RegularExpressions.Regex VerifyFragmentRegEx; + public static System.Text.RegularExpressions.Regex VerifySqlRegEx; + public static bool isUnsafeSql(string sql, System.Text.RegularExpressions.Regex verifySql) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteVariables` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteVariables + { + public const string False = default; + public const string MaxText = default; + public const string MaxTextUnicode = default; + public const string SystemUtc = default; + public const string True = default; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteWriteApi` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteWriteApi + { + public static int Delete(this System.Data.IDbConnection dbConn, System.Type tableType, string sqlFilter, object anonType) => throw null; + public static int Delete(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary filters) => throw null; + public static int Delete(this System.Data.IDbConnection dbConn, T allFieldsFilter, System.Action commandFilter = default(System.Action)) => throw null; + public static int Delete(this System.Data.IDbConnection dbConn, object anonFilter, System.Action commandFilter = default(System.Action)) => throw null; + public static int Delete(this System.Data.IDbConnection dbConn, params T[] allFieldsFilters) => throw null; + public static int Delete(this System.Data.IDbConnection dbConn, string sqlFilter, object anonType) => throw null; + public static int DeleteAll(this System.Data.IDbConnection dbConn, System.Type tableType) => throw null; + public static int DeleteAll(this System.Data.IDbConnection dbConn) => throw null; + public static int DeleteAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable rows) => throw null; + public static int DeleteById(this System.Data.IDbConnection dbConn, object id, System.Action commandFilter = default(System.Action)) => throw null; + public static void DeleteById(this System.Data.IDbConnection dbConn, object id, System.UInt64 rowVersion, System.Action commandFilter = default(System.Action)) => throw null; + public static int DeleteByIds(this System.Data.IDbConnection dbConn, System.Collections.IEnumerable idValues) => throw null; + public static int DeleteNonDefaults(this System.Data.IDbConnection dbConn, T nonDefaultsFilter) => throw null; + public static int DeleteNonDefaults(this System.Data.IDbConnection dbConn, params T[] nonDefaultsFilters) => throw null; + public static void ExecuteProcedure(this System.Data.IDbConnection dbConn, T obj) => throw null; + public static int ExecuteSql(this System.Data.IDbConnection dbConn, string sql) => throw null; + public static int ExecuteSql(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dbParams) => throw null; + public static int ExecuteSql(this System.Data.IDbConnection dbConn, string sql, object dbParams) => throw null; + public static string GetLastSql(this System.Data.IDbConnection dbConn) => throw null; + public static string GetLastSqlAndParams(this System.Data.IDbCommand dbCmd) => throw null; + public static object GetRowVersion(this System.Data.IDbConnection dbConn, System.Type modelType, object id) => throw null; + public static object GetRowVersion(this System.Data.IDbConnection dbConn, object id) => throw null; + public static System.Int64 Insert(this System.Data.IDbConnection dbConn, System.Action commandFilter, System.Collections.Generic.Dictionary obj, bool selectIdentity = default(bool)) => throw null; + public static void Insert(this System.Data.IDbConnection dbConn, System.Action commandFilter, params T[] objs) => throw null; + public static System.Int64 Insert(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary obj, bool selectIdentity = default(bool)) => throw null; + public static System.Int64 Insert(this System.Data.IDbConnection dbConn, T obj, System.Action commandFilter, bool selectIdentity = default(bool)) => throw null; + public static System.Int64 Insert(this System.Data.IDbConnection dbConn, T obj, bool selectIdentity = default(bool), bool enableIdentityInsert = default(bool)) => throw null; + public static void Insert(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; + public static void InsertAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs) => throw null; + public static void InsertAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Action commandFilter) => throw null; + public static System.Int64 InsertIntoSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; + public static System.Int64 InsertIntoSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Action commandFilter) => throw null; + public static void InsertUsingDefaults(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; + public static bool Save(this System.Data.IDbConnection dbConn, T obj, bool references = default(bool)) => throw null; + public static int Save(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; + public static int SaveAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs) => throw null; + public static void SaveAllReferences(this System.Data.IDbConnection dbConn, T instance) => throw null; + public static void SaveReferences(this System.Data.IDbConnection dbConn, T instance, System.Collections.Generic.IEnumerable refs) => throw null; + public static void SaveReferences(this System.Data.IDbConnection dbConn, T instance, System.Collections.Generic.List refs) => throw null; + public static void SaveReferences(this System.Data.IDbConnection dbConn, T instance, params TRef[] refs) => throw null; + public static string ToInsertStatement(this System.Data.IDbConnection dbConn, T item, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)) => throw null; + public static string ToUpdateStatement(this System.Data.IDbConnection dbConn, T item, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)) => throw null; + public static int Update(this System.Data.IDbConnection dbConn, System.Action commandFilter, params T[] objs) => throw null; + public static int Update(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary obj, System.Action commandFilter = default(System.Action)) => throw null; + public static int Update(this System.Data.IDbConnection dbConn, T obj, System.Action commandFilter = default(System.Action)) => throw null; + public static int Update(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; + public static int UpdateAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Action commandFilter = default(System.Action)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteWriteApiAsync` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteWriteApiAsync + { + public static System.Threading.Tasks.Task DeleteAllAsync(this System.Data.IDbConnection dbConn, System.Type tableType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteAllAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Type tableType, string sqlFilter, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken), params T[] allFieldsFilters) => throw null; + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter = default(System.Action), params T[] allFieldsFilters) => throw null; + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary filters, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, T allFieldsFilter, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, object anonFilter, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, string sqlFilter, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteByIdAsync(this System.Data.IDbConnection dbConn, object id, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteByIdAsync(this System.Data.IDbConnection dbConn, object id, System.UInt64 rowVersion, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteByIdsAsync(this System.Data.IDbConnection dbConn, System.Collections.IEnumerable idValues, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteNonDefaultsAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, params T[] nonDefaultsFilters) => throw null; + public static System.Threading.Tasks.Task DeleteNonDefaultsAsync(this System.Data.IDbConnection dbConn, T nonDefaultsFilter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteNonDefaultsAsync(this System.Data.IDbConnection dbConn, params T[] nonDefaultsFilters) => throw null; + public static System.Threading.Tasks.Task ExecuteProcedureAsync(this System.Data.IDbConnection dbConn, T obj, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExecuteSqlAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExecuteSqlAsync(this System.Data.IDbConnection dbConn, string sql, object dbParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetRowVersionAsync(this System.Data.IDbConnection dbConn, System.Type modelType, object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetRowVersionAsync(this System.Data.IDbConnection dbConn, object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertAllAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Action commandFilter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertAllAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter, System.Threading.CancellationToken token, params T[] objs) => throw null; + public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter, System.Collections.Generic.Dictionary obj, bool selectIdentity = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, params T[] objs) => throw null; + public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary obj, bool selectIdentity = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, T obj, System.Action commandFilter, bool selectIdentity = default(bool), bool enableIdentityInsert = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, T obj, bool selectIdentity = default(bool), bool enableIdentityInsert = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; + public static System.Threading.Tasks.Task InsertIntoSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Action commandFilter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertIntoSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertUsingDefaultsAsync(this System.Data.IDbConnection dbConn, T[] objs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SaveAllAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SaveAllReferencesAsync(this System.Data.IDbConnection dbConn, T instance, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SaveAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, params T[] objs) => throw null; + public static System.Threading.Tasks.Task SaveAsync(this System.Data.IDbConnection dbConn, T obj, bool references = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SaveAsync(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; + public static System.Threading.Tasks.Task SaveReferencesAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, T instance, params TRef[] refs) => throw null; + public static System.Threading.Tasks.Task SaveReferencesAsync(this System.Data.IDbConnection dbConn, T instance, System.Collections.Generic.IEnumerable refs, System.Threading.CancellationToken token) => throw null; + public static System.Threading.Tasks.Task SaveReferencesAsync(this System.Data.IDbConnection dbConn, T instance, System.Collections.Generic.List refs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SaveReferencesAsync(this System.Data.IDbConnection dbConn, T instance, params TRef[] refs) => throw null; + public static System.Threading.Tasks.Task UpdateAllAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter, System.Threading.CancellationToken token, params T[] objs) => throw null; + public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter, params T[] objs) => throw null; + public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, params T[] objs) => throw null; + public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary obj, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, T obj, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteWriteCommandExtensions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteWriteCommandExtensions + { + public static int GetColumnIndex(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string fieldName) => throw null; + public static void PopulateObjectWithSqlReader(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, object objWithProperties, System.Data.IDataReader reader, System.Tuple[] indexCache, object[] values) => throw null; + public static T PopulateWithSqlReader(this T objWithProperties, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDataReader reader) => throw null; + public static T PopulateWithSqlReader(this T objWithProperties, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDataReader reader, System.Tuple[] indexCache, object[] values) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteWriteExpressionsApi` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteWriteExpressionsApi + { + public static int Delete(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action)) => throw null; + public static int Delete(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression where, System.Action commandFilter = default(System.Action)) => throw null; + public static int DeleteWhere(this System.Data.IDbConnection dbConn, string whereFilter, object[] whereParams) => throw null; + public static System.Int64 InsertOnly(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> insertFields, bool selectIdentity = default(bool)) => throw null; + public static System.Int64 InsertOnly(this System.Data.IDbConnection dbConn, T obj, System.Linq.Expressions.Expression> onlyFields, bool selectIdentity = default(bool)) => throw null; + public static System.Int64 InsertOnly(this System.Data.IDbConnection dbConn, T obj, string[] onlyFields, bool selectIdentity = default(bool)) => throw null; + public static int Update(this System.Data.IDbConnection dbConn, T item, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action)) => throw null; + public static int Update(this System.Data.IDbConnection dbConn, object updateOnly, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateAdd(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateAdd(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, ServiceStack.OrmLite.SqlExpression q, System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateNonDefaults(this System.Data.IDbConnection dbConn, T item, System.Linq.Expressions.Expression> obj) => throw null; + public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, System.Linq.Expressions.Expression> obj) => throw null; + public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, string whereExpression, object[] whereParams, System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, ServiceStack.OrmLite.SqlExpression q, System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, string whereExpression, System.Collections.Generic.IEnumerable sqlParams, System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateOnlyFields(this System.Data.IDbConnection dbConn, T obj, System.Linq.Expressions.Expression> onlyFields = default(System.Linq.Expressions.Expression>), System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateOnlyFields(this System.Data.IDbConnection dbConn, T model, ServiceStack.OrmLite.SqlExpression onlyFields, System.Action commandFilter = default(System.Action)) => throw null; + public static int UpdateOnlyFields(this System.Data.IDbConnection dbConn, T obj, string[] onlyFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.OrmLiteWriteExpressionsApiAsync` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteWriteExpressionsApiAsync + { + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression where, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteWhereAsync(this System.Data.IDbConnection dbConn, string whereFilter, object[] whereParams, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> insertFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, T obj, System.Linq.Expressions.Expression> onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, T obj, string[] onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateAddAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateAddAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, ServiceStack.OrmLite.SqlExpression q, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, T item, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, object updateOnly, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateNonDefaultsAsync(this System.Data.IDbConnection dbConn, T item, System.Linq.Expressions.Expression> obj, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, string whereExpression, object[] whereParams, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, ServiceStack.OrmLite.SqlExpression q, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, string whereExpression, System.Collections.Generic.IEnumerable sqlParams, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyFieldsAsync(this System.Data.IDbConnection dbConn, T obj, System.Linq.Expressions.Expression> onlyFields = default(System.Linq.Expressions.Expression>), System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyFieldsAsync(this System.Data.IDbConnection dbConn, T model, ServiceStack.OrmLite.SqlExpression onlyFields, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyFieldsAsync(this System.Data.IDbConnection dbConn, T obj, string[] onlyFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.ParameterRebinder` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ParameterRebinder : ServiceStack.OrmLite.SqlExpressionVisitor + { + public ParameterRebinder(System.Collections.Generic.Dictionary map) => throw null; + public static System.Linq.Expressions.Expression ReplaceParameters(System.Collections.Generic.Dictionary map, System.Linq.Expressions.Expression exp) => throw null; + protected override System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression p) => throw null; + } + + // Generated from `ServiceStack.OrmLite.PartialSqlString` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PartialSqlString + { + public ServiceStack.OrmLite.EnumMemberAccess EnumMember; + protected bool Equals(ServiceStack.OrmLite.PartialSqlString other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public static ServiceStack.OrmLite.PartialSqlString Null; + public PartialSqlString(string text) => throw null; + public PartialSqlString(string text, ServiceStack.OrmLite.EnumMemberAccess enumMember) => throw null; + public string Text { get => throw null; set => throw null; } + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.OrmLite.PredicateBuilder` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class PredicateBuilder + { + public static System.Linq.Expressions.Expression> And(this System.Linq.Expressions.Expression> first, System.Linq.Expressions.Expression> second) => throw null; + public static System.Linq.Expressions.Expression> Create(System.Linq.Expressions.Expression> predicate) => throw null; + public static System.Linq.Expressions.Expression> False() => throw null; + public static System.Linq.Expressions.Expression> Not(this System.Linq.Expressions.Expression> expression) => throw null; + public static System.Linq.Expressions.Expression> Or(this System.Linq.Expressions.Expression> first, System.Linq.Expressions.Expression> second) => throw null; + public static System.Linq.Expressions.Expression> True() => throw null; + } + + // Generated from `ServiceStack.OrmLite.PrefixNamingStrategy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PrefixNamingStrategy : ServiceStack.OrmLite.OrmLiteNamingStrategyBase + { + public string ColumnPrefix { get => throw null; set => throw null; } + public override string GetColumnName(string name) => throw null; + public override string GetTableName(string name) => throw null; + public PrefixNamingStrategy() => throw null; + public string TablePrefix { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.QueryType` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum QueryType + { + Scalar, + Select, + Single, + } + + // Generated from `ServiceStack.OrmLite.SelectItem` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class SelectItem + { + public string Alias { get => throw null; set => throw null; } + protected ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } + protected SelectItem(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string alias) => throw null; + public abstract override string ToString(); + } + + // Generated from `ServiceStack.OrmLite.SelectItemColumn` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SelectItemColumn : ServiceStack.OrmLite.SelectItem + { + public string ColumnName { get => throw null; set => throw null; } + public string QuotedTableAlias { get => throw null; set => throw null; } + public SelectItemColumn(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string columnName, string columnAlias = default(string), string quotedTableAlias = default(string)) : base(default(ServiceStack.OrmLite.IOrmLiteDialectProvider), default(string)) => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.OrmLite.SelectItemExpression` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SelectItemExpression : ServiceStack.OrmLite.SelectItem + { + public string SelectExpression { get => throw null; set => throw null; } + public SelectItemExpression(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string selectExpression, string alias) : base(default(ServiceStack.OrmLite.IOrmLiteDialectProvider), default(string)) => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Sql` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Sql + { + public static T AllFields(T item) => throw null; + public static string As(T value, object asValue) => throw null; + public static string Asc(T value) => throw null; + public static string Avg(string value) => throw null; + public static T Avg(T value) => throw null; + public static string Cast(object value, string castAs) => throw null; + public static string Count(string value) => throw null; + public static T Count(T value) => throw null; + public static T CountDistinct(T value) => throw null; + public static string Custom(string customSql) => throw null; + public static T Custom(string customSql) => throw null; + public static string Desc(T value) => throw null; + public const string EOT = default; + public static System.Collections.Generic.List Flatten(System.Collections.IEnumerable list) => throw null; + public static bool In(T value, ServiceStack.OrmLite.SqlExpression query) => throw null; + public static bool In(T value, params TItem[] list) => throw null; + public static bool? IsJson(string expression) => throw null; + public static string JoinAlias(string property, string tableAlias) => throw null; + public static T JoinAlias(T property, string tableAlias) => throw null; + public static string JsonQuery(string expression) => throw null; + public static string JsonQuery(string expression, string path) => throw null; + public static T JsonQuery(string expression) => throw null; + public static T JsonQuery(string expression, string path) => throw null; + public static string JsonValue(string expression, string path) => throw null; + public static T JsonValue(string expression, string path) => throw null; + public static string Max(string value) => throw null; + public static T Max(T value) => throw null; + public static string Min(string value) => throw null; + public static T Min(T value) => throw null; + public static string Sum(string value) => throw null; + public static T Sum(T value) => throw null; + public static string TableAlias(string property, string tableAlias) => throw null; + public static T TableAlias(T property, string tableAlias) => throw null; + public static string VARCHAR; + } + + // Generated from `ServiceStack.OrmLite.SqlBuilder` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlBuilder + { + // Generated from `ServiceStack.OrmLite.SqlBuilder+Template` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Template : ServiceStack.OrmLite.ISqlExpression + { + public object Parameters { get => throw null; } + public System.Collections.Generic.List Params { get => throw null; set => throw null; } + public string RawSql { get => throw null; } + public string SelectInto() => throw null; + public string SelectInto(ServiceStack.OrmLite.QueryType queryType) => throw null; + public Template(ServiceStack.OrmLite.SqlBuilder builder, string sql, object parameters) => throw null; + public string ToSelectStatement() => throw null; + public string ToSelectStatement(ServiceStack.OrmLite.QueryType forType) => throw null; + } + + + public ServiceStack.OrmLite.SqlBuilder AddParameters(object parameters) => throw null; + public ServiceStack.OrmLite.SqlBuilder.Template AddTemplate(string sql, object parameters = default(object)) => throw null; + public ServiceStack.OrmLite.SqlBuilder Join(string sql, object parameters = default(object)) => throw null; + public ServiceStack.OrmLite.SqlBuilder LeftJoin(string sql, object parameters = default(object)) => throw null; + public ServiceStack.OrmLite.SqlBuilder OrderBy(string sql, object parameters = default(object)) => throw null; + public ServiceStack.OrmLite.SqlBuilder Select(string sql, object parameters = default(object)) => throw null; + public SqlBuilder() => throw null; + public ServiceStack.OrmLite.SqlBuilder Where(string sql, object parameters = default(object)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlCommandDetails` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlCommandDetails + { + public System.Collections.Generic.Dictionary Parameters { get => throw null; set => throw null; } + public string Sql { get => throw null; set => throw null; } + public SqlCommandDetails(System.Data.IDbCommand command) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlExpression<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class SqlExpression : ServiceStack.OrmLite.IHasDialectProvider, ServiceStack.OrmLite.IHasUntypedSqlExpression, ServiceStack.OrmLite.ISqlExpression + { + public virtual ServiceStack.OrmLite.SqlExpression AddCondition(string condition, string sqlFilter, params object[] filterParams) => throw null; + public virtual System.Data.IDbDataParameter AddParam(object value) => throw null; + public ServiceStack.OrmLite.SqlExpression AddReferenceTableIfNotExists() => throw null; + public virtual void AddTag(string tag) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(string sqlFilter, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + protected ServiceStack.OrmLite.SqlExpression AppendHaving(System.Linq.Expressions.Expression predicate) => throw null; + protected ServiceStack.OrmLite.SqlExpression AppendToEnsure(System.Linq.Expressions.Expression predicate) => throw null; + protected ServiceStack.OrmLite.SqlExpression AppendToWhere(string condition, System.Linq.Expressions.Expression predicate) => throw null; + protected ServiceStack.OrmLite.SqlExpression AppendToWhere(string condition, System.Linq.Expressions.Expression predicate, object[] filterParams) => throw null; + protected ServiceStack.OrmLite.SqlExpression AppendToWhere(string condition, string sqlExpression) => throw null; + protected virtual string BindOperant(System.Linq.Expressions.ExpressionType e) => throw null; + public string BodyExpression { get => throw null; } + protected bool CheckExpressionForTypes(System.Linq.Expressions.Expression e, System.Linq.Expressions.ExpressionType[] types) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ClearLimits() => throw null; + public ServiceStack.OrmLite.SqlExpression Clone() => throw null; + public string ComputeHash(bool includeParams = default(bool)) => throw null; + protected string ConvertInExpressionToSql(System.Linq.Expressions.MethodCallExpression m, object quotedColName) => throw null; + public string ConvertToParam(object value) => throw null; + protected virtual void ConvertToPlaceholderAndParameter(ref object right) => throw null; + public virtual void CopyParamsTo(System.Data.IDbCommand dbCmd) => throw null; + protected virtual ServiceStack.OrmLite.SqlExpression CopyTo(ServiceStack.OrmLite.SqlExpression to) => throw null; + protected virtual string CreateInSubQuerySql(object quotedColName, string subSelect) => throw null; + public System.Data.IDbDataParameter CreateParam(string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?), System.Data.DataRowVersion sourceVersion = default(System.Data.DataRowVersion)) => throw null; + public ServiceStack.OrmLite.SqlExpression CrossJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.SqlExpression CrossJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.SqlExpression CustomJoin(string joinString) => throw null; + public ServiceStack.OrmLite.SqlExpression CustomJoin(string joinString) => throw null; + protected bool CustomSelect { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } + public string Dump(bool includeParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; + public ServiceStack.OrmLite.SqlExpression Ensure(string sqlFilter, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; + public const string FalseLiteral = default; + public System.Tuple FirstMatchingField(string fieldName) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression From(string tables) => throw null; + public string FromExpression { get => throw null; set => throw null; } + public ServiceStack.OrmLite.SqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; + public ServiceStack.OrmLite.SqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; + public ServiceStack.OrmLite.SqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.SqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public System.Collections.Generic.IList GetAllFields() => throw null; + public System.Collections.Generic.List GetAllTables() => throw null; + protected string GetColumnName(string fieldName) => throw null; + protected object GetFalseExpression() => throw null; + protected virtual object GetMemberExpression(System.Linq.Expressions.MemberExpression m) => throw null; + public ServiceStack.OrmLite.ModelDefinition GetModelDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + protected virtual string GetQuotedColumnName(ServiceStack.OrmLite.ModelDefinition tableDef, string memberName) => throw null; + protected virtual string GetQuotedColumnName(ServiceStack.OrmLite.ModelDefinition tableDef, string tableAlias, string memberName) => throw null; + protected object GetQuotedFalseValue() => throw null; + protected object GetQuotedTrueValue() => throw null; + public virtual string GetSubstringSql(object quotedColumn, int startIndex, int? length = default(int?)) => throw null; + protected virtual string GetTableAlias(System.Linq.Expressions.MemberExpression m) => throw null; + protected object GetTrueExpression() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression GetUntyped() => throw null; + public virtual object GetValue(object value, System.Type type) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression GroupBy() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression GroupBy(System.Linq.Expressions.Expression> keySelector) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression GroupBy(string groupBy) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression GroupBy(System.Linq.Expressions.Expression> keySelector) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression GroupBy(System.Linq.Expressions.Expression> keySelector) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression GroupBy(System.Linq.Expressions.Expression> keySelector) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression GroupBy
    (System.Linq.Expressions.Expression> keySelector) => throw null; + public string GroupByExpression { get => throw null; set => throw null; } + public virtual ServiceStack.OrmLite.SqlExpression Having() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Having(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Having(string sqlFilter, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Having(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Having(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Having
    (System.Linq.Expressions.Expression> predicate) => throw null; + public string HavingExpression { get => throw null; set => throw null; } + public virtual ServiceStack.OrmLite.SqlExpression IncludeTablePrefix() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Insert() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Insert(System.Collections.Generic.List insertFields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Insert(System.Linq.Expressions.Expression> fields) => throw null; + public System.Collections.Generic.List InsertFields { get => throw null; set => throw null; } + protected virtual ServiceStack.OrmLite.SqlExpression InternalJoin(string joinType, System.Linq.Expressions.Expression joinExpr, ServiceStack.OrmLite.ModelDefinition sourceDef, ServiceStack.OrmLite.ModelDefinition targetDef, ServiceStack.OrmLite.TableOptions options = default(ServiceStack.OrmLite.TableOptions)) => throw null; + protected ServiceStack.OrmLite.SqlExpression InternalJoin(string joinType, System.Linq.Expressions.Expression joinExpr) => throw null; + protected ServiceStack.OrmLite.SqlExpression InternalJoin(string joinType, System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; + protected ServiceStack.OrmLite.SqlExpression InternalJoin(string joinType, System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options = default(ServiceStack.OrmLite.TableOptions)) => throw null; + protected virtual bool IsBooleanComparison(System.Linq.Expressions.Expression e) => throw null; + protected virtual bool IsColumnAccess(System.Linq.Expressions.MethodCallExpression m) => throw null; + protected virtual bool IsConstantExpression(System.Linq.Expressions.Expression e) => throw null; + protected virtual bool IsFieldName(object quotedExp) => throw null; + public bool IsJoinedTable(System.Type type) => throw null; + protected virtual bool IsParameterAccess(System.Linq.Expressions.Expression e) => throw null; + protected virtual bool IsParameterOrConvertAccess(System.Linq.Expressions.Expression e) => throw null; + public static bool IsSqlClass(object obj) => throw null; + protected virtual bool IsStaticArrayMethod(System.Linq.Expressions.MethodCallExpression m) => throw null; + protected virtual bool IsStaticStringMethod(System.Linq.Expressions.MethodCallExpression m) => throw null; + public ServiceStack.OrmLite.SqlExpression Join(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)) => throw null; + public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr) => throw null; + public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr) => throw null; + public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; + public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; + public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; + public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; + public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)) => throw null; + public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; + public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; + public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; + public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; + public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; + public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Limit() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Limit(int rows) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Limit(int skip, int rows) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Limit(int? skip, int? rows) => throw null; + public ServiceStack.OrmLite.ModelDefinition ModelDef { get => throw null; set => throw null; } + public int? Offset { get => throw null; set => throw null; } + protected virtual void OnVisitMemberType(System.Type modelType) => throw null; + public System.Collections.Generic.HashSet OnlyFields { get => throw null; set => throw null; } + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(string sqlFilter, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderBy() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> keySelector) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Int64 columnIndex) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderBy(string orderBy) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderBy
    (System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> keySelector) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Int64 columnIndex) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(string orderBy) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending
    (System.Linq.Expressions.Expression> keySelector) => throw null; + public string OrderByExpression { get => throw null; set => throw null; } + public virtual ServiceStack.OrmLite.SqlExpression OrderByFields(params ServiceStack.OrmLite.FieldDefinition[] fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByFields(params string[] fieldNames) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByFieldsDescending(params ServiceStack.OrmLite.FieldDefinition[] fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByFieldsDescending(params string[] fieldNames) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression OrderByRandom() => throw null; + public System.Collections.Generic.List Params { get => throw null; set => throw null; } + public bool PrefixFieldWithTableName { get => throw null; set => throw null; } + public virtual void PrepareUpdateStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary updateFields) => throw null; + public virtual void PrepareUpdateStatement(System.Data.IDbCommand dbCmd, T item, bool excludeDefaults = default(bool)) => throw null; + protected string RemoveQuoteFromAlias(string exp) => throw null; + public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; + public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; + public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; + public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; + public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; + public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; + public int? Rows { get => throw null; set => throw null; } + public virtual ServiceStack.OrmLite.SqlExpression Select() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(string[] fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(string selectExpression) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(string[] fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(string selectExpression) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public string SelectExpression { get => throw null; set => throw null; } + public static System.Action> SelectFilter { get => throw null; set => throw null; } + public string SelectInto() => throw null; + public string SelectInto(ServiceStack.OrmLite.QueryType queryType) => throw null; + protected string Sep { get => throw null; } + public virtual ServiceStack.OrmLite.SqlExpression SetTableAlias(string tableAlias) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Skip(int? skip = default(int?)) => throw null; + public string SqlColumn(string columnName) => throw null; + protected SqlExpression(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; + public System.Func SqlFilter { get => throw null; set => throw null; } + public string SqlTable(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public string TableAlias { get => throw null; set => throw null; } + public System.Collections.Generic.ISet Tags { get => throw null; } + public virtual ServiceStack.OrmLite.SqlExpression Take(int? take = default(int?)) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> keySelector) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenBy(string orderBy) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenBy
    (System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> keySelector) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(string orderBy) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending
    (System.Linq.Expressions.Expression> fields) => throw null; + protected virtual string ToCast(string quotedColName) => throw null; + protected virtual ServiceStack.OrmLite.PartialSqlString ToComparePartialString(System.Collections.Generic.List args) => throw null; + protected ServiceStack.OrmLite.PartialSqlString ToConcatPartialString(System.Collections.Generic.List args) => throw null; + public virtual string ToCountStatement() => throw null; + public virtual string ToDeleteRowStatement() => throw null; + protected virtual ServiceStack.OrmLite.PartialSqlString ToLengthPartialString(object arg) => throw null; + public virtual string ToMergedParamsSelectStatement() => throw null; + public virtual string ToSelectStatement() => throw null; + public virtual string ToSelectStatement(ServiceStack.OrmLite.QueryType forType) => throw null; + public const string TrueLiteral = default; + public virtual ServiceStack.OrmLite.SqlExpression UnsafeAnd(string rawSql, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression UnsafeFrom(string rawFrom) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression UnsafeGroupBy(string groupBy) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression UnsafeHaving(string sqlFilter, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression UnsafeOr(string rawSql, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression UnsafeOrderBy(string orderBy) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression UnsafeSelect(string rawSelect) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression UnsafeSelect(string rawSelect, bool distinct) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression UnsafeWhere(string rawSql, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Update() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Update(System.Linq.Expressions.Expression> fields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Update(System.Collections.Generic.IEnumerable updateFields) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Update(System.Collections.Generic.List updateFields) => throw null; + public System.Collections.Generic.List UpdateFields { get => throw null; set => throw null; } + protected internal bool UseFieldName { get => throw null; set => throw null; } + public bool UseSelectPropertiesAsAliases { get => throw null; set => throw null; } + public virtual object Visit(System.Linq.Expressions.Expression exp) => throw null; + protected virtual object VisitBinary(System.Linq.Expressions.BinaryExpression b) => throw null; + protected virtual object VisitColumnAccessMethod(System.Linq.Expressions.MethodCallExpression m) => throw null; + protected virtual object VisitConditional(System.Linq.Expressions.ConditionalExpression e) => throw null; + protected virtual object VisitConstant(System.Linq.Expressions.ConstantExpression c) => throw null; + protected virtual object VisitEnumerableMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; + protected virtual System.Collections.Generic.List VisitExpressionList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; + protected virtual void VisitFilter(string operand, object originalLeft, object originalRight, ref object left, ref object right) => throw null; + protected virtual System.Collections.Generic.List VisitInSqlExpressionList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; + protected virtual object VisitIndexExpression(System.Linq.Expressions.IndexExpression e) => throw null; + protected virtual object VisitJoin(System.Linq.Expressions.Expression exp) => throw null; + protected virtual object VisitLambda(System.Linq.Expressions.LambdaExpression lambda) => throw null; + protected virtual object VisitMemberAccess(System.Linq.Expressions.MemberExpression m) => throw null; + protected virtual object VisitMemberInit(System.Linq.Expressions.MemberInitExpression exp) => throw null; + protected virtual object VisitMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; + protected virtual object VisitNew(System.Linq.Expressions.NewExpression nex) => throw null; + protected virtual object VisitNewArray(System.Linq.Expressions.NewArrayExpression na) => throw null; + protected virtual System.Collections.Generic.List VisitNewArrayFromExpressionList(System.Linq.Expressions.NewArrayExpression na) => throw null; + protected virtual object VisitParameter(System.Linq.Expressions.ParameterExpression p) => throw null; + protected virtual object VisitSqlMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; + protected virtual object VisitStaticArrayMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; + protected virtual object VisitStaticStringMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; + protected virtual object VisitUnary(System.Linq.Expressions.UnaryExpression u) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where() => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(string sqlFilter, params object[] filterParams) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public string WhereExpression { get => throw null; set => throw null; } + public bool WhereStatementWithoutWhereString { get => throw null; set => throw null; } + public virtual ServiceStack.OrmLite.SqlExpression WithSqlFilter(System.Func sqlFilter) => throw null; + protected bool isSelectExpression; + protected ServiceStack.OrmLite.ModelDefinition modelDef; + protected bool selectDistinct; + protected bool skipParameterizationForThisExpression; + protected System.Collections.Generic.List tableDefs; + protected bool useFieldName; + protected bool visitedExpressionIsTableColumn; + } + + // Generated from `ServiceStack.OrmLite.SqlExpressionExtensions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlExpressionExtensions + { + public static string Column
    (this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Linq.Expressions.Expression> propertyExpression, bool prefixTable = default(bool)) => throw null; + public static string Column
    (this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string propertyName, bool prefixTable = default(bool)) => throw null; + public static string Column
    (this ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Linq.Expressions.Expression> propertyExpression, bool prefixTable = default(bool)) => throw null; + public static string Column
    (this ServiceStack.OrmLite.ISqlExpression sqlExpression, string propertyName, bool prefixTable = default(bool)) => throw null; + public static ServiceStack.OrmLite.IUntypedSqlExpression GetUntypedSqlExpression(this ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; + public static string Table(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; + public static string Table(this ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; + public static ServiceStack.OrmLite.IOrmLiteDialectProvider ToDialectProvider(this ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlExpressionVisitor` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class SqlExpressionVisitor + { + protected SqlExpressionVisitor() => throw null; + protected virtual System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression exp) => throw null; + protected virtual System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression b) => throw null; + protected virtual System.Linq.Expressions.MemberBinding VisitBinding(System.Linq.Expressions.MemberBinding binding) => throw null; + protected virtual System.Collections.Generic.IEnumerable VisitBindingList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; + protected virtual System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression c) => throw null; + protected virtual System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression c) => throw null; + protected virtual System.Linq.Expressions.ElementInit VisitElementInitializer(System.Linq.Expressions.ElementInit initializer) => throw null; + protected virtual System.Collections.Generic.IEnumerable VisitElementInitializerList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; + protected virtual System.Collections.ObjectModel.ReadOnlyCollection VisitExpressionList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; + protected virtual System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression iv) => throw null; + protected virtual System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.LambdaExpression lambda) => throw null; + protected virtual System.Linq.Expressions.Expression VisitListInit(System.Linq.Expressions.ListInitExpression init) => throw null; + protected virtual System.Linq.Expressions.Expression VisitMemberAccess(System.Linq.Expressions.MemberExpression m) => throw null; + protected virtual System.Linq.Expressions.MemberAssignment VisitMemberAssignment(System.Linq.Expressions.MemberAssignment assignment) => throw null; + protected virtual System.Linq.Expressions.Expression VisitMemberInit(System.Linq.Expressions.MemberInitExpression init) => throw null; + protected virtual System.Linq.Expressions.MemberListBinding VisitMemberListBinding(System.Linq.Expressions.MemberListBinding binding) => throw null; + protected virtual System.Linq.Expressions.MemberMemberBinding VisitMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding binding) => throw null; + protected virtual System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; + protected virtual System.Linq.Expressions.NewExpression VisitNew(System.Linq.Expressions.NewExpression nex) => throw null; + protected virtual System.Linq.Expressions.Expression VisitNewArray(System.Linq.Expressions.NewArrayExpression na) => throw null; + protected virtual System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression p) => throw null; + protected virtual System.Linq.Expressions.Expression VisitTypeIs(System.Linq.Expressions.TypeBinaryExpression b) => throw null; + protected virtual System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression u) => throw null; + } + + // Generated from `ServiceStack.OrmLite.SqlInValues` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SqlInValues + { + public int Count { get => throw null; } + public const string EmptyIn = default; + public System.Collections.IEnumerable GetValues() => throw null; + public SqlInValues(System.Collections.IEnumerable values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; + public string ToSqlInString() => throw null; + } + + // Generated from `ServiceStack.OrmLite.TableOptions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TableOptions + { + public string Alias { get => throw null; set => throw null; } + public string Expression { get => throw null; set => throw null; } + public TableOptions() => throw null; + } + + // Generated from `ServiceStack.OrmLite.UntypedApi<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UntypedApi : ServiceStack.OrmLite.IUntypedApi + { + public System.Collections.IEnumerable Cast(System.Collections.IEnumerable results) => throw null; + public System.Data.IDbConnection Db { get => throw null; set => throw null; } + public System.Data.IDbCommand DbCmd { get => throw null; set => throw null; } + public int Delete(object obj, object anonType) => throw null; + public int DeleteAll() => throw null; + public int DeleteById(object id) => throw null; + public int DeleteByIds(System.Collections.IEnumerable idValues) => throw null; + public int DeleteNonDefaults(object obj, object filter) => throw null; + public void Exec(System.Action filter) => throw null; + public TReturn Exec(System.Func filter) => throw null; + public System.Threading.Tasks.Task Exec(System.Func> filter) => throw null; + public System.Int64 Insert(object obj, System.Action commandFilter, bool selectIdentity = default(bool)) => throw null; + public System.Int64 Insert(object obj, bool selectIdentity = default(bool)) => throw null; + public void InsertAll(System.Collections.IEnumerable objs) => throw null; + public void InsertAll(System.Collections.IEnumerable objs, System.Action commandFilter) => throw null; + public bool Save(object obj) => throw null; + public int SaveAll(System.Collections.IEnumerable objs) => throw null; + public System.Threading.Tasks.Task SaveAllAsync(System.Collections.IEnumerable objs, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task SaveAsync(object obj, System.Threading.CancellationToken token) => throw null; + public UntypedApi() => throw null; + public int Update(object obj) => throw null; + public int Update(object obj, System.Action commandFilter) => throw null; + public int UpdateAll(System.Collections.IEnumerable objs) => throw null; + public int UpdateAll(System.Collections.IEnumerable objs, System.Action commandFilter) => throw null; + public System.Threading.Tasks.Task UpdateAsync(object obj, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.OrmLite.UntypedApiExtensions` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class UntypedApiExtensions + { + public static ServiceStack.OrmLite.IUntypedApi CreateTypedApi(this System.Data.IDbCommand dbCmd, System.Type forType) => throw null; + public static ServiceStack.OrmLite.IUntypedApi CreateTypedApi(this System.Data.IDbConnection db, System.Type forType) => throw null; + public static ServiceStack.OrmLite.IUntypedApi CreateTypedApi(this System.Type forType) => throw null; + } + + // Generated from `ServiceStack.OrmLite.UntypedSqlExpressionProxy<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UntypedSqlExpressionProxy : ServiceStack.OrmLite.ISqlExpression, ServiceStack.OrmLite.IUntypedSqlExpression + { + public ServiceStack.OrmLite.IUntypedSqlExpression AddCondition(string condition, string sqlFilter, params object[] filterParams) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression And(string sqlFilter, params object[] filterParams) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; + public string BodyExpression { get => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression ClearLimits() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Clone() => throw null; + public System.Data.IDbDataParameter CreateParam(string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?)) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression CrossJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression CustomJoin(string joinString) => throw null; + public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression Ensure(string sqlFilter, params object[] filterParams) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; + public System.Tuple FirstMatchingField(string fieldName) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression From(string tables) => throw null; + public string FromExpression { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public System.Collections.Generic.IList GetAllFields() => throw null; + public ServiceStack.OrmLite.ModelDefinition GetModelDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression GroupBy() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression GroupBy(string groupBy) => throw null; + public string GroupByExpression { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression Having() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Having(string sqlFilter, params object[] filterParams) => throw null; + public string HavingExpression { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression Insert() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Insert(System.Collections.Generic.List insertFields) => throw null; + public System.Collections.Generic.List InsertFields { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression Join(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Join(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression LeftJoin(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Limit() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Limit(int rows) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Limit(int skip, int rows) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Limit(int? skip, int? rows) => throw null; + public ServiceStack.OrmLite.ModelDefinition ModelDef { get => throw null; } + public int? Offset { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression Or(string sqlFilter, params object[] filterParams) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression OrderBy() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression OrderBy(string orderBy) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression OrderBy
    (System.Linq.Expressions.Expression> keySelector) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression OrderByDescending(string orderBy) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression OrderByDescending
    (System.Linq.Expressions.Expression> keySelector) => throw null; + public string OrderByExpression { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression OrderByFields(params ServiceStack.OrmLite.FieldDefinition[] fields) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression OrderByFields(params string[] fieldNames) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression OrderByFieldsDescending(params ServiceStack.OrmLite.FieldDefinition[] fields) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression OrderByFieldsDescending(params string[] fieldNames) => throw null; + public System.Collections.Generic.List Params { get => throw null; set => throw null; } + public bool PrefixFieldWithTableName { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; + public int? Rows { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression Select() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Select(string selectExpression) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; + public string SelectExpression { get => throw null; set => throw null; } + public string SelectInto() => throw null; + public string SelectInto(ServiceStack.OrmLite.QueryType queryType) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Skip(int? skip = default(int?)) => throw null; + public string SqlColumn(string columnName) => throw null; + public string SqlTable(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; + public string TableAlias { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression Take(int? take = default(int?)) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression ThenBy(string orderBy) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression ThenBy
    (System.Linq.Expressions.Expression> keySelector) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression ThenByDescending(string orderBy) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression ThenByDescending
    (System.Linq.Expressions.Expression> keySelector) => throw null; + public string ToCountStatement() => throw null; + public string ToDeleteRowStatement() => throw null; + public string ToSelectStatement() => throw null; + public string ToSelectStatement(ServiceStack.OrmLite.QueryType forType) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeAnd(string rawSql, params object[] filterParams) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeFrom(string rawFrom) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeOr(string rawSql, params object[] filterParams) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeSelect(string rawSelect) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeWhere(string rawSql, params object[] filterParams) => throw null; + public UntypedSqlExpressionProxy(ServiceStack.OrmLite.SqlExpression q) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Update() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Update(System.Collections.Generic.List updateFields) => throw null; + public System.Collections.Generic.List UpdateFields { get => throw null; set => throw null; } + public ServiceStack.OrmLite.IUntypedSqlExpression Where() => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Where(string sqlFilter, params object[] filterParams) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public ServiceStack.OrmLite.IUntypedSqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; + public string WhereExpression { get => throw null; set => throw null; } + public bool WhereStatementWithoutWhereString { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.UpperCaseNamingStrategy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UpperCaseNamingStrategy : ServiceStack.OrmLite.OrmLiteNamingStrategyBase + { + public override string GetColumnName(string name) => throw null; + public override string GetTableName(string name) => throw null; + public UpperCaseNamingStrategy() => throw null; + } + + // Generated from `ServiceStack.OrmLite.XmlValue` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct XmlValue + { + public bool Equals(ServiceStack.OrmLite.XmlValue other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public override string ToString() => throw null; + public string Xml { get => throw null; } + // Stub generator skipped constructor + public XmlValue(string xml) => throw null; + public static implicit operator ServiceStack.OrmLite.XmlValue(string expandedName) => throw null; + } + + namespace Converters + { + // Generated from `ServiceStack.OrmLite.Converters.BoolAsIntConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BoolAsIntConverter : ServiceStack.OrmLite.Converters.BoolConverter + { + public BoolAsIntConverter() => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.BoolConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BoolConverter : ServiceStack.OrmLite.NativeValueOrmLiteConverter + { + public BoolConverter() => throw null; + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.ByteArrayConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ByteArrayConverter : ServiceStack.OrmLite.OrmLiteConverter + { + public ByteArrayConverter() => throw null; + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.Converters.ByteConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ByteConverter : ServiceStack.OrmLite.Converters.IntegerConverter + { + public ByteConverter() => throw null; + public override System.Data.DbType DbType { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.Converters.CharArrayConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CharArrayConverter : ServiceStack.OrmLite.Converters.StringConverter + { + public CharArrayConverter() => throw null; + public CharArrayConverter(int stringLength) => throw null; + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.CharConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CharConverter : ServiceStack.OrmLite.Converters.StringConverter + { + public CharConverter() => throw null; + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public override string GetColumnDefinition(int? stringLength) => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.DateOnlyConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DateOnlyConverter : ServiceStack.OrmLite.Converters.DateTimeConverter + { + public DateOnlyConverter() => throw null; + public override object FromDbValue(object value) => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.DateTimeConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DateTimeConverter : ServiceStack.OrmLite.OrmLiteConverter + { + public override string ColumnDefinition { get => throw null; } + public System.DateTimeKind DateStyle { get => throw null; set => throw null; } + public DateTimeConverter() => throw null; + public virtual string DateTimeFmt(System.DateTime dateTime, string dateTimeFormat) => throw null; + public override System.Data.DbType DbType { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public virtual object FromDbValue(object value) => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.DateTimeOffsetConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DateTimeOffsetConverter : ServiceStack.OrmLite.OrmLiteConverter + { + public override string ColumnDefinition { get => throw null; } + public DateTimeOffsetConverter() => throw null; + public override System.Data.DbType DbType { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.DecimalConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DecimalConverter : ServiceStack.OrmLite.Converters.FloatConverter, ServiceStack.OrmLite.IHasColumnDefinitionPrecision + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public DecimalConverter() => throw null; + public DecimalConverter(int precision, int scale) => throw null; + public virtual string GetColumnDefinition(int? precision, int? scale) => throw null; + public int Precision { get => throw null; set => throw null; } + public int Scale { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.Converters.DoubleConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DoubleConverter : ServiceStack.OrmLite.Converters.FloatConverter + { + public override System.Data.DbType DbType { get => throw null; } + public DoubleConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.EnumConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EnumConverter : ServiceStack.OrmLite.Converters.StringConverter + { + public EnumConverter() => throw null; + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public static ServiceStack.OrmLite.Converters.EnumKind GetEnumKind(System.Type enumType) => throw null; + public static bool HasEnumMembers(System.Type enumType) => throw null; + public override void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType) => throw null; + public static bool IsIntEnum(System.Type fieldType) => throw null; + public static System.Char ToCharValue(object value) => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.EnumKind` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum EnumKind + { + Char, + EnumMember, + Int, + String, + } + + // Generated from `ServiceStack.OrmLite.Converters.FloatConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FloatConverter : ServiceStack.OrmLite.NativeValueOrmLiteConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public FloatConverter() => throw null; + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.GuidConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GuidConverter : ServiceStack.OrmLite.OrmLiteConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public GuidConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.Int16Converter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Int16Converter : ServiceStack.OrmLite.Converters.IntegerConverter + { + public override System.Data.DbType DbType { get => throw null; } + public Int16Converter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.Int32Converter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Int32Converter : ServiceStack.OrmLite.Converters.IntegerConverter + { + public Int32Converter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.Int64Converter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Int64Converter : ServiceStack.OrmLite.Converters.IntegerConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public Int64Converter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.IntegerConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class IntegerConverter : ServiceStack.OrmLite.NativeValueOrmLiteConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + protected IntegerConverter() => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.ReferenceTypeConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReferenceTypeConverter : ServiceStack.OrmLite.Converters.StringConverter + { + public override string ColumnDefinition { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public override string GetColumnDefinition(int? stringLength) => throw null; + public override string MaxColumnDefinition { get => throw null; } + public ReferenceTypeConverter() => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.RowVersionConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RowVersionConverter : ServiceStack.OrmLite.OrmLiteConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public RowVersionConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.SByteConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SByteConverter : ServiceStack.OrmLite.Converters.IntegerConverter + { + public override System.Data.DbType DbType { get => throw null; } + public SByteConverter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.StringConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringConverter : ServiceStack.OrmLite.OrmLiteConverter, ServiceStack.OrmLite.IHasColumnDefinitionLength + { + public override string ColumnDefinition { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public virtual string GetColumnDefinition(int? stringLength) => throw null; + public override void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType) => throw null; + public virtual string MaxColumnDefinition { get => throw null; set => throw null; } + public virtual int MaxVarCharLength { get => throw null; } + public StringConverter() => throw null; + public StringConverter(int stringLength) => throw null; + public int StringLength { get => throw null; set => throw null; } + public bool UseUnicode { get => throw null; set => throw null; } + protected string maxColumnDefinition; + } + + // Generated from `ServiceStack.OrmLite.Converters.TimeOnlyConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TimeOnlyConverter : ServiceStack.OrmLite.Converters.TimeSpanAsIntConverter + { + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public TimeOnlyConverter() => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.TimeSpanAsIntConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TimeSpanAsIntConverter : ServiceStack.OrmLite.OrmLiteConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public TimeSpanAsIntConverter() => throw null; + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.UInt16Converter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UInt16Converter : ServiceStack.OrmLite.Converters.IntegerConverter + { + public override System.Data.DbType DbType { get => throw null; } + public UInt16Converter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.UInt32Converter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UInt32Converter : ServiceStack.OrmLite.Converters.IntegerConverter + { + public override System.Data.DbType DbType { get => throw null; } + public UInt32Converter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.UInt64Converter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UInt64Converter : ServiceStack.OrmLite.Converters.IntegerConverter + { + public override string ColumnDefinition { get => throw null; } + public override System.Data.DbType DbType { get => throw null; } + public UInt64Converter() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Converters.ValueTypeConverter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValueTypeConverter : ServiceStack.OrmLite.Converters.StringConverter + { + public override string ColumnDefinition { get => throw null; } + public override object FromDbValue(System.Type fieldType, object value) => throw null; + public override string GetColumnDefinition(int? stringLength) => throw null; + public override string MaxColumnDefinition { get => throw null; } + public override object ToDbValue(System.Type fieldType, object value) => throw null; + public override string ToQuotedString(System.Type fieldType, object value) => throw null; + public ValueTypeConverter() => throw null; + } + + } + namespace Dapper + { + // Generated from `ServiceStack.OrmLite.Dapper.CommandDefinition` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct CommandDefinition + { + public bool Buffered { get => throw null; } + public System.Threading.CancellationToken CancellationToken { get => throw null; } + // Stub generator skipped constructor + public CommandDefinition(string commandText, object parameters = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?), ServiceStack.OrmLite.Dapper.CommandFlags flags = default(ServiceStack.OrmLite.Dapper.CommandFlags), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public string CommandText { get => throw null; } + public int? CommandTimeout { get => throw null; } + public System.Data.CommandType? CommandType { get => throw null; } + public ServiceStack.OrmLite.Dapper.CommandFlags Flags { get => throw null; } + public object Parameters { get => throw null; } + public bool Pipelined { get => throw null; } + public System.Data.IDbTransaction Transaction { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.Dapper.CommandFlags` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum CommandFlags + { + Buffered, + NoCache, + None, + Pipelined, + } + + // Generated from `ServiceStack.OrmLite.Dapper.CustomPropertyTypeMap` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomPropertyTypeMap : ServiceStack.OrmLite.Dapper.SqlMapper.ITypeMap + { + public CustomPropertyTypeMap(System.Type type, System.Func propertySelector) => throw null; + public System.Reflection.ConstructorInfo FindConstructor(string[] names, System.Type[] types) => throw null; + public System.Reflection.ConstructorInfo FindExplicitConstructor() => throw null; + public ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetConstructorParameter(System.Reflection.ConstructorInfo constructor, string columnName) => throw null; + public ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetMember(string columnName) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Dapper.DbString` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DbString : ServiceStack.OrmLite.Dapper.SqlMapper.ICustomQueryParameter + { + public void AddParameter(System.Data.IDbCommand command, string name) => throw null; + public DbString() => throw null; + public const int DefaultLength = default; + public bool IsAnsi { get => throw null; set => throw null; } + public static bool IsAnsiDefault { get => throw null; set => throw null; } + public bool IsFixedLength { get => throw null; set => throw null; } + public int Length { get => throw null; set => throw null; } + public string Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.Dapper.DefaultTypeMap` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultTypeMap : ServiceStack.OrmLite.Dapper.SqlMapper.ITypeMap + { + public DefaultTypeMap(System.Type type) => throw null; + public System.Reflection.ConstructorInfo FindConstructor(string[] names, System.Type[] types) => throw null; + public System.Reflection.ConstructorInfo FindExplicitConstructor() => throw null; + public ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetConstructorParameter(System.Reflection.ConstructorInfo constructor, string columnName) => throw null; + public ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetMember(string columnName) => throw null; + public static bool MatchNamesWithUnderscores { get => throw null; set => throw null; } + public System.Collections.Generic.List Properties { get => throw null; } + } + + // Generated from `ServiceStack.OrmLite.Dapper.DynamicParameters` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicParameters : ServiceStack.OrmLite.Dapper.SqlMapper.IDynamicParameters, ServiceStack.OrmLite.Dapper.SqlMapper.IParameterCallbacks, ServiceStack.OrmLite.Dapper.SqlMapper.IParameterLookup + { + public void Add(string name, object value, System.Data.DbType? dbType, System.Data.ParameterDirection? direction, int? size) => throw null; + public void Add(string name, object value = default(object), System.Data.DbType? dbType = default(System.Data.DbType?), System.Data.ParameterDirection? direction = default(System.Data.ParameterDirection?), int? size = default(int?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?)) => throw null; + public void AddDynamicParams(object param) => throw null; + protected void AddParameters(System.Data.IDbCommand command, ServiceStack.OrmLite.Dapper.SqlMapper.Identity identity) => throw null; + void ServiceStack.OrmLite.Dapper.SqlMapper.IDynamicParameters.AddParameters(System.Data.IDbCommand command, ServiceStack.OrmLite.Dapper.SqlMapper.Identity identity) => throw null; + public DynamicParameters() => throw null; + public DynamicParameters(object template) => throw null; + public T Get(string name) => throw null; + object ServiceStack.OrmLite.Dapper.SqlMapper.IParameterLookup.this[string name] { get => throw null; } + void ServiceStack.OrmLite.Dapper.SqlMapper.IParameterCallbacks.OnCompleted() => throw null; + public ServiceStack.OrmLite.Dapper.DynamicParameters Output(T target, System.Linq.Expressions.Expression> expression, System.Data.DbType? dbType = default(System.Data.DbType?), int? size = default(int?)) => throw null; + public System.Collections.Generic.IEnumerable ParameterNames { get => throw null; } + public bool RemoveUnused { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.OrmLite.Dapper.ExplicitConstructorAttribute` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ExplicitConstructorAttribute : System.Attribute + { + public ExplicitConstructorAttribute() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Dapper.IWrappedDataReader` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IWrappedDataReader : System.Data.IDataReader, System.Data.IDataRecord, System.IDisposable + { + System.Data.IDbCommand Command { get; } + System.Data.IDataReader Reader { get; } + } + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SqlMapper + { + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+GridReader` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GridReader : System.IDisposable + { + public System.Data.IDbCommand Command { get => throw null; set => throw null; } + public void Dispose() => throw null; + public bool IsConsumed { get => throw null; set => throw null; } + public System.Collections.Generic.IEnumerable Read(System.Type type, bool buffered = default(bool)) => throw null; + public System.Collections.Generic.IEnumerable Read(bool buffered = default(bool)) => throw null; + public System.Collections.Generic.IEnumerable Read(bool buffered = default(bool)) => throw null; + public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; + public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; + public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; + public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; + public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; + public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; + public System.Collections.Generic.IEnumerable Read(System.Type[] types, System.Func map, string splitOn = default(string), bool buffered = default(bool)) => throw null; + public System.Threading.Tasks.Task> ReadAsync(System.Type type, bool buffered = default(bool)) => throw null; + public System.Threading.Tasks.Task> ReadAsync(bool buffered = default(bool)) => throw null; + public System.Threading.Tasks.Task> ReadAsync(bool buffered = default(bool)) => throw null; + public dynamic ReadFirst() => throw null; + public object ReadFirst(System.Type type) => throw null; + public T ReadFirst() => throw null; + public System.Threading.Tasks.Task ReadFirstAsync() => throw null; + public System.Threading.Tasks.Task ReadFirstAsync(System.Type type) => throw null; + public System.Threading.Tasks.Task ReadFirstAsync() => throw null; + public dynamic ReadFirstOrDefault() => throw null; + public object ReadFirstOrDefault(System.Type type) => throw null; + public T ReadFirstOrDefault() => throw null; + public System.Threading.Tasks.Task ReadFirstOrDefaultAsync() => throw null; + public System.Threading.Tasks.Task ReadFirstOrDefaultAsync(System.Type type) => throw null; + public System.Threading.Tasks.Task ReadFirstOrDefaultAsync() => throw null; + public dynamic ReadSingle() => throw null; + public object ReadSingle(System.Type type) => throw null; + public T ReadSingle() => throw null; + public System.Threading.Tasks.Task ReadSingleAsync() => throw null; + public System.Threading.Tasks.Task ReadSingleAsync(System.Type type) => throw null; + public System.Threading.Tasks.Task ReadSingleAsync() => throw null; + public dynamic ReadSingleOrDefault() => throw null; + public object ReadSingleOrDefault(System.Type type) => throw null; + public T ReadSingleOrDefault() => throw null; + public System.Threading.Tasks.Task ReadSingleOrDefaultAsync() => throw null; + public System.Threading.Tasks.Task ReadSingleOrDefaultAsync(System.Type type) => throw null; + public System.Threading.Tasks.Task ReadSingleOrDefaultAsync() => throw null; + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+ICustomQueryParameter` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICustomQueryParameter + { + void AddParameter(System.Data.IDbCommand command, string name); + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+IDynamicParameters` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDynamicParameters + { + void AddParameters(System.Data.IDbCommand command, ServiceStack.OrmLite.Dapper.SqlMapper.Identity identity); + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+IMemberMap` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMemberMap + { + string ColumnName { get; } + System.Reflection.FieldInfo Field { get; } + System.Type MemberType { get; } + System.Reflection.ParameterInfo Parameter { get; } + System.Reflection.PropertyInfo Property { get; } + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+IParameterCallbacks` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IParameterCallbacks : ServiceStack.OrmLite.Dapper.SqlMapper.IDynamicParameters + { + void OnCompleted(); + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+IParameterLookup` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IParameterLookup : ServiceStack.OrmLite.Dapper.SqlMapper.IDynamicParameters + { + object this[string name] { get; } + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+ITypeHandler` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypeHandler + { + object Parse(System.Type destinationType, object value); + void SetValue(System.Data.IDbDataParameter parameter, object value); + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+ITypeMap` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypeMap + { + System.Reflection.ConstructorInfo FindConstructor(string[] names, System.Type[] types); + System.Reflection.ConstructorInfo FindExplicitConstructor(); + ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetConstructorParameter(System.Reflection.ConstructorInfo constructor, string columnName); + ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetMember(string columnName); + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+Identity` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Identity : System.IEquatable + { + public bool Equals(ServiceStack.OrmLite.Dapper.SqlMapper.Identity other) => throw null; + public override bool Equals(object obj) => throw null; + public ServiceStack.OrmLite.Dapper.SqlMapper.Identity ForDynamicParameters(System.Type type) => throw null; + public override int GetHashCode() => throw null; + internal Identity(string sql, System.Data.CommandType? commandType, System.Data.IDbConnection connection, System.Type type, System.Type parametersType) => throw null; + public override string ToString() => throw null; + public System.Data.CommandType? commandType; + public string connectionString; + public int gridIndex; + public int hashCode; + public System.Type parametersType; + public string sql; + public System.Type type; + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+Settings` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Settings + { + public static bool ApplyNullValues { get => throw null; set => throw null; } + public static int? CommandTimeout { get => throw null; set => throw null; } + public static int InListStringSplitCount { get => throw null; set => throw null; } + public static bool PadListExpansions { get => throw null; set => throw null; } + public static void SetDefaults() => throw null; + public static bool UseSingleResultOptimization { get => throw null; set => throw null; } + public static bool UseSingleRowOptimization { get => throw null; set => throw null; } + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+StringTypeHandler<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class StringTypeHandler : ServiceStack.OrmLite.Dapper.SqlMapper.TypeHandler + { + protected abstract string Format(T xml); + public override T Parse(object value) => throw null; + protected abstract T Parse(string xml); + public override void SetValue(System.Data.IDbDataParameter parameter, T value) => throw null; + protected StringTypeHandler() => throw null; + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+TypeHandler<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class TypeHandler : ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler + { + object ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler.Parse(System.Type destinationType, object value) => throw null; + public abstract T Parse(object value); + public abstract void SetValue(System.Data.IDbDataParameter parameter, T value); + void ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler.SetValue(System.Data.IDbDataParameter parameter, object value) => throw null; + protected TypeHandler() => throw null; + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+TypeHandlerCache<>` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TypeHandlerCache + { + public static T Parse(object value) => throw null; + public static void SetValue(System.Data.IDbDataParameter parameter, object value) => throw null; + } + + + // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+UdtTypeHandler` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UdtTypeHandler : ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler + { + object ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler.Parse(System.Type destinationType, object value) => throw null; + void ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler.SetValue(System.Data.IDbDataParameter parameter, object value) => throw null; + public UdtTypeHandler(string udtTypeName) => throw null; + } + + + public static void AddTypeHandler(System.Type type, ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler handler) => throw null; + public static void AddTypeHandler(ServiceStack.OrmLite.Dapper.SqlMapper.TypeHandler handler) => throw null; + public static void AddTypeHandlerImpl(System.Type type, ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler handler, bool clone) => throw null; + public static void AddTypeMap(System.Type type, System.Data.DbType dbType) => throw null; + public static System.Collections.Generic.List AsList(this System.Collections.Generic.IEnumerable source) => throw null; + public static ServiceStack.OrmLite.Dapper.SqlMapper.ICustomQueryParameter AsTableValuedParameter(this System.Data.DataTable table, string typeName = default(string)) => throw null; + public static ServiceStack.OrmLite.Dapper.SqlMapper.ICustomQueryParameter AsTableValuedParameter(this System.Collections.Generic.IEnumerable list, string typeName = default(string)) where T : System.Data.IDataRecord => throw null; + public static System.Collections.Generic.IEqualityComparer ConnectionStringComparer { get => throw null; set => throw null; } + public static System.Action CreateParamInfoGenerator(ServiceStack.OrmLite.Dapper.SqlMapper.Identity identity, bool checkForDuplicates, bool removeUnused) => throw null; + public static int Execute(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static int Execute(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task ExecuteAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task ExecuteAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Data.IDataReader ExecuteReader(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Data.IDataReader ExecuteReader(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Data.CommandBehavior commandBehavior) => throw null; + public static System.Data.IDataReader ExecuteReader(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.Common.DbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.Common.DbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Data.CommandBehavior commandBehavior) => throw null; + public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.Common.DbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Data.CommandBehavior commandBehavior) => throw null; + public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static object ExecuteScalar(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static object ExecuteScalar(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static T ExecuteScalar(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static T ExecuteScalar(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task ExecuteScalarAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task ExecuteScalarAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task ExecuteScalarAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task ExecuteScalarAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Data.IDbDataParameter FindOrAddParameter(System.Data.IDataParameterCollection parameters, System.Data.IDbCommand command, string name) => throw null; + public static string Format(object value) => throw null; + public static System.Collections.Generic.IEnumerable> GetCachedSQL(int ignoreHitCountAbove = default(int)) => throw null; + public static int GetCachedSQLCount() => throw null; + public static System.Data.DbType GetDbType(object value) => throw null; + public static System.Collections.Generic.IEnumerable> GetHashCollissions() => throw null; + public static System.Func GetRowParser(this System.Data.IDataReader reader, System.Type type, int startIndex = default(int), int length = default(int), bool returnNullIfFirstMissing = default(bool)) => throw null; + public static System.Func GetRowParser(this System.Data.IDataReader reader, System.Type concreteType = default(System.Type), int startIndex = default(int), int length = default(int), bool returnNullIfFirstMissing = default(bool)) => throw null; + public static System.Func GetTypeDeserializer(System.Type type, System.Data.IDataReader reader, int startBound = default(int), int length = default(int), bool returnNullIfFirstMissing = default(bool)) => throw null; + public static ServiceStack.OrmLite.Dapper.SqlMapper.ITypeMap GetTypeMap(System.Type type) => throw null; + public static string GetTypeName(this System.Data.DataTable table) => throw null; + public static System.Data.DbType LookupDbType(System.Type type, string name, bool demand, out ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler handler) => throw null; + public static void PackListParameters(System.Data.IDbCommand command, string namePrefix, object value) => throw null; + public static System.Collections.Generic.IEnumerable Parse(this System.Data.IDataReader reader) => throw null; + public static System.Collections.Generic.IEnumerable Parse(this System.Data.IDataReader reader, System.Type type) => throw null; + public static System.Collections.Generic.IEnumerable Parse(this System.Data.IDataReader reader) => throw null; + public static void PurgeQueryCache() => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Type[] types, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Type[] types, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static event System.EventHandler QueryCachePurged; + public static object QueryFirst(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static dynamic QueryFirst(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static T QueryFirst(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static T QueryFirst(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static object QueryFirstOrDefault(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static dynamic QueryFirstOrDefault(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static T QueryFirstOrDefault(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static T QueryFirstOrDefault(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static ServiceStack.OrmLite.Dapper.SqlMapper.GridReader QueryMultiple(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static ServiceStack.OrmLite.Dapper.SqlMapper.GridReader QueryMultiple(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QueryMultipleAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QueryMultipleAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static object QuerySingle(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static dynamic QuerySingle(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static T QuerySingle(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static T QuerySingle(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static object QuerySingleOrDefault(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static dynamic QuerySingleOrDefault(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static T QuerySingleOrDefault(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static T QuerySingleOrDefault(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; + public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; + public static System.Char ReadChar(object value) => throw null; + public static System.Char? ReadNullableChar(object value) => throw null; + public static void RemoveTypeMap(System.Type type) => throw null; + public static void ReplaceLiterals(this ServiceStack.OrmLite.Dapper.SqlMapper.IParameterLookup parameters, System.Data.IDbCommand command) => throw null; + public static void ResetTypeHandlers() => throw null; + public static object SanitizeParameterValue(object value) => throw null; + public static void SetTypeMap(System.Type type, ServiceStack.OrmLite.Dapper.SqlMapper.ITypeMap map) => throw null; + public static void SetTypeName(this System.Data.DataTable table, string typeName) => throw null; + public static void ThrowDataException(System.Exception ex, int index, System.Data.IDataReader reader, object value) => throw null; + public static System.Func TypeMapProvider; + } + + } + namespace Legacy + { + // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteReadApiAsyncLegacy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteReadApiAsyncLegacy + { + public static System.Threading.Tasks.Task> ColumnDistinctFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task> ColumnDistinctFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task> ColumnFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task> ColumnFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task> DictionaryFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task> DictionaryFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ExistsFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task ExistsFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task>> LookupFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task>> LookupFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task ScalarFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task ScalarFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Threading.Tasks.Task> SelectFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task> SelectFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task> SelectFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, System.Type fromTableType, string sqlFormat, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task> SelectFmtAsync(this System.Data.IDbConnection dbConn, System.Type fromTableType, string sqlFormat, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task> SqlProcedureFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, object anonType, string sqlFilter, params object[] filterParams) where TOutputModel : new() => throw null; + } + + // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteReadApiLegacy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteReadApiLegacy + { + public static System.Collections.Generic.HashSet ColumnDistinctFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Collections.Generic.List ColumnFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Collections.Generic.Dictionary DictionaryFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static bool Exists(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; + public static bool ExistsFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; + public static System.Collections.Generic.Dictionary> LookupFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static T ScalarFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; + public static System.Collections.Generic.List SelectFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; + public static System.Collections.Generic.List SelectFmt(this System.Data.IDbConnection dbConn, System.Type fromTableType, string sqlFormat, params object[] filterParams) => throw null; + public static System.Collections.Generic.IEnumerable SelectLazyFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; + public static T SingleFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteReadExpressionsApiAsyncLegacy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteReadExpressionsApiAsyncLegacy + { + public static System.Threading.Tasks.Task CountAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SingleFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task SingleFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteReadExpressionsApiLegacy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteReadExpressionsApiLegacy + { + public static System.Int64 Count(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Func include) => throw null; + public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Collections.Generic.IEnumerable include = default(System.Collections.Generic.IEnumerable)) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; + public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; + public static T Single(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; + public static ServiceStack.OrmLite.SqlExpression SqlExpression(this System.Data.IDbConnection dbConn) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteWriteApiAsyncLegacy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteWriteApiAsyncLegacy + { + public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFilter, params object[] filterParams) => throw null; + public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, string sqlFilter, params object[] filterParams) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteWriteCommandExtensionsLegacy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteWriteCommandExtensionsLegacy + { + public static int DeleteFmt(this System.Data.IDbConnection dbConn, System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; + public static int DeleteFmt(this System.Data.IDbConnection dbConn, string sqlFilter, params object[] filterParams) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteWriteExpressionsApiAsyncLegacy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteWriteExpressionsApiAsyncLegacy + { + public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> where, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, string table = default(string), string where = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, string where = default(string)) => throw null; + public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, string where, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, T obj, System.Func, ServiceStack.OrmLite.SqlExpression> onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, T obj, ServiceStack.OrmLite.SqlExpression onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateFmtAsync(this System.Data.IDbConnection dbConn, string table = default(string), string set = default(string), string where = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateFmtAsync(this System.Data.IDbConnection dbConn, string set = default(string), string where = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, T model, System.Func, ServiceStack.OrmLite.SqlExpression> onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteWriteExpressionsApiLegacy` in `ServiceStack.OrmLite, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLiteWriteExpressionsApiLegacy + { + public static int Delete(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> where) => throw null; + public static int DeleteFmt(this System.Data.IDbConnection dbConn, string table = default(string), string where = default(string)) => throw null; + public static int DeleteFmt(this System.Data.IDbConnection dbConn, string where = default(string)) => throw null; + public static void InsertOnly(this System.Data.IDbConnection dbConn, T obj, System.Func, ServiceStack.OrmLite.SqlExpression> onlyFields) => throw null; + public static void InsertOnly(this System.Data.IDbConnection dbConn, T obj, ServiceStack.OrmLite.SqlExpression onlyFields) => throw null; + public static int UpdateFmt(this System.Data.IDbConnection dbConn, string table = default(string), string set = default(string), string where = default(string)) => throw null; + public static int UpdateFmt(this System.Data.IDbConnection dbConn, string set = default(string), string where = default(string)) => throw null; + public static int UpdateOnly(this System.Data.IDbConnection dbConn, T model, System.Func, ServiceStack.OrmLite.SqlExpression> onlyFields) => throw null; + } + + } + } +} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.csproj new file mode 100644 index 00000000000..2f55ebb810d --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.csproj @@ -0,0 +1,14 @@ + + + net6.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.cs b/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.cs new file mode 100644 index 00000000000..a187e8ea56d --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.cs @@ -0,0 +1,4175 @@ +// This file contains auto-generated code. + +namespace ServiceStack +{ + // Generated from `ServiceStack.AssignmentEntry` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AssignmentEntry + { + public AssignmentEntry(string name, ServiceStack.AssignmentMember from, ServiceStack.AssignmentMember to) => throw null; + public ServiceStack.GetMemberDelegate ConvertValueFn; + public ServiceStack.AssignmentMember From; + public ServiceStack.GetMemberDelegate GetValueFn; + public string Name; + public ServiceStack.SetMemberDelegate SetValueFn; + public ServiceStack.AssignmentMember To; + } + + // Generated from `ServiceStack.AssignmentMember` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AssignmentMember + { + public AssignmentMember(System.Type type, System.Reflection.FieldInfo fieldInfo) => throw null; + public AssignmentMember(System.Type type, System.Reflection.MethodInfo methodInfo) => throw null; + public AssignmentMember(System.Type type, System.Reflection.PropertyInfo propertyInfo) => throw null; + public ServiceStack.GetMemberDelegate CreateGetter() => throw null; + public ServiceStack.SetMemberDelegate CreateSetter() => throw null; + public System.Reflection.FieldInfo FieldInfo; + public System.Reflection.MethodInfo MethodInfo; + public System.Reflection.PropertyInfo PropertyInfo; + public System.Type Type; + } + + // Generated from `ServiceStack.AutoMapping` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AutoMapping + { + public static void IgnoreMapping(System.Type fromType, System.Type toType) => throw null; + public static void IgnoreMapping() => throw null; + public static void RegisterConverter(System.Func converter) => throw null; + public static void RegisterPopulator(System.Action populator) => throw null; + } + + // Generated from `ServiceStack.AutoMappingUtils` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AutoMappingUtils + { + public static bool CanCast(System.Type toType, System.Type fromType) => throw null; + public static object ChangeTo(this string strValue, System.Type type) => throw null; + public static object ChangeValueType(object from, System.Type toType) => throw null; + public static object ConvertTo(this object from, System.Type toType) => throw null; + public static object ConvertTo(this object from, System.Type toType, bool skipConverters) => throw null; + public static T ConvertTo(this object from) => throw null; + public static T ConvertTo(this object from, T defaultValue) => throw null; + public static T ConvertTo(this object from, bool skipConverters) => throw null; + public static T CreateCopy(this T from) => throw null; + public static object CreateDefaultValue(System.Type type, System.Collections.Generic.Dictionary recursionInfo) => throw null; + public static object[] CreateDefaultValues(System.Collections.Generic.IEnumerable types, System.Collections.Generic.Dictionary recursionInfo) => throw null; + public static string GetAssemblyPath(this System.Type source) => throw null; + public static ServiceStack.GetMemberDelegate GetConverter(System.Type fromType, System.Type toType) => throw null; + public static object GetDefaultValue(this System.Type type) => throw null; + public static System.Reflection.MethodInfo GetExplicitCastMethod(System.Type fromType, System.Type toType) => throw null; + public static System.Reflection.MethodInfo GetImplicitCastMethod(System.Type fromType, System.Type toType) => throw null; + public static ServiceStack.PopulateMemberDelegate GetPopulator(System.Type targetType, System.Type sourceType) => throw null; + public static object GetProperty(this System.Reflection.PropertyInfo propertyInfo, object obj) => throw null; + public static System.Collections.Generic.IEnumerable> GetPropertyAttributes(System.Type fromType) => throw null; + public static System.Collections.Generic.List GetPropertyNames(this System.Type type) => throw null; + public static bool IsDebugBuild(this System.Reflection.Assembly assembly) => throw null; + public static bool IsDefaultValue(object value) => throw null; + public static bool IsDefaultValue(object value, System.Type valueType) => throw null; + public static bool IsUnsettableValue(System.Reflection.FieldInfo fieldInfo, System.Reflection.PropertyInfo propertyInfo) => throw null; + public static System.Array PopulateArray(System.Type type, System.Collections.Generic.Dictionary recursionInfo) => throw null; + public static To PopulateFromPropertiesWithAttribute(this To to, From from, System.Type attributeType) => throw null; + public static To PopulateFromPropertiesWithoutAttribute(this To to, From from, System.Type attributeType) => throw null; + public static object PopulateWith(object obj) => throw null; + public static To PopulateWith(this To to, From from) => throw null; + public static To PopulateWithNonDefaultValues(this To to, From from) => throw null; + public static void Reset() => throw null; + public static void SetGenericCollection(System.Type realizedListType, object genericObj, System.Collections.Generic.Dictionary recursionInfo) => throw null; + public static void SetProperty(this System.Reflection.PropertyInfo propertyInfo, object obj, object value) => throw null; + public static void SetValue(System.Reflection.FieldInfo fieldInfo, System.Reflection.PropertyInfo propertyInfo, object obj, object value) => throw null; + public static bool ShouldIgnoreMapping(System.Type fromType, System.Type toType) => throw null; + public static To ThenDo(this To to, System.Action fn) => throw null; + public static object TryConvertCollections(System.Type fromType, System.Type toType, object fromValue) => throw null; + } + + // Generated from `ServiceStack.CollectionExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CollectionExtensions + { + public static object Convert(object objCollection, System.Type toCollectionType) => throw null; + public static System.Collections.Generic.ICollection CreateAndPopulate(System.Type ofCollectionType, T[] withItems) => throw null; + public static T[] ToArray(this System.Collections.Generic.ICollection collection) => throw null; + } + + // Generated from `ServiceStack.CompressionTypes` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CompressionTypes + { + public static string[] AllCompressionTypes; + public static void AssertIsValid(string compressionType) => throw null; + public const string Brotli = default; + public const string Default = default; + public const string Deflate = default; + public const string GZip = default; + public static string GetExtension(string compressionType) => throw null; + public static bool IsValid(string compressionType) => throw null; + } + + // Generated from `ServiceStack.CustomHttpResult` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomHttpResult + { + public CustomHttpResult() => throw null; + } + + // Generated from `ServiceStack.Defer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct Defer : System.IDisposable + { + // Stub generator skipped constructor + public Defer(System.Action fn) => throw null; + public void Dispose() => throw null; + } + + // Generated from `ServiceStack.DeserializeDynamic<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeDynamic where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static ServiceStack.Text.Common.ParseStringDelegate Parse { get => throw null; } + public static System.Dynamic.IDynamicMetaObjectProvider ParseDynamic(System.ReadOnlySpan value) => throw null; + public static System.Dynamic.IDynamicMetaObjectProvider ParseDynamic(string value) => throw null; + public static ServiceStack.Text.Common.ParseStringSpanDelegate ParseStringSpan { get => throw null; } + } + + // Generated from `ServiceStack.DiagnosticEvent` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class DiagnosticEvent + { + public System.Guid? ClientOperationId { get => throw null; set => throw null; } + public System.DateTime Date { get => throw null; set => throw null; } + public object DiagnosticEntry { get => throw null; set => throw null; } + protected DiagnosticEvent() => throw null; + public string EventType { get => throw null; set => throw null; } + public System.Exception Exception { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Operation { get => throw null; set => throw null; } + public System.Guid OperationId { get => throw null; set => throw null; } + public virtual string Source { get => throw null; } + public string StackTrace { get => throw null; set => throw null; } + public string Tag { get => throw null; set => throw null; } + public System.Int64 Timestamp { get => throw null; set => throw null; } + public string TraceId { get => throw null; set => throw null; } + public string UserAuthId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Diagnostics` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Diagnostics + { + // Generated from `ServiceStack.Diagnostics+Activity` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Activity + { + public const string HttpBegin = default; + public const string HttpEnd = default; + public const string MqBegin = default; + public const string MqEnd = default; + public const string OperationId = default; + public const string Tag = default; + public const string UserId = default; + } + + + // Generated from `ServiceStack.Diagnostics+Events` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Events + { + // Generated from `ServiceStack.Diagnostics+Events+Client` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Client + { + public const string WriteRequestAfter = default; + public const string WriteRequestBefore = default; + public const string WriteRequestError = default; + } + + + // Generated from `ServiceStack.Diagnostics+Events+HttpClient` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpClient + { + public const string OutStart = default; + public const string OutStop = default; + public const string Request = default; + public const string Response = default; + } + + + // Generated from `ServiceStack.Diagnostics+Events+OrmLite` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OrmLite + { + public const string WriteCommandAfter = default; + public const string WriteCommandBefore = default; + public const string WriteCommandError = default; + public const string WriteConnectionCloseAfter = default; + public const string WriteConnectionCloseBefore = default; + public const string WriteConnectionCloseError = default; + public const string WriteConnectionOpenAfter = default; + public const string WriteConnectionOpenBefore = default; + public const string WriteConnectionOpenError = default; + public const string WriteTransactionCommitAfter = default; + public const string WriteTransactionCommitBefore = default; + public const string WriteTransactionCommitError = default; + public const string WriteTransactionOpen = default; + public const string WriteTransactionRollbackAfter = default; + public const string WriteTransactionRollbackBefore = default; + public const string WriteTransactionRollbackError = default; + } + + + // Generated from `ServiceStack.Diagnostics+Events+Redis` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Redis + { + public const string WriteCommandAfter = default; + public const string WriteCommandBefore = default; + public const string WriteCommandError = default; + public const string WriteCommandRetry = default; + public const string WriteConnectionCloseAfter = default; + public const string WriteConnectionCloseBefore = default; + public const string WriteConnectionCloseError = default; + public const string WriteConnectionOpenAfter = default; + public const string WriteConnectionOpenBefore = default; + public const string WriteConnectionOpenError = default; + public const string WritePoolRent = default; + public const string WritePoolReturn = default; + } + + + // Generated from `ServiceStack.Diagnostics+Events+ServiceStack` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceStack + { + public const string WriteGatewayAfter = default; + public const string WriteGatewayBefore = default; + public const string WriteGatewayError = default; + public const string WriteMqRequestAfter = default; + public const string WriteMqRequestBefore = default; + public const string WriteMqRequestError = default; + public const string WriteMqRequestPublish = default; + public const string WriteRequestAfter = default; + public const string WriteRequestBefore = default; + public const string WriteRequestError = default; + } + + + } + + + // Generated from `ServiceStack.Diagnostics+Keys` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Keys + { + public const string Date = default; + public static System.Net.Http.HttpRequestOptionsKey HttpRequestOperationId; + public static System.Net.Http.HttpRequestOptionsKey HttpRequestRequest; + public static System.Net.Http.HttpRequestOptionsKey HttpRequestResponseType; + public const string LoggingRequestId = default; + public const string OperationId = default; + public const string Request = default; + public const string Response = default; + public const string ResponseType = default; + public const string Timestamp = default; + } + + + // Generated from `ServiceStack.Diagnostics+Listeners` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Listeners + { + public const string Client = default; + public const string HttpClient = default; + public const string OrmLite = default; + public const string Redis = default; + public const string ServiceStack = default; + } + + + public static System.Diagnostics.DiagnosticListener Client { get => throw null; } + public static string CreateStackTrace(System.Exception e) => throw null; + public static bool IncludeStackTrace { get => throw null; set => throw null; } + public static System.Diagnostics.DiagnosticListener OrmLite { get => throw null; } + public static System.Diagnostics.DiagnosticListener Redis { get => throw null; } + public static System.Diagnostics.DiagnosticListener ServiceStack { get => throw null; } + } + + // Generated from `ServiceStack.DiagnosticsUtils` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DiagnosticsUtils + { + public static System.Diagnostics.Activity GetRoot(System.Diagnostics.Activity activity) => throw null; + public static string GetTag(this System.Diagnostics.Activity activity) => throw null; + public static string GetTraceId(this System.Diagnostics.Activity activity) => throw null; + public static string GetUserId(this System.Diagnostics.Activity activity) => throw null; + public static T Init(this T evt, System.Diagnostics.Activity activity) where T : ServiceStack.DiagnosticEvent => throw null; + } + + // Generated from `ServiceStack.DynamicByte` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicByte : ServiceStack.IDynamicNumber + { + public System.Byte Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicByte() => throw null; + public static ServiceStack.DynamicByte Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicDecimal` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicDecimal : ServiceStack.IDynamicNumber + { + public System.Decimal Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicDecimal() => throw null; + public static ServiceStack.DynamicDecimal Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicDouble` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicDouble : ServiceStack.IDynamicNumber + { + public double Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicDouble() => throw null; + public static ServiceStack.DynamicDouble Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicFloat` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicFloat : ServiceStack.IDynamicNumber + { + public float Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicFloat() => throw null; + public static ServiceStack.DynamicFloat Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicInt` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicInt : ServiceStack.IDynamicNumber + { + public int Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicInt() => throw null; + public static ServiceStack.DynamicInt Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicJson` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicJson : System.Dynamic.DynamicObject + { + public static dynamic Deserialize(string json) => throw null; + public DynamicJson(System.Collections.Generic.IEnumerable> hash) => throw null; + public static string Serialize(dynamic instance) => throw null; + public override string ToString() => throw null; + public override bool TryGetMember(System.Dynamic.GetMemberBinder binder, out object result) => throw null; + public override bool TrySetMember(System.Dynamic.SetMemberBinder binder, object value) => throw null; + } + + // Generated from `ServiceStack.DynamicLong` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicLong : ServiceStack.IDynamicNumber + { + public System.Int64 Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicLong() => throw null; + public static ServiceStack.DynamicLong Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicNumber` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DynamicNumber + { + public static object Add(object lhs, object rhs) => throw null; + public static ServiceStack.IDynamicNumber AssertNumbers(string name, object lhs, object rhs) => throw null; + public static object BitwiseAnd(object lhs, object rhs) => throw null; + public static object BitwiseLeftShift(object lhs, object rhs) => throw null; + public static object BitwiseNot(object lhs) => throw null; + public static object BitwiseOr(object lhs, object rhs) => throw null; + public static object BitwiseRightShift(object lhs, object rhs) => throw null; + public static object BitwiseXOr(object lhs, object rhs) => throw null; + public static int CompareTo(object lhs, object rhs) => throw null; + public static object Div(object lhs, object rhs) => throw null; + public static object Divide(object lhs, object rhs) => throw null; + public static ServiceStack.IDynamicNumber Get(object obj) => throw null; + public static ServiceStack.IDynamicNumber GetNumber(System.Type type) => throw null; + public static ServiceStack.IDynamicNumber GetNumber(object lhs, object rhs) => throw null; + public static bool IsNumber(System.Type type) => throw null; + public static object Log(object lhs, object rhs) => throw null; + public static object Max(object lhs, object rhs) => throw null; + public static object Min(object lhs, object rhs) => throw null; + public static object Mod(object lhs, object rhs) => throw null; + public static object Mul(object lhs, object rhs) => throw null; + public static object Multiply(object lhs, object rhs) => throw null; + public static object Pow(object lhs, object rhs) => throw null; + public static object Sub(object lhs, object rhs) => throw null; + public static object Subtract(object lhs, object rhs) => throw null; + public static bool TryGetRanking(System.Type type, out int ranking) => throw null; + public static bool TryParse(string strValue, out object result) => throw null; + public static bool TryParseIntoBestFit(string strValue, out object result) => throw null; + } + + // Generated from `ServiceStack.DynamicSByte` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicSByte : ServiceStack.IDynamicNumber + { + public System.SByte Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicSByte() => throw null; + public static ServiceStack.DynamicSByte Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicShort` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicShort : ServiceStack.IDynamicNumber + { + public System.Int16 Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicShort() => throw null; + public static ServiceStack.DynamicShort Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicUInt` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicUInt : ServiceStack.IDynamicNumber + { + public System.UInt32 Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicUInt() => throw null; + public static ServiceStack.DynamicUInt Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicULong` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicULong : ServiceStack.IDynamicNumber + { + public System.UInt64 Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicULong() => throw null; + public static ServiceStack.DynamicULong Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.DynamicUShort` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicUShort : ServiceStack.IDynamicNumber + { + public System.UInt16 Convert(object value) => throw null; + public object ConvertFrom(object value) => throw null; + public object DefaultValue { get => throw null; } + public DynamicUShort() => throw null; + public static ServiceStack.DynamicUShort Instance; + public string ToString(object value) => throw null; + public bool TryParse(string str, out object result) => throw null; + public System.Type Type { get => throw null; } + public object add(object lhs, object rhs) => throw null; + public object bitwiseAnd(object lhs, object rhs) => throw null; + public object bitwiseLeftShift(object lhs, object rhs) => throw null; + public object bitwiseNot(object target) => throw null; + public object bitwiseOr(object lhs, object rhs) => throw null; + public object bitwiseRightShift(object lhs, object rhs) => throw null; + public object bitwiseXOr(object lhs, object rhs) => throw null; + public int compareTo(object lhs, object rhs) => throw null; + public object div(object lhs, object rhs) => throw null; + public object log(object lhs, object rhs) => throw null; + public object max(object lhs, object rhs) => throw null; + public object min(object lhs, object rhs) => throw null; + public object mod(object lhs, object rhs) => throw null; + public object mul(object lhs, object rhs) => throw null; + public object pow(object lhs, object rhs) => throw null; + public object sub(object lhs, object rhs) => throw null; + } + + // Generated from `ServiceStack.EmptyCtorDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object EmptyCtorDelegate(); + + // Generated from `ServiceStack.EmptyCtorFactoryDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate ServiceStack.EmptyCtorDelegate EmptyCtorFactoryDelegate(System.Type type); + + // Generated from `ServiceStack.FieldAccessor` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FieldAccessor + { + public FieldAccessor(System.Reflection.FieldInfo fieldInfo, ServiceStack.GetMemberDelegate publicGetter, ServiceStack.SetMemberDelegate publicSetter, ServiceStack.SetMemberRefDelegate publicSetterRef) => throw null; + public System.Reflection.FieldInfo FieldInfo { get => throw null; } + public ServiceStack.GetMemberDelegate PublicGetter { get => throw null; } + public ServiceStack.SetMemberDelegate PublicSetter { get => throw null; } + public ServiceStack.SetMemberRefDelegate PublicSetterRef { get => throw null; } + } + + // Generated from `ServiceStack.FieldInvoker` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class FieldInvoker + { + public static ServiceStack.GetMemberDelegate CreateGetter(this System.Reflection.FieldInfo fieldInfo) => throw null; + public static ServiceStack.GetMemberDelegate CreateGetter(this System.Reflection.FieldInfo fieldInfo) => throw null; + public static ServiceStack.SetMemberDelegate CreateSetter(this System.Reflection.FieldInfo fieldInfo) => throw null; + public static ServiceStack.SetMemberDelegate CreateSetter(this System.Reflection.FieldInfo fieldInfo) => throw null; + public static ServiceStack.SetMemberRefDelegate SetExpressionRef(this System.Reflection.FieldInfo fieldInfo) => throw null; + } + + // Generated from `ServiceStack.GetMemberDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object GetMemberDelegate(object instance); + + // Generated from `ServiceStack.GetMemberDelegate<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object GetMemberDelegate(T instance); + + // Generated from `ServiceStack.HttpClientExt` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpClientExt + { + public static System.Int64? GetContentLength(this System.Net.Http.HttpResponseMessage res) => throw null; + public static bool MatchesContentType(this System.Net.Http.HttpResponseMessage res, string matchesContentType) => throw null; + } + + // Generated from `ServiceStack.HttpHeaders` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpHeaders + { + public const string Accept = default; + public const string AcceptCharset = default; + public const string AcceptEncoding = default; + public const string AcceptLanguage = default; + public const string AcceptRanges = default; + public const string AccessControlMaxAge = default; + public const string Age = default; + public const string Allow = default; + public const string AllowCredentials = default; + public const string AllowHeaders = default; + public const string AllowMethods = default; + public const string AllowOrigin = default; + public const string Authorization = default; + public const string CacheControl = default; + public const string Connection = default; + public const string ContentDisposition = default; + public const string ContentEncoding = default; + public const string ContentLanguage = default; + public const string ContentLength = default; + public const string ContentRange = default; + public const string ContentType = default; + public const string Cookie = default; + public const string Date = default; + public const string ETag = default; + public const string Expect = default; + public const string Expires = default; + public const string ExposeHeaders = default; + public const string Host = default; + public const string IfMatch = default; + public const string IfModifiedSince = default; + public const string IfNoneMatch = default; + public const string IfUnmodifiedSince = default; + public const string LastModified = default; + public const string Location = default; + public const string Origin = default; + public const string Pragma = default; + public const string ProxyAuthenticate = default; + public const string ProxyAuthorization = default; + public const string ProxyConnection = default; + public const string Range = default; + public const string Referer = default; + public const string RequestHeaders = default; + public const string RequestMethod = default; + public static System.Collections.Generic.HashSet RestrictedHeaders; + public const string SOAPAction = default; + public const string SetCookie = default; + public const string SetCookie2 = default; + public const string TE = default; + public const string Trailer = default; + public const string TransferEncoding = default; + public const string Upgrade = default; + public const string UserAgent = default; + public const string Vary = default; + public const string Via = default; + public const string Warning = default; + public const string WwwAuthenticate = default; + public const string XAutoBatchCompleted = default; + public const string XForwardedFor = default; + public const string XForwardedPort = default; + public const string XForwardedProtocol = default; + public const string XHttpMethodOverride = default; + public const string XLocation = default; + public const string XParamOverridePrefix = default; + public const string XPoweredBy = default; + public const string XRealIp = default; + public const string XStatus = default; + public const string XTag = default; + public const string XTrigger = default; + public const string XUserAuthId = default; + } + + // Generated from `ServiceStack.HttpMethods` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpMethods + { + public static System.Collections.Generic.HashSet AllVerbs; + public const string Delete = default; + public static bool Exists(string httpMethod) => throw null; + public const string Get = default; + public static bool HasVerb(string httpVerb) => throw null; + public const string Head = default; + public const string Options = default; + public const string Patch = default; + public const string Post = default; + public const string Put = default; + } + + // Generated from `ServiceStack.HttpRequestConfig` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpRequestConfig + { + public string Accept { get => throw null; set => throw null; } + public void AddHeader(string name, string value) => throw null; + public ServiceStack.NameValue Authorization { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public string Expect { get => throw null; set => throw null; } + public System.Collections.Generic.List Headers { get => throw null; set => throw null; } + public HttpRequestConfig() => throw null; + public ServiceStack.LongRange Range { get => throw null; set => throw null; } + public string Referer { get => throw null; set => throw null; } + public void SetAuthBasic(string name, string value) => throw null; + public void SetAuthBearer(string value) => throw null; + public void SetRange(System.Int64 from, System.Int64? to = default(System.Int64?)) => throw null; + public string[] TransferEncoding { get => throw null; set => throw null; } + public bool? TransferEncodingChunked { get => throw null; set => throw null; } + public string UserAgent { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HttpUtils` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpUtils + { + public static string AddHashParam(this string url, string key, object val) => throw null; + public static string AddHashParam(this string url, string key, string val) => throw null; + public static void AddHeader(this System.Net.Http.HttpRequestMessage res, string name, string value) => throw null; + public static string AddQueryParam(this string url, object key, string val, bool encode = default(bool)) => throw null; + public static string AddQueryParam(this string url, string key, object val, bool encode = default(bool)) => throw null; + public static string AddQueryParam(this string url, string key, string val, bool encode = default(bool)) => throw null; + public static System.Threading.Tasks.Task ConvertTo(this System.Threading.Tasks.Task task) where TDerived : TBase => throw null; + public static System.Net.Http.HttpClient Create() => throw null; + public static System.Func CreateClient { get => throw null; set => throw null; } + public static string DeleteFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task DeleteFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void DownloadFileTo(this string downloadUrl, string fileName, System.Collections.Generic.List headers = default(System.Collections.Generic.List)) => throw null; + public static System.Byte[] GetBytesFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task GetBytesFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetCsvFromUrl(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task GetCsvFromUrlAsync(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Net.Http.HttpResponseMessage GetErrorResponse(this string url) => throw null; + public static System.Threading.Tasks.Task GetErrorResponseAsync(this string url, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetHeader(this System.Net.Http.HttpRequestMessage req, string name) => throw null; + public static string GetHeader(this System.Net.Http.HttpResponseMessage res, string name) => throw null; + public static string GetJsonFromUrl(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task GetJsonFromUrlAsync(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetRequestStreamAsync(this System.Net.HttpWebRequest request) => throw null; + public static System.Threading.Tasks.Task GetRequestStreamAsync(this System.Net.WebRequest request) => throw null; + public static System.Threading.Tasks.Task GetResponseAsync(this System.Net.HttpWebRequest request) => throw null; + public static System.Threading.Tasks.Task GetResponseAsync(this System.Net.WebRequest request) => throw null; + public static string GetResponseBody(this System.Exception ex) => throw null; + public static System.Threading.Tasks.Task GetResponseBodyAsync(this System.Exception ex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Net.HttpStatusCode? GetResponseStatus(this string url) => throw null; + public static System.Net.HttpStatusCode? GetStatus(this System.Exception ex) => throw null; + public static System.Net.HttpStatusCode? GetStatus(this System.Net.Http.HttpRequestException ex) => throw null; + public static System.Net.HttpStatusCode? GetStatus(this System.Net.WebException webEx) => throw null; + public static System.IO.Stream GetStreamFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task GetStreamFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetStringFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task GetStringFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetXmlFromUrl(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task GetXmlFromUrlAsync(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static bool HasRequestBody(string httpMethod) => throw null; + public static bool HasStatus(this System.Exception ex, System.Net.HttpStatusCode statusCode) => throw null; + public static string HeadFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task HeadFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Func HttpClientHandlerFactory { get => throw null; set => throw null; } + public static bool IsAny300(this System.Exception ex) => throw null; + public static bool IsAny400(this System.Exception ex) => throw null; + public static bool IsAny500(this System.Exception ex) => throw null; + public static bool IsBadRequest(this System.Exception ex) => throw null; + public static bool IsForbidden(this System.Exception ex) => throw null; + public static bool IsInternalServerError(this System.Exception ex) => throw null; + public static bool IsNotFound(this System.Exception ex) => throw null; + public static bool IsNotModified(this System.Exception ex) => throw null; + public static bool IsUnauthorized(this System.Exception ex) => throw null; + public static string OptionsFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task OptionsFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PatchJsonToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PatchJsonToUrl(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PatchJsonToUrlAsync(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchJsonToUrlAsync(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PatchStringToUrl(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PatchStringToUrlAsync(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PatchToUrl(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PatchToUrl(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PatchToUrlAsync(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchToUrlAsync(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Byte[] PostBytesToUrl(this string url, System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PostBytesToUrlAsync(this string url, System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PostCsvToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PostCsvToUrl(this string url, string csv, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PostCsvToUrlAsync(this string url, string csv, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Net.Http.HttpResponseMessage PostFileToUrl(this string url, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PostFileToUrlAsync(this string url, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PostJsonToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PostJsonToUrl(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PostJsonToUrlAsync(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostJsonToUrlAsync(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.IO.Stream PostStreamToUrl(this string url, System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PostStreamToUrlAsync(this string url, System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PostStringToUrl(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PostStringToUrlAsync(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PostToUrl(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PostToUrl(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PostToUrlAsync(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostToUrlAsync(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PostXmlToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PostXmlToUrl(this string url, string xml, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PostXmlToUrlAsync(this string url, string xml, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Byte[] PutBytesToUrl(this string url, System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PutBytesToUrlAsync(this string url, System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PutCsvToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PutCsvToUrl(this string url, string csv, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PutCsvToUrlAsync(this string url, string csv, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Net.Http.HttpResponseMessage PutFileToUrl(this string url, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PutFileToUrlAsync(this string url, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PutJsonToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PutJsonToUrl(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PutJsonToUrlAsync(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutJsonToUrlAsync(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.IO.Stream PutStreamToUrl(this string url, System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PutStreamToUrlAsync(this string url, System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PutStringToUrl(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PutStringToUrlAsync(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PutToUrl(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PutToUrl(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PutToUrlAsync(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutToUrlAsync(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string PutXmlToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string PutXmlToUrl(this string url, string xml, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task PutXmlToUrlAsync(this string url, string xml, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.IEnumerable ReadLines(this System.Net.Http.HttpResponseMessage webRes) => throw null; + public static System.Collections.Generic.IEnumerable ReadLines(this System.Net.WebResponse webRes) => throw null; + public static string ReadToEnd(this System.Net.Http.HttpResponseMessage webRes) => throw null; + public static string ReadToEnd(this System.Net.WebResponse webRes) => throw null; + public static System.Threading.Tasks.Task ReadToEndAsync(this System.Net.Http.HttpResponseMessage webRes) => throw null; + public static System.Threading.Tasks.Task ReadToEndAsync(this System.Net.WebResponse webRes) => throw null; + public static System.Collections.Generic.Dictionary> RequestHeadersResolver { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary> ResponseHeadersResolver { get => throw null; set => throw null; } + public static System.Byte[] SendBytesToUrl(this System.Net.Http.HttpClient client, string url, string method = default(string), System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Byte[] SendBytesToUrl(this string url, string method = default(string), System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task SendBytesToUrlAsync(this System.Net.Http.HttpClient client, string url, string method = default(string), System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendBytesToUrlAsync(this string url, string method = default(string), System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.IO.Stream SendStreamToUrl(this System.Net.Http.HttpClient client, string url, string method = default(string), System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.IO.Stream SendStreamToUrl(this string url, string method = default(string), System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task SendStreamToUrlAsync(this System.Net.Http.HttpClient client, string url, string method = default(string), System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendStreamToUrlAsync(this string url, string method = default(string), System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string SendStringToUrl(this System.Net.Http.HttpClient client, string url, string method = default(string), string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static string SendStringToUrl(this string url, string method = default(string), string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task SendStringToUrlAsync(this System.Net.Http.HttpClient client, string url, string method = default(string), string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendStringToUrlAsync(this string url, string method = default(string), string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string SetHashParam(this string url, string key, string val) => throw null; + public static string SetQueryParam(this string url, string key, string val) => throw null; + public static System.Net.Http.HttpResponseMessage UploadFile(this System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage httpReq, System.IO.Stream fileStream, string fileName, string mimeType = default(string), string accept = default(string), string method = default(string), string fieldName = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static void UploadFile(this System.Net.Http.HttpRequestMessage httpReq, System.IO.Stream fileStream, string fileName) => throw null; + public static System.Net.Http.HttpResponseMessage UploadFile(this System.Net.Http.HttpRequestMessage httpReq, System.IO.Stream fileStream, string fileName, string mimeType, string accept = default(string), string method = default(string), string field = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task UploadFileAsync(this System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage httpReq, System.IO.Stream fileStream, string fileName, string mimeType = default(string), string accept = default(string), string method = default(string), string fieldName = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UploadFileAsync(this System.Net.Http.HttpRequestMessage webRequest, System.IO.Stream fileStream, string fileName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UploadFileAsync(this System.Net.Http.HttpRequestMessage httpReq, System.IO.Stream fileStream, string fileName, string mimeType = default(string), string accept = default(string), string method = default(string), string fieldName = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Text.Encoding UseEncoding { get => throw null; set => throw null; } + public static string UserAgent; + public static System.Net.Http.HttpRequestMessage With(this System.Net.Http.HttpRequestMessage httpReq, System.Action configure) => throw null; + public static System.Net.Http.HttpRequestMessage WithHeader(this System.Net.Http.HttpRequestMessage httpReq, string name, string value) => throw null; + } + + // Generated from `ServiceStack.IDynamicNumber` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDynamicNumber + { + object ConvertFrom(object value); + object DefaultValue { get; } + string ToString(object value); + bool TryParse(string str, out object result); + System.Type Type { get; } + object add(object lhs, object rhs); + object bitwiseAnd(object lhs, object rhs); + object bitwiseLeftShift(object lhs, object rhs); + object bitwiseNot(object target); + object bitwiseOr(object lhs, object rhs); + object bitwiseRightShift(object lhs, object rhs); + object bitwiseXOr(object lhs, object rhs); + int compareTo(object lhs, object rhs); + object div(object lhs, object rhs); + object log(object lhs, object rhs); + object max(object lhs, object rhs); + object min(object lhs, object rhs); + object mod(object lhs, object rhs); + object mul(object lhs, object rhs); + object pow(object lhs, object rhs); + object sub(object lhs, object rhs); + } + + // Generated from `ServiceStack.IHasStatusCode` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasStatusCode + { + int StatusCode { get; } + } + + // Generated from `ServiceStack.IHasStatusDescription` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasStatusDescription + { + string StatusDescription { get; } + } + + // Generated from `ServiceStack.KeyValuePairs` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class KeyValuePairs : System.Collections.Generic.List> + { + public static System.Collections.Generic.KeyValuePair Create(string key, object value) => throw null; + public KeyValuePairs() => throw null; + public KeyValuePairs(System.Collections.Generic.IEnumerable> collection) => throw null; + public KeyValuePairs(int capacity) => throw null; + } + + // Generated from `ServiceStack.KeyValueStrings` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class KeyValueStrings : System.Collections.Generic.List> + { + public static System.Collections.Generic.KeyValuePair Create(string key, string value) => throw null; + public KeyValueStrings() => throw null; + public KeyValueStrings(System.Collections.Generic.IEnumerable> collection) => throw null; + public KeyValueStrings(int capacity) => throw null; + } + + // Generated from `ServiceStack.LicenseException` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LicenseException : System.Exception + { + public LicenseException(string message) => throw null; + public LicenseException(string message, System.Exception innerException) => throw null; + } + + // Generated from `ServiceStack.LicenseFeature` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum LicenseFeature + { + Admin, + All, + Aws, + AwsSku, + Client, + Common, + Free, + None, + OrmLite, + OrmLiteSku, + Premium, + Razor, + Redis, + RedisSku, + Server, + ServiceStack, + Text, + } + + // Generated from `ServiceStack.LicenseKey` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LicenseKey + { + public System.DateTime Expiry { get => throw null; set => throw null; } + public string Hash { get => throw null; set => throw null; } + public LicenseKey() => throw null; + public System.Int64 Meta { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string Ref { get => throw null; set => throw null; } + public ServiceStack.LicenseType Type { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.LicenseMeta` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum LicenseMeta + { + Cores, + None, + Subscription, + } + + // Generated from `ServiceStack.LicenseType` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum LicenseType + { + AwsBusiness, + AwsIndie, + Business, + Enterprise, + Free, + FreeIndividual, + FreeOpenSource, + Indie, + OrmLiteBusiness, + OrmLiteIndie, + OrmLiteSite, + RedisBusiness, + RedisIndie, + RedisSite, + Site, + TextBusiness, + TextIndie, + TextSite, + Trial, + } + + // Generated from `ServiceStack.LicenseUtils` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class LicenseUtils + { + // Generated from `ServiceStack.LicenseUtils+ErrorMessages` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ErrorMessages + { + public const string UnauthorizedAccessRequest = default; + } + + + // Generated from `ServiceStack.LicenseUtils+FreeQuotas` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class FreeQuotas + { + public const int AwsTables = default; + public const int OrmLiteTables = default; + public const int PremiumFeature = default; + public const int RedisRequestPerHour = default; + public const int RedisTypes = default; + public const int ServiceStackOperations = default; + public const int TypeFields = default; + } + + + public static ServiceStack.LicenseFeature ActivatedLicenseFeatures() => throw null; + public static void ApprovedUsage(ServiceStack.LicenseFeature licensedFeatures, ServiceStack.LicenseFeature requestedFeature, int allowedUsage, int actualUsage, string message) => throw null; + public static void ApprovedUsage(int allowedUsage, int actualUsage, string message) => throw null; + public static void AssertEvaluationLicense() => throw null; + public static void AssertValidUsage(ServiceStack.LicenseFeature feature, ServiceStack.QuotaType quotaType, int count) => throw null; + public static string GetHashKeyToSign(this ServiceStack.LicenseKey key) => throw null; + public static System.Exception GetInnerMostException(this System.Exception ex) => throw null; + public static ServiceStack.LicenseFeature GetLicensedFeatures(this ServiceStack.LicenseKey key) => throw null; + public static bool HasInit { get => throw null; set => throw null; } + public static bool HasLicensedFeature(ServiceStack.LicenseFeature feature) => throw null; + public static void Init() => throw null; + public const string LicensePublicKey = default; + public static string LicenseWarningMessage { get => throw null; set => throw null; } + public static void RegisterLicense(string licenseKeyText) => throw null; + public static void RemoveLicense() => throw null; + public const string RuntimePublicKey = default; + public static ServiceStack.LicenseKey ToLicenseKey(this string licenseKeyText) => throw null; + public static ServiceStack.LicenseKey ToLicenseKeyFallback(this string licenseKeyText) => throw null; + public static ServiceStack.LicenseKey VerifyLicenseKeyText(string licenseKeyText) => throw null; + public static bool VerifyLicenseKeyText(this string licenseKeyText, out ServiceStack.LicenseKey key) => throw null; + public static bool VerifyLicenseKeyTextFallback(this string licenseKeyText, out ServiceStack.LicenseKey key) => throw null; + public static bool VerifySha1Data(this System.Security.Cryptography.RSACryptoServiceProvider RSAalg, System.Byte[] unsignedData, System.Byte[] encryptedData) => throw null; + public static bool VerifySignedHash(System.Byte[] DataToVerify, System.Byte[] SignedData, System.Security.Cryptography.RSAParameters Key) => throw null; + } + + // Generated from `ServiceStack.Licensing` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Licensing + { + public static void RegisterLicense(string licenseKeyText) => throw null; + public static void RegisterLicenseFromFile(string filePath) => throw null; + public static void RegisterLicenseFromFileIfExists(string filePath) => throw null; + } + + // Generated from `ServiceStack.ListExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ListExtensions + { + public static System.Collections.Generic.List Add(this System.Collections.Generic.List types) => throw null; + public static void AddIfNotExists(this System.Collections.Generic.List list, T item) => throw null; + public static T[] InArray(this T value) => throw null; + public static System.Collections.Generic.List InList(this T value) => throw null; + public static bool IsNullOrEmpty(this System.Collections.Generic.List list) => throw null; + public static string Join(this System.Collections.Generic.IEnumerable values) => throw null; + public static string Join(this System.Collections.Generic.IEnumerable values, string seperator) => throw null; + public static T[] NewArray(this T[] array, T with = default(T), T without = default(T)) where T : class => throw null; + public static int NullableCount(this System.Collections.Generic.List list) => throw null; + public static System.Linq.IQueryable OrderBy(this System.Linq.IQueryable source, string sqlOrderByList) => throw null; + public static System.Collections.Generic.IEnumerable SafeWhere(this System.Collections.Generic.List list, System.Func predicate) => throw null; + } + + // Generated from `ServiceStack.LongRange` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LongRange : System.IEquatable + { + public static bool operator !=(ServiceStack.LongRange left, ServiceStack.LongRange right) => throw null; + public virtual ServiceStack.LongRange$() => throw null; + public static bool operator ==(ServiceStack.LongRange left, ServiceStack.LongRange right) => throw null; + public void Deconstruct(out System.Int64 from, out System.Int64? to) => throw null; + protected virtual System.Type EqualityContract { get => throw null; } + public virtual bool Equals(ServiceStack.LongRange other) => throw null; + public override bool Equals(object obj) => throw null; + public System.Int64 From { get => throw null; } + public override int GetHashCode() => throw null; + protected LongRange(ServiceStack.LongRange original) => throw null; + public LongRange(System.Int64 from, System.Int64? to = default(System.Int64?)) => throw null; + protected virtual bool PrintMembers(System.Text.StringBuilder builder) => throw null; + public System.Int64? To { get => throw null; } + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.MapExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MapExtensions + { + public static string Join(this System.Collections.Generic.Dictionary values) => throw null; + public static string Join(this System.Collections.Generic.Dictionary values, string itemSeperator, string keySeperator) => throw null; + } + + // Generated from `ServiceStack.MimeTypes` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MimeTypes + { + public const string Binary = default; + public const string Bson = default; + public const string Cert = default; + public const string Compressed = default; + public const string Css = default; + public const string Csv = default; + public const string Dmg = default; + public const string Excel = default; + public static System.Collections.Generic.Dictionary ExtensionMimeTypes; + public const string FormUrlEncoded = default; + public static string GetExtension(string mimeType) => throw null; + public static string GetMimeType(string fileNameOrExt) => throw null; + public static string GetRealContentType(string contentType) => throw null; + public const string Html = default; + public const string HtmlUtf8 = default; + public const string ImageGif = default; + public const string ImageJpg = default; + public const string ImagePng = default; + public const string ImageSvg = default; + public static bool IsBinary(string contentType) => throw null; + public static System.Func IsBinaryFilter { get => throw null; set => throw null; } + public const string Jar = default; + public const string JavaScript = default; + public const string Json = default; + public const string JsonReport = default; + public const string JsonText = default; + public const string Jsv = default; + public const string JsvText = default; + public const string MarkdownText = default; + public static bool MatchesContentType(string contentType, string matchesContentType) => throw null; + public const string MsWord = default; + public const string MsgPack = default; + public const string MultiPartFormData = default; + public const string NetSerializer = default; + public const string Pkg = default; + public const string PlainText = default; + public const string ProblemJson = default; + public const string ProtoBuf = default; + public const string ServerSentEvents = default; + public const string Soap11 = default; + public const string Soap12 = default; + public const string Utf8Suffix = default; + public const string WebAssembly = default; + public const string Wire = default; + public const string Xml = default; + public const string XmlText = default; + public const string Yaml = default; + public const string YamlText = default; + } + + // Generated from `ServiceStack.NameValue` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NameValue : System.IEquatable + { + public static bool operator !=(ServiceStack.NameValue left, ServiceStack.NameValue right) => throw null; + public virtual ServiceStack.NameValue$() => throw null; + public static bool operator ==(ServiceStack.NameValue left, ServiceStack.NameValue right) => throw null; + public void Deconstruct(out string name, out string value) => throw null; + protected virtual System.Type EqualityContract { get => throw null; } + public virtual bool Equals(ServiceStack.NameValue other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public string Name { get => throw null; } + protected NameValue(ServiceStack.NameValue original) => throw null; + public NameValue(string name, string value) => throw null; + protected virtual bool PrintMembers(System.Text.StringBuilder builder) => throw null; + public override string ToString() => throw null; + public string Value { get => throw null; } + } + + // Generated from `ServiceStack.Net6PclExport` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Net6PclExport : ServiceStack.NetStandardPclExport + { + public override ServiceStack.Text.Common.ParseStringDelegate GetJsReaderParseMethod(System.Type type) => throw null; + public override ServiceStack.Text.Common.ParseStringSpanDelegate GetJsReaderParseStringSpanMethod(System.Type type) => throw null; + public Net6PclExport() => throw null; + } + + // Generated from `ServiceStack.NetStandardPclExport` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetStandardPclExport : ServiceStack.PclExport + { + public override void AddCompression(System.Net.WebRequest webReq) => throw null; + public override void AddHeader(System.Net.WebRequest webReq, string name, string value) => throw null; + public const string AppSettingsKey = default; + public override void Config(System.Net.HttpWebRequest req, bool? allowAutoRedirect = default(bool?), System.TimeSpan? timeout = default(System.TimeSpan?), System.TimeSpan? readWriteTimeout = default(System.TimeSpan?), string userAgent = default(string), bool? preAuthenticate = default(bool?)) => throw null; + public static ServiceStack.PclExport Configure() => throw null; + public override void CreateDirectory(string dirPath) => throw null; + public override bool DirectoryExists(string dirPath) => throw null; + public const string EnvironmentKey = default; + public override bool FileExists(string filePath) => throw null; + public override System.Reflection.Assembly[] GetAllAssemblies() => throw null; + public override System.Byte[] GetAsciiBytes(string str) => throw null; + public override string GetAsciiString(System.Byte[] bytes, int index, int count) => throw null; + public override string GetAssemblyCodeBase(System.Reflection.Assembly assembly) => throw null; + public override string GetAssemblyPath(System.Type source) => throw null; + public override string[] GetDirectoryNames(string dirPath, string searchPattern = default(string)) => throw null; + public override string GetEnvironmentVariable(string name) => throw null; + public override string[] GetFileNames(string dirPath, string searchPattern = default(string)) => throw null; + public override System.Type GetGenericCollectionType(System.Type type) => throw null; + public override ServiceStack.Text.Common.ParseStringDelegate GetSpecializedCollectionParseMethod(System.Type type) => throw null; + public override ServiceStack.Text.Common.ParseStringSpanDelegate GetSpecializedCollectionParseStringSpanMethod(System.Type type) => throw null; + public override string GetStackTrace() => throw null; + public override bool InSameAssembly(System.Type t1, System.Type t2) => throw null; + public static void InitForAot() => throw null; + public override void InitHttpWebRequest(System.Net.HttpWebRequest httpReq, System.Int64? contentLength = default(System.Int64?), bool allowAutoRedirect = default(bool), bool keepAlive = default(bool)) => throw null; + public override string MapAbsolutePath(string relativePath, string appendPartialPathModifier) => throw null; + public NetStandardPclExport() => throw null; + public override System.DateTime ParseXsdDateTimeAsUtc(string dateTimeStr) => throw null; + public static ServiceStack.NetStandardPclExport Provider; + public override string ReadAllText(string filePath) => throw null; + public static int RegisterElement() => throw null; + public override void RegisterForAot() => throw null; + public override void RegisterLicenseFromConfig() => throw null; + public static void RegisterQueryStringWriter() => throw null; + public static void RegisterTypeForAot() => throw null; + public override void SetAllowAutoRedirect(System.Net.HttpWebRequest httpReq, bool value) => throw null; + public override void SetContentLength(System.Net.HttpWebRequest httpReq, System.Int64 value) => throw null; + public override void SetKeepAlive(System.Net.HttpWebRequest httpReq, bool value) => throw null; + public override void SetUserAgent(System.Net.HttpWebRequest httpReq, string value) => throw null; + public override void WriteLine(string line) => throw null; + public override void WriteLine(string format, params object[] args) => throw null; + } + + // Generated from `ServiceStack.ObjectDictionary` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ObjectDictionary : System.Collections.Generic.Dictionary + { + public ObjectDictionary() => throw null; + public ObjectDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; + public ObjectDictionary(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public ObjectDictionary(System.Collections.Generic.IEqualityComparer comparer) => throw null; + protected ObjectDictionary(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public ObjectDictionary(int capacity) => throw null; + public ObjectDictionary(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; + } + + // Generated from `ServiceStack.OrmLiteDiagnosticEvent` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrmLiteDiagnosticEvent : ServiceStack.DiagnosticEvent + { + public System.Data.IDbCommand Command { get => throw null; set => throw null; } + public System.Data.IDbConnection Connection { get => throw null; set => throw null; } + public System.Guid? ConnectionId { get => throw null; set => throw null; } + public System.Data.IsolationLevel? IsolationLevel { get => throw null; set => throw null; } + public OrmLiteDiagnosticEvent() => throw null; + public override string Source { get => throw null; } + public string TransactionName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PathUtils` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class PathUtils + { + public static void AppendPaths(System.Text.StringBuilder sb, string[] paths) => throw null; + public static string AssertDir(this System.IO.DirectoryInfo dirInfo) => throw null; + public static string AssertDir(this System.IO.FileInfo fileInfo) => throw null; + public static string AssertDir(this string dirPath) => throw null; + public static string CombinePaths(params string[] paths) => throw null; + public static string CombineWith(this string path, params object[] thesePaths) => throw null; + public static string CombineWith(this string path, params string[] thesePaths) => throw null; + public static string CombineWith(this string path, string withPath) => throw null; + public static string MapAbsolutePath(this string relativePath) => throw null; + public static string MapAbsolutePath(this string relativePath, string appendPartialPathModifier) => throw null; + public static string MapHostAbsolutePath(this string relativePath) => throw null; + public static string MapProjectPath(this string relativePath) => throw null; + public static string MapProjectPlatformPath(this string relativePath) => throw null; + public static string ResolvePaths(this string path) => throw null; + public static string[] ToStrings(object[] thesePaths) => throw null; + } + + // Generated from `ServiceStack.PclExport` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class PclExport + { + // Generated from `ServiceStack.PclExport+Platforms` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Platforms + { + public const string Net6 = default; + public const string NetFX = default; + public const string NetStandard = default; + } + + + public virtual void AddCompression(System.Net.WebRequest webRequest) => throw null; + public virtual void AddHeader(System.Net.WebRequest webReq, string name, string value) => throw null; + public System.Char AltDirSep; + public virtual void BeginThreadAffinity() => throw null; + public virtual void CloseStream(System.IO.Stream stream) => throw null; + public virtual void Config(System.Net.HttpWebRequest req, bool? allowAutoRedirect = default(bool?), System.TimeSpan? timeout = default(System.TimeSpan?), System.TimeSpan? readWriteTimeout = default(System.TimeSpan?), string userAgent = default(string), bool? preAuthenticate = default(bool?)) => throw null; + public static void Configure(ServiceStack.PclExport instance) => throw null; + public static bool ConfigureProvider(string typeName) => throw null; + public virtual void CreateDirectory(string dirPath) => throw null; + public virtual ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public virtual ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public virtual ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public virtual ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public System.Char DirSep; + public static System.Char[] DirSeps; + public virtual bool DirectoryExists(string dirPath) => throw null; + public System.Threading.Tasks.Task EmptyTask; + public virtual void EndThreadAffinity() => throw null; + public virtual bool FileExists(string filePath) => throw null; + public virtual System.Type FindType(string typeName, string assemblyName) => throw null; + public virtual System.Reflection.Assembly[] GetAllAssemblies() => throw null; + public virtual System.Byte[] GetAsciiBytes(string str) => throw null; + public virtual string GetAsciiString(System.Byte[] bytes) => throw null; + public virtual string GetAsciiString(System.Byte[] bytes, int index, int count) => throw null; + public virtual string GetAssemblyCodeBase(System.Reflection.Assembly assembly) => throw null; + public virtual string GetAssemblyPath(System.Type source) => throw null; + public virtual ServiceStack.Text.Common.ParseStringDelegate GetDictionaryParseMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; + public virtual ServiceStack.Text.Common.ParseStringSpanDelegate GetDictionaryParseStringSpanMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; + public virtual string[] GetDirectoryNames(string dirPath, string searchPattern = default(string)) => throw null; + public virtual string GetEnvironmentVariable(string name) => throw null; + public virtual string[] GetFileNames(string dirPath, string searchPattern = default(string)) => throw null; + public virtual System.Type GetGenericCollectionType(System.Type type) => throw null; + public virtual ServiceStack.Text.Common.ParseStringDelegate GetJsReaderParseMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; + public virtual ServiceStack.Text.Common.ParseStringSpanDelegate GetJsReaderParseStringSpanMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; + public virtual System.IO.Stream GetRequestStream(System.Net.WebRequest webRequest) => throw null; + public virtual System.Net.WebResponse GetResponse(System.Net.WebRequest webRequest) => throw null; + public virtual System.Threading.Tasks.Task GetResponseAsync(System.Net.WebRequest webRequest) => throw null; + public virtual ServiceStack.Text.Common.ParseStringDelegate GetSpecializedCollectionParseMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; + public virtual ServiceStack.Text.Common.ParseStringSpanDelegate GetSpecializedCollectionParseStringSpanMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; + public virtual string GetStackTrace() => throw null; + public virtual System.Text.Encoding GetUTF8Encoding(bool emitBom = default(bool)) => throw null; + public virtual System.Runtime.Serialization.DataContractAttribute GetWeakDataContract(System.Type type) => throw null; + public virtual System.Runtime.Serialization.DataMemberAttribute GetWeakDataMember(System.Reflection.FieldInfo pi) => throw null; + public virtual System.Runtime.Serialization.DataMemberAttribute GetWeakDataMember(System.Reflection.PropertyInfo pi) => throw null; + public virtual bool InSameAssembly(System.Type t1, System.Type t2) => throw null; + public virtual void InitHttpWebRequest(System.Net.HttpWebRequest httpReq, System.Int64? contentLength = default(System.Int64?), bool allowAutoRedirect = default(bool), bool keepAlive = default(bool)) => throw null; + public static ServiceStack.PclExport Instance; + public System.StringComparer InvariantComparer; + public System.StringComparer InvariantComparerIgnoreCase; + public System.StringComparison InvariantComparison; + public System.StringComparison InvariantComparisonIgnoreCase; + public virtual bool IsAnonymousType(System.Type type) => throw null; + public virtual bool IsDebugBuild(System.Reflection.Assembly assembly) => throw null; + public virtual System.Reflection.Assembly LoadAssembly(string assemblyPath) => throw null; + public virtual string MapAbsolutePath(string relativePath, string appendPartialPathModifier) => throw null; + public virtual System.DateTime ParseXsdDateTime(string dateTimeStr) => throw null; + public virtual System.DateTime ParseXsdDateTimeAsUtc(string dateTimeStr) => throw null; + protected PclExport() => throw null; + public string PlatformName; + public abstract string ReadAllText(string filePath); + public static ServiceStack.Text.ReflectionOptimizer Reflection { get => throw null; } + public System.Text.RegularExpressions.RegexOptions RegexOptions; + public virtual void RegisterForAot() => throw null; + public virtual void RegisterLicenseFromConfig() => throw null; + public virtual void ResetStream(System.IO.Stream stream) => throw null; + public virtual void SetAllowAutoRedirect(System.Net.HttpWebRequest httpReq, bool value) => throw null; + public virtual void SetContentLength(System.Net.HttpWebRequest httpReq, System.Int64 value) => throw null; + public virtual void SetKeepAlive(System.Net.HttpWebRequest httpReq, bool value) => throw null; + public virtual void SetUserAgent(System.Net.HttpWebRequest httpReq, string value) => throw null; + public virtual string ToInvariantUpper(System.Char value) => throw null; + public virtual string ToLocalXsdDateTimeString(System.DateTime dateTime) => throw null; + public virtual System.DateTime ToStableUniversalTime(System.DateTime dateTime) => throw null; + public virtual string ToXsdDateTimeString(System.DateTime dateTime) => throw null; + public virtual ServiceStack.LicenseKey VerifyLicenseKeyText(string licenseKeyText) => throw null; + public virtual ServiceStack.LicenseKey VerifyLicenseKeyTextFallback(string licenseKeyText) => throw null; + public virtual System.Threading.Tasks.Task WriteAndFlushAsync(System.IO.Stream stream, System.Byte[] bytes) => throw null; + public virtual void WriteLine(string line) => throw null; + public virtual void WriteLine(string line, params object[] args) => throw null; + } + + // Generated from `ServiceStack.PlatformExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class PlatformExtensions + { + public static System.Reflection.PropertyInfo AddAttributes(this System.Reflection.PropertyInfo propertyInfo, params System.Attribute[] attrs) => throw null; + public static System.Type AddAttributes(this System.Type type, params System.Attribute[] attrs) => throw null; + public static object[] AllAttributes(this System.Reflection.Assembly assembly) => throw null; + public static object[] AllAttributes(this System.Reflection.FieldInfo fieldInfo) => throw null; + public static object[] AllAttributes(this System.Reflection.FieldInfo fieldInfo, System.Type attrType) => throw null; + public static object[] AllAttributes(this System.Reflection.MemberInfo memberInfo) => throw null; + public static object[] AllAttributes(this System.Reflection.MemberInfo memberInfo, System.Type attrType) => throw null; + public static object[] AllAttributes(this System.Reflection.ParameterInfo paramInfo) => throw null; + public static object[] AllAttributes(this System.Reflection.ParameterInfo paramInfo, System.Type attrType) => throw null; + public static object[] AllAttributes(this System.Reflection.PropertyInfo propertyInfo) => throw null; + public static object[] AllAttributes(this System.Reflection.PropertyInfo propertyInfo, System.Type attrType) => throw null; + public static object[] AllAttributes(this System.Type type) => throw null; + public static object[] AllAttributes(this System.Type type, System.Type attrType) => throw null; + public static TAttr[] AllAttributes(this System.Reflection.FieldInfo fi) => throw null; + public static TAttr[] AllAttributes(this System.Reflection.MemberInfo mi) => throw null; + public static TAttr[] AllAttributes(this System.Reflection.ParameterInfo pi) => throw null; + public static TAttr[] AllAttributes(this System.Reflection.PropertyInfo pi) => throw null; + public static TAttr[] AllAttributes(this System.Type type) => throw null; + public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Reflection.PropertyInfo propertyInfo) => throw null; + public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Reflection.PropertyInfo propertyInfo, System.Type attrType) => throw null; + public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Type type) => throw null; + public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Reflection.PropertyInfo pi) => throw null; + public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Type type) => throw null; + public static System.Reflection.PropertyInfo[] AllProperties(this System.Type type) => throw null; + public static bool AssignableFrom(this System.Type type, System.Type fromType) => throw null; + public static System.Type BaseType(this System.Type type) => throw null; + public static void ClearRuntimeAttributes() => throw null; + public static bool ContainsGenericParameters(this System.Type type) => throw null; + public static System.Delegate CreateDelegate(this System.Reflection.MethodInfo methodInfo, System.Type delegateType) => throw null; + public static System.Delegate CreateDelegate(this System.Reflection.MethodInfo methodInfo, System.Type delegateType, object target) => throw null; + public static System.Reflection.ConstructorInfo[] DeclaredConstructors(this System.Type type) => throw null; + public static System.Type ElementType(this System.Type type) => throw null; + public static System.Reflection.FieldInfo[] Fields(this System.Type type) => throw null; + public static TAttr FirstAttribute(this System.Type type) where TAttr : class => throw null; + public static TAttribute FirstAttribute(this System.Reflection.MemberInfo memberInfo) => throw null; + public static TAttribute FirstAttribute(this System.Reflection.ParameterInfo paramInfo) => throw null; + public static TAttribute FirstAttribute(this System.Reflection.PropertyInfo propertyInfo) => throw null; + public static System.Type FirstGenericTypeDefinition(this System.Type type) => throw null; + public static object FromObjectDictionary(this System.Collections.Generic.IEnumerable> values, System.Type type) => throw null; + public static T FromObjectDictionary(this System.Collections.Generic.IEnumerable> values) => throw null; + public static System.Type[] GenericTypeArguments(this System.Type type) => throw null; + public static System.Type GenericTypeDefinition(this System.Type type) => throw null; + public static System.Collections.Generic.IEnumerable GetAllConstructors(this System.Type type) => throw null; + public static System.Reflection.FieldInfo[] GetAllFields(this System.Type type) => throw null; + public static System.Reflection.MemberInfo[] GetAllPublicMembers(this System.Type type) => throw null; + public static System.Reflection.Assembly GetAssembly(this System.Type type) => throw null; + public static System.Collections.Generic.List GetAttributes(this System.Reflection.PropertyInfo propertyInfo) => throw null; + public static System.Collections.Generic.List GetAttributes(this System.Reflection.PropertyInfo propertyInfo, System.Type attrType) => throw null; + public static System.Collections.Generic.List GetAttributes(this System.Reflection.PropertyInfo propertyInfo) => throw null; + public static System.Type GetCachedGenericType(this System.Type type, params System.Type[] argTypes) => throw null; + public static System.Type GetCollectionType(this System.Type type) => throw null; + public static string GetDeclaringTypeName(this System.Reflection.MemberInfo mi) => throw null; + public static string GetDeclaringTypeName(this System.Type type) => throw null; + public static System.Reflection.ConstructorInfo GetEmptyConstructor(this System.Type type) => throw null; + public static System.Reflection.FieldInfo GetFieldInfo(this System.Type type, string fieldName) => throw null; + public static System.Reflection.MethodInfo GetInstanceMethod(this System.Type type, string methodName) => throw null; + public static System.Reflection.MethodInfo[] GetInstanceMethods(this System.Type type) => throw null; + public static System.Type GetKeyValuePairTypeDef(this System.Type genericEnumType) => throw null; + public static bool GetKeyValuePairTypes(this System.Type kvpType, out System.Type keyType, out System.Type valueType) => throw null; + public static System.Type GetKeyValuePairsTypeDef(this System.Type dictType) => throw null; + public static bool GetKeyValuePairsTypes(this System.Type dictType, out System.Type keyType, out System.Type valueType) => throw null; + public static bool GetKeyValuePairsTypes(this System.Type dictType, out System.Type keyType, out System.Type valueType, out System.Type kvpType) => throw null; + public static System.Reflection.MethodInfo GetMethodInfo(this System.Reflection.PropertyInfo pi, bool nonPublic = default(bool)) => throw null; + public static System.Reflection.MethodInfo GetMethodInfo(this System.Type type, string methodName, System.Type[] types = default(System.Type[])) => throw null; + public static System.Reflection.MethodInfo[] GetMethodInfos(this System.Type type) => throw null; + public static System.Reflection.PropertyInfo GetPropertyInfo(this System.Type type, string propertyName) => throw null; + public static System.Reflection.PropertyInfo[] GetPropertyInfos(this System.Type type) => throw null; + public static System.Reflection.FieldInfo[] GetPublicFields(this System.Type type) => throw null; + public static System.Reflection.MemberInfo[] GetPublicMembers(this System.Type type) => throw null; + public static System.Reflection.FieldInfo GetPublicStaticField(this System.Type type, string fieldName) => throw null; + public static System.Reflection.MethodInfo GetStaticMethod(this System.Type type, string methodName) => throw null; + public static System.Reflection.MethodInfo GetStaticMethod(this System.Type type, string methodName, System.Type[] types) => throw null; + public static System.Type[] GetTypeGenericArguments(this System.Type type) => throw null; + public static System.Type[] GetTypeInterfaces(this System.Type type) => throw null; + public static System.Reflection.FieldInfo[] GetWritableFields(this System.Type type) => throw null; + public static bool HasAttribute(this System.Reflection.FieldInfo fi) => throw null; + public static bool HasAttribute(this System.Reflection.MethodInfo mi) => throw null; + public static bool HasAttribute(this System.Reflection.PropertyInfo pi) => throw null; + public static bool HasAttribute(this System.Type type) => throw null; + public static bool HasAttributeCached(this System.Reflection.MemberInfo memberInfo) => throw null; + public static bool HasAttributeNamed(this System.Reflection.FieldInfo fi, string name) => throw null; + public static bool HasAttributeNamed(this System.Reflection.MemberInfo mi, string name) => throw null; + public static bool HasAttributeNamed(this System.Reflection.PropertyInfo pi, string name) => throw null; + public static bool HasAttributeNamed(this System.Type type, string name) => throw null; + public static bool HasAttributeOf(this System.Reflection.FieldInfo fi) => throw null; + public static bool HasAttributeOf(this System.Reflection.MethodInfo mi) => throw null; + public static bool HasAttributeOf(this System.Reflection.PropertyInfo pi) => throw null; + public static bool HasAttributeOf(this System.Type type) => throw null; + public static bool HasAttributeOfCached(this System.Reflection.MemberInfo memberInfo) => throw null; + public static bool InstanceOfType(this System.Type type, object instance) => throw null; + public static System.Type[] Interfaces(this System.Type type) => throw null; + public static object InvokeMethod(this System.Delegate fn, object instance, object[] parameters = default(object[])) => throw null; + public static bool IsAbstract(this System.Type type) => throw null; + public static bool IsArray(this System.Type type) => throw null; + public static bool IsAssignableFromType(this System.Type type, System.Type fromType) => throw null; + public static bool IsClass(this System.Type type) => throw null; + public static bool IsDto(this System.Type type) => throw null; + public static bool IsDynamic(this System.Reflection.Assembly assembly) => throw null; + public static bool IsEnum(this System.Type type) => throw null; + public static bool IsEnumFlags(this System.Type type) => throw null; + public static bool IsGeneric(this System.Type type) => throw null; + public static bool IsGenericType(this System.Type type) => throw null; + public static bool IsGenericTypeDefinition(this System.Type type) => throw null; + public static bool IsInterface(this System.Type type) => throw null; + public static bool IsStandardClass(this System.Type type) => throw null; + public static bool IsUnderlyingEnum(this System.Type type) => throw null; + public static bool IsValueType(this System.Type type) => throw null; + public static System.Delegate MakeDelegate(this System.Reflection.MethodInfo mi, System.Type delegateType, bool throwOnBindFailure = default(bool)) => throw null; + public static System.Collections.Generic.Dictionary MergeIntoObjectDictionary(this object obj, params object[] sources) => throw null; + public static System.Reflection.MethodInfo Method(this System.Delegate fn) => throw null; + public static void PopulateInstance(this System.Collections.Generic.IEnumerable> values, object instance) => throw null; + public static void PopulateInstance(this System.Collections.Generic.IEnumerable> values, object instance) => throw null; + public static System.Reflection.PropertyInfo[] Properties(this System.Type type) => throw null; + public static System.Reflection.MethodInfo PropertyGetMethod(this System.Reflection.PropertyInfo pi, bool nonPublic = default(bool)) => throw null; + public static System.Type ReflectedType(this System.Reflection.FieldInfo fi) => throw null; + public static System.Type ReflectedType(this System.Reflection.PropertyInfo pi) => throw null; + public static System.Reflection.PropertyInfo ReplaceAttribute(this System.Reflection.PropertyInfo propertyInfo, System.Attribute attr) => throw null; + public static System.Reflection.MethodInfo SetMethod(this System.Reflection.PropertyInfo pi, bool nonPublic = default(bool)) => throw null; + public static System.Collections.Generic.Dictionary ToObjectDictionary(this object obj) => throw null; + public static System.Collections.Generic.Dictionary ToObjectDictionary(this object obj, System.Func mapper) => throw null; + public static System.Collections.Generic.Dictionary ToSafePartialObjectDictionary(this T instance) => throw null; + public static System.Collections.Generic.Dictionary ToStringDictionary(this System.Collections.Generic.IEnumerable> from) => throw null; + public static System.Collections.Generic.Dictionary ToStringDictionary(this System.Collections.Generic.IEnumerable> from, System.Collections.Generic.IEqualityComparer comparer) => throw null; + } + + // Generated from `ServiceStack.PopulateMemberDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void PopulateMemberDelegate(object target, object source); + + // Generated from `ServiceStack.ProfileSource` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum ProfileSource + { + All, + Client, + None, + OrmLite, + Redis, + ServiceStack, + } + + // Generated from `ServiceStack.PropertyAccessor` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PropertyAccessor + { + public PropertyAccessor(System.Reflection.PropertyInfo propertyInfo, ServiceStack.GetMemberDelegate publicGetter, ServiceStack.SetMemberDelegate publicSetter) => throw null; + public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } + public ServiceStack.GetMemberDelegate PublicGetter { get => throw null; } + public ServiceStack.SetMemberDelegate PublicSetter { get => throw null; } + } + + // Generated from `ServiceStack.PropertyInvoker` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class PropertyInvoker + { + public static ServiceStack.GetMemberDelegate CreateGetter(this System.Reflection.PropertyInfo propertyInfo) => throw null; + public static ServiceStack.GetMemberDelegate CreateGetter(this System.Reflection.PropertyInfo propertyInfo) => throw null; + public static ServiceStack.SetMemberDelegate CreateSetter(this System.Reflection.PropertyInfo propertyInfo) => throw null; + public static ServiceStack.SetMemberDelegate CreateSetter(this System.Reflection.PropertyInfo propertyInfo) => throw null; + } + + // Generated from `ServiceStack.QueryStringSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class QueryStringSerializer + { + public static ServiceStack.WriteComplexTypeDelegate ComplexTypeStrategy { get => throw null; set => throw null; } + public static void InitAot() => throw null; + public static string SerializeToString(T value) => throw null; + public static void WriteLateBoundObject(System.IO.TextWriter writer, object value) => throw null; + } + + // Generated from `ServiceStack.QueryStringStrategy` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class QueryStringStrategy + { + public static bool FormUrlEncoded(System.IO.TextWriter writer, string propertyName, object obj) => throw null; + } + + // Generated from `ServiceStack.QueryStringWriter<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class QueryStringWriter + { + public static ServiceStack.Text.Common.WriteObjectDelegate WriteFn() => throw null; + public static void WriteIDictionary(System.IO.TextWriter writer, object oMap) => throw null; + public static void WriteObject(System.IO.TextWriter writer, object value) => throw null; + } + + // Generated from `ServiceStack.QuotaType` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum QuotaType + { + Fields, + Operations, + PremiumFeature, + RequestsPerHour, + Tables, + Types, + } + + // Generated from `ServiceStack.RedisDiagnosticEvent` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisDiagnosticEvent : ServiceStack.DiagnosticEvent + { + public object Client { get => throw null; set => throw null; } + public System.Byte[][] Command { get => throw null; set => throw null; } + public string Host { get => throw null; set => throw null; } + public int Port { get => throw null; set => throw null; } + public RedisDiagnosticEvent() => throw null; + public System.Net.Sockets.Socket Socket { get => throw null; set => throw null; } + public override string Source { get => throw null; } + } + + // Generated from `ServiceStack.ReflectionExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ReflectionExtensions + { + public static bool AllHaveInterfacesOfType(this System.Type assignableFromType, params System.Type[] types) => throw null; + public static bool AreAllStringOrValueTypes(params System.Type[] types) => throw null; + public static object CreateInstance(this System.Type type) => throw null; + public static object CreateInstance(string typeName) => throw null; + public static object CreateInstance() => throw null; + public static T CreateInstance(this System.Type type) => throw null; + public const string DataMember = default; + public static System.Type FirstGenericArg(this System.Type type) => throw null; + public static System.Type FirstGenericType(this System.Type type) => throw null; + public static System.Reflection.PropertyInfo[] GetAllProperties(this System.Type type) => throw null; + public static ServiceStack.EmptyCtorDelegate GetConstructorMethod(System.Type type) => throw null; + public static ServiceStack.EmptyCtorDelegate GetConstructorMethod(string typeName) => throw null; + public static ServiceStack.EmptyCtorDelegate GetConstructorMethodToCache(System.Type type) => throw null; + public static System.Runtime.Serialization.DataContractAttribute GetDataContract(this System.Type type) => throw null; + public static System.Runtime.Serialization.DataMemberAttribute GetDataMember(this System.Reflection.FieldInfo pi) => throw null; + public static System.Runtime.Serialization.DataMemberAttribute GetDataMember(this System.Reflection.PropertyInfo pi) => throw null; + public static string GetDataMemberName(this System.Reflection.FieldInfo fi) => throw null; + public static string GetDataMemberName(this System.Reflection.PropertyInfo pi) => throw null; + public static ServiceStack.Text.Support.TypePair GetGenericArgumentsIfBothHaveConvertibleGenericDefinitionTypeAndArguments(this System.Type assignableFromType, System.Type typeA, System.Type typeB) => throw null; + public static System.Type[] GetGenericArgumentsIfBothHaveSameGenericDefinitionTypeAndArguments(this System.Type assignableFromType, System.Type typeA, System.Type typeB) => throw null; + public static System.Reflection.Module GetModule(this System.Type type) => throw null; + public static System.Func GetOnDeserializing() => throw null; + public static System.Reflection.PropertyInfo[] GetPublicProperties(this System.Type type) => throw null; + public static System.Reflection.FieldInfo[] GetSerializableFields(this System.Type type) => throw null; + public static System.Reflection.PropertyInfo[] GetSerializableProperties(this System.Type type) => throw null; + public static System.TypeCode GetTypeCode(this System.Type type) => throw null; + public static System.Type GetTypeWithGenericInterfaceOf(this System.Type type, System.Type genericInterfaceType) => throw null; + public static System.Type GetTypeWithGenericTypeDefinitionOf(this System.Type type, System.Type genericTypeDefinition) => throw null; + public static System.Type GetTypeWithGenericTypeDefinitionOfAny(this System.Type type, params System.Type[] genericTypeDefinitions) => throw null; + public static System.Type GetTypeWithInterfaceOf(this System.Type type, System.Type interfaceType) => throw null; + public static System.TypeCode GetUnderlyingTypeCode(this System.Type type) => throw null; + public static bool HasAnyInterface(this System.Type type, System.Type[] interfaceTypes) => throw null; + public static bool HasAnyTypeDefinitionsOf(this System.Type genericType, params System.Type[] theseGenericTypes) => throw null; + public static bool HasGenericType(this System.Type type) => throw null; + public static bool HasInterface(this System.Type type, System.Type interfaceType) => throw null; + public static bool IsInstanceOf(this System.Type type, System.Type thisOrBaseType) => throw null; + public static bool IsIntegerType(this System.Type type) => throw null; + public static bool IsNullableType(this System.Type type) => throw null; + public static bool IsNumericType(this System.Type type) => throw null; + public static bool IsOrHasGenericInterfaceTypeOf(this System.Type type, System.Type genericTypeDefinition) => throw null; + public static bool IsRealNumberType(this System.Type type) => throw null; + public static object New(this System.Type type) => throw null; + public static T New(this System.Type type) => throw null; + public static System.Reflection.PropertyInfo[] OnlySerializableProperties(this System.Reflection.PropertyInfo[] properties, System.Type type = default(System.Type)) => throw null; + } + + // Generated from `ServiceStack.SetMemberDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void SetMemberDelegate(object instance, object value); + + // Generated from `ServiceStack.SetMemberDelegate<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void SetMemberDelegate(T instance, object value); + + // Generated from `ServiceStack.SetMemberRefDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void SetMemberRefDelegate(ref object instance, object propertyValue); + + // Generated from `ServiceStack.SetMemberRefDelegate<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void SetMemberRefDelegate(ref T instance, object value); + + // Generated from `ServiceStack.StreamExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StreamExtensions + { + public static int AsyncBufferSize; + public static string CollapseWhitespace(this string str) => throw null; + public static System.Byte[] Combine(this System.Byte[] bytes, params System.Byte[][] withBytes) => throw null; + public static System.Int64 CopyTo(this System.IO.Stream input, System.IO.Stream output) => throw null; + public static System.Int64 CopyTo(this System.IO.Stream input, System.IO.Stream output, System.Byte[] buffer) => throw null; + public static System.Int64 CopyTo(this System.IO.Stream input, System.IO.Stream output, int bufferSize) => throw null; + public static System.Threading.Tasks.Task CopyToAsync(this System.IO.Stream input, System.IO.Stream output, System.Byte[] buffer, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task CopyToAsync(this System.IO.Stream input, System.IO.Stream output, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.IO.MemoryStream CopyToNewMemoryStream(this System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task CopyToNewMemoryStreamAsync(this System.IO.Stream stream) => throw null; + public const int DefaultBufferSize = default; + public static System.Byte[] GetBufferAsBytes(this System.IO.MemoryStream ms) => throw null; + public static System.ReadOnlyMemory GetBufferAsMemory(this System.IO.MemoryStream ms) => throw null; + public static System.ReadOnlySpan GetBufferAsSpan(this System.IO.MemoryStream ms) => throw null; + public static System.IO.MemoryStream InMemoryStream(this System.Byte[] bytes) => throw null; + public static System.Byte[] ReadExactly(this System.IO.Stream input, System.Byte[] buffer) => throw null; + public static System.Byte[] ReadExactly(this System.IO.Stream input, System.Byte[] buffer, int bytesToRead) => throw null; + public static System.Byte[] ReadExactly(this System.IO.Stream input, System.Byte[] buffer, int startIndex, int bytesToRead) => throw null; + public static System.Byte[] ReadExactly(this System.IO.Stream input, int bytesToRead) => throw null; + public static System.Byte[] ReadFully(this System.IO.Stream input) => throw null; + public static System.Byte[] ReadFully(this System.IO.Stream input, System.Byte[] buffer) => throw null; + public static System.Byte[] ReadFully(this System.IO.Stream input, int bufferSize) => throw null; + public static System.ReadOnlyMemory ReadFullyAsMemory(this System.IO.Stream input) => throw null; + public static System.ReadOnlyMemory ReadFullyAsMemory(this System.IO.Stream input, System.Byte[] buffer) => throw null; + public static System.ReadOnlyMemory ReadFullyAsMemory(this System.IO.Stream input, int bufferSize) => throw null; + public static System.Threading.Tasks.Task> ReadFullyAsMemoryAsync(this System.IO.Stream input, System.Byte[] buffer, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ReadFullyAsMemoryAsync(this System.IO.Stream input, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ReadFullyAsMemoryAsync(this System.IO.Stream input, int bufferSize, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ReadFullyAsync(this System.IO.Stream input, System.Byte[] buffer, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ReadFullyAsync(this System.IO.Stream input, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ReadFullyAsync(this System.IO.Stream input, int bufferSize, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.IEnumerable ReadLines(this System.IO.Stream stream) => throw null; + public static string ReadToEnd(this System.IO.MemoryStream ms) => throw null; + public static string ReadToEnd(this System.IO.MemoryStream ms, System.Text.Encoding encoding) => throw null; + public static string ReadToEnd(this System.IO.Stream stream) => throw null; + public static string ReadToEnd(this System.IO.Stream stream, System.Text.Encoding encoding) => throw null; + public static System.Threading.Tasks.Task ReadToEndAsync(this System.IO.MemoryStream ms) => throw null; + public static System.Threading.Tasks.Task ReadToEndAsync(this System.IO.MemoryStream ms, System.Text.Encoding encoding) => throw null; + public static System.Threading.Tasks.Task ReadToEndAsync(this System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task ReadToEndAsync(this System.IO.Stream stream, System.Text.Encoding encoding) => throw null; + public static System.Byte[] ToMd5Bytes(this System.IO.Stream stream) => throw null; + public static string ToMd5Hash(this System.Byte[] bytes) => throw null; + public static string ToMd5Hash(this System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task WriteAsync(this System.IO.Stream stream, System.Byte[] bytes, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAsync(this System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteAsync(this System.IO.Stream stream, string text, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void WritePartialTo(this System.IO.Stream fromStream, System.IO.Stream toStream, System.Int64 start, System.Int64 end) => throw null; + public static System.Threading.Tasks.Task WritePartialToAsync(this System.IO.Stream fromStream, System.IO.Stream toStream, System.Int64 start, System.Int64 end, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Int64 WriteTo(this System.IO.Stream inStream, System.IO.Stream outStream) => throw null; + public static System.Threading.Tasks.Task WriteToAsync(this System.IO.MemoryStream stream, System.IO.Stream output, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteToAsync(this System.IO.MemoryStream stream, System.IO.Stream output, System.Text.Encoding encoding, System.Threading.CancellationToken token) => throw null; + public static System.Threading.Tasks.Task WriteToAsync(this System.IO.Stream stream, System.IO.Stream output, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteToAsync(this System.IO.Stream stream, System.IO.Stream output, System.Text.Encoding encoding, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.StringDictionary` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringDictionary : System.Collections.Generic.Dictionary + { + public StringDictionary() => throw null; + public StringDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; + public StringDictionary(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IEqualityComparer comparer) => throw null; + public StringDictionary(System.Collections.Generic.IEqualityComparer comparer) => throw null; + protected StringDictionary(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public StringDictionary(int capacity) => throw null; + public StringDictionary(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; + } + + // Generated from `ServiceStack.StringExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StringExtensions + { + public static string AppendPath(this string uri, params string[] uriComponents) => throw null; + public static string AppendUrlPaths(this string uri, params string[] uriComponents) => throw null; + public static string AppendUrlPathsRaw(this string uri, params string[] uriComponents) => throw null; + public static string BaseConvert(this string source, int from, int to) => throw null; + public static int CompareIgnoreCase(this string strA, string strB) => throw null; + public static bool ContainsAny(this string text, string[] testMatches, System.StringComparison comparisonType) => throw null; + public static bool ContainsAny(this string text, params string[] testMatches) => throw null; + public static int CountOccurrencesOf(this string text, System.Char needle) => throw null; + public static void CreateDirectory(this string dirPath) => throw null; + public static string DecodeJsv(this string value) => throw null; + public static bool DirectoryExists(this string dirPath) => throw null; + public static string EncodeJson(this string value) => throw null; + public static string EncodeJsv(this string value) => throw null; + public static string EncodeXml(this string value) => throw null; + public static bool EndsWithIgnoreCase(this string text, string endsWith) => throw null; + public static bool EndsWithInvariant(this string str, string endsWith) => throw null; + public static bool EqualsIgnoreCase(this string value, string other) => throw null; + public static string ExtractContents(this string fromText, string startAfter, string endAt) => throw null; + public static string ExtractContents(this string fromText, string uniqueMarker, string startAfter, string endAt) => throw null; + public static bool FileExists(this string filePath) => throw null; + public static string Fmt(this string text, System.IFormatProvider provider, params object[] args) => throw null; + public static string Fmt(this string text, object arg1) => throw null; + public static string Fmt(this string text, object arg1, object arg2) => throw null; + public static string Fmt(this string text, object arg1, object arg2, object arg3) => throw null; + public static string Fmt(this string text, params object[] args) => throw null; + public static string FormatWith(this string text, params object[] args) => throw null; + public static string FromAsciiBytes(this System.Byte[] bytes) => throw null; + public static System.Byte[] FromBase64UrlSafe(this string input) => throw null; + public static T FromCsv(this string csv) => throw null; + public static T FromJson(this string json) => throw null; + public static T FromJsonSpan(this System.ReadOnlySpan json) => throw null; + public static T FromJsv(this string jsv) => throw null; + public static T FromJsvSpan(this System.ReadOnlySpan jsv) => throw null; + public static string FromUtf8Bytes(this System.Byte[] bytes) => throw null; + public static T FromXml(this string json) => throw null; + public static string GetExtension(this string filePath) => throw null; + public static bool Glob(this string value, string pattern) => throw null; + public static bool GlobPath(this string filePath, string pattern) => throw null; + public static string HexEscape(this string text, params System.Char[] anyCharOf) => throw null; + public static string HexUnescape(this string text, params System.Char[] anyCharOf) => throw null; + public static int IndexOfAny(this string text, int startIndex, params string[] needles) => throw null; + public static int IndexOfAny(this string text, params string[] needles) => throw null; + public static bool IsAnonymousType(this System.Type type) => throw null; + public static bool IsEmpty(this string value) => throw null; + public static bool IsInt(this string text) => throw null; + public static bool IsNullOrEmpty(this string value) => throw null; + public static bool IsSystemType(this System.Type type) => throw null; + public static bool IsTuple(this System.Type type) => throw null; + public static bool IsUserEnum(this System.Type type) => throw null; + public static bool IsUserType(this System.Type type) => throw null; + public static bool IsValidVarName(this string name) => throw null; + public static bool IsValidVarRef(this string name) => throw null; + public static string Join(this System.Collections.Generic.List items) => throw null; + public static string Join(this System.Collections.Generic.List items, string delimiter) => throw null; + public static string LastLeftPart(this string strVal, System.Char needle) => throw null; + public static string LastLeftPart(this string strVal, string needle) => throw null; + public static string LastRightPart(this string strVal, System.Char needle) => throw null; + public static string LastRightPart(this string strVal, string needle) => throw null; + public static string LeftPart(this string strVal, System.Char needle) => throw null; + public static string LeftPart(this string strVal, string needle) => throw null; + public static bool Matches(this string value, string pattern) => throw null; + public static string NormalizeNewLines(this string text) => throw null; + public static string ParentDirectory(this string filePath) => throw null; + public static System.Collections.Generic.List> ParseAsKeyValues(this string text, string delimiter = default(string)) => throw null; + public static System.Collections.Generic.Dictionary ParseKeyValueText(this string text, string delimiter = default(string)) => throw null; + public static string Quoted(this string text) => throw null; + public static string ReadAllText(this string filePath) => throw null; + public static System.Collections.Generic.IEnumerable ReadLines(this string text) => throw null; + public static string RemoveCharFlags(this string text, bool[] charFlags) => throw null; + public static string ReplaceAll(this string haystack, string needle, string replacement) => throw null; + public static string ReplaceFirst(this string haystack, string needle, string replacement) => throw null; + public static string RightPart(this string strVal, System.Char needle) => throw null; + public static string RightPart(this string strVal, string needle) => throw null; + public static string SafeSubstring(this string value, int startIndex) => throw null; + public static string SafeSubstring(this string value, int startIndex, int length) => throw null; + public static string SafeVarName(this string text) => throw null; + public static string SafeVarRef(this string text) => throw null; + public static string SplitCamelCase(this string value) => throw null; + public static string[] SplitOnFirst(this string strVal, System.Char needle) => throw null; + public static string[] SplitOnFirst(this string strVal, string needle) => throw null; + public static string[] SplitOnLast(this string strVal, System.Char needle) => throw null; + public static string[] SplitOnLast(this string strVal, string needle) => throw null; + public static bool StartsWithIgnoreCase(this string text, string startsWith) => throw null; + public static string StripHtml(this string html) => throw null; + public static string StripMarkdownMarkup(this string markdown) => throw null; + public static string StripQuotes(this string text) => throw null; + public static string SubstringWithElipsis(this string value, int startIndex, int length) => throw null; + public static string SubstringWithEllipsis(this string value, int startIndex, int length) => throw null; + public static System.Byte[] ToAsciiBytes(this string value) => throw null; + public static string ToBase64UrlSafe(this System.Byte[] input) => throw null; + public static string ToBase64UrlSafe(this System.IO.MemoryStream ms) => throw null; + public static string ToCamelCase(this string value) => throw null; + public static string ToCsv(this T obj) => throw null; + public static string ToCsv(this T obj, System.Action configure) => throw null; + public static System.Decimal ToDecimal(this string text) => throw null; + public static System.Decimal ToDecimal(this string text, System.Decimal defaultValue) => throw null; + public static System.Decimal ToDecimalInvariant(this string text) => throw null; + public static double ToDouble(this string text) => throw null; + public static double ToDouble(this string text, double defaultValue) => throw null; + public static double ToDoubleInvariant(this string text) => throw null; + public static string ToEnglish(this string camelCase) => throw null; + public static T ToEnum(this string value) => throw null; + public static T ToEnumOrDefault(this string value, T defaultValue) => throw null; + public static float ToFloat(this string text) => throw null; + public static float ToFloat(this string text, float defaultValue) => throw null; + public static float ToFloatInvariant(this string text) => throw null; + public static string ToHex(this System.Byte[] hashBytes, bool upper = default(bool)) => throw null; + public static string ToHttps(this string url) => throw null; + public static int ToInt(this string text) => throw null; + public static int ToInt(this string text, int defaultValue) => throw null; + public static System.Int64 ToInt64(this string text) => throw null; + public static System.Int64 ToInt64(this string text, System.Int64 defaultValue) => throw null; + public static string ToInvariantUpper(this System.Char value) => throw null; + public static string ToJson(this T obj) => throw null; + public static string ToJson(this T obj, System.Action configure) => throw null; + public static string ToJsv(this T obj) => throw null; + public static string ToJsv(this T obj, System.Action configure) => throw null; + public static System.Int64 ToLong(this string text) => throw null; + public static System.Int64 ToLong(this string text, System.Int64 defaultValue) => throw null; + public static string ToLowerSafe(this string value) => throw null; + public static string ToLowercaseUnderscore(this string value) => throw null; + public static string ToNullIfEmpty(this string text) => throw null; + public static string ToParentPath(this string path) => throw null; + public static string ToPascalCase(this string value) => throw null; + public static string ToRot13(this string value) => throw null; + public static string ToSafeJson(this T obj) => throw null; + public static string ToSafeJsv(this T obj) => throw null; + public static string ToTitleCase(this string value) => throw null; + public static string ToUpperSafe(this string value) => throw null; + public static System.Byte[] ToUtf8Bytes(this double doubleVal) => throw null; + public static System.Byte[] ToUtf8Bytes(this int intVal) => throw null; + public static System.Byte[] ToUtf8Bytes(this System.Int64 longVal) => throw null; + public static System.Byte[] ToUtf8Bytes(this string value) => throw null; + public static System.Byte[] ToUtf8Bytes(this System.UInt64 ulongVal) => throw null; + public static string ToXml(this T obj) => throw null; + public static string TrimPrefixes(this string fromString, params string[] prefixes) => throw null; + public static string UrlDecode(this string text) => throw null; + public static string UrlEncode(this string text, bool upperCase = default(bool)) => throw null; + public static string UrlFormat(this string url, params string[] urlComponents) => throw null; + public static string UrlWithTrailingSlash(this string url) => throw null; + public static string WithTrailingSlash(this string path) => throw null; + public static string WithoutBom(this string value) => throw null; + public static string WithoutExtension(this string filePath) => throw null; + } + + // Generated from `ServiceStack.TaskExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TaskExtensions + { + public static System.Threading.Tasks.Task Error(this System.Threading.Tasks.Task task, System.Action fn, bool onUiThread = default(bool), System.Threading.Tasks.TaskContinuationOptions taskOptions = default(System.Threading.Tasks.TaskContinuationOptions)) => throw null; + public static System.Threading.Tasks.Task Error(this System.Threading.Tasks.Task task, System.Action fn, bool onUiThread = default(bool), System.Threading.Tasks.TaskContinuationOptions taskOptions = default(System.Threading.Tasks.TaskContinuationOptions)) => throw null; + public static System.Threading.Tasks.Task Success(this System.Threading.Tasks.Task task, System.Action fn, bool onUiThread = default(bool), System.Threading.Tasks.TaskContinuationOptions taskOptions = default(System.Threading.Tasks.TaskContinuationOptions)) => throw null; + public static System.Threading.Tasks.Task Success(this System.Threading.Tasks.Task task, System.Action fn, bool onUiThread = default(bool), System.Threading.Tasks.TaskContinuationOptions taskOptions = default(System.Threading.Tasks.TaskContinuationOptions)) => throw null; + public static System.Exception UnwrapIfSingleException(this System.Exception ex) => throw null; + public static System.Exception UnwrapIfSingleException(this System.Threading.Tasks.Task task) => throw null; + public static System.Exception UnwrapIfSingleException(this System.Threading.Tasks.Task task) => throw null; + } + + // Generated from `ServiceStack.TaskResult` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TaskResult + { + public static System.Threading.Tasks.Task Canceled; + public static System.Threading.Tasks.Task False; + public static System.Threading.Tasks.Task Finished; + public static System.Threading.Tasks.Task One; + public static System.Threading.Tasks.Task True; + public static System.Threading.Tasks.Task Zero; + } + + // Generated from `ServiceStack.TaskUtils` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TaskUtils + { + public static System.Threading.Tasks.Task Cast(this System.Threading.Tasks.Task task) where To : From => throw null; + public static System.Threading.Tasks.Task EachAsync(this System.Collections.Generic.IEnumerable items, System.Func fn) => throw null; + public static System.Threading.Tasks.Task FromResult(T result) => throw null; + public static System.Threading.Tasks.Task InTask(this System.Exception ex) => throw null; + public static System.Threading.Tasks.Task InTask(this T result) => throw null; + public static bool IsSuccess(this System.Threading.Tasks.Task task) => throw null; + public static System.Threading.Tasks.TaskScheduler SafeTaskScheduler() => throw null; + public static void Sleep(System.TimeSpan time) => throw null; + public static void Sleep(int timeMs) => throw null; + public static System.Threading.Tasks.Task Then(this System.Threading.Tasks.Task task, System.Func fn) => throw null; + public static System.Threading.Tasks.Task Then(this System.Threading.Tasks.Task task, System.Func fn) => throw null; + } + + // Generated from `ServiceStack.TextExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TextExtensions + { + public static string FromCsvField(this string text) => throw null; + public static System.Collections.Generic.List FromCsvFields(this System.Collections.Generic.IEnumerable texts) => throw null; + public static string[] FromCsvFields(params string[] texts) => throw null; + public static string SerializeToString(this T value) => throw null; + public static object ToCsvField(this object text) => throw null; + public static string ToCsvField(this string text) => throw null; + } + + // Generated from `ServiceStack.TypeConstants` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TypeConstants + { + public static bool[] EmptyBoolArray; + public static System.Collections.Generic.List EmptyBoolList; + public static System.Byte[] EmptyByteArray; + public static System.Byte[][] EmptyByteArrayArray; + public static System.Collections.Generic.List EmptyByteList; + public static System.Char[] EmptyCharArray; + public static System.Collections.Generic.List EmptyCharList; + public static System.Reflection.FieldInfo[] EmptyFieldInfoArray; + public static System.Collections.Generic.List EmptyFieldInfoList; + public static int[] EmptyIntArray; + public static System.Collections.Generic.List EmptyIntList; + public static System.Int64[] EmptyLongArray; + public static System.Collections.Generic.List EmptyLongList; + public static object EmptyObject; + public static object[] EmptyObjectArray; + public static System.Collections.Generic.Dictionary EmptyObjectDictionary; + public static System.Collections.Generic.List EmptyObjectList; + public static System.Reflection.PropertyInfo[] EmptyPropertyInfoArray; + public static System.Collections.Generic.List EmptyPropertyInfoList; + public static string[] EmptyStringArray; + public static System.Collections.Generic.Dictionary EmptyStringDictionary; + public static System.Collections.Generic.List EmptyStringList; + public static System.ReadOnlyMemory EmptyStringMemory { get => throw null; } + public static System.ReadOnlySpan EmptyStringSpan { get => throw null; } + public static System.Threading.Tasks.Task EmptyTask; + public static System.Type[] EmptyTypeArray; + public static System.Collections.Generic.List EmptyTypeList; + public static System.Threading.Tasks.Task FalseTask; + public const System.Char NonWidthWhiteSpace = default; + public static System.Char[] NonWidthWhiteSpaceChars; + public static System.ReadOnlyMemory NullStringMemory { get => throw null; } + public static System.ReadOnlySpan NullStringSpan { get => throw null; } + public static System.Threading.Tasks.Task TrueTask; + public static System.Threading.Tasks.Task ZeroTask; + } + + // Generated from `ServiceStack.TypeConstants<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TypeConstants + { + public static T[] EmptyArray; + public static System.Collections.Generic.HashSet EmptyHashSet; + public static System.Collections.Generic.List EmptyList; + } + + // Generated from `ServiceStack.TypeFields` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class TypeFields + { + public static System.Type FactoryType; + public System.Collections.Generic.Dictionary FieldsMap; + public static ServiceStack.TypeFields Get(System.Type type) => throw null; + public ServiceStack.FieldAccessor GetAccessor(string propertyName) => throw null; + public virtual System.Reflection.FieldInfo GetPublicField(string name) => throw null; + public virtual ServiceStack.GetMemberDelegate GetPublicGetter(System.Reflection.FieldInfo fi) => throw null; + public virtual ServiceStack.GetMemberDelegate GetPublicGetter(string name) => throw null; + public virtual ServiceStack.SetMemberDelegate GetPublicSetter(System.Reflection.FieldInfo fi) => throw null; + public virtual ServiceStack.SetMemberDelegate GetPublicSetter(string name) => throw null; + public virtual ServiceStack.SetMemberRefDelegate GetPublicSetterRef(string name) => throw null; + public System.Reflection.FieldInfo[] PublicFieldInfos { get => throw null; set => throw null; } + public System.Type Type { get => throw null; set => throw null; } + protected TypeFields() => throw null; + } + + // Generated from `ServiceStack.TypeFields<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypeFields : ServiceStack.TypeFields + { + public static ServiceStack.FieldAccessor GetAccessor(string propertyName) => throw null; + public static ServiceStack.TypeFields Instance; + public TypeFields() => throw null; + } + + // Generated from `ServiceStack.TypeProperties` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class TypeProperties + { + public static System.Type FactoryType; + public static ServiceStack.TypeProperties Get(System.Type type) => throw null; + public ServiceStack.PropertyAccessor GetAccessor(string propertyName) => throw null; + public ServiceStack.GetMemberDelegate GetPublicGetter(System.Reflection.PropertyInfo pi) => throw null; + public ServiceStack.GetMemberDelegate GetPublicGetter(string name) => throw null; + public System.Reflection.PropertyInfo GetPublicProperty(string name) => throw null; + public ServiceStack.SetMemberDelegate GetPublicSetter(System.Reflection.PropertyInfo pi) => throw null; + public ServiceStack.SetMemberDelegate GetPublicSetter(string name) => throw null; + public System.Collections.Generic.Dictionary PropertyMap; + public System.Reflection.PropertyInfo[] PublicPropertyInfos { get => throw null; set => throw null; } + public System.Type Type { get => throw null; set => throw null; } + protected TypeProperties() => throw null; + } + + // Generated from `ServiceStack.TypeProperties<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypeProperties : ServiceStack.TypeProperties + { + public static ServiceStack.PropertyAccessor GetAccessor(string propertyName) => throw null; + public static ServiceStack.TypeProperties Instance; + public TypeProperties() => throw null; + } + + // Generated from `ServiceStack.WriteComplexTypeDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate bool WriteComplexTypeDelegate(System.IO.TextWriter writer, string propertyName, object obj); + + // Generated from `ServiceStack.X` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class X + { + public static T Apply(T obj, System.Action fn) => throw null; + public static To Map(From from, System.Func fn) => throw null; + } + + namespace Extensions + { + // Generated from `ServiceStack.Extensions.ServiceStackExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceStackExtensions + { + public static System.ReadOnlyMemory Trim(this System.ReadOnlyMemory span) => throw null; + public static System.ReadOnlyMemory TrimEnd(this System.ReadOnlyMemory value) => throw null; + public static System.ReadOnlyMemory TrimStart(this System.ReadOnlyMemory value) => throw null; + } + + } + namespace Text + { + // Generated from `ServiceStack.Text.AssemblyUtils` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AssemblyUtils + { + public static System.Type FindType(string typeName) => throw null; + public static System.Type FindType(string typeName, string assemblyName) => throw null; + public static System.Type FindTypeFromLoadedAssemblies(string typeName) => throw null; + public static string GetAssemblyBinPath(System.Reflection.Assembly assembly) => throw null; + public static System.Reflection.Assembly LoadAssembly(string assemblyPath) => throw null; + public static System.Type MainInterface() => throw null; + public static string ToTypeString(this System.Type type) => throw null; + public static string WriteType(System.Type type) => throw null; + } + + // Generated from `ServiceStack.Text.CachedTypeInfo` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CachedTypeInfo + { + public CachedTypeInfo(System.Type type) => throw null; + public ServiceStack.Text.EnumInfo EnumInfo { get => throw null; } + public static ServiceStack.Text.CachedTypeInfo Get(System.Type type) => throw null; + } + + // Generated from `ServiceStack.Text.CharMemoryExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CharMemoryExtensions + { + public static System.ReadOnlyMemory Advance(this System.ReadOnlyMemory text, int to) => throw null; + public static System.ReadOnlyMemory AdvancePastChar(this System.ReadOnlyMemory literal, System.Char delim) => throw null; + public static System.ReadOnlyMemory AdvancePastWhitespace(this System.ReadOnlyMemory literal) => throw null; + public static bool EndsWith(this System.ReadOnlyMemory value, string other) => throw null; + public static bool EndsWith(this System.ReadOnlyMemory value, string other, System.StringComparison comparison) => throw null; + public static bool EqualsOrdinal(this System.ReadOnlyMemory value, System.ReadOnlyMemory other) => throw null; + public static bool EqualsOrdinal(this System.ReadOnlyMemory value, string other) => throw null; + public static System.ReadOnlyMemory FromUtf8(this System.ReadOnlyMemory bytes) => throw null; + public static int IndexOf(this System.ReadOnlyMemory value, System.Char needle) => throw null; + public static int IndexOf(this System.ReadOnlyMemory value, System.Char needle, int start) => throw null; + public static int IndexOf(this System.ReadOnlyMemory value, string needle) => throw null; + public static int IndexOf(this System.ReadOnlyMemory value, string needle, int start) => throw null; + public static bool IsNullOrEmpty(this System.ReadOnlyMemory value) => throw null; + public static bool IsNullOrWhiteSpace(this System.ReadOnlyMemory value) => throw null; + public static bool IsWhiteSpace(this System.ReadOnlyMemory value) => throw null; + public static int LastIndexOf(this System.ReadOnlyMemory value, System.Char needle) => throw null; + public static int LastIndexOf(this System.ReadOnlyMemory value, System.Char needle, int start) => throw null; + public static int LastIndexOf(this System.ReadOnlyMemory value, string needle) => throw null; + public static int LastIndexOf(this System.ReadOnlyMemory value, string needle, int start) => throw null; + public static System.ReadOnlyMemory LastLeftPart(this System.ReadOnlyMemory strVal, System.Char needle) => throw null; + public static System.ReadOnlyMemory LastLeftPart(this System.ReadOnlyMemory strVal, string needle) => throw null; + public static System.ReadOnlyMemory LastRightPart(this System.ReadOnlyMemory strVal, System.Char needle) => throw null; + public static System.ReadOnlyMemory LastRightPart(this System.ReadOnlyMemory strVal, string needle) => throw null; + public static System.ReadOnlyMemory LeftPart(this System.ReadOnlyMemory strVal, System.Char needle) => throw null; + public static System.ReadOnlyMemory LeftPart(this System.ReadOnlyMemory strVal, string needle) => throw null; + public static bool ParseBoolean(this System.ReadOnlyMemory value) => throw null; + public static System.Byte ParseByte(this System.ReadOnlyMemory value) => throw null; + public static System.Decimal ParseDecimal(this System.ReadOnlyMemory value) => throw null; + public static double ParseDouble(this System.ReadOnlyMemory value) => throw null; + public static float ParseFloat(this System.ReadOnlyMemory value) => throw null; + public static System.Guid ParseGuid(this System.ReadOnlyMemory value) => throw null; + public static System.Int16 ParseInt16(this System.ReadOnlyMemory value) => throw null; + public static int ParseInt32(this System.ReadOnlyMemory value) => throw null; + public static System.Int64 ParseInt64(this System.ReadOnlyMemory value) => throw null; + public static System.SByte ParseSByte(this System.ReadOnlyMemory value) => throw null; + public static System.UInt16 ParseUInt16(this System.ReadOnlyMemory value) => throw null; + public static System.UInt32 ParseUInt32(this System.ReadOnlyMemory value) => throw null; + public static System.UInt64 ParseUInt64(this System.ReadOnlyMemory value) => throw null; + public static System.ReadOnlyMemory RightPart(this System.ReadOnlyMemory strVal, System.Char needle) => throw null; + public static System.ReadOnlyMemory RightPart(this System.ReadOnlyMemory strVal, string needle) => throw null; + public static System.ReadOnlyMemory SafeSlice(this System.ReadOnlyMemory value, int startIndex) => throw null; + public static System.ReadOnlyMemory SafeSlice(this System.ReadOnlyMemory value, int startIndex, int length) => throw null; + public static void SplitOnFirst(this System.ReadOnlyMemory strVal, System.ReadOnlyMemory needle, out System.ReadOnlyMemory first, out System.ReadOnlyMemory last) => throw null; + public static void SplitOnFirst(this System.ReadOnlyMemory strVal, System.Char needle, out System.ReadOnlyMemory first, out System.ReadOnlyMemory last) => throw null; + public static void SplitOnLast(this System.ReadOnlyMemory strVal, System.ReadOnlyMemory needle, out System.ReadOnlyMemory first, out System.ReadOnlyMemory last) => throw null; + public static void SplitOnLast(this System.ReadOnlyMemory strVal, System.Char needle, out System.ReadOnlyMemory first, out System.ReadOnlyMemory last) => throw null; + public static bool StartsWith(this System.ReadOnlyMemory value, string other) => throw null; + public static bool StartsWith(this System.ReadOnlyMemory value, string other, System.StringComparison comparison) => throw null; + public static string SubstringWithEllipsis(this System.ReadOnlyMemory value, int startIndex, int length) => throw null; + public static System.ReadOnlyMemory ToUtf8(this System.ReadOnlyMemory chars) => throw null; + public static bool TryParseBoolean(this System.ReadOnlyMemory value, out bool result) => throw null; + public static bool TryParseDecimal(this System.ReadOnlyMemory value, out System.Decimal result) => throw null; + public static bool TryParseDouble(this System.ReadOnlyMemory value, out double result) => throw null; + public static bool TryParseFloat(this System.ReadOnlyMemory value, out float result) => throw null; + public static bool TryReadLine(this System.ReadOnlyMemory text, out System.ReadOnlyMemory line, ref int startIndex) => throw null; + public static bool TryReadPart(this System.ReadOnlyMemory text, System.ReadOnlyMemory needle, out System.ReadOnlyMemory part, ref int startIndex) => throw null; + } + + // Generated from `ServiceStack.Text.Config` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Config + { + public bool AlwaysUseUtc { get => throw null; set => throw null; } + public bool AppendUtcOffset { get => throw null; set => throw null; } + public static ServiceStack.Text.Config AssertNotInit() => throw null; + public bool AssumeUtc { get => throw null; set => throw null; } + public Config() => throw null; + public bool ConvertObjectTypesIntoStringDictionary { get => throw null; set => throw null; } + public ServiceStack.Text.DateHandler DateHandler { get => throw null; set => throw null; } + public string DateTimeFormat { get => throw null; set => throw null; } + public static ServiceStack.Text.Config Defaults { get => throw null; } + public bool EmitCamelCaseNames { get => throw null; set => throw null; } + public bool EmitLowercaseUnderscoreNames { get => throw null; set => throw null; } + public bool EscapeHtmlChars { get => throw null; set => throw null; } + public bool EscapeUnicode { get => throw null; set => throw null; } + public bool ExcludeDefaultValues { get => throw null; set => throw null; } + public string[] ExcludePropertyReferences { get => throw null; set => throw null; } + public bool ExcludeTypeInfo { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet ExcludeTypeNames { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet ExcludeTypes { get => throw null; set => throw null; } + public bool IncludeDefaultEnums { get => throw null; set => throw null; } + public bool IncludeNullValues { get => throw null; set => throw null; } + public bool IncludeNullValuesInDictionaries { get => throw null; set => throw null; } + public bool IncludePublicFields { get => throw null; set => throw null; } + public bool IncludeTypeInfo { get => throw null; set => throw null; } + public bool Indent { get => throw null; set => throw null; } + public static void Init() => throw null; + public static void Init(ServiceStack.Text.Config config) => throw null; + public int MaxDepth { get => throw null; set => throw null; } + public ServiceStack.EmptyCtorFactoryDelegate ModelFactory { get => throw null; set => throw null; } + public ServiceStack.Text.Common.DeserializationErrorDelegate OnDeserializationError { get => throw null; set => throw null; } + public ServiceStack.Text.ParseAsType ParsePrimitiveFloatingPointTypes { get => throw null; set => throw null; } + public System.Func ParsePrimitiveFn { get => throw null; set => throw null; } + public ServiceStack.Text.ParseAsType ParsePrimitiveIntegerTypes { get => throw null; set => throw null; } + public ServiceStack.Text.Config Populate(ServiceStack.Text.Config config) => throw null; + public bool PreferInterfaces { get => throw null; set => throw null; } + public ServiceStack.Text.PropertyConvention PropertyConvention { get => throw null; set => throw null; } + public bool SkipDateTimeConversion { get => throw null; set => throw null; } + public ServiceStack.Text.TextCase TextCase { get => throw null; set => throw null; } + public bool ThrowOnError { get => throw null; set => throw null; } + public ServiceStack.Text.TimeSpanHandler TimeSpanHandler { get => throw null; set => throw null; } + public bool TreatEnumAsInteger { get => throw null; set => throw null; } + public bool TryParseIntoBestFit { get => throw null; set => throw null; } + public bool TryToParseNumericType { get => throw null; set => throw null; } + public bool TryToParsePrimitiveTypeValues { get => throw null; set => throw null; } + public string TypeAttr { get => throw null; set => throw null; } + public System.ReadOnlyMemory TypeAttrMemory { get => throw null; } + public System.Func TypeFinder { get => throw null; set => throw null; } + public System.Func TypeWriter { get => throw null; set => throw null; } + public static void UnsafeInit(ServiceStack.Text.Config config) => throw null; + } + + // Generated from `ServiceStack.Text.ConvertibleTypeKey` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConvertibleTypeKey + { + public ConvertibleTypeKey() => throw null; + public ConvertibleTypeKey(System.Type toInstanceType, System.Type fromElementType) => throw null; + public bool Equals(ServiceStack.Text.ConvertibleTypeKey other) => throw null; + public override bool Equals(object obj) => throw null; + public System.Type FromElementType { get => throw null; set => throw null; } + public override int GetHashCode() => throw null; + public System.Type ToInstanceType { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Text.CsvAttribute` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvAttribute : System.Attribute + { + public CsvAttribute(ServiceStack.Text.CsvBehavior csvBehavior) => throw null; + public ServiceStack.Text.CsvBehavior CsvBehavior { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Text.CsvBehavior` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum CsvBehavior + { + FirstEnumerable, + } + + // Generated from `ServiceStack.Text.CsvConfig` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CsvConfig + { + public static string[] EscapeStrings { get => throw null; set => throw null; } + public static string ItemDelimiterString { get => throw null; set => throw null; } + public static string ItemSeperatorString { get => throw null; set => throw null; } + public static System.Globalization.CultureInfo RealNumberCultureInfo { get => throw null; set => throw null; } + public static void Reset() => throw null; + public static string RowSeparatorString { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Text.CsvConfig<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CsvConfig + { + public static object CustomHeaders { set => throw null; } + public static System.Collections.Generic.Dictionary CustomHeadersMap { get => throw null; set => throw null; } + public static bool OmitHeaders { get => throw null; set => throw null; } + public static void Reset() => throw null; + } + + // Generated from `ServiceStack.Text.CsvReader` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvReader + { + public CsvReader() => throw null; + public static string EatValue(string value, ref int i) => throw null; + public static System.Collections.Generic.List ParseFields(string line) => throw null; + public static System.Collections.Generic.List ParseFields(string line, System.Func parseFn) => throw null; + public static System.Collections.Generic.List ParseLines(string csv) => throw null; + } + + // Generated from `ServiceStack.Text.CsvReader<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvReader + { + public CsvReader() => throw null; + public static System.Collections.Generic.List GetRows(System.Collections.Generic.IEnumerable records) => throw null; + public static System.Collections.Generic.List Headers { get => throw null; set => throw null; } + public static System.Collections.Generic.List Read(System.Collections.Generic.List rows) => throw null; + public static object ReadObject(string csv) => throw null; + public static object ReadObjectRow(string csv) => throw null; + public static T ReadRow(string value) => throw null; + public static System.Collections.Generic.List> ReadStringDictionary(System.Collections.Generic.IEnumerable rows) => throw null; + } + + // Generated from `ServiceStack.Text.CsvSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvSerializer + { + public CsvSerializer() => throw null; + public static T DeserializeFromReader(System.IO.TextReader reader) => throw null; + public static object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public static T DeserializeFromStream(System.IO.Stream stream) => throw null; + public static object DeserializeFromString(System.Type type, string text) => throw null; + public static T DeserializeFromString(string text) => throw null; + public static void InitAot() => throw null; + public static System.Action OnSerialize { get => throw null; set => throw null; } + public static object ReadLateBoundObject(System.Type type, string value) => throw null; + public static string SerializeToCsv(System.Collections.Generic.IEnumerable records) => throw null; + public static void SerializeToStream(object obj, System.IO.Stream stream) => throw null; + public static void SerializeToStream(T value, System.IO.Stream stream) => throw null; + public static string SerializeToString(T value) => throw null; + public static void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; + public static System.Text.Encoding UseEncoding { get => throw null; set => throw null; } + public static void WriteLateBoundObject(System.IO.TextWriter writer, object value) => throw null; + } + + // Generated from `ServiceStack.Text.CsvSerializer<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CsvSerializer + { + public static object ReadEnumerableProperty(string row) => throw null; + public static object ReadEnumerableType(string value) => throw null; + public static ServiceStack.Text.Common.ParseStringDelegate ReadFn() => throw null; + public static object ReadNonEnumerableType(string row) => throw null; + public static object ReadObject(string value) => throw null; + public static object ReadSelf(string value) => throw null; + public static void WriteEnumerableProperty(System.IO.TextWriter writer, object obj) => throw null; + public static void WriteEnumerableType(System.IO.TextWriter writer, object obj) => throw null; + public static ServiceStack.Text.Common.WriteObjectDelegate WriteFn() => throw null; + public static void WriteNonEnumerableType(System.IO.TextWriter writer, object obj) => throw null; + public static void WriteObject(System.IO.TextWriter writer, object value) => throw null; + public static void WriteSelf(System.IO.TextWriter writer, object obj) => throw null; + } + + // Generated from `ServiceStack.Text.CsvStreamExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CsvStreamExtensions + { + public static void WriteCsv(this System.IO.Stream outputStream, System.Collections.Generic.IEnumerable records) => throw null; + public static void WriteCsv(this System.IO.TextWriter writer, System.Collections.Generic.IEnumerable records) => throw null; + } + + // Generated from `ServiceStack.Text.CsvStringSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvStringSerializer : ServiceStack.Text.IStringSerializer + { + public CsvStringSerializer() => throw null; + public object DeserializeFromString(string serializedText, System.Type type) => throw null; + public To DeserializeFromString(string serializedText) => throw null; + public string SerializeToString(TFrom from) => throw null; + } + + // Generated from `ServiceStack.Text.CsvWriter` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CsvWriter + { + public static bool HasAnyEscapeChars(string value) => throw null; + } + + // Generated from `ServiceStack.Text.CsvWriter<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvWriter + { + public CsvWriter() => throw null; + public const System.Char DelimiterChar = default; + public static System.Collections.Generic.List> GetRows(System.Collections.Generic.IEnumerable records) => throw null; + public static System.Collections.Generic.List Headers { get => throw null; set => throw null; } + public static void Write(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable> rows) => throw null; + public static void Write(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable records) => throw null; + public static void WriteObject(System.IO.TextWriter writer, object records) => throw null; + public static void WriteObjectRow(System.IO.TextWriter writer, object record) => throw null; + public static void WriteRow(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable row) => throw null; + public static void WriteRow(System.IO.TextWriter writer, T row) => throw null; + } + + // Generated from `ServiceStack.Text.DateHandler` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum DateHandler + { + DCJSCompatible, + ISO8601, + ISO8601DateOnly, + ISO8601DateTime, + RFC1123, + TimestampOffset, + UnixTime, + UnixTimeMs, + } + + // Generated from `ServiceStack.Text.DateTimeExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DateTimeExtensions + { + public static System.DateTime EndOfLastMonth(this System.DateTime from) => throw null; + public static string FmtSortableDate(this System.DateTime from) => throw null; + public static string FmtSortableDateTime(this System.DateTime from) => throw null; + public static System.DateTime FromShortestXsdDateTimeString(this string xsdDateTime) => throw null; + public static System.TimeSpan FromTimeOffsetString(this string offsetString) => throw null; + public static System.DateTime FromUnixTime(this double unixTime) => throw null; + public static System.DateTime FromUnixTime(this int unixTime) => throw null; + public static System.DateTime FromUnixTime(this System.Int64 unixTime) => throw null; + public static System.DateTime FromUnixTimeMs(this double msSince1970) => throw null; + public static System.DateTime FromUnixTimeMs(this double msSince1970, System.TimeSpan offset) => throw null; + public static System.DateTime FromUnixTimeMs(this System.Int64 msSince1970) => throw null; + public static System.DateTime FromUnixTimeMs(this System.Int64 msSince1970, System.TimeSpan offset) => throw null; + public static System.DateTime FromUnixTimeMs(string msSince1970) => throw null; + public static System.DateTime FromUnixTimeMs(string msSince1970, System.TimeSpan offset) => throw null; + public static bool IsEqualToTheSecond(this System.DateTime dateTime, System.DateTime otherDateTime) => throw null; + public static System.DateTime LastMonday(this System.DateTime from) => throw null; + public static System.DateTime RoundToMs(this System.DateTime dateTime) => throw null; + public static System.DateTime RoundToSecond(this System.DateTime dateTime) => throw null; + public static System.DateTime StartOfLastMonth(this System.DateTime from) => throw null; + public static string ToShortestXsdDateTimeString(this System.DateTime dateTime) => throw null; + public static System.DateTime ToStableUniversalTime(this System.DateTime dateTime) => throw null; + public static string ToTimeOffsetString(this System.TimeSpan offset, string seperator = default(string)) => throw null; + public static System.Int64 ToUnixTime(this System.DateOnly dateOnly) => throw null; + public static System.Int64 ToUnixTime(this System.DateTime dateTime) => throw null; + public static System.Int64 ToUnixTimeMs(this System.DateOnly dateOnly) => throw null; + public static System.Int64 ToUnixTimeMs(this System.DateTime dateTime) => throw null; + public static System.Int64 ToUnixTimeMs(this System.DateTimeOffset dateTimeOffset) => throw null; + public static System.Int64 ToUnixTimeMs(this System.Int64 ticks) => throw null; + public static System.Int64 ToUnixTimeMsAlt(this System.DateTime dateTime) => throw null; + public static System.DateTime Truncate(this System.DateTime dateTime, System.TimeSpan timeSpan) => throw null; + public const System.Int64 UnixEpoch = default; + } + + // Generated from `ServiceStack.Text.DefaultMemory` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultMemory : ServiceStack.Text.MemoryProvider + { + public override System.Text.StringBuilder Append(System.Text.StringBuilder sb, System.ReadOnlySpan value) => throw null; + public static void Configure() => throw null; + public override object Deserialize(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer) => throw null; + public override System.Threading.Tasks.Task DeserializeAsync(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer) => throw null; + public override System.ReadOnlyMemory FromUtf8(System.ReadOnlySpan source) => throw null; + public override int FromUtf8(System.ReadOnlySpan source, System.Span destination) => throw null; + public override string FromUtf8Bytes(System.ReadOnlySpan source) => throw null; + public override int GetUtf8ByteCount(System.ReadOnlySpan chars) => throw null; + public override int GetUtf8CharCount(System.ReadOnlySpan bytes) => throw null; + public override System.Byte[] ParseBase64(System.ReadOnlySpan value) => throw null; + public override bool ParseBoolean(System.ReadOnlySpan value) => throw null; + public override System.Byte ParseByte(System.ReadOnlySpan value) => throw null; + public override System.Decimal ParseDecimal(System.ReadOnlySpan value) => throw null; + public override System.Decimal ParseDecimal(System.ReadOnlySpan value, bool allowThousands) => throw null; + public override double ParseDouble(System.ReadOnlySpan value) => throw null; + public override float ParseFloat(System.ReadOnlySpan value) => throw null; + public override System.Guid ParseGuid(System.ReadOnlySpan value) => throw null; + public override System.Int16 ParseInt16(System.ReadOnlySpan value) => throw null; + public override int ParseInt32(System.ReadOnlySpan value) => throw null; + public override System.Int64 ParseInt64(System.ReadOnlySpan value) => throw null; + public override System.SByte ParseSByte(System.ReadOnlySpan value) => throw null; + public override System.UInt16 ParseUInt16(System.ReadOnlySpan value) => throw null; + public override System.UInt32 ParseUInt32(System.ReadOnlySpan value) => throw null; + public override System.UInt32 ParseUInt32(System.ReadOnlySpan value, System.Globalization.NumberStyles style) => throw null; + public override System.UInt64 ParseUInt64(System.ReadOnlySpan value) => throw null; + public static ServiceStack.Text.DefaultMemory Provider { get => throw null; } + public override string ToBase64(System.ReadOnlyMemory value) => throw null; + public override System.IO.MemoryStream ToMemoryStream(System.ReadOnlySpan source) => throw null; + public override System.ReadOnlyMemory ToUtf8(System.ReadOnlySpan source) => throw null; + public override int ToUtf8(System.ReadOnlySpan source, System.Span destination) => throw null; + public override System.Byte[] ToUtf8Bytes(System.ReadOnlySpan source) => throw null; + public override bool TryParseBoolean(System.ReadOnlySpan value, out bool result) => throw null; + public static bool TryParseDecimal(System.ReadOnlySpan value, bool allowThousands, out System.Decimal result) => throw null; + public override bool TryParseDecimal(System.ReadOnlySpan value, out System.Decimal result) => throw null; + public override bool TryParseDouble(System.ReadOnlySpan value, out double result) => throw null; + public override bool TryParseFloat(System.ReadOnlySpan value, out float result) => throw null; + public override void Write(System.IO.Stream stream, System.ReadOnlyMemory value) => throw null; + public override void Write(System.IO.Stream stream, System.ReadOnlyMemory value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlySpan value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Text.DirectStreamWriter` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DirectStreamWriter : System.IO.TextWriter + { + public DirectStreamWriter(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; + public override System.Text.Encoding Encoding { get => throw null; } + public override void Flush() => throw null; + public override void Write(System.Char c) => throw null; + public override void Write(string s) => throw null; + } + + // Generated from `ServiceStack.Text.DynamicProxy` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DynamicProxy + { + public static void BindProperty(System.Reflection.Emit.TypeBuilder typeBuilder, System.Reflection.MethodInfo methodInfo) => throw null; + public static object GetInstanceFor(System.Type targetType) => throw null; + public static T GetInstanceFor() => throw null; + } + + // Generated from `ServiceStack.Text.EmitReflectionOptimizer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmitReflectionOptimizer : ServiceStack.Text.ReflectionOptimizer + { + public override ServiceStack.EmptyCtorDelegate CreateConstructor(System.Type type) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.SetMemberRefDelegate CreateSetterRef(System.Reflection.FieldInfo fieldInfo) => throw null; + public override bool IsDynamic(System.Reflection.Assembly assembly) => throw null; + public static ServiceStack.Text.EmitReflectionOptimizer Provider { get => throw null; } + public override System.Type UseType(System.Type type) => throw null; + } + + // Generated from `ServiceStack.Text.EnumInfo` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EnumInfo + { + public static ServiceStack.Text.EnumInfo GetEnumInfo(System.Type type) => throw null; + public object GetSerializedValue(object enumValue) => throw null; + public object Parse(string serializedValue) => throw null; + } + + // Generated from `ServiceStack.Text.Env` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Env + { + public static System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigAwait(this System.Threading.Tasks.Task task) => throw null; + public static System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable ConfigAwait(this System.Threading.Tasks.ValueTask task) => throw null; + public static System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigAwait(this System.Threading.Tasks.Task task) => throw null; + public static System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable ConfigAwait(this System.Threading.Tasks.ValueTask task) => throw null; + public const bool ContinueOnCapturedContext = default; + public static System.DateTime GetReleaseDate() => throw null; + public static bool HasMultiplePlatformTargets { get => throw null; set => throw null; } + public static bool IsAndroid { get => throw null; set => throw null; } + public static bool IsIOS { get => throw null; set => throw null; } + public static bool IsLinux { get => throw null; set => throw null; } + public static bool IsMono { get => throw null; set => throw null; } + public static bool IsNet6 { get => throw null; set => throw null; } + public static bool IsNetCore { get => throw null; set => throw null; } + public static bool IsNetCore21 { get => throw null; set => throw null; } + public static bool IsNetCore3 { get => throw null; set => throw null; } + public static bool IsNetFramework { get => throw null; set => throw null; } + public static bool IsNetNative { get => throw null; set => throw null; } + public static bool IsNetStandard { get => throw null; set => throw null; } + public static bool IsNetStandard20 { get => throw null; set => throw null; } + public static bool IsOSX { get => throw null; set => throw null; } + public static bool IsUWP { get => throw null; set => throw null; } + public static bool IsUnix { get => throw null; set => throw null; } + public static bool IsWindows { get => throw null; set => throw null; } + public static string ReferenceAssemblyPath { get => throw null; set => throw null; } + public static string ServerUserAgent { get => throw null; set => throw null; } + public static System.Decimal ServiceStackVersion; + public static bool StrictMode { get => throw null; set => throw null; } + public static bool SupportsDynamic { get => throw null; set => throw null; } + public static bool SupportsEmit { get => throw null; set => throw null; } + public static bool SupportsExpressions { get => throw null; set => throw null; } + public static string VersionString { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Text.ExpressionReflectionOptimizer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ExpressionReflectionOptimizer : ServiceStack.Text.ReflectionOptimizer + { + public override ServiceStack.EmptyCtorDelegate CreateConstructor(System.Type type) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.SetMemberRefDelegate CreateSetterRef(System.Reflection.FieldInfo fieldInfo) => throw null; + public static System.Linq.Expressions.Expression GetExpressionLambda(System.Reflection.PropertyInfo propertyInfo) => throw null; + public static System.Linq.Expressions.Expression> GetExpressionLambda(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override bool IsDynamic(System.Reflection.Assembly assembly) => throw null; + public static ServiceStack.Text.ExpressionReflectionOptimizer Provider { get => throw null; } + public static System.Linq.Expressions.Expression> SetExpressionLambda(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override System.Type UseType(System.Type type) => throw null; + } + + // Generated from `ServiceStack.Text.HttpStatus` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpStatus + { + public static string GetStatusDescription(int statusCode) => throw null; + } + + // Generated from `ServiceStack.Text.IRuntimeSerializable` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRuntimeSerializable + { + } + + // Generated from `ServiceStack.Text.IStringSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IStringSerializer + { + object DeserializeFromString(string serializedText, System.Type type); + To DeserializeFromString(string serializedText); + string SerializeToString(TFrom from); + } + + // Generated from `ServiceStack.Text.ITracer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITracer + { + void WriteDebug(string error); + void WriteDebug(string format, params object[] args); + void WriteError(System.Exception ex); + void WriteError(string error); + void WriteError(string format, params object[] args); + void WriteWarning(string warning); + void WriteWarning(string format, params object[] args); + } + + // Generated from `ServiceStack.Text.ITypeSerializer<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypeSerializer + { + bool CanCreateFromString(System.Type type); + T DeserializeFromReader(System.IO.TextReader reader); + T DeserializeFromString(string value); + string SerializeToString(T value); + void SerializeToWriter(T value, System.IO.TextWriter writer); + } + + // Generated from `ServiceStack.Text.IValueWriter` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValueWriter + { + void WriteTo(ServiceStack.Text.Common.ITypeSerializer serializer, System.IO.TextWriter writer); + } + + // Generated from `ServiceStack.Text.JsConfig` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsConfig + { + public static System.Func AllowRuntimeType { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet AllowRuntimeTypeInTypes { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet AllowRuntimeTypeInTypesWithNamespaces { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet AllowRuntimeTypeWithAttributesNamed { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet AllowRuntimeTypeWithInterfacesNamed { get => throw null; set => throw null; } + public static bool AlwaysUseUtc { get => throw null; set => throw null; } + public static bool AppendUtcOffset { get => throw null; set => throw null; } + public static bool AssumeUtc { get => throw null; set => throw null; } + public static ServiceStack.Text.JsConfigScope BeginScope() => throw null; + public static bool ConvertObjectTypesIntoStringDictionary { get => throw null; set => throw null; } + public static ServiceStack.Text.JsConfigScope CreateScope(string config, ServiceStack.Text.JsConfigScope scope = default(ServiceStack.Text.JsConfigScope)) => throw null; + public static ServiceStack.Text.DateHandler DateHandler { get => throw null; set => throw null; } + public static string DateTimeFormat { get => throw null; set => throw null; } + public static bool EmitCamelCaseNames { get => throw null; set => throw null; } + public static bool EmitLowercaseUnderscoreNames { get => throw null; set => throw null; } + public static bool EscapeHtmlChars { get => throw null; set => throw null; } + public static bool EscapeUnicode { get => throw null; set => throw null; } + public static bool ExcludeDefaultValues { get => throw null; set => throw null; } + public static string[] ExcludePropertyReferences { get => throw null; set => throw null; } + public static bool ExcludeTypeInfo { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet ExcludeTypeNames { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet ExcludeTypes { get => throw null; set => throw null; } + public static ServiceStack.Text.Config GetConfig() => throw null; + public static bool HasInit { get => throw null; } + public static string[] IgnoreAttributesNamed { get => throw null; set => throw null; } + public static bool IncludeDefaultEnums { get => throw null; set => throw null; } + public static bool IncludeNullValues { get => throw null; set => throw null; } + public static bool IncludeNullValuesInDictionaries { get => throw null; set => throw null; } + public static bool IncludePublicFields { get => throw null; set => throw null; } + public static bool IncludeTypeInfo { get => throw null; set => throw null; } + public static bool Indent { get => throw null; set => throw null; } + public static void Init() => throw null; + public static void Init(ServiceStack.Text.Config config) => throw null; + public static void InitStatics() => throw null; + public static int MaxDepth { get => throw null; set => throw null; } + public static ServiceStack.EmptyCtorFactoryDelegate ModelFactory { get => throw null; set => throw null; } + public static ServiceStack.Text.Common.DeserializationErrorDelegate OnDeserializationError { get => throw null; set => throw null; } + public static ServiceStack.Text.ParseAsType ParsePrimitiveFloatingPointTypes { get => throw null; set => throw null; } + public static System.Func ParsePrimitiveFn { get => throw null; set => throw null; } + public static ServiceStack.Text.ParseAsType ParsePrimitiveIntegerTypes { get => throw null; set => throw null; } + public static bool PreferInterfaces { get => throw null; set => throw null; } + public static ServiceStack.Text.PropertyConvention PropertyConvention { get => throw null; set => throw null; } + public static void Reset() => throw null; + public static bool SkipDateTimeConversion { get => throw null; set => throw null; } + public static ServiceStack.Text.TextCase TextCase { get => throw null; set => throw null; } + public static bool ThrowOnDeserializationError { get => throw null; set => throw null; } + public static bool ThrowOnError { get => throw null; set => throw null; } + public static ServiceStack.Text.TimeSpanHandler TimeSpanHandler { get => throw null; set => throw null; } + public static bool TreatEnumAsInteger { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet TreatValueAsRefTypes; + public static bool TryParseIntoBestFit { get => throw null; set => throw null; } + public static bool TryToParseNumericType { get => throw null; set => throw null; } + public static bool TryToParsePrimitiveTypeValues { get => throw null; set => throw null; } + public static string TypeAttr { get => throw null; set => throw null; } + public static System.Func TypeFinder { get => throw null; set => throw null; } + public static System.Func TypeWriter { get => throw null; set => throw null; } + public static System.Text.UTF8Encoding UTF8Encoding { get => throw null; set => throw null; } + public static ServiceStack.Text.JsConfigScope With(ServiceStack.Text.Config config) => throw null; + public static ServiceStack.Text.JsConfigScope With(bool? convertObjectTypesIntoStringDictionary = default(bool?), bool? tryToParsePrimitiveTypeValues = default(bool?), bool? tryToParseNumericType = default(bool?), ServiceStack.Text.ParseAsType? parsePrimitiveFloatingPointTypes = default(ServiceStack.Text.ParseAsType?), ServiceStack.Text.ParseAsType? parsePrimitiveIntegerTypes = default(ServiceStack.Text.ParseAsType?), bool? excludeDefaultValues = default(bool?), bool? includeNullValues = default(bool?), bool? includeNullValuesInDictionaries = default(bool?), bool? includeDefaultEnums = default(bool?), bool? excludeTypeInfo = default(bool?), bool? includeTypeInfo = default(bool?), bool? emitCamelCaseNames = default(bool?), bool? emitLowercaseUnderscoreNames = default(bool?), ServiceStack.Text.DateHandler? dateHandler = default(ServiceStack.Text.DateHandler?), ServiceStack.Text.TimeSpanHandler? timeSpanHandler = default(ServiceStack.Text.TimeSpanHandler?), ServiceStack.Text.PropertyConvention? propertyConvention = default(ServiceStack.Text.PropertyConvention?), bool? preferInterfaces = default(bool?), bool? throwOnDeserializationError = default(bool?), string typeAttr = default(string), string dateTimeFormat = default(string), System.Func typeWriter = default(System.Func), System.Func typeFinder = default(System.Func), bool? treatEnumAsInteger = default(bool?), bool? skipDateTimeConversion = default(bool?), bool? alwaysUseUtc = default(bool?), bool? assumeUtc = default(bool?), bool? appendUtcOffset = default(bool?), bool? escapeUnicode = default(bool?), bool? includePublicFields = default(bool?), int? maxDepth = default(int?), ServiceStack.EmptyCtorFactoryDelegate modelFactory = default(ServiceStack.EmptyCtorFactoryDelegate), string[] excludePropertyReferences = default(string[]), bool? useSystemParseMethods = default(bool?)) => throw null; + } + + // Generated from `ServiceStack.Text.JsConfig<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsConfig + { + public static System.Func DeSerializeFn { get => throw null; set => throw null; } + public static bool? EmitCamelCaseNames { get => throw null; set => throw null; } + public static bool? EmitLowercaseUnderscoreNames { get => throw null; set => throw null; } + public static string[] ExcludePropertyNames; + public static bool? ExcludeTypeInfo; + public static bool HasDeserializeFn { get => throw null; } + public static bool HasDeserializingFn { get => throw null; } + public static bool HasSerializeFn { get => throw null; } + public static bool IncludeDefaultValue { get => throw null; set => throw null; } + public static bool? IncludeTypeInfo; + public JsConfig() => throw null; + public static System.Func OnDeserializedFn { get => throw null; set => throw null; } + public static System.Func OnDeserializingFn { get => throw null; set => throw null; } + public static System.Action OnSerializedFn { get => throw null; set => throw null; } + public static System.Func OnSerializingFn { get => throw null; set => throw null; } + public static object ParseFn(string str) => throw null; + public static System.Func RawDeserializeFn { get => throw null; set => throw null; } + public static System.Func RawSerializeFn { get => throw null; set => throw null; } + public static void RefreshRead() => throw null; + public static void RefreshWrite() => throw null; + public static void Reset() => throw null; + public static System.Func SerializeFn { get => throw null; set => throw null; } + public static ServiceStack.Text.TextCase TextCase { get => throw null; set => throw null; } + public static bool TreatValueAsRefType { get => throw null; set => throw null; } + public static void WriteFn(System.IO.TextWriter writer, object obj) => throw null; + } + + // Generated from `ServiceStack.Text.JsConfigScope` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsConfigScope : ServiceStack.Text.Config, System.IDisposable + { + public void Dispose() => throw null; + } + + // Generated from `ServiceStack.Text.JsonArrayObjects` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonArrayObjects : System.Collections.Generic.List + { + public JsonArrayObjects() => throw null; + public static ServiceStack.Text.JsonArrayObjects Parse(string json) => throw null; + } + + // Generated from `ServiceStack.Text.JsonExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsonExtensions + { + public static ServiceStack.Text.JsonArrayObjects ArrayObjects(this string json) => throw null; + public static System.Collections.Generic.List ConvertAll(this ServiceStack.Text.JsonArrayObjects jsonArrayObjects, System.Func converter) => throw null; + public static T ConvertTo(this ServiceStack.Text.JsonObject jsonObject, System.Func convertFn) => throw null; + public static string Get(this System.Collections.Generic.Dictionary map, string key) => throw null; + public static T Get(this System.Collections.Generic.Dictionary map, string key, T defaultValue = default(T)) => throw null; + public static T[] GetArray(this System.Collections.Generic.Dictionary map, string key) => throw null; + public static T JsonTo(this System.Collections.Generic.Dictionary map, string key) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this ServiceStack.Text.JsonObject jsonObject) => throw null; + } + + // Generated from `ServiceStack.Text.JsonObject` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonObject : System.Collections.Generic.Dictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + public ServiceStack.Text.JsonArrayObjects ArrayObjects(string propertyName) => throw null; + public string Child(string key) => throw null; + public object ConvertTo(System.Type type) => throw null; + public T ConvertTo() => throw null; + public System.Collections.Generic.Dictionary.Enumerator GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; + public string GetUnescaped(string key) => throw null; + public string this[string key] { get => throw null; set => throw null; } + public JsonObject() => throw null; + public ServiceStack.Text.JsonObject Object(string propertyName) => throw null; + public static ServiceStack.Text.JsonObject Parse(string json) => throw null; + public static ServiceStack.Text.JsonArrayObjects ParseArray(string json) => throw null; + public System.Collections.Generic.Dictionary ToUnescapedDictionary() => throw null; + public static void WriteValue(System.IO.TextWriter writer, object value) => throw null; + } + + // Generated from `ServiceStack.Text.JsonSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsonSerializer + { + public static int BufferSize; + public static object DeserializeFromReader(System.IO.TextReader reader, System.Type type) => throw null; + public static T DeserializeFromReader(System.IO.TextReader reader) => throw null; + public static object DeserializeFromSpan(System.Type type, System.ReadOnlySpan value) => throw null; + public static T DeserializeFromSpan(System.ReadOnlySpan value) => throw null; + public static object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public static T DeserializeFromStream(System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task DeserializeFromStreamAsync(System.Type type, System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task DeserializeFromStreamAsync(System.IO.Stream stream) => throw null; + public static object DeserializeFromString(string value, System.Type type) => throw null; + public static T DeserializeFromString(string value) => throw null; + public static object DeserializeRequest(System.Type type, System.Net.WebRequest webRequest) => throw null; + public static T DeserializeRequest(System.Net.WebRequest webRequest) => throw null; + public static object DeserializeResponse(System.Type type, System.Net.WebResponse webResponse) => throw null; + public static object DeserializeResponse(System.Type type, System.Net.WebRequest webRequest) => throw null; + public static T DeserializeResponse(System.Net.WebRequest webRequest) => throw null; + public static T DeserializeResponse(System.Net.WebResponse webResponse) => throw null; + public static System.Action OnSerialize { get => throw null; set => throw null; } + public static void SerializeToStream(object value, System.Type type, System.IO.Stream stream) => throw null; + public static void SerializeToStream(T value, System.IO.Stream stream) => throw null; + public static string SerializeToString(object value, System.Type type) => throw null; + public static string SerializeToString(T value) => throw null; + public static void SerializeToWriter(object value, System.Type type, System.IO.TextWriter writer) => throw null; + public static void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; + public static System.Text.UTF8Encoding UTF8Encoding { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Text.JsonSerializer<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonSerializer : ServiceStack.Text.ITypeSerializer + { + public bool CanCreateFromString(System.Type type) => throw null; + public T DeserializeFromReader(System.IO.TextReader reader) => throw null; + public T DeserializeFromString(string value) => throw null; + public JsonSerializer() => throw null; + public string SerializeToString(T value) => throw null; + public void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; + } + + // Generated from `ServiceStack.Text.JsonStringSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonStringSerializer : ServiceStack.Text.IStringSerializer + { + public object DeserializeFromString(string serializedText, System.Type type) => throw null; + public To DeserializeFromString(string serializedText) => throw null; + public JsonStringSerializer() => throw null; + public string SerializeToString(TFrom from) => throw null; + } + + // Generated from `ServiceStack.Text.JsonValue` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct JsonValue : ServiceStack.Text.IValueWriter + { + public T As() => throw null; + // Stub generator skipped constructor + public JsonValue(string json) => throw null; + public override string ToString() => throw null; + public void WriteTo(ServiceStack.Text.Common.ITypeSerializer serializer, System.IO.TextWriter writer) => throw null; + } + + // Generated from `ServiceStack.Text.JsvFormatter` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsvFormatter + { + public static string Format(string serializedText) => throw null; + } + + // Generated from `ServiceStack.Text.JsvStringSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsvStringSerializer : ServiceStack.Text.IStringSerializer + { + public object DeserializeFromString(string serializedText, System.Type type) => throw null; + public To DeserializeFromString(string serializedText) => throw null; + public JsvStringSerializer() => throw null; + public string SerializeToString(TFrom from) => throw null; + } + + // Generated from `ServiceStack.Text.MemoryProvider` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class MemoryProvider + { + public abstract System.Text.StringBuilder Append(System.Text.StringBuilder sb, System.ReadOnlySpan value); + public abstract object Deserialize(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer); + public abstract System.Threading.Tasks.Task DeserializeAsync(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer); + public abstract System.ReadOnlyMemory FromUtf8(System.ReadOnlySpan source); + public abstract int FromUtf8(System.ReadOnlySpan source, System.Span destination); + public abstract string FromUtf8Bytes(System.ReadOnlySpan source); + public abstract int GetUtf8ByteCount(System.ReadOnlySpan chars); + public abstract int GetUtf8CharCount(System.ReadOnlySpan bytes); + public static ServiceStack.Text.MemoryProvider Instance; + protected MemoryProvider() => throw null; + public abstract System.Byte[] ParseBase64(System.ReadOnlySpan value); + public abstract bool ParseBoolean(System.ReadOnlySpan value); + public abstract System.Byte ParseByte(System.ReadOnlySpan value); + public abstract System.Decimal ParseDecimal(System.ReadOnlySpan value); + public abstract System.Decimal ParseDecimal(System.ReadOnlySpan value, bool allowThousands); + public abstract double ParseDouble(System.ReadOnlySpan value); + public abstract float ParseFloat(System.ReadOnlySpan value); + public abstract System.Guid ParseGuid(System.ReadOnlySpan value); + public abstract System.Int16 ParseInt16(System.ReadOnlySpan value); + public abstract int ParseInt32(System.ReadOnlySpan value); + public abstract System.Int64 ParseInt64(System.ReadOnlySpan value); + public abstract System.SByte ParseSByte(System.ReadOnlySpan value); + public abstract System.UInt16 ParseUInt16(System.ReadOnlySpan value); + public abstract System.UInt32 ParseUInt32(System.ReadOnlySpan value); + public abstract System.UInt32 ParseUInt32(System.ReadOnlySpan value, System.Globalization.NumberStyles style); + public abstract System.UInt64 ParseUInt64(System.ReadOnlySpan value); + public abstract string ToBase64(System.ReadOnlyMemory value); + public abstract System.IO.MemoryStream ToMemoryStream(System.ReadOnlySpan source); + public abstract System.ReadOnlyMemory ToUtf8(System.ReadOnlySpan source); + public abstract int ToUtf8(System.ReadOnlySpan source, System.Span destination); + public abstract System.Byte[] ToUtf8Bytes(System.ReadOnlySpan source); + public abstract bool TryParseBoolean(System.ReadOnlySpan value, out bool result); + public abstract bool TryParseDecimal(System.ReadOnlySpan value, out System.Decimal result); + public abstract bool TryParseDouble(System.ReadOnlySpan value, out double result); + public abstract bool TryParseFloat(System.ReadOnlySpan value, out float result); + public abstract void Write(System.IO.Stream stream, System.ReadOnlyMemory value); + public abstract void Write(System.IO.Stream stream, System.ReadOnlyMemory value); + public abstract System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + public abstract System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + public abstract System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlySpan value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Text.MemoryStreamFactory` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MemoryStreamFactory + { + public static System.IO.MemoryStream GetStream() => throw null; + public static System.IO.MemoryStream GetStream(System.Byte[] bytes) => throw null; + public static System.IO.MemoryStream GetStream(System.Byte[] bytes, int index, int count) => throw null; + public static System.IO.MemoryStream GetStream(int capacity) => throw null; + public static ServiceStack.Text.RecyclableMemoryStreamManager RecyclableInstance; + public static bool UseRecyclableMemoryStream { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Text.MurmurHash2` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MurmurHash2 + { + public static System.UInt32 Hash(System.Byte[] data) => throw null; + public static System.UInt32 Hash(System.Byte[] data, System.UInt32 seed) => throw null; + public static System.UInt32 Hash(string data) => throw null; + public MurmurHash2() => throw null; + } + + // Generated from `ServiceStack.Text.NetCoreMemory` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreMemory : ServiceStack.Text.MemoryProvider + { + public override System.Text.StringBuilder Append(System.Text.StringBuilder sb, System.ReadOnlySpan value) => throw null; + public static void Configure() => throw null; + public override object Deserialize(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer) => throw null; + public override System.Threading.Tasks.Task DeserializeAsync(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer) => throw null; + public override System.ReadOnlyMemory FromUtf8(System.ReadOnlySpan source) => throw null; + public override int FromUtf8(System.ReadOnlySpan source, System.Span destination) => throw null; + public override string FromUtf8Bytes(System.ReadOnlySpan source) => throw null; + public override int GetUtf8ByteCount(System.ReadOnlySpan chars) => throw null; + public override int GetUtf8CharCount(System.ReadOnlySpan bytes) => throw null; + public override System.Byte[] ParseBase64(System.ReadOnlySpan value) => throw null; + public override bool ParseBoolean(System.ReadOnlySpan value) => throw null; + public override System.Byte ParseByte(System.ReadOnlySpan value) => throw null; + public override System.Decimal ParseDecimal(System.ReadOnlySpan value) => throw null; + public override System.Decimal ParseDecimal(System.ReadOnlySpan value, bool allowThousands) => throw null; + public override double ParseDouble(System.ReadOnlySpan value) => throw null; + public override float ParseFloat(System.ReadOnlySpan value) => throw null; + public override System.Guid ParseGuid(System.ReadOnlySpan value) => throw null; + public override System.Int16 ParseInt16(System.ReadOnlySpan value) => throw null; + public override int ParseInt32(System.ReadOnlySpan value) => throw null; + public override System.Int64 ParseInt64(System.ReadOnlySpan value) => throw null; + public override System.SByte ParseSByte(System.ReadOnlySpan value) => throw null; + public override System.UInt16 ParseUInt16(System.ReadOnlySpan value) => throw null; + public override System.UInt32 ParseUInt32(System.ReadOnlySpan value) => throw null; + public override System.UInt32 ParseUInt32(System.ReadOnlySpan value, System.Globalization.NumberStyles style) => throw null; + public override System.UInt64 ParseUInt64(System.ReadOnlySpan value) => throw null; + public static ServiceStack.Text.NetCoreMemory Provider { get => throw null; } + public override string ToBase64(System.ReadOnlyMemory value) => throw null; + public override System.IO.MemoryStream ToMemoryStream(System.ReadOnlySpan source) => throw null; + public override System.ReadOnlyMemory ToUtf8(System.ReadOnlySpan source) => throw null; + public override int ToUtf8(System.ReadOnlySpan source, System.Span destination) => throw null; + public override System.Byte[] ToUtf8Bytes(System.ReadOnlySpan source) => throw null; + public override bool TryParseBoolean(System.ReadOnlySpan value, out bool result) => throw null; + public override bool TryParseDecimal(System.ReadOnlySpan value, out System.Decimal result) => throw null; + public override bool TryParseDouble(System.ReadOnlySpan value, out double result) => throw null; + public override bool TryParseFloat(System.ReadOnlySpan value, out float result) => throw null; + public override void Write(System.IO.Stream stream, System.ReadOnlyMemory value) => throw null; + public override void Write(System.IO.Stream stream, System.ReadOnlyMemory value) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlySpan value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Text.ParseAsType` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum ParseAsType + { + Bool, + Byte, + Decimal, + Double, + Int16, + Int32, + Int64, + None, + SByte, + Single, + UInt16, + UInt32, + UInt64, + } + + // Generated from `ServiceStack.Text.PropertyConvention` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum PropertyConvention + { + Lenient, + Strict, + } + + // Generated from `ServiceStack.Text.RecyclableMemoryStream` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RecyclableMemoryStream : System.IO.MemoryStream + { + 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 override int Capacity { get => throw null; set => throw null; } + public override void Close() => throw null; + protected override void Dispose(bool disposing) => throw null; + public override System.Byte[] GetBuffer() => 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 int ReadByte() => throw null; + public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager) => throw null; + public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, System.Guid id) => throw null; + public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, System.Guid id, string tag) => throw null; + public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, System.Guid id, string tag, int requestedSize) => throw null; + public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, string tag) => throw null; + public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, string tag, int requestedSize) => throw null; + public int SafeRead(System.Byte[] buffer, int offset, int count, ref int streamPosition) => throw null; + public int SafeRead(System.Span buffer, ref int streamPosition) => throw null; + public int SafeReadByte(ref int streamPosition) => 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 override System.Byte[] ToArray() => throw null; + public override string ToString() => throw null; + public override 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 source) => throw null; + public override void WriteByte(System.Byte value) => throw null; + public override void WriteTo(System.IO.Stream stream) => throw null; + public void WriteTo(System.IO.Stream stream, int offset, int count) => throw null; + // ERR: Stub generator didn't handle member: ~RecyclableMemoryStream + } + + // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RecyclableMemoryStreamManager + { + // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+EventHandler` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void EventHandler(); + + + // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+Events` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Events : System.Diagnostics.Tracing.EventSource + { + // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+Events+MemoryStreamBufferType` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum MemoryStreamBufferType + { + Large, + Small, + } + + + // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+Events+MemoryStreamDiscardReason` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum MemoryStreamDiscardReason + { + EnoughFree, + TooLarge, + } + + + public Events() => throw null; + public void MemoryStreamCreated(System.Guid guid, string tag, int requestedSize) => throw null; + public void MemoryStreamDiscardBuffer(ServiceStack.Text.RecyclableMemoryStreamManager.Events.MemoryStreamBufferType bufferType, string tag, ServiceStack.Text.RecyclableMemoryStreamManager.Events.MemoryStreamDiscardReason reason) => throw null; + public void MemoryStreamDisposed(System.Guid guid, string tag) => throw null; + public void MemoryStreamDoubleDispose(System.Guid guid, string tag, string allocationStack, string disposeStack1, string disposeStack2) => throw null; + public void MemoryStreamFinalized(System.Guid guid, string tag, string allocationStack) => throw null; + public void MemoryStreamManagerInitialized(int blockSize, int largeBufferMultiple, int maximumBufferSize) => throw null; + public void MemoryStreamNewBlockCreated(System.Int64 smallPoolInUseBytes) => throw null; + public void MemoryStreamNewLargeBufferCreated(int requiredSize, System.Int64 largePoolInUseBytes) => throw null; + public void MemoryStreamNonPooledLargeBufferCreated(int requiredSize, string tag, string allocationStack) => throw null; + public void MemoryStreamOverCapacity(int requestedCapacity, System.Int64 maxCapacity, string tag, string allocationStack) => throw null; + public void MemoryStreamToArray(System.Guid guid, string tag, string stack, int size) => throw null; + public static ServiceStack.Text.RecyclableMemoryStreamManager.Events Writer; + } + + + // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+LargeBufferDiscardedEventHandler` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void LargeBufferDiscardedEventHandler(ServiceStack.Text.RecyclableMemoryStreamManager.Events.MemoryStreamDiscardReason reason); + + + // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+StreamLengthReportHandler` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void StreamLengthReportHandler(System.Int64 bytes); + + + // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+UsageReportEventHandler` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void UsageReportEventHandler(System.Int64 smallPoolInUseBytes, System.Int64 smallPoolFreeBytes, System.Int64 largePoolInUseBytes, System.Int64 largePoolFreeBytes); + + + public bool AggressiveBufferReturn { get => throw null; set => throw null; } + public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler BlockCreated; + public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler BlockDiscarded; + public int BlockSize { get => throw null; } + public const int DefaultBlockSize = default; + public const int DefaultLargeBufferMultiple = default; + public const int DefaultMaximumBufferSize = default; + public bool GenerateCallStacks { get => throw null; set => throw null; } + public System.IO.MemoryStream GetStream() => throw null; + public System.IO.MemoryStream GetStream(System.Byte[] buffer) => throw null; + public System.IO.MemoryStream GetStream(System.Guid id) => throw null; + public System.IO.MemoryStream GetStream(System.Guid id, string tag) => throw null; + public System.IO.MemoryStream GetStream(System.Guid id, string tag, System.Byte[] buffer, int offset, int count) => throw null; + public System.IO.MemoryStream GetStream(System.Guid id, string tag, System.Memory buffer) => throw null; + public System.IO.MemoryStream GetStream(System.Guid id, string tag, int requiredSize) => throw null; + public System.IO.MemoryStream GetStream(System.Guid id, string tag, int requiredSize, bool asContiguousBuffer) => throw null; + public System.IO.MemoryStream GetStream(System.Memory buffer) => throw null; + public System.IO.MemoryStream GetStream(string tag) => throw null; + public System.IO.MemoryStream GetStream(string tag, System.Byte[] buffer, int offset, int count) => throw null; + public System.IO.MemoryStream GetStream(string tag, System.Memory buffer) => throw null; + public System.IO.MemoryStream GetStream(string tag, int requiredSize) => throw null; + public System.IO.MemoryStream GetStream(string tag, int requiredSize, bool asContiguousBuffer) => throw null; + public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler LargeBufferCreated; + public event ServiceStack.Text.RecyclableMemoryStreamManager.LargeBufferDiscardedEventHandler LargeBufferDiscarded; + public int LargeBufferMultiple { get => throw null; } + public System.Int64 LargeBuffersFree { get => throw null; } + public System.Int64 LargePoolFreeSize { get => throw null; } + public System.Int64 LargePoolInUseSize { get => throw null; } + public int MaximumBufferSize { get => throw null; } + public System.Int64 MaximumFreeLargePoolBytes { get => throw null; set => throw null; } + public System.Int64 MaximumFreeSmallPoolBytes { get => throw null; set => throw null; } + public System.Int64 MaximumStreamCapacity { get => throw null; set => throw null; } + public RecyclableMemoryStreamManager() => throw null; + public RecyclableMemoryStreamManager(int blockSize, int largeBufferMultiple, int maximumBufferSize) => throw null; + public RecyclableMemoryStreamManager(int blockSize, int largeBufferMultiple, int maximumBufferSize, bool useExponentialLargeBuffer) => throw null; + public System.Int64 SmallBlocksFree { get => throw null; } + public System.Int64 SmallPoolFreeSize { get => throw null; } + public System.Int64 SmallPoolInUseSize { get => throw null; } + public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler StreamConvertedToArray; + public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler StreamCreated; + public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler StreamDisposed; + public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler StreamFinalized; + public event ServiceStack.Text.RecyclableMemoryStreamManager.StreamLengthReportHandler StreamLength; + public bool ThrowExceptionOnToArray { get => throw null; set => throw null; } + public event ServiceStack.Text.RecyclableMemoryStreamManager.UsageReportEventHandler UsageReport; + public bool UseExponentialLargeBuffer { get => throw null; } + public bool UseMultipleLargeBuffer { get => throw null; } + } + + // Generated from `ServiceStack.Text.ReflectionOptimizer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ReflectionOptimizer + { + public abstract ServiceStack.EmptyCtorDelegate CreateConstructor(System.Type type); + public abstract ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo); + public abstract ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo); + public abstract ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo); + public abstract ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo); + public abstract ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo); + public abstract ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo); + public abstract ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo); + public abstract ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo); + public abstract ServiceStack.SetMemberRefDelegate CreateSetterRef(System.Reflection.FieldInfo fieldInfo); + public static ServiceStack.Text.ReflectionOptimizer Instance; + public abstract bool IsDynamic(System.Reflection.Assembly assembly); + protected ReflectionOptimizer() => throw null; + public abstract System.Type UseType(System.Type type); + } + + // Generated from `ServiceStack.Text.RuntimeReflectionOptimizer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RuntimeReflectionOptimizer : ServiceStack.Text.ReflectionOptimizer + { + public override ServiceStack.EmptyCtorDelegate CreateConstructor(System.Type type) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; + public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; + public override ServiceStack.SetMemberRefDelegate CreateSetterRef(System.Reflection.FieldInfo fieldInfo) => throw null; + public override bool IsDynamic(System.Reflection.Assembly assembly) => throw null; + public static ServiceStack.Text.RuntimeReflectionOptimizer Provider { get => throw null; } + public override System.Type UseType(System.Type type) => throw null; + } + + // Generated from `ServiceStack.Text.RuntimeSerializableAttribute` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RuntimeSerializableAttribute : System.Attribute + { + public RuntimeSerializableAttribute() => throw null; + } + + // Generated from `ServiceStack.Text.StringBuilderCache` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StringBuilderCache + { + public static System.Text.StringBuilder Allocate() => throw null; + public static void Free(System.Text.StringBuilder sb) => throw null; + public static string ReturnAndFree(System.Text.StringBuilder sb) => throw null; + } + + // Generated from `ServiceStack.Text.StringBuilderCacheAlt` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StringBuilderCacheAlt + { + public static System.Text.StringBuilder Allocate() => throw null; + public static void Free(System.Text.StringBuilder sb) => throw null; + public static string ReturnAndFree(System.Text.StringBuilder sb) => throw null; + } + + // Generated from `ServiceStack.Text.StringSpanExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StringSpanExtensions + { + public static System.ReadOnlySpan Advance(this System.ReadOnlySpan text, int to) => throw null; + public static System.ReadOnlySpan AdvancePastChar(this System.ReadOnlySpan literal, System.Char delim) => throw null; + public static System.ReadOnlySpan AdvancePastWhitespace(this System.ReadOnlySpan literal) => throw null; + public static System.Text.StringBuilder Append(this System.Text.StringBuilder sb, System.ReadOnlySpan value) => throw null; + public static bool CompareIgnoreCase(this System.ReadOnlySpan value, System.ReadOnlySpan text) => throw null; + public static int CountOccurrencesOf(this System.ReadOnlySpan value, System.Char needle) => throw null; + public static bool EndsWith(this System.ReadOnlySpan value, string other) => throw null; + public static bool EndsWith(this System.ReadOnlySpan value, string other, System.StringComparison comparison) => throw null; + public static bool EndsWithIgnoreCase(this System.ReadOnlySpan value, System.ReadOnlySpan other) => throw null; + public static bool EqualTo(this System.ReadOnlySpan value, System.ReadOnlySpan other) => throw null; + public static bool EqualTo(this System.ReadOnlySpan value, string other) => throw null; + public static bool EqualsIgnoreCase(this System.ReadOnlySpan value, System.ReadOnlySpan other) => throw null; + public static bool EqualsOrdinal(this System.ReadOnlySpan value, string other) => throw null; + public static System.ReadOnlySpan FromCsvField(this System.ReadOnlySpan text) => throw null; + public static System.ReadOnlyMemory FromUtf8(this System.ReadOnlySpan value) => throw null; + public static string FromUtf8Bytes(this System.ReadOnlySpan value) => throw null; + public static System.Char GetChar(this System.ReadOnlySpan value, int index) => throw null; + public static System.ReadOnlySpan GetExtension(this System.ReadOnlySpan filePath) => throw null; + public static int IndexOf(this System.ReadOnlySpan value, string other) => throw null; + public static int IndexOf(this System.ReadOnlySpan value, string needle, int start) => throw null; + public static bool IsNullOrEmpty(this System.ReadOnlySpan value) => throw null; + public static bool IsNullOrWhiteSpace(this System.ReadOnlySpan value) => throw null; + public static int LastIndexOf(this System.ReadOnlySpan value, string other) => throw null; + public static int LastIndexOf(this System.ReadOnlySpan value, string needle, int start) => throw null; + public static System.ReadOnlySpan LastLeftPart(this System.ReadOnlySpan strVal, System.Char needle) => throw null; + public static System.ReadOnlySpan LastLeftPart(this System.ReadOnlySpan strVal, string needle) => throw null; + public static System.ReadOnlySpan LastRightPart(this System.ReadOnlySpan strVal, System.Char needle) => throw null; + public static System.ReadOnlySpan LastRightPart(this System.ReadOnlySpan strVal, string needle) => throw null; + public static System.ReadOnlySpan LeftPart(this System.ReadOnlySpan strVal, System.Char needle) => throw null; + public static System.ReadOnlySpan LeftPart(this System.ReadOnlySpan strVal, string needle) => throw null; + public static System.ReadOnlySpan ParentDirectory(this System.ReadOnlySpan filePath) => throw null; + public static System.Byte[] ParseBase64(this System.ReadOnlySpan value) => throw null; + public static bool ParseBoolean(this System.ReadOnlySpan value) => throw null; + public static System.Byte ParseByte(this System.ReadOnlySpan value) => throw null; + public static System.Decimal ParseDecimal(this System.ReadOnlySpan value) => throw null; + public static System.Decimal ParseDecimal(this System.ReadOnlySpan value, bool allowThousands) => throw null; + public static double ParseDouble(this System.ReadOnlySpan value) => throw null; + public static float ParseFloat(this System.ReadOnlySpan value) => throw null; + public static System.Guid ParseGuid(this System.ReadOnlySpan value) => throw null; + public static System.Int16 ParseInt16(this System.ReadOnlySpan value) => throw null; + public static int ParseInt32(this System.ReadOnlySpan value) => throw null; + public static System.Int64 ParseInt64(this System.ReadOnlySpan value) => throw null; + public static System.SByte ParseSByte(this System.ReadOnlySpan value) => throw null; + public static object ParseSignedInteger(this System.ReadOnlySpan value) => throw null; + public static System.UInt16 ParseUInt16(this System.ReadOnlySpan value) => throw null; + public static System.UInt32 ParseUInt32(this System.ReadOnlySpan value) => throw null; + public static System.UInt64 ParseUInt64(this System.ReadOnlySpan value) => throw null; + public static System.ReadOnlySpan RightPart(this System.ReadOnlySpan strVal, System.Char needle) => throw null; + public static System.ReadOnlySpan RightPart(this System.ReadOnlySpan strVal, string needle) => throw null; + public static System.ReadOnlySpan SafeSlice(this System.ReadOnlySpan value, int startIndex) => throw null; + public static System.ReadOnlySpan SafeSlice(this System.ReadOnlySpan value, int startIndex, int length) => throw null; + public static System.ReadOnlySpan SafeSubstring(this System.ReadOnlySpan value, int startIndex) => throw null; + public static System.ReadOnlySpan SafeSubstring(this System.ReadOnlySpan value, int startIndex, int length) => throw null; + public static void SplitOnFirst(this System.ReadOnlySpan strVal, System.Char needle, out System.ReadOnlySpan first, out System.ReadOnlySpan last) => throw null; + public static void SplitOnFirst(this System.ReadOnlySpan strVal, string needle, out System.ReadOnlySpan first, out System.ReadOnlySpan last) => throw null; + public static void SplitOnLast(this System.ReadOnlySpan strVal, System.Char needle, out System.ReadOnlySpan first, out System.ReadOnlySpan last) => throw null; + public static void SplitOnLast(this System.ReadOnlySpan strVal, string needle, out System.ReadOnlySpan first, out System.ReadOnlySpan last) => throw null; + public static bool StartsWith(this System.ReadOnlySpan value, string other) => throw null; + public static bool StartsWith(this System.ReadOnlySpan value, string other, System.StringComparison comparison) => throw null; + public static bool StartsWithIgnoreCase(this System.ReadOnlySpan value, System.ReadOnlySpan other) => throw null; + public static System.ReadOnlySpan Subsegment(this System.ReadOnlySpan text, int startPos) => throw null; + public static System.ReadOnlySpan Subsegment(this System.ReadOnlySpan text, int startPos, int length) => throw null; + public static string Substring(this System.ReadOnlySpan value, int pos) => throw null; + public static string Substring(this System.ReadOnlySpan value, int pos, int length) => throw null; + public static string SubstringWithEllipsis(this System.ReadOnlySpan value, int startIndex, int length) => throw null; + public static System.Collections.Generic.List ToStringList(this System.Collections.Generic.IEnumerable> from) => throw null; + public static System.ReadOnlyMemory ToUtf8(this System.ReadOnlySpan value) => throw null; + public static System.Byte[] ToUtf8Bytes(this System.ReadOnlySpan value) => throw null; + public static System.ReadOnlySpan TrimEnd(this System.ReadOnlySpan value, params System.Char[] trimChars) => throw null; + public static bool TryParseBoolean(this System.ReadOnlySpan value, out bool result) => throw null; + public static bool TryParseDecimal(this System.ReadOnlySpan value, out System.Decimal result) => throw null; + public static bool TryParseDouble(this System.ReadOnlySpan value, out double result) => throw null; + public static bool TryParseFloat(this System.ReadOnlySpan value, out float result) => throw null; + public static bool TryReadLine(this System.ReadOnlySpan text, out System.ReadOnlySpan line, ref int startIndex) => throw null; + public static bool TryReadPart(this System.ReadOnlySpan text, string needle, out System.ReadOnlySpan part, ref int startIndex) => throw null; + public static string Value(this System.ReadOnlySpan value) => throw null; + public static System.ReadOnlySpan WithoutBom(this System.ReadOnlySpan value) => throw null; + public static System.ReadOnlySpan WithoutBom(this System.ReadOnlySpan value) => throw null; + public static System.ReadOnlySpan WithoutExtension(this System.ReadOnlySpan filePath) => throw null; + public static System.Threading.Tasks.Task WriteAsync(this System.IO.Stream stream, System.ReadOnlySpan value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Text.StringTextExtensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StringTextExtensions + { + public static object To(this string value, System.Type type) => throw null; + public static T To(this string value) => throw null; + public static T To(this string value, T defaultValue) => throw null; + public static T ToOrDefaultValue(this string value) => throw null; + } + + // Generated from `ServiceStack.Text.StringWriterCache` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StringWriterCache + { + public static System.IO.StringWriter Allocate() => throw null; + public static void Free(System.IO.StringWriter writer) => throw null; + public static string ReturnAndFree(System.IO.StringWriter writer) => throw null; + } + + // Generated from `ServiceStack.Text.StringWriterCacheAlt` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StringWriterCacheAlt + { + public static System.IO.StringWriter Allocate() => throw null; + public static void Free(System.IO.StringWriter writer) => throw null; + public static string ReturnAndFree(System.IO.StringWriter writer) => throw null; + } + + // Generated from `ServiceStack.Text.SystemTime` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SystemTime + { + public static System.DateTime Now { get => throw null; } + public static System.Func UtcDateTimeResolver; + public static System.DateTime UtcNow { get => throw null; } + } + + // Generated from `ServiceStack.Text.TextCase` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum TextCase + { + CamelCase, + Default, + PascalCase, + SnakeCase, + } + + // Generated from `ServiceStack.Text.TimeSpanHandler` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum TimeSpanHandler + { + DurationFormat, + StandardFormat, + } + + // Generated from `ServiceStack.Text.Tracer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Tracer + { + // Generated from `ServiceStack.Text.Tracer+ConsoleTracer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConsoleTracer : ServiceStack.Text.ITracer + { + public ConsoleTracer() => throw null; + public void WriteDebug(string error) => throw null; + public void WriteDebug(string format, params object[] args) => throw null; + public void WriteError(System.Exception ex) => throw null; + public void WriteError(string error) => throw null; + public void WriteError(string format, params object[] args) => throw null; + public void WriteWarning(string warning) => throw null; + public void WriteWarning(string format, params object[] args) => throw null; + } + + + // Generated from `ServiceStack.Text.Tracer+NullTracer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NullTracer : ServiceStack.Text.ITracer + { + public NullTracer() => throw null; + public void WriteDebug(string error) => throw null; + public void WriteDebug(string format, params object[] args) => throw null; + public void WriteError(System.Exception ex) => throw null; + public void WriteError(string error) => throw null; + public void WriteError(string format, params object[] args) => throw null; + public void WriteWarning(string warning) => throw null; + public void WriteWarning(string format, params object[] args) => throw null; + } + + + public static ServiceStack.Text.ITracer Instance; + public Tracer() => throw null; + } + + // Generated from `ServiceStack.Text.TracerExceptions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TracerExceptions + { + public static T Trace(this T ex) where T : System.Exception => throw null; + } + + // Generated from `ServiceStack.Text.TranslateListWithConvertibleElements<,>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TranslateListWithConvertibleElements + { + public static object LateBoundTranslateToGenericICollection(object fromList, System.Type toInstanceOfType) => throw null; + public TranslateListWithConvertibleElements() => throw null; + public static System.Collections.Generic.ICollection TranslateToGenericICollection(System.Collections.Generic.ICollection fromList, System.Type toInstanceOfType) => throw null; + } + + // Generated from `ServiceStack.Text.TranslateListWithElements` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TranslateListWithElements + { + public static object TranslateToConvertibleGenericICollectionCache(object from, System.Type toInstanceOfType, System.Type fromElementType) => throw null; + public static object TranslateToGenericICollectionCache(object from, System.Type toInstanceOfType, System.Type elementType) => throw null; + public static object TryTranslateCollections(System.Type fromPropertyType, System.Type toPropertyType, object fromValue) => throw null; + } + + // Generated from `ServiceStack.Text.TranslateListWithElements<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TranslateListWithElements + { + public static object CreateInstance(System.Type toInstanceOfType) => throw null; + public static object LateBoundTranslateToGenericICollection(object fromList, System.Type toInstanceOfType) => throw null; + public TranslateListWithElements() => throw null; + public static System.Collections.Generic.ICollection TranslateToGenericICollection(System.Collections.IEnumerable fromList, System.Type toInstanceOfType) => throw null; + public static System.Collections.IList TranslateToIList(System.Collections.IList fromList, System.Type toInstanceOfType) => throw null; + } + + // Generated from `ServiceStack.Text.TypeConfig<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TypeConfig + { + public static bool EnableAnonymousFieldSetters { get => throw null; set => throw null; } + public static System.Reflection.FieldInfo[] Fields { get => throw null; set => throw null; } + public static bool IsUserType { get => throw null; set => throw null; } + public static System.Func OnDeserializing { get => throw null; set => throw null; } + public static System.Reflection.PropertyInfo[] Properties { get => throw null; set => throw null; } + public static void Reset() => throw null; + } + + // Generated from `ServiceStack.Text.TypeSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TypeSerializer + { + public static bool CanCreateFromString(System.Type type) => throw null; + public static T Clone(T value) => throw null; + public static object DeserializeFromReader(System.IO.TextReader reader, System.Type type) => throw null; + public static T DeserializeFromReader(System.IO.TextReader reader) => throw null; + public static object DeserializeFromSpan(System.Type type, System.ReadOnlySpan value) => throw null; + public static T DeserializeFromSpan(System.ReadOnlySpan value) => throw null; + public static object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public static T DeserializeFromStream(System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task DeserializeFromStreamAsync(System.Type type, System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task DeserializeFromStreamAsync(System.IO.Stream stream) => throw null; + public static object DeserializeFromString(string value, System.Type type) => throw null; + public static T DeserializeFromString(string value) => throw null; + public const string DoubleQuoteString = default; + public static string Dump(this System.Delegate fn) => throw null; + public static string Dump(this T instance) => throw null; + public static bool HasCircularReferences(object value) => throw null; + public static string IndentJson(this string json) => throw null; + public static System.Action OnSerialize { get => throw null; set => throw null; } + public static void Print(this int intValue) => throw null; + public static void Print(this System.Int64 longValue) => throw null; + public static void Print(this string text, params object[] args) => throw null; + public static void PrintDump(this T instance) => throw null; + public static string SerializeAndFormat(this T instance) => throw null; + public static void SerializeToStream(object value, System.Type type, System.IO.Stream stream) => throw null; + public static void SerializeToStream(T value, System.IO.Stream stream) => throw null; + public static string SerializeToString(object value, System.Type type) => throw null; + public static string SerializeToString(T value) => throw null; + public static void SerializeToWriter(object value, System.Type type, System.IO.TextWriter writer) => throw null; + public static void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; + public static System.Collections.Generic.Dictionary ToStringDictionary(this object obj) => throw null; + public static System.Text.UTF8Encoding UTF8Encoding { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Text.TypeSerializer<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypeSerializer : ServiceStack.Text.ITypeSerializer + { + public bool CanCreateFromString(System.Type type) => throw null; + public T DeserializeFromReader(System.IO.TextReader reader) => throw null; + public T DeserializeFromString(string value) => throw null; + public string SerializeToString(T value) => throw null; + public void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; + public TypeSerializer() => throw null; + } + + // Generated from `ServiceStack.Text.XmlSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlSerializer + { + public static T DeserializeFromReader(System.IO.TextReader reader) => throw null; + public static object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public static T DeserializeFromStream(System.IO.Stream stream) => throw null; + public static object DeserializeFromString(string xml, System.Type type) => throw null; + public static T DeserializeFromString(string xml) => throw null; + public static ServiceStack.Text.XmlSerializer Instance; + public static void SerializeToStream(object obj, System.IO.Stream stream) => throw null; + public static string SerializeToString(T from) => throw null; + public static void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; + public static System.Xml.XmlReaderSettings XmlReaderSettings; + public XmlSerializer(bool omitXmlDeclaration = default(bool), int maxCharsInDocument = default(int)) => throw null; + public static System.Xml.XmlWriterSettings XmlWriterSettings; + } + + namespace Common + { + // Generated from `ServiceStack.Text.Common.ConvertInstanceDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ConvertInstanceDelegate(object obj, System.Type type); + + // Generated from `ServiceStack.Text.Common.ConvertObjectDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ConvertObjectDelegate(object fromObject); + + // Generated from `ServiceStack.Text.Common.DateTimeSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DateTimeSerializer + { + public const string CondensedDateTimeFormat = default; + public const string DateTimeFormatSecondsNoOffset = default; + public const string DateTimeFormatSecondsUtcOffset = default; + public const string DateTimeFormatTicksNoUtcOffset = default; + public const string DateTimeFormatTicksUtcOffset = default; + public const string DefaultDateTimeFormat = default; + public const string DefaultDateTimeFormatWithFraction = default; + public const string EscapedWcfJsonPrefix = default; + public const string EscapedWcfJsonSuffix = default; + public static System.TimeZoneInfo GetLocalTimeZoneInfo() => throw null; + public static System.Func OnParseErrorFn { get => throw null; set => throw null; } + public static System.DateTime ParseDateTime(string dateTimeStr) => throw null; + public static System.DateTimeOffset ParseDateTimeOffset(string dateTimeOffsetStr) => throw null; + public static System.DateTime? ParseManual(string dateTimeStr) => throw null; + public static System.DateTime? ParseManual(string dateTimeStr, System.DateTimeKind dateKind) => throw null; + public static System.TimeSpan ParseNSTimeInterval(string doubleInSecs) => throw null; + public static System.DateTimeOffset? ParseNullableDateTimeOffset(string dateTimeOffsetStr) => throw null; + public static System.TimeSpan? ParseNullableTimeSpan(string dateTimeStr) => throw null; + public static System.DateTime ParseRFC1123DateTime(string dateTimeStr) => throw null; + public static System.DateTime? ParseShortestNullableXsdDateTime(string dateTimeStr) => throw null; + public static System.DateTime ParseShortestXsdDateTime(string dateTimeStr) => throw null; + public static System.TimeSpan ParseTimeSpan(string dateTimeStr) => throw null; + public static System.DateTime ParseWcfJsonDate(string wcfJsonDate) => throw null; + public static System.DateTimeOffset ParseWcfJsonDateOffset(string wcfJsonDate) => throw null; + public static System.DateTime ParseXsdDateTime(string dateTimeStr) => throw null; + public static System.TimeSpan? ParseXsdNullableTimeSpan(string dateTimeStr) => throw null; + public static System.TimeSpan ParseXsdTimeSpan(string dateTimeStr) => throw null; + public static System.DateTime Prepare(this System.DateTime dateTime, bool parsedAsUtc = default(bool)) => throw null; + public const string ShortDateTimeFormat = default; + public static string ToDateTimeString(System.DateTime dateTime) => throw null; + public static string ToLocalXsdDateTimeString(System.DateTime dateTime) => throw null; + public static string ToShortestXsdDateTimeString(System.DateTime dateTime) => throw null; + public static string ToWcfJsonDate(System.DateTime dateTime) => throw null; + public static string ToWcfJsonDateTimeOffset(System.DateTimeOffset dateTimeOffset) => throw null; + public static string ToXsdDateTimeString(System.DateTime dateTime) => throw null; + public static string ToXsdTimeSpanString(System.TimeSpan timeSpan) => throw null; + public static string ToXsdTimeSpanString(System.TimeSpan? timeSpan) => throw null; + public const string UnspecifiedOffset = default; + public const string UtcOffset = default; + public const string WcfJsonPrefix = default; + public const System.Char WcfJsonSuffix = default; + public static void WriteWcfJsonDate(System.IO.TextWriter writer, System.DateTime dateTime) => throw null; + public static void WriteWcfJsonDateTimeOffset(System.IO.TextWriter writer, System.DateTimeOffset dateTimeOffset) => throw null; + public const string XsdDateTimeFormat = default; + public const string XsdDateTimeFormat3F = default; + public const string XsdDateTimeFormatSeconds = default; + } + + // Generated from `ServiceStack.Text.Common.DeserializationErrorDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void DeserializationErrorDelegate(object instance, System.Type propertyType, string propertyName, string propertyValueStr, System.Exception ex); + + // Generated from `ServiceStack.Text.Common.DeserializeArrayWithElements<,>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeArrayWithElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static T[] ParseGenericArray(System.ReadOnlySpan value, ServiceStack.Text.Common.ParseStringSpanDelegate elementParseFn) => throw null; + public static T[] ParseGenericArray(string value, ServiceStack.Text.Common.ParseStringDelegate elementParseFn) => throw null; + } + + // Generated from `ServiceStack.Text.Common.DeserializeArrayWithElements<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeArrayWithElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + // Generated from `ServiceStack.Text.Common.DeserializeArrayWithElements<>+ParseArrayOfElementsDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ParseArrayOfElementsDelegate(System.ReadOnlySpan value, ServiceStack.Text.Common.ParseStringSpanDelegate parseFn); + + + public static System.Func GetParseFn(System.Type type) => throw null; + public static ServiceStack.Text.Common.DeserializeArrayWithElements.ParseArrayOfElementsDelegate GetParseStringSpanFn(System.Type type) => throw null; + } + + // Generated from `ServiceStack.Text.Common.DeserializeBuiltin<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeBuiltin + { + public static ServiceStack.Text.Common.ParseStringDelegate Parse { get => throw null; } + public static ServiceStack.Text.Common.ParseStringSpanDelegate ParseStringSpan { get => throw null; } + } + + // Generated from `ServiceStack.Text.Common.DeserializeDictionary<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeDictionary where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static ServiceStack.Text.Common.ParseStringDelegate GetParseMethod(System.Type type) => throw null; + public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanMethod(System.Type type) => throw null; + public static System.Collections.Generic.IDictionary ParseDictionary(System.ReadOnlySpan value, System.Type createMapType, ServiceStack.Text.Common.ParseStringSpanDelegate parseKeyFn, ServiceStack.Text.Common.ParseStringSpanDelegate parseValueFn) => throw null; + public static System.Collections.Generic.IDictionary ParseDictionary(string value, System.Type createMapType, ServiceStack.Text.Common.ParseStringDelegate parseKeyFn, ServiceStack.Text.Common.ParseStringDelegate parseValueFn) => throw null; + public static object ParseDictionaryType(System.ReadOnlySpan value, System.Type createMapType, System.Type[] argTypes, ServiceStack.Text.Common.ParseStringSpanDelegate keyParseFn, ServiceStack.Text.Common.ParseStringSpanDelegate valueParseFn) => throw null; + public static object ParseDictionaryType(string value, System.Type createMapType, System.Type[] argTypes, ServiceStack.Text.Common.ParseStringDelegate keyParseFn, ServiceStack.Text.Common.ParseStringDelegate valueParseFn) => throw null; + public static System.Collections.IDictionary ParseIDictionary(System.ReadOnlySpan value, System.Type dictType) => throw null; + public static System.Collections.IDictionary ParseIDictionary(string value, System.Type dictType) => throw null; + public static T ParseInheritedJsonObject(System.ReadOnlySpan value) where T : ServiceStack.Text.JsonObject, new() => throw null; + public static ServiceStack.Text.JsonObject ParseJsonObject(System.ReadOnlySpan value) => throw null; + public static ServiceStack.Text.JsonObject ParseJsonObject(string value) => throw null; + public static System.Collections.Generic.Dictionary ParseStringDictionary(System.ReadOnlySpan value) => throw null; + public static System.Collections.Generic.Dictionary ParseStringDictionary(string value) => throw null; + } + + // Generated from `ServiceStack.Text.Common.DeserializeList<,>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeList where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static ServiceStack.Text.Common.ParseStringDelegate GetParseFn() => throw null; + public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn() => throw null; + public static ServiceStack.Text.Common.ParseStringDelegate Parse { get => throw null; } + public static ServiceStack.Text.Common.ParseStringSpanDelegate ParseStringSpan { get => throw null; } + } + + // Generated from `ServiceStack.Text.Common.DeserializeListWithElements<,>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeListWithElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static System.Collections.Generic.ICollection ParseGenericList(System.ReadOnlySpan value, System.Type createListType, ServiceStack.Text.Common.ParseStringSpanDelegate parseFn) => throw null; + public static System.Collections.Generic.ICollection ParseGenericList(string value, System.Type createListType, ServiceStack.Text.Common.ParseStringDelegate parseFn) => throw null; + } + + // Generated from `ServiceStack.Text.Common.DeserializeListWithElements<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeListWithElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + // Generated from `ServiceStack.Text.Common.DeserializeListWithElements<>+ParseListDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ParseListDelegate(System.ReadOnlySpan value, System.Type createListType, ServiceStack.Text.Common.ParseStringSpanDelegate parseFn); + + + public static System.Func GetListTypeParseFn(System.Type createListType, System.Type elementType, ServiceStack.Text.Common.ParseStringDelegate parseFn) => throw null; + public static ServiceStack.Text.Common.DeserializeListWithElements.ParseListDelegate GetListTypeParseStringSpanFn(System.Type createListType, System.Type elementType, ServiceStack.Text.Common.ParseStringSpanDelegate parseFn) => throw null; + public static System.Collections.Generic.List ParseByteList(System.ReadOnlySpan value) => throw null; + public static System.Collections.Generic.List ParseByteList(string value) => throw null; + public static System.Collections.Generic.List ParseIntList(System.ReadOnlySpan value) => throw null; + public static System.Collections.Generic.List ParseIntList(string value) => throw null; + public static System.Collections.Generic.List ParseStringList(System.ReadOnlySpan value) => throw null; + public static System.Collections.Generic.List ParseStringList(string value) => throw null; + public static System.ReadOnlySpan StripList(System.ReadOnlySpan value) => throw null; + } + + // Generated from `ServiceStack.Text.Common.DeserializeStringSpanDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object DeserializeStringSpanDelegate(System.Type type, System.ReadOnlySpan source); + + // Generated from `ServiceStack.Text.Common.DeserializeType<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeType where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static System.Type ExtractType(System.ReadOnlySpan strType) => throw null; + public static System.Type ExtractType(string strType) => throw null; + public static object ObjectStringToType(System.ReadOnlySpan strType) => throw null; + public static object ParseAbstractType(System.ReadOnlySpan value) => throw null; + public static object ParsePrimitive(System.ReadOnlySpan value) => throw null; + public static object ParsePrimitive(string value) => throw null; + public static object ParseQuotedPrimitive(string value) => throw null; + } + + // Generated from `ServiceStack.Text.Common.DeserializeTypeExensions` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DeserializeTypeExensions + { + public static bool Has(this ServiceStack.Text.ParseAsType flags, ServiceStack.Text.ParseAsType flag) => throw null; + public static object ParseNumber(this System.ReadOnlySpan value) => throw null; + public static object ParseNumber(this System.ReadOnlySpan value, bool bestFit) => throw null; + } + + // Generated from `ServiceStack.Text.Common.DeserializeTypeUtils` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DeserializeTypeUtils + { + public DeserializeTypeUtils() => throw null; + public static ServiceStack.Text.Common.ParseStringDelegate GetParseMethod(System.Type type) => throw null; + public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanMethod(System.Type type) => throw null; + public static System.Reflection.ConstructorInfo GetTypeStringConstructor(System.Type type) => throw null; + } + + // Generated from `ServiceStack.Text.Common.ITypeSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypeSerializer + { + bool EatItemSeperatorOrMapEndChar(System.ReadOnlySpan value, ref int i); + bool EatItemSeperatorOrMapEndChar(string value, ref int i); + System.ReadOnlySpan EatMapKey(System.ReadOnlySpan value, ref int i); + string EatMapKey(string value, ref int i); + bool EatMapKeySeperator(System.ReadOnlySpan value, ref int i); + bool EatMapKeySeperator(string value, ref int i); + bool EatMapStartChar(System.ReadOnlySpan value, ref int i); + bool EatMapStartChar(string value, ref int i); + System.ReadOnlySpan EatTypeValue(System.ReadOnlySpan value, ref int i); + string EatTypeValue(string value, ref int i); + System.ReadOnlySpan EatValue(System.ReadOnlySpan value, ref int i); + string EatValue(string value, ref int i); + void EatWhitespace(System.ReadOnlySpan value, ref int i); + void EatWhitespace(string value, ref int i); + ServiceStack.Text.Common.ParseStringDelegate GetParseFn(System.Type type); + ServiceStack.Text.Common.ParseStringDelegate GetParseFn(); + ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(System.Type type); + ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(); + ServiceStack.Text.Json.TypeInfo GetTypeInfo(System.Type type); + ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(System.Type type); + ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(); + bool IncludeNullValues { get; } + bool IncludeNullValuesInDictionaries { get; } + ServiceStack.Text.Common.ObjectDeserializerDelegate ObjectDeserializer { get; set; } + string ParseRawString(string value); + string ParseString(System.ReadOnlySpan value); + string ParseString(string value); + string TypeAttrInObject { get; } + System.ReadOnlySpan UnescapeSafeString(System.ReadOnlySpan value); + string UnescapeSafeString(string value); + System.ReadOnlySpan UnescapeString(System.ReadOnlySpan value); + string UnescapeString(string value); + object UnescapeStringAsObject(System.ReadOnlySpan value); + void WriteBool(System.IO.TextWriter writer, object boolValue); + void WriteBuiltIn(System.IO.TextWriter writer, object value); + void WriteByte(System.IO.TextWriter writer, object byteValue); + void WriteBytes(System.IO.TextWriter writer, object oByteValue); + void WriteChar(System.IO.TextWriter writer, object charValue); + void WriteDateOnly(System.IO.TextWriter writer, object oDateOnly); + void WriteDateTime(System.IO.TextWriter writer, object oDateTime); + void WriteDateTimeOffset(System.IO.TextWriter writer, object oDateTimeOffset); + void WriteDecimal(System.IO.TextWriter writer, object decimalValue); + void WriteDouble(System.IO.TextWriter writer, object doubleValue); + void WriteEnum(System.IO.TextWriter writer, object enumValue); + void WriteException(System.IO.TextWriter writer, object value); + void WriteFloat(System.IO.TextWriter writer, object floatValue); + void WriteFormattableObjectString(System.IO.TextWriter writer, object value); + void WriteGuid(System.IO.TextWriter writer, object oValue); + void WriteInt16(System.IO.TextWriter writer, object intValue); + void WriteInt32(System.IO.TextWriter writer, object intValue); + void WriteInt64(System.IO.TextWriter writer, object longValue); + void WriteNullableDateOnly(System.IO.TextWriter writer, object oDateOnly); + void WriteNullableDateTime(System.IO.TextWriter writer, object dateTime); + void WriteNullableDateTimeOffset(System.IO.TextWriter writer, object dateTimeOffset); + void WriteNullableGuid(System.IO.TextWriter writer, object oValue); + void WriteNullableTimeOnly(System.IO.TextWriter writer, object oTimeOnly); + void WriteNullableTimeSpan(System.IO.TextWriter writer, object timeSpan); + void WriteObjectString(System.IO.TextWriter writer, object value); + void WritePropertyName(System.IO.TextWriter writer, string value); + void WriteRawString(System.IO.TextWriter writer, string value); + void WriteSByte(System.IO.TextWriter writer, object sbyteValue); + void WriteString(System.IO.TextWriter writer, string value); + void WriteTimeOnly(System.IO.TextWriter writer, object oTimeOnly); + void WriteTimeSpan(System.IO.TextWriter writer, object timeSpan); + void WriteUInt16(System.IO.TextWriter writer, object intValue); + void WriteUInt32(System.IO.TextWriter writer, object uintValue); + void WriteUInt64(System.IO.TextWriter writer, object ulongValue); + } + + // Generated from `ServiceStack.Text.Common.JsReader<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsReader where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public ServiceStack.Text.Common.ParseStringDelegate GetParseFn() => throw null; + public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn() => throw null; + public static void InitAot() => throw null; + public JsReader() => throw null; + } + + // Generated from `ServiceStack.Text.Common.JsWriter` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsWriter + { + public static void AssertAllowedRuntimeType(System.Type type) => throw null; + public static System.Char[] CsvChars; + public const string EmptyMap = default; + public static System.Char[] EscapeChars; + public const string EscapedQuoteString = default; + public static ServiceStack.Text.Common.ITypeSerializer GetTypeSerializer() => throw null; + public static bool HasAnyEscapeChars(string value) => throw null; + public const System.Char ItemSeperator = default; + public const string ItemSeperatorString = default; + public const System.Char LineFeedChar = default; + public const System.Char ListEndChar = default; + public const System.Char ListStartChar = default; + public const System.Char MapEndChar = default; + public const System.Char MapKeySeperator = default; + public const string MapKeySeperatorString = default; + public const string MapNullValue = default; + public const System.Char MapStartChar = default; + public const System.Char QuoteChar = default; + public const string QuoteString = default; + public const System.Char ReturnChar = default; + public static bool ShouldAllowRuntimeType(System.Type type) => throw null; + public const string TypeAttr = default; + public static void WriteDynamic(System.Action callback) => throw null; + public static void WriteEnumFlags(System.IO.TextWriter writer, object enumFlagValue) => throw null; + } + + // Generated from `ServiceStack.Text.Common.JsWriter<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsWriter where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public ServiceStack.Text.Common.WriteObjectDelegate GetSpecialWriteFn(System.Type type) => throw null; + public ServiceStack.Text.Common.WriteObjectDelegate GetValueTypeToStringMethod(System.Type type) => throw null; + public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn() => throw null; + public static void InitAot() => throw null; + public JsWriter() => throw null; + public System.Collections.Generic.Dictionary SpecialTypes; + public void WriteType(System.IO.TextWriter writer, object value) => throw null; + public void WriteValue(System.IO.TextWriter writer, object value) => throw null; + } + + // Generated from `ServiceStack.Text.Common.ObjectDeserializerDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ObjectDeserializerDelegate(System.ReadOnlySpan value); + + // Generated from `ServiceStack.Text.Common.ParseStringDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ParseStringDelegate(string stringValue); + + // Generated from `ServiceStack.Text.Common.ParseStringSpanDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ParseStringSpanDelegate(System.ReadOnlySpan value); + + // Generated from `ServiceStack.Text.Common.StaticParseMethod<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StaticParseMethod + { + public static ServiceStack.Text.Common.ParseStringDelegate Parse { get => throw null; } + public static ServiceStack.Text.Common.ParseStringSpanDelegate ParseStringSpan { get => throw null; } + } + + // Generated from `ServiceStack.Text.Common.ToStringDictionaryMethods<,,>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ToStringDictionaryMethods where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static void WriteGenericIDictionary(System.IO.TextWriter writer, System.Collections.Generic.IDictionary map, ServiceStack.Text.Common.WriteObjectDelegate writeKeyFn, ServiceStack.Text.Common.WriteObjectDelegate writeValueFn) => throw null; + public static void WriteIDictionary(System.IO.TextWriter writer, object oMap, ServiceStack.Text.Common.WriteObjectDelegate writeKeyFn, ServiceStack.Text.Common.WriteObjectDelegate writeValueFn) => throw null; + } + + // Generated from `ServiceStack.Text.Common.WriteListsOfElements<,>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class WriteListsOfElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static void WriteArray(System.IO.TextWriter writer, object oArrayValue) => throw null; + public static void WriteEnumerable(System.IO.TextWriter writer, object oEnumerable) => throw null; + public static void WriteGenericArray(System.IO.TextWriter writer, System.Array array) => throw null; + public static void WriteGenericArrayValueType(System.IO.TextWriter writer, T[] array) => throw null; + public static void WriteGenericArrayValueType(System.IO.TextWriter writer, object oArray) => throw null; + public static void WriteGenericEnumerable(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable enumerable) => throw null; + public static void WriteGenericEnumerableValueType(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable enumerable) => throw null; + public static void WriteGenericIList(System.IO.TextWriter writer, System.Collections.Generic.IList list) => throw null; + public static void WriteGenericIListValueType(System.IO.TextWriter writer, System.Collections.Generic.IList list) => throw null; + public static void WriteGenericList(System.IO.TextWriter writer, System.Collections.Generic.List list) => throw null; + public static void WriteGenericListValueType(System.IO.TextWriter writer, System.Collections.Generic.List list) => throw null; + public static void WriteIList(System.IO.TextWriter writer, object oList) => throw null; + public static void WriteIListValueType(System.IO.TextWriter writer, object list) => throw null; + public static void WriteList(System.IO.TextWriter writer, object oList) => throw null; + public static void WriteListValueType(System.IO.TextWriter writer, object list) => throw null; + } + + // Generated from `ServiceStack.Text.Common.WriteListsOfElements<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class WriteListsOfElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static ServiceStack.Text.Common.WriteObjectDelegate GetGenericWriteArray(System.Type elementType) => throw null; + public static ServiceStack.Text.Common.WriteObjectDelegate GetGenericWriteEnumerable(System.Type elementType) => throw null; + public static ServiceStack.Text.Common.WriteObjectDelegate GetIListWriteFn(System.Type elementType) => throw null; + public static ServiceStack.Text.Common.WriteObjectDelegate GetListWriteFn(System.Type elementType) => throw null; + public static ServiceStack.Text.Common.WriteObjectDelegate GetWriteIListValueType(System.Type elementType) => throw null; + public static ServiceStack.Text.Common.WriteObjectDelegate GetWriteListValueType(System.Type elementType) => throw null; + public static void WriteIEnumerable(System.IO.TextWriter writer, object oValueCollection) => throw null; + } + + // Generated from `ServiceStack.Text.Common.WriteObjectDelegate` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void WriteObjectDelegate(System.IO.TextWriter writer, object obj); + + } + namespace Controller + { + // Generated from `ServiceStack.Text.Controller.CommandProcessor` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CommandProcessor + { + public CommandProcessor(object[] controllers) => throw null; + public void Invoke(string commandUri) => throw null; + } + + // Generated from `ServiceStack.Text.Controller.PathInfo` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PathInfo + { + public string ActionName { get => throw null; set => throw null; } + public System.Collections.Generic.List Arguments { get => throw null; set => throw null; } + public string ControllerName { get => throw null; set => throw null; } + public string FirstArgument { get => throw null; } + public T GetArgumentValue(int index) => throw null; + public System.Collections.Generic.Dictionary Options { get => throw null; set => throw null; } + public static ServiceStack.Text.Controller.PathInfo Parse(string pathUri) => throw null; + public PathInfo(string actionName, System.Collections.Generic.List arguments, System.Collections.Generic.Dictionary options) => throw null; + public PathInfo(string actionName, params string[] arguments) => throw null; + } + + } + namespace Json + { + // Generated from `ServiceStack.Text.Json.JsonReader` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsonReader + { + public static void InitAot() => throw null; + public static ServiceStack.Text.Common.JsReader Instance; + } + + // Generated from `ServiceStack.Text.Json.JsonTypeSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct JsonTypeSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public static string ConvertFromUtf32(int utf32) => throw null; + public bool EatItemSeperatorOrMapEndChar(System.ReadOnlySpan value, ref int i) => throw null; + public bool EatItemSeperatorOrMapEndChar(string value, ref int i) => throw null; + public System.ReadOnlySpan EatMapKey(System.ReadOnlySpan value, ref int i) => throw null; + public string EatMapKey(string value, ref int i) => throw null; + public bool EatMapKeySeperator(System.ReadOnlySpan value, ref int i) => throw null; + public bool EatMapKeySeperator(string value, ref int i) => throw null; + public bool EatMapStartChar(System.ReadOnlySpan value, ref int i) => throw null; + public bool EatMapStartChar(string value, ref int i) => throw null; + public System.ReadOnlySpan EatTypeValue(System.ReadOnlySpan value, ref int i) => throw null; + public string EatTypeValue(string value, ref int i) => throw null; + public System.ReadOnlySpan EatValue(System.ReadOnlySpan value, ref int i) => throw null; + public string EatValue(string value, ref int i) => throw null; + public void EatWhitespace(System.ReadOnlySpan value, ref int i) => throw null; + public void EatWhitespace(string value, ref int i) => throw null; + public ServiceStack.Text.Common.ParseStringDelegate GetParseFn(System.Type type) => throw null; + public ServiceStack.Text.Common.ParseStringDelegate GetParseFn() => throw null; + public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(System.Type type) => throw null; + public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn() => throw null; + public ServiceStack.Text.Json.TypeInfo GetTypeInfo(System.Type type) => throw null; + public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(System.Type type) => throw null; + public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn() => throw null; + public bool IncludeNullValues { get => throw null; } + public bool IncludeNullValuesInDictionaries { get => throw null; } + public static ServiceStack.Text.Common.ITypeSerializer Instance; + public static bool IsEmptyMap(System.ReadOnlySpan value, int i = default(int)) => throw null; + // Stub generator skipped constructor + public ServiceStack.Text.Common.ObjectDeserializerDelegate ObjectDeserializer { get => throw null; set => throw null; } + public string ParseRawString(string value) => throw null; + public string ParseString(System.ReadOnlySpan value) => throw null; + public string ParseString(string value) => throw null; + public string TypeAttrInObject { get => throw null; } + public static System.ReadOnlySpan Unescape(System.ReadOnlySpan input) => throw null; + public static System.ReadOnlySpan Unescape(System.ReadOnlySpan input, bool removeQuotes) => throw null; + public static System.ReadOnlySpan Unescape(System.ReadOnlySpan input, bool removeQuotes, System.Char quoteChar) => throw null; + public static string Unescape(string input) => throw null; + public static string Unescape(string input, bool removeQuotes) => throw null; + public static System.ReadOnlySpan UnescapeJsString(System.ReadOnlySpan json, System.Char quoteChar) => throw null; + public static System.ReadOnlySpan UnescapeJsString(System.ReadOnlySpan json, System.Char quoteChar, bool removeQuotes, ref int index) => throw null; + public System.ReadOnlySpan UnescapeSafeString(System.ReadOnlySpan value) => throw null; + public string UnescapeSafeString(string value) => throw null; + public System.ReadOnlySpan UnescapeString(System.ReadOnlySpan value) => throw null; + public string UnescapeString(string value) => throw null; + public object UnescapeStringAsObject(System.ReadOnlySpan value) => throw null; + public void WriteBool(System.IO.TextWriter writer, object boolValue) => throw null; + public void WriteBuiltIn(System.IO.TextWriter writer, object value) => throw null; + public void WriteByte(System.IO.TextWriter writer, object byteValue) => throw null; + public void WriteBytes(System.IO.TextWriter writer, object oByteValue) => throw null; + public void WriteChar(System.IO.TextWriter writer, object charValue) => throw null; + public void WriteDateOnly(System.IO.TextWriter writer, object oDateOnly) => throw null; + public void WriteDateTime(System.IO.TextWriter writer, object oDateTime) => throw null; + public void WriteDateTimeOffset(System.IO.TextWriter writer, object oDateTimeOffset) => throw null; + public void WriteDecimal(System.IO.TextWriter writer, object decimalValue) => throw null; + public void WriteDouble(System.IO.TextWriter writer, object doubleValue) => throw null; + public void WriteEnum(System.IO.TextWriter writer, object enumValue) => throw null; + public void WriteException(System.IO.TextWriter writer, object value) => throw null; + public void WriteFloat(System.IO.TextWriter writer, object floatValue) => throw null; + public void WriteFormattableObjectString(System.IO.TextWriter writer, object value) => throw null; + public void WriteGuid(System.IO.TextWriter writer, object oValue) => throw null; + public void WriteInt16(System.IO.TextWriter writer, object intValue) => throw null; + public void WriteInt32(System.IO.TextWriter writer, object intValue) => throw null; + public void WriteInt64(System.IO.TextWriter writer, object integerValue) => throw null; + public void WriteNullableDateOnly(System.IO.TextWriter writer, object oDateOnly) => throw null; + public void WriteNullableDateTime(System.IO.TextWriter writer, object dateTime) => throw null; + public void WriteNullableDateTimeOffset(System.IO.TextWriter writer, object dateTimeOffset) => throw null; + public void WriteNullableGuid(System.IO.TextWriter writer, object oValue) => throw null; + public void WriteNullableTimeOnly(System.IO.TextWriter writer, object oTimeOnly) => throw null; + public void WriteNullableTimeSpan(System.IO.TextWriter writer, object oTimeSpan) => throw null; + public void WriteObjectString(System.IO.TextWriter writer, object value) => throw null; + public void WritePropertyName(System.IO.TextWriter writer, string value) => throw null; + public void WriteRawString(System.IO.TextWriter writer, string value) => throw null; + public void WriteSByte(System.IO.TextWriter writer, object sbyteValue) => throw null; + public void WriteString(System.IO.TextWriter writer, string value) => throw null; + public void WriteTimeOnly(System.IO.TextWriter writer, object oTimeOnly) => throw null; + public void WriteTimeSpan(System.IO.TextWriter writer, object oTimeSpan) => throw null; + public void WriteUInt16(System.IO.TextWriter writer, object intValue) => throw null; + public void WriteUInt32(System.IO.TextWriter writer, object uintValue) => throw null; + public void WriteUInt64(System.IO.TextWriter writer, object ulongValue) => throw null; + } + + // Generated from `ServiceStack.Text.Json.JsonUtils` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsonUtils + { + public const System.Char BackspaceChar = default; + public const System.Char CarriageReturnChar = default; + public const System.Char EscapeChar = default; + public const string False = default; + public const System.Char FormFeedChar = default; + public static void IntToHex(int intValue, System.Char[] hex) => throw null; + public static bool IsJsArray(System.ReadOnlySpan value) => throw null; + public static bool IsJsArray(string value) => throw null; + public static bool IsJsObject(System.ReadOnlySpan value) => throw null; + public static bool IsJsObject(string value) => throw null; + public static bool IsWhiteSpace(System.Char c) => throw null; + public const System.Char LineFeedChar = default; + public const System.Int64 MaxInteger = default; + public const System.Int64 MinInteger = default; + public const string Null = default; + public const System.Char QuoteChar = default; + public const System.Char SpaceChar = default; + public const System.Char TabChar = default; + public const string True = default; + public static System.Char[] WhiteSpaceChars; + public static void WriteString(System.IO.TextWriter writer, string value) => throw null; + } + + // Generated from `ServiceStack.Text.Json.JsonWriter` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsonWriter + { + public static void InitAot() => throw null; + public static ServiceStack.Text.Common.JsWriter Instance; + } + + // Generated from `ServiceStack.Text.Json.JsonWriter<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsonWriter + { + public static ServiceStack.Text.Common.WriteObjectDelegate GetRootObjectWriteFn(object value) => throw null; + public static ServiceStack.Text.Json.TypeInfo GetTypeInfo() => throw null; + public static void Refresh() => throw null; + public static void Reset() => throw null; + public static ServiceStack.Text.Common.WriteObjectDelegate WriteFn() => throw null; + public static void WriteObject(System.IO.TextWriter writer, object value) => throw null; + public static void WriteRootObject(System.IO.TextWriter writer, object value) => throw null; + } + + // Generated from `ServiceStack.Text.Json.TypeInfo` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypeInfo + { + public TypeInfo() => throw null; + } + + } + namespace Jsv + { + // Generated from `ServiceStack.Text.Jsv.JsvReader` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsvReader + { + public static ServiceStack.Text.Common.ParseStringDelegate GetParseFn(System.Type type) => throw null; + public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseSpanFn(System.Type type) => throw null; + public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(System.Type type) => throw null; + public static void InitAot() => throw null; + } + + // Generated from `ServiceStack.Text.Jsv.JsvTypeSerializer` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct JsvTypeSerializer : ServiceStack.Text.Common.ITypeSerializer + { + public bool EatItemSeperatorOrMapEndChar(System.ReadOnlySpan value, ref int i) => throw null; + public bool EatItemSeperatorOrMapEndChar(string value, ref int i) => throw null; + public System.ReadOnlySpan EatMapKey(System.ReadOnlySpan value, ref int i) => throw null; + public string EatMapKey(string value, ref int i) => throw null; + public bool EatMapKeySeperator(System.ReadOnlySpan value, ref int i) => throw null; + public bool EatMapKeySeperator(string value, ref int i) => throw null; + public bool EatMapStartChar(System.ReadOnlySpan value, ref int i) => throw null; + public bool EatMapStartChar(string value, ref int i) => throw null; + public System.ReadOnlySpan EatTypeValue(System.ReadOnlySpan value, ref int i) => throw null; + public string EatTypeValue(string value, ref int i) => throw null; + public System.ReadOnlySpan EatValue(System.ReadOnlySpan value, ref int i) => throw null; + public string EatValue(string value, ref int i) => throw null; + public void EatWhitespace(System.ReadOnlySpan value, ref int i) => throw null; + public void EatWhitespace(string value, ref int i) => throw null; + public ServiceStack.Text.Common.ParseStringDelegate GetParseFn(System.Type type) => throw null; + public ServiceStack.Text.Common.ParseStringDelegate GetParseFn() => throw null; + public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(System.Type type) => throw null; + public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn() => throw null; + public ServiceStack.Text.Json.TypeInfo GetTypeInfo(System.Type type) => throw null; + public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(System.Type type) => throw null; + public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn() => throw null; + public bool IncludeNullValues { get => throw null; } + public bool IncludeNullValuesInDictionaries { get => throw null; } + public static ServiceStack.Text.Common.ITypeSerializer Instance; + // Stub generator skipped constructor + public ServiceStack.Text.Common.ObjectDeserializerDelegate ObjectDeserializer { get => throw null; set => throw null; } + public string ParseRawString(string value) => throw null; + public string ParseString(System.ReadOnlySpan value) => throw null; + public string ParseString(string value) => throw null; + public string TypeAttrInObject { get => throw null; } + public System.ReadOnlySpan UnescapeSafeString(System.ReadOnlySpan value) => throw null; + public string UnescapeSafeString(string value) => throw null; + public System.ReadOnlySpan UnescapeString(System.ReadOnlySpan value) => throw null; + public string UnescapeString(string value) => throw null; + public object UnescapeStringAsObject(System.ReadOnlySpan value) => throw null; + public void WriteBool(System.IO.TextWriter writer, object boolValue) => throw null; + public void WriteBuiltIn(System.IO.TextWriter writer, object value) => throw null; + public void WriteByte(System.IO.TextWriter writer, object byteValue) => throw null; + public void WriteBytes(System.IO.TextWriter writer, object oByteValue) => throw null; + public void WriteChar(System.IO.TextWriter writer, object charValue) => throw null; + public void WriteDateOnly(System.IO.TextWriter writer, object oDateOnly) => throw null; + public void WriteDateTime(System.IO.TextWriter writer, object oDateTime) => throw null; + public void WriteDateTimeOffset(System.IO.TextWriter writer, object oDateTimeOffset) => throw null; + public void WriteDecimal(System.IO.TextWriter writer, object decimalValue) => throw null; + public void WriteDouble(System.IO.TextWriter writer, object doubleValue) => throw null; + public void WriteEnum(System.IO.TextWriter writer, object enumValue) => throw null; + public void WriteException(System.IO.TextWriter writer, object value) => throw null; + public void WriteFloat(System.IO.TextWriter writer, object floatValue) => throw null; + public void WriteFormattableObjectString(System.IO.TextWriter writer, object value) => throw null; + public void WriteGuid(System.IO.TextWriter writer, object oValue) => throw null; + public void WriteInt16(System.IO.TextWriter writer, object intValue) => throw null; + public void WriteInt32(System.IO.TextWriter writer, object intValue) => throw null; + public void WriteInt64(System.IO.TextWriter writer, object longValue) => throw null; + public void WriteNullableDateOnly(System.IO.TextWriter writer, object oDateOnly) => throw null; + public void WriteNullableDateTime(System.IO.TextWriter writer, object dateTime) => throw null; + public void WriteNullableDateTimeOffset(System.IO.TextWriter writer, object dateTimeOffset) => throw null; + public void WriteNullableGuid(System.IO.TextWriter writer, object oValue) => throw null; + public void WriteNullableTimeOnly(System.IO.TextWriter writer, object oTimeOnly) => throw null; + public void WriteNullableTimeSpan(System.IO.TextWriter writer, object oTimeSpan) => throw null; + public void WriteObjectString(System.IO.TextWriter writer, object value) => throw null; + public void WritePropertyName(System.IO.TextWriter writer, string value) => throw null; + public void WriteRawString(System.IO.TextWriter writer, string value) => throw null; + public void WriteSByte(System.IO.TextWriter writer, object sbyteValue) => throw null; + public void WriteString(System.IO.TextWriter writer, string value) => throw null; + public void WriteTimeOnly(System.IO.TextWriter writer, object oTimeOnly) => throw null; + public void WriteTimeSpan(System.IO.TextWriter writer, object oTimeSpan) => throw null; + public void WriteUInt16(System.IO.TextWriter writer, object intValue) => throw null; + public void WriteUInt32(System.IO.TextWriter writer, object uintValue) => throw null; + public void WriteUInt64(System.IO.TextWriter writer, object ulongValue) => throw null; + } + + // Generated from `ServiceStack.Text.Jsv.JsvWriter` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsvWriter + { + public static ServiceStack.Text.Common.WriteObjectDelegate GetValueTypeToStringMethod(System.Type type) => throw null; + public static ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(System.Type type) => throw null; + public static void InitAot() => throw null; + public static ServiceStack.Text.Common.JsWriter Instance; + public static void WriteLateBoundObject(System.IO.TextWriter writer, object value) => throw null; + } + + // Generated from `ServiceStack.Text.Jsv.JsvWriter<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsvWriter + { + public static void Refresh() => throw null; + public static void Reset() => throw null; + public static ServiceStack.Text.Common.WriteObjectDelegate WriteFn() => throw null; + public static void WriteObject(System.IO.TextWriter writer, object value) => throw null; + public static void WriteRootObject(System.IO.TextWriter writer, object value) => throw null; + } + + } + namespace Pools + { + // Generated from `ServiceStack.Text.Pools.BufferPool` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BufferPool + { + public const int BUFFER_LENGTH = default; + public static void Flush() => throw null; + public static System.Byte[] GetBuffer() => throw null; + public static System.Byte[] GetBuffer(int minSize) => throw null; + public static System.Byte[] GetCachedBuffer(int minSize) => throw null; + public static void ReleaseBufferToPool(ref System.Byte[] buffer) => throw null; + public static void ResizeAndFlushLeft(ref System.Byte[] buffer, int toFitAtLeastBytes, int copyFromIndex, int copyBytes) => throw null; + } + + // Generated from `ServiceStack.Text.Pools.CharPool` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CharPool + { + public const int BUFFER_LENGTH = default; + public static void Flush() => throw null; + public static System.Char[] GetBuffer() => throw null; + public static System.Char[] GetBuffer(int minSize) => throw null; + public static System.Char[] GetCachedBuffer(int minSize) => throw null; + public static void ReleaseBufferToPool(ref System.Char[] buffer) => throw null; + public static void ResizeAndFlushLeft(ref System.Char[] buffer, int toFitAtLeastchars, int copyFromIndex, int copychars) => throw null; + } + + // Generated from `ServiceStack.Text.Pools.ObjectPool<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ObjectPool where T : class + { + // Generated from `ServiceStack.Text.Pools.ObjectPool<>+Factory` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate T Factory(); + + + public T Allocate() => throw null; + public void ForgetTrackedObject(T old, T replacement = default(T)) => throw null; + public void Free(T obj) => throw null; + public ObjectPool(ServiceStack.Text.Pools.ObjectPool.Factory factory) => throw null; + public ObjectPool(ServiceStack.Text.Pools.ObjectPool.Factory factory, int size) => throw null; + } + + // Generated from `ServiceStack.Text.Pools.PooledObject<>` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct PooledObject : System.IDisposable where T : class + { + public static ServiceStack.Text.Pools.PooledObject Create(ServiceStack.Text.Pools.ObjectPool pool) => throw null; + public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; + public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; + public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; + public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; + public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; + public void Dispose() => throw null; + public T Object { get => throw null; } + // Stub generator skipped constructor + public PooledObject(ServiceStack.Text.Pools.ObjectPool pool, System.Func, T> allocator, System.Action, T> releaser) => throw null; + } + + // Generated from `ServiceStack.Text.Pools.SharedPools` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SharedPools + { + public static ServiceStack.Text.Pools.ObjectPool AsyncByteArray; + public static ServiceStack.Text.Pools.ObjectPool BigDefault() where T : class, new() => throw null; + public static ServiceStack.Text.Pools.ObjectPool ByteArray; + public const int ByteBufferSize = default; + public static ServiceStack.Text.Pools.ObjectPool Default() where T : class, new() => throw null; + public static ServiceStack.Text.Pools.ObjectPool> StringHashSet; + public static ServiceStack.Text.Pools.ObjectPool> StringIgnoreCaseDictionary() => throw null; + public static ServiceStack.Text.Pools.ObjectPool> StringIgnoreCaseHashSet; + } + + // Generated from `ServiceStack.Text.Pools.StringBuilderPool` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StringBuilderPool + { + public static System.Text.StringBuilder Allocate() => throw null; + public static void Free(System.Text.StringBuilder builder) => throw null; + public static string ReturnAndFree(System.Text.StringBuilder builder) => throw null; + } + + } + namespace Support + { + // Generated from `ServiceStack.Text.Support.DoubleConverter` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DoubleConverter + { + public DoubleConverter() => throw null; + public static string ToExactString(double d) => throw null; + } + + // Generated from `ServiceStack.Text.Support.TimeSpanConverter` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TimeSpanConverter + { + public static System.TimeSpan FromXsdDuration(string xsdDuration) => throw null; + public TimeSpanConverter() => throw null; + public static string ToXsdDuration(System.TimeSpan timeSpan) => throw null; + } + + // Generated from `ServiceStack.Text.Support.TypePair` in `ServiceStack.Text, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypePair + { + public System.Type[] Arg2 { get => throw null; set => throw null; } + public System.Type[] Args1 { get => throw null; set => throw null; } + public bool Equals(ServiceStack.Text.Support.TypePair other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public TypePair(System.Type[] arg1, System.Type[] arg2) => throw null; + } + + } + } +} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.csproj new file mode 100644 index 00000000000..d64daa7e680 --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.csproj @@ -0,0 +1,15 @@ + + + net6.0 + true + bin\ + false + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.cs b/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.cs new file mode 100644 index 00000000000..0c4f6124d94 --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.cs @@ -0,0 +1,12871 @@ +// This file contains auto-generated code. + +// Generated from `HttpAsyncTaskHandlerUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` +public static class HttpAsyncTaskHandlerUtils +{ + public static string GetOperationName(this ServiceStack.Host.Handlers.IServiceStackHandler handler) => throw null; +} + +namespace Funq +{ + // Generated from `Funq.Container` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Container : ServiceStack.Configuration.IResolver, ServiceStack.IContainer, System.IDisposable, System.IServiceProvider + { + public ServiceStack.Configuration.IContainerAdapter Adapter { get => throw null; set => throw null; } + public ServiceStack.IContainer AddSingleton(System.Type type, System.Func factory) => throw null; + public ServiceStack.IContainer AddTransient(System.Type type, System.Func factory) => throw null; + public void AutoWire(Funq.Container container, object instance) => throw null; + public void AutoWire(object instance) => throw null; + public bool CheckAdapterFirst { get => throw null; set => throw null; } + public static System.Linq.Expressions.NewExpression ConstructorExpression(System.Reflection.MethodInfo resolveMethodInfo, System.Type type, System.Linq.Expressions.Expression lambdaParam) => throw null; + public Container() => throw null; + public Funq.Container CreateChildContainer() => throw null; + public System.Func CreateFactory(System.Type type) => throw null; + public Funq.Owner DefaultOwner { get => throw null; set => throw null; } + public Funq.ReuseScope DefaultReuse { get => throw null; set => throw null; } + public virtual void Dispose() => throw null; + public bool Exists(System.Type type) => throw null; + public bool Exists() => throw null; + public bool ExistsNamed(string name) => throw null; + public static System.Func GenerateAutoWireFn() => throw null; + public static System.Reflection.ConstructorInfo GetConstructorWithMostParams(System.Type type) => throw null; + protected virtual Funq.ServiceEntry GetEntry(string serviceName, bool throwIfMissing) => throw null; + public object GetLazyResolver(params System.Type[] types) => throw null; + public object GetService(System.Type serviceType) => throw null; + public Funq.ServiceEntry> GetServiceEntry() => throw null; + public Funq.ServiceEntry> GetServiceEntryNamed(string name) => throw null; + public static System.Collections.Generic.HashSet IgnorePropertyTypeFullNames; + protected virtual Funq.Container InstantiateChildContainer() => throw null; + public Funq.Func LazyResolve() => throw null; + public Funq.Func LazyResolve(string name) => throw null; + public Funq.Func LazyResolve() => throw null; + public Funq.Func LazyResolve(string name) => throw null; + public System.Func LazyResolve() => throw null; + public System.Func LazyResolve(string name) => throw null; + public System.Func LazyResolve() => throw null; + public System.Func LazyResolve(string name) => throw null; + public System.Func LazyResolve() => throw null; + public System.Func LazyResolve(string name) => throw null; + public System.Func LazyResolve() => throw null; + public System.Func LazyResolve(string name) => throw null; + public System.Func LazyResolve() => throw null; + public System.Func LazyResolve(string name) => throw null; + public Funq.IRegistration Register(Funq.Func factory) => throw null; + public Funq.IRegistration Register(string name, Funq.Func factory) => throw null; + public Funq.IRegistration Register(Funq.Func factory) => throw null; + public Funq.IRegistration Register(string name, Funq.Func factory) => throw null; + public Funq.IRegistration Register(Funq.Func factory) => throw null; + public Funq.IRegistration Register(string name, Funq.Func factory) => throw null; + public Funq.IRegistration Register(System.Func factory) => throw null; + public Funq.IRegistration Register(string name, System.Func factory) => throw null; + public Funq.IRegistration Register(System.Func factory) => throw null; + public Funq.IRegistration Register(string name, System.Func factory) => throw null; + public Funq.IRegistration Register(System.Func factory) => throw null; + public Funq.IRegistration Register(string name, System.Func factory) => throw null; + public Funq.IRegistration Register(System.Func factory) => throw null; + public void Register(TService instance) => throw null; + public Funq.IRegistration Register(string name, System.Func factory) => throw null; + public void Register(string name, TService instance) => throw null; + public Funq.IRegistration RegisterAs() where T : TAs => throw null; + public Funq.IRegistration RegisterAs(string name) where T : TAs => throw null; + public Funq.IRegistration RegisterAutoWired() => throw null; + public Funq.IRegistration RegisterAutoWired(string name) => throw null; + public Funq.IRegistration RegisterAutoWiredAs() where T : TAs => throw null; + public Funq.IRegistration RegisterAutoWiredAs(string name) where T : TAs => throw null; + public Funq.IRegistration RegisterFactory(System.Func factory) => throw null; + public object RequiredResolve(System.Type type, System.Type ownerType) => throw null; + public object Resolve(System.Type type) => throw null; + public TService Resolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6) => throw null; + public TService Resolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) => throw null; + public TService Resolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) => throw null; + public TService Resolve(TArg1 arg1, TArg2 arg2, TArg3 arg3) => throw null; + public TService Resolve(TArg1 arg1, TArg2 arg2) => throw null; + public TService Resolve(TArg arg) => throw null; + public TService Resolve() => throw null; + public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6) => throw null; + public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) => throw null; + public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) => throw null; + public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3) => throw null; + public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2) => throw null; + public TService ResolveNamed(string name, TArg arg) => throw null; + public TService ResolveNamed(string name) => throw null; + public System.Func ReverseLazyResolve() => throw null; + public System.Func ReverseLazyResolve() => throw null; + public System.Func ReverseLazyResolve() => throw null; + public System.Func ReverseLazyResolve() => throw null; + public object TryResolve(System.Type type) => throw null; + public TService TryResolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6) => throw null; + public TService TryResolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) => throw null; + public TService TryResolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) => throw null; + public TService TryResolve(TArg1 arg1, TArg2 arg2, TArg3 arg3) => throw null; + public TService TryResolve(TArg1 arg1, TArg2 arg2) => throw null; + public TService TryResolve(TArg arg) => throw null; + public TService TryResolve() => throw null; + public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6) => throw null; + public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) => throw null; + public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) => throw null; + public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3) => throw null; + public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2) => throw null; + public TService TryResolveNamed(string name, TArg arg) => throw null; + public TService TryResolveNamed(string name) => throw null; + public int disposablesCount { get => throw null; } + } + + // Generated from `Funq.Func<,,,,,,,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); + + // Generated from `Funq.Func<,,,,,,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); + + // Generated from `Funq.Func<,,,,,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); + + // Generated from `Funq.IContainerModule` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IContainerModule : Funq.IFunqlet + { + } + + // Generated from `Funq.IFluentInterface` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IFluentInterface + { + bool Equals(object obj); + int GetHashCode(); + System.Type GetType(); + string ToString(); + } + + // Generated from `Funq.IFunqlet` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IFunqlet + { + void Configure(Funq.Container container); + } + + // Generated from `Funq.IHasContainer` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasContainer + { + Funq.Container Container { get; } + } + + // Generated from `Funq.IInitializable<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IInitializable : Funq.IFluentInterface + { + Funq.IReusedOwned InitializedBy(System.Action initializer); + } + + // Generated from `Funq.IOwned` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOwned : Funq.IFluentInterface + { + void OwnedBy(Funq.Owner owner); + } + + // Generated from `Funq.IRegistration` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRegistration : Funq.IFluentInterface, Funq.IOwned, Funq.IReused, Funq.IReusedOwned + { + } + + // Generated from `Funq.IRegistration<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRegistration : Funq.IFluentInterface, Funq.IInitializable, Funq.IOwned, Funq.IRegistration, Funq.IReused, Funq.IReusedOwned + { + } + + // Generated from `Funq.IReused` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IReused : Funq.IFluentInterface + { + Funq.IOwned ReusedWithin(Funq.ReuseScope scope); + } + + // Generated from `Funq.IReusedOwned` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IReusedOwned : Funq.IFluentInterface, Funq.IOwned, Funq.IReused + { + } + + // Generated from `Funq.Owner` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Owner + { + Container, + Default, + External, + } + + // Generated from `Funq.ResolutionException` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ResolutionException : System.Exception + { + public ResolutionException(System.Type missingServiceType) => throw null; + public ResolutionException(System.Type missingServiceType, string missingServiceName) => throw null; + public ResolutionException(string message) => throw null; + } + + // Generated from `Funq.ReuseScope` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum ReuseScope + { + Container, + Default, + Hierarchy, + None, + Request, + } + + // Generated from `Funq.ServiceEntry` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceEntry : Funq.IFluentInterface, Funq.IOwned, Funq.IRegistration, Funq.IReused, Funq.IReusedOwned + { + public Funq.Container Container; + public virtual object GetInstance() => throw null; + System.Type Funq.IFluentInterface.GetType() => throw null; + public void OwnedBy(Funq.Owner owner) => throw null; + public Funq.Owner Owner; + public Funq.ReuseScope Reuse; + public Funq.IOwned ReusedWithin(Funq.ReuseScope scope) => throw null; + protected ServiceEntry() => throw null; + } + + // Generated from `Funq.ServiceEntry<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceEntry : Funq.ServiceEntry, Funq.IFluentInterface, Funq.IInitializable, Funq.IOwned, Funq.IRegistration, Funq.IRegistration, Funq.IReused, Funq.IReusedOwned + { + public System.IDisposable AquireLockIfNeeded() => throw null; + public Funq.ServiceEntry CloneFor(Funq.Container newContainer) => throw null; + public TFunc Factory; + public override object GetInstance() => throw null; + System.Type Funq.IFluentInterface.GetType() => throw null; + public Funq.IReusedOwned InitializedBy(System.Action initializer) => throw null; + public ServiceEntry(TFunc factory) => throw null; + } + +} +namespace MarkdownDeep +{ + // Generated from `MarkdownDeep.BlockProcessor` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BlockProcessor : MarkdownDeep.StringScanner + { + public BlockProcessor(MarkdownDeep.Markdown m, bool MarkdownInHtml) => throw null; + } + + // Generated from `MarkdownDeep.HtmlTag` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlTag + { + public MarkdownDeep.HtmlTagFlags Flags { get => throw null; } + public HtmlTag(string name) => throw null; + public bool IsSafe() => throw null; + public static MarkdownDeep.HtmlTag Parse(MarkdownDeep.StringScanner p) => throw null; + public static MarkdownDeep.HtmlTag Parse(string str, ref int pos) => throw null; + public void RenderClosing(System.Text.StringBuilder dest) => throw null; + public void RenderOpening(System.Text.StringBuilder dest) => throw null; + public System.Collections.Generic.Dictionary attributes { get => throw null; } + public bool closed { get => throw null; set => throw null; } + public bool closing { get => throw null; } + public string name { get => throw null; } + } + + // Generated from `MarkdownDeep.HtmlTagFlags` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum HtmlTagFlags + { + Block, + ContentAsSpan, + Inline, + NoClosing, + } + + // Generated from `MarkdownDeep.ImageInfo` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ImageInfo + { + public ImageInfo() => throw null; + public int height; + public bool titled_image; + public string url; + public int width; + } + + // Generated from `MarkdownDeep.LinkDefinition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LinkDefinition + { + public LinkDefinition(string id) => throw null; + public LinkDefinition(string id, string url) => throw null; + public LinkDefinition(string id, string url, string title) => throw null; + public string id { get => throw null; set => throw null; } + public string title { get => throw null; set => throw null; } + public string url { get => throw null; set => throw null; } + } + + // Generated from `MarkdownDeep.Markdown` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Markdown + { + public bool AutoHeadingIDs { get => throw null; set => throw null; } + public string DocumentLocation { get => throw null; set => throw null; } + public string DocumentRoot { get => throw null; set => throw null; } + public bool ExtraMode { get => throw null; set => throw null; } + public bool ExtractHeadBlocks { get => throw null; set => throw null; } + public System.Func FormatCodeBlock; + public System.Func GetImageSize; + public MarkdownDeep.LinkDefinition GetLinkDefinition(string id) => throw null; + public string HeadBlockContent { get => throw null; set => throw null; } + public string HtmlClassFootnotes { get => throw null; set => throw null; } + public string HtmlClassTitledImages { get => throw null; set => throw null; } + public static string JoinSections(System.Collections.Generic.List sections) => throw null; + public static string JoinUserSections(System.Collections.Generic.List sections) => throw null; + public Markdown() => throw null; + public bool MarkdownInHtml { get => throw null; set => throw null; } + public int MaxImageWidth { get => throw null; set => throw null; } + public bool NewWindowForExternalLinks { get => throw null; set => throw null; } + public bool NewWindowForLocalLinks { get => throw null; set => throw null; } + public bool NoFollowLinks { get => throw null; set => throw null; } + public virtual bool OnGetImageSize(string url, bool TitledImage, out int width, out int height) => throw null; + public virtual void OnPrepareImage(MarkdownDeep.HtmlTag tag, bool TitledImage) => throw null; + public virtual void OnPrepareLink(MarkdownDeep.HtmlTag tag) => throw null; + public virtual string OnQualifyUrl(string url) => throw null; + public virtual void OnSectionFooter(System.Text.StringBuilder dest, int Index) => throw null; + public virtual void OnSectionHeader(System.Text.StringBuilder dest, int Index) => throw null; + public virtual void OnSectionHeadingSuffix(System.Text.StringBuilder dest, int Index) => throw null; + public System.Func PrepareImage; + public System.Func PrepareLink; + public System.Func QualifyUrl; + public bool SafeMode { get => throw null; set => throw null; } + public string SectionFooter { get => throw null; set => throw null; } + public string SectionHeader { get => throw null; set => throw null; } + public string SectionHeadingSuffix { get => throw null; set => throw null; } + public static System.Collections.Generic.List SplitSections(string markdown) => throw null; + public static System.Collections.Generic.List SplitUserSections(string markdown) => throw null; + public int SummaryLength { get => throw null; set => throw null; } + public string Transform(string str) => throw null; + public string Transform(string str, out System.Collections.Generic.Dictionary definitions) => throw null; + public string UrlBaseLocation { get => throw null; set => throw null; } + public string UrlRootLocation { get => throw null; set => throw null; } + public bool UserBreaks { get => throw null; set => throw null; } + } + + // Generated from `MarkdownDeep.MarkdownDeepTransformer` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MarkdownDeepTransformer : ServiceStack.IMarkdownTransformer + { + public MarkdownDeepTransformer() => throw null; + public string Transform(string markdown) => throw null; + } + + // Generated from `MarkdownDeep.StringScanner` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringScanner + { + public System.Char CharAtOffset(int offset) => throw null; + public bool DoesMatch(System.Char ch) => throw null; + public bool DoesMatch(int offset, System.Char ch) => throw null; + public bool DoesMatch(string str) => throw null; + public bool DoesMatchAny(System.Char[] chars) => throw null; + public bool DoesMatchAny(int offset, System.Char[] chars) => throw null; + public bool DoesMatchI(string str) => throw null; + public string Extract() => throw null; + public bool Find(System.Char ch) => throw null; + public bool Find(string find) => throw null; + public bool FindAny(System.Char[] chars) => throw null; + public bool FindI(string find) => throw null; + public static bool IsLineEnd(System.Char ch) => throw null; + public static bool IsLineSpace(System.Char ch) => throw null; + public void Mark() => throw null; + public void Reset(string str) => throw null; + public void Reset(string str, int pos) => throw null; + public void Reset(string str, int pos, int len) => throw null; + public bool SkipChar(System.Char ch) => throw null; + public bool SkipEol() => throw null; + public bool SkipFootnoteID(out string id) => throw null; + public void SkipForward(int characters) => throw null; + public bool SkipHtmlEntity(ref string entity) => throw null; + public bool SkipIdentifier(ref string identifier) => throw null; + public bool SkipLinespace() => throw null; + public bool SkipString(string str) => throw null; + public bool SkipStringI(string str) => throw null; + public void SkipToEof() => throw null; + public void SkipToEol() => throw null; + public void SkipToNextLine() => throw null; + public bool SkipWhitespace() => throw null; + public StringScanner() => throw null; + public StringScanner(string str) => throw null; + public StringScanner(string str, int pos) => throw null; + public StringScanner(string str, int pos, int len) => throw null; + public string Substring(int start) => throw null; + public string Substring(int start, int len) => throw null; + public bool bof { get => throw null; } + public System.Char current { get => throw null; } + public bool eof { get => throw null; } + public bool eol { get => throw null; } + public string input { get => throw null; } + public int position { get => throw null; set => throw null; } + public string remainder { get => throw null; } + } + +} +namespace ServiceStack +{ + // Generated from `ServiceStack.AddHeaderAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AddHeaderAttribute : ServiceStack.RequestFilterAttribute + { + public AddHeaderAttribute() => throw null; + public AddHeaderAttribute(System.Net.HttpStatusCode status, string statusDescription = default(string)) => throw null; + public AddHeaderAttribute(string name, string value) => throw null; + public string CacheControl { get => throw null; set => throw null; } + public string ContentDisposition { get => throw null; set => throw null; } + public string ContentEncoding { get => throw null; set => throw null; } + public string ContentLength { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public string DefaultContentType { get => throw null; set => throw null; } + public string ETag { get => throw null; set => throw null; } + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public string LastModified { get => throw null; set => throw null; } + public string Location { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string SetCookie { get => throw null; set => throw null; } + public System.Net.HttpStatusCode Status { get => throw null; set => throw null; } + public int? StatusCode { get => throw null; set => throw null; } + public string StatusDescription { get => throw null; set => throw null; } + public string Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminDashboard` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminDashboard : ServiceStack.IReturn, ServiceStack.IReturn + { + public AdminDashboard() => throw null; + } + + // Generated from `ServiceStack.AdminDashboardResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminDashboardResponse : ServiceStack.IHasResponseStatus + { + public AdminDashboardResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public ServiceStack.ServerStats ServerStats { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminDashboardServices` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminDashboardServices : ServiceStack.Service + { + public AdminDashboardServices() => throw null; + public object Any(ServiceStack.AdminDashboard request) => throw null; + } + + // Generated from `ServiceStack.AdminProfiling` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminProfiling : ServiceStack.IReturn, ServiceStack.IReturn + { + public AdminProfiling() => throw null; + public string EventType { get => throw null; set => throw null; } + public string OrderBy { get => throw null; set => throw null; } + public bool? Pending { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public int Skip { get => throw null; set => throw null; } + public string Source { get => throw null; set => throw null; } + public string Tag { get => throw null; set => throw null; } + public int? Take { get => throw null; set => throw null; } + public int? ThreadId { get => throw null; set => throw null; } + public string TraceId { get => throw null; set => throw null; } + public string UserAuthId { get => throw null; set => throw null; } + public bool? WithErrors { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminProfilingResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminProfilingResponse + { + public AdminProfilingResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + public int Total { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminProfilingService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminProfilingService : ServiceStack.Service + { + public AdminProfilingService() => throw null; + public System.Threading.Tasks.Task Any(ServiceStack.AdminProfiling request) => throw null; + } + + // Generated from `ServiceStack.AdminStatsUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AdminStatsUtils + { + public static System.Collections.Generic.Dictionary ToDictionary(this ServiceStack.Messaging.IMessageHandlerStats stats) => throw null; + } + + // Generated from `ServiceStack.AdminUi` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public class AdminUi + { + All, + Logging, + None, + Users, + Validation, +} + + // Generated from `ServiceStack.AdminUi` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum AdminUi + { + All, + Logging, + None, + Users, + Validation, + } + + // Generated from `ServiceStack.AlwaysFalseCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AlwaysFalseCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public AlwaysFalseCondition() => throw null; + public static ServiceStack.AlwaysFalseCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.AlwaysValidValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AlwaysValidValidator : ServiceStack.FluentValidation.Validators.NoopPropertyValidator + { + public AlwaysValidValidator() => throw null; + public override System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + } + + // Generated from `ServiceStack.ApiHandlers` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ApiHandlers + { + public static System.Func Csv(string apiPath) => throw null; + public static System.Func Generic(string apiPath, string contentType, ServiceStack.RequestAttributes requestAttributes, ServiceStack.Feature feature) => throw null; + public static System.Func Json(string apiPath) => throw null; + public static System.Func Jsv(string apiPath) => throw null; + public static System.Func Xml(string apiPath) => throw null; + } + + // Generated from `ServiceStack.ApiKeyAuthProviderExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ApiKeyAuthProviderExtensions + { + public static ServiceStack.Auth.IManageApiKeysAsync AssertManageApiKeysAsync(this ServiceStack.ServiceStackHost appHost, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public static ServiceStack.Auth.ApiKey GetApiKey(this ServiceStack.Web.IRequest req) => throw null; + } + + // Generated from `ServiceStack.ApiPages` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiPages + { + public ApiPages() => throw null; + public string PageName { get => throw null; set => throw null; } + public string PathInfo { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AppHostBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AppHostBase : ServiceStack.ServiceStackHost, ServiceStack.Configuration.IResolver, ServiceStack.IAppHost, ServiceStack.IAppHostNetCore, ServiceStack.IConfigureServices, ServiceStack.IRequireConfiguration + { + public Microsoft.AspNetCore.Builder.IApplicationBuilder App { get => throw null; } + protected AppHostBase(string serviceName, params System.Reflection.Assembly[] assembliesWithServices) : base(default(string), default(System.Reflection.Assembly[])) => throw null; + public System.IServiceProvider ApplicationServices { get => throw null; } + public System.Func BeforeNextMiddleware { get => throw null; set => throw null; } + public virtual void Bind(Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; + public static void BindHost(ServiceStack.ServiceStackHost appHost, Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; + public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } + public virtual void Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + public override void ConfigureLogging() => throw null; + protected override void Dispose(bool disposing) => throw null; + public static ServiceStack.Web.IRequest GetOrCreateRequest(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; + public static ServiceStack.Web.IRequest GetOrCreateRequest(Microsoft.AspNetCore.Http.IHttpContextAccessor httpContextAccessor) => throw null; + public override string GetWebRootPath() => throw null; + public Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get => throw null; } + public bool InjectRequestContext { get => throw null; set => throw null; } + public override string MapProjectPath(string relativePath) => throw null; + public System.Func> NetCoreHandler { get => throw null; set => throw null; } + public override void OnConfigLoad() => throw null; + public override string PathBase { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task ProcessRequest(Microsoft.AspNetCore.Http.HttpContext context, System.Func next) => throw null; + public static void RegisterLicenseFromAppSettings(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public override ServiceStack.Web.IRequest TryGetCurrentRequest() => throw null; + } + + // Generated from `ServiceStack.AppHostExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AppHostExtensions + { + public static System.Collections.Generic.List AddIfDebug(this System.Collections.Generic.List plugins, T plugin) where T : class, ServiceStack.IPlugin => throw null; + public static System.Collections.Generic.List AddIfNotExists(this System.Collections.Generic.List plugins, T plugin) where T : class, ServiceStack.IPlugin => throw null; + public static System.Collections.Generic.List AddIfNotExists(this System.Collections.Generic.List plugins, T plugin, System.Action configure) where T : class, ServiceStack.IPlugin => throw null; + public static void AddPluginsFromAssembly(this ServiceStack.IAppHost appHost, params System.Reflection.Assembly[] assembliesWithPlugins) => throw null; + public static T AssertPlugin(this ServiceStack.IAppHost appHost) where T : class, ServiceStack.IPlugin => throw null; + public static void ConfigureOperation(this ServiceStack.IAppHost appHost, System.Action configure) => throw null; + public static void ConfigureOperations(this ServiceStack.IAppHost appHost, System.Action configure) => throw null; + public static void ConfigureType(this ServiceStack.IAppHost appHost, System.Action configure) => throw null; + public static void ConfigureTypes(this ServiceStack.IAppHost appHost, System.Action configure) => throw null; + public static void ConfigureTypes(this ServiceStack.IAppHost appHost, System.Action configure, System.Predicate where) => throw null; + public static Funq.Container GetContainer(this ServiceStack.IAppHost appHost) => throw null; + public static T GetPlugin(this ServiceStack.IAppHost appHost) where T : class, ServiceStack.IPlugin => throw null; + public static bool HasMultiplePlugins(this ServiceStack.IAppHost appHost) where T : class, ServiceStack.IPlugin => throw null; + public static bool HasPlugin(this ServiceStack.IAppHost appHost) where T : class, ServiceStack.IPlugin => throw null; + public static string Localize(this string text, ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; + public static string LocalizeFmt(this string text, ServiceStack.Web.IRequest request, params object[] args) => throw null; + public static string LocalizeFmt(this string text, params object[] args) => throw null; + public static bool NotifyStartupException(this ServiceStack.IAppHost appHost, System.Exception ex) => throw null; + public static bool NotifyStartupException(this ServiceStack.IAppHost appHost, System.Exception ex, string target, string method) => throw null; + public static void RegisterRequestBinder(this ServiceStack.IAppHost appHost, System.Func binder) => throw null; + public static void RegisterService(this ServiceStack.IAppHost appHost, params string[] atRestPaths) => throw null; + public static void RegisterServices(this ServiceStack.IAppHost appHost, System.Collections.Generic.Dictionary serviceRoutes) => throw null; + public static System.Collections.Generic.Dictionary RemoveService(this System.Collections.Generic.Dictionary serviceRoutes) => throw null; + public static string ResolveStaticBaseUrl(this ServiceStack.IAppHost appHost) => throw null; + public static ServiceStack.IAppHost Start(this ServiceStack.IAppHost appHost, System.Collections.Generic.IEnumerable urlBases) => throw null; + } + + // Generated from `ServiceStack.AppUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AppUtils + { + public static T DbContextExec(this System.IServiceProvider services, System.Func dbResolver, System.Func fn) => throw null; + public static System.Collections.Generic.Dictionary GetIdentityUserById(this System.Data.IDbConnection db, string userId) => throw null; + public static System.Collections.Generic.Dictionary GetIdentityUserById(this System.Data.IDbConnection db, string userId, string sqlGetUser) => throw null; + public static T GetIdentityUserById(this System.Data.IDbConnection db, string userId) => throw null; + public static T GetIdentityUserById(this System.Data.IDbConnection db, string userId, string sqlGetUser) => throw null; + public static System.Collections.Generic.List GetIdentityUserRolesById(this System.Data.IDbConnection db, string userId) => throw null; + public static System.Collections.Generic.List GetIdentityUserRolesById(this System.Data.IDbConnection db, string userId, string sqlGetUserRoles) => throw null; + public static T NewScope(this System.IServiceProvider services, System.Func fn) => throw null; + public static System.Collections.Generic.Dictionary ToObjectDictionary(this System.Data.IDataReader reader, System.Func mapper = default(System.Func)) => throw null; + } + + // Generated from `ServiceStack.ApplyToUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ApplyToUtils + { + public static System.Collections.Generic.Dictionary ApplyToVerbs; + public static ServiceStack.ApplyTo HttpMethodAsApplyTo(this ServiceStack.Web.IRequest req) => throw null; + public static System.Collections.Generic.Dictionary VerbsApplyTo; + } + + // Generated from `ServiceStack.AsyncContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AsyncContext + { + public AsyncContext() => throw null; + public virtual System.Threading.Tasks.Task ContinueWith(System.Threading.Tasks.Task task, System.Action fn) => throw null; + public virtual System.Threading.Tasks.Task ContinueWith(System.Threading.Tasks.Task task, System.Action fn, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; + } + + // Generated from `ServiceStack.AuthFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthFeature : ServiceStack.IPlugin, ServiceStack.IPostInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public ServiceStack.AuthFeature AddAuthenticateAliasRoutes() => throw null; + public ServiceStack.MetaAuthProvider AdminAuthSecretInfo { get => throw null; set => throw null; } + public void AfterPluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public static void AllowAllRedirects(ServiceStack.Web.IRequest req, string redirect) => throw null; + public System.Func AllowGetAuthenticateRequests { get => throw null; set => throw null; } + public System.Collections.Generic.List AuthEvents { get => throw null; set => throw null; } + public AuthFeature(System.Action configure) => throw null; + public AuthFeature(System.Func sessionFactory, ServiceStack.Auth.IAuthProvider[] authProviders, string htmlRedirect = default(string)) => throw null; + public AuthFeature(ServiceStack.Auth.IAuthProvider authProvider) => throw null; + public AuthFeature(System.Collections.Generic.IEnumerable authProviders) => throw null; + public ServiceStack.Auth.IAuthProvider[] AuthProviders { get => throw null; } + public System.Func AuthResponseDecorator { get => throw null; set => throw null; } + public ServiceStack.Auth.IAuthSession AuthSecretSession { get => throw null; set => throw null; } + public bool CreateDigestAuthHashes { get => throw null; set => throw null; } + public static bool DefaultAllowGetAuthenticateRequests(ServiceStack.Web.IRequest req) => throw null; + public bool DeleteSessionCookiesOnLogout { get => throw null; set => throw null; } + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public bool GenerateNewSessionCookiesOnAuthentication { get => throw null; set => throw null; } + public string HtmlLogoutRedirect { get => throw null; set => throw null; } + public string HtmlRedirect { get => throw null; set => throw null; } + public string HtmlRedirectAccessDenied { get => throw null; set => throw null; } + public string HtmlRedirectLockout { get => throw null; set => throw null; } + public string HtmlRedirectLoginWith2Fa { get => throw null; set => throw null; } + public string HtmlRedirectReturnParam { get => throw null; set => throw null; } + public bool HtmlRedirectReturnPathOnly { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public bool IncludeAssignRoleServices { set => throw null; } + public bool IncludeAuthMetadataProvider { get => throw null; set => throw null; } + public bool IncludeDefaultLogin { get => throw null; set => throw null; } + public bool IncludeOAuthTokensInAuthenticateResponse { get => throw null; set => throw null; } + public bool IncludeRegistrationService { set => throw null; } + public bool IncludeRolesInAuthenticateResponse { get => throw null; set => throw null; } + public System.Func IsValidUsernameFn { get => throw null; set => throw null; } + public int? MaxLoginAttempts { get => throw null; set => throw null; } + public static void NoExternalRedirects(ServiceStack.Web.IRequest req, string redirect) => throw null; + public System.Collections.Generic.List> OnAfterInit { get => throw null; set => throw null; } + public System.Func OnAuthenticateValidate { get => throw null; set => throw null; } + public System.Collections.Generic.List> OnBeforeInit { get => throw null; set => throw null; } + public System.TimeSpan? PermanentSessionExpiry { get => throw null; set => throw null; } + public ServiceStack.ImagesHandler ProfileImages { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public void RegisterAuthProvider(ServiceStack.Auth.IAuthProvider authProvider) => throw null; + public void RegisterAuthProviders(System.Collections.Generic.IEnumerable providers) => throw null; + public System.Collections.Generic.List RegisterPlugins { get => throw null; set => throw null; } + public System.Func RegisterResponseDecorator { get => throw null; set => throw null; } + public ServiceStack.AuthFeature RemoveAuthenticateAliasRoutes() => throw null; + public bool SaveUserNamesInLowerCase { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + public System.TimeSpan? SessionExpiry { get => throw null; set => throw null; } + public System.Func SessionFactory { get => throw null; set => throw null; } + public System.Type SessionType { get => throw null; } + public System.Text.RegularExpressions.Regex ValidUserNameRegEx; + public ServiceStack.Auth.ValidateFn ValidateFn { get => throw null; set => throw null; } + public System.Action ValidateRedirectLinks { get => throw null; set => throw null; } + public bool ValidateUniqueEmails { get => throw null; set => throw null; } + public bool ValidateUniqueUserNames { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AuthFeatureAccessDeniedHttpHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthFeatureAccessDeniedHttpHandler : ServiceStack.Host.Handlers.ForbiddenHttpHandler + { + public AuthFeatureAccessDeniedHttpHandler(ServiceStack.AuthFeature feature) => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string operationName) => throw null; + } + + // Generated from `ServiceStack.AuthFeatureExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AuthFeatureExtensions + { + public static void DoHtmlRedirect(this ServiceStack.AuthFeature feature, string redirectUrl, ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, bool includeRedirectParam) => throw null; + public static string GetHtmlRedirect(this ServiceStack.AuthFeature feature) => throw null; + public static string GetHtmlRedirectUrl(this ServiceStack.AuthFeature feature, ServiceStack.Web.IRequest req) => throw null; + public static string GetHtmlRedirectUrl(this ServiceStack.AuthFeature feature, ServiceStack.Web.IRequest req, string redirectUrl, bool includeRedirectParam) => throw null; + public static System.Threading.Tasks.Task HandleFailedAuth(this ServiceStack.Auth.IAuthProvider authProvider, ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public static bool IsValidUsername(this ServiceStack.AuthFeature feature, string userName) => throw null; + public static ServiceStack.Web.IHttpResult SuccessAuthResult(this ServiceStack.Web.IHttpResult result, ServiceStack.IServiceBase service, ServiceStack.Auth.IAuthSession session) => throw null; + public static System.Threading.Tasks.Task SuccessAuthResultAsync(this ServiceStack.Web.IHttpResult result, ServiceStack.IServiceBase service, ServiceStack.Auth.IAuthSession session) => throw null; + public static System.Text.RegularExpressions.Regex ValidUserNameRegEx; + } + + // Generated from `ServiceStack.AuthFeatureUnauthorizedHttpHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthFeatureUnauthorizedHttpHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public AuthFeatureUnauthorizedHttpHandler(ServiceStack.AuthFeature feature) => throw null; + public override bool IsReusable { get => throw null; } + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string operationName) => throw null; + public override bool RunAsAsync() => throw null; + } + + // Generated from `ServiceStack.AuthSessionExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AuthSessionExtensions + { + public static void AddAuthToken(this ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public static System.Collections.Generic.List GetAuthTokens(this ServiceStack.Auth.IAuthSession session) => throw null; + public static ServiceStack.Auth.IAuthTokens GetAuthTokens(this ServiceStack.Auth.IAuthSession session, string provider) => throw null; + public static string GetProfileUrl(this ServiceStack.Auth.IAuthSession authSession, string defaultUrl = default(string)) => throw null; + public static string GetSafeDisplayName(this ServiceStack.Auth.IAuthSession authSession) => throw null; + public static System.Threading.Tasks.Task HasAllPermissionsAsync(this ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredPermissions, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task HasAllRolesAsync(this ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredRoles, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task HasAnyPermissionsAsync(this ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection permissions, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task HasAnyRolesAsync(this ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection roles, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void UpdateFromUserAuthRepo(this ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthRepository authRepo = default(ServiceStack.Auth.IAuthRepository)) => throw null; + public static System.Threading.Tasks.Task UpdateFromUserAuthRepoAsync(this ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthRepositoryAsync authRepo = default(ServiceStack.Auth.IAuthRepositoryAsync)) => throw null; + } + + // Generated from `ServiceStack.AuthUserSession` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthUserSession : ServiceStack.Auth.IAuthSession, ServiceStack.Auth.IAuthSessionExtended, ServiceStack.IMeta + { + public string Address { get => throw null; set => throw null; } + public string Address2 { get => throw null; set => throw null; } + public System.Collections.Generic.List Audiences { get => throw null; set => throw null; } + public string AuthProvider { get => throw null; set => throw null; } + public AuthUserSession() => throw null; + public System.DateTime? BirthDate { get => throw null; set => throw null; } + public string BirthDateRaw { get => throw null; set => throw null; } + public string City { get => throw null; set => throw null; } + public string Company { get => throw null; set => throw null; } + public string Country { get => throw null; set => throw null; } + public System.DateTime CreatedAt { get => throw null; set => throw null; } + public string Culture { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public string Dns { get => throw null; set => throw null; } + public string Email { get => throw null; set => throw null; } + public bool? EmailConfirmed { get => throw null; set => throw null; } + public string FacebookUserId { get => throw null; set => throw null; } + public string FacebookUserName { get => throw null; set => throw null; } + public string FirstName { get => throw null; set => throw null; } + public bool FromToken { get => throw null; set => throw null; } + public string FullName { get => throw null; set => throw null; } + public string Gender { get => throw null; set => throw null; } + public virtual System.Collections.Generic.ICollection GetPermissions(ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public virtual System.Threading.Tasks.Task> GetPermissionsAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Collections.Generic.ICollection GetRoles(ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public virtual System.Threading.Tasks.Task> GetRolesAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task HasAllPermissionsAsync(System.Collections.Generic.ICollection requiredPermissions, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task HasAllRolesAsync(System.Collections.Generic.ICollection requiredRoles, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task HasAnyPermissionsAsync(System.Collections.Generic.ICollection permissions, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task HasAnyRolesAsync(System.Collections.Generic.ICollection roles, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual bool HasPermission(string permission, ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public virtual System.Threading.Tasks.Task HasPermissionAsync(string permission, ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual bool HasRole(string role, ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public virtual System.Threading.Tasks.Task HasRoleAsync(string role, ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string Hash { get => throw null; set => throw null; } + public string HomePhone { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public bool IsAuthenticated { get => throw null; set => throw null; } + public virtual bool IsAuthorized(string provider) => throw null; + public string Language { get => throw null; set => throw null; } + public System.DateTime LastModified { get => throw null; set => throw null; } + public string LastName { get => throw null; set => throw null; } + public string MailAddress { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string MobilePhone { get => throw null; set => throw null; } + public string Nickname { get => throw null; set => throw null; } + public virtual void OnAuthenticated(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public virtual System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void OnCreated(ServiceStack.Web.IRequest httpReq) => throw null; + public virtual void OnLoad(ServiceStack.Web.IRequest httpReq) => throw null; + public virtual void OnLogout(ServiceStack.IServiceBase authService) => throw null; + public virtual System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase service) => throw null; + public virtual System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public string PhoneNumber { get => throw null; set => throw null; } + public bool? PhoneNumberConfirmed { get => throw null; set => throw null; } + public string PostalCode { get => throw null; set => throw null; } + public string PrimaryEmail { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public System.Collections.Generic.List ProviderOAuthAccess { get => throw null; set => throw null; } + public string ReferrerUrl { get => throw null; set => throw null; } + public string RequestTokenSecret { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public string Rsa { get => throw null; set => throw null; } + public System.Collections.Generic.List Scopes { get => throw null; set => throw null; } + public string SecurityStamp { get => throw null; set => throw null; } + public string Sequence { get => throw null; set => throw null; } + public string Sid { get => throw null; set => throw null; } + public string State { get => throw null; set => throw null; } + public System.Int64 Tag { get => throw null; set => throw null; } + public string TimeZone { get => throw null; set => throw null; } + public string TwitterScreenName { get => throw null; set => throw null; } + public string TwitterUserId { get => throw null; set => throw null; } + public bool? TwoFactorEnabled { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } + public string UserAuthId { get => throw null; set => throw null; } + public string UserAuthName { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + public virtual ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public virtual System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string Webpage { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AuthenticateAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthenticateAttribute : ServiceStack.RequestFilterAsyncAttribute + { + public static void AssertAuthenticated(ServiceStack.Web.IRequest req, object requestDto = default(object), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthProvider[] authProviders = default(ServiceStack.Auth.IAuthProvider[])) => throw null; + public static System.Threading.Tasks.Task AssertAuthenticatedAsync(ServiceStack.Web.IRequest req, object requestDto = default(object), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthProvider[] authProviders = default(ServiceStack.Auth.IAuthProvider[])) => throw null; + public static bool Authenticate(ServiceStack.Web.IRequest req, object requestDto = default(object), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthProvider[] authProviders = default(ServiceStack.Auth.IAuthProvider[])) => throw null; + public static System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.Web.IRequest req, object requestDto = default(object), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthProvider[] authProviders = default(ServiceStack.Auth.IAuthProvider[])) => throw null; + public AuthenticateAttribute() => throw null; + public AuthenticateAttribute(ServiceStack.ApplyTo applyTo) => throw null; + public AuthenticateAttribute(ServiceStack.ApplyTo applyTo, string provider) => throw null; + public AuthenticateAttribute(string provider) => throw null; + protected bool Equals(ServiceStack.AuthenticateAttribute other) => throw null; + public override bool Equals(object obj) => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public override int GetHashCode() => throw null; + protected virtual System.Threading.Tasks.Task HandleShortCircuitedErrors(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto, System.Net.HttpStatusCode statusCode, string statusDescription = default(string)) => throw null; + public string HtmlRedirect { get => throw null; set => throw null; } + public string Provider { get => throw null; set => throw null; } + public static void ThrowInvalidPermission(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public static void ThrowInvalidRole(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public static void ThrowNotAuthenticated(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + } + + // Generated from `ServiceStack.AuthenticationHeaderType` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum AuthenticationHeaderType + { + Basic, + Digest, + } + + // Generated from `ServiceStack.AutoCrudOperation` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AutoCrudOperation + { + public static System.Collections.Generic.HashSet All { get => throw null; } + public static System.Collections.Generic.HashSet ApiBaseTypes { get => throw null; } + public static string[] ApiCrudInterfaces { get => throw null; } + public static System.Collections.Generic.HashSet ApiInterfaces { get => throw null; } + public static string[] ApiMarkerInterfaces { get => throw null; } + public static string[] ApiQueryBaseTypes { get => throw null; } + public static string[] ApiReturnInterfaces { get => throw null; } + public static ServiceStack.AutoQueryDtoType AssertAutoCrudDtoType(System.Type requestType) => throw null; + public const string Create = default; + public static System.Collections.Generic.List CrudInterfaceMetadataNames(System.Collections.Generic.List operations = default(System.Collections.Generic.List)) => throw null; + public static string CrudModel(this ServiceStack.MetadataType type) => throw null; + public static System.Collections.Generic.List Default { get => throw null; } + public const string Delete = default; + public static string FirstGenericArg(this ServiceStack.MetadataTypeName type) => throw null; + public static ServiceStack.AutoQueryDtoType? GetAutoCrudDtoType(System.Type requestType) => throw null; + public static ServiceStack.AutoQueryDtoType? GetAutoQueryDtoType(System.Type requestType) => throw null; + public static ServiceStack.AutoQueryDtoType? GetAutoQueryGenericDefTypes(System.Type requestType, System.Type opType) => throw null; + public static System.Type GetModelType(System.Type requestType) => throw null; + public static System.Type GetViewModelType(System.Type requestType, System.Type responseType) => throw null; + public static bool HasNamedConnection(this ServiceStack.MetadataType type, string name) => throw null; + public static bool IsAutoQuery(this ServiceStack.MetadataType type) => throw null; + public static bool IsAutoQuery(this ServiceStack.MetadataType type, string model) => throw null; + public static bool IsAutoQueryData(this ServiceStack.MetadataType type) => throw null; + public static bool IsCrud(this ServiceStack.MetadataOperationType op) => throw null; + public static bool IsCrud(this ServiceStack.MetadataType type) => throw null; + public static bool IsCrud(this ServiceStack.MetadataType type, string model) => throw null; + public static bool IsCrudCreate(this ServiceStack.MetadataType type) => throw null; + public static bool IsCrudCreate(this ServiceStack.MetadataType type, string model) => throw null; + public static bool IsCrudCreateOrUpdate(this ServiceStack.MetadataType type) => throw null; + public static bool IsCrudCreateOrUpdate(this ServiceStack.MetadataType type, string model) => throw null; + public static bool IsCrudDelete(this ServiceStack.MetadataType type) => throw null; + public static bool IsCrudDelete(this ServiceStack.MetadataType type, string model) => throw null; + public static bool IsCrudRead(this ServiceStack.MetadataOperationType op) => throw null; + public static bool IsCrudRead(this ServiceStack.MetadataType type) => throw null; + public static bool IsCrudRead(this ServiceStack.MetadataType type, string model) => throw null; + public static bool IsCrudUpdate(this ServiceStack.MetadataType type) => throw null; + public static bool IsCrudUpdate(this ServiceStack.MetadataType type, string model) => throw null; + public static bool IsCrudWrite(this ServiceStack.MetadataOperationType op) => throw null; + public static bool IsCrudWrite(this ServiceStack.MetadataType type) => throw null; + public static bool IsCrudWrite(this ServiceStack.MetadataType type, string model) => throw null; + public static bool IsOperation(string operation) => throw null; + public static bool IsRequestDto(this ServiceStack.MetadataType type) => throw null; + public const string Patch = default; + public const string Query = default; + public static System.Collections.Generic.List Read { get => throw null; } + public static string[] ReadInterfaces { get => throw null; } + public const string Save = default; + public static string ToHttpMethod(System.Type requestType) => throw null; + public static string ToHttpMethod(string operation) => throw null; + public static string ToOperation(System.Type genericDef) => throw null; + public const string Update = default; + public static System.Collections.Generic.List Write { get => throw null; } + public static string[] WriteInterfaces { get => throw null; } + } + + // Generated from `ServiceStack.AutoQueryData` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryData : ServiceStack.IAutoQueryData, ServiceStack.IAutoQueryDataOptions + { + public AutoQueryData() => throw null; + public ServiceStack.QueryDataContext CreateContext(ServiceStack.IQueryData requestDto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req) => throw null; + public ServiceStack.IDataQuery CreateQuery(ServiceStack.IQueryData requestDto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; + public ServiceStack.DataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; + public ServiceStack.DataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; + public bool EnableUntypedQueries { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary EndsWithConventions { get => throw null; set => throw null; } + public ServiceStack.IQueryResponse Execute(ServiceStack.IQueryData request, ServiceStack.IDataQuery q, ServiceStack.IQueryDataSource db) => throw null; + public ServiceStack.QueryResponse Execute(ServiceStack.IQueryData dto, ServiceStack.DataQuery q, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; + public ServiceStack.QueryResponse Execute(ServiceStack.IQueryData dto, ServiceStack.DataQuery q, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; + public ServiceStack.IDataQuery Filter(ServiceStack.IDataQuery q, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req) => throw null; + public ServiceStack.DataQuery Filter(ServiceStack.IDataQuery q, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req) => throw null; + public ServiceStack.IQueryDataSource GetDb(ServiceStack.QueryDataContext ctx, System.Type type) => throw null; + public ServiceStack.IQueryDataSource GetDb(ServiceStack.QueryDataContext ctx) => throw null; + public System.Type GetFromType(System.Type requestDtoType) => throw null; + public ServiceStack.ITypedQueryData GetTypedQuery(System.Type requestDtoType, System.Type fromType) => throw null; + public ServiceStack.QueryDataFilterDelegate GlobalQueryFilter { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet IgnoreProperties { get => throw null; set => throw null; } + public bool IncludeTotal { get => throw null; set => throw null; } + public int? MaxLimit { get => throw null; set => throw null; } + public bool OrderByPrimaryKeyOnLimitQuery { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary QueryFilters { get => throw null; set => throw null; } + public string RequiredRoleForRawSqlFilters { get => throw null; set => throw null; } + public ServiceStack.QueryResponse ResponseFilter(ServiceStack.IQueryDataSource db, ServiceStack.QueryResponse response, ServiceStack.DataQuery expr, ServiceStack.IQueryData dto) => throw null; + public System.Collections.Generic.List> ResponseFilters { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary StartsWithConventions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoQueryDataExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AutoQueryDataExtensions + { + public static void And(this ServiceStack.IDataQuery q, System.Linq.Expressions.Expression> fieldExpr, ServiceStack.QueryCondition condition, object value) => throw null; + public static ServiceStack.DataQuery CreateQuery(this ServiceStack.IAutoQueryData autoQuery, ServiceStack.IQueryData model, ServiceStack.Web.IRequest request, ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; + public static ServiceStack.DataQuery CreateQuery(this ServiceStack.IAutoQueryData autoQuery, ServiceStack.IQueryData model, ServiceStack.Web.IRequest request, ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; + public static ServiceStack.IQueryDataSource MemorySource(this ServiceStack.QueryDataContext ctx, System.Func> sourceFn, ServiceStack.Caching.ICacheClient cache, System.TimeSpan? expiresIn = default(System.TimeSpan?), string cacheKey = default(string)) => throw null; + public static ServiceStack.IQueryDataSource MemorySource(this ServiceStack.QueryDataContext ctx, System.Collections.Generic.IEnumerable source) => throw null; + public static void Or(this ServiceStack.IDataQuery q, System.Linq.Expressions.Expression> fieldExpr, ServiceStack.QueryCondition condition, object value) => throw null; + public static ServiceStack.QueryDataField ToField(this ServiceStack.QueryDataFieldAttribute attr, System.Reflection.PropertyInfo pi, ServiceStack.AutoQueryDataFeature feature) => throw null; + public static T WithAudit(this T row, ServiceStack.Web.IRequest req, System.DateTime? date = default(System.DateTime?)) where T : ServiceStack.AuditBase => throw null; + public static T WithAudit(this T row, string by, System.DateTime? date = default(System.DateTime?)) where T : ServiceStack.AuditBase => throw null; + } + + // Generated from `ServiceStack.AutoQueryDataFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryDataFeature : ServiceStack.IPlugin, ServiceStack.IPostInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public ServiceStack.AutoQueryDataFeature AddDataSource(System.Type type, System.Func dataSourceFactory) => throw null; + public ServiceStack.AutoQueryDataFeature AddDataSource(System.Func> dataSourceFactory) => throw null; + public ServiceStack.AutoQueryDataFeature AddDataSource(System.Func dataSourceFactory) => throw null; + public void AfterPluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public AutoQueryDataFeature() => throw null; + public System.Type AutoQueryServiceBaseType { get => throw null; set => throw null; } + public System.Collections.Generic.List Conditions; + public System.Collections.Generic.Dictionary ConditionsAliases; + public System.Collections.Concurrent.ConcurrentDictionary> DataSources { get => throw null; set => throw null; } + public bool EnableAutoQueryViewer { get => throw null; set => throw null; } + public bool EnableUntypedQueries { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary EndsWithConventions; + public System.Action GenerateServiceFilter { get => throw null; set => throw null; } + public System.Func GetDataSource(System.Type type) => throw null; + public ServiceStack.QueryDataFilterDelegate GlobalQueryFilter { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet IgnoreProperties { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ImplicitConventions; + public void IncludeAggregates(ServiceStack.QueryDataFilterContext ctx) => throw null; + public bool IncludeTotal { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet LoadFromAssemblies { get => throw null; set => throw null; } + public int? MaxLimit { get => throw null; set => throw null; } + public bool OrderByPrimaryKeyOnPagedQuery { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary QueryFilters { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public ServiceStack.AutoQueryDataFeature RegisterQueryFilter(System.Action filterFn) => throw null; + public System.Collections.Generic.List> ResponseFilters { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary StartsWithConventions; + } + + // Generated from `ServiceStack.AutoQueryDataServiceBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AutoQueryDataServiceBase : ServiceStack.Service + { + public ServiceStack.IAutoQueryData AutoQuery { get => throw null; set => throw null; } + protected AutoQueryDataServiceBase() => throw null; + public virtual object Exec(ServiceStack.IQueryData dto) => throw null; + public virtual object Exec(ServiceStack.IQueryData dto) => throw null; + } + + // Generated from `ServiceStack.AutoQueryDataServiceSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AutoQueryDataServiceSource + { + public static System.Collections.Generic.List GetResults(object response) => throw null; + public static System.Collections.Generic.IEnumerable GetResults(object response) => throw null; + public static ServiceStack.MemoryDataSource ServiceSource(this ServiceStack.QueryDataContext ctx, object requestDto) => throw null; + public static ServiceStack.QueryDataSource ServiceSource(this ServiceStack.QueryDataContext ctx, object requestDto, ServiceStack.Caching.ICacheClient cache, System.TimeSpan? expiresIn = default(System.TimeSpan?), string cacheKey = default(string)) => throw null; + } + + // Generated from `ServiceStack.AutoQueryDtoType` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct AutoQueryDtoType + { + // Stub generator skipped constructor + public AutoQueryDtoType(System.Type genericType, System.Type genericDefType) => throw null; + public System.Type GenericDefType { get => throw null; } + public System.Type GenericType { get => throw null; } + public bool IsRead { get => throw null; } + public bool IsWrite { get => throw null; } + public System.Type ModelIntoType { get => throw null; } + public System.Type ModelType { get => throw null; } + public string Operation { get => throw null; } + } + + // Generated from `ServiceStack.AutoQueryMetadata` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryMetadata : ServiceStack.IReturn, ServiceStack.IReturn + { + public AutoQueryMetadata() => throw null; + } + + // Generated from `ServiceStack.AutoQueryMetadataFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryMetadataFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public AutoQueryMetadataFeature() => throw null; + public ServiceStack.AutoQueryViewerConfig AutoQueryViewerConfig { get => throw null; set => throw null; } + public System.Collections.Generic.List ExportTypes { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public int? MaxLimit { get => throw null; set => throw null; } + public System.Action MetadataFilter { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.AutoQueryMetadataResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryMetadataResponse : ServiceStack.IMeta + { + public AutoQueryMetadataResponse() => throw null; + public ServiceStack.AutoQueryViewerConfig Config { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Operations { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Types { get => throw null; set => throw null; } + public ServiceStack.AutoQueryViewerUserInfo UserInfo { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoQueryMetadataService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryMetadataService : ServiceStack.Service + { + public System.Threading.Tasks.Task AnyAsync(ServiceStack.AutoQueryMetadata request) => throw null; + public AutoQueryMetadataService() => throw null; + public ServiceStack.NativeTypes.INativeTypesMetadata NativeTypesMetadata { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoQueryOperation` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryOperation : ServiceStack.IMeta + { + public AutoQueryOperation() => throw null; + public string From { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Request { get => throw null; set => throw null; } + public System.Collections.Generic.List Routes { get => throw null; set => throw null; } + public string To { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoQueryViewerConfig` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryViewerConfig : ServiceStack.AppInfo + { + public AutoQueryViewerConfig() => throw null; + public string DefaultSearchField { get => throw null; set => throw null; } + public string DefaultSearchText { get => throw null; set => throw null; } + public string DefaultSearchType { get => throw null; set => throw null; } + public string[] Formats { get => throw null; set => throw null; } + public System.Collections.Generic.List ImplicitConventions { get => throw null; set => throw null; } + public bool IsPublic { get => throw null; set => throw null; } + public int? MaxLimit { get => throw null; set => throw null; } + public bool OnlyShowAnnotatedServices { get => throw null; set => throw null; } + public string ServiceBaseUrl { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoQueryViewerUserInfo` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryViewerUserInfo : ServiceStack.IMeta + { + public AutoQueryViewerUserInfo() => throw null; + public bool IsAuthenticated { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public int QueryCount { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.BootstrapScripts` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BootstrapScripts : ServiceStack.Script.ScriptMethods + { + public BootstrapScripts() => throw null; + public ServiceStack.IRawString ValidationSuccess(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; + public ServiceStack.IRawString ValidationSuccess(ServiceStack.Script.ScriptScopeContext scope, string message, System.Collections.Generic.Dictionary divAttrs) => throw null; + public ServiceStack.IRawString formControl(ServiceStack.Script.ScriptScopeContext scope, object inputAttrs, string tagName, object inputOptions) => throw null; + public ServiceStack.IRawString formInput(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; + public ServiceStack.IRawString formInput(ServiceStack.Script.ScriptScopeContext scope, object inputAttrs, object inputOptions) => throw null; + public ServiceStack.IRawString formSelect(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; + public ServiceStack.IRawString formSelect(ServiceStack.Script.ScriptScopeContext scope, object inputAttrs, object inputOptions) => throw null; + public ServiceStack.IRawString formTextarea(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; + public ServiceStack.IRawString formTextarea(ServiceStack.Script.ScriptScopeContext scope, object inputAttrs, object inputOptions) => throw null; + public ServiceStack.IRawString nav(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.IRawString nav(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems) => throw null; + public ServiceStack.IRawString nav(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems, System.Collections.Generic.Dictionary options) => throw null; + public ServiceStack.IRawString navButtonGroup(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.IRawString navButtonGroup(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems) => throw null; + public ServiceStack.IRawString navButtonGroup(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems, System.Collections.Generic.Dictionary options) => throw null; + public ServiceStack.IRawString navLink(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.NavItem navItem) => throw null; + public ServiceStack.IRawString navLink(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.NavItem navItem, System.Collections.Generic.Dictionary options) => throw null; + public ServiceStack.IRawString navbar(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.IRawString navbar(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems) => throw null; + public ServiceStack.IRawString navbar(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems, System.Collections.Generic.Dictionary options) => throw null; + public ServiceStack.IRawString validationSummary(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.IRawString validationSummary(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable exceptFields) => throw null; + public ServiceStack.IRawString validationSummary(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable exceptFields, object htmlAttrs) => throw null; + } + + // Generated from `ServiceStack.CacheClientExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CacheClientExtensions + { + // Generated from `ServiceStack.CacheClientExtensions+ValidCache` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct ValidCache + { + public bool IsValid { get => throw null; } + public System.DateTime LastModified { get => throw null; } + public static ServiceStack.CacheClientExtensions.ValidCache NotValid; + // Stub generator skipped constructor + public ValidCache(bool isValid, System.DateTime lastModified) => throw null; + } + + + public static object Cache(this ServiceStack.Caching.ICacheClient cache, string cacheKey, object responseDto, ServiceStack.Web.IRequest req, System.TimeSpan? expireCacheIn = default(System.TimeSpan?)) => throw null; + public static System.Threading.Tasks.Task CacheAsync(this ServiceStack.Caching.ICacheClientAsync cache, string cacheKey, object responseDto, ServiceStack.Web.IRequest req, System.TimeSpan? expireCacheIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void ClearCaches(this ServiceStack.Caching.ICacheClient cache, params string[] cacheKeys) => throw null; + public static System.Threading.Tasks.Task ClearCachesAsync(this ServiceStack.Caching.ICacheClientAsync cache, string[] cacheKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.IEnumerable GetAllKeys(this ServiceStack.Caching.ICacheClient cache) => throw null; + public static System.Collections.Generic.IAsyncEnumerable GetAllKeysAsync(this ServiceStack.Caching.ICacheClientAsync cache) => throw null; + public static string GetCacheKeyForCompressed(string cacheKeySerialized, string compressionType) => throw null; + public static string GetCacheKeyForSerialized(string cacheKey, string mimeType, string modifiers) => throw null; + public static System.DateTime? GetDate(this ServiceStack.Web.IRequest req) => throw null; + public static System.DateTime? GetIfModifiedSince(this ServiceStack.Web.IRequest req) => throw null; + public static System.Collections.Generic.IEnumerable GetKeysByPattern(this ServiceStack.Caching.ICacheClient cache, string pattern) => throw null; + public static System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(this ServiceStack.Caching.ICacheClientAsync cache, string pattern) => throw null; + public static System.Collections.Generic.IEnumerable GetKeysStartingWith(this ServiceStack.Caching.ICacheClient cache, string prefix) => throw null; + public static System.Collections.Generic.IAsyncEnumerable GetKeysStartingWithAsync(this ServiceStack.Caching.ICacheClientAsync cache, string prefix) => throw null; + public static T GetOrCreate(this ServiceStack.Caching.ICacheClient cache, string key, System.Func createFn) => throw null; + public static T GetOrCreate(this ServiceStack.Caching.ICacheClient cache, string key, System.TimeSpan expiresIn, System.Func createFn) => throw null; + public static System.Threading.Tasks.Task GetOrCreateAsync(this ServiceStack.Caching.ICacheClientAsync cache, string key, System.Func> createFn) => throw null; + public static System.Threading.Tasks.Task GetOrCreateAsync(this ServiceStack.Caching.ICacheClientAsync cache, string key, System.TimeSpan expiresIn, System.Func> createFn) => throw null; + public static System.TimeSpan? GetTimeToLive(this ServiceStack.Caching.ICacheClient cache, string key) => throw null; + public static bool HasValidCache(this ServiceStack.Caching.ICacheClient cache, ServiceStack.Web.IRequest req, string cacheKey, System.DateTime? checkLastModified, out System.DateTime? lastModified) => throw null; + public static System.Threading.Tasks.Task HasValidCacheAsync(this ServiceStack.Caching.ICacheClientAsync cache, ServiceStack.Web.IRequest req, string cacheKey, System.DateTime? checkLastModified, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void RemoveByPattern(this ServiceStack.Caching.ICacheClient cacheClient, string pattern) => throw null; + public static System.Threading.Tasks.Task RemoveByPatternAsync(this ServiceStack.Caching.ICacheClientAsync cacheClient, string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void RemoveByRegex(this ServiceStack.Caching.ICacheClient cacheClient, string regex) => throw null; + public static System.Threading.Tasks.Task RemoveByRegexAsync(this ServiceStack.Caching.ICacheClientAsync cacheClient, string regex) => throw null; + public static object ResolveFromCache(this ServiceStack.Caching.ICacheClient cache, string cacheKey, ServiceStack.Web.IRequest req) => throw null; + public static System.Threading.Tasks.Task ResolveFromCacheAsync(this ServiceStack.Caching.ICacheClientAsync cache, string cacheKey, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void Set(this ServiceStack.Caching.ICacheClient cache, string cacheKey, T value, System.TimeSpan? expireCacheIn) => throw null; + public static System.Threading.Tasks.Task SetAsync(this ServiceStack.Caching.ICacheClientAsync cache, string cacheKey, T value, System.TimeSpan? expireCacheIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.CacheControl` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum CacheControl + { + MustRevalidate, + NoCache, + NoStore, + NoTransform, + None, + Private, + ProxyRevalidate, + Public, + } + + // Generated from `ServiceStack.CacheInfo` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CacheInfo + { + public System.TimeSpan? Age { get => throw null; set => throw null; } + public ServiceStack.CacheControl CacheControl { get => throw null; set => throw null; } + public CacheInfo() => throw null; + public string CacheKey { get => throw null; } + public string ETag { get => throw null; set => throw null; } + public System.TimeSpan? ExpiresIn { get => throw null; set => throw null; } + public string KeyBase { get => throw null; set => throw null; } + public string KeyModifiers { get => throw null; set => throw null; } + public System.DateTime? LastModified { get => throw null; set => throw null; } + public bool LocalCache { get => throw null; set => throw null; } + public System.TimeSpan? MaxAge { get => throw null; set => throw null; } + public bool NoCompression { get => throw null; set => throw null; } + public bool VaryByUser { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.CacheInfoExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CacheInfoExtensions + { + public static ServiceStack.CacheInfo ToCacheInfo(this ServiceStack.HttpResult httpResult) => throw null; + } + + // Generated from `ServiceStack.CacheResponseAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CacheResponseAttribute : ServiceStack.RequestFilterAsyncAttribute + { + public ServiceStack.CacheControl CacheControl { get => throw null; set => throw null; } + public CacheResponseAttribute() => throw null; + public int Duration { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public bool LocalCache { get => throw null; set => throw null; } + public int MaxAge { get => throw null; set => throw null; } + public bool NoCompression { get => throw null; set => throw null; } + public string[] VaryByHeaders { get => throw null; set => throw null; } + public string[] VaryByRoles { get => throw null; set => throw null; } + public bool VaryByUser { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.CacheResponseExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CacheResponseExtensions + { + public static System.Threading.Tasks.Task HandleValidCache(this ServiceStack.Web.IRequest req, ServiceStack.CacheInfo cacheInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string LastModifiedKey(this ServiceStack.CacheInfo cacheInfo) => throw null; + } + + // Generated from `ServiceStack.CancellableRequestService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CancellableRequestService : ServiceStack.Service + { + public object Any(ServiceStack.CancelRequest request) => throw null; + public CancellableRequestService() => throw null; + } + + // Generated from `ServiceStack.CancellableRequestsExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CancellableRequestsExtensions + { + public static ServiceStack.ICancellableRequest CreateCancellableRequest(this ServiceStack.Web.IRequest req) => throw null; + public static ServiceStack.ICancellableRequest GetCancellableRequest(this ServiceStack.Web.IRequest req, string tag) => throw null; + } + + // Generated from `ServiceStack.CancellableRequestsFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CancellableRequestsFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string AtPath { get => throw null; set => throw null; } + public CancellableRequestsFeature() => throw null; + public string Id { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.CaseInsensitiveEqualCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CaseInsensitiveEqualCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public CaseInsensitiveEqualCondition() => throw null; + public static ServiceStack.CaseInsensitiveEqualCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.CaseInsensitiveInCollectionCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CaseInsensitiveInCollectionCondition : ServiceStack.QueryCondition, ServiceStack.IQueryMultiple + { + public override string Alias { get => throw null; } + public CaseInsensitiveInCollectionCondition() => throw null; + public static ServiceStack.CaseInsensitiveInCollectionCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.ClientCanSwapTemplatesAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ClientCanSwapTemplatesAttribute : ServiceStack.RequestFilterAttribute + { + public ClientCanSwapTemplatesAttribute() => throw null; + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + } + + // Generated from `ServiceStack.CompareTypeUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CompareTypeUtils + { + public static object Add(object a, object b) => throw null; + public static object Aggregate(System.Collections.IEnumerable source, System.Func fn, object seed = default(object)) => throw null; + public static double? CoerceDouble(object o) => throw null; + public static System.Int64? CoerceLong(object o) => throw null; + public static string CoerceString(object o) => throw null; + public static int CompareTo(object a, object b) => throw null; + public static object Max(object a, object b) => throw null; + public static object Min(object a, object b) => throw null; + public static object Sum(System.Collections.IEnumerable values) => throw null; + } + + // Generated from `ServiceStack.CompressResponseAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CompressResponseAttribute : ServiceStack.ResponseFilterAsyncAttribute + { + public CompressResponseAttribute() => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; + } + + // Generated from `ServiceStack.CompressedFileResult` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CompressedFileResult : ServiceStack.Web.IHasOptions, ServiceStack.Web.IStreamWriterAsync + { + public const int Adler32ChecksumLength = default; + public CompressedFileResult(string filePath) => throw null; + public CompressedFileResult(string filePath, string compressionType) => throw null; + public CompressedFileResult(string filePath, string compressionType, string contentMimeType) => throw null; + public const string DefaultContentType = default; + public string FilePath { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Options { get => throw null; } + public System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.CompressedResult` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CompressedResult : ServiceStack.Web.IHasOptions, ServiceStack.Web.IHttpResult, ServiceStack.Web.IStreamWriterAsync + { + public CompressedResult(System.Byte[] contents) => throw null; + public CompressedResult(System.Byte[] contents, string compressionType) => throw null; + public CompressedResult(System.Byte[] contents, string compressionType, string contentMimeType) => throw null; + public string ContentType { get => throw null; set => throw null; } + public System.Byte[] Contents { get => throw null; } + public System.Collections.Generic.List Cookies { get => throw null; } + public const string DefaultContentType = default; + public System.Collections.Generic.Dictionary Headers { get => throw null; } + public System.DateTime? LastModified { set => throw null; } + public System.Collections.Generic.IDictionary Options { get => throw null; } + public int PaddingLength { get => throw null; set => throw null; } + public ServiceStack.Web.IRequest RequestContext { get => throw null; set => throw null; } + public object Response { get => throw null; set => throw null; } + public ServiceStack.Web.IContentTypeWriter ResponseFilter { get => throw null; set => throw null; } + public System.Func ResultScope { get => throw null; set => throw null; } + public int Status { get => throw null; set => throw null; } + public System.Net.HttpStatusCode StatusCode { get => throw null; set => throw null; } + public string StatusDescription { get => throw null; set => throw null; } + public System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.ConditionAlias` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ConditionAlias + { + public const string Between = default; + public const string Contains = default; + public const string EndsWith = default; + public const string Equals = default; + public const string False = default; + public const string Greater = default; + public const string GreaterEqual = default; + public const string In = default; + public const string Less = default; + public const string LessEqual = default; + public const string Like = default; + public const string NotEqual = default; + public const string StartsWith = default; + } + + // Generated from `ServiceStack.ConfigurationErrorsException` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConfigurationErrorsException : System.Exception + { + public ConfigurationErrorsException() => throw null; + public ConfigurationErrorsException(string message) => throw null; + public ConfigurationErrorsException(string message, System.Exception innerException) => throw null; + } + + // Generated from `ServiceStack.ConnectionInfoAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConnectionInfoAttribute : ServiceStack.RequestFilterAttribute + { + public ConnectionInfoAttribute() => throw null; + public string ConnectionString { get => throw null; set => throw null; } + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public string NamedConnection { get => throw null; set => throw null; } + public string ProviderName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ContainerNetCoreExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ContainerNetCoreExtensions + { + public static Funq.Container AddScoped(this Funq.Container services, System.Type serviceType) => throw null; + public static Funq.Container AddScoped(this Funq.Container services, System.Type serviceType, System.Type implementationType) => throw null; + public static Funq.Container AddScoped(this Funq.Container services) where TImplementation : class, TService where TService : class => throw null; + public static Funq.Container AddScoped(this Funq.Container services, System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; + public static Funq.Container AddScoped(this Funq.Container services) where TService : class => throw null; + public static Funq.Container AddScoped(this Funq.Container services, System.Func implementationFactory) where TService : class => throw null; + public static Funq.Container AddSingleton(this Funq.Container services, System.Type serviceType) => throw null; + public static Funq.Container AddSingleton(this Funq.Container services, System.Type serviceType, System.Type implementationType) => throw null; + public static Funq.Container AddSingleton(this Funq.Container services) where TImplementation : class, TService where TService : class => throw null; + public static Funq.Container AddSingleton(this Funq.Container services, System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; + public static Funq.Container AddSingleton(this Funq.Container services) where TService : class => throw null; + public static Funq.Container AddSingleton(this Funq.Container services, System.Func implementationFactory) where TService : class => throw null; + public static Funq.Container AddSingleton(this Funq.Container services, TService implementationInstance) where TService : class => throw null; + public static Funq.Container AddTransient(this Funq.Container services, System.Type serviceType) => throw null; + public static Funq.Container AddTransient(this Funq.Container services, System.Type serviceType, System.Type implementationType) => throw null; + public static Funq.Container AddTransient(this Funq.Container services) where TImplementation : class, TService where TService : class => throw null; + public static Funq.Container AddTransient(this Funq.Container services, System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; + public static Funq.Container AddTransient(this Funq.Container services) where TService : class => throw null; + public static Funq.Container AddTransient(this Funq.Container services, System.Func implementationFactory) where TService : class => throw null; + } + + // Generated from `ServiceStack.ContainerTypeExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ContainerTypeExtensions + { + public static Funq.Container Register(this Funq.Container container, object instance, System.Type asType) => throw null; + public static void RegisterAutoWiredType(this Funq.Container container, System.Type serviceType, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; + public static void RegisterAutoWiredType(this Funq.Container container, System.Type serviceType, System.Type inFunqAsType, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; + public static void RegisterAutoWiredType(this Funq.Container container, string name, System.Type serviceType, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; + public static void RegisterAutoWiredType(this Funq.Container container, string name, System.Type serviceType, System.Type inFunqAsType, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; + public static void RegisterAutoWiredTypes(this Funq.Container container, System.Collections.Generic.IEnumerable serviceTypes, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; + } + + // Generated from `ServiceStack.ContainsCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ContainsCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public ContainsCondition() => throw null; + public static ServiceStack.ContainsCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.CorsFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CorsFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public System.Collections.Generic.ICollection AllowOriginWhitelist { get => throw null; } + public bool AutoHandleOptionsRequests { get => throw null; set => throw null; } + public CorsFeature(System.Collections.Generic.ICollection allowOriginWhitelist, string allowedMethods = default(string), string allowedHeaders = default(string), bool allowCredentials = default(bool), string exposeHeaders = default(string), int? maxAge = default(int?)) => throw null; + public CorsFeature(string allowedOrigins = default(string), string allowedMethods = default(string), string allowedHeaders = default(string), bool allowCredentials = default(bool), string exposeHeaders = default(string), int? maxAge = default(int?)) => throw null; + public const string DefaultHeaders = default; + public const int DefaultMaxAge = default; + public const string DefaultMethods = default; + public const string DefaultOrigin = default; + public string Id { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.CsvOnly` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvOnly : ServiceStack.RequestFilterAttribute + { + public CsvOnly() => throw null; + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + } + + // Generated from `ServiceStack.CsvRequestLogger` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvRequestLogger : ServiceStack.Host.InMemoryRollingRequestLogger + { + public CsvRequestLogger(ServiceStack.IO.IVirtualFiles files = default(ServiceStack.IO.IVirtualFiles), string requestLogsPattern = default(string), string errorLogsPattern = default(string), System.TimeSpan? appendEvery = default(System.TimeSpan?)) => throw null; + public override System.Collections.Generic.List GetLatestLogs(int? take) => throw null; + public string GetLogFilePath(string logFilePattern, System.DateTime forDate) => throw null; + public override void Log(ServiceStack.Web.IRequest request, object requestDto, object response, System.TimeSpan requestDuration) => throw null; + protected virtual void OnFlush(object state) => throw null; + public System.Action OnReadLastEntryError { get => throw null; set => throw null; } + public System.Action, System.Exception> OnWriteLogsError { get => throw null; set => throw null; } + public virtual void WriteLogs(System.Collections.Generic.List logs, string logFile) => throw null; + } + + // Generated from `ServiceStack.CustomPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomPlugin : ServiceStack.IPlugin, ServiceStack.IPostInitPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public void AfterPluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public CustomPlugin() => throw null; + public CustomPlugin(System.Action onRegister) => throw null; + public CustomPlugin(string id, System.Action onRegister) => throw null; + public string Id { get => throw null; set => throw null; } + public System.Action OnAfterPluginsLoaded { get => throw null; set => throw null; } + public System.Action OnBeforePluginsLoaded { get => throw null; set => throw null; } + public System.Action OnRegister { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.CustomRequestFilter` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomRequestFilter : ServiceStack.IPlugin + { + public bool ApplyToMessaging { get => throw null; set => throw null; } + public CustomRequestFilter(System.Action filter) => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.CustomResponseFilter` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomResponseFilter : ServiceStack.IPlugin + { + public bool ApplyToMessaging { get => throw null; set => throw null; } + public CustomResponseFilter(System.Action filter) => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.DataConditionExpression` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DataConditionExpression + { + public System.Collections.Generic.IEnumerable Apply(System.Collections.Generic.IEnumerable source, System.Collections.Generic.IEnumerable original) => throw null; + public DataConditionExpression() => throw null; + public System.Reflection.PropertyInfo Field { get => throw null; set => throw null; } + public ServiceStack.GetMemberDelegate FieldGetter { get => throw null; set => throw null; } + public object GetFieldValue(object instance) => throw null; + public ServiceStack.QueryCondition QueryCondition { get => throw null; set => throw null; } + public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } + public object Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DataQuery<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DataQuery : ServiceStack.IDataQuery + { + public virtual void AddCondition(ServiceStack.QueryTerm term, System.Reflection.PropertyInfo field, ServiceStack.QueryCondition condition, object value) => throw null; + public virtual void And(string field, ServiceStack.QueryCondition condition, string value) => throw null; + public System.Collections.Generic.List Conditions { get => throw null; set => throw null; } + public DataQuery(ServiceStack.QueryDataContext context) => throw null; + public ServiceStack.IQueryData Dto { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary DynamicParams { get => throw null; set => throw null; } + public virtual System.Tuple FirstMatchingField(string field) => throw null; + public virtual bool HasConditions { get => throw null; } + public virtual void Join(System.Type joinType, System.Type type) => throw null; + public virtual void LeftJoin(System.Type joinType, System.Type type) => throw null; + public virtual void Limit(int? skip, int? take) => throw null; + public int? Offset { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet OnlyFields { get => throw null; set => throw null; } + public virtual void Or(string field, ServiceStack.QueryCondition condition, string value) => throw null; + public ServiceStack.OrderByExpression OrderBy { get => throw null; set => throw null; } + public virtual void OrderByFields(params string[] fieldNames) => throw null; + public virtual void OrderByFieldsDescending(params string[] fieldNames) => throw null; + public virtual void OrderByPrimaryKey() => throw null; + public int? Rows { get => throw null; set => throw null; } + public virtual void Select(string[] fields) => throw null; + public void Take(int take) => throw null; + } + + // Generated from `ServiceStack.DefaultRequestAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultRequestAttribute : ServiceStack.AttributeBase + { + public DefaultRequestAttribute(System.Type requestType) => throw null; + public System.Type RequestType { get => throw null; set => throw null; } + public string Verbs { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DefaultViewAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultViewAttribute : ServiceStack.RequestFilterAttribute + { + public DefaultViewAttribute() => throw null; + public DefaultViewAttribute(string view) => throw null; + public DefaultViewAttribute(string view, string template) => throw null; + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public string Template { get => throw null; set => throw null; } + public string View { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DeleteFileUploadService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DeleteFileUploadService : ServiceStack.Service + { + public System.Threading.Tasks.Task Delete(ServiceStack.DeleteFileUpload request) => throw null; + public DeleteFileUploadService() => throw null; + } + + // Generated from `ServiceStack.DiagnosticEntry` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DiagnosticEntry + { + public string Arg { get => throw null; set => throw null; } + public System.Collections.Generic.List ArgLengths { get => throw null; set => throw null; } + public System.Collections.Generic.List Args { get => throw null; set => throw null; } + public string Command { get => throw null; set => throw null; } + public string CommandType { get => throw null; set => throw null; } + public System.DateTime Date { get => throw null; set => throw null; } + public DiagnosticEntry() => throw null; + public System.TimeSpan? Duration { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus Error { get => throw null; set => throw null; } + public string EventType { get => throw null; set => throw null; } + public System.Int64 Id { get => throw null; set => throw null; } + public string Message { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary NamedArgs { get => throw null; set => throw null; } + public string Operation { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public string Source { get => throw null; set => throw null; } + public string StackTrace { get => throw null; set => throw null; } + public string Tag { get => throw null; set => throw null; } + public int ThreadId { get => throw null; set => throw null; } + public System.Int64 Timestamp { get => throw null; set => throw null; } + public string TraceId { get => throw null; set => throw null; } + public string UserAuthId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DisposableTracker` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DisposableTracker : System.IDisposable + { + public void Add(System.IDisposable instance) => throw null; + public DisposableTracker() => throw null; + public void Dispose() => throw null; + public const string HashId = default; + } + + // Generated from `ServiceStack.DtoUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DtoUtils + { + public static object CreateErrorResponse(object request, System.Exception ex) => throw null; + public static object CreateErrorResponse(object request, System.Exception ex, ServiceStack.ResponseStatus responseStatus) => throw null; + public static object CreateErrorResponse(object request, ServiceStack.Validation.ValidationErrorResult validationError) => throw null; + public static object CreateErrorResponse(string errorCode, string errorMessage, System.Collections.Generic.IEnumerable validationErrors) => throw null; + public static object CreateResponseDto(object request, ServiceStack.ResponseStatus responseStatus) => throw null; + public static ServiceStack.ResponseStatus CreateResponseStatus(System.Exception ex, object request = default(object), bool debugMode = default(bool)) => throw null; + public static ServiceStack.ResponseStatus CreateResponseStatus(string errorCode) => throw null; + public static ServiceStack.ResponseStatus CreateResponseStatus(string errorCode, string errorMessage) => throw null; + public static ServiceStack.ResponseStatus CreateSuccessResponse(string message) => throw null; + public const string ResponseStatusPropertyName = default; + public static ServiceStack.ResponseStatus ToResponseStatus(this System.Exception exception, object requestDto = default(object)) => throw null; + public static ServiceStack.ResponseStatus ToResponseStatus(this ServiceStack.Validation.ValidationError validationException) => throw null; + public static ServiceStack.ResponseStatus ToResponseStatus(this ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; + } + + // Generated from `ServiceStack.EnableCorsAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EnableCorsAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IHasRequestFilterAsync, ServiceStack.Web.IRequestFilterBase + { + public bool AutoHandleOptionRequests { get => throw null; set => throw null; } + public ServiceStack.Web.IRequestFilterBase Copy() => throw null; + public EnableCorsAttribute(string allowedOrigins = default(string), string allowedMethods = default(string), string allowedHeaders = default(string), bool allowCredentials = default(bool)) => throw null; + public int Priority { get => throw null; set => throw null; } + public System.Threading.Tasks.Task RequestFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + } + + // Generated from `ServiceStack.EncryptedMessagesFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EncryptedMessagesFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public static System.TimeSpan DefaultMaxMaxRequestAge; + public EncryptedMessagesFeature() => throw null; + public static string ErrorInvalidMessage; + public static string ErrorKeyNotFound; + public static string ErrorNonceSeen; + public static string ErrorRequestTooOld; + public System.Collections.Generic.List FallbackPrivateKeys { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.TimeSpan MaxRequestAge { get => throw null; set => throw null; } + public System.Security.Cryptography.RSAParameters? PrivateKey { get => throw null; set => throw null; } + protected System.Collections.Generic.Dictionary PrivateKeyModulusMap { get => throw null; set => throw null; } + public string PrivateKeyXml { get => throw null; set => throw null; } + public string PublicKeyPath { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public static string RequestItemsAuthKey; + public static string RequestItemsCryptKey; + public static string RequestItemsIv; + public static System.Threading.Tasks.Task WriteEncryptedError(ServiceStack.Web.IRequest req, System.Byte[] cryptKey, System.Byte[] authKey, System.Byte[] iv, System.Exception ex, string description = default(string)) => throw null; + } + + // Generated from `ServiceStack.EncryptedMessagesFeatureExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class EncryptedMessagesFeatureExtensions + { + public static bool IsEncryptedMessage(this ServiceStack.Web.IRequest req) => throw null; + } + + // Generated from `ServiceStack.EncryptedMessagesService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EncryptedMessagesService : ServiceStack.Service + { + public object Any(ServiceStack.EncryptedMessage request) => throw null; + public object Any(ServiceStack.GetPublicKey request) => throw null; + public EncryptedMessagesService() => throw null; + } + + // Generated from `ServiceStack.EndsWithCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EndsWithCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public EndsWithCondition() => throw null; + public static ServiceStack.EndsWithCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.EnsureHttpsAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EnsureHttpsAttribute : ServiceStack.RequestFilterAttribute + { + public EnsureHttpsAttribute() => throw null; + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public bool SkipIfDebugMode { get => throw null; set => throw null; } + public bool SkipIfXForwardedFor { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.EqualsCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EqualsCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public EqualsCondition() => throw null; + public static ServiceStack.EqualsCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.ErrorMessages` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ErrorMessages + { + public static string AccessDenied; + public static string AlreadyRegistered; + public static string ApiKeyDoesNotExist; + public static string ApiKeyHasBeenCancelled; + public static string ApiKeyHasExpired; + public static string ApiKeyIsInvalid; + public static string ApiKeyRequiresSecureConnection; + public static string AppSettingNotFoundFmt; + public static string AuthRepositoryNotExists; + public static string CacheFeatureMustBeEnabled; + public static string ClaimDoesNotExistFmt; + public static string ConnectionStringNotFoundFmt; + public static string ConstructorNotFoundForType; + public static string ContentTypeNotSupportedFmt; + public static string EmailAlreadyExists; + public static string EmailAlreadyExistsFmt; + public static string FileNotExistsFmt; + public static string HostDoesNotSupportSingletonRequest; + public static string IllegalUsername; + public static string InvalidAccessToken; + public static string InvalidBasicAuthCredentials; + public static string InvalidPermission; + public static string InvalidRole; + public static string InvalidUsernameOrPassword; + public static string JwtRequiresSecureConnection; + public static string NoExternalRedirects; + public static string NotAuthenticated; + public static string OnlyAllowedInAspNetHosts; + public static string PasswordsShouldMatch; + public static string PrimaryKeyRequired; + public static string RefreshTokenInvalid; + public static string RegisterUpdatesDisabled; + public static string RequestAlreadyProcessedFmt; + public static string Requires2FA; + public static string SessionIdEmpty; + public static string ShouldNotRegisterAuthSession; + public static string SubscriptionForbiddenFmt; + public static string SubscriptionNotExistsFmt; + public static string TokenExpired; + public static string TokenInvalid; + public static string TokenInvalidAudienceFmt; + public static string TokenInvalidNotBefore; + public static string TokenInvalidated; + public static string UnknownAuthProviderFmt; + public static string UserAccountLocked; + public static string UserAlreadyExistsFmt; + public static string UserForApiKeyDoesNotExist; + public static string UserNotExists; + public static string UsernameAlreadyExists; + public static string UsernameOrEmailRequired; + public static string WebSudoRequired; + public static string WindowsAuthFailed; + } + + // Generated from `ServiceStack.ErrorViewAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ErrorViewAttribute : ServiceStack.RequestFilterAttribute + { + public ErrorViewAttribute() => throw null; + public ErrorViewAttribute(string fieldName) => throw null; + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public string FieldName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.EventSubscription` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EventSubscription : ServiceStack.SubscriptionInfo, ServiceStack.IEventSubscription, System.IDisposable + { + public void Dispose() => throw null; + public static int DisposeMaxWaitMs { get => throw null; set => throw null; } + public EventSubscription(ServiceStack.Web.IResponse response) => throw null; + public bool IsClosed { get => throw null; } + public bool IsDisposed { get => throw null; } + public bool IsLocked { get => throw null; } + public string JsonArgs { get => throw null; } + public System.Int64 LastMessageId { get => throw null; } + public System.DateTime LastPulseAt { get => throw null; set => throw null; } + public string[] MergedChannels { get => throw null; set => throw null; } + public System.Action OnDispose { get => throw null; set => throw null; } + public System.Action OnError { get => throw null; set => throw null; } + public System.Action OnHungConnection { get => throw null; set => throw null; } + public System.Action OnPublish { get => throw null; set => throw null; } + public System.Func OnPublishAsync { get => throw null; set => throw null; } + public System.Action OnUnsubscribe { get => throw null; set => throw null; } + public System.Func OnUnsubscribeAsync { get => throw null; set => throw null; } + public void Publish(string selector) => throw null; + public void Publish(string selector, string message) => throw null; + public System.Threading.Tasks.Task PublishAsync(string selector, string message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void PublishRaw(string frame) => throw null; + public System.Threading.Tasks.Task PublishRawAsync(string frame, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Pulse() => throw null; + public void Release() => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; } + public ServiceStack.Web.IResponse Response { get => throw null; } + public static string SerializeDictionary(System.Collections.Generic.IDictionary map) => throw null; + public static string[] UnknownChannel; + public void Unsubscribe() => throw null; + public System.Threading.Tasks.Task UnsubscribeAsync() => throw null; + public void UpdateChannels(string[] channels) => throw null; + public System.Action WriteEvent { get => throw null; set => throw null; } + public System.Func WriteEventAsync { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FileExt` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class FileExt + { + public static string[] AllDocuments { get => throw null; set => throw null; } + public static string[] BinaryDocuments { get => throw null; set => throw null; } + public static string[] BinaryImages { get => throw null; set => throw null; } + public static string[] Images { get => throw null; set => throw null; } + public static string[] Presentations { get => throw null; set => throw null; } + public static string[] Spreadsheets { get => throw null; set => throw null; } + public static string[] TextDocuments { get => throw null; set => throw null; } + public static string[] WebAudios { get => throw null; set => throw null; } + public static string[] WebFormats { get => throw null; set => throw null; } + public static string[] WebImages { get => throw null; set => throw null; } + public static string[] WebVideos { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FileExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class FileExtensions + { + public static bool IsRelativePath(this string relativeOrAbsolutePath) => throw null; + public static string MapServerPath(this string relativePath) => throw null; + public static string ReadAllText(this System.IO.FileInfo file) => throw null; + public static System.Threading.Tasks.Task ReadAllTextAsync(this System.IO.FileInfo file, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Byte[] ReadFully(this System.IO.FileInfo file) => throw null; + public static System.Threading.Tasks.Task ReadFullyAsync(this System.IO.FileInfo file, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void SaveTo(this ServiceStack.Web.IHttpFile httpFile, ServiceStack.IO.IVirtualFiles vfs, string filePath) => throw null; + public static void SaveTo(this ServiceStack.Web.IHttpFile httpFile, string filePath) => throw null; + public static System.Threading.Tasks.Task SaveToAsync(this ServiceStack.Web.IHttpFile httpFile, ServiceStack.IO.IVirtualFiles vfs, string filePath, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SaveToAsync(this ServiceStack.Web.IHttpFile httpFile, string filePath) => throw null; + public static void WriteTo(this ServiceStack.Web.IHttpFile httpFile, System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task WriteToAsync(this ServiceStack.Web.IHttpFile httpFile, System.IO.Stream stream) => throw null; + } + + // Generated from `ServiceStack.FilesUploadContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct FilesUploadContext + { + public string DateSegment { get => throw null; } + public object Dto { get => throw null; } + public ServiceStack.FilesUploadFeature Feature { get => throw null; } + public string FileExtension { get => throw null; } + public string FileName { get => throw null; } + // Stub generator skipped constructor + public FilesUploadContext(ServiceStack.FilesUploadFeature feature, ServiceStack.UploadLocation location, ServiceStack.Web.IRequest request, string fileName) => throw null; + public T GetDto() => throw null; + public string GetLocationPath(string relativePath) => throw null; + public ServiceStack.UploadLocation Location { get => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; } + public ServiceStack.Auth.IAuthSession Session { get => throw null; } + public string UserAuthId { get => throw null; } + } + + // Generated from `ServiceStack.FilesUploadErrorMessages` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FilesUploadErrorMessages + { + public string BadRequest { get => throw null; set => throw null; } + public string ExceededMaxFileBytesFmt { get => throw null; set => throw null; } + public string ExceededMaxFileCountFmt { get => throw null; set => throw null; } + public string ExceededMinFileBytesFmt { get => throw null; set => throw null; } + public string FileNotExists { get => throw null; set => throw null; } + public FilesUploadErrorMessages() => throw null; + public string InvalidFileExtensionFmt { get => throw null; set => throw null; } + public string NoCreateAccess { get => throw null; set => throw null; } + public string NoDeleteAccess { get => throw null; set => throw null; } + public string NoReadAccess { get => throw null; set => throw null; } + public string NoUpdateAccess { get => throw null; set => throw null; } + public string UnknownLocationFmt { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FilesUploadFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FilesUploadFeature : ServiceStack.IPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public ServiceStack.UploadLocation AssertLocation(string name, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public string BasePath { get => throw null; set => throw null; } + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public static object DefaultFileResult(ServiceStack.Web.IRequest req, ServiceStack.IO.IVirtualFile file) => throw null; + public System.Threading.Tasks.Task DeleteFileAsync(ServiceStack.UploadLocation location, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, string vfsPath) => throw null; + public ServiceStack.FilesUploadErrorMessages Errors { get => throw null; set => throw null; } + public System.Func FileResult { get => throw null; set => throw null; } + public FilesUploadFeature(params ServiceStack.UploadLocation[] locations) => throw null; + public FilesUploadFeature(string basePath, params ServiceStack.UploadLocation[] locations) => throw null; + public System.Threading.Tasks.Task GetFileAsync(ServiceStack.UploadLocation location, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, string vfsPath) => throw null; + public ServiceStack.UploadLocation GetLocation(string name) => throw null; + public ServiceStack.UploadLocation GetLocationFromProperty(System.Type requestType, string propName) => throw null; + public string Id { get => throw null; } + public ServiceStack.UploadLocation[] Locations { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.Threading.Tasks.Task ReplaceFileAsync(ServiceStack.UploadLocation location, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, string vfsPath, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.ResolvedPath ResolveUploadFilePath(ServiceStack.UploadLocation location, ServiceStack.Web.IRequest req, ServiceStack.Web.IHttpFile file) => throw null; + public System.Threading.Tasks.Task UploadFileAsync(ServiceStack.UploadLocation location, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IHttpFile file, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void ValidateFileUpload(ServiceStack.UploadLocation location, ServiceStack.Web.IRequest req, ServiceStack.Web.IHttpFile file, string vfsPath) => throw null; + } + + // Generated from `ServiceStack.FilesUploadOperation` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum FilesUploadOperation + { + All, + Create, + Delete, + None, + Read, + Update, + Write, + } + + // Generated from `ServiceStack.FilterExpression` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class FilterExpression + { + public abstract System.Collections.Generic.IEnumerable Apply(System.Collections.Generic.IEnumerable source); + protected FilterExpression() => throw null; + } + + // Generated from `ServiceStack.GenericAppHost` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GenericAppHost : ServiceStack.ServiceStackHost + { + public System.Action ConfigFilter { get => throw null; set => throw null; } + public override void Configure(Funq.Container container) => throw null; + public System.Action ConfigureAppHost { get => throw null; set => throw null; } + public System.Action ConfigureContainer { get => throw null; set => throw null; } + public GenericAppHost(params System.Reflection.Assembly[] serviceAssemblies) : base(default(string), default(System.Reflection.Assembly[])) => throw null; + public override ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest req) => throw null; + public override void OnConfigLoad() => throw null; + } + + // Generated from `ServiceStack.GetFileService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetFileService : ServiceStack.Service + { + public object Get(ServiceStack.GetFile request) => throw null; + public GetFileService() => throw null; + } + + // Generated from `ServiceStack.GetFileUploadService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetFileUploadService : ServiceStack.Service + { + public System.Threading.Tasks.Task Get(ServiceStack.GetFileUpload request) => throw null; + public GetFileUploadService() => throw null; + } + + // Generated from `ServiceStack.GreaterCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GreaterCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public GreaterCondition() => throw null; + public static ServiceStack.GreaterCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.GreaterEqualCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GreaterEqualCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public GreaterEqualCondition() => throw null; + public static ServiceStack.GreaterEqualCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.HasPermissionsValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HasPermissionsValidator : ServiceStack.TypeValidator, ServiceStack.IAuthTypeValidator + { + public static string DefaultErrorMessage { get => throw null; set => throw null; } + public HasPermissionsValidator(string[] permissions) : base(default(string), default(string), default(int?)) => throw null; + public HasPermissionsValidator(string permission) : base(default(string), default(string), default(int?)) => throw null; + public override System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; + public string[] Permissions { get => throw null; } + public override System.Threading.Tasks.Task ThrowIfNotValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; + } + + // Generated from `ServiceStack.HasRolesValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HasRolesValidator : ServiceStack.TypeValidator, ServiceStack.IAuthTypeValidator + { + public static string DefaultErrorMessage { get => throw null; set => throw null; } + public HasRolesValidator(string[] roles) : base(default(string), default(string), default(int?)) => throw null; + public HasRolesValidator(string role) : base(default(string), default(string), default(int?)) => throw null; + public override System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; + public string[] Roles { get => throw null; } + public override System.Threading.Tasks.Task ThrowIfNotValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; + } + + // Generated from `ServiceStack.HelpMessages` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HelpMessages + { + public static string DefaultRedirectMessage; + public static string NativeTypesDtoOptionsTip; + } + + // Generated from `ServiceStack.HostConfig` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HostConfig + { + public System.Collections.Generic.Dictionary AddMaxAgeForStaticMimeTypes { get => throw null; set => throw null; } + public bool AddRedirectParamsToQueryString { get => throw null; set => throw null; } + public string AdminAuthSecret { get => throw null; set => throw null; } + public bool AllowAclUrlReservation { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet AllowFileExtensions { get => throw null; set => throw null; } + public System.Collections.Generic.List AllowFilePaths { get => throw null; set => throw null; } + public bool AllowJsConfig { get => throw null; set => throw null; } + public bool AllowJsonpRequests { get => throw null; set => throw null; } + public bool AllowNonHttpOnlyCookies { set => throw null; } + public bool AllowPartialResponses { get => throw null; set => throw null; } + public bool AllowRouteContentTypeExtensions { get => throw null; set => throw null; } + public bool AllowSessionCookies { get => throw null; set => throw null; } + public bool AllowSessionIdsInHttpParams { get => throw null; set => throw null; } + public string ApiVersion { get => throw null; set => throw null; } + public ServiceStack.AppInfo AppInfo { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet AppendUtf8CharsetOnContentTypes { get => throw null; set => throw null; } + public ServiceStack.Auth.IAuthSession AuthSecretSession { get => throw null; set => throw null; } + public bool BufferSyncSerializers { get => throw null; set => throw null; } + public System.Int64? CompressFilesLargerThanBytes { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet CompressFilesWithExtensions { get => throw null; set => throw null; } + public string DebugAspNetHostEnvironment { get => throw null; set => throw null; } + public string DebugHttpListenerHostEnvironment { get => throw null; set => throw null; } + public bool DebugMode { get => throw null; set => throw null; } + public string DefaultContentType { get => throw null; set => throw null; } + public System.Collections.Generic.List DefaultDocuments { get => throw null; set => throw null; } + public System.TimeSpan DefaultJsonpCacheExpiration { get => throw null; set => throw null; } + public string DefaultRedirectPath { get => throw null; set => throw null; } + public const string DefaultWsdlNamespace = default; + public bool DisposeDependenciesAfterUse { get => throw null; set => throw null; } + public System.Collections.Generic.List EmbeddedResourceBaseTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List EmbeddedResourceSources { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet EmbeddedResourceTreatAsFiles { get => throw null; set => throw null; } + public bool EnableAccessRestrictions { get => throw null; set => throw null; } + public bool EnableAutoHtmlResponses { get => throw null; set => throw null; } + public ServiceStack.Feature EnableFeatures { get => throw null; set => throw null; } + public bool EnableOptimizations { get => throw null; set => throw null; } + public System.Collections.Generic.List FallbackPasswordHashers { get => throw null; set => throw null; } + public ServiceStack.Host.FallbackRestPathDelegate FallbackRestPath { get => throw null; set => throw null; } + public System.Collections.Generic.List ForbiddenPaths { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary GlobalResponseHeaders { get => throw null; set => throw null; } + public string HandlerFactoryPath { get => throw null; set => throw null; } + public HostConfig() => throw null; + public System.Collections.Generic.Dictionary HtmlReplaceTokens { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet IgnoreFormatsInMetadata { get => throw null; set => throw null; } + public bool IgnoreWarningsOnAllProperties { get => throw null; set => throw null; } + public bool IgnoreWarningsOnAutoQueryApis { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet IgnoreWarningsOnPropertyNames { get => throw null; set => throw null; } + public static ServiceStack.HostConfig Instance { get => throw null; } + public System.Text.RegularExpressions.Regex IsMobileRegex { get => throw null; set => throw null; } + public ServiceStack.Logging.ILogFactory LogFactory { get => throw null; set => throw null; } + public bool LogUnobservedTaskExceptions { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary MapExceptionToStatusCode { get => throw null; set => throw null; } + public string MetadataRedirectPath { get => throw null; set => throw null; } + public ServiceStack.RequestAttributes MetadataVisibility { get => throw null; set => throw null; } + public static ServiceStack.HostConfig NewInstance() => throw null; + public bool OnlySendSessionCookiesSecurely { set => throw null; } + public string PathBase { get => throw null; set => throw null; } + public System.Collections.Generic.List PreferredContentTypes { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet RazorNamespaces { get => throw null; } + public bool RedirectDirectoriesToTrailingSlashes { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary RedirectPaths { get => throw null; set => throw null; } + public bool RedirectToDefaultDocuments { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary> RequestRules { get => throw null; set => throw null; } + public static ServiceStack.HostConfig ResetInstance() => throw null; + public string RestrictAllCookiesToDomain { get => throw null; set => throw null; } + public bool Return204NoContentForEmptyResponse { get => throw null; set => throw null; } + public bool ReturnsInnerException { get => throw null; set => throw null; } + public System.Collections.Generic.List RouteNamingConventions { get => throw null; set => throw null; } + public System.Collections.Generic.List ScanSkipPaths { get => throw null; set => throw null; } + public ServiceStack.Metadata.ServiceEndpointsMetadataConfig ServiceEndpointsMetadataConfig { get => throw null; set => throw null; } + public static string ServiceStackPath; + public bool SkipFormDataInCreatingRequest { get => throw null; set => throw null; } + public string SoapServiceName { get => throw null; set => throw null; } + public bool? StrictMode { get => throw null; set => throw null; } + public bool StripApplicationVirtualPath { get => throw null; set => throw null; } + public bool TreatNonNullableRefTypesAsRequired { get => throw null; set => throw null; } + public bool UseBclJsonSerializers { get => throw null; set => throw null; } + public bool UseCamelCase { get => throw null; set => throw null; } + public bool UseHttpOnlyCookies { get => throw null; set => throw null; } + public bool UseHttpsLinks { get => throw null; set => throw null; } + public bool UseJsObject { get => throw null; set => throw null; } + public bool UseSaltedHash { get => throw null; set => throw null; } + public bool? UseSameSiteCookies { get => throw null; set => throw null; } + public bool UseSecureCookies { get => throw null; set => throw null; } + public string WebHostPhysicalPath { get => throw null; set => throw null; } + public string WebHostUrl { get => throw null; set => throw null; } + public bool WriteErrorsToResponse { get => throw null; set => throw null; } + public string WsdlServiceNamespace { get => throw null; set => throw null; } + public System.Xml.XmlWriterSettings XmlWriterSettings { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HostContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HostContext + { + public static ServiceStack.ServiceStackHost AppHost { get => throw null; } + public static ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; } + public static bool ApplyCustomHandlerRequestFilters(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public static bool ApplyPreRequestFilters(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public static System.Threading.Tasks.Task ApplyRequestFiltersAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, object requestDto) => throw null; + public static System.Threading.Tasks.Task ApplyResponseFiltersAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, object response) => throw null; + public static ServiceStack.ServiceStackHost AssertAppHost() => throw null; + public static T AssertPlugin() where T : class, ServiceStack.IPlugin => throw null; + public static ServiceStack.AsyncContext Async; + public static ServiceStack.Caching.ICacheClient Cache { get => throw null; } + public static ServiceStack.Caching.ICacheClientAsync CacheClientAsync { get => throw null; } + public static ServiceStack.HostConfig Config { get => throw null; } + public static void ConfigureAppHost(System.Action beforeConfigure = default(System.Action), System.Action afterConfigure = default(System.Action), System.Action afterPluginsLoaded = default(System.Action), System.Action afterAppHostInit = default(System.Action)) => throw null; + public static Funq.Container Container { get => throw null; } + public static ServiceStack.IO.IVirtualDirectory ContentRootDirectory { get => throw null; } + public static ServiceStack.Web.IContentTypes ContentTypes { get => throw null; } + public static ServiceStack.Web.IServiceRunner CreateServiceRunner(ServiceStack.Host.ActionContext actionContext) => throw null; + public static bool DebugMode { get => throw null; } + public static string DefaultOperationNamespace { get => throw null; set => throw null; } + public static ServiceStack.IO.FileSystemVirtualFiles FileSystemVirtualFiles { get => throw null; } + public static int FindFreeTcpPort(int startingFrom = default(int), int endingAt = default(int)) => throw null; + public static ServiceStack.Auth.IAuthSession GetAuthSecretSession() => throw null; + public static ServiceStack.Web.IRequest GetCurrentRequest() => throw null; + public static string GetDefaultNamespace() => throw null; + public static T GetPlugin() where T : class, ServiceStack.IPlugin => throw null; + public static ServiceStack.IO.GistVirtualFiles GistVirtualFiles { get => throw null; } + public static bool HasFeature(ServiceStack.Feature feature) => throw null; + public static bool HasPlugin() where T : class, ServiceStack.IPlugin => throw null; + public static bool HasValidAuthSecret(ServiceStack.Web.IRequest httpReq) => throw null; + public static bool IsAspNetHost { get => throw null; } + public static bool IsHttpListenerHost { get => throw null; } + public static bool IsNetCore { get => throw null; } + public static ServiceStack.Caching.MemoryCacheClient LocalCache { get => throw null; } + public static ServiceStack.IO.MemoryVirtualFiles MemoryVirtualFiles { get => throw null; } + public static ServiceStack.Host.ServiceMetadata Metadata { get => throw null; } + public static ServiceStack.Metadata.MetadataPagesConfig MetadataPagesConfig { get => throw null; } + public static System.Threading.Tasks.Task RaiseAndHandleException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; + public static System.Threading.Tasks.Task RaiseGatewayException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; + public static System.Threading.Tasks.Task RaiseServiceException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; + public static System.Threading.Tasks.Task RaiseUncaughtException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; + public static void Release(object service) => throw null; + public static ServiceStack.RequestContext RequestContext { get => throw null; } + public static void Reset() => throw null; + public static T Resolve() => throw null; + public static string ResolveAbsoluteUrl(string virtualPath, ServiceStack.Web.IRequest httpReq) => throw null; + public static string ResolveLocalizedString(string text, ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; + public static string ResolvePhysicalPath(string virtualPath, ServiceStack.Web.IRequest httpReq) => throw null; + public static T ResolveService(ServiceStack.Web.IRequest httpReq) where T : class, ServiceStack.Web.IRequiresRequest => throw null; + public static T ResolveService(ServiceStack.Web.IRequest httpReq, T service) => throw null; + public static ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } + public static ServiceStack.Host.ServiceController ServiceController { get => throw null; } + public static string ServiceName { get => throw null; } + public static bool StrictMode { get => throw null; } + public static bool TestMode { get => throw null; set => throw null; } + public static ServiceStack.Web.IRequest TryGetCurrentRequest() => throw null; + public static T TryResolve() => throw null; + public static System.UnauthorizedAccessException UnauthorizedAccess(ServiceStack.RequestAttributes requestAttrs) => throw null; + public static ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get => throw null; } + public static ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; } + } + + // Generated from `ServiceStack.HotReloadFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HotReloadFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string DefaultPattern { set => throw null; } + public HotReloadFeature() => throw null; + public string Id { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public ServiceStack.IO.IVirtualPathProvider VirtualFiles { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HotReloadFiles` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HotReloadFiles : ServiceStack.IReturn, ServiceStack.IReturn + { + public string ETag { get => throw null; set => throw null; } + public HotReloadFiles() => throw null; + public string Pattern { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HotReloadFilesService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HotReloadFilesService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.HotReloadFiles request) => throw null; + public static System.TimeSpan CheckDelay; + public static string DefaultPattern { get => throw null; set => throw null; } + public static System.Collections.Generic.List ExcludePatterns { get => throw null; } + public HotReloadFilesService() => throw null; + public static System.TimeSpan LongPollDuration; + public static System.TimeSpan ModifiedDelay; + public static ServiceStack.IO.IVirtualPathProvider UseVirtualFiles { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HotReloadPage` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HotReloadPage : ServiceStack.IReturn, ServiceStack.IReturn + { + public string ETag { get => throw null; set => throw null; } + public HotReloadPage() => throw null; + public string Path { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HotReloadPageResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HotReloadPageResponse + { + public string ETag { get => throw null; set => throw null; } + public HotReloadPageResponse() => throw null; + public string LastUpdatedPath { get => throw null; set => throw null; } + public bool Reload { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HotReloadPageService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HotReloadPageService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.HotReloadPage request) => throw null; + public static System.TimeSpan CheckDelay; + public HotReloadPageService() => throw null; + public static System.TimeSpan LongPollDuration; + public static System.TimeSpan ModifiedDelay; + public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HtmlModule` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlModule + { + public string BasePath { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary> Cache { get => throw null; } + public string CacheControl { get => throw null; set => throw null; } + public string DirPath { get => throw null; set => throw null; } + public System.Collections.Generic.List DynamicPageQueryStrings { get => throw null; set => throw null; } + public bool? EnableCompression { get => throw null; set => throw null; } + public bool? EnableHttpCaching { get => throw null; set => throw null; } + public ServiceStack.HtmlModulesFeature Feature { get => throw null; set => throw null; } + public System.Func FileContentsResolver { get => throw null; set => throw null; } + public void Flush() => throw null; + public System.Collections.Generic.List Handlers { get => throw null; set => throw null; } + public HtmlModule(string dirPath, string basePath = default(string)) => throw null; + public string IndexFile { get => throw null; set => throw null; } + public System.Collections.Generic.List LineTransformers { get => throw null; set => throw null; } + public System.Collections.Generic.List PublicPaths { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.Collections.Generic.Dictionary>> Tokens { get => throw null; set => throw null; } + public System.ReadOnlyMemory TransformContent(System.ReadOnlyMemory content) => throw null; + public ServiceStack.IO.IVirtualPathProvider VirtualFiles { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HtmlModuleContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlModuleContext + { + public ServiceStack.ServiceStackHost AppHost { get => throw null; } + public ServiceStack.IO.IVirtualFile AssertFile(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; + public ServiceStack.IO.IVirtualFile AssertFile(string virtualPath) => throw null; + public System.ReadOnlyMemory Cache(string key, System.Func> handler) => throw null; + public bool DebugMode { get => throw null; } + public System.Func FileContentsResolver { get => throw null; } + public HtmlModuleContext(ServiceStack.HtmlModule module, ServiceStack.Web.IRequest request) => throw null; + public ServiceStack.HtmlModule Module { get => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; } + public ServiceStack.IO.IVirtualPathProvider VirtualFiles { get => throw null; } + } + + // Generated from `ServiceStack.HtmlModulesFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlModulesFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string CacheControl { get => throw null; set => throw null; } + public ServiceStack.HtmlModulesFeature Configure(System.Action configure) => throw null; + public const string DefaultCacheControl = default; + public bool? EnableCompression { get => throw null; set => throw null; } + public bool? EnableHttpCaching { get => throw null; set => throw null; } + public System.Func FileContentsResolver { get => throw null; set => throw null; } + public ServiceStack.HtmlModules.FilesTransformer FilesTransformer { get => throw null; set => throw null; } + public void Flush() => throw null; + public System.Collections.Generic.List Handlers { get => throw null; set => throw null; } + public HtmlModulesFeature(params ServiceStack.HtmlModule[] modules) => throw null; + public string Id { get => throw null; } + public bool IgnoreIfError { get => throw null; set => throw null; } + public bool IncludeHtmlLineTransformers { get => throw null; set => throw null; } + public System.Collections.Generic.List Modules { get => throw null; set => throw null; } + public System.Collections.Generic.List> OnConfigure { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.Collections.Generic.Dictionary>> Tokens { get => throw null; set => throw null; } + public ServiceStack.IO.IVirtualPathProvider VirtualFiles { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HtmlOnly` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlOnly : ServiceStack.RequestFilterAttribute + { + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public HtmlOnly() => throw null; + } + + // Generated from `ServiceStack.HttpCacheExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpCacheExtensions + { + public static bool ETagMatch(this ServiceStack.Web.IRequest req, string eTag) => throw null; + public static void EndNotModified(this ServiceStack.Web.IResponse res, string description = default(string)) => throw null; + public static bool Has(this ServiceStack.CacheControl cache, ServiceStack.CacheControl flag) => throw null; + public static bool HasValidCache(this ServiceStack.Web.IRequest req, System.DateTime? lastModified) => throw null; + public static bool HasValidCache(this ServiceStack.Web.IRequest req, string eTag) => throw null; + public static bool HasValidCache(this ServiceStack.Web.IRequest req, string eTag, System.DateTime? lastModified) => throw null; + public static bool NotModifiedSince(this ServiceStack.Web.IRequest req, System.DateTime? lastModified) => throw null; + public static bool ShouldAddLastModifiedToOptimizedResults(this ServiceStack.HttpCacheFeature feature) => throw null; + } + + // Generated from `ServiceStack.HttpCacheFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpCacheFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string BuildCacheControlHeader(ServiceStack.CacheInfo cacheInfo) => throw null; + public System.Func CacheControlFilter { get => throw null; set => throw null; } + public string CacheControlForOptimizedResults { get => throw null; set => throw null; } + public System.TimeSpan DefaultExpiresIn { get => throw null; set => throw null; } + public System.TimeSpan DefaultMaxAge { get => throw null; set => throw null; } + public bool DisableCaching { get => throw null; set => throw null; } + public System.Threading.Tasks.Task HandleCacheResponses(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; + public HttpCacheFeature() => throw null; + public string Id { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.HttpError` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpError : System.Exception, ServiceStack.IHasErrorCode, ServiceStack.IHasResponseStatus, ServiceStack.Model.IResponseStatusConvertible, ServiceStack.Web.IHasOptions, ServiceStack.Web.IHttpError, ServiceStack.Web.IHttpResult + { + public static System.Exception BadRequest(string message) => throw null; + public static System.Exception BadRequest(string errorCode, string message) => throw null; + public static System.Exception Conflict(string message) => throw null; + public string ContentType { get => throw null; set => throw null; } + public System.Collections.Generic.List Cookies { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public static System.Exception ExpectationFailed(string message) => throw null; + public static System.Exception Forbidden(string message) => throw null; + public static System.Exception GetException(object responseDto) => throw null; + public System.Collections.Generic.List GetFieldErrors() => throw null; + public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } + public HttpError() => throw null; + public HttpError(System.Net.HttpStatusCode statusCode) => throw null; + public HttpError(System.Net.HttpStatusCode statusCode, System.Exception innerException) => throw null; + public HttpError(System.Net.HttpStatusCode statusCode, string errorMessage) => throw null; + public HttpError(System.Net.HttpStatusCode statusCode, string errorCode, string errorMessage) => throw null; + public HttpError(ServiceStack.IHasResponseStatus responseDto, System.Net.HttpStatusCode statusCode) => throw null; + public HttpError(ServiceStack.ResponseStatus responseStatus, System.Net.HttpStatusCode statusCode) => throw null; + public HttpError(int statusCode, string errorCode) => throw null; + public HttpError(int statusCode, string errorCode, string errorMessage, System.Exception innerException = default(System.Exception)) => throw null; + public HttpError(object responseDto, System.Net.HttpStatusCode statusCode, string errorCode, string errorMessage) => throw null; + public HttpError(object responseDto, int statusCode, string errorCode, string errorMessage = default(string), System.Exception innerException = default(System.Exception)) => throw null; + public HttpError(string message) => throw null; + public HttpError(string message, System.Exception innerException) => throw null; + public static System.Exception MethodNotAllowed(string message) => throw null; + public static System.Exception NotFound(string message) => throw null; + public static System.Exception NotImplemented(string message) => throw null; + public System.Collections.Generic.IDictionary Options { get => throw null; } + public int PaddingLength { get => throw null; set => throw null; } + public static System.Exception PreconditionFailed(string message) => throw null; + public ServiceStack.Web.IRequest RequestContext { get => throw null; set => throw null; } + public object Response { get => throw null; set => throw null; } + public ServiceStack.Web.IContentTypeWriter ResponseFilter { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Func ResultScope { get => throw null; set => throw null; } + public static System.Exception ServiceUnavailable(string message) => throw null; + public string StackTrace { get => throw null; set => throw null; } + public int Status { get => throw null; set => throw null; } + public System.Net.HttpStatusCode StatusCode { get => throw null; set => throw null; } + public string StatusDescription { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ToResponseStatus() => throw null; + public static System.Exception Unauthorized(string message) => throw null; + public static System.Exception Validation(string errorCode, string errorMessage, string fieldName) => throw null; + } + + // Generated from `ServiceStack.HttpExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpExtensions + { + public static void EndHttpHandlerRequest(this ServiceStack.Web.IResponse httpRes, bool skipHeaders = default(bool), bool skipClose = default(bool), System.Action afterHeaders = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task EndHttpHandlerRequestAsync(this ServiceStack.Web.IResponse httpRes, bool skipHeaders = default(bool), bool skipClose = default(bool), System.Func afterHeaders = default(System.Func)) => throw null; + public static void EndMqRequest(this ServiceStack.Web.IResponse httpRes, bool skipClose = default(bool)) => throw null; + public static void EndRequest(this ServiceStack.Web.IResponse httpRes, bool skipHeaders = default(bool)) => throw null; + public static System.Threading.Tasks.Task EndRequestAsync(this ServiceStack.Web.IResponse httpRes, bool skipHeaders = default(bool), System.Func afterHeaders = default(System.Func)) => throw null; + public static void EndRequestWithNoContent(this ServiceStack.Web.IResponse httpRes) => throw null; + public static string ToAbsoluteUri(this ServiceStack.IReturn requestDto, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; + public static string ToAbsoluteUri(this object requestDto, ServiceStack.Web.IRequest req, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; + public static string ToAbsoluteUri(this object requestDto, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; + public static string ToAbsoluteUri(this string relativeUrl, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + } + + // Generated from `ServiceStack.HttpHandlerFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpHandlerFactory : ServiceStack.Host.IHttpHandlerFactory + { + public static string DebugLastHandlerArgs; + public static ServiceStack.Host.IHttpHandler DefaultHttpHandler; + public static string DefaultRootFileName; + public static ServiceStack.Host.IHttpHandler ForbiddenHttpHandler; + public static ServiceStack.Host.IHttpHandler GetHandler(ServiceStack.Web.IHttpRequest httpReq) => throw null; + public static ServiceStack.Host.IHttpHandler GetHandlerForPathInfo(ServiceStack.Web.IHttpRequest httpReq, string filePath) => throw null; + public HttpHandlerFactory() => throw null; + public static ServiceStack.Host.IHttpHandler InitHandler(ServiceStack.Host.IHttpHandler handler, ServiceStack.Web.IHttpRequest httpReq) => throw null; + public static ServiceStack.Host.Handlers.RedirectHttpHandler NonRootModeDefaultHttpHandler; + public static ServiceStack.Host.IHttpHandler NotFoundHttpHandler; + public void ReleaseHandler(ServiceStack.Host.IHttpHandler handler) => throw null; + public static bool ShouldAllow(string pathInfo) => throw null; + public static ServiceStack.Host.IHttpHandler StaticFilesHandler; + public static string WebHostPhysicalPath; + } + + // Generated from `ServiceStack.HttpRequestExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpRequestExtensions + { + public static bool CanReadRequestBody(this ServiceStack.Web.IRequest req) => throw null; + public static System.Collections.Generic.Dictionary CookiesAsDictionary(this ServiceStack.Web.IRequest httpReq) => throw null; + public static bool DidReturn304NotModified(this ServiceStack.Web.IRequest httpReq, System.DateTime? dateTime, ServiceStack.Web.IResponse httpRes) => throw null; + public static void EachRequest(this ServiceStack.Web.IRequest httpReq, System.Action action) => throw null; + public static string GetAbsolutePath(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetAbsoluteUrl(this ServiceStack.Web.IRequest httpReq, string url) => throw null; + public static string GetApplicationUrl(this ServiceStack.Web.IRequest httpReq) => throw null; + public static ServiceStack.RequestAttributes GetAttributes(System.Net.IPAddress ipAddress) => throw null; + public static ServiceStack.RequestAttributes GetAttributes(this ServiceStack.Web.IRequest request) => throw null; + public static string GetBaseUrl(this ServiceStack.Web.IRequest httpReq) => throw null; + public static System.Collections.Generic.IEnumerable GetClaims(this ServiceStack.Web.IRequest req) => throw null; + public static System.Security.Claims.ClaimsPrincipal GetClaimsPrincipal(this ServiceStack.Web.IRequest req) => throw null; + public static string GetDirectoryPath(this ServiceStack.Web.IRequest request) => throw null; + public static string GetErrorView(this ServiceStack.Web.IRequest httpReq) => throw null; + public static System.Collections.Generic.Dictionary GetFlattenedRequestParams(this ServiceStack.Web.IRequest request) => throw null; + public static string GetFormatModifier(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetHttpMethodOverride(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetItemOrCookie(this ServiceStack.Web.IRequest httpReq, string name) => throw null; + public static string GetJsonpCallback(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetLastPathInfo(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; + public static string GetLeftAuthority(this System.Uri uri) => throw null; + public static string GetOperationName(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; + public static string GetOperationNameFromLastPathInfo(string lastPathInfo) => throw null; + public static System.Type GetOperationType(this ServiceStack.Web.IRequest req) => throw null; + public static string GetParam(this ServiceStack.Web.IRequest httpReq, string name) => throw null; + public static string GetParentAbsolutePath(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetParentBaseUrl(this ServiceStack.Web.IRequest request) => throw null; + public static string GetParentPathUrl(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetPathAndQuery(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; + public static string GetPathInfo(string fullPath, string mode, string appPath) => throw null; + public static string GetPathUrl(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetPhysicalPath(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetQueryStringContentType(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetQueryStringOrForm(this ServiceStack.Web.IRequest httpReq, string name) => throw null; + public static string GetRawUrl(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetRequestValue(this ServiceStack.Web.IHttpRequest req, string name) => throw null; + public static string GetResponseContentType(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetReturnUrl(this ServiceStack.Web.IRequest req) => throw null; + public static ServiceStack.Host.RestPath GetRoute(this ServiceStack.Web.IRequest req) => throw null; + public static string GetTemplate(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetUrlHostName(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetView(this ServiceStack.Web.IRequest httpReq) => throw null; + public static ServiceStack.IO.IVirtualNode GetVirtualNode(this ServiceStack.Web.IRequest httpReq) => throw null; + public static bool HasAnyOfContentTypes(this ServiceStack.Web.IRequest request, params string[] contentTypes) => throw null; + public static bool HasClaim(this System.Collections.Generic.IEnumerable claims, string type, string value) => throw null; + public static bool HasNotModifiedSince(this ServiceStack.Web.IRequest httpReq, System.DateTime? dateTime) => throw null; + public static bool HasRole(this System.Collections.Generic.IEnumerable claims, string role) => throw null; + public static bool HasScope(this System.Collections.Generic.IEnumerable claims, string scope) => throw null; + public static string InferBaseUrl(this string absoluteUri, string fromPathInfo = default(string)) => throw null; + public static bool IsContentType(this ServiceStack.Web.IRequest request, string contentType) => throw null; + public static bool IsHtml(this ServiceStack.Web.IRequest req) => throw null; + public static bool IsInLocalSubnet(this System.Net.IPAddress ipAddress) => throw null; + public static bool IsMultiRequest(this ServiceStack.Web.IRequest req) => throw null; + public static string NormalizeScheme(this string url, bool useHttps) => throw null; + public static string ResolveAbsoluteUrl(this ServiceStack.Web.IRequest httpReq, string virtualPath = default(string)) => throw null; + public static object ResolveItem(this ServiceStack.Web.IRequest httpReq, string itemKey, System.Func resolveFn) => throw null; + public static string ResolvePathInfoFromMappedPath(string fullPath, string mappedPathRoot) => throw null; + public static void SetAutoBatchCompletedHeader(this ServiceStack.Web.IRequest req, int completed) => throw null; + public static void SetErrorView(this ServiceStack.Web.IRequest httpReq, string viewName) => throw null; + public static void SetRoute(this ServiceStack.Web.IRequest req, ServiceStack.Host.RestPath route) => throw null; + public static void SetTemplate(this ServiceStack.Web.IRequest httpReq, string templateName) => throw null; + public static void SetView(this ServiceStack.Web.IRequest httpReq, string viewName) => throw null; + public static string ToErrorCode(this System.Exception ex) => throw null; + public static ServiceStack.RequestAttributes ToRequestAttributes(string[] attrNames) => throw null; + public static int ToStatusCode(this System.Exception ex) => throw null; + public static ServiceStack.WebServiceException ToWebServiceException(this ServiceStack.HttpError error) => throw null; + public static ServiceStack.WebServiceException ToWebServiceException(this ServiceStack.FluentValidation.Results.ValidationResult validationResult, object requestDto, ServiceStack.Validation.ValidationFeature feature) => throw null; + public static bool UseHttps(this ServiceStack.Web.IRequest httpReq) => throw null; + } + + // Generated from `ServiceStack.HttpResponseExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpResponseExtensions + { + public static void AddHeaderLastModified(this ServiceStack.Web.IResponse httpRes, System.DateTime? lastModified) => throw null; + public static string AddParam(this string url, string key, object val) => throw null; + public static string AddParam(this string url, string key, string val) => throw null; + public static Microsoft.AspNetCore.Http.HttpContext AllowSyncIO(this Microsoft.AspNetCore.Http.HttpContext ctx) => throw null; + public static Microsoft.AspNetCore.Http.HttpRequest AllowSyncIO(this Microsoft.AspNetCore.Http.HttpRequest req) => throw null; + public static ServiceStack.Web.IRequest AllowSyncIO(this ServiceStack.Web.IRequest req) => throw null; + public static ServiceStack.Web.IResponse AllowSyncIO(this ServiceStack.Web.IResponse res) => throw null; + public static void ClearCookies(this ServiceStack.Web.IResponse response) => throw null; + public static System.Collections.Generic.Dictionary CookiesAsDictionary(this ServiceStack.Web.IResponse httpRes) => throw null; + public static void DeleteCookie(this ServiceStack.Web.IResponse response, string cookieName) => throw null; + public static void EndWith(this ServiceStack.Web.IResponse res, System.Net.HttpStatusCode code, string description = default(string)) => throw null; + public static bool IsHttpListener; + public static bool IsMonoFastCgi; + public static bool IsNetCore; + public static void Redirect(this ServiceStack.Web.IResponse httpRes, string url) => throw null; + public static void RedirectToUrl(this ServiceStack.Web.IResponse httpRes, string url, System.Net.HttpStatusCode redirectStatusCode = default(System.Net.HttpStatusCode)) => throw null; + public static System.Threading.Tasks.Task ReturnAuthRequired(this ServiceStack.Web.IResponse httpRes) => throw null; + public static System.Threading.Tasks.Task ReturnAuthRequired(this ServiceStack.Web.IResponse httpRes, ServiceStack.AuthenticationHeaderType AuthType, string authRealm) => throw null; + public static System.Threading.Tasks.Task ReturnAuthRequired(this ServiceStack.Web.IResponse httpRes, string authRealm) => throw null; + public static System.Threading.Tasks.Task ReturnFailedAuthentication(this ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest request) => throw null; + public static void SetCookie(this ServiceStack.Web.IResponse response, System.Net.Cookie cookie) => throw null; + public static void SetCookie(this ServiceStack.Web.IResponse response, string cookieName, string cookieValue, System.DateTime expiresAt, string path = default(string)) => throw null; + public static void SetCookie(this ServiceStack.Web.IResponse response, string cookieName, string cookieValue, System.TimeSpan expiresIn, string path = default(string)) => throw null; + public static string SetParam(this string url, string key, object val) => throw null; + public static string SetParam(this string url, string key, string val) => throw null; + public static void SetPermanentCookie(this ServiceStack.Web.IResponse response, string cookieName, string cookieValue) => throw null; + public static void SetSessionCookie(this ServiceStack.Web.IResponse response, string cookieName, string cookieValue) => throw null; + public static void TransmitFile(this ServiceStack.Web.IResponse httpRes, string filePath) => throw null; + public static void Write(this ServiceStack.Web.IResponse response, string contents) => throw null; + public static System.Threading.Tasks.Task WriteAsync(this ServiceStack.Web.IResponse response, System.ReadOnlyMemory bytes) => throw null; + public static System.Threading.Tasks.Task WriteAsync(this ServiceStack.Web.IResponse response, string contents) => throw null; + public static void WriteFile(this ServiceStack.Web.IResponse httpRes, string filePath) => throw null; + } + + // Generated from `ServiceStack.HttpResponseExtensionsInternal` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpResponseExtensionsInternal + { + public static void ApplyGlobalResponseHeaders(this ServiceStack.Web.IResponse httpRes) => throw null; + public static bool ShouldWriteGlobalHeaders(ServiceStack.Web.IResponse httpRes) => throw null; + public static System.Threading.Tasks.Task WriteBytesToResponse(this ServiceStack.Web.IResponse res, System.Byte[] responseBytes, string contentType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteError(this ServiceStack.Web.IResponse httpRes, System.Exception ex, int statusCode = default(int), string errorMessage = default(string), string contentType = default(string)) => throw null; + public static System.Threading.Tasks.Task WriteError(this ServiceStack.Web.IResponse httpRes, ServiceStack.Web.IRequest httpReq, object dto, string errorMessage) => throw null; + public static System.Threading.Tasks.Task WriteError(this ServiceStack.Web.IResponse httpRes, object dto, string errorMessage) => throw null; + public static System.Threading.Tasks.Task WriteErrorBody(this ServiceStack.Web.IResponse httpRes, System.Exception ex) => throw null; + public static System.Threading.Tasks.Task WriteErrorToResponse(this ServiceStack.Web.IResponse httpRes, ServiceStack.Web.IRequest httpReq, string contentType, string operationName, string errorMessage, System.Exception ex, int statusCode) => throw null; + public static bool WriteToOutputStream(ServiceStack.Web.IResponse response, object result, System.Byte[] bodyPrefix, System.Byte[] bodySuffix) => throw null; + public static System.Threading.Tasks.Task WriteToOutputStreamAsync(ServiceStack.Web.IResponse response, object result, System.Byte[] bodyPrefix, System.Byte[] bodySuffix, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse httpRes, ServiceStack.Web.IRequest httpReq, object result, System.Byte[] bodyPrefix, System.Byte[] bodySuffix, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse httpRes, ServiceStack.Web.IRequest httpReq, object result, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse response, object result, ServiceStack.Web.StreamSerializerDelegateAsync defaultAction, ServiceStack.Web.IRequest request, System.Byte[] bodyPrefix, System.Byte[] bodySuffix, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse httpRes, object result, ServiceStack.Web.StreamSerializerDelegateAsync serializer, ServiceStack.Web.IRequest serializationContext, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse httpRes, object result, string contentType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.HttpResult` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpResult : ServiceStack.Web.IHasOptions, ServiceStack.Web.IHttpResult, ServiceStack.Web.IPartialWriterAsync, ServiceStack.Web.IStreamWriterAsync, System.IDisposable + { + public System.TimeSpan? Age { get => throw null; set => throw null; } + public bool AllowsPartialResponse { get => throw null; set => throw null; } + public ServiceStack.CacheControl CacheControl { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public System.Collections.Generic.List Cookies { get => throw null; } + public void DeleteCookie(string name) => throw null; + public void Dispose() => throw null; + public string ETag { get => throw null; set => throw null; } + public System.DateTime? Expires { get => throw null; set => throw null; } + public System.IO.FileInfo FileInfo { get => throw null; } + public System.Int64? GetContentLength() => throw null; + public System.Collections.Generic.Dictionary Headers { get => throw null; } + public HttpResult() => throw null; + public HttpResult(System.Byte[] responseBytes, string contentType) => throw null; + public HttpResult(System.IO.FileInfo fileResponse, bool asAttachment) => throw null; + public HttpResult(System.IO.FileInfo fileResponse, string contentType = default(string), bool asAttachment = default(bool)) => throw null; + public HttpResult(System.Net.HttpStatusCode statusCode, string statusDescription) => throw null; + public HttpResult(ServiceStack.IO.IVirtualFile fileResponse, bool asAttachment) => throw null; + public HttpResult(ServiceStack.IO.IVirtualFile fileResponse, string contentType = default(string), bool asAttachment = default(bool)) => throw null; + public HttpResult(System.IO.Stream responseStream, string contentType) => throw null; + public HttpResult(object response) => throw null; + public HttpResult(object response, System.Net.HttpStatusCode statusCode) => throw null; + public HttpResult(object response, string contentType) => throw null; + public HttpResult(object response, string contentType, System.Net.HttpStatusCode statusCode) => throw null; + public HttpResult(string responseText, string contentType) => throw null; + public bool IsPartialRequest { get => throw null; } + public System.DateTime? LastModified { get => throw null; set => throw null; } + public string Location { set => throw null; } + public System.TimeSpan? MaxAge { get => throw null; set => throw null; } + public static ServiceStack.HttpResult NotModified(string description = default(string), ServiceStack.CacheControl? cacheControl = default(ServiceStack.CacheControl?), System.TimeSpan? maxAge = default(System.TimeSpan?), string eTag = default(string), System.DateTime? lastModified = default(System.DateTime?)) => throw null; + public System.Collections.Generic.IDictionary Options { get => throw null; } + public int PaddingLength { get => throw null; set => throw null; } + public static ServiceStack.HttpResult Redirect(string newLocationUri, System.Net.HttpStatusCode redirectStatus = default(System.Net.HttpStatusCode)) => throw null; + public ServiceStack.Web.IRequest RequestContext { get => throw null; set => throw null; } + public object Response { get => throw null; set => throw null; } + public ServiceStack.Web.IContentTypeWriter ResponseFilter { get => throw null; set => throw null; } + public System.IO.Stream ResponseStream { get => throw null; set => throw null; } + public string ResponseText { get => throw null; } + public System.Func ResultScope { get => throw null; set => throw null; } + public void SetCookie(string name, string value, System.DateTime expiresAt, string path, bool secure = default(bool), bool httpOnly = default(bool)) => throw null; + public void SetCookie(string name, string value, System.TimeSpan expiresIn, string path) => throw null; + public void SetPermanentCookie(string name, string value) => throw null; + public void SetPermanentCookie(string name, string value, string path) => throw null; + public void SetSessionCookie(string name, string value) => throw null; + public void SetSessionCookie(string name, string value, string path) => throw null; + public static ServiceStack.HttpResult SoftRedirect(string newLocationUri, object response = default(object)) => throw null; + public int Status { get => throw null; set => throw null; } + public static ServiceStack.HttpResult Status201Created(object response, string newLocationUri) => throw null; + public System.Net.HttpStatusCode StatusCode { get => throw null; set => throw null; } + public string StatusDescription { get => throw null; set => throw null; } + public string Template { get => throw null; set => throw null; } + public static ServiceStack.HttpResult TriggerEvent(object response, string eventName, string value = default(string)) => throw null; + public string View { get => throw null; set => throw null; } + public ServiceStack.IO.IVirtualFile VirtualFile { get => throw null; } + public System.Threading.Tasks.Task WritePartialToAsync(ServiceStack.Web.IResponse response, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.HttpResultExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpResultExtensions + { + public static ServiceStack.Web.IHttpResult AddCookie(this ServiceStack.Web.IHttpResult httpResult, ServiceStack.Web.IRequest req, System.Net.Cookie cookie) => throw null; + } + + // Generated from `ServiceStack.HttpResultUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpResultUtils + { + public static void AddHttpRangeResponseHeaders(this ServiceStack.Web.IResponse response, System.Int64 rangeStart, System.Int64 rangeEnd, System.Int64 contentLength) => throw null; + public static object CreateErrorResponse(this ServiceStack.Web.IHttpError httpError) => throw null; + public static void ExtractHttpRanges(this string rangeHeader, System.Int64 contentLength, out System.Int64 rangeStart, out System.Int64 rangeEnd) => throw null; + public static object GetDto(this object response) => throw null; + public static TResponse GetDto(this object response) where TResponse : class => throw null; + public static object GetResponseDto(this object response) => throw null; + public static TResponse GetResponseDto(this object response) where TResponse : class => throw null; + public static bool IsErrorResponse(this object response) => throw null; + } + + // Generated from `ServiceStack.IAfterInitAppHost` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAfterInitAppHost + { + void AfterInit(ServiceStack.IAppHost appHost); + } + + // Generated from `ServiceStack.IAppHost` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAppHost : ServiceStack.Configuration.IResolver + { + System.Collections.Generic.List AddVirtualFileSources { get; } + System.Collections.Generic.List> AfterConfigure { get; set; } + System.Collections.Generic.List> AfterInitCallbacks { get; } + void AfterPluginLoaded(System.Action configure) where T : class, ServiceStack.IPlugin; + System.Collections.Generic.List> AfterPluginsLoaded { get; set; } + ServiceStack.Configuration.IAppSettings AppSettings { get; } + System.Collections.Generic.List> BeforeConfigure { get; set; } + System.Collections.Generic.List CatchAllHandlers { get; } + ServiceStack.HostConfig Config { get; } + void ConfigurePlugin(System.Action configure) where T : class, ServiceStack.IPlugin; + ServiceStack.IO.IVirtualDirectory ContentRootDirectory { get; } + ServiceStack.Web.IContentTypes ContentTypes { get; } + ServiceStack.Web.IServiceRunner CreateServiceRunner(ServiceStack.Host.ActionContext actionContext); + System.Collections.Generic.Dictionary CustomErrorHttpHandlers { get; } + object EvalExpression(string expr); + object EvalExpressionCached(string expr); + object EvalScriptValue(ServiceStack.IScriptValue scriptValue, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)); + System.Threading.Tasks.Task EvalScriptValueAsync(ServiceStack.IScriptValue scriptValue, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)); + object ExecuteMessage(ServiceStack.Messaging.IMessage mqMessage); + System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage mqMessage, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Collections.Generic.List FallbackHandlers { get; } + System.Collections.Generic.List GatewayExceptionHandlers { get; } + System.Collections.Generic.List GatewayExceptionHandlersAsync { get; } + System.Collections.Generic.List> GatewayRequestFilters { get; } + System.Collections.Generic.List> GatewayResponseFilters { get; } + T GetRuntimeConfig(ServiceStack.Web.IRequest req, string name, T defaultValue); + ServiceStack.Host.Handlers.IServiceStackHandler GlobalHtmlErrorHttpHandler { get; } + System.Collections.Generic.List> GlobalMessageRequestFilters { get; } + System.Collections.Generic.List> GlobalMessageRequestFiltersAsync { get; } + System.Collections.Generic.List> GlobalMessageResponseFilters { get; } + System.Collections.Generic.List> GlobalMessageResponseFiltersAsync { get; } + System.Collections.Generic.List> GlobalRequestFilters { get; } + System.Collections.Generic.List> GlobalRequestFiltersAsync { get; } + System.Collections.Generic.List> GlobalResponseFilters { get; } + System.Collections.Generic.List> GlobalResponseFiltersAsync { get; set; } + System.Collections.Generic.List InsertVirtualFileSources { get; set; } + void LoadPlugin(params ServiceStack.IPlugin[] plugins); + string MapProjectPath(string relativePath); + ServiceStack.Host.ServiceMetadata Metadata { get; } + System.Collections.Generic.List> OnDisposeCallbacks { get; } + void OnEndRequest(ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)); + System.Collections.Generic.List> OnEndRequestCallbacks { get; } + string PathBase { get; } + System.Collections.Generic.List Plugins { get; } + void PostConfigurePlugin(System.Action configure) where T : class, ServiceStack.IPlugin; + System.Collections.Generic.List> PreRequestFilters { get; } + void PublishMessage(ServiceStack.Messaging.IMessageProducer messageProducer, T message); + System.Collections.Generic.List> RawHttpHandlers { get; } + void Register(T instance); + void RegisterAs() where T : TAs; + void RegisterService(System.Type serviceType, params string[] atRestPaths); + void RegisterServicesInAssembly(System.Reflection.Assembly assembly); + void RegisterTypedMessageRequestFilter(System.Action filterFn); + void RegisterTypedMessageResponseFilter(System.Action filterFn); + void RegisterTypedRequestFilter(System.Action filterFn); + void RegisterTypedRequestFilter(System.Func> filter); + void RegisterTypedRequestFilterAsync(System.Func> filter); + void RegisterTypedRequestFilterAsync(System.Func filterFn); + void RegisterTypedResponseFilter(System.Action filterFn); + void RegisterTypedResponseFilter(System.Func> filter); + void RegisterTypedResponseFilterAsync(System.Func> filter); + void RegisterTypedResponseFilterAsync(System.Func filterFn); + void Release(object instance); + System.Collections.Generic.Dictionary> RequestBinders { get; } + System.Collections.Generic.List>> RequestConverters { get; } + string ResolveAbsoluteUrl(string virtualPath, ServiceStack.Web.IRequest httpReq); + string ResolveLocalizedString(string text, ServiceStack.Web.IRequest request); + System.Collections.Generic.List>> ResponseConverters { get; } + ServiceStack.IO.IVirtualDirectory RootDirectory { get; } + ServiceStack.Web.IServiceRoutes Routes { get; } + ServiceStack.Script.ScriptContext ScriptContext { get; } + System.Collections.Generic.List ServiceAssemblies { get; } + ServiceStack.Host.ServiceController ServiceController { get; } + System.Collections.Generic.List ServiceExceptionHandlers { get; } + System.Collections.Generic.List ServiceExceptionHandlersAsync { get; } + System.Collections.Generic.List UncaughtExceptionHandlers { get; } + System.Collections.Generic.List UncaughtExceptionHandlersAsync { get; } + System.Collections.Generic.List ViewEngines { get; } + ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get; set; } + ServiceStack.IO.IVirtualFiles VirtualFiles { get; set; } + } + + // Generated from `ServiceStack.IAppHostNetCore` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAppHostNetCore : ServiceStack.Configuration.IResolver, ServiceStack.IAppHost, ServiceStack.IRequireConfiguration + { + Microsoft.AspNetCore.Builder.IApplicationBuilder App { get; } + Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { get; } + } + + // Generated from `ServiceStack.IAuthPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthPlugin + { + void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature); + } + + // Generated from `ServiceStack.IAuthTypeValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthTypeValidator + { + } + + // Generated from `ServiceStack.IAutoQueryData` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAutoQueryData + { + ServiceStack.QueryDataContext CreateContext(ServiceStack.IQueryData requestDto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req); + ServiceStack.IDataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req, ServiceStack.IQueryDataSource db); + ServiceStack.DataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)); + ServiceStack.DataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)); + ServiceStack.IQueryResponse Execute(ServiceStack.IQueryData request, ServiceStack.IDataQuery q, ServiceStack.IQueryDataSource db); + ServiceStack.QueryResponse Execute(ServiceStack.IQueryData request, ServiceStack.DataQuery q, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)); + ServiceStack.QueryResponse Execute(ServiceStack.IQueryData request, ServiceStack.DataQuery q, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)); + ServiceStack.IQueryDataSource GetDb(ServiceStack.QueryDataContext ctx, System.Type type); + ServiceStack.IQueryDataSource GetDb(ServiceStack.QueryDataContext ctx); + System.Type GetFromType(System.Type requestDtoType); + ServiceStack.ITypedQueryData GetTypedQuery(System.Type requestDtoType, System.Type fromType); + } + + // Generated from `ServiceStack.IAutoQueryDataOptions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAutoQueryDataOptions + { + bool EnableUntypedQueries { get; set; } + System.Collections.Generic.Dictionary EndsWithConventions { get; set; } + System.Collections.Generic.HashSet IgnoreProperties { get; set; } + bool IncludeTotal { get; set; } + int? MaxLimit { get; set; } + bool OrderByPrimaryKeyOnLimitQuery { get; set; } + System.Collections.Generic.Dictionary StartsWithConventions { get; set; } + } + + // Generated from `ServiceStack.IAutoQueryDbFilters` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAutoQueryDbFilters + { + object sendToAutoQuery(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName, object options); + } + + // Generated from `ServiceStack.ICancellableRequest` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICancellableRequest : System.IDisposable + { + System.TimeSpan Elapsed { get; } + System.Threading.CancellationToken Token { get; } + System.Threading.CancellationTokenSource TokenSource { get; } + } + + // Generated from `ServiceStack.IConfigureApp` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IConfigureApp + { + void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app); + } + + // Generated from `ServiceStack.IConfigureAppHost` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IConfigureAppHost + { + void Configure(ServiceStack.IAppHost appHost); + } + + // Generated from `ServiceStack.IConfigureServices` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IConfigureServices + { + void Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection services); + } + + // Generated from `ServiceStack.IDataQuery` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDataQuery + { + void AddCondition(ServiceStack.QueryTerm defaultTerm, System.Reflection.PropertyInfo field, ServiceStack.QueryCondition condition, object value); + void And(string field, ServiceStack.QueryCondition condition, string value); + System.Collections.Generic.List Conditions { get; } + ServiceStack.IQueryData Dto { get; } + System.Collections.Generic.Dictionary DynamicParams { get; } + System.Tuple FirstMatchingField(string name); + bool HasConditions { get; } + void Join(System.Type joinType, System.Type type); + void LeftJoin(System.Type joinType, System.Type type); + void Limit(int? skip, int? take); + int? Offset { get; } + System.Collections.Generic.HashSet OnlyFields { get; } + void Or(string field, ServiceStack.QueryCondition condition, string value); + ServiceStack.OrderByExpression OrderBy { get; } + void OrderByFields(string[] fieldNames); + void OrderByFieldsDescending(string[] fieldNames); + void OrderByPrimaryKey(); + int? Rows { get; } + void Select(string[] fields); + } + + // Generated from `ServiceStack.IEventSubscription` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IEventSubscription : System.IDisposable + { + string[] Channels { get; } + System.Collections.Generic.Dictionary ConnectArgs { get; set; } + System.DateTime CreatedAt { get; set; } + string DisplayName { get; } + bool IsAuthenticated { get; set; } + bool IsClosed { get; } + string JsonArgs { get; } + System.Int64 LastMessageId { get; } + System.DateTime LastPulseAt { get; set; } + string[] MergedChannels { get; } + System.Collections.Concurrent.ConcurrentDictionary Meta { get; set; } + System.Action OnUnsubscribe { get; set; } + System.Func OnUnsubscribeAsync { get; set; } + void Publish(string selector, string message); + System.Threading.Tasks.Task PublishAsync(string selector, string message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void PublishRaw(string frame); + System.Threading.Tasks.Task PublishRawAsync(string frame, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void Pulse(); + System.Collections.Generic.Dictionary ServerArgs { get; set; } + string SessionId { get; } + string SubscriptionId { get; } + void Unsubscribe(); + System.Threading.Tasks.Task UnsubscribeAsync(); + void UpdateChannels(string[] channels); + string UserAddress { get; set; } + string UserId { get; } + string UserName { get; } + } + + // Generated from `ServiceStack.IHasAppHost` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasAppHost + { + ServiceStack.IAppHost AppHost { get; } + } + + // Generated from `ServiceStack.IHasServiceScope` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasServiceScope : System.IServiceProvider + { + Microsoft.Extensions.DependencyInjection.IServiceScope ServiceScope { get; set; } + } + + // Generated from `ServiceStack.IHasServiceStackProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasServiceStackProvider + { + ServiceStack.IServiceStackProvider ServiceStackProvider { get; } + } + + // Generated from `ServiceStack.IHasTypeValidators` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasTypeValidators + { + System.Collections.Generic.List TypeValidators { get; } + } + + // Generated from `ServiceStack.ILogic` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILogic : ServiceStack.IRepository + { + ServiceStack.Caching.ICacheClient Cache { get; } + ServiceStack.Messaging.IMessageFactory MessageFactory { get; } + ServiceStack.Messaging.IMessageProducer MessageProducer { get; } + void PublishMessage(T message); + ServiceStack.Redis.IRedisClient Redis { get; } + ServiceStack.Redis.IRedisClientsManager RedisManager { get; } + } + + // Generated from `ServiceStack.IMarkdownTransformer` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMarkdownTransformer + { + string Transform(string markdown); + } + + // Generated from `ServiceStack.IMsgPackPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMsgPackPlugin + { + } + + // Generated from `ServiceStack.INetSerializerPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface INetSerializerPlugin + { + } + + // Generated from `ServiceStack.IPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPlugin + { + void Register(ServiceStack.IAppHost appHost); + } + + // Generated from `ServiceStack.IPostInitPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPostInitPlugin + { + void AfterPluginsLoaded(ServiceStack.IAppHost appHost); + } + + // Generated from `ServiceStack.IPreConfigureAppHost` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPreConfigureAppHost + { + void PreConfigure(ServiceStack.IAppHost appHost); + } + + // Generated from `ServiceStack.IPreInitPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPreInitPlugin + { + void BeforePluginsLoaded(ServiceStack.IAppHost appHost); + } + + // Generated from `ServiceStack.IProtoBufPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IProtoBufPlugin + { + string GetProto(System.Type type); + } + + // Generated from `ServiceStack.IQueryDataSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryDataSource : System.IDisposable + { + int Count(ServiceStack.IDataQuery q); + ServiceStack.IDataQuery From(); + System.Collections.Generic.List LoadSelect(ServiceStack.IDataQuery q); + object SelectAggregate(ServiceStack.IDataQuery q, string name, System.Collections.Generic.IEnumerable args); + } + + // Generated from `ServiceStack.IQueryDataSource<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryDataSource : ServiceStack.IQueryDataSource, System.IDisposable + { + } + + // Generated from `ServiceStack.IQueryMultiple` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryMultiple + { + } + + // Generated from `ServiceStack.IRazorPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRazorPlugin + { + } + + // Generated from `ServiceStack.IRepository` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRepository + { + System.Data.IDbConnection Db { get; } + ServiceStack.Data.IDbConnectionFactory DbFactory { get; } + } + + // Generated from `ServiceStack.IRequireConfiguration` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequireConfiguration + { + Microsoft.Extensions.Configuration.IConfiguration Configuration { get; set; } + } + + // Generated from `ServiceStack.IServerEvents` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServerEvents : System.IDisposable + { + System.Collections.Generic.List GetAllSubscriptionInfos(); + System.Collections.Generic.List> GetAllSubscriptionsDetails(); + ServiceStack.MemoryServerEvents GetMemoryServerEvents(); + System.Int64 GetNextSequence(string sequenceId); + System.Collections.Generic.Dictionary GetStats(); + ServiceStack.SubscriptionInfo GetSubscriptionInfo(string id); + System.Collections.Generic.List GetSubscriptionInfosByUserId(string userId); + System.Collections.Generic.List> GetSubscriptionsDetails(params string[] channels); + void NotifyAll(string selector, object message); + System.Threading.Tasks.Task NotifyAllAsync(string selector, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task NotifyAllJsonAsync(string selector, string json, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void NotifyChannel(string channel, string selector, object message); + System.Threading.Tasks.Task NotifyChannelAsync(string channel, string selector, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task NotifyChannelJsonAsync(string channel, string selector, string json, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void NotifySession(string sessionId, string selector, object message, string channel = default(string)); + System.Threading.Tasks.Task NotifySessionAsync(string sessionId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task NotifySessionJsonAsync(string sessionId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void NotifySubscription(string subscriptionId, string selector, object message, string channel = default(string)); + System.Threading.Tasks.Task NotifySubscriptionAsync(string subscriptionId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task NotifySubscriptionJsonAsync(string subscriptionId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void NotifyUserId(string userId, string selector, object message, string channel = default(string)); + System.Threading.Tasks.Task NotifyUserIdAsync(string userId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task NotifyUserIdJsonAsync(string userId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void NotifyUserName(string userName, string selector, object message, string channel = default(string)); + System.Threading.Tasks.Task NotifyUserNameAsync(string userName, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task NotifyUserNameJsonAsync(string userName, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PulseAsync(string subscriptionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void QueueAsyncTask(System.Func task); + System.Threading.Tasks.Task RegisterAsync(ServiceStack.IEventSubscription subscription, System.Collections.Generic.Dictionary connectArgs = default(System.Collections.Generic.Dictionary), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + int RemoveExpiredSubscriptions(); + System.Threading.Tasks.Task RemoveExpiredSubscriptionsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void Reset(); + void Start(); + void Stop(); + System.Threading.Tasks.Task StopAsync(); + void SubscribeToChannels(string subscriptionId, string[] channels); + System.Threading.Tasks.Task SubscribeToChannelsAsync(string subscriptionId, string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UnRegisterAsync(string subscriptionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void UnsubscribeFromChannels(string subscriptionId, string[] channels); + System.Threading.Tasks.Task UnsubscribeFromChannelsAsync(string subscriptionId, string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.IServiceBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceBase : ServiceStack.Configuration.IResolver, ServiceStack.Web.IRequiresRequest + { + ServiceStack.Configuration.IResolver GetResolver(); + T ResolveService(); + } + + // Generated from `ServiceStack.IServiceStackProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceStackProvider : System.IDisposable + { + ServiceStack.Configuration.IAppSettings AppSettings { get; } + ServiceStack.Auth.IAuthRepository AuthRepository { get; } + ServiceStack.Auth.IAuthRepositoryAsync AuthRepositoryAsync { get; } + ServiceStack.Caching.ICacheClient Cache { get; } + ServiceStack.Caching.ICacheClientAsync CacheAsync { get; } + void ClearSession(); + System.Threading.Tasks.Task ClearSessionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Data.IDbConnection Db { get; } + object Execute(ServiceStack.Web.IRequest request); + object Execute(object requestDto); + TResponse Execute(ServiceStack.IReturn requestDto); + ServiceStack.IServiceGateway Gateway { get; } + System.Threading.Tasks.ValueTask GetRedisAsync(); + ServiceStack.Configuration.IResolver GetResolver(); + ServiceStack.Auth.IAuthSession GetSession(bool reload = default(bool)); + System.Threading.Tasks.Task GetSessionAsync(bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + bool IsAuthenticated { get; } + ServiceStack.Messaging.IMessageProducer MessageProducer { get; } + void PublishMessage(T message); + ServiceStack.Redis.IRedisClient Redis { get; } + ServiceStack.Web.IHttpRequest Request { get; } + T ResolveService(); + ServiceStack.Web.IHttpResponse Response { get; } + ServiceStack.RpcGateway RpcGateway { get; } + TUserSession SessionAs(); + System.Threading.Tasks.Task SessionAsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Caching.ISession SessionBag { get; } + ServiceStack.Caching.ISessionAsync SessionBagAsync { get; } + ServiceStack.Caching.ISessionFactory SessionFactory { get; } + void SetResolver(ServiceStack.Configuration.IResolver resolver); + T TryResolve(); + } + + // Generated from `ServiceStack.ITypeValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypeValidator + { + string ErrorCode { get; set; } + System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request); + string Message { get; set; } + int? StatusCode { get; set; } + System.Threading.Tasks.Task ThrowIfNotValidAsync(object dto, ServiceStack.Web.IRequest request); + } + + // Generated from `ServiceStack.ITypedQueryData` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypedQueryData + { + ServiceStack.IDataQuery AddToQuery(ServiceStack.IDataQuery q, ServiceStack.IQueryData request, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.IAutoQueryDataOptions options = default(ServiceStack.IAutoQueryDataOptions)); + ServiceStack.IDataQuery CreateQuery(ServiceStack.IQueryDataSource db); + ServiceStack.QueryResponse Execute(ServiceStack.IQueryDataSource db, ServiceStack.IDataQuery query); + } + + // Generated from `ServiceStack.IWirePlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IWirePlugin + { + } + + // Generated from `ServiceStack.IWriteEvent` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IWriteEvent + { + void WriteEvent(string msg); + } + + // Generated from `ServiceStack.IWriteEventAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IWriteEventAsync + { + System.Threading.Tasks.Task WriteEventAsync(string msg, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.ImageDrawingProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ImageDrawingProvider : ServiceStack.ImageProvider + { + public ImageDrawingProvider() => throw null; + public override System.IO.Stream Resize(System.IO.Stream origStream, int newWidth, int newHeight) => throw null; + } + + // Generated from `ServiceStack.ImageExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ImageExtensions + { + public static System.IO.MemoryStream CropToPng(this System.Drawing.Image img, int newWidth, int newHeight, int startX = default(int), int startY = default(int)) => throw null; + public static System.IO.MemoryStream ResizeToPng(this System.Drawing.Image img, int newWidth, int newHeight) => throw null; + } + + // Generated from `ServiceStack.ImageProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ImageProvider + { + protected ImageProvider() => throw null; + public static ServiceStack.ImageProvider Instance { get => throw null; set => throw null; } + public abstract System.IO.Stream Resize(System.IO.Stream stream, int newWidth, int newHeight); + public virtual System.IO.Stream Resize(System.IO.Stream origStream, string savePhotoSize = default(string)) => throw null; + } + + // Generated from `ServiceStack.ImagesHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ImagesHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public ServiceStack.StaticContent Fallback { get => throw null; } + public virtual ServiceStack.StaticContent Get(string path) => throw null; + public System.Collections.Generic.Dictionary ImageContents { get => throw null; } + public ImagesHandler(string path, ServiceStack.StaticContent fallback) => throw null; + public string Path { get => throw null; } + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public virtual string RewriteImageUri(string imageUri) => throw null; + public virtual void Save(string path, ServiceStack.StaticContent content) => throw null; + } + + // Generated from `ServiceStack.InBetweenCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InBetweenCondition : ServiceStack.QueryCondition, ServiceStack.IQueryMultiple + { + public override string Alias { get => throw null; } + public InBetweenCondition() => throw null; + public static ServiceStack.InBetweenCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.InCollectionCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InCollectionCondition : ServiceStack.QueryCondition, ServiceStack.IQueryMultiple + { + public override string Alias { get => throw null; } + public InCollectionCondition() => throw null; + public static ServiceStack.InCollectionCondition Instance; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.InProcessServiceGateway` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InProcessServiceGateway : ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync + { + public InProcessServiceGateway(ServiceStack.Web.IRequest req) => throw null; + public void Publish(object requestDto) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; + public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; } + public TResponse Send(object requestDto) => throw null; + public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; + public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.InfoScripts` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InfoScripts : ServiceStack.Script.ScriptMethods + { + public InfoScripts() => throw null; + public string env(string variable) => throw null; + public string envCommandLine() => throw null; + public string[] envCommandLineArgs() => throw null; + public string envCurrentDirectory() => throw null; + public string envExpandVariables(string name) => throw null; + public string envFrameworkDescription() => throw null; + public bool envIs64BitOperatingSystem() => throw null; + public bool envIs64BitProcess() => throw null; + public bool envIsAndroid() => throw null; + public bool envIsIOS() => throw null; + public bool envIsLinux() => throw null; + public bool envIsMono() => throw null; + public bool envIsOSX() => throw null; + public bool envIsWindows() => throw null; + public string[] envLogicalDrives() => throw null; + public string envMachineName() => throw null; + public System.Runtime.InteropServices.Architecture envOSArchitecture() => throw null; + public string envOSDescription() => throw null; + public System.OperatingSystem envOSVersion() => throw null; + public System.Char envPathSeparator() => throw null; + public int envProcessorCount() => throw null; + public string envServerUserAgent() => throw null; + public System.Decimal envServiceStackVersion() => throw null; + public string envStackTrace() => throw null; + public string envSystemDirectory() => throw null; + public int envTickCount() => throw null; + public string envUserDomainName() => throw null; + public string envUserName() => throw null; + public string envVariable(string variable) => throw null; + public System.Collections.IDictionary envVariables() => throw null; + public System.Version envVersion() => throw null; + public ServiceStack.HostConfig hostConfig(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string hostServiceName(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool isUnix() => throw null; + public bool isWin() => throw null; + public string licensedFeatures() => throw null; + public System.Collections.Generic.List metaAllDtoNames() => throw null; + public System.Collections.Generic.HashSet metaAllDtos() => throw null; + public System.Collections.Generic.List metaAllOperationNames() => throw null; + public System.Collections.Generic.List metaAllOperationTypes() => throw null; + public System.Collections.Generic.IEnumerable metaAllOperations() => throw null; + public ServiceStack.Host.Operation metaOperation(string name) => throw null; + public System.Collections.Generic.List networkIpv4Addresses() => throw null; + public System.Collections.Generic.List networkIpv6Addresses() => throw null; + public System.Collections.Generic.List plugins() => throw null; + public string userEmail(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool userHasPermission(ServiceStack.Script.ScriptScopeContext scope, string permission) => throw null; + public bool userHasRole(ServiceStack.Script.ScriptScopeContext scope, string role) => throw null; + public string userId(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string userName(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string userPermanentSessionId(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.Auth.IAuthSession userSession(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string userSessionId(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.HashSet userSessionOptions(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string userTempSessionId(ServiceStack.Script.ScriptScopeContext scope) => throw null; + } + + // Generated from `ServiceStack.IsAuthenticatedValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IsAuthenticatedValidator : ServiceStack.TypeValidator, ServiceStack.IAuthTypeValidator + { + public static string DefaultErrorMessage { get => throw null; set => throw null; } + public static ServiceStack.IsAuthenticatedValidator Instance { get => throw null; } + public IsAuthenticatedValidator() : base(default(string), default(string), default(int?)) => throw null; + public IsAuthenticatedValidator(string provider) : base(default(string), default(string), default(int?)) => throw null; + public override System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; + public string Provider { get => throw null; } + } + + // Generated from `ServiceStack.JsonOnly` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonOnly : ServiceStack.RequestFilterAttribute + { + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public JsonOnly() => throw null; + } + + // Generated from `ServiceStack.JsvOnly` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsvOnly : ServiceStack.RequestFilterAttribute + { + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public JsvOnly() => throw null; + } + + // Generated from `ServiceStack.Keywords` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Keywords + { + public const string AccessTokenAuth = default; + public const string Allows = default; + public const string ApiKey = default; + public static string ApiKeyParam; + public const string Attributes = default; + public static string AuthSecret; + public const string Authorization = default; + public const string AutoBatchIndex = default; + public static string Bare; + public const string CacheInfo = default; + public static string Callback; + public const string Code = default; + public static string Continue; + public const string Count = default; + public const string DbInfo = default; + public static string Debug; + public const string DidAuthenticate = default; + public const string Dynamic = default; + public const string Embed = default; + public const string Error = default; + public const string ErrorStatus = default; + public const string ErrorView = default; + public const string EventModelId = default; + public const string FilePath = default; + public static string Format; + public const string GrpcResponseStatus = default; + public const string HasGlobalHeaders = default; + public const string HasLogged = default; + public const string HasPreAuthenticated = default; + public const string HttpStatus = default; + public const string IRequest = default; + public const string Id = default; + public static string Ignore; + public const string IgnoreEvent = default; + public static string IgnorePlaceHolder; + public const string InvokeVerb = default; + public static string JsConfig; + public const string Model = default; + public static string NoRedirect; + public const string OAuthFailed = default; + public const string OAuthSuccess = default; + public static string PermanentSessionId; + public static string Redirect; + public static string RefreshTokenCookie; + public const string RequestActivity = default; + public const string RequestDuration = default; + public static string RequestInfo; + public const string Reset = default; + public const string Result = default; + public static string ReturnUrl; + public const string Route = default; + public const string RowVersion = default; + public const string Session = default; + public static string SessionId; + public static string SessionOptionsKey; + public const string SessionState = default; + public const string SoapMessage = default; + public const string State = default; + public const string Template = default; + public static string TokenCookie; + public const string TraceId = default; + public static string Version; + public static string VersionAbbr; + public static string VersionFxAbbr; + public const string View = default; + public const string WithoutOptions = default; + public static string XCookies; + public const string reset = default; + } + + // Generated from `ServiceStack.LessCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LessCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public static ServiceStack.LessCondition Instance; + public LessCondition() => throw null; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.LessEqualCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LessEqualCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public static ServiceStack.LessEqualCondition Instance; + public LessEqualCondition() => throw null; + public override bool Match(object a, object b) => throw null; + } + + // Generated from `ServiceStack.LispReplTcpServer` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LispReplTcpServer : ServiceStack.IAfterInitAppHost, ServiceStack.IPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, System.IDisposable + { + public void AfterInit(ServiceStack.IAppHost appHost) => throw null; + public bool? AllowScriptingOfAllTypes { get => throw null; set => throw null; } + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public void Dispose() => throw null; + public string Id { get => throw null; set => throw null; } + public LispReplTcpServer() => throw null; + public LispReplTcpServer(System.Net.IPAddress localIp, int port) => throw null; + public LispReplTcpServer(int port) => throw null; + public LispReplTcpServer(string localIp, int port) => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + public bool RequireAuthSecret { get => throw null; set => throw null; } + public System.Collections.Generic.List ScanAssemblies { get => throw null; set => throw null; } + public System.Collections.Generic.List ScanTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List ScriptAssemblies { get => throw null; set => throw null; } + public System.Collections.Generic.List ScriptBlocks { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptContext ScriptContext { get => throw null; set => throw null; } + public System.Collections.Generic.List ScriptMethods { get => throw null; set => throw null; } + public System.Collections.Generic.List ScriptNamespaces { get => throw null; set => throw null; } + public System.Collections.Generic.List ScriptTypes { get => throw null; set => throw null; } + public void Start() => throw null; + public void StartListening() => throw null; + public void Stop() => throw null; + } + + // Generated from `ServiceStack.LocalizedStrings` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class LocalizedStrings + { + public const string AssignRoles = default; + public const string Auth = default; + public const string Authenticate = default; + public const string Login = default; + public const string NotModified = default; + public const string Redirect = default; + public const string UnassignRoles = default; + } + + // Generated from `ServiceStack.LogExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class LogExtensions + { + public static void ErrorStrict(this ServiceStack.Logging.ILog log, string message, System.Exception ex) => throw null; + public static bool IsNullOrNullLogFactory(this ServiceStack.Logging.ILogFactory factory) => throw null; + } + + // Generated from `ServiceStack.LogicBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class LogicBase : ServiceStack.RepositoryBase, ServiceStack.ILogic, ServiceStack.IRepository + { + public virtual ServiceStack.Caching.ICacheClient Cache { get => throw null; set => throw null; } + public override void Dispose() => throw null; + protected LogicBase() => throw null; + public virtual ServiceStack.Messaging.IMessageFactory MessageFactory { get => throw null; set => throw null; } + public virtual ServiceStack.Messaging.IMessageProducer MessageProducer { get => throw null; set => throw null; } + public virtual void PublishMessage(T message) => throw null; + public virtual ServiceStack.Redis.IRedisClient Redis { get => throw null; } + public virtual ServiceStack.Redis.IRedisClientsManager RedisManager { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ManageApiKeysAsyncWrapper` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ManageApiKeysAsyncWrapper : ServiceStack.Auth.IManageApiKeysAsync + { + public System.Threading.Tasks.Task ApiKeyExistsAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetApiKeyAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> GetUserApiKeysAsync(string userId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void InitApiKeySchema() => throw null; + public ManageApiKeysAsyncWrapper(ServiceStack.Auth.IManageApiKeys manageApiKeys) => throw null; + public System.Threading.Tasks.Task StoreAllAsync(System.Collections.Generic.IEnumerable apiKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.MarkdownConfig` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MarkdownConfig + { + public static string Transform(string html) => throw null; + public static ServiceStack.IMarkdownTransformer Transformer { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MarkdownPageFormat` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MarkdownPageFormat : ServiceStack.Script.PageFormat + { + public MarkdownPageFormat() => throw null; + public static System.Threading.Tasks.Task TransformToHtml(System.IO.Stream markdownStream) => throw null; + } + + // Generated from `ServiceStack.MarkdownScriptBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MarkdownScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public MarkdownScriptBlock() => throw null; + public override string Name { get => throw null; } + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.MarkdownScriptMethods` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MarkdownScriptMethods : ServiceStack.Script.ScriptMethods + { + public MarkdownScriptMethods() => throw null; + public ServiceStack.IRawString markdown(string markdown) => throw null; + } + + // Generated from `ServiceStack.MarkdownScriptPlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MarkdownScriptPlugin : ServiceStack.Script.IScriptPlugin + { + public MarkdownScriptPlugin() => throw null; + public void Register(ServiceStack.Script.ScriptContext context) => throw null; + public bool RegisterPageFormat { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MarkdownTemplateFilter` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MarkdownTemplateFilter : ServiceStack.MarkdownScriptMethods + { + public MarkdownTemplateFilter() => throw null; + } + + // Generated from `ServiceStack.MarkdownTemplatePlugin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MarkdownTemplatePlugin : ServiceStack.MarkdownScriptPlugin + { + public MarkdownTemplatePlugin() => throw null; + } + + // Generated from `ServiceStack.MemoryDataSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MemoryDataSource + { + public static ServiceStack.MemoryDataSource Create(System.Collections.Generic.ICollection data, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + } + + // Generated from `ServiceStack.MemoryDataSource<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MemoryDataSource : ServiceStack.QueryDataSource + { + public static ServiceStack.MemoryDataSource Create(System.Collections.Generic.IEnumerable data, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public System.Collections.Generic.IEnumerable Data { get => throw null; } + public override System.Collections.Generic.IEnumerable GetDataSource(ServiceStack.IDataQuery q) => throw null; + public MemoryDataSource(System.Collections.Generic.IEnumerable data, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req) : base(default(ServiceStack.QueryDataContext)) => throw null; + public MemoryDataSource(ServiceStack.QueryDataContext context, System.Collections.Generic.IEnumerable data) : base(default(ServiceStack.QueryDataContext)) => throw null; + } + + // Generated from `ServiceStack.MemoryServerEvents` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MemoryServerEvents : ServiceStack.IServerEvents, System.IDisposable + { + public System.Collections.Concurrent.ConcurrentDictionary> ChannelSubscriptions; + public void Dispose() => throw null; + public System.Threading.Tasks.Task DisposeAsync() => throw null; + protected System.Threading.Tasks.Task FlushNopAsync(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static bool FlushNopOnSubscription; + public System.Threading.Tasks.Task FlushNopToChannelsAsync(string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.List GetAllSubscriptionInfos() => throw null; + public System.Collections.Generic.List> GetAllSubscriptionsDetails() => throw null; + public ServiceStack.MemoryServerEvents GetMemoryServerEvents() => throw null; + public System.Int64 GetNextSequence(string sequenceId) => throw null; + public System.Collections.Generic.Dictionary GetStats() => throw null; + public ServiceStack.IEventSubscription GetSubscription(string id) => throw null; + public ServiceStack.SubscriptionInfo GetSubscriptionInfo(string id) => throw null; + public System.Collections.Generic.List GetSubscriptionInfosByUserId(string userId) => throw null; + public System.Collections.Generic.List> GetSubscriptionsDetails(params string[] channels) => throw null; + public System.TimeSpan HouseKeepingInterval { get => throw null; set => throw null; } + public System.TimeSpan IdleTimeout { get => throw null; set => throw null; } + public MemoryServerEvents() => throw null; + protected void Notify(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string selector, object message, string channel = default(string)) => throw null; + protected void Notify(System.Collections.Concurrent.ConcurrentDictionary map, string key, string selector, object message, string channel = default(string)) => throw null; + public void NotifyAll(string selector, object message) => throw null; + public System.Threading.Tasks.Task NotifyAllAsync(string selector, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task NotifyAllJsonAsync(string selector, string json, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected System.Threading.Tasks.Task NotifyAsync(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected System.Threading.Tasks.Task NotifyAsync(System.Collections.Concurrent.ConcurrentDictionary map, string key, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void NotifyChannel(string channel, string selector, object message) => throw null; + public System.Threading.Tasks.Task NotifyChannelAsync(string channel, string selector, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task NotifyChannelJsonAsync(string channel, string selector, string json, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public bool NotifyChannelOfSubscriptions { get => throw null; set => throw null; } + public System.Threading.Tasks.Task NotifyChannelsAsync(string[] channels, string selector, string body, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Func NotifyHeartbeatAsync { get => throw null; set => throw null; } + public System.Func NotifyJoinAsync { get => throw null; set => throw null; } + public System.Func NotifyLeaveAsync { get => throw null; set => throw null; } + protected void NotifyRaw(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string selector, string body, string channel = default(string)) => throw null; + protected System.Threading.Tasks.Task NotifyRawAsync(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string selector, string body, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected System.Threading.Tasks.Task NotifyRawAsync(System.Collections.Concurrent.ConcurrentDictionary map, string key, string selector, string body, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void NotifySession(string sessionId, string selector, object message, string channel = default(string)) => throw null; + public System.Threading.Tasks.Task NotifySessionAsync(string sessionId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task NotifySessionJsonAsync(string sessionId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void NotifySubscription(string subscriptionId, string selector, object message, string channel = default(string)) => throw null; + public System.Threading.Tasks.Task NotifySubscriptionAsync(string subscriptionId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task NotifySubscriptionJsonAsync(string subscriptionId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Func NotifyUpdateAsync { get => throw null; set => throw null; } + public void NotifyUserId(string userId, string selector, object message, string channel = default(string)) => throw null; + public System.Threading.Tasks.Task NotifyUserIdAsync(string userId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task NotifyUserIdJsonAsync(string userId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void NotifyUserName(string userName, string selector, object message, string channel = default(string)) => throw null; + public System.Threading.Tasks.Task NotifyUserNameAsync(string userName, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task NotifyUserNameJsonAsync(string userName, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Action OnError { get => throw null; set => throw null; } + public System.Func OnRemoveSubscriptionAsync { get => throw null; set => throw null; } + public System.Func OnSubscribeAsync { get => throw null; set => throw null; } + public System.Func OnUnsubscribeAsync { get => throw null; set => throw null; } + public System.Func OnUpdateAsync { get => throw null; set => throw null; } + public bool Pulse(string id) => throw null; + public System.Threading.Tasks.Task PulseAsync(string id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void QueueAsyncTask(System.Func task) => throw null; + public System.Threading.Tasks.Task RegisterAsync(ServiceStack.IEventSubscription subscription, System.Collections.Generic.Dictionary connectArgs = default(System.Collections.Generic.Dictionary), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void RegisterHungConnection(ServiceStack.IEventSubscription sub) => throw null; + public int RemoveExpiredSubscriptions() => throw null; + public System.Threading.Tasks.Task RemoveExpiredSubscriptionsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Reset() => throw null; + public System.Func Serialize { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary> SessionSubscriptions; + public void Start() => throw null; + public void Stop() => throw null; + public System.Threading.Tasks.Task StopAsync() => throw null; + public void SubscribeToChannels(string subscriptionId, string[] channels) => throw null; + public System.Threading.Tasks.Task SubscribeToChannelsAsync(string subscriptionId, string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Concurrent.ConcurrentDictionary Subscriptions; + public void UnRegister(string subscriptionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task UnRegisterAsync(string subscriptionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void UnsubscribeFromChannels(string subscriptionId, string[] channels) => throw null; + public System.Threading.Tasks.Task UnsubscribeFromChannelsAsync(string subscriptionId, string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Concurrent.ConcurrentDictionary> UserIdSubscriptions; + public System.Collections.Concurrent.ConcurrentDictionary> UserNameSubscriptions; + } + + // Generated from `ServiceStack.MemoryValidationSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MemoryValidationSource : ServiceStack.Auth.IClearable, ServiceStack.IValidationSource, ServiceStack.IValidationSourceAdmin + { + public void Clear() => throw null; + public System.Threading.Tasks.Task ClearCacheAsync() => throw null; + public System.Threading.Tasks.Task DeleteValidationRulesAsync(params int[] ids) => throw null; + public System.Collections.Generic.List GetAllValidateRules() => throw null; + public System.Threading.Tasks.Task> GetAllValidateRulesAsync() => throw null; + public System.Threading.Tasks.Task> GetAllValidateRulesAsync(string typeName) => throw null; + public System.Threading.Tasks.Task> GetValidateRulesByIdsAsync(params int[] ids) => throw null; + public System.Collections.Generic.IEnumerable> GetValidationRules(System.Type type) => throw null; + public MemoryValidationSource() => throw null; + public void SaveValidationRules(System.Collections.Generic.List validateRules) => throw null; + public System.Threading.Tasks.Task SaveValidationRulesAsync(System.Collections.Generic.List validateRules) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary[]> TypeRulesMap; + } + + // Generated from `ServiceStack.MetadataAppService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataAppService : ServiceStack.Service + { + public ServiceStack.AppMetadata Any(ServiceStack.MetadataApp request) => throw null; + public MetadataAppService() => throw null; + public ServiceStack.NativeTypes.INativeTypesMetadata NativeTypesMetadata { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MetadataDebug` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataDebug : ServiceStack.IReturn, ServiceStack.IReturn + { + public string AuthSecret { get => throw null; set => throw null; } + public MetadataDebug() => throw null; + public string Script { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MetadataDebugService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataDebugService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.MetadataDebug request) => throw null; + public static string DefaultTemplate; + public System.Threading.Tasks.Task GetHtml(ServiceStack.MetadataDebug request) => throw null; + public MetadataDebugService() => throw null; + public static string Route; + } + + // Generated from `ServiceStack.MetadataFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataFeature : ServiceStack.IPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public System.Collections.Generic.List> AfterAppMetadataFilters { get => throw null; } + public System.Collections.Generic.List> AppMetadataFilters { get => throw null; } + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public System.Collections.Generic.Dictionary DebugLinks { get => throw null; set => throw null; } + public string DebugLinksTitle { get => throw null; set => throw null; } + public System.Action DetailPageFilter { get => throw null; set => throw null; } + public bool EnableAppMetadata { get => throw null; set => throw null; } + public bool EnableNav { get => throw null; set => throw null; } + public System.Collections.Generic.List ExportTypes { get => throw null; } + public ServiceStack.HtmlModule HtmlModule { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Action IndexPageFilter { get => throw null; set => throw null; } + public MetadataFeature() => throw null; + public System.Collections.Generic.Dictionary PluginLinks { get => throw null; set => throw null; } + public string PluginLinksTitle { get => throw null; set => throw null; } + public virtual ServiceStack.Host.IHttpHandler ProcessRequest(string httpMethod, string pathInfo, string filePath) => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + public bool ShowResponseStatusInMetadataPages { get => throw null; set => throw null; } + public System.Func TagFilter { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MetadataNavService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataNavService : ServiceStack.Service + { + public object Get(ServiceStack.GetNavItems request) => throw null; + public MetadataNavService() => throw null; + } + + // Generated from `ServiceStack.MetadataUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MetadataUtils + { + public static ServiceStack.MetadataFeature AddDebugLink(this ServiceStack.MetadataFeature metadata, string href, string title) => throw null; + public static ServiceStack.MetadataFeature AddPluginLink(this ServiceStack.MetadataFeature metadata, string href, string title) => throw null; + public static void LocalizeMetadata(ServiceStack.Web.IRequest req, ServiceStack.AppMetadata response) => throw null; + public static ServiceStack.MetadataFeature RemoveDebugLink(this ServiceStack.MetadataFeature metadata, string href) => throw null; + public static ServiceStack.MetadataFeature RemovePluginLink(this ServiceStack.MetadataFeature metadata, string href) => throw null; + public static ServiceStack.AppMetadata ToAppMetadata(this ServiceStack.NativeTypes.INativeTypesMetadata nativeTypesMetadata, ServiceStack.Web.IRequest req) => throw null; + } + + // Generated from `ServiceStack.MinifyCssScriptBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MinifyCssScriptBlock : ServiceStack.MinifyScriptBlockBase + { + public override ServiceStack.ICompressor Minifier { get => throw null; } + public MinifyCssScriptBlock() => throw null; + public override string Name { get => throw null; } + } + + // Generated from `ServiceStack.MinifyHtmlScriptBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MinifyHtmlScriptBlock : ServiceStack.MinifyScriptBlockBase + { + public override ServiceStack.ICompressor Minifier { get => throw null; } + public MinifyHtmlScriptBlock() => throw null; + public override string Name { get => throw null; } + } + + // Generated from `ServiceStack.MinifyJsScriptBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MinifyJsScriptBlock : ServiceStack.MinifyScriptBlockBase + { + public override ServiceStack.ICompressor Minifier { get => throw null; } + public MinifyJsScriptBlock() => throw null; + public override string Name { get => throw null; } + } + + // Generated from `ServiceStack.MinifyScriptBlockBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class MinifyScriptBlockBase : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public System.ReadOnlyMemory GetMinifiedOutputCache(System.ReadOnlyMemory contents) => throw null; + public abstract ServiceStack.ICompressor Minifier { get; } + protected MinifyScriptBlockBase() => throw null; + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.ModularExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ModularExtensions + { + public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddModularStartup(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration configuration) where THost : ServiceStack.AppHostBase => throw null; + public static System.Collections.Generic.List PriorityBelowZero(this System.Collections.Generic.List> instances) => throw null; + public static System.Collections.Generic.List PriorityOrdered(this System.Collections.Generic.List> instances) => throw null; + public static System.Collections.Generic.List PriorityZeroOrAbove(this System.Collections.Generic.List> instances) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseModularStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) where TStartup : class => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseModularStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) where TStartup : class => throw null; + public static System.Collections.Generic.List> WithPriority(this System.Collections.Generic.IEnumerable instances) => throw null; + } + + // Generated from `ServiceStack.ModularStartup` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ModularStartup : Microsoft.AspNetCore.Hosting.IStartup + { + public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } + public void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; + public System.IServiceProvider ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + public static System.Type Create() => throw null; + public object CreateStartupInstance(System.Type type) => throw null; + public System.Collections.Generic.List> GetPriorityInstances() => throw null; + public System.Collections.Generic.List IgnoreTypes { get => throw null; set => throw null; } + public static ServiceStack.ModularStartup Instance { get => throw null; set => throw null; } + public virtual bool LoadType(System.Type startupType) => throw null; + public System.Collections.Generic.List LoadedConfigurations { get => throw null; set => throw null; } + protected ModularStartup() => throw null; + protected ModularStartup(Microsoft.Extensions.Configuration.IConfiguration configuration, System.Func> typesResolver) => throw null; + protected ModularStartup(Microsoft.Extensions.Configuration.IConfiguration configuration, System.Type[] types) => throw null; + protected ModularStartup(Microsoft.Extensions.Configuration.IConfiguration configuration, params System.Reflection.Assembly[] assemblies) => throw null; + public System.Collections.Generic.List ScanAssemblies { get => throw null; } + public System.Func> TypeResolver { get => throw null; } + } + + // Generated from `ServiceStack.ModularStartupActivator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ModularStartupActivator + { + protected Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; } + public virtual void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; + public virtual void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + protected ServiceStack.ModularStartup Instance; + public ModularStartupActivator(Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; + public static System.Type StartupType { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MqExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MqExtensions + { + public static System.Collections.Generic.Dictionary ToHeaders(this ServiceStack.Messaging.IMessage message) => throw null; + } + + // Generated from `ServiceStack.MqRequestDiagnosticEvent` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MqRequestDiagnosticEvent : ServiceStack.DiagnosticEvent + { + public object Body { get => throw null; set => throw null; } + public ServiceStack.Messaging.IMessage Message { get => throw null; set => throw null; } + public ServiceStack.Messaging.IMessageQueueClient MqClient { get => throw null; set => throw null; } + public MqRequestDiagnosticEvent() => throw null; + public ServiceStack.IOneWayClient OneWayClient { get => throw null; set => throw null; } + public string ReplyTo { get => throw null; set => throw null; } + public override string Source { get => throw null; } + } + + // Generated from `ServiceStack.NativeTypesFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NativeTypesFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public ServiceStack.NativeTypes.MetadataTypesGenerator DefaultGenerator { get => throw null; set => throw null; } + public static bool DisableTokenVerification { get => throw null; set => throw null; } + public void ExportAttribute(System.Type attributeType, System.Func converter) => throw null; + public void ExportAttribute(System.Func converter) => throw null; + public ServiceStack.NativeTypes.MetadataTypesGenerator GetGenerator() => throw null; + public string Id { get => throw null; set => throw null; } + public ServiceStack.MetadataTypesConfig MetadataTypesConfig { get => throw null; set => throw null; } + public NativeTypesFeature() => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.NetCoreAppHostExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class NetCoreAppHostExtensions + { + public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureAppHost(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, System.Action beforeConfigure = default(System.Action), System.Action afterConfigure = default(System.Action), System.Action afterPluginsLoaded = default(System.Action), System.Action afterAppHostInit = default(System.Action)) => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceScope CreateScope(this ServiceStack.Web.IRequest req) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder GetApp(this ServiceStack.IAppHost appHost) => throw null; + public static System.IServiceProvider GetApplicationServices(this ServiceStack.IAppHost appHost) => throw null; + public static Microsoft.Extensions.Configuration.IConfiguration GetConfiguration(this ServiceStack.IAppHost appHost) => throw null; + public static Microsoft.AspNetCore.Hosting.IWebHostEnvironment GetHostingEnvironment(this ServiceStack.IAppHost appHost) => throw null; + public static System.Collections.Generic.IEnumerable GetServices(this ServiceStack.Web.IRequest req, System.Type type) => throw null; + public static System.Collections.Generic.IEnumerable GetServices(this ServiceStack.Web.IRequest req) => throw null; + public static bool IsDevelopmentEnvironment(this ServiceStack.IAppHost appHost) => throw null; + public static bool IsProductionEnvironment(this ServiceStack.IAppHost appHost) => throw null; + public static bool IsStagingEnvironment(this ServiceStack.IAppHost appHost) => throw null; + public static T Resolve(this System.IServiceProvider provider) => throw null; + public static object ResolveScoped(this ServiceStack.Web.IRequest req, System.Type type) => throw null; + public static T ResolveScoped(this ServiceStack.Web.IRequest req) => throw null; + public static ServiceStack.Web.IHttpRequest ToRequest(this Microsoft.AspNetCore.Http.HttpContext httpContext, string operationName = default(string)) => throw null; + public static ServiceStack.Web.IHttpRequest ToRequest(this Microsoft.AspNetCore.Http.HttpRequest request, string operationName = default(string)) => throw null; + public static T TryResolve(this System.IServiceProvider provider) => throw null; + public static object TryResolveScoped(this ServiceStack.Web.IRequest req, System.Type type) => throw null; + public static T TryResolveScoped(this ServiceStack.Web.IRequest req) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder Use(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, ServiceStack.Host.IHttpAsyncHandler httpHandler) => throw null; + public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseServiceStack(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, ServiceStack.AppHostBase appHost) => throw null; + } + + // Generated from `ServiceStack.NetCoreAppSettings` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreAppSettings : ServiceStack.Configuration.IAppSettings + { + public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; } + public bool Exists(string key) => throw null; + public T Get(string name) => throw null; + public T Get(string name, T defaultValue) => throw null; + public System.Collections.Generic.Dictionary GetAll() => throw null; + public System.Collections.Generic.List GetAllKeys() => throw null; + public System.Collections.Generic.IDictionary GetDictionary(string key) => throw null; + public System.Collections.Generic.List> GetKeyValuePairs(string key) => throw null; + public System.Collections.Generic.IList GetList(string key) => throw null; + public string GetString(string name) => throw null; + public NetCoreAppSettings(Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; + public void Set(string key, T value) => throw null; + } + + // Generated from `ServiceStack.NotEqualCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NotEqualCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public static ServiceStack.NotEqualCondition Instance; + public override bool Match(object a, object b) => throw null; + public NotEqualCondition() => throw null; + } + + // Generated from `ServiceStack.OrderByExpression` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OrderByExpression : ServiceStack.FilterExpression + { + public override System.Collections.Generic.IEnumerable Apply(System.Collections.Generic.IEnumerable source) => throw null; + public ServiceStack.GetMemberDelegate[] FieldGetters { get => throw null; set => throw null; } + public string[] FieldNames { get => throw null; set => throw null; } + public bool[] OrderAsc { get => throw null; set => throw null; } + public OrderByExpression(string[] fieldNames, ServiceStack.GetMemberDelegate[] fieldGetters, bool[] orderAsc) => throw null; + public OrderByExpression(string fieldName, ServiceStack.GetMemberDelegate fieldGetter, bool orderAsc = default(bool)) => throw null; + } + + // Generated from `ServiceStack.PersistentImagesHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PersistentImagesHandler : ServiceStack.ImagesHandler + { + public string DirPath { get => throw null; } + public override ServiceStack.StaticContent Get(string path) => throw null; + public PersistentImagesHandler(string path, ServiceStack.StaticContent fallback, ServiceStack.IO.IVirtualFiles virtualFiles, string dirPath) : base(default(string), default(ServiceStack.StaticContent)) => throw null; + public override void Save(string path, ServiceStack.StaticContent content) => throw null; + public ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; } + } + + // Generated from `ServiceStack.Platform` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Platform + { + public virtual string GetAppConfigPath() => throw null; + public virtual string GetAppSetting(string key) => throw null; + public virtual string GetAppSetting(string key, string defaultValue) => throw null; + public virtual T GetAppSetting(string key, T defaultValue) => throw null; + public virtual string GetConnectionString(string key) => throw null; + public virtual System.Collections.Generic.Dictionary GetCookiesAsDictionary(ServiceStack.Web.IRequest httpReq) => throw null; + public virtual System.Collections.Generic.Dictionary GetCookiesAsDictionary(ServiceStack.Web.IResponse httpRes) => throw null; + public virtual string GetNullableAppSetting(string key) => throw null; + public virtual System.Collections.Generic.HashSet GetRazorNamespaces() => throw null; + public virtual void InitHostConfig(ServiceStack.HostConfig config) => throw null; + public static ServiceStack.Platform Instance; + public static T ParseTextValue(string textValue) => throw null; + public Platform() => throw null; + } + + // Generated from `ServiceStack.Plugins` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Plugins + { + public static void AddToAppMetadata(this ServiceStack.IAppHost appHost, System.Action fn) => throw null; + public const string AdminUsers = default; + public const string Auth = default; + public const string AutoQuery = default; + public const string AutoQueryData = default; + public const string AutoQueryMetadata = default; + public const string CancelRequests = default; + public const string Cors = default; + public const string Csv = default; + public const string Desktop = default; + public const string EncryptedMessaging = default; + public const string FileUpload = default; + public const string Grpc = default; + public const string HotReload = default; + public const string Html = default; + public const string HttpCache = default; + public const string LispTcpServer = default; + public const string Metadata = default; + public const string MiniProfiler = default; + public static void ModifyAppMetadata(this ServiceStack.IAppHost appHost, System.Action fn) => throw null; + public const string MsgPack = default; + public const string NativeTypes = default; + public const string OpenApi = default; + public const string Postman = default; + public const string PredefinedRoutes = default; + public const string Profiling = default; + public const string ProtoBuf = default; + public const string Proxy = default; + public const string Razor = default; + public const string RedisErrorLogs = default; + public const string Register = default; + public const string RequestInfo = default; + public const string RequestLogs = default; + public const string ServerEvents = default; + public const string Session = default; + public const string SharpPages = default; + public const string Sitemap = default; + public const string Soap = default; + public const string Svg = default; + public const string Swagger = default; + public const string Ui = default; + public const string Validation = default; + public const string WebSudo = default; + } + + // Generated from `ServiceStack.PocoDataSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class PocoDataSource + { + public static ServiceStack.PocoDataSource Create(System.Collections.Generic.ICollection items) => throw null; + public static ServiceStack.PocoDataSource Create(System.Collections.Generic.ICollection items, System.Func, System.Int64> nextId) => throw null; + public static ServiceStack.PocoDataSource Create(System.Collections.Generic.IEnumerable items, System.Func, System.Int64> nextIdSequence) => throw null; + public static ServiceStack.PocoDataSource Create(System.Collections.Generic.IEnumerable items, System.Int64 idSequence) => throw null; + } + + // Generated from `ServiceStack.PocoDataSource<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PocoDataSource + { + public T Add(T item) => throw null; + public System.Collections.Generic.List GetAll() => throw null; + public System.Int64 NextId() => throw null; + public PocoDataSource(System.Collections.Generic.IEnumerable items, System.Int64 nextIdSequence = default(System.Int64)) => throw null; + public T Save(T item) => throw null; + public ServiceStack.MemoryDataSource ToDataSource(ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req) => throw null; + public bool TryDelete(T item) => throw null; + public bool TryDeleteById(object itemId) => throw null; + public int TryDeleteByIds(System.Collections.Generic.IEnumerable itemIds) => throw null; + public bool TryUpdate(T item) => throw null; + public bool TryUpdateById(T item, object itemId) => throw null; + } + + // Generated from `ServiceStack.Postman` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Postman + { + public bool ExportSession { get => throw null; set => throw null; } + public System.Collections.Generic.List Label { get => throw null; set => throw null; } + public Postman() => throw null; + public string ssid { get => throw null; set => throw null; } + public string ssopt { get => throw null; set => throw null; } + public string sspid { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PostmanCollection` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanCollection + { + public PostmanCollection() => throw null; + public ServiceStack.PostmanCollectionInfo info { get => throw null; set => throw null; } + public System.Collections.Generic.List item { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PostmanCollectionInfo` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanCollectionInfo + { + public PostmanCollectionInfo() => throw null; + public string name { get => throw null; set => throw null; } + public string schema { get => throw null; set => throw null; } + public string version { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PostmanData` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanData + { + public PostmanData() => throw null; + public string key { get => throw null; set => throw null; } + public string type { get => throw null; set => throw null; } + public string value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PostmanExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class PostmanExtensions + { + public static System.Collections.Generic.Dictionary ApplyPropertyTypes(this System.Collections.Generic.IEnumerable names, System.Collections.Generic.Dictionary typeMap, string defaultValue = default(string)) => throw null; + public static System.Collections.Generic.List ApplyPropertyTypes(this System.Collections.Generic.List data, System.Collections.Generic.Dictionary typeMap, string defaultValue = default(string)) => throw null; + public static string AsFriendlyName(this System.Type type, ServiceStack.PostmanFeature feature) => throw null; + public static string ToPostmanPathVariables(this string path) => throw null; + } + + // Generated from `ServiceStack.PostmanFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanFeature : ServiceStack.IPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string AtRestPath { get => throw null; set => throw null; } + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public System.Collections.Generic.List DefaultLabelFmt { get => throw null; set => throw null; } + public System.Collections.Generic.List DefaultVerbsForAny { get => throw null; set => throw null; } + public bool? EnableSessionExport { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary FriendlyTypeNames; + public string Headers { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public PostmanFeature() => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.PostmanRequest` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanRequest + { + public PostmanRequest() => throw null; + public string name { get => throw null; set => throw null; } + public ServiceStack.PostmanRequestDetails request { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PostmanRequestBody` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanRequestBody + { + public PostmanRequestBody() => throw null; + public System.Collections.Generic.List formdata { get => throw null; set => throw null; } + public string mode { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PostmanRequestDetails` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanRequestDetails + { + public PostmanRequestDetails() => throw null; + public ServiceStack.PostmanRequestBody body { get => throw null; set => throw null; } + public string header { get => throw null; set => throw null; } + public string method { get => throw null; set => throw null; } + public ServiceStack.PostmanRequestUrl url { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PostmanRequestKeyValue` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanRequestKeyValue + { + public PostmanRequestKeyValue() => throw null; + public string key { get => throw null; set => throw null; } + public string value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PostmanRequestUrl` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanRequestUrl + { + public PostmanRequestUrl() => throw null; + public string host { 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 string protocol { get => throw null; set => throw null; } + public System.Collections.Generic.List query { get => throw null; set => throw null; } + public string raw { get => throw null; set => throw null; } + public System.Collections.Generic.List variable { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.PostmanService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PostmanService : ServiceStack.Service + { + public object Any(ServiceStack.Postman request) => throw null; + public string GetName(ServiceStack.PostmanFeature feature, ServiceStack.Postman request, System.Type requestType, string virtualPath) => throw null; + public System.Collections.Generic.List GetRequests(ServiceStack.Postman request, string parentId, System.Collections.Generic.IEnumerable operations) => throw null; + public PostmanService() => throw null; + } + + // Generated from `ServiceStack.PreProcessRequest` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PreProcessRequest : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public System.Threading.Tasks.Task HandleFileUploadsAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto) => throw null; + public System.Func> HandleUploadFileAsync { get => throw null; set => throw null; } + public string Id { get => throw null; } + public PreProcessRequest() => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.PredefinedRoutesFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PredefinedRoutesFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public System.Collections.Generic.Dictionary> HandlerMappings { get => throw null; } + public string Id { get => throw null; set => throw null; } + public string JsonApiRoute { get => throw null; set => throw null; } + public PredefinedRoutesFeature() => throw null; + public ServiceStack.Host.IHttpHandler ProcessRequest(string httpMethod, string pathInfo, string filePath) => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + } + + // Generated from `ServiceStack.ProfilerDiagnosticObserver` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProfilerDiagnosticObserver : System.IObserver>, System.IObserver + { + public static int AnalyzeCommandLength { get => throw null; set => throw null; } + public ServiceStack.DiagnosticEntry CreateDiagnosticEntry(ServiceStack.DiagnosticEvent e, ServiceStack.DiagnosticEvent orig = default(ServiceStack.DiagnosticEvent)) => throw null; + public ServiceStack.DiagnosticEntry Filter(ServiceStack.DiagnosticEntry entry, ServiceStack.DiagnosticEvent e) => throw null; + public System.Collections.Generic.List GetLatestEntries(int? take) => throw null; + public System.Collections.Generic.List GetPendingEntries(int? take) => throw null; + public void OnCompleted() => throw null; + void System.IObserver.OnCompleted() => throw null; + public void OnError(System.Exception error) => throw null; + void System.IObserver.OnError(System.Exception error) => throw null; + void System.IObserver.OnNext(System.Diagnostics.DiagnosticListener diagnosticListener) => throw null; + public void OnNext(System.Collections.Generic.KeyValuePair kvp) => throw null; + public ProfilerDiagnosticObserver(ServiceStack.ProfilingFeature feature) => throw null; + public static void SetException(ServiceStack.DiagnosticEntry to, System.Exception ex) => throw null; + public ServiceStack.DiagnosticEntry ToDiagnosticEntry(ServiceStack.HttpClientDiagnosticEvent e, ServiceStack.HttpClientDiagnosticEvent orig = default(ServiceStack.HttpClientDiagnosticEvent)) => throw null; + public ServiceStack.DiagnosticEntry ToDiagnosticEntry(ServiceStack.MqRequestDiagnosticEvent e, ServiceStack.MqRequestDiagnosticEvent orig = default(ServiceStack.MqRequestDiagnosticEvent)) => throw null; + public ServiceStack.DiagnosticEntry ToDiagnosticEntry(ServiceStack.OrmLiteDiagnosticEvent e, ServiceStack.OrmLiteDiagnosticEvent orig = default(ServiceStack.OrmLiteDiagnosticEvent)) => throw null; + public ServiceStack.DiagnosticEntry ToDiagnosticEntry(ServiceStack.RedisDiagnosticEvent e, ServiceStack.RedisDiagnosticEvent orig = default(ServiceStack.RedisDiagnosticEvent)) => throw null; + public ServiceStack.DiagnosticEntry ToDiagnosticEntry(ServiceStack.RequestDiagnosticEvent e, ServiceStack.RequestDiagnosticEvent orig = default(ServiceStack.RequestDiagnosticEvent)) => throw null; + protected System.Collections.Concurrent.ConcurrentQueue entries; + } + + // Generated from `ServiceStack.ProfilingFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProfilingFeature : ServiceStack.IPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string AccessRole { get => throw null; set => throw null; } + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public int Capacity { get => throw null; set => throw null; } + public const int DefaultCapacity = default; + public int DefaultLimit { get => throw null; set => throw null; } + public System.Action DiagnosticEntryFilter { get => throw null; set => throw null; } + public System.Collections.Generic.List ExcludeRequestDtoTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List ExcludeRequestPathInfoStartingWith { get => throw null; set => throw null; } + public System.Func ExcludeRequestsFilter { get => throw null; set => throw null; } + public System.Collections.Generic.List ExcludeResponseTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List HideRequestBodyForRequestDtoTypes { get => throw null; set => throw null; } + public string Id { get => throw null; } + public bool? IncludeStackTrace { get => throw null; set => throw null; } + public int MaxBodyLength { get => throw null; set => throw null; } + protected internal ServiceStack.ProfilerDiagnosticObserver Observer { get => throw null; set => throw null; } + public ServiceStack.ProfileSource Profile { get => throw null; set => throw null; } + public ProfilingFeature() => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.Func ResponseTrackingFilter { get => throw null; set => throw null; } + public System.Collections.Generic.List SummaryFields { get => throw null; set => throw null; } + public string TagLabel { get => throw null; set => throw null; } + public System.Func TagResolver { get => throw null; set => throw null; } + protected internal System.DateTime startDateTime; + protected internal System.Int64 startTick; + } + + // Generated from `ServiceStack.ProxyFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProxyFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string Id { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet IgnoreResponseHeaders; + public ProxyFeature(System.Func matchingRequests, System.Func resolveUrl) => throw null; + public System.Action ProxyRequestFilter { get => throw null; set => throw null; } + public System.Action ProxyResponseFilter { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.Func ResolveUrl; + public System.Func> TransformRequest { get => throw null; set => throw null; } + public System.Func> TransformResponse { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ProxyFeatureHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProxyFeatureHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public virtual System.Threading.Tasks.Task CopyToResponse(ServiceStack.Web.IHttpResponse res, System.Net.HttpWebResponse webRes) => throw null; + public System.Collections.Generic.HashSet IgnoreResponseHeaders { get => throw null; set => throw null; } + public static void InitWebRequest(ServiceStack.Web.IHttpRequest httpReq, System.Net.HttpWebRequest webReq) => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse response, string operationName) => throw null; + public ProxyFeatureHandler() => throw null; + public System.Threading.Tasks.Task ProxyRequestAsync(ServiceStack.Web.IHttpRequest httpReq, System.Net.HttpWebRequest webReq) => throw null; + public virtual System.Threading.Tasks.Task ProxyRequestAsync(ServiceStack.Web.IHttpRequest httpReq, string url) => throw null; + public System.Action ProxyRequestFilter { get => throw null; set => throw null; } + public System.Action ProxyResponseFilter { get => throw null; set => throw null; } + public System.Threading.Tasks.Task ProxyToResponse(ServiceStack.Web.IHttpResponse res, System.Net.HttpWebRequest webReq) => throw null; + public System.Func ResolveUrl { get => throw null; set => throw null; } + public override bool RunAsAsync() => throw null; + public System.Func> TransformRequest { get => throw null; set => throw null; } + public System.Func> TransformResponse { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class QueryCondition + { + public abstract string Alias { get; } + public virtual int CompareTo(object a, object b) => throw null; + public abstract bool Match(object a, object b); + protected QueryCondition() => throw null; + public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryDataContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class QueryDataContext + { + public ServiceStack.IQueryData Dto { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary DynamicParams { get => throw null; set => throw null; } + public QueryDataContext() => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public ServiceStack.ITypedQueryData TypedQuery { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryDataField` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class QueryDataField + { + public string Condition { get => throw null; set => throw null; } + public string Field { get => throw null; set => throw null; } + public ServiceStack.QueryCondition QueryCondition { get => throw null; set => throw null; } + public QueryDataField() => throw null; + public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryDataFilterContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class QueryDataFilterContext + { + public System.Collections.Generic.List Commands { get => throw null; set => throw null; } + public ServiceStack.IQueryDataSource Db { get => throw null; set => throw null; } + public ServiceStack.IQueryData Dto { get => throw null; set => throw null; } + public ServiceStack.IDataQuery Query { get => throw null; set => throw null; } + public QueryDataFilterContext() => throw null; + public ServiceStack.IQueryResponse Response { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.QueryDataFilterDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void QueryDataFilterDelegate(ServiceStack.IDataQuery q, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req); + + // Generated from `ServiceStack.QueryDataSource<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class QueryDataSource : ServiceStack.IQueryDataSource, ServiceStack.IQueryDataSource, System.IDisposable + { + public virtual System.Collections.Generic.IEnumerable ApplyConditions(System.Collections.Generic.IEnumerable data, System.Collections.Generic.IEnumerable conditions) => throw null; + public virtual System.Collections.Generic.IEnumerable ApplyLimits(System.Collections.Generic.IEnumerable source, int? skip, int? take) => throw null; + public virtual System.Collections.Generic.IEnumerable ApplySorting(System.Collections.Generic.IEnumerable source, ServiceStack.OrderByExpression orderBy) => throw null; + public virtual int Count(ServiceStack.IDataQuery q) => throw null; + public virtual void Dispose() => throw null; + public virtual ServiceStack.IDataQuery From() => throw null; + public abstract System.Collections.Generic.IEnumerable GetDataSource(ServiceStack.IDataQuery q); + public virtual System.Collections.Generic.List LoadSelect(ServiceStack.IDataQuery q) => throw null; + protected QueryDataSource(ServiceStack.QueryDataContext context) => throw null; + public virtual object SelectAggregate(ServiceStack.IDataQuery q, string name, System.Collections.Generic.IEnumerable args) => throw null; + } + + // Generated from `ServiceStack.RedisErrorLoggerFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisErrorLoggerFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public const string CombinedServiceLogId = default; + public object HandleServiceException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; + public void HandleUncaughtException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; + public string Id { get => throw null; set => throw null; } + public RedisErrorLoggerFeature(ServiceStack.Redis.IRedisClientsManager redisManager) => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + public const string UrnServiceErrorType = default; + } + + // Generated from `ServiceStack.RegistrationFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RegistrationFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public bool AllowUpdates { get => throw null; set => throw null; } + public string AtRestPath { get => throw null; set => throw null; } + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public RegistrationFeature() => throw null; + public ServiceStack.Auth.ValidateFn ValidateFn { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ReplaceFileUploadService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReplaceFileUploadService : ServiceStack.Service + { + public System.Threading.Tasks.Task Put(ServiceStack.ReplaceFileUpload request) => throw null; + public ReplaceFileUploadService() => throw null; + } + + // Generated from `ServiceStack.RepositoryBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class RepositoryBase : ServiceStack.IRepository, System.IDisposable + { + public virtual System.Data.IDbConnection Db { get => throw null; } + public virtual ServiceStack.Data.IDbConnectionFactory DbFactory { get => throw null; set => throw null; } + public virtual void Dispose() => throw null; + protected RepositoryBase() => throw null; + } + + // Generated from `ServiceStack.RequestContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestContext + { + public static System.Threading.AsyncLocal AsyncRequestItems; + public void EndRequest() => throw null; + public T GetOrCreate(System.Func createFn) => throw null; + public static ServiceStack.RequestContext Instance; + public virtual System.Collections.IDictionary Items { get => throw null; set => throw null; } + public bool ReleaseDisposables() => throw null; + public RequestContext() => throw null; + public void StartRequestContext() => throw null; + public void TrackDisposable(System.IDisposable instance) => throw null; + } + + // Generated from `ServiceStack.RequestDiagnosticEvent` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestDiagnosticEvent : ServiceStack.DiagnosticEvent + { + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public RequestDiagnosticEvent() => throw null; + public override string Source { get => throw null; } + } + + // Generated from `ServiceStack.RequestExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static partial class RequestExtensions + { + public static bool AllowConnection(this ServiceStack.Web.IRequest req, bool requireSecureConnection) => throw null; + public static string GetCompressionType(this ServiceStack.Web.IRequest request) => throw null; + public static ServiceStack.Caching.IStreamCompressor GetCompressor(this ServiceStack.Web.IRequest request) => throw null; + public static string GetContentEncoding(this ServiceStack.Web.IRequest request) => throw null; + public static ServiceStack.IO.IVirtualDirectory GetDirectory(this ServiceStack.Web.IRequest request) => throw null; + public static System.TimeSpan GetElapsed(this ServiceStack.Web.IRequest req) => throw null; + public static ServiceStack.IO.IVirtualFile GetFile(this ServiceStack.Web.IRequest request) => throw null; + public static string GetHeader(this ServiceStack.Web.IRequest request, string headerName) => throw null; + public static System.IO.Stream GetInputStream(this ServiceStack.Web.IRequest req, System.IO.Stream stream) => throw null; + public static object GetItem(this ServiceStack.Web.IRequest httpReq, string key) => throw null; + public static string GetParamInRequestHeader(this ServiceStack.Web.IRequest request, string name) => throw null; + public static T GetRuntimeConfig(this ServiceStack.Web.IRequest req, string name, T defaultValue) => throw null; + public static System.Threading.Tasks.Task GetSessionFromSourceAsync(this ServiceStack.Web.IRequest request, string userAuthId, System.Func validator, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetTraceId(this ServiceStack.Web.IRequest req) => throw null; + public static ServiceStack.IO.IVirtualPathProvider GetVirtualFileSources(this ServiceStack.Web.IRequest request) => throw null; + public static ServiceStack.IO.IVirtualFiles GetVirtualFiles(this ServiceStack.Web.IRequest request) => throw null; + public static bool IsDirectory(this ServiceStack.Web.IRequest request) => throw null; + public static bool IsFile(this ServiceStack.Web.IRequest request) => throw null; + public static bool IsInProcessRequest(this ServiceStack.Web.IRequest httpReq) => throw null; + public static void RegisterForDispose(this ServiceStack.Web.IRequest request, System.IDisposable disposable) => throw null; + public static void ReleaseIfInProcessRequest(this ServiceStack.Web.IRequest httpReq) => throw null; + public static ServiceStack.AuthUserSession ReloadSession(this ServiceStack.Web.IRequest request) => throw null; + public static void SetInProcessRequest(this ServiceStack.Web.IRequest httpReq) => throw null; + public static void SetItem(this ServiceStack.Web.IRequest httpReq, string key, object value) => throw null; + public static object ToOptimizedResult(this ServiceStack.Web.IRequest request, object dto) => throw null; + public static System.Threading.Tasks.Task ToOptimizedResultAsync(this ServiceStack.Web.IRequest request, object dto) => throw null; + public static object ToOptimizedResultUsingCache(this ServiceStack.Web.IRequest req, ServiceStack.Caching.ICacheClient cacheClient, string cacheKey, System.Func factoryFn) => throw null; + public static object ToOptimizedResultUsingCache(this ServiceStack.Web.IRequest req, ServiceStack.Caching.ICacheClient cacheClient, string cacheKey, System.TimeSpan? expireCacheIn, System.Func factoryFn) => throw null; + public static System.Threading.Tasks.Task ToOptimizedResultUsingCacheAsync(this ServiceStack.Web.IRequest req, ServiceStack.Caching.ICacheClientAsync cacheClient, string cacheKey, System.Func factoryFn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ToOptimizedResultUsingCacheAsync(this ServiceStack.Web.IRequest req, ServiceStack.Caching.ICacheClientAsync cacheClient, string cacheKey, System.TimeSpan? expireCacheIn, System.Func factoryFn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.RequestFilterAsyncAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class RequestFilterAsyncAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IHasRequestFilterAsync, ServiceStack.Web.IRequestFilterBase + { + public ServiceStack.ApplyTo ApplyTo { get => throw null; set => throw null; } + public virtual ServiceStack.Web.IRequestFilterBase Copy() => throw null; + public abstract System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto); + public int Priority { get => throw null; set => throw null; } + public System.Threading.Tasks.Task RequestFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public RequestFilterAsyncAttribute() => throw null; + public RequestFilterAsyncAttribute(ServiceStack.ApplyTo applyTo) => throw null; + } + + // Generated from `ServiceStack.RequestFilterAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class RequestFilterAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IHasRequestFilter, ServiceStack.Web.IRequestFilterBase + { + public ServiceStack.ApplyTo ApplyTo { get => throw null; set => throw null; } + public virtual ServiceStack.Web.IRequestFilterBase Copy() => throw null; + public abstract void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto); + public int Priority { get => throw null; set => throw null; } + public void RequestFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public RequestFilterAttribute() => throw null; + public RequestFilterAttribute(ServiceStack.ApplyTo applyTo) => throw null; + } + + // Generated from `ServiceStack.RequestFilterPriority` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum RequestFilterPriority + { + Authenticate, + RequiredPermission, + RequiredRole, + } + + // Generated from `ServiceStack.RequestInfoFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestInfoFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string Id { get => throw null; set => throw null; } + public ServiceStack.Host.IHttpHandler ProcessRequest(string httpMethod, string pathInfo, string filePath) => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + public RequestInfoFeature() => throw null; + } + + // Generated from `ServiceStack.RequestLogsFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestLogsFeature : ServiceStack.IPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string AccessRole { get => throw null; set => throw null; } + public string AtRestPath { get => throw null; set => throw null; } + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public int? Capacity { get => throw null; set => throw null; } + public System.Func CurrentDateFn { get => throw null; set => throw null; } + public bool DefaultIgnoreFilter(object o) => throw null; + public int DefaultLimit { get => throw null; set => throw null; } + public bool EnableErrorTracking { get => throw null; set => throw null; } + public bool EnableRequestBodyTracking { get => throw null; set => throw null; } + public bool EnableResponseTracking { get => throw null; set => throw null; } + public bool EnableSessionTracking { get => throw null; set => throw null; } + public System.Type[] ExcludeRequestDtoTypes { get => throw null; set => throw null; } + public System.Type[] ExcludeResponseTypes { get => throw null; set => throw null; } + public System.Type[] HideRequestBodyForRequestDtoTypes { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Func IgnoreFilter { get => throw null; set => throw null; } + public System.Collections.Generic.List IgnoreTypes { get => throw null; set => throw null; } + public bool LimitToServiceRequests { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.Func RequestBodyTrackingFilter { get => throw null; set => throw null; } + public System.Action RequestLogFilter { get => throw null; set => throw null; } + public ServiceStack.Web.IRequestLogger RequestLogger { get => throw null; set => throw null; } + public RequestLogsFeature() => throw null; + public RequestLogsFeature(int capacity) => throw null; + public string[] RequiredRoles { get => throw null; set => throw null; } + public System.Func ResponseTrackingFilter { get => throw null; set => throw null; } + public System.Func SkipLogging { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RequestUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class RequestUtils + { + public static void AssertAccessRole(ServiceStack.Web.IRequest req, string accessRole = default(string), string authSecret = default(string)) => throw null; + public static System.Threading.Tasks.Task AssertAccessRoleAsync(ServiceStack.Web.IRequest req, string accessRole = default(string), string authSecret = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AssertAccessRoleOrDebugModeAsync(ServiceStack.Web.IRequest req, string accessRole = default(string), string authSecret = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.RequiredClaimAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequiredClaimAttribute : ServiceStack.AuthenticateAttribute + { + protected bool Equals(ServiceStack.RequiredClaimAttribute other) => throw null; + public override bool Equals(object obj) => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public override int GetHashCode() => throw null; + public static bool HasClaim(ServiceStack.Web.IRequest req, string type, string value) => throw null; + public RequiredClaimAttribute(ServiceStack.ApplyTo applyTo, string type, string value) => throw null; + public RequiredClaimAttribute(string type, string value) => throw null; + public string Type { get => throw null; set => throw null; } + public string Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RequiredPermissionAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequiredPermissionAttribute : ServiceStack.AuthenticateAttribute + { + public static void AssertRequiredPermissions(ServiceStack.Web.IRequest req, params string[] requiredPermissions) => throw null; + public static System.Threading.Tasks.Task AssertRequiredPermissionsAsync(ServiceStack.Web.IRequest req, string[] requiredPermissions, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected bool Equals(ServiceStack.RequiredPermissionAttribute other) => throw null; + public override bool Equals(object obj) => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public override int GetHashCode() => throw null; + public bool HasAllPermissions(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public static bool HasAllPermissions(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredPermissions) => throw null; + public System.Threading.Tasks.Task HasAllPermissionsAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; + public static System.Threading.Tasks.Task HasAllPermissionsAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredPermissions, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task HasRequiredPermissionsAsync(ServiceStack.Web.IRequest req, string[] requiredPermissions) => throw null; + public RequiredPermissionAttribute(ServiceStack.ApplyTo applyTo, params string[] permissions) => throw null; + public RequiredPermissionAttribute(params string[] permissions) => throw null; + public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RequiredRoleAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequiredRoleAttribute : ServiceStack.AuthenticateAttribute + { + public static System.Threading.Tasks.Task AssertRequiredRoleAsync(ServiceStack.Web.IRequest req, string requiredRole, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void AssertRequiredRoles(ServiceStack.Web.IRequest req, params string[] requiredRoles) => throw null; + public static System.Threading.Tasks.Task AssertRequiredRolesAsync(ServiceStack.Web.IRequest req, string[] requiredRoles, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected bool Equals(ServiceStack.RequiredRoleAttribute other) => throw null; + public override bool Equals(object obj) => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public override int GetHashCode() => throw null; + public bool HasAllRoles(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public static bool HasAllRoles(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredRoles) => throw null; + public System.Threading.Tasks.Task HasAllRolesAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; + public static System.Threading.Tasks.Task HasAllRolesAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredRoles, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task HasAllRolesAsync(ServiceStack.Web.IRequest req, System.Collections.Generic.ICollection requiredRoles, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static bool HasRequiredRoles(ServiceStack.Web.IRequest req, string[] requiredRoles) => throw null; + public static System.Threading.Tasks.Task HasRequiredRolesAsync(ServiceStack.Web.IRequest req, string[] requiredRoles) => throw null; + public static bool PreAuthenticatedValidForAllRoles(ServiceStack.Web.IRequest req, System.Collections.Generic.ICollection requiredRoles) => throw null; + public RequiredRoleAttribute(ServiceStack.ApplyTo applyTo, params string[] roles) => throw null; + public RequiredRoleAttribute(params string[] roles) => throw null; + public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RequiresAnyPermissionAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequiresAnyPermissionAttribute : ServiceStack.AuthenticateAttribute + { + public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public virtual bool HasAnyPermissions(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } + public RequiresAnyPermissionAttribute(ServiceStack.ApplyTo applyTo, params string[] permissions) => throw null; + public RequiresAnyPermissionAttribute(params string[] permissions) => throw null; + } + + // Generated from `ServiceStack.RequiresAnyRoleAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequiresAnyRoleAttribute : ServiceStack.AuthenticateAttribute + { + public static void AssertRequiredRoles(ServiceStack.Web.IRequest req, params string[] requiredRoles) => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public virtual bool HasAnyRoles(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } + public RequiresAnyRoleAttribute(ServiceStack.ApplyTo applyTo, params string[] roles) => throw null; + public RequiresAnyRoleAttribute(params string[] roles) => throw null; + } + + // Generated from `ServiceStack.RequiresSchemaProviders` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class RequiresSchemaProviders + { + public static void InitSchema(this ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public static void InitSchema(this ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; + public static void InitSchema(this ServiceStack.Caching.ICacheClient cache) => throw null; + } + + // Generated from `ServiceStack.ResolvedPath` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public struct ResolvedPath + { + public string PublicPath { get => throw null; } + // Stub generator skipped constructor + public ResolvedPath(string publicPath, string virtualPath) => throw null; + public string VirtualPath { get => throw null; } + } + + // Generated from `ServiceStack.ResponseFilterAsyncAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ResponseFilterAsyncAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IHasResponseFilterAsync, ServiceStack.Web.IResponseFilterBase + { + public ServiceStack.ApplyTo ApplyTo { get => throw null; set => throw null; } + public virtual ServiceStack.Web.IResponseFilterBase Copy() => throw null; + public abstract System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object responseDto); + public int Priority { get => throw null; set => throw null; } + public System.Threading.Tasks.Task ResponseFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; + public ResponseFilterAsyncAttribute() => throw null; + public ResponseFilterAsyncAttribute(ServiceStack.ApplyTo applyTo) => throw null; + } + + // Generated from `ServiceStack.ResponseFilterAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ResponseFilterAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IHasResponseFilter, ServiceStack.Web.IResponseFilterBase + { + public ServiceStack.ApplyTo ApplyTo { get => throw null; set => throw null; } + public virtual ServiceStack.Web.IResponseFilterBase Copy() => throw null; + public abstract void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object responseDto); + public int Priority { get => throw null; set => throw null; } + public void ResponseFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; + public ResponseFilterAttribute() => throw null; + public ResponseFilterAttribute(ServiceStack.ApplyTo applyTo) => throw null; + } + + // Generated from `ServiceStack.ReturnExceptionsInJsonAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReturnExceptionsInJsonAttribute : ServiceStack.ResponseFilterAttribute + { + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object responseDto) => throw null; + public ReturnExceptionsInJsonAttribute() => throw null; + } + + // Generated from `ServiceStack.RpcGateway` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RpcGateway + { + public static ServiceStack.HttpError CreateError(ServiceStack.Web.IResponse res, string errorCode = default(string), string errorMessage = default(string)) => throw null; + public static TResponse CreateErrorResponse(ServiceStack.Web.IResponse res, System.Exception ex) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(ServiceStack.IReturn requestDto, ServiceStack.Web.IRequest req) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(object requestDto, ServiceStack.Web.IRequest req) => throw null; + public static TResponse GetResponse(ServiceStack.Web.IResponse res, object ret) => throw null; + public RpcGateway(ServiceStack.ServiceStackHost appHost) => throw null; + public RpcGateway(ServiceStack.ServiceStackHost appHost, ServiceStack.Web.IServiceExecutor executor) => throw null; + } + + // Generated from `ServiceStack.SameSiteCookiesServiceCollectionExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SameSiteCookiesServiceCollectionExtensions + { + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpUtilsClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureNonBreakingSameSiteCookies(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure = default(System.Action)) => throw null; + public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureNonBreakingSameSiteCookies(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.AspNetCore.Hosting.IWebHostEnvironment env) => throw null; + } + + // Generated from `ServiceStack.ScriptAdmin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptAdmin : ServiceStack.IReturn, ServiceStack.IReturn + { + public string Actions { get => throw null; set => throw null; } + public ScriptAdmin() => throw null; + } + + // Generated from `ServiceStack.ScriptAdminResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptAdminResponse + { + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public string[] Results { get => throw null; set => throw null; } + public ScriptAdminResponse() => throw null; + } + + // Generated from `ServiceStack.ScriptAdminService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptAdminService : ServiceStack.Service + { + public static string[] Actions; + public System.Threading.Tasks.Task Any(ServiceStack.ScriptAdmin request) => throw null; + public static string[] Routes { get => throw null; set => throw null; } + public ScriptAdminService() => throw null; + } + + // Generated from `ServiceStack.ScriptConditionValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptConditionValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPredicateValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + public ServiceStack.Script.SharpPage Code { get => throw null; } + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + protected override System.Threading.Tasks.Task IsValidAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; + public ScriptConditionValidator(ServiceStack.Script.SharpPage code) => throw null; + public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; + } + + // Generated from `ServiceStack.ScriptValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptValidator : ServiceStack.TypeValidator + { + public ServiceStack.Script.SharpPage Code { get => throw null; } + public string Condition { get => throw null; } + public override System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; + public ScriptValidator(ServiceStack.Script.SharpPage code, string condition) : base(default(string), default(string), default(int?)) => throw null; + } + + // Generated from `ServiceStack.Selector` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Selector + { + public static string Id(System.Type type) => throw null; + public static string Id() => throw null; + } + + // Generated from `ServiceStack.ServerEventExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServerEventExtensions + { + public static ServiceStack.SubscriptionInfo GetInfo(this ServiceStack.IEventSubscription sub) => throw null; + public static bool HasAnyChannel(this ServiceStack.IEventSubscription sub, string[] channels) => throw null; + public static bool HasChannel(this ServiceStack.IEventSubscription sub, string channel) => throw null; + public static bool IsGrpc(this ServiceStack.IEventSubscription sub) => throw null; + public static void NotifyAll(this ServiceStack.IServerEvents server, object message) => throw null; + public static System.Threading.Tasks.Task NotifyAllAsync(this ServiceStack.IServerEvents server, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void NotifyChannel(this ServiceStack.IServerEvents server, string channel, object message) => throw null; + public static System.Threading.Tasks.Task NotifyChannelAsync(this ServiceStack.IServerEvents server, string channel, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void NotifySession(this ServiceStack.IServerEvents server, string sspid, object message, string channel = default(string)) => throw null; + public static System.Threading.Tasks.Task NotifySessionAsync(this ServiceStack.IServerEvents server, string sspid, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void NotifySubscription(this ServiceStack.IServerEvents server, string subscriptionId, object message, string channel = default(string)) => throw null; + public static System.Threading.Tasks.Task NotifySubscriptionAsync(this ServiceStack.IServerEvents server, string subscriptionId, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void NotifyUserId(this ServiceStack.IServerEvents server, string userId, object message, string channel = default(string)) => throw null; + public static System.Threading.Tasks.Task NotifyUserIdAsync(this ServiceStack.IServerEvents server, string userId, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void NotifyUserName(this ServiceStack.IServerEvents server, string userName, object message, string channel = default(string)) => throw null; + public static System.Threading.Tasks.Task NotifyUserNameAsync(this ServiceStack.IServerEvents server, string userName, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.ServerEventsFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventsFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public System.TimeSpan HeartbeatInterval { get => throw null; set => throw null; } + public string HeartbeatPath { get => throw null; set => throw null; } + public System.TimeSpan HouseKeepingInterval { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.TimeSpan IdleTimeout { get => throw null; set => throw null; } + public void IncrementCounter(string name) => throw null; + public bool LimitToAuthenticatedUsers { get => throw null; set => throw null; } + public bool NotifyChannelOfSubscriptions { get => throw null; set => throw null; } + public System.Action> OnConnect { get => throw null; set => throw null; } + public System.Action OnCreated { get => throw null; set => throw null; } + public System.Action OnDispose { get => throw null; set => throw null; } + public System.Action OnError { get => throw null; set => throw null; } + public System.Action OnHeartbeatInit { get => throw null; set => throw null; } + public System.Action OnHungConnection { get => throw null; set => throw null; } + public System.Action OnInit { get => throw null; set => throw null; } + public System.Action OnPublish { get => throw null; set => throw null; } + public System.Func OnPublishAsync { get => throw null; set => throw null; } + public System.Action OnSubscribe { get => throw null; set => throw null; } + public System.Func OnSubscribeAsync { get => throw null; set => throw null; } + public System.Action OnUnsubscribe { get => throw null; set => throw null; } + public System.Func OnUnsubscribeAsync { get => throw null; set => throw null; } + public System.Func OnUpdateAsync { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.Func Serialize { get => throw null; set => throw null; } + public ServerEventsFeature() => throw null; + public string StreamPath { get => throw null; set => throw null; } + public string SubscribersPath { get => throw null; set => throw null; } + public int ThrottlePublisherAfterBufferExceedsBytes { get => throw null; set => throw null; } + public string UnRegisterPath { get => throw null; set => throw null; } + public bool ValidateUserAddress { get => throw null; set => throw null; } + public System.Action WriteEvent { get => throw null; set => throw null; } + public System.Func WriteEventAsync { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ServerEventsHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventsHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public const string EventStreamDenyNoAuth = default; + public const string EventStreamDenyOnCreated = default; + public const string EventStreamDenyOnInit = default; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string operationName) => throw null; + public static int RemoveExpiredSubscriptionsEvery { get => throw null; } + public override bool RunAsAsync() => throw null; + public ServerEventsHandler() => throw null; + } + + // Generated from `ServiceStack.ServerEventsHeartbeatHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventsHeartbeatHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string operationName) => throw null; + public override bool RunAsAsync() => throw null; + public ServerEventsHeartbeatHandler() => throw null; + } + + // Generated from `ServiceStack.ServerEventsSubscribersService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventsSubscribersService : ServiceStack.Service + { + public object Any(ServiceStack.GetEventSubscribers request) => throw null; + public ServiceStack.IServerEvents ServerEvents { get => throw null; set => throw null; } + public ServerEventsSubscribersService() => throw null; + } + + // Generated from `ServiceStack.ServerEventsUnRegisterService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventsUnRegisterService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.UnRegisterEventSubscriber request) => throw null; + public System.Threading.Tasks.Task Any(ServiceStack.UpdateEventSubscriber request) => throw null; + public ServiceStack.IServerEvents ServerEvents { get => throw null; set => throw null; } + public ServerEventsUnRegisterService() => throw null; + public const string UnRegisterSubNotExists = default; + public const string UpdateEventSubNotExists = default; + } + + // Generated from `ServiceStack.ServerStats` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerStats + { + public string MqDescription { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary MqWorkers { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Redis { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServerEvents { get => throw null; set => throw null; } + public ServerStats() => throw null; + } + + // Generated from `ServiceStack.Service` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Service : ServiceStack.Configuration.IResolver, ServiceStack.IService, ServiceStack.IServiceAfterFilter, ServiceStack.IServiceBase, ServiceStack.IServiceBeforeFilter, ServiceStack.IServiceErrorFilter, ServiceStack.IServiceFilters, ServiceStack.Web.IRequiresRequest, System.IAsyncDisposable, System.IDisposable + { + public T AssertPlugin() where T : class, ServiceStack.IPlugin => throw null; + public virtual ServiceStack.Auth.IAuthRepository AuthRepository { get => throw null; } + public virtual ServiceStack.Auth.IAuthRepositoryAsync AuthRepositoryAsync { get => throw null; } + public virtual ServiceStack.Caching.ICacheClient Cache { get => throw null; } + public virtual ServiceStack.Caching.ICacheClientAsync CacheAsync { get => throw null; } + public virtual System.Data.IDbConnection Db { get => throw null; } + public virtual void Dispose() => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public virtual ServiceStack.IServiceGateway Gateway { get => throw null; } + public T GetPlugin() where T : class, ServiceStack.IPlugin => throw null; + public virtual System.Threading.Tasks.ValueTask GetRedisAsync() => throw null; + public virtual ServiceStack.Configuration.IResolver GetResolver() => throw null; + public virtual ServiceStack.Auth.IAuthSession GetSession(bool reload = default(bool)) => throw null; + public virtual System.Threading.Tasks.Task GetSessionAsync(bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static ServiceStack.Configuration.IResolver GlobalResolver { get => throw null; set => throw null; } + public virtual bool IsAuthenticated { get => throw null; } + public virtual ServiceStack.Caching.MemoryCacheClient LocalCache { get => throw null; } + public virtual ServiceStack.Messaging.IMessageProducer MessageProducer { get => throw null; } + public virtual object OnAfterExecute(object response) => throw null; + public virtual void OnBeforeExecute(object requestDto) => throw null; + public virtual System.Threading.Tasks.Task OnExceptionAsync(object requestDto, System.Exception ex) => throw null; + public virtual void PublishMessage(T message) => throw null; + public virtual ServiceStack.Redis.IRedisClient Redis { get => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public virtual T ResolveService() => throw null; + protected virtual ServiceStack.Web.IResponse Response { get => throw null; } + public Service() => throw null; + protected virtual TUserSession SessionAs() => throw null; + protected virtual System.Threading.Tasks.Task SessionAsAsync() => throw null; + public virtual ServiceStack.Caching.ISession SessionBag { get => throw null; } + public virtual ServiceStack.Caching.ISessionAsync SessionBagAsync { get => throw null; } + public virtual ServiceStack.Caching.ISessionFactory SessionFactory { get => throw null; } + public virtual ServiceStack.Service SetResolver(ServiceStack.Configuration.IResolver resolver) => throw null; + public virtual T TryResolve() => throw null; + public ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get => throw null; } + public ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; } + } + + // Generated from `ServiceStack.ServiceExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceExtensions + { + public static ServiceStack.Auth.IAuthSession AssertAuthenticatedSession(this ServiceStack.Web.IRequest req, bool reload = default(bool)) => throw null; + public static System.Threading.Tasks.Task AssertAuthenticatedSessionAsync(this ServiceStack.Web.IRequest req, bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static ServiceStack.Web.IHttpResult AuthenticationRequired(this ServiceStack.IServiceBase service) => throw null; + public static void CacheSet(this ServiceStack.Caching.ICacheClient cache, string key, T value, System.TimeSpan? expiresIn) => throw null; + public static System.Threading.Tasks.Task CacheSetAsync(this ServiceStack.Caching.ICacheClientAsync cache, string key, T value, System.TimeSpan? expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static ServiceStack.Caching.ICacheClient GetCacheClient(this ServiceStack.Web.IRequest request) => throw null; + public static ServiceStack.Caching.ICacheClientAsync GetCacheClientAsync(this ServiceStack.Web.IRequest request) => throw null; + public static ServiceStack.Caching.ICacheClient GetMemoryCacheClient(this ServiceStack.Web.IRequest request) => throw null; + public static ServiceStack.Auth.IAuthSession GetSession(this ServiceStack.Web.IRequest httpReq, bool reload = default(bool)) => throw null; + public static ServiceStack.Auth.IAuthSession GetSession(this ServiceStack.IServiceBase service, bool reload = default(bool)) => throw null; + public static System.Threading.Tasks.Task GetSessionAsync(this ServiceStack.Web.IRequest httpReq, bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetSessionAsync(this ServiceStack.IServiceBase service, bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetSessionId(this ServiceStack.IServiceBase service) => throw null; + public static System.TimeSpan? GetSessionTimeToLive(this ServiceStack.Caching.ICacheClient cache, string sessionId) => throw null; + public static System.TimeSpan? GetSessionTimeToLive(this ServiceStack.Web.IRequest httpReq) => throw null; + public static System.Threading.Tasks.Task GetSessionTimeToLiveAsync(this ServiceStack.Caching.ICacheClientAsync cache, string sessionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetSessionTimeToLiveAsync(this ServiceStack.Web.IRequest httpReq, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static bool IsAuthenticated(this ServiceStack.Web.IRequest req) => throw null; + public static System.Threading.Tasks.Task IsAuthenticatedAsync(this ServiceStack.Web.IRequest req) => throw null; + public static ServiceStack.Web.IHttpResult LocalRedirect(this ServiceStack.IServiceBase service, string redirect) => throw null; + public static ServiceStack.Web.IHttpResult LocalRedirect(this ServiceStack.IServiceBase service, string redirect, string message) => throw null; + public static ServiceStack.Logging.ILog Log; + public static ServiceStack.Web.IHttpResult Redirect(this ServiceStack.IServiceBase service, string redirect) => throw null; + public static ServiceStack.Web.IHttpResult Redirect(this ServiceStack.IServiceBase service, string redirect, string message) => throw null; + public static void RemoveSession(this ServiceStack.Web.IRequest httpReq) => throw null; + public static void RemoveSession(this ServiceStack.Web.IRequest httpReq, string sessionId) => throw null; + public static void RemoveSession(this ServiceStack.IServiceBase service) => throw null; + public static void RemoveSession(this ServiceStack.Service service) => throw null; + public static System.Threading.Tasks.Task RemoveSessionAsync(this ServiceStack.Web.IRequest httpReq, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task RemoveSessionAsync(this ServiceStack.Web.IRequest httpReq, string sessionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task RemoveSessionAsync(this ServiceStack.IServiceBase service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task RemoveSessionAsync(this ServiceStack.Service service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static object RunAction(this TService service, TRequest request, System.Func invokeAction, ServiceStack.Web.IRequest requestContext = default(ServiceStack.Web.IRequest)) where TService : ServiceStack.IService => throw null; + public static void SaveSession(this ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; + public static void SaveSession(this ServiceStack.IServiceBase service, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; + public static System.Threading.Tasks.Task SaveSessionAsync(this ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SaveSessionAsync(this ServiceStack.IServiceBase service, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static TUserSession SessionAs(this ServiceStack.Web.IRequest req) => throw null; + public static System.Threading.Tasks.Task SessionAsAsync(this ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.ServiceGatewayFactoryBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ServiceGatewayFactoryBase : ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, ServiceStack.Web.IServiceGatewayFactory + { + public abstract ServiceStack.IServiceGateway GetGateway(System.Type requestType); + protected virtual ServiceStack.IServiceGatewayAsync GetGatewayAsync(System.Type requestType) => throw null; + public virtual ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest request) => throw null; + public void Publish(object requestDto) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; + public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public TResponse Send(object requestDto) => throw null; + public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; + public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected ServiceGatewayFactoryBase() => throw null; + protected ServiceStack.InProcessServiceGateway localGateway; + } + + // Generated from `ServiceStack.ServiceResponseException` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceResponseException : System.Exception + { + public string ErrorCode { get => throw null; set => throw null; } + public ServiceResponseException() => throw null; + public ServiceResponseException(ServiceStack.ResponseStatus responseStatus) => throw null; + public ServiceResponseException(string message) => throw null; + public ServiceResponseException(string errorCode, string errorMessage) => throw null; + public ServiceResponseException(string errorCode, string errorMessage, string serviceStackTrace) => throw null; + public string ServiceStackTrace { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ServiceRoutesExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceRoutesExtensions + { + public static ServiceStack.Web.IServiceRoutes Add(this ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string restPath, ServiceStack.ApplyTo verbs) => throw null; + public static ServiceStack.Web.IServiceRoutes Add(this ServiceStack.Web.IServiceRoutes serviceRoutes, string restPath, ServiceStack.ApplyTo verbs, params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; + public static ServiceStack.Web.IServiceRoutes Add(this ServiceStack.Web.IServiceRoutes routes, string restPath, ServiceStack.ApplyTo verbs) => throw null; + public static ServiceStack.Web.IServiceRoutes AddFromAssembly(this ServiceStack.Web.IServiceRoutes routes, params System.Reflection.Assembly[] assembliesWithServices) => throw null; + public static bool IsSubclassOfRawGeneric(this System.Type toCheck, System.Type generic) => throw null; + } + + // Generated from `ServiceStack.ServiceScopeExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceScopeExtensions + { + public static Microsoft.Extensions.DependencyInjection.IServiceScope StartScope(this ServiceStack.Web.IRequest request) => throw null; + } + + // Generated from `ServiceStack.ServiceStackActivityArgs` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceStackActivityArgs + { + public System.Diagnostics.Activity Activity { get => throw null; set => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public ServiceStackActivityArgs() => throw null; + } + + // Generated from `ServiceStack.ServiceStackCodePage` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ServiceStackCodePage : ServiceStack.Script.SharpCodePage, ServiceStack.Web.IRequiresRequest + { + public virtual ServiceStack.Auth.IAuthRepository AuthRepository { get => throw null; } + public virtual ServiceStack.Caching.ICacheClient Cache { get => throw null; } + public virtual System.Data.IDbConnection Db { get => throw null; } + public override void Dispose() => throw null; + public virtual ServiceStack.IServiceGateway Gateway { get => throw null; } + public virtual ServiceStack.Configuration.IResolver GetResolver() => throw null; + public virtual ServiceStack.Auth.IAuthSession GetSession(bool reload = default(bool)) => throw null; + public virtual bool IsAuthenticated { get => throw null; } + public virtual ServiceStack.Caching.MemoryCacheClient LocalCache { get => throw null; } + public virtual ServiceStack.Messaging.IMessageProducer MessageProducer { get => throw null; } + public virtual void PublishMessage(T message) => throw null; + public virtual ServiceStack.Redis.IRedisClient Redis { get => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public virtual T ResolveService() => throw null; + protected virtual ServiceStack.Web.IResponse Response { get => throw null; } + protected ServiceStackCodePage() : base(default(string)) => throw null; + protected virtual TUserSession SessionAs() => throw null; + public virtual ServiceStack.Caching.ISession SessionBag { get => throw null; } + public virtual ServiceStack.Caching.ISessionFactory SessionFactory { get => throw null; } + public virtual T TryResolve() => throw null; + public ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get => throw null; } + public ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; } + } + + // Generated from `ServiceStack.ServiceStackDiagnosticsUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceStackDiagnosticsUtils + { + public static ServiceStack.MqRequestDiagnosticEvent Init(this ServiceStack.MqRequestDiagnosticEvent evt, System.Guid operationId) => throw null; + public static ServiceStack.RequestDiagnosticEvent Init(this ServiceStack.RequestDiagnosticEvent evt, ServiceStack.Web.IRequest req) => throw null; + } + + // Generated from `ServiceStack.ServiceStackHost` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ServiceStackHost : Funq.IFunqlet, Funq.IHasContainer, ServiceStack.Configuration.IResolver, ServiceStack.IAppHost, System.IDisposable + { + public System.Collections.Generic.List AddVirtualFileSources { get => throw null; set => throw null; } + public System.Collections.Generic.List> AfterConfigure { get => throw null; set => throw null; } + public System.DateTime? AfterInitAt { get => throw null; set => throw null; } + public System.Collections.Generic.List> AfterInitCallbacks { get => throw null; set => throw null; } + public void AfterPluginLoaded(System.Action configure) where T : class, ServiceStack.IPlugin => throw null; + public System.Collections.Generic.List> AfterPluginsLoaded { get => throw null; set => throw null; } + protected virtual bool AllowSetCookie(ServiceStack.Web.IRequest req, string cookieName) => throw null; + public ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; set => throw null; } + public bool ApplyCustomHandlerRequestFilters(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public bool ApplyMessageRequestFilters(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public bool ApplyMessageResponseFilters(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; + public virtual System.Threading.Tasks.Task ApplyPreAuthenticateFiltersAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public bool ApplyPreRequestFilters(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public System.Threading.Tasks.Task ApplyRequestConvertersAsync(ServiceStack.Web.IRequest req, object requestDto) => throw null; + public bool ApplyRequestFilters(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public System.Threading.Tasks.Task ApplyRequestFiltersAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + protected System.Threading.Tasks.Task ApplyRequestFiltersSingleAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public System.Threading.Tasks.Task ApplyResponseConvertersAsync(ServiceStack.Web.IRequest req, object responseDto) => throw null; + public bool ApplyResponseFilters(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; + public System.Threading.Tasks.Task ApplyResponseFiltersAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; + protected System.Threading.Tasks.Task ApplyResponseFiltersSingleAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; + public virtual ServiceStack.Auth.IAuthSession AssertAuthenticated(ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public void AssertContentType(string contentType) => throw null; + public void AssertFeatures(ServiceStack.Feature usesFeatures) => throw null; + public System.Collections.Generic.List AsyncErrors { get => throw null; set => throw null; } + public virtual ServiceStack.Web.IHttpResult AuthenticationRequired(ServiceStack.IServiceBase service) => throw null; + public System.Collections.Generic.List> BeforeConfigure { get => throw null; set => throw null; } + public System.Collections.Generic.List CatchAllHandlers { get => throw null; set => throw null; } + public ServiceStack.HostConfig Config { get => throw null; set => throw null; } + public abstract void Configure(Funq.Container container); + public virtual void ConfigureLogging() => throw null; + public void ConfigurePlugin(System.Action configure) where T : class, ServiceStack.IPlugin => throw null; + public virtual Funq.Container Container { get => throw null; set => throw null; } + public ServiceStack.IO.IVirtualDirectory ContentRootDirectory { get => throw null; } + public ServiceStack.Web.IContentTypes ContentTypes { get => throw null; set => throw null; } + public virtual void CookieOptionsFilter(System.Net.Cookie cookie, Microsoft.AspNetCore.Http.CookieOptions cookieOptions) => throw null; + public virtual ServiceStack.ErrorResponse CreateErrorResponse(System.Exception ex, object request = default(object)) => throw null; + public virtual ServiceStack.ResponseStatus CreateResponseStatus(System.Exception ex, object request = default(object)) => throw null; + protected virtual ServiceStack.Host.ServiceController CreateServiceController(params System.Reflection.Assembly[] assembliesWithServices) => throw null; + protected virtual ServiceStack.Host.ServiceController CreateServiceController(params System.Type[] serviceTypes) => throw null; + public virtual ServiceStack.Web.IServiceRunner CreateServiceRunner(ServiceStack.Host.ActionContext actionContext) => throw null; + public System.Collections.Generic.Dictionary CustomErrorHttpHandlers { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptContext DefaultScriptContext { get => throw null; set => throw null; } + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public virtual object EvalExpression(string expr) => throw null; + public virtual object EvalExpressionCached(string expr) => throw null; + public virtual object EvalScript(ServiceStack.Script.PageResult pageResult, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public virtual System.Threading.Tasks.Task EvalScriptAsync(ServiceStack.Script.PageResult pageResult, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public virtual object EvalScriptValue(ServiceStack.IScriptValue scriptValue, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public virtual System.Threading.Tasks.Task EvalScriptValueAsync(ServiceStack.IScriptValue scriptValue, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public System.Collections.Generic.HashSet ExcludeAutoRegisteringServiceTypes { get => throw null; set => throw null; } + public void ExecTypedFilters(System.Collections.Generic.Dictionary typedFilters, ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto) => throw null; + public System.Threading.Tasks.Task ExecTypedFiltersAsync(System.Collections.Generic.Dictionary typedFilters, ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto) => throw null; + public virtual object ExecuteMessage(ServiceStack.Messaging.IMessage mqMessage) => throw null; + public virtual object ExecuteMessage(ServiceStack.Messaging.IMessage dto, ServiceStack.Web.IRequest req) => throw null; + public System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage mqMessage, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage mqMessage, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual object ExecuteService(object requestDto) => throw null; + public virtual object ExecuteService(object requestDto, ServiceStack.Web.IRequest req) => throw null; + public virtual object ExecuteService(object requestDto, ServiceStack.RequestAttributes requestAttributes) => throw null; + public virtual System.Threading.Tasks.Task ExecuteServiceAsync(object requestDto, ServiceStack.Web.IRequest req) => throw null; + public System.Collections.Generic.List FallbackHandlers { get => throw null; set => throw null; } + public System.Collections.Generic.List GatewayExceptionHandlers { get => throw null; set => throw null; } + public System.Collections.Generic.List GatewayExceptionHandlersAsync { get => throw null; set => throw null; } + public System.Collections.Generic.List> GatewayRequestFilters { get => throw null; set => throw null; } + public System.Collections.Generic.List> GatewayRequestFiltersAsync { get => throw null; set => throw null; } + public System.Collections.Generic.List> GatewayResponseFilters { get => throw null; set => throw null; } + public System.Collections.Generic.List> GatewayResponseFiltersAsync { get => throw null; set => throw null; } + public virtual string GenerateWsdl(ServiceStack.Metadata.WsdlTemplateBase wsdlTemplate) => throw null; + public virtual ServiceStack.Auth.IAuthRepository GetAuthRepository(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual ServiceStack.Auth.IAuthRepositoryAsync GetAuthRepositoryAsync(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual string GetAuthorization(ServiceStack.Web.IRequest req) => throw null; + public virtual string GetBaseUrl(ServiceStack.Web.IRequest httpReq) => throw null; + public virtual string GetBearerToken(ServiceStack.Web.IRequest req) => throw null; + public virtual ServiceStack.Caching.ICacheClient GetCacheClient(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual ServiceStack.Caching.ICacheClientAsync GetCacheClientAsync(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual string GetCompressionType(ServiceStack.Web.IRequest request) => throw null; + public virtual ServiceStack.Web.ICookies GetCookies(ServiceStack.Web.IHttpResponse res) => throw null; + public ServiceStack.Host.Handlers.IServiceStackHandler GetCustomErrorHandler(System.Net.HttpStatusCode errorStatus) => throw null; + public ServiceStack.Host.Handlers.IServiceStackHandler GetCustomErrorHandler(int errorStatusCode) => throw null; + public ServiceStack.Host.IHttpHandler GetCustomErrorHttpHandler(System.Net.HttpStatusCode errorStatus) => throw null; + public virtual System.Data.IDbConnection GetDbConnection(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual string GetDbNamedConnection(ServiceStack.Web.IRequest req) => throw null; + public virtual System.TimeSpan GetDefaultSessionExpiry(ServiceStack.Web.IRequest req) => throw null; + public virtual string GetJwtRefreshToken(ServiceStack.Web.IRequest req) => throw null; + public virtual string GetJwtToken(ServiceStack.Web.IRequest req) => throw null; + public virtual ServiceStack.Caching.MemoryCacheClient GetMemoryCacheClient(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual ServiceStack.Messaging.IMessageProducer GetMessageProducer(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual System.Collections.Generic.List GetMetadataPluginIds() => throw null; + public ServiceStack.Host.Handlers.IServiceStackHandler GetNotFoundHandler() => throw null; + public T GetPlugin() where T : class, ServiceStack.IPlugin => throw null; + public virtual ServiceStack.Redis.IRedisClient GetRedisClient(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual System.Threading.Tasks.ValueTask GetRedisClientAsync(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual string GetRefreshToken(ServiceStack.Web.IRequest req) => throw null; + public virtual ServiceStack.RouteAttribute[] GetRouteAttributes(System.Type requestType) => throw null; + public virtual T GetRuntimeConfig(ServiceStack.Web.IRequest req, string name, T defaultValue) => throw null; + public virtual ServiceStack.IServiceGateway GetServiceGateway() => throw null; + public virtual ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest req) => throw null; + public virtual ServiceStack.MetadataTypesConfig GetTypesConfigForMetadata(ServiceStack.Web.IRequest req) => throw null; + public virtual T GetVirtualFileSource() where T : class => throw null; + public virtual System.Collections.Generic.List GetVirtualFileSources() => throw null; + public virtual string GetWebRootPath() => throw null; + public static System.Collections.Generic.List> GlobalAfterAppHostInit { get => throw null; } + public static System.Collections.Generic.List> GlobalAfterConfigure { get => throw null; } + public static System.Collections.Generic.List> GlobalAfterPluginsLoaded { get => throw null; } + public static System.Collections.Generic.List> GlobalBeforeConfigure { get => throw null; } + public ServiceStack.Host.Handlers.IServiceStackHandler GlobalHtmlErrorHttpHandler { get => throw null; set => throw null; } + public System.Collections.Generic.List> GlobalMessageRequestFilters { get => throw null; } + public System.Collections.Generic.List> GlobalMessageRequestFiltersAsync { get => throw null; } + public System.Collections.Generic.List> GlobalMessageResponseFilters { get => throw null; } + public System.Collections.Generic.List> GlobalMessageResponseFiltersAsync { get => throw null; } + public System.Collections.Generic.List> GlobalRequestFilters { get => throw null; set => throw null; } + public System.Collections.Generic.List> GlobalRequestFiltersAsync { get => throw null; set => throw null; } + public System.Collections.Generic.List> GlobalResponseFilters { get => throw null; set => throw null; } + public System.Collections.Generic.List> GlobalResponseFiltersAsync { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary GlobalTypedMessageRequestFilters { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary GlobalTypedMessageResponseFilters { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary GlobalTypedRequestFilters { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary GlobalTypedRequestFiltersAsync { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary GlobalTypedResponseFilters { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary GlobalTypedResponseFiltersAsync { get => throw null; set => throw null; } + public void HandleErrorResponse(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, System.Net.HttpStatusCode errorStatus, string errorStatusDescription = default(string)) => throw null; + public virtual System.Threading.Tasks.Task HandleResponseException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; + public virtual System.Threading.Tasks.Task HandleShortCircuitedErrors(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public virtual System.Threading.Tasks.Task HandleShortCircuitedErrors(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto, System.Net.HttpStatusCode statusCode, string statusDescription = default(string)) => throw null; + protected virtual System.Threading.Tasks.Task HandleUncaughtException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; + public bool HasAccessToMetadata(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public bool HasFeature(ServiceStack.Feature feature) => throw null; + public static bool HasInit { get => throw null; } + public bool HasPlugin() where T : class, ServiceStack.IPlugin => throw null; + public bool HasStarted { get => throw null; } + public virtual bool HasUi() => throw null; + public bool HasValidAuthSecret(ServiceStack.Web.IRequest httpReq) => throw null; + public virtual ServiceStack.ServiceStackHost Init() => throw null; + public System.Collections.Generic.List InsertVirtualFileSources { get => throw null; set => throw null; } + public static ServiceStack.ServiceStackHost Instance { get => throw null; set => throw null; } + public bool IsDebugLogEnabled { get => throw null; } + public static bool IsReady() => throw null; + public virtual void LoadPlugin(params ServiceStack.IPlugin[] plugins) => throw null; + public virtual ServiceStack.Web.IHttpResult LocalRedirect(ServiceStack.IServiceBase service, string redirect, string message) => throw null; + protected ServiceStack.Logging.ILog Log; + public virtual string MapProjectPath(string relativePath) => throw null; + public ServiceStack.Host.ServiceMetadata Metadata { get => throw null; set => throw null; } + public ServiceStack.Metadata.MetadataPagesConfig MetadataPagesConfig { get => throw null; } + public static string NormalizePathInfo(string pathInfo, string mode) => throw null; + public virtual void OnAfterConfigChanged() => throw null; + public virtual object OnAfterExecute(ServiceStack.Web.IRequest req, object requestDto, object response) => throw null; + public virtual void OnAfterInit() => throw null; + public System.Collections.Generic.Dictionary>> OnAfterPluginsLoaded { get => throw null; set => throw null; } + public virtual void OnApplicationStopping() => throw null; + public virtual void OnBeforeInit() => throw null; + public virtual void OnConfigLoad() => throw null; + public virtual object OnDeserializeJson(System.Type intoType, System.IO.Stream fromStream) => throw null; + public System.Collections.Generic.List> OnDisposeCallbacks { get => throw null; set => throw null; } + public virtual void OnEndRequest(ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; + public System.Collections.Generic.List> OnEndRequestCallbacks { get => throw null; set => throw null; } + public virtual void OnExceptionTypeFilter(System.Exception ex, ServiceStack.ResponseStatus responseStatus) => throw null; + public virtual System.Threading.Tasks.Task OnGatewayException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; + public virtual void OnLogError(System.Type type, string message, System.Exception innerEx = default(System.Exception)) => throw null; + public virtual object OnPostExecuteServiceFilter(ServiceStack.IService service, object response, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public System.Collections.Generic.Dictionary>> OnPostRegisterPlugins { get => throw null; set => throw null; } + public virtual object OnPreExecuteServiceFilter(ServiceStack.IService service, object request, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public System.Collections.Generic.Dictionary>> OnPreRegisterPlugins { get => throw null; set => throw null; } + public virtual void OnSaveSession(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; + public virtual System.Threading.Tasks.Task OnSaveSessionAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void OnSerializeJson(ServiceStack.Web.IRequest req, object dto, System.IO.Stream outputStream) => throw null; + public virtual System.Threading.Tasks.Task OnServiceException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; + public virtual ServiceStack.Auth.IAuthSession OnSessionFilter(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, string withSessionId) => throw null; + public virtual void OnStartupException(System.Exception ex) => throw null; + public virtual void OnStartupException(System.Exception ex, string target, string method) => throw null; + public virtual System.Threading.Tasks.Task OnUncaughtException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; + public virtual string PathBase { get => throw null; set => throw null; } + public System.Collections.Generic.List Plugins { get => throw null; set => throw null; } + public System.Collections.Generic.List PluginsLoaded { get => throw null; set => throw null; } + protected void PopulateArrayFilters() => throw null; + public void PostConfigurePlugin(System.Action configure) where T : class, ServiceStack.IPlugin => throw null; + public System.Collections.Generic.List> PreRequestFilters { get => throw null; set => throw null; } + public virtual void PublishMessage(ServiceStack.Messaging.IMessageProducer messageProducer, T message) => throw null; + public System.Collections.Generic.List> RawHttpHandlers { get => throw null; set => throw null; } + public System.DateTime? ReadyAt { get => throw null; set => throw null; } + public virtual ServiceStack.Web.IHttpResult Redirect(ServiceStack.IServiceBase service, string redirect, string message) => throw null; + public virtual void Register(T instance) => throw null; + public virtual void RegisterAs() where T : TAs => throw null; + protected virtual void RegisterLicenseKey(string licenseKeyText) => throw null; + public virtual void RegisterService(System.Type serviceType, params string[] atRestPaths) => throw null; + public virtual void RegisterService(params string[] atRestPaths) where T : ServiceStack.IService => throw null; + public void RegisterServicesInAssembly(System.Reflection.Assembly assembly) => throw null; + public void RegisterTypedMessageRequestFilter(System.Action filterFn) => throw null; + public void RegisterTypedMessageResponseFilter(System.Action filterFn) => throw null; + public void RegisterTypedRequestFilter(System.Action filterFn) => throw null; + public void RegisterTypedRequestFilter(System.Func> filter) => throw null; + public void RegisterTypedRequestFilterAsync(System.Func> filter) => throw null; + public void RegisterTypedRequestFilterAsync(System.Func filterFn) => throw null; + public void RegisterTypedResponseFilter(System.Action filterFn) => throw null; + public void RegisterTypedResponseFilter(System.Func> filter) => throw null; + public void RegisterTypedResponseFilterAsync(System.Func> filter) => throw null; + public void RegisterTypedResponseFilterAsync(System.Func filterFn) => throw null; + public virtual void Release(object instance) => throw null; + public System.Collections.Generic.Dictionary> RequestBinders { get => throw null; } + public System.Collections.Generic.List>> RequestConverters { get => throw null; set => throw null; } + public virtual T Resolve() => throw null; + public virtual string ResolveAbsoluteUrl(string virtualPath, ServiceStack.Web.IRequest httpReq) => throw null; + public virtual string ResolveLocalizedString(string text, ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; + public virtual string ResolveLocalizedStringFormat(string text, object[] args, ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; + public virtual string ResolvePathInfo(ServiceStack.Web.IRequest request, string originalPathInfo) => throw null; + public virtual string ResolvePhysicalPath(string virtualPath, ServiceStack.Web.IRequest httpReq) => throw null; + public System.Collections.Generic.List>> ResponseConverters { get => throw null; set => throw null; } + public System.Collections.Generic.List RestPaths { get => throw null; set => throw null; } + public virtual ServiceStack.Host.IHttpHandler ReturnRedirectHandler(ServiceStack.Web.IHttpRequest httpReq) => throw null; + public virtual ServiceStack.Host.IHttpHandler ReturnRequestInfoHandler(ServiceStack.Web.IHttpRequest httpReq) => throw null; + public ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } + public ServiceStack.Web.IServiceRoutes Routes { get => throw null; set => throw null; } + public ServiceStack.RpcGateway RpcGateway { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptContext ScriptContext { get => throw null; } + public System.Collections.Generic.List ServiceAssemblies { get => throw null; set => throw null; } + public ServiceStack.Host.ServiceController ServiceController { get => throw null; set => throw null; } + public System.Collections.Generic.List ServiceExceptionHandlers { get => throw null; set => throw null; } + public System.Collections.Generic.List ServiceExceptionHandlersAsync { get => throw null; set => throw null; } + public string ServiceName { get => throw null; set => throw null; } + protected ServiceStackHost(string serviceName, params System.Reflection.Assembly[] assembliesWithServices) => throw null; + public virtual void SetConfig(ServiceStack.HostConfig config) => throw null; + public virtual bool SetCookieFilter(ServiceStack.Web.IRequest req, System.Net.Cookie cookie) => throw null; + public virtual bool ShouldCompressFile(ServiceStack.IO.IVirtualFile file) => throw null; + public virtual bool ShouldProfileRequest(ServiceStack.Web.IRequest req) => throw null; + public virtual ServiceStack.ServiceStackHost Start(string urlBase) => throw null; + public System.Collections.Generic.List StartUpErrors { get => throw null; set => throw null; } + public System.DateTime StartedAt { get => throw null; set => throw null; } + public bool TestMode { get => throw null; set => throw null; } + public virtual ServiceStack.Web.IRequest TryGetCurrentRequest() => throw null; + public virtual void TryGetNativeCacheClient(ServiceStack.Web.IRequest req, out ServiceStack.Caching.ICacheClient cacheSync, out ServiceStack.Caching.ICacheClientAsync cacheAsync) => throw null; + public virtual string TryGetUserId(ServiceStack.Web.IRequest req) => throw null; + public virtual T TryResolve() => throw null; + public System.Collections.Generic.List UncaughtExceptionHandlers { get => throw null; set => throw null; } + public System.Collections.Generic.List UncaughtExceptionHandlersAsync { get => throw null; set => throw null; } + public System.Exception UseException(System.Exception ex) => throw null; + public virtual bool UseHttps(ServiceStack.Web.IRequest httpReq) => throw null; + public System.Collections.Generic.List ViewEngines { get => throw null; set => throw null; } + public ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get => throw null; set => throw null; } + public ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task WriteAutoHtmlResponseAsync(ServiceStack.Web.IRequest request, object response, string html, System.IO.Stream outputStream) => throw null; + // ERR: Stub generator didn't handle member: ~ServiceStackHost + } + + // Generated from `ServiceStack.ServiceStackHttpHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceStackHttpHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public override void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public ServiceStackHttpHandler(ServiceStack.Host.Handlers.IServiceStackHandler servicestackHandler) => throw null; + } + + // Generated from `ServiceStack.ServiceStackMqActivityArgs` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceStackMqActivityArgs + { + public System.Diagnostics.Activity Activity { get => throw null; set => throw null; } + public ServiceStack.Messaging.IMessage Message { get => throw null; set => throw null; } + public ServiceStackMqActivityArgs() => throw null; + } + + // Generated from `ServiceStack.ServiceStackProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceStackProvider : ServiceStack.IServiceStackProvider, System.IDisposable + { + public ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; } + public ServiceStack.Auth.IAuthRepository AuthRepository { get => throw null; } + public ServiceStack.Auth.IAuthRepositoryAsync AuthRepositoryAsync { get => throw null; } + public virtual ServiceStack.Caching.ICacheClient Cache { get => throw null; } + public virtual ServiceStack.Caching.ICacheClientAsync CacheAsync { get => throw null; } + public virtual void ClearSession() => throw null; + public System.Threading.Tasks.Task ClearSessionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Data.IDbConnection Db { get => throw null; } + public virtual void Dispose() => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public object Execute(ServiceStack.Web.IRequest request) => throw null; + public object Execute(object requestDto) => throw null; + public TResponse Execute(ServiceStack.IReturn requestDto) => throw null; + public object ForwardRequest() => throw null; + public virtual ServiceStack.IServiceGateway Gateway { get => throw null; } + public virtual System.Threading.Tasks.ValueTask GetRedisAsync() => throw null; + public virtual ServiceStack.Configuration.IResolver GetResolver() => throw null; + public virtual ServiceStack.Auth.IAuthSession GetSession(bool reload = default(bool)) => throw null; + public virtual System.Threading.Tasks.Task GetSessionAsync(bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual bool IsAuthenticated { get => throw null; } + public virtual ServiceStack.Messaging.IMessageProducer MessageProducer { get => throw null; } + public virtual void PublishMessage(T message) => throw null; + public virtual ServiceStack.Redis.IRedisClient Redis { get => throw null; } + public virtual ServiceStack.Web.IHttpRequest Request { get => throw null; } + public virtual T ResolveService() => throw null; + public virtual ServiceStack.Web.IHttpResponse Response { get => throw null; } + public ServiceStack.RpcGateway RpcGateway { get => throw null; } + public ServiceStackProvider(ServiceStack.Web.IHttpRequest request, ServiceStack.Configuration.IResolver resolver = default(ServiceStack.Configuration.IResolver)) => throw null; + public virtual TUserSession SessionAs() => throw null; + public virtual System.Threading.Tasks.Task SessionAsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual ServiceStack.Caching.ISession SessionBag { get => throw null; } + public virtual ServiceStack.Caching.ISessionAsync SessionBagAsync { get => throw null; } + public virtual ServiceStack.Caching.ISessionFactory SessionFactory { get => throw null; } + public virtual void SetResolver(ServiceStack.Configuration.IResolver resolver) => throw null; + public virtual T TryResolve() => throw null; + } + + // Generated from `ServiceStack.ServiceStackProviderExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceStackProviderExtensions + { + public static bool HasAccess(this ServiceStack.IHasServiceStackProvider hasProvider, System.Collections.Generic.ICollection roleAttrs, System.Collections.Generic.ICollection anyRoleAttrs, System.Collections.Generic.ICollection permAttrs, System.Collections.Generic.ICollection anyPermAttrs) => throw null; + public static bool IsAuthorized(this ServiceStack.IHasServiceStackProvider hasProvider, ServiceStack.AuthenticateAttribute authAttr) => throw null; + public static ServiceStack.FluentValidation.IValidator ResolveValidator(this ServiceStack.IHasServiceStackProvider provider) => throw null; + } + + // Generated from `ServiceStack.ServiceStackScriptBlocks` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceStackScriptBlocks : ServiceStack.Script.IScriptPlugin + { + public void Register(ServiceStack.Script.ScriptContext context) => throw null; + public ServiceStackScriptBlocks() => throw null; + } + + // Generated from `ServiceStack.ServiceStackScriptUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceStackScriptUtils + { + public static ServiceStack.ResponseStatus GetErrorStatus(this ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static ServiceStack.Web.IHttpRequest GetHttpRequest(this ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static ServiceStack.Web.IRequest GetRequest(this ServiceStack.Script.ScriptScopeContext scope) => throw null; + public static System.Collections.Generic.HashSet GetUserAttributes(this ServiceStack.Web.IRequest request) => throw null; + public static string ResolveUrl(this ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; + public static ServiceStack.NavOptions WithDefaults(this ServiceStack.NavOptions options, ServiceStack.Web.IRequest request) => throw null; + } + + // Generated from `ServiceStack.ServiceStackScripts` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceStackScripts : ServiceStack.Script.ScriptMethods, ServiceStack.Script.IConfigureScriptContext + { + public void Configure(ServiceStack.Script.ScriptContext context) => throw null; + public static ServiceStack.Logging.ILog Log; + public static System.Collections.Generic.List RemoveNewLinesFor { get => throw null; } + public ServiceStackScripts() => throw null; + public static ServiceStack.HttpResult ToHttpResult(System.Collections.Generic.Dictionary args) => throw null; + public object assertPermission(ServiceStack.Script.ScriptScopeContext scope, string permission) => throw null; + public object assertPermission(ServiceStack.Script.ScriptScopeContext scope, string permission, System.Collections.Generic.Dictionary options) => throw null; + public object assertRole(ServiceStack.Script.ScriptScopeContext scope, string role) => throw null; + public object assertRole(ServiceStack.Script.ScriptScopeContext scope, string role, System.Collections.Generic.Dictionary options) => throw null; + public ServiceStack.Auth.IAuthRepository authRepo(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object baseUrl(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.IRawString bundleCss(object virtualPaths) => throw null; + public ServiceStack.IRawString bundleCss(object virtualPaths, object options) => throw null; + public ServiceStack.IRawString bundleHtml(object virtualPaths) => throw null; + public ServiceStack.IRawString bundleHtml(object virtualPaths, object options) => throw null; + public ServiceStack.IRawString bundleJs(object virtualPaths) => throw null; + public ServiceStack.IRawString bundleJs(object virtualPaths, object options) => throw null; + public ServiceStack.Auth.IUserAuth createUserAuth(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; + public ServiceStack.Script.IgnoreResult deleteUserAuth(ServiceStack.Auth.IAuthRepository authRepo, string userAuthId) => throw null; + public object endIfAuthenticated(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; + public string errorResponse(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string errorResponse(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.ResponseStatus errorStatus, string fieldName) => throw null; + public string errorResponse(ServiceStack.Script.ScriptScopeContext scope, string fieldName) => throw null; + public string errorResponseExcept(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable fields) => throw null; + public string errorResponseExcept(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.ResponseStatus errorStatus, System.Collections.IEnumerable fields) => throw null; + public string errorResponseSummary(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string errorResponseSummary(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.ResponseStatus errorStatus) => throw null; + public object execService(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; + public object execService(ServiceStack.Script.ScriptScopeContext scope, string requestName, object options) => throw null; + public bool formCheckValue(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string formValue(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public string formValue(ServiceStack.Script.ScriptScopeContext scope, string name, string defaultValue) => throw null; + public string[] formValues(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; + public ServiceStack.ResponseStatus getErrorStatus(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.Web.IHttpResult getHttpResult(ServiceStack.Script.ScriptScopeContext scope, object options) => throw null; + public ServiceStack.Auth.IUserAuth getUserAuth(ServiceStack.Auth.IAuthRepository authRepo, string userAuthId) => throw null; + public ServiceStack.Auth.IUserAuth getUserAuthByUserName(ServiceStack.Auth.IAuthRepository authRepo, string userNameOrEmail) => throw null; + public System.Collections.Generic.List getUserAuths(ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public System.Collections.Generic.List getUserAuths(ServiceStack.Auth.IAuthRepository authRepo, System.Collections.Generic.Dictionary options) => throw null; + public object getUserSession(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool hasErrorStatus(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object hasPermission(ServiceStack.Script.ScriptScopeContext scope, string permission) => throw null; + public object hasRole(ServiceStack.Script.ScriptScopeContext scope, string role) => throw null; + public ServiceStack.IO.FileSystemVirtualFiles hostVfsFileSystem() => throw null; + public ServiceStack.IO.GistVirtualFiles hostVfsGist() => throw null; + public ServiceStack.IO.MemoryVirtualFiles hostVfsMemory() => throw null; + public ServiceStack.Web.IHttpRequest httpRequest(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.HttpResult httpResult(ServiceStack.Script.ScriptScopeContext scope, object options) => throw null; + public object ifAuthenticated(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object ifNotAuthenticated(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool isAuthenticated(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public bool isAuthenticated(ServiceStack.Script.ScriptScopeContext scope, string provider) => throw null; + public ServiceStack.Auth.IUserAuth newUserAuth(ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public ServiceStack.Auth.IUserAuthDetails newUserAuthDetails(ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public object onlyIfAuthenticated(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; + public ServiceStack.Script.IgnoreResult publishMessage(ServiceStack.Script.ScriptScopeContext scope, string requestName, object dto) => throw null; + public ServiceStack.Script.IgnoreResult publishMessage(ServiceStack.Script.ScriptScopeContext scope, string requestName, object dto, object options) => throw null; + public object publishToGateway(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName) => throw null; + public object publishToGateway(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName, object options) => throw null; + public object publishToGateway(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; + public object redirectIfNotAuthenticated(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public object redirectIfNotAuthenticated(ServiceStack.Script.ScriptScopeContext scope, string path) => throw null; + public object redirectTo(ServiceStack.Script.ScriptScopeContext scope, string path) => throw null; + public object requestItem(ServiceStack.Script.ScriptScopeContext scope, string key) => throw null; + public object resolveUrl(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; + public ServiceStack.Script.IgnoreResult saveUserAuth(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth userAuth) => throw null; + public System.Collections.Generic.List searchUserAuths(ServiceStack.Auth.IAuthRepository authRepo, System.Collections.Generic.Dictionary options) => throw null; + public object sendToAutoQuery(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName) => throw null; + public object sendToAutoQuery(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName, object options) => throw null; + public object sendToAutoQuery(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; + public object sendToGateway(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName) => throw null; + public object sendToGateway(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName, object options) => throw null; + public object sendToGateway(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; + public ServiceStack.IRawString serviceStackLogoDataUri() => throw null; + public ServiceStack.IRawString serviceStackLogoDataUri(string color) => throw null; + public ServiceStack.IRawString serviceStackLogoDataUriLight() => throw null; + public ServiceStack.IRawString serviceStackLogoSvg() => throw null; + public ServiceStack.IRawString serviceStackLogoSvg(string color) => throw null; + public string serviceUrl(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; + public string serviceUrl(ServiceStack.Script.ScriptScopeContext scope, string requestName, System.Collections.Generic.Dictionary properties) => throw null; + public string serviceUrl(ServiceStack.Script.ScriptScopeContext scope, string requestName, System.Collections.Generic.Dictionary properties, string httpMethod) => throw null; + public ServiceStack.Auth.IAuthSession sessionIfAuthenticated(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.Script.IgnoreResult svgAdd(string svg, string name) => throw null; + public ServiceStack.Script.IgnoreResult svgAdd(string svg, string name, string cssFile) => throw null; + public ServiceStack.Script.IgnoreResult svgAddFile(ServiceStack.Script.ScriptScopeContext scope, string svgPath, string name) => throw null; + public ServiceStack.Script.IgnoreResult svgAddFile(ServiceStack.Script.ScriptScopeContext scope, string svgPath, string name, string cssFile) => throw null; + public ServiceStack.IRawString svgBackgroundImageCss(string name) => throw null; + public ServiceStack.IRawString svgBackgroundImageCss(string name, string fillColor) => throw null; + public string svgBaseUrl(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public System.Collections.Generic.Dictionary> svgCssFiles() => throw null; + public ServiceStack.IRawString svgDataUri(string name) => throw null; + public ServiceStack.IRawString svgDataUri(string name, string fillColor) => throw null; + public System.Collections.Generic.Dictionary svgDataUris() => throw null; + public ServiceStack.IRawString svgFill(string svg, string color) => throw null; + public ServiceStack.IRawString svgImage(string name) => throw null; + public ServiceStack.IRawString svgImage(string name, string fillColor) => throw null; + public System.Collections.Generic.Dictionary svgImages() => throw null; + public ServiceStack.IRawString svgInBackgroundImageCss(string svg) => throw null; + public object toResults(object dto) => throw null; + public ServiceStack.Auth.IUserAuth tryAuthenticate(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Auth.IAuthRepository authRepo, string userName, string password) => throw null; + public ServiceStack.Auth.IUserAuth updateUserAuth(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser) => throw null; + public ServiceStack.Script.IgnoreResult updateUserAuth(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; + public System.Collections.Generic.HashSet userAttributes(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string userAuthId(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string userAuthName(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public string userProfileUrl(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.Auth.IAuthSession userSession(ServiceStack.Script.ScriptScopeContext scope) => throw null; + public ServiceStack.IO.IVirtualFiles vfsContent() => throw null; + } + + // Generated from `ServiceStack.SessionExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SessionExtensions + { + public static System.Collections.Generic.HashSet AddSessionOptions(this ServiceStack.Web.IRequest req, params string[] options) => throw null; + public static bool Base64StringContainsUrlUnfriendlyChars(string base64) => throw null; + public static void ClearSession(this ServiceStack.Caching.ICacheClient cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)) => throw null; + public static System.Threading.Tasks.Task ClearSessionAsync(this ServiceStack.Caching.ICacheClientAsync cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string CreatePermanentSessionId(this ServiceStack.Web.IRequest req, string sessionId) => throw null; + public static string CreatePermanentSessionId(this ServiceStack.Web.IResponse res, ServiceStack.Web.IRequest req) => throw null; + public static string CreateRandomBase62Id(int size) => throw null; + public static string CreateRandomBase64Id(int size = default(int)) => throw null; + public static string CreateRandomSessionId() => throw null; + public static string CreateSessionId(this ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string sessionKey, string sessionId) => throw null; + public static string CreateSessionId(this ServiceStack.Web.IResponse res, ServiceStack.Web.IRequest req) => throw null; + public static string CreateSessionIds(this ServiceStack.Web.IResponse res, ServiceStack.Web.IRequest req) => throw null; + public static string CreateTemporarySessionId(this ServiceStack.Web.IRequest req, string sessionId) => throw null; + public static string CreateTemporarySessionId(this ServiceStack.Web.IResponse res, ServiceStack.Web.IRequest req) => throw null; + public static void DeleteJwtCookie(this ServiceStack.Web.IResponse response) => throw null; + public static void DeleteSessionCookies(this ServiceStack.Web.IResponse response) => throw null; + public static System.Threading.Tasks.Task GenerateNewSessionCookiesAsync(this ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static T Get(this ServiceStack.Caching.ISession session) => throw null; + public static System.Threading.Tasks.Task GetAsync(this ServiceStack.Caching.ISessionAsync session, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetOrCreateSessionId(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetPermanentSessionId(this ServiceStack.Web.IRequest httpReq) => throw null; + public static ServiceStack.Caching.ISession GetSessionBag(this ServiceStack.Web.IRequest request) => throw null; + public static ServiceStack.Caching.ISession GetSessionBag(this ServiceStack.IServiceBase service) => throw null; + public static ServiceStack.Caching.ISessionAsync GetSessionBagAsync(this ServiceStack.Web.IRequest request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static ServiceStack.Caching.ISessionAsync GetSessionBagAsync(this ServiceStack.IServiceBase service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetSessionId(this ServiceStack.Web.IRequest req) => throw null; + public static string GetSessionKey(ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)) => throw null; + public static System.Collections.Generic.HashSet GetSessionOptions(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetSessionParam(this ServiceStack.Web.IRequest httpReq, string sessionKey) => throw null; + public static string GetTemporarySessionId(this ServiceStack.Web.IRequest httpReq) => throw null; + public static ServiceStack.Auth.IAuthSession GetUntypedSession(this ServiceStack.Caching.ICacheClient cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse)) => throw null; + public static System.Threading.Tasks.Task GetUntypedSessionAsync(this ServiceStack.Caching.ICacheClientAsync cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetUserAuthIdOrName(this ServiceStack.Auth.IAuthSession session) => throw null; + public static string GetUserAuthName(this ServiceStack.Auth.IAuthSession session) => throw null; + public static bool IsPermanentSession(this ServiceStack.Web.IRequest req) => throw null; + public static void PopulateWithSecureRandomBytes(System.Byte[] bytes) => throw null; + public static void Remove(this ServiceStack.Caching.ISession session) => throw null; + public static System.Threading.Tasks.Task RemoveAsync(this ServiceStack.Caching.ISessionAsync session, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static TUserSession SessionAs(this ServiceStack.Caching.ICacheClient cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse)) => throw null; + public static System.Threading.Tasks.Task SessionAsAsync(this ServiceStack.Caching.ICacheClientAsync cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void Set(this ServiceStack.Caching.ISession session, T value) => throw null; + public static System.Threading.Tasks.Task SetAsync(this ServiceStack.Caching.ISessionAsync session, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void SetSessionId(this ServiceStack.Web.IRequest req, string sessionId) => throw null; + public static void UpdateSession(this ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IUserAuth userAuth) => throw null; + } + + // Generated from `ServiceStack.SessionFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SessionFactory : ServiceStack.Caching.ISessionFactory + { + // Generated from `ServiceStack.SessionFactory+SessionCacheClient` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SessionCacheClient : ServiceStack.Caching.ISession + { + public T Get(string key) => throw null; + public object this[string key] { get => throw null; set => throw null; } + public bool Remove(string key) => throw null; + public void RemoveAll() => throw null; + public SessionCacheClient(ServiceStack.Caching.ICacheClient cacheClient, string sessionId) => throw null; + public void Set(string key, T value) => throw null; + } + + + // Generated from `ServiceStack.SessionFactory+SessionCacheClientAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SessionCacheClientAsync : ServiceStack.Caching.ISessionAsync + { + public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public SessionCacheClientAsync(ServiceStack.Caching.ICacheClientAsync cacheClient, string sessionId) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + + public ServiceStack.Caching.ISession CreateSession(string sessionId) => throw null; + public ServiceStack.Caching.ISessionAsync CreateSessionAsync(string sessionId) => throw null; + public ServiceStack.Caching.ISession GetOrCreateSession() => throw null; + public ServiceStack.Caching.ISession GetOrCreateSession(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public ServiceStack.Caching.ISessionAsync GetOrCreateSessionAsync() => throw null; + public ServiceStack.Caching.ISessionAsync GetOrCreateSessionAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public SessionFactory(ServiceStack.Caching.ICacheClient cacheClient) => throw null; + public SessionFactory(ServiceStack.Caching.ICacheClient cacheClient, ServiceStack.Caching.ICacheClientAsync cacheClientAsync) => throw null; + } + + // Generated from `ServiceStack.SessionFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SessionFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public static void AddSessionIdToRequestFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public static ServiceStack.Auth.IAuthSession CreateNewSession(ServiceStack.Web.IRequest httpReq) => throw null; + public static ServiceStack.Auth.IAuthSession CreateNewSession(ServiceStack.Web.IRequest httpReq, string sessionId) => throw null; + public static string CreateSessionIds(ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse)) => throw null; + public static System.TimeSpan DefaultPermanentSessionExpiry; + public static System.TimeSpan DefaultSessionExpiry; + public static T GetOrCreateSession(ServiceStack.Caching.ICacheClient cache = default(ServiceStack.Caching.ICacheClient), ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse)) => throw null; + public static System.Threading.Tasks.Task GetOrCreateSessionAsync(ServiceStack.Caching.ICacheClientAsync cache = default(ServiceStack.Caching.ICacheClientAsync), ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetSessionKey(ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)) => throw null; + public static string GetSessionKey(string sessionId) => throw null; + public string Id { get => throw null; set => throw null; } + public System.TimeSpan? PermanentSessionExpiry { get => throw null; set => throw null; } + public const string PermanentSessionId = default; + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.TimeSpan? SessionBagExpiry { get => throw null; set => throw null; } + public System.TimeSpan? SessionExpiry { get => throw null; set => throw null; } + public SessionFeature() => throw null; + public const string SessionId = default; + public const string SessionOptionsKey = default; + public const string XUserAuthId = default; + } + + // Generated from `ServiceStack.SessionFeatureUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SessionFeatureUtils + { + public static ServiceStack.Auth.IAuthSession CreateNewSession(this ServiceStack.Auth.IUserAuth user, ServiceStack.Web.IRequest httpReq) => throw null; + } + + // Generated from `ServiceStack.SessionOptions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SessionOptions + { + public const string Permanent = default; + public SessionOptions() => throw null; + public const string Temporary = default; + } + + // Generated from `ServiceStack.SessionSourceResult` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SessionSourceResult + { + public System.Collections.Generic.IEnumerable Permissions { get => throw null; } + public System.Collections.Generic.IEnumerable Roles { get => throw null; } + public ServiceStack.Auth.IAuthSession Session { get => throw null; } + public SessionSourceResult(ServiceStack.Auth.IAuthSession session, System.Collections.Generic.IEnumerable roles, System.Collections.Generic.IEnumerable permissions) => throw null; + } + + // Generated from `ServiceStack.SetStatusAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SetStatusAttribute : ServiceStack.RequestFilterAttribute + { + public string Description { get => throw null; set => throw null; } + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public SetStatusAttribute() => throw null; + public SetStatusAttribute(System.Net.HttpStatusCode statusCode, string description) => throw null; + public SetStatusAttribute(int status, string description) => throw null; + public int? Status { get => throw null; set => throw null; } + public System.Net.HttpStatusCode? StatusCode { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.SharpApiService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharpApiService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.ApiPages request) => throw null; + public SharpApiService() => throw null; + } + + // Generated from `ServiceStack.SharpCodePageHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharpCodePageHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public System.Collections.Generic.Dictionary Args { get => throw null; set => throw null; } + public object Model { get => throw null; set => throw null; } + public System.IO.Stream OutputStream { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public SharpCodePageHandler(ServiceStack.Script.SharpCodePage page, ServiceStack.Script.SharpPage layoutPage = default(ServiceStack.Script.SharpPage)) => throw null; + } + + // Generated from `ServiceStack.SharpPageHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharpPageHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public System.Collections.Generic.Dictionary Args { get => throw null; set => throw null; } + public ServiceStack.Script.ScriptContext Context { get => throw null; set => throw null; } + public System.Action Filter { get => throw null; set => throw null; } + public ServiceStack.Script.SharpPage LayoutPage { get => throw null; set => throw null; } + public object Model { get => throw null; set => throw null; } + public static ServiceStack.Script.ScriptContext NewContext(ServiceStack.IAppHost appHost) => throw null; + public System.IO.Stream OutputStream { get => throw null; set => throw null; } + public ServiceStack.Script.SharpPage Page { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public SharpPageHandler(ServiceStack.Script.SharpPage page, ServiceStack.Script.SharpPage layoutPage = default(ServiceStack.Script.SharpPage)) => throw null; + public SharpPageHandler(string pagePath, string layoutPath = default(string)) => throw null; + public System.Func ValidateFn { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.SharpPagesFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharpPagesFeature : ServiceStack.Script.ScriptContext, ServiceStack.Html.IViewEngine, ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string ApiDefaultContentType { get => throw null; set => throw null; } + public string ApiPath { get => throw null; set => throw null; } + public string DebugDefaultTemplate { get => throw null; set => throw null; } + public bool DisablePageBasedRouting { get => throw null; set => throw null; } + public bool? EnableHotReload { get => throw null; set => throw null; } + public bool? EnableSpaFallback { get => throw null; set => throw null; } + public bool ExcludeProtectedFilters { set => throw null; } + public ServiceStack.Script.SharpPage GetRoutingPage(string pathInfo, out System.Collections.Generic.Dictionary routingArgs) => throw null; + public ServiceStack.Script.SharpPage GetViewPage(string viewName) => throw null; + public bool HasView(string viewName, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)) => throw null; + public string HtmlExtension { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Collections.Generic.List IgnorePaths { get => throw null; set => throw null; } + public bool ImportRequestParams { get => throw null; set => throw null; } + public string MetadataDebugAdminRole { get => throw null; set => throw null; } + protected virtual ServiceStack.Host.IHttpHandler PageBasedRoutingHandler(string httpMethod, string pathInfo, string requestFilePath) => throw null; + public System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, object dto, System.IO.Stream outputStream) => throw null; + public virtual void Register(ServiceStack.IAppHost appHost) => throw null; + public string RenderPartial(string pageName, object model, bool renderHtml, System.IO.StreamWriter writer = default(System.IO.StreamWriter), ServiceStack.Html.IHtmlContext htmlHelper = default(ServiceStack.Html.IHtmlContext)) => throw null; + protected virtual ServiceStack.Host.IHttpHandler RequestHandler(string httpMethod, string pathInfo, string filePath) => throw null; + public string RunInitPage() => throw null; + public string ScriptAdminRole { get => throw null; set => throw null; } + public ServiceStack.ServiceStackScripts ServiceStackScripts { get => throw null; } + public SharpPagesFeature() => throw null; + } + + // Generated from `ServiceStack.SharpPagesFeatureExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SharpPagesFeatureExtensions + { + public static ServiceStack.Script.PageResult BindRequest(this ServiceStack.Script.PageResult result, ServiceStack.Web.IRequest request) => throw null; + public static System.Collections.Generic.Dictionary CreateRequestArgs(System.Collections.Generic.Dictionary args) => throw null; + public static ServiceStack.Script.SharpCodePage GetCodePage(this ServiceStack.Web.IRequest request, string virtualPath) => throw null; + public static ServiceStack.Script.SharpPage GetPage(this ServiceStack.Web.IRequest request, string virtualPath) => throw null; + public static ServiceStack.Script.PageResult GetPageResult(this ServiceStack.Web.IRequest request, string virtualPath, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; + public static System.Collections.Generic.Dictionary GetScriptRequestParams(this ServiceStack.Web.IRequest request, bool importRequestParams = default(bool)) => throw null; + public static ServiceStack.ServiceStackScripts GetServiceStackFilters(this ServiceStack.Script.ScriptContext context) => throw null; + public static ServiceStack.Script.ScriptContext InitForSharpPages(this ServiceStack.Script.ScriptContext context, ServiceStack.IAppHost appHost) => throw null; + public static ServiceStack.Script.SharpPage OneTimePage(this ServiceStack.Web.IRequest request, string contents, string ext = default(string)) => throw null; + public static System.Collections.Generic.Dictionary SetRequestArgs(System.Collections.Generic.Dictionary args, ServiceStack.Web.IRequest request) => throw null; + public static ServiceStack.Script.ScriptContext UseAppHost(this ServiceStack.Script.ScriptContext context, ServiceStack.IAppHost appHost) => throw null; + public static ServiceStack.Script.SharpCodePage With(this ServiceStack.Script.SharpCodePage page, ServiceStack.Web.IRequest request) => throw null; + } + + // Generated from `ServiceStack.Sitemap` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Sitemap + { + public string AtPath { get => throw null; set => throw null; } + public string CustomXml { get => throw null; set => throw null; } + public System.DateTime? LastModified { get => throw null; set => throw null; } + public string Location { get => throw null; set => throw null; } + public Sitemap() => throw null; + public System.Collections.Generic.List UrlSet { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.SitemapCustomXml` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SitemapCustomXml + { + public SitemapCustomXml() => throw null; + public string SitemapIndexFooterXml { get => throw null; set => throw null; } + public string SitemapIndexHeaderXml { get => throw null; set => throw null; } + public string UrlSetFooterXml { get => throw null; set => throw null; } + public string UrlSetHeaderXml { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.SitemapFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SitemapFeature : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + // Generated from `ServiceStack.SitemapFeature+SitemapIndexHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SitemapIndexHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public SitemapIndexHandler(ServiceStack.SitemapFeature feature) => throw null; + } + + + // Generated from `ServiceStack.SitemapFeature+SitemapUrlSetHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SitemapUrlSetHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public SitemapUrlSetHandler(ServiceStack.SitemapFeature feature, System.Collections.Generic.List urlSet) => throw null; + } + + + public string AtPath { get => throw null; set => throw null; } + public ServiceStack.SitemapCustomXml CustomXml { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public SitemapFeature() => throw null; + public System.Collections.Generic.List SitemapIndex { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary SitemapIndexNamespaces { get => throw null; set => throw null; } + public System.Collections.Generic.List UrlSet { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary UrlSetNamespaces { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.SitemapFrequency` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum SitemapFrequency + { + Always, + Daily, + Hourly, + Monthly, + Never, + Weekly, + Yearly, + } + + // Generated from `ServiceStack.SitemapUrl` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SitemapUrl + { + public ServiceStack.SitemapFrequency? ChangeFrequency { get => throw null; set => throw null; } + public string CustomXml { get => throw null; set => throw null; } + public System.DateTime? LastModified { get => throw null; set => throw null; } + public string Location { get => throw null; set => throw null; } + public System.Decimal? Priority { get => throw null; set => throw null; } + public SitemapUrl() => throw null; + } + + // Generated from `ServiceStack.SpaFallback` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SpaFallback : ServiceStack.IReturn, ServiceStack.IReturn + { + public string PathInfo { get => throw null; set => throw null; } + public SpaFallback() => throw null; + } + + // Generated from `ServiceStack.SpaFallbackService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SpaFallbackService : ServiceStack.Service + { + public object Any(ServiceStack.SpaFallback request) => throw null; + public SpaFallbackService() => throw null; + } + + // Generated from `ServiceStack.SpaFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SpaFeature : ServiceStack.SharpPagesFeature + { + public SpaFeature() => throw null; + } + + // Generated from `ServiceStack.StartsWithCondition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StartsWithCondition : ServiceStack.QueryCondition + { + public override string Alias { get => throw null; } + public static ServiceStack.StartsWithCondition Instance; + public override bool Match(object a, object b) => throw null; + public StartsWithCondition() => throw null; + } + + // Generated from `ServiceStack.StaticContent` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StaticContent + { + public static ServiceStack.StaticContent CreateFromDataUri(string dataUri) => throw null; + public System.ReadOnlyMemory Data { get => throw null; } + public string MimeType { get => throw null; } + public StaticContent(System.ReadOnlyMemory data, string mimeType) => throw null; + } + + // Generated from `ServiceStack.StoreFileUploadService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StoreFileUploadService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.StoreFileUpload request) => throw null; + public StoreFileUploadService() => throw null; + } + + // Generated from `ServiceStack.StrictModeCodes` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StrictModeCodes + { + public const string CyclicalUserSession = default; + public const string ReturnsValueType = default; + } + + // Generated from `ServiceStack.SubscriptionInfo` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SubscriptionInfo + { + public string[] Channels { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ConnectArgs { get => throw null; set => throw null; } + public System.DateTime CreatedAt { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public bool IsAuthenticated { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServerArgs { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public string SubscriptionId { get => throw null; set => throw null; } + public SubscriptionInfo() => throw null; + public string UserAddress { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Svg` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Svg + { + // Generated from `ServiceStack.Svg+Body` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Body + { + public static string History; + public static string Home; + public static string Key; + public static string Lock; + public static string Logs; + public static string Profiling; + public static string Table; + public static string User; + public static string UserDetails; + public static string UserShield; + public static string Users; + } + + + // Generated from `ServiceStack.Svg+Icons` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Icons + { + public const string DefaultProfile = default; + public const string Female = default; + public const string FemaleBusiness = default; + public const string FemaleColor = default; + public const string Male = default; + public const string MaleBusiness = default; + public const string MaleColor = default; + public const string Users = default; + } + + + // Generated from `ServiceStack.Svg+Logos` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Logos + { + public const string Apple = default; + public const string Facebook = default; + public const string GitHub = default; + public const string Google = default; + public const string LinkedIn = default; + public const string Microsoft = default; + public const string ServiceStack = default; + public const string Twitter = default; + } + + + public static void AddImage(string svg, string name, string cssFile = default(string)) => throw null; + public static System.Collections.Generic.Dictionary AdjacentCssRules { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary AppendToCssFiles { get => throw null; set => throw null; } + public static string Create(string body, string fill = default(string), string viewBox = default(string), string stroke = default(string)) => throw null; + public static ServiceStack.ImageInfo CreateImage(string body, string fill = default(string), string viewBox = default(string), string stroke = default(string)) => throw null; + public static System.Collections.Generic.Dictionary> CssFiles { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary CssFillColor { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary DataUris { get => throw null; set => throw null; } + public static string Encode(string svg) => throw null; + public static string Fill(string svg, string fillColor) => throw null; + public static string[] FillColors { get => throw null; set => throw null; } + public static string GetBackgroundImageCss(string name) => throw null; + public static string GetBackgroundImageCss(string name, string fillColor) => throw null; + public static string GetDataUri(string name) => throw null; + public static string GetDataUri(string name, string fillColor) => throw null; + public static string GetImage(string name) => throw null; + public static string GetImage(string name, string fillColor) => throw null; + public static ServiceStack.StaticContent GetStaticContent(string name) => throw null; + public static ServiceStack.ImageInfo ImageSvg(string svg) => throw null; + public static ServiceStack.ImageInfo ImageUri(string uri) => throw null; + public static System.Collections.Generic.Dictionary Images { get => throw null; set => throw null; } + public static string InBackgroundImageCss(string svg) => throw null; + public static string LightColor { get => throw null; set => throw null; } + public static void Load(ServiceStack.IO.IVirtualDirectory svgDir) => throw null; + public static string ToDataUri(string svg) => throw null; + } + + // Generated from `ServiceStack.SvgFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SvgFeature : ServiceStack.IPlugin, ServiceStack.IPostInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public void AfterPluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public string Id { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public string RoutePath { get => throw null; set => throw null; } + public SvgFeature() => throw null; + public System.Func ValidateFn { get => throw null; set => throw null; } + public static void WriteAdjacentCss(System.Text.StringBuilder sb, System.Collections.Generic.List dataUris, System.Collections.Generic.Dictionary adjacentCssRules) => throw null; + public static void WriteDataUris(System.Text.StringBuilder sb, System.Collections.Generic.List dataUris) => throw null; + public static void WriteSvgCssFile(ServiceStack.IO.IVirtualFiles vfs, string name, System.Collections.Generic.List dataUris, System.Collections.Generic.Dictionary adjacentCssRules = default(System.Collections.Generic.Dictionary), System.Collections.Generic.Dictionary appendToCssFiles = default(System.Collections.Generic.Dictionary)) => throw null; + } + + // Generated from `ServiceStack.SvgFormatHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SvgFormatHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public string Fill { get => throw null; set => throw null; } + public string Format { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public SvgFormatHandler() => throw null; + public SvgFormatHandler(string fileName) => throw null; + } + + // Generated from `ServiceStack.SvgScriptBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SvgScriptBlock : ServiceStack.Script.ScriptBlock + { + public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } + public override string Name { get => throw null; } + public SvgScriptBlock() => throw null; + public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; + } + + // Generated from `ServiceStack.TemplateInfoFilters` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TemplateInfoFilters : ServiceStack.InfoScripts + { + public TemplateInfoFilters() => throw null; + } + + // Generated from `ServiceStack.TemplateMarkdownBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TemplateMarkdownBlock : ServiceStack.MarkdownScriptBlock + { + public TemplateMarkdownBlock() => throw null; + } + + // Generated from `ServiceStack.TemplateServiceStackFilters` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TemplateServiceStackFilters : ServiceStack.ServiceStackScripts + { + public TemplateServiceStackFilters() => throw null; + } + + // Generated from `ServiceStack.TopLevelAppModularStartup` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TopLevelAppModularStartup : ServiceStack.ModularStartup + { + public System.Type AppHostType { get => throw null; set => throw null; } + public void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; + public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; + public static ServiceStack.ModularStartup Create(THost instance, Microsoft.Extensions.Configuration.IConfiguration configuration, System.Func> typesResolver) where THost : ServiceStack.AppHostBase => throw null; + public static ServiceStack.ModularStartup Instance { get => throw null; set => throw null; } + public ServiceStack.AppHostBase StartupInstance { get => throw null; set => throw null; } + protected TopLevelAppModularStartup(System.Type hostType, ServiceStack.AppHostBase hostInstance, Microsoft.Extensions.Configuration.IConfiguration configuration, System.Func> typesResolver) => throw null; + } + + // Generated from `ServiceStack.TypeValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class TypeValidator : ServiceStack.ITypeValidator + { + public System.Collections.Generic.Dictionary ContextArgs { get => throw null; set => throw null; } + public string DefaultErrorCode { get => throw null; set => throw null; } + public string DefaultMessage { get => throw null; set => throw null; } + public int? DefaultStatusCode { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public virtual bool IsValid(object dto, ServiceStack.Web.IRequest request) => throw null; + public virtual System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; + public string Message { get => throw null; set => throw null; } + protected string ResolveErrorCode() => throw null; + protected string ResolveErrorMessage(ServiceStack.Web.IRequest request, object dto) => throw null; + protected int ResolveStatusCode() => throw null; + public int? StatusCode { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task ThrowIfNotValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; + protected TypeValidator(string errorCode = default(string), string message = default(string), int? statusCode = default(int?)) => throw null; + } + + // Generated from `ServiceStack.TypedQueryData<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypedQueryData : ServiceStack.ITypedQueryData + { + public ServiceStack.IDataQuery AddToQuery(ServiceStack.IDataQuery q, ServiceStack.IQueryData request, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.IAutoQueryDataOptions options = default(ServiceStack.IAutoQueryDataOptions)) => throw null; + public ServiceStack.IDataQuery CreateQuery(ServiceStack.IQueryDataSource db) => throw null; + public ServiceStack.QueryResponse Execute(ServiceStack.IQueryDataSource db, ServiceStack.IDataQuery query) => throw null; + public System.Type FromType { get => throw null; } + public System.Type QueryType { get => throw null; } + public TypedQueryData() => throw null; + } + + // Generated from `ServiceStack.UiFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UiFeature : ServiceStack.IPlugin, ServiceStack.IPostInitPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public void AddAdminLink(ServiceStack.AdminUi feature, ServiceStack.LinkInfo link) => throw null; + public ServiceStack.HtmlModule AdminHtmlModule { get => throw null; set => throw null; } + public ServiceStack.AdminUi AdminUi { get => throw null; set => throw null; } + public void AfterPluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public System.Action Configure { get => throw null; set => throw null; } + public ServiceStack.LinkInfo DashboardLink { get => throw null; set => throw null; } + public System.Collections.Generic.List Handlers { get => throw null; set => throw null; } + public System.Collections.Generic.List HtmlModules { get => throw null; } + public string Id { get => throw null; } + public ServiceStack.UiInfo Info { get => throw null; set => throw null; } + public ServiceStack.HtmlModulesFeature Module { get => throw null; } + public System.Collections.Generic.List PreserveAttributesNamed { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public System.Collections.Generic.Dictionary> RoleLinks { get => throw null; set => throw null; } + public UiFeature() => throw null; + } + + // Generated from `ServiceStack.UiFeatureUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class UiFeatureUtils + { + public static ServiceStack.LinkInfo ToAdminRoleLink(this ServiceStack.LinkInfo link) => throw null; + } + + // Generated from `ServiceStack.UnRegisterEventSubscriber` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UnRegisterEventSubscriber : ServiceStack.IReturn, ServiceStack.IReturn> + { + public string Id { get => throw null; set => throw null; } + public UnRegisterEventSubscriber() => throw null; + } + + // Generated from `ServiceStack.UploadLocation` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UploadLocation + { + public System.Collections.Generic.HashSet AllowExtensions { get => throw null; set => throw null; } + public ServiceStack.FilesUploadOperation AllowOperations { get => throw null; set => throw null; } + public System.Int64? MaxFileBytes { get => throw null; set => throw null; } + public int? MaxFileCount { get => throw null; set => throw null; } + public System.Int64? MinFileBytes { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string ReadAccessRole { get => throw null; set => throw null; } + public System.Func ResolvePath { get => throw null; set => throw null; } + public UploadLocation(string name, ServiceStack.IO.IVirtualFiles virtualFiles, System.Func resolvePath = default(System.Func), string readAccessRole = default(string), string writeAccessRole = default(string), string[] allowExtensions = default(string[]), ServiceStack.FilesUploadOperation allowOperations = default(ServiceStack.FilesUploadOperation), int? maxFileCount = default(int?), System.Int64? minFileBytes = default(System.Int64?), System.Int64? maxFileBytes = default(System.Int64?), System.Action validateUpload = default(System.Action), System.Action validateDownload = default(System.Action), System.Action validateDelete = default(System.Action), System.Func fileResult = default(System.Func)) => throw null; + public System.Action ValidateDelete { get => throw null; set => throw null; } + public System.Action ValidateDownload { get => throw null; set => throw null; } + public System.Action ValidateUpload { get => throw null; set => throw null; } + public ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; set => throw null; } + public string WriteAccessRole { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ValidateScripts` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidateScripts : ServiceStack.Script.ScriptMethods + { + public ServiceStack.FluentValidation.Validators.IPropertyValidator CreditCard() => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator Email() => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator Empty() => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator Empty(object defaultValue) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator Enum(System.Type enumType) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator Equal(object value) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator ExactLength(int length) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator ExclusiveBetween(System.IComparable from, System.IComparable to) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator GreaterThan(int value) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator GreaterThanOrEqual(int value) => throw null; + public ServiceStack.ITypeValidator HasPermission(string permission) => throw null; + public ServiceStack.ITypeValidator HasPermissions(string[] permission) => throw null; + public ServiceStack.ITypeValidator HasRole(string role) => throw null; + public ServiceStack.ITypeValidator HasRoles(string[] roles) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator InclusiveBetween(System.IComparable from, System.IComparable to) => throw null; + public static ServiceStack.ValidateScripts Instance; + public ServiceStack.ITypeValidator IsAdmin() => throw null; + public ServiceStack.ITypeValidator IsAuthenticated() => throw null; + public ServiceStack.ITypeValidator IsAuthenticated(string provider) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator Length(int min, int max) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator LessThan(int value) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator LessThanOrEqual(int value) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator MaximumLength(int max) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator MinimumLength(int min) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator NotEmpty() => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator NotEmpty(object defaultValue) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator NotEqual(object value) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator NotNull() => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator Null() => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator RegularExpression(string regex) => throw null; + public static System.Collections.Generic.HashSet RequiredValidators { get => throw null; } + public ServiceStack.FluentValidation.Validators.IPropertyValidator ScalePrecision(int scale, int precision) => throw null; + public ValidateScripts() => throw null; + } + + // Generated from `ServiceStack.ValidationResultExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ValidationResultExtensions + { + public static ServiceStack.Validation.ValidationErrorResult ToErrorResult(this ServiceStack.FluentValidation.Results.ValidationResult result) => throw null; + public static ServiceStack.Validation.ValidationError ToException(this ServiceStack.FluentValidation.Results.ValidationResult result) => throw null; + } + + // Generated from `ServiceStack.ValidationSourceUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ValidationSourceUtils + { + public static System.Threading.Tasks.Task ClearCacheAsync(this ServiceStack.IValidationSource source, params int[] ids) => throw null; + public static System.Threading.Tasks.Task DeleteValidationRulesAsync(this ServiceStack.IValidationSource source, params int[] ids) => throw null; + public static System.Threading.Tasks.Task> GetAllValidateRulesAsync(this ServiceStack.IValidationSource source, string typeName) => throw null; + public static System.Threading.Tasks.Task> GetValidateRulesByIdsAsync(this ServiceStack.IValidationSource source, params int[] ids) => throw null; + public static void InitSchema(this ServiceStack.IValidationSource source) => throw null; + public static System.Threading.Tasks.Task SaveValidationRulesAsync(this ServiceStack.IValidationSource source, System.Collections.Generic.List validateRules) => throw null; + } + + // Generated from `ServiceStack.ValidatorUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ValidatorUtils + { + public static ServiceStack.ITypeValidator Init(this ServiceStack.ITypeValidator validator, ServiceStack.IValidateRule rule) => throw null; + } + + // Generated from `ServiceStack.Validators` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Validators + { + public static void AddRule(this System.Collections.Generic.List validators, System.Reflection.PropertyInfo pi, ServiceStack.IValidateRule propRule) => throw null; + public static void AddRule(System.Type type, System.Reflection.PropertyInfo pi, ServiceStack.ValidateAttribute attr) => throw null; + public static void AddRule(System.Type type, string name, ServiceStack.ValidateAttribute attr) => throw null; + public static void AddTypeValidator(System.Collections.Generic.List to, ServiceStack.IValidateRule attr) => throw null; + public static void AppendDefaultValueOnEmptyValidators(System.Reflection.PropertyInfo pi, ServiceStack.IValidateRule rule) => throw null; + public static System.Threading.Tasks.Task AssertTypeValidatorsAsync(ServiceStack.Web.IRequest req, object requestDto, System.Type requestType) => throw null; + public static System.Collections.Generic.Dictionary ConditionErrorCodes { get => throw null; set => throw null; } + public static ServiceStack.FluentValidation.IValidationRule CreateCollectionPropertyRule(System.Type type, System.Reflection.PropertyInfo pi) => throw null; + public static ServiceStack.FluentValidation.IValidationRule CreatePropertyRule(System.Type type, System.Reflection.PropertyInfo pi) => throw null; + public static System.Collections.Generic.Dictionary ErrorCodeMessages { get => throw null; set => throw null; } + public static System.Collections.Generic.List GetPropertyRules(System.Type type) => throw null; + public static System.Collections.Generic.List GetTypeRules(System.Type type) => throw null; + public static bool HasValidateAttributes(System.Type type) => throw null; + public static bool HasValidateRequestAttributes(System.Type type) => throw null; + public static ServiceStack.Script.SharpPage ParseCondition(ServiceStack.Script.ScriptContext context, string condition) => throw null; + public static bool RegisterPropertyRulesFor(System.Type type) => throw null; + public static bool RegisterRequestRulesFor(System.Type type) => throw null; + public static System.Collections.Generic.List> RuleFilters { get => throw null; } + public static ServiceStack.Script.PageResult ToPageResult(this ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, ServiceStack.Script.SharpPage page) => throw null; + public static System.Collections.Generic.Dictionary> TypePropertyRulesMap { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary> TypeRulesMap { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.WebSudoAuthUserSession` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class WebSudoAuthUserSession : ServiceStack.AuthUserSession, ServiceStack.Auth.IAuthSession, ServiceStack.Auth.IWebSudoAuthSession + { + public System.DateTime AuthenticatedAt { get => throw null; set => throw null; } + public int AuthenticatedCount { get => throw null; set => throw null; } + public System.DateTime? AuthenticatedWebSudoUntil { get => throw null; set => throw null; } + public WebSudoAuthUserSession() => throw null; + } + + // Generated from `ServiceStack.WebSudoFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class WebSudoFeature : ServiceStack.Auth.AuthEvents, ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string Id { get => throw null; set => throw null; } + public override void OnAuthenticated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public override void OnCreated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session) => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + public const string SessionCopyRequestItemKey = default; + public System.TimeSpan WebSudoDuration { get => throw null; set => throw null; } + public WebSudoFeature() => throw null; + } + + // Generated from `ServiceStack.WebSudoRequiredAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class WebSudoRequiredAttribute : ServiceStack.AuthenticateAttribute + { + public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public System.Threading.Tasks.Task HasWebSudoAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IWebSudoAuthSession session) => throw null; + public WebSudoRequiredAttribute() => throw null; + public WebSudoRequiredAttribute(ServiceStack.ApplyTo applyTo) => throw null; + } + + // Generated from `ServiceStack.XmlOnly` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlOnly : ServiceStack.RequestFilterAttribute + { + public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public XmlOnly() => throw null; + } + + namespace Admin + { + // Generated from `ServiceStack.Admin.AdminUsersFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminUsersFeature : ServiceStack.IAfterInitAppHost, ServiceStack.IPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string AdminRole { get => throw null; set => throw null; } + public AdminUsersFeature() => throw null; + public void AfterInit(ServiceStack.IAppHost appHost) => throw null; + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public bool ExecuteOnRegisteredEventsForCreatedUsers { get => throw null; set => throw null; } + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Func OnAfterCreateUser { get => throw null; set => throw null; } + public System.Func OnAfterDeleteUser { get => throw null; set => throw null; } + public System.Func OnAfterUpdateUser { get => throw null; set => throw null; } + public System.Func OnBeforeCreateUser { get => throw null; set => throw null; } + public System.Func OnBeforeDeleteUser { get => throw null; set => throw null; } + public System.Func OnBeforeUpdateUser { get => throw null; set => throw null; } + public System.Collections.Generic.List QueryMediaRules { get => throw null; set => throw null; } + public System.Collections.Generic.List QueryUserAuthProperties { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public ServiceStack.Admin.AdminUsersFeature RemoveFields(params string[] fieldNames) => throw null; + public ServiceStack.Admin.AdminUsersFeature RemoveFromQueryResults(params string[] fieldNames) => throw null; + public ServiceStack.Admin.AdminUsersFeature RemoveFromUserForm(System.Predicate match) => throw null; + public ServiceStack.Admin.AdminUsersFeature RemoveFromUserForm(params string[] fieldNames) => throw null; + public System.Collections.Generic.List RestrictedUserAuthProperties { get => throw null; set => throw null; } + public System.Collections.Generic.List> UserFormLayout { set => throw null; } + public ServiceStack.Auth.ValidateAsyncFn ValidateFn { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Admin.AdminUsersService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminUsersService : ServiceStack.Service + { + public AdminUsersService() => throw null; + public System.Threading.Tasks.Task Delete(ServiceStack.AdminDeleteUser request) => throw null; + public System.Threading.Tasks.Task Get(ServiceStack.AdminGetUser request) => throw null; + public System.Threading.Tasks.Task Get(ServiceStack.AdminQueryUsers request) => throw null; + public System.Threading.Tasks.Task Post(ServiceStack.AdminCreateUser request) => throw null; + public System.Threading.Tasks.Task Put(ServiceStack.AdminUpdateUser request) => throw null; + } + + // Generated from `ServiceStack.Admin.RequestLogs` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestLogs : ServiceStack.IReturn, ServiceStack.IReturn + { + public int? AfterId { get => throw null; set => throw null; } + public int? AfterSecs { get => throw null; set => throw null; } + public int? BeforeId { get => throw null; set => throw null; } + public int? BeforeSecs { get => throw null; set => throw null; } + public System.TimeSpan? DurationLessThan { get => throw null; set => throw null; } + public System.TimeSpan? DurationLongerThan { get => throw null; set => throw null; } + public bool? EnableErrorTracking { get => throw null; set => throw null; } + public bool? EnableResponseTracking { get => throw null; set => throw null; } + public bool? EnableSessionTracking { get => throw null; set => throw null; } + public string ForwardedFor { get => throw null; set => throw null; } + public bool? HasResponse { get => throw null; set => throw null; } + public System.Int64[] Ids { get => throw null; set => throw null; } + public string IpAddress { get => throw null; set => throw null; } + public string OperationName { get => throw null; set => throw null; } + public string OrderBy { get => throw null; set => throw null; } + public string PathInfo { get => throw null; set => throw null; } + public string Referer { get => throw null; set => throw null; } + public RequestLogs() => throw null; + public string SessionId { get => throw null; set => throw null; } + public int Skip { get => throw null; set => throw null; } + public int? Take { get => throw null; set => throw null; } + public string UserAuthId { get => throw null; set => throw null; } + public bool? WithErrors { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Admin.RequestLogsResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestLogsResponse + { + public RequestLogsResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + public int Total { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Usage { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Admin.RequestLogsService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestLogsService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.Admin.RequestLogs request) => throw null; + public ServiceStack.Web.IRequestLogger RequestLogger { get => throw null; set => throw null; } + public RequestLogsService() => throw null; + } + + } + namespace Auth + { + // Generated from `ServiceStack.Auth.ApiKey` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiKey : ServiceStack.IMeta + { + public ApiKey() => throw null; + public System.DateTime? CancelledDate { get => throw null; set => throw null; } + public System.DateTime CreatedDate { get => throw null; set => throw null; } + public string Environment { get => throw null; set => throw null; } + public System.DateTime? ExpiryDate { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public string KeyType { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Notes { get => throw null; set => throw null; } + public int? RefId { get => throw null; set => throw null; } + public string RefIdStr { get => throw null; set => throw null; } + public string UserAuthId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.ApiKeyAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiKeyAuthProvider : ServiceStack.Auth.AuthProvider, ServiceStack.Auth.IAuthWithRequest, ServiceStack.IAuthPlugin + { + public bool AllowInHttpParams { get => throw null; set => throw null; } + public ApiKeyAuthProvider() => throw null; + public ApiKeyAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task CacheSessionAsync(ServiceStack.Web.IRequest req, string apiSessionKey) => throw null; + public virtual string CreateApiKey(string environment, string keyType, int sizeBytes) => throw null; + public System.Action CreateApiKeyFilter { get => throw null; set => throw null; } + public static string[] DefaultEnvironments; + public static int DefaultKeySizeBytes; + public static string[] DefaultTypes; + public string[] Environments { get => throw null; set => throw null; } + public System.TimeSpan? ExpireKeysAfter { get => throw null; set => throw null; } + public ServiceStack.Auth.CreateApiKeyDelegate GenerateApiKey { get => throw null; set => throw null; } + public System.Collections.Generic.List GenerateNewApiKeys(string userId, params string[] environments) => throw null; + protected virtual System.Threading.Tasks.Task GetApiKeyAsync(ServiceStack.Web.IRequest req, string apiKey) => throw null; + public static string GetSessionKey(string apiKey) => throw null; + public virtual System.Threading.Tasks.Task HasCachedSessionAsync(ServiceStack.Web.IRequest req, string apiSessionKey) => throw null; + protected virtual void Init(ServiceStack.Configuration.IAppSettings appSettings = default(ServiceStack.Configuration.IAppSettings)) => throw null; + public bool InitSchema { get => throw null; set => throw null; } + public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public int KeySizeBytes { get => throw null; set => throw null; } + public string[] KeyTypes { get => throw null; set => throw null; } + public const string Name = default; + public override System.Threading.Tasks.Task OnFailedAuthentication(ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public virtual System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; + public virtual System.Threading.Tasks.Task PreAuthenticateWithApiKeyAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, ServiceStack.Auth.ApiKey apiKey) => throw null; + public const string Realm = default; + public override void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature) => throw null; + public bool RequireSecureConnection { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + public System.TimeSpan? SessionCacheDuration { get => throw null; set => throw null; } + public override string Type { get => throw null; } + public virtual void ValidateApiKey(ServiceStack.Web.IRequest req, ServiceStack.Auth.ApiKey apiKey) => throw null; + } + + // Generated from `ServiceStack.Auth.AssignRolesService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AssignRolesService : ServiceStack.Service + { + public AssignRolesService() => throw null; + public System.Threading.Tasks.Task Post(ServiceStack.AssignRoles request) => throw null; + } + + // Generated from `ServiceStack.Auth.AuthContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthContext : ServiceStack.IMeta + { + public AuthContext() => throw null; + public System.Collections.Generic.Dictionary AuthInfo { get => throw null; set => throw null; } + public ServiceStack.Auth.AuthProvider AuthProvider { get => throw null; set => throw null; } + public ServiceStack.Auth.AuthProviderSync AuthProviderSync { get => throw null; set => throw null; } + public ServiceStack.Auth.IAuthRepository AuthRepository { get => throw null; set => throw null; } + public ServiceStack.Auth.IAuthRepositoryAsync AuthRepositoryAsync { get => throw null; set => throw null; } + public ServiceStack.Auth.IAuthTokens AuthTokens { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public ServiceStack.IServiceBase Service { get => throw null; set => throw null; } + public ServiceStack.Auth.IAuthSession Session { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.AuthEvents` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthEvents : ServiceStack.Auth.IAuthEvents, ServiceStack.Auth.IAuthEventsAsync + { + public AuthEvents() => throw null; + public virtual void OnAuthenticated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public virtual System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void OnCreated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session) => throw null; + public virtual System.Threading.Tasks.Task OnCreatedAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void OnLogout(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService) => throw null; + public virtual System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService) => throw null; + public virtual System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public virtual System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Auth.AuthEventsUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AuthEventsUtils + { + public static System.Threading.Tasks.Task ExecuteOnRegisteredUserEventsAsync(this ServiceStack.Auth.IAuthEvents authEvents, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase service) => throw null; + } + + // Generated from `ServiceStack.Auth.AuthFilterContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthFilterContext + { + public bool AlreadyAuthenticated { get => throw null; set => throw null; } + public AuthFilterContext() => throw null; + public ServiceStack.Auth.IAuthProvider AuthProvider { get => throw null; set => throw null; } + public ServiceStack.Authenticate AuthRequest { get => throw null; set => throw null; } + public ServiceStack.AuthenticateResponse AuthResponse { get => throw null; set => throw null; } + public ServiceStack.Auth.AuthenticateService AuthService { get => throw null; set => throw null; } + public bool DidAuthenticate { get => throw null; set => throw null; } + public string ReferrerUrl { get => throw null; set => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; } + public ServiceStack.Auth.IAuthSession Session { get => throw null; set => throw null; } + public object UserSource { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.AuthHttpGateway` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthHttpGateway : ServiceStack.Auth.IAuthHttpGateway + { + public AuthHttpGateway() => throw null; + public string CreateMicrosoftPhotoUrl(string accessToken, string savePhotoSize = default(string)) => throw null; + public System.Threading.Tasks.Task CreateMicrosoftPhotoUrlAsync(string accessToken, string savePhotoSize = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string DownloadFacebookUserInfo(string facebookCode, params string[] fields) => throw null; + public System.Threading.Tasks.Task DownloadFacebookUserInfoAsync(string facebookCode, string[] fields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string DownloadGithubUserEmailsInfo(string accessToken) => throw null; + public System.Threading.Tasks.Task DownloadGithubUserEmailsInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string DownloadGithubUserInfo(string accessToken) => throw null; + public System.Threading.Tasks.Task DownloadGithubUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string DownloadGoogleUserInfo(string accessToken) => throw null; + public System.Threading.Tasks.Task DownloadGoogleUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string DownloadMicrosoftUserInfo(string accessToken) => throw null; + public System.Threading.Tasks.Task DownloadMicrosoftUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string DownloadTwitterUserInfo(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string twitterUserId) => throw null; + public System.Threading.Tasks.Task DownloadTwitterUserInfoAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string twitterUserId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string DownloadYammerUserInfo(string yammerUserId) => throw null; + public System.Threading.Tasks.Task DownloadYammerUserInfoAsync(string yammerUserId) => throw null; + public static string FacebookUserUrl; + public static string FacebookVerifyTokenUrl; + public string GetJsonFromGitHub(string url, string accessToken) => throw null; + public System.Threading.Tasks.Task GetJsonFromGitHubAsync(string url, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GetJsonFromOAuthUrl(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string url, string data = default(string)) => throw null; + public static System.Threading.Tasks.Task GetJsonFromOAuthUrlAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string url, string data = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string GithubUserEmailsUrl; + public static string GithubUserUrl; + protected static ServiceStack.Logging.ILog Log; + public static string TwitterUserUrl; + public static string TwitterVerifyCredentialsUrl; + public bool VerifyFacebookAccessToken(string appId, string accessToken) => throw null; + public System.Threading.Tasks.Task VerifyFacebookAccessTokenAsync(string appId, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public bool VerifyTwitterAccessToken(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, out string userId, out string email) => throw null; + public System.Threading.Tasks.Task VerifyTwitterAccessTokenAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string YammerUserUrl; + } + + // Generated from `ServiceStack.Auth.AuthId` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthId + { + public AuthId() => throw null; + public string Email { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.AuthMetadataProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthMetadataProvider : ServiceStack.Auth.IAuthMetadataProvider + { + public virtual void AddMetadata(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public virtual void AddProfileUrl(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public AuthMetadataProvider() => throw null; + public virtual string GetProfileUrl(ServiceStack.Auth.IAuthSession authSession, string defaultUrl = default(string)) => throw null; + public static string GetRedirectUrlIfAny(string url) => throw null; + public string NoProfileImgUrl { get => throw null; set => throw null; } + public const string ProfileUrlKey = default; + } + + // Generated from `ServiceStack.Auth.AuthMetadataProviderExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AuthMetadataProviderExtensions + { + public static void SafeAddMetadata(this ServiceStack.Auth.IAuthMetadataProvider provider, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + } + + // Generated from `ServiceStack.Auth.AuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AuthProvider : ServiceStack.Auth.IAuthProvider, ServiceStack.IAuthPlugin + { + public System.Func AccessTokenUrlFilter; + public System.Func AccountLockedValidator { get => throw null; set => throw null; } + public ServiceStack.Auth.IAuthEvents AuthEvents { get => throw null; } + protected AuthProvider() => throw null; + protected AuthProvider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string authProvider) => throw null; + public string AuthRealm { get => throw null; set => throw null; } + public abstract System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + public string CallbackUrl { get => throw null; set => throw null; } + protected virtual object ConvertToClientError(object failedResult, bool isHtml) => throw null; + protected virtual ServiceStack.Auth.AuthContext CreateAuthContext(ServiceStack.IServiceBase authService = default(ServiceStack.IServiceBase), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens)) => throw null; + public virtual string CreateOrMergeAuthSession(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public System.Func CustomValidationFilter { get => throw null; set => throw null; } + protected virtual System.Threading.Tasks.Task EmailAlreadyExistsAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.HashSet ExcludeAuthInfoItems { get => throw null; set => throw null; } + public System.Func FailedRedirectUrlFilter; + protected string FallbackConfig(string fallback) => throw null; + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + protected virtual string GetAuthRedirectUrl(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session) => throw null; + protected virtual ServiceStack.Auth.IAuthRepository GetAuthRepository(ServiceStack.Web.IRequest req) => throw null; + protected virtual ServiceStack.Auth.IAuthRepositoryAsync GetAuthRepositoryAsync(ServiceStack.Web.IRequest req) => throw null; + protected virtual string GetReferrerUrl(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public ServiceStack.Auth.IUserAuthRepositoryAsync GetUserAuthRepositoryAsync(ServiceStack.Web.IRequest request) => throw null; + public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task IsAccountLockedAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepoAsync, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public abstract bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)); + public string Label { get => throw null; set => throw null; } + public System.Action> LoadUserAuthFilter { get => throw null; set => throw null; } + protected void LoadUserAuthInfo(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + protected virtual System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> LoadUserAuthInfoFilterAsync { get => throw null; set => throw null; } + protected ServiceStack.Logging.ILog Log; + protected static bool LoginMatchesSession(ServiceStack.Auth.IAuthSession session, string userName) => throw null; + public virtual System.Threading.Tasks.Task LogoutAsync(ServiceStack.IServiceBase service, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Func LogoutUrlFilter; + public virtual System.Collections.Generic.Dictionary Meta { get => throw null; } + public ServiceStack.NavItem NavItem { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task OnFailedAuthentication(ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public bool PersistSession { get => throw null; set => throw null; } + public System.Func PreAuthUrlFilter; + public string Provider { get => throw null; set => throw null; } + public string RedirectUrl { get => throw null; set => throw null; } + public virtual void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature) => throw null; + public bool? RestoreSessionFromState { get => throw null; set => throw null; } + public bool SaveExtendedUserInfo { get => throw null; set => throw null; } + public System.TimeSpan? SessionExpiry { get => throw null; set => throw null; } + public int Sort { get => throw null; set => throw null; } + public System.Func SuccessRedirectUrlFilter; + public virtual string Type { get => throw null; } + public static string UrlFilter(ServiceStack.Auth.AuthContext provider, string url) => throw null; + protected virtual System.Threading.Tasks.Task UserNameAlreadyExistsAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual System.Threading.Tasks.Task ValidateAccountAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Auth.AuthProviderExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AuthProviderExtensions + { + public static bool IsAuthorizedSafe(this ServiceStack.Auth.IAuthProvider authProvider, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public static void PopulatePasswordHashes(this ServiceStack.Auth.IUserAuth newUser, string password, ServiceStack.Auth.IUserAuth existingUser = default(ServiceStack.Auth.IUserAuth)) => throw null; + public static bool PopulateRequestDtoIfAuthenticated(this ServiceStack.Web.IRequest req, object requestDto) => throw null; + public static string SanitizeOAuthUrl(this string url) => throw null; + public static void SaveSession(this ServiceStack.Auth.IAuthProvider provider, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, System.TimeSpan? sessionExpiry = default(System.TimeSpan?)) => throw null; + public static System.Threading.Tasks.Task SaveSessionAsync(this ServiceStack.Auth.IAuthProvider provider, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, System.TimeSpan? sessionExpiry = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static bool VerifyDigestAuth(this ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence) => throw null; + public static bool VerifyPassword(this ServiceStack.Auth.IUserAuth userAuth, string providedPassword, out bool needsRehash) => throw null; + } + + // Generated from `ServiceStack.Auth.AuthProviderSync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AuthProviderSync : ServiceStack.Auth.IAuthProvider, ServiceStack.IAuthPlugin + { + public System.Func AccessTokenUrlFilter; + public System.Func AccountLockedValidator { get => throw null; set => throw null; } + public ServiceStack.Auth.IAuthEvents AuthEvents { get => throw null; } + protected AuthProviderSync() => throw null; + protected AuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; + public string AuthRealm { get => throw null; set => throw null; } + public abstract object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request); + public System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string CallbackUrl { get => throw null; set => throw null; } + protected virtual object ConvertToClientError(object failedResult, bool isHtml) => throw null; + public virtual string CreateOrMergeAuthSession(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public System.Func CustomValidationFilter { get => throw null; set => throw null; } + protected virtual bool EmailAlreadyExists(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens)) => throw null; + public System.Collections.Generic.HashSet ExcludeAuthInfoItems { get => throw null; set => throw null; } + public System.Func FailedRedirectUrlFilter; + protected string FallbackConfig(string fallback) => throw null; + protected virtual string GetAuthRedirectUrl(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session) => throw null; + protected virtual ServiceStack.Auth.IAuthRepository GetAuthRepository(ServiceStack.Web.IRequest req) => throw null; + protected virtual string GetReferrerUrl(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public virtual bool IsAccountLocked(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens)) => throw null; + public abstract bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)); + public System.Action> LoadUserAuthFilter { get => throw null; set => throw null; } + protected virtual void LoadUserAuthInfo(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + protected static ServiceStack.Logging.ILog Log; + protected static bool LoginMatchesSession(ServiceStack.Auth.IAuthSession session, string userName) => throw null; + public virtual object Logout(ServiceStack.IServiceBase service, ServiceStack.Authenticate request) => throw null; + public System.Threading.Tasks.Task LogoutAsync(ServiceStack.IServiceBase service, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Func LogoutUrlFilter; + public virtual System.Collections.Generic.Dictionary Meta { get => throw null; } + public ServiceStack.NavItem NavItem { get => throw null; set => throw null; } + public virtual ServiceStack.Web.IHttpResult OnAuthenticated(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public virtual System.Threading.Tasks.Task OnFailedAuthentication(ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public bool PersistSession { get => throw null; set => throw null; } + public System.Func PreAuthUrlFilter; + public string Provider { get => throw null; set => throw null; } + public string RedirectUrl { get => throw null; set => throw null; } + public virtual void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature) => throw null; + public bool? RestoreSessionFromState { get => throw null; set => throw null; } + public bool SaveExtendedUserInfo { get => throw null; set => throw null; } + public System.TimeSpan? SessionExpiry { get => throw null; set => throw null; } + public System.Func SuccessRedirectUrlFilter; + public virtual string Type { get => throw null; } + public static string UrlFilter(ServiceStack.Auth.AuthProviderSync provider, string url) => throw null; + protected virtual bool UserNameAlreadyExists(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens)) => throw null; + protected virtual ServiceStack.Web.IHttpResult ValidateAccount(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; + } + + // Generated from `ServiceStack.Auth.AuthRepositoryUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AuthRepositoryUtils + { + public static string ParseOrderBy(string orderBy, out bool desc) => throw null; + public static System.Collections.Generic.IEnumerable SortAndPage(this System.Collections.Generic.IEnumerable q, string orderBy, int? skip, int? take) where TUserAuth : ServiceStack.Auth.IUserAuth => throw null; + } + + // Generated from `ServiceStack.Auth.AuthResultContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthResultContext + { + public AuthResultContext() => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public ServiceStack.Web.IHttpResult Result { get => throw null; set => throw null; } + public ServiceStack.IServiceBase Service { get => throw null; set => throw null; } + public ServiceStack.Auth.IAuthSession Session { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.AuthTokens` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthTokens : ServiceStack.Auth.IAuthTokens, ServiceStack.Auth.IUserAuthDetailsExtended + { + public string AccessToken { get => throw null; set => throw null; } + public string AccessTokenSecret { get => throw null; set => throw null; } + public string Address { get => throw null; set => throw null; } + public string Address2 { get => throw null; set => throw null; } + public AuthTokens() => throw null; + public System.DateTime? BirthDate { get => throw null; set => throw null; } + public string BirthDateRaw { get => throw null; set => throw null; } + public string City { get => throw null; set => throw null; } + public string Company { get => throw null; set => throw null; } + public string Country { get => throw null; set => throw null; } + public string Culture { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public string Email { get => throw null; set => throw null; } + public string FirstName { get => throw null; set => throw null; } + public string FullName { get => throw null; set => throw null; } + public string Gender { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public string Language { get => throw null; set => throw null; } + public string LastName { get => throw null; set => throw null; } + public string MailAddress { get => throw null; set => throw null; } + public string Nickname { get => throw null; set => throw null; } + public string PhoneNumber { get => throw null; set => throw null; } + public string PostalCode { get => throw null; set => throw null; } + public string Provider { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public System.DateTime? RefreshTokenExpiry { get => throw null; set => throw null; } + public string RequestToken { get => throw null; set => throw null; } + public string RequestTokenSecret { get => throw null; set => throw null; } + public string State { get => throw null; set => throw null; } + public string TimeZone { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.AuthenticateService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthenticateService : ServiceStack.Service + { + public const string ApiKeyProvider = default; + public static System.Func AuthResponseDecorator { get => throw null; set => throw null; } + public ServiceStack.AuthenticateResponse Authenticate(ServiceStack.Authenticate request) => throw null; + public System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public AuthenticateService() => throw null; + public const string BasicProvider = default; + public const string CredentialsAliasProvider = default; + public const string CredentialsProvider = default; + public static System.Func CurrentSessionFactory { get => throw null; set => throw null; } + public static string DefaultOAuthProvider { get => throw null; set => throw null; } + public static string DefaultOAuthRealm { get => throw null; set => throw null; } + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.Authenticate request) => throw null; + public const string DigestProvider = default; + public System.Threading.Tasks.Task GetAsync(ServiceStack.Authenticate request) => throw null; + public static ServiceStack.Auth.IAuthProvider GetAuthProvider(string provider) => throw null; + public static ServiceStack.Auth.IAuthProvider[] GetAuthProviders(string provider = default(string)) => throw null; + public static ServiceStack.Auth.JwtAuthProviderReader GetJwtAuthProvider() => throw null; + public static ServiceStack.Auth.JwtAuthProviderReader GetRequiredJwtAuthProvider() => throw null; + public static ServiceStack.Auth.IUserSessionSource GetUserSessionSource() => throw null; + public static ServiceStack.Auth.IUserSessionSourceAsync GetUserSessionSourceAsync() => throw null; + public static string HtmlRedirect { get => throw null; set => throw null; } + public static string HtmlRedirectAccessDenied { get => throw null; set => throw null; } + public static string HtmlRedirectReturnParam { get => throw null; set => throw null; } + public static bool HtmlRedirectReturnPathOnly { get => throw null; set => throw null; } + public const string IdentityProvider = default; + public static void Init(System.Func sessionFactory, params ServiceStack.Auth.IAuthProvider[] authProviders) => throw null; + public const string JwtProvider = default; + public const string LogoutAction = default; + public void Options(ServiceStack.Authenticate request) => throw null; + public object Post(ServiceStack.Authenticate request) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.Authenticate request) => throw null; + public static ServiceStack.Auth.ValidateFn ValidateFn { get => throw null; set => throw null; } + public const string WindowsAuthProvider = default; + } + + // Generated from `ServiceStack.Auth.BasicAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BasicAuthProvider : ServiceStack.Auth.CredentialsAuthProvider, ServiceStack.Auth.IAuthWithRequest + { + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public BasicAuthProvider() => throw null; + public BasicAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public static string Name; + public virtual System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; + public static string Realm; + public override string Type { get => throw null; } + } + + // Generated from `ServiceStack.Auth.BasicAuthProviderSync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BasicAuthProviderSync : ServiceStack.Auth.CredentialsAuthProviderSync, ServiceStack.Auth.IAuthWithRequestSync + { + public override object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; + public BasicAuthProviderSync() => throw null; + public BasicAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public static string Name; + public virtual void PreAuthenticate(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; + public static string Realm; + public override string Type { get => throw null; } + } + + // Generated from `ServiceStack.Auth.ConvertSessionToTokenService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConvertSessionToTokenService : ServiceStack.Service + { + public object Any(ServiceStack.ConvertSessionToToken request) => throw null; + public ConvertSessionToTokenService() => throw null; + } + + // Generated from `ServiceStack.Auth.CreateApiKeyDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate string CreateApiKeyDelegate(string environment, string keyType, int keySizeBytes); + + // Generated from `ServiceStack.Auth.CredentialsAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CredentialsAuthProvider : ServiceStack.Auth.AuthProvider + { + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, string referrerUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual System.Threading.Tasks.Task AuthenticatePrivateRequestAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, string referrerUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public CredentialsAuthProvider() => throw null; + public CredentialsAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public CredentialsAuthProvider(ServiceStack.Configuration.IAppSettings appSettings, string authProvider) => throw null; + public CredentialsAuthProvider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string authProvider) => throw null; + protected virtual void Init() => throw null; + public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public static string Name; + public static string Realm; + protected virtual System.Threading.Tasks.Task ResetSessionBeforeLoginAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public bool SkipPasswordVerificationForInProcessRequests { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task TryAuthenticateAsync(ServiceStack.IServiceBase authService, string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override string Type { get => throw null; } + } + + // Generated from `ServiceStack.Auth.CredentialsAuthProviderSync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CredentialsAuthProviderSync : ServiceStack.Auth.AuthProviderSync + { + public override object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; + protected object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password) => throw null; + protected object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, string referrerUrl) => throw null; + protected virtual object AuthenticatePrivateRequest(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, string referrerUrl) => throw null; + public CredentialsAuthProviderSync() => throw null; + public CredentialsAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public CredentialsAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; + public ServiceStack.Auth.IUserAuthRepository GetUserAuthRepository(ServiceStack.Web.IRequest request) => throw null; + public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public static string Name; + public override ServiceStack.Web.IHttpResult OnAuthenticated(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public static string Realm; + protected virtual ServiceStack.Auth.IAuthSession ResetSessionBeforeLogin(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName) => throw null; + public bool SkipPasswordVerificationForInProcessRequests { get => throw null; set => throw null; } + public virtual bool TryAuthenticate(ServiceStack.IServiceBase authService, string userName, string password) => throw null; + public override string Type { get => throw null; } + } + + // Generated from `ServiceStack.Auth.DigestAuthFunctions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DigestAuthFunctions + { + public string Base64Decode(string StringToDecode) => throw null; + public string Base64Encode(string StringToEncode) => throw null; + public string ConvertToHexString(System.Collections.Generic.IEnumerable hash) => throw null; + public string CreateAuthResponse(System.Collections.Generic.Dictionary digestHeaders, string Ha1) => throw null; + public string CreateAuthResponse(System.Collections.Generic.Dictionary digestHeaders, string Ha1, string Ha2) => throw null; + public string CreateHa1(System.Collections.Generic.Dictionary digestHeaders, string password) => throw null; + public string CreateHa1(string Username, string Realm, string Password) => throw null; + public string CreateHa2(System.Collections.Generic.Dictionary digestHeaders) => throw null; + public DigestAuthFunctions() => throw null; + public string GetNonce(string IPAddress, string PrivateKey) => throw null; + public string[] GetNonceParts(string nonce) => throw null; + public string PrivateHashEncode(string TimeStamp, string IPAddress, string PrivateKey) => throw null; + public bool StaleNonce(string nonce, int Timeout) => throw null; + public bool ValidateNonce(string nonce, string IPAddress, string PrivateKey) => throw null; + public bool ValidateResponse(System.Collections.Generic.Dictionary digestInfo, string PrivateKey, int NonceTimeOut, string DigestHA1, string sequence) => throw null; + } + + // Generated from `ServiceStack.Auth.DigestAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DigestAuthProvider : ServiceStack.Auth.AuthProvider, ServiceStack.Auth.IAuthWithRequest + { + public ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public DigestAuthProvider() => throw null; + public DigestAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public DigestAuthProvider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string authProvider) => throw null; + public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public static string Name; + public static int NonceTimeOut; + public override System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task OnFailedAuthentication(ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; + public string PrivateKey; + public static string Realm; + public virtual bool TryAuthenticate(ServiceStack.IServiceBase authService, string userName, string password) => throw null; + public override string Type { get => throw null; } + } + + // Generated from `ServiceStack.Auth.DiscordAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DiscordAuthProvider : ServiceStack.Auth.OAuth2Provider + { + protected override System.Threading.Tasks.Task> CreateAuthInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public DiscordAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) : base(default(ServiceStack.Configuration.IAppSettings), default(string), default(string)) => throw null; + protected override System.Threading.Tasks.Task GetAccessTokenJsonAsync(string code, ServiceStack.Auth.AuthContext ctx, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public const string Name = default; + public static string Realm; + } + + // Generated from `ServiceStack.Auth.EmailAddresses` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmailAddresses + { + public string Address { get => throw null; set => throw null; } + public EmailAddresses() => throw null; + public string Type { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.FacebookAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FacebookAuthProvider : ServiceStack.Auth.OAuthProvider + { + public string AppId { get => throw null; set => throw null; } + public string AppSecret { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string[] DefaultFields; + public FacebookAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public string[] Fields { get => throw null; set => throw null; } + protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public override System.Collections.Generic.Dictionary Meta { get => throw null; } + public const string Name = default; + public string[] Permissions { get => throw null; set => throw null; } + public static string PreAuthUrl; + public static string Realm; + public bool RetrieveUserPicture { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.FullRegistrationValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FullRegistrationValidator : ServiceStack.Auth.RegistrationValidator + { + public FullRegistrationValidator() => throw null; + } + + // Generated from `ServiceStack.Auth.GetAccessTokenService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetAccessTokenService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.GetAccessToken request) => throw null; + public GetAccessTokenService() => throw null; + } + + // Generated from `ServiceStack.Auth.GetApiKeysService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetApiKeysService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.GetApiKeys request) => throw null; + public GetApiKeysService() => throw null; + } + + // Generated from `ServiceStack.Auth.GithubAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GithubAuthProvider : ServiceStack.Auth.OAuthProvider + { + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string ClientId { get => throw null; set => throw null; } + public string ClientSecret { get => throw null; set => throw null; } + public const string DefaultPreAuthUrl = default; + public const string DefaultVerifyAccessTokenUrl = default; + public GithubAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public override System.Collections.Generic.Dictionary Meta { get => throw null; } + public const string Name = default; + public string PreAuthUrl { get => throw null; set => throw null; } + public static string Realm; + public string[] Scopes { get => throw null; set => throw null; } + public string VerifyAccessTokenUrl { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.GoogleAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GoogleAuthProvider : ServiceStack.Auth.OAuth2Provider + { + protected override System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Collections.Generic.Dictionary authInfo = default(System.Collections.Generic.Dictionary), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected override System.Threading.Tasks.Task> CreateAuthInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public const string DefaultAccessTokenUrl = default; + public const string DefaultAuthorizeUrl = default; + public const string DefaultUserProfileUrl = default; + public const string DefaultVerifyTokenUrl = default; + public GoogleAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) : base(default(ServiceStack.Configuration.IAppSettings), default(string), default(string)) => throw null; + public const string Name = default; + public virtual System.Threading.Tasks.Task OnVerifyAccessTokenAsync(string accessToken, ServiceStack.Auth.AuthContext ctx) => throw null; + public static string Realm; + } + + // Generated from `ServiceStack.Auth.HashExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HashExtensions + { + public static string HexHash(System.Security.Cryptography.HashAlgorithm hash, System.Byte[] bytes) => throw null; + public static string HexHash(System.Security.Cryptography.HashAlgorithm hash, string s) => throw null; + public static string ToMd5Hash(this string value) => throw null; + public static string ToSha1Hash(this string value) => throw null; + public static System.Byte[] ToSha1HashBytes(this System.Byte[] bytes) => throw null; + public static string ToSha256Hash(this string value) => throw null; + public static System.Byte[] ToSha256HashBytes(this System.Byte[] bytes) => throw null; + public static string ToSha512Hash(this string value) => throw null; + public static System.Byte[] ToSha512HashBytes(this System.Byte[] bytes) => throw null; + } + + // Generated from `ServiceStack.Auth.IAuthEvents` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthEvents + { + void OnAuthenticated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); + void OnCreated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session); + void OnLogout(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService); + void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService); + ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); + } + + // Generated from `ServiceStack.Auth.IAuthEventsAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthEventsAsync + { + System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IAuthHttpGateway` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthHttpGateway + { + string CreateMicrosoftPhotoUrl(string accessToken, string savePhotoSize = default(string)); + System.Threading.Tasks.Task CreateMicrosoftPhotoUrlAsync(string accessToken, string savePhotoSize = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string DownloadFacebookUserInfo(string facebookCode, params string[] fields); + System.Threading.Tasks.Task DownloadFacebookUserInfoAsync(string facebookCode, string[] fields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string DownloadGithubUserEmailsInfo(string accessToken); + System.Threading.Tasks.Task DownloadGithubUserEmailsInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string DownloadGithubUserInfo(string accessToken); + System.Threading.Tasks.Task DownloadGithubUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string DownloadGoogleUserInfo(string accessToken); + System.Threading.Tasks.Task DownloadGoogleUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string DownloadMicrosoftUserInfo(string accessToken); + System.Threading.Tasks.Task DownloadMicrosoftUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string DownloadTwitterUserInfo(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string twitterUserId); + System.Threading.Tasks.Task DownloadTwitterUserInfoAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string twitterUserId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string DownloadYammerUserInfo(string yammerUserId); + System.Threading.Tasks.Task DownloadYammerUserInfoAsync(string yammerUserId); + bool VerifyFacebookAccessToken(string appId, string accessToken); + System.Threading.Tasks.Task VerifyFacebookAccessTokenAsync(string appId, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + bool VerifyTwitterAccessToken(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, out string userId, out string email); + System.Threading.Tasks.Task VerifyTwitterAccessTokenAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IAuthMetadataProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthMetadataProvider + { + void AddMetadata(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); + string GetProfileUrl(ServiceStack.Auth.IAuthSession authSession, string defaultUrl = default(string)); + } + + // Generated from `ServiceStack.Auth.IAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthProvider + { + string AuthRealm { get; set; } + System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string CallbackUrl { get; set; } + bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)); + System.Threading.Tasks.Task LogoutAsync(ServiceStack.IServiceBase service, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Collections.Generic.Dictionary Meta { get; } + string Provider { get; set; } + string Type { get; } + } + + // Generated from `ServiceStack.Auth.IAuthRepository` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthRepository + { + ServiceStack.Auth.IUserAuthDetails CreateOrMergeAuthSession(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens); + ServiceStack.Auth.IUserAuth GetUserAuth(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens); + ServiceStack.Auth.IUserAuth GetUserAuthByUserName(string userNameOrEmail); + System.Collections.Generic.List GetUserAuthDetails(string userAuthId); + void LoadUserAuth(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens); + void SaveUserAuth(ServiceStack.Auth.IAuthSession authSession); + void SaveUserAuth(ServiceStack.Auth.IUserAuth userAuth); + bool TryAuthenticate(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, out ServiceStack.Auth.IUserAuth userAuth); + bool TryAuthenticate(string userName, string password, out ServiceStack.Auth.IUserAuth userAuth); + } + + // Generated from `ServiceStack.Auth.IAuthRepositoryAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthRepositoryAsync + { + System.Threading.Tasks.Task CreateOrMergeAuthSessionAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetUserAuthByUserNameAsync(string userNameOrEmail, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetUserAuthDetailsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task LoadUserAuthAsync(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task TryAuthenticateAsync(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task TryAuthenticateAsync(string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IAuthResponseFilter` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthResponseFilter + { + System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Auth.AuthFilterContext authContext); + System.Threading.Tasks.Task ResultFilterAsync(ServiceStack.Auth.AuthResultContext authContext, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IAuthSession` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthSession + { + string AuthProvider { get; set; } + System.DateTime CreatedAt { get; set; } + string DisplayName { get; set; } + string Email { get; set; } + string FirstName { get; set; } + bool FromToken { get; set; } + System.Collections.Generic.ICollection GetPermissions(ServiceStack.Auth.IAuthRepository authRepo); + System.Threading.Tasks.Task> GetPermissionsAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Collections.Generic.ICollection GetRoles(ServiceStack.Auth.IAuthRepository authRepo); + System.Threading.Tasks.Task> GetRolesAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + bool HasPermission(string permission, ServiceStack.Auth.IAuthRepository authRepo); + System.Threading.Tasks.Task HasPermissionAsync(string permission, ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + bool HasRole(string role, ServiceStack.Auth.IAuthRepository authRepo); + System.Threading.Tasks.Task HasRoleAsync(string role, ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string Id { get; set; } + bool IsAuthenticated { get; set; } + bool IsAuthorized(string provider); + System.DateTime LastModified { get; set; } + string LastName { get; set; } + void OnAuthenticated(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); + void OnCreated(ServiceStack.Web.IRequest httpReq); + void OnLogout(ServiceStack.IServiceBase authService); + void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase service); + System.Collections.Generic.List Permissions { get; set; } + string ProfileUrl { get; set; } + System.Collections.Generic.List ProviderOAuthAccess { get; set; } + string ReferrerUrl { get; set; } + System.Collections.Generic.List Roles { get; set; } + string Sequence { get; set; } + string UserAuthId { get; set; } + string UserAuthName { get; set; } + string UserName { get; set; } + } + + // Generated from `ServiceStack.Auth.IAuthSessionExtended` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthSessionExtended : ServiceStack.Auth.IAuthSession + { + string Address { get; set; } + string Address2 { get; set; } + System.Collections.Generic.List Audiences { get; set; } + System.DateTime? BirthDate { get; set; } + string BirthDateRaw { get; set; } + string City { get; set; } + string Company { get; set; } + string Country { get; set; } + string Dns { get; set; } + bool? EmailConfirmed { get; set; } + string Gender { get; set; } + System.Threading.Tasks.Task HasAllPermissionsAsync(System.Collections.Generic.ICollection requiredPermissions, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task HasAllRolesAsync(System.Collections.Generic.ICollection requiredRoles, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task HasAnyPermissionsAsync(System.Collections.Generic.ICollection permissions, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task HasAnyRolesAsync(System.Collections.Generic.ICollection roles, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string Hash { get; set; } + string HomePhone { get; set; } + string MobilePhone { get; set; } + System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void OnLoad(ServiceStack.Web.IRequest httpReq); + System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string PhoneNumber { get; set; } + bool? PhoneNumberConfirmed { get; set; } + string PostalCode { get; set; } + string PrimaryEmail { get; set; } + string Rsa { get; set; } + System.Collections.Generic.List Scopes { get; set; } + string SecurityStamp { get; set; } + string Sid { get; set; } + string State { get; set; } + bool? TwoFactorEnabled { get; set; } + string Type { get; set; } + ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); + System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + string Webpage { get; set; } + } + + // Generated from `ServiceStack.Auth.IAuthWithRequest` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthWithRequest + { + System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res); + } + + // Generated from `ServiceStack.Auth.IAuthWithRequestSync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IAuthWithRequestSync + { + void PreAuthenticate(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res); + } + + // Generated from `ServiceStack.Auth.IClearable` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IClearable + { + void Clear(); + } + + // Generated from `ServiceStack.Auth.IClearableAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IClearableAsync + { + System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.ICustomUserAuth` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICustomUserAuth + { + ServiceStack.Auth.IUserAuth CreateUserAuth(); + ServiceStack.Auth.IUserAuthDetails CreateUserAuthDetails(); + } + + // Generated from `ServiceStack.Auth.IHashProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHashProvider + { + void GetHashAndSaltString(string Data, out string Hash, out string Salt); + bool VerifyHashString(string Data, string Hash, string Salt); + } + + // Generated from `ServiceStack.Auth.IManageApiKeys` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IManageApiKeys + { + bool ApiKeyExists(string apiKey); + ServiceStack.Auth.ApiKey GetApiKey(string apiKey); + System.Collections.Generic.List GetUserApiKeys(string userId); + void InitApiKeySchema(); + void StoreAll(System.Collections.Generic.IEnumerable apiKeys); + } + + // Generated from `ServiceStack.Auth.IManageApiKeysAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IManageApiKeysAsync + { + System.Threading.Tasks.Task ApiKeyExistsAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetApiKeyAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetUserApiKeysAsync(string userId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + void InitApiKeySchema(); + System.Threading.Tasks.Task StoreAllAsync(System.Collections.Generic.IEnumerable apiKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IManageRoles` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IManageRoles + { + void AssignRoles(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)); + System.Collections.Generic.ICollection GetPermissions(string userAuthId); + System.Collections.Generic.ICollection GetRoles(string userAuthId); + void GetRolesAndPermissions(string userAuthId, out System.Collections.Generic.ICollection roles, out System.Collections.Generic.ICollection permissions); + bool HasPermission(string userAuthId, string permission); + bool HasRole(string userAuthId, string role); + void UnAssignRoles(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)); + } + + // Generated from `ServiceStack.Auth.IManageRolesAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IManageRolesAsync + { + System.Threading.Tasks.Task AssignRolesAsync(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetPermissionsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task, System.Collections.Generic.ICollection>> GetRolesAndPermissionsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetRolesAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task HasPermissionAsync(string userAuthId, string permission, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task HasRoleAsync(string userAuthId, string role, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UnAssignRolesAsync(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IMemoryAuthRepository` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMemoryAuthRepository : ServiceStack.Auth.IAuthRepository, ServiceStack.Auth.IClearable, ServiceStack.Auth.ICustomUserAuth, ServiceStack.Auth.IManageApiKeys, ServiceStack.Auth.IUserAuthRepository + { + System.Collections.Generic.Dictionary> Hashes { get; } + System.Collections.Generic.Dictionary> Sets { get; } + } + + // Generated from `ServiceStack.Auth.IOAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IOAuthProvider : ServiceStack.Auth.IAuthProvider + { + string AccessTokenUrl { get; set; } + ServiceStack.Auth.IAuthHttpGateway AuthHttpGateway { get; set; } + string AuthorizeUrl { get; set; } + string ConsumerKey { get; set; } + string ConsumerSecret { get; set; } + string RequestTokenUrl { get; set; } + } + + // Generated from `ServiceStack.Auth.IQueryUserAuth` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryUserAuth + { + System.Collections.Generic.List GetUserAuths(string orderBy = default(string), int? skip = default(int?), int? take = default(int?)); + System.Collections.Generic.List SearchUserAuths(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?)); + } + + // Generated from `ServiceStack.Auth.IQueryUserAuthAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IQueryUserAuthAsync + { + System.Threading.Tasks.Task> GetUserAuthsAsync(string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> SearchUserAuthsAsync(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IRedisClientFacade` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisClientFacade : System.IDisposable + { + void AddItemToSet(string setId, string item); + ServiceStack.Auth.ITypedRedisClientFacade As(); + void DeleteById(string id); + System.Collections.Generic.HashSet GetAllItemsFromSet(string setId); + string GetValueFromHash(string hashId, string key); + void RemoveEntryFromHash(string hashId, string key); + void SetEntryInHash(string hashId, string key, string value); + void Store(T item); + } + + // Generated from `ServiceStack.Auth.IRedisClientFacadeAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisClientFacadeAsync : System.IAsyncDisposable + { + System.Threading.Tasks.Task AddItemToSetAsync(string setId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + ServiceStack.Auth.ITypedRedisClientFacadeAsync AsAsync(); + System.Threading.Tasks.Task DeleteByIdAsync(string id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetAllItemsFromSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetValueFromHashAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task RemoveEntryFromHashAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SetEntryInHashAsync(string hashId, string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task StoreAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IRedisClientManagerFacade` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRedisClientManagerFacade : ServiceStack.Auth.IClearable, ServiceStack.Auth.IClearableAsync + { + ServiceStack.Auth.IRedisClientFacade GetClient(); + System.Threading.Tasks.Task GetClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.ITypedRedisClientFacade<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypedRedisClientFacade + { + void DeleteById(string id); + void DeleteByIds(System.Collections.IEnumerable ids); + System.Collections.Generic.List GetAll(int? skip = default(int?), int? take = default(int?)); + T GetById(object id); + System.Collections.Generic.List GetByIds(System.Collections.IEnumerable ids); + int GetNextSequence(); + } + + // Generated from `ServiceStack.Auth.ITypedRedisClientFacadeAsync<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypedRedisClientFacadeAsync + { + System.Threading.Tasks.Task DeleteByIdAsync(string id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetAllAsync(int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GetByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetNextSequenceAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IUserAuthRepository` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUserAuthRepository : ServiceStack.Auth.IAuthRepository + { + ServiceStack.Auth.IUserAuth CreateUserAuth(ServiceStack.Auth.IUserAuth newUser, string password); + void DeleteUserAuth(string userAuthId); + ServiceStack.Auth.IUserAuth GetUserAuth(string userAuthId); + ServiceStack.Auth.IUserAuth UpdateUserAuth(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser); + ServiceStack.Auth.IUserAuth UpdateUserAuth(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password); + } + + // Generated from `ServiceStack.Auth.IUserAuthRepositoryAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUserAuthRepositoryAsync : ServiceStack.Auth.IAuthRepositoryAsync + { + System.Threading.Tasks.Task CreateUserAuthAsync(ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task DeleteUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GetUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IUserSessionSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUserSessionSource + { + ServiceStack.Auth.IAuthSession GetUserSession(string userAuthId); + } + + // Generated from `ServiceStack.Auth.IUserSessionSourceAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IUserSessionSourceAsync + { + System.Threading.Tasks.Task GetUserSessionAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.Auth.IWebSudoAuthSession` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IWebSudoAuthSession : ServiceStack.Auth.IAuthSession + { + System.DateTime AuthenticatedAt { get; set; } + int AuthenticatedCount { get; set; } + System.DateTime? AuthenticatedWebSudoUntil { get; set; } + } + + // Generated from `ServiceStack.Auth.InMemoryAuthRepository` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryAuthRepository : ServiceStack.Auth.InMemoryAuthRepository + { + public InMemoryAuthRepository() => throw null; + } + + // Generated from `ServiceStack.Auth.InMemoryAuthRepository<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryAuthRepository : ServiceStack.Auth.RedisAuthRepository, ServiceStack.Auth.IAuthRepository, ServiceStack.Auth.IClearable, ServiceStack.Auth.ICustomUserAuth, ServiceStack.Auth.IManageApiKeys, ServiceStack.Auth.IMemoryAuthRepository, ServiceStack.Auth.IUserAuthRepository where TUserAuth : class, ServiceStack.Auth.IUserAuth where TUserAuthDetails : class, ServiceStack.Auth.IUserAuthDetails + { + public System.Collections.Generic.Dictionary> Hashes { get => throw null; set => throw null; } + public InMemoryAuthRepository() : base(default(ServiceStack.Auth.IRedisClientManagerFacade)) => throw null; + public static ServiceStack.Auth.InMemoryAuthRepository Instance; + public System.Collections.Generic.Dictionary> Sets { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.JwtAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JwtAuthProvider : ServiceStack.Auth.JwtAuthProviderReader, ServiceStack.Auth.IAuthResponseFilter + { + public override System.Threading.Tasks.Task CreateAccessTokenFromRefreshToken(string refreshToken, ServiceStack.Web.IRequest req) => throw null; + public static string CreateEncryptedJweToken(ServiceStack.Text.JsonObject jwtPayload, System.Security.Cryptography.RSAParameters publicKey) => throw null; + public static string CreateJwt(ServiceStack.Text.JsonObject jwtHeader, ServiceStack.Text.JsonObject jwtPayload, System.Func signData) => throw null; + public string CreateJwtBearerToken(ServiceStack.Auth.IAuthSession session, System.Collections.Generic.IEnumerable roles = default(System.Collections.Generic.IEnumerable), System.Collections.Generic.IEnumerable perms = default(System.Collections.Generic.IEnumerable)) => throw null; + public string CreateJwtBearerToken(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.IEnumerable roles = default(System.Collections.Generic.IEnumerable), System.Collections.Generic.IEnumerable perms = default(System.Collections.Generic.IEnumerable)) => throw null; + public static ServiceStack.Text.JsonObject CreateJwtHeader(string algorithm, string keyId = default(string)) => throw null; + public static ServiceStack.Text.JsonObject CreateJwtPayload(ServiceStack.Auth.IAuthSession session, string issuer, System.TimeSpan expireIn, System.Collections.Generic.IEnumerable audiences = default(System.Collections.Generic.IEnumerable), System.Collections.Generic.IEnumerable roles = default(System.Collections.Generic.IEnumerable), System.Collections.Generic.IEnumerable permissions = default(System.Collections.Generic.IEnumerable)) => throw null; + public string CreateJwtRefreshToken(ServiceStack.Web.IRequest req, string userId, System.TimeSpan expireRefreshTokenIn) => throw null; + public string CreateJwtRefreshToken(string userId, System.TimeSpan expireRefreshTokenIn) => throw null; + public static string Dump(string jwt) => throw null; + protected virtual bool EnableRefreshToken() => throw null; + public System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Auth.AuthFilterContext authContext) => throw null; + public System.Func GetHashAlgorithm() => throw null; + public System.Func GetHashAlgorithm(ServiceStack.Web.IRequest req) => throw null; + public override void Init(ServiceStack.Configuration.IAppSettings appSettings = default(ServiceStack.Configuration.IAppSettings)) => throw null; + public JwtAuthProvider() => throw null; + public JwtAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public static int MaxProfileUrlSize { get => throw null; set => throw null; } + public static void PrintDump(string jwt) => throw null; + public System.Threading.Tasks.Task ResultFilterAsync(ServiceStack.Auth.AuthResultContext authContext, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public bool SetBearerTokenOnAuthenticateResponse { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.JwtAuthProviderReader` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JwtAuthProviderReader : ServiceStack.Auth.AuthProvider, ServiceStack.Auth.IAuthWithRequest, ServiceStack.IAuthPlugin + { + public bool AllowInFormData { get => throw null; set => throw null; } + public bool AllowInQueryString { get => throw null; set => throw null; } + public void AssertJwtPayloadIsValid(ServiceStack.Text.JsonObject jwtPayload) => throw null; + public void AssertRefreshJwtPayloadIsValid(ServiceStack.Text.JsonObject jwtPayload) => throw null; + public string Audience { get => throw null; set => throw null; } + public System.Collections.Generic.List Audiences { get => throw null; set => throw null; } + public System.Byte[] AuthKey { get => throw null; set => throw null; } + public string AuthKeyBase64 { set => throw null; } + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual bool AuthenticateBearerToken(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string bearerToken) => throw null; + protected virtual System.Threading.Tasks.Task AuthenticateRefreshToken(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string refreshToken) => throw null; + public object AuthenticateResponseDecorator(ServiceStack.Auth.AuthFilterContext ctx) => throw null; + public virtual ServiceStack.Auth.IAuthSession ConvertJwtToSession(ServiceStack.Web.IRequest req, string jwt) => throw null; + public virtual System.Threading.Tasks.Task CreateAccessTokenFromRefreshToken(string refreshToken, ServiceStack.Web.IRequest req) => throw null; + public System.Action CreateHeaderFilter { get => throw null; set => throw null; } + public System.Action CreatePayloadFilter { get => throw null; set => throw null; } + public static ServiceStack.Auth.IAuthSession CreateSessionFromJwt(ServiceStack.Web.IRequest req) => throw null; + public virtual ServiceStack.Auth.IAuthSession CreateSessionFromPayload(ServiceStack.Web.IRequest req, ServiceStack.Text.JsonObject jwtPayload) => throw null; + public static System.Int64 DefaultResolveUnixTime(System.DateTime dateTime) => throw null; + public bool EncryptPayload { get => throw null; set => throw null; } + public System.TimeSpan ExpireRefreshTokensIn { get => throw null; set => throw null; } + public System.TimeSpan ExpireTokensIn { get => throw null; set => throw null; } + public int ExpireTokensInDays { set => throw null; } + public static System.Collections.Generic.Dictionary ExtractHeader(string jwt) => throw null; + public static System.Collections.Generic.Dictionary ExtractPayload(string jwt) => throw null; + public System.Collections.Generic.List FallbackAuthKeys { get => throw null; set => throw null; } + public System.Collections.Generic.List FallbackPrivateKeys { get => throw null; set => throw null; } + public System.Collections.Generic.List FallbackPublicKeys { get => throw null; set => throw null; } + public System.Byte[] GetAuthKey(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public System.Collections.Generic.List GetFallbackAuthKeys(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public System.Collections.Generic.List GetFallbackPrivateKeys(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public System.Collections.Generic.List GetFallbackPublicKeys(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public virtual string GetInvalidJwtPayloadError(ServiceStack.Text.JsonObject jwtPayload) => throw null; + public virtual string GetInvalidRefreshJwtPayloadError(ServiceStack.Text.JsonObject jwtPayload) => throw null; + public virtual string GetKeyId(ServiceStack.Web.IRequest req) => throw null; + public System.Security.Cryptography.RSAParameters? GetPrivateKey(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public System.Security.Cryptography.RSAParameters? GetPublicKey(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; + public static System.Int64? GetUnixTime(System.Collections.Generic.Dictionary jwtPayload, string key) => throw null; + public virtual ServiceStack.Text.JsonObject GetValidJwtPayload(ServiceStack.Web.IRequest req) => throw null; + public virtual ServiceStack.Text.JsonObject GetValidJwtPayload(ServiceStack.Web.IRequest req, string jwt) => throw null; + public ServiceStack.Text.JsonObject GetValidJwtPayload(string jwt) => throw null; + public virtual ServiceStack.Text.JsonObject GetVerifiedJwePayload(ServiceStack.Web.IRequest req, string[] parts) => throw null; + public virtual ServiceStack.Text.JsonObject GetVerifiedJwePayload(string jwt) => throw null; + public virtual ServiceStack.Text.JsonObject GetVerifiedJwtPayload(ServiceStack.Web.IRequest req, string[] parts) => throw null; + public virtual ServiceStack.Text.JsonObject GetVerifiedJwtPayload(string jwt) => throw null; + public virtual bool HasBeenInvalidated(ServiceStack.Text.JsonObject jwtPayload, System.Int64 unixTime) => throw null; + public virtual bool HasExpired(ServiceStack.Text.JsonObject jwtPayload) => throw null; + public virtual bool HasInvalidAudience(ServiceStack.Text.JsonObject jwtPayload, out string audience) => throw null; + public virtual bool HasInvalidNotBefore(ServiceStack.Text.JsonObject jwtPayload) => throw null; + public virtual bool HasInvalidatedId(ServiceStack.Text.JsonObject jwtPayload) => throw null; + public string HashAlgorithm { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary> HmacAlgorithms; + public static System.Collections.Generic.HashSet IgnoreForOperationTypes; + public bool IncludeJwtInConvertSessionToTokenResponse { get => throw null; set => throw null; } + public virtual void Init(ServiceStack.Configuration.IAppSettings appSettings = default(ServiceStack.Configuration.IAppSettings)) => throw null; + public System.Collections.Generic.HashSet InvalidateJwtIds { get => throw null; set => throw null; } + public System.DateTime? InvalidateRefreshTokensIssuedBefore { get => throw null; set => throw null; } + public System.DateTime? InvalidateTokensIssuedBefore { get => throw null; set => throw null; } + public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public bool IsJwtValid(ServiceStack.Web.IRequest req) => throw null; + public bool IsJwtValid(ServiceStack.Web.IRequest req, string jwt) => throw null; + public bool IsJwtValid(string jwt) => throw null; + public string Issuer { get => throw null; set => throw null; } + public JwtAuthProviderReader() => throw null; + public JwtAuthProviderReader(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public string KeyId { get => throw null; set => throw null; } + public string LastJwtId() => throw null; + public string LastRefreshJwtId() => throw null; + public const string Name = default; + public string NextJwtId() => throw null; + public string NextRefreshJwtId() => throw null; + public System.Action PopulateSessionFilter { get => throw null; set => throw null; } + public System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; + public System.Func, string> PreValidateJwtPayloadFilter { get => throw null; set => throw null; } + public System.Security.Cryptography.RSAParameters? PrivateKey { get => throw null; set => throw null; } + public string PrivateKeyXml { get => throw null; set => throw null; } + public System.Security.Cryptography.RSAParameters? PublicKey { get => throw null; set => throw null; } + public string PublicKeyXml { get => throw null; set => throw null; } + public const string Realm = default; + public override void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature) => throw null; + public object RegisterResponseDecorator(ServiceStack.Auth.RegisterFilterContext ctx) => throw null; + public bool RemoveInvalidTokenCookie { get => throw null; set => throw null; } + public bool RequireHashAlgorithm { get => throw null; set => throw null; } + public bool RequireSecureConnection { get => throw null; set => throw null; } + public bool RequiresAudience { get => throw null; set => throw null; } + public System.Func ResolveJwtId { get => throw null; set => throw null; } + public System.Func ResolveRefreshJwtId { get => throw null; set => throw null; } + public System.Func ResolveUnixTime { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary> RsaSignAlgorithms; + public static System.Collections.Generic.Dictionary> RsaVerifyAlgorithms; + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + public override string Type { get => throw null; } + public static ServiceStack.RsaKeyLengths UseRsaKeyLength; + public bool UseTokenCookie { get => throw null; set => throw null; } + public System.Func ValidateRefreshToken { get => throw null; set => throw null; } + public System.Func ValidateToken { get => throw null; set => throw null; } + public virtual bool VerifyJwePayload(ServiceStack.Web.IRequest req, string[] parts, out System.Byte[] iv, out System.Byte[] cipherText, out System.Byte[] cryptKey) => throw null; + public virtual bool VerifyPayload(ServiceStack.Web.IRequest req, string algorithm, System.Byte[] bytesToSign, System.Byte[] sentSignatureBytes) => throw null; + } + + // Generated from `ServiceStack.Auth.JwtUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JwtUtils + { + public static void NotifyJwtCookiesUsed(ServiceStack.Web.IHttpResult httpResult) => throw null; + public static ServiceStack.HttpResult ToTokenCookiesHttpResult(this ServiceStack.IHasBearerToken responseDto, ServiceStack.Web.IRequest req, string tokenCookie, System.DateTime expireTokenIn, string refreshTokenCookie, System.DateTime expireRefreshTokenIn, string referrerUrl) => throw null; + } + + // Generated from `ServiceStack.Auth.LinkedInAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LinkedInAuthProvider : ServiceStack.Auth.OAuth2Provider + { + protected override System.Threading.Tasks.Task> CreateAuthInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public const string DefaultAccessTokenUrl = default; + public const string DefaultAuthorizeUrl = default; + public const string DefaultUserProfileUrl = default; + public LinkedInAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) : base(default(ServiceStack.Configuration.IAppSettings), default(string), default(string)) => throw null; + public const string Name = default; + public const string Realm = default; + } + + // Generated from `ServiceStack.Auth.MicrosoftGraphAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MicrosoftGraphAuthProvider : ServiceStack.Auth.OAuth2Provider + { + public string AppId { get => throw null; set => throw null; } + public string AppSecret { get => throw null; set => throw null; } + protected override System.Threading.Tasks.Task> CreateAuthInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Func DefaultPhotoUrl; + public const string DefaultUserProfileUrl = default; + protected override System.Threading.Tasks.Task GetAccessTokenJsonAsync(string code, ServiceStack.Auth.AuthContext ctx, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public MicrosoftGraphAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) : base(default(ServiceStack.Configuration.IAppSettings), default(string), default(string)) => throw null; + public const string Name = default; + public static System.Func PhotoUrl { get => throw null; set => throw null; } + public const string Realm = default; + public bool SavePhoto { get => throw null; set => throw null; } + public string SavePhotoSize { get => throw null; set => throw null; } + public string Tenant { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.MultiAuthEvents` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MultiAuthEvents : ServiceStack.Auth.IAuthEvents + { + public System.Collections.Generic.List ChildEvents { get => throw null; set => throw null; } + public System.Collections.Generic.List ChildEventsAsync { get => throw null; set => throw null; } + public MultiAuthEvents(System.Collections.Generic.IEnumerable authEvents = default(System.Collections.Generic.IEnumerable)) => throw null; + public void OnAuthenticated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void OnCreated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session) => throw null; + public void OnLogout(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService) => throw null; + public System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService) => throw null; + public System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Auth.NetCoreIdentityAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreIdentityAuthProvider : ServiceStack.Auth.AuthProvider, ServiceStack.Auth.IAuthWithRequest, ServiceStack.IAuthPlugin + { + public System.Collections.Generic.List AdminRoles { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string AuthenticationType { get => throw null; set => throw null; } + public bool AutoSignInSessions { get => throw null; set => throw null; } + public System.Func AutoSignInSessionsMatching { get => throw null; set => throw null; } + public System.Func, ServiceStack.Auth.IAuthSession, ServiceStack.Web.IRequest, System.Security.Claims.ClaimsPrincipal> CreateClaimsPrincipal { get => throw null; set => throw null; } + public bool DefaultAutoSignInSessionsMatching(ServiceStack.Web.IRequest req) => throw null; + public string IdClaimType { get => throw null; set => throw null; } + public System.Collections.Generic.List IdClaimTypes { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet IgnoreAutoSignInForExtensions { get => throw null; set => throw null; } + public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public string Issuer { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary MapClaimsToSession { get => throw null; set => throw null; } + public const string Name = default; + public NetCoreIdentityAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public bool OverrideHtmlRedirect { get => throw null; set => throw null; } + public string PermissionClaimType { get => throw null; set => throw null; } + public System.Action PopulateSessionFilter { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; + public const string Realm = default; + public override void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature authFeature) => throw null; + public System.Collections.Generic.List RestrictToClientIds { get => throw null; set => throw null; } + public string RoleClaimType { get => throw null; set => throw null; } + public System.Threading.Tasks.Task SignInAuthenticatedSessions(ServiceStack.Host.NetCore.NetCoreRequest req) => throw null; + public override string Type { get => throw null; } + } + + // Generated from `ServiceStack.Auth.OAuth2Provider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class OAuth2Provider : ServiceStack.Auth.OAuthProvider + { + protected virtual void AssertAccessTokenUrl() => throw null; + protected virtual void AssertAuthorizeUrl() => throw null; + protected override void AssertValidState() => throw null; + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Collections.Generic.Dictionary authInfo = default(System.Collections.Generic.Dictionary), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected abstract System.Threading.Tasks.Task> CreateAuthInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + protected virtual System.Threading.Tasks.Task GetAccessTokenJsonAsync(string code, ServiceStack.Auth.AuthContext ctx, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual string GetUserAuthName(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public OAuth2Provider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; + public OAuth2Provider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider, string consumerKeyName, string consumerSecretName) => throw null; + public System.Func ResolveUnknownDisplayName { get => throw null; set => throw null; } + public string ResponseMode { get => throw null; set => throw null; } + public string[] Scopes { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.OAuth2ProviderSync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class OAuth2ProviderSync : ServiceStack.Auth.OAuthProviderSync + { + protected virtual void AssertAccessTokenUrl() => throw null; + protected virtual void AssertAuthorizeUrl() => throw null; + protected override void AssertValidState() => throw null; + public override object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; + protected virtual object AuthenticateWithAccessToken(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Collections.Generic.Dictionary authInfo = default(System.Collections.Generic.Dictionary)) => throw null; + protected abstract System.Collections.Generic.Dictionary CreateAuthInfo(string accessToken); + protected virtual string GetAccessTokenJson(string code) => throw null; + protected virtual string GetUserAuthName(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + protected override void LoadUserAuthInfo(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public OAuth2ProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; + public OAuth2ProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider, string consumerKeyName, string consumerSecretName) => throw null; + public string ResponseMode { get => throw null; set => throw null; } + public string[] Scopes { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.OAuthAuthorizer` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OAuthAuthorizer + { + public string AccessToken; + public string AccessTokenSecret; + public bool AcquireAccessToken(string requestTokenSecret, string authorizationToken, string authorizationVerifier) => throw null; + public bool AcquireRequestToken() => throw null; + public System.Collections.Generic.Dictionary AuthInfo; + public string AuthorizationToken; + public string AuthorizationVerifier; + public static string AuthorizeRequest(ServiceStack.Auth.OAuthProvider provider, string oauthToken, string oauthTokenSecret, string method, System.Uri uri, string data) => throw null; + public static string AuthorizeRequest(string consumerKey, string consumerSecret, string oauthToken, string oauthTokenSecret, string method, System.Uri uri, string data) => throw null; + public static void AuthorizeTwitPic(ServiceStack.Auth.OAuthProvider provider, System.Net.HttpWebRequest wc, string oauthToken, string oauthTokenSecret) => throw null; + public OAuthAuthorizer(ServiceStack.Auth.IOAuthProvider provider) => throw null; + public static bool OrderHeadersLexically; + public string RequestToken; + public string RequestTokenSecret; + public string xAuthPassword; + public string xAuthUsername; + } + + // Generated from `ServiceStack.Auth.OAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class OAuthProvider : ServiceStack.Auth.AuthProvider, ServiceStack.Auth.IAuthProvider, ServiceStack.Auth.IOAuthProvider + { + public string AccessTokenUrl { get => throw null; set => throw null; } + protected virtual void AssertConsumerKey() => throw null; + protected virtual void AssertConsumerSecret() => throw null; + protected virtual void AssertValidState() => throw null; + public ServiceStack.Auth.IAuthHttpGateway AuthHttpGateway { get => throw null; set => throw null; } + public abstract override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + public string AuthorizeUrl { get => throw null; set => throw null; } + public string ConsumerKey { get => throw null; set => throw null; } + protected string ConsumerKeyName; + public string ConsumerSecret { get => throw null; set => throw null; } + protected string ConsumerSecretName; + protected ServiceStack.Auth.IAuthTokens Init(ServiceStack.IServiceBase authService, ref ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; + public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public string IssuerSigningKeysUrl { get => throw null; set => throw null; } + public virtual void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession userSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public override System.Collections.Generic.Dictionary Meta { get => throw null; } + public OAuthProvider() => throw null; + public OAuthProvider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider, string consumerKeyName = default(string), string consumerSecretName = default(string)) => throw null; + public ServiceStack.Auth.OAuthAuthorizer OAuthUtils { get => throw null; set => throw null; } + public string RequestTokenUrl { get => throw null; set => throw null; } + public override string Type { get => throw null; } + public string UserProfileUrl { get => throw null; set => throw null; } + public System.Func> VerifyAccessTokenAsync { get => throw null; set => throw null; } + public string VerifyTokenUrl { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.OAuthProviderSync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class OAuthProviderSync : ServiceStack.Auth.AuthProviderSync, ServiceStack.Auth.IAuthProvider, ServiceStack.Auth.IOAuthProvider + { + public string AccessTokenUrl { get => throw null; set => throw null; } + protected virtual void AssertConsumerKey() => throw null; + protected virtual void AssertConsumerSecret() => throw null; + protected virtual void AssertValidState() => throw null; + public ServiceStack.Auth.IAuthHttpGateway AuthHttpGateway { get => throw null; set => throw null; } + public abstract override object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request); + public string AuthorizeUrl { get => throw null; set => throw null; } + public string ConsumerKey { get => throw null; set => throw null; } + protected string ConsumerKeyName; + public string ConsumerSecret { get => throw null; set => throw null; } + protected string ConsumerSecretName; + protected ServiceStack.Auth.IAuthTokens Init(ServiceStack.IServiceBase authService, ref ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; + public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; + public string IssuerSigningKeysUrl { get => throw null; set => throw null; } + public virtual void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession userSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public override System.Collections.Generic.Dictionary Meta { get => throw null; } + public OAuthProviderSync() => throw null; + public OAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; + public OAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider, string consumerKeyName, string consumerSecretName) => throw null; + public ServiceStack.Auth.OAuthAuthorizer OAuthUtils { get => throw null; set => throw null; } + public string RequestTokenUrl { get => throw null; set => throw null; } + public override string Type { get => throw null; } + public string UserProfileUrl { get => throw null; set => throw null; } + public System.Func VerifyAccessToken { get => throw null; set => throw null; } + public string VerifyTokenUrl { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.OAuthUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class OAuthUtils + { + public static string PercentEncode(string s) => throw null; + } + + // Generated from `ServiceStack.Auth.OdnoklassnikiAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OdnoklassnikiAuthProvider : ServiceStack.Auth.OAuthProvider + { + public string ApplicationId { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public const string Name = default; + public OdnoklassnikiAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + public static string PreAuthUrl; + public string PublicKey { get => throw null; set => throw null; } + public static string Realm; + public string SecretKey { get => throw null; set => throw null; } + public static string TokenUrl; + } + + // Generated from `ServiceStack.Auth.PasswordHasher` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PasswordHasher : ServiceStack.Auth.IPasswordHasher + { + public const int DefaultIterationCount = default; + public virtual string HashPassword(string password) => throw null; + public int IterationCount { get => throw null; } + public static ServiceStack.Logging.ILog Log; + public PasswordHasher() => throw null; + public PasswordHasher(int iterationCount) => throw null; + public bool VerifyPassword(string hashedPassword, string providedPassword, out bool needsRehash) => throw null; + public System.Byte Version { get => throw null; } + } + + // Generated from `ServiceStack.Auth.Pbkdf2DeriveKeyDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate System.Byte[] Pbkdf2DeriveKeyDelegate(string password, System.Byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested); + + // Generated from `ServiceStack.Auth.Pbkdf2Provider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Pbkdf2Provider + { + public static ServiceStack.Auth.Pbkdf2DeriveKeyDelegate DeriveKey { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.RedisAuthRepository` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisAuthRepository : ServiceStack.Auth.RedisAuthRepository, ServiceStack.Auth.IAuthRepository, ServiceStack.Auth.IUserAuthRepository + { + public RedisAuthRepository(ServiceStack.Auth.IRedisClientManagerFacade factory) : base(default(ServiceStack.Auth.IRedisClientManagerFacade)) => throw null; + public RedisAuthRepository(ServiceStack.Redis.IRedisClientsManager factory) : base(default(ServiceStack.Auth.IRedisClientManagerFacade)) => throw null; + } + + // Generated from `ServiceStack.Auth.RedisAuthRepository<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisAuthRepository : ServiceStack.Auth.IAuthRepository, ServiceStack.Auth.IAuthRepositoryAsync, ServiceStack.Auth.IClearable, ServiceStack.Auth.IClearableAsync, ServiceStack.Auth.ICustomUserAuth, ServiceStack.Auth.IManageApiKeys, ServiceStack.Auth.IManageApiKeysAsync, ServiceStack.Auth.IQueryUserAuth, ServiceStack.Auth.IQueryUserAuthAsync, ServiceStack.Auth.IUserAuthRepository, ServiceStack.Auth.IUserAuthRepositoryAsync where TUserAuth : class, ServiceStack.Auth.IUserAuth where TUserAuthDetails : class, ServiceStack.Auth.IUserAuthDetails + { + public virtual bool ApiKeyExists(string apiKey) => throw null; + public virtual System.Threading.Tasks.Task ApiKeyExistsAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void Clear() => throw null; + public virtual System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual ServiceStack.Auth.IUserAuthDetails CreateOrMergeAuthSession(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public virtual System.Threading.Tasks.Task CreateOrMergeAuthSessionAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.Auth.IUserAuth CreateUserAuth() => throw null; + public virtual ServiceStack.Auth.IUserAuth CreateUserAuth(ServiceStack.Auth.IUserAuth newUser, string password) => throw null; + public virtual System.Threading.Tasks.Task CreateUserAuthAsync(ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.Auth.IUserAuthDetails CreateUserAuthDetails() => throw null; + public virtual void DeleteUserAuth(string userAuthId) => throw null; + public virtual System.Threading.Tasks.Task DeleteUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual ServiceStack.Auth.ApiKey GetApiKey(string apiKey) => throw null; + public virtual System.Threading.Tasks.Task GetApiKeyAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Collections.Generic.List GetUserApiKeys(string userId) => throw null; + public virtual System.Threading.Tasks.Task> GetUserApiKeysAsync(string userId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual ServiceStack.Auth.IUserAuth GetUserAuth(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public virtual ServiceStack.Auth.IUserAuth GetUserAuth(string userAuthId) => throw null; + public virtual System.Threading.Tasks.Task GetUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task GetUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual ServiceStack.Auth.IUserAuth GetUserAuthByUserName(string userNameOrEmail) => throw null; + public virtual System.Threading.Tasks.Task GetUserAuthByUserNameAsync(string userNameOrEmail, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Collections.Generic.List GetUserAuthDetails(string userAuthId) => throw null; + public virtual System.Threading.Tasks.Task> GetUserAuthDetailsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.List GetUserAuths(string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; + public System.Threading.Tasks.Task> GetUserAuthsAsync(string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void InitApiKeySchema() => throw null; + public virtual System.Threading.Tasks.Task InitApiKeySchemaAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void LoadUserAuth(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public virtual System.Threading.Tasks.Task LoadUserAuthAsync(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string NamespacePrefix { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List QueryUserAuths(System.Collections.Generic.List results, string query = default(string), string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; + public RedisAuthRepository(ServiceStack.Auth.IRedisClientManagerFacade factory) => throw null; + public RedisAuthRepository(ServiceStack.Redis.IRedisClientsManager factory) => throw null; + public virtual void SaveUserAuth(ServiceStack.Auth.IAuthSession authSession) => throw null; + public void SaveUserAuth(ServiceStack.Auth.IUserAuth userAuth) => throw null; + public virtual System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.List SearchUserAuths(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; + public System.Threading.Tasks.Task> SearchUserAuthsAsync(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void StoreAll(System.Collections.Generic.IEnumerable apiKeys) => throw null; + public virtual System.Threading.Tasks.Task StoreAllAsync(System.Collections.Generic.IEnumerable apiKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public bool TryAuthenticate(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, out ServiceStack.Auth.IUserAuth userAuth) => throw null; + public virtual bool TryAuthenticate(string userName, string password, out ServiceStack.Auth.IUserAuth userAuth) => throw null; + public System.Threading.Tasks.Task TryAuthenticateAsync(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task TryAuthenticateAsync(string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual ServiceStack.Auth.IUserAuth UpdateUserAuth(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser) => throw null; + public virtual ServiceStack.Auth.IUserAuth UpdateUserAuth(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; + public virtual System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Auth.RedisClientManagerFacade` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisClientManagerFacade : ServiceStack.Auth.IClearable, ServiceStack.Auth.IClearableAsync, ServiceStack.Auth.IRedisClientManagerFacade + { + public void Clear() => throw null; + public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.Auth.IRedisClientFacade GetClient() => throw null; + public System.Threading.Tasks.Task GetClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public RedisClientManagerFacade(ServiceStack.Redis.IRedisClientsManager redisManager) => throw null; + } + + // Generated from `ServiceStack.Auth.RegenerateApiKeysService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RegenerateApiKeysService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.RegenerateApiKeys request) => throw null; + public RegenerateApiKeysService() => throw null; + } + + // Generated from `ServiceStack.Auth.RegisterFilterContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RegisterFilterContext + { + public string ReferrerUrl { get => throw null; set => throw null; } + public ServiceStack.Register Register { get => throw null; set => throw null; } + public RegisterFilterContext() => throw null; + public ServiceStack.RegisterResponse RegisterResponse { get => throw null; set => throw null; } + public ServiceStack.Auth.RegisterServiceBase RegisterService { get => throw null; set => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; } + public ServiceStack.Auth.IAuthSession Session { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.RegisterService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RegisterService : ServiceStack.Auth.RegisterUserAuthServiceBase + { + public static bool AllowUpdates { get => throw null; set => throw null; } + public object Post(ServiceStack.Register request) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.Register request) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.Register request) => throw null; + public RegisterService() => throw null; + public object UpdateUserAuth(ServiceStack.Register request) => throw null; + public System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Register request) => throw null; + public static ServiceStack.Auth.ValidateFn ValidateFn { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.RegisterServiceBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class RegisterServiceBase : ServiceStack.Service + { + protected virtual System.Threading.Tasks.Task CreateRegisterResponse(ServiceStack.Auth.IAuthSession session, string userName, string password, bool? autoLogin = default(bool?)) => throw null; + protected RegisterServiceBase() => throw null; + } + + // Generated from `ServiceStack.Auth.RegisterUserAuthServiceBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class RegisterUserAuthServiceBase : ServiceStack.Auth.RegisterServiceBase + { + protected virtual System.Threading.Tasks.Task RegisterNewUserAsync(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IUserAuth user) => throw null; + protected RegisterUserAuthServiceBase() => throw null; + public ServiceStack.FluentValidation.IValidator RegistrationValidator { get => throw null; set => throw null; } + protected virtual ServiceStack.Auth.IUserAuth ToUser(ServiceStack.Register request) => throw null; + protected virtual System.Threading.Tasks.Task UserExistsAsync(ServiceStack.Auth.IAuthSession session) => throw null; + protected virtual System.Threading.Tasks.Task ValidateAndThrowAsync(ServiceStack.Register request) => throw null; + } + + // Generated from `ServiceStack.Auth.RegistrationValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RegistrationValidator : ServiceStack.FluentValidation.AbstractValidator + { + public RegistrationValidator() => throw null; + } + + // Generated from `ServiceStack.Auth.SaltedHash` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SaltedHash : ServiceStack.Auth.IHashProvider + { + public void GetHashAndSalt(System.Byte[] Data, out System.Byte[] Hash, out System.Byte[] Salt) => throw null; + public void GetHashAndSaltString(string Data, out string Hash, out string Salt) => throw null; + public SaltedHash() => throw null; + public SaltedHash(System.Security.Cryptography.HashAlgorithm HashAlgorithm, int theSaltLength) => throw null; + public bool VerifyHash(System.Byte[] Data, System.Byte[] Hash, System.Byte[] Salt) => throw null; + public bool VerifyHashString(string Data, string Hash, string Salt) => throw null; + } + + // Generated from `ServiceStack.Auth.SocialExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SocialExtensions + { + public static string ToGravatarUrl(this string email, int size = default(int)) => throw null; + } + + // Generated from `ServiceStack.Auth.TwitterAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TwitterAuthProvider : ServiceStack.Auth.OAuthProvider + { + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public const string DefaultAuthorizeUrl = default; + protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public override System.Collections.Generic.Dictionary Meta { get => throw null; } + public const string Name = default; + public static string Realm; + public bool RetrieveEmail { get => throw null; set => throw null; } + public TwitterAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + } + + // Generated from `ServiceStack.Auth.UnAssignRolesService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UnAssignRolesService : ServiceStack.Service + { + public System.Threading.Tasks.Task Post(ServiceStack.UnAssignRoles request) => throw null; + public UnAssignRolesService() => throw null; + } + + // Generated from `ServiceStack.Auth.UserAuth` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UserAuth : ServiceStack.Auth.IUserAuth, ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.IMeta + { + public virtual string Address { get => throw null; set => throw null; } + public virtual string Address2 { get => throw null; set => throw null; } + public virtual System.DateTime? BirthDate { get => throw null; set => throw null; } + public virtual string BirthDateRaw { get => throw null; set => throw null; } + public virtual string City { get => throw null; set => throw null; } + public virtual string Company { get => throw null; set => throw null; } + public virtual string Country { get => throw null; set => throw null; } + public virtual System.DateTime CreatedDate { get => throw null; set => throw null; } + public virtual string Culture { get => throw null; set => throw null; } + public virtual string DigestHa1Hash { get => throw null; set => throw null; } + public virtual string DisplayName { get => throw null; set => throw null; } + public virtual string Email { get => throw null; set => throw null; } + public virtual string FirstName { get => throw null; set => throw null; } + public virtual string FullName { get => throw null; set => throw null; } + public virtual string Gender { get => throw null; set => throw null; } + public virtual int Id { get => throw null; set => throw null; } + public virtual int InvalidLoginAttempts { get => throw null; set => throw null; } + public virtual string Language { get => throw null; set => throw null; } + public virtual System.DateTime? LastLoginAttempt { get => throw null; set => throw null; } + public virtual string LastName { get => throw null; set => throw null; } + public virtual System.DateTime? LockedDate { get => throw null; set => throw null; } + public virtual string MailAddress { get => throw null; set => throw null; } + public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public virtual System.DateTime ModifiedDate { get => throw null; set => throw null; } + public virtual string Nickname { get => throw null; set => throw null; } + public virtual string PasswordHash { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public virtual string PhoneNumber { get => throw null; set => throw null; } + public virtual string PostalCode { get => throw null; set => throw null; } + public virtual string PrimaryEmail { get => throw null; set => throw null; } + public virtual string RecoveryToken { get => throw null; set => throw null; } + public virtual int? RefId { get => throw null; set => throw null; } + public virtual string RefIdStr { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public virtual string Salt { get => throw null; set => throw null; } + public virtual string State { get => throw null; set => throw null; } + public virtual string TimeZone { get => throw null; set => throw null; } + public UserAuth() => throw null; + public virtual string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.UserAuthDetails` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UserAuthDetails : ServiceStack.Auth.IAuthTokens, ServiceStack.Auth.IUserAuthDetails, ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.IMeta + { + public virtual string AccessToken { get => throw null; set => throw null; } + public virtual string AccessTokenSecret { get => throw null; set => throw null; } + public virtual string Address { get => throw null; set => throw null; } + public virtual string Address2 { get => throw null; set => throw null; } + public virtual System.DateTime? BirthDate { get => throw null; set => throw null; } + public virtual string BirthDateRaw { get => throw null; set => throw null; } + public virtual string City { get => throw null; set => throw null; } + public virtual string Company { get => throw null; set => throw null; } + public virtual string Country { get => throw null; set => throw null; } + public virtual System.DateTime CreatedDate { get => throw null; set => throw null; } + public virtual string Culture { get => throw null; set => throw null; } + public virtual string DisplayName { get => throw null; set => throw null; } + public virtual string Email { get => throw null; set => throw null; } + public virtual string FirstName { get => throw null; set => throw null; } + public virtual string FullName { get => throw null; set => throw null; } + public virtual string Gender { get => throw null; set => throw null; } + public virtual int Id { get => throw null; set => throw null; } + public virtual System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public virtual string Language { get => throw null; set => throw null; } + public virtual string LastName { get => throw null; set => throw null; } + public virtual string MailAddress { get => throw null; set => throw null; } + public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public virtual System.DateTime ModifiedDate { get => throw null; set => throw null; } + public virtual string Nickname { get => throw null; set => throw null; } + public virtual string PhoneNumber { get => throw null; set => throw null; } + public virtual string PostalCode { get => throw null; set => throw null; } + public virtual string Provider { get => throw null; set => throw null; } + public virtual int? RefId { get => throw null; set => throw null; } + public virtual string RefIdStr { get => throw null; set => throw null; } + public virtual string RefreshToken { get => throw null; set => throw null; } + public virtual System.DateTime? RefreshTokenExpiry { get => throw null; set => throw null; } + public virtual string RequestToken { get => throw null; set => throw null; } + public virtual string RequestTokenSecret { get => throw null; set => throw null; } + public virtual string State { get => throw null; set => throw null; } + public virtual string TimeZone { get => throw null; set => throw null; } + public UserAuthDetails() => throw null; + public virtual int UserAuthId { get => throw null; set => throw null; } + public virtual string UserId { get => throw null; set => throw null; } + public virtual string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Auth.UserAuthExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class UserAuthExtensions + { + public static System.Collections.Generic.List ConvertSessionToClaims(this ServiceStack.Auth.IAuthSession session, string issuer = default(string), string roleClaimType = default(string), string permissionClaimType = default(string)) => throw null; + public static T Get(this ServiceStack.IMeta instance) => throw null; + public static void PopulateFromMap(this ServiceStack.Auth.IAuthSession session, System.Collections.Generic.IDictionary map) => throw null; + public static void PopulateMissing(this ServiceStack.Auth.IUserAuthDetails instance, ServiceStack.Auth.IAuthTokens tokens, bool overwriteReserved = default(bool)) => throw null; + public static void PopulateMissingExtended(this ServiceStack.Auth.IUserAuthDetailsExtended instance, ServiceStack.Auth.IUserAuthDetailsExtended other, bool overwriteReserved = default(bool)) => throw null; + public static void RecordInvalidLoginAttempt(this ServiceStack.Auth.IUserAuthRepository repo, ServiceStack.Auth.IUserAuth userAuth) => throw null; + public static System.Threading.Tasks.Task RecordInvalidLoginAttemptAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync repo, ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void RecordSuccessfulLogin(this ServiceStack.Auth.IUserAuthRepository repo, ServiceStack.Auth.IUserAuth userAuth) => throw null; + public static void RecordSuccessfulLogin(this ServiceStack.Auth.IUserAuthRepository repo, ServiceStack.Auth.IUserAuth userAuth, bool rehashPassword, string password) => throw null; + public static System.Threading.Tasks.Task RecordSuccessfulLoginAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync repo, ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task RecordSuccessfulLoginAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync repo, ServiceStack.Auth.IUserAuth userAuth, bool rehashPassword, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static T Set(this ServiceStack.IMeta instance, T value) => throw null; + public static ServiceStack.Auth.AuthTokens ToAuthTokens(this ServiceStack.Auth.IAuthTokens from) => throw null; + public static bool TryGet(this ServiceStack.IMeta instance, out T value) => throw null; + } + + // Generated from `ServiceStack.Auth.UserAuthRepositoryAsyncManageRolesWrapper` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UserAuthRepositoryAsyncManageRolesWrapper : ServiceStack.Auth.UserAuthRepositoryAsyncWrapper, ServiceStack.Auth.IManageRolesAsync + { + public System.Threading.Tasks.Task AssignRolesAsync(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> GetPermissionsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task, System.Collections.Generic.ICollection>> GetRolesAndPermissionsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> GetRolesAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task HasPermissionAsync(string userAuthId, string permission, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task HasRoleAsync(string userAuthId, string role, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task UnAssignRolesAsync(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public UserAuthRepositoryAsyncManageRolesWrapper(ServiceStack.Auth.IAuthRepository authRepo) : base(default(ServiceStack.Auth.IAuthRepository)) => throw null; + } + + // Generated from `ServiceStack.Auth.UserAuthRepositoryAsyncWrapper` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UserAuthRepositoryAsyncWrapper : ServiceStack.Auth.IAuthRepositoryAsync, ServiceStack.Auth.ICustomUserAuth, ServiceStack.Auth.IQueryUserAuthAsync, ServiceStack.Auth.IUserAuthRepositoryAsync, ServiceStack.IRequiresSchema + { + public ServiceStack.Auth.IAuthRepository AuthRepo { get => throw null; } + public System.Threading.Tasks.Task CreateOrMergeAuthSessionAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.Auth.IUserAuth CreateUserAuth() => throw null; + public System.Threading.Tasks.Task CreateUserAuthAsync(ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.Auth.IUserAuthDetails CreateUserAuthDetails() => throw null; + public System.Threading.Tasks.Task DeleteUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetUserAuthByUserNameAsync(string userNameOrEmail, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> GetUserAuthDetailsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> GetUserAuthsAsync(string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void InitSchema() => throw null; + public System.Threading.Tasks.Task LoadUserAuthAsync(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> SearchUserAuthsAsync(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task TryAuthenticateAsync(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task TryAuthenticateAsync(string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public UserAuthRepositoryAsyncWrapper(ServiceStack.Auth.IAuthRepository authRepo) => throw null; + } + + // Generated from `ServiceStack.Auth.UserAuthRepositoryAsyncWrapperExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class UserAuthRepositoryAsyncWrapperExtensions + { + public static ServiceStack.Auth.IAuthRepositoryAsync AsAsync(this ServiceStack.Auth.IAuthRepository authRepo) => throw null; + public static bool TryGetNativeQueryAuth(this ServiceStack.Auth.IAuthRepository syncRepo, ServiceStack.Auth.IAuthRepositoryAsync asyncRepo, out ServiceStack.Auth.IQueryUserAuth queryUserAuth, out ServiceStack.Auth.IQueryUserAuthAsync queryUserAuthAsync) => throw null; + public static ServiceStack.Auth.IAuthRepository UnwrapAuthRepository(this ServiceStack.Auth.IAuthRepositoryAsync asyncRepo) => throw null; + } + + // Generated from `ServiceStack.Auth.UserAuthRepositoryExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class UserAuthRepositoryExtensions + { + public static void AssignRoles(this ServiceStack.Auth.IAuthRepository userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)) => throw null; + public static void AssignRoles(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)) => throw null; + public static System.Threading.Tasks.Task AssignRolesAsync(this ServiceStack.Auth.IAuthRepositoryAsync userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task AssignRolesAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static ServiceStack.Auth.IUserAuth CreateUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; + public static System.Threading.Tasks.Task CreateUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void DeleteUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, string userAuthId) => throw null; + public static void DeleteUserAuth(this ServiceStack.Auth.IUserAuthRepository authRepo, int userAuthId) => throw null; + public static System.Threading.Tasks.Task DeleteUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeleteUserAuthAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync authRepo, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.List GetAuthTokens(this ServiceStack.Auth.IAuthRepository repo, string userAuthId) => throw null; + public static System.Threading.Tasks.Task> GetAuthTokensAsync(this ServiceStack.Auth.IAuthRepositoryAsync repo, string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.ICollection GetPermissions(this ServiceStack.Auth.IAuthRepository userAuthRepo, ServiceStack.Auth.IUserAuth userAuth) => throw null; + public static System.Collections.Generic.ICollection GetPermissions(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId) => throw null; + public static System.Threading.Tasks.Task> GetPermissionsAsync(this ServiceStack.Auth.IAuthRepositoryAsync userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> GetPermissionsAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.ICollection GetRoles(this ServiceStack.Auth.IAuthRepository userAuthRepo, ServiceStack.Auth.IUserAuth userAuth) => throw null; + public static System.Collections.Generic.ICollection GetRoles(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId) => throw null; + public static System.Threading.Tasks.Task> GetRolesAsync(this ServiceStack.Auth.IAuthRepositoryAsync userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> GetRolesAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static ServiceStack.Auth.IUserAuth GetUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, string userAuthId) => throw null; + public static ServiceStack.Auth.IUserAuth GetUserAuth(this ServiceStack.Auth.IUserAuthRepository authRepo, int userAuthId) => throw null; + public static System.Threading.Tasks.Task GetUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task GetUserAuthAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync authRepo, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.List GetUserAuthDetails(this ServiceStack.Auth.IAuthRepository authRepo, int userAuthId) => throw null; + public static System.Threading.Tasks.Task> GetUserAuthDetailsAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.List GetUserAuths(this ServiceStack.Auth.IAuthRepository authRepo, string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; + public static System.Threading.Tasks.Task> GetUserAuthsAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static bool HasPermission(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId, string permission) => throw null; + public static System.Threading.Tasks.Task HasPermissionAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, string permission, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static bool HasRole(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId, string role) => throw null; + public static System.Threading.Tasks.Task HasRoleAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, string role, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void PopulateSession(this ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthRepository authRepo = default(ServiceStack.Auth.IAuthRepository)) => throw null; + public static System.Threading.Tasks.Task PopulateSessionAsync(this ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthRepositoryAsync authRepo = default(ServiceStack.Auth.IAuthRepositoryAsync), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Collections.Generic.List SearchUserAuths(this ServiceStack.Auth.IAuthRepository authRepo, string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; + public static System.Threading.Tasks.Task> SearchUserAuthsAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void UnAssignRoles(this ServiceStack.Auth.IAuthRepository userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)) => throw null; + public static void UnAssignRoles(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)) => throw null; + public static System.Threading.Tasks.Task UnAssignRolesAsync(this ServiceStack.Auth.IAuthRepositoryAsync userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UnAssignRolesAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static ServiceStack.Auth.IUserAuth UpdateUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser) => throw null; + public static ServiceStack.Auth.IUserAuth UpdateUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; + public static System.Threading.Tasks.Task UpdateUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task UpdateUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void ValidateNewUser(this ServiceStack.Auth.IUserAuth newUser) => throw null; + public static void ValidateNewUser(this ServiceStack.Auth.IUserAuth newUser, string password) => throw null; + } + + // Generated from `ServiceStack.Auth.UserAuthRole` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UserAuthRole : ServiceStack.IMeta + { + public virtual System.DateTime CreatedDate { get => throw null; set => throw null; } + public virtual int Id { get => throw null; set => throw null; } + public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public virtual System.DateTime ModifiedDate { get => throw null; set => throw null; } + public virtual string Permission { get => throw null; set => throw null; } + public virtual int? RefId { get => throw null; set => throw null; } + public virtual string RefIdStr { get => throw null; set => throw null; } + public virtual string Role { get => throw null; set => throw null; } + public virtual int UserAuthId { get => throw null; set => throw null; } + public UserAuthRole() => throw null; + } + + // Generated from `ServiceStack.Auth.ValidateAsyncFn` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate System.Threading.Tasks.Task ValidateAsyncFn(ServiceStack.IServiceBase service, string httpMethod, object requestDto); + + // Generated from `ServiceStack.Auth.ValidateFn` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ValidateFn(ServiceStack.IServiceBase service, string httpMethod, object requestDto); + + // Generated from `ServiceStack.Auth.VkAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class VkAuthProvider : ServiceStack.Auth.OAuthProvider + { + public string ApiVersion { get => throw null; set => throw null; } + public string ApplicationId { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken) => throw null; + protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public const string Name = default; + public static string PreAuthUrl; + public static string Realm; + public string Scope { get => throw null; set => throw null; } + public string SecureKey { get => throw null; set => throw null; } + public static string TokenUrl; + public VkAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + } + + // Generated from `ServiceStack.Auth.YammerAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class YammerAuthProvider : ServiceStack.Auth.OAuthProvider + { + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string ClientId { get => throw null; set => throw null; } + public string ClientSecret { get => throw null; set => throw null; } + protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public const string Name = default; + public string PreAuthUrl { get => throw null; set => throw null; } + public YammerAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + } + + // Generated from `ServiceStack.Auth.YandexAuthProvider` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class YandexAuthProvider : ServiceStack.Auth.OAuthProvider + { + public string ApplicationId { get => throw null; set => throw null; } + public string ApplicationPassword { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; + public const string Name = default; + public static string PreAuthUrl; + public static string Realm; + public static string TokenUrl; + public YandexAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; + } + + } + namespace Caching + { + // Generated from `ServiceStack.Caching.CacheClientAsyncExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CacheClientAsyncExtensions + { + public static ServiceStack.Caching.ICacheClientAsync AsAsync(this ServiceStack.Caching.ICacheClient cache) => throw null; + public static ServiceStack.Caching.ICacheClient AsSync(this ServiceStack.Caching.ICacheClientAsync cache) => throw null; + public static ServiceStack.Caching.ICacheClient Unwrap(this ServiceStack.Caching.ICacheClientAsync cache) => throw null; + } + + // Generated from `ServiceStack.Caching.CacheClientAsyncWrapper` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CacheClientAsyncWrapper : ServiceStack.Caching.ICacheClientAsync, ServiceStack.Caching.IRemoveByPatternAsync, System.IAsyncDisposable + { + public System.Threading.Tasks.Task AddAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.Caching.ICacheClient Cache { get => throw null; } + public CacheClientAsyncWrapper(ServiceStack.Caching.ICacheClient cache) => throw null; + public System.Threading.Tasks.Task DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public System.Threading.Tasks.Task FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveByRegexAsync(string regex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveExpiredEntriesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Caching.CacheClientWithPrefix` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CacheClientWithPrefix : ServiceStack.Caching.ICacheClient, ServiceStack.Caching.ICacheClientExtended, ServiceStack.Caching.IRemoveByPattern, System.IDisposable + { + public bool Add(string key, T value) => throw null; + public bool Add(string key, T value, System.DateTime expiresAt) => throw null; + public bool Add(string key, T value, System.TimeSpan expiresIn) => throw null; + public CacheClientWithPrefix(ServiceStack.Caching.ICacheClient cache, string prefix) => throw null; + public System.Int64 Decrement(string key, System.UInt32 amount) => throw null; + public void Dispose() => throw null; + public void FlushAll() => throw null; + public T Get(string key) => throw null; + public System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys) => throw null; + public System.Collections.Generic.IEnumerable GetKeysByPattern(string pattern) => throw null; + public System.TimeSpan? GetTimeToLive(string key) => throw null; + public System.Int64 Increment(string key, System.UInt32 amount) => throw null; + public string Prefix { get => throw null; } + public bool Remove(string key) => throw null; + public void RemoveAll(System.Collections.Generic.IEnumerable keys) => throw null; + public void RemoveByPattern(string pattern) => throw null; + public void RemoveByRegex(string regex) => throw null; + public void RemoveExpiredEntries() => throw null; + public bool Replace(string key, T value) => throw null; + public bool Replace(string key, T value, System.DateTime expiresAt) => throw null; + public bool Replace(string key, T value, System.TimeSpan expiresIn) => throw null; + public bool Set(string key, T value) => throw null; + public bool Set(string key, T value, System.DateTime expiresAt) => throw null; + public bool Set(string key, T value, System.TimeSpan expiresIn) => throw null; + public void SetAll(System.Collections.Generic.IDictionary values) => throw null; + } + + // Generated from `ServiceStack.Caching.CacheClientWithPrefixAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CacheClientWithPrefixAsync : ServiceStack.Caching.ICacheClientAsync, ServiceStack.Caching.IRemoveByPatternAsync, System.IAsyncDisposable + { + public System.Threading.Tasks.Task AddAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public CacheClientWithPrefixAsync(ServiceStack.Caching.ICacheClientAsync cache, string prefix) => throw null; + public System.Threading.Tasks.Task DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public System.Threading.Tasks.Task FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string Prefix { get => throw null; } + public System.Threading.Tasks.Task RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveByRegexAsync(string regex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveExpiredEntriesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.Caching.CacheClientWithPrefixAsyncExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CacheClientWithPrefixAsyncExtensions + { + public static ServiceStack.Caching.ICacheClientAsync WithPrefix(this ServiceStack.Caching.ICacheClientAsync cache, string prefix) => throw null; + } + + // Generated from `ServiceStack.Caching.CacheClientWithPrefixExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CacheClientWithPrefixExtensions + { + public static ServiceStack.Caching.ICacheClient WithPrefix(this ServiceStack.Caching.ICacheClient cache, string prefix) => throw null; + } + + // Generated from `ServiceStack.Caching.MemoryCacheClient` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MemoryCacheClient : ServiceStack.Caching.ICacheClient, ServiceStack.Caching.ICacheClientExtended, ServiceStack.Caching.IRemoveByPattern, System.IDisposable + { + public bool Add(string key, T value) => throw null; + public bool Add(string key, T value, System.DateTime expiresAt) => throw null; + public bool Add(string key, T value, System.TimeSpan expiresIn) => throw null; + public System.Int64 CleaningInterval { get => throw null; set => throw null; } + public System.Int64 Decrement(string key, System.UInt32 amount) => throw null; + public void Dispose() => throw null; + public void FlushAll() => throw null; + public bool FlushOnDispose { get => throw null; set => throw null; } + public object Get(string key) => throw null; + public object Get(string key, out System.Int64 lastModifiedTicks) => throw null; + public T Get(string key) => throw null; + public System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys) => throw null; + public System.Collections.Generic.IEnumerable GetKeysByPattern(string pattern) => throw null; + public System.Collections.Generic.List GetKeysByRegex(string pattern) => throw null; + public System.TimeSpan? GetTimeToLive(string key) => throw null; + public System.Int64 Increment(string key, System.UInt32 amount) => throw null; + public MemoryCacheClient() => throw null; + public bool Remove(string key) => throw null; + public void RemoveAll(System.Collections.Generic.IEnumerable keys) => throw null; + public void RemoveByPattern(string pattern) => throw null; + public void RemoveByRegex(string pattern) => throw null; + public void RemoveExpiredEntries() => throw null; + public bool Replace(string key, T value) => throw null; + public bool Replace(string key, T value, System.DateTime expiresAt) => throw null; + public bool Replace(string key, T value, System.TimeSpan expiresIn) => throw null; + public bool Set(string key, T value) => throw null; + public bool Set(string key, T value, System.DateTime expiresAt) => throw null; + public bool Set(string key, T value, System.TimeSpan expiresIn) => throw null; + public void SetAll(System.Collections.Generic.IDictionary values) => throw null; + } + + // Generated from `ServiceStack.Caching.MultiCacheClient` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MultiCacheClient : ServiceStack.Caching.ICacheClient, ServiceStack.Caching.ICacheClientAsync, System.IAsyncDisposable, System.IDisposable + { + public bool Add(string key, T value) => throw null; + public bool Add(string key, T value, System.DateTime expiresAt) => throw null; + public bool Add(string key, T value, System.TimeSpan expiresIn) => throw null; + public System.Threading.Tasks.Task AddAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Int64 Decrement(string key, System.UInt32 amount) => throw null; + public System.Threading.Tasks.Task DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Dispose() => throw null; + public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; + public void FlushAll() => throw null; + public System.Threading.Tasks.Task FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public T Get(string key) => throw null; + public System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys) => throw null; + public System.Threading.Tasks.Task> GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Int64 Increment(string key, System.UInt32 amount) => throw null; + public System.Threading.Tasks.Task IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public MultiCacheClient(System.Collections.Generic.List cacheClients, System.Collections.Generic.List cacheClientsAsync) => throw null; + public MultiCacheClient(params ServiceStack.Caching.ICacheClient[] cacheClients) => throw null; + public bool Remove(string key) => throw null; + public void RemoveAll(System.Collections.Generic.IEnumerable keys) => throw null; + public System.Threading.Tasks.Task RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task RemoveExpiredEntriesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public bool Replace(string key, T value) => throw null; + public bool Replace(string key, T value, System.DateTime expiresAt) => throw null; + public bool Replace(string key, T value, System.TimeSpan expiresIn) => throw null; + public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public bool Set(string key, T value) => throw null; + public bool Set(string key, T value, System.DateTime expiresAt) => throw null; + public bool Set(string key, T value, System.TimeSpan expiresIn) => throw null; + public void SetAll(System.Collections.Generic.IDictionary values) => throw null; + public System.Threading.Tasks.Task SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + } + namespace Configuration + { + // Generated from `ServiceStack.Configuration.AppSettings` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AppSettings : ServiceStack.Configuration.AppSettingsBase + { + public AppSettings(string tier = default(string)) : base(default(ServiceStack.Configuration.ISettings)) => throw null; + public override string GetString(string name) => throw null; + } + + // Generated from `ServiceStack.Configuration.AppSettingsBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AppSettingsBase : ServiceStack.Configuration.IAppSettings, ServiceStack.Configuration.ISettings, ServiceStack.Configuration.ISettingsWriter + { + public AppSettingsBase(ServiceStack.Configuration.ISettings settings = default(ServiceStack.Configuration.ISettings)) => throw null; + public virtual bool Exists(string key) => throw null; + public string Get(string name) => throw null; + public virtual T Get(string name) => throw null; + public virtual T Get(string name, T defaultValue) => throw null; + public virtual System.Collections.Generic.Dictionary GetAll() => throw null; + public virtual System.Collections.Generic.List GetAllKeys() => throw null; + public virtual System.Collections.Generic.IDictionary GetDictionary(string key) => throw null; + public virtual System.Collections.Generic.List> GetKeyValuePairs(string key) => throw null; + public virtual System.Collections.Generic.IList GetList(string key) => throw null; + public virtual string GetNullableString(string name) => throw null; + public virtual string GetRequiredString(string name) => throw null; + public virtual string GetString(string name) => throw null; + protected void Init(ServiceStack.Configuration.ISettings settings) => throw null; + public ServiceStack.Configuration.ParsingStrategyDelegate ParsingStrategy { get => throw null; set => throw null; } + public virtual void Set(string key, T value) => throw null; + public string Tier { get => throw null; set => throw null; } + protected ServiceStack.Configuration.ISettings settings; + protected ServiceStack.Configuration.ISettingsWriter settingsWriter; + } + + // Generated from `ServiceStack.Configuration.AppSettingsStrategy` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AppSettingsStrategy + { + public static string CollapseNewLines(string originalSetting) => throw null; + } + + // Generated from `ServiceStack.Configuration.AppSettingsUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AppSettingsUtils + { + public static string GetConnectionString(this ServiceStack.Configuration.IAppSettings appSettings, string name) => throw null; + public static string GetNullableString(this ServiceStack.Configuration.IAppSettings settings, string name) => throw null; + public static string GetRequiredString(this ServiceStack.Configuration.IAppSettings settings, string name) => throw null; + } + + // Generated from `ServiceStack.Configuration.Config` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Config + { + public Config() => throw null; + public const string DefaultNamespace = default; + } + + // Generated from `ServiceStack.Configuration.ConfigUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConfigUtils + { + public ConfigUtils() => throw null; + public static string GetAppSetting(string key) => throw null; + public static string GetAppSetting(string key, string defaultValue) => throw null; + public static T GetAppSetting(string key, T defaultValue) => throw null; + public static System.Collections.Generic.Dictionary GetAppSettingsMap() => throw null; + public static string GetConnectionString(string key) => throw null; + public static System.Collections.Generic.Dictionary GetDictionaryFromAppSetting(string key) => throw null; + public static System.Collections.Generic.Dictionary GetDictionaryFromAppSettingValue(string appSettingValue) => throw null; + public static System.Collections.Generic.List> GetKeyValuePairsFromAppSettingValue(string appSettingValue) => throw null; + public static System.Collections.Generic.List GetListFromAppSetting(string key) => throw null; + public static System.Collections.Generic.List GetListFromAppSettingValue(string appSettingValue) => throw null; + public static string GetNullableAppSetting(string key) => throw null; + public const System.Char ItemSeperator = default; + public const System.Char KeyValueSeperator = default; + } + + // Generated from `ServiceStack.Configuration.DictionarySettings` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DictionarySettings : ServiceStack.Configuration.AppSettingsBase, ServiceStack.Configuration.ISettings + { + public DictionarySettings(System.Collections.Generic.Dictionary map = default(System.Collections.Generic.Dictionary)) : base(default(ServiceStack.Configuration.ISettings)) => throw null; + public DictionarySettings(System.Collections.Generic.IEnumerable> map) : base(default(ServiceStack.Configuration.ISettings)) => throw null; + public override System.Collections.Generic.Dictionary GetAll() => throw null; + } + + // Generated from `ServiceStack.Configuration.EnvironmentVariableSettings` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EnvironmentVariableSettings : ServiceStack.Configuration.AppSettingsBase + { + public EnvironmentVariableSettings() : base(default(ServiceStack.Configuration.ISettings)) => throw null; + public override string GetString(string name) => throw null; + } + + // Generated from `ServiceStack.Configuration.ISettings` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISettings + { + string Get(string key); + System.Collections.Generic.List GetAllKeys(); + } + + // Generated from `ServiceStack.Configuration.ISettingsWriter` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ISettingsWriter : ServiceStack.Configuration.ISettings + { + void Set(string key, T value); + } + + // Generated from `ServiceStack.Configuration.MultiAppSettings` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MultiAppSettings : ServiceStack.Configuration.AppSettingsBase, ServiceStack.Configuration.ISettings + { + public ServiceStack.Configuration.IAppSettings[] AppSettings { get => throw null; } + public override T Get(string name) => throw null; + public override T Get(string name, T defaultValue) => throw null; + public MultiAppSettings(params ServiceStack.Configuration.IAppSettings[] appSettings) : base(default(ServiceStack.Configuration.ISettings)) => throw null; + } + + // Generated from `ServiceStack.Configuration.MultiAppSettingsBuilder` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MultiAppSettingsBuilder + { + public ServiceStack.Configuration.MultiAppSettingsBuilder AddAppSettings() => throw null; + public ServiceStack.Configuration.MultiAppSettingsBuilder AddAppSettings(string tier) => throw null; + public ServiceStack.Configuration.MultiAppSettingsBuilder AddDictionarySettings(System.Collections.Generic.Dictionary map) => throw null; + public ServiceStack.Configuration.MultiAppSettingsBuilder AddEnvironmentalVariables() => throw null; + public ServiceStack.Configuration.MultiAppSettingsBuilder AddEnvironmentalVariables(string tier) => throw null; + public ServiceStack.Configuration.MultiAppSettingsBuilder AddNetCore(Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; + public ServiceStack.Configuration.MultiAppSettingsBuilder AddTextFile(string path) => throw null; + public ServiceStack.Configuration.MultiAppSettingsBuilder AddTextFile(string path, string delimeter) => throw null; + public ServiceStack.Configuration.MultiAppSettingsBuilder AddTextFile(string path, string delimeter, string tier) => throw null; + public ServiceStack.Configuration.IAppSettings Build() => throw null; + public MultiAppSettingsBuilder(string tier = default(string)) => throw null; + } + + // Generated from `ServiceStack.Configuration.ParsingStrategyDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate string ParsingStrategyDelegate(string originalSetting); + + // Generated from `ServiceStack.Configuration.RoleNames` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class RoleNames + { + public const string Admin = default; + public const string AllowAnon = default; + public const string AllowAnyUser = default; + } + + // Generated from `ServiceStack.Configuration.RuntimeAppSettings` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RuntimeAppSettings : ServiceStack.Configuration.IRuntimeAppSettings + { + public T Get(ServiceStack.Web.IRequest request, string name, T defaultValue) => throw null; + public RuntimeAppSettings() => throw null; + public System.Collections.Generic.Dictionary> Settings { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Configuration.TextFileSettings` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TextFileSettings : ServiceStack.Configuration.DictionarySettings + { + public TextFileSettings(string filePath, string delimiter = default(string)) : base(default(System.Collections.Generic.Dictionary)) => throw null; + } + + } + namespace FluentValidation + { + // Generated from `ServiceStack.FluentValidation.AbstractValidator<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AbstractValidator : ServiceStack.FluentValidation.IServiceStackValidator, ServiceStack.FluentValidation.IValidator, ServiceStack.FluentValidation.IValidator, ServiceStack.IHasTypeValidators, ServiceStack.Web.IRequiresRequest, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + protected AbstractValidator() => throw null; + protected void AddRule(ServiceStack.FluentValidation.IValidationRule rule) => throw null; + bool ServiceStack.FluentValidation.IValidator.CanValidateInstancesOfType(System.Type type) => throw null; + public ServiceStack.FluentValidation.CascadeMode CascadeMode { get => throw null; set => throw null; } + public virtual ServiceStack.FluentValidation.IValidatorDescriptor CreateDescriptor() => throw null; + protected virtual void EnsureInstanceNotNull(object instanceToValidate) => throw null; + public virtual ServiceStack.IServiceGateway Gateway { get => throw null; } + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public void Include(ServiceStack.FluentValidation.IValidator rulesToInclude) => throw null; + public void Include(System.Func rulesToInclude) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; + protected virtual bool PreValidate(ServiceStack.FluentValidation.ValidationContext context, ServiceStack.FluentValidation.Results.ValidationResult result) => throw null; + protected virtual void RaiseValidationException(ServiceStack.FluentValidation.ValidationContext context, ServiceStack.FluentValidation.Results.ValidationResult result) => throw null; + public void RemovePropertyRules(System.Func where) => throw null; + public virtual ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public ServiceStack.FluentValidation.IRuleBuilderInitial RuleFor(System.Linq.Expressions.Expression> expression) => throw null; + public ServiceStack.FluentValidation.IRuleBuilderInitialCollection RuleForEach(System.Linq.Expressions.Expression>> expression) => throw null; + public void RuleSet(ServiceStack.ApplyTo appliesTo, System.Action action) => throw null; + public void RuleSet(string ruleSetName, System.Action action) => throw null; + public ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Linq.Expressions.Expression> from, System.Func to) => throw null; + public ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Linq.Expressions.Expression> from, System.Func to) => throw null; + public ServiceStack.FluentValidation.IRuleBuilderInitialCollection TransformForEach(System.Linq.Expressions.Expression>> expression, System.Func to) => throw null; + public ServiceStack.FluentValidation.IRuleBuilderInitialCollection TransformForEach(System.Linq.Expressions.Expression>> expression, System.Func to) => throw null; + public System.Collections.Generic.List TypeValidators { get => throw null; } + public ServiceStack.FluentValidation.IConditionBuilder Unless(System.Func, bool> predicate, System.Action action) => throw null; + public ServiceStack.FluentValidation.IConditionBuilder Unless(System.Func predicate, System.Action action) => throw null; + public ServiceStack.FluentValidation.IConditionBuilder UnlessAsync(System.Func> predicate, System.Action action) => throw null; + public ServiceStack.FluentValidation.IConditionBuilder UnlessAsync(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> predicate, System.Action action) => throw null; + ServiceStack.FluentValidation.Results.ValidationResult ServiceStack.FluentValidation.IValidator.Validate(ServiceStack.FluentValidation.IValidationContext context) => throw null; + public ServiceStack.FluentValidation.Results.ValidationResult Validate(T instance) => throw null; + public virtual ServiceStack.FluentValidation.Results.ValidationResult Validate(ServiceStack.FluentValidation.ValidationContext context) => throw null; + System.Threading.Tasks.Task ServiceStack.FluentValidation.IValidator.ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation) => throw null; + public System.Threading.Tasks.Task ValidateAsync(T instance, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task ValidateAsync(ServiceStack.FluentValidation.ValidationContext context, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)) => throw null; + public ServiceStack.FluentValidation.IConditionBuilder When(System.Func, bool> predicate, System.Action action) => throw null; + public ServiceStack.FluentValidation.IConditionBuilder When(System.Func predicate, System.Action action) => throw null; + public ServiceStack.FluentValidation.IConditionBuilder WhenAsync(System.Func> predicate, System.Action action) => throw null; + public ServiceStack.FluentValidation.IConditionBuilder WhenAsync(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> predicate, System.Action action) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.ApplyConditionTo` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum ApplyConditionTo + { + AllValidators, + CurrentValidator, + } + + // Generated from `ServiceStack.FluentValidation.AssemblyScanner` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AssemblyScanner : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + // Generated from `ServiceStack.FluentValidation.AssemblyScanner+AssemblyScanResult` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AssemblyScanResult + { + public AssemblyScanResult(System.Type interfaceType, System.Type validatorType) => throw null; + public System.Type InterfaceType { get => throw null; set => throw null; } + public System.Type ValidatorType { get => throw null; set => throw null; } + } + + + public AssemblyScanner(System.Collections.Generic.IEnumerable types) => throw null; + public static ServiceStack.FluentValidation.AssemblyScanner FindValidatorsInAssemblies(System.Collections.Generic.IEnumerable assemblies) => throw null; + public static ServiceStack.FluentValidation.AssemblyScanner FindValidatorsInAssembly(System.Reflection.Assembly assembly) => throw null; + public static ServiceStack.FluentValidation.AssemblyScanner FindValidatorsInAssemblyContaining(System.Type type) => throw null; + public static ServiceStack.FluentValidation.AssemblyScanner FindValidatorsInAssemblyContaining() => throw null; + public void ForEach(System.Action action) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.CascadeMode` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum CascadeMode + { + Continue, + Stop, + StopOnFirstFailure, + } + + // Generated from `ServiceStack.FluentValidation.DefaultValidator<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultValidator : ServiceStack.FluentValidation.AbstractValidator, ServiceStack.FluentValidation.IDefaultValidator + { + public DefaultValidator() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.DefaultValidatorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DefaultValidatorExtensions + { + public static ServiceStack.FluentValidation.IRuleBuilderOptions ChildRules(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Action> action) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions CreditCard(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderInitial Custom(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Action action) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderInitial CustomAsync(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func action) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions EmailAddress(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, ServiceStack.FluentValidation.Validators.EmailValidationMode mode = default(ServiceStack.FluentValidation.Validators.EmailValidationMode)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Empty(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Equal(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Equal(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty toCompare, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions ExclusiveBetween(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty from, TProperty to) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions ExclusiveBetween(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty from, TProperty to) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions> ForEach(this ServiceStack.FluentValidation.IRuleBuilder> ruleBuilder, System.Action, TElement>> action) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions InclusiveBetween(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty from, TProperty to) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions InclusiveBetween(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty from, TProperty to) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions IsEnumName(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Type enumType, bool caseSensitive = default(bool)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions IsInEnum(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Length(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func exactLength) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Length(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func min, System.Func max) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Length(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int exactLength) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Length(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int min, int max) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func regex) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func expression) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func expression, System.Text.RegularExpressions.RegexOptions options) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Text.RegularExpressions.Regex regex) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, string expression) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, string expression, System.Text.RegularExpressions.RegexOptions options) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions MaximumLength(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int maximumLength) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions MinimumLength(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int minimumLength) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Must(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func predicate) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Must(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func predicate) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Must(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func predicate) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions MustAsync(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func> predicate) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions MustAsync(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func> predicate) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions MustAsync(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func> predicate) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions NotEmpty(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions NotEqual(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions NotEqual(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty toCompare, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions NotNull(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Null(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions ScalePrecision(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int scale, int precision, bool ignoreTrailingZeros = default(bool)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions ScalePrecision(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int scale, int precision, bool ignoreTrailingZeros = default(bool)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions SetInheritanceValidator(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Action> validatorConfiguration) => throw null; + public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Action> options) => throw null; + public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, T instance, ServiceStack.FluentValidation.Internal.IValidatorSelector selector = default(ServiceStack.FluentValidation.Internal.IValidatorSelector), string ruleSet = default(string)) => throw null; + public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, T instance, params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; + public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, T instance, params string[] properties) => throw null; + public static void ValidateAndThrow(this ServiceStack.FluentValidation.IValidator validator, T instance) => throw null; + public static void ValidateAndThrow(this ServiceStack.FluentValidation.IValidator validator, T instance, string ruleSet) => throw null; + public static System.Threading.Tasks.Task ValidateAndThrowAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ValidateAndThrowAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, string ruleSet, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Action> options, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), ServiceStack.FluentValidation.Internal.IValidatorSelector selector = default(ServiceStack.FluentValidation.Internal.IValidatorSelector), string ruleSet = default(string)) => throw null; + public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; + public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), params string[] properties) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.DefaultValidatorExtensionsServiceStack` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DefaultValidatorExtensionsServiceStack + { + public static void ValidateAndThrow(this ServiceStack.FluentValidation.IValidator validator, T instance, ServiceStack.ApplyTo applyTo) => throw null; + public static System.Threading.Tasks.Task ValidateAndThrowAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, ServiceStack.ApplyTo applyTo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.DefaultValidatorOptions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DefaultValidatorOptions + { + public static ServiceStack.FluentValidation.IRuleBuilderInitial Cascade(this ServiceStack.FluentValidation.IRuleBuilderInitial ruleBuilder, ServiceStack.FluentValidation.CascadeMode cascadeMode) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderInitialCollection Cascade(this ServiceStack.FluentValidation.IRuleBuilderInitialCollection ruleBuilder, ServiceStack.FluentValidation.CascadeMode cascadeMode) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions DependentRules(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action action) => throw null; + public static string GetStringForValidator(this ServiceStack.FluentValidation.Resources.ILanguageManager languageManager) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions OnAnyFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action> onFailure) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions OnAnyFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action onFailure) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions OnFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action onFailure) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions OnFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action onFailure) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions OnFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action onFailure) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderInitialCollection OverrideIndexer(this ServiceStack.FluentValidation.IRuleBuilderInitialCollection rule, System.Func, TCollectionElement, int, string> callback) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions OverridePropertyName(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Linq.Expressions.Expression> expr) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions OverridePropertyName(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, string propertyName) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Unless(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func, bool> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions Unless(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions UnlessAsync(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions UnlessAsync(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions When(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func, bool> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions When(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WhenAsync(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WhenAsync(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderInitialCollection Where(this ServiceStack.FluentValidation.IRuleBuilderInitialCollection rule, System.Func predicate) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithErrorCode(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, string errorCode) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithMessage(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func messageProvider) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithMessage(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func messageProvider) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithMessage(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, string errorMessage) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithName(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func nameProvider) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithName(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, string overridePropertyName) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithSeverity(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func severityProvider) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithSeverity(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func severityProvider) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithSeverity(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, ServiceStack.FluentValidation.Severity severity) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithState(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func stateProvider) => throw null; + public static ServiceStack.FluentValidation.IRuleBuilderOptions WithState(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func stateProvider) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.ICommonContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICommonContext + { + object InstanceToValidate { get; } + ServiceStack.FluentValidation.ICommonContext ParentContext { get; } + object PropertyValue { get; } + } + + // Generated from `ServiceStack.FluentValidation.IConditionBuilder` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IConditionBuilder + { + void Otherwise(System.Action action); + } + + // Generated from `ServiceStack.FluentValidation.IDefaultValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IDefaultValidator + { + } + + // Generated from `ServiceStack.FluentValidation.IParameterValidatorFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IParameterValidatorFactory + { + ServiceStack.FluentValidation.IValidator GetValidator(System.Reflection.ParameterInfo parameterInfo); + } + + // Generated from `ServiceStack.FluentValidation.IRuleBuilder<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRuleBuilder + { + ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator validator); + ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(ServiceStack.FluentValidation.IValidator validator, params string[] ruleSets); + ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider, params string[] ruleSets) where TValidator : ServiceStack.FluentValidation.IValidator; + ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider, params string[] ruleSets) where TValidator : ServiceStack.FluentValidation.IValidator; + } + + // Generated from `ServiceStack.FluentValidation.IRuleBuilderInitial<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRuleBuilderInitial : ServiceStack.FluentValidation.IRuleBuilder, ServiceStack.FluentValidation.Internal.IConfigurable> + { + ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Func transformationFunc); + } + + // Generated from `ServiceStack.FluentValidation.IRuleBuilderInitialCollection<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRuleBuilderInitialCollection : ServiceStack.FluentValidation.IRuleBuilder, ServiceStack.FluentValidation.Internal.IConfigurable, ServiceStack.FluentValidation.IRuleBuilderInitialCollection> + { + ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Func transformationFunc); + } + + // Generated from `ServiceStack.FluentValidation.IRuleBuilderOptions<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRuleBuilderOptions : ServiceStack.FluentValidation.IRuleBuilder, ServiceStack.FluentValidation.Internal.IConfigurable> + { + } + + // Generated from `ServiceStack.FluentValidation.IServiceStackValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceStackValidator + { + void RemovePropertyRules(System.Func where); + } + + // Generated from `ServiceStack.FluentValidation.IValidationContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidationContext : ServiceStack.FluentValidation.ICommonContext + { + bool IsChildCollectionContext { get; } + bool IsChildContext { get; } + ServiceStack.FluentValidation.Internal.PropertyChain PropertyChain { get; } + ServiceStack.Web.IRequest Request { get; set; } + System.Collections.Generic.IDictionary RootContextData { get; } + ServiceStack.FluentValidation.Internal.IValidatorSelector Selector { get; } + } + + // Generated from `ServiceStack.FluentValidation.IValidationRule` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidationRule + { + void ApplyAsyncCondition(System.Func> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)); + void ApplyCondition(System.Func predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)); + void ApplySharedAsyncCondition(System.Func> condition); + void ApplySharedCondition(System.Func condition); + string[] RuleSets { get; set; } + System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.IValidationContext context); + System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation); + System.Collections.Generic.IEnumerable Validators { get; } + } + + // Generated from `ServiceStack.FluentValidation.IValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidator + { + bool CanValidateInstancesOfType(System.Type type); + ServiceStack.FluentValidation.IValidatorDescriptor CreateDescriptor(); + ServiceStack.FluentValidation.Results.ValidationResult Validate(ServiceStack.FluentValidation.IValidationContext context); + System.Threading.Tasks.Task ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.FluentValidation.IValidator<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidator : ServiceStack.FluentValidation.IValidator + { + ServiceStack.FluentValidation.CascadeMode CascadeMode { get; set; } + ServiceStack.FluentValidation.Results.ValidationResult Validate(T instance); + System.Threading.Tasks.Task ValidateAsync(T instance, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.FluentValidation.IValidatorDescriptor` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidatorDescriptor + { + System.Linq.ILookup GetMembersWithValidators(); + string GetName(string property); + System.Collections.Generic.IEnumerable GetRulesForMember(string name); + System.Collections.Generic.IEnumerable GetValidatorsForMember(string name); + } + + // Generated from `ServiceStack.FluentValidation.IValidatorFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidatorFactory + { + ServiceStack.FluentValidation.IValidator GetValidator(System.Type type); + ServiceStack.FluentValidation.IValidator GetValidator(); + } + + // Generated from `ServiceStack.FluentValidation.InlineValidator<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InlineValidator : ServiceStack.FluentValidation.AbstractValidator + { + public void Add(System.Func, ServiceStack.FluentValidation.IRuleBuilderOptions> ruleCreator) => throw null; + public InlineValidator() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.PropertyValidatorOptions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PropertyValidatorOptions + { + public void ApplyAsyncCondition(System.Func> condition) => throw null; + public void ApplyCondition(System.Func condition) => throw null; + public System.Func> AsyncCondition { get => throw null; set => throw null; } + public System.Func Condition { get => throw null; set => throw null; } + public System.Func CustomStateProvider { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public ServiceStack.FluentValidation.Resources.IStringSource ErrorCodeSource { get => throw null; set => throw null; } + public ServiceStack.FluentValidation.Resources.IStringSource ErrorMessageSource { get => throw null; set => throw null; } + protected virtual string GetDefaultMessageTemplate() => throw null; + public string GetErrorMessageTemplate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public bool HasAsyncCondition { get => throw null; } + public bool HasCondition { get => throw null; } + public PropertyValidatorOptions() => throw null; + public void SetErrorMessage(System.Func errorFactory) => throw null; + public void SetErrorMessage(string errorMessage) => throw null; + public System.Func SeverityProvider { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Severity` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Severity + { + Error, + Info, + Warning, + } + + // Generated from `ServiceStack.FluentValidation.ValidationContext<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationContext : ServiceStack.FluentValidation.ICommonContext, ServiceStack.FluentValidation.IValidationContext + { + public ServiceStack.FluentValidation.ValidationContext CloneForChildCollectionValidator(TNew instanceToValidate, bool preserveParentContext = default(bool)) => throw null; + public ServiceStack.FluentValidation.ValidationContext CloneForChildValidator(TChild instanceToValidate, bool preserveParentContext = default(bool), ServiceStack.FluentValidation.Internal.IValidatorSelector selector = default(ServiceStack.FluentValidation.Internal.IValidatorSelector)) => throw null; + public static ServiceStack.FluentValidation.ValidationContext CreateWithOptions(T instanceToValidate, System.Action> options) => throw null; + public static ServiceStack.FluentValidation.ValidationContext GetFromNonGenericContext(ServiceStack.FluentValidation.IValidationContext context) => throw null; + public T InstanceToValidate { get => throw null; set => throw null; } + object ServiceStack.FluentValidation.ICommonContext.InstanceToValidate { get => throw null; } + public virtual bool IsChildCollectionContext { get => throw null; set => throw null; } + public virtual bool IsChildContext { get => throw null; set => throw null; } + ServiceStack.FluentValidation.ICommonContext ServiceStack.FluentValidation.ICommonContext.ParentContext { get => throw null; } + public ServiceStack.FluentValidation.Internal.PropertyChain PropertyChain { get => throw null; set => throw null; } + object ServiceStack.FluentValidation.ICommonContext.PropertyValue { get => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary RootContextData { get => throw null; set => throw null; } + public ServiceStack.FluentValidation.Internal.IValidatorSelector Selector { get => throw null; set => throw null; } + public bool ThrowOnFailures { get => throw null; set => throw null; } + public ValidationContext(T instanceToValidate) => throw null; + public ValidationContext(T instanceToValidate, ServiceStack.FluentValidation.Internal.PropertyChain propertyChain, ServiceStack.FluentValidation.Internal.IValidatorSelector validatorSelector) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.ValidationErrors` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ValidationErrors + { + public const string CreditCard = default; + public const string Email = default; + public const string Empty = default; + public const string Enum = default; + public const string Equal = default; + public const string ExclusiveBetween = default; + public const string GreaterThan = default; + public const string GreaterThanOrEqual = default; + public const string InclusiveBetween = default; + public const string Length = default; + public const string LessThan = default; + public const string LessThanOrEqual = default; + public const string NotEmpty = default; + public const string NotEqual = default; + public const string NotNull = default; + public const string Null = default; + public const string Predicate = default; + public const string RegularExpression = default; + public const string ScalePrecision = default; + } + + // Generated from `ServiceStack.FluentValidation.ValidationException` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationException : System.Exception, ServiceStack.Model.IResponseStatusConvertible + { + public System.Collections.Generic.IEnumerable Errors { get => throw null; set => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public ServiceStack.ResponseStatus ToResponseStatus() => throw null; + public ValidationException(System.Collections.Generic.IEnumerable errors) => throw null; + public ValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public ValidationException(string message) => throw null; + public ValidationException(string message, System.Collections.Generic.IEnumerable errors) => throw null; + public ValidationException(string message, System.Collections.Generic.IEnumerable errors, bool appendDefaultMessage) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.ValidatorConfiguration` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidatorConfiguration + { + public ServiceStack.FluentValidation.CascadeMode CascadeMode { get => throw null; set => throw null; } + public bool DisableAccessorCache { get => throw null; set => throw null; } + public System.Func DisplayNameResolver { get => throw null; set => throw null; } + public System.Func ErrorCodeResolver { get => throw null; set => throw null; } + public ServiceStack.FluentValidation.Resources.ILanguageManager LanguageManager { get => throw null; set => throw null; } + public System.Func MessageFormatterFactory { get => throw null; set => throw null; } + public string PropertyChainSeparator { get => throw null; set => throw null; } + public System.Func PropertyNameResolver { get => throw null; set => throw null; } + public ValidatorConfiguration() => throw null; + public ServiceStack.FluentValidation.ValidatorSelectorOptions ValidatorSelectors { get => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.ValidatorDescriptor<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidatorDescriptor : ServiceStack.FluentValidation.IValidatorDescriptor + { + // Generated from `ServiceStack.FluentValidation.ValidatorDescriptor<>+RulesetMetadata` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RulesetMetadata + { + public string Name { get => throw null; set => throw null; } + public System.Collections.Generic.IEnumerable Rules { get => throw null; set => throw null; } + public RulesetMetadata(string name, System.Collections.Generic.IEnumerable rules) => throw null; + } + + + public virtual System.Linq.ILookup GetMembersWithValidators() => throw null; + public virtual string GetName(System.Linq.Expressions.Expression> propertyExpression) => throw null; + public virtual string GetName(string property) => throw null; + public System.Collections.Generic.IEnumerable.RulesetMetadata> GetRulesByRuleset() => throw null; + public System.Collections.Generic.IEnumerable GetRulesForMember(string name) => throw null; + public System.Collections.Generic.IEnumerable GetValidatorsForMember(string name) => throw null; + public System.Collections.Generic.IEnumerable GetValidatorsForMember(ServiceStack.FluentValidation.Internal.MemberAccessor accessor) => throw null; + protected System.Collections.Generic.IEnumerable Rules { get => throw null; set => throw null; } + public ValidatorDescriptor(System.Collections.Generic.IEnumerable ruleBuilders) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.ValidatorFactoryBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ValidatorFactoryBase : ServiceStack.FluentValidation.IValidatorFactory + { + public abstract ServiceStack.FluentValidation.IValidator CreateInstance(System.Type validatorType); + public ServiceStack.FluentValidation.IValidator GetValidator(System.Type type) => throw null; + public ServiceStack.FluentValidation.IValidator GetValidator() => throw null; + protected ValidatorFactoryBase() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.ValidatorOptions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ValidatorOptions + { + public static ServiceStack.FluentValidation.CascadeMode CascadeMode { get => throw null; set => throw null; } + public static bool DisableAccessorCache { get => throw null; set => throw null; } + public static System.Func DisplayNameResolver { get => throw null; set => throw null; } + public static System.Func ErrorCodeResolver { get => throw null; set => throw null; } + public static ServiceStack.FluentValidation.ValidatorConfiguration Global { get => throw null; } + public static ServiceStack.FluentValidation.Resources.ILanguageManager LanguageManager { get => throw null; set => throw null; } + public static System.Func MessageFormatterFactory { get => throw null; set => throw null; } + public static string PropertyChainSeparator { get => throw null; set => throw null; } + public static System.Func PropertyNameResolver { get => throw null; set => throw null; } + public static ServiceStack.FluentValidation.ValidatorSelectorOptions ValidatorSelectors { get => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.ValidatorSelectorOptions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidatorSelectorOptions + { + public System.Func DefaultValidatorSelectorFactory { get => throw null; set => throw null; } + public System.Func MemberNameValidatorSelectorFactory { get => throw null; set => throw null; } + public System.Func RulesetValidatorSelectorFactory { get => throw null; set => throw null; } + public ValidatorSelectorOptions() => throw null; + } + + namespace Attributes + { + // Generated from `ServiceStack.FluentValidation.Attributes.AttributedValidatorFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AttributedValidatorFactory : ServiceStack.FluentValidation.IParameterValidatorFactory, ServiceStack.FluentValidation.IValidatorFactory + { + public AttributedValidatorFactory() => throw null; + public AttributedValidatorFactory(System.Func instanceFactory) => throw null; + public virtual ServiceStack.FluentValidation.IValidator GetValidator(System.Reflection.ParameterInfo parameterInfo) => throw null; + public virtual ServiceStack.FluentValidation.IValidator GetValidator(System.Type type) => throw null; + public ServiceStack.FluentValidation.IValidator GetValidator() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Attributes.ValidatorAttribute` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidatorAttribute : System.Attribute + { + public ValidatorAttribute(System.Type validatorType) => throw null; + public System.Type ValidatorType { get => throw null; } + } + + } + namespace Internal + { + // Generated from `ServiceStack.FluentValidation.Internal.AccessorCache<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AccessorCache + { + public static void Clear() => throw null; + public static System.Func GetCachedAccessor(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression> expression, bool bypassCache = default(bool)) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.CollectionPropertyRule<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CollectionPropertyRule : ServiceStack.FluentValidation.Internal.PropertyRule + { + public CollectionPropertyRule(System.Reflection.MemberInfo member, System.Func propertyFunc, System.Linq.Expressions.LambdaExpression expression, System.Func cascadeModeThunk, System.Type typeToValidate, System.Type containerType) : base(default(System.Reflection.MemberInfo), default(System.Func), default(System.Linq.Expressions.LambdaExpression), default(System.Func), default(System.Type), default(System.Type)) => throw null; + public static ServiceStack.FluentValidation.Internal.CollectionPropertyRule Create(System.Linq.Expressions.Expression>> expression, System.Func cascadeModeThunk) => throw null; + public System.Func Filter { get => throw null; set => throw null; } + public System.Func, TElement, int, string> IndexBuilder { get => throw null; set => throw null; } + protected override System.Collections.Generic.IEnumerable InvokePropertyValidator(ServiceStack.FluentValidation.IValidationContext context, ServiceStack.FluentValidation.Validators.IPropertyValidator validator, string propertyName) => throw null; + protected override System.Threading.Tasks.Task> InvokePropertyValidatorAsync(ServiceStack.FluentValidation.IValidationContext context, ServiceStack.FluentValidation.Validators.IPropertyValidator validator, string propertyName, System.Threading.CancellationToken cancellation) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.Comparer` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Comparer + { + public static int GetComparisonResult(System.IComparable value, System.IComparable valueToCompare) => throw null; + public static bool GetEqualsResult(System.IComparable value, System.IComparable valueToCompare) => throw null; + public static bool TryCompare(System.IComparable value, System.IComparable valueToCompare, out int result) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.DefaultValidatorSelector` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultValidatorSelector : ServiceStack.FluentValidation.Internal.IValidatorSelector + { + public bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context) => throw null; + public DefaultValidatorSelector() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.Extensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Extensions + { + public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; + public static System.Action CoerceToNonGeneric(this System.Action action) => throw null; + public static System.Func> CoerceToNonGeneric(this System.Func> func) => throw null; + public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; + public static System.Func> CoerceToNonGeneric(this System.Func> func) => throw null; + public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; + public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; + public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; + public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; + public static System.Reflection.MemberInfo GetMember(this System.Linq.Expressions.LambdaExpression expression) => throw null; + public static System.Reflection.MemberInfo GetMember(this System.Linq.Expressions.Expression> expression) => throw null; + public static bool IsAsync(this ServiceStack.FluentValidation.IValidationContext ctx) => throw null; + public static bool IsParameterExpression(this System.Linq.Expressions.LambdaExpression expression) => throw null; + public static string SplitPascalCase(this string input) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.IConfigurable<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IConfigurable + { + TNext Configure(System.Action configurator); + } + + // Generated from `ServiceStack.FluentValidation.Internal.IExposesParentValidator<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + internal interface IExposesParentValidator + { + } + + // Generated from `ServiceStack.FluentValidation.Internal.IIncludeRule` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IIncludeRule + { + } + + // Generated from `ServiceStack.FluentValidation.Internal.IValidatorSelector` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidatorSelector + { + bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context); + } + + // Generated from `ServiceStack.FluentValidation.Internal.IncludeRule<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IncludeRule : ServiceStack.FluentValidation.Internal.PropertyRule, ServiceStack.FluentValidation.Internal.IIncludeRule + { + public static ServiceStack.FluentValidation.Internal.IncludeRule Create(ServiceStack.FluentValidation.IValidator validator, System.Func cascadeModeThunk) => throw null; + public static ServiceStack.FluentValidation.Internal.IncludeRule Create(System.Func func, System.Func cascadeModeThunk) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; + public IncludeRule(System.Func> func, System.Func cascadeModeThunk, System.Type typeToValidate, System.Type containerType, System.Type validatorType) : base(default(System.Reflection.MemberInfo), default(System.Func), default(System.Linq.Expressions.LambdaExpression), default(System.Func), default(System.Type), default(System.Type)) => throw null; + public IncludeRule(ServiceStack.FluentValidation.IValidator validator, System.Func cascadeModeThunk, System.Type typeToValidate, System.Type containerType) : base(default(System.Reflection.MemberInfo), default(System.Func), default(System.Linq.Expressions.LambdaExpression), default(System.Func), default(System.Type), default(System.Type)) => throw null; + public override System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.IValidationContext context) => throw null; + public override System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.MemberAccessor<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MemberAccessor + { + protected bool Equals(ServiceStack.FluentValidation.Internal.MemberAccessor other) => throw null; + public override bool Equals(object obj) => throw null; + public TValue Get(TObject target) => throw null; + public override int GetHashCode() => throw null; + public System.Reflection.MemberInfo Member { get => throw null; set => throw null; } + public MemberAccessor(System.Linq.Expressions.Expression> getExpression, bool writeable) => throw null; + public void Set(TObject target, TValue value) => throw null; + public static implicit operator ServiceStack.FluentValidation.Internal.MemberAccessor(System.Linq.Expressions.Expression> @this) => throw null; + public static implicit operator System.Linq.Expressions.Expression>(ServiceStack.FluentValidation.Internal.MemberAccessor @this) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.MemberNameValidatorSelector` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MemberNameValidatorSelector : ServiceStack.FluentValidation.Internal.IValidatorSelector + { + public bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context) => throw null; + public static ServiceStack.FluentValidation.Internal.MemberNameValidatorSelector FromExpressions(params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; + public MemberNameValidatorSelector(System.Collections.Generic.IEnumerable memberNames) => throw null; + public System.Collections.Generic.IEnumerable MemberNames { get => throw null; } + public static string[] MemberNamesFromExpressions(params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.MessageBuilderContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MessageBuilderContext : ServiceStack.FluentValidation.ICommonContext + { + public string DisplayName { get => throw null; } + public ServiceStack.FluentValidation.Resources.IStringSource ErrorSource { get => throw null; } + public string GetDefaultMessage() => throw null; + public object InstanceToValidate { get => throw null; } + public MessageBuilderContext(ServiceStack.FluentValidation.Validators.PropertyValidatorContext innerContext, ServiceStack.FluentValidation.Validators.IPropertyValidator propertyValidator) => throw null; + public MessageBuilderContext(ServiceStack.FluentValidation.Validators.PropertyValidatorContext innerContext, ServiceStack.FluentValidation.Resources.IStringSource errorSource, ServiceStack.FluentValidation.Validators.IPropertyValidator propertyValidator) => throw null; + public ServiceStack.FluentValidation.Internal.MessageFormatter MessageFormatter { get => throw null; } + public ServiceStack.FluentValidation.IValidationContext ParentContext { get => throw null; } + ServiceStack.FluentValidation.ICommonContext ServiceStack.FluentValidation.ICommonContext.ParentContext { get => throw null; } + public string PropertyName { get => throw null; } + public ServiceStack.FluentValidation.Validators.IPropertyValidator PropertyValidator { get => throw null; } + public object PropertyValue { get => throw null; } + public ServiceStack.FluentValidation.Internal.PropertyRule Rule { get => throw null; } + public static implicit operator ServiceStack.FluentValidation.Validators.PropertyValidatorContext(ServiceStack.FluentValidation.Internal.MessageBuilderContext ctx) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.MessageFormatter` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MessageFormatter + { + public object[] AdditionalArguments { get => throw null; } + public ServiceStack.FluentValidation.Internal.MessageFormatter AppendAdditionalArguments(params object[] additionalArgs) => throw null; + public ServiceStack.FluentValidation.Internal.MessageFormatter AppendArgument(string name, object value) => throw null; + public ServiceStack.FluentValidation.Internal.MessageFormatter AppendPropertyName(string name) => throw null; + public ServiceStack.FluentValidation.Internal.MessageFormatter AppendPropertyValue(object value) => throw null; + public virtual string BuildMessage(string messageTemplate) => throw null; + public MessageFormatter() => throw null; + public System.Collections.Generic.Dictionary PlaceholderValues { get => throw null; } + public const string PropertyName = default; + public const string PropertyValue = default; + protected virtual string ReplacePlaceholdersWithValues(string template, System.Collections.Generic.IDictionary values) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.PropertyChain` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PropertyChain + { + public void Add(System.Reflection.MemberInfo member) => throw null; + public void Add(string propertyName) => throw null; + public void AddIndexer(object indexer, bool surroundWithBrackets = default(bool)) => throw null; + public string BuildPropertyName(string propertyName) => throw null; + public int Count { get => throw null; } + public static ServiceStack.FluentValidation.Internal.PropertyChain FromExpression(System.Linq.Expressions.LambdaExpression expression) => throw null; + public bool IsChildChainOf(ServiceStack.FluentValidation.Internal.PropertyChain parentChain) => throw null; + public PropertyChain() => throw null; + public PropertyChain(System.Collections.Generic.IEnumerable memberNames) => throw null; + public PropertyChain(ServiceStack.FluentValidation.Internal.PropertyChain parent) => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.PropertyRule` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PropertyRule : ServiceStack.FluentValidation.IValidationRule + { + public void AddValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator validator) => throw null; + public void ApplyAsyncCondition(System.Func> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public void ApplyCondition(System.Func predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; + public void ApplySharedAsyncCondition(System.Func> condition) => throw null; + public void ApplySharedCondition(System.Func condition) => throw null; + public System.Func> AsyncCondition { get => throw null; } + public ServiceStack.FluentValidation.CascadeMode CascadeMode { get => throw null; set => throw null; } + public void ClearValidators() => throw null; + public System.Func Condition { get => throw null; } + public static ServiceStack.FluentValidation.Internal.PropertyRule Create(System.Linq.Expressions.Expression> expression) => throw null; + public static ServiceStack.FluentValidation.Internal.PropertyRule Create(System.Linq.Expressions.Expression> expression, System.Func cascadeModeThunk, bool bypassCache = default(bool)) => throw null; + public ServiceStack.FluentValidation.Validators.IPropertyValidator CurrentValidator { get => throw null; } + public System.Collections.Generic.List DependentRules { get => throw null; } + public ServiceStack.FluentValidation.Resources.IStringSource DisplayName { get => throw null; set => throw null; } + public System.Linq.Expressions.LambdaExpression Expression { get => throw null; } + public string GetDisplayName() => throw null; + public string GetDisplayName(ServiceStack.FluentValidation.ICommonContext context) => throw null; + public bool HasAsyncCondition { get => throw null; } + public bool HasCondition { get => throw null; } + protected virtual System.Collections.Generic.IEnumerable InvokePropertyValidator(ServiceStack.FluentValidation.IValidationContext context, ServiceStack.FluentValidation.Validators.IPropertyValidator validator, string propertyName) => throw null; + protected virtual System.Threading.Tasks.Task> InvokePropertyValidatorAsync(ServiceStack.FluentValidation.IValidationContext context, ServiceStack.FluentValidation.Validators.IPropertyValidator validator, string propertyName, System.Threading.CancellationToken cancellation) => throw null; + public System.Reflection.MemberInfo Member { get => throw null; } + public System.Func MessageBuilder { get => throw null; set => throw null; } + public System.Action> OnFailure { get => throw null; set => throw null; } + public System.Func PropertyFunc { get => throw null; } + public string PropertyName { get => throw null; set => throw null; } + public PropertyRule(System.Reflection.MemberInfo member, System.Func propertyFunc, System.Linq.Expressions.LambdaExpression expression, System.Func cascadeModeThunk, System.Type typeToValidate, System.Type containerType) => throw null; + public void RemoveValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator original) => throw null; + public void ReplaceValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator original, ServiceStack.FluentValidation.Validators.IPropertyValidator newValidator) => throw null; + public string[] RuleSets { get => throw null; set => throw null; } + public void SetDisplayName(System.Func factory) => throw null; + public void SetDisplayName(string name) => throw null; + public System.Func Transformer { get => throw null; set => throw null; } + public System.Type TypeToValidate { get => throw null; } + public virtual System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.IValidationContext context) => throw null; + public virtual System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation) => throw null; + public System.Collections.Generic.IEnumerable Validators { get => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Internal.RuleBuilder<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RuleBuilder : ServiceStack.FluentValidation.IRuleBuilder, ServiceStack.FluentValidation.IRuleBuilderInitial, ServiceStack.FluentValidation.IRuleBuilderInitialCollection, ServiceStack.FluentValidation.IRuleBuilderOptions, ServiceStack.FluentValidation.Internal.IConfigurable, ServiceStack.FluentValidation.IRuleBuilderInitialCollection>, ServiceStack.FluentValidation.Internal.IConfigurable>, ServiceStack.FluentValidation.Internal.IConfigurable> + { + ServiceStack.FluentValidation.IRuleBuilderInitialCollection ServiceStack.FluentValidation.Internal.IConfigurable, ServiceStack.FluentValidation.IRuleBuilderInitialCollection>.Configure(System.Action> configurator) => throw null; + ServiceStack.FluentValidation.IRuleBuilderInitial ServiceStack.FluentValidation.Internal.IConfigurable>.Configure(System.Action configurator) => throw null; + ServiceStack.FluentValidation.IRuleBuilderOptions ServiceStack.FluentValidation.Internal.IConfigurable>.Configure(System.Action configurator) => throw null; + public ServiceStack.FluentValidation.IValidator ParentValidator { get => throw null; } + public ServiceStack.FluentValidation.Internal.PropertyRule Rule { get => throw null; } + public RuleBuilder(ServiceStack.FluentValidation.Internal.PropertyRule rule, ServiceStack.FluentValidation.IValidator parent) => throw null; + public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator validator) => throw null; + public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(ServiceStack.FluentValidation.IValidator validator, params string[] ruleSets) => throw null; + public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; + public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider, params string[] ruleSets) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; + public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider, params string[] ruleSets) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; + public ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Func transformationFunc) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Internal.RulesetValidatorSelector` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RulesetValidatorSelector : ServiceStack.FluentValidation.Internal.IValidatorSelector + { + public virtual bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context) => throw null; + public const string DefaultRuleSetName = default; + protected bool IsIncludeRule(ServiceStack.FluentValidation.IValidationRule rule) => throw null; + public string[] RuleSets { get => throw null; } + public RulesetValidatorSelector(params string[] rulesetsToExecute) => throw null; + public const string WildcardRuleSetName = default; + } + + // Generated from `ServiceStack.FluentValidation.Internal.ValidationStrategy<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationStrategy + { + public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeAllRuleSets() => throw null; + public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeProperties(params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; + public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeProperties(params string[] properties) => throw null; + public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeRuleSets(params string[] ruleSets) => throw null; + public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeRulesNotInRuleSet() => throw null; + public ServiceStack.FluentValidation.Internal.ValidationStrategy ThrowOnFailures() => throw null; + public ServiceStack.FluentValidation.Internal.ValidationStrategy UseCustomSelector(ServiceStack.FluentValidation.Internal.IValidatorSelector selector) => throw null; + } + + } + namespace Resources + { + // Generated from `ServiceStack.FluentValidation.Resources.FluentValidationMessageFormatException` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FluentValidationMessageFormatException : System.Exception + { + public FluentValidationMessageFormatException(string message) => throw null; + public FluentValidationMessageFormatException(string message, System.Exception innerException) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Resources.IContextAwareStringSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IContextAwareStringSource + { + } + + // Generated from `ServiceStack.FluentValidation.Resources.ILanguageManager` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILanguageManager + { + System.Globalization.CultureInfo Culture { get; set; } + bool Enabled { get; set; } + string GetString(string key, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)); + } + + // Generated from `ServiceStack.FluentValidation.Resources.IStringSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IStringSource + { + string GetString(ServiceStack.FluentValidation.ICommonContext context); + } + + // Generated from `ServiceStack.FluentValidation.Resources.Language` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class Language + { + public virtual string GetTranslation(string key) => throw null; + protected Language() => throw null; + public abstract string Name { get; } + public virtual void Translate(string key, string message) => throw null; + public void Translate(string message) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Resources.LanguageManager` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LanguageManager : ServiceStack.FluentValidation.Resources.ILanguageManager + { + public void AddTranslation(string language, string key, string message) => throw null; + public void Clear() => throw null; + public System.Globalization.CultureInfo Culture { get => throw null; set => throw null; } + public bool Enabled { get => throw null; set => throw null; } + public virtual string GetString(string key, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; + public LanguageManager() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Resources.LanguageStringSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LanguageStringSource : ServiceStack.FluentValidation.Resources.IStringSource + { + public virtual string GetString(ServiceStack.FluentValidation.ICommonContext context) => throw null; + public LanguageStringSource(System.Func errorCodeFunc, string fallbackKey) => throw null; + public LanguageStringSource(string key) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Resources.LazyStringSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LazyStringSource : ServiceStack.FluentValidation.Resources.IStringSource + { + public string GetString(ServiceStack.FluentValidation.ICommonContext context) => throw null; + public LazyStringSource(System.Func stringProvider) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Resources.StaticStringSource` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StaticStringSource : ServiceStack.FluentValidation.Resources.IStringSource + { + public string GetString(ServiceStack.FluentValidation.ICommonContext context) => throw null; + public StaticStringSource(string message) => throw null; + } + + } + namespace Results + { + // Generated from `ServiceStack.FluentValidation.Results.ValidationFailure` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationFailure + { + public object AttemptedValue { get => throw null; set => throw null; } + public object CustomState { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary ErrorCodeAliases; + public static System.Func ErrorCodeResolver { get => throw null; set => throw null; } + public string ErrorMessage { get => throw null; set => throw null; } + public object[] FormattedMessageArguments { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary FormattedMessagePlaceholderValues { get => throw null; set => throw null; } + public string PropertyName { get => throw null; set => throw null; } + public static string ServiceStackErrorCodeResolver(string errorCode) => throw null; + public ServiceStack.FluentValidation.Severity Severity { get => throw null; set => throw null; } + public override string ToString() => throw null; + public ValidationFailure(string propertyName, string errorMessage) => throw null; + public ValidationFailure(string propertyName, string errorMessage, object attemptedValue) => throw null; + public ValidationFailure(string propertyName, string error, object attemptedValue, string errorCode) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Results.ValidationResult` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationResult + { + public System.Collections.Generic.IList Errors { get => throw null; } + public virtual bool IsValid { get => throw null; } + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public string[] RuleSetsExecuted { get => throw null; set => throw null; } + public override string ToString() => throw null; + public string ToString(string separator) => throw null; + public ValidationResult() => throw null; + public ValidationResult(System.Collections.Generic.IEnumerable failures) => throw null; + } + + } + namespace TestHelper + { + // Generated from `ServiceStack.FluentValidation.TestHelper.ITestPropertyChain<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITestPropertyChain + { + ServiceStack.FluentValidation.TestHelper.ITestPropertyChain Property(System.Linq.Expressions.Expression> memberAccessor); + System.Collections.Generic.IEnumerable ShouldHaveValidationError(); + void ShouldNotHaveValidationError(); + } + + // Generated from `ServiceStack.FluentValidation.TestHelper.IValidationResultTester` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IValidationResultTester + { + System.Collections.Generic.IEnumerable ShouldHaveValidationError(System.Collections.Generic.IEnumerable properties); + void ShouldNotHaveValidationError(System.Collections.Generic.IEnumerable properties); + } + + // Generated from `ServiceStack.FluentValidation.TestHelper.TestValidationResult<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TestValidationResult : ServiceStack.FluentValidation.Results.ValidationResult where T : class + { + public System.Collections.Generic.IEnumerable ShouldHaveValidationErrorFor(string propertyName) => throw null; + public System.Collections.Generic.IEnumerable ShouldHaveValidationErrorFor(System.Linq.Expressions.Expression> memberAccessor) => throw null; + public void ShouldNotHaveValidationErrorFor(string propertyName) => throw null; + public void ShouldNotHaveValidationErrorFor(System.Linq.Expressions.Expression> memberAccessor) => throw null; + public TestValidationResult(ServiceStack.FluentValidation.Results.ValidationResult validationResult) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.TestHelper.ValidationTestException` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationTestException : System.Exception + { + public System.Collections.Generic.List Errors { get => throw null; } + public ValidationTestException(string message) => throw null; + public ValidationTestException(string message, System.Collections.Generic.List errors) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.TestHelper.ValidationTestExtension` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ValidationTestExtension + { + public static System.Collections.Generic.IEnumerable ShouldHaveAnyValidationError(this ServiceStack.FluentValidation.TestHelper.TestValidationResult testValidationResult) where T : class => throw null; + public static void ShouldHaveChildValidator(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, System.Type childValidatorType) => throw null; + public static System.Collections.Generic.IEnumerable ShouldHaveValidationErrorFor(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, T objectToTest, string ruleSet = default(string)) where T : class => throw null; + public static System.Collections.Generic.IEnumerable ShouldHaveValidationErrorFor(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, TValue value, string ruleSet = default(string)) where T : class, new() => throw null; + public static System.Threading.Tasks.Task> ShouldHaveValidationErrorForAsync(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, T objectToTest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class => throw null; + public static System.Threading.Tasks.Task> ShouldHaveValidationErrorForAsync(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, TValue value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class, new() => throw null; + public static void ShouldNotHaveAnyValidationErrors(this ServiceStack.FluentValidation.TestHelper.TestValidationResult testValidationResult) where T : class => throw null; + public static void ShouldNotHaveValidationErrorFor(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, T objectToTest, string ruleSet = default(string)) where T : class => throw null; + public static void ShouldNotHaveValidationErrorFor(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, TValue value, string ruleSet = default(string)) where T : class, new() => throw null; + public static System.Threading.Tasks.Task ShouldNotHaveValidationErrorForAsync(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, T objectToTest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class => throw null; + public static System.Threading.Tasks.Task ShouldNotHaveValidationErrorForAsync(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, TValue value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class, new() => throw null; + public static ServiceStack.FluentValidation.TestHelper.TestValidationResult TestValidate(this ServiceStack.FluentValidation.IValidator validator, T objectToTest, System.Action> options) where T : class => throw null; + public static ServiceStack.FluentValidation.TestHelper.TestValidationResult TestValidate(this ServiceStack.FluentValidation.IValidator validator, T objectToTest, string ruleSet = default(string)) where T : class => throw null; + public static System.Threading.Tasks.Task> TestValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T objectToTest, System.Action> options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class => throw null; + public static System.Threading.Tasks.Task> TestValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T objectToTest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class => throw null; + public static System.Collections.Generic.IEnumerable When(this System.Collections.Generic.IEnumerable failures, System.Func failurePredicate, string exceptionMessage = default(string)) => throw null; + public static System.Collections.Generic.IEnumerable WhenAll(this System.Collections.Generic.IEnumerable failures, System.Func failurePredicate, string exceptionMessage = default(string)) => throw null; + public static System.Collections.Generic.IEnumerable WithCustomState(this System.Collections.Generic.IEnumerable failures, object expectedCustomState) => throw null; + public static System.Collections.Generic.IEnumerable WithErrorCode(this System.Collections.Generic.IEnumerable failures, string expectedErrorCode) => throw null; + public static System.Collections.Generic.IEnumerable WithErrorMessage(this System.Collections.Generic.IEnumerable failures, string expectedErrorMessage) => throw null; + public static System.Collections.Generic.IEnumerable WithMessageArgument(this System.Collections.Generic.IEnumerable failures, string argumentKey, T argumentValue) => throw null; + public static System.Collections.Generic.IEnumerable WithSeverity(this System.Collections.Generic.IEnumerable failures, ServiceStack.FluentValidation.Severity expectedSeverity) => throw null; + public static System.Collections.Generic.IEnumerable WithoutCustomState(this System.Collections.Generic.IEnumerable failures, object unexpectedCustomState) => throw null; + public static System.Collections.Generic.IEnumerable WithoutErrorCode(this System.Collections.Generic.IEnumerable failures, string unexpectedErrorCode) => throw null; + public static System.Collections.Generic.IEnumerable WithoutErrorMessage(this System.Collections.Generic.IEnumerable failures, string unexpectedErrorMessage) => throw null; + public static System.Collections.Generic.IEnumerable WithoutSeverity(this System.Collections.Generic.IEnumerable failures, ServiceStack.FluentValidation.Severity unexpectedSeverity) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.TestHelper.ValidatorTester<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidatorTester where T : class + { + public void ValidateError(T instanceToValidate) => throw null; + public void ValidateNoError(T instanceToValidate) => throw null; + public ValidatorTester(System.Linq.Expressions.Expression> expression, ServiceStack.FluentValidation.IValidator validator, TValue value) => throw null; + } + + } + namespace Validators + { + // Generated from `ServiceStack.FluentValidation.Validators.AbstractComparisonValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AbstractComparisonValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IComparisonValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + protected AbstractComparisonValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) => throw null; + protected AbstractComparisonValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName, ServiceStack.FluentValidation.Resources.IStringSource errorSource) => throw null; + protected AbstractComparisonValidator(System.IComparable value) => throw null; + protected AbstractComparisonValidator(System.IComparable value, ServiceStack.FluentValidation.Resources.IStringSource errorSource) => throw null; + public abstract ServiceStack.FluentValidation.Validators.Comparison Comparison { get; } + public System.IComparable GetComparableValue(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, object value) => throw null; + public System.IComparable GetComparisonValue(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public abstract bool IsValid(System.IComparable value, System.IComparable valueToCompare); + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public System.Reflection.MemberInfo MemberToCompare { get => throw null; set => throw null; } + public object ValueToCompare { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.AspNetCoreCompatibleEmailValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AspNetCoreCompatibleEmailValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IEmailValidator + { + public AspNetCoreCompatibleEmailValidator() => throw null; + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.AsyncPredicateValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AsyncPredicateValidator : ServiceStack.FluentValidation.Validators.PropertyValidator + { + public AsyncPredicateValidator(System.Func> predicate) => throw null; + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + protected override System.Threading.Tasks.Task IsValidAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; + public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.AsyncValidatorBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AsyncValidatorBase : ServiceStack.FluentValidation.Validators.PropertyValidator + { + protected AsyncValidatorBase() => throw null; + protected AsyncValidatorBase(ServiceStack.FluentValidation.Resources.IStringSource errorSource) => throw null; + protected AsyncValidatorBase(string errorMessage) => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + protected abstract override System.Threading.Tasks.Task IsValidAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation); + public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.ChildValidatorAdaptor<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ChildValidatorAdaptor : ServiceStack.FluentValidation.Validators.NoopPropertyValidator, ServiceStack.FluentValidation.Validators.IChildValidatorAdaptor + { + public ChildValidatorAdaptor(System.Func> validatorProvider, System.Type validatorType) => throw null; + public ChildValidatorAdaptor(ServiceStack.FluentValidation.IValidator validator, System.Type validatorType) => throw null; + protected virtual ServiceStack.FluentValidation.IValidationContext CreateNewValidationContextForChildValidator(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, ServiceStack.FluentValidation.IValidator validator) => throw null; + protected ServiceStack.FluentValidation.IValidationContext CreateNewValidationContextForChildValidator(object instanceToValidate, ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public virtual ServiceStack.FluentValidation.IValidator GetValidator(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public string[] RuleSets { get => throw null; set => throw null; } + public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; + public override System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public override System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; + public System.Type ValidatorType { get => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.Comparison` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum Comparison + { + Equal, + GreaterThan, + GreaterThanOrEqual, + LessThan, + LessThanOrEqual, + NotEqual, + } + + // Generated from `ServiceStack.FluentValidation.Validators.CreditCardValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CreditCardValidator : ServiceStack.FluentValidation.Validators.PropertyValidator + { + public CreditCardValidator() => throw null; + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.CustomContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomContext : ServiceStack.FluentValidation.ICommonContext + { + public void AddFailure(ServiceStack.FluentValidation.Results.ValidationFailure failure) => throw null; + public void AddFailure(string errorMessage) => throw null; + public void AddFailure(string propertyName, string errorMessage) => throw null; + public CustomContext(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public string DisplayName { get => throw null; } + public object InstanceToValidate { get => throw null; } + public ServiceStack.FluentValidation.Internal.MessageFormatter MessageFormatter { get => throw null; } + public ServiceStack.FluentValidation.IValidationContext ParentContext { get => throw null; } + ServiceStack.FluentValidation.ICommonContext ServiceStack.FluentValidation.ICommonContext.ParentContext { get => throw null; } + public string PropertyName { get => throw null; } + public object PropertyValue { get => throw null; } + public ServiceStack.FluentValidation.Internal.PropertyRule Rule { get => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.CustomValidator<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomValidator : ServiceStack.FluentValidation.Validators.PropertyValidator + { + public CustomValidator(System.Action action) => throw null; + public CustomValidator(System.Func asyncAction) => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; + public override System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public override System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.EmailValidationMode` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum EmailValidationMode + { + AspNetCoreCompatible, + Net4xRegex, + } + + // Generated from `ServiceStack.FluentValidation.Validators.EmailValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmailValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IEmailValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IRegularExpressionValidator + { + public EmailValidator() => throw null; + public string Expression { get => throw null; } + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.EmptyValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EmptyValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IEmptyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + public EmptyValidator(object defaultValueForType) => throw null; + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.EnumValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EnumValidator : ServiceStack.FluentValidation.Validators.PropertyValidator + { + public EnumValidator(System.Type enumType) => throw null; + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.EqualValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EqualValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IComparisonValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + protected bool Compare(object comparisonValue, object propertyValue) => throw null; + public ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } + public EqualValidator(System.Func comparisonProperty, System.Reflection.MemberInfo member, string memberDisplayName, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; + public EqualValidator(object valueToCompare, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public System.Reflection.MemberInfo MemberToCompare { get => throw null; set => throw null; } + public object ValueToCompare { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.ExactLengthValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ExactLengthValidator : ServiceStack.FluentValidation.Validators.LengthValidator + { + public ExactLengthValidator(System.Func length) : base(default(System.Func), default(System.Func)) => throw null; + public ExactLengthValidator(int length) : base(default(System.Func), default(System.Func)) => throw null; + protected override string GetDefaultMessageTemplate() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.ExclusiveBetweenValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ExclusiveBetweenValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IBetweenValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + public ExclusiveBetweenValidator(System.IComparable from, System.IComparable to) => throw null; + public System.IComparable From { get => throw null; } + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public System.IComparable To { get => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.GreaterThanOrEqualValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GreaterThanOrEqualValidator : ServiceStack.FluentValidation.Validators.AbstractComparisonValidator + { + public override ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } + protected override string GetDefaultMessageTemplate() => throw null; + public GreaterThanOrEqualValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) : base(default(System.IComparable)) => throw null; + public GreaterThanOrEqualValidator(System.IComparable value) : base(default(System.IComparable)) => throw null; + public override bool IsValid(System.IComparable value, System.IComparable valueToCompare) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.GreaterThanValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GreaterThanValidator : ServiceStack.FluentValidation.Validators.AbstractComparisonValidator + { + public override ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } + protected override string GetDefaultMessageTemplate() => throw null; + public GreaterThanValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) : base(default(System.IComparable)) => throw null; + public GreaterThanValidator(System.IComparable value) : base(default(System.IComparable)) => throw null; + public override bool IsValid(System.IComparable value, System.IComparable valueToCompare) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.IBetweenValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IBetweenValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + System.IComparable From { get; } + System.IComparable To { get; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.IChildValidatorAdaptor` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IChildValidatorAdaptor + { + System.Type ValidatorType { get; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.IComparisonValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IComparisonValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + ServiceStack.FluentValidation.Validators.Comparison Comparison { get; } + System.Reflection.MemberInfo MemberToCompare { get; } + object ValueToCompare { get; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.IEmailValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IEmailValidator + { + } + + // Generated from `ServiceStack.FluentValidation.Validators.IEmptyValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IEmptyValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + } + + // Generated from `ServiceStack.FluentValidation.Validators.ILengthValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILengthValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + int Max { get; } + int Min { get; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.INotEmptyValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface INotEmptyValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + } + + // Generated from `ServiceStack.FluentValidation.Validators.INotNullValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface INotNullValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + } + + // Generated from `ServiceStack.FluentValidation.Validators.INullValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface INullValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + } + + // Generated from `ServiceStack.FluentValidation.Validators.IPredicateValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPredicateValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + } + + // Generated from `ServiceStack.FluentValidation.Validators.IPropertyValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IPropertyValidator + { + ServiceStack.FluentValidation.PropertyValidatorOptions Options { get; } + bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context); + System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context); + System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation); + } + + // Generated from `ServiceStack.FluentValidation.Validators.IRegularExpressionValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRegularExpressionValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + string Expression { get; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.InclusiveBetweenValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InclusiveBetweenValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IBetweenValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + public System.IComparable From { get => throw null; } + protected override string GetDefaultMessageTemplate() => throw null; + public InclusiveBetweenValidator(System.IComparable from, System.IComparable to) => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public System.IComparable To { get => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.LengthValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LengthValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.ILengthValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public LengthValidator(System.Func min, System.Func max) => throw null; + public LengthValidator(int min, int max) => throw null; + public int Max { get => throw null; } + public System.Func MaxFunc { get => throw null; set => throw null; } + public int Min { get => throw null; } + public System.Func MinFunc { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.LessThanOrEqualValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LessThanOrEqualValidator : ServiceStack.FluentValidation.Validators.AbstractComparisonValidator + { + public override ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } + protected override string GetDefaultMessageTemplate() => throw null; + public override bool IsValid(System.IComparable value, System.IComparable valueToCompare) => throw null; + public LessThanOrEqualValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) : base(default(System.IComparable)) => throw null; + public LessThanOrEqualValidator(System.IComparable value) : base(default(System.IComparable)) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.LessThanValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LessThanValidator : ServiceStack.FluentValidation.Validators.AbstractComparisonValidator + { + public override ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } + protected override string GetDefaultMessageTemplate() => throw null; + public override bool IsValid(System.IComparable value, System.IComparable valueToCompare) => throw null; + public LessThanValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) : base(default(System.IComparable)) => throw null; + public LessThanValidator(System.IComparable value) : base(default(System.IComparable)) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.MaximumLengthValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MaximumLengthValidator : ServiceStack.FluentValidation.Validators.LengthValidator + { + protected override string GetDefaultMessageTemplate() => throw null; + public MaximumLengthValidator(System.Func max) : base(default(System.Func), default(System.Func)) => throw null; + public MaximumLengthValidator(int max) : base(default(System.Func), default(System.Func)) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.MinimumLengthValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MinimumLengthValidator : ServiceStack.FluentValidation.Validators.LengthValidator + { + protected override string GetDefaultMessageTemplate() => throw null; + public MinimumLengthValidator(System.Func min) : base(default(System.Func), default(System.Func)) => throw null; + public MinimumLengthValidator(int min) : base(default(System.Func), default(System.Func)) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.NoopPropertyValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class NoopPropertyValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator + { + protected NoopPropertyValidator() => throw null; + public ServiceStack.FluentValidation.PropertyValidatorOptions Options { get => throw null; } + public virtual bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; + public abstract System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context); + public virtual System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.NotEmptyValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NotEmptyValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.INotEmptyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public NotEmptyValidator(object defaultValueForType) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.NotEqualValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NotEqualValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IComparisonValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + protected bool Compare(object comparisonValue, object propertyValue) => throw null; + public ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public System.Reflection.MemberInfo MemberToCompare { get => throw null; set => throw null; } + public NotEqualValidator(System.Func func, System.Reflection.MemberInfo memberToCompare, string memberDisplayName, System.Collections.IEqualityComparer equalityComparer = default(System.Collections.IEqualityComparer)) => throw null; + public NotEqualValidator(object comparisonValue, System.Collections.IEqualityComparer equalityComparer = default(System.Collections.IEqualityComparer)) => throw null; + public object ValueToCompare { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.NotNullValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NotNullValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.INotNullValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public NotNullValidator() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.NullValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NullValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.INullValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public NullValidator() => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.OnFailureValidator<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OnFailureValidator : ServiceStack.FluentValidation.Validators.NoopPropertyValidator, ServiceStack.FluentValidation.Validators.IChildValidatorAdaptor + { + public OnFailureValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator innerValidator, System.Action onFailure) => throw null; + public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; + public override System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public override System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; + public System.Type ValidatorType { get => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.PolymorphicValidator<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PolymorphicValidator : ServiceStack.FluentValidation.Validators.ChildValidatorAdaptor + { + protected ServiceStack.FluentValidation.Validators.PolymorphicValidator Add(System.Type subclassType, ServiceStack.FluentValidation.IValidator validator, params string[] ruleSets) => throw null; + public ServiceStack.FluentValidation.Validators.PolymorphicValidator Add(System.Func> validatorFactory, params string[] ruleSets) where TDerived : TProperty => throw null; + public ServiceStack.FluentValidation.Validators.PolymorphicValidator Add(System.Func> validatorFactory, params string[] ruleSets) where TDerived : TProperty => throw null; + public ServiceStack.FluentValidation.Validators.PolymorphicValidator Add(ServiceStack.FluentValidation.IValidator derivedValidator, params string[] ruleSets) where TDerived : TProperty => throw null; + protected override ServiceStack.FluentValidation.IValidationContext CreateNewValidationContextForChildValidator(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, ServiceStack.FluentValidation.IValidator validator) => throw null; + public override ServiceStack.FluentValidation.IValidator GetValidator(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public PolymorphicValidator() : base(default(ServiceStack.FluentValidation.IValidator), default(System.Type)) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.PredicateValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PredicateValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPredicateValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + // Generated from `ServiceStack.FluentValidation.Validators.PredicateValidator+Predicate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate bool Predicate(object instanceToValidate, object propertyValue, ServiceStack.FluentValidation.Validators.PropertyValidatorContext propertyValidatorContext); + + + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public PredicateValidator(ServiceStack.FluentValidation.Validators.PredicateValidator.Predicate predicate) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.PropertyValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class PropertyValidator : ServiceStack.FluentValidation.PropertyValidatorOptions, ServiceStack.FluentValidation.Validators.IPropertyValidator + { + protected virtual ServiceStack.FluentValidation.Results.ValidationFailure CreateValidationError(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + protected abstract bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context); + protected virtual System.Threading.Tasks.Task IsValidAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; + protected string Localized(string fallbackKey) => throw null; + public ServiceStack.FluentValidation.PropertyValidatorOptions Options { get => throw null; } + protected virtual void PrepareMessageFormatterForValidationError(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + protected PropertyValidator() => throw null; + protected PropertyValidator(ServiceStack.FluentValidation.Resources.IStringSource errorMessageSource) => throw null; + protected PropertyValidator(string errorMessage) => throw null; + public virtual bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; + public virtual System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public virtual System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.PropertyValidatorContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PropertyValidatorContext : ServiceStack.FluentValidation.ICommonContext + { + public string DisplayName { get => throw null; } + public object InstanceToValidate { get => throw null; } + public ServiceStack.FluentValidation.Internal.MessageFormatter MessageFormatter { get => throw null; } + public ServiceStack.FluentValidation.IValidationContext ParentContext { get => throw null; set => throw null; } + ServiceStack.FluentValidation.ICommonContext ServiceStack.FluentValidation.ICommonContext.ParentContext { get => throw null; } + public string PropertyName { get => throw null; set => throw null; } + public PropertyValidatorContext(ServiceStack.FluentValidation.IValidationContext parentContext, ServiceStack.FluentValidation.Internal.PropertyRule rule, string propertyName) => throw null; + public PropertyValidatorContext(ServiceStack.FluentValidation.IValidationContext parentContext, ServiceStack.FluentValidation.Internal.PropertyRule rule, string propertyName, System.Lazy propertyValueAccessor) => throw null; + public PropertyValidatorContext(ServiceStack.FluentValidation.IValidationContext parentContext, ServiceStack.FluentValidation.Internal.PropertyRule rule, string propertyName, object propertyValue) => throw null; + public object PropertyValue { get => throw null; } + public ServiceStack.FluentValidation.Internal.PropertyRule Rule { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.FluentValidation.Validators.RegularExpressionValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RegularExpressionValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IRegularExpressionValidator + { + public string Expression { get => throw null; } + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public RegularExpressionValidator(System.Func regexFunc) => throw null; + public RegularExpressionValidator(System.Func expressionFunc) => throw null; + public RegularExpressionValidator(System.Func expression, System.Text.RegularExpressions.RegexOptions options) => throw null; + public RegularExpressionValidator(System.Text.RegularExpressions.Regex regex) => throw null; + public RegularExpressionValidator(string expression) => throw null; + public RegularExpressionValidator(string expression, System.Text.RegularExpressions.RegexOptions options) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.ScalePrecisionValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScalePrecisionValidator : ServiceStack.FluentValidation.Validators.PropertyValidator + { + protected override string GetDefaultMessageTemplate() => throw null; + public bool IgnoreTrailingZeros { get => throw null; set => throw null; } + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public int Precision { get => throw null; set => throw null; } + public int Scale { get => throw null; set => throw null; } + public ScalePrecisionValidator(int scale, int precision) => throw null; + } + + // Generated from `ServiceStack.FluentValidation.Validators.StringEnumValidator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringEnumValidator : ServiceStack.FluentValidation.Validators.PropertyValidator + { + protected override string GetDefaultMessageTemplate() => throw null; + protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; + public StringEnumValidator(System.Type enumType, bool caseSensitive) => throw null; + } + + } + } + namespace Formats + { + // Generated from `ServiceStack.Formats.CsvFormat` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvFormat : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public CsvFormat() => throw null; + public string Id { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; + } + + // Generated from `ServiceStack.Formats.HtmlFormat` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlFormat : ServiceStack.IPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string DefaultResolveTemplate(ServiceStack.Web.IRequest req) => throw null; + public HtmlFormat() => throw null; + public static string HtmlTitleFormat; + public static bool Humanize; + public string Id { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary PathTemplates { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public static string ReplaceTokens(string html, ServiceStack.Web.IRequest req) => throw null; + public System.Func ResolveTemplate { get => throw null; set => throw null; } + public System.Threading.Tasks.Task SerializeToStreamAsync(ServiceStack.Web.IRequest req, object response, System.IO.Stream outputStream) => throw null; + public static string TitleFormat; + } + + // Generated from `ServiceStack.Formats.XmlSerializerFormat` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlSerializerFormat : ServiceStack.IPlugin + { + public static object Deserialize(System.Type type, System.IO.Stream stream) => throw null; + public void Register(ServiceStack.IAppHost appHost) => throw null; + public static void Serialize(ServiceStack.Web.IRequest req, object response, System.IO.Stream stream) => throw null; + public XmlSerializerFormat() => throw null; + } + + } + namespace Host + { + // Generated from `ServiceStack.Host.ActionContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ActionContext + { + public ActionContext() => throw null; + public const string AnyAction = default; + public static string AnyFormatKey(string format, string requestDtoName) => throw null; + public static string AnyKey(string requestDtoName) => throw null; + public const string AnyMethod = default; + public string Id { get => throw null; set => throw null; } + public static string Key(string method, string requestDtoName) => throw null; + public ServiceStack.Web.IRequestFilterBase[] RequestFilters { get => throw null; set => throw null; } + public System.Type RequestType { get => throw null; set => throw null; } + public ServiceStack.Web.IResponseFilterBase[] ResponseFilters { get => throw null; set => throw null; } + public ServiceStack.Host.ActionInvokerFn ServiceAction { get => throw null; set => throw null; } + public System.Type ServiceType { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.ActionInvokerFn` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ActionInvokerFn(object instance, object request); + + // Generated from `ServiceStack.Host.ActionMethod` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ActionMethod + { + public ActionMethod(System.Reflection.MethodInfo methodInfo) => throw null; + public object[] AllAttributes() => throw null; + public T[] AllAttributes() => throw null; + public const string Async = default; + public const string AsyncUpper = default; + public object[] GetCustomAttributes(bool inherit) => throw null; + public System.Reflection.ParameterInfo[] GetParameters() => throw null; + public bool IsAsync { get => throw null; } + public bool IsGenericMethod { get => throw null; } + public System.Reflection.MethodInfo MethodInfo { get => throw null; } + public string Name { get => throw null; } + public string NameUpper { get => throw null; } + public System.Type RequestType { get => throw null; } + public System.Type ReturnType { get => throw null; } + } + + // Generated from `ServiceStack.Host.BasicHttpRequest` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BasicHttpRequest : ServiceStack.Host.BasicRequest, ServiceStack.Configuration.IResolver, ServiceStack.Web.IHttpRequest, ServiceStack.Web.IRequest + { + public string Accept { get => throw null; set => throw null; } + public BasicHttpRequest() : base(default(ServiceStack.Messaging.IMessage), default(ServiceStack.RequestAttributes)) => throw null; + public BasicHttpRequest(object requestDto, ServiceStack.RequestAttributes requestAttributes = default(ServiceStack.RequestAttributes)) : base(default(ServiceStack.Messaging.IMessage), default(ServiceStack.RequestAttributes)) => throw null; + public string HttpMethod { get => throw null; set => throw null; } + public ServiceStack.Web.IHttpResponse HttpResponse { get => throw null; set => throw null; } + public string XForwardedFor { get => throw null; set => throw null; } + public int? XForwardedPort { get => throw null; set => throw null; } + public string XForwardedProtocol { get => throw null; set => throw null; } + public string XRealIp { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.BasicHttpResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BasicHttpResponse : ServiceStack.Host.BasicResponse, ServiceStack.Web.IHttpResponse, ServiceStack.Web.IResponse + { + public BasicHttpResponse(ServiceStack.Host.BasicRequest requestContext) : base(default(ServiceStack.Host.BasicRequest)) => throw null; + public void ClearCookies() => throw null; + public ServiceStack.Web.ICookies Cookies { get => throw null; } + public void SetCookie(System.Net.Cookie cookie) => throw null; + } + + // Generated from `ServiceStack.Host.BasicRequest` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BasicRequest : ServiceStack.Configuration.IHasResolver, ServiceStack.Configuration.IResolver, ServiceStack.IHasServiceScope, ServiceStack.IO.IHasVirtualFiles, ServiceStack.Web.IRequest, System.IServiceProvider + { + public string AbsoluteUri { get => throw null; set => throw null; } + public string[] AcceptTypes { get => throw null; set => throw null; } + public string Authorization { get => throw null; set => throw null; } + public BasicRequest(ServiceStack.Messaging.IMessage message = default(ServiceStack.Messaging.IMessage), ServiceStack.RequestAttributes requestAttributes = default(ServiceStack.RequestAttributes)) => throw null; + public BasicRequest(object requestDto, ServiceStack.RequestAttributes requestAttributes = default(ServiceStack.RequestAttributes)) => throw null; + public string CompressionType { get => throw null; set => throw null; } + public System.Int64 ContentLength { get => throw null; } + public string ContentType { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Cookies { get => throw null; set => throw null; } + public object Dto { get => throw null; set => throw null; } + public ServiceStack.Web.IHttpFile[] Files { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection FormData { get => throw null; set => throw null; } + public ServiceStack.IO.IVirtualDirectory GetDirectory() => throw null; + public ServiceStack.IO.IVirtualFile GetFile() => throw null; + public string GetHeader(string headerName) => throw null; + public string GetRawBody() => throw null; + public System.Threading.Tasks.Task GetRawBodyAsync() => throw null; + public object GetService(System.Type serviceType) => throw null; + public bool HasExplicitResponseContentType { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } + public System.IO.Stream InputStream { get => throw null; set => throw null; } + public bool IsDirectory { get => throw null; set => throw null; } + public bool IsFile { get => throw null; set => throw null; } + public bool IsLocal { get => throw null; set => throw null; } + public bool IsSecureConnection { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public ServiceStack.Messaging.IMessage Message { get => throw null; set => throw null; } + public string OperationName { get => throw null; set => throw null; } + public string OriginalPathInfo { get => throw null; } + public object OriginalRequest { get => throw null; set => throw null; } + public string PathInfo { get => throw null; set => throw null; } + public ServiceStack.Host.BasicRequest PopulateWith(ServiceStack.Web.IRequest request) => throw null; + public System.Collections.Specialized.NameValueCollection QueryString { get => throw null; set => throw null; } + public string RawUrl { get => throw null; set => throw null; } + public string RemoteIp { get => throw null; set => throw null; } + public ServiceStack.RequestAttributes RequestAttributes { get => throw null; set => throw null; } + public ServiceStack.Web.IRequestPreferences RequestPreferences { get => throw null; } + public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } + public ServiceStack.Web.IResponse Response { get => throw null; set => throw null; } + public string ResponseContentType { get => throw null; set => throw null; } + public Microsoft.Extensions.DependencyInjection.IServiceScope ServiceScope { get => throw null; set => throw null; } + public T TryResolve() => throw null; + public System.Uri UrlReferrer { get => throw null; set => throw null; } + public bool UseBufferedStream { get => throw null; set => throw null; } + public string UserAgent { get => throw null; set => throw null; } + public string UserHostAddress { get => throw null; set => throw null; } + public string Verb { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.BasicResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BasicResponse : ServiceStack.Web.IHasHeaders, ServiceStack.Web.IResponse + { + public void AddHeader(string name, string value) => throw null; + public BasicResponse(ServiceStack.Host.BasicRequest requestContext) => throw null; + public void Close() => throw null; + public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string ContentType { get => throw null; set => throw null; } + public object Dto { get => throw null; set => throw null; } + public void End() => throw null; + public void Flush() => throw null; + public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string GetHeader(string name) => throw null; + public bool HasStarted { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Headers { get => throw null; } + public bool IsClosed { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; } + public bool KeepAlive { get => throw null; set => throw null; } + public object OriginalResponse { get => throw null; set => throw null; } + public System.IO.Stream OutputStream { get => throw null; } + public void Redirect(string url) => throw null; + public void RemoveHeader(string name) => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; } + public void SetContentLength(System.Int64 contentLength) => throw null; + public int StatusCode { get => throw null; set => throw null; } + public string StatusDescription { get => throw null; set => throw null; } + public bool UseBufferedStream { get => throw null; set => throw null; } + public void Write(string text) => throw null; + } + + // Generated from `ServiceStack.Host.ContainerResolveCache` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ContainerResolveCache : ServiceStack.Configuration.ITypeFactory + { + public ContainerResolveCache(Funq.Container container) => throw null; + public object CreateInstance(ServiceStack.Configuration.IResolver resolver, System.Type type) => throw null; + public object CreateInstance(ServiceStack.Configuration.IResolver resolver, System.Type type, bool tryResolve) => throw null; + } + + // Generated from `ServiceStack.Host.ContentTypes` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ContentTypes : ServiceStack.Web.IContentTypeReader, ServiceStack.Web.IContentTypeWriter, ServiceStack.Web.IContentTypes + { + public System.Collections.Generic.Dictionary ContentTypeDeserializers; + public System.Collections.Generic.Dictionary ContentTypeDeserializersAsync; + public System.Collections.Generic.Dictionary ContentTypeFormats { get => throw null; } + public System.Collections.Generic.Dictionary ContentTypeSerializers; + public System.Collections.Generic.Dictionary ContentTypeSerializersAsync; + public System.Collections.Generic.Dictionary ContentTypeStringDeserializers; + public System.Collections.Generic.Dictionary ContentTypeStringSerializers; + public ContentTypes() => throw null; + public object DeserializeFromStream(string contentType, System.Type type, System.IO.Stream fromStream) => throw null; + public object DeserializeFromString(string contentType, System.Type type, string request) => throw null; + public string GetFormatContentType(string format) => throw null; + public ServiceStack.Web.StreamDeserializerDelegate GetStreamDeserializer(string contentType) => throw null; + public ServiceStack.Web.StreamDeserializerDelegateAsync GetStreamDeserializerAsync(string contentType) => throw null; + public ServiceStack.Web.StreamSerializerDelegate GetStreamSerializer(string contentType) => throw null; + public ServiceStack.Web.StreamSerializerDelegateAsync GetStreamSerializerAsync(string contentType) => throw null; + public static ServiceStack.Host.ContentTypes Instance; + public static System.Collections.Generic.HashSet KnownFormats; + public void Register(string contentType, ServiceStack.Web.StreamSerializerDelegate streamSerializer, ServiceStack.Web.StreamDeserializerDelegate streamDeserializer) => throw null; + public void RegisterAsync(string contentType, ServiceStack.Web.StreamSerializerDelegateAsync streamSerializer, ServiceStack.Web.StreamDeserializerDelegateAsync streamDeserializer) => throw null; + public void Remove(string contentType) => throw null; + public System.Byte[] SerializeToBytes(ServiceStack.Web.IRequest req, object response) => throw null; + public System.Threading.Tasks.Task SerializeToStreamAsync(ServiceStack.Web.IRequest req, object response, System.IO.Stream responseStream) => throw null; + public string SerializeToString(ServiceStack.Web.IRequest req, object response) => throw null; + public string SerializeToString(ServiceStack.Web.IRequest req, object response, string contentType) => throw null; + public static System.Threading.Tasks.Task SerializeUnknownContentType(ServiceStack.Web.IRequest req, object response, System.IO.Stream stream) => throw null; + public void SetContentTypeDeserializer(string contentType, ServiceStack.Web.StreamDeserializerDelegate streamDeserializer) => throw null; + public void SetContentTypeSerializer(string contentType, ServiceStack.Web.StreamSerializerDelegate streamSerializer) => throw null; + public static ServiceStack.Web.StreamDeserializerDelegateAsync UnknownContentTypeDeserializer { get => throw null; set => throw null; } + public static ServiceStack.Web.StreamSerializerDelegateAsync UnknownContentTypeSerializer { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.Cookies` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Cookies : ServiceStack.Web.ICookies + { + public void AddPermanentCookie(string cookieName, string cookieValue, bool? secureOnly = default(bool?)) => throw null; + public void AddSessionCookie(string cookieName, string cookieValue, bool? secureOnly = default(bool?)) => throw null; + public Cookies(ServiceStack.Web.IHttpResponse httpRes) => throw null; + public void DeleteCookie(string cookieName) => throw null; + public const string RootPath = default; + } + + // Generated from `ServiceStack.Host.CookiesExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CookiesExtensions + { + public static string AsHeaderValue(this System.Net.Cookie cookie) => throw null; + public static Microsoft.AspNetCore.Http.CookieOptions ToCookieOptions(this System.Net.Cookie cookie) => throw null; + } + + // Generated from `ServiceStack.Host.DataBinder` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DataBinder + { + public DataBinder() => throw null; + public static object Eval(object container, string expression) => throw null; + public static string Eval(object container, string expression, string format) => throw null; + public static object GetDataItem(object container) => throw null; + public static object GetDataItem(object container, out bool foundDataItem) => throw null; + public static object GetIndexedPropertyValue(object container, string expr) => throw null; + public static string GetIndexedPropertyValue(object container, string expr, string format) => throw null; + public static object GetPropertyValue(object container, string propName) => throw null; + public static string GetPropertyValue(object container, string propName, string format) => throw null; + } + + // Generated from `ServiceStack.Host.DefaultHttpHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DefaultHttpHandler : ServiceStack.Host.IHttpHandler + { + public DefaultHttpHandler() => throw null; + } + + // Generated from `ServiceStack.Host.FallbackRestPathDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate ServiceStack.Host.RestPath FallbackRestPathDelegate(ServiceStack.Web.IHttpRequest httpReq); + + // Generated from `ServiceStack.Host.HandleGatewayExceptionAsyncDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate System.Threading.Tasks.Task HandleGatewayExceptionAsyncDelegate(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex); + + // Generated from `ServiceStack.Host.HandleGatewayExceptionDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void HandleGatewayExceptionDelegate(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex); + + // Generated from `ServiceStack.Host.HandleServiceExceptionAsyncDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate System.Threading.Tasks.Task HandleServiceExceptionAsyncDelegate(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex); + + // Generated from `ServiceStack.Host.HandleServiceExceptionDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object HandleServiceExceptionDelegate(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex); + + // Generated from `ServiceStack.Host.HandleUncaughtExceptionAsyncDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate System.Threading.Tasks.Task HandleUncaughtExceptionAsyncDelegate(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex); + + // Generated from `ServiceStack.Host.HandleUncaughtExceptionDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void HandleUncaughtExceptionDelegate(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex); + + // Generated from `ServiceStack.Host.HtmlString` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlString : ServiceStack.Host.IHtmlString + { + public HtmlString(string value) => throw null; + public string ToHtmlString() => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.Host.HttpException` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpException : System.Exception + { + public HttpException() => throw null; + public HttpException(int statusCode, string statusDescription) => throw null; + public HttpException(string message) => throw null; + public HttpException(string message, System.Exception innerException) => throw null; + public int StatusCode { get => throw null; } + public string StatusDescription { get => throw null; } + } + + // Generated from `ServiceStack.Host.HttpFile` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpFile : ServiceStack.Web.IHttpFile + { + public System.Int64 ContentLength { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public string FileName { get => throw null; set => throw null; } + public HttpFile() => throw null; + public System.IO.Stream InputStream { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.HttpHandlerResolverDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate ServiceStack.Host.IHttpHandler HttpHandlerResolverDelegate(string httpMethod, string pathInfo, string filePath); + + // Generated from `ServiceStack.Host.HttpRequestAuthentication` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpRequestAuthentication + { + public static string GetAuthSecret(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetAuthorization(this ServiceStack.Web.IRequest req) => throw null; + public static string GetBasicAuth(this ServiceStack.Web.IRequest req) => throw null; + public static System.Collections.Generic.KeyValuePair? GetBasicAuthUserAndPassword(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetBearerToken(this ServiceStack.Web.IRequest req) => throw null; + public static string GetCookieValue(this ServiceStack.Web.IRequest httpReq, string cookieName) => throw null; + public static System.Collections.Generic.Dictionary GetDigestAuth(this ServiceStack.Web.IRequest httpReq) => throw null; + public static string GetItemStringValue(this ServiceStack.Web.IRequest httpReq, string itemName) => throw null; + public static string GetJwtRefreshToken(this ServiceStack.Web.IRequest req) => throw null; + public static string GetJwtToken(this ServiceStack.Web.IRequest req) => throw null; + } + + // Generated from `ServiceStack.Host.HttpResponseStreamWrapper` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpResponseStreamWrapper : ServiceStack.Web.IHasHeaders, ServiceStack.Web.IHttpResponse, ServiceStack.Web.IResponse + { + public void AddHeader(string name, string value) => throw null; + public void ClearCookies() => throw null; + public void Close() => throw null; + public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string ContentType { get => throw null; set => throw null; } + public ServiceStack.Web.ICookies Cookies { get => throw null; set => throw null; } + public object Dto { get => throw null; set => throw null; } + public void End() => throw null; + public void Flush() => throw null; + public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void ForceClose() => throw null; + public string GetHeader(string name) => throw null; + public bool HasStarted { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } + public HttpResponseStreamWrapper(System.IO.Stream stream, ServiceStack.Web.IRequest request) => throw null; + public bool IsClosed { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public bool KeepAlive { get => throw null; set => throw null; } + public bool KeepOpen { get => throw null; set => throw null; } + public object OriginalResponse { get => throw null; } + public System.IO.Stream OutputStream { get => throw null; set => throw null; } + public void Redirect(string url) => throw null; + public void RemoveHeader(string name) => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public void SetContentLength(System.Int64 contentLength) => throw null; + 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 bool UseBufferedStream { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.IHasBufferedStream` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasBufferedStream + { + System.IO.MemoryStream BufferedStream { get; } + } + + // Generated from `ServiceStack.Host.IHtmlString` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHtmlString + { + string ToHtmlString(); + } + + // Generated from `ServiceStack.Host.IHttpAsyncHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHttpAsyncHandler : ServiceStack.Host.IHttpHandler + { + System.Threading.Tasks.Task Middleware(Microsoft.AspNetCore.Http.HttpContext context, System.Func next); + } + + // Generated from `ServiceStack.Host.IHttpHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHttpHandler + { + } + + // Generated from `ServiceStack.Host.IHttpHandlerFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHttpHandlerFactory + { + } + + // Generated from `ServiceStack.Host.IServiceExec` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceExec + { + object Execute(ServiceStack.Web.IRequest requestContext, object instance, object request); + } + + // Generated from `ServiceStack.Host.ITypedFilter` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypedFilter + { + void Invoke(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto); + } + + // Generated from `ServiceStack.Host.ITypedFilter<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypedFilter + { + void Invoke(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, T dto); + } + + // Generated from `ServiceStack.Host.ITypedFilterAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypedFilterAsync + { + System.Threading.Tasks.Task InvokeAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto); + } + + // Generated from `ServiceStack.Host.ITypedFilterAsync<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITypedFilterAsync + { + System.Threading.Tasks.Task InvokeAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, T dto); + } + + // Generated from `ServiceStack.Host.InMemoryRollingRequestLogger` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryRollingRequestLogger : ServiceStack.Web.IRequestLogger + { + protected ServiceStack.RequestLogEntry CreateEntry(ServiceStack.Web.IRequest request, object requestDto, object response, System.TimeSpan requestDuration, System.Type requestType) => throw null; + public System.Func CurrentDateFn { get => throw null; set => throw null; } + public const int DefaultCapacity = default; + public bool EnableErrorTracking { get => throw null; set => throw null; } + public bool EnableRequestBodyTracking { get => throw null; set => throw null; } + public bool EnableResponseTracking { get => throw null; set => throw null; } + public bool EnableSessionTracking { get => throw null; set => throw null; } + public System.Type[] ExcludeRequestDtoTypes { get => throw null; set => throw null; } + protected bool ExcludeRequestType(System.Type requestType) => throw null; + public System.Type[] ExcludeResponseTypes { get => throw null; set => throw null; } + public virtual System.Collections.Generic.List GetLatestLogs(int? take) => throw null; + public System.Type[] HideRequestBodyForRequestDtoTypes { get => throw null; set => throw null; } + public System.Func IgnoreFilter { get => throw null; set => throw null; } + protected InMemoryRollingRequestLogger() => throw null; + public InMemoryRollingRequestLogger(int? capacity = default(int?)) => throw null; + public bool LimitToServiceRequests { get => throw null; set => throw null; } + public virtual void Log(ServiceStack.Web.IRequest request, object requestDto, object response, System.TimeSpan requestDuration) => throw null; + public System.Func RequestBodyTrackingFilter { get => throw null; set => throw null; } + public System.Action RequestLogFilter { get => throw null; set => throw null; } + public string[] RequiredRoles { get => throw null; set => throw null; } + public System.Func ResponseTrackingFilter { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary SerializableItems(System.Collections.Generic.Dictionary items) => throw null; + public virtual bool ShouldSkip(ServiceStack.Web.IRequest req, object requestDto) => throw null; + public System.Func SkipLogging { get => throw null; set => throw null; } + public static object ToSerializableErrorResponse(object response) => throw null; + protected int capacity; + protected System.Collections.Concurrent.ConcurrentQueue logEntries; + } + + // Generated from `ServiceStack.Host.InstanceExecFn` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object InstanceExecFn(ServiceStack.Web.IRequest requestContext, object instance, object request); + + // Generated from `ServiceStack.Host.MetadataTypeExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MetadataTypeExtensions + { + public static System.Collections.Generic.HashSet CollectionTypes; + public static bool ExcludesFeature(this System.Type type, ServiceStack.Feature feature) => throw null; + public static bool ForceInclude(this ServiceStack.MetadataTypesConfig config, ServiceStack.MetadataType type) => throw null; + public static bool ForceInclude(this ServiceStack.MetadataTypesConfig config, System.Type type) => throw null; + public static string GetParamType(this ServiceStack.ApiMemberAttribute attr, System.Type type, string verb) => throw null; + public static string GetParamType(this ServiceStack.MetadataPropertyType prop, ServiceStack.MetadataType type, ServiceStack.Host.Operation op) => throw null; + public static bool Has(this ServiceStack.Feature feature, ServiceStack.Feature flag) => throw null; + public static bool IsAbstract(this ServiceStack.MetadataType type) => throw null; + public static bool IsArray(this ServiceStack.MetadataPropertyType prop) => throw null; + public static bool IsCollection(this ServiceStack.MetadataPropertyType prop) => throw null; + public static bool IsInterface(this ServiceStack.MetadataType type) => throw null; + public static System.Collections.Generic.List NullIfEmpty(this System.Collections.Generic.List value) => throw null; + public static bool? NullIfFalse(this bool value) => throw null; + public static int? NullIfMinValue(this int value) => throw null; + public static System.Collections.Generic.Dictionary ToMetadataServiceRoutes(this System.Collections.Generic.Dictionary serviceRoutes, System.Action> filter = default(System.Action>)) => throw null; + } + + // Generated from `ServiceStack.Host.Operation` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Operation : System.ICloneable + { + public System.Collections.Generic.List Actions { get => throw null; set => throw null; } + public ServiceStack.Host.Operation AddPermission(string permission) => throw null; + public void AddRequestPropertyValidationRules(System.Collections.Generic.List propertyValidators) => throw null; + public void AddRequestTypeValidationRules(System.Collections.Generic.List typeValidators) => throw null; + public ServiceStack.Host.Operation AddRole(string role) => throw null; + public ServiceStack.Host.Operation Clone() => throw null; + object System.ICloneable.Clone() => throw null; + public System.Type DataModelType { get => throw null; } + public ServiceStack.ApiCss ExplorerCss { get => throw null; set => throw null; } + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public bool IsOneWay { get => throw null; } + public ServiceStack.ApiCss LocodeCss { get => throw null; set => throw null; } + public string Method { get => throw null; set => throw null; } + public string Name { get => throw null; } + public Operation() => throw null; + public System.Collections.Generic.List RequestFilterAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet RequestPropertyAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.List RequestPropertyValidationRules { get => throw null; set => throw null; } + public System.Type RequestType { get => throw null; set => throw null; } + public System.Collections.Generic.List RequestTypeValidationRules { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiresAnyPermission { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiresAnyRole { get => throw null; set => throw null; } + public bool RequiresAuthentication { get => throw null; set => throw null; } + public System.Collections.Generic.List ResponseFilterAttributes { get => throw null; set => throw null; } + public System.Type ResponseType { get => throw null; set => throw null; } + public ServiceStack.RestrictAttribute RestrictTo { get => throw null; set => throw null; } + public bool ReturnsVoid { get => throw null; } + public System.Collections.Generic.List Routes { get => throw null; set => throw null; } + public System.Type ServiceType { get => throw null; set => throw null; } + public System.Collections.Generic.List Tags { get => throw null; set => throw null; } + public System.Type ViewModelType { get => throw null; } + } + + // Generated from `ServiceStack.Host.OperationDto` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OperationDto + { + public System.Collections.Generic.List Actions { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public OperationDto() => throw null; + public string ResponseName { get => throw null; set => throw null; } + public System.Collections.Generic.List RestrictTo { get => throw null; set => throw null; } + public System.Collections.Generic.List Routes { get => throw null; set => throw null; } + public string ServiceName { get => throw null; set => throw null; } + public System.Collections.Generic.List Tags { get => throw null; set => throw null; } + public System.Collections.Generic.List VisibleTo { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.RequestPreferences` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestPreferences : ServiceStack.Web.IRequestPreferences + { + public string AcceptEncoding { get => throw null; } + public bool AcceptsBrotli { get => throw null; } + public bool AcceptsDeflate { get => throw null; } + public bool AcceptsGzip { get => throw null; } + public RequestPreferences(ServiceStack.Web.IRequest httpRequest) => throw null; + } + + // Generated from `ServiceStack.Host.RestHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RestHandler : ServiceStack.Host.Handlers.ServiceStackHandlerBase, ServiceStack.Host.Handlers.IRequestHttpHandler + { + public static object CreateRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IRestPath restPath, System.Collections.Generic.Dictionary requestParams, object requestDto) => throw null; + public static System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IRestPath restPath) => throw null; + public static System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IRestPath restPath, System.Collections.Generic.Dictionary requestParams) => throw null; + public System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest httpReq, string operationName) => throw null; + public static ServiceStack.Web.IRestPath FindMatchingRestPath(ServiceStack.Web.IHttpRequest httpReq, out string contentType) => throw null; + public static ServiceStack.Web.IRestPath FindMatchingRestPath(string httpMethod, string pathInfo, out string contentType) => throw null; + public ServiceStack.Web.IRestPath GetRestPath(ServiceStack.Web.IHttpRequest httpReq) => throw null; + public static string GetSanitizedPathInfo(string pathInfo, out string contentType) => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public string ResponseContentType { get => throw null; set => throw null; } + public RestHandler() => throw null; + public ServiceStack.Web.IRestPath RestPath { get => throw null; set => throw null; } + public override bool RunAsAsync() => throw null; + } + + // Generated from `ServiceStack.Host.RestPath` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RestPath : ServiceStack.Web.IRestPath + { + public void AfterInit() => throw null; + public string AllowedVerbs { get => throw null; } + public bool AllowsAllVerbs { get => throw null; } + public static System.Func CalculateMatchScore { get => throw null; set => throw null; } + public object CreateRequest(string pathInfo) => throw null; + public object CreateRequest(string pathInfo, System.Collections.Generic.Dictionary queryStringAndFormData, object fromInstance) => throw null; + public string FirstMatchHashKey { get => throw null; set => throw null; } + public static System.Collections.Generic.IEnumerable GetFirstMatchHashKeys(string[] pathPartsForMatching) => throw null; + public static System.Collections.Generic.IEnumerable GetFirstMatchWildCardHashKeys(string[] pathPartsForMatching) => throw null; + public override int GetHashCode() => throw null; + public static string[] GetPathPartsForMatching(string pathInfo) => throw null; + public System.Func GetRequestRule() => throw null; + public bool IsMatch(ServiceStack.Web.IHttpRequest httpReq) => throw null; + public bool IsMatch(string httpMethod, string[] withPathInfoParts, out int wildcardMatchCount) => throw null; + public bool IsValid { get => throw null; set => throw null; } + public bool IsVariable(string name) => throw null; + public bool IsWildCardPath { get => throw null; set => throw null; } + public string MatchRule { get => throw null; set => throw null; } + public int MatchScore(string httpMethod, string[] withPathInfoParts) => throw null; + public string Notes { get => throw null; set => throw null; } + public string Path { get => throw null; } + public int PathComponentsCount { get => throw null; set => throw null; } + public int Priority { get => throw null; set => throw null; } + public System.Type RequestType { get => throw null; } + public RestPath(System.Type requestType, string path) => throw null; + public RestPath(System.Type requestType, string path, string verbs, string summary = default(string), string notes = default(string), string matchRule = default(string)) => throw null; + public string Summary { get => throw null; set => throw null; } + public ServiceStack.RestRoute ToRestRoute() => throw null; + public int TotalComponentsCount { get => throw null; set => throw null; } + public string UniqueMatchHashKey { get => throw null; } + public int VariableArgsCount { get => throw null; set => throw null; } + public string[] Verbs { get => throw null; } + } + + // Generated from `ServiceStack.Host.RouteNamingConvention` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class RouteNamingConvention + { + public static System.Collections.Generic.List AttributeNamesToMatch; + public static System.Collections.Generic.List PropertyNamesToMatch; + public static void WithMatchingAttributes(ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string allowedVerbs) => throw null; + public static void WithMatchingPropertyNames(ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string allowedVerbs) => throw null; + public static void WithRequestDtoName(ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string allowedVerbs) => throw null; + } + + // Generated from `ServiceStack.Host.RouteNamingConventionDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void RouteNamingConventionDelegate(ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string allowedVerbs); + + // Generated from `ServiceStack.Host.ServiceController` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceController : ServiceStack.Web.IServiceController, ServiceStack.Web.IServiceExecutor + { + public void AfterInit() => throw null; + public object ApplyResponseFilters(object response, ServiceStack.Web.IRequest req) => throw null; + public void AssertServiceRestrictions(System.Type requestType, ServiceStack.RequestAttributes actualAttributes) => throw null; + public string DefaultOperationsNamespace { get => throw null; set => throw null; } + public object Execute(ServiceStack.Web.IRequest req, bool applyFilters) => throw null; + public object Execute(object requestDto) => throw null; + public virtual object Execute(object requestDto, ServiceStack.Web.IRequest req) => throw null; + public object Execute(object requestDto, ServiceStack.Web.IRequest req, bool applyFilters) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(object requestDto, ServiceStack.Web.IRequest req) => throw null; + public object ExecuteMessage(ServiceStack.Messaging.IMessage mqMessage) => throw null; + public object ExecuteMessage(ServiceStack.Messaging.IMessage dto, ServiceStack.Web.IRequest req) => throw null; + public System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage mqMessage, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage dto, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GatewayExecuteAsync(object requestDto, ServiceStack.Web.IRequest req, bool applyFilters) => throw null; + public ServiceStack.Web.IRestPath GetRestPathForRequest(string httpMethod, string pathInfo) => throw null; + public ServiceStack.Host.RestPath GetRestPathForRequest(string httpMethod, string pathInfo, ServiceStack.Web.IHttpRequest httpReq) => throw null; + public virtual ServiceStack.Host.ServiceExecFn GetService(System.Type requestType) => throw null; + public bool HasService(System.Type requestType) => throw null; + public ServiceStack.Host.ServiceController Init() => throw null; + public static bool IsServiceAction(ServiceStack.Host.ActionMethod mi) => throw null; + public static bool IsServiceAction(string actionName, System.Type requestType) => throw null; + public static bool IsServiceType(System.Type serviceType) => throw null; + public void RegisterRestPath(ServiceStack.Host.RestPath restPath) => throw null; + public void RegisterRestPaths(System.Type requestType) => throw null; + public void RegisterService(ServiceStack.Configuration.ITypeFactory serviceFactoryFn, System.Type serviceType) => throw null; + public void RegisterService(System.Type serviceType) => throw null; + public void RegisterServiceExecutor(System.Type requestType, System.Type serviceType, ServiceStack.Configuration.ITypeFactory serviceFactoryFn) => throw null; + public void RegisterServicesInAssembly(System.Reflection.Assembly assembly) => throw null; + public System.Collections.Generic.Dictionary> RequestTypeFactoryMap { get => throw null; set => throw null; } + public void ResetServiceExecCachesIfNeeded(System.Type serviceType, System.Type requestType) => throw null; + public System.Func> ResolveServicesFn { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary> RestPathMap; + public ServiceController(ServiceStack.ServiceStackHost appHost) => throw null; + public ServiceController(ServiceStack.ServiceStackHost appHost, System.Func> resolveServicesFn) => throw null; + public ServiceController(ServiceStack.ServiceStackHost appHost, params System.Reflection.Assembly[] assembliesWithServices) => throw null; + } + + // Generated from `ServiceStack.Host.ServiceExecExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceExecExtensions + { + public static System.Collections.Generic.List GetActions(this System.Type serviceType) => throw null; + public static System.Collections.Generic.List GetRequestActions(this System.Type serviceType, System.Type requestType) => throw null; + public static string GetVerbs(this System.Type serviceType) => throw null; + } + + // Generated from `ServiceStack.Host.ServiceExecFn` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate System.Threading.Tasks.Task ServiceExecFn(ServiceStack.Web.IRequest requestContext, object request); + + // Generated from `ServiceStack.Host.ServiceMetadata` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceMetadata + { + public void Add(System.Type serviceType, System.Type requestType, System.Type responseType) => throw null; + public static void AddReferencedTypes(System.Collections.Generic.HashSet to, System.Type type) => throw null; + public void AfterInit() => throw null; + public bool CanAccess(ServiceStack.Format format, string operationName) => throw null; + public bool CanAccess(ServiceStack.Web.IRequest httpReq, ServiceStack.Format format, string operationName) => throw null; + public bool CanAccess(ServiceStack.RequestAttributes reqAttrs, ServiceStack.Format format, string operationName) => throw null; + public System.Collections.Generic.List> ConfigureMetadataTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List> ConfigureOperations { get => throw null; set => throw null; } + public object CreateRequestDto(System.Type requestType, object dto) => throw null; + public object CreateRequestFromUrl(string relativeOrAbsoluteUrl, string method = default(string)) => throw null; + public System.Type FindDtoType(string typeName) => throw null; + public ServiceStack.Host.RestPath FindRoute(string pathInfo, string method = default(string)) => throw null; + public System.Collections.Generic.HashSet ForceInclude { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet GetAllDtos() => throw null; + public System.Collections.Generic.List GetAllOperationNames() => throw null; + public System.Collections.Generic.List GetAllOperationTypes() => throw null; + public System.Collections.Generic.List GetAllPermissions() => throw null; + public System.Collections.Generic.List GetAllRoles() => throw null; + public System.Collections.Generic.List GetImplementedActions(System.Type serviceType, System.Type requestType) => throw null; + public System.Collections.Generic.List GetMetadataTypesForOperation(ServiceStack.Web.IRequest httpReq, ServiceStack.Host.Operation op) => throw null; + public ServiceStack.Host.Operation GetOperation(System.Type requestType) => throw null; + public System.Collections.Generic.List GetOperationAssemblies() => throw null; + public System.Collections.Generic.List GetOperationDtos() => throw null; + public System.Collections.Generic.List GetOperationNamesForMetadata(ServiceStack.Web.IRequest httpReq) => throw null; + public System.Collections.Generic.List GetOperationNamesForMetadata(ServiceStack.Web.IRequest httpReq, ServiceStack.Format format) => throw null; + public System.Type GetOperationType(string operationTypeName) => throw null; + public System.Collections.Generic.List GetOperationsByTag(string tag) => throw null; + public System.Collections.Generic.List GetOperationsByTags(string[] tags) => throw null; + public System.Type GetRequestType(string requestDtoName) => throw null; + public System.Type GetResponseTypeByRequest(System.Type requestType) => throw null; + public System.Type GetServiceTypeByRequest(System.Type requestType) => throw null; + public System.Type GetServiceTypeByResponse(System.Type responseType) => throw null; + public bool HasImplementation(ServiceStack.Host.Operation operation, ServiceStack.Format format) => throw null; + public bool IsAuthorized(ServiceStack.Host.Operation operation, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session) => throw null; + public System.Threading.Tasks.Task IsAuthorizedAsync(ServiceStack.Host.Operation operation, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session) => throw null; + public static bool IsDtoType(System.Type type) => throw null; + public bool IsVisible(ServiceStack.Web.IRequest httpReq, ServiceStack.Format format, string operationName) => throw null; + public bool IsVisible(ServiceStack.Web.IRequest httpReq, ServiceStack.Host.Operation operation) => throw null; + public bool IsVisible(ServiceStack.Web.IRequest httpReq, System.Type requestType) => throw null; + public System.Collections.Generic.Dictionary OperationNamesMap { get => throw null; set => throw null; } + public System.Collections.Generic.IEnumerable Operations { get => throw null; } + public System.Collections.Generic.Dictionary OperationsMap { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary OperationsResponseMap { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet RequestTypes { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet ResponseTypes { get => throw null; set => throw null; } + public ServiceMetadata(System.Collections.Generic.List restPaths) => throw null; + public System.Collections.Generic.HashSet ServiceTypes { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.ServiceMetadataExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceMetadataExtensions + { + public static System.Collections.Generic.List GetApiMembers(this System.Type operationType) => throw null; + public static System.Collections.Generic.List GetAssemblies(this ServiceStack.Host.Operation operation) => throw null; + public static ServiceStack.Host.OperationDto ToOperationDto(this ServiceStack.Host.Operation operation) => throw null; + } + + // Generated from `ServiceStack.Host.ServiceRequestExec<,>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceRequestExec : ServiceStack.Host.IServiceExec + { + public object Execute(ServiceStack.Web.IRequest requestContext, object instance, object request) => throw null; + public ServiceRequestExec() => throw null; + } + + // Generated from `ServiceStack.Host.ServiceRoutes` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceRoutes : ServiceStack.Web.IServiceRoutes + { + public ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs) => throw null; + public ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, int priority) => throw null; + public ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, string summary, string notes) => throw null; + public ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, string summary, string notes, string matches) => throw null; + public ServiceStack.Web.IServiceRoutes Add(string restPath) => throw null; + public ServiceStack.Web.IServiceRoutes Add(string restPath, string verbs) => throw null; + public ServiceRoutes(ServiceStack.ServiceStackHost appHost) => throw null; + } + + // Generated from `ServiceStack.Host.ServiceRunner<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceRunner : ServiceStack.Web.IServiceRunner, ServiceStack.Web.IServiceRunner + { + protected ServiceStack.Host.ActionContext ActionContext; + public virtual object AfterEachRequest(ServiceStack.Web.IRequest req, TRequest request, object response, object service) => throw null; + protected ServiceStack.IAppHost AppHost; + public virtual void BeforeEachRequest(ServiceStack.Web.IRequest req, TRequest request, object service) => throw null; + public virtual object Execute(ServiceStack.Web.IRequest req, object instance, ServiceStack.Messaging.IMessage request) => throw null; + public virtual object Execute(ServiceStack.Web.IRequest req, object instance, TRequest requestDto) => throw null; + public virtual System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, object instance, TRequest requestDto) => throw null; + public object ExecuteOneWay(ServiceStack.Web.IRequest req, object instance, TRequest requestDto) => throw null; + public virtual System.Threading.Tasks.Task HandleExceptionAsync(ServiceStack.Web.IRequest req, TRequest requestDto, System.Exception ex) => throw null; + public virtual System.Threading.Tasks.Task HandleExceptionAsync(ServiceStack.Web.IRequest req, TRequest requestDto, System.Exception ex, object service) => throw null; + protected static ServiceStack.Logging.ILog Log; + protected System.Threading.Tasks.Task ManagedHandleExceptionAsync(ServiceStack.Web.IRequest req, TRequest requestDto, System.Exception ex, object service) => throw null; + public virtual object OnAfterExecute(ServiceStack.Web.IRequest req, object response) => throw null; + public virtual object OnAfterExecute(ServiceStack.Web.IRequest req, object response, object service) => throw null; + public virtual void OnBeforeExecute(ServiceStack.Web.IRequest req, TRequest request) => throw null; + public virtual void OnBeforeExecute(ServiceStack.Web.IRequest req, TRequest request, object service) => throw null; + public object Process(ServiceStack.Web.IRequest requestContext, object instance, object request) => throw null; + protected ServiceStack.Web.IRequestFilterBase[] RequestFilters; + public T ResolveService(ServiceStack.Web.IRequest requestContext) => throw null; + protected ServiceStack.Web.IResponseFilterBase[] ResponseFilters; + protected ServiceStack.Host.ActionInvokerFn ServiceAction; + public ServiceRunner(ServiceStack.IAppHost appHost, ServiceStack.Host.ActionContext actionContext) => throw null; + } + + // Generated from `ServiceStack.Host.StreamSerializerResolverDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate bool StreamSerializerResolverDelegate(ServiceStack.Web.IRequest requestContext, object dto, ServiceStack.Web.IResponse httpRes); + + // Generated from `ServiceStack.Host.TypedFilter<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypedFilter : ServiceStack.Host.ITypedFilter + { + public void Invoke(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto) => throw null; + public TypedFilter(System.Action action) => throw null; + } + + // Generated from `ServiceStack.Host.TypedFilterAsync<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypedFilterAsync : ServiceStack.Host.ITypedFilterAsync + { + public System.Threading.Tasks.Task InvokeAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto) => throw null; + public TypedFilterAsync(System.Func action) => throw null; + } + + // Generated from `ServiceStack.Host.VoidActionInvokerFn` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void VoidActionInvokerFn(object instance, object request); + + // Generated from `ServiceStack.Host.XsdMetadata` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XsdMetadata + { + public bool Flash { get => throw null; set => throw null; } + public static System.Type GetBaseTypeWithTheSameName(System.Type type) => throw null; + public System.Collections.Generic.List GetOneWayOperationNames(ServiceStack.Format format, System.Collections.Generic.HashSet soapTypes) => throw null; + public System.Collections.Generic.List GetReplyOperationNames(ServiceStack.Format format, System.Collections.Generic.HashSet soapTypes) => throw null; + public ServiceStack.Host.ServiceMetadata Metadata { get => throw null; set => throw null; } + public XsdMetadata(ServiceStack.Host.ServiceMetadata metadata, bool flash = default(bool)) => throw null; + } + + namespace Handlers + { + // Generated from `ServiceStack.Host.Handlers.CustomActionHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomActionHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public System.Action Action { get => throw null; set => throw null; } + public CustomActionHandler(System.Action action) => throw null; + public override void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.CustomActionHandlerAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomActionHandlerAsync : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public System.Func Action { get => throw null; set => throw null; } + public CustomActionHandlerAsync(System.Func action) => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.CustomResponseHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomResponseHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public System.Func Action { get => throw null; set => throw null; } + public CustomResponseHandler(System.Func action, string operationName = default(string)) => throw null; + public override void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.CustomResponseHandlerAsync` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomResponseHandlerAsync : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public System.Func> Action { get => throw null; set => throw null; } + public CustomResponseHandlerAsync(System.Func> action, string operationName = default(string)) => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.ForbiddenHttpHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ForbiddenHttpHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + protected System.Text.StringBuilder CreateForbiddenResponseTextBody(ServiceStack.Web.IRequest request) => throw null; + public string DefaultHandler { get => throw null; set => throw null; } + public string DefaultRootFileName { get => throw null; set => throw null; } + public ForbiddenHttpHandler() => throw null; + public override bool IsReusable { get => throw null; } + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest request, ServiceStack.Web.IResponse response, string operationName) => throw null; + public override bool RunAsAsync() => throw null; + public string WebHostPhysicalPath { get => throw null; set => throw null; } + public string WebHostUrl { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.Handlers.GenericHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GenericHandler : ServiceStack.Host.Handlers.ServiceStackHandlerBase, ServiceStack.Host.Handlers.IRequestHttpHandler + { + public ServiceStack.RequestAttributes ContentTypeAttribute { get => throw null; set => throw null; } + public System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest req, string operationName) => throw null; + public GenericHandler(string contentType, ServiceStack.RequestAttributes handlerAttributes, ServiceStack.Feature format) => throw null; + public string HandlerContentType { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public override bool RunAsAsync() => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.HttpAsyncTaskHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class HttpAsyncTaskHandler : ServiceStack.Host.Handlers.IServiceStackHandler, ServiceStack.Host.IHttpAsyncHandler, ServiceStack.Host.IHttpHandler + { + protected virtual System.Threading.Tasks.Task CreateProcessRequestTask(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + protected System.Threading.Tasks.Task HandleException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; + protected HttpAsyncTaskHandler() => throw null; + public virtual bool IsReusable { get => throw null; } + public virtual System.Threading.Tasks.Task Middleware(Microsoft.AspNetCore.Http.HttpContext context, System.Func next) => throw null; + public virtual void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public virtual System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public string RequestName { get => throw null; set => throw null; } + public virtual bool RunAsAsync() => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.IRequestHttpHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IRequestHttpHandler + { + System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest req, string operationName); + System.Threading.Tasks.Task GetResponseAsync(ServiceStack.Web.IRequest httpReq, object request); + System.Threading.Tasks.Task HandleResponse(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, object response); + string RequestName { get; } + } + + // Generated from `ServiceStack.Host.Handlers.IServiceStackHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceStackHandler + { + void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName); + System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName); + string RequestName { get; } + } + + // Generated from `ServiceStack.Host.Handlers.JsonOneWayHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonOneWayHandler : ServiceStack.Host.Handlers.GenericHandler + { + public JsonOneWayHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.JsonReplyHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonReplyHandler : ServiceStack.Host.Handlers.GenericHandler + { + public JsonReplyHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.JsvOneWayHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsvOneWayHandler : ServiceStack.Host.Handlers.GenericHandler + { + public JsvOneWayHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.JsvReplyHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsvReplyHandler : ServiceStack.Host.Handlers.GenericHandler + { + public JsvReplyHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.NotFoundHttpHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NotFoundHttpHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public string DefaultHandler { get => throw null; set => throw null; } + public string DefaultRootFileName { get => throw null; set => throw null; } + public override bool IsReusable { get => throw null; } + public NotFoundHttpHandler() => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest request, ServiceStack.Web.IResponse response, string operationName) => throw null; + public string WebHostPhysicalPath { get => throw null; set => throw null; } + public string WebHostUrl { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.Handlers.RedirectHttpHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedirectHttpHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public string AbsoluteUrl { get => throw null; set => throw null; } + public static string MakeRelative(string relativeUrl) => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest request, ServiceStack.Web.IResponse response, string operationName) => throw null; + public RedirectHttpHandler() => throw null; + public string RelativeUrl { get => throw null; set => throw null; } + public System.Net.HttpStatusCode StatusCode { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.Handlers.RequestHandlerInfo` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestHandlerInfo + { + public string HandlerType { get => throw null; set => throw null; } + public string OperationName { get => throw null; set => throw null; } + public string PathInfo { get => throw null; set => throw null; } + public RequestHandlerInfo() => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.RequestInfo` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestInfo + { + public RequestInfo() => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.RequestInfoHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestInfoHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public static ServiceStack.Host.Handlers.RequestInfoResponse GetRequestInfo(ServiceStack.Web.IRequest httpReq) => throw null; + public static ServiceStack.Host.Handlers.RequestHandlerInfo LastRequestInfo; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public ServiceStack.Host.Handlers.RequestInfoResponse RequestInfo { get => throw null; set => throw null; } + public RequestInfoHandler() => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(System.Collections.Specialized.NameValueCollection nvc) => throw null; + public static string ToString(System.Collections.Specialized.NameValueCollection nvc) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.RequestInfoResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestInfoResponse + { + public string AbsoluteUri { get => throw null; set => throw null; } + public System.Collections.Generic.List AcceptTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List AllOperationNames { get => throw null; set => throw null; } + public string ApplicationBaseUrl { get => throw null; set => throw null; } + public string ApplicationPath { get => throw null; set => throw null; } + public string ApplicationVirtualPath { get => throw null; set => throw null; } + public System.Collections.Generic.List AsyncErrors { get => throw null; set => throw null; } + public System.Int64 ContentLength { get => throw null; set => throw null; } + public string ContentRootDirectoryPath { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public string CurrentDirectory { get => throw null; set => throw null; } + public string Date { get => throw null; set => throw null; } + public string DebugString { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public string ErrorMessage { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary FormData { get => throw null; set => throw null; } + public string GetLeftPath { get => throw null; set => throw null; } + public string GetPathUrl { get => throw null; set => throw null; } + public string HandlerFactoryArgs { get => throw null; set => throw null; } + public string HandlerFactoryPath { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } + public string Host { get => throw null; set => throw null; } + public string HostType { get => throw null; set => throw null; } + public string HttpMethod { get => throw null; set => throw null; } + public string Ipv4Addresses { get => throw null; set => throw null; } + public string Ipv6Addresses { get => throw null; set => throw null; } + public ServiceStack.Host.Handlers.RequestHandlerInfo LastRequestInfo { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary LogonUserInfo { get => throw null; set => throw null; } + public string OperationName { get => throw null; set => throw null; } + public System.Collections.Generic.List OperationNames { get => throw null; set => throw null; } + public string OriginalPathInfo { get => throw null; set => throw null; } + public string Path { get => throw null; set => throw null; } + public string PathInfo { get => throw null; set => throw null; } + public System.Collections.Generic.List PluginsLoaded { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary QueryString { get => throw null; set => throw null; } + public string RawUrl { get => throw null; set => throw null; } + public string RequestAttributes { get => throw null; set => throw null; } + public RequestInfoResponse() => throw null; + public System.Collections.Generic.Dictionary RequestResponseMap { get => throw null; set => throw null; } + public string ResolveAbsoluteUrl { get => throw null; set => throw null; } + public string ResponseContentType { get => throw null; set => throw null; } + public string RootDirectoryPath { get => throw null; set => throw null; } + public string ServiceName { get => throw null; set => throw null; } + public System.Collections.Generic.List StartUpErrors { get => throw null; set => throw null; } + public string StartedAt { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Stats { get => throw null; set => throw null; } + public int Status { get => throw null; set => throw null; } + public bool StripApplicationVirtualPath { get => throw null; set => throw null; } + public string Url { get => throw null; set => throw null; } + public string Usage { get => throw null; set => throw null; } + public string UserHostAddress { get => throw null; set => throw null; } + public string VirtualAbsolutePathRoot { get => throw null; set => throw null; } + public string VirtualAppRelativePathRoot { get => throw null; set => throw null; } + public System.Collections.Generic.List VirtualPathProviderFiles { get => throw null; set => throw null; } + public string WebHostUrl { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.Handlers.ServiceStackHandlerBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ServiceStackHandlerBase : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + protected bool AssertAccess(ServiceStack.Web.IHttpRequest httpReq, ServiceStack.Web.IHttpResponse httpRes, ServiceStack.Feature feature, string operationName) => throw null; + protected static void AssertOperationExists(string operationName, System.Type type) => throw null; + protected static System.Threading.Tasks.Task CreateContentTypeRequestAsync(ServiceStack.Web.IRequest httpReq, System.Type requestType, string contentType) => throw null; + public static System.Threading.Tasks.Task DeserializeHttpRequestAsync(System.Type operationType, ServiceStack.Web.IRequest httpReq, string contentType) => throw null; + protected static object ExecuteService(object request, ServiceStack.Web.IRequest httpReq) => throw null; + protected static object GetCustomRequestFromBinder(ServiceStack.Web.IRequest httpReq, System.Type requestType) => throw null; + public static System.Type GetOperationType(string operationName) => throw null; + public virtual System.Threading.Tasks.Task GetResponseAsync(ServiceStack.Web.IRequest httpReq, object request) => throw null; + public System.Threading.Tasks.Task HandleResponse(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, object response) => throw null; + public ServiceStack.RequestAttributes HandlerAttributes { get => throw null; set => throw null; } + public override bool IsReusable { get => throw null; } + protected ServiceStackHandlerBase() => throw null; + public void UpdateResponseContentType(ServiceStack.Web.IRequest httpReq, object response) => throw null; + public System.Threading.Tasks.Task WriteDebugResponse(ServiceStack.Web.IResponse httpRes, object response) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.StaticContentHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StaticContentHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + public StaticContentHandler(System.Byte[] bytes, string contentType) => throw null; + public StaticContentHandler(System.IO.Stream stream, string contentType) => throw null; + public StaticContentHandler(string textContents, string contentType) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.StaticFileHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StaticFileHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + public int BufferSize { get => throw null; set => throw null; } + public static int DefaultBufferSize; + public override bool IsReusable { get => throw null; } + public static bool MonoDirectoryExists(string dirPath, string appFilePath) => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest request, ServiceStack.Web.IResponse response, string operationName) => throw null; + public static System.Action ResponseFilter { get => throw null; set => throw null; } + public static void SetDefaultFile(string defaultFilePath, System.Byte[] defaultFileContents, System.DateTime defaultFileModified) => throw null; + public StaticFileHandler() => throw null; + public StaticFileHandler(ServiceStack.IO.IVirtualDirectory virtualDir) => throw null; + public StaticFileHandler(ServiceStack.IO.IVirtualFile virtualFile) => throw null; + public StaticFileHandler(string virtualPath) => throw null; + public ServiceStack.IO.IVirtualNode VirtualNode { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Host.Handlers.XmlOneWayHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlOneWayHandler : ServiceStack.Host.Handlers.GenericHandler + { + public XmlOneWayHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; + } + + // Generated from `ServiceStack.Host.Handlers.XmlReplyHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlReplyHandler : ServiceStack.Host.Handlers.GenericHandler + { + public XmlReplyHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; + } + + } + namespace NetCore + { + // Generated from `ServiceStack.Host.NetCore.NetCoreRequest` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreRequest : ServiceStack.Configuration.IHasResolver, ServiceStack.Configuration.IResolver, ServiceStack.Host.IHasBufferedStream, ServiceStack.IHasTraceId, ServiceStack.IO.IHasVirtualFiles, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId, ServiceStack.Web.IHttpRequest, ServiceStack.Web.IRequest, System.IServiceProvider + { + public string AbsoluteUri { get => throw null; } + public string Accept { get => throw null; } + public string[] AcceptTypes { get => throw null; } + public string Authorization { get => throw null; } + public System.IO.MemoryStream BufferedStream { get => throw null; set => throw null; } + public System.Int64 ContentLength { get => throw null; } + public string ContentType { get => throw null; } + public System.Collections.Generic.IDictionary Cookies { get => throw null; } + public object Dto { get => throw null; set => throw null; } + public ServiceStack.Web.IHttpFile[] Files { get => throw null; } + public System.Collections.Specialized.NameValueCollection FormData { get => throw null; } + public ServiceStack.IO.IVirtualDirectory GetDirectory() => throw null; + public ServiceStack.IO.IVirtualFile GetFile() => throw null; + public string GetRawBody() => throw null; + public System.Threading.Tasks.Task GetRawBodyAsync() => throw null; + public object GetService(System.Type serviceType) => throw null; + public bool HasExplicitResponseContentType { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; } + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } + public string HttpMethod { get => throw null; } + public Microsoft.AspNetCore.Http.HttpRequest HttpRequest { get => throw null; } + public ServiceStack.Web.IHttpResponse HttpResponse { get => throw null; } + public string Id { get => throw null; } + public System.IO.Stream InputStream { get => throw null; } + public bool IsDirectory { get => throw null; } + public bool IsFile { get => throw null; } + public bool IsLocal { get => throw null; } + public bool IsSecureConnection { get => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; } + public NetCoreRequest(Microsoft.AspNetCore.Http.HttpContext context, string operationName, ServiceStack.RequestAttributes attrs = default(ServiceStack.RequestAttributes), string pathInfo = default(string)) => throw null; + public string OperationName { get => throw null; set => throw null; } + public string OriginalPathInfo { get => throw null; } + public object OriginalRequest { get => throw null; } + public string PathInfo { get => throw null; } + public System.Collections.Specialized.NameValueCollection QueryString { get => throw null; } + public string RawUrl { get => throw null; } + public string RemoteIp { get => throw null; } + public ServiceStack.RequestAttributes RequestAttributes { get => throw null; set => throw null; } + public ServiceStack.Web.IRequestPreferences RequestPreferences { get => throw null; } + public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } + public ServiceStack.Web.IResponse Response { get => throw null; } + public string ResponseContentType { get => throw null; set => throw null; } + public string TraceId { get => throw null; } + public T TryResolve() => throw null; + public System.Uri UrlReferrer { get => throw null; } + public bool UseBufferedStream { get => throw null; set => throw null; } + public string UserAgent { get => throw null; } + public string UserHostAddress { get => throw null; } + public string Verb { get => throw null; } + public string XForwardedFor { get => throw null; } + public int? XForwardedPort { get => throw null; } + public string XForwardedProtocol { get => throw null; } + public string XRealIp { get => throw null; } + public static ServiceStack.Logging.ILog log; + } + + // Generated from `ServiceStack.Host.NetCore.NetCoreResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreResponse : ServiceStack.Web.IHasHeaders, ServiceStack.Web.IHttpResponse, ServiceStack.Web.IResponse + { + public void AddHeader(string name, string value) => throw null; + public System.IO.MemoryStream BufferedStream { get => throw null; set => throw null; } + public void ClearCookies() => throw null; + public void Close() => throw null; + public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string ContentType { get => throw null; set => throw null; } + public ServiceStack.Web.ICookies Cookies { get => throw null; } + public object Dto { get => throw null; set => throw null; } + public void End() => throw null; + public void Flush() => throw null; + public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string GetHeader(string name) => throw null; + public bool HasStarted { get => throw null; } + public System.Collections.Generic.Dictionary Headers { get => throw null; } + public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } + public Microsoft.AspNetCore.Http.HttpResponse HttpResponse { get => throw null; } + public bool IsClosed { get => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public bool KeepAlive { get => throw null; set => throw null; } + public NetCoreResponse(ServiceStack.Host.NetCore.NetCoreRequest request, Microsoft.AspNetCore.Http.HttpResponse response) => throw null; + public object OriginalResponse { get => throw null; } + public System.IO.Stream OutputStream { get => throw null; } + public void Redirect(string url) => throw null; + public void RemoveHeader(string name) => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; } + public void SetContentLength(System.Int64 contentLength) => throw null; + 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 bool UseBufferedStream { get => throw null; set => throw null; } + } + + } + } + namespace Html + { + // Generated from `ServiceStack.Html.BasicHtmlMinifier` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BasicHtmlMinifier : ServiceStack.ICompressor + { + public BasicHtmlMinifier() => throw null; + public string Compress(string html) => throw null; + public static string MinifyHtml(string html) => throw null; + } + + // Generated from `ServiceStack.Html.CssMinifier` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CssMinifier : ServiceStack.ICompressor + { + public string Compress(string source) => throw null; + public CssMinifier() => throw null; + public static string MinifyCss(string css) => throw null; + } + + // Generated from `ServiceStack.Html.HtmlCompressor` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlCompressor : ServiceStack.ICompressor + { + public static string ALL_TAGS; + public static string BLOCK_TAGS_MAX; + public static string BLOCK_TAGS_MIN; + public string Compress(string html) => throw null; + public bool CompressCss; + public bool CompressJavaScript; + public ServiceStack.ICompressor CssCompressor; + public bool Enabled; + public bool GenerateStatistics; + public HtmlCompressor() => throw null; + public ServiceStack.ICompressor JavaScriptCompressor; + public static System.Text.RegularExpressions.Regex PHP_TAG_PATTERN; + public bool PreserveLineBreaks; + public System.Collections.Generic.List PreservePatterns; + public bool RemoveComments; + public bool RemoveFormAttributes; + public bool RemoveHttpProtocol; + public bool RemoveHttpsProtocol; + public bool RemoveInputAttributes; + public bool RemoveIntertagSpaces; + public bool RemoveJavaScriptProtocol; + public bool RemoveLinkAttributes; + public bool RemoveMultiSpaces; + public bool RemoveQuotes; + public bool RemoveScriptAttributes; + public bool RemoveStyleAttributes; + public string RemoveSurroundingSpaces; + public static System.Text.RegularExpressions.Regex SERVER_SCRIPT_TAG_PATTERN; + public static System.Text.RegularExpressions.Regex SERVER_SIDE_INCLUDE_PATTERN; + public bool SimpleBooleanAttributes; + public bool SimpleDoctype; + public ServiceStack.Html.HtmlCompressorStatistics Statistics; + } + + // Generated from `ServiceStack.Html.HtmlCompressorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HtmlCompressorExtensions + { + public static void AddPreservePattern(this ServiceStack.Html.HtmlCompressor compressor, params System.Text.RegularExpressions.Regex[] regexes) => throw null; + } + + // Generated from `ServiceStack.Html.HtmlCompressorStatistics` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlCompressorStatistics + { + public ServiceStack.Html.HtmlMetrics CompressedMetrics; + public HtmlCompressorStatistics() => throw null; + public ServiceStack.Html.HtmlMetrics OriginalMetrics; + public int PreservedSize; + public System.Int64 Time; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.Html.HtmlContextExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HtmlContextExtensions + { + public static ServiceStack.Web.IRequest GetHttpRequest(this ServiceStack.Html.IHtmlContext html) => throw null; + } + + // Generated from `ServiceStack.Html.HtmlMetrics` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlMetrics + { + public int EmptyChars; + public int Filesize; + public HtmlMetrics() => throw null; + public int InlineEventSize; + public int InlineScriptSize; + public int InlineStyleSize; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.Html.HtmlStringExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HtmlStringExtensions + { + public static ServiceStack.Host.IHtmlString AsRaw(this ServiceStack.IHtmlString htmlString) => throw null; + } + + // Generated from `ServiceStack.Html.IHtmlContext` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHtmlContext + { + ServiceStack.Web.IHttpRequest HttpRequest { get; } + } + + // Generated from `ServiceStack.Html.IViewEngine` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IViewEngine + { + bool HasView(string viewName, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)); + System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, object dto, System.IO.Stream outputStream); + string RenderPartial(string pageName, object model, bool renderHtml, System.IO.StreamWriter writer = default(System.IO.StreamWriter), ServiceStack.Html.IHtmlContext htmlHelper = default(ServiceStack.Html.IHtmlContext)); + } + + // Generated from `ServiceStack.Html.JSMinifier` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JSMinifier : ServiceStack.ICompressor + { + public string Compress(string js) => throw null; + public JSMinifier() => throw null; + public static string MinifyJs(string js, bool ignoreErrors = default(bool)) => throw null; + } + + // Generated from `ServiceStack.Html.Minifiers` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Minifiers + { + public static ServiceStack.ICompressor Css; + public static ServiceStack.ICompressor Html; + public static ServiceStack.ICompressor HtmlAdvanced; + public static ServiceStack.ICompressor JavaScript; + } + + // Generated from `ServiceStack.Html.Minify` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + [System.Flags] + public enum Minify + { + Css, + Html, + HtmlAdvanced, + JavaScript, + } + + } + namespace HtmlModules + { + // Generated from `ServiceStack.HtmlModules.ApplyToLineContaining` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApplyToLineContaining : ServiceStack.HtmlModules.HtmlModuleLine + { + public ApplyToLineContaining(string token, System.Func, System.ReadOnlyMemory> fn, ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public string Token { get => throw null; } + public override System.ReadOnlyMemory Transform(System.ReadOnlyMemory line) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.FileHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FileHandler : ServiceStack.HtmlModules.IHtmlModulesHandler + { + public System.ReadOnlyMemory Execute(ServiceStack.HtmlModuleContext ctx, string path) => throw null; + public FileHandler(string name) => throw null; + public string Name { get => throw null; } + public System.Func VirtualFilesResolver { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HtmlModules.FileTransformerOptions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FileTransformerOptions + { + public System.Collections.Generic.List BlockTransformers { get => throw null; set => throw null; } + public FileTransformerOptions() => throw null; + public System.Collections.Generic.List FilesTransformers { get => throw null; set => throw null; } + public System.Collections.Generic.List LineTransformers { get => throw null; set => throw null; } + public ServiceStack.HtmlModules.FileTransformerOptions Without(ServiceStack.Run behavior) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.FilesHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FilesHandler : ServiceStack.HtmlModules.IHtmlModulesHandler + { + public System.ReadOnlyMemory Execute(ServiceStack.HtmlModuleContext ctx, string paths) => throw null; + public FilesHandler(string name) => throw null; + public string Name { get => throw null; } + public System.Func VirtualFilesResolver { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HtmlModules.FilesTransformer` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FilesTransformer + { + public ServiceStack.HtmlModules.FilesTransformer Clone(System.Action with = default(System.Action)) => throw null; + public void CopyAll(ServiceStack.IO.IVirtualFiles source, ServiceStack.IO.IVirtualFiles target, bool cleanTarget = default(bool), System.Func ignore = default(System.Func), System.Action afterCopy = default(System.Action)) => throw null; + public static System.Collections.Generic.List CssLineTransformers { get => throw null; } + public static ServiceStack.HtmlModules.FilesTransformer Default { get => throw null; } + public static ServiceStack.HtmlModules.FilesTransformer Defaults(bool? debugMode = default(bool?), System.Action with = default(System.Action)) => throw null; + public System.Collections.Generic.Dictionary FileExtensions { get => throw null; set => throw null; } + public FilesTransformer() => throw null; + public ServiceStack.HtmlModules.FileTransformerOptions GetExt(string fileExt) => throw null; + public static System.Collections.Generic.List HtmlLineTransformers { get => throw null; } + public static System.Collections.Generic.List JsLineTransformers { get => throw null; } + public static ServiceStack.HtmlModules.FilesTransformer None { get => throw null; } + public string ReadAll(ServiceStack.IO.IVirtualFile file) => throw null; + public static void RecreateDirectory(string dirPath, int timeoutMs = default(int)) => throw null; + public ServiceStack.HtmlModules.FilesTransformer Without(ServiceStack.Run behaviour) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.FilesTransformerUtils` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class FilesTransformerUtils + { + public static ServiceStack.HtmlModules.FilesTransformer Defaults(System.Action with = default(System.Action)) => throw null; + public static ServiceStack.HtmlModules.FilesTransformer Minify(this ServiceStack.HtmlModules.FilesTransformer options, ServiceStack.Html.Minify minify, ServiceStack.Run behavior = default(ServiceStack.Run)) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.GatewayHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GatewayHandler : ServiceStack.HtmlModules.IHtmlModulesHandler + { + public System.ReadOnlyMemory Execute(ServiceStack.HtmlModuleContext ctx, string args) => throw null; + public GatewayHandler(string name) => throw null; + public string Name { get => throw null; } + } + + // Generated from `ServiceStack.HtmlModules.HtmlHandlerFragment` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlHandlerFragment : ServiceStack.HtmlModules.IHtmlModuleFragment + { + public string Args { get => throw null; } + public HtmlHandlerFragment(string token, string args, System.Func> fn) => throw null; + public string Token { get => throw null; } + public System.Threading.Tasks.Task WriteToAsync(ServiceStack.HtmlModuleContext ctx, System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.HtmlModuleBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class HtmlModuleBlock + { + public ServiceStack.Run Behaviour { get => throw null; set => throw null; } + public string EndTag { get => throw null; } + protected HtmlModuleBlock(ServiceStack.Run behaviour) => throw null; + protected HtmlModuleBlock(string startTag, string endTag, ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public string StartTag { get => throw null; } + public virtual string Transform(System.Collections.Generic.List lines) => throw null; + public virtual string Transform(string block) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.HtmlModuleLine` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class HtmlModuleLine + { + public ServiceStack.Run Behaviour { get => throw null; set => throw null; } + protected HtmlModuleLine() => throw null; + public abstract System.ReadOnlyMemory Transform(System.ReadOnlyMemory line); + } + + // Generated from `ServiceStack.HtmlModules.HtmlTextFragment` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlTextFragment : ServiceStack.HtmlModules.IHtmlModuleFragment + { + public HtmlTextFragment(System.ReadOnlyMemory text) => throw null; + public HtmlTextFragment(string text) => throw null; + public System.ReadOnlyMemory Text { get => throw null; } + public System.ReadOnlyMemory TextUtf8 { get => throw null; } + public System.Threading.Tasks.Task WriteToAsync(ServiceStack.HtmlModuleContext ctx, System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.HtmlTokenFragment` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlTokenFragment : ServiceStack.HtmlModules.IHtmlModuleFragment + { + public HtmlTokenFragment(string token, System.Func> fn) => throw null; + public string Token { get => throw null; } + public System.Threading.Tasks.Task WriteToAsync(ServiceStack.HtmlModuleContext ctx, System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.IHtmlModuleFragment` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHtmlModuleFragment + { + System.Threading.Tasks.Task WriteToAsync(ServiceStack.HtmlModuleContext ctx, System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); + } + + // Generated from `ServiceStack.HtmlModules.IHtmlModulesHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHtmlModulesHandler + { + System.ReadOnlyMemory Execute(ServiceStack.HtmlModuleContext ctx, string args); + string Name { get; } + } + + // Generated from `ServiceStack.HtmlModules.MinifyBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MinifyBlock : ServiceStack.HtmlModules.HtmlModuleBlock + { + public ServiceStack.ICompressor Compressor { get => throw null; } + public System.Func Convert { get => throw null; set => throw null; } + public System.Collections.Generic.List LineTransformers { get => throw null; set => throw null; } + public MinifyBlock(ServiceStack.ICompressor compressor, ServiceStack.Run behaviour = default(ServiceStack.Run)) : base(default(ServiceStack.Run)) => throw null; + public MinifyBlock(string startTag, string endTag, ServiceStack.ICompressor compressor, ServiceStack.Run behaviour = default(ServiceStack.Run)) : base(default(ServiceStack.Run)) => throw null; + public override string Transform(string block) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.RawBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RawBlock : ServiceStack.HtmlModules.HtmlModuleBlock + { + public RawBlock(string startTag, string endTag, ServiceStack.Run behaviour = default(ServiceStack.Run)) : base(default(ServiceStack.Run)) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.RemoveBlock` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RemoveBlock : ServiceStack.HtmlModules.HtmlModuleBlock + { + public RemoveBlock(string startTag, string endTag, ServiceStack.Run behaviour = default(ServiceStack.Run)) : base(default(ServiceStack.Run)) => throw null; + public override string Transform(string block) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.RemoveLineContaining` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RemoveLineContaining : ServiceStack.HtmlModules.HtmlModuleLine + { + public RemoveLineContaining(string[] tokens, ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public RemoveLineContaining(string token, ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public string[] Tokens { get => throw null; } + public override System.ReadOnlyMemory Transform(System.ReadOnlyMemory line) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.RemoveLineEndingWith` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RemoveLineEndingWith : ServiceStack.HtmlModules.HtmlModuleLine + { + public bool IgnoreWhiteSpace { get => throw null; } + public RemoveLineEndingWith(string[] prefixes, bool ignoreWhiteSpace = default(bool), ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public RemoveLineEndingWith(string suffix, bool ignoreWhiteSpace = default(bool), ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public string[] Suffixes { get => throw null; } + public override System.ReadOnlyMemory Transform(System.ReadOnlyMemory line) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.RemoveLineStartingWith` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RemoveLineStartingWith : ServiceStack.HtmlModules.HtmlModuleLine + { + public bool IgnoreWhiteSpace { get => throw null; } + public string[] Prefixes { get => throw null; } + public RemoveLineStartingWith(string[] prefixes, bool ignoreWhiteSpace = default(bool), ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public RemoveLineStartingWith(string prefix, bool ignoreWhiteSpace = default(bool), ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public override System.ReadOnlyMemory Transform(System.ReadOnlyMemory line) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.RemoveLineWithOnlyWhitespace` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RemoveLineWithOnlyWhitespace : ServiceStack.HtmlModules.HtmlModuleLine + { + public RemoveLineWithOnlyWhitespace(ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public override System.ReadOnlyMemory Transform(System.ReadOnlyMemory line) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.RemovePrefixesFromLine` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RemovePrefixesFromLine : ServiceStack.HtmlModules.HtmlModuleLine + { + public bool IgnoreWhiteSpace { get => throw null; } + public string[] Prefixes { get => throw null; } + public RemovePrefixesFromLine(string[] prefixes, bool ignoreWhiteSpace = default(bool), ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public RemovePrefixesFromLine(string prefix, bool ignoreWhiteSpace = default(bool), ServiceStack.Run behaviour = default(ServiceStack.Run)) => throw null; + public override System.ReadOnlyMemory Transform(System.ReadOnlyMemory line) => throw null; + } + + // Generated from `ServiceStack.HtmlModules.SharedFolder` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharedFolder : ServiceStack.HtmlModules.IHtmlModulesHandler + { + public string DefaultExt { get => throw null; } + public System.ReadOnlyMemory Execute(ServiceStack.HtmlModuleContext ctx, string files) => throw null; + public string Name { get => throw null; } + public string SharedDir { get => throw null; set => throw null; } + public SharedFolder(string name, string sharedDir, string defaultExt) => throw null; + } + + } + namespace Internal + { + // Generated from `ServiceStack.Internal.IServiceStackAsyncDisposable` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + internal interface IServiceStackAsyncDisposable + { + } + + } + namespace Messaging + { + // Generated from `ServiceStack.Messaging.BackgroundMqClient` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BackgroundMqClient : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.Messaging.IMessageQueueClient, System.IDisposable + { + public void Ack(ServiceStack.Messaging.IMessage message) => throw null; + public BackgroundMqClient(ServiceStack.Messaging.BackgroundMqService mqService) => throw null; + public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; + public void Dispose() => throw null; + public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; + public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; + public string GetTempQueueName() => throw null; + public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; + public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(T messageBody) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public void SendOneWay(object requestDto) => throw null; + public void SendOneWay(string queueName, object requestDto) => throw null; + } + + // Generated from `ServiceStack.Messaging.BackgroundMqCollection<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BackgroundMqCollection : ServiceStack.Messaging.IMqCollection, System.IDisposable + { + public void Add(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public BackgroundMqCollection(ServiceStack.Messaging.BackgroundMqClient mqClient, ServiceStack.Messaging.IMessageHandlerFactory handlerFactory, int threadCount, int outQMaxSize) => throw null; + public void Clear(string queueName) => throw null; + public ServiceStack.Messaging.IMqWorker CreateWorker(string mqName) => throw null; + public void Dispose() => throw null; + public string GetDescription() => throw null; + public System.Collections.Generic.Dictionary GetDescriptionMap() => throw null; + public ServiceStack.Messaging.IMessageHandlerFactory HandlerFactory { get => throw null; } + public ServiceStack.Messaging.BackgroundMqClient MqClient { get => throw null; } + public int OutQMaxSize { get => throw null; set => throw null; } + public System.Type QueueType { get => throw null; } + public int ThreadCount { get => throw null; } + public bool TryTake(string queueName, out ServiceStack.Messaging.IMessage message) => throw null; + public bool TryTake(string queueName, out ServiceStack.Messaging.IMessage message, System.TimeSpan timeout) => throw null; + } + + // Generated from `ServiceStack.Messaging.BackgroundMqMessageFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BackgroundMqMessageFactory : ServiceStack.Messaging.IMessageFactory, ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + { + public BackgroundMqMessageFactory(ServiceStack.Messaging.BackgroundMqClient mqClient) => throw null; + public ServiceStack.Messaging.IMessageProducer CreateMessageProducer() => throw null; + public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; + public void Dispose() => throw null; + } + + // Generated from `ServiceStack.Messaging.BackgroundMqService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BackgroundMqService : ServiceStack.Messaging.IMessageService, System.IDisposable + { + public BackgroundMqService() => throw null; + protected ServiceStack.Messaging.IMessageHandlerFactory CreateMessageHandlerFactory(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; + public bool DisablePriorityQueues { set => throw null; } + public bool DisablePublishingResponses { set => throw null; } + public bool DisablePublishingToOutq { set => throw null; } + public void Dispose() => throw null; + public bool EnablePriorityQueues { set => throw null; } + public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; + public ServiceStack.Messaging.IMqWorker[] GetAllWorkers() => throw null; + public ServiceStack.Messaging.IMqCollection GetCollection(System.Type type) => throw null; + public ServiceStack.Messaging.IMessageHandlerStats GetStats() => throw null; + public string GetStatsDescription() => throw null; + public string GetStatus() => throw null; + public ServiceStack.Messaging.IMqWorker[] GetWorkers(string queueName) => throw null; + public ServiceStack.Messaging.IMessageFactory MessageFactory { get => throw null; } + public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public System.Collections.Generic.List> OutHandlers { get => throw null; } + public int OutQMaxSize { get => throw null; set => throw null; } + public string[] PriorityQueuesWhitelist { get => throw null; set => throw null; } + public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public string[] PublishResponsesWhitelist { get => throw null; set => throw null; } + public string[] PublishToOutqWhitelist { get => throw null; set => throw null; } + public void RegisterHandler(System.Func, object> processMessageFn) => throw null; + public void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; + public void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx, int noOfThreads) => throw null; + public void RegisterHandler(System.Func, object> processMessageFn, int noOfThreads) => throw null; + public System.Collections.Generic.List RegisteredTypes { get => throw null; } + public System.Func RequestFilter { get => throw null; set => throw null; } + public System.Func ResponseFilter { get => throw null; set => throw null; } + public int RetryCount { get => throw null; set => throw null; } + public void Start() => throw null; + public void Stop() => throw null; + public ServiceStack.Messaging.IMessage TryGet(string queueName) => throw null; + } + + // Generated from `ServiceStack.Messaging.BackgroundMqWorker` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BackgroundMqWorker : ServiceStack.Messaging.IMqWorker, System.IDisposable + { + public BackgroundMqWorker(string queueName, System.Collections.Concurrent.BlockingCollection queue, ServiceStack.Messaging.BackgroundMqClient mqClient, ServiceStack.Messaging.IMessageHandler handler) => throw null; + public void Dispose() => throw null; + public ServiceStack.Messaging.IMessageHandlerStats GetStats() => throw null; + public string QueueName { get => throw null; } + public void Stop() => throw null; + } + + // Generated from `ServiceStack.Messaging.IMessageHandlerDisposer` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessageHandlerDisposer + { + void DisposeMessageHandler(ServiceStack.Messaging.IMessageHandler messageHandler); + } + + // Generated from `ServiceStack.Messaging.IMessageHandlerFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMessageHandlerFactory + { + ServiceStack.Messaging.IMessageHandler CreateMessageHandler(); + } + + // Generated from `ServiceStack.Messaging.IMqCollection` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMqCollection : System.IDisposable + { + void Add(string queueName, ServiceStack.Messaging.IMessage message); + void Clear(string queueName); + ServiceStack.Messaging.IMqWorker CreateWorker(string mqName); + string GetDescription(); + System.Collections.Generic.Dictionary GetDescriptionMap(); + System.Type QueueType { get; } + int ThreadCount { get; } + bool TryTake(string queueName, out ServiceStack.Messaging.IMessage message); + bool TryTake(string queueName, out ServiceStack.Messaging.IMessage message, System.TimeSpan timeout); + } + + // Generated from `ServiceStack.Messaging.IMqWorker` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IMqWorker : System.IDisposable + { + ServiceStack.Messaging.IMessageHandlerStats GetStats(); + string QueueName { get; } + void Stop(); + } + + // Generated from `ServiceStack.Messaging.InMemoryTransientMessageFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryTransientMessageFactory : ServiceStack.Messaging.IMessageFactory, ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + { + public ServiceStack.Messaging.IMessageProducer CreateMessageProducer() => throw null; + public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; + public ServiceStack.Messaging.IMessageService CreateMessageService() => throw null; + public void Dispose() => throw null; + public InMemoryTransientMessageFactory() => throw null; + public InMemoryTransientMessageFactory(ServiceStack.Messaging.InMemoryTransientMessageService transientMessageService) => throw null; + } + + // Generated from `ServiceStack.Messaging.InMemoryTransientMessageService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryTransientMessageService : ServiceStack.Messaging.TransientMessageServiceBase + { + public InMemoryTransientMessageService() => throw null; + public InMemoryTransientMessageService(ServiceStack.Messaging.InMemoryTransientMessageFactory factory) => throw null; + public override ServiceStack.Messaging.IMessageFactory MessageFactory { get => throw null; } + public ServiceStack.Messaging.MessageQueueClientFactory MessageQueueFactory { get => throw null; } + } + + // Generated from `ServiceStack.Messaging.MessageHandler<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MessageHandler : ServiceStack.Messaging.IMessageHandler, System.IDisposable + { + public const int DefaultRetryCount = default; + public void Dispose() => throw null; + public ServiceStack.Messaging.IMessageHandlerStats GetStats() => throw null; + public System.DateTime? LastMessageProcessed { get => throw null; set => throw null; } + public MessageHandler(ServiceStack.Messaging.IMessageService messageService, System.Func, object> processMessageFn) => throw null; + public MessageHandler(ServiceStack.Messaging.IMessageService messageService, System.Func, object> processMessageFn, System.Action, System.Exception> processInExceptionFn, int retryCount) => throw null; + public System.Type MessageType { get => throw null; } + public ServiceStack.Messaging.IMessageQueueClient MqClient { get => throw null; set => throw null; } + public void Process(ServiceStack.Messaging.IMessageQueueClient mqClient) => throw null; + public void ProcessMessage(ServiceStack.Messaging.IMessageQueueClient mqClient, ServiceStack.Messaging.IMessage message) => throw null; + public void ProcessMessage(ServiceStack.Messaging.IMessageQueueClient mqClient, object mqResponse) => throw null; + public int ProcessQueue(ServiceStack.Messaging.IMessageQueueClient mqClient, string queueName, System.Func doNext = default(System.Func)) => throw null; + public string[] ProcessQueueNames { get => throw null; set => throw null; } + public string[] PublishResponsesWhitelist { get => throw null; set => throw null; } + public string[] PublishToOutqWhitelist { get => throw null; set => throw null; } + public System.Func ReplyClientFactory { get => throw null; set => throw null; } + public int TotalMessagesFailed { get => throw null; set => throw null; } + public int TotalMessagesProcessed { get => throw null; set => throw null; } + public int TotalNormalMessagesReceived { get => throw null; set => throw null; } + public int TotalOutMessagesReceived { get => throw null; set => throw null; } + public int TotalPriorityMessagesReceived { get => throw null; set => throw null; } + public int TotalRetries { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Messaging.MessageHandlerFactory<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MessageHandlerFactory : ServiceStack.Messaging.IMessageHandlerFactory + { + public ServiceStack.Messaging.IMessageHandler CreateMessageHandler() => throw null; + public const int DefaultRetryCount = default; + public MessageHandlerFactory(ServiceStack.Messaging.IMessageService messageService, System.Func, object> processMessageFn) => throw null; + public MessageHandlerFactory(ServiceStack.Messaging.IMessageService messageService, System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; + public string[] PublishResponsesWhitelist { get => throw null; set => throw null; } + public string[] PublishToOutqWhitelist { get => throw null; set => throw null; } + public System.Func RequestFilter { get => throw null; set => throw null; } + public System.Func ResponseFilter { get => throw null; set => throw null; } + public int RetryCount { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Messaging.TransientMessageServiceBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class TransientMessageServiceBase : ServiceStack.Messaging.IMessageHandlerDisposer, ServiceStack.Messaging.IMessageService, System.IDisposable + { + protected ServiceStack.Messaging.IMessageHandlerFactory CreateMessageHandlerFactory(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; + public const int DefaultRetryCount = default; + public virtual void Dispose() => throw null; + public virtual void DisposeMessageHandler(ServiceStack.Messaging.IMessageHandler messageHandler) => throw null; + public ServiceStack.Messaging.IMessageHandlerStats GetStats() => throw null; + public string GetStatsDescription() => throw null; + public string GetStatus() => throw null; + public abstract ServiceStack.Messaging.IMessageFactory MessageFactory { get; } + public int PoolSize { get => throw null; set => throw null; } + public void RegisterHandler(System.Func, object> processMessageFn) => throw null; + public void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; + public void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx, int noOfThreads) => throw null; + public void RegisterHandler(System.Func, object> processMessageFn, int noOfThreads) => throw null; + public System.Collections.Generic.List RegisteredTypes { get => throw null; } + public System.TimeSpan? RequestTimeOut { get => throw null; set => throw null; } + public int RetryCount { get => throw null; set => throw null; } + public virtual void Start() => throw null; + public virtual void Stop() => throw null; + protected TransientMessageServiceBase() => throw null; + protected TransientMessageServiceBase(int retryAttempts, System.TimeSpan? requestTimeOut) => throw null; + } + + // Generated from `ServiceStack.Messaging.WorkerOperation` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class WorkerOperation + { + public const string ControlCommand = default; + public const int NoOp = default; + public const int Reset = default; + public const int Restart = default; + public const int Stop = default; + } + + } + namespace Metadata + { + // Generated from `ServiceStack.Metadata.BaseMetadataHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class BaseMetadataHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler + { + protected bool AssertAccess(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + protected BaseMetadataHandler() => throw null; + public string ContentFormat { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + protected abstract string CreateMessage(System.Type dtoType); + public virtual string CreateResponse(System.Type type) => throw null; + public abstract ServiceStack.Format Format { get; } + protected virtual System.Threading.Tasks.Task ProcessOperationsAsync(System.IO.Stream writer, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + protected virtual System.Threading.Tasks.Task RenderOperationAsync(System.IO.Stream output, ServiceStack.Web.IRequest httpReq, string operationName, string requestMessage, string responseMessage, string metadataHtml, ServiceStack.Host.Operation operation) => throw null; + protected virtual System.Threading.Tasks.Task RenderOperationsAsync(System.IO.Stream output, ServiceStack.Web.IRequest httpReq, ServiceStack.Host.ServiceMetadata metadata) => throw null; + } + + // Generated from `ServiceStack.Metadata.BaseSoapMetadataHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class BaseSoapMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler + { + protected BaseSoapMetadataHandler() => throw null; + public string OperationName { get => throw null; set => throw null; } + public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; + } + + // Generated from `ServiceStack.Metadata.CustomMetadataHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler + { + protected override string CreateMessage(System.Type dtoType) => throw null; + public CustomMetadataHandler(string contentType, string format) => throw null; + public override ServiceStack.Format Format { get => throw null; } + } + + // Generated from `ServiceStack.Metadata.IndexMetadataHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IndexMetadataHandler : ServiceStack.Metadata.BaseSoapMetadataHandler + { + protected override string CreateMessage(System.Type dtoType) => throw null; + public override ServiceStack.Format Format { get => throw null; } + public IndexMetadataHandler() => throw null; + } + + // Generated from `ServiceStack.Metadata.IndexOperationsControl` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class IndexOperationsControl + { + public System.Func GetOperation { get => throw null; set => throw null; } + public IndexOperationsControl() => throw null; + public ServiceStack.Metadata.MetadataPagesConfig MetadataConfig { get => throw null; set => throw null; } + public System.Collections.Generic.List OperationNames { get => throw null; set => throw null; } + public System.Threading.Tasks.Task RenderAsync(System.IO.Stream output) => throw null; + public string RenderRow(string operationName) => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public string Title { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ToAbsoluteUrls(System.Collections.Generic.Dictionary linksMap) => throw null; + public int XsdServiceTypesIndex { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Xsds { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Metadata.JsonMetadataHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler + { + protected override string CreateMessage(System.Type dtoType) => throw null; + public override ServiceStack.Format Format { get => throw null; } + public JsonMetadataHandler() => throw null; + } + + // Generated from `ServiceStack.Metadata.JsvMetadataHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsvMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler + { + protected override string CreateMessage(System.Type dtoType) => throw null; + public override ServiceStack.Format Format { get => throw null; } + public JsvMetadataHandler() => throw null; + } + + // Generated from `ServiceStack.Metadata.MetadataConfig` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataConfig + { + public string AsyncOneWayUri { get => throw null; set => throw null; } + public ServiceStack.Metadata.MetadataConfig Create(string format, string name = default(string)) => throw null; + public string DefaultMetadataUri { get => throw null; set => throw null; } + public string Format { get => throw null; set => throw null; } + public MetadataConfig(string format, string name, string syncReplyUri, string asyncOneWayUri, string defaultMetadataUri) => throw null; + public string Name { get => throw null; set => throw null; } + public string SyncReplyUri { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Metadata.MetadataPagesConfig` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataPagesConfig + { + public bool AlwaysHideInMetadata(string operationName) => throw null; + public System.Collections.Generic.List AvailableFormatConfigs { get => throw null; set => throw null; } + public bool CanAccess(ServiceStack.Format format, string operation) => throw null; + public bool CanAccess(ServiceStack.Web.IRequest httpRequest, ServiceStack.Format format, string operation) => throw null; + public ServiceStack.Metadata.MetadataConfig GetMetadataConfig(string format) => throw null; + public bool IsVisible(ServiceStack.Web.IRequest httpRequest, ServiceStack.Format format, string operation) => throw null; + public MetadataPagesConfig(ServiceStack.Host.ServiceMetadata metadata, ServiceStack.Metadata.ServiceEndpointsMetadataConfig metadataConfig, System.Collections.Generic.HashSet ignoredFormats, System.Collections.Generic.List contentTypeFormats) => throw null; + } + + // Generated from `ServiceStack.Metadata.OperationControl` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class OperationControl + { + public string ContentFormat { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public ServiceStack.Format Format { set => throw null; } + public virtual string GetHttpRequestTemplate() => throw null; + public string HostName { get => throw null; set => throw null; } + public ServiceStack.Web.IRequest HttpRequest { get => throw null; set => throw null; } + public virtual string HttpRequestTemplateWithBody(string httpMethod) => throw null; + public virtual string HttpRequestTemplateWithoutBody(string httpMethod) => throw null; + public virtual string HttpResponseTemplate { get => throw null; } + public ServiceStack.Metadata.ServiceEndpointsMetadataConfig MetadataConfig { get => throw null; set => throw null; } + public string MetadataHtml { get => throw null; set => throw null; } + public ServiceStack.Host.Operation Operation { get => throw null; set => throw null; } + public OperationControl() => throw null; + public string OperationName { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task RenderAsync(System.IO.Stream output) => throw null; + public string RequestMessage { get => throw null; set => throw null; } + public virtual string RequestUri { get => throw null; } + public string ResponseMessage { get => throw null; set => throw null; } + public virtual string ResponseTemplate { get => throw null; } + public string Title { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Metadata.ServiceEndpointsMetadataConfig` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServiceEndpointsMetadataConfig + { + public static ServiceStack.Metadata.ServiceEndpointsMetadataConfig Create(string serviceStackHandlerPrefix) => throw null; + public ServiceStack.Metadata.MetadataConfig Custom { get => throw null; set => throw null; } + public string DefaultMetadataUri { get => throw null; set => throw null; } + public ServiceStack.Metadata.MetadataConfig GetEndpointConfig(string format) => throw null; + public ServiceStack.Metadata.SoapMetadataConfig Soap11 { get => throw null; set => throw null; } + public ServiceStack.Metadata.SoapMetadataConfig Soap12 { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Metadata.Soap11WsdlTemplate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Soap11WsdlTemplate : ServiceStack.Metadata.WsdlTemplateBase + { + protected override string OneWayActionsTemplate { get => throw null; } + protected override string OneWayBindingContainerTemplate { get => throw null; } + protected override string OneWayEndpointUriTemplate { get => throw null; } + protected override string ReplyActionsTemplate { get => throw null; } + protected override string ReplyBindingContainerTemplate { get => throw null; } + protected override string ReplyEndpointUriTemplate { get => throw null; } + public Soap11WsdlTemplate() => throw null; + public override string WsdlName { get => throw null; } + } + + // Generated from `ServiceStack.Metadata.Soap12WsdlTemplate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Soap12WsdlTemplate : ServiceStack.Metadata.WsdlTemplateBase + { + protected override string OneWayActionsTemplate { get => throw null; } + protected override string OneWayBindingContainerTemplate { get => throw null; } + protected override string OneWayEndpointUriTemplate { get => throw null; } + protected override string ReplyActionsTemplate { get => throw null; } + protected override string ReplyBindingContainerTemplate { get => throw null; } + protected override string ReplyEndpointUriTemplate { get => throw null; } + public Soap12WsdlTemplate() => throw null; + public override string WsdlName { get => throw null; } + } + + // Generated from `ServiceStack.Metadata.SoapMetadataConfig` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SoapMetadataConfig : ServiceStack.Metadata.MetadataConfig + { + public SoapMetadataConfig(string format, string name, string syncReplyUri, string asyncOneWayUri, string defaultMetadataUri, string wsdlMetadataUri) : base(default(string), default(string), default(string), default(string), default(string)) => throw null; + public string WsdlMetadataUri { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Metadata.WsdlTemplateBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class WsdlTemplateBase + { + protected virtual string OneWayActionsTemplate { get => throw null; } + protected abstract string OneWayBindingContainerTemplate { get; } + public string OneWayEndpointUri { get => throw null; set => throw null; } + protected abstract string OneWayEndpointUriTemplate { get; } + protected virtual string OneWayMessagesTemplate { get => throw null; } + public System.Collections.Generic.IList OneWayOperationNames { get => throw null; set => throw null; } + protected virtual string OneWayOperationsTemplate { get => throw null; } + public string RepeaterTemplate(string template, System.Collections.Generic.IEnumerable dataSource) => throw null; + public string RepeaterTemplate(string template, object arg0, System.Collections.Generic.IEnumerable dataSource) => throw null; + protected virtual string ReplyActionsTemplate { get => throw null; } + protected abstract string ReplyBindingContainerTemplate { get; } + public string ReplyEndpointUri { get => throw null; set => throw null; } + protected abstract string ReplyEndpointUriTemplate { get; } + protected virtual string ReplyMessagesTemplate { get => throw null; } + public System.Collections.Generic.IList ReplyOperationNames { get => throw null; set => throw null; } + protected virtual string ReplyOperationsTemplate { get => throw null; } + public string ServiceName { get => throw null; set => throw null; } + public override string ToString() => throw null; + public abstract string WsdlName { get; } + protected WsdlTemplateBase() => throw null; + public string Xsd { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Metadata.XmlMetadataHandler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler + { + protected override string CreateMessage(System.Type dtoType) => throw null; + public override ServiceStack.Format Format { get => throw null; } + public XmlMetadataHandler() => throw null; + } + + } + namespace MiniProfiler + { + // Generated from `ServiceStack.MiniProfiler.HtmlString` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HtmlString : ServiceStack.Host.IHtmlString, ServiceStack.IHtmlString + { + public static ServiceStack.MiniProfiler.HtmlString Empty; + public HtmlString(string value) => throw null; + public string ToHtmlString() => throw null; + public override string ToString() => throw null; + } + + // Generated from `ServiceStack.MiniProfiler.IProfiler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IProfiler + { + ServiceStack.IHtmlString RenderIncludes(ServiceStack.MiniProfiler.RenderPosition? position = default(ServiceStack.MiniProfiler.RenderPosition?), bool? showTrivial = default(bool?), bool? showTimeWithChildren = default(bool?), int? maxTracesToShow = default(int?), bool xhtml = default(bool), bool? showControls = default(bool?)); + ServiceStack.MiniProfiler.IProfiler Start(); + System.IDisposable Step(string name); + void Stop(); + } + + // Generated from `ServiceStack.MiniProfiler.NullProfiler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NullProfiler : ServiceStack.MiniProfiler.IProfiler + { + public static ServiceStack.MiniProfiler.NullProfiler Instance; + public NullProfiler() => throw null; + public ServiceStack.IHtmlString RenderIncludes(ServiceStack.MiniProfiler.RenderPosition? position = default(ServiceStack.MiniProfiler.RenderPosition?), bool? showTrivial = default(bool?), bool? showTimeWithChildren = default(bool?), int? maxTracesToShow = default(int?), bool xhtml = default(bool), bool? showControls = default(bool?)) => throw null; + public ServiceStack.MiniProfiler.IProfiler Start() => throw null; + public System.IDisposable Step(string name) => throw null; + public void Stop() => throw null; + } + + // Generated from `ServiceStack.MiniProfiler.Profiler` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Profiler + { + public static ServiceStack.MiniProfiler.IProfiler Current { get => throw null; set => throw null; } + public static ServiceStack.IHtmlString RenderIncludes(ServiceStack.MiniProfiler.RenderPosition? position = default(ServiceStack.MiniProfiler.RenderPosition?), bool? showTrivial = default(bool?), bool? showTimeWithChildren = default(bool?), int? maxTracesToShow = default(int?), bool xhtml = default(bool), bool? showControls = default(bool?)) => throw null; + public static ServiceStack.MiniProfiler.IProfiler Start() => throw null; + public static System.IDisposable Step(string name) => throw null; + public static void Stop() => throw null; + } + + // Generated from `ServiceStack.MiniProfiler.RenderPosition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum RenderPosition + { + Left, + Right, + } + + } + namespace NativeTypes + { + // Generated from `ServiceStack.NativeTypes.AddCodeDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate string AddCodeDelegate(System.Collections.Generic.List allTypes, ServiceStack.MetadataTypesConfig config); + + // Generated from `ServiceStack.NativeTypes.CreateTypeOptions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CreateTypeOptions + { + public CreateTypeOptions() => throw null; + public System.Func ImplementsFn { get => throw null; set => throw null; } + public bool IsNestedType { get => throw null; set => throw null; } + public bool IsRequest { get => throw null; set => throw null; } + public bool IsResponse { get => throw null; set => throw null; } + public bool IsType { get => throw null; set => throw null; } + public ServiceStack.MetadataOperationType Op { get => throw null; set => throw null; } + public System.Collections.Generic.List Routes { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.ILangGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ILangGenerator + { + System.Collections.Generic.List AddQueryParamOptions { get; set; } + string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes); + bool WithoutOptions { get; set; } + } + + // Generated from `ServiceStack.NativeTypes.INativeTypesMetadata` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface INativeTypesMetadata + { + ServiceStack.MetadataTypesConfig GetConfig(ServiceStack.NativeTypes.NativeTypesBase req); + ServiceStack.NativeTypes.MetadataTypesGenerator GetGenerator(); + ServiceStack.MetadataTypes GetMetadataTypes(ServiceStack.Web.IRequest req, ServiceStack.MetadataTypesConfig config = default(ServiceStack.MetadataTypesConfig), System.Func predicate = default(System.Func)); + } + + // Generated from `ServiceStack.NativeTypes.LangGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class LangGeneratorExtensions + { + public static string GenerateSourceCode(this System.Collections.Generic.List metadataTypes, string lang, ServiceStack.Web.IRequest req, System.Action configure = default(System.Action)) => throw null; + public static string GenerateSourceCode(this ServiceStack.MetadataTypes metadataTypes, ServiceStack.MetadataTypesConfig typesConfig, string lang, ServiceStack.Web.IRequest req, System.Action configure = default(System.Action)) => throw null; + } + + // Generated from `ServiceStack.NativeTypes.MetadataExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MetadataExtensions + { + public static System.Collections.Generic.List CreateSortedTypeList(this System.Collections.Generic.List allTypes) => throw null; + public static void Emit(this ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataPropertyType propType, ServiceStack.Lang lang) => throw null; + public static void Emit(this ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, ServiceStack.Lang lang) => throw null; + public static System.Collections.Generic.List GetAllMetadataTypes(this ServiceStack.MetadataTypes metadata) => throw null; + public static System.Collections.Generic.IEnumerable GetAllTypes(this ServiceStack.MetadataTypes metadata) => throw null; + public static System.Collections.Generic.List GetAllTypesOrdered(this ServiceStack.MetadataTypes metadata) => throw null; + public static string GetAttributeName(this System.Attribute attr) => throw null; + public static System.Collections.Generic.HashSet GetDefaultNamespaces(this ServiceStack.MetadataTypesConfig config, ServiceStack.MetadataTypes metadata) => throw null; + public static System.Collections.Generic.IEnumerable GetDepTypes(System.Collections.Generic.Dictionary> deps, System.Collections.Generic.Dictionary typesMap, System.Collections.Generic.HashSet considered, ServiceStack.MetadataType type) => throw null; + public static System.Type[] GetDirectInterfaces(this System.Type type) => throw null; + public static string GetEnumMemberValue(this ServiceStack.MetadataType type, int i) => throw null; + public static System.Collections.Generic.List GetIncludeList(ServiceStack.MetadataTypes metadata, ServiceStack.MetadataTypesConfig config) => throw null; + public static System.Collections.Generic.HashSet GetReferencedTypeNames(this ServiceStack.MetadataType type, ServiceStack.MetadataTypes metadataTypes) => throw null; + public static string GetTypeName(this ServiceStack.MetadataPropertyType prop, ServiceStack.MetadataTypesConfig config, System.Collections.Generic.List allTypes) => throw null; + public static System.Collections.Generic.List GetValues(this System.Collections.Generic.Dictionary> map, string key) => throw null; + public static bool IgnoreSystemType(this ServiceStack.MetadataType type) => throw null; + public static bool IgnoreType(this ServiceStack.MetadataType type, ServiceStack.MetadataTypesConfig config, System.Collections.Generic.List overrideIncludeType = default(System.Collections.Generic.List)) => throw null; + public static bool IsServiceStackType(this System.Type type) => throw null; + public static System.Collections.Generic.List OrderTypesByDeps(this System.Collections.Generic.List types) => throw null; + public static System.Collections.Generic.List PopulatePrimaryKey(this System.Collections.Generic.List props) => throw null; + public static void Push(this System.Collections.Generic.Dictionary> map, string key, string value) => throw null; + public static string QuotedSafeValue(this string value) => throw null; + public static System.Collections.Generic.List RemoveIgnoredTypes(this ServiceStack.MetadataTypes metadata, ServiceStack.MetadataTypesConfig config) => throw null; + public static void RemoveIgnoredTypesForNet(this ServiceStack.MetadataTypes metadata, ServiceStack.MetadataTypesConfig config) => throw null; + public static string SafeComment(this string comment) => throw null; + public static string SafeToken(this string token) => throw null; + public static string SafeValue(this string value) => throw null; + public static string SanitizeType(this string typeName) => throw null; + public static string StripGenericType(string type, string subType) => throw null; + public static ServiceStack.MetadataAttribute ToMetadataAttribute(this ServiceStack.MetadataRoute route) => throw null; + public static ServiceStack.MetadataType ToMetadataType(this ServiceStack.MetadataTypeName type) => throw null; + public static ServiceStack.MetadataTypeName ToMetadataTypeName(this ServiceStack.MetadataType type) => throw null; + public static string ToPrettyName(this System.Type type) => throw null; + } + + // Generated from `ServiceStack.NativeTypes.MetadataTypesGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataTypesGenerator + { + public static System.Collections.Generic.Dictionary> AttributeConverters { get => throw null; } + public static System.Reflection.FieldInfo GetEnumMember(System.Type type, string name) => throw null; + public static System.Reflection.PropertyInfo[] GetInstancePublicProperties(System.Type type) => throw null; + public ServiceStack.MetadataTypes GetMetadataTypes(ServiceStack.Web.IRequest req, System.Func predicate = default(System.Func)) => throw null; + public System.Collections.Generic.HashSet GetNamespacesUsed(System.Type type) => throw null; + public bool IncludeAttrsFilter(System.Attribute x) => throw null; + public MetadataTypesGenerator(ServiceStack.Host.ServiceMetadata meta, ServiceStack.MetadataTypesConfig config) => throw null; + public System.Collections.Generic.List NonDefaultProperties(System.Attribute attr) => throw null; + public System.Collections.Generic.List Properties(System.Attribute attr) => throw null; + public static string PropertyStringValue(System.Reflection.PropertyInfo pi, object value) => throw null; + public static string PropertyValue(System.Reflection.PropertyInfo pi, object instance, object ignoreIfValue = default(object)) => throw null; + public ServiceStack.MetadataAttribute ToAttribute(System.Attribute attr) => throw null; + public System.Collections.Generic.List ToAttributes(System.Collections.Generic.IEnumerable attrs) => throw null; + public System.Collections.Generic.List ToAttributes(object[] attrs) => throw null; + public System.Collections.Generic.List ToAttributes(System.Type type) => throw null; + public static ServiceStack.MetadataDataMember ToDataMember(System.Runtime.Serialization.DataMemberAttribute attr) => throw null; + public ServiceStack.MetadataType ToFlattenedType(System.Type type) => throw null; + public static string[] ToGenericArgs(System.Type propType) => throw null; + public ServiceStack.MetadataAttribute ToMetadataAttribute(System.Attribute attr) => throw null; + public System.Collections.Generic.List ToProperties(System.Type type) => throw null; + public ServiceStack.MetadataPropertyType ToProperty(System.Reflection.ParameterInfo pi) => throw null; + public ServiceStack.MetadataPropertyType ToProperty(System.Reflection.PropertyInfo pi, object instance = default(object), System.Collections.Generic.Dictionary ignoreValues = default(System.Collections.Generic.Dictionary)) => throw null; + public ServiceStack.MetadataType ToType(System.Type type) => throw null; + public ServiceStack.MetadataTypeName ToTypeName(System.Type type) => throw null; + } + + // Generated from `ServiceStack.NativeTypes.NativeTypesBase` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NativeTypesBase + { + public bool? AddDataContractAttributes { get => throw null; set => throw null; } + public string AddDefaultXmlNamespace { get => throw null; set => throw null; } + public bool? AddDescriptionAsComments { get => throw null; set => throw null; } + public bool? AddGeneratedCodeAttributes { get => throw null; set => throw null; } + public int? AddImplicitVersion { get => throw null; set => throw null; } + public bool? AddIndexesToDataMembers { get => throw null; set => throw null; } + public bool? AddModelExtensions { get => throw null; set => throw null; } + public System.Collections.Generic.List AddNamespaces { get => throw null; set => throw null; } + public bool? AddPropertyAccessors { get => throw null; set => throw null; } + public bool? AddResponseStatus { get => throw null; set => throw null; } + public bool? AddReturnMarker { get => throw null; set => throw null; } + public bool? AddServiceStackTypes { get => throw null; set => throw null; } + public string BaseClass { get => throw null; set => throw null; } + public string BaseUrl { get => throw null; set => throw null; } + public string DataClass { get => throw null; set => throw null; } + public string DataClassJson { get => throw null; set => throw null; } + public System.Collections.Generic.List DefaultImports { get => throw null; set => throw null; } + public System.Collections.Generic.List DefaultNamespaces { get => throw null; set => throw null; } + public bool? ExcludeGenericBaseTypes { get => throw null; set => throw null; } + public bool? ExcludeNamespace { get => throw null; set => throw null; } + public System.Collections.Generic.List ExcludeTypes { get => throw null; set => throw null; } + public bool? ExportAsTypes { get => throw null; set => throw null; } + public bool? ExportValueTypes { get => throw null; set => throw null; } + public string GlobalNamespace { get => throw null; set => throw null; } + public System.Collections.Generic.List IncludeTypes { get => throw null; set => throw null; } + public bool? InitializeCollections { get => throw null; set => throw null; } + public bool? MakeDataContractsExtensible { get => throw null; set => throw null; } + public bool? MakeInternal { get => throw null; set => throw null; } + public bool? MakePartial { get => throw null; set => throw null; } + public bool? MakePropertiesOptional { get => throw null; set => throw null; } + public bool? MakeVirtual { get => throw null; set => throw null; } + public NativeTypesBase() => throw null; + public string Package { get => throw null; set => throw null; } + public bool? SettersReturnThis { get => throw null; set => throw null; } + public System.Collections.Generic.List TreatTypesAsStrings { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.NativeTypesMetadata` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NativeTypesMetadata : ServiceStack.NativeTypes.INativeTypesMetadata + { + public ServiceStack.MetadataTypesConfig GetConfig(ServiceStack.NativeTypes.NativeTypesBase req) => throw null; + public ServiceStack.NativeTypes.MetadataTypesGenerator GetGenerator() => throw null; + public ServiceStack.NativeTypes.MetadataTypesGenerator GetGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public ServiceStack.MetadataTypes GetMetadataTypes(ServiceStack.Web.IRequest req, ServiceStack.MetadataTypesConfig config = default(ServiceStack.MetadataTypesConfig), System.Func predicate = default(System.Func)) => throw null; + public NativeTypesMetadata(ServiceStack.Host.ServiceMetadata meta, ServiceStack.MetadataTypesConfig defaults) => throw null; + public static System.Collections.Generic.List TrimArgs(System.Collections.Generic.List from) => throw null; + } + + // Generated from `ServiceStack.NativeTypes.NativeTypesService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NativeTypesService : ServiceStack.Service + { + public object Any(ServiceStack.NativeTypes.TypeLinks request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesCSharp request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesCommonJs request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesDart request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesFSharp request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesJava request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesKotlin request) => throw null; + public ServiceStack.MetadataTypes Any(ServiceStack.NativeTypes.TypesMetadata request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesPython request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesSwift request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesTypeScript request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesTypeScriptDefinition request) => throw null; + public object Any(ServiceStack.NativeTypes.TypesVbNet request) => throw null; + public static System.Collections.Generic.List BuiltInClientDtos; + public static System.Collections.Generic.List BuiltinInterfaces; + public string GenerateTypeScript(ServiceStack.NativeTypes.NativeTypesBase request, ServiceStack.MetadataTypesConfig typesConfig) => throw null; + public ServiceStack.NativeTypes.INativeTypesMetadata NativeTypesMetadata { get => throw null; set => throw null; } + public NativeTypesService() => throw null; + public ServiceStack.MetadataTypes ResolveMetadataTypes(ServiceStack.MetadataTypesConfig typesConfig) => throw null; + public static ServiceStack.MetadataTypes ResolveMetadataTypes(ServiceStack.MetadataTypesConfig typesConfig, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypesMetadata, ServiceStack.Web.IRequest req) => throw null; + public static System.Collections.Generic.List ReturnInterfaces; + public static System.Collections.Generic.List>> TypeLinksFilters { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.StringBuilderWrapper` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringBuilderWrapper + { + public void AppendLine(string str = default(string)) => throw null; + public ServiceStack.NativeTypes.StringBuilderWrapper Indent() => throw null; + public int Length { get => throw null; } + public StringBuilderWrapper(System.Text.StringBuilder sb, int indent = default(int)) => throw null; + public override string ToString() => throw null; + public ServiceStack.NativeTypes.StringBuilderWrapper UnIndent() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypeFilterDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate string TypeFilterDelegate(string typeName, string[] genericArgs); + + // Generated from `ServiceStack.NativeTypes.TypeLinks` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypeLinks : ServiceStack.NativeTypes.NativeTypesBase, ServiceStack.IReturn, ServiceStack.IReturn> + { + public TypeLinks() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesCSharp` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesCSharp : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesCSharp() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesCommonJs` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesCommonJs : ServiceStack.NativeTypes.NativeTypesBase + { + public bool? Cache { get => throw null; set => throw null; } + public TypesCommonJs() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesDart` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesDart : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesDart() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesFSharp` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesFSharp : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesFSharp() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesJava` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesJava : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesJava() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesKotlin` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesKotlin : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesKotlin() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesMetadata` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesMetadata : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesMetadata() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesPython` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesPython : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesPython() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesSwift` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesSwift : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesSwift() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesSwift4` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesSwift4 : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesSwift4() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesTypeScript` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesTypeScript : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesTypeScript() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesTypeScriptDefinition` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesTypeScriptDefinition : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesTypeScriptDefinition() => throw null; + } + + // Generated from `ServiceStack.NativeTypes.TypesVbNet` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypesVbNet : ServiceStack.NativeTypes.NativeTypesBase + { + public TypesVbNet() => throw null; + } + + namespace CSharp + { + // Generated from `ServiceStack.NativeTypes.CSharp.CSharpGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CSharpGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; + public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; + public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; + public static System.Collections.Generic.Dictionary AttributeConstructorArgs { get => throw null; set => throw null; } + public CSharpGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public static System.Func, System.Collections.Generic.List> FilterTypes; + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public string GetPropertyName(string name) => throw null; + public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop) => throw null; + public static System.Action InnerTypeFilter { get => throw null; set => throw null; } + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public static string NameOnly(string type, bool includeNested = default(bool)) => throw null; + public static System.Action PostPropertyFilter { get => throw null; set => throw null; } + public static System.Action PostTypeFilter { get => throw null; set => throw null; } + public static System.Action PrePropertyFilter { get => throw null; set => throw null; } + public static System.Action PreTypeFilter { get => throw null; set => throw null; } + public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } + public string Type(ServiceStack.MetadataTypeName typeName, bool includeNested = default(bool)) => throw null; + public string Type(string type, string[] genericArgs, bool includeNested = default(bool)) => throw null; + public static string TypeAlias(string type, bool includeNested = default(bool)) => throw null; + public static System.Collections.Generic.Dictionary TypeAliases; + public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } + public string TypeValue(string type, string value) => throw null; + public static bool UseNullableAnnotations { set => throw null; } + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.CSharp.CSharpGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CSharpGeneratorExtensions + { + public static ServiceStack.MetadataTypeName GetInherits(this ServiceStack.MetadataType type) => throw null; + } + + } + namespace Dart + { + // Generated from `ServiceStack.NativeTypes.Dart.DartGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DartGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; + public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; + public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; + public static System.Collections.Generic.HashSet ArrayTypes; + public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; + public DartGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public string DartLiteral(string typeName) => throw null; + public static System.Collections.Generic.Dictionary DartToJsonConverters; + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public static System.Collections.Generic.List DefaultImports; + public static System.Collections.Generic.HashSet DictionaryTypes; + public static System.Func, System.Collections.Generic.List> FilterTypes; + public static bool GenerateServiceStackTypes { get => throw null; } + public string GenericArg(string arg) => throw null; + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public string GetPropertyName(string name) => throw null; + public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop) => throw null; + public static System.Collections.Generic.HashSet IgnoreTypeInfosFor; + public static System.Action InnerTypeFilter { get => throw null; set => throw null; } + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public string NameOnly(string type) => throw null; + public static System.Action PostPropertyFilter { get => throw null; set => throw null; } + public static System.Action PostTypeFilter { get => throw null; set => throw null; } + public static System.Action PrePropertyFilter { get => throw null; set => throw null; } + public static System.Action PreTypeFilter { get => throw null; set => throw null; } + public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } + public string RawGenericArg(string arg) => throw null; + public string RawGenericType(string type, string[] genericArgs) => throw null; + public string RawType(ServiceStack.TextNode node) => throw null; + public void RegisterPropertyType(ServiceStack.MetadataPropertyType prop, string dartType) => throw null; + public static System.Collections.Generic.HashSet SetTypes; + public string Type(ServiceStack.MetadataTypeName typeName) => throw null; + public string Type(string type, string[] genericArgs) => throw null; + public static System.Collections.Generic.Dictionary TypeAliases; + public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } + public string TypeValue(string type, string value) => throw null; + public bool UseTypeConversion(ServiceStack.MetadataPropertyType prop) => throw null; + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.Dart.DartGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class DartGeneratorExtensions + { + public static System.Collections.Generic.HashSet DartKeyWords; + public static bool HasEnumFlags(ServiceStack.MetadataType type) => throw null; + public static string InDeclarationType(this string type) => throw null; + public static bool IsKeyWord(string name) => throw null; + public static string PropertyName(this string name) => throw null; + public static string PropertyStyle(this string name) => throw null; + } + + } + namespace FSharp + { + // Generated from `ServiceStack.NativeTypes.FSharp.FSharpGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FSharpGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; + public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; + public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public static System.Collections.Generic.HashSet ExportMarkerInterfaces { get => throw null; } + public FSharpGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public static System.Func, System.Collections.Generic.List> FilterTypes; + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public string GetPropertyName(string name) => throw null; + public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop) => throw null; + public static System.Action InnerTypeFilter { get => throw null; set => throw null; } + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public string NameOnly(string type) => throw null; + public static System.Action PostPropertyFilter { get => throw null; set => throw null; } + public static System.Action PostTypeFilter { get => throw null; set => throw null; } + public static System.Action PrePropertyFilter { get => throw null; set => throw null; } + public static System.Action PreTypeFilter { get => throw null; set => throw null; } + public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } + public string Type(ServiceStack.MetadataTypeName typeName) => throw null; + public string Type(string type, string[] genericArgs) => throw null; + public static System.Collections.Generic.Dictionary TypeAliases; + public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } + public string TypeValue(string type, string value) => throw null; + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.FSharp.FSharpGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class FSharpGeneratorExtensions + { + public static bool Contains(this System.Collections.Generic.Dictionary> map, string key, string value) => throw null; + } + + } + namespace Java + { + // Generated from `ServiceStack.NativeTypes.Java.JavaGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JavaGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public static bool AddGsonImport { set => throw null; } + public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus, bool addPropertyAccessors, string settersReturnType) => throw null; + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; + public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; + public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary ArrayAliases; + public static System.Collections.Generic.HashSet ArrayTypes; + public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public static string DefaultGlobalNamespace; + public static System.Collections.Generic.List DefaultImports; + public static System.Collections.Generic.HashSet DictionaryTypes; + public static System.Func, System.Collections.Generic.List> FilterTypes; + public static string GSonAnnotationsNamespace; + public static string GSonReflectNamespace; + public string GenericArg(string arg) => throw null; + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public string GetPropertyName(string name) => throw null; + public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop) => throw null; + public static System.Collections.Generic.HashSet IgnoreTypeNames; + public static System.Action InnerTypeFilter { get => throw null; set => throw null; } + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public JavaGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public static string JavaIoNamespace; + public string NameOnly(string type) => throw null; + public static System.Action PostPropertyFilter { get => throw null; set => throw null; } + public static System.Action PostTypeFilter { get => throw null; set => throw null; } + public static System.Action PrePropertyFilter { get => throw null; set => throw null; } + public static System.Action PreTypeFilter { get => throw null; set => throw null; } + public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } + public string Type(ServiceStack.MetadataTypeName typeName) => throw null; + public string Type(string type, string[] genericArgs) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary TypeAliases; + public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } + public string TypeValue(string type, string value) => throw null; + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.Java.JavaGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JavaGeneratorExtensions + { + public static ServiceStack.NativeTypes.StringBuilderWrapper AppendPropertyAccessor(this ServiceStack.NativeTypes.StringBuilderWrapper sb, string type, string fieldName, string settersReturnThis) => throw null; + public static ServiceStack.NativeTypes.StringBuilderWrapper AppendPropertyAccessor(this ServiceStack.NativeTypes.StringBuilderWrapper sb, string type, string fieldName, string accessorName, string settersReturnThis) => throw null; + public static string InheritedType(this string type) => throw null; + public static bool IsKeyWord(this string name) => throw null; + public static System.Collections.Generic.HashSet JavaKeyWords; + public static string PropertyStyle(this string name) => throw null; + public static ServiceStack.MetadataAttribute ToMetadataAttribute(this ServiceStack.MetadataRoute route) => throw null; + } + + } + namespace Kotlin + { + // Generated from `ServiceStack.NativeTypes.Kotlin.KotlinGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class KotlinGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public static bool AddGsonImport { set => throw null; } + public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool initCollections, bool includeResponseStatus) => throw null; + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; + public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; + public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary ArrayAliases; + public static System.Collections.Generic.HashSet ArrayTypes; + public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public static System.Collections.Generic.List DefaultImports; + public static System.Collections.Generic.HashSet DictionaryTypes; + public static System.Func, System.Collections.Generic.List> FilterTypes; + public static string GSonAnnotationsNamespace; + public static string GSonReflectNamespace; + public string GenericArg(string arg) => throw null; + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public string GetPropertyName(string name) => throw null; + public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop) => throw null; + public static System.Collections.Generic.HashSet IgnoreTypeNames; + public static System.Action InnerTypeFilter { get => throw null; set => throw null; } + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public static string JavaIoNamespace; + public KotlinGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public string NameOnly(string type) => throw null; + public static System.Action PostPropertyFilter { get => throw null; set => throw null; } + public static System.Action PostTypeFilter { get => throw null; set => throw null; } + public static System.Action PrePropertyFilter { get => throw null; set => throw null; } + public static System.Action PreTypeFilter { get => throw null; set => throw null; } + public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } + public string Type(ServiceStack.MetadataTypeName typeName) => throw null; + public string Type(string type, string[] genericArgs) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary TypeAliases; + public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } + public string TypeValue(string type, string value) => throw null; + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.Kotlin.KotlinGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class KotlinGeneratorExtensions + { + public static ServiceStack.NativeTypes.StringBuilderWrapper AppendPropertyAccessor(this ServiceStack.NativeTypes.StringBuilderWrapper sb, string type, string fieldName, string settersReturnThis) => throw null; + public static ServiceStack.NativeTypes.StringBuilderWrapper AppendPropertyAccessor(this ServiceStack.NativeTypes.StringBuilderWrapper sb, string type, string fieldName, string accessorName, string settersReturnThis) => throw null; + public static string InheritedType(this string type) => throw null; + public static bool IsKeyWord(this string name) => throw null; + public static System.Collections.Generic.HashSet KotlinKeyWords; + public static string PropertyStyle(this string name) => throw null; + public static ServiceStack.MetadataAttribute ToMetadataAttribute(this ServiceStack.MetadataRoute route) => throw null; + } + + } + namespace Python + { + // Generated from `ServiceStack.NativeTypes.Python.PythonGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PythonGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet AddedDeclarations { get => throw null; set => throw null; } + public System.Collections.Generic.List AllTypes { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet AllowedKeyTypes; + public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; + public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; + public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; + public bool AppendTripleDocs(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public static System.Collections.Generic.HashSet ArrayTypes; + public string ClassType(string typeName, string extend, out string[] genericArgs) => throw null; + public ServiceStack.MetadataTypesConfig Config; + public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; + public static System.Func CookedDeclarationTypeFilter { get => throw null; set => throw null; } + public static System.Func CookedTypeFilter { get => throw null; set => throw null; } + public string DataClass { get => throw null; set => throw null; } + public string DataClassJson { get => throw null; set => throw null; } + public string DeclarationType(string type, string[] genericArgs, out string addDeclaration) => throw null; + public static ServiceStack.NativeTypes.TypeFilterDelegate DeclarationTypeFilter { get => throw null; set => throw null; } + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public static System.Collections.Generic.List DefaultImports; + public static bool? DefaultIsPropertyOptional(ServiceStack.NativeTypes.Python.PythonGenerator generator, ServiceStack.MetadataType type, ServiceStack.MetadataPropertyType prop) => throw null; + public static System.Collections.Generic.Dictionary DefaultValues; + public static System.Collections.Generic.HashSet DictionaryTypes; + public static System.Func, System.Collections.Generic.List> FilterTypes { get => throw null; set => throw null; } + public static bool GenerateServiceStackTypes { get => throw null; } + public string GenericArg(string arg) => throw null; + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public string GetPropertyName(string name) => throw null; + public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop, out bool isNullable) => throw null; + public static bool IgnoreAllAttributes { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet IgnoreAttributes { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet IgnoreReturnMarkersForSubTypesOf; + public static System.Collections.Generic.HashSet IgnoreTypeInfosFor; + public static System.Action InnerTypeFilter { get => throw null; set => throw null; } + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public static System.Func IsPropertyOptional { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet KeyWords; + public string NameOnly(string type) => throw null; + public static System.Action PostPropertyFilter { get => throw null; set => throw null; } + public static System.Action PostTypeFilter { get => throw null; set => throw null; } + public static System.Action PrePropertyFilter { get => throw null; set => throw null; } + public static System.Action PreTypeFilter { get => throw null; set => throw null; } + public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } + public PythonGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public static System.Func ReturnMarkerFilter { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary ReturnTypeAliases; + public static ServiceStack.Text.TextCase TextCase { get => throw null; set => throw null; } + public string Type(ServiceStack.MetadataTypeName typeName) => throw null; + public string Type(string type, string[] genericArgs) => throw null; + public static System.Collections.Generic.Dictionary TypeAliases; + public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } + public string TypeValue(string type, string value) => throw null; + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.Python.PythonGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class PythonGeneratorExtensions + { + public static ServiceStack.TextNode ParsePythonTypeIntoNodes(this string typeDef) => throw null; + public static string PropertyStyle(this string name) => throw null; + } + + } + namespace Swift + { + // Generated from `ServiceStack.NativeTypes.Swift.SwiftGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SwiftGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public static string AddGenericConstraints(string typeDef) => throw null; + public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool initCollections, bool includeResponseStatus) => throw null; + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; + public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; + public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; + public static System.Collections.Generic.HashSet ArrayTypes; + public static string CSharpStyleEnums(string enumName) => throw null; + public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary Converters; + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public static System.Collections.Generic.List DefaultImports; + public static System.Collections.Generic.HashSet DictionaryTypes; + public static System.Func EnumNameStrategy { get => throw null; set => throw null; } + public static System.Func, System.Collections.Generic.List> FilterTypes; + public ServiceStack.MetadataType FindType(ServiceStack.MetadataTypeName typeName) => throw null; + public ServiceStack.MetadataType FindType(string typeName, string typeNamespace, params string[] genericArgs) => throw null; + public string GenericArg(string arg) => throw null; + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public System.Collections.Generic.List GetProperties(ServiceStack.MetadataType type) => throw null; + public string GetPropertyName(string name) => throw null; + public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop) => throw null; + public static bool IgnoreArrayReturnTypes; + public static System.Collections.Generic.HashSet IgnorePropertyNames; + public static System.Collections.Generic.HashSet IgnorePropertyTypeNames; + public static System.Collections.Generic.HashSet IgnoreTypeNames; + public static System.Action InnerTypeFilter { get => throw null; set => throw null; } + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public string NameOnly(string type) => throw null; + public static System.Collections.Generic.HashSet OverrideInitForBaseClasses; + public static System.Action PostPropertyFilter { get => throw null; set => throw null; } + public static System.Action PostTypeFilter { get => throw null; set => throw null; } + public static System.Action PrePropertyFilter { get => throw null; set => throw null; } + public static System.Action PreTypeFilter { get => throw null; set => throw null; } + public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } + public string ReturnType(string type, string[] genericArgs) => throw null; + public SwiftGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public static string SwiftStyleEnums(string enumName) => throw null; + public string Type(ServiceStack.MetadataTypeName typeName) => throw null; + public string Type(string type, string[] genericArgs) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary TypeAliases; + public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } + public string TypeValue(string type, string value) => throw null; + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.Swift.SwiftGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class SwiftGeneratorExtensions + { + public static string InheritedType(this string type) => throw null; + public static string PropertyStyle(this string name) => throw null; + public static System.Collections.Generic.HashSet SwiftKeyWords; + public static string UnescapeReserved(this string name) => throw null; + } + + // Generated from `ServiceStack.NativeTypes.Swift.SwiftTypeConverter` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SwiftTypeConverter + { + public string Attribute { get => throw null; set => throw null; } + public string DecodeMethod { get => throw null; set => throw null; } + public string EncodeMethod { get => throw null; set => throw null; } + public SwiftTypeConverter() => throw null; + } + + } + namespace TypeScript + { + // Generated from `ServiceStack.NativeTypes.TypeScript.CommonJsGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CommonJsGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet AddedDeclarations { get => throw null; set => throw null; } + public System.Collections.Generic.List AllTypes { get => throw null; set => throw null; } + public static int BatchSize { get => throw null; set => throw null; } + public CommonJsGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public ServiceStack.MetadataTypesConfig Config; + public static string CreateEmptyClass(string name) => throw null; + public string DeclarationType(string type, string[] genericArgs, out string addDeclaration) => throw null; + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public string DictionaryDeclaration { get => throw null; set => throw null; } + public static System.Func, System.Collections.Generic.List> FilterTypes { get => throw null; set => throw null; } + public ServiceStack.NativeTypes.TypeScript.TypeScriptGenerator Gen { get => throw null; set => throw null; } + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public System.Func ReturnTypeFilter { get => throw null; set => throw null; } + public string Type(string type, string[] genericArgs) => throw null; + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.TypeScript.TypeScriptGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TypeScriptGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet AddedDeclarations { get => throw null; set => throw null; } + public System.Collections.Generic.List AllTypes { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet AllowedKeyTypes; + public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; + public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; + public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; + public static System.Collections.Generic.HashSet ArrayTypes; + public ServiceStack.MetadataTypesConfig Config; + public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; + public static System.Func CookedDeclarationTypeFilter { get => throw null; set => throw null; } + public static System.Func CookedTypeFilter { get => throw null; set => throw null; } + public string DeclarationType(string type, string[] genericArgs, out string addDeclaration) => throw null; + public static ServiceStack.NativeTypes.TypeFilterDelegate DeclarationTypeFilter { get => throw null; set => throw null; } + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public static System.Collections.Generic.List DefaultImports; + public static bool? DefaultIsPropertyOptional(ServiceStack.NativeTypes.TypeScript.TypeScriptGenerator generator, ServiceStack.MetadataType type, ServiceStack.MetadataPropertyType prop) => throw null; + public string DictionaryDeclaration { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet DictionaryTypes; + public static bool EmitPartialConstructors { get => throw null; set => throw null; } + public static System.Func, System.Collections.Generic.List> FilterTypes { get => throw null; set => throw null; } + public string GenericArg(string arg) => throw null; + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public string GetPropertyName(string name) => throw null; + public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop, out bool isNullable) => throw null; + public static System.Action InnerTypeFilter { get => throw null; set => throw null; } + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public static bool InsertTsNoCheck { get => throw null; set => throw null; } + public static System.Func IsPropertyOptional { get => throw null; set => throw null; } + public string NameOnly(string type) => throw null; + public static System.Action PostPropertyFilter { get => throw null; set => throw null; } + public static System.Action PostTypeFilter { get => throw null; set => throw null; } + public static System.Action PrePropertyFilter { get => throw null; set => throw null; } + public static System.Action PreTypeFilter { get => throw null; set => throw null; } + public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } + public static System.Func ReturnMarkerFilter { get => throw null; set => throw null; } + public static System.Collections.Generic.Dictionary ReturnTypeAliases; + public string Type(ServiceStack.MetadataTypeName typeName) => throw null; + public string Type(string type, string[] genericArgs) => throw null; + public static System.Collections.Generic.Dictionary TypeAliases; + public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } + public TypeScriptGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public string TypeValue(string type, string value) => throw null; + public static bool UseNullableProperties { set => throw null; } + public static bool UseUnionTypeEnums { get => throw null; set => throw null; } + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.TypeScript.TypeScriptGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class TypeScriptGeneratorExtensions + { + public static string InReturnMarker(this string type) => throw null; + public static string PropertyStyle(this string name) => throw null; + } + + } + namespace VbNet + { + // Generated from `ServiceStack.NativeTypes.VbNet.VbNetGenerator` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class VbNetGenerator : ServiceStack.NativeTypes.ILangGenerator + { + public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } + public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; + public System.Collections.Generic.List AddQueryParamOptions { get => throw null; set => throw null; } + public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; + public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; + public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; + public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; + public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; + public string EscapeKeyword(string name) => throw null; + public static System.Func, System.Collections.Generic.List> FilterTypes; + public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; + public string GetPropertyName(string name) => throw null; + public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop) => throw null; + public static System.Action InnerTypeFilter { get => throw null; set => throw null; } + public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } + public static System.Collections.Generic.HashSet KeyWords; + public string NameOnly(string type, bool includeNested = default(bool)) => throw null; + public static System.Action PostPropertyFilter { get => throw null; set => throw null; } + public static System.Action PostTypeFilter { get => throw null; set => throw null; } + public static System.Action PrePropertyFilter { get => throw null; set => throw null; } + public static System.Action PreTypeFilter { get => throw null; set => throw null; } + public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } + public string Type(ServiceStack.MetadataTypeName typeName, bool includeNested = default(bool)) => throw null; + public string Type(string type, string[] genericArgs, bool includeNested = default(bool)) => throw null; + public static System.Collections.Generic.Dictionary TypeAliases; + public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } + public string TypeValue(string type, string value) => throw null; + public VbNetGenerator(ServiceStack.MetadataTypesConfig config) => throw null; + public bool WithoutOptions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NativeTypes.VbNet.VbNetGeneratorExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class VbNetGeneratorExtensions + { + public static string QuotedSafeValue(this string value) => throw null; + public static string SafeComment(this string comment) => throw null; + public static string SafeToken(this string token) => throw null; + public static string SafeValue(this string value) => throw null; + public static ServiceStack.MetadataAttribute ToMetadataAttribute(this ServiceStack.MetadataRoute route) => throw null; + } + + } + } + namespace NetCore + { + // Generated from `ServiceStack.NetCore.NetCoreContainerAdapter` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreContainerAdapter : ServiceStack.Configuration.IContainerAdapter, ServiceStack.Configuration.IResolver, System.IDisposable + { + public void Dispose() => throw null; + public NetCoreContainerAdapter(System.IServiceProvider appServices) => throw null; + public T Resolve() => throw null; + public T TryResolve() => throw null; + } + + // Generated from `ServiceStack.NetCore.NetCoreHeadersCollection` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreHeadersCollection : System.Collections.Specialized.NameValueCollection + { + public override void Add(string name, string value) => throw null; + public override string[] AllKeys { get => throw null; } + public override void Clear() => throw null; + public override int Count { get => 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; + public override string GetKey(int index) => throw null; + public override string[] GetValues(string name) => throw null; + public bool HasKeys() => throw null; + public bool IsSynchronized { get => throw null; } + public NetCoreHeadersCollection(Microsoft.AspNetCore.Http.IHeaderDictionary original) => throw null; + public object Original { get => throw null; } + public override void Remove(string name) => throw null; + public override void Set(string key, string value) => throw null; + public object SyncRoot { get => throw null; } + } + + // Generated from `ServiceStack.NetCore.NetCoreLog` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreLog : ServiceStack.Logging.ILog + { + 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 FatalFormat(string format, params object[] args) => 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 NetCoreLog(Microsoft.Extensions.Logging.ILogger logger, bool debugEnabled = default(bool)) => 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; + } + + // Generated from `ServiceStack.NetCore.NetCoreLogFactory` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreLogFactory : ServiceStack.Logging.ILogFactory + { + public static Microsoft.Extensions.Logging.ILoggerFactory FallbackLoggerFactory { get => throw null; set => throw null; } + public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; + public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; + public NetCoreLogFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool debugEnabled = default(bool)) => throw null; + } + + // Generated from `ServiceStack.NetCore.NetCoreQueryStringCollection` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetCoreQueryStringCollection : System.Collections.Specialized.NameValueCollection + { + public override void Add(string name, string value) => throw null; + public override string[] AllKeys { get => throw null; } + public override void Clear() => throw null; + public override int Count { get => 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; + public override string GetKey(int index) => throw null; + public override string[] GetValues(string name) => throw null; + public bool IsSynchronized { get => throw null; } + public NetCoreQueryStringCollection(Microsoft.AspNetCore.Http.IQueryCollection originalQuery) => throw null; + public object Original { get => throw null; } + public override void Remove(string name) => throw null; + public override void Set(string key, string value) => throw null; + public object SyncRoot { get => throw null; } + public override string ToString() => throw null; + } + + } + namespace Platforms + { + // Generated from `ServiceStack.Platforms.PlatformNetCore` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PlatformNetCore : ServiceStack.Platform + { + public static System.Collections.Generic.List AppConfigPaths; + public const string ConfigNullValue = default; + public override string GetAppConfigPath() => throw null; + public override string GetAppSetting(string key) => throw null; + public override string GetAppSetting(string key, string defaultValue) => throw null; + public override T GetAppSetting(string key, T defaultValue) => throw null; + public override string GetConnectionString(string key) => throw null; + public override string GetNullableAppSetting(string key) => throw null; + public static ServiceStack.ServiceStackHost HostInstance { get => throw null; set => throw null; } + public PlatformNetCore() => throw null; + } + + } + namespace Support + { + // Generated from `ServiceStack.Support.DataCache` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DataCache + { + public static System.Byte[] CreateJsonpPrefix(string callback) => throw null; + public DataCache() => throw null; + public static ServiceStack.Support.DataCache Instance { get => throw null; } + public static System.Byte[] JsonpPrefix { get => throw null; } + public static System.Byte[] JsonpSuffix { get => throw null; } + } + + namespace WebHost + { + // Generated from `ServiceStack.Support.WebHost.FilterAttributeCache` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class FilterAttributeCache + { + public static ServiceStack.Web.IRequestFilterBase[] GetRequestFilterAttributes(System.Type requestDtoType) => throw null; + public static ServiceStack.Web.IResponseFilterBase[] GetResponseFilterAttributes(System.Type requestDtoType) => throw null; + } + + } + } + namespace Templates + { + // Generated from `ServiceStack.Templates.HtmlTemplates` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HtmlTemplates + { + public static string Format(string template, params object[] args) => throw null; + public static string GetHtmlFormatTemplate() => throw null; + public static string GetHtmlRedirectTemplate(string url) => throw null; + public static string GetIndexOperationsTemplate() => throw null; + public static string GetLoginTemplate() => throw null; + public static string GetMetadataDebugTemplate() => throw null; + public static string GetOperationControlTemplate() => throw null; + public static string GetSvgTemplatePath() => throw null; + public static string GetTemplatePath(string templateName) => throw null; + } + + } + namespace Testing + { + // Generated from `ServiceStack.Testing.BasicAppHost` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BasicAppHost : ServiceStack.ServiceStackHost + { + public BasicAppHost(params System.Reflection.Assembly[] serviceAssemblies) : base(default(string), default(System.Reflection.Assembly[])) => throw null; + public System.Action ConfigFilter { get => throw null; set => throw null; } + public override void Configure(Funq.Container container) => throw null; + public System.Action ConfigureAppHost { get => throw null; set => throw null; } + public System.Action ConfigureContainer { get => throw null; set => throw null; } + public override ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest req) => throw null; + public override void OnConfigLoad() => throw null; + public System.Func UseServiceController { set => throw null; } + } + + // Generated from `ServiceStack.Testing.BasicResolver` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BasicResolver : ServiceStack.Configuration.IResolver + { + public BasicResolver() => throw null; + public BasicResolver(Funq.Container container) => throw null; + public T TryResolve() => throw null; + } + + // Generated from `ServiceStack.Testing.MockHttpRequest` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MockHttpRequest : ServiceStack.Configuration.IHasResolver, ServiceStack.Configuration.IResolver, ServiceStack.IHasServiceScope, ServiceStack.IO.IHasVirtualFiles, ServiceStack.Web.IHttpRequest, ServiceStack.Web.IRequest, System.IServiceProvider + { + public string AbsoluteUri { get => throw null; } + public string Accept { get => throw null; set => throw null; } + public string[] AcceptTypes { get => throw null; set => throw null; } + public void AddSessionCookies() => throw null; + public string ApplicationFilePath { get => throw null; set => throw null; } + public string Authorization { get => throw null; set => throw null; } + public System.Int64 ContentLength { get => throw null; } + public string ContentType { get => throw null; set => throw null; } + public System.Collections.Generic.IDictionary Cookies { get => throw null; set => throw null; } + public object Dto { get => throw null; set => throw null; } + public ServiceStack.Web.IHttpFile[] Files { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection FormData { get => throw null; set => throw null; } + public ServiceStack.IO.IVirtualDirectory GetDirectory() => throw null; + public ServiceStack.IO.IVirtualFile GetFile() => throw null; + public string GetRawBody() => throw null; + public System.Threading.Tasks.Task GetRawBodyAsync() => throw null; + public object GetService(System.Type serviceType) => throw null; + public bool HasExplicitResponseContentType { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } + public string HttpMethod { get => throw null; set => throw null; } + public ServiceStack.Web.IHttpResponse HttpResponse { get => throw null; set => throw null; } + public System.IO.Stream InputStream { get => throw null; set => throw null; } + public bool IsDirectory { get => throw null; } + public bool IsFile { get => throw null; } + public bool IsLocal { get => throw null; set => throw null; } + public bool IsSecureConnection { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public MockHttpRequest() => throw null; + public MockHttpRequest(string operationName, string httpMethod, string contentType, string pathInfo, System.Collections.Specialized.NameValueCollection queryString, System.IO.Stream inputStream, System.Collections.Specialized.NameValueCollection formData) => throw null; + public string OperationName { get => throw null; set => throw null; } + public string OriginalPathInfo { get => throw null; } + public object OriginalRequest { get => throw null; } + public string PathInfo { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection QueryString { get => throw null; set => throw null; } + public string RawUrl { get => throw null; set => throw null; } + public ServiceStack.AuthUserSession ReloadSession() => throw null; + public string RemoteIp { get => throw null; } + public ServiceStack.AuthUserSession RemoveSession() => throw null; + public ServiceStack.RequestAttributes RequestAttributes { get => throw null; set => throw null; } + public ServiceStack.Web.IRequestPreferences RequestPreferences { get => throw null; } + public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } + public ServiceStack.Web.IResponse Response { get => throw null; } + public string ResponseContentType { get => throw null; set => throw null; } + public Microsoft.Extensions.DependencyInjection.IServiceScope ServiceScope { get => throw null; set => throw null; } + public T TryResolve() => throw null; + public System.Uri UrlReferrer { get => throw null; } + public bool UseBufferedStream { get => throw null; set => throw null; } + public string UserAgent { get => throw null; set => throw null; } + public string UserHostAddress { get => throw null; set => throw null; } + public string Verb { get => throw null; } + public string XForwardedFor { get => throw null; set => throw null; } + public int? XForwardedPort { get => throw null; set => throw null; } + public string XForwardedProtocol { get => throw null; set => throw null; } + public string XRealIp { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Testing.MockHttpResponse` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MockHttpResponse : ServiceStack.Web.IHasHeaders, ServiceStack.Web.IHttpResponse, ServiceStack.Web.IResponse + { + public void AddHeader(string name, string value) => throw null; + public void ClearCookies() => throw null; + public void Close() => throw null; + public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string ContentType { get => throw null; set => throw null; } + public ServiceStack.Web.ICookies Cookies { get => throw null; set => throw null; } + public object Dto { get => throw null; set => throw null; } + public void End() => throw null; + public void Flush() => throw null; + public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string GetHeader(string name) => throw null; + public bool HasStarted { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Headers { get => throw null; } + public bool IsClosed { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; } + public bool KeepAlive { get => throw null; set => throw null; } + public MockHttpResponse(ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; + public object OriginalResponse { get => throw null; set => throw null; } + public System.IO.Stream OutputStream { get => throw null; } + public System.Byte[] ReadAsBytes() => throw null; + public string ReadAsString() => throw null; + public void Redirect(string url) => throw null; + public void RemoveHeader(string name) => throw null; + public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } + public void SetContentLength(System.Int64 contentLength) => throw null; + 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 System.Text.StringBuilder TextWritten { get => throw null; set => throw null; } + public bool UseBufferedStream { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Testing.MockRestGateway` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MockRestGateway : ServiceStack.IRestGateway + { + public T Delete(ServiceStack.IReturn request) => throw null; + public T Get(ServiceStack.IReturn request) => throw null; + public MockRestGateway() => throw null; + public T Post(ServiceStack.IReturn request) => throw null; + public T Put(ServiceStack.IReturn request) => throw null; + public ServiceStack.Testing.RestGatewayDelegate ResultsFilter { get => throw null; set => throw null; } + public T Send(ServiceStack.IReturn request) => throw null; + } + + // Generated from `ServiceStack.Testing.RestGatewayDelegate` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object RestGatewayDelegate(string httpVerb, System.Type responseType, object requestDto); + + } + namespace Validation + { + // Generated from `ServiceStack.Validation.ExecOnceOnly` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ExecOnceOnly : System.IDisposable + { + public void Commit() => throw null; + public void Dispose() => throw null; + public ExecOnceOnly(ServiceStack.Redis.IRedisClientsManager redisManager, System.Type forType, System.Guid? correlationId) => throw null; + public ExecOnceOnly(ServiceStack.Redis.IRedisClientsManager redisManager, System.Type forType, string correlationId) => throw null; + public ExecOnceOnly(ServiceStack.Redis.IRedisClientsManager redisManager, string hashKey, string correlationId) => throw null; + public bool Executed { get => throw null; set => throw null; } + public void Rollback() => throw null; + } + + // Generated from `ServiceStack.Validation.GetValidationRulesService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetValidationRulesService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.GetValidationRules request) => throw null; + public GetValidationRulesService() => throw null; + public ServiceStack.IValidationSource ValidationSource { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Validation.ModifyValidationRulesService` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ModifyValidationRulesService : ServiceStack.Service + { + public System.Threading.Tasks.Task Any(ServiceStack.ModifyValidationRules request) => throw null; + public ModifyValidationRulesService() => throw null; + public ServiceStack.IValidationSource ValidationSource { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Validation.MultiRuleSetValidatorSelector` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MultiRuleSetValidatorSelector : ServiceStack.FluentValidation.Internal.IValidatorSelector + { + public bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context) => throw null; + public MultiRuleSetValidatorSelector(params string[] rulesetsToExecute) => throw null; + } + + // Generated from `ServiceStack.Validation.ValidationExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ValidationExtensions + { + public static ServiceStack.Host.Operation ApplyValidationRules(this ServiceStack.Host.Operation op, System.Collections.Generic.IEnumerable rules) => throw null; + public static System.Threading.Tasks.Task> GetAllValidateRulesAsync(this ServiceStack.Configuration.IResolver resolver, string type = default(string)) => throw null; + public static System.Threading.Tasks.Task> GetAllValidateRulesAsync(this ServiceStack.IValidationSource validationSource, string type = default(string)) => throw null; + public static bool HasAsyncValidators(this ServiceStack.FluentValidation.IValidator validator, ServiceStack.FluentValidation.IValidationContext context, string ruleSet = default(string)) => throw null; + public static void Init(System.Reflection.Assembly[] assemblies) => throw null; + public static bool IsAuthValidator(this ServiceStack.IValidateRule rule) => throw null; + public static void RegisterValidator(this Funq.Container container, System.Type validator, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; + public static void RegisterValidators(this Funq.Container container, Funq.ReuseScope scope, params System.Reflection.Assembly[] assemblies) => throw null; + public static void RegisterValidators(this Funq.Container container, params System.Reflection.Assembly[] assemblies) => throw null; + public static System.Collections.Generic.HashSet RegisteredDtoValidators { get => throw null; set => throw null; } + public static ServiceStack.ScriptMethodType ToScriptMethodType(this ServiceStack.Script.ScriptMethodInfo scriptMethod) => throw null; + } + + // Generated from `ServiceStack.Validation.ValidationFeature` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationFeature : ServiceStack.IAfterInitAppHost, ServiceStack.IPlugin, ServiceStack.IPostInitPlugin, ServiceStack.IPreInitPlugin, ServiceStack.Model.IHasId, ServiceStack.Model.IHasStringId + { + public string AccessRole { get => throw null; set => throw null; } + public void AfterInit(ServiceStack.IAppHost appHost) => throw null; + public void AfterPluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; + public System.Collections.Generic.Dictionary ConditionErrorCodes { get => throw null; } + public bool EnableDeclarativeValidation { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ErrorCodeMessages { get => throw null; } + public System.Func ErrorResponseFilter { get => throw null; set => throw null; } + public virtual string GetRequestErrorBody(object request) => throw null; + public string Id { get => throw null; set => throw null; } + public bool ImplicitlyValidateChildProperties { get => throw null; set => throw null; } + public void Register(ServiceStack.IAppHost appHost) => throw null; + public bool ScanAppHostAssemblies { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + public bool TreatInfoAndWarningsAsErrors { get => throw null; set => throw null; } + public virtual void ValidateRequest(object requestDto, ServiceStack.Web.IRequest req) => throw null; + public virtual System.Threading.Tasks.Task ValidateRequestAsync(object requestDto, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public ValidationFeature() => throw null; + public ServiceStack.IValidationSource ValidationSource { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Validation.ValidationFilters` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ValidationFilters + { + public static System.Collections.Generic.IEnumerable GetResetFields(object o) => throw null; + public static System.Threading.Tasks.Task RequestFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public static System.Threading.Tasks.Task RequestFilterAsyncIgnoreWarningsInfo(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public static System.Threading.Tasks.Task ResponseFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; + public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, ServiceStack.Web.IRequest req, object requestDto) => throw null; + public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, ServiceStack.Web.IRequest req, object requestDto) => throw null; + } + + // Generated from `ServiceStack.Validation.ValidatorCache` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ValidatorCache + { + public static ServiceStack.FluentValidation.IValidator GetValidator(ServiceStack.Web.IRequest httpReq, System.Type type) => throw null; + } + + // Generated from `ServiceStack.Validation.ValidatorCache<>` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidatorCache + { + public static ServiceStack.FluentValidation.IValidator GetValidator(ServiceStack.Web.IRequest httpReq) => throw null; + public ValidatorCache() => throw null; + } + + } +} +namespace System +{ + namespace Threading + { + // Generated from `System.Threading.ThreadExtensions` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ThreadExtensions + { + public static void Abort(this System.Threading.Thread thread) => throw null; + public static void Interrupt(this System.Threading.Thread thread) => throw null; + public static bool Join(this System.Threading.Thread thread, System.TimeSpan timeSpan) => throw null; + } + + } +} diff --git a/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.csproj b/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.csproj new file mode 100644 index 00000000000..8bd13efcbc2 --- /dev/null +++ b/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.csproj @@ -0,0 +1,18 @@ + + + net6.0 + true + bin\ + false + + + + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.0/System.Diagnostics.DiagnosticSource.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.0/System.Diagnostics.DiagnosticSource.csproj new file mode 100644 index 00000000000..0b613573699 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.0/System.Diagnostics.DiagnosticSource.csproj @@ -0,0 +1,13 @@ + + + net6.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Drawing.Common/5.0.2/System.Drawing.Common.cs b/csharp/ql/test/resources/stubs/System.Drawing.Common/5.0.2/System.Drawing.Common.cs new file mode 100644 index 00000000000..b854b544c41 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Drawing.Common/5.0.2/System.Drawing.Common.cs @@ -0,0 +1,3266 @@ +// This file contains auto-generated code. + +namespace System +{ + namespace Drawing + { + // Generated from `System.Drawing.Bitmap` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Bitmap : System.Drawing.Image + { + public Bitmap(System.Drawing.Image original) => throw null; + public Bitmap(System.Drawing.Image original, System.Drawing.Size newSize) => throw null; + public Bitmap(System.Drawing.Image original, int width, int height) => throw null; + public Bitmap(System.IO.Stream stream) => throw null; + public Bitmap(System.IO.Stream stream, bool useIcm) => throw null; + public Bitmap(System.Type type, string resource) => throw null; + public Bitmap(int width, int height) => throw null; + public Bitmap(int width, int height, System.Drawing.Graphics g) => throw null; + public Bitmap(int width, int height, System.Drawing.Imaging.PixelFormat format) => throw null; + public Bitmap(int width, int height, int stride, System.Drawing.Imaging.PixelFormat format, System.IntPtr scan0) => throw null; + public Bitmap(string filename) => throw null; + public Bitmap(string filename, bool useIcm) => throw null; + public System.Drawing.Bitmap Clone(System.Drawing.Rectangle rect, System.Drawing.Imaging.PixelFormat format) => throw null; + public System.Drawing.Bitmap Clone(System.Drawing.RectangleF rect, System.Drawing.Imaging.PixelFormat format) => throw null; + public static System.Drawing.Bitmap FromHicon(System.IntPtr hicon) => throw null; + public static System.Drawing.Bitmap FromResource(System.IntPtr hinstance, string bitmapName) => throw null; + public System.IntPtr GetHbitmap() => throw null; + public System.IntPtr GetHbitmap(System.Drawing.Color background) => throw null; + public System.IntPtr GetHicon() => throw null; + public System.Drawing.Color GetPixel(int x, int y) => throw null; + public System.Drawing.Imaging.BitmapData LockBits(System.Drawing.Rectangle rect, System.Drawing.Imaging.ImageLockMode flags, System.Drawing.Imaging.PixelFormat format) => throw null; + public System.Drawing.Imaging.BitmapData LockBits(System.Drawing.Rectangle rect, System.Drawing.Imaging.ImageLockMode flags, System.Drawing.Imaging.PixelFormat format, System.Drawing.Imaging.BitmapData bitmapData) => throw null; + public void MakeTransparent() => throw null; + public void MakeTransparent(System.Drawing.Color transparentColor) => throw null; + public void SetPixel(int x, int y, System.Drawing.Color color) => throw null; + public void SetResolution(float xDpi, float yDpi) => throw null; + public void UnlockBits(System.Drawing.Imaging.BitmapData bitmapdata) => throw null; + } + + // Generated from `System.Drawing.BitmapSuffixInSameAssemblyAttribute` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class BitmapSuffixInSameAssemblyAttribute : System.Attribute + { + public BitmapSuffixInSameAssemblyAttribute() => throw null; + } + + // Generated from `System.Drawing.BitmapSuffixInSatelliteAssemblyAttribute` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class BitmapSuffixInSatelliteAssemblyAttribute : System.Attribute + { + public BitmapSuffixInSatelliteAssemblyAttribute() => throw null; + } + + // Generated from `System.Drawing.Brush` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class Brush : System.MarshalByRefObject, System.ICloneable, System.IDisposable + { + protected Brush() => throw null; + public abstract object Clone(); + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + protected internal void SetNativeBrush(System.IntPtr brush) => throw null; + // ERR: Stub generator didn't handle member: ~Brush + } + + // Generated from `System.Drawing.Brushes` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public static class Brushes + { + public static System.Drawing.Brush AliceBlue { get => throw null; } + public static System.Drawing.Brush AntiqueWhite { get => throw null; } + public static System.Drawing.Brush Aqua { get => throw null; } + public static System.Drawing.Brush Aquamarine { get => throw null; } + public static System.Drawing.Brush Azure { get => throw null; } + public static System.Drawing.Brush Beige { get => throw null; } + public static System.Drawing.Brush Bisque { get => throw null; } + public static System.Drawing.Brush Black { get => throw null; } + public static System.Drawing.Brush BlanchedAlmond { get => throw null; } + public static System.Drawing.Brush Blue { get => throw null; } + public static System.Drawing.Brush BlueViolet { get => throw null; } + public static System.Drawing.Brush Brown { get => throw null; } + public static System.Drawing.Brush BurlyWood { get => throw null; } + public static System.Drawing.Brush CadetBlue { get => throw null; } + public static System.Drawing.Brush Chartreuse { get => throw null; } + public static System.Drawing.Brush Chocolate { get => throw null; } + public static System.Drawing.Brush Coral { get => throw null; } + public static System.Drawing.Brush CornflowerBlue { get => throw null; } + public static System.Drawing.Brush Cornsilk { get => throw null; } + public static System.Drawing.Brush Crimson { get => throw null; } + public static System.Drawing.Brush Cyan { get => throw null; } + public static System.Drawing.Brush DarkBlue { get => throw null; } + public static System.Drawing.Brush DarkCyan { get => throw null; } + public static System.Drawing.Brush DarkGoldenrod { get => throw null; } + public static System.Drawing.Brush DarkGray { get => throw null; } + public static System.Drawing.Brush DarkGreen { get => throw null; } + public static System.Drawing.Brush DarkKhaki { get => throw null; } + public static System.Drawing.Brush DarkMagenta { get => throw null; } + public static System.Drawing.Brush DarkOliveGreen { get => throw null; } + public static System.Drawing.Brush DarkOrange { get => throw null; } + public static System.Drawing.Brush DarkOrchid { get => throw null; } + public static System.Drawing.Brush DarkRed { get => throw null; } + public static System.Drawing.Brush DarkSalmon { get => throw null; } + public static System.Drawing.Brush DarkSeaGreen { get => throw null; } + public static System.Drawing.Brush DarkSlateBlue { get => throw null; } + public static System.Drawing.Brush DarkSlateGray { get => throw null; } + public static System.Drawing.Brush DarkTurquoise { get => throw null; } + public static System.Drawing.Brush DarkViolet { get => throw null; } + public static System.Drawing.Brush DeepPink { get => throw null; } + public static System.Drawing.Brush DeepSkyBlue { get => throw null; } + public static System.Drawing.Brush DimGray { get => throw null; } + public static System.Drawing.Brush DodgerBlue { get => throw null; } + public static System.Drawing.Brush Firebrick { get => throw null; } + public static System.Drawing.Brush FloralWhite { get => throw null; } + public static System.Drawing.Brush ForestGreen { get => throw null; } + public static System.Drawing.Brush Fuchsia { get => throw null; } + public static System.Drawing.Brush Gainsboro { get => throw null; } + public static System.Drawing.Brush GhostWhite { get => throw null; } + public static System.Drawing.Brush Gold { get => throw null; } + public static System.Drawing.Brush Goldenrod { get => throw null; } + public static System.Drawing.Brush Gray { get => throw null; } + public static System.Drawing.Brush Green { get => throw null; } + public static System.Drawing.Brush GreenYellow { get => throw null; } + public static System.Drawing.Brush Honeydew { get => throw null; } + public static System.Drawing.Brush HotPink { get => throw null; } + public static System.Drawing.Brush IndianRed { get => throw null; } + public static System.Drawing.Brush Indigo { get => throw null; } + public static System.Drawing.Brush Ivory { get => throw null; } + public static System.Drawing.Brush Khaki { get => throw null; } + public static System.Drawing.Brush Lavender { get => throw null; } + public static System.Drawing.Brush LavenderBlush { get => throw null; } + public static System.Drawing.Brush LawnGreen { get => throw null; } + public static System.Drawing.Brush LemonChiffon { get => throw null; } + public static System.Drawing.Brush LightBlue { get => throw null; } + public static System.Drawing.Brush LightCoral { get => throw null; } + public static System.Drawing.Brush LightCyan { get => throw null; } + public static System.Drawing.Brush LightGoldenrodYellow { get => throw null; } + public static System.Drawing.Brush LightGray { get => throw null; } + public static System.Drawing.Brush LightGreen { get => throw null; } + public static System.Drawing.Brush LightPink { get => throw null; } + public static System.Drawing.Brush LightSalmon { get => throw null; } + public static System.Drawing.Brush LightSeaGreen { get => throw null; } + public static System.Drawing.Brush LightSkyBlue { get => throw null; } + public static System.Drawing.Brush LightSlateGray { get => throw null; } + public static System.Drawing.Brush LightSteelBlue { get => throw null; } + public static System.Drawing.Brush LightYellow { get => throw null; } + public static System.Drawing.Brush Lime { get => throw null; } + public static System.Drawing.Brush LimeGreen { get => throw null; } + public static System.Drawing.Brush Linen { get => throw null; } + public static System.Drawing.Brush Magenta { get => throw null; } + public static System.Drawing.Brush Maroon { get => throw null; } + public static System.Drawing.Brush MediumAquamarine { get => throw null; } + public static System.Drawing.Brush MediumBlue { get => throw null; } + public static System.Drawing.Brush MediumOrchid { get => throw null; } + public static System.Drawing.Brush MediumPurple { get => throw null; } + public static System.Drawing.Brush MediumSeaGreen { get => throw null; } + public static System.Drawing.Brush MediumSlateBlue { get => throw null; } + public static System.Drawing.Brush MediumSpringGreen { get => throw null; } + public static System.Drawing.Brush MediumTurquoise { get => throw null; } + public static System.Drawing.Brush MediumVioletRed { get => throw null; } + public static System.Drawing.Brush MidnightBlue { get => throw null; } + public static System.Drawing.Brush MintCream { get => throw null; } + public static System.Drawing.Brush MistyRose { get => throw null; } + public static System.Drawing.Brush Moccasin { get => throw null; } + public static System.Drawing.Brush NavajoWhite { get => throw null; } + public static System.Drawing.Brush Navy { get => throw null; } + public static System.Drawing.Brush OldLace { get => throw null; } + public static System.Drawing.Brush Olive { get => throw null; } + public static System.Drawing.Brush OliveDrab { get => throw null; } + public static System.Drawing.Brush Orange { get => throw null; } + public static System.Drawing.Brush OrangeRed { get => throw null; } + public static System.Drawing.Brush Orchid { get => throw null; } + public static System.Drawing.Brush PaleGoldenrod { get => throw null; } + public static System.Drawing.Brush PaleGreen { get => throw null; } + public static System.Drawing.Brush PaleTurquoise { get => throw null; } + public static System.Drawing.Brush PaleVioletRed { get => throw null; } + public static System.Drawing.Brush PapayaWhip { get => throw null; } + public static System.Drawing.Brush PeachPuff { get => throw null; } + public static System.Drawing.Brush Peru { get => throw null; } + public static System.Drawing.Brush Pink { get => throw null; } + public static System.Drawing.Brush Plum { get => throw null; } + public static System.Drawing.Brush PowderBlue { get => throw null; } + public static System.Drawing.Brush Purple { get => throw null; } + public static System.Drawing.Brush Red { get => throw null; } + public static System.Drawing.Brush RosyBrown { get => throw null; } + public static System.Drawing.Brush RoyalBlue { get => throw null; } + public static System.Drawing.Brush SaddleBrown { get => throw null; } + public static System.Drawing.Brush Salmon { get => throw null; } + public static System.Drawing.Brush SandyBrown { get => throw null; } + public static System.Drawing.Brush SeaGreen { get => throw null; } + public static System.Drawing.Brush SeaShell { get => throw null; } + public static System.Drawing.Brush Sienna { get => throw null; } + public static System.Drawing.Brush Silver { get => throw null; } + public static System.Drawing.Brush SkyBlue { get => throw null; } + public static System.Drawing.Brush SlateBlue { get => throw null; } + public static System.Drawing.Brush SlateGray { get => throw null; } + public static System.Drawing.Brush Snow { get => throw null; } + public static System.Drawing.Brush SpringGreen { get => throw null; } + public static System.Drawing.Brush SteelBlue { get => throw null; } + public static System.Drawing.Brush Tan { get => throw null; } + public static System.Drawing.Brush Teal { get => throw null; } + public static System.Drawing.Brush Thistle { get => throw null; } + public static System.Drawing.Brush Tomato { get => throw null; } + public static System.Drawing.Brush Transparent { get => throw null; } + public static System.Drawing.Brush Turquoise { get => throw null; } + public static System.Drawing.Brush Violet { get => throw null; } + public static System.Drawing.Brush Wheat { get => throw null; } + public static System.Drawing.Brush White { get => throw null; } + public static System.Drawing.Brush WhiteSmoke { get => throw null; } + public static System.Drawing.Brush Yellow { get => throw null; } + public static System.Drawing.Brush YellowGreen { get => throw null; } + } + + // Generated from `System.Drawing.BufferedGraphics` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class BufferedGraphics : System.IDisposable + { + public void Dispose() => throw null; + public System.Drawing.Graphics Graphics { get => throw null; } + public void Render() => throw null; + public void Render(System.Drawing.Graphics target) => throw null; + public void Render(System.IntPtr targetDC) => throw null; + } + + // Generated from `System.Drawing.BufferedGraphicsContext` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class BufferedGraphicsContext : System.IDisposable + { + public System.Drawing.BufferedGraphics Allocate(System.Drawing.Graphics targetGraphics, System.Drawing.Rectangle targetRectangle) => throw null; + public System.Drawing.BufferedGraphics Allocate(System.IntPtr targetDC, System.Drawing.Rectangle targetRectangle) => throw null; + public BufferedGraphicsContext() => throw null; + public void Dispose() => throw null; + public void Invalidate() => throw null; + public System.Drawing.Size MaximumBuffer { get => throw null; set => throw null; } + // ERR: Stub generator didn't handle member: ~BufferedGraphicsContext + } + + // Generated from `System.Drawing.BufferedGraphicsManager` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public static class BufferedGraphicsManager + { + public static System.Drawing.BufferedGraphicsContext Current { get => throw null; } + } + + // Generated from `System.Drawing.CharacterRange` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public struct CharacterRange + { + public static bool operator !=(System.Drawing.CharacterRange cr1, System.Drawing.CharacterRange cr2) => throw null; + public static bool operator ==(System.Drawing.CharacterRange cr1, System.Drawing.CharacterRange cr2) => throw null; + // Stub generator skipped constructor + public CharacterRange(int First, int Length) => throw null; + public override bool Equals(object obj) => throw null; + public int First { get => throw null; set => throw null; } + public override int GetHashCode() => throw null; + public int Length { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.ContentAlignment` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum ContentAlignment + { + BottomCenter, + BottomLeft, + BottomRight, + MiddleCenter, + MiddleLeft, + MiddleRight, + TopCenter, + TopLeft, + TopRight, + } + + // Generated from `System.Drawing.CopyPixelOperation` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum CopyPixelOperation + { + Blackness, + CaptureBlt, + DestinationInvert, + MergeCopy, + MergePaint, + NoMirrorBitmap, + NotSourceCopy, + NotSourceErase, + PatCopy, + PatInvert, + PatPaint, + SourceAnd, + SourceCopy, + SourceErase, + SourceInvert, + SourcePaint, + Whiteness, + } + + // Generated from `System.Drawing.Font` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Font : System.MarshalByRefObject, System.ICloneable, System.IDisposable, System.Runtime.Serialization.ISerializable + { + public bool Bold { get => throw null; } + public object Clone() => throw null; + public void Dispose() => throw null; + public override bool Equals(object obj) => throw null; + public Font(System.Drawing.Font prototype, System.Drawing.FontStyle newStyle) => throw null; + public Font(System.Drawing.FontFamily family, float emSize) => throw null; + public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.FontStyle style) => throw null; + public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit) => throw null; + public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet) => throw null; + public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet, bool gdiVerticalFont) => throw null; + public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.GraphicsUnit unit) => throw null; + public Font(string familyName, float emSize) => throw null; + public Font(string familyName, float emSize, System.Drawing.FontStyle style) => throw null; + public Font(string familyName, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit) => throw null; + public Font(string familyName, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet) => throw null; + public Font(string familyName, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet, bool gdiVerticalFont) => throw null; + public Font(string familyName, float emSize, System.Drawing.GraphicsUnit unit) => throw null; + public System.Drawing.FontFamily FontFamily { get => throw null; } + public static System.Drawing.Font FromHdc(System.IntPtr hdc) => throw null; + public static System.Drawing.Font FromHfont(System.IntPtr hfont) => throw null; + public static System.Drawing.Font FromLogFont(object lf) => throw null; + public static System.Drawing.Font FromLogFont(object lf, System.IntPtr hdc) => throw null; + public System.Byte GdiCharSet { get => throw null; } + public bool GdiVerticalFont { get => throw null; } + public override int GetHashCode() => throw null; + public float GetHeight() => throw null; + public float GetHeight(System.Drawing.Graphics graphics) => throw null; + public float GetHeight(float dpi) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null; + public int Height { get => throw null; } + public bool IsSystemFont { get => throw null; } + public bool Italic { get => throw null; } + public string Name { get => throw null; } + public string OriginalFontName { get => throw null; } + public float Size { get => throw null; } + public float SizeInPoints { get => throw null; } + public bool Strikeout { get => throw null; } + public System.Drawing.FontStyle Style { get => throw null; } + public string SystemFontName { get => throw null; } + public System.IntPtr ToHfont() => throw null; + public void ToLogFont(object logFont) => throw null; + public void ToLogFont(object logFont, System.Drawing.Graphics graphics) => throw null; + public override string ToString() => throw null; + public bool Underline { get => throw null; } + public System.Drawing.GraphicsUnit Unit { get => throw null; } + // ERR: Stub generator didn't handle member: ~Font + } + + // Generated from `System.Drawing.FontConverter` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class FontConverter : System.ComponentModel.TypeConverter + { + // Generated from `System.Drawing.FontConverter+FontNameConverter` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class FontNameConverter : System.ComponentModel.TypeConverter, System.IDisposable + { + 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; + void System.IDisposable.Dispose() => throw null; + public FontNameConverter() => 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; + } + + + // Generated from `System.Drawing.FontConverter+FontUnitConverter` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class FontUnitConverter : System.ComponentModel.EnumConverter + { + public FontUnitConverter() : base(default(System.Type)) => throw null; + public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) => 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 override object CreateInstance(System.ComponentModel.ITypeDescriptorContext context, System.Collections.IDictionary propertyValues) => throw null; + public FontConverter() => 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; + } + + // Generated from `System.Drawing.FontFamily` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class FontFamily : System.MarshalByRefObject, System.IDisposable + { + public void Dispose() => throw null; + public override bool Equals(object obj) => throw null; + public static System.Drawing.FontFamily[] Families { get => throw null; } + public FontFamily(System.Drawing.Text.GenericFontFamilies genericFamily) => throw null; + public FontFamily(string name) => throw null; + public FontFamily(string name, System.Drawing.Text.FontCollection fontCollection) => throw null; + public static System.Drawing.FontFamily GenericMonospace { get => throw null; } + public static System.Drawing.FontFamily GenericSansSerif { get => throw null; } + public static System.Drawing.FontFamily GenericSerif { get => throw null; } + public int GetCellAscent(System.Drawing.FontStyle style) => throw null; + public int GetCellDescent(System.Drawing.FontStyle style) => throw null; + public int GetEmHeight(System.Drawing.FontStyle style) => throw null; + public static System.Drawing.FontFamily[] GetFamilies(System.Drawing.Graphics graphics) => throw null; + public override int GetHashCode() => throw null; + public int GetLineSpacing(System.Drawing.FontStyle style) => throw null; + public string GetName(int language) => throw null; + public bool IsStyleAvailable(System.Drawing.FontStyle style) => throw null; + public string Name { get => throw null; } + public override string ToString() => throw null; + // ERR: Stub generator didn't handle member: ~FontFamily + } + + // Generated from `System.Drawing.FontStyle` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + [System.Flags] + public enum FontStyle + { + Bold, + Italic, + Regular, + Strikeout, + Underline, + } + + // Generated from `System.Drawing.Graphics` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Graphics : System.MarshalByRefObject, System.Drawing.IDeviceContext, System.IDisposable + { + // Generated from `System.Drawing.Graphics+DrawImageAbort` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public delegate bool DrawImageAbort(System.IntPtr callbackdata); + + + // Generated from `System.Drawing.Graphics+EnumerateMetafileProc` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public delegate bool EnumerateMetafileProc(System.Drawing.Imaging.EmfPlusRecordType recordType, int flags, int dataSize, System.IntPtr data, System.Drawing.Imaging.PlayRecordCallback callbackData); + + + public void AddMetafileComment(System.Byte[] data) => throw null; + public System.Drawing.Drawing2D.GraphicsContainer BeginContainer() => throw null; + public System.Drawing.Drawing2D.GraphicsContainer BeginContainer(System.Drawing.Rectangle dstrect, System.Drawing.Rectangle srcrect, System.Drawing.GraphicsUnit unit) => throw null; + public System.Drawing.Drawing2D.GraphicsContainer BeginContainer(System.Drawing.RectangleF dstrect, System.Drawing.RectangleF srcrect, System.Drawing.GraphicsUnit unit) => throw null; + public void Clear(System.Drawing.Color color) => throw null; + public System.Drawing.Region Clip { get => throw null; set => throw null; } + public System.Drawing.RectangleF ClipBounds { get => throw null; } + public System.Drawing.Drawing2D.CompositingMode CompositingMode { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.CompositingQuality CompositingQuality { get => throw null; set => throw null; } + public void CopyFromScreen(System.Drawing.Point upperLeftSource, System.Drawing.Point upperLeftDestination, System.Drawing.Size blockRegionSize) => throw null; + public void CopyFromScreen(System.Drawing.Point upperLeftSource, System.Drawing.Point upperLeftDestination, System.Drawing.Size blockRegionSize, System.Drawing.CopyPixelOperation copyPixelOperation) => throw null; + public void CopyFromScreen(int sourceX, int sourceY, int destinationX, int destinationY, System.Drawing.Size blockRegionSize) => throw null; + public void CopyFromScreen(int sourceX, int sourceY, int destinationX, int destinationY, System.Drawing.Size blockRegionSize, System.Drawing.CopyPixelOperation copyPixelOperation) => throw null; + public void Dispose() => throw null; + public float DpiX { get => throw null; } + public float DpiY { get => throw null; } + public void DrawArc(System.Drawing.Pen pen, System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; + public void DrawArc(System.Drawing.Pen pen, System.Drawing.RectangleF rect, float startAngle, float sweepAngle) => throw null; + public void DrawArc(System.Drawing.Pen pen, float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; + public void DrawArc(System.Drawing.Pen pen, int x, int y, int width, int height, int startAngle, int sweepAngle) => throw null; + public void DrawBezier(System.Drawing.Pen pen, System.Drawing.Point pt1, System.Drawing.Point pt2, System.Drawing.Point pt3, System.Drawing.Point pt4) => throw null; + public void DrawBezier(System.Drawing.Pen pen, System.Drawing.PointF pt1, System.Drawing.PointF pt2, System.Drawing.PointF pt3, System.Drawing.PointF pt4) => throw null; + public void DrawBezier(System.Drawing.Pen pen, float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4) => throw null; + public void DrawBeziers(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; + public void DrawBeziers(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; + public void DrawClosedCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; + public void DrawClosedCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points, float tension, System.Drawing.Drawing2D.FillMode fillmode) => throw null; + public void DrawClosedCurve(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; + public void DrawClosedCurve(System.Drawing.Pen pen, System.Drawing.Point[] points, float tension, System.Drawing.Drawing2D.FillMode fillmode) => throw null; + public void DrawCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; + public void DrawCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points, float tension) => throw null; + public void DrawCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points, int offset, int numberOfSegments) => throw null; + public void DrawCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points, int offset, int numberOfSegments, float tension) => throw null; + public void DrawCurve(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; + public void DrawCurve(System.Drawing.Pen pen, System.Drawing.Point[] points, float tension) => throw null; + public void DrawCurve(System.Drawing.Pen pen, System.Drawing.Point[] points, int offset, int numberOfSegments, float tension) => throw null; + public void DrawEllipse(System.Drawing.Pen pen, System.Drawing.Rectangle rect) => throw null; + public void DrawEllipse(System.Drawing.Pen pen, System.Drawing.RectangleF rect) => throw null; + public void DrawEllipse(System.Drawing.Pen pen, float x, float y, float width, float height) => throw null; + public void DrawEllipse(System.Drawing.Pen pen, int x, int y, int width, int height) => throw null; + public void DrawIcon(System.Drawing.Icon icon, System.Drawing.Rectangle targetRect) => throw null; + public void DrawIcon(System.Drawing.Icon icon, int x, int y) => throw null; + public void DrawIconUnstretched(System.Drawing.Icon icon, System.Drawing.Rectangle targetRect) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Point point) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.PointF point) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback, int callbackData) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback, int callbackData) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle rect) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs, System.Drawing.Graphics.DrawImageAbort callback) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs, System.Drawing.Graphics.DrawImageAbort callback, System.IntPtr callbackData) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs, System.Drawing.Graphics.DrawImageAbort callback, System.IntPtr callbackData) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.RectangleF rect) => throw null; + public void DrawImage(System.Drawing.Image image, System.Drawing.RectangleF destRect, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; + public void DrawImage(System.Drawing.Image image, float x, float y) => throw null; + public void DrawImage(System.Drawing.Image image, float x, float y, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; + public void DrawImage(System.Drawing.Image image, float x, float y, float width, float height) => throw null; + public void DrawImage(System.Drawing.Image image, int x, int y) => throw null; + public void DrawImage(System.Drawing.Image image, int x, int y, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; + public void DrawImage(System.Drawing.Image image, int x, int y, int width, int height) => throw null; + public void DrawImageUnscaled(System.Drawing.Image image, System.Drawing.Point point) => throw null; + public void DrawImageUnscaled(System.Drawing.Image image, System.Drawing.Rectangle rect) => throw null; + public void DrawImageUnscaled(System.Drawing.Image image, int x, int y) => throw null; + public void DrawImageUnscaled(System.Drawing.Image image, int x, int y, int width, int height) => throw null; + public void DrawImageUnscaledAndClipped(System.Drawing.Image image, System.Drawing.Rectangle rect) => throw null; + public void DrawLine(System.Drawing.Pen pen, System.Drawing.Point pt1, System.Drawing.Point pt2) => throw null; + public void DrawLine(System.Drawing.Pen pen, System.Drawing.PointF pt1, System.Drawing.PointF pt2) => throw null; + public void DrawLine(System.Drawing.Pen pen, float x1, float y1, float x2, float y2) => throw null; + public void DrawLine(System.Drawing.Pen pen, int x1, int y1, int x2, int y2) => throw null; + public void DrawLines(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; + public void DrawLines(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; + public void DrawPath(System.Drawing.Pen pen, System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public void DrawPie(System.Drawing.Pen pen, System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; + public void DrawPie(System.Drawing.Pen pen, System.Drawing.RectangleF rect, float startAngle, float sweepAngle) => throw null; + public void DrawPie(System.Drawing.Pen pen, float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; + public void DrawPie(System.Drawing.Pen pen, int x, int y, int width, int height, int startAngle, int sweepAngle) => throw null; + public void DrawPolygon(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; + public void DrawPolygon(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; + public void DrawRectangle(System.Drawing.Pen pen, System.Drawing.Rectangle rect) => throw null; + public void DrawRectangle(System.Drawing.Pen pen, float x, float y, float width, float height) => throw null; + public void DrawRectangle(System.Drawing.Pen pen, int x, int y, int width, int height) => throw null; + public void DrawRectangles(System.Drawing.Pen pen, System.Drawing.RectangleF[] rects) => throw null; + public void DrawRectangles(System.Drawing.Pen pen, System.Drawing.Rectangle[] rects) => throw null; + public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, System.Drawing.PointF point) => throw null; + public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, System.Drawing.PointF point, System.Drawing.StringFormat format) => throw null; + public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, System.Drawing.RectangleF layoutRectangle) => throw null; + public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, System.Drawing.RectangleF layoutRectangle, System.Drawing.StringFormat format) => throw null; + public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, float x, float y) => throw null; + public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, float x, float y, System.Drawing.StringFormat format) => throw null; + public void EndContainer(System.Drawing.Drawing2D.GraphicsContainer container) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; + public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public void ExcludeClip(System.Drawing.Rectangle rect) => throw null; + public void ExcludeClip(System.Drawing.Region region) => throw null; + public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.PointF[] points) => throw null; + public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.PointF[] points, System.Drawing.Drawing2D.FillMode fillmode) => throw null; + public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.PointF[] points, System.Drawing.Drawing2D.FillMode fillmode, float tension) => throw null; + public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.Point[] points) => throw null; + public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.Point[] points, System.Drawing.Drawing2D.FillMode fillmode) => throw null; + public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.Point[] points, System.Drawing.Drawing2D.FillMode fillmode, float tension) => throw null; + public void FillEllipse(System.Drawing.Brush brush, System.Drawing.Rectangle rect) => throw null; + public void FillEllipse(System.Drawing.Brush brush, System.Drawing.RectangleF rect) => throw null; + public void FillEllipse(System.Drawing.Brush brush, float x, float y, float width, float height) => throw null; + public void FillEllipse(System.Drawing.Brush brush, int x, int y, int width, int height) => throw null; + public void FillPath(System.Drawing.Brush brush, System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public void FillPie(System.Drawing.Brush brush, System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; + public void FillPie(System.Drawing.Brush brush, float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; + public void FillPie(System.Drawing.Brush brush, int x, int y, int width, int height, int startAngle, int sweepAngle) => throw null; + public void FillPolygon(System.Drawing.Brush brush, System.Drawing.PointF[] points) => throw null; + public void FillPolygon(System.Drawing.Brush brush, System.Drawing.PointF[] points, System.Drawing.Drawing2D.FillMode fillMode) => throw null; + public void FillPolygon(System.Drawing.Brush brush, System.Drawing.Point[] points) => throw null; + public void FillPolygon(System.Drawing.Brush brush, System.Drawing.Point[] points, System.Drawing.Drawing2D.FillMode fillMode) => throw null; + public void FillRectangle(System.Drawing.Brush brush, System.Drawing.Rectangle rect) => throw null; + public void FillRectangle(System.Drawing.Brush brush, System.Drawing.RectangleF rect) => throw null; + public void FillRectangle(System.Drawing.Brush brush, float x, float y, float width, float height) => throw null; + public void FillRectangle(System.Drawing.Brush brush, int x, int y, int width, int height) => throw null; + public void FillRectangles(System.Drawing.Brush brush, System.Drawing.RectangleF[] rects) => throw null; + public void FillRectangles(System.Drawing.Brush brush, System.Drawing.Rectangle[] rects) => throw null; + public void FillRegion(System.Drawing.Brush brush, System.Drawing.Region region) => throw null; + public void Flush() => throw null; + public void Flush(System.Drawing.Drawing2D.FlushIntention intention) => throw null; + public static System.Drawing.Graphics FromHdc(System.IntPtr hdc) => throw null; + public static System.Drawing.Graphics FromHdc(System.IntPtr hdc, System.IntPtr hdevice) => throw null; + public static System.Drawing.Graphics FromHdcInternal(System.IntPtr hdc) => throw null; + public static System.Drawing.Graphics FromHwnd(System.IntPtr hwnd) => throw null; + public static System.Drawing.Graphics FromHwndInternal(System.IntPtr hwnd) => throw null; + public static System.Drawing.Graphics FromImage(System.Drawing.Image image) => throw null; + public object GetContextInfo() => throw null; + public static System.IntPtr GetHalftonePalette() => throw null; + public System.IntPtr GetHdc() => throw null; + public System.Drawing.Color GetNearestColor(System.Drawing.Color color) => throw null; + public System.Drawing.Drawing2D.InterpolationMode InterpolationMode { get => throw null; set => throw null; } + public void IntersectClip(System.Drawing.Rectangle rect) => throw null; + public void IntersectClip(System.Drawing.RectangleF rect) => throw null; + public void IntersectClip(System.Drawing.Region region) => throw null; + public bool IsClipEmpty { get => throw null; } + public bool IsVisible(System.Drawing.Point point) => throw null; + public bool IsVisible(System.Drawing.PointF point) => throw null; + public bool IsVisible(System.Drawing.Rectangle rect) => throw null; + public bool IsVisible(System.Drawing.RectangleF rect) => throw null; + public bool IsVisible(float x, float y) => throw null; + public bool IsVisible(float x, float y, float width, float height) => throw null; + public bool IsVisible(int x, int y) => throw null; + public bool IsVisible(int x, int y, int width, int height) => throw null; + public bool IsVisibleClipEmpty { get => throw null; } + public System.Drawing.Region[] MeasureCharacterRanges(string text, System.Drawing.Font font, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat stringFormat) => throw null; + public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font) => throw null; + public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, System.Drawing.PointF origin, System.Drawing.StringFormat stringFormat) => throw null; + public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea) => throw null; + public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat stringFormat) => throw null; + public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat stringFormat, out int charactersFitted, out int linesFilled) => throw null; + public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, int width) => throw null; + public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, int width, System.Drawing.StringFormat format) => throw null; + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public float PageScale { get => throw null; set => throw null; } + public System.Drawing.GraphicsUnit PageUnit { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.PixelOffsetMode PixelOffsetMode { get => throw null; set => throw null; } + public void ReleaseHdc() => throw null; + public void ReleaseHdc(System.IntPtr hdc) => throw null; + public void ReleaseHdcInternal(System.IntPtr hdc) => throw null; + public System.Drawing.Point RenderingOrigin { get => throw null; set => throw null; } + public void ResetClip() => throw null; + public void ResetTransform() => throw null; + public void Restore(System.Drawing.Drawing2D.GraphicsState gstate) => throw null; + public void RotateTransform(float angle) => throw null; + public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public System.Drawing.Drawing2D.GraphicsState Save() => throw null; + public void ScaleTransform(float sx, float sy) => throw null; + public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void SetClip(System.Drawing.Graphics g) => throw null; + public void SetClip(System.Drawing.Graphics g, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; + public void SetClip(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public void SetClip(System.Drawing.Drawing2D.GraphicsPath path, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; + public void SetClip(System.Drawing.Rectangle rect) => throw null; + public void SetClip(System.Drawing.Rectangle rect, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; + public void SetClip(System.Drawing.RectangleF rect) => throw null; + public void SetClip(System.Drawing.RectangleF rect, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; + public void SetClip(System.Drawing.Region region, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; + public System.Drawing.Drawing2D.SmoothingMode SmoothingMode { get => throw null; set => throw null; } + public int TextContrast { get => throw null; set => throw null; } + public System.Drawing.Text.TextRenderingHint TextRenderingHint { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } + public void TransformPoints(System.Drawing.Drawing2D.CoordinateSpace destSpace, System.Drawing.Drawing2D.CoordinateSpace srcSpace, System.Drawing.PointF[] pts) => throw null; + public void TransformPoints(System.Drawing.Drawing2D.CoordinateSpace destSpace, System.Drawing.Drawing2D.CoordinateSpace srcSpace, System.Drawing.Point[] pts) => throw null; + public void TranslateClip(float dx, float dy) => throw null; + public void TranslateClip(int dx, int dy) => throw null; + public void TranslateTransform(float dx, float dy) => throw null; + public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public System.Drawing.RectangleF VisibleClipBounds { get => throw null; } + // ERR: Stub generator didn't handle member: ~Graphics + } + + // Generated from `System.Drawing.GraphicsUnit` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum GraphicsUnit + { + Display, + Document, + Inch, + Millimeter, + Pixel, + Point, + World, + } + + // Generated from `System.Drawing.IDeviceContext` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public interface IDeviceContext : System.IDisposable + { + System.IntPtr GetHdc(); + void ReleaseHdc(); + } + + // Generated from `System.Drawing.Icon` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Icon : System.MarshalByRefObject, System.ICloneable, System.IDisposable, System.Runtime.Serialization.ISerializable + { + public object Clone() => throw null; + public void Dispose() => throw null; + public static System.Drawing.Icon ExtractAssociatedIcon(string filePath) => throw null; + public static System.Drawing.Icon FromHandle(System.IntPtr handle) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.IntPtr Handle { get => throw null; } + public int Height { get => throw null; } + public Icon(System.Drawing.Icon original, System.Drawing.Size size) => throw null; + public Icon(System.Drawing.Icon original, int width, int height) => throw null; + public Icon(System.IO.Stream stream) => throw null; + public Icon(System.IO.Stream stream, System.Drawing.Size size) => throw null; + public Icon(System.IO.Stream stream, int width, int height) => throw null; + public Icon(System.Type type, string resource) => throw null; + public Icon(string fileName) => throw null; + public Icon(string fileName, System.Drawing.Size size) => throw null; + public Icon(string fileName, int width, int height) => throw null; + public void Save(System.IO.Stream outputStream) => throw null; + public System.Drawing.Size Size { get => throw null; } + public System.Drawing.Bitmap ToBitmap() => throw null; + public override string ToString() => throw null; + public int Width { get => throw null; } + // ERR: Stub generator didn't handle member: ~Icon + } + + // Generated from `System.Drawing.IconConverter` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class IconConverter : System.ComponentModel.ExpandableObjectConverter + { + 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 IconConverter() => throw null; + } + + // Generated from `System.Drawing.Image` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class Image : System.MarshalByRefObject, System.ICloneable, System.IDisposable, System.Runtime.Serialization.ISerializable + { + // Generated from `System.Drawing.Image+GetThumbnailImageAbort` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public delegate bool GetThumbnailImageAbort(); + + + public object Clone() => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public int Flags { get => throw null; } + public System.Guid[] FrameDimensionsList { get => throw null; } + public static System.Drawing.Image FromFile(string filename) => throw null; + public static System.Drawing.Image FromFile(string filename, bool useEmbeddedColorManagement) => throw null; + public static System.Drawing.Bitmap FromHbitmap(System.IntPtr hbitmap) => throw null; + public static System.Drawing.Bitmap FromHbitmap(System.IntPtr hbitmap, System.IntPtr hpalette) => throw null; + public static System.Drawing.Image FromStream(System.IO.Stream stream) => throw null; + public static System.Drawing.Image FromStream(System.IO.Stream stream, bool useEmbeddedColorManagement) => throw null; + public static System.Drawing.Image FromStream(System.IO.Stream stream, bool useEmbeddedColorManagement, bool validateImageData) => throw null; + public System.Drawing.RectangleF GetBounds(ref System.Drawing.GraphicsUnit pageUnit) => throw null; + public System.Drawing.Imaging.EncoderParameters GetEncoderParameterList(System.Guid encoder) => throw null; + public int GetFrameCount(System.Drawing.Imaging.FrameDimension dimension) => throw null; + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null; + public static int GetPixelFormatSize(System.Drawing.Imaging.PixelFormat pixfmt) => throw null; + public System.Drawing.Imaging.PropertyItem GetPropertyItem(int propid) => throw null; + public System.Drawing.Image GetThumbnailImage(int thumbWidth, int thumbHeight, System.Drawing.Image.GetThumbnailImageAbort callback, System.IntPtr callbackData) => throw null; + public int Height { get => throw null; } + public float HorizontalResolution { get => throw null; } + internal Image() => throw null; + public static bool IsAlphaPixelFormat(System.Drawing.Imaging.PixelFormat pixfmt) => throw null; + public static bool IsCanonicalPixelFormat(System.Drawing.Imaging.PixelFormat pixfmt) => throw null; + public static bool IsExtendedPixelFormat(System.Drawing.Imaging.PixelFormat pixfmt) => throw null; + public System.Drawing.Imaging.ColorPalette Palette { get => throw null; set => throw null; } + public System.Drawing.SizeF PhysicalDimension { get => throw null; } + public System.Drawing.Imaging.PixelFormat PixelFormat { get => throw null; } + public int[] PropertyIdList { get => throw null; } + public System.Drawing.Imaging.PropertyItem[] PropertyItems { get => throw null; } + public System.Drawing.Imaging.ImageFormat RawFormat { get => throw null; } + public void RemovePropertyItem(int propid) => throw null; + public void RotateFlip(System.Drawing.RotateFlipType rotateFlipType) => throw null; + public void Save(System.IO.Stream stream, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams) => throw null; + public void Save(System.IO.Stream stream, System.Drawing.Imaging.ImageFormat format) => throw null; + public void Save(string filename) => throw null; + public void Save(string filename, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams) => throw null; + public void Save(string filename, System.Drawing.Imaging.ImageFormat format) => throw null; + public void SaveAdd(System.Drawing.Imaging.EncoderParameters encoderParams) => throw null; + public void SaveAdd(System.Drawing.Image image, System.Drawing.Imaging.EncoderParameters encoderParams) => throw null; + public int SelectActiveFrame(System.Drawing.Imaging.FrameDimension dimension, int frameIndex) => throw null; + public void SetPropertyItem(System.Drawing.Imaging.PropertyItem propitem) => throw null; + public System.Drawing.Size Size { get => throw null; } + public object Tag { get => throw null; set => throw null; } + public float VerticalResolution { get => throw null; } + public int Width { get => throw null; } + // ERR: Stub generator didn't handle member: ~Image + } + + // Generated from `System.Drawing.ImageAnimator` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ImageAnimator + { + public static void Animate(System.Drawing.Image image, System.EventHandler onFrameChangedHandler) => throw null; + public static bool CanAnimate(System.Drawing.Image image) => throw null; + public static void StopAnimate(System.Drawing.Image image, System.EventHandler onFrameChangedHandler) => throw null; + public static void UpdateFrames() => throw null; + public static void UpdateFrames(System.Drawing.Image image) => throw null; + } + + // Generated from `System.Drawing.ImageConverter` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ImageConverter : 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.PropertyDescriptorCollection GetProperties(System.ComponentModel.ITypeDescriptorContext context, object value, System.Attribute[] attributes) => throw null; + public override bool GetPropertiesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public ImageConverter() => throw null; + } + + // Generated from `System.Drawing.ImageFormatConverter` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ImageFormatConverter : 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 GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) => throw null; + public ImageFormatConverter() => throw null; + } + + // Generated from `System.Drawing.Pen` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Pen : System.MarshalByRefObject, System.ICloneable, System.IDisposable + { + public System.Drawing.Drawing2D.PenAlignment Alignment { get => throw null; set => throw null; } + public System.Drawing.Brush Brush { get => throw null; set => throw null; } + public object Clone() => throw null; + public System.Drawing.Color Color { get => throw null; set => throw null; } + public float[] CompoundArray { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.CustomLineCap CustomEndCap { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.CustomLineCap CustomStartCap { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.DashCap DashCap { get => throw null; set => throw null; } + public float DashOffset { get => throw null; set => throw null; } + public float[] DashPattern { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.DashStyle DashStyle { get => throw null; set => throw null; } + public void Dispose() => throw null; + public System.Drawing.Drawing2D.LineCap EndCap { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.LineJoin LineJoin { get => throw null; set => throw null; } + public float MiterLimit { get => throw null; set => throw null; } + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public Pen(System.Drawing.Brush brush) => throw null; + public Pen(System.Drawing.Brush brush, float width) => throw null; + public Pen(System.Drawing.Color color) => throw null; + public Pen(System.Drawing.Color color, float width) => throw null; + public System.Drawing.Drawing2D.PenType PenType { get => throw null; } + public void ResetTransform() => throw null; + public void RotateTransform(float angle) => throw null; + public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void ScaleTransform(float sx, float sy) => throw null; + public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void SetLineCap(System.Drawing.Drawing2D.LineCap startCap, System.Drawing.Drawing2D.LineCap endCap, System.Drawing.Drawing2D.DashCap dashCap) => throw null; + public System.Drawing.Drawing2D.LineCap StartCap { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } + public void TranslateTransform(float dx, float dy) => throw null; + public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public float Width { get => throw null; set => throw null; } + // ERR: Stub generator didn't handle member: ~Pen + } + + // Generated from `System.Drawing.Pens` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public static class Pens + { + public static System.Drawing.Pen AliceBlue { get => throw null; } + public static System.Drawing.Pen AntiqueWhite { get => throw null; } + public static System.Drawing.Pen Aqua { get => throw null; } + public static System.Drawing.Pen Aquamarine { get => throw null; } + public static System.Drawing.Pen Azure { get => throw null; } + public static System.Drawing.Pen Beige { get => throw null; } + public static System.Drawing.Pen Bisque { get => throw null; } + public static System.Drawing.Pen Black { get => throw null; } + public static System.Drawing.Pen BlanchedAlmond { get => throw null; } + public static System.Drawing.Pen Blue { get => throw null; } + public static System.Drawing.Pen BlueViolet { get => throw null; } + public static System.Drawing.Pen Brown { get => throw null; } + public static System.Drawing.Pen BurlyWood { get => throw null; } + public static System.Drawing.Pen CadetBlue { get => throw null; } + public static System.Drawing.Pen Chartreuse { get => throw null; } + public static System.Drawing.Pen Chocolate { get => throw null; } + public static System.Drawing.Pen Coral { get => throw null; } + public static System.Drawing.Pen CornflowerBlue { get => throw null; } + public static System.Drawing.Pen Cornsilk { get => throw null; } + public static System.Drawing.Pen Crimson { get => throw null; } + public static System.Drawing.Pen Cyan { get => throw null; } + public static System.Drawing.Pen DarkBlue { get => throw null; } + public static System.Drawing.Pen DarkCyan { get => throw null; } + public static System.Drawing.Pen DarkGoldenrod { get => throw null; } + public static System.Drawing.Pen DarkGray { get => throw null; } + public static System.Drawing.Pen DarkGreen { get => throw null; } + public static System.Drawing.Pen DarkKhaki { get => throw null; } + public static System.Drawing.Pen DarkMagenta { get => throw null; } + public static System.Drawing.Pen DarkOliveGreen { get => throw null; } + public static System.Drawing.Pen DarkOrange { get => throw null; } + public static System.Drawing.Pen DarkOrchid { get => throw null; } + public static System.Drawing.Pen DarkRed { get => throw null; } + public static System.Drawing.Pen DarkSalmon { get => throw null; } + public static System.Drawing.Pen DarkSeaGreen { get => throw null; } + public static System.Drawing.Pen DarkSlateBlue { get => throw null; } + public static System.Drawing.Pen DarkSlateGray { get => throw null; } + public static System.Drawing.Pen DarkTurquoise { get => throw null; } + public static System.Drawing.Pen DarkViolet { get => throw null; } + public static System.Drawing.Pen DeepPink { get => throw null; } + public static System.Drawing.Pen DeepSkyBlue { get => throw null; } + public static System.Drawing.Pen DimGray { get => throw null; } + public static System.Drawing.Pen DodgerBlue { get => throw null; } + public static System.Drawing.Pen Firebrick { get => throw null; } + public static System.Drawing.Pen FloralWhite { get => throw null; } + public static System.Drawing.Pen ForestGreen { get => throw null; } + public static System.Drawing.Pen Fuchsia { get => throw null; } + public static System.Drawing.Pen Gainsboro { get => throw null; } + public static System.Drawing.Pen GhostWhite { get => throw null; } + public static System.Drawing.Pen Gold { get => throw null; } + public static System.Drawing.Pen Goldenrod { get => throw null; } + public static System.Drawing.Pen Gray { get => throw null; } + public static System.Drawing.Pen Green { get => throw null; } + public static System.Drawing.Pen GreenYellow { get => throw null; } + public static System.Drawing.Pen Honeydew { get => throw null; } + public static System.Drawing.Pen HotPink { get => throw null; } + public static System.Drawing.Pen IndianRed { get => throw null; } + public static System.Drawing.Pen Indigo { get => throw null; } + public static System.Drawing.Pen Ivory { get => throw null; } + public static System.Drawing.Pen Khaki { get => throw null; } + public static System.Drawing.Pen Lavender { get => throw null; } + public static System.Drawing.Pen LavenderBlush { get => throw null; } + public static System.Drawing.Pen LawnGreen { get => throw null; } + public static System.Drawing.Pen LemonChiffon { get => throw null; } + public static System.Drawing.Pen LightBlue { get => throw null; } + public static System.Drawing.Pen LightCoral { get => throw null; } + public static System.Drawing.Pen LightCyan { get => throw null; } + public static System.Drawing.Pen LightGoldenrodYellow { get => throw null; } + public static System.Drawing.Pen LightGray { get => throw null; } + public static System.Drawing.Pen LightGreen { get => throw null; } + public static System.Drawing.Pen LightPink { get => throw null; } + public static System.Drawing.Pen LightSalmon { get => throw null; } + public static System.Drawing.Pen LightSeaGreen { get => throw null; } + public static System.Drawing.Pen LightSkyBlue { get => throw null; } + public static System.Drawing.Pen LightSlateGray { get => throw null; } + public static System.Drawing.Pen LightSteelBlue { get => throw null; } + public static System.Drawing.Pen LightYellow { get => throw null; } + public static System.Drawing.Pen Lime { get => throw null; } + public static System.Drawing.Pen LimeGreen { get => throw null; } + public static System.Drawing.Pen Linen { get => throw null; } + public static System.Drawing.Pen Magenta { get => throw null; } + public static System.Drawing.Pen Maroon { get => throw null; } + public static System.Drawing.Pen MediumAquamarine { get => throw null; } + public static System.Drawing.Pen MediumBlue { get => throw null; } + public static System.Drawing.Pen MediumOrchid { get => throw null; } + public static System.Drawing.Pen MediumPurple { get => throw null; } + public static System.Drawing.Pen MediumSeaGreen { get => throw null; } + public static System.Drawing.Pen MediumSlateBlue { get => throw null; } + public static System.Drawing.Pen MediumSpringGreen { get => throw null; } + public static System.Drawing.Pen MediumTurquoise { get => throw null; } + public static System.Drawing.Pen MediumVioletRed { get => throw null; } + public static System.Drawing.Pen MidnightBlue { get => throw null; } + public static System.Drawing.Pen MintCream { get => throw null; } + public static System.Drawing.Pen MistyRose { get => throw null; } + public static System.Drawing.Pen Moccasin { get => throw null; } + public static System.Drawing.Pen NavajoWhite { get => throw null; } + public static System.Drawing.Pen Navy { get => throw null; } + public static System.Drawing.Pen OldLace { get => throw null; } + public static System.Drawing.Pen Olive { get => throw null; } + public static System.Drawing.Pen OliveDrab { get => throw null; } + public static System.Drawing.Pen Orange { get => throw null; } + public static System.Drawing.Pen OrangeRed { get => throw null; } + public static System.Drawing.Pen Orchid { get => throw null; } + public static System.Drawing.Pen PaleGoldenrod { get => throw null; } + public static System.Drawing.Pen PaleGreen { get => throw null; } + public static System.Drawing.Pen PaleTurquoise { get => throw null; } + public static System.Drawing.Pen PaleVioletRed { get => throw null; } + public static System.Drawing.Pen PapayaWhip { get => throw null; } + public static System.Drawing.Pen PeachPuff { get => throw null; } + public static System.Drawing.Pen Peru { get => throw null; } + public static System.Drawing.Pen Pink { get => throw null; } + public static System.Drawing.Pen Plum { get => throw null; } + public static System.Drawing.Pen PowderBlue { get => throw null; } + public static System.Drawing.Pen Purple { get => throw null; } + public static System.Drawing.Pen Red { get => throw null; } + public static System.Drawing.Pen RosyBrown { get => throw null; } + public static System.Drawing.Pen RoyalBlue { get => throw null; } + public static System.Drawing.Pen SaddleBrown { get => throw null; } + public static System.Drawing.Pen Salmon { get => throw null; } + public static System.Drawing.Pen SandyBrown { get => throw null; } + public static System.Drawing.Pen SeaGreen { get => throw null; } + public static System.Drawing.Pen SeaShell { get => throw null; } + public static System.Drawing.Pen Sienna { get => throw null; } + public static System.Drawing.Pen Silver { get => throw null; } + public static System.Drawing.Pen SkyBlue { get => throw null; } + public static System.Drawing.Pen SlateBlue { get => throw null; } + public static System.Drawing.Pen SlateGray { get => throw null; } + public static System.Drawing.Pen Snow { get => throw null; } + public static System.Drawing.Pen SpringGreen { get => throw null; } + public static System.Drawing.Pen SteelBlue { get => throw null; } + public static System.Drawing.Pen Tan { get => throw null; } + public static System.Drawing.Pen Teal { get => throw null; } + public static System.Drawing.Pen Thistle { get => throw null; } + public static System.Drawing.Pen Tomato { get => throw null; } + public static System.Drawing.Pen Transparent { get => throw null; } + public static System.Drawing.Pen Turquoise { get => throw null; } + public static System.Drawing.Pen Violet { get => throw null; } + public static System.Drawing.Pen Wheat { get => throw null; } + public static System.Drawing.Pen White { get => throw null; } + public static System.Drawing.Pen WhiteSmoke { get => throw null; } + public static System.Drawing.Pen Yellow { get => throw null; } + public static System.Drawing.Pen YellowGreen { get => throw null; } + } + + // Generated from `System.Drawing.Region` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Region : System.MarshalByRefObject, System.IDisposable + { + public System.Drawing.Region Clone() => throw null; + public void Complement(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public void Complement(System.Drawing.Rectangle rect) => throw null; + public void Complement(System.Drawing.RectangleF rect) => throw null; + public void Complement(System.Drawing.Region region) => throw null; + public void Dispose() => throw null; + public bool Equals(System.Drawing.Region region, System.Drawing.Graphics g) => throw null; + public void Exclude(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public void Exclude(System.Drawing.Rectangle rect) => throw null; + public void Exclude(System.Drawing.RectangleF rect) => throw null; + public void Exclude(System.Drawing.Region region) => throw null; + public static System.Drawing.Region FromHrgn(System.IntPtr hrgn) => throw null; + public System.Drawing.RectangleF GetBounds(System.Drawing.Graphics g) => throw null; + public System.IntPtr GetHrgn(System.Drawing.Graphics g) => throw null; + public System.Drawing.Drawing2D.RegionData GetRegionData() => throw null; + public System.Drawing.RectangleF[] GetRegionScans(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void Intersect(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public void Intersect(System.Drawing.Rectangle rect) => throw null; + public void Intersect(System.Drawing.RectangleF rect) => throw null; + public void Intersect(System.Drawing.Region region) => throw null; + public bool IsEmpty(System.Drawing.Graphics g) => throw null; + public bool IsInfinite(System.Drawing.Graphics g) => throw null; + public bool IsVisible(System.Drawing.Point point) => throw null; + public bool IsVisible(System.Drawing.Point point, System.Drawing.Graphics g) => throw null; + public bool IsVisible(System.Drawing.PointF point) => throw null; + public bool IsVisible(System.Drawing.PointF point, System.Drawing.Graphics g) => throw null; + public bool IsVisible(System.Drawing.Rectangle rect) => throw null; + public bool IsVisible(System.Drawing.Rectangle rect, System.Drawing.Graphics g) => throw null; + public bool IsVisible(System.Drawing.RectangleF rect) => throw null; + public bool IsVisible(System.Drawing.RectangleF rect, System.Drawing.Graphics g) => throw null; + public bool IsVisible(float x, float y) => throw null; + public bool IsVisible(float x, float y, System.Drawing.Graphics g) => throw null; + public bool IsVisible(float x, float y, float width, float height) => throw null; + public bool IsVisible(float x, float y, float width, float height, System.Drawing.Graphics g) => throw null; + public bool IsVisible(int x, int y, System.Drawing.Graphics g) => throw null; + public bool IsVisible(int x, int y, int width, int height) => throw null; + public bool IsVisible(int x, int y, int width, int height, System.Drawing.Graphics g) => throw null; + public void MakeEmpty() => throw null; + public void MakeInfinite() => throw null; + public Region() => throw null; + public Region(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public Region(System.Drawing.Rectangle rect) => throw null; + public Region(System.Drawing.RectangleF rect) => throw null; + public Region(System.Drawing.Drawing2D.RegionData rgnData) => throw null; + public void ReleaseHrgn(System.IntPtr regionHandle) => throw null; + public void Transform(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void Translate(float dx, float dy) => throw null; + public void Translate(int dx, int dy) => throw null; + public void Union(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public void Union(System.Drawing.Rectangle rect) => throw null; + public void Union(System.Drawing.RectangleF rect) => throw null; + public void Union(System.Drawing.Region region) => throw null; + public void Xor(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public void Xor(System.Drawing.Rectangle rect) => throw null; + public void Xor(System.Drawing.RectangleF rect) => throw null; + public void Xor(System.Drawing.Region region) => throw null; + // ERR: Stub generator didn't handle member: ~Region + } + + // Generated from `System.Drawing.RotateFlipType` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum RotateFlipType + { + Rotate180FlipNone, + Rotate180FlipX, + Rotate180FlipXY, + Rotate180FlipY, + Rotate270FlipNone, + Rotate270FlipX, + Rotate270FlipXY, + Rotate270FlipY, + Rotate90FlipNone, + Rotate90FlipX, + Rotate90FlipXY, + Rotate90FlipY, + RotateNoneFlipNone, + RotateNoneFlipX, + RotateNoneFlipXY, + RotateNoneFlipY, + } + + // Generated from `System.Drawing.SolidBrush` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class SolidBrush : System.Drawing.Brush + { + public override object Clone() => throw null; + public System.Drawing.Color Color { get => throw null; set => throw null; } + protected override void Dispose(bool disposing) => throw null; + public SolidBrush(System.Drawing.Color color) => throw null; + } + + // Generated from `System.Drawing.StringAlignment` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum StringAlignment + { + Center, + Far, + Near, + } + + // Generated from `System.Drawing.StringDigitSubstitute` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum StringDigitSubstitute + { + National, + None, + Traditional, + User, + } + + // Generated from `System.Drawing.StringFormat` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class StringFormat : System.MarshalByRefObject, System.ICloneable, System.IDisposable + { + public System.Drawing.StringAlignment Alignment { get => throw null; set => throw null; } + public object Clone() => throw null; + public int DigitSubstitutionLanguage { get => throw null; } + public System.Drawing.StringDigitSubstitute DigitSubstitutionMethod { get => throw null; } + public void Dispose() => throw null; + public System.Drawing.StringFormatFlags FormatFlags { get => throw null; set => throw null; } + public static System.Drawing.StringFormat GenericDefault { get => throw null; } + public static System.Drawing.StringFormat GenericTypographic { get => throw null; } + public float[] GetTabStops(out float firstTabOffset) => throw null; + public System.Drawing.Text.HotkeyPrefix HotkeyPrefix { get => throw null; set => throw null; } + public System.Drawing.StringAlignment LineAlignment { get => throw null; set => throw null; } + public void SetDigitSubstitution(int language, System.Drawing.StringDigitSubstitute substitute) => throw null; + public void SetMeasurableCharacterRanges(System.Drawing.CharacterRange[] ranges) => throw null; + public void SetTabStops(float firstTabOffset, float[] tabStops) => throw null; + public StringFormat() => throw null; + public StringFormat(System.Drawing.StringFormat format) => throw null; + public StringFormat(System.Drawing.StringFormatFlags options) => throw null; + public StringFormat(System.Drawing.StringFormatFlags options, int language) => throw null; + public override string ToString() => throw null; + public System.Drawing.StringTrimming Trimming { get => throw null; set => throw null; } + // ERR: Stub generator didn't handle member: ~StringFormat + } + + // Generated from `System.Drawing.StringFormatFlags` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + [System.Flags] + public enum StringFormatFlags + { + DirectionRightToLeft, + DirectionVertical, + DisplayFormatControl, + FitBlackBox, + LineLimit, + MeasureTrailingSpaces, + NoClip, + NoFontFallback, + NoWrap, + } + + // Generated from `System.Drawing.StringTrimming` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum StringTrimming + { + Character, + EllipsisCharacter, + EllipsisPath, + EllipsisWord, + None, + Word, + } + + // Generated from `System.Drawing.StringUnit` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum StringUnit + { + Display, + Document, + Em, + Inch, + Millimeter, + Pixel, + Point, + World, + } + + // Generated from `System.Drawing.SystemBrushes` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public static class SystemBrushes + { + public static System.Drawing.Brush ActiveBorder { get => throw null; } + public static System.Drawing.Brush ActiveCaption { get => throw null; } + public static System.Drawing.Brush ActiveCaptionText { get => throw null; } + public static System.Drawing.Brush AppWorkspace { get => throw null; } + public static System.Drawing.Brush ButtonFace { get => throw null; } + public static System.Drawing.Brush ButtonHighlight { get => throw null; } + public static System.Drawing.Brush ButtonShadow { get => throw null; } + public static System.Drawing.Brush Control { get => throw null; } + public static System.Drawing.Brush ControlDark { get => throw null; } + public static System.Drawing.Brush ControlDarkDark { get => throw null; } + public static System.Drawing.Brush ControlLight { get => throw null; } + public static System.Drawing.Brush ControlLightLight { get => throw null; } + public static System.Drawing.Brush ControlText { get => throw null; } + public static System.Drawing.Brush Desktop { get => throw null; } + public static System.Drawing.Brush FromSystemColor(System.Drawing.Color c) => throw null; + public static System.Drawing.Brush GradientActiveCaption { get => throw null; } + public static System.Drawing.Brush GradientInactiveCaption { get => throw null; } + public static System.Drawing.Brush GrayText { get => throw null; } + public static System.Drawing.Brush Highlight { get => throw null; } + public static System.Drawing.Brush HighlightText { get => throw null; } + public static System.Drawing.Brush HotTrack { get => throw null; } + public static System.Drawing.Brush InactiveBorder { get => throw null; } + public static System.Drawing.Brush InactiveCaption { get => throw null; } + public static System.Drawing.Brush InactiveCaptionText { get => throw null; } + public static System.Drawing.Brush Info { get => throw null; } + public static System.Drawing.Brush InfoText { get => throw null; } + public static System.Drawing.Brush Menu { get => throw null; } + public static System.Drawing.Brush MenuBar { get => throw null; } + public static System.Drawing.Brush MenuHighlight { get => throw null; } + public static System.Drawing.Brush MenuText { get => throw null; } + public static System.Drawing.Brush ScrollBar { get => throw null; } + public static System.Drawing.Brush Window { get => throw null; } + public static System.Drawing.Brush WindowFrame { get => throw null; } + public static System.Drawing.Brush WindowText { get => throw null; } + } + + // Generated from `System.Drawing.SystemFonts` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public static class SystemFonts + { + public static System.Drawing.Font CaptionFont { get => throw null; } + public static System.Drawing.Font DefaultFont { get => throw null; } + public static System.Drawing.Font DialogFont { get => throw null; } + public static System.Drawing.Font GetFontByName(string systemFontName) => throw null; + public static System.Drawing.Font IconTitleFont { get => throw null; } + public static System.Drawing.Font MenuFont { get => throw null; } + public static System.Drawing.Font MessageBoxFont { get => throw null; } + public static System.Drawing.Font SmallCaptionFont { get => throw null; } + public static System.Drawing.Font StatusFont { get => throw null; } + } + + // Generated from `System.Drawing.SystemIcons` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public static class SystemIcons + { + public static System.Drawing.Icon Application { get => throw null; } + public static System.Drawing.Icon Asterisk { get => throw null; } + public static System.Drawing.Icon Error { get => throw null; } + public static System.Drawing.Icon Exclamation { get => throw null; } + public static System.Drawing.Icon Hand { get => throw null; } + public static System.Drawing.Icon Information { get => throw null; } + public static System.Drawing.Icon Question { get => throw null; } + public static System.Drawing.Icon Shield { get => throw null; } + public static System.Drawing.Icon Warning { get => throw null; } + public static System.Drawing.Icon WinLogo { get => throw null; } + } + + // Generated from `System.Drawing.SystemPens` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public static class SystemPens + { + public static System.Drawing.Pen ActiveBorder { get => throw null; } + public static System.Drawing.Pen ActiveCaption { get => throw null; } + public static System.Drawing.Pen ActiveCaptionText { get => throw null; } + public static System.Drawing.Pen AppWorkspace { get => throw null; } + public static System.Drawing.Pen ButtonFace { get => throw null; } + public static System.Drawing.Pen ButtonHighlight { get => throw null; } + public static System.Drawing.Pen ButtonShadow { get => throw null; } + public static System.Drawing.Pen Control { get => throw null; } + public static System.Drawing.Pen ControlDark { get => throw null; } + public static System.Drawing.Pen ControlDarkDark { get => throw null; } + public static System.Drawing.Pen ControlLight { get => throw null; } + public static System.Drawing.Pen ControlLightLight { get => throw null; } + public static System.Drawing.Pen ControlText { get => throw null; } + public static System.Drawing.Pen Desktop { get => throw null; } + public static System.Drawing.Pen FromSystemColor(System.Drawing.Color c) => throw null; + public static System.Drawing.Pen GradientActiveCaption { get => throw null; } + public static System.Drawing.Pen GradientInactiveCaption { get => throw null; } + public static System.Drawing.Pen GrayText { get => throw null; } + public static System.Drawing.Pen Highlight { get => throw null; } + public static System.Drawing.Pen HighlightText { get => throw null; } + public static System.Drawing.Pen HotTrack { get => throw null; } + public static System.Drawing.Pen InactiveBorder { get => throw null; } + public static System.Drawing.Pen InactiveCaption { get => throw null; } + public static System.Drawing.Pen InactiveCaptionText { get => throw null; } + public static System.Drawing.Pen Info { get => throw null; } + public static System.Drawing.Pen InfoText { get => throw null; } + public static System.Drawing.Pen Menu { get => throw null; } + public static System.Drawing.Pen MenuBar { get => throw null; } + public static System.Drawing.Pen MenuHighlight { get => throw null; } + public static System.Drawing.Pen MenuText { get => throw null; } + public static System.Drawing.Pen ScrollBar { get => throw null; } + public static System.Drawing.Pen Window { get => throw null; } + public static System.Drawing.Pen WindowFrame { get => throw null; } + public static System.Drawing.Pen WindowText { get => throw null; } + } + + // Generated from `System.Drawing.TextureBrush` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class TextureBrush : System.Drawing.Brush + { + public override object Clone() => throw null; + public System.Drawing.Image Image { get => throw null; } + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void ResetTransform() => throw null; + public void RotateTransform(float angle) => throw null; + public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void ScaleTransform(float sx, float sy) => throw null; + public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public TextureBrush(System.Drawing.Image bitmap) => throw null; + public TextureBrush(System.Drawing.Image image, System.Drawing.Rectangle dstRect) => throw null; + public TextureBrush(System.Drawing.Image image, System.Drawing.Rectangle dstRect, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public TextureBrush(System.Drawing.Image image, System.Drawing.RectangleF dstRect) => throw null; + public TextureBrush(System.Drawing.Image image, System.Drawing.RectangleF dstRect, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; + public TextureBrush(System.Drawing.Image image, System.Drawing.Drawing2D.WrapMode wrapMode) => throw null; + public TextureBrush(System.Drawing.Image image, System.Drawing.Drawing2D.WrapMode wrapMode, System.Drawing.Rectangle dstRect) => throw null; + public TextureBrush(System.Drawing.Image image, System.Drawing.Drawing2D.WrapMode wrapMode, System.Drawing.RectangleF dstRect) => throw null; + public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } + public void TranslateTransform(float dx, float dy) => throw null; + public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public System.Drawing.Drawing2D.WrapMode WrapMode { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.ToolboxBitmapAttribute` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ToolboxBitmapAttribute : System.Attribute + { + public static System.Drawing.ToolboxBitmapAttribute Default; + public override bool Equals(object value) => throw null; + public override int GetHashCode() => throw null; + public System.Drawing.Image GetImage(System.Type type) => throw null; + public System.Drawing.Image GetImage(System.Type type, bool large) => throw null; + public System.Drawing.Image GetImage(System.Type type, string imgName, bool large) => throw null; + public System.Drawing.Image GetImage(object component) => throw null; + public System.Drawing.Image GetImage(object component, bool large) => throw null; + public static System.Drawing.Image GetImageFromResource(System.Type t, string imageName, bool large) => throw null; + public ToolboxBitmapAttribute(System.Type t) => throw null; + public ToolboxBitmapAttribute(System.Type t, string name) => throw null; + public ToolboxBitmapAttribute(string imageFile) => throw null; + } + + namespace Design + { + // Generated from `System.Drawing.Design.CategoryNameCollection` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class CategoryNameCollection : System.Collections.ReadOnlyCollectionBase + { + public CategoryNameCollection(System.Drawing.Design.CategoryNameCollection value) => throw null; + public CategoryNameCollection(string[] value) => throw null; + public bool Contains(string value) => throw null; + public void CopyTo(string[] array, int index) => throw null; + public int IndexOf(string value) => throw null; + public string this[int index] { get => throw null; } + } + + } + namespace Drawing2D + { + // Generated from `System.Drawing.Drawing2D.AdjustableArrowCap` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class AdjustableArrowCap : System.Drawing.Drawing2D.CustomLineCap + { + public AdjustableArrowCap(float width, float height) : base(default(System.Drawing.Drawing2D.GraphicsPath), default(System.Drawing.Drawing2D.GraphicsPath)) => throw null; + public AdjustableArrowCap(float width, float height, bool isFilled) : base(default(System.Drawing.Drawing2D.GraphicsPath), default(System.Drawing.Drawing2D.GraphicsPath)) => throw null; + public bool Filled { get => throw null; set => throw null; } + public float Height { get => throw null; set => throw null; } + public float MiddleInset { get => throw null; set => throw null; } + public float Width { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Drawing2D.Blend` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Blend + { + public Blend() => throw null; + public Blend(int count) => throw null; + public float[] Factors { get => throw null; set => throw null; } + public float[] Positions { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Drawing2D.ColorBlend` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ColorBlend + { + public ColorBlend() => throw null; + public ColorBlend(int count) => throw null; + public System.Drawing.Color[] Colors { get => throw null; set => throw null; } + public float[] Positions { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Drawing2D.CombineMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum CombineMode + { + Complement, + Exclude, + Intersect, + Replace, + Union, + Xor, + } + + // Generated from `System.Drawing.Drawing2D.CompositingMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum CompositingMode + { + SourceCopy, + SourceOver, + } + + // Generated from `System.Drawing.Drawing2D.CompositingQuality` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum CompositingQuality + { + AssumeLinear, + Default, + GammaCorrected, + HighQuality, + HighSpeed, + Invalid, + } + + // Generated from `System.Drawing.Drawing2D.CoordinateSpace` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum CoordinateSpace + { + Device, + Page, + World, + } + + // Generated from `System.Drawing.Drawing2D.CustomLineCap` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class CustomLineCap : System.MarshalByRefObject, System.ICloneable, System.IDisposable + { + public System.Drawing.Drawing2D.LineCap BaseCap { get => throw null; set => throw null; } + public float BaseInset { get => throw null; set => throw null; } + public object Clone() => throw null; + public CustomLineCap(System.Drawing.Drawing2D.GraphicsPath fillPath, System.Drawing.Drawing2D.GraphicsPath strokePath) => throw null; + public CustomLineCap(System.Drawing.Drawing2D.GraphicsPath fillPath, System.Drawing.Drawing2D.GraphicsPath strokePath, System.Drawing.Drawing2D.LineCap baseCap) => throw null; + public CustomLineCap(System.Drawing.Drawing2D.GraphicsPath fillPath, System.Drawing.Drawing2D.GraphicsPath strokePath, System.Drawing.Drawing2D.LineCap baseCap, float baseInset) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public void GetStrokeCaps(out System.Drawing.Drawing2D.LineCap startCap, out System.Drawing.Drawing2D.LineCap endCap) => throw null; + public void SetStrokeCaps(System.Drawing.Drawing2D.LineCap startCap, System.Drawing.Drawing2D.LineCap endCap) => throw null; + public System.Drawing.Drawing2D.LineJoin StrokeJoin { get => throw null; set => throw null; } + public float WidthScale { get => throw null; set => throw null; } + // ERR: Stub generator didn't handle member: ~CustomLineCap + } + + // Generated from `System.Drawing.Drawing2D.DashCap` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum DashCap + { + Flat, + Round, + Triangle, + } + + // Generated from `System.Drawing.Drawing2D.DashStyle` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum DashStyle + { + Custom, + Dash, + DashDot, + DashDotDot, + Dot, + Solid, + } + + // Generated from `System.Drawing.Drawing2D.FillMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum FillMode + { + Alternate, + Winding, + } + + // Generated from `System.Drawing.Drawing2D.FlushIntention` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum FlushIntention + { + Flush, + Sync, + } + + // Generated from `System.Drawing.Drawing2D.GraphicsContainer` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class GraphicsContainer : System.MarshalByRefObject + { + } + + // Generated from `System.Drawing.Drawing2D.GraphicsPath` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class GraphicsPath : System.MarshalByRefObject, System.ICloneable, System.IDisposable + { + public void AddArc(System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; + public void AddArc(System.Drawing.RectangleF rect, float startAngle, float sweepAngle) => throw null; + public void AddArc(float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; + public void AddArc(int x, int y, int width, int height, float startAngle, float sweepAngle) => throw null; + public void AddBezier(System.Drawing.Point pt1, System.Drawing.Point pt2, System.Drawing.Point pt3, System.Drawing.Point pt4) => throw null; + public void AddBezier(System.Drawing.PointF pt1, System.Drawing.PointF pt2, System.Drawing.PointF pt3, System.Drawing.PointF pt4) => throw null; + public void AddBezier(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4) => throw null; + public void AddBezier(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) => throw null; + public void AddBeziers(System.Drawing.PointF[] points) => throw null; + public void AddBeziers(params System.Drawing.Point[] points) => throw null; + public void AddClosedCurve(System.Drawing.PointF[] points) => throw null; + public void AddClosedCurve(System.Drawing.PointF[] points, float tension) => throw null; + public void AddClosedCurve(System.Drawing.Point[] points) => throw null; + public void AddClosedCurve(System.Drawing.Point[] points, float tension) => throw null; + public void AddCurve(System.Drawing.PointF[] points) => throw null; + public void AddCurve(System.Drawing.PointF[] points, float tension) => throw null; + public void AddCurve(System.Drawing.PointF[] points, int offset, int numberOfSegments, float tension) => throw null; + public void AddCurve(System.Drawing.Point[] points) => throw null; + public void AddCurve(System.Drawing.Point[] points, float tension) => throw null; + public void AddCurve(System.Drawing.Point[] points, int offset, int numberOfSegments, float tension) => throw null; + public void AddEllipse(System.Drawing.Rectangle rect) => throw null; + public void AddEllipse(System.Drawing.RectangleF rect) => throw null; + public void AddEllipse(float x, float y, float width, float height) => throw null; + public void AddEllipse(int x, int y, int width, int height) => throw null; + public void AddLine(System.Drawing.Point pt1, System.Drawing.Point pt2) => throw null; + public void AddLine(System.Drawing.PointF pt1, System.Drawing.PointF pt2) => throw null; + public void AddLine(float x1, float y1, float x2, float y2) => throw null; + public void AddLine(int x1, int y1, int x2, int y2) => throw null; + public void AddLines(System.Drawing.PointF[] points) => throw null; + public void AddLines(System.Drawing.Point[] points) => throw null; + public void AddPath(System.Drawing.Drawing2D.GraphicsPath addingPath, bool connect) => throw null; + public void AddPie(System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; + public void AddPie(float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; + public void AddPie(int x, int y, int width, int height, float startAngle, float sweepAngle) => throw null; + public void AddPolygon(System.Drawing.PointF[] points) => throw null; + public void AddPolygon(System.Drawing.Point[] points) => throw null; + public void AddRectangle(System.Drawing.Rectangle rect) => throw null; + public void AddRectangle(System.Drawing.RectangleF rect) => throw null; + public void AddRectangles(System.Drawing.RectangleF[] rects) => throw null; + public void AddRectangles(System.Drawing.Rectangle[] rects) => throw null; + public void AddString(string s, System.Drawing.FontFamily family, int style, float emSize, System.Drawing.Point origin, System.Drawing.StringFormat format) => throw null; + public void AddString(string s, System.Drawing.FontFamily family, int style, float emSize, System.Drawing.PointF origin, System.Drawing.StringFormat format) => throw null; + public void AddString(string s, System.Drawing.FontFamily family, int style, float emSize, System.Drawing.Rectangle layoutRect, System.Drawing.StringFormat format) => throw null; + public void AddString(string s, System.Drawing.FontFamily family, int style, float emSize, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat format) => throw null; + public void ClearMarkers() => throw null; + public object Clone() => throw null; + public void CloseAllFigures() => throw null; + public void CloseFigure() => throw null; + public void Dispose() => throw null; + public System.Drawing.Drawing2D.FillMode FillMode { get => throw null; set => throw null; } + public void Flatten() => throw null; + public void Flatten(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void Flatten(System.Drawing.Drawing2D.Matrix matrix, float flatness) => throw null; + public System.Drawing.RectangleF GetBounds() => throw null; + public System.Drawing.RectangleF GetBounds(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public System.Drawing.RectangleF GetBounds(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Pen pen) => throw null; + public System.Drawing.PointF GetLastPoint() => throw null; + public GraphicsPath() => throw null; + public GraphicsPath(System.Drawing.Drawing2D.FillMode fillMode) => throw null; + public GraphicsPath(System.Drawing.PointF[] pts, System.Byte[] types) => throw null; + public GraphicsPath(System.Drawing.PointF[] pts, System.Byte[] types, System.Drawing.Drawing2D.FillMode fillMode) => throw null; + public GraphicsPath(System.Drawing.Point[] pts, System.Byte[] types) => throw null; + public GraphicsPath(System.Drawing.Point[] pts, System.Byte[] types, System.Drawing.Drawing2D.FillMode fillMode) => throw null; + public bool IsOutlineVisible(System.Drawing.Point point, System.Drawing.Pen pen) => throw null; + public bool IsOutlineVisible(System.Drawing.Point pt, System.Drawing.Pen pen, System.Drawing.Graphics graphics) => throw null; + public bool IsOutlineVisible(System.Drawing.PointF point, System.Drawing.Pen pen) => throw null; + public bool IsOutlineVisible(System.Drawing.PointF pt, System.Drawing.Pen pen, System.Drawing.Graphics graphics) => throw null; + public bool IsOutlineVisible(float x, float y, System.Drawing.Pen pen) => throw null; + public bool IsOutlineVisible(float x, float y, System.Drawing.Pen pen, System.Drawing.Graphics graphics) => throw null; + public bool IsOutlineVisible(int x, int y, System.Drawing.Pen pen) => throw null; + public bool IsOutlineVisible(int x, int y, System.Drawing.Pen pen, System.Drawing.Graphics graphics) => throw null; + public bool IsVisible(System.Drawing.Point point) => throw null; + public bool IsVisible(System.Drawing.Point pt, System.Drawing.Graphics graphics) => throw null; + public bool IsVisible(System.Drawing.PointF point) => throw null; + public bool IsVisible(System.Drawing.PointF pt, System.Drawing.Graphics graphics) => throw null; + public bool IsVisible(float x, float y) => throw null; + public bool IsVisible(float x, float y, System.Drawing.Graphics graphics) => throw null; + public bool IsVisible(int x, int y) => throw null; + public bool IsVisible(int x, int y, System.Drawing.Graphics graphics) => throw null; + public System.Drawing.Drawing2D.PathData PathData { get => throw null; } + public System.Drawing.PointF[] PathPoints { get => throw null; } + public System.Byte[] PathTypes { get => throw null; } + public int PointCount { get => throw null; } + public void Reset() => throw null; + public void Reverse() => throw null; + public void SetMarkers() => throw null; + public void StartFigure() => throw null; + public void Transform(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void Warp(System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect) => throw null; + public void Warp(System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void Warp(System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.WarpMode warpMode) => throw null; + public void Warp(System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.WarpMode warpMode, float flatness) => throw null; + public void Widen(System.Drawing.Pen pen) => throw null; + public void Widen(System.Drawing.Pen pen, System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void Widen(System.Drawing.Pen pen, System.Drawing.Drawing2D.Matrix matrix, float flatness) => throw null; + // ERR: Stub generator didn't handle member: ~GraphicsPath + } + + // Generated from `System.Drawing.Drawing2D.GraphicsPathIterator` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class GraphicsPathIterator : System.MarshalByRefObject, System.IDisposable + { + public int CopyData(ref System.Drawing.PointF[] points, ref System.Byte[] types, int startIndex, int endIndex) => throw null; + public int Count { get => throw null; } + public void Dispose() => throw null; + public int Enumerate(ref System.Drawing.PointF[] points, ref System.Byte[] types) => throw null; + public GraphicsPathIterator(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public bool HasCurve() => throw null; + public int NextMarker(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public int NextMarker(out int startIndex, out int endIndex) => throw null; + public int NextPathType(out System.Byte pathType, out int startIndex, out int endIndex) => throw null; + public int NextSubpath(System.Drawing.Drawing2D.GraphicsPath path, out bool isClosed) => throw null; + public int NextSubpath(out int startIndex, out int endIndex, out bool isClosed) => throw null; + public void Rewind() => throw null; + public int SubpathCount { get => throw null; } + // ERR: Stub generator didn't handle member: ~GraphicsPathIterator + } + + // Generated from `System.Drawing.Drawing2D.GraphicsState` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class GraphicsState : System.MarshalByRefObject + { + } + + // Generated from `System.Drawing.Drawing2D.HatchBrush` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class HatchBrush : System.Drawing.Brush + { + public System.Drawing.Color BackgroundColor { get => throw null; } + public override object Clone() => throw null; + public System.Drawing.Color ForegroundColor { get => throw null; } + public HatchBrush(System.Drawing.Drawing2D.HatchStyle hatchstyle, System.Drawing.Color foreColor) => throw null; + public HatchBrush(System.Drawing.Drawing2D.HatchStyle hatchstyle, System.Drawing.Color foreColor, System.Drawing.Color backColor) => throw null; + public System.Drawing.Drawing2D.HatchStyle HatchStyle { get => throw null; } + } + + // Generated from `System.Drawing.Drawing2D.HatchStyle` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum HatchStyle + { + BackwardDiagonal, + Cross, + DarkDownwardDiagonal, + DarkHorizontal, + DarkUpwardDiagonal, + DarkVertical, + DashedDownwardDiagonal, + DashedHorizontal, + DashedUpwardDiagonal, + DashedVertical, + DiagonalBrick, + DiagonalCross, + Divot, + DottedDiamond, + DottedGrid, + ForwardDiagonal, + Horizontal, + HorizontalBrick, + LargeCheckerBoard, + LargeConfetti, + LargeGrid, + LightDownwardDiagonal, + LightHorizontal, + LightUpwardDiagonal, + LightVertical, + Max, + Min, + NarrowHorizontal, + NarrowVertical, + OutlinedDiamond, + Percent05, + Percent10, + Percent20, + Percent25, + Percent30, + Percent40, + Percent50, + Percent60, + Percent70, + Percent75, + Percent80, + Percent90, + Plaid, + Shingle, + SmallCheckerBoard, + SmallConfetti, + SmallGrid, + SolidDiamond, + Sphere, + Trellis, + Vertical, + Wave, + Weave, + WideDownwardDiagonal, + WideUpwardDiagonal, + ZigZag, + } + + // Generated from `System.Drawing.Drawing2D.InterpolationMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum InterpolationMode + { + Bicubic, + Bilinear, + Default, + High, + HighQualityBicubic, + HighQualityBilinear, + Invalid, + Low, + NearestNeighbor, + } + + // Generated from `System.Drawing.Drawing2D.LineCap` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum LineCap + { + AnchorMask, + ArrowAnchor, + Custom, + DiamondAnchor, + Flat, + NoAnchor, + Round, + RoundAnchor, + Square, + SquareAnchor, + Triangle, + } + + // Generated from `System.Drawing.Drawing2D.LineJoin` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum LineJoin + { + Bevel, + Miter, + MiterClipped, + Round, + } + + // Generated from `System.Drawing.Drawing2D.LinearGradientBrush` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class LinearGradientBrush : System.Drawing.Brush + { + public System.Drawing.Drawing2D.Blend Blend { get => throw null; set => throw null; } + public override object Clone() => throw null; + public bool GammaCorrection { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.ColorBlend InterpolationColors { get => throw null; set => throw null; } + public System.Drawing.Color[] LinearColors { get => throw null; set => throw null; } + public LinearGradientBrush(System.Drawing.Point point1, System.Drawing.Point point2, System.Drawing.Color color1, System.Drawing.Color color2) => throw null; + public LinearGradientBrush(System.Drawing.PointF point1, System.Drawing.PointF point2, System.Drawing.Color color1, System.Drawing.Color color2) => throw null; + public LinearGradientBrush(System.Drawing.Rectangle rect, System.Drawing.Color color1, System.Drawing.Color color2, System.Drawing.Drawing2D.LinearGradientMode linearGradientMode) => throw null; + public LinearGradientBrush(System.Drawing.Rectangle rect, System.Drawing.Color color1, System.Drawing.Color color2, float angle) => throw null; + public LinearGradientBrush(System.Drawing.Rectangle rect, System.Drawing.Color color1, System.Drawing.Color color2, float angle, bool isAngleScaleable) => throw null; + public LinearGradientBrush(System.Drawing.RectangleF rect, System.Drawing.Color color1, System.Drawing.Color color2, System.Drawing.Drawing2D.LinearGradientMode linearGradientMode) => throw null; + public LinearGradientBrush(System.Drawing.RectangleF rect, System.Drawing.Color color1, System.Drawing.Color color2, float angle) => throw null; + public LinearGradientBrush(System.Drawing.RectangleF rect, System.Drawing.Color color1, System.Drawing.Color color2, float angle, bool isAngleScaleable) => throw null; + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public System.Drawing.RectangleF Rectangle { get => throw null; } + public void ResetTransform() => throw null; + public void RotateTransform(float angle) => throw null; + public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void ScaleTransform(float sx, float sy) => throw null; + public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void SetBlendTriangularShape(float focus) => throw null; + public void SetBlendTriangularShape(float focus, float scale) => throw null; + public void SetSigmaBellShape(float focus) => throw null; + public void SetSigmaBellShape(float focus, float scale) => throw null; + public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } + public void TranslateTransform(float dx, float dy) => throw null; + public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public System.Drawing.Drawing2D.WrapMode WrapMode { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Drawing2D.LinearGradientMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum LinearGradientMode + { + BackwardDiagonal, + ForwardDiagonal, + Horizontal, + Vertical, + } + + // Generated from `System.Drawing.Drawing2D.Matrix` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Matrix : System.MarshalByRefObject, System.IDisposable + { + public System.Drawing.Drawing2D.Matrix Clone() => throw null; + public void Dispose() => throw null; + public float[] Elements { get => throw null; } + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public void Invert() => throw null; + public bool IsIdentity { get => throw null; } + public bool IsInvertible { get => throw null; } + public Matrix() => throw null; + public Matrix(System.Drawing.Rectangle rect, System.Drawing.Point[] plgpts) => throw null; + public Matrix(System.Drawing.RectangleF rect, System.Drawing.PointF[] plgpts) => throw null; + public Matrix(float m11, float m12, float m21, float m22, float dx, float dy) => throw null; + public void Multiply(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void Multiply(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public float OffsetX { get => throw null; } + public float OffsetY { get => throw null; } + public void Reset() => throw null; + public void Rotate(float angle) => throw null; + public void Rotate(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void RotateAt(float angle, System.Drawing.PointF point) => throw null; + public void RotateAt(float angle, System.Drawing.PointF point, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void Scale(float scaleX, float scaleY) => throw null; + public void Scale(float scaleX, float scaleY, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void Shear(float shearX, float shearY) => throw null; + public void Shear(float shearX, float shearY, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void TransformPoints(System.Drawing.PointF[] pts) => throw null; + public void TransformPoints(System.Drawing.Point[] pts) => throw null; + public void TransformVectors(System.Drawing.PointF[] pts) => throw null; + public void TransformVectors(System.Drawing.Point[] pts) => throw null; + public void Translate(float offsetX, float offsetY) => throw null; + public void Translate(float offsetX, float offsetY, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void VectorTransformPoints(System.Drawing.Point[] pts) => throw null; + // ERR: Stub generator didn't handle member: ~Matrix + } + + // Generated from `System.Drawing.Drawing2D.MatrixOrder` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum MatrixOrder + { + Append, + Prepend, + } + + // Generated from `System.Drawing.Drawing2D.PathData` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PathData + { + public PathData() => throw null; + public System.Drawing.PointF[] Points { get => throw null; set => throw null; } + public System.Byte[] Types { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Drawing2D.PathGradientBrush` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PathGradientBrush : System.Drawing.Brush + { + public System.Drawing.Drawing2D.Blend Blend { get => throw null; set => throw null; } + public System.Drawing.Color CenterColor { get => throw null; set => throw null; } + public System.Drawing.PointF CenterPoint { get => throw null; set => throw null; } + public override object Clone() => throw null; + public System.Drawing.PointF FocusScales { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.ColorBlend InterpolationColors { get => throw null; set => throw null; } + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; + public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public PathGradientBrush(System.Drawing.Drawing2D.GraphicsPath path) => throw null; + public PathGradientBrush(System.Drawing.PointF[] points) => throw null; + public PathGradientBrush(System.Drawing.PointF[] points, System.Drawing.Drawing2D.WrapMode wrapMode) => throw null; + public PathGradientBrush(System.Drawing.Point[] points) => throw null; + public PathGradientBrush(System.Drawing.Point[] points, System.Drawing.Drawing2D.WrapMode wrapMode) => throw null; + public System.Drawing.RectangleF Rectangle { get => throw null; } + public void ResetTransform() => throw null; + public void RotateTransform(float angle) => throw null; + public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void ScaleTransform(float sx, float sy) => throw null; + public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public void SetBlendTriangularShape(float focus) => throw null; + public void SetBlendTriangularShape(float focus, float scale) => throw null; + public void SetSigmaBellShape(float focus) => throw null; + public void SetSigmaBellShape(float focus, float scale) => throw null; + public System.Drawing.Color[] SurroundColors { get => throw null; set => throw null; } + public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } + public void TranslateTransform(float dx, float dy) => throw null; + public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; + public System.Drawing.Drawing2D.WrapMode WrapMode { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Drawing2D.PathPointType` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PathPointType + { + Bezier, + Bezier3, + CloseSubpath, + DashMode, + Line, + PathMarker, + PathTypeMask, + Start, + } + + // Generated from `System.Drawing.Drawing2D.PenAlignment` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PenAlignment + { + Center, + Inset, + Left, + Outset, + Right, + } + + // Generated from `System.Drawing.Drawing2D.PenType` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PenType + { + HatchFill, + LinearGradient, + PathGradient, + SolidColor, + TextureFill, + } + + // Generated from `System.Drawing.Drawing2D.PixelOffsetMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PixelOffsetMode + { + Default, + Half, + HighQuality, + HighSpeed, + Invalid, + None, + } + + // Generated from `System.Drawing.Drawing2D.QualityMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum QualityMode + { + Default, + High, + Invalid, + Low, + } + + // Generated from `System.Drawing.Drawing2D.RegionData` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class RegionData + { + public System.Byte[] Data { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Drawing2D.SmoothingMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum SmoothingMode + { + AntiAlias, + Default, + HighQuality, + HighSpeed, + Invalid, + None, + } + + // Generated from `System.Drawing.Drawing2D.WarpMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum WarpMode + { + Bilinear, + Perspective, + } + + // Generated from `System.Drawing.Drawing2D.WrapMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum WrapMode + { + Clamp, + Tile, + TileFlipX, + TileFlipXY, + TileFlipY, + } + + } + namespace Imaging + { + // Generated from `System.Drawing.Imaging.BitmapData` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class BitmapData + { + public BitmapData() => throw null; + public int Height { get => throw null; set => throw null; } + public System.Drawing.Imaging.PixelFormat PixelFormat { get => throw null; set => throw null; } + public int Reserved { get => throw null; set => throw null; } + public System.IntPtr Scan0 { get => throw null; set => throw null; } + public int Stride { get => throw null; set => throw null; } + public int Width { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Imaging.ColorAdjustType` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum ColorAdjustType + { + Any, + Bitmap, + Brush, + Count, + Default, + Pen, + Text, + } + + // Generated from `System.Drawing.Imaging.ColorChannelFlag` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum ColorChannelFlag + { + ColorChannelC, + ColorChannelK, + ColorChannelLast, + ColorChannelM, + ColorChannelY, + } + + // Generated from `System.Drawing.Imaging.ColorMap` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ColorMap + { + public ColorMap() => throw null; + public System.Drawing.Color NewColor { get => throw null; set => throw null; } + public System.Drawing.Color OldColor { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Imaging.ColorMapType` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum ColorMapType + { + Brush, + Default, + } + + // Generated from `System.Drawing.Imaging.ColorMatrix` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ColorMatrix + { + public ColorMatrix() => throw null; + public ColorMatrix(float[][] newColorMatrix) => throw null; + public float this[int row, int column] { get => throw null; set => throw null; } + public float Matrix00 { get => throw null; set => throw null; } + public float Matrix01 { get => throw null; set => throw null; } + public float Matrix02 { get => throw null; set => throw null; } + public float Matrix03 { get => throw null; set => throw null; } + public float Matrix04 { get => throw null; set => throw null; } + public float Matrix10 { get => throw null; set => throw null; } + public float Matrix11 { get => throw null; set => throw null; } + public float Matrix12 { get => throw null; set => throw null; } + public float Matrix13 { get => throw null; set => throw null; } + public float Matrix14 { get => throw null; set => throw null; } + public float Matrix20 { get => throw null; set => throw null; } + public float Matrix21 { get => throw null; set => throw null; } + public float Matrix22 { get => throw null; set => throw null; } + public float Matrix23 { get => throw null; set => throw null; } + public float Matrix24 { get => throw null; set => throw null; } + public float Matrix30 { get => throw null; set => throw null; } + public float Matrix31 { get => throw null; set => throw null; } + public float Matrix32 { get => throw null; set => throw null; } + public float Matrix33 { get => throw null; set => throw null; } + public float Matrix34 { get => throw null; set => throw null; } + public float Matrix40 { get => throw null; set => throw null; } + public float Matrix41 { get => throw null; set => throw null; } + public float Matrix42 { get => throw null; set => throw null; } + public float Matrix43 { get => throw null; set => throw null; } + public float Matrix44 { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Imaging.ColorMatrixFlag` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum ColorMatrixFlag + { + AltGrays, + Default, + SkipGrays, + } + + // Generated from `System.Drawing.Imaging.ColorMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum ColorMode + { + Argb32Mode, + Argb64Mode, + } + + // Generated from `System.Drawing.Imaging.ColorPalette` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ColorPalette + { + public System.Drawing.Color[] Entries { get => throw null; } + public int Flags { get => throw null; } + } + + // Generated from `System.Drawing.Imaging.EmfPlusRecordType` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum EmfPlusRecordType + { + BeginContainer, + BeginContainerNoParams, + Clear, + Comment, + DrawArc, + DrawBeziers, + DrawClosedCurve, + DrawCurve, + DrawDriverString, + DrawEllipse, + DrawImage, + DrawImagePoints, + DrawLines, + DrawPath, + DrawPie, + DrawRects, + DrawString, + EmfAbortPath, + EmfAlphaBlend, + EmfAngleArc, + EmfArcTo, + EmfBeginPath, + EmfBitBlt, + EmfChord, + EmfCloseFigure, + EmfColorCorrectPalette, + EmfColorMatchToTargetW, + EmfCreateBrushIndirect, + EmfCreateColorSpace, + EmfCreateColorSpaceW, + EmfCreateDibPatternBrushPt, + EmfCreateMonoBrush, + EmfCreatePalette, + EmfCreatePen, + EmfDeleteColorSpace, + EmfDeleteObject, + EmfDrawEscape, + EmfEllipse, + EmfEndPath, + EmfEof, + EmfExcludeClipRect, + EmfExtCreateFontIndirect, + EmfExtCreatePen, + EmfExtEscape, + EmfExtFloodFill, + EmfExtSelectClipRgn, + EmfExtTextOutA, + EmfExtTextOutW, + EmfFillPath, + EmfFillRgn, + EmfFlattenPath, + EmfForceUfiMapping, + EmfFrameRgn, + EmfGdiComment, + EmfGlsBoundedRecord, + EmfGlsRecord, + EmfGradientFill, + EmfHeader, + EmfIntersectClipRect, + EmfInvertRgn, + EmfLineTo, + EmfMaskBlt, + EmfMax, + EmfMin, + EmfModifyWorldTransform, + EmfMoveToEx, + EmfNamedEscpae, + EmfOffsetClipRgn, + EmfPaintRgn, + EmfPie, + EmfPixelFormat, + EmfPlgBlt, + EmfPlusRecordBase, + EmfPolyBezier, + EmfPolyBezier16, + EmfPolyBezierTo, + EmfPolyBezierTo16, + EmfPolyDraw, + EmfPolyDraw16, + EmfPolyLineTo, + EmfPolyPolygon, + EmfPolyPolygon16, + EmfPolyPolyline, + EmfPolyPolyline16, + EmfPolyTextOutA, + EmfPolyTextOutW, + EmfPolygon, + EmfPolygon16, + EmfPolyline, + EmfPolyline16, + EmfPolylineTo16, + EmfRealizePalette, + EmfRectangle, + EmfReserved069, + EmfReserved117, + EmfResizePalette, + EmfRestoreDC, + EmfRoundArc, + EmfRoundRect, + EmfSaveDC, + EmfScaleViewportExtEx, + EmfScaleWindowExtEx, + EmfSelectClipPath, + EmfSelectObject, + EmfSelectPalette, + EmfSetArcDirection, + EmfSetBkColor, + EmfSetBkMode, + EmfSetBrushOrgEx, + EmfSetColorAdjustment, + EmfSetColorSpace, + EmfSetDIBitsToDevice, + EmfSetIcmMode, + EmfSetIcmProfileA, + EmfSetIcmProfileW, + EmfSetLayout, + EmfSetLinkedUfis, + EmfSetMapMode, + EmfSetMapperFlags, + EmfSetMetaRgn, + EmfSetMiterLimit, + EmfSetPaletteEntries, + EmfSetPixelV, + EmfSetPolyFillMode, + EmfSetROP2, + EmfSetStretchBltMode, + EmfSetTextAlign, + EmfSetTextColor, + EmfSetTextJustification, + EmfSetViewportExtEx, + EmfSetViewportOrgEx, + EmfSetWindowExtEx, + EmfSetWindowOrgEx, + EmfSetWorldTransform, + EmfSmallTextOut, + EmfStartDoc, + EmfStretchBlt, + EmfStretchDIBits, + EmfStrokeAndFillPath, + EmfStrokePath, + EmfTransparentBlt, + EmfWidenPath, + EndContainer, + EndOfFile, + FillClosedCurve, + FillEllipse, + FillPath, + FillPie, + FillPolygon, + FillRects, + FillRegion, + GetDC, + Header, + Invalid, + Max, + Min, + MultiFormatEnd, + MultiFormatSection, + MultiFormatStart, + MultiplyWorldTransform, + Object, + OffsetClip, + ResetClip, + ResetWorldTransform, + Restore, + RotateWorldTransform, + Save, + ScaleWorldTransform, + SetAntiAliasMode, + SetClipPath, + SetClipRect, + SetClipRegion, + SetCompositingMode, + SetCompositingQuality, + SetInterpolationMode, + SetPageTransform, + SetPixelOffsetMode, + SetRenderingOrigin, + SetTextContrast, + SetTextRenderingHint, + SetWorldTransform, + Total, + TranslateWorldTransform, + WmfAnimatePalette, + WmfArc, + WmfBitBlt, + WmfChord, + WmfCreateBrushIndirect, + WmfCreateFontIndirect, + WmfCreatePalette, + WmfCreatePatternBrush, + WmfCreatePenIndirect, + WmfCreateRegion, + WmfDeleteObject, + WmfDibBitBlt, + WmfDibCreatePatternBrush, + WmfDibStretchBlt, + WmfEllipse, + WmfEscape, + WmfExcludeClipRect, + WmfExtFloodFill, + WmfExtTextOut, + WmfFillRegion, + WmfFloodFill, + WmfFrameRegion, + WmfIntersectClipRect, + WmfInvertRegion, + WmfLineTo, + WmfMoveTo, + WmfOffsetCilpRgn, + WmfOffsetViewportOrg, + WmfOffsetWindowOrg, + WmfPaintRegion, + WmfPatBlt, + WmfPie, + WmfPolyPolygon, + WmfPolygon, + WmfPolyline, + WmfRealizePalette, + WmfRecordBase, + WmfRectangle, + WmfResizePalette, + WmfRestoreDC, + WmfRoundRect, + WmfSaveDC, + WmfScaleViewportExt, + WmfScaleWindowExt, + WmfSelectClipRegion, + WmfSelectObject, + WmfSelectPalette, + WmfSetBkColor, + WmfSetBkMode, + WmfSetDibToDev, + WmfSetLayout, + WmfSetMapMode, + WmfSetMapperFlags, + WmfSetPalEntries, + WmfSetPixel, + WmfSetPolyFillMode, + WmfSetROP2, + WmfSetRelAbs, + WmfSetStretchBltMode, + WmfSetTextAlign, + WmfSetTextCharExtra, + WmfSetTextColor, + WmfSetTextJustification, + WmfSetViewportExt, + WmfSetViewportOrg, + WmfSetWindowExt, + WmfSetWindowOrg, + WmfStretchBlt, + WmfStretchDib, + WmfTextOut, + } + + // Generated from `System.Drawing.Imaging.EmfType` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum EmfType + { + EmfOnly, + EmfPlusDual, + EmfPlusOnly, + } + + // Generated from `System.Drawing.Imaging.Encoder` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Encoder + { + public static System.Drawing.Imaging.Encoder ChrominanceTable; + public static System.Drawing.Imaging.Encoder ColorDepth; + public static System.Drawing.Imaging.Encoder ColorSpace; + public static System.Drawing.Imaging.Encoder Compression; + public Encoder(System.Guid guid) => throw null; + public System.Guid Guid { get => throw null; } + public static System.Drawing.Imaging.Encoder ImageItems; + public static System.Drawing.Imaging.Encoder LuminanceTable; + public static System.Drawing.Imaging.Encoder Quality; + public static System.Drawing.Imaging.Encoder RenderMethod; + public static System.Drawing.Imaging.Encoder SaveAsCmyk; + public static System.Drawing.Imaging.Encoder SaveFlag; + public static System.Drawing.Imaging.Encoder ScanMethod; + public static System.Drawing.Imaging.Encoder Transformation; + public static System.Drawing.Imaging.Encoder Version; + } + + // Generated from `System.Drawing.Imaging.EncoderParameter` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class EncoderParameter : System.IDisposable + { + public void Dispose() => throw null; + public System.Drawing.Imaging.Encoder Encoder { get => throw null; set => throw null; } + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Byte[] value) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Byte[] value, bool undefined) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int16[] value) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int[] numerator, int[] denominator) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int[] numerator1, int[] denominator1, int[] numerator2, int[] denominator2) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int64[] value) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int64[] rangebegin, System.Int64[] rangeend) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Byte value) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Byte value, bool undefined) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int numberValues, System.Drawing.Imaging.EncoderParameterValueType type, System.IntPtr value) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int numerator, int denominator) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int NumberOfValues, int Type, int Value) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int numerator1, int demoninator1, int numerator2, int demoninator2) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int64 value) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int64 rangebegin, System.Int64 rangeend) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int16 value) => throw null; + public EncoderParameter(System.Drawing.Imaging.Encoder encoder, string value) => throw null; + public int NumberOfValues { get => throw null; } + public System.Drawing.Imaging.EncoderParameterValueType Type { get => throw null; } + public System.Drawing.Imaging.EncoderParameterValueType ValueType { get => throw null; } + // ERR: Stub generator didn't handle member: ~EncoderParameter + } + + // Generated from `System.Drawing.Imaging.EncoderParameterValueType` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum EncoderParameterValueType + { + ValueTypeAscii, + ValueTypeByte, + ValueTypeLong, + ValueTypeLongRange, + ValueTypePointer, + ValueTypeRational, + ValueTypeRationalRange, + ValueTypeShort, + ValueTypeUndefined, + } + + // Generated from `System.Drawing.Imaging.EncoderParameters` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class EncoderParameters : System.IDisposable + { + public void Dispose() => throw null; + public EncoderParameters() => throw null; + public EncoderParameters(int count) => throw null; + public System.Drawing.Imaging.EncoderParameter[] Param { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Imaging.EncoderValue` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum EncoderValue + { + ColorTypeCMYK, + ColorTypeYCCK, + CompressionCCITT3, + CompressionCCITT4, + CompressionLZW, + CompressionNone, + CompressionRle, + Flush, + FrameDimensionPage, + FrameDimensionResolution, + FrameDimensionTime, + LastFrame, + MultiFrame, + RenderNonProgressive, + RenderProgressive, + ScanMethodInterlaced, + ScanMethodNonInterlaced, + TransformFlipHorizontal, + TransformFlipVertical, + TransformRotate180, + TransformRotate270, + TransformRotate90, + VersionGif87, + VersionGif89, + } + + // Generated from `System.Drawing.Imaging.FrameDimension` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class FrameDimension + { + public override bool Equals(object o) => throw null; + public FrameDimension(System.Guid guid) => throw null; + public override int GetHashCode() => throw null; + public System.Guid Guid { get => throw null; } + public static System.Drawing.Imaging.FrameDimension Page { get => throw null; } + public static System.Drawing.Imaging.FrameDimension Resolution { get => throw null; } + public static System.Drawing.Imaging.FrameDimension Time { get => throw null; } + public override string ToString() => throw null; + } + + // Generated from `System.Drawing.Imaging.ImageAttributes` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ImageAttributes : System.ICloneable, System.IDisposable + { + public void ClearBrushRemapTable() => throw null; + public void ClearColorKey() => throw null; + public void ClearColorKey(System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void ClearColorMatrix() => throw null; + public void ClearColorMatrix(System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void ClearGamma() => throw null; + public void ClearGamma(System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void ClearNoOp() => throw null; + public void ClearNoOp(System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void ClearOutputChannel() => throw null; + public void ClearOutputChannel(System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void ClearOutputChannelColorProfile() => throw null; + public void ClearOutputChannelColorProfile(System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void ClearRemapTable() => throw null; + public void ClearRemapTable(System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void ClearThreshold() => throw null; + public void ClearThreshold(System.Drawing.Imaging.ColorAdjustType type) => throw null; + public object Clone() => throw null; + public void Dispose() => throw null; + public void GetAdjustedPalette(System.Drawing.Imaging.ColorPalette palette, System.Drawing.Imaging.ColorAdjustType type) => throw null; + public ImageAttributes() => throw null; + public void SetBrushRemapTable(System.Drawing.Imaging.ColorMap[] map) => throw null; + public void SetColorKey(System.Drawing.Color colorLow, System.Drawing.Color colorHigh) => throw null; + public void SetColorKey(System.Drawing.Color colorLow, System.Drawing.Color colorHigh, System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void SetColorMatrices(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrix grayMatrix) => throw null; + public void SetColorMatrices(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrix grayMatrix, System.Drawing.Imaging.ColorMatrixFlag flags) => throw null; + public void SetColorMatrices(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrix grayMatrix, System.Drawing.Imaging.ColorMatrixFlag mode, System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void SetColorMatrix(System.Drawing.Imaging.ColorMatrix newColorMatrix) => throw null; + public void SetColorMatrix(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrixFlag flags) => throw null; + public void SetColorMatrix(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrixFlag mode, System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void SetGamma(float gamma) => throw null; + public void SetGamma(float gamma, System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void SetNoOp() => throw null; + public void SetNoOp(System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void SetOutputChannel(System.Drawing.Imaging.ColorChannelFlag flags) => throw null; + public void SetOutputChannel(System.Drawing.Imaging.ColorChannelFlag flags, System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void SetOutputChannelColorProfile(string colorProfileFilename) => throw null; + public void SetOutputChannelColorProfile(string colorProfileFilename, System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void SetRemapTable(System.Drawing.Imaging.ColorMap[] map) => throw null; + public void SetRemapTable(System.Drawing.Imaging.ColorMap[] map, System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void SetThreshold(float threshold) => throw null; + public void SetThreshold(float threshold, System.Drawing.Imaging.ColorAdjustType type) => throw null; + public void SetWrapMode(System.Drawing.Drawing2D.WrapMode mode) => throw null; + public void SetWrapMode(System.Drawing.Drawing2D.WrapMode mode, System.Drawing.Color color) => throw null; + public void SetWrapMode(System.Drawing.Drawing2D.WrapMode mode, System.Drawing.Color color, bool clamp) => throw null; + // ERR: Stub generator didn't handle member: ~ImageAttributes + } + + // Generated from `System.Drawing.Imaging.ImageCodecFlags` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + [System.Flags] + public enum ImageCodecFlags + { + BlockingDecode, + Builtin, + Decoder, + Encoder, + SeekableEncode, + SupportBitmap, + SupportVector, + System, + User, + } + + // Generated from `System.Drawing.Imaging.ImageCodecInfo` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ImageCodecInfo + { + public System.Guid Clsid { get => throw null; set => throw null; } + public string CodecName { get => throw null; set => throw null; } + public string DllName { get => throw null; set => throw null; } + public string FilenameExtension { get => throw null; set => throw null; } + public System.Drawing.Imaging.ImageCodecFlags Flags { get => throw null; set => throw null; } + public string FormatDescription { get => throw null; set => throw null; } + public System.Guid FormatID { get => throw null; set => throw null; } + public static System.Drawing.Imaging.ImageCodecInfo[] GetImageDecoders() => throw null; + public static System.Drawing.Imaging.ImageCodecInfo[] GetImageEncoders() => throw null; + public string MimeType { get => throw null; set => throw null; } + public System.Byte[][] SignatureMasks { get => throw null; set => throw null; } + public System.Byte[][] SignaturePatterns { get => throw null; set => throw null; } + public int Version { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Imaging.ImageFlags` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + [System.Flags] + public enum ImageFlags + { + Caching, + ColorSpaceCmyk, + ColorSpaceGray, + ColorSpaceRgb, + ColorSpaceYcbcr, + ColorSpaceYcck, + HasAlpha, + HasRealDpi, + HasRealPixelSize, + HasTranslucent, + None, + PartiallyScalable, + ReadOnly, + Scalable, + } + + // Generated from `System.Drawing.Imaging.ImageFormat` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class ImageFormat + { + public static System.Drawing.Imaging.ImageFormat Bmp { get => throw null; } + public static System.Drawing.Imaging.ImageFormat Emf { get => throw null; } + public override bool Equals(object o) => throw null; + public static System.Drawing.Imaging.ImageFormat Exif { get => throw null; } + public override int GetHashCode() => throw null; + public static System.Drawing.Imaging.ImageFormat Gif { get => throw null; } + public System.Guid Guid { get => throw null; } + public static System.Drawing.Imaging.ImageFormat Icon { get => throw null; } + public ImageFormat(System.Guid guid) => throw null; + public static System.Drawing.Imaging.ImageFormat Jpeg { get => throw null; } + public static System.Drawing.Imaging.ImageFormat MemoryBmp { get => throw null; } + public static System.Drawing.Imaging.ImageFormat Png { get => throw null; } + public static System.Drawing.Imaging.ImageFormat Tiff { get => throw null; } + public override string ToString() => throw null; + public static System.Drawing.Imaging.ImageFormat Wmf { get => throw null; } + } + + // Generated from `System.Drawing.Imaging.ImageLockMode` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum ImageLockMode + { + ReadOnly, + ReadWrite, + UserInputBuffer, + WriteOnly, + } + + // Generated from `System.Drawing.Imaging.MetaHeader` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class MetaHeader + { + public System.Int16 HeaderSize { get => throw null; set => throw null; } + public int MaxRecord { get => throw null; set => throw null; } + public MetaHeader() => throw null; + public System.Int16 NoObjects { get => throw null; set => throw null; } + public System.Int16 NoParameters { get => throw null; set => throw null; } + public int Size { get => throw null; set => throw null; } + public System.Int16 Type { get => throw null; set => throw null; } + public System.Int16 Version { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Imaging.Metafile` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Metafile : System.Drawing.Image + { + public System.IntPtr GetHenhmetafile() => throw null; + public System.Drawing.Imaging.MetafileHeader GetMetafileHeader() => throw null; + public static System.Drawing.Imaging.MetafileHeader GetMetafileHeader(System.IntPtr henhmetafile) => throw null; + public static System.Drawing.Imaging.MetafileHeader GetMetafileHeader(System.IntPtr hmetafile, System.Drawing.Imaging.WmfPlaceableFileHeader wmfHeader) => throw null; + public static System.Drawing.Imaging.MetafileHeader GetMetafileHeader(System.IO.Stream stream) => throw null; + public static System.Drawing.Imaging.MetafileHeader GetMetafileHeader(string fileName) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType emfType) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType emfType, string description) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string desc) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; + public Metafile(System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; + public Metafile(System.IntPtr hmetafile, System.Drawing.Imaging.WmfPlaceableFileHeader wmfHeader) => throw null; + public Metafile(System.IntPtr hmetafile, System.Drawing.Imaging.WmfPlaceableFileHeader wmfHeader, bool deleteWmf) => throw null; + public Metafile(System.IntPtr henhmetafile, bool deleteEmf) => throw null; + public Metafile(System.IO.Stream stream) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType type) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType type, string description) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; + public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; + public Metafile(string filename) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType type) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType type, string description) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, string description) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; + public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, string desc) => throw null; + public void PlayRecord(System.Drawing.Imaging.EmfPlusRecordType recordType, int flags, int dataSize, System.Byte[] data) => throw null; + } + + // Generated from `System.Drawing.Imaging.MetafileFrameUnit` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum MetafileFrameUnit + { + Document, + GdiCompatible, + Inch, + Millimeter, + Pixel, + Point, + } + + // Generated from `System.Drawing.Imaging.MetafileHeader` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class MetafileHeader + { + public System.Drawing.Rectangle Bounds { get => throw null; } + public float DpiX { get => throw null; } + public float DpiY { get => throw null; } + public int EmfPlusHeaderSize { get => throw null; } + public bool IsDisplay() => throw null; + public bool IsEmf() => throw null; + public bool IsEmfOrEmfPlus() => throw null; + public bool IsEmfPlus() => throw null; + public bool IsEmfPlusDual() => throw null; + public bool IsEmfPlusOnly() => throw null; + public bool IsWmf() => throw null; + public bool IsWmfPlaceable() => throw null; + public int LogicalDpiX { get => throw null; } + public int LogicalDpiY { get => throw null; } + public int MetafileSize { get => throw null; } + public System.Drawing.Imaging.MetafileType Type { get => throw null; } + public int Version { get => throw null; } + public System.Drawing.Imaging.MetaHeader WmfHeader { get => throw null; } + } + + // Generated from `System.Drawing.Imaging.MetafileType` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum MetafileType + { + Emf, + EmfPlusDual, + EmfPlusOnly, + Invalid, + Wmf, + WmfPlaceable, + } + + // Generated from `System.Drawing.Imaging.PaletteFlags` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + [System.Flags] + public enum PaletteFlags + { + GrayScale, + Halftone, + HasAlpha, + } + + // Generated from `System.Drawing.Imaging.PixelFormat` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PixelFormat + { + Alpha, + Canonical, + DontCare, + Extended, + Format16bppArgb1555, + Format16bppGrayScale, + Format16bppRgb555, + Format16bppRgb565, + Format1bppIndexed, + Format24bppRgb, + Format32bppArgb, + Format32bppPArgb, + Format32bppRgb, + Format48bppRgb, + Format4bppIndexed, + Format64bppArgb, + Format64bppPArgb, + Format8bppIndexed, + Gdi, + Indexed, + Max, + PAlpha, + Undefined, + } + + // Generated from `System.Drawing.Imaging.PlayRecordCallback` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public delegate void PlayRecordCallback(System.Drawing.Imaging.EmfPlusRecordType recordType, int flags, int dataSize, System.IntPtr recordData); + + // Generated from `System.Drawing.Imaging.PropertyItem` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PropertyItem + { + public int Id { get => throw null; set => throw null; } + public int Len { get => throw null; set => throw null; } + public System.Int16 Type { get => throw null; set => throw null; } + public System.Byte[] Value { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Imaging.WmfPlaceableFileHeader` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class WmfPlaceableFileHeader + { + public System.Int16 BboxBottom { get => throw null; set => throw null; } + public System.Int16 BboxLeft { get => throw null; set => throw null; } + public System.Int16 BboxRight { get => throw null; set => throw null; } + public System.Int16 BboxTop { get => throw null; set => throw null; } + public System.Int16 Checksum { get => throw null; set => throw null; } + public System.Int16 Hmf { get => throw null; set => throw null; } + public System.Int16 Inch { get => throw null; set => throw null; } + public int Key { get => throw null; set => throw null; } + public int Reserved { get => throw null; set => throw null; } + public WmfPlaceableFileHeader() => throw null; + } + + } + namespace Printing + { + // Generated from `System.Drawing.Printing.Duplex` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum Duplex + { + Default, + Horizontal, + Simplex, + Vertical, + } + + // Generated from `System.Drawing.Printing.InvalidPrinterException` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class InvalidPrinterException : System.SystemException + { + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public InvalidPrinterException(System.Drawing.Printing.PrinterSettings settings) => throw null; + protected InvalidPrinterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + + // Generated from `System.Drawing.Printing.Margins` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class Margins : System.ICloneable + { + public static bool operator !=(System.Drawing.Printing.Margins m1, System.Drawing.Printing.Margins m2) => throw null; + public static bool operator ==(System.Drawing.Printing.Margins m1, System.Drawing.Printing.Margins m2) => throw null; + public int Bottom { get => throw null; set => throw null; } + public object Clone() => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public int Left { get => throw null; set => throw null; } + public Margins() => throw null; + public Margins(int left, int right, int top, int bottom) => throw null; + public int Right { get => throw null; set => throw null; } + public override string ToString() => throw null; + public int Top { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Printing.MarginsConverter` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class MarginsConverter : System.ComponentModel.ExpandableObjectConverter + { + 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 MarginsConverter() => throw null; + } + + // Generated from `System.Drawing.Printing.PageSettings` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PageSettings : System.ICloneable + { + public System.Drawing.Rectangle Bounds { get => throw null; } + public object Clone() => throw null; + public bool Color { get => throw null; set => throw null; } + public void CopyToHdevmode(System.IntPtr hdevmode) => throw null; + public float HardMarginX { get => throw null; } + public float HardMarginY { get => throw null; } + public bool Landscape { get => throw null; set => throw null; } + public System.Drawing.Printing.Margins Margins { get => throw null; set => throw null; } + public PageSettings() => throw null; + public PageSettings(System.Drawing.Printing.PrinterSettings printerSettings) => throw null; + public System.Drawing.Printing.PaperSize PaperSize { get => throw null; set => throw null; } + public System.Drawing.Printing.PaperSource PaperSource { get => throw null; set => throw null; } + public System.Drawing.RectangleF PrintableArea { get => throw null; } + public System.Drawing.Printing.PrinterResolution PrinterResolution { get => throw null; set => throw null; } + public System.Drawing.Printing.PrinterSettings PrinterSettings { get => throw null; set => throw null; } + public void SetHdevmode(System.IntPtr hdevmode) => throw null; + public override string ToString() => throw null; + } + + // Generated from `System.Drawing.Printing.PaperKind` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PaperKind + { + A2, + A3, + A3Extra, + A3ExtraTransverse, + A3Rotated, + A3Transverse, + A4, + A4Extra, + A4Plus, + A4Rotated, + A4Small, + A4Transverse, + A5, + A5Extra, + A5Rotated, + A5Transverse, + A6, + A6Rotated, + APlus, + B4, + B4Envelope, + B4JisRotated, + B5, + B5Envelope, + B5Extra, + B5JisRotated, + B5Transverse, + B6Envelope, + B6Jis, + B6JisRotated, + BPlus, + C3Envelope, + C4Envelope, + C5Envelope, + C65Envelope, + C6Envelope, + CSheet, + Custom, + DLEnvelope, + DSheet, + ESheet, + Executive, + Folio, + GermanLegalFanfold, + GermanStandardFanfold, + InviteEnvelope, + IsoB4, + ItalyEnvelope, + JapaneseDoublePostcard, + JapaneseDoublePostcardRotated, + JapaneseEnvelopeChouNumber3, + JapaneseEnvelopeChouNumber3Rotated, + JapaneseEnvelopeChouNumber4, + JapaneseEnvelopeChouNumber4Rotated, + JapaneseEnvelopeKakuNumber2, + JapaneseEnvelopeKakuNumber2Rotated, + JapaneseEnvelopeKakuNumber3, + JapaneseEnvelopeKakuNumber3Rotated, + JapaneseEnvelopeYouNumber4, + JapaneseEnvelopeYouNumber4Rotated, + JapanesePostcard, + JapanesePostcardRotated, + Ledger, + Legal, + LegalExtra, + Letter, + LetterExtra, + LetterExtraTransverse, + LetterPlus, + LetterRotated, + LetterSmall, + LetterTransverse, + MonarchEnvelope, + Note, + Number10Envelope, + Number11Envelope, + Number12Envelope, + Number14Envelope, + Number9Envelope, + PersonalEnvelope, + Prc16K, + Prc16KRotated, + Prc32K, + Prc32KBig, + Prc32KBigRotated, + Prc32KRotated, + PrcEnvelopeNumber1, + PrcEnvelopeNumber10, + PrcEnvelopeNumber10Rotated, + PrcEnvelopeNumber1Rotated, + PrcEnvelopeNumber2, + PrcEnvelopeNumber2Rotated, + PrcEnvelopeNumber3, + PrcEnvelopeNumber3Rotated, + PrcEnvelopeNumber4, + PrcEnvelopeNumber4Rotated, + PrcEnvelopeNumber5, + PrcEnvelopeNumber5Rotated, + PrcEnvelopeNumber6, + PrcEnvelopeNumber6Rotated, + PrcEnvelopeNumber7, + PrcEnvelopeNumber7Rotated, + PrcEnvelopeNumber8, + PrcEnvelopeNumber8Rotated, + PrcEnvelopeNumber9, + PrcEnvelopeNumber9Rotated, + Quarto, + Standard10x11, + Standard10x14, + Standard11x17, + Standard12x11, + Standard15x11, + Standard9x11, + Statement, + Tabloid, + TabloidExtra, + USStandardFanfold, + } + + // Generated from `System.Drawing.Printing.PaperSize` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PaperSize + { + public int Height { get => throw null; set => throw null; } + public System.Drawing.Printing.PaperKind Kind { get => throw null; } + public string PaperName { get => throw null; set => throw null; } + public PaperSize() => throw null; + public PaperSize(string name, int width, int height) => throw null; + public int RawKind { get => throw null; set => throw null; } + public override string ToString() => throw null; + public int Width { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Printing.PaperSource` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PaperSource + { + public System.Drawing.Printing.PaperSourceKind Kind { get => throw null; } + public PaperSource() => throw null; + public int RawKind { get => throw null; set => throw null; } + public string SourceName { get => throw null; set => throw null; } + public override string ToString() => throw null; + } + + // Generated from `System.Drawing.Printing.PaperSourceKind` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PaperSourceKind + { + AutomaticFeed, + Cassette, + Custom, + Envelope, + FormSource, + LargeCapacity, + LargeFormat, + Lower, + Manual, + ManualFeed, + Middle, + SmallFormat, + TractorFeed, + Upper, + } + + // Generated from `System.Drawing.Printing.PreviewPageInfo` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PreviewPageInfo + { + public System.Drawing.Image Image { get => throw null; } + public System.Drawing.Size PhysicalSize { get => throw null; } + public PreviewPageInfo(System.Drawing.Image image, System.Drawing.Size physicalSize) => throw null; + } + + // Generated from `System.Drawing.Printing.PreviewPrintController` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PreviewPrintController : System.Drawing.Printing.PrintController + { + public System.Drawing.Printing.PreviewPageInfo[] GetPreviewPageInfo() => throw null; + public override bool IsPreview { get => throw null; } + public override void OnEndPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; + public override void OnEndPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; + public override System.Drawing.Graphics OnStartPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; + public override void OnStartPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; + public PreviewPrintController() => throw null; + public virtual bool UseAntiAlias { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Printing.PrintAction` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PrintAction + { + PrintToFile, + PrintToPreview, + PrintToPrinter, + } + + // Generated from `System.Drawing.Printing.PrintController` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class PrintController + { + public virtual bool IsPreview { get => throw null; } + public virtual void OnEndPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; + public virtual void OnEndPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; + public virtual System.Drawing.Graphics OnStartPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; + public virtual void OnStartPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; + protected PrintController() => throw null; + } + + // Generated from `System.Drawing.Printing.PrintDocument` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PrintDocument : System.ComponentModel.Component + { + public event System.Drawing.Printing.PrintEventHandler BeginPrint; + public System.Drawing.Printing.PageSettings DefaultPageSettings { get => throw null; set => throw null; } + public string DocumentName { get => throw null; set => throw null; } + public event System.Drawing.Printing.PrintEventHandler EndPrint; + protected internal virtual void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e) => throw null; + protected internal virtual void OnEndPrint(System.Drawing.Printing.PrintEventArgs e) => throw null; + protected internal virtual void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e) => throw null; + protected internal virtual void OnQueryPageSettings(System.Drawing.Printing.QueryPageSettingsEventArgs e) => throw null; + public bool OriginAtMargins { get => throw null; set => throw null; } + public void Print() => throw null; + public System.Drawing.Printing.PrintController PrintController { get => throw null; set => throw null; } + public PrintDocument() => throw null; + public event System.Drawing.Printing.PrintPageEventHandler PrintPage; + public System.Drawing.Printing.PrinterSettings PrinterSettings { get => throw null; set => throw null; } + public event System.Drawing.Printing.QueryPageSettingsEventHandler QueryPageSettings; + public override string ToString() => throw null; + } + + // Generated from `System.Drawing.Printing.PrintEventArgs` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PrintEventArgs : System.ComponentModel.CancelEventArgs + { + public System.Drawing.Printing.PrintAction PrintAction { get => throw null; } + public PrintEventArgs() => throw null; + } + + // Generated from `System.Drawing.Printing.PrintEventHandler` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public delegate void PrintEventHandler(object sender, System.Drawing.Printing.PrintEventArgs e); + + // Generated from `System.Drawing.Printing.PrintPageEventArgs` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PrintPageEventArgs : System.EventArgs + { + public bool Cancel { get => throw null; set => throw null; } + public System.Drawing.Graphics Graphics { get => throw null; } + public bool HasMorePages { get => throw null; set => throw null; } + public System.Drawing.Rectangle MarginBounds { get => throw null; } + public System.Drawing.Rectangle PageBounds { get => throw null; } + public System.Drawing.Printing.PageSettings PageSettings { get => throw null; } + public PrintPageEventArgs(System.Drawing.Graphics graphics, System.Drawing.Rectangle marginBounds, System.Drawing.Rectangle pageBounds, System.Drawing.Printing.PageSettings pageSettings) => throw null; + } + + // Generated from `System.Drawing.Printing.PrintPageEventHandler` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public delegate void PrintPageEventHandler(object sender, System.Drawing.Printing.PrintPageEventArgs e); + + // Generated from `System.Drawing.Printing.PrintRange` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PrintRange + { + AllPages, + CurrentPage, + Selection, + SomePages, + } + + // Generated from `System.Drawing.Printing.PrinterResolution` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PrinterResolution + { + public System.Drawing.Printing.PrinterResolutionKind Kind { get => throw null; set => throw null; } + public PrinterResolution() => throw null; + public override string ToString() => throw null; + public int X { get => throw null; set => throw null; } + public int Y { get => throw null; set => throw null; } + } + + // Generated from `System.Drawing.Printing.PrinterResolutionKind` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PrinterResolutionKind + { + Custom, + Draft, + High, + Low, + Medium, + } + + // Generated from `System.Drawing.Printing.PrinterSettings` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PrinterSettings : System.ICloneable + { + // Generated from `System.Drawing.Printing.PrinterSettings+PaperSizeCollection` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PaperSizeCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public int Add(System.Drawing.Printing.PaperSize paperSize) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public void CopyTo(System.Drawing.Printing.PaperSize[] paperSizes, int index) => throw null; + public int Count { get => throw null; } + int System.Collections.ICollection.Count { get => 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.Drawing.Printing.PaperSize this[int index] { get => throw null; } + public PaperSizeCollection(System.Drawing.Printing.PaperSize[] array) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } + + + // Generated from `System.Drawing.Printing.PrinterSettings+PaperSourceCollection` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PaperSourceCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public int Add(System.Drawing.Printing.PaperSource paperSource) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public void CopyTo(System.Drawing.Printing.PaperSource[] paperSources, int index) => throw null; + public int Count { get => throw null; } + int System.Collections.ICollection.Count { get => 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.Drawing.Printing.PaperSource this[int index] { get => throw null; } + public PaperSourceCollection(System.Drawing.Printing.PaperSource[] array) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } + + + // Generated from `System.Drawing.Printing.PrinterSettings+PrinterResolutionCollection` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PrinterResolutionCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public int Add(System.Drawing.Printing.PrinterResolution printerResolution) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public void CopyTo(System.Drawing.Printing.PrinterResolution[] printerResolutions, int index) => throw null; + public int Count { get => throw null; } + int System.Collections.ICollection.Count { get => 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.Drawing.Printing.PrinterResolution this[int index] { get => throw null; } + public PrinterResolutionCollection(System.Drawing.Printing.PrinterResolution[] array) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } + + + // Generated from `System.Drawing.Printing.PrinterSettings+StringCollection` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class StringCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public int Add(string value) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public void CopyTo(string[] strings, int index) => throw null; + public int Count { get => throw null; } + int System.Collections.ICollection.Count { get => 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 string this[int index] { get => throw null; } + public StringCollection(string[] array) => throw null; + object System.Collections.ICollection.SyncRoot { get => throw null; } + } + + + public bool CanDuplex { get => throw null; } + public object Clone() => throw null; + public bool Collate { get => throw null; set => throw null; } + public System.Int16 Copies { get => throw null; set => throw null; } + public System.Drawing.Graphics CreateMeasurementGraphics() => throw null; + public System.Drawing.Graphics CreateMeasurementGraphics(System.Drawing.Printing.PageSettings pageSettings) => throw null; + public System.Drawing.Graphics CreateMeasurementGraphics(System.Drawing.Printing.PageSettings pageSettings, bool honorOriginAtMargins) => throw null; + public System.Drawing.Graphics CreateMeasurementGraphics(bool honorOriginAtMargins) => throw null; + public System.Drawing.Printing.PageSettings DefaultPageSettings { get => throw null; } + public System.Drawing.Printing.Duplex Duplex { get => throw null; set => throw null; } + public int FromPage { get => throw null; set => throw null; } + public System.IntPtr GetHdevmode() => throw null; + public System.IntPtr GetHdevmode(System.Drawing.Printing.PageSettings pageSettings) => throw null; + public System.IntPtr GetHdevnames() => throw null; + public static System.Drawing.Printing.PrinterSettings.StringCollection InstalledPrinters { get => throw null; } + public bool IsDefaultPrinter { get => throw null; } + public bool IsDirectPrintingSupported(System.Drawing.Image image) => throw null; + public bool IsDirectPrintingSupported(System.Drawing.Imaging.ImageFormat imageFormat) => throw null; + public bool IsPlotter { get => throw null; } + public bool IsValid { get => throw null; } + public int LandscapeAngle { get => throw null; } + public int MaximumCopies { get => throw null; } + public int MaximumPage { get => throw null; set => throw null; } + public int MinimumPage { get => throw null; set => throw null; } + public System.Drawing.Printing.PrinterSettings.PaperSizeCollection PaperSizes { get => throw null; } + public System.Drawing.Printing.PrinterSettings.PaperSourceCollection PaperSources { get => throw null; } + public string PrintFileName { get => throw null; set => throw null; } + public System.Drawing.Printing.PrintRange PrintRange { get => throw null; set => throw null; } + public bool PrintToFile { get => throw null; set => throw null; } + public string PrinterName { get => throw null; set => throw null; } + public System.Drawing.Printing.PrinterSettings.PrinterResolutionCollection PrinterResolutions { get => throw null; } + public PrinterSettings() => throw null; + public void SetHdevmode(System.IntPtr hdevmode) => throw null; + public void SetHdevnames(System.IntPtr hdevnames) => throw null; + public bool SupportsColor { get => throw null; } + public int ToPage { get => throw null; set => throw null; } + public override string ToString() => throw null; + } + + // Generated from `System.Drawing.Printing.PrinterUnit` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum PrinterUnit + { + Display, + HundredthsOfAMillimeter, + TenthsOfAMillimeter, + ThousandthsOfAnInch, + } + + // Generated from `System.Drawing.Printing.PrinterUnitConvert` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PrinterUnitConvert + { + public static System.Drawing.Printing.Margins Convert(System.Drawing.Printing.Margins value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; + public static System.Drawing.Point Convert(System.Drawing.Point value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; + public static System.Drawing.Rectangle Convert(System.Drawing.Rectangle value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; + public static System.Drawing.Size Convert(System.Drawing.Size value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; + public static double Convert(double value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; + public static int Convert(int value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; + } + + // Generated from `System.Drawing.Printing.QueryPageSettingsEventArgs` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class QueryPageSettingsEventArgs : System.Drawing.Printing.PrintEventArgs + { + public System.Drawing.Printing.PageSettings PageSettings { get => throw null; set => throw null; } + public QueryPageSettingsEventArgs(System.Drawing.Printing.PageSettings pageSettings) => throw null; + } + + // Generated from `System.Drawing.Printing.QueryPageSettingsEventHandler` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public delegate void QueryPageSettingsEventHandler(object sender, System.Drawing.Printing.QueryPageSettingsEventArgs e); + + // Generated from `System.Drawing.Printing.StandardPrintController` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class StandardPrintController : System.Drawing.Printing.PrintController + { + public override void OnEndPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; + public override void OnEndPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; + public override System.Drawing.Graphics OnStartPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; + public override void OnStartPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; + public StandardPrintController() => throw null; + } + + } + namespace Text + { + // Generated from `System.Drawing.Text.FontCollection` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public abstract class FontCollection : System.IDisposable + { + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public System.Drawing.FontFamily[] Families { get => throw null; } + internal FontCollection() => throw null; + // ERR: Stub generator didn't handle member: ~FontCollection + } + + // Generated from `System.Drawing.Text.GenericFontFamilies` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum GenericFontFamilies + { + Monospace, + SansSerif, + Serif, + } + + // Generated from `System.Drawing.Text.HotkeyPrefix` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum HotkeyPrefix + { + Hide, + None, + Show, + } + + // Generated from `System.Drawing.Text.InstalledFontCollection` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class InstalledFontCollection : System.Drawing.Text.FontCollection + { + public InstalledFontCollection() => throw null; + } + + // Generated from `System.Drawing.Text.PrivateFontCollection` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public class PrivateFontCollection : System.Drawing.Text.FontCollection + { + public void AddFontFile(string filename) => throw null; + public void AddMemoryFont(System.IntPtr memory, int length) => throw null; + protected override void Dispose(bool disposing) => throw null; + public PrivateFontCollection() => throw null; + } + + // Generated from `System.Drawing.Text.TextRenderingHint` in `System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` + public enum TextRenderingHint + { + AntiAlias, + AntiAliasGridFit, + ClearTypeGridFit, + SingleBitPerPixel, + SingleBitPerPixelGridFit, + SystemDefault, + } + + } + } + namespace Runtime + { + namespace Versioning + { + /* Duplicate type 'OSPlatformAttribute' is not stubbed in this assembly 'System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ + + /* Duplicate type 'SupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ + + /* Duplicate type 'TargetPlatformAttribute' is not stubbed in this assembly 'System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ + + /* Duplicate type 'UnsupportedOSPlatformAttribute' is not stubbed in this assembly 'System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. */ + + } + } +} diff --git a/csharp/ql/test/resources/stubs/System.Drawing.Common/5.0.2/System.Drawing.Common.csproj b/csharp/ql/test/resources/stubs/System.Drawing.Common/5.0.2/System.Drawing.Common.csproj new file mode 100644 index 00000000000..742100f5dee --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Drawing.Common/5.0.2/System.Drawing.Common.csproj @@ -0,0 +1,13 @@ + + + net6.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj b/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj new file mode 100644 index 00000000000..a04faa3ef58 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj @@ -0,0 +1,12 @@ + + + net6.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj b/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj new file mode 100644 index 00000000000..a04faa3ef58 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj @@ -0,0 +1,12 @@ + + + net6.0 + true + bin\ + false + + + + + + From d76b069bc5d0b5e4922fc8ddf78fa573afd0d75a Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 13:05:37 +0200 Subject: [PATCH 670/736] C#: Manual changes to stubs to ensure compilation. --- .../6.2.0/ServiceStack.Client.cs | 6127 ++++++++--------- .../6.2.0/ServiceStack.Client.csproj | 1 - .../6.2.0/ServiceStack.Text.cs | 6 +- .../stubs/ServiceStack/6.2.0/ServiceStack.cs | 11 - .../System.Security.AccessControl.csproj | 2 +- 5 files changed, 3059 insertions(+), 3088 deletions(-) diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.cs b/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.cs index fcdc345b685..0aaa7ce78d2 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.cs +++ b/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.cs @@ -42,3170 +42,3155 @@ namespace ServiceStack public int? Take { get => throw null; set => throw null; } } - // Generated from `ServiceStack.AdminUi` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public class AdminUi + // Generated from `ServiceStack.AdminUpdateUser` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminUpdateUser : ServiceStack.AdminUserBase, ServiceStack.IPut, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public System.Collections.Generic.List AddPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List AddRoles { get => throw null; set => throw null; } + public AdminUpdateUser() => throw null; + public string Id { get => throw null; set => throw null; } + public bool? LockUser { get => throw null; set => throw null; } + public System.Collections.Generic.List RemovePermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List RemoveRoles { get => throw null; set => throw null; } + public bool? UnlockUser { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminUserBase` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class AdminUserBase : ServiceStack.IMeta + { + protected AdminUserBase() => throw null; + public string DisplayName { get => throw null; set => throw null; } + public string Email { get => throw null; set => throw null; } + public string FirstName { get => throw null; set => throw null; } + public string LastName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary UserAuthProperties { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminUserResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminUserResponse : ServiceStack.IHasResponseStatus + { + public AdminUserResponse() => throw null; + public System.Collections.Generic.List> Details { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Result { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminUsersInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminUsersInfo : ServiceStack.IMeta + { + public string AccessRole { get => throw null; set => throw null; } + public AdminUsersInfo() => throw null; + public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } + public ServiceStack.ApiCss Css { get => throw null; set => throw null; } + public System.Collections.Generic.List Enabled { get => throw null; set => throw null; } + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List QueryMediaRules { get => throw null; set => throw null; } + public System.Collections.Generic.List QueryUserAuthProperties { get => throw null; set => throw null; } + public ServiceStack.MetadataType UserAuth { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AdminUsersResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AdminUsersResponse : ServiceStack.IHasResponseStatus + { + public AdminUsersResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List> Results { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AesUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AesUtils + { + public const int BlockSize = default; + public const int BlockSizeBytes = default; + public static string CreateBase64Key() => throw null; + public static void CreateCryptAuthKeysAndIv(out System.Byte[] cryptKey, out System.Byte[] authKey, out System.Byte[] iv) => throw null; + public static System.Byte[] CreateIv() => throw null; + public static System.Byte[] CreateKey() => throw null; + public static void CreateKeyAndIv(out System.Byte[] cryptKey, out System.Byte[] iv) => throw null; + public static System.Security.Cryptography.SymmetricAlgorithm CreateSymmetricAlgorithm() => throw null; + public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, System.Byte[] cryptKey, System.Byte[] iv) => throw null; + public static string Decrypt(string encryptedBase64, System.Byte[] cryptKey, System.Byte[] iv) => throw null; + public static System.Byte[] Encrypt(System.Byte[] bytesToEncrypt, System.Byte[] cryptKey, System.Byte[] iv) => throw null; + public static string Encrypt(string text, System.Byte[] cryptKey, System.Byte[] iv) => throw null; + public const int KeySize = default; + public const int KeySizeBytes = default; + } + + // Generated from `ServiceStack.ApiCss` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiCss + { + public ApiCss() => throw null; + public string Field { get => throw null; set => throw null; } + public string Fieldset { get => throw null; set => throw null; } + public string Form { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ApiFormat` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiFormat + { + public ApiFormat() => throw null; + public bool AssumeUtc { get => throw null; set => throw null; } + public ServiceStack.FormatInfo Date { get => throw null; set => throw null; } + public string Locale { get => throw null; set => throw null; } + public ServiceStack.FormatInfo Number { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ApiResult` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ApiResult + { + public static ServiceStack.ApiResult Create(TResponse response) => throw null; + public static ServiceStack.ApiResult CreateError(System.Exception ex) => throw null; + public static ServiceStack.ApiResult CreateError(ServiceStack.ResponseStatus errorStatus) => throw null; + public static ServiceStack.ApiResult CreateError(string message, string errorCode = default(string)) => throw null; + public static ServiceStack.ApiResult CreateError(System.Exception ex) => throw null; + public static ServiceStack.ApiResult CreateError(ServiceStack.ResponseStatus errorStatus) => throw null; + public static ServiceStack.ApiResult CreateError(string message, string errorCode = default(string)) => throw null; + public static ServiceStack.ApiResult CreateFieldError(string fieldName, string message, string errorCode = default(string)) => throw null; + public static ServiceStack.ApiResult CreateFieldError(string fieldName, string message, string errorCode = default(string)) => throw null; + public const string FieldErrorCode = default; + } + + // Generated from `ServiceStack.ApiResult<>` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiResult : ServiceStack.IHasErrorStatus + { + public void AddFieldError(string fieldName, string message, string errorCode = default(string)) => throw null; + public ApiResult() => throw null; + public ApiResult(ServiceStack.ResponseStatus errorStatus) => throw null; + public ApiResult(TResponse response) => throw null; + public void ClearErrors() => throw null; + public bool Completed { get => throw null; } + public ServiceStack.ResponseStatus Error { get => throw null; set => throw null; } + public string ErrorMessage { get => throw null; } + public string ErrorSummary { get => throw null; } + public ServiceStack.ResponseError[] Errors { get => throw null; } + public bool Failed { get => throw null; } + public ServiceStack.ResponseError FieldError(string fieldName) => throw null; + public string FieldErrorMessage(string fieldName) => throw null; + public bool HasFieldError(string fieldName) => throw null; + public bool IsLoading { get => throw null; set => throw null; } + public TResponse Response { get => throw null; } + public void SetError(string errorMessage, string errorCode = default(string)) => throw null; + public string StackTrace { get => throw null; set => throw null; } + public bool Succeeded { get => throw null; } + } + + // Generated from `ServiceStack.ApiResultUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ApiResultUtils + { + public static ServiceStack.ApiResult Api(this ServiceStack.IServiceClient client, ServiceStack.IReturnVoid request) => throw null; + public static ServiceStack.ApiResult Api(this ServiceStack.IServiceClient client, ServiceStack.IReturn request) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturnVoid request) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn request) => throw null; + public static void ThrowIfError(this ServiceStack.ApiResult api) => throw null; + public static ServiceStack.ApiResult ToApiResult(this System.Exception ex) => throw null; + public static ServiceStack.ApiResult ToApiResult(this System.Exception ex) => throw null; + public static ServiceStack.AuthenticateResponse ToAuthenticateResponse(this ServiceStack.RegisterResponse from) => throw null; + } + + // Generated from `ServiceStack.ApiUiInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ApiUiInfo : ServiceStack.IMeta + { + public ApiUiInfo() => throw null; + public ServiceStack.ApiCss ExplorerCss { get => throw null; set => throw null; } + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public ServiceStack.ApiCss LocodeCss { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AppInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AppInfo : ServiceStack.IMeta + { + public AppInfo() => throw null; + public string BackgroundColor { get => throw null; set => throw null; } + public string BackgroundImageUrl { get => throw null; set => throw null; } + public string BaseUrl { get => throw null; set => throw null; } + public string BrandImageUrl { get => throw null; set => throw null; } + public string BrandUrl { get => throw null; set => throw null; } + public string IconUrl { get => throw null; set => throw null; } + public string JsTextCase { get => throw null; set => throw null; } + public string LinkColor { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string ServiceDescription { get => throw null; set => throw null; } + public string ServiceIconUrl { get => throw null; set => throw null; } + public string ServiceName { get => throw null; set => throw null; } + public string ServiceStackVersion { get => throw null; } + public string TextColor { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AppMetadata` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AppMetadata : ServiceStack.IMeta + { + public ServiceStack.MetadataTypes Api { get => throw null; set => throw null; } + public ServiceStack.AppInfo App { get => throw null; set => throw null; } + public AppMetadata() => throw null; + public ServiceStack.AppMetadataCache Cache { get => throw null; set => throw null; } + public ServiceStack.ConfigInfo Config { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ContentTypeFormats { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary CustomPlugins { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary HttpHandlers { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.PluginInfo Plugins { get => throw null; set => throw null; } + public ServiceStack.UiInfo Ui { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AppMetadataCache` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AppMetadataCache + { + public AppMetadataCache(System.Collections.Generic.Dictionary operationsMap, System.Collections.Generic.Dictionary typesMap) => throw null; + public System.Collections.Generic.Dictionary OperationsMap { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary TypesMap { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AppMetadataUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class AppMetadataUtils + { + public static void EachOperation(this ServiceStack.AppMetadata app, System.Action configure) => throw null; + public static void EachOperation(this ServiceStack.AppMetadata app, System.Action configure, System.Predicate where) => throw null; + public static void EachProperty(this ServiceStack.MetadataType type, System.Func where, System.Action configure) => throw null; + public static void EachType(this ServiceStack.AppMetadata app, System.Action configure) => throw null; + public static void EachType(this ServiceStack.AppMetadata app, System.Action configure, System.Predicate where) => throw null; + public static System.Threading.Tasks.Task GetAppMetadataAsync(this string baseUrl) => throw null; + public static ServiceStack.AppMetadataCache GetCache(this ServiceStack.AppMetadata app) => throw null; + public static ServiceStack.MetadataOperationType GetOperation(this ServiceStack.AppMetadata app, string name) => throw null; + public static ServiceStack.MetadataType GetType(this ServiceStack.AppMetadata app, System.Type type) => throw null; + public static ServiceStack.MetadataType GetType(this ServiceStack.AppMetadata app, string name) => throw null; + public static ServiceStack.MetadataType GetType(this ServiceStack.AppMetadata app, string @namespace, string name) => throw null; + public static bool IsSystemType(this ServiceStack.MetadataPropertyType prop) => throw null; + public static ServiceStack.MetadataPropertyType Property(this ServiceStack.MetadataType type, string name) => throw null; + public static void Property(this ServiceStack.MetadataType type, string name, System.Action configure) => throw null; + public static void RemoveProperty(this ServiceStack.MetadataType type, System.Predicate where) => throw null; + public static void RemoveProperty(this ServiceStack.MetadataType type, string name) => throw null; + public static ServiceStack.MetadataPropertyType ReorderProperty(this ServiceStack.MetadataType type, string name, int index) => throw null; + public static ServiceStack.MetadataPropertyType ReorderProperty(this ServiceStack.MetadataType type, string name, string before = default(string), string after = default(string)) => throw null; + public static ServiceStack.MetadataPropertyType RequiredProperty(this ServiceStack.MetadataType type, string name) => throw null; + public static ServiceStack.FieldCss ToCss(this ServiceStack.FieldCssAttribute attr) => throw null; + public static ServiceStack.FormatInfo ToFormat(this ServiceStack.FormatAttribute attr) => throw null; + public static ServiceStack.FormatInfo ToFormat(this ServiceStack.Intl attr) => throw null; + public static ServiceStack.InputInfo ToInput(this ServiceStack.InputAttributeBase input, System.Action configure = default(System.Action)) => throw null; + } + + // Generated from `ServiceStack.AppTags` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AppTags + { + public AppTags() => throw null; + public string Default { get => throw null; set => throw null; } + public string Other { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AssignRoles` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AssignRoles : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public AssignRoles() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AssignRolesResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AssignRolesResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } + public AssignRolesResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AsyncServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AsyncServiceClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion + { + public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } + public AsyncServiceClient() => throw null; + public string BaseUri { get => throw null; set => throw null; } + public string BearerToken { get => throw null; set => throw null; } + public static int BufferSize; + public string ContentType { 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 bool DisableAutoCompression { get => throw null; set => throw null; } + public static bool DisableTimer { get => throw null; set => throw null; } + public void Dispose() => throw null; + public bool EmulateHttpViaPost { get => throw null; set => throw null; } + public bool EnableAutoRefreshToken { get => throw null; set => throw null; } + public ServiceStack.ExceptionFilterDelegate ExceptionFilter { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary GetCookieValues() => throw null; + public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } + public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } + public System.Net.Http.HttpClient HttpClient { get => throw null; set => throw null; } + public System.Text.StringBuilder HttpLog { get => throw null; set => throw null; } + public System.Action HttpLogFilter { get => throw null; set => throw null; } + public System.Action OnAuthenticationRequired { get => throw null; set => throw null; } + public ServiceStack.ProgressDelegate OnDownloadProgress { get => throw null; set => throw null; } + public ServiceStack.ProgressDelegate OnUploadProgress { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public string RefreshTokenUri { get => throw null; set => throw null; } + public string RequestCompressionType { get => throw null; set => throw null; } + public System.Action RequestFilter { get => throw null; set => throw null; } + public System.Action ResponseFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterDelegate ResultsFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string SessionId { get => throw null; set => throw null; } + public void SetCredentials(string userName, string password) => throw null; + public bool ShareCookiesWithBrowser { get => throw null; set => throw null; } + public bool StoreCookies { get => throw null; set => throw null; } + public ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; set => throw null; } + public ServiceStack.Web.StreamSerializerDelegate StreamSerializer { get => throw null; set => throw null; } + public System.TimeSpan? Timeout { get => throw null; set => throw null; } + public string UserAgent { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + public int Version { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AsyncTimer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AsyncTimer : ServiceStack.ITimer, System.IDisposable + { + public AsyncTimer(System.Threading.Timer timer) => throw null; + public void Cancel() => throw null; + public void Dispose() => throw null; + public System.Threading.Timer Timer; + } + + // Generated from `ServiceStack.AuthInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthInfo : ServiceStack.IMeta + { + public AuthInfo() => throw null; + public System.Collections.Generic.List AuthProviders { get => throw null; set => throw null; } + public bool? HasAuthRepository { get => throw null; set => throw null; } + public bool? HasAuthSecret { get => throw null; set => throw null; } + public string HtmlRedirect { get => throw null; set => throw null; } + public bool? IncludesOAuthTokens { get => throw null; set => throw null; } + public bool? IncludesRoles { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary> RoleLinks { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Authenticate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Authenticate : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public string AccessToken { get => throw null; set => throw null; } + public string AccessTokenSecret { get => throw null; set => throw null; } + public Authenticate() => throw null; + public Authenticate(string provider) => throw null; + public string ErrorView { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public bool? RememberMe { get => throw null; set => throw null; } + public string State { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + public string cnonce { get => throw null; set => throw null; } + public string nc { get => throw null; set => throw null; } + public string nonce { get => throw null; set => throw null; } + public string oauth_token { get => throw null; set => throw null; } + public string oauth_verifier { get => throw null; set => throw null; } + public string provider { get => throw null; set => throw null; } + public string qop { get => throw null; set => throw null; } + public string response { get => throw null; set => throw null; } + public string scope { get => throw null; set => throw null; } + public string uri { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AuthenticateResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthenticateResponse : ServiceStack.IHasBearerToken, ServiceStack.IHasRefreshToken, ServiceStack.IHasResponseStatus, ServiceStack.IHasSessionId, ServiceStack.IMeta + { + public AuthenticateResponse() => throw null; + public string BearerToken { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public string ReferrerUrl { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AuthenticationException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthenticationException : System.Exception, ServiceStack.IHasStatusCode + { + public AuthenticationException() => throw null; + public AuthenticationException(string message) => throw null; + public AuthenticationException(string message, System.Exception innerException) => throw null; + public int StatusCode { get => throw null; } + } + + // Generated from `ServiceStack.AuthenticationInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AuthenticationInfo + { + public AuthenticationInfo(string authHeader) => throw null; + public override string ToString() => throw null; + public string cnonce { get => throw null; set => throw null; } + public string method { get => throw null; set => throw null; } + public int nc { get => throw null; set => throw null; } + public string nonce { get => throw null; set => throw null; } + public string opaque { get => throw null; set => throw null; } + public string qop { get => throw null; set => throw null; } + public string realm { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoQueryConvention` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryConvention + { + public AutoQueryConvention() => throw null; + public string Name { get => throw null; set => throw null; } + public string Types { get => throw null; set => throw null; } + public string Value { get => throw null; set => throw null; } + public string ValueType { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.AutoQueryInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class AutoQueryInfo : ServiceStack.IMeta + { + public string AccessRole { get => throw null; set => throw null; } + public bool? Async { get => throw null; set => throw null; } + public AutoQueryInfo() => throw null; + public bool? AutoQueryViewer { get => throw null; set => throw null; } + public bool? CrudEvents { get => throw null; set => throw null; } + public bool? CrudEventsServices { get => throw null; set => throw null; } + public int? MaxLimit { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string NamedConnection { get => throw null; set => throw null; } + public bool? OrderByPrimaryKey { get => throw null; set => throw null; } + public bool? RawSqlFilters { get => throw null; set => throw null; } + public bool? UntypedQueries { get => throw null; set => throw null; } + public System.Collections.Generic.List ViewerConventions { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.BrotliCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class BrotliCompressor : ServiceStack.Caching.IStreamCompressor + { + public BrotliCompressor() => throw null; + public System.Byte[] Compress(System.Byte[] buffer) => throw null; + public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public System.IO.Stream Decompress(System.IO.Stream gzStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] DecompressBytes(System.Byte[] zipBuffer) => throw null; + public string Encoding { get => throw null; } + public static ServiceStack.BrotliCompressor Instance { get => throw null; } + } + + // Generated from `ServiceStack.CachedServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CachedServiceClient : ServiceStack.ICachedServiceClient, ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable + { + public void AddHeader(string name, string value) => throw null; + public string BearerToken { get => throw null; set => throw null; } + public int CacheCount { get => throw null; } + public System.Int64 CacheHits { get => throw null; } + public CachedServiceClient(ServiceStack.ServiceClientBase client) => throw null; + public CachedServiceClient(ServiceStack.ServiceClientBase client, System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; + public System.Int64 CachesAdded { get => throw null; } + public System.Int64 CachesRemoved { get => throw null; } + public int CleanCachesWhenCountExceeds { get => throw null; set => throw null; } + public System.TimeSpan? ClearCachesOlderThan { get => throw null; set => throw null; } + public void ClearCookies() => throw null; + public System.TimeSpan? ClearExpiredCachesOlderThan { get => throw null; set => throw null; } + public void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, object requestDto) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Delete(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Delete(ServiceStack.IReturn request) => throw null; + public TResponse Delete(object request) => throw null; + public TResponse Delete(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Dispose() => throw null; + public System.Int64 ErrorFallbackHits { get => throw null; } + public void Get(ServiceStack.IReturnVoid request) => throw null; + public TResponse Get(ServiceStack.IReturn requestDto) => throw null; + public TResponse Get(object requestDto) => throw null; + public TResponse Get(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.Dictionary GetCookieValues() => throw null; + public System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; + public System.Int64 NotModifiedHits { get => throw null; } + public object OnExceptionFilter(System.Net.WebException webEx, System.Net.WebResponse webRes, string requestUri, System.Type responseType) => throw null; + public void Patch(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Patch(ServiceStack.IReturn requestDto) => throw null; + public TResponse Patch(object requestDto) => throw null; + public TResponse Patch(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void Post(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Post(ServiceStack.IReturn requestDto) => throw null; + public TResponse Post(object requestDto) => throw null; + public TResponse Post(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType, string fieldName = default(string)) => throw null; + public TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; + public TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; + public void Publish(object requestDto) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; + public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public void Put(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Put(ServiceStack.IReturn requestDto) => throw null; + public TResponse Put(object requestDto) => throw null; + public TResponse Put(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public int RemoveCachesOlderThan(System.TimeSpan age) => throw null; + public int RemoveExpiredCachesOlderThan(System.TimeSpan age) => throw null; + public TResponse Send(object request) => throw null; + public TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request) => throw null; + public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void SendOneWay(object requestDto) => throw null; + public void SendOneWay(string relativeOrAbsoluteUri, object requestDto) => throw null; + public string SessionId { get => throw null; set => throw null; } + public void SetCache(System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; + public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; + public void SetCredentials(string userName, string password) => throw null; + public int Version { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.CachedServiceClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CachedServiceClientExtensions + { + public static ServiceStack.IServiceClient WithCache(this ServiceStack.ServiceClientBase client) => throw null; + public static ServiceStack.IServiceClient WithCache(this ServiceStack.ServiceClientBase client, System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; + } + + // Generated from `ServiceStack.CancelRequest` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CancelRequest : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public CancelRequest() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Tag { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.CancelRequestResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CancelRequestResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + public CancelRequestResponse() => throw null; + public System.TimeSpan Elapsed { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public string Tag { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.CheckCrudEvents` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CheckCrudEvents : ServiceStack.IReturn, ServiceStack.IReturn + { + public string AuthSecret { get => throw null; set => throw null; } + public CheckCrudEvents() => throw null; + public System.Collections.Generic.List Ids { get => throw null; set => throw null; } + public string Model { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.CheckCrudEventsResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CheckCrudEventsResponse : ServiceStack.IHasResponseStatus + { + public CheckCrudEventsResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ClientConfig` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ClientConfig + { + public static void ConfigureTls12() => throw null; + public static string DefaultEncodeDispositionFileName(string fileName) => throw null; + public static System.Func EncodeDispositionFileName { get => throw null; set => throw null; } + public static bool SkipEmptyArrays { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ClientDiagnosticUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ClientDiagnosticUtils + { + public static void InitMessage(this System.Diagnostics.DiagnosticListener listener, ServiceStack.Messaging.IMessage msg) => throw null; + } + + // Generated from `ServiceStack.ClientDiagnostics` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ClientDiagnostics + { + public static void WriteRequestAfter(this System.Diagnostics.DiagnosticListener listener, System.Guid operationId, System.Net.Http.HttpRequestMessage httpReq, object response, string operation = default(string)) => throw null; + public static System.Guid WriteRequestBefore(this System.Diagnostics.DiagnosticListener listener, System.Net.Http.HttpRequestMessage httpReq, object request, System.Type responseType, string operation = default(string)) => throw null; + public static void WriteRequestError(this System.Diagnostics.DiagnosticListener listener, System.Guid operationId, System.Net.Http.HttpRequestMessage httpReq, System.Exception ex, string operation = default(string)) => throw null; + } + + // Generated from `ServiceStack.ClientFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ClientFactory + { + public static ServiceStack.IOneWayClient Create(string endpointUrl) => throw null; + } + + // Generated from `ServiceStack.ConfigInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConfigInfo : ServiceStack.IMeta + { + public ConfigInfo() => throw null; + public bool? DebugMode { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ContentFormat` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ContentFormat + { + public static System.Collections.Generic.Dictionary ContentTypeAliases; + public static string GetContentFormat(ServiceStack.Format format) => throw null; + public static string GetContentFormat(string contentType) => throw null; + public static ServiceStack.RequestAttributes GetEndpointAttributes(string contentType) => throw null; + public static string GetRealContentType(string contentType) => throw null; + public static ServiceStack.RequestAttributes GetRequestAttribute(string httpMethod) => throw null; + public static bool IsBinary(this string contentType) => throw null; + public static bool MatchesContentType(this string contentType, string matchesContentType) => throw null; + public static string NormalizeContentType(string contentType) => throw null; + public static string ToContentFormat(this string contentType) => throw null; + public static string ToContentType(this ServiceStack.Format formats) => throw null; + public static ServiceStack.Feature ToFeature(this string contentType) => throw null; + public const string Utf8Suffix = default; + } + + // Generated from `ServiceStack.ConvertSessionToToken` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConvertSessionToToken : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public ConvertSessionToToken() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public bool PreserveSession { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ConvertSessionToTokenResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConvertSessionToTokenResponse : ServiceStack.IMeta + { + public string AccessToken { get => throw null; set => throw null; } + public ConvertSessionToTokenResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.CrudEvent` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CrudEvent : ServiceStack.IMeta + { + public CrudEvent() => throw null; + public System.DateTime EventDate { get => throw null; set => throw null; } + public string EventType { get => throw null; set => throw null; } + public System.Int64 Id { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Model { get => throw null; set => throw null; } + public string ModelId { get => throw null; set => throw null; } + public int? RefId { get => throw null; set => throw null; } + public string RefIdStr { get => throw null; set => throw null; } + public string RemoteIp { get => throw null; set => throw null; } + public string RequestBody { get => throw null; set => throw null; } + public string RequestType { get => throw null; set => throw null; } + public System.Int64? RowsUpdated { get => throw null; set => throw null; } + public string Urn { get => throw null; set => throw null; } + public string UserAuthId { get => throw null; set => throw null; } + public string UserAuthName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.CssUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class CssUtils + { + // Generated from `ServiceStack.CssUtils+Bootstrap` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Bootstrap + { + public static string InputClass(ServiceStack.ResponseStatus status, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + public static string InputClass(ServiceStack.ApiResult apiResult, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + } + + + // Generated from `ServiceStack.CssUtils+Tailwind` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Tailwind + { + public static string InputClass(ServiceStack.ResponseStatus status, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + public static string InputClass(ServiceStack.ApiResult apiResult, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + } + + + public static string Active(bool condition) => throw null; + public static string ClassNames(params string[] classes) => throw null; + public static string Selected(bool condition) => throw null; + } + + // Generated from `ServiceStack.CsvServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CsvServiceClient : ServiceStack.ServiceClientBase + { + public override string ContentType { get => throw null; } + public CsvServiceClient() => throw null; + public CsvServiceClient(string baseUri) => throw null; + public CsvServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; + public override T DeserializeFromStream(System.IO.Stream stream) => throw null; + public override string Format { get => throw null; } + public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; + public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } + } + + // Generated from `ServiceStack.CustomPluginInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class CustomPluginInfo : ServiceStack.IMeta + { + public string AccessRole { get => throw null; set => throw null; } + public CustomPluginInfo() => throw null; + public System.Collections.Generic.List Enabled { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DeflateCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DeflateCompressor : ServiceStack.Caching.IStreamCompressor + { + public System.Byte[] Compress(System.Byte[] bytes) => throw null; + public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public System.IO.Stream Decompress(System.IO.Stream zipBuffer, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] DecompressBytes(System.Byte[] zipBuffer) => throw null; + public DeflateCompressor() => throw null; + public string Encoding { get => throw null; } + public static ServiceStack.DeflateCompressor Instance { get => throw null; } + } + + // Generated from `ServiceStack.DeleteFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DeleteFileUpload : ServiceStack.IDelete, ServiceStack.IHasBearerToken, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public string BearerToken { get => throw null; set => throw null; } + public DeleteFileUpload() => throw null; + public string Name { get => throw null; set => throw null; } + public string Path { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DeleteFileUploadResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DeleteFileUploadResponse + { + public DeleteFileUploadResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public bool Result { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.DynamicRequest` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DynamicRequest + { + public DynamicRequest() => throw null; + public System.Collections.Generic.Dictionary Params { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.EncryptedMessage` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EncryptedMessage : ServiceStack.IReturn, ServiceStack.IReturn + { + public string EncryptedBody { get => throw null; set => throw null; } + public EncryptedMessage() => throw null; + public string EncryptedSymmetricKey { get => throw null; set => throw null; } + public string KeyId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.EncryptedMessageResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EncryptedMessageResponse + { + public string EncryptedBody { get => throw null; set => throw null; } + public EncryptedMessageResponse() => throw null; + } + + // Generated from `ServiceStack.EncryptedServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class EncryptedServiceClient : ServiceStack.IEncryptedClient, ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IReplyClient, ServiceStack.IServiceGateway + { + public string BearerToken { get => throw null; set => throw null; } + public ServiceStack.IJsonServiceClient Client { get => throw null; set => throw null; } + public ServiceStack.EncryptedMessage CreateEncryptedMessage(object request, string operationName, System.Byte[] cryptKey, System.Byte[] authKey, System.Byte[] iv, string verb = default(string)) => throw null; + public ServiceStack.WebServiceException DecryptedException(ServiceStack.WebServiceException ex, System.Byte[] cryptKey, System.Byte[] authKey) => throw null; + public EncryptedServiceClient(ServiceStack.IJsonServiceClient client, System.Security.Cryptography.RSAParameters publicKey) => throw null; + public EncryptedServiceClient(ServiceStack.IJsonServiceClient client, string publicKeyXml) => throw null; + public string KeyId { get => throw null; set => throw null; } + public System.Security.Cryptography.RSAParameters PublicKey { get => throw null; set => throw null; } + public void Publish(object request) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; + public TResponse Send(object request) => throw null; + public TResponse Send(string httpMethod, ServiceStack.IReturn request) => throw null; + public TResponse Send(string httpMethod, object request) => throw null; + public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; + public string ServerPublicKeyXml { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public int Version { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ErrorUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ErrorUtils + { + public static ServiceStack.ResponseStatus AddFieldError(this ServiceStack.ResponseStatus status, string fieldName, string errorMessage, string errorCode = default(string)) => throw null; + public static ServiceStack.ResponseStatus AsResponseStatus(this System.Exception ex) => throw null; + public static ServiceStack.ResponseStatus CreateError(System.Exception ex) => throw null; + public static ServiceStack.ResponseStatus CreateError(string message, string errorCode = default(string)) => throw null; + public static ServiceStack.ResponseStatus CreateFieldError(string fieldName, string errorMessage, string errorCode = default(string)) => throw null; + public static ServiceStack.ResponseError FieldError(this ServiceStack.ResponseStatus status, string fieldName) => throw null; + public const string FieldErrorCode = default; + public static string FieldErrorMessage(this ServiceStack.ResponseStatus status, string fieldName) => throw null; + public static bool HasErrorField(this ServiceStack.ResponseStatus status, string fieldName) => throw null; + public static bool IsError(this ServiceStack.ResponseStatus status) => throw null; + public static bool IsSuccess(this ServiceStack.ResponseStatus status) => throw null; + public static bool ShowSummary(this ServiceStack.ResponseStatus status, params string[] exceptFields) => throw null; + public static string SummaryMessage(this ServiceStack.ResponseStatus status, params string[] exceptFields) => throw null; + } + + // Generated from `ServiceStack.ExceptionFilterDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ExceptionFilterDelegate(System.Net.WebException webEx, System.Net.WebResponse webResponse, string requestUri, System.Type responseType); + + // Generated from `ServiceStack.ExceptionFilterHttpDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ExceptionFilterHttpDelegate(System.Net.Http.HttpResponseMessage webResponse, string requestUri, System.Type responseType); + + // Generated from `ServiceStack.ExplorerUi` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ExplorerUi { public ServiceStack.ApiCss Css { get => throw null; set => throw null; } + public ExplorerUi() => throw null; + public ServiceStack.AppTags Tags { get => throw null; set => throw null; } } - // Generated from `ServiceStack.AdminUi` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum AdminUi + // Generated from `ServiceStack.FieldCss` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FieldCss { - public ServiceStack.ApiCss Css { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AdminUpdateUser` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AdminUpdateUser : ServiceStack.AdminUserBase, ServiceStack.IPut, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public System.Collections.Generic.List AddPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List AddRoles { get => throw null; set => throw null; } - public AdminUpdateUser() => throw null; - public string Id { get => throw null; set => throw null; } - public bool? LockUser { get => throw null; set => throw null; } - public System.Collections.Generic.List RemovePermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List RemoveRoles { get => throw null; set => throw null; } - public bool? UnlockUser { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AdminUserBase` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public abstract class AdminUserBase : ServiceStack.IMeta -{ - protected AdminUserBase() => throw null; - public string DisplayName { get => throw null; set => throw null; } - public string Email { get => throw null; set => throw null; } - public string FirstName { get => throw null; set => throw null; } - public string LastName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary UserAuthProperties { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AdminUserResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AdminUserResponse : ServiceStack.IHasResponseStatus -{ - public AdminUserResponse() => throw null; - public System.Collections.Generic.List> Details { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Result { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AdminUsersInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AdminUsersInfo : ServiceStack.IMeta -{ - public string AccessRole { get => throw null; set => throw null; } - public AdminUsersInfo() => throw null; - public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } - public ServiceStack.ApiCss Css { get => throw null; set => throw null; } - public System.Collections.Generic.List Enabled { get => throw null; set => throw null; } - public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List QueryMediaRules { get => throw null; set => throw null; } - public System.Collections.Generic.List QueryUserAuthProperties { get => throw null; set => throw null; } - public ServiceStack.MetadataType UserAuth { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AdminUsersResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AdminUsersResponse : ServiceStack.IHasResponseStatus -{ - public AdminUsersResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List> Results { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AesUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class AesUtils -{ - public const int BlockSize = default; - public const int BlockSizeBytes = default; - public static string CreateBase64Key() => throw null; - public static void CreateCryptAuthKeysAndIv(out System.Byte[] cryptKey, out System.Byte[] authKey, out System.Byte[] iv) => throw null; - public static System.Byte[] CreateIv() => throw null; - public static System.Byte[] CreateKey() => throw null; - public static void CreateKeyAndIv(out System.Byte[] cryptKey, out System.Byte[] iv) => throw null; - public static System.Security.Cryptography.SymmetricAlgorithm CreateSymmetricAlgorithm() => throw null; - public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, System.Byte[] cryptKey, System.Byte[] iv) => throw null; - public static string Decrypt(string encryptedBase64, System.Byte[] cryptKey, System.Byte[] iv) => throw null; - public static System.Byte[] Encrypt(System.Byte[] bytesToEncrypt, System.Byte[] cryptKey, System.Byte[] iv) => throw null; - public static string Encrypt(string text, System.Byte[] cryptKey, System.Byte[] iv) => throw null; - public const int KeySize = default; - public const int KeySizeBytes = default; -} - -// Generated from `ServiceStack.ApiCss` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ApiCss -{ - public ApiCss() => throw null; - public string Field { get => throw null; set => throw null; } - public string Fieldset { get => throw null; set => throw null; } - public string Form { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ApiFormat` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ApiFormat -{ - public ApiFormat() => throw null; - public bool AssumeUtc { get => throw null; set => throw null; } - public ServiceStack.FormatInfo Date { get => throw null; set => throw null; } - public string Locale { get => throw null; set => throw null; } - public ServiceStack.FormatInfo Number { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ApiResult` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ApiResult -{ - public static ServiceStack.ApiResult Create(TResponse response) => throw null; - public static ServiceStack.ApiResult CreateError(System.Exception ex) => throw null; - public static ServiceStack.ApiResult CreateError(ServiceStack.ResponseStatus errorStatus) => throw null; - public static ServiceStack.ApiResult CreateError(string message, string errorCode = default(string)) => throw null; - public static ServiceStack.ApiResult CreateError(System.Exception ex) => throw null; - public static ServiceStack.ApiResult CreateError(ServiceStack.ResponseStatus errorStatus) => throw null; - public static ServiceStack.ApiResult CreateError(string message, string errorCode = default(string)) => throw null; - public static ServiceStack.ApiResult CreateFieldError(string fieldName, string message, string errorCode = default(string)) => throw null; - public static ServiceStack.ApiResult CreateFieldError(string fieldName, string message, string errorCode = default(string)) => throw null; - public const string FieldErrorCode = default; -} - -// Generated from `ServiceStack.ApiResult<>` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ApiResult : ServiceStack.IHasErrorStatus -{ - public void AddFieldError(string fieldName, string message, string errorCode = default(string)) => throw null; - public ApiResult() => throw null; - public ApiResult(ServiceStack.ResponseStatus errorStatus) => throw null; - public ApiResult(TResponse response) => throw null; - public void ClearErrors() => throw null; - public bool Completed { get => throw null; } - public ServiceStack.ResponseStatus Error { get => throw null; set => throw null; } - public string ErrorMessage { get => throw null; } - public string ErrorSummary { get => throw null; } - public ServiceStack.ResponseError[] Errors { get => throw null; } - public bool Failed { get => throw null; } - public ServiceStack.ResponseError FieldError(string fieldName) => throw null; - public string FieldErrorMessage(string fieldName) => throw null; - public bool HasFieldError(string fieldName) => throw null; - public bool IsLoading { get => throw null; set => throw null; } - public TResponse Response { get => throw null; } - public void SetError(string errorMessage, string errorCode = default(string)) => throw null; - public string StackTrace { get => throw null; set => throw null; } - public bool Succeeded { get => throw null; } -} - -// Generated from `ServiceStack.ApiResultUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ApiResultUtils -{ - public static ServiceStack.ApiResult Api(this ServiceStack.IServiceClient client, ServiceStack.IReturnVoid request) => throw null; - public static ServiceStack.ApiResult Api(this ServiceStack.IServiceClient client, ServiceStack.IReturn request) => throw null; - public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturnVoid request) => throw null; - public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn request) => throw null; - public static void ThrowIfError(this ServiceStack.ApiResult api) => throw null; - public static ServiceStack.ApiResult ToApiResult(this System.Exception ex) => throw null; - public static ServiceStack.ApiResult ToApiResult(this System.Exception ex) => throw null; - public static ServiceStack.AuthenticateResponse ToAuthenticateResponse(this ServiceStack.RegisterResponse from) => throw null; -} - -// Generated from `ServiceStack.ApiUiInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ApiUiInfo : ServiceStack.IMeta -{ - public ApiUiInfo() => throw null; - public ServiceStack.ApiCss ExplorerCss { get => throw null; set => throw null; } - public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } - public ServiceStack.ApiCss LocodeCss { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AppInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AppInfo : ServiceStack.IMeta -{ - public AppInfo() => throw null; - public string BackgroundColor { get => throw null; set => throw null; } - public string BackgroundImageUrl { get => throw null; set => throw null; } - public string BaseUrl { get => throw null; set => throw null; } - public string BrandImageUrl { get => throw null; set => throw null; } - public string BrandUrl { get => throw null; set => throw null; } - public string IconUrl { get => throw null; set => throw null; } - public string JsTextCase { get => throw null; set => throw null; } - public string LinkColor { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string ServiceDescription { get => throw null; set => throw null; } - public string ServiceIconUrl { get => throw null; set => throw null; } - public string ServiceName { get => throw null; set => throw null; } - public string ServiceStackVersion { get => throw null; } - public string TextColor { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AppMetadata` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AppMetadata : ServiceStack.IMeta -{ - public ServiceStack.MetadataTypes Api { get => throw null; set => throw null; } - public ServiceStack.AppInfo App { get => throw null; set => throw null; } - public AppMetadata() => throw null; - public ServiceStack.AppMetadataCache Cache { get => throw null; set => throw null; } - public ServiceStack.ConfigInfo Config { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ContentTypeFormats { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary CustomPlugins { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary HttpHandlers { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.PluginInfo Plugins { get => throw null; set => throw null; } - public ServiceStack.UiInfo Ui { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AppMetadataCache` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AppMetadataCache -{ - public AppMetadataCache(System.Collections.Generic.Dictionary operationsMap, System.Collections.Generic.Dictionary typesMap) => throw null; - public System.Collections.Generic.Dictionary OperationsMap { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary TypesMap { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AppMetadataUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class AppMetadataUtils -{ - public static void EachOperation(this ServiceStack.AppMetadata app, System.Action configure) => throw null; - public static void EachOperation(this ServiceStack.AppMetadata app, System.Action configure, System.Predicate where) => throw null; - public static void EachProperty(this ServiceStack.MetadataType type, System.Func where, System.Action configure) => throw null; - public static void EachType(this ServiceStack.AppMetadata app, System.Action configure) => throw null; - public static void EachType(this ServiceStack.AppMetadata app, System.Action configure, System.Predicate where) => throw null; - public static System.Threading.Tasks.Task GetAppMetadataAsync(this string baseUrl) => throw null; - public static ServiceStack.AppMetadataCache GetCache(this ServiceStack.AppMetadata app) => throw null; - public static ServiceStack.MetadataOperationType GetOperation(this ServiceStack.AppMetadata app, string name) => throw null; - public static ServiceStack.MetadataType GetType(this ServiceStack.AppMetadata app, System.Type type) => throw null; - public static ServiceStack.MetadataType GetType(this ServiceStack.AppMetadata app, string name) => throw null; - public static ServiceStack.MetadataType GetType(this ServiceStack.AppMetadata app, string @namespace, string name) => throw null; - public static bool IsSystemType(this ServiceStack.MetadataPropertyType prop) => throw null; - public static ServiceStack.MetadataPropertyType Property(this ServiceStack.MetadataType type, string name) => throw null; - public static void Property(this ServiceStack.MetadataType type, string name, System.Action configure) => throw null; - public static void RemoveProperty(this ServiceStack.MetadataType type, System.Predicate where) => throw null; - public static void RemoveProperty(this ServiceStack.MetadataType type, string name) => throw null; - public static ServiceStack.MetadataPropertyType ReorderProperty(this ServiceStack.MetadataType type, string name, int index) => throw null; - public static ServiceStack.MetadataPropertyType ReorderProperty(this ServiceStack.MetadataType type, string name, string before = default(string), string after = default(string)) => throw null; - public static ServiceStack.MetadataPropertyType RequiredProperty(this ServiceStack.MetadataType type, string name) => throw null; - public static ServiceStack.FieldCss ToCss(this ServiceStack.FieldCssAttribute attr) => throw null; - public static ServiceStack.FormatInfo ToFormat(this ServiceStack.FormatAttribute attr) => throw null; - public static ServiceStack.FormatInfo ToFormat(this ServiceStack.Intl attr) => throw null; - public static ServiceStack.InputInfo ToInput(this ServiceStack.InputAttributeBase input, System.Action configure = default(System.Action)) => throw null; -} - -// Generated from `ServiceStack.AppTags` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AppTags -{ - public AppTags() => throw null; - public string Default { get => throw null; set => throw null; } - public string Other { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AssignRoles` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AssignRoles : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public AssignRoles() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public System.Collections.Generic.List Roles { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AssignRolesResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AssignRolesResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta -{ - public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } - public AssignRolesResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AsyncServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AsyncServiceClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion -{ - public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } - public AsyncServiceClient() => throw null; - public string BaseUri { get => throw null; set => throw null; } - public string BearerToken { get => throw null; set => throw null; } - public static int BufferSize; - public string ContentType { 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 bool DisableAutoCompression { get => throw null; set => throw null; } - public static bool DisableTimer { get => throw null; set => throw null; } - public void Dispose() => throw null; - public bool EmulateHttpViaPost { get => throw null; set => throw null; } - public bool EnableAutoRefreshToken { get => throw null; set => throw null; } - public ServiceStack.ExceptionFilterDelegate ExceptionFilter { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary GetCookieValues() => throw null; - public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } - public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } - public System.Net.Http.HttpClient HttpClient { get => throw null; set => throw null; } - public System.Text.StringBuilder HttpLog { get => throw null; set => throw null; } - public System.Action HttpLogFilter { get => throw null; set => throw null; } - public System.Action OnAuthenticationRequired { get => throw null; set => throw null; } - public ServiceStack.ProgressDelegate OnDownloadProgress { get => throw null; set => throw null; } - public ServiceStack.ProgressDelegate OnUploadProgress { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public string RefreshTokenUri { get => throw null; set => throw null; } - public string RequestCompressionType { get => throw null; set => throw null; } - public System.Action RequestFilter { get => throw null; set => throw null; } - public System.Action ResponseFilter { get => throw null; set => throw null; } - public ServiceStack.ResultsFilterDelegate ResultsFilter { get => throw null; set => throw null; } - public ServiceStack.ResultsFilterResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } - public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string SessionId { get => throw null; set => throw null; } - public void SetCredentials(string userName, string password) => throw null; - public bool ShareCookiesWithBrowser { get => throw null; set => throw null; } - public bool StoreCookies { get => throw null; set => throw null; } - public ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; set => throw null; } - public ServiceStack.Web.StreamSerializerDelegate StreamSerializer { get => throw null; set => throw null; } - public System.TimeSpan? Timeout { get => throw null; set => throw null; } - public string UserAgent { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AsyncTimer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AsyncTimer : ServiceStack.ITimer, System.IDisposable -{ - public AsyncTimer(System.Threading.Timer timer) => throw null; - public void Cancel() => throw null; - public void Dispose() => throw null; - public System.Threading.Timer Timer; -} - -// Generated from `ServiceStack.AuthInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AuthInfo : ServiceStack.IMeta -{ - public AuthInfo() => throw null; - public System.Collections.Generic.List AuthProviders { get => throw null; set => throw null; } - public bool? HasAuthRepository { get => throw null; set => throw null; } - public bool? HasAuthSecret { get => throw null; set => throw null; } - public string HtmlRedirect { get => throw null; set => throw null; } - public bool? IncludesOAuthTokens { get => throw null; set => throw null; } - public bool? IncludesRoles { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary> RoleLinks { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.Authenticate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class Authenticate : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public string AccessToken { get => throw null; set => throw null; } - public string AccessTokenSecret { get => throw null; set => throw null; } - public Authenticate() => throw null; - public Authenticate(string provider) => throw null; - public string ErrorView { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public bool? RememberMe { get => throw null; set => throw null; } - public string State { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - public string cnonce { get => throw null; set => throw null; } - public string nc { get => throw null; set => throw null; } - public string nonce { get => throw null; set => throw null; } - public string oauth_token { get => throw null; set => throw null; } - public string oauth_verifier { get => throw null; set => throw null; } - public string provider { get => throw null; set => throw null; } - public string qop { get => throw null; set => throw null; } - public string response { get => throw null; set => throw null; } - public string scope { get => throw null; set => throw null; } - public string uri { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AuthenticateResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AuthenticateResponse : ServiceStack.IHasBearerToken, ServiceStack.IHasRefreshToken, ServiceStack.IHasResponseStatus, ServiceStack.IHasSessionId, ServiceStack.IMeta -{ - public AuthenticateResponse() => throw null; - public string BearerToken { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public string ReferrerUrl { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Roles { get => throw null; set => throw null; } - public string SessionId { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AuthenticationException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AuthenticationException : System.Exception, ServiceStack.IHasStatusCode -{ - public AuthenticationException() => throw null; - public AuthenticationException(string message) => throw null; - public AuthenticationException(string message, System.Exception innerException) => throw null; - public int StatusCode { get => throw null; } -} - -// Generated from `ServiceStack.AuthenticationInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AuthenticationInfo -{ - public AuthenticationInfo(string authHeader) => throw null; - public override string ToString() => throw null; - public string cnonce { get => throw null; set => throw null; } - public string method { get => throw null; set => throw null; } - public int nc { get => throw null; set => throw null; } - public string nonce { get => throw null; set => throw null; } - public string opaque { get => throw null; set => throw null; } - public string qop { get => throw null; set => throw null; } - public string realm { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AutoQueryConvention` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AutoQueryConvention -{ - public AutoQueryConvention() => throw null; - public string Name { get => throw null; set => throw null; } - public string Types { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } - public string ValueType { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.AutoQueryInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class AutoQueryInfo : ServiceStack.IMeta -{ - public string AccessRole { get => throw null; set => throw null; } - public bool? Async { get => throw null; set => throw null; } - public AutoQueryInfo() => throw null; - public bool? AutoQueryViewer { get => throw null; set => throw null; } - public bool? CrudEvents { get => throw null; set => throw null; } - public bool? CrudEventsServices { get => throw null; set => throw null; } - public int? MaxLimit { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string NamedConnection { get => throw null; set => throw null; } - public bool? OrderByPrimaryKey { get => throw null; set => throw null; } - public bool? RawSqlFilters { get => throw null; set => throw null; } - public bool? UntypedQueries { get => throw null; set => throw null; } - public System.Collections.Generic.List ViewerConventions { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.BrotliCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class BrotliCompressor : ServiceStack.Caching.IStreamCompressor -{ - public BrotliCompressor() => throw null; - public System.Byte[] Compress(System.Byte[] buffer) => throw null; - public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; - public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; - public string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; - public System.IO.Stream Decompress(System.IO.Stream gzStream, bool leaveOpen = default(bool)) => throw null; - public System.Byte[] DecompressBytes(System.Byte[] zipBuffer) => throw null; - public string Encoding { get => throw null; } - public static ServiceStack.BrotliCompressor Instance { get => throw null; } -} - -// Generated from `ServiceStack.CachedServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class CachedServiceClient : ServiceStack.ICachedServiceClient, ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable -{ - public void AddHeader(string name, string value) => throw null; - public string BearerToken { get => throw null; set => throw null; } - public int CacheCount { get => throw null; } - public System.Int64 CacheHits { get => throw null; } - public CachedServiceClient(ServiceStack.ServiceClientBase client) => throw null; - public CachedServiceClient(ServiceStack.ServiceClientBase client, System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; - public System.Int64 CachesAdded { get => throw null; } - public System.Int64 CachesRemoved { get => throw null; } - public int CleanCachesWhenCountExceeds { get => throw null; set => throw null; } - public System.TimeSpan? ClearCachesOlderThan { get => throw null; set => throw null; } - public void ClearCookies() => throw null; - public System.TimeSpan? ClearExpiredCachesOlderThan { get => throw null; set => throw null; } - public void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; - public TResponse CustomMethod(string httpVerb, object requestDto) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Delete(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Delete(ServiceStack.IReturn request) => throw null; - public TResponse Delete(object request) => throw null; - public TResponse Delete(string relativeOrAbsoluteUrl) => throw null; - public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Dispose() => throw null; - public System.Int64 ErrorFallbackHits { get => throw null; } - public void Get(ServiceStack.IReturnVoid request) => throw null; - public TResponse Get(ServiceStack.IReturn requestDto) => throw null; - public TResponse Get(object requestDto) => throw null; - public TResponse Get(string relativeOrAbsoluteUrl) => throw null; - public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.Dictionary GetCookieValues() => throw null; - public System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; - public System.Int64 NotModifiedHits { get => throw null; } - public object OnExceptionFilter(System.Net.WebException webEx, System.Net.WebResponse webRes, string requestUri, System.Type responseType) => throw null; - public void Patch(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Patch(ServiceStack.IReturn requestDto) => throw null; - public TResponse Patch(object requestDto) => throw null; - public TResponse Patch(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Post(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Post(ServiceStack.IReturn requestDto) => throw null; - public TResponse Post(object requestDto) => throw null; - public TResponse Post(string relativeOrAbsoluteUrl, object request) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType, string fieldName = default(string)) => throw null; - public TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; - public TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; - public void Publish(object requestDto) => throw null; - public void PublishAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; - public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token) => throw null; - public void Put(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Put(ServiceStack.IReturn requestDto) => throw null; - public TResponse Put(object requestDto) => throw null; - public TResponse Put(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public int RemoveCachesOlderThan(System.TimeSpan age) => throw null; - public int RemoveExpiredCachesOlderThan(System.TimeSpan age) => throw null; - public TResponse Send(object request) => throw null; - public TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request) => throw null; - public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; - public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; - public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void SendOneWay(object requestDto) => throw null; - public void SendOneWay(string relativeOrAbsoluteUri, object requestDto) => throw null; - public string SessionId { get => throw null; set => throw null; } - public void SetCache(System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; - public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; - public void SetCredentials(string userName, string password) => throw null; - public int Version { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.CachedServiceClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class CachedServiceClientExtensions -{ - public static ServiceStack.IServiceClient WithCache(this ServiceStack.ServiceClientBase client) => throw null; - public static ServiceStack.IServiceClient WithCache(this ServiceStack.ServiceClientBase client, System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; -} - -// Generated from `ServiceStack.CancelRequest` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class CancelRequest : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public CancelRequest() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Tag { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.CancelRequestResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class CancelRequestResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta -{ - public CancelRequestResponse() => throw null; - public System.TimeSpan Elapsed { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public string Tag { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.CheckCrudEvents` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class CheckCrudEvents : ServiceStack.IReturn, ServiceStack.IReturn -{ - public string AuthSecret { get => throw null; set => throw null; } - public CheckCrudEvents() => throw null; - public System.Collections.Generic.List Ids { get => throw null; set => throw null; } - public string Model { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.CheckCrudEventsResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class CheckCrudEventsResponse : ServiceStack.IHasResponseStatus -{ - public CheckCrudEventsResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ClientConfig` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ClientConfig -{ - public static void ConfigureTls12() => throw null; - public static string DefaultEncodeDispositionFileName(string fileName) => throw null; - public static System.Func EncodeDispositionFileName { get => throw null; set => throw null; } - public static bool SkipEmptyArrays { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ClientDiagnosticUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ClientDiagnosticUtils -{ - public static void InitMessage(this System.Diagnostics.DiagnosticListener listener, ServiceStack.Messaging.IMessage msg) => throw null; -} - -// Generated from `ServiceStack.ClientDiagnostics` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ClientDiagnostics -{ - public static void WriteRequestAfter(this System.Diagnostics.DiagnosticListener listener, System.Guid operationId, System.Net.Http.HttpRequestMessage httpReq, object response, string operation = default(string)) => throw null; - public static System.Guid WriteRequestBefore(this System.Diagnostics.DiagnosticListener listener, System.Net.Http.HttpRequestMessage httpReq, object request, System.Type responseType, string operation = default(string)) => throw null; - public static void WriteRequestError(this System.Diagnostics.DiagnosticListener listener, System.Guid operationId, System.Net.Http.HttpRequestMessage httpReq, System.Exception ex, string operation = default(string)) => throw null; -} - -// Generated from `ServiceStack.ClientFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ClientFactory -{ - public static ServiceStack.IOneWayClient Create(string endpointUrl) => throw null; -} - -// Generated from `ServiceStack.ConfigInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ConfigInfo : ServiceStack.IMeta -{ - public ConfigInfo() => throw null; - public bool? DebugMode { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ContentFormat` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ContentFormat -{ - public static System.Collections.Generic.Dictionary ContentTypeAliases; - public static string GetContentFormat(ServiceStack.Format format) => throw null; - public static string GetContentFormat(string contentType) => throw null; - public static ServiceStack.RequestAttributes GetEndpointAttributes(string contentType) => throw null; - public static string GetRealContentType(string contentType) => throw null; - public static ServiceStack.RequestAttributes GetRequestAttribute(string httpMethod) => throw null; - public static bool IsBinary(this string contentType) => throw null; - public static bool MatchesContentType(this string contentType, string matchesContentType) => throw null; - public static string NormalizeContentType(string contentType) => throw null; - public static string ToContentFormat(this string contentType) => throw null; - public static string ToContentType(this ServiceStack.Format formats) => throw null; - public static ServiceStack.Feature ToFeature(this string contentType) => throw null; - public const string Utf8Suffix = default; -} - -// Generated from `ServiceStack.ConvertSessionToToken` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ConvertSessionToToken : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public ConvertSessionToToken() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public bool PreserveSession { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ConvertSessionToTokenResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ConvertSessionToTokenResponse : ServiceStack.IMeta -{ - public string AccessToken { get => throw null; set => throw null; } - public ConvertSessionToTokenResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.CrudEvent` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class CrudEvent : ServiceStack.IMeta -{ - public CrudEvent() => throw null; - public System.DateTime EventDate { get => throw null; set => throw null; } - public string EventType { get => throw null; set => throw null; } - public System.Int64 Id { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Model { get => throw null; set => throw null; } - public string ModelId { get => throw null; set => throw null; } - public int? RefId { get => throw null; set => throw null; } - public string RefIdStr { get => throw null; set => throw null; } - public string RemoteIp { get => throw null; set => throw null; } - public string RequestBody { get => throw null; set => throw null; } - public string RequestType { get => throw null; set => throw null; } - public System.Int64? RowsUpdated { get => throw null; set => throw null; } - public string Urn { get => throw null; set => throw null; } - public string UserAuthId { get => throw null; set => throw null; } - public string UserAuthName { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.CssUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class CssUtils -{ - // Generated from `ServiceStack.CssUtils+Bootstrap` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Bootstrap - { - public static string InputClass(ServiceStack.ResponseStatus status, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; - public static string InputClass(ServiceStack.ApiResult apiResult, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + public string Field { get => throw null; set => throw null; } + public FieldCss() => throw null; + public string Input { get => throw null; set => throw null; } + public string Label { get => throw null; set => throw null; } } - - // Generated from `ServiceStack.CssUtils+Tailwind` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Tailwind + // Generated from `ServiceStack.FileContent` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FileContent { - public static string InputClass(ServiceStack.ResponseStatus status, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; - public static string InputClass(ServiceStack.ApiResult apiResult, string fieldName, string valid = default(string), string invalid = default(string)) => throw null; + public System.Byte[] Body { get => throw null; set => throw null; } + public FileContent() => throw null; + public int Length { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } } - - public static string Active(bool condition) => throw null; - public static string ClassNames(params string[] classes) => throw null; - public static string Selected(bool condition) => throw null; -} - -// Generated from `ServiceStack.CsvServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class CsvServiceClient : ServiceStack.ServiceClientBase -{ - public override string ContentType { get => throw null; } - public CsvServiceClient() => throw null; - public CsvServiceClient(string baseUri) => throw null; - public CsvServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; - public override T DeserializeFromStream(System.IO.Stream stream) => throw null; - public override string Format { get => throw null; } - public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; - public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } -} - -// Generated from `ServiceStack.CustomPluginInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class CustomPluginInfo : ServiceStack.IMeta -{ - public string AccessRole { get => throw null; set => throw null; } - public CustomPluginInfo() => throw null; - public System.Collections.Generic.List Enabled { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.DeflateCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class DeflateCompressor : ServiceStack.Caching.IStreamCompressor -{ - public System.Byte[] Compress(System.Byte[] bytes) => throw null; - public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; - public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; - public string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; - public System.IO.Stream Decompress(System.IO.Stream zipBuffer, bool leaveOpen = default(bool)) => throw null; - public System.Byte[] DecompressBytes(System.Byte[] zipBuffer) => throw null; - public DeflateCompressor() => throw null; - public string Encoding { get => throw null; } - public static ServiceStack.DeflateCompressor Instance { get => throw null; } -} - -// Generated from `ServiceStack.DeleteFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class DeleteFileUpload : ServiceStack.IDelete, ServiceStack.IHasBearerToken, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public string BearerToken { get => throw null; set => throw null; } - public DeleteFileUpload() => throw null; - public string Name { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.DeleteFileUploadResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class DeleteFileUploadResponse -{ - public DeleteFileUploadResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public bool Result { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.DynamicRequest` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class DynamicRequest -{ - public DynamicRequest() => throw null; - public System.Collections.Generic.Dictionary Params { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.EncryptedMessage` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class EncryptedMessage : ServiceStack.IReturn, ServiceStack.IReturn -{ - public string EncryptedBody { get => throw null; set => throw null; } - public EncryptedMessage() => throw null; - public string EncryptedSymmetricKey { get => throw null; set => throw null; } - public string KeyId { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.EncryptedMessageResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class EncryptedMessageResponse -{ - public string EncryptedBody { get => throw null; set => throw null; } - public EncryptedMessageResponse() => throw null; -} - -// Generated from `ServiceStack.EncryptedServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class EncryptedServiceClient : ServiceStack.IEncryptedClient, ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IReplyClient, ServiceStack.IServiceGateway -{ - public string BearerToken { get => throw null; set => throw null; } - public ServiceStack.IJsonServiceClient Client { get => throw null; set => throw null; } - public ServiceStack.EncryptedMessage CreateEncryptedMessage(object request, string operationName, System.Byte[] cryptKey, System.Byte[] authKey, System.Byte[] iv, string verb = default(string)) => throw null; - public ServiceStack.WebServiceException DecryptedException(ServiceStack.WebServiceException ex, System.Byte[] cryptKey, System.Byte[] authKey) => throw null; - public EncryptedServiceClient(ServiceStack.IJsonServiceClient client, System.Security.Cryptography.RSAParameters publicKey) => throw null; - public EncryptedServiceClient(ServiceStack.IJsonServiceClient client, string publicKeyXml) => throw null; - public string KeyId { get => throw null; set => throw null; } - public System.Security.Cryptography.RSAParameters PublicKey { get => throw null; set => throw null; } - public void Publish(object request) => throw null; - public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; - public TResponse Send(object request) => throw null; - public TResponse Send(string httpMethod, ServiceStack.IReturn request) => throw null; - public TResponse Send(string httpMethod, object request) => throw null; - public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; - public string ServerPublicKeyXml { get => throw null; set => throw null; } - public string SessionId { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ErrorUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ErrorUtils -{ - public static ServiceStack.ResponseStatus AddFieldError(this ServiceStack.ResponseStatus status, string fieldName, string errorMessage, string errorCode = default(string)) => throw null; - public static ServiceStack.ResponseStatus AsResponseStatus(this System.Exception ex) => throw null; - public static ServiceStack.ResponseStatus CreateError(System.Exception ex) => throw null; - public static ServiceStack.ResponseStatus CreateError(string message, string errorCode = default(string)) => throw null; - public static ServiceStack.ResponseStatus CreateFieldError(string fieldName, string errorMessage, string errorCode = default(string)) => throw null; - public static ServiceStack.ResponseError FieldError(this ServiceStack.ResponseStatus status, string fieldName) => throw null; - public const string FieldErrorCode = default; - public static string FieldErrorMessage(this ServiceStack.ResponseStatus status, string fieldName) => throw null; - public static bool HasErrorField(this ServiceStack.ResponseStatus status, string fieldName) => throw null; - public static bool IsError(this ServiceStack.ResponseStatus status) => throw null; - public static bool IsSuccess(this ServiceStack.ResponseStatus status) => throw null; - public static bool ShowSummary(this ServiceStack.ResponseStatus status, params string[] exceptFields) => throw null; - public static string SummaryMessage(this ServiceStack.ResponseStatus status, params string[] exceptFields) => throw null; -} - -// Generated from `ServiceStack.ExceptionFilterDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate object ExceptionFilterDelegate(System.Net.WebException webEx, System.Net.WebResponse webResponse, string requestUri, System.Type responseType); - -// Generated from `ServiceStack.ExceptionFilterHttpDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate object ExceptionFilterHttpDelegate(System.Net.Http.HttpResponseMessage webResponse, string requestUri, System.Type responseType); - -// Generated from `ServiceStack.ExplorerUi` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ExplorerUi -{ - public ServiceStack.ApiCss Css { get => throw null; set => throw null; } - public ExplorerUi() => throw null; - public ServiceStack.AppTags Tags { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.FieldCss` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class FieldCss -{ - public string Field { get => throw null; set => throw null; } - public FieldCss() => throw null; - public string Input { get => throw null; set => throw null; } - public string Label { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.FileContent` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class FileContent -{ - public System.Byte[] Body { get => throw null; set => throw null; } - public FileContent() => throw null; - public int Length { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.FilesUploadInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class FilesUploadInfo : ServiceStack.IMeta -{ - public string BasePath { get => throw null; set => throw null; } - public FilesUploadInfo() => throw null; - public System.Collections.Generic.List Locations { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.FilesUploadLocation` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class FilesUploadLocation -{ - public System.Collections.Generic.HashSet AllowExtensions { get => throw null; set => throw null; } - public string AllowOperations { get => throw null; set => throw null; } - public FilesUploadLocation() => throw null; - public System.Int64? MaxFileBytes { get => throw null; set => throw null; } - public int? MaxFileCount { get => throw null; set => throw null; } - public System.Int64? MinFileBytes { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string ReadAccessRole { get => throw null; set => throw null; } - public string WriteAccessRole { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.FormatInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class FormatInfo -{ - public FormatInfo() => throw null; - public string Locale { get => throw null; set => throw null; } - public string Method { get => throw null; set => throw null; } - public string Options { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GZipCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GZipCompressor : ServiceStack.Caching.IStreamCompressor -{ - public System.Byte[] Compress(System.Byte[] buffer) => throw null; - public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; - public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; - public string Decompress(System.Byte[] gzBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; - public System.IO.Stream Decompress(System.IO.Stream gzStream, bool leaveOpen = default(bool)) => throw null; - public System.Byte[] DecompressBytes(System.Byte[] gzBuffer) => throw null; - public string Encoding { get => throw null; } - public GZipCompressor() => throw null; - public static ServiceStack.GZipCompressor Instance { get => throw null; } -} - -// Generated from `ServiceStack.GetAccessToken` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetAccessToken : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public GetAccessToken() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetAccessTokenResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetAccessTokenResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta -{ - public string AccessToken { get => throw null; set => throw null; } - public GetAccessTokenResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetApiKeys` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetApiKeys : ServiceStack.IGet, ServiceStack.IMeta, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public string Environment { get => throw null; set => throw null; } - public GetApiKeys() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetApiKeysResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetApiKeysResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta -{ - public GetApiKeysResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetCrudEvents` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetCrudEvents : ServiceStack.QueryDb -{ - public string AuthSecret { get => throw null; set => throw null; } - public GetCrudEvents() => throw null; - public string Model { get => throw null; set => throw null; } - public string ModelId { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetEventSubscribers` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetEventSubscribers : ServiceStack.IGet, ServiceStack.IReturn, ServiceStack.IReturn>>, ServiceStack.IVerb -{ - public string[] Channels { get => throw null; set => throw null; } - public GetEventSubscribers() => throw null; -} - -// Generated from `ServiceStack.GetFile` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetFile : ServiceStack.IGet, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public GetFile() => throw null; - public string Path { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetFileUpload : ServiceStack.IGet, ServiceStack.IHasBearerToken, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public bool? Attachment { get => throw null; set => throw null; } - public string BearerToken { get => throw null; set => throw null; } - public GetFileUpload() => throw null; - public string Name { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetNavItems` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetNavItems : ServiceStack.IReturn, ServiceStack.IReturn -{ - public GetNavItems() => throw null; - public string Name { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetNavItemsResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetNavItemsResponse : ServiceStack.IMeta -{ - public string BaseUrl { get => throw null; set => throw null; } - public GetNavItemsResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary> NavItemsMap { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetPublicKey` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetPublicKey : ServiceStack.IReturn, ServiceStack.IReturn -{ - public GetPublicKey() => throw null; -} - -// Generated from `ServiceStack.GetValidationRules` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetValidationRules : ServiceStack.IReturn, ServiceStack.IReturn -{ - public string AuthSecret { get => throw null; set => throw null; } - public GetValidationRules() => throw null; - public string Type { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.GetValidationRulesResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class GetValidationRulesResponse -{ - public GetValidationRulesResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.HashUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class HashUtils -{ - public static System.Security.Cryptography.HashAlgorithm GetHashAlgorithm(string hashAlgorithm) => throw null; -} - -// Generated from `ServiceStack.HmacUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class HmacUtils -{ - public static System.Byte[] Authenticate(System.Byte[] encryptedBytes, System.Byte[] authKey, System.Byte[] iv) => throw null; - public static System.Security.Cryptography.HMAC CreateHashAlgorithm(System.Byte[] authKey) => throw null; - public static System.Byte[] DecryptAuthenticated(System.Byte[] authEncryptedBytes, System.Byte[] cryptKey) => throw null; - public const int KeySize = default; - public const int KeySizeBytes = default; - public static bool Verify(System.Byte[] authEncryptedBytes, System.Byte[] authKey) => throw null; -} - -// Generated from `ServiceStack.HttpCacheEntry` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class HttpCacheEntry -{ - public System.TimeSpan? Age { get => throw null; set => throw null; } - public bool CanUseCacheOnError() => throw null; - public System.Int64? ContentLength { get => throw null; set => throw null; } - public System.DateTime Created { get => throw null; set => throw null; } - public string ETag { get => throw null; set => throw null; } - public System.DateTime Expires { get => throw null; set => throw null; } - public bool HasExpired() => throw null; - public HttpCacheEntry(object response) => throw null; - public System.DateTime? LastModified { get => throw null; set => throw null; } - public System.TimeSpan MaxAge { 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 object Response { get => throw null; set => throw null; } - public void SetMaxAge(System.TimeSpan maxAge) => throw null; - public bool ShouldRevalidate() => throw null; -} - -// Generated from `ServiceStack.HttpClientDiagnosticEvent` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class HttpClientDiagnosticEvent : ServiceStack.DiagnosticEvent -{ - public HttpClientDiagnosticEvent() => throw null; - public System.Net.Http.HttpRequestMessage HttpRequest { get => throw null; set => throw null; } - public System.Net.Http.HttpResponseMessage HttpResponse { get => throw null; set => throw null; } - public object Request { get => throw null; set => throw null; } - public object Response { get => throw null; set => throw null; } - public System.Type ResponseType { get => throw null; set => throw null; } - public override string Source { get => throw null; } -} - -// Generated from `ServiceStack.HttpExt` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class HttpExt -{ - public static string GetDispositionFileName(string fileName) => throw null; - public static bool HasNonAscii(string s) => throw null; -} - -// Generated from `ServiceStack.ICachedServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public interface ICachedServiceClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable -{ - int CacheCount { get; } - System.Int64 CacheHits { get; } - System.Int64 CachesAdded { get; } - System.Int64 CachesRemoved { get; } - System.Int64 ErrorFallbackHits { get; } - System.Int64 NotModifiedHits { get; } - int RemoveCachesOlderThan(System.TimeSpan age); - int RemoveExpiredCachesOlderThan(System.TimeSpan age); - void SetCache(System.Collections.Concurrent.ConcurrentDictionary cache); -} - -// Generated from `ServiceStack.ICachedServiceClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ICachedServiceClientExtensions -{ - public static void ClearCache(this ServiceStack.ICachedServiceClient client) => throw null; - public static System.Collections.Generic.Dictionary GetStats(this ServiceStack.ICachedServiceClient client) => throw null; -} - -// Generated from `ServiceStack.IHasCookieContainer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public interface IHasCookieContainer -{ - System.Net.CookieContainer CookieContainer { get; } -} - -// Generated from `ServiceStack.IHasJsonApiClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public interface IHasJsonApiClient -{ - ServiceStack.JsonApiClient Client { get; } -} - -// Generated from `ServiceStack.IServiceClientMeta` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public interface IServiceClientMeta -{ - bool AlwaysSendBasicAuthHeader { get; } - string AsyncOneWayBaseUri { get; } - string BaseUri { get; set; } - string BearerToken { get; set; } - string Format { get; } - string Password { get; } - string RefreshToken { get; set; } - string RefreshTokenUri { get; set; } - string ResolveTypedUrl(string httpMethod, object requestDto); - string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl); - string SessionId { get; } - string SyncReplyBaseUri { get; } - string UserName { get; } - int Version { get; } -} - -// Generated from `ServiceStack.ITimer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public interface ITimer : System.IDisposable -{ - void Cancel(); -} - -// Generated from `ServiceStack.ImageInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ImageInfo -{ - public string Alt { get => throw null; set => throw null; } - public string Cls { get => throw null; set => throw null; } - public ImageInfo() => throw null; - public string Svg { get => throw null; set => throw null; } - public string Uri { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.InputInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class InputInfo : ServiceStack.IMeta -{ - public string Accept { get => throw null; set => throw null; } - public System.Collections.Generic.KeyValuePair[] AllowableEntries { get => throw null; set => throw null; } - public string[] AllowableValues { get => throw null; set => throw null; } - public string Autocomplete { get => throw null; set => throw null; } - public string Autofocus { get => throw null; set => throw null; } - public string Capture { get => throw null; set => throw null; } - public ServiceStack.FieldCss Css { get => throw null; set => throw null; } - public bool? Disabled { get => throw null; set => throw null; } - public string Help { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public bool? Ignore { get => throw null; set => throw null; } - public InputInfo() => throw null; - public InputInfo(string id) => throw null; - public InputInfo(string id, string type) => throw null; - public string Label { get => throw null; set => throw null; } - public string Max { get => throw null; set => throw null; } - public int? MaxLength { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Min { get => throw null; set => throw null; } - public int? MinLength { get => throw null; set => throw null; } - public bool? Multiple { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string Options { get => throw null; set => throw null; } - public string Pattern { get => throw null; set => throw null; } - public string Placeholder { get => throw null; set => throw null; } - public bool? ReadOnly { get => throw null; set => throw null; } - public bool? Required { get => throw null; set => throw null; } - public string Size { get => throw null; set => throw null; } - public int? Step { 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 Value { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.JsonApiClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class JsonApiClient : ServiceStack.IHasBearerToken, ServiceStack.IHasCookieContainer, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IJsonServiceClient, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientMeta, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable -{ - public void AddHeader(string name, string value) => throw null; - public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } - public ServiceStack.ApiResult ApiForm(ServiceStack.IReturn request, System.Net.Http.MultipartFormDataContent body) => throw null; - public ServiceStack.ApiResult ApiForm(string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request) => throw null; - public System.Threading.Tasks.Task> ApiFormAsync(ServiceStack.IReturn request, System.Net.Http.MultipartFormDataContent body, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> ApiFormAsync(string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string AsyncOneWayBaseUri { get => throw null; set => throw null; } - public string BasePath { get => throw null; set => throw null; } - public string BaseUri { get => throw null; set => throw null; } - public string BearerToken { get => throw null; set => throw null; } - public void CancelAsync() => throw null; - public void ClearCookies() => throw null; - public string ContentType; - public System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } - public System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; - public TResponse CustomMethod(string httpVerb, object requestDto) => throw null; - public TResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object request) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string DefaultBasePath { get => throw null; set => throw null; } - public const string DefaultHttpMethod = default; - public static string DefaultUserAgent; - public void Delete(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Delete(ServiceStack.IReturn requestDto) => throw null; - public TResponse Delete(object requestDto) => throw null; - public TResponse Delete(string relativeOrAbsoluteUrl) => throw null; - public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto) => throw null; - public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task DeleteAsync(object requestDto) => throw null; - public System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token) => throw null; - public void Dispose() => throw null; - public bool EnableAutoRefreshToken { get => throw null; set => throw null; } - public ServiceStack.ExceptionFilterHttpDelegate ExceptionFilter { get => throw null; set => throw null; } - public string Format { get => throw null; set => throw null; } - public void Get(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Get(ServiceStack.IReturn requestDto) => throw null; - public TResponse Get(object requestDto) => throw null; - public TResponse Get(string relativeOrAbsoluteUrl) => throw null; - public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto) => throw null; - public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task GetAsync(object requestDto) => throw null; - public System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl) => throw null; - public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.Dictionary GetCookieValues() => throw null; - public System.Net.Http.HttpClient GetHttpClient() => throw null; - public string GetHttpMethod(object request) => throw null; - public virtual System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; - public static System.Byte[] GetResponseBytes(object response) => throw null; - public static System.Func GlobalHttpMessageHandlerFactory { get => throw null; set => throw null; } - public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } - public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } - public System.Net.Http.HttpClient HttpClient { get => throw null; set => throw null; } - public System.Net.Http.HttpMessageHandler HttpMessageHandler { get => throw null; set => throw null; } - public JsonApiClient(System.Net.Http.HttpClient httpClient) => throw null; - public JsonApiClient(string baseUri) => throw null; - public string Password { get => throw null; set => throw null; } - public void Patch(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Patch(ServiceStack.IReturn requestDto) => throw null; - public TResponse Patch(object requestDto) => throw null; - public TResponse Patch(string relativeOrAbsoluteUrl, object request) => throw null; - public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto) => throw null; - public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PatchAsync(object requestDto) => throw null; - public System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request) => throw null; - public System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token) => throw null; - public void Post(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Post(ServiceStack.IReturn requestDto) => throw null; - public TResponse Post(object requestDto) => throw null; - public TResponse Post(string relativeOrAbsoluteUrl, object request) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PostAsync(object requestDto) => throw null; - public System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request) => throw null; - public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token) => throw null; - public virtual TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType = default(string), string fieldName = default(string)) => throw null; - public virtual System.Threading.Tasks.Task PostFileAsync(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType = default(string), string fieldName = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public System.Threading.Tasks.Task PostFileWithRequestAsync(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PostFileWithRequestAsync(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; - public TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; - public virtual TResponse PostFilesWithRequest(string requestUri, object request, ServiceStack.UploadFile[] files) => throw null; - public System.Threading.Tasks.Task PostFilesWithRequestAsync(object request, System.Collections.Generic.IEnumerable files, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PostFilesWithRequestAsync(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PostFilesWithRequestAsync(string requestUri, object request, ServiceStack.UploadFile[] files, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void Publish(object request) => throw null; - public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; - public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; - public virtual System.Threading.Tasks.Task PublishAsync(object request, System.Threading.CancellationToken token) => throw null; - public void Put(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Put(ServiceStack.IReturn requestDto) => throw null; - public TResponse Put(object requestDto) => throw null; - public TResponse Put(string relativeOrAbsoluteUrl, object request) => throw null; - public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto) => throw null; - public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PutAsync(object requestDto) => throw null; - public System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request) => throw null; - public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token) => throw null; - public virtual TResponse PutFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType = default(string), string fieldName = default(string)) => throw null; - public string RefreshToken { get => throw null; set => throw null; } - public string RefreshTokenUri { get => throw null; set => throw null; } - public string RequestCompressionType { get => throw null; set => throw null; } - public System.Action RequestFilter { get => throw null; set => throw null; } - public virtual string ResolveTypedUrl(string httpMethod, object requestDto) => throw null; - public virtual string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl) => throw null; - public System.Action ResponseFilter { get => throw null; set => throw null; } - protected T ResultFilter(T response, System.Net.Http.HttpResponseMessage httpRes, string httpMethod, string requestUri, object request) where T : class => throw null; - public ServiceStack.ResultsFilterHttpDelegate ResultsFilter { get => throw null; set => throw null; } - public ServiceStack.ResultsFilterHttpResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } - public virtual TResponse Send(object request) => throw null; - public TResponse Send(string httpMethod, string absoluteUrl, object request) => throw null; - public TResponse Send(string httpMethod, string absoluteUrl, object request, object dto) => throw null; - public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; - public virtual System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; - public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public virtual System.Threading.Tasks.Task SendAsync(object request) => throw null; - public virtual System.Threading.Tasks.Task SendAsync(object request, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, object dto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public TResponse SendForm(string httpMethod, string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request) => throw null; - public System.Threading.Tasks.Task SendFormAsync(string httpMethod, string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void SendOneWay(object request) => throw null; - public void SendOneWay(string relativeOrAbsoluteUrl, object request) => throw null; - public string SessionId { get => throw null; set => throw null; } - public ServiceStack.JsonApiClient SetBaseUri(string baseUri) => throw null; - public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; - public void SetCredentials(string userName, string password) => throw null; - public string SyncReplyBaseUri { get => throw null; set => throw null; } - public void ThrowWebServiceException(System.Net.Http.HttpResponseMessage httpRes, object request, string requestUri, object response) => throw null; - public virtual string ToAbsoluteUrl(string relativeOrAbsoluteUrl) => throw null; - public static ServiceStack.WebServiceException ToWebServiceException(System.Net.Http.HttpResponseMessage httpRes, object response, System.Func parseDtoFn) => throw null; - public ServiceStack.TypedUrlResolverDelegate TypedUrlResolver { get => throw null; set => throw null; } - public ServiceStack.UrlResolverDelegate UrlResolver { get => throw null; set => throw null; } - public string UseBasePath { set => throw null; } - public bool UseCookies { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.JsonApiClientUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class JsonApiClientUtils -{ - public static void AddApiKeyAuth(this System.Net.Http.HttpRequestMessage request, string apiKey) => throw null; - public static void AddBasicAuth(this System.Net.Http.HttpRequestMessage request, string userName, string password) => throw null; - public static void AddBearerToken(this System.Net.Http.HttpRequestMessage request, string bearerToken) => throw null; - public static System.Net.Http.MultipartFormDataContent AddCsvParam(this System.Net.Http.MultipartFormDataContent content, string key, T value) => throw null; - public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, System.IO.FileInfo file, string mimeType = default(string)) => throw null; - public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, ServiceStack.IO.IVirtualFile file, string mimeType = default(string)) => throw null; - public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, string fileName, System.ReadOnlyMemory fileContents, string mimeType = default(string)) => throw null; - public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, string fileName, System.IO.Stream fileContents, string mimeType = default(string)) => throw null; - public static System.Threading.Tasks.Task AddFileAsync(this System.Net.Http.MultipartFormDataContent content, string fieldName, System.IO.FileInfo file, string mimeType = default(string)) => throw null; - public static System.Net.Http.HttpContent AddFileInfo(this System.Net.Http.HttpContent content, string fieldName, string fileName, string mimeType = default(string)) => throw null; - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddJsonApiClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string baseUrl) => throw null; - public static System.Net.Http.MultipartFormDataContent AddJsonParam(this System.Net.Http.MultipartFormDataContent content, string key, T value) => throw null; - public static System.Net.Http.MultipartFormDataContent AddJsvParam(this System.Net.Http.MultipartFormDataContent content, string key, T value) => throw null; - public static System.Net.Http.MultipartFormDataContent AddParam(this System.Net.Http.MultipartFormDataContent content, string key, object value) => throw null; - public static System.Net.Http.MultipartFormDataContent AddParam(this System.Net.Http.MultipartFormDataContent content, string key, string value) => throw null; - public static System.Net.Http.MultipartFormDataContent AddParams(this System.Net.Http.MultipartFormDataContent content, System.Collections.Generic.Dictionary map) => throw null; - public static System.Net.Http.MultipartFormDataContent AddParams(this System.Net.Http.MultipartFormDataContent content, System.Collections.IDictionary map) => throw null; - public static System.Net.Http.MultipartFormDataContent AddParams(this System.Net.Http.MultipartFormDataContent content, T dto) => throw null; - public static System.Threading.Tasks.Task> ApiAppMetadataAsync(this ServiceStack.IHasJsonApiClient instance, bool reload = default(bool)) => throw null; - public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturnVoid request) => throw null; - public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturn request) => throw null; - public static System.Threading.Tasks.Task> ApiCacheAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturn requestDto) => throw null; - public static string GetContentType(this System.Net.Http.HttpResponseMessage httpRes) => throw null; - public static System.Byte[] ReadAsByteArray(this System.Net.Http.HttpContent content) => throw null; - public static System.ReadOnlyMemory ReadAsMemoryBytes(this System.Net.Http.HttpContent content) => throw null; - public static string ReadAsString(this System.Net.Http.HttpContent content) => throw null; - public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturn request) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this System.Net.Http.Headers.HttpResponseHeaders headers) => throw null; - public static System.Net.Http.HttpContent ToHttpContent(this ServiceStack.IO.IVirtualFile file) => throw null; - public static System.Net.WebHeaderCollection ToWebHeaderCollection(this System.Net.Http.Headers.HttpResponseHeaders headers) => throw null; -} - -// Generated from `ServiceStack.JsonServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class JsonServiceClient : ServiceStack.ServiceClientBase, ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IJsonServiceClient, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable -{ - public override string ContentType { get => throw null; } - public override T DeserializeFromStream(System.IO.Stream stream) => throw null; - public override string Format { get => throw null; } - public JsonServiceClient() => throw null; - public JsonServiceClient(string baseUri) => throw null; - public JsonServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; - public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; - public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } -} - -// Generated from `ServiceStack.JsvServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class JsvServiceClient : ServiceStack.ServiceClientBase -{ - public override string ContentType { get => throw null; } - public override T DeserializeFromStream(System.IO.Stream stream) => throw null; - public override string Format { get => throw null; } - public JsvServiceClient() => throw null; - public JsvServiceClient(string baseUri) => throw null; - public JsvServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; - public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; - public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } -} - -// Generated from `ServiceStack.LinkInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class LinkInfo -{ - public string Hide { get => throw null; set => throw null; } - public string Href { get => throw null; set => throw null; } - public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public string Label { get => throw null; set => throw null; } - public LinkInfo() => throw null; - public string Show { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.LocodeUi` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class LocodeUi -{ - public ServiceStack.ApiCss Css { get => throw null; set => throw null; } - public LocodeUi() => throw null; - public int MaxFieldLength { get => throw null; set => throw null; } - public int MaxNestedFieldLength { get => throw null; set => throw null; } - public int MaxNestedFields { get => throw null; set => throw null; } - public ServiceStack.AppTags Tags { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MediaRule` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MediaRule : ServiceStack.IMeta -{ - public string[] ApplyTo { get => throw null; set => throw null; } - public MediaRule() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Rule { get => throw null; set => throw null; } - public string Size { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MessageExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class MessageExtensions -{ - public static ServiceStack.Messaging.IMessageProducer CreateMessageProducer(this ServiceStack.Messaging.IMessageService mqServer) => throw null; - public static ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient(this ServiceStack.Messaging.IMessageService mqServer) => throw null; - public static System.Byte[] ToBytes(this ServiceStack.Messaging.IMessage message) => throw null; - public static System.Byte[] ToBytes(this ServiceStack.Messaging.IMessage message) => throw null; - public static string ToDlqQueueName(this ServiceStack.Messaging.IMessage message) => throw null; - public static string ToInQueueName(this ServiceStack.Messaging.IMessage message) => throw null; - public static string ToInQueueName(this ServiceStack.Messaging.IMessage message) => throw null; - public static ServiceStack.Messaging.IMessage ToMessage(this System.Byte[] bytes, System.Type ofType) => throw null; - public static ServiceStack.Messaging.Message ToMessage(this System.Byte[] bytes) => throw null; - public static string ToString(System.Byte[] bytes) => throw null; -} - -// Generated from `ServiceStack.MetaAuthProvider` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetaAuthProvider : ServiceStack.IMeta -{ - public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } - public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } - public string Label { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public MetaAuthProvider() => throw null; - public string Name { get => throw null; set => throw null; } - public ServiceStack.NavItem NavItem { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataApp` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataApp : ServiceStack.IReturn, ServiceStack.IReturn -{ - public System.Collections.Generic.List IncludeTypes { get => throw null; set => throw null; } - public MetadataApp() => throw null; - public string View { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataAttribute` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataAttribute -{ - public System.Collections.Generic.List Args { get => throw null; set => throw null; } - public System.Attribute Attribute { get => throw null; set => throw null; } - public System.Collections.Generic.List ConstructorArgs { get => throw null; set => throw null; } - public MetadataAttribute() => throw null; - public string Name { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataDataContract` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataDataContract -{ - public MetadataDataContract() => throw null; - public string Name { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataDataMember` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataDataMember -{ - public bool? EmitDefaultValue { get => throw null; set => throw null; } - public bool? IsRequired { get => throw null; set => throw null; } - public MetadataDataMember() => throw null; - public string Name { get => throw null; set => throw null; } - public int? Order { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataOperationType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataOperationType -{ - public System.Collections.Generic.List Actions { get => throw null; set => throw null; } - public ServiceStack.MetadataTypeName DataModel { get => throw null; set => throw null; } - public MetadataOperationType() => throw null; - public string Method { get => throw null; set => throw null; } - public ServiceStack.MetadataType Request { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiresAnyPermission { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiresAnyRole { get => throw null; set => throw null; } - public bool? RequiresAuth { get => throw null; set => throw null; } - public ServiceStack.MetadataType Response { get => throw null; set => throw null; } - public ServiceStack.MetadataTypeName ReturnType { get => throw null; set => throw null; } - public bool? ReturnsVoid { get => throw null; set => throw null; } - public System.Collections.Generic.List Routes { get => throw null; set => throw null; } - public System.Collections.Generic.List Tags { get => throw null; set => throw null; } - public ServiceStack.ApiUiInfo Ui { get => throw null; set => throw null; } - public ServiceStack.MetadataTypeName ViewModel { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataPropertyType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataPropertyType -{ - public int? AllowableMax { get => throw null; set => throw null; } - public int? AllowableMin { get => throw null; set => throw null; } - public string[] AllowableValues { get => throw null; set => throw null; } - public System.Collections.Generic.List Attributes { get => throw null; set => throw null; } - public ServiceStack.MetadataDataMember DataMember { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public string DisplayType { get => throw null; set => throw null; } - public ServiceStack.FormatInfo Format { get => throw null; set => throw null; } - public string[] GenericArgs { get => throw null; set => throw null; } - public ServiceStack.InputInfo Input { get => throw null; set => throw null; } - public bool? IsEnum { get => throw null; set => throw null; } - public bool? IsPrimaryKey { get => throw null; set => throw null; } - public bool? IsRequired { get => throw null; set => throw null; } - public bool? IsValueType { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public MetadataPropertyType() => throw null; - public string Name { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public string ParamType { get => throw null; set => throw null; } - public System.Reflection.PropertyInfo PropertyInfo { get => throw null; set => throw null; } - public System.Type PropertyType { get => throw null; set => throw null; } - public bool? ReadOnly { get => throw null; set => throw null; } - public ServiceStack.RefInfo Ref { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataRoute` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataRoute -{ - public MetadataRoute() => throw null; - public string Notes { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public ServiceStack.RouteAttribute RouteAttribute { get => throw null; set => throw null; } - public string Summary { get => throw null; set => throw null; } - public string Verbs { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataType : ServiceStack.IMeta -{ - public System.Collections.Generic.List Attributes { get => throw null; set => throw null; } - public ServiceStack.MetadataDataContract DataContract { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public string DisplayType { get => throw null; set => throw null; } - public System.Collections.Generic.List EnumDescriptions { get => throw null; set => throw null; } - public System.Collections.Generic.List EnumMemberValues { get => throw null; set => throw null; } - public System.Collections.Generic.List EnumNames { get => throw null; set => throw null; } - public System.Collections.Generic.List EnumValues { get => throw null; set => throw null; } - protected bool Equals(ServiceStack.MetadataType other) => throw null; - public override bool Equals(object obj) => throw null; - public string[] GenericArgs { get => throw null; set => throw null; } - public string GetFullName() => throw null; - public override int GetHashCode() => throw null; - public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } - public ServiceStack.MetadataTypeName[] Implements { get => throw null; set => throw null; } - public ServiceStack.MetadataTypeName Inherits { get => throw null; set => throw null; } - public System.Collections.Generic.List InnerTypes { get => throw null; set => throw null; } - public bool? IsAbstract { get => throw null; set => throw null; } - public bool IsClass { get => throw null; } - public bool? IsEnum { get => throw null; set => throw null; } - public bool? IsEnumInt { get => throw null; set => throw null; } - public bool? IsInterface { get => throw null; set => throw null; } - public bool? IsNested { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public MetadataType() => throw null; - public string Name { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public string Notes { get => throw null; set => throw null; } - public System.Collections.Generic.List Properties { get => throw null; set => throw null; } - public ServiceStack.MetadataOperationType RequestType { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataTypeExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class MetadataTypeExtensions -{ - public static System.Collections.Generic.List GetOperationsByTags(this ServiceStack.MetadataTypes types, string[] tags) => throw null; - public static System.Collections.Generic.List GetRoutes(this System.Collections.Generic.List operations, ServiceStack.MetadataType type) => throw null; - public static System.Collections.Generic.List GetRoutes(this System.Collections.Generic.List operations, string typeName) => throw null; - public static bool ImplementsAny(this ServiceStack.MetadataType type, System.Collections.Generic.HashSet typeNames) => throw null; - public static bool ImplementsAny(this ServiceStack.MetadataType type, params string[] typeNames) => throw null; - public static bool InheritsAny(this ServiceStack.MetadataType type, System.Collections.Generic.HashSet typeNames) => throw null; - public static bool InheritsAny(this ServiceStack.MetadataType type, params string[] typeNames) => throw null; - public static bool IsSystemOrServiceStackType(this ServiceStack.MetadataTypeName metaRef) => throw null; - public static bool ReferencesAny(this ServiceStack.MetadataOperationType op, params string[] typeNames) => throw null; - public static string ToScriptSignature(this ServiceStack.ScriptMethodType method) => throw null; -} - -// Generated from `ServiceStack.MetadataTypeName` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataTypeName -{ - public string[] GenericArgs { get => throw null; set => throw null; } - public MetadataTypeName() => throw null; - public string Name { 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; } -} - -// Generated from `ServiceStack.MetadataTypes` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataTypes -{ - public ServiceStack.MetadataTypesConfig Config { get => throw null; set => throw null; } - public MetadataTypes() => throw null; - public System.Collections.Generic.List Namespaces { get => throw null; set => throw null; } - public System.Collections.Generic.List Operations { get => throw null; set => throw null; } - public System.Collections.Generic.List Types { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.MetadataTypesConfig` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class MetadataTypesConfig -{ - public bool AddDataContractAttributes { get => throw null; set => throw null; } - public string AddDefaultXmlNamespace { get => throw null; set => throw null; } - public bool AddDescriptionAsComments { get => throw null; set => throw null; } - public bool AddGeneratedCodeAttributes { get => throw null; set => throw null; } - public int? AddImplicitVersion { get => throw null; set => throw null; } - public bool AddIndexesToDataMembers { get => throw null; set => throw null; } - public bool AddModelExtensions { get => throw null; set => throw null; } - public System.Collections.Generic.List AddNamespaces { get => throw null; set => throw null; } - public bool AddPropertyAccessors { get => throw null; set => throw null; } - public bool AddResponseStatus { get => throw null; set => throw null; } - public bool AddReturnMarker { get => throw null; set => throw null; } - public bool AddServiceStackTypes { get => throw null; set => throw null; } - public string BaseClass { get => throw null; set => throw null; } - public string BaseUrl { get => throw null; set => throw null; } - public string DataClass { get => throw null; set => throw null; } - public string DataClassJson { get => throw null; set => throw null; } - public System.Collections.Generic.List DefaultImports { get => throw null; set => throw null; } - public System.Collections.Generic.List DefaultNamespaces { get => throw null; set => throw null; } - public bool ExcludeGenericBaseTypes { get => throw null; set => throw null; } - public bool ExcludeImplementedInterfaces { get => throw null; set => throw null; } - public bool ExcludeNamespace { get => throw null; set => throw null; } - public System.Collections.Generic.List ExcludeTypes { get => throw null; set => throw null; } - public bool ExportAsTypes { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet ExportAttributes { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet ExportTypes { get => throw null; set => throw null; } - public bool ExportValueTypes { get => throw null; set => throw null; } - public string GlobalNamespace { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet IgnoreTypes { get => throw null; set => throw null; } - public System.Collections.Generic.List IgnoreTypesInNamespaces { get => throw null; set => throw null; } - public System.Collections.Generic.List IncludeTypes { get => throw null; set => throw null; } - public bool InitializeCollections { get => throw null; set => throw null; } - public bool MakeDataContractsExtensible { get => throw null; set => throw null; } - public bool MakeInternal { get => throw null; set => throw null; } - public bool MakePartial { get => throw null; set => throw null; } - public bool MakePropertiesOptional { get => throw null; set => throw null; } - public bool MakeVirtual { get => throw null; set => throw null; } - public MetadataTypesConfig(string baseUrl = default(string), bool makePartial = default(bool), bool makeVirtual = default(bool), bool addReturnMarker = default(bool), bool convertDescriptionToComments = default(bool), bool addDataContractAttributes = default(bool), bool addIndexesToDataMembers = default(bool), bool addGeneratedCodeAttributes = default(bool), string addDefaultXmlNamespace = default(string), string baseClass = default(string), string package = default(string), bool addResponseStatus = default(bool), bool addServiceStackTypes = default(bool), bool addModelExtensions = default(bool), bool addPropertyAccessors = default(bool), bool excludeGenericBaseTypes = default(bool), bool settersReturnThis = default(bool), bool makePropertiesOptional = default(bool), bool makeDataContractsExtensible = default(bool), bool initializeCollections = default(bool), int? addImplicitVersion = default(int?)) => throw null; - public string Package { get => throw null; set => throw null; } - public bool SettersReturnThis { get => throw null; set => throw null; } - public System.Collections.Generic.List TreatTypesAsStrings { get => throw null; set => throw null; } - public string UsePath { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ModifyValidationRules` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ModifyValidationRules : ServiceStack.IReturn, ServiceStack.IReturnVoid -{ - public string AuthSecret { get => throw null; set => throw null; } - public bool? ClearCache { get => throw null; set => throw null; } - public int[] DeleteRuleIds { get => throw null; set => throw null; } - public ModifyValidationRules() => throw null; - public System.Collections.Generic.List SaveRules { get => throw null; set => throw null; } - public int[] SuspendRuleIds { get => throw null; set => throw null; } - public int[] UnsuspendRuleIds { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.NameValueCollectionWrapperExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class NameValueCollectionWrapperExtensions -{ - public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Specialized.NameValueCollection nameValues) => throw null; - public static string ToFormUrlEncoded(this System.Collections.Specialized.NameValueCollection queryParams) => throw null; - public static System.Collections.Specialized.NameValueCollection ToNameValueCollection(this System.Collections.Generic.Dictionary map) => throw null; -} - -// Generated from `ServiceStack.NetStandardPclExportClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class NetStandardPclExportClient : ServiceStack.PclExportClient -{ - public static ServiceStack.PclExportClient Configure() => throw null; - public override string GetHeader(System.Net.WebHeaderCollection headers, string name, System.Func valuePredicate) => throw null; - public NetStandardPclExportClient() => throw null; - public static ServiceStack.NetStandardPclExportClient Provider; - public override void SetIfModifiedSince(System.Net.HttpWebRequest webReq, System.DateTime lastModified) => throw null; -} - -// Generated from `ServiceStack.NewInstanceResolver` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class NewInstanceResolver : ServiceStack.Configuration.IResolver -{ - public NewInstanceResolver() => throw null; - public T TryResolve() => throw null; -} - -// Generated from `ServiceStack.PclExportClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class PclExportClient -{ - public virtual void AddHeader(System.Net.WebRequest webReq, System.Collections.Specialized.NameValueCollection headers) => throw null; - public virtual void CloseReadStream(System.IO.Stream stream) => throw null; - public virtual void CloseWriteStream(System.IO.Stream stream) => throw null; - public static void Configure(ServiceStack.PclExportClient instance) => throw null; - public static bool ConfigureProvider(string typeName) => throw null; - public virtual System.Exception CreateTimeoutException(System.Exception ex, string errorMsg) => throw null; - public virtual ServiceStack.ITimer CreateTimer(System.Threading.TimerCallback cb, System.TimeSpan timeOut, object state) => throw null; - public static System.Threading.Tasks.Task EmptyTask; - public virtual string GetHeader(System.Net.WebHeaderCollection headers, string name, System.Func valuePredicate) => throw null; - public virtual string HtmlAttributeEncode(string html) => throw null; - public virtual string HtmlDecode(string html) => throw null; - public virtual string HtmlEncode(string html) => throw null; - public static ServiceStack.PclExportClient Instance; - public virtual bool IsWebException(System.Net.WebException webEx) => throw null; - public System.Collections.Specialized.NameValueCollection NewNameValueCollection() => throw null; - public virtual System.Collections.Specialized.NameValueCollection ParseQueryString(string query) => throw null; - public PclExportClient() => throw null; - public virtual void RunOnUiThread(System.Action fn) => throw null; - public virtual void SetCookieContainer(System.Net.HttpWebRequest webRequest, ServiceStack.AsyncServiceClient client) => throw null; - public virtual void SetCookieContainer(System.Net.HttpWebRequest webRequest, ServiceStack.ServiceClientBase client) => throw null; - public virtual void SetIfModifiedSince(System.Net.HttpWebRequest webReq, System.DateTime lastModified) => throw null; - public virtual void SynchronizeCookies(ServiceStack.AsyncServiceClient client) => throw null; - public System.Threading.SynchronizationContext UiContext; - public virtual string UrlDecode(string url) => throw null; - public virtual string UrlEncode(string url) => throw null; - public virtual System.Threading.Tasks.Task WaitAsync(int waitForMs) => throw null; -} - -// Generated from `ServiceStack.PlatformRsaUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class PlatformRsaUtils -{ - public static System.Byte[] Decrypt(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes) => throw null; - public static System.Byte[] Encrypt(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes) => throw null; - public static string ExportToXml(System.Security.Cryptography.RSAParameters csp, bool includePrivateParameters) => throw null; - public static System.Security.Cryptography.RSAParameters ExtractFromXml(string xml) => throw null; - public static void FromXml(this System.Security.Cryptography.RSA rsa, string xml) => throw null; - public static System.Byte[] SignData(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes, string hashAlgorithm) => throw null; - public static System.Security.Cryptography.HashAlgorithmName ToHashAlgorithmName(string hashAlgorithm) => throw null; - public static string ToXml(this System.Security.Cryptography.RSA rsa, bool includePrivateParameters) => throw null; - public static bool VerifyData(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes, System.Byte[] signature, string hashAlgorithm) => throw null; -} - -// Generated from `ServiceStack.PluginInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class PluginInfo : ServiceStack.IMeta -{ - public ServiceStack.AdminUsersInfo AdminUsers { get => throw null; set => throw null; } - public ServiceStack.AuthInfo Auth { get => throw null; set => throw null; } - public ServiceStack.AutoQueryInfo AutoQuery { get => throw null; set => throw null; } - public ServiceStack.FilesUploadInfo FilesUpload { get => throw null; set => throw null; } - public System.Collections.Generic.List Loaded { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public PluginInfo() => throw null; - public ServiceStack.ProfilingInfo Profiling { get => throw null; set => throw null; } - public ServiceStack.RequestLogsInfo RequestLogs { get => throw null; set => throw null; } - public ServiceStack.SharpPagesInfo SharpPages { get => throw null; set => throw null; } - public ServiceStack.ValidationInfo Validation { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ProfilingInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ProfilingInfo : ServiceStack.IMeta -{ - public string AccessRole { get => throw null; set => throw null; } - public int DefaultLimit { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ProfilingInfo() => throw null; - public System.Collections.Generic.List SummaryFields { get => throw null; set => throw null; } - public string TagLabel { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ProgressDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate void ProgressDelegate(System.Int64 done, System.Int64 total); - -// Generated from `ServiceStack.RefInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class RefInfo -{ - public string Model { get => throw null; set => throw null; } - public string RefId { get => throw null; set => throw null; } - public RefInfo() => throw null; - public string RefLabel { get => throw null; set => throw null; } - public string SelfId { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.RefreshTokenException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class RefreshTokenException : ServiceStack.WebServiceException -{ - public RefreshTokenException(ServiceStack.WebServiceException webEx) => throw null; - public RefreshTokenException(string message) => throw null; - public RefreshTokenException(string message, System.Exception innerException) => throw null; -} - -// Generated from `ServiceStack.RegenerateApiKeys` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class RegenerateApiKeys : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public string Environment { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public RegenerateApiKeys() => throw null; -} - -// Generated from `ServiceStack.RegenerateApiKeysResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class RegenerateApiKeysResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta -{ - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public RegenerateApiKeysResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.Register` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class Register : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public bool? AutoLogin { get => throw null; set => throw null; } - public string ConfirmPassword { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public string Email { get => throw null; set => throw null; } - public string ErrorView { get => throw null; set => throw null; } - public string FirstName { get => throw null; set => throw null; } - public string LastName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public Register() => throw null; - public string UserName { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.RegisterResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class RegisterResponse : ServiceStack.IHasBearerToken, ServiceStack.IHasRefreshToken, ServiceStack.IHasResponseStatus, ServiceStack.IHasSessionId, ServiceStack.IMeta -{ - public string BearerToken { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public string ReferrerUrl { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public RegisterResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Roles { get => throw null; set => throw null; } - public string SessionId { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ReplaceFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ReplaceFileUpload : ServiceStack.IHasBearerToken, ServiceStack.IPut, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public string BearerToken { 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 ReplaceFileUpload() => throw null; -} - -// Generated from `ServiceStack.ReplaceFileUploadResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ReplaceFileUploadResponse -{ - public ReplaceFileUploadResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.RequestLogsInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class RequestLogsInfo : ServiceStack.IMeta -{ - public string AccessRole { get => throw null; set => throw null; } - public int DefaultLimit { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string RequestLogger { get => throw null; set => throw null; } - public RequestLogsInfo() => throw null; - public string[] RequiredRoles { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ResponseStatusUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ResponseStatusUtils -{ - public static ServiceStack.ResponseStatus CreateResponseStatus(string errorCode, string errorMessage, System.Collections.Generic.IEnumerable validationErrors = default(System.Collections.Generic.IEnumerable)) => throw null; -} - -// Generated from `ServiceStack.RestRoute` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class RestRoute -{ - public ServiceStack.RouteResolutionResult Apply(object request, string httpMethod) => throw null; - public const string EmptyArray = default; - public string ErrorMsg { get => throw null; set => throw null; } - public static System.Func FormatQueryParameterValue; - public string FormatQueryParameters(object request) => throw null; - public static System.Func FormatVariable; - public string[] HttpMethods { get => throw null; } - public bool IsValid { get => throw null; } - public string Path { get => throw null; } - public int Priority { get => throw null; } - public System.Collections.Generic.List QueryStringVariables { get => throw null; } - public RestRoute(System.Type type, string path, string verbs, int priority) => throw null; - public System.Type Type { get => throw null; set => throw null; } - public System.Collections.Generic.ICollection Variables { get => throw null; } -} - -// Generated from `ServiceStack.ResultsFilterDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate object ResultsFilterDelegate(System.Type responseType, string httpMethod, string requestUri, object request); - -// Generated from `ServiceStack.ResultsFilterHttpDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate object ResultsFilterHttpDelegate(System.Type responseType, string httpMethod, string requestUri, object request); - -// Generated from `ServiceStack.ResultsFilterHttpResponseDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate void ResultsFilterHttpResponseDelegate(System.Net.Http.HttpResponseMessage webResponse, object response, string httpMethod, string requestUri, object request); - -// Generated from `ServiceStack.ResultsFilterResponseDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate void ResultsFilterResponseDelegate(System.Net.WebResponse webResponse, object response, string httpMethod, string requestUri, object request); - -// Generated from `ServiceStack.RouteResolutionResult` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class RouteResolutionResult -{ - public static ServiceStack.RouteResolutionResult Error(ServiceStack.RestRoute route, string errorMsg) => throw null; - public string FailReason { get => throw null; set => throw null; } - public bool Matches { get => throw null; } - public ServiceStack.RestRoute Route { get => throw null; set => throw null; } - public RouteResolutionResult() => throw null; - public static ServiceStack.RouteResolutionResult Success(ServiceStack.RestRoute route, string uri) => throw null; - public string Uri { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.RsaKeyLengths` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public enum RsaKeyLengths -{ - Bit1024, - Bit2048, - Bit4096, -} - -// Generated from `ServiceStack.RsaKeyPair` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class RsaKeyPair -{ - public string PrivateKey { get => throw null; set => throw null; } - public string PublicKey { get => throw null; set => throw null; } - public RsaKeyPair() => throw null; -} - -// Generated from `ServiceStack.RsaUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class RsaUtils -{ - public static System.Byte[] Authenticate(System.Byte[] dataToSign, System.Security.Cryptography.RSAParameters privateKey, string hashAlgorithm = default(string), ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static System.Security.Cryptography.RSAParameters CreatePrivateKeyParams(ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static ServiceStack.RsaKeyPair CreatePublicAndPrivateKeyPair(ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, System.Security.Cryptography.RSAParameters privateKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, string privateKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static string Decrypt(this string text) => throw null; - public static string Decrypt(string encryptedText, System.Security.Cryptography.RSAParameters privateKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static string Decrypt(string encryptedText, string privateKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static ServiceStack.RsaKeyPair DefaultKeyPair; - public static bool DoOAEPPadding; - public static System.Byte[] Encrypt(System.Byte[] bytes, System.Security.Cryptography.RSAParameters publicKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static System.Byte[] Encrypt(System.Byte[] bytes, string publicKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static string Encrypt(this string text) => throw null; - public static string Encrypt(string text, System.Security.Cryptography.RSAParameters publicKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static string Encrypt(string text, string publicKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static string FromPrivateRSAParameters(this System.Security.Cryptography.RSAParameters privateKey) => throw null; - public static string FromPublicRSAParameters(this System.Security.Cryptography.RSAParameters publicKey) => throw null; - public static ServiceStack.RsaKeyLengths KeyLength; - public static string ToPrivateKeyXml(this System.Security.Cryptography.RSAParameters privateKey) => throw null; - public static System.Security.Cryptography.RSAParameters ToPrivateRSAParameters(this string privateKeyXml) => throw null; - public static string ToPublicKeyXml(this System.Security.Cryptography.RSAParameters publicKey) => throw null; - public static System.Security.Cryptography.RSAParameters ToPublicRSAParameters(this string publicKeyXml) => throw null; - public static System.Security.Cryptography.RSAParameters ToPublicRsaParameters(this System.Security.Cryptography.RSAParameters privateKey) => throw null; - public static bool Verify(System.Byte[] dataToVerify, System.Byte[] signature, System.Security.Cryptography.RSAParameters publicKey, string hashAlgorithm = default(string), ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; -} - -// Generated from `ServiceStack.ScriptMethodType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ScriptMethodType -{ - public string Name { get => throw null; set => throw null; } - public string[] ParamNames { get => throw null; set => throw null; } - public string[] ParamTypes { get => throw null; set => throw null; } - public string ReturnType { get => throw null; set => throw null; } - public ScriptMethodType() => throw null; -} - -// Generated from `ServiceStack.ServerEventCallback` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate void ServerEventCallback(ServiceStack.ServerEventsClient source, ServiceStack.ServerEventMessage args); - -// Generated from `ServiceStack.ServerEventClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ServerEventClientExtensions -{ - public static ServiceStack.AuthenticateResponse Authenticate(this ServiceStack.ServerEventsClient client, ServiceStack.Authenticate request) => throw null; - public static System.Threading.Tasks.Task AuthenticateAsync(this ServiceStack.ServerEventsClient client, ServiceStack.Authenticate request) => throw null; - public static System.Collections.Generic.List GetChannelSubscribers(this ServiceStack.ServerEventsClient client) => throw null; - public static System.Threading.Tasks.Task> GetChannelSubscribersAsync(this ServiceStack.ServerEventsClient client) => throw null; - public static T Populate(this T dst, ServiceStack.ServerEventMessage src, System.Collections.Generic.Dictionary msg) where T : ServiceStack.ServerEventMessage => throw null; - public static ServiceStack.ServerEventsClient RegisterHandlers(this ServiceStack.ServerEventsClient client, System.Collections.Generic.Dictionary handlers) => throw null; - public static void SubscribeToChannels(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; - public static System.Threading.Tasks.Task SubscribeToChannelsAsync(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; - public static void UnsubscribeFromChannels(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; - public static System.Threading.Tasks.Task UnsubscribeFromChannelsAsync(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; - public static void UpdateSubscriber(this ServiceStack.ServerEventsClient client, ServiceStack.UpdateEventSubscriber request) => throw null; - public static System.Threading.Tasks.Task UpdateSubscriberAsync(this ServiceStack.ServerEventsClient client, ServiceStack.UpdateEventSubscriber request) => throw null; -} - -// Generated from `ServiceStack.ServerEventCommand` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventCommand : ServiceStack.ServerEventMessage -{ - public string[] Channels { get => throw null; set => throw null; } - public System.DateTime CreatedAt { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public bool IsAuthenticated { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public ServerEventCommand() => throw null; - public string UserId { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ServerEventConnect` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventConnect : ServiceStack.ServerEventCommand -{ - public System.Int64 HeartbeatIntervalMs { get => throw null; set => throw null; } - public string HeartbeatUrl { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Int64 IdleTimeoutMs { get => throw null; set => throw null; } - public ServerEventConnect() => throw null; - public string UnRegisterUrl { get => throw null; set => throw null; } - public string UpdateSubscriberUrl { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ServerEventHeartbeat` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventHeartbeat : ServiceStack.ServerEventCommand -{ - public ServerEventHeartbeat() => throw null; -} - -// Generated from `ServiceStack.ServerEventJoin` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventJoin : ServiceStack.ServerEventCommand -{ - public ServerEventJoin() => throw null; -} - -// Generated from `ServiceStack.ServerEventLeave` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventLeave : ServiceStack.ServerEventCommand -{ - public ServerEventLeave() => throw null; -} - -// Generated from `ServiceStack.ServerEventMessage` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventMessage : ServiceStack.IMeta -{ - public string Channel { get => throw null; set => throw null; } - public string CssSelector { get => throw null; set => throw null; } - public string Data { get => throw null; set => throw null; } - public System.Int64 EventId { get => throw null; set => throw null; } - public string Json { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Op { get => throw null; set => throw null; } - public string Selector { get => throw null; set => throw null; } - public ServerEventMessage() => throw null; - public string Target { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ServerEventReceiver` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventReceiver : ServiceStack.IReceiver -{ - public ServiceStack.ServerEventsClient Client { get => throw null; set => throw null; } - public static ServiceStack.Logging.ILog Log; - public virtual void NoSuchMethod(string selector, object message) => throw null; - public ServiceStack.ServerEventMessage Request { get => throw null; set => throw null; } - public ServerEventReceiver() => throw null; -} - -// Generated from `ServiceStack.ServerEventUpdate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventUpdate : ServiceStack.ServerEventCommand -{ - public ServerEventUpdate() => throw null; -} - -// Generated from `ServiceStack.ServerEventUser` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventUser : ServiceStack.IMeta -{ - public string[] Channels { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public ServerEventUser() => throw null; - public string UserId { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ServerEventsClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ServerEventsClient : System.IDisposable -{ - public ServiceStack.ServerEventsClient AddListener(string eventName, System.Action handler) => throw null; - public System.Action AllRequestFilters { get => throw null; set => throw null; } - public string BaseUri { get => throw null; set => throw null; } - public static int BufferSize; - public string[] Channels { get => throw null; set => throw null; } - public System.Threading.Tasks.Task Connect() => throw null; - public string ConnectionDisplayName { get => throw null; } - public ServiceStack.ServerEventConnect ConnectionInfo { get => throw null; set => throw null; } - public void Dispose() => throw null; - public string EventStreamPath { get => throw null; set => throw null; } - public System.Action EventStreamRequestFilter { get => throw null; set => throw null; } - public string EventStreamUri { get => throw null; set => throw null; } - public virtual string GetStatsDescription() => throw null; - public System.Collections.Concurrent.ConcurrentDictionary Handlers { get => throw null; } - public bool HasListener(string eventName, System.Action handler) => throw null; - public bool HasListeners(string eventName) => throw null; - protected void Heartbeat(object state) => throw null; - public System.Action HeartbeatRequestFilter { get => throw null; set => throw null; } - public System.Func HttpClientHandlerFactory { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task InternalStop() => throw null; - public bool IsStopped { get => throw null; } - public System.DateTime LastPulseAt { get => throw null; set => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary NamedReceivers { get => throw null; } - public System.Action OnCommand; - protected void OnCommandReceived(ServiceStack.ServerEventCommand e) => throw null; - public System.Action OnConnect; - protected void OnConnectReceived() => throw null; - public System.Action OnException; - protected void OnExceptionReceived(System.Exception ex) => throw null; - public System.Action OnHeartbeat; - protected void OnHeartbeatReceived(ServiceStack.ServerEventHeartbeat e) => throw null; - public System.Action OnJoin; - protected void OnJoinReceived(ServiceStack.ServerEventJoin e) => throw null; - public System.Action OnLeave; - protected void OnLeaveReceived(ServiceStack.ServerEventLeave e) => throw null; - public System.Action OnMessage; - protected void OnMessageReceived(ServiceStack.ServerEventMessage e) => throw null; - public System.Action OnReconnect; - public System.Action OnUpdate; - protected void OnUpdateReceived(ServiceStack.ServerEventUpdate e) => throw null; - public void ProcessLine(string line) => throw null; - public void ProcessResponse(System.IO.Stream stream) => throw null; - public void RaiseEvent(string eventName, ServiceStack.ServerEventMessage message) => throw null; - public System.Collections.Generic.List ReceiverTypes { get => throw null; } - public ServiceStack.ServerEventsClient RegisterNamedReceiver(string receiverName) where T : ServiceStack.IReceiver => throw null; - public ServiceStack.ServerEventsClient RegisterReceiver() where T : ServiceStack.IReceiver => throw null; - public void RemoveAllListeners() => throw null; - public void RemoveAllRegistrations() => throw null; - public ServiceStack.ServerEventsClient RemoveListener(string eventName, System.Action handler) => throw null; - public ServiceStack.ServerEventsClient RemoveListeners(string eventName) => throw null; - public System.Func ResolveStreamUrl { get => throw null; set => throw null; } - public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } - public void Restart() => throw null; - public ServerEventsClient(string baseUri, params string[] channels) => throw null; - public ServiceStack.IServiceClient ServiceClient { get => throw null; set => throw null; } - public ServiceStack.ServerEventsClient Start() => throw null; - protected void StartNewHeartbeat() => throw null; - public string Status { get => throw null; } - public virtual System.Threading.Tasks.Task Stop() => throw null; - public bool StrictMode { get => throw null; set => throw null; } - public string SubscriptionId { get => throw null; } - public int TimesStarted { get => throw null; } - public static ServiceStack.ServerEventMessage ToTypedMessage(ServiceStack.ServerEventMessage e) => throw null; - public System.Action UnRegisterRequestFilter { get => throw null; set => throw null; } - public void Update(string[] subscribe = default(string[]), string[] unsubscribe = default(string[])) => throw null; - public System.Threading.Tasks.Task WaitForNextCommand() => throw null; - public System.Threading.Tasks.Task WaitForNextHeartbeat() => throw null; - public System.Threading.Tasks.Task WaitForNextMessage() => throw null; -} - -// Generated from `ServiceStack.ServiceClientBase` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public abstract class ServiceClientBase : ServiceStack.IHasBearerToken, ServiceStack.IHasCookieContainer, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientMeta, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, ServiceStack.Messaging.IMessageProducer, System.IDisposable -{ - public virtual string Accept { get => throw null; } - public void AddHeader(string name, string value) => throw null; - public bool AllowAutoRedirect { get => throw null; set => throw null; } - public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } - public string AsyncOneWayBaseUri { get => throw null; set => throw null; } - public string BasePath { get => throw null; set => throw null; } - public string BaseUri { get => throw null; set => throw null; } - public string BearerToken { get => throw null; set => throw null; } - public void CaptureHttp(System.Action httpFilter) => throw null; - public void CaptureHttp(bool print = default(bool), bool log = default(bool), bool clear = default(bool)) => throw null; - public void ClearCookies() => throw null; - public abstract string ContentType { get; } - public System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } - public System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public virtual void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; - public virtual System.Net.HttpWebResponse CustomMethod(string httpVerb, object requestDto) => throw null; - public virtual System.Net.HttpWebResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object requestDto) => throw null; - public virtual TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; - public virtual TResponse CustomMethod(string httpVerb, object requestDto) => throw null; - public virtual TResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object requestDto = default(object)) => throw null; - public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public const string DefaultHttpMethod = default; - public static string DefaultUserAgent; - public virtual void Delete(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual System.Net.HttpWebResponse Delete(object requestDto) => throw null; - public virtual System.Net.HttpWebResponse Delete(string relativeOrAbsoluteUrl) => throw null; - public virtual TResponse Delete(ServiceStack.IReturn requestDto) => throw null; - public virtual TResponse Delete(object requestDto) => throw null; - public virtual TResponse Delete(string relativeOrAbsoluteUrl) => throw null; - public virtual System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected T Deserialize(string text) => throw null; - public abstract T DeserializeFromStream(System.IO.Stream stream); - public bool DisableAutoCompression { get => throw null; set => throw null; } - public void Dispose() => throw null; - public System.Byte[] DownloadBytes(string httpMethod, string requestUri, object request) => throw null; - public System.Threading.Tasks.Task DownloadBytesAsync(string httpMethod, string requestUri, object request) => throw null; - public bool EmulateHttpViaPost { get => throw null; set => throw null; } - public bool EnableAutoRefreshToken { get => throw null; set => throw null; } - public ServiceStack.ExceptionFilterDelegate ExceptionFilter { get => throw null; set => throw null; } - public abstract string Format { get; } - public virtual void Get(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual System.Net.HttpWebResponse Get(object requestDto) => throw null; - public virtual System.Net.HttpWebResponse Get(string relativeOrAbsoluteUrl) => throw null; - public virtual TResponse Get(ServiceStack.IReturn requestDto) => throw null; - public virtual TResponse Get(object requestDto) => throw null; - public virtual TResponse Get(string relativeOrAbsoluteUrl) => throw null; - public virtual System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.Dictionary GetCookieValues() => throw null; - public string GetHttpMethod(object request) => throw null; - public virtual System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; - protected TResponse GetResponse(System.Net.WebResponse webRes) => throw null; - public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } - public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } - protected virtual bool HandleResponseException(System.Exception ex, object request, string requestUri, System.Func createWebRequest, System.Func getResponse, out TResponse response) => throw null; - public virtual System.Net.HttpWebResponse Head(ServiceStack.IReturn requestDto) => throw null; - public virtual System.Net.HttpWebResponse Head(object requestDto) => throw null; - public virtual System.Net.HttpWebResponse Head(string relativeOrAbsoluteUrl) => throw null; - public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } - public System.Net.Http.HttpClient HttpClient { get => throw null; set => throw null; } - public System.Text.StringBuilder HttpLog { get => throw null; set => throw null; } - public System.Action HttpLogFilter { get => throw null; set => throw null; } - public string HttpMethod { get => throw null; set => throw null; } - public System.Action OnAuthenticationRequired { get => throw null; set => throw null; } - public ServiceStack.ProgressDelegate OnDownloadProgress { get => throw null; set => throw null; } - public ServiceStack.ProgressDelegate OnUploadProgress { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public virtual void Patch(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual System.Net.HttpWebResponse Patch(object requestDto) => throw null; - public virtual TResponse Patch(ServiceStack.IReturn requestDto) => throw null; - public virtual TResponse Patch(object requestDto) => throw null; - public virtual TResponse Patch(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public virtual System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void Post(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual System.Net.HttpWebResponse Post(object requestDto) => throw null; - public virtual TResponse Post(ServiceStack.IReturn requestDto) => throw null; - public virtual TResponse Post(object requestDto) => throw null; - public virtual TResponse Post(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public virtual System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType, string fieldName = default(string)) => throw null; - public virtual TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public virtual TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public virtual TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; - public virtual TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; - protected System.Net.WebRequest PrepareWebRequest(string httpMethod, string requestUri, object request, System.Action sendRequestAction) => throw null; - public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public virtual void Publish(object requestDto) => throw null; - public void Publish(ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(T requestDto) => throw null; - public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; - public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PublishAsync(object request, System.Threading.CancellationToken token) => throw null; - public virtual void Put(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual System.Net.HttpWebResponse Put(object requestDto) => throw null; - public virtual TResponse Put(ServiceStack.IReturn requestDto) => throw null; - public virtual TResponse Put(object requestDto) => throw null; - public virtual TResponse Put(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public virtual System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.TimeSpan? ReadWriteTimeout { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public string RefreshTokenUri { get => throw null; set => throw null; } - public string RequestCompressionType { get => throw null; set => throw null; } - public System.Action RequestFilter { get => throw null; set => throw null; } - public virtual string ResolveTypedUrl(string httpMethod, object requestDto) => throw null; - public virtual string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl) => throw null; - public System.Action ResponseFilter { get => throw null; set => throw null; } - public ServiceStack.ResultsFilterDelegate ResultsFilter { get => throw null; set => throw null; } - public ServiceStack.ResultsFilterResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } - public virtual TResponse Send(object request) => throw null; - public virtual TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request) => throw null; - public virtual System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; - public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; - public virtual void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public virtual System.Threading.Tasks.Task SendAsync(object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void SendOneWay(object request) => throw null; - public virtual void SendOneWay(string relativeOrAbsoluteUrl, object request) => throw null; - public virtual void SendOneWay(string httpMethod, string relativeOrAbsoluteUrl, object requestDto) => throw null; - protected virtual System.Net.WebRequest SendRequest(string httpMethod, string requestUri, object request) => throw null; - public static string SendStringToUrl(System.Net.HttpWebRequest webReq, string method, string requestBody, string contentType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task SendStringToUrlAsync(System.Net.HttpWebRequest webReq, string method, string requestBody, string contentType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected virtual void SerializeRequestToStream(object request, System.IO.Stream requestStream, bool keepOpen = default(bool)) => throw null; - public abstract void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream); - protected ServiceClientBase() => throw null; - protected ServiceClientBase(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; - public string SessionId { get => throw null; set => throw null; } - public void SetBaseUri(string baseUri) => throw null; - public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; - public void SetCredentials(string userName, string password) => throw null; - public bool ShareCookiesWithBrowser { get => throw null; set => throw null; } - public bool StoreCookies { get => throw null; set => throw null; } - public abstract ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get; } - public string SyncReplyBaseUri { get => throw null; set => throw null; } - protected void ThrowResponseTypeException(object request, System.Exception ex, string requestUri) => throw null; - public void ThrowWebServiceException(System.Exception ex, string requestUri) => throw null; - public System.TimeSpan? Timeout { get => throw null; set => throw null; } - public virtual string ToAbsoluteUrl(string relativeOrAbsoluteUrl) => throw null; - public static ServiceStack.WebServiceException ToWebServiceException(System.Net.WebException webEx, System.Func parseDtoFn, string contentType) => throw null; - public ServiceStack.TypedUrlResolverDelegate TypedUrlResolver { get => throw null; set => throw null; } - public static void UploadFile(System.Net.WebRequest webRequest, System.IO.Stream fileStream, string fileName, string mimeType, string accept = default(string), System.Action requestFilter = default(System.Action), string method = default(string), string fieldName = default(string)) => throw null; - public ServiceStack.UrlResolverDelegate UrlResolver { get => throw null; set => throw null; } - public string UseBasePath { set => throw null; } - public string UserAgent { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ServiceClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ServiceClientExtensions -{ - public static void AddAuthSecret(this ServiceStack.IRestClient client, string authsecret) => throw null; - public static T Apply(this T client, System.Action fn) where T : ServiceStack.IServiceGateway => throw null; - public static System.Net.CookieContainer AssertCookieContainer(this ServiceStack.IServiceClient client) => throw null; - public static TResponse Delete(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; - public static void DeleteCookie(this System.Net.CookieContainer cookieContainer, System.Uri uri, string name) => throw null; - public static void DeleteCookie(this ServiceStack.IHasCookieContainer hasCookieContainer, System.Uri uri, string name) => throw null; - public static void DeleteCookie(this ServiceStack.IJsonServiceClient client, string name) => throw null; - public static void DeleteRefreshTokenCookie(this ServiceStack.IJsonServiceClient client) => throw null; - public static void DeleteTokenCookie(this ServiceStack.IJsonServiceClient client) => throw null; - public static void DeleteTokenCookies(this ServiceStack.IJsonServiceClient client) => throw null; - public static TResponse Get(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; - public static string GetCookieValue(this ServiceStack.AsyncServiceClient client, string name) => throw null; - public static ServiceStack.IEncryptedClient GetEncryptedClient(this ServiceStack.IJsonServiceClient client, System.Security.Cryptography.RSAParameters publicKey) => throw null; - public static ServiceStack.IEncryptedClient GetEncryptedClient(this ServiceStack.IJsonServiceClient client, string serverPublicKeyXml) => throw null; - public static string GetOptions(this ServiceStack.IServiceClient client) => throw null; - public static string GetPermanentSessionId(this ServiceStack.IServiceClient client) => throw null; - public static string GetRefreshTokenCookie(this ServiceStack.AsyncServiceClient client) => throw null; - public static string GetRefreshTokenCookie(this System.Net.CookieContainer cookies, string baseUri) => throw null; - public static string GetRefreshTokenCookie(this ServiceStack.IServiceClient client) => throw null; - public static string GetSessionId(this ServiceStack.IServiceClient client) => throw null; - public static string GetTokenCookie(this ServiceStack.AsyncServiceClient client) => throw null; - public static string GetTokenCookie(this System.Net.CookieContainer cookies, string baseUri) => throw null; - public static string GetTokenCookie(this ServiceStack.IServiceClient client) => throw null; - public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; - public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; - public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; - public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; - public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void PopulateRequestMetadata(this ServiceStack.IHasSessionId client, object request) => throw null; - public static void PopulateRequestMetadatas(this ServiceStack.IHasSessionId client, System.Collections.Generic.IEnumerable requests) => throw null; - public static TResponse Post(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; - public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; - public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; - public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; - public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; - public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static TResponse PostFile(this ServiceStack.IRestClient client, string relativeOrAbsoluteUrl, System.IO.FileInfo fileToUpload, string mimeType, string fieldName = default(string)) => throw null; - public static TResponse PostFileWithRequest(this ServiceStack.IRestClient client, System.IO.FileInfo fileToUpload, object request, string fieldName = default(string)) => throw null; - public static TResponse PostFileWithRequest(this ServiceStack.IRestClient client, string relativeOrAbsoluteUrl, System.IO.FileInfo fileToUpload, object request, string fieldName = default(string)) => throw null; - public static TResponse Put(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; - public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; - public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; - public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; - public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; - public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.IO.Stream ResponseStream(this System.Net.WebResponse webRes) => throw null; - public static void Send(this ServiceStack.IEncryptedClient client, ServiceStack.IReturnVoid request) => throw null; - public static void SetCookie(this System.Net.CookieContainer cookieContainer, System.Uri baseUri, string name, string value, System.DateTime? expiresAt, string path = default(string), bool? httpOnly = default(bool?), bool? secure = default(bool?)) => throw null; - public static void SetCookie(this ServiceStack.IServiceClient client, System.Uri baseUri, string name, string value, System.DateTime? expiresAt = default(System.DateTime?), string path = default(string), bool? httpOnly = default(bool?), bool? secure = default(bool?)) => throw null; - public static void SetOptions(this ServiceStack.IServiceClient client, string options) => throw null; - public static void SetPermanentSessionId(this ServiceStack.IServiceClient client, string sessionId) => throw null; - public static void SetRefreshTokenCookie(this System.Net.CookieContainer cookies, string baseUri, string token) => throw null; - public static void SetRefreshTokenCookie(this ServiceStack.IServiceClient client, string token) => throw null; - public static void SetSessionId(this ServiceStack.IServiceClient client, string sessionId) => throw null; - public static void SetTokenCookie(this System.Net.CookieContainer cookies, string baseUri, string token) => throw null; - public static void SetTokenCookie(this ServiceStack.IServiceClient client, string token) => throw null; - public static void SetUserAgent(this System.Net.HttpWebRequest req, string userAgent) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this System.Net.CookieContainer cookies, string baseUri) => throw null; - public static T WithBasePath(this T client, string basePath) where T : ServiceStack.ServiceClientBase => throw null; -} - -// Generated from `ServiceStack.ServiceClientUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ServiceClientUtils -{ - public static string GetAutoQueryMethod(System.Type requestType) => throw null; - public static string GetHttpMethod(System.Type requestType) => throw null; - public static string GetIVerbMethod(System.Type requestType) => throw null; - public static string GetIVerbMethod(System.Type[] interfaceTypes) => throw null; - public static string[] GetRouteMethods(System.Type requestType) => throw null; - public static string GetSingleRouteMethod(System.Type requestType) => throw null; - public static System.Collections.Generic.HashSet SupportedMethods { get => throw null; } -} - -// Generated from `ServiceStack.ServiceGatewayAsyncWrappers` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ServiceGatewayAsyncWrappers -{ - public static System.Threading.Tasks.Task> Api(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> ApiAllAsync(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn[] requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> ApiAllAsync(this ServiceStack.IServiceClientAsync client, System.Collections.Generic.List> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> ApiAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PublishAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PublishAllAsync(this ServiceStack.IServiceGatewayAsync client, System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PublishAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task Send(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn[] requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceClientAsync client, System.Collections.Generic.List> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; -} - -// Generated from `ServiceStack.ServiceGatewayExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class ServiceGatewayExtensions -{ - public static ServiceStack.ApiResult Api(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid request) => throw null; - public static ServiceStack.ApiResult Api(this ServiceStack.IServiceGateway client, ServiceStack.IReturn request) => throw null; - public static ServiceStack.ApiResult> ApiAll(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> request) => throw null; - public static System.Type GetResponseType(this ServiceStack.IServiceGateway client, object request) => throw null; - public static void Send(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid request) => throw null; - public static object Send(this ServiceStack.IServiceGateway client, System.Type responseType, object request) => throw null; - public static TResponse Send(this ServiceStack.IServiceGateway client, ServiceStack.IReturn request) => throw null; - public static System.Collections.Generic.List SendAll(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> request) => throw null; - public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, System.Type responseType, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; -} - -// Generated from `ServiceStack.SharpPagesInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class SharpPagesInfo : ServiceStack.IMeta -{ - public string ApiPath { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public bool? MetadataDebug { get => throw null; set => throw null; } - public string MetadataDebugAdminRole { get => throw null; set => throw null; } - public string ScriptAdminRole { get => throw null; set => throw null; } - public SharpPagesInfo() => throw null; - public bool? SpaFallback { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.SingletonInstanceResolver` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class SingletonInstanceResolver : ServiceStack.Configuration.IResolver -{ - public SingletonInstanceResolver() => throw null; - public T TryResolve() => throw null; -} - -// Generated from `ServiceStack.StoreFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class StoreFileUpload : ServiceStack.IHasBearerToken, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public string BearerToken { 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 StoreFileUpload() => throw null; -} - -// Generated from `ServiceStack.StoreFileUploadResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class StoreFileUploadResponse -{ - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - public StoreFileUploadResponse() => throw null; -} - -// Generated from `ServiceStack.StreamCompressors` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class StreamCompressors -{ - public static ServiceStack.Caching.IStreamCompressor Get(string encoding) => throw null; - public static ServiceStack.Caching.IStreamCompressor GetRequired(string encoding) => throw null; - public static bool Remove(string encoding) => throw null; - public static void Set(string encoding, ServiceStack.Caching.IStreamCompressor compressor) => throw null; - public static bool SupportsEncoding(string encoding) => throw null; -} - -// Generated from `ServiceStack.StreamExt` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class StreamExt -{ - public static System.Byte[] Compress(this string text, string compressionType, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; - public static System.Byte[] CompressBytes(this System.Byte[] bytes, string compressionType) => throw null; - public static System.IO.Stream CompressStream(this System.IO.Stream stream, string compressionType) => throw null; - public static string Decompress(this System.Byte[] gzBuffer, string compressionType) => throw null; - public static System.IO.Stream Decompress(this System.IO.Stream gzStream, string compressionType) => throw null; - public static System.Byte[] DecompressBytes(this System.Byte[] gzBuffer, string compressionType) => throw null; - public static System.Byte[] Deflate(this string text) => throw null; - public static string GUnzip(this System.Byte[] gzBuffer) => throw null; - public static System.Byte[] GZip(this string text) => throw null; - public static string Inflate(this System.Byte[] gzBuffer) => throw null; - public static System.Byte[] ToBytes(this System.IO.Stream stream) => throw null; - public static string ToUtf8String(this System.IO.Stream stream) => throw null; - public static void Write(this System.IO.Stream stream, string text) => throw null; -} - -// Generated from `ServiceStack.StreamFiles` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class StreamFiles : ServiceStack.IReturn, ServiceStack.IReturn -{ - public System.Collections.Generic.List Paths { get => throw null; set => throw null; } - public StreamFiles() => throw null; -} - -// Generated from `ServiceStack.StreamServerEvents` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class StreamServerEvents : ServiceStack.IReturn, ServiceStack.IReturn -{ - public string[] Channels { get => throw null; set => throw null; } - public StreamServerEvents() => throw null; -} - -// Generated from `ServiceStack.StreamServerEventsResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class StreamServerEventsResponse -{ - public string Channel { get => throw null; set => throw null; } - public string[] Channels { get => throw null; set => throw null; } - public System.Int64 CreatedAt { get => throw null; set => throw null; } - public string CssSelector { get => throw null; set => throw null; } - public string Data { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public System.Int64 EventId { get => throw null; set => throw null; } - public System.Int64 HeartbeatIntervalMs { get => throw null; set => throw null; } - public string HeartbeatUrl { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Int64 IdleTimeoutMs { get => throw null; set => throw null; } - public bool IsAuthenticated { get => throw null; set => throw null; } - public string Json { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Op { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public string Selector { get => throw null; set => throw null; } - public StreamServerEventsResponse() => throw null; - public string Target { get => throw null; set => throw null; } - public string UnRegisterUrl { get => throw null; set => throw null; } - public string UpdateSubscriberUrl { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.ThemeInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ThemeInfo -{ - public string Form { get => throw null; set => throw null; } - public ServiceStack.ImageInfo ModelIcon { get => throw null; set => throw null; } - public ThemeInfo() => throw null; -} - -// Generated from `ServiceStack.TokenException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class TokenException : ServiceStack.AuthenticationException -{ - public TokenException(string message) => throw null; -} - -// Generated from `ServiceStack.TypedUrlResolverDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate string TypedUrlResolverDelegate(ServiceStack.IServiceClientMeta client, string httpMethod, object requestDto); - -// Generated from `ServiceStack.UiInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class UiInfo : ServiceStack.IMeta -{ - public ServiceStack.AdminUi Admin { get => throw null; set => throw null; } - public System.Collections.Generic.List AdminLinks { get => throw null; set => throw null; } - public System.Collections.Generic.List AlwaysHideTags { get => throw null; set => throw null; } - public ServiceStack.ImageInfo BrandIcon { get => throw null; set => throw null; } - public ServiceStack.ApiFormat DefaultFormats { get => throw null; set => throw null; } - public ServiceStack.ExplorerUi Explorer { get => throw null; set => throw null; } - public System.Collections.Generic.List HideTags { get => throw null; set => throw null; } - public ServiceStack.LocodeUi Locode { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List Modules { get => throw null; set => throw null; } - public ServiceStack.ThemeInfo Theme { get => throw null; set => throw null; } - public UiInfo() => throw null; -} - -// Generated from `ServiceStack.UnAssignRoles` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class UnAssignRoles : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public System.Collections.Generic.List Roles { get => throw null; set => throw null; } - public UnAssignRoles() => throw null; - public string UserName { get => throw null; set => throw null; } -} - -// Generated from `ServiceStack.UnAssignRolesResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class UnAssignRolesResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta -{ - public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public UnAssignRolesResponse() => throw null; -} - -// Generated from `ServiceStack.UpdateEventSubscriber` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class UpdateEventSubscriber : ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb -{ - public string Id { get => throw null; set => throw null; } - public string[] SubscribeChannels { get => throw null; set => throw null; } - public string[] UnsubscribeChannels { get => throw null; set => throw null; } - public UpdateEventSubscriber() => throw null; -} - -// Generated from `ServiceStack.UpdateEventSubscriberResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class UpdateEventSubscriberResponse -{ - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public UpdateEventSubscriberResponse() => throw null; -} - -// Generated from `ServiceStack.UploadedFile` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class UploadedFile -{ - public System.Int64 ContentLength { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public string FileName { get => throw null; set => throw null; } - public string FilePath { get => throw null; set => throw null; } - public UploadedFile() => throw null; -} - -// Generated from `ServiceStack.UrlExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class UrlExtensions -{ - public static string AsHttps(this string absoluteUrl) => throw null; - public static string ExpandGenericTypeName(System.Type type) => throw null; - public static string ExpandTypeName(this System.Type type) => throw null; - public static string GetFullyQualifiedName(this System.Type type) => throw null; - public static string GetMetadataPropertyType(this System.Type type) => throw null; - public static string GetOperationName(this System.Type type) => throw null; - public static System.Collections.Generic.Dictionary GetQueryPropertyTypes(this System.Type requestType) => throw null; - public static string ToApiUrl(this System.Type requestType) => throw null; - public static string ToDeleteUrl(this object requestDto) => throw null; - public static string ToGetUrl(this object requestDto) => throw null; - public static string ToOneWayUrl(this object requestDto, string format = default(string)) => throw null; - public static string ToOneWayUrlOnly(this object requestDto, string format = default(string)) => throw null; - public static string ToPostUrl(this object requestDto) => throw null; - public static string ToPutUrl(this object requestDto) => throw null; - public static string ToRelativeUri(this ServiceStack.IReturn requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; - public static string ToRelativeUri(this object requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; - public static string ToReplyUrl(this object requestDto, string format = default(string)) => throw null; - public static string ToReplyUrlOnly(this object requestDto, string format = default(string)) => throw null; - public static string ToUrl(this ServiceStack.IReturn requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; - public static string ToUrl(this object requestDto, string httpMethod, System.Func fallback) => throw null; - public static string ToUrl(this object requestDto, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; -} - -// Generated from `ServiceStack.UrlResolverDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public delegate string UrlResolverDelegate(ServiceStack.IServiceClientMeta client, string httpMethod, string relativeOrAbsoluteUrl); - -// Generated from `ServiceStack.UserApiKey` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class UserApiKey : ServiceStack.IMeta -{ - public System.DateTime? ExpiryDate { get => throw null; set => throw null; } - public string Key { get => throw null; set => throw null; } - public string KeyType { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public UserApiKey() => throw null; -} - -// Generated from `ServiceStack.ValidationInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ValidationInfo : ServiceStack.IMeta -{ - public string AccessRole { get => throw null; set => throw null; } - public bool? HasValidationSource { get => throw null; set => throw null; } - public bool? HasValidationSourceAdmin { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List PropertyValidators { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - public System.Collections.Generic.List TypeValidators { get => throw null; set => throw null; } - public ValidationInfo() => throw null; -} - -// Generated from `ServiceStack.WebRequestUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public static class WebRequestUtils -{ - public static void AddApiKeyAuth(this System.Net.WebRequest client, string apiKey) => throw null; - public static void AddBasicAuth(this System.Net.WebRequest client, string userName, string password) => throw null; - public static void AddBearerToken(this System.Net.WebRequest client, string bearerToken) => throw null; - public static void AppendHttpRequestHeaders(this System.Net.HttpWebRequest webReq, System.Text.StringBuilder sb, System.Uri baseUri = default(System.Uri)) => throw null; - public static void AppendHttpResponseHeaders(this System.Net.HttpWebResponse webRes, System.Text.StringBuilder sb) => throw null; - public static string CalculateMD5Hash(string input) => throw null; - public static System.Type GetErrorResponseDtoType(System.Type requestType) => throw null; - public static System.Type GetErrorResponseDtoType(object request) => throw null; - public static System.Type GetErrorResponseDtoType(object request) => throw null; - public static string GetResponseDtoName(System.Type requestType) => throw null; - public static ServiceStack.ResponseStatus GetResponseStatus(this object response) => throw null; - public static System.Net.HttpWebRequest InitWebRequest(string url, string method = default(string), System.Collections.Generic.Dictionary headers = default(System.Collections.Generic.Dictionary)) => throw null; - public const string ResponseDtoSuffix = default; -} - -// Generated from `ServiceStack.WebServiceException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class WebServiceException : System.Exception, ServiceStack.IHasStatusCode, ServiceStack.IHasStatusDescription, ServiceStack.Model.IResponseStatusConvertible -{ - public string ErrorCode { get => throw null; } - public string ErrorMessage { get => throw null; } - public System.Collections.Generic.List GetFieldErrors() => throw null; - public bool IsAny400() => throw null; - public bool IsAny500() => throw null; - public override string Message { get => throw null; } - public string ResponseBody { get => throw null; set => throw null; } - public object ResponseDto { get => throw null; set => throw null; } - public System.Net.WebHeaderCollection ResponseHeaders { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; } - public string ServerStackTrace { get => throw null; } - public object State { get => throw null; set => throw null; } - public int StatusCode { get => throw null; set => throw null; } - public string StatusDescription { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ToResponseStatus() => throw null; - public override string ToString() => throw null; - public WebServiceException() => throw null; - public WebServiceException(string message) => throw null; - public WebServiceException(string message, System.Exception innerException) => throw null; - public static ServiceStack.Logging.ILog log; -} - -// Generated from `ServiceStack.XmlServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class XmlServiceClient : ServiceStack.ServiceClientBase -{ - public override string ContentType { get => throw null; } - public override T DeserializeFromStream(System.IO.Stream stream) => throw null; - public override string Format { get => throw null; } - public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; - public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } - public XmlServiceClient() => throw null; - public XmlServiceClient(string baseUri) => throw null; - public XmlServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; -} - -// Generated from `ServiceStack.ZLibCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` -public class ZLibCompressor : ServiceStack.Caching.IStreamCompressor -{ - public System.Byte[] Compress(System.Byte[] bytes) => throw null; - public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; - public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; - public string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; - public System.IO.Stream Decompress(System.IO.Stream zipBuffer, bool leaveOpen = default(bool)) => throw null; - public System.Byte[] DecompressBytes(System.Byte[] zipBuffer) => throw null; - public string Encoding { get => throw null; } - public static ServiceStack.ZLibCompressor Instance { get => throw null; } - public ZLibCompressor() => throw null; -} - -namespace Html -{ - // Generated from `ServiceStack.Html.Input` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Input + // Generated from `ServiceStack.FilesUploadInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FilesUploadInfo : ServiceStack.IMeta { - // Generated from `ServiceStack.Html.Input+ConfigureCss` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConfigureCss - { - public ConfigureCss(ServiceStack.InputInfo input) => throw null; - public ServiceStack.Html.Input.ConfigureCss FieldsPerRow(int sm, int? md = default(int?), int? lg = default(int?), int? xl = default(int?), int? xl2 = default(int?)) => throw null; - public ServiceStack.InputInfo Input { get => throw null; } - } - - - // Generated from `ServiceStack.Html.Input+Types` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Types - { - public const string Checkbox = default; - public const string Color = default; - public const string Date = default; - public const string DatetimeLocal = default; - public const string Email = default; - public const string File = default; - public const string Hidden = default; - public const string Image = default; - public const string Month = default; - public const string Number = default; - public const string Password = default; - public const string Radio = default; - public const string Range = default; - public const string Reset = default; - public const string Search = default; - public const string Select = default; - public const string Submit = default; - public const string Tel = default; - public const string Text = default; - public const string Textarea = default; - public const string Time = default; - public const string Url = default; - public const string Week = default; - } - - - public static ServiceStack.InputInfo AddCss(this ServiceStack.InputInfo input, System.Action configure) => throw null; - public static ServiceStack.InputInfo FieldsPerRow(this ServiceStack.InputInfo input, int sm, int? md = default(int?), int? lg = default(int?), int? xl = default(int?), int? xl2 = default(int?)) => throw null; - public static ServiceStack.InputInfo For(System.Linq.Expressions.Expression> expr) => throw null; - public static ServiceStack.InputInfo For(System.Linq.Expressions.Expression> expr, System.Action configure) => throw null; - public static System.Collections.Generic.List FromGridLayout(System.Collections.Generic.IEnumerable> gridLayout) => throw null; - public static string GetDescription(System.Reflection.MemberInfo mi) => throw null; - public static bool GetEnumEntries(System.Type enumType, out System.Collections.Generic.KeyValuePair[] entries) => throw null; - public static string[] GetEnumValues(System.Type enumType) => throw null; + public string BasePath { get => throw null; set => throw null; } + public FilesUploadInfo() => throw null; + public System.Collections.Generic.List Locations { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Html.InspectUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class InspectUtils + // Generated from `ServiceStack.FilesUploadLocation` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FilesUploadLocation { - public static object Evaluate(System.Linq.Expressions.Expression arg) => throw null; - public static System.Linq.Expressions.Expression FindMember(System.Linq.Expressions.Expression e) => throw null; - public static string[] GetFieldNames(this System.Linq.Expressions.Expression> expr) => throw null; - public static System.Reflection.PropertyInfo PropertyFromExpression(System.Linq.Expressions.Expression> expr) => throw null; + public System.Collections.Generic.HashSet AllowExtensions { get => throw null; set => throw null; } + public string AllowOperations { get => throw null; set => throw null; } + public FilesUploadLocation() => throw null; + public System.Int64? MaxFileBytes { get => throw null; set => throw null; } + public int? MaxFileCount { get => throw null; set => throw null; } + public System.Int64? MinFileBytes { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string ReadAccessRole { get => throw null; set => throw null; } + public string WriteAccessRole { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Html.Media` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Media + // Generated from `ServiceStack.FormatInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class FormatInfo { + public FormatInfo() => throw null; + public string Locale { get => throw null; set => throw null; } + public string Method { get => throw null; set => throw null; } + public string Options { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Html.MediaRuleCreator` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MediaRuleCreator + // Generated from `ServiceStack.GZipCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GZipCompressor : ServiceStack.Caching.IStreamCompressor { - public MediaRuleCreator(string size) => throw null; - public ServiceStack.MediaRule Show(System.Linq.Expressions.Expression> expr) => throw null; - public string Size { get => throw null; } + public System.Byte[] Compress(System.Byte[] buffer) => throw null; + public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public string Decompress(System.Byte[] gzBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public System.IO.Stream Decompress(System.IO.Stream gzStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] DecompressBytes(System.Byte[] gzBuffer) => throw null; + public string Encoding { get => throw null; } + public GZipCompressor() => throw null; + public static ServiceStack.GZipCompressor Instance { get => throw null; } } - // Generated from `ServiceStack.Html.MediaRules` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MediaRules + // Generated from `ServiceStack.GetAccessToken` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetAccessToken : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb { - public static ServiceStack.Html.MediaRuleCreator ExtraLarge; - public static ServiceStack.Html.MediaRuleCreator ExtraLarge2x; - public static ServiceStack.Html.MediaRuleCreator ExtraSmall; - public static ServiceStack.Html.MediaRuleCreator Large; - public static ServiceStack.Html.MediaRuleCreator Medium; - public static string MinVisibleSize(this System.Collections.Generic.IEnumerable mediaRules, string target) => throw null; - public static ServiceStack.Html.MediaRuleCreator Small; + public GetAccessToken() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Html.MediaSizes` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MediaSizes + // Generated from `ServiceStack.GetAccessTokenResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetAccessTokenResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta { - public static string[] All; - public const string ExtraLarge = default; - public const string ExtraLarge2x = default; - public const string ExtraSmall = default; - public static string ForBootstrap(string size) => throw null; - public static string ForTailwind(string size) => throw null; - public const string Large = default; - public const string Medium = default; - public const string Small = default; + public string AccessToken { get => throw null; set => throw null; } + public GetAccessTokenResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } } -} -namespace Messaging -{ - // Generated from `ServiceStack.Messaging.InMemoryMessageQueueClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryMessageQueueClient : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.Messaging.IMessageQueueClient, System.IDisposable + // Generated from `ServiceStack.GetApiKeys` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetApiKeys : ServiceStack.IGet, ServiceStack.IMeta, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb { - public void Ack(ServiceStack.Messaging.IMessage message) => throw null; - public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; + public string Environment { get => throw null; set => throw null; } + public GetApiKeys() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GetApiKeysResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetApiKeysResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + public GetApiKeysResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GetCrudEvents` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetCrudEvents : ServiceStack.QueryDb + { + public string AuthSecret { get => throw null; set => throw null; } + public GetCrudEvents() => throw null; + public string Model { get => throw null; set => throw null; } + public string ModelId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GetEventSubscribers` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetEventSubscribers : ServiceStack.IGet, ServiceStack.IReturn, ServiceStack.IReturn>>, ServiceStack.IVerb + { + public string[] Channels { get => throw null; set => throw null; } + public GetEventSubscribers() => throw null; + } + + // Generated from `ServiceStack.GetFile` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetFile : ServiceStack.IGet, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public GetFile() => throw null; + public string Path { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GetFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetFileUpload : ServiceStack.IGet, ServiceStack.IHasBearerToken, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public bool? Attachment { get => throw null; set => throw null; } + public string BearerToken { get => throw null; set => throw null; } + public GetFileUpload() => throw null; + public string Name { get => throw null; set => throw null; } + public string Path { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GetNavItems` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetNavItems : ServiceStack.IReturn, ServiceStack.IReturn + { + public GetNavItems() => throw null; + public string Name { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GetNavItemsResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetNavItemsResponse : ServiceStack.IMeta + { + public string BaseUrl { get => throw null; set => throw null; } + public GetNavItemsResponse() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary> NavItemsMap { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GetPublicKey` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetPublicKey : ServiceStack.IReturn, ServiceStack.IReturn + { + public GetPublicKey() => throw null; + } + + // Generated from `ServiceStack.GetValidationRules` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetValidationRules : ServiceStack.IReturn, ServiceStack.IReturn + { + public string AuthSecret { get => throw null; set => throw null; } + public GetValidationRules() => throw null; + public string Type { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.GetValidationRulesResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class GetValidationRulesResponse + { + public GetValidationRulesResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.HashUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HashUtils + { + public static System.Security.Cryptography.HashAlgorithm GetHashAlgorithm(string hashAlgorithm) => throw null; + } + + // Generated from `ServiceStack.HmacUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HmacUtils + { + public static System.Byte[] Authenticate(System.Byte[] encryptedBytes, System.Byte[] authKey, System.Byte[] iv) => throw null; + public static System.Security.Cryptography.HMAC CreateHashAlgorithm(System.Byte[] authKey) => throw null; + public static System.Byte[] DecryptAuthenticated(System.Byte[] authEncryptedBytes, System.Byte[] cryptKey) => throw null; + public const int KeySize = default; + public const int KeySizeBytes = default; + public static bool Verify(System.Byte[] authEncryptedBytes, System.Byte[] authKey) => throw null; + } + + // Generated from `ServiceStack.HttpCacheEntry` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpCacheEntry + { + public System.TimeSpan? Age { get => throw null; set => throw null; } + public bool CanUseCacheOnError() => throw null; + public System.Int64? ContentLength { get => throw null; set => throw null; } + public System.DateTime Created { get => throw null; set => throw null; } + public string ETag { get => throw null; set => throw null; } + public System.DateTime Expires { get => throw null; set => throw null; } + public bool HasExpired() => throw null; + public HttpCacheEntry(object response) => throw null; + public System.DateTime? LastModified { get => throw null; set => throw null; } + public System.TimeSpan MaxAge { 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 object Response { get => throw null; set => throw null; } + public void SetMaxAge(System.TimeSpan maxAge) => throw null; + public bool ShouldRevalidate() => throw null; + } + + // Generated from `ServiceStack.HttpClientDiagnosticEvent` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpClientDiagnosticEvent : ServiceStack.DiagnosticEvent + { + public HttpClientDiagnosticEvent() => throw null; + public System.Net.Http.HttpRequestMessage HttpRequest { get => throw null; set => throw null; } + public System.Net.Http.HttpResponseMessage HttpResponse { get => throw null; set => throw null; } + public object Request { get => throw null; set => throw null; } + public object Response { get => throw null; set => throw null; } + public System.Type ResponseType { get => throw null; set => throw null; } + public override string Source { get => throw null; } + } + + // Generated from `ServiceStack.HttpExt` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class HttpExt + { + public static string GetDispositionFileName(string fileName) => throw null; + public static bool HasNonAscii(string s) => throw null; + } + + // Generated from `ServiceStack.ICachedServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ICachedServiceClient : ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable + { + int CacheCount { get; } + System.Int64 CacheHits { get; } + System.Int64 CachesAdded { get; } + System.Int64 CachesRemoved { get; } + System.Int64 ErrorFallbackHits { get; } + System.Int64 NotModifiedHits { get; } + int RemoveCachesOlderThan(System.TimeSpan age); + int RemoveExpiredCachesOlderThan(System.TimeSpan age); + void SetCache(System.Collections.Concurrent.ConcurrentDictionary cache); + } + + // Generated from `ServiceStack.ICachedServiceClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ICachedServiceClientExtensions + { + public static void ClearCache(this ServiceStack.ICachedServiceClient client) => throw null; + public static System.Collections.Generic.Dictionary GetStats(this ServiceStack.ICachedServiceClient client) => throw null; + } + + // Generated from `ServiceStack.IHasCookieContainer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasCookieContainer + { + System.Net.CookieContainer CookieContainer { get; } + } + + // Generated from `ServiceStack.IHasJsonApiClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IHasJsonApiClient + { + ServiceStack.JsonApiClient Client { get; } + } + + // Generated from `ServiceStack.IServiceClientMeta` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IServiceClientMeta + { + bool AlwaysSendBasicAuthHeader { get; } + string AsyncOneWayBaseUri { get; } + string BaseUri { get; set; } + string BearerToken { get; set; } + string Format { get; } + string Password { get; } + string RefreshToken { get; set; } + string RefreshTokenUri { get; set; } + string ResolveTypedUrl(string httpMethod, object requestDto); + string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl); + string SessionId { get; } + string SyncReplyBaseUri { get; } + string UserName { get; } + int Version { get; } + } + + // Generated from `ServiceStack.ITimer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface ITimer : System.IDisposable + { + void Cancel(); + } + + // Generated from `ServiceStack.ImageInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ImageInfo + { + public string Alt { get => throw null; set => throw null; } + public string Cls { get => throw null; set => throw null; } + public ImageInfo() => throw null; + public string Svg { get => throw null; set => throw null; } + public string Uri { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.InputInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InputInfo : ServiceStack.IMeta + { + public string Accept { get => throw null; set => throw null; } + public System.Collections.Generic.KeyValuePair[] AllowableEntries { get => throw null; set => throw null; } + public string[] AllowableValues { get => throw null; set => throw null; } + public string Autocomplete { get => throw null; set => throw null; } + public string Autofocus { get => throw null; set => throw null; } + public string Capture { get => throw null; set => throw null; } + public ServiceStack.FieldCss Css { get => throw null; set => throw null; } + public bool? Disabled { get => throw null; set => throw null; } + public string Help { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public bool? Ignore { get => throw null; set => throw null; } + public InputInfo() => throw null; + public InputInfo(string id) => throw null; + public InputInfo(string id, string type) => throw null; + public string Label { get => throw null; set => throw null; } + public string Max { get => throw null; set => throw null; } + public int? MaxLength { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Min { get => throw null; set => throw null; } + public int? MinLength { get => throw null; set => throw null; } + public bool? Multiple { get => throw null; set => throw null; } + public string Name { get => throw null; set => throw null; } + public string Options { get => throw null; set => throw null; } + public string Pattern { get => throw null; set => throw null; } + public string Placeholder { get => throw null; set => throw null; } + public bool? ReadOnly { get => throw null; set => throw null; } + public bool? Required { get => throw null; set => throw null; } + public string Size { get => throw null; set => throw null; } + public int? Step { 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 Value { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.JsonApiClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonApiClient : ServiceStack.IHasBearerToken, ServiceStack.IHasCookieContainer, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IJsonServiceClient, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientMeta, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable + { + public void AddHeader(string name, string value) => throw null; + public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } + public ServiceStack.ApiResult ApiForm(ServiceStack.IReturn request, System.Net.Http.MultipartFormDataContent body) => throw null; + public ServiceStack.ApiResult ApiForm(string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request) => throw null; + public System.Threading.Tasks.Task> ApiFormAsync(ServiceStack.IReturn request, System.Net.Http.MultipartFormDataContent body, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> ApiFormAsync(string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public string AsyncOneWayBaseUri { get => throw null; set => throw null; } + public string BasePath { get => throw null; set => throw null; } + public string BaseUri { get => throw null; set => throw null; } + public string BearerToken { get => throw null; set => throw null; } + public void CancelAsync() => throw null; + public void ClearCookies() => throw null; + public string ContentType; + public System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } + public System.Net.ICredentials Credentials { get => throw null; set => throw null; } + public void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, object requestDto) => throw null; + public TResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static string DefaultBasePath { get => throw null; set => throw null; } + public const string DefaultHttpMethod = default; + public static string DefaultUserAgent; + public void Delete(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Delete(ServiceStack.IReturn requestDto) => throw null; + public TResponse Delete(object requestDto) => throw null; + public TResponse Delete(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task DeleteAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token) => throw null; public void Dispose() => throw null; - public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; - public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; - public string GetTempQueueName() => throw null; - public InMemoryMessageQueueClient(ServiceStack.Messaging.MessageQueueClientFactory factory) => throw null; - public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; - public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(T messageBody) => throw null; + public bool EnableAutoRefreshToken { get => throw null; set => throw null; } + public ServiceStack.ExceptionFilterHttpDelegate ExceptionFilter { get => throw null; set => throw null; } + public string Format { get => throw null; set => throw null; } + public void Get(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Get(ServiceStack.IReturn requestDto) => throw null; + public TResponse Get(object requestDto) => throw null; + public TResponse Get(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task GetAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl) => throw null; + public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token) => throw null; + public System.Collections.Generic.Dictionary GetCookieValues() => throw null; + public System.Net.Http.HttpClient GetHttpClient() => throw null; + public string GetHttpMethod(object request) => throw null; + public virtual System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; + public static System.Byte[] GetResponseBytes(object response) => throw null; + public static System.Func GlobalHttpMessageHandlerFactory { get => throw null; set => throw null; } + public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } + public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } + public System.Net.Http.HttpClient HttpClient { get => throw null; set => throw null; } + public System.Net.Http.HttpMessageHandler HttpMessageHandler { get => throw null; set => throw null; } + public JsonApiClient(System.Net.Http.HttpClient httpClient) => throw null; + public JsonApiClient(string baseUri) => throw null; + public string Password { get => throw null; set => throw null; } + public void Patch(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Patch(ServiceStack.IReturn requestDto) => throw null; + public TResponse Patch(object requestDto) => throw null; + public TResponse Patch(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PatchAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token) => throw null; + public void Post(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Post(ServiceStack.IReturn requestDto) => throw null; + public TResponse Post(object requestDto) => throw null; + public TResponse Post(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PostAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token) => throw null; + public virtual TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType = default(string), string fieldName = default(string)) => throw null; + public virtual System.Threading.Tasks.Task PostFileAsync(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType = default(string), string fieldName = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public System.Threading.Tasks.Task PostFileWithRequestAsync(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostFileWithRequestAsync(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; + public TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; + public virtual TResponse PostFilesWithRequest(string requestUri, object request, ServiceStack.UploadFile[] files) => throw null; + public System.Threading.Tasks.Task PostFilesWithRequestAsync(object request, System.Collections.Generic.IEnumerable files, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task PostFilesWithRequestAsync(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostFilesWithRequestAsync(string requestUri, object request, ServiceStack.UploadFile[] files, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void Publish(object request) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; + public virtual System.Threading.Tasks.Task PublishAsync(object request, System.Threading.CancellationToken token) => throw null; + public void Put(ServiceStack.IReturnVoid requestDto) => throw null; + public TResponse Put(ServiceStack.IReturn requestDto) => throw null; + public TResponse Put(object requestDto) => throw null; + public TResponse Put(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto) => throw null; + public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PutAsync(object requestDto) => throw null; + public System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request) => throw null; + public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token) => throw null; + public virtual TResponse PutFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType = default(string), string fieldName = default(string)) => throw null; + public string RefreshToken { get => throw null; set => throw null; } + public string RefreshTokenUri { get => throw null; set => throw null; } + public string RequestCompressionType { get => throw null; set => throw null; } + public System.Action RequestFilter { get => throw null; set => throw null; } + public virtual string ResolveTypedUrl(string httpMethod, object requestDto) => throw null; + public virtual string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl) => throw null; + public System.Action ResponseFilter { get => throw null; set => throw null; } + protected T ResultFilter(T response, System.Net.Http.HttpResponseMessage httpRes, string httpMethod, string requestUri, object request) where T : class => throw null; + public ServiceStack.ResultsFilterHttpDelegate ResultsFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterHttpResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } + public virtual TResponse Send(object request) => throw null; + public TResponse Send(string httpMethod, string absoluteUrl, object request) => throw null; + public TResponse Send(string httpMethod, string absoluteUrl, object request, object dto) => throw null; + public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; + public virtual System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public void SendOneWay(object requestDto) => throw null; - public void SendOneWay(string queueName, object requestDto) => throw null; + public virtual System.Threading.Tasks.Task SendAsync(object request) => throw null; + public virtual System.Threading.Tasks.Task SendAsync(object request, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, object dto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public TResponse SendForm(string httpMethod, string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request) => throw null; + public System.Threading.Tasks.Task SendFormAsync(string httpMethod, string relativeOrAbsoluteUrl, System.Net.Http.MultipartFormDataContent request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public void SendOneWay(object request) => throw null; + public void SendOneWay(string relativeOrAbsoluteUrl, object request) => throw null; + public string SessionId { get => throw null; set => throw null; } + public ServiceStack.JsonApiClient SetBaseUri(string baseUri) => throw null; + public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; + public void SetCredentials(string userName, string password) => throw null; + public string SyncReplyBaseUri { get => throw null; set => throw null; } + public void ThrowWebServiceException(System.Net.Http.HttpResponseMessage httpRes, object request, string requestUri, object response) => throw null; + public virtual string ToAbsoluteUrl(string relativeOrAbsoluteUrl) => throw null; + public static ServiceStack.WebServiceException ToWebServiceException(System.Net.Http.HttpResponseMessage httpRes, object response, System.Func parseDtoFn) => throw null; + public ServiceStack.TypedUrlResolverDelegate TypedUrlResolver { get => throw null; set => throw null; } + public ServiceStack.UrlResolverDelegate UrlResolver { get => throw null; set => throw null; } + public string UseBasePath { set => throw null; } + public bool UseCookies { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + public int Version { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Messaging.MessageQueueClientFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MessageQueueClientFactory : ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + // Generated from `ServiceStack.JsonApiClientUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class JsonApiClientUtils { - public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; - public void Dispose() => throw null; - public System.Byte[] GetMessageAsync(string queueName) => throw null; - public MessageQueueClientFactory() => throw null; - public event System.EventHandler MessageReceived; - public void PublishMessage(string queueName, System.Byte[] messageBytes) => throw null; - public void PublishMessage(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public static void AddApiKeyAuth(this System.Net.Http.HttpRequestMessage request, string apiKey) => throw null; + public static void AddBasicAuth(this System.Net.Http.HttpRequestMessage request, string userName, string password) => throw null; + public static void AddBearerToken(this System.Net.Http.HttpRequestMessage request, string bearerToken) => throw null; + public static System.Net.Http.MultipartFormDataContent AddCsvParam(this System.Net.Http.MultipartFormDataContent content, string key, T value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, System.IO.FileInfo file, string mimeType = default(string)) => throw null; + public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, ServiceStack.IO.IVirtualFile file, string mimeType = default(string)) => throw null; + public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, string fileName, System.ReadOnlyMemory fileContents, string mimeType = default(string)) => throw null; + public static System.Net.Http.MultipartFormDataContent AddFile(this System.Net.Http.MultipartFormDataContent content, string fieldName, string fileName, System.IO.Stream fileContents, string mimeType = default(string)) => throw null; + public static System.Threading.Tasks.Task AddFileAsync(this System.Net.Http.MultipartFormDataContent content, string fieldName, System.IO.FileInfo file, string mimeType = default(string)) => throw null; + public static System.Net.Http.HttpContent AddFileInfo(this System.Net.Http.HttpContent content, string fieldName, string fileName, string mimeType = default(string)) => throw null; + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddJsonApiClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string baseUrl) => throw null; + public static System.Net.Http.MultipartFormDataContent AddJsonParam(this System.Net.Http.MultipartFormDataContent content, string key, T value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddJsvParam(this System.Net.Http.MultipartFormDataContent content, string key, T value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParam(this System.Net.Http.MultipartFormDataContent content, string key, object value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParam(this System.Net.Http.MultipartFormDataContent content, string key, string value) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParams(this System.Net.Http.MultipartFormDataContent content, System.Collections.Generic.Dictionary map) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParams(this System.Net.Http.MultipartFormDataContent content, System.Collections.IDictionary map) => throw null; + public static System.Net.Http.MultipartFormDataContent AddParams(this System.Net.Http.MultipartFormDataContent content, T dto) => throw null; + public static System.Threading.Tasks.Task> ApiAppMetadataAsync(this ServiceStack.IHasJsonApiClient instance, bool reload = default(bool)) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturnVoid request) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturn request) => throw null; + public static System.Threading.Tasks.Task> ApiCacheAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturn requestDto) => throw null; + public static string GetContentType(this System.Net.Http.HttpResponseMessage httpRes) => throw null; + public static System.Byte[] ReadAsByteArray(this System.Net.Http.HttpContent content) => throw null; + public static System.ReadOnlyMemory ReadAsMemoryBytes(this System.Net.Http.HttpContent content) => throw null; + public static string ReadAsString(this System.Net.Http.HttpContent content) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IHasJsonApiClient instance, ServiceStack.IReturn request) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Net.Http.Headers.HttpResponseHeaders headers) => throw null; + public static System.Net.Http.HttpContent ToHttpContent(this ServiceStack.IO.IVirtualFile file) => throw null; + public static System.Net.WebHeaderCollection ToWebHeaderCollection(this System.Net.Http.Headers.HttpResponseHeaders headers) => throw null; } - // Generated from `ServiceStack.Messaging.RedisMessageFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisMessageFactory : ServiceStack.Messaging.IMessageFactory, ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + // Generated from `ServiceStack.JsonServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonServiceClient : ServiceStack.ServiceClientBase, ServiceStack.IHasBearerToken, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IJsonServiceClient, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, System.IDisposable { - public ServiceStack.Messaging.IMessageProducer CreateMessageProducer() => throw null; - public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; - public void Dispose() => throw null; - public RedisMessageFactory(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; + public override string ContentType { get => throw null; } + public override T DeserializeFromStream(System.IO.Stream stream) => throw null; + public override string Format { get => throw null; } + public JsonServiceClient() => throw null; + public JsonServiceClient(string baseUri) => throw null; + public JsonServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; + public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; + public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } } - // Generated from `ServiceStack.Messaging.RedisMessageProducer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisMessageProducer : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, System.IDisposable + // Generated from `ServiceStack.JsvServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsvServiceClient : ServiceStack.ServiceClientBase { - public void Dispose() => throw null; - public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(T messageBody) => throw null; - public ServiceStack.Redis.IRedisNativeClient ReadWriteClient { get => throw null; } - public RedisMessageProducer(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; - public RedisMessageProducer(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; - public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public void SendOneWay(object requestDto) => throw null; - public void SendOneWay(string queueName, object requestDto) => throw null; + public override string ContentType { get => throw null; } + public override T DeserializeFromStream(System.IO.Stream stream) => throw null; + public override string Format { get => throw null; } + public JsvServiceClient() => throw null; + public JsvServiceClient(string baseUri) => throw null; + public JsvServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; + public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; + public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } } - // Generated from `ServiceStack.Messaging.RedisMessageQueueClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisMessageQueueClient : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.Messaging.IMessageQueueClient, System.IDisposable + // Generated from `ServiceStack.LinkInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LinkInfo { - public void Ack(ServiceStack.Messaging.IMessage message) => throw null; - public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; - public void Dispose() => throw null; - public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; - public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; - public string GetTempQueueName() => throw null; - public int MaxSuccessQueueSize { get => throw null; set => throw null; } - public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; - public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(T messageBody) => throw null; - public ServiceStack.Redis.IRedisNativeClient ReadOnlyClient { get => throw null; } - public ServiceStack.Redis.IRedisNativeClient ReadWriteClient { get => throw null; } - public RedisMessageQueueClient(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; - public RedisMessageQueueClient(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; - public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public void SendOneWay(object requestDto) => throw null; - public void SendOneWay(string queueName, object requestDto) => throw null; + public string Hide { get => throw null; set => throw null; } + public string Href { get => throw null; set => throw null; } + public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public string Label { get => throw null; set => throw null; } + public LinkInfo() => throw null; + public string Show { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Messaging.RedisMessageQueueClientFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisMessageQueueClientFactory : ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + // Generated from `ServiceStack.LocodeUi` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class LocodeUi { - public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; - public void Dispose() => throw null; - public RedisMessageQueueClientFactory(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; + public ServiceStack.ApiCss Css { get => throw null; set => throw null; } + public LocodeUi() => throw null; + public int MaxFieldLength { get => throw null; set => throw null; } + public int MaxNestedFieldLength { get => throw null; set => throw null; } + public int MaxNestedFields { get => throw null; set => throw null; } + public ServiceStack.AppTags Tags { get => throw null; set => throw null; } } -} -namespace Pcl -{ - // Generated from `ServiceStack.Pcl.HttpUtility` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpUtility + // Generated from `ServiceStack.MediaRule` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MediaRule : ServiceStack.IMeta { - public HttpUtility() => 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 string[] ApplyTo { get => throw null; set => throw null; } + public MediaRule() => throw null; + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Rule { get => throw null; set => throw null; } + public string Size { get => throw null; set => throw null; } } -} -namespace Serialization -{ - // Generated from `ServiceStack.Serialization.DataContractSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DataContractSerializer : ServiceStack.Text.IStringSerializer + // Generated from `ServiceStack.MessageExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MessageExtensions { - public System.Byte[] Compress(XmlDto from) => throw null; - public void CompressToStream(XmlDto from, System.IO.Stream stream) => throw null; - public DataContractSerializer(System.Xml.XmlDictionaryReaderQuotas quotas = default(System.Xml.XmlDictionaryReaderQuotas)) => throw null; - public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public T DeserializeFromStream(System.IO.Stream stream) => throw null; - public object DeserializeFromString(string xml, System.Type type) => throw null; - public T DeserializeFromString(string xml) => throw null; - public static ServiceStack.Serialization.DataContractSerializer Instance; - public string Parse(XmlDto from, bool indentXml) => throw null; - public void SerializeToStream(object obj, System.IO.Stream stream) => throw null; - public string SerializeToString(XmlDto from) => throw null; + public static ServiceStack.Messaging.IMessageProducer CreateMessageProducer(this ServiceStack.Messaging.IMessageService mqServer) => throw null; + public static ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient(this ServiceStack.Messaging.IMessageService mqServer) => throw null; + public static System.Byte[] ToBytes(this ServiceStack.Messaging.IMessage message) => throw null; + public static System.Byte[] ToBytes(this ServiceStack.Messaging.IMessage message) => throw null; + public static string ToDlqQueueName(this ServiceStack.Messaging.IMessage message) => throw null; + public static string ToInQueueName(this ServiceStack.Messaging.IMessage message) => throw null; + public static string ToInQueueName(this ServiceStack.Messaging.IMessage message) => throw null; + public static ServiceStack.Messaging.IMessage ToMessage(this System.Byte[] bytes, System.Type ofType) => throw null; + public static ServiceStack.Messaging.Message ToMessage(this System.Byte[] bytes) => throw null; + public static string ToString(System.Byte[] bytes) => throw null; } - // Generated from `ServiceStack.Serialization.IStringStreamSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IStringStreamSerializer + // Generated from `ServiceStack.MetaAuthProvider` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetaAuthProvider : ServiceStack.IMeta { - object DeserializeFromStream(System.Type type, System.IO.Stream stream); - T DeserializeFromStream(System.IO.Stream stream); - void SerializeToStream(T obj, System.IO.Stream stream); + public System.Collections.Generic.List FormLayout { get => throw null; set => throw null; } + public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } + public string Label { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public MetaAuthProvider() => throw null; + public string Name { get => throw null; set => throw null; } + public ServiceStack.NavItem NavItem { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Serialization.JsonDataContractSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonDataContractSerializer : ServiceStack.Text.IStringSerializer + // Generated from `ServiceStack.MetadataApp` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataApp : ServiceStack.IReturn, ServiceStack.IReturn { - public static object BclDeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public static object BclDeserializeFromString(string json, System.Type returnType) => throw null; - public static void BclSerializeToStream(T obj, System.IO.Stream stream) => throw null; - public static string BclSerializeToString(T obj) => throw null; - public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public T DeserializeFromStream(System.IO.Stream stream) => throw null; - public object DeserializeFromString(string json, System.Type returnType) => throw null; - public T DeserializeFromString(string json) => throw null; - public static ServiceStack.Serialization.JsonDataContractSerializer Instance; - public JsonDataContractSerializer() => throw null; - public void SerializeToStream(T obj, System.IO.Stream stream) => throw null; - public string SerializeToString(T obj) => throw null; - public ServiceStack.Text.IStringSerializer TextSerializer { get => throw null; set => throw null; } - public bool UseBcl { get => throw null; set => throw null; } - public static void UseSerializer(ServiceStack.Text.IStringSerializer textSerializer) => throw null; + public System.Collections.Generic.List IncludeTypes { get => throw null; set => throw null; } + public MetadataApp() => throw null; + public string View { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Serialization.KeyValueDataContractDeserializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class KeyValueDataContractDeserializer + // Generated from `ServiceStack.MetadataAttribute` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataAttribute { - public static ServiceStack.Serialization.KeyValueDataContractDeserializer Instance; - public KeyValueDataContractDeserializer() => throw null; - public object Parse(System.Collections.Generic.IDictionary keyValuePairs, System.Type returnType) => throw null; - public object Parse(System.Collections.Specialized.NameValueCollection nameValues, System.Type returnType) => throw null; - public To Parse(System.Collections.Generic.IDictionary keyValuePairs) => throw null; - public object Populate(object instance, System.Collections.Specialized.NameValueCollection nameValues, System.Type returnType) => throw null; + public System.Collections.Generic.List Args { get => throw null; set => throw null; } + public System.Attribute Attribute { get => throw null; set => throw null; } + public System.Collections.Generic.List ConstructorArgs { get => throw null; set => throw null; } + public MetadataAttribute() => throw null; + public string Name { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Serialization.RequestBindingError` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestBindingError + // Generated from `ServiceStack.MetadataDataContract` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataDataContract { - public string ErrorMessage { get => throw null; set => throw null; } - public string PropertyName { get => throw null; set => throw null; } + public MetadataDataContract() => throw null; + public string Name { get => throw null; set => throw null; } + public string Namespace { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MetadataDataMember` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataDataMember + { + public bool? EmitDefaultValue { get => throw null; set => throw null; } + public bool? IsRequired { get => throw null; set => throw null; } + public MetadataDataMember() => throw null; + public string Name { get => throw null; set => throw null; } + public int? Order { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MetadataOperationType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataOperationType + { + public System.Collections.Generic.List Actions { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName DataModel { get => throw null; set => throw null; } + public MetadataOperationType() => throw null; + public string Method { get => throw null; set => throw null; } + public ServiceStack.MetadataType Request { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiresAnyPermission { get => throw null; set => throw null; } + public System.Collections.Generic.List RequiresAnyRole { get => throw null; set => throw null; } + public bool? RequiresAuth { get => throw null; set => throw null; } + public ServiceStack.MetadataType Response { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName ReturnType { get => throw null; set => throw null; } + public bool? ReturnsVoid { get => throw null; set => throw null; } + public System.Collections.Generic.List Routes { get => throw null; set => throw null; } + public System.Collections.Generic.List Tags { get => throw null; set => throw null; } + public ServiceStack.ApiUiInfo Ui { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName ViewModel { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.MetadataPropertyType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataPropertyType + { + public int? AllowableMax { get => throw null; set => throw null; } + public int? AllowableMin { get => throw null; set => throw null; } + public string[] AllowableValues { get => throw null; set => throw null; } + public System.Collections.Generic.List Attributes { get => throw null; set => throw null; } + public ServiceStack.MetadataDataMember DataMember { get => throw null; set => throw null; } + public string Description { get => throw null; set => throw null; } + public string DisplayType { get => throw null; set => throw null; } + public ServiceStack.FormatInfo Format { get => throw null; set => throw null; } + public string[] GenericArgs { get => throw null; set => throw null; } + public ServiceStack.InputInfo Input { get => throw null; set => throw null; } + public bool? IsEnum { get => throw null; set => throw null; } + public bool? IsPrimaryKey { get => throw null; set => throw null; } + public bool? IsRequired { get => throw null; set => throw null; } + public bool? IsValueType { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public MetadataPropertyType() => throw null; + public string Name { get => throw null; set => throw null; } + public string Namespace { get => throw null; set => throw null; } + public string ParamType { get => throw null; set => throw null; } + public System.Reflection.PropertyInfo PropertyInfo { get => throw null; set => throw null; } public System.Type PropertyType { get => throw null; set => throw null; } - public string PropertyValueString { get => throw null; set => throw null; } - public RequestBindingError() => throw null; + public bool? ReadOnly { get => throw null; set => throw null; } + public ServiceStack.RefInfo Ref { get => throw null; set => throw null; } + public string Type { get => throw null; set => throw null; } + public string Value { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Serialization.StringMapTypeDeserializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringMapTypeDeserializer + // Generated from `ServiceStack.MetadataRoute` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataRoute { - public static System.Collections.Generic.Dictionary ContentTypeStringSerializers { get => throw null; } - public object CreateFromMap(System.Collections.Generic.IDictionary keyValuePairs) => throw null; - public object CreateFromMap(System.Collections.Specialized.NameValueCollection nameValues) => throw null; - public object PopulateFromMap(object instance, System.Collections.Generic.IDictionary keyValuePairs, System.Collections.Generic.HashSet ignoredWarningsOnPropertyNames = default(System.Collections.Generic.HashSet)) => throw null; - public object PopulateFromMap(object instance, System.Collections.Specialized.NameValueCollection nameValues, System.Collections.Generic.HashSet ignoredWarningsOnPropertyNames = default(System.Collections.Generic.HashSet)) => throw null; - public StringMapTypeDeserializer(System.Type type) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary TypeStringSerializers { get => throw null; } + public MetadataRoute() => throw null; + public string Notes { get => throw null; set => throw null; } + public string Path { get => throw null; set => throw null; } + public ServiceStack.RouteAttribute RouteAttribute { get => throw null; set => throw null; } + public string Summary { get => throw null; set => throw null; } + public string Verbs { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Serialization.XmlSerializableSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlSerializableSerializer : ServiceStack.Text.IStringSerializer + // Generated from `ServiceStack.MetadataType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataType : ServiceStack.IMeta { - public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public object DeserializeFromString(string xml, System.Type type) => throw null; - public To DeserializeFromString(string xml) => throw null; - public static ServiceStack.Serialization.XmlSerializableSerializer Instance; - public To Parse(System.IO.Stream from) => throw null; - public To Parse(System.IO.TextReader from) => throw null; - public void SerializeToStream(object obj, System.IO.Stream stream) => throw null; - public string SerializeToString(XmlDto from) => throw null; - public XmlSerializableSerializer() => throw null; - public static System.Xml.XmlWriterSettings XmlWriterSettings { get => throw null; set => throw null; } + public System.Collections.Generic.List Attributes { get => throw null; set => throw null; } + public ServiceStack.MetadataDataContract DataContract { get => throw null; set => throw null; } + public string Description { get => throw null; set => throw null; } + public string DisplayType { get => throw null; set => throw null; } + public System.Collections.Generic.List EnumDescriptions { get => throw null; set => throw null; } + public System.Collections.Generic.List EnumMemberValues { get => throw null; set => throw null; } + public System.Collections.Generic.List EnumNames { get => throw null; set => throw null; } + public System.Collections.Generic.List EnumValues { get => throw null; set => throw null; } + protected bool Equals(ServiceStack.MetadataType other) => throw null; + public override bool Equals(object obj) => throw null; + public string[] GenericArgs { get => throw null; set => throw null; } + public string GetFullName() => throw null; + public override int GetHashCode() => throw null; + public ServiceStack.ImageInfo Icon { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName[] Implements { get => throw null; set => throw null; } + public ServiceStack.MetadataTypeName Inherits { get => throw null; set => throw null; } + public System.Collections.Generic.List InnerTypes { get => throw null; set => throw null; } + public bool? IsAbstract { get => throw null; set => throw null; } + public bool IsClass { get => throw null; } + public bool? IsEnum { get => throw null; set => throw null; } + public bool? IsEnumInt { get => throw null; set => throw null; } + public bool? IsInterface { get => throw null; set => throw null; } + public bool? IsNested { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public MetadataType() => throw null; + public string Name { get => throw null; set => throw null; } + public string Namespace { get => throw null; set => throw null; } + public string Notes { get => throw null; set => throw null; } + public System.Collections.Generic.List Properties { get => throw null; set => throw null; } + public ServiceStack.MetadataOperationType RequestType { get => throw null; set => throw null; } + public System.Type Type { get => throw null; set => throw null; } } - // Generated from `ServiceStack.Serialization.XmlSerializerWrapper` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlSerializerWrapper : System.Runtime.Serialization.XmlObjectSerializer + // Generated from `ServiceStack.MetadataTypeExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MetadataTypeExtensions { - public static string GetNamespace(System.Type type) => throw null; - public override bool IsStartObject(System.Xml.XmlDictionaryReader reader) => throw null; - public override object ReadObject(System.Xml.XmlDictionaryReader reader) => throw null; - public override object ReadObject(System.Xml.XmlDictionaryReader reader, bool verifyObjectName) => throw null; - public override void WriteEndObject(System.Xml.XmlDictionaryWriter writer) => throw null; - public override void WriteObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; - public override void WriteObjectContent(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; - public override void WriteStartObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; - public XmlSerializerWrapper(System.Type type) => throw null; - public XmlSerializerWrapper(System.Type type, string name, string ns) => throw null; + public static System.Collections.Generic.List GetOperationsByTags(this ServiceStack.MetadataTypes types, string[] tags) => throw null; + public static System.Collections.Generic.List GetRoutes(this System.Collections.Generic.List operations, ServiceStack.MetadataType type) => throw null; + public static System.Collections.Generic.List GetRoutes(this System.Collections.Generic.List operations, string typeName) => throw null; + public static bool ImplementsAny(this ServiceStack.MetadataType type, System.Collections.Generic.HashSet typeNames) => throw null; + public static bool ImplementsAny(this ServiceStack.MetadataType type, params string[] typeNames) => throw null; + public static bool InheritsAny(this ServiceStack.MetadataType type, System.Collections.Generic.HashSet typeNames) => throw null; + public static bool InheritsAny(this ServiceStack.MetadataType type, params string[] typeNames) => throw null; + public static bool IsSystemOrServiceStackType(this ServiceStack.MetadataTypeName metaRef) => throw null; + public static bool ReferencesAny(this ServiceStack.MetadataOperationType op, params string[] typeNames) => throw null; + public static string ToScriptSignature(this ServiceStack.ScriptMethodType method) => throw null; } -} -namespace Support -{ - // Generated from `ServiceStack.Support.NetDeflateProvider` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetDeflateProvider : ServiceStack.Caching.IDeflateProvider + // Generated from `ServiceStack.MetadataTypeName` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataTypeName { - public System.Byte[] Deflate(System.Byte[] bytes) => throw null; - public System.Byte[] Deflate(string text) => throw null; - public System.IO.Stream DeflateStream(System.IO.Stream outputStream) => throw null; - public string Inflate(System.Byte[] gzBuffer) => throw null; - public System.Byte[] InflateBytes(System.Byte[] gzBuffer) => throw null; - public System.IO.Stream InflateStream(System.IO.Stream inputStream) => throw null; - public static ServiceStack.Support.NetDeflateProvider Instance { get => throw null; } - public NetDeflateProvider() => throw null; + public string[] GenericArgs { get => throw null; set => throw null; } + public MetadataTypeName() => throw null; + public string Name { 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; } } - // Generated from `ServiceStack.Support.NetGZipProvider` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetGZipProvider : ServiceStack.Caching.IGZipProvider + // Generated from `ServiceStack.MetadataTypes` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataTypes { - public string GUnzip(System.Byte[] gzBuffer) => throw null; - public System.Byte[] GUnzipBytes(System.Byte[] gzBuffer) => throw null; - public System.IO.Stream GUnzipStream(System.IO.Stream inputStream) => throw null; - public System.Byte[] GZip(System.Byte[] bytes) => throw null; - public System.Byte[] GZip(string text) => throw null; - public System.IO.Stream GZipStream(System.IO.Stream outputStream) => throw null; - public static ServiceStack.Support.NetGZipProvider Instance { get => throw null; } - public NetGZipProvider() => throw null; + public ServiceStack.MetadataTypesConfig Config { get => throw null; set => throw null; } + public MetadataTypes() => throw null; + public System.Collections.Generic.List Namespaces { get => throw null; set => throw null; } + public System.Collections.Generic.List Operations { get => throw null; set => throw null; } + public System.Collections.Generic.List Types { get => throw null; set => throw null; } } -} -namespace Validation -{ - // Generated from `ServiceStack.Validation.ValidationError` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationError : System.ArgumentException, ServiceStack.Model.IResponseStatusConvertible + // Generated from `ServiceStack.MetadataTypesConfig` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MetadataTypesConfig + { + public bool AddDataContractAttributes { get => throw null; set => throw null; } + public string AddDefaultXmlNamespace { get => throw null; set => throw null; } + public bool AddDescriptionAsComments { get => throw null; set => throw null; } + public bool AddGeneratedCodeAttributes { get => throw null; set => throw null; } + public int? AddImplicitVersion { get => throw null; set => throw null; } + public bool AddIndexesToDataMembers { get => throw null; set => throw null; } + public bool AddModelExtensions { get => throw null; set => throw null; } + public System.Collections.Generic.List AddNamespaces { get => throw null; set => throw null; } + public bool AddPropertyAccessors { get => throw null; set => throw null; } + public bool AddResponseStatus { get => throw null; set => throw null; } + public bool AddReturnMarker { get => throw null; set => throw null; } + public bool AddServiceStackTypes { get => throw null; set => throw null; } + public string BaseClass { get => throw null; set => throw null; } + public string BaseUrl { get => throw null; set => throw null; } + public string DataClass { get => throw null; set => throw null; } + public string DataClassJson { get => throw null; set => throw null; } + public System.Collections.Generic.List DefaultImports { get => throw null; set => throw null; } + public System.Collections.Generic.List DefaultNamespaces { get => throw null; set => throw null; } + public bool ExcludeGenericBaseTypes { get => throw null; set => throw null; } + public bool ExcludeImplementedInterfaces { get => throw null; set => throw null; } + public bool ExcludeNamespace { get => throw null; set => throw null; } + public System.Collections.Generic.List ExcludeTypes { get => throw null; set => throw null; } + public bool ExportAsTypes { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet ExportAttributes { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet ExportTypes { get => throw null; set => throw null; } + public bool ExportValueTypes { get => throw null; set => throw null; } + public string GlobalNamespace { get => throw null; set => throw null; } + public System.Collections.Generic.HashSet IgnoreTypes { get => throw null; set => throw null; } + public System.Collections.Generic.List IgnoreTypesInNamespaces { get => throw null; set => throw null; } + public System.Collections.Generic.List IncludeTypes { get => throw null; set => throw null; } + public bool InitializeCollections { get => throw null; set => throw null; } + public bool MakeDataContractsExtensible { get => throw null; set => throw null; } + public bool MakeInternal { get => throw null; set => throw null; } + public bool MakePartial { get => throw null; set => throw null; } + public bool MakePropertiesOptional { get => throw null; set => throw null; } + public bool MakeVirtual { get => throw null; set => throw null; } + public MetadataTypesConfig(string baseUrl = default(string), bool makePartial = default(bool), bool makeVirtual = default(bool), bool addReturnMarker = default(bool), bool convertDescriptionToComments = default(bool), bool addDataContractAttributes = default(bool), bool addIndexesToDataMembers = default(bool), bool addGeneratedCodeAttributes = default(bool), string addDefaultXmlNamespace = default(string), string baseClass = default(string), string package = default(string), bool addResponseStatus = default(bool), bool addServiceStackTypes = default(bool), bool addModelExtensions = default(bool), bool addPropertyAccessors = default(bool), bool excludeGenericBaseTypes = default(bool), bool settersReturnThis = default(bool), bool makePropertiesOptional = default(bool), bool makeDataContractsExtensible = default(bool), bool initializeCollections = default(bool), int? addImplicitVersion = default(int?)) => throw null; + public string Package { get => throw null; set => throw null; } + public bool SettersReturnThis { get => throw null; set => throw null; } + public System.Collections.Generic.List TreatTypesAsStrings { get => throw null; set => throw null; } + public string UsePath { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ModifyValidationRules` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ModifyValidationRules : ServiceStack.IReturn, ServiceStack.IReturnVoid + { + public string AuthSecret { get => throw null; set => throw null; } + public bool? ClearCache { get => throw null; set => throw null; } + public int[] DeleteRuleIds { get => throw null; set => throw null; } + public ModifyValidationRules() => throw null; + public System.Collections.Generic.List SaveRules { get => throw null; set => throw null; } + public int[] SuspendRuleIds { get => throw null; set => throw null; } + public int[] UnsuspendRuleIds { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.NameValueCollectionWrapperExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class NameValueCollectionWrapperExtensions + { + public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Specialized.NameValueCollection nameValues) => throw null; + public static string ToFormUrlEncoded(this System.Collections.Specialized.NameValueCollection queryParams) => throw null; + public static System.Collections.Specialized.NameValueCollection ToNameValueCollection(this System.Collections.Generic.Dictionary map) => throw null; + } + + // Generated from `ServiceStack.NetStandardPclExportClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetStandardPclExportClient : ServiceStack.PclExportClient + { + public static ServiceStack.PclExportClient Configure() => throw null; + public override string GetHeader(System.Net.WebHeaderCollection headers, string name, System.Func valuePredicate) => throw null; + public NetStandardPclExportClient() => throw null; + public static ServiceStack.NetStandardPclExportClient Provider; + public override void SetIfModifiedSince(System.Net.HttpWebRequest webReq, System.DateTime lastModified) => throw null; + } + + // Generated from `ServiceStack.NewInstanceResolver` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NewInstanceResolver : ServiceStack.Configuration.IResolver + { + public NewInstanceResolver() => throw null; + public T TryResolve() => throw null; + } + + // Generated from `ServiceStack.PclExportClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PclExportClient + { + public virtual void AddHeader(System.Net.WebRequest webReq, System.Collections.Specialized.NameValueCollection headers) => throw null; + public virtual void CloseReadStream(System.IO.Stream stream) => throw null; + public virtual void CloseWriteStream(System.IO.Stream stream) => throw null; + public static void Configure(ServiceStack.PclExportClient instance) => throw null; + public static bool ConfigureProvider(string typeName) => throw null; + public virtual System.Exception CreateTimeoutException(System.Exception ex, string errorMsg) => throw null; + public virtual ServiceStack.ITimer CreateTimer(System.Threading.TimerCallback cb, System.TimeSpan timeOut, object state) => throw null; + public static System.Threading.Tasks.Task EmptyTask; + public virtual string GetHeader(System.Net.WebHeaderCollection headers, string name, System.Func valuePredicate) => throw null; + public virtual string HtmlAttributeEncode(string html) => throw null; + public virtual string HtmlDecode(string html) => throw null; + public virtual string HtmlEncode(string html) => throw null; + public static ServiceStack.PclExportClient Instance; + public virtual bool IsWebException(System.Net.WebException webEx) => throw null; + public System.Collections.Specialized.NameValueCollection NewNameValueCollection() => throw null; + public virtual System.Collections.Specialized.NameValueCollection ParseQueryString(string query) => throw null; + public PclExportClient() => throw null; + public virtual void RunOnUiThread(System.Action fn) => throw null; + public virtual void SetCookieContainer(System.Net.HttpWebRequest webRequest, ServiceStack.AsyncServiceClient client) => throw null; + public virtual void SetCookieContainer(System.Net.HttpWebRequest webRequest, ServiceStack.ServiceClientBase client) => throw null; + public virtual void SetIfModifiedSince(System.Net.HttpWebRequest webReq, System.DateTime lastModified) => throw null; + public virtual void SynchronizeCookies(ServiceStack.AsyncServiceClient client) => throw null; + public System.Threading.SynchronizationContext UiContext; + public virtual string UrlDecode(string url) => throw null; + public virtual string UrlEncode(string url) => throw null; + public virtual System.Threading.Tasks.Task WaitAsync(int waitForMs) => throw null; + } + + // Generated from `ServiceStack.PlatformRsaUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class PlatformRsaUtils + { + public static System.Byte[] Decrypt(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes) => throw null; + public static System.Byte[] Encrypt(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes) => throw null; + public static string ExportToXml(System.Security.Cryptography.RSAParameters csp, bool includePrivateParameters) => throw null; + public static System.Security.Cryptography.RSAParameters ExtractFromXml(string xml) => throw null; + public static void FromXml(this System.Security.Cryptography.RSA rsa, string xml) => throw null; + public static System.Byte[] SignData(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes, string hashAlgorithm) => throw null; + public static System.Security.Cryptography.HashAlgorithmName ToHashAlgorithmName(string hashAlgorithm) => throw null; + public static string ToXml(this System.Security.Cryptography.RSA rsa, bool includePrivateParameters) => throw null; + public static bool VerifyData(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes, System.Byte[] signature, string hashAlgorithm) => throw null; + } + + // Generated from `ServiceStack.PluginInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class PluginInfo : ServiceStack.IMeta + { + public ServiceStack.AdminUsersInfo AdminUsers { get => throw null; set => throw null; } + public ServiceStack.AuthInfo Auth { get => throw null; set => throw null; } + public ServiceStack.AutoQueryInfo AutoQuery { get => throw null; set => throw null; } + public ServiceStack.FilesUploadInfo FilesUpload { get => throw null; set => throw null; } + public System.Collections.Generic.List Loaded { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public PluginInfo() => throw null; + public ServiceStack.ProfilingInfo Profiling { get => throw null; set => throw null; } + public ServiceStack.RequestLogsInfo RequestLogs { get => throw null; set => throw null; } + public ServiceStack.SharpPagesInfo SharpPages { get => throw null; set => throw null; } + public ServiceStack.ValidationInfo Validation { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ProfilingInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ProfilingInfo : ServiceStack.IMeta + { + public string AccessRole { get => throw null; set => throw null; } + public int DefaultLimit { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ProfilingInfo() => throw null; + public System.Collections.Generic.List SummaryFields { get => throw null; set => throw null; } + public string TagLabel { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ProgressDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void ProgressDelegate(System.Int64 done, System.Int64 total); + + // Generated from `ServiceStack.RefInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RefInfo + { + public string Model { get => throw null; set => throw null; } + public string RefId { get => throw null; set => throw null; } + public RefInfo() => throw null; + public string RefLabel { get => throw null; set => throw null; } + public string SelfId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RefreshTokenException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RefreshTokenException : ServiceStack.WebServiceException + { + public RefreshTokenException(ServiceStack.WebServiceException webEx) => throw null; + public RefreshTokenException(string message) => throw null; + public RefreshTokenException(string message, System.Exception innerException) => throw null; + } + + // Generated from `ServiceStack.RegenerateApiKeys` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RegenerateApiKeys : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public string Environment { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public RegenerateApiKeys() => throw null; + } + + // Generated from `ServiceStack.RegenerateApiKeysResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RegenerateApiKeysResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public RegenerateApiKeysResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Register` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class Register : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public bool? AutoLogin { get => throw null; set => throw null; } + public string ConfirmPassword { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public string Email { get => throw null; set => throw null; } + public string ErrorView { get => throw null; set => throw null; } + public string FirstName { get => throw null; set => throw null; } + public string LastName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public Register() => throw null; + public string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RegisterResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RegisterResponse : ServiceStack.IHasBearerToken, ServiceStack.IHasRefreshToken, ServiceStack.IHasResponseStatus, ServiceStack.IHasSessionId, ServiceStack.IMeta + { + public string BearerToken { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public string ReferrerUrl { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public RegisterResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public string SessionId { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ReplaceFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReplaceFileUpload : ServiceStack.IHasBearerToken, ServiceStack.IPut, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public string BearerToken { 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 ReplaceFileUpload() => throw null; + } + + // Generated from `ServiceStack.ReplaceFileUploadResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ReplaceFileUploadResponse + { + public ReplaceFileUploadResponse() => throw null; + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RequestLogsInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestLogsInfo : ServiceStack.IMeta + { + public string AccessRole { get => throw null; set => throw null; } + public int DefaultLimit { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string RequestLogger { get => throw null; set => throw null; } + public RequestLogsInfo() => throw null; + public string[] RequiredRoles { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ResponseStatusUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ResponseStatusUtils + { + public static ServiceStack.ResponseStatus CreateResponseStatus(string errorCode, string errorMessage, System.Collections.Generic.IEnumerable validationErrors = default(System.Collections.Generic.IEnumerable)) => throw null; + } + + // Generated from `ServiceStack.RestRoute` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RestRoute + { + public ServiceStack.RouteResolutionResult Apply(object request, string httpMethod) => throw null; + public const string EmptyArray = default; + public string ErrorMsg { get => throw null; set => throw null; } + public static System.Func FormatQueryParameterValue; + public string FormatQueryParameters(object request) => throw null; + public static System.Func FormatVariable; + public string[] HttpMethods { get => throw null; } + public bool IsValid { get => throw null; } + public string Path { get => throw null; } + public int Priority { get => throw null; } + public System.Collections.Generic.List QueryStringVariables { get => throw null; } + public RestRoute(System.Type type, string path, string verbs, int priority) => throw null; + public System.Type Type { get => throw null; set => throw null; } + public System.Collections.Generic.ICollection Variables { get => throw null; } + } + + // Generated from `ServiceStack.ResultsFilterDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ResultsFilterDelegate(System.Type responseType, string httpMethod, string requestUri, object request); + + // Generated from `ServiceStack.ResultsFilterHttpDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate object ResultsFilterHttpDelegate(System.Type responseType, string httpMethod, string requestUri, object request); + + // Generated from `ServiceStack.ResultsFilterHttpResponseDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void ResultsFilterHttpResponseDelegate(System.Net.Http.HttpResponseMessage webResponse, object response, string httpMethod, string requestUri, object request); + + // Generated from `ServiceStack.ResultsFilterResponseDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void ResultsFilterResponseDelegate(System.Net.WebResponse webResponse, object response, string httpMethod, string requestUri, object request); + + // Generated from `ServiceStack.RouteResolutionResult` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RouteResolutionResult + { + public static ServiceStack.RouteResolutionResult Error(ServiceStack.RestRoute route, string errorMsg) => throw null; + public string FailReason { get => throw null; set => throw null; } + public bool Matches { get => throw null; } + public ServiceStack.RestRoute Route { get => throw null; set => throw null; } + public RouteResolutionResult() => throw null; + public static ServiceStack.RouteResolutionResult Success(ServiceStack.RestRoute route, string uri) => throw null; + public string Uri { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.RsaKeyLengths` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public enum RsaKeyLengths + { + Bit1024, + Bit2048, + Bit4096, + } + + // Generated from `ServiceStack.RsaKeyPair` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RsaKeyPair + { + public string PrivateKey { get => throw null; set => throw null; } + public string PublicKey { get => throw null; set => throw null; } + public RsaKeyPair() => throw null; + } + + // Generated from `ServiceStack.RsaUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class RsaUtils + { + public static System.Byte[] Authenticate(System.Byte[] dataToSign, System.Security.Cryptography.RSAParameters privateKey, string hashAlgorithm = default(string), ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static System.Security.Cryptography.RSAParameters CreatePrivateKeyParams(ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static ServiceStack.RsaKeyPair CreatePublicAndPrivateKeyPair(ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, System.Security.Cryptography.RSAParameters privateKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, string privateKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string Decrypt(this string text) => throw null; + public static string Decrypt(string encryptedText, System.Security.Cryptography.RSAParameters privateKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string Decrypt(string encryptedText, string privateKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static ServiceStack.RsaKeyPair DefaultKeyPair; + public static bool DoOAEPPadding; + public static System.Byte[] Encrypt(System.Byte[] bytes, System.Security.Cryptography.RSAParameters publicKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static System.Byte[] Encrypt(System.Byte[] bytes, string publicKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string Encrypt(this string text) => throw null; + public static string Encrypt(string text, System.Security.Cryptography.RSAParameters publicKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string Encrypt(string text, string publicKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + public static string FromPrivateRSAParameters(this System.Security.Cryptography.RSAParameters privateKey) => throw null; + public static string FromPublicRSAParameters(this System.Security.Cryptography.RSAParameters publicKey) => throw null; + public static ServiceStack.RsaKeyLengths KeyLength; + public static string ToPrivateKeyXml(this System.Security.Cryptography.RSAParameters privateKey) => throw null; + public static System.Security.Cryptography.RSAParameters ToPrivateRSAParameters(this string privateKeyXml) => throw null; + public static string ToPublicKeyXml(this System.Security.Cryptography.RSAParameters publicKey) => throw null; + public static System.Security.Cryptography.RSAParameters ToPublicRSAParameters(this string publicKeyXml) => throw null; + public static System.Security.Cryptography.RSAParameters ToPublicRsaParameters(this System.Security.Cryptography.RSAParameters privateKey) => throw null; + public static bool Verify(System.Byte[] dataToVerify, System.Byte[] signature, System.Security.Cryptography.RSAParameters publicKey, string hashAlgorithm = default(string), ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; + } + + // Generated from `ServiceStack.ScriptMethodType` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ScriptMethodType + { + public string Name { get => throw null; set => throw null; } + public string[] ParamNames { get => throw null; set => throw null; } + public string[] ParamTypes { get => throw null; set => throw null; } + public string ReturnType { get => throw null; set => throw null; } + public ScriptMethodType() => throw null; + } + + // Generated from `ServiceStack.ServerEventCallback` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate void ServerEventCallback(ServiceStack.ServerEventsClient source, ServiceStack.ServerEventMessage args); + + // Generated from `ServiceStack.ServerEventClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServerEventClientExtensions + { + public static ServiceStack.AuthenticateResponse Authenticate(this ServiceStack.ServerEventsClient client, ServiceStack.Authenticate request) => throw null; + public static System.Threading.Tasks.Task AuthenticateAsync(this ServiceStack.ServerEventsClient client, ServiceStack.Authenticate request) => throw null; + public static System.Collections.Generic.List GetChannelSubscribers(this ServiceStack.ServerEventsClient client) => throw null; + public static System.Threading.Tasks.Task> GetChannelSubscribersAsync(this ServiceStack.ServerEventsClient client) => throw null; + public static T Populate(this T dst, ServiceStack.ServerEventMessage src, System.Collections.Generic.Dictionary msg) where T : ServiceStack.ServerEventMessage => throw null; + public static ServiceStack.ServerEventsClient RegisterHandlers(this ServiceStack.ServerEventsClient client, System.Collections.Generic.Dictionary handlers) => throw null; + public static void SubscribeToChannels(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; + public static System.Threading.Tasks.Task SubscribeToChannelsAsync(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; + public static void UnsubscribeFromChannels(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; + public static System.Threading.Tasks.Task UnsubscribeFromChannelsAsync(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; + public static void UpdateSubscriber(this ServiceStack.ServerEventsClient client, ServiceStack.UpdateEventSubscriber request) => throw null; + public static System.Threading.Tasks.Task UpdateSubscriberAsync(this ServiceStack.ServerEventsClient client, ServiceStack.UpdateEventSubscriber request) => throw null; + } + + // Generated from `ServiceStack.ServerEventCommand` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventCommand : ServiceStack.ServerEventMessage + { + public string[] Channels { get => throw null; set => throw null; } + public System.DateTime CreatedAt { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public bool IsAuthenticated { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public ServerEventCommand() => throw null; + public string UserId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ServerEventConnect` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventConnect : ServiceStack.ServerEventCommand + { + public System.Int64 HeartbeatIntervalMs { get => throw null; set => throw null; } + public string HeartbeatUrl { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Int64 IdleTimeoutMs { get => throw null; set => throw null; } + public ServerEventConnect() => throw null; + public string UnRegisterUrl { get => throw null; set => throw null; } + public string UpdateSubscriberUrl { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ServerEventHeartbeat` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventHeartbeat : ServiceStack.ServerEventCommand + { + public ServerEventHeartbeat() => throw null; + } + + // Generated from `ServiceStack.ServerEventJoin` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventJoin : ServiceStack.ServerEventCommand + { + public ServerEventJoin() => throw null; + } + + // Generated from `ServiceStack.ServerEventLeave` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventLeave : ServiceStack.ServerEventCommand + { + public ServerEventLeave() => throw null; + } + + // Generated from `ServiceStack.ServerEventMessage` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventMessage : ServiceStack.IMeta + { + public string Channel { get => throw null; set => throw null; } + public string CssSelector { get => throw null; set => throw null; } + public string Data { get => throw null; set => throw null; } + public System.Int64 EventId { get => throw null; set => throw null; } + public string Json { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Op { get => throw null; set => throw null; } + public string Selector { get => throw null; set => throw null; } + public ServerEventMessage() => throw null; + public string Target { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ServerEventReceiver` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventReceiver : ServiceStack.IReceiver + { + public ServiceStack.ServerEventsClient Client { get => throw null; set => throw null; } + public static ServiceStack.Logging.ILog Log; + public virtual void NoSuchMethod(string selector, object message) => throw null; + public ServiceStack.ServerEventMessage Request { get => throw null; set => throw null; } + public ServerEventReceiver() => throw null; + } + + // Generated from `ServiceStack.ServerEventUpdate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventUpdate : ServiceStack.ServerEventCommand + { + public ServerEventUpdate() => throw null; + } + + // Generated from `ServiceStack.ServerEventUser` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventUser : ServiceStack.IMeta + { + public string[] Channels { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public ServerEventUser() => throw null; + public string UserId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ServerEventsClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ServerEventsClient : System.IDisposable + { + public ServiceStack.ServerEventsClient AddListener(string eventName, System.Action handler) => throw null; + public System.Action AllRequestFilters { get => throw null; set => throw null; } + public string BaseUri { get => throw null; set => throw null; } + public static int BufferSize; + public string[] Channels { get => throw null; set => throw null; } + public System.Threading.Tasks.Task Connect() => throw null; + public string ConnectionDisplayName { get => throw null; } + public ServiceStack.ServerEventConnect ConnectionInfo { get => throw null; set => throw null; } + public void Dispose() => throw null; + public string EventStreamPath { get => throw null; set => throw null; } + public System.Action EventStreamRequestFilter { get => throw null; set => throw null; } + public string EventStreamUri { get => throw null; set => throw null; } + public virtual string GetStatsDescription() => throw null; + public System.Collections.Concurrent.ConcurrentDictionary Handlers { get => throw null; } + public bool HasListener(string eventName, System.Action handler) => throw null; + public bool HasListeners(string eventName) => throw null; + protected void Heartbeat(object state) => throw null; + public System.Action HeartbeatRequestFilter { get => throw null; set => throw null; } + public System.Func HttpClientHandlerFactory { get => throw null; set => throw null; } + public virtual System.Threading.Tasks.Task InternalStop() => throw null; + public bool IsStopped { get => throw null; } + public System.DateTime LastPulseAt { get => throw null; set => throw null; } + public System.Collections.Concurrent.ConcurrentDictionary NamedReceivers { get => throw null; } + public System.Action OnCommand; + protected void OnCommandReceived(ServiceStack.ServerEventCommand e) => throw null; + public System.Action OnConnect; + protected void OnConnectReceived() => throw null; + public System.Action OnException; + protected void OnExceptionReceived(System.Exception ex) => throw null; + public System.Action OnHeartbeat; + protected void OnHeartbeatReceived(ServiceStack.ServerEventHeartbeat e) => throw null; + public System.Action OnJoin; + protected void OnJoinReceived(ServiceStack.ServerEventJoin e) => throw null; + public System.Action OnLeave; + protected void OnLeaveReceived(ServiceStack.ServerEventLeave e) => throw null; + public System.Action OnMessage; + protected void OnMessageReceived(ServiceStack.ServerEventMessage e) => throw null; + public System.Action OnReconnect; + public System.Action OnUpdate; + protected void OnUpdateReceived(ServiceStack.ServerEventUpdate e) => throw null; + public void ProcessLine(string line) => throw null; + public void ProcessResponse(System.IO.Stream stream) => throw null; + public void RaiseEvent(string eventName, ServiceStack.ServerEventMessage message) => throw null; + public System.Collections.Generic.List ReceiverTypes { get => throw null; } + public ServiceStack.ServerEventsClient RegisterNamedReceiver(string receiverName) where T : ServiceStack.IReceiver => throw null; + public ServiceStack.ServerEventsClient RegisterReceiver() where T : ServiceStack.IReceiver => throw null; + public void RemoveAllListeners() => throw null; + public void RemoveAllRegistrations() => throw null; + public ServiceStack.ServerEventsClient RemoveListener(string eventName, System.Action handler) => throw null; + public ServiceStack.ServerEventsClient RemoveListeners(string eventName) => throw null; + public System.Func ResolveStreamUrl { get => throw null; set => throw null; } + public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } + public void Restart() => throw null; + public ServerEventsClient(string baseUri, params string[] channels) => throw null; + public ServiceStack.IServiceClient ServiceClient { get => throw null; set => throw null; } + public ServiceStack.ServerEventsClient Start() => throw null; + protected void StartNewHeartbeat() => throw null; + public string Status { get => throw null; } + public virtual System.Threading.Tasks.Task Stop() => throw null; + public bool StrictMode { get => throw null; set => throw null; } + public string SubscriptionId { get => throw null; } + public int TimesStarted { get => throw null; } + public static ServiceStack.ServerEventMessage ToTypedMessage(ServiceStack.ServerEventMessage e) => throw null; + public System.Action UnRegisterRequestFilter { get => throw null; set => throw null; } + public void Update(string[] subscribe = default(string[]), string[] unsubscribe = default(string[])) => throw null; + public System.Threading.Tasks.Task WaitForNextCommand() => throw null; + public System.Threading.Tasks.Task WaitForNextHeartbeat() => throw null; + public System.Threading.Tasks.Task WaitForNextMessage() => throw null; + } + + // Generated from `ServiceStack.ServiceClientBase` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public abstract class ServiceClientBase : ServiceStack.IHasBearerToken, ServiceStack.IHasCookieContainer, ServiceStack.IHasSessionId, ServiceStack.IHasVersion, ServiceStack.IHttpRestClientAsync, ServiceStack.IOneWayClient, ServiceStack.IReplyClient, ServiceStack.IRestClient, ServiceStack.IRestClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestServiceClient, ServiceStack.IServiceClient, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientMeta, ServiceStack.IServiceClientSync, ServiceStack.IServiceGateway, ServiceStack.IServiceGatewayAsync, ServiceStack.Messaging.IMessageProducer, System.IDisposable + { + public virtual string Accept { get => throw null; } + public void AddHeader(string name, string value) => throw null; + public bool AllowAutoRedirect { get => throw null; set => throw null; } + public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } + public string AsyncOneWayBaseUri { get => throw null; set => throw null; } + public string BasePath { get => throw null; set => throw null; } + public string BaseUri { get => throw null; set => throw null; } + public string BearerToken { get => throw null; set => throw null; } + public void CaptureHttp(System.Action httpFilter) => throw null; + public void CaptureHttp(bool print = default(bool), bool log = default(bool), bool clear = default(bool)) => throw null; + public void ClearCookies() => throw null; + public abstract string ContentType { get; } + public System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } + public System.Net.ICredentials Credentials { get => throw null; set => throw null; } + public virtual void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse CustomMethod(string httpVerb, object requestDto) => throw null; + public virtual System.Net.HttpWebResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object requestDto) => throw null; + public virtual TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse CustomMethod(string httpVerb, object requestDto) => throw null; + public virtual TResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object requestDto = default(object)) => throw null; + public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public const string DefaultHttpMethod = default; + public static string DefaultUserAgent; + public virtual void Delete(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Delete(object requestDto) => throw null; + public virtual System.Net.HttpWebResponse Delete(string relativeOrAbsoluteUrl) => throw null; + public virtual TResponse Delete(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Delete(object requestDto) => throw null; + public virtual TResponse Delete(string relativeOrAbsoluteUrl) => throw null; + public virtual System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected T Deserialize(string text) => throw null; + public abstract T DeserializeFromStream(System.IO.Stream stream); + public bool DisableAutoCompression { get => throw null; set => throw null; } + public void Dispose() => throw null; + public System.Byte[] DownloadBytes(string httpMethod, string requestUri, object request) => throw null; + public System.Threading.Tasks.Task DownloadBytesAsync(string httpMethod, string requestUri, object request) => throw null; + public bool EmulateHttpViaPost { get => throw null; set => throw null; } + public bool EnableAutoRefreshToken { get => throw null; set => throw null; } + public ServiceStack.ExceptionFilterDelegate ExceptionFilter { get => throw null; set => throw null; } + public abstract string Format { get; } + public virtual void Get(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Get(object requestDto) => throw null; + public virtual System.Net.HttpWebResponse Get(string relativeOrAbsoluteUrl) => throw null; + public virtual TResponse Get(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Get(object requestDto) => throw null; + public virtual TResponse Get(string relativeOrAbsoluteUrl) => throw null; + public virtual System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Collections.Generic.Dictionary GetCookieValues() => throw null; + public string GetHttpMethod(object request) => throw null; + public virtual System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; + protected TResponse GetResponse(System.Net.WebResponse webRes) => throw null; + public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } + public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } + protected virtual bool HandleResponseException(System.Exception ex, object request, string requestUri, System.Func createWebRequest, System.Func getResponse, out TResponse response) => throw null; + public virtual System.Net.HttpWebResponse Head(ServiceStack.IReturn requestDto) => throw null; + public virtual System.Net.HttpWebResponse Head(object requestDto) => throw null; + public virtual System.Net.HttpWebResponse Head(string relativeOrAbsoluteUrl) => throw null; + public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } + public System.Net.Http.HttpClient HttpClient { get => throw null; set => throw null; } + public System.Text.StringBuilder HttpLog { get => throw null; set => throw null; } + public System.Action HttpLogFilter { get => throw null; set => throw null; } + public string HttpMethod { get => throw null; set => throw null; } + public System.Action OnAuthenticationRequired { get => throw null; set => throw null; } + public ServiceStack.ProgressDelegate OnDownloadProgress { get => throw null; set => throw null; } + public ServiceStack.ProgressDelegate OnUploadProgress { get => throw null; set => throw null; } + public string Password { get => throw null; set => throw null; } + public virtual void Patch(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Patch(object requestDto) => throw null; + public virtual TResponse Patch(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Patch(object requestDto) => throw null; + public virtual TResponse Patch(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public virtual System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void Post(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Post(object requestDto) => throw null; + public virtual TResponse Post(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Post(object requestDto) => throw null; + public virtual TResponse Post(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public virtual System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType, string fieldName = default(string)) => throw null; + public virtual TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public virtual TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; + public virtual TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; + public virtual TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; + protected System.Net.WebRequest PrepareWebRequest(string httpMethod, string requestUri, object request, System.Action sendRequestAction) => throw null; + public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } + public virtual void Publish(object requestDto) => throw null; + public void Publish(ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(T requestDto) => throw null; + public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; + public System.Threading.Tasks.Task PublishAsync(object request, System.Threading.CancellationToken token) => throw null; + public virtual void Put(ServiceStack.IReturnVoid requestDto) => throw null; + public virtual System.Net.HttpWebResponse Put(object requestDto) => throw null; + public virtual TResponse Put(ServiceStack.IReturn requestDto) => throw null; + public virtual TResponse Put(object requestDto) => throw null; + public virtual TResponse Put(string relativeOrAbsoluteUrl, object requestDto) => throw null; + public virtual System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.TimeSpan? ReadWriteTimeout { get => throw null; set => throw null; } + public string RefreshToken { get => throw null; set => throw null; } + public string RefreshTokenUri { get => throw null; set => throw null; } + public string RequestCompressionType { get => throw null; set => throw null; } + public System.Action RequestFilter { get => throw null; set => throw null; } + public virtual string ResolveTypedUrl(string httpMethod, object requestDto) => throw null; + public virtual string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl) => throw null; + public System.Action ResponseFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterDelegate ResultsFilter { get => throw null; set => throw null; } + public ServiceStack.ResultsFilterResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } + public virtual TResponse Send(object request) => throw null; + public virtual TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request) => throw null; + public virtual System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; + public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; + public virtual void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public virtual System.Threading.Tasks.Task SendAsync(object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public virtual void SendOneWay(object request) => throw null; + public virtual void SendOneWay(string relativeOrAbsoluteUrl, object request) => throw null; + public virtual void SendOneWay(string httpMethod, string relativeOrAbsoluteUrl, object requestDto) => throw null; + protected virtual System.Net.WebRequest SendRequest(string httpMethod, string requestUri, object request) => throw null; + public static string SendStringToUrl(System.Net.HttpWebRequest webReq, string method, string requestBody, string contentType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; + public static System.Threading.Tasks.Task SendStringToUrlAsync(System.Net.HttpWebRequest webReq, string method, string requestBody, string contentType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + protected virtual void SerializeRequestToStream(object request, System.IO.Stream requestStream, bool keepOpen = default(bool)) => throw null; + public abstract void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream); + protected ServiceClientBase() => throw null; + protected ServiceClientBase(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; + public string SessionId { get => throw null; set => throw null; } + public void SetBaseUri(string baseUri) => throw null; + public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; + public void SetCredentials(string userName, string password) => throw null; + public bool ShareCookiesWithBrowser { get => throw null; set => throw null; } + public bool StoreCookies { get => throw null; set => throw null; } + public abstract ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get; } + public string SyncReplyBaseUri { get => throw null; set => throw null; } + protected void ThrowResponseTypeException(object request, System.Exception ex, string requestUri) => throw null; + public void ThrowWebServiceException(System.Exception ex, string requestUri) => throw null; + public System.TimeSpan? Timeout { get => throw null; set => throw null; } + public virtual string ToAbsoluteUrl(string relativeOrAbsoluteUrl) => throw null; + public static ServiceStack.WebServiceException ToWebServiceException(System.Net.WebException webEx, System.Func parseDtoFn, string contentType) => throw null; + public ServiceStack.TypedUrlResolverDelegate TypedUrlResolver { get => throw null; set => throw null; } + public static void UploadFile(System.Net.WebRequest webRequest, System.IO.Stream fileStream, string fileName, string mimeType, string accept = default(string), System.Action requestFilter = default(System.Action), string method = default(string), string fieldName = default(string)) => throw null; + public ServiceStack.UrlResolverDelegate UrlResolver { get => throw null; set => throw null; } + public string UseBasePath { set => throw null; } + public string UserAgent { get => throw null; set => throw null; } + public string UserName { get => throw null; set => throw null; } + public int Version { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ServiceClientExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceClientExtensions + { + public static void AddAuthSecret(this ServiceStack.IRestClient client, string authsecret) => throw null; + public static T Apply(this T client, System.Action fn) where T : ServiceStack.IServiceGateway => throw null; + public static System.Net.CookieContainer AssertCookieContainer(this ServiceStack.IServiceClient client) => throw null; + public static TResponse Delete(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; + public static void DeleteCookie(this System.Net.CookieContainer cookieContainer, System.Uri uri, string name) => throw null; + public static void DeleteCookie(this ServiceStack.IHasCookieContainer hasCookieContainer, System.Uri uri, string name) => throw null; + public static void DeleteCookie(this ServiceStack.IJsonServiceClient client, string name) => throw null; + public static void DeleteRefreshTokenCookie(this ServiceStack.IJsonServiceClient client) => throw null; + public static void DeleteTokenCookie(this ServiceStack.IJsonServiceClient client) => throw null; + public static void DeleteTokenCookies(this ServiceStack.IJsonServiceClient client) => throw null; + public static TResponse Get(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; + public static string GetCookieValue(this ServiceStack.AsyncServiceClient client, string name) => throw null; + public static ServiceStack.IEncryptedClient GetEncryptedClient(this ServiceStack.IJsonServiceClient client, System.Security.Cryptography.RSAParameters publicKey) => throw null; + public static ServiceStack.IEncryptedClient GetEncryptedClient(this ServiceStack.IJsonServiceClient client, string serverPublicKeyXml) => throw null; + public static string GetOptions(this ServiceStack.IServiceClient client) => throw null; + public static string GetPermanentSessionId(this ServiceStack.IServiceClient client) => throw null; + public static string GetRefreshTokenCookie(this ServiceStack.AsyncServiceClient client) => throw null; + public static string GetRefreshTokenCookie(this System.Net.CookieContainer cookies, string baseUri) => throw null; + public static string GetRefreshTokenCookie(this ServiceStack.IServiceClient client) => throw null; + public static string GetSessionId(this ServiceStack.IServiceClient client) => throw null; + public static string GetTokenCookie(this ServiceStack.AsyncServiceClient client) => throw null; + public static string GetTokenCookie(this System.Net.CookieContainer cookies, string baseUri) => throw null; + public static string GetTokenCookie(this ServiceStack.IServiceClient client) => throw null; + public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; + public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; + public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; + public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; + public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static void PopulateRequestMetadata(this ServiceStack.IHasSessionId client, object request) => throw null; + public static void PopulateRequestMetadatas(this ServiceStack.IHasSessionId client, System.Collections.Generic.IEnumerable requests) => throw null; + public static TResponse Post(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; + public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; + public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; + public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; + public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; + public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static TResponse PostFile(this ServiceStack.IRestClient client, string relativeOrAbsoluteUrl, System.IO.FileInfo fileToUpload, string mimeType, string fieldName = default(string)) => throw null; + public static TResponse PostFileWithRequest(this ServiceStack.IRestClient client, System.IO.FileInfo fileToUpload, object request, string fieldName = default(string)) => throw null; + public static TResponse PostFileWithRequest(this ServiceStack.IRestClient client, string relativeOrAbsoluteUrl, System.IO.FileInfo fileToUpload, object request, string fieldName = default(string)) => throw null; + public static TResponse Put(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; + public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; + public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; + public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; + public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; + public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.IO.Stream ResponseStream(this System.Net.WebResponse webRes) => throw null; + public static void Send(this ServiceStack.IEncryptedClient client, ServiceStack.IReturnVoid request) => throw null; + public static void SetCookie(this System.Net.CookieContainer cookieContainer, System.Uri baseUri, string name, string value, System.DateTime? expiresAt, string path = default(string), bool? httpOnly = default(bool?), bool? secure = default(bool?)) => throw null; + public static void SetCookie(this ServiceStack.IServiceClient client, System.Uri baseUri, string name, string value, System.DateTime? expiresAt = default(System.DateTime?), string path = default(string), bool? httpOnly = default(bool?), bool? secure = default(bool?)) => throw null; + public static void SetOptions(this ServiceStack.IServiceClient client, string options) => throw null; + public static void SetPermanentSessionId(this ServiceStack.IServiceClient client, string sessionId) => throw null; + public static void SetRefreshTokenCookie(this System.Net.CookieContainer cookies, string baseUri, string token) => throw null; + public static void SetRefreshTokenCookie(this ServiceStack.IServiceClient client, string token) => throw null; + public static void SetSessionId(this ServiceStack.IServiceClient client, string sessionId) => throw null; + public static void SetTokenCookie(this System.Net.CookieContainer cookies, string baseUri, string token) => throw null; + public static void SetTokenCookie(this ServiceStack.IServiceClient client, string token) => throw null; + public static void SetUserAgent(this System.Net.HttpWebRequest req, string userAgent) => throw null; + public static System.Collections.Generic.Dictionary ToDictionary(this System.Net.CookieContainer cookies, string baseUri) => throw null; + public static T WithBasePath(this T client, string basePath) where T : ServiceStack.ServiceClientBase => throw null; + } + + // Generated from `ServiceStack.ServiceClientUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceClientUtils + { + public static string GetAutoQueryMethod(System.Type requestType) => throw null; + public static string GetHttpMethod(System.Type requestType) => throw null; + public static string GetIVerbMethod(System.Type requestType) => throw null; + public static string GetIVerbMethod(System.Type[] interfaceTypes) => throw null; + public static string[] GetRouteMethods(System.Type requestType) => throw null; + public static string GetSingleRouteMethod(System.Type requestType) => throw null; + public static System.Collections.Generic.HashSet SupportedMethods { get => throw null; } + } + + // Generated from `ServiceStack.ServiceGatewayAsyncWrappers` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceGatewayAsyncWrappers + { + public static System.Threading.Tasks.Task> Api(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> ApiAllAsync(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn[] requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> ApiAllAsync(this ServiceStack.IServiceClientAsync client, System.Collections.Generic.List> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task>> ApiAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> ApiAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PublishAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PublishAllAsync(this ServiceStack.IServiceGatewayAsync client, System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task PublishAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task Send(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn[] requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceClientAsync client, System.Collections.Generic.List> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.ServiceGatewayExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class ServiceGatewayExtensions + { + public static ServiceStack.ApiResult Api(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid request) => throw null; + public static ServiceStack.ApiResult Api(this ServiceStack.IServiceGateway client, ServiceStack.IReturn request) => throw null; + public static ServiceStack.ApiResult> ApiAll(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> request) => throw null; + public static System.Type GetResponseType(this ServiceStack.IServiceGateway client, object request) => throw null; + public static void Send(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid request) => throw null; + public static object Send(this ServiceStack.IServiceGateway client, System.Type responseType, object request) => throw null; + public static TResponse Send(this ServiceStack.IServiceGateway client, ServiceStack.IReturn request) => throw null; + public static System.Collections.Generic.List SendAll(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> request) => throw null; + public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, System.Type responseType, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; + } + + // Generated from `ServiceStack.SharpPagesInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SharpPagesInfo : ServiceStack.IMeta + { + public string ApiPath { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public bool? MetadataDebug { get => throw null; set => throw null; } + public string MetadataDebugAdminRole { get => throw null; set => throw null; } + public string ScriptAdminRole { get => throw null; set => throw null; } + public SharpPagesInfo() => throw null; + public bool? SpaFallback { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.SingletonInstanceResolver` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class SingletonInstanceResolver : ServiceStack.Configuration.IResolver + { + public SingletonInstanceResolver() => throw null; + public T TryResolve() => throw null; + } + + // Generated from `ServiceStack.StoreFileUpload` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StoreFileUpload : ServiceStack.IHasBearerToken, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public string BearerToken { 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 StoreFileUpload() => throw null; + } + + // Generated from `ServiceStack.StoreFileUploadResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StoreFileUploadResponse + { + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public System.Collections.Generic.List Results { get => throw null; set => throw null; } + public StoreFileUploadResponse() => throw null; + } + + // Generated from `ServiceStack.StreamCompressors` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StreamCompressors + { + public static ServiceStack.Caching.IStreamCompressor Get(string encoding) => throw null; + public static ServiceStack.Caching.IStreamCompressor GetRequired(string encoding) => throw null; + public static bool Remove(string encoding) => throw null; + public static void Set(string encoding, ServiceStack.Caching.IStreamCompressor compressor) => throw null; + public static bool SupportsEncoding(string encoding) => throw null; + } + + // Generated from `ServiceStack.StreamExt` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class StreamExt + { + public static System.Byte[] Compress(this string text, string compressionType, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public static System.Byte[] CompressBytes(this System.Byte[] bytes, string compressionType) => throw null; + public static System.IO.Stream CompressStream(this System.IO.Stream stream, string compressionType) => throw null; + public static string Decompress(this System.Byte[] gzBuffer, string compressionType) => throw null; + public static System.IO.Stream Decompress(this System.IO.Stream gzStream, string compressionType) => throw null; + public static System.Byte[] DecompressBytes(this System.Byte[] gzBuffer, string compressionType) => throw null; + public static System.Byte[] Deflate(this string text) => throw null; + public static string GUnzip(this System.Byte[] gzBuffer) => throw null; + public static System.Byte[] GZip(this string text) => throw null; + public static string Inflate(this System.Byte[] gzBuffer) => throw null; + public static System.Byte[] ToBytes(this System.IO.Stream stream) => throw null; + public static string ToUtf8String(this System.IO.Stream stream) => throw null; + public static void Write(this System.IO.Stream stream, string text) => throw null; + } + + // Generated from `ServiceStack.StreamFiles` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StreamFiles : ServiceStack.IReturn, ServiceStack.IReturn + { + public System.Collections.Generic.List Paths { get => throw null; set => throw null; } + public StreamFiles() => throw null; + } + + // Generated from `ServiceStack.StreamServerEvents` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StreamServerEvents : ServiceStack.IReturn, ServiceStack.IReturn + { + public string[] Channels { get => throw null; set => throw null; } + public StreamServerEvents() => throw null; + } + + // Generated from `ServiceStack.StreamServerEventsResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StreamServerEventsResponse + { + public string Channel { get => throw null; set => throw null; } + public string[] Channels { get => throw null; set => throw null; } + public System.Int64 CreatedAt { get => throw null; set => throw null; } + public string CssSelector { get => throw null; set => throw null; } + public string Data { get => throw null; set => throw null; } + public string DisplayName { get => throw null; set => throw null; } + public System.Int64 EventId { get => throw null; set => throw null; } + public System.Int64 HeartbeatIntervalMs { get => throw null; set => throw null; } + public string HeartbeatUrl { get => throw null; set => throw null; } + public string Id { get => throw null; set => throw null; } + public System.Int64 IdleTimeoutMs { get => throw null; set => throw null; } + public bool IsAuthenticated { get => throw null; set => throw null; } + public string Json { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public string Op { get => throw null; set => throw null; } + public string ProfileUrl { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public string Selector { get => throw null; set => throw null; } + public StreamServerEventsResponse() => throw null; + public string Target { get => throw null; set => throw null; } + public string UnRegisterUrl { get => throw null; set => throw null; } + public string UpdateSubscriberUrl { get => throw null; set => throw null; } + public string UserId { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.ThemeInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ThemeInfo + { + public string Form { get => throw null; set => throw null; } + public ServiceStack.ImageInfo ModelIcon { get => throw null; set => throw null; } + public ThemeInfo() => throw null; + } + + // Generated from `ServiceStack.TokenException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class TokenException : ServiceStack.AuthenticationException + { + public TokenException(string message) => throw null; + } + + // Generated from `ServiceStack.TypedUrlResolverDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate string TypedUrlResolverDelegate(ServiceStack.IServiceClientMeta client, string httpMethod, object requestDto); + + // Generated from `ServiceStack.UiInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UiInfo : ServiceStack.IMeta + { + public System.Collections.Generic.List AdminLinks { get => throw null; set => throw null; } + public System.Collections.Generic.List AlwaysHideTags { get => throw null; set => throw null; } + public ServiceStack.ImageInfo BrandIcon { get => throw null; set => throw null; } + public ServiceStack.ApiFormat DefaultFormats { get => throw null; set => throw null; } + public ServiceStack.ExplorerUi Explorer { get => throw null; set => throw null; } + public System.Collections.Generic.List HideTags { get => throw null; set => throw null; } + public ServiceStack.LocodeUi Locode { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Modules { get => throw null; set => throw null; } + public ServiceStack.ThemeInfo Theme { get => throw null; set => throw null; } + public UiInfo() => throw null; + } + + // Generated from `ServiceStack.UnAssignRoles` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UnAssignRoles : ServiceStack.IMeta, ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } + public System.Collections.Generic.List Roles { get => throw null; set => throw null; } + public UnAssignRoles() => throw null; + public string UserName { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.UnAssignRolesResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UnAssignRolesResponse : ServiceStack.IHasResponseStatus, ServiceStack.IMeta + { + public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } + public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public UnAssignRolesResponse() => throw null; + } + + // Generated from `ServiceStack.UpdateEventSubscriber` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UpdateEventSubscriber : ServiceStack.IPost, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IVerb + { + public string Id { get => throw null; set => throw null; } + public string[] SubscribeChannels { get => throw null; set => throw null; } + public string[] UnsubscribeChannels { get => throw null; set => throw null; } + public UpdateEventSubscriber() => throw null; + } + + // Generated from `ServiceStack.UpdateEventSubscriberResponse` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UpdateEventSubscriberResponse + { + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } + public UpdateEventSubscriberResponse() => throw null; + } + + // Generated from `ServiceStack.UploadedFile` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UploadedFile + { + public System.Int64 ContentLength { get => throw null; set => throw null; } + public string ContentType { get => throw null; set => throw null; } + public string FileName { get => throw null; set => throw null; } + public string FilePath { get => throw null; set => throw null; } + public UploadedFile() => throw null; + } + + // Generated from `ServiceStack.UrlExtensions` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class UrlExtensions + { + public static string AsHttps(this string absoluteUrl) => throw null; + public static string ExpandGenericTypeName(System.Type type) => throw null; + public static string ExpandTypeName(this System.Type type) => throw null; + public static string GetFullyQualifiedName(this System.Type type) => throw null; + public static string GetMetadataPropertyType(this System.Type type) => throw null; + public static string GetOperationName(this System.Type type) => throw null; + public static System.Collections.Generic.Dictionary GetQueryPropertyTypes(this System.Type requestType) => throw null; + public static string ToApiUrl(this System.Type requestType) => throw null; + public static string ToDeleteUrl(this object requestDto) => throw null; + public static string ToGetUrl(this object requestDto) => throw null; + public static string ToOneWayUrl(this object requestDto, string format = default(string)) => throw null; + public static string ToOneWayUrlOnly(this object requestDto, string format = default(string)) => throw null; + public static string ToPostUrl(this object requestDto) => throw null; + public static string ToPutUrl(this object requestDto) => throw null; + public static string ToRelativeUri(this ServiceStack.IReturn requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; + public static string ToRelativeUri(this object requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; + public static string ToReplyUrl(this object requestDto, string format = default(string)) => throw null; + public static string ToReplyUrlOnly(this object requestDto, string format = default(string)) => throw null; + public static string ToUrl(this ServiceStack.IReturn requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; + public static string ToUrl(this object requestDto, string httpMethod, System.Func fallback) => throw null; + public static string ToUrl(this object requestDto, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; + } + + // Generated from `ServiceStack.UrlResolverDelegate` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public delegate string UrlResolverDelegate(ServiceStack.IServiceClientMeta client, string httpMethod, string relativeOrAbsoluteUrl); + + // Generated from `ServiceStack.UserApiKey` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class UserApiKey : ServiceStack.IMeta + { + public System.DateTime? ExpiryDate { get => throw null; set => throw null; } + public string Key { get => throw null; set => throw null; } + public string KeyType { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public UserApiKey() => throw null; + } + + // Generated from `ServiceStack.ValidationInfo` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationInfo : ServiceStack.IMeta + { + public string AccessRole { get => throw null; set => throw null; } + public bool? HasValidationSource { get => throw null; set => throw null; } + public bool? HasValidationSourceAdmin { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public System.Collections.Generic.List PropertyValidators { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } + public System.Collections.Generic.List TypeValidators { get => throw null; set => throw null; } + public ValidationInfo() => throw null; + } + + // Generated from `ServiceStack.WebRequestUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class WebRequestUtils + { + public static void AddApiKeyAuth(this System.Net.WebRequest client, string apiKey) => throw null; + public static void AddBasicAuth(this System.Net.WebRequest client, string userName, string password) => throw null; + public static void AddBearerToken(this System.Net.WebRequest client, string bearerToken) => throw null; + public static void AppendHttpRequestHeaders(this System.Net.HttpWebRequest webReq, System.Text.StringBuilder sb, System.Uri baseUri = default(System.Uri)) => throw null; + public static void AppendHttpResponseHeaders(this System.Net.HttpWebResponse webRes, System.Text.StringBuilder sb) => throw null; + public static string CalculateMD5Hash(string input) => throw null; + public static System.Type GetErrorResponseDtoType(System.Type requestType) => throw null; + public static System.Type GetErrorResponseDtoType(object request) => throw null; + public static System.Type GetErrorResponseDtoType(object request) => throw null; + public static string GetResponseDtoName(System.Type requestType) => throw null; + public static ServiceStack.ResponseStatus GetResponseStatus(this object response) => throw null; + public static System.Net.HttpWebRequest InitWebRequest(string url, string method = default(string), System.Collections.Generic.Dictionary headers = default(System.Collections.Generic.Dictionary)) => throw null; + public const string ResponseDtoSuffix = default; + } + + // Generated from `ServiceStack.WebServiceException` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class WebServiceException : System.Exception, ServiceStack.IHasStatusCode, ServiceStack.IHasStatusDescription, ServiceStack.Model.IResponseStatusConvertible { - public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode, string errorMessage) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode, string errorMessage, string fieldName) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(ServiceStack.Validation.ValidationErrorField error) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(string errorCode) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(string errorCode, string errorMessage) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(string errorCode, string errorMessage, string fieldName) => throw null; public string ErrorCode { get => throw null; } public string ErrorMessage { get => throw null; } + public System.Collections.Generic.List GetFieldErrors() => throw null; + public bool IsAny400() => throw null; + public bool IsAny500() => throw null; public override string Message { get => throw null; } - public static void ThrowIfNotValid(ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; + public string ResponseBody { get => throw null; set => throw null; } + public object ResponseDto { get => throw null; set => throw null; } + public System.Net.WebHeaderCollection ResponseHeaders { get => throw null; set => throw null; } + public ServiceStack.ResponseStatus ResponseStatus { get => throw null; } + public string ServerStackTrace { get => throw null; } + public object State { get => throw null; set => throw null; } + public int StatusCode { get => throw null; set => throw null; } + public string StatusDescription { get => throw null; set => throw null; } public ServiceStack.ResponseStatus ToResponseStatus() => throw null; - public string ToXml() => throw null; - public ValidationError(ServiceStack.Validation.ValidationErrorField validationError) => throw null; - public ValidationError(ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; - public ValidationError(string errorCode) => throw null; - public ValidationError(string errorCode, string errorMessage) => throw null; - public System.Collections.Generic.IList Violations { get => throw null; set => throw null; } + public override string ToString() => throw null; + public WebServiceException() => throw null; + public WebServiceException(string message) => throw null; + public WebServiceException(string message, System.Exception innerException) => throw null; + public static ServiceStack.Logging.ILog log; } - // Generated from `ServiceStack.Validation.ValidationErrorField` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationErrorField : ServiceStack.IMeta + // Generated from `ServiceStack.XmlServiceClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlServiceClient : ServiceStack.ServiceClientBase { - public object AttemptedValue { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public string ErrorMessage { get => throw null; set => throw null; } - public string FieldName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ValidationErrorField(System.Enum errorCode) => throw null; - public ValidationErrorField(System.Enum errorCode, string fieldName) => throw null; - public ValidationErrorField(System.Enum errorCode, string fieldName, string errorMessage) => throw null; - public ValidationErrorField(string errorCode) => throw null; - public ValidationErrorField(string errorCode, string fieldName) => throw null; - public ValidationErrorField(string errorCode, string fieldName, string errorMessage) => throw null; - public ValidationErrorField(string errorCode, string fieldName, string errorMessage, object attemptedValue) => throw null; + public override string ContentType { get => throw null; } + public override T DeserializeFromStream(System.IO.Stream stream) => throw null; + public override string Format { get => throw null; } + public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; + public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } + public XmlServiceClient() => throw null; + public XmlServiceClient(string baseUri) => throw null; + public XmlServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; } - // Generated from `ServiceStack.Validation.ValidationErrorResult` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationErrorResult + // Generated from `ServiceStack.ZLibCompressor` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ZLibCompressor : ServiceStack.Caching.IStreamCompressor { - public string ErrorCode { get => throw null; set => throw null; } - public string ErrorMessage { get => throw null; set => throw null; } - public System.Collections.Generic.IList Errors { get => throw null; set => throw null; } - public virtual bool IsValid { get => throw null; } - public void Merge(ServiceStack.Validation.ValidationErrorResult result) => throw null; - public virtual string Message { get => throw null; } - public static ServiceStack.Validation.ValidationErrorResult Success { get => throw null; } - public string SuccessCode { get => throw null; set => throw null; } - public string SuccessMessage { get => throw null; set => throw null; } - public ValidationErrorResult() => throw null; - public ValidationErrorResult(System.Collections.Generic.IList errors) => throw null; - public ValidationErrorResult(System.Collections.Generic.IList errors, string successCode, string errorCode) => throw null; + public System.Byte[] Compress(System.Byte[] bytes) => throw null; + public System.IO.Stream Compress(System.IO.Stream outputStream, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] Compress(string text, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public string Decompress(System.Byte[] zipBuffer, System.Text.Encoding encoding = default(System.Text.Encoding)) => throw null; + public System.IO.Stream Decompress(System.IO.Stream zipBuffer, bool leaveOpen = default(bool)) => throw null; + public System.Byte[] DecompressBytes(System.Byte[] zipBuffer) => throw null; + public string Encoding { get => throw null; } + public static ServiceStack.ZLibCompressor Instance { get => throw null; } + public ZLibCompressor() => throw null; } -} + namespace Html + { + // Generated from `ServiceStack.Html.Input` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Input + { + // Generated from `ServiceStack.Html.Input+ConfigureCss` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ConfigureCss + { + public ConfigureCss(ServiceStack.InputInfo input) => throw null; + public ServiceStack.Html.Input.ConfigureCss FieldsPerRow(int sm, int? md = default(int?), int? lg = default(int?), int? xl = default(int?), int? xl2 = default(int?)) => throw null; + public ServiceStack.InputInfo Input { get => throw null; } + } + + + // Generated from `ServiceStack.Html.Input+Types` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Types + { + public const string Checkbox = default; + public const string Color = default; + public const string Date = default; + public const string DatetimeLocal = default; + public const string Email = default; + public const string File = default; + public const string Hidden = default; + public const string Image = default; + public const string Month = default; + public const string Number = default; + public const string Password = default; + public const string Radio = default; + public const string Range = default; + public const string Reset = default; + public const string Search = default; + public const string Select = default; + public const string Submit = default; + public const string Tel = default; + public const string Text = default; + public const string Textarea = default; + public const string Time = default; + public const string Url = default; + public const string Week = default; + } + + + public static ServiceStack.InputInfo AddCss(this ServiceStack.InputInfo input, System.Action configure) => throw null; + public static ServiceStack.InputInfo FieldsPerRow(this ServiceStack.InputInfo input, int sm, int? md = default(int?), int? lg = default(int?), int? xl = default(int?), int? xl2 = default(int?)) => throw null; + public static ServiceStack.InputInfo For(System.Linq.Expressions.Expression> expr) => throw null; + public static ServiceStack.InputInfo For(System.Linq.Expressions.Expression> expr, System.Action configure) => throw null; + public static System.Collections.Generic.List FromGridLayout(System.Collections.Generic.IEnumerable> gridLayout) => throw null; + public static string GetDescription(System.Reflection.MemberInfo mi) => throw null; + public static bool GetEnumEntries(System.Type enumType, out System.Collections.Generic.KeyValuePair[] entries) => throw null; + public static string[] GetEnumValues(System.Type enumType) => throw null; + } + + // Generated from `ServiceStack.Html.InspectUtils` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class InspectUtils + { + public static object Evaluate(System.Linq.Expressions.Expression arg) => throw null; + public static System.Linq.Expressions.Expression FindMember(System.Linq.Expressions.Expression e) => throw null; + public static string[] GetFieldNames(this System.Linq.Expressions.Expression> expr) => throw null; + public static System.Reflection.PropertyInfo PropertyFromExpression(System.Linq.Expressions.Expression> expr) => throw null; + } + + // Generated from `ServiceStack.Html.Media` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class Media + { + } + + // Generated from `ServiceStack.Html.MediaRuleCreator` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MediaRuleCreator + { + public MediaRuleCreator(string size) => throw null; + public ServiceStack.MediaRule Show(System.Linq.Expressions.Expression> expr) => throw null; + public string Size { get => throw null; } + } + + // Generated from `ServiceStack.Html.MediaRules` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MediaRules + { + public static ServiceStack.Html.MediaRuleCreator ExtraLarge; + public static ServiceStack.Html.MediaRuleCreator ExtraLarge2x; + public static ServiceStack.Html.MediaRuleCreator ExtraSmall; + public static ServiceStack.Html.MediaRuleCreator Large; + public static ServiceStack.Html.MediaRuleCreator Medium; + public static string MinVisibleSize(this System.Collections.Generic.IEnumerable mediaRules, string target) => throw null; + public static ServiceStack.Html.MediaRuleCreator Small; + } + + // Generated from `ServiceStack.Html.MediaSizes` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public static class MediaSizes + { + public static string[] All; + public const string ExtraLarge = default; + public const string ExtraLarge2x = default; + public const string ExtraSmall = default; + public static string ForBootstrap(string size) => throw null; + public static string ForTailwind(string size) => throw null; + public const string Large = default; + public const string Medium = default; + public const string Small = default; + } + + } + namespace Messaging + { + // Generated from `ServiceStack.Messaging.InMemoryMessageQueueClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class InMemoryMessageQueueClient : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.Messaging.IMessageQueueClient, System.IDisposable + { + public void Ack(ServiceStack.Messaging.IMessage message) => throw null; + public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; + public void Dispose() => throw null; + public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; + public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; + public string GetTempQueueName() => throw null; + public InMemoryMessageQueueClient(ServiceStack.Messaging.MessageQueueClientFactory factory) => throw null; + public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; + public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(T messageBody) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public void SendOneWay(object requestDto) => throw null; + public void SendOneWay(string queueName, object requestDto) => throw null; + } + + // Generated from `ServiceStack.Messaging.MessageQueueClientFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class MessageQueueClientFactory : ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + { + public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; + public void Dispose() => throw null; + public System.Byte[] GetMessageAsync(string queueName) => throw null; + public MessageQueueClientFactory() => throw null; + public event System.EventHandler MessageReceived; + public void PublishMessage(string queueName, System.Byte[] messageBytes) => throw null; + public void PublishMessage(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + } + + // Generated from `ServiceStack.Messaging.RedisMessageFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisMessageFactory : ServiceStack.Messaging.IMessageFactory, ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + { + public ServiceStack.Messaging.IMessageProducer CreateMessageProducer() => throw null; + public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; + public void Dispose() => throw null; + public RedisMessageFactory(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; + } + + // Generated from `ServiceStack.Messaging.RedisMessageProducer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisMessageProducer : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, System.IDisposable + { + public void Dispose() => throw null; + public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(T messageBody) => throw null; + public ServiceStack.Redis.IRedisNativeClient ReadWriteClient { get => throw null; } + public RedisMessageProducer(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; + public RedisMessageProducer(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public void SendOneWay(object requestDto) => throw null; + public void SendOneWay(string queueName, object requestDto) => throw null; + } + + // Generated from `ServiceStack.Messaging.RedisMessageQueueClient` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisMessageQueueClient : ServiceStack.IOneWayClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.Messaging.IMessageQueueClient, System.IDisposable + { + public void Ack(ServiceStack.Messaging.IMessage message) => throw null; + public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; + public void Dispose() => throw null; + public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; + public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; + public string GetTempQueueName() => throw null; + public int MaxSuccessQueueSize { get => throw null; set => throw null; } + public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; + public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(ServiceStack.Messaging.IMessage message) => throw null; + public void Publish(T messageBody) => throw null; + public ServiceStack.Redis.IRedisNativeClient ReadOnlyClient { get => throw null; } + public ServiceStack.Redis.IRedisNativeClient ReadWriteClient { get => throw null; } + public RedisMessageQueueClient(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; + public RedisMessageQueueClient(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; + public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; + public void SendOneWay(object requestDto) => throw null; + public void SendOneWay(string queueName, object requestDto) => throw null; + } + + // Generated from `ServiceStack.Messaging.RedisMessageQueueClientFactory` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RedisMessageQueueClientFactory : ServiceStack.Messaging.IMessageQueueClientFactory, System.IDisposable + { + public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; + public void Dispose() => throw null; + public RedisMessageQueueClientFactory(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; + } + + } + namespace Pcl + { + // Generated from `ServiceStack.Pcl.HttpUtility` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class HttpUtility + { + public HttpUtility() => 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; + } + + } + namespace Serialization + { + // Generated from `ServiceStack.Serialization.DataContractSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class DataContractSerializer : ServiceStack.Text.IStringSerializer + { + public System.Byte[] Compress(XmlDto from) => throw null; + public void CompressToStream(XmlDto from, System.IO.Stream stream) => throw null; + public DataContractSerializer(System.Xml.XmlDictionaryReaderQuotas quotas = default(System.Xml.XmlDictionaryReaderQuotas)) => throw null; + public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public T DeserializeFromStream(System.IO.Stream stream) => throw null; + public object DeserializeFromString(string xml, System.Type type) => throw null; + public T DeserializeFromString(string xml) => throw null; + public static ServiceStack.Serialization.DataContractSerializer Instance; + public string Parse(XmlDto from, bool indentXml) => throw null; + public void SerializeToStream(object obj, System.IO.Stream stream) => throw null; + public string SerializeToString(XmlDto from) => throw null; + } + + // Generated from `ServiceStack.Serialization.IStringStreamSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public interface IStringStreamSerializer + { + object DeserializeFromStream(System.Type type, System.IO.Stream stream); + T DeserializeFromStream(System.IO.Stream stream); + void SerializeToStream(T obj, System.IO.Stream stream); + } + + // Generated from `ServiceStack.Serialization.JsonDataContractSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class JsonDataContractSerializer : ServiceStack.Text.IStringSerializer + { + public static object BclDeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public static object BclDeserializeFromString(string json, System.Type returnType) => throw null; + public static void BclSerializeToStream(T obj, System.IO.Stream stream) => throw null; + public static string BclSerializeToString(T obj) => throw null; + public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public T DeserializeFromStream(System.IO.Stream stream) => throw null; + public object DeserializeFromString(string json, System.Type returnType) => throw null; + public T DeserializeFromString(string json) => throw null; + public static ServiceStack.Serialization.JsonDataContractSerializer Instance; + public JsonDataContractSerializer() => throw null; + public void SerializeToStream(T obj, System.IO.Stream stream) => throw null; + public string SerializeToString(T obj) => throw null; + public ServiceStack.Text.IStringSerializer TextSerializer { get => throw null; set => throw null; } + public bool UseBcl { get => throw null; set => throw null; } + public static void UseSerializer(ServiceStack.Text.IStringSerializer textSerializer) => throw null; + } + + // Generated from `ServiceStack.Serialization.KeyValueDataContractDeserializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class KeyValueDataContractDeserializer + { + public static ServiceStack.Serialization.KeyValueDataContractDeserializer Instance; + public KeyValueDataContractDeserializer() => throw null; + public object Parse(System.Collections.Generic.IDictionary keyValuePairs, System.Type returnType) => throw null; + public object Parse(System.Collections.Specialized.NameValueCollection nameValues, System.Type returnType) => throw null; + public To Parse(System.Collections.Generic.IDictionary keyValuePairs) => throw null; + public object Populate(object instance, System.Collections.Specialized.NameValueCollection nameValues, System.Type returnType) => throw null; + } + + // Generated from `ServiceStack.Serialization.RequestBindingError` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class RequestBindingError + { + public string ErrorMessage { 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 string PropertyValueString { get => throw null; set => throw null; } + public RequestBindingError() => throw null; + } + + // Generated from `ServiceStack.Serialization.StringMapTypeDeserializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class StringMapTypeDeserializer + { + public static System.Collections.Generic.Dictionary ContentTypeStringSerializers { get => throw null; } + public object CreateFromMap(System.Collections.Generic.IDictionary keyValuePairs) => throw null; + public object CreateFromMap(System.Collections.Specialized.NameValueCollection nameValues) => throw null; + public object PopulateFromMap(object instance, System.Collections.Generic.IDictionary keyValuePairs, System.Collections.Generic.HashSet ignoredWarningsOnPropertyNames = default(System.Collections.Generic.HashSet)) => throw null; + public object PopulateFromMap(object instance, System.Collections.Specialized.NameValueCollection nameValues, System.Collections.Generic.HashSet ignoredWarningsOnPropertyNames = default(System.Collections.Generic.HashSet)) => throw null; + public StringMapTypeDeserializer(System.Type type) => throw null; + public static System.Collections.Concurrent.ConcurrentDictionary TypeStringSerializers { get => throw null; } + } + + // Generated from `ServiceStack.Serialization.XmlSerializableSerializer` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlSerializableSerializer : ServiceStack.Text.IStringSerializer + { + public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; + public object DeserializeFromString(string xml, System.Type type) => throw null; + public To DeserializeFromString(string xml) => throw null; + public static ServiceStack.Serialization.XmlSerializableSerializer Instance; + public To Parse(System.IO.Stream from) => throw null; + public To Parse(System.IO.TextReader from) => throw null; + public void SerializeToStream(object obj, System.IO.Stream stream) => throw null; + public string SerializeToString(XmlDto from) => throw null; + public XmlSerializableSerializer() => throw null; + public static System.Xml.XmlWriterSettings XmlWriterSettings { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Serialization.XmlSerializerWrapper` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class XmlSerializerWrapper : System.Runtime.Serialization.XmlObjectSerializer + { + public static string GetNamespace(System.Type type) => throw null; + public override bool IsStartObject(System.Xml.XmlDictionaryReader reader) => throw null; + public override object ReadObject(System.Xml.XmlDictionaryReader reader) => throw null; + public override object ReadObject(System.Xml.XmlDictionaryReader reader, bool verifyObjectName) => throw null; + public override void WriteEndObject(System.Xml.XmlDictionaryWriter writer) => throw null; + public override void WriteObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; + public override void WriteObjectContent(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; + public override void WriteStartObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; + public XmlSerializerWrapper(System.Type type) => throw null; + public XmlSerializerWrapper(System.Type type, string name, string ns) => throw null; + } + + } + namespace Support + { + // Generated from `ServiceStack.Support.NetDeflateProvider` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetDeflateProvider : ServiceStack.Caching.IDeflateProvider + { + public System.Byte[] Deflate(System.Byte[] bytes) => throw null; + public System.Byte[] Deflate(string text) => throw null; + public System.IO.Stream DeflateStream(System.IO.Stream outputStream) => throw null; + public string Inflate(System.Byte[] gzBuffer) => throw null; + public System.Byte[] InflateBytes(System.Byte[] gzBuffer) => throw null; + public System.IO.Stream InflateStream(System.IO.Stream inputStream) => throw null; + public static ServiceStack.Support.NetDeflateProvider Instance { get => throw null; } + public NetDeflateProvider() => throw null; + } + + // Generated from `ServiceStack.Support.NetGZipProvider` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class NetGZipProvider : ServiceStack.Caching.IGZipProvider + { + public string GUnzip(System.Byte[] gzBuffer) => throw null; + public System.Byte[] GUnzipBytes(System.Byte[] gzBuffer) => throw null; + public System.IO.Stream GUnzipStream(System.IO.Stream inputStream) => throw null; + public System.Byte[] GZip(System.Byte[] bytes) => throw null; + public System.Byte[] GZip(string text) => throw null; + public System.IO.Stream GZipStream(System.IO.Stream outputStream) => throw null; + public static ServiceStack.Support.NetGZipProvider Instance { get => throw null; } + public NetGZipProvider() => throw null; + } + + } + namespace Validation + { + // Generated from `ServiceStack.Validation.ValidationError` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationError : System.ArgumentException, ServiceStack.Model.IResponseStatusConvertible + { + public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode, string errorMessage) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode, string errorMessage, string fieldName) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(ServiceStack.Validation.ValidationErrorField error) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(string errorCode) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(string errorCode, string errorMessage) => throw null; + public static ServiceStack.Validation.ValidationError CreateException(string errorCode, string errorMessage, string fieldName) => throw null; + public string ErrorCode { get => throw null; } + public string ErrorMessage { get => throw null; } + public override string Message { get => throw null; } + public static void ThrowIfNotValid(ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; + public ServiceStack.ResponseStatus ToResponseStatus() => throw null; + public string ToXml() => throw null; + public ValidationError(ServiceStack.Validation.ValidationErrorField validationError) => throw null; + public ValidationError(ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; + public ValidationError(string errorCode) => throw null; + public ValidationError(string errorCode, string errorMessage) => throw null; + public System.Collections.Generic.IList Violations { get => throw null; set => throw null; } + } + + // Generated from `ServiceStack.Validation.ValidationErrorField` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationErrorField : ServiceStack.IMeta + { + public object AttemptedValue { get => throw null; set => throw null; } + public string ErrorCode { get => throw null; set => throw null; } + public string ErrorMessage { get => throw null; set => throw null; } + public string FieldName { get => throw null; set => throw null; } + public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } + public ValidationErrorField(System.Enum errorCode) => throw null; + public ValidationErrorField(System.Enum errorCode, string fieldName) => throw null; + public ValidationErrorField(System.Enum errorCode, string fieldName, string errorMessage) => throw null; + public ValidationErrorField(string errorCode) => throw null; + public ValidationErrorField(string errorCode, string fieldName) => throw null; + public ValidationErrorField(string errorCode, string fieldName, string errorMessage) => throw null; + public ValidationErrorField(string errorCode, string fieldName, string errorMessage, object attemptedValue) => throw null; + } + + // Generated from `ServiceStack.Validation.ValidationErrorResult` in `ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` + public class ValidationErrorResult + { + public string ErrorCode { get => throw null; set => throw null; } + public string ErrorMessage { get => throw null; set => throw null; } + public System.Collections.Generic.IList Errors { get => throw null; set => throw null; } + public virtual bool IsValid { get => throw null; } + public void Merge(ServiceStack.Validation.ValidationErrorResult result) => throw null; + public virtual string Message { get => throw null; } + public static ServiceStack.Validation.ValidationErrorResult Success { get => throw null; } + public string SuccessCode { get => throw null; set => throw null; } + public string SuccessMessage { get => throw null; set => throw null; } + public ValidationErrorResult() => throw null; + public ValidationErrorResult(System.Collections.Generic.IList errors) => throw null; + public ValidationErrorResult(System.Collections.Generic.IList errors, string successCode, string errorCode) => throw null; + } + + } } diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.csproj index 530753a6985..536f96f7a5c 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Client/6.2.0/ServiceStack.Client.csproj @@ -7,7 +7,6 @@ - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.cs b/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.cs index a187e8ea56d..12d4e36d961 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.cs +++ b/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.cs @@ -1147,8 +1147,7 @@ namespace ServiceStack public class LongRange : System.IEquatable { public static bool operator !=(ServiceStack.LongRange left, ServiceStack.LongRange right) => throw null; - public virtual ServiceStack.LongRange$() => throw null; - public static bool operator ==(ServiceStack.LongRange left, ServiceStack.LongRange right) => throw null; + public static bool operator ==(ServiceStack.LongRange left, ServiceStack.LongRange right) => throw null; public void Deconstruct(out System.Int64 from, out System.Int64? to) => throw null; protected virtual System.Type EqualityContract { get => throw null; } public virtual bool Equals(ServiceStack.LongRange other) => throw null; @@ -1226,8 +1225,7 @@ namespace ServiceStack public class NameValue : System.IEquatable { public static bool operator !=(ServiceStack.NameValue left, ServiceStack.NameValue right) => throw null; - public virtual ServiceStack.NameValue$() => throw null; - public static bool operator ==(ServiceStack.NameValue left, ServiceStack.NameValue right) => throw null; + public static bool operator ==(ServiceStack.NameValue left, ServiceStack.NameValue right) => throw null; public void Deconstruct(out string name, out string value) => throw null; protected virtual System.Type EqualityContract { get => throw null; } public virtual bool Equals(ServiceStack.NameValue other) => throw null; diff --git a/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.cs b/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.cs index 0c4f6124d94..2a3ae2a0d62 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.cs +++ b/csharp/ql/test/resources/stubs/ServiceStack/6.2.0/ServiceStack.cs @@ -476,17 +476,6 @@ namespace ServiceStack public static System.Collections.Generic.Dictionary ToDictionary(this ServiceStack.Messaging.IMessageHandlerStats stats) => throw null; } - // Generated from `ServiceStack.AdminUi` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public class AdminUi - { - All, - Logging, - None, - Users, - Validation, -} - // Generated from `ServiceStack.AdminUi` in `ServiceStack, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null` [System.Flags] public enum AdminUi diff --git a/csharp/ql/test/resources/stubs/System.Security.AccessControl/4.7.0/System.Security.AccessControl.csproj b/csharp/ql/test/resources/stubs/System.Security.AccessControl/4.7.0/System.Security.AccessControl.csproj index 018413bd509..93645039b13 100644 --- a/csharp/ql/test/resources/stubs/System.Security.AccessControl/4.7.0/System.Security.AccessControl.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.AccessControl/4.7.0/System.Security.AccessControl.csproj @@ -7,7 +7,7 @@ - + From 094dcf989e4e790b1e1e1272f800d6225ea760c6 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 8 Aug 2022 14:56:57 +0200 Subject: [PATCH 671/736] C#: Update FlowSummaries test expected file (this is required since the .NET Runtime stubs have been updated). --- .../dataflow/library/FlowSummaries.expected | 305 ++++++++++++++++++ .../library/FlowSummariesFiltered.expected | 241 ++++++++++++++ 2 files changed, 546 insertions(+) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index 2d9fce246fb..03cbee43970 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -100,7 +100,11 @@ | Microsoft.Win32.SafeHandles;SafeFileHandle;false;SafeFileHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | Microsoft.Win32.SafeHandles;SafePipeHandle;false;SafePipeHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | Microsoft.Win32.SafeHandles;SafeProcessHandle;false;SafeProcessHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Win32.SafeHandles;SafeRegistryHandle;false;SafeRegistryHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | Microsoft.Win32.SafeHandles;SafeWaitHandle;false;SafeWaitHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Win32;RegistryKey;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Win32;RegistryKey;false;get_Handle;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Win32;RegistryKey;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | | Newtonsoft.Json.Linq;JArray;false;Add;(Newtonsoft.Json.Linq.JToken);;Argument[0];Argument[Qualifier].Element;value;manual | | Newtonsoft.Json.Linq;JArray;false;CopyTo;(Newtonsoft.Json.Linq.JToken[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | Newtonsoft.Json.Linq;JArray;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | @@ -283,6 +287,8 @@ | System.CodeDom.Compiler;IndentedTextWriter;false;Write;(System.String,System.Object,System.Object);;Argument[2];Argument[Qualifier];taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;Write;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;Write;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated | +| System.CodeDom.Compiler;IndentedTextWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.CodeDom.Compiler;IndentedTextWriter;false;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;WriteLine;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;WriteLine;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;WriteLine;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | @@ -294,6 +300,8 @@ | System.CodeDom.Compiler;IndentedTextWriter;false;WriteLine;(System.String,System.Object,System.Object);;Argument[2];Argument[Qualifier];taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;WriteLine;(System.String,System.Object[]);;Argument[0];Argument[Qualifier];taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;WriteLine;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier];taint;generated | +| System.CodeDom.Compiler;IndentedTextWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.CodeDom.Compiler;IndentedTextWriter;false;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;get_InnerWriter;();;Argument[Qualifier];ReturnValue;taint;generated | | System.CodeDom.Compiler;IndentedTextWriter;false;get_NewLine;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -337,6 +345,7 @@ | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,TValue);;Argument[1];ReturnValue;taint;generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | @@ -525,6 +534,24 @@ | System.Collections.Generic;List<>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | | System.Collections.Generic;List<>;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.Generic;List<>;false;set_Item;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | +| System.Collections.Generic;PriorityQueue<,>;false;Dequeue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;EnqueueDequeue;(TElement,TPriority);;Argument[0];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;EnqueueDequeue;(TElement,TPriority);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;EnqueueRange;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;Peek;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;PriorityQueue;(System.Collections.Generic.IComparer);;Argument[0];Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;PriorityQueue;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;PriorityQueue;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[1];Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;PriorityQueue;(System.Int32,System.Collections.Generic.IComparer);;Argument[1];Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;TryDequeue;(TElement,TPriority);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;TryPeek;(TElement,TPriority);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;Queue<>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;Queue<>;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Queue<>;false;CopyTo;(T[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | @@ -1839,6 +1866,13 @@ | System.Data.Common;DataTableMappingCollection;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Data.Common;DataTableMappingCollection;false;set_Item;(System.String,System.Data.Common.DataTableMapping);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Data.Common;DataTableMappingCollection;false;set_Item;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Data.Common;DbBatchCommandCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Data.Common;DbBatchCommandCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | +| System.Data.Common;DbBatchCommandCollection;false;set_Item;(System.Int32,System.Data.Common.DbBatchCommand);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Data.Common;DbBatchCommandCollection;true;Add;(System.Data.Common.DbBatchCommand);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Data.Common;DbBatchCommandCollection;true;CopyTo;(System.Data.Common.DbBatchCommand[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Data.Common;DbBatchCommandCollection;true;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| System.Data.Common;DbBatchCommandCollection;true;Insert;(System.Int32,System.Data.Common.DbBatchCommand);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Data.Common;DbCommand;false;ExecuteReader;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;ExecuteReader;(System.Data.CommandBehavior);;Argument[Qualifier];ReturnValue;taint;generated | | System.Data.Common;DbCommand;false;get_Connection;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -2387,6 +2421,7 @@ | System.Diagnostics.Contracts;ContractOptionAttribute;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics.Contracts;ContractPublicPropertyNameAttribute;false;ContractPublicPropertyNameAttribute;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics.Contracts;ContractPublicPropertyNameAttribute;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Diagnostics.Metrics;Measurement<>;false;Measurement;(T,System.Collections.Generic.KeyValuePair[]);;Argument[1].Element;Argument[Qualifier];taint;generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;get_DisplayName;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;get_DisplayUnits;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;set_DisplayName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -2413,6 +2448,7 @@ | System.Diagnostics;Activity;false;AddEvent;(System.Diagnostics.ActivityEvent);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;AddTag;(System.String,System.Object);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;AddTag;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Diagnostics;Activity;false;SetBaggage;(System.String,System.String);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetEndTime;(System.DateTime);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetIdFormat;(System.Diagnostics.ActivityIdFormat);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetParentId;(System.Diagnostics.ActivityTraceId,System.Diagnostics.ActivitySpanId,System.Diagnostics.ActivityTraceFlags);;Argument[0];Argument[Qualifier];taint;generated | @@ -2421,6 +2457,8 @@ | System.Diagnostics;Activity;false;SetParentId;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;Activity;false;SetParentId;(System.String);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetStartTime;(System.DateTime);;Argument[Qualifier];ReturnValue;value;generated | +| System.Diagnostics;Activity;false;SetStatus;(System.Diagnostics.ActivityStatusCode,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| System.Diagnostics;Activity;false;SetStatus;(System.Diagnostics.ActivityStatusCode,System.String);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetTag;(System.String,System.Object);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;Start;();;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;get_DisplayName;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -2431,12 +2469,14 @@ | System.Diagnostics;Activity;false;get_ParentSpanId;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_RootId;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_SpanId;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Diagnostics;Activity;false;get_StatusDescription;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_TagObjects;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_TraceId;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_TraceStateString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;set_DisplayName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;Activity;false;set_TraceStateString;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;ActivityCreationOptions<>;false;get_SamplingTags;();;Argument[Qualifier];ReturnValue;taint;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;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;generated | | System.Diagnostics;ActivitySpanId;false;ToHexString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;ActivitySpanId;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -2567,6 +2607,15 @@ | System.Diagnostics;SwitchLevelAttribute;false;SwitchLevelAttribute;(System.Type);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;SwitchLevelAttribute;false;get_SwitchLevelType;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;SwitchLevelAttribute;false;set_SwitchLevelType;(System.Type);;Argument[0];Argument[Qualifier];taint;generated | +| System.Diagnostics;TagList+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Diagnostics;TagList;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Diagnostics;TagList;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Diagnostics;TagList;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| System.Diagnostics;TagList;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Diagnostics;TagList;false;Insert;(System.Int32,System.Collections.Generic.KeyValuePair);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Diagnostics;TagList;false;TagList;(System.ReadOnlySpan>);;Argument[0];Argument[Qualifier];taint;generated | +| System.Diagnostics;TagList;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | +| System.Diagnostics;TagList;false;set_Item;(System.Int32,System.Collections.Generic.KeyValuePair);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Diagnostics;TextWriterTraceListener;false;TextWriterTraceListener;(System.IO.TextWriter,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;TextWriterTraceListener;false;TextWriterTraceListener;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;TextWriterTraceListener;false;TextWriterTraceListener;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -2836,6 +2885,18 @@ | System.IO.Compression;GZipStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO.Compression;GZipStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO.Compression;GZipStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Compression;ZLibStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | +| System.IO.Compression;ZLibStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | +| System.IO.Compression;ZLibStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | +| System.IO.Compression;ZLibStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO.Compression;ZLibStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | +| System.IO.Compression;ZLibStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | +| System.IO.Compression;ZLibStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System.IO.Compression;ZLibStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System.IO.Compression;ZLibStream;false;ZLibStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| System.IO.Compression;ZLibStream;false;ZLibStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| System.IO.Compression;ZLibStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;ZipArchive;false;CreateEntry;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO.Compression;ZipArchive;false;CreateEntry;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;ZipArchive;false;CreateEntry;(System.String,System.IO.Compression.CompressionLevel);;Argument[0];ReturnValue;taint;generated | @@ -2921,6 +2982,7 @@ | System.IO;BufferedStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;BufferedStream;false;get_UnderlyingStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;Directory;false;CreateDirectory;(System.String);;Argument[0];ReturnValue;taint;generated | +| System.IO;Directory;false;CreateSymbolicLink;(System.String,System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;Directory;false;GetParent;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;DirectoryInfo;false;CreateSubdirectory;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;DirectoryInfo;false;CreateSubdirectory;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2954,6 +3016,8 @@ | System.IO;File;false;AppendAllLinesAsync;(System.String,System.Collections.Generic.IEnumerable,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.IO;File;false;AppendAllTextAsync;(System.String,System.String,System.Text.Encoding,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | | System.IO;File;false;AppendAllTextAsync;(System.String,System.String,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.IO;File;false;CreateSymbolicLink;(System.String,System.String);;Argument[0];ReturnValue;taint;generated | +| System.IO;File;false;OpenHandle;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.IO.FileOptions,System.Int64);;Argument[0];ReturnValue;taint;generated | | System.IO;File;false;ReadLines;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;File;false;ReadLines;(System.String,System.Text.Encoding);;Argument[0];ReturnValue;taint;generated | | System.IO;File;false;ReadLines;(System.String,System.Text.Encoding);;Argument[1];ReturnValue;taint;generated | @@ -2994,6 +3058,7 @@ | System.IO;FileSystemEventArgs;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemInfo;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemInfo;false;get_Extension;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO;FileSystemInfo;false;get_LinkTarget;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemInfo;true;get_FullName;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemInfo;true;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemWatcher;false;FileSystemWatcher;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -3059,6 +3124,17 @@ | System.IO;Path;false;Join;(System.ReadOnlySpan,System.ReadOnlySpan,System.ReadOnlySpan,System.ReadOnlySpan);;Argument[3];ReturnValue;taint;generated | | System.IO;Path;false;TrimEndingDirectorySeparator;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;generated | | System.IO;Path;false;TrimEndingDirectorySeparator;(System.String);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[1].Element;ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Memory,System.Int64,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Memory,System.Int64,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[1].Element;ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlyMemory,System.Int64,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlyMemory,System.Int64,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlyMemory,System.Int64,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | | System.IO;RenamedEventArgs;false;RenamedEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.IO;RenamedEventArgs;false;RenamedEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String,System.String);;Argument[3];Argument[Qualifier];taint;generated | | System.IO;RenamedEventArgs;false;get_OldFullPath;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -3759,7 +3835,9 @@ | 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;ElementAt<>;(System.Collections.Generic.IEnumerable,System.Index);;Argument[0].Element;ReturnValue;taint;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;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 | @@ -3769,6 +3847,8 @@ | 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,TSource);;Argument[0].Element;ReturnValue;taint;generated | +| System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;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 | @@ -3824,8 +3904,12 @@ | 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,TSource);;Argument[0].Element;ReturnValue;taint;generated | +| System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;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;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.Collections.Generic.IComparer);;Argument[0].Element;Argument[1];taint;generated | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;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[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | @@ -3837,6 +3921,8 @@ | 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[0].Element;Argument[1].Parameter[0];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.Collections.Generic.IComparer);;Argument[0].Element;Argument[1];taint;generated | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;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[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | @@ -3881,6 +3967,8 @@ | 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,TSource);;Argument[0].Element;ReturnValue;taint;generated | +| System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;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;generated | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | @@ -3898,6 +3986,7 @@ | 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[0].Element;Argument[1].Parameter[0];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;generated | | System.Linq;Enumerable;false;TakeLast<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;taint;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 | @@ -4441,12 +4530,26 @@ | System.Net.Http.Headers;EntityTagHeaderValue;false;EntityTagHeaderValue;(System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http.Headers;EntityTagHeaderValue;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Headers;EntityTagHeaderValue;false;get_Tag;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HeaderStringValues+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HeaderStringValues;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| System.Net.Http.Headers;HeaderStringValues;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Net.Http.Headers;HeaderStringValues;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HeaderStringValues;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Headers;HttpHeaderValueCollection<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Net.Http.Headers;HttpHeaderValueCollection<>;false;CopyTo;(T[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Net.Http.Headers;HttpHeaderValueCollection<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Net.Http.Headers;HttpHeaderValueCollection<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Net.Http.Headers;HttpHeaders;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Net.Http.Headers;HttpHeaders;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Net.Http.Headers;HttpHeaders;false;get_NonValidated;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;TryGetValue;(System.String,System.Net.Http.Headers.HeaderStringValues);;Argument[0];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;TryGetValues;(System.String,System.Net.Http.Headers.HeaderStringValues);;Argument[0];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;get_Item;(System.String);;Argument[0];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;get_Keys;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;get_Values;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Headers;HttpResponseHeaders;false;get_AcceptRanges;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Headers;HttpResponseHeaders;false;get_ProxyAuthenticate;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Headers;HttpResponseHeaders;false;get_Server;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4634,6 +4737,7 @@ | System.Net.Http;ReadOnlyMemoryContent;false;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Http;SocketsHttpConnectionContext;false;get_DnsEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpConnectionContext;false;get_InitialRequestMessage;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http;SocketsHttpHandler;false;get_ActivityHeadersPropagator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_ConnectCallback;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_ConnectTimeout;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_CookieContainer;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4651,6 +4755,7 @@ | System.Net.Http;SocketsHttpHandler;false;get_ResponseDrainTimeout;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_ResponseHeaderEncodingSelector;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_SslOptions;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http;SocketsHttpHandler;false;set_ActivityHeadersPropagator;(System.Diagnostics.DistributedContextPropagator);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;SocketsHttpHandler;false;set_ConnectTimeout;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;SocketsHttpHandler;false;set_CookieContainer;(System.Net.CookieContainer);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;SocketsHttpHandler;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[Qualifier];taint;generated | @@ -4851,6 +4956,8 @@ | System.Net.Security;NegotiateStream;false;get_RemoteIdentity;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslApplicationProtocol;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslApplicationProtocol;false;get_Protocol;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Security;SslCertificateTrust;false;CreateForX509Collection;(System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean);;Argument[0].Element;ReturnValue;taint;generated | +| System.Net.Security;SslCertificateTrust;false;CreateForX509Store;(System.Security.Cryptography.X509Certificates.X509Store,System.Boolean);;Argument[0];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | | System.Net.Security;SslStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | @@ -4864,6 +4971,8 @@ | System.Net.Security;SslStream;false;get_RemoteCertificate;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;get_TransportContext;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslStreamCertificateContext;false;Create;(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| System.Net.Security;SslStreamCertificateContext;false;Create;(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean,System.Net.Security.SslCertificateTrust);;Argument[0];ReturnValue;taint;generated | +| System.Net.Security;SslStreamCertificateContext;false;Create;(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean,System.Net.Security.SslCertificateTrust);;Argument[3];ReturnValue;taint;generated | | System.Net.Sockets;IPPacketInformation;false;get_Address;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;IPv6MulticastOption;false;IPv6MulticastOption;(System.Net.IPAddress);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;IPv6MulticastOption;false;IPv6MulticastOption;(System.Net.IPAddress,System.Int64);;Argument[0];Argument[Qualifier];taint;generated | @@ -4892,14 +5001,32 @@ | System.Net.Sockets;NetworkStream;false;get_Socket;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;SafeSocketHandle;false;SafeSocketHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;Accept;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;Bind;(System.Net.EndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.EndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.IPAddress[],System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.EndPoint);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.EndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.IPAddress,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.IPAddress,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.String,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;DisconnectAsync;(System.Boolean,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;DisconnectAsync;(System.Boolean,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;DisconnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;ReceiveAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];ReturnValue;taint;generated | @@ -4909,18 +5036,45 @@ | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Net.EndPoint);;Argument[1];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.EndPoint);;Argument[1];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.EndPoint);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[4];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[4];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;SendAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;SendAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendFileAsync;(System.String,System.ReadOnlyMemory,System.ReadOnlyMemory,System.Net.Sockets.TransmitFileOptions,System.Threading.CancellationToken);;Argument[4];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendFileAsync;(System.String,System.ReadOnlyMemory,System.ReadOnlyMemory,System.Net.Sockets.TransmitFileOptions,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendFileAsync;(System.String,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendFileAsync;(System.String,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;SendPacketsAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;SendTo;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendTo;(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendTo;(System.Byte[],System.Net.EndPoint);;Argument[1];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendTo;(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;SendTo;(System.ReadOnlySpan,System.Net.EndPoint);;Argument[1];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;SendTo;(System.ReadOnlySpan,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendToAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendToAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;get_Handle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;get_LocalEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;get_RemoteEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4957,11 +5111,15 @@ | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;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;generated | | System.Net.Sockets;TcpClient;false;Connect;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;TcpClient;false;ConnectAsync;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;TcpClient;false;ConnectAsync;(System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpClient;false;GetStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpClient;false;TcpClient;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpClient;false;get_Client;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpClient;false;set_Client;(System.Net.Sockets.Socket);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;AcceptSocket;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpListener;false;AcceptTcpClient;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | @@ -4971,7 +5129,16 @@ | System.Net.Sockets;UdpClient;false;EndReceive;(System.IAsyncResult,System.Net.IPEndPoint);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;UdpClient;false;Receive;(System.Net.IPEndPoint);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;UdpClient;false;Send;(System.Byte[],System.Int32,System.Net.IPEndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;UdpClient;false;Send;(System.ReadOnlySpan,System.Net.IPEndPoint);;Argument[1];Argument[Qualifier];taint;generated | | System.Net.Sockets;UdpClient;false;SendAsync;(System.Byte[],System.Int32,System.Net.IPEndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[1];Argument[Qualifier];taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.String,System.Int32,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.String,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;UdpClient;false;UdpClient;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;UdpClient;false;get_Client;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;UdpClient;false;set_Client;(System.Net.Sockets.Socket);;Argument[0];Argument[Qualifier];taint;generated | @@ -5003,6 +5170,11 @@ | System.Net.WebSockets;WebSocket;false;CreateClientWebSocket;(System.IO.Stream,System.String,System.Int32,System.Int32,System.TimeSpan,System.Boolean,System.ArraySegment);;Argument[1];ReturnValue;taint;generated | | System.Net.WebSockets;WebSocket;false;CreateFromStream;(System.IO.Stream,System.Boolean,System.String,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | | System.Net.WebSockets;WebSocket;false;CreateFromStream;(System.IO.Stream,System.Boolean,System.String,System.TimeSpan);;Argument[2];ReturnValue;taint;generated | +| System.Net.WebSockets;WebSocket;true;SendAsync;(System.ReadOnlyMemory,System.Net.WebSockets.WebSocketMessageType,System.Net.WebSockets.WebSocketMessageFlags,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.WebSockets;WebSocketCreationOptions;false;get_KeepAliveInterval;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.WebSockets;WebSocketCreationOptions;false;get_SubProtocol;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.WebSockets;WebSocketCreationOptions;false;set_KeepAliveInterval;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.WebSockets;WebSocketCreationOptions;false;set_SubProtocol;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.WebSockets;WebSocketException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | | System.Net;Authorization;false;get_ProtectionRealm;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;Authorization;false;set_ProtectionRealm;(System.String[]);;Argument[0].Element;Argument[Qualifier];taint;generated | @@ -5421,6 +5593,7 @@ | System.Reflection.Emit;DynamicMethod;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;DynamicMethod;false;get_ReturnParameter;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;DynamicMethod;false;get_ReturnType;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Reflection.Emit;EnumBuilder;false;CreateType;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;EnumBuilder;false;CreateTypeInfo;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;EnumBuilder;false;DefineLiteral;(System.String,System.Object);;Argument[0];ReturnValue;taint;generated | | System.Reflection.Emit;EnumBuilder;false;DefineLiteral;(System.String,System.Object);;Argument[1];ReturnValue;taint;generated | @@ -5550,6 +5723,7 @@ | System.Reflection.Emit;ModuleBuilder;false;GetArrayMethod;(System.Type,System.String,System.Reflection.CallingConventions,System.Type,System.Type[]);;Argument[3];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;GetField;(System.String,System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;GetFields;(System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Reflection.Emit;ModuleBuilder;false;GetMethodImpl;(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;GetMethods;(System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;GetType;(System.String,System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;GetType;(System.String,System.Boolean,System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | @@ -6176,10 +6350,19 @@ | System.Runtime.CompilerServices;ContractHelper;false;RaiseContractFailedEvent;(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception);;Argument[1];ReturnValue;taint;generated | | System.Runtime.CompilerServices;ContractHelper;false;RaiseContractFailedEvent;(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception);;Argument[2];ReturnValue;taint;generated | | System.Runtime.CompilerServices;DateTimeConstantAttribute;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime.CompilerServices;DefaultInterpolatedStringHandler;false;DefaultInterpolatedStringHandler;(System.Int32,System.Int32,System.IFormatProvider);;Argument[2];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;DefaultInterpolatedStringHandler;false;DefaultInterpolatedStringHandler;(System.Int32,System.Int32,System.IFormatProvider,System.Span);;Argument[2];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;DefaultInterpolatedStringHandler;false;DefaultInterpolatedStringHandler;(System.Int32,System.Int32,System.IFormatProvider,System.Span);;Argument[3];Argument[Qualifier];taint;generated | | System.Runtime.CompilerServices;DynamicAttribute;false;DynamicAttribute;(System.Boolean[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Runtime.CompilerServices;DynamicAttribute;false;get_TransformFlags;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.CompilerServices;FormattableStringFactory;false;Create;(System.String,System.Object[]);;Argument[0];ReturnValue;taint;generated | | System.Runtime.CompilerServices;FormattableStringFactory;false;Create;(System.String,System.Object[]);;Argument[1].Element;ReturnValue;taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder;false;AwaitUnsafeOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;AwaitUnsafeOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;SetResult;(TResult);;Argument[0];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;get_Task;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;Add;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | @@ -6209,10 +6392,15 @@ | System.Runtime.CompilerServices;ValueTaskAwaiter<>;false;GetResult;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;Capture;(System.Exception);;Argument[0];ReturnValue;taint;generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetCurrentStackTrace;(System.Exception);;Argument[0];ReturnValue;taint;generated | +| System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[0];ReturnValue;taint;generated | +| System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[1];Argument[0];taint;generated | +| System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[1];ReturnValue;taint;generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;get_SourceException;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;ArrayWithOffset;false;ArrayWithOffset;(System.Object,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Runtime.InteropServices;ArrayWithOffset;false;GetArray;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime.InteropServices;CLong;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;COMException;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime.InteropServices;CULong;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;ComAwareEventInfo;false;GetAddMethod;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;ComAwareEventInfo;false;GetRaiseMethod;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;ComAwareEventInfo;false;GetRemoveMethod;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | @@ -6231,6 +6419,7 @@ | System.Runtime.InteropServices;HandleRef;false;get_Handle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;HandleRef;false;get_Wrapper;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;Marshal;false;GenerateProgIdForType;(System.Type);;Argument[0];ReturnValue;taint;generated | +| System.Runtime.InteropServices;Marshal;false;InitHandle;(System.Runtime.InteropServices.SafeHandle,System.IntPtr);;Argument[1];Argument[0];taint;generated | | System.Runtime.InteropServices;MemoryMarshal;false;CreateFromPinnedArray<>;(T[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | | System.Runtime.InteropServices;MemoryMarshal;false;TryGetMemoryManager<,>;(System.ReadOnlyMemory,TManager);;Argument[0];ReturnValue;taint;generated | | System.Runtime.InteropServices;MemoryMarshal;false;TryGetMemoryManager<,>;(System.ReadOnlyMemory,TManager,System.Int32,System.Int32);;Argument[0];ReturnValue;taint;generated | @@ -6408,6 +6597,11 @@ | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope);;Argument[0];ReturnValue;taint;generated | | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type);;Argument[0];ReturnValue;taint;generated | | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type);;Argument[3];ReturnValue;taint;generated | +| System.Runtime;DependentHandle;false;get_Dependent;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime;DependentHandle;false;get_Target;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime;DependentHandle;false;get_TargetAndDependent;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.AccessControl;GenericAcl;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Security.AccessControl;GenericAcl;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ExtendedProtectionPolicy;(System.Security.Authentication.ExtendedProtection.PolicyEnforcement,System.Security.Authentication.ExtendedProtection.ChannelBinding);;Argument[1];Argument[Qualifier];taint;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[Qualifier];taint;generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -6505,6 +6699,7 @@ | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509Certificate2Collection);;Argument[0].Element;Argument[Qualifier].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509Certificate2[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;Find;(System.Security.Cryptography.X509Certificates.X509FindType,System.Object,System.Boolean);;Argument[Qualifier].Element;ReturnValue;value;manual | +| System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509Certificate2Enumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;Insert;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;Remove;(System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[0];Argument[Qualifier];taint;generated | @@ -6541,6 +6736,7 @@ | System.Security.Cryptography.X509Certificates;X509Chain;false;set_ChainPolicy;(System.Security.Cryptography.X509Certificates.X509ChainPolicy);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;CopyTo;(System.Security.Cryptography.X509Certificates.X509ChainElement[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | @@ -6554,6 +6750,7 @@ | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;Add;(System.Security.Cryptography.X509Certificates.X509Extension);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;CopyTo;(System.Security.Cryptography.X509Certificates.X509Extension[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | @@ -6588,6 +6785,8 @@ | System.Security.Cryptography;AsnEncodedDataEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography;CryptoStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];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[Qualifier];taint;manual | +| System.Security.Cryptography;CryptoStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | +| System.Security.Cryptography;CryptoStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];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[Qualifier];taint;generated | | System.Security.Cryptography;CryptoStream;false;CryptoStream;(System.IO.Stream,System.Security.Cryptography.ICryptoTransform,System.Security.Cryptography.CryptoStreamMode,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated | | System.Security.Cryptography;CryptoStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | @@ -6660,6 +6859,9 @@ | System.Security.Cryptography;RSAPKCS1SignatureFormatter;false;RSAPKCS1SignatureFormatter;(System.Security.Cryptography.AsymmetricAlgorithm);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;RSAPKCS1SignatureFormatter;false;SetHashAlgorithm;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;RSAPKCS1SignatureFormatter;false;SetKey;(System.Security.Cryptography.AsymmetricAlgorithm);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography;SafeEvpPKeyHandle;false;DuplicateHandle;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Policy;Evidence;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Security.Policy;Evidence;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Principal;GenericIdentity;false;Clone;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Principal;GenericIdentity;false;GenericIdentity;(System.Security.Principal.GenericIdentity);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Principal;GenericIdentity;false;GenericIdentity;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -6670,6 +6872,10 @@ | System.Security.Principal;GenericIdentity;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Principal;GenericPrincipal;false;GenericPrincipal;(System.Security.Principal.IIdentity,System.String[]);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Principal;GenericPrincipal;false;get_Identity;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Principal;IdentityReferenceCollection;false;Add;(System.Security.Principal.IdentityReference);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Security.Principal;IdentityReferenceCollection;false;CopyTo;(System.Security.Principal.IdentityReference[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Security.Principal;IdentityReferenceCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| System.Security.Principal;IdentityReferenceCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security;PermissionSet;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Security;PermissionSet;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security;PermissionSet;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | @@ -6696,6 +6902,42 @@ | System.Text.Encodings.Web;TextEncoder;true;Encode;(System.IO.TextWriter,System.Char[],System.Int32,System.Int32);;Argument[1].Element;Argument[0];taint;generated | | System.Text.Encodings.Web;TextEncoder;true;Encode;(System.IO.TextWriter,System.String,System.Int32,System.Int32);;Argument[1];Argument[0];taint;generated | | System.Text.Encodings.Web;TextEncoder;true;Encode;(System.String);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonArray;false;Add;(System.Text.Json.Nodes.JsonNode);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Text.Json.Nodes;JsonArray;false;Add<>;(T);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text.Json.Nodes;JsonArray;false;CopyTo;(System.Text.Json.Nodes.JsonNode[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Text.Json.Nodes;JsonArray;false;Create;(System.Text.Json.JsonElement,System.Nullable);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonArray;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| System.Text.Json.Nodes;JsonArray;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Text.Json.Nodes;JsonArray;false;Insert;(System.Int32,System.Text.Json.Nodes.JsonNode);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Text.Json.Nodes;JsonArray;false;JsonArray;(System.Text.Json.Nodes.JsonNodeOptions,System.Text.Json.Nodes.JsonNode[]);;Argument[Qualifier];Argument[1].Element;taint;generated | +| System.Text.Json.Nodes;JsonArray;false;JsonArray;(System.Text.Json.Nodes.JsonNode[]);;Argument[Qualifier];Argument[0].Element;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;AsArray;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;AsObject;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;AsValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;Parse;(System.Text.Json.Utf8JsonReader,System.Nullable);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | +| System.Text.Json.Nodes;JsonNode;false;get_Item;(System.String);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | +| System.Text.Json.Nodes;JsonNode;false;get_Options;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;get_Parent;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;get_Root;();;Argument[Qualifier];ReturnValue;value;generated | +| System.Text.Json.Nodes;JsonNode;false;set_Item;(System.Int32,System.Text.Json.Nodes.JsonNode);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Text.Json.Nodes;JsonNode;false;set_Item;(System.String,System.Text.Json.Nodes.JsonNode);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Text.Json.Nodes;JsonNode;false;set_Item;(System.String,System.Text.Json.Nodes.JsonNode);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Text.Json.Nodes;JsonObject;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Text.Json.Nodes;JsonObject;false;Add;(System.String,System.Text.Json.Nodes.JsonNode);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Text.Json.Nodes;JsonObject;false;Add;(System.String,System.Text.Json.Nodes.JsonNode);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Text.Json.Nodes;JsonObject;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Text.Json.Nodes;JsonObject;false;Create;(System.Text.Json.JsonElement,System.Nullable);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonObject;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| System.Text.Json.Nodes;JsonObject;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Text.Json.Nodes;JsonObject;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | +| System.Text.Json.Nodes;JsonObject;false;get_Values;();;Argument[Qualifier].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;generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo<>;false;get_SerializeHandler;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[Qualifier];Argument[0];taint;generated | +| System.Text.Json.Serialization;JsonSerializerContext;false;get_Options;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json.Serialization;JsonStringEnumConverter;false;JsonStringEnumConverter;(System.Text.Json.JsonNamingPolicy,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Text.Json;JsonDocument;false;Parse;(System.Buffers.ReadOnlySequence,System.Text.Json.JsonDocumentOptions);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonDocument;false;Parse;(System.IO.Stream,System.Text.Json.JsonDocumentOptions);;Argument[0];ReturnValue;taint;generated | @@ -6716,9 +6958,11 @@ | System.Text.Json;JsonElement;false;GetProperty;(System.ReadOnlySpan);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;GetProperty;(System.ReadOnlySpan);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;GetProperty;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json;JsonElement;false;ParseValue;(System.Text.Json.Utf8JsonReader);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;TryGetProperty;(System.ReadOnlySpan,System.Text.Json.JsonElement);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;TryGetProperty;(System.ReadOnlySpan,System.Text.Json.JsonElement);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;TryGetProperty;(System.String,System.Text.Json.JsonElement);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json;JsonElement;false;TryParseValue;(System.Text.Json.Utf8JsonReader,System.Nullable);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonEncodedText;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | @@ -6731,7 +6975,9 @@ | System.Text.Json;JsonReaderState;false;JsonReaderState;(System.Text.Json.JsonReaderOptions);;Argument[0];Argument[Qualifier];taint;generated | | System.Text.Json;JsonReaderState;false;get_Options;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonSerializer;false;Deserialize;(System.Text.Json.Utf8JsonReader,System.Type,System.Text.Json.JsonSerializerOptions);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json;JsonSerializer;false;Deserialize;(System.Text.Json.Utf8JsonReader,System.Type,System.Text.Json.Serialization.JsonSerializerContext);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonSerializer;false;Deserialize<>;(System.Text.Json.Utf8JsonReader,System.Text.Json.JsonSerializerOptions);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json;JsonSerializer;false;Deserialize<>;(System.Text.Json.Utf8JsonReader,System.Text.Json.Serialization.Metadata.JsonTypeInfo);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonSerializerOptions;false;JsonSerializerOptions;(System.Text.Json.JsonSerializerOptions);;Argument[0];Argument[Qualifier];taint;generated | | System.Text.Json;JsonSerializerOptions;false;get_DictionaryKeyPolicy;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonSerializerOptions;false;get_Encoder;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -6921,8 +7167,17 @@ | System.Text;Encoding;true;GetString;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;manual | | System.Text;EncodingProvider;true;GetEncoding;(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback);;Argument[1];ReturnValue;taint;generated | | System.Text;EncodingProvider;true;GetEncoding;(System.String,System.Text.EncoderFallback,System.Text.DecoderFallback);;Argument[1];ReturnValue;taint;generated | +| System.Text;SpanLineEnumerator;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;value;generated | +| System.Text;SpanLineEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;SpanRuneEnumerator;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;value;generated | | System.Text;SpanRuneEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendFormatted;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendFormatted<>;(T);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendFormatted<>;(T,System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendInterpolatedStringHandler;(System.Int32,System.Int32,System.Text.StringBuilder);;Argument[2];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendInterpolatedStringHandler;(System.Int32,System.Int32,System.Text.StringBuilder,System.IFormatProvider);;Argument[2];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendInterpolatedStringHandler;(System.Int32,System.Int32,System.Text.StringBuilder,System.IFormatProvider);;Argument[3];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendLiteral;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Text;StringBuilder+ChunkEnumerator;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;value;generated | | System.Text;StringBuilder+ChunkEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;Append;(System.Boolean);;Argument[Qualifier];ReturnValue;value;manual | @@ -6936,6 +7191,7 @@ | System.Text;StringBuilder;false;Append;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Decimal);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Double);;Argument[Qualifier];ReturnValue;value;manual | +| System.Text;StringBuilder;false;Append;(System.IFormatProvider,System.Text.StringBuilder+AppendInterpolatedStringHandler);;Argument[Qualifier];ReturnValue;value;generated | | System.Text;StringBuilder;false;Append;(System.Int16);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Int32);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Int64);;Argument[Qualifier];ReturnValue;value;manual | @@ -6950,6 +7206,7 @@ | System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Text.StringBuilder);;Argument[Qualifier];ReturnValue;value;manual | +| System.Text;StringBuilder;false;Append;(System.Text.StringBuilder+AppendInterpolatedStringHandler);;Argument[Qualifier];ReturnValue;value;generated | | System.Text;StringBuilder;false;Append;(System.Text.StringBuilder,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.UInt16);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.UInt32);;Argument[Qualifier];ReturnValue;value;manual | @@ -7000,8 +7257,10 @@ | System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[Qualifier].Element;value;manual | | System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;AppendLine;();;Argument[Qualifier];ReturnValue;value;manual | +| System.Text;StringBuilder;false;AppendLine;(System.IFormatProvider,System.Text.StringBuilder+AppendInterpolatedStringHandler);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[Qualifier];ReturnValue;value;manual | +| System.Text;StringBuilder;false;AppendLine;(System.Text.StringBuilder+AppendInterpolatedStringHandler);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;GetChunks;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | | System.Text;StringBuilder;false;Insert;(System.Int32,System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | @@ -7190,6 +7449,11 @@ | 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[1];Argument[0].Parameter[0];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;generated | +| System.Threading.Tasks;Task;false;WaitAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading.Tasks;Task;false;WaitAsync;(System.TimeSpan);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading.Tasks;Task;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Threading.Tasks;Task;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading.Tasks;Task;false;WhenAll;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | | System.Threading.Tasks;Task;false;WhenAll;(System.Threading.Tasks.Task[]);;Argument[0].Element;ReturnValue;taint;generated | | System.Threading.Tasks;Task;false;WhenAll<>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Threading.Tasks.Task<>.Result];ReturnValue.Property[System.Threading.Tasks.Task<>.Result].Element;value;manual | @@ -7257,6 +7521,9 @@ | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.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].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;WaitAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading.Tasks;Task<>;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;manual | | System.Threading.Tasks;TaskAsyncEnumerableExtensions;false;ConfigureAwait;(System.IAsyncDisposable,System.Boolean);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks;TaskAsyncEnumerableExtensions;false;ConfigureAwait<>;(System.Collections.Generic.IAsyncEnumerable,System.Boolean);;Argument[0];ReturnValue;taint;generated | @@ -7399,6 +7666,7 @@ | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object);;Argument[0];ReturnValue;taint;generated | | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object);;Argument[2];ReturnValue;taint;generated | | System.Threading;ManualResetEventSlim;false;get_WaitHandle;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading;PeriodicTimer;false;WaitForNextTickAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading;SemaphoreSlim;false;WaitAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | @@ -9510,6 +9778,8 @@ | 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;DBNull;false;ToType;(System.Type,System.IFormatProvider);;Argument[Qualifier];ReturnValue;taint;generated | +| System;DateOnly;false;ToString;(System.IFormatProvider);;Argument[0];ReturnValue;taint;generated | +| System;DateOnly;false;ToString;(System.String,System.IFormatProvider);;Argument[1];ReturnValue;taint;generated | | System;DateTime;false;GetDateTimeFormats;(System.Char,System.IFormatProvider);;Argument[1];ReturnValue;taint;generated | | System;DateTime;false;ToDateTime;(System.IFormatProvider);;Argument[Qualifier];ReturnValue;value;generated | | System;DateTime;false;ToLocalTime;();;Argument[Qualifier];ReturnValue;value;generated | @@ -9589,11 +9859,29 @@ | System;Lazy<>;false;Lazy;(T);;Argument[0];Argument[Qualifier];taint;generated | | System;Lazy<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Lazy<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual | +| System;Math;false;Abs;(System.IntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.IntPtr,System.IntPtr,System.IntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.IntPtr,System.IntPtr,System.IntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.IntPtr,System.IntPtr,System.IntPtr);;Argument[2];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.UIntPtr,System.UIntPtr,System.UIntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.UIntPtr,System.UIntPtr,System.UIntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.UIntPtr,System.UIntPtr,System.UIntPtr);;Argument[2];ReturnValue;taint;generated | +| System;Math;false;Max;(System.IntPtr,System.IntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Max;(System.IntPtr,System.IntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Max;(System.UIntPtr,System.UIntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Max;(System.UIntPtr,System.UIntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Min;(System.IntPtr,System.IntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Min;(System.IntPtr,System.IntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Min;(System.UIntPtr,System.UIntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Min;(System.UIntPtr,System.UIntPtr);;Argument[1];ReturnValue;taint;generated | | System;Memory<>;false;Memory;(T[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System;Memory<>;false;Memory;(T[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System;Memory<>;false;Slice;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System;Memory<>;false;Slice;(System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System;Memory<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| System;MemoryExtensions+TryWriteInterpolatedStringHandler;false;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated | +| System;MemoryExtensions+TryWriteInterpolatedStringHandler;false;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.IFormatProvider,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated | +| System;MemoryExtensions+TryWriteInterpolatedStringHandler;false;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.IFormatProvider,System.Boolean);;Argument[3];Argument[Qualifier];taint;generated | | System;MemoryExtensions;false;AsMemory;(System.String);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;AsMemory;(System.String,System.Index);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;AsMemory;(System.String,System.Int32);;Argument[0];ReturnValue;taint;generated | @@ -9607,6 +9895,7 @@ | System;MemoryExtensions;false;AsMemory<>;(T[],System.Int32);;Argument[0].Element;ReturnValue;taint;generated | | System;MemoryExtensions;false;AsMemory<>;(T[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | | System;MemoryExtensions;false;AsMemory<>;(T[],System.Range);;Argument[0].Element;ReturnValue;taint;generated | +| System;MemoryExtensions;false;EnumerateLines;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;EnumerateRunes;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;Trim;(System.Memory);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;Trim;(System.ReadOnlyMemory);;Argument[0];ReturnValue;taint;generated | @@ -9777,6 +10066,8 @@ | System;String;false;Replace;(System.String,System.String,System.Boolean,System.Globalization.CultureInfo);;Argument[Qualifier];ReturnValue;taint;generated | | System;String;false;Replace;(System.String,System.String,System.StringComparison);;Argument[1];ReturnValue;taint;generated | | System;String;false;Replace;(System.String,System.String,System.StringComparison);;Argument[Qualifier];ReturnValue;taint;generated | +| System;String;false;ReplaceLineEndings;();;Argument[Qualifier];ReturnValue;taint;generated | +| System;String;false;ReplaceLineEndings;(System.String);;Argument[Qualifier];ReturnValue;value;generated | | System;String;false;Split;(System.Char,System.Int32,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | | System;String;false;Split;(System.Char,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | | System;String;false;Split;(System.Char[]);;Argument[Qualifier];ReturnValue.Element;taint;manual | @@ -9812,6 +10103,8 @@ | System;String;false;TrimStart;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;manual | | System;StringNormalizationExtensions;false;Normalize;(System.String);;Argument[0];ReturnValue;taint;generated | | System;StringNormalizationExtensions;false;Normalize;(System.String,System.Text.NormalizationForm);;Argument[0];ReturnValue;taint;generated | +| System;TimeOnly;false;ToString;(System.IFormatProvider);;Argument[0];ReturnValue;taint;generated | +| System;TimeOnly;false;ToString;(System.String,System.IFormatProvider);;Argument[1];ReturnValue;taint;generated | | System;TimeZone;true;ToLocalTime;(System.DateTime);;Argument[0];ReturnValue;taint;generated | | System;TimeZone;true;ToUniversalTime;(System.DateTime);;Argument[0];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime);;Argument[0];ReturnValue;taint;generated | @@ -9819,7 +10112,14 @@ | System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime);;Argument[2];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime);;Argument[3];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime);;Argument[4];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[2];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[3];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[4];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[5];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;get_BaseUtcOffsetDelta;();;Argument[Qualifier];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;get_DateEnd;();;Argument[Qualifier];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;get_DateStart;();;Argument[Qualifier];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;get_DaylightDelta;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -10160,6 +10460,7 @@ | System;TupleExtensions;false;ToValueTuple<>;(System.Tuple);;Argument[0];ReturnValue;taint;generated | | System;Type;false;GetConstructor;(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetConstructor;(System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | +| System;Type;false;GetConstructor;(System.Reflection.BindingFlags,System.Type[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetConstructor;(System.Type[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetConstructors;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetEvent;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | @@ -10176,6 +10477,7 @@ | System;Type;false;GetMethod;(System.String,System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethod;(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethod;(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | +| System;Type;false;GetMethod;(System.String,System.Reflection.BindingFlags,System.Type[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethod;(System.String,System.Type[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethod;(System.String,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethods;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -10194,6 +10496,7 @@ | System;Type;false;get_TypeInitializer;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;true;GetEvents;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;true;GetMember;(System.String,System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | +| System;Type;true;GetMemberWithSameMetadataDefinitionAs;(System.Reflection.MemberInfo);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;true;get_GenericTypeArguments;();;Argument[Qualifier];ReturnValue;taint;generated | | System;TypeInitializationException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | | System;TypeInitializationException;false;get_TypeName;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -10214,6 +10517,7 @@ | System;Uri;false;MakeRelative;(System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;MakeRelativeUri;(System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;ToString;();;Argument[Qualifier];ReturnValue;taint;manual | +| System;Uri;false;TryCreate;(System.String,System.UriCreationOptions,System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;TryCreate;(System.String,System.UriKind,System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;TryCreate;(System.Uri,System.String,System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;TryCreate;(System.Uri,System.String,System.Uri);;Argument[1];ReturnValue;taint;generated | @@ -10223,6 +10527,7 @@ | System;Uri;false;Uri;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.String);;Argument[0];ReturnValue;taint;manual | | System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];ReturnValue;taint;manual | +| System;Uri;false;Uri;(System.String,System.UriCreationOptions);;Argument[0];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];ReturnValue;taint;manual | | System;Uri;false;Uri;(System.Uri,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.Uri,System.String);;Argument[1];Argument[Qualifier];taint;generated | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index a77b56ab64b..9f6938d44ea 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -87,7 +87,11 @@ | Microsoft.Win32.SafeHandles;SafeFileHandle;false;SafeFileHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | Microsoft.Win32.SafeHandles;SafePipeHandle;false;SafePipeHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | Microsoft.Win32.SafeHandles;SafeProcessHandle;false;SafeProcessHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Win32.SafeHandles;SafeRegistryHandle;false;SafeRegistryHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | Microsoft.Win32.SafeHandles;SafeWaitHandle;false;SafeWaitHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Win32;RegistryKey;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Win32;RegistryKey;false;get_Handle;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Win32;RegistryKey;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | | Newtonsoft.Json.Linq;JArray;false;get_Item;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual | | Newtonsoft.Json.Linq;JArray;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[Qualifier].Element;value;manual | | Newtonsoft.Json.Linq;JConstructor;false;get_Item;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual | @@ -256,6 +260,7 @@ | 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];ReturnValue.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];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,TValue);;Argument[1];ReturnValue;taint;generated | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | System.Collections.Concurrent;ConcurrentStack<>;false;ConcurrentStack;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | @@ -385,6 +390,21 @@ | System.Collections.Generic;List<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;List<>;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;List<>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | +| System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>+UnorderedItemsCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | +| System.Collections.Generic;PriorityQueue<,>;false;Dequeue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;EnqueueDequeue;(TElement,TPriority);;Argument[0];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;EnqueueDequeue;(TElement,TPriority);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;EnqueueRange;(System.Collections.Generic.IEnumerable>);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;Peek;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;PriorityQueue;(System.Collections.Generic.IComparer);;Argument[0];Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;PriorityQueue;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;PriorityQueue;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);;Argument[1];Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;PriorityQueue;(System.Int32,System.Collections.Generic.IComparer);;Argument[1];Argument[Qualifier];taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;TryDequeue;(TElement,TPriority);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;TryPeek;(TElement,TPriority);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Collections.Generic;PriorityQueue<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;Queue<>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;Queue<>;false;CopyTo;(T[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Queue<>;false;Dequeue;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -1850,6 +1870,7 @@ | System.Diagnostics.Contracts;ContractOptionAttribute;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics.Contracts;ContractPublicPropertyNameAttribute;false;ContractPublicPropertyNameAttribute;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics.Contracts;ContractPublicPropertyNameAttribute;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Diagnostics.Metrics;Measurement<>;false;Measurement;(T,System.Collections.Generic.KeyValuePair[]);;Argument[1].Element;Argument[Qualifier];taint;generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;get_DisplayName;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;get_DisplayUnits;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics.Tracing;DiagnosticCounter;false;set_DisplayName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -1876,6 +1897,7 @@ | System.Diagnostics;Activity;false;AddEvent;(System.Diagnostics.ActivityEvent);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;AddTag;(System.String,System.Object);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;AddTag;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Diagnostics;Activity;false;SetBaggage;(System.String,System.String);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetEndTime;(System.DateTime);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetIdFormat;(System.Diagnostics.ActivityIdFormat);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetParentId;(System.Diagnostics.ActivityTraceId,System.Diagnostics.ActivitySpanId,System.Diagnostics.ActivityTraceFlags);;Argument[0];Argument[Qualifier];taint;generated | @@ -1884,6 +1906,8 @@ | System.Diagnostics;Activity;false;SetParentId;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;Activity;false;SetParentId;(System.String);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetStartTime;(System.DateTime);;Argument[Qualifier];ReturnValue;value;generated | +| System.Diagnostics;Activity;false;SetStatus;(System.Diagnostics.ActivityStatusCode,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| System.Diagnostics;Activity;false;SetStatus;(System.Diagnostics.ActivityStatusCode,System.String);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;SetTag;(System.String,System.Object);;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;Start;();;Argument[Qualifier];ReturnValue;value;generated | | System.Diagnostics;Activity;false;get_DisplayName;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -1894,12 +1918,14 @@ | System.Diagnostics;Activity;false;get_ParentSpanId;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_RootId;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_SpanId;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Diagnostics;Activity;false;get_StatusDescription;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_TagObjects;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_TraceId;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;get_TraceStateString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;Activity;false;set_DisplayName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;Activity;false;set_TraceStateString;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;ActivityCreationOptions<>;false;get_SamplingTags;();;Argument[Qualifier];ReturnValue;taint;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;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;generated | | System.Diagnostics;ActivitySpanId;false;ToHexString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;ActivitySpanId;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -2019,6 +2045,8 @@ | System.Diagnostics;SwitchLevelAttribute;false;SwitchLevelAttribute;(System.Type);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;SwitchLevelAttribute;false;get_SwitchLevelType;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;SwitchLevelAttribute;false;set_SwitchLevelType;(System.Type);;Argument[0];Argument[Qualifier];taint;generated | +| System.Diagnostics;TagList+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Diagnostics;TagList;false;TagList;(System.ReadOnlySpan>);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;TextWriterTraceListener;false;TextWriterTraceListener;(System.IO.TextWriter,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;TextWriterTraceListener;false;TextWriterTraceListener;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;TextWriterTraceListener;false;TextWriterTraceListener;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -2250,6 +2278,10 @@ | System.IO.Compression;GZipStream;false;GZipStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO.Compression;GZipStream;false;GZipStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO.Compression;GZipStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Compression;ZLibStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO.Compression;ZLibStream;false;ZLibStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| System.IO.Compression;ZLibStream;false;ZLibStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| System.IO.Compression;ZLibStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;ZipArchive;false;CreateEntry;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO.Compression;ZipArchive;false;CreateEntry;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;ZipArchive;false;CreateEntry;(System.String,System.IO.Compression.CompressionLevel);;Argument[0];ReturnValue;taint;generated | @@ -2313,6 +2345,7 @@ | System.IO;BufferedStream;false;BufferedStream;(System.IO.Stream,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;BufferedStream;false;get_UnderlyingStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;Directory;false;CreateDirectory;(System.String);;Argument[0];ReturnValue;taint;generated | +| System.IO;Directory;false;CreateSymbolicLink;(System.String,System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;Directory;false;GetParent;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;DirectoryInfo;false;CreateSubdirectory;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;DirectoryInfo;false;CreateSubdirectory;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2345,6 +2378,8 @@ | System.IO;File;false;AppendAllLinesAsync;(System.String,System.Collections.Generic.IEnumerable,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.IO;File;false;AppendAllTextAsync;(System.String,System.String,System.Text.Encoding,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | | System.IO;File;false;AppendAllTextAsync;(System.String,System.String,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.IO;File;false;CreateSymbolicLink;(System.String,System.String);;Argument[0];ReturnValue;taint;generated | +| System.IO;File;false;OpenHandle;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.IO.FileOptions,System.Int64);;Argument[0];ReturnValue;taint;generated | | System.IO;File;false;ReadLines;(System.String);;Argument[0];ReturnValue;taint;generated | | System.IO;File;false;ReadLines;(System.String,System.Text.Encoding);;Argument[0];ReturnValue;taint;generated | | System.IO;File;false;ReadLines;(System.String,System.Text.Encoding);;Argument[1];ReturnValue;taint;generated | @@ -2377,6 +2412,7 @@ | System.IO;FileSystemEventArgs;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemInfo;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemInfo;false;get_Extension;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO;FileSystemInfo;false;get_LinkTarget;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemInfo;true;get_FullName;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemInfo;true;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;FileSystemWatcher;false;FileSystemWatcher;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -2434,6 +2470,17 @@ | System.IO;Path;false;Join;(System.ReadOnlySpan,System.ReadOnlySpan,System.ReadOnlySpan,System.ReadOnlySpan);;Argument[3];ReturnValue;taint;generated | | System.IO;Path;false;TrimEndingDirectorySeparator;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;generated | | System.IO;Path;false;TrimEndingDirectorySeparator;(System.String);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[1].Element;ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Memory,System.Int64,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;ReadAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Memory,System.Int64,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[1].Element;ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList>,System.Int64,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlyMemory,System.Int64,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlyMemory,System.Int64,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO;RandomAccess;false;WriteAsync;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlyMemory,System.Int64,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | | System.IO;RenamedEventArgs;false;RenamedEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System.IO;RenamedEventArgs;false;RenamedEventArgs;(System.IO.WatcherChangeTypes,System.String,System.String,System.String);;Argument[3];Argument[Qualifier];taint;generated | | System.IO;RenamedEventArgs;false;get_OldFullPath;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -3020,7 +3067,9 @@ | 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;ElementAt<>;(System.Collections.Generic.IEnumerable,System.Index);;Argument[0].Element;ReturnValue;taint;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;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 | @@ -3030,6 +3079,8 @@ | 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,TSource);;Argument[0].Element;ReturnValue;taint;generated | +| System.Linq;Enumerable;false;FirstOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;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 | @@ -3085,8 +3136,12 @@ | 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,TSource);;Argument[0].Element;ReturnValue;taint;generated | +| System.Linq;Enumerable;false;LastOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;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;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.Collections.Generic.IComparer);;Argument[0].Element;Argument[1];taint;generated | +| System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;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[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Max<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | @@ -3098,6 +3153,8 @@ | 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[0].Element;Argument[1].Parameter[0];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.Collections.Generic.IComparer);;Argument[0].Element;Argument[1];taint;generated | +| System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);;Argument[0].Element;ReturnValue;taint;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[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;false;Min<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | @@ -3142,6 +3199,8 @@ | 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,TSource);;Argument[0].Element;ReturnValue;taint;generated | +| System.Linq;Enumerable;false;SingleOrDefault<>;(System.Collections.Generic.IEnumerable,TSource);;Argument[1];ReturnValue;taint;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;generated | | System.Linq;Enumerable;false;SkipWhile<>;(System.Collections.Generic.IEnumerable,System.Func);;Argument[0].Element;Argument[1].Parameter[0];value;manual | @@ -3159,6 +3218,7 @@ | 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[0].Element;Argument[1].Parameter[0];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;generated | | System.Linq;Enumerable;false;TakeLast<>;(System.Collections.Generic.IEnumerable,System.Int32);;Argument[0].Element;ReturnValue;taint;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 | @@ -3697,6 +3757,16 @@ | System.Net.Http.Headers;EntityTagHeaderValue;false;EntityTagHeaderValue;(System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http.Headers;EntityTagHeaderValue;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Headers;EntityTagHeaderValue;false;get_Tag;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HeaderStringValues+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HeaderStringValues;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HeaderStringValues;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeaders;false;get_NonValidated;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;TryGetValue;(System.String,System.Net.Http.Headers.HeaderStringValues);;Argument[0];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;TryGetValues;(System.String,System.Net.Http.Headers.HeaderStringValues);;Argument[0];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;get_Item;(System.String);;Argument[0];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;get_Keys;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http.Headers;HttpHeadersNonValidated;false;get_Values;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Headers;HttpResponseHeaders;false;get_AcceptRanges;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Headers;HttpResponseHeaders;false;get_ProxyAuthenticate;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http.Headers;HttpResponseHeaders;false;get_Server;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -3862,6 +3932,7 @@ | System.Net.Http;ReadOnlyMemoryContent;false;ReadOnlyMemoryContent;(System.ReadOnlyMemory);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;SocketsHttpConnectionContext;false;get_DnsEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpConnectionContext;false;get_InitialRequestMessage;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http;SocketsHttpHandler;false;get_ActivityHeadersPropagator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_ConnectCallback;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_ConnectTimeout;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_CookieContainer;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -3879,6 +3950,7 @@ | System.Net.Http;SocketsHttpHandler;false;get_ResponseDrainTimeout;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_ResponseHeaderEncodingSelector;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Http;SocketsHttpHandler;false;get_SslOptions;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Http;SocketsHttpHandler;false;set_ActivityHeadersPropagator;(System.Diagnostics.DistributedContextPropagator);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;SocketsHttpHandler;false;set_ConnectTimeout;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;SocketsHttpHandler;false;set_CookieContainer;(System.Net.CookieContainer);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Http;SocketsHttpHandler;false;set_Credentials;(System.Net.ICredentials);;Argument[0];Argument[Qualifier];taint;generated | @@ -4050,6 +4122,8 @@ | System.Net.Security;NegotiateStream;false;get_RemoteIdentity;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslApplicationProtocol;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslApplicationProtocol;false;get_Protocol;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Security;SslCertificateTrust;false;CreateForX509Collection;(System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean);;Argument[0].Element;ReturnValue;taint;generated | +| System.Net.Security;SslCertificateTrust;false;CreateForX509Store;(System.Security.Cryptography.X509Certificates.X509Store,System.Boolean);;Argument[0];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;Write;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Net.Security;SslStream;false;get_LocalCertificate;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4057,6 +4131,8 @@ | System.Net.Security;SslStream;false;get_RemoteCertificate;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslStream;false;get_TransportContext;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Security;SslStreamCertificateContext;false;Create;(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| System.Net.Security;SslStreamCertificateContext;false;Create;(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean,System.Net.Security.SslCertificateTrust);;Argument[0];ReturnValue;taint;generated | +| System.Net.Security;SslStreamCertificateContext;false;Create;(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Boolean,System.Net.Security.SslCertificateTrust);;Argument[3];ReturnValue;taint;generated | | System.Net.Sockets;IPPacketInformation;false;get_Address;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;IPv6MulticastOption;false;IPv6MulticastOption;(System.Net.IPAddress);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;IPv6MulticastOption;false;IPv6MulticastOption;(System.Net.IPAddress,System.Int64);;Argument[0];Argument[Qualifier];taint;generated | @@ -4079,14 +4155,32 @@ | System.Net.Sockets;NetworkStream;false;get_Socket;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;SafeSocketHandle;false;SafeSocketHandle;(System.IntPtr,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;Accept;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.Socket,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;AcceptAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;AcceptAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;Bind;(System.Net.EndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.EndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;Connect;(System.Net.IPAddress[],System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.EndPoint);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.EndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.IPAddress,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.IPAddress,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ConnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;ConnectAsync;(System.String,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;DisconnectAsync;(System.Boolean,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;DisconnectAsync;(System.Boolean,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;DisconnectAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;ReceiveAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];ReturnValue;taint;generated | @@ -4096,18 +4190,45 @@ | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Net.EndPoint);;Argument[1];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ReceiveFrom;(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.EndPoint);;Argument[1];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.EndPoint);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveFromAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[4];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[4];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFrom;(System.Span,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Net.Sockets.IPPacketInformation);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Memory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;ReceiveMessageFromAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;SendAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;SendAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendFileAsync;(System.String,System.ReadOnlyMemory,System.ReadOnlyMemory,System.Net.Sockets.TransmitFileOptions,System.Threading.CancellationToken);;Argument[4];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendFileAsync;(System.String,System.ReadOnlyMemory,System.ReadOnlyMemory,System.Net.Sockets.TransmitFileOptions,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendFileAsync;(System.String,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendFileAsync;(System.String,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;SendPacketsAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | | System.Net.Sockets;Socket;false;SendTo;(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[4];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendTo;(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[3];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendTo;(System.Byte[],System.Net.EndPoint);;Argument[1];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendTo;(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;SendTo;(System.ReadOnlySpan,System.Net.EndPoint);;Argument[1];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;SendTo;(System.ReadOnlySpan,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);;Argument[2];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendToAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;Socket;false;SendToAsync;(System.Net.Sockets.SocketAsyncEventArgs);;Argument[Qualifier];Argument[0];taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.Net.Sockets;Socket;false;SendToAsync;(System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;get_Handle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;get_LocalEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;Socket;false;get_RemoteEndPoint;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -4144,11 +4265,15 @@ | System.Net.Sockets;SocketTaskExtensions;false;SendAsync;(System.Net.Sockets.Socket,System.ReadOnlyMemory,System.Net.Sockets.SocketFlags,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;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;generated | | System.Net.Sockets;TcpClient;false;Connect;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;TcpClient;false;ConnectAsync;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.Sockets;TcpClient;false;ConnectAsync;(System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpClient;false;GetStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpClient;false;TcpClient;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpClient;false;get_Client;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpClient;false;set_Client;(System.Net.Sockets.Socket);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;AcceptSocket;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | +| System.Net.Sockets;TcpListener;false;AcceptSocketAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpListener;false;AcceptTcpClient;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPAddress,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;TcpListener;false;TcpListener;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | @@ -4158,7 +4283,16 @@ | System.Net.Sockets;UdpClient;false;EndReceive;(System.IAsyncResult,System.Net.IPEndPoint);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;UdpClient;false;Receive;(System.Net.IPEndPoint);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;UdpClient;false;Send;(System.Byte[],System.Int32,System.Net.IPEndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;UdpClient;false;Send;(System.ReadOnlySpan,System.Net.IPEndPoint);;Argument[1];Argument[Qualifier];taint;generated | | System.Net.Sockets;UdpClient;false;SendAsync;(System.Byte[],System.Int32,System.Net.IPEndPoint);;Argument[2];Argument[Qualifier];taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[1];Argument[Qualifier];taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Net.IPEndPoint,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.String,System.Int32,System.Threading.CancellationToken);;Argument[3];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.String,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Net.Sockets;UdpClient;false;SendAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;UdpClient;false;UdpClient;(System.Net.IPEndPoint);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.Sockets;UdpClient;false;get_Client;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net.Sockets;UdpClient;false;set_Client;(System.Net.Sockets.Socket);;Argument[0];Argument[Qualifier];taint;generated | @@ -4190,6 +4324,11 @@ | System.Net.WebSockets;WebSocket;false;CreateClientWebSocket;(System.IO.Stream,System.String,System.Int32,System.Int32,System.TimeSpan,System.Boolean,System.ArraySegment);;Argument[1];ReturnValue;taint;generated | | System.Net.WebSockets;WebSocket;false;CreateFromStream;(System.IO.Stream,System.Boolean,System.String,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | | System.Net.WebSockets;WebSocket;false;CreateFromStream;(System.IO.Stream,System.Boolean,System.String,System.TimeSpan);;Argument[2];ReturnValue;taint;generated | +| System.Net.WebSockets;WebSocket;true;SendAsync;(System.ReadOnlyMemory,System.Net.WebSockets.WebSocketMessageType,System.Net.WebSockets.WebSocketMessageFlags,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.WebSockets;WebSocketCreationOptions;false;get_KeepAliveInterval;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.WebSockets;WebSocketCreationOptions;false;get_SubProtocol;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Net.WebSockets;WebSocketCreationOptions;false;set_KeepAliveInterval;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | +| System.Net.WebSockets;WebSocketCreationOptions;false;set_SubProtocol;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Net.WebSockets;WebSocketException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | | System.Net;Authorization;false;get_ProtectionRealm;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Net;Authorization;false;set_ProtectionRealm;(System.String[]);;Argument[0].Element;Argument[Qualifier];taint;generated | @@ -4596,6 +4735,7 @@ | System.Reflection.Emit;DynamicMethod;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;DynamicMethod;false;get_ReturnParameter;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;DynamicMethod;false;get_ReturnType;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Reflection.Emit;EnumBuilder;false;CreateType;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;EnumBuilder;false;CreateTypeInfo;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;EnumBuilder;false;DefineLiteral;(System.String,System.Object);;Argument[0];ReturnValue;taint;generated | | System.Reflection.Emit;EnumBuilder;false;DefineLiteral;(System.String,System.Object);;Argument[1];ReturnValue;taint;generated | @@ -4723,6 +4863,7 @@ | System.Reflection.Emit;ModuleBuilder;false;GetArrayMethod;(System.Type,System.String,System.Reflection.CallingConventions,System.Type,System.Type[]);;Argument[3];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;GetField;(System.String,System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;GetFields;(System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Reflection.Emit;ModuleBuilder;false;GetMethodImpl;(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;GetMethods;(System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;GetType;(System.String,System.Boolean,System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Reflection.Emit;ModuleBuilder;false;SetCustomAttribute;(System.Reflection.Emit.CustomAttributeBuilder);;Argument[0];Argument[Qualifier];taint;generated | @@ -5286,10 +5427,19 @@ | System.Runtime.CompilerServices;ContractHelper;false;RaiseContractFailedEvent;(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception);;Argument[1];ReturnValue;taint;generated | | System.Runtime.CompilerServices;ContractHelper;false;RaiseContractFailedEvent;(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception);;Argument[2];ReturnValue;taint;generated | | System.Runtime.CompilerServices;DateTimeConstantAttribute;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime.CompilerServices;DefaultInterpolatedStringHandler;false;DefaultInterpolatedStringHandler;(System.Int32,System.Int32,System.IFormatProvider);;Argument[2];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;DefaultInterpolatedStringHandler;false;DefaultInterpolatedStringHandler;(System.Int32,System.Int32,System.IFormatProvider,System.Span);;Argument[2];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;DefaultInterpolatedStringHandler;false;DefaultInterpolatedStringHandler;(System.Int32,System.Int32,System.IFormatProvider,System.Span);;Argument[3];Argument[Qualifier];taint;generated | | System.Runtime.CompilerServices;DynamicAttribute;false;DynamicAttribute;(System.Boolean[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Runtime.CompilerServices;DynamicAttribute;false;get_TransformFlags;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.CompilerServices;FormattableStringFactory;false;Create;(System.String,System.Object[]);;Argument[0];ReturnValue;taint;generated | | System.Runtime.CompilerServices;FormattableStringFactory;false;Create;(System.String,System.Object[]);;Argument[1].Element;ReturnValue;taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder;false;AwaitUnsafeOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;AwaitOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;AwaitUnsafeOnCompleted<,>;(TAwaiter,TStateMachine);;Argument[1];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;SetResult;(TResult);;Argument[0];Argument[Qualifier];taint;generated | +| System.Runtime.CompilerServices;PoolingAsyncValueTaskMethodBuilder<>;false;get_Task;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;ReadOnlyCollectionBuilder;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual | | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder<>;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual | @@ -5308,10 +5458,15 @@ | System.Runtime.CompilerServices;ValueTaskAwaiter<>;false;GetResult;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;Capture;(System.Exception);;Argument[0];ReturnValue;taint;generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetCurrentStackTrace;(System.Exception);;Argument[0];ReturnValue;taint;generated | +| System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[0];ReturnValue;taint;generated | +| System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[1];Argument[0];taint;generated | +| System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;SetRemoteStackTrace;(System.Exception,System.String);;Argument[1];ReturnValue;taint;generated | | System.Runtime.ExceptionServices;ExceptionDispatchInfo;false;get_SourceException;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;ArrayWithOffset;false;ArrayWithOffset;(System.Object,System.Int32);;Argument[0];Argument[Qualifier];taint;generated | | System.Runtime.InteropServices;ArrayWithOffset;false;GetArray;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime.InteropServices;CLong;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;COMException;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime.InteropServices;CULong;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;ComAwareEventInfo;false;GetAddMethod;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;ComAwareEventInfo;false;GetRaiseMethod;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;ComAwareEventInfo;false;GetRemoveMethod;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | @@ -5330,6 +5485,7 @@ | System.Runtime.InteropServices;HandleRef;false;get_Handle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;HandleRef;false;get_Wrapper;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Runtime.InteropServices;Marshal;false;GenerateProgIdForType;(System.Type);;Argument[0];ReturnValue;taint;generated | +| System.Runtime.InteropServices;Marshal;false;InitHandle;(System.Runtime.InteropServices.SafeHandle,System.IntPtr);;Argument[1];Argument[0];taint;generated | | System.Runtime.InteropServices;MemoryMarshal;false;CreateFromPinnedArray<>;(T[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | | System.Runtime.InteropServices;MemoryMarshal;false;TryGetMemoryManager<,>;(System.ReadOnlyMemory,TManager);;Argument[0];ReturnValue;taint;generated | | System.Runtime.InteropServices;MemoryMarshal;false;TryGetMemoryManager<,>;(System.ReadOnlyMemory,TManager,System.Int32,System.Int32);;Argument[0];ReturnValue;taint;generated | @@ -5502,6 +5658,9 @@ | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope);;Argument[0];ReturnValue;taint;generated | | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type);;Argument[0];ReturnValue;taint;generated | | System.Runtime.Versioning;VersioningHelper;false;MakeVersionSafeName;(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type);;Argument[3];ReturnValue;taint;generated | +| System.Runtime;DependentHandle;false;get_Dependent;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime;DependentHandle;false;get_Target;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Runtime;DependentHandle;false;get_TargetAndDependent;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ExtendedProtectionPolicy;(System.Security.Authentication.ExtendedProtection.PolicyEnforcement,System.Security.Authentication.ExtendedProtection.ChannelBinding);;Argument[1];Argument[Qualifier];taint;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[Qualifier];taint;generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -5740,6 +5899,7 @@ | System.Security.Cryptography;RSAPKCS1SignatureFormatter;false;RSAPKCS1SignatureFormatter;(System.Security.Cryptography.AsymmetricAlgorithm);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;RSAPKCS1SignatureFormatter;false;SetHashAlgorithm;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;RSAPKCS1SignatureFormatter;false;SetKey;(System.Security.Cryptography.AsymmetricAlgorithm);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography;SafeEvpPKeyHandle;false;DuplicateHandle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Principal;GenericIdentity;false;Clone;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Principal;GenericIdentity;false;GenericIdentity;(System.Security.Principal.GenericIdentity);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Principal;GenericIdentity;false;GenericIdentity;(System.String);;Argument[0];Argument[Qualifier];taint;generated | @@ -5774,6 +5934,24 @@ | System.Text.Encodings.Web;TextEncoder;true;Encode;(System.IO.TextWriter,System.Char[],System.Int32,System.Int32);;Argument[1].Element;Argument[0];taint;generated | | System.Text.Encodings.Web;TextEncoder;true;Encode;(System.IO.TextWriter,System.String,System.Int32,System.Int32);;Argument[1];Argument[0];taint;generated | | System.Text.Encodings.Web;TextEncoder;true;Encode;(System.String);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonArray;false;Add<>;(T);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text.Json.Nodes;JsonArray;false;Create;(System.Text.Json.JsonElement,System.Nullable);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonArray;false;JsonArray;(System.Text.Json.Nodes.JsonNodeOptions,System.Text.Json.Nodes.JsonNode[]);;Argument[Qualifier];Argument[1].Element;taint;generated | +| System.Text.Json.Nodes;JsonArray;false;JsonArray;(System.Text.Json.Nodes.JsonNode[]);;Argument[Qualifier];Argument[0].Element;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;AsArray;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;AsObject;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;AsValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;Parse;(System.Text.Json.Utf8JsonReader,System.Nullable);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;get_Options;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;get_Parent;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonNode;false;get_Root;();;Argument[Qualifier];ReturnValue;value;generated | +| System.Text.Json.Nodes;JsonObject;false;Create;(System.Text.Json.JsonElement,System.Nullable);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json.Nodes;JsonValue;false;Create<>;(T,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Nullable);;Argument[1];ReturnValue;taint;generated | +| System.Text.Json.Serialization.Metadata;JsonTypeInfo<>;false;get_SerializeHandler;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[Qualifier];Argument[0];taint;generated | +| System.Text.Json.Serialization;JsonSerializerContext;false;get_Options;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json.Serialization;JsonStringEnumConverter;false;JsonStringEnumConverter;(System.Text.Json.JsonNamingPolicy,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.Text.Json;JsonDocument;false;Parse;(System.Buffers.ReadOnlySequence,System.Text.Json.JsonDocumentOptions);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonDocument;false;Parse;(System.IO.Stream,System.Text.Json.JsonDocumentOptions);;Argument[0];ReturnValue;taint;generated | @@ -5790,9 +5968,11 @@ | System.Text.Json;JsonElement;false;GetProperty;(System.ReadOnlySpan);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;GetProperty;(System.ReadOnlySpan);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;GetProperty;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json;JsonElement;false;ParseValue;(System.Text.Json.Utf8JsonReader);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;TryGetProperty;(System.ReadOnlySpan,System.Text.Json.JsonElement);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;TryGetProperty;(System.ReadOnlySpan,System.Text.Json.JsonElement);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;TryGetProperty;(System.String,System.Text.Json.JsonElement);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text.Json;JsonElement;false;TryParseValue;(System.Text.Json.Utf8JsonReader,System.Nullable);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonElement;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonEncodedText;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | @@ -5805,7 +5985,9 @@ | System.Text.Json;JsonReaderState;false;JsonReaderState;(System.Text.Json.JsonReaderOptions);;Argument[0];Argument[Qualifier];taint;generated | | System.Text.Json;JsonReaderState;false;get_Options;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonSerializer;false;Deserialize;(System.Text.Json.Utf8JsonReader,System.Type,System.Text.Json.JsonSerializerOptions);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json;JsonSerializer;false;Deserialize;(System.Text.Json.Utf8JsonReader,System.Type,System.Text.Json.Serialization.JsonSerializerContext);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonSerializer;false;Deserialize<>;(System.Text.Json.Utf8JsonReader,System.Text.Json.JsonSerializerOptions);;Argument[0];ReturnValue;taint;generated | +| System.Text.Json;JsonSerializer;false;Deserialize<>;(System.Text.Json.Utf8JsonReader,System.Text.Json.Serialization.Metadata.JsonTypeInfo);;Argument[0];ReturnValue;taint;generated | | System.Text.Json;JsonSerializerOptions;false;JsonSerializerOptions;(System.Text.Json.JsonSerializerOptions);;Argument[0];Argument[Qualifier];taint;generated | | System.Text.Json;JsonSerializerOptions;false;get_DictionaryKeyPolicy;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text.Json;JsonSerializerOptions;false;get_Encoder;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -5955,8 +6137,17 @@ | System.Text;Encoding;true;GetString;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;manual | | System.Text;EncodingProvider;true;GetEncoding;(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback);;Argument[1];ReturnValue;taint;generated | | System.Text;EncodingProvider;true;GetEncoding;(System.String,System.Text.EncoderFallback,System.Text.DecoderFallback);;Argument[1];ReturnValue;taint;generated | +| System.Text;SpanLineEnumerator;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;value;generated | +| System.Text;SpanLineEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;SpanRuneEnumerator;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;value;generated | | System.Text;SpanRuneEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendFormatted;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendFormatted<>;(T);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendFormatted<>;(T,System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendInterpolatedStringHandler;(System.Int32,System.Int32,System.Text.StringBuilder);;Argument[2];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendInterpolatedStringHandler;(System.Int32,System.Int32,System.Text.StringBuilder,System.IFormatProvider);;Argument[2];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendInterpolatedStringHandler;(System.Int32,System.Int32,System.Text.StringBuilder,System.IFormatProvider);;Argument[3];Argument[Qualifier];taint;generated | +| System.Text;StringBuilder+AppendInterpolatedStringHandler;false;AppendLiteral;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Text;StringBuilder+ChunkEnumerator;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;value;generated | | System.Text;StringBuilder+ChunkEnumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;Append;(System.Boolean);;Argument[Qualifier];ReturnValue;value;manual | @@ -5970,6 +6161,7 @@ | System.Text;StringBuilder;false;Append;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Decimal);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Double);;Argument[Qualifier];ReturnValue;value;manual | +| System.Text;StringBuilder;false;Append;(System.IFormatProvider,System.Text.StringBuilder+AppendInterpolatedStringHandler);;Argument[Qualifier];ReturnValue;value;generated | | System.Text;StringBuilder;false;Append;(System.Int16);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Int32);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Int64);;Argument[Qualifier];ReturnValue;value;manual | @@ -5984,6 +6176,7 @@ | System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.Text.StringBuilder);;Argument[Qualifier];ReturnValue;value;manual | +| System.Text;StringBuilder;false;Append;(System.Text.StringBuilder+AppendInterpolatedStringHandler);;Argument[Qualifier];ReturnValue;value;generated | | System.Text;StringBuilder;false;Append;(System.Text.StringBuilder,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.UInt16);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;Append;(System.UInt32);;Argument[Qualifier];ReturnValue;value;manual | @@ -6034,8 +6227,10 @@ | System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[Qualifier].Element;value;manual | | System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable);;Argument[Qualifier];ReturnValue;value;manual | | System.Text;StringBuilder;false;AppendLine;();;Argument[Qualifier];ReturnValue;value;manual | +| System.Text;StringBuilder;false;AppendLine;(System.IFormatProvider,System.Text.StringBuilder+AppendInterpolatedStringHandler);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[Qualifier];ReturnValue;value;manual | +| System.Text;StringBuilder;false;AppendLine;(System.Text.StringBuilder+AppendInterpolatedStringHandler);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;GetChunks;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | | System.Text;StringBuilder;false;Insert;(System.Int32,System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | @@ -6188,6 +6383,11 @@ | 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[1];Argument[0].Parameter[0];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;generated | +| System.Threading.Tasks;Task;false;WaitAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading.Tasks;Task;false;WaitAsync;(System.TimeSpan);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading.Tasks;Task;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.Threading.Tasks;Task;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading.Tasks;Task;false;WhenAll;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | | System.Threading.Tasks;Task;false;WhenAll;(System.Threading.Tasks.Task[]);;Argument[0].Element;ReturnValue;taint;generated | | System.Threading.Tasks;Task;false;WhenAll<>;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Threading.Tasks.Task<>.Result];ReturnValue.Property[System.Threading.Tasks.Task<>.Result].Element;value;manual | @@ -6255,6 +6455,9 @@ | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.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].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | | System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;WaitAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading.Tasks;Task<>;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;manual | | System.Threading.Tasks;TaskAsyncEnumerableExtensions;false;ConfigureAwait;(System.IAsyncDisposable,System.Boolean);;Argument[0];ReturnValue;taint;generated | | System.Threading.Tasks;TaskAsyncEnumerableExtensions;false;ConfigureAwait<>;(System.Collections.Generic.IAsyncEnumerable,System.Boolean);;Argument[0];ReturnValue;taint;generated | @@ -6397,6 +6600,7 @@ | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object);;Argument[0];ReturnValue;taint;generated | | System.Threading;LazyInitializer;false;EnsureInitialized<>;(T,System.Boolean,System.Object);;Argument[2];ReturnValue;taint;generated | | System.Threading;ManualResetEventSlim;false;get_WaitHandle;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Threading;PeriodicTimer;false;WaitForNextTickAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading;SemaphoreSlim;false;WaitAsync;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading;SemaphoreSlim;false;WaitAsync;(System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | @@ -8331,6 +8535,8 @@ | 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;DBNull;false;ToType;(System.Type,System.IFormatProvider);;Argument[Qualifier];ReturnValue;taint;generated | +| System;DateOnly;false;ToString;(System.IFormatProvider);;Argument[0];ReturnValue;taint;generated | +| System;DateOnly;false;ToString;(System.String,System.IFormatProvider);;Argument[1];ReturnValue;taint;generated | | System;DateTime;false;GetDateTimeFormats;(System.Char,System.IFormatProvider);;Argument[1];ReturnValue;taint;generated | | System;DateTime;false;ToDateTime;(System.IFormatProvider);;Argument[Qualifier];ReturnValue;value;generated | | System;DateTime;false;ToLocalTime;();;Argument[Qualifier];ReturnValue;value;generated | @@ -8410,11 +8616,29 @@ | System;Lazy<>;false;Lazy;(T);;Argument[0];Argument[Qualifier];taint;generated | | System;Lazy<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Lazy<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual | +| System;Math;false;Abs;(System.IntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.IntPtr,System.IntPtr,System.IntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.IntPtr,System.IntPtr,System.IntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.IntPtr,System.IntPtr,System.IntPtr);;Argument[2];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.UIntPtr,System.UIntPtr,System.UIntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.UIntPtr,System.UIntPtr,System.UIntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Clamp;(System.UIntPtr,System.UIntPtr,System.UIntPtr);;Argument[2];ReturnValue;taint;generated | +| System;Math;false;Max;(System.IntPtr,System.IntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Max;(System.IntPtr,System.IntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Max;(System.UIntPtr,System.UIntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Max;(System.UIntPtr,System.UIntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Min;(System.IntPtr,System.IntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Min;(System.IntPtr,System.IntPtr);;Argument[1];ReturnValue;taint;generated | +| System;Math;false;Min;(System.UIntPtr,System.UIntPtr);;Argument[0];ReturnValue;taint;generated | +| System;Math;false;Min;(System.UIntPtr,System.UIntPtr);;Argument[1];ReturnValue;taint;generated | | System;Memory<>;false;Memory;(T[]);;Argument[0].Element;Argument[Qualifier];taint;generated | | System;Memory<>;false;Memory;(T[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;generated | | System;Memory<>;false;Slice;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System;Memory<>;false;Slice;(System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | | System;Memory<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| System;MemoryExtensions+TryWriteInterpolatedStringHandler;false;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated | +| System;MemoryExtensions+TryWriteInterpolatedStringHandler;false;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.IFormatProvider,System.Boolean);;Argument[2];Argument[Qualifier];taint;generated | +| System;MemoryExtensions+TryWriteInterpolatedStringHandler;false;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.IFormatProvider,System.Boolean);;Argument[3];Argument[Qualifier];taint;generated | | System;MemoryExtensions;false;AsMemory;(System.String);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;AsMemory;(System.String,System.Index);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;AsMemory;(System.String,System.Int32);;Argument[0];ReturnValue;taint;generated | @@ -8428,6 +8652,7 @@ | System;MemoryExtensions;false;AsMemory<>;(T[],System.Int32);;Argument[0].Element;ReturnValue;taint;generated | | System;MemoryExtensions;false;AsMemory<>;(T[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;generated | | System;MemoryExtensions;false;AsMemory<>;(T[],System.Range);;Argument[0].Element;ReturnValue;taint;generated | +| System;MemoryExtensions;false;EnumerateLines;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;EnumerateRunes;(System.ReadOnlySpan);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;Trim;(System.Memory);;Argument[0];ReturnValue;taint;generated | | System;MemoryExtensions;false;Trim;(System.ReadOnlyMemory);;Argument[0];ReturnValue;taint;generated | @@ -8594,6 +8819,8 @@ | System;String;false;Replace;(System.String,System.String,System.Boolean,System.Globalization.CultureInfo);;Argument[Qualifier];ReturnValue;taint;generated | | System;String;false;Replace;(System.String,System.String,System.StringComparison);;Argument[1];ReturnValue;taint;generated | | System;String;false;Replace;(System.String,System.String,System.StringComparison);;Argument[Qualifier];ReturnValue;taint;generated | +| System;String;false;ReplaceLineEndings;();;Argument[Qualifier];ReturnValue;taint;generated | +| System;String;false;ReplaceLineEndings;(System.String);;Argument[Qualifier];ReturnValue;value;generated | | System;String;false;Split;(System.Char,System.Int32,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | | System;String;false;Split;(System.Char,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | | System;String;false;Split;(System.Char[]);;Argument[Qualifier];ReturnValue.Element;taint;manual | @@ -8629,6 +8856,8 @@ | System;String;false;TrimStart;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;manual | | System;StringNormalizationExtensions;false;Normalize;(System.String);;Argument[0];ReturnValue;taint;generated | | System;StringNormalizationExtensions;false;Normalize;(System.String,System.Text.NormalizationForm);;Argument[0];ReturnValue;taint;generated | +| System;TimeOnly;false;ToString;(System.IFormatProvider);;Argument[0];ReturnValue;taint;generated | +| System;TimeOnly;false;ToString;(System.String,System.IFormatProvider);;Argument[1];ReturnValue;taint;generated | | System;TimeZone;true;ToLocalTime;(System.DateTime);;Argument[0];ReturnValue;taint;generated | | System;TimeZone;true;ToUniversalTime;(System.DateTime);;Argument[0];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime);;Argument[0];ReturnValue;taint;generated | @@ -8636,7 +8865,14 @@ | System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime);;Argument[2];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime);;Argument[3];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime);;Argument[4];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[2];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[3];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[4];ReturnValue;taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;CreateAdjustmentRule;(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime,System.TimeSpan);;Argument[5];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | +| System;TimeZoneInfo+AdjustmentRule;false;get_BaseUtcOffsetDelta;();;Argument[Qualifier];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;get_DateEnd;();;Argument[Qualifier];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;get_DateStart;();;Argument[Qualifier];ReturnValue;taint;generated | | System;TimeZoneInfo+AdjustmentRule;false;get_DaylightDelta;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -8977,6 +9213,7 @@ | System;TupleExtensions;false;ToValueTuple<>;(System.Tuple);;Argument[0];ReturnValue;taint;generated | | System;Type;false;GetConstructor;(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetConstructor;(System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | +| System;Type;false;GetConstructor;(System.Reflection.BindingFlags,System.Type[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetConstructor;(System.Type[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetConstructors;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetEvent;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | @@ -8993,6 +9230,7 @@ | System;Type;false;GetMethod;(System.String,System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethod;(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethod;(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | +| System;Type;false;GetMethod;(System.String,System.Reflection.BindingFlags,System.Type[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethod;(System.String,System.Type[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethod;(System.String,System.Type[],System.Reflection.ParameterModifier[]);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;false;GetMethods;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -9011,6 +9249,7 @@ | System;Type;false;get_TypeInitializer;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;true;GetEvents;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;true;GetMember;(System.String,System.Reflection.BindingFlags);;Argument[Qualifier];ReturnValue;taint;generated | +| System;Type;true;GetMemberWithSameMetadataDefinitionAs;(System.Reflection.MemberInfo);;Argument[Qualifier];ReturnValue;taint;generated | | System;Type;true;get_GenericTypeArguments;();;Argument[Qualifier];ReturnValue;taint;generated | | System;TypeInitializationException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | | System;TypeInitializationException;false;get_TypeName;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -9031,6 +9270,7 @@ | System;Uri;false;MakeRelative;(System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;MakeRelativeUri;(System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;ToString;();;Argument[Qualifier];ReturnValue;taint;manual | +| System;Uri;false;TryCreate;(System.String,System.UriCreationOptions,System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;TryCreate;(System.String,System.UriKind,System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;TryCreate;(System.Uri,System.String,System.Uri);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;TryCreate;(System.Uri,System.String,System.Uri);;Argument[1];ReturnValue;taint;generated | @@ -9040,6 +9280,7 @@ | System;Uri;false;Uri;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.String);;Argument[0];ReturnValue;taint;manual | | System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];ReturnValue;taint;manual | +| System;Uri;false;Uri;(System.String,System.UriCreationOptions);;Argument[0];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];ReturnValue;taint;manual | | System;Uri;false;Uri;(System.Uri,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.Uri,System.String);;Argument[1];Argument[Qualifier];taint;generated | From 63b06d50b0e06d807d6ce1a339b2e816640f7a0d Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 09:43:19 +0200 Subject: [PATCH 672/736] C#: Delete ServiceStack 5.11.0 and related projects. --- .../frameworks/ServiceStack/options | 4 +- .../3.1.0/Microsoft.NETCore.Platforms.csproj | 12 - .../5.11.0/ServiceStack.Client.cs | 1924 --- .../5.11.0/ServiceStack.Client.csproj | 14 - .../5.11.0/ServiceStack.Common.cs | 5620 -------- .../5.11.0/ServiceStack.Common.csproj | 14 - .../5.11.0/ServiceStack.Interfaces.cs | 5646 -------- .../5.11.0/ServiceStack.Interfaces.csproj | 12 - .../5.11.0/ServiceStack.OrmLite.SqlServer.cs | 351 - .../ServiceStack.OrmLite.SqlServer.csproj | 15 - .../5.11.0/ServiceStack.OrmLite.cs | 3420 ----- .../5.11.0/ServiceStack.OrmLite.csproj | 13 - .../5.11.0/ServiceStack.Redis.cs | 3016 ---- .../5.11.0/ServiceStack.Redis.csproj | 13 - .../5.11.0/ServiceStack.Text.cs | 3867 ------ .../5.11.0/ServiceStack.Text.csproj | 12 - .../stubs/ServiceStack/5.11.0/ServiceStack.cs | 11544 ---------------- .../ServiceStack/5.11.0/ServiceStack.csproj | 18 - .../4.7.0/System.Drawing.Common.cs | 3168 ----- .../4.7.0/System.Drawing.Common.csproj | 12 - 20 files changed, 2 insertions(+), 38693 deletions(-) delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.cs delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.csproj delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.cs delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.csproj delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.cs delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.csproj delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.cs delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.csproj delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.cs delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.csproj delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.cs delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.csproj delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.cs delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.csproj delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.cs delete mode 100644 csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.csproj delete mode 100644 csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.cs delete mode 100644 csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.csproj diff --git a/csharp/ql/test/library-tests/frameworks/ServiceStack/options b/csharp/ql/test/library-tests/frameworks/ServiceStack/options index 78437a6630f..9faf8e4d5dd 100644 --- a/csharp/ql/test/library-tests/frameworks/ServiceStack/options +++ b/csharp/ql/test/library-tests/frameworks/ServiceStack/options @@ -1,3 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/ServiceStack/5.11.0/ServiceStack.csproj -semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.csproj +semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/ServiceStack/6.2.0/ServiceStack.csproj +semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.csproj diff --git a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.cs b/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.cs deleted file mode 100644 index 2dc6766d47f..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.cs +++ /dev/null @@ -1,1924 +0,0 @@ -// This file contains auto-generated code. - -namespace ServiceStack -{ - // Generated from `ServiceStack.AdminCreateUser` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminCreateUser : ServiceStack.AdminUserBase, ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost - { - public AdminCreateUser() => throw null; - public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public System.Collections.Generic.List Roles { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AdminDeleteUser` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminDeleteUser : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IDelete - { - public AdminDeleteUser() => throw null; - public string Id { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AdminDeleteUserResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminDeleteUserResponse : ServiceStack.IHasResponseStatus - { - public AdminDeleteUserResponse() => throw null; - public string Id { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AdminGetUser` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminGetUser : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IGet - { - public AdminGetUser() => throw null; - public string Id { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AdminQueryUsers` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminQueryUsers : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IGet - { - public AdminQueryUsers() => throw null; - public string OrderBy { get => throw null; set => throw null; } - public string Query { get => throw null; set => throw null; } - public int? Skip { get => throw null; set => throw null; } - public int? Take { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AdminUpdateUser` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminUpdateUser : ServiceStack.AdminUserBase, ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPut - { - public System.Collections.Generic.List AddPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List AddRoles { get => throw null; set => throw null; } - public AdminUpdateUser() => throw null; - public string Id { get => throw null; set => throw null; } - public bool? LockUser { get => throw null; set => throw null; } - public System.Collections.Generic.List RemovePermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List RemoveRoles { get => throw null; set => throw null; } - public bool? UnlockUser { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AdminUserBase` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AdminUserBase : ServiceStack.IMeta - { - protected AdminUserBase() => throw null; - public string DisplayName { get => throw null; set => throw null; } - public string Email { get => throw null; set => throw null; } - public string FirstName { get => throw null; set => throw null; } - public string LastName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary UserAuthProperties { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AdminUserResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminUserResponse : ServiceStack.IHasResponseStatus - { - public AdminUserResponse() => throw null; - public string Id { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Result { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AdminUsersResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminUsersResponse : ServiceStack.IHasResponseStatus - { - public AdminUsersResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List> Results { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AesUtils` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AesUtils - { - public const int BlockSize = default; - public const int BlockSizeBytes = default; - public static void CreateCryptAuthKeysAndIv(out System.Byte[] cryptKey, out System.Byte[] authKey, out System.Byte[] iv) => throw null; - public static System.Byte[] CreateIv() => throw null; - public static System.Byte[] CreateKey() => throw null; - public static void CreateKeyAndIv(out System.Byte[] cryptKey, out System.Byte[] iv) => throw null; - public static System.Security.Cryptography.SymmetricAlgorithm CreateSymmetricAlgorithm() => throw null; - public static string Decrypt(string encryptedBase64, System.Byte[] cryptKey, System.Byte[] iv) => throw null; - public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, System.Byte[] cryptKey, System.Byte[] iv) => throw null; - public static string Encrypt(string text, System.Byte[] cryptKey, System.Byte[] iv) => throw null; - public static System.Byte[] Encrypt(System.Byte[] bytesToEncrypt, System.Byte[] cryptKey, System.Byte[] iv) => throw null; - public const int KeySize = default; - public const int KeySizeBytes = default; - } - - // Generated from `ServiceStack.AssignRoles` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AssignRoles : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost, ServiceStack.IMeta - { - public AssignRoles() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public System.Collections.Generic.List Roles { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AssignRolesResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AssignRolesResponse : ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } - public AssignRolesResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AsyncServiceClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AsyncServiceClient : ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken - { - public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } - public AsyncServiceClient() => throw null; - public string BaseUri { get => throw null; set => throw null; } - public string BearerToken { get => throw null; set => throw null; } - public static int BufferSize; - public string ContentType { 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 bool DisableAutoCompression { get => throw null; set => throw null; } - public static bool DisableTimer { get => throw null; set => throw null; } - public void Dispose() => throw null; - public bool EmulateHttpViaPost { get => throw null; set => throw null; } - public ServiceStack.ExceptionFilterDelegate ExceptionFilter { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary GetCookieValues() => throw null; - public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } - public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } - public System.Action OnAuthenticationRequired { get => throw null; set => throw null; } - public ServiceStack.ProgressDelegate OnDownloadProgress { get => throw null; set => throw null; } - public ServiceStack.ProgressDelegate OnUploadProgress { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public string RefreshTokenUri { get => throw null; set => throw null; } - public string RequestCompressionType { get => throw null; set => throw null; } - public System.Action RequestFilter { get => throw null; set => throw null; } - public System.Action ResponseFilter { get => throw null; set => throw null; } - public ServiceStack.ResultsFilterDelegate ResultsFilter { get => throw null; set => throw null; } - public ServiceStack.ResultsFilterResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } - public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string SessionId { get => throw null; set => throw null; } - public void SetCredentials(string userName, string password) => throw null; - public bool ShareCookiesWithBrowser { get => throw null; set => throw null; } - public bool StoreCookies { get => throw null; set => throw null; } - public ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; set => throw null; } - public ServiceStack.Web.StreamSerializerDelegate StreamSerializer { get => throw null; set => throw null; } - public System.TimeSpan? Timeout { get => throw null; set => throw null; } - public bool UseTokenCookie { get => throw null; set => throw null; } - public string UserAgent { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AsyncTimer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AsyncTimer : System.IDisposable, ServiceStack.ITimer - { - public AsyncTimer(System.Threading.Timer timer) => throw null; - public void Cancel() => throw null; - public void Dispose() => throw null; - public System.Threading.Timer Timer; - } - - // Generated from `ServiceStack.Authenticate` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Authenticate : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost, ServiceStack.IMeta - { - public string AccessToken { get => throw null; set => throw null; } - public string AccessTokenSecret { get => throw null; set => throw null; } - public Authenticate() => throw null; - public string ErrorView { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public bool? RememberMe { get => throw null; set => throw null; } - public string State { get => throw null; set => throw null; } - public bool? UseTokenCookie { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - public string cnonce { get => throw null; set => throw null; } - public string nc { get => throw null; set => throw null; } - public string nonce { get => throw null; set => throw null; } - public string oauth_token { get => throw null; set => throw null; } - public string oauth_verifier { get => throw null; set => throw null; } - public string provider { get => throw null; set => throw null; } - public string qop { get => throw null; set => throw null; } - public string response { get => throw null; set => throw null; } - public string scope { get => throw null; set => throw null; } - public string uri { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AuthenticateResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthenticateResponse : ServiceStack.IMeta, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken - { - public AuthenticateResponse() => throw null; - public string BearerToken { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public string ReferrerUrl { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Roles { get => throw null; set => throw null; } - public string SessionId { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AuthenticationException` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthenticationException : System.Exception, ServiceStack.IHasStatusCode - { - public AuthenticationException(string message, System.Exception innerException) => throw null; - public AuthenticationException(string message) => throw null; - public AuthenticationException() => throw null; - public int StatusCode { get => throw null; } - } - - // Generated from `ServiceStack.AuthenticationInfo` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthenticationInfo - { - public AuthenticationInfo(string authHeader) => throw null; - public override string ToString() => throw null; - public string cnonce { get => throw null; set => throw null; } - public string method { get => throw null; set => throw null; } - public int nc { get => throw null; set => throw null; } - public string nonce { get => throw null; set => throw null; } - public string opaque { get => throw null; set => throw null; } - public string qop { get => throw null; set => throw null; } - public string realm { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.CachedServiceClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CachedServiceClient : System.IDisposable, ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceGateway, ServiceStack.IServiceClientSync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClient, ServiceStack.IRestServiceClient, ServiceStack.IRestClientSync, ServiceStack.IRestClientAsync, ServiceStack.IRestClient, ServiceStack.IReplyClient, ServiceStack.IOneWayClient, ServiceStack.IHttpRestClientAsync, ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken, ServiceStack.ICachedServiceClient - { - public void AddHeader(string name, string value) => throw null; - public string BearerToken { get => throw null; set => throw null; } - public int CacheCount { get => throw null; } - public System.Int64 CacheHits { get => throw null; } - public CachedServiceClient(ServiceStack.ServiceClientBase client, System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; - public CachedServiceClient(ServiceStack.ServiceClientBase client) => throw null; - public System.Int64 CachesAdded { get => throw null; } - public System.Int64 CachesRemoved { get => throw null; } - public int CleanCachesWhenCountExceeds { get => throw null; set => throw null; } - public System.TimeSpan? ClearCachesOlderThan { get => throw null; set => throw null; } - public void ClearCookies() => throw null; - public System.TimeSpan? ClearExpiredCachesOlderThan { get => throw null; set => throw null; } - public void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse CustomMethod(string httpVerb, object requestDto) => throw null; - public TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Delete(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Delete(string relativeOrAbsoluteUrl) => throw null; - public TResponse Delete(object request) => throw null; - public TResponse Delete(ServiceStack.IReturn request) => throw null; - public System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Dispose() => throw null; - public System.Int64 ErrorFallbackHits { get => throw null; } - public void Get(ServiceStack.IReturnVoid request) => throw null; - public TResponse Get(string relativeOrAbsoluteUrl) => throw null; - public TResponse Get(object requestDto) => throw null; - public TResponse Get(ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.Dictionary GetCookieValues() => throw null; - public System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; - public System.Int64 NotModifiedHits { get => throw null; } - public object OnExceptionFilter(System.Net.WebException webEx, System.Net.WebResponse webRes, string requestUri, System.Type responseType) => throw null; - public void Patch(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Patch(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public TResponse Patch(object requestDto) => throw null; - public TResponse Patch(ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Post(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Post(string relativeOrAbsoluteUrl, object request) => throw null; - public TResponse Post(object requestDto) => throw null; - public TResponse Post(ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType) => throw null; - public TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; - public TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; - public void Publish(object requestDto) => throw null; - public void PublishAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; - public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token) => throw null; - public void Put(ServiceStack.IReturnVoid requestDto) => throw null; - public TResponse Put(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public TResponse Put(object requestDto) => throw null; - public TResponse Put(ServiceStack.IReturn requestDto) => throw null; - public System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public int RemoveCachesOlderThan(System.TimeSpan age) => throw null; - public int RemoveExpiredCachesOlderThan(System.TimeSpan age) => throw null; - public TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request) => throw null; - public TResponse Send(object request) => throw null; - public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; - public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; - public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token) => throw null; - public void SendOneWay(string relativeOrAbsoluteUri, object requestDto) => throw null; - public void SendOneWay(object requestDto) => throw null; - public string SessionId { get => throw null; set => throw null; } - public void SetCache(System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; - public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; - public void SetCredentials(string userName, string password) => throw null; - public int Version { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.CachedServiceClientExtensions` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CachedServiceClientExtensions - { - public static ServiceStack.IServiceClient WithCache(this ServiceStack.ServiceClientBase client, System.Collections.Concurrent.ConcurrentDictionary cache) => throw null; - public static ServiceStack.IServiceClient WithCache(this ServiceStack.ServiceClientBase client) => throw null; - } - - // Generated from `ServiceStack.CancelRequest` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CancelRequest : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost, ServiceStack.IMeta - { - public CancelRequest() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Tag { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.CancelRequestResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CancelRequestResponse : ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - public CancelRequestResponse() => throw null; - public System.TimeSpan Elapsed { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public string Tag { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.CheckCrudEvents` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CheckCrudEvents : ServiceStack.IReturn, ServiceStack.IReturn - { - public string AuthSecret { get => throw null; set => throw null; } - public CheckCrudEvents() => throw null; - public System.Collections.Generic.List Ids { get => throw null; set => throw null; } - public string Model { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.CheckCrudEventsResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CheckCrudEventsResponse : ServiceStack.IHasResponseStatus - { - public CheckCrudEventsResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ClientConfig` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ClientConfig - { - public static void ConfigureTls12() => throw null; - public static string DefaultEncodeDispositionFileName(string fileName) => throw null; - public static System.Func EncodeDispositionFileName { get => throw null; set => throw null; } - public static bool SkipEmptyArrays { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ClientFactory` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ClientFactory - { - public static ServiceStack.IOneWayClient Create(string endpointUrl) => throw null; - } - - // Generated from `ServiceStack.ContentFormat` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ContentFormat - { - public static System.Collections.Generic.Dictionary ContentTypeAliases; - public static string GetContentFormat(string contentType) => throw null; - public static string GetContentFormat(ServiceStack.Format format) => throw null; - public static ServiceStack.RequestAttributes GetEndpointAttributes(string contentType) => throw null; - public static string GetRealContentType(string contentType) => throw null; - public static ServiceStack.RequestAttributes GetRequestAttribute(string httpMethod) => throw null; - public static bool IsBinary(this string contentType) => throw null; - public static bool MatchesContentType(this string contentType, string matchesContentType) => throw null; - public static string NormalizeContentType(string contentType) => throw null; - public static string ToContentFormat(this string contentType) => throw null; - public static string ToContentType(this ServiceStack.Format formats) => throw null; - public static ServiceStack.Feature ToFeature(this string contentType) => throw null; - public const string Utf8Suffix = default; - } - - // Generated from `ServiceStack.ConvertSessionToToken` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConvertSessionToToken : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost, ServiceStack.IMeta - { - public ConvertSessionToToken() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public bool PreserveSession { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ConvertSessionToTokenResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConvertSessionToTokenResponse : ServiceStack.IMeta - { - public string AccessToken { get => throw null; set => throw null; } - public ConvertSessionToTokenResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.CrudEvent` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CrudEvent : ServiceStack.IMeta - { - public CrudEvent() => throw null; - public System.DateTime EventDate { get => throw null; set => throw null; } - public string EventType { get => throw null; set => throw null; } - public System.Int64 Id { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Model { get => throw null; set => throw null; } - public string ModelId { get => throw null; set => throw null; } - public int? RefId { get => throw null; set => throw null; } - public string RefIdStr { get => throw null; set => throw null; } - public string RemoteIp { get => throw null; set => throw null; } - public string RequestBody { get => throw null; set => throw null; } - public string RequestType { get => throw null; set => throw null; } - public System.Int64? RowsUpdated { get => throw null; set => throw null; } - public string Urn { get => throw null; set => throw null; } - public string UserAuthId { get => throw null; set => throw null; } - public string UserAuthName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.CsvServiceClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvServiceClient : ServiceStack.ServiceClientBase - { - public override string ContentType { get => throw null; } - public CsvServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; - public CsvServiceClient(string baseUri) => throw null; - public CsvServiceClient() => throw null; - public override T DeserializeFromStream(System.IO.Stream stream) => throw null; - public override string Format { get => throw null; } - public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; - public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } - } - - // Generated from `ServiceStack.DynamicRequest` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicRequest - { - public DynamicRequest() => throw null; - public System.Collections.Generic.Dictionary Params { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.EncryptedMessage` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EncryptedMessage : ServiceStack.IReturn, ServiceStack.IReturn - { - public string EncryptedBody { get => throw null; set => throw null; } - public EncryptedMessage() => throw null; - public string EncryptedSymmetricKey { get => throw null; set => throw null; } - public string KeyId { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.EncryptedMessageResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EncryptedMessageResponse - { - public string EncryptedBody { get => throw null; set => throw null; } - public EncryptedMessageResponse() => throw null; - } - - // Generated from `ServiceStack.EncryptedServiceClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EncryptedServiceClient : ServiceStack.IServiceGateway, ServiceStack.IReplyClient, ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken, ServiceStack.IEncryptedClient - { - public string BearerToken { get => throw null; set => throw null; } - public ServiceStack.IJsonServiceClient Client { get => throw null; set => throw null; } - public ServiceStack.EncryptedMessage CreateEncryptedMessage(object request, string operationName, System.Byte[] cryptKey, System.Byte[] authKey, System.Byte[] iv, string verb = default(string)) => throw null; - public ServiceStack.WebServiceException DecryptedException(ServiceStack.WebServiceException ex, System.Byte[] cryptKey, System.Byte[] authKey) => throw null; - public EncryptedServiceClient(ServiceStack.IJsonServiceClient client, string publicKeyXml) => throw null; - public EncryptedServiceClient(ServiceStack.IJsonServiceClient client, System.Security.Cryptography.RSAParameters publicKey) => throw null; - public string KeyId { get => throw null; set => throw null; } - public System.Security.Cryptography.RSAParameters PublicKey { get => throw null; set => throw null; } - public void Publish(object request) => throw null; - public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; - public TResponse Send(string httpMethod, object request) => throw null; - public TResponse Send(string httpMethod, ServiceStack.IReturn request) => throw null; - public TResponse Send(object request) => throw null; - public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; - public string ServerPublicKeyXml { get => throw null; set => throw null; } - public string SessionId { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ExceptionFilterDelegate` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ExceptionFilterDelegate(System.Net.WebException webEx, System.Net.WebResponse webResponse, string requestUri, System.Type responseType); - - // Generated from `ServiceStack.FileContent` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FileContent - { - public System.Byte[] Body { get => throw null; set => throw null; } - public FileContent() => throw null; - public int Length { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetAccessToken` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetAccessToken : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost, ServiceStack.IMeta - { - public GetAccessToken() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public bool? UseTokenCookie { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetAccessTokenResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetAccessTokenResponse : ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - public string AccessToken { get => throw null; set => throw null; } - public GetAccessTokenResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetApiKeys` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetApiKeys : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IMeta, ServiceStack.IGet - { - public string Environment { get => throw null; set => throw null; } - public GetApiKeys() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetApiKeysResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetApiKeysResponse : ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - public GetApiKeysResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetCrudEvents` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetCrudEvents : ServiceStack.QueryDb - { - public string AuthSecret { get => throw null; set => throw null; } - public GetCrudEvents() => throw null; - public string Model { get => throw null; set => throw null; } - public string ModelId { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetEventSubscribers` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetEventSubscribers : ServiceStack.IVerb, ServiceStack.IReturn>>, ServiceStack.IReturn, ServiceStack.IGet - { - public string[] Channels { get => throw null; set => throw null; } - public GetEventSubscribers() => throw null; - } - - // Generated from `ServiceStack.GetFile` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetFile : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IGet - { - public GetFile() => throw null; - public string Path { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetNavItems` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetNavItems : ServiceStack.IReturn, ServiceStack.IReturn - { - public GetNavItems() => throw null; - public string Name { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetNavItemsResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetNavItemsResponse : ServiceStack.IMeta - { - public string BaseUrl { get => throw null; set => throw null; } - public GetNavItemsResponse() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary> NavItemsMap { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetPublicKey` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetPublicKey : ServiceStack.IReturn, ServiceStack.IReturn - { - public GetPublicKey() => throw null; - } - - // Generated from `ServiceStack.GetValidationRules` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetValidationRules : ServiceStack.IReturn, ServiceStack.IReturn - { - public string AuthSecret { get => throw null; set => throw null; } - public GetValidationRules() => throw null; - public string Type { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GetValidationRulesResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetValidationRulesResponse - { - public GetValidationRulesResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.HashUtils` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HashUtils - { - public static System.Security.Cryptography.HashAlgorithm GetHashAlgorithm(string hashAlgorithm) => throw null; - } - - // Generated from `ServiceStack.HmacUtils` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HmacUtils - { - public static System.Byte[] Authenticate(System.Byte[] encryptedBytes, System.Byte[] authKey, System.Byte[] iv) => throw null; - public static System.Security.Cryptography.HMAC CreateHashAlgorithm(System.Byte[] authKey) => throw null; - public static System.Byte[] DecryptAuthenticated(System.Byte[] authEncryptedBytes, System.Byte[] cryptKey) => throw null; - public const int KeySize = default; - public const int KeySizeBytes = default; - public static bool Verify(System.Byte[] authEncryptedBytes, System.Byte[] authKey) => throw null; - } - - // Generated from `ServiceStack.HttpCacheEntry` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpCacheEntry - { - public System.TimeSpan? Age { get => throw null; set => throw null; } - public bool CanUseCacheOnError() => throw null; - public System.Int64? ContentLength { get => throw null; set => throw null; } - public System.DateTime Created { get => throw null; set => throw null; } - public string ETag { get => throw null; set => throw null; } - public System.DateTime Expires { get => throw null; set => throw null; } - public bool HasExpired() => throw null; - public HttpCacheEntry(object response) => throw null; - public System.DateTime? LastModified { get => throw null; set => throw null; } - public System.TimeSpan MaxAge { 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 object Response { get => throw null; set => throw null; } - public void SetMaxAge(System.TimeSpan maxAge) => throw null; - public bool ShouldRevalidate() => throw null; - } - - // Generated from `ServiceStack.HttpExt` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpExt - { - public static string GetDispositionFileName(string fileName) => throw null; - public static bool HasNonAscii(string s) => throw null; - } - - // Generated from `ServiceStack.ICachedServiceClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICachedServiceClient : System.IDisposable, ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceGateway, ServiceStack.IServiceClientSync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClient, ServiceStack.IRestServiceClient, ServiceStack.IRestClientSync, ServiceStack.IRestClientAsync, ServiceStack.IRestClient, ServiceStack.IReplyClient, ServiceStack.IOneWayClient, ServiceStack.IHttpRestClientAsync, ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken - { - int CacheCount { get; } - System.Int64 CacheHits { get; } - System.Int64 CachesAdded { get; } - System.Int64 CachesRemoved { get; } - System.Int64 ErrorFallbackHits { get; } - System.Int64 NotModifiedHits { get; } - int RemoveCachesOlderThan(System.TimeSpan age); - int RemoveExpiredCachesOlderThan(System.TimeSpan age); - void SetCache(System.Collections.Concurrent.ConcurrentDictionary cache); - } - - // Generated from `ServiceStack.ICachedServiceClientExtensions` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ICachedServiceClientExtensions - { - public static void ClearCache(this ServiceStack.ICachedServiceClient client) => throw null; - public static System.Collections.Generic.Dictionary GetStats(this ServiceStack.ICachedServiceClient client) => throw null; - } - - // Generated from `ServiceStack.IHasCookieContainer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasCookieContainer - { - System.Net.CookieContainer CookieContainer { get; } - } - - // Generated from `ServiceStack.IServiceClientMeta` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceClientMeta - { - bool AlwaysSendBasicAuthHeader { get; } - string AsyncOneWayBaseUri { get; } - string BaseUri { get; set; } - string BearerToken { get; set; } - string Format { get; } - string Password { get; } - string RefreshToken { get; set; } - string RefreshTokenUri { get; set; } - string ResolveTypedUrl(string httpMethod, object requestDto); - string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl); - string SessionId { get; } - string SyncReplyBaseUri { get; } - string UserName { get; } - int Version { get; } - } - - // Generated from `ServiceStack.ITimer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITimer : System.IDisposable - { - void Cancel(); - } - - // Generated from `ServiceStack.JsonServiceClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonServiceClient : ServiceStack.ServiceClientBase, System.IDisposable, ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceGateway, ServiceStack.IServiceClientSync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClient, ServiceStack.IRestServiceClient, ServiceStack.IRestClientSync, ServiceStack.IRestClientAsync, ServiceStack.IRestClient, ServiceStack.IReplyClient, ServiceStack.IOneWayClient, ServiceStack.IJsonServiceClient, ServiceStack.IHttpRestClientAsync, ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken - { - public override string ContentType { get => throw null; } - public override T DeserializeFromStream(System.IO.Stream stream) => throw null; - public override string Format { get => throw null; } - public JsonServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; - public JsonServiceClient(string baseUri) => throw null; - public JsonServiceClient() => throw null; - public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; - public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } - } - - // Generated from `ServiceStack.JsvServiceClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsvServiceClient : ServiceStack.ServiceClientBase - { - public override string ContentType { get => throw null; } - public override T DeserializeFromStream(System.IO.Stream stream) => throw null; - public override string Format { get => throw null; } - public JsvServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; - public JsvServiceClient(string baseUri) => throw null; - public JsvServiceClient() => throw null; - public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; - public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } - } - - // Generated from `ServiceStack.MessageExtensions` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MessageExtensions - { - public static ServiceStack.Messaging.IMessageProducer CreateMessageProducer(this ServiceStack.Messaging.IMessageService mqServer) => throw null; - public static ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient(this ServiceStack.Messaging.IMessageService mqServer) => throw null; - public static System.Byte[] ToBytes(this ServiceStack.Messaging.IMessage message) => throw null; - public static System.Byte[] ToBytes(this ServiceStack.Messaging.IMessage message) => throw null; - public static string ToDlqQueueName(this ServiceStack.Messaging.IMessage message) => throw null; - public static string ToInQueueName(this ServiceStack.Messaging.IMessage message) => throw null; - public static string ToInQueueName(this ServiceStack.Messaging.IMessage message) => throw null; - public static ServiceStack.Messaging.Message ToMessage(this System.Byte[] bytes) => throw null; - public static ServiceStack.Messaging.IMessage ToMessage(this System.Byte[] bytes, System.Type ofType) => throw null; - public static string ToString(System.Byte[] bytes) => throw null; - } - - // Generated from `ServiceStack.MetadataApp` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataApp - { - public MetadataApp() => throw null; - } - - // Generated from `ServiceStack.ModifyValidationRules` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ModifyValidationRules : ServiceStack.IReturnVoid, ServiceStack.IReturn - { - public string AuthSecret { get => throw null; set => throw null; } - public bool? ClearCache { get => throw null; set => throw null; } - public int[] DeleteRuleIds { get => throw null; set => throw null; } - public ModifyValidationRules() => throw null; - public System.Collections.Generic.List SaveRules { get => throw null; set => throw null; } - public int[] SuspendRuleIds { get => throw null; set => throw null; } - public int[] UnsuspendRuleIds { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.NameValueCollectionWrapperExtensions` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class NameValueCollectionWrapperExtensions - { - public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Specialized.NameValueCollection nameValues) => throw null; - public static string ToFormUrlEncoded(this System.Collections.Specialized.NameValueCollection queryParams) => throw null; - public static System.Collections.Specialized.NameValueCollection ToNameValueCollection(this System.Collections.Generic.Dictionary map) => throw null; - } - - // Generated from `ServiceStack.NetStandardPclExportClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetStandardPclExportClient : ServiceStack.PclExportClient - { - public static ServiceStack.PclExportClient Configure() => throw null; - public override string GetHeader(System.Net.WebHeaderCollection headers, string name, System.Func valuePredicate) => throw null; - public NetStandardPclExportClient() => throw null; - public static ServiceStack.NetStandardPclExportClient Provider; - public override void SetIfModifiedSince(System.Net.HttpWebRequest webReq, System.DateTime lastModified) => throw null; - } - - // Generated from `ServiceStack.NewInstanceResolver` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NewInstanceResolver : ServiceStack.Configuration.IResolver - { - public NewInstanceResolver() => throw null; - public T TryResolve() => throw null; - } - - // Generated from `ServiceStack.PclExportClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PclExportClient - { - public virtual void AddHeader(System.Net.WebRequest webReq, System.Collections.Specialized.NameValueCollection headers) => throw null; - public virtual void CloseReadStream(System.IO.Stream stream) => throw null; - public virtual void CloseWriteStream(System.IO.Stream stream) => throw null; - public static void Configure(ServiceStack.PclExportClient instance) => throw null; - public static bool ConfigureProvider(string typeName) => throw null; - public virtual System.Exception CreateTimeoutException(System.Exception ex, string errorMsg) => throw null; - public virtual ServiceStack.ITimer CreateTimer(System.Threading.TimerCallback cb, System.TimeSpan timeOut, object state) => throw null; - public static System.Threading.Tasks.Task EmptyTask; - public virtual string GetHeader(System.Net.WebHeaderCollection headers, string name, System.Func valuePredicate) => throw null; - public virtual string HtmlAttributeEncode(string html) => throw null; - public virtual string HtmlDecode(string html) => throw null; - public virtual string HtmlEncode(string html) => throw null; - public static ServiceStack.PclExportClient Instance; - public virtual bool IsWebException(System.Net.WebException webEx) => throw null; - public System.Collections.Specialized.NameValueCollection NewNameValueCollection() => throw null; - public virtual System.Collections.Specialized.NameValueCollection ParseQueryString(string query) => throw null; - public PclExportClient() => throw null; - public virtual void RunOnUiThread(System.Action fn) => throw null; - public virtual void SetCookieContainer(System.Net.HttpWebRequest webRequest, ServiceStack.ServiceClientBase client) => throw null; - public virtual void SetCookieContainer(System.Net.HttpWebRequest webRequest, ServiceStack.AsyncServiceClient client) => throw null; - public virtual void SetIfModifiedSince(System.Net.HttpWebRequest webReq, System.DateTime lastModified) => throw null; - public virtual void SynchronizeCookies(ServiceStack.AsyncServiceClient client) => throw null; - public System.Threading.SynchronizationContext UiContext; - public virtual string UrlDecode(string url) => throw null; - public virtual string UrlEncode(string url) => throw null; - public virtual System.Threading.Tasks.Task WaitAsync(int waitForMs) => throw null; - } - - // Generated from `ServiceStack.PlatformRsaUtils` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class PlatformRsaUtils - { - public static System.Byte[] Decrypt(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes) => throw null; - public static System.Byte[] Encrypt(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes) => throw null; - public static string ExportToXml(System.Security.Cryptography.RSAParameters csp, bool includePrivateParameters) => throw null; - public static System.Security.Cryptography.RSAParameters ExtractFromXml(string xml) => throw null; - public static void FromXml(this System.Security.Cryptography.RSA rsa, string xml) => throw null; - public static System.Byte[] SignData(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes, string hashAlgorithm) => throw null; - public static System.Security.Cryptography.HashAlgorithmName ToHashAlgorithmName(string hashAlgorithm) => throw null; - public static string ToXml(this System.Security.Cryptography.RSA rsa, bool includePrivateParameters) => throw null; - public static bool VerifyData(this System.Security.Cryptography.RSA rsa, System.Byte[] bytes, System.Byte[] signature, string hashAlgorithm) => throw null; - } - - // Generated from `ServiceStack.ProgressDelegate` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void ProgressDelegate(System.Int64 done, System.Int64 total); - - // Generated from `ServiceStack.RefreshTokenException` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RefreshTokenException : ServiceStack.WebServiceException - { - public RefreshTokenException(string message, System.Exception innerException) => throw null; - public RefreshTokenException(string message) => throw null; - public RefreshTokenException(ServiceStack.WebServiceException webEx) => throw null; - } - - // Generated from `ServiceStack.RegenerateApiKeys` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RegenerateApiKeys : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost, ServiceStack.IMeta - { - public string Environment { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public RegenerateApiKeys() => throw null; - } - - // Generated from `ServiceStack.RegenerateApiKeysResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RegenerateApiKeysResponse : ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public RegenerateApiKeysResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Register` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Register : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost, ServiceStack.IMeta - { - public bool? AutoLogin { get => throw null; set => throw null; } - public string ConfirmPassword { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public string Email { get => throw null; set => throw null; } - public string ErrorView { get => throw null; set => throw null; } - public string FirstName { get => throw null; set => throw null; } - public string LastName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public Register() => throw null; - public string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.RegisterResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RegisterResponse : ServiceStack.IMeta - { - public string BearerToken { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string ReferrerUrl { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public RegisterResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public string SessionId { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ResponseStatusUtils` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ResponseStatusUtils - { - public static ServiceStack.ResponseStatus CreateResponseStatus(string errorCode, string errorMessage, System.Collections.Generic.IEnumerable validationErrors = default(System.Collections.Generic.IEnumerable)) => throw null; - } - - // Generated from `ServiceStack.RestRoute` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RestRoute - { - public ServiceStack.RouteResolutionResult Apply(object request, string httpMethod) => throw null; - public const string EmptyArray = default; - public string ErrorMsg { get => throw null; set => throw null; } - public static System.Func FormatQueryParameterValue; - public string FormatQueryParameters(object request) => throw null; - public static System.Func FormatVariable; - public string[] HttpMethods { get => throw null; } - public bool IsValid { get => throw null; } - public string Path { get => throw null; } - public int Priority { get => throw null; } - public System.Collections.Generic.List QueryStringVariables { get => throw null; } - public RestRoute(System.Type type, string path, string verbs, int priority) => throw null; - public System.Type Type { get => throw null; set => throw null; } - public System.Collections.Generic.ICollection Variables { get => throw null; } - } - - // Generated from `ServiceStack.ResultsFilterDelegate` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ResultsFilterDelegate(System.Type responseType, string httpMethod, string requestUri, object request); - - // Generated from `ServiceStack.ResultsFilterResponseDelegate` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void ResultsFilterResponseDelegate(System.Net.WebResponse webResponse, object response, string httpMethod, string requestUri, object request); - - // Generated from `ServiceStack.RouteResolutionResult` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RouteResolutionResult - { - public static ServiceStack.RouteResolutionResult Error(ServiceStack.RestRoute route, string errorMsg) => throw null; - public string FailReason { get => throw null; set => throw null; } - public bool Matches { get => throw null; } - public ServiceStack.RestRoute Route { get => throw null; set => throw null; } - public RouteResolutionResult() => throw null; - public static ServiceStack.RouteResolutionResult Success(ServiceStack.RestRoute route, string uri) => throw null; - public string Uri { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.RsaKeyLengths` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum RsaKeyLengths - { - Bit1024, - Bit2048, - Bit4096, - } - - // Generated from `ServiceStack.RsaKeyPair` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RsaKeyPair - { - public string PrivateKey { get => throw null; set => throw null; } - public string PublicKey { get => throw null; set => throw null; } - public RsaKeyPair() => throw null; - } - - // Generated from `ServiceStack.RsaUtils` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RsaUtils - { - public static System.Byte[] Authenticate(System.Byte[] dataToSign, System.Security.Cryptography.RSAParameters privateKey, string hashAlgorithm = default(string), ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static System.Security.Cryptography.RSAParameters CreatePrivateKeyParams(ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static ServiceStack.RsaKeyPair CreatePublicAndPrivateKeyPair(ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static string Decrypt(this string text) => throw null; - public static string Decrypt(string encryptedText, string privateKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static string Decrypt(string encryptedText, System.Security.Cryptography.RSAParameters privateKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, string privateKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static System.Byte[] Decrypt(System.Byte[] encryptedBytes, System.Security.Cryptography.RSAParameters privateKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static ServiceStack.RsaKeyPair DefaultKeyPair; - public static bool DoOAEPPadding; - public static string Encrypt(this string text) => throw null; - public static string Encrypt(string text, string publicKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static string Encrypt(string text, System.Security.Cryptography.RSAParameters publicKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static System.Byte[] Encrypt(System.Byte[] bytes, string publicKeyXml, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static System.Byte[] Encrypt(System.Byte[] bytes, System.Security.Cryptography.RSAParameters publicKey, ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - public static string FromPrivateRSAParameters(this System.Security.Cryptography.RSAParameters privateKey) => throw null; - public static string FromPublicRSAParameters(this System.Security.Cryptography.RSAParameters publicKey) => throw null; - public static ServiceStack.RsaKeyLengths KeyLength; - public static string ToPrivateKeyXml(this System.Security.Cryptography.RSAParameters privateKey) => throw null; - public static System.Security.Cryptography.RSAParameters ToPrivateRSAParameters(this string privateKeyXml) => throw null; - public static string ToPublicKeyXml(this System.Security.Cryptography.RSAParameters publicKey) => throw null; - public static System.Security.Cryptography.RSAParameters ToPublicRSAParameters(this string publicKeyXml) => throw null; - public static System.Security.Cryptography.RSAParameters ToPublicRsaParameters(this System.Security.Cryptography.RSAParameters privateKey) => throw null; - public static bool Verify(System.Byte[] dataToVerify, System.Byte[] signature, System.Security.Cryptography.RSAParameters publicKey, string hashAlgorithm = default(string), ServiceStack.RsaKeyLengths rsaKeyLength = default(ServiceStack.RsaKeyLengths)) => throw null; - } - - // Generated from `ServiceStack.ServerEventCallback` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void ServerEventCallback(ServiceStack.ServerEventsClient source, ServiceStack.ServerEventMessage args); - - // Generated from `ServiceStack.ServerEventClientExtensions` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServerEventClientExtensions - { - public static ServiceStack.AuthenticateResponse Authenticate(this ServiceStack.ServerEventsClient client, ServiceStack.Authenticate request) => throw null; - public static System.Threading.Tasks.Task AuthenticateAsync(this ServiceStack.ServerEventsClient client, ServiceStack.Authenticate request) => throw null; - public static System.Collections.Generic.List GetChannelSubscribers(this ServiceStack.ServerEventsClient client) => throw null; - public static System.Threading.Tasks.Task> GetChannelSubscribersAsync(this ServiceStack.ServerEventsClient client) => throw null; - public static T Populate(this T dst, ServiceStack.ServerEventMessage src, System.Collections.Generic.Dictionary msg) where T : ServiceStack.ServerEventMessage => throw null; - public static ServiceStack.ServerEventsClient RegisterHandlers(this ServiceStack.ServerEventsClient client, System.Collections.Generic.Dictionary handlers) => throw null; - public static void SubscribeToChannels(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; - public static System.Threading.Tasks.Task SubscribeToChannelsAsync(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; - public static void UnsubscribeFromChannels(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; - public static System.Threading.Tasks.Task UnsubscribeFromChannelsAsync(this ServiceStack.ServerEventsClient client, params string[] channels) => throw null; - public static void UpdateSubscriber(this ServiceStack.ServerEventsClient client, ServiceStack.UpdateEventSubscriber request) => throw null; - public static System.Threading.Tasks.Task UpdateSubscriberAsync(this ServiceStack.ServerEventsClient client, ServiceStack.UpdateEventSubscriber request) => throw null; - } - - // Generated from `ServiceStack.ServerEventCommand` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventCommand : ServiceStack.ServerEventMessage - { - public string[] Channels { get => throw null; set => throw null; } - public System.DateTime CreatedAt { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public bool IsAuthenticated { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public ServerEventCommand() => throw null; - public string UserId { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ServerEventConnect` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventConnect : ServiceStack.ServerEventCommand - { - public System.Int64 HeartbeatIntervalMs { get => throw null; set => throw null; } - public string HeartbeatUrl { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Int64 IdleTimeoutMs { get => throw null; set => throw null; } - public ServerEventConnect() => throw null; - public string UnRegisterUrl { get => throw null; set => throw null; } - public string UpdateSubscriberUrl { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ServerEventHeartbeat` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventHeartbeat : ServiceStack.ServerEventCommand - { - public ServerEventHeartbeat() => throw null; - } - - // Generated from `ServiceStack.ServerEventJoin` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventJoin : ServiceStack.ServerEventCommand - { - public ServerEventJoin() => throw null; - } - - // Generated from `ServiceStack.ServerEventLeave` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventLeave : ServiceStack.ServerEventCommand - { - public ServerEventLeave() => throw null; - } - - // Generated from `ServiceStack.ServerEventMessage` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventMessage : ServiceStack.IMeta - { - public string Channel { get => throw null; set => throw null; } - public string CssSelector { get => throw null; set => throw null; } - public string Data { get => throw null; set => throw null; } - public System.Int64 EventId { get => throw null; set => throw null; } - public string Json { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Op { get => throw null; set => throw null; } - public string Selector { get => throw null; set => throw null; } - public ServerEventMessage() => throw null; - public string Target { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ServerEventReceiver` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventReceiver : ServiceStack.IReceiver - { - public ServiceStack.ServerEventsClient Client { get => throw null; set => throw null; } - public static ServiceStack.Logging.ILog Log; - public virtual void NoSuchMethod(string selector, object message) => throw null; - public ServiceStack.ServerEventMessage Request { get => throw null; set => throw null; } - public ServerEventReceiver() => throw null; - } - - // Generated from `ServiceStack.ServerEventUpdate` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventUpdate : ServiceStack.ServerEventCommand - { - public ServerEventUpdate() => throw null; - } - - // Generated from `ServiceStack.ServerEventUser` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventUser : ServiceStack.IMeta - { - public string[] Channels { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public ServerEventUser() => throw null; - public string UserId { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ServerEventsClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventsClient : System.IDisposable - { - public ServiceStack.ServerEventsClient AddListener(string eventName, System.Action handler) => throw null; - public System.Action AllRequestFilters { get => throw null; set => throw null; } - public string BaseUri { get => throw null; set => throw null; } - public static int BufferSize; - public string[] Channels { get => throw null; set => throw null; } - public System.Threading.Tasks.Task Connect() => throw null; - public string ConnectionDisplayName { get => throw null; } - public ServiceStack.ServerEventConnect ConnectionInfo { get => throw null; set => throw null; } - public void Dispose() => throw null; - public string EventStreamPath { get => throw null; set => throw null; } - public System.Action EventStreamRequestFilter { get => throw null; set => throw null; } - public string EventStreamUri { get => throw null; set => throw null; } - public virtual string GetStatsDescription() => throw null; - public System.Collections.Concurrent.ConcurrentDictionary Handlers { get => throw null; } - public bool HasListener(string eventName, System.Action handler) => throw null; - public bool HasListeners(string eventName) => throw null; - protected void Heartbeat(object state) => throw null; - public System.Action HeartbeatRequestFilter { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task InternalStop() => throw null; - public bool IsStopped { get => throw null; } - public System.DateTime LastPulseAt { get => throw null; set => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary NamedReceivers { get => throw null; } - public System.Action OnCommand; - protected void OnCommandReceived(ServiceStack.ServerEventCommand e) => throw null; - public System.Action OnConnect; - protected void OnConnectReceived() => throw null; - public System.Action OnException; - protected void OnExceptionReceived(System.Exception ex) => throw null; - public System.Action OnHeartbeat; - protected void OnHeartbeatReceived(ServiceStack.ServerEventHeartbeat e) => throw null; - public System.Action OnJoin; - protected void OnJoinReceived(ServiceStack.ServerEventJoin e) => throw null; - public System.Action OnLeave; - protected void OnLeaveReceived(ServiceStack.ServerEventLeave e) => throw null; - public System.Action OnMessage; - protected void OnMessageReceived(ServiceStack.ServerEventMessage e) => throw null; - public System.Action OnReconnect; - public System.Action OnUpdate; - protected void OnUpdateReceived(ServiceStack.ServerEventUpdate e) => throw null; - public void ProcessLine(string line) => throw null; - public void ProcessResponse(System.IO.Stream stream) => throw null; - public void RaiseEvent(string eventName, ServiceStack.ServerEventMessage message) => throw null; - public System.Collections.Generic.List ReceiverTypes { get => throw null; } - public ServiceStack.ServerEventsClient RegisterNamedReceiver(string receiverName) where T : ServiceStack.IReceiver => throw null; - public ServiceStack.ServerEventsClient RegisterReceiver() where T : ServiceStack.IReceiver => throw null; - public void RemoveAllListeners() => throw null; - public void RemoveAllRegistrations() => throw null; - public ServiceStack.ServerEventsClient RemoveListener(string eventName, System.Action handler) => throw null; - public ServiceStack.ServerEventsClient RemoveListeners(string eventName) => throw null; - public System.Func ResolveStreamUrl { get => throw null; set => throw null; } - public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } - public void Restart() => throw null; - public ServerEventsClient(string baseUri, params string[] channels) => throw null; - public ServiceStack.IServiceClient ServiceClient { get => throw null; set => throw null; } - public ServiceStack.ServerEventsClient Start() => throw null; - protected void StartNewHeartbeat() => throw null; - public string Status { get => throw null; } - public virtual System.Threading.Tasks.Task Stop() => throw null; - public bool StrictMode { get => throw null; set => throw null; } - public string SubscriptionId { get => throw null; } - public int TimesStarted { get => throw null; } - public static ServiceStack.ServerEventMessage ToTypedMessage(ServiceStack.ServerEventMessage e) => throw null; - public System.Action UnRegisterRequestFilter { get => throw null; set => throw null; } - public void Update(string[] subscribe = default(string[]), string[] unsubscribe = default(string[])) => throw null; - public System.Threading.Tasks.Task WaitForNextCommand() => throw null; - public System.Threading.Tasks.Task WaitForNextHeartbeat() => throw null; - public System.Threading.Tasks.Task WaitForNextMessage() => throw null; - } - - // Generated from `ServiceStack.ServiceClientBase` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ServiceClientBase : System.IDisposable, ServiceStack.Messaging.IMessageProducer, ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceGateway, ServiceStack.IServiceClientSync, ServiceStack.IServiceClientMeta, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClient, ServiceStack.IRestServiceClient, ServiceStack.IRestClientSync, ServiceStack.IRestClientAsync, ServiceStack.IRestClient, ServiceStack.IReplyClient, ServiceStack.IOneWayClient, ServiceStack.IHttpRestClientAsync, ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasCookieContainer, ServiceStack.IHasBearerToken - { - public virtual string Accept { get => throw null; } - public void AddHeader(string name, string value) => throw null; - public bool AllowAutoRedirect { get => throw null; set => throw null; } - public bool AlwaysSendBasicAuthHeader { get => throw null; set => throw null; } - public string AsyncOneWayBaseUri { get => throw null; set => throw null; } - public string BaseUri { get => throw null; set => throw null; } - public string BearerToken { get => throw null; set => throw null; } - public void ClearCookies() => throw null; - public abstract string ContentType { get; } - public System.Net.CookieContainer CookieContainer { get => throw null; set => throw null; } - public System.Net.ICredentials Credentials { get => throw null; set => throw null; } - public virtual void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto) => throw null; - public virtual TResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object requestDto = default(object)) => throw null; - public virtual TResponse CustomMethod(string httpVerb, object requestDto) => throw null; - public virtual TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto) => throw null; - public virtual System.Net.HttpWebResponse CustomMethod(string httpVerb, string relativeOrAbsoluteUrl, object requestDto) => throw null; - public virtual System.Net.HttpWebResponse CustomMethod(string httpVerb, object requestDto) => throw null; - public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public const string DefaultHttpMethod = default; - public static string DefaultUserAgent; - public virtual void Delete(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual TResponse Delete(string relativeOrAbsoluteUrl) => throw null; - public virtual TResponse Delete(object requestDto) => throw null; - public virtual TResponse Delete(ServiceStack.IReturn requestDto) => throw null; - public virtual System.Net.HttpWebResponse Delete(string relativeOrAbsoluteUrl) => throw null; - public virtual System.Net.HttpWebResponse Delete(object requestDto) => throw null; - public virtual System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected T Deserialize(string text) => throw null; - public abstract T DeserializeFromStream(System.IO.Stream stream); - public bool DisableAutoCompression { get => throw null; set => throw null; } - public void Dispose() => throw null; - public System.Byte[] DownloadBytes(string httpMethod, string requestUri, object request) => throw null; - public System.Threading.Tasks.Task DownloadBytesAsync(string httpMethod, string requestUri, object request) => throw null; - public bool EmulateHttpViaPost { get => throw null; set => throw null; } - public ServiceStack.ExceptionFilterDelegate ExceptionFilter { get => throw null; set => throw null; } - public abstract string Format { get; } - public virtual void Get(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual TResponse Get(string relativeOrAbsoluteUrl) => throw null; - public virtual TResponse Get(object requestDto) => throw null; - public virtual TResponse Get(ServiceStack.IReturn requestDto) => throw null; - public virtual System.Net.HttpWebResponse Get(string relativeOrAbsoluteUrl) => throw null; - public virtual System.Net.HttpWebResponse Get(object requestDto) => throw null; - public virtual System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.Dictionary GetCookieValues() => throw null; - public static string GetExplicitMethod(object request) => throw null; - public virtual System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto) => throw null; - protected TResponse GetResponse(System.Net.WebResponse webResponse) => throw null; - public static System.Action GlobalRequestFilter { get => throw null; set => throw null; } - public static System.Action GlobalResponseFilter { get => throw null; set => throw null; } - protected virtual bool HandleResponseException(System.Exception ex, object request, string requestUri, System.Func createWebRequest, System.Func getResponse, out TResponse response) => throw null; - public virtual System.Net.HttpWebResponse Head(string relativeOrAbsoluteUrl) => throw null; - public virtual System.Net.HttpWebResponse Head(object requestDto) => throw null; - public virtual System.Net.HttpWebResponse Head(ServiceStack.IReturn requestDto) => throw null; - public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } - public string HttpMethod { get => throw null; set => throw null; } - public System.Action OnAuthenticationRequired { get => throw null; set => throw null; } - public ServiceStack.ProgressDelegate OnDownloadProgress { get => throw null; set => throw null; } - public ServiceStack.ProgressDelegate OnUploadProgress { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public virtual void Patch(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual TResponse Patch(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public virtual TResponse Patch(object requestDto) => throw null; - public virtual TResponse Patch(ServiceStack.IReturn requestDto) => throw null; - public virtual System.Net.HttpWebResponse Patch(object requestDto) => throw null; - public virtual System.Threading.Tasks.Task PatchAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void Post(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual TResponse Post(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public virtual TResponse Post(object requestDto) => throw null; - public virtual TResponse Post(ServiceStack.IReturn requestDto) => throw null; - public virtual System.Net.HttpWebResponse Post(object requestDto) => throw null; - public virtual System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType) => throw null; - public virtual TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public virtual TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)) => throw null; - public virtual TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files) => throw null; - public virtual TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files) => throw null; - protected System.Net.WebRequest PrepareWebRequest(string httpMethod, string requestUri, object request, System.Action sendRequestAction) => throw null; - public System.Net.IWebProxy Proxy { get => throw null; set => throw null; } - public void Publish(T requestDto) => throw null; - public void Publish(ServiceStack.Messaging.IMessage message) => throw null; - public virtual void Publish(object requestDto) => throw null; - public void PublishAll(System.Collections.Generic.IEnumerable requests) => throw null; - public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task PublishAsync(object request, System.Threading.CancellationToken token) => throw null; - public virtual void Put(ServiceStack.IReturnVoid requestDto) => throw null; - public virtual TResponse Put(string relativeOrAbsoluteUrl, object requestDto) => throw null; - public virtual TResponse Put(object requestDto) => throw null; - public virtual TResponse Put(ServiceStack.IReturn requestDto) => throw null; - public virtual System.Net.HttpWebResponse Put(object requestDto) => throw null; - public virtual System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.TimeSpan? ReadWriteTimeout { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public string RefreshTokenUri { get => throw null; set => throw null; } - public string RequestCompressionType { get => throw null; set => throw null; } - public System.Action RequestFilter { get => throw null; set => throw null; } - public virtual string ResolveTypedUrl(string httpMethod, object requestDto) => throw null; - public virtual string ResolveUrl(string httpMethod, string relativeOrAbsoluteUrl) => throw null; - public System.Action ResponseFilter { get => throw null; set => throw null; } - public ServiceStack.ResultsFilterDelegate ResultsFilter { get => throw null; set => throw null; } - public ServiceStack.ResultsFilterResponseDelegate ResultsFilterResponse { get => throw null; set => throw null; } - public virtual TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request) => throw null; - public virtual TResponse Send(object request) => throw null; - public virtual System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requests) => throw null; - public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requests, System.Threading.CancellationToken token) => throw null; - public virtual void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public virtual System.Threading.Tasks.Task SendAsync(object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void SendOneWay(string relativeOrAbsoluteUrl, object request) => throw null; - public virtual void SendOneWay(string httpMethod, string relativeOrAbsoluteUrl, object requestDto) => throw null; - public virtual void SendOneWay(object request) => throw null; - protected virtual System.Net.WebRequest SendRequest(string httpMethod, string requestUri, object request) => throw null; - protected virtual void SerializeRequestToStream(object request, System.IO.Stream requestStream, bool keepOpen = default(bool)) => throw null; - public abstract void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream); - protected ServiceClientBase(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; - protected ServiceClientBase() => throw null; - public string SessionId { get => throw null; set => throw null; } - public void SetBaseUri(string baseUri) => throw null; - public void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; - public void SetCredentials(string userName, string password) => throw null; - public bool ShareCookiesWithBrowser { get => throw null; set => throw null; } - public bool StoreCookies { get => throw null; set => throw null; } - public abstract ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get; } - public string SyncReplyBaseUri { get => throw null; set => throw null; } - protected void ThrowResponseTypeException(object request, System.Exception ex, string requestUri) => throw null; - public void ThrowWebServiceException(System.Exception ex, string requestUri) => throw null; - public System.TimeSpan? Timeout { get => throw null; set => throw null; } - public virtual string ToAbsoluteUrl(string relativeOrAbsoluteUrl) => throw null; - public static string ToHttpMethod(System.Type requestType) => throw null; - public static ServiceStack.WebServiceException ToWebServiceException(System.Net.WebException webEx, System.Func parseDtoFn, string contentType) => throw null; - public ServiceStack.TypedUrlResolverDelegate TypedUrlResolver { get => throw null; set => throw null; } - public ServiceStack.UrlResolverDelegate UrlResolver { get => throw null; set => throw null; } - public bool UseTokenCookie { get => throw null; set => throw null; } - public string UserAgent { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ServiceClientExtensions` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceClientExtensions - { - public static TResponse Delete(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; - public static TResponse Get(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; - public static string GetCookieValue(this ServiceStack.AsyncServiceClient client, string name) => throw null; - public static ServiceStack.IEncryptedClient GetEncryptedClient(this ServiceStack.IJsonServiceClient client, string serverPublicKeyXml) => throw null; - public static ServiceStack.IEncryptedClient GetEncryptedClient(this ServiceStack.IJsonServiceClient client, System.Security.Cryptography.RSAParameters publicKey) => throw null; - public static string GetOptions(this ServiceStack.IServiceClient client) => throw null; - public static string GetPermanentSessionId(this ServiceStack.IServiceClient client) => throw null; - public static string GetRefreshTokenCookie(this System.Net.CookieContainer cookies, string baseUri) => throw null; - public static string GetRefreshTokenCookie(this ServiceStack.IServiceClient client) => throw null; - public static string GetRefreshTokenCookie(this ServiceStack.AsyncServiceClient client) => throw null; - public static string GetSessionId(this ServiceStack.IServiceClient client) => throw null; - public static string GetTokenCookie(this System.Net.CookieContainer cookies, string baseUri) => throw null; - public static string GetTokenCookie(this ServiceStack.IServiceClient client) => throw null; - public static string GetTokenCookie(this ServiceStack.AsyncServiceClient client) => throw null; - public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; - public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; - public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; - public static TResponse PatchBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; - public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void PopulateRequestMetadata(this ServiceStack.IHasSessionId client, object request) => throw null; - public static void PopulateRequestMetadatas(this ServiceStack.IHasSessionId client, System.Collections.Generic.IEnumerable requests) => throw null; - public static TResponse Post(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; - public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; - public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; - public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; - public static TResponse PostBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; - public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static TResponse PostFile(this ServiceStack.IRestClient client, string relativeOrAbsoluteUrl, System.IO.FileInfo fileToUpload, string mimeType) => throw null; - public static TResponse PostFileWithRequest(this ServiceStack.IRestClient client, string relativeOrAbsoluteUrl, System.IO.FileInfo fileToUpload, object request, string fieldName = default(string)) => throw null; - public static TResponse PostFileWithRequest(this ServiceStack.IRestClient client, System.IO.FileInfo fileToUpload, object request, string fieldName = default(string)) => throw null; - public static TResponse Put(this ServiceStack.IEncryptedClient client, ServiceStack.IReturn request) => throw null; - public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody) => throw null; - public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody) => throw null; - public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody) => throw null; - public static TResponse PutBody(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody) => throw null; - public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, string requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, object requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.IO.Stream requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutBodyAsync(this ServiceStack.IServiceClient client, ServiceStack.IReturn toRequest, System.Byte[] requestBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.IO.Stream ResponseStream(this System.Net.WebResponse webRes) => throw null; - public static void Send(this ServiceStack.IEncryptedClient client, ServiceStack.IReturnVoid request) => throw null; - public static void SetCookie(this System.Net.CookieContainer cookieContainer, System.Uri baseUri, string name, string value, System.DateTime? expiresAt, string path = default(string), bool? httpOnly = default(bool?), bool? secure = default(bool?)) => throw null; - public static void SetCookie(this ServiceStack.IServiceClient client, System.Uri baseUri, string name, string value, System.DateTime? expiresAt = default(System.DateTime?), string path = default(string), bool? httpOnly = default(bool?), bool? secure = default(bool?)) => throw null; - public static void SetOptions(this ServiceStack.IServiceClient client, string options) => throw null; - public static void SetPermanentSessionId(this ServiceStack.IServiceClient client, string sessionId) => throw null; - public static void SetRefreshTokenCookie(this System.Net.CookieContainer cookies, string baseUri, string token) => throw null; - public static void SetRefreshTokenCookie(this ServiceStack.IServiceClient client, string token) => throw null; - public static void SetSessionId(this ServiceStack.IServiceClient client, string sessionId) => throw null; - public static void SetTokenCookie(this System.Net.CookieContainer cookies, string baseUri, string token) => throw null; - public static void SetTokenCookie(this ServiceStack.IServiceClient client, string token) => throw null; - public static void SetUserAgent(this System.Net.HttpWebRequest req, string userAgent) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this System.Net.CookieContainer cookies, string baseUri) => throw null; - } - - // Generated from `ServiceStack.ServiceGatewayAsyncWrappers` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceGatewayAsyncWrappers - { - public static System.Threading.Tasks.Task PublishAllAsync(this ServiceStack.IServiceGatewayAsync client, System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PublishAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PublishAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task Send(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceClientAsync client, System.Collections.Generic.List> requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SendAllAsync(this ServiceStack.IServiceClientAsync client, ServiceStack.IReturn[] requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.ServiceGatewayExtensions` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceGatewayExtensions - { - public static System.Type GetResponseType(this ServiceStack.IServiceGateway client, object request) => throw null; - public static void Send(this ServiceStack.IServiceGateway client, ServiceStack.IReturnVoid request) => throw null; - public static object Send(this ServiceStack.IServiceGateway client, System.Type responseType, object request) => throw null; - public static TResponse Send(this ServiceStack.IServiceGateway client, ServiceStack.IReturn request) => throw null; - public static System.Collections.Generic.List SendAll(this ServiceStack.IServiceGateway client, System.Collections.Generic.IEnumerable> request) => throw null; - public static System.Threading.Tasks.Task SendAsync(this ServiceStack.IServiceGateway client, System.Type responseType, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.SingletonInstanceResolver` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SingletonInstanceResolver : ServiceStack.Configuration.IResolver - { - public SingletonInstanceResolver() => throw null; - public T TryResolve() => throw null; - } - - // Generated from `ServiceStack.StreamExt` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StreamExt - { - public static System.Byte[] Compress(this string text, string compressionType) => throw null; - public static System.Byte[] CompressBytes(this System.Byte[] bytes, string compressionType) => throw null; - public static System.IO.Stream CompressStream(this System.IO.Stream stream, string compressionType) => throw null; - public static string Decompress(this System.Byte[] gzBuffer, string compressionType) => throw null; - public static System.IO.Stream Decompress(this System.IO.Stream gzStream, string compressionType) => throw null; - public static System.Byte[] DecompressBytes(this System.Byte[] gzBuffer, string compressionType) => throw null; - public static System.Byte[] Deflate(this string text) => throw null; - public static ServiceStack.Caching.IDeflateProvider DeflateProvider; - public static string GUnzip(this System.Byte[] gzBuffer) => throw null; - public static System.Byte[] GZip(this string text) => throw null; - public static ServiceStack.Caching.IGZipProvider GZipProvider; - public static string Inflate(this System.Byte[] gzBuffer) => throw null; - public static System.Byte[] ToBytes(this System.IO.Stream stream) => throw null; - public static string ToUtf8String(this System.IO.Stream stream) => throw null; - public static void Write(this System.IO.Stream stream, string text) => throw null; - } - - // Generated from `ServiceStack.StreamFiles` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StreamFiles : ServiceStack.IReturn, ServiceStack.IReturn - { - public System.Collections.Generic.List Paths { get => throw null; set => throw null; } - public StreamFiles() => throw null; - } - - // Generated from `ServiceStack.StreamServerEvents` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StreamServerEvents : ServiceStack.IReturn, ServiceStack.IReturn - { - public string[] Channels { get => throw null; set => throw null; } - public StreamServerEvents() => throw null; - } - - // Generated from `ServiceStack.StreamServerEventsResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StreamServerEventsResponse - { - public string Channel { get => throw null; set => throw null; } - public string[] Channels { get => throw null; set => throw null; } - public System.Int64 CreatedAt { get => throw null; set => throw null; } - public string CssSelector { get => throw null; set => throw null; } - public string Data { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public System.Int64 EventId { get => throw null; set => throw null; } - public System.Int64 HeartbeatIntervalMs { get => throw null; set => throw null; } - public string HeartbeatUrl { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Int64 IdleTimeoutMs { get => throw null; set => throw null; } - public bool IsAuthenticated { get => throw null; set => throw null; } - public string Json { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Op { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public string Selector { get => throw null; set => throw null; } - public StreamServerEventsResponse() => throw null; - public string Target { get => throw null; set => throw null; } - public string UnRegisterUrl { get => throw null; set => throw null; } - public string UpdateSubscriberUrl { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.TokenException` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TokenException : ServiceStack.AuthenticationException - { - public TokenException(string message) => throw null; - } - - // Generated from `ServiceStack.TypedUrlResolverDelegate` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate string TypedUrlResolverDelegate(ServiceStack.IServiceClientMeta client, string httpMethod, object requestDto); - - // Generated from `ServiceStack.UnAssignRoles` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UnAssignRoles : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost, ServiceStack.IMeta - { - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public System.Collections.Generic.List Roles { get => throw null; set => throw null; } - public UnAssignRoles() => throw null; - public string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.UnAssignRolesResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UnAssignRolesResponse : ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public UnAssignRolesResponse() => throw null; - } - - // Generated from `ServiceStack.UpdateEventSubscriber` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UpdateEventSubscriber : ServiceStack.IVerb, ServiceStack.IReturn, ServiceStack.IReturn, ServiceStack.IPost - { - public string Id { get => throw null; set => throw null; } - public string[] SubscribeChannels { get => throw null; set => throw null; } - public string[] UnsubscribeChannels { get => throw null; set => throw null; } - public UpdateEventSubscriber() => throw null; - } - - // Generated from `ServiceStack.UpdateEventSubscriberResponse` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UpdateEventSubscriberResponse - { - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public UpdateEventSubscriberResponse() => throw null; - } - - // Generated from `ServiceStack.UrlExtensions` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class UrlExtensions - { - public static string AsHttps(this string absoluteUrl) => throw null; - public static string ExpandGenericTypeName(System.Type type) => throw null; - public static string ExpandTypeName(this System.Type type) => throw null; - public static string GetFullyQualifiedName(this System.Type type) => throw null; - public static string GetMetadataPropertyType(this System.Type type) => throw null; - public static string GetOperationName(this System.Type type) => throw null; - public static System.Collections.Generic.Dictionary GetQueryPropertyTypes(this System.Type requestType) => throw null; - public static string ToDeleteUrl(this object requestDto) => throw null; - public static string ToGetUrl(this object requestDto) => throw null; - public static string ToOneWayUrl(this object requestDto, string format = default(string)) => throw null; - public static string ToOneWayUrlOnly(this object requestDto, string format = default(string)) => throw null; - public static string ToPostUrl(this object requestDto) => throw null; - public static string ToPutUrl(this object requestDto) => throw null; - public static string ToRelativeUri(this object requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; - public static string ToRelativeUri(this ServiceStack.IReturn requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; - public static string ToReplyUrl(this object requestDto, string format = default(string)) => throw null; - public static string ToReplyUrlOnly(this object requestDto, string format = default(string)) => throw null; - public static string ToUrl(this object requestDto, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; - public static string ToUrl(this ServiceStack.IReturn requestDto, string httpMethod, string formatFallbackToPredefinedRoute = default(string)) => throw null; - } - - // Generated from `ServiceStack.UrlResolverDelegate` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate string UrlResolverDelegate(ServiceStack.IServiceClientMeta client, string httpMethod, string relativeOrAbsoluteUrl); - - // Generated from `ServiceStack.UserApiKey` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UserApiKey : ServiceStack.IMeta - { - public System.DateTime? ExpiryDate { get => throw null; set => throw null; } - public string Key { get => throw null; set => throw null; } - public string KeyType { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public UserApiKey() => throw null; - } - - // Generated from `ServiceStack.WebRequestUtils` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class WebRequestUtils - { - public static void AddApiKeyAuth(this System.Net.WebRequest client, string apiKey) => throw null; - public static void AddBasicAuth(this System.Net.WebRequest client, string userName, string password) => throw null; - public static void AddBearerToken(this System.Net.WebRequest client, string bearerToken) => throw null; - public static string CalculateMD5Hash(string input) => throw null; - public static System.Type GetErrorResponseDtoType(object request) => throw null; - public static System.Type GetErrorResponseDtoType(object request) => throw null; - public static System.Type GetErrorResponseDtoType(System.Type requestType) => throw null; - public static string GetResponseDtoName(System.Type requestType) => throw null; - public static ServiceStack.ResponseStatus GetResponseStatus(this object response) => throw null; - public static System.Net.HttpWebRequest InitWebRequest(string url, string method = default(string), System.Collections.Generic.Dictionary headers = default(System.Collections.Generic.Dictionary)) => throw null; - public const string ResponseDtoSuffix = default; - } - - // Generated from `ServiceStack.WebServiceException` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class WebServiceException : System.Exception, ServiceStack.Model.IResponseStatusConvertible, ServiceStack.IHasStatusDescription, ServiceStack.IHasStatusCode - { - public string ErrorCode { get => throw null; } - public string ErrorMessage { get => throw null; } - public System.Collections.Generic.List GetFieldErrors() => throw null; - public bool IsAny400() => throw null; - public bool IsAny500() => throw null; - public override string Message { get => throw null; } - public string ResponseBody { get => throw null; set => throw null; } - public object ResponseDto { get => throw null; set => throw null; } - public System.Net.WebHeaderCollection ResponseHeaders { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; } - public string ServerStackTrace { get => throw null; } - public object State { get => throw null; set => throw null; } - public int StatusCode { get => throw null; set => throw null; } - public string StatusDescription { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ToResponseStatus() => throw null; - public override string ToString() => throw null; - public WebServiceException(string message, System.Exception innerException) => throw null; - public WebServiceException(string message) => throw null; - public WebServiceException() => throw null; - public static ServiceStack.Logging.ILog log; - } - - // Generated from `ServiceStack.XmlServiceClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlServiceClient : ServiceStack.ServiceClientBase - { - public override string ContentType { get => throw null; } - public override T DeserializeFromStream(System.IO.Stream stream) => throw null; - public override string Format { get => throw null; } - public override void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; - public override ServiceStack.Web.StreamDeserializerDelegate StreamDeserializer { get => throw null; } - public XmlServiceClient(string syncReplyBaseUri, string asyncOneWayBaseUri) => throw null; - public XmlServiceClient(string baseUri) => throw null; - public XmlServiceClient() => throw null; - } - - namespace Messaging - { - // Generated from `ServiceStack.Messaging.InMemoryMessageQueueClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryMessageQueueClient : System.IDisposable, ServiceStack.Messaging.IMessageQueueClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.IOneWayClient - { - public void Ack(ServiceStack.Messaging.IMessage message) => throw null; - public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; - public void Dispose() => throw null; - public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; - public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; - public string GetTempQueueName() => throw null; - public InMemoryMessageQueueClient(ServiceStack.Messaging.MessageQueueClientFactory factory) => throw null; - public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; - public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(T messageBody) => throw null; - public void Publish(ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public void SendOneWay(string queueName, object requestDto) => throw null; - public void SendOneWay(object requestDto) => throw null; - } - - // Generated from `ServiceStack.Messaging.MessageQueueClientFactory` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MessageQueueClientFactory : System.IDisposable, ServiceStack.Messaging.IMessageQueueClientFactory - { - public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; - public void Dispose() => throw null; - public System.Byte[] GetMessageAsync(string queueName) => throw null; - public MessageQueueClientFactory() => throw null; - public event System.EventHandler MessageReceived; - public void PublishMessage(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void PublishMessage(string queueName, System.Byte[] messageBytes) => throw null; - } - - // Generated from `ServiceStack.Messaging.RedisMessageFactory` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisMessageFactory : System.IDisposable, ServiceStack.Messaging.IMessageQueueClientFactory, ServiceStack.Messaging.IMessageFactory - { - public ServiceStack.Messaging.IMessageProducer CreateMessageProducer() => throw null; - public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; - public void Dispose() => throw null; - public RedisMessageFactory(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; - } - - // Generated from `ServiceStack.Messaging.RedisMessageProducer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisMessageProducer : System.IDisposable, ServiceStack.Messaging.IMessageProducer, ServiceStack.IOneWayClient - { - public void Dispose() => throw null; - public void Publish(T messageBody) => throw null; - public void Publish(ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public ServiceStack.Redis.IRedisNativeClient ReadWriteClient { get => throw null; } - public RedisMessageProducer(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; - public RedisMessageProducer(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; - public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public void SendOneWay(string queueName, object requestDto) => throw null; - public void SendOneWay(object requestDto) => throw null; - } - - // Generated from `ServiceStack.Messaging.RedisMessageQueueClient` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisMessageQueueClient : System.IDisposable, ServiceStack.Messaging.IMessageQueueClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.IOneWayClient - { - public void Ack(ServiceStack.Messaging.IMessage message) => throw null; - public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; - public void Dispose() => throw null; - public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; - public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; - public string GetTempQueueName() => throw null; - public int MaxSuccessQueueSize { get => throw null; set => throw null; } - public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; - public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(T messageBody) => throw null; - public void Publish(ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public ServiceStack.Redis.IRedisNativeClient ReadOnlyClient { get => throw null; } - public ServiceStack.Redis.IRedisNativeClient ReadWriteClient { get => throw null; } - public RedisMessageQueueClient(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; - public RedisMessageQueueClient(ServiceStack.Redis.IRedisClientsManager clientsManager) => throw null; - public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public void SendOneWay(string queueName, object requestDto) => throw null; - public void SendOneWay(object requestDto) => throw null; - } - - // Generated from `ServiceStack.Messaging.RedisMessageQueueClientFactory` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisMessageQueueClientFactory : System.IDisposable, ServiceStack.Messaging.IMessageQueueClientFactory - { - public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; - public void Dispose() => throw null; - public RedisMessageQueueClientFactory(ServiceStack.Redis.IRedisClientsManager clientsManager, System.Action onPublishedCallback) => throw null; - } - - } - namespace Pcl - { - // Generated from `ServiceStack.Pcl.HttpUtility` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpUtility - { - public HttpUtility() => throw null; - public static System.Collections.Specialized.NameValueCollection ParseQueryString(string query, System.Text.Encoding encoding) => throw null; - public static System.Collections.Specialized.NameValueCollection ParseQueryString(string query) => throw null; - } - - } - namespace Serialization - { - // Generated from `ServiceStack.Serialization.DataContractSerializer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DataContractSerializer : ServiceStack.Text.IStringSerializer - { - public System.Byte[] Compress(XmlDto from) => throw null; - public void CompressToStream(XmlDto from, System.IO.Stream stream) => throw null; - public DataContractSerializer(System.Xml.XmlDictionaryReaderQuotas quotas = default(System.Xml.XmlDictionaryReaderQuotas)) => throw null; - public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public T DeserializeFromStream(System.IO.Stream stream) => throw null; - public object DeserializeFromString(string xml, System.Type type) => throw null; - public T DeserializeFromString(string xml) => throw null; - public static ServiceStack.Serialization.DataContractSerializer Instance; - public string Parse(XmlDto from, bool indentXml) => throw null; - public void SerializeToStream(object obj, System.IO.Stream stream) => throw null; - public string SerializeToString(XmlDto from) => throw null; - } - - // Generated from `ServiceStack.Serialization.IStringStreamSerializer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IStringStreamSerializer - { - object DeserializeFromStream(System.Type type, System.IO.Stream stream); - T DeserializeFromStream(System.IO.Stream stream); - void SerializeToStream(T obj, System.IO.Stream stream); - } - - // Generated from `ServiceStack.Serialization.JsonDataContractSerializer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonDataContractSerializer : ServiceStack.Text.IStringSerializer - { - public static object BclDeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public static object BclDeserializeFromString(string json, System.Type returnType) => throw null; - public static void BclSerializeToStream(T obj, System.IO.Stream stream) => throw null; - public static string BclSerializeToString(T obj) => throw null; - public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public T DeserializeFromStream(System.IO.Stream stream) => throw null; - public object DeserializeFromString(string json, System.Type returnType) => throw null; - public T DeserializeFromString(string json) => throw null; - public static ServiceStack.Serialization.JsonDataContractSerializer Instance; - public JsonDataContractSerializer() => throw null; - public void SerializeToStream(T obj, System.IO.Stream stream) => throw null; - public string SerializeToString(T obj) => throw null; - public ServiceStack.Text.IStringSerializer TextSerializer { get => throw null; set => throw null; } - public bool UseBcl { get => throw null; set => throw null; } - public static void UseSerializer(ServiceStack.Text.IStringSerializer textSerializer) => throw null; - } - - // Generated from `ServiceStack.Serialization.KeyValueDataContractDeserializer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class KeyValueDataContractDeserializer - { - public static ServiceStack.Serialization.KeyValueDataContractDeserializer Instance; - public KeyValueDataContractDeserializer() => throw null; - public object Parse(System.Collections.Specialized.NameValueCollection nameValues, System.Type returnType) => throw null; - public object Parse(System.Collections.Generic.IDictionary keyValuePairs, System.Type returnType) => throw null; - public To Parse(System.Collections.Generic.IDictionary keyValuePairs) => throw null; - public object Populate(object instance, System.Collections.Specialized.NameValueCollection nameValues, System.Type returnType) => throw null; - } - - // Generated from `ServiceStack.Serialization.RequestBindingError` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestBindingError - { - public string ErrorMessage { 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 string PropertyValueString { get => throw null; set => throw null; } - public RequestBindingError() => throw null; - } - - // Generated from `ServiceStack.Serialization.StringMapTypeDeserializer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringMapTypeDeserializer - { - public object CreateFromMap(System.Collections.Specialized.NameValueCollection nameValues) => throw null; - public object CreateFromMap(System.Collections.Generic.IDictionary keyValuePairs) => throw null; - public ServiceStack.Text.Common.ParseStringDelegate GetParseFn(System.Type propertyType) => throw null; - public object PopulateFromMap(object instance, System.Collections.Specialized.NameValueCollection nameValues, System.Collections.Generic.List ignoredWarningsOnPropertyNames = default(System.Collections.Generic.List)) => throw null; - public object PopulateFromMap(object instance, System.Collections.Generic.IDictionary keyValuePairs, System.Collections.Generic.List ignoredWarningsOnPropertyNames = default(System.Collections.Generic.List)) => throw null; - public StringMapTypeDeserializer(System.Type type) => throw null; - } - - // Generated from `ServiceStack.Serialization.XmlSerializableSerializer` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlSerializableSerializer : ServiceStack.Text.IStringSerializer - { - public object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public object DeserializeFromString(string xml, System.Type type) => throw null; - public To DeserializeFromString(string xml) => throw null; - public static ServiceStack.Serialization.XmlSerializableSerializer Instance; - public To Parse(System.IO.TextReader from) => throw null; - public To Parse(System.IO.Stream from) => throw null; - public void SerializeToStream(object obj, System.IO.Stream stream) => throw null; - public string SerializeToString(XmlDto from) => throw null; - public XmlSerializableSerializer() => throw null; - public static System.Xml.XmlWriterSettings XmlWriterSettings { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Serialization.XmlSerializerWrapper` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlSerializerWrapper : System.Runtime.Serialization.XmlObjectSerializer - { - public static string GetNamespace(System.Type type) => throw null; - public override bool IsStartObject(System.Xml.XmlDictionaryReader reader) => throw null; - public override object ReadObject(System.Xml.XmlDictionaryReader reader, bool verifyObjectName) => throw null; - public override object ReadObject(System.Xml.XmlDictionaryReader reader) => throw null; - public override void WriteEndObject(System.Xml.XmlDictionaryWriter writer) => throw null; - public override void WriteObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; - public override void WriteObjectContent(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; - public override void WriteStartObject(System.Xml.XmlDictionaryWriter writer, object graph) => throw null; - public XmlSerializerWrapper(System.Type type, string name, string ns) => throw null; - public XmlSerializerWrapper(System.Type type) => throw null; - } - - } - namespace Support - { - // Generated from `ServiceStack.Support.NetDeflateProvider` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetDeflateProvider : ServiceStack.Caching.IDeflateProvider - { - public System.Byte[] Deflate(string text) => throw null; - public System.Byte[] Deflate(System.Byte[] bytes) => throw null; - public System.IO.Stream DeflateStream(System.IO.Stream outputStream) => throw null; - public string Inflate(System.Byte[] gzBuffer) => throw null; - public System.Byte[] InflateBytes(System.Byte[] gzBuffer) => throw null; - public System.IO.Stream InflateStream(System.IO.Stream inputStream) => throw null; - public NetDeflateProvider() => throw null; - } - - // Generated from `ServiceStack.Support.NetGZipProvider` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetGZipProvider : ServiceStack.Caching.IGZipProvider - { - public string GUnzip(System.Byte[] gzBuffer) => throw null; - public System.Byte[] GUnzipBytes(System.Byte[] gzBuffer) => throw null; - public System.IO.Stream GUnzipStream(System.IO.Stream gzStream) => throw null; - public System.Byte[] GZip(string text) => throw null; - public System.Byte[] GZip(System.Byte[] buffer) => throw null; - public System.IO.Stream GZipStream(System.IO.Stream outputStream) => throw null; - public NetGZipProvider() => throw null; - } - - } - namespace Validation - { - // Generated from `ServiceStack.Validation.ValidationError` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationError : System.ArgumentException, ServiceStack.Model.IResponseStatusConvertible - { - public static ServiceStack.Validation.ValidationError CreateException(string errorCode, string errorMessage, string fieldName) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(string errorCode, string errorMessage) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(string errorCode) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode, string errorMessage, string fieldName) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode, string errorMessage) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(System.Enum errorCode) => throw null; - public static ServiceStack.Validation.ValidationError CreateException(ServiceStack.Validation.ValidationErrorField error) => throw null; - public string ErrorCode { get => throw null; } - public string ErrorMessage { get => throw null; } - public override string Message { get => throw null; } - public static void ThrowIfNotValid(ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; - public ServiceStack.ResponseStatus ToResponseStatus() => throw null; - public string ToXml() => throw null; - public ValidationError(string errorCode, string errorMessage) => throw null; - public ValidationError(string errorCode) => throw null; - public ValidationError(ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; - public ValidationError(ServiceStack.Validation.ValidationErrorField validationError) => throw null; - public System.Collections.Generic.IList Violations { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Validation.ValidationErrorField` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationErrorField : ServiceStack.IMeta - { - public object AttemptedValue { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public string ErrorMessage { get => throw null; set => throw null; } - public string FieldName { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ValidationErrorField(string errorCode, string fieldName, string errorMessage, object attemptedValue) => throw null; - public ValidationErrorField(string errorCode, string fieldName, string errorMessage) => throw null; - public ValidationErrorField(string errorCode, string fieldName) => throw null; - public ValidationErrorField(string errorCode) => throw null; - public ValidationErrorField(System.Enum errorCode, string fieldName, string errorMessage) => throw null; - public ValidationErrorField(System.Enum errorCode, string fieldName) => throw null; - public ValidationErrorField(System.Enum errorCode) => throw null; - } - - // Generated from `ServiceStack.Validation.ValidationErrorResult` in `ServiceStack.Client, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationErrorResult - { - public string ErrorCode { get => throw null; set => throw null; } - public string ErrorMessage { get => throw null; set => throw null; } - public System.Collections.Generic.IList Errors { get => throw null; set => throw null; } - public virtual bool IsValid { get => throw null; } - public void Merge(ServiceStack.Validation.ValidationErrorResult result) => throw null; - public virtual string Message { get => throw null; } - public static ServiceStack.Validation.ValidationErrorResult Success { get => throw null; } - public string SuccessCode { get => throw null; set => throw null; } - public string SuccessMessage { get => throw null; set => throw null; } - public ValidationErrorResult(System.Collections.Generic.IList errors, string successCode, string errorCode) => throw null; - public ValidationErrorResult(System.Collections.Generic.IList errors) => throw null; - public ValidationErrorResult() => throw null; - } - - } -} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.csproj deleted file mode 100644 index dfa14fb4a16..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Client/5.11.0/ServiceStack.Client.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.cs b/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.cs deleted file mode 100644 index 01925768074..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.cs +++ /dev/null @@ -1,5620 +0,0 @@ -// This file contains auto-generated code. - -namespace ServiceStack -{ - // Generated from `ServiceStack.ActionExecExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ActionExecExtensions - { - public static void ExecAllAndWait(this System.Collections.Generic.ICollection actions, System.TimeSpan timeout) => throw null; - public static System.Collections.Generic.List ExecAsync(this System.Collections.Generic.IEnumerable actions) => throw null; - public static bool WaitAll(this System.Collections.Generic.List waitHandles, int timeoutMs) => throw null; - public static bool WaitAll(this System.Collections.Generic.List asyncResults, System.TimeSpan timeout) => throw null; - public static bool WaitAll(this System.Collections.Generic.ICollection waitHandles, int timeoutMs) => throw null; - public static bool WaitAll(this System.Collections.Generic.ICollection waitHandles, System.TimeSpan timeout) => throw null; - public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, int timeOutMs) => throw null; - public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) => throw null; - } - - // Generated from `ServiceStack.ActionInvoker` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void ActionInvoker(object instance, params object[] args); - - // Generated from `ServiceStack.AdminUsersInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminUsersInfo : ServiceStack.IMeta - { - public string AccessRole { get => throw null; set => throw null; } - public AdminUsersInfo() => throw null; - public System.Collections.Generic.List AllPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List AllRoles { get => throw null; set => throw null; } - public System.Collections.Generic.List Enabled { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List QueryUserAuthProperties { get => throw null; set => throw null; } - public ServiceStack.MetadataType UserAuth { get => throw null; set => throw null; } - public ServiceStack.MetadataType UserAuthDetails { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AppInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AppInfo : ServiceStack.IMeta - { - public AppInfo() => throw null; - public string BackgroundColor { get => throw null; set => throw null; } - public string BackgroundImageUrl { get => throw null; set => throw null; } - public string BaseUrl { get => throw null; set => throw null; } - public string BrandImageUrl { get => throw null; set => throw null; } - public string BrandUrl { get => throw null; set => throw null; } - public string IconUrl { get => throw null; set => throw null; } - public string JsTextCase { get => throw null; set => throw null; } - public string LinkColor { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string ServiceDescription { get => throw null; set => throw null; } - public string ServiceIconUrl { get => throw null; set => throw null; } - public string ServiceName { get => throw null; set => throw null; } - public string ServiceStackVersion { get => throw null; } - public string TextColor { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AppMetadata` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AppMetadata : ServiceStack.IMeta - { - public ServiceStack.MetadataTypes Api { get => throw null; set => throw null; } - public ServiceStack.AppInfo App { get => throw null; set => throw null; } - public AppMetadata() => throw null; - public System.Collections.Generic.Dictionary ContentTypeFormats { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary CustomPlugins { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.PluginInfo Plugins { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AssertExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AssertExtensions - { - public static void ThrowIfNull(this object obj, string varName) => throw null; - public static void ThrowIfNull(this object obj) => throw null; - public static T ThrowIfNull(this T obj, string varName) => throw null; - public static string ThrowIfNullOrEmpty(this string strValue, string varName) => throw null; - public static string ThrowIfNullOrEmpty(this string strValue) => throw null; - public static System.Collections.ICollection ThrowIfNullOrEmpty(this System.Collections.ICollection collection, string varName) => throw null; - public static System.Collections.ICollection ThrowIfNullOrEmpty(this System.Collections.ICollection collection) => throw null; - public static System.Collections.Generic.ICollection ThrowIfNullOrEmpty(this System.Collections.Generic.ICollection collection, string varName) => throw null; - public static System.Collections.Generic.ICollection ThrowIfNullOrEmpty(this System.Collections.Generic.ICollection collection) => throw null; - public static void ThrowOnFirstNull(params object[] objs) => throw null; - } - - // Generated from `ServiceStack.AssertUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AssertUtils - { - public static void AreNotNull(params T[] fields) => throw null; - public static void AreNotNull(System.Collections.Generic.IDictionary fieldMap) => throw null; - } - - // Generated from `ServiceStack.AttributeExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AttributeExtensions - { - public static string GetDescription(this System.Type type) => throw null; - public static string GetDescription(this System.Reflection.ParameterInfo pi) => throw null; - public static string GetDescription(this System.Reflection.MemberInfo mi) => throw null; - } - - // Generated from `ServiceStack.AuthInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthInfo : ServiceStack.IMeta - { - public AuthInfo() => throw null; - public System.Collections.Generic.List AuthProviders { get => throw null; set => throw null; } - public bool? HasAuthRepository { get => throw null; set => throw null; } - public bool? HasAuthSecret { get => throw null; set => throw null; } - public string HtmlRedirect { get => throw null; set => throw null; } - public bool? IncludesOAuthTokens { get => throw null; set => throw null; } - public bool? IncludesRoles { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoQueryConvention` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryConvention - { - public AutoQueryConvention() => throw null; - public string Name { get => throw null; set => throw null; } - public string Types { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } - public string ValueType { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoQueryInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryInfo : ServiceStack.IMeta - { - public string AccessRole { get => throw null; set => throw null; } - public bool? Async { get => throw null; set => throw null; } - public AutoQueryInfo() => throw null; - public bool? AutoQueryViewer { get => throw null; set => throw null; } - public bool? CrudEvents { get => throw null; set => throw null; } - public bool? CrudEventsServices { get => throw null; set => throw null; } - public int? MaxLimit { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string NamedConnection { get => throw null; set => throw null; } - public bool? OrderByPrimaryKey { get => throw null; set => throw null; } - public bool? RawSqlFilters { get => throw null; set => throw null; } - public bool? UntypedQueries { get => throw null; set => throw null; } - public System.Collections.Generic.List ViewerConventions { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.BundleOptions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BundleOptions - { - public bool Bundle { get => throw null; set => throw null; } - public BundleOptions() => throw null; - public bool Cache { get => throw null; set => throw null; } - public bool IIFE { get => throw null; set => throw null; } - public bool Minify { get => throw null; set => throw null; } - public string OutputTo { get => throw null; set => throw null; } - public string OutputWebPath { get => throw null; set => throw null; } - public string PathBase { get => throw null; set => throw null; } - public bool RegisterModuleInAmd { get => throw null; set => throw null; } - public bool SaveToDisk { get => throw null; set => throw null; } - public System.Collections.Generic.List Sources { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ByteArrayComparer` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ByteArrayComparer : System.Collections.Generic.IEqualityComparer - { - public ByteArrayComparer() => throw null; - public bool Equals(System.Byte[] left, System.Byte[] right) => throw null; - public int GetHashCode(System.Byte[] key) => throw null; - public static ServiceStack.ByteArrayComparer Instance; - } - - // Generated from `ServiceStack.ByteArrayExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ByteArrayExtensions - { - public static bool AreEqual(this System.Byte[] b1, System.Byte[] b2) => throw null; - public static System.Byte[] ToSha1Hash(this System.Byte[] bytes) => throw null; - } - - // Generated from `ServiceStack.CachedExpressionCompiler` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CachedExpressionCompiler - { - public static System.Func Compile(this System.Linq.Expressions.Expression> lambdaExpression) => throw null; - public static object Evaluate(System.Linq.Expressions.Expression arg) => throw null; - } - - // Generated from `ServiceStack.Command` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Command - { - public System.Collections.Generic.List> Args { get => throw null; set => throw null; } - public System.ReadOnlyMemory AsMemory() => throw null; - public Command() => throw null; - public int IndexOfMethodEnd(System.ReadOnlyMemory commandsString, int pos) => throw null; - public string Name { get => throw null; set => throw null; } - public System.ReadOnlyMemory Original { get => throw null; set => throw null; } - public System.ReadOnlyMemory Suffix { get => throw null; set => throw null; } - public virtual string ToDebugString() => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.CommandsUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CommandsUtils - { - public CommandsUtils() => throw null; - public static void ExecuteAsyncCommandExec(System.TimeSpan timeout, System.Collections.Generic.IEnumerable commands) => throw null; - public static System.Collections.Generic.List ExecuteAsyncCommandExec(System.Collections.Generic.IEnumerable commands) => throw null; - public static System.Collections.Generic.List ExecuteAsyncCommandList(System.TimeSpan timeout, params ServiceStack.Commands.ICommandList[] commands) => throw null; - public static System.Collections.Generic.List ExecuteAsyncCommandList(System.TimeSpan timeout, System.Collections.Generic.IEnumerable> commands) => throw null; - public static void WaitAll(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) => throw null; - } - - // Generated from `ServiceStack.ConnectionInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConnectionInfo - { - public ConnectionInfo() => throw null; - public string ConnectionString { get => throw null; set => throw null; } - public string NamedConnection { get => throw null; set => throw null; } - public string ProviderName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ContainerExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ContainerExtensions - { - public static ServiceStack.IContainer AddSingleton(this ServiceStack.IContainer container, System.Func factory) => throw null; - public static ServiceStack.IContainer AddSingleton(this ServiceStack.IContainer container) => throw null; - public static ServiceStack.IContainer AddSingleton(this ServiceStack.IContainer container) where TImpl : TService => throw null; - public static ServiceStack.IContainer AddSingleton(this ServiceStack.IContainer container, System.Type type) => throw null; - public static ServiceStack.IContainer AddTransient(this ServiceStack.IContainer container, System.Func factory) => throw null; - public static ServiceStack.IContainer AddTransient(this ServiceStack.IContainer container) => throw null; - public static ServiceStack.IContainer AddTransient(this ServiceStack.IContainer container) where TImpl : TService => throw null; - public static ServiceStack.IContainer AddTransient(this ServiceStack.IContainer container, System.Type type) => throw null; - public static bool Exists(this ServiceStack.IContainer container) => throw null; - public static T Resolve(this ServiceStack.IContainer container) => throw null; - public static T Resolve(this ServiceStack.Configuration.IResolver container) => throw null; - } - - // Generated from `ServiceStack.CustomPlugin` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomPlugin : ServiceStack.IMeta - { - public string AccessRole { get => throw null; set => throw null; } - public CustomPlugin() => throw null; - public System.Collections.Generic.List Enabled { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DictionaryExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DictionaryExtensions - { - public static System.Collections.Generic.List ConvertAll(System.Collections.Generic.IDictionary map, System.Func createFn) => throw null; - public static void ForEach(this System.Collections.Generic.Dictionary dictionary, System.Action onEachFn) => throw null; - public static V GetOrAdd(this System.Collections.Generic.Dictionary map, K key, System.Func createFn) => throw null; - public static TValue GetValue(this System.Collections.Generic.Dictionary dictionary, TKey key, System.Func defaultValue) => throw null; - public static TValue GetValueOrDefault(this System.Collections.Generic.Dictionary dictionary, TKey key) => throw null; - public static bool IsNullOrEmpty(this System.Collections.IDictionary dictionary) => throw null; - public static System.Collections.Generic.Dictionary Merge(this System.Collections.Generic.IDictionary initial, params System.Collections.Generic.IEnumerable>[] withSources) => throw null; - public static System.Collections.Generic.Dictionary MoveKey(this System.Collections.Generic.Dictionary map, TKey oldKey, TKey newKey, System.Func valueFilter = default(System.Func)) => throw null; - public static System.Collections.Generic.KeyValuePair PairWith(this TKey key, TValue value) => throw null; - public static System.Collections.Generic.Dictionary RemoveKey(this System.Collections.Generic.Dictionary map, TKey key) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary ToConcurrentDictionary(this System.Collections.Generic.IDictionary from) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Concurrent.ConcurrentDictionary map) => throw null; - public static bool TryRemove(this System.Collections.Generic.Dictionary map, TKey key, out TValue value) => throw null; - public static bool UnorderedEquivalentTo(this System.Collections.Generic.IDictionary thisMap, System.Collections.Generic.IDictionary otherMap) => throw null; - } - - // Generated from `ServiceStack.DirectoryInfoExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DirectoryInfoExtensions - { - public static System.Collections.Generic.IEnumerable GetMatchingFiles(this System.IO.DirectoryInfo rootDirPath, string fileSearchPattern) => throw null; - public static System.Collections.Generic.IEnumerable GetMatchingFiles(string rootDirPath, string fileSearchPattern) => throw null; - } - - // Generated from `ServiceStack.DisposableExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DisposableExtensions - { - public static void Dispose(this System.Collections.Generic.IEnumerable resources, ServiceStack.Logging.ILog log) => throw null; - public static void Dispose(this System.Collections.Generic.IEnumerable resources) => throw null; - public static void Dispose(params System.IDisposable[] disposables) => throw null; - public static void Run(this T disposable, System.Action runActionThenDispose) where T : System.IDisposable => throw null; - } - - // Generated from `ServiceStack.EnumExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class EnumExtensions - { - public static T Add(this System.Enum @enum, T value) => throw null; - public static System.TypeCode GetTypeCode(this System.Enum @enum) => throw null; - public static bool Has(this System.Enum @enum, T value) => throw null; - public static bool Is(this System.Enum @enum, T value) => throw null; - public static T Remove(this System.Enum @enum, T value) => throw null; - public static string ToDescription(this System.Enum @enum) => throw null; - public static System.Collections.Generic.List> ToKeyValuePairs(this System.Collections.Generic.IEnumerable enums) where T : System.Enum => throw null; - public static System.Collections.Generic.List ToList(this System.Enum @enum) => throw null; - } - - // Generated from `ServiceStack.EnumUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class EnumUtils - { - public static System.Collections.Generic.IEnumerable GetValues() where T : System.Enum => throw null; - } - - // Generated from `ServiceStack.EnumerableExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class EnumerableExtensions - { - public static System.Threading.Tasks.Task AllAsync(this System.Collections.Generic.IEnumerable source, System.Func> predicate) => throw null; - public static System.Threading.Tasks.Task AllAsync(this System.Collections.Generic.IEnumerable> source, System.Func predicate) => throw null; - public static System.Threading.Tasks.Task AnyAsync(this System.Collections.Generic.IEnumerable source, System.Func> predicate) => throw null; - public static System.Threading.Tasks.Task AnyAsync(this System.Collections.Generic.IEnumerable> source, System.Func predicate) => throw null; - public static System.Collections.Generic.IEnumerable BatchesOf(this System.Collections.Generic.IEnumerable sequence, int batchSize) => throw null; - public static void Each(this System.Collections.Generic.IDictionary map, System.Action action) => throw null; - public static void Each(this System.Collections.Generic.IEnumerable values, System.Action action) => throw null; - public static void Each(this System.Collections.Generic.IEnumerable values, System.Action action) => throw null; - public static bool EquivalentTo(this T[] array, T[] otherArray, System.Func comparer = default(System.Func)) => throw null; - public static bool EquivalentTo(this System.Collections.Generic.IEnumerable thisList, System.Collections.Generic.IEnumerable otherList, System.Func comparer = default(System.Func)) => throw null; - public static bool EquivalentTo(this System.Collections.Generic.IDictionary a, System.Collections.Generic.IDictionary b, System.Func comparer = default(System.Func)) => throw null; - public static bool EquivalentTo(this System.Byte[] bytes, System.Byte[] other) => throw null; - public static T FirstNonDefault(this System.Collections.Generic.IEnumerable values) => throw null; - public static string FirstNonDefaultOrEmpty(this System.Collections.Generic.IEnumerable values) => throw null; - public static bool IsEmpty(this T[] collection) => throw null; - public static bool IsEmpty(this System.Collections.Generic.ICollection collection) => throw null; - public static System.Collections.Generic.List Map(this System.Collections.IEnumerable items, System.Func converter) => throw null; - public static System.Collections.Generic.List Map(this System.Collections.Generic.IEnumerable items, System.Func converter) => throw null; - public static System.Collections.IEnumerable Safe(this System.Collections.IEnumerable enumerable) => throw null; - public static System.Collections.Generic.IEnumerable Safe(this System.Collections.Generic.IEnumerable enumerable) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this System.Collections.Generic.IEnumerable list, System.Func> map) => throw null; - public static System.Collections.Generic.HashSet ToHashSet(this System.Collections.Generic.IEnumerable items) => throw null; - public static System.Collections.Generic.List ToObjects(this System.Collections.Generic.IEnumerable items) => throw null; - public static System.Collections.Generic.Dictionary ToSafeDictionary(this System.Collections.Generic.IEnumerable list, System.Func expr) => throw null; - public static System.Collections.Generic.HashSet ToSet(this System.Collections.Generic.IEnumerable items) => throw null; - } - - // Generated from `ServiceStack.EnumerableUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class EnumerableUtils - { - public static int Count(System.Collections.IEnumerable items) => throw null; - public static object ElementAt(System.Collections.IEnumerable items, int index) => throw null; - public static object FirstOrDefault(System.Collections.IEnumerable items) => throw null; - public static bool IsEmpty(System.Collections.IEnumerable items) => throw null; - public static System.Collections.IEnumerable NullIfEmpty(System.Collections.IEnumerable items) => throw null; - public static System.Collections.Generic.List Skip(System.Collections.IEnumerable items, int count) => throw null; - public static System.Collections.Generic.List SplitOnFirst(System.Collections.IEnumerable items, out object first) => throw null; - public static System.Collections.Generic.List Take(System.Collections.IEnumerable items, int count) => throw null; - public static System.Collections.Generic.List ToList(System.Collections.IEnumerable items) => throw null; - } - - // Generated from `ServiceStack.ExecUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ExecUtils - { - public static int BaseDelayMs { get => throw null; set => throw null; } - public static int CalculateExponentialDelay(int retriesAttempted, int baseDelay, int maxBackOffMs) => throw null; - public static int CalculateExponentialDelay(int retriesAttempted) => throw null; - public static int CalculateFullJitterBackOffDelay(int retriesAttempted, int baseDelay, int maxBackOffMs) => throw null; - public static int CalculateFullJitterBackOffDelay(int retriesAttempted) => throw null; - public static int CalculateMemoryLockDelay(int retries) => throw null; - public static System.Threading.Tasks.Task DelayBackOffMultiplierAsync(int retriesAttempted) => throw null; - public static void ExecAll(this System.Collections.Generic.IEnumerable instances, System.Action action) => throw null; - public static System.Threading.Tasks.Task ExecAllAsync(this System.Collections.Generic.IEnumerable instances, System.Func action) => throw null; - public static System.Threading.Tasks.Task ExecAllReturnFirstAsync(this System.Collections.Generic.IEnumerable instances, System.Func> action) => throw null; - public static void ExecAllWithFirstOut(this System.Collections.Generic.IEnumerable instances, System.Func action, ref TReturn firstResult) => throw null; - public static TReturn ExecReturnFirstWithResult(this System.Collections.Generic.IEnumerable instances, System.Func action) => throw null; - public static System.Threading.Tasks.Task ExecReturnFirstWithResultAsync(this System.Collections.Generic.IEnumerable instances, System.Func> action) => throw null; - public static void LogError(System.Type declaringType, string clientMethodName, System.Exception ex) => throw null; - public static int MaxBackOffMs { get => throw null; set => throw null; } - public static int MaxRetries { get => throw null; set => throw null; } - public static void RetryOnException(System.Action action, int maxRetries) => throw null; - public static void RetryOnException(System.Action action, System.TimeSpan? timeOut) => throw null; - public static System.Threading.Tasks.Task RetryOnExceptionAsync(System.Func action, int maxRetries) => throw null; - public static System.Threading.Tasks.Task RetryOnExceptionAsync(System.Func action, System.TimeSpan? timeOut) => throw null; - public static void RetryUntilTrue(System.Func action, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; - public static System.Threading.Tasks.Task RetryUntilTrueAsync(System.Func> action, System.TimeSpan? timeOut = default(System.TimeSpan?)) => throw null; - public static string ShellExec(string command, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static void SleepBackOffMultiplier(int retriesAttempted) => throw null; - } - - // Generated from `ServiceStack.ExpressionUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ExpressionUtils - { - public static System.Collections.Generic.Dictionary AssignedValues(this System.Linq.Expressions.Expression> expr) => throw null; - public static string[] GetFieldNames(this System.Linq.Expressions.Expression> expr) => throw null; - public static System.Linq.Expressions.MemberExpression GetMemberExpression(System.Linq.Expressions.Expression> expr) => throw null; - public static string GetMemberName(System.Linq.Expressions.Expression> fieldExpr) => throw null; - public static object GetValue(this System.Linq.Expressions.MemberBinding binding) => throw null; - public static System.Reflection.PropertyInfo ToPropertyInfo(this System.Linq.Expressions.Expression fieldExpr) => throw null; - public static System.Reflection.PropertyInfo ToPropertyInfo(System.Linq.Expressions.MemberExpression m) => throw null; - public static System.Reflection.PropertyInfo ToPropertyInfo(System.Linq.Expressions.LambdaExpression lambda) => throw null; - } - - // Generated from `ServiceStack.FuncUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class FuncUtils - { - public static bool TryExec(System.Action action) => throw null; - public static T TryExec(System.Func func, T defaultValue) => throw null; - public static T TryExec(System.Func func) => throw null; - public static void WaitWhile(System.Func condition, int millisecondTimeout, int millsecondPollPeriod = default(int)) => throw null; - } - - // Generated from `ServiceStack.Gist` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Gist - { - public System.DateTime Created_At { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Files { get => throw null; set => throw null; } - public Gist() => throw null; - public string Html_Url { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public bool Public { get => throw null; set => throw null; } - public System.DateTime? Updated_At { get => throw null; set => throw null; } - public string Url { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GistChangeStatus` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GistChangeStatus - { - public int Additions { get => throw null; set => throw null; } - public int Deletions { get => throw null; set => throw null; } - public GistChangeStatus() => throw null; - public int Total { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GistFile` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GistFile - { - public string Content { get => throw null; set => throw null; } - public string Filename { get => throw null; set => throw null; } - public GistFile() => throw null; - public string Language { get => throw null; set => throw null; } - public string Raw_Url { get => throw null; set => throw null; } - public int Size { get => throw null; set => throw null; } - public bool Truncated { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GistHistory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GistHistory - { - public ServiceStack.GistChangeStatus Change_Status { get => throw null; set => throw null; } - public System.DateTime Committed_At { get => throw null; set => throw null; } - public GistHistory() => throw null; - public string Url { get => throw null; set => throw null; } - public ServiceStack.GithubUser User { get => throw null; set => throw null; } - public string Version { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GistLink` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GistLink - { - public string Description { get => throw null; set => throw null; } - public static ServiceStack.GistLink Get(System.Collections.Generic.List links, string gistAlias) => throw null; - public string GistId { get => throw null; set => throw null; } - public GistLink() => throw null; - public bool MatchesTag(string tagName) => throw null; - public System.Collections.Generic.Dictionary Modifiers { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public static System.Collections.Generic.List Parse(string md) => throw null; - public static string RenderLinks(System.Collections.Generic.List links) => throw null; - public string Repo { get => throw null; set => throw null; } - public string[] Tags { get => throw null; set => throw null; } - public string To { get => throw null; set => throw null; } - public string ToListItem() => throw null; - public override string ToString() => throw null; - public string ToTagsString() => throw null; - public static bool TryParseGitHubUrl(string url, out string gistId, out string user, out string repo) => throw null; - public string Url { get => throw null; set => throw null; } - public string User { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GistUser` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GistUser - { - public string Avatar_Url { get => throw null; set => throw null; } - public GistUser() => throw null; - public string Gists_Url { get => throw null; set => throw null; } - public string Gravatar_Id { get => throw null; set => throw null; } - public string Html_Url { get => throw null; set => throw null; } - public System.Int64 Id { get => throw null; set => throw null; } - public string Login { get => throw null; set => throw null; } - public bool Site_Admin { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - public string Url { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GitHubGateway` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GitHubGateway : ServiceStack.IGitHubGateway, ServiceStack.IGistGateway - { - public string AccessToken { get => throw null; set => throw null; } - public const string ApiBaseUrl = default; - public virtual void ApplyRequestFilters(System.Net.HttpWebRequest req) => throw null; - protected virtual void AssertAccessToken() => throw null; - public virtual System.Tuple AssertRepo(string[] orgs, string name, bool useFork = default(bool)) => throw null; - public string BaseUrl { get => throw null; set => throw null; } - public virtual ServiceStack.Gist CreateGist(string description, bool isPublic, System.Collections.Generic.Dictionary textFiles) => throw null; - public virtual ServiceStack.Gist CreateGist(string description, bool isPublic, System.Collections.Generic.Dictionary files) => throw null; - public virtual void CreateGistFile(string gistId, string filePath, string contents) => throw null; - public virtual ServiceStack.GithubGist CreateGithubGist(string description, bool isPublic, System.Collections.Generic.Dictionary textFiles) => throw null; - public virtual ServiceStack.GithubGist CreateGithubGist(string description, bool isPublic, System.Collections.Generic.Dictionary files) => throw null; - public virtual void DeleteGistFiles(string gistId, params string[] filePaths) => throw null; - public virtual void DownloadFile(string downloadUrl, string fileName) => throw null; - public virtual System.Tuple FindRepo(string[] orgs, string name, bool useFork = default(bool)) => throw null; - public virtual ServiceStack.Gist GetGist(string gistId) => throw null; - public ServiceStack.Gist GetGist(string gistId, string version) => throw null; - public System.Threading.Tasks.Task GetGistAsync(string gistId, string version) => throw null; - public System.Threading.Tasks.Task GetGistAsync(string gistId) => throw null; - public virtual ServiceStack.GithubGist GetGithubGist(string gistId, string version) => throw null; - public virtual ServiceStack.GithubGist GetGithubGist(string gistId) => throw null; - public virtual string GetJson(string route) => throw null; - public virtual T GetJson(string route) => throw null; - public virtual System.Threading.Tasks.Task GetJsonAsync(string route) => throw null; - public virtual System.Threading.Tasks.Task GetJsonAsync(string route) => throw null; - public virtual System.Threading.Tasks.Task> GetJsonCollectionAsync(string route) => throw null; - public System.Func GetJsonFilter { get => throw null; set => throw null; } - public virtual System.Collections.Generic.List GetOrgRepos(string githubOrg) => throw null; - public virtual System.Threading.Tasks.Task> GetOrgReposAsync(string githubOrg) => throw null; - public ServiceStack.GithubRateLimits GetRateLimits() => throw null; - public System.Threading.Tasks.Task GetRateLimitsAsync() => throw null; - public virtual ServiceStack.GithubRepo GetRepo(string userOrOrg, string repo) => throw null; - public virtual System.Threading.Tasks.Task GetRepoAsync(string userOrOrg, string repo) => throw null; - public virtual System.Threading.Tasks.Task> GetSourceReposAsync(string orgName) => throw null; - public virtual string GetSourceZipUrl(string user, string repo) => throw null; - public virtual System.Threading.Tasks.Task GetSourceZipUrlAsync(string user, string repo) => throw null; - public virtual System.Threading.Tasks.Task> GetUserAndOrgReposAsync(string githubOrgOrUser) => throw null; - public virtual System.Collections.Generic.List GetUserRepos(string githubUser) => throw null; - public virtual System.Threading.Tasks.Task> GetUserReposAsync(string githubUser) => throw null; - public GitHubGateway(string accessToken) => throw null; - public GitHubGateway() => throw null; - public static bool IsDirSep(System.Char c) => throw null; - public virtual System.Collections.Generic.Dictionary ParseLinkUrls(string linkHeader) => throw null; - public virtual System.Collections.Generic.IEnumerable StreamJsonCollection(string route) => throw null; - public static System.Collections.Generic.Dictionary ToTextFiles(System.Collections.Generic.Dictionary files) => throw null; - public string UserAgent { get => throw null; set => throw null; } - public virtual void WriteGistFile(string gistId, string filePath, string contents) => throw null; - public virtual void WriteGistFiles(string gistId, System.Collections.Generic.Dictionary textFiles, string description = default(string), bool deleteMissing = default(bool)) => throw null; - public virtual void WriteGistFiles(string gistId, System.Collections.Generic.Dictionary files, string description = default(string), bool deleteMissing = default(bool)) => throw null; - } - - // Generated from `ServiceStack.GithubGist` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GithubGist : ServiceStack.Gist - { - public int Comments { get => throw null; set => throw null; } - public string Comments_Url { get => throw null; set => throw null; } - public string Commits_Url { get => throw null; set => throw null; } - public string Forks_Url { get => throw null; set => throw null; } - public string Git_Pull_Url { get => throw null; set => throw null; } - public string Git_Push_Url { get => throw null; set => throw null; } - public GithubGist() => throw null; - public ServiceStack.GistHistory[] History { get => throw null; set => throw null; } - public string Node_Id { get => throw null; set => throw null; } - public ServiceStack.GithubUser Owner { get => throw null; set => throw null; } - public bool Truncated { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GithubRateLimit` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GithubRateLimit - { - public GithubRateLimit() => throw null; - public int Limit { get => throw null; set => throw null; } - public int Remaining { get => throw null; set => throw null; } - public System.Int64 Reset { get => throw null; set => throw null; } - public int Used { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GithubRateLimits` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GithubRateLimits - { - public GithubRateLimits() => throw null; - public ServiceStack.GithubResourcesRateLimits Resources { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GithubRepo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GithubRepo - { - public System.DateTime Created_At { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public bool Fork { get => throw null; set => throw null; } - public string Full_Name { get => throw null; set => throw null; } - public GithubRepo() => throw null; - public bool Has_Downloads { get => throw null; set => throw null; } - public string Homepage { get => throw null; set => throw null; } - public string Html_Url { get => throw null; set => throw null; } - public int Id { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public ServiceStack.GithubRepo Parent { get => throw null; set => throw null; } - public bool Private { get => throw null; set => throw null; } - public int Size { get => throw null; set => throw null; } - public int Stargazers_Count { get => throw null; set => throw null; } - public System.DateTime? Updated_At { get => throw null; set => throw null; } - public string Url { get => throw null; set => throw null; } - public int Watchers_Count { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GithubResourcesRateLimits` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GithubResourcesRateLimits - { - public ServiceStack.GithubRateLimit Core { get => throw null; set => throw null; } - public GithubResourcesRateLimits() => throw null; - public ServiceStack.GithubRateLimit Graphql { get => throw null; set => throw null; } - public ServiceStack.GithubRateLimit Integration_Manifest { get => throw null; set => throw null; } - public ServiceStack.GithubRateLimit Search { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.GithubUser` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GithubUser : ServiceStack.GistUser - { - public string Events_Url { get => throw null; set => throw null; } - public string Followers_Url { get => throw null; set => throw null; } - public string Following_Url { get => throw null; set => throw null; } - public GithubUser() => throw null; - public string Node_Id { get => throw null; set => throw null; } - public string Organizations_Url { get => throw null; set => throw null; } - public string Received_Events_Url { get => throw null; set => throw null; } - public string Repos_Url { get => throw null; set => throw null; } - public string Starred_Url { get => throw null; set => throw null; } - public string Subscriptions_Url { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.HtmlDumpOptions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlDumpOptions - { - public string Caption { get => throw null; set => throw null; } - public string CaptionIfEmpty { get => throw null; set => throw null; } - public string ChildClass { get => throw null; set => throw null; } - public string ClassName { get => throw null; set => throw null; } - public ServiceStack.Script.DefaultScripts Defaults { get => throw null; set => throw null; } - public string Display { get => throw null; set => throw null; } - public ServiceStack.TextStyle HeaderStyle { get => throw null; set => throw null; } - public string HeaderTag { get => throw null; set => throw null; } - public HtmlDumpOptions() => throw null; - public string Id { get => throw null; set => throw null; } - public static ServiceStack.HtmlDumpOptions Parse(System.Collections.Generic.Dictionary options, ServiceStack.Script.DefaultScripts defaults = default(ServiceStack.Script.DefaultScripts)) => throw null; - } - - // Generated from `ServiceStack.IGistGateway` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IGistGateway - { - ServiceStack.Gist CreateGist(string description, bool isPublic, System.Collections.Generic.Dictionary textFiles); - ServiceStack.Gist CreateGist(string description, bool isPublic, System.Collections.Generic.Dictionary files); - void CreateGistFile(string gistId, string filePath, string contents); - void DeleteGistFiles(string gistId, params string[] filePaths); - ServiceStack.Gist GetGist(string gistId, string version); - ServiceStack.Gist GetGist(string gistId); - System.Threading.Tasks.Task GetGistAsync(string gistId, string version); - System.Threading.Tasks.Task GetGistAsync(string gistId); - void WriteGistFile(string gistId, string filePath, string contents); - void WriteGistFiles(string gistId, System.Collections.Generic.Dictionary textFiles, string description = default(string), bool deleteMissing = default(bool)); - void WriteGistFiles(string gistId, System.Collections.Generic.Dictionary files, string description = default(string), bool deleteMissing = default(bool)); - } - - // Generated from `ServiceStack.IGitHubGateway` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IGitHubGateway : ServiceStack.IGistGateway - { - void DownloadFile(string downloadUrl, string fileName); - System.Tuple FindRepo(string[] orgs, string name, bool useFork = default(bool)); - string GetJson(string route); - T GetJson(string route); - System.Threading.Tasks.Task GetJsonAsync(string route); - System.Threading.Tasks.Task GetJsonAsync(string route); - System.Threading.Tasks.Task> GetJsonCollectionAsync(string route); - System.Collections.Generic.List GetOrgRepos(string githubOrg); - System.Threading.Tasks.Task> GetOrgReposAsync(string githubOrg); - ServiceStack.GithubRepo GetRepo(string userOrOrg, string repo); - System.Threading.Tasks.Task GetRepoAsync(string userOrOrg, string repo); - System.Threading.Tasks.Task> GetSourceReposAsync(string orgName); - string GetSourceZipUrl(string user, string repo); - System.Threading.Tasks.Task GetSourceZipUrlAsync(string user, string repo); - System.Threading.Tasks.Task> GetUserAndOrgReposAsync(string githubOrgOrUser); - System.Collections.Generic.List GetUserRepos(string githubUser); - System.Threading.Tasks.Task> GetUserReposAsync(string githubUser); - System.Collections.Generic.IEnumerable StreamJsonCollection(string route); - } - - // Generated from `ServiceStack.IPAddressExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class IPAddressExtensions - { - public static System.Collections.Generic.Dictionary GetAllNetworkInterfaceIpv4Addresses() => throw null; - public static System.Collections.Generic.List GetAllNetworkInterfaceIpv6Addresses() => throw null; - public static System.Net.IPAddress GetBroadcastAddress(this System.Net.IPAddress address, System.Net.IPAddress subnetMask) => throw null; - public static System.Net.IPAddress GetNetworkAddress(this System.Net.IPAddress address, System.Net.IPAddress subnetMask) => throw null; - public static System.Byte[] GetNetworkAddressBytes(System.Byte[] ipAdressBytes, System.Byte[] subnetMaskBytes) => throw null; - public static bool IsInSameIpv4Subnet(this System.Net.IPAddress address2, System.Net.IPAddress address, System.Net.IPAddress subnetMask) => throw null; - public static bool IsInSameIpv4Subnet(this System.Byte[] address1Bytes, System.Byte[] address2Bytes, System.Byte[] subnetMaskBytes) => throw null; - public static bool IsInSameIpv6Subnet(this System.Net.IPAddress address2, System.Net.IPAddress address) => throw null; - public static bool IsInSameIpv6Subnet(this System.Byte[] address1Bytes, System.Byte[] address2Bytes) => throw null; - } - - // Generated from `ServiceStack.IdUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class IdUtils - { - public static string CreateCacheKeyPath(string idValue) => throw null; - public static string CreateUrn(this T entity) => throw null; - public static string CreateUrn(object id) => throw null; - public static string CreateUrn(string type, object id) => throw null; - public static string CreateUrn(System.Type type, object id) => throw null; - public static object GetId(this T entity) => throw null; - public static System.Reflection.PropertyInfo GetIdProperty(this System.Type type) => throw null; - public static object GetObjectId(this object entity) => throw null; - public const string IdField = default; - public static object ToId(this T entity) => throw null; - public static string ToSafePathCacheKey(this string idValue) => throw null; - public static string ToUrn(this object id) => throw null; - public static string ToUrn(this T entity) => throw null; - } - - // Generated from `ServiceStack.IdUtils<>` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class IdUtils - { - public static object GetId(T entity) => throw null; - } - - // Generated from `ServiceStack.InputOptions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InputOptions - { - public string ErrorClass { get => throw null; set => throw null; } - public string Help { get => throw null; set => throw null; } - public bool Inline { get => throw null; set => throw null; } - public InputOptions() => throw null; - public System.Collections.Generic.IEnumerable> InputValues { set => throw null; } - public string Label { get => throw null; set => throw null; } - public string LabelClass { get => throw null; set => throw null; } - public bool PreserveValue { get => throw null; set => throw null; } - public bool ShowErrors { get => throw null; set => throw null; } - public string Size { get => throw null; set => throw null; } - public object Values { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Inspect` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Inspect - { - // Generated from `ServiceStack.Inspect+Config` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Config - { - public static void DefaultVarsFilter(object anonArgs) => throw null; - public static System.Func DumpTableFilter { get => throw null; set => throw null; } - public static System.Action VarsFilter { get => throw null; set => throw null; } - public const string VarsName = default; - } - - - public static string dump(T instance) => throw null; - public static string dumpTable(object instance) => throw null; - public static void printDump(T instance) => throw null; - public static void printDumpTable(object instance) => throw null; - public static void vars(object anonArgs) => throw null; - } - - // Generated from `ServiceStack.InstanceMapper` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object InstanceMapper(object instance); - - // Generated from `ServiceStack.IntExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class IntExtensions - { - public static void Times(this int times, System.Action actionFn) => throw null; - public static void Times(this int times, System.Action actionFn) => throw null; - public static System.Collections.Generic.List Times(this int times, System.Func actionFn) => throw null; - public static System.Collections.Generic.List Times(this int times, System.Func actionFn) => throw null; - public static System.Collections.Generic.IEnumerable Times(this int times) => throw null; - public static System.Threading.Tasks.Task> TimesAsync(this int times, System.Func> actionFn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task TimesAsync(this int times, System.Func actionFn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.List TimesAsync(this int times, System.Action actionFn) => throw null; - public static System.Collections.Generic.List TimesAsync(this int times, System.Action actionFn) => throw null; - } - - // Generated from `ServiceStack.JS` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JS - { - public static void Configure() => throw null; - public static ServiceStack.Script.ScriptScopeContext CreateScope(System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary), ServiceStack.Script.ScriptMethods functions = default(ServiceStack.Script.ScriptMethods)) => throw null; - public const string EvalAstCacheKeyPrefix = default; - public const string EvalCacheKeyPrefix = default; - public const string EvalScriptCacheKeyPrefix = default; - public static void UnConfigure() => throw null; - public static object eval(string js, ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static object eval(string js) => throw null; - public static object eval(System.ReadOnlySpan js, ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static object eval(ServiceStack.Script.ScriptContext context, string expr, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static object eval(ServiceStack.Script.ScriptContext context, System.ReadOnlySpan expr, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static object eval(ServiceStack.Script.ScriptContext context, ServiceStack.Script.JsToken token, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static object evalCached(ServiceStack.Script.ScriptContext context, string expr) => throw null; - public static ServiceStack.Script.JsToken expression(string js) => throw null; - public static ServiceStack.Script.JsToken expressionCached(ServiceStack.Script.ScriptContext context, string expr) => throw null; - public static ServiceStack.Script.SharpPage scriptCached(ServiceStack.Script.ScriptContext context, string evalCode) => throw null; - } - - // Generated from `ServiceStack.JSON` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JSON - { - public static object parse(string json) => throw null; - public static object parseSpan(System.ReadOnlySpan json) => throw null; - public static string stringify(object value) => throw null; - } - - // Generated from `ServiceStack.MetaAuthProvider` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetaAuthProvider : ServiceStack.IMeta - { - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public MetaAuthProvider() => throw null; - public string Name { get => throw null; set => throw null; } - public ServiceStack.NavItem NavItem { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataAttribute` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataAttribute - { - public System.Collections.Generic.List Args { get => throw null; set => throw null; } - public System.Attribute Attribute { get => throw null; set => throw null; } - public System.Collections.Generic.List ConstructorArgs { get => throw null; set => throw null; } - public MetadataAttribute() => throw null; - public string Name { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataDataContract` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataDataContract - { - public MetadataDataContract() => throw null; - public string Name { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataDataMember` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataDataMember - { - public bool? EmitDefaultValue { get => throw null; set => throw null; } - public bool? IsRequired { get => throw null; set => throw null; } - public MetadataDataMember() => throw null; - public string Name { get => throw null; set => throw null; } - public int? Order { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataOperationType` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataOperationType - { - public System.Collections.Generic.List Actions { get => throw null; set => throw null; } - public ServiceStack.MetadataTypeName DataModel { get => throw null; set => throw null; } - public MetadataOperationType() => throw null; - public ServiceStack.MetadataType Request { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiresAnyPermission { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiresAnyRole { get => throw null; set => throw null; } - public bool RequiresAuth { get => throw null; set => throw null; } - public ServiceStack.MetadataType Response { get => throw null; set => throw null; } - public ServiceStack.MetadataTypeName ReturnType { get => throw null; set => throw null; } - public bool ReturnsVoid { get => throw null; set => throw null; } - public System.Collections.Generic.List Routes { get => throw null; set => throw null; } - public System.Collections.Generic.List Tags { get => throw null; set => throw null; } - public ServiceStack.MetadataTypeName ViewModel { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataPropertyType` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataPropertyType - { - public int? AllowableMax { get => throw null; set => throw null; } - public int? AllowableMin { get => throw null; set => throw null; } - public string[] AllowableValues { get => throw null; set => throw null; } - public System.Collections.Generic.List Attributes { get => throw null; set => throw null; } - public ServiceStack.MetadataDataMember DataMember { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public string DisplayType { get => throw null; set => throw null; } - public string[] GenericArgs { get => throw null; set => throw null; } - public bool? IsEnum { get => throw null; set => throw null; } - public bool? IsPrimaryKey { get => throw null; set => throw null; } - public bool? IsRequired { get => throw null; set => throw null; } - public bool? IsSystemType { get => throw null; set => throw null; } - public bool? IsValueType { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public MetadataPropertyType() => throw null; - public string Name { get => throw null; set => throw null; } - public string ParamType { get => throw null; set => throw null; } - public System.Reflection.PropertyInfo PropertyInfo { get => throw null; set => throw null; } - public System.Type PropertyType { get => throw null; set => throw null; } - public bool? ReadOnly { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - public string TypeNamespace { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataRoute` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataRoute - { - public MetadataRoute() => throw null; - public string Notes { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public ServiceStack.RouteAttribute RouteAttribute { get => throw null; set => throw null; } - public string Summary { get => throw null; set => throw null; } - public string Verbs { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataType` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataType : ServiceStack.IMeta - { - public System.Collections.Generic.List Attributes { get => throw null; set => throw null; } - public ServiceStack.MetadataDataContract DataContract { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public string DisplayType { get => throw null; set => throw null; } - public System.Collections.Generic.List EnumDescriptions { get => throw null; set => throw null; } - public System.Collections.Generic.List EnumMemberValues { get => throw null; set => throw null; } - public System.Collections.Generic.List EnumNames { get => throw null; set => throw null; } - public System.Collections.Generic.List EnumValues { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.MetadataType other) => throw null; - public string[] GenericArgs { get => throw null; set => throw null; } - public string GetFullName() => throw null; - public override int GetHashCode() => throw null; - public ServiceStack.MetadataTypeName[] Implements { get => throw null; set => throw null; } - public ServiceStack.MetadataTypeName Inherits { get => throw null; set => throw null; } - public System.Collections.Generic.List InnerTypes { get => throw null; set => throw null; } - public bool? IsAbstract { get => throw null; set => throw null; } - public bool IsClass { get => throw null; } - public bool? IsEnum { get => throw null; set => throw null; } - public bool? IsEnumInt { get => throw null; set => throw null; } - public bool? IsInterface { get => throw null; set => throw null; } - public bool? IsNested { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public MetadataType() => throw null; - public string Name { get => throw null; set => throw null; } - public string Namespace { get => throw null; set => throw null; } - public System.Collections.Generic.List Properties { get => throw null; set => throw null; } - public ServiceStack.MetadataOperationType RequestType { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataTypeExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MetadataTypeExtensions - { - public static System.Collections.Generic.List GetOperationsByTags(this ServiceStack.MetadataTypes types, string[] tags) => throw null; - public static System.Collections.Generic.List GetRoutes(this System.Collections.Generic.List operations, string typeName) => throw null; - public static System.Collections.Generic.List GetRoutes(this System.Collections.Generic.List operations, ServiceStack.MetadataType type) => throw null; - public static bool ImplementsAny(this ServiceStack.MetadataType type, params string[] typeNames) => throw null; - public static bool InheritsAny(this ServiceStack.MetadataType type, params string[] typeNames) => throw null; - public static bool IsSystemOrServiceStackType(this ServiceStack.MetadataTypeName metaRef) => throw null; - public static bool ReferencesAny(this ServiceStack.MetadataOperationType op, params string[] typeNames) => throw null; - public static string ToScriptSignature(this ServiceStack.ScriptMethodType method) => throw null; - } - - // Generated from `ServiceStack.MetadataTypeName` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataTypeName - { - public string[] GenericArgs { get => throw null; set => throw null; } - public MetadataTypeName() => throw null; - public string Name { 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; } - } - - // Generated from `ServiceStack.MetadataTypes` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataTypes - { - public ServiceStack.MetadataTypesConfig Config { get => throw null; set => throw null; } - public MetadataTypes() => throw null; - public System.Collections.Generic.List Namespaces { get => throw null; set => throw null; } - public System.Collections.Generic.List Operations { get => throw null; set => throw null; } - public System.Collections.Generic.List Types { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataTypesConfig` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataTypesConfig - { - public bool AddDataContractAttributes { get => throw null; set => throw null; } - public string AddDefaultXmlNamespace { get => throw null; set => throw null; } - public bool AddDescriptionAsComments { get => throw null; set => throw null; } - public bool AddGeneratedCodeAttributes { get => throw null; set => throw null; } - public int? AddImplicitVersion { get => throw null; set => throw null; } - public bool AddIndexesToDataMembers { get => throw null; set => throw null; } - public bool AddModelExtensions { get => throw null; set => throw null; } - public System.Collections.Generic.List AddNamespaces { get => throw null; set => throw null; } - public bool AddPropertyAccessors { get => throw null; set => throw null; } - public bool AddResponseStatus { get => throw null; set => throw null; } - public bool AddReturnMarker { get => throw null; set => throw null; } - public bool AddServiceStackTypes { get => throw null; set => throw null; } - public string BaseClass { get => throw null; set => throw null; } - public string BaseUrl { get => throw null; set => throw null; } - public System.Collections.Generic.List DefaultImports { get => throw null; set => throw null; } - public System.Collections.Generic.List DefaultNamespaces { get => throw null; set => throw null; } - public bool ExcludeGenericBaseTypes { get => throw null; set => throw null; } - public bool ExcludeImplementedInterfaces { get => throw null; set => throw null; } - public bool ExcludeNamespace { get => throw null; set => throw null; } - public System.Collections.Generic.List ExcludeTypes { get => throw null; set => throw null; } - public bool ExportAsTypes { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet ExportAttributes { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet ExportTypes { get => throw null; set => throw null; } - public bool ExportValueTypes { get => throw null; set => throw null; } - public string GlobalNamespace { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet IgnoreTypes { get => throw null; set => throw null; } - public System.Collections.Generic.List IgnoreTypesInNamespaces { get => throw null; set => throw null; } - public System.Collections.Generic.List IncludeTypes { get => throw null; set => throw null; } - public bool InitializeCollections { get => throw null; set => throw null; } - public bool MakeDataContractsExtensible { get => throw null; set => throw null; } - public bool MakeInternal { get => throw null; set => throw null; } - public bool MakePartial { get => throw null; set => throw null; } - public bool MakePropertiesOptional { get => throw null; set => throw null; } - public bool MakeVirtual { get => throw null; set => throw null; } - public MetadataTypesConfig(string baseUrl = default(string), bool makePartial = default(bool), bool makeVirtual = default(bool), bool addReturnMarker = default(bool), bool convertDescriptionToComments = default(bool), bool addDataContractAttributes = default(bool), bool addIndexesToDataMembers = default(bool), bool addGeneratedCodeAttributes = default(bool), string addDefaultXmlNamespace = default(string), string baseClass = default(string), string package = default(string), bool addResponseStatus = default(bool), bool addServiceStackTypes = default(bool), bool addModelExtensions = default(bool), bool addPropertyAccessors = default(bool), bool excludeGenericBaseTypes = default(bool), bool settersReturnThis = default(bool), bool makePropertiesOptional = default(bool), bool makeDataContractsExtensible = default(bool), bool initializeCollections = default(bool), int? addImplicitVersion = default(int?)) => throw null; - public string Package { get => throw null; set => throw null; } - public bool SettersReturnThis { get => throw null; set => throw null; } - public System.Collections.Generic.List TreatTypesAsStrings { get => throw null; set => throw null; } - public string UsePath { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MethodInvoker` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object MethodInvoker(object instance, params object[] args); - - // Generated from `ServiceStack.ModelConfig<>` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ModelConfig - { - public static void Id(ServiceStack.GetMemberDelegate getIdFn) => throw null; - public ModelConfig() => throw null; - } - - // Generated from `ServiceStack.NavButtonGroupDefaults` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class NavButtonGroupDefaults - { - public static ServiceStack.NavOptions Create() => throw null; - public static ServiceStack.NavOptions ForNavButtonGroup(this ServiceStack.NavOptions options) => throw null; - public static string NavClass { get => throw null; set => throw null; } - public static string NavItemClass { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.NavDefaults` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class NavDefaults - { - public static string ChildNavItemClass { get => throw null; set => throw null; } - public static string ChildNavLinkClass { get => throw null; set => throw null; } - public static string ChildNavMenuClass { get => throw null; set => throw null; } - public static string ChildNavMenuItemClass { get => throw null; set => throw null; } - public static ServiceStack.NavOptions Create() => throw null; - public static ServiceStack.NavOptions ForNav(this ServiceStack.NavOptions options) => throw null; - public static string NavClass { get => throw null; set => throw null; } - public static string NavItemClass { get => throw null; set => throw null; } - public static string NavLinkClass { get => throw null; set => throw null; } - public static ServiceStack.NavOptions OverrideDefaults(ServiceStack.NavOptions targets, ServiceStack.NavOptions source) => throw null; - } - - // Generated from `ServiceStack.NavLinkDefaults` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class NavLinkDefaults - { - public static ServiceStack.NavOptions ForNavLink(this ServiceStack.NavOptions options) => throw null; - } - - // Generated from `ServiceStack.NavOptions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NavOptions - { - public string ActivePath { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet Attributes { get => throw null; set => throw null; } - public string BaseHref { get => throw null; set => throw null; } - public string ChildNavItemClass { get => throw null; set => throw null; } - public string ChildNavLinkClass { get => throw null; set => throw null; } - public string ChildNavMenuClass { get => throw null; set => throw null; } - public string ChildNavMenuItemClass { get => throw null; set => throw null; } - public string NavClass { get => throw null; set => throw null; } - public string NavItemClass { get => throw null; set => throw null; } - public string NavLinkClass { get => throw null; set => throw null; } - public NavOptions() => throw null; - } - - // Generated from `ServiceStack.NavbarDefaults` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class NavbarDefaults - { - public static ServiceStack.NavOptions Create() => throw null; - public static ServiceStack.NavOptions ForNavbar(this ServiceStack.NavOptions options) => throw null; - public static string NavClass { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.NetCoreExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class NetCoreExtensions - { - public static void Close(this System.Net.Sockets.Socket socket) => throw null; - public static void Close(this System.Data.Common.DbDataReader reader) => throw null; - } - - // Generated from `ServiceStack.ObjectActivator` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ObjectActivator(params object[] args); - - // Generated from `ServiceStack.PerfUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class PerfUtils - { - public static double Measure(System.Action fn, int times = default(int), int runForMs = default(int), System.Action setup = default(System.Action), System.Action warmup = default(System.Action), System.Action teardown = default(System.Action)) => throw null; - public static double MeasureFor(System.Action fn, int runForMs) => throw null; - public static System.TimeSpan ToTimeSpan(this System.Int64 fromTicks) => throw null; - } - - // Generated from `ServiceStack.PluginInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PluginInfo : ServiceStack.IMeta - { - public ServiceStack.AdminUsersInfo AdminUsers { get => throw null; set => throw null; } - public ServiceStack.AuthInfo Auth { get => throw null; set => throw null; } - public ServiceStack.AutoQueryInfo AutoQuery { get => throw null; set => throw null; } - public System.Collections.Generic.List Loaded { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public PluginInfo() => throw null; - public ServiceStack.RequestLogsInfo RequestLogs { get => throw null; set => throw null; } - public ServiceStack.SharpPagesInfo SharpPages { get => throw null; set => throw null; } - public ServiceStack.ValidationInfo Validation { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ProcessResult` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProcessResult - { - public System.Int64? CallbackDurationMs { get => throw null; set => throw null; } - public System.Int64 DurationMs { get => throw null; set => throw null; } - public System.DateTime EndAt { get => throw null; set => throw null; } - public int? ExitCode { get => throw null; set => throw null; } - public ProcessResult() => throw null; - public System.DateTime StartAt { get => throw null; set => throw null; } - public string StdErr { get => throw null; set => throw null; } - public string StdOut { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ProcessUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ProcessUtils - { - public static System.Diagnostics.ProcessStartInfo ConvertToCmdExec(this System.Diagnostics.ProcessStartInfo startInfo) => throw null; - public static ServiceStack.ProcessResult CreateErrorResult(System.Exception e) => throw null; - public static string FindExePath(string exeName) => throw null; - public static string Run(string fileName, string arguments = default(string), string workingDir = default(string)) => throw null; - public static System.Threading.Tasks.Task RunAsync(System.Diagnostics.ProcessStartInfo startInfo, int? timeoutMs = default(int?), System.Action onOut = default(System.Action), System.Action onError = default(System.Action)) => throw null; - public static string RunShell(string arguments, string workingDir = default(string)) => throw null; - } - - // Generated from `ServiceStack.RequestExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static partial class RequestExtensions - { - public static System.Collections.Generic.Dictionary GetRequestParams(this ServiceStack.Web.IRequest request) => throw null; - } - - // Generated from `ServiceStack.RequestLogsInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestLogsInfo : ServiceStack.IMeta - { - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string RequestLogger { get => throw null; set => throw null; } - public RequestLogsInfo() => throw null; - public string[] RequiredRoles { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ScriptMethodType` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptMethodType - { - public string Name { get => throw null; set => throw null; } - public string[] ParamNames { get => throw null; set => throw null; } - public string[] ParamTypes { get => throw null; set => throw null; } - public string ReturnType { get => throw null; set => throw null; } - public ScriptMethodType() => throw null; - } - - // Generated from `ServiceStack.SharpPagesExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SharpPagesExtensions - { - public static System.Threading.Tasks.Task RenderToStringAsync(this ServiceStack.Web.IStreamWriterAsync writer) => throw null; - } - - // Generated from `ServiceStack.SharpPagesInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SharpPagesInfo : ServiceStack.IMeta - { - public string ApiPath { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public bool? MetadataDebug { get => throw null; set => throw null; } - public string MetadataDebugAdminRole { get => throw null; set => throw null; } - public string ScriptAdminRole { get => throw null; set => throw null; } - public SharpPagesInfo() => throw null; - public bool? SpaFallback { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.SimpleAppSettings` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SimpleAppSettings : ServiceStack.Configuration.IAppSettings - { - public bool Exists(string key) => throw null; - public T Get(string key, T defaultValue) => throw null; - public T Get(string key) => throw null; - public System.Collections.Generic.Dictionary GetAll() => throw null; - public System.Collections.Generic.List GetAllKeys() => throw null; - public System.Collections.Generic.IDictionary GetDictionary(string key) => throw null; - public System.Collections.Generic.List> GetKeyValuePairs(string key) => throw null; - public System.Collections.Generic.IList GetList(string key) => throw null; - public string GetString(string key) => throw null; - public void Set(string key, T value) => throw null; - public SimpleAppSettings(System.Collections.Generic.Dictionary settings = default(System.Collections.Generic.Dictionary)) => throw null; - } - - // Generated from `ServiceStack.SimpleContainer` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SimpleContainer : ServiceStack.IContainer, ServiceStack.Configuration.IResolver - { - public ServiceStack.IContainer AddSingleton(System.Type type, System.Func factory) => throw null; - public ServiceStack.IContainer AddTransient(System.Type type, System.Func factory) => throw null; - public System.Func CreateFactory(System.Type type) => throw null; - public void Dispose() => throw null; - public bool Exists(System.Type type) => throw null; - protected System.Collections.Concurrent.ConcurrentDictionary> Factory; - public System.Collections.Generic.HashSet IgnoreTypesNamed { get => throw null; } - protected virtual bool IncludeProperty(System.Reflection.PropertyInfo pi) => throw null; - protected System.Collections.Concurrent.ConcurrentDictionary InstanceCache; - public object RequiredResolve(System.Type type, System.Type ownerType) => throw null; - public object Resolve(System.Type type) => throw null; - protected virtual System.Reflection.ConstructorInfo ResolveBestConstructor(System.Type type) => throw null; - public SimpleContainer() => throw null; - public T TryResolve() => throw null; - } - - // Generated from `ServiceStack.SiteUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SiteUtils - { - public static System.Threading.Tasks.Task GetAppMetadataAsync(this string baseUrl) => throw null; - public static string ToUrlEncoded(System.Collections.Generic.List args) => throw null; - public static string UrlFromSlug(string slug) => throw null; - public static string UrlToSlug(string url) => throw null; - } - - // Generated from `ServiceStack.StaticActionInvoker` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void StaticActionInvoker(params object[] args); - - // Generated from `ServiceStack.StaticMethodInvoker` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object StaticMethodInvoker(params object[] args); - - // Generated from `ServiceStack.StopExecutionException` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StopExecutionException : System.Exception - { - public StopExecutionException(string message, System.Exception innerException) => throw null; - public StopExecutionException(string message) => throw null; - public StopExecutionException() => throw null; - } - - // Generated from `ServiceStack.StringUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StringUtils - { - public static string ConvertHtmlCodes(this string html) => throw null; - public static System.Collections.Generic.Dictionary EscapedCharMap; - public static System.Collections.Generic.IDictionary HtmlCharacterCodes; - public static string HtmlDecode(this string html) => throw null; - public static string HtmlEncode(this string html) => throw null; - public static string HtmlEncodeLite(this string html) => throw null; - public static System.ReadOnlyMemory ParseArguments(System.ReadOnlyMemory argsString, out System.Collections.Generic.List> args) => throw null; - public static System.Collections.Generic.List ParseCommands(this string commandsString) => throw null; - public static System.Collections.Generic.List ParseCommands(this System.ReadOnlyMemory commandsString, System.Char separator = default(System.Char)) => throw null; - public static ServiceStack.TextNode ParseTypeIntoNodes(this string typeDef) => throw null; - public static string RemoveSuffix(string name, string suffix) => throw null; - public static string ReplaceOutsideOfQuotes(this string str, params string[] replaceStringsPairs) => throw null; - public static string ReplacePairs(string str, string[] replaceStringsPairs) => throw null; - public static string SafeInput(this string text) => throw null; - public static string SnakeCaseToPascalCase(string snakeCase) => throw null; - public static System.Collections.Generic.List SplitGenericArgs(string argList) => throw null; - public static string[] SplitVarNames(string fields) => throw null; - public static string ToChar(this int codePoint) => throw null; - public static string ToEscapedString(this string input) => throw null; - } - - // Generated from `ServiceStack.TaskExt` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TaskExt - { - public static System.Threading.Tasks.Task AsTaskException(this System.Exception ex) => throw null; - public static System.Threading.Tasks.Task AsTaskException(this System.Exception ex) => throw null; - public static System.Threading.Tasks.Task AsTaskResult(this T result) => throw null; - public static System.Threading.Tasks.ValueTask AsValueTask(this System.Threading.Tasks.Task task) => throw null; - public static System.Threading.Tasks.ValueTask AsValueTask(this System.Threading.Tasks.Task task) => throw null; - public static object GetResult(this System.Threading.Tasks.Task task) => throw null; - public static T GetResult(this System.Threading.Tasks.Task task) => throw null; - public static void RunSync(System.Func task) => throw null; - public static TResult RunSync(System.Func> task) => throw null; - } - - // Generated from `ServiceStack.TextDumpOptions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TextDumpOptions - { - public string Caption { get => throw null; set => throw null; } - public string CaptionIfEmpty { get => throw null; set => throw null; } - public ServiceStack.Script.DefaultScripts Defaults { get => throw null; set => throw null; } - public ServiceStack.TextStyle HeaderStyle { get => throw null; set => throw null; } - public bool IncludeRowNumbers { get => throw null; set => throw null; } - public static ServiceStack.TextDumpOptions Parse(System.Collections.Generic.Dictionary options, ServiceStack.Script.DefaultScripts defaults = default(ServiceStack.Script.DefaultScripts)) => throw null; - public TextDumpOptions() => throw null; - } - - // Generated from `ServiceStack.TextNode` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TextNode - { - public System.Collections.Generic.List Children { get => throw null; set => throw null; } - public string Text { get => throw null; set => throw null; } - public TextNode() => throw null; - } - - // Generated from `ServiceStack.TextStyle` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum TextStyle - { - CamelCase, - Humanize, - None, - PascalCase, - SplitCase, - TitleCase, - } - - // Generated from `ServiceStack.TypeExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TypeExtensions - { - public static void AddReferencedTypes(System.Type type, System.Collections.Generic.HashSet refTypes) => throw null; - public static T ConvertFromObject(object value) => throw null; - public static object ConvertToObject(T value) => throw null; - public static System.Linq.Expressions.LambdaExpression CreatePropertyAccessorExpression(System.Type type, System.Reflection.PropertyInfo forProperty) => throw null; - public static ServiceStack.ActionInvoker GetActionInvoker(this System.Reflection.MethodInfo method) => throw null; - public static ServiceStack.ActionInvoker GetActionInvokerToCache(System.Reflection.MethodInfo method) => throw null; - public static ServiceStack.ObjectActivator GetActivator(this System.Reflection.ConstructorInfo ctor) => throw null; - public static ServiceStack.ObjectActivator GetActivatorToCache(System.Reflection.ConstructorInfo ctor) => throw null; - public static ServiceStack.MethodInvoker GetInvoker(this System.Reflection.MethodInfo method) => throw null; - public static System.Delegate GetInvokerDelegate(this System.Reflection.MethodInfo method) => throw null; - public static ServiceStack.MethodInvoker GetInvokerToCache(System.Reflection.MethodInfo method) => throw null; - public static System.Func GetPropertyAccessor(this System.Type type, System.Reflection.PropertyInfo forProperty) => throw null; - public static System.Type[] GetReferencedTypes(this System.Type type) => throw null; - public static ServiceStack.StaticActionInvoker GetStaticActionInvoker(this System.Reflection.MethodInfo method) => throw null; - public static ServiceStack.StaticActionInvoker GetStaticActionInvokerToCache(System.Reflection.MethodInfo method) => throw null; - public static ServiceStack.StaticMethodInvoker GetStaticInvoker(this System.Reflection.MethodInfo method) => throw null; - public static ServiceStack.StaticMethodInvoker GetStaticInvokerToCache(System.Reflection.MethodInfo method) => throw null; - public static bool? IsNotNullable(this System.Reflection.PropertyInfo property) => throw null; - public static bool? IsNotNullable(System.Type memberType, System.Reflection.MemberInfo declaringType, System.Collections.Generic.IEnumerable customAttributes) => throw null; - } - - // Generated from `ServiceStack.UrnId` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UrnId - { - public static string Create(string idFieldValue) => throw null; - public static string Create(string idFieldName, string idFieldValue) => throw null; - public static string Create(object idFieldValue) => throw null; - public static string Create(string objectTypeName, string idFieldValue) => throw null; - public static string Create(System.Type objectType, string idFieldValue) => throw null; - public static string Create(System.Type objectType, string idFieldName, string idFieldValue) => throw null; - public static string CreateWithParts(params string[] keyParts) => throw null; - public static string CreateWithParts(string objectTypeName, params string[] keyParts) => throw null; - public static System.Guid GetGuidId(string urn) => throw null; - public static System.Int64 GetLongId(string urn) => throw null; - public static string GetStringId(string urn) => throw null; - public string IdFieldName { get => throw null; set => throw null; } - public string IdFieldValue { get => throw null; set => throw null; } - public static ServiceStack.UrnId Parse(string urnId) => throw null; - public string TypeName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ValidationInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationInfo : ServiceStack.IMeta - { - public string AccessRole { get => throw null; set => throw null; } - public bool? HasValidationSource { get => throw null; set => throw null; } - public bool? HasValidationSourceAdmin { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List PropertyValidators { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - public System.Collections.Generic.List TypeValidators { get => throw null; set => throw null; } - public ValidationInfo() => throw null; - } - - // Generated from `ServiceStack.View` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class View - { - public static System.Collections.Generic.List GetNavItems(string key) => throw null; - public static void Load(ServiceStack.Configuration.IAppSettings settings) => throw null; - public static System.Collections.Generic.List NavItems { get => throw null; } - public static System.Collections.Generic.Dictionary> NavItemsMap { get => throw null; } - } - - // Generated from `ServiceStack.ViewUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ViewUtils - { - public static string BundleCss(string filterName, ServiceStack.IO.IVirtualPathProvider webVfs, ServiceStack.IO.IVirtualPathProvider contentVfs, ServiceStack.ICompressor cssCompressor, ServiceStack.BundleOptions options) => throw null; - public static string BundleHtml(string filterName, ServiceStack.IO.IVirtualPathProvider webVfs, ServiceStack.IO.IVirtualPathProvider contentVfs, ServiceStack.ICompressor htmlCompressor, ServiceStack.BundleOptions options) => throw null; - public static string BundleJs(string filterName, ServiceStack.IO.IVirtualPathProvider webVfs, ServiceStack.IO.IVirtualPathProvider contentVfs, ServiceStack.ICompressor jsCompressor, ServiceStack.BundleOptions options) => throw null; - public static string CssIncludes(ServiceStack.IO.IVirtualPathProvider vfs, System.Collections.Generic.List cssFiles) => throw null; - public static string DumpTable(this object target, ServiceStack.TextDumpOptions options) => throw null; - public static string DumpTable(this object target) => throw null; - public static string ErrorResponse(ServiceStack.ResponseStatus errorStatus, string fieldName) => throw null; - public static string ErrorResponseExcept(ServiceStack.ResponseStatus errorStatus, string fieldNames) => throw null; - public static string ErrorResponseExcept(ServiceStack.ResponseStatus errorStatus, System.Collections.Generic.ICollection fieldNames) => throw null; - public static string ErrorResponseSummary(ServiceStack.ResponseStatus errorStatus) => throw null; - public static bool FormCheckValue(ServiceStack.Web.IRequest req, string name) => throw null; - public static string FormControl(ServiceStack.Web.IRequest req, System.Collections.Generic.Dictionary args, string tagName, ServiceStack.InputOptions inputOptions) => throw null; - public static string FormQuery(ServiceStack.Web.IRequest req, string name) => throw null; - public static string[] FormQueryValues(ServiceStack.Web.IRequest req, string name) => throw null; - public static string FormValue(ServiceStack.Web.IRequest req, string name, string defaultValue) => throw null; - public static string FormValue(ServiceStack.Web.IRequest req, string name) => throw null; - public static string[] FormValues(ServiceStack.Web.IRequest req, string name) => throw null; - public static System.Collections.Generic.IEnumerable GetBundleFiles(string filterName, ServiceStack.IO.IVirtualPathProvider webVfs, ServiceStack.IO.IVirtualPathProvider contentVfs, System.Collections.Generic.IEnumerable virtualPaths, string assetExt) => throw null; - public static System.Globalization.CultureInfo GetDefaultCulture(this ServiceStack.Script.DefaultScripts defaultScripts) => throw null; - public static string GetDefaultTableClassName(this ServiceStack.Script.DefaultScripts defaultScripts) => throw null; - public static ServiceStack.ResponseStatus GetErrorStatus(ServiceStack.Web.IRequest req) => throw null; - public static System.Collections.Generic.List GetNavItems(string key) => throw null; - public static string GetParam(ServiceStack.Web.IRequest req, string name) => throw null; - public static bool HasErrorStatus(ServiceStack.Web.IRequest req) => throw null; - public static string HtmlDump(object target, ServiceStack.HtmlDumpOptions options) => throw null; - public static string HtmlDump(object target) => throw null; - public static string HtmlHiddenInputs(System.Collections.Generic.IEnumerable> inputValues) => throw null; - public static bool IsNull(object test) => throw null; - public static string JsIncludes(ServiceStack.IO.IVirtualPathProvider vfs, System.Collections.Generic.List jsFiles) => throw null; - public static void Load(ServiceStack.Configuration.IAppSettings settings) => throw null; - public static string Nav(System.Collections.Generic.List navItems, ServiceStack.NavOptions options) => throw null; - public static string NavButtonGroup(System.Collections.Generic.List navItems, ServiceStack.NavOptions options) => throw null; - public static string NavButtonGroup(ServiceStack.NavItem navItem, ServiceStack.NavOptions options) => throw null; - public static System.Collections.Generic.List NavItems { get => throw null; } - public static string NavItemsKey { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary> NavItemsMap { get => throw null; } - public static string NavItemsMapKey { get => throw null; set => throw null; } - public static void NavLink(System.Text.StringBuilder sb, ServiceStack.NavItem navItem, ServiceStack.NavOptions options) => throw null; - public static string NavLink(ServiceStack.NavItem navItem, ServiceStack.NavOptions options) => throw null; - public static void NavLinkButton(System.Text.StringBuilder sb, ServiceStack.NavItem navItem, ServiceStack.NavOptions options) => throw null; - public static void PrintDumpTable(this object target, ServiceStack.TextDumpOptions options) => throw null; - public static void PrintDumpTable(this object target) => throw null; - public static bool ShowNav(this ServiceStack.NavItem navItem, System.Collections.Generic.HashSet attributes) => throw null; - public static System.Collections.Generic.List SplitStringList(System.Collections.IEnumerable strings) => throw null; - public static string StyleText(string text, ServiceStack.TextStyle textStyle) => throw null; - public static string TextDump(this object target, ServiceStack.TextDumpOptions options) => throw null; - public static string TextDump(this object target) => throw null; - public static System.Collections.Generic.List> ToKeyValues(object values) => throw null; - public static System.Collections.Generic.List ToStringList(System.Collections.IEnumerable strings) => throw null; - public static System.Collections.Generic.IEnumerable ToStrings(string filterName, object arg) => throw null; - public static System.Collections.Generic.List ToVarNames(string fieldNames) => throw null; - public static string ValidationSuccess(string message, System.Collections.Generic.Dictionary divAttrs) => throw null; - public static string ValidationSuccessCssClassNames; - public static string ValidationSummary(ServiceStack.ResponseStatus errorStatus, string exceptFor) => throw null; - public static string ValidationSummary(ServiceStack.ResponseStatus errorStatus, System.Collections.Generic.ICollection exceptFields, System.Collections.Generic.Dictionary divAttrs) => throw null; - public static string ValidationSummaryCssClassNames; - } - - // Generated from `ServiceStack.VirtualFileExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class VirtualFileExtensions - { - public static ServiceStack.IO.IVirtualDirectory[] GetAllRootDirectories(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; - public static System.Byte[] GetBytesContentsAsBytes(this ServiceStack.IO.IVirtualFile file) => throw null; - public static System.ReadOnlyMemory GetBytesContentsAsMemory(this ServiceStack.IO.IVirtualFile file) => throw null; - public static ServiceStack.IO.FileSystemVirtualFiles GetFileSystemVirtualFiles(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; - public static ServiceStack.IO.GistVirtualFiles GetGistVirtualFiles(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; - public static ServiceStack.IO.MemoryVirtualFiles GetMemoryVirtualFiles(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; - public static ServiceStack.IO.ResourceVirtualFiles GetResourceVirtualFiles(this ServiceStack.IO.IVirtualPathProvider vfs) => throw null; - public static System.ReadOnlyMemory GetTextContentsAsMemory(this ServiceStack.IO.IVirtualFile file) => throw null; - public static T GetVirtualFileSource(this ServiceStack.IO.IVirtualPathProvider vfs) where T : class => throw null; - public static bool ShouldSkipPath(this ServiceStack.IO.IVirtualNode node) => throw null; - } - - // Generated from `ServiceStack.VirtualPathUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class VirtualPathUtils - { - public static bool Exists(this ServiceStack.IO.IVirtualNode node) => throw null; - public static ServiceStack.IO.IVirtualFile GetDefaultDocument(this ServiceStack.IO.IVirtualDirectory dir, System.Collections.Generic.List defaultDocuments) => throw null; - public static ServiceStack.IO.IVirtualNode GetVirtualNode(this ServiceStack.IO.IVirtualPathProvider pathProvider, string virtualPath) => throw null; - public static System.Collections.Generic.IEnumerable> GroupByFirstToken(this System.Collections.Generic.IEnumerable resourceNames, System.Char pathSeparator = default(System.Char)) => throw null; - public static bool IsDirectory(this ServiceStack.IO.IVirtualNode node) => throw null; - public static bool IsFile(this ServiceStack.IO.IVirtualNode node) => throw null; - public static System.TimeSpan MaxRetryOnExceptionTimeout { get => throw null; } - public static System.Byte[] ReadAllBytes(this ServiceStack.IO.IVirtualFile file) => throw null; - public static string SafeFileName(string uri) => throw null; - public static System.Collections.Generic.Stack TokenizeResourcePath(this string str, System.Char pathSeparator = default(System.Char)) => throw null; - public static System.Collections.Generic.Stack TokenizeVirtualPath(this string str, string virtualPathSeparator) => throw null; - public static System.Collections.Generic.Stack TokenizeVirtualPath(this string str, ServiceStack.IO.IVirtualPathProvider pathProvider) => throw null; - } - - // Generated from `ServiceStack.Words` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Words - { - public static string Capitalize(string word) => throw null; - public static string Pluralize(string word) => throw null; - public static string Singularize(string word) => throw null; - } - - // Generated from `ServiceStack.XLinqExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class XLinqExtensions - { - public static System.Collections.Generic.IEnumerable AllElements(this System.Xml.Linq.XElement element, string name) => throw null; - public static System.Collections.Generic.IEnumerable AllElements(this System.Collections.Generic.IEnumerable elements, string name) => throw null; - public static System.Xml.Linq.XAttribute AnyAttribute(this System.Xml.Linq.XElement element, string name) => throw null; - public static System.Xml.Linq.XElement AnyElement(this System.Xml.Linq.XElement element, string name) => throw null; - public static System.Xml.Linq.XElement AnyElement(this System.Collections.Generic.IEnumerable elements, string name) => throw null; - public static void AssertElementHasValue(this System.Xml.Linq.XElement element, string name) => throw null; - public static System.Xml.Linq.XElement FirstElement(this System.Xml.Linq.XElement element) => throw null; - public static T GetAttributeValueOrDefault(this System.Xml.Linq.XAttribute attr, string name, System.Func converter) => throw null; - public static bool GetBool(this System.Xml.Linq.XElement el, string name) => throw null; - public static bool GetBoolOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.DateTime GetDateTime(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.DateTime GetDateTimeOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Decimal GetDecimal(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Decimal GetDecimalOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Xml.Linq.XElement GetElement(this System.Xml.Linq.XElement element, string name) => throw null; - public static T GetElementValueOrDefault(this System.Xml.Linq.XElement element, string name, System.Func converter) => throw null; - public static System.Guid GetGuid(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Guid GetGuidOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; - public static int GetInt(this System.Xml.Linq.XElement el, string name) => throw null; - public static int GetIntOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Int64 GetLong(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Int64 GetLongOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; - public static bool? GetNullableBool(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.DateTime? GetNullableDateTime(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Decimal? GetNullableDecimal(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Guid? GetNullableGuid(this System.Xml.Linq.XElement el, string name) => throw null; - public static int? GetNullableInt(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Int64? GetNullableLong(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.TimeSpan? GetNullableTimeSpan(this System.Xml.Linq.XElement el, string name) => throw null; - public static string GetString(this System.Xml.Linq.XElement el, string name) => throw null; - public static string GetStringAttributeOrDefault(this System.Xml.Linq.XElement element, string name) => throw null; - public static System.TimeSpan GetTimeSpan(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.TimeSpan GetTimeSpanOrDefault(this System.Xml.Linq.XElement el, string name) => throw null; - public static System.Collections.Generic.List GetValues(this System.Collections.Generic.IEnumerable els) => throw null; - public static System.Xml.Linq.XElement NextElement(this System.Xml.Linq.XElement element) => throw null; - } - - namespace AsyncEx - { - // Generated from `ServiceStack.AsyncEx.AsyncManualResetEvent` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AsyncManualResetEvent - { - public AsyncManualResetEvent(bool set) => throw null; - public AsyncManualResetEvent() => throw null; - public int Id { get => throw null; } - public bool IsSet { get => throw null; } - public void Reset() => throw null; - public void Set() => throw null; - public void Wait(System.Threading.CancellationToken cancellationToken) => throw null; - public void Wait() => throw null; - public System.Threading.Tasks.Task WaitAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task WaitAsync() => throw null; - } - - // Generated from `ServiceStack.AsyncEx.CancellationTokenTaskSource<>` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CancellationTokenTaskSource : System.IDisposable - { - public CancellationTokenTaskSource(System.Threading.CancellationToken cancellationToken) => throw null; - public void Dispose() => throw null; - public System.Threading.Tasks.Task Task { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AsyncEx.TaskCompletionSourceExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TaskCompletionSourceExtensions - { - public static System.Threading.Tasks.TaskCompletionSource CreateAsyncTaskSource() => throw null; - public static bool TryCompleteFromCompletedTask(this System.Threading.Tasks.TaskCompletionSource @this, System.Threading.Tasks.Task task, System.Func resultFunc) => throw null; - public static bool TryCompleteFromCompletedTask(this System.Threading.Tasks.TaskCompletionSource @this, System.Threading.Tasks.Task task) where TSourceResult : TResult => throw null; - } - - // Generated from `ServiceStack.AsyncEx.TaskExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TaskExtensions - { - public static void WaitAndUnwrapException(this System.Threading.Tasks.Task task, System.Threading.CancellationToken cancellationToken) => throw null; - public static void WaitAndUnwrapException(this System.Threading.Tasks.Task task) => throw null; - public static TResult WaitAndUnwrapException(this System.Threading.Tasks.Task task, System.Threading.CancellationToken cancellationToken) => throw null; - public static TResult WaitAndUnwrapException(this System.Threading.Tasks.Task task) => throw null; - public static System.Threading.Tasks.Task WaitAsync(this System.Threading.Tasks.Task @this, System.Threading.CancellationToken cancellationToken) => throw null; - public static void WaitWithoutException(this System.Threading.Tasks.Task task, System.Threading.CancellationToken cancellationToken) => throw null; - public static void WaitWithoutException(this System.Threading.Tasks.Task task) => throw null; - } - - } - namespace Data - { - // Generated from `ServiceStack.Data.DbConnectionFactory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DbConnectionFactory : ServiceStack.Data.IDbConnectionFactory - { - public System.Data.IDbConnection CreateDbConnection() => throw null; - public DbConnectionFactory(System.Func connectionFactoryFn) => throw null; - public System.Data.IDbConnection OpenDbConnection() => throw null; - } - - // Generated from `ServiceStack.Data.IDbConnectionFactory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDbConnectionFactory - { - System.Data.IDbConnection CreateDbConnection(); - System.Data.IDbConnection OpenDbConnection(); - } - - // Generated from `ServiceStack.Data.IDbConnectionFactoryExtended` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDbConnectionFactoryExtended : ServiceStack.Data.IDbConnectionFactory - { - System.Data.IDbConnection OpenDbConnection(string namedConnection); - System.Data.IDbConnection OpenDbConnectionString(string connectionString, string providerName); - System.Data.IDbConnection OpenDbConnectionString(string connectionString); - } - - // Generated from `ServiceStack.Data.IHasDbCommand` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasDbCommand - { - System.Data.IDbCommand DbCommand { get; } - } - - // Generated from `ServiceStack.Data.IHasDbConnection` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasDbConnection - { - System.Data.IDbConnection DbConnection { get; } - } - - // Generated from `ServiceStack.Data.IHasDbTransaction` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasDbTransaction - { - System.Data.IDbTransaction DbTransaction { get; } - } - - } - namespace Extensions - { - // Generated from `ServiceStack.Extensions.UtilExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class UtilExtensions - { - } - - } - namespace IO - { - // Generated from `ServiceStack.IO.FileSystemVirtualFiles` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FileSystemVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase, ServiceStack.IO.IVirtualPathProvider, ServiceStack.IO.IVirtualFiles - { - public void AppendFile(string filePath, string textContents) => throw null; - public void AppendFile(string filePath, System.IO.Stream stream) => throw null; - public static string AssertDirectory(string dirPath, int timeoutMs = default(int)) => throw null; - public static void DeleteDirectoryRecursive(string path) => throw null; - public void DeleteFile(string filePath) => throw null; - public void DeleteFiles(System.Collections.Generic.IEnumerable filePaths) => throw null; - public void DeleteFolder(string dirPath) => throw null; - public override bool DirectoryExists(string virtualPath) => throw null; - public string EnsureDirectory(string dirPath) => throw null; - public override bool FileExists(string virtualPath) => throw null; - public FileSystemVirtualFiles(string rootDirectoryPath) => throw null; - public FileSystemVirtualFiles(System.IO.DirectoryInfo rootDirInfo) => throw null; - protected override void Initialize() => throw null; - public override string RealPathSeparator { get => throw null; } - protected ServiceStack.VirtualPath.FileSystemVirtualDirectory RootDir; - protected System.IO.DirectoryInfo RootDirInfo; - public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } - public override string VirtualPathSeparator { get => throw null; } - public void WriteFile(string filePath, string textContents) => throw null; - public void WriteFile(string filePath, System.IO.Stream stream) => throw null; - public void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)) => throw null; - } - - // Generated from `ServiceStack.IO.GistVirtualDirectory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GistVirtualDirectory : ServiceStack.VirtualPath.AbstractVirtualDirectoryBase - { - public void AddFile(string virtualPath, string contents) => throw null; - public void AddFile(string virtualPath, System.IO.Stream stream) => throw null; - public System.DateTime DirLastModified { get => throw null; set => throw null; } - public string DirPath { get => throw null; set => throw null; } - public override System.Collections.Generic.IEnumerable Directories { get => throw null; } - public System.Collections.Generic.IEnumerable EnumerateFiles(string pattern) => throw null; - public override System.Collections.Generic.IEnumerable Files { get => throw null; } - public ServiceStack.IGistGateway Gateway { get => throw null; } - public override System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; - protected override ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName) => throw null; - public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - protected override ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName) => throw null; - protected override System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern) => throw null; - public string GistId { get => throw null; } - public GistVirtualDirectory(ServiceStack.IO.GistVirtualFiles pathProvider, string dirPath, ServiceStack.IO.GistVirtualDirectory parentDir) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; - public override System.DateTime LastModified { get => throw null; } - public override string Name { get => throw null; } - public override string VirtualPath { get => throw null; } - } - - // Generated from `ServiceStack.IO.GistVirtualFile` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GistVirtualFile : ServiceStack.VirtualPath.AbstractVirtualFileBase - { - public ServiceStack.IGistGateway Client { get => throw null; } - public System.Int64 ContentLength { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public string DirPath { get => throw null; } - public override string Extension { get => throw null; } - public System.DateTime FileLastModified { get => throw null; set => throw null; } - public string FilePath { get => throw null; set => throw null; } - public override object GetContents() => throw null; - public string GistId { get => throw null; } - public GistVirtualFile(ServiceStack.IO.GistVirtualFiles pathProvider, ServiceStack.IO.IVirtualDirectory directory) : base(default(ServiceStack.IO.IVirtualPathProvider), default(ServiceStack.IO.IVirtualDirectory)) => throw null; - public ServiceStack.IO.GistVirtualFile Init(string filePath, System.DateTime lastModified, string text, System.IO.MemoryStream stream) => throw null; - public override System.DateTime LastModified { get => throw null; } - public override System.Int64 Length { get => throw null; } - public override string Name { get => throw null; } - public override System.IO.Stream OpenRead() => throw null; - public override void Refresh() => throw null; - public System.IO.Stream Stream { get => throw null; set => throw null; } - public string Text { get => throw null; set => throw null; } - public override string VirtualPath { get => throw null; } - } - - // Generated from `ServiceStack.IO.GistVirtualFiles` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GistVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase, ServiceStack.IO.IVirtualPathProvider, ServiceStack.IO.IVirtualFiles - { - public void AppendFile(string filePath, string textContents) => throw null; - public void AppendFile(string filePath, System.IO.Stream stream) => throw null; - public const string Base64Modifier = default; - public void ClearGist() => throw null; - public void DeleteFile(string filePath) => throw null; - public void DeleteFiles(System.Collections.Generic.IEnumerable virtualFilePaths) => throw null; - public void DeleteFolder(string dirPath) => throw null; - public const System.Char DirSep = default; - public override bool DirectoryExists(string virtualPath) => throw null; - public System.Collections.Generic.IEnumerable EnumerateFiles(string prefix = default(string)) => throw null; - public override bool FileExists(string virtualPath) => throw null; - public ServiceStack.IGistGateway Gateway { get => throw null; } - public override System.Collections.Generic.IEnumerable GetAllFiles() => throw null; - public string GetDirPath(string filePath) => throw null; - public override ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; - public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - public static string GetFileName(string filePath) => throw null; - public ServiceStack.Gist GetGist(bool refresh = default(bool)) => throw null; - public System.Threading.Tasks.Task GetGistAsync(bool refresh = default(bool)) => throw null; - public static bool GetGistContents(string filePath, ServiceStack.Gist gist, out string text, out System.IO.MemoryStream stream) => throw null; - public static bool GetGistTextContents(string filePath, ServiceStack.Gist gist, out string text) => throw null; - public System.Collections.Generic.IEnumerable GetImmediateDirectories(string fromDirPath) => throw null; - public System.Collections.Generic.IEnumerable GetImmediateFiles(string fromDirPath) => throw null; - public string GetImmediateSubDirPath(string fromDirPath, string subDirPath) => throw null; - public string GistId { get => throw null; set => throw null; } - public GistVirtualFiles(string gistId, string accessToken) => throw null; - public GistVirtualFiles(string gistId, ServiceStack.IGistGateway gateway) => throw null; - public GistVirtualFiles(string gistId) => throw null; - public GistVirtualFiles(ServiceStack.Gist gist, string accessToken) => throw null; - public GistVirtualFiles(ServiceStack.Gist gist, ServiceStack.IGistGateway gateway) => throw null; - public GistVirtualFiles(ServiceStack.Gist gist) => throw null; - protected override void Initialize() => throw null; - public static bool IsDirSep(System.Char c) => throw null; - public System.DateTime LastRefresh { get => throw null; set => throw null; } - public System.Threading.Tasks.Task LoadAllTruncatedFilesAsync() => throw null; - public override string RealPathSeparator { get => throw null; } - public System.TimeSpan RefreshAfter { get => throw null; set => throw null; } - public string ResolveGistFileName(string filePath) => throw null; - public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } - public override string SanitizePath(string filePath) => throw null; - public static string ToBase64(System.IO.Stream stream) => throw null; - public static string ToBase64(System.Byte[] bytes) => throw null; - public override string VirtualPathSeparator { get => throw null; } - public void WriteFile(string virtualPath, string contents) => throw null; - public void WriteFile(string virtualPath, System.IO.Stream stream) => throw null; - public void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)) => throw null; - public override void WriteFiles(System.Collections.Generic.Dictionary textFiles) => throw null; - public override void WriteFiles(System.Collections.Generic.Dictionary files) => throw null; - } - - // Generated from `ServiceStack.IO.InMemoryVirtualDirectory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryVirtualDirectory : ServiceStack.VirtualPath.AbstractVirtualDirectoryBase - { - public void AddFile(string filePath, string contents) => throw null; - public void AddFile(string filePath, System.IO.Stream stream) => throw null; - public System.DateTime DirLastModified { get => throw null; set => throw null; } - public string DirPath { get => throw null; set => throw null; } - public override System.Collections.Generic.IEnumerable Directories { get => throw null; } - public System.Collections.Generic.IEnumerable EnumerateFiles(string pattern) => throw null; - public override System.Collections.Generic.IEnumerable Files { get => throw null; } - public override System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; - protected override ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName) => throw null; - public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - protected override ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName) => throw null; - protected override System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern) => throw null; - public bool HasFiles() => throw null; - public InMemoryVirtualDirectory(ServiceStack.IO.MemoryVirtualFiles pathProvider, string dirPath, ServiceStack.IO.IVirtualDirectory parentDir = default(ServiceStack.IO.IVirtualDirectory)) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; - public override System.DateTime LastModified { get => throw null; } - public override string Name { get => throw null; } - public override string VirtualPath { get => throw null; } - } - - // Generated from `ServiceStack.IO.InMemoryVirtualFile` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryVirtualFile : ServiceStack.VirtualPath.AbstractVirtualFileBase - { - public System.Byte[] ByteContents { get => throw null; set => throw null; } - public string DirPath { get => throw null; } - public System.DateTime FileLastModified { get => throw null; set => throw null; } - public string FilePath { get => throw null; set => throw null; } - public override object GetContents() => throw null; - public InMemoryVirtualFile(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory directory) : base(default(ServiceStack.IO.IVirtualPathProvider), default(ServiceStack.IO.IVirtualDirectory)) => throw null; - public override System.DateTime LastModified { get => throw null; } - public override System.Int64 Length { get => throw null; } - public override string Name { get => throw null; } - public override System.IO.Stream OpenRead() => throw null; - public override void Refresh() => throw null; - public void SetContents(string text, System.Byte[] bytes) => throw null; - public string TextContents { get => throw null; set => throw null; } - public override string VirtualPath { get => throw null; } - } - - // Generated from `ServiceStack.IO.MemoryVirtualFiles` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MemoryVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase, ServiceStack.IO.IVirtualPathProvider, ServiceStack.IO.IVirtualFiles - { - public void AddFile(ServiceStack.IO.InMemoryVirtualFile file) => throw null; - public void AppendFile(string filePath, string textContents) => throw null; - public void AppendFile(string filePath, System.IO.Stream stream) => throw null; - public void Clear() => throw null; - public void DeleteFile(string filePath) => throw null; - public void DeleteFiles(System.Collections.Generic.IEnumerable filePaths) => throw null; - public void DeleteFolder(string dirPath) => throw null; - public const System.Char DirSep = default; - public override bool DirectoryExists(string virtualPath) => throw null; - public System.Collections.Generic.List Files { get => throw null; } - public override System.Collections.Generic.IEnumerable GetAllFiles() => throw null; - public string GetDirPath(string filePath) => throw null; - public override ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; - public ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath, bool forceDir) => throw null; - public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - public System.Collections.Generic.IEnumerable GetImmediateDirectories(string fromDirPath) => throw null; - public System.Collections.Generic.IEnumerable GetImmediateFiles(string fromDirPath) => throw null; - public string GetImmediateSubDirPath(string fromDirPath, string subDirPath) => throw null; - public ServiceStack.IO.IVirtualDirectory GetParentDirectory(string dirPath) => throw null; - protected override void Initialize() => throw null; - public MemoryVirtualFiles() => throw null; - public override string RealPathSeparator { get => throw null; } - public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } - public override string VirtualPathSeparator { get => throw null; } - public void WriteFile(string filePath, string textContents) => throw null; - public void WriteFile(string filePath, System.IO.Stream stream) => throw null; - public void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)) => throw null; - } - - // Generated from `ServiceStack.IO.MultiVirtualDirectory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MultiVirtualDirectory : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, ServiceStack.IO.IVirtualNode, ServiceStack.IO.IVirtualDirectory - { - public System.Collections.Generic.IEnumerable Directories { get => throw null; } - public ServiceStack.IO.IVirtualDirectory Directory { get => throw null; } - public System.Collections.Generic.IEnumerable Files { get => throw null; } - public System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; - public ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; - public ServiceStack.IO.IVirtualDirectory GetDirectory(System.Collections.Generic.Stack virtualPath) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - public ServiceStack.IO.IVirtualFile GetFile(System.Collections.Generic.Stack virtualPath) => throw null; - public bool IsDirectory { get => throw null; } - public bool IsRoot { get => throw null; } - public System.DateTime LastModified { get => throw null; } - public MultiVirtualDirectory(ServiceStack.IO.IVirtualDirectory[] dirs) => throw null; - public string Name { get => throw null; } - public ServiceStack.IO.IVirtualDirectory ParentDirectory { get => throw null; } - public string RealPath { get => throw null; } - public static ServiceStack.IO.IVirtualDirectory ToVirtualDirectory(System.Collections.Generic.IEnumerable dirs) => throw null; - public string VirtualPath { get => throw null; } - } - - // Generated from `ServiceStack.IO.MultiVirtualFiles` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MultiVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase, ServiceStack.IO.IVirtualPathProvider, ServiceStack.IO.IVirtualFiles - { - public void AppendFile(string filePath, string textContents) => throw null; - public void AppendFile(string filePath, System.IO.Stream stream) => throw null; - public System.Collections.Generic.List ChildProviders { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable ChildVirtualFiles { get => throw null; } - public override string CombineVirtualPath(string basePath, string relativePath) => throw null; - public void DeleteFile(string filePath) => throw null; - public void DeleteFiles(System.Collections.Generic.IEnumerable filePaths) => throw null; - public void DeleteFolder(string dirPath) => throw null; - public override bool DirectoryExists(string virtualPath) => throw null; - public override bool FileExists(string virtualPath) => throw null; - public override System.Collections.Generic.IEnumerable GetAllFiles() => throw null; - public override System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; - public override ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; - public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - public override System.Collections.Generic.IEnumerable GetRootDirectories() => throw null; - public override System.Collections.Generic.IEnumerable GetRootFiles() => throw null; - protected override void Initialize() => throw null; - public override bool IsSharedFile(ServiceStack.IO.IVirtualFile virtualFile) => throw null; - public override bool IsViewFile(ServiceStack.IO.IVirtualFile virtualFile) => throw null; - public MultiVirtualFiles(params ServiceStack.IO.IVirtualPathProvider[] childProviders) => throw null; - public override string RealPathSeparator { get => throw null; } - public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } - public override string ToString() => throw null; - public override string VirtualPathSeparator { get => throw null; } - public void WriteFile(string filePath, string textContents) => throw null; - public void WriteFile(string filePath, System.IO.Stream stream) => throw null; - public void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)) => throw null; - } - - // Generated from `ServiceStack.IO.ResourceVirtualFiles` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ResourceVirtualFiles : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase - { - protected System.Reflection.Assembly BackingAssembly; - public string CleanPath(string filePath) => throw null; - public override string CombineVirtualPath(string basePath, string relativePath) => throw null; - public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - protected override void Initialize() => throw null; - public System.DateTime LastModified { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet PartialFileNames { get => throw null; set => throw null; } - public override string RealPathSeparator { get => throw null; } - public ResourceVirtualFiles(System.Type baseTypeInAssembly) => throw null; - public ResourceVirtualFiles(System.Reflection.Assembly backingAssembly, string rootNamespace = default(string)) => throw null; - protected ServiceStack.VirtualPath.ResourceVirtualDirectory RootDir; - public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } - protected string RootNamespace; - public override string VirtualPathSeparator { get => throw null; } - } - - // Generated from `ServiceStack.IO.VirtualDirectoryExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class VirtualDirectoryExtensions - { - public static System.Collections.Generic.IEnumerable GetAllFiles(this ServiceStack.IO.IVirtualDirectory dir) => throw null; - public static System.Collections.Generic.IEnumerable GetDirectories(this ServiceStack.IO.IVirtualDirectory dir) => throw null; - public static System.Collections.Generic.IEnumerable GetFiles(this ServiceStack.IO.IVirtualDirectory dir) => throw null; - } - - // Generated from `ServiceStack.IO.VirtualFilesExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class VirtualFilesExtensions - { - public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, string textContents) => throw null; - public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, object contents) => throw null; - public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.ReadOnlyMemory text) => throw null; - public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.ReadOnlyMemory bytes) => throw null; - public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.IO.Stream stream) => throw null; - public static void AppendFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.Byte[] bytes) => throw null; - public static void CopyFrom(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.IEnumerable srcFiles, System.Func toPath = default(System.Func)) => throw null; - public static void DeleteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath) => throw null; - public static void DeleteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, ServiceStack.IO.IVirtualFile file) => throw null; - public static void DeleteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.IEnumerable filePaths) => throw null; - public static void DeleteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.IEnumerable files) => throw null; - public static void DeleteFolder(this ServiceStack.IO.IVirtualPathProvider pathProvider, string dirPath) => throw null; - public static bool IsDirectory(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath) => throw null; - public static bool IsFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath) => throw null; - public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, string textContents) => throw null; - public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, object contents) => throw null; - public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.ReadOnlyMemory text) => throw null; - public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.ReadOnlyMemory bytes) => throw null; - public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.IO.Stream stream) => throw null; - public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, string filePath, System.Byte[] bytes) => throw null; - public static void WriteFile(this ServiceStack.IO.IVirtualPathProvider pathProvider, ServiceStack.IO.IVirtualFile file, string filePath = default(string)) => throw null; - public static void WriteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.IEnumerable srcFiles, System.Func toPath = default(System.Func)) => throw null; - public static void WriteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.Dictionary textFiles) => throw null; - public static void WriteFiles(this ServiceStack.IO.IVirtualPathProvider pathProvider, System.Collections.Generic.Dictionary files) => throw null; - } - - } - namespace Logging - { - // Generated from `ServiceStack.Logging.ConsoleLogFactory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConsoleLogFactory : ServiceStack.Logging.ILogFactory - { - public static void Configure(bool debugEnabled = default(bool)) => throw null; - public ConsoleLogFactory(bool debugEnabled = default(bool)) => throw null; - public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; - public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; - } - - // Generated from `ServiceStack.Logging.ConsoleLogger` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConsoleLogger : ServiceStack.Logging.ILog - { - public ConsoleLogger(string type) => throw null; - public ConsoleLogger(System.Type type) => throw null; - 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 FatalFormat(string format, params object[] args) => 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; set => 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 `ServiceStack.Logging.DebugLogFactory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DebugLogFactory : ServiceStack.Logging.ILogFactory - { - public DebugLogFactory(bool debugEnabled = default(bool)) => throw null; - public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; - public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; - } - - // Generated from `ServiceStack.Logging.DebugLogger` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DebugLogger : ServiceStack.Logging.ILog - { - 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 DebugLogger(string type) => throw null; - public DebugLogger(System.Type type) => 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 FatalFormat(string format, params object[] args) => 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; set => 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; - } - - } - namespace MiniProfiler - { - namespace Data - { - // Generated from `ServiceStack.MiniProfiler.Data.ExecuteType` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum ExecuteType - { - NonQuery, - None, - Reader, - Scalar, - } - - // Generated from `ServiceStack.MiniProfiler.Data.IDbProfiler` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDbProfiler - { - void ExecuteFinish(System.Data.Common.DbCommand profiledDbCommand, ServiceStack.MiniProfiler.Data.ExecuteType executeType, System.Data.Common.DbDataReader reader); - void ExecuteStart(System.Data.Common.DbCommand profiledDbCommand, ServiceStack.MiniProfiler.Data.ExecuteType executeType); - bool IsActive { get; } - void OnError(System.Data.Common.DbCommand profiledDbCommand, ServiceStack.MiniProfiler.Data.ExecuteType executeType, System.Exception exception); - void ReaderFinish(System.Data.Common.DbDataReader reader); - } - - // Generated from `ServiceStack.MiniProfiler.Data.ProfiledCommand` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProfiledCommand : System.Data.Common.DbCommand, ServiceStack.Data.IHasDbCommand - { - public override void Cancel() => throw null; - public override string CommandText { get => throw null; set => throw null; } - public override int CommandTimeout { get => throw null; set => throw null; } - public override System.Data.CommandType CommandType { get => throw null; set => throw null; } - protected override System.Data.Common.DbParameter CreateDbParameter() => throw null; - public System.Data.Common.DbCommand DbCommand { get => throw null; set => throw null; } - System.Data.IDbCommand ServiceStack.Data.IHasDbCommand.DbCommand { get => throw null; } - protected override System.Data.Common.DbConnection DbConnection { get => throw null; set => throw null; } - protected override System.Data.Common.DbParameterCollection DbParameterCollection { get => throw null; } - protected ServiceStack.MiniProfiler.Data.IDbProfiler DbProfiler { get => throw null; set => throw null; } - protected override System.Data.Common.DbTransaction DbTransaction { get => throw null; set => throw null; } - public override bool DesignTimeVisible { get => throw null; set => throw null; } - protected override void Dispose(bool disposing) => throw null; - protected override System.Data.Common.DbDataReader ExecuteDbDataReader(System.Data.CommandBehavior behavior) => throw null; - public override int ExecuteNonQuery() => throw null; - public override object ExecuteScalar() => throw null; - public override void Prepare() => throw null; - public ProfiledCommand(System.Data.Common.DbCommand cmd, System.Data.Common.DbConnection conn, ServiceStack.MiniProfiler.Data.IDbProfiler profiler) => throw null; - public override System.Data.UpdateRowSource UpdatedRowSource { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MiniProfiler.Data.ProfiledConnection` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProfiledConnection : System.Data.Common.DbConnection, ServiceStack.Data.IHasDbConnection - { - protected bool AutoDisposeConnection { get => throw null; set => throw null; } - protected override System.Data.Common.DbTransaction BeginDbTransaction(System.Data.IsolationLevel isolationLevel) => throw null; - protected override bool CanRaiseEvents { get => throw null; } - public override void ChangeDatabase(string databaseName) => throw null; - public override void Close() => throw null; - public override string ConnectionString { get => throw null; set => throw null; } - public override int ConnectionTimeout { get => throw null; } - protected override System.Data.Common.DbCommand CreateDbCommand() => throw null; - public override string DataSource { get => throw null; } - public override string Database { get => throw null; } - public System.Data.IDbConnection DbConnection { get => throw null; } - protected override void Dispose(bool disposing) => throw null; - public System.Data.Common.DbConnection InnerConnection { get => throw null; set => throw null; } - public override void Open() => throw null; - public ProfiledConnection(System.Data.IDbConnection connection, ServiceStack.MiniProfiler.Data.IDbProfiler profiler, bool autoDisposeConnection = default(bool)) => throw null; - public ProfiledConnection(System.Data.Common.DbConnection connection, ServiceStack.MiniProfiler.Data.IDbProfiler profiler, bool autoDisposeConnection = default(bool)) => throw null; - public ServiceStack.MiniProfiler.Data.IDbProfiler Profiler { get => throw null; set => throw null; } - public override string ServerVersion { get => throw null; } - public override System.Data.ConnectionState State { get => throw null; } - public System.Data.Common.DbConnection WrappedConnection { get => throw null; } - } - - // Generated from `ServiceStack.MiniProfiler.Data.ProfiledDbDataReader` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProfiledDbDataReader : System.Data.Common.DbDataReader - { - public override void Close() => 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 dataOffset, System.Byte[] buffer, int bufferOffset, int length) => throw null; - public override System.Char GetChar(int ordinal) => throw null; - public override System.Int64 GetChars(int ordinal, System.Int64 dataOffset, System.Char[] buffer, int bufferOffset, 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 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[string name] { get => throw null; } - public override object this[int ordinal] { get => throw null; } - public override bool NextResult() => throw null; - public ProfiledDbDataReader(System.Data.Common.DbDataReader reader, System.Data.Common.DbConnection connection, ServiceStack.MiniProfiler.Data.IDbProfiler profiler) => throw null; - public override bool Read() => throw null; - public override int RecordsAffected { get => throw null; } - } - - // Generated from `ServiceStack.MiniProfiler.Data.ProfiledDbTransaction` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProfiledDbTransaction : System.Data.Common.DbTransaction, ServiceStack.Data.IHasDbTransaction - { - public override void Commit() => throw null; - protected override System.Data.Common.DbConnection DbConnection { get => throw null; } - public System.Data.IDbTransaction DbTransaction { get => throw null; } - protected override void Dispose(bool disposing) => throw null; - public override System.Data.IsolationLevel IsolationLevel { get => throw null; } - public ProfiledDbTransaction(System.Data.Common.DbTransaction transaction, ServiceStack.MiniProfiler.Data.ProfiledConnection connection) => throw null; - public override void Rollback() => throw null; - } - - // Generated from `ServiceStack.MiniProfiler.Data.ProfiledProviderFactory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProfiledProviderFactory : System.Data.Common.DbProviderFactory - { - public override System.Data.Common.DbCommand CreateCommand() => throw null; - public override System.Data.Common.DbConnection CreateConnection() => throw null; - public override System.Data.Common.DbConnectionStringBuilder CreateConnectionStringBuilder() => throw null; - public override System.Data.Common.DbParameter CreateParameter() => throw null; - public void InitProfiledDbProviderFactory(ServiceStack.MiniProfiler.Data.IDbProfiler profiler, System.Data.Common.DbProviderFactory wrappedFactory) => throw null; - public static ServiceStack.MiniProfiler.Data.ProfiledProviderFactory Instance; - public ProfiledProviderFactory(ServiceStack.MiniProfiler.Data.IDbProfiler profiler, System.Data.Common.DbProviderFactory wrappedFactory) => throw null; - protected ProfiledProviderFactory() => throw null; - protected ServiceStack.MiniProfiler.Data.IDbProfiler Profiler { get => throw null; set => throw null; } - protected System.Data.Common.DbProviderFactory WrappedFactory { get => throw null; set => throw null; } - } - - } - } - namespace Reflection - { - // Generated from `ServiceStack.Reflection.DelegateFactory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DelegateFactory - { - public static ServiceStack.Reflection.DelegateFactory.LateBoundMethod Create(System.Reflection.MethodInfo method) => throw null; - public static ServiceStack.Reflection.DelegateFactory.LateBoundVoid CreateVoid(System.Reflection.MethodInfo method) => throw null; - // Generated from `ServiceStack.Reflection.DelegateFactory+LateBoundMethod` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object LateBoundMethod(object target, object[] arguments); - - - // Generated from `ServiceStack.Reflection.DelegateFactory+LateBoundVoid` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void LateBoundVoid(object target, object[] arguments); - - - } - - } - namespace Script - { - // Generated from `ServiceStack.Script.BindingExpressionException` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BindingExpressionException : System.Exception - { - public BindingExpressionException(string message, string member, string expression, System.Exception inner = default(System.Exception)) => throw null; - public string Expression { get => throw null; } - public string Member { get => throw null; } - } - - // Generated from `ServiceStack.Script.CallExpressionUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CallExpressionUtils - { - public static System.ReadOnlySpan ParseJsCallExpression(this System.ReadOnlySpan literal, out ServiceStack.Script.JsCallExpression expression, bool filterExpression = default(bool)) => throw null; - } - - // Generated from `ServiceStack.Script.CaptureScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CaptureScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public CaptureScriptBlock() => throw null; - public override string Name { get => throw null; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.CsvScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public CsvScriptBlock() => throw null; - public override string Name { get => throw null; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken ct) => throw null; - } - - // Generated from `ServiceStack.Script.DefaultScriptBlocks` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultScriptBlocks : ServiceStack.Script.IScriptPlugin - { - public DefaultScriptBlocks() => throw null; - public void Register(ServiceStack.Script.ScriptContext context) => throw null; - } - - // Generated from `ServiceStack.Script.DefaultScripts` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultScripts : ServiceStack.Script.ScriptMethods, ServiceStack.Script.IConfigureScriptContext - { - public bool AND(object lhs, object rhs) => throw null; - public int AssertWithinMaxQuota(int value) => throw null; - public void Configure(ServiceStack.Script.ScriptContext context) => throw null; - public static bool ContainsXss(string text) => throw null; - public DefaultScripts() => throw null; - public static System.Collections.Generic.List EvaluateWhenSkippingFilterExecution; - public static string GetVarNameFromStringOrArrowExpression(string filterName, object argExpr) => throw null; - public static ServiceStack.Script.DefaultScripts Instance; - public bool IsNullOrWhiteSpace(object target) => throw null; - public static bool MatchesStringValue(object target, System.Func match) => throw null; - public bool OR(object lhs, object rhs) => throw null; - public static System.Collections.Generic.List RemoveNewLinesFor { get => throw null; } - public static string TextDump(object target, ServiceStack.TextDumpOptions options) => throw null; - public static string TextList(System.Collections.IEnumerable items, ServiceStack.TextDumpOptions options) => throw null; - public static string[] XssFragments; - public double abs(double value) => throw null; - public double acos(double value) => throw null; - public object add(object lhs, object rhs) => throw null; - public System.DateTime addDays(System.DateTime target, int count) => throw null; - public string addHashParams(string url, object urlParams) => throw null; - public System.DateTime addHours(System.DateTime target, int count) => throw null; - public object addItem(object collection, object value) => throw null; - public System.DateTime addMilliseconds(System.DateTime target, int count) => throw null; - public System.DateTime addMinutes(System.DateTime target, int count) => throw null; - public System.DateTime addMonths(System.DateTime target, int count) => throw null; - public string addPath(string target, string pathToAppend) => throw null; - public string addPaths(string target, System.Collections.IEnumerable pathsToAppend) => throw null; - public string addQueryString(string url, object urlParams) => throw null; - public System.DateTime addSeconds(System.DateTime target, int count) => throw null; - public System.DateTime addTicks(System.DateTime target, int count) => throw null; - public ServiceStack.Script.IgnoreResult addTo(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; - public ServiceStack.Script.IgnoreResult addToGlobal(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; - public ServiceStack.Script.IgnoreResult addToStart(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; - public ServiceStack.Script.IgnoreResult addToStartGlobal(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; - public System.DateTime addYears(System.DateTime target, int count) => throw null; - public bool all(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public bool all(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public bool any(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public bool any(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public bool any(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public string appSetting(string name) => throw null; - public string append(string target, string suffix) => throw null; - public string appendFmt(string target, string format, object arg0, object arg1, object arg2) => throw null; - public string appendFmt(string target, string format, object arg0, object arg1) => throw null; - public string appendFmt(string target, string format, object arg) => throw null; - public string appendLine(string target) => throw null; - public ServiceStack.Script.IgnoreResult appendTo(ServiceStack.Script.ScriptScopeContext scope, string value, object argExpr) => throw null; - public ServiceStack.Script.IgnoreResult appendToGlobal(ServiceStack.Script.ScriptScopeContext scope, string value, object argExpr) => throw null; - public string asString(object target) => throw null; - public object assign(ServiceStack.Script.ScriptScopeContext scope, string argExpr, object value) => throw null; - public object assignError(ServiceStack.Script.ScriptScopeContext scope, string errorBinding) => throw null; - public object assignErrorAndContinueExecuting(ServiceStack.Script.ScriptScopeContext scope, string errorBinding) => throw null; - public object assignGlobal(ServiceStack.Script.ScriptScopeContext scope, string argExpr, object value) => throw null; - public System.Threading.Tasks.Task assignTo(ServiceStack.Script.ScriptScopeContext scope, object argExpr) => throw null; - public ServiceStack.Script.IgnoreResult assignTo(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; - public System.Threading.Tasks.Task assignToGlobal(ServiceStack.Script.ScriptScopeContext scope, object argExpr) => throw null; - public ServiceStack.Script.IgnoreResult assignToGlobal(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; - public double atan(double value) => throw null; - public double atan2(double y, double x) => throw null; - public double average(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public double average(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public double average(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public System.Threading.Tasks.Task buffer(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public string camelCase(string text) => throw null; - public object catchError(ServiceStack.Script.ScriptScopeContext scope, string errorBinding) => throw null; - public double ceiling(double value) => throw null; - public object coerce(string str) => throw null; - public int compareTo(string text, string other) => throw null; - public string concat(System.Collections.Generic.IEnumerable target) => throw null; - public System.Collections.Generic.IEnumerable concat(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; - public bool contains(object target, object needle) => throw null; - public bool containsXss(object target) => throw null; - public string contentType(string fileOrExt) => throw null; - public object continueExecutingFiltersOnError(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; - public object continueExecutingFiltersOnError(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public double cos(double value) => throw null; - public int count(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public int count(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public int count(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public ServiceStack.IRawString cssIncludes(System.Collections.IEnumerable cssFiles) => throw null; - public System.Threading.Tasks.Task csv(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; - public ServiceStack.IRawString csv(object value) => throw null; - public string currency(System.Decimal decimalValue, string culture) => throw null; - public string currency(System.Decimal decimalValue) => throw null; - public System.DateTime date(int year, int month, int day, int hour, int min, int secs) => throw null; - public System.DateTime date(int year, int month, int day) => throw null; - public string dateFormat(System.DateTime dateValue, string format) => throw null; - public string dateFormat(System.DateTime dateValue) => throw null; - public string dateTimeFormat(System.DateTime dateValue) => throw null; - public object debugMode(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Decimal decimalAdd(System.Decimal lhs, System.Decimal rhs) => throw null; - public System.Decimal decimalDiv(System.Decimal lhs, System.Decimal rhs) => throw null; - public System.Decimal decimalMul(System.Decimal lhs, System.Decimal rhs) => throw null; - public System.Decimal decimalSub(System.Decimal lhs, System.Decimal rhs) => throw null; - public System.Int64 decr(System.Int64 value) => throw null; - public System.Int64 decrBy(System.Int64 value, System.Int64 by) => throw null; - public System.Int64 decrement(System.Int64 value) => throw null; - public System.Int64 decrementBy(System.Int64 value, System.Int64 by) => throw null; - public object @default(object returnTarget, object elseReturn) => throw null; - public string dirPath(string filePath) => throw null; - public System.Collections.Generic.IEnumerable distinct(System.Collections.Generic.IEnumerable items) => throw null; - public double div(double lhs, double rhs) => throw null; - public double divide(double lhs, double rhs) => throw null; - public object @do(ServiceStack.Script.ScriptScopeContext scope, object expression) => throw null; - public System.Threading.Tasks.Task @do(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Threading.Tasks.Task @do(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object doIf(object test) => throw null; - public object doIf(object ignoreTarget, object test) => throw null; - public double doubleAdd(double lhs, double rhs) => throw null; - public double doubleDiv(double lhs, double rhs) => throw null; - public double doubleMul(double lhs, double rhs) => throw null; - public double doubleSub(double lhs, double rhs) => throw null; - public System.Threading.Tasks.Task dump(ServiceStack.Script.ScriptScopeContext scope, object items, string jsConfig) => throw null; - public System.Threading.Tasks.Task dump(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; - public ServiceStack.IRawString dump(object value) => throw null; - public double e() => throw null; - public object echo(object value) => throw null; - public object elementAt(System.Collections.IEnumerable target, int index) => throw null; - public System.Threading.Tasks.Task end(ServiceStack.Script.ScriptScopeContext scope, object ignore) => throw null; - public ServiceStack.Script.StopExecution end(object ignore) => throw null; - public ServiceStack.Script.StopExecution end() => throw null; - public object endIf(object test) => throw null; - public object endIf(object returnTarget, bool test) => throw null; - public object endIfAll(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object endIfAny(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object endIfDebug(object returnTarget) => throw null; - public object endIfEmpty(object target) => throw null; - public object endIfEmpty(object ignoreTarget, object target) => throw null; - public object endIfError(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; - public object endIfError(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object endIfExists(object target) => throw null; - public object endIfExists(object ignoreTarget, object target) => throw null; - public object endIfFalsy(object target) => throw null; - public object endIfFalsy(object ignoreTarget, object target) => throw null; - public object endIfNotEmpty(object target) => throw null; - public object endIfNotEmpty(object ignoreTarget, object target) => throw null; - public object endIfNotNull(object target) => throw null; - public object endIfNotNull(object ignoreTarget, object target) => throw null; - public object endIfNull(object target) => throw null; - public object endIfNull(object ignoreTarget, object target) => throw null; - public object endIfTruthy(object target) => throw null; - public object endIfTruthy(object ignoreTarget, object target) => throw null; - public object endWhere(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object endWhere(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public bool endsWith(string text, string needle) => throw null; - public object ensureAllArgsNotEmpty(ServiceStack.Script.ScriptScopeContext scope, object args, object options) => throw null; - public object ensureAllArgsNotEmpty(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; - public object ensureAllArgsNotNull(ServiceStack.Script.ScriptScopeContext scope, object args, object options) => throw null; - public object ensureAllArgsNotNull(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; - public object ensureAnyArgsNotEmpty(ServiceStack.Script.ScriptScopeContext scope, object args, object options) => throw null; - public object ensureAnyArgsNotEmpty(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; - public object ensureAnyArgsNotNull(ServiceStack.Script.ScriptScopeContext scope, object args, object options) => throw null; - public object ensureAnyArgsNotNull(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; - public bool eq(object target, object other) => throw null; - public bool equals(object target, object other) => throw null; - public bool equivalentTo(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; - public string escapeBackticks(string text) => throw null; - public string escapeDoubleQuotes(string text) => throw null; - public string escapeNewLines(string text) => throw null; - public string escapePrimeQuotes(string text) => throw null; - public string escapeSingleQuotes(string text) => throw null; - public object eval(ServiceStack.Script.ScriptScopeContext scope, string js) => throw null; - public System.Threading.Tasks.Task evalScript(ServiceStack.Script.ScriptScopeContext scope, string source, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task evalScript(ServiceStack.Script.ScriptScopeContext scope, string source) => throw null; - public System.Threading.Tasks.Task evalTemplate(ServiceStack.Script.ScriptScopeContext scope, string source, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task evalTemplate(ServiceStack.Script.ScriptScopeContext scope, string source) => throw null; - public bool every(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; - public System.Collections.Generic.IEnumerable except(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; - public bool exists(object test) => throw null; - public double exp(double value) => throw null; - public object falsy(object test, object returnIfFalsy) => throw null; - public object field(object target, string fieldName) => throw null; - public System.Reflection.FieldInfo[] fieldTypes(object o) => throw null; - public System.Collections.Generic.List fields(object o) => throw null; - public System.Collections.Generic.List filter(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; - public object find(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; - public int findIndex(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; - public object first(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object first(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object first(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public System.Collections.Generic.List flat(System.Collections.IList list, int depth) => throw null; - public System.Collections.Generic.List flat(System.Collections.IList list) => throw null; - public System.Collections.Generic.List flatMap(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression, int depth) => throw null; - public System.Collections.Generic.List flatMap(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; - public System.Collections.Generic.List flatten(object target, int depth) => throw null; - public System.Collections.Generic.List flatten(object target) => throw null; - public double floor(double value) => throw null; - public string fmt(string format, object arg0, object arg1, object arg2) => throw null; - public string fmt(string format, object arg0, object arg1) => throw null; - public string fmt(string format, object arg) => throw null; - public ServiceStack.Script.IgnoreResult forEach(ServiceStack.Script.ScriptScopeContext scope, object target, ServiceStack.Script.JsArrowFunctionExpression arrowExpr) => throw null; - public System.Collections.Specialized.NameValueCollection form(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.Dictionary formDictionary(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string formQuery(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string[] formQueryValues(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string format(object obj, string format) => throw null; - public ServiceStack.IRawString formatRaw(object obj, string fmt) => throw null; - public System.Char fromCharCode(int charCode) => throw null; - public string fromUtf8Bytes(System.Byte[] target) => throw null; - public string generateSlug(string phrase) => throw null; - public object get(object target, object key) => throw null; - public string[] glob(System.Collections.Generic.IEnumerable strings, string pattern) => throw null; - public string globln(System.Collections.Generic.IEnumerable strings, string pattern) => throw null; - public bool greaterThan(object target, object other) => throw null; - public bool greaterThanEqual(object target, object other) => throw null; - public System.Collections.Generic.IEnumerable> groupBy(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable items, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.IEnumerable> groupBy(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable items, object expression) => throw null; - public bool gt(object target, object other) => throw null; - public bool gte(object target, object other) => throw null; - public bool hasError(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool hasFlag(System.Enum source, object value) => throw null; - public bool hasMaxCount(object target, int maxCount) => throw null; - public bool hasMinCount(object target, int minCount) => throw null; - public string htmlDecode(string value) => throw null; - public string htmlEncode(string value) => throw null; - public string httpMethod(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string httpParam(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string httpPathInfo(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string httpRequestUrl(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string humanize(string text) => throw null; - public object @if(object test) => throw null; - public object @if(object returnTarget, object test) => throw null; - public object ifDebug(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; - public object ifDebug(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object ifDo(object test) => throw null; - public object ifDo(object ignoreTarget, object test) => throw null; - public object ifElse(object returnTarget, object test, object defaultValue) => throw null; - public object ifEmpty(object returnTarget, object test) => throw null; - public object ifEnd(object ignoreTarget, bool test) => throw null; - public object ifEnd(bool test) => throw null; - public object ifError(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; - public object ifError(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object ifExists(object target) => throw null; - public object ifExists(object returnTarget, object test) => throw null; - public object ifFalse(object returnTarget, object test) => throw null; - public object ifFalsy(object returnTarget, object test) => throw null; - public object ifHttpDelete(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; - public object ifHttpDelete(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object ifHttpGet(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; - public object ifHttpGet(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object ifHttpPatch(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; - public object ifHttpPatch(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object ifHttpPost(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; - public object ifHttpPost(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object ifHttpPut(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; - public object ifHttpPut(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object ifMatchesPathInfo(ServiceStack.Script.ScriptScopeContext scope, object returnTarget, string pathInfo) => throw null; - public object ifNo(object returnTarget, object target) => throw null; - public object ifNoError(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; - public object ifNoError(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object ifNot(object returnTarget, object test) => throw null; - public object ifNotElse(object returnTarget, object test, object defaultValue) => throw null; - public object ifNotEmpty(object target) => throw null; - public object ifNotEmpty(object returnTarget, object test) => throw null; - public object ifNotEnd(object ignoreTarget, bool test) => throw null; - public object ifNotEnd(bool test) => throw null; - public object ifNotExists(object returnTarget, object test) => throw null; - public object ifNotOnly(object ignoreTarget, bool test) => throw null; - public object ifNotOnly(bool test) => throw null; - public object ifOnly(object ignoreTarget, bool test) => throw null; - public object ifOnly(bool test) => throw null; - public object ifShow(object test, object useValue) => throw null; - public object ifShowRaw(object test, object useValue) => throw null; - public object ifThrow(ServiceStack.Script.ScriptScopeContext scope, bool test, string message, object options) => throw null; - public object ifThrow(ServiceStack.Script.ScriptScopeContext scope, bool test, string message) => throw null; - public object ifThrowArgumentException(ServiceStack.Script.ScriptScopeContext scope, bool test, string message, string paramName, object options) => throw null; - public object ifThrowArgumentException(ServiceStack.Script.ScriptScopeContext scope, bool test, string message, object options) => throw null; - public object ifThrowArgumentException(ServiceStack.Script.ScriptScopeContext scope, bool test, string message) => throw null; - public object ifThrowArgumentNullException(ServiceStack.Script.ScriptScopeContext scope, bool test, string paramName, object options) => throw null; - public object ifThrowArgumentNullException(ServiceStack.Script.ScriptScopeContext scope, bool test, string paramName) => throw null; - public object ifTrue(object returnTarget, object test) => throw null; - public object ifTruthy(object returnTarget, object test) => throw null; - public object ifUse(object test, object useValue) => throw null; - public object iif(object test, object ifTrue, object ifFalse) => throw null; - public object importRequestParams(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable onlyImportArgNames) => throw null; - public object importRequestParams(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool includes(System.Collections.IList list, object item, int fromIndex) => throw null; - public bool includes(System.Collections.IList list, object item) => throw null; - public System.Int64 incr(System.Int64 value) => throw null; - public System.Int64 incrBy(System.Int64 value, System.Int64 by) => throw null; - public System.Int64 increment(System.Int64 value) => throw null; - public System.Int64 incrementBy(System.Int64 value, System.Int64 by) => throw null; - public string indent() => throw null; - public ServiceStack.IRawString indentJson(object value, string jsconfig) => throw null; - public ServiceStack.IRawString indentJson(object value) => throw null; - public string indents(int count) => throw null; - public int indexOf(object target, object item, int startIndex) => throw null; - public int indexOf(object target, object item) => throw null; - public bool instanceOf(object target, object type) => throw null; - public int intAdd(int lhs, int rhs) => throw null; - public int intDiv(int lhs, int rhs) => throw null; - public int intMul(int lhs, int rhs) => throw null; - public int intSub(int lhs, int rhs) => throw null; - public System.Collections.Generic.IEnumerable intersect(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; - public bool isAnonObject(object target) => throw null; - public bool isArray(object target) => throw null; - public bool isBinary(string fileOrExt) => throw null; - public bool isBool(object target) => throw null; - public bool isByte(object target) => throw null; - public bool isBytes(object target) => throw null; - public bool isChar(object target) => throw null; - public bool isChars(object target) => throw null; - public bool isClass(object target) => throw null; - public bool isDecimal(object target) => throw null; - public bool isDictionary(object target) => throw null; - public bool isDouble(object target) => throw null; - public bool isDto(object target) => throw null; - public bool isEmpty(object target) => throw null; - public bool isEnum(object target) => throw null; - public bool isEnum(System.Enum source, object value) => throw null; - public bool isEnumerable(object target) => throw null; - public bool isEven(int value) => throw null; - public static bool isFalsy(object target) => throw null; - public bool isFloat(object target) => throw null; - public bool isHttpDelete(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool isHttpGet(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool isHttpPatch(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool isHttpPost(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool isHttpPut(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool isInfinity(double value) => throw null; - public bool isInt(object target) => throw null; - public bool isInteger(object target) => throw null; - public bool isKeyValuePair(object target) => throw null; - public bool isList(object target) => throw null; - public bool isLong(object target) => throw null; - public bool isNaN(double value) => throw null; - public bool isNegative(double value) => throw null; - public bool isNotNull(object test) => throw null; - public bool isNull(object test) => throw null; - public bool isNumber(object target) => throw null; - public bool isObjectDictionary(object target) => throw null; - public bool isOdd(int value) => throw null; - public bool isPositive(double value) => throw null; - public bool isRealNumber(object target) => throw null; - public bool isString(object target) => throw null; - public bool isStringDictionary(object target) => throw null; - public static bool isTrue(object target) => throw null; - public static bool isTruthy(object target) => throw null; - public bool isTuple(object target) => throw null; - public bool isType(object target, string typeName) => throw null; - public bool isValueType(object target) => throw null; - public bool isZero(double value) => throw null; - public System.Collections.Generic.List itemsOf(int count, object target) => throw null; - public string join(System.Collections.Generic.IEnumerable values, string delimiter) => throw null; - public string join(System.Collections.Generic.IEnumerable values) => throw null; - public string joinln(System.Collections.Generic.IEnumerable values) => throw null; - public ServiceStack.IRawString jsIncludes(System.Collections.IEnumerable jsFiles) => throw null; - public ServiceStack.IRawString jsQuotedString(string text) => throw null; - public ServiceStack.IRawString jsString(string text) => throw null; - public System.Threading.Tasks.Task json(ServiceStack.Script.ScriptScopeContext scope, object items, string jsConfig) => throw null; - public System.Threading.Tasks.Task json(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; - public ServiceStack.IRawString json(object value, string jsconfig) => throw null; - public ServiceStack.IRawString json(object value) => throw null; - public ServiceStack.Text.JsonArrayObjects jsonToArrayObjects(string json) => throw null; - public ServiceStack.Text.JsonObject jsonToObject(string json) => throw null; - public System.Collections.Generic.Dictionary jsonToObjectDictionary(string json) => throw null; - public System.Collections.Generic.Dictionary jsonToStringDictionary(string json) => throw null; - public System.Threading.Tasks.Task jsv(ServiceStack.Script.ScriptScopeContext scope, object items, string jsConfig) => throw null; - public System.Threading.Tasks.Task jsv(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; - public ServiceStack.IRawString jsv(object value, string jsconfig) => throw null; - public ServiceStack.IRawString jsv(object value) => throw null; - public System.Collections.Generic.Dictionary jsvToObjectDictionary(string json) => throw null; - public System.Collections.Generic.Dictionary jsvToStringDictionary(string json) => throw null; - public string kebabCase(string text) => throw null; - public System.Collections.Generic.KeyValuePair keyValuePair(string key, object value) => throw null; - public System.Collections.ICollection keys(object target) => throw null; - public object last(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public System.Exception lastError(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string lastErrorMessage(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string lastErrorStackTrace(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public int lastIndexOf(object target, object item, int startIndex) => throw null; - public int lastIndexOf(object target, object item) => throw null; - public string lastLeftPart(string text, string needle) => throw null; - public string lastRightPart(string text, string needle) => throw null; - public string leftPart(string text, string needle) => throw null; - public int length(object target) => throw null; - public bool lessThan(object target, object other) => throw null; - public bool lessThanEqual(object target, object other) => throw null; - public object let(ServiceStack.Script.ScriptScopeContext scope, object target, object scopeBindings) => throw null; - public System.Collections.Generic.IEnumerable limit(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable original, object skipOrBinding, object takeOrBinding) => throw null; - public double log(double value) => throw null; - public double log(double a, double newBase) => throw null; - public double log10(double value) => throw null; - public double log2(double value) => throw null; - public System.Int64 longAdd(System.Int64 lhs, System.Int64 rhs) => throw null; - public System.Int64 longDiv(System.Int64 lhs, System.Int64 rhs) => throw null; - public System.Int64 longMul(System.Int64 lhs, System.Int64 rhs) => throw null; - public System.Int64 longSub(System.Int64 lhs, System.Int64 rhs) => throw null; - public string lower(string text) => throw null; - public bool lt(object target, object other) => throw null; - public bool lte(object target, object other) => throw null; - public object map(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object map(ServiceStack.Script.ScriptScopeContext scope, object items, object expression) => throw null; - public bool matchesPathInfo(ServiceStack.Script.ScriptScopeContext scope, string pathInfo) => throw null; - public object max(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object max(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object max(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public object merge(object sources) => throw null; - public object merge(System.Collections.Generic.IDictionary target, object sources) => throw null; - public object min(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object min(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object min(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public System.Int64 mod(System.Int64 value, System.Int64 divisor) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object multiply(object lhs, object rhs) => throw null; - public System.Collections.Generic.List navItems(string key) => throw null; - public System.Collections.Generic.List navItems() => throw null; - public string newLine(string target) => throw null; - public string newLine() => throw null; - public string newLines(int count) => throw null; - public System.Guid nguid() => throw null; - public bool not(object target, object other) => throw null; - public bool not(bool target) => throw null; - public bool notEquals(object target, object other) => throw null; - public System.DateTime now() => throw null; - public System.DateTimeOffset nowOffset() => throw null; - public System.Collections.IEnumerable of(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable target, object scopeOptions) => throw null; - public object onlyIf(object test) => throw null; - public object onlyIf(object returnTarget, bool test) => throw null; - public object onlyIfAll(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object onlyIfAny(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object onlyIfDebug(object returnTarget) => throw null; - public object onlyIfEmpty(object target) => throw null; - public object onlyIfEmpty(object ignoreTarget, object target) => throw null; - public object onlyIfExists(object target) => throw null; - public object onlyIfExists(object ignoreTarget, object target) => throw null; - public object onlyIfFalsy(object target) => throw null; - public object onlyIfFalsy(object ignoreTarget, object target) => throw null; - public object onlyIfNotEmpty(object target) => throw null; - public object onlyIfNotEmpty(object ignoreTarget, object target) => throw null; - public object onlyIfNotNull(object target) => throw null; - public object onlyIfNotNull(object ignoreTarget, object target) => throw null; - public object onlyIfNull(object target) => throw null; - public object onlyIfNull(object ignoreTarget, object target) => throw null; - public object onlyIfTruthy(object target) => throw null; - public object onlyIfTruthy(object ignoreTarget, object target) => throw null; - public object onlyWhere(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object onlyWhere(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public System.Collections.Generic.IEnumerable orderBy(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.IEnumerable orderBy(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public System.Collections.Generic.IEnumerable orderByDesc(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.IEnumerable orderByDesc(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public System.Collections.Generic.IEnumerable orderByDescending(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.IEnumerable orderByDescending(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public static System.Collections.Generic.IEnumerable orderByInternal(string filterName, ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object otherwise(object returnTarget, object elseReturn) => throw null; - public object ownProps(System.Collections.Generic.IEnumerable> target) => throw null; - public string padLeft(string text, int totalWidth, System.Char padChar) => throw null; - public string padLeft(string text, int totalWidth) => throw null; - public string padRight(string text, int totalWidth, System.Char padChar) => throw null; - public string padRight(string text, int totalWidth) => throw null; - public System.Collections.Generic.KeyValuePair pair(string key, object value) => throw null; - public System.Collections.Generic.IEnumerable> parseAsKeyValues(string target, string delimiter) => throw null; - public System.Collections.Generic.IEnumerable> parseAsKeyValues(string target) => throw null; - public System.Collections.Generic.List> parseCsv(string csv) => throw null; - public object parseJson(string json) => throw null; - public System.Collections.Generic.Dictionary parseKeyValueText(string target, string delimiter) => throw null; - public System.Collections.Generic.Dictionary parseKeyValueText(string target) => throw null; - public System.Collections.Generic.List> parseKeyValues(string keyValuesText, string delimiter) => throw null; - public System.Collections.Generic.List> parseKeyValues(string keyValuesText) => throw null; - public System.Threading.Tasks.Task partial(ServiceStack.Script.ScriptScopeContext scope, object target, object scopedParams) => throw null; - public System.Threading.Tasks.Task partial(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public string pascalCase(string text) => throw null; - public ServiceStack.IRawString pass(string target) => throw null; - public double pi() => throw null; - public object pop(System.Collections.IList list) => throw null; - public double pow(double x, double y) => throw null; - public ServiceStack.Script.IgnoreResult prependTo(ServiceStack.Script.ScriptScopeContext scope, string value, object argExpr) => throw null; - public ServiceStack.Script.IgnoreResult prependToGlobal(ServiceStack.Script.ScriptScopeContext scope, string value, object argExpr) => throw null; - public System.Reflection.PropertyInfo[] propTypes(object o) => throw null; - public object property(object target, string propertyName) => throw null; - public System.Collections.Generic.List props(object o) => throw null; - public int push(System.Collections.IList list, object item) => throw null; - public object putItem(System.Collections.IDictionary dictionary, object key, object value) => throw null; - public System.Collections.Specialized.NameValueCollection qs(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Specialized.NameValueCollection query(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.Dictionary queryDictionary(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string queryString(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.IEnumerable range(int start, int count) => throw null; - public System.Collections.Generic.IEnumerable range(int count) => throw null; - public ServiceStack.IRawString raw(object value) => throw null; - public object rawBodyAsJson(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string rawBodyAsString(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.IEnumerable readLines(string contents) => throw null; - public object reduce(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object reduce(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object remove(object target, object keysToRemove) => throw null; - public object removeKeyFromDictionary(System.Collections.IDictionary dictionary, object keyToRemove) => throw null; - public string repeat(string text, int times) => throw null; - public string repeating(int times, string text) => throw null; - public string replace(string text, string oldValue, string newValue) => throw null; - public System.IO.Stream requestBody(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Threading.Tasks.Task requestBodyAsJson(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Threading.Tasks.Task requestBodyAsString(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object resolveArg(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string resolveAsset(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; - public object resolveContextArg(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public object resolveGlobal(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public object resolvePageArg(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public ServiceStack.Script.StopExecution @return(ServiceStack.Script.ScriptScopeContext scope, object returnValue, System.Collections.Generic.Dictionary returnArgs) => throw null; - public ServiceStack.Script.StopExecution @return(ServiceStack.Script.ScriptScopeContext scope, object returnValue) => throw null; - public ServiceStack.Script.StopExecution @return(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.IEnumerable reverse(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable original) => throw null; - public string rightPart(string text, string needle) => throw null; - public double round(double value, int decimals) => throw null; - public double round(double value) => throw null; - public object scopeVars(object target) => throw null; - public System.Threading.Tasks.Task select(ServiceStack.Script.ScriptScopeContext scope, object target, object selectTemplate, object scopeOptions) => throw null; - public System.Threading.Tasks.Task select(ServiceStack.Script.ScriptScopeContext scope, object target, object selectTemplate) => throw null; - public System.Threading.Tasks.Task selectEach(ServiceStack.Script.ScriptScopeContext scope, object target, object items, object scopeOptions) => throw null; - public System.Threading.Tasks.Task selectEach(ServiceStack.Script.ScriptScopeContext scope, object target, object items) => throw null; - public object selectFields(object target, object names) => throw null; - public System.Threading.Tasks.Task selectPartial(ServiceStack.Script.ScriptScopeContext scope, object target, string pageName, object scopedParams) => throw null; - public System.Threading.Tasks.Task selectPartial(ServiceStack.Script.ScriptScopeContext scope, object target, string pageName) => throw null; - public bool sequenceEquals(System.Collections.IEnumerable a, System.Collections.IEnumerable b) => throw null; - public string setHashParams(string url, object urlParams) => throw null; - public string setQueryString(string url, object urlParams) => throw null; - public object shift(System.Collections.IList list) => throw null; - public object show(object ignoreTarget, object useValue) => throw null; - public object showFmt(object ignoreTarget, string format, object arg1, object arg2, object arg3) => throw null; - public object showFmt(object ignoreTarget, string format, object arg1, object arg2) => throw null; - public object showFmt(object ignoreTarget, string format, object arg) => throw null; - public ServiceStack.IRawString showFmtRaw(object ignoreTarget, string format, object arg1, object arg2, object arg3) => throw null; - public ServiceStack.IRawString showFmtRaw(object ignoreTarget, string format, object arg1, object arg2) => throw null; - public ServiceStack.IRawString showFmtRaw(object ignoreTarget, string format, object arg) => throw null; - public object showFormat(object ignoreTarget, object arg, string fmt) => throw null; - public object showIf(object useValue, object test) => throw null; - public object showIfExists(object useValue, object test) => throw null; - public ServiceStack.IRawString showRaw(object ignoreTarget, string content) => throw null; - public int sign(double value) => throw null; - public double sin(double value) => throw null; - public double sinh(double value) => throw null; - public System.Collections.Generic.IEnumerable skip(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable original, object countOrBinding) => throw null; - public object skipExecutingFiltersOnError(ServiceStack.Script.ScriptScopeContext scope, object ignoreTarget) => throw null; - public object skipExecutingFiltersOnError(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.IEnumerable skipWhile(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.IEnumerable skipWhile(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public System.Collections.Generic.List slice(System.Collections.IList list, int begin, int end) => throw null; - public System.Collections.Generic.List slice(System.Collections.IList list, int begin) => throw null; - public System.Collections.Generic.List slice(System.Collections.IList list) => throw null; - public string snakeCase(string text) => throw null; - public bool some(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IList list, ServiceStack.Script.JsArrowFunctionExpression expression) => throw null; - public System.Collections.Generic.List sort(System.Collections.Generic.List list) => throw null; - public string space() => throw null; - public string spaces(int count) => throw null; - public object splice(System.Collections.IList list, int removeAt) => throw null; - public System.Collections.Generic.List splice(System.Collections.IList list, int removeAt, int deleteCount, System.Collections.Generic.List insertItems) => throw null; - public System.Collections.Generic.List splice(System.Collections.IList list, int removeAt, int deleteCount) => throw null; - public string[] split(string stringList, object delimiter) => throw null; - public string[] split(string stringList) => throw null; - public string splitCase(string text) => throw null; - public static string[] splitLines(string contents) => throw null; - public string[] splitOnFirst(string text, string needle) => throw null; - public string[] splitOnLast(string text, string needle) => throw null; - public System.Collections.Generic.List splitStringList(System.Collections.IEnumerable strings) => throw null; - public double sqrt(double value) => throw null; - public bool startsWith(string text, string needle) => throw null; - public bool startsWithPathInfo(ServiceStack.Script.ScriptScopeContext scope, string pathInfo) => throw null; - public System.Reflection.FieldInfo[] staticFieldTypes(object o) => throw null; - public System.Collections.Generic.List staticFields(object o) => throw null; - public System.Reflection.PropertyInfo[] staticPropTypes(object o) => throw null; - public System.Collections.Generic.List staticProps(object o) => throw null; - public System.Collections.Generic.List step(System.Collections.IEnumerable target, object scopeOptions) => throw null; - public object sub(object lhs, object rhs) => throw null; - public string substring(string text, int startIndex, int length) => throw null; - public string substring(string text, int startIndex) => throw null; - public string substringWithElipsis(string text, int startIndex, int length) => throw null; - public string substringWithElipsis(string text, int length) => throw null; - public string substringWithEllipsis(string text, int startIndex, int length) => throw null; - public string substringWithEllipsis(string text, int length) => throw null; - public object subtract(object lhs, object rhs) => throw null; - public object sum(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object sum(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object sum(ServiceStack.Script.ScriptScopeContext scope, object target) => throw null; - public object sync(object value) => throw null; - public System.Collections.Generic.IEnumerable take(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable original, object countOrBinding) => throw null; - public System.Collections.Generic.IEnumerable takeWhile(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.IEnumerable takeWhile(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public double tan(double value) => throw null; - public double tanh(double value) => throw null; - public ServiceStack.IRawString textDump(object target, System.Collections.Generic.Dictionary options) => throw null; - public ServiceStack.IRawString textDump(object target) => throw null; - public ServiceStack.IRawString textList(System.Collections.IEnumerable target, System.Collections.Generic.Dictionary options) => throw null; - public ServiceStack.IRawString textList(System.Collections.IEnumerable target) => throw null; - public string textStyle(string text, string headerStyle) => throw null; - public System.Collections.Generic.IEnumerable thenBy(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.IEnumerable thenBy(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public System.Collections.Generic.IEnumerable thenByDescending(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.IEnumerable thenByDescending(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public static System.Collections.Generic.IEnumerable thenByInternal(string filterName, ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public object @throw(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; - public object @throw(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; - public object throwArgumentException(ServiceStack.Script.ScriptScopeContext scope, string message, string options) => throw null; - public object throwArgumentException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; - public object throwArgumentNullException(ServiceStack.Script.ScriptScopeContext scope, string paramName, object options) => throw null; - public object throwArgumentNullException(ServiceStack.Script.ScriptScopeContext scope, string paramName) => throw null; - public object throwArgumentNullExceptionIf(ServiceStack.Script.ScriptScopeContext scope, string paramName, bool test, object options) => throw null; - public object throwArgumentNullExceptionIf(ServiceStack.Script.ScriptScopeContext scope, string paramName, bool test) => throw null; - public System.Threading.Tasks.Task throwAsync(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; - public System.Threading.Tasks.Task throwAsync(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; - public object throwFileNotFoundException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; - public object throwFileNotFoundException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; - public object throwIf(ServiceStack.Script.ScriptScopeContext scope, string message, bool test, object options) => throw null; - public object throwIf(ServiceStack.Script.ScriptScopeContext scope, string message, bool test) => throw null; - public object throwNotImplementedException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; - public object throwNotImplementedException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; - public object throwNotSupportedException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; - public object throwNotSupportedException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; - public object throwOptimisticConcurrencyException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; - public object throwOptimisticConcurrencyException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; - public object throwUnauthorizedAccessException(ServiceStack.Script.ScriptScopeContext scope, string message, object options) => throw null; - public object throwUnauthorizedAccessException(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; - public System.TimeSpan time(int hours, int mins, int secs) => throw null; - public System.TimeSpan time(int days, int hours, int mins, int secs) => throw null; - public string timeFormat(System.TimeSpan timeValue, string format) => throw null; - public string timeFormat(System.TimeSpan timeValue) => throw null; - public System.Collections.Generic.List times(int count) => throw null; - public string titleCase(string text) => throw null; - public System.Threading.Tasks.Task to(ServiceStack.Script.ScriptScopeContext scope, object argExpr) => throw null; - public ServiceStack.Script.IgnoreResult to(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; - public object[] toArray(System.Collections.IEnumerable target) => throw null; - public bool toBool(object target) => throw null; - public System.Byte toByte(object target) => throw null; - public System.Char toChar(object target) => throw null; - public int toCharCode(object target) => throw null; - public System.Char[] toChars(object target) => throw null; - public System.Collections.Generic.Dictionary toCoercedDictionary(object target) => throw null; - public System.DateTime toDateTime(object target) => throw null; - public System.Decimal toDecimal(object target) => throw null; - public System.Collections.Generic.Dictionary toDictionary(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.Dictionary toDictionary(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public double toDouble(object target) => throw null; - public float toFloat(object target) => throw null; - public System.Threading.Tasks.Task toGlobal(ServiceStack.Script.ScriptScopeContext scope, object argExpr) => throw null; - public ServiceStack.Script.IgnoreResult toGlobal(ServiceStack.Script.ScriptScopeContext scope, object value, object argExpr) => throw null; - public int toInt(object target) => throw null; - public System.Collections.Generic.List toKeys(object target) => throw null; - public System.Collections.Generic.List toList(System.Collections.IEnumerable target) => throw null; - public System.Int64 toLong(object target) => throw null; - public System.Collections.Generic.Dictionary toObjectDictionary(object target) => throw null; - public string toQueryString(object keyValuePairs) => throw null; - public string toString(object target) => throw null; - public System.Collections.Generic.Dictionary toStringDictionary(System.Collections.IDictionary map) => throw null; - public System.Collections.Generic.List toStringList(System.Collections.IEnumerable target) => throw null; - public System.TimeSpan toTimeSpan(object target) => throw null; - public System.Byte[] toUtf8Bytes(string target) => throw null; - public System.Collections.Generic.List toValues(object target) => throw null; - public System.Collections.Generic.List toVarNames(System.Collections.IEnumerable names) => throw null; - public string trim(string text, System.Char c) => throw null; - public string trim(string text) => throw null; - public string trimEnd(string text, System.Char c) => throw null; - public string trimEnd(string text) => throw null; - public string trimStart(string text, System.Char c) => throw null; - public string trimStart(string text) => throw null; - public double truncate(double value) => throw null; - public object truthy(object test, object returnIfTruthy) => throw null; - public ServiceStack.IRawString typeFullName(object target) => throw null; - public ServiceStack.IRawString typeName(object target) => throw null; - public System.Collections.Generic.IEnumerable union(System.Collections.Generic.IEnumerable target, System.Collections.Generic.IEnumerable items) => throw null; - public object unless(object returnTarget, object test) => throw null; - public object unlessElse(object returnTarget, object test, object defaultValue) => throw null; - public object unshift(System.Collections.IList list, object item) => throw null; - public object unwrap(object value) => throw null; - public string upper(string text) => throw null; - public string urlDecode(string value) => throw null; - public string urlEncode(string value, bool upperCase) => throw null; - public string urlEncode(string value) => throw null; - public object use(object ignoreTarget, object useValue) => throw null; - public object useFmt(object ignoreTarget, string format, object arg1, object arg2, object arg3) => throw null; - public object useFmt(object ignoreTarget, string format, object arg1, object arg2) => throw null; - public object useFmt(object ignoreTarget, string format, object arg) => throw null; - public object useFormat(object ignoreTarget, object arg, string fmt) => throw null; - public object useIf(object useValue, object test) => throw null; - public System.DateTime utcNow() => throw null; - public System.DateTimeOffset utcNowOffset() => throw null; - public System.Collections.ICollection values(object target) => throw null; - public object when(object returnTarget, object test) => throw null; - public System.Collections.Generic.IEnumerable where(ServiceStack.Script.ScriptScopeContext scope, object target, object expression, object scopeOptions) => throw null; - public System.Collections.Generic.IEnumerable where(ServiceStack.Script.ScriptScopeContext scope, object target, object expression) => throw null; - public object withKeys(System.Collections.Generic.IDictionary target, object keys) => throw null; - public object withoutEmptyValues(object target) => throw null; - public object withoutKeys(System.Collections.Generic.IDictionary target, object keys) => throw null; - public object withoutNullValues(object target) => throw null; - public ServiceStack.Script.IgnoreResult write(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; - public ServiceStack.Script.IgnoreResult writeln(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; - public System.Threading.Tasks.Task xml(ServiceStack.Script.ScriptScopeContext scope, object items) => throw null; - public System.Collections.Generic.List zip(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable original, object itemsOrBinding) => throw null; - } - - // Generated from `ServiceStack.Script.DefnScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefnScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public DefnScriptBlock() => throw null; - public override string Name { get => throw null; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.DirectoryScripts` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DirectoryScripts : ServiceStack.Script.IOScript - { - public ServiceStack.Script.IgnoreResult Copy(string from, string to) => throw null; - public static void CopyAllTo(string src, string dst, string[] excludePaths = default(string[])) => throw null; - public ServiceStack.Script.IgnoreResult CreateDirectory(string path) => throw null; - public ServiceStack.Script.IgnoreResult Delete(string path) => throw null; - public DirectoryScripts() => throw null; - public bool Exists(string path) => throw null; - public string GetCurrentDirectory() => throw null; - public string[] GetDirectories(string path) => throw null; - public string GetDirectoryRoot(string path) => throw null; - public string[] GetFileSystemEntries(string path) => throw null; - public string[] GetFiles(string path) => throw null; - public string[] GetLogicalDrives() => throw null; - public System.IO.DirectoryInfo GetParent(string path) => throw null; - public ServiceStack.Script.IgnoreResult Move(string from, string to) => throw null; - } - - // Generated from `ServiceStack.Script.EachScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EachScriptBlock : ServiceStack.Script.ScriptBlock - { - public EachScriptBlock() => throw null; - public override string Name { get => throw null; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.EvalScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EvalScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public EvalScriptBlock() => throw null; - public override string Name { get => throw null; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.FileScripts` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FileScripts : ServiceStack.Script.IOScript - { - public ServiceStack.Script.IgnoreResult AppendAllLines(string path, string[] lines) => throw null; - public ServiceStack.Script.IgnoreResult AppendAllText(string path, string text) => throw null; - public ServiceStack.Script.IgnoreResult Copy(string from, string to) => throw null; - public ServiceStack.Script.IgnoreResult Create(string path) => throw null; - public ServiceStack.Script.IgnoreResult Decrypt(string path) => throw null; - public ServiceStack.Script.IgnoreResult Delete(string path) => throw null; - public ServiceStack.Script.IgnoreResult Encrypt(string path) => throw null; - public bool Exists(string path) => throw null; - public FileScripts() => throw null; - public ServiceStack.Script.IgnoreResult Move(string from, string to) => throw null; - public System.Byte[] ReadAllBytes(string path) => throw null; - public string[] ReadAllLines(string path) => throw null; - public string ReadAllText(string path) => throw null; - public ServiceStack.Script.IgnoreResult Replace(string from, string to, string backup) => throw null; - public ServiceStack.Script.IgnoreResult WriteAllBytes(string path, System.Byte[] bytes) => throw null; - public ServiceStack.Script.IgnoreResult WriteAllLines(string path, string[] lines) => throw null; - public ServiceStack.Script.IgnoreResult WriteAllText(string path, string text) => throw null; - } - - // Generated from `ServiceStack.Script.FunctionScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FunctionScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public FunctionScriptBlock() => throw null; - public override string Name { get => throw null; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.GitHubPlugin` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GitHubPlugin : ServiceStack.Script.IScriptPlugin - { - public GitHubPlugin() => throw null; - public void Register(ServiceStack.Script.ScriptContext context) => throw null; - } - - // Generated from `ServiceStack.Script.GitHubScripts` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GitHubScripts : ServiceStack.Script.ScriptMethods - { - public GitHubScripts() => throw null; - public ServiceStack.IO.GistVirtualFiles gistVirtualFiles(string gistId, string accessToken) => throw null; - public ServiceStack.IO.GistVirtualFiles gistVirtualFiles(string gistId) => throw null; - public ServiceStack.Script.IgnoreResult githuDeleteGistFiles(ServiceStack.GitHubGateway gateway, string gistId, string filePath) => throw null; - public ServiceStack.Script.IgnoreResult githuDeleteGistFiles(ServiceStack.GitHubGateway gateway, string gistId, System.Collections.Generic.IEnumerable filePaths) => throw null; - public ServiceStack.GithubGist githubCreateGist(ServiceStack.GitHubGateway gateway, string description, System.Collections.Generic.Dictionary files) => throw null; - public ServiceStack.GithubGist githubCreatePrivateGist(ServiceStack.GitHubGateway gateway, string description, System.Collections.Generic.Dictionary files) => throw null; - public ServiceStack.GitHubGateway githubGateway(string accessToken) => throw null; - public ServiceStack.GitHubGateway githubGateway() => throw null; - public ServiceStack.GithubGist githubGist(ServiceStack.GitHubGateway gateway, string gistId) => throw null; - public System.Collections.Generic.List githubOrgRepos(ServiceStack.GitHubGateway gateway, string githubOrg) => throw null; - public System.Threading.Tasks.Task githubSourceRepos(ServiceStack.GitHubGateway gateway, string orgName) => throw null; - public string githubSourceZipUrl(ServiceStack.GitHubGateway gateway, string orgNames, string name) => throw null; - public System.Threading.Tasks.Task githubUserAndOrgRepos(ServiceStack.GitHubGateway gateway, string githubOrgOrUser) => throw null; - public System.Collections.Generic.List githubUserRepos(ServiceStack.GitHubGateway gateway, string githubUser) => throw null; - public ServiceStack.Script.IgnoreResult githubWriteGistFile(ServiceStack.GitHubGateway gateway, string gistId, string filePath, string contents) => throw null; - public ServiceStack.Script.IgnoreResult githubWriteGistFiles(ServiceStack.GitHubGateway gateway, string gistId, System.Collections.Generic.Dictionary gistFiles) => throw null; - } - - // Generated from `ServiceStack.Script.HtmlPageFormat` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlPageFormat : ServiceStack.Script.PageFormat - { - public static System.Threading.Tasks.Task HtmlEncodeTransformer(System.IO.Stream stream) => throw null; - public static string HtmlEncodeValue(object value) => throw null; - public virtual object HtmlExpressionException(ServiceStack.Script.PageResult result, System.Exception ex) => throw null; - public HtmlPageFormat() => throw null; - public ServiceStack.Script.SharpPage HtmlResolveLayout(ServiceStack.Script.SharpPage page) => throw null; - } - - // Generated from `ServiceStack.Script.HtmlScriptBlocks` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlScriptBlocks : ServiceStack.Script.IScriptPlugin - { - public HtmlScriptBlocks() => throw null; - public void Register(ServiceStack.Script.ScriptContext context) => throw null; - } - - // Generated from `ServiceStack.Script.HtmlScripts` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlScripts : ServiceStack.Script.ScriptMethods, ServiceStack.Script.IConfigureScriptContext - { - public void Configure(ServiceStack.Script.ScriptContext context) => throw null; - public static System.Collections.Generic.List EvaluateWhenSkippingFilterExecution; - public static string HtmlDump(object target, ServiceStack.HtmlDumpOptions options) => throw null; - public static string HtmlList(System.Collections.IEnumerable items, ServiceStack.HtmlDumpOptions options) => throw null; - public HtmlScripts() => throw null; - public static System.Collections.Generic.HashSet VoidElements { get => throw null; } - public ServiceStack.IRawString htmlA(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlA(System.Collections.Generic.Dictionary attrs) => throw null; - public string htmlAddClass(object target, string name) => throw null; - public ServiceStack.IRawString htmlAttrs(object target) => throw null; - public string htmlAttrsList(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlB(string text) => throw null; - public ServiceStack.IRawString htmlB(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlButton(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlButton(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlClass(object target) => throw null; - public string htmlClassList(object target) => throw null; - public ServiceStack.IRawString htmlDiv(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlDiv(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlDump(object target, System.Collections.Generic.Dictionary options) => throw null; - public ServiceStack.IRawString htmlDump(object target) => throw null; - public ServiceStack.IRawString htmlEm(string text) => throw null; - public ServiceStack.IRawString htmlEm(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlError(ServiceStack.Script.ScriptScopeContext scope, System.Exception ex, object options) => throw null; - public ServiceStack.IRawString htmlError(ServiceStack.Script.ScriptScopeContext scope, System.Exception ex) => throw null; - public ServiceStack.IRawString htmlError(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.IRawString htmlErrorDebug(ServiceStack.Script.ScriptScopeContext scope, object ex) => throw null; - public ServiceStack.IRawString htmlErrorDebug(ServiceStack.Script.ScriptScopeContext scope, System.Exception ex, object options) => throw null; - public ServiceStack.IRawString htmlErrorDebug(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.IRawString htmlErrorMessage(System.Exception ex, object options) => throw null; - public ServiceStack.IRawString htmlErrorMessage(System.Exception ex) => throw null; - public ServiceStack.IRawString htmlErrorMessage(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.IRawString htmlForm(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlForm(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlFormat(string htmlWithFormat, string arg) => throw null; - public ServiceStack.IRawString htmlH1(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH1(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH2(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH2(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH3(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH3(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH4(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH4(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH5(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH5(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH6(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlH6(System.Collections.Generic.Dictionary attrs) => throw null; - public bool htmlHasClass(object target, string name) => throw null; - public ServiceStack.IRawString htmlHiddenInputs(System.Collections.Generic.Dictionary inputValues) => throw null; - public ServiceStack.IRawString htmlImage(string src, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlImage(string src) => throw null; - public ServiceStack.IRawString htmlImg(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlImg(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlInput(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlInput(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlLabel(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlLabel(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlLi(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlLi(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlLink(string href, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlLink(string href) => throw null; - public ServiceStack.IRawString htmlList(System.Collections.IEnumerable target, System.Collections.Generic.Dictionary options) => throw null; - public ServiceStack.IRawString htmlList(System.Collections.IEnumerable target) => throw null; - public ServiceStack.IRawString htmlOl(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlOl(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlOption(string text) => throw null; - public ServiceStack.IRawString htmlOption(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlOptions(object values, object options) => throw null; - public ServiceStack.IRawString htmlOptions(object values) => throw null; - public ServiceStack.IRawString htmlSelect(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlSelect(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlSpan(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlSpan(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTable(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTable(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTag(string innerHtml, System.Collections.Generic.Dictionary attrs, string tag) => throw null; - public ServiceStack.IRawString htmlTag(System.Collections.Generic.Dictionary attrs, string tag) => throw null; - public ServiceStack.IRawString htmlTd(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTd(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTextArea(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTextArea(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTh(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTh(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTr(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlTr(System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlUl(string innerHtml, System.Collections.Generic.Dictionary attrs) => throw null; - public ServiceStack.IRawString htmlUl(System.Collections.Generic.Dictionary attrs) => throw null; - } - - // Generated from `ServiceStack.Script.IConfigurePageResult` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IConfigurePageResult - { - void Configure(ServiceStack.Script.PageResult pageResult); - } - - // Generated from `ServiceStack.Script.IConfigureScriptContext` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IConfigureScriptContext - { - void Configure(ServiceStack.Script.ScriptContext context); - } - - // Generated from `ServiceStack.Script.IOScript` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOScript - { - ServiceStack.Script.IgnoreResult Copy(string from, string to); - ServiceStack.Script.IgnoreResult Delete(string path); - bool Exists(string target); - ServiceStack.Script.IgnoreResult Move(string from, string to); - } - - // Generated from `ServiceStack.Script.IPageResult` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPageResult - { - } - - // Generated from `ServiceStack.Script.IResultInstruction` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IResultInstruction - { - } - - // Generated from `ServiceStack.Script.IScriptPlugin` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IScriptPlugin - { - void Register(ServiceStack.Script.ScriptContext context); - } - - // Generated from `ServiceStack.Script.IScriptPluginAfter` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IScriptPluginAfter - { - void AfterPluginsLoaded(ServiceStack.Script.ScriptContext context); - } - - // Generated from `ServiceStack.Script.IScriptPluginBefore` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IScriptPluginBefore - { - void BeforePluginsLoaded(ServiceStack.Script.ScriptContext context); - } - - // Generated from `ServiceStack.Script.ISharpPages` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISharpPages - { - ServiceStack.Script.SharpPage AddPage(string virtualPath, ServiceStack.IO.IVirtualFile file); - ServiceStack.Script.SharpCodePage GetCodePage(string virtualPath); - System.DateTime GetLastModified(ServiceStack.Script.SharpPage page); - ServiceStack.Script.SharpPage GetPage(string virtualPath); - ServiceStack.Script.SharpPage OneTimePage(string contents, string ext, System.Action init); - ServiceStack.Script.SharpPage OneTimePage(string contents, string ext); - ServiceStack.Script.SharpPage ResolveLayoutPage(ServiceStack.Script.SharpPage page, string layout); - ServiceStack.Script.SharpPage ResolveLayoutPage(ServiceStack.Script.SharpCodePage page, string layout); - ServiceStack.Script.SharpPage TryGetPage(string path); - } - - // Generated from `ServiceStack.Script.IfScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IfScriptBlock : ServiceStack.Script.ScriptBlock - { - public IfScriptBlock() => throw null; - public override string Name { get => throw null; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.IgnoreResult` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IgnoreResult : ServiceStack.Script.IResultInstruction - { - public static ServiceStack.Script.IgnoreResult Value; - } - - // Generated from `ServiceStack.Script.InvokerType` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum InvokerType - { - ContextBlock, - ContextFilter, - Filter, - } - - // Generated from `ServiceStack.Script.JsAddition` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsAddition : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsAddition Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsAnd` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsAnd : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsAnd Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsArrayExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsArrayExpression : ServiceStack.Script.JsExpression - { - public ServiceStack.Script.JsToken[] Elements { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsArrayExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsArrayExpression(params ServiceStack.Script.JsToken[] elements) => throw null; - public JsArrayExpression(System.Collections.Generic.IEnumerable elements) => throw null; - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsArrowFunctionExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsArrowFunctionExpression : ServiceStack.Script.JsExpression - { - public ServiceStack.Script.JsToken Body { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsArrowFunctionExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public object Invoke(params object[] @params) => throw null; - public object Invoke(ServiceStack.Script.ScriptScopeContext scope, params object[] @params) => throw null; - public JsArrowFunctionExpression(ServiceStack.Script.JsIdentifier[] @params, ServiceStack.Script.JsToken body) => throw null; - public JsArrowFunctionExpression(ServiceStack.Script.JsIdentifier param, ServiceStack.Script.JsToken body) => throw null; - public ServiceStack.Script.JsIdentifier[] Params { get => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsAssignment` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsAssignment : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsAssignment Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsAssignmentExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsAssignmentExpression : ServiceStack.Script.JsExpression - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsAssignmentExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsAssignmentExpression(ServiceStack.Script.JsToken left, ServiceStack.Script.JsAssignment @operator, ServiceStack.Script.JsToken right) => throw null; - public ServiceStack.Script.JsToken Left { get => throw null; set => throw null; } - public ServiceStack.Script.JsAssignment Operator { get => throw null; set => throw null; } - public ServiceStack.Script.JsToken Right { get => throw null; set => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsBinaryExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsBinaryExpression : ServiceStack.Script.JsExpression - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsBinaryExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsBinaryExpression(ServiceStack.Script.JsToken left, ServiceStack.Script.JsBinaryOperator @operator, ServiceStack.Script.JsToken right) => throw null; - public ServiceStack.Script.JsToken Left { get => throw null; set => throw null; } - public ServiceStack.Script.JsBinaryOperator Operator { get => throw null; set => throw null; } - public ServiceStack.Script.JsToken Right { get => throw null; set => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsBinaryOperator` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class JsBinaryOperator : ServiceStack.Script.JsOperator - { - public abstract object Evaluate(object lhs, object rhs); - protected JsBinaryOperator() => throw null; - } - - // Generated from `ServiceStack.Script.JsBitwiseAnd` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsBitwiseAnd : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsBitwiseAnd Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsBitwiseLeftShift` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsBitwiseLeftShift : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsBitwiseLeftShift Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsBitwiseNot` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsBitwiseNot : ServiceStack.Script.JsUnaryOperator - { - public override object Evaluate(object target) => throw null; - public static ServiceStack.Script.JsBitwiseNot Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsBitwiseOr` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsBitwiseOr : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsBitwiseOr Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsBitwiseRightShift` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsBitwiseRightShift : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsBitwiseRightShift Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsBitwiseXOr` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsBitwiseXOr : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsBitwiseXOr Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsBlockStatement` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsBlockStatement : ServiceStack.Script.JsStatement - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsBlockStatement other) => throw null; - public override int GetHashCode() => throw null; - public JsBlockStatement(ServiceStack.Script.JsStatement[] statements) => throw null; - public JsBlockStatement(ServiceStack.Script.JsStatement statement) => throw null; - public ServiceStack.Script.JsStatement[] Statements { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsCallExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsCallExpression : ServiceStack.Script.JsExpression - { - public ServiceStack.Script.JsToken[] Arguments { get => throw null; } - public ServiceStack.Script.JsToken Callee { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsCallExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static System.Collections.Generic.List EvaluateArgumentValues(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsToken[] args) => throw null; - public string GetDisplayName() => throw null; - public override int GetHashCode() => throw null; - public static object InvokeDelegate(System.Delegate fn, object target, bool isMemberExpr, System.Collections.Generic.List fnArgValues) => throw null; - public JsCallExpression(ServiceStack.Script.JsToken callee, params ServiceStack.Script.JsToken[] arguments) => throw null; - public string Name { get => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Script.JsCoalescing` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsCoalescing : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsCoalescing Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsConditionalExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsConditionalExpression : ServiceStack.Script.JsExpression - { - public ServiceStack.Script.JsToken Alternate { get => throw null; } - public ServiceStack.Script.JsToken Consequent { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsConditionalExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsConditionalExpression(ServiceStack.Script.JsToken test, ServiceStack.Script.JsToken consequent, ServiceStack.Script.JsToken alternate) => throw null; - public ServiceStack.Script.JsToken Test { get => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsDeclaration` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsDeclaration : ServiceStack.Script.JsExpression - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsDeclaration other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public ServiceStack.Script.JsIdentifier Id { get => throw null; set => throw null; } - public ServiceStack.Script.JsToken Init { get => throw null; set => throw null; } - public JsDeclaration(ServiceStack.Script.JsIdentifier id, ServiceStack.Script.JsToken init) => throw null; - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsDivision` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsDivision : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsDivision Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsEquals` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsEquals : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsEquals Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class JsExpression : ServiceStack.Script.JsToken - { - protected JsExpression() => throw null; - public abstract System.Collections.Generic.Dictionary ToJsAst(); - public virtual string ToJsAstType() => throw null; - } - - // Generated from `ServiceStack.Script.JsExpressionStatement` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsExpressionStatement : ServiceStack.Script.JsStatement - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsExpressionStatement other) => throw null; - public ServiceStack.Script.JsToken Expression { get => throw null; } - public override int GetHashCode() => throw null; - public JsExpressionStatement(ServiceStack.Script.JsToken expression) => throw null; - } - - // Generated from `ServiceStack.Script.JsExpressionUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsExpressionUtils - { - public static ServiceStack.Script.JsExpression CreateJsExpression(ServiceStack.Script.JsToken lhs, ServiceStack.Script.JsBinaryOperator op, ServiceStack.Script.JsToken rhs) => throw null; - public static ServiceStack.Script.JsToken GetCachedJsExpression(this string expr, ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static ServiceStack.Script.JsToken GetCachedJsExpression(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static object GetJsExpressionAndEvaluate(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope, System.Action ifNone = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task GetJsExpressionAndEvaluateAsync(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope, System.Action ifNone = default(System.Action)) => throw null; - public static bool GetJsExpressionAndEvaluateToBool(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope, System.Action ifNone = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task GetJsExpressionAndEvaluateToBoolAsync(this System.ReadOnlyMemory expr, ServiceStack.Script.ScriptScopeContext scope, System.Action ifNone = default(System.Action)) => throw null; - public static System.ReadOnlySpan ParseBinaryExpression(this System.ReadOnlySpan literal, out ServiceStack.Script.JsExpression expr, bool filterExpression) => throw null; - public static System.ReadOnlySpan ParseJsExpression(this string literal, out ServiceStack.Script.JsToken token) => throw null; - public static System.ReadOnlySpan ParseJsExpression(this System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token, bool filterExpression) => throw null; - public static System.ReadOnlySpan ParseJsExpression(this System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token) => throw null; - public static System.ReadOnlySpan ParseJsExpression(this System.ReadOnlyMemory literal, out ServiceStack.Script.JsToken token) => throw null; - } - - // Generated from `ServiceStack.Script.JsFilterExpressionStatement` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsFilterExpressionStatement : ServiceStack.Script.JsStatement - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsFilterExpressionStatement other) => throw null; - public ServiceStack.Script.PageVariableFragment FilterExpression { get => throw null; } - public override int GetHashCode() => throw null; - public JsFilterExpressionStatement(string originalText, ServiceStack.Script.JsToken expr, params ServiceStack.Script.JsCallExpression[] filters) => throw null; - public JsFilterExpressionStatement(System.ReadOnlyMemory originalText, ServiceStack.Script.JsToken expr, System.Collections.Generic.List filters) => throw null; - } - - // Generated from `ServiceStack.Script.JsGreaterThan` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsGreaterThan : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsGreaterThan Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsGreaterThanEqual` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsGreaterThanEqual : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsGreaterThanEqual Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsIdentifier` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsIdentifier : ServiceStack.Script.JsExpression - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsIdentifier other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsIdentifier(string name) => throw null; - public JsIdentifier(System.ReadOnlySpan name) => throw null; - public string Name { get => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Script.JsLessThan` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsLessThan : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsLessThan Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsLessThanEqual` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsLessThanEqual : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsLessThanEqual Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsLiteral` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsLiteral : ServiceStack.Script.JsExpression - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsLiteral other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static ServiceStack.Script.JsLiteral False; - public override int GetHashCode() => throw null; - public JsLiteral(object value) => throw null; - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - public override string ToString() => throw null; - public static ServiceStack.Script.JsLiteral True; - public object Value { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsLogicOperator` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class JsLogicOperator : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - protected JsLogicOperator() => throw null; - public abstract bool Test(object lhs, object rhs); - } - - // Generated from `ServiceStack.Script.JsLogicalExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsLogicalExpression : ServiceStack.Script.JsExpression - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsLogicalExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsLogicalExpression(ServiceStack.Script.JsToken left, ServiceStack.Script.JsLogicOperator @operator, ServiceStack.Script.JsToken right) => throw null; - public ServiceStack.Script.JsToken Left { get => throw null; set => throw null; } - public ServiceStack.Script.JsLogicOperator Operator { get => throw null; set => throw null; } - public ServiceStack.Script.JsToken Right { get => throw null; set => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsMemberExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsMemberExpression : ServiceStack.Script.JsExpression - { - public bool Computed { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsMemberExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsMemberExpression(ServiceStack.Script.JsToken @object, ServiceStack.Script.JsToken property, bool computed) => throw null; - public JsMemberExpression(ServiceStack.Script.JsToken @object, ServiceStack.Script.JsToken property) => throw null; - public ServiceStack.Script.JsToken Object { get => throw null; } - public ServiceStack.Script.JsToken Property { get => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsMinus` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsMinus : ServiceStack.Script.JsUnaryOperator - { - public override object Evaluate(object target) => throw null; - public static ServiceStack.Script.JsMinus Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsMod` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsMod : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsMod Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsMultiplication` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsMultiplication : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsMultiplication Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsNot` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsNot : ServiceStack.Script.JsUnaryOperator - { - public override object Evaluate(object target) => throw null; - public static ServiceStack.Script.JsNot Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsNotEquals` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsNotEquals : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsNotEquals Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsNull` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsNull - { - public const string String = default; - public static ServiceStack.Script.JsLiteral Value; - } - - // Generated from `ServiceStack.Script.JsObjectExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsObjectExpression : ServiceStack.Script.JsExpression - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsObjectExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public static string GetKey(ServiceStack.Script.JsToken token) => throw null; - public JsObjectExpression(params ServiceStack.Script.JsProperty[] properties) => throw null; - public JsObjectExpression(System.Collections.Generic.IEnumerable properties) => throw null; - public ServiceStack.Script.JsProperty[] Properties { get => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsOperator` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class JsOperator : ServiceStack.Script.JsToken - { - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - protected JsOperator() => throw null; - public override string ToRawString() => throw null; - public abstract string Token { get; } - } - - // Generated from `ServiceStack.Script.JsOr` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsOr : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsOr Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsPageBlockFragmentStatement` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsPageBlockFragmentStatement : ServiceStack.Script.JsStatement - { - public ServiceStack.Script.PageBlockFragment Block { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsPageBlockFragmentStatement other) => throw null; - public override int GetHashCode() => throw null; - public JsPageBlockFragmentStatement(ServiceStack.Script.PageBlockFragment block) => throw null; - } - - // Generated from `ServiceStack.Script.JsPlus` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsPlus : ServiceStack.Script.JsUnaryOperator - { - public override object Evaluate(object target) => throw null; - public static ServiceStack.Script.JsPlus Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsProperty` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsProperty - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsProperty other) => throw null; - public override int GetHashCode() => throw null; - public JsProperty(ServiceStack.Script.JsToken key, ServiceStack.Script.JsToken value, bool shorthand) => throw null; - public JsProperty(ServiceStack.Script.JsToken key, ServiceStack.Script.JsToken value) => throw null; - public ServiceStack.Script.JsToken Key { get => throw null; } - public bool Shorthand { get => throw null; } - public ServiceStack.Script.JsToken Value { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsSpreadElement` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsSpreadElement : ServiceStack.Script.JsExpression - { - public ServiceStack.Script.JsToken Argument { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsSpreadElement other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsSpreadElement(ServiceStack.Script.JsToken argument) => throw null; - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsStatement` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class JsStatement - { - protected JsStatement() => throw null; - } - - // Generated from `ServiceStack.Script.JsStrictEquals` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsStrictEquals : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsStrictEquals Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsStrictNotEquals` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsStrictNotEquals : ServiceStack.Script.JsLogicOperator - { - public static ServiceStack.Script.JsStrictNotEquals Operator; - public override bool Test(object lhs, object rhs) => throw null; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsSubtraction` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsSubtraction : ServiceStack.Script.JsBinaryOperator - { - public override object Evaluate(object lhs, object rhs) => throw null; - public static ServiceStack.Script.JsSubtraction Operator; - public override string Token { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsTemplateElement` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsTemplateElement - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsTemplateElement other) => throw null; - public override int GetHashCode() => throw null; - public JsTemplateElement(string raw, string cooked, bool tail = default(bool)) => throw null; - public JsTemplateElement(ServiceStack.Script.JsTemplateElementValue value, bool tail) => throw null; - public bool Tail { get => throw null; } - public ServiceStack.Script.JsTemplateElementValue Value { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsTemplateElementValue` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsTemplateElementValue - { - public string Cooked { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsTemplateElementValue other) => throw null; - public override int GetHashCode() => throw null; - public JsTemplateElementValue(string raw, string cooked) => throw null; - public string Raw { get => throw null; } - } - - // Generated from `ServiceStack.Script.JsTemplateLiteral` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsTemplateLiteral : ServiceStack.Script.JsExpression - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsTemplateLiteral other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.Script.JsToken[] Expressions { get => throw null; } - public override int GetHashCode() => throw null; - public JsTemplateLiteral(string cooked) => throw null; - public JsTemplateLiteral(ServiceStack.Script.JsTemplateElement[] quasis = default(ServiceStack.Script.JsTemplateElement[]), ServiceStack.Script.JsToken[] expressions = default(ServiceStack.Script.JsToken[])) => throw null; - public ServiceStack.Script.JsTemplateElement[] Quasis { get => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Script.JsToken` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class JsToken : ServiceStack.IRawString - { - public abstract object Evaluate(ServiceStack.Script.ScriptScopeContext scope); - protected JsToken() => throw null; - public string JsonValue(object value) => throw null; - public abstract string ToRawString(); - public override string ToString() => throw null; - public static object UnwrapValue(ServiceStack.Script.JsToken token) => throw null; - } - - // Generated from `ServiceStack.Script.JsTokenUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsTokenUtils - { - public static System.ReadOnlySpan AdvancePastPipeOperator(this System.ReadOnlySpan literal) => throw null; - public static System.ReadOnlySpan Chop(this System.ReadOnlySpan literal, System.Char c) => throw null; - public static System.ReadOnlyMemory Chop(this System.ReadOnlyMemory literal, System.Char c) => throw null; - public static System.ReadOnlyMemory ChopNewLine(this System.ReadOnlyMemory literal) => throw null; - public static int CountPrecedingOccurrences(this System.ReadOnlySpan literal, int index, System.Char c) => throw null; - public static object Evaluate(this ServiceStack.Script.JsToken token) => throw null; - public static bool Evaluate(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope, out object result, out System.Threading.Tasks.Task asyncResult) => throw null; - public static System.Threading.Tasks.Task EvaluateAsync(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static bool EvaluateToBool(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope, out bool? result, out System.Threading.Tasks.Task asyncResult) => throw null; - public static bool EvaluateToBool(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static System.Threading.Tasks.Task EvaluateToBoolAsync(this ServiceStack.Script.JsToken token, ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static bool FirstCharEquals(this string literal, System.Char c) => throw null; - public static bool FirstCharEquals(this System.ReadOnlySpan literal, System.Char c) => throw null; - public static int GetBinaryPrecedence(string token) => throw null; - public static ServiceStack.Script.JsUnaryOperator GetUnaryOperator(this System.Char c) => throw null; - public static int IndexOfQuotedString(this System.ReadOnlySpan literal, System.Char quoteChar, out bool hasEscapeChars) => throw null; - public static bool IsEnd(this System.Char c) => throw null; - public static bool IsExpressionTerminatorChar(this System.Char c) => throw null; - public static bool IsNumericChar(this System.Char c) => throw null; - public static bool IsOperatorChar(this System.Char c) => throw null; - public static bool IsValidVarNameChar(this System.Char c) => throw null; - public static System.Byte[] NewLineUtf8; - public static System.Collections.Generic.Dictionary OperatorPrecedence; - public static System.ReadOnlySpan ParseArgumentsList(this System.ReadOnlySpan literal, out System.Collections.Generic.List args) => throw null; - public static System.ReadOnlySpan ParseJsToken(this System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token, bool filterExpression) => throw null; - public static System.ReadOnlySpan ParseJsToken(this System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token) => throw null; - public static System.ReadOnlySpan ParseVarName(this System.ReadOnlySpan literal, out System.ReadOnlySpan varName) => throw null; - public static System.ReadOnlyMemory ParseVarName(this System.ReadOnlyMemory literal, out System.ReadOnlyMemory varName) => throw null; - public static bool SafeCharEquals(this System.ReadOnlySpan literal, int index, System.Char c) => throw null; - public static System.Char SafeGetChar(this System.ReadOnlySpan literal, int index) => throw null; - public static System.Char SafeGetChar(this System.ReadOnlyMemory literal, int index) => throw null; - public static System.Collections.Generic.Dictionary ToJsAst(this ServiceStack.Script.JsToken token) => throw null; - public static string ToJsAstString(this ServiceStack.Script.JsToken token) => throw null; - public static string ToJsAstType(this System.Type type) => throw null; - } - - // Generated from `ServiceStack.Script.JsUnaryExpression` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsUnaryExpression : ServiceStack.Script.JsExpression - { - public ServiceStack.Script.JsToken Argument { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsUnaryExpression other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsUnaryExpression(ServiceStack.Script.JsUnaryOperator @operator, ServiceStack.Script.JsToken argument) => throw null; - public ServiceStack.Script.JsUnaryOperator Operator { get => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsUnaryOperator` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class JsUnaryOperator : ServiceStack.Script.JsOperator - { - public abstract object Evaluate(object target); - protected JsUnaryOperator() => throw null; - } - - // Generated from `ServiceStack.Script.JsVariableDeclaration` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsVariableDeclaration : ServiceStack.Script.JsExpression - { - public ServiceStack.Script.JsDeclaration[] Declarations { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.JsVariableDeclaration other) => throw null; - public override object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public override int GetHashCode() => throw null; - public JsVariableDeclaration(ServiceStack.Script.JsVariableDeclarationKind kind, params ServiceStack.Script.JsDeclaration[] declarations) => throw null; - public ServiceStack.Script.JsVariableDeclarationKind Kind { get => throw null; } - public override System.Collections.Generic.Dictionary ToJsAst() => throw null; - public override string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.JsVariableDeclarationKind` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum JsVariableDeclarationKind - { - Const, - Let, - Var, - } - - // Generated from `ServiceStack.Script.KeyValuesScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class KeyValuesScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public KeyValuesScriptBlock() => throw null; - public override string Name { get => throw null; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken ct) => throw null; - } - - // Generated from `ServiceStack.Script.Lisp` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Lisp - { - public static bool AllowLoadingRemoteScripts { get => throw null; set => throw null; } - public static ServiceStack.Script.Lisp.Sym BOOL_FALSE; - public static ServiceStack.Script.Lisp.Sym BOOL_TRUE; - // Generated from `ServiceStack.Script.Lisp+BuiltInFunc` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BuiltInFunc : ServiceStack.Script.Lisp.LispFunc - { - public ServiceStack.Script.Lisp.BuiltInFuncBody Body { get => throw null; } - public BuiltInFunc(string name, int carity, ServiceStack.Script.Lisp.BuiltInFuncBody body) : base(default(int)) => throw null; - public object EvalWith(ServiceStack.Script.Lisp.Interpreter interp, ServiceStack.Script.Lisp.Cell arg, ServiceStack.Script.Lisp.Cell interpEnv) => throw null; - public string Name { get => throw null; } - public override string ToString() => throw null; - } - - - // Generated from `ServiceStack.Script.Lisp+BuiltInFuncBody` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object BuiltInFuncBody(ServiceStack.Script.Lisp.Interpreter interp, object[] frame); - - - // Generated from `ServiceStack.Script.Lisp+Cell` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Cell : System.Collections.IEnumerable - { - public object Car; - public object Cdr; - public Cell(object car, object cdr) => throw null; - public System.Collections.IEnumerator GetEnumerator() => throw null; - public int Length { get => throw null; } - public override string ToString() => throw null; - public void Walk(System.Action fn) => throw null; - } - - - public static ServiceStack.Script.Lisp.Interpreter CreateInterpreter() => throw null; - public const string Extensions = default; - public static void Import(string lisp) => throw null; - public static void Import(System.ReadOnlyMemory lisp) => throw null; - public static string IndexGistId { get => throw null; set => throw null; } - public static void Init() => throw null; - public static string InitScript; - // Generated from `ServiceStack.Script.Lisp+Interpreter` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Interpreter - { - public ServiceStack.Script.ScriptScopeContext AssertScope() => throw null; - public System.IO.TextWriter COut { get => throw null; set => throw null; } - public void Def(string name, int carity, System.Func body) => throw null; - public void Def(string name, int carity, ServiceStack.Script.Lisp.BuiltInFuncBody body) => throw null; - public object Eval(object x, ServiceStack.Script.Lisp.Cell env) => throw null; - public object Eval(object x) => throw null; - public object Eval(System.Collections.Generic.IEnumerable sExpressions, ServiceStack.Script.Lisp.Cell env) => throw null; - public object Eval(System.Collections.Generic.IEnumerable sExpressions) => throw null; - public static object[] EvalArgs(ServiceStack.Script.Lisp.Cell arg, ServiceStack.Script.Lisp.Interpreter interp, ServiceStack.Script.Lisp.Cell env = default(ServiceStack.Script.Lisp.Cell)) => throw null; - public static System.Collections.Generic.Dictionary EvalMapArgs(ServiceStack.Script.Lisp.Cell arg, ServiceStack.Script.Lisp.Interpreter interp, ServiceStack.Script.Lisp.Cell env = default(ServiceStack.Script.Lisp.Cell)) => throw null; - public int Evaluations { get => throw null; set => throw null; } - public object GetSymbolValue(string name) => throw null; - public void InitGlobals() => throw null; - public Interpreter(ServiceStack.Script.Lisp.Interpreter globalInterp) => throw null; - public Interpreter() => throw null; - public string ReplEval(ServiceStack.Script.ScriptContext context, System.IO.Stream outputStream, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public ServiceStack.Script.ScriptScopeContext? Scope { get => throw null; set => throw null; } - public void SetSymbolValue(string name, object value) => throw null; - public static int TotalEvaluations { get => throw null; } - } - - - public const string LispCore = default; - // Generated from `ServiceStack.Script.Lisp+LispFunc` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class LispFunc - { - public int Carity { get => throw null; } - public void EvalFrame(object[] frame, ServiceStack.Script.Lisp.Interpreter interp, ServiceStack.Script.Lisp.Cell env) => throw null; - protected LispFunc(int carity) => throw null; - public object[] MakeFrame(ServiceStack.Script.Lisp.Cell arg) => throw null; - } - - - public static System.Collections.Generic.List Parse(string lisp) => throw null; - public static System.Collections.Generic.List Parse(System.ReadOnlyMemory lisp) => throw null; - public const string Prelude = default; - public static object QqExpand(object x) => throw null; - public static object QqQuote(object x) => throw null; - // Generated from `ServiceStack.Script.Lisp+Reader` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Reader - { - public static object EOF; - public object Read() => throw null; - public Reader(System.ReadOnlyMemory source) => throw null; - } - - - public static void Reset() => throw null; - public static void RunRepl(ServiceStack.Script.ScriptContext context) => throw null; - public static void Set(string symbolName, object value) => throw null; - public static string Str(object x, bool quoteString = default(bool)) => throw null; - // Generated from `ServiceStack.Script.Lisp+Sym` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Sym - { - public override int GetHashCode() => throw null; - public bool IsInterned { get => throw null; } - public string Name { get => throw null; } - public static ServiceStack.Script.Lisp.Sym New(string name) => throw null; - protected static ServiceStack.Script.Lisp.Sym New(string name, System.Func make) => throw null; - public Sym(string name) => throw null; - protected static System.Collections.Generic.Dictionary Table; - public override string ToString() => throw null; - } - - - public static ServiceStack.Script.Lisp.Sym TRUE; - public static ServiceStack.Script.Lisp.Cell ToCons(System.Collections.IEnumerable seq) => throw null; - } - - // Generated from `ServiceStack.Script.LispEvalException` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LispEvalException : System.Exception - { - public LispEvalException(string msg, object x, bool quoteString = default(bool)) => throw null; - public override string ToString() => throw null; - public System.Collections.Generic.List Trace { get => throw null; } - } - - // Generated from `ServiceStack.Script.LispScriptMethods` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LispScriptMethods : ServiceStack.Script.ScriptMethods - { - public LispScriptMethods() => throw null; - public System.Collections.Generic.List gistindex(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.List symbols(ServiceStack.Script.ScriptScopeContext scope) => throw null; - } - - // Generated from `ServiceStack.Script.LispStatements` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LispStatements : ServiceStack.Script.JsStatement - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.LispStatements other) => throw null; - public override int GetHashCode() => throw null; - public LispStatements(object[] sExpressions) => throw null; - public object[] SExpressions { get => throw null; } - } - - // Generated from `ServiceStack.Script.MarkdownTable` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MarkdownTable - { - public string Caption { get => throw null; set => throw null; } - public System.Collections.Generic.List Headers { get => throw null; } - public bool IncludeHeaders { get => throw null; set => throw null; } - public bool IncludeRowNumbers { get => throw null; set => throw null; } - public MarkdownTable() => throw null; - public string Render() => throw null; - public System.Collections.Generic.List> Rows { get => throw null; } - } - - // Generated from `ServiceStack.Script.NoopScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NoopScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public override string Name { get => throw null; } - public NoopScriptBlock() => throw null; - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.PageBlockFragment` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageBlockFragment : ServiceStack.Script.PageFragment - { - public System.ReadOnlyMemory Argument { get => throw null; } - public string ArgumentString { get => throw null; } - public ServiceStack.Script.PageFragment[] Body { get => throw null; } - public ServiceStack.Script.PageElseBlock[] ElseBlocks { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.PageBlockFragment other) => throw null; - public override int GetHashCode() => throw null; - public string Name { get => throw null; } - public System.ReadOnlyMemory OriginalText { get => throw null; set => throw null; } - public PageBlockFragment(string originalText, string name, string argument, System.Collections.Generic.List body, System.Collections.Generic.List elseStatements = default(System.Collections.Generic.List)) => throw null; - public PageBlockFragment(string originalText, string name, string argument, ServiceStack.Script.JsStatement body, System.Collections.Generic.IEnumerable elseStatements = default(System.Collections.Generic.IEnumerable)) => throw null; - public PageBlockFragment(string originalText, string name, string argument, ServiceStack.Script.JsBlockStatement body, System.Collections.Generic.IEnumerable elseStatements = default(System.Collections.Generic.IEnumerable)) => throw null; - public PageBlockFragment(string name, System.ReadOnlyMemory argument, System.Collections.Generic.List body, System.Collections.Generic.List elseStatements = default(System.Collections.Generic.List)) => throw null; - public PageBlockFragment(System.ReadOnlyMemory originalText, string name, System.ReadOnlyMemory argument, System.Collections.Generic.IEnumerable body, System.Collections.Generic.IEnumerable elseStatements = default(System.Collections.Generic.IEnumerable)) => throw null; - } - - // Generated from `ServiceStack.Script.PageElseBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageElseBlock : ServiceStack.Script.PageFragment - { - public System.ReadOnlyMemory Argument { get => throw null; } - public ServiceStack.Script.PageFragment[] Body { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.PageElseBlock other) => throw null; - public override int GetHashCode() => throw null; - public PageElseBlock(string argument, System.Collections.Generic.List body) => throw null; - public PageElseBlock(string argument, ServiceStack.Script.JsStatement statement) => throw null; - public PageElseBlock(string argument, ServiceStack.Script.JsBlockStatement block) => throw null; - public PageElseBlock(System.ReadOnlyMemory argument, System.Collections.Generic.IEnumerable body) => throw null; - public PageElseBlock(System.ReadOnlyMemory argument, ServiceStack.Script.PageFragment[] body) => throw null; - } - - // Generated from `ServiceStack.Script.PageFormat` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageFormat - { - public string ArgsPrefix { get => throw null; set => throw null; } - public string ArgsSuffix { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public string DefaultEncodeValue(object value) => throw null; - public virtual object DefaultExpressionException(ServiceStack.Script.PageResult result, System.Exception ex) => throw null; - public ServiceStack.Script.SharpPage DefaultResolveLayout(ServiceStack.Script.SharpPage page) => throw null; - public virtual System.Threading.Tasks.Task DefaultViewException(ServiceStack.Script.PageResult pageResult, ServiceStack.Web.IRequest req, System.Exception ex) => throw null; - public System.Func EncodeValue { get => throw null; set => throw null; } - public string Extension { get => throw null; set => throw null; } - public System.Func OnExpressionException { get => throw null; set => throw null; } - public System.Func OnViewException { get => throw null; set => throw null; } - public PageFormat() => throw null; - public System.Func ResolveLayout { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Script.PageFragment` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class PageFragment - { - protected PageFragment() => throw null; - } - - // Generated from `ServiceStack.Script.PageJsBlockStatementFragment` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageJsBlockStatementFragment : ServiceStack.Script.PageFragment - { - public ServiceStack.Script.JsBlockStatement Block { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.PageJsBlockStatementFragment other) => throw null; - public override int GetHashCode() => throw null; - public PageJsBlockStatementFragment(ServiceStack.Script.JsBlockStatement statement) => throw null; - public bool Quiet { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Script.PageLispStatementFragment` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageLispStatementFragment : ServiceStack.Script.PageFragment - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.PageLispStatementFragment other) => throw null; - public override int GetHashCode() => throw null; - public ServiceStack.Script.LispStatements LispStatements { get => throw null; } - public PageLispStatementFragment(ServiceStack.Script.LispStatements statements) => throw null; - public bool Quiet { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Script.PageResult` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageResult : System.IDisposable, ServiceStack.Web.IStreamWriterAsync, ServiceStack.Web.IHasOptions, ServiceStack.Script.IPageResult - { - public System.Collections.Generic.Dictionary Args { get => throw null; set => throw null; } - public void AssertNextEvaluation() => throw null; - public void AssertNextPartial() => throw null; - public ServiceStack.Script.PageResult AssignArgs(System.Collections.Generic.Dictionary args) => throw null; - public string AssignExceptionsTo { get => throw null; set => throw null; } - public string CatchExceptionsIn { get => throw null; set => throw null; } - public ServiceStack.Script.PageResult Clone(ServiceStack.Script.SharpPage page) => throw null; - public ServiceStack.Script.SharpCodePage CodePage { get => throw null; } - public string ContentType { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptContext Context { get => throw null; } - public ServiceStack.Script.ScriptScopeContext CreateScope(System.IO.Stream outputStream = default(System.IO.Stream)) => throw null; - public bool DisableBuffering { get => throw null; set => throw null; } - public void Dispose() => throw null; - public object EvaluateIfToken(object value, ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Int64 Evaluations { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet ExcludeFiltersNamed { get => throw null; } - public ServiceStack.Script.PageResult Execute() => throw null; - public System.Collections.Generic.Dictionary>> FilterTransformers { get => throw null; set => throw null; } - public ServiceStack.Script.PageFormat Format { get => throw null; } - public ServiceStack.Script.ScriptBlock GetBlock(string name) => throw null; - public bool HaltExecution { get => throw null; set => throw null; } - public System.Threading.Tasks.Task Init() => throw null; - public System.Exception LastFilterError { get => throw null; set => throw null; } - public string[] LastFilterStackTrace { get => throw null; set => throw null; } - public string Layout { get => throw null; set => throw null; } - public ServiceStack.Script.SharpPage LayoutPage { get => throw null; set => throw null; } - public object Model { get => throw null; set => throw null; } - public bool NoLayout { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Options { get => throw null; set => throw null; } - public System.Collections.Generic.List>> OutputTransformers { get => throw null; set => throw null; } - public ServiceStack.Script.SharpPage Page { get => throw null; } - public PageResult(ServiceStack.Script.SharpPage page) => throw null; - public PageResult(ServiceStack.Script.SharpCodePage page) => throw null; - public System.Collections.Generic.List>> PageTransformers { get => throw null; set => throw null; } - public System.ReadOnlySpan ParseJsExpression(ServiceStack.Script.ScriptScopeContext scope, System.ReadOnlySpan literal, out ServiceStack.Script.JsToken token) => throw null; - public int PartialStackDepth { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Partials { get => throw null; set => throw null; } - public void ResetIterations() => throw null; - public string Result { get => throw null; } - public string ResultOutput { get => throw null; } - public bool RethrowExceptions { get => throw null; set => throw null; } - public ServiceStack.Script.ReturnValue ReturnValue { get => throw null; set => throw null; } - public System.Collections.Generic.List ScriptBlocks { get => throw null; set => throw null; } - public System.Collections.Generic.List ScriptMethods { get => throw null; set => throw null; } - public bool ShouldSkipFilterExecution(ServiceStack.Script.PageVariableFragment var) => throw null; - public bool ShouldSkipFilterExecution(ServiceStack.Script.PageFragment fragment) => throw null; - public bool ShouldSkipFilterExecution(ServiceStack.Script.JsStatement statement) => throw null; - public bool? SkipExecutingFiltersIfError { get => throw null; set => throw null; } - public bool SkipFilterExecution { get => throw null; set => throw null; } - public int StackDepth { get => throw null; set => throw null; } - public System.Collections.Generic.List TemplateBlocks { get => throw null; } - public System.Collections.Generic.List TemplateFilters { get => throw null; } - public ServiceStack.Script.ScriptBlock TryGetBlock(string name) => throw null; - public string VirtualPath { get => throw null; } - public System.Threading.Tasks.Task WriteCodePageAsync(ServiceStack.Script.SharpCodePage page, ServiceStack.Script.ScriptScopeContext scope, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task WritePageAsync(ServiceStack.Script.SharpPage page, ServiceStack.Script.SharpCodePage codePage, ServiceStack.Script.ScriptScopeContext scope, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task WritePageAsync(ServiceStack.Script.SharpPage page, ServiceStack.Script.ScriptScopeContext scope, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task WriteStatementsAsync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable blockStatements, string callTrace, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task WriteStatementsAsync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable blockStatements, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task WriteVarAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageVariableFragment var, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.PageStringFragment` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageStringFragment : ServiceStack.Script.PageFragment - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.PageStringFragment other) => throw null; - public override int GetHashCode() => throw null; - public PageStringFragment(string value) => throw null; - public PageStringFragment(System.ReadOnlyMemory value) => throw null; - public System.ReadOnlyMemory Value { get => throw null; set => throw null; } - public string ValueString { get => throw null; } - public System.ReadOnlyMemory ValueUtf8 { get => throw null; } - } - - // Generated from `ServiceStack.Script.PageVariableFragment` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageVariableFragment : ServiceStack.Script.PageFragment - { - public string Binding { get => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Script.PageVariableFragment other) => throw null; - public object Evaluate(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.Script.JsToken Expression { get => throw null; } - public ServiceStack.Script.JsCallExpression[] FilterExpressions { get => throw null; } - public override int GetHashCode() => throw null; - public ServiceStack.Script.JsCallExpression InitialExpression { get => throw null; } - public object InitialValue { get => throw null; } - public System.ReadOnlyMemory OriginalText { get => throw null; set => throw null; } - public System.ReadOnlyMemory OriginalTextUtf8 { get => throw null; } - public PageVariableFragment(System.ReadOnlyMemory originalText, ServiceStack.Script.JsToken expr, System.Collections.Generic.List filterCommands) => throw null; - } - - // Generated from `ServiceStack.Script.ParseRealNumber` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ParseRealNumber(System.ReadOnlySpan numLiteral); - - // Generated from `ServiceStack.Script.PartialScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PartialScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public override string Name { get => throw null; } - public PartialScriptBlock() => throw null; - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.ProtectedScriptBlocks` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProtectedScriptBlocks : ServiceStack.Script.IScriptPlugin - { - public ProtectedScriptBlocks() => throw null; - public void Register(ServiceStack.Script.ScriptContext context) => throw null; - } - - // Generated from `ServiceStack.Script.ProtectedScripts` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProtectedScripts : ServiceStack.Script.ScriptMethods - { - public ServiceStack.Script.IgnoreResult AppendAllLines(string path, string[] lines) => throw null; - public ServiceStack.Script.IgnoreResult AppendAllLines(ServiceStack.Script.FileScripts fs, string path, string[] lines) => throw null; - public ServiceStack.Script.IgnoreResult AppendAllText(string path, string text) => throw null; - public ServiceStack.Script.IgnoreResult AppendAllText(ServiceStack.Script.FileScripts fs, string path, string text) => throw null; - public System.Delegate C(string qualifiedMethodName) => throw null; - public ServiceStack.ObjectActivator Constructor(string qualifiedConstructorName) => throw null; - public ServiceStack.Script.IgnoreResult Copy(string from, string to) => throw null; - public ServiceStack.Script.IgnoreResult Copy(ServiceStack.Script.IOScript os, string from, string to) => throw null; - public ServiceStack.Script.IgnoreResult Create(string from, string to) => throw null; - public ServiceStack.Script.IgnoreResult Create(ServiceStack.Script.FileScripts fs, string from, string to) => throw null; - public static string CreateCacheKey(string url, System.Collections.Generic.Dictionary options = default(System.Collections.Generic.Dictionary)) => throw null; - public ServiceStack.Script.IgnoreResult CreateDirectory(string path) => throw null; - public ServiceStack.Script.IgnoreResult CreateDirectory(ServiceStack.Script.DirectoryScripts ds, string path) => throw null; - public ServiceStack.Script.IgnoreResult Decrypt(string path) => throw null; - public ServiceStack.Script.IgnoreResult Decrypt(ServiceStack.Script.FileScripts fs, string path) => throw null; - public ServiceStack.Script.IgnoreResult Delete(string path) => throw null; - public ServiceStack.Script.IgnoreResult Delete(ServiceStack.Script.IOScript os, string path) => throw null; - public ServiceStack.Script.DirectoryScripts Directory() => throw null; - public ServiceStack.Script.IgnoreResult Encrypt(string path) => throw null; - public ServiceStack.Script.IgnoreResult Encrypt(ServiceStack.Script.FileScripts fs, string path) => throw null; - public bool Exists(string path) => throw null; - public bool Exists(ServiceStack.Script.IOScript os, string path) => throw null; - public System.Delegate F(string qualifiedMethodName, System.Collections.Generic.List args) => throw null; - public System.Delegate F(string qualifiedMethodName) => throw null; - public ServiceStack.Script.FileScripts File() => throw null; - public System.Delegate Function(string qualifiedMethodName, System.Collections.Generic.List args) => throw null; - public System.Delegate Function(string qualifiedMethodName) => throw null; - public string GetCurrentDirectory(ServiceStack.Script.DirectoryScripts ds) => throw null; - public string GetCurrentDirectory() => throw null; - public string[] GetDirectories(string path) => throw null; - public string[] GetDirectories(ServiceStack.Script.DirectoryScripts ds, string path) => throw null; - public string GetDirectoryRoot(string path) => throw null; - public string GetDirectoryRoot(ServiceStack.Script.DirectoryScripts ds, string path) => throw null; - public string[] GetFiles(string path) => throw null; - public string[] GetFiles(ServiceStack.Script.DirectoryScripts ds, string path) => throw null; - public string[] GetLogicalDrives(ServiceStack.Script.DirectoryScripts ds) => throw null; - public string[] GetLogicalDrives() => throw null; - public static ServiceStack.Script.ProtectedScripts Instance; - public ServiceStack.Script.IgnoreResult Move(string from, string to) => throw null; - public ServiceStack.Script.IgnoreResult Move(ServiceStack.Script.IOScript os, string from, string to) => throw null; - public ProtectedScripts() => throw null; - public System.Byte[] ReadAllBytes(string path) => throw null; - public System.Byte[] ReadAllBytes(ServiceStack.Script.FileScripts fs, string path) => throw null; - public string[] ReadAllLines(string path) => throw null; - public string[] ReadAllLines(ServiceStack.Script.FileScripts fs, string path) => throw null; - public string ReadAllText(string path) => throw null; - public string ReadAllText(ServiceStack.Script.FileScripts fs, string path) => throw null; - public ServiceStack.Script.IgnoreResult Replace(string from, string to, string backup) => throw null; - public ServiceStack.Script.IgnoreResult Replace(ServiceStack.Script.FileScripts fs, string from, string to, string backup) => throw null; - public ServiceStack.IO.IVirtualFile ResolveFile(string filterName, ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; - public ServiceStack.IO.IVirtualFile ResolveFile(ServiceStack.IO.IVirtualPathProvider virtualFiles, string fromVirtualPath, string virtualPath) => throw null; - public static string TypeNotFoundErrorMessage(string typeName) => throw null; - public ServiceStack.Script.IgnoreResult WriteAllBytes(string path, System.Byte[] bytes) => throw null; - public ServiceStack.Script.IgnoreResult WriteAllBytes(ServiceStack.Script.FileScripts fs, string path, System.Byte[] bytes) => throw null; - public ServiceStack.Script.IgnoreResult WriteAllLines(string path, string[] lines) => throw null; - public ServiceStack.Script.IgnoreResult WriteAllLines(ServiceStack.Script.FileScripts fs, string path, string[] lines) => throw null; - public ServiceStack.Script.IgnoreResult WriteAllText(string path, string text) => throw null; - public ServiceStack.Script.IgnoreResult WriteAllText(ServiceStack.Script.FileScripts fs, string path, string text) => throw null; - public System.Collections.Generic.IEnumerable allFiles(ServiceStack.IO.IVirtualPathProvider vfs) => throw null; - public System.Collections.Generic.IEnumerable allFiles() => throw null; - public System.Reflection.MemberInfo[] allMemberInfos(object o) => throw null; - public ServiceStack.Script.ScriptMethodInfo[] allMethodTypes(object o) => throw null; - public System.Collections.Generic.IEnumerable allRootDirectories(ServiceStack.IO.IVirtualPathProvider vfs) => throw null; - public System.Collections.Generic.IEnumerable allRootDirectories() => throw null; - public System.Collections.Generic.IEnumerable allRootFiles(ServiceStack.IO.IVirtualPathProvider vfs) => throw null; - public System.Collections.Generic.IEnumerable allRootFiles() => throw null; - public string appendToFile(string virtualPath, object contents) => throw null; - public string appendToFile(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath, object contents) => throw null; - public System.Type assertTypeOf(string name) => throw null; - public System.Byte[] bytesContent(ServiceStack.IO.IVirtualFile file) => throw null; - public object cacheClear(ServiceStack.Script.ScriptScopeContext scope, object cacheNames) => throw null; - public object call(object instance, string name, System.Collections.Generic.List args) => throw null; - public object call(object instance, string name) => throw null; - public string cat(ServiceStack.Script.ScriptScopeContext scope, string target) => throw null; - public string combinePath(string basePath, string relativePath) => throw null; - public string combinePath(ServiceStack.IO.IVirtualPathProvider vfs, string basePath, string relativePath) => throw null; - public string cp(ServiceStack.Script.ScriptScopeContext scope, string from, string to) => throw null; - public object createInstance(System.Type type, System.Collections.Generic.List constructorArgs) => throw null; - public object createInstance(System.Type type) => throw null; - public object @default(string typeName) => throw null; - public string deleteDirectory(string virtualPath) => throw null; - public string deleteDirectory(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public string deleteFile(string virtualPath) => throw null; - public string deleteFile(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public ServiceStack.IO.IVirtualDirectory dir(string virtualPath) => throw null; - public ServiceStack.IO.IVirtualDirectory dir(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public string dirDelete(string virtualPath) => throw null; - public System.Collections.Generic.IEnumerable dirDirectories(string dirPath) => throw null; - public System.Collections.Generic.IEnumerable dirDirectories(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath) => throw null; - public ServiceStack.IO.IVirtualDirectory dirDirectory(string dirPath, string dirName) => throw null; - public ServiceStack.IO.IVirtualDirectory dirDirectory(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath, string dirName) => throw null; - public bool dirExists(string virtualPath) => throw null; - public bool dirExists(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public ServiceStack.IO.IVirtualFile dirFile(string dirPath, string fileName) => throw null; - public ServiceStack.IO.IVirtualFile dirFile(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath, string fileName) => throw null; - public System.Collections.Generic.IEnumerable dirFiles(string dirPath) => throw null; - public System.Collections.Generic.IEnumerable dirFiles(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath) => throw null; - public System.Collections.Generic.IEnumerable dirFilesFind(string dirPath, string globPattern) => throw null; - public System.Collections.Generic.IEnumerable dirFindFiles(ServiceStack.IO.IVirtualDirectory dir, string globPattern, int maxDepth) => throw null; - public System.Collections.Generic.IEnumerable dirFindFiles(ServiceStack.IO.IVirtualDirectory dir, string globPattern) => throw null; - public string exePath(string exeName) => throw null; - public ServiceStack.Script.StopExecution exit(int exitCode) => throw null; - public ServiceStack.IO.IVirtualFile file(string virtualPath) => throw null; - public ServiceStack.IO.IVirtualFile file(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public string fileAppend(string virtualPath, object contents) => throw null; - public System.Byte[] fileBytesContent(string virtualPath) => throw null; - public System.Byte[] fileBytesContent(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public string fileContentType(ServiceStack.IO.IVirtualFile file) => throw null; - public object fileContents(object file) => throw null; - public object fileContents(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public System.Threading.Tasks.Task fileContentsWithCache(ServiceStack.Script.ScriptScopeContext scope, string virtualPath, object options) => throw null; - public System.Threading.Tasks.Task fileContentsWithCache(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; - public string fileDelete(string virtualPath) => throw null; - public bool fileExists(string virtualPath) => throw null; - public bool fileExists(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public string fileHash(string virtualPath) => throw null; - public string fileHash(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public string fileHash(ServiceStack.IO.IVirtualFile file) => throw null; - public bool fileIsBinary(ServiceStack.IO.IVirtualFile file) => throw null; - public string fileReadAll(string virtualPath) => throw null; - public System.Byte[] fileReadAllBytes(string virtualPath) => throw null; - public string fileTextContents(string virtualPath) => throw null; - public string fileTextContents(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath) => throw null; - public string fileWrite(string virtualPath, object contents) => throw null; - public System.Collections.Generic.IEnumerable filesFind(string globPattern) => throw null; - public System.Collections.Generic.IEnumerable findFiles(string globPattern) => throw null; - public System.Collections.Generic.IEnumerable findFiles(ServiceStack.IO.IVirtualPathProvider vfs, string globPattern, int maxDepth) => throw null; - public System.Collections.Generic.IEnumerable findFiles(ServiceStack.IO.IVirtualPathProvider vfs, string globPattern) => throw null; - public System.Collections.Generic.IEnumerable findFilesInDirectory(string dirPath, string globPattern) => throw null; - public System.Collections.Generic.IEnumerable findFilesInDirectory(ServiceStack.IO.IVirtualPathProvider vfs, string dirPath, string globPattern) => throw null; - public System.Type getType(object instance) => throw null; - public System.Threading.Tasks.Task ifDebugIncludeScript(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; - public System.Threading.Tasks.Task includeFile(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; - public System.Threading.Tasks.Task includeFileWithCache(ServiceStack.Script.ScriptScopeContext scope, string virtualPath, object options) => throw null; - public System.Threading.Tasks.Task includeFileWithCache(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; - public System.Threading.Tasks.Task includeUrl(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; - public System.Threading.Tasks.Task includeUrl(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; - public System.Threading.Tasks.Task includeUrlWithCache(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; - public System.Threading.Tasks.Task includeUrlWithCache(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; - public ServiceStack.Script.IgnoreResult inspectVars(object vars) => throw null; - public object invalidateAllCaches(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.Script.ScriptMethodInfo[] methodTypes(object o) => throw null; - public System.Collections.Generic.List methods(object o) => throw null; - public string mkdir(ServiceStack.Script.ScriptScopeContext scope, string target) => throw null; - public string mv(ServiceStack.Script.ScriptScopeContext scope, string from, string to) => throw null; - public object @new(string typeName, System.Collections.Generic.List constructorArgs) => throw null; - public object @new(string typeName) => throw null; - public string osPaths(string path) => throw null; - public string proc(ServiceStack.Script.ScriptScopeContext scope, string fileName, System.Collections.Generic.Dictionary options) => throw null; - public string proc(ServiceStack.Script.ScriptScopeContext scope, string fileName) => throw null; - public object resolve(ServiceStack.Script.ScriptScopeContext scope, object type) => throw null; - public ServiceStack.IO.IVirtualFile resolveFile(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; - public string rm(ServiceStack.Script.ScriptScopeContext scope, string from, string to) => throw null; - public string rmdir(ServiceStack.Script.ScriptScopeContext scope, string target) => throw null; - public System.Collections.Generic.List scriptMethodNames(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.List scriptMethodSignatures(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.List scriptMethods(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object set(object instance, System.Collections.Generic.Dictionary args) => throw null; - public string sh(ServiceStack.Script.ScriptScopeContext scope, string arguments, System.Collections.Generic.Dictionary options) => throw null; - public string sh(ServiceStack.Script.ScriptScopeContext scope, string arguments) => throw null; - public string sha1(object target) => throw null; - public string sha256(object target) => throw null; - public string sha512(object target) => throw null; - public ServiceStack.Script.ScriptMethodInfo[] staticMethodTypes(object o) => throw null; - public System.Collections.Generic.List staticMethods(object o) => throw null; - public string textContents(ServiceStack.IO.IVirtualFile file) => throw null; - public string touch(ServiceStack.Script.ScriptScopeContext scope, string target) => throw null; - public string typeQualifiedName(System.Type type) => throw null; - public System.Type @typeof(string typeName) => throw null; - public System.Type typeofProgId(string name) => throw null; - public System.ReadOnlyMemory urlBytesContents(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; - public System.Threading.Tasks.Task urlContents(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; - public System.Threading.Tasks.Task urlContents(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; - public System.Threading.Tasks.Task urlContentsWithCache(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; - public System.Threading.Tasks.Task urlContentsWithCache(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; - public string urlTextContents(ServiceStack.Script.ScriptScopeContext scope, string url, object options) => throw null; - public string urlTextContents(ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; - public System.Collections.Generic.IEnumerable vfsAllFiles() => throw null; - public System.Collections.Generic.IEnumerable vfsAllRootDirectories() => throw null; - public System.Collections.Generic.IEnumerable vfsAllRootFiles() => throw null; - public string vfsCombinePath(string basePath, string relativePath) => throw null; - public ServiceStack.IO.FileSystemVirtualFiles vfsFileSystem(string dirPath) => throw null; - public ServiceStack.IO.GistVirtualFiles vfsGist(string gistId, string accessToken) => throw null; - public ServiceStack.IO.GistVirtualFiles vfsGist(string gistId) => throw null; - public ServiceStack.IO.MemoryVirtualFiles vfsMemory() => throw null; - public string writeFile(string virtualPath, object contents) => throw null; - public string writeFile(ServiceStack.IO.IVirtualPathProvider vfs, string virtualPath, object contents) => throw null; - public object writeFiles(ServiceStack.IO.IVirtualPathProvider vfs, System.Collections.Generic.Dictionary files) => throw null; - public object writeTextFiles(ServiceStack.IO.IVirtualPathProvider vfs, System.Collections.Generic.Dictionary textFiles) => throw null; - public string xcopy(ServiceStack.Script.ScriptScopeContext scope, string from, string to) => throw null; - } - - // Generated from `ServiceStack.Script.RawScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RawScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public override string Name { get => throw null; } - public RawScriptBlock() => throw null; - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.RawString` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RawString : ServiceStack.IRawString - { - public static ServiceStack.Script.RawString Empty; - public RawString(string value) => throw null; - public string ToRawString() => throw null; - } - - // Generated from `ServiceStack.Script.ReturnValue` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ReturnValue - { - public System.Collections.Generic.Dictionary Args { get => throw null; } - public object Result { get => throw null; } - public ReturnValue(object result, System.Collections.Generic.Dictionary args) => throw null; - } - - // Generated from `ServiceStack.Script.ScopeVars` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScopeVars : System.Collections.Generic.Dictionary - { - public ScopeVars(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public ScopeVars(int capacity) => throw null; - public ScopeVars(System.Collections.Generic.IEqualityComparer comparer) => throw null; - public ScopeVars(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public ScopeVars(System.Collections.Generic.IDictionary dictionary) => throw null; - public ScopeVars() => throw null; - } - - // Generated from `ServiceStack.Script.ScriptABlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptABlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptABlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptBBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptBBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptBBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ScriptBlock : ServiceStack.Script.IConfigureScriptContext - { - protected int AssertWithinMaxQuota(int value) => throw null; - public virtual ServiceStack.Script.ScriptLanguage Body { get => throw null; } - protected bool CanExportScopeArgs(object element) => throw null; - public void Configure(ServiceStack.Script.ScriptContext context) => throw null; - public ServiceStack.Script.ScriptContext Context { get => throw null; set => throw null; } - protected virtual string GetCallTrace(ServiceStack.Script.PageBlockFragment fragment) => throw null; - protected virtual string GetElseCallTrace(ServiceStack.Script.PageElseBlock fragment) => throw null; - public abstract string Name { get; } - public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } - protected ScriptBlock() => throw null; - public abstract System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token); - protected virtual System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment[] body, string callTrace, System.Threading.CancellationToken cancel) => throw null; - protected virtual System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsStatement[] body, string callTrace, System.Threading.CancellationToken cancel) => throw null; - protected virtual System.Threading.Tasks.Task WriteBodyAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment fragment, System.Threading.CancellationToken token) => throw null; - protected virtual System.Threading.Tasks.Task WriteElseAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageElseBlock fragment, System.Threading.CancellationToken token) => throw null; - protected System.Threading.Tasks.Task WriteElseAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageElseBlock[] elseBlocks, System.Threading.CancellationToken cancel) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptButtonBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptButtonBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptButtonBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptCode` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptCode : ServiceStack.Script.ScriptLanguage - { - public static ServiceStack.Script.ScriptLanguage Language; - public override string Name { get => throw null; } - public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; - public override System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; - public override System.Threading.Tasks.Task WriteStatementAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsStatement statement, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptCodeUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScriptCodeUtils - { - public static ServiceStack.Script.SharpPage CodeBlock(this ServiceStack.Script.ScriptContext context, string code) => throw null; - public static ServiceStack.Script.SharpPage CodeSharpPage(this ServiceStack.Script.ScriptContext context, string code) => throw null; - public static string EnsureReturn(string code) => throw null; - public static object EvaluateCode(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static T EvaluateCode(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task EvaluateCodeAsync(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task EvaluateCodeAsync(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static ServiceStack.Script.JsBlockStatement ParseCode(this ServiceStack.Script.ScriptContext context, string code) => throw null; - public static ServiceStack.Script.JsBlockStatement ParseCode(this ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory code) => throw null; - public static System.ReadOnlyMemory ParseCodeScriptBlock(this System.ReadOnlyMemory literal, ServiceStack.Script.ScriptContext context, out ServiceStack.Script.PageBlockFragment blockFragment) => throw null; - public static string RenderCode(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task RenderCodeAsync(this ServiceStack.Script.ScriptContext context, string code, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptConfig` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScriptConfig - { - public static bool AllowAssignmentExpressions { get => throw null; set => throw null; } - public static bool AllowUnixPipeSyntax { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet CaptureAndEvaluateExceptionsToNull { get => throw null; set => throw null; } - public static System.Globalization.CultureInfo CreateCulture() => throw null; - public static System.Globalization.CultureInfo DefaultCulture { get => throw null; set => throw null; } - public static string DefaultDateFormat { get => throw null; set => throw null; } - public static string DefaultDateTimeFormat { get => throw null; set => throw null; } - public static string DefaultErrorClassName { get => throw null; set => throw null; } - public static System.TimeSpan DefaultFileCacheExpiry { get => throw null; set => throw null; } - public static string DefaultIndent { get => throw null; set => throw null; } - public static string DefaultJsConfig { get => throw null; set => throw null; } - public static string DefaultNewLine { get => throw null; set => throw null; } - public static System.StringComparison DefaultStringComparison { get => throw null; set => throw null; } - public static string DefaultTableClassName { get => throw null; set => throw null; } - public static string DefaultTimeFormat { get => throw null; set => throw null; } - public static System.TimeSpan DefaultUrlCacheExpiry { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet FatalExceptions { get => throw null; set => throw null; } - public static ServiceStack.Script.ParseRealNumber ParseRealNumber; - } - - // Generated from `ServiceStack.Script.ScriptConstants` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScriptConstants - { - public const string AssetsBase = default; - public const string AssignError = default; - public const string BaseUrl = default; - public const string CatchError = default; - public const string Comparer = default; - public const string Debug = default; - public const string DefaultCulture = default; - public const string DefaultDateFormat = default; - public const string DefaultDateTimeFormat = default; - public const string DefaultErrorClassName = default; - public const string DefaultFileCacheExpiry = default; - public const string DefaultIndent = default; - public const string DefaultJsConfig = default; - public const string DefaultNewLine = default; - public const string DefaultStringComparison = default; - public const string DefaultTableClassName = default; - public const string DefaultTimeFormat = default; - public const string DefaultUrlCacheExpiry = default; - public const string Dto = default; - public static ServiceStack.IRawString EmptyRawString { get => throw null; } - public const string ErrorCode = default; - public const string ErrorMessage = default; - public static ServiceStack.IRawString FalseRawString { get => throw null; } - public const string Field = default; - public const string Format = default; - public const string Global = default; - public const string HtmlEncode = default; - public const string IfErrorReturn = default; - public const string Index = default; - public const string It = default; - public const string Map = default; - public const string Model = default; - public const string Page = default; - public const string Partial = default; - public const string PartialArg = default; - public const string PathArgs = default; - public const string PathBase = default; - public const string PathInfo = default; - public const string Request = default; - public const string Return = default; - public const string TempFilePath = default; - public static ServiceStack.IRawString TrueRawString { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptContext` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptContext : System.IDisposable - { - public bool AllowScriptingOfAllTypes { get => throw null; set => throw null; } - public ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Args { get => throw null; } - public ServiceStack.Script.ProtectedScripts AssertProtectedMethods() => throw null; - public string AssignExceptionsTo { get => throw null; set => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary> AssignExpressionCache { get => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary Cache { get => throw null; } - public ServiceStack.IO.IVirtualFiles CacheFiles { get => throw null; set => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary, object> CacheMemory { get => throw null; } - public bool CheckForModifiedPages { get => throw null; set => throw null; } - public System.TimeSpan? CheckForModifiedPagesAfter { get => throw null; set => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary> CodePageInvokers { get => throw null; } - public System.Collections.Generic.Dictionary CodePages { get => throw null; } - public ServiceStack.IContainer Container { get => throw null; set => throw null; } - public bool DebugMode { get => throw null; set => throw null; } - public ServiceStack.Script.DefaultScripts DefaultFilters { get => throw null; } - public string DefaultLayoutPage { get => throw null; set => throw null; } - public ServiceStack.Script.DefaultScripts DefaultMethods { get => throw null; } - public ServiceStack.Script.ScriptLanguage DefaultScriptLanguage { get => throw null; set => throw null; } - public void Dispose() => throw null; - public ServiceStack.IO.InMemoryVirtualFile EmptyFile { get => throw null; } - public ServiceStack.Script.SharpPage EmptyPage { get => throw null; } - public System.Collections.Generic.HashSet ExcludeFiltersNamed { get => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary> ExpiringCache { get => throw null; } - public System.Collections.Generic.HashSet FileFilterNames { get => throw null; } - public System.Collections.Generic.Dictionary>> FilterTransformers { get => throw null; set => throw null; } - public System.Action GetAssignExpression(System.Type targetType, System.ReadOnlyMemory expression) => throw null; - public ServiceStack.Script.ScriptBlock GetBlock(string name) => throw null; - public ServiceStack.Script.SharpCodePage GetCodePage(string virtualPath) => throw null; - public ServiceStack.Script.PageFormat GetFormat(string extension) => throw null; - public void GetPage(string fromVirtualPath, string virtualPath, out ServiceStack.Script.SharpPage page, out ServiceStack.Script.SharpCodePage codePage) => throw null; - public ServiceStack.Script.SharpPage GetPage(string virtualPath) => throw null; - public string GetPathMapping(string prefix, string key) => throw null; - public ServiceStack.Script.ScriptLanguage GetScriptLanguage(string name) => throw null; - public bool HasInit { get => throw null; set => throw null; } - public ServiceStack.Script.HtmlScripts HtmlMethods { get => throw null; } - public string IndexPage { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptContext Init() => throw null; - public System.Collections.Generic.List InsertPlugins { get => throw null; } - public System.Collections.Generic.List InsertScriptBlocks { get => throw null; } - public System.Collections.Generic.List InsertScriptMethods { get => throw null; } - public System.DateTime? InvalidateCachesBefore { get => throw null; set => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary, ServiceStack.Script.JsToken> JsTokenCache { get => throw null; } - public ServiceStack.Logging.ILog Log { get => throw null; } - public System.Int64 MaxEvaluations { get => throw null; set => throw null; } - public int MaxQuota { get => throw null; set => throw null; } - public int MaxStackDepth { get => throw null; set => throw null; } - public System.Action OnAfterPlugins { get => throw null; set => throw null; } - public System.Action OnRenderException { get => throw null; set => throw null; } - public System.Func> OnUnhandledExpression { get => throw null; set => throw null; } - public ServiceStack.Script.SharpPage OneTimePage(string contents, string ext = default(string)) => throw null; - public System.Collections.Generic.HashSet OnlyEvaluateFiltersWhenSkippingPageFilterExecution { get => throw null; set => throw null; } - public System.Collections.Generic.List PageFormats { get => throw null; set => throw null; } - public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ParseAsLanguage { get => throw null; set => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary PathMappings { get => throw null; } - public System.Collections.Generic.List Plugins { get => throw null; } - public System.Collections.Generic.List> Preprocessors { get => throw null; } - public ServiceStack.Script.ProtectedScripts ProtectedFilters { get => throw null; } - public ServiceStack.Script.ProtectedScripts ProtectedMethods { get => throw null; } - public ServiceStack.Script.ScriptContext RemoveBlocks(System.Predicate match) => throw null; - public ServiceStack.Script.ScriptContext RemoveFilters(System.Predicate match) => throw null; - public System.Collections.Generic.HashSet RemoveNewLineAfterFiltersNamed { get => throw null; set => throw null; } - public void RemovePathMapping(string prefix, string mapPath) => throw null; - public ServiceStack.Script.ScriptContext RemovePlugins(System.Predicate match) => throw null; - public bool RenderExpressionExceptions { get => throw null; set => throw null; } - public System.Collections.Generic.List ScanAssemblies { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptContext ScanType(System.Type type) => throw null; - public System.Collections.Generic.List ScanTypes { get => throw null; set => throw null; } - public System.Collections.Generic.List ScriptAssemblies { get => throw null; set => throw null; } - public System.Collections.Generic.List ScriptBlocks { get => throw null; } - public ScriptContext() => throw null; - public System.Collections.Generic.List ScriptLanguages { get => throw null; } - public System.Collections.Generic.List ScriptMethods { get => throw null; } - public System.Collections.Generic.List ScriptNamespaces { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ScriptTypeNameMap { get => throw null; } - public System.Collections.Generic.Dictionary ScriptTypeQualifiedNameMap { get => throw null; } - public System.Collections.Generic.List ScriptTypes { get => throw null; set => throw null; } - public string SetPathMapping(string prefix, string mapPath, string toPath) => throw null; - public bool SkipExecutingFiltersIfError { get => throw null; set => throw null; } - public bool TryGetPage(string fromVirtualPath, string virtualPath, out ServiceStack.Script.SharpPage page, out ServiceStack.Script.SharpCodePage codePage) => throw null; - public ServiceStack.IO.IVirtualPathProvider VirtualFiles { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptContextUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScriptContextUtils - { - public static ServiceStack.Script.ScriptScopeContext CreateScope(this ServiceStack.Script.ScriptContext context, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary), ServiceStack.Script.ScriptMethods functions = default(ServiceStack.Script.ScriptMethods), ServiceStack.Script.ScriptBlock blocks = default(ServiceStack.Script.ScriptBlock)) => throw null; - public static string ErrorNoReturn; - public static bool EvaluateResult(this ServiceStack.Script.PageResult pageResult, out object returnValue) => throw null; - public static System.Threading.Tasks.Task> EvaluateResultAsync(this ServiceStack.Script.PageResult pageResult) => throw null; - public static System.Exception HandleException(System.Exception e, ServiceStack.Script.PageResult pageResult) => throw null; - public static System.Threading.Tasks.Task RenderAsync(this ServiceStack.Script.PageResult pageResult, System.IO.Stream stream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string RenderScript(this ServiceStack.Script.PageResult pageResult) => throw null; - public static System.Threading.Tasks.Task RenderScriptAsync(this ServiceStack.Script.PageResult pageResult, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void RenderToStream(this ServiceStack.Script.PageResult pageResult, System.IO.Stream stream) => throw null; - public static System.Threading.Tasks.Task RenderToStreamAsync(this ServiceStack.Script.PageResult pageResult, System.IO.Stream stream) => throw null; - public static bool ShouldRethrow(System.Exception e) => throw null; - public static void ThrowNoReturn() => throw null; - } - - // Generated from `ServiceStack.Script.ScriptDdBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptDdBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptDdBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptDivBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptDivBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptDivBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptDlBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptDlBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptDlBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptDtBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptDtBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptDtBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptEmBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptEmBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptEmBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptException` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptException : System.Exception - { - public ServiceStack.Script.PageResult PageResult { get => throw null; } - public string PageStackTrace { get => throw null; } - public ScriptException(ServiceStack.Script.PageResult pageResult) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScriptExtensions - { - public static string AsString(this object str) => throw null; - public static object InStopFilter(this System.Exception ex, ServiceStack.Script.ScriptScopeContext scope, object options) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptFormBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptFormBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptFormBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptHtmlBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ScriptHtmlBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public override string Name { get => throw null; } - protected ScriptHtmlBlock() => throw null; - public virtual string Suffix { get => throw null; } - public abstract string Tag { get; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptIBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptIBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptIBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptImgBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptImgBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptImgBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptInputBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptInputBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptInputBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptLanguage` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ScriptLanguage - { - public virtual string LineComment { get => throw null; } - public abstract string Name { get; } - public abstract System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers); - public System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body) => throw null; - public virtual ServiceStack.Script.PageBlockFragment ParseVerbatimBlock(string blockName, System.ReadOnlyMemory argument, System.ReadOnlyMemory body) => throw null; - protected ScriptLanguage() => throw null; - public static object UnwrapValue(object value) => throw null; - public static ServiceStack.Script.ScriptLanguage Verbatim { get => throw null; } - public virtual System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; - public virtual System.Threading.Tasks.Task WriteStatementAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsStatement statement, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptLiBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptLiBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptLiBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptLinkBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptLinkBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptLinkBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptLisp` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptLisp : ServiceStack.Script.ScriptLanguage, ServiceStack.Script.IConfigureScriptContext - { - public void Configure(ServiceStack.Script.ScriptContext context) => throw null; - public static ServiceStack.Script.ScriptLanguage Language; - public override string LineComment { get => throw null; } - public override string Name { get => throw null; } - public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; - public override System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; - public override System.Threading.Tasks.Task WriteStatementAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsStatement statement, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptLispUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScriptLispUtils - { - public static string EnsureReturn(string lisp) => throw null; - public static object EvaluateLisp(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static T EvaluateLisp(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task EvaluateLispAsync(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task EvaluateLispAsync(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static ServiceStack.Script.Lisp.Interpreter GetLispInterpreter(this ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static ServiceStack.Script.Lisp.Interpreter GetLispInterpreter(this ServiceStack.Script.PageResult pageResult, ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static ServiceStack.Script.SharpPage LispSharpPage(this ServiceStack.Script.ScriptContext context, string lisp) => throw null; - public static ServiceStack.Script.LispStatements ParseLisp(this ServiceStack.Script.ScriptContext context, string lisp) => throw null; - public static ServiceStack.Script.LispStatements ParseLisp(this ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory lisp) => throw null; - public static string RenderLisp(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task RenderLispAsync(this ServiceStack.Script.ScriptContext context, string lisp, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptMetaBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptMetaBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptMetaBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptMethodInfo` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptMethodInfo - { - public string Body { get => throw null; } - public static ServiceStack.Script.ScriptMethodInfo Create(System.Reflection.MethodInfo mi) => throw null; - public string FirstParam { get => throw null; } - public string FirstParamType { get => throw null; } - public System.Reflection.MethodInfo GetMethodInfo() => throw null; - public static System.Collections.Generic.List GetScriptMethods(System.Type scriptMethodsType, System.Func where = default(System.Func)) => throw null; - public string Name { get => throw null; } - public int ParamCount { get => throw null; } - public string[] ParamNames { get => throw null; } - public string[] ParamTypes { get => throw null; } - public string[] RemainingParams { get => throw null; } - public string Return { get => throw null; } - public string ReturnType { get => throw null; } - public ScriptMethodInfo(System.Reflection.MethodInfo methodInfo, System.Reflection.ParameterInfo[] @params) => throw null; - public string ScriptSignature { get => throw null; } - public string Signature { get => throw null; } - public ServiceStack.ScriptMethodType ToScriptMethodType() => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Script.ScriptMethods` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptMethods - { - public ServiceStack.Script.ScriptContext Context { get => throw null; set => throw null; } - public ServiceStack.MethodInvoker GetInvoker(string name, int argsCount, ServiceStack.Script.InvokerType type) => throw null; - public System.Collections.Concurrent.ConcurrentDictionary InvokerCache { get => throw null; } - public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } - public System.Collections.Generic.List QueryFilters(string filterName) => throw null; - public ScriptMethods() => throw null; - } - - // Generated from `ServiceStack.Script.ScriptOlBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptOlBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptOlBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptOptionBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptOptionBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptOptionBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptPBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptPBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptPBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptPreprocessors` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScriptPreprocessors - { - public static string TransformCodeBlocks(string script) => throw null; - public static string TransformStatementBody(string body) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptScopeContext` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct ScriptScopeContext - { - public ServiceStack.Script.ScriptScopeContext Clone() => throw null; - public ServiceStack.Script.SharpCodePage CodePage { get => throw null; } - public ServiceStack.Script.ScriptContext Context { get => throw null; } - public System.IO.Stream OutputStream { get => throw null; } - public ServiceStack.Script.SharpPage Page { get => throw null; } - public ServiceStack.Script.PageResult PageResult { get => throw null; } - public System.Collections.Generic.Dictionary ScopedParams { get => throw null; set => throw null; } - public ScriptScopeContext(ServiceStack.Script.ScriptContext context, System.Collections.Generic.Dictionary scopedParams) => throw null; - public ScriptScopeContext(ServiceStack.Script.PageResult pageResult, System.IO.Stream outputStream, System.Collections.Generic.Dictionary scopedParams) => throw null; - // Stub generator skipped constructor - public static implicit operator ServiceStack.Templates.TemplateScopeContext(ServiceStack.Script.ScriptScopeContext from) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptScopeContextUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScriptScopeContextUtils - { - public static ServiceStack.Script.ScriptScopeContext CreateScopedContext(this ServiceStack.Script.ScriptScopeContext scope, string template, System.Collections.Generic.Dictionary scopeParams = default(System.Collections.Generic.Dictionary), bool cachePage = default(bool)) => throw null; - public static object EvaluateExpression(this ServiceStack.Script.ScriptScopeContext scope, string expr) => throw null; - public static object GetArgument(this ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public static object GetValue(this ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public static void InvokeAssignExpression(this ServiceStack.Script.ScriptScopeContext scope, string assignExpr, object target, object value) => throw null; - public static ServiceStack.Script.StopExecution ReturnValue(this ServiceStack.Script.ScriptScopeContext scope, object returnValue, System.Collections.Generic.Dictionary returnArgs = default(System.Collections.Generic.Dictionary)) => throw null; - public static ServiceStack.Script.ScriptScopeContext ScopeWith(this ServiceStack.Script.ScriptScopeContext parentContext, System.Collections.Generic.Dictionary scopedParams = default(System.Collections.Generic.Dictionary), System.IO.Stream outputStream = default(System.IO.Stream)) => throw null; - public static ServiceStack.Script.ScriptScopeContext ScopeWithParams(this ServiceStack.Script.ScriptScopeContext parentContext, System.Collections.Generic.Dictionary scopedParams) => throw null; - public static ServiceStack.Script.ScriptScopeContext ScopeWithStream(this ServiceStack.Script.ScriptScopeContext scope, System.IO.Stream stream) => throw null; - public static bool TryGetMethod(this ServiceStack.Script.ScriptScopeContext scope, string name, int fnArgValuesCount, out System.Delegate fn, out ServiceStack.Script.ScriptMethods scriptMethod, out bool requiresScope) => throw null; - public static bool TryGetValue(this ServiceStack.Script.ScriptScopeContext scope, string name, out object value) => throw null; - public static System.Threading.Tasks.Task WritePageAsync(this ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.SharpPage page, ServiceStack.Script.SharpCodePage codePage, System.Collections.Generic.Dictionary pageParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WritePageAsync(this ServiceStack.Script.ScriptScopeContext scope) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptScriptBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptScriptBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptSelectBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptSelectBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptSelectBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptSpanBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptSpanBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptSpanBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptStrongBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptStrongBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptStrongBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptStyleBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptStyleBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptStyleBlock() => throw null; - public override string Suffix { get => throw null; } - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptTBodyBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptTBodyBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptTBodyBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptTFootBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptTFootBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptTFootBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptTHeadBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptTHeadBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptTHeadBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptTableBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptTableBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptTableBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptTdBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptTdBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptTdBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptTemplate` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptTemplate : ServiceStack.Script.ScriptLanguage - { - public static ServiceStack.Script.ScriptLanguage Language; - public override string Name { get => throw null; } - public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; - public override System.Threading.Tasks.Task WritePageFragmentAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageFragment fragment, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptTemplateUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScriptTemplateUtils - { - public static System.Collections.Concurrent.ConcurrentDictionary> BinderCache { get => throw null; } - public static System.Func Compile(System.Type type, System.ReadOnlyMemory expr) => throw null; - public static System.Action CompileAssign(System.Type type, System.ReadOnlyMemory expr) => throw null; - public static System.Reflection.MethodInfo CreateConvertMethod(System.Type toType) => throw null; - public static object Evaluate(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static T Evaluate(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task EvaluateAsync(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task EvaluateAsync(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static object EvaluateBinding(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsToken token) => throw null; - public static T EvaluateBindingAs(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.JsToken token) => throw null; - public static string EvaluateScript(this ServiceStack.Script.ScriptContext context, string script, out ServiceStack.Script.ScriptException error) => throw null; - public static string EvaluateScript(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args, out ServiceStack.Script.ScriptException error) => throw null; - public static string EvaluateScript(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task EvaluateScriptAsync(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Func GetMemberExpression(System.Type targetType, System.ReadOnlyMemory expression) => throw null; - public static bool IsWhiteSpace(this System.Char c) => throw null; - public static System.Collections.Generic.List ParseScript(this ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory text) => throw null; - public static System.Collections.Generic.List ParseTemplate(this ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory text) => throw null; - public static System.Collections.Generic.List ParseTemplate(string text) => throw null; - public static System.ReadOnlyMemory ParseTemplateBody(this System.ReadOnlyMemory literal, System.ReadOnlyMemory blockName, out System.ReadOnlyMemory body) => throw null; - public static System.ReadOnlyMemory ParseTemplateElseBlock(this System.ReadOnlyMemory literal, string blockName, out System.ReadOnlyMemory elseArgument, out System.ReadOnlyMemory elseBody) => throw null; - public static System.ReadOnlyMemory ParseTemplateScriptBlock(this System.ReadOnlyMemory literal, ServiceStack.Script.ScriptContext context, out ServiceStack.Script.PageBlockFragment blockFragment) => throw null; - public static string RenderScript(this ServiceStack.Script.ScriptContext context, string script, out ServiceStack.Script.ScriptException error) => throw null; - public static string RenderScript(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args, out ServiceStack.Script.ScriptException error) => throw null; - public static string RenderScript(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task RenderScriptAsync(this ServiceStack.Script.ScriptContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static ServiceStack.Script.SharpPage SharpScriptPage(this ServiceStack.Script.ScriptContext context, string code) => throw null; - public static ServiceStack.Script.SharpPage TemplateSharpPage(this ServiceStack.Script.ScriptContext context, string code) => throw null; - public static ServiceStack.IRawString ToRawString(this string value) => throw null; - } - - // Generated from `ServiceStack.Script.ScriptTextAreaBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptTextAreaBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptTextAreaBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptTrBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptTrBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptTrBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptUlBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptUlBlock : ServiceStack.Script.ScriptHtmlBlock - { - public ScriptUlBlock() => throw null; - public override string Tag { get => throw null; } - } - - // Generated from `ServiceStack.Script.ScriptVerbatim` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptVerbatim : ServiceStack.Script.ScriptLanguage - { - public static ServiceStack.Script.ScriptLanguage Language; - public override string Name { get => throw null; } - public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; - } - - // Generated from `ServiceStack.Script.SharpCodePage` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class SharpCodePage : System.IDisposable - { - public System.Collections.Generic.Dictionary Args { get => throw null; } - public ServiceStack.Script.ScriptContext Context { get => throw null; set => throw null; } - public virtual void Dispose() => throw null; - public ServiceStack.Script.PageFormat Format { get => throw null; set => throw null; } - public bool HasInit { get => throw null; set => throw null; } - public virtual ServiceStack.Script.SharpCodePage Init() => throw null; - public string Layout { get => throw null; set => throw null; } - public ServiceStack.Script.SharpPage LayoutPage { get => throw null; set => throw null; } - public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptScopeContext Scope { get => throw null; set => throw null; } - protected SharpCodePage(string layout = default(string)) => throw null; - public string VirtualPath { get => throw null; set => throw null; } - public System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope) => throw null; - } - - // Generated from `ServiceStack.Script.SharpPage` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SharpPage - { - public System.Collections.Generic.Dictionary Args { get => throw null; set => throw null; } - public System.ReadOnlyMemory BodyContents { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptContext Context { get => throw null; } - public ServiceStack.IO.IVirtualFile File { get => throw null; } - public System.ReadOnlyMemory FileContents { get => throw null; set => throw null; } - public ServiceStack.Script.PageFormat Format { get => throw null; } - public bool HasInit { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task Init() => throw null; - public bool IsImmutable { get => throw null; set => throw null; } - public bool IsLayout { get => throw null; set => throw null; } - public bool IsTempFile { get => throw null; } - public System.DateTime LastModified { get => throw null; set => throw null; } - public System.DateTime LastModifiedCheck { get => throw null; set => throw null; } - public ServiceStack.Script.SharpPage LayoutPage { get => throw null; set => throw null; } - public System.Threading.Tasks.Task Load() => throw null; - public ServiceStack.Script.PageFragment[] PageFragments { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptLanguage ScriptLanguage { get => throw null; set => throw null; } - public SharpPage(ServiceStack.Script.ScriptContext context, ServiceStack.Script.PageFragment[] body) => throw null; - public SharpPage(ServiceStack.Script.ScriptContext context, ServiceStack.IO.IVirtualFile file, ServiceStack.Script.PageFormat format = default(ServiceStack.Script.PageFormat)) => throw null; - public string VirtualPath { get => throw null; } - } - - // Generated from `ServiceStack.Script.SharpPages` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SharpPages : ServiceStack.Templates.ITemplatePages, ServiceStack.Script.ISharpPages - { - public virtual ServiceStack.Script.SharpPage AddPage(string virtualPath, ServiceStack.IO.IVirtualFile file) => throw null; - public ServiceStack.Script.ScriptContext Context { get => throw null; } - public ServiceStack.Script.SharpCodePage GetCodePage(string virtualPath) => throw null; - public System.DateTime GetLastModified(ServiceStack.Script.SharpPage page) => throw null; - public System.DateTime GetLastModifiedPage(ServiceStack.Script.SharpPage page) => throw null; - public virtual ServiceStack.Script.SharpPage GetPage(string pathInfo) => throw null; - public static string Layout; - public virtual ServiceStack.Script.SharpPage OneTimePage(string contents, string ext) => throw null; - public ServiceStack.Script.SharpPage OneTimePage(string contents, string ext, System.Action init) => throw null; - public virtual ServiceStack.Script.SharpPage ResolveLayoutPage(ServiceStack.Script.SharpPage page, string layout) => throw null; - public virtual ServiceStack.Script.SharpPage ResolveLayoutPage(ServiceStack.Script.SharpCodePage page, string layout) => throw null; - public SharpPages(ServiceStack.Script.ScriptContext context) => throw null; - public virtual ServiceStack.Script.SharpPage TryGetPage(string path) => throw null; - } - - // Generated from `ServiceStack.Script.SharpPartialPage` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SharpPartialPage : ServiceStack.Script.SharpPage - { - public override System.Threading.Tasks.Task Init() => throw null; - public SharpPartialPage(ServiceStack.Script.ScriptContext context, string name, System.Collections.Generic.IEnumerable body, string format, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) : base(default(ServiceStack.Script.ScriptContext), default(ServiceStack.Script.PageFragment[])) => throw null; - } - - // Generated from `ServiceStack.Script.SharpScript` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SharpScript : ServiceStack.Script.ScriptLanguage - { - public static ServiceStack.Script.ScriptLanguage Language; - public override string Name { get => throw null; } - public override System.Collections.Generic.List Parse(ServiceStack.Script.ScriptContext context, System.ReadOnlyMemory body, System.ReadOnlyMemory modifiers) => throw null; - } - - // Generated from `ServiceStack.Script.StopExecution` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StopExecution : ServiceStack.Script.IResultInstruction - { - public static ServiceStack.Script.StopExecution Value; - } - - // Generated from `ServiceStack.Script.StopFilterExecutionException` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StopFilterExecutionException : ServiceStack.StopExecutionException, ServiceStack.Model.IResponseStatusConvertible - { - public object Options { get => throw null; } - public ServiceStack.Script.ScriptScopeContext Scope { get => throw null; } - public StopFilterExecutionException(ServiceStack.Script.ScriptScopeContext scope, object options, System.Exception innerException) => throw null; - public ServiceStack.ResponseStatus ToResponseStatus() => throw null; - } - - // Generated from `ServiceStack.Script.SyntaxErrorException` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SyntaxErrorException : System.ArgumentException - { - public SyntaxErrorException(string message, System.Exception innerException) => throw null; - public SyntaxErrorException(string message) => throw null; - public SyntaxErrorException() => throw null; - } - - // Generated from `ServiceStack.Script.TemplateFilterUtils` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TemplateFilterUtils - { - public static ServiceStack.Script.ScriptScopeContext AddItemToScope(this ServiceStack.Script.ScriptScopeContext scope, string itemBinding, object item, int index) => throw null; - public static ServiceStack.Script.ScriptScopeContext AddItemToScope(this ServiceStack.Script.ScriptScopeContext scope, string itemBinding, object item) => throw null; - public static System.Collections.Generic.IEnumerable AssertEnumerable(this object items, string filterName) => throw null; - public static string AssertExpression(this ServiceStack.Script.ScriptScopeContext scope, string filterName, object expression) => throw null; - public static ServiceStack.Script.JsToken AssertExpression(this ServiceStack.Script.ScriptScopeContext scope, string filterName, object expression, object scopeOptions, out string itemBinding) => throw null; - public static object AssertNoCircularDeps(this object value) => throw null; - public static System.Collections.Generic.Dictionary AssertOptions(this object scopedParams, string filterName) => throw null; - public static System.Collections.Generic.Dictionary AssertOptions(this ServiceStack.Script.ScriptScopeContext scope, string filterName, object scopedParams) => throw null; - public static ServiceStack.Script.ScriptContext CreateNewContext(this ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; - public static System.Collections.Generic.Dictionary GetParamsWithItemBinding(this ServiceStack.Script.ScriptScopeContext scope, string filterName, object scopedParams, out string itemBinding) => throw null; - public static System.Collections.Generic.Dictionary GetParamsWithItemBinding(this ServiceStack.Script.ScriptScopeContext scope, string filterName, ServiceStack.Script.SharpPage page, object scopedParams, out string itemBinding) => throw null; - public static System.Collections.Generic.Dictionary GetParamsWithItemBindingOnly(this ServiceStack.Script.ScriptScopeContext scope, string filterName, ServiceStack.Script.SharpPage page, object scopedParams, out string itemBinding) => throw null; - public static object GetValueOrEvaluateBinding(this ServiceStack.Script.ScriptScopeContext scope, object valueOrBinding, System.Type returnType) => throw null; - public static T GetValueOrEvaluateBinding(this ServiceStack.Script.ScriptScopeContext scope, object valueOrBinding) => throw null; - public static bool TryGetPage(this ServiceStack.Script.ScriptScopeContext scope, string virtualPath, out ServiceStack.Script.SharpPage page, out ServiceStack.Script.SharpCodePage codePage) => throw null; - } - - // Generated from `ServiceStack.Script.WhileScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class WhileScriptBlock : ServiceStack.Script.ScriptBlock - { - public override string Name { get => throw null; } - public WhileScriptBlock() => throw null; - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken ct) => throw null; - } - - // Generated from `ServiceStack.Script.WithScriptBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class WithScriptBlock : ServiceStack.Script.ScriptBlock - { - public override string Name { get => throw null; } - public WithScriptBlock() => throw null; - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - } - namespace Support - { - // Generated from `ServiceStack.Support.ActionExecHandler` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ActionExecHandler : ServiceStack.Commands.ICommandExec, ServiceStack.Commands.ICommand - { - public ActionExecHandler(System.Action action, System.Threading.AutoResetEvent waitHandle) => throw null; - public bool Execute() => throw null; - } - - // Generated from `ServiceStack.Support.AdapterBase` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AdapterBase - { - protected AdapterBase() => throw null; - protected void Execute(System.Action action) => throw null; - protected T Execute(System.Func action) => throw null; - protected System.Threading.Tasks.Task ExecuteAsync(System.Func> action) => throw null; - protected System.Threading.Tasks.Task ExecuteAsync(System.Func> action, System.Threading.CancellationToken token) => throw null; - protected System.Threading.Tasks.Task ExecuteAsync(System.Func action) => throw null; - protected System.Threading.Tasks.Task ExecuteAsync(System.Func action, System.Threading.CancellationToken token) => throw null; - protected abstract ServiceStack.Logging.ILog Log { get; } - } - - // Generated from `ServiceStack.Support.CommandExecsHandler` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CommandExecsHandler : ServiceStack.Commands.ICommandExec, ServiceStack.Commands.ICommand - { - public CommandExecsHandler(ServiceStack.Commands.ICommandExec command, System.Threading.AutoResetEvent waitHandle) => throw null; - public bool Execute() => throw null; - } - - // Generated from `ServiceStack.Support.CommandResultsHandler<>` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CommandResultsHandler : ServiceStack.Commands.ICommandExec, ServiceStack.Commands.ICommand - { - public CommandResultsHandler(System.Collections.Generic.List results, ServiceStack.Commands.ICommandList command, System.Threading.AutoResetEvent waitHandle) => throw null; - public bool Execute() => throw null; - } - - // Generated from `ServiceStack.Support.InMemoryLog` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryLog : ServiceStack.Logging.ILog - { - public System.Text.StringBuilder CombinedLog { get => throw null; set => throw null; } - public void Debug(object message, System.Exception exception) => throw null; - public void Debug(object message) => throw null; - public System.Collections.Generic.List DebugEntries { get => throw null; set => throw null; } - public System.Collections.Generic.List DebugExceptions { get => throw null; set => 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 System.Collections.Generic.List ErrorEntries { get => throw null; set => throw null; } - public System.Collections.Generic.List ErrorExceptions { get => throw null; set => 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 System.Collections.Generic.List FatalEntries { get => throw null; set => throw null; } - public System.Collections.Generic.List FatalExceptions { get => throw null; set => throw null; } - public void FatalFormat(string format, params object[] args) => throw null; - public bool HasExceptions { get => throw null; } - public InMemoryLog(string loggerName) => throw null; - public void Info(object message, System.Exception exception) => throw null; - public void Info(object message) => throw null; - public System.Collections.Generic.List InfoEntries { get => throw null; set => throw null; } - public System.Collections.Generic.List InfoExceptions { get => throw null; set => throw null; } - public void InfoFormat(string format, params object[] args) => throw null; - public bool IsDebugEnabled { get => throw null; set => throw null; } - public string LoggerName { get => throw null; set => throw null; } - public void Warn(object message, System.Exception exception) => throw null; - public void Warn(object message) => throw null; - public System.Collections.Generic.List WarnEntries { get => throw null; set => throw null; } - public System.Collections.Generic.List WarnExceptions { get => throw null; set => throw null; } - public void WarnFormat(string format, params object[] args) => throw null; - } - - // Generated from `ServiceStack.Support.InMemoryLogFactory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryLogFactory : ServiceStack.Logging.ILogFactory - { - public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; - public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; - public InMemoryLogFactory(bool debugEnabled = default(bool)) => throw null; - } - - } - namespace Templates - { - // Generated from `ServiceStack.Templates.ITemplatePages` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITemplatePages : ServiceStack.Script.ISharpPages - { - } - - // Generated from `ServiceStack.Templates.ITemplatePlugin` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITemplatePlugin : ServiceStack.Script.IScriptPlugin - { - } - - // Generated from `ServiceStack.Templates.TemplateBlock` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class TemplateBlock : ServiceStack.Script.ScriptBlock - { - protected TemplateBlock() => throw null; - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - public abstract System.Threading.Tasks.Task WriteAsync(ServiceStack.Templates.TemplateScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken ct); - } - - // Generated from `ServiceStack.Templates.TemplateCodePage` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateCodePage : ServiceStack.Script.SharpCodePage - { - public TemplateCodePage() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.Templates.TemplateConfig` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TemplateConfig - { - public static System.Collections.Generic.HashSet CaptureAndEvaluateExceptionsToNull { get => throw null; } - public static System.Globalization.CultureInfo CreateCulture() => throw null; - public static System.Globalization.CultureInfo DefaultCulture { get => throw null; } - public static string DefaultDateFormat { get => throw null; } - public static string DefaultDateTimeFormat { get => throw null; } - public static string DefaultErrorClassName { get => throw null; } - public static System.TimeSpan DefaultFileCacheExpiry { get => throw null; } - public static string DefaultIndent { get => throw null; } - public static string DefaultJsConfig { get => throw null; } - public static string DefaultNewLine { get => throw null; } - public static System.StringComparison DefaultStringComparison { get => throw null; } - public static string DefaultTableClassName { get => throw null; } - public static string DefaultTimeFormat { get => throw null; } - public static System.TimeSpan DefaultUrlCacheExpiry { get => throw null; } - public static System.Collections.Generic.HashSet FatalExceptions { get => throw null; } - public static int MaxQuota { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Templates.TemplateConstants` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TemplateConstants - { - public const string AssetsBase = default; - public const string AssignError = default; - public const string CatchError = default; - public const string Comparer = default; - public const string Debug = default; - public const string DefaultCulture = default; - public const string DefaultDateFormat = default; - public const string DefaultDateTimeFormat = default; - public const string DefaultErrorClassName = default; - public const string DefaultFileCacheExpiry = default; - public const string DefaultIndent = default; - public const string DefaultJsConfig = default; - public const string DefaultNewLine = default; - public const string DefaultStringComparison = default; - public const string DefaultTableClassName = default; - public const string DefaultTimeFormat = default; - public const string DefaultUrlCacheExpiry = default; - public static ServiceStack.IRawString EmptyRawString { get => throw null; } - public static ServiceStack.IRawString FalseRawString { get => throw null; } - public const string Format = default; - public const string HtmlEncode = default; - public const string Index = default; - public const string Map = default; - public const string Model = default; - public const string Page = default; - public const string Partial = default; - public const string PathArgs = default; - public const string PathInfo = default; - public const string Request = default; - public const string TempFilePath = default; - public static ServiceStack.IRawString TrueRawString { get => throw null; } - } - - // Generated from `ServiceStack.Templates.TemplateContext` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateContext : ServiceStack.Script.ScriptContext - { - public ServiceStack.Script.DefaultScripts DefaultFilters { get => throw null; } - public ServiceStack.Script.HtmlScripts HtmlFilters { get => throw null; } - public ServiceStack.Templates.TemplateContext Init() => throw null; - public ServiceStack.Script.ProtectedScripts ProtectedFilters { get => throw null; } - public System.Collections.Generic.List TemplateBlocks { get => throw null; } - public TemplateContext() => throw null; - public System.Collections.Generic.List TemplateFilters { get => throw null; } - } - - // Generated from `ServiceStack.Templates.TemplateContextExtensions` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TemplateContextExtensions - { - public static string EvaluateTemplate(this ServiceStack.Templates.TemplateContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Threading.Tasks.Task EvaluateTemplateAsync(this ServiceStack.Templates.TemplateContext context, string script, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - } - - // Generated from `ServiceStack.Templates.TemplateDefaultFilters` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateDefaultFilters : ServiceStack.Script.DefaultScripts - { - public TemplateDefaultFilters() => throw null; - } - - // Generated from `ServiceStack.Templates.TemplateFilter` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateFilter : ServiceStack.Script.ScriptMethods - { - public TemplateFilter() => throw null; - } - - // Generated from `ServiceStack.Templates.TemplateHtmlFilters` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateHtmlFilters : ServiceStack.Script.HtmlScripts - { - public TemplateHtmlFilters() => throw null; - } - - // Generated from `ServiceStack.Templates.TemplatePage` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplatePage : ServiceStack.Script.SharpPage - { - public TemplatePage(ServiceStack.Templates.TemplateContext context, ServiceStack.IO.IVirtualFile file, ServiceStack.Script.PageFormat format = default(ServiceStack.Script.PageFormat)) : base(default(ServiceStack.Script.ScriptContext), default(ServiceStack.Script.PageFragment[])) => throw null; - } - - // Generated from `ServiceStack.Templates.TemplateProtectedFilters` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateProtectedFilters : ServiceStack.Script.ProtectedScripts - { - public TemplateProtectedFilters() => throw null; - } - - // Generated from `ServiceStack.Templates.TemplateScopeContext` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct TemplateScopeContext - { - public ServiceStack.Script.SharpCodePage CodePage { get => throw null; } - public ServiceStack.Script.ScriptContext Context { get => throw null; } - public System.IO.Stream OutputStream { get => throw null; } - public ServiceStack.Script.SharpPage Page { get => throw null; } - public ServiceStack.Script.PageResult PageResult { get => throw null; } - public System.Collections.Generic.Dictionary ScopedParams { get => throw null; set => throw null; } - public TemplateScopeContext(ServiceStack.Script.PageResult pageResult, System.IO.Stream outputStream, System.Collections.Generic.Dictionary scopedParams) => throw null; - // Stub generator skipped constructor - public static implicit operator ServiceStack.Script.ScriptScopeContext(ServiceStack.Templates.TemplateScopeContext from) => throw null; - } - - } - namespace VirtualPath - { - // Generated from `ServiceStack.VirtualPath.AbstractVirtualDirectoryBase` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AbstractVirtualDirectoryBase : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, ServiceStack.IO.IVirtualNode, ServiceStack.IO.IVirtualDirectory - { - protected AbstractVirtualDirectoryBase(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory parentDirectory) => throw null; - protected AbstractVirtualDirectoryBase(ServiceStack.IO.IVirtualPathProvider owningProvider) => throw null; - public abstract System.Collections.Generic.IEnumerable Directories { get; } - public ServiceStack.IO.IVirtualDirectory Directory { get => throw null; } - public override bool Equals(object obj) => throw null; - public abstract System.Collections.Generic.IEnumerable Files { get; } - public virtual System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; - public virtual ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; - public virtual ServiceStack.IO.IVirtualDirectory GetDirectory(System.Collections.Generic.Stack virtualPath) => throw null; - protected abstract ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName); - public abstract System.Collections.Generic.IEnumerator GetEnumerator(); - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public virtual ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - public virtual ServiceStack.IO.IVirtualFile GetFile(System.Collections.Generic.Stack virtualPath) => throw null; - protected abstract ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName); - public override int GetHashCode() => throw null; - protected abstract System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern); - protected virtual string GetPathToRoot(string separator, System.Func pathSel) => throw null; - protected virtual string GetRealPathToRoot() => throw null; - protected virtual string GetVirtualPathToRoot() => throw null; - public virtual bool IsDirectory { get => throw null; } - public virtual bool IsRoot { get => throw null; } - public abstract System.DateTime LastModified { get; } - public abstract string Name { get; } - public ServiceStack.IO.IVirtualDirectory ParentDirectory { get => throw null; set => throw null; } - public virtual string RealPath { get => throw null; } - public override string ToString() => throw null; - public virtual string VirtualPath { get => throw null; } - protected ServiceStack.IO.IVirtualPathProvider VirtualPathProvider; - } - - // Generated from `ServiceStack.VirtualPath.AbstractVirtualFileBase` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AbstractVirtualFileBase : ServiceStack.IO.IVirtualNode, ServiceStack.IO.IVirtualFile - { - protected AbstractVirtualFileBase(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory directory) => throw null; - public ServiceStack.IO.IVirtualDirectory Directory { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - public virtual string Extension { get => throw null; } - public virtual object GetContents() => throw null; - public virtual string GetFileHash() => throw null; - public override int GetHashCode() => throw null; - protected virtual string GetPathToRoot(string separator, System.Func pathSel) => throw null; - protected virtual string GetRealPathToRoot() => throw null; - protected virtual string GetVirtualPathToRoot() => throw null; - public virtual bool IsDirectory { get => throw null; } - public abstract System.DateTime LastModified { get; } - public abstract System.Int64 Length { get; } - public abstract string Name { get; } - public abstract System.IO.Stream OpenRead(); - public virtual System.IO.StreamReader OpenText() => throw null; - public virtual System.Byte[] ReadAllBytes() => throw null; - public virtual string ReadAllText() => throw null; - public virtual string RealPath { get => throw null; } - public virtual void Refresh() => throw null; - public static System.Collections.Generic.List ScanSkipPaths { get => throw null; set => throw null; } - public override string ToString() => throw null; - public virtual string VirtualPath { get => throw null; } - public ServiceStack.IO.IVirtualPathProvider VirtualPathProvider { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.VirtualPath.AbstractVirtualPathProviderBase` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AbstractVirtualPathProviderBase : ServiceStack.IO.IVirtualPathProvider - { - protected AbstractVirtualPathProviderBase() => throw null; - public virtual void AppendFile(string path, object contents) => throw null; - public virtual void AppendFile(string path, System.ReadOnlyMemory text) => throw null; - public virtual void AppendFile(string path, System.ReadOnlyMemory bytes) => throw null; - public virtual string CombineVirtualPath(string basePath, string relativePath) => throw null; - protected System.NotSupportedException CreateContentNotSupportedException(object value) => throw null; - public virtual bool DirectoryExists(string virtualPath) => throw null; - public virtual bool FileExists(string virtualPath) => throw null; - public virtual System.Collections.Generic.IEnumerable GetAllFiles() => throw null; - public virtual System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)) => throw null; - public virtual ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; - public virtual ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - public virtual string GetFileHash(string virtualPath) => throw null; - public virtual string GetFileHash(ServiceStack.IO.IVirtualFile virtualFile) => throw null; - public virtual System.Collections.Generic.IEnumerable GetRootDirectories() => throw null; - public virtual System.Collections.Generic.IEnumerable GetRootFiles() => throw null; - protected abstract void Initialize(); - public virtual bool IsSharedFile(ServiceStack.IO.IVirtualFile virtualFile) => throw null; - public virtual bool IsViewFile(ServiceStack.IO.IVirtualFile virtualFile) => throw null; - public abstract string RealPathSeparator { get; } - public abstract ServiceStack.IO.IVirtualDirectory RootDirectory { get; } - public virtual string SanitizePath(string filePath) => throw null; - public override string ToString() => throw null; - public abstract string VirtualPathSeparator { get; } - public virtual void WriteFile(string path, object contents) => throw null; - public virtual void WriteFile(string path, System.ReadOnlyMemory text) => throw null; - public virtual void WriteFile(string path, System.ReadOnlyMemory bytes) => throw null; - public virtual void WriteFiles(System.Collections.Generic.Dictionary textFiles) => throw null; - public virtual void WriteFiles(System.Collections.Generic.Dictionary files) => throw null; - } - - // Generated from `ServiceStack.VirtualPath.FileSystemMapping` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FileSystemMapping : ServiceStack.VirtualPath.AbstractVirtualPathProviderBase - { - public string Alias { get => throw null; set => throw null; } - public FileSystemMapping(string alias, string rootDirectoryPath) => throw null; - public FileSystemMapping(string alias, System.IO.DirectoryInfo rootDirInfo) => throw null; - public override ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath) => throw null; - public override ServiceStack.IO.IVirtualFile GetFile(string virtualPath) => throw null; - public string GetRealVirtualPath(string virtualPath) => throw null; - public override System.Collections.Generic.IEnumerable GetRootDirectories() => throw null; - public override System.Collections.Generic.IEnumerable GetRootFiles() => throw null; - protected override void Initialize() => throw null; - public override string RealPathSeparator { get => throw null; } - protected ServiceStack.VirtualPath.FileSystemVirtualDirectory RootDir; - protected System.IO.DirectoryInfo RootDirInfo; - public override ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } - public override string VirtualPathSeparator { get => throw null; } - } - - // Generated from `ServiceStack.VirtualPath.FileSystemVirtualDirectory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FileSystemVirtualDirectory : ServiceStack.VirtualPath.AbstractVirtualDirectoryBase - { - protected System.IO.DirectoryInfo BackingDirInfo; - public override System.Collections.Generic.IEnumerable Directories { get => throw null; } - public System.Collections.Generic.IEnumerable EnumerateDirectories(string dirName) => throw null; - public System.Collections.Generic.IEnumerable EnumerateFiles(string pattern) => throw null; - public FileSystemVirtualDirectory(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory parentDirectory, System.IO.DirectoryInfo dInfo) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; - public override System.Collections.Generic.IEnumerable Files { get => throw null; } - protected override ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string dName) => throw null; - public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - protected override ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fName) => throw null; - protected override System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern) => throw null; - public override System.DateTime LastModified { get => throw null; } - public override string Name { get => throw null; } - public override string RealPath { get => throw null; } - } - - // Generated from `ServiceStack.VirtualPath.FileSystemVirtualFile` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FileSystemVirtualFile : ServiceStack.VirtualPath.AbstractVirtualFileBase - { - protected System.IO.FileInfo BackingFile; - public FileSystemVirtualFile(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory directory, System.IO.FileInfo fInfo) : base(default(ServiceStack.IO.IVirtualPathProvider), default(ServiceStack.IO.IVirtualDirectory)) => throw null; - public override System.DateTime LastModified { get => throw null; } - public override System.Int64 Length { get => throw null; } - public override string Name { get => throw null; } - public override System.IO.Stream OpenRead() => throw null; - public override string RealPath { get => throw null; } - public override void Refresh() => throw null; - } - - // Generated from `ServiceStack.VirtualPath.ResourceVirtualDirectory` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ResourceVirtualDirectory : ServiceStack.VirtualPath.AbstractVirtualDirectoryBase - { - protected virtual ServiceStack.VirtualPath.ResourceVirtualDirectory ConsumeTokensForVirtualDir(System.Collections.Generic.Stack resourceTokens) => throw null; - protected virtual ServiceStack.VirtualPath.ResourceVirtualDirectory CreateVirtualDirectory(System.Linq.IGrouping subResources) => throw null; - protected virtual ServiceStack.VirtualPath.ResourceVirtualFile CreateVirtualFile(string resourceName) => throw null; - public override System.Collections.Generic.IEnumerable Directories { get => throw null; } - public string DirectoryName { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet EmbeddedResourceTreatAsFiles { get => throw null; set => throw null; } - public override System.Collections.Generic.IEnumerable Files { get => throw null; } - protected override ServiceStack.IO.IVirtualDirectory GetDirectoryFromBackingDirectoryOrDefault(string directoryName) => throw null; - public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - protected override ServiceStack.IO.IVirtualFile GetFileFromBackingDirectoryOrDefault(string fileName) => throw null; - protected override System.Collections.Generic.IEnumerable GetMatchingFilesInDir(string globPattern) => throw null; - protected override string GetRealPathToRoot() => throw null; - public static System.Collections.Generic.List GetResourceNames(System.Reflection.Assembly asm, string basePath) => throw null; - protected void InitializeDirectoryStructure(System.Collections.Generic.List manifestResourceNames) => throw null; - public override System.DateTime LastModified { get => throw null; } - public override string Name { get => throw null; } - public ResourceVirtualDirectory(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory parentDir, System.Reflection.Assembly backingAsm, System.DateTime lastModified, string rootNamespace, string directoryName, System.Collections.Generic.List manifestResourceNames) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; - public ResourceVirtualDirectory(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.IO.IVirtualDirectory parentDir, System.Reflection.Assembly backingAsm, System.DateTime lastModified, string rootNamespace) : base(default(ServiceStack.IO.IVirtualPathProvider)) => throw null; - protected System.Collections.Generic.List SubDirectories; - protected System.Collections.Generic.List SubFiles; - protected System.Reflection.Assembly backingAssembly; - public string rootNamespace { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.VirtualPath.ResourceVirtualFile` in `ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ResourceVirtualFile : ServiceStack.VirtualPath.AbstractVirtualFileBase - { - protected System.Reflection.Assembly BackingAssembly; - protected string FileName; - public override System.DateTime LastModified { get => throw null; } - public override System.Int64 Length { get => throw null; } - public override string Name { get => throw null; } - public override System.IO.Stream OpenRead() => throw null; - public override string RealPath { get => throw null; } - public ResourceVirtualFile(ServiceStack.IO.IVirtualPathProvider owningProvider, ServiceStack.VirtualPath.ResourceVirtualDirectory directory, string fileName) : base(default(ServiceStack.IO.IVirtualPathProvider), default(ServiceStack.IO.IVirtualDirectory)) => throw null; - public override string VirtualPath { get => throw null; } - } - - } -} -namespace System -{ - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null'. */ - - } - } -} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.csproj deleted file mode 100644 index dfa14fb4a16..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Common/5.11.0/ServiceStack.Common.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.cs b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.cs deleted file mode 100644 index 2f2456c8d5d..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.cs +++ /dev/null @@ -1,5646 +0,0 @@ -// This file contains auto-generated code. - -namespace ServiceStack -{ - // Generated from `ServiceStack.ApiAllowableValuesAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ApiAllowableValuesAttribute : ServiceStack.AttributeBase - { - public ApiAllowableValuesAttribute(string[] values) => throw null; - public ApiAllowableValuesAttribute(string name, params string[] values) => throw null; - public ApiAllowableValuesAttribute(string name, int min, int max) => throw null; - public ApiAllowableValuesAttribute(string name, System.Type enumType) => throw null; - public ApiAllowableValuesAttribute(string name, System.Func listAction) => throw null; - public ApiAllowableValuesAttribute(string name) => throw null; - public ApiAllowableValuesAttribute(int min, int max) => throw null; - public ApiAllowableValuesAttribute(System.Type enumType) => throw null; - public ApiAllowableValuesAttribute(System.Func listAction) => throw null; - public ApiAllowableValuesAttribute() => throw null; - public int? Max { get => throw null; set => throw null; } - public int? Min { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - public string[] Values { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ApiAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ApiAttribute : ServiceStack.AttributeBase - { - public ApiAttribute(string description, int generateBodyParameter, bool isRequired) => throw null; - public ApiAttribute(string description, int generateBodyParameter) => throw null; - public ApiAttribute(string description) => throw null; - public ApiAttribute() => throw null; - public int BodyParameter { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public bool IsRequired { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ApiMemberAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ApiMemberAttribute : ServiceStack.AttributeBase - { - public bool AllowMultiple { get => throw null; set => throw null; } - public ApiMemberAttribute() => throw null; - public string DataType { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public bool ExcludeInSchema { get => throw null; set => throw null; } - public string Format { 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 string ParameterType { get => throw null; set => throw null; } - public string Route { get => throw null; set => throw null; } - public string Verb { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ApiResponseAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ApiResponseAttribute : ServiceStack.AttributeBase, ServiceStack.IApiResponseDescription - { - public ApiResponseAttribute(int statusCode, string description) => throw null; - public ApiResponseAttribute(System.Net.HttpStatusCode statusCode, string description) => throw null; - public ApiResponseAttribute() => throw null; - public string Description { get => throw null; set => throw null; } - public bool IsDefaultResponse { get => throw null; set => throw null; } - public System.Type ResponseType { get => throw null; set => throw null; } - public int StatusCode { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ApplyTo` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum ApplyTo - { - Acl, - All, - BaseLineControl, - CheckIn, - CheckOut, - Connect, - Copy, - Delete, - Get, - Head, - Label, - Lock, - Merge, - MkActivity, - MkCol, - MkWorkSpace, - Move, - None, - Options, - OrderPatch, - Patch, - Post, - PropFind, - PropPatch, - Put, - Report, - Search, - Trace, - UnCheckOut, - UnLock, - Update, - VersionControl, - } - - // Generated from `ServiceStack.ArrayOfGuid` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ArrayOfGuid : System.Collections.Generic.List - { - public ArrayOfGuid(params System.Guid[] args) => throw null; - public ArrayOfGuid(System.Collections.Generic.IEnumerable collection) => throw null; - public ArrayOfGuid() => throw null; - } - - // Generated from `ServiceStack.ArrayOfGuidId` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ArrayOfGuidId : System.Collections.Generic.List - { - public ArrayOfGuidId(params System.Guid[] args) => throw null; - public ArrayOfGuidId(System.Collections.Generic.IEnumerable collection) => throw null; - public ArrayOfGuidId() => throw null; - } - - // Generated from `ServiceStack.ArrayOfInt` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ArrayOfInt : System.Collections.Generic.List - { - public ArrayOfInt(params int[] args) => throw null; - public ArrayOfInt(System.Collections.Generic.IEnumerable collection) => throw null; - public ArrayOfInt() => throw null; - } - - // Generated from `ServiceStack.ArrayOfIntId` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ArrayOfIntId : System.Collections.Generic.List - { - public ArrayOfIntId(params int[] args) => throw null; - public ArrayOfIntId(System.Collections.Generic.IEnumerable collection) => throw null; - public ArrayOfIntId() => throw null; - } - - // Generated from `ServiceStack.ArrayOfLong` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ArrayOfLong : System.Collections.Generic.List - { - public ArrayOfLong(params System.Int64[] args) => throw null; - public ArrayOfLong(System.Collections.Generic.IEnumerable collection) => throw null; - public ArrayOfLong() => throw null; - } - - // Generated from `ServiceStack.ArrayOfLongId` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ArrayOfLongId : System.Collections.Generic.List - { - public ArrayOfLongId(params System.Int64[] args) => throw null; - public ArrayOfLongId(System.Collections.Generic.IEnumerable collection) => throw null; - public ArrayOfLongId() => throw null; - } - - // Generated from `ServiceStack.ArrayOfString` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ArrayOfString : System.Collections.Generic.List - { - public ArrayOfString(params string[] args) => throw null; - public ArrayOfString(System.Collections.Generic.IEnumerable collection) => throw null; - public ArrayOfString() => throw null; - } - - // Generated from `ServiceStack.ArrayOfStringId` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ArrayOfStringId : System.Collections.Generic.List - { - public ArrayOfStringId(params string[] args) => throw null; - public ArrayOfStringId(System.Collections.Generic.IEnumerable collection) => throw null; - public ArrayOfStringId() => throw null; - } - - // Generated from `ServiceStack.AttributeBase` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AttributeBase : System.Attribute - { - public AttributeBase() => throw null; - protected System.Guid typeId; - } - - // Generated from `ServiceStack.AuditBase` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AuditBase - { - protected AuditBase() => throw null; - public string CreatedBy { get => throw null; set => throw null; } - public System.DateTime CreatedDate { get => throw null; set => throw null; } - public string DeletedBy { get => throw null; set => throw null; } - public System.DateTime? DeletedDate { get => throw null; set => throw null; } - public string ModifiedBy { get => throw null; set => throw null; } - public System.DateTime ModifiedDate { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoApplyAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoApplyAttribute : ServiceStack.AttributeBase - { - public string[] Args { get => throw null; } - public AutoApplyAttribute(string name, params string[] args) => throw null; - public string Name { get => throw null; } - } - - // Generated from `ServiceStack.AutoDefaultAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoDefaultAttribute : ServiceStack.ScriptValueAttribute - { - public AutoDefaultAttribute() => throw null; - } - - // Generated from `ServiceStack.AutoFilterAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoFilterAttribute : ServiceStack.ScriptValueAttribute - { - public AutoFilterAttribute(string field, string template) => throw null; - public AutoFilterAttribute(string field) => throw null; - public AutoFilterAttribute(ServiceStack.QueryTerm term, string field, string template) => throw null; - public AutoFilterAttribute(ServiceStack.QueryTerm term, string field) => throw null; - public string Field { get => throw null; set => throw null; } - public string Operand { get => throw null; set => throw null; } - public string Template { get => throw null; set => throw null; } - public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } - public string ValueFormat { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoIgnoreAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoIgnoreAttribute : ServiceStack.AttributeBase - { - public AutoIgnoreAttribute() => throw null; - } - - // Generated from `ServiceStack.AutoMapAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoMapAttribute : ServiceStack.AttributeBase - { - public AutoMapAttribute(string to) => throw null; - public string To { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoPopulateAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoPopulateAttribute : ServiceStack.ScriptValueAttribute - { - public AutoPopulateAttribute(string field) => throw null; - public string Field { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoQueryViewerAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryViewerAttribute : ServiceStack.AttributeBase - { - public AutoQueryViewerAttribute() => throw null; - public string BackgroundColor { get => throw null; set => throw null; } - public string BackgroundImageUrl { get => throw null; set => throw null; } - public string BrandImageUrl { get => throw null; set => throw null; } - public string BrandUrl { get => throw null; set => throw null; } - public string DefaultFields { get => throw null; set => throw null; } - public string DefaultSearchField { get => throw null; set => throw null; } - public string DefaultSearchText { get => throw null; set => throw null; } - public string DefaultSearchType { get => throw null; set => throw null; } - public string Description { get => throw null; set => throw null; } - public string IconUrl { get => throw null; set => throw null; } - public string LinkColor { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string TextColor { get => throw null; set => throw null; } - public string Title { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoQueryViewerFieldAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryViewerFieldAttribute : ServiceStack.AttributeBase - { - public AutoQueryViewerFieldAttribute() => throw null; - public string Description { get => throw null; set => throw null; } - public bool HideInSummary { get => throw null; set => throw null; } - public string LayoutHint { get => throw null; set => throw null; } - public string Title { get => throw null; set => throw null; } - public string ValueFormat { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoUpdateAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoUpdateAttribute : ServiceStack.AttributeBase - { - public AutoUpdateAttribute(ServiceStack.AutoUpdateStyle style) => throw null; - public ServiceStack.AutoUpdateStyle Style { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoUpdateStyle` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum AutoUpdateStyle - { - Always, - NonDefaults, - } - - // Generated from `ServiceStack.Behavior` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Behavior - { - public const string AuditCreate = default; - public const string AuditDelete = default; - public const string AuditModify = default; - public const string AuditQuery = default; - public const string AuditSoftDelete = default; - } - - // Generated from `ServiceStack.CallStyle` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum CallStyle - { - OneWay, - Reply, - } - - // Generated from `ServiceStack.EmitCSharp` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitCSharp : ServiceStack.EmitCodeAttribute - { - public EmitCSharp(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; - } - - // Generated from `ServiceStack.EmitCodeAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitCodeAttribute : ServiceStack.AttributeBase - { - public EmitCodeAttribute(ServiceStack.Lang lang, string[] statements) => throw null; - public EmitCodeAttribute(ServiceStack.Lang lang, string statement) => throw null; - public ServiceStack.Lang Lang { get => throw null; set => throw null; } - public string[] Statements { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.EmitDart` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitDart : ServiceStack.EmitCodeAttribute - { - public EmitDart(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; - } - - // Generated from `ServiceStack.EmitFSharp` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitFSharp : ServiceStack.EmitCodeAttribute - { - public EmitFSharp(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; - } - - // Generated from `ServiceStack.EmitJava` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitJava : ServiceStack.EmitCodeAttribute - { - public EmitJava(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; - } - - // Generated from `ServiceStack.EmitKotlin` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitKotlin : ServiceStack.EmitCodeAttribute - { - public EmitKotlin(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; - } - - // Generated from `ServiceStack.EmitSwift` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitSwift : ServiceStack.EmitCodeAttribute - { - public EmitSwift(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; - } - - // Generated from `ServiceStack.EmitTypeScript` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitTypeScript : ServiceStack.EmitCodeAttribute - { - public EmitTypeScript(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; - } - - // Generated from `ServiceStack.EmitVb` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitVb : ServiceStack.EmitCodeAttribute - { - public EmitVb(params string[] statements) : base(default(ServiceStack.Lang), default(string)) => throw null; - } - - // Generated from `ServiceStack.EmptyResponse` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmptyResponse : ServiceStack.IHasResponseStatus - { - public EmptyResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Endpoint` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum Endpoint - { - Http, - Mq, - Other, - Tcp, - } - - // Generated from `ServiceStack.ErrorResponse` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ErrorResponse : ServiceStack.IHasResponseStatus - { - public ErrorResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.FallbackRouteAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FallbackRouteAttribute : ServiceStack.RouteAttribute - { - public FallbackRouteAttribute(string path, string verbs) : base(default(string)) => throw null; - public FallbackRouteAttribute(string path) : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.Feature` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum Feature - { - All, - Csv, - CustomFormat, - Grpc, - Html, - Json, - Jsv, - Markdown, - Metadata, - MsgPack, - None, - PredefinedRoutes, - ProtoBuf, - Razor, - RequestInfo, - ServiceDiscovery, - Soap, - Soap11, - Soap12, - Wire, - Xml, - } - - // Generated from `ServiceStack.Format` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum Format - { - Csv, - Html, - Json, - Jsv, - MsgPack, - Other, - ProtoBuf, - Soap11, - Soap12, - Wire, - Xml, - } - - // Generated from `ServiceStack.GenerateBodyParameter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class GenerateBodyParameter - { - public const int Always = default; - public const int IfNotDisabled = default; - public const int Never = default; - } - - // Generated from `ServiceStack.Http` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum Http - { - Delete, - Get, - Head, - Options, - Other, - Patch, - Post, - Put, - } - - // Generated from `ServiceStack.IAny<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAny - { - object Any(T request); - } - - // Generated from `ServiceStack.IAnyVoid<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAnyVoid - { - void Any(T request); - } - - // Generated from `ServiceStack.IApiResponseDescription` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IApiResponseDescription - { - string Description { get; } - int StatusCode { get; } - } - - // Generated from `ServiceStack.ICompressor` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICompressor - { - string Compress(string source); - } - - // Generated from `ServiceStack.IContainer` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IContainer - { - ServiceStack.IContainer AddSingleton(System.Type type, System.Func factory); - ServiceStack.IContainer AddTransient(System.Type type, System.Func factory); - System.Func CreateFactory(System.Type type); - bool Exists(System.Type type); - object Resolve(System.Type type); - } - - // Generated from `ServiceStack.ICreateDb<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICreateDb
    : ServiceStack.ICrud - { - } - - // Generated from `ServiceStack.ICrud` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICrud - { - } - - // Generated from `ServiceStack.IDelete` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDelete : ServiceStack.IVerb - { - } - - // Generated from `ServiceStack.IDelete<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDelete - { - object Delete(T request); - } - - // Generated from `ServiceStack.IDeleteDb<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDeleteDb
    : ServiceStack.ICrud - { - } - - // Generated from `ServiceStack.IDeleteVoid<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDeleteVoid - { - void Delete(T request); - } - - // Generated from `ServiceStack.IEncryptedClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IEncryptedClient : ServiceStack.IServiceGateway, ServiceStack.IReplyClient, ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken - { - ServiceStack.IJsonServiceClient Client { get; } - TResponse Send(string httpMethod, object request); - TResponse Send(string httpMethod, ServiceStack.IReturn request); - string ServerPublicKeyXml { get; } - } - - // Generated from `ServiceStack.IGet` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IGet : ServiceStack.IVerb - { - } - - // Generated from `ServiceStack.IGet<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IGet - { - object Get(T request); - } - - // Generated from `ServiceStack.IGetVoid<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IGetVoid - { - void Get(T request); - } - - // Generated from `ServiceStack.IHasBearerToken` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasBearerToken - { - string BearerToken { get; set; } - } - - // Generated from `ServiceStack.IHasErrorCode` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasErrorCode - { - string ErrorCode { get; } - } - - // Generated from `ServiceStack.IHasResponseStatus` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasResponseStatus - { - ServiceStack.ResponseStatus ResponseStatus { get; set; } - } - - // Generated from `ServiceStack.IHasSessionId` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasSessionId - { - string SessionId { get; set; } - } - - // Generated from `ServiceStack.IHasVersion` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasVersion - { - int Version { get; set; } - } - - // Generated from `ServiceStack.IHtmlString` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHtmlString - { - string ToHtmlString(); - } - - // Generated from `ServiceStack.IHttpRestClientAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpRestClientAsync : System.IDisposable, ServiceStack.IServiceClientCommon, ServiceStack.IRestClientAsync - { - System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(string relativeOrAbsoluteUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PostAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PutAsync(string relativeOrAbsoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SendAsync(string httpMethod, string absoluteUrl, object request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.IJoin` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IJoin - { - } - - // Generated from `ServiceStack.IJoin<,,,,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IJoin : ServiceStack.IJoin - { - } - - // Generated from `ServiceStack.IJoin<,,,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IJoin : ServiceStack.IJoin - { - } - - // Generated from `ServiceStack.IJoin<,,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IJoin : ServiceStack.IJoin - { - } - - // Generated from `ServiceStack.IJoin<,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IJoin : ServiceStack.IJoin - { - } - - // Generated from `ServiceStack.IJsonServiceClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IJsonServiceClient : System.IDisposable, ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceGateway, ServiceStack.IServiceClientSync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientAsync, ServiceStack.IServiceClient, ServiceStack.IRestServiceClient, ServiceStack.IRestClientSync, ServiceStack.IRestClientAsync, ServiceStack.IRestClient, ServiceStack.IReplyClient, ServiceStack.IOneWayClient, ServiceStack.IHttpRestClientAsync, ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken - { - } - - // Generated from `ServiceStack.ILeftJoin<,,,,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILeftJoin : ServiceStack.IJoin - { - } - - // Generated from `ServiceStack.ILeftJoin<,,,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILeftJoin : ServiceStack.IJoin - { - } - - // Generated from `ServiceStack.ILeftJoin<,,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILeftJoin : ServiceStack.IJoin - { - } - - // Generated from `ServiceStack.ILeftJoin<,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILeftJoin : ServiceStack.IJoin - { - } - - // Generated from `ServiceStack.IMeta` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMeta - { - System.Collections.Generic.Dictionary Meta { get; set; } - } - - // Generated from `ServiceStack.IOneWayClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOneWayClient - { - void SendAllOneWay(System.Collections.Generic.IEnumerable requests); - void SendOneWay(string relativeOrAbsoluteUri, object requestDto); - void SendOneWay(object requestDto); - } - - // Generated from `ServiceStack.IOptions` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOptions : ServiceStack.IVerb - { - } - - // Generated from `ServiceStack.IOptions<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOptions - { - object Options(T request); - } - - // Generated from `ServiceStack.IOptionsVoid<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOptionsVoid - { - void Options(T request); - } - - // Generated from `ServiceStack.IPatch` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPatch : ServiceStack.IVerb - { - } - - // Generated from `ServiceStack.IPatch<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPatch - { - object Patch(T request); - } - - // Generated from `ServiceStack.IPatchDb<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPatchDb
    : ServiceStack.ICrud - { - } - - // Generated from `ServiceStack.IPatchVoid<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPatchVoid - { - void Patch(T request); - } - - // Generated from `ServiceStack.IPost` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPost : ServiceStack.IVerb - { - } - - // Generated from `ServiceStack.IPost<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPost - { - object Post(T request); - } - - // Generated from `ServiceStack.IPostVoid<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPostVoid - { - void Post(T request); - } - - // Generated from `ServiceStack.IPut` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPut : ServiceStack.IVerb - { - } - - // Generated from `ServiceStack.IPut<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPut - { - object Put(T request); - } - - // Generated from `ServiceStack.IPutVoid<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPutVoid - { - void Put(T request); - } - - // Generated from `ServiceStack.IQuery` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQuery : ServiceStack.IMeta - { - string Fields { get; set; } - string Include { get; set; } - string OrderBy { get; set; } - string OrderByDesc { get; set; } - int? Skip { get; set; } - int? Take { get; set; } - } - - // Generated from `ServiceStack.IQueryData` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryData : ServiceStack.IQuery, ServiceStack.IMeta - { - } - - // Generated from `ServiceStack.IQueryData<,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryData : ServiceStack.IQueryData, ServiceStack.IQuery, ServiceStack.IMeta - { - } - - // Generated from `ServiceStack.IQueryData<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryData : ServiceStack.IQueryData, ServiceStack.IQuery, ServiceStack.IMeta - { - } - - // Generated from `ServiceStack.IQueryDb` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryDb : ServiceStack.IQuery, ServiceStack.IMeta - { - } - - // Generated from `ServiceStack.IQueryDb<,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryDb : ServiceStack.IQueryDb, ServiceStack.IQuery, ServiceStack.IMeta - { - } - - // Generated from `ServiceStack.IQueryDb<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryDb : ServiceStack.IQueryDb, ServiceStack.IQuery, ServiceStack.IMeta - { - } - - // Generated from `ServiceStack.IQueryResponse` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryResponse : ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - int Offset { get; set; } - int Total { get; set; } - } - - // Generated from `ServiceStack.IRawString` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRawString - { - string ToRawString(); - } - - // Generated from `ServiceStack.IReceiver` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IReceiver - { - void NoSuchMethod(string selector, object message); - } - - // Generated from `ServiceStack.IReflectAttributeConverter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IReflectAttributeConverter - { - ServiceStack.ReflectAttribute ToReflectAttribute(); - } - - // Generated from `ServiceStack.IReplyClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IReplyClient : ServiceStack.IServiceGateway - { - } - - // Generated from `ServiceStack.IRequiresSchema` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequiresSchema - { - void InitSchema(); - } - - // Generated from `ServiceStack.IRequiresSchemaAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequiresSchemaAsync - { - System.Threading.Tasks.Task InitSchemaAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.IResponseStatus` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IResponseStatus - { - string ErrorCode { get; set; } - string ErrorMessage { get; set; } - bool IsSuccess { get; } - string StackTrace { get; set; } - } - - // Generated from `ServiceStack.IRestClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRestClient : System.IDisposable, ServiceStack.IServiceClientCommon, ServiceStack.IRestClientSync - { - void AddHeader(string name, string value); - void ClearCookies(); - TResponse Delete(string relativeOrAbsoluteUrl); - TResponse Get(string relativeOrAbsoluteUrl); - System.Collections.Generic.Dictionary GetCookieValues(); - System.Collections.Generic.IEnumerable GetLazy(ServiceStack.IReturn> queryDto); - TResponse Patch(string relativeOrAbsoluteUrl, object requestDto); - TResponse Post(string relativeOrAbsoluteUrl, object request); - TResponse PostFile(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, string mimeType); - TResponse PostFileWithRequest(string relativeOrAbsoluteUrl, System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)); - TResponse PostFileWithRequest(System.IO.Stream fileToUpload, string fileName, object request, string fieldName = default(string)); - TResponse PostFilesWithRequest(string relativeOrAbsoluteUrl, object request, System.Collections.Generic.IEnumerable files); - TResponse PostFilesWithRequest(object request, System.Collections.Generic.IEnumerable files); - TResponse Put(string relativeOrAbsoluteUrl, object requestDto); - TResponse Send(string httpMethod, string relativeOrAbsoluteUrl, object request); - void SetCookie(string name, string value, System.TimeSpan? expiresIn = default(System.TimeSpan?)); - } - - // Generated from `ServiceStack.IRestClientAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRestClientAsync : System.IDisposable, ServiceStack.IServiceClientCommon - { - System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task CustomMethodAsync(string httpVerb, ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PatchAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PatchAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PostAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PostAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PutAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PutAsync(ServiceStack.IReturnVoid requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.IRestClientSync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRestClientSync : System.IDisposable, ServiceStack.IServiceClientCommon - { - void CustomMethod(string httpVerb, ServiceStack.IReturnVoid requestDto); - TResponse CustomMethod(string httpVerb, object requestDto); - TResponse CustomMethod(string httpVerb, ServiceStack.IReturn requestDto); - void Delete(ServiceStack.IReturnVoid requestDto); - TResponse Delete(object requestDto); - TResponse Delete(ServiceStack.IReturn requestDto); - void Get(ServiceStack.IReturnVoid requestDto); - TResponse Get(object requestDto); - TResponse Get(ServiceStack.IReturn requestDto); - void Patch(ServiceStack.IReturnVoid requestDto); - TResponse Patch(object requestDto); - TResponse Patch(ServiceStack.IReturn requestDto); - void Post(ServiceStack.IReturnVoid requestDto); - TResponse Post(object requestDto); - TResponse Post(ServiceStack.IReturn requestDto); - void Put(ServiceStack.IReturnVoid requestDto); - TResponse Put(object requestDto); - TResponse Put(ServiceStack.IReturn requestDto); - } - - // Generated from `ServiceStack.IRestGateway` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRestGateway - { - T Delete(ServiceStack.IReturn request); - T Get(ServiceStack.IReturn request); - T Post(ServiceStack.IReturn request); - T Put(ServiceStack.IReturn request); - T Send(ServiceStack.IReturn request); - } - - // Generated from `ServiceStack.IRestGatewayAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRestGatewayAsync - { - System.Threading.Tasks.Task DeleteAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); - System.Threading.Tasks.Task GetAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); - System.Threading.Tasks.Task PostAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); - System.Threading.Tasks.Task PutAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); - System.Threading.Tasks.Task SendAsync(ServiceStack.IReturn request, System.Threading.CancellationToken token); - } - - // Generated from `ServiceStack.IRestServiceClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRestServiceClient : System.IDisposable, ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceGateway, ServiceStack.IServiceClientSync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientAsync, ServiceStack.IRestClientSync, ServiceStack.IRestClientAsync, ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken - { - } - - // Generated from `ServiceStack.IReturn` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IReturn - { - } - - // Generated from `ServiceStack.IReturn<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IReturn : ServiceStack.IReturn - { - } - - // Generated from `ServiceStack.IReturnVoid` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IReturnVoid : ServiceStack.IReturn - { - } - - // Generated from `ServiceStack.ISaveDb<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISaveDb
    : ServiceStack.ICrud - { - } - - // Generated from `ServiceStack.IScriptValue` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IScriptValue - { - string Eval { get; set; } - string Expression { get; set; } - bool NoCache { get; set; } - object Value { get; set; } - } - - // Generated from `ServiceStack.ISequenceSource` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISequenceSource : ServiceStack.IRequiresSchema - { - System.Int64 Increment(string key, System.Int64 amount = default(System.Int64)); - void Reset(string key, System.Int64 startingAt = default(System.Int64)); - } - - // Generated from `ServiceStack.ISequenceSourceAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISequenceSourceAsync : ServiceStack.IRequiresSchema - { - System.Threading.Tasks.Task IncrementAsync(string key, System.Int64 amount = default(System.Int64), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ResetAsync(string key, System.Int64 startingAt = default(System.Int64), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.IService` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IService - { - } - - // Generated from `ServiceStack.IServiceAfterFilter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceAfterFilter - { - object OnAfterExecute(object response); - } - - // Generated from `ServiceStack.IServiceAfterFilterAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceAfterFilterAsync - { - System.Threading.Tasks.Task OnAfterExecuteAsync(object response); - } - - // Generated from `ServiceStack.IServiceBeforeFilter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceBeforeFilter - { - void OnBeforeExecute(object requestDto); - } - - // Generated from `ServiceStack.IServiceBeforeFilterAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceBeforeFilterAsync - { - System.Threading.Tasks.Task OnBeforeExecuteAsync(object requestDto); - } - - // Generated from `ServiceStack.IServiceClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceClient : System.IDisposable, ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceGateway, ServiceStack.IServiceClientSync, ServiceStack.IServiceClientCommon, ServiceStack.IServiceClientAsync, ServiceStack.IRestServiceClient, ServiceStack.IRestClientSync, ServiceStack.IRestClientAsync, ServiceStack.IRestClient, ServiceStack.IReplyClient, ServiceStack.IOneWayClient, ServiceStack.IHttpRestClientAsync, ServiceStack.IHasVersion, ServiceStack.IHasSessionId, ServiceStack.IHasBearerToken - { - } - - // Generated from `ServiceStack.IServiceClientAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceClientAsync : System.IDisposable, ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceClientCommon, ServiceStack.IRestClientAsync - { - } - - // Generated from `ServiceStack.IServiceClientCommon` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceClientCommon : System.IDisposable - { - void SetCredentials(string userName, string password); - } - - // Generated from `ServiceStack.IServiceClientSync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceClientSync : System.IDisposable, ServiceStack.IServiceGateway, ServiceStack.IServiceClientCommon, ServiceStack.IRestClientSync - { - } - - // Generated from `ServiceStack.IServiceErrorFilter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceErrorFilter - { - System.Threading.Tasks.Task OnExceptionAsync(object requestDto, System.Exception ex); - } - - // Generated from `ServiceStack.IServiceFilters` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceFilters : ServiceStack.IServiceErrorFilter, ServiceStack.IServiceBeforeFilter, ServiceStack.IServiceAfterFilter - { - } - - // Generated from `ServiceStack.IServiceGateway` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceGateway - { - void Publish(object requestDto); - void PublishAll(System.Collections.Generic.IEnumerable requestDtos); - TResponse Send(object requestDto); - System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requestDtos); - } - - // Generated from `ServiceStack.IServiceGatewayAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceGatewayAsync - { - System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.IStream` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IStream : ServiceStack.IVerb - { - } - - // Generated from `ServiceStack.IUpdateDb<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUpdateDb
    : ServiceStack.ICrud - { - } - - // Generated from `ServiceStack.IUrlFilter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUrlFilter - { - string ToUrl(string absoluteUrl); - } - - // Generated from `ServiceStack.IValidateRule` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidateRule - { - string Condition { get; set; } - string ErrorCode { get; set; } - string Message { get; set; } - string Validator { get; set; } - } - - // Generated from `ServiceStack.IValidationSource` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidationSource - { - System.Collections.Generic.IEnumerable> GetValidationRules(System.Type type); - } - - // Generated from `ServiceStack.IValidationSourceAdmin` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidationSourceAdmin - { - System.Threading.Tasks.Task ClearCacheAsync(); - System.Threading.Tasks.Task DeleteValidationRulesAsync(params int[] ids); - System.Threading.Tasks.Task> GetAllValidateRulesAsync(string typeName); - System.Threading.Tasks.Task> GetValidateRulesByIdsAsync(params int[] ids); - System.Threading.Tasks.Task SaveValidationRulesAsync(System.Collections.Generic.List validateRules); - } - - // Generated from `ServiceStack.IVerb` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IVerb - { - } - - // Generated from `ServiceStack.IdResponse` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IdResponse : ServiceStack.IHasResponseStatus - { - public string Id { get => throw null; set => throw null; } - public IdResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Lang` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum Lang - { - CSharp, - Dart, - FSharp, - Java, - Kotlin, - Swift, - TypeScript, - Vb, - } - - // Generated from `ServiceStack.NamedConnectionAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NamedConnectionAttribute : ServiceStack.AttributeBase - { - public string Name { get => throw null; set => throw null; } - public NamedConnectionAttribute(string name) => throw null; - } - - // Generated from `ServiceStack.NavItem` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NavItem : ServiceStack.IMeta - { - public System.Collections.Generic.List Children { get => throw null; set => throw null; } - public string ClassName { get => throw null; set => throw null; } - public bool? Exact { get => throw null; set => throw null; } - public string Hide { get => throw null; set => throw null; } - public string Href { get => throw null; set => throw null; } - public string IconClass { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public string Label { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public NavItem() => throw null; - public string Show { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Network` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum Network - { - External, - LocalSubnet, - Localhost, - } - - // Generated from `ServiceStack.PageArgAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageArgAttribute : ServiceStack.AttributeBase - { - public string Name { get => throw null; set => throw null; } - public PageArgAttribute(string name, string value) => throw null; - public string Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.PageAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PageAttribute : ServiceStack.AttributeBase - { - public string Layout { get => throw null; set => throw null; } - public PageAttribute(string virtualPath, string layout = default(string)) => throw null; - public string VirtualPath { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.PriorityAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PriorityAttribute : ServiceStack.AttributeBase - { - public PriorityAttribute(int value) => throw null; - public int Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Properties` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Properties : System.Collections.Generic.List - { - public Properties(System.Collections.Generic.IEnumerable collection) => throw null; - public Properties() => throw null; - } - - // Generated from `ServiceStack.Property` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Property - { - public string Name { get => throw null; set => throw null; } - public Property() => throw null; - public string Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryBase` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class QueryBase : ServiceStack.IQuery, ServiceStack.IMeta - { - public virtual string Fields { get => throw null; set => throw null; } - public virtual string Include { get => throw null; set => throw null; } - public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public virtual string OrderBy { get => throw null; set => throw null; } - public virtual string OrderByDesc { get => throw null; set => throw null; } - protected QueryBase() => throw null; - public virtual int? Skip { get => throw null; set => throw null; } - public virtual int? Take { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryData<,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class QueryData : ServiceStack.QueryBase, ServiceStack.IReturn>, ServiceStack.IReturn, ServiceStack.IQueryData, ServiceStack.IQueryData, ServiceStack.IQuery, ServiceStack.IMeta - { - protected QueryData() => throw null; - } - - // Generated from `ServiceStack.QueryData<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class QueryData : ServiceStack.QueryBase, ServiceStack.IReturn>, ServiceStack.IReturn, ServiceStack.IQueryData, ServiceStack.IQueryData, ServiceStack.IQuery, ServiceStack.IMeta - { - protected QueryData() => throw null; - } - - // Generated from `ServiceStack.QueryDataAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class QueryDataAttribute : ServiceStack.AttributeBase - { - public ServiceStack.QueryTerm DefaultTerm { get => throw null; set => throw null; } - public QueryDataAttribute(ServiceStack.QueryTerm defaultTerm) => throw null; - public QueryDataAttribute() => throw null; - } - - // Generated from `ServiceStack.QueryDataFieldAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class QueryDataFieldAttribute : ServiceStack.AttributeBase - { - public string Condition { get => throw null; set => throw null; } - public string Field { get => throw null; set => throw null; } - public QueryDataFieldAttribute() => throw null; - public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryDb<,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class QueryDb : ServiceStack.QueryBase, ServiceStack.IReturn>, ServiceStack.IReturn, ServiceStack.IQueryDb, ServiceStack.IQueryDb, ServiceStack.IQuery, ServiceStack.IMeta - { - protected QueryDb() => throw null; - } - - // Generated from `ServiceStack.QueryDb<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class QueryDb : ServiceStack.QueryBase, ServiceStack.IReturn>, ServiceStack.IReturn, ServiceStack.IQueryDb, ServiceStack.IQueryDb, ServiceStack.IQuery, ServiceStack.IMeta - { - protected QueryDb() => throw null; - } - - // Generated from `ServiceStack.QueryDbAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class QueryDbAttribute : ServiceStack.AttributeBase - { - public ServiceStack.QueryTerm DefaultTerm { get => throw null; set => throw null; } - public QueryDbAttribute(ServiceStack.QueryTerm defaultTerm) => throw null; - public QueryDbAttribute() => throw null; - } - - // Generated from `ServiceStack.QueryDbFieldAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class QueryDbFieldAttribute : ServiceStack.AttributeBase - { - public string Field { get => throw null; set => throw null; } - public string Operand { get => throw null; set => throw null; } - public QueryDbFieldAttribute() => throw null; - public string Template { get => throw null; set => throw null; } - public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } - public int ValueArity { get => throw null; set => throw null; } - public string ValueFormat { get => throw null; set => throw null; } - public ServiceStack.ValueStyle ValueStyle { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryResponse<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class QueryResponse : ServiceStack.IQueryResponse, ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public virtual int Offset { get => throw null; set => throw null; } - public QueryResponse() => throw null; - public virtual ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public virtual System.Collections.Generic.List Results { get => throw null; set => throw null; } - public virtual int Total { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryTerm` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum QueryTerm - { - And, - Default, - Ensure, - Or, - } - - // Generated from `ServiceStack.ReflectAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ReflectAttribute - { - public System.Collections.Generic.List> ConstructorArgs { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Collections.Generic.List> PropertyArgs { get => throw null; set => throw null; } - public ReflectAttribute() => throw null; - } - - // Generated from `ServiceStack.RequestAttributes` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum RequestAttributes - { - Any, - AnyCallStyle, - AnyEndpoint, - AnyFormat, - AnyHttpMethod, - AnyNetworkAccessType, - AnySecurityMode, - Csv, - EndpointOther, - External, - FormatOther, - Grpc, - Html, - Http, - HttpDelete, - HttpGet, - HttpHead, - HttpOptions, - HttpOther, - HttpPatch, - HttpPost, - HttpPut, - InProcess, - InSecure, - InternalNetworkAccess, - Json, - Jsv, - LocalSubnet, - Localhost, - MessageQueue, - MsgPack, - None, - OneWay, - ProtoBuf, - Reply, - Secure, - Soap11, - Soap12, - Tcp, - Wire, - Xml, - } - - // Generated from `ServiceStack.RequestAttributesExtensions` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RequestAttributesExtensions - { - public static string FromFormat(this ServiceStack.Format format) => throw null; - public static bool IsExternal(this ServiceStack.RequestAttributes attrs) => throw null; - public static bool IsLocalSubnet(this ServiceStack.RequestAttributes attrs) => throw null; - public static bool IsLocalhost(this ServiceStack.RequestAttributes attrs) => throw null; - public static ServiceStack.Feature ToFeature(this ServiceStack.Format format) => throw null; - public static ServiceStack.Format ToFormat(this string format) => throw null; - public static ServiceStack.Format ToFormat(this ServiceStack.Feature feature) => throw null; - public static ServiceStack.Feature ToSoapFeature(this ServiceStack.RequestAttributes attributes) => throw null; - } - - // Generated from `ServiceStack.RequestLogEntry` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestLogEntry : ServiceStack.IMeta - { - public string AbsoluteUri { get => throw null; set => throw null; } - public System.DateTime DateTime { get => throw null; set => throw null; } - public object ErrorResponse { get => throw null; set => throw null; } - public System.Collections.IDictionary ExceptionData { get => throw null; set => throw null; } - public string ExceptionSource { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary FormData { get => throw null; set => throw null; } - public string ForwardedFor { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } - public string HttpMethod { get => throw null; set => throw null; } - public System.Int64 Id { get => throw null; set => throw null; } - public string IpAddress { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string PathInfo { get => throw null; set => throw null; } - public string Referer { get => throw null; set => throw null; } - public string RequestBody { get => throw null; set => throw null; } - public object RequestDto { get => throw null; set => throw null; } - public System.TimeSpan RequestDuration { get => throw null; set => throw null; } - public RequestLogEntry() => throw null; - public object ResponseDto { get => throw null; set => throw null; } - public object Session { get => throw null; set => throw null; } - public string SessionId { get => throw null; set => throw null; } - public int StatusCode { get => throw null; set => throw null; } - public string StatusDescription { get => throw null; set => throw null; } - public string UserAuthId { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ResponseError` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ResponseError : ServiceStack.IMeta - { - public string ErrorCode { get => throw null; set => throw null; } - public string FieldName { get => throw null; set => throw null; } - public string Message { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ResponseError() => throw null; - } - - // Generated from `ServiceStack.ResponseStatus` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ResponseStatus : ServiceStack.IMeta - { - public string ErrorCode { get => throw null; set => throw null; } - public System.Collections.Generic.List Errors { get => throw null; set => throw null; } - public string Message { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ResponseStatus(string errorCode, string message) => throw null; - public ResponseStatus(string errorCode) => throw null; - public ResponseStatus() => throw null; - public string StackTrace { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.RestrictAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RestrictAttribute : ServiceStack.AttributeBase - { - public ServiceStack.RequestAttributes AccessTo { get => throw null; set => throw null; } - public ServiceStack.RequestAttributes[] AccessibleToAny { get => throw null; set => throw null; } - public bool CanShowTo(ServiceStack.RequestAttributes restrictions) => throw null; - public bool ExternalOnly { get => throw null; set => throw null; } - public bool HasAccessTo(ServiceStack.RequestAttributes restrictions) => throw null; - public bool HasNoAccessRestrictions { get => throw null; } - public bool HasNoVisibilityRestrictions { get => throw null; } - public bool InternalOnly { get => throw null; set => throw null; } - public bool LocalhostOnly { get => throw null; set => throw null; } - public RestrictAttribute(params ServiceStack.RequestAttributes[] restrictAccessAndVisibilityToScenarios) => throw null; - public RestrictAttribute(ServiceStack.RequestAttributes[] allowedAccessScenarios, ServiceStack.RequestAttributes[] visibleToScenarios) => throw null; - public RestrictAttribute() => throw null; - public ServiceStack.RequestAttributes VisibilityTo { get => throw null; set => throw null; } - public bool VisibleInternalOnly { get => throw null; set => throw null; } - public bool VisibleLocalhostOnly { get => throw null; set => throw null; } - public ServiceStack.RequestAttributes[] VisibleToAny { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.RestrictExtensions` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RestrictExtensions - { - public static bool HasAnyRestrictionsOf(ServiceStack.RequestAttributes allRestrictions, ServiceStack.RequestAttributes restrictions) => throw null; - public static ServiceStack.RequestAttributes ToAllowedFlagsSet(this ServiceStack.RequestAttributes restrictTo) => throw null; - } - - // Generated from `ServiceStack.RouteAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RouteAttribute : ServiceStack.AttributeBase, ServiceStack.IReflectAttributeConverter - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.RouteAttribute other) => throw null; - public override int GetHashCode() => throw null; - public string Matches { get => throw null; set => throw null; } - public string Notes { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public int Priority { get => throw null; set => throw null; } - public RouteAttribute(string path, string verbs) => throw null; - public RouteAttribute(string path) => throw null; - public string Summary { get => throw null; set => throw null; } - public ServiceStack.ReflectAttribute ToReflectAttribute() => throw null; - public string Verbs { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ScriptValue` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct ScriptValue : ServiceStack.IScriptValue - { - public string Eval { get => throw null; set => throw null; } - public string Expression { get => throw null; set => throw null; } - public bool NoCache { get => throw null; set => throw null; } - // Stub generator skipped constructor - public object Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ScriptValueAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ScriptValueAttribute : ServiceStack.AttributeBase, ServiceStack.IScriptValue - { - public string Eval { get => throw null; set => throw null; } - public string Expression { get => throw null; set => throw null; } - public bool NoCache { get => throw null; set => throw null; } - protected ScriptValueAttribute() => throw null; - public object Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Security` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum Security - { - InSecure, - Secure, - } - - // Generated from `ServiceStack.SqlTemplate` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlTemplate - { - public const string CaseInsensitiveLike = default; - public const string CaseSensitiveLike = default; - public const string GreaterThan = default; - public const string GreaterThanOrEqual = default; - public const string IsNotNull = default; - public const string IsNull = default; - public const string LessThan = default; - public const string LessThanOrEqual = default; - public const string NotEqual = default; - } - - // Generated from `ServiceStack.StrictModeException` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StrictModeException : System.ArgumentException - { - public string Code { get => throw null; set => throw null; } - public StrictModeException(string message, string paramName, string code = default(string)) => throw null; - public StrictModeException(string message, string code = default(string)) => throw null; - public StrictModeException(string message, System.Exception innerException, string code = default(string)) => throw null; - public StrictModeException() => throw null; - } - - // Generated from `ServiceStack.StringResponse` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringResponse : ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public string Results { get => throw null; set => throw null; } - public StringResponse() => throw null; - } - - // Generated from `ServiceStack.StringsResponse` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringsResponse : ServiceStack.IMeta, ServiceStack.IHasResponseStatus - { - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - public StringsResponse() => throw null; - } - - // Generated from `ServiceStack.SwaggerType` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SwaggerType - { - public const string Array = default; - public const string Boolean = default; - public const string Byte = default; - public const string Date = default; - public const string Double = default; - public const string Float = default; - public const string Int = default; - public const string Long = default; - public const string String = default; - } - - // Generated from `ServiceStack.SynthesizeAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SynthesizeAttribute : ServiceStack.AttributeBase - { - public SynthesizeAttribute() => throw null; - } - - // Generated from `ServiceStack.TagAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TagAttribute : ServiceStack.AttributeBase - { - public ServiceStack.ApplyTo ApplyTo { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public TagAttribute(string name, ServiceStack.ApplyTo applyTo) => throw null; - public TagAttribute(string name) => throw null; - public TagAttribute() => throw null; - } - - // Generated from `ServiceStack.UploadFile` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UploadFile - { - public string ContentType { get => throw null; set => throw null; } - public string FieldName { get => throw null; set => throw null; } - public string FileName { get => throw null; set => throw null; } - public System.IO.Stream Stream { get => throw null; set => throw null; } - public UploadFile(string fileName, System.IO.Stream stream, string fieldName, string contentType) => throw null; - public UploadFile(string fileName, System.IO.Stream stream, string fieldName) => throw null; - public UploadFile(string fileName, System.IO.Stream stream) => throw null; - public UploadFile(System.IO.Stream stream) => throw null; - } - - // Generated from `ServiceStack.ValidateAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateAttribute : ServiceStack.AttributeBase, ServiceStack.IValidateRule, ServiceStack.IReflectAttributeConverter - { - public string[] AllConditions { get => throw null; set => throw null; } - public string[] AnyConditions { get => throw null; set => throw null; } - public static string Combine(string comparand, params string[] conditions) => throw null; - public string Condition { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public string Message { get => throw null; set => throw null; } - public ServiceStack.ReflectAttribute ToReflectAttribute() => throw null; - public ValidateAttribute(string validator) => throw null; - public ValidateAttribute() => throw null; - public string Validator { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ValidateCreditCardAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateCreditCardAttribute : ServiceStack.ValidateAttribute - { - public ValidateCreditCardAttribute() => throw null; - } - - // Generated from `ServiceStack.ValidateEmailAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateEmailAttribute : ServiceStack.ValidateAttribute - { - public ValidateEmailAttribute() => throw null; - } - - // Generated from `ServiceStack.ValidateEmptyAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateEmptyAttribute : ServiceStack.ValidateAttribute - { - public ValidateEmptyAttribute() => throw null; - } - - // Generated from `ServiceStack.ValidateEqualAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateEqualAttribute : ServiceStack.ValidateAttribute - { - public ValidateEqualAttribute(string value) => throw null; - public ValidateEqualAttribute(int value) => throw null; - } - - // Generated from `ServiceStack.ValidateExactLengthAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateExactLengthAttribute : ServiceStack.ValidateAttribute - { - public ValidateExactLengthAttribute(int length) => throw null; - } - - // Generated from `ServiceStack.ValidateExclusiveBetweenAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateExclusiveBetweenAttribute : ServiceStack.ValidateAttribute - { - public ValidateExclusiveBetweenAttribute(string from, string to) => throw null; - public ValidateExclusiveBetweenAttribute(int from, int to) => throw null; - public ValidateExclusiveBetweenAttribute(System.Char from, System.Char to) => throw null; - } - - // Generated from `ServiceStack.ValidateGreaterThanAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateGreaterThanAttribute : ServiceStack.ValidateAttribute - { - public ValidateGreaterThanAttribute(int value) => throw null; - } - - // Generated from `ServiceStack.ValidateGreaterThanOrEqualAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateGreaterThanOrEqualAttribute : ServiceStack.ValidateAttribute - { - public ValidateGreaterThanOrEqualAttribute(int value) => throw null; - } - - // Generated from `ServiceStack.ValidateHasPermissionAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateHasPermissionAttribute : ServiceStack.ValidateRequestAttribute - { - public ValidateHasPermissionAttribute(string permission) => throw null; - } - - // Generated from `ServiceStack.ValidateHasRoleAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateHasRoleAttribute : ServiceStack.ValidateRequestAttribute - { - public ValidateHasRoleAttribute(string role) => throw null; - } - - // Generated from `ServiceStack.ValidateInclusiveBetweenAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateInclusiveBetweenAttribute : ServiceStack.ValidateAttribute - { - public ValidateInclusiveBetweenAttribute(string from, string to) => throw null; - public ValidateInclusiveBetweenAttribute(int from, int to) => throw null; - public ValidateInclusiveBetweenAttribute(System.Char from, System.Char to) => throw null; - } - - // Generated from `ServiceStack.ValidateIsAdminAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateIsAdminAttribute : ServiceStack.ValidateRequestAttribute - { - public ValidateIsAdminAttribute() => throw null; - } - - // Generated from `ServiceStack.ValidateIsAuthenticatedAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateIsAuthenticatedAttribute : ServiceStack.ValidateRequestAttribute - { - public ValidateIsAuthenticatedAttribute() => throw null; - } - - // Generated from `ServiceStack.ValidateLengthAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateLengthAttribute : ServiceStack.ValidateAttribute - { - public ValidateLengthAttribute(int min, int max) => throw null; - } - - // Generated from `ServiceStack.ValidateLessThanAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateLessThanAttribute : ServiceStack.ValidateAttribute - { - public ValidateLessThanAttribute(int value) => throw null; - } - - // Generated from `ServiceStack.ValidateLessThanOrEqualAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateLessThanOrEqualAttribute : ServiceStack.ValidateAttribute - { - public ValidateLessThanOrEqualAttribute(int value) => throw null; - } - - // Generated from `ServiceStack.ValidateMaximumLengthAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateMaximumLengthAttribute : ServiceStack.ValidateAttribute - { - public ValidateMaximumLengthAttribute(int max) => throw null; - } - - // Generated from `ServiceStack.ValidateMinimumLengthAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateMinimumLengthAttribute : ServiceStack.ValidateAttribute - { - public ValidateMinimumLengthAttribute(int min) => throw null; - } - - // Generated from `ServiceStack.ValidateNotEmptyAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateNotEmptyAttribute : ServiceStack.ValidateAttribute - { - public ValidateNotEmptyAttribute() => throw null; - } - - // Generated from `ServiceStack.ValidateNotEqualAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateNotEqualAttribute : ServiceStack.ValidateAttribute - { - public ValidateNotEqualAttribute(string value) => throw null; - public ValidateNotEqualAttribute(int value) => throw null; - } - - // Generated from `ServiceStack.ValidateNotNullAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateNotNullAttribute : ServiceStack.ValidateAttribute - { - public ValidateNotNullAttribute() => throw null; - } - - // Generated from `ServiceStack.ValidateNullAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateNullAttribute : ServiceStack.ValidateAttribute - { - public ValidateNullAttribute() => throw null; - } - - // Generated from `ServiceStack.ValidateRegularExpressionAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateRegularExpressionAttribute : ServiceStack.ValidateAttribute - { - public ValidateRegularExpressionAttribute(string pattern) => throw null; - } - - // Generated from `ServiceStack.ValidateRequestAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateRequestAttribute : ServiceStack.AttributeBase, ServiceStack.IValidateRule, ServiceStack.IReflectAttributeConverter - { - public string[] AllConditions { get => throw null; set => throw null; } - public string[] AnyConditions { get => throw null; set => throw null; } - public string Condition { get => throw null; set => throw null; } - public string[] Conditions { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public string Message { get => throw null; set => throw null; } - public int StatusCode { get => throw null; set => throw null; } - public ServiceStack.ReflectAttribute ToReflectAttribute() => throw null; - public ValidateRequestAttribute(string validator) => throw null; - public ValidateRequestAttribute() => throw null; - public string Validator { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ValidateRule` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateRule : ServiceStack.IValidateRule - { - public string Condition { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public string Message { get => throw null; set => throw null; } - public ValidateRule() => throw null; - public string Validator { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ValidateScalePrecisionAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateScalePrecisionAttribute : ServiceStack.ValidateAttribute - { - public ValidateScalePrecisionAttribute(int scale, int precision) => throw null; - } - - // Generated from `ServiceStack.ValidationRule` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationRule : ServiceStack.ValidateRule - { - public string CreatedBy { get => throw null; set => throw null; } - public System.DateTime? CreatedDate { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.ValidationRule other) => throw null; - public string Field { get => throw null; set => throw null; } - public override int GetHashCode() => throw null; - public int Id { get => throw null; set => throw null; } - public string ModifiedBy { get => throw null; set => throw null; } - public System.DateTime? ModifiedDate { get => throw null; set => throw null; } - public string Notes { get => throw null; set => throw null; } - public string SuspendedBy { get => throw null; set => throw null; } - public System.DateTime? SuspendedDate { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - public ValidationRule() => throw null; - } - - // Generated from `ServiceStack.ValueStyle` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum ValueStyle - { - List, - Multiple, - Single, - } - - namespace Auth - { - // Generated from `ServiceStack.Auth.IAuthTokens` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthTokens : ServiceStack.Auth.IUserAuthDetailsExtended - { - string AccessToken { get; set; } - string AccessTokenSecret { get; set; } - System.Collections.Generic.Dictionary Items { get; set; } - string Provider { get; set; } - string RefreshToken { get; set; } - System.DateTime? RefreshTokenExpiry { get; set; } - string RequestToken { get; set; } - string RequestTokenSecret { get; set; } - string UserId { get; set; } - } - - // Generated from `ServiceStack.Auth.IPasswordHasher` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPasswordHasher - { - string HashPassword(string password); - bool VerifyPassword(string hashedPassword, string providedPassword, out bool needsRehash); - System.Byte Version { get; } - } - - // Generated from `ServiceStack.Auth.IUserAuth` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUserAuth : ServiceStack.IMeta, ServiceStack.Auth.IUserAuthDetailsExtended - { - System.DateTime CreatedDate { get; set; } - string DigestHa1Hash { get; set; } - int Id { get; set; } - int InvalidLoginAttempts { get; set; } - System.DateTime? LastLoginAttempt { get; set; } - System.DateTime? LockedDate { get; set; } - System.DateTime ModifiedDate { get; set; } - string PasswordHash { get; set; } - System.Collections.Generic.List Permissions { get; set; } - string PrimaryEmail { get; set; } - int? RefId { get; set; } - string RefIdStr { get; set; } - System.Collections.Generic.List Roles { get; set; } - string Salt { get; set; } - } - - // Generated from `ServiceStack.Auth.IUserAuthDetails` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUserAuthDetails : ServiceStack.IMeta, ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.Auth.IAuthTokens - { - System.DateTime CreatedDate { get; set; } - int Id { get; set; } - System.DateTime ModifiedDate { get; set; } - int? RefId { get; set; } - string RefIdStr { get; set; } - int UserAuthId { get; set; } - } - - // Generated from `ServiceStack.Auth.IUserAuthDetailsExtended` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUserAuthDetailsExtended - { - string Address { get; set; } - string Address2 { get; set; } - System.DateTime? BirthDate { get; set; } - string BirthDateRaw { get; set; } - string City { get; set; } - string Company { get; set; } - string Country { get; set; } - string Culture { get; set; } - string DisplayName { get; set; } - string Email { get; set; } - string FirstName { get; set; } - string FullName { get; set; } - string Gender { get; set; } - string Language { get; set; } - string LastName { get; set; } - string MailAddress { get; set; } - string Nickname { get; set; } - string PhoneNumber { get; set; } - string PostalCode { get; set; } - string State { get; set; } - string TimeZone { get; set; } - string UserName { get; set; } - } - - } - namespace Caching - { - // Generated from `ServiceStack.Caching.ICacheClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICacheClient : System.IDisposable - { - bool Add(string key, T value, System.TimeSpan expiresIn); - bool Add(string key, T value, System.DateTime expiresAt); - bool Add(string key, T value); - System.Int64 Decrement(string key, System.UInt32 amount); - void FlushAll(); - T Get(string key); - System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys); - System.Int64 Increment(string key, System.UInt32 amount); - bool Remove(string key); - void RemoveAll(System.Collections.Generic.IEnumerable keys); - bool Replace(string key, T value, System.TimeSpan expiresIn); - bool Replace(string key, T value, System.DateTime expiresAt); - bool Replace(string key, T value); - bool Set(string key, T value, System.TimeSpan expiresIn); - bool Set(string key, T value, System.DateTime expiresAt); - bool Set(string key, T value); - void SetAll(System.Collections.Generic.IDictionary values); - } - - // Generated from `ServiceStack.Caching.ICacheClientAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICacheClientAsync : System.IAsyncDisposable - { - System.Threading.Tasks.Task AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task AddAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RemoveExpiredEntriesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Caching.ICacheClientExtended` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICacheClientExtended : System.IDisposable, ServiceStack.Caching.ICacheClient - { - System.Collections.Generic.IEnumerable GetKeysByPattern(string pattern); - System.TimeSpan? GetTimeToLive(string key); - void RemoveExpiredEntries(); - } - - // Generated from `ServiceStack.Caching.IDeflateProvider` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDeflateProvider - { - System.Byte[] Deflate(string text); - System.Byte[] Deflate(System.Byte[] bytes); - System.IO.Stream DeflateStream(System.IO.Stream outputStream); - string Inflate(System.Byte[] gzBuffer); - System.Byte[] InflateBytes(System.Byte[] gzBuffer); - System.IO.Stream InflateStream(System.IO.Stream inputStream); - } - - // Generated from `ServiceStack.Caching.IGZipProvider` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IGZipProvider - { - string GUnzip(System.Byte[] gzBuffer); - System.Byte[] GUnzipBytes(System.Byte[] gzBuffer); - System.IO.Stream GUnzipStream(System.IO.Stream gzStream); - System.Byte[] GZip(string text); - System.Byte[] GZip(System.Byte[] bytes); - System.IO.Stream GZipStream(System.IO.Stream outputStream); - } - - // Generated from `ServiceStack.Caching.IMemcachedClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMemcachedClient : System.IDisposable - { - bool Add(string key, object value, System.DateTime expiresAt); - bool Add(string key, object value); - bool CheckAndSet(string key, object value, System.UInt64 lastModifiedValue, System.DateTime expiresAt); - bool CheckAndSet(string key, object value, System.UInt64 lastModifiedValue); - System.Int64 Decrement(string key, System.UInt32 amount); - void FlushAll(); - object Get(string key, out System.UInt64 lastModifiedValue); - object Get(string key); - System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys, out System.Collections.Generic.IDictionary lastModifiedValues); - System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys); - System.Int64 Increment(string key, System.UInt32 amount); - bool Remove(string key); - void RemoveAll(System.Collections.Generic.IEnumerable keys); - bool Replace(string key, object value, System.DateTime expiresAt); - bool Replace(string key, object value); - bool Set(string key, object value, System.DateTime expiresAt); - bool Set(string key, object value); - } - - // Generated from `ServiceStack.Caching.IRemoveByPattern` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRemoveByPattern - { - void RemoveByPattern(string pattern); - void RemoveByRegex(string regex); - } - - // Generated from `ServiceStack.Caching.IRemoveByPatternAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRemoveByPatternAsync - { - System.Threading.Tasks.Task RemoveByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RemoveByRegexAsync(string regex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Caching.ISession` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISession - { - T Get(string key); - object this[string key] { get; set; } - bool Remove(string key); - void RemoveAll(); - void Set(string key, T value); - } - - // Generated from `ServiceStack.Caching.ISessionAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISessionAsync - { - System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RemoveAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Caching.ISessionFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISessionFactory - { - ServiceStack.Caching.ISession CreateSession(string sessionId); - ServiceStack.Caching.ISessionAsync CreateSessionAsync(string sessionId); - ServiceStack.Caching.ISession GetOrCreateSession(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes); - ServiceStack.Caching.ISession GetOrCreateSession(); - ServiceStack.Caching.ISessionAsync GetOrCreateSessionAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes); - ServiceStack.Caching.ISessionAsync GetOrCreateSessionAsync(); - } - - } - namespace Commands - { - // Generated from `ServiceStack.Commands.ICommand` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICommand - { - void Execute(); - } - - // Generated from `ServiceStack.Commands.ICommand<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICommand - { - ReturnType Execute(); - } - - // Generated from `ServiceStack.Commands.ICommandExec` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICommandExec : ServiceStack.Commands.ICommand - { - } - - // Generated from `ServiceStack.Commands.ICommandList<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICommandList : ServiceStack.Commands.ICommand> - { - } - - } - namespace Configuration - { - // Generated from `ServiceStack.Configuration.IAppSettings` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAppSettings - { - bool Exists(string key); - T Get(string name, T defaultValue); - T Get(string name); - System.Collections.Generic.Dictionary GetAll(); - System.Collections.Generic.List GetAllKeys(); - System.Collections.Generic.IDictionary GetDictionary(string key); - System.Collections.Generic.List> GetKeyValuePairs(string key); - System.Collections.Generic.IList GetList(string key); - string GetString(string name); - void Set(string key, T value); - } - - // Generated from `ServiceStack.Configuration.IContainerAdapter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IContainerAdapter : ServiceStack.Configuration.IResolver - { - T Resolve(); - } - - // Generated from `ServiceStack.Configuration.IHasResolver` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasResolver - { - ServiceStack.Configuration.IResolver Resolver { get; } - } - - // Generated from `ServiceStack.Configuration.IRelease` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRelease - { - void Release(object instance); - } - - // Generated from `ServiceStack.Configuration.IResolver` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IResolver - { - T TryResolve(); - } - - // Generated from `ServiceStack.Configuration.IRuntimeAppSettings` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRuntimeAppSettings - { - T Get(ServiceStack.Web.IRequest request, string name, T defaultValue); - } - - // Generated from `ServiceStack.Configuration.ITypeFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypeFactory - { - object CreateInstance(ServiceStack.Configuration.IResolver resolver, System.Type type); - } - - } - namespace Data - { - // Generated from `ServiceStack.Data.DataException` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DataException : System.Exception - { - public DataException(string message, System.Exception innerException) => throw null; - public DataException(string message) => throw null; - public DataException() => throw null; - } - - // Generated from `ServiceStack.Data.IEntityStore` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IEntityStore : System.IDisposable - { - void Delete(T entity); - void DeleteAll(); - void DeleteById(object id); - void DeleteByIds(System.Collections.ICollection ids); - T GetById(object id); - System.Collections.Generic.IList GetByIds(System.Collections.ICollection ids); - T Store(T entity); - void StoreAll(System.Collections.Generic.IEnumerable entities); - } - - // Generated from `ServiceStack.Data.IEntityStore<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IEntityStore - { - void Delete(T entity); - void DeleteAll(); - void DeleteById(object id); - void DeleteByIds(System.Collections.IEnumerable ids); - System.Collections.Generic.IList GetAll(); - T GetById(object id); - System.Collections.Generic.IList GetByIds(System.Collections.IEnumerable ids); - T Store(T entity); - void StoreAll(System.Collections.Generic.IEnumerable entities); - } - - // Generated from `ServiceStack.Data.IEntityStoreAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IEntityStoreAsync - { - System.Threading.Tasks.Task DeleteAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteByIdsAsync(System.Collections.ICollection ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetByIdsAsync(System.Collections.ICollection ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task StoreAllAsync(System.Collections.Generic.IEnumerable entities, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task StoreAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Data.IEntityStoreAsync<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IEntityStoreAsync - { - System.Threading.Tasks.Task DeleteAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task StoreAllAsync(System.Collections.Generic.IEnumerable entities, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task StoreAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Data.OptimisticConcurrencyException` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OptimisticConcurrencyException : ServiceStack.Data.DataException - { - public OptimisticConcurrencyException(string message, System.Exception innerException) => throw null; - public OptimisticConcurrencyException(string message) => throw null; - public OptimisticConcurrencyException() => throw null; - } - - } - namespace DataAnnotations - { - // Generated from `ServiceStack.DataAnnotations.AliasAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AliasAttribute : ServiceStack.AttributeBase - { - public AliasAttribute(string name) => throw null; - public string Name { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.AutoIdAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoIdAttribute : ServiceStack.AttributeBase - { - public AutoIdAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.AutoIncrementAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoIncrementAttribute : ServiceStack.AttributeBase - { - public AutoIncrementAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.BelongToAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BelongToAttribute : ServiceStack.AttributeBase - { - public BelongToAttribute(System.Type belongToTableType) => throw null; - public System.Type BelongToTableType { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.CheckConstraintAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CheckConstraintAttribute : ServiceStack.AttributeBase - { - public CheckConstraintAttribute(string constraint) => throw null; - public string Constraint { get => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.CompositeIndexAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CompositeIndexAttribute : ServiceStack.AttributeBase - { - public CompositeIndexAttribute(params string[] fieldNames) => throw null; - public CompositeIndexAttribute(bool unique, params string[] fieldNames) => throw null; - public CompositeIndexAttribute() => throw null; - public System.Collections.Generic.List FieldNames { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public bool Unique { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.CompositeKeyAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CompositeKeyAttribute : ServiceStack.AttributeBase - { - public CompositeKeyAttribute(params string[] fieldNames) => throw null; - public CompositeKeyAttribute() => throw null; - public System.Collections.Generic.List FieldNames { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.ComputeAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ComputeAttribute : ServiceStack.AttributeBase - { - public ComputeAttribute(string expression) => throw null; - public ComputeAttribute() => throw null; - public string Expression { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.ComputedAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ComputedAttribute : ServiceStack.AttributeBase - { - public ComputedAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.CustomFieldAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomFieldAttribute : ServiceStack.AttributeBase - { - public CustomFieldAttribute(string sql) => throw null; - public string Sql { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.CustomInsertAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomInsertAttribute : ServiceStack.AttributeBase - { - public CustomInsertAttribute(string sql) => throw null; - public string Sql { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.CustomSelectAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomSelectAttribute : ServiceStack.AttributeBase - { - public CustomSelectAttribute(string sql) => throw null; - public string Sql { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.CustomUpdateAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomUpdateAttribute : ServiceStack.AttributeBase - { - public CustomUpdateAttribute(string sql) => throw null; - public string Sql { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.DecimalLengthAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DecimalLengthAttribute : ServiceStack.AttributeBase - { - public DecimalLengthAttribute(int precision, int scale) => throw null; - public DecimalLengthAttribute(int precision) => throw null; - public DecimalLengthAttribute() => throw null; - public int Precision { get => throw null; set => throw null; } - public int Scale { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.DefaultAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultAttribute : ServiceStack.AttributeBase - { - public DefaultAttribute(string defaultValue) => throw null; - public DefaultAttribute(int intValue) => throw null; - public DefaultAttribute(double doubleValue) => throw null; - public DefaultAttribute(System.Type defaultType, string defaultValue) => throw null; - public System.Type DefaultType { get => throw null; set => throw null; } - public string DefaultValue { get => throw null; set => throw null; } - public double DoubleValue { get => throw null; set => throw null; } - public int IntValue { get => throw null; set => throw null; } - public bool OnUpdate { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.DescriptionAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DescriptionAttribute : ServiceStack.AttributeBase - { - public string Description { get => throw null; set => throw null; } - public DescriptionAttribute(string description) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.EnumAsCharAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EnumAsCharAttribute : ServiceStack.AttributeBase - { - public EnumAsCharAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.EnumAsIntAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EnumAsIntAttribute : ServiceStack.AttributeBase - { - public EnumAsIntAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.ExcludeAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ExcludeAttribute : ServiceStack.AttributeBase - { - public ExcludeAttribute(ServiceStack.Feature feature) => throw null; - public ServiceStack.Feature Feature { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.ExcludeMetadataAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ExcludeMetadataAttribute : ServiceStack.DataAnnotations.ExcludeAttribute - { - public ExcludeMetadataAttribute() : base(default(ServiceStack.Feature)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.ForeignKeyAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ForeignKeyAttribute : ServiceStack.DataAnnotations.ReferencesAttribute - { - public ForeignKeyAttribute(System.Type type) : base(default(System.Type)) => throw null; - public string ForeignKeyName { get => throw null; set => throw null; } - public string OnDelete { get => throw null; set => throw null; } - public string OnUpdate { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.HashKeyAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HashKeyAttribute : ServiceStack.AttributeBase - { - public HashKeyAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.IdAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IdAttribute : ServiceStack.AttributeBase - { - public int Id { get => throw null; } - public IdAttribute(int id) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.IgnoreAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IgnoreAttribute : ServiceStack.AttributeBase - { - public IgnoreAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.IgnoreOnInsertAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IgnoreOnInsertAttribute : ServiceStack.AttributeBase - { - public IgnoreOnInsertAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.IgnoreOnSelectAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IgnoreOnSelectAttribute : ServiceStack.AttributeBase - { - public IgnoreOnSelectAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.IgnoreOnUpdateAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IgnoreOnUpdateAttribute : ServiceStack.AttributeBase - { - public IgnoreOnUpdateAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.IndexAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IndexAttribute : ServiceStack.AttributeBase - { - public bool Clustered { get => throw null; set => throw null; } - public IndexAttribute(bool unique) => throw null; - public IndexAttribute() => throw null; - public string Name { get => throw null; set => throw null; } - public bool NonClustered { get => throw null; set => throw null; } - public bool Unique { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.MetaAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetaAttribute : ServiceStack.AttributeBase - { - public MetaAttribute(string name, string value) => throw null; - public string Name { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.PersistedAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PersistedAttribute : ServiceStack.AttributeBase - { - public PersistedAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlBigIntArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlBigIntArrayAttribute : ServiceStack.DataAnnotations.PgSqlLongArrayAttribute - { - public PgSqlBigIntArrayAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlDecimalArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlDecimalArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlDecimalArrayAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlDoubleArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlDoubleArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlDoubleArrayAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlFloatArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlFloatArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlFloatArrayAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlHStoreAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlHStoreAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlHStoreAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlIntArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlIntArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlIntArrayAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlJsonAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlJsonAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlJsonAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlJsonBAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlJsonBAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlJsonBAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlLongArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlLongArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlLongArrayAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlShortArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlShortArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlShortArrayAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlTextArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlTextArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlTextArrayAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlTimestampArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlTimestampArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlTimestampArrayAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlTimestampAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlTimestampAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlTimestampAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlTimestampTzArrayAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlTimestampTzArrayAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlTimestampTzArrayAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PgSqlTimestampTzAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PgSqlTimestampTzAttribute : ServiceStack.DataAnnotations.CustomFieldAttribute - { - public PgSqlTimestampTzAttribute() : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.PostCreateTableAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PostCreateTableAttribute : ServiceStack.AttributeBase - { - public PostCreateTableAttribute(string sql) => throw null; - public string Sql { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.PostDropTableAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PostDropTableAttribute : ServiceStack.AttributeBase - { - public PostDropTableAttribute(string sql) => throw null; - public string Sql { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.PreCreateTableAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PreCreateTableAttribute : ServiceStack.AttributeBase - { - public PreCreateTableAttribute(string sql) => throw null; - public string Sql { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.PreDropTableAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PreDropTableAttribute : ServiceStack.AttributeBase - { - public PreDropTableAttribute(string sql) => throw null; - public string Sql { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.PrimaryKeyAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PrimaryKeyAttribute : ServiceStack.AttributeBase - { - public PrimaryKeyAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.RangeAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RangeAttribute : ServiceStack.AttributeBase - { - public object Maximum { get => throw null; set => throw null; } - public object Minimum { get => throw null; set => throw null; } - public System.Type OperandType { get => throw null; set => throw null; } - public RangeAttribute(int minimum, int maximum) => throw null; - public RangeAttribute(double minimum, double maximum) => throw null; - public RangeAttribute(System.Type type, string minimum, string maximum) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.RangeKeyAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RangeKeyAttribute : ServiceStack.AttributeBase - { - public RangeKeyAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.ReferenceAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ReferenceAttribute : ServiceStack.AttributeBase - { - public ReferenceAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.ReferencesAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ReferencesAttribute : ServiceStack.AttributeBase - { - public ReferencesAttribute(System.Type type) => throw null; - public System.Type Type { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataAnnotations.RequiredAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequiredAttribute : ServiceStack.AttributeBase - { - public RequiredAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.ReturnOnInsertAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ReturnOnInsertAttribute : ServiceStack.AttributeBase - { - public ReturnOnInsertAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.RowVersionAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RowVersionAttribute : ServiceStack.AttributeBase - { - public RowVersionAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.SchemaAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SchemaAttribute : ServiceStack.AttributeBase - { - public string Name { get => throw null; set => throw null; } - public SchemaAttribute(string name) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.SequenceAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SequenceAttribute : ServiceStack.AttributeBase - { - public string Name { get => throw null; set => throw null; } - public SequenceAttribute(string name) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.SqlServerBucketCountAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerBucketCountAttribute : ServiceStack.AttributeBase - { - public int Count { get => throw null; set => throw null; } - public SqlServerBucketCountAttribute(int count) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.SqlServerCollateAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerCollateAttribute : ServiceStack.AttributeBase - { - public string Collation { get => throw null; set => throw null; } - public SqlServerCollateAttribute(string collation) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.SqlServerDurability` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum SqlServerDurability - { - SchemaAndData, - SchemaOnly, - } - - // Generated from `ServiceStack.DataAnnotations.SqlServerFileTableAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerFileTableAttribute : ServiceStack.AttributeBase - { - public string FileTableCollateFileName { get => throw null; set => throw null; } - public string FileTableDirectory { get => throw null; set => throw null; } - public SqlServerFileTableAttribute(string directory, string collateFileName = default(string)) => throw null; - public SqlServerFileTableAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.SqlServerMemoryOptimizedAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerMemoryOptimizedAttribute : ServiceStack.AttributeBase - { - public ServiceStack.DataAnnotations.SqlServerDurability? Durability { get => throw null; set => throw null; } - public SqlServerMemoryOptimizedAttribute(ServiceStack.DataAnnotations.SqlServerDurability durability) => throw null; - public SqlServerMemoryOptimizedAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.StringLengthAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringLengthAttribute : ServiceStack.AttributeBase - { - public const int MaxText = default; - public int MaximumLength { get => throw null; set => throw null; } - public int MinimumLength { get => throw null; set => throw null; } - public StringLengthAttribute(int minimumLength, int maximumLength) => throw null; - public StringLengthAttribute(int maximumLength) => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.UniqueAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UniqueAttribute : ServiceStack.AttributeBase - { - public UniqueAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.UniqueConstraintAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UniqueConstraintAttribute : ServiceStack.AttributeBase - { - public System.Collections.Generic.List FieldNames { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public UniqueConstraintAttribute(params string[] fieldNames) => throw null; - public UniqueConstraintAttribute() => throw null; - } - - // Generated from `ServiceStack.DataAnnotations.UniqueIdAttribute` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UniqueIdAttribute : ServiceStack.AttributeBase - { - public int Id { get => throw null; } - public UniqueIdAttribute(int id) => throw null; - } - - } - namespace IO - { - // Generated from `ServiceStack.IO.IEndpoint` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IEndpoint - { - string Host { get; } - int Port { get; } - } - - // Generated from `ServiceStack.IO.IHasVirtualFiles` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasVirtualFiles - { - ServiceStack.IO.IVirtualDirectory GetDirectory(); - ServiceStack.IO.IVirtualFile GetFile(); - bool IsDirectory { get; } - bool IsFile { get; } - } - - // Generated from `ServiceStack.IO.IVirtualDirectory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IVirtualDirectory : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, ServiceStack.IO.IVirtualNode - { - System.Collections.Generic.IEnumerable Directories { get; } - System.Collections.Generic.IEnumerable Files { get; } - System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)); - ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath); - ServiceStack.IO.IVirtualDirectory GetDirectory(System.Collections.Generic.Stack virtualPath); - ServiceStack.IO.IVirtualFile GetFile(string virtualPath); - ServiceStack.IO.IVirtualFile GetFile(System.Collections.Generic.Stack virtualPath); - bool IsRoot { get; } - ServiceStack.IO.IVirtualDirectory ParentDirectory { get; } - } - - // Generated from `ServiceStack.IO.IVirtualFile` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IVirtualFile : ServiceStack.IO.IVirtualNode - { - string Extension { get; } - object GetContents(); - string GetFileHash(); - System.Int64 Length { get; } - System.IO.Stream OpenRead(); - System.IO.StreamReader OpenText(); - string ReadAllText(); - void Refresh(); - ServiceStack.IO.IVirtualPathProvider VirtualPathProvider { get; } - } - - // Generated from `ServiceStack.IO.IVirtualFiles` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IVirtualFiles : ServiceStack.IO.IVirtualPathProvider - { - void AppendFile(string filePath, string textContents); - void AppendFile(string filePath, object contents); - void AppendFile(string filePath, System.IO.Stream stream); - void DeleteFile(string filePath); - void DeleteFiles(System.Collections.Generic.IEnumerable filePaths); - void DeleteFolder(string dirPath); - void WriteFile(string filePath, string textContents); - void WriteFile(string filePath, object contents); - void WriteFile(string filePath, System.IO.Stream stream); - void WriteFiles(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)); - void WriteFiles(System.Collections.Generic.Dictionary textFiles); - void WriteFiles(System.Collections.Generic.Dictionary files); - } - - // Generated from `ServiceStack.IO.IVirtualFilesAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IVirtualFilesAsync : ServiceStack.IO.IVirtualPathProvider, ServiceStack.IO.IVirtualFiles - { - System.Threading.Tasks.Task AppendFileAsync(string filePath, string textContents); - System.Threading.Tasks.Task AppendFileAsync(string filePath, System.IO.Stream stream); - System.Threading.Tasks.Task DeleteFileAsync(string filePath); - System.Threading.Tasks.Task DeleteFilesAsync(System.Collections.Generic.IEnumerable filePaths); - System.Threading.Tasks.Task DeleteFolderAsync(string dirPath); - System.Threading.Tasks.Task WriteFileAsync(string filePath, string textContents); - System.Threading.Tasks.Task WriteFileAsync(string filePath, System.IO.Stream stream); - System.Threading.Tasks.Task WriteFilesAsync(System.Collections.Generic.IEnumerable files, System.Func toPath = default(System.Func)); - } - - // Generated from `ServiceStack.IO.IVirtualNode` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IVirtualNode - { - ServiceStack.IO.IVirtualDirectory Directory { get; } - bool IsDirectory { get; } - System.DateTime LastModified { get; } - string Name { get; } - string RealPath { get; } - string VirtualPath { get; } - } - - // Generated from `ServiceStack.IO.IVirtualPathProvider` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IVirtualPathProvider - { - string CombineVirtualPath(string basePath, string relativePath); - bool DirectoryExists(string virtualPath); - bool FileExists(string virtualPath); - System.Collections.Generic.IEnumerable GetAllFiles(); - System.Collections.Generic.IEnumerable GetAllMatchingFiles(string globPattern, int maxDepth = default(int)); - ServiceStack.IO.IVirtualDirectory GetDirectory(string virtualPath); - ServiceStack.IO.IVirtualFile GetFile(string virtualPath); - string GetFileHash(string virtualPath); - string GetFileHash(ServiceStack.IO.IVirtualFile virtualFile); - System.Collections.Generic.IEnumerable GetRootDirectories(); - System.Collections.Generic.IEnumerable GetRootFiles(); - bool IsSharedFile(ServiceStack.IO.IVirtualFile virtualFile); - bool IsViewFile(ServiceStack.IO.IVirtualFile virtualFile); - string RealPathSeparator { get; } - ServiceStack.IO.IVirtualDirectory RootDirectory { get; } - string VirtualPathSeparator { get; } - } - - } - namespace Logging - { - // Generated from `ServiceStack.Logging.GenericLogFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GenericLogFactory : ServiceStack.Logging.ILogFactory - { - public GenericLogFactory(System.Action onMessage) => throw null; - public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; - public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; - public System.Action OnMessage; - } - - // Generated from `ServiceStack.Logging.GenericLogger` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GenericLogger : ServiceStack.Logging.ILog - { - public bool CaptureLogs { get => throw null; set => throw null; } - 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 FatalFormat(string format, params object[] args) => throw null; - public GenericLogger(string type) => throw null; - public GenericLogger(System.Type type) => 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; set => throw null; } - public virtual void Log(object message, System.Exception exception) => throw null; - public virtual void Log(object message) => throw null; - public virtual void LogFormat(object message, params object[] args) => throw null; - public System.Text.StringBuilder Logs; - public virtual void OnLog(string message) => throw null; - public System.Action OnMessage; - 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 `ServiceStack.Logging.ILog` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILog - { - 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 FatalFormat(string format, params object[] args); - void Info(object message, System.Exception exception); - void Info(object message); - void InfoFormat(string format, params object[] args); - bool IsDebugEnabled { get; } - void Warn(object message, System.Exception exception); - void Warn(object message); - void WarnFormat(string format, params object[] args); - } - - // Generated from `ServiceStack.Logging.ILogFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILogFactory - { - ServiceStack.Logging.ILog GetLogger(string typeName); - ServiceStack.Logging.ILog GetLogger(System.Type type); - } - - // Generated from `ServiceStack.Logging.ILogWithContext` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILogWithContext : ServiceStack.Logging.ILogWithException, ServiceStack.Logging.ILog - { - System.IDisposable PushProperty(string key, object value); - } - - // Generated from `ServiceStack.Logging.ILogWithContextExtensions` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ILogWithContextExtensions - { - public static System.IDisposable PushProperty(this ServiceStack.Logging.ILog logger, string key, object value) => throw null; - } - - // Generated from `ServiceStack.Logging.ILogWithException` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILogWithException : ServiceStack.Logging.ILog - { - void Debug(System.Exception exception, string format, params object[] args); - void Error(System.Exception exception, string format, params object[] args); - void Fatal(System.Exception exception, string format, params object[] args); - void Info(System.Exception exception, string format, params object[] args); - void Warn(System.Exception exception, string format, params object[] args); - } - - // Generated from `ServiceStack.Logging.ILogWithExceptionExtensions` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ILogWithExceptionExtensions - { - public static void Debug(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; - public static void Error(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; - public static void Fatal(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; - public static void Info(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; - public static void Warn(this ServiceStack.Logging.ILog logger, System.Exception exception, string format, params object[] args) => throw null; - } - - // Generated from `ServiceStack.Logging.LogManager` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LogManager - { - public static ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; - public static ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; - public static ServiceStack.Logging.ILogFactory LogFactory { get => throw null; set => throw null; } - public LogManager() => throw null; - } - - // Generated from `ServiceStack.Logging.NullDebugLogger` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NullDebugLogger : ServiceStack.Logging.ILog - { - 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 FatalFormat(string format, params object[] args) => 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; set => throw null; } - public NullDebugLogger(string type) => throw null; - public NullDebugLogger(System.Type type) => 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 `ServiceStack.Logging.NullLogFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NullLogFactory : ServiceStack.Logging.ILogFactory - { - public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; - public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; - public NullLogFactory(bool debugEnabled = default(bool)) => throw null; - } - - // Generated from `ServiceStack.Logging.StringBuilderLog` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringBuilderLog : ServiceStack.Logging.ILog - { - 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 FatalFormat(string format, params object[] args) => 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; set => throw null; } - public StringBuilderLog(string type, System.Text.StringBuilder logs) => throw null; - public StringBuilderLog(System.Type type, System.Text.StringBuilder logs) => 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 `ServiceStack.Logging.StringBuilderLogFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringBuilderLogFactory : ServiceStack.Logging.ILogFactory - { - public void ClearLogs() => throw null; - public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; - public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; - public string GetLogs() => throw null; - public StringBuilderLogFactory(bool debugEnabled = default(bool)) => throw null; - } - - // Generated from `ServiceStack.Logging.TestLogFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TestLogFactory : ServiceStack.Logging.ILogFactory - { - public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; - public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; - public TestLogFactory(bool debugEnabled = default(bool)) => throw null; - } - - // Generated from `ServiceStack.Logging.TestLogger` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TestLogger : ServiceStack.Logging.ILog - { - 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 FatalFormat(string format, params object[] args) => throw null; - public static System.Collections.Generic.IList> GetLogs() => 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; set => throw null; } - // Generated from `ServiceStack.Logging.TestLogger+Levels` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum Levels - { - DEBUG, - ERROR, - FATAL, - INFO, - WARN, - } - - - public TestLogger(string type) => throw null; - public TestLogger(System.Type type) => 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; - } - - } - namespace Messaging - { - // Generated from `ServiceStack.Messaging.IMessage` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessage : ServiceStack.Model.IHasId, ServiceStack.IMeta - { - object Body { get; set; } - System.DateTime CreatedDate { get; } - ServiceStack.ResponseStatus Error { get; set; } - int Options { get; set; } - System.Int64 Priority { get; set; } - System.Guid? ReplyId { get; set; } - string ReplyTo { get; set; } - int RetryAttempts { get; set; } - string Tag { get; set; } - } - - // Generated from `ServiceStack.Messaging.IMessage<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessage : ServiceStack.Model.IHasId, ServiceStack.Messaging.IMessage, ServiceStack.IMeta - { - T GetBody(); - } - - // Generated from `ServiceStack.Messaging.IMessageFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessageFactory : System.IDisposable, ServiceStack.Messaging.IMessageQueueClientFactory - { - ServiceStack.Messaging.IMessageProducer CreateMessageProducer(); - } - - // Generated from `ServiceStack.Messaging.IMessageHandler` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessageHandler - { - ServiceStack.Messaging.IMessageHandlerStats GetStats(); - System.Type MessageType { get; } - ServiceStack.Messaging.IMessageQueueClient MqClient { get; } - void Process(ServiceStack.Messaging.IMessageQueueClient mqClient); - void ProcessMessage(ServiceStack.Messaging.IMessageQueueClient mqClient, object mqResponse); - int ProcessQueue(ServiceStack.Messaging.IMessageQueueClient mqClient, string queueName, System.Func doNext = default(System.Func)); - } - - // Generated from `ServiceStack.Messaging.IMessageHandlerStats` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessageHandlerStats - { - void Add(ServiceStack.Messaging.IMessageHandlerStats stats); - System.DateTime? LastMessageProcessed { get; } - string Name { get; } - int TotalMessagesFailed { get; } - int TotalMessagesProcessed { get; } - int TotalNormalMessagesReceived { get; } - int TotalPriorityMessagesReceived { get; } - int TotalRetries { get; } - } - - // Generated from `ServiceStack.Messaging.IMessageProducer` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessageProducer : System.IDisposable - { - void Publish(T messageBody); - void Publish(ServiceStack.Messaging.IMessage message); - } - - // Generated from `ServiceStack.Messaging.IMessageQueueClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessageQueueClient : System.IDisposable, ServiceStack.Messaging.IMessageProducer - { - void Ack(ServiceStack.Messaging.IMessage message); - ServiceStack.Messaging.IMessage CreateMessage(object mqResponse); - ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeOut = default(System.TimeSpan?)); - ServiceStack.Messaging.IMessage GetAsync(string queueName); - string GetTempQueueName(); - void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)); - void Notify(string queueName, ServiceStack.Messaging.IMessage message); - void Publish(string queueName, ServiceStack.Messaging.IMessage message); - } - - // Generated from `ServiceStack.Messaging.IMessageQueueClientFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessageQueueClientFactory : System.IDisposable - { - ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient(); - } - - // Generated from `ServiceStack.Messaging.IMessageService` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessageService : System.IDisposable - { - ServiceStack.Messaging.IMessageHandlerStats GetStats(); - string GetStatsDescription(); - string GetStatus(); - ServiceStack.Messaging.IMessageFactory MessageFactory { get; } - void RegisterHandler(System.Func, object> processMessageFn, int noOfThreads); - void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx, int noOfThreads); - void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx); - void RegisterHandler(System.Func, object> processMessageFn); - System.Collections.Generic.List RegisteredTypes { get; } - void Start(); - void Stop(); - } - - // Generated from `ServiceStack.Messaging.Message` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Message : ServiceStack.Model.IHasId, ServiceStack.Messaging.IMessage, ServiceStack.IMeta - { - public object Body { get => throw null; set => throw null; } - public System.DateTime CreatedDate { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus Error { get => throw null; set => throw null; } - public System.Guid Id { get => throw null; set => throw null; } - public Message() => throw null; - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public int Options { get => throw null; set => throw null; } - public System.Int64 Priority { get => throw null; set => throw null; } - public System.Guid? ReplyId { get => throw null; set => throw null; } - public string ReplyTo { get => throw null; set => throw null; } - public int RetryAttempts { get => throw null; set => throw null; } - public string Tag { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Messaging.Message<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Message : ServiceStack.Messaging.Message, ServiceStack.Model.IHasId, ServiceStack.Messaging.IMessage, ServiceStack.Messaging.IMessage, ServiceStack.IMeta - { - public static ServiceStack.Messaging.IMessage Create(object oBody) => throw null; - public T GetBody() => throw null; - public Message(T body) => throw null; - public Message() => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Messaging.MessageFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MessageFactory - { - public static ServiceStack.Messaging.IMessage Create(object response) => throw null; - } - - // Generated from `ServiceStack.Messaging.MessageHandlerStats` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MessageHandlerStats : ServiceStack.Messaging.IMessageHandlerStats - { - public virtual void Add(ServiceStack.Messaging.IMessageHandlerStats stats) => throw null; - public System.DateTime? LastMessageProcessed { get => throw null; set => throw null; } - public MessageHandlerStats(string name, int totalMessagesProcessed, int totalMessagesFailed, int totalRetries, int totalNormalMessagesReceived, int totalPriorityMessagesReceived, System.DateTime? lastMessageProcessed) => throw null; - public MessageHandlerStats(string name) => throw null; - public string Name { get => throw null; set => throw null; } - public override string ToString() => throw null; - public int TotalMessagesFailed { get => throw null; set => throw null; } - public int TotalMessagesProcessed { get => throw null; set => throw null; } - public int TotalNormalMessagesReceived { get => throw null; set => throw null; } - public int TotalPriorityMessagesReceived { get => throw null; set => throw null; } - public int TotalRetries { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Messaging.MessageHandlerStatsExtensions` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MessageHandlerStatsExtensions - { - public static ServiceStack.Messaging.IMessageHandlerStats CombineStats(this System.Collections.Generic.IEnumerable stats) => throw null; - } - - // Generated from `ServiceStack.Messaging.MessageOption` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum MessageOption - { - All, - None, - NotifyOneWay, - } - - // Generated from `ServiceStack.Messaging.MessagingException` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MessagingException : System.Exception, ServiceStack.Model.IResponseStatusConvertible, ServiceStack.IHasResponseStatus - { - public MessagingException(string message, System.Exception innerException) => throw null; - public MessagingException(string message) => throw null; - public MessagingException(ServiceStack.ResponseStatus responseStatus, object responseDto, System.Exception innerException = default(System.Exception)) => throw null; - public MessagingException(ServiceStack.ResponseStatus responseStatus, System.Exception innerException = default(System.Exception)) => throw null; - public MessagingException() => throw null; - public object ResponseDto { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ToResponseStatus() => throw null; - } - - // Generated from `ServiceStack.Messaging.QueueNames` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class QueueNames - { - public string Dlq { get => throw null; } - public static string Exchange; - public static string ExchangeDlq; - public static string ExchangeTopic; - public static string GetTempQueueName() => throw null; - public string In { get => throw null; } - public static bool IsTempQueue(string queueName) => throw null; - public static string MqPrefix; - public string Out { get => throw null; } - public string Priority { get => throw null; } - public QueueNames(System.Type messageType) => throw null; - public static string QueuePrefix; - public static string ResolveQueueName(string typeName, string queueSuffix) => throw null; - public static System.Func ResolveQueueNameFn; - public static void SetQueuePrefix(string prefix) => throw null; - public static string TempMqPrefix; - public static string TopicIn; - public static string TopicOut; - } - - // Generated from `ServiceStack.Messaging.QueueNames<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class QueueNames - { - public static string[] AllQueueNames { get => throw null; } - public static string Dlq { get => throw null; set => throw null; } - public static string In { get => throw null; set => throw null; } - public static string Out { get => throw null; set => throw null; } - public static string Priority { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Messaging.UnRetryableMessagingException` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UnRetryableMessagingException : ServiceStack.Messaging.MessagingException - { - public UnRetryableMessagingException(string message, System.Exception innerException) => throw null; - public UnRetryableMessagingException(string message) => throw null; - public UnRetryableMessagingException() => throw null; - } - - // Generated from `ServiceStack.Messaging.WorkerStatus` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class WorkerStatus - { - public const int Disposed = default; - public const int Started = default; - public const int Starting = default; - public const int Stopped = default; - public const int Stopping = default; - public static string ToString(int workerStatus) => throw null; - } - - } - namespace Model - { - // Generated from `ServiceStack.Model.ICacheByDateModified` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICacheByDateModified - { - System.DateTime? LastModified { get; } - } - - // Generated from `ServiceStack.Model.ICacheByEtag` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICacheByEtag - { - string Etag { get; } - } - - // Generated from `ServiceStack.Model.IHasAction` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasAction - { - string Action { get; } - } - - // Generated from `ServiceStack.Model.IHasGuidId` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasGuidId : ServiceStack.Model.IHasId - { - } - - // Generated from `ServiceStack.Model.IHasId<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasId - { - T Id { get; } - } - - // Generated from `ServiceStack.Model.IHasIntId` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasIntId : ServiceStack.Model.IHasId - { - } - - // Generated from `ServiceStack.Model.IHasLongId` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasLongId : ServiceStack.Model.IHasId - { - } - - // Generated from `ServiceStack.Model.IHasNamed<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasNamed - { - T this[string listId] { get; set; } - } - - // Generated from `ServiceStack.Model.IHasNamedCollection<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasNamedCollection : ServiceStack.Model.IHasNamed> - { - } - - // Generated from `ServiceStack.Model.IHasNamedList<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasNamedList : ServiceStack.Model.IHasNamed> - { - } - - // Generated from `ServiceStack.Model.IHasStringId` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasStringId : ServiceStack.Model.IHasId - { - } - - // Generated from `ServiceStack.Model.IResponseStatusConvertible` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IResponseStatusConvertible - { - ServiceStack.ResponseStatus ToResponseStatus(); - } - - } - namespace Redis - { - // Generated from `ServiceStack.Redis.IRedisClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisClient : System.IDisposable, ServiceStack.Data.IEntityStore, ServiceStack.Caching.IRemoveByPattern, ServiceStack.Caching.ICacheClientExtended, ServiceStack.Caching.ICacheClient - { - System.IDisposable AcquireLock(string key, System.TimeSpan timeOut); - System.IDisposable AcquireLock(string key); - System.Int64 AddGeoMember(string key, double longitude, double latitude, string member); - System.Int64 AddGeoMembers(string key, params ServiceStack.Redis.RedisGeo[] geoPoints); - void AddItemToList(string listId, string value); - void AddItemToSet(string setId, string item); - bool AddItemToSortedSet(string setId, string value, double score); - bool AddItemToSortedSet(string setId, string value); - void AddRangeToList(string listId, System.Collections.Generic.List values); - void AddRangeToSet(string setId, System.Collections.Generic.List items); - bool AddRangeToSortedSet(string setId, System.Collections.Generic.List values, double score); - bool AddRangeToSortedSet(string setId, System.Collections.Generic.List values, System.Int64 score); - bool AddToHyperLog(string key, params string[] elements); - System.Int64 AppendToValue(string key, string value); - ServiceStack.Redis.Generic.IRedisTypedClient As(); - string BlockingDequeueItemFromList(string listId, System.TimeSpan? timeOut); - ServiceStack.Redis.ItemRef BlockingDequeueItemFromLists(string[] listIds, System.TimeSpan? timeOut); - string BlockingPopAndPushItemBetweenLists(string fromListId, string toListId, System.TimeSpan? timeOut); - string BlockingPopItemFromList(string listId, System.TimeSpan? timeOut); - ServiceStack.Redis.ItemRef BlockingPopItemFromLists(string[] listIds, System.TimeSpan? timeOut); - string BlockingRemoveStartFromList(string listId, System.TimeSpan? timeOut); - ServiceStack.Redis.ItemRef BlockingRemoveStartFromLists(string[] listIds, System.TimeSpan? timeOut); - double CalculateDistanceBetweenGeoMembers(string key, string fromMember, string toMember, string unit = default(string)); - string CalculateSha1(string luaBody); - int ConnectTimeout { get; set; } - bool ContainsKey(string key); - System.Int64 CountHyperLog(string key); - ServiceStack.Redis.Pipeline.IRedisPipeline CreatePipeline(); - ServiceStack.Redis.IRedisSubscription CreateSubscription(); - ServiceStack.Redis.IRedisTransaction CreateTransaction(); - ServiceStack.Redis.RedisText Custom(params object[] cmdWithArgs); - System.Int64 Db { get; set; } - System.Int64 DbSize { get; } - System.Int64 DecrementValue(string key); - System.Int64 DecrementValueBy(string key, int count); - string DequeueItemFromList(string listId); - string Echo(string text); - void EnqueueItemOnList(string listId, string value); - T ExecCachedLua(string scriptBody, System.Func scriptSha1); - ServiceStack.Redis.RedisText ExecLua(string luaBody, string[] keys, string[] args); - ServiceStack.Redis.RedisText ExecLua(string body, params string[] args); - System.Int64 ExecLuaAsInt(string luaBody, string[] keys, string[] args); - System.Int64 ExecLuaAsInt(string luaBody, params string[] args); - System.Collections.Generic.List ExecLuaAsList(string luaBody, string[] keys, string[] args); - System.Collections.Generic.List ExecLuaAsList(string luaBody, params string[] args); - string ExecLuaAsString(string luaBody, string[] keys, string[] args); - string ExecLuaAsString(string luaBody, params string[] args); - ServiceStack.Redis.RedisText ExecLuaSha(string sha1, string[] keys, string[] args); - ServiceStack.Redis.RedisText ExecLuaSha(string sha1, params string[] args); - System.Int64 ExecLuaShaAsInt(string sha1, string[] keys, string[] args); - System.Int64 ExecLuaShaAsInt(string sha1, params string[] args); - System.Collections.Generic.List ExecLuaShaAsList(string sha1, string[] keys, string[] args); - System.Collections.Generic.List ExecLuaShaAsList(string sha1, params string[] args); - string ExecLuaShaAsString(string sha1, string[] keys, string[] args); - string ExecLuaShaAsString(string sha1, params string[] args); - bool ExpireEntryAt(string key, System.DateTime expireAt); - bool ExpireEntryIn(string key, System.TimeSpan expireIn); - string[] FindGeoMembersInRadius(string key, string member, double radius, string unit); - string[] FindGeoMembersInRadius(string key, double longitude, double latitude, double radius, string unit); - System.Collections.Generic.List FindGeoResultsInRadius(string key, string member, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?)); - System.Collections.Generic.List FindGeoResultsInRadius(string key, double longitude, double latitude, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?)); - void FlushDb(); - System.Collections.Generic.Dictionary GetAllEntriesFromHash(string hashId); - System.Collections.Generic.List GetAllItemsFromList(string listId); - System.Collections.Generic.HashSet GetAllItemsFromSet(string setId); - System.Collections.Generic.List GetAllItemsFromSortedSet(string setId); - System.Collections.Generic.List GetAllItemsFromSortedSetDesc(string setId); - System.Collections.Generic.List GetAllKeys(); - System.Collections.Generic.IDictionary GetAllWithScoresFromSortedSet(string setId); - string GetAndSetValue(string key, string value); - string GetClient(); - System.Collections.Generic.List> GetClientsInfo(); - string GetConfig(string item); - System.Collections.Generic.HashSet GetDifferencesFromSet(string fromSetId, params string[] withSetIds); - ServiceStack.Redis.RedisKeyType GetEntryType(string key); - T GetFromHash(object id); - System.Collections.Generic.List GetGeoCoordinates(string key, params string[] members); - string[] GetGeohashes(string key, params string[] members); - System.Int64 GetHashCount(string hashId); - System.Collections.Generic.List GetHashKeys(string hashId); - System.Collections.Generic.List GetHashValues(string hashId); - System.Collections.Generic.HashSet GetIntersectFromSets(params string[] setIds); - string GetItemFromList(string listId, int listIndex); - System.Int64 GetItemIndexInSortedSet(string setId, string value); - System.Int64 GetItemIndexInSortedSetDesc(string setId, string value); - double GetItemScoreInSortedSet(string setId, string value); - System.Int64 GetListCount(string listId); - string GetRandomItemFromSet(string setId); - string GetRandomKey(); - System.Collections.Generic.List GetRangeFromList(string listId, int startingFrom, int endingAt); - System.Collections.Generic.List GetRangeFromSortedList(string listId, int startingFrom, int endingAt); - System.Collections.Generic.List GetRangeFromSortedSet(string setId, int fromRank, int toRank); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, double fromScore, double toScore); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, double fromScore, double toScore); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore); - System.Collections.Generic.List GetRangeFromSortedSetDesc(string setId, int fromRank, int toRank); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSet(string setId, int fromRank, int toRank); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, double fromScore, double toScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, double fromScore, double toScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetDesc(string setId, int fromRank, int toRank); - ServiceStack.Redis.RedisServerRole GetServerRole(); - ServiceStack.Redis.RedisText GetServerRoleInfo(); - System.DateTime GetServerTime(); - System.Int64 GetSetCount(string setId); - System.Collections.Generic.List GetSortedEntryValues(string key, int startingFrom, int endingAt); - System.Collections.Generic.List GetSortedItemsFromList(string listId, ServiceStack.Redis.SortOptions sortOptions); - System.Int64 GetSortedSetCount(string setId, string fromStringScore, string toStringScore); - System.Int64 GetSortedSetCount(string setId, double fromScore, double toScore); - System.Int64 GetSortedSetCount(string setId, System.Int64 fromScore, System.Int64 toScore); - System.Int64 GetSortedSetCount(string setId); - System.Int64 GetStringCount(string key); - System.Collections.Generic.HashSet GetUnionFromSets(params string[] setIds); - string GetValue(string key); - string GetValueFromHash(string hashId, string key); - System.Collections.Generic.List GetValues(System.Collections.Generic.List keys); - System.Collections.Generic.List GetValues(System.Collections.Generic.List keys); - System.Collections.Generic.List GetValuesFromHash(string hashId, params string[] keys); - System.Collections.Generic.Dictionary GetValuesMap(System.Collections.Generic.List keys); - System.Collections.Generic.Dictionary GetValuesMap(System.Collections.Generic.List keys); - bool HadExceptions { get; } - bool HasLuaScript(string sha1Ref); - bool HashContainsEntry(string hashId, string key); - ServiceStack.Model.IHasNamed Hashes { get; set; } - string Host { get; } - double IncrementItemInSortedSet(string setId, string value, double incrementBy); - double IncrementItemInSortedSet(string setId, string value, System.Int64 incrementBy); - System.Int64 IncrementValue(string key); - double IncrementValueBy(string key, double count); - System.Int64 IncrementValueBy(string key, int count); - System.Int64 IncrementValueBy(string key, System.Int64 count); - double IncrementValueInHash(string hashId, string key, double incrementBy); - System.Int64 IncrementValueInHash(string hashId, string key, int incrementBy); - System.Collections.Generic.Dictionary Info { get; } - string this[string key] { get; set; } - void KillClient(string address); - System.Int64 KillClients(string fromAddress = default(string), string withId = default(string), ServiceStack.Redis.RedisClientType? ofType = default(ServiceStack.Redis.RedisClientType?), bool? skipMe = default(bool?)); - void KillRunningLuaScript(); - System.DateTime LastSave { get; } - ServiceStack.Model.IHasNamed Lists { get; set; } - string LoadLuaScript(string body); - void MergeHyperLogs(string toKey, params string[] fromKeys); - void MoveBetweenSets(string fromSetId, string toSetId, string item); - string Password { get; set; } - void PauseAllClients(System.TimeSpan duration); - bool Ping(); - string PopAndPushItemBetweenLists(string fromListId, string toListId); - string PopItemFromList(string listId); - string PopItemFromSet(string setId); - string PopItemWithHighestScoreFromSortedSet(string setId); - string PopItemWithLowestScoreFromSortedSet(string setId); - System.Collections.Generic.List PopItemsFromSet(string setId, int count); - int Port { get; } - void PrependItemToList(string listId, string value); - void PrependRangeToList(string listId, System.Collections.Generic.List values); - System.Int64 PublishMessage(string toChannel, string message); - void PushItemToList(string listId, string value); - void RemoveAllFromList(string listId); - void RemoveAllLuaScripts(); - string RemoveEndFromList(string listId); - bool RemoveEntry(params string[] args); - bool RemoveEntryFromHash(string hashId, string key); - System.Int64 RemoveItemFromList(string listId, string value, int noOfMatches); - System.Int64 RemoveItemFromList(string listId, string value); - void RemoveItemFromSet(string setId, string item); - bool RemoveItemFromSortedSet(string setId, string value); - System.Int64 RemoveItemsFromSortedSet(string setId, System.Collections.Generic.List values); - System.Int64 RemoveRangeFromSortedSet(string setId, int minRank, int maxRank); - System.Int64 RemoveRangeFromSortedSetByScore(string setId, double fromScore, double toScore); - System.Int64 RemoveRangeFromSortedSetByScore(string setId, System.Int64 fromScore, System.Int64 toScore); - System.Int64 RemoveRangeFromSortedSetBySearch(string setId, string start = default(string), string end = default(string)); - string RemoveStartFromList(string listId); - void RenameKey(string fromName, string toName); - void ResetInfoStats(); - int RetryCount { get; set; } - int RetryTimeout { get; set; } - void RewriteAppendOnlyFileAsync(); - void Save(); - void SaveAsync(); - void SaveConfig(); - System.Collections.Generic.IEnumerable> ScanAllHashEntries(string hashId, string pattern = default(string), int pageSize = default(int)); - System.Collections.Generic.IEnumerable ScanAllKeys(string pattern = default(string), int pageSize = default(int)); - System.Collections.Generic.IEnumerable ScanAllSetItems(string setId, string pattern = default(string), int pageSize = default(int)); - System.Collections.Generic.IEnumerable> ScanAllSortedSetItems(string setId, string pattern = default(string), int pageSize = default(int)); - System.Collections.Generic.List SearchKeys(string pattern); - System.Collections.Generic.List SearchSortedSet(string setId, string start = default(string), string end = default(string), int? skip = default(int?), int? take = default(int?)); - System.Int64 SearchSortedSetCount(string setId, string start = default(string), string end = default(string)); - int SendTimeout { get; set; } - void SetAll(System.Collections.Generic.IEnumerable keys, System.Collections.Generic.IEnumerable values); - void SetAll(System.Collections.Generic.Dictionary map); - void SetClient(string name); - void SetConfig(string item, string value); - bool SetContainsItem(string setId, string item); - bool SetEntryInHash(string hashId, string key, string value); - bool SetEntryInHashIfNotExists(string hashId, string key, string value); - void SetItemInList(string listId, int listIndex, string value); - void SetRangeInHash(string hashId, System.Collections.Generic.IEnumerable> keyValuePairs); - void SetValue(string key, string value, System.TimeSpan expireIn); - void SetValue(string key, string value); - bool SetValueIfExists(string key, string value, System.TimeSpan expireIn); - bool SetValueIfExists(string key, string value); - bool SetValueIfNotExists(string key, string value, System.TimeSpan expireIn); - bool SetValueIfNotExists(string key, string value); - void SetValues(System.Collections.Generic.Dictionary map); - ServiceStack.Model.IHasNamed Sets { get; set; } - void Shutdown(); - void ShutdownNoSave(); - bool SortedSetContainsItem(string setId, string value); - ServiceStack.Model.IHasNamed SortedSets { get; set; } - void StoreAsHash(T entity); - void StoreDifferencesFromSet(string intoSetId, string fromSetId, params string[] withSetIds); - void StoreIntersectFromSets(string intoSetId, params string[] setIds); - System.Int64 StoreIntersectFromSortedSets(string intoSetId, string[] setIds, string[] args); - System.Int64 StoreIntersectFromSortedSets(string intoSetId, params string[] setIds); - object StoreObject(object entity); - void StoreUnionFromSets(string intoSetId, params string[] setIds); - System.Int64 StoreUnionFromSortedSets(string intoSetId, string[] setIds, string[] args); - System.Int64 StoreUnionFromSortedSets(string intoSetId, params string[] setIds); - void TrimList(string listId, int keepStartingFrom, int keepEndingAt); - string Type(string key); - void UnWatch(); - string UrnKey(object id); - string UrnKey(T value); - string UrnKey(System.Type type, object id); - void Watch(params string[] keys); - System.Collections.Generic.Dictionary WhichLuaScriptsExists(params string[] sha1Refs); - void WriteAll(System.Collections.Generic.IEnumerable entities); - } - - // Generated from `ServiceStack.Redis.IRedisClientAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisClientAsync : System.IAsyncDisposable, ServiceStack.Data.IEntityStoreAsync, ServiceStack.Caching.IRemoveByPatternAsync, ServiceStack.Caching.ICacheClientAsync - { - System.Threading.Tasks.ValueTask AcquireLockAsync(string key, System.TimeSpan? timeOut = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddGeoMemberAsync(string key, double longitude, double latitude, string member, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddGeoMembersAsync(string key, params ServiceStack.Redis.RedisGeo[] geoPoints); - System.Threading.Tasks.ValueTask AddGeoMembersAsync(string key, ServiceStack.Redis.RedisGeo[] geoPoints, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddItemToListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddItemToSetAsync(string setId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddItemToSortedSetAsync(string setId, string value, double score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddItemToSortedSetAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddRangeToListAsync(string listId, System.Collections.Generic.List values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddRangeToSetAsync(string setId, System.Collections.Generic.List items, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddRangeToSortedSetAsync(string setId, System.Collections.Generic.List values, double score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddRangeToSortedSetAsync(string setId, System.Collections.Generic.List values, System.Int64 score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddToHyperLogAsync(string key, string[] elements, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddToHyperLogAsync(string key, params string[] elements); - System.Threading.Tasks.ValueTask AppendToValueAsync(string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Redis.Generic.IRedisTypedClientAsync As(); - System.Threading.Tasks.ValueTask BackgroundRewriteAppendOnlyFileAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BackgroundSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingDequeueItemFromListAsync(string listId, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingDequeueItemFromListsAsync(string[] listIds, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingPopAndPushItemBetweenListsAsync(string fromListId, string toListId, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingPopItemFromListAsync(string listId, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingPopItemFromListsAsync(string[] listIds, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingRemoveStartFromListAsync(string listId, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingRemoveStartFromListsAsync(string[] listIds, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CalculateDistanceBetweenGeoMembersAsync(string key, string fromMember, string toMember, string unit = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CalculateSha1Async(string luaBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - int ConnectTimeout { get; set; } - System.Threading.Tasks.ValueTask ContainsKeyAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CountHyperLogAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Redis.Pipeline.IRedisPipelineAsync CreatePipeline(); - System.Threading.Tasks.ValueTask CreateSubscriptionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CreateTransactionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CustomAsync(params object[] cmdWithArgs); - System.Threading.Tasks.ValueTask CustomAsync(object[] cmdWithArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Int64 Db { get; } - System.Threading.Tasks.ValueTask DbSizeAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DecrementValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DecrementValueByAsync(string key, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DequeueItemFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EchoAsync(string text, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EnqueueItemOnListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecCachedLuaAsync(string scriptBody, System.Func> scriptSha1, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaAsIntAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaAsIntAsync(string luaBody, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaAsIntAsync(string luaBody, params string[] args); - System.Threading.Tasks.ValueTask> ExecLuaAsListAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> ExecLuaAsListAsync(string luaBody, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> ExecLuaAsListAsync(string luaBody, params string[] args); - System.Threading.Tasks.ValueTask ExecLuaAsStringAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaAsStringAsync(string luaBody, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaAsStringAsync(string luaBody, params string[] args); - System.Threading.Tasks.ValueTask ExecLuaAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaAsync(string body, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaAsync(string body, params string[] args); - System.Threading.Tasks.ValueTask ExecLuaShaAsIntAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaShaAsIntAsync(string sha1, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaShaAsIntAsync(string sha1, params string[] args); - System.Threading.Tasks.ValueTask> ExecLuaShaAsListAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> ExecLuaShaAsListAsync(string sha1, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> ExecLuaShaAsListAsync(string sha1, params string[] args); - System.Threading.Tasks.ValueTask ExecLuaShaAsStringAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaShaAsStringAsync(string sha1, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaShaAsStringAsync(string sha1, params string[] args); - System.Threading.Tasks.ValueTask ExecLuaShaAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaShaAsync(string sha1, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExecLuaShaAsync(string sha1, params string[] args); - System.Threading.Tasks.ValueTask ExpireEntryAtAsync(string key, System.DateTime expireAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExpireEntryInAsync(string key, System.TimeSpan expireIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask FindGeoMembersInRadiusAsync(string key, string member, double radius, string unit, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask FindGeoMembersInRadiusAsync(string key, double longitude, double latitude, double radius, string unit, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> FindGeoResultsInRadiusAsync(string key, string member, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> FindGeoResultsInRadiusAsync(string key, double longitude, double latitude, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask FlushDbAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ForegroundSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllEntriesFromHashAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllItemsFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllItemsFromSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllItemsFromSortedSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllItemsFromSortedSetDescAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllKeysAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllWithScoresFromSortedSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetAndSetValueAsync(string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask>> GetClientsInfoAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetConfigAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetDifferencesFromSetAsync(string fromSetId, string[] withSetIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetDifferencesFromSetAsync(string fromSetId, params string[] withSetIds); - System.Threading.Tasks.ValueTask GetEntryTypeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetFromHashAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetGeoCoordinatesAsync(string key, string[] members, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetGeoCoordinatesAsync(string key, params string[] members); - System.Threading.Tasks.ValueTask GetGeohashesAsync(string key, string[] members, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetGeohashesAsync(string key, params string[] members); - System.Threading.Tasks.ValueTask GetHashCountAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetHashKeysAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetHashValuesAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetIntersectFromSetsAsync(string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetIntersectFromSetsAsync(params string[] setIds); - System.Threading.Tasks.ValueTask GetItemFromListAsync(string listId, int listIndex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemIndexInSortedSetAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemIndexInSortedSetDescAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemScoreInSortedSetAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetListCountAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetRandomItemFromSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetRandomKeyAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromListAsync(string listId, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedListAsync(string listId, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetDescAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetDescAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetServerRoleAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetServerRoleInfoAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetServerTimeAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetSetCountAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetSlowlogAsync(int? numberOfRecords = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetSortedEntryValuesAsync(string key, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetSortedItemsFromListAsync(string listId, ServiceStack.Redis.SortOptions sortOptions, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetSortedSetCountAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetSortedSetCountAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetSortedSetCountAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetSortedSetCountAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetStringCountAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetUnionFromSetsAsync(string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetUnionFromSetsAsync(params string[] setIds); - System.Threading.Tasks.ValueTask GetValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetValueFromHashAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetValuesAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetValuesAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetValuesFromHashAsync(string hashId, string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetValuesFromHashAsync(string hashId, params string[] keys); - System.Threading.Tasks.ValueTask> GetValuesMapAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetValuesMapAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - bool HadExceptions { get; } - System.Threading.Tasks.ValueTask HasLuaScriptAsync(string sha1Ref, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HashContainsEntryAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Model.IHasNamed Hashes { get; } - string Host { get; } - System.Threading.Tasks.ValueTask IncrementItemInSortedSetAsync(string setId, string value, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementItemInSortedSetAsync(string setId, string value, System.Int64 incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementValueByAsync(string key, double count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementValueByAsync(string key, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementValueByAsync(string key, System.Int64 count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementValueInHashAsync(string hashId, string key, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementValueInHashAsync(string hashId, string key, int incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> InfoAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask KillClientAsync(string address, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask KillClientsAsync(string fromAddress = default(string), string withId = default(string), ServiceStack.Redis.RedisClientType? ofType = default(ServiceStack.Redis.RedisClientType?), bool? skipMe = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask KillRunningLuaScriptAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LastSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Model.IHasNamed Lists { get; } - System.Threading.Tasks.ValueTask LoadLuaScriptAsync(string body, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MergeHyperLogsAsync(string toKey, string[] fromKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MergeHyperLogsAsync(string toKey, params string[] fromKeys); - System.Threading.Tasks.ValueTask MoveBetweenSetsAsync(string fromSetId, string toSetId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string Password { get; set; } - System.Threading.Tasks.ValueTask PauseAllClientsAsync(System.TimeSpan duration, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PingAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopAndPushItemBetweenListsAsync(string fromListId, string toListId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemFromSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemWithHighestScoreFromSortedSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemWithLowestScoreFromSortedSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> PopItemsFromSetAsync(string setId, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - int Port { get; } - System.Threading.Tasks.ValueTask PrependItemToListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PrependRangeToListAsync(string listId, System.Collections.Generic.List values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PublishMessageAsync(string toChannel, string message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PushItemToListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAllFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAllLuaScriptsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEndFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEntryAsync(string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEntryAsync(params string[] args); - System.Threading.Tasks.ValueTask RemoveEntryFromHashAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveItemFromListAsync(string listId, string value, int noOfMatches, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveItemFromListAsync(string listId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveItemFromSetAsync(string setId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveItemFromSortedSetAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveItemsFromSortedSetAsync(string setId, System.Collections.Generic.List values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetAsync(string setId, int minRank, int maxRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetByScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetByScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetBySearchAsync(string setId, string start = default(string), string end = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveStartFromListAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RenameKeyAsync(string fromName, string toName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ResetInfoStatsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - int RetryCount { get; set; } - int RetryTimeout { get; set; } - System.Threading.Tasks.ValueTask SaveConfigAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Collections.Generic.IAsyncEnumerable> ScanAllHashEntriesAsync(string hashId, string pattern = default(string), int pageSize = default(int), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Collections.Generic.IAsyncEnumerable ScanAllKeysAsync(string pattern = default(string), int pageSize = default(int), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Collections.Generic.IAsyncEnumerable ScanAllSetItemsAsync(string setId, string pattern = default(string), int pageSize = default(int), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Collections.Generic.IAsyncEnumerable> ScanAllSortedSetItemsAsync(string setId, string pattern = default(string), int pageSize = default(int), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> SearchKeysAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> SearchSortedSetAsync(string setId, string start = default(string), string end = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SearchSortedSetCountAsync(string setId, string start = default(string), string end = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SelectAsync(System.Int64 db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - int SendTimeout { get; set; } - System.Threading.Tasks.ValueTask SetAllAsync(System.Collections.Generic.IEnumerable keys, System.Collections.Generic.IEnumerable values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetAllAsync(System.Collections.Generic.IDictionary map, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetClientAsync(string name, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetConfigAsync(string item, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetContainsItemAsync(string setId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetEntryInHashAsync(string hashId, string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetEntryInHashIfNotExistsAsync(string hashId, string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetItemInListAsync(string listId, int listIndex, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetRangeInHashAsync(string hashId, System.Collections.Generic.IEnumerable> keyValuePairs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueAsync(string key, string value, System.TimeSpan expireIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueAsync(string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueIfExistsAsync(string key, string value, System.TimeSpan? expireIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueIfNotExistsAsync(string key, string value, System.TimeSpan? expireIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValuesAsync(System.Collections.Generic.IDictionary map, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Model.IHasNamed Sets { get; } - System.Threading.Tasks.ValueTask ShutdownAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ShutdownNoSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SlowlogResetAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SortedSetContainsItemAsync(string setId, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Model.IHasNamed SortedSets { get; } - System.Threading.Tasks.ValueTask StoreAsHashAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreDifferencesFromSetAsync(string intoSetId, string fromSetId, string[] withSetIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreDifferencesFromSetAsync(string intoSetId, string fromSetId, params string[] withSetIds); - System.Threading.Tasks.ValueTask StoreIntersectFromSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreIntersectFromSetsAsync(string intoSetId, params string[] setIds); - System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(string intoSetId, string[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(string intoSetId, params string[] setIds); - System.Threading.Tasks.ValueTask StoreObjectAsync(object entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreUnionFromSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreUnionFromSetsAsync(string intoSetId, params string[] setIds); - System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(string intoSetId, string[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(string intoSetId, params string[] setIds); - System.Threading.Tasks.ValueTask TrimListAsync(string listId, int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask TypeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask UnWatchAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string UrnKey(object id); - string UrnKey(T value); - string UrnKey(System.Type type, object id); - System.Threading.Tasks.ValueTask WatchAsync(string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask WatchAsync(params string[] keys); - System.Threading.Tasks.ValueTask> WhichLuaScriptsExistsAsync(string[] sha1Refs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> WhichLuaScriptsExistsAsync(params string[] sha1Refs); - System.Threading.Tasks.ValueTask WriteAllAsync(System.Collections.Generic.IEnumerable entities, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.IRedisClientCacheManager` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisClientCacheManager : System.IDisposable - { - ServiceStack.Caching.ICacheClient GetCacheClient(); - ServiceStack.Redis.IRedisClient GetClient(); - ServiceStack.Caching.ICacheClient GetReadOnlyCacheClient(); - ServiceStack.Redis.IRedisClient GetReadOnlyClient(); - } - - // Generated from `ServiceStack.Redis.IRedisClientsManager` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisClientsManager : System.IDisposable - { - ServiceStack.Caching.ICacheClient GetCacheClient(); - ServiceStack.Redis.IRedisClient GetClient(); - ServiceStack.Caching.ICacheClient GetReadOnlyCacheClient(); - ServiceStack.Redis.IRedisClient GetReadOnlyClient(); - } - - // Generated from `ServiceStack.Redis.IRedisClientsManagerAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisClientsManagerAsync : System.IAsyncDisposable - { - System.Threading.Tasks.ValueTask GetCacheClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetReadOnlyCacheClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetReadOnlyClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.IRedisHash` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisHash : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - bool AddIfNotExists(System.Collections.Generic.KeyValuePair item); - void AddRange(System.Collections.Generic.IEnumerable> items); - System.Int64 IncrementValue(string key, int incrementBy); - } - - // Generated from `ServiceStack.Redis.IRedisHashAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisHashAsync : System.Collections.Generic.IAsyncEnumerable>, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Threading.Tasks.ValueTask AddAsync(string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddAsync(System.Collections.Generic.KeyValuePair item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddIfNotExistsAsync(System.Collections.Generic.KeyValuePair item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddRangeAsync(System.Collections.Generic.IEnumerable> items, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ContainsKeyAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementValueAsync(string key, int incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.IRedisList` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisList : System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - void Append(string value); - string BlockingDequeue(System.TimeSpan? timeOut); - string BlockingPop(System.TimeSpan? timeOut); - string BlockingRemoveStart(System.TimeSpan? timeOut); - string Dequeue(); - void Enqueue(string value); - System.Collections.Generic.List GetAll(); - System.Collections.Generic.List GetRange(int startingFrom, int endingAt); - System.Collections.Generic.List GetRangeFromSortedList(int startingFrom, int endingAt); - string Pop(); - string PopAndPush(ServiceStack.Redis.IRedisList toList); - void Prepend(string value); - void Push(string value); - void RemoveAll(); - string RemoveEnd(); - string RemoveStart(); - System.Int64 RemoveValue(string value, int noOfMatches); - System.Int64 RemoveValue(string value); - void Trim(int keepStartingFrom, int keepEndingAt); - } - - // Generated from `ServiceStack.Redis.IRedisListAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisListAsync : System.Collections.Generic.IAsyncEnumerable, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Threading.Tasks.ValueTask AddAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AppendAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingDequeueAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingPopAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingRemoveStartAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ContainsAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DequeueAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ElementAtAsync(int index, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EnqueueAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedListAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IndexOfAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopAndPushAsync(ServiceStack.Redis.IRedisListAsync toList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PrependAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PushAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAtAsync(int index, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEndAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveStartAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveValueAsync(string value, int noOfMatches, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveValueAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueAsync(int index, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask TrimAsync(int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.IRedisNativeClient` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisNativeClient : System.IDisposable - { - System.Int64 Append(string key, System.Byte[] value); - System.Byte[][] BLPop(string[] listIds, int timeOutSecs); - System.Byte[][] BLPop(string listId, int timeOutSecs); - System.Byte[][] BLPopValue(string[] listIds, int timeOutSecs); - System.Byte[] BLPopValue(string listId, int timeOutSecs); - System.Byte[][] BRPop(string[] listIds, int timeOutSecs); - System.Byte[][] BRPop(string listId, int timeOutSecs); - System.Byte[] BRPopLPush(string fromListId, string toListId, int timeOutSecs); - System.Byte[][] BRPopValue(string[] listIds, int timeOutSecs); - System.Byte[] BRPopValue(string listId, int timeOutSecs); - void BgRewriteAof(); - void BgSave(); - string CalculateSha1(string luaBody); - string ClientGetName(); - void ClientKill(string host); - System.Int64 ClientKill(string addr = default(string), string id = default(string), string type = default(string), string skipMe = default(string)); - System.Byte[] ClientList(); - void ClientPause(int timeOutMs); - void ClientSetName(string client); - System.Byte[][] ConfigGet(string pattern); - void ConfigResetStat(); - void ConfigRewrite(); - void ConfigSet(string item, System.Byte[] value); - ServiceStack.Redis.IRedisSubscription CreateSubscription(); - System.Int64 Db { get; set; } - System.Int64 DbSize { get; } - void DebugSegfault(); - System.Int64 Decr(string key); - System.Int64 DecrBy(string key, int decrBy); - System.Int64 Del(string key); - System.Int64 Del(params string[] keys); - System.Byte[] Dump(string key); - string Echo(string text); - System.Byte[][] Eval(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); - ServiceStack.Redis.RedisData EvalCommand(string luaBody, int numberKeysInArgs, params System.Byte[][] keys); - System.Int64 EvalInt(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); - System.Byte[][] EvalSha(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); - ServiceStack.Redis.RedisData EvalShaCommand(string sha1, int numberKeysInArgs, params System.Byte[][] keys); - System.Int64 EvalShaInt(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); - string EvalShaStr(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); - string EvalStr(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); - System.Int64 Exists(string key); - bool Expire(string key, int seconds); - bool ExpireAt(string key, System.Int64 unixTime); - void FlushAll(); - void FlushDb(); - System.Int64 GeoAdd(string key, params ServiceStack.Redis.RedisGeo[] geoPoints); - System.Int64 GeoAdd(string key, double longitude, double latitude, string member); - double GeoDist(string key, string fromMember, string toMember, string unit = default(string)); - string[] GeoHash(string key, params string[] members); - System.Collections.Generic.List GeoPos(string key, params string[] members); - System.Collections.Generic.List GeoRadius(string key, double longitude, double latitude, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?)); - System.Collections.Generic.List GeoRadiusByMember(string key, string member, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?)); - System.Byte[] Get(string key); - System.Int64 GetBit(string key, int offset); - System.Byte[] GetRange(string key, int fromIndex, int toIndex); - System.Byte[] GetSet(string key, System.Byte[] value); - System.Int64 HDel(string hashId, System.Byte[] key); - System.Int64 HExists(string hashId, System.Byte[] key); - System.Byte[] HGet(string hashId, System.Byte[] key); - System.Byte[][] HGetAll(string hashId); - System.Int64 HIncrby(string hashId, System.Byte[] key, int incrementBy); - double HIncrbyFloat(string hashId, System.Byte[] key, double incrementBy); - System.Byte[][] HKeys(string hashId); - System.Int64 HLen(string hashId); - System.Byte[][] HMGet(string hashId, params System.Byte[][] keysAndArgs); - void HMSet(string hashId, System.Byte[][] keys, System.Byte[][] values); - ServiceStack.Redis.ScanResult HScan(string hashId, System.UInt64 cursor, int count = default(int), string match = default(string)); - System.Int64 HSet(string hashId, System.Byte[] key, System.Byte[] value); - System.Int64 HSetNX(string hashId, System.Byte[] key, System.Byte[] value); - System.Byte[][] HVals(string hashId); - System.Int64 Incr(string key); - System.Int64 IncrBy(string key, int incrBy); - double IncrByFloat(string key, double incrBy); - System.Collections.Generic.Dictionary Info { get; } - System.Byte[][] Keys(string pattern); - System.Byte[] LIndex(string listId, int listIndex); - void LInsert(string listId, bool insertBefore, System.Byte[] pivot, System.Byte[] value); - System.Int64 LLen(string listId); - System.Byte[] LPop(string listId); - System.Int64 LPush(string listId, System.Byte[] value); - System.Int64 LPushX(string listId, System.Byte[] value); - System.Byte[][] LRange(string listId, int startingFrom, int endingAt); - System.Int64 LRem(string listId, int removeNoOfMatches, System.Byte[] value); - void LSet(string listId, int listIndex, System.Byte[] value); - void LTrim(string listId, int keepStartingFrom, int keepEndingAt); - System.DateTime LastSave { get; } - System.Byte[][] MGet(params string[] keys); - System.Byte[][] MGet(params System.Byte[][] keysAndArgs); - void MSet(string[] keys, System.Byte[][] values); - void MSet(System.Byte[][] keys, System.Byte[][] values); - bool MSetNx(string[] keys, System.Byte[][] values); - bool MSetNx(System.Byte[][] keys, System.Byte[][] values); - void Migrate(string host, int port, string key, int destinationDb, System.Int64 timeoutMs); - bool Move(string key, int db); - System.Int64 ObjectIdleTime(string key); - bool PExpire(string key, System.Int64 ttlMs); - bool PExpireAt(string key, System.Int64 unixTimeMs); - void PSetEx(string key, System.Int64 expireInMs, System.Byte[] value); - System.Byte[][] PSubscribe(params string[] toChannelsMatchingPatterns); - System.Int64 PTtl(string key); - System.Byte[][] PUnSubscribe(params string[] toChannelsMatchingPatterns); - bool Persist(string key); - bool PfAdd(string key, params System.Byte[][] elements); - System.Int64 PfCount(string key); - void PfMerge(string toKeyId, params string[] fromKeys); - bool Ping(); - System.Int64 Publish(string toChannel, System.Byte[] message); - void Quit(); - System.Byte[] RPop(string listId); - System.Byte[] RPopLPush(string fromListId, string toListId); - System.Int64 RPush(string listId, System.Byte[] value); - System.Int64 RPushX(string listId, System.Byte[] value); - string RandomKey(); - ServiceStack.Redis.RedisData RawCommand(params object[] cmdWithArgs); - ServiceStack.Redis.RedisData RawCommand(params System.Byte[][] cmdWithBinaryArgs); - System.Byte[][] ReceiveMessages(); - void Rename(string oldKeyname, string newKeyname); - bool RenameNx(string oldKeyname, string newKeyname); - System.Byte[] Restore(string key, System.Int64 expireMs, System.Byte[] dumpValue); - ServiceStack.Redis.RedisText Role(); - System.Int64 SAdd(string setId, System.Byte[][] value); - System.Int64 SAdd(string setId, System.Byte[] value); - System.Int64 SCard(string setId); - System.Byte[][] SDiff(string fromSetId, params string[] withSetIds); - void SDiffStore(string intoSetId, string fromSetId, params string[] withSetIds); - System.Byte[][] SInter(params string[] setIds); - void SInterStore(string intoSetId, params string[] setIds); - System.Int64 SIsMember(string setId, System.Byte[] value); - System.Byte[][] SMembers(string setId); - void SMove(string fromSetId, string toSetId, System.Byte[] value); - System.Byte[][] SPop(string setId, int count); - System.Byte[] SPop(string setId); - System.Byte[] SRandMember(string setId); - System.Int64 SRem(string setId, System.Byte[] value); - ServiceStack.Redis.ScanResult SScan(string setId, System.UInt64 cursor, int count = default(int), string match = default(string)); - System.Byte[][] SUnion(params string[] setIds); - void SUnionStore(string intoSetId, params string[] setIds); - void Save(); - ServiceStack.Redis.ScanResult Scan(System.UInt64 cursor, int count = default(int), string match = default(string)); - System.Byte[][] ScriptExists(params System.Byte[][] sha1Refs); - void ScriptFlush(); - void ScriptKill(); - System.Byte[] ScriptLoad(string body); - void Set(string key, System.Byte[] value); - System.Int64 SetBit(string key, int offset, int value); - void SetEx(string key, int expireInSeconds, System.Byte[] value); - System.Int64 SetNX(string key, System.Byte[] value); - System.Int64 SetRange(string key, int offset, System.Byte[] value); - void Shutdown(); - void SlaveOf(string hostname, int port); - void SlaveOfNoOne(); - System.Byte[][] Sort(string listOrSetId, ServiceStack.Redis.SortOptions sortOptions); - System.Int64 StrLen(string key); - System.Byte[][] Subscribe(params string[] toChannels); - System.Byte[][] Time(); - System.Int64 Ttl(string key); - string Type(string key); - System.Byte[][] UnSubscribe(params string[] toChannels); - void UnWatch(); - void Watch(params string[] keys); - System.Int64 ZAdd(string setId, double score, System.Byte[] value); - System.Int64 ZAdd(string setId, System.Int64 score, System.Byte[] value); - System.Int64 ZCard(string setId); - double ZIncrBy(string setId, double incrBy, System.Byte[] value); - double ZIncrBy(string setId, System.Int64 incrBy, System.Byte[] value); - System.Int64 ZInterStore(string intoSetId, params string[] setIds); - System.Int64 ZLexCount(string setId, string min, string max); - System.Byte[][] ZRange(string setId, int min, int max); - System.Byte[][] ZRangeByLex(string setId, string min, string max, int? skip = default(int?), int? take = default(int?)); - System.Byte[][] ZRangeByScore(string setId, double min, double max, int? skip, int? take); - System.Byte[][] ZRangeByScore(string setId, System.Int64 min, System.Int64 max, int? skip, int? take); - System.Byte[][] ZRangeByScoreWithScores(string setId, double min, double max, int? skip, int? take); - System.Byte[][] ZRangeByScoreWithScores(string setId, System.Int64 min, System.Int64 max, int? skip, int? take); - System.Byte[][] ZRangeWithScores(string setId, int min, int max); - System.Int64 ZRank(string setId, System.Byte[] value); - System.Int64 ZRem(string setId, System.Byte[][] values); - System.Int64 ZRem(string setId, System.Byte[] value); - System.Int64 ZRemRangeByLex(string setId, string min, string max); - System.Int64 ZRemRangeByRank(string setId, int min, int max); - System.Int64 ZRemRangeByScore(string setId, double fromScore, double toScore); - System.Int64 ZRemRangeByScore(string setId, System.Int64 fromScore, System.Int64 toScore); - System.Byte[][] ZRevRange(string setId, int min, int max); - System.Byte[][] ZRevRangeByScore(string setId, double min, double max, int? skip, int? take); - System.Byte[][] ZRevRangeByScore(string setId, System.Int64 min, System.Int64 max, int? skip, int? take); - System.Byte[][] ZRevRangeByScoreWithScores(string setId, double min, double max, int? skip, int? take); - System.Byte[][] ZRevRangeByScoreWithScores(string setId, System.Int64 min, System.Int64 max, int? skip, int? take); - System.Byte[][] ZRevRangeWithScores(string setId, int min, int max); - System.Int64 ZRevRank(string setId, System.Byte[] value); - ServiceStack.Redis.ScanResult ZScan(string setId, System.UInt64 cursor, int count = default(int), string match = default(string)); - double ZScore(string setId, System.Byte[] value); - System.Int64 ZUnionStore(string intoSetId, params string[] setIds); - } - - // Generated from `ServiceStack.Redis.IRedisNativeClientAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisNativeClientAsync : System.IAsyncDisposable - { - System.Threading.Tasks.ValueTask AppendAsync(string key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BLPopAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BLPopAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BLPopValueAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BLPopValueAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BRPopAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BRPopAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BRPopLPushAsync(string fromListId, string toListId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BRPopValueAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BRPopValueAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BgRewriteAofAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BgSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BitCountAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CalculateSha1Async(string luaBody, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClientGetNameAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClientKillAsync(string addr = default(string), string id = default(string), string type = default(string), string skipMe = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClientKillAsync(string host, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClientListAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClientPauseAsync(int timeOutMs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClientSetNameAsync(string client, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ConfigGetAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ConfigResetStatAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ConfigRewriteAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ConfigSetAsync(string item, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CreateSubscriptionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Int64 Db { get; } - System.Threading.Tasks.ValueTask DbSizeAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DebugSegfaultAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DecrAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DecrByAsync(string key, System.Int64 decrBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DelAsync(string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DelAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DelAsync(params string[] keys); - System.Threading.Tasks.ValueTask DumpAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EchoAsync(string text, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EvalAsync(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); - System.Threading.Tasks.ValueTask EvalAsync(string luaBody, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EvalCommandAsync(string luaBody, int numberKeysInArgs, params System.Byte[][] keys); - System.Threading.Tasks.ValueTask EvalCommandAsync(string luaBody, int numberKeysInArgs, System.Byte[][] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EvalIntAsync(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); - System.Threading.Tasks.ValueTask EvalIntAsync(string luaBody, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EvalShaAsync(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); - System.Threading.Tasks.ValueTask EvalShaAsync(string sha1, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EvalShaCommandAsync(string sha1, int numberKeysInArgs, params System.Byte[][] keys); - System.Threading.Tasks.ValueTask EvalShaCommandAsync(string sha1, int numberKeysInArgs, System.Byte[][] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EvalShaIntAsync(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); - System.Threading.Tasks.ValueTask EvalShaIntAsync(string sha1, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EvalShaStrAsync(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs); - System.Threading.Tasks.ValueTask EvalShaStrAsync(string sha1, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EvalStrAsync(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs); - System.Threading.Tasks.ValueTask EvalStrAsync(string luaBody, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExistsAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExpireAsync(string key, int seconds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExpireAtAsync(string key, System.Int64 unixTime, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask FlushDbAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GeoAddAsync(string key, params ServiceStack.Redis.RedisGeo[] geoPoints); - System.Threading.Tasks.ValueTask GeoAddAsync(string key, double longitude, double latitude, string member, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GeoAddAsync(string key, ServiceStack.Redis.RedisGeo[] geoPoints, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GeoDistAsync(string key, string fromMember, string toMember, string unit = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GeoHashAsync(string key, string[] members, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GeoHashAsync(string key, params string[] members); - System.Threading.Tasks.ValueTask> GeoPosAsync(string key, string[] members, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GeoPosAsync(string key, params string[] members); - System.Threading.Tasks.ValueTask> GeoRadiusAsync(string key, double longitude, double latitude, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GeoRadiusByMemberAsync(string key, string member, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetBitAsync(string key, int offset, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetRangeAsync(string key, int fromIndex, int toIndex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetSetAsync(string key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HDelAsync(string hashId, System.Byte[] key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HExistsAsync(string hashId, System.Byte[] key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HGetAllAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HGetAsync(string hashId, System.Byte[] key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HIncrbyAsync(string hashId, System.Byte[] key, int incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HIncrbyFloatAsync(string hashId, System.Byte[] key, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HKeysAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HLenAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HMGetAsync(string hashId, params System.Byte[][] keysAndArgs); - System.Threading.Tasks.ValueTask HMGetAsync(string hashId, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HMSetAsync(string hashId, System.Byte[][] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HScanAsync(string hashId, System.UInt64 cursor, int count = default(int), string match = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HSetAsync(string hashId, System.Byte[] key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HSetNXAsync(string hashId, System.Byte[] key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HValsAsync(string hashId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrByAsync(string key, System.Int64 incrBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrByFloatAsync(string key, double incrBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> InfoAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask KeysAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LIndexAsync(string listId, int listIndex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LInsertAsync(string listId, bool insertBefore, System.Byte[] pivot, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LLenAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LPopAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LPushAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LPushXAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LRangeAsync(string listId, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LRemAsync(string listId, int removeNoOfMatches, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LSetAsync(string listId, int listIndex, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LTrimAsync(string listId, int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask LastSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MGetAsync(string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MGetAsync(params string[] keys); - System.Threading.Tasks.ValueTask MGetAsync(params System.Byte[][] keysAndArgs); - System.Threading.Tasks.ValueTask MGetAsync(System.Byte[][] keysAndArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MSetAsync(string[] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MSetAsync(System.Byte[][] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MSetNxAsync(string[] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MSetNxAsync(System.Byte[][] keys, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MigrateAsync(string host, int port, string key, int destinationDb, System.Int64 timeoutMs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MoveAsync(string key, int db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ObjectIdleTimeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PExpireAsync(string key, System.Int64 ttlMs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PExpireAtAsync(string key, System.Int64 unixTimeMs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PSetExAsync(string key, System.Int64 expireInMs, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PSubscribeAsync(string[] toChannelsMatchingPatterns, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PSubscribeAsync(params string[] toChannelsMatchingPatterns); - System.Threading.Tasks.ValueTask PTtlAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PUnSubscribeAsync(string[] toChannelsMatchingPatterns, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PUnSubscribeAsync(params string[] toChannelsMatchingPatterns); - System.Threading.Tasks.ValueTask PersistAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PfAddAsync(string key, params System.Byte[][] elements); - System.Threading.Tasks.ValueTask PfAddAsync(string key, System.Byte[][] elements, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PfCountAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PfMergeAsync(string toKeyId, string[] fromKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PfMergeAsync(string toKeyId, params string[] fromKeys); - System.Threading.Tasks.ValueTask PingAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PublishAsync(string toChannel, System.Byte[] message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask QuitAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RPopAsync(string listId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RPopLPushAsync(string fromListId, string toListId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RPushAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RPushXAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RandomKeyAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RawCommandAsync(params object[] cmdWithArgs); - System.Threading.Tasks.ValueTask RawCommandAsync(params System.Byte[][] cmdWithBinaryArgs); - System.Threading.Tasks.ValueTask RawCommandAsync(object[] cmdWithArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RawCommandAsync(System.Byte[][] cmdWithBinaryArgs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ReceiveMessagesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RenameAsync(string oldKeyname, string newKeyname, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RenameNxAsync(string oldKeyname, string newKeyname, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RestoreAsync(string key, System.Int64 expireMs, System.Byte[] dumpValue, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RoleAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SAddAsync(string setId, System.Byte[][] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SAddAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SCardAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SDiffAsync(string fromSetId, string[] withSetIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SDiffAsync(string fromSetId, params string[] withSetIds); - System.Threading.Tasks.ValueTask SDiffStoreAsync(string intoSetId, string fromSetId, string[] withSetIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SDiffStoreAsync(string intoSetId, string fromSetId, params string[] withSetIds); - System.Threading.Tasks.ValueTask SInterAsync(string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SInterAsync(params string[] setIds); - System.Threading.Tasks.ValueTask SInterStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SInterStoreAsync(string intoSetId, params string[] setIds); - System.Threading.Tasks.ValueTask SIsMemberAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SMembersAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SMoveAsync(string fromSetId, string toSetId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SPopAsync(string setId, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SPopAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SRandMemberAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SRemAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SScanAsync(string setId, System.UInt64 cursor, int count = default(int), string match = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SUnionAsync(string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SUnionAsync(params string[] setIds); - System.Threading.Tasks.ValueTask SUnionStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SUnionStoreAsync(string intoSetId, params string[] setIds); - System.Threading.Tasks.ValueTask SaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ScanAsync(System.UInt64 cursor, int count = default(int), string match = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ScriptExistsAsync(params System.Byte[][] sha1Refs); - System.Threading.Tasks.ValueTask ScriptExistsAsync(System.Byte[][] sha1Refs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ScriptFlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ScriptKillAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ScriptLoadAsync(string body, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SelectAsync(System.Int64 db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetAsync(string key, System.Byte[] value, bool exists, System.Int64 expirySeconds = default(System.Int64), System.Int64 expiryMilliseconds = default(System.Int64), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetAsync(string key, System.Byte[] value, System.Int64 expirySeconds = default(System.Int64), System.Int64 expiryMilliseconds = default(System.Int64), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetBitAsync(string key, int offset, int value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetExAsync(string key, int expireInSeconds, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetNXAsync(string key, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetRangeAsync(string key, int offset, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ShutdownAsync(bool noSave = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SlaveOfAsync(string hostname, int port, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SlaveOfNoOneAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SlowlogGetAsync(int? top = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SlowlogResetAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SortAsync(string listOrSetId, ServiceStack.Redis.SortOptions sortOptions, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StrLenAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SubscribeAsync(string[] toChannels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SubscribeAsync(params string[] toChannels); - System.Threading.Tasks.ValueTask TimeAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask TtlAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask TypeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask UnSubscribeAsync(string[] toChannels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask UnSubscribeAsync(params string[] toChannels); - System.Threading.Tasks.ValueTask UnWatchAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask WatchAsync(string[] keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask WatchAsync(params string[] keys); - System.Threading.Tasks.ValueTask ZAddAsync(string setId, double score, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZAddAsync(string setId, System.Int64 score, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZCardAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZCountAsync(string setId, double min, double max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZIncrByAsync(string setId, double incrBy, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZIncrByAsync(string setId, System.Int64 incrBy, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZInterStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZInterStoreAsync(string intoSetId, params string[] setIds); - System.Threading.Tasks.ValueTask ZLexCountAsync(string setId, string min, string max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRangeAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRangeByLexAsync(string setId, string min, string max, int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRangeByScoreAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRangeByScoreAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRangeByScoreWithScoresAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRangeByScoreWithScoresAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRangeWithScoresAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRankAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRemAsync(string setId, System.Byte[][] values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRemAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRemRangeByLexAsync(string setId, string min, string max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRemRangeByRankAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRemRangeByScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRemRangeByScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRevRangeAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRevRangeByScoreAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRevRangeByScoreAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRevRangeByScoreWithScoresAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRevRangeByScoreWithScoresAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRevRangeWithScoresAsync(string setId, int min, int max, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZRevRankAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZScanAsync(string setId, System.UInt64 cursor, int count = default(int), string match = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZScoreAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZUnionStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ZUnionStoreAsync(string intoSetId, params string[] setIds); - } - - // Generated from `ServiceStack.Redis.IRedisPubSubServer` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisPubSubServer : System.IDisposable - { - string[] Channels { get; } - ServiceStack.Redis.IRedisClientsManager ClientsManager { get; } - System.DateTime CurrentServerTime { get; } - string GetStatsDescription(); - string GetStatus(); - System.Action OnDispose { get; set; } - System.Action OnError { get; set; } - System.Action OnFailover { get; set; } - System.Action OnInit { get; set; } - System.Action OnMessage { get; set; } - System.Action OnStart { get; set; } - System.Action OnStop { get; set; } - System.Action OnUnSubscribe { get; set; } - void Restart(); - ServiceStack.Redis.IRedisPubSubServer Start(); - void Stop(); - System.TimeSpan? WaitBeforeNextRestart { get; set; } - } - - // Generated from `ServiceStack.Redis.IRedisSet` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSet : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Collections.Generic.HashSet Diff(ServiceStack.Redis.IRedisSet[] withSets); - System.Collections.Generic.HashSet GetAll(); - string GetRandomEntry(); - System.Collections.Generic.List GetRangeFromSortedSet(int startingFrom, int endingAt); - System.Collections.Generic.HashSet Intersect(params ServiceStack.Redis.IRedisSet[] withSets); - void Move(string value, ServiceStack.Redis.IRedisSet toSet); - string Pop(); - void StoreDiff(ServiceStack.Redis.IRedisSet fromSet, params ServiceStack.Redis.IRedisSet[] withSets); - void StoreIntersect(params ServiceStack.Redis.IRedisSet[] withSets); - void StoreUnion(params ServiceStack.Redis.IRedisSet[] withSets); - System.Collections.Generic.HashSet Union(params ServiceStack.Redis.IRedisSet[] withSets); - } - - // Generated from `ServiceStack.Redis.IRedisSetAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSetAsync : System.Collections.Generic.IAsyncEnumerable, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Threading.Tasks.ValueTask AddAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ContainsAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> DiffAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetRandomEntryAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> IntersectAsync(params ServiceStack.Redis.IRedisSetAsync[] withSets); - System.Threading.Tasks.ValueTask> IntersectAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MoveAsync(string value, ServiceStack.Redis.IRedisSetAsync toSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreDiffAsync(ServiceStack.Redis.IRedisSetAsync fromSet, params ServiceStack.Redis.IRedisSetAsync[] withSets); - System.Threading.Tasks.ValueTask StoreDiffAsync(ServiceStack.Redis.IRedisSetAsync fromSet, ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreIntersectAsync(params ServiceStack.Redis.IRedisSetAsync[] withSets); - System.Threading.Tasks.ValueTask StoreIntersectAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreUnionAsync(params ServiceStack.Redis.IRedisSetAsync[] withSets); - System.Threading.Tasks.ValueTask StoreUnionAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> UnionAsync(params ServiceStack.Redis.IRedisSetAsync[] withSets); - System.Threading.Tasks.ValueTask> UnionAsync(ServiceStack.Redis.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.IRedisSortedSet` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSortedSet : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Collections.Generic.List GetAll(); - System.Int64 GetItemIndex(string value); - double GetItemScore(string value); - System.Collections.Generic.List GetRange(int startingRank, int endingRank); - System.Collections.Generic.List GetRangeByScore(string fromStringScore, string toStringScore, int? skip, int? take); - System.Collections.Generic.List GetRangeByScore(string fromStringScore, string toStringScore); - System.Collections.Generic.List GetRangeByScore(double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.List GetRangeByScore(double fromScore, double toScore); - void IncrementItemScore(string value, double incrementByScore); - string PopItemWithHighestScore(); - string PopItemWithLowestScore(); - void RemoveRange(int fromRank, int toRank); - void RemoveRangeByScore(double fromScore, double toScore); - void StoreFromIntersect(params ServiceStack.Redis.IRedisSortedSet[] ofSets); - void StoreFromUnion(params ServiceStack.Redis.IRedisSortedSet[] ofSets); - } - - // Generated from `ServiceStack.Redis.IRedisSortedSetAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSortedSetAsync : System.Collections.Generic.IAsyncEnumerable, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Threading.Tasks.ValueTask AddAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ContainsAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemIndexAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemScoreAsync(string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeAsync(int startingRank, int endingRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeByScoreAsync(string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeByScoreAsync(string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeByScoreAsync(double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeByScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementItemScoreAsync(string value, double incrementByScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemWithHighestScoreAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemWithLowestScoreAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAsync(string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeAsync(int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeByScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreFromIntersectAsync(params ServiceStack.Redis.IRedisSortedSetAsync[] ofSets); - System.Threading.Tasks.ValueTask StoreFromIntersectAsync(ServiceStack.Redis.IRedisSortedSetAsync[] ofSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreFromUnionAsync(params ServiceStack.Redis.IRedisSortedSetAsync[] ofSets); - System.Threading.Tasks.ValueTask StoreFromUnionAsync(ServiceStack.Redis.IRedisSortedSetAsync[] ofSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.IRedisSubscription` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSubscription : System.IDisposable - { - System.Action OnMessage { get; set; } - System.Action OnMessageBytes { get; set; } - System.Action OnSubscribe { get; set; } - System.Action OnUnSubscribe { get; set; } - void SubscribeToChannels(params string[] channels); - void SubscribeToChannelsMatching(params string[] patterns); - System.Int64 SubscriptionCount { get; } - void UnSubscribeFromAllChannels(); - void UnSubscribeFromChannels(params string[] channels); - void UnSubscribeFromChannelsMatching(params string[] patterns); - } - - // Generated from `ServiceStack.Redis.IRedisSubscriptionAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSubscriptionAsync : System.IAsyncDisposable - { - event System.Func OnMessageAsync; - event System.Func OnMessageBytesAsync; - event System.Func OnSubscribeAsync; - event System.Func OnUnSubscribeAsync; - System.Threading.Tasks.ValueTask SubscribeToChannelsAsync(string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SubscribeToChannelsAsync(params string[] channels); - System.Threading.Tasks.ValueTask SubscribeToChannelsMatchingAsync(string[] patterns, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SubscribeToChannelsMatchingAsync(params string[] patterns); - System.Int64 SubscriptionCount { get; } - System.Threading.Tasks.ValueTask UnSubscribeFromAllChannelsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask UnSubscribeFromChannelsAsync(string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask UnSubscribeFromChannelsAsync(params string[] channels); - System.Threading.Tasks.ValueTask UnSubscribeFromChannelsMatchingAsync(string[] patterns, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask UnSubscribeFromChannelsMatchingAsync(params string[] patterns); - } - - // Generated from `ServiceStack.Redis.IRedisTransaction` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTransaction : System.IDisposable, ServiceStack.Redis.Pipeline.IRedisQueueableOperation, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, ServiceStack.Redis.Pipeline.IRedisPipelineShared, ServiceStack.Redis.IRedisTransactionBase - { - bool Commit(); - void Rollback(); - } - - // Generated from `ServiceStack.Redis.IRedisTransactionAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTransactionAsync : System.IAsyncDisposable, ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync, ServiceStack.Redis.IRedisTransactionBaseAsync - { - System.Threading.Tasks.ValueTask CommitAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RollbackAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.IRedisTransactionBase` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTransactionBase : System.IDisposable, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, ServiceStack.Redis.Pipeline.IRedisPipelineShared - { - } - - // Generated from `ServiceStack.Redis.IRedisTransactionBaseAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTransactionBaseAsync : System.IAsyncDisposable, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync - { - } - - // Generated from `ServiceStack.Redis.ItemRef` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ItemRef - { - public string Id { get => throw null; set => throw null; } - public string Item { get => throw null; set => throw null; } - public ItemRef() => throw null; - } - - // Generated from `ServiceStack.Redis.RedisClientType` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum RedisClientType - { - Normal, - PubSub, - Slave, - } - - // Generated from `ServiceStack.Redis.RedisData` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisData - { - public System.Collections.Generic.List Children { get => throw null; set => throw null; } - public System.Byte[] Data { get => throw null; set => throw null; } - public RedisData() => throw null; - } - - // Generated from `ServiceStack.Redis.RedisGeo` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisGeo - { - public double Latitude { get => throw null; set => throw null; } - public double Longitude { get => throw null; set => throw null; } - public string Member { get => throw null; set => throw null; } - public RedisGeo(double longitude, double latitude, string member) => throw null; - public RedisGeo() => throw null; - } - - // Generated from `ServiceStack.Redis.RedisGeoResult` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisGeoResult - { - public double Distance { get => throw null; set => throw null; } - public System.Int64 Hash { get => throw null; set => throw null; } - public double Latitude { get => throw null; set => throw null; } - public double Longitude { get => throw null; set => throw null; } - public string Member { get => throw null; set => throw null; } - public RedisGeoResult() => throw null; - public string Unit { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Redis.RedisGeoUnit` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RedisGeoUnit - { - public const string Feet = default; - public const string Kilometers = default; - public const string Meters = default; - public const string Miles = default; - } - - // Generated from `ServiceStack.Redis.RedisKeyType` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum RedisKeyType - { - Hash, - List, - None, - Set, - SortedSet, - String, - } - - // Generated from `ServiceStack.Redis.RedisServerRole` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum RedisServerRole - { - Master, - Sentinel, - Slave, - Unknown, - } - - // Generated from `ServiceStack.Redis.RedisText` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisText - { - public System.Collections.Generic.List Children { get => throw null; set => throw null; } - public RedisText() => throw null; - public string Text { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Redis.ScanResult` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScanResult - { - public System.UInt64 Cursor { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - public ScanResult() => throw null; - } - - // Generated from `ServiceStack.Redis.SlowlogItem` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SlowlogItem - { - public string[] Arguments { get => throw null; set => throw null; } - public int Duration { get => throw null; set => throw null; } - public int Id { get => throw null; set => throw null; } - public SlowlogItem(int id, System.DateTime timeStamp, int duration, string[] arguments) => throw null; - public System.DateTime Timestamp { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Redis.SortOptions` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SortOptions - { - public string GetPattern { get => throw null; set => throw null; } - public int? Skip { get => throw null; set => throw null; } - public bool SortAlpha { get => throw null; set => throw null; } - public bool SortDesc { get => throw null; set => throw null; } - public SortOptions() => throw null; - public string SortPattern { get => throw null; set => throw null; } - public string StoreAtKey { get => throw null; set => throw null; } - public int? Take { get => throw null; set => throw null; } - } - - namespace Generic - { - // Generated from `ServiceStack.Redis.Generic.IRedisHash<,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisHash : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Collections.Generic.Dictionary GetAll(); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisHashAsync<,>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisHashAsync : System.Collections.Generic.IAsyncEnumerable>, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Threading.Tasks.ValueTask AddAsync(TKey key, TValue value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddAsync(System.Collections.Generic.KeyValuePair item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ContainsKeyAsync(TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAsync(TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisList<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisList : System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - void AddRange(System.Collections.Generic.IEnumerable values); - void Append(T value); - T BlockingDequeue(System.TimeSpan? timeOut); - T BlockingPop(System.TimeSpan? timeOut); - T BlockingRemoveStart(System.TimeSpan? timeOut); - T Dequeue(); - void Enqueue(T value); - System.Collections.Generic.List GetAll(); - System.Collections.Generic.List GetRange(int startingFrom, int endingAt); - System.Collections.Generic.List GetRangeFromSortedList(int startingFrom, int endingAt); - T Pop(); - T PopAndPush(ServiceStack.Redis.Generic.IRedisList toList); - void Prepend(T value); - void Push(T value); - void RemoveAll(); - T RemoveEnd(); - T RemoveStart(); - System.Int64 RemoveValue(T value, int noOfMatches); - System.Int64 RemoveValue(T value); - void Trim(int keepStartingFrom, int keepEndingAt); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisListAsync<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisListAsync : System.Collections.Generic.IAsyncEnumerable, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Threading.Tasks.ValueTask AddAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddRangeAsync(System.Collections.Generic.IEnumerable values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AppendAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingDequeueAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingPopAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingRemoveStartAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ContainsAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DequeueAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ElementAtAsync(int index, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EnqueueAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedListAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IndexOfAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopAndPushAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PrependAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PushAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAtAsync(int index, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEndAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveStartAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveValueAsync(T value, int noOfMatches, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveValueAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueAsync(int index, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask TrimAsync(int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisSet<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSet : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Collections.Generic.HashSet GetAll(); - void GetDifferences(params ServiceStack.Redis.Generic.IRedisSet[] withSets); - T GetRandomItem(); - void MoveTo(T item, ServiceStack.Redis.Generic.IRedisSet toSet); - T PopRandomItem(); - void PopulateWithDifferencesOf(ServiceStack.Redis.Generic.IRedisSet fromSet, params ServiceStack.Redis.Generic.IRedisSet[] withSets); - void PopulateWithIntersectOf(params ServiceStack.Redis.Generic.IRedisSet[] sets); - void PopulateWithUnionOf(params ServiceStack.Redis.Generic.IRedisSet[] sets); - System.Collections.Generic.List Sort(int startingFrom, int endingAt); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisSetAsync<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSetAsync : System.Collections.Generic.IAsyncEnumerable, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Threading.Tasks.ValueTask AddAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ContainsAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetDifferencesAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets); - System.Threading.Tasks.ValueTask GetDifferencesAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetRandomItemAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask MoveToAsync(T item, ServiceStack.Redis.Generic.IRedisSetAsync toSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopRandomItemAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopulateWithDifferencesOfAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets); - System.Threading.Tasks.ValueTask PopulateWithDifferencesOfAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); - System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); - System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> SortAsync(int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisSortedSet<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSortedSet : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - void Add(T item, double score); - System.Collections.Generic.List GetAll(); - System.Collections.Generic.List GetAllDescending(); - double GetItemScore(T item); - System.Collections.Generic.List GetRange(int fromRank, int toRank); - System.Collections.Generic.List GetRangeByHighestScore(double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.List GetRangeByHighestScore(double fromScore, double toScore); - System.Collections.Generic.List GetRangeByLowestScore(double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.List GetRangeByLowestScore(double fromScore, double toScore); - double IncrementItem(T item, double incrementBy); - int IndexOf(T item); - System.Int64 IndexOfDescending(T item); - T PopItemWithHighestScore(); - T PopItemWithLowestScore(); - System.Int64 PopulateWithIntersectOf(params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds); - System.Int64 PopulateWithIntersectOf(ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args); - System.Int64 PopulateWithUnionOf(params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds); - System.Int64 PopulateWithUnionOf(ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args); - System.Int64 RemoveRange(int minRank, int maxRank); - System.Int64 RemoveRangeByScore(double fromScore, double toScore); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisSortedSetAsync<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSortedSetAsync : System.Collections.Generic.IAsyncEnumerable, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId - { - System.Threading.Tasks.ValueTask AddAsync(T item, double score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ContainsAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask CountAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllDescendingAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemScoreAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeAsync(int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeByHighestScoreAsync(double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeByHighestScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeByLowestScoreAsync(double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeByLowestScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementItemAsync(T item, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IndexOfAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IndexOfDescendingAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemWithHighestScoreAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemWithLowestScoreAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds); - System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopulateWithIntersectOfAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds); - System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopulateWithUnionOfAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeAsync(int minRank, int maxRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeByScoreAsync(double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisTypedClient<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTypedClient : ServiceStack.Data.IEntityStore - { - System.IDisposable AcquireLock(System.TimeSpan timeOut); - System.IDisposable AcquireLock(); - void AddItemToList(ServiceStack.Redis.Generic.IRedisList fromList, T value); - void AddItemToSet(ServiceStack.Redis.Generic.IRedisSet toSet, T item); - void AddItemToSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet toSet, T value, double score); - void AddItemToSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet toSet, T value); - void AddToRecentsList(T value); - T BlockingDequeueItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, System.TimeSpan? timeOut); - T BlockingPopAndPushItemBetweenLists(ServiceStack.Redis.Generic.IRedisList fromList, ServiceStack.Redis.Generic.IRedisList toList, System.TimeSpan? timeOut); - T BlockingPopItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, System.TimeSpan? timeOut); - T BlockingRemoveStartFromList(ServiceStack.Redis.Generic.IRedisList fromList, System.TimeSpan? timeOut); - bool ContainsKey(string key); - ServiceStack.Redis.Generic.IRedisTypedPipeline CreatePipeline(); - ServiceStack.Redis.Generic.IRedisTypedTransaction CreateTransaction(); - System.Int64 Db { get; set; } - System.Int64 DecrementValue(string key); - System.Int64 DecrementValueBy(string key, int count); - void DeleteRelatedEntities(object parentId); - void DeleteRelatedEntity(object parentId, object childId); - T DequeueItemFromList(ServiceStack.Redis.Generic.IRedisList fromList); - void EnqueueItemOnList(ServiceStack.Redis.Generic.IRedisList fromList, T item); - bool ExpireAt(object id, System.DateTime dateTime); - bool ExpireEntryAt(string key, System.DateTime dateTime); - bool ExpireEntryIn(string key, System.TimeSpan expiresAt); - bool ExpireIn(object id, System.TimeSpan expiresAt); - void FlushAll(); - void FlushDb(); - System.Collections.Generic.Dictionary GetAllEntriesFromHash(ServiceStack.Redis.Generic.IRedisHash hash); - System.Collections.Generic.List GetAllItemsFromList(ServiceStack.Redis.Generic.IRedisList fromList); - System.Collections.Generic.HashSet GetAllItemsFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet); - System.Collections.Generic.List GetAllItemsFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set); - System.Collections.Generic.List GetAllItemsFromSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set); - System.Collections.Generic.List GetAllKeys(); - System.Collections.Generic.IDictionary GetAllWithScoresFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set); - T GetAndSetValue(string key, T value); - System.Collections.Generic.HashSet GetDifferencesFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet, params ServiceStack.Redis.Generic.IRedisSet[] withSets); - System.Collections.Generic.List GetEarliestFromRecentsList(int skip, int take); - ServiceStack.Redis.RedisKeyType GetEntryType(string key); - T GetFromHash(object id); - ServiceStack.Redis.Generic.IRedisHash GetHash(string hashId); - System.Int64 GetHashCount(ServiceStack.Redis.Generic.IRedisHash hash); - System.Collections.Generic.List GetHashKeys(ServiceStack.Redis.Generic.IRedisHash hash); - System.Collections.Generic.List GetHashValues(ServiceStack.Redis.Generic.IRedisHash hash); - System.Collections.Generic.HashSet GetIntersectFromSets(params ServiceStack.Redis.Generic.IRedisSet[] sets); - T GetItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, int listIndex); - System.Int64 GetItemIndexInSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, T value); - System.Int64 GetItemIndexInSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set, T value); - double GetItemScoreInSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, T value); - System.Collections.Generic.List GetLatestFromRecentsList(int skip, int take); - System.Int64 GetListCount(ServiceStack.Redis.Generic.IRedisList fromList); - System.Int64 GetNextSequence(int incrBy); - System.Int64 GetNextSequence(); - T GetRandomItemFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet); - string GetRandomKey(); - System.Collections.Generic.List GetRangeFromList(ServiceStack.Redis.Generic.IRedisList fromList, int startingFrom, int endingAt); - System.Collections.Generic.List GetRangeFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); - System.Collections.Generic.List GetRangeFromSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); - System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank); - System.Collections.Generic.List GetRelatedEntities(object parentId); - System.Int64 GetRelatedEntitiesCount(object parentId); - System.Int64 GetSetCount(ServiceStack.Redis.Generic.IRedisSet set); - System.Collections.Generic.List GetSortedEntryValues(ServiceStack.Redis.Generic.IRedisSet fromSet, int startingFrom, int endingAt); - System.Int64 GetSortedSetCount(ServiceStack.Redis.Generic.IRedisSortedSet set); - System.TimeSpan GetTimeToLive(string key); - System.Collections.Generic.HashSet GetUnionFromSets(params ServiceStack.Redis.Generic.IRedisSet[] sets); - T GetValue(string key); - T GetValueFromHash(ServiceStack.Redis.Generic.IRedisHash hash, TKey key); - System.Collections.Generic.List GetValues(System.Collections.Generic.List keys); - bool HashContainsEntry(ServiceStack.Redis.Generic.IRedisHash hash, TKey key); - double IncrementItemInSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, T value, double incrementBy); - System.Int64 IncrementValue(string key); - System.Int64 IncrementValueBy(string key, int count); - void InsertAfterItemInList(ServiceStack.Redis.Generic.IRedisList toList, T pivot, T value); - void InsertBeforeItemInList(ServiceStack.Redis.Generic.IRedisList toList, T pivot, T value); - T this[string key] { get; set; } - ServiceStack.Model.IHasNamed> Lists { get; set; } - void MoveBetweenSets(ServiceStack.Redis.Generic.IRedisSet fromSet, ServiceStack.Redis.Generic.IRedisSet toSet, T item); - T PopAndPushItemBetweenLists(ServiceStack.Redis.Generic.IRedisList fromList, ServiceStack.Redis.Generic.IRedisList toList); - T PopItemFromList(ServiceStack.Redis.Generic.IRedisList fromList); - T PopItemFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet); - T PopItemWithHighestScoreFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet fromSet); - T PopItemWithLowestScoreFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet fromSet); - void PrependItemToList(ServiceStack.Redis.Generic.IRedisList fromList, T value); - void PushItemToList(ServiceStack.Redis.Generic.IRedisList fromList, T item); - ServiceStack.Redis.IRedisClient RedisClient { get; } - void RemoveAllFromList(ServiceStack.Redis.Generic.IRedisList fromList); - T RemoveEndFromList(ServiceStack.Redis.Generic.IRedisList fromList); - bool RemoveEntry(string key); - bool RemoveEntry(params string[] args); - bool RemoveEntry(params ServiceStack.Model.IHasStringId[] entities); - bool RemoveEntryFromHash(ServiceStack.Redis.Generic.IRedisHash hash, TKey key); - System.Int64 RemoveItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, T value, int noOfMatches); - System.Int64 RemoveItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, T value); - void RemoveItemFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet, T item); - bool RemoveItemFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet fromSet, T value); - System.Int64 RemoveRangeFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, int minRank, int maxRank); - System.Int64 RemoveRangeFromSortedSetByScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore); - T RemoveStartFromList(ServiceStack.Redis.Generic.IRedisList fromList); - void Save(); - void SaveAsync(); - T[] SearchKeys(string pattern); - string SequenceKey { get; set; } - bool SetContainsItem(ServiceStack.Redis.Generic.IRedisSet set, T item); - bool SetEntryInHash(ServiceStack.Redis.Generic.IRedisHash hash, TKey key, T value); - bool SetEntryInHashIfNotExists(ServiceStack.Redis.Generic.IRedisHash hash, TKey key, T value); - void SetItemInList(ServiceStack.Redis.Generic.IRedisList toList, int listIndex, T value); - void SetRangeInHash(ServiceStack.Redis.Generic.IRedisHash hash, System.Collections.Generic.IEnumerable> keyValuePairs); - void SetSequence(int value); - void SetValue(string key, T entity, System.TimeSpan expireIn); - void SetValue(string key, T entity); - bool SetValueIfExists(string key, T entity); - bool SetValueIfNotExists(string key, T entity); - ServiceStack.Model.IHasNamed> Sets { get; set; } - System.Collections.Generic.List SortList(ServiceStack.Redis.Generic.IRedisList fromList, int startingFrom, int endingAt); - bool SortedSetContainsItem(ServiceStack.Redis.Generic.IRedisSortedSet set, T value); - ServiceStack.Model.IHasNamed> SortedSets { get; set; } - T Store(T entity, System.TimeSpan expireIn); - void StoreAsHash(T entity); - void StoreDifferencesFromSet(ServiceStack.Redis.Generic.IRedisSet intoSet, ServiceStack.Redis.Generic.IRedisSet fromSet, params ServiceStack.Redis.Generic.IRedisSet[] withSets); - void StoreIntersectFromSets(ServiceStack.Redis.Generic.IRedisSet intoSet, params ServiceStack.Redis.Generic.IRedisSet[] sets); - System.Int64 StoreIntersectFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds); - System.Int64 StoreIntersectFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args); - void StoreRelatedEntities(object parentId, params TChild[] children); - void StoreRelatedEntities(object parentId, System.Collections.Generic.List children); - void StoreUnionFromSets(ServiceStack.Redis.Generic.IRedisSet intoSet, params ServiceStack.Redis.Generic.IRedisSet[] sets); - System.Int64 StoreUnionFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds); - System.Int64 StoreUnionFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args); - void TrimList(ServiceStack.Redis.Generic.IRedisList fromList, int keepStartingFrom, int keepEndingAt); - ServiceStack.Redis.IRedisSet TypeIdsSet { get; } - string UrnKey(T value); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisTypedClientAsync<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTypedClientAsync : ServiceStack.Data.IEntityStoreAsync - { - System.Threading.Tasks.ValueTask AcquireLockAsync(System.TimeSpan? timeOut = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddItemToListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddItemToSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync toSet, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddItemToSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync toSet, T value, double score, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddItemToSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync toSet, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask AddToRecentsListAsync(T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BackgroundSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingDequeueItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingPopAndPushItemBetweenListsAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, ServiceStack.Redis.Generic.IRedisListAsync toList, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingPopItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask BlockingRemoveStartFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.TimeSpan? timeOut, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ContainsKeyAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Redis.Generic.IRedisTypedPipelineAsync CreatePipeline(); - System.Threading.Tasks.ValueTask> CreateTransactionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Int64 Db { get; } - System.Threading.Tasks.ValueTask DecrementValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DecrementValueByAsync(string key, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DeleteRelatedEntitiesAsync(object parentId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DeleteRelatedEntityAsync(object parentId, object childId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask DequeueItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask EnqueueItemOnListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExpireAtAsync(object id, System.DateTime dateTime, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExpireEntryAtAsync(string key, System.DateTime dateTime, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExpireEntryInAsync(string key, System.TimeSpan expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ExpireInAsync(object id, System.TimeSpan expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask FlushDbAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ForegroundSaveAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllEntriesFromHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllItemsFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllItemsFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllItemsFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllItemsFromSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllKeysAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetAllWithScoresFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetAndSetValueAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets); - System.Threading.Tasks.ValueTask> GetDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetEarliestFromRecentsListAsync(int skip, int take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetEntryTypeAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetFromHashAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Redis.Generic.IRedisHashAsync GetHash(string hashId); - System.Threading.Tasks.ValueTask GetHashCountAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetHashKeysAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetHashValuesAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetIntersectFromSetsAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); - System.Threading.Tasks.ValueTask> GetIntersectFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int listIndex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemIndexInSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemIndexInSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetItemScoreInSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetLatestFromRecentsListAsync(int skip, int take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetListCountAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetNextSequenceAsync(int incrBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetNextSequenceAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetRandomItemFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetRandomKeyAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeFromSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRangeWithScoresFromSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetRelatedEntitiesAsync(object parentId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetRelatedEntitiesCountAsync(object parentId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetSetCountAsync(ServiceStack.Redis.Generic.IRedisSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetSortedEntryValuesAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetSortedSetCountAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetUnionFromSetsAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); - System.Threading.Tasks.ValueTask> GetUnionFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask GetValueFromHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask> GetValuesAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask HashContainsEntryAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementItemInSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, double incrementBy, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementValueAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask IncrementValueByAsync(string key, int count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask InsertAfterItemInListAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, T pivot, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask InsertBeforeItemInListAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, T pivot, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Model.IHasNamed> Lists { get; } - System.Threading.Tasks.ValueTask MoveBetweenSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync toSet, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopAndPushItemBetweenListsAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, ServiceStack.Redis.Generic.IRedisListAsync toList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemWithHighestScoreFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PopItemWithLowestScoreFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync fromSet, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PrependItemToListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask PushItemToListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Redis.IRedisClientAsync RedisClient { get; } - System.Threading.Tasks.ValueTask RemoveAllFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEndFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEntryAsync(string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEntryAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEntryAsync(params string[] args); - System.Threading.Tasks.ValueTask RemoveEntryAsync(params ServiceStack.Model.IHasStringId[] entities); - System.Threading.Tasks.ValueTask RemoveEntryAsync(ServiceStack.Model.IHasStringId[] entities, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveEntryFromHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, int noOfMatches, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveItemFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveItemFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync fromSet, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int minRank, int maxRank, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveRangeFromSortedSetByScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RemoveStartFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SearchKeysAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SelectAsync(System.Int64 db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string SequenceKey { get; set; } - System.Threading.Tasks.ValueTask SetContainsItemAsync(ServiceStack.Redis.Generic.IRedisSetAsync set, T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetEntryInHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetEntryInHashIfNotExistsAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetItemInListAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, int listIndex, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetRangeInHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Collections.Generic.IEnumerable> keyValuePairs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetSequenceAsync(int value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueAsync(string key, T entity, System.TimeSpan expireIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueAsync(string key, T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueIfExistsAsync(string key, T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SetValueIfNotExistsAsync(string key, T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Model.IHasNamed> Sets { get; } - System.Threading.Tasks.ValueTask> SortListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int startingFrom, int endingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask SortedSetContainsItemAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Model.IHasNamed> SortedSets { get; } - System.Threading.Tasks.ValueTask StoreAsHashAsync(T entity, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreAsync(T entity, System.TimeSpan expireIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync fromSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets); - System.Threading.Tasks.ValueTask StoreDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreIntersectFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); - System.Threading.Tasks.ValueTask StoreIntersectFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds); - System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreIntersectFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreRelatedEntitiesAsync(object parentId, params TChild[] children); - System.Threading.Tasks.ValueTask StoreRelatedEntitiesAsync(object parentId, TChild[] children, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreRelatedEntitiesAsync(object parentId, System.Collections.Generic.List children, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreUnionFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] sets); - System.Threading.Tasks.ValueTask StoreUnionFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds); - System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask StoreUnionFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask TrimListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Redis.IRedisSetAsync TypeIdsSet { get; } - string UrnKey(T value); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisTypedPipeline<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTypedPipeline : System.IDisposable, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, ServiceStack.Redis.Pipeline.IRedisPipelineShared, ServiceStack.Redis.Generic.IRedisTypedQueueableOperation - { - } - - // Generated from `ServiceStack.Redis.Generic.IRedisTypedPipelineAsync<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTypedPipelineAsync : System.IAsyncDisposable, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync, ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync - { - } - - // Generated from `ServiceStack.Redis.Generic.IRedisTypedQueueableOperation<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTypedQueueableOperation - { - void QueueCommand(System.Func, string> command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, string> command, System.Action onSuccessCallback); - void QueueCommand(System.Func, string> command); - void QueueCommand(System.Func, int> command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, int> command, System.Action onSuccessCallback); - void QueueCommand(System.Func, int> command); - void QueueCommand(System.Func, double> command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, double> command, System.Action onSuccessCallback); - void QueueCommand(System.Func, double> command); - void QueueCommand(System.Func, bool> command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, bool> command, System.Action onSuccessCallback); - void QueueCommand(System.Func, bool> command); - void QueueCommand(System.Func, T> command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, T> command, System.Action onSuccessCallback); - void QueueCommand(System.Func, T> command); - void QueueCommand(System.Func, System.Int64> command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, System.Int64> command, System.Action onSuccessCallback); - void QueueCommand(System.Func, System.Int64> command); - void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback); - void QueueCommand(System.Func, System.Collections.Generic.List> command); - void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback); - void QueueCommand(System.Func, System.Collections.Generic.List> command); - void QueueCommand(System.Func, System.Collections.Generic.HashSet> command, System.Action> onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, System.Collections.Generic.HashSet> command, System.Action> onSuccessCallback); - void QueueCommand(System.Func, System.Collections.Generic.HashSet> command); - void QueueCommand(System.Func, System.Byte[]> command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func, System.Byte[]> command, System.Action onSuccessCallback); - void QueueCommand(System.Func, System.Byte[]> command); - void QueueCommand(System.Action> command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Action> command, System.Action onSuccessCallback); - void QueueCommand(System.Action> command); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTypedQueueableOperationAsync - { - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisTypedTransaction<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTypedTransaction : System.IDisposable, ServiceStack.Redis.Generic.IRedisTypedQueueableOperation - { - bool Commit(); - void Rollback(); - } - - // Generated from `ServiceStack.Redis.Generic.IRedisTypedTransactionAsync<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisTypedTransactionAsync : System.IAsyncDisposable, ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync - { - System.Threading.Tasks.ValueTask CommitAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask RollbackAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - } - namespace Pipeline - { - // Generated from `ServiceStack.Redis.Pipeline.IRedisPipeline` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisPipeline : System.IDisposable, ServiceStack.Redis.Pipeline.IRedisQueueableOperation, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, ServiceStack.Redis.Pipeline.IRedisPipelineShared - { - } - - // Generated from `ServiceStack.Redis.Pipeline.IRedisPipelineAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisPipelineAsync : System.IAsyncDisposable, ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync - { - } - - // Generated from `ServiceStack.Redis.Pipeline.IRedisPipelineShared` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisPipelineShared : System.IDisposable, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation - { - void Flush(); - bool Replay(); - } - - // Generated from `ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisPipelineSharedAsync : System.IAsyncDisposable, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync - { - System.Threading.Tasks.ValueTask FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask ReplayAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisQueueCompletableOperation - { - void CompleteBytesQueuedCommand(System.Func bytesReadCommand); - void CompleteDoubleQueuedCommand(System.Func doubleReadCommand); - void CompleteIntQueuedCommand(System.Func intReadCommand); - void CompleteLongQueuedCommand(System.Func longReadCommand); - void CompleteMultiBytesQueuedCommand(System.Func multiBytesReadCommand); - void CompleteMultiStringQueuedCommand(System.Func> multiStringReadCommand); - void CompleteRedisDataQueuedCommand(System.Func redisDataReadCommand); - void CompleteStringQueuedCommand(System.Func stringReadCommand); - void CompleteVoidQueuedCommand(System.Action voidReadCommand); - } - - // Generated from `ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisQueueCompletableOperationAsync - { - void CompleteBytesQueuedCommandAsync(System.Func> bytesReadCommand); - void CompleteDoubleQueuedCommandAsync(System.Func> doubleReadCommand); - void CompleteIntQueuedCommandAsync(System.Func> intReadCommand); - void CompleteLongQueuedCommandAsync(System.Func> longReadCommand); - void CompleteMultiBytesQueuedCommandAsync(System.Func> multiBytesReadCommand); - void CompleteMultiStringQueuedCommandAsync(System.Func>> multiStringReadCommand); - void CompleteRedisDataQueuedCommandAsync(System.Func> redisDataReadCommand); - void CompleteStringQueuedCommandAsync(System.Func> stringReadCommand); - void CompleteVoidQueuedCommandAsync(System.Func voidReadCommand); - } - - // Generated from `ServiceStack.Redis.Pipeline.IRedisQueueableOperation` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisQueueableOperation - { - void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func command, System.Action onSuccessCallback); - void QueueCommand(System.Func command); - void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func command, System.Action onSuccessCallback); - void QueueCommand(System.Func command); - void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func command, System.Action onSuccessCallback); - void QueueCommand(System.Func command); - void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func command, System.Action onSuccessCallback); - void QueueCommand(System.Func command); - void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func command, System.Action onSuccessCallback); - void QueueCommand(System.Func command); - void QueueCommand(System.Func> command, System.Action> onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func> command, System.Action> onSuccessCallback); - void QueueCommand(System.Func> command); - void QueueCommand(System.Func> command, System.Action> onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func> command, System.Action> onSuccessCallback); - void QueueCommand(System.Func> command); - void QueueCommand(System.Func> command, System.Action> onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func> command, System.Action> onSuccessCallback); - void QueueCommand(System.Func> command); - void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func command, System.Action onSuccessCallback); - void QueueCommand(System.Func command); - void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func command, System.Action onSuccessCallback); - void QueueCommand(System.Func command); - void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func command, System.Action onSuccessCallback); - void QueueCommand(System.Func command); - void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Func command, System.Action onSuccessCallback); - void QueueCommand(System.Func command); - void QueueCommand(System.Action command, System.Action onSuccessCallback, System.Action onErrorCallback); - void QueueCommand(System.Action command, System.Action onSuccessCallback); - void QueueCommand(System.Action command); - } - - // Generated from `ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisQueueableOperationAsync - { - void QueueCommand(System.Func command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func>> command, System.Action> onSuccessCallback = default(System.Action>), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - void QueueCommand(System.Func> command, System.Action onSuccessCallback = default(System.Action), System.Action onErrorCallback = default(System.Action)); - } - - } - } - namespace Web - { - // Generated from `ServiceStack.Web.IContentTypeReader` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IContentTypeReader - { - object DeserializeFromStream(string contentType, System.Type type, System.IO.Stream requestStream); - object DeserializeFromString(string contentType, System.Type type, string request); - ServiceStack.Web.StreamDeserializerDelegate GetStreamDeserializer(string contentType); - ServiceStack.Web.StreamDeserializerDelegateAsync GetStreamDeserializerAsync(string contentType); - } - - // Generated from `ServiceStack.Web.IContentTypeWriter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IContentTypeWriter - { - ServiceStack.Web.StreamSerializerDelegateAsync GetStreamSerializerAsync(string contentType); - System.Byte[] SerializeToBytes(ServiceStack.Web.IRequest req, object response); - System.Threading.Tasks.Task SerializeToStreamAsync(ServiceStack.Web.IRequest requestContext, object response, System.IO.Stream toStream); - string SerializeToString(ServiceStack.Web.IRequest req, object response); - } - - // Generated from `ServiceStack.Web.IContentTypes` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IContentTypes : ServiceStack.Web.IContentTypeWriter, ServiceStack.Web.IContentTypeReader - { - System.Collections.Generic.Dictionary ContentTypeFormats { get; } - string GetFormatContentType(string format); - void Register(string contentType, ServiceStack.Web.StreamSerializerDelegate streamSerializer, ServiceStack.Web.StreamDeserializerDelegate streamDeserializer); - void RegisterAsync(string contentType, ServiceStack.Web.StreamSerializerDelegateAsync responseSerializer, ServiceStack.Web.StreamDeserializerDelegateAsync streamDeserializer); - void Remove(string contentType); - } - - // Generated from `ServiceStack.Web.ICookies` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICookies - { - void AddPermanentCookie(string cookieName, string cookieValue, bool? secureOnly = default(bool?)); - void AddSessionCookie(string cookieName, string cookieValue, bool? secureOnly = default(bool?)); - void DeleteCookie(string cookieName); - } - - // Generated from `ServiceStack.Web.IExpirable` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IExpirable - { - System.DateTime? LastModified { get; } - } - - // Generated from `ServiceStack.Web.IHasHeaders` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasHeaders - { - System.Collections.Generic.Dictionary Headers { get; } - } - - // Generated from `ServiceStack.Web.IHasOptions` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasOptions - { - System.Collections.Generic.IDictionary Options { get; } - } - - // Generated from `ServiceStack.Web.IHasRequestFilter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasRequestFilter : ServiceStack.Web.IRequestFilterBase - { - void RequestFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto); - } - - // Generated from `ServiceStack.Web.IHasRequestFilterAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasRequestFilterAsync : ServiceStack.Web.IRequestFilterBase - { - System.Threading.Tasks.Task RequestFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto); - } - - // Generated from `ServiceStack.Web.IHasResponseFilter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasResponseFilter : ServiceStack.Web.IResponseFilterBase - { - void ResponseFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response); - } - - // Generated from `ServiceStack.Web.IHasResponseFilterAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasResponseFilterAsync : ServiceStack.Web.IResponseFilterBase - { - System.Threading.Tasks.Task ResponseFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response); - } - - // Generated from `ServiceStack.Web.IHttpError` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpError : ServiceStack.Web.IHttpResult, ServiceStack.Web.IHasOptions - { - string ErrorCode { get; } - string Message { get; } - string StackTrace { get; } - } - - // Generated from `ServiceStack.Web.IHttpFile` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpFile - { - System.Int64 ContentLength { get; } - string ContentType { get; } - string FileName { get; } - System.IO.Stream InputStream { get; } - string Name { get; } - } - - // Generated from `ServiceStack.Web.IHttpRequest` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpRequest : ServiceStack.Web.IRequest, ServiceStack.Configuration.IResolver - { - string Accept { get; } - string HttpMethod { get; } - ServiceStack.Web.IHttpResponse HttpResponse { get; } - string XForwardedFor { get; } - int? XForwardedPort { get; } - string XForwardedProtocol { get; } - string XRealIp { get; } - } - - // Generated from `ServiceStack.Web.IHttpResponse` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpResponse : ServiceStack.Web.IResponse - { - void ClearCookies(); - ServiceStack.Web.ICookies Cookies { get; } - void SetCookie(System.Net.Cookie cookie); - } - - // Generated from `ServiceStack.Web.IHttpResult` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpResult : ServiceStack.Web.IHasOptions - { - string ContentType { get; set; } - System.Collections.Generic.List Cookies { get; } - System.Collections.Generic.Dictionary Headers { get; } - int PaddingLength { get; set; } - ServiceStack.Web.IRequest RequestContext { get; set; } - object Response { get; set; } - ServiceStack.Web.IContentTypeWriter ResponseFilter { get; set; } - System.Func ResultScope { get; set; } - int Status { get; set; } - System.Net.HttpStatusCode StatusCode { get; set; } - string StatusDescription { get; set; } - } - - // Generated from `ServiceStack.Web.IPartialWriter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPartialWriter - { - bool IsPartialRequest { get; } - void WritePartialTo(ServiceStack.Web.IResponse response); - } - - // Generated from `ServiceStack.Web.IPartialWriterAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPartialWriterAsync - { - bool IsPartialRequest { get; } - System.Threading.Tasks.Task WritePartialToAsync(ServiceStack.Web.IResponse response, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Web.IRequest` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequest : ServiceStack.Configuration.IResolver - { - string AbsoluteUri { get; } - string[] AcceptTypes { get; } - string Authorization { get; } - System.Int64 ContentLength { get; } - string ContentType { get; } - System.Collections.Generic.IDictionary Cookies { get; } - object Dto { get; set; } - ServiceStack.Web.IHttpFile[] Files { get; } - System.Collections.Specialized.NameValueCollection FormData { get; } - string GetRawBody(); - System.Threading.Tasks.Task GetRawBodyAsync(); - bool HasExplicitResponseContentType { get; } - System.Collections.Specialized.NameValueCollection Headers { get; } - System.IO.Stream InputStream { get; } - bool IsLocal { get; } - bool IsSecureConnection { get; } - System.Collections.Generic.Dictionary Items { get; } - string OperationName { get; set; } - string OriginalPathInfo { get; } - object OriginalRequest { get; } - string PathInfo { get; } - System.Collections.Specialized.NameValueCollection QueryString { get; } - string RawUrl { get; } - string RemoteIp { get; } - ServiceStack.RequestAttributes RequestAttributes { get; set; } - ServiceStack.Web.IRequestPreferences RequestPreferences { get; } - ServiceStack.Web.IResponse Response { get; } - string ResponseContentType { get; set; } - System.Uri UrlReferrer { get; } - bool UseBufferedStream { get; set; } - string UserAgent { get; } - string UserHostAddress { get; } - string Verb { get; } - } - - // Generated from `ServiceStack.Web.IRequestFilterBase` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequestFilterBase - { - ServiceStack.Web.IRequestFilterBase Copy(); - int Priority { get; } - } - - // Generated from `ServiceStack.Web.IRequestLogger` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequestLogger - { - System.Func CurrentDateFn { get; set; } - bool EnableErrorTracking { get; set; } - bool EnableRequestBodyTracking { get; set; } - bool EnableResponseTracking { get; set; } - bool EnableSessionTracking { get; set; } - System.Type[] ExcludeRequestDtoTypes { get; set; } - System.Collections.Generic.List GetLatestLogs(int? take); - System.Type[] HideRequestBodyForRequestDtoTypes { get; set; } - System.Func IgnoreFilter { get; set; } - bool LimitToServiceRequests { get; set; } - void Log(ServiceStack.Web.IRequest request, object requestDto, object response, System.TimeSpan elapsed); - System.Action RequestLogFilter { get; set; } - string[] RequiredRoles { get; set; } - System.Func SkipLogging { get; set; } - } - - // Generated from `ServiceStack.Web.IRequestPreferences` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequestPreferences - { - bool AcceptsDeflate { get; } - bool AcceptsGzip { get; } - } - - // Generated from `ServiceStack.Web.IRequiresRequest` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequiresRequest - { - ServiceStack.Web.IRequest Request { get; set; } - } - - // Generated from `ServiceStack.Web.IRequiresRequestStream` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequiresRequestStream - { - System.IO.Stream RequestStream { get; set; } - } - - // Generated from `ServiceStack.Web.IResponse` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IResponse - { - void AddHeader(string name, string value); - void Close(); - System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string ContentType { get; set; } - object Dto { get; set; } - void End(); - void Flush(); - System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string GetHeader(string name); - bool HasStarted { get; } - bool IsClosed { get; } - System.Collections.Generic.Dictionary Items { get; } - bool KeepAlive { get; set; } - object OriginalResponse { get; } - System.IO.Stream OutputStream { get; } - void Redirect(string url); - void RemoveHeader(string name); - ServiceStack.Web.IRequest Request { get; } - void SetContentLength(System.Int64 contentLength); - int StatusCode { get; set; } - string StatusDescription { get; set; } - bool UseBufferedStream { get; set; } - } - - // Generated from `ServiceStack.Web.IResponseFilterBase` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IResponseFilterBase - { - ServiceStack.Web.IResponseFilterBase Copy(); - int Priority { get; } - } - - // Generated from `ServiceStack.Web.IRestPath` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRestPath - { - object CreateRequest(string pathInfo, System.Collections.Generic.Dictionary queryStringAndFormData, object fromInstance); - bool IsWildCardPath { get; } - System.Type RequestType { get; } - } - - // Generated from `ServiceStack.Web.IServiceController` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceController : ServiceStack.Web.IServiceExecutor - { - object Execute(object requestDto, ServiceStack.Web.IRequest request, bool applyFilters); - object Execute(object requestDto, ServiceStack.Web.IRequest request); - object Execute(object requestDto); - object Execute(ServiceStack.Web.IRequest request, bool applyFilters); - object ExecuteMessage(ServiceStack.Messaging.IMessage mqMessage); - object ExecuteMessage(ServiceStack.Messaging.IMessage dto, ServiceStack.Web.IRequest request); - System.Threading.Tasks.Task GatewayExecuteAsync(object requestDto, ServiceStack.Web.IRequest req, bool applyFilters); - ServiceStack.Web.IRestPath GetRestPathForRequest(string httpMethod, string pathInfo); - } - - // Generated from `ServiceStack.Web.IServiceExecutor` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceExecutor - { - System.Threading.Tasks.Task ExecuteAsync(object requestDto, ServiceStack.Web.IRequest request); - } - - // Generated from `ServiceStack.Web.IServiceGatewayFactory` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceGatewayFactory - { - ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest request); - } - - // Generated from `ServiceStack.Web.IServiceRoutes` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceRoutes - { - ServiceStack.Web.IServiceRoutes Add(string restPath, string verbs); - ServiceStack.Web.IServiceRoutes Add(string restPath); - ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, string summary, string notes, string matches); - ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, string summary, string notes); - ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, int priority); - ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs); - } - - // Generated from `ServiceStack.Web.IServiceRunner` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceRunner - { - object Process(ServiceStack.Web.IRequest requestContext, object instance, object request); - } - - // Generated from `ServiceStack.Web.IServiceRunner<>` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceRunner : ServiceStack.Web.IServiceRunner - { - object Execute(ServiceStack.Web.IRequest req, object instance, ServiceStack.Messaging.IMessage request); - System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, object instance, TRequest requestDto); - object ExecuteOneWay(ServiceStack.Web.IRequest req, object instance, TRequest requestDto); - System.Threading.Tasks.Task HandleExceptionAsync(ServiceStack.Web.IRequest req, TRequest requestDto, System.Exception ex, object instance); - object OnAfterExecute(ServiceStack.Web.IRequest req, object response, object service); - void OnBeforeExecute(ServiceStack.Web.IRequest req, TRequest request, object service); - } - - // Generated from `ServiceStack.Web.IStreamWriter` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IStreamWriter - { - void WriteTo(System.IO.Stream responseStream); - } - - // Generated from `ServiceStack.Web.IStreamWriterAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IStreamWriterAsync - { - System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Web.StreamDeserializerDelegate` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object StreamDeserializerDelegate(System.Type type, System.IO.Stream fromStream); - - // Generated from `ServiceStack.Web.StreamDeserializerDelegateAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate System.Threading.Tasks.Task StreamDeserializerDelegateAsync(System.Type type, System.IO.Stream fromStream); - - // Generated from `ServiceStack.Web.StreamSerializerDelegate` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void StreamSerializerDelegate(ServiceStack.Web.IRequest req, object dto, System.IO.Stream outputStream); - - // Generated from `ServiceStack.Web.StreamSerializerDelegateAsync` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate System.Threading.Tasks.Task StreamSerializerDelegateAsync(ServiceStack.Web.IRequest req, object dto, System.IO.Stream outputStream); - - // Generated from `ServiceStack.Web.StringDeserializerDelegate` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object StringDeserializerDelegate(string contents, System.Type type); - - // Generated from `ServiceStack.Web.StringSerializerDelegate` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate string StringSerializerDelegate(ServiceStack.Web.IRequest req, object dto); - - // Generated from `ServiceStack.Web.TextDeserializerDelegate` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object TextDeserializerDelegate(System.Type type, string dto); - - // Generated from `ServiceStack.Web.TextSerializerDelegate` in `ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate string TextSerializerDelegate(object dto); - - } -} -namespace System -{ - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null'. */ - - } - } -} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/5.11.0/ServiceStack.Interfaces.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.cs b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.cs deleted file mode 100644 index 228cdcfdf09..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.cs +++ /dev/null @@ -1,351 +0,0 @@ -// This file contains auto-generated code. - -namespace ServiceStack -{ - namespace OrmLite - { - // Generated from `ServiceStack.OrmLite.SqlServer2008Dialect` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlServer2008Dialect - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2008OrmLiteDialectProvider Instance { get => throw null; } - public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.SqlServer2012Dialect` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlServer2012Dialect - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2012OrmLiteDialectProvider Instance { get => throw null; } - public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.SqlServer2014Dialect` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlServer2014Dialect - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2014OrmLiteDialectProvider Instance { get => throw null; } - public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.SqlServer2016Dialect` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlServer2016Dialect - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2016OrmLiteDialectProvider Instance { get => throw null; } - public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.SqlServer2017Dialect` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlServer2017Dialect - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2017OrmLiteDialectProvider Instance { get => throw null; } - public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.SqlServer2019Dialect` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlServer2019Dialect - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2019OrmLiteDialectProvider Instance { get => throw null; } - public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.SqlServerDialect` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlServerDialect - { - public static ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider Instance { get => throw null; } - public static ServiceStack.OrmLite.IOrmLiteDialectProvider Provider { get => throw null; } - } - - namespace SqlServer - { - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2008OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServer2008OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2008OrmLiteDialectProvider Instance; - public override string SqlConcat(System.Collections.Generic.IEnumerable args) => throw null; - public SqlServer2008OrmLiteDialectProvider() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2012OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServer2012OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider - { - public override void AppendFieldCondition(System.Text.StringBuilder sqlFilter, ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDbCommand cmd) => throw null; - public override void AppendNullFieldCondition(System.Text.StringBuilder sqlFilter, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public override bool DoesSequenceExist(System.Data.IDbCommand dbCmd, string sequenceName) => throw null; - public override System.Threading.Tasks.Task DoesSequenceExistAsync(System.Data.IDbCommand dbCmd, string sequenceName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected override string GetAutoIncrementDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public override string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static ServiceStack.OrmLite.SqlServer.SqlServer2012OrmLiteDialectProvider Instance; - public override System.Collections.Generic.List SequenceList(System.Type tableType) => throw null; - protected override bool ShouldSkipInsert(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public SqlServer2012OrmLiteDialectProvider() => throw null; - protected override bool SupportsSequences(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public override string ToCreateSequenceStatement(System.Type tableType, string sequenceName) => throw null; - public override System.Collections.Generic.List ToCreateSequenceStatements(System.Type tableType) => throw null; - public override string ToCreateTableStatement(System.Type tableType) => throw null; - public override string ToSelectStatement(ServiceStack.OrmLite.ModelDefinition modelDef, string selectExpression, string bodyExpression, string orderByExpression = default(string), int? offset = default(int?), int? rows = default(int?)) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2014OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServer2014OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServer2012OrmLiteDialectProvider - { - public override string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static ServiceStack.OrmLite.SqlServer.SqlServer2014OrmLiteDialectProvider Instance; - public SqlServer2014OrmLiteDialectProvider() => throw null; - public override string ToCreateTableStatement(System.Type tableType) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2016Expression<>` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServer2016Expression : ServiceStack.OrmLite.SqlServer.SqlServerExpression - { - public SqlServer2016Expression(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) : base(default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - protected override object VisitSqlMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2016OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServer2016OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServer2014OrmLiteDialectProvider - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2016OrmLiteDialectProvider Instance; - public override ServiceStack.OrmLite.SqlExpression SqlExpression() => throw null; - public SqlServer2016OrmLiteDialectProvider() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2017OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServer2017OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServer2016OrmLiteDialectProvider - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2017OrmLiteDialectProvider Instance; - public SqlServer2017OrmLiteDialectProvider() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServer2019OrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServer2019OrmLiteDialectProvider : ServiceStack.OrmLite.SqlServer.SqlServer2017OrmLiteDialectProvider - { - public static ServiceStack.OrmLite.SqlServer.SqlServer2019OrmLiteDialectProvider Instance; - public SqlServer2019OrmLiteDialectProvider() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServerExpression<>` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerExpression : ServiceStack.OrmLite.SqlExpression - { - protected override void ConvertToPlaceholderAndParameter(ref object right) => throw null; - public override string GetSubstringSql(object quotedColumn, int startIndex, int? length = default(int?)) => throw null; - public override void PrepareUpdateStatement(System.Data.IDbCommand dbCmd, T item, bool excludeDefaults = default(bool)) => throw null; - public SqlServerExpression(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) : base(default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public override string ToDeleteRowStatement() => throw null; - protected override ServiceStack.OrmLite.PartialSqlString ToLengthPartialString(object arg) => throw null; - protected override void VisitFilter(string operand, object originalLeft, object originalRight, ref object left, ref object right) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerOrmLiteDialectProvider : ServiceStack.OrmLite.OrmLiteDialectProviderBase - { - public override System.Data.IDbConnection CreateConnection(string connectionString, System.Collections.Generic.Dictionary options) => throw null; - public override System.Data.IDbDataParameter CreateParam() => throw null; - public override void DisableForeignKeysCheck(System.Data.IDbCommand cmd) => throw null; - public override System.Threading.Tasks.Task DisableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void DisableIdentityInsert(System.Data.IDbCommand cmd) => throw null; - public override System.Threading.Tasks.Task DisableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override bool DoesColumnExist(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string)) => throw null; - public override System.Threading.Tasks.Task DoesColumnExistAsync(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override bool DoesSchemaExist(System.Data.IDbCommand dbCmd, string schemaName) => throw null; - public override System.Threading.Tasks.Task DoesSchemaExistAsync(System.Data.IDbCommand dbCmd, string schemaName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override bool DoesTableExist(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string)) => throw null; - public override System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void EnableForeignKeysCheck(System.Data.IDbCommand cmd) => throw null; - public override System.Threading.Tasks.Task EnableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void EnableIdentityInsert(System.Data.IDbCommand cmd) => throw null; - public override System.Threading.Tasks.Task EnableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task ExecuteScalarAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override string GetAutoIdDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - protected virtual string GetAutoIncrementDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public override string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public override string GetDropForeignKeyConstraints(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public override string GetForeignKeyOnDeleteClause(ServiceStack.OrmLite.ForeignKeyConstraint foreignKey) => throw null; - public override string GetForeignKeyOnUpdateClause(ServiceStack.OrmLite.ForeignKeyConstraint foreignKey) => throw null; - public override string GetLoadChildrenSubSelect(ServiceStack.OrmLite.SqlExpression expr) => throw null; - public override string GetQuotedValue(string paramValue) => throw null; - public override bool HasInsertReturnValues(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public static ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider Instance; - public override System.Threading.Tasks.Task OpenAsync(System.Data.IDbConnection db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void PrepareInsertRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args) => throw null; - public override void PrepareParameterizedInsertStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection), System.Func shouldInclude = default(System.Func)) => throw null; - public override System.Threading.Tasks.Task ReadAsync(System.Data.IDataReader reader, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task> ReaderEach(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task ReaderEach(System.Data.IDataReader reader, System.Action fn, Return source, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task ReaderRead(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected string Sequence(string schema, string sequence) => throw null; - protected virtual bool ShouldReturnOnInsert(ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - protected override bool ShouldSkipInsert(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public override string SqlBool(bool value) => throw null; - public override string SqlCast(object fieldOrValue, string castAs) => throw null; - public override string SqlCurrency(string fieldOrValue, string currencySymbol) => throw null; - public override ServiceStack.OrmLite.SqlExpression SqlExpression() => throw null; - public override string SqlLimit(int? offset = default(int?), int? rows = default(int?)) => throw null; - public override string SqlRandom { get => throw null; } - public SqlServerOrmLiteDialectProvider() => throw null; - protected virtual bool SupportsSequences(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public override string ToAddColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public override string ToAlterColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public override string ToChangeColumnNameStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef, string oldColumnName) => throw null; - public override string ToCreateSchemaStatement(string schemaName) => throw null; - public override string ToInsertRowStatement(System.Data.IDbCommand cmd, object objWithProperties, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)) => throw null; - public override string ToSelectStatement(ServiceStack.OrmLite.ModelDefinition modelDef, string selectExpression, string bodyExpression, string orderByExpression = default(string), int? offset = default(int?), int? rows = default(int?)) => throw null; - public override string ToTableNamesStatement(string schema) => throw null; - public override string ToTableNamesWithRowCountsStatement(bool live, string schema) => throw null; - protected System.Data.SqlClient.SqlDataReader Unwrap(System.Data.IDataReader reader) => throw null; - protected System.Data.SqlClient.SqlConnection Unwrap(System.Data.IDbConnection db) => throw null; - protected System.Data.SqlClient.SqlCommand Unwrap(System.Data.IDbCommand cmd) => throw null; - public static string UseAliasesOrStripTablePrefixes(string selectExpression) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.SqlServerTableHint` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerTableHint - { - public static ServiceStack.OrmLite.JoinFormatDelegate NoLock; - public static ServiceStack.OrmLite.JoinFormatDelegate ReadCommitted; - public static ServiceStack.OrmLite.JoinFormatDelegate ReadPast; - public static ServiceStack.OrmLite.JoinFormatDelegate ReadUncommitted; - public static ServiceStack.OrmLite.JoinFormatDelegate RepeatableRead; - public static ServiceStack.OrmLite.JoinFormatDelegate Serializable; - public SqlServerTableHint() => throw null; - } - - namespace Converters - { - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlJsonAttribute` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlJsonAttribute : System.Attribute - { - public SqlJsonAttribute() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerBoolConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerBoolConverter : ServiceStack.OrmLite.Converters.BoolConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public SqlServerBoolConverter() => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerByteArrayConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerByteArrayConverter : ServiceStack.OrmLite.Converters.ByteArrayConverter - { - public override string ColumnDefinition { get => throw null; } - public SqlServerByteArrayConverter() => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerDateTime2Converter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerDateTime2Converter : ServiceStack.OrmLite.SqlServer.Converters.SqlServerDateTimeConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public SqlServerDateTime2Converter() => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerDateTimeConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerDateTimeConverter : ServiceStack.OrmLite.Converters.DateTimeConverter - { - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public SqlServerDateTimeConverter() => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerDecimalConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerDecimalConverter : ServiceStack.OrmLite.Converters.DecimalConverter - { - public SqlServerDecimalConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerDoubleConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerDoubleConverter : ServiceStack.OrmLite.Converters.DoubleConverter - { - public override string ColumnDefinition { get => throw null; } - public SqlServerDoubleConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerFloatConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerFloatConverter : ServiceStack.OrmLite.Converters.FloatConverter - { - public override string ColumnDefinition { get => throw null; } - public SqlServerFloatConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerGuidConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerGuidConverter : ServiceStack.OrmLite.Converters.GuidConverter - { - public override string ColumnDefinition { get => throw null; } - public SqlServerGuidConverter() => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerJsonStringConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerJsonStringConverter : ServiceStack.OrmLite.SqlServer.Converters.SqlServerStringConverter - { - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public SqlServerJsonStringConverter() => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerRowVersionConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerRowVersionConverter : ServiceStack.OrmLite.Converters.RowVersionConverter - { - public override string ColumnDefinition { get => throw null; } - public SqlServerRowVersionConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerSByteConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerSByteConverter : ServiceStack.OrmLite.Converters.SByteConverter - { - public override System.Data.DbType DbType { get => throw null; } - public SqlServerSByteConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerStringConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerStringConverter : ServiceStack.OrmLite.Converters.StringConverter - { - public override string GetColumnDefinition(int? stringLength) => throw null; - public override void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType) => throw null; - public override string MaxColumnDefinition { get => throw null; } - public override int MaxVarCharLength { get => throw null; } - public SqlServerStringConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerTimeConverter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerTimeConverter : ServiceStack.OrmLite.OrmLiteConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public int? Precision { get => throw null; set => throw null; } - public SqlServerTimeConverter() => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerUInt16Converter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerUInt16Converter : ServiceStack.OrmLite.Converters.UInt16Converter - { - public override System.Data.DbType DbType { get => throw null; } - public SqlServerUInt16Converter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerUInt32Converter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerUInt32Converter : ServiceStack.OrmLite.Converters.UInt32Converter - { - public override System.Data.DbType DbType { get => throw null; } - public SqlServerUInt32Converter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlServer.Converters.SqlServerUInt64Converter` in `ServiceStack.OrmLite.SqlServer, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlServerUInt64Converter : ServiceStack.OrmLite.Converters.UInt64Converter - { - public override System.Data.DbType DbType { get => throw null; } - public SqlServerUInt64Converter() => throw null; - } - - } - } - } -} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.csproj deleted file mode 100644 index 9ebcc948a8e..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/5.11.0/ServiceStack.OrmLite.SqlServer.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - - - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.cs b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.cs deleted file mode 100644 index 4510d61e49e..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.cs +++ /dev/null @@ -1,3420 +0,0 @@ -// This file contains auto-generated code. - -namespace ServiceStack -{ - namespace OrmLite - { - // Generated from `ServiceStack.OrmLite.AliasNamingStrategy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AliasNamingStrategy : ServiceStack.OrmLite.OrmLiteNamingStrategyBase - { - public AliasNamingStrategy() => throw null; - public System.Collections.Generic.Dictionary ColumnAliases; - public override string GetColumnName(string name) => throw null; - public override string GetTableName(string name) => throw null; - public System.Collections.Generic.Dictionary TableAliases; - public ServiceStack.OrmLite.INamingStrategy UseNamingStrategy { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.CaptureSqlFilter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CaptureSqlFilter : ServiceStack.OrmLite.OrmLiteResultsFilter - { - public CaptureSqlFilter() : base(default(System.Collections.IEnumerable)) => throw null; - public System.Collections.Generic.List SqlCommandHistory { get => throw null; set => throw null; } - public System.Collections.Generic.List SqlStatements { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.ColumnSchema` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ColumnSchema - { - 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 CollationType { get => throw null; set => throw null; } - public string ColumnDefinition { get => throw null; } - public string ColumnName { get => throw null; set => throw null; } - public int ColumnOrdinal { get => throw null; set => throw null; } - public ColumnSchema() => 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 object DefaultValue { get => throw null; set => 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 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 IsRowVersion { get => throw null; set => throw null; } - public bool IsUnique { get => throw null; set => throw null; } - public int NumericPrecision { get => throw null; set => throw null; } - public int NumericScale { get => throw null; set => throw null; } - public System.Type ProviderSpecificDataType { get => throw null; set => throw null; } - public int ProviderType { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.OrmLite.ConflictResolution` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConflictResolution - { - public ConflictResolution() => throw null; - public const string Ignore = default; - } - - // Generated from `ServiceStack.OrmLite.DbDataParameterExtensions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DbDataParameterExtensions - { - public static System.Data.IDbDataParameter AddParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef, System.Action paramFilter) => throw null; - public static System.Data.IDbDataParameter AddQueryParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static System.Data.IDbDataParameter AddUpdateParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static System.Data.IDbDataParameter CreateParam(this System.Data.IDbConnection db, string name, object value = default(object), System.Type fieldType = default(System.Type), System.Data.DbType? dbType = default(System.Data.DbType?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?), int? size = default(int?)) => throw null; - public static System.Data.IDbDataParameter CreateParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string name, object value = default(object), System.Type fieldType = default(System.Type), System.Data.DbType? dbType = default(System.Data.DbType?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?), int? size = default(int?)) => throw null; - public static string GetInsertParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static string GetUpdateParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDbCommand dbCmd, object value, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - } - - // Generated from `ServiceStack.OrmLite.DbScripts` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DbScripts : ServiceStack.Script.ScriptMethods - { - public ServiceStack.Data.IDbConnectionFactory DbFactory { get => throw null; set => throw null; } - public DbScripts() => throw null; - public System.Data.IDbConnection OpenDbConnection(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary options) => throw null; - public string[] dbColumnNames(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; - public string[] dbColumnNames(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; - public ServiceStack.OrmLite.ColumnSchema[] dbColumns(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; - public ServiceStack.OrmLite.ColumnSchema[] dbColumns(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; - public System.Int64 dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Int64 dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public System.Int64 dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public ServiceStack.OrmLite.ColumnSchema[] dbDesc(ServiceStack.Script.ScriptScopeContext scope, string sql, object options) => throw null; - public ServiceStack.OrmLite.ColumnSchema[] dbDesc(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public int dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public int dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public int dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public bool dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public bool dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public bool dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Collections.Generic.List dbNamedConnections() => throw null; - public object dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public object dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public object dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public object dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public object dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public object dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public object dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public object dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public object dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Collections.Generic.List dbTableNames(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Collections.Generic.List dbTableNames(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; - public System.Collections.Generic.List dbTableNames(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.List> dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Collections.Generic.List> dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; - public System.Collections.Generic.List> dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool isUnsafeSql(string sql) => throw null; - public bool isUnsafeSqlFragment(string sql) => throw null; - public string ormliteVar(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string sqlBool(ServiceStack.Script.ScriptScopeContext scope, bool value) => throw null; - public string sqlCast(ServiceStack.Script.ScriptScopeContext scope, object fieldOrValue, string castAs) => throw null; - public string sqlConcat(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable values) => throw null; - public string sqlCurrency(ServiceStack.Script.ScriptScopeContext scope, string fieldOrValue, string symbol) => throw null; - public string sqlCurrency(ServiceStack.Script.ScriptScopeContext scope, string fieldOrValue) => throw null; - public string sqlFalse(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string sqlLimit(ServiceStack.Script.ScriptScopeContext scope, int? offset, int? limit) => throw null; - public string sqlLimit(ServiceStack.Script.ScriptScopeContext scope, int? limit) => throw null; - public string sqlOrderByFields(ServiceStack.Script.ScriptScopeContext scope, string orderBy) => throw null; - public string sqlQuote(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string sqlSkip(ServiceStack.Script.ScriptScopeContext scope, int? offset) => throw null; - public string sqlTake(ServiceStack.Script.ScriptScopeContext scope, int? limit) => throw null; - public string sqlTrue(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string sqlVerifyFragment(string sql) => throw null; - public ServiceStack.Script.IgnoreResult useDb(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary dbConnOptions) => throw null; - } - - // Generated from `ServiceStack.OrmLite.DbScriptsAsync` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DbScriptsAsync : ServiceStack.Script.ScriptMethods - { - public ServiceStack.Data.IDbConnectionFactory DbFactory { get => throw null; set => throw null; } - public DbScriptsAsync() => throw null; - public System.Threading.Tasks.Task OpenDbConnectionAsync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary options) => throw null; - public System.Threading.Tasks.Task dbColumnNames(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; - public System.Threading.Tasks.Task dbColumnNames(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; - public string[] dbColumnNamesSync(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; - public string[] dbColumnNamesSync(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; - public System.Threading.Tasks.Task dbColumns(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; - public System.Threading.Tasks.Task dbColumns(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; - public ServiceStack.OrmLite.ColumnSchema[] dbColumnsSync(ServiceStack.Script.ScriptScopeContext scope, string tableName, object options) => throw null; - public ServiceStack.OrmLite.ColumnSchema[] dbColumnsSync(ServiceStack.Script.ScriptScopeContext scope, string tableName) => throw null; - public System.Threading.Tasks.Task dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Threading.Tasks.Task dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task dbCount(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Int64 dbCountSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Int64 dbCountSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public System.Int64 dbCountSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Threading.Tasks.Task dbDesc(ServiceStack.Script.ScriptScopeContext scope, string sql, object options) => throw null; - public System.Threading.Tasks.Task dbDesc(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public ServiceStack.OrmLite.ColumnSchema[] dbDescSync(ServiceStack.Script.ScriptScopeContext scope, string sql, object options) => throw null; - public ServiceStack.OrmLite.ColumnSchema[] dbDescSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Threading.Tasks.Task dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Threading.Tasks.Task dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task dbExec(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public int dbExecSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public int dbExecSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public int dbExecSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Threading.Tasks.Task dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Threading.Tasks.Task dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task dbExists(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public bool dbExistsSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public bool dbExistsSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public bool dbExistsSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Collections.Generic.List dbNamedConnections() => throw null; - public System.Threading.Tasks.Task dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Threading.Tasks.Task dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task dbScalar(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public object dbScalarSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public object dbScalarSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public object dbScalarSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Threading.Tasks.Task dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Threading.Tasks.Task dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task dbSelect(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public object dbSelectSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public object dbSelectSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public object dbSelectSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Threading.Tasks.Task dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Threading.Tasks.Task dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task dbSingle(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public object dbSingleSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args, object options) => throw null; - public object dbSingleSync(ServiceStack.Script.ScriptScopeContext scope, string sql, System.Collections.Generic.Dictionary args) => throw null; - public object dbSingleSync(ServiceStack.Script.ScriptScopeContext scope, string sql) => throw null; - public System.Threading.Tasks.Task dbTableNames(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Threading.Tasks.Task dbTableNames(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task dbTableNames(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.List dbTableNamesSync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Collections.Generic.List dbTableNamesSync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; - public System.Collections.Generic.List dbTableNamesSync(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Threading.Tasks.Task dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Threading.Tasks.Task dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; - public System.Threading.Tasks.Task dbTableNamesWithRowCounts(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.List> dbTableNamesWithRowCountsSync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args, object options) => throw null; - public System.Collections.Generic.List> dbTableNamesWithRowCountsSync(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary args) => throw null; - public System.Collections.Generic.List> dbTableNamesWithRowCountsSync(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool isUnsafeSql(string sql) => throw null; - public bool isUnsafeSqlFragment(string sql) => throw null; - public string ormliteVar(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string sqlBool(ServiceStack.Script.ScriptScopeContext scope, bool value) => throw null; - public string sqlCast(ServiceStack.Script.ScriptScopeContext scope, object fieldOrValue, string castAs) => throw null; - public string sqlConcat(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.IEnumerable values) => throw null; - public string sqlCurrency(ServiceStack.Script.ScriptScopeContext scope, string fieldOrValue, string symbol) => throw null; - public string sqlCurrency(ServiceStack.Script.ScriptScopeContext scope, string fieldOrValue) => throw null; - public string sqlFalse(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string sqlLimit(ServiceStack.Script.ScriptScopeContext scope, int? offset, int? limit) => throw null; - public string sqlLimit(ServiceStack.Script.ScriptScopeContext scope, int? limit) => throw null; - public string sqlOrderByFields(ServiceStack.Script.ScriptScopeContext scope, string orderBy) => throw null; - public string sqlQuote(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string sqlSkip(ServiceStack.Script.ScriptScopeContext scope, int? offset) => throw null; - public string sqlTake(ServiceStack.Script.ScriptScopeContext scope, int? limit) => throw null; - public string sqlTrue(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string sqlVerifyFragment(string sql) => throw null; - public ServiceStack.Script.IgnoreResult useDb(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.Dictionary dbConnOptions) => throw null; - } - - // Generated from `ServiceStack.OrmLite.DbTypes<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DbTypes where TDialect : ServiceStack.OrmLite.IOrmLiteDialectProvider - { - public System.Collections.Generic.Dictionary ColumnDbTypeMap; - public System.Collections.Generic.Dictionary ColumnTypeMap; - public System.Data.DbType DbType; - public DbTypes() => throw null; - public void Set(System.Data.DbType dbType, string fieldDefinition) => throw null; - public bool ShouldQuoteValue; - public string TextDefinition; - } - - // Generated from `ServiceStack.OrmLite.DictionaryRow` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct DictionaryRow : ServiceStack.OrmLite.IDynamicRow>, ServiceStack.OrmLite.IDynamicRow - { - public DictionaryRow(System.Type type, System.Collections.Generic.Dictionary fields) => throw null; - // Stub generator skipped constructor - public System.Collections.Generic.Dictionary Fields { get => throw null; } - public System.Type Type { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.DynamicRowUtils` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DynamicRowUtils - { - } - - // Generated from `ServiceStack.OrmLite.EnumMemberAccess` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EnumMemberAccess : ServiceStack.OrmLite.PartialSqlString - { - public EnumMemberAccess(string text, System.Type enumType) : base(default(string)) => throw null; - public System.Type EnumType { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.FieldDefinition` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FieldDefinition - { - public string Alias { get => throw null; set => throw null; } - public bool AutoId { get => throw null; set => throw null; } - public bool AutoIncrement { get => throw null; set => throw null; } - public string BelongToModelName { get => throw null; set => throw null; } - public string CheckConstraint { get => throw null; set => throw null; } - public ServiceStack.OrmLite.FieldDefinition Clone(System.Action modifier = default(System.Action)) => throw null; - public System.Type ColumnType { get => throw null; } - public string ComputeExpression { get => throw null; set => throw null; } - public string CustomFieldDefinition { get => throw null; set => throw null; } - public string CustomInsert { get => throw null; set => throw null; } - public string CustomSelect { get => throw null; set => throw null; } - public string CustomUpdate { get => throw null; set => throw null; } - public string DefaultValue { get => throw null; set => throw null; } - public FieldDefinition() => throw null; - public int? FieldLength { get => throw null; set => throw null; } - public string FieldName { get => throw null; } - public System.Type FieldType { get => throw null; set => throw null; } - public object FieldTypeDefaultValue { get => throw null; set => throw null; } - public ServiceStack.OrmLite.ForeignKeyConstraint ForeignKey { get => throw null; set => throw null; } - public string GetQuotedName(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - public string GetQuotedValue(object fromInstance, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public object GetValue(object instance) => throw null; - public ServiceStack.GetMemberDelegate GetValueFn { get => throw null; set => throw null; } - public bool IgnoreOnInsert { get => throw null; set => throw null; } - public bool IgnoreOnUpdate { get => throw null; set => throw null; } - public string IndexName { get => throw null; set => throw null; } - public bool IsClustered { get => throw null; set => throw null; } - public bool IsComputed { get => throw null; set => throw null; } - public bool IsIndexed { get => throw null; set => throw null; } - public bool IsNonClustered { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; set => throw null; } - public bool IsPersisted { get => throw null; set => throw null; } - public bool IsPrimaryKey { get => throw null; set => throw null; } - public bool IsRefType { get => throw null; set => throw null; } - public bool IsReference { get => throw null; set => throw null; } - public bool IsRowVersion { get => throw null; set => throw null; } - public bool IsSelfRefField(string name) => throw null; - public bool IsSelfRefField(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public bool IsUniqueConstraint { get => throw null; set => throw null; } - public bool IsUniqueIndex { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public System.Reflection.PropertyInfo PropertyInfo { get => throw null; set => throw null; } - public bool RequiresAlias { get => throw null; } - public bool ReturnOnInsert { get => throw null; set => throw null; } - public int? Scale { get => throw null; set => throw null; } - public string Sequence { get => throw null; set => throw null; } - public void SetValue(object instance, object value) => throw null; - public ServiceStack.SetMemberDelegate SetValueFn { get => throw null; set => throw null; } - public bool ShouldSkipDelete() => throw null; - public bool ShouldSkipInsert() => throw null; - public bool ShouldSkipUpdate() => throw null; - public override string ToString() => throw null; - public System.Type TreatAsType { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.ForeignKeyConstraint` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ForeignKeyConstraint - { - public ForeignKeyConstraint(System.Type type, string onDelete = default(string), string onUpdate = default(string), string foreignKeyName = default(string)) => throw null; - public string ForeignKeyName { get => throw null; set => throw null; } - public string GetForeignKeyName(ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.ModelDefinition refModelDef, ServiceStack.OrmLite.INamingStrategy namingStrategy, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public string OnDelete { get => throw null; set => throw null; } - public string OnUpdate { get => throw null; set => throw null; } - public System.Type ReferenceType { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.GetValueDelegate` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object GetValueDelegate(int i); - - // Generated from `ServiceStack.OrmLite.IDynamicRow` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDynamicRow - { - System.Type Type { get; } - } - - // Generated from `ServiceStack.OrmLite.IDynamicRow<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDynamicRow : ServiceStack.OrmLite.IDynamicRow - { - T Fields { get; } - } - - // Generated from `ServiceStack.OrmLite.IHasColumnDefinitionLength` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasColumnDefinitionLength - { - string GetColumnDefinition(int? length); - } - - // Generated from `ServiceStack.OrmLite.IHasColumnDefinitionPrecision` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasColumnDefinitionPrecision - { - string GetColumnDefinition(int? precision, int? scale); - } - - // Generated from `ServiceStack.OrmLite.IHasDialectProvider` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasDialectProvider - { - ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get; } - } - - // Generated from `ServiceStack.OrmLite.IHasUntypedSqlExpression` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasUntypedSqlExpression - { - ServiceStack.OrmLite.IUntypedSqlExpression GetUntyped(); - } - - // Generated from `ServiceStack.OrmLite.INamingStrategy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface INamingStrategy - { - string ApplyNameRestrictions(string name); - string GetColumnName(string name); - string GetSchemaName(string name); - string GetSchemaName(ServiceStack.OrmLite.ModelDefinition modelDef); - string GetSequenceName(string modelName, string fieldName); - string GetTableName(string name); - string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef); - } - - // Generated from `ServiceStack.OrmLite.IOrmLiteConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOrmLiteConverter - { - string ColumnDefinition { get; } - System.Data.DbType DbType { get; } - ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get; set; } - object FromDbValue(System.Type fieldType, object value); - object GetValue(System.Data.IDataReader reader, int columnIndex, object[] values); - void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType); - object ToDbValue(System.Type fieldType, object value); - string ToQuotedString(System.Type fieldType, object value); - } - - // Generated from `ServiceStack.OrmLite.IOrmLiteDialectProvider` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOrmLiteDialectProvider - { - System.Data.IDbConnection CreateConnection(string filePath, System.Collections.Generic.Dictionary options); - System.Data.IDbDataParameter CreateParam(); - System.Data.IDbCommand CreateParameterizedDeleteStatement(System.Data.IDbConnection connection, object objWithProperties); - void DisableForeignKeysCheck(System.Data.IDbCommand cmd); - System.Threading.Tasks.Task DisableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void DisableIdentityInsert(System.Data.IDbCommand cmd); - System.Threading.Tasks.Task DisableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - bool DoesColumnExist(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string)); - System.Threading.Tasks.Task DoesColumnExistAsync(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - bool DoesSchemaExist(System.Data.IDbCommand dbCmd, string schema); - System.Threading.Tasks.Task DoesSchemaExistAsync(System.Data.IDbCommand dbCmd, string schema, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - bool DoesSequenceExist(System.Data.IDbCommand dbCmd, string sequenceName); - System.Threading.Tasks.Task DoesSequenceExistAsync(System.Data.IDbCommand dbCmd, string sequenceName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - bool DoesTableExist(System.Data.IDbConnection db, string tableName, string schema = default(string)); - bool DoesTableExist(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string)); - System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbConnection db, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void DropColumn(System.Data.IDbConnection db, System.Type modelType, string columnName); - void EnableForeignKeysCheck(System.Data.IDbCommand cmd); - System.Threading.Tasks.Task EnableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void EnableIdentityInsert(System.Data.IDbCommand cmd); - System.Threading.Tasks.Task EnableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string EscapeWildcards(string value); - ServiceStack.OrmLite.IOrmLiteExecFilter ExecFilter { get; set; } - System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ExecuteScalarAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - object FromDbRowVersion(System.Type fieldType, object value); - object FromDbValue(object value, System.Type type); - string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef); - string GetColumnNames(ServiceStack.OrmLite.ModelDefinition modelDef); - ServiceStack.OrmLite.SelectItem[] GetColumnNames(ServiceStack.OrmLite.ModelDefinition modelDef, string tablePrefix); - ServiceStack.OrmLite.IOrmLiteConverter GetConverter(System.Type type); - ServiceStack.OrmLite.IOrmLiteConverter GetConverterBestMatch(System.Type type); - ServiceStack.OrmLite.IOrmLiteConverter GetConverterBestMatch(ServiceStack.OrmLite.FieldDefinition fieldDef); - string GetDefaultValue(System.Type tableType, string fieldName); - string GetDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef); - string GetDropForeignKeyConstraints(ServiceStack.OrmLite.ModelDefinition modelDef); - System.Collections.Generic.Dictionary GetFieldDefinitionMap(ServiceStack.OrmLite.ModelDefinition modelDef); - object GetFieldValue(System.Type fieldType, object value); - object GetFieldValue(ServiceStack.OrmLite.FieldDefinition fieldDef, object value); - System.Int64 GetLastInsertId(System.Data.IDbCommand command); - string GetLastInsertIdSqlSuffix(); - string GetLoadChildrenSubSelect(ServiceStack.OrmLite.SqlExpression expr); - object GetParamValue(object value, System.Type fieldType); - string GetQuotedColumnName(string columnName); - string GetQuotedName(string name, string schema); - string GetQuotedName(string name); - string GetQuotedTableName(string tableName, string schema, bool useStrategy); - string GetQuotedTableName(string tableName, string schema = default(string)); - string GetQuotedTableName(ServiceStack.OrmLite.ModelDefinition modelDef); - string GetQuotedValue(string paramValue); - string GetQuotedValue(object value, System.Type fieldType); - string GetRowVersionColumn(ServiceStack.OrmLite.FieldDefinition field, string tablePrefix = default(string)); - ServiceStack.OrmLite.SelectItem GetRowVersionSelectColumn(ServiceStack.OrmLite.FieldDefinition field, string tablePrefix = default(string)); - string GetTableName(string table, string schema, bool useStrategy); - string GetTableName(string table, string schema = default(string)); - string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef, bool useStrategy); - string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef); - object GetValue(System.Data.IDataReader reader, int columnIndex, System.Type type); - int GetValues(System.Data.IDataReader reader, object[] values); - bool HasInsertReturnValues(ServiceStack.OrmLite.ModelDefinition modelDef); - void InitQueryParam(System.Data.IDbDataParameter param); - void InitUpdateParam(System.Data.IDbDataParameter param); - System.Threading.Tasks.Task InsertAndGetLastInsertIdAsync(System.Data.IDbCommand dbCmd, System.Threading.CancellationToken token); - string MergeParamsIntoSql(string sql, System.Collections.Generic.IEnumerable dbParams); - ServiceStack.OrmLite.INamingStrategy NamingStrategy { get; set; } - System.Action OnOpenConnection { get; set; } - System.Threading.Tasks.Task OpenAsync(System.Data.IDbConnection db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Func ParamNameFilter { get; set; } - string ParamString { get; set; } - void PrepareInsertRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args); - bool PrepareParameterizedDeleteStatement(System.Data.IDbCommand cmd, System.Collections.Generic.IDictionary deleteFieldValues); - void PrepareParameterizedInsertStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection), System.Func shouldInclude = default(System.Func)); - bool PrepareParameterizedUpdateStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)); - void PrepareStoredProcedureStatement(System.Data.IDbCommand cmd, T obj); - void PrepareUpdateRowAddStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args, string sqlFilter); - void PrepareUpdateRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args, string sqlFilter); - void PrepareUpdateRowStatement(System.Data.IDbCommand dbCmd, object objWithProperties, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)); - System.Threading.Tasks.Task ReadAsync(System.Data.IDataReader reader, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> ReaderEach(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ReaderEach(System.Data.IDataReader reader, System.Action fn, Return source, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ReaderRead(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void RegisterConverter(ServiceStack.OrmLite.IOrmLiteConverter converter); - string SanitizeFieldNameForParamName(string fieldName); - System.Collections.Generic.List SequenceList(System.Type tableType); - System.Threading.Tasks.Task> SequenceListAsync(System.Type tableType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void SetParameter(ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDbDataParameter p); - void SetParameterValues(System.Data.IDbCommand dbCmd, object obj); - string SqlBool(bool value); - string SqlCast(object fieldOrValue, string castAs); - string SqlConcat(System.Collections.Generic.IEnumerable args); - string SqlConflict(string sql, string conflictResolution); - string SqlCurrency(string fieldOrValue, string currencySymbol); - string SqlCurrency(string fieldOrValue); - ServiceStack.OrmLite.SqlExpression SqlExpression(); - string SqlLimit(int? offset = default(int?), int? rows = default(int?)); - string SqlRandom { get; } - ServiceStack.Text.IStringSerializer StringSerializer { get; set; } - string ToAddColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef); - string ToAddForeignKeyStatement(System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> foreignField, ServiceStack.OrmLite.OnFkOption onUpdate, ServiceStack.OrmLite.OnFkOption onDelete, string foreignKeyName = default(string)); - string ToAlterColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef); - string ToChangeColumnNameStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef, string oldColumnName); - string ToCreateIndexStatement(System.Linq.Expressions.Expression> field, string indexName = default(string), bool unique = default(bool)); - System.Collections.Generic.List ToCreateIndexStatements(System.Type tableType); - string ToCreateSchemaStatement(string schema); - string ToCreateSequenceStatement(System.Type tableType, string sequenceName); - System.Collections.Generic.List ToCreateSequenceStatements(System.Type tableType); - string ToCreateTableStatement(System.Type tableType); - object ToDbValue(object value, System.Type type); - string ToDeleteStatement(System.Type tableType, string sqlFilter, params object[] filterParams); - string ToExecuteProcedureStatement(object objWithProperties); - string ToExistStatement(System.Type fromTableType, object objWithProperties, string sqlFilter, params object[] filterParams); - string ToInsertRowStatement(System.Data.IDbCommand cmd, object objWithProperties, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)); - string ToInsertStatement(System.Data.IDbCommand dbCmd, T item, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)); - string ToPostCreateTableStatement(ServiceStack.OrmLite.ModelDefinition modelDef); - string ToPostDropTableStatement(ServiceStack.OrmLite.ModelDefinition modelDef); - string ToRowCountStatement(string innerSql); - string ToSelectFromProcedureStatement(object fromObjWithProperties, System.Type outputModelType, string sqlFilter, params object[] filterParams); - string ToSelectStatement(System.Type tableType, string sqlFilter, params object[] filterParams); - string ToSelectStatement(ServiceStack.OrmLite.ModelDefinition modelDef, string selectExpression, string bodyExpression, string orderByExpression = default(string), int? offset = default(int?), int? rows = default(int?)); - string ToTableNamesStatement(string schema); - string ToTableNamesWithRowCountsStatement(bool live, string schema); - string ToUpdateStatement(System.Data.IDbCommand dbCmd, T item, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)); - System.Collections.Generic.Dictionary Variables { get; } - } - - // Generated from `ServiceStack.OrmLite.IOrmLiteExecFilter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOrmLiteExecFilter - { - System.Data.IDbCommand CreateCommand(System.Data.IDbConnection dbConn); - void DisposeCommand(System.Data.IDbCommand dbCmd, System.Data.IDbConnection dbConn); - void Exec(System.Data.IDbConnection dbConn, System.Action filter); - T Exec(System.Data.IDbConnection dbConn, System.Func filter); - System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func> filter); - System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func> filter); - System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func filter); - System.Data.IDbCommand Exec(System.Data.IDbConnection dbConn, System.Func filter); - System.Collections.Generic.IEnumerable ExecLazy(System.Data.IDbConnection dbConn, System.Func> filter); - ServiceStack.OrmLite.SqlExpression SqlExpression(System.Data.IDbConnection dbConn); - } - - // Generated from `ServiceStack.OrmLite.IOrmLiteResultsFilter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOrmLiteResultsFilter - { - int ExecuteSql(System.Data.IDbCommand dbCmd); - System.Collections.Generic.List GetColumn(System.Data.IDbCommand dbCmd); - System.Collections.Generic.HashSet GetColumnDistinct(System.Data.IDbCommand dbCmd); - System.Collections.Generic.Dictionary GetDictionary(System.Data.IDbCommand dbCmd); - System.Collections.Generic.List> GetKeyValuePairs(System.Data.IDbCommand dbCmd); - System.Int64 GetLastInsertId(System.Data.IDbCommand dbCmd); - System.Collections.Generic.List GetList(System.Data.IDbCommand dbCmd); - System.Int64 GetLongScalar(System.Data.IDbCommand dbCmd); - System.Collections.Generic.Dictionary> GetLookup(System.Data.IDbCommand dbCmd); - System.Collections.IList GetRefList(System.Data.IDbCommand dbCmd, System.Type refType); - object GetRefSingle(System.Data.IDbCommand dbCmd, System.Type refType); - object GetScalar(System.Data.IDbCommand dbCmd); - T GetScalar(System.Data.IDbCommand dbCmd); - T GetSingle(System.Data.IDbCommand dbCmd); - } - - // Generated from `ServiceStack.OrmLite.IPropertyInvoker` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPropertyInvoker - { - System.Func ConvertValueFn { get; set; } - object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object fromInstance); - void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, System.Type fieldType, object onInstance, object withValue); - } - - // Generated from `ServiceStack.OrmLite.ISetDbTransaction` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - internal interface ISetDbTransaction - { - System.Data.IDbTransaction Transaction { get; set; } - } - - // Generated from `ServiceStack.OrmLite.ISqlExpression` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISqlExpression - { - System.Collections.Generic.List Params { get; } - string SelectInto(); - string ToSelectStatement(); - } - - // Generated from `ServiceStack.OrmLite.IUntypedApi` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUntypedApi - { - System.Collections.IEnumerable Cast(System.Collections.IEnumerable results); - System.Data.IDbConnection Db { get; set; } - System.Data.IDbCommand DbCmd { get; set; } - int Delete(object obj, object anonType); - int DeleteAll(); - int DeleteById(object id); - int DeleteByIds(System.Collections.IEnumerable idValues); - int DeleteNonDefaults(object obj, object filter); - System.Int64 Insert(object obj, bool selectIdentity = default(bool)); - System.Int64 Insert(object obj, System.Action commandFilter, bool selectIdentity = default(bool)); - void InsertAll(System.Collections.IEnumerable objs, System.Action commandFilter); - void InsertAll(System.Collections.IEnumerable objs); - bool Save(object obj); - int SaveAll(System.Collections.IEnumerable objs); - System.Threading.Tasks.Task SaveAllAsync(System.Collections.IEnumerable objs, System.Threading.CancellationToken token); - System.Threading.Tasks.Task SaveAsync(object obj, System.Threading.CancellationToken token); - int Update(object obj); - int UpdateAll(System.Collections.IEnumerable objs, System.Action commandFilter); - int UpdateAll(System.Collections.IEnumerable objs); - } - - // Generated from `ServiceStack.OrmLite.IUntypedSqlExpression` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUntypedSqlExpression : ServiceStack.OrmLite.ISqlExpression - { - ServiceStack.OrmLite.IUntypedSqlExpression AddCondition(string condition, string sqlFilter, params object[] filterParams); - ServiceStack.OrmLite.IUntypedSqlExpression And(System.Linq.Expressions.Expression> predicate); - ServiceStack.OrmLite.IUntypedSqlExpression And(System.Linq.Expressions.Expression> predicate); - ServiceStack.OrmLite.IUntypedSqlExpression And(string sqlFilter, params object[] filterParams); - string BodyExpression { get; } - ServiceStack.OrmLite.IUntypedSqlExpression ClearLimits(); - ServiceStack.OrmLite.IUntypedSqlExpression Clone(); - System.Data.IDbDataParameter CreateParam(string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?)); - ServiceStack.OrmLite.IUntypedSqlExpression CrossJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); - ServiceStack.OrmLite.IUntypedSqlExpression CustomJoin(string joinString); - ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression Ensure(System.Linq.Expressions.Expression> predicate); - ServiceStack.OrmLite.IUntypedSqlExpression Ensure(System.Linq.Expressions.Expression> predicate); - ServiceStack.OrmLite.IUntypedSqlExpression Ensure(string sqlFilter, params object[] filterParams); - System.Tuple FirstMatchingField(string fieldName); - ServiceStack.OrmLite.IUntypedSqlExpression From(string tables); - string FromExpression { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); - System.Collections.Generic.IList GetAllFields(); - ServiceStack.OrmLite.ModelDefinition GetModelDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef); - ServiceStack.OrmLite.IUntypedSqlExpression GroupBy(string groupBy); - ServiceStack.OrmLite.IUntypedSqlExpression GroupBy(); - string GroupByExpression { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression Having(string sqlFilter, params object[] filterParams); - ServiceStack.OrmLite.IUntypedSqlExpression Having(); - string HavingExpression { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression Insert(System.Collections.Generic.List insertFields); - ServiceStack.OrmLite.IUntypedSqlExpression Insert(); - System.Collections.Generic.List InsertFields { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression Join(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); - ServiceStack.OrmLite.IUntypedSqlExpression Join(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)); - ServiceStack.OrmLite.IUntypedSqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); - ServiceStack.OrmLite.IUntypedSqlExpression LeftJoin(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)); - ServiceStack.OrmLite.IUntypedSqlExpression Limit(int? skip, int? rows); - ServiceStack.OrmLite.IUntypedSqlExpression Limit(int skip, int rows); - ServiceStack.OrmLite.IUntypedSqlExpression Limit(int rows); - ServiceStack.OrmLite.IUntypedSqlExpression Limit(); - ServiceStack.OrmLite.ModelDefinition ModelDef { get; } - int? Offset { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression Or(System.Linq.Expressions.Expression> predicate); - ServiceStack.OrmLite.IUntypedSqlExpression Or(System.Linq.Expressions.Expression> predicate); - ServiceStack.OrmLite.IUntypedSqlExpression Or(string sqlFilter, params object[] filterParams); - ServiceStack.OrmLite.IUntypedSqlExpression OrderBy
    (System.Linq.Expressions.Expression> keySelector); - ServiceStack.OrmLite.IUntypedSqlExpression OrderBy(string orderBy); - ServiceStack.OrmLite.IUntypedSqlExpression OrderBy(); - ServiceStack.OrmLite.IUntypedSqlExpression OrderByDescending
    (System.Linq.Expressions.Expression> keySelector); - ServiceStack.OrmLite.IUntypedSqlExpression OrderByDescending(string orderBy); - string OrderByExpression { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression OrderByFields(params string[] fieldNames); - ServiceStack.OrmLite.IUntypedSqlExpression OrderByFields(params ServiceStack.OrmLite.FieldDefinition[] fields); - ServiceStack.OrmLite.IUntypedSqlExpression OrderByFieldsDescending(params string[] fieldNames); - ServiceStack.OrmLite.IUntypedSqlExpression OrderByFieldsDescending(params ServiceStack.OrmLite.FieldDefinition[] fields); - bool PrefixFieldWithTableName { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)); - int? Rows { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression Select(System.Linq.Expressions.Expression> fields); - ServiceStack.OrmLite.IUntypedSqlExpression Select(System.Linq.Expressions.Expression> fields); - ServiceStack.OrmLite.IUntypedSqlExpression Select(string selectExpression); - ServiceStack.OrmLite.IUntypedSqlExpression Select(); - ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields); - ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields); - ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(); - string SelectExpression { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression Skip(int? skip = default(int?)); - string SqlColumn(string columnName); - string SqlTable(ServiceStack.OrmLite.ModelDefinition modelDef); - string TableAlias { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression Take(int? take = default(int?)); - ServiceStack.OrmLite.IUntypedSqlExpression ThenBy
    (System.Linq.Expressions.Expression> keySelector); - ServiceStack.OrmLite.IUntypedSqlExpression ThenBy(string orderBy); - ServiceStack.OrmLite.IUntypedSqlExpression ThenByDescending
    (System.Linq.Expressions.Expression> keySelector); - ServiceStack.OrmLite.IUntypedSqlExpression ThenByDescending(string orderBy); - string ToCountStatement(); - string ToDeleteRowStatement(); - ServiceStack.OrmLite.IUntypedSqlExpression UnsafeAnd(string rawSql, params object[] filterParams); - ServiceStack.OrmLite.IUntypedSqlExpression UnsafeFrom(string rawFrom); - ServiceStack.OrmLite.IUntypedSqlExpression UnsafeOr(string rawSql, params object[] filterParams); - ServiceStack.OrmLite.IUntypedSqlExpression UnsafeSelect(string rawSelect); - ServiceStack.OrmLite.IUntypedSqlExpression UnsafeWhere(string rawSql, params object[] filterParams); - ServiceStack.OrmLite.IUntypedSqlExpression Update(System.Collections.Generic.List updateFields); - ServiceStack.OrmLite.IUntypedSqlExpression Update(); - System.Collections.Generic.List UpdateFields { get; set; } - ServiceStack.OrmLite.IUntypedSqlExpression Where(System.Linq.Expressions.Expression> predicate); - ServiceStack.OrmLite.IUntypedSqlExpression Where(System.Linq.Expressions.Expression> predicate); - ServiceStack.OrmLite.IUntypedSqlExpression Where(string sqlFilter, params object[] filterParams); - ServiceStack.OrmLite.IUntypedSqlExpression Where(); - string WhereExpression { get; set; } - bool WhereStatementWithoutWhereString { get; set; } - } - - // Generated from `ServiceStack.OrmLite.IndexFieldsCacheKey` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IndexFieldsCacheKey - { - public ServiceStack.OrmLite.IOrmLiteDialectProvider Dialect { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - public System.Collections.Generic.List Fields { get => throw null; set => throw null; } - public override int GetHashCode() => throw null; - public IndexFieldsCacheKey(System.Data.IDataReader reader, ServiceStack.OrmLite.ModelDefinition modelDefinition, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; - public ServiceStack.OrmLite.ModelDefinition ModelDefinition { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.JoinFormatDelegate` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate string JoinFormatDelegate(ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, string joinExpr); - - // Generated from `ServiceStack.OrmLite.LowercaseUnderscoreNamingStrategy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LowercaseUnderscoreNamingStrategy : ServiceStack.OrmLite.OrmLiteNamingStrategyBase - { - public override string GetColumnName(string name) => throw null; - public override string GetTableName(string name) => throw null; - public LowercaseUnderscoreNamingStrategy() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Messages` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Messages - { - public const string LegacyApi = default; - } - - // Generated from `ServiceStack.OrmLite.ModelDefinition` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ModelDefinition - { - public void AfterInit() => throw null; - public string Alias { get => throw null; set => throw null; } - public ServiceStack.OrmLite.FieldDefinition[] AllFieldDefinitionsArray { get => throw null; set => throw null; } - public ServiceStack.OrmLite.FieldDefinition AssertFieldDefinition(string fieldName, System.Func sanitizeFieldName) => throw null; - public ServiceStack.OrmLite.FieldDefinition AssertFieldDefinition(string fieldName) => throw null; - public ServiceStack.OrmLite.FieldDefinition[] AutoIdFields { get => throw null; set => throw null; } - public System.Collections.Generic.List CompositeIndexes { get => throw null; set => throw null; } - public System.Collections.Generic.List FieldDefinitions { get => throw null; set => throw null; } - public ServiceStack.OrmLite.FieldDefinition[] FieldDefinitionsArray { get => throw null; set => throw null; } - public ServiceStack.OrmLite.FieldDefinition[] FieldDefinitionsWithAliases { get => throw null; set => throw null; } - public System.Collections.Generic.List GetAutoIdFieldDefinitions() => throw null; - public ServiceStack.OrmLite.FieldDefinition GetFieldDefinition(System.Linq.Expressions.Expression> field) => throw null; - public ServiceStack.OrmLite.FieldDefinition GetFieldDefinition(string fieldName, System.Func sanitizeFieldName) => throw null; - public ServiceStack.OrmLite.FieldDefinition GetFieldDefinition(string fieldName) => throw null; - public ServiceStack.OrmLite.FieldDefinition GetFieldDefinition(System.Func predicate) => throw null; - public System.Collections.Generic.Dictionary GetFieldDefinitionMap(System.Func sanitizeFieldName) => throw null; - public ServiceStack.OrmLite.FieldDefinition[] GetOrderedFieldDefinitions(System.Collections.Generic.ICollection fieldNames, System.Func sanitizeFieldName = default(System.Func)) => throw null; - public object GetPrimaryKey(object instance) => throw null; - public string GetQuotedName(string fieldName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - public bool HasAutoIncrementId { get => throw null; } - public bool HasSequenceAttribute { get => throw null; } - public System.Collections.Generic.List IgnoredFieldDefinitions { get => throw null; set => throw null; } - public ServiceStack.OrmLite.FieldDefinition[] IgnoredFieldDefinitionsArray { get => throw null; set => throw null; } - public bool IsInSchema { get => throw null; } - public bool IsRefField(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public ModelDefinition() => throw null; - public string ModelName { get => throw null; } - public System.Type ModelType { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string PostCreateTableSql { get => throw null; set => throw null; } - public string PostDropTableSql { get => throw null; set => throw null; } - public string PreCreateTableSql { get => throw null; set => throw null; } - public string PreDropTableSql { get => throw null; set => throw null; } - public ServiceStack.OrmLite.FieldDefinition PrimaryKey { get => throw null; } - public ServiceStack.OrmLite.FieldDefinition RowVersion { get => throw null; set => throw null; } - public const string RowVersionName = default; - public string Schema { get => throw null; set => throw null; } - public override string ToString() => throw null; - public System.Collections.Generic.List UniqueConstraints { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.ModelDefinition<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ModelDefinition - { - public static ServiceStack.OrmLite.ModelDefinition Definition { get => throw null; } - public static string PrimaryKeyName { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.NativeValueOrmLiteConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class NativeValueOrmLiteConverter : ServiceStack.OrmLite.OrmLiteConverter - { - protected NativeValueOrmLiteConverter() => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.ObjectRow` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct ObjectRow : ServiceStack.OrmLite.IDynamicRow, ServiceStack.OrmLite.IDynamicRow - { - public object Fields { get => throw null; } - public ObjectRow(System.Type type, object fields) => throw null; - // Stub generator skipped constructor - public System.Type Type { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.OnFkOption` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum OnFkOption - { - Cascade, - NoAction, - Restrict, - SetDefault, - SetNull, - } - - // Generated from `ServiceStack.OrmLite.OrmLiteCommand` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteCommand : System.IDisposable, System.Data.IDbCommand, ServiceStack.OrmLite.IHasDialectProvider, ServiceStack.Data.IHasDbCommand - { - public void Cancel() => throw null; - public string CommandText { get => throw null; set => throw null; } - public int CommandTimeout { get => throw null; set => throw null; } - public System.Data.CommandType CommandType { get => throw null; set => throw null; } - public System.Data.IDbConnection Connection { get => throw null; set => throw null; } - public System.Data.IDbDataParameter CreateParameter() => throw null; - public System.Data.IDbCommand DbCommand { get => throw null; } - public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } - public void Dispose() => throw null; - public int ExecuteNonQuery() => throw null; - public System.Data.IDataReader ExecuteReader(System.Data.CommandBehavior behavior) => throw null; - public System.Data.IDataReader ExecuteReader() => throw null; - public object ExecuteScalar() => throw null; - public bool IsDisposed { get => throw null; set => throw null; } - public OrmLiteCommand(ServiceStack.OrmLite.OrmLiteConnection dbConn, System.Data.IDbCommand dbCmd) => throw null; - public System.Data.IDataParameterCollection Parameters { get => throw null; } - public void Prepare() => throw null; - public System.Data.IDbTransaction Transaction { get => throw null; set => throw null; } - public System.Data.UpdateRowSource UpdatedRowSource { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.OrmLiteConfig` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteConfig - { - public static System.Action AfterExecFilter { get => throw null; set => throw null; } - public static System.Action BeforeExecFilter { get => throw null; set => throw null; } - public static void ClearCache() => throw null; - public static int CommandTimeout { get => throw null; set => throw null; } - public static bool DeoptimizeReader { get => throw null; set => throw null; } - public static ServiceStack.OrmLite.IOrmLiteDialectProvider Dialect(this System.Data.IDbConnection db) => throw null; - public static ServiceStack.OrmLite.IOrmLiteDialectProvider Dialect(this System.Data.IDbCommand dbCmd) => throw null; - public static ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } - public static bool DisableColumnGuessFallback { get => throw null; set => throw null; } - public static System.Action ExceptionFilter { get => throw null; set => throw null; } - public static ServiceStack.OrmLite.IOrmLiteExecFilter ExecFilter { get => throw null; set => throw null; } - public static ServiceStack.OrmLite.IOrmLiteDialectProvider GetDialectProvider(this System.Data.IDbConnection db) => throw null; - public static ServiceStack.OrmLite.IOrmLiteDialectProvider GetDialectProvider(this System.Data.IDbCommand dbCmd) => throw null; - public static ServiceStack.OrmLite.IOrmLiteExecFilter GetExecFilter(this System.Data.IDbConnection db) => throw null; - public static ServiceStack.OrmLite.IOrmLiteExecFilter GetExecFilter(this System.Data.IDbCommand dbCmd) => throw null; - public static ServiceStack.OrmLite.IOrmLiteExecFilter GetExecFilter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - public static ServiceStack.OrmLite.ModelDefinition GetModelMetadata(this System.Type modelType) => throw null; - public const string IdField = default; - public static bool IncludeTablePrefixes { get => throw null; set => throw null; } - public static System.Action InsertFilter { get => throw null; set => throw null; } - public static bool IsCaseInsensitive { get => throw null; set => throw null; } - public static System.Func LoadReferenceSelectFilter { get => throw null; set => throw null; } - public static System.Func OnDbNullFilter { get => throw null; set => throw null; } - public static System.Action OnModelDefinitionInit { get => throw null; set => throw null; } - public static System.Data.IDbConnection OpenDbConnection(this string dbConnectionStringOrFilePath) => throw null; - public static System.Data.IDbConnection OpenReadOnlyDbConnection(this string dbConnectionStringOrFilePath) => throw null; - public static System.Func ParamNameFilter { get => throw null; set => throw null; } - public static System.Action PopulatedObjectFilter { get => throw null; set => throw null; } - public static void ResetLogFactory(ServiceStack.Logging.ILogFactory logFactory = default(ServiceStack.Logging.ILogFactory)) => throw null; - public static ServiceStack.OrmLite.IOrmLiteResultsFilter ResultsFilter { get => throw null; set => throw null; } - public static System.Func SanitizeFieldNameForParamNameFn; - public static void SetCommandTimeout(this System.Data.IDbConnection db, int? commandTimeout) => throw null; - public static void SetLastCommandText(this System.Data.IDbConnection db, string sql) => throw null; - public static bool SkipForeignKeys { get => throw null; set => throw null; } - public static System.Action SqlExpressionInitFilter { get => throw null; set => throw null; } - public static System.Action SqlExpressionSelectFilter { get => throw null; set => throw null; } - public static System.Func StringFilter { get => throw null; set => throw null; } - public static bool StripUpperInLike { get => throw null; set => throw null; } - public static bool ThrowOnError { get => throw null; set => throw null; } - public static System.Data.IDbConnection ToDbConnection(this string dbConnectionStringOrFilePath, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - public static System.Data.IDbConnection ToDbConnection(this string dbConnectionStringOrFilePath) => throw null; - public static System.Action UpdateFilter { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.OrmLiteConflictResolutions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteConflictResolutions - { - public static void OnConflict(this System.Data.IDbCommand dbCmd, string conflictResolution) => throw null; - public static void OnConflictIgnore(this System.Data.IDbCommand dbCmd) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteConnection` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteConnection : System.IDisposable, System.Data.IDbConnection, ServiceStack.OrmLite.IHasDialectProvider, ServiceStack.Data.IHasDbTransaction, ServiceStack.Data.IHasDbConnection - { - public bool AutoDisposeConnection { get => throw null; set => throw null; } - public System.Data.IDbTransaction BeginTransaction(System.Data.IsolationLevel isolationLevel) => throw null; - public System.Data.IDbTransaction BeginTransaction() => throw null; - public void ChangeDatabase(string databaseName) => throw null; - public void Close() => throw null; - public int? CommandTimeout { get => throw null; set => throw null; } - public string ConnectionString { get => throw null; set => throw null; } - public int ConnectionTimeout { get => throw null; } - public System.Data.IDbCommand CreateCommand() => throw null; - public string Database { get => throw null; } - public System.Data.IDbConnection DbConnection { get => throw null; } - public System.Data.IDbTransaction DbTransaction { get => throw null; } - public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } - public void Dispose() => throw null; - public ServiceStack.OrmLite.OrmLiteConnectionFactory Factory; - public string LastCommandText { get => throw null; set => throw null; } - public void Open() => throw null; - public System.Threading.Tasks.Task OpenAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public OrmLiteConnection(ServiceStack.OrmLite.OrmLiteConnectionFactory factory) => throw null; - public System.Data.ConnectionState State { get => throw null; } - public System.Data.IDbTransaction Transaction { get => throw null; set => throw null; } - public static explicit operator System.Data.Common.DbConnection(ServiceStack.OrmLite.OrmLiteConnection dbConn) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteConnectionFactory` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteConnectionFactory : ServiceStack.Data.IDbConnectionFactoryExtended, ServiceStack.Data.IDbConnectionFactory - { - public System.Data.IDbCommand AlwaysReturnCommand { get => throw null; set => throw null; } - public System.Data.IDbTransaction AlwaysReturnTransaction { get => throw null; set => throw null; } - public bool AutoDisposeConnection { get => throw null; set => throw null; } - public System.Func ConnectionFilter { get => throw null; set => throw null; } - public string ConnectionString { get => throw null; set => throw null; } - public virtual System.Data.IDbConnection CreateDbConnection() => throw null; - public static System.Data.IDbConnection CreateDbConnection(string namedConnection) => throw null; - public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary DialectProviders { get => throw null; } - public static System.Collections.Generic.Dictionary NamedConnections { get => throw null; } - public System.Action OnDispose { get => throw null; set => throw null; } - public virtual System.Data.IDbConnection OpenDbConnection(string namedConnection) => throw null; - public virtual System.Data.IDbConnection OpenDbConnection() => throw null; - public virtual System.Threading.Tasks.Task OpenDbConnectionAsync(string namedConnection, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task OpenDbConnectionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Data.IDbConnection OpenDbConnectionString(string connectionString, string providerName) => throw null; - public virtual System.Data.IDbConnection OpenDbConnectionString(string connectionString) => throw null; - public virtual System.Threading.Tasks.Task OpenDbConnectionStringAsync(string connectionString, string providerName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task OpenDbConnectionStringAsync(string connectionString, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public OrmLiteConnectionFactory(string connectionString, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, bool setGlobalDialectProvider) => throw null; - public OrmLiteConnectionFactory(string connectionString, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - public OrmLiteConnectionFactory(string connectionString) => throw null; - public OrmLiteConnectionFactory() => throw null; - public virtual void RegisterConnection(string namedConnection, string connectionString, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - public virtual void RegisterConnection(string namedConnection, ServiceStack.OrmLite.OrmLiteConnectionFactory connectionFactory) => throw null; - public virtual void RegisterDialectProvider(string providerName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteConnectionFactoryExtensions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteConnectionFactoryExtensions - { - public static ServiceStack.OrmLite.IOrmLiteDialectProvider GetDialectProvider(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string providerName = default(string), string namedConnection = default(string)) => throw null; - public static ServiceStack.OrmLite.IOrmLiteDialectProvider GetDialectProvider(this ServiceStack.Data.IDbConnectionFactory connectionFactory, ServiceStack.ConnectionInfo dbInfo) => throw null; - public static System.Data.IDbConnection Open(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string namedConnection) => throw null; - public static System.Data.IDbConnection Open(this ServiceStack.Data.IDbConnectionFactory connectionFactory) => throw null; - public static System.Threading.Tasks.Task OpenAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string namedConnection, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task OpenAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Data.IDbConnection OpenDbConnection(this ServiceStack.Data.IDbConnectionFactory dbFactory, ServiceStack.ConnectionInfo connInfo) => throw null; - public static System.Data.IDbConnection OpenDbConnection(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string namedConnection) => throw null; - public static System.Threading.Tasks.Task OpenDbConnectionAsync(this ServiceStack.Data.IDbConnectionFactory dbFactory, ServiceStack.ConnectionInfo connInfo) => throw null; - public static System.Threading.Tasks.Task OpenDbConnectionAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string namedConnection, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task OpenDbConnectionAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Data.IDbConnection OpenDbConnectionString(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string connectionString, string providerName) => throw null; - public static System.Data.IDbConnection OpenDbConnectionString(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string connectionString) => throw null; - public static System.Threading.Tasks.Task OpenDbConnectionStringAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string connectionString, string providerName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task OpenDbConnectionStringAsync(this ServiceStack.Data.IDbConnectionFactory connectionFactory, string connectionString, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void RegisterConnection(this ServiceStack.Data.IDbConnectionFactory dbFactory, string namedConnection, string connectionString, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - public static void RegisterConnection(this ServiceStack.Data.IDbConnectionFactory dbFactory, string namedConnection, ServiceStack.OrmLite.OrmLiteConnectionFactory connectionFactory) => throw null; - public static System.Data.IDbCommand ToDbCommand(this System.Data.IDbCommand dbCmd) => throw null; - public static System.Data.IDbConnection ToDbConnection(this System.Data.IDbConnection db) => throw null; - public static System.Data.IDbTransaction ToDbTransaction(this System.Data.IDbTransaction dbTrans) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteConnectionUtils` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteConnectionUtils - { - public static System.Data.IDbTransaction GetTransaction(this System.Data.IDbConnection db) => throw null; - public static bool InTransaction(this System.Data.IDbConnection db) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteContext` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteContext - { - public void ClearItems() => throw null; - public static System.Collections.IDictionary ContextItems; - public static ServiceStack.OrmLite.OrmLiteState CreateNewState() => throw null; - public T GetOrCreate(System.Func createFn) => throw null; - public static ServiceStack.OrmLite.OrmLiteState GetOrCreateState() => throw null; - public static ServiceStack.OrmLite.OrmLiteContext Instance; - public virtual System.Collections.IDictionary Items { get => throw null; set => throw null; } - public OrmLiteContext() => throw null; - public static ServiceStack.OrmLite.OrmLiteState OrmLiteState { get => throw null; set => throw null; } - public static bool UseThreadStatic; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class OrmLiteConverter : ServiceStack.OrmLite.IOrmLiteConverter - { - public abstract string ColumnDefinition { get; } - public virtual System.Data.DbType DbType { get => throw null; } - public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } - public virtual object FromDbValue(System.Type fieldType, object value) => throw null; - public virtual object GetValue(System.Data.IDataReader reader, int columnIndex, object[] values) => throw null; - public virtual void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType) => throw null; - public static ServiceStack.Logging.ILog Log; - protected OrmLiteConverter() => throw null; - public virtual object ToDbValue(System.Type fieldType, object value) => throw null; - public virtual string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteConverterExtensions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteConverterExtensions - { - public static object ConvertNumber(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Type toIntegerType, object value) => throw null; - public static object ConvertNumber(this ServiceStack.OrmLite.IOrmLiteConverter converter, System.Type toIntegerType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteDataParameter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteDataParameter : System.Data.IDbDataParameter, System.Data.IDataParameter - { - public System.Data.DbType DbType { get => throw null; set => throw null; } - public System.Data.ParameterDirection Direction { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; set => throw null; } - public OrmLiteDataParameter() => throw null; - public string ParameterName { get => throw null; set => throw null; } - public System.Byte Precision { get => throw null; set => throw null; } - public System.Byte Scale { get => throw null; set => throw null; } - public int Size { get => throw null; set => throw null; } - public string SourceColumn { get => throw null; set => throw null; } - public System.Data.DataRowVersion SourceVersion { get => throw null; set => throw null; } - public object Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.OrmLiteDialectProviderBase<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class OrmLiteDialectProviderBase : ServiceStack.OrmLite.IOrmLiteDialectProvider where TDialect : ServiceStack.OrmLite.IOrmLiteDialectProvider - { - protected System.Data.IDbDataParameter AddParameter(System.Data.IDbCommand cmd, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public virtual void AppendFieldCondition(System.Text.StringBuilder sqlFilter, ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDbCommand cmd) => throw null; - public virtual void AppendNullFieldCondition(System.Text.StringBuilder sqlFilter, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public string AutoIncrementDefinition; - public virtual string ColumnNameOnly(string columnExpr) => throw null; - public System.Collections.Generic.Dictionary Converters; - public abstract System.Data.IDbConnection CreateConnection(string filePath, System.Collections.Generic.Dictionary options); - public abstract System.Data.IDbDataParameter CreateParam(); - public System.Data.IDbCommand CreateParameterizedDeleteStatement(System.Data.IDbConnection connection, object objWithProperties) => throw null; - public System.Func> CreateTableFieldsStrategy { get => throw null; set => throw null; } - public ServiceStack.OrmLite.Converters.DecimalConverter DecimalConverter { get => throw null; } - public string DefaultValueFormat; - public virtual void DisableForeignKeysCheck(System.Data.IDbCommand cmd) => throw null; - public virtual System.Threading.Tasks.Task DisableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void DisableIdentityInsert(System.Data.IDbCommand cmd) => throw null; - public virtual System.Threading.Tasks.Task DisableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual bool DoesColumnExist(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string)) => throw null; - public virtual System.Threading.Tasks.Task DoesColumnExistAsync(System.Data.IDbConnection db, string columnName, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public abstract bool DoesSchemaExist(System.Data.IDbCommand dbCmd, string schemaName); - public virtual System.Threading.Tasks.Task DoesSchemaExistAsync(System.Data.IDbCommand dbCmd, string schema, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual bool DoesSequenceExist(System.Data.IDbCommand dbCmd, string sequenceName) => throw null; - public virtual System.Threading.Tasks.Task DoesSequenceExistAsync(System.Data.IDbCommand dbCmd, string sequenceName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual bool DoesTableExist(System.Data.IDbConnection db, string tableName, string schema = default(string)) => throw null; - public virtual bool DoesTableExist(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string)) => throw null; - public virtual System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbConnection db, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task DoesTableExistAsync(System.Data.IDbCommand dbCmd, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void DropColumn(System.Data.IDbConnection db, System.Type modelType, string columnName) => throw null; - public virtual void EnableForeignKeysCheck(System.Data.IDbCommand cmd) => throw null; - public virtual System.Threading.Tasks.Task EnableForeignKeysCheckAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void EnableIdentityInsert(System.Data.IDbCommand cmd) => throw null; - public virtual System.Threading.Tasks.Task EnableIdentityInsertAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.OrmLite.Converters.EnumConverter EnumConverter { get => throw null; set => throw null; } - public virtual string EscapeWildcards(string value) => throw null; - public ServiceStack.OrmLite.IOrmLiteExecFilter ExecFilter { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task ExecuteScalarAsync(System.Data.IDbCommand cmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected virtual string FkOptionToString(ServiceStack.OrmLite.OnFkOption option) => throw null; - public virtual object FromDbRowVersion(System.Type fieldType, object value) => throw null; - public virtual object FromDbValue(object value, System.Type type) => throw null; - public virtual string GetAutoIdDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public virtual string GetCheckConstraint(ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public virtual string GetColumnDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public virtual string GetColumnNames(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public virtual ServiceStack.OrmLite.SelectItem[] GetColumnNames(ServiceStack.OrmLite.ModelDefinition modelDef, string tablePrefix) => throw null; - public string GetColumnTypeDefinition(System.Type columnType, int? fieldLength, int? scale) => throw null; - protected virtual string GetCompositeIndexName(ServiceStack.DataAnnotations.CompositeIndexAttribute compositeIndex, ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - protected virtual string GetCompositeIndexNameWithSchema(ServiceStack.DataAnnotations.CompositeIndexAttribute compositeIndex, ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public ServiceStack.OrmLite.IOrmLiteConverter GetConverter(System.Type type) => throw null; - public virtual ServiceStack.OrmLite.IOrmLiteConverter GetConverterBestMatch(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public ServiceStack.OrmLite.IOrmLiteConverter GetConverterBestMatch(System.Type type) => throw null; - public virtual string GetDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public string GetDefaultValue(System.Type tableType, string fieldName) => throw null; - public virtual string GetDropForeignKeyConstraints(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public System.Collections.Generic.Dictionary GetFieldDefinitionMap(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public static System.Collections.Generic.List GetFieldDefinitions(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public object GetFieldValue(System.Type fieldType, object value) => throw null; - public object GetFieldValue(ServiceStack.OrmLite.FieldDefinition fieldDef, object value) => throw null; - public virtual string GetForeignKeyOnDeleteClause(ServiceStack.OrmLite.ForeignKeyConstraint foreignKey) => throw null; - public virtual string GetForeignKeyOnUpdateClause(ServiceStack.OrmLite.ForeignKeyConstraint foreignKey) => throw null; - protected virtual string GetIndexName(bool isUnique, string modelName, string fieldName) => throw null; - protected virtual object GetInsertDefaultValue(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public virtual ServiceStack.OrmLite.FieldDefinition[] GetInsertFieldDefinitions(ServiceStack.OrmLite.ModelDefinition modelDef, System.Collections.Generic.ICollection insertFields) => throw null; - public virtual System.Int64 GetLastInsertId(System.Data.IDbCommand dbCmd) => throw null; - public virtual string GetLastInsertIdSqlSuffix() => throw null; - public virtual string GetLoadChildrenSubSelect(ServiceStack.OrmLite.SqlExpression expr) => throw null; - protected static ServiceStack.OrmLite.ModelDefinition GetModel(System.Type modelType) => throw null; - public virtual object GetParamValue(object value, System.Type fieldType) => throw null; - public virtual string GetQuotedColumnName(string columnName) => throw null; - public virtual string GetQuotedName(string name, string schema) => throw null; - public virtual string GetQuotedName(string name) => throw null; - public virtual string GetQuotedTableName(string tableName, string schema, bool useStrategy) => throw null; - public virtual string GetQuotedTableName(string tableName, string schema = default(string)) => throw null; - public virtual string GetQuotedTableName(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public virtual string GetQuotedValue(string paramValue) => throw null; - public virtual string GetQuotedValue(object value, System.Type fieldType) => throw null; - protected virtual object GetQuotedValueOrDbNull(ServiceStack.OrmLite.FieldDefinition fieldDef, object obj) => throw null; - public virtual string GetRowVersionColumn(ServiceStack.OrmLite.FieldDefinition field, string tablePrefix = default(string)) => throw null; - public virtual ServiceStack.OrmLite.SelectItem GetRowVersionSelectColumn(ServiceStack.OrmLite.FieldDefinition field, string tablePrefix = default(string)) => throw null; - public virtual string GetSchemaName(string schema) => throw null; - public virtual string GetTableName(string table, string schema, bool useStrategy) => throw null; - public virtual string GetTableName(string table, string schema = default(string)) => throw null; - public virtual string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef, bool useStrategy) => throw null; - public virtual string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - protected virtual string GetUniqueConstraintName(ServiceStack.DataAnnotations.UniqueConstraintAttribute constraint, string tableName) => throw null; - public virtual string GetUniqueConstraints(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public object GetValue(System.Data.IDataReader reader, int columnIndex, System.Type type) => throw null; - protected virtual object GetValue(ServiceStack.OrmLite.FieldDefinition fieldDef, object obj) => throw null; - protected virtual object GetValueOrDbNull(ServiceStack.OrmLite.FieldDefinition fieldDef, object obj) => throw null; - public virtual int GetValues(System.Data.IDataReader reader, object[] values) => throw null; - public virtual bool HasInsertReturnValues(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - protected void InitColumnTypeMap() => throw null; - public virtual void InitDbParam(System.Data.IDbDataParameter dbParam, System.Type columnType) => throw null; - public virtual void InitQueryParam(System.Data.IDbDataParameter param) => throw null; - public virtual void InitUpdateParam(System.Data.IDbDataParameter param) => throw null; - public virtual System.Threading.Tasks.Task InsertAndGetLastInsertIdAsync(System.Data.IDbCommand dbCmd, System.Threading.CancellationToken token) => throw null; - public virtual bool IsFullSelectStatement(string sql) => throw null; - protected static ServiceStack.Logging.ILog Log; - public virtual string MergeParamsIntoSql(string sql, System.Collections.Generic.IEnumerable dbParams) => throw null; - public ServiceStack.OrmLite.INamingStrategy NamingStrategy { get => throw null; set => throw null; } - public System.Action OnOpenConnection { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task OpenAsync(System.Data.IDbConnection db, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected OrmLiteDialectProviderBase() => throw null; - public System.Func ParamNameFilter { get => throw null; set => throw null; } - public string ParamString { get => throw null; set => throw null; } - public virtual void PrepareInsertRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args) => throw null; - public virtual bool PrepareParameterizedDeleteStatement(System.Data.IDbCommand cmd, System.Collections.Generic.IDictionary deleteFieldValues) => throw null; - public virtual void PrepareParameterizedInsertStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection), System.Func shouldInclude = default(System.Func)) => throw null; - public virtual bool PrepareParameterizedUpdateStatement(System.Data.IDbCommand cmd, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)) => throw null; - public virtual void PrepareStoredProcedureStatement(System.Data.IDbCommand cmd, T obj) => throw null; - public virtual void PrepareUpdateRowAddStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args, string sqlFilter) => throw null; - public virtual void PrepareUpdateRowStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary args, string sqlFilter) => throw null; - public virtual void PrepareUpdateRowStatement(System.Data.IDbCommand dbCmd, object objWithProperties, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)) => throw null; - public virtual string QuoteIfRequired(string name) => throw null; - public virtual System.Threading.Tasks.Task ReadAsync(System.Data.IDataReader reader, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task> ReaderEach(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task ReaderEach(System.Data.IDataReader reader, System.Action fn, Return source, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task ReaderRead(System.Data.IDataReader reader, System.Func fn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.OrmLite.Converters.ReferenceTypeConverter ReferenceTypeConverter { get => throw null; set => throw null; } - public void RegisterConverter(ServiceStack.OrmLite.IOrmLiteConverter converter) => throw null; - public void RemoveConverter() => throw null; - public virtual string ResolveFragment(string sql) => throw null; - public ServiceStack.OrmLite.Converters.RowVersionConverter RowVersionConverter { get => throw null; set => throw null; } - public virtual string SanitizeFieldNameForParamName(string fieldName) => throw null; - public virtual string SelectIdentitySql { get => throw null; set => throw null; } - public virtual System.Collections.Generic.List SequenceList(System.Type tableType) => throw null; - public virtual System.Threading.Tasks.Task> SequenceListAsync(System.Type tableType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void SetParameter(ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDbDataParameter p) => throw null; - public virtual void SetParameterValue(ServiceStack.OrmLite.FieldDefinition fieldDef, System.Data.IDataParameter p, object obj) => throw null; - public virtual void SetParameterValues(System.Data.IDbCommand dbCmd, object obj) => throw null; - public virtual bool ShouldQuote(string name) => throw null; - public virtual bool ShouldQuoteValue(System.Type fieldType) => throw null; - protected virtual bool ShouldSkipInsert(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public virtual string SqlBool(bool value) => throw null; - public virtual string SqlCast(object fieldOrValue, string castAs) => throw null; - public virtual string SqlConcat(System.Collections.Generic.IEnumerable args) => throw null; - public virtual string SqlConflict(string sql, string conflictResolution) => throw null; - public virtual string SqlCurrency(string fieldOrValue, string currencySymbol) => throw null; - public virtual string SqlCurrency(string fieldOrValue) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SqlExpression() => throw null; - public virtual string SqlLimit(int? offset = default(int?), int? rows = default(int?)) => throw null; - public virtual string SqlRandom { get => throw null; } - public ServiceStack.OrmLite.Converters.StringConverter StringConverter { get => throw null; } - public ServiceStack.Text.IStringSerializer StringSerializer { get => throw null; set => throw null; } - public virtual string ToAddColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public virtual string ToAddForeignKeyStatement(System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> foreignField, ServiceStack.OrmLite.OnFkOption onUpdate, ServiceStack.OrmLite.OnFkOption onDelete, string foreignKeyName = default(string)) => throw null; - public virtual string ToAlterColumnStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public virtual string ToChangeColumnNameStatement(System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef, string oldColumnName) => throw null; - public virtual string ToCreateIndexStatement(System.Linq.Expressions.Expression> field, string indexName = default(string), bool unique = default(bool)) => throw null; - protected virtual string ToCreateIndexStatement(bool isUnique, string indexName, ServiceStack.OrmLite.ModelDefinition modelDef, string fieldName, bool isCombined = default(bool), ServiceStack.OrmLite.FieldDefinition fieldDef = default(ServiceStack.OrmLite.FieldDefinition)) => throw null; - public virtual System.Collections.Generic.List ToCreateIndexStatements(System.Type tableType) => throw null; - public abstract string ToCreateSchemaStatement(string schemaName); - public virtual string ToCreateSequenceStatement(System.Type tableType, string sequenceName) => throw null; - public virtual System.Collections.Generic.List ToCreateSequenceStatements(System.Type tableType) => throw null; - public virtual string ToCreateTableStatement(System.Type tableType) => throw null; - public virtual object ToDbValue(object value, System.Type type) => throw null; - public virtual string ToDeleteStatement(System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; - protected virtual string ToDropColumnStatement(System.Type modelType, string columnName, ServiceStack.OrmLite.IOrmLiteDialectProvider provider) => throw null; - public virtual string ToExecuteProcedureStatement(object objWithProperties) => throw null; - public virtual string ToExistStatement(System.Type fromTableType, object objWithProperties, string sqlFilter, params object[] filterParams) => throw null; - public virtual string ToInsertRowStatement(System.Data.IDbCommand cmd, object objWithProperties, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)) => throw null; - public virtual string ToInsertStatement(System.Data.IDbCommand dbCmd, T item, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)) => throw null; - public virtual string ToPostCreateTableStatement(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public virtual string ToPostDropTableStatement(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public virtual string ToRowCountStatement(string innerSql) => throw null; - public virtual string ToSelectFromProcedureStatement(object fromObjWithProperties, System.Type outputModelType, string sqlFilter, params object[] filterParams) => throw null; - public virtual string ToSelectStatement(System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; - public virtual string ToSelectStatement(ServiceStack.OrmLite.ModelDefinition modelDef, string selectExpression, string bodyExpression, string orderByExpression = default(string), int? offset = default(int?), int? rows = default(int?)) => throw null; - public virtual string ToTableNamesStatement(string schema) => throw null; - public virtual string ToTableNamesWithRowCountsStatement(bool live, string schema) => throw null; - public virtual string ToUpdateStatement(System.Data.IDbCommand dbCmd, T item, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)) => throw null; - public ServiceStack.OrmLite.Converters.ValueTypeConverter ValueTypeConverter { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Variables { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.OrmLiteDialectProviderExtensions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteDialectProviderExtensions - { - public static string FmtColumn(this string columnName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static string FmtTable(this string tableName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static object FromDbValue(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Data.IDataReader reader, int columnIndex, System.Type type) => throw null; - public static ServiceStack.OrmLite.IOrmLiteConverter GetConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; - public static ServiceStack.OrmLite.Converters.DateTimeConverter GetDateTimeConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; - public static ServiceStack.OrmLite.Converters.DecimalConverter GetDecimalConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; - public static string GetParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string name, string format) => throw null; - public static string GetParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string name) => throw null; - public static string GetParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, int indexNo = default(int)) => throw null; - public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, string tableAlias, string fieldName) => throw null; - public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, string tableAlias, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, string fieldName) => throw null; - public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.ModelDefinition tableDef, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static string GetQuotedColumnName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static ServiceStack.OrmLite.Converters.StringConverter GetStringConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; - public static bool HasConverter(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Type type) => throw null; - public static void InitDbParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Data.IDbDataParameter dbParam, System.Type columnType, object value) => throw null; - public static void InitDbParam(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Data.IDbDataParameter dbParam, System.Type columnType) => throw null; - public static bool IsMySqlConnector(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; - public static string SqlSpread(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, params T[] values) => throw null; - public static string ToFieldName(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string paramName) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteExecFilter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteExecFilter : ServiceStack.OrmLite.IOrmLiteExecFilter - { - public virtual System.Data.IDbCommand CreateCommand(System.Data.IDbConnection dbConn) => throw null; - public virtual void DisposeCommand(System.Data.IDbCommand dbCmd, System.Data.IDbConnection dbConn) => throw null; - public virtual void Exec(System.Data.IDbConnection dbConn, System.Action filter) => throw null; - public virtual T Exec(System.Data.IDbConnection dbConn, System.Func filter) => throw null; - public virtual System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func> filter) => throw null; - public virtual System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func> filter) => throw null; - public virtual System.Threading.Tasks.Task Exec(System.Data.IDbConnection dbConn, System.Func filter) => throw null; - public virtual System.Data.IDbCommand Exec(System.Data.IDbConnection dbConn, System.Func filter) => throw null; - public virtual System.Collections.Generic.IEnumerable ExecLazy(System.Data.IDbConnection dbConn, System.Func> filter) => throw null; - public OrmLiteExecFilter() => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SqlExpression(System.Data.IDbConnection dbConn) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteNamingStrategyBase` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteNamingStrategyBase : ServiceStack.OrmLite.INamingStrategy - { - public virtual string ApplyNameRestrictions(string name) => throw null; - public virtual string GetColumnName(string name) => throw null; - public virtual string GetSchemaName(string name) => throw null; - public virtual string GetSchemaName(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public virtual string GetSequenceName(string modelName, string fieldName) => throw null; - public virtual string GetTableName(string name) => throw null; - public virtual string GetTableName(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public OrmLiteNamingStrategyBase() => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLitePersistenceProvider` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLitePersistenceProvider : System.IDisposable, ServiceStack.Data.IEntityStore - { - public System.Data.IDbConnection Connection { get => throw null; } - protected string ConnectionString { get => throw null; set => throw null; } - public void Delete(T entity) => throw null; - public void DeleteAll() => throw null; - public void DeleteById(object id) => throw null; - public void DeleteByIds(System.Collections.ICollection ids) => throw null; - public void Dispose() => throw null; - protected bool DisposeConnection; - public T GetById(object id) => throw null; - public System.Collections.Generic.IList GetByIds(System.Collections.ICollection ids) => throw null; - public OrmLitePersistenceProvider(string connectionString) => throw null; - public OrmLitePersistenceProvider(System.Data.IDbConnection connection) => throw null; - public T Store(T entity) => throw null; - public void StoreAll(System.Collections.Generic.IEnumerable entities) => throw null; - protected System.Data.IDbConnection connection; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteReadApi` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteReadApi - { - public static System.Collections.Generic.List Column(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Collections.Generic.List Column(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static System.Collections.Generic.List Column(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; - public static System.Collections.Generic.HashSet ColumnDistinct(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Collections.Generic.HashSet ColumnDistinct(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static System.Collections.Generic.HashSet ColumnDistinct(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; - public static System.Collections.Generic.IEnumerable ColumnLazy(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Collections.Generic.IEnumerable ColumnLazy(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static System.Collections.Generic.IEnumerable ColumnLazy(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; - public static System.Collections.Generic.Dictionary Dictionary(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Collections.Generic.Dictionary Dictionary(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; - public static int ExecuteNonQuery(this System.Data.IDbConnection dbConn, string sql, object anonType) => throw null; - public static int ExecuteNonQuery(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; - public static int ExecuteNonQuery(this System.Data.IDbConnection dbConn, string sql, System.Action dbCmdFilter) => throw null; - public static int ExecuteNonQuery(this System.Data.IDbConnection dbConn, string sql) => throw null; - public static bool Exists(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static bool Exists(this System.Data.IDbConnection dbConn, object anonType) => throw null; - public static bool Exists(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> expression) => throw null; - public static bool Exists(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Collections.Generic.List> KeyValuePairs(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Collections.Generic.List> KeyValuePairs(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; - public static System.Int64 LastInsertId(this System.Data.IDbConnection dbConn) => throw null; - public static void LoadReferences(this System.Data.IDbConnection dbConn, T instance) => throw null; - public static T LoadSingleById(this System.Data.IDbConnection dbConn, object idValue, string[] include = default(string[])) => throw null; - public static T LoadSingleById(this System.Data.IDbConnection dbConn, object idValue, System.Linq.Expressions.Expression> include) => throw null; - public static System.Int64 LongScalar(this System.Data.IDbConnection dbConn) => throw null; - public static System.Collections.Generic.Dictionary> Lookup(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Collections.Generic.Dictionary> Lookup(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static System.Collections.Generic.Dictionary> Lookup(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; - public static T Scalar(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static T Scalar(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static T Scalar(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Type fromTableType, string sql, object anonType) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Type fromTableType) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, string sql, object anonType) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, string sql) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn) => throw null; - public static System.Collections.Generic.List SelectByIds(this System.Data.IDbConnection dbConn, System.Collections.IEnumerable idValues) => throw null; - public static System.Collections.Generic.IEnumerable SelectLazy(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Collections.Generic.IEnumerable SelectLazy(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Collections.Generic.IEnumerable SelectLazy(this System.Data.IDbConnection dbConn) => throw null; - public static System.Collections.Generic.List SelectNonDefaults(this System.Data.IDbConnection dbConn, string sql, T filter) => throw null; - public static System.Collections.Generic.List SelectNonDefaults(this System.Data.IDbConnection dbConn, T filter) => throw null; - public static T Single(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static T Single(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static T Single(this System.Data.IDbConnection dbConn, object anonType) => throw null; - public static T SingleById(this System.Data.IDbConnection dbConn, object idValue) => throw null; - public static T SingleWhere(this System.Data.IDbConnection dbConn, string name, object value) => throw null; - public static System.Collections.Generic.List SqlColumn(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Collections.Generic.List SqlColumn(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static System.Collections.Generic.List SqlColumn(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; - public static System.Collections.Generic.List SqlColumn(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; - public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; - public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, string sql, System.Action dbCmdFilter) => throw null; - public static System.Collections.Generic.List SqlList(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; - public static System.Data.IDbCommand SqlProc(this System.Data.IDbConnection dbConn, string name, object inParams = default(object), bool excludeDefaults = default(bool)) => throw null; - public static System.Collections.Generic.List SqlProcedure(this System.Data.IDbConnection dbConn, object anonType, string sqlFilter, params object[] filterParams) where TOutputModel : new() => throw null; - public static System.Collections.Generic.List SqlProcedure(this System.Data.IDbConnection dbConn, object anonType) => throw null; - public static T SqlScalar(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static T SqlScalar(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static T SqlScalar(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict) => throw null; - public static T SqlScalar(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; - public static System.Collections.Generic.List Where(this System.Data.IDbConnection dbConn, string name, object value) => throw null; - public static System.Collections.Generic.List Where(this System.Data.IDbConnection dbConn, object anonType) => throw null; - public static System.Collections.Generic.IEnumerable WhereLazy(this System.Data.IDbConnection dbConn, object anonType) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteReadApiAsync` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteReadApiAsync - { - public static System.Threading.Tasks.Task> ColumnAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ColumnAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ColumnAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ColumnDistinctAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ColumnDistinctAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ColumnDistinctAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> DictionaryAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> DictionaryAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> DictionaryAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExecuteNonQueryAsync(this System.Data.IDbConnection dbConn, string sql, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExecuteNonQueryAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExecuteNonQueryAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> KeyValuePairsAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> KeyValuePairsAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> KeyValuePairsAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task LoadReferencesAsync(this System.Data.IDbConnection dbConn, T instance, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task LoadSingleByIdAsync(this System.Data.IDbConnection dbConn, object idValue, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task LoadSingleByIdAsync(this System.Data.IDbConnection dbConn, object idValue, System.Linq.Expressions.Expression> include, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task LongScalarAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> LookupAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> LookupAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> LookupAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static T ScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Type fromTableType, string sqlFilter, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Type fromTableType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, string sql, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectByIdsAsync(this System.Data.IDbConnection dbConn, System.Collections.IEnumerable idValues, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectNonDefaultsAsync(this System.Data.IDbConnection dbConn, string sql, T filter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectNonDefaultsAsync(this System.Data.IDbConnection dbConn, T filter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleByIdAsync(this System.Data.IDbConnection dbConn, object idValue, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleWhereAsync(this System.Data.IDbConnection dbConn, string name, object value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlColumnAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlColumnAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlColumnAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlColumnAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, string sql, System.Action dbCmdFilter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlListAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SqlProcedureAsync(this System.Data.IDbConnection dbConn, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SqlScalarAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SqlScalarAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SqlScalarAsync(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SqlScalarAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> WhereAsync(this System.Data.IDbConnection dbConn, string name, object value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> WhereAsync(this System.Data.IDbConnection dbConn, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteReadCommandExtensions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteReadCommandExtensions - { - public static System.Data.IDbDataParameter AddParam(this System.Data.IDbCommand dbCmd, string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?), int? size = default(int?), System.Action paramFilter = default(System.Action)) => throw null; - public static void ClearFilters(this System.Data.IDbCommand dbCmd) => throw null; - public static System.Data.IDbDataParameter CreateParam(this System.Data.IDbCommand dbCmd, string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?), int? size = default(int?)) => throw null; - public static ServiceStack.OrmLite.FieldDefinition GetRefFieldDef(this ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.ModelDefinition refModelDef, System.Type refType) => throw null; - public static ServiceStack.OrmLite.FieldDefinition GetRefFieldDefIfExists(this ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.ModelDefinition refModelDef) => throw null; - public static ServiceStack.OrmLite.FieldDefinition GetSelfRefFieldDefIfExists(this ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.ModelDefinition refModelDef, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static void LoadReferences(this System.Data.IDbCommand dbCmd, T instance, System.Collections.Generic.IEnumerable include = default(System.Collections.Generic.IEnumerable)) => throw null; - public static System.Int64 LongScalar(this System.Data.IDbCommand dbCmd) => throw null; - public static System.Data.IDbCommand SetFilters(this System.Data.IDbCommand dbCmd, object anonType) => throw null; - public const string UseDbConnectionExtensions = default; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteReadExpressionsApi` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteReadExpressionsApi - { - public static System.Int64 Count(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> expression) => throw null; - public static System.Int64 Count(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Int64 Count(this System.Data.IDbConnection dbConn) => throw null; - public static void DisableForeignKeysCheck(this System.Data.IDbConnection dbConn) => throw null; - public static void EnableForeignKeysCheck(this System.Data.IDbConnection dbConn) => throw null; - public static void Exec(this System.Data.IDbConnection dbConn, System.Action filter) => throw null; - public static T Exec(this System.Data.IDbConnection dbConn, System.Func filter) => throw null; - public static System.Threading.Tasks.Task Exec(this System.Data.IDbConnection dbConn, System.Func> filter) => throw null; - public static System.Threading.Tasks.Task Exec(this System.Data.IDbConnection dbConn, System.Func> filter) => throw null; - public static System.Threading.Tasks.Task Exec(this System.Data.IDbConnection dbConn, System.Func filter) => throw null; - public static System.Data.IDbCommand Exec(this System.Data.IDbConnection dbConn, System.Func filter) => throw null; - public static System.Collections.Generic.IEnumerable ExecLazy(this System.Data.IDbConnection dbConn, System.Func> filter) => throw null; - public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, string fromExpression) => throw null; - public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, System.Action> options) => throw null; - public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.TableOptions tableOptions, System.Action> options) => throw null; - public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.TableOptions tableOptions) => throw null; - public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn) => throw null; - public static ServiceStack.OrmLite.SqlExpression From(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public static string GetQuotedTableName(this System.Data.IDbConnection db) => throw null; - public static System.Data.DataTable GetSchemaTable(this System.Data.IDbConnection dbConn, string sql) => throw null; - public static ServiceStack.OrmLite.ColumnSchema[] GetTableColumns(this System.Data.IDbConnection dbConn) => throw null; - public static ServiceStack.OrmLite.ColumnSchema[] GetTableColumns(this System.Data.IDbConnection dbConn, string sql) => throw null; - public static ServiceStack.OrmLite.ColumnSchema[] GetTableColumns(this System.Data.IDbConnection dbConn, System.Type type) => throw null; - public static string GetTableName(this System.Data.IDbConnection db) => throw null; - public static System.Collections.Generic.List GetTableNames(this System.Data.IDbConnection db, string schema) => throw null; - public static System.Collections.Generic.List GetTableNames(this System.Data.IDbConnection db) => throw null; - public static System.Threading.Tasks.Task> GetTableNamesAsync(this System.Data.IDbConnection db, string schema) => throw null; - public static System.Threading.Tasks.Task> GetTableNamesAsync(this System.Data.IDbConnection db) => throw null; - public static System.Collections.Generic.List> GetTableNamesWithRowCounts(this System.Data.IDbConnection db, bool live = default(bool), string schema = default(string)) => throw null; - public static System.Threading.Tasks.Task>> GetTableNamesWithRowCountsAsync(this System.Data.IDbConnection db, bool live = default(bool), string schema = default(string)) => throw null; - public static ServiceStack.OrmLite.JoinFormatDelegate JoinAlias(this System.Data.IDbConnection db, string alias) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, string[] include = default(string[])) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, System.Linq.Expressions.Expression> include) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Linq.Expressions.Expression> include) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Collections.Generic.IEnumerable include) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression = default(ServiceStack.OrmLite.SqlExpression), string[] include = default(string[])) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] include = default(string[])) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Linq.Expressions.Expression> include) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Collections.Generic.IEnumerable include) => throw null; - public static System.Data.IDbCommand OpenCommand(this System.Data.IDbConnection dbConn) => throw null; - public static System.Data.IDbTransaction OpenTransaction(this System.Data.IDbConnection dbConn, System.Data.IsolationLevel isolationLevel) => throw null; - public static System.Data.IDbTransaction OpenTransaction(this System.Data.IDbConnection dbConn) => throw null; - public static System.Data.IDbTransaction OpenTransactionIfNotExists(this System.Data.IDbConnection dbConn, System.Data.IsolationLevel isolationLevel) => throw null; - public static System.Data.IDbTransaction OpenTransactionIfNotExists(this System.Data.IDbConnection dbConn) => throw null; - public static System.Int64 RowCount(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Int64 RowCount(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object)) => throw null; - public static System.Int64 RowCount(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.IEnumerable sqlParams) => throw null; - public static TKey Scalar(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> predicate) => throw null; - public static TKey Scalar(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression expression, object anonType = default(object)) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects) => throw null; - public static System.Collections.Generic.List> SelectMulti(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static T Single(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate) => throw null; - public static T Single(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static T Single(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression expression) => throw null; - public static ServiceStack.OrmLite.TableOptions TableAlias(this System.Data.IDbConnection db, string alias) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteReadExpressionsApiAsync` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteReadExpressionsApiAsync - { - public static System.Threading.Tasks.Task CountAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task CountAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task CountAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DisableForeignKeysCheckAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task EnableForeignKeysCheckAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetSchemaTableAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetTableColumnsAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetTableColumnsAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetTableColumnsAsync(this System.Data.IDbConnection dbConn, System.Type type, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, System.Linq.Expressions.Expression> include) => throw null; - public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Collections.Generic.IEnumerable include, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Linq.Expressions.Expression> include) => throw null; - public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Collections.Generic.IEnumerable include, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task RowCountAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task RowCountAsync(this System.Data.IDbConnection dbConn, string sql, object anonType = default(object), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, string[] tableSelects, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task>> SelectMultiAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> predicate, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteResultsFilter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteResultsFilter : System.IDisposable, ServiceStack.OrmLite.IOrmLiteResultsFilter - { - public System.Collections.IEnumerable ColumnDistinctResults { get => throw null; set => throw null; } - public System.Func ColumnDistinctResultsFn { get => throw null; set => throw null; } - public System.Collections.IEnumerable ColumnResults { get => throw null; set => throw null; } - public System.Func ColumnResultsFn { get => throw null; set => throw null; } - public System.Collections.IDictionary DictionaryResults { get => throw null; set => throw null; } - public System.Func DictionaryResultsFn { get => throw null; set => throw null; } - public void Dispose() => throw null; - public int ExecuteSql(System.Data.IDbCommand dbCmd) => throw null; - public System.Func ExecuteSqlFn { get => throw null; set => throw null; } - public int ExecuteSqlResult { get => throw null; set => throw null; } - public System.Collections.Generic.List GetColumn(System.Data.IDbCommand dbCmd) => throw null; - public System.Collections.Generic.HashSet GetColumnDistinct(System.Data.IDbCommand dbCmd) => throw null; - public System.Collections.Generic.Dictionary GetDictionary(System.Data.IDbCommand dbCmd) => throw null; - public System.Collections.Generic.List> GetKeyValuePairs(System.Data.IDbCommand dbCmd) => throw null; - public System.Int64 GetLastInsertId(System.Data.IDbCommand dbCmd) => throw null; - public System.Collections.Generic.List GetList(System.Data.IDbCommand dbCmd) => throw null; - public System.Int64 GetLongScalar(System.Data.IDbCommand dbCmd) => throw null; - public System.Collections.Generic.Dictionary> GetLookup(System.Data.IDbCommand dbCmd) => throw null; - public System.Collections.IList GetRefList(System.Data.IDbCommand dbCmd, System.Type refType) => throw null; - public object GetRefSingle(System.Data.IDbCommand dbCmd, System.Type refType) => throw null; - public object GetScalar(System.Data.IDbCommand dbCmd) => throw null; - public T GetScalar(System.Data.IDbCommand dbCmd) => throw null; - public T GetSingle(System.Data.IDbCommand dbCmd) => throw null; - public System.Int64 LastInsertId { get => throw null; set => throw null; } - public System.Func LastInsertIdFn { get => throw null; set => throw null; } - public System.Int64 LongScalarResult { get => throw null; set => throw null; } - public System.Func LongScalarResultFn { get => throw null; set => throw null; } - public System.Collections.IDictionary LookupResults { get => throw null; set => throw null; } - public System.Func LookupResultsFn { get => throw null; set => throw null; } - public OrmLiteResultsFilter(System.Collections.IEnumerable results = default(System.Collections.IEnumerable)) => throw null; - public bool PrintSql { get => throw null; set => throw null; } - public System.Collections.IEnumerable RefResults { get => throw null; set => throw null; } - public System.Func RefResultsFn { get => throw null; set => throw null; } - public object RefSingleResult { get => throw null; set => throw null; } - public System.Func RefSingleResultFn { get => throw null; set => throw null; } - public System.Collections.IEnumerable Results { get => throw null; set => throw null; } - public System.Func ResultsFn { get => throw null; set => throw null; } - public object ScalarResult { get => throw null; set => throw null; } - public System.Func ScalarResultFn { get => throw null; set => throw null; } - public object SingleResult { get => throw null; set => throw null; } - public System.Func SingleResultFn { get => throw null; set => throw null; } - public System.Action SqlCommandFilter { get => throw null; set => throw null; } - public System.Action SqlFilter { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.OrmLiteResultsFilterExtensions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteResultsFilterExtensions - { - public static T ConvertTo(this System.Data.IDbCommand dbCmd, string sql = default(string)) => throw null; - public static System.Collections.IList ConvertToList(this System.Data.IDbCommand dbCmd, System.Type refType, string sql = default(string)) => throw null; - public static System.Collections.Generic.List ConvertToList(this System.Data.IDbCommand dbCmd, string sql = default(string)) => throw null; - public static System.Int64 ExecLongScalar(this System.Data.IDbCommand dbCmd, string sql = default(string)) => throw null; - public static int ExecNonQuery(this System.Data.IDbCommand dbCmd, string sql, object anonType = default(object)) => throw null; - public static int ExecNonQuery(this System.Data.IDbCommand dbCmd, string sql, System.Collections.Generic.Dictionary dict) => throw null; - public static int ExecNonQuery(this System.Data.IDbCommand dbCmd, string sql, System.Action dbCmdFilter) => throw null; - public static int ExecNonQuery(this System.Data.IDbCommand dbCmd) => throw null; - public static System.Data.IDbDataParameter PopulateWith(this System.Data.IDbDataParameter to, System.Data.IDbDataParameter from) => throw null; - public static object Scalar(this System.Data.IDbCommand dbCmd, string sql = default(string)) => throw null; - public static object Scalar(this System.Data.IDbCommand dbCmd, ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteResultsFilterExtensionsAsync` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteResultsFilterExtensionsAsync - { - public static System.Threading.Tasks.Task ConvertToAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task ConvertToAsync(this System.Data.IDbCommand dbCmd) => throw null; - public static System.Threading.Tasks.Task ConvertToListAsync(this System.Data.IDbCommand dbCmd, System.Type refType, string sql, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task ConvertToListAsync(this System.Data.IDbCommand dbCmd, System.Type refType) => throw null; - public static System.Threading.Tasks.Task> ConvertToListAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task> ConvertToListAsync(this System.Data.IDbCommand dbCmd) => throw null; - public static System.Threading.Tasks.Task ExecLongScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task ExecLongScalarAsync(this System.Data.IDbCommand dbCmd) => throw null; - public static System.Threading.Tasks.Task ExecNonQueryAsync(this System.Data.IDbCommand dbCmd, string sql, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExecNonQueryAsync(this System.Data.IDbCommand dbCmd, string sql, System.Collections.Generic.Dictionary dict, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExecNonQueryAsync(this System.Data.IDbCommand dbCmd, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd, ServiceStack.OrmLite.ISqlExpression expression, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd, string sql, System.Collections.Generic.IEnumerable sqlParams, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task ScalarAsync(this System.Data.IDbCommand dbCmd) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteSPStatement` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteSPStatement : System.IDisposable - { - public System.Collections.Generic.List ConvertFirstColumnToList() => throw null; - public System.Collections.Generic.HashSet ConvertFirstColumnToListDistinct() => throw null; - public T ConvertTo() => throw null; - public System.Collections.Generic.List ConvertToList() => throw null; - public T ConvertToScalar() => throw null; - public System.Collections.Generic.List ConvertToScalarList() => throw null; - public void Dispose() => throw null; - public int ExecuteNonQuery() => throw null; - public bool HasResult() => throw null; - public OrmLiteSPStatement(System.Data.IDbConnection db, System.Data.IDbCommand dbCmd) => throw null; - public OrmLiteSPStatement(System.Data.IDbCommand dbCmd) => throw null; - public int ReturnValue { get => throw null; } - public bool TryGetParameterValue(string parameterName, out object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteSchemaApi` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteSchemaApi - { - public static bool ColumnExists(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; - public static bool ColumnExists(this System.Data.IDbConnection dbConn, string columnName, string tableName, string schema = default(string)) => throw null; - public static System.Threading.Tasks.Task ColumnExistsAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ColumnExistsAsync(this System.Data.IDbConnection dbConn, string columnName, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void CreateSchema(this System.Data.IDbConnection dbConn) => throw null; - public static bool CreateSchema(this System.Data.IDbConnection dbConn, string schemaName) => throw null; - public static void CreateTable(this System.Data.IDbConnection dbConn, bool overwrite = default(bool)) => throw null; - public static void CreateTable(this System.Data.IDbConnection dbConn, bool overwrite, System.Type modelType) => throw null; - public static void CreateTableIfNotExists(this System.Data.IDbConnection dbConn, params System.Type[] tableTypes) => throw null; - public static bool CreateTableIfNotExists(this System.Data.IDbConnection dbConn) => throw null; - public static bool CreateTableIfNotExists(this System.Data.IDbConnection dbConn, System.Type modelType) => throw null; - public static void CreateTables(this System.Data.IDbConnection dbConn, bool overwrite, params System.Type[] tableTypes) => throw null; - public static void DropAndCreateTable(this System.Data.IDbConnection dbConn) => throw null; - public static void DropAndCreateTable(this System.Data.IDbConnection dbConn, System.Type modelType) => throw null; - public static void DropAndCreateTables(this System.Data.IDbConnection dbConn, params System.Type[] tableTypes) => throw null; - public static void DropTable(this System.Data.IDbConnection dbConn) => throw null; - public static void DropTable(this System.Data.IDbConnection dbConn, System.Type modelType) => throw null; - public static void DropTables(this System.Data.IDbConnection dbConn, params System.Type[] tableTypes) => throw null; - public static bool TableExists(this System.Data.IDbConnection dbConn) => throw null; - public static bool TableExists(this System.Data.IDbConnection dbConn, string tableName, string schema = default(string)) => throw null; - public static System.Threading.Tasks.Task TableExistsAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task TableExistsAsync(this System.Data.IDbConnection dbConn, string tableName, string schema = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteSchemaModifyApi` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteSchemaModifyApi - { - public static void AddColumn(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; - public static void AddColumn(this System.Data.IDbConnection dbConn, System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static void AddForeignKey(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, System.Linq.Expressions.Expression> foreignField, ServiceStack.OrmLite.OnFkOption onUpdate, ServiceStack.OrmLite.OnFkOption onDelete, string foreignKeyName = default(string)) => throw null; - public static void AlterColumn(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; - public static void AlterColumn(this System.Data.IDbConnection dbConn, System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public static void AlterTable(this System.Data.IDbConnection dbConn, string command) => throw null; - public static void AlterTable(this System.Data.IDbConnection dbConn, System.Type modelType, string command) => throw null; - public static void ChangeColumnName(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, string oldColumnName) => throw null; - public static void ChangeColumnName(this System.Data.IDbConnection dbConn, System.Type modelType, ServiceStack.OrmLite.FieldDefinition fieldDef, string oldColumnName) => throw null; - public static void CreateIndex(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field, string indexName = default(string), bool unique = default(bool)) => throw null; - public static void DropColumn(this System.Data.IDbConnection dbConn, string columnName) => throw null; - public static void DropColumn(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> field) => throw null; - public static void DropColumn(this System.Data.IDbConnection dbConn, System.Type modelType, string columnName) => throw null; - public static void DropForeignKey(this System.Data.IDbConnection dbConn, string foreignKeyName) => throw null; - public static void DropIndex(this System.Data.IDbConnection dbConn, string indexName) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteState` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteState - { - public System.Int64 Id; - public OrmLiteState() => throw null; - public ServiceStack.OrmLite.IOrmLiteResultsFilter ResultsFilter; - public System.Data.IDbTransaction TSTransaction; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteTransaction` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrmLiteTransaction : System.IDisposable, System.Data.IDbTransaction, ServiceStack.Data.IHasDbTransaction - { - public void Commit() => throw null; - public System.Data.IDbConnection Connection { get => throw null; } - public System.Data.IDbTransaction DbTransaction { get => throw null; } - public void Dispose() => throw null; - public System.Data.IsolationLevel IsolationLevel { get => throw null; } - public OrmLiteTransaction(System.Data.IDbConnection db, System.Data.IDbTransaction transaction) => throw null; - public void Rollback() => throw null; - public System.Data.IDbTransaction Transaction { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.OrmLiteUtils` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteUtils - { - public static string AliasOrColumn(this string quotedExpr) => throw null; - public static string[] AllAnonFields(this System.Type type) => throw null; - public static void AssertNotAnonType() => throw null; - public static void CaptureSql(System.Text.StringBuilder sb) => throw null; - public static System.Text.StringBuilder CaptureSql() => throw null; - public static object ConvertTo(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Type type) => throw null; - public static T ConvertTo(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Collections.Generic.HashSet onlyFields = default(System.Collections.Generic.HashSet)) => throw null; - public static System.Collections.Generic.Dictionary ConvertToDictionaryObjects(this System.Data.IDataReader dataReader) => throw null; - public static System.Collections.Generic.IDictionary ConvertToExpandoObject(this System.Data.IDataReader dataReader) => throw null; - public static System.Collections.IList ConvertToList(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Type type) => throw null; - public static System.Collections.Generic.List ConvertToList(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Collections.Generic.HashSet onlyFields = default(System.Collections.Generic.HashSet)) => throw null; - public static System.Collections.Generic.List ConvertToListObjects(this System.Data.IDataReader dataReader) => throw null; - public static System.UInt64 ConvertToULong(System.Byte[] bytes) => throw null; - public static T ConvertToValueTuple(this System.Data.IDataReader reader, object[] values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - public static T CreateInstance() => throw null; - public static void DebugCommand(this ServiceStack.Logging.ILog log, System.Data.IDbCommand cmd) => throw null; - public static T EvalFactoryFn(this System.Linq.Expressions.Expression> expr) => throw null; - public static string GetColumnNames(this ServiceStack.OrmLite.ModelDefinition modelDef, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; - public static string GetDebugString(this System.Data.IDbCommand cmd) => throw null; - public static System.Tuple[] GetIndexFieldsCache(this System.Data.IDataReader reader, ServiceStack.OrmLite.ModelDefinition modelDefinition, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Collections.Generic.HashSet onlyFields = default(System.Collections.Generic.HashSet), int startPos = default(int), int? endPos = default(int?)) => throw null; - public static ServiceStack.OrmLite.ModelDefinition GetModelDefinition(System.Type modelType) => throw null; - public static System.Collections.Generic.List GetNonDefaultValueInsertFields(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, object obj) => throw null; - public static System.Collections.Generic.List GetNonDefaultValueInsertFields(T obj) => throw null; - public static void HandleException(System.Exception ex, string message = default(string)) => throw null; - public static string[] IllegalSqlFragmentTokens; - public static bool IsRefType(this System.Type fieldType) => throw null; - public static bool IsScalar() => throw null; - public static ServiceStack.OrmLite.JoinFormatDelegate JoinAlias(string alias) => throw null; - public static System.Collections.Generic.List Merge(this System.Collections.Generic.List parents, System.Collections.Generic.List children) => throw null; - public static System.Collections.Generic.List Merge(this Parent parent, System.Collections.Generic.List children) => throw null; - public static string OrderByFields(ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string orderBy) => throw null; - public static System.Collections.Generic.List ParseTokens(this string expr) => throw null; - public static void PrintSql() => throw null; - public static string QuotedLiteral(string text) => throw null; - public static string SqlColumn(this string columnName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static string SqlColumnRaw(this string columnName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static string SqlFmt(this string sqlText, params object[] sqlParams) => throw null; - public static string SqlFmt(this string sqlText, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, params object[] sqlParams) => throw null; - public static string SqlInParams(this T[] values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static ServiceStack.OrmLite.SqlInValues SqlInValues(this T[] values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static string SqlJoin(this System.Collections.Generic.List values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static string SqlJoin(System.Collections.IEnumerable values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static string SqlParam(this string paramValue) => throw null; - public static string SqlTable(this string tableName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static string SqlTableRaw(this string tableName, ServiceStack.OrmLite.IOrmLiteDialectProvider dialect = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public static string SqlValue(this object value) => throw null; - public static string SqlVerifyFragment(this string sqlFragment, System.Collections.Generic.IEnumerable illegalFragments) => throw null; - public static string SqlVerifyFragment(this string sqlFragment) => throw null; - public static System.Func SqlVerifyFragmentFn { get => throw null; set => throw null; } - public static string StripDbQuotes(this string quotedExpr) => throw null; - public static string StripQuotedStrings(this string text, System.Char quote = default(System.Char)) => throw null; - public static string StripTablePrefixes(this string selectExpression) => throw null; - public static string ToSelectString(this System.Collections.Generic.IEnumerable items) => throw null; - public static void UnCaptureSql() => throw null; - public static string UnCaptureSqlAndFree(System.Text.StringBuilder sb) => throw null; - public static void UnPrintSql() => throw null; - public static string UnquotedColumnName(string columnExpr) => throw null; - public static System.Text.RegularExpressions.Regex VerifyFragmentRegEx; - public static System.Text.RegularExpressions.Regex VerifySqlRegEx; - public static bool isUnsafeSql(string sql, System.Text.RegularExpressions.Regex verifySql) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteVariables` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteVariables - { - public const string False = default; - public const string MaxText = default; - public const string MaxTextUnicode = default; - public const string SystemUtc = default; - public const string True = default; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteWriteApi` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteWriteApi - { - public static int Delete(this System.Data.IDbConnection dbConn, string sqlFilter, object anonType) => throw null; - public static int Delete(this System.Data.IDbConnection dbConn, params T[] allFieldsFilters) => throw null; - public static int Delete(this System.Data.IDbConnection dbConn, object anonFilter, System.Action commandFilter = default(System.Action)) => throw null; - public static int Delete(this System.Data.IDbConnection dbConn, T allFieldsFilter, System.Action commandFilter = default(System.Action)) => throw null; - public static int Delete(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary filters) => throw null; - public static int Delete(this System.Data.IDbConnection dbConn, System.Type tableType, string sqlFilter, object anonType) => throw null; - public static int DeleteAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable rows) => throw null; - public static int DeleteAll(this System.Data.IDbConnection dbConn) => throw null; - public static int DeleteAll(this System.Data.IDbConnection dbConn, System.Type tableType) => throw null; - public static void DeleteById(this System.Data.IDbConnection dbConn, object id, System.UInt64 rowVersion, System.Action commandFilter = default(System.Action)) => throw null; - public static int DeleteById(this System.Data.IDbConnection dbConn, object id, System.Action commandFilter = default(System.Action)) => throw null; - public static int DeleteByIds(this System.Data.IDbConnection dbConn, System.Collections.IEnumerable idValues) => throw null; - public static int DeleteNonDefaults(this System.Data.IDbConnection dbConn, params T[] nonDefaultsFilters) => throw null; - public static int DeleteNonDefaults(this System.Data.IDbConnection dbConn, T nonDefaultsFilter) => throw null; - public static void ExecuteProcedure(this System.Data.IDbConnection dbConn, T obj) => throw null; - public static int ExecuteSql(this System.Data.IDbConnection dbConn, string sql, object dbParams) => throw null; - public static int ExecuteSql(this System.Data.IDbConnection dbConn, string sql, System.Collections.Generic.Dictionary dbParams) => throw null; - public static int ExecuteSql(this System.Data.IDbConnection dbConn, string sql) => throw null; - public static string GetLastSql(this System.Data.IDbConnection dbConn) => throw null; - public static string GetLastSqlAndParams(this System.Data.IDbCommand dbCmd) => throw null; - public static object GetRowVersion(this System.Data.IDbConnection dbConn, object id) => throw null; - public static object GetRowVersion(this System.Data.IDbConnection dbConn, System.Type modelType, object id) => throw null; - public static void Insert(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; - public static void Insert(this System.Data.IDbConnection dbConn, System.Action commandFilter, params T[] objs) => throw null; - public static System.Int64 Insert(this System.Data.IDbConnection dbConn, T obj, bool selectIdentity = default(bool)) => throw null; - public static System.Int64 Insert(this System.Data.IDbConnection dbConn, T obj, System.Action commandFilter, bool selectIdentity = default(bool)) => throw null; - public static System.Int64 Insert(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary obj, bool selectIdentity = default(bool)) => throw null; - public static System.Int64 Insert(this System.Data.IDbConnection dbConn, System.Action commandFilter, System.Collections.Generic.Dictionary obj, bool selectIdentity = default(bool)) => throw null; - public static void InsertAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Action commandFilter) => throw null; - public static void InsertAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs) => throw null; - public static System.Int64 InsertIntoSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Action commandFilter) => throw null; - public static System.Int64 InsertIntoSelect(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query) => throw null; - public static void InsertUsingDefaults(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; - public static int Save(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; - public static bool Save(this System.Data.IDbConnection dbConn, T obj, bool references = default(bool)) => throw null; - public static int SaveAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs) => throw null; - public static void SaveAllReferences(this System.Data.IDbConnection dbConn, T instance) => throw null; - public static void SaveReferences(this System.Data.IDbConnection dbConn, T instance, params TRef[] refs) => throw null; - public static void SaveReferences(this System.Data.IDbConnection dbConn, T instance, System.Collections.Generic.List refs) => throw null; - public static void SaveReferences(this System.Data.IDbConnection dbConn, T instance, System.Collections.Generic.IEnumerable refs) => throw null; - public static string ToInsertStatement(this System.Data.IDbConnection dbConn, T item, System.Collections.Generic.ICollection insertFields = default(System.Collections.Generic.ICollection)) => throw null; - public static string ToUpdateStatement(this System.Data.IDbConnection dbConn, T item, System.Collections.Generic.ICollection updateFields = default(System.Collections.Generic.ICollection)) => throw null; - public static int Update(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; - public static int Update(this System.Data.IDbConnection dbConn, T obj, System.Action commandFilter = default(System.Action)) => throw null; - public static int Update(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary obj, System.Action commandFilter = default(System.Action)) => throw null; - public static int Update(this System.Data.IDbConnection dbConn, System.Action commandFilter, params T[] objs) => throw null; - public static int UpdateAll(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Action commandFilter = default(System.Action)) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteWriteApiAsync` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteWriteApiAsync - { - public static System.Threading.Tasks.Task DeleteAllAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteAllAsync(this System.Data.IDbConnection dbConn, System.Type tableType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, string sqlFilter, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, object anonFilter, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, T allFieldsFilter, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary filters, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter = default(System.Action), params T[] allFieldsFilters) => throw null; - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken), params T[] allFieldsFilters) => throw null; - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Type tableType, string sqlFilter, object anonType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteByIdAsync(this System.Data.IDbConnection dbConn, object id, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteByIdAsync(this System.Data.IDbConnection dbConn, object id, System.UInt64 rowVersion, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteByIdsAsync(this System.Data.IDbConnection dbConn, System.Collections.IEnumerable idValues, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteNonDefaultsAsync(this System.Data.IDbConnection dbConn, params T[] nonDefaultsFilters) => throw null; - public static System.Threading.Tasks.Task DeleteNonDefaultsAsync(this System.Data.IDbConnection dbConn, T nonDefaultsFilter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteNonDefaultsAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, params T[] nonDefaultsFilters) => throw null; - public static System.Threading.Tasks.Task ExecuteProcedureAsync(this System.Data.IDbConnection dbConn, T obj, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExecuteSqlAsync(this System.Data.IDbConnection dbConn, string sql, object dbParams, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExecuteSqlAsync(this System.Data.IDbConnection dbConn, string sql, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetRowVersionAsync(this System.Data.IDbConnection dbConn, object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetRowVersionAsync(this System.Data.IDbConnection dbConn, System.Type modelType, object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertAllAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertAllAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Action commandFilter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, T obj, bool selectIdentity = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, T obj, System.Action commandFilter, bool selectIdentity = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary obj, bool selectIdentity = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter, System.Collections.Generic.Dictionary obj, bool selectIdentity = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; - public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, params T[] objs) => throw null; - public static System.Threading.Tasks.Task InsertAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter, System.Threading.CancellationToken token, params T[] objs) => throw null; - public static System.Threading.Tasks.Task InsertIntoSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertIntoSelectAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.ISqlExpression query, System.Action commandFilter, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertUsingDefaultsAsync(this System.Data.IDbConnection dbConn, T[] objs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SaveAllAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SaveAllReferencesAsync(this System.Data.IDbConnection dbConn, T instance, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SaveAsync(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; - public static System.Threading.Tasks.Task SaveAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, params T[] objs) => throw null; - public static System.Threading.Tasks.Task SaveAsync(this System.Data.IDbConnection dbConn, T obj, bool references = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SaveReferencesAsync(this System.Data.IDbConnection dbConn, T instance, params TRef[] refs) => throw null; - public static System.Threading.Tasks.Task SaveReferencesAsync(this System.Data.IDbConnection dbConn, T instance, System.Collections.Generic.List refs, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SaveReferencesAsync(this System.Data.IDbConnection dbConn, T instance, System.Collections.Generic.IEnumerable refs, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task SaveReferencesAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, T instance, params TRef[] refs) => throw null; - public static System.Threading.Tasks.Task UpdateAllAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.IEnumerable objs, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, params T[] objs) => throw null; - public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, T obj, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, params T[] objs) => throw null; - public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary obj, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter, params T[] objs) => throw null; - public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, System.Action commandFilter, System.Threading.CancellationToken token, params T[] objs) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteWriteCommandExtensions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteWriteCommandExtensions - { - public static int GetColumnIndex(this System.Data.IDataReader reader, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string fieldName) => throw null; - public static void PopulateObjectWithSqlReader(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, object objWithProperties, System.Data.IDataReader reader, System.Tuple[] indexCache, object[] values) => throw null; - public static T PopulateWithSqlReader(this T objWithProperties, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDataReader reader, System.Tuple[] indexCache, object[] values) => throw null; - public static T PopulateWithSqlReader(this T objWithProperties, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, System.Data.IDataReader reader) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteWriteExpressionsApi` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteWriteExpressionsApi - { - public static int Delete(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action)) => throw null; - public static int Delete(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression where, System.Action commandFilter = default(System.Action)) => throw null; - public static int DeleteWhere(this System.Data.IDbConnection dbConn, string whereFilter, object[] whereParams) => throw null; - public static System.Int64 InsertOnly(this System.Data.IDbConnection dbConn, T obj, string[] onlyFields, bool selectIdentity = default(bool)) => throw null; - public static System.Int64 InsertOnly(this System.Data.IDbConnection dbConn, T obj, System.Linq.Expressions.Expression> onlyFields, bool selectIdentity = default(bool)) => throw null; - public static System.Int64 InsertOnly(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> insertFields, bool selectIdentity = default(bool)) => throw null; - public static int Update(this System.Data.IDbConnection dbConn, object updateOnly, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action)) => throw null; - public static int Update(this System.Data.IDbConnection dbConn, T item, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateAdd(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateAdd(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, ServiceStack.OrmLite.SqlExpression q, System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateNonDefaults(this System.Data.IDbConnection dbConn, T item, System.Linq.Expressions.Expression> obj) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, T obj, string[] onlyFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, T obj, System.Linq.Expressions.Expression> onlyFields = default(System.Linq.Expressions.Expression>), System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, T model, ServiceStack.OrmLite.SqlExpression onlyFields, System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, string whereExpression, System.Collections.Generic.IEnumerable sqlParams, System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, ServiceStack.OrmLite.SqlExpression q, System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, string whereExpression, object[] whereParams, System.Action commandFilter = default(System.Action)) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, System.Linq.Expressions.Expression> obj) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, System.Action commandFilter = default(System.Action)) => throw null; - } - - // Generated from `ServiceStack.OrmLite.OrmLiteWriteExpressionsApiAsync` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteWriteExpressionsApiAsync - { - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression where, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteWhereAsync(this System.Data.IDbConnection dbConn, string whereFilter, object[] whereParams, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> insertFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, T obj, string[] onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, T obj, System.Linq.Expressions.Expression> onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateAddAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateAddAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, ServiceStack.OrmLite.SqlExpression q, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, object updateOnly, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateAsync(this System.Data.IDbConnection dbConn, T item, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateNonDefaultsAsync(this System.Data.IDbConnection dbConn, T item, System.Linq.Expressions.Expression> obj, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, T obj, string[] onlyFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, T obj, System.Linq.Expressions.Expression> onlyFields = default(System.Linq.Expressions.Expression>), System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, T model, ServiceStack.OrmLite.SqlExpression onlyFields, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, string whereExpression, System.Collections.Generic.IEnumerable sqlParams, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, System.Linq.Expressions.Expression> where = default(System.Linq.Expressions.Expression>), System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Linq.Expressions.Expression> updateFields, ServiceStack.OrmLite.SqlExpression q, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, string whereExpression, object[] whereParams, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, System.Linq.Expressions.Expression> where, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, System.Collections.Generic.Dictionary updateFields, System.Action commandFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.OrmLite.ParameterRebinder` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ParameterRebinder : ServiceStack.OrmLite.SqlExpressionVisitor - { - public ParameterRebinder(System.Collections.Generic.Dictionary map) => throw null; - public static System.Linq.Expressions.Expression ReplaceParameters(System.Collections.Generic.Dictionary map, System.Linq.Expressions.Expression exp) => throw null; - protected override System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression p) => throw null; - } - - // Generated from `ServiceStack.OrmLite.PartialSqlString` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PartialSqlString - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.OrmLite.PartialSqlString other) => throw null; - public override int GetHashCode() => throw null; - public static ServiceStack.OrmLite.PartialSqlString Null; - public PartialSqlString(string text) => throw null; - public string Text { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.OrmLite.PredicateBuilder` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class PredicateBuilder - { - public static System.Linq.Expressions.Expression> And(this System.Linq.Expressions.Expression> first, System.Linq.Expressions.Expression> second) => throw null; - public static System.Linq.Expressions.Expression> Create(System.Linq.Expressions.Expression> predicate) => throw null; - public static System.Linq.Expressions.Expression> False() => throw null; - public static System.Linq.Expressions.Expression> Not(this System.Linq.Expressions.Expression> expression) => throw null; - public static System.Linq.Expressions.Expression> Or(this System.Linq.Expressions.Expression> first, System.Linq.Expressions.Expression> second) => throw null; - public static System.Linq.Expressions.Expression> True() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SelectItem` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class SelectItem - { - public string Alias { get => throw null; set => throw null; } - protected ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } - protected SelectItem(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string alias) => throw null; - public abstract override string ToString(); - } - - // Generated from `ServiceStack.OrmLite.SelectItemColumn` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SelectItemColumn : ServiceStack.OrmLite.SelectItem - { - public string ColumnName { get => throw null; set => throw null; } - public string QuotedTableAlias { get => throw null; set => throw null; } - public SelectItemColumn(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string columnName, string columnAlias = default(string), string quotedTableAlias = default(string)) : base(default(ServiceStack.OrmLite.IOrmLiteDialectProvider), default(string)) => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.OrmLite.SelectItemExpression` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SelectItemExpression : ServiceStack.OrmLite.SelectItem - { - public string SelectExpression { get => throw null; set => throw null; } - public SelectItemExpression(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider, string selectExpression, string alias) : base(default(ServiceStack.OrmLite.IOrmLiteDialectProvider), default(string)) => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Sql` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Sql - { - public static T AllFields(T item) => throw null; - public static string As(T value, object asValue) => throw null; - public static string Avg(string value) => throw null; - public static T Avg(T value) => throw null; - public static string Cast(object value, string castAs) => throw null; - public static string Count(string value) => throw null; - public static T Count(T value) => throw null; - public static T CountDistinct(T value) => throw null; - public static string Custom(string customSql) => throw null; - public static T Custom(string customSql) => throw null; - public static string Desc(T value) => throw null; - public const string EOT = default; - public static System.Collections.Generic.List Flatten(System.Collections.IEnumerable list) => throw null; - public static bool In(T value, params TItem[] list) => throw null; - public static bool In(T value, ServiceStack.OrmLite.SqlExpression query) => throw null; - public static bool? IsJson(string expression) => throw null; - public static string JoinAlias(string property, string tableAlias) => throw null; - public static T JoinAlias(T property, string tableAlias) => throw null; - public static string JsonQuery(string expression, string path) => throw null; - public static string JsonQuery(string expression) => throw null; - public static T JsonQuery(string expression, string path) => throw null; - public static T JsonQuery(string expression) => throw null; - public static string JsonValue(string expression, string path) => throw null; - public static T JsonValue(string expression, string path) => throw null; - public static string Max(string value) => throw null; - public static T Max(T value) => throw null; - public static string Min(string value) => throw null; - public static T Min(T value) => throw null; - public static string Sum(string value) => throw null; - public static T Sum(T value) => throw null; - public static string TableAlias(string property, string tableAlias) => throw null; - public static T TableAlias(T property, string tableAlias) => throw null; - public static string VARCHAR; - } - - // Generated from `ServiceStack.OrmLite.SqlBuilder` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlBuilder - { - public ServiceStack.OrmLite.SqlBuilder AddParameters(object parameters) => throw null; - public ServiceStack.OrmLite.SqlBuilder.Template AddTemplate(string sql, object parameters = default(object)) => throw null; - public ServiceStack.OrmLite.SqlBuilder Join(string sql, object parameters = default(object)) => throw null; - public ServiceStack.OrmLite.SqlBuilder LeftJoin(string sql, object parameters = default(object)) => throw null; - public ServiceStack.OrmLite.SqlBuilder OrderBy(string sql, object parameters = default(object)) => throw null; - public ServiceStack.OrmLite.SqlBuilder Select(string sql, object parameters = default(object)) => throw null; - public SqlBuilder() => throw null; - // Generated from `ServiceStack.OrmLite.SqlBuilder+Template` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Template : ServiceStack.OrmLite.ISqlExpression - { - public object Parameters { get => throw null; } - public System.Collections.Generic.List Params { get => throw null; set => throw null; } - public string RawSql { get => throw null; } - public string SelectInto() => throw null; - public Template(ServiceStack.OrmLite.SqlBuilder builder, string sql, object parameters) => throw null; - public string ToSelectStatement() => throw null; - } - - - public ServiceStack.OrmLite.SqlBuilder Where(string sql, object parameters = default(object)) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlCommandDetails` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlCommandDetails - { - public System.Collections.Generic.Dictionary Parameters { get => throw null; set => throw null; } - public string Sql { get => throw null; set => throw null; } - public SqlCommandDetails(System.Data.IDbCommand command) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlExpression<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class SqlExpression : ServiceStack.OrmLite.ISqlExpression, ServiceStack.OrmLite.IHasUntypedSqlExpression, ServiceStack.OrmLite.IHasDialectProvider - { - public virtual ServiceStack.OrmLite.SqlExpression AddCondition(string condition, string sqlFilter, params object[] filterParams) => throw null; - public virtual System.Data.IDbDataParameter AddParam(object value) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(string sqlFilter, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - protected ServiceStack.OrmLite.SqlExpression AppendToEnsure(System.Linq.Expressions.Expression predicate) => throw null; - protected ServiceStack.OrmLite.SqlExpression AppendToWhere(string condition, string sqlExpression) => throw null; - protected ServiceStack.OrmLite.SqlExpression AppendToWhere(string condition, System.Linq.Expressions.Expression predicate, object[] filterParams) => throw null; - protected ServiceStack.OrmLite.SqlExpression AppendToWhere(string condition, System.Linq.Expressions.Expression predicate) => throw null; - protected virtual string BindOperant(System.Linq.Expressions.ExpressionType e) => throw null; - public string BodyExpression { get => throw null; } - protected bool CheckExpressionForTypes(System.Linq.Expressions.Expression e, System.Linq.Expressions.ExpressionType[] types) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ClearLimits() => throw null; - public ServiceStack.OrmLite.SqlExpression Clone() => throw null; - public string ComputeHash(bool includeParams = default(bool)) => throw null; - protected string ConvertInExpressionToSql(System.Linq.Expressions.MethodCallExpression m, object quotedColName) => throw null; - public string ConvertToParam(object value) => throw null; - protected virtual void ConvertToPlaceholderAndParameter(ref object right) => throw null; - public virtual void CopyParamsTo(System.Data.IDbCommand dbCmd) => throw null; - protected virtual ServiceStack.OrmLite.SqlExpression CopyTo(ServiceStack.OrmLite.SqlExpression to) => throw null; - protected virtual string CreateInSubQuerySql(object quotedColName, string subSelect) => throw null; - public System.Data.IDbDataParameter CreateParam(string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?), System.Data.DataRowVersion sourceVersion = default(System.Data.DataRowVersion)) => throw null; - public ServiceStack.OrmLite.SqlExpression CrossJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression CrossJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression CustomJoin(string joinString) => throw null; - protected bool CustomSelect { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } - public string Dump(bool includeParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; - public ServiceStack.OrmLite.SqlExpression Ensure(string sqlFilter, params object[] filterParams) => throw null; - public const string FalseLiteral = default; - public System.Tuple FirstMatchingField(string fieldName) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression From(string tables) => throw null; - public string FromExpression { get => throw null; set => throw null; } - public ServiceStack.OrmLite.SqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; - public ServiceStack.OrmLite.SqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; - public System.Collections.Generic.IList GetAllFields() => throw null; - protected string GetColumnName(string fieldName) => throw null; - protected object GetFalseExpression() => throw null; - protected virtual object GetMemberExpression(System.Linq.Expressions.MemberExpression m) => throw null; - public ServiceStack.OrmLite.ModelDefinition GetModelDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - protected virtual string GetQuotedColumnName(ServiceStack.OrmLite.ModelDefinition tableDef, string tableAlias, string memberName) => throw null; - protected virtual string GetQuotedColumnName(ServiceStack.OrmLite.ModelDefinition tableDef, string memberName) => throw null; - protected object GetQuotedFalseValue() => throw null; - protected object GetQuotedTrueValue() => throw null; - public virtual string GetSubstringSql(object quotedColumn, int startIndex, int? length = default(int?)) => throw null; - protected virtual string GetTableAlias(System.Linq.Expressions.MemberExpression m) => throw null; - protected object GetTrueExpression() => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression GetUntyped() => throw null; - public virtual object GetValue(object value, System.Type type) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression GroupBy
    (System.Linq.Expressions.Expression> keySelector) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression GroupBy(System.Linq.Expressions.Expression> keySelector) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression GroupBy(System.Linq.Expressions.Expression> keySelector) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression GroupBy(System.Linq.Expressions.Expression> keySelector) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression GroupBy(string groupBy) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression GroupBy(System.Linq.Expressions.Expression> keySelector) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression GroupBy() => throw null; - public string GroupByExpression { get => throw null; set => throw null; } - public virtual ServiceStack.OrmLite.SqlExpression Having(string sqlFilter, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Having(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Having() => throw null; - public string HavingExpression { get => throw null; set => throw null; } - public virtual ServiceStack.OrmLite.SqlExpression IncludeTablePrefix() => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Insert(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Insert(System.Collections.Generic.List insertFields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Insert() => throw null; - public System.Collections.Generic.List InsertFields { get => throw null; set => throw null; } - protected virtual ServiceStack.OrmLite.SqlExpression InternalJoin(string joinType, System.Linq.Expressions.Expression joinExpr, ServiceStack.OrmLite.ModelDefinition sourceDef, ServiceStack.OrmLite.ModelDefinition targetDef, ServiceStack.OrmLite.TableOptions options = default(ServiceStack.OrmLite.TableOptions)) => throw null; - protected ServiceStack.OrmLite.SqlExpression InternalJoin(string joinType, System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options = default(ServiceStack.OrmLite.TableOptions)) => throw null; - protected ServiceStack.OrmLite.SqlExpression InternalJoin(string joinType, System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; - protected ServiceStack.OrmLite.SqlExpression InternalJoin(string joinType, System.Linq.Expressions.Expression joinExpr) => throw null; - protected virtual bool IsBooleanComparison(System.Linq.Expressions.Expression e) => throw null; - protected virtual bool IsColumnAccess(System.Linq.Expressions.MethodCallExpression m) => throw null; - protected virtual bool IsConstantExpression(System.Linq.Expressions.Expression e) => throw null; - protected virtual bool IsFieldName(object quotedExp) => throw null; - public bool IsJoinedTable(System.Type type) => throw null; - protected virtual bool IsParameterAccess(System.Linq.Expressions.Expression e) => throw null; - protected virtual bool IsParameterOrConvertAccess(System.Linq.Expressions.Expression e) => throw null; - public static bool IsSqlClass(object obj) => throw null; - protected virtual bool IsStaticArrayMethod(System.Linq.Expressions.MethodCallExpression m) => throw null; - protected virtual bool IsStaticStringMethod(System.Linq.Expressions.MethodCallExpression m) => throw null; - public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; - public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; - public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; - public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; - public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr) => throw null; - public ServiceStack.OrmLite.SqlExpression Join(System.Linq.Expressions.Expression> joinExpr) => throw null; - public ServiceStack.OrmLite.SqlExpression Join(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)) => throw null; - public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; - public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; - public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; - public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; - public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; - public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; - public ServiceStack.OrmLite.SqlExpression LeftJoin(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Limit(int? skip, int? rows) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Limit(int skip, int rows) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Limit(int rows) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Limit() => throw null; - public ServiceStack.OrmLite.ModelDefinition ModelDef { get => throw null; set => throw null; } - public int? Offset { get => throw null; set => throw null; } - protected virtual void OnVisitMemberType(System.Type modelType) => throw null; - public System.Collections.Generic.HashSet OnlyFields { get => throw null; set => throw null; } - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(string sqlFilter, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderBy
    (System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderBy(string orderBy) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Linq.Expressions.Expression> keySelector) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderBy(System.Int64 columnIndex) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderBy() => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending
    (System.Linq.Expressions.Expression> keySelector) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(string orderBy) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Linq.Expressions.Expression> keySelector) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByDescending(System.Int64 columnIndex) => throw null; - public string OrderByExpression { get => throw null; set => throw null; } - public virtual ServiceStack.OrmLite.SqlExpression OrderByFields(params string[] fieldNames) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByFields(params ServiceStack.OrmLite.FieldDefinition[] fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByFieldsDescending(params string[] fieldNames) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByFieldsDescending(params ServiceStack.OrmLite.FieldDefinition[] fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression OrderByRandom() => throw null; - public System.Collections.Generic.List Params { get => throw null; set => throw null; } - public bool PrefixFieldWithTableName { get => throw null; set => throw null; } - public virtual void PrepareUpdateStatement(System.Data.IDbCommand dbCmd, T item, bool excludeDefaults = default(bool)) => throw null; - public virtual void PrepareUpdateStatement(System.Data.IDbCommand dbCmd, System.Collections.Generic.Dictionary updateFields) => throw null; - protected string RemoveQuoteFromAlias(string exp) => throw null; - public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; - public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; - public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.TableOptions options) => throw null; - public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr, ServiceStack.OrmLite.JoinFormatDelegate joinFormat) => throw null; - public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; - public ServiceStack.OrmLite.SqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr) => throw null; - public int? Rows { get => throw null; set => throw null; } - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(string[] fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(string selectExpression) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Select() => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(string[] fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(string selectExpression) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression SelectDistinct() => throw null; - public string SelectExpression { get => throw null; set => throw null; } - public static System.Action> SelectFilter { get => throw null; set => throw null; } - public string SelectInto() => throw null; - protected string Sep { get => throw null; } - public virtual ServiceStack.OrmLite.SqlExpression SetTableAlias(string tableAlias) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Skip(int? skip = default(int?)) => throw null; - public string SqlColumn(string columnName) => throw null; - protected SqlExpression(ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider) => throw null; - public System.Func SqlFilter { get => throw null; set => throw null; } - public string SqlTable(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public string TableAlias { get => throw null; set => throw null; } - public virtual ServiceStack.OrmLite.SqlExpression Take(int? take = default(int?)) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenBy
    (System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenBy(string orderBy) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenBy(System.Linq.Expressions.Expression> keySelector) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending
    (System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(string orderBy) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression ThenByDescending(System.Linq.Expressions.Expression> keySelector) => throw null; - protected virtual string ToCast(string quotedColName) => throw null; - protected virtual ServiceStack.OrmLite.PartialSqlString ToComparePartialString(System.Collections.Generic.List args) => throw null; - protected ServiceStack.OrmLite.PartialSqlString ToConcatPartialString(System.Collections.Generic.List args) => throw null; - public virtual string ToCountStatement() => throw null; - public virtual string ToDeleteRowStatement() => throw null; - protected virtual ServiceStack.OrmLite.PartialSqlString ToLengthPartialString(object arg) => throw null; - public virtual string ToMergedParamsSelectStatement() => throw null; - public virtual string ToSelectStatement() => throw null; - public const string TrueLiteral = default; - public virtual ServiceStack.OrmLite.SqlExpression UnsafeAnd(string rawSql, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression UnsafeFrom(string rawFrom) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression UnsafeGroupBy(string groupBy) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression UnsafeHaving(string sqlFilter, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression UnsafeOr(string rawSql, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression UnsafeOrderBy(string orderBy) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression UnsafeSelect(string rawSelect, bool distinct) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression UnsafeSelect(string rawSelect) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression UnsafeWhere(string rawSql, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Update(System.Linq.Expressions.Expression> fields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Update(System.Collections.Generic.List updateFields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Update(System.Collections.Generic.IEnumerable updateFields) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Update() => throw null; - public System.Collections.Generic.List UpdateFields { get => throw null; set => throw null; } - protected internal bool UseFieldName { get => throw null; set => throw null; } - public bool UseSelectPropertiesAsAliases { get => throw null; set => throw null; } - public virtual object Visit(System.Linq.Expressions.Expression exp) => throw null; - protected virtual object VisitBinary(System.Linq.Expressions.BinaryExpression b) => throw null; - protected virtual object VisitColumnAccessMethod(System.Linq.Expressions.MethodCallExpression m) => throw null; - protected virtual object VisitConditional(System.Linq.Expressions.ConditionalExpression e) => throw null; - protected virtual object VisitConstant(System.Linq.Expressions.ConstantExpression c) => throw null; - protected virtual object VisitEnumerableMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; - protected virtual System.Collections.Generic.List VisitExpressionList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; - protected virtual void VisitFilter(string operand, object originalLeft, object originalRight, ref object left, ref object right) => throw null; - protected virtual System.Collections.Generic.List VisitInSqlExpressionList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; - protected virtual object VisitIndexExpression(System.Linq.Expressions.IndexExpression e) => throw null; - protected internal virtual object VisitJoin(System.Linq.Expressions.Expression exp) => throw null; - protected virtual object VisitLambda(System.Linq.Expressions.LambdaExpression lambda) => throw null; - protected virtual object VisitMemberAccess(System.Linq.Expressions.MemberExpression m) => throw null; - protected virtual object VisitMemberInit(System.Linq.Expressions.MemberInitExpression exp) => throw null; - protected virtual object VisitMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; - protected virtual object VisitNew(System.Linq.Expressions.NewExpression nex) => throw null; - protected virtual object VisitNewArray(System.Linq.Expressions.NewArrayExpression na) => throw null; - protected virtual System.Collections.Generic.List VisitNewArrayFromExpressionList(System.Linq.Expressions.NewArrayExpression na) => throw null; - protected virtual object VisitParameter(System.Linq.Expressions.ParameterExpression p) => throw null; - protected virtual object VisitSqlMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; - protected virtual object VisitStaticArrayMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; - protected virtual object VisitStaticStringMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; - protected virtual object VisitUnary(System.Linq.Expressions.UnaryExpression u) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(string sqlFilter, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate, params object[] filterParams) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public virtual ServiceStack.OrmLite.SqlExpression Where() => throw null; - public string WhereExpression { get => throw null; set => throw null; } - public bool WhereStatementWithoutWhereString { get => throw null; set => throw null; } - public virtual ServiceStack.OrmLite.SqlExpression WithSqlFilter(System.Func sqlFilter) => throw null; - protected ServiceStack.OrmLite.ModelDefinition modelDef; - protected bool selectDistinct; - protected bool skipParameterizationForThisExpression; - protected System.Collections.Generic.List tableDefs; - protected bool useFieldName; - protected bool visitedExpressionIsTableColumn; - } - - // Generated from `ServiceStack.OrmLite.SqlExpressionExtensions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlExpressionExtensions - { - public static string Column
    (this ServiceStack.OrmLite.ISqlExpression sqlExpression, string propertyName, bool prefixTable = default(bool)) => throw null; - public static string Column
    (this ServiceStack.OrmLite.ISqlExpression sqlExpression, System.Linq.Expressions.Expression> propertyExpression, bool prefixTable = default(bool)) => throw null; - public static string Column
    (this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, string propertyName, bool prefixTable = default(bool)) => throw null; - public static string Column
    (this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect, System.Linq.Expressions.Expression> propertyExpression, bool prefixTable = default(bool)) => throw null; - public static ServiceStack.OrmLite.IUntypedSqlExpression GetUntypedSqlExpression(this ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; - public static string Table(this ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; - public static string Table(this ServiceStack.OrmLite.IOrmLiteDialectProvider dialect) => throw null; - public static ServiceStack.OrmLite.IOrmLiteDialectProvider ToDialectProvider(this ServiceStack.OrmLite.ISqlExpression sqlExpression) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlExpressionVisitor` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class SqlExpressionVisitor - { - protected SqlExpressionVisitor() => throw null; - protected virtual System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression exp) => throw null; - protected virtual System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression b) => throw null; - protected virtual System.Linq.Expressions.MemberBinding VisitBinding(System.Linq.Expressions.MemberBinding binding) => throw null; - protected virtual System.Collections.Generic.IEnumerable VisitBindingList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; - protected virtual System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression c) => throw null; - protected virtual System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression c) => throw null; - protected virtual System.Linq.Expressions.ElementInit VisitElementInitializer(System.Linq.Expressions.ElementInit initializer) => throw null; - protected virtual System.Collections.Generic.IEnumerable VisitElementInitializerList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; - protected virtual System.Collections.ObjectModel.ReadOnlyCollection VisitExpressionList(System.Collections.ObjectModel.ReadOnlyCollection original) => throw null; - protected virtual System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression iv) => throw null; - protected virtual System.Linq.Expressions.Expression VisitLambda(System.Linq.Expressions.LambdaExpression lambda) => throw null; - protected virtual System.Linq.Expressions.Expression VisitListInit(System.Linq.Expressions.ListInitExpression init) => throw null; - protected virtual System.Linq.Expressions.Expression VisitMemberAccess(System.Linq.Expressions.MemberExpression m) => throw null; - protected virtual System.Linq.Expressions.MemberAssignment VisitMemberAssignment(System.Linq.Expressions.MemberAssignment assignment) => throw null; - protected virtual System.Linq.Expressions.Expression VisitMemberInit(System.Linq.Expressions.MemberInitExpression init) => throw null; - protected virtual System.Linq.Expressions.MemberListBinding VisitMemberListBinding(System.Linq.Expressions.MemberListBinding binding) => throw null; - protected virtual System.Linq.Expressions.MemberMemberBinding VisitMemberMemberBinding(System.Linq.Expressions.MemberMemberBinding binding) => throw null; - protected virtual System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression m) => throw null; - protected virtual System.Linq.Expressions.NewExpression VisitNew(System.Linq.Expressions.NewExpression nex) => throw null; - protected virtual System.Linq.Expressions.Expression VisitNewArray(System.Linq.Expressions.NewArrayExpression na) => throw null; - protected virtual System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression p) => throw null; - protected virtual System.Linq.Expressions.Expression VisitTypeIs(System.Linq.Expressions.TypeBinaryExpression b) => throw null; - protected virtual System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression u) => throw null; - } - - // Generated from `ServiceStack.OrmLite.SqlInValues` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SqlInValues - { - public int Count { get => throw null; } - public const string EmptyIn = default; - public System.Collections.IEnumerable GetValues() => throw null; - public SqlInValues(System.Collections.IEnumerable values, ServiceStack.OrmLite.IOrmLiteDialectProvider dialectProvider = default(ServiceStack.OrmLite.IOrmLiteDialectProvider)) => throw null; - public string ToSqlInString() => throw null; - } - - // Generated from `ServiceStack.OrmLite.TableOptions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TableOptions - { - public string Alias { get => throw null; set => throw null; } - public string Expression { get => throw null; set => throw null; } - public TableOptions() => throw null; - } - - // Generated from `ServiceStack.OrmLite.TemplateDbFilters` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateDbFilters : ServiceStack.OrmLite.DbScripts - { - public TemplateDbFilters() => throw null; - } - - // Generated from `ServiceStack.OrmLite.TemplateDbFiltersAsync` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateDbFiltersAsync : ServiceStack.OrmLite.DbScriptsAsync - { - public TemplateDbFiltersAsync() => throw null; - } - - // Generated from `ServiceStack.OrmLite.UntypedApi<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UntypedApi : ServiceStack.OrmLite.IUntypedApi - { - public System.Collections.IEnumerable Cast(System.Collections.IEnumerable results) => throw null; - public System.Data.IDbConnection Db { get => throw null; set => throw null; } - public System.Data.IDbCommand DbCmd { get => throw null; set => throw null; } - public int Delete(object obj, object anonType) => throw null; - public int DeleteAll() => throw null; - public int DeleteById(object id) => throw null; - public int DeleteByIds(System.Collections.IEnumerable idValues) => throw null; - public int DeleteNonDefaults(object obj, object filter) => throw null; - public void Exec(System.Action filter) => throw null; - public TReturn Exec(System.Func filter) => throw null; - public System.Int64 Insert(object obj, bool selectIdentity = default(bool)) => throw null; - public System.Int64 Insert(object obj, System.Action commandFilter, bool selectIdentity = default(bool)) => throw null; - public void InsertAll(System.Collections.IEnumerable objs, System.Action commandFilter) => throw null; - public void InsertAll(System.Collections.IEnumerable objs) => throw null; - public bool Save(object obj) => throw null; - public int SaveAll(System.Collections.IEnumerable objs) => throw null; - public System.Threading.Tasks.Task SaveAllAsync(System.Collections.IEnumerable objs, System.Threading.CancellationToken token) => throw null; - public System.Threading.Tasks.Task SaveAsync(object obj, System.Threading.CancellationToken token) => throw null; - public UntypedApi() => throw null; - public int Update(object obj, System.Action commandFilter) => throw null; - public int Update(object obj) => throw null; - public int UpdateAll(System.Collections.IEnumerable objs, System.Action commandFilter) => throw null; - public int UpdateAll(System.Collections.IEnumerable objs) => throw null; - } - - // Generated from `ServiceStack.OrmLite.UntypedApiExtensions` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class UntypedApiExtensions - { - public static ServiceStack.OrmLite.IUntypedApi CreateTypedApi(this System.Type forType) => throw null; - public static ServiceStack.OrmLite.IUntypedApi CreateTypedApi(this System.Data.IDbConnection db, System.Type forType) => throw null; - public static ServiceStack.OrmLite.IUntypedApi CreateTypedApi(this System.Data.IDbCommand dbCmd, System.Type forType) => throw null; - } - - // Generated from `ServiceStack.OrmLite.UntypedSqlExpressionProxy<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UntypedSqlExpressionProxy : ServiceStack.OrmLite.IUntypedSqlExpression, ServiceStack.OrmLite.ISqlExpression - { - public ServiceStack.OrmLite.IUntypedSqlExpression AddCondition(string condition, string sqlFilter, params object[] filterParams) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression And(System.Linq.Expressions.Expression> predicate) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression And(string sqlFilter, params object[] filterParams) => throw null; - public string BodyExpression { get => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression ClearLimits() => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Clone() => throw null; - public System.Data.IDbDataParameter CreateParam(string name, object value = default(object), System.Data.ParameterDirection direction = default(System.Data.ParameterDirection), System.Data.DbType? dbType = default(System.Data.DbType?)) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression CrossJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression CustomJoin(string joinString) => throw null; - public ServiceStack.OrmLite.IOrmLiteDialectProvider DialectProvider { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Ensure(System.Linq.Expressions.Expression> predicate) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Ensure(string sqlFilter, params object[] filterParams) => throw null; - public System.Tuple FirstMatchingField(string fieldName) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression From(string tables) => throw null; - public string FromExpression { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression FullJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public System.Collections.Generic.IList GetAllFields() => throw null; - public ServiceStack.OrmLite.ModelDefinition GetModelDefinition(ServiceStack.OrmLite.FieldDefinition fieldDef) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression GroupBy(string groupBy) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression GroupBy() => throw null; - public string GroupByExpression { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression Having(string sqlFilter, params object[] filterParams) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Having() => throw null; - public string HavingExpression { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression Insert(System.Collections.Generic.List insertFields) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Insert() => throw null; - public System.Collections.Generic.List InsertFields { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression Join(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Join(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression LeftJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression LeftJoin(System.Type sourceType, System.Type targetType, System.Linq.Expressions.Expression joinExpr = default(System.Linq.Expressions.Expression)) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Limit(int? skip, int? rows) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Limit(int skip, int rows) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Limit(int rows) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Limit() => throw null; - public ServiceStack.OrmLite.ModelDefinition ModelDef { get => throw null; } - public int? Offset { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Or(System.Linq.Expressions.Expression> predicate) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Or(string sqlFilter, params object[] filterParams) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression OrderBy
    (System.Linq.Expressions.Expression> keySelector) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression OrderBy(string orderBy) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression OrderBy() => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression OrderByDescending
    (System.Linq.Expressions.Expression> keySelector) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression OrderByDescending(string orderBy) => throw null; - public string OrderByExpression { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression OrderByFields(params string[] fieldNames) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression OrderByFields(params ServiceStack.OrmLite.FieldDefinition[] fields) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression OrderByFieldsDescending(params string[] fieldNames) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression OrderByFieldsDescending(params ServiceStack.OrmLite.FieldDefinition[] fields) => throw null; - public System.Collections.Generic.List Params { get => throw null; set => throw null; } - public bool PrefixFieldWithTableName { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression RightJoin(System.Linq.Expressions.Expression> joinExpr = default(System.Linq.Expressions.Expression>)) => throw null; - public int? Rows { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Select(System.Linq.Expressions.Expression> fields) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Select(string selectExpression) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Select() => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct(System.Linq.Expressions.Expression> fields) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression SelectDistinct() => throw null; - public string SelectExpression { get => throw null; set => throw null; } - public string SelectInto() => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Skip(int? skip = default(int?)) => throw null; - public string SqlColumn(string columnName) => throw null; - public string SqlTable(ServiceStack.OrmLite.ModelDefinition modelDef) => throw null; - public string TableAlias { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression Take(int? take = default(int?)) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression ThenBy
    (System.Linq.Expressions.Expression> keySelector) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression ThenBy(string orderBy) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression ThenByDescending
    (System.Linq.Expressions.Expression> keySelector) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression ThenByDescending(string orderBy) => throw null; - public string ToCountStatement() => throw null; - public string ToDeleteRowStatement() => throw null; - public string ToSelectStatement() => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeAnd(string rawSql, params object[] filterParams) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeFrom(string rawFrom) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeOr(string rawSql, params object[] filterParams) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeSelect(string rawSelect) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression UnsafeWhere(string rawSql, params object[] filterParams) => throw null; - public UntypedSqlExpressionProxy(ServiceStack.OrmLite.SqlExpression q) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Update(System.Collections.Generic.List updateFields) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Update() => throw null; - public System.Collections.Generic.List UpdateFields { get => throw null; set => throw null; } - public ServiceStack.OrmLite.IUntypedSqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Where(System.Linq.Expressions.Expression> predicate) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Where(string sqlFilter, params object[] filterParams) => throw null; - public ServiceStack.OrmLite.IUntypedSqlExpression Where() => throw null; - public string WhereExpression { get => throw null; set => throw null; } - public bool WhereStatementWithoutWhereString { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.UpperCaseNamingStrategy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UpperCaseNamingStrategy : ServiceStack.OrmLite.OrmLiteNamingStrategyBase - { - public override string GetColumnName(string name) => throw null; - public override string GetTableName(string name) => throw null; - public UpperCaseNamingStrategy() => throw null; - } - - // Generated from `ServiceStack.OrmLite.XmlValue` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct XmlValue - { - public override bool Equals(object obj) => throw null; - public bool Equals(ServiceStack.OrmLite.XmlValue other) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public string Xml { get => throw null; } - public XmlValue(string xml) => throw null; - // Stub generator skipped constructor - public static implicit operator ServiceStack.OrmLite.XmlValue(string expandedName) => throw null; - } - - namespace Converters - { - // Generated from `ServiceStack.OrmLite.Converters.BoolAsIntConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BoolAsIntConverter : ServiceStack.OrmLite.Converters.BoolConverter - { - public BoolAsIntConverter() => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.BoolConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BoolConverter : ServiceStack.OrmLite.NativeValueOrmLiteConverter - { - public BoolConverter() => throw null; - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.ByteArrayConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ByteArrayConverter : ServiceStack.OrmLite.OrmLiteConverter - { - public ByteArrayConverter() => throw null; - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.Converters.ByteConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ByteConverter : ServiceStack.OrmLite.Converters.IntegerConverter - { - public ByteConverter() => throw null; - public override System.Data.DbType DbType { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.Converters.CharArrayConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CharArrayConverter : ServiceStack.OrmLite.Converters.StringConverter - { - public CharArrayConverter(int stringLength) => throw null; - public CharArrayConverter() => throw null; - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.CharConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CharConverter : ServiceStack.OrmLite.Converters.StringConverter - { - public CharConverter() => throw null; - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public override string GetColumnDefinition(int? stringLength) => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.DateTimeConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DateTimeConverter : ServiceStack.OrmLite.OrmLiteConverter - { - public override string ColumnDefinition { get => throw null; } - public System.DateTimeKind DateStyle { get => throw null; set => throw null; } - public DateTimeConverter() => throw null; - public virtual string DateTimeFmt(System.DateTime dateTime, string dateTimeFormat) => throw null; - public override System.Data.DbType DbType { get => throw null; } - public virtual object FromDbValue(object value) => throw null; - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.DateTimeOffsetConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DateTimeOffsetConverter : ServiceStack.OrmLite.OrmLiteConverter - { - public override string ColumnDefinition { get => throw null; } - public DateTimeOffsetConverter() => throw null; - public override System.Data.DbType DbType { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.DecimalConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DecimalConverter : ServiceStack.OrmLite.Converters.FloatConverter, ServiceStack.OrmLite.IHasColumnDefinitionPrecision - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public DecimalConverter(int precision, int scale) => throw null; - public DecimalConverter() => throw null; - public virtual string GetColumnDefinition(int? precision, int? scale) => throw null; - public int Precision { get => throw null; set => throw null; } - public int Scale { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.Converters.DoubleConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DoubleConverter : ServiceStack.OrmLite.Converters.FloatConverter - { - public override System.Data.DbType DbType { get => throw null; } - public DoubleConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.EnumConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EnumConverter : ServiceStack.OrmLite.Converters.StringConverter - { - public EnumConverter() => throw null; - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public static ServiceStack.OrmLite.Converters.EnumKind GetEnumKind(System.Type enumType) => throw null; - public static bool HasEnumMembers(System.Type enumType) => throw null; - public override void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType) => throw null; - public static bool IsIntEnum(System.Type fieldType) => throw null; - public static System.Char ToCharValue(object value) => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.EnumKind` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum EnumKind - { - Char, - EnumMember, - Int, - String, - } - - // Generated from `ServiceStack.OrmLite.Converters.FloatConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FloatConverter : ServiceStack.OrmLite.NativeValueOrmLiteConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public FloatConverter() => throw null; - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.GuidConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GuidConverter : ServiceStack.OrmLite.OrmLiteConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public GuidConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.Int16Converter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Int16Converter : ServiceStack.OrmLite.Converters.IntegerConverter - { - public override System.Data.DbType DbType { get => throw null; } - public Int16Converter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.Int32Converter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Int32Converter : ServiceStack.OrmLite.Converters.IntegerConverter - { - public Int32Converter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.Int64Converter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Int64Converter : ServiceStack.OrmLite.Converters.IntegerConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public Int64Converter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.IntegerConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class IntegerConverter : ServiceStack.OrmLite.NativeValueOrmLiteConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - protected IntegerConverter() => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.ReferenceTypeConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ReferenceTypeConverter : ServiceStack.OrmLite.Converters.StringConverter - { - public override string ColumnDefinition { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public override string GetColumnDefinition(int? stringLength) => throw null; - public override string MaxColumnDefinition { get => throw null; } - public ReferenceTypeConverter() => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.RowVersionConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RowVersionConverter : ServiceStack.OrmLite.OrmLiteConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public RowVersionConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.SByteConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SByteConverter : ServiceStack.OrmLite.Converters.IntegerConverter - { - public override System.Data.DbType DbType { get => throw null; } - public SByteConverter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.StringConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringConverter : ServiceStack.OrmLite.OrmLiteConverter, ServiceStack.OrmLite.IHasColumnDefinitionLength - { - public override string ColumnDefinition { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public virtual string GetColumnDefinition(int? stringLength) => throw null; - public override void InitDbParam(System.Data.IDbDataParameter p, System.Type fieldType) => throw null; - public virtual string MaxColumnDefinition { get => throw null; set => throw null; } - public virtual int MaxVarCharLength { get => throw null; } - public StringConverter(int stringLength) => throw null; - public StringConverter() => throw null; - public int StringLength { get => throw null; set => throw null; } - public bool UseUnicode { get => throw null; set => throw null; } - protected string maxColumnDefinition; - } - - // Generated from `ServiceStack.OrmLite.Converters.TimeSpanAsIntConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TimeSpanAsIntConverter : ServiceStack.OrmLite.OrmLiteConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public TimeSpanAsIntConverter() => throw null; - public override object ToDbValue(System.Type fieldType, object value) => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.UInt16Converter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UInt16Converter : ServiceStack.OrmLite.Converters.IntegerConverter - { - public override System.Data.DbType DbType { get => throw null; } - public UInt16Converter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.UInt32Converter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UInt32Converter : ServiceStack.OrmLite.Converters.IntegerConverter - { - public override System.Data.DbType DbType { get => throw null; } - public UInt32Converter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.UInt64Converter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UInt64Converter : ServiceStack.OrmLite.Converters.IntegerConverter - { - public override string ColumnDefinition { get => throw null; } - public override System.Data.DbType DbType { get => throw null; } - public UInt64Converter() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Converters.ValueTypeConverter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValueTypeConverter : ServiceStack.OrmLite.Converters.StringConverter - { - public override string ColumnDefinition { get => throw null; } - public override object FromDbValue(System.Type fieldType, object value) => throw null; - public override string GetColumnDefinition(int? stringLength) => throw null; - public override string MaxColumnDefinition { get => throw null; } - public override object ToDbValue(System.Type fieldType, object value) => throw null; - public override string ToQuotedString(System.Type fieldType, object value) => throw null; - public ValueTypeConverter() => throw null; - } - - } - namespace Dapper - { - // Generated from `ServiceStack.OrmLite.Dapper.CommandDefinition` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct CommandDefinition - { - public bool Buffered { get => throw null; } - public System.Threading.CancellationToken CancellationToken { get => throw null; } - public CommandDefinition(string commandText, object parameters = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?), ServiceStack.OrmLite.Dapper.CommandFlags flags = default(ServiceStack.OrmLite.Dapper.CommandFlags), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - // Stub generator skipped constructor - public string CommandText { get => throw null; } - public int? CommandTimeout { get => throw null; } - public System.Data.CommandType? CommandType { get => throw null; } - public ServiceStack.OrmLite.Dapper.CommandFlags Flags { get => throw null; } - public object Parameters { get => throw null; } - public bool Pipelined { get => throw null; } - public System.Data.IDbTransaction Transaction { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.Dapper.CommandFlags` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum CommandFlags - { - Buffered, - NoCache, - None, - Pipelined, - } - - // Generated from `ServiceStack.OrmLite.Dapper.CustomPropertyTypeMap` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomPropertyTypeMap : ServiceStack.OrmLite.Dapper.SqlMapper.ITypeMap - { - public CustomPropertyTypeMap(System.Type type, System.Func propertySelector) => throw null; - public System.Reflection.ConstructorInfo FindConstructor(string[] names, System.Type[] types) => throw null; - public System.Reflection.ConstructorInfo FindExplicitConstructor() => throw null; - public ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetConstructorParameter(System.Reflection.ConstructorInfo constructor, string columnName) => throw null; - public ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetMember(string columnName) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Dapper.DbString` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DbString : ServiceStack.OrmLite.Dapper.SqlMapper.ICustomQueryParameter - { - public void AddParameter(System.Data.IDbCommand command, string name) => throw null; - public DbString() => throw null; - public const int DefaultLength = default; - public bool IsAnsi { get => throw null; set => throw null; } - public static bool IsAnsiDefault { get => throw null; set => throw null; } - public bool IsFixedLength { get => throw null; set => throw null; } - public int Length { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.Dapper.DefaultTypeMap` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultTypeMap : ServiceStack.OrmLite.Dapper.SqlMapper.ITypeMap - { - public DefaultTypeMap(System.Type type) => throw null; - public System.Reflection.ConstructorInfo FindConstructor(string[] names, System.Type[] types) => throw null; - public System.Reflection.ConstructorInfo FindExplicitConstructor() => throw null; - public ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetConstructorParameter(System.Reflection.ConstructorInfo constructor, string columnName) => throw null; - public ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetMember(string columnName) => throw null; - public static bool MatchNamesWithUnderscores { get => throw null; set => throw null; } - public System.Collections.Generic.List Properties { get => throw null; } - } - - // Generated from `ServiceStack.OrmLite.Dapper.DynamicParameters` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicParameters : ServiceStack.OrmLite.Dapper.SqlMapper.IParameterLookup, ServiceStack.OrmLite.Dapper.SqlMapper.IParameterCallbacks, ServiceStack.OrmLite.Dapper.SqlMapper.IDynamicParameters - { - public void Add(string name, object value, System.Data.DbType? dbType, System.Data.ParameterDirection? direction, int? size) => throw null; - public void Add(string name, object value = default(object), System.Data.DbType? dbType = default(System.Data.DbType?), System.Data.ParameterDirection? direction = default(System.Data.ParameterDirection?), int? size = default(int?), System.Byte? precision = default(System.Byte?), System.Byte? scale = default(System.Byte?)) => throw null; - public void AddDynamicParams(object param) => throw null; - void ServiceStack.OrmLite.Dapper.SqlMapper.IDynamicParameters.AddParameters(System.Data.IDbCommand command, ServiceStack.OrmLite.Dapper.SqlMapper.Identity identity) => throw null; - protected void AddParameters(System.Data.IDbCommand command, ServiceStack.OrmLite.Dapper.SqlMapper.Identity identity) => throw null; - public DynamicParameters(object template) => throw null; - public DynamicParameters() => throw null; - public T Get(string name) => throw null; - object ServiceStack.OrmLite.Dapper.SqlMapper.IParameterLookup.this[string name] { get => throw null; } - void ServiceStack.OrmLite.Dapper.SqlMapper.IParameterCallbacks.OnCompleted() => throw null; - public ServiceStack.OrmLite.Dapper.DynamicParameters Output(T target, System.Linq.Expressions.Expression> expression, System.Data.DbType? dbType = default(System.Data.DbType?), int? size = default(int?)) => throw null; - public System.Collections.Generic.IEnumerable ParameterNames { get => throw null; } - public bool RemoveUnused { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.OrmLite.Dapper.ExplicitConstructorAttribute` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ExplicitConstructorAttribute : System.Attribute - { - public ExplicitConstructorAttribute() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Dapper.IWrappedDataReader` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IWrappedDataReader : System.IDisposable, System.Data.IDataRecord, System.Data.IDataReader - { - System.Data.IDbCommand Command { get; } - System.Data.IDataReader Reader { get; } - } - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SqlMapper - { - public static void AddTypeHandler(ServiceStack.OrmLite.Dapper.SqlMapper.TypeHandler handler) => throw null; - public static void AddTypeHandler(System.Type type, ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler handler) => throw null; - public static void AddTypeHandlerImpl(System.Type type, ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler handler, bool clone) => throw null; - public static void AddTypeMap(System.Type type, System.Data.DbType dbType) => throw null; - public static System.Collections.Generic.List AsList(this System.Collections.Generic.IEnumerable source) => throw null; - public static ServiceStack.OrmLite.Dapper.SqlMapper.ICustomQueryParameter AsTableValuedParameter(this System.Collections.Generic.IEnumerable list, string typeName = default(string)) where T : System.Data.IDataRecord => throw null; - public static ServiceStack.OrmLite.Dapper.SqlMapper.ICustomQueryParameter AsTableValuedParameter(this System.Data.DataTable table, string typeName = default(string)) => throw null; - public static System.Collections.Generic.IEqualityComparer ConnectionStringComparer { get => throw null; set => throw null; } - public static System.Action CreateParamInfoGenerator(ServiceStack.OrmLite.Dapper.SqlMapper.Identity identity, bool checkForDuplicates, bool removeUnused) => throw null; - public static int Execute(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static int Execute(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task ExecuteAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task ExecuteAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Data.IDataReader ExecuteReader(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Data.IDataReader ExecuteReader(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Data.CommandBehavior commandBehavior) => throw null; - public static System.Data.IDataReader ExecuteReader(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Data.CommandBehavior commandBehavior) => throw null; - public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.Common.DbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.Common.DbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Data.CommandBehavior commandBehavior) => throw null; - public static System.Threading.Tasks.Task ExecuteReaderAsync(this System.Data.Common.DbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static object ExecuteScalar(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static object ExecuteScalar(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static T ExecuteScalar(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static T ExecuteScalar(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task ExecuteScalarAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task ExecuteScalarAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task ExecuteScalarAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task ExecuteScalarAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Data.IDbDataParameter FindOrAddParameter(System.Data.IDataParameterCollection parameters, System.Data.IDbCommand command, string name) => throw null; - public static string Format(object value) => throw null; - public static System.Collections.Generic.IEnumerable> GetCachedSQL(int ignoreHitCountAbove = default(int)) => throw null; - public static int GetCachedSQLCount() => throw null; - public static System.Data.DbType GetDbType(object value) => throw null; - public static System.Collections.Generic.IEnumerable> GetHashCollissions() => throw null; - public static System.Func GetRowParser(this System.Data.IDataReader reader, System.Type type, int startIndex = default(int), int length = default(int), bool returnNullIfFirstMissing = default(bool)) => throw null; - public static System.Func GetRowParser(this System.Data.IDataReader reader, System.Type concreteType = default(System.Type), int startIndex = default(int), int length = default(int), bool returnNullIfFirstMissing = default(bool)) => throw null; - public static System.Func GetTypeDeserializer(System.Type type, System.Data.IDataReader reader, int startBound = default(int), int length = default(int), bool returnNullIfFirstMissing = default(bool)) => throw null; - public static ServiceStack.OrmLite.Dapper.SqlMapper.ITypeMap GetTypeMap(System.Type type) => throw null; - public static string GetTypeName(this System.Data.DataTable table) => throw null; - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+GridReader` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GridReader : System.IDisposable - { - public System.Data.IDbCommand Command { get => throw null; set => throw null; } - public void Dispose() => throw null; - public bool IsConsumed { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable Read(System.Type type, bool buffered = default(bool)) => throw null; - public System.Collections.Generic.IEnumerable Read(bool buffered = default(bool)) => throw null; - public System.Collections.Generic.IEnumerable Read(System.Type[] types, System.Func map, string splitOn = default(string), bool buffered = default(bool)) => throw null; - public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; - public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; - public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; - public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; - public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; - public System.Collections.Generic.IEnumerable Read(System.Func func, string splitOn = default(string), bool buffered = default(bool)) => throw null; - public System.Collections.Generic.IEnumerable Read(bool buffered = default(bool)) => throw null; - public System.Threading.Tasks.Task> ReadAsync(System.Type type, bool buffered = default(bool)) => throw null; - public System.Threading.Tasks.Task> ReadAsync(bool buffered = default(bool)) => throw null; - public System.Threading.Tasks.Task> ReadAsync(bool buffered = default(bool)) => throw null; - public object ReadFirst(System.Type type) => throw null; - public dynamic ReadFirst() => throw null; - public T ReadFirst() => throw null; - public System.Threading.Tasks.Task ReadFirstAsync(System.Type type) => throw null; - public System.Threading.Tasks.Task ReadFirstAsync() => throw null; - public System.Threading.Tasks.Task ReadFirstAsync() => throw null; - public object ReadFirstOrDefault(System.Type type) => throw null; - public dynamic ReadFirstOrDefault() => throw null; - public T ReadFirstOrDefault() => throw null; - public System.Threading.Tasks.Task ReadFirstOrDefaultAsync(System.Type type) => throw null; - public System.Threading.Tasks.Task ReadFirstOrDefaultAsync() => throw null; - public System.Threading.Tasks.Task ReadFirstOrDefaultAsync() => throw null; - public object ReadSingle(System.Type type) => throw null; - public dynamic ReadSingle() => throw null; - public T ReadSingle() => throw null; - public System.Threading.Tasks.Task ReadSingleAsync(System.Type type) => throw null; - public System.Threading.Tasks.Task ReadSingleAsync() => throw null; - public System.Threading.Tasks.Task ReadSingleAsync() => throw null; - public object ReadSingleOrDefault(System.Type type) => throw null; - public dynamic ReadSingleOrDefault() => throw null; - public T ReadSingleOrDefault() => throw null; - public System.Threading.Tasks.Task ReadSingleOrDefaultAsync(System.Type type) => throw null; - public System.Threading.Tasks.Task ReadSingleOrDefaultAsync() => throw null; - public System.Threading.Tasks.Task ReadSingleOrDefaultAsync() => throw null; - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+ICustomQueryParameter` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICustomQueryParameter - { - void AddParameter(System.Data.IDbCommand command, string name); - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+IDynamicParameters` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDynamicParameters - { - void AddParameters(System.Data.IDbCommand command, ServiceStack.OrmLite.Dapper.SqlMapper.Identity identity); - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+IMemberMap` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMemberMap - { - string ColumnName { get; } - System.Reflection.FieldInfo Field { get; } - System.Type MemberType { get; } - System.Reflection.ParameterInfo Parameter { get; } - System.Reflection.PropertyInfo Property { get; } - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+IParameterCallbacks` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IParameterCallbacks : ServiceStack.OrmLite.Dapper.SqlMapper.IDynamicParameters - { - void OnCompleted(); - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+IParameterLookup` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IParameterLookup : ServiceStack.OrmLite.Dapper.SqlMapper.IDynamicParameters - { - object this[string name] { get; } - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+ITypeHandler` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypeHandler - { - object Parse(System.Type destinationType, object value); - void SetValue(System.Data.IDbDataParameter parameter, object value); - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+ITypeMap` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypeMap - { - System.Reflection.ConstructorInfo FindConstructor(string[] names, System.Type[] types); - System.Reflection.ConstructorInfo FindExplicitConstructor(); - ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetConstructorParameter(System.Reflection.ConstructorInfo constructor, string columnName); - ServiceStack.OrmLite.Dapper.SqlMapper.IMemberMap GetMember(string columnName); - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+Identity` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Identity : System.IEquatable - { - public override bool Equals(object obj) => throw null; - public bool Equals(ServiceStack.OrmLite.Dapper.SqlMapper.Identity other) => throw null; - public ServiceStack.OrmLite.Dapper.SqlMapper.Identity ForDynamicParameters(System.Type type) => throw null; - public override int GetHashCode() => throw null; - internal Identity(string sql, System.Data.CommandType? commandType, System.Data.IDbConnection connection, System.Type type, System.Type parametersType) => throw null; - public override string ToString() => throw null; - public System.Data.CommandType? commandType; - public string connectionString; - public int gridIndex; - public int hashCode; - public System.Type parametersType; - public string sql; - public System.Type type; - } - - - public static System.Data.DbType LookupDbType(System.Type type, string name, bool demand, out ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler handler) => throw null; - public static void PackListParameters(System.Data.IDbCommand command, string namePrefix, object value) => throw null; - public static System.Collections.Generic.IEnumerable Parse(this System.Data.IDataReader reader, System.Type type) => throw null; - public static System.Collections.Generic.IEnumerable Parse(this System.Data.IDataReader reader) => throw null; - public static System.Collections.Generic.IEnumerable Parse(this System.Data.IDataReader reader) => throw null; - public static void PurgeQueryCache() => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Type[] types, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Collections.Generic.IEnumerable Query(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Type[] types, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, System.Func map, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), bool buffered = default(bool), string splitOn = default(string), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command, System.Func map, string splitOn = default(string)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task> QueryAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static event System.EventHandler QueryCachePurged; - public static object QueryFirst(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static dynamic QueryFirst(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static T QueryFirst(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static T QueryFirst(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QueryFirstAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static object QueryFirstOrDefault(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static dynamic QueryFirstOrDefault(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static T QueryFirstOrDefault(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static T QueryFirstOrDefault(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QueryFirstOrDefaultAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static ServiceStack.OrmLite.Dapper.SqlMapper.GridReader QueryMultiple(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static ServiceStack.OrmLite.Dapper.SqlMapper.GridReader QueryMultiple(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QueryMultipleAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QueryMultipleAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static object QuerySingle(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static dynamic QuerySingle(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static T QuerySingle(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static T QuerySingle(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QuerySingleAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static object QuerySingleOrDefault(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static dynamic QuerySingleOrDefault(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static T QuerySingleOrDefault(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static T QuerySingleOrDefault(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, System.Type type, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, System.Type type, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, string sql, object param = default(object), System.Data.IDbTransaction transaction = default(System.Data.IDbTransaction), int? commandTimeout = default(int?), System.Data.CommandType? commandType = default(System.Data.CommandType?)) => throw null; - public static System.Threading.Tasks.Task QuerySingleOrDefaultAsync(this System.Data.IDbConnection cnn, ServiceStack.OrmLite.Dapper.CommandDefinition command) => throw null; - public static System.Char ReadChar(object value) => throw null; - public static System.Char? ReadNullableChar(object value) => throw null; - public static void RemoveTypeMap(System.Type type) => throw null; - public static void ReplaceLiterals(this ServiceStack.OrmLite.Dapper.SqlMapper.IParameterLookup parameters, System.Data.IDbCommand command) => throw null; - public static void ResetTypeHandlers() => throw null; - public static object SanitizeParameterValue(object value) => throw null; - public static void SetTypeMap(System.Type type, ServiceStack.OrmLite.Dapper.SqlMapper.ITypeMap map) => throw null; - public static void SetTypeName(this System.Data.DataTable table, string typeName) => throw null; - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+Settings` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Settings - { - public static bool ApplyNullValues { get => throw null; set => throw null; } - public static int? CommandTimeout { get => throw null; set => throw null; } - public static int InListStringSplitCount { get => throw null; set => throw null; } - public static bool PadListExpansions { get => throw null; set => throw null; } - public static void SetDefaults() => throw null; - public static bool UseSingleResultOptimization { get => throw null; set => throw null; } - public static bool UseSingleRowOptimization { get => throw null; set => throw null; } - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+StringTypeHandler<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class StringTypeHandler : ServiceStack.OrmLite.Dapper.SqlMapper.TypeHandler - { - protected abstract string Format(T xml); - public override T Parse(object value) => throw null; - protected abstract T Parse(string xml); - public override void SetValue(System.Data.IDbDataParameter parameter, T value) => throw null; - protected StringTypeHandler() => throw null; - } - - - public static void ThrowDataException(System.Exception ex, int index, System.Data.IDataReader reader, object value) => throw null; - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+TypeHandler<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class TypeHandler : ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler - { - public abstract T Parse(object value); - object ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler.Parse(System.Type destinationType, object value) => throw null; - void ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler.SetValue(System.Data.IDbDataParameter parameter, object value) => throw null; - public abstract void SetValue(System.Data.IDbDataParameter parameter, T value); - protected TypeHandler() => throw null; - } - - - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+TypeHandlerCache<>` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TypeHandlerCache - { - public static T Parse(object value) => throw null; - public static void SetValue(System.Data.IDbDataParameter parameter, object value) => throw null; - } - - - public static System.Func TypeMapProvider; - // Generated from `ServiceStack.OrmLite.Dapper.SqlMapper+UdtTypeHandler` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UdtTypeHandler : ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler - { - object ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler.Parse(System.Type destinationType, object value) => throw null; - void ServiceStack.OrmLite.Dapper.SqlMapper.ITypeHandler.SetValue(System.Data.IDbDataParameter parameter, object value) => throw null; - public UdtTypeHandler(string udtTypeName) => throw null; - } - - - } - - } - namespace Legacy - { - // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteReadApiAsyncLegacy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteReadApiAsyncLegacy - { - public static System.Threading.Tasks.Task> ColumnDistinctFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task> ColumnDistinctFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task> ColumnFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task> ColumnFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task> DictionaryFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task> DictionaryFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task ExistsAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ExistsFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task ExistsFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task>> LookupFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task>> LookupFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task ScalarFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task ScalarFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Threading.Tasks.Task> SelectFmtAsync(this System.Data.IDbConnection dbConn, System.Type fromTableType, string sqlFormat, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task> SelectFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, System.Type fromTableType, string sqlFormat, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task> SelectFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task> SelectFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task> SqlProcedureFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, object anonType, string sqlFilter, params object[] filterParams) where TOutputModel : new() => throw null; - } - - // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteReadApiLegacy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteReadApiLegacy - { - public static System.Collections.Generic.HashSet ColumnDistinctFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Collections.Generic.List ColumnFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Collections.Generic.Dictionary DictionaryFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static bool Exists(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; - public static bool ExistsFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; - public static System.Collections.Generic.Dictionary> LookupFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static T ScalarFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] sqlParams) => throw null; - public static System.Collections.Generic.List SelectFmt(this System.Data.IDbConnection dbConn, System.Type fromTableType, string sqlFormat, params object[] filterParams) => throw null; - public static System.Collections.Generic.List SelectFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; - public static System.Collections.Generic.IEnumerable SelectLazyFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; - public static T SingleFmt(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteReadExpressionsApiAsyncLegacy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteReadExpressionsApiAsyncLegacy - { - public static System.Threading.Tasks.Task CountAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> LoadSelectAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, string[] include = default(string[]), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> SelectAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SingleFmtAsync(this System.Data.IDbConnection dbConn, string sqlFormat, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task SingleFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFormat, params object[] filterParams) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteReadExpressionsApiLegacy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteReadExpressionsApiLegacy - { - public static System.Int64 Count(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Func include) => throw null; - public static System.Collections.Generic.List LoadSelect(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression, System.Collections.Generic.IEnumerable include = default(System.Collections.Generic.IEnumerable)) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; - public static System.Collections.Generic.List Select(this System.Data.IDbConnection dbConn, ServiceStack.OrmLite.SqlExpression expression) => throw null; - public static T Single(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> expression) => throw null; - public static ServiceStack.OrmLite.SqlExpression SqlExpression(this System.Data.IDbConnection dbConn) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteWriteApiAsyncLegacy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteWriteApiAsyncLegacy - { - public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, string sqlFilter, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, string sqlFilter, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; - public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, System.Threading.CancellationToken token, System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteWriteCommandExtensionsLegacy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteWriteCommandExtensionsLegacy - { - public static int DeleteFmt(this System.Data.IDbConnection dbConn, string sqlFilter, params object[] filterParams) => throw null; - public static int DeleteFmt(this System.Data.IDbConnection dbConn, System.Type tableType, string sqlFilter, params object[] filterParams) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteWriteExpressionsApiAsyncLegacy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteWriteExpressionsApiAsyncLegacy - { - public static System.Threading.Tasks.Task DeleteAsync(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> where, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, string where, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, string where = default(string)) => throw null; - public static System.Threading.Tasks.Task DeleteFmtAsync(this System.Data.IDbConnection dbConn, string table = default(string), string where = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, T obj, System.Func, ServiceStack.OrmLite.SqlExpression> onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task InsertOnlyAsync(this System.Data.IDbConnection dbConn, T obj, ServiceStack.OrmLite.SqlExpression onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateFmtAsync(this System.Data.IDbConnection dbConn, string set = default(string), string where = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateFmtAsync(this System.Data.IDbConnection dbConn, string table = default(string), string set = default(string), string where = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateOnlyAsync(this System.Data.IDbConnection dbConn, T model, System.Func, ServiceStack.OrmLite.SqlExpression> onlyFields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.OrmLite.Legacy.OrmLiteWriteExpressionsApiLegacy` in `ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OrmLiteWriteExpressionsApiLegacy - { - public static int Delete(this System.Data.IDbConnection dbConn, System.Func, ServiceStack.OrmLite.SqlExpression> where) => throw null; - public static int DeleteFmt(this System.Data.IDbConnection dbConn, string where = default(string)) => throw null; - public static int DeleteFmt(this System.Data.IDbConnection dbConn, string table = default(string), string where = default(string)) => throw null; - public static void InsertOnly(this System.Data.IDbConnection dbConn, T obj, System.Func, ServiceStack.OrmLite.SqlExpression> onlyFields) => throw null; - public static void InsertOnly(this System.Data.IDbConnection dbConn, T obj, ServiceStack.OrmLite.SqlExpression onlyFields) => throw null; - public static int UpdateFmt(this System.Data.IDbConnection dbConn, string set = default(string), string where = default(string)) => throw null; - public static int UpdateFmt(this System.Data.IDbConnection dbConn, string table = default(string), string set = default(string), string where = default(string)) => throw null; - public static int UpdateOnly(this System.Data.IDbConnection dbConn, T model, System.Func, ServiceStack.OrmLite.SqlExpression> onlyFields) => throw null; - } - - } - } -} -namespace System -{ - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null'. */ - - } - } -} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.csproj deleted file mode 100644 index d9ae08d3e14..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/5.11.0/ServiceStack.OrmLite.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.cs b/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.cs deleted file mode 100644 index 9ec8f920c31..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.cs +++ /dev/null @@ -1,3016 +0,0 @@ -// This file contains auto-generated code. - -// Generated from `SentinelInfo` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` -public class SentinelInfo -{ - public string MasterName { get => throw null; set => throw null; } - public string[] RedisMasters { get => throw null; set => throw null; } - public string[] RedisSlaves { get => throw null; set => throw null; } - public SentinelInfo(string masterName, System.Collections.Generic.IEnumerable redisMasters, System.Collections.Generic.IEnumerable redisReplicas) => throw null; - public override string ToString() => throw null; -} - -namespace ServiceStack -{ - namespace Redis - { - // Generated from `ServiceStack.Redis.BasicRedisClientManager` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicRedisClientManager : System.IDisposable, System.IAsyncDisposable, ServiceStack.Redis.IRedisFailover, ServiceStack.Redis.IRedisClientsManagerAsync, ServiceStack.Redis.IRedisClientsManager, ServiceStack.Redis.IHasRedisResolver, ServiceStack.Caching.ICacheClientAsync, ServiceStack.Caching.ICacheClient - { - public bool Add(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Add(string key, T value, System.DateTime expiresAt) => throw null; - public bool Add(string key, T value) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.AddAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token) => throw null; - public BasicRedisClientManager(params string[] readWriteHosts) => throw null; - public BasicRedisClientManager(int initialDb, params string[] readWriteHosts) => throw null; - public BasicRedisClientManager(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts, System.Int64? initalDb = default(System.Int64?)) => throw null; - public BasicRedisClientManager(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts, System.Int64? initalDb = default(System.Int64?)) => throw null; - public BasicRedisClientManager() => throw null; - public System.Func ClientFactory { get => throw null; set => throw null; } - public int? ConnectTimeout { get => throw null; set => throw null; } - public System.Action ConnectionFilter { get => throw null; set => throw null; } - public System.Int64? Db { get => throw null; set => throw null; } - public System.Int64 Decrement(string key, System.UInt32 amount) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token) => throw null; - public void Dispose() => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - public void FailoverTo(params string[] readWriteHosts) => throw null; - public void FailoverTo(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts) => throw null; - public void FlushAll() => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.FlushAllAsync(System.Threading.CancellationToken token) => throw null; - public T Get(string key) => throw null; - public System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys) => throw null; - System.Threading.Tasks.Task> ServiceStack.Caching.ICacheClientAsync.GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.GetAsync(string key, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Caching.ICacheClient GetCacheClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetCacheClientAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.IRedisClient GetClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetClientAsync(System.Threading.CancellationToken token) => throw null; - System.Collections.Generic.IAsyncEnumerable ServiceStack.Caching.ICacheClientAsync.GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Caching.ICacheClient GetReadOnlyCacheClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetReadOnlyCacheClientAsync(System.Threading.CancellationToken token) => throw null; - public virtual ServiceStack.Redis.IRedisClient GetReadOnlyClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetReadOnlyClientAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.GetTimeToLiveAsync(string key, System.Threading.CancellationToken token) => throw null; - public int? IdleTimeOutSecs { get => throw null; set => throw null; } - public System.Int64 Increment(string key, System.UInt32 amount) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token) => throw null; - public static ServiceStack.Logging.ILog Log; - public string NamespacePrefix { get => throw null; set => throw null; } - public System.Collections.Generic.List> OnFailover { get => throw null; set => throw null; } - protected virtual void OnStart() => throw null; - protected int RedisClientCounter; - public ServiceStack.Redis.IRedisResolver RedisResolver { get => throw null; set => throw null; } - public bool Remove(string key) => throw null; - public void RemoveAll(System.Collections.Generic.IEnumerable keys) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.RemoveAsync(string key, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.RemoveExpiredEntriesAsync(System.Threading.CancellationToken token) => throw null; - public bool Replace(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Replace(string key, T value, System.DateTime expiresAt) => throw null; - public bool Replace(string key, T value) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.ReplaceAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token) => throw null; - public bool Set(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Set(string key, T value, System.DateTime expiresAt) => throw null; - public bool Set(string key, T value) => throw null; - public void SetAll(System.Collections.Generic.IDictionary values) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token) => throw null; - public int? SocketReceiveTimeout { get => throw null; set => throw null; } - public int? SocketSendTimeout { get => throw null; set => throw null; } - public void Start() => throw null; - } - - // Generated from `ServiceStack.Redis.BasicRedisResolver` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicRedisResolver : ServiceStack.Redis.IRedisResolverExtended, ServiceStack.Redis.IRedisResolver - { - public BasicRedisResolver(System.Collections.Generic.IEnumerable masters, System.Collections.Generic.IEnumerable replicas) => throw null; - public System.Func ClientFactory { get => throw null; set => throw null; } - public ServiceStack.Redis.RedisClient CreateMasterClient(int desiredIndex) => throw null; - public ServiceStack.Redis.RedisClient CreateRedisClient(ServiceStack.Redis.RedisEndpoint config, bool master) => throw null; - public ServiceStack.Redis.RedisClient CreateSlaveClient(int desiredIndex) => throw null; - public ServiceStack.Redis.RedisEndpoint GetReadOnlyHost(int desiredIndex) => throw null; - public ServiceStack.Redis.RedisEndpoint GetReadWriteHost(int desiredIndex) => throw null; - public ServiceStack.Redis.RedisEndpoint[] Masters { get => throw null; } - public int ReadOnlyHostsCount { get => throw null; set => throw null; } - public int ReadWriteHostsCount { get => throw null; set => throw null; } - public ServiceStack.Redis.RedisEndpoint[] Replicas { get => throw null; } - public virtual void ResetMasters(System.Collections.Generic.List newMasters) => throw null; - public virtual void ResetMasters(System.Collections.Generic.IEnumerable hosts) => throw null; - public virtual void ResetSlaves(System.Collections.Generic.List newReplicas) => throw null; - public virtual void ResetSlaves(System.Collections.Generic.IEnumerable hosts) => throw null; - } - - // Generated from `ServiceStack.Redis.Commands` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Commands - { - public static System.Byte[] Addr; - public static System.Byte[] After; - public static System.Byte[] Alpha; - public static System.Byte[] Append; - public static System.Byte[] Asc; - public static System.Byte[] Auth; - public static System.Byte[] BLPop; - public static System.Byte[] BRPop; - public static System.Byte[] BRPopLPush; - public static System.Byte[] Before; - public static System.Byte[] BgRewriteAof; - public static System.Byte[] BgSave; - public static System.Byte[] BitCount; - public static System.Byte[] By; - public static System.Byte[] Client; - public static System.Byte[] Config; - public static System.Byte[] Count; - public static System.Byte[] DbSize; - public static System.Byte[] Debug; - public static System.Byte[] Decr; - public static System.Byte[] DecrBy; - public static System.Byte[] Del; - public static System.Byte[] Desc; - public static System.Byte[] Discard; - public static System.Byte[] Dump; - public static System.Byte[] Echo; - public static System.Byte[] Eval; - public static System.Byte[] EvalSha; - public static System.Byte[] Ex; - public static System.Byte[] Exec; - public static System.Byte[] Exists; - public static System.Byte[] Expire; - public static System.Byte[] ExpireAt; - public static System.Byte[] Failover; - public static System.Byte[] Feet; - public static System.Byte[] Flush; - public static System.Byte[] FlushAll; - public static System.Byte[] FlushDb; - public static System.Byte[] GeoAdd; - public static System.Byte[] GeoDist; - public static System.Byte[] GeoHash; - public static System.Byte[] GeoPos; - public static System.Byte[] GeoRadius; - public static System.Byte[] GeoRadiusByMember; - public static System.Byte[] Get; - public static System.Byte[] GetBit; - public static System.Byte[] GetMasterAddrByName; - public static System.Byte[] GetName; - public static System.Byte[] GetRange; - public static System.Byte[] GetSet; - public static System.Byte[] GetUnit(string unit) => throw null; - public static System.Byte[] HDel; - public static System.Byte[] HExists; - public static System.Byte[] HGet; - public static System.Byte[] HGetAll; - public static System.Byte[] HIncrBy; - public static System.Byte[] HIncrByFloat; - public static System.Byte[] HKeys; - public static System.Byte[] HLen; - public static System.Byte[] HMGet; - public static System.Byte[] HMSet; - public static System.Byte[] HScan; - public static System.Byte[] HSet; - public static System.Byte[] HSetNx; - public static System.Byte[] HVals; - public static System.Byte[] Id; - public static System.Byte[] IdleTime; - public static System.Byte[] Incr; - public static System.Byte[] IncrBy; - public static System.Byte[] IncrByFloat; - public static System.Byte[] Info; - public static System.Byte[] Keys; - public static System.Byte[] Kill; - public static System.Byte[] Kilometers; - public static System.Byte[] LIndex; - public static System.Byte[] LInsert; - public static System.Byte[] LLen; - public static System.Byte[] LPop; - public static System.Byte[] LPush; - public static System.Byte[] LPushX; - public static System.Byte[] LRange; - public static System.Byte[] LRem; - public static System.Byte[] LSet; - public static System.Byte[] LTrim; - public static System.Byte[] LastSave; - public static System.Byte[] Limit; - public static System.Byte[] List; - public static System.Byte[] Load; - public static System.Byte[] MGet; - public static System.Byte[] MSet; - public static System.Byte[] MSetNx; - public static System.Byte[] Master; - public static System.Byte[] Masters; - public static System.Byte[] Match; - public static System.Byte[] Meters; - public static System.Byte[] Migrate; - public static System.Byte[] Miles; - public static System.Byte[] Monitor; - public static System.Byte[] Move; - public static System.Byte[] Multi; - public static System.Byte[] No; - public static System.Byte[] NoSave; - public static System.Byte[] Nx; - public static System.Byte[] Object; - public static System.Byte[] One; - public static System.Byte[] PExpire; - public static System.Byte[] PExpireAt; - public static System.Byte[] PSetEx; - public static System.Byte[] PSubscribe; - public static System.Byte[] PTtl; - public static System.Byte[] PUnSubscribe; - public static System.Byte[] Pause; - public static System.Byte[] Persist; - public static System.Byte[] PfAdd; - public static System.Byte[] PfCount; - public static System.Byte[] PfMerge; - public static System.Byte[] Ping; - public static System.Byte[] Publish; - public static System.Byte[] Px; - public static System.Byte[] Quit; - public static System.Byte[] RPop; - public static System.Byte[] RPopLPush; - public static System.Byte[] RPush; - public static System.Byte[] RPushX; - public static System.Byte[] RandomKey; - public static System.Byte[] Rename; - public static System.Byte[] RenameNx; - public static System.Byte[] ResetStat; - public static System.Byte[] Restore; - public static System.Byte[] Rewrite; - public static System.Byte[] Role; - public static System.Byte[] SAdd; - public static System.Byte[] SCard; - public static System.Byte[] SDiff; - public static System.Byte[] SDiffStore; - public static System.Byte[] SInter; - public static System.Byte[] SInterStore; - public static System.Byte[] SIsMember; - public static System.Byte[] SMembers; - public static System.Byte[] SMove; - public static System.Byte[] SPop; - public static System.Byte[] SRandMember; - public static System.Byte[] SRem; - public static System.Byte[] SScan; - public static System.Byte[] SUnion; - public static System.Byte[] SUnionStore; - public static System.Byte[] Save; - public static System.Byte[] Scan; - public static System.Byte[] Script; - public static System.Byte[] Segfault; - public static System.Byte[] Select; - public static System.Byte[] Sentinel; - public static System.Byte[] Sentinels; - public static System.Byte[] Set; - public static System.Byte[] SetBit; - public static System.Byte[] SetEx; - public static System.Byte[] SetName; - public static System.Byte[] SetNx; - public static System.Byte[] SetRange; - public static System.Byte[] Shutdown; - public static System.Byte[] SkipMe; - public static System.Byte[] SlaveOf; - public static System.Byte[] Slaves; - public static System.Byte[] Sleep; - public static System.Byte[] Slowlog; - public static System.Byte[] Sort; - public static System.Byte[] Store; - public static System.Byte[] StrLen; - public static System.Byte[] Subscribe; - public static System.Byte[] Time; - public static System.Byte[] Ttl; - public static System.Byte[] Type; - public static System.Byte[] UnSubscribe; - public static System.Byte[] UnWatch; - public static System.Byte[] Watch; - public static System.Byte[] WithCoord; - public static System.Byte[] WithDist; - public static System.Byte[] WithHash; - public static System.Byte[] WithScores; - public static System.Byte[] Xx; - public static System.Byte[] ZAdd; - public static System.Byte[] ZCard; - public static System.Byte[] ZCount; - public static System.Byte[] ZIncrBy; - public static System.Byte[] ZInterStore; - public static System.Byte[] ZLexCount; - public static System.Byte[] ZRange; - public static System.Byte[] ZRangeByLex; - public static System.Byte[] ZRangeByScore; - public static System.Byte[] ZRank; - public static System.Byte[] ZRem; - public static System.Byte[] ZRemRangeByLex; - public static System.Byte[] ZRemRangeByRank; - public static System.Byte[] ZRemRangeByScore; - public static System.Byte[] ZRevRange; - public static System.Byte[] ZRevRangeByScore; - public static System.Byte[] ZRevRank; - public static System.Byte[] ZScan; - public static System.Byte[] ZScore; - public static System.Byte[] ZUnionStore; - } - - // Generated from `ServiceStack.Redis.IHandleClientDispose` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHandleClientDispose - { - void DisposeClient(ServiceStack.Redis.RedisNativeClient client); - } - - // Generated from `ServiceStack.Redis.IHasRedisResolver` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasRedisResolver - { - ServiceStack.Redis.IRedisResolver RedisResolver { get; set; } - } - - // Generated from `ServiceStack.Redis.IRedisFailover` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisFailover - { - void FailoverTo(params string[] readWriteHosts); - void FailoverTo(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts); - System.Collections.Generic.List> OnFailover { get; } - } - - // Generated from `ServiceStack.Redis.IRedisResolver` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisResolver - { - System.Func ClientFactory { get; set; } - ServiceStack.Redis.RedisClient CreateMasterClient(int desiredIndex); - ServiceStack.Redis.RedisClient CreateSlaveClient(int desiredIndex); - int ReadOnlyHostsCount { get; } - int ReadWriteHostsCount { get; } - void ResetMasters(System.Collections.Generic.IEnumerable hosts); - void ResetSlaves(System.Collections.Generic.IEnumerable hosts); - } - - // Generated from `ServiceStack.Redis.IRedisResolverExtended` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisResolverExtended : ServiceStack.Redis.IRedisResolver - { - ServiceStack.Redis.RedisClient CreateRedisClient(ServiceStack.Redis.RedisEndpoint config, bool master); - ServiceStack.Redis.RedisEndpoint GetReadOnlyHost(int desiredIndex); - ServiceStack.Redis.RedisEndpoint GetReadWriteHost(int desiredIndex); - } - - // Generated from `ServiceStack.Redis.IRedisSentinel` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisSentinel : System.IDisposable - { - ServiceStack.Redis.IRedisClientsManager Start(); - } - - // Generated from `ServiceStack.Redis.InvalidAccessException` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InvalidAccessException : ServiceStack.Redis.RedisException - { - public InvalidAccessException(int threadId, string stackTrace) : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.Redis.PooledRedisClientManager` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PooledRedisClientManager : System.IDisposable, System.IAsyncDisposable, ServiceStack.Redis.IRedisFailover, ServiceStack.Redis.IRedisClientsManagerAsync, ServiceStack.Redis.IRedisClientsManager, ServiceStack.Redis.IRedisClientCacheManager, ServiceStack.Redis.IHasRedisResolver, ServiceStack.Redis.IHandleClientDispose - { - public bool AssertAccessOnlyOnSameThread { get => throw null; set => throw null; } - protected ServiceStack.Redis.RedisClientManagerConfig Config { get => throw null; set => throw null; } - public int? ConnectTimeout { get => throw null; set => throw null; } - public System.Action ConnectionFilter { get => throw null; set => throw null; } - public System.Int64? Db { get => throw null; set => throw null; } - // Generated from `ServiceStack.Redis.PooledRedisClientManager+DisposablePooledClient<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DisposablePooledClient : System.IDisposable where T : ServiceStack.Redis.RedisNativeClient - { - public T Client { get => throw null; } - public DisposablePooledClient(ServiceStack.Redis.PooledRedisClientManager clientManager) => throw null; - public void Dispose() => throw null; - } - - - public void Dispose() => throw null; - protected void Dispose(ServiceStack.Redis.RedisClient redisClient) => throw null; - protected virtual void Dispose(bool disposing) => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - public void DisposeClient(ServiceStack.Redis.RedisNativeClient client) => throw null; - public void DisposeReadOnlyClient(ServiceStack.Redis.RedisNativeClient client) => throw null; - public void DisposeWriteClient(ServiceStack.Redis.RedisNativeClient client) => throw null; - public void FailoverTo(params string[] readWriteHosts) => throw null; - public void FailoverTo(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts) => throw null; - public ServiceStack.Caching.ICacheClient GetCacheClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetCacheClientAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.IRedisClient GetClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetClientAsync(System.Threading.CancellationToken token) => throw null; - public int[] GetClientPoolActiveStates() => throw null; - public ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient GetDisposableClient() where T : ServiceStack.Redis.RedisNativeClient => throw null; - public ServiceStack.Caching.ICacheClient GetReadOnlyCacheClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetReadOnlyCacheClientAsync(System.Threading.CancellationToken token) => throw null; - public virtual ServiceStack.Redis.IRedisClient GetReadOnlyClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetReadOnlyClientAsync(System.Threading.CancellationToken token) => throw null; - public int[] GetReadOnlyClientPoolActiveStates() => throw null; - public System.Collections.Generic.Dictionary GetStats() => throw null; - public int? IdleTimeOutSecs { get => throw null; set => throw null; } - public string NamespacePrefix { get => throw null; set => throw null; } - public System.Collections.Generic.List> OnFailover { get => throw null; set => throw null; } - protected virtual void OnStart() => throw null; - protected int PoolSizeMultiplier; - public int? PoolTimeout { get => throw null; set => throw null; } - public PooledRedisClientManager(params string[] readWriteHosts) => throw null; - public PooledRedisClientManager(int poolSize, int poolTimeOutSeconds, params string[] readWriteHosts) => throw null; - public PooledRedisClientManager(System.Int64 initialDb, params string[] readWriteHosts) => throw null; - public PooledRedisClientManager(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts, System.Int64 initialDb) => throw null; - public PooledRedisClientManager(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts, ServiceStack.Redis.RedisClientManagerConfig config, System.Int64? initialDb, int? poolSizeMultiplier, int? poolTimeOutSeconds) => throw null; - public PooledRedisClientManager(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts, ServiceStack.Redis.RedisClientManagerConfig config) => throw null; - public PooledRedisClientManager(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts) => throw null; - public PooledRedisClientManager() => throw null; - protected int ReadPoolIndex; - public int RecheckPoolAfterMs; - protected int RedisClientCounter; - public ServiceStack.Redis.IRedisResolver RedisResolver { get => throw null; set => throw null; } - public int? SocketReceiveTimeout { get => throw null; set => throw null; } - public int? SocketSendTimeout { get => throw null; set => throw null; } - public void Start() => throw null; - public static bool UseGetClientBlocking; - protected int WritePoolIndex; - // ERR: Stub generator didn't handle member: ~PooledRedisClientManager - } - - // Generated from `ServiceStack.Redis.RedisAllPurposePipeline` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisAllPurposePipeline : ServiceStack.Redis.RedisCommandQueue, System.IDisposable, System.IAsyncDisposable, ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync, ServiceStack.Redis.Pipeline.IRedisQueueableOperation, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync, ServiceStack.Redis.Pipeline.IRedisPipelineShared, ServiceStack.Redis.Pipeline.IRedisPipelineAsync, ServiceStack.Redis.Pipeline.IRedisPipeline - { - protected void ClosePipeline() => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteBytesQueuedCommandAsync(System.Func> bytesReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteDoubleQueuedCommandAsync(System.Func> doubleReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteIntQueuedCommandAsync(System.Func> intReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteLongQueuedCommandAsync(System.Func> longReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteMultiBytesQueuedCommandAsync(System.Func> multiBytesReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteMultiStringQueuedCommandAsync(System.Func>> multiStringReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteRedisDataQueuedCommandAsync(System.Func> redisDataReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteStringQueuedCommandAsync(System.Func> stringReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteVoidQueuedCommandAsync(System.Func voidReadCommand) => throw null; - public virtual void Dispose() => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - protected void Execute() => throw null; - protected System.Threading.Tasks.ValueTask ExecuteAsync() => throw null; - public void Flush() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync.FlushAsync(System.Threading.CancellationToken token) => throw null; - protected virtual void Init() => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func>> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func>> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func>> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync.QueueCommand(System.Func> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public RedisAllPurposePipeline(ServiceStack.Redis.RedisClient redisClient) : base(default(ServiceStack.Redis.RedisClient)) => throw null; - public virtual bool Replay() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync.ReplayAsync(System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisClient` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisClient : ServiceStack.Redis.RedisNativeClient, System.IDisposable, System.IAsyncDisposable, ServiceStack.Redis.IRedisClientAsync, ServiceStack.Redis.IRedisClient, ServiceStack.Data.IEntityStoreAsync, ServiceStack.Data.IEntityStore, ServiceStack.Caching.IRemoveByPatternAsync, ServiceStack.Caching.IRemoveByPattern, ServiceStack.Caching.ICacheClientExtended, ServiceStack.Caching.ICacheClientAsync, ServiceStack.Caching.ICacheClient - { - public System.IDisposable AcquireLock(string key, System.TimeSpan timeOut) => throw null; - public System.IDisposable AcquireLock(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AcquireLockAsync(string key, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public bool Add(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Add(string key, T value, System.DateTime expiresAt) => throw null; - public bool Add(string key, T value) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.AddAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token) => throw null; - public System.Int64 AddGeoMember(string key, double longitude, double latitude, string member) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddGeoMemberAsync(string key, double longitude, double latitude, string member, System.Threading.CancellationToken token) => throw null; - public System.Int64 AddGeoMembers(string key, params ServiceStack.Redis.RedisGeo[] geoPoints) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddGeoMembersAsync(string key, params ServiceStack.Redis.RedisGeo[] geoPoints) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddGeoMembersAsync(string key, ServiceStack.Redis.RedisGeo[] geoPoints, System.Threading.CancellationToken token) => throw null; - public void AddItemToList(string listId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddItemToListAsync(string listId, string value, System.Threading.CancellationToken token) => throw null; - public void AddItemToSet(string setId, string item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddItemToSetAsync(string setId, string item, System.Threading.CancellationToken token) => throw null; - public bool AddItemToSortedSet(string setId, string value, double score) => throw null; - public bool AddItemToSortedSet(string setId, string value, System.Int64 score) => throw null; - public bool AddItemToSortedSet(string setId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddItemToSortedSetAsync(string setId, string value, double score, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddItemToSortedSetAsync(string setId, string value, System.Threading.CancellationToken token) => throw null; - public void AddRangeToList(string listId, System.Collections.Generic.List values) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddRangeToListAsync(string listId, System.Collections.Generic.List values, System.Threading.CancellationToken token) => throw null; - public void AddRangeToSet(string setId, System.Collections.Generic.List items) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddRangeToSetAsync(string setId, System.Collections.Generic.List items, System.Threading.CancellationToken token) => throw null; - public bool AddRangeToSortedSet(string setId, System.Collections.Generic.List values, double score) => throw null; - public bool AddRangeToSortedSet(string setId, System.Collections.Generic.List values, System.Int64 score) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddRangeToSortedSetAsync(string setId, System.Collections.Generic.List values, double score, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddRangeToSortedSetAsync(string setId, System.Collections.Generic.List values, System.Int64 score, System.Threading.CancellationToken token) => throw null; - public bool AddToHyperLog(string key, params string[] elements) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddToHyperLogAsync(string key, string[] elements, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AddToHyperLogAsync(string key, params string[] elements) => throw null; - public System.Int64 AppendToValue(string key, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.AppendToValueAsync(string key, string value, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.Generic.IRedisTypedClient As() => throw null; - ServiceStack.Redis.Generic.IRedisTypedClientAsync ServiceStack.Redis.IRedisClientAsync.As() => throw null; - public ServiceStack.Redis.IRedisClientAsync AsAsync() => throw null; - public void AssertNotInTransaction() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.BackgroundRewriteAppendOnlyFileAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.BackgroundSaveAsync(System.Threading.CancellationToken token) => throw null; - public string BlockingDequeueItemFromList(string listId, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.BlockingDequeueItemFromListAsync(string listId, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.ItemRef BlockingDequeueItemFromLists(string[] listIds, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.BlockingDequeueItemFromListsAsync(string[] listIds, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public string BlockingPopAndPushItemBetweenLists(string fromListId, string toListId, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.BlockingPopAndPushItemBetweenListsAsync(string fromListId, string toListId, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public string BlockingPopItemFromList(string listId, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.BlockingPopItemFromListAsync(string listId, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.ItemRef BlockingPopItemFromLists(string[] listIds, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.BlockingPopItemFromListsAsync(string[] listIds, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public string BlockingRemoveStartFromList(string listId, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.BlockingRemoveStartFromListAsync(string listId, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.ItemRef BlockingRemoveStartFromLists(string[] listIds, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.BlockingRemoveStartFromListsAsync(string[] listIds, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public double CalculateDistanceBetweenGeoMembers(string key, string fromMember, string toMember, string unit = default(string)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.CalculateDistanceBetweenGeoMembersAsync(string key, string fromMember, string toMember, string unit, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.CalculateSha1Async(string luaBody, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.RedisClient CloneClient() => throw null; - public bool ContainsKey(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ContainsKeyAsync(string key, System.Threading.CancellationToken token) => throw null; - public static System.Func> ConvertToHashFn; - public System.DateTime ConvertToServerDate(System.DateTime expiresAt) => throw null; - public System.Int64 CountHyperLog(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.CountHyperLogAsync(string key, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.Pipeline.IRedisPipeline CreatePipeline() => throw null; - ServiceStack.Redis.Pipeline.IRedisPipelineAsync ServiceStack.Redis.IRedisClientAsync.CreatePipeline() => throw null; - public override ServiceStack.Redis.IRedisSubscription CreateSubscription() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.CreateSubscriptionAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.IRedisTransaction CreateTransaction() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.CreateTransactionAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.RedisText Custom(params object[] cmdWithArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.CustomAsync(params object[] cmdWithArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.CustomAsync(object[] cmdWithArgs, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.DbSizeAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 Decrement(string key, System.UInt32 amount) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token) => throw null; - public System.Int64 DecrementValue(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.DecrementValueAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Int64 DecrementValueBy(string key, int count) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.DecrementValueByAsync(string key, int count, System.Threading.CancellationToken token) => throw null; - public void Delete(T entity) => throw null; - public void DeleteAll() => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.DeleteAllAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.DeleteAsync(T entity, System.Threading.CancellationToken token) => throw null; - public void DeleteById(object id) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.DeleteByIdAsync(object id, System.Threading.CancellationToken token) => throw null; - public void DeleteByIds(System.Collections.ICollection ids) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.DeleteByIdsAsync(System.Collections.ICollection ids, System.Threading.CancellationToken token) => throw null; - public string DequeueItemFromList(string listId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.DequeueItemFromListAsync(string listId, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.EchoAsync(string text, System.Threading.CancellationToken token) => throw null; - public void EnqueueItemOnList(string listId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.EnqueueItemOnListAsync(string listId, string value, System.Threading.CancellationToken token) => throw null; - public void Exec(System.Action action) => throw null; - public T Exec(System.Func action) => throw null; - public T ExecCachedLua(string scriptBody, System.Func scriptSha1) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecCachedLuaAsync(string scriptBody, System.Func> scriptSha1, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.RedisText ExecLua(string luaBody, string[] keys, string[] args) => throw null; - public ServiceStack.Redis.RedisText ExecLua(string body, params string[] args) => throw null; - public System.Int64 ExecLuaAsInt(string luaBody, string[] keys, string[] args) => throw null; - public System.Int64 ExecLuaAsInt(string body, params string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaAsIntAsync(string luaBody, params string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaAsIntAsync(string body, string[] keys, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaAsIntAsync(string body, string[] args, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List ExecLuaAsList(string luaBody, string[] keys, string[] args) => throw null; - public System.Collections.Generic.List ExecLuaAsList(string body, params string[] args) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.ExecLuaAsListAsync(string luaBody, params string[] args) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.ExecLuaAsListAsync(string body, string[] keys, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.ExecLuaAsListAsync(string body, string[] args, System.Threading.CancellationToken token) => throw null; - public string ExecLuaAsString(string sha1, string[] keys, string[] args) => throw null; - public string ExecLuaAsString(string body, params string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaAsStringAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaAsStringAsync(string luaBody, params string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaAsStringAsync(string body, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaAsync(string luaBody, string[] keys, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaAsync(string body, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaAsync(string body, params string[] args) => throw null; - public ServiceStack.Redis.RedisText ExecLuaSha(string sha1, string[] keys, string[] args) => throw null; - public ServiceStack.Redis.RedisText ExecLuaSha(string sha1, params string[] args) => throw null; - public System.Int64 ExecLuaShaAsInt(string sha1, string[] keys, string[] args) => throw null; - public System.Int64 ExecLuaShaAsInt(string sha1, params string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsIntAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsIntAsync(string sha1, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsIntAsync(string sha1, params string[] args) => throw null; - public System.Collections.Generic.List ExecLuaShaAsList(string sha1, string[] keys, string[] args) => throw null; - public System.Collections.Generic.List ExecLuaShaAsList(string sha1, params string[] args) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsListAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsListAsync(string sha1, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsListAsync(string sha1, params string[] args) => throw null; - public string ExecLuaShaAsString(string sha1, string[] keys, string[] args) => throw null; - public string ExecLuaShaAsString(string sha1, params string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsStringAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsStringAsync(string sha1, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsStringAsync(string sha1, params string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsync(string sha1, string[] keys, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsync(string sha1, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExecLuaShaAsync(string sha1, params string[] args) => throw null; - public bool ExpireEntryAt(string key, System.DateTime expireAt) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExpireEntryAtAsync(string key, System.DateTime expireAt, System.Threading.CancellationToken token) => throw null; - public bool ExpireEntryIn(string key, System.TimeSpan expireIn) => throw null; - public bool ExpireEntryIn(System.Byte[] key, System.TimeSpan expireIn) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ExpireEntryInAsync(string key, System.TimeSpan expireIn, System.Threading.CancellationToken token) => throw null; - public string[] FindGeoMembersInRadius(string key, string member, double radius, string unit) => throw null; - public string[] FindGeoMembersInRadius(string key, double longitude, double latitude, double radius, string unit) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.FindGeoMembersInRadiusAsync(string key, string member, double radius, string unit, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.FindGeoMembersInRadiusAsync(string key, double longitude, double latitude, double radius, string unit, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List FindGeoResultsInRadius(string key, string member, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?)) => throw null; - public System.Collections.Generic.List FindGeoResultsInRadius(string key, double longitude, double latitude, double radius, string unit, int? count = default(int?), bool? sortByNearest = default(bool?)) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.FindGeoResultsInRadiusAsync(string key, string member, double radius, string unit, int? count, bool? sortByNearest, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.FindGeoResultsInRadiusAsync(string key, double longitude, double latitude, double radius, string unit, int? count, bool? sortByNearest, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.FlushAllAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.FlushDbAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ForegroundSaveAsync(System.Threading.CancellationToken token) => throw null; - public T Get(string key) => throw null; - public System.Collections.Generic.IList GetAll() => throw null; - public System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys) => throw null; - System.Threading.Tasks.Task> ServiceStack.Caching.ICacheClientAsync.GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.Dictionary GetAllEntriesFromHash(string hashId) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetAllEntriesFromHashAsync(string hashId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetAllItemsFromList(string listId) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetAllItemsFromListAsync(string listId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.HashSet GetAllItemsFromSet(string setId) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetAllItemsFromSetAsync(string setId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetAllItemsFromSortedSet(string setId) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetAllItemsFromSortedSetAsync(string setId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetAllItemsFromSortedSetDesc(string setId) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetAllItemsFromSortedSetDescAsync(string setId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetAllKeys() => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetAllKeysAsync(System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetAllWithScoresFromSortedSet(string setId) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetAllWithScoresFromSortedSetAsync(string setId, System.Threading.CancellationToken token) => throw null; - public string GetAndSetValue(string key, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetAndSetValueAsync(string key, string value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.GetAsync(string key, System.Threading.CancellationToken token) => throw null; - public T GetById(object id) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.GetByIdAsync(object id, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IList GetByIds(System.Collections.ICollection ids) => throw null; - System.Threading.Tasks.Task> ServiceStack.Data.IEntityStoreAsync.GetByIdsAsync(System.Collections.ICollection ids, System.Threading.CancellationToken token) => throw null; - public string GetClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetClientAsync(System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List> GetClientsInfo() => throw null; - System.Threading.Tasks.ValueTask>> ServiceStack.Redis.IRedisClientAsync.GetClientsInfoAsync(System.Threading.CancellationToken token) => throw null; - public string GetConfig(string configItem) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetConfigAsync(string configItem, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.HashSet GetDifferencesFromSet(string fromSetId, params string[] withSetIds) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetDifferencesFromSetAsync(string fromSetId, string[] withSetIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetDifferencesFromSetAsync(string fromSetId, params string[] withSetIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetEntryTypeAsync(string key, System.Threading.CancellationToken token) => throw null; - public T GetFromHash(object id) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetFromHashAsync(object id, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetGeoCoordinates(string key, params string[] members) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetGeoCoordinatesAsync(string key, string[] members, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetGeoCoordinatesAsync(string key, params string[] members) => throw null; - public string[] GetGeohashes(string key, params string[] members) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetGeohashesAsync(string key, string[] members, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetGeohashesAsync(string key, params string[] members) => throw null; - public System.Int64 GetHashCount(string hashId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetHashCountAsync(string hashId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetHashKeys(string hashId) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetHashKeysAsync(string hashId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetHashValues(string hashId) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetHashValuesAsync(string hashId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.HashSet GetIntersectFromSets(params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetIntersectFromSetsAsync(string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetIntersectFromSetsAsync(params string[] setIds) => throw null; - public string GetItemFromList(string listId, int listIndex) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetItemFromListAsync(string listId, int listIndex, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetItemIndexInSortedSet(string setId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetItemIndexInSortedSetAsync(string setId, string value, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetItemIndexInSortedSetDesc(string setId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetItemIndexInSortedSetDescAsync(string setId, string value, System.Threading.CancellationToken token) => throw null; - public double GetItemScoreInSortedSet(string setId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetItemScoreInSortedSetAsync(string setId, string value, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IEnumerable GetKeysByPattern(string pattern) => throw null; - System.Collections.Generic.IAsyncEnumerable ServiceStack.Caching.ICacheClientAsync.GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token) => throw null; - public static double GetLexicalScore(string value) => throw null; - public System.Int64 GetListCount(string listId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetListCountAsync(string listId, System.Threading.CancellationToken token) => throw null; - public string GetRandomItemFromSet(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetRandomItemFromSetAsync(string setId, System.Threading.CancellationToken token) => throw null; - public string GetRandomKey() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetRandomKeyAsync(System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromList(string listId, int startingFrom, int endingAt) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromListAsync(string listId, int startingFrom, int endingAt, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromSortedList(string listId, int startingFrom, int endingAt) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedListAsync(string listId, int startingFrom, int endingAt, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSet(string setId, int fromRank, int toRank) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, double fromScore, double toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, double fromScore, double toScore) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, double fromScore, double toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, double fromScore, double toScore) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetDesc(string setId, int fromRank, int toRank) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeFromSortedSetDescAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSet(string setId, int fromRank, int toRank) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, string fromStringScore, string toStringScore) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, double fromScore, double toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, double fromScore, double toScore) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(string setId, System.Int64 fromScore, System.Int64 toScore) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, string fromStringScore, string toStringScore) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, double fromScore, double toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, double fromScore, double toScore) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(string setId, System.Int64 fromScore, System.Int64 toScore) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetDesc(string setId, int fromRank, int toRank) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetRangeWithScoresFromSortedSetDescAsync(string setId, int fromRank, int toRank, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.RedisServerRole GetServerRole() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetServerRoleAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.RedisText GetServerRoleInfo() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetServerRoleInfoAsync(System.Threading.CancellationToken token) => throw null; - public System.DateTime GetServerTime() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetServerTimeAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 GetSetCount(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetSetCountAsync(string setId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IEnumerable GetSlowlog(int? numberOfRecords = default(int?)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetSlowlogAsync(int? numberOfRecords, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetSortedEntryValues(string setId, int startingFrom, int endingAt) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetSortedEntryValuesAsync(string setId, int startingFrom, int endingAt, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetSortedItemsFromList(string listId, ServiceStack.Redis.SortOptions sortOptions) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetSortedItemsFromListAsync(string listId, ServiceStack.Redis.SortOptions sortOptions, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetSortedSetCount(string setId, string fromStringScore, string toStringScore) => throw null; - public System.Int64 GetSortedSetCount(string setId, double fromScore, double toScore) => throw null; - public System.Int64 GetSortedSetCount(string setId, System.Int64 fromScore, System.Int64 toScore) => throw null; - public System.Int64 GetSortedSetCount(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetSortedSetCountAsync(string setId, string fromStringScore, string toStringScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetSortedSetCountAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetSortedSetCountAsync(string setId, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetSortedSetCountAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetStringCount(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetStringCountAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.TimeSpan? GetTimeToLive(string key) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.GetTimeToLiveAsync(string key, System.Threading.CancellationToken token) => throw null; - public string GetTypeIdsSetKey() => throw null; - public string GetTypeIdsSetKey(System.Type type) => throw null; - public string GetTypeSequenceKey() => throw null; - public System.Collections.Generic.HashSet GetUnionFromSets(params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetUnionFromSetsAsync(string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetUnionFromSetsAsync(params string[] setIds) => throw null; - public string GetValue(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetValueAsync(string key, System.Threading.CancellationToken token) => throw null; - public string GetValueFromHash(string hashId, string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.GetValueFromHashAsync(string hashId, string key, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetValues(System.Collections.Generic.List keys) => throw null; - public System.Collections.Generic.List GetValues(System.Collections.Generic.List keys) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetValuesAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetValuesAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetValuesFromHash(string hashId, params string[] keys) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetValuesFromHashAsync(string hashId, string[] keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetValuesFromHashAsync(string hashId, params string[] keys) => throw null; - public System.Collections.Generic.Dictionary GetValuesMap(System.Collections.Generic.List keys) => throw null; - public System.Collections.Generic.Dictionary GetValuesMap(System.Collections.Generic.List keys) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetValuesMapAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.GetValuesMapAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token) => throw null; - public bool HasLuaScript(string sha1Ref) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.HasLuaScriptAsync(string sha1Ref, System.Threading.CancellationToken token) => throw null; - public bool HashContainsEntry(string hashId, string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.HashContainsEntryAsync(string hashId, string key, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Model.IHasNamed Hashes { get => throw null; set => throw null; } - ServiceStack.Model.IHasNamed ServiceStack.Redis.IRedisClientAsync.Hashes { get => throw null; } - public System.Int64 Increment(string key, System.UInt32 amount) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token) => throw null; - public double IncrementItemInSortedSet(string setId, string value, double incrementBy) => throw null; - public double IncrementItemInSortedSet(string setId, string value, System.Int64 incrementBy) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.IncrementItemInSortedSetAsync(string setId, string value, double incrementBy, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.IncrementItemInSortedSetAsync(string setId, string value, System.Int64 incrementBy, System.Threading.CancellationToken token) => throw null; - public System.Int64 IncrementValue(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.IncrementValueAsync(string key, System.Threading.CancellationToken token) => throw null; - public double IncrementValueBy(string key, double count) => throw null; - public System.Int64 IncrementValueBy(string key, int count) => throw null; - public System.Int64 IncrementValueBy(string key, System.Int64 count) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.IncrementValueByAsync(string key, double count, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.IncrementValueByAsync(string key, int count, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.IncrementValueByAsync(string key, System.Int64 count, System.Threading.CancellationToken token) => throw null; - public double IncrementValueInHash(string hashId, string key, double incrementBy) => throw null; - public System.Int64 IncrementValueInHash(string hashId, string key, int incrementBy) => throw null; - public System.Int64 IncrementValueInHash(string hashId, string key, System.Int64 incrementBy) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.IncrementValueInHashAsync(string hashId, string key, double incrementBy, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.IncrementValueInHashAsync(string hashId, string key, int incrementBy, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.InfoAsync(System.Threading.CancellationToken token) => throw null; - public void Init() => throw null; - public string this[string key] { get => throw null; set => throw null; } - public void KillClient(string address) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.KillClientAsync(string address, System.Threading.CancellationToken token) => throw null; - public System.Int64 KillClients(string fromAddress = default(string), string withId = default(string), ServiceStack.Redis.RedisClientType? ofType = default(ServiceStack.Redis.RedisClientType?), bool? skipMe = default(bool?)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.KillClientsAsync(string fromAddress, string withId, ServiceStack.Redis.RedisClientType? ofType, bool? skipMe, System.Threading.CancellationToken token) => throw null; - public void KillRunningLuaScript() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.KillRunningLuaScriptAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.LastSaveAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Model.IHasNamed Lists { get => throw null; set => throw null; } - ServiceStack.Model.IHasNamed ServiceStack.Redis.IRedisClientAsync.Lists { get => throw null; } - public string LoadLuaScript(string body) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.LoadLuaScriptAsync(string body, System.Threading.CancellationToken token) => throw null; - public void MergeHyperLogs(string toKey, params string[] fromKeys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.MergeHyperLogsAsync(string toKey, string[] fromKeys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.MergeHyperLogsAsync(string toKey, params string[] fromKeys) => throw null; - public void MoveBetweenSets(string fromSetId, string toSetId, string item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.MoveBetweenSetsAsync(string fromSetId, string toSetId, string item, System.Threading.CancellationToken token) => throw null; - public static ServiceStack.Redis.RedisClient New() => throw null; - public static System.Func NewFactoryFn; - public override void OnConnected() => throw null; - public void PauseAllClients(System.TimeSpan duration) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PauseAllClientsAsync(System.TimeSpan duration, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PingAsync(System.Threading.CancellationToken token) => throw null; - public string PopAndPushItemBetweenLists(string fromListId, string toListId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PopAndPushItemBetweenListsAsync(string fromListId, string toListId, System.Threading.CancellationToken token) => throw null; - public string PopItemFromList(string listId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PopItemFromListAsync(string listId, System.Threading.CancellationToken token) => throw null; - public string PopItemFromSet(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PopItemFromSetAsync(string setId, System.Threading.CancellationToken token) => throw null; - public string PopItemWithHighestScoreFromSortedSet(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PopItemWithHighestScoreFromSortedSetAsync(string setId, System.Threading.CancellationToken token) => throw null; - public string PopItemWithLowestScoreFromSortedSet(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PopItemWithLowestScoreFromSortedSetAsync(string setId, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List PopItemsFromSet(string setId, int count) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.PopItemsFromSetAsync(string setId, int count, System.Threading.CancellationToken token) => throw null; - public void PrependItemToList(string listId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PrependItemToListAsync(string listId, string value, System.Threading.CancellationToken token) => throw null; - public void PrependRangeToList(string listId, System.Collections.Generic.List values) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PrependRangeToListAsync(string listId, System.Collections.Generic.List values, System.Threading.CancellationToken token) => throw null; - public System.Int64 PublishMessage(string toChannel, string message) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PublishMessageAsync(string toChannel, string message, System.Threading.CancellationToken token) => throw null; - public void PushItemToList(string listId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.PushItemToListAsync(string listId, string value, System.Threading.CancellationToken token) => throw null; - public RedisClient(string host, int port, string password = default(string), System.Int64 db = default(System.Int64)) => throw null; - public RedisClient(string host, int port) => throw null; - public RedisClient(string host) => throw null; - public RedisClient(System.Uri uri) => throw null; - public RedisClient(ServiceStack.Redis.RedisEndpoint config) => throw null; - public RedisClient() => throw null; - public bool Remove(string key) => throw null; - public bool Remove(System.Byte[] key) => throw null; - public void RemoveAll(System.Collections.Generic.IEnumerable keys) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token) => throw null; - public void RemoveAllFromList(string listId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveAllFromListAsync(string listId, System.Threading.CancellationToken token) => throw null; - public void RemoveAllLuaScripts() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveAllLuaScriptsAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.RemoveAsync(string key, System.Threading.CancellationToken token) => throw null; - public void RemoveByPattern(string pattern) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.IRemoveByPatternAsync.RemoveByPatternAsync(string pattern, System.Threading.CancellationToken token) => throw null; - public void RemoveByRegex(string pattern) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.IRemoveByPatternAsync.RemoveByRegexAsync(string regex, System.Threading.CancellationToken token) => throw null; - public string RemoveEndFromList(string listId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveEndFromListAsync(string listId, System.Threading.CancellationToken token) => throw null; - public bool RemoveEntry(params string[] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveEntryAsync(string[] keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveEntryAsync(params string[] args) => throw null; - public bool RemoveEntryFromHash(string hashId, string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveEntryFromHashAsync(string hashId, string key, System.Threading.CancellationToken token) => throw null; - public void RemoveExpiredEntries() => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.RemoveExpiredEntriesAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 RemoveItemFromList(string listId, string value, int noOfMatches) => throw null; - public System.Int64 RemoveItemFromList(string listId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveItemFromListAsync(string listId, string value, int noOfMatches, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveItemFromListAsync(string listId, string value, System.Threading.CancellationToken token) => throw null; - public void RemoveItemFromSet(string setId, string item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveItemFromSetAsync(string setId, string item, System.Threading.CancellationToken token) => throw null; - public bool RemoveItemFromSortedSet(string setId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveItemFromSortedSetAsync(string setId, string value, System.Threading.CancellationToken token) => throw null; - public System.Int64 RemoveItemsFromSortedSet(string setId, System.Collections.Generic.List values) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveItemsFromSortedSetAsync(string setId, System.Collections.Generic.List values, System.Threading.CancellationToken token) => throw null; - public System.Int64 RemoveRangeFromSortedSet(string setId, int minRank, int maxRank) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveRangeFromSortedSetAsync(string setId, int minRank, int maxRank, System.Threading.CancellationToken token) => throw null; - public System.Int64 RemoveRangeFromSortedSetByScore(string setId, double fromScore, double toScore) => throw null; - public System.Int64 RemoveRangeFromSortedSetByScore(string setId, System.Int64 fromScore, System.Int64 toScore) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveRangeFromSortedSetByScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveRangeFromSortedSetByScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token) => throw null; - public System.Int64 RemoveRangeFromSortedSetBySearch(string setId, string start = default(string), string end = default(string)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveRangeFromSortedSetBySearchAsync(string setId, string start, string end, System.Threading.CancellationToken token) => throw null; - public string RemoveStartFromList(string listId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RemoveStartFromListAsync(string listId, System.Threading.CancellationToken token) => throw null; - public void RenameKey(string fromName, string toName) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.RenameKeyAsync(string fromName, string toName, System.Threading.CancellationToken token) => throw null; - public bool Replace(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Replace(string key, T value, System.DateTime expiresAt) => throw null; - public bool Replace(string key, T value) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.ReplaceAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token) => throw null; - public void ResetInfoStats() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ResetInfoStatsAsync(System.Threading.CancellationToken token) => throw null; - public void RewriteAppendOnlyFileAsync() => throw null; - public void SaveConfig() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SaveConfigAsync(System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IEnumerable> ScanAllHashEntries(string hashId, string pattern = default(string), int pageSize = default(int)) => throw null; - System.Collections.Generic.IAsyncEnumerable> ServiceStack.Redis.IRedisClientAsync.ScanAllHashEntriesAsync(string hashId, string pattern, int pageSize, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IEnumerable ScanAllKeys(string pattern = default(string), int pageSize = default(int)) => throw null; - System.Collections.Generic.IAsyncEnumerable ServiceStack.Redis.IRedisClientAsync.ScanAllKeysAsync(string pattern, int pageSize, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IEnumerable ScanAllSetItems(string setId, string pattern = default(string), int pageSize = default(int)) => throw null; - System.Collections.Generic.IAsyncEnumerable ServiceStack.Redis.IRedisClientAsync.ScanAllSetItemsAsync(string setId, string pattern, int pageSize, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IEnumerable> ScanAllSortedSetItems(string setId, string pattern = default(string), int pageSize = default(int)) => throw null; - System.Collections.Generic.IAsyncEnumerable> ServiceStack.Redis.IRedisClientAsync.ScanAllSortedSetItemsAsync(string setId, string pattern, int pageSize, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List SearchKeys(string pattern) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.SearchKeysAsync(string pattern, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List SearchSortedSet(string setId, string start = default(string), string end = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.SearchSortedSetAsync(string setId, string start, string end, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - public System.Int64 SearchSortedSetCount(string setId, string start = default(string), string end = default(string)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SearchSortedSetCountAsync(string setId, string start, string end, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SelectAsync(System.Int64 db, System.Threading.CancellationToken token) => throw null; - public static System.Byte[] SerializeToUtf8Bytes(T value) => throw null; - public bool Set(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Set(string key, T value, System.DateTime expiresAt) => throw null; - public bool Set(string key, T value) => throw null; - public void SetAll(System.Collections.Generic.IDictionary values) => throw null; - public void SetAll(System.Collections.Generic.IEnumerable keys, System.Collections.Generic.IEnumerable values) => throw null; - public void SetAll(System.Collections.Generic.Dictionary map) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetAllAsync(System.Collections.Generic.IEnumerable keys, System.Collections.Generic.IEnumerable values, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetAllAsync(System.Collections.Generic.IDictionary map, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token) => throw null; - public void SetClient(string name) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetClientAsync(string name, System.Threading.CancellationToken token) => throw null; - public void SetConfig(string configItem, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetConfigAsync(string configItem, string value, System.Threading.CancellationToken token) => throw null; - public bool SetContainsItem(string setId, string item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetContainsItemAsync(string setId, string item, System.Threading.CancellationToken token) => throw null; - public bool SetEntryInHash(string hashId, string key, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetEntryInHashAsync(string hashId, string key, string value, System.Threading.CancellationToken token) => throw null; - public bool SetEntryInHashIfNotExists(string hashId, string key, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetEntryInHashIfNotExistsAsync(string hashId, string key, string value, System.Threading.CancellationToken token) => throw null; - public void SetItemInList(string listId, int listIndex, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetItemInListAsync(string listId, int listIndex, string value, System.Threading.CancellationToken token) => throw null; - public void SetRangeInHash(string hashId, System.Collections.Generic.IEnumerable> keyValuePairs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetRangeInHashAsync(string hashId, System.Collections.Generic.IEnumerable> keyValuePairs, System.Threading.CancellationToken token) => throw null; - public void SetValue(string key, string value, System.TimeSpan expireIn) => throw null; - public void SetValue(string key, string value) => throw null; - public bool SetValue(System.Byte[] key, System.Byte[] value, System.TimeSpan expireIn) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetValueAsync(string key, string value, System.TimeSpan expireIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetValueAsync(string key, string value, System.Threading.CancellationToken token) => throw null; - public bool SetValueIfExists(string key, string value, System.TimeSpan expireIn) => throw null; - public bool SetValueIfExists(string key, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetValueIfExistsAsync(string key, string value, System.TimeSpan? expireIn, System.Threading.CancellationToken token) => throw null; - public bool SetValueIfNotExists(string key, string value, System.TimeSpan expireIn) => throw null; - public bool SetValueIfNotExists(string key, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetValueIfNotExistsAsync(string key, string value, System.TimeSpan? expireIn, System.Threading.CancellationToken token) => throw null; - public void SetValues(System.Collections.Generic.Dictionary map) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SetValuesAsync(System.Collections.Generic.IDictionary map, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Model.IHasNamed Sets { get => throw null; set => throw null; } - ServiceStack.Model.IHasNamed ServiceStack.Redis.IRedisClientAsync.Sets { get => throw null; } - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ShutdownAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.ShutdownNoSaveAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SlowlogResetAsync(System.Threading.CancellationToken token) => throw null; - public bool SortedSetContainsItem(string setId, string value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.SortedSetContainsItemAsync(string setId, string value, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Model.IHasNamed SortedSets { get => throw null; set => throw null; } - ServiceStack.Model.IHasNamed ServiceStack.Redis.IRedisClientAsync.SortedSets { get => throw null; } - public T Store(T entity) => throw null; - public void StoreAll(System.Collections.Generic.IEnumerable entities) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.StoreAllAsync(System.Collections.Generic.IEnumerable entities, System.Threading.CancellationToken token) => throw null; - public void StoreAsHash(T entity) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreAsHashAsync(T entity, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.StoreAsync(T entity, System.Threading.CancellationToken token) => throw null; - public void StoreDifferencesFromSet(string intoSetId, string fromSetId, params string[] withSetIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreDifferencesFromSetAsync(string intoSetId, string fromSetId, string[] withSetIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreDifferencesFromSetAsync(string intoSetId, string fromSetId, params string[] withSetIds) => throw null; - public void StoreIntersectFromSets(string intoSetId, params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreIntersectFromSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreIntersectFromSetsAsync(string intoSetId, params string[] setIds) => throw null; - public System.Int64 StoreIntersectFromSortedSets(string intoSetId, string[] setIds, string[] args) => throw null; - public System.Int64 StoreIntersectFromSortedSets(string intoSetId, params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreIntersectFromSortedSetsAsync(string intoSetId, string[] setIds, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreIntersectFromSortedSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreIntersectFromSortedSetsAsync(string intoSetId, params string[] setIds) => throw null; - public object StoreObject(object entity) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreObjectAsync(object entity, System.Threading.CancellationToken token) => throw null; - public void StoreUnionFromSets(string intoSetId, params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreUnionFromSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreUnionFromSetsAsync(string intoSetId, params string[] setIds) => throw null; - public System.Int64 StoreUnionFromSortedSets(string intoSetId, string[] setIds, string[] args) => throw null; - public System.Int64 StoreUnionFromSortedSets(string intoSetId, params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreUnionFromSortedSetsAsync(string intoSetId, string[] setIds, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreUnionFromSortedSetsAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.StoreUnionFromSortedSetsAsync(string intoSetId, params string[] setIds) => throw null; - public void TrimList(string listId, int keepStartingFrom, int keepEndingAt) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.TrimListAsync(string listId, int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.TypeAsync(string key, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.UnWatchAsync(System.Threading.CancellationToken token) => throw null; - public string UrnKey(object id) => throw null; - public string UrnKey(T value) => throw null; - public string UrnKey(System.Type type, object id) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.WatchAsync(string[] keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.WatchAsync(params string[] keys) => throw null; - public System.Collections.Generic.Dictionary WhichLuaScriptsExists(params string[] sha1Refs) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.WhichLuaScriptsExistsAsync(string[] sha1Refs, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisClientAsync.WhichLuaScriptsExistsAsync(params string[] sha1Refs) => throw null; - public void WriteAll(System.Collections.Generic.IEnumerable entities) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientAsync.WriteAllAsync(System.Collections.Generic.IEnumerable entities, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisClientExtensions` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RedisClientExtensions - { - public static string GetHostString(this ServiceStack.Redis.RedisEndpoint config) => throw null; - public static string GetHostString(this ServiceStack.Redis.IRedisClient redis) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisClientManagerCacheClient` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisClientManagerCacheClient : System.IDisposable, System.IAsyncDisposable, ServiceStack.Caching.IRemoveByPatternAsync, ServiceStack.Caching.IRemoveByPattern, ServiceStack.Caching.ICacheClientExtended, ServiceStack.Caching.ICacheClientAsync, ServiceStack.Caching.ICacheClient - { - public bool Add(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Add(string key, T value, System.DateTime expiresAt) => throw null; - public bool Add(string key, T value) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.AddAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token) => throw null; - public System.Int64 Decrement(string key, System.UInt32 amount) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token) => throw null; - public void Dispose() => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - public void FlushAll() => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.FlushAllAsync(System.Threading.CancellationToken token) => throw null; - public T Get(string key) => throw null; - public System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys) => throw null; - System.Threading.Tasks.Task> ServiceStack.Caching.ICacheClientAsync.GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.GetAsync(string key, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Caching.ICacheClient GetClient() => throw null; - public System.Collections.Generic.IEnumerable GetKeysByPattern(string pattern) => throw null; - System.Collections.Generic.IAsyncEnumerable ServiceStack.Caching.ICacheClientAsync.GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token) => throw null; - public System.TimeSpan? GetTimeToLive(string key) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.GetTimeToLiveAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Int64 Increment(string key, System.UInt32 amount) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token) => throw null; - public bool ReadOnly { get => throw null; set => throw null; } - public RedisClientManagerCacheClient(ServiceStack.Redis.IRedisClientsManager redisManager) => throw null; - public bool Remove(string key) => throw null; - public void RemoveAll(System.Collections.Generic.IEnumerable keys) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.RemoveAsync(string key, System.Threading.CancellationToken token) => throw null; - public void RemoveByPattern(string pattern) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.IRemoveByPatternAsync.RemoveByPatternAsync(string pattern, System.Threading.CancellationToken token) => throw null; - public void RemoveByRegex(string pattern) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.IRemoveByPatternAsync.RemoveByRegexAsync(string regex, System.Threading.CancellationToken token) => throw null; - public void RemoveExpiredEntries() => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.RemoveExpiredEntriesAsync(System.Threading.CancellationToken token) => throw null; - public bool Replace(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Replace(string key, T value, System.DateTime expiresAt) => throw null; - public bool Replace(string key, T value) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.ReplaceAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token) => throw null; - public bool Set(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Set(string key, T value, System.DateTime expiresAt) => throw null; - public bool Set(string key, T value) => throw null; - public void SetAll(System.Collections.Generic.IDictionary values) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Caching.ICacheClientAsync.SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisClientManagerConfig` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisClientManagerConfig - { - public bool AutoStart { get => throw null; set => throw null; } - public System.Int64? DefaultDb { get => throw null; set => throw null; } - public int MaxReadPoolSize { get => throw null; set => throw null; } - public int MaxWritePoolSize { get => throw null; set => throw null; } - public RedisClientManagerConfig() => throw null; - } - - // Generated from `ServiceStack.Redis.RedisClientsManagerExtensions` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RedisClientsManagerExtensions - { - public static ServiceStack.Redis.IRedisPubSubServer CreatePubSubServer(this ServiceStack.Redis.IRedisClientsManager redisManager, string channel, System.Action onMessage = default(System.Action), System.Action onError = default(System.Action), System.Action onInit = default(System.Action), System.Action onStart = default(System.Action), System.Action onStop = default(System.Action)) => throw null; - public static void Exec(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Action lambda) => throw null; - public static string Exec(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func lambda) => throw null; - public static int Exec(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func lambda) => throw null; - public static double Exec(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func lambda) => throw null; - public static bool Exec(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func lambda) => throw null; - public static System.Int64 Exec(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func lambda) => throw null; - public static void ExecAs(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Action> lambda) => throw null; - public static T ExecAs(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func, T> lambda) => throw null; - public static System.Collections.Generic.List ExecAs(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func, System.Collections.Generic.List> lambda) => throw null; - public static System.Collections.Generic.IList ExecAs(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func, System.Collections.Generic.IList> lambda) => throw null; - public static System.Threading.Tasks.ValueTask ExecAsAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func, System.Threading.Tasks.ValueTask> lambda) => throw null; - public static System.Threading.Tasks.ValueTask> ExecAsAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func, System.Threading.Tasks.ValueTask>> lambda) => throw null; - public static System.Threading.Tasks.ValueTask> ExecAsAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func, System.Threading.Tasks.ValueTask>> lambda) => throw null; - public static System.Threading.Tasks.ValueTask ExecAsAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func, System.Threading.Tasks.ValueTask> lambda) => throw null; - public static System.Threading.Tasks.ValueTask ExecAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func> lambda) => throw null; - public static System.Threading.Tasks.ValueTask ExecAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Func lambda) => throw null; - public static void ExecTrans(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Action lambda) => throw null; - public static System.Threading.Tasks.ValueTask GetCacheClientAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask GetClientAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask GetReadOnlyCacheClientAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.ValueTask GetReadOnlyClientAsync(this ServiceStack.Redis.IRedisClientsManager redisManager, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisCommandQueue` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisCommandQueue : ServiceStack.Redis.RedisQueueCompletableOperation - { - public void QueueCommand(System.Func command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func command) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func command) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func command) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func command) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func command) => throw null; - public void QueueCommand(System.Func> command, System.Action> onSuccessCallback) => throw null; - public void QueueCommand(System.Func> command) => throw null; - public void QueueCommand(System.Func> command, System.Action> onSuccessCallback) => throw null; - public void QueueCommand(System.Func> command) => throw null; - public void QueueCommand(System.Func> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func> command, System.Action> onSuccessCallback) => throw null; - public void QueueCommand(System.Func> command) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func command) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func command) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func command) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func command) => throw null; - public void QueueCommand(System.Action command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Action command) => throw null; - public virtual void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public virtual void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public virtual void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public virtual void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public virtual void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public virtual void QueueCommand(System.Func> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - public virtual void QueueCommand(System.Func> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - public virtual void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public virtual void QueueCommand(System.Func command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public virtual void QueueCommand(System.Action command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - protected ServiceStack.Redis.RedisClient RedisClient; - public RedisCommandQueue(ServiceStack.Redis.RedisClient redisClient) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisConfig` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisConfig - { - public static bool AssertAccessOnlyOnSameThread; - public static int? AssumeServerVersion; - public static int BackOffMultiplier; - public static int BufferLength { get => throw null; } - public static int BufferPoolMaxSize; - public static System.Net.Security.LocalCertificateSelectionCallback CertificateSelectionCallback { get => throw null; set => throw null; } - public static System.Net.Security.RemoteCertificateValidationCallback CertificateValidationCallback { get => throw null; set => throw null; } - public static System.Func ClientFactory; - public static System.TimeSpan DeactivatedClientsExpiry; - public static int DefaultConnectTimeout; - public const System.Int64 DefaultDb = default; - public const string DefaultHost = default; - public static int DefaultIdleTimeOutSecs; - public static int? DefaultMaxPoolSize; - public static int DefaultPoolSizeMultiplier; - public const int DefaultPort = default; - public const int DefaultPortSentinel = default; - public const int DefaultPortSsl = default; - public static int DefaultReceiveTimeout; - public static int DefaultRetryTimeout; - public static int DefaultSendTimeout; - public static bool DisableVerboseLogging { get => throw null; set => throw null; } - public static bool EnableVerboseLogging; - public static int HostLookupTimeoutMs; - public RedisConfig() => throw null; - public static void Reset() => throw null; - public static bool RetryReconnectOnFailedMasters; - public static bool VerifyMasterConnections; - } - - // Generated from `ServiceStack.Redis.RedisDataExtensions` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RedisDataExtensions - { - public static string GetResult(this ServiceStack.Redis.RedisText from) => throw null; - public static T GetResult(this ServiceStack.Redis.RedisText from) => throw null; - public static System.Collections.Generic.List GetResults(this ServiceStack.Redis.RedisText from) => throw null; - public static System.Collections.Generic.List GetResults(this ServiceStack.Redis.RedisText from) => throw null; - public static double ToDouble(this ServiceStack.Redis.RedisData data) => throw null; - public static System.Int64 ToInt64(this ServiceStack.Redis.RedisData data) => throw null; - public static ServiceStack.Redis.RedisText ToRedisText(this ServiceStack.Redis.RedisData data) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisDataInfoExtensions` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RedisDataInfoExtensions - { - public static string ToJsonInfo(this ServiceStack.Redis.RedisText redisText) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisEndpoint` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisEndpoint : ServiceStack.IO.IEndpoint - { - public string Client { get => throw null; set => throw null; } - public int ConnectTimeout { get => throw null; set => throw null; } - public System.Int64 Db { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.Redis.RedisEndpoint other) => throw null; - public override int GetHashCode() => throw null; - public string Host { get => throw null; set => throw null; } - public int IdleTimeOutSecs { get => throw null; set => throw null; } - public string NamespacePrefix { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public int Port { get => throw null; set => throw null; } - public int ReceiveTimeout { get => throw null; set => throw null; } - public RedisEndpoint(string host, int port, string password = default(string), System.Int64 db = default(System.Int64)) => throw null; - public RedisEndpoint() => throw null; - public bool RequiresAuth { get => throw null; } - public int RetryTimeout { get => throw null; set => throw null; } - public int SendTimeout { get => throw null; set => throw null; } - public bool Ssl { get => throw null; set => throw null; } - public System.Security.Authentication.SslProtocols? SslProtocols { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Redis.RedisException` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisException : System.Exception - { - public RedisException(string message, System.Exception innerException) => throw null; - public RedisException(string message) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisExtensions` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RedisExtensions - { - public static System.Collections.Generic.List ToRedisEndPoints(this System.Collections.Generic.IEnumerable hosts) => throw null; - public static ServiceStack.Redis.RedisEndpoint ToRedisEndpoint(this string connectionString, int? defaultPort = default(int?)) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisLock` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisLock : System.IDisposable, System.IAsyncDisposable - { - public void Dispose() => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - public RedisLock(ServiceStack.Redis.IRedisClient redisClient, string key, System.TimeSpan? timeOut) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisManagerPool` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisManagerPool : System.IDisposable, System.IAsyncDisposable, ServiceStack.Redis.IRedisFailover, ServiceStack.Redis.IRedisClientsManagerAsync, ServiceStack.Redis.IRedisClientsManager, ServiceStack.Redis.IRedisClientCacheManager, ServiceStack.Redis.IHasRedisResolver, ServiceStack.Redis.IHandleClientDispose - { - public bool AssertAccessOnlyOnSameThread { get => throw null; set => throw null; } - public System.Func ClientFactory { get => throw null; set => throw null; } - public System.Action ConnectionFilter { get => throw null; set => throw null; } - public void Dispose() => throw null; - protected void Dispose(ServiceStack.Redis.RedisClient redisClient) => throw null; - protected virtual void Dispose(bool disposing) => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - public void DisposeClient(ServiceStack.Redis.RedisNativeClient client) => throw null; - public void DisposeWriteClient(ServiceStack.Redis.RedisNativeClient client) => throw null; - public void FailoverTo(params string[] readWriteHosts) => throw null; - public void FailoverTo(System.Collections.Generic.IEnumerable readWriteHosts, System.Collections.Generic.IEnumerable readOnlyHosts) => throw null; - public ServiceStack.Caching.ICacheClient GetCacheClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetCacheClientAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.IRedisClient GetClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetClientAsync(System.Threading.CancellationToken token) => throw null; - public int[] GetClientPoolActiveStates() => throw null; - public ServiceStack.Caching.ICacheClient GetReadOnlyCacheClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetReadOnlyCacheClientAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.IRedisClient GetReadOnlyClient() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisClientsManagerAsync.GetReadOnlyClientAsync(System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.Dictionary GetStats() => throw null; - public int MaxPoolSize { get => throw null; set => throw null; } - public System.Collections.Generic.List> OnFailover { get => throw null; set => throw null; } - public int RecheckPoolAfterMs; - protected int RedisClientCounter; - public RedisManagerPool(string host, ServiceStack.Redis.RedisPoolConfig config) => throw null; - public RedisManagerPool(string host) => throw null; - public RedisManagerPool(System.Collections.Generic.IEnumerable hosts, ServiceStack.Redis.RedisPoolConfig config) => throw null; - public RedisManagerPool(System.Collections.Generic.IEnumerable hosts) => throw null; - public RedisManagerPool() => throw null; - public ServiceStack.Redis.IRedisResolver RedisResolver { get => throw null; set => throw null; } - protected int poolIndex; - // ERR: Stub generator didn't handle member: ~RedisManagerPool - } - - // Generated from `ServiceStack.Redis.RedisNativeClient` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisNativeClient : System.IDisposable, System.IAsyncDisposable, ServiceStack.Redis.IRedisNativeClientAsync, ServiceStack.Redis.IRedisNativeClient - { - public System.Int64 Append(string key, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.AppendAsync(string key, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public int AssertServerVersionNumber() => throw null; - public System.Byte[][] BLPop(string[] listIds, int timeOutSecs) => throw null; - public System.Byte[][] BLPop(string listId, int timeOutSecs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BLPopAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BLPopAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] BLPopValue(string[] listIds, int timeOutSecs) => throw null; - public System.Byte[] BLPopValue(string listId, int timeOutSecs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BLPopValueAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BLPopValueAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] BRPop(string[] listIds, int timeOutSecs) => throw null; - public System.Byte[][] BRPop(string listId, int timeOutSecs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BRPopAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BRPopAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token) => throw null; - public System.Byte[] BRPopLPush(string fromListId, string toListId, int timeOutSecs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BRPopLPushAsync(string fromListId, string toListId, int timeOutSecs, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] BRPopValue(string[] listIds, int timeOutSecs) => throw null; - public System.Byte[] BRPopValue(string listId, int timeOutSecs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BRPopValueAsync(string[] listIds, int timeOutSecs, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BRPopValueAsync(string listId, int timeOutSecs, System.Threading.CancellationToken token) => throw null; - public void BgRewriteAof() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BgRewriteAofAsync(System.Threading.CancellationToken token) => throw null; - public void BgSave() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BgSaveAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 BitCount(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.BitCountAsync(string key, System.Threading.CancellationToken token) => throw null; - protected System.IO.BufferedStream Bstream; - public string CalculateSha1(string luaBody) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.CalculateSha1Async(string luaBody, System.Threading.CancellationToken token) => throw null; - public void ChangeDb(System.Int64 db) => throw null; - public string Client { get => throw null; set => throw null; } - public string ClientGetName() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ClientGetNameAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 ClientId { get => throw null; } - public void ClientKill(string clientAddr) => throw null; - public System.Int64 ClientKill(string addr = default(string), string id = default(string), string type = default(string), string skipMe = default(string)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ClientKillAsync(string addr, string id, string type, string skipMe, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ClientKillAsync(string clientAddr, System.Threading.CancellationToken token) => throw null; - public System.Byte[] ClientList() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ClientListAsync(System.Threading.CancellationToken token) => throw null; - public void ClientPause(int timeOutMs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ClientPauseAsync(int timeOutMs, System.Threading.CancellationToken token) => throw null; - public void ClientSetName(string name) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ClientSetNameAsync(string name, System.Threading.CancellationToken token) => throw null; - protected void CmdLog(System.Byte[][] args) => throw null; - public System.Byte[][] ConfigGet(string pattern) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ConfigGetAsync(string pattern, System.Threading.CancellationToken token) => throw null; - public void ConfigResetStat() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ConfigResetStatAsync(System.Threading.CancellationToken token) => throw null; - public void ConfigRewrite() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ConfigRewriteAsync(System.Threading.CancellationToken token) => throw null; - public void ConfigSet(string item, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ConfigSetAsync(string item, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public int ConnectTimeout { get => throw null; set => throw null; } - public System.Action ConnectionFilter { get => throw null; set => throw null; } - protected System.Byte[][] ConvertToBytes(string[] keys) => throw null; - public ServiceStack.Redis.Pipeline.RedisPipelineCommand CreatePipelineCommand() => throw null; - public virtual ServiceStack.Redis.IRedisSubscription CreateSubscription() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.CreateSubscriptionAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 Db { get => throw null; set => throw null; } - public System.Int64 DbSize { get => throw null; } - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.DbSizeAsync(System.Threading.CancellationToken token) => throw null; - public System.DateTime? DeactivatedAt { get => throw null; set => throw null; } - public void DebugSegfault() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.DebugSegfaultAsync(System.Threading.CancellationToken token) => throw null; - public void DebugSleep(double durationSecs) => throw null; - public System.Int64 Decr(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.DecrAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Int64 DecrBy(string key, int count) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.DecrByAsync(string key, System.Int64 count, System.Threading.CancellationToken token) => throw null; - public System.Int64 Del(string key) => throw null; - public System.Int64 Del(params string[] keys) => throw null; - public System.Int64 Del(System.Byte[] key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.DelAsync(string[] keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.DelAsync(string key, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.DelAsync(params string[] keys) => throw null; - public virtual void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - public static void DisposeTimers() => throw null; - public System.Byte[] Dump(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.DumpAsync(string key, System.Threading.CancellationToken token) => throw null; - public string Echo(string text) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EchoAsync(string text, System.Threading.CancellationToken token) => throw null; - public static string ErrorConnect; - public System.Byte[][] Eval(string luaBody, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalAsync(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalAsync(string luaBody, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.RedisData EvalCommand(string luaBody, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalCommandAsync(string luaBody, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalCommandAsync(string luaBody, int numberKeysInArgs, System.Byte[][] keys, System.Threading.CancellationToken token) => throw null; - public System.Int64 EvalInt(string luaBody, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalIntAsync(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalIntAsync(string luaBody, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] EvalSha(string sha1, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalShaAsync(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalShaAsync(string sha1, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.RedisData EvalShaCommand(string sha1, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalShaCommandAsync(string sha1, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalShaCommandAsync(string sha1, int numberKeysInArgs, System.Byte[][] keys, System.Threading.CancellationToken token) => throw null; - public System.Int64 EvalShaInt(string sha1, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalShaIntAsync(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalShaIntAsync(string sha1, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token) => throw null; - public string EvalShaStr(string sha1, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalShaStrAsync(string sha1, int numberOfKeys, params System.Byte[][] keysAndArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalShaStrAsync(string sha1, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token) => throw null; - public string EvalStr(string luaBody, int numberKeysInArgs, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalStrAsync(string luaBody, int numberOfKeys, params System.Byte[][] keysAndArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.EvalStrAsync(string luaBody, int numberOfKeys, System.Byte[][] keysAndArgs, System.Threading.CancellationToken token) => throw null; - public System.Int64 Exists(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ExistsAsync(string key, System.Threading.CancellationToken token) => throw null; - protected void ExpectSuccess() => throw null; - protected System.Int64 ExpectSuccessFn() => throw null; - public bool Expire(string key, int seconds) => throw null; - public bool Expire(System.Byte[] key, int seconds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ExpireAsync(string key, int seconds, System.Threading.CancellationToken token) => throw null; - public bool ExpireAt(string key, System.Int64 unixTime) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ExpireAtAsync(string key, System.Int64 unixTime, System.Threading.CancellationToken token) => throw null; - public void FlushAll() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.FlushAllAsync(System.Threading.CancellationToken token) => throw null; - public void FlushDb() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.FlushDbAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 GeoAdd(string key, params ServiceStack.Redis.RedisGeo[] geoPoints) => throw null; - public System.Int64 GeoAdd(string key, double longitude, double latitude, string member) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GeoAddAsync(string key, params ServiceStack.Redis.RedisGeo[] geoPoints) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GeoAddAsync(string key, double longitude, double latitude, string member, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GeoAddAsync(string key, ServiceStack.Redis.RedisGeo[] geoPoints, System.Threading.CancellationToken token) => throw null; - public double GeoDist(string key, string fromMember, string toMember, string unit = default(string)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GeoDistAsync(string key, string fromMember, string toMember, string unit, System.Threading.CancellationToken token) => throw null; - public string[] GeoHash(string key, params string[] members) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GeoHashAsync(string key, string[] members, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GeoHashAsync(string key, params string[] members) => throw null; - public System.Collections.Generic.List GeoPos(string key, params string[] members) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisNativeClientAsync.GeoPosAsync(string key, string[] members, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisNativeClientAsync.GeoPosAsync(string key, params string[] members) => throw null; - public System.Collections.Generic.List GeoRadius(string key, double longitude, double latitude, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?)) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisNativeClientAsync.GeoRadiusAsync(string key, double longitude, double latitude, double radius, string unit, bool withCoords, bool withDist, bool withHash, int? count, bool? asc, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GeoRadiusByMember(string key, string member, double radius, string unit, bool withCoords = default(bool), bool withDist = default(bool), bool withHash = default(bool), int? count = default(int?), bool? asc = default(bool?)) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisNativeClientAsync.GeoRadiusByMemberAsync(string key, string member, double radius, string unit, bool withCoords, bool withDist, bool withHash, int? count, bool? asc, System.Threading.CancellationToken token) => throw null; - public System.Byte[] Get(string key) => throw null; - public System.Byte[] Get(System.Byte[] key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GetAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetBit(string key, int offset) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GetBitAsync(string key, int offset, System.Threading.CancellationToken token) => throw null; - public System.Byte[] GetBytes(string key) => throw null; - public ServiceStack.Redis.RedisKeyType GetEntryType(string key) => throw null; - public System.Byte[] GetRange(string key, int fromIndex, int toIndex) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GetRangeAsync(string key, int fromIndex, int toIndex, System.Threading.CancellationToken token) => throw null; - public System.Byte[] GetSet(string key, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.GetSetAsync(string key, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 HDel(string hashId, System.Byte[][] keys) => throw null; - public System.Int64 HDel(string hashId, System.Byte[] key) => throw null; - public System.Int64 HDel(System.Byte[] hashId, System.Byte[] key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HDelAsync(string hashId, System.Byte[] key, System.Threading.CancellationToken token) => throw null; - public System.Int64 HExists(string hashId, System.Byte[] key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HExistsAsync(string hashId, System.Byte[] key, System.Threading.CancellationToken token) => throw null; - public System.Byte[] HGet(string hashId, System.Byte[] key) => throw null; - public System.Byte[] HGet(System.Byte[] hashId, System.Byte[] key) => throw null; - public System.Byte[][] HGetAll(string hashId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HGetAllAsync(string hashId, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HGetAsync(string hashId, System.Byte[] key, System.Threading.CancellationToken token) => throw null; - public System.Int64 HIncrby(string hashId, System.Byte[] key, int incrementBy) => throw null; - public System.Int64 HIncrby(string hashId, System.Byte[] key, System.Int64 incrementBy) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HIncrbyAsync(string hashId, System.Byte[] key, int incrementBy, System.Threading.CancellationToken token) => throw null; - public double HIncrbyFloat(string hashId, System.Byte[] key, double incrementBy) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HIncrbyFloatAsync(string hashId, System.Byte[] key, double incrementBy, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] HKeys(string hashId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HKeysAsync(string hashId, System.Threading.CancellationToken token) => throw null; - public System.Int64 HLen(string hashId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HLenAsync(string hashId, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] HMGet(string hashId, params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HMGetAsync(string hashId, params System.Byte[][] keysAndArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HMGetAsync(string hashId, System.Byte[][] keys, System.Threading.CancellationToken token) => throw null; - public void HMSet(string hashId, System.Byte[][] keys, System.Byte[][] values) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HMSetAsync(string hashId, System.Byte[][] keys, System.Byte[][] values, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.ScanResult HScan(string hashId, System.UInt64 cursor, int count = default(int), string match = default(string)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HScanAsync(string hashId, System.UInt64 cursor, int count, string match, System.Threading.CancellationToken token) => throw null; - public System.Int64 HSet(string hashId, System.Byte[] key, System.Byte[] value) => throw null; - public System.Int64 HSet(System.Byte[] hashId, System.Byte[] key, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HSetAsync(string hashId, System.Byte[] key, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 HSetNX(string hashId, System.Byte[] key, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HSetNXAsync(string hashId, System.Byte[] key, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] HVals(string hashId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.HValsAsync(string hashId, System.Threading.CancellationToken token) => throw null; - public bool HadExceptions { get => throw null; } - public bool HasConnected { get => throw null; } - public string Host { get => throw null; set => throw null; } - public System.Int64 Id { get => throw null; set => throw null; } - public int IdleTimeOutSecs { get => throw null; set => throw null; } - public System.Int64 Incr(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.IncrAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Int64 IncrBy(string key, int count) => throw null; - public System.Int64 IncrBy(string key, System.Int64 count) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.IncrByAsync(string key, System.Int64 count, System.Threading.CancellationToken token) => throw null; - public double IncrByFloat(string key, double incrBy) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.IncrByFloatAsync(string key, double incrBy, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.Dictionary Info { get => throw null; } - System.Threading.Tasks.ValueTask> ServiceStack.Redis.IRedisNativeClientAsync.InfoAsync(System.Threading.CancellationToken token) => throw null; - public bool IsManagedClient { get => throw null; } - public bool IsSocketConnected() => throw null; - public System.Byte[][] Keys(string pattern) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.KeysAsync(string pattern, System.Threading.CancellationToken token) => throw null; - public System.Byte[] LIndex(string listId, int listIndex) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LIndexAsync(string listId, int listIndex, System.Threading.CancellationToken token) => throw null; - public void LInsert(string listId, bool insertBefore, System.Byte[] pivot, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LInsertAsync(string listId, bool insertBefore, System.Byte[] pivot, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 LLen(string listId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LLenAsync(string listId, System.Threading.CancellationToken token) => throw null; - public System.Byte[] LPop(string listId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LPopAsync(string listId, System.Threading.CancellationToken token) => throw null; - public System.Int64 LPush(string listId, System.Byte[][] values) => throw null; - public System.Int64 LPush(string listId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LPushAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 LPushX(string listId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LPushXAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] LRange(string listId, int startingFrom, int endingAt) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LRangeAsync(string listId, int startingFrom, int endingAt, System.Threading.CancellationToken token) => throw null; - public System.Int64 LRem(string listId, int removeNoOfMatches, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LRemAsync(string listId, int removeNoOfMatches, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public void LSet(string listId, int listIndex, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LSetAsync(string listId, int listIndex, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public void LTrim(string listId, int keepStartingFrom, int keepEndingAt) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LTrimAsync(string listId, int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token) => throw null; - public System.DateTime LastSave { get => throw null; } - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.LastSaveAsync(System.Threading.CancellationToken token) => throw null; - protected void Log(string fmt, params object[] args) => throw null; - public System.Byte[][] MGet(params string[] keys) => throw null; - public System.Byte[][] MGet(params System.Byte[][] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MGetAsync(string[] keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MGetAsync(params string[] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MGetAsync(params System.Byte[][] keysAndArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MGetAsync(System.Byte[][] keys, System.Threading.CancellationToken token) => throw null; - public void MSet(string[] keys, System.Byte[][] values) => throw null; - public void MSet(System.Byte[][] keys, System.Byte[][] values) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MSetAsync(string[] keys, System.Byte[][] values, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MSetAsync(System.Byte[][] keys, System.Byte[][] values, System.Threading.CancellationToken token) => throw null; - public bool MSetNx(string[] keys, System.Byte[][] values) => throw null; - public bool MSetNx(System.Byte[][] keys, System.Byte[][] values) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MSetNxAsync(string[] keys, System.Byte[][] values, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MSetNxAsync(System.Byte[][] keys, System.Byte[][] values, System.Threading.CancellationToken token) => throw null; - protected System.Byte[][] MergeAndConvertToBytes(string[] keys, string[] args) => throw null; - public void Migrate(string host, int port, string key, int destinationDb, System.Int64 timeoutMs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MigrateAsync(string host, int port, string key, int destinationDb, System.Int64 timeoutMs, System.Threading.CancellationToken token) => throw null; - public bool Move(string key, int db) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.MoveAsync(string key, int db, System.Threading.CancellationToken token) => throw null; - public string NamespacePrefix { get => throw null; set => throw null; } - public System.Int64 ObjectIdleTime(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ObjectIdleTimeAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Action OnBeforeFlush { get => throw null; set => throw null; } - public virtual void OnConnected() => throw null; - public bool PExpire(string key, System.Int64 ttlMs) => throw null; - public bool PExpire(System.Byte[] key, System.Int64 ttlMs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PExpireAsync(string key, System.Int64 ttlMs, System.Threading.CancellationToken token) => throw null; - public bool PExpireAt(string key, System.Int64 unixTimeMs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PExpireAtAsync(string key, System.Int64 unixTimeMs, System.Threading.CancellationToken token) => throw null; - public void PSetEx(string key, System.Int64 expireInMs, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PSetExAsync(string key, System.Int64 expireInMs, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] PSubscribe(params string[] toChannelsMatchingPatterns) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PSubscribeAsync(string[] toChannelsMatchingPatterns, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PSubscribeAsync(params string[] toChannelsMatchingPatterns) => throw null; - public System.Int64 PTtl(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PTtlAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] PUnSubscribe(params string[] fromChannelsMatchingPatterns) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PUnSubscribeAsync(string[] fromChannelsMatchingPatterns, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PUnSubscribeAsync(params string[] toChannelsMatchingPatterns) => throw null; - public static double ParseDouble(System.Byte[] doubleBytes) => throw null; - public string Password { get => throw null; set => throw null; } - public bool Persist(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PersistAsync(string key, System.Threading.CancellationToken token) => throw null; - public bool PfAdd(string key, params System.Byte[][] elements) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PfAddAsync(string key, params System.Byte[][] elements) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PfAddAsync(string key, System.Byte[][] elements, System.Threading.CancellationToken token) => throw null; - public System.Int64 PfCount(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PfCountAsync(string key, System.Threading.CancellationToken token) => throw null; - public void PfMerge(string toKeyId, params string[] fromKeys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PfMergeAsync(string toKeyId, string[] fromKeys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PfMergeAsync(string toKeyId, params string[] fromKeys) => throw null; - public bool Ping() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PingAsync(System.Threading.CancellationToken token) => throw null; - public int Port { get => throw null; set => throw null; } - public System.Int64 Publish(string toChannel, System.Byte[] message) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.PublishAsync(string toChannel, System.Byte[] message, System.Threading.CancellationToken token) => throw null; - public void Quit() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.QuitAsync(System.Threading.CancellationToken token) => throw null; - public System.Byte[] RPop(string listId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RPopAsync(string listId, System.Threading.CancellationToken token) => throw null; - public System.Byte[] RPopLPush(string fromListId, string toListId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RPopLPushAsync(string fromListId, string toListId, System.Threading.CancellationToken token) => throw null; - public System.Int64 RPush(string listId, System.Byte[][] values) => throw null; - public System.Int64 RPush(string listId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RPushAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 RPushX(string listId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RPushXAsync(string listId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public string RandomKey() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RandomKeyAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.RedisData RawCommand(params object[] cmdWithArgs) => throw null; - public ServiceStack.Redis.RedisData RawCommand(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected System.Threading.Tasks.ValueTask RawCommandAsync(System.Threading.CancellationToken token, params object[] cmdWithArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RawCommandAsync(params object[] cmdWithArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RawCommandAsync(params System.Byte[][] cmdWithBinaryArgs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RawCommandAsync(object[] cmdWithArgs, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RawCommandAsync(System.Byte[][] cmdWithBinaryArgs, System.Threading.CancellationToken token) => throw null; - public double ReadDouble() => throw null; - protected string ReadLine() => throw null; - public System.Int64 ReadLong() => throw null; - public System.Byte[][] ReceiveMessages() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ReceiveMessagesAsync(System.Threading.CancellationToken token) => throw null; - public int ReceiveTimeout { get => throw null; set => throw null; } - public RedisNativeClient(string host, int port, string password = default(string), System.Int64 db = default(System.Int64)) => throw null; - public RedisNativeClient(string host, int port) => throw null; - public RedisNativeClient(string connectionString) => throw null; - public RedisNativeClient(ServiceStack.Redis.RedisEndpoint config) => throw null; - public RedisNativeClient() => throw null; - public void Rename(string oldKeyname, string newKeyname) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RenameAsync(string oldKeyName, string newKeyName, System.Threading.CancellationToken token) => throw null; - public bool RenameNx(string oldKeyname, string newKeyname) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RenameNxAsync(string oldKeyName, string newKeyName, System.Threading.CancellationToken token) => throw null; - public static int RequestsPerHour { get => throw null; } - public void ResetSendBuffer() => throw null; - public System.Byte[] Restore(string key, System.Int64 expireMs, System.Byte[] dumpValue) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RestoreAsync(string key, System.Int64 expireMs, System.Byte[] dumpValue, System.Threading.CancellationToken token) => throw null; - public int RetryCount { get => throw null; set => throw null; } - public int RetryTimeout { get => throw null; set => throw null; } - public ServiceStack.Redis.RedisText Role() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.RoleAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 SAdd(string setId, System.Byte[][] values) => throw null; - public System.Int64 SAdd(string setId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SAddAsync(string setId, System.Byte[][] values, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SAddAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 SCard(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SCardAsync(string setId, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] SDiff(string fromSetId, params string[] withSetIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SDiffAsync(string fromSetId, string[] withSetIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SDiffAsync(string fromSetId, params string[] withSetIds) => throw null; - public void SDiffStore(string intoSetId, string fromSetId, params string[] withSetIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SDiffStoreAsync(string intoSetId, string fromSetId, string[] withSetIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SDiffStoreAsync(string intoSetId, string fromSetId, params string[] withSetIds) => throw null; - public System.Byte[][] SInter(params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SInterAsync(string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SInterAsync(params string[] setIds) => throw null; - public void SInterStore(string intoSetId, params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SInterStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SInterStoreAsync(string intoSetId, params string[] setIds) => throw null; - public System.Int64 SIsMember(string setId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SIsMemberAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] SMembers(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SMembersAsync(string setId, System.Threading.CancellationToken token) => throw null; - public void SMove(string fromSetId, string toSetId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SMoveAsync(string fromSetId, string toSetId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] SPop(string setId, int count) => throw null; - public System.Byte[] SPop(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SPopAsync(string setId, int count, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SPopAsync(string setId, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] SRandMember(string setId, int count) => throw null; - public System.Byte[] SRandMember(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SRandMemberAsync(string setId, System.Threading.CancellationToken token) => throw null; - public System.Int64 SRem(string setId, System.Byte[][] values) => throw null; - public System.Int64 SRem(string setId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SRemAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.ScanResult SScan(string setId, System.UInt64 cursor, int count = default(int), string match = default(string)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SScanAsync(string setId, System.UInt64 cursor, int count, string match, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] SUnion(params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SUnionAsync(string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SUnionAsync(params string[] setIds) => throw null; - public void SUnionStore(string intoSetId, params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SUnionStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SUnionStoreAsync(string intoSetId, params string[] setIds) => throw null; - public void Save() => throw null; - public void SaveAsync() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SaveAsync(System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.ScanResult Scan(System.UInt64 cursor, int count = default(int), string match = default(string)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ScanAsync(System.UInt64 cursor, int count, string match, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ScriptExists(params System.Byte[][] sha1Refs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ScriptExistsAsync(params System.Byte[][] sha1Refs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ScriptExistsAsync(System.Byte[][] sha1Refs, System.Threading.CancellationToken token) => throw null; - public void ScriptFlush() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ScriptFlushAsync(System.Threading.CancellationToken token) => throw null; - public void ScriptKill() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ScriptKillAsync(System.Threading.CancellationToken token) => throw null; - public System.Byte[] ScriptLoad(string luaBody) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ScriptLoadAsync(string body, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SelectAsync(System.Int64 db, System.Threading.CancellationToken token) => throw null; - protected string SendExpectCode(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected ServiceStack.Redis.RedisData SendExpectComplexResponse(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected System.Threading.Tasks.ValueTask SendExpectComplexResponseAsync(System.Threading.CancellationToken token, params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected System.Byte[] SendExpectData(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected object[] SendExpectDeeplyNestedMultiData(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected double SendExpectDouble(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected System.Int64 SendExpectLong(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected System.Byte[][] SendExpectMultiData(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected string SendExpectString(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected System.Threading.Tasks.ValueTask SendExpectStringAsync(System.Threading.CancellationToken token, params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected System.Collections.Generic.List> SendExpectStringDictionaryList(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected void SendExpectSuccess(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected T SendReceive(System.Byte[][] cmdWithBinaryArgs, System.Func fn, System.Action> completePipelineFn = default(System.Action>), bool sendWithoutRead = default(bool)) => throw null; - public int SendTimeout { get => throw null; set => throw null; } - protected void SendUnmanagedExpectSuccess(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected void SendWithoutRead(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected System.Threading.Tasks.ValueTask SendWithoutReadAsync(System.Threading.CancellationToken token, params System.Byte[][] cmdWithBinaryArgs) => throw null; - public void SentinelFailover(string masterName) => throw null; - public System.Collections.Generic.List SentinelGetMasterAddrByName(string masterName) => throw null; - public System.Collections.Generic.Dictionary SentinelMaster(string masterName) => throw null; - public System.Collections.Generic.List> SentinelMasters() => throw null; - public System.Collections.Generic.List> SentinelSentinels(string masterName) => throw null; - public System.Collections.Generic.List> SentinelSlaves(string masterName) => throw null; - public string ServerVersion { get => throw null; } - public static int ServerVersionNumber { get => throw null; set => throw null; } - public void Set(string key, System.Byte[] value, int expirySeconds, System.Int64 expiryMs = default(System.Int64)) => throw null; - public void Set(string key, System.Byte[] value) => throw null; - public void Set(System.Byte[] key, System.Byte[] value, int expirySeconds, System.Int64 expiryMs = default(System.Int64)) => throw null; - public bool Set(string key, System.Byte[] value, bool exists, int expirySeconds = default(int), System.Int64 expiryMs = default(System.Int64)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SetAsync(string key, System.Byte[] value, bool exists, System.Int64 expirySeconds, System.Int64 expiryMilliseconds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SetAsync(string key, System.Byte[] value, System.Int64 expirySeconds, System.Int64 expiryMilliseconds, System.Threading.CancellationToken token) => throw null; - public System.Int64 SetBit(string key, int offset, int value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SetBitAsync(string key, int offset, int value, System.Threading.CancellationToken token) => throw null; - public void SetEx(string key, int expireInSeconds, System.Byte[] value) => throw null; - public void SetEx(System.Byte[] key, int expireInSeconds, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SetExAsync(string key, int expireInSeconds, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 SetNX(string key, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SetNXAsync(string key, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 SetRange(string key, int offset, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SetRangeAsync(string key, int offset, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public void Shutdown() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ShutdownAsync(bool noSave, System.Threading.CancellationToken token) => throw null; - public void ShutdownNoSave() => throw null; - public void SlaveOf(string hostname, int port) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SlaveOfAsync(string hostname, int port, System.Threading.CancellationToken token) => throw null; - public void SlaveOfNoOne() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SlaveOfNoOneAsync(System.Threading.CancellationToken token) => throw null; - public object[] Slowlog(int? top) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SlowlogGetAsync(int? top, System.Threading.CancellationToken token) => throw null; - public void SlowlogReset() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SlowlogResetAsync(System.Threading.CancellationToken token) => throw null; - public System.Byte[][] Sort(string listOrSetId, ServiceStack.Redis.SortOptions sortOptions) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SortAsync(string listOrSetId, ServiceStack.Redis.SortOptions sortOptions, System.Threading.CancellationToken token) => throw null; - public bool Ssl { get => throw null; set => throw null; } - public System.Security.Authentication.SslProtocols? SslProtocols { get => throw null; set => throw null; } - public System.Int64 StrLen(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.StrLenAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] Subscribe(params string[] toChannels) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SubscribeAsync(string[] toChannels, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.SubscribeAsync(params string[] toChannels) => throw null; - public System.Byte[][] Time() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.TimeAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 Ttl(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.TtlAsync(string key, System.Threading.CancellationToken token) => throw null; - public string Type(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.TypeAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] UnSubscribe(params string[] fromChannels) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.UnSubscribeAsync(string[] fromChannels, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.UnSubscribeAsync(params string[] toChannels) => throw null; - public void UnWatch() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.UnWatchAsync(System.Threading.CancellationToken token) => throw null; - public void Watch(params string[] keys) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.WatchAsync(string[] keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.WatchAsync(params string[] keys) => throw null; - public void WriteAllToSendBuffer(params System.Byte[][] cmdWithBinaryArgs) => throw null; - protected void WriteCommandToSendBuffer(params System.Byte[][] cmdWithBinaryArgs) => throw null; - public void WriteToSendBuffer(System.Byte[] cmdBytes) => throw null; - public System.Int64 ZAdd(string setId, double score, System.Byte[] value) => throw null; - public System.Int64 ZAdd(string setId, System.Int64 score, System.Byte[] value) => throw null; - public System.Int64 ZAdd(string setId, System.Collections.Generic.List> pairs) => throw null; - public System.Int64 ZAdd(string setId, System.Collections.Generic.List> pairs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZAddAsync(string setId, double score, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZAddAsync(string setId, System.Int64 score, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZCard(string setId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZCardAsync(string setId, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZCount(string setId, double min, double max) => throw null; - public System.Int64 ZCount(string setId, System.Int64 min, System.Int64 max) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZCountAsync(string setId, double min, double max, System.Threading.CancellationToken token) => throw null; - public double ZIncrBy(string setId, double incrBy, System.Byte[] value) => throw null; - public double ZIncrBy(string setId, System.Int64 incrBy, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZIncrByAsync(string setId, double incrBy, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZIncrByAsync(string setId, System.Int64 incrBy, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZInterStore(string intoSetId, string[] setIds, string[] args) => throw null; - public System.Int64 ZInterStore(string intoSetId, params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZInterStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZInterStoreAsync(string intoSetId, params string[] setIds) => throw null; - public System.Int64 ZLexCount(string setId, string min, string max) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZLexCountAsync(string setId, string min, string max, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ZRange(string setId, int min, int max) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRangeAsync(string setId, int min, int max, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ZRangeByLex(string setId, string min, string max, int? skip = default(int?), int? take = default(int?)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRangeByLexAsync(string setId, string min, string max, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ZRangeByScore(string setId, double min, double max, int? skip, int? take) => throw null; - public System.Byte[][] ZRangeByScore(string setId, System.Int64 min, System.Int64 max, int? skip, int? take) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRangeByScoreAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRangeByScoreAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ZRangeByScoreWithScores(string setId, double min, double max, int? skip, int? take) => throw null; - public System.Byte[][] ZRangeByScoreWithScores(string setId, System.Int64 min, System.Int64 max, int? skip, int? take) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRangeByScoreWithScoresAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRangeByScoreWithScoresAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ZRangeWithScores(string setId, int min, int max) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRangeWithScoresAsync(string setId, int min, int max, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZRank(string setId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRankAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZRem(string setId, System.Byte[][] values) => throw null; - public System.Int64 ZRem(string setId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRemAsync(string setId, System.Byte[][] values, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRemAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZRemRangeByLex(string setId, string min, string max) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRemRangeByLexAsync(string setId, string min, string max, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZRemRangeByRank(string setId, int min, int max) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRemRangeByRankAsync(string setId, int min, int max, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZRemRangeByScore(string setId, double fromScore, double toScore) => throw null; - public System.Int64 ZRemRangeByScore(string setId, System.Int64 fromScore, System.Int64 toScore) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRemRangeByScoreAsync(string setId, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRemRangeByScoreAsync(string setId, System.Int64 fromScore, System.Int64 toScore, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ZRevRange(string setId, int min, int max) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRevRangeAsync(string setId, int min, int max, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ZRevRangeByScore(string setId, double min, double max, int? skip, int? take) => throw null; - public System.Byte[][] ZRevRangeByScore(string setId, System.Int64 min, System.Int64 max, int? skip, int? take) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRevRangeByScoreAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRevRangeByScoreAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ZRevRangeByScoreWithScores(string setId, double min, double max, int? skip, int? take) => throw null; - public System.Byte[][] ZRevRangeByScoreWithScores(string setId, System.Int64 min, System.Int64 max, int? skip, int? take) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRevRangeByScoreWithScoresAsync(string setId, double min, double max, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRevRangeByScoreWithScoresAsync(string setId, System.Int64 min, System.Int64 max, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - public System.Byte[][] ZRevRangeWithScores(string setId, int min, int max) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRevRangeWithScoresAsync(string setId, int min, int max, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZRevRank(string setId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZRevRankAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.ScanResult ZScan(string setId, System.UInt64 cursor, int count = default(int), string match = default(string)) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZScanAsync(string setId, System.UInt64 cursor, int count, string match, System.Threading.CancellationToken token) => throw null; - public double ZScore(string setId, System.Byte[] value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZScoreAsync(string setId, System.Byte[] value, System.Threading.CancellationToken token) => throw null; - public System.Int64 ZUnionStore(string intoSetId, string[] setIds, string[] args) => throw null; - public System.Int64 ZUnionStore(string intoSetId, params string[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZUnionStoreAsync(string intoSetId, string[] setIds, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisNativeClientAsync.ZUnionStoreAsync(string intoSetId, params string[] setIds) => throw null; - protected System.Net.Sockets.Socket socket; - protected System.Net.Security.SslStream sslStream; - // ERR: Stub generator didn't handle member: ~RedisNativeClient - } - - // Generated from `ServiceStack.Redis.RedisPoolConfig` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisPoolConfig - { - public static int DefaultMaxPoolSize; - public int MaxPoolSize { get => throw null; set => throw null; } - public RedisPoolConfig() => throw null; - } - - // Generated from `ServiceStack.Redis.RedisPubSubServer` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisPubSubServer : System.IDisposable, ServiceStack.Redis.IRedisPubSubServer - { - public const string AllChannelsWildCard = default; - public bool AutoRestart { get => throw null; set => throw null; } - public System.Int64 BgThreadCount { get => throw null; } - public string[] Channels { get => throw null; set => throw null; } - public string[] ChannelsMatching { get => throw null; set => throw null; } - public ServiceStack.Redis.IRedisClientsManager ClientsManager { get => throw null; set => throw null; } - // Generated from `ServiceStack.Redis.RedisPubSubServer+ControlCommand` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ControlCommand - { - public const string Control = default; - public const string Pulse = default; - } - - - public System.DateTime CurrentServerTime { get => throw null; } - public virtual void Dispose() => throw null; - public string GetStatsDescription() => throw null; - public string GetStatus() => throw null; - public System.TimeSpan? HeartbeatInterval; - public System.TimeSpan HeartbeatTimeout; - public bool IsSentinelSubscription { get => throw null; set => throw null; } - public System.Action OnControlCommand { get => throw null; set => throw null; } - public System.Action OnDispose { get => throw null; set => throw null; } - public System.Action OnError { get => throw null; set => throw null; } - public System.Action OnFailover { get => throw null; set => throw null; } - public System.Action OnHeartbeatReceived { get => throw null; set => throw null; } - public System.Action OnHeartbeatSent { get => throw null; set => throw null; } - public System.Action OnInit { get => throw null; set => throw null; } - public System.Action OnMessage { get => throw null; set => throw null; } - public System.Action OnMessageBytes { get => throw null; set => throw null; } - public System.Action OnStart { get => throw null; set => throw null; } - public System.Action OnStop { get => throw null; set => throw null; } - public System.Action OnUnSubscribe { get => throw null; set => throw null; } - // Generated from `ServiceStack.Redis.RedisPubSubServer+Operation` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Operation - { - public static string GetName(int op) => throw null; - public const int NoOp = default; - public const int Reset = default; - public const int Restart = default; - public const int Stop = default; - } - - - public RedisPubSubServer(ServiceStack.Redis.IRedisClientsManager clientsManager, params string[] channels) => throw null; - public void Restart() => throw null; - public ServiceStack.Redis.IRedisPubSubServer Start() => throw null; - public void Stop() => throw null; - public System.TimeSpan? WaitBeforeNextRestart { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Redis.RedisQueueCompletableOperation` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisQueueCompletableOperation - { - protected virtual void AddCurrentQueuedOperation() => throw null; - public virtual void CompleteBytesQueuedCommand(System.Func bytesReadCommand) => throw null; - public virtual void CompleteDoubleQueuedCommand(System.Func doubleReadCommand) => throw null; - public virtual void CompleteIntQueuedCommand(System.Func intReadCommand) => throw null; - public virtual void CompleteLongQueuedCommand(System.Func longReadCommand) => throw null; - public virtual void CompleteMultiBytesQueuedCommand(System.Func multiBytesReadCommand) => throw null; - public virtual void CompleteMultiStringQueuedCommand(System.Func> multiStringReadCommand) => throw null; - public virtual void CompleteRedisDataQueuedCommand(System.Func redisDataReadCommand) => throw null; - public virtual void CompleteStringQueuedCommand(System.Func stringReadCommand) => throw null; - public virtual void CompleteVoidQueuedCommand(System.Action voidReadCommand) => throw null; - public RedisQueueCompletableOperation() => throw null; - } - - // Generated from `ServiceStack.Redis.RedisResolver` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisResolver : ServiceStack.Redis.IRedisResolverExtended, ServiceStack.Redis.IRedisResolver - { - public System.Func ClientFactory { get => throw null; set => throw null; } - public ServiceStack.Redis.RedisClient CreateMasterClient(int desiredIndex) => throw null; - public virtual ServiceStack.Redis.RedisClient CreateRedisClient(ServiceStack.Redis.RedisEndpoint config, bool master) => throw null; - public ServiceStack.Redis.RedisClient CreateSlaveClient(int desiredIndex) => throw null; - public ServiceStack.Redis.RedisEndpoint GetReadOnlyHost(int desiredIndex) => throw null; - public ServiceStack.Redis.RedisEndpoint GetReadWriteHost(int desiredIndex) => throw null; - protected ServiceStack.Redis.RedisClient GetValidMaster(ServiceStack.Redis.RedisClient client, ServiceStack.Redis.RedisEndpoint config) => throw null; - public ServiceStack.Redis.RedisEndpoint[] Masters { get => throw null; } - public int ReadOnlyHostsCount { get => throw null; set => throw null; } - public int ReadWriteHostsCount { get => throw null; set => throw null; } - public RedisResolver(System.Collections.Generic.IEnumerable masters, System.Collections.Generic.IEnumerable replicas) => throw null; - public RedisResolver(System.Collections.Generic.IEnumerable masters, System.Collections.Generic.IEnumerable replicas) => throw null; - public RedisResolver() => throw null; - public virtual void ResetMasters(System.Collections.Generic.List newMasters) => throw null; - public virtual void ResetMasters(System.Collections.Generic.IEnumerable hosts) => throw null; - public virtual void ResetSlaves(System.Collections.Generic.List newReplicas) => throw null; - public virtual void ResetSlaves(System.Collections.Generic.IEnumerable hosts) => throw null; - public ServiceStack.Redis.RedisEndpoint[] Slaves { get => throw null; } - } - - // Generated from `ServiceStack.Redis.RedisResolverExtensions` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RedisResolverExtensions - { - public static ServiceStack.Redis.RedisClient CreateRedisClient(this ServiceStack.Redis.IRedisResolver resolver, ServiceStack.Redis.RedisEndpoint config, bool master) => throw null; - public static ServiceStack.Redis.RedisEndpoint GetReadOnlyHost(this ServiceStack.Redis.IRedisResolver resolver, int desiredIndex) => throw null; - public static ServiceStack.Redis.RedisEndpoint GetReadWriteHost(this ServiceStack.Redis.IRedisResolver resolver, int desiredIndex) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisResponseException` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisResponseException : ServiceStack.Redis.RedisException - { - public string Code { get => throw null; set => throw null; } - public RedisResponseException(string message, string code) : base(default(string)) => throw null; - public RedisResponseException(string message) : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisRetryableException` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisRetryableException : ServiceStack.Redis.RedisException - { - public string Code { get => throw null; set => throw null; } - public RedisRetryableException(string message, string code) : base(default(string)) => throw null; - public RedisRetryableException(string message) : base(default(string)) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisScripts` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisScripts : ServiceStack.Script.ScriptMethods - { - public ServiceStack.Redis.IRedisClientsManager RedisManager { get => throw null; set => throw null; } - public RedisScripts() => throw null; - public object redisCall(ServiceStack.Script.ScriptScopeContext scope, object redisCommand, object options) => throw null; - public object redisCall(ServiceStack.Script.ScriptScopeContext scope, object redisCommand) => throw null; - public string redisChangeConnection(ServiceStack.Script.ScriptScopeContext scope, object newConnection, object options) => throw null; - public string redisChangeConnection(ServiceStack.Script.ScriptScopeContext scope, object newConnection) => throw null; - public System.Collections.Generic.Dictionary redisConnection(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string redisConnectionString(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.Dictionary redisInfo(ServiceStack.Script.ScriptScopeContext scope, object options) => throw null; - public System.Collections.Generic.Dictionary redisInfo(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.List redisSearchKeys(ServiceStack.Script.ScriptScopeContext scope, string query, object options) => throw null; - public System.Collections.Generic.List redisSearchKeys(ServiceStack.Script.ScriptScopeContext scope, string query) => throw null; - public string redisSearchKeysAsJson(ServiceStack.Script.ScriptScopeContext scope, string query, object options) => throw null; - public string redisToConnectionString(ServiceStack.Script.ScriptScopeContext scope, object connectionInfo, object options) => throw null; - public string redisToConnectionString(ServiceStack.Script.ScriptScopeContext scope, object connectionInfo) => throw null; - public ServiceStack.Script.IgnoreResult useRedis(ServiceStack.Script.ScriptScopeContext scope, string redisConnection) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisSearchCursorResult` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisSearchCursorResult - { - public int Cursor { get => throw null; set => throw null; } - public RedisSearchCursorResult() => throw null; - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Redis.RedisSearchResult` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisSearchResult - { - public string Id { get => throw null; set => throw null; } - public RedisSearchResult() => throw null; - public System.Int64 Size { get => throw null; set => throw null; } - public System.Int64 Ttl { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Redis.RedisSentinel` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisSentinel : System.IDisposable, ServiceStack.Redis.IRedisSentinel - { - public static string DefaultAddress; - public static string DefaultMasterName; - public void Dispose() => throw null; - public void ForceMasterFailover() => throw null; - public System.Collections.Generic.List GetActiveSentinelHosts(System.Collections.Generic.IEnumerable sentinelHosts) => throw null; - public ServiceStack.Redis.RedisEndpoint GetMaster() => throw null; - public ServiceStack.Redis.IRedisClientsManager GetRedisManager() => throw null; - public SentinelInfo GetSentinelInfo() => throw null; - public System.Collections.Generic.List GetSlaves() => throw null; - public System.Func HostFilter { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary IpAddressMap { get => throw null; set => throw null; } - protected static ServiceStack.Logging.ILog Log; - public string MasterName { get => throw null; } - public System.TimeSpan MaxWaitBetweenFailedHosts { get => throw null; set => throw null; } - public System.Action OnFailover { get => throw null; set => throw null; } - public System.Action OnSentinelMessageReceived { get => throw null; set => throw null; } - public System.Action OnWorkerError { get => throw null; set => throw null; } - public ServiceStack.Redis.IRedisClientsManager RedisManager { get => throw null; set => throw null; } - public System.Func RedisManagerFactory { get => throw null; set => throw null; } - public RedisSentinel(string sentinelHost = default(string), string masterName = default(string)) => throw null; - public RedisSentinel(System.Collections.Generic.IEnumerable sentinelHosts, string masterName = default(string)) => throw null; - public void RefreshActiveSentinels() => throw null; - public System.TimeSpan RefreshSentinelHostsAfter { get => throw null; set => throw null; } - public SentinelInfo ResetClients() => throw null; - public bool ResetWhenObjectivelyDown { get => throw null; set => throw null; } - public bool ResetWhenSubjectivelyDown { get => throw null; set => throw null; } - public bool ScanForOtherSentinels { get => throw null; set => throw null; } - public System.Func SentinelHostFilter { get => throw null; set => throw null; } - public System.Collections.Generic.List SentinelHosts { get => throw null; set => throw null; } - public int SentinelWorkerConnectTimeoutMs { get => throw null; set => throw null; } - public int SentinelWorkerReceiveTimeoutMs { get => throw null; set => throw null; } - public int SentinelWorkerSendTimeoutMs { get => throw null; set => throw null; } - public ServiceStack.Redis.IRedisClientsManager Start() => throw null; - public System.TimeSpan WaitBeforeForcingMasterFailover { get => throw null; set => throw null; } - public System.TimeSpan WaitBetweenFailedHosts { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Redis.RedisSentinelResolver` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisSentinelResolver : ServiceStack.Redis.IRedisResolverExtended, ServiceStack.Redis.IRedisResolver - { - public System.Func ClientFactory { get => throw null; set => throw null; } - public ServiceStack.Redis.RedisClient CreateMasterClient(int desiredIndex) => throw null; - public virtual ServiceStack.Redis.RedisClient CreateRedisClient(ServiceStack.Redis.RedisEndpoint config, bool master) => throw null; - public ServiceStack.Redis.RedisClient CreateSlaveClient(int desiredIndex) => throw null; - public ServiceStack.Redis.RedisEndpoint GetReadOnlyHost(int desiredIndex) => throw null; - public ServiceStack.Redis.RedisEndpoint GetReadWriteHost(int desiredIndex) => throw null; - public ServiceStack.Redis.RedisEndpoint[] Masters { get => throw null; } - public int ReadOnlyHostsCount { get => throw null; set => throw null; } - public int ReadWriteHostsCount { get => throw null; set => throw null; } - public RedisSentinelResolver(ServiceStack.Redis.RedisSentinel sentinel, System.Collections.Generic.IEnumerable masters, System.Collections.Generic.IEnumerable replicas) => throw null; - public RedisSentinelResolver(ServiceStack.Redis.RedisSentinel sentinel, System.Collections.Generic.IEnumerable masters, System.Collections.Generic.IEnumerable replicas) => throw null; - public RedisSentinelResolver(ServiceStack.Redis.RedisSentinel sentinel) => throw null; - public virtual void ResetMasters(System.Collections.Generic.List newMasters) => throw null; - public virtual void ResetMasters(System.Collections.Generic.IEnumerable hosts) => throw null; - public virtual void ResetSlaves(System.Collections.Generic.List newReplicas) => throw null; - public virtual void ResetSlaves(System.Collections.Generic.IEnumerable hosts) => throw null; - public ServiceStack.Redis.RedisEndpoint[] Slaves { get => throw null; } - } - - // Generated from `ServiceStack.Redis.RedisStats` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RedisStats - { - public static void Reset() => throw null; - public static System.Collections.Generic.Dictionary ToDictionary() => throw null; - public static System.Int64 TotalClientsCreated { get => throw null; } - public static System.Int64 TotalClientsCreatedOutsidePool { get => throw null; } - public static System.Int64 TotalCommandsSent { get => throw null; } - public static System.Int64 TotalDeactivatedClients { get => throw null; } - public static System.Int64 TotalFailedSentinelWorkers { get => throw null; } - public static System.Int64 TotalFailovers { get => throw null; } - public static System.Int64 TotalForcedMasterFailovers { get => throw null; } - public static System.Int64 TotalInvalidMasters { get => throw null; } - public static System.Int64 TotalNoMastersFound { get => throw null; } - public static System.Int64 TotalObjectiveServersDown { get => throw null; } - public static System.Int64 TotalPendingDeactivatedClients { get => throw null; } - public static System.Int64 TotalRetryCount { get => throw null; } - public static System.Int64 TotalRetrySuccess { get => throw null; } - public static System.Int64 TotalRetryTimedout { get => throw null; } - public static System.Int64 TotalSubjectiveServersDown { get => throw null; } - } - - // Generated from `ServiceStack.Redis.RedisSubscription` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisSubscription : System.IDisposable, System.IAsyncDisposable, ServiceStack.Redis.IRedisSubscriptionAsync, ServiceStack.Redis.IRedisSubscription - { - public void Dispose() => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - public bool IsPSubscription { get => throw null; set => throw null; } - public System.Action OnMessage { get => throw null; set => throw null; } - event System.Func ServiceStack.Redis.IRedisSubscriptionAsync.OnMessageAsync { add => throw null; remove => throw null; } - public System.Action OnMessageBytes { get => throw null; set => throw null; } - event System.Func ServiceStack.Redis.IRedisSubscriptionAsync.OnMessageBytesAsync { add => throw null; remove => throw null; } - public System.Action OnSubscribe { get => throw null; set => throw null; } - event System.Func ServiceStack.Redis.IRedisSubscriptionAsync.OnSubscribeAsync { add => throw null; remove => throw null; } - public System.Action OnUnSubscribe { get => throw null; set => throw null; } - event System.Func ServiceStack.Redis.IRedisSubscriptionAsync.OnUnSubscribeAsync { add => throw null; remove => throw null; } - public RedisSubscription(ServiceStack.Redis.IRedisNativeClient redisClient) => throw null; - public void SubscribeToChannels(params string[] channels) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisSubscriptionAsync.SubscribeToChannelsAsync(string[] channels, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisSubscriptionAsync.SubscribeToChannelsAsync(params string[] channels) => throw null; - public void SubscribeToChannelsMatching(params string[] patterns) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisSubscriptionAsync.SubscribeToChannelsMatchingAsync(string[] patterns, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisSubscriptionAsync.SubscribeToChannelsMatchingAsync(params string[] patterns) => throw null; - public System.Int64 SubscriptionCount { get => throw null; set => throw null; } - public void UnSubscribeFromAllChannels() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisSubscriptionAsync.UnSubscribeFromAllChannelsAsync(System.Threading.CancellationToken token) => throw null; - public void UnSubscribeFromAllChannelsMatchingAnyPatterns() => throw null; - public void UnSubscribeFromChannels(params string[] channels) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisSubscriptionAsync.UnSubscribeFromChannelsAsync(string[] channels, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisSubscriptionAsync.UnSubscribeFromChannelsAsync(params string[] channels) => throw null; - public void UnSubscribeFromChannelsMatching(params string[] patterns) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisSubscriptionAsync.UnSubscribeFromChannelsMatchingAsync(string[] patterns, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisSubscriptionAsync.UnSubscribeFromChannelsMatchingAsync(params string[] patterns) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisTransaction` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisTransaction : ServiceStack.Redis.RedisAllPurposePipeline, System.IDisposable, System.IAsyncDisposable, ServiceStack.Redis.Pipeline.IRedisQueueableOperationAsync, ServiceStack.Redis.Pipeline.IRedisQueueableOperation, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync, ServiceStack.Redis.Pipeline.IRedisPipelineShared, ServiceStack.Redis.IRedisTransactionBaseAsync, ServiceStack.Redis.IRedisTransactionBase, ServiceStack.Redis.IRedisTransactionAsync, ServiceStack.Redis.IRedisTransaction - { - protected override void AddCurrentQueuedOperation() => throw null; - public bool Commit() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisTransactionAsync.CommitAsync(System.Threading.CancellationToken token) => throw null; - public override void Dispose() => throw null; - protected override void Init() => throw null; - public RedisTransaction(ServiceStack.Redis.RedisClient redisClient) : base(default(ServiceStack.Redis.RedisClient)) => throw null; - internal RedisTransaction(ServiceStack.Redis.RedisClient redisClient, bool isAsync) : base(default(ServiceStack.Redis.RedisClient)) => throw null; - public override bool Replay() => throw null; - public void Rollback() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.IRedisTransactionAsync.RollbackAsync(System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Redis.RedisTransactionFailedException` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisTransactionFailedException : System.Exception - { - public RedisTransactionFailedException() => throw null; - } - - // Generated from `ServiceStack.Redis.RedisTypedPipeline<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisTypedPipeline : ServiceStack.Redis.Generic.RedisTypedCommandQueue, System.IDisposable, System.IAsyncDisposable, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync, ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation, ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync, ServiceStack.Redis.Pipeline.IRedisPipelineShared, ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync, ServiceStack.Redis.Generic.IRedisTypedQueueableOperation, ServiceStack.Redis.Generic.IRedisTypedPipelineAsync, ServiceStack.Redis.Generic.IRedisTypedPipeline - { - protected void ClosePipeline() => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteBytesQueuedCommandAsync(System.Func> bytesReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteDoubleQueuedCommandAsync(System.Func> doubleReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteIntQueuedCommandAsync(System.Func> intReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteLongQueuedCommandAsync(System.Func> longReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteMultiBytesQueuedCommandAsync(System.Func> multiBytesReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteMultiStringQueuedCommandAsync(System.Func>> multiStringReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteRedisDataQueuedCommandAsync(System.Func> redisDataReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteStringQueuedCommandAsync(System.Func> stringReadCommand) => throw null; - void ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperationAsync.CompleteVoidQueuedCommandAsync(System.Func voidReadCommand) => throw null; - public virtual void Dispose() => throw null; - System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync() => throw null; - protected void Execute() => throw null; - public void Flush() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync.FlushAsync(System.Threading.CancellationToken token) => throw null; - protected virtual void Init() => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask>> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask>> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask>> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - void ServiceStack.Redis.Generic.IRedisTypedQueueableOperationAsync.QueueCommand(System.Func, System.Threading.Tasks.ValueTask> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - internal RedisTypedPipeline(ServiceStack.Redis.Generic.RedisTypedClient redisClient) : base(default(ServiceStack.Redis.Generic.RedisTypedClient)) => throw null; - public virtual bool Replay() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Pipeline.IRedisPipelineSharedAsync.ReplayAsync(System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Redis.ScanResultExtensions` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ScanResultExtensions - { - public static System.Collections.Generic.Dictionary AsItemsWithScores(this ServiceStack.Redis.ScanResult result) => throw null; - public static System.Collections.Generic.Dictionary AsKeyValues(this ServiceStack.Redis.ScanResult result) => throw null; - public static System.Collections.Generic.List AsStrings(this ServiceStack.Redis.ScanResult result) => throw null; - } - - // Generated from `ServiceStack.Redis.ShardedConnectionPool` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ShardedConnectionPool : ServiceStack.Redis.PooledRedisClientManager - { - public override int GetHashCode() => throw null; - public ShardedConnectionPool(string name, int weight, params string[] readWriteHosts) => throw null; - public string name; - public int weight; - } - - // Generated from `ServiceStack.Redis.ShardedRedisClientManager` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ShardedRedisClientManager - { - public ServiceStack.Redis.ShardedConnectionPool GetConnectionPool(string key) => throw null; - public ShardedRedisClientManager(params ServiceStack.Redis.ShardedConnectionPool[] connectionPools) => throw null; - } - - // Generated from `ServiceStack.Redis.TemplateRedisFilters` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateRedisFilters : ServiceStack.Redis.RedisScripts - { - public TemplateRedisFilters() => throw null; - } - - namespace Generic - { - // Generated from `ServiceStack.Redis.Generic.ManagedList<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ManagedList : System.Collections.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection - { - public void 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 System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public int IndexOf(T item) => throw null; - public void Insert(int index, T item) => throw null; - public bool IsReadOnly { get => throw null; } - public T this[int index] { get => throw null; set => throw null; } - public ManagedList(ServiceStack.Redis.IRedisClientsManager manager, string key) => throw null; - public bool Remove(T item) => throw null; - public void RemoveAt(int index) => throw null; - } - - // Generated from `ServiceStack.Redis.Generic.RedisClientsManagerExtensionsGeneric` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RedisClientsManagerExtensionsGeneric - { - public static ServiceStack.Redis.Generic.ManagedList GetManagedList(this ServiceStack.Redis.IRedisClientsManager manager, string key) => throw null; - } - - // Generated from `ServiceStack.Redis.Generic.RedisTypedClient<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisTypedClient : ServiceStack.Redis.Generic.IRedisTypedClientAsync, ServiceStack.Redis.Generic.IRedisTypedClient, ServiceStack.Data.IEntityStoreAsync, ServiceStack.Data.IEntityStore - { - public System.IDisposable AcquireLock(System.TimeSpan timeOut) => throw null; - public System.IDisposable AcquireLock() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.AcquireLockAsync(System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public void AddItemToList(ServiceStack.Redis.Generic.IRedisList fromList, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.AddItemToListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, System.Threading.CancellationToken token) => throw null; - public void AddItemToSet(ServiceStack.Redis.Generic.IRedisSet toSet, T item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.AddItemToSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync toSet, T item, System.Threading.CancellationToken token) => throw null; - public void AddItemToSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet toSet, T value, double score) => throw null; - public void AddItemToSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet toSet, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.AddItemToSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync toSet, T value, double score, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.AddItemToSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync toSet, T value, System.Threading.CancellationToken token) => throw null; - public void AddRangeToList(ServiceStack.Redis.Generic.IRedisList fromList, System.Collections.Generic.IEnumerable values) => throw null; - public void AddToRecentsList(T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.AddToRecentsListAsync(T value, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.Generic.IRedisTypedClientAsync AsAsync() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.BackgroundSaveAsync(System.Threading.CancellationToken token) => throw null; - public T BlockingDequeueItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.BlockingDequeueItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public T BlockingPopAndPushItemBetweenLists(ServiceStack.Redis.Generic.IRedisList fromList, ServiceStack.Redis.Generic.IRedisList toList, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.BlockingPopAndPushItemBetweenListsAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, ServiceStack.Redis.Generic.IRedisListAsync toList, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public T BlockingPopItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.BlockingPopItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public T BlockingRemoveStartFromList(ServiceStack.Redis.Generic.IRedisList fromList, System.TimeSpan? timeOut) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.BlockingRemoveStartFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.TimeSpan? timeOut, System.Threading.CancellationToken token) => throw null; - public bool ContainsKey(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.ContainsKeyAsync(string key, System.Threading.CancellationToken token) => throw null; - public static System.Collections.Generic.Dictionary ConvertEachTo(System.Collections.Generic.IDictionary map) => throw null; - public ServiceStack.Redis.Generic.IRedisTypedPipeline CreatePipeline() => throw null; - ServiceStack.Redis.Generic.IRedisTypedPipelineAsync ServiceStack.Redis.Generic.IRedisTypedClientAsync.CreatePipeline() => throw null; - public ServiceStack.Redis.Generic.IRedisTypedTransaction CreateTransaction() => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.CreateTransactionAsync(System.Threading.CancellationToken token) => throw null; - public System.Int64 Db { get => throw null; set => throw null; } - System.Int64 ServiceStack.Redis.Generic.IRedisTypedClientAsync.Db { get => throw null; } - public System.Int64 DecrementValue(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.DecrementValueAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Int64 DecrementValueBy(string key, int count) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.DecrementValueByAsync(string key, int count, System.Threading.CancellationToken token) => throw null; - public void Delete(T entity) => throw null; - public void DeleteAll() => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.DeleteAllAsync(System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.DeleteAsync(T entity, System.Threading.CancellationToken token) => throw null; - public void DeleteById(object id) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.DeleteByIdAsync(object id, System.Threading.CancellationToken token) => throw null; - public void DeleteByIds(System.Collections.IEnumerable ids) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.DeleteByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token) => throw null; - public void DeleteRelatedEntities(object parentId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.DeleteRelatedEntitiesAsync(object parentId, System.Threading.CancellationToken token) => throw null; - public void DeleteRelatedEntity(object parentId, object childId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.DeleteRelatedEntityAsync(object parentId, object childId, System.Threading.CancellationToken token) => throw null; - public T DequeueItemFromList(ServiceStack.Redis.Generic.IRedisList fromList) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.DequeueItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token) => throw null; - public static T DeserializeFromString(string serializedObj) => throw null; - public T DeserializeValue(System.Byte[] value) => throw null; - public void Discard() => throw null; - public void EnqueueItemOnList(ServiceStack.Redis.Generic.IRedisList fromList, T item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.EnqueueItemOnListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T item, System.Threading.CancellationToken token) => throw null; - public void Exec() => throw null; - public bool ExpireAt(object id, System.DateTime expireAt) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.ExpireAtAsync(object id, System.DateTime expireAt, System.Threading.CancellationToken token) => throw null; - public bool ExpireEntryAt(string key, System.DateTime expireAt) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.ExpireEntryAtAsync(string key, System.DateTime expireAt, System.Threading.CancellationToken token) => throw null; - public bool ExpireEntryIn(string key, System.TimeSpan expireIn) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.ExpireEntryInAsync(string key, System.TimeSpan expireIn, System.Threading.CancellationToken token) => throw null; - public bool ExpireIn(object id, System.TimeSpan expireIn) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.ExpireInAsync(object id, System.TimeSpan expiresIn, System.Threading.CancellationToken token) => throw null; - public void FlushAll() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.FlushAllAsync(System.Threading.CancellationToken token) => throw null; - public void FlushDb() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.FlushDbAsync(System.Threading.CancellationToken token) => throw null; - public void FlushSendBuffer() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.ForegroundSaveAsync(System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IList GetAll() => throw null; - System.Threading.Tasks.Task> ServiceStack.Data.IEntityStoreAsync.GetAllAsync(System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.Dictionary GetAllEntriesFromHash(ServiceStack.Redis.Generic.IRedisHash hash) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetAllEntriesFromHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetAllItemsFromList(ServiceStack.Redis.Generic.IRedisList fromList) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetAllItemsFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.HashSet GetAllItemsFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetAllItemsFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetAllItemsFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetAllItemsFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetAllItemsFromSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetAllItemsFromSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetAllKeys() => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetAllKeysAsync(System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetAllWithScoresFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetAllWithScoresFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token) => throw null; - public T GetAndSetValue(string key, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetAndSetValueAsync(string key, T value, System.Threading.CancellationToken token) => throw null; - public T GetById(object id) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.GetByIdAsync(object id, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IList GetByIds(System.Collections.IEnumerable ids) => throw null; - System.Threading.Tasks.Task> ServiceStack.Data.IEntityStoreAsync.GetByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.HashSet GetDifferencesFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet, params ServiceStack.Redis.Generic.IRedisSet[] withSets) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetEarliestFromRecentsList(int skip, int take) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetEarliestFromRecentsListAsync(int skip, int take, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.RedisKeyType GetEntryType(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetEntryTypeAsync(string key, System.Threading.CancellationToken token) => throw null; - public T GetFromHash(object id) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetFromHashAsync(object id, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.Generic.IRedisHash GetHash(string hashId) => throw null; - ServiceStack.Redis.Generic.IRedisHashAsync ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetHash(string hashId) => throw null; - public System.Int64 GetHashCount(ServiceStack.Redis.Generic.IRedisHash hash) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetHashCountAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetHashKeys(ServiceStack.Redis.Generic.IRedisHash hash) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetHashKeysAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetHashValues(ServiceStack.Redis.Generic.IRedisHash hash) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetHashValuesAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.HashSet GetIntersectFromSets(params ServiceStack.Redis.Generic.IRedisSet[] sets) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetIntersectFromSetsAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetIntersectFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token) => throw null; - public T GetItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, int listIndex) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int listIndex, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetItemIndexInSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetItemIndexInSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetItemIndexInSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetItemIndexInSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token) => throw null; - public double GetItemScoreInSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetItemScoreInSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetLatestFromRecentsList(int skip, int take) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetLatestFromRecentsListAsync(int skip, int take, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetListCount(ServiceStack.Redis.Generic.IRedisList fromList) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetListCountAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetNextSequence(int incrBy) => throw null; - public System.Int64 GetNextSequence() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetNextSequenceAsync(int incrBy, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetNextSequenceAsync(System.Threading.CancellationToken token) => throw null; - public T GetRandomItemFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRandomItemFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, System.Threading.CancellationToken token) => throw null; - public string GetRandomKey() => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRandomKeyAsync(System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromList(ServiceStack.Redis.Generic.IRedisList fromList, int startingFrom, int endingAt) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int startingFrom, int endingAt, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRangeFromSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeFromSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByHighestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetByHighestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, string fromStringScore, string toStringScore) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore, int? skip, int? take) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetByLowestScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, string fromStringScore, string toStringScore, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, int? skip, int? take, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetByLowestScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.IDictionary GetRangeWithScoresFromSortedSetDesc(ServiceStack.Redis.Generic.IRedisSortedSet set, int fromRank, int toRank) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRangeWithScoresFromSortedSetDescAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int fromRank, int toRank, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetRelatedEntities(object parentId) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRelatedEntitiesAsync(object parentId, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetRelatedEntitiesCount(object parentId) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetRelatedEntitiesCountAsync(object parentId, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetSetCount(ServiceStack.Redis.Generic.IRedisSet set) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetSetCountAsync(ServiceStack.Redis.Generic.IRedisSetAsync set, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetSortedEntryValues(ServiceStack.Redis.Generic.IRedisSet fromSet, int startingFrom, int endingAt) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetSortedEntryValuesAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, int startingFrom, int endingAt, System.Threading.CancellationToken token) => throw null; - public System.Int64 GetSortedSetCount(ServiceStack.Redis.Generic.IRedisSortedSet set) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetSortedSetCountAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, System.Threading.CancellationToken token) => throw null; - public System.TimeSpan GetTimeToLive(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetTimeToLiveAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.HashSet GetUnionFromSets(params ServiceStack.Redis.Generic.IRedisSet[] sets) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetUnionFromSetsAsync(params ServiceStack.Redis.Generic.IRedisSetAsync[] sets) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetUnionFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token) => throw null; - public T GetValue(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetValueAsync(string key, System.Threading.CancellationToken token) => throw null; - public T GetValueFromHash(ServiceStack.Redis.Generic.IRedisHash hash, TKey key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetValueFromHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, System.Threading.CancellationToken token) => throw null; - public System.Collections.Generic.List GetValues(System.Collections.Generic.List keys) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.GetValuesAsync(System.Collections.Generic.List keys, System.Threading.CancellationToken token) => throw null; - public bool HashContainsEntry(ServiceStack.Redis.Generic.IRedisHash hash, TKey key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.HashContainsEntryAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, System.Threading.CancellationToken token) => throw null; - public double IncrementItemInSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, T value, double incrementBy) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.IncrementItemInSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, double incrementBy, System.Threading.CancellationToken token) => throw null; - public System.Int64 IncrementValue(string key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.IncrementValueAsync(string key, System.Threading.CancellationToken token) => throw null; - public System.Int64 IncrementValueBy(string key, int count) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.IncrementValueByAsync(string key, int count, System.Threading.CancellationToken token) => throw null; - public void InsertAfterItemInList(ServiceStack.Redis.Generic.IRedisList toList, T pivot, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.InsertAfterItemInListAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, T pivot, T value, System.Threading.CancellationToken token) => throw null; - public void InsertBeforeItemInList(ServiceStack.Redis.Generic.IRedisList toList, T pivot, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.InsertBeforeItemInListAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, T pivot, T value, System.Threading.CancellationToken token) => throw null; - public T this[string key] { get => throw null; set => throw null; } - public ServiceStack.Model.IHasNamed> Lists { get => throw null; set => throw null; } - ServiceStack.Model.IHasNamed> ServiceStack.Redis.Generic.IRedisTypedClientAsync.Lists { get => throw null; } - public void MoveBetweenSets(ServiceStack.Redis.Generic.IRedisSet fromSet, ServiceStack.Redis.Generic.IRedisSet toSet, T item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.MoveBetweenSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync toSet, T item, System.Threading.CancellationToken token) => throw null; - public void Multi() => throw null; - public ServiceStack.Redis.IRedisNativeClient NativeClient { get => throw null; } - public ServiceStack.Redis.Pipeline.IRedisPipelineShared Pipeline { get => throw null; set => throw null; } - public T PopAndPushItemBetweenLists(ServiceStack.Redis.Generic.IRedisList fromList, ServiceStack.Redis.Generic.IRedisList toList) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.PopAndPushItemBetweenListsAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, ServiceStack.Redis.Generic.IRedisListAsync toList, System.Threading.CancellationToken token) => throw null; - public T PopItemFromList(ServiceStack.Redis.Generic.IRedisList fromList) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.PopItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token) => throw null; - public T PopItemFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.PopItemFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, System.Threading.CancellationToken token) => throw null; - public T PopItemWithHighestScoreFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet fromSet) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.PopItemWithHighestScoreFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync fromSet, System.Threading.CancellationToken token) => throw null; - public T PopItemWithLowestScoreFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet fromSet) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.PopItemWithLowestScoreFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync fromSet, System.Threading.CancellationToken token) => throw null; - public void PrependItemToList(ServiceStack.Redis.Generic.IRedisList fromList, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.PrependItemToListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, System.Threading.CancellationToken token) => throw null; - public void PushItemToList(ServiceStack.Redis.Generic.IRedisList fromList, T item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.PushItemToListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T item, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.IRedisClient RedisClient { get => throw null; } - ServiceStack.Redis.IRedisClientAsync ServiceStack.Redis.Generic.IRedisTypedClientAsync.RedisClient { get => throw null; } - public RedisTypedClient(ServiceStack.Redis.RedisClient client) => throw null; - public void RemoveAllFromList(ServiceStack.Redis.Generic.IRedisList fromList) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveAllFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token) => throw null; - public T RemoveEndFromList(ServiceStack.Redis.Generic.IRedisList fromList) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveEndFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token) => throw null; - public bool RemoveEntry(string key) => throw null; - public bool RemoveEntry(params string[] keys) => throw null; - public bool RemoveEntry(params ServiceStack.Model.IHasStringId[] entities) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveEntryAsync(string[] keys, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveEntryAsync(string key, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveEntryAsync(params string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveEntryAsync(params ServiceStack.Model.IHasStringId[] entities) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveEntryAsync(ServiceStack.Model.IHasStringId[] entities, System.Threading.CancellationToken token) => throw null; - public bool RemoveEntryFromHash(ServiceStack.Redis.Generic.IRedisHash hash, TKey key) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveEntryFromHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, System.Threading.CancellationToken token) => throw null; - public System.Int64 RemoveItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, T value, int noOfMatches) => throw null; - public System.Int64 RemoveItemFromList(ServiceStack.Redis.Generic.IRedisList fromList, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, int noOfMatches, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveItemFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, T value, System.Threading.CancellationToken token) => throw null; - public void RemoveItemFromSet(ServiceStack.Redis.Generic.IRedisSet fromSet, T item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveItemFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync fromSet, T item, System.Threading.CancellationToken token) => throw null; - public bool RemoveItemFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet fromSet, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveItemFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync fromSet, T value, System.Threading.CancellationToken token) => throw null; - public System.Int64 RemoveRangeFromSortedSet(ServiceStack.Redis.Generic.IRedisSortedSet set, int minRank, int maxRank) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveRangeFromSortedSetAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, int minRank, int maxRank, System.Threading.CancellationToken token) => throw null; - public System.Int64 RemoveRangeFromSortedSetByScore(ServiceStack.Redis.Generic.IRedisSortedSet set, double fromScore, double toScore) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveRangeFromSortedSetByScoreAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, double fromScore, double toScore, System.Threading.CancellationToken token) => throw null; - public T RemoveStartFromList(ServiceStack.Redis.Generic.IRedisList fromList) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.RemoveStartFromListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, System.Threading.CancellationToken token) => throw null; - public void ResetSendBuffer() => throw null; - public void Save() => throw null; - public void SaveAsync() => throw null; - public T[] SearchKeys(string pattern) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SearchKeysAsync(string pattern, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SelectAsync(System.Int64 db, System.Threading.CancellationToken token) => throw null; - public string SequenceKey { get => throw null; set => throw null; } - public System.Byte[] SerializeValue(T value) => throw null; - public bool SetContainsItem(ServiceStack.Redis.Generic.IRedisSet set, T item) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetContainsItemAsync(ServiceStack.Redis.Generic.IRedisSetAsync set, T item, System.Threading.CancellationToken token) => throw null; - public bool SetEntryInHash(ServiceStack.Redis.Generic.IRedisHash hash, TKey key, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetEntryInHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, T value, System.Threading.CancellationToken token) => throw null; - public bool SetEntryInHashIfNotExists(ServiceStack.Redis.Generic.IRedisHash hash, TKey key, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetEntryInHashIfNotExistsAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, TKey key, T value, System.Threading.CancellationToken token) => throw null; - public void SetItemInList(ServiceStack.Redis.Generic.IRedisList toList, int listIndex, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetItemInListAsync(ServiceStack.Redis.Generic.IRedisListAsync toList, int listIndex, T value, System.Threading.CancellationToken token) => throw null; - public void SetRangeInHash(ServiceStack.Redis.Generic.IRedisHash hash, System.Collections.Generic.IEnumerable> keyValuePairs) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetRangeInHashAsync(ServiceStack.Redis.Generic.IRedisHashAsync hash, System.Collections.Generic.IEnumerable> keyValuePairs, System.Threading.CancellationToken token) => throw null; - public void SetSequence(int value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetSequenceAsync(int value, System.Threading.CancellationToken token) => throw null; - public void SetValue(string key, T entity, System.TimeSpan expireIn) => throw null; - public void SetValue(string key, T entity) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetValueAsync(string key, T entity, System.TimeSpan expireIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetValueAsync(string key, T entity, System.Threading.CancellationToken token) => throw null; - public bool SetValueIfExists(string key, T entity) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetValueIfExistsAsync(string key, T entity, System.Threading.CancellationToken token) => throw null; - public bool SetValueIfNotExists(string key, T entity) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SetValueIfNotExistsAsync(string key, T entity, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Model.IHasNamed> Sets { get => throw null; set => throw null; } - ServiceStack.Model.IHasNamed> ServiceStack.Redis.Generic.IRedisTypedClientAsync.Sets { get => throw null; } - public System.Collections.Generic.List SortList(ServiceStack.Redis.Generic.IRedisList fromList, int startingFrom, int endingAt) => throw null; - System.Threading.Tasks.ValueTask> ServiceStack.Redis.Generic.IRedisTypedClientAsync.SortListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int startingFrom, int endingAt, System.Threading.CancellationToken token) => throw null; - public bool SortedSetContainsItem(ServiceStack.Redis.Generic.IRedisSortedSet set, T value) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.SortedSetContainsItemAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync set, T value, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Model.IHasNamed> SortedSets { get => throw null; set => throw null; } - ServiceStack.Model.IHasNamed> ServiceStack.Redis.Generic.IRedisTypedClientAsync.SortedSets { get => throw null; } - public T Store(T entity, System.TimeSpan expireIn) => throw null; - public T Store(T entity) => throw null; - public void StoreAll(System.Collections.Generic.IEnumerable entities) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.StoreAllAsync(System.Collections.Generic.IEnumerable entities, System.Threading.CancellationToken token) => throw null; - public void StoreAsHash(T entity) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreAsHashAsync(T entity, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreAsync(T entity, System.TimeSpan expireIn, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.Task ServiceStack.Data.IEntityStoreAsync.StoreAsync(T entity, System.Threading.CancellationToken token) => throw null; - public void StoreDifferencesFromSet(ServiceStack.Redis.Generic.IRedisSet intoSet, ServiceStack.Redis.Generic.IRedisSet fromSet, params ServiceStack.Redis.Generic.IRedisSet[] withSets) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync fromSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] withSets) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreDifferencesFromSetAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync fromSet, ServiceStack.Redis.Generic.IRedisSetAsync[] withSets, System.Threading.CancellationToken token) => throw null; - public void StoreIntersectFromSets(ServiceStack.Redis.Generic.IRedisSet intoSet, params ServiceStack.Redis.Generic.IRedisSet[] sets) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreIntersectFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] sets) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreIntersectFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token) => throw null; - public System.Int64 StoreIntersectFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds) => throw null; - public System.Int64 StoreIntersectFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreIntersectFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreIntersectFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreIntersectFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token) => throw null; - public void StoreRelatedEntities(object parentId, params TChild[] children) => throw null; - public void StoreRelatedEntities(object parentId, System.Collections.Generic.List children) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreRelatedEntitiesAsync(object parentId, params TChild[] children) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreRelatedEntitiesAsync(object parentId, TChild[] children, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreRelatedEntitiesAsync(object parentId, System.Collections.Generic.List children, System.Threading.CancellationToken token) => throw null; - public void StoreUnionFromSets(ServiceStack.Redis.Generic.IRedisSet intoSet, params ServiceStack.Redis.Generic.IRedisSet[] sets) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreUnionFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, params ServiceStack.Redis.Generic.IRedisSetAsync[] sets) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreUnionFromSetsAsync(ServiceStack.Redis.Generic.IRedisSetAsync intoSet, ServiceStack.Redis.Generic.IRedisSetAsync[] sets, System.Threading.CancellationToken token) => throw null; - public System.Int64 StoreUnionFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSet[] setIds) => throw null; - public System.Int64 StoreUnionFromSortedSets(ServiceStack.Redis.Generic.IRedisSortedSet intoSetId, ServiceStack.Redis.Generic.IRedisSortedSet[] setIds, string[] args) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreUnionFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, params ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreUnionFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, string[] args, System.Threading.CancellationToken token) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.StoreUnionFromSortedSetsAsync(ServiceStack.Redis.Generic.IRedisSortedSetAsync intoSetId, ServiceStack.Redis.Generic.IRedisSortedSetAsync[] setIds, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.IRedisTransactionBase Transaction { get => throw null; set => throw null; } - public void TrimList(ServiceStack.Redis.Generic.IRedisList fromList, int keepStartingFrom, int keepEndingAt) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Generic.IRedisTypedClientAsync.TrimListAsync(ServiceStack.Redis.Generic.IRedisListAsync fromList, int keepStartingFrom, int keepEndingAt, System.Threading.CancellationToken token) => throw null; - public ServiceStack.Redis.IRedisSet TypeIdsSet { get => throw null; } - ServiceStack.Redis.IRedisSetAsync ServiceStack.Redis.Generic.IRedisTypedClientAsync.TypeIdsSet { get => throw null; } - public string TypeIdsSetKey { get => throw null; set => throw null; } - public string TypeLockKey { get => throw null; set => throw null; } - public void UnWatch() => throw null; - public string UrnKey(T entity) => throw null; - public void Watch(params string[] keys) => throw null; - } - - // Generated from `ServiceStack.Redis.Generic.RedisTypedCommandQueue<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisTypedCommandQueue : ServiceStack.Redis.RedisQueueCompletableOperation - { - public void QueueCommand(System.Func, string> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, string> command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func, string> command) => throw null; - public void QueueCommand(System.Func, int> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, int> command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func, int> command) => throw null; - public void QueueCommand(System.Func, double> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, double> command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func, double> command) => throw null; - public void QueueCommand(System.Func, bool> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, bool> command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func, bool> command) => throw null; - public void QueueCommand(System.Func, T> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, T> command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func, T> command) => throw null; - public void QueueCommand(System.Func, System.Int64> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, System.Int64> command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func, System.Int64> command) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.List> command) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.List> command, System.Action> onSuccessCallback) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.List> command) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.HashSet> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.HashSet> command, System.Action> onSuccessCallback) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.HashSet> command) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.HashSet> command, System.Action> onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.HashSet> command, System.Action> onSuccessCallback) => throw null; - public void QueueCommand(System.Func, System.Collections.Generic.HashSet> command) => throw null; - public void QueueCommand(System.Func, System.Byte[][]> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, System.Byte[][]> command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func, System.Byte[][]> command) => throw null; - public void QueueCommand(System.Func, System.Byte[]> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Func, System.Byte[]> command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Func, System.Byte[]> command) => throw null; - public void QueueCommand(System.Action> command, System.Action onSuccessCallback, System.Action onErrorCallback) => throw null; - public void QueueCommand(System.Action> command, System.Action onSuccessCallback) => throw null; - public void QueueCommand(System.Action> command) => throw null; - internal RedisTypedCommandQueue(ServiceStack.Redis.Generic.RedisTypedClient redisClient) => throw null; - } - - } - namespace Pipeline - { - // Generated from `ServiceStack.Redis.Pipeline.RedisPipelineCommand` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisPipelineCommand - { - public void Flush() => throw null; - public System.Collections.Generic.List ReadAllAsInts() => throw null; - public bool ReadAllAsIntsHaveSuccess() => throw null; - public RedisPipelineCommand(ServiceStack.Redis.RedisNativeClient client) => throw null; - public void WriteCommand(params System.Byte[][] cmdWithBinaryArgs) => throw null; - } - - } - namespace Support - { - // Generated from `ServiceStack.Redis.Support.ConsistentHash<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConsistentHash - { - public void AddTarget(T node, int weight) => throw null; - public ConsistentHash(System.Collections.Generic.IEnumerable> nodes, System.Func hashFunction) => throw null; - public ConsistentHash(System.Collections.Generic.IEnumerable> nodes) => throw null; - public ConsistentHash() => throw null; - public T GetTarget(string key) => throw null; - public static System.UInt64 Md5Hash(string key) => throw null; - public static System.UInt64 ModifiedBinarySearch(System.UInt64[] sortedArray, System.UInt64 val) => throw null; - } - - // Generated from `ServiceStack.Redis.Support.IOrderedDictionary<,>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOrderedDictionary : System.Collections.Specialized.IOrderedDictionary, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.ICollection, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> - { - int Add(TKey key, TValue value); - void Insert(int index, TKey key, TValue value); - TValue this[int index] { get; set; } - } - - // Generated from `ServiceStack.Redis.Support.ISerializer` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISerializer - { - object Deserialize(System.Byte[] someBytes); - System.Byte[] Serialize(object value); - } - - // Generated from `ServiceStack.Redis.Support.ObjectSerializer` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ObjectSerializer : ServiceStack.Redis.Support.ISerializer - { - public virtual object Deserialize(System.Byte[] someBytes) => throw null; - public ObjectSerializer() => throw null; - public virtual System.Byte[] Serialize(object value) => throw null; - protected System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf; - } - - // Generated from `ServiceStack.Redis.Support.OptimizedObjectSerializer` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OptimizedObjectSerializer : ServiceStack.Redis.Support.ObjectSerializer - { - public override object Deserialize(System.Byte[] someBytes) => throw null; - public OptimizedObjectSerializer() => throw null; - public override System.Byte[] Serialize(object value) => throw null; - } - - // Generated from `ServiceStack.Redis.Support.OrderedDictionary<,>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrderedDictionary : System.Collections.Specialized.IOrderedDictionary, System.Collections.IEnumerable, System.Collections.IDictionary, System.Collections.ICollection, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, ServiceStack.Redis.Support.IOrderedDictionary - { - void System.Collections.IDictionary.Add(object key, object value) => throw null; - void System.Collections.Generic.IDictionary.Add(TKey key, TValue value) => throw null; - void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair item) => throw null; - public int Add(TKey key, TValue value) => throw null; - public void Clear() => throw null; - bool System.Collections.IDictionary.Contains(object key) => throw null; - bool System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair item) => 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; } - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - System.Collections.IDictionaryEnumerator System.Collections.Specialized.IOrderedDictionary.GetEnumerator() => throw null; - System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null; - System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() => throw null; - public int IndexOfKey(TKey key) => throw null; - void System.Collections.Specialized.IOrderedDictionary.Insert(int index, object key, object value) => throw null; - public void Insert(int index, TKey key, TValue value) => throw null; - bool System.Collections.IDictionary.IsFixedSize { get => throw null; } - public bool IsReadOnly { get => throw null; } - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public TValue this[int index] { get => throw null; set => throw null; } - public TValue this[TKey key] { get => throw null; set => throw null; } - object System.Collections.Specialized.IOrderedDictionary.this[int index] { get => throw null; set => throw null; } - object System.Collections.IDictionary.this[object key] { get => throw null; set => throw null; } - public System.Collections.Generic.ICollection Keys { get => throw null; } - System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; } - public OrderedDictionary(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public OrderedDictionary(int capacity) => throw null; - public OrderedDictionary(System.Collections.Generic.IEqualityComparer comparer) => throw null; - public OrderedDictionary() => throw null; - void System.Collections.IDictionary.Remove(object key) => throw null; - public bool Remove(TKey key) => throw null; - bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair item) => throw null; - public void RemoveAt(int index) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - public bool TryGetValue(TKey key, out TValue value) => throw null; - public System.Collections.Generic.ICollection Values { get => throw null; } - System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; } - } - - // Generated from `ServiceStack.Redis.Support.RedisNamespace` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisNamespace - { - public System.Int64 GetGeneration() => throw null; - public string GetGenerationKey() => throw null; - public string GetGlobalKeysKey() => throw null; - public string GlobalCacheKey(object key) => throw null; - public string GlobalKey(object key, int numUniquePrefixes) => throw null; - public string GlobalLockKey(object key) => throw null; - public const string KeyTag = default; - public ServiceStack.Redis.Support.Locking.ILockingStrategy LockingStrategy { get => throw null; set => throw null; } - public const string NamespaceTag = default; - public const string NamespacesGarbageKey = default; - public const int NumTagsForKey = default; - public const int NumTagsForLockKey = default; - public RedisNamespace(string name) => throw null; - public void SetGeneration(System.Int64 generation) => throw null; - } - - // Generated from `ServiceStack.Redis.Support.SerializedObjectWrapper` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct SerializedObjectWrapper - { - public System.ArraySegment Data { get => throw null; set => throw null; } - public System.UInt16 Flags { get => throw null; set => throw null; } - public SerializedObjectWrapper(System.UInt16 flags, System.ArraySegment data) => throw null; - // Stub generator skipped constructor - } - - namespace Diagnostic - { - // Generated from `ServiceStack.Redis.Support.Diagnostic.InvokeEventArgs` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InvokeEventArgs : System.EventArgs - { - public InvokeEventArgs(System.Reflection.MethodInfo methodInfo) => throw null; - public System.Reflection.MethodInfo MethodInfo { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Redis.Support.Diagnostic.TrackingFrame` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TrackingFrame : System.IEquatable - { - public override bool Equals(object obj) => throw null; - public bool Equals(ServiceStack.Redis.Support.Diagnostic.TrackingFrame other) => throw null; - public override int GetHashCode() => throw null; - public System.Guid Id { get => throw null; set => throw null; } - public System.DateTime Initialised { get => throw null; set => throw null; } - public System.Type ProvidedToInstanceOfType { get => throw null; set => throw null; } - public TrackingFrame() => throw null; - } - - } - namespace Locking - { - // Generated from `ServiceStack.Redis.Support.Locking.DisposableDistributedLock` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DisposableDistributedLock : System.IDisposable - { - public DisposableDistributedLock(ServiceStack.Redis.IRedisClient client, string globalLockKey, int acquisitionTimeout, int lockTimeout) => throw null; - public void Dispose() => throw null; - public System.Int64 LockExpire { get => throw null; } - public System.Int64 LockState { get => throw null; } - } - - // Generated from `ServiceStack.Redis.Support.Locking.DistributedLock` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DistributedLock : ServiceStack.Redis.Support.Locking.IDistributedLockAsync, ServiceStack.Redis.Support.Locking.IDistributedLock - { - public ServiceStack.Redis.Support.Locking.IDistributedLockAsync AsAsync() => throw null; - public DistributedLock() => throw null; - public const int LOCK_ACQUIRED = default; - public const int LOCK_NOT_ACQUIRED = default; - public const int LOCK_RECOVERED = default; - public virtual System.Int64 Lock(string key, int acquisitionTimeout, int lockTimeout, out System.Int64 lockExpire, ServiceStack.Redis.IRedisClient client) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Support.Locking.IDistributedLockAsync.LockAsync(string key, int acquisitionTimeout, int lockTimeout, ServiceStack.Redis.IRedisClientAsync client, System.Threading.CancellationToken token) => throw null; - public virtual bool Unlock(string key, System.Int64 lockExpire, ServiceStack.Redis.IRedisClient client) => throw null; - System.Threading.Tasks.ValueTask ServiceStack.Redis.Support.Locking.IDistributedLockAsync.UnlockAsync(string key, System.Int64 lockExpire, ServiceStack.Redis.IRedisClientAsync client, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.Redis.Support.Locking.IDistributedLock` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDistributedLock - { - System.Int64 Lock(string key, int acquisitionTimeout, int lockTimeout, out System.Int64 lockExpire, ServiceStack.Redis.IRedisClient client); - bool Unlock(string key, System.Int64 lockExpire, ServiceStack.Redis.IRedisClient client); - } - - // Generated from `ServiceStack.Redis.Support.Locking.IDistributedLockAsync` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDistributedLockAsync - { - System.Threading.Tasks.ValueTask LockAsync(string key, int acquisitionTimeout, int lockTimeout, ServiceStack.Redis.IRedisClientAsync client, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.ValueTask UnlockAsync(string key, System.Int64 lockExpire, ServiceStack.Redis.IRedisClientAsync client, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Redis.Support.Locking.ILockingStrategy` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILockingStrategy - { - System.IDisposable ReadLock(); - System.IDisposable WriteLock(); - } - - // Generated from `ServiceStack.Redis.Support.Locking.LockState` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct LockState - { - public void Deconstruct(out System.Int64 result, out System.Int64 expiration) => throw null; - public override bool Equals(object obj) => throw null; - public System.Int64 Expiration { get => throw null; } - public override int GetHashCode() => throw null; - public LockState(System.Int64 result, System.Int64 expiration) => throw null; - // Stub generator skipped constructor - public System.Int64 Result { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Redis.Support.Locking.NoLockingStrategy` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NoLockingStrategy : ServiceStack.Redis.Support.Locking.ILockingStrategy - { - public NoLockingStrategy() => throw null; - public System.IDisposable ReadLock() => throw null; - public System.IDisposable WriteLock() => throw null; - } - - // Generated from `ServiceStack.Redis.Support.Locking.ReadLock` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ReadLock : System.IDisposable - { - public void Dispose() => throw null; - public ReadLock(System.Threading.ReaderWriterLockSlim lockObject) => throw null; - } - - // Generated from `ServiceStack.Redis.Support.Locking.ReaderWriterLockingStrategy` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ReaderWriterLockingStrategy : ServiceStack.Redis.Support.Locking.ILockingStrategy - { - public System.IDisposable ReadLock() => throw null; - public ReaderWriterLockingStrategy() => throw null; - public System.IDisposable WriteLock() => throw null; - } - - // Generated from `ServiceStack.Redis.Support.Locking.WriteLock` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class WriteLock : System.IDisposable - { - public void Dispose() => throw null; - public WriteLock(System.Threading.ReaderWriterLockSlim lockObject) => throw null; - } - - } - namespace Queue - { - // Generated from `ServiceStack.Redis.Support.Queue.IChronologicalWorkQueue<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IChronologicalWorkQueue : System.IDisposable where T : class - { - System.Collections.Generic.IList> Dequeue(double minTime, double maxTime, int maxBatchSize); - void Enqueue(string workItemId, T workItem, double time); - } - - // Generated from `ServiceStack.Redis.Support.Queue.ISequentialData<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISequentialData - { - string DequeueId { get; } - System.Collections.Generic.IList DequeueItems { get; } - void DoneProcessedWorkItem(); - void PopAndUnlock(); - void UpdateNextUnprocessed(T newWorkItem); - } - - // Generated from `ServiceStack.Redis.Support.Queue.ISequentialWorkQueue<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISequentialWorkQueue : System.IDisposable where T : class - { - ServiceStack.Redis.Support.Queue.ISequentialData Dequeue(int maxBatchSize); - void Enqueue(string workItemId, T workItem); - bool HarvestZombies(); - bool PrepareNextWorkItem(); - void Update(string workItemId, int index, T newWorkItem); - } - - // Generated from `ServiceStack.Redis.Support.Queue.ISimpleWorkQueue<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISimpleWorkQueue : System.IDisposable where T : class - { - System.Collections.Generic.IList Dequeue(int maxBatchSize); - void Enqueue(T workItem); - } - - namespace Implementation - { - // Generated from `ServiceStack.Redis.Support.Queue.Implementation.RedisChronologicalWorkQueue<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisChronologicalWorkQueue : ServiceStack.Redis.Support.Queue.Implementation.RedisWorkQueue, System.IDisposable, ServiceStack.Redis.Support.Queue.IChronologicalWorkQueue where T : class - { - public System.Collections.Generic.IList> Dequeue(double minTime, double maxTime, int maxBatchSize) => throw null; - public void Enqueue(string workItemId, T workItem, double time) => throw null; - public RedisChronologicalWorkQueue(int maxReadPoolSize, int maxWritePoolSize, string host, int port, string queueName) : base(default(int), default(int), default(string), default(int)) => throw null; - public RedisChronologicalWorkQueue(int maxReadPoolSize, int maxWritePoolSize, string host, int port) : base(default(int), default(int), default(string), default(int)) => throw null; - } - - // Generated from `ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisSequentialWorkQueue : ServiceStack.Redis.Support.Queue.Implementation.RedisWorkQueue, System.IDisposable, ServiceStack.Redis.Support.Queue.ISequentialWorkQueue where T : class - { - protected const double CONVENIENTLY_SIZED_FLOAT = default; - public ServiceStack.Redis.Support.Queue.ISequentialData Dequeue(int maxBatchSize) => throw null; - // Generated from `ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue<>+DequeueManager` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DequeueManager - { - public DequeueManager(ServiceStack.Redis.PooledRedisClientManager clientManager, ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue workQueue, string workItemId, string dequeueLockKey, int numberOfDequeuedItems, int dequeueLockTimeout) => throw null; - public void DoneProcessedWorkItem() => throw null; - public System.Int64 Lock(int acquisitionTimeout, ServiceStack.Redis.IRedisClient client) => throw null; - public bool PopAndUnlock(int numProcessed, ServiceStack.Redis.IRedisClient client) => throw null; - public bool PopAndUnlock(int numProcessed) => throw null; - public bool Unlock(ServiceStack.Redis.IRedisClient client) => throw null; - public void UpdateNextUnprocessed(T newWorkItem) => throw null; - protected ServiceStack.Redis.PooledRedisClientManager clientManager; - protected int numberOfDequeuedItems; - protected int numberOfProcessedItems; - protected string workItemId; - protected ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue workQueue; - } - - - public void Enqueue(string workItemId, T workItem) => throw null; - public bool HarvestZombies() => throw null; - public bool PrepareNextWorkItem() => throw null; - public RedisSequentialWorkQueue(int maxReadPoolSize, int maxWritePoolSize, string host, int port, string queueName, int dequeueLockTimeout) : base(default(int), default(int), default(string), default(int)) => throw null; - public RedisSequentialWorkQueue(int maxReadPoolSize, int maxWritePoolSize, string host, int port, int dequeueLockTimeout) : base(default(int), default(int), default(string), default(int)) => throw null; - public bool TryForceReleaseLock(ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient client, string workItemId) => throw null; - public void Update(string workItemId, int index, T newWorkItem) => throw null; - } - - // Generated from `ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisSimpleWorkQueue : ServiceStack.Redis.Support.Queue.Implementation.RedisWorkQueue, System.IDisposable, ServiceStack.Redis.Support.Queue.ISimpleWorkQueue where T : class - { - public System.Collections.Generic.IList Dequeue(int maxBatchSize) => throw null; - public void Enqueue(T msg) => throw null; - public RedisSimpleWorkQueue(int maxReadPoolSize, int maxWritePoolSize, string host, int port, string queueName) : base(default(int), default(int), default(string), default(int)) => throw null; - public RedisSimpleWorkQueue(int maxReadPoolSize, int maxWritePoolSize, string host, int port) : base(default(int), default(int), default(string), default(int)) => throw null; - } - - // Generated from `ServiceStack.Redis.Support.Queue.Implementation.RedisWorkQueue<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisWorkQueue - { - public void Dispose() => throw null; - public RedisWorkQueue(int maxReadPoolSize, int maxWritePoolSize, string host, int port, string queueName) => throw null; - public RedisWorkQueue(int maxReadPoolSize, int maxWritePoolSize, string host, int port) => throw null; - protected ServiceStack.Redis.PooledRedisClientManager clientManager; - protected string pendingWorkItemIdQueue; - protected ServiceStack.Redis.Support.RedisNamespace queueNamespace; - protected string workQueue; - } - - // Generated from `ServiceStack.Redis.Support.Queue.Implementation.SequentialData<>` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SequentialData : ServiceStack.Redis.Support.Queue.ISequentialData where T : class - { - public string DequeueId { get => throw null; } - public System.Collections.Generic.IList DequeueItems { get => throw null; } - public void DoneProcessedWorkItem() => throw null; - public void PopAndUnlock() => throw null; - public SequentialData(string dequeueId, System.Collections.Generic.IList _dequeueItems, ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue.DequeueManager _dequeueManager) => throw null; - public void UpdateNextUnprocessed(T newWorkItem) => throw null; - } - - // Generated from `ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient` in `ServiceStack.Redis, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SerializingRedisClient : ServiceStack.Redis.RedisClient - { - public object Deserialize(System.Byte[] someBytes) => throw null; - public System.Collections.IList Deserialize(System.Byte[][] byteArray) => throw null; - public System.Collections.Generic.List Serialize(object[] values) => throw null; - public System.Byte[] Serialize(object value) => throw null; - public ServiceStack.Redis.Support.ISerializer Serializer { set => throw null; } - public SerializingRedisClient(string host, int port) => throw null; - public SerializingRedisClient(string host) => throw null; - public SerializingRedisClient(ServiceStack.Redis.RedisEndpoint config) => throw null; - } - - } - } - } - } -} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.csproj deleted file mode 100644 index d9ae08d3e14..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Redis/5.11.0/ServiceStack.Redis.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.cs b/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.cs deleted file mode 100644 index cd1918ac454..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.cs +++ /dev/null @@ -1,3867 +0,0 @@ -// This file contains auto-generated code. - -namespace ServiceStack -{ - // Generated from `ServiceStack.AssignmentEntry` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AssignmentEntry - { - public AssignmentEntry(string name, ServiceStack.AssignmentMember from, ServiceStack.AssignmentMember to) => throw null; - public ServiceStack.GetMemberDelegate ConvertValueFn; - public ServiceStack.AssignmentMember From; - public ServiceStack.GetMemberDelegate GetValueFn; - public string Name; - public ServiceStack.SetMemberDelegate SetValueFn; - public ServiceStack.AssignmentMember To; - } - - // Generated from `ServiceStack.AssignmentMember` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AssignmentMember - { - public AssignmentMember(System.Type type, System.Reflection.PropertyInfo propertyInfo) => throw null; - public AssignmentMember(System.Type type, System.Reflection.MethodInfo methodInfo) => throw null; - public AssignmentMember(System.Type type, System.Reflection.FieldInfo fieldInfo) => throw null; - public ServiceStack.GetMemberDelegate CreateGetter() => throw null; - public ServiceStack.SetMemberDelegate CreateSetter() => throw null; - public System.Reflection.FieldInfo FieldInfo; - public System.Reflection.MethodInfo MethodInfo; - public System.Reflection.PropertyInfo PropertyInfo; - public System.Type Type; - } - - // Generated from `ServiceStack.AutoMapping` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AutoMapping - { - public static void IgnoreMapping() => throw null; - public static void IgnoreMapping(System.Type fromType, System.Type toType) => throw null; - public static void RegisterConverter(System.Func converter) => throw null; - public static void RegisterPopulator(System.Action populator) => throw null; - } - - // Generated from `ServiceStack.AutoMappingUtils` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AutoMappingUtils - { - public static bool CanCast(System.Type toType, System.Type fromType) => throw null; - public static object ChangeTo(this string strValue, System.Type type) => throw null; - public static object ChangeValueType(object from, System.Type toType) => throw null; - public static object ConvertTo(this object from, System.Type toType, bool skipConverters) => throw null; - public static object ConvertTo(this object from, System.Type toType) => throw null; - public static T ConvertTo(this object from, bool skipConverters) => throw null; - public static T ConvertTo(this object from, T defaultValue) => throw null; - public static T ConvertTo(this object from) => throw null; - public static T CreateCopy(this T from) => throw null; - public static object CreateDefaultValue(System.Type type, System.Collections.Generic.Dictionary recursionInfo) => throw null; - public static object[] CreateDefaultValues(System.Collections.Generic.IEnumerable types, System.Collections.Generic.Dictionary recursionInfo) => throw null; - public static string GetAssemblyPath(this System.Type source) => throw null; - public static ServiceStack.GetMemberDelegate GetConverter(System.Type fromType, System.Type toType) => throw null; - public static object GetDefaultValue(this System.Type type) => throw null; - public static System.Reflection.MethodInfo GetExplicitCastMethod(System.Type fromType, System.Type toType) => throw null; - public static System.Reflection.MethodInfo GetImplicitCastMethod(System.Type fromType, System.Type toType) => throw null; - public static ServiceStack.PopulateMemberDelegate GetPopulator(System.Type targetType, System.Type sourceType) => throw null; - public static object GetProperty(this System.Reflection.PropertyInfo propertyInfo, object obj) => throw null; - public static System.Collections.Generic.IEnumerable> GetPropertyAttributes(System.Type fromType) => throw null; - public static System.Collections.Generic.List GetPropertyNames(this System.Type type) => throw null; - public static bool IsDebugBuild(this System.Reflection.Assembly assembly) => throw null; - public static bool IsDefaultValue(object value, System.Type valueType) => throw null; - public static bool IsDefaultValue(object value) => throw null; - public static bool IsUnsettableValue(System.Reflection.FieldInfo fieldInfo, System.Reflection.PropertyInfo propertyInfo) => throw null; - public static System.Array PopulateArray(System.Type type, System.Collections.Generic.Dictionary recursionInfo) => throw null; - public static To PopulateFromPropertiesWithAttribute(this To to, From from, System.Type attributeType) => throw null; - public static To PopulateFromPropertiesWithoutAttribute(this To to, From from, System.Type attributeType) => throw null; - public static object PopulateWith(object obj) => throw null; - public static To PopulateWith(this To to, From from) => throw null; - public static To PopulateWithNonDefaultValues(this To to, From from) => throw null; - public static void Reset() => throw null; - public static void SetGenericCollection(System.Type realizedListType, object genericObj, System.Collections.Generic.Dictionary recursionInfo) => throw null; - public static void SetProperty(this System.Reflection.PropertyInfo propertyInfo, object obj, object value) => throw null; - public static void SetValue(System.Reflection.FieldInfo fieldInfo, System.Reflection.PropertyInfo propertyInfo, object obj, object value) => throw null; - public static bool ShouldIgnoreMapping(System.Type fromType, System.Type toType) => throw null; - public static To ThenDo(this To to, System.Action fn) => throw null; - public static object TryConvertCollections(System.Type fromType, System.Type toType, object fromValue) => throw null; - } - - // Generated from `ServiceStack.CollectionExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CollectionExtensions - { - public static object Convert(object objCollection, System.Type toCollectionType) => throw null; - public static System.Collections.Generic.ICollection CreateAndPopulate(System.Type ofCollectionType, T[] withItems) => throw null; - public static T[] ToArray(this System.Collections.Generic.ICollection collection) => throw null; - } - - // Generated from `ServiceStack.CompressionTypes` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CompressionTypes - { - public static string[] AllCompressionTypes; - public static void AssertIsValid(string compressionType) => throw null; - public const string Default = default; - public const string Deflate = default; - public const string GZip = default; - public static string GetExtension(string compressionType) => throw null; - public static bool IsValid(string compressionType) => throw null; - } - - // Generated from `ServiceStack.CustomHttpResult` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomHttpResult - { - public CustomHttpResult() => throw null; - } - - // Generated from `ServiceStack.Defer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct Defer : System.IDisposable - { - public Defer(System.Action fn) => throw null; - // Stub generator skipped constructor - public void Dispose() => throw null; - } - - // Generated from `ServiceStack.DeserializeDynamic<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeDynamic where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static ServiceStack.Text.Common.ParseStringDelegate Parse { get => throw null; } - public static System.Dynamic.IDynamicMetaObjectProvider ParseDynamic(string value) => throw null; - public static System.Dynamic.IDynamicMetaObjectProvider ParseDynamic(System.ReadOnlySpan value) => throw null; - public static ServiceStack.Text.Common.ParseStringSpanDelegate ParseStringSpan { get => throw null; } - } - - // Generated from `ServiceStack.DynamicByte` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicByte : ServiceStack.IDynamicNumber - { - public System.Byte Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicByte() => throw null; - public static ServiceStack.DynamicByte Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicDecimal` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicDecimal : ServiceStack.IDynamicNumber - { - public System.Decimal Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicDecimal() => throw null; - public static ServiceStack.DynamicDecimal Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicDouble` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicDouble : ServiceStack.IDynamicNumber - { - public double Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicDouble() => throw null; - public static ServiceStack.DynamicDouble Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicFloat` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicFloat : ServiceStack.IDynamicNumber - { - public float Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicFloat() => throw null; - public static ServiceStack.DynamicFloat Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicInt` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicInt : ServiceStack.IDynamicNumber - { - public int Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicInt() => throw null; - public static ServiceStack.DynamicInt Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicJson` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicJson : System.Dynamic.DynamicObject - { - public static dynamic Deserialize(string json) => throw null; - public DynamicJson(System.Collections.Generic.IEnumerable> hash) => throw null; - public static string Serialize(dynamic instance) => throw null; - public override string ToString() => throw null; - public override bool TryGetMember(System.Dynamic.GetMemberBinder binder, out object result) => throw null; - public override bool TrySetMember(System.Dynamic.SetMemberBinder binder, object value) => throw null; - } - - // Generated from `ServiceStack.DynamicLong` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicLong : ServiceStack.IDynamicNumber - { - public System.Int64 Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicLong() => throw null; - public static ServiceStack.DynamicLong Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicNumber` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DynamicNumber - { - public static object Add(object lhs, object rhs) => throw null; - public static ServiceStack.IDynamicNumber AssertNumbers(string name, object lhs, object rhs) => throw null; - public static object BitwiseAnd(object lhs, object rhs) => throw null; - public static object BitwiseLeftShift(object lhs, object rhs) => throw null; - public static object BitwiseNot(object lhs) => throw null; - public static object BitwiseOr(object lhs, object rhs) => throw null; - public static object BitwiseRightShift(object lhs, object rhs) => throw null; - public static object BitwiseXOr(object lhs, object rhs) => throw null; - public static int CompareTo(object lhs, object rhs) => throw null; - public static object Div(object lhs, object rhs) => throw null; - public static object Divide(object lhs, object rhs) => throw null; - public static ServiceStack.IDynamicNumber Get(object obj) => throw null; - public static ServiceStack.IDynamicNumber GetNumber(object lhs, object rhs) => throw null; - public static ServiceStack.IDynamicNumber GetNumber(System.Type type) => throw null; - public static bool IsNumber(System.Type type) => throw null; - public static object Log(object lhs, object rhs) => throw null; - public static object Max(object lhs, object rhs) => throw null; - public static object Min(object lhs, object rhs) => throw null; - public static object Mod(object lhs, object rhs) => throw null; - public static object Mul(object lhs, object rhs) => throw null; - public static object Multiply(object lhs, object rhs) => throw null; - public static object Pow(object lhs, object rhs) => throw null; - public static object Sub(object lhs, object rhs) => throw null; - public static object Subtract(object lhs, object rhs) => throw null; - public static bool TryGetRanking(System.Type type, out int ranking) => throw null; - public static bool TryParse(string strValue, out object result) => throw null; - public static bool TryParseIntoBestFit(string strValue, out object result) => throw null; - } - - // Generated from `ServiceStack.DynamicSByte` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicSByte : ServiceStack.IDynamicNumber - { - public System.SByte Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicSByte() => throw null; - public static ServiceStack.DynamicSByte Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicShort` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicShort : ServiceStack.IDynamicNumber - { - public System.Int16 Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicShort() => throw null; - public static ServiceStack.DynamicShort Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicUInt` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicUInt : ServiceStack.IDynamicNumber - { - public System.UInt32 Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicUInt() => throw null; - public static ServiceStack.DynamicUInt Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicULong` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicULong : ServiceStack.IDynamicNumber - { - public System.UInt64 Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicULong() => throw null; - public static ServiceStack.DynamicULong Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.DynamicUShort` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DynamicUShort : ServiceStack.IDynamicNumber - { - public System.UInt16 Convert(object value) => throw null; - public object ConvertFrom(object value) => throw null; - public object DefaultValue { get => throw null; } - public DynamicUShort() => throw null; - public static ServiceStack.DynamicUShort Instance; - public string ToString(object value) => throw null; - public bool TryParse(string str, out object result) => throw null; - public System.Type Type { get => throw null; } - public object add(object lhs, object rhs) => throw null; - public object bitwiseAnd(object lhs, object rhs) => throw null; - public object bitwiseLeftShift(object lhs, object rhs) => throw null; - public object bitwiseNot(object target) => throw null; - public object bitwiseOr(object lhs, object rhs) => throw null; - public object bitwiseRightShift(object lhs, object rhs) => throw null; - public object bitwiseXOr(object lhs, object rhs) => throw null; - public int compareTo(object lhs, object rhs) => throw null; - public object div(object lhs, object rhs) => throw null; - public object log(object lhs, object rhs) => throw null; - public object max(object lhs, object rhs) => throw null; - public object min(object lhs, object rhs) => throw null; - public object mod(object lhs, object rhs) => throw null; - public object mul(object lhs, object rhs) => throw null; - public object pow(object lhs, object rhs) => throw null; - public object sub(object lhs, object rhs) => throw null; - } - - // Generated from `ServiceStack.EmptyCtorDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object EmptyCtorDelegate(); - - // Generated from `ServiceStack.EmptyCtorFactoryDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate ServiceStack.EmptyCtorDelegate EmptyCtorFactoryDelegate(System.Type type); - - // Generated from `ServiceStack.FieldAccessor` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FieldAccessor - { - public FieldAccessor(System.Reflection.FieldInfo fieldInfo, ServiceStack.GetMemberDelegate publicGetter, ServiceStack.SetMemberDelegate publicSetter, ServiceStack.SetMemberRefDelegate publicSetterRef) => throw null; - public System.Reflection.FieldInfo FieldInfo { get => throw null; } - public ServiceStack.GetMemberDelegate PublicGetter { get => throw null; } - public ServiceStack.SetMemberDelegate PublicSetter { get => throw null; } - public ServiceStack.SetMemberRefDelegate PublicSetterRef { get => throw null; } - } - - // Generated from `ServiceStack.FieldInvoker` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class FieldInvoker - { - public static ServiceStack.GetMemberDelegate CreateGetter(this System.Reflection.FieldInfo fieldInfo) => throw null; - public static ServiceStack.GetMemberDelegate CreateGetter(this System.Reflection.FieldInfo fieldInfo) => throw null; - public static ServiceStack.SetMemberDelegate CreateSetter(this System.Reflection.FieldInfo fieldInfo) => throw null; - public static ServiceStack.SetMemberDelegate CreateSetter(this System.Reflection.FieldInfo fieldInfo) => throw null; - public static ServiceStack.SetMemberRefDelegate SetExpressionRef(this System.Reflection.FieldInfo fieldInfo) => throw null; - } - - // Generated from `ServiceStack.GetMemberDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object GetMemberDelegate(object instance); - - // Generated from `ServiceStack.GetMemberDelegate<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object GetMemberDelegate(T instance); - - // Generated from `ServiceStack.HttpHeaders` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpHeaders - { - public const string Accept = default; - public const string AcceptCharset = default; - public const string AcceptEncoding = default; - public const string AcceptLanguage = default; - public const string AcceptRanges = default; - public const string AccessControlMaxAge = default; - public const string Age = default; - public const string Allow = default; - public const string AllowCredentials = default; - public const string AllowHeaders = default; - public const string AllowMethods = default; - public const string AllowOrigin = default; - public const string Authorization = default; - public const string CacheControl = default; - public const string Connection = default; - public const string ContentDisposition = default; - public const string ContentEncoding = default; - public const string ContentLanguage = default; - public const string ContentLength = default; - public const string ContentRange = default; - public const string ContentType = default; - public const string Cookie = default; - public const string Date = default; - public const string ETag = default; - public const string Expect = default; - public const string Expires = default; - public const string ExposeHeaders = default; - public const string Host = default; - public const string IfMatch = default; - public const string IfModifiedSince = default; - public const string IfNoneMatch = default; - public const string IfUnmodifiedSince = default; - public const string LastModified = default; - public const string Location = default; - public const string Origin = default; - public const string Pragma = default; - public const string ProxyAuthenticate = default; - public const string ProxyAuthorization = default; - public const string ProxyConnection = default; - public const string Range = default; - public const string Referer = default; - public const string RequestHeaders = default; - public const string RequestMethod = default; - public static System.Collections.Generic.HashSet RestrictedHeaders; - public const string SOAPAction = default; - public const string SetCookie = default; - public const string SetCookie2 = default; - public const string TE = default; - public const string Trailer = default; - public const string TransferEncoding = default; - public const string Upgrade = default; - public const string UserAgent = default; - public const string Vary = default; - public const string Via = default; - public const string Warning = default; - public const string WwwAuthenticate = default; - public const string XAutoBatchCompleted = default; - public const string XForwardedFor = default; - public const string XForwardedPort = default; - public const string XForwardedProtocol = default; - public const string XHttpMethodOverride = default; - public const string XLocation = default; - public const string XParamOverridePrefix = default; - public const string XPoweredBy = default; - public const string XRealIp = default; - public const string XStatus = default; - public const string XTag = default; - public const string XTrigger = default; - public const string XUserAuthId = default; - } - - // Generated from `ServiceStack.HttpMethods` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpMethods - { - public static System.Collections.Generic.HashSet AllVerbs; - public const string Delete = default; - public static bool Exists(string httpMethod) => throw null; - public const string Get = default; - public static bool HasVerb(string httpVerb) => throw null; - public const string Head = default; - public const string Options = default; - public const string Patch = default; - public const string Post = default; - public const string Put = default; - } - - // Generated from `ServiceStack.HttpResultsFilter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpResultsFilter : System.IDisposable, ServiceStack.IHttpResultsFilter - { - public System.Byte[] BytesResult { get => throw null; set => throw null; } - public System.Func BytesResultFn { get => throw null; set => throw null; } - public void Dispose() => throw null; - public System.Byte[] GetBytes(System.Net.HttpWebRequest webReq, System.Byte[] reqBody) => throw null; - public string GetString(System.Net.HttpWebRequest webReq, string reqBody) => throw null; - public HttpResultsFilter(string stringResult = default(string), System.Byte[] bytesResult = default(System.Byte[])) => throw null; - public string StringResult { get => throw null; set => throw null; } - public System.Func StringResultFn { get => throw null; set => throw null; } - public System.Action UploadFileFn { get => throw null; set => throw null; } - public void UploadStream(System.Net.HttpWebRequest webRequest, System.IO.Stream fileStream, string fileName) => throw null; - } - - // Generated from `ServiceStack.HttpStatus` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpStatus - { - public static string GetStatusDescription(int statusCode) => throw null; - } - - // Generated from `ServiceStack.HttpUtils` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpUtils - { - public static string AddHashParam(this string url, string key, string val) => throw null; - public static string AddHashParam(this string url, string key, object val) => throw null; - public static string AddQueryParam(this string url, string key, string val, bool encode = default(bool)) => throw null; - public static string AddQueryParam(this string url, string key, object val, bool encode = default(bool)) => throw null; - public static string AddQueryParam(this string url, object key, string val, bool encode = default(bool)) => throw null; - public static System.Threading.Tasks.Task ConvertTo(this System.Threading.Tasks.Task task) where TDerived : TBase => throw null; - public static string DeleteFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task DeleteFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Byte[] GetBytesFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task GetBytesFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GetCsvFromUrl(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task GetCsvFromUrlAsync(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Net.HttpWebResponse GetErrorResponse(this string url) => throw null; - public static System.Threading.Tasks.Task GetErrorResponseAsync(this string url) => throw null; - public static string GetJsonFromUrl(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task GetJsonFromUrlAsync(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetRequestStreamAsync(this System.Net.WebRequest request) => throw null; - public static System.Threading.Tasks.Task GetRequestStreamAsync(this System.Net.HttpWebRequest request) => throw null; - public static System.Threading.Tasks.Task GetResponseAsync(this System.Net.WebRequest request) => throw null; - public static System.Threading.Tasks.Task GetResponseAsync(this System.Net.HttpWebRequest request) => throw null; - public static string GetResponseBody(this System.Exception ex) => throw null; - public static System.Threading.Tasks.Task GetResponseBodyAsync(this System.Exception ex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Net.HttpStatusCode? GetResponseStatus(this string url) => throw null; - public static System.Net.HttpStatusCode? GetStatus(this System.Net.WebException webEx) => throw null; - public static System.Net.HttpStatusCode? GetStatus(this System.Exception ex) => throw null; - public static System.IO.Stream GetStreamFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task GetStreamFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GetStringFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task GetStringFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GetXmlFromUrl(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task GetXmlFromUrlAsync(this string url, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static bool HasRequestBody(string httpMethod) => throw null; - public static bool HasStatus(this System.Exception ex, System.Net.HttpStatusCode statusCode) => throw null; - public static string HeadFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task HeadFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static bool IsAny300(this System.Exception ex) => throw null; - public static bool IsAny400(this System.Exception ex) => throw null; - public static bool IsAny500(this System.Exception ex) => throw null; - public static bool IsBadRequest(this System.Exception ex) => throw null; - public static bool IsForbidden(this System.Exception ex) => throw null; - public static bool IsInternalServerError(this System.Exception ex) => throw null; - public static bool IsNotFound(this System.Exception ex) => throw null; - public static bool IsNotModified(this System.Exception ex) => throw null; - public static bool IsUnauthorized(this System.Exception ex) => throw null; - public static string OptionsFromUrl(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task OptionsFromUrlAsync(this string url, string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PatchJsonToUrl(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PatchJsonToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PatchJsonToUrlAsync(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchJsonToUrlAsync(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PatchStringToUrl(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PatchStringToUrlAsync(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PatchToUrl(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PatchToUrl(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PatchToUrlAsync(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PatchToUrlAsync(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Byte[] PostBytesToUrl(this string url, System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PostBytesToUrlAsync(this string url, System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PostCsvToUrl(this string url, string csv, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PostCsvToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PostCsvToUrlAsync(this string url, string csv, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Net.WebResponse PostFileToUrl(this string url, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType, string accept = default(string), System.Action requestFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PostFileToUrlAsync(this string url, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PostJsonToUrl(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PostJsonToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PostJsonToUrlAsync(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostJsonToUrlAsync(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.IO.Stream PostStreamToUrl(this string url, System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PostStreamToUrlAsync(this string url, System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PostStringToUrl(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PostStringToUrlAsync(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PostToUrl(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PostToUrl(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PostToUrlAsync(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PostToUrlAsync(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PostXmlToUrl(this string url, string xml, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PostXmlToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PostXmlToUrlAsync(this string url, string xml, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Byte[] PutBytesToUrl(this string url, System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PutBytesToUrlAsync(this string url, System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PutCsvToUrl(this string url, string csv, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PutCsvToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PutCsvToUrlAsync(this string url, string csv, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Net.WebResponse PutFileToUrl(this string url, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType, string accept = default(string), System.Action requestFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PutFileToUrlAsync(this string url, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType, string accept = default(string), System.Action requestFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PutJsonToUrl(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PutJsonToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PutJsonToUrlAsync(this string url, string json, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutJsonToUrlAsync(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.IO.Stream PutStreamToUrl(this string url, System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PutStreamToUrlAsync(this string url, System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PutStringToUrl(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PutStringToUrlAsync(this string url, string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PutToUrl(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PutToUrl(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PutToUrlAsync(this string url, string formData = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task PutToUrlAsync(this string url, object formData = default(object), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string PutXmlToUrl(this string url, string xml, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static string PutXmlToUrl(this string url, object data, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task PutXmlToUrlAsync(this string url, string xml, System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.IEnumerable ReadLines(this System.Net.WebResponse webRes) => throw null; - public static string ReadToEnd(this System.Net.WebResponse webRes) => throw null; - public static System.Threading.Tasks.Task ReadToEndAsync(this System.Net.WebResponse webRes) => throw null; - public static ServiceStack.IHttpResultsFilter ResultsFilter; - public static System.Byte[] SendBytesToUrl(this string url, string method = default(string), System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task SendBytesToUrlAsync(this string url, string method = default(string), System.Byte[] requestBody = default(System.Byte[]), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.IO.Stream SendStreamToUrl(this string url, string method = default(string), System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task SendStreamToUrlAsync(this string url, string method = default(string), System.IO.Stream requestBody = default(System.IO.Stream), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string SendStringToUrl(this string url, string method = default(string), string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task SendStringToUrlAsync(this string url, string method = default(string), string requestBody = default(string), string contentType = default(string), string accept = default(string), System.Action requestFilter = default(System.Action), System.Action responseFilter = default(System.Action), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string SetHashParam(this string url, string key, string val) => throw null; - public static string SetQueryParam(this string url, string key, string val) => throw null; - public static void UploadFile(this System.Net.WebRequest webRequest, System.IO.Stream fileStream, string fileName, string mimeType, string accept = default(string), System.Action requestFilter = default(System.Action), string method = default(string), string field = default(string)) => throw null; - public static void UploadFile(this System.Net.WebRequest webRequest, System.IO.Stream fileStream, string fileName) => throw null; - public static System.Net.WebResponse UploadFile(this System.Net.WebRequest webRequest, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType) => throw null; - public static System.Threading.Tasks.Task UploadFileAsync(this System.Net.WebRequest webRequest, System.IO.FileInfo uploadFileInfo, string uploadFileMimeType) => throw null; - public static System.Threading.Tasks.Task UploadFileAsync(this System.Net.WebRequest webRequest, System.IO.Stream fileStream, string fileName, string mimeType, string accept = default(string), System.Action requestFilter = default(System.Action), string method = default(string), string field = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UploadFileAsync(this System.Net.WebRequest webRequest, System.IO.Stream fileStream, string fileName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Text.Encoding UseEncoding { get => throw null; set => throw null; } - public static string UserAgent; - } - - // Generated from `ServiceStack.IDynamicNumber` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDynamicNumber - { - object ConvertFrom(object value); - object DefaultValue { get; } - string ToString(object value); - bool TryParse(string str, out object result); - System.Type Type { get; } - object add(object lhs, object rhs); - object bitwiseAnd(object lhs, object rhs); - object bitwiseLeftShift(object lhs, object rhs); - object bitwiseNot(object target); - object bitwiseOr(object lhs, object rhs); - object bitwiseRightShift(object lhs, object rhs); - object bitwiseXOr(object lhs, object rhs); - int compareTo(object lhs, object rhs); - object div(object lhs, object rhs); - object log(object lhs, object rhs); - object max(object lhs, object rhs); - object min(object lhs, object rhs); - object mod(object lhs, object rhs); - object mul(object lhs, object rhs); - object pow(object lhs, object rhs); - object sub(object lhs, object rhs); - } - - // Generated from `ServiceStack.IHasStatusCode` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasStatusCode - { - int StatusCode { get; } - } - - // Generated from `ServiceStack.IHasStatusDescription` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasStatusDescription - { - string StatusDescription { get; } - } - - // Generated from `ServiceStack.IHttpResultsFilter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpResultsFilter : System.IDisposable - { - System.Byte[] GetBytes(System.Net.HttpWebRequest webReq, System.Byte[] reqBody); - string GetString(System.Net.HttpWebRequest webReq, string reqBody); - void UploadStream(System.Net.HttpWebRequest webRequest, System.IO.Stream fileStream, string fileName); - } - - // Generated from `ServiceStack.KeyValuePairs` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class KeyValuePairs : System.Collections.Generic.List> - { - public static System.Collections.Generic.KeyValuePair Create(string key, object value) => throw null; - public KeyValuePairs(int capacity) => throw null; - public KeyValuePairs(System.Collections.Generic.IEnumerable> collection) => throw null; - public KeyValuePairs() => throw null; - } - - // Generated from `ServiceStack.KeyValueStrings` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class KeyValueStrings : System.Collections.Generic.List> - { - public static System.Collections.Generic.KeyValuePair Create(string key, string value) => throw null; - public KeyValueStrings(int capacity) => throw null; - public KeyValueStrings(System.Collections.Generic.IEnumerable> collection) => throw null; - public KeyValueStrings() => throw null; - } - - // Generated from `ServiceStack.LicenseException` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LicenseException : System.Exception - { - public LicenseException(string message, System.Exception innerException) => throw null; - public LicenseException(string message) => throw null; - } - - // Generated from `ServiceStack.LicenseFeature` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum LicenseFeature - { - Admin, - All, - Aws, - AwsSku, - Client, - Common, - Free, - None, - OrmLite, - OrmLiteSku, - Premium, - Razor, - Redis, - RedisSku, - Server, - ServiceStack, - Text, - } - - // Generated from `ServiceStack.LicenseKey` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LicenseKey - { - public System.DateTime Expiry { get => throw null; set => throw null; } - public string Hash { get => throw null; set => throw null; } - public LicenseKey() => throw null; - public System.Int64 Meta { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string Ref { get => throw null; set => throw null; } - public ServiceStack.LicenseType Type { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.LicenseMeta` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum LicenseMeta - { - Cores, - None, - Subscription, - } - - // Generated from `ServiceStack.LicenseType` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum LicenseType - { - AwsBusiness, - AwsIndie, - Business, - Enterprise, - Free, - Indie, - OrmLiteBusiness, - OrmLiteIndie, - OrmLiteSite, - RedisBusiness, - RedisIndie, - RedisSite, - Site, - TextBusiness, - TextIndie, - TextSite, - Trial, - } - - // Generated from `ServiceStack.LicenseUtils` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class LicenseUtils - { - public static ServiceStack.LicenseFeature ActivatedLicenseFeatures() => throw null; - public static void ApprovedUsage(ServiceStack.LicenseFeature licenseFeature, ServiceStack.LicenseFeature requestedFeature, int allowedUsage, int actualUsage, string message) => throw null; - public static void AssertEvaluationLicense() => throw null; - public static void AssertValidUsage(ServiceStack.LicenseFeature feature, ServiceStack.QuotaType quotaType, int count) => throw null; - // Generated from `ServiceStack.LicenseUtils+ErrorMessages` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ErrorMessages - { - public const string UnauthorizedAccessRequest = default; - } - - - // Generated from `ServiceStack.LicenseUtils+FreeQuotas` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class FreeQuotas - { - public const int AwsTables = default; - public const int OrmLiteTables = default; - public const int PremiumFeature = default; - public const int RedisRequestPerHour = default; - public const int RedisTypes = default; - public const int ServiceStackOperations = default; - public const int TypeFields = default; - } - - - public static string GetHashKeyToSign(this ServiceStack.LicenseKey key) => throw null; - public static System.Exception GetInnerMostException(this System.Exception ex) => throw null; - public static ServiceStack.LicenseFeature GetLicensedFeatures(this ServiceStack.LicenseKey key) => throw null; - public static bool HasInit { get => throw null; set => throw null; } - public static bool HasLicensedFeature(ServiceStack.LicenseFeature feature) => throw null; - public static void Init() => throw null; - public const string LicensePublicKey = default; - public static string LicenseWarningMessage { get => throw null; set => throw null; } - public static void RegisterLicense(string licenseKeyText) => throw null; - public static void RemoveLicense() => throw null; - public const string RuntimePublicKey = default; - public static ServiceStack.LicenseKey ToLicenseKey(this string licenseKeyText) => throw null; - public static ServiceStack.LicenseKey ToLicenseKeyFallback(this string licenseKeyText) => throw null; - public static bool VerifyLicenseKeyText(this string licenseKeyText, out ServiceStack.LicenseKey key) => throw null; - public static ServiceStack.LicenseKey VerifyLicenseKeyText(string licenseKeyText) => throw null; - public static bool VerifyLicenseKeyTextFallback(this string licenseKeyText, out ServiceStack.LicenseKey key) => throw null; - public static bool VerifySha1Data(this System.Security.Cryptography.RSACryptoServiceProvider RSAalg, System.Byte[] unsignedData, System.Byte[] encryptedData) => throw null; - public static bool VerifySignedHash(System.Byte[] DataToVerify, System.Byte[] SignedData, System.Security.Cryptography.RSAParameters Key) => throw null; - } - - // Generated from `ServiceStack.Licensing` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Licensing - { - public static void RegisterLicense(string licenseKeyText) => throw null; - public static void RegisterLicenseFromFile(string filePath) => throw null; - public static void RegisterLicenseFromFileIfExists(string filePath) => throw null; - } - - // Generated from `ServiceStack.ListExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ListExtensions - { - public static System.Collections.Generic.List Add(this System.Collections.Generic.List types) => throw null; - public static void AddIfNotExists(this System.Collections.Generic.List list, T item) => throw null; - public static T[] InArray(this T value) => throw null; - public static System.Collections.Generic.List InList(this T value) => throw null; - public static bool IsNullOrEmpty(this System.Collections.Generic.List list) => throw null; - public static string Join(this System.Collections.Generic.IEnumerable values, string seperator) => throw null; - public static string Join(this System.Collections.Generic.IEnumerable values) => throw null; - public static T[] NewArray(this T[] array, T with = default(T), T without = default(T)) where T : class => throw null; - public static int NullableCount(this System.Collections.Generic.List list) => throw null; - public static System.Collections.Generic.IEnumerable SafeWhere(this System.Collections.Generic.List list, System.Func predicate) => throw null; - } - - // Generated from `ServiceStack.MapExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MapExtensions - { - public static string Join(this System.Collections.Generic.Dictionary values, string itemSeperator, string keySeperator) => throw null; - public static string Join(this System.Collections.Generic.Dictionary values) => throw null; - } - - // Generated from `ServiceStack.MimeTypes` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MimeTypes - { - public const string Binary = default; - public const string Bson = default; - public const string Cert = default; - public const string Compressed = default; - public const string Css = default; - public const string Csv = default; - public const string Dmg = default; - public const string Excel = default; - public static System.Collections.Generic.Dictionary ExtensionMimeTypes; - public const string FormUrlEncoded = default; - public static string GetExtension(string mimeType) => throw null; - public static string GetMimeType(string fileNameOrExt) => throw null; - public static string GetRealContentType(string contentType) => throw null; - public const string Html = default; - public const string HtmlUtf8 = default; - public const string ImageGif = default; - public const string ImageJpg = default; - public const string ImagePng = default; - public const string ImageSvg = default; - public static bool IsBinary(string contentType) => throw null; - public static System.Func IsBinaryFilter { get => throw null; set => throw null; } - public const string Jar = default; - public const string JavaScript = default; - public const string Json = default; - public const string JsonReport = default; - public const string JsonText = default; - public const string Jsv = default; - public const string JsvText = default; - public const string MarkdownText = default; - public static bool MatchesContentType(string contentType, string matchesContentType) => throw null; - public const string MsWord = default; - public const string MsgPack = default; - public const string MultiPartFormData = default; - public const string NetSerializer = default; - public const string Pkg = default; - public const string PlainText = default; - public const string ProblemJson = default; - public const string ProtoBuf = default; - public const string ServerSentEvents = default; - public const string Soap11 = default; - public const string Soap12 = default; - public const string Utf8Suffix = default; - public const string WebAssembly = default; - public const string Wire = default; - public const string Xml = default; - public const string XmlText = default; - public const string Yaml = default; - public const string YamlText = default; - } - - // Generated from `ServiceStack.NetCorePclExport` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCorePclExport : ServiceStack.NetStandardPclExport - { - public override ServiceStack.Text.Common.ParseStringDelegate GetJsReaderParseMethod(System.Type type) => throw null; - public override ServiceStack.Text.Common.ParseStringSpanDelegate GetJsReaderParseStringSpanMethod(System.Type type) => throw null; - public NetCorePclExport() => throw null; - } - - // Generated from `ServiceStack.NetStandardPclExport` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetStandardPclExport : ServiceStack.PclExport - { - public override void AddCompression(System.Net.WebRequest webReq) => throw null; - public override void AddHeader(System.Net.WebRequest webReq, string name, string value) => throw null; - public const string AppSettingsKey = default; - public override void Config(System.Net.HttpWebRequest req, bool? allowAutoRedirect = default(bool?), System.TimeSpan? timeout = default(System.TimeSpan?), System.TimeSpan? readWriteTimeout = default(System.TimeSpan?), string userAgent = default(string), bool? preAuthenticate = default(bool?)) => throw null; - public static ServiceStack.PclExport Configure() => throw null; - public override void CreateDirectory(string dirPath) => throw null; - public override bool DirectoryExists(string dirPath) => throw null; - public const string EnvironmentKey = default; - public override bool FileExists(string filePath) => throw null; - public override System.Reflection.Assembly[] GetAllAssemblies() => throw null; - public override System.Byte[] GetAsciiBytes(string str) => throw null; - public override string GetAsciiString(System.Byte[] bytes, int index, int count) => throw null; - public override string GetAssemblyCodeBase(System.Reflection.Assembly assembly) => throw null; - public override string GetAssemblyPath(System.Type source) => throw null; - public override string[] GetDirectoryNames(string dirPath, string searchPattern = default(string)) => throw null; - public override string GetEnvironmentVariable(string name) => throw null; - public override string[] GetFileNames(string dirPath, string searchPattern = default(string)) => throw null; - public override System.Type GetGenericCollectionType(System.Type type) => throw null; - public override ServiceStack.Text.Common.ParseStringDelegate GetSpecializedCollectionParseMethod(System.Type type) => throw null; - public override ServiceStack.Text.Common.ParseStringSpanDelegate GetSpecializedCollectionParseStringSpanMethod(System.Type type) => throw null; - public override string GetStackTrace() => throw null; - public override bool InSameAssembly(System.Type t1, System.Type t2) => throw null; - public static void InitForAot() => throw null; - public override void InitHttpWebRequest(System.Net.HttpWebRequest httpReq, System.Int64? contentLength = default(System.Int64?), bool allowAutoRedirect = default(bool), bool keepAlive = default(bool)) => throw null; - public override string MapAbsolutePath(string relativePath, string appendPartialPathModifier) => throw null; - public NetStandardPclExport() => throw null; - public override System.DateTime ParseXsdDateTimeAsUtc(string dateTimeStr) => throw null; - public static ServiceStack.NetStandardPclExport Provider; - public override string ReadAllText(string filePath) => throw null; - public static int RegisterElement() => throw null; - public override void RegisterForAot() => throw null; - public override void RegisterLicenseFromConfig() => throw null; - public static void RegisterQueryStringWriter() => throw null; - public static void RegisterTypeForAot() => throw null; - public override void SetAllowAutoRedirect(System.Net.HttpWebRequest httpReq, bool value) => throw null; - public override void SetContentLength(System.Net.HttpWebRequest httpReq, System.Int64 value) => throw null; - public override void SetKeepAlive(System.Net.HttpWebRequest httpReq, bool value) => throw null; - public override void SetUserAgent(System.Net.HttpWebRequest httpReq, string value) => throw null; - public override void WriteLine(string line) => throw null; - public override void WriteLine(string format, params object[] args) => throw null; - } - - // Generated from `ServiceStack.ObjectDictionary` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ObjectDictionary : System.Collections.Generic.Dictionary - { - public ObjectDictionary(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public ObjectDictionary(int capacity) => throw null; - public ObjectDictionary(System.Collections.Generic.IEqualityComparer comparer) => throw null; - public ObjectDictionary(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public ObjectDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; - public ObjectDictionary() => throw null; - protected ObjectDictionary(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `ServiceStack.PathUtils` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class PathUtils - { - public static void AppendPaths(System.Text.StringBuilder sb, string[] paths) => throw null; - public static string AssertDir(this string dirPath) => throw null; - public static string CombinePaths(params string[] paths) => throw null; - public static string CombineWith(this string path, string withPath) => throw null; - public static string CombineWith(this string path, params string[] thesePaths) => throw null; - public static string CombineWith(this string path, params object[] thesePaths) => throw null; - public static string MapAbsolutePath(this string relativePath, string appendPartialPathModifier) => throw null; - public static string MapAbsolutePath(this string relativePath) => throw null; - public static string MapHostAbsolutePath(this string relativePath) => throw null; - public static string MapProjectPath(this string relativePath) => throw null; - public static string MapProjectPlatformPath(this string relativePath) => throw null; - public static string ResolvePaths(this string path) => throw null; - public static string[] ToStrings(object[] thesePaths) => throw null; - } - - // Generated from `ServiceStack.PclExport` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class PclExport - { - public virtual void AddCompression(System.Net.WebRequest webRequest) => throw null; - public virtual void AddHeader(System.Net.WebRequest webReq, string name, string value) => throw null; - public System.Char AltDirSep; - public virtual void BeginThreadAffinity() => throw null; - public virtual void CloseStream(System.IO.Stream stream) => throw null; - public virtual void Config(System.Net.HttpWebRequest req, bool? allowAutoRedirect = default(bool?), System.TimeSpan? timeout = default(System.TimeSpan?), System.TimeSpan? readWriteTimeout = default(System.TimeSpan?), string userAgent = default(string), bool? preAuthenticate = default(bool?)) => throw null; - public static void Configure(ServiceStack.PclExport instance) => throw null; - public static bool ConfigureProvider(string typeName) => throw null; - public virtual void CreateDirectory(string dirPath) => throw null; - public virtual ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public virtual ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public virtual ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public virtual ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public virtual System.Net.HttpWebRequest CreateWebRequest(string requestUri, bool? emulateHttpViaPost = default(bool?)) => throw null; - public System.Char DirSep; - public static System.Char[] DirSeps; - public virtual bool DirectoryExists(string dirPath) => throw null; - public System.Threading.Tasks.Task EmptyTask; - public virtual void EndThreadAffinity() => throw null; - public virtual bool FileExists(string filePath) => throw null; - public virtual System.Type FindType(string typeName, string assemblyName) => throw null; - public virtual System.Reflection.Assembly[] GetAllAssemblies() => throw null; - public virtual System.Byte[] GetAsciiBytes(string str) => throw null; - public virtual string GetAsciiString(System.Byte[] bytes, int index, int count) => throw null; - public virtual string GetAsciiString(System.Byte[] bytes) => throw null; - public virtual string GetAssemblyCodeBase(System.Reflection.Assembly assembly) => throw null; - public virtual string GetAssemblyPath(System.Type source) => throw null; - public virtual ServiceStack.Text.Common.ParseStringDelegate GetDictionaryParseMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; - public virtual ServiceStack.Text.Common.ParseStringSpanDelegate GetDictionaryParseStringSpanMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; - public virtual string[] GetDirectoryNames(string dirPath, string searchPattern = default(string)) => throw null; - public virtual string GetEnvironmentVariable(string name) => throw null; - public virtual string[] GetFileNames(string dirPath, string searchPattern = default(string)) => throw null; - public virtual System.Type GetGenericCollectionType(System.Type type) => throw null; - public virtual ServiceStack.Text.Common.ParseStringDelegate GetJsReaderParseMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; - public virtual ServiceStack.Text.Common.ParseStringSpanDelegate GetJsReaderParseStringSpanMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; - public virtual System.IO.Stream GetRequestStream(System.Net.WebRequest webRequest) => throw null; - public virtual System.Net.WebResponse GetResponse(System.Net.WebRequest webRequest) => throw null; - public virtual System.Threading.Tasks.Task GetResponseAsync(System.Net.WebRequest webRequest) => throw null; - public virtual ServiceStack.Text.Common.ParseStringDelegate GetSpecializedCollectionParseMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; - public virtual ServiceStack.Text.Common.ParseStringSpanDelegate GetSpecializedCollectionParseStringSpanMethod(System.Type type) where TSerializer : ServiceStack.Text.Common.ITypeSerializer => throw null; - public virtual string GetStackTrace() => throw null; - public virtual System.Text.Encoding GetUTF8Encoding(bool emitBom = default(bool)) => throw null; - public virtual System.Runtime.Serialization.DataContractAttribute GetWeakDataContract(System.Type type) => throw null; - public virtual System.Runtime.Serialization.DataMemberAttribute GetWeakDataMember(System.Reflection.PropertyInfo pi) => throw null; - public virtual System.Runtime.Serialization.DataMemberAttribute GetWeakDataMember(System.Reflection.FieldInfo pi) => throw null; - public virtual bool InSameAssembly(System.Type t1, System.Type t2) => throw null; - public virtual void InitHttpWebRequest(System.Net.HttpWebRequest httpReq, System.Int64? contentLength = default(System.Int64?), bool allowAutoRedirect = default(bool), bool keepAlive = default(bool)) => throw null; - public static ServiceStack.PclExport Instance; - public System.StringComparer InvariantComparer; - public System.StringComparer InvariantComparerIgnoreCase; - public System.StringComparison InvariantComparison; - public System.StringComparison InvariantComparisonIgnoreCase; - public virtual bool IsAnonymousType(System.Type type) => throw null; - public virtual bool IsDebugBuild(System.Reflection.Assembly assembly) => throw null; - public virtual System.Reflection.Assembly LoadAssembly(string assemblyPath) => throw null; - public virtual string MapAbsolutePath(string relativePath, string appendPartialPathModifier) => throw null; - public virtual System.DateTime ParseXsdDateTime(string dateTimeStr) => throw null; - public virtual System.DateTime ParseXsdDateTimeAsUtc(string dateTimeStr) => throw null; - protected PclExport() => throw null; - public string PlatformName; - // Generated from `ServiceStack.PclExport+Platforms` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Platforms - { - public const string Net45 = default; - public const string NetCore = default; - public const string NetStandard = default; - } - - - public abstract string ReadAllText(string filePath); - public static ServiceStack.Text.ReflectionOptimizer Reflection { get => throw null; } - public System.Text.RegularExpressions.RegexOptions RegexOptions; - public virtual void RegisterForAot() => throw null; - public virtual void RegisterLicenseFromConfig() => throw null; - public virtual void ResetStream(System.IO.Stream stream) => throw null; - public virtual void SetAllowAutoRedirect(System.Net.HttpWebRequest httpReq, bool value) => throw null; - public virtual void SetContentLength(System.Net.HttpWebRequest httpReq, System.Int64 value) => throw null; - public virtual void SetKeepAlive(System.Net.HttpWebRequest httpReq, bool value) => throw null; - public virtual void SetUserAgent(System.Net.HttpWebRequest httpReq, string value) => throw null; - public virtual string ToInvariantUpper(System.Char value) => throw null; - public virtual string ToLocalXsdDateTimeString(System.DateTime dateTime) => throw null; - public virtual System.DateTime ToStableUniversalTime(System.DateTime dateTime) => throw null; - public virtual string ToXsdDateTimeString(System.DateTime dateTime) => throw null; - public virtual ServiceStack.LicenseKey VerifyLicenseKeyText(string licenseKeyText) => throw null; - public virtual ServiceStack.LicenseKey VerifyLicenseKeyTextFallback(string licenseKeyText) => throw null; - public virtual System.Threading.Tasks.Task WriteAndFlushAsync(System.IO.Stream stream, System.Byte[] bytes) => throw null; - public virtual void WriteLine(string line, params object[] args) => throw null; - public virtual void WriteLine(string line) => throw null; - } - - // Generated from `ServiceStack.PlatformExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class PlatformExtensions - { - public static System.Type AddAttributes(this System.Type type, params System.Attribute[] attrs) => throw null; - public static System.Reflection.PropertyInfo AddAttributes(this System.Reflection.PropertyInfo propertyInfo, params System.Attribute[] attrs) => throw null; - public static object[] AllAttributes(this System.Type type, System.Type attrType) => throw null; - public static object[] AllAttributes(this System.Type type) => throw null; - public static object[] AllAttributes(this System.Reflection.PropertyInfo propertyInfo, System.Type attrType) => throw null; - public static object[] AllAttributes(this System.Reflection.PropertyInfo propertyInfo) => throw null; - public static object[] AllAttributes(this System.Reflection.ParameterInfo paramInfo, System.Type attrType) => throw null; - public static object[] AllAttributes(this System.Reflection.ParameterInfo paramInfo) => throw null; - public static object[] AllAttributes(this System.Reflection.MemberInfo memberInfo, System.Type attrType) => throw null; - public static object[] AllAttributes(this System.Reflection.MemberInfo memberInfo) => throw null; - public static object[] AllAttributes(this System.Reflection.FieldInfo fieldInfo, System.Type attrType) => throw null; - public static object[] AllAttributes(this System.Reflection.FieldInfo fieldInfo) => throw null; - public static object[] AllAttributes(this System.Reflection.Assembly assembly) => throw null; - public static TAttr[] AllAttributes(this System.Type type) => throw null; - public static TAttr[] AllAttributes(this System.Reflection.PropertyInfo pi) => throw null; - public static TAttr[] AllAttributes(this System.Reflection.ParameterInfo pi) => throw null; - public static TAttr[] AllAttributes(this System.Reflection.MemberInfo mi) => throw null; - public static TAttr[] AllAttributes(this System.Reflection.FieldInfo fi) => throw null; - public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Type type) => throw null; - public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Reflection.PropertyInfo propertyInfo, System.Type attrType) => throw null; - public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Reflection.PropertyInfo propertyInfo) => throw null; - public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Type type) => throw null; - public static System.Collections.Generic.IEnumerable AllAttributesLazy(this System.Reflection.PropertyInfo pi) => throw null; - public static System.Reflection.PropertyInfo[] AllProperties(this System.Type type) => throw null; - public static bool AssignableFrom(this System.Type type, System.Type fromType) => throw null; - public static System.Type BaseType(this System.Type type) => throw null; - public static void ClearRuntimeAttributes() => throw null; - public static bool ContainsGenericParameters(this System.Type type) => throw null; - public static System.Delegate CreateDelegate(this System.Reflection.MethodInfo methodInfo, System.Type delegateType, object target) => throw null; - public static System.Delegate CreateDelegate(this System.Reflection.MethodInfo methodInfo, System.Type delegateType) => throw null; - public static System.Reflection.ConstructorInfo[] DeclaredConstructors(this System.Type type) => throw null; - public static System.Type ElementType(this System.Type type) => throw null; - public static System.Reflection.FieldInfo[] Fields(this System.Type type) => throw null; - public static TAttribute FirstAttribute(this System.Reflection.PropertyInfo propertyInfo) => throw null; - public static TAttribute FirstAttribute(this System.Reflection.ParameterInfo paramInfo) => throw null; - public static TAttribute FirstAttribute(this System.Reflection.MemberInfo memberInfo) => throw null; - public static TAttr FirstAttribute(this System.Type type) where TAttr : class => throw null; - public static System.Type FirstGenericTypeDefinition(this System.Type type) => throw null; - public static object FromObjectDictionary(this System.Collections.Generic.IEnumerable> values, System.Type type) => throw null; - public static T FromObjectDictionary(this System.Collections.Generic.IEnumerable> values) => throw null; - public static System.Type[] GenericTypeArguments(this System.Type type) => throw null; - public static System.Type GenericTypeDefinition(this System.Type type) => throw null; - public static System.Collections.Generic.IEnumerable GetAllConstructors(this System.Type type) => throw null; - public static System.Reflection.FieldInfo[] GetAllFields(this System.Type type) => throw null; - public static System.Reflection.MemberInfo[] GetAllPublicMembers(this System.Type type) => throw null; - public static System.Reflection.Assembly GetAssembly(this System.Type type) => throw null; - public static System.Collections.Generic.List GetAttributes(this System.Reflection.PropertyInfo propertyInfo) => throw null; - public static System.Collections.Generic.List GetAttributes(this System.Reflection.PropertyInfo propertyInfo, System.Type attrType) => throw null; - public static System.Collections.Generic.List GetAttributes(this System.Reflection.PropertyInfo propertyInfo) => throw null; - public static System.Type GetCachedGenericType(this System.Type type, params System.Type[] argTypes) => throw null; - public static System.Type GetCollectionType(this System.Type type) => throw null; - public static string GetDeclaringTypeName(this System.Type type) => throw null; - public static string GetDeclaringTypeName(this System.Reflection.MemberInfo mi) => throw null; - public static System.Reflection.ConstructorInfo GetEmptyConstructor(this System.Type type) => throw null; - public static System.Reflection.FieldInfo GetFieldInfo(this System.Type type, string fieldName) => throw null; - public static System.Reflection.MethodInfo GetInstanceMethod(this System.Type type, string methodName) => throw null; - public static System.Reflection.MethodInfo[] GetInstanceMethods(this System.Type type) => throw null; - public static System.Type GetKeyValuePairTypeDef(this System.Type genericEnumType) => throw null; - public static bool GetKeyValuePairTypes(this System.Type kvpType, out System.Type keyType, out System.Type valueType) => throw null; - public static System.Type GetKeyValuePairsTypeDef(this System.Type dictType) => throw null; - public static bool GetKeyValuePairsTypes(this System.Type dictType, out System.Type keyType, out System.Type valueType, out System.Type kvpType) => throw null; - public static bool GetKeyValuePairsTypes(this System.Type dictType, out System.Type keyType, out System.Type valueType) => throw null; - public static System.Reflection.MethodInfo GetMethodInfo(this System.Type type, string methodName, System.Type[] types = default(System.Type[])) => throw null; - public static System.Reflection.MethodInfo GetMethodInfo(this System.Reflection.PropertyInfo pi, bool nonPublic = default(bool)) => throw null; - public static System.Reflection.MethodInfo[] GetMethodInfos(this System.Type type) => throw null; - public static System.Reflection.PropertyInfo GetPropertyInfo(this System.Type type, string propertyName) => throw null; - public static System.Reflection.PropertyInfo[] GetPropertyInfos(this System.Type type) => throw null; - public static System.Reflection.FieldInfo[] GetPublicFields(this System.Type type) => throw null; - public static System.Reflection.MemberInfo[] GetPublicMembers(this System.Type type) => throw null; - public static System.Reflection.FieldInfo GetPublicStaticField(this System.Type type, string fieldName) => throw null; - public static System.Reflection.MethodInfo GetStaticMethod(this System.Type type, string methodName, System.Type[] types) => throw null; - public static System.Reflection.MethodInfo GetStaticMethod(this System.Type type, string methodName) => throw null; - public static System.Type[] GetTypeGenericArguments(this System.Type type) => throw null; - public static System.Type[] GetTypeInterfaces(this System.Type type) => throw null; - public static System.Reflection.FieldInfo[] GetWritableFields(this System.Type type) => throw null; - public static bool HasAttribute(this System.Type type) => throw null; - public static bool HasAttribute(this System.Reflection.PropertyInfo pi) => throw null; - public static bool HasAttribute(this System.Reflection.MethodInfo mi) => throw null; - public static bool HasAttribute(this System.Reflection.FieldInfo fi) => throw null; - public static bool HasAttributeCached(this System.Reflection.MemberInfo memberInfo) => throw null; - public static bool HasAttributeNamed(this System.Type type, string name) => throw null; - public static bool HasAttributeNamed(this System.Reflection.PropertyInfo pi, string name) => throw null; - public static bool HasAttributeNamed(this System.Reflection.MemberInfo mi, string name) => throw null; - public static bool HasAttributeNamed(this System.Reflection.FieldInfo fi, string name) => throw null; - public static bool HasAttributeOf(this System.Type type) => throw null; - public static bool HasAttributeOf(this System.Reflection.PropertyInfo pi) => throw null; - public static bool HasAttributeOf(this System.Reflection.MethodInfo mi) => throw null; - public static bool HasAttributeOf(this System.Reflection.FieldInfo fi) => throw null; - public static bool HasAttributeOfCached(this System.Reflection.MemberInfo memberInfo) => throw null; - public static bool InstanceOfType(this System.Type type, object instance) => throw null; - public static System.Type[] Interfaces(this System.Type type) => throw null; - public static object InvokeMethod(this System.Delegate fn, object instance, object[] parameters = default(object[])) => throw null; - public static bool IsAbstract(this System.Type type) => throw null; - public static bool IsArray(this System.Type type) => throw null; - public static bool IsAssignableFromType(this System.Type type, System.Type fromType) => throw null; - public static bool IsClass(this System.Type type) => throw null; - public static bool IsDto(this System.Type type) => throw null; - public static bool IsDynamic(this System.Reflection.Assembly assembly) => throw null; - public static bool IsEnum(this System.Type type) => throw null; - public static bool IsEnumFlags(this System.Type type) => throw null; - public static bool IsGeneric(this System.Type type) => throw null; - public static bool IsGenericType(this System.Type type) => throw null; - public static bool IsGenericTypeDefinition(this System.Type type) => throw null; - public static bool IsInterface(this System.Type type) => throw null; - public static bool IsStandardClass(this System.Type type) => throw null; - public static bool IsUnderlyingEnum(this System.Type type) => throw null; - public static bool IsValueType(this System.Type type) => throw null; - public static System.Delegate MakeDelegate(this System.Reflection.MethodInfo mi, System.Type delegateType, bool throwOnBindFailure = default(bool)) => throw null; - public static System.Collections.Generic.Dictionary MergeIntoObjectDictionary(this object obj, params object[] sources) => throw null; - public static System.Reflection.MethodInfo Method(this System.Delegate fn) => throw null; - public static void PopulateInstance(this System.Collections.Generic.IEnumerable> values, object instance) => throw null; - public static void PopulateInstance(this System.Collections.Generic.IEnumerable> values, object instance) => throw null; - public static System.Reflection.PropertyInfo[] Properties(this System.Type type) => throw null; - public static System.Reflection.MethodInfo PropertyGetMethod(this System.Reflection.PropertyInfo pi, bool nonPublic = default(bool)) => throw null; - public static System.Type ReflectedType(this System.Reflection.PropertyInfo pi) => throw null; - public static System.Type ReflectedType(this System.Reflection.FieldInfo fi) => throw null; - public static System.Reflection.PropertyInfo ReplaceAttribute(this System.Reflection.PropertyInfo propertyInfo, System.Attribute attr) => throw null; - public static System.Reflection.MethodInfo SetMethod(this System.Reflection.PropertyInfo pi, bool nonPublic = default(bool)) => throw null; - public static System.Collections.Generic.Dictionary ToObjectDictionary(this object obj, System.Func mapper) => throw null; - public static System.Collections.Generic.Dictionary ToObjectDictionary(this object obj) => throw null; - public static System.Collections.Generic.Dictionary ToSafePartialObjectDictionary(this T instance) => throw null; - public static System.Collections.Generic.Dictionary ToStringDictionary(this System.Collections.Generic.IEnumerable> from, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public static System.Collections.Generic.Dictionary ToStringDictionary(this System.Collections.Generic.IEnumerable> from) => throw null; - } - - // Generated from `ServiceStack.PopulateMemberDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void PopulateMemberDelegate(object target, object source); - - // Generated from `ServiceStack.PropertyAccessor` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PropertyAccessor - { - public PropertyAccessor(System.Reflection.PropertyInfo propertyInfo, ServiceStack.GetMemberDelegate publicGetter, ServiceStack.SetMemberDelegate publicSetter) => throw null; - public System.Reflection.PropertyInfo PropertyInfo { get => throw null; } - public ServiceStack.GetMemberDelegate PublicGetter { get => throw null; } - public ServiceStack.SetMemberDelegate PublicSetter { get => throw null; } - } - - // Generated from `ServiceStack.PropertyInvoker` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class PropertyInvoker - { - public static ServiceStack.GetMemberDelegate CreateGetter(this System.Reflection.PropertyInfo propertyInfo) => throw null; - public static ServiceStack.GetMemberDelegate CreateGetter(this System.Reflection.PropertyInfo propertyInfo) => throw null; - public static ServiceStack.SetMemberDelegate CreateSetter(this System.Reflection.PropertyInfo propertyInfo) => throw null; - public static ServiceStack.SetMemberDelegate CreateSetter(this System.Reflection.PropertyInfo propertyInfo) => throw null; - } - - // Generated from `ServiceStack.QueryStringSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class QueryStringSerializer - { - public static ServiceStack.WriteComplexTypeDelegate ComplexTypeStrategy { get => throw null; set => throw null; } - public static void InitAot() => throw null; - public static string SerializeToString(T value) => throw null; - public static void WriteLateBoundObject(System.IO.TextWriter writer, object value) => throw null; - } - - // Generated from `ServiceStack.QueryStringStrategy` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class QueryStringStrategy - { - public static bool FormUrlEncoded(System.IO.TextWriter writer, string propertyName, object obj) => throw null; - } - - // Generated from `ServiceStack.QueryStringWriter<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class QueryStringWriter - { - public static ServiceStack.Text.Common.WriteObjectDelegate WriteFn() => throw null; - public static void WriteIDictionary(System.IO.TextWriter writer, object oMap) => throw null; - public static void WriteObject(System.IO.TextWriter writer, object value) => throw null; - } - - // Generated from `ServiceStack.QuotaType` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum QuotaType - { - Fields, - Operations, - PremiumFeature, - RequestsPerHour, - Tables, - Types, - } - - // Generated from `ServiceStack.ReflectionExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ReflectionExtensions - { - public static bool AllHaveInterfacesOfType(this System.Type assignableFromType, params System.Type[] types) => throw null; - public static bool AreAllStringOrValueTypes(params System.Type[] types) => throw null; - public static object CreateInstance() => throw null; - public static object CreateInstance(this System.Type type) => throw null; - public static object CreateInstance(string typeName) => throw null; - public static T CreateInstance(this System.Type type) => throw null; - public const string DataMember = default; - public static System.Type FirstGenericType(this System.Type type) => throw null; - public static System.Reflection.PropertyInfo[] GetAllProperties(this System.Type type) => throw null; - public static ServiceStack.EmptyCtorDelegate GetConstructorMethod(string typeName) => throw null; - public static ServiceStack.EmptyCtorDelegate GetConstructorMethod(System.Type type) => throw null; - public static ServiceStack.EmptyCtorDelegate GetConstructorMethodToCache(System.Type type) => throw null; - public static System.Runtime.Serialization.DataContractAttribute GetDataContract(this System.Type type) => throw null; - public static System.Runtime.Serialization.DataMemberAttribute GetDataMember(this System.Reflection.PropertyInfo pi) => throw null; - public static System.Runtime.Serialization.DataMemberAttribute GetDataMember(this System.Reflection.FieldInfo pi) => throw null; - public static string GetDataMemberName(this System.Reflection.PropertyInfo pi) => throw null; - public static string GetDataMemberName(this System.Reflection.FieldInfo fi) => throw null; - public static ServiceStack.Text.Support.TypePair GetGenericArgumentsIfBothHaveConvertibleGenericDefinitionTypeAndArguments(this System.Type assignableFromType, System.Type typeA, System.Type typeB) => throw null; - public static System.Type[] GetGenericArgumentsIfBothHaveSameGenericDefinitionTypeAndArguments(this System.Type assignableFromType, System.Type typeA, System.Type typeB) => throw null; - public static System.Reflection.Module GetModule(this System.Type type) => throw null; - public static System.Func GetOnDeserializing() => throw null; - public static System.Reflection.PropertyInfo[] GetPublicProperties(this System.Type type) => throw null; - public static System.Reflection.FieldInfo[] GetSerializableFields(this System.Type type) => throw null; - public static System.Reflection.PropertyInfo[] GetSerializableProperties(this System.Type type) => throw null; - public static System.TypeCode GetTypeCode(this System.Type type) => throw null; - public static System.Type GetTypeWithGenericInterfaceOf(this System.Type type, System.Type genericInterfaceType) => throw null; - public static System.Type GetTypeWithGenericTypeDefinitionOf(this System.Type type, System.Type genericTypeDefinition) => throw null; - public static System.Type GetTypeWithGenericTypeDefinitionOfAny(this System.Type type, params System.Type[] genericTypeDefinitions) => throw null; - public static System.Type GetTypeWithInterfaceOf(this System.Type type, System.Type interfaceType) => throw null; - public static System.TypeCode GetUnderlyingTypeCode(this System.Type type) => throw null; - public static bool HasAnyTypeDefinitionsOf(this System.Type genericType, params System.Type[] theseGenericTypes) => throw null; - public static bool HasGenericType(this System.Type type) => throw null; - public static bool HasInterface(this System.Type type, System.Type interfaceType) => throw null; - public static bool IsInstanceOf(this System.Type type, System.Type thisOrBaseType) => throw null; - public static bool IsIntegerType(this System.Type type) => throw null; - public static bool IsNullableType(this System.Type type) => throw null; - public static bool IsNumericType(this System.Type type) => throw null; - public static bool IsOrHasGenericInterfaceTypeOf(this System.Type type, System.Type genericTypeDefinition) => throw null; - public static bool IsRealNumberType(this System.Type type) => throw null; - public static object New(this System.Type type) => throw null; - public static T New(this System.Type type) => throw null; - public static System.Reflection.PropertyInfo[] OnlySerializableProperties(this System.Reflection.PropertyInfo[] properties, System.Type type = default(System.Type)) => throw null; - } - - // Generated from `ServiceStack.SetMemberDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void SetMemberDelegate(object instance, object value); - - // Generated from `ServiceStack.SetMemberDelegate<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void SetMemberDelegate(T instance, object value); - - // Generated from `ServiceStack.SetMemberRefDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void SetMemberRefDelegate(ref object instance, object propertyValue); - - // Generated from `ServiceStack.SetMemberRefDelegate<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void SetMemberRefDelegate(ref T instance, object value); - - // Generated from `ServiceStack.StreamExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StreamExtensions - { - public static int AsyncBufferSize; - public static string CollapseWhitespace(this string str) => throw null; - public static System.Byte[] Combine(this System.Byte[] bytes, params System.Byte[][] withBytes) => throw null; - public static System.Int64 CopyTo(this System.IO.Stream input, System.IO.Stream output, int bufferSize) => throw null; - public static System.Int64 CopyTo(this System.IO.Stream input, System.IO.Stream output, System.Byte[] buffer) => throw null; - public static System.Int64 CopyTo(this System.IO.Stream input, System.IO.Stream output) => throw null; - public static System.Threading.Tasks.Task CopyToAsync(this System.IO.Stream input, System.IO.Stream output, System.Byte[] buffer, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task CopyToAsync(this System.IO.Stream input, System.IO.Stream output, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.IO.MemoryStream CopyToNewMemoryStream(this System.IO.Stream stream) => throw null; - public static System.Threading.Tasks.Task CopyToNewMemoryStreamAsync(this System.IO.Stream stream) => throw null; - public const int DefaultBufferSize = default; - public static System.Byte[] GetBufferAsBytes(this System.IO.MemoryStream ms) => throw null; - public static System.ReadOnlyMemory GetBufferAsMemory(this System.IO.MemoryStream ms) => throw null; - public static System.ReadOnlySpan GetBufferAsSpan(this System.IO.MemoryStream ms) => throw null; - public static System.IO.MemoryStream InMemoryStream(this System.Byte[] bytes) => throw null; - public static System.Byte[] ReadExactly(this System.IO.Stream input, int bytesToRead) => throw null; - public static System.Byte[] ReadExactly(this System.IO.Stream input, System.Byte[] buffer, int startIndex, int bytesToRead) => throw null; - public static System.Byte[] ReadExactly(this System.IO.Stream input, System.Byte[] buffer, int bytesToRead) => throw null; - public static System.Byte[] ReadExactly(this System.IO.Stream input, System.Byte[] buffer) => throw null; - public static System.Byte[] ReadFully(this System.IO.Stream input, int bufferSize) => throw null; - public static System.Byte[] ReadFully(this System.IO.Stream input, System.Byte[] buffer) => throw null; - public static System.Byte[] ReadFully(this System.IO.Stream input) => throw null; - public static System.ReadOnlyMemory ReadFullyAsMemory(this System.IO.Stream input, int bufferSize) => throw null; - public static System.ReadOnlyMemory ReadFullyAsMemory(this System.IO.Stream input, System.Byte[] buffer) => throw null; - public static System.ReadOnlyMemory ReadFullyAsMemory(this System.IO.Stream input) => throw null; - public static System.Threading.Tasks.Task> ReadFullyAsMemoryAsync(this System.IO.Stream input, int bufferSize, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ReadFullyAsMemoryAsync(this System.IO.Stream input, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> ReadFullyAsMemoryAsync(this System.IO.Stream input, System.Byte[] buffer, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ReadFullyAsync(this System.IO.Stream input, int bufferSize, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ReadFullyAsync(this System.IO.Stream input, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ReadFullyAsync(this System.IO.Stream input, System.Byte[] buffer, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.IEnumerable ReadLines(this System.IO.Stream stream) => throw null; - public static string ReadToEnd(this System.IO.Stream stream, System.Text.Encoding encoding) => throw null; - public static string ReadToEnd(this System.IO.Stream stream) => throw null; - public static string ReadToEnd(this System.IO.MemoryStream ms, System.Text.Encoding encoding) => throw null; - public static string ReadToEnd(this System.IO.MemoryStream ms) => throw null; - public static System.Threading.Tasks.Task ReadToEndAsync(this System.IO.Stream stream, System.Text.Encoding encoding) => throw null; - public static System.Threading.Tasks.Task ReadToEndAsync(this System.IO.Stream stream) => throw null; - public static System.Threading.Tasks.Task ReadToEndAsync(this System.IO.MemoryStream ms, System.Text.Encoding encoding) => throw null; - public static System.Threading.Tasks.Task ReadToEndAsync(this System.IO.MemoryStream ms) => throw null; - public static string ToMd5Hash(this System.IO.Stream stream) => throw null; - public static string ToMd5Hash(this System.Byte[] bytes) => throw null; - public static System.Threading.Tasks.Task WriteAsync(this System.IO.Stream stream, string text, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAsync(this System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteAsync(this System.IO.Stream stream, System.Byte[] bytes, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Int64 WriteTo(this System.IO.Stream inStream, System.IO.Stream outStream) => throw null; - public static System.Threading.Tasks.Task WriteToAsync(this System.IO.Stream stream, System.IO.Stream output, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteToAsync(this System.IO.Stream stream, System.IO.Stream output, System.Text.Encoding encoding, System.Threading.CancellationToken token) => throw null; - public static System.Threading.Tasks.Task WriteToAsync(this System.IO.MemoryStream stream, System.IO.Stream output, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteToAsync(this System.IO.MemoryStream stream, System.IO.Stream output, System.Text.Encoding encoding, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.StringDictionary` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringDictionary : System.Collections.Generic.Dictionary - { - public StringDictionary(int capacity, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public StringDictionary(int capacity) => throw null; - public StringDictionary(System.Collections.Generic.IEqualityComparer comparer) => throw null; - public StringDictionary(System.Collections.Generic.IDictionary dictionary, System.Collections.Generic.IEqualityComparer comparer) => throw null; - public StringDictionary(System.Collections.Generic.IDictionary dictionary) => throw null; - public StringDictionary() => throw null; - protected StringDictionary(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `ServiceStack.StringExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StringExtensions - { - public static string AppendPath(this string uri, params string[] uriComponents) => throw null; - public static string AppendUrlPaths(this string uri, params string[] uriComponents) => throw null; - public static string AppendUrlPathsRaw(this string uri, params string[] uriComponents) => throw null; - public static string BaseConvert(this string source, int from, int to) => throw null; - public static int CompareIgnoreCase(this string strA, string strB) => throw null; - public static bool ContainsAny(this string text, string[] testMatches, System.StringComparison comparisonType) => throw null; - public static bool ContainsAny(this string text, params string[] testMatches) => throw null; - public static int CountOccurrencesOf(this string text, System.Char needle) => throw null; - public static void CreateDirectory(this string dirPath) => throw null; - public static string DecodeJsv(this string value) => throw null; - public static bool DirectoryExists(this string dirPath) => throw null; - public static string EncodeJson(this string value) => throw null; - public static string EncodeJsv(this string value) => throw null; - public static string EncodeXml(this string value) => throw null; - public static bool EndsWithIgnoreCase(this string text, string endsWith) => throw null; - public static bool EndsWithInvariant(this string str, string endsWith) => throw null; - public static bool EqualsIgnoreCase(this string value, string other) => throw null; - public static string ExtractContents(this string fromText, string uniqueMarker, string startAfter, string endAt) => throw null; - public static string ExtractContents(this string fromText, string startAfter, string endAt) => throw null; - public static bool FileExists(this string filePath) => throw null; - public static string Fmt(this string text, params object[] args) => throw null; - public static string Fmt(this string text, object arg1, object arg2, object arg3) => throw null; - public static string Fmt(this string text, object arg1, object arg2) => throw null; - public static string Fmt(this string text, object arg1) => throw null; - public static string Fmt(this string text, System.IFormatProvider provider, params object[] args) => throw null; - public static string FormatWith(this string text, params object[] args) => throw null; - public static string FromAsciiBytes(this System.Byte[] bytes) => throw null; - public static System.Byte[] FromBase64UrlSafe(this string input) => throw null; - public static T FromCsv(this string csv) => throw null; - public static T FromJson(this string json) => throw null; - public static T FromJsonSpan(this System.ReadOnlySpan json) => throw null; - public static T FromJsv(this string jsv) => throw null; - public static T FromJsvSpan(this System.ReadOnlySpan jsv) => throw null; - public static string FromUtf8Bytes(this System.Byte[] bytes) => throw null; - public static T FromXml(this string json) => throw null; - public static string GetExtension(this string filePath) => throw null; - public static bool Glob(this string value, string pattern) => throw null; - public static bool GlobPath(this string filePath, string pattern) => throw null; - public static string HexEscape(this string text, params System.Char[] anyCharOf) => throw null; - public static string HexUnescape(this string text, params System.Char[] anyCharOf) => throw null; - public static int IndexOfAny(this string text, params string[] needles) => throw null; - public static int IndexOfAny(this string text, int startIndex, params string[] needles) => throw null; - public static bool IsAnonymousType(this System.Type type) => throw null; - public static bool IsEmpty(this string value) => throw null; - public static bool IsInt(this string text) => throw null; - public static bool IsNullOrEmpty(this string value) => throw null; - public static bool IsSystemType(this System.Type type) => throw null; - public static bool IsTuple(this System.Type type) => throw null; - public static bool IsUserEnum(this System.Type type) => throw null; - public static bool IsUserType(this System.Type type) => throw null; - public static bool IsValidVarName(this string name) => throw null; - public static bool IsValidVarRef(this string name) => throw null; - public static string Join(this System.Collections.Generic.List items, string delimeter) => throw null; - public static string Join(this System.Collections.Generic.List items) => throw null; - public static string LastLeftPart(this string strVal, string needle) => throw null; - public static string LastLeftPart(this string strVal, System.Char needle) => throw null; - public static string LastRightPart(this string strVal, string needle) => throw null; - public static string LastRightPart(this string strVal, System.Char needle) => throw null; - public static string LeftPart(this string strVal, string needle) => throw null; - public static string LeftPart(this string strVal, System.Char needle) => throw null; - public static bool Matches(this string value, string pattern) => throw null; - public static string NormalizeNewLines(this string text) => throw null; - public static string ParentDirectory(this string filePath) => throw null; - public static System.Collections.Generic.List> ParseAsKeyValues(this string text, string delimiter = default(string)) => throw null; - public static System.Collections.Generic.Dictionary ParseKeyValueText(this string text, string delimiter = default(string)) => throw null; - public static string Quoted(this string text) => throw null; - public static string ReadAllText(this string filePath) => throw null; - public static System.Collections.Generic.IEnumerable ReadLines(this string text) => throw null; - public static string RemoveCharFlags(this string text, bool[] charFlags) => throw null; - public static string ReplaceAll(this string haystack, string needle, string replacement) => throw null; - public static string ReplaceFirst(this string haystack, string needle, string replacement) => throw null; - public static string RightPart(this string strVal, string needle) => throw null; - public static string RightPart(this string strVal, System.Char needle) => throw null; - public static string SafeSubstring(this string value, int startIndex, int length) => throw null; - public static string SafeSubstring(this string value, int startIndex) => throw null; - public static string SafeVarName(this string text) => throw null; - public static string SafeVarRef(this string text) => throw null; - public static string SplitCamelCase(this string value) => throw null; - public static string[] SplitOnFirst(this string strVal, string needle) => throw null; - public static string[] SplitOnFirst(this string strVal, System.Char needle) => throw null; - public static string[] SplitOnLast(this string strVal, string needle) => throw null; - public static string[] SplitOnLast(this string strVal, System.Char needle) => throw null; - public static bool StartsWithIgnoreCase(this string text, string startsWith) => throw null; - public static string StripHtml(this string html) => throw null; - public static string StripMarkdownMarkup(this string markdown) => throw null; - public static string StripQuotes(this string text) => throw null; - public static string SubstringWithElipsis(this string value, int startIndex, int length) => throw null; - public static string SubstringWithEllipsis(this string value, int startIndex, int length) => throw null; - public static System.Byte[] ToAsciiBytes(this string value) => throw null; - public static string ToBase64UrlSafe(this System.IO.MemoryStream ms) => throw null; - public static string ToBase64UrlSafe(this System.Byte[] input) => throw null; - public static string ToCamelCase(this string value) => throw null; - public static string ToCsv(this T obj) => throw null; - public static System.Decimal ToDecimal(this string text, System.Decimal defaultValue) => throw null; - public static System.Decimal ToDecimal(this string text) => throw null; - public static System.Decimal ToDecimalInvariant(this string text) => throw null; - public static double ToDouble(this string text, double defaultValue) => throw null; - public static double ToDouble(this string text) => throw null; - public static double ToDoubleInvariant(this string text) => throw null; - public static string ToEnglish(this string camelCase) => throw null; - public static T ToEnum(this string value) => throw null; - public static T ToEnumOrDefault(this string value, T defaultValue) => throw null; - public static float ToFloat(this string text, float defaultValue) => throw null; - public static float ToFloat(this string text) => throw null; - public static float ToFloatInvariant(this string text) => throw null; - public static string ToHex(this System.Byte[] hashBytes, bool upper = default(bool)) => throw null; - public static string ToHttps(this string url) => throw null; - public static int ToInt(this string text, int defaultValue) => throw null; - public static int ToInt(this string text) => throw null; - public static System.Int64 ToInt64(this string text, System.Int64 defaultValue) => throw null; - public static System.Int64 ToInt64(this string text) => throw null; - public static string ToInvariantUpper(this System.Char value) => throw null; - public static string ToJson(this T obj) => throw null; - public static string ToJsv(this T obj) => throw null; - public static System.Int64 ToLong(this string text, System.Int64 defaultValue) => throw null; - public static System.Int64 ToLong(this string text) => throw null; - public static string ToLowerSafe(this string value) => throw null; - public static string ToLowercaseUnderscore(this string value) => throw null; - public static string ToNullIfEmpty(this string text) => throw null; - public static string ToParentPath(this string path) => throw null; - public static string ToPascalCase(this string value) => throw null; - public static string ToRot13(this string value) => throw null; - public static string ToSafeJson(this T obj) => throw null; - public static string ToSafeJsv(this T obj) => throw null; - public static string ToTitleCase(this string value) => throw null; - public static string ToUpperSafe(this string value) => throw null; - public static System.Byte[] ToUtf8Bytes(this string value) => throw null; - public static System.Byte[] ToUtf8Bytes(this int intVal) => throw null; - public static System.Byte[] ToUtf8Bytes(this double doubleVal) => throw null; - public static System.Byte[] ToUtf8Bytes(this System.UInt64 ulongVal) => throw null; - public static System.Byte[] ToUtf8Bytes(this System.Int64 longVal) => throw null; - public static string ToXml(this T obj) => throw null; - public static string TrimPrefixes(this string fromString, params string[] prefixes) => throw null; - public static string UrlDecode(this string text) => throw null; - public static string UrlEncode(this string text, bool upperCase = default(bool)) => throw null; - public static string UrlFormat(this string url, params string[] urlComponents) => throw null; - public static string UrlWithTrailingSlash(this string url) => throw null; - public static string WithTrailingSlash(this string path) => throw null; - public static string WithoutBom(this string value) => throw null; - public static string WithoutExtension(this string filePath) => throw null; - } - - // Generated from `ServiceStack.TaskExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TaskExtensions - { - public static System.Threading.Tasks.Task Error(this System.Threading.Tasks.Task task, System.Action fn, bool onUiThread = default(bool), System.Threading.Tasks.TaskContinuationOptions taskOptions = default(System.Threading.Tasks.TaskContinuationOptions)) => throw null; - public static System.Threading.Tasks.Task Error(this System.Threading.Tasks.Task task, System.Action fn, bool onUiThread = default(bool), System.Threading.Tasks.TaskContinuationOptions taskOptions = default(System.Threading.Tasks.TaskContinuationOptions)) => throw null; - public static System.Threading.Tasks.Task Success(this System.Threading.Tasks.Task task, System.Action fn, bool onUiThread = default(bool), System.Threading.Tasks.TaskContinuationOptions taskOptions = default(System.Threading.Tasks.TaskContinuationOptions)) => throw null; - public static System.Threading.Tasks.Task Success(this System.Threading.Tasks.Task task, System.Action fn, bool onUiThread = default(bool), System.Threading.Tasks.TaskContinuationOptions taskOptions = default(System.Threading.Tasks.TaskContinuationOptions)) => throw null; - public static System.Exception UnwrapIfSingleException(this System.Threading.Tasks.Task task) => throw null; - public static System.Exception UnwrapIfSingleException(this System.Threading.Tasks.Task task) => throw null; - public static System.Exception UnwrapIfSingleException(this System.Exception ex) => throw null; - } - - // Generated from `ServiceStack.TaskResult` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TaskResult - { - public static System.Threading.Tasks.Task Canceled; - public static System.Threading.Tasks.Task False; - public static System.Threading.Tasks.Task Finished; - public static System.Threading.Tasks.Task One; - public static System.Threading.Tasks.Task True; - public static System.Threading.Tasks.Task Zero; - } - - // Generated from `ServiceStack.TaskUtils` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TaskUtils - { - public static System.Threading.Tasks.Task Cast(this System.Threading.Tasks.Task task) where To : From => throw null; - public static System.Threading.Tasks.Task EachAsync(this System.Collections.Generic.IEnumerable items, System.Func fn) => throw null; - public static System.Threading.Tasks.Task FromResult(T result) => throw null; - public static System.Threading.Tasks.Task InTask(this T result) => throw null; - public static System.Threading.Tasks.Task InTask(this System.Exception ex) => throw null; - public static bool IsSuccess(this System.Threading.Tasks.Task task) => throw null; - public static System.Threading.Tasks.TaskScheduler SafeTaskScheduler() => throw null; - public static void Sleep(int timeMs) => throw null; - public static void Sleep(System.TimeSpan time) => throw null; - public static System.Threading.Tasks.Task Then(this System.Threading.Tasks.Task task, System.Func fn) => throw null; - public static System.Threading.Tasks.Task Then(this System.Threading.Tasks.Task task, System.Func fn) => throw null; - } - - // Generated from `ServiceStack.TextExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TextExtensions - { - public static string FromCsvField(this string text) => throw null; - public static string[] FromCsvFields(params string[] texts) => throw null; - public static System.Collections.Generic.List FromCsvFields(this System.Collections.Generic.IEnumerable texts) => throw null; - public static string SerializeToString(this T value) => throw null; - public static string ToCsvField(this string text) => throw null; - public static object ToCsvField(this object text) => throw null; - } - - // Generated from `ServiceStack.TypeConstants` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TypeConstants - { - public static bool[] EmptyBoolArray; - public static System.Collections.Generic.List EmptyBoolList; - public static System.Byte[] EmptyByteArray; - public static System.Byte[][] EmptyByteArrayArray; - public static System.Collections.Generic.List EmptyByteList; - public static System.Char[] EmptyCharArray; - public static System.Collections.Generic.List EmptyCharList; - public static System.Reflection.FieldInfo[] EmptyFieldInfoArray; - public static System.Collections.Generic.List EmptyFieldInfoList; - public static int[] EmptyIntArray; - public static System.Collections.Generic.List EmptyIntList; - public static System.Int64[] EmptyLongArray; - public static System.Collections.Generic.List EmptyLongList; - public static object EmptyObject; - public static object[] EmptyObjectArray; - public static System.Collections.Generic.Dictionary EmptyObjectDictionary; - public static System.Collections.Generic.List EmptyObjectList; - public static System.Reflection.PropertyInfo[] EmptyPropertyInfoArray; - public static System.Collections.Generic.List EmptyPropertyInfoList; - public static string[] EmptyStringArray; - public static System.Collections.Generic.Dictionary EmptyStringDictionary; - public static System.Collections.Generic.List EmptyStringList; - public static System.ReadOnlyMemory EmptyStringMemory { get => throw null; } - public static System.ReadOnlySpan EmptyStringSpan { get => throw null; } - public static System.Threading.Tasks.Task EmptyTask; - public static System.Type[] EmptyTypeArray; - public static System.Collections.Generic.List EmptyTypeList; - public static System.Threading.Tasks.Task FalseTask; - public const System.Char NonWidthWhiteSpace = default; - public static System.Char[] NonWidthWhiteSpaceChars; - public static System.ReadOnlyMemory NullStringMemory { get => throw null; } - public static System.ReadOnlySpan NullStringSpan { get => throw null; } - public static System.Threading.Tasks.Task TrueTask; - public static System.Threading.Tasks.Task ZeroTask; - } - - // Generated from `ServiceStack.TypeConstants<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TypeConstants - { - public static T[] EmptyArray; - public static System.Collections.Generic.HashSet EmptyHashSet; - public static System.Collections.Generic.List EmptyList; - } - - // Generated from `ServiceStack.TypeFields` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class TypeFields - { - public static System.Type FactoryType; - public System.Collections.Generic.Dictionary FieldsMap; - public static ServiceStack.TypeFields Get(System.Type type) => throw null; - public ServiceStack.FieldAccessor GetAccessor(string propertyName) => throw null; - public virtual System.Reflection.FieldInfo GetPublicField(string name) => throw null; - public virtual ServiceStack.GetMemberDelegate GetPublicGetter(string name) => throw null; - public virtual ServiceStack.GetMemberDelegate GetPublicGetter(System.Reflection.FieldInfo fi) => throw null; - public virtual ServiceStack.SetMemberDelegate GetPublicSetter(string name) => throw null; - public virtual ServiceStack.SetMemberDelegate GetPublicSetter(System.Reflection.FieldInfo fi) => throw null; - public virtual ServiceStack.SetMemberRefDelegate GetPublicSetterRef(string name) => throw null; - public System.Reflection.FieldInfo[] PublicFieldInfos { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } - protected TypeFields() => throw null; - } - - // Generated from `ServiceStack.TypeFields<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypeFields : ServiceStack.TypeFields - { - public static ServiceStack.FieldAccessor GetAccessor(string propertyName) => throw null; - public static ServiceStack.TypeFields Instance; - public TypeFields() => throw null; - } - - // Generated from `ServiceStack.TypeProperties` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class TypeProperties - { - public static System.Type FactoryType; - public static ServiceStack.TypeProperties Get(System.Type type) => throw null; - public ServiceStack.PropertyAccessor GetAccessor(string propertyName) => throw null; - public ServiceStack.GetMemberDelegate GetPublicGetter(string name) => throw null; - public ServiceStack.GetMemberDelegate GetPublicGetter(System.Reflection.PropertyInfo pi) => throw null; - public System.Reflection.PropertyInfo GetPublicProperty(string name) => throw null; - public ServiceStack.SetMemberDelegate GetPublicSetter(string name) => throw null; - public ServiceStack.SetMemberDelegate GetPublicSetter(System.Reflection.PropertyInfo pi) => throw null; - public System.Collections.Generic.Dictionary PropertyMap; - public System.Reflection.PropertyInfo[] PublicPropertyInfos { get => throw null; set => throw null; } - public System.Type Type { get => throw null; set => throw null; } - protected TypeProperties() => throw null; - } - - // Generated from `ServiceStack.TypeProperties<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypeProperties : ServiceStack.TypeProperties - { - public static ServiceStack.PropertyAccessor GetAccessor(string propertyName) => throw null; - public static ServiceStack.TypeProperties Instance; - public TypeProperties() => throw null; - } - - // Generated from `ServiceStack.WriteComplexTypeDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate bool WriteComplexTypeDelegate(System.IO.TextWriter writer, string propertyName, object obj); - - namespace Extensions - { - // Generated from `ServiceStack.Extensions.ServiceStackExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceStackExtensions - { - public static System.ReadOnlyMemory Trim(this System.ReadOnlyMemory span) => throw null; - public static System.ReadOnlyMemory TrimEnd(this System.ReadOnlyMemory value) => throw null; - public static System.ReadOnlyMemory TrimStart(this System.ReadOnlyMemory value) => throw null; - } - - } - namespace Memory - { - // Generated from `ServiceStack.Memory.NetCoreMemory` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreMemory : ServiceStack.Text.MemoryProvider - { - public override System.Text.StringBuilder Append(System.Text.StringBuilder sb, System.ReadOnlySpan value) => throw null; - public static void Configure() => throw null; - public override object Deserialize(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer) => throw null; - public override System.Threading.Tasks.Task DeserializeAsync(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer) => throw null; - public override int FromUtf8(System.ReadOnlySpan source, System.Span destination) => throw null; - public override System.ReadOnlyMemory FromUtf8(System.ReadOnlySpan source) => throw null; - public override string FromUtf8Bytes(System.ReadOnlySpan source) => throw null; - public override int GetUtf8ByteCount(System.ReadOnlySpan chars) => throw null; - public override int GetUtf8CharCount(System.ReadOnlySpan bytes) => throw null; - public override System.Byte[] ParseBase64(System.ReadOnlySpan value) => throw null; - public override bool ParseBoolean(System.ReadOnlySpan value) => throw null; - public override System.Byte ParseByte(System.ReadOnlySpan value) => throw null; - public override System.Decimal ParseDecimal(System.ReadOnlySpan value, bool allowThousands) => throw null; - public override System.Decimal ParseDecimal(System.ReadOnlySpan value) => throw null; - public override double ParseDouble(System.ReadOnlySpan value) => throw null; - public override float ParseFloat(System.ReadOnlySpan value) => throw null; - public override System.Guid ParseGuid(System.ReadOnlySpan value) => throw null; - public override System.Int16 ParseInt16(System.ReadOnlySpan value) => throw null; - public override int ParseInt32(System.ReadOnlySpan value) => throw null; - public override System.Int64 ParseInt64(System.ReadOnlySpan value) => throw null; - public override System.SByte ParseSByte(System.ReadOnlySpan value) => throw null; - public override System.UInt16 ParseUInt16(System.ReadOnlySpan value) => throw null; - public override System.UInt32 ParseUInt32(System.ReadOnlySpan value, System.Globalization.NumberStyles style) => throw null; - public override System.UInt32 ParseUInt32(System.ReadOnlySpan value) => throw null; - public override System.UInt64 ParseUInt64(System.ReadOnlySpan value) => throw null; - public static ServiceStack.Memory.NetCoreMemory Provider { get => throw null; } - public override string ToBase64(System.ReadOnlyMemory value) => throw null; - public override System.IO.MemoryStream ToMemoryStream(System.ReadOnlySpan source) => throw null; - public override int ToUtf8(System.ReadOnlySpan source, System.Span destination) => throw null; - public override System.ReadOnlyMemory ToUtf8(System.ReadOnlySpan source) => throw null; - public override System.Byte[] ToUtf8Bytes(System.ReadOnlySpan source) => throw null; - public override bool TryParseBoolean(System.ReadOnlySpan value, out bool result) => throw null; - public override bool TryParseDecimal(System.ReadOnlySpan value, out System.Decimal result) => throw null; - public override bool TryParseDouble(System.ReadOnlySpan value, out double result) => throw null; - public override bool TryParseFloat(System.ReadOnlySpan value, out float result) => throw null; - public override void Write(System.IO.Stream stream, System.ReadOnlyMemory value) => throw null; - public override void Write(System.IO.Stream stream, System.ReadOnlyMemory value) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlySpan value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - } - namespace Text - { - // Generated from `ServiceStack.Text.AssemblyUtils` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AssemblyUtils - { - public static System.Type FindType(string typeName, string assemblyName) => throw null; - public static System.Type FindType(string typeName) => throw null; - public static System.Type FindTypeFromLoadedAssemblies(string typeName) => throw null; - public static string GetAssemblyBinPath(System.Reflection.Assembly assembly) => throw null; - public static System.Reflection.Assembly LoadAssembly(string assemblyPath) => throw null; - public static System.Type MainInterface() => throw null; - public static string ToTypeString(this System.Type type) => throw null; - public static string WriteType(System.Type type) => throw null; - } - - // Generated from `ServiceStack.Text.CachedTypeInfo` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CachedTypeInfo - { - public CachedTypeInfo(System.Type type) => throw null; - public ServiceStack.Text.EnumInfo EnumInfo { get => throw null; } - public static ServiceStack.Text.CachedTypeInfo Get(System.Type type) => throw null; - } - - // Generated from `ServiceStack.Text.CharMemoryExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CharMemoryExtensions - { - public static System.ReadOnlyMemory Advance(this System.ReadOnlyMemory text, int to) => throw null; - public static System.ReadOnlyMemory AdvancePastChar(this System.ReadOnlyMemory literal, System.Char delim) => throw null; - public static System.ReadOnlyMemory AdvancePastWhitespace(this System.ReadOnlyMemory literal) => throw null; - public static bool EndsWith(this System.ReadOnlyMemory value, string other, System.StringComparison comparison) => throw null; - public static bool EndsWith(this System.ReadOnlyMemory value, string other) => throw null; - public static bool EqualsOrdinal(this System.ReadOnlyMemory value, string other) => throw null; - public static bool EqualsOrdinal(this System.ReadOnlyMemory value, System.ReadOnlyMemory other) => throw null; - public static System.ReadOnlyMemory FromUtf8(this System.ReadOnlyMemory bytes) => throw null; - public static int IndexOf(this System.ReadOnlyMemory value, string needle, int start) => throw null; - public static int IndexOf(this System.ReadOnlyMemory value, string needle) => throw null; - public static int IndexOf(this System.ReadOnlyMemory value, System.Char needle, int start) => throw null; - public static int IndexOf(this System.ReadOnlyMemory value, System.Char needle) => throw null; - public static bool IsNullOrEmpty(this System.ReadOnlyMemory value) => throw null; - public static bool IsNullOrWhiteSpace(this System.ReadOnlyMemory value) => throw null; - public static bool IsWhiteSpace(this System.ReadOnlyMemory value) => throw null; - public static int LastIndexOf(this System.ReadOnlyMemory value, string needle, int start) => throw null; - public static int LastIndexOf(this System.ReadOnlyMemory value, string needle) => throw null; - public static int LastIndexOf(this System.ReadOnlyMemory value, System.Char needle, int start) => throw null; - public static int LastIndexOf(this System.ReadOnlyMemory value, System.Char needle) => throw null; - public static System.ReadOnlyMemory LastLeftPart(this System.ReadOnlyMemory strVal, string needle) => throw null; - public static System.ReadOnlyMemory LastLeftPart(this System.ReadOnlyMemory strVal, System.Char needle) => throw null; - public static System.ReadOnlyMemory LastRightPart(this System.ReadOnlyMemory strVal, string needle) => throw null; - public static System.ReadOnlyMemory LastRightPart(this System.ReadOnlyMemory strVal, System.Char needle) => throw null; - public static System.ReadOnlyMemory LeftPart(this System.ReadOnlyMemory strVal, string needle) => throw null; - public static System.ReadOnlyMemory LeftPart(this System.ReadOnlyMemory strVal, System.Char needle) => throw null; - public static bool ParseBoolean(this System.ReadOnlyMemory value) => throw null; - public static System.Byte ParseByte(this System.ReadOnlyMemory value) => throw null; - public static System.Decimal ParseDecimal(this System.ReadOnlyMemory value) => throw null; - public static double ParseDouble(this System.ReadOnlyMemory value) => throw null; - public static float ParseFloat(this System.ReadOnlyMemory value) => throw null; - public static System.Guid ParseGuid(this System.ReadOnlyMemory value) => throw null; - public static System.Int16 ParseInt16(this System.ReadOnlyMemory value) => throw null; - public static int ParseInt32(this System.ReadOnlyMemory value) => throw null; - public static System.Int64 ParseInt64(this System.ReadOnlyMemory value) => throw null; - public static System.SByte ParseSByte(this System.ReadOnlyMemory value) => throw null; - public static System.UInt16 ParseUInt16(this System.ReadOnlyMemory value) => throw null; - public static System.UInt32 ParseUInt32(this System.ReadOnlyMemory value) => throw null; - public static System.UInt64 ParseUInt64(this System.ReadOnlyMemory value) => throw null; - public static System.ReadOnlyMemory RightPart(this System.ReadOnlyMemory strVal, string needle) => throw null; - public static System.ReadOnlyMemory RightPart(this System.ReadOnlyMemory strVal, System.Char needle) => throw null; - public static System.ReadOnlyMemory SafeSlice(this System.ReadOnlyMemory value, int startIndex, int length) => throw null; - public static System.ReadOnlyMemory SafeSlice(this System.ReadOnlyMemory value, int startIndex) => throw null; - public static void SplitOnFirst(this System.ReadOnlyMemory strVal, System.ReadOnlyMemory needle, out System.ReadOnlyMemory first, out System.ReadOnlyMemory last) => throw null; - public static void SplitOnFirst(this System.ReadOnlyMemory strVal, System.Char needle, out System.ReadOnlyMemory first, out System.ReadOnlyMemory last) => throw null; - public static void SplitOnLast(this System.ReadOnlyMemory strVal, System.ReadOnlyMemory needle, out System.ReadOnlyMemory first, out System.ReadOnlyMemory last) => throw null; - public static void SplitOnLast(this System.ReadOnlyMemory strVal, System.Char needle, out System.ReadOnlyMemory first, out System.ReadOnlyMemory last) => throw null; - public static bool StartsWith(this System.ReadOnlyMemory value, string other, System.StringComparison comparison) => throw null; - public static bool StartsWith(this System.ReadOnlyMemory value, string other) => throw null; - public static string SubstringWithEllipsis(this System.ReadOnlyMemory value, int startIndex, int length) => throw null; - public static System.ReadOnlyMemory ToUtf8(this System.ReadOnlyMemory chars) => throw null; - public static bool TryParseBoolean(this System.ReadOnlyMemory value, out bool result) => throw null; - public static bool TryParseDecimal(this System.ReadOnlyMemory value, out System.Decimal result) => throw null; - public static bool TryParseDouble(this System.ReadOnlyMemory value, out double result) => throw null; - public static bool TryParseFloat(this System.ReadOnlyMemory value, out float result) => throw null; - public static bool TryReadLine(this System.ReadOnlyMemory text, out System.ReadOnlyMemory line, ref int startIndex) => throw null; - public static bool TryReadPart(this System.ReadOnlyMemory text, System.ReadOnlyMemory needle, out System.ReadOnlyMemory part, ref int startIndex) => throw null; - } - - // Generated from `ServiceStack.Text.Config` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Config - { - public bool AlwaysUseUtc { get => throw null; set => throw null; } - public bool AppendUtcOffset { get => throw null; set => throw null; } - public static ServiceStack.Text.Config AssertNotInit() => throw null; - public bool AssumeUtc { get => throw null; set => throw null; } - public Config() => throw null; - public bool ConvertObjectTypesIntoStringDictionary { get => throw null; set => throw null; } - public ServiceStack.Text.DateHandler DateHandler { get => throw null; set => throw null; } - public string DateTimeFormat { get => throw null; set => throw null; } - public static ServiceStack.Text.Config Defaults { get => throw null; } - public bool EmitCamelCaseNames { get => throw null; set => throw null; } - public bool EmitLowercaseUnderscoreNames { get => throw null; set => throw null; } - public bool EscapeHtmlChars { get => throw null; set => throw null; } - public bool EscapeUnicode { get => throw null; set => throw null; } - public bool ExcludeDefaultValues { get => throw null; set => throw null; } - public string[] ExcludePropertyReferences { get => throw null; set => throw null; } - public bool ExcludeTypeInfo { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet ExcludeTypeNames { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet ExcludeTypes { get => throw null; set => throw null; } - public bool IncludeDefaultEnums { get => throw null; set => throw null; } - public bool IncludeNullValues { get => throw null; set => throw null; } - public bool IncludeNullValuesInDictionaries { get => throw null; set => throw null; } - public bool IncludePublicFields { get => throw null; set => throw null; } - public bool IncludeTypeInfo { get => throw null; set => throw null; } - public static void Init(ServiceStack.Text.Config config) => throw null; - public static void Init() => throw null; - public int MaxDepth { get => throw null; set => throw null; } - public ServiceStack.EmptyCtorFactoryDelegate ModelFactory { get => throw null; set => throw null; } - public ServiceStack.Text.Common.DeserializationErrorDelegate OnDeserializationError { get => throw null; set => throw null; } - public ServiceStack.Text.ParseAsType ParsePrimitiveFloatingPointTypes { get => throw null; set => throw null; } - public System.Func ParsePrimitiveFn { get => throw null; set => throw null; } - public ServiceStack.Text.ParseAsType ParsePrimitiveIntegerTypes { get => throw null; set => throw null; } - public ServiceStack.Text.Config Populate(ServiceStack.Text.Config config) => throw null; - public bool PreferInterfaces { get => throw null; set => throw null; } - public ServiceStack.Text.PropertyConvention PropertyConvention { get => throw null; set => throw null; } - public bool SkipDateTimeConversion { get => throw null; set => throw null; } - public ServiceStack.Text.TextCase TextCase { get => throw null; set => throw null; } - public bool ThrowOnError { get => throw null; set => throw null; } - public ServiceStack.Text.TimeSpanHandler TimeSpanHandler { get => throw null; set => throw null; } - public bool TreatEnumAsInteger { get => throw null; set => throw null; } - public bool TryParseIntoBestFit { get => throw null; set => throw null; } - public bool TryToParseNumericType { get => throw null; set => throw null; } - public bool TryToParsePrimitiveTypeValues { get => throw null; set => throw null; } - public string TypeAttr { get => throw null; set => throw null; } - public System.ReadOnlyMemory TypeAttrMemory { get => throw null; } - public System.Func TypeFinder { get => throw null; set => throw null; } - public System.Func TypeWriter { get => throw null; set => throw null; } - public static void UnsafeInit(ServiceStack.Text.Config config) => throw null; - } - - // Generated from `ServiceStack.Text.ConvertibleTypeKey` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConvertibleTypeKey - { - public ConvertibleTypeKey(System.Type toInstanceType, System.Type fromElementType) => throw null; - public ConvertibleTypeKey() => throw null; - public override bool Equals(object obj) => throw null; - public bool Equals(ServiceStack.Text.ConvertibleTypeKey other) => throw null; - public System.Type FromElementType { get => throw null; set => throw null; } - public override int GetHashCode() => throw null; - public System.Type ToInstanceType { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Text.CsvAttribute` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvAttribute : System.Attribute - { - public CsvAttribute(ServiceStack.Text.CsvBehavior csvBehavior) => throw null; - public ServiceStack.Text.CsvBehavior CsvBehavior { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Text.CsvBehavior` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum CsvBehavior - { - FirstEnumerable, - } - - // Generated from `ServiceStack.Text.CsvConfig` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CsvConfig - { - public static string[] EscapeStrings { get => throw null; set => throw null; } - public static string ItemDelimiterString { get => throw null; set => throw null; } - public static string ItemSeperatorString { get => throw null; set => throw null; } - public static System.Globalization.CultureInfo RealNumberCultureInfo { get => throw null; set => throw null; } - public static void Reset() => throw null; - public static string RowSeparatorString { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Text.CsvConfig<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CsvConfig - { - public static object CustomHeaders { set => throw null; } - public static System.Collections.Generic.Dictionary CustomHeadersMap { get => throw null; set => throw null; } - public static bool OmitHeaders { get => throw null; set => throw null; } - public static void Reset() => throw null; - } - - // Generated from `ServiceStack.Text.CsvReader` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvReader - { - public CsvReader() => throw null; - public static string EatValue(string value, ref int i) => throw null; - public static System.Collections.Generic.List ParseFields(string line, System.Func parseFn) => throw null; - public static System.Collections.Generic.List ParseFields(string line) => throw null; - public static System.Collections.Generic.List ParseLines(string csv) => throw null; - } - - // Generated from `ServiceStack.Text.CsvReader<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvReader - { - public CsvReader() => throw null; - public static System.Collections.Generic.List GetRows(System.Collections.Generic.IEnumerable records) => throw null; - public static System.Collections.Generic.List Headers { get => throw null; set => throw null; } - public static System.Collections.Generic.List Read(System.Collections.Generic.List rows) => throw null; - public static object ReadObject(string csv) => throw null; - public static object ReadObjectRow(string csv) => throw null; - public static T ReadRow(string value) => throw null; - public static System.Collections.Generic.List> ReadStringDictionary(System.Collections.Generic.IEnumerable rows) => throw null; - } - - // Generated from `ServiceStack.Text.CsvSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvSerializer - { - public CsvSerializer() => throw null; - public static T DeserializeFromReader(System.IO.TextReader reader) => throw null; - public static object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public static T DeserializeFromStream(System.IO.Stream stream) => throw null; - public static object DeserializeFromString(System.Type type, string text) => throw null; - public static T DeserializeFromString(string text) => throw null; - public static void InitAot() => throw null; - public static System.Action OnSerialize { get => throw null; set => throw null; } - public static object ReadLateBoundObject(System.Type type, string value) => throw null; - public static string SerializeToCsv(System.Collections.Generic.IEnumerable records) => throw null; - public static void SerializeToStream(T value, System.IO.Stream stream) => throw null; - public static void SerializeToStream(object obj, System.IO.Stream stream) => throw null; - public static string SerializeToString(T value) => throw null; - public static void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; - public static System.Text.Encoding UseEncoding { get => throw null; set => throw null; } - public static void WriteLateBoundObject(System.IO.TextWriter writer, object value) => throw null; - } - - // Generated from `ServiceStack.Text.CsvSerializer<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CsvSerializer - { - public static object ReadEnumerableProperty(string row) => throw null; - public static object ReadEnumerableType(string value) => throw null; - public static ServiceStack.Text.Common.ParseStringDelegate ReadFn() => throw null; - public static object ReadNonEnumerableType(string row) => throw null; - public static object ReadObject(string value) => throw null; - public static object ReadSelf(string value) => throw null; - public static void WriteEnumerableProperty(System.IO.TextWriter writer, object obj) => throw null; - public static void WriteEnumerableType(System.IO.TextWriter writer, object obj) => throw null; - public static ServiceStack.Text.Common.WriteObjectDelegate WriteFn() => throw null; - public static void WriteNonEnumerableType(System.IO.TextWriter writer, object obj) => throw null; - public static void WriteObject(System.IO.TextWriter writer, object value) => throw null; - public static void WriteSelf(System.IO.TextWriter writer, object obj) => throw null; - } - - // Generated from `ServiceStack.Text.CsvStreamExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CsvStreamExtensions - { - public static void WriteCsv(this System.IO.TextWriter writer, System.Collections.Generic.IEnumerable records) => throw null; - public static void WriteCsv(this System.IO.Stream outputStream, System.Collections.Generic.IEnumerable records) => throw null; - } - - // Generated from `ServiceStack.Text.CsvWriter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CsvWriter - { - public static bool HasAnyEscapeChars(string value) => throw null; - } - - // Generated from `ServiceStack.Text.CsvWriter<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvWriter - { - public CsvWriter() => throw null; - public const System.Char DelimiterChar = default; - public static System.Collections.Generic.List> GetRows(System.Collections.Generic.IEnumerable records) => throw null; - public static System.Collections.Generic.List Headers { get => throw null; set => throw null; } - public static void Write(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable records) => throw null; - public static void Write(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable> rows) => throw null; - public static void WriteObject(System.IO.TextWriter writer, object records) => throw null; - public static void WriteObjectRow(System.IO.TextWriter writer, object record) => throw null; - public static void WriteRow(System.IO.TextWriter writer, T row) => throw null; - public static void WriteRow(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable row) => throw null; - } - - // Generated from `ServiceStack.Text.DateHandler` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum DateHandler - { - DCJSCompatible, - ISO8601, - ISO8601DateOnly, - ISO8601DateTime, - RFC1123, - TimestampOffset, - UnixTime, - UnixTimeMs, - } - - // Generated from `ServiceStack.Text.DateTimeExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DateTimeExtensions - { - public static System.DateTime EndOfLastMonth(this System.DateTime from) => throw null; - public static string FmtSortableDate(this System.DateTime from) => throw null; - public static string FmtSortableDateTime(this System.DateTime from) => throw null; - public static System.DateTime FromShortestXsdDateTimeString(this string xsdDateTime) => throw null; - public static System.TimeSpan FromTimeOffsetString(this string offsetString) => throw null; - public static System.DateTime FromUnixTime(this int unixTime) => throw null; - public static System.DateTime FromUnixTime(this double unixTime) => throw null; - public static System.DateTime FromUnixTime(this System.Int64 unixTime) => throw null; - public static System.DateTime FromUnixTimeMs(this double msSince1970, System.TimeSpan offset) => throw null; - public static System.DateTime FromUnixTimeMs(this double msSince1970) => throw null; - public static System.DateTime FromUnixTimeMs(this System.Int64 msSince1970, System.TimeSpan offset) => throw null; - public static System.DateTime FromUnixTimeMs(this System.Int64 msSince1970) => throw null; - public static System.DateTime FromUnixTimeMs(string msSince1970, System.TimeSpan offset) => throw null; - public static System.DateTime FromUnixTimeMs(string msSince1970) => throw null; - public static bool IsEqualToTheSecond(this System.DateTime dateTime, System.DateTime otherDateTime) => throw null; - public static System.DateTime LastMonday(this System.DateTime from) => throw null; - public static System.DateTime RoundToMs(this System.DateTime dateTime) => throw null; - public static System.DateTime RoundToSecond(this System.DateTime dateTime) => throw null; - public static System.DateTime StartOfLastMonth(this System.DateTime from) => throw null; - public static string ToShortestXsdDateTimeString(this System.DateTime dateTime) => throw null; - public static System.DateTime ToStableUniversalTime(this System.DateTime dateTime) => throw null; - public static string ToTimeOffsetString(this System.TimeSpan offset, string seperator = default(string)) => throw null; - public static System.Int64 ToUnixTime(this System.DateTime dateTime) => throw null; - public static System.Int64 ToUnixTimeMs(this System.Int64 ticks) => throw null; - public static System.Int64 ToUnixTimeMs(this System.DateTime dateTime) => throw null; - public static System.Int64 ToUnixTimeMsAlt(this System.DateTime dateTime) => throw null; - public static System.DateTime Truncate(this System.DateTime dateTime, System.TimeSpan timeSpan) => throw null; - public const System.Int64 UnixEpoch = default; - } - - // Generated from `ServiceStack.Text.DefaultMemory` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultMemory : ServiceStack.Text.MemoryProvider - { - public override System.Text.StringBuilder Append(System.Text.StringBuilder sb, System.ReadOnlySpan value) => throw null; - public static void Configure() => throw null; - public override object Deserialize(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer) => throw null; - public override System.Threading.Tasks.Task DeserializeAsync(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer) => throw null; - public override int FromUtf8(System.ReadOnlySpan source, System.Span destination) => throw null; - public override System.ReadOnlyMemory FromUtf8(System.ReadOnlySpan source) => throw null; - public override string FromUtf8Bytes(System.ReadOnlySpan source) => throw null; - public override int GetUtf8ByteCount(System.ReadOnlySpan chars) => throw null; - public override int GetUtf8CharCount(System.ReadOnlySpan bytes) => throw null; - public override System.Byte[] ParseBase64(System.ReadOnlySpan value) => throw null; - public override bool ParseBoolean(System.ReadOnlySpan value) => throw null; - public override System.Byte ParseByte(System.ReadOnlySpan value) => throw null; - public override System.Decimal ParseDecimal(System.ReadOnlySpan value, bool allowThousands) => throw null; - public override System.Decimal ParseDecimal(System.ReadOnlySpan value) => throw null; - public override double ParseDouble(System.ReadOnlySpan value) => throw null; - public override float ParseFloat(System.ReadOnlySpan value) => throw null; - public override System.Guid ParseGuid(System.ReadOnlySpan value) => throw null; - public override System.Int16 ParseInt16(System.ReadOnlySpan value) => throw null; - public override int ParseInt32(System.ReadOnlySpan value) => throw null; - public override System.Int64 ParseInt64(System.ReadOnlySpan value) => throw null; - public override System.SByte ParseSByte(System.ReadOnlySpan value) => throw null; - public override System.UInt16 ParseUInt16(System.ReadOnlySpan value) => throw null; - public override System.UInt32 ParseUInt32(System.ReadOnlySpan value, System.Globalization.NumberStyles style) => throw null; - public override System.UInt32 ParseUInt32(System.ReadOnlySpan value) => throw null; - public override System.UInt64 ParseUInt64(System.ReadOnlySpan value) => throw null; - public static ServiceStack.Text.DefaultMemory Provider { get => throw null; } - public override string ToBase64(System.ReadOnlyMemory value) => throw null; - public override System.IO.MemoryStream ToMemoryStream(System.ReadOnlySpan source) => throw null; - public override int ToUtf8(System.ReadOnlySpan source, System.Span destination) => throw null; - public override System.ReadOnlyMemory ToUtf8(System.ReadOnlySpan source) => throw null; - public override System.Byte[] ToUtf8Bytes(System.ReadOnlySpan source) => throw null; - public override bool TryParseBoolean(System.ReadOnlySpan value, out bool result) => throw null; - public static bool TryParseDecimal(System.ReadOnlySpan value, bool allowThousands, out System.Decimal result) => throw null; - public override bool TryParseDecimal(System.ReadOnlySpan value, out System.Decimal result) => throw null; - public override bool TryParseDouble(System.ReadOnlySpan value, out double result) => throw null; - public override bool TryParseFloat(System.ReadOnlySpan value, out float result) => throw null; - public override void Write(System.IO.Stream stream, System.ReadOnlyMemory value) => throw null; - public override void Write(System.IO.Stream stream, System.ReadOnlyMemory value) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlySpan value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.Text.DirectStreamWriter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DirectStreamWriter : System.IO.TextWriter - { - public DirectStreamWriter(System.IO.Stream stream, System.Text.Encoding encoding) => throw null; - public override System.Text.Encoding Encoding { get => throw null; } - public override void Flush() => throw null; - public override void Write(string s) => throw null; - public override void Write(System.Char c) => throw null; - } - - // Generated from `ServiceStack.Text.DynamicProxy` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DynamicProxy - { - public static void BindProperty(System.Reflection.Emit.TypeBuilder typeBuilder, System.Reflection.MethodInfo methodInfo) => throw null; - public static object GetInstanceFor(System.Type targetType) => throw null; - public static T GetInstanceFor() => throw null; - } - - // Generated from `ServiceStack.Text.EmitReflectionOptimizer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmitReflectionOptimizer : ServiceStack.Text.ReflectionOptimizer - { - public override ServiceStack.EmptyCtorDelegate CreateConstructor(System.Type type) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.SetMemberRefDelegate CreateSetterRef(System.Reflection.FieldInfo fieldInfo) => throw null; - public override bool IsDynamic(System.Reflection.Assembly assembly) => throw null; - public static ServiceStack.Text.EmitReflectionOptimizer Provider { get => throw null; } - public override System.Type UseType(System.Type type) => throw null; - } - - // Generated from `ServiceStack.Text.EnumInfo` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EnumInfo - { - public static ServiceStack.Text.EnumInfo GetEnumInfo(System.Type type) => throw null; - public object GetSerializedValue(object enumValue) => throw null; - public object Parse(string serializedValue) => throw null; - } - - // Generated from `ServiceStack.Text.Env` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Env - { - public static System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable ConfigAwait(this System.Threading.Tasks.ValueTask task) => throw null; - public static System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable ConfigAwait(this System.Threading.Tasks.ValueTask task) => throw null; - public static System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigAwait(this System.Threading.Tasks.Task task) => throw null; - public static System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigAwait(this System.Threading.Tasks.Task task) => throw null; - public const bool ContinueOnCapturedContext = default; - public static System.DateTime GetReleaseDate() => throw null; - public static bool HasMultiplePlatformTargets { get => throw null; set => throw null; } - public static bool IsAndroid { get => throw null; set => throw null; } - public static bool IsIOS { get => throw null; set => throw null; } - public static bool IsLinux { get => throw null; set => throw null; } - public static bool IsMono { get => throw null; set => throw null; } - public static bool IsNetCore { get => throw null; set => throw null; } - public static bool IsNetCore21 { get => throw null; set => throw null; } - public static bool IsNetCore3 { get => throw null; set => throw null; } - public static bool IsNetFramework { get => throw null; set => throw null; } - public static bool IsNetNative { get => throw null; set => throw null; } - public static bool IsNetStandard { get => throw null; set => throw null; } - public static bool IsNetStandard20 { get => throw null; set => throw null; } - public static bool IsOSX { get => throw null; set => throw null; } - public static bool IsUWP { get => throw null; set => throw null; } - public static bool IsUnix { get => throw null; set => throw null; } - public static bool IsWindows { get => throw null; set => throw null; } - public static string ReferenceAssemblyPath { get => throw null; set => throw null; } - public static string ReferenceAssembyPath { get => throw null; } - public static string ServerUserAgent { get => throw null; set => throw null; } - public static System.Decimal ServiceStackVersion; - public static bool StrictMode { get => throw null; set => throw null; } - public static bool SupportsDynamic { get => throw null; set => throw null; } - public static bool SupportsEmit { get => throw null; set => throw null; } - public static bool SupportsExpressions { get => throw null; set => throw null; } - public static string VersionString { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Text.ExpressionReflectionOptimizer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ExpressionReflectionOptimizer : ServiceStack.Text.ReflectionOptimizer - { - public override ServiceStack.EmptyCtorDelegate CreateConstructor(System.Type type) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.SetMemberRefDelegate CreateSetterRef(System.Reflection.FieldInfo fieldInfo) => throw null; - public static System.Linq.Expressions.Expression GetExpressionLambda(System.Reflection.PropertyInfo propertyInfo) => throw null; - public static System.Linq.Expressions.Expression> GetExpressionLambda(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override bool IsDynamic(System.Reflection.Assembly assembly) => throw null; - public static ServiceStack.Text.ExpressionReflectionOptimizer Provider { get => throw null; } - public static System.Linq.Expressions.Expression> SetExpressionLambda(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override System.Type UseType(System.Type type) => throw null; - } - - // Generated from `ServiceStack.Text.IRuntimeSerializable` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRuntimeSerializable - { - } - - // Generated from `ServiceStack.Text.IStringSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IStringSerializer - { - object DeserializeFromString(string serializedText, System.Type type); - To DeserializeFromString(string serializedText); - string SerializeToString(TFrom from); - } - - // Generated from `ServiceStack.Text.ITracer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITracer - { - void WriteDebug(string format, params object[] args); - void WriteDebug(string error); - void WriteError(string format, params object[] args); - void WriteError(string error); - void WriteError(System.Exception ex); - void WriteWarning(string warning); - void WriteWarning(string format, params object[] args); - } - - // Generated from `ServiceStack.Text.ITypeSerializer<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypeSerializer - { - bool CanCreateFromString(System.Type type); - T DeserializeFromReader(System.IO.TextReader reader); - T DeserializeFromString(string value); - string SerializeToString(T value); - void SerializeToWriter(T value, System.IO.TextWriter writer); - } - - // Generated from `ServiceStack.Text.IValueWriter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValueWriter - { - void WriteTo(ServiceStack.Text.Common.ITypeSerializer serializer, System.IO.TextWriter writer); - } - - // Generated from `ServiceStack.Text.JsConfig` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsConfig - { - public static System.Func AllowRuntimeType { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet AllowRuntimeTypeInTypes { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet AllowRuntimeTypeInTypesWithNamespaces { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet AllowRuntimeTypeWithAttributesNamed { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet AllowRuntimeTypeWithInterfacesNamed { get => throw null; set => throw null; } - public static bool AlwaysUseUtc { get => throw null; set => throw null; } - public static bool AppendUtcOffset { get => throw null; set => throw null; } - public static bool AssumeUtc { get => throw null; set => throw null; } - public static ServiceStack.Text.JsConfigScope BeginScope() => throw null; - public static bool ConvertObjectTypesIntoStringDictionary { get => throw null; set => throw null; } - public static ServiceStack.Text.JsConfigScope CreateScope(string config, ServiceStack.Text.JsConfigScope scope = default(ServiceStack.Text.JsConfigScope)) => throw null; - public static ServiceStack.Text.DateHandler DateHandler { get => throw null; set => throw null; } - public static string DateTimeFormat { get => throw null; set => throw null; } - public static bool EmitCamelCaseNames { get => throw null; set => throw null; } - public static bool EmitLowercaseUnderscoreNames { get => throw null; set => throw null; } - public static bool EscapeHtmlChars { get => throw null; set => throw null; } - public static bool EscapeUnicode { get => throw null; set => throw null; } - public static bool ExcludeDefaultValues { get => throw null; set => throw null; } - public static string[] ExcludePropertyReferences { get => throw null; set => throw null; } - public static bool ExcludeTypeInfo { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet ExcludeTypeNames { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet ExcludeTypes { get => throw null; set => throw null; } - public static ServiceStack.Text.Config GetConfig() => throw null; - public static bool HasInit { get => throw null; } - public static string[] IgnoreAttributesNamed { get => throw null; set => throw null; } - public static bool IncludeDefaultEnums { get => throw null; set => throw null; } - public static bool IncludeNullValues { get => throw null; set => throw null; } - public static bool IncludeNullValuesInDictionaries { get => throw null; set => throw null; } - public static bool IncludePublicFields { get => throw null; set => throw null; } - public static bool IncludeTypeInfo { get => throw null; set => throw null; } - public static void Init(ServiceStack.Text.Config config) => throw null; - public static void Init() => throw null; - public static void InitStatics() => throw null; - public static int MaxDepth { get => throw null; set => throw null; } - public static ServiceStack.EmptyCtorFactoryDelegate ModelFactory { get => throw null; set => throw null; } - public static ServiceStack.Text.Common.DeserializationErrorDelegate OnDeserializationError { get => throw null; set => throw null; } - public static ServiceStack.Text.ParseAsType ParsePrimitiveFloatingPointTypes { get => throw null; set => throw null; } - public static System.Func ParsePrimitiveFn { get => throw null; set => throw null; } - public static ServiceStack.Text.ParseAsType ParsePrimitiveIntegerTypes { get => throw null; set => throw null; } - public static bool PreferInterfaces { get => throw null; set => throw null; } - public static ServiceStack.Text.PropertyConvention PropertyConvention { get => throw null; set => throw null; } - public static void Reset() => throw null; - public static bool SkipDateTimeConversion { get => throw null; set => throw null; } - public static ServiceStack.Text.TextCase TextCase { get => throw null; set => throw null; } - public static bool ThrowOnDeserializationError { get => throw null; set => throw null; } - public static bool ThrowOnError { get => throw null; set => throw null; } - public static ServiceStack.Text.TimeSpanHandler TimeSpanHandler { get => throw null; set => throw null; } - public static bool TreatEnumAsInteger { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet TreatValueAsRefTypes; - public static bool TryParseIntoBestFit { get => throw null; set => throw null; } - public static bool TryToParseNumericType { get => throw null; set => throw null; } - public static bool TryToParsePrimitiveTypeValues { get => throw null; set => throw null; } - public static string TypeAttr { get => throw null; set => throw null; } - public static System.Func TypeFinder { get => throw null; set => throw null; } - public static System.Func TypeWriter { get => throw null; set => throw null; } - public static System.Text.UTF8Encoding UTF8Encoding { get => throw null; set => throw null; } - public static ServiceStack.Text.JsConfigScope With(bool? convertObjectTypesIntoStringDictionary = default(bool?), bool? tryToParsePrimitiveTypeValues = default(bool?), bool? tryToParseNumericType = default(bool?), ServiceStack.Text.ParseAsType? parsePrimitiveFloatingPointTypes = default(ServiceStack.Text.ParseAsType?), ServiceStack.Text.ParseAsType? parsePrimitiveIntegerTypes = default(ServiceStack.Text.ParseAsType?), bool? excludeDefaultValues = default(bool?), bool? includeNullValues = default(bool?), bool? includeNullValuesInDictionaries = default(bool?), bool? includeDefaultEnums = default(bool?), bool? excludeTypeInfo = default(bool?), bool? includeTypeInfo = default(bool?), bool? emitCamelCaseNames = default(bool?), bool? emitLowercaseUnderscoreNames = default(bool?), ServiceStack.Text.DateHandler? dateHandler = default(ServiceStack.Text.DateHandler?), ServiceStack.Text.TimeSpanHandler? timeSpanHandler = default(ServiceStack.Text.TimeSpanHandler?), ServiceStack.Text.PropertyConvention? propertyConvention = default(ServiceStack.Text.PropertyConvention?), bool? preferInterfaces = default(bool?), bool? throwOnDeserializationError = default(bool?), string typeAttr = default(string), string dateTimeFormat = default(string), System.Func typeWriter = default(System.Func), System.Func typeFinder = default(System.Func), bool? treatEnumAsInteger = default(bool?), bool? skipDateTimeConversion = default(bool?), bool? alwaysUseUtc = default(bool?), bool? assumeUtc = default(bool?), bool? appendUtcOffset = default(bool?), bool? escapeUnicode = default(bool?), bool? includePublicFields = default(bool?), int? maxDepth = default(int?), ServiceStack.EmptyCtorFactoryDelegate modelFactory = default(ServiceStack.EmptyCtorFactoryDelegate), string[] excludePropertyReferences = default(string[]), bool? useSystemParseMethods = default(bool?)) => throw null; - public static ServiceStack.Text.JsConfigScope With(ServiceStack.Text.Config config) => throw null; - } - - // Generated from `ServiceStack.Text.JsConfig<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsConfig - { - public static System.Func DeSerializeFn { get => throw null; set => throw null; } - public static bool? EmitCamelCaseNames { get => throw null; set => throw null; } - public static bool? EmitLowercaseUnderscoreNames { get => throw null; set => throw null; } - public static string[] ExcludePropertyNames; - public static bool? ExcludeTypeInfo; - public static bool HasDeserializeFn { get => throw null; } - public static bool HasDeserializingFn { get => throw null; } - public static bool HasSerializeFn { get => throw null; } - public static bool IncludeDefaultValue { get => throw null; set => throw null; } - public static bool? IncludeTypeInfo; - public JsConfig() => throw null; - public static System.Func OnDeserializedFn { get => throw null; set => throw null; } - public static System.Func OnDeserializingFn { get => throw null; set => throw null; } - public static System.Action OnSerializedFn { get => throw null; set => throw null; } - public static System.Func OnSerializingFn { get => throw null; set => throw null; } - public static object ParseFn(string str) => throw null; - public static System.Func RawDeserializeFn { get => throw null; set => throw null; } - public static System.Func RawSerializeFn { get => throw null; set => throw null; } - public static void RefreshRead() => throw null; - public static void RefreshWrite() => throw null; - public static void Reset() => throw null; - public static System.Func SerializeFn { get => throw null; set => throw null; } - public static ServiceStack.Text.TextCase TextCase { get => throw null; set => throw null; } - public static bool TreatValueAsRefType { get => throw null; set => throw null; } - public static void WriteFn(System.IO.TextWriter writer, object obj) => throw null; - } - - // Generated from `ServiceStack.Text.JsConfigScope` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsConfigScope : ServiceStack.Text.Config, System.IDisposable - { - public void Dispose() => throw null; - } - - // Generated from `ServiceStack.Text.JsonArrayObjects` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonArrayObjects : System.Collections.Generic.List - { - public JsonArrayObjects() => throw null; - public static ServiceStack.Text.JsonArrayObjects Parse(string json) => throw null; - } - - // Generated from `ServiceStack.Text.JsonExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsonExtensions - { - public static ServiceStack.Text.JsonArrayObjects ArrayObjects(this string json) => throw null; - public static System.Collections.Generic.List ConvertAll(this ServiceStack.Text.JsonArrayObjects jsonArrayObjects, System.Func converter) => throw null; - public static T ConvertTo(this ServiceStack.Text.JsonObject jsonObject, System.Func convertFn) => throw null; - public static string Get(this System.Collections.Generic.Dictionary map, string key) => throw null; - public static T Get(this System.Collections.Generic.Dictionary map, string key, T defaultValue = default(T)) => throw null; - public static T[] GetArray(this System.Collections.Generic.Dictionary map, string key) => throw null; - public static T JsonTo(this System.Collections.Generic.Dictionary map, string key) => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(this ServiceStack.Text.JsonObject jsonObject) => throw null; - } - - // Generated from `ServiceStack.Text.JsonObject` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonObject : System.Collections.Generic.Dictionary - { - public ServiceStack.Text.JsonArrayObjects ArrayObjects(string propertyName) => throw null; - public string Child(string key) => throw null; - public object ConvertTo(System.Type type) => throw null; - public T ConvertTo() => throw null; - public string GetUnescaped(string key) => throw null; - public string this[string key] { get => throw null; set => throw null; } - public JsonObject() => throw null; - public ServiceStack.Text.JsonObject Object(string propertyName) => throw null; - public static ServiceStack.Text.JsonObject Parse(string json) => throw null; - public static ServiceStack.Text.JsonArrayObjects ParseArray(string json) => throw null; - public static void WriteValue(System.IO.TextWriter writer, object value) => throw null; - } - - // Generated from `ServiceStack.Text.JsonSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsonSerializer - { - public static int BufferSize; - public static object DeserializeFromReader(System.IO.TextReader reader, System.Type type) => throw null; - public static T DeserializeFromReader(System.IO.TextReader reader) => throw null; - public static object DeserializeFromSpan(System.Type type, System.ReadOnlySpan value) => throw null; - public static T DeserializeFromSpan(System.ReadOnlySpan value) => throw null; - public static object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public static T DeserializeFromStream(System.IO.Stream stream) => throw null; - public static System.Threading.Tasks.Task DeserializeFromStreamAsync(System.Type type, System.IO.Stream stream) => throw null; - public static System.Threading.Tasks.Task DeserializeFromStreamAsync(System.IO.Stream stream) => throw null; - public static object DeserializeFromString(string value, System.Type type) => throw null; - public static T DeserializeFromString(string value) => throw null; - public static object DeserializeRequest(System.Type type, System.Net.WebRequest webRequest) => throw null; - public static T DeserializeRequest(System.Net.WebRequest webRequest) => throw null; - public static object DeserializeResponse(System.Type type, System.Net.WebRequest webRequest) => throw null; - public static object DeserializeResponse(System.Type type, System.Net.WebResponse webResponse) => throw null; - public static T DeserializeResponse(System.Net.WebResponse webResponse) => throw null; - public static T DeserializeResponse(System.Net.WebRequest webRequest) => throw null; - public static System.Action OnSerialize { get => throw null; set => throw null; } - public static void SerializeToStream(T value, System.IO.Stream stream) => throw null; - public static void SerializeToStream(object value, System.Type type, System.IO.Stream stream) => throw null; - public static string SerializeToString(T value) => throw null; - public static string SerializeToString(object value, System.Type type) => throw null; - public static void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; - public static void SerializeToWriter(object value, System.Type type, System.IO.TextWriter writer) => throw null; - public static System.Text.UTF8Encoding UTF8Encoding { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Text.JsonSerializer<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonSerializer : ServiceStack.Text.ITypeSerializer - { - public bool CanCreateFromString(System.Type type) => throw null; - public T DeserializeFromReader(System.IO.TextReader reader) => throw null; - public T DeserializeFromString(string value) => throw null; - public JsonSerializer() => throw null; - public string SerializeToString(T value) => throw null; - public void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; - } - - // Generated from `ServiceStack.Text.JsonStringSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonStringSerializer : ServiceStack.Text.IStringSerializer - { - public object DeserializeFromString(string serializedText, System.Type type) => throw null; - public To DeserializeFromString(string serializedText) => throw null; - public JsonStringSerializer() => throw null; - public string SerializeToString(TFrom from) => throw null; - } - - // Generated from `ServiceStack.Text.JsonValue` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct JsonValue : ServiceStack.Text.IValueWriter - { - public T As() => throw null; - public JsonValue(string json) => throw null; - // Stub generator skipped constructor - public override string ToString() => throw null; - public void WriteTo(ServiceStack.Text.Common.ITypeSerializer serializer, System.IO.TextWriter writer) => throw null; - } - - // Generated from `ServiceStack.Text.JsvFormatter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsvFormatter - { - public static string Format(string serializedText) => throw null; - } - - // Generated from `ServiceStack.Text.JsvStringSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsvStringSerializer : ServiceStack.Text.IStringSerializer - { - public object DeserializeFromString(string serializedText, System.Type type) => throw null; - public To DeserializeFromString(string serializedText) => throw null; - public JsvStringSerializer() => throw null; - public string SerializeToString(TFrom from) => throw null; - } - - // Generated from `ServiceStack.Text.MemoryProvider` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class MemoryProvider - { - public abstract System.Text.StringBuilder Append(System.Text.StringBuilder sb, System.ReadOnlySpan value); - public abstract object Deserialize(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer); - public abstract System.Threading.Tasks.Task DeserializeAsync(System.IO.Stream stream, System.Type type, ServiceStack.Text.Common.DeserializeStringSpanDelegate deserializer); - public abstract int FromUtf8(System.ReadOnlySpan source, System.Span destination); - public abstract System.ReadOnlyMemory FromUtf8(System.ReadOnlySpan source); - public abstract string FromUtf8Bytes(System.ReadOnlySpan source); - public abstract int GetUtf8ByteCount(System.ReadOnlySpan chars); - public abstract int GetUtf8CharCount(System.ReadOnlySpan bytes); - public static ServiceStack.Text.MemoryProvider Instance; - protected MemoryProvider() => throw null; - public abstract System.Byte[] ParseBase64(System.ReadOnlySpan value); - public abstract bool ParseBoolean(System.ReadOnlySpan value); - public abstract System.Byte ParseByte(System.ReadOnlySpan value); - public abstract System.Decimal ParseDecimal(System.ReadOnlySpan value, bool allowThousands); - public abstract System.Decimal ParseDecimal(System.ReadOnlySpan value); - public abstract double ParseDouble(System.ReadOnlySpan value); - public abstract float ParseFloat(System.ReadOnlySpan value); - public abstract System.Guid ParseGuid(System.ReadOnlySpan value); - public abstract System.Int16 ParseInt16(System.ReadOnlySpan value); - public abstract int ParseInt32(System.ReadOnlySpan value); - public abstract System.Int64 ParseInt64(System.ReadOnlySpan value); - public abstract System.SByte ParseSByte(System.ReadOnlySpan value); - public abstract System.UInt16 ParseUInt16(System.ReadOnlySpan value); - public abstract System.UInt32 ParseUInt32(System.ReadOnlySpan value, System.Globalization.NumberStyles style); - public abstract System.UInt32 ParseUInt32(System.ReadOnlySpan value); - public abstract System.UInt64 ParseUInt64(System.ReadOnlySpan value); - public abstract string ToBase64(System.ReadOnlyMemory value); - public abstract System.IO.MemoryStream ToMemoryStream(System.ReadOnlySpan source); - public abstract int ToUtf8(System.ReadOnlySpan source, System.Span destination); - public abstract System.ReadOnlyMemory ToUtf8(System.ReadOnlySpan source); - public abstract System.Byte[] ToUtf8Bytes(System.ReadOnlySpan source); - public abstract bool TryParseBoolean(System.ReadOnlySpan value, out bool result); - public abstract bool TryParseDecimal(System.ReadOnlySpan value, out System.Decimal result); - public abstract bool TryParseDouble(System.ReadOnlySpan value, out double result); - public abstract bool TryParseFloat(System.ReadOnlySpan value, out float result); - public abstract void Write(System.IO.Stream stream, System.ReadOnlyMemory value); - public abstract void Write(System.IO.Stream stream, System.ReadOnlyMemory value); - public abstract System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlySpan value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - public abstract System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - public abstract System.Threading.Tasks.Task WriteAsync(System.IO.Stream stream, System.ReadOnlyMemory value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Text.MemoryStreamFactory` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MemoryStreamFactory - { - public static System.IO.MemoryStream GetStream(int capacity) => throw null; - public static System.IO.MemoryStream GetStream(System.Byte[] bytes, int index, int count) => throw null; - public static System.IO.MemoryStream GetStream(System.Byte[] bytes) => throw null; - public static System.IO.MemoryStream GetStream() => throw null; - public static ServiceStack.Text.RecyclableMemoryStreamManager RecyclableInstance; - public static bool UseRecyclableMemoryStream { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Text.MurmurHash2` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MurmurHash2 - { - public static System.UInt32 Hash(string data) => throw null; - public static System.UInt32 Hash(System.Byte[] data, System.UInt32 seed) => throw null; - public static System.UInt32 Hash(System.Byte[] data) => throw null; - public MurmurHash2() => throw null; - } - - // Generated from `ServiceStack.Text.ParseAsType` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum ParseAsType - { - Bool, - Byte, - Decimal, - Double, - Int16, - Int32, - Int64, - None, - SByte, - Single, - UInt16, - UInt32, - UInt64, - } - - // Generated from `ServiceStack.Text.PropertyConvention` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum PropertyConvention - { - Lenient, - Strict, - } - - // Generated from `ServiceStack.Text.RecyclableMemoryStream` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RecyclableMemoryStream : System.IO.MemoryStream - { - 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 override int Capacity { get => throw null; set => throw null; } - public override void Close() => throw null; - protected override void Dispose(bool disposing) => throw null; - public override System.Byte[] GetBuffer() => 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.Span buffer) => throw null; - public override int Read(System.Byte[] buffer, int offset, int count) => throw null; - public override int ReadByte() => throw null; - public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, string tag, int requestedSize) => throw null; - public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, string tag) => throw null; - public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, System.Guid id, string tag, int requestedSize) => throw null; - public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, System.Guid id, string tag) => throw null; - public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager, System.Guid id) => throw null; - public RecyclableMemoryStream(ServiceStack.Text.RecyclableMemoryStreamManager memoryManager) => throw null; - public int SafeRead(System.Span buffer, ref int streamPosition) => throw null; - public int SafeRead(System.Byte[] buffer, int offset, int count, ref int streamPosition) => throw null; - public int SafeReadByte(ref int streamPosition) => 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 override System.Byte[] ToArray() => throw null; - public override string ToString() => throw null; - public override bool TryGetBuffer(out System.ArraySegment buffer) => throw null; - public override void Write(System.ReadOnlySpan source) => throw null; - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - public override void WriteByte(System.Byte value) => throw null; - public void WriteTo(System.IO.Stream stream, int offset, int count) => throw null; - public override void WriteTo(System.IO.Stream stream) => throw null; - // ERR: Stub generator didn't handle member: ~RecyclableMemoryStream - } - - // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RecyclableMemoryStreamManager - { - public bool AggressiveBufferReturn { get => throw null; set => throw null; } - public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler BlockCreated; - public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler BlockDiscarded; - public int BlockSize { get => throw null; } - public const int DefaultBlockSize = default; - public const int DefaultLargeBufferMultiple = default; - public const int DefaultMaximumBufferSize = default; - // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+EventHandler` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void EventHandler(); - - - // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+Events` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Events : System.Diagnostics.Tracing.EventSource - { - public Events() => throw null; - // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+Events+MemoryStreamBufferType` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum MemoryStreamBufferType - { - Large, - Small, - } - - - public void MemoryStreamCreated(System.Guid guid, string tag, int requestedSize) => throw null; - public void MemoryStreamDiscardBuffer(ServiceStack.Text.RecyclableMemoryStreamManager.Events.MemoryStreamBufferType bufferType, string tag, ServiceStack.Text.RecyclableMemoryStreamManager.Events.MemoryStreamDiscardReason reason) => throw null; - // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+Events+MemoryStreamDiscardReason` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum MemoryStreamDiscardReason - { - EnoughFree, - TooLarge, - } - - - public void MemoryStreamDisposed(System.Guid guid, string tag) => throw null; - public void MemoryStreamDoubleDispose(System.Guid guid, string tag, string allocationStack, string disposeStack1, string disposeStack2) => throw null; - public void MemoryStreamFinalized(System.Guid guid, string tag, string allocationStack) => throw null; - public void MemoryStreamManagerInitialized(int blockSize, int largeBufferMultiple, int maximumBufferSize) => throw null; - public void MemoryStreamNewBlockCreated(System.Int64 smallPoolInUseBytes) => throw null; - public void MemoryStreamNewLargeBufferCreated(int requiredSize, System.Int64 largePoolInUseBytes) => throw null; - public void MemoryStreamNonPooledLargeBufferCreated(int requiredSize, string tag, string allocationStack) => throw null; - public void MemoryStreamOverCapacity(int requestedCapacity, System.Int64 maxCapacity, string tag, string allocationStack) => throw null; - public void MemoryStreamToArray(System.Guid guid, string tag, string stack, int size) => throw null; - public static ServiceStack.Text.RecyclableMemoryStreamManager.Events Writer; - } - - - public bool GenerateCallStacks { get => throw null; set => throw null; } - public System.IO.MemoryStream GetStream(string tag, int requiredSize, bool asContiguousBuffer) => throw null; - public System.IO.MemoryStream GetStream(string tag, int requiredSize) => throw null; - public System.IO.MemoryStream GetStream(string tag, System.Memory buffer) => throw null; - public System.IO.MemoryStream GetStream(string tag, System.Byte[] buffer, int offset, int count) => throw null; - public System.IO.MemoryStream GetStream(string tag) => throw null; - public System.IO.MemoryStream GetStream(System.Memory buffer) => throw null; - public System.IO.MemoryStream GetStream(System.Guid id, string tag, int requiredSize, bool asContiguousBuffer) => throw null; - public System.IO.MemoryStream GetStream(System.Guid id, string tag, int requiredSize) => throw null; - public System.IO.MemoryStream GetStream(System.Guid id, string tag, System.Memory buffer) => throw null; - public System.IO.MemoryStream GetStream(System.Guid id, string tag, System.Byte[] buffer, int offset, int count) => throw null; - public System.IO.MemoryStream GetStream(System.Guid id, string tag) => throw null; - public System.IO.MemoryStream GetStream(System.Guid id) => throw null; - public System.IO.MemoryStream GetStream(System.Byte[] buffer) => throw null; - public System.IO.MemoryStream GetStream() => throw null; - public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler LargeBufferCreated; - public event ServiceStack.Text.RecyclableMemoryStreamManager.LargeBufferDiscardedEventHandler LargeBufferDiscarded; - // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+LargeBufferDiscardedEventHandler` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void LargeBufferDiscardedEventHandler(ServiceStack.Text.RecyclableMemoryStreamManager.Events.MemoryStreamDiscardReason reason); - - - public int LargeBufferMultiple { get => throw null; } - public System.Int64 LargeBuffersFree { get => throw null; } - public System.Int64 LargePoolFreeSize { get => throw null; } - public System.Int64 LargePoolInUseSize { get => throw null; } - public int MaximumBufferSize { get => throw null; } - public System.Int64 MaximumFreeLargePoolBytes { get => throw null; set => throw null; } - public System.Int64 MaximumFreeSmallPoolBytes { get => throw null; set => throw null; } - public System.Int64 MaximumStreamCapacity { get => throw null; set => throw null; } - public RecyclableMemoryStreamManager(int blockSize, int largeBufferMultiple, int maximumBufferSize, bool useExponentialLargeBuffer) => throw null; - public RecyclableMemoryStreamManager(int blockSize, int largeBufferMultiple, int maximumBufferSize) => throw null; - public RecyclableMemoryStreamManager() => throw null; - public System.Int64 SmallBlocksFree { get => throw null; } - public System.Int64 SmallPoolFreeSize { get => throw null; } - public System.Int64 SmallPoolInUseSize { get => throw null; } - public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler StreamConvertedToArray; - public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler StreamCreated; - public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler StreamDisposed; - public event ServiceStack.Text.RecyclableMemoryStreamManager.EventHandler StreamFinalized; - public event ServiceStack.Text.RecyclableMemoryStreamManager.StreamLengthReportHandler StreamLength; - // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+StreamLengthReportHandler` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void StreamLengthReportHandler(System.Int64 bytes); - - - public bool ThrowExceptionOnToArray { get => throw null; set => throw null; } - public event ServiceStack.Text.RecyclableMemoryStreamManager.UsageReportEventHandler UsageReport; - // Generated from `ServiceStack.Text.RecyclableMemoryStreamManager+UsageReportEventHandler` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void UsageReportEventHandler(System.Int64 smallPoolInUseBytes, System.Int64 smallPoolFreeBytes, System.Int64 largePoolInUseBytes, System.Int64 largePoolFreeBytes); - - - public bool UseExponentialLargeBuffer { get => throw null; } - public bool UseMultipleLargeBuffer { get => throw null; } - } - - // Generated from `ServiceStack.Text.ReflectionOptimizer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ReflectionOptimizer - { - public abstract ServiceStack.EmptyCtorDelegate CreateConstructor(System.Type type); - public abstract ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo); - public abstract ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo); - public abstract ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo); - public abstract ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo); - public abstract ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo); - public abstract ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo); - public abstract ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo); - public abstract ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo); - public abstract ServiceStack.SetMemberRefDelegate CreateSetterRef(System.Reflection.FieldInfo fieldInfo); - public static ServiceStack.Text.ReflectionOptimizer Instance; - public abstract bool IsDynamic(System.Reflection.Assembly assembly); - protected ReflectionOptimizer() => throw null; - public abstract System.Type UseType(System.Type type); - } - - // Generated from `ServiceStack.Text.RuntimeReflectionOptimizer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RuntimeReflectionOptimizer : ServiceStack.Text.ReflectionOptimizer - { - public override ServiceStack.EmptyCtorDelegate CreateConstructor(System.Type type) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.GetMemberDelegate CreateGetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.PropertyInfo propertyInfo) => throw null; - public override ServiceStack.SetMemberDelegate CreateSetter(System.Reflection.FieldInfo fieldInfo) => throw null; - public override ServiceStack.SetMemberRefDelegate CreateSetterRef(System.Reflection.FieldInfo fieldInfo) => throw null; - public override bool IsDynamic(System.Reflection.Assembly assembly) => throw null; - public static ServiceStack.Text.RuntimeReflectionOptimizer Provider { get => throw null; } - public override System.Type UseType(System.Type type) => throw null; - } - - // Generated from `ServiceStack.Text.RuntimeSerializableAttribute` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RuntimeSerializableAttribute : System.Attribute - { - public RuntimeSerializableAttribute() => throw null; - } - - // Generated from `ServiceStack.Text.StringBuilderCache` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StringBuilderCache - { - public static System.Text.StringBuilder Allocate() => throw null; - public static void Free(System.Text.StringBuilder sb) => throw null; - public static string ReturnAndFree(System.Text.StringBuilder sb) => throw null; - } - - // Generated from `ServiceStack.Text.StringBuilderCacheAlt` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StringBuilderCacheAlt - { - public static System.Text.StringBuilder Allocate() => throw null; - public static void Free(System.Text.StringBuilder sb) => throw null; - public static string ReturnAndFree(System.Text.StringBuilder sb) => throw null; - } - - // Generated from `ServiceStack.Text.StringSpanExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StringSpanExtensions - { - public static System.ReadOnlySpan Advance(this System.ReadOnlySpan text, int to) => throw null; - public static System.ReadOnlySpan AdvancePastChar(this System.ReadOnlySpan literal, System.Char delim) => throw null; - public static System.ReadOnlySpan AdvancePastWhitespace(this System.ReadOnlySpan literal) => throw null; - public static System.Text.StringBuilder Append(this System.Text.StringBuilder sb, System.ReadOnlySpan value) => throw null; - public static bool CompareIgnoreCase(this System.ReadOnlySpan value, System.ReadOnlySpan text) => throw null; - public static int CountOccurrencesOf(this System.ReadOnlySpan value, System.Char needle) => throw null; - public static bool EndsWith(this System.ReadOnlySpan value, string other, System.StringComparison comparison) => throw null; - public static bool EndsWith(this System.ReadOnlySpan value, string other) => throw null; - public static bool EndsWithIgnoreCase(this System.ReadOnlySpan value, System.ReadOnlySpan other) => throw null; - public static bool EqualTo(this System.ReadOnlySpan value, string other) => throw null; - public static bool EqualTo(this System.ReadOnlySpan value, System.ReadOnlySpan other) => throw null; - public static bool EqualsIgnoreCase(this System.ReadOnlySpan value, System.ReadOnlySpan other) => throw null; - public static bool EqualsOrdinal(this System.ReadOnlySpan value, string other) => throw null; - public static System.ReadOnlySpan FromCsvField(this System.ReadOnlySpan text) => throw null; - public static System.ReadOnlyMemory FromUtf8(this System.ReadOnlySpan value) => throw null; - public static string FromUtf8Bytes(this System.ReadOnlySpan value) => throw null; - public static System.Char GetChar(this System.ReadOnlySpan value, int index) => throw null; - public static System.ReadOnlySpan GetExtension(this System.ReadOnlySpan filePath) => throw null; - public static int IndexOf(this System.ReadOnlySpan value, string other) => throw null; - public static int IndexOf(this System.ReadOnlySpan value, string needle, int start) => throw null; - public static bool IsNullOrEmpty(this System.ReadOnlySpan value) => throw null; - public static bool IsNullOrWhiteSpace(this System.ReadOnlySpan value) => throw null; - public static int LastIndexOf(this System.ReadOnlySpan value, string other) => throw null; - public static int LastIndexOf(this System.ReadOnlySpan value, string needle, int start) => throw null; - public static System.ReadOnlySpan LastLeftPart(this System.ReadOnlySpan strVal, string needle) => throw null; - public static System.ReadOnlySpan LastLeftPart(this System.ReadOnlySpan strVal, System.Char needle) => throw null; - public static System.ReadOnlySpan LastRightPart(this System.ReadOnlySpan strVal, string needle) => throw null; - public static System.ReadOnlySpan LastRightPart(this System.ReadOnlySpan strVal, System.Char needle) => throw null; - public static System.ReadOnlySpan LeftPart(this System.ReadOnlySpan strVal, string needle) => throw null; - public static System.ReadOnlySpan LeftPart(this System.ReadOnlySpan strVal, System.Char needle) => throw null; - public static System.ReadOnlySpan ParentDirectory(this System.ReadOnlySpan filePath) => throw null; - public static System.Byte[] ParseBase64(this System.ReadOnlySpan value) => throw null; - public static bool ParseBoolean(this System.ReadOnlySpan value) => throw null; - public static System.Byte ParseByte(this System.ReadOnlySpan value) => throw null; - public static System.Decimal ParseDecimal(this System.ReadOnlySpan value, bool allowThousands) => throw null; - public static System.Decimal ParseDecimal(this System.ReadOnlySpan value) => throw null; - public static double ParseDouble(this System.ReadOnlySpan value) => throw null; - public static float ParseFloat(this System.ReadOnlySpan value) => throw null; - public static System.Guid ParseGuid(this System.ReadOnlySpan value) => throw null; - public static System.Int16 ParseInt16(this System.ReadOnlySpan value) => throw null; - public static int ParseInt32(this System.ReadOnlySpan value) => throw null; - public static System.Int64 ParseInt64(this System.ReadOnlySpan value) => throw null; - public static System.SByte ParseSByte(this System.ReadOnlySpan value) => throw null; - public static object ParseSignedInteger(this System.ReadOnlySpan value) => throw null; - public static System.UInt16 ParseUInt16(this System.ReadOnlySpan value) => throw null; - public static System.UInt32 ParseUInt32(this System.ReadOnlySpan value) => throw null; - public static System.UInt64 ParseUInt64(this System.ReadOnlySpan value) => throw null; - public static System.ReadOnlySpan RightPart(this System.ReadOnlySpan strVal, string needle) => throw null; - public static System.ReadOnlySpan RightPart(this System.ReadOnlySpan strVal, System.Char needle) => throw null; - public static System.ReadOnlySpan SafeSlice(this System.ReadOnlySpan value, int startIndex, int length) => throw null; - public static System.ReadOnlySpan SafeSlice(this System.ReadOnlySpan value, int startIndex) => throw null; - public static System.ReadOnlySpan SafeSubstring(this System.ReadOnlySpan value, int startIndex, int length) => throw null; - public static System.ReadOnlySpan SafeSubstring(this System.ReadOnlySpan value, int startIndex) => throw null; - public static void SplitOnFirst(this System.ReadOnlySpan strVal, string needle, out System.ReadOnlySpan first, out System.ReadOnlySpan last) => throw null; - public static void SplitOnFirst(this System.ReadOnlySpan strVal, System.Char needle, out System.ReadOnlySpan first, out System.ReadOnlySpan last) => throw null; - public static void SplitOnLast(this System.ReadOnlySpan strVal, string needle, out System.ReadOnlySpan first, out System.ReadOnlySpan last) => throw null; - public static void SplitOnLast(this System.ReadOnlySpan strVal, System.Char needle, out System.ReadOnlySpan first, out System.ReadOnlySpan last) => throw null; - public static bool StartsWith(this System.ReadOnlySpan value, string other, System.StringComparison comparison) => throw null; - public static bool StartsWith(this System.ReadOnlySpan value, string other) => throw null; - public static bool StartsWithIgnoreCase(this System.ReadOnlySpan value, System.ReadOnlySpan other) => throw null; - public static System.ReadOnlySpan Subsegment(this System.ReadOnlySpan text, int startPos, int length) => throw null; - public static System.ReadOnlySpan Subsegment(this System.ReadOnlySpan text, int startPos) => throw null; - public static string Substring(this System.ReadOnlySpan value, int pos, int length) => throw null; - public static string Substring(this System.ReadOnlySpan value, int pos) => throw null; - public static string SubstringWithEllipsis(this System.ReadOnlySpan value, int startIndex, int length) => throw null; - public static System.Collections.Generic.List ToStringList(this System.Collections.Generic.IEnumerable> from) => throw null; - public static System.ReadOnlyMemory ToUtf8(this System.ReadOnlySpan value) => throw null; - public static System.Byte[] ToUtf8Bytes(this System.ReadOnlySpan value) => throw null; - public static System.ReadOnlySpan TrimEnd(this System.ReadOnlySpan value, params System.Char[] trimChars) => throw null; - public static bool TryParseBoolean(this System.ReadOnlySpan value, out bool result) => throw null; - public static bool TryParseDecimal(this System.ReadOnlySpan value, out System.Decimal result) => throw null; - public static bool TryParseDouble(this System.ReadOnlySpan value, out double result) => throw null; - public static bool TryParseFloat(this System.ReadOnlySpan value, out float result) => throw null; - public static bool TryReadLine(this System.ReadOnlySpan text, out System.ReadOnlySpan line, ref int startIndex) => throw null; - public static bool TryReadPart(this System.ReadOnlySpan text, string needle, out System.ReadOnlySpan part, ref int startIndex) => throw null; - public static string Value(this System.ReadOnlySpan value) => throw null; - public static System.ReadOnlySpan WithoutBom(this System.ReadOnlySpan value) => throw null; - public static System.ReadOnlySpan WithoutBom(this System.ReadOnlySpan value) => throw null; - public static System.ReadOnlySpan WithoutExtension(this System.ReadOnlySpan filePath) => throw null; - public static System.Threading.Tasks.Task WriteAsync(this System.IO.Stream stream, System.ReadOnlySpan value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.Text.StringTextExtensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StringTextExtensions - { - public static object To(this string value, System.Type type) => throw null; - public static T To(this string value, T defaultValue) => throw null; - public static T To(this string value) => throw null; - public static T ToOrDefaultValue(this string value) => throw null; - } - - // Generated from `ServiceStack.Text.StringWriterCache` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StringWriterCache - { - public static System.IO.StringWriter Allocate() => throw null; - public static void Free(System.IO.StringWriter writer) => throw null; - public static string ReturnAndFree(System.IO.StringWriter writer) => throw null; - } - - // Generated from `ServiceStack.Text.StringWriterCacheAlt` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StringWriterCacheAlt - { - public static System.IO.StringWriter Allocate() => throw null; - public static void Free(System.IO.StringWriter writer) => throw null; - public static string ReturnAndFree(System.IO.StringWriter writer) => throw null; - } - - // Generated from `ServiceStack.Text.SystemTime` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SystemTime - { - public static System.DateTime Now { get => throw null; } - public static System.Func UtcDateTimeResolver; - public static System.DateTime UtcNow { get => throw null; } - } - - // Generated from `ServiceStack.Text.TextCase` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum TextCase - { - CamelCase, - Default, - PascalCase, - SnakeCase, - } - - // Generated from `ServiceStack.Text.TimeSpanHandler` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum TimeSpanHandler - { - DurationFormat, - StandardFormat, - } - - // Generated from `ServiceStack.Text.Tracer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Tracer - { - // Generated from `ServiceStack.Text.Tracer+ConsoleTracer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConsoleTracer : ServiceStack.Text.ITracer - { - public ConsoleTracer() => throw null; - public void WriteDebug(string format, params object[] args) => throw null; - public void WriteDebug(string error) => throw null; - public void WriteError(string format, params object[] args) => throw null; - public void WriteError(string error) => throw null; - public void WriteError(System.Exception ex) => throw null; - public void WriteWarning(string warning) => throw null; - public void WriteWarning(string format, params object[] args) => throw null; - } - - - public static ServiceStack.Text.ITracer Instance; - // Generated from `ServiceStack.Text.Tracer+NullTracer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NullTracer : ServiceStack.Text.ITracer - { - public NullTracer() => throw null; - public void WriteDebug(string format, params object[] args) => throw null; - public void WriteDebug(string error) => throw null; - public void WriteError(string format, params object[] args) => throw null; - public void WriteError(string error) => throw null; - public void WriteError(System.Exception ex) => throw null; - public void WriteWarning(string warning) => throw null; - public void WriteWarning(string format, params object[] args) => throw null; - } - - - public Tracer() => throw null; - } - - // Generated from `ServiceStack.Text.TracerExceptions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TracerExceptions - { - public static T Trace(this T ex) where T : System.Exception => throw null; - } - - // Generated from `ServiceStack.Text.TranslateListWithConvertibleElements<,>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TranslateListWithConvertibleElements - { - public static object LateBoundTranslateToGenericICollection(object fromList, System.Type toInstanceOfType) => throw null; - public TranslateListWithConvertibleElements() => throw null; - public static System.Collections.Generic.ICollection TranslateToGenericICollection(System.Collections.Generic.ICollection fromList, System.Type toInstanceOfType) => throw null; - } - - // Generated from `ServiceStack.Text.TranslateListWithElements` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TranslateListWithElements - { - public static object TranslateToConvertibleGenericICollectionCache(object from, System.Type toInstanceOfType, System.Type fromElementType) => throw null; - public static object TranslateToGenericICollectionCache(object from, System.Type toInstanceOfType, System.Type elementType) => throw null; - public static object TryTranslateCollections(System.Type fromPropertyType, System.Type toPropertyType, object fromValue) => throw null; - } - - // Generated from `ServiceStack.Text.TranslateListWithElements<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TranslateListWithElements - { - public static object CreateInstance(System.Type toInstanceOfType) => throw null; - public static object LateBoundTranslateToGenericICollection(object fromList, System.Type toInstanceOfType) => throw null; - public TranslateListWithElements() => throw null; - public static System.Collections.Generic.ICollection TranslateToGenericICollection(System.Collections.IEnumerable fromList, System.Type toInstanceOfType) => throw null; - public static System.Collections.IList TranslateToIList(System.Collections.IList fromList, System.Type toInstanceOfType) => throw null; - } - - // Generated from `ServiceStack.Text.TypeConfig<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TypeConfig - { - public static bool EnableAnonymousFieldSetters { get => throw null; set => throw null; } - public static System.Reflection.FieldInfo[] Fields { get => throw null; set => throw null; } - public static bool IsUserType { get => throw null; set => throw null; } - public static System.Func OnDeserializing { get => throw null; set => throw null; } - public static System.Reflection.PropertyInfo[] Properties { get => throw null; set => throw null; } - public static void Reset() => throw null; - } - - // Generated from `ServiceStack.Text.TypeSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TypeSerializer - { - public static bool CanCreateFromString(System.Type type) => throw null; - public static T Clone(T value) => throw null; - public static object DeserializeFromReader(System.IO.TextReader reader, System.Type type) => throw null; - public static T DeserializeFromReader(System.IO.TextReader reader) => throw null; - public static object DeserializeFromSpan(System.Type type, System.ReadOnlySpan value) => throw null; - public static T DeserializeFromSpan(System.ReadOnlySpan value) => throw null; - public static object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public static T DeserializeFromStream(System.IO.Stream stream) => throw null; - public static System.Threading.Tasks.Task DeserializeFromStreamAsync(System.Type type, System.IO.Stream stream) => throw null; - public static System.Threading.Tasks.Task DeserializeFromStreamAsync(System.IO.Stream stream) => throw null; - public static object DeserializeFromString(string value, System.Type type) => throw null; - public static T DeserializeFromString(string value) => throw null; - public const string DoubleQuoteString = default; - public static string Dump(this T instance) => throw null; - public static string Dump(this System.Delegate fn) => throw null; - public static bool HasCircularReferences(object value) => throw null; - public static string IndentJson(this string json) => throw null; - public static System.Action OnSerialize { get => throw null; set => throw null; } - public static void Print(this string text, params object[] args) => throw null; - public static void Print(this int intValue) => throw null; - public static void Print(this System.Int64 longValue) => throw null; - public static void PrintDump(this T instance) => throw null; - public static string SerializeAndFormat(this T instance) => throw null; - public static void SerializeToStream(T value, System.IO.Stream stream) => throw null; - public static void SerializeToStream(object value, System.Type type, System.IO.Stream stream) => throw null; - public static string SerializeToString(T value) => throw null; - public static string SerializeToString(object value, System.Type type) => throw null; - public static void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; - public static void SerializeToWriter(object value, System.Type type, System.IO.TextWriter writer) => throw null; - public static System.Collections.Generic.Dictionary ToStringDictionary(this object obj) => throw null; - public static System.Text.UTF8Encoding UTF8Encoding { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Text.TypeSerializer<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypeSerializer : ServiceStack.Text.ITypeSerializer - { - public bool CanCreateFromString(System.Type type) => throw null; - public T DeserializeFromReader(System.IO.TextReader reader) => throw null; - public T DeserializeFromString(string value) => throw null; - public string SerializeToString(T value) => throw null; - public void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; - public TypeSerializer() => throw null; - } - - // Generated from `ServiceStack.Text.XmlSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlSerializer - { - public static T DeserializeFromReader(System.IO.TextReader reader) => throw null; - public static object DeserializeFromStream(System.Type type, System.IO.Stream stream) => throw null; - public static T DeserializeFromStream(System.IO.Stream stream) => throw null; - public static object DeserializeFromString(string xml, System.Type type) => throw null; - public static T DeserializeFromString(string xml) => throw null; - public static ServiceStack.Text.XmlSerializer Instance; - public static void SerializeToStream(object obj, System.IO.Stream stream) => throw null; - public static string SerializeToString(T from) => throw null; - public static void SerializeToWriter(T value, System.IO.TextWriter writer) => throw null; - public static System.Xml.XmlReaderSettings XmlReaderSettings; - public XmlSerializer(bool omitXmlDeclaration = default(bool), int maxCharsInDocument = default(int)) => throw null; - public static System.Xml.XmlWriterSettings XmlWriterSettings; - } - - namespace Common - { - // Generated from `ServiceStack.Text.Common.ConvertInstanceDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ConvertInstanceDelegate(object obj, System.Type type); - - // Generated from `ServiceStack.Text.Common.ConvertObjectDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ConvertObjectDelegate(object fromObject); - - // Generated from `ServiceStack.Text.Common.DateTimeSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DateTimeSerializer - { - public const string CondensedDateTimeFormat = default; - public const string DateTimeFormatSecondsNoOffset = default; - public const string DateTimeFormatSecondsUtcOffset = default; - public const string DateTimeFormatTicksNoUtcOffset = default; - public const string DateTimeFormatTicksUtcOffset = default; - public const string DefaultDateTimeFormat = default; - public const string DefaultDateTimeFormatWithFraction = default; - public const string EscapedWcfJsonPrefix = default; - public const string EscapedWcfJsonSuffix = default; - public static System.TimeZoneInfo GetLocalTimeZoneInfo() => throw null; - public static System.Func OnParseErrorFn { get => throw null; set => throw null; } - public static System.DateTime ParseDateTime(string dateTimeStr) => throw null; - public static System.DateTimeOffset ParseDateTimeOffset(string dateTimeOffsetStr) => throw null; - public static System.DateTime? ParseManual(string dateTimeStr, System.DateTimeKind dateKind) => throw null; - public static System.DateTime? ParseManual(string dateTimeStr) => throw null; - public static System.TimeSpan ParseNSTimeInterval(string doubleInSecs) => throw null; - public static System.DateTimeOffset? ParseNullableDateTimeOffset(string dateTimeOffsetStr) => throw null; - public static System.TimeSpan? ParseNullableTimeSpan(string dateTimeStr) => throw null; - public static System.DateTime ParseRFC1123DateTime(string dateTimeStr) => throw null; - public static System.DateTime? ParseShortestNullableXsdDateTime(string dateTimeStr) => throw null; - public static System.DateTime ParseShortestXsdDateTime(string dateTimeStr) => throw null; - public static System.TimeSpan ParseTimeSpan(string dateTimeStr) => throw null; - public static System.DateTime ParseWcfJsonDate(string wcfJsonDate) => throw null; - public static System.DateTimeOffset ParseWcfJsonDateOffset(string wcfJsonDate) => throw null; - public static System.DateTime ParseXsdDateTime(string dateTimeStr) => throw null; - public static System.TimeSpan? ParseXsdNullableTimeSpan(string dateTimeStr) => throw null; - public static System.TimeSpan ParseXsdTimeSpan(string dateTimeStr) => throw null; - public static System.DateTime Prepare(this System.DateTime dateTime, bool parsedAsUtc = default(bool)) => throw null; - public const string ShortDateTimeFormat = default; - public static string ToDateTimeString(System.DateTime dateTime) => throw null; - public static string ToLocalXsdDateTimeString(System.DateTime dateTime) => throw null; - public static string ToShortestXsdDateTimeString(System.DateTime dateTime) => throw null; - public static string ToWcfJsonDate(System.DateTime dateTime) => throw null; - public static string ToWcfJsonDateTimeOffset(System.DateTimeOffset dateTimeOffset) => throw null; - public static string ToXsdDateTimeString(System.DateTime dateTime) => throw null; - public static string ToXsdTimeSpanString(System.TimeSpan? timeSpan) => throw null; - public static string ToXsdTimeSpanString(System.TimeSpan timeSpan) => throw null; - public const string UnspecifiedOffset = default; - public const string UtcOffset = default; - public const string WcfJsonPrefix = default; - public const System.Char WcfJsonSuffix = default; - public static void WriteWcfJsonDate(System.IO.TextWriter writer, System.DateTime dateTime) => throw null; - public static void WriteWcfJsonDateTimeOffset(System.IO.TextWriter writer, System.DateTimeOffset dateTimeOffset) => throw null; - public const string XsdDateTimeFormat = default; - public const string XsdDateTimeFormat3F = default; - public const string XsdDateTimeFormatSeconds = default; - } - - // Generated from `ServiceStack.Text.Common.DeserializationErrorDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void DeserializationErrorDelegate(object instance, System.Type propertyType, string propertyName, string propertyValueStr, System.Exception ex); - - // Generated from `ServiceStack.Text.Common.DeserializeArrayWithElements<,>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeArrayWithElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static T[] ParseGenericArray(string value, ServiceStack.Text.Common.ParseStringDelegate elementParseFn) => throw null; - public static T[] ParseGenericArray(System.ReadOnlySpan value, ServiceStack.Text.Common.ParseStringSpanDelegate elementParseFn) => throw null; - } - - // Generated from `ServiceStack.Text.Common.DeserializeArrayWithElements<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeArrayWithElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static System.Func GetParseFn(System.Type type) => throw null; - public static ServiceStack.Text.Common.DeserializeArrayWithElements.ParseArrayOfElementsDelegate GetParseStringSpanFn(System.Type type) => throw null; - // Generated from `ServiceStack.Text.Common.DeserializeArrayWithElements<>+ParseArrayOfElementsDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ParseArrayOfElementsDelegate(System.ReadOnlySpan value, ServiceStack.Text.Common.ParseStringSpanDelegate parseFn); - - - } - - // Generated from `ServiceStack.Text.Common.DeserializeBuiltin<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeBuiltin - { - public static ServiceStack.Text.Common.ParseStringDelegate Parse { get => throw null; } - public static ServiceStack.Text.Common.ParseStringSpanDelegate ParseStringSpan { get => throw null; } - } - - // Generated from `ServiceStack.Text.Common.DeserializeDictionary<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeDictionary where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static ServiceStack.Text.Common.ParseStringDelegate GetParseMethod(System.Type type) => throw null; - public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanMethod(System.Type type) => throw null; - public static System.Collections.Generic.IDictionary ParseDictionary(string value, System.Type createMapType, ServiceStack.Text.Common.ParseStringDelegate parseKeyFn, ServiceStack.Text.Common.ParseStringDelegate parseValueFn) => throw null; - public static System.Collections.Generic.IDictionary ParseDictionary(System.ReadOnlySpan value, System.Type createMapType, ServiceStack.Text.Common.ParseStringSpanDelegate parseKeyFn, ServiceStack.Text.Common.ParseStringSpanDelegate parseValueFn) => throw null; - public static object ParseDictionaryType(string value, System.Type createMapType, System.Type[] argTypes, ServiceStack.Text.Common.ParseStringDelegate keyParseFn, ServiceStack.Text.Common.ParseStringDelegate valueParseFn) => throw null; - public static object ParseDictionaryType(System.ReadOnlySpan value, System.Type createMapType, System.Type[] argTypes, ServiceStack.Text.Common.ParseStringSpanDelegate keyParseFn, ServiceStack.Text.Common.ParseStringSpanDelegate valueParseFn) => throw null; - public static System.Collections.IDictionary ParseIDictionary(string value, System.Type dictType) => throw null; - public static System.Collections.IDictionary ParseIDictionary(System.ReadOnlySpan value, System.Type dictType) => throw null; - public static T ParseInheritedJsonObject(System.ReadOnlySpan value) where T : ServiceStack.Text.JsonObject, new() => throw null; - public static ServiceStack.Text.JsonObject ParseJsonObject(string value) => throw null; - public static ServiceStack.Text.JsonObject ParseJsonObject(System.ReadOnlySpan value) => throw null; - public static System.Collections.Generic.Dictionary ParseStringDictionary(string value) => throw null; - public static System.Collections.Generic.Dictionary ParseStringDictionary(System.ReadOnlySpan value) => throw null; - } - - // Generated from `ServiceStack.Text.Common.DeserializeList<,>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeList where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static ServiceStack.Text.Common.ParseStringDelegate GetParseFn() => throw null; - public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn() => throw null; - public static ServiceStack.Text.Common.ParseStringDelegate Parse { get => throw null; } - public static ServiceStack.Text.Common.ParseStringSpanDelegate ParseStringSpan { get => throw null; } - } - - // Generated from `ServiceStack.Text.Common.DeserializeListWithElements<,>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeListWithElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static System.Collections.Generic.ICollection ParseGenericList(string value, System.Type createListType, ServiceStack.Text.Common.ParseStringDelegate parseFn) => throw null; - public static System.Collections.Generic.ICollection ParseGenericList(System.ReadOnlySpan value, System.Type createListType, ServiceStack.Text.Common.ParseStringSpanDelegate parseFn) => throw null; - } - - // Generated from `ServiceStack.Text.Common.DeserializeListWithElements<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeListWithElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static System.Func GetListTypeParseFn(System.Type createListType, System.Type elementType, ServiceStack.Text.Common.ParseStringDelegate parseFn) => throw null; - public static ServiceStack.Text.Common.DeserializeListWithElements.ParseListDelegate GetListTypeParseStringSpanFn(System.Type createListType, System.Type elementType, ServiceStack.Text.Common.ParseStringSpanDelegate parseFn) => throw null; - public static System.Collections.Generic.List ParseByteList(string value) => throw null; - public static System.Collections.Generic.List ParseByteList(System.ReadOnlySpan value) => throw null; - public static System.Collections.Generic.List ParseIntList(string value) => throw null; - public static System.Collections.Generic.List ParseIntList(System.ReadOnlySpan value) => throw null; - // Generated from `ServiceStack.Text.Common.DeserializeListWithElements<>+ParseListDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ParseListDelegate(System.ReadOnlySpan value, System.Type createListType, ServiceStack.Text.Common.ParseStringSpanDelegate parseFn); - - - public static System.Collections.Generic.List ParseStringList(string value) => throw null; - public static System.Collections.Generic.List ParseStringList(System.ReadOnlySpan value) => throw null; - public static System.ReadOnlySpan StripList(System.ReadOnlySpan value) => throw null; - } - - // Generated from `ServiceStack.Text.Common.DeserializeStringSpanDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object DeserializeStringSpanDelegate(System.Type type, System.ReadOnlySpan source); - - // Generated from `ServiceStack.Text.Common.DeserializeType<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeType where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static System.Type ExtractType(string strType) => throw null; - public static System.Type ExtractType(System.ReadOnlySpan strType) => throw null; - public static object ObjectStringToType(System.ReadOnlySpan strType) => throw null; - public static object ParseAbstractType(System.ReadOnlySpan value) => throw null; - public static object ParsePrimitive(string value) => throw null; - public static object ParsePrimitive(System.ReadOnlySpan value) => throw null; - public static object ParseQuotedPrimitive(string value) => throw null; - } - - // Generated from `ServiceStack.Text.Common.DeserializeTypeExensions` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DeserializeTypeExensions - { - public static bool Has(this ServiceStack.Text.ParseAsType flags, ServiceStack.Text.ParseAsType flag) => throw null; - public static object ParseNumber(this System.ReadOnlySpan value, bool bestFit) => throw null; - public static object ParseNumber(this System.ReadOnlySpan value) => throw null; - } - - // Generated from `ServiceStack.Text.Common.DeserializeTypeUtils` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DeserializeTypeUtils - { - public DeserializeTypeUtils() => throw null; - public static ServiceStack.Text.Common.ParseStringDelegate GetParseMethod(System.Type type) => throw null; - public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanMethod(System.Type type) => throw null; - public static System.Reflection.ConstructorInfo GetTypeStringConstructor(System.Type type) => throw null; - } - - // Generated from `ServiceStack.Text.Common.ITypeSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypeSerializer - { - bool EatItemSeperatorOrMapEndChar(string value, ref int i); - bool EatItemSeperatorOrMapEndChar(System.ReadOnlySpan value, ref int i); - string EatMapKey(string value, ref int i); - System.ReadOnlySpan EatMapKey(System.ReadOnlySpan value, ref int i); - bool EatMapKeySeperator(string value, ref int i); - bool EatMapKeySeperator(System.ReadOnlySpan value, ref int i); - bool EatMapStartChar(string value, ref int i); - bool EatMapStartChar(System.ReadOnlySpan value, ref int i); - string EatTypeValue(string value, ref int i); - System.ReadOnlySpan EatTypeValue(System.ReadOnlySpan value, ref int i); - string EatValue(string value, ref int i); - System.ReadOnlySpan EatValue(System.ReadOnlySpan value, ref int i); - void EatWhitespace(string value, ref int i); - void EatWhitespace(System.ReadOnlySpan value, ref int i); - ServiceStack.Text.Common.ParseStringDelegate GetParseFn(); - ServiceStack.Text.Common.ParseStringDelegate GetParseFn(System.Type type); - ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(); - ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(System.Type type); - ServiceStack.Text.Json.TypeInfo GetTypeInfo(System.Type type); - ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(); - ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(System.Type type); - bool IncludeNullValues { get; } - bool IncludeNullValuesInDictionaries { get; } - ServiceStack.Text.Common.ObjectDeserializerDelegate ObjectDeserializer { get; set; } - string ParseRawString(string value); - string ParseString(string value); - string ParseString(System.ReadOnlySpan value); - string TypeAttrInObject { get; } - string UnescapeSafeString(string value); - System.ReadOnlySpan UnescapeSafeString(System.ReadOnlySpan value); - string UnescapeString(string value); - System.ReadOnlySpan UnescapeString(System.ReadOnlySpan value); - object UnescapeStringAsObject(System.ReadOnlySpan value); - void WriteBool(System.IO.TextWriter writer, object boolValue); - void WriteBuiltIn(System.IO.TextWriter writer, object value); - void WriteByte(System.IO.TextWriter writer, object byteValue); - void WriteBytes(System.IO.TextWriter writer, object oByteValue); - void WriteChar(System.IO.TextWriter writer, object charValue); - void WriteDateTime(System.IO.TextWriter writer, object oDateTime); - void WriteDateTimeOffset(System.IO.TextWriter writer, object oDateTimeOffset); - void WriteDecimal(System.IO.TextWriter writer, object decimalValue); - void WriteDouble(System.IO.TextWriter writer, object doubleValue); - void WriteEnum(System.IO.TextWriter writer, object enumValue); - void WriteException(System.IO.TextWriter writer, object value); - void WriteFloat(System.IO.TextWriter writer, object floatValue); - void WriteFormattableObjectString(System.IO.TextWriter writer, object value); - void WriteGuid(System.IO.TextWriter writer, object oValue); - void WriteInt16(System.IO.TextWriter writer, object intValue); - void WriteInt32(System.IO.TextWriter writer, object intValue); - void WriteInt64(System.IO.TextWriter writer, object longValue); - void WriteNullableDateTime(System.IO.TextWriter writer, object dateTime); - void WriteNullableDateTimeOffset(System.IO.TextWriter writer, object dateTimeOffset); - void WriteNullableGuid(System.IO.TextWriter writer, object oValue); - void WriteNullableTimeSpan(System.IO.TextWriter writer, object dateTimeOffset); - void WriteObjectString(System.IO.TextWriter writer, object value); - void WritePropertyName(System.IO.TextWriter writer, string value); - void WriteRawString(System.IO.TextWriter writer, string value); - void WriteSByte(System.IO.TextWriter writer, object sbyteValue); - void WriteString(System.IO.TextWriter writer, string value); - void WriteTimeSpan(System.IO.TextWriter writer, object dateTimeOffset); - void WriteUInt16(System.IO.TextWriter writer, object intValue); - void WriteUInt32(System.IO.TextWriter writer, object uintValue); - void WriteUInt64(System.IO.TextWriter writer, object ulongValue); - } - - // Generated from `ServiceStack.Text.Common.JsReader<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsReader where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public ServiceStack.Text.Common.ParseStringDelegate GetParseFn() => throw null; - public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn() => throw null; - public static void InitAot() => throw null; - public JsReader() => throw null; - } - - // Generated from `ServiceStack.Text.Common.JsWriter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsWriter - { - public static void AssertAllowedRuntimeType(System.Type type) => throw null; - public static System.Char[] CsvChars; - public const string EmptyMap = default; - public static System.Char[] EscapeChars; - public const string EscapedQuoteString = default; - public static ServiceStack.Text.Common.ITypeSerializer GetTypeSerializer() => throw null; - public static bool HasAnyEscapeChars(string value) => throw null; - public const System.Char ItemSeperator = default; - public const string ItemSeperatorString = default; - public const System.Char LineFeedChar = default; - public const System.Char ListEndChar = default; - public const System.Char ListStartChar = default; - public const System.Char MapEndChar = default; - public const System.Char MapKeySeperator = default; - public const string MapKeySeperatorString = default; - public const string MapNullValue = default; - public const System.Char MapStartChar = default; - public const System.Char QuoteChar = default; - public const string QuoteString = default; - public const System.Char ReturnChar = default; - public static bool ShouldAllowRuntimeType(System.Type type) => throw null; - public const string TypeAttr = default; - public static void WriteDynamic(System.Action callback) => throw null; - public static void WriteEnumFlags(System.IO.TextWriter writer, object enumFlagValue) => throw null; - } - - // Generated from `ServiceStack.Text.Common.JsWriter<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsWriter where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public ServiceStack.Text.Common.WriteObjectDelegate GetSpecialWriteFn(System.Type type) => throw null; - public ServiceStack.Text.Common.WriteObjectDelegate GetValueTypeToStringMethod(System.Type type) => throw null; - public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn() => throw null; - public static void InitAot() => throw null; - public JsWriter() => throw null; - public System.Collections.Generic.Dictionary SpecialTypes; - public void WriteType(System.IO.TextWriter writer, object value) => throw null; - public void WriteValue(System.IO.TextWriter writer, object value) => throw null; - } - - // Generated from `ServiceStack.Text.Common.ObjectDeserializerDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ObjectDeserializerDelegate(System.ReadOnlySpan value); - - // Generated from `ServiceStack.Text.Common.ParseStringDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ParseStringDelegate(string stringValue); - - // Generated from `ServiceStack.Text.Common.ParseStringSpanDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ParseStringSpanDelegate(System.ReadOnlySpan value); - - // Generated from `ServiceStack.Text.Common.StaticParseMethod<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StaticParseMethod - { - public static ServiceStack.Text.Common.ParseStringDelegate Parse { get => throw null; } - public static ServiceStack.Text.Common.ParseStringSpanDelegate ParseStringSpan { get => throw null; } - } - - // Generated from `ServiceStack.Text.Common.ToStringDictionaryMethods<,,>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ToStringDictionaryMethods where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static void WriteGenericIDictionary(System.IO.TextWriter writer, System.Collections.Generic.IDictionary map, ServiceStack.Text.Common.WriteObjectDelegate writeKeyFn, ServiceStack.Text.Common.WriteObjectDelegate writeValueFn) => throw null; - public static void WriteIDictionary(System.IO.TextWriter writer, object oMap, ServiceStack.Text.Common.WriteObjectDelegate writeKeyFn, ServiceStack.Text.Common.WriteObjectDelegate writeValueFn) => throw null; - } - - // Generated from `ServiceStack.Text.Common.WriteListsOfElements<,>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class WriteListsOfElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static void WriteArray(System.IO.TextWriter writer, object oArrayValue) => throw null; - public static void WriteEnumerable(System.IO.TextWriter writer, object oEnumerable) => throw null; - public static void WriteGenericArray(System.IO.TextWriter writer, System.Array array) => throw null; - public static void WriteGenericArrayValueType(System.IO.TextWriter writer, object oArray) => throw null; - public static void WriteGenericArrayValueType(System.IO.TextWriter writer, T[] array) => throw null; - public static void WriteGenericEnumerable(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable enumerable) => throw null; - public static void WriteGenericEnumerableValueType(System.IO.TextWriter writer, System.Collections.Generic.IEnumerable enumerable) => throw null; - public static void WriteGenericIList(System.IO.TextWriter writer, System.Collections.Generic.IList list) => throw null; - public static void WriteGenericIListValueType(System.IO.TextWriter writer, System.Collections.Generic.IList list) => throw null; - public static void WriteGenericList(System.IO.TextWriter writer, System.Collections.Generic.List list) => throw null; - public static void WriteGenericListValueType(System.IO.TextWriter writer, System.Collections.Generic.List list) => throw null; - public static void WriteIList(System.IO.TextWriter writer, object oList) => throw null; - public static void WriteIListValueType(System.IO.TextWriter writer, object list) => throw null; - public static void WriteList(System.IO.TextWriter writer, object oList) => throw null; - public static void WriteListValueType(System.IO.TextWriter writer, object list) => throw null; - } - - // Generated from `ServiceStack.Text.Common.WriteListsOfElements<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class WriteListsOfElements where TSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static ServiceStack.Text.Common.WriteObjectDelegate GetGenericWriteArray(System.Type elementType) => throw null; - public static ServiceStack.Text.Common.WriteObjectDelegate GetGenericWriteEnumerable(System.Type elementType) => throw null; - public static ServiceStack.Text.Common.WriteObjectDelegate GetIListWriteFn(System.Type elementType) => throw null; - public static ServiceStack.Text.Common.WriteObjectDelegate GetListWriteFn(System.Type elementType) => throw null; - public static ServiceStack.Text.Common.WriteObjectDelegate GetWriteIListValueType(System.Type elementType) => throw null; - public static ServiceStack.Text.Common.WriteObjectDelegate GetWriteListValueType(System.Type elementType) => throw null; - public static void WriteIEnumerable(System.IO.TextWriter writer, object oValueCollection) => throw null; - } - - // Generated from `ServiceStack.Text.Common.WriteObjectDelegate` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void WriteObjectDelegate(System.IO.TextWriter writer, object obj); - - } - namespace Controller - { - // Generated from `ServiceStack.Text.Controller.CommandProcessor` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CommandProcessor - { - public CommandProcessor(object[] controllers) => throw null; - public void Invoke(string commandUri) => throw null; - } - - // Generated from `ServiceStack.Text.Controller.PathInfo` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PathInfo - { - public string ActionName { get => throw null; set => throw null; } - public System.Collections.Generic.List Arguments { get => throw null; set => throw null; } - public string ControllerName { get => throw null; set => throw null; } - public string FirstArgument { get => throw null; } - public T GetArgumentValue(int index) => throw null; - public System.Collections.Generic.Dictionary Options { get => throw null; set => throw null; } - public static ServiceStack.Text.Controller.PathInfo Parse(string pathUri) => throw null; - public PathInfo(string actionName, params string[] arguments) => throw null; - public PathInfo(string actionName, System.Collections.Generic.List arguments, System.Collections.Generic.Dictionary options) => throw null; - } - - } - namespace Json - { - // Generated from `ServiceStack.Text.Json.JsonReader` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsonReader - { - public static void InitAot() => throw null; - public static ServiceStack.Text.Common.JsReader Instance; - } - - // Generated from `ServiceStack.Text.Json.JsonTypeSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct JsonTypeSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public static string ConvertFromUtf32(int utf32) => throw null; - public bool EatItemSeperatorOrMapEndChar(string value, ref int i) => throw null; - public bool EatItemSeperatorOrMapEndChar(System.ReadOnlySpan value, ref int i) => throw null; - public string EatMapKey(string value, ref int i) => throw null; - public System.ReadOnlySpan EatMapKey(System.ReadOnlySpan value, ref int i) => throw null; - public bool EatMapKeySeperator(string value, ref int i) => throw null; - public bool EatMapKeySeperator(System.ReadOnlySpan value, ref int i) => throw null; - public bool EatMapStartChar(string value, ref int i) => throw null; - public bool EatMapStartChar(System.ReadOnlySpan value, ref int i) => throw null; - public string EatTypeValue(string value, ref int i) => throw null; - public System.ReadOnlySpan EatTypeValue(System.ReadOnlySpan value, ref int i) => throw null; - public string EatValue(string value, ref int i) => throw null; - public System.ReadOnlySpan EatValue(System.ReadOnlySpan value, ref int i) => throw null; - public void EatWhitespace(string value, ref int i) => throw null; - public void EatWhitespace(System.ReadOnlySpan value, ref int i) => throw null; - public ServiceStack.Text.Common.ParseStringDelegate GetParseFn() => throw null; - public ServiceStack.Text.Common.ParseStringDelegate GetParseFn(System.Type type) => throw null; - public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn() => throw null; - public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(System.Type type) => throw null; - public ServiceStack.Text.Json.TypeInfo GetTypeInfo(System.Type type) => throw null; - public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn() => throw null; - public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(System.Type type) => throw null; - public bool IncludeNullValues { get => throw null; } - public bool IncludeNullValuesInDictionaries { get => throw null; } - public static ServiceStack.Text.Common.ITypeSerializer Instance; - public static bool IsEmptyMap(System.ReadOnlySpan value, int i = default(int)) => throw null; - // Stub generator skipped constructor - public ServiceStack.Text.Common.ObjectDeserializerDelegate ObjectDeserializer { get => throw null; set => throw null; } - public string ParseRawString(string value) => throw null; - public string ParseString(string value) => throw null; - public string ParseString(System.ReadOnlySpan value) => throw null; - public string TypeAttrInObject { get => throw null; } - public static string Unescape(string input, bool removeQuotes) => throw null; - public static string Unescape(string input) => throw null; - public static System.ReadOnlySpan Unescape(System.ReadOnlySpan input, bool removeQuotes, System.Char quoteChar) => throw null; - public static System.ReadOnlySpan Unescape(System.ReadOnlySpan input, bool removeQuotes) => throw null; - public static System.ReadOnlySpan Unescape(System.ReadOnlySpan input) => throw null; - public static System.ReadOnlySpan UnescapeJsString(System.ReadOnlySpan json, System.Char quoteChar, bool removeQuotes, ref int index) => throw null; - public static System.ReadOnlySpan UnescapeJsString(System.ReadOnlySpan json, System.Char quoteChar) => throw null; - public string UnescapeSafeString(string value) => throw null; - public System.ReadOnlySpan UnescapeSafeString(System.ReadOnlySpan value) => throw null; - public string UnescapeString(string value) => throw null; - public System.ReadOnlySpan UnescapeString(System.ReadOnlySpan value) => throw null; - public object UnescapeStringAsObject(System.ReadOnlySpan value) => throw null; - public void WriteBool(System.IO.TextWriter writer, object boolValue) => throw null; - public void WriteBuiltIn(System.IO.TextWriter writer, object value) => throw null; - public void WriteByte(System.IO.TextWriter writer, object byteValue) => throw null; - public void WriteBytes(System.IO.TextWriter writer, object oByteValue) => throw null; - public void WriteChar(System.IO.TextWriter writer, object charValue) => throw null; - public void WriteDateTime(System.IO.TextWriter writer, object oDateTime) => throw null; - public void WriteDateTimeOffset(System.IO.TextWriter writer, object oDateTimeOffset) => throw null; - public void WriteDecimal(System.IO.TextWriter writer, object decimalValue) => throw null; - public void WriteDouble(System.IO.TextWriter writer, object doubleValue) => throw null; - public void WriteEnum(System.IO.TextWriter writer, object enumValue) => throw null; - public void WriteException(System.IO.TextWriter writer, object value) => throw null; - public void WriteFloat(System.IO.TextWriter writer, object floatValue) => throw null; - public void WriteFormattableObjectString(System.IO.TextWriter writer, object value) => throw null; - public void WriteGuid(System.IO.TextWriter writer, object oValue) => throw null; - public void WriteInt16(System.IO.TextWriter writer, object intValue) => throw null; - public void WriteInt32(System.IO.TextWriter writer, object intValue) => throw null; - public void WriteInt64(System.IO.TextWriter writer, object integerValue) => throw null; - public void WriteNullableDateTime(System.IO.TextWriter writer, object dateTime) => throw null; - public void WriteNullableDateTimeOffset(System.IO.TextWriter writer, object dateTimeOffset) => throw null; - public void WriteNullableGuid(System.IO.TextWriter writer, object oValue) => throw null; - public void WriteNullableTimeSpan(System.IO.TextWriter writer, object oTimeSpan) => throw null; - public void WriteObjectString(System.IO.TextWriter writer, object value) => throw null; - public void WritePropertyName(System.IO.TextWriter writer, string value) => throw null; - public void WriteRawString(System.IO.TextWriter writer, string value) => throw null; - public void WriteSByte(System.IO.TextWriter writer, object sbyteValue) => throw null; - public void WriteString(System.IO.TextWriter writer, string value) => throw null; - public void WriteTimeSpan(System.IO.TextWriter writer, object oTimeSpan) => throw null; - public void WriteUInt16(System.IO.TextWriter writer, object intValue) => throw null; - public void WriteUInt32(System.IO.TextWriter writer, object uintValue) => throw null; - public void WriteUInt64(System.IO.TextWriter writer, object ulongValue) => throw null; - } - - // Generated from `ServiceStack.Text.Json.JsonUtils` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsonUtils - { - public const System.Char BackspaceChar = default; - public const System.Char CarriageReturnChar = default; - public const System.Char EscapeChar = default; - public const string False = default; - public const System.Char FormFeedChar = default; - public static void IntToHex(int intValue, System.Char[] hex) => throw null; - public static bool IsJsArray(string value) => throw null; - public static bool IsJsArray(System.ReadOnlySpan value) => throw null; - public static bool IsJsObject(string value) => throw null; - public static bool IsJsObject(System.ReadOnlySpan value) => throw null; - public static bool IsWhiteSpace(System.Char c) => throw null; - public const System.Char LineFeedChar = default; - public const System.Int64 MaxInteger = default; - public const System.Int64 MinInteger = default; - public const string Null = default; - public const System.Char QuoteChar = default; - public const System.Char SpaceChar = default; - public const System.Char TabChar = default; - public const string True = default; - public static System.Char[] WhiteSpaceChars; - public static void WriteString(System.IO.TextWriter writer, string value) => throw null; - } - - // Generated from `ServiceStack.Text.Json.JsonWriter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsonWriter - { - public static void InitAot() => throw null; - public static ServiceStack.Text.Common.JsWriter Instance; - } - - // Generated from `ServiceStack.Text.Json.JsonWriter<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsonWriter - { - public static ServiceStack.Text.Json.TypeInfo GetTypeInfo() => throw null; - public static void Refresh() => throw null; - public static void Reset() => throw null; - public static ServiceStack.Text.Common.WriteObjectDelegate WriteFn() => throw null; - public static void WriteObject(System.IO.TextWriter writer, object value) => throw null; - public static void WriteRootObject(System.IO.TextWriter writer, object value) => throw null; - } - - // Generated from `ServiceStack.Text.Json.TypeInfo` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypeInfo - { - public TypeInfo() => throw null; - } - - } - namespace Jsv - { - // Generated from `ServiceStack.Text.Jsv.JsvReader` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsvReader - { - public static ServiceStack.Text.Common.ParseStringDelegate GetParseFn(System.Type type) => throw null; - public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseSpanFn(System.Type type) => throw null; - public static ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(System.Type type) => throw null; - public static void InitAot() => throw null; - } - - // Generated from `ServiceStack.Text.Jsv.JsvTypeSerializer` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct JsvTypeSerializer : ServiceStack.Text.Common.ITypeSerializer - { - public bool EatItemSeperatorOrMapEndChar(string value, ref int i) => throw null; - public bool EatItemSeperatorOrMapEndChar(System.ReadOnlySpan value, ref int i) => throw null; - public string EatMapKey(string value, ref int i) => throw null; - public System.ReadOnlySpan EatMapKey(System.ReadOnlySpan value, ref int i) => throw null; - public bool EatMapKeySeperator(string value, ref int i) => throw null; - public bool EatMapKeySeperator(System.ReadOnlySpan value, ref int i) => throw null; - public bool EatMapStartChar(string value, ref int i) => throw null; - public bool EatMapStartChar(System.ReadOnlySpan value, ref int i) => throw null; - public string EatTypeValue(string value, ref int i) => throw null; - public System.ReadOnlySpan EatTypeValue(System.ReadOnlySpan value, ref int i) => throw null; - public string EatValue(string value, ref int i) => throw null; - public System.ReadOnlySpan EatValue(System.ReadOnlySpan value, ref int i) => throw null; - public void EatWhitespace(string value, ref int i) => throw null; - public void EatWhitespace(System.ReadOnlySpan value, ref int i) => throw null; - public ServiceStack.Text.Common.ParseStringDelegate GetParseFn() => throw null; - public ServiceStack.Text.Common.ParseStringDelegate GetParseFn(System.Type type) => throw null; - public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn() => throw null; - public ServiceStack.Text.Common.ParseStringSpanDelegate GetParseStringSpanFn(System.Type type) => throw null; - public ServiceStack.Text.Json.TypeInfo GetTypeInfo(System.Type type) => throw null; - public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn() => throw null; - public ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(System.Type type) => throw null; - public bool IncludeNullValues { get => throw null; } - public bool IncludeNullValuesInDictionaries { get => throw null; } - public static ServiceStack.Text.Common.ITypeSerializer Instance; - // Stub generator skipped constructor - public ServiceStack.Text.Common.ObjectDeserializerDelegate ObjectDeserializer { get => throw null; set => throw null; } - public string ParseRawString(string value) => throw null; - public string ParseString(string value) => throw null; - public string ParseString(System.ReadOnlySpan value) => throw null; - public string TypeAttrInObject { get => throw null; } - public string UnescapeSafeString(string value) => throw null; - public System.ReadOnlySpan UnescapeSafeString(System.ReadOnlySpan value) => throw null; - public string UnescapeString(string value) => throw null; - public System.ReadOnlySpan UnescapeString(System.ReadOnlySpan value) => throw null; - public object UnescapeStringAsObject(System.ReadOnlySpan value) => throw null; - public void WriteBool(System.IO.TextWriter writer, object boolValue) => throw null; - public void WriteBuiltIn(System.IO.TextWriter writer, object value) => throw null; - public void WriteByte(System.IO.TextWriter writer, object byteValue) => throw null; - public void WriteBytes(System.IO.TextWriter writer, object oByteValue) => throw null; - public void WriteChar(System.IO.TextWriter writer, object charValue) => throw null; - public void WriteDateTime(System.IO.TextWriter writer, object oDateTime) => throw null; - public void WriteDateTimeOffset(System.IO.TextWriter writer, object oDateTimeOffset) => throw null; - public void WriteDecimal(System.IO.TextWriter writer, object decimalValue) => throw null; - public void WriteDouble(System.IO.TextWriter writer, object doubleValue) => throw null; - public void WriteEnum(System.IO.TextWriter writer, object enumValue) => throw null; - public void WriteException(System.IO.TextWriter writer, object value) => throw null; - public void WriteFloat(System.IO.TextWriter writer, object floatValue) => throw null; - public void WriteFormattableObjectString(System.IO.TextWriter writer, object value) => throw null; - public void WriteGuid(System.IO.TextWriter writer, object oValue) => throw null; - public void WriteInt16(System.IO.TextWriter writer, object intValue) => throw null; - public void WriteInt32(System.IO.TextWriter writer, object intValue) => throw null; - public void WriteInt64(System.IO.TextWriter writer, object longValue) => throw null; - public void WriteNullableDateTime(System.IO.TextWriter writer, object dateTime) => throw null; - public void WriteNullableDateTimeOffset(System.IO.TextWriter writer, object dateTimeOffset) => throw null; - public void WriteNullableGuid(System.IO.TextWriter writer, object oValue) => throw null; - public void WriteNullableTimeSpan(System.IO.TextWriter writer, object oTimeSpan) => throw null; - public void WriteObjectString(System.IO.TextWriter writer, object value) => throw null; - public void WritePropertyName(System.IO.TextWriter writer, string value) => throw null; - public void WriteRawString(System.IO.TextWriter writer, string value) => throw null; - public void WriteSByte(System.IO.TextWriter writer, object sbyteValue) => throw null; - public void WriteString(System.IO.TextWriter writer, string value) => throw null; - public void WriteTimeSpan(System.IO.TextWriter writer, object oTimeSpan) => throw null; - public void WriteUInt16(System.IO.TextWriter writer, object intValue) => throw null; - public void WriteUInt32(System.IO.TextWriter writer, object uintValue) => throw null; - public void WriteUInt64(System.IO.TextWriter writer, object ulongValue) => throw null; - } - - // Generated from `ServiceStack.Text.Jsv.JsvWriter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsvWriter - { - public static ServiceStack.Text.Common.WriteObjectDelegate GetValueTypeToStringMethod(System.Type type) => throw null; - public static ServiceStack.Text.Common.WriteObjectDelegate GetWriteFn(System.Type type) => throw null; - public static void InitAot() => throw null; - public static ServiceStack.Text.Common.JsWriter Instance; - public static void WriteLateBoundObject(System.IO.TextWriter writer, object value) => throw null; - } - - // Generated from `ServiceStack.Text.Jsv.JsvWriter<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JsvWriter - { - public static void Refresh() => throw null; - public static void Reset() => throw null; - public static ServiceStack.Text.Common.WriteObjectDelegate WriteFn() => throw null; - public static void WriteObject(System.IO.TextWriter writer, object value) => throw null; - public static void WriteRootObject(System.IO.TextWriter writer, object value) => throw null; - } - - } - namespace Pools - { - // Generated from `ServiceStack.Text.Pools.BufferPool` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BufferPool - { - public const int BUFFER_LENGTH = default; - public static void Flush() => throw null; - public static System.Byte[] GetBuffer(int minSize) => throw null; - public static System.Byte[] GetBuffer() => throw null; - public static System.Byte[] GetCachedBuffer(int minSize) => throw null; - public static void ReleaseBufferToPool(ref System.Byte[] buffer) => throw null; - public static void ResizeAndFlushLeft(ref System.Byte[] buffer, int toFitAtLeastBytes, int copyFromIndex, int copyBytes) => throw null; - } - - // Generated from `ServiceStack.Text.Pools.CharPool` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CharPool - { - public const int BUFFER_LENGTH = default; - public static void Flush() => throw null; - public static System.Char[] GetBuffer(int minSize) => throw null; - public static System.Char[] GetBuffer() => throw null; - public static System.Char[] GetCachedBuffer(int minSize) => throw null; - public static void ReleaseBufferToPool(ref System.Char[] buffer) => throw null; - public static void ResizeAndFlushLeft(ref System.Char[] buffer, int toFitAtLeastchars, int copyFromIndex, int copychars) => throw null; - } - - // Generated from `ServiceStack.Text.Pools.ObjectPool<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ObjectPool where T : class - { - public T Allocate() => throw null; - // Generated from `ServiceStack.Text.Pools.ObjectPool<>+Factory` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate T Factory(); - - - public void ForgetTrackedObject(T old, T replacement = default(T)) => throw null; - public void Free(T obj) => throw null; - public ObjectPool(ServiceStack.Text.Pools.ObjectPool.Factory factory, int size) => throw null; - public ObjectPool(ServiceStack.Text.Pools.ObjectPool.Factory factory) => throw null; - } - - // Generated from `ServiceStack.Text.Pools.PooledObject<>` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct PooledObject : System.IDisposable where T : class - { - public static ServiceStack.Text.Pools.PooledObject Create(ServiceStack.Text.Pools.ObjectPool pool) => throw null; - public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; - public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; - public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; - public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; - public static ServiceStack.Text.Pools.PooledObject> Create(ServiceStack.Text.Pools.ObjectPool> pool) => throw null; - public void Dispose() => throw null; - public T Object { get => throw null; } - public PooledObject(ServiceStack.Text.Pools.ObjectPool pool, System.Func, T> allocator, System.Action, T> releaser) => throw null; - // Stub generator skipped constructor - } - - // Generated from `ServiceStack.Text.Pools.SharedPools` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SharedPools - { - public static ServiceStack.Text.Pools.ObjectPool AsyncByteArray; - public static ServiceStack.Text.Pools.ObjectPool BigDefault() where T : class, new() => throw null; - public static ServiceStack.Text.Pools.ObjectPool ByteArray; - public const int ByteBufferSize = default; - public static ServiceStack.Text.Pools.ObjectPool Default() where T : class, new() => throw null; - public static ServiceStack.Text.Pools.ObjectPool> StringHashSet; - public static ServiceStack.Text.Pools.ObjectPool> StringIgnoreCaseDictionary() => throw null; - public static ServiceStack.Text.Pools.ObjectPool> StringIgnoreCaseHashSet; - } - - // Generated from `ServiceStack.Text.Pools.StringBuilderPool` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StringBuilderPool - { - public static System.Text.StringBuilder Allocate() => throw null; - public static void Free(System.Text.StringBuilder builder) => throw null; - public static string ReturnAndFree(System.Text.StringBuilder builder) => throw null; - } - - } - namespace Support - { - // Generated from `ServiceStack.Text.Support.DoubleConverter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DoubleConverter - { - public DoubleConverter() => throw null; - public static string ToExactString(double d) => throw null; - } - - // Generated from `ServiceStack.Text.Support.TimeSpanConverter` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TimeSpanConverter - { - public static System.TimeSpan FromXsdDuration(string xsdDuration) => throw null; - public TimeSpanConverter() => throw null; - public static string ToXsdDuration(System.TimeSpan timeSpan) => throw null; - } - - // Generated from `ServiceStack.Text.Support.TypePair` in `ServiceStack.Text, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypePair - { - public System.Type[] Arg2 { get => throw null; set => throw null; } - public System.Type[] Args1 { get => throw null; set => throw null; } - public override bool Equals(object obj) => throw null; - public bool Equals(ServiceStack.Text.Support.TypePair other) => throw null; - public override int GetHashCode() => throw null; - public TypePair(System.Type[] arg1, System.Type[] arg2) => throw null; - } - - } - } -} diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack.Text/5.11.0/ServiceStack.Text.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - diff --git a/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.cs b/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.cs deleted file mode 100644 index 55683691d0a..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.cs +++ /dev/null @@ -1,11544 +0,0 @@ -// This file contains auto-generated code. - -namespace Funq -{ - // Generated from `Funq.Container` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Container : System.IServiceProvider, System.IDisposable, ServiceStack.IContainer, ServiceStack.Configuration.IResolver - { - public ServiceStack.Configuration.IContainerAdapter Adapter { get => throw null; set => throw null; } - public ServiceStack.IContainer AddSingleton(System.Type type, System.Func factory) => throw null; - public ServiceStack.IContainer AddTransient(System.Type type, System.Func factory) => throw null; - public void AutoWire(object instance) => throw null; - public void AutoWire(Funq.Container container, object instance) => throw null; - public bool CheckAdapterFirst { get => throw null; set => throw null; } - public static System.Linq.Expressions.NewExpression ConstructorExpression(System.Reflection.MethodInfo resolveMethodInfo, System.Type type, System.Linq.Expressions.Expression lambdaParam) => throw null; - public Container() => throw null; - public Funq.Container CreateChildContainer() => throw null; - public System.Func CreateFactory(System.Type type) => throw null; - public Funq.Owner DefaultOwner { get => throw null; set => throw null; } - public Funq.ReuseScope DefaultReuse { get => throw null; set => throw null; } - public virtual void Dispose() => throw null; - public bool Exists() => throw null; - public bool Exists(System.Type type) => throw null; - public bool ExistsNamed(string name) => throw null; - public static System.Func GenerateAutoWireFn() => throw null; - public static System.Reflection.ConstructorInfo GetConstructorWithMostParams(System.Type type) => throw null; - protected virtual Funq.ServiceEntry GetEntry(string serviceName, bool throwIfMissing) => throw null; - public object GetLazyResolver(params System.Type[] types) => throw null; - public object GetService(System.Type serviceType) => throw null; - public Funq.ServiceEntry> GetServiceEntry() => throw null; - public Funq.ServiceEntry> GetServiceEntryNamed(string name) => throw null; - public static System.Collections.Generic.HashSet IgnorePropertyTypeFullNames; - protected virtual Funq.Container InstantiateChildContainer() => throw null; - public System.Func LazyResolve(string name) => throw null; - public System.Func LazyResolve() => throw null; - public System.Func LazyResolve(string name) => throw null; - public System.Func LazyResolve() => throw null; - public System.Func LazyResolve(string name) => throw null; - public System.Func LazyResolve() => throw null; - public System.Func LazyResolve(string name) => throw null; - public System.Func LazyResolve() => throw null; - public System.Func LazyResolve(string name) => throw null; - public System.Func LazyResolve() => throw null; - public Funq.Func LazyResolve(string name) => throw null; - public Funq.Func LazyResolve() => throw null; - public Funq.Func LazyResolve(string name) => throw null; - public Funq.Func LazyResolve() => throw null; - public void Register(string name, TService instance) => throw null; - public void Register(TService instance) => throw null; - public Funq.IRegistration Register(string name, System.Func factory) => throw null; - public Funq.IRegistration Register(System.Func factory) => throw null; - public Funq.IRegistration Register(string name, System.Func factory) => throw null; - public Funq.IRegistration Register(System.Func factory) => throw null; - public Funq.IRegistration Register(string name, System.Func factory) => throw null; - public Funq.IRegistration Register(System.Func factory) => throw null; - public Funq.IRegistration Register(string name, System.Func factory) => throw null; - public Funq.IRegistration Register(System.Func factory) => throw null; - public Funq.IRegistration Register(string name, Funq.Func factory) => throw null; - public Funq.IRegistration Register(Funq.Func factory) => throw null; - public Funq.IRegistration Register(string name, Funq.Func factory) => throw null; - public Funq.IRegistration Register(Funq.Func factory) => throw null; - public Funq.IRegistration Register(string name, Funq.Func factory) => throw null; - public Funq.IRegistration Register(Funq.Func factory) => throw null; - public Funq.IRegistration RegisterAs(string name) where T : TAs => throw null; - public Funq.IRegistration RegisterAs() where T : TAs => throw null; - public Funq.IRegistration RegisterAutoWired(string name) => throw null; - public Funq.IRegistration RegisterAutoWired() => throw null; - public Funq.IRegistration RegisterAutoWiredAs(string name) where T : TAs => throw null; - public Funq.IRegistration RegisterAutoWiredAs() where T : TAs => throw null; - public Funq.IRegistration RegisterFactory(System.Func factory) => throw null; - public object RequiredResolve(System.Type type, System.Type ownerType) => throw null; - public object Resolve(System.Type type) => throw null; - public TService Resolve() => throw null; - public TService Resolve(TArg arg) => throw null; - public TService Resolve(TArg1 arg1, TArg2 arg2) => throw null; - public TService Resolve(TArg1 arg1, TArg2 arg2, TArg3 arg3) => throw null; - public TService Resolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) => throw null; - public TService Resolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) => throw null; - public TService Resolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6) => throw null; - public TService ResolveNamed(string name) => throw null; - public TService ResolveNamed(string name, TArg arg) => throw null; - public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2) => throw null; - public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3) => throw null; - public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) => throw null; - public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) => throw null; - public TService ResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6) => throw null; - public System.Func ReverseLazyResolve() => throw null; - public System.Func ReverseLazyResolve() => throw null; - public System.Func ReverseLazyResolve() => throw null; - public System.Func ReverseLazyResolve() => throw null; - public object TryResolve(System.Type type) => throw null; - public TService TryResolve() => throw null; - public TService TryResolve(TArg arg) => throw null; - public TService TryResolve(TArg1 arg1, TArg2 arg2) => throw null; - public TService TryResolve(TArg1 arg1, TArg2 arg2, TArg3 arg3) => throw null; - public TService TryResolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) => throw null; - public TService TryResolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) => throw null; - public TService TryResolve(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6) => throw null; - public TService TryResolveNamed(string name) => throw null; - public TService TryResolveNamed(string name, TArg arg) => throw null; - public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2) => throw null; - public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3) => throw null; - public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) => throw null; - public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5) => throw null; - public TService TryResolveNamed(string name, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6) => throw null; - public int disposablesCount { get => throw null; } - } - - // Generated from `Funq.Func<,,,,,,,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7); - - // Generated from `Funq.Func<,,,,,,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6); - - // Generated from `Funq.Func<,,,,,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); - - // Generated from `Funq.IContainerModule` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IContainerModule : Funq.IFunqlet - { - } - - // Generated from `Funq.IFluentInterface` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IFluentInterface - { - bool Equals(object obj); - int GetHashCode(); - System.Type GetType(); - string ToString(); - } - - // Generated from `Funq.IFunqlet` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IFunqlet - { - void Configure(Funq.Container container); - } - - // Generated from `Funq.IHasContainer` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasContainer - { - Funq.Container Container { get; } - } - - // Generated from `Funq.IInitializable<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IInitializable : Funq.IFluentInterface - { - Funq.IReusedOwned InitializedBy(System.Action initializer); - } - - // Generated from `Funq.IOwned` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOwned : Funq.IFluentInterface - { - void OwnedBy(Funq.Owner owner); - } - - // Generated from `Funq.IRegistration` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRegistration : Funq.IReusedOwned, Funq.IReused, Funq.IOwned, Funq.IFluentInterface - { - } - - // Generated from `Funq.IRegistration<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRegistration : Funq.IReusedOwned, Funq.IReused, Funq.IRegistration, Funq.IOwned, Funq.IInitializable, Funq.IFluentInterface - { - } - - // Generated from `Funq.IReused` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IReused : Funq.IFluentInterface - { - Funq.IOwned ReusedWithin(Funq.ReuseScope scope); - } - - // Generated from `Funq.IReusedOwned` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IReusedOwned : Funq.IReused, Funq.IOwned, Funq.IFluentInterface - { - } - - // Generated from `Funq.Owner` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum Owner - { - Container, - Default, - External, - } - - // Generated from `Funq.ResolutionException` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ResolutionException : System.Exception - { - public ResolutionException(string message) => throw null; - public ResolutionException(System.Type missingServiceType, string missingServiceName) => throw null; - public ResolutionException(System.Type missingServiceType) => throw null; - } - - // Generated from `Funq.ReuseScope` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum ReuseScope - { - Container, - Default, - Hierarchy, - None, - Request, - } - - // Generated from `Funq.ServiceEntry` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceEntry : Funq.IReusedOwned, Funq.IReused, Funq.IRegistration, Funq.IOwned, Funq.IFluentInterface - { - public Funq.Container Container; - public virtual object GetInstance() => throw null; - System.Type Funq.IFluentInterface.GetType() => throw null; - public void OwnedBy(Funq.Owner owner) => throw null; - public Funq.Owner Owner; - public Funq.ReuseScope Reuse; - public Funq.IOwned ReusedWithin(Funq.ReuseScope scope) => throw null; - protected ServiceEntry() => throw null; - } - - // Generated from `Funq.ServiceEntry<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceEntry : Funq.ServiceEntry, Funq.IReusedOwned, Funq.IReused, Funq.IRegistration, Funq.IRegistration, Funq.IOwned, Funq.IInitializable, Funq.IFluentInterface - { - public System.IDisposable AquireLockIfNeeded() => throw null; - public Funq.ServiceEntry CloneFor(Funq.Container newContainer) => throw null; - public TFunc Factory; - public override object GetInstance() => throw null; - System.Type Funq.IFluentInterface.GetType() => throw null; - public Funq.IReusedOwned InitializedBy(System.Action initializer) => throw null; - public ServiceEntry(TFunc factory) => throw null; - } - -} -namespace MarkdownDeep -{ - // Generated from `MarkdownDeep.BlockProcessor` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BlockProcessor : MarkdownDeep.StringScanner - { - public BlockProcessor(MarkdownDeep.Markdown m, bool MarkdownInHtml) => throw null; - } - - // Generated from `MarkdownDeep.HtmlTag` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlTag - { - public MarkdownDeep.HtmlTagFlags Flags { get => throw null; } - public HtmlTag(string name) => throw null; - public bool IsSafe() => throw null; - public static MarkdownDeep.HtmlTag Parse(string str, ref int pos) => throw null; - public static MarkdownDeep.HtmlTag Parse(MarkdownDeep.StringScanner p) => throw null; - public void RenderClosing(System.Text.StringBuilder dest) => throw null; - public void RenderOpening(System.Text.StringBuilder dest) => throw null; - public System.Collections.Generic.Dictionary attributes { get => throw null; } - public bool closed { get => throw null; set => throw null; } - public bool closing { get => throw null; } - public string name { get => throw null; } - } - - // Generated from `MarkdownDeep.HtmlTagFlags` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum HtmlTagFlags - { - Block, - ContentAsSpan, - Inline, - NoClosing, - } - - // Generated from `MarkdownDeep.ImageInfo` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ImageInfo - { - public ImageInfo() => throw null; - public int height; - public bool titled_image; - public string url; - public int width; - } - - // Generated from `MarkdownDeep.LinkDefinition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LinkDefinition - { - public LinkDefinition(string id, string url, string title) => throw null; - public LinkDefinition(string id, string url) => throw null; - public LinkDefinition(string id) => throw null; - public string id { get => throw null; set => throw null; } - public string title { get => throw null; set => throw null; } - public string url { get => throw null; set => throw null; } - } - - // Generated from `MarkdownDeep.Markdown` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Markdown - { - public bool AutoHeadingIDs { get => throw null; set => throw null; } - public string DocumentLocation { get => throw null; set => throw null; } - public string DocumentRoot { get => throw null; set => throw null; } - public bool ExtraMode { get => throw null; set => throw null; } - public bool ExtractHeadBlocks { get => throw null; set => throw null; } - public System.Func FormatCodeBlock; - public System.Func GetImageSize; - public MarkdownDeep.LinkDefinition GetLinkDefinition(string id) => throw null; - public string HeadBlockContent { get => throw null; set => throw null; } - public string HtmlClassFootnotes { get => throw null; set => throw null; } - public string HtmlClassTitledImages { get => throw null; set => throw null; } - public static string JoinSections(System.Collections.Generic.List sections) => throw null; - public static string JoinUserSections(System.Collections.Generic.List sections) => throw null; - public Markdown() => throw null; - public bool MarkdownInHtml { get => throw null; set => throw null; } - public int MaxImageWidth { get => throw null; set => throw null; } - public bool NewWindowForExternalLinks { get => throw null; set => throw null; } - public bool NewWindowForLocalLinks { get => throw null; set => throw null; } - public bool NoFollowLinks { get => throw null; set => throw null; } - public virtual bool OnGetImageSize(string url, bool TitledImage, out int width, out int height) => throw null; - public virtual void OnPrepareImage(MarkdownDeep.HtmlTag tag, bool TitledImage) => throw null; - public virtual void OnPrepareLink(MarkdownDeep.HtmlTag tag) => throw null; - public virtual string OnQualifyUrl(string url) => throw null; - public virtual void OnSectionFooter(System.Text.StringBuilder dest, int Index) => throw null; - public virtual void OnSectionHeader(System.Text.StringBuilder dest, int Index) => throw null; - public virtual void OnSectionHeadingSuffix(System.Text.StringBuilder dest, int Index) => throw null; - public System.Func PrepareImage; - public System.Func PrepareLink; - public System.Func QualifyUrl; - public bool SafeMode { get => throw null; set => throw null; } - public string SectionFooter { get => throw null; set => throw null; } - public string SectionHeader { get => throw null; set => throw null; } - public string SectionHeadingSuffix { get => throw null; set => throw null; } - public static System.Collections.Generic.List SplitSections(string markdown) => throw null; - public static System.Collections.Generic.List SplitUserSections(string markdown) => throw null; - public int SummaryLength { get => throw null; set => throw null; } - public string Transform(string str, out System.Collections.Generic.Dictionary definitions) => throw null; - public string Transform(string str) => throw null; - public string UrlBaseLocation { get => throw null; set => throw null; } - public string UrlRootLocation { get => throw null; set => throw null; } - public bool UserBreaks { get => throw null; set => throw null; } - } - - // Generated from `MarkdownDeep.MarkdownDeepTransformer` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MarkdownDeepTransformer : ServiceStack.IMarkdownTransformer - { - public MarkdownDeepTransformer() => throw null; - public string Transform(string markdown) => throw null; - } - - // Generated from `MarkdownDeep.StringScanner` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringScanner - { - public System.Char CharAtOffset(int offset) => throw null; - public bool DoesMatch(string str) => throw null; - public bool DoesMatch(int offset, System.Char ch) => throw null; - public bool DoesMatch(System.Char ch) => throw null; - public bool DoesMatchAny(int offset, System.Char[] chars) => throw null; - public bool DoesMatchAny(System.Char[] chars) => throw null; - public bool DoesMatchI(string str) => throw null; - public string Extract() => throw null; - public bool Find(string find) => throw null; - public bool Find(System.Char ch) => throw null; - public bool FindAny(System.Char[] chars) => throw null; - public bool FindI(string find) => throw null; - public static bool IsLineEnd(System.Char ch) => throw null; - public static bool IsLineSpace(System.Char ch) => throw null; - public void Mark() => throw null; - public void Reset(string str, int pos, int len) => throw null; - public void Reset(string str, int pos) => throw null; - public void Reset(string str) => throw null; - public bool SkipChar(System.Char ch) => throw null; - public bool SkipEol() => throw null; - public bool SkipFootnoteID(out string id) => throw null; - public void SkipForward(int characters) => throw null; - public bool SkipHtmlEntity(ref string entity) => throw null; - public bool SkipIdentifier(ref string identifier) => throw null; - public bool SkipLinespace() => throw null; - public bool SkipString(string str) => throw null; - public bool SkipStringI(string str) => throw null; - public void SkipToEof() => throw null; - public void SkipToEol() => throw null; - public void SkipToNextLine() => throw null; - public bool SkipWhitespace() => throw null; - public StringScanner(string str, int pos, int len) => throw null; - public StringScanner(string str, int pos) => throw null; - public StringScanner(string str) => throw null; - public StringScanner() => throw null; - public string Substring(int start, int len) => throw null; - public string Substring(int start) => throw null; - public bool bof { get => throw null; } - public System.Char current { get => throw null; } - public bool eof { get => throw null; } - public bool eol { get => throw null; } - public string input { get => throw null; } - public int position { get => throw null; set => throw null; } - public string remainder { get => throw null; } - } - -} -namespace ServiceStack -{ - // Generated from `ServiceStack.AddHeaderAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AddHeaderAttribute : ServiceStack.RequestFilterAttribute - { - public AddHeaderAttribute(string name, string value) => throw null; - public AddHeaderAttribute(System.Net.HttpStatusCode status, string statusDescription = default(string)) => throw null; - public AddHeaderAttribute() => throw null; - public string CacheControl { get => throw null; set => throw null; } - public string ContentDisposition { get => throw null; set => throw null; } - public string ContentEncoding { get => throw null; set => throw null; } - public string ContentLength { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public string DefaultContentType { get => throw null; set => throw null; } - public string ETag { get => throw null; set => throw null; } - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public string LastModified { get => throw null; set => throw null; } - public string Location { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public string SetCookie { get => throw null; set => throw null; } - public System.Net.HttpStatusCode Status { get => throw null; set => throw null; } - public int? StatusCode { get => throw null; set => throw null; } - public string StatusDescription { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AlwaysFalseCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AlwaysFalseCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public AlwaysFalseCondition() => throw null; - public static ServiceStack.AlwaysFalseCondition Instance; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.ApiKeyAuthProviderExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ApiKeyAuthProviderExtensions - { - public static ServiceStack.Auth.ApiKey GetApiKey(this ServiceStack.Web.IRequest req) => throw null; - } - - // Generated from `ServiceStack.ApiPages` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ApiPages - { - public ApiPages() => throw null; - public string PageName { get => throw null; set => throw null; } - public string PathInfo { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AppHostBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AppHostBase : ServiceStack.ServiceStackHost, ServiceStack.IRequireConfiguration, ServiceStack.IConfigureServices, ServiceStack.IAppHostNetCore, ServiceStack.IAppHost, ServiceStack.Configuration.IResolver - { - public Microsoft.AspNetCore.Builder.IApplicationBuilder App { get => throw null; } - protected AppHostBase(string serviceName, params System.Reflection.Assembly[] assembliesWithServices) : base(default(string), default(System.Reflection.Assembly[])) => throw null; - public System.IServiceProvider ApplicationServices { get => throw null; } - public System.Func BeforeNextMiddleware { get => throw null; set => throw null; } - public virtual void Bind(Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public static void BindHost(ServiceStack.ServiceStackHost appHost, Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } - public virtual void Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - protected override void Dispose(bool disposing) => throw null; - public static ServiceStack.Web.IRequest GetOrCreateRequest(Microsoft.AspNetCore.Http.IHttpContextAccessor httpContextAccessor) => throw null; - public static ServiceStack.Web.IRequest GetOrCreateRequest(Microsoft.AspNetCore.Http.HttpContext httpContext) => throw null; - public override string GetWebRootPath() => throw null; - public Microsoft.AspNetCore.Hosting.IHostingEnvironment HostingEnvironment { get => throw null; } - public bool InjectRequestContext { get => throw null; set => throw null; } - public override string MapProjectPath(string relativePath) => throw null; - public System.Func> NetCoreHandler { get => throw null; set => throw null; } - public override void OnConfigLoad() => throw null; - public override string PathBase { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task ProcessRequest(Microsoft.AspNetCore.Http.HttpContext context, System.Func next) => throw null; - public static void RegisterLicenseFromAppSettings(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public override ServiceStack.Web.IRequest TryGetCurrentRequest() => throw null; - } - - // Generated from `ServiceStack.AppHostExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AppHostExtensions - { - public static System.Collections.Generic.List AddIfNotExists(this System.Collections.Generic.List plugins, T plugin, System.Action configure) where T : class, ServiceStack.IPlugin => throw null; - public static System.Collections.Generic.List AddIfNotExists(this System.Collections.Generic.List plugins, T plugin) where T : class, ServiceStack.IPlugin => throw null; - public static void AddPluginsFromAssembly(this ServiceStack.IAppHost appHost, params System.Reflection.Assembly[] assembliesWithPlugins) => throw null; - public static T AssertPlugin(this ServiceStack.IAppHost appHost) where T : class, ServiceStack.IPlugin => throw null; - public static Funq.Container GetContainer(this ServiceStack.IAppHost appHost) => throw null; - public static T GetPlugin(this ServiceStack.IAppHost appHost) where T : class, ServiceStack.IPlugin => throw null; - public static bool HasMultiplePlugins(this ServiceStack.IAppHost appHost) where T : class, ServiceStack.IPlugin => throw null; - public static bool HasPlugin(this ServiceStack.IAppHost appHost) where T : class, ServiceStack.IPlugin => throw null; - public static string Localize(this string text, ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; - public static string LocalizeFmt(this string text, params object[] args) => throw null; - public static string LocalizeFmt(this string text, ServiceStack.Web.IRequest request, params object[] args) => throw null; - public static bool NotifyStartupException(this ServiceStack.IAppHost appHost, System.Exception ex) => throw null; - public static void RegisterRequestBinder(this ServiceStack.IAppHost appHost, System.Func binder) => throw null; - public static void RegisterService(this ServiceStack.IAppHost appHost, params string[] atRestPaths) => throw null; - public static void RegisterServices(this ServiceStack.IAppHost appHost, System.Collections.Generic.Dictionary serviceRoutes) => throw null; - public static System.Collections.Generic.Dictionary RemoveService(this System.Collections.Generic.Dictionary serviceRoutes) => throw null; - public static string ResolveStaticBaseUrl(this ServiceStack.IAppHost appHost) => throw null; - public static ServiceStack.IAppHost Start(this ServiceStack.IAppHost appHost, System.Collections.Generic.IEnumerable urlBases) => throw null; - } - - // Generated from `ServiceStack.AppUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AppUtils - { - public static T DbContextExec(this System.IServiceProvider services, System.Func dbResolver, System.Func fn) => throw null; - public static T GetIdentityUserById(this System.Data.IDbConnection db, string userId, string sqlGetUser) => throw null; - public static T GetIdentityUserById(this System.Data.IDbConnection db, string userId) => throw null; - public static System.Collections.Generic.Dictionary GetIdentityUserById(this System.Data.IDbConnection db, string userId, string sqlGetUser) => throw null; - public static System.Collections.Generic.Dictionary GetIdentityUserById(this System.Data.IDbConnection db, string userId) => throw null; - public static System.Collections.Generic.List GetIdentityUserRolesById(this System.Data.IDbConnection db, string userId, string sqlGetUserRoles) => throw null; - public static System.Collections.Generic.List GetIdentityUserRolesById(this System.Data.IDbConnection db, string userId) => throw null; - public static T NewScope(this System.IServiceProvider services, System.Func fn) => throw null; - public static System.Collections.Generic.Dictionary ToObjectDictionary(this System.Data.IDataReader reader, System.Func mapper = default(System.Func)) => throw null; - } - - // Generated from `ServiceStack.ApplyToUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ApplyToUtils - { - public static System.Collections.Generic.Dictionary ApplyToVerbs; - public static ServiceStack.ApplyTo HttpMethodAsApplyTo(this ServiceStack.Web.IRequest req) => throw null; - public static System.Collections.Generic.Dictionary VerbsApplyTo; - } - - // Generated from `ServiceStack.AsyncContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AsyncContext - { - public AsyncContext() => throw null; - public virtual System.Threading.Tasks.Task ContinueWith(System.Threading.Tasks.Task task, System.Action fn, System.Threading.Tasks.TaskContinuationOptions continuationOptions) => throw null; - public virtual System.Threading.Tasks.Task ContinueWith(System.Threading.Tasks.Task task, System.Action fn) => throw null; - } - - // Generated from `ServiceStack.AuthFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPostInitPlugin, ServiceStack.IPlugin - { - public ServiceStack.AuthFeature AddAuthenticateAliasRoutes() => throw null; - public void AfterPluginsLoaded(ServiceStack.IAppHost appHost) => throw null; - public static void AllowAllRedirects(ServiceStack.Web.IRequest req, string redirect) => throw null; - public System.Func AllowGetAuthenticateRequests { get => throw null; set => throw null; } - public System.Collections.Generic.List AuthEvents { get => throw null; set => throw null; } - public AuthFeature(System.Func sessionFactory, ServiceStack.Auth.IAuthProvider[] authProviders, string htmlRedirect = default(string)) => throw null; - public ServiceStack.Auth.IAuthProvider[] AuthProviders { get => throw null; } - public System.Func AuthResponseDecorator { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthSession AuthSecretSession { get => throw null; set => throw null; } - public bool CreateDigestAuthHashes { get => throw null; set => throw null; } - public static bool DefaultAllowGetAuthenticateRequests(ServiceStack.Web.IRequest req) => throw null; - public bool DeleteSessionCookiesOnLogout { get => throw null; set => throw null; } - public bool GenerateNewSessionCookiesOnAuthentication { get => throw null; set => throw null; } - public string HtmlLogoutRedirect { get => throw null; set => throw null; } - public string HtmlRedirect { get => throw null; set => throw null; } - public string HtmlRedirectAccessDenied { get => throw null; set => throw null; } - public string HtmlRedirectReturnParam { get => throw null; set => throw null; } - public bool HtmlRedirectReturnPathOnly { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public bool IncludeAssignRoleServices { set => throw null; } - public bool IncludeAuthMetadataProvider { get => throw null; set => throw null; } - public bool IncludeDefaultLogin { get => throw null; set => throw null; } - public bool IncludeOAuthTokensInAuthenticateResponse { get => throw null; set => throw null; } - public bool IncludeRegistrationService { set => throw null; } - public bool IncludeRolesInAuthenticateResponse { get => throw null; set => throw null; } - public System.Func IsValidUsernameFn { get => throw null; set => throw null; } - public int? MaxLoginAttempts { get => throw null; set => throw null; } - public static void NoExternalRedirects(ServiceStack.Web.IRequest req, string redirect) => throw null; - public System.Func OnAuthenticateValidate { get => throw null; set => throw null; } - public System.TimeSpan? PermanentSessionExpiry { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public void RegisterAuthProvider(ServiceStack.Auth.IAuthProvider authProvider) => throw null; - public System.Collections.Generic.List RegisterPlugins { get => throw null; set => throw null; } - public ServiceStack.AuthFeature RemoveAuthenticateAliasRoutes() => throw null; - public bool SaveUserNamesInLowerCase { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - public System.TimeSpan? SessionExpiry { get => throw null; set => throw null; } - public System.Text.RegularExpressions.Regex ValidUserNameRegEx; - public ServiceStack.Auth.ValidateFn ValidateFn { get => throw null; set => throw null; } - public System.Action ValidateRedirectLinks { get => throw null; set => throw null; } - public bool ValidateUniqueEmails { get => throw null; set => throw null; } - public bool ValidateUniqueUserNames { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AuthFeatureExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AuthFeatureExtensions - { - public static string GetHtmlRedirect(this ServiceStack.AuthFeature feature) => throw null; - public static bool IsValidUsername(this ServiceStack.AuthFeature feature, string userName) => throw null; - public static ServiceStack.Web.IHttpResult SuccessAuthResult(this ServiceStack.Web.IHttpResult result, ServiceStack.IServiceBase service, ServiceStack.Auth.IAuthSession session) => throw null; - public static System.Threading.Tasks.Task SuccessAuthResultAsync(this ServiceStack.Web.IHttpResult result, ServiceStack.IServiceBase service, ServiceStack.Auth.IAuthSession session) => throw null; - public static System.Text.RegularExpressions.Regex ValidUserNameRegEx; - } - - // Generated from `ServiceStack.AuthSessionExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AuthSessionExtensions - { - public static void AddAuthToken(this ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public static System.Collections.Generic.List GetAuthTokens(this ServiceStack.Auth.IAuthSession session) => throw null; - public static ServiceStack.Auth.IAuthTokens GetAuthTokens(this ServiceStack.Auth.IAuthSession session, string provider) => throw null; - public static string GetProfileUrl(this ServiceStack.Auth.IAuthSession authSession, string defaultUrl = default(string)) => throw null; - public static string GetSafeDisplayName(this ServiceStack.Auth.IAuthSession authSession) => throw null; - } - - // Generated from `ServiceStack.AuthUserSession` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthUserSession : ServiceStack.IMeta, ServiceStack.Auth.IAuthSessionExtended, ServiceStack.Auth.IAuthSession - { - public string Address { get => throw null; set => throw null; } - public string Address2 { get => throw null; set => throw null; } - public System.Collections.Generic.List Audiences { get => throw null; set => throw null; } - public string AuthProvider { get => throw null; set => throw null; } - public AuthUserSession() => throw null; - public System.DateTime? BirthDate { get => throw null; set => throw null; } - public string BirthDateRaw { get => throw null; set => throw null; } - public string City { get => throw null; set => throw null; } - public string Company { get => throw null; set => throw null; } - public string Country { get => throw null; set => throw null; } - public System.DateTime CreatedAt { get => throw null; set => throw null; } - public string Culture { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public string Dns { get => throw null; set => throw null; } - public string Email { get => throw null; set => throw null; } - public bool? EmailConfirmed { get => throw null; set => throw null; } - public string FacebookUserId { get => throw null; set => throw null; } - public string FacebookUserName { get => throw null; set => throw null; } - public string FirstName { get => throw null; set => throw null; } - public bool FromToken { get => throw null; set => throw null; } - public string FullName { get => throw null; set => throw null; } - public string Gender { get => throw null; set => throw null; } - public virtual bool HasPermission(string permission, ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public virtual System.Threading.Tasks.Task HasPermissionAsync(string permission, ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual bool HasRole(string role, ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public virtual System.Threading.Tasks.Task HasRoleAsync(string role, ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string Hash { get => throw null; set => throw null; } - public string HomePhone { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public bool IsAuthenticated { get => throw null; set => throw null; } - public virtual bool IsAuthorized(string provider) => throw null; - public string Language { get => throw null; set => throw null; } - public System.DateTime LastModified { get => throw null; set => throw null; } - public string LastName { get => throw null; set => throw null; } - public string MailAddress { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string MobilePhone { get => throw null; set => throw null; } - public string Nickname { get => throw null; set => throw null; } - public virtual void OnAuthenticated(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public virtual System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void OnCreated(ServiceStack.Web.IRequest httpReq) => throw null; - public virtual void OnLoad(ServiceStack.Web.IRequest httpReq) => throw null; - public virtual void OnLogout(ServiceStack.IServiceBase authService) => throw null; - public virtual System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase service) => throw null; - public virtual System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public string PhoneNumber { get => throw null; set => throw null; } - public bool? PhoneNumberConfirmed { get => throw null; set => throw null; } - public string PostalCode { get => throw null; set => throw null; } - public string PrimaryEmail { get => throw null; set => throw null; } - public string ProfileUrl { get => throw null; set => throw null; } - public System.Collections.Generic.List ProviderOAuthAccess { get => throw null; set => throw null; } - public string ReferrerUrl { get => throw null; set => throw null; } - public string RequestTokenSecret { get => throw null; set => throw null; } - public System.Collections.Generic.List Roles { get => throw null; set => throw null; } - public string Rsa { get => throw null; set => throw null; } - public System.Collections.Generic.List Scopes { get => throw null; set => throw null; } - public string SecurityStamp { get => throw null; set => throw null; } - public string Sequence { get => throw null; set => throw null; } - public string Sid { get => throw null; set => throw null; } - public string State { get => throw null; set => throw null; } - public System.Int64 Tag { get => throw null; set => throw null; } - public string TimeZone { get => throw null; set => throw null; } - public string TwitterScreenName { get => throw null; set => throw null; } - public string TwitterUserId { get => throw null; set => throw null; } - public bool? TwoFactorEnabled { get => throw null; set => throw null; } - public string Type { get => throw null; set => throw null; } - public string UserAuthId { get => throw null; set => throw null; } - public string UserAuthName { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - public virtual ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public virtual System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string Webpage { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AuthenticateAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthenticateAttribute : ServiceStack.RequestFilterAsyncAttribute - { - public static void AssertAuthenticated(ServiceStack.Web.IRequest req, object requestDto = default(object), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthProvider[] authProviders = default(ServiceStack.Auth.IAuthProvider[])) => throw null; - public static System.Threading.Tasks.Task AssertAuthenticatedAsync(ServiceStack.Web.IRequest req, object requestDto = default(object), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthProvider[] authProviders = default(ServiceStack.Auth.IAuthProvider[])) => throw null; - public static bool Authenticate(ServiceStack.Web.IRequest req, object requestDto = default(object), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthProvider[] authProviders = default(ServiceStack.Auth.IAuthProvider[])) => throw null; - public static System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.Web.IRequest req, object requestDto = default(object), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthProvider[] authProviders = default(ServiceStack.Auth.IAuthProvider[])) => throw null; - public AuthenticateAttribute(string provider) => throw null; - public AuthenticateAttribute(ServiceStack.ApplyTo applyTo, string provider) => throw null; - public AuthenticateAttribute(ServiceStack.ApplyTo applyTo) => throw null; - public AuthenticateAttribute() => throw null; - public static void DoHtmlRedirect(string redirectUrl, ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, bool includeRedirectParam) => throw null; - protected bool DoHtmlRedirectAccessDeniedIfConfigured(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, bool includeRedirectParam = default(bool)) => throw null; - protected bool DoHtmlRedirectIfConfigured(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, bool includeRedirectParam = default(bool)) => throw null; - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.AuthenticateAttribute other) => throw null; - public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public override int GetHashCode() => throw null; - public static string GetHtmlRedirectUrl(ServiceStack.Web.IRequest req, string redirectUrl, bool includeRedirectParam) => throw null; - public static string GetHtmlRedirectUrl(ServiceStack.Web.IRequest req) => throw null; - public string HtmlRedirect { get => throw null; set => throw null; } - public string Provider { get => throw null; set => throw null; } - public static void ThrowInvalidPermission(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public static void ThrowInvalidRole(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public static void ThrowNotAuthenticated(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - } - - // Generated from `ServiceStack.AuthenticationHeaderType` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum AuthenticationHeaderType - { - Basic, - Digest, - } - - // Generated from `ServiceStack.AutoCrudOperation` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AutoCrudOperation - { - public static System.Collections.Generic.HashSet All { get => throw null; } - public static ServiceStack.AutoQueryDtoType AssertAutoCrudDtoType(System.Type requestType) => throw null; - public const string Create = default; - public static System.Collections.Generic.List CrudInterfaceMetadataNames(System.Collections.Generic.List operations = default(System.Collections.Generic.List)) => throw null; - public static System.Collections.Generic.List Default { get => throw null; } - public const string Delete = default; - public static ServiceStack.AutoQueryDtoType? GetAutoCrudDtoType(System.Type requestType) => throw null; - public static ServiceStack.AutoQueryDtoType? GetAutoQueryDtoType(System.Type requestType) => throw null; - public static ServiceStack.AutoQueryDtoType? GetAutoQueryGenericDefTypes(System.Type requestType, System.Type opType) => throw null; - public static System.Type GetModelType(System.Type requestType) => throw null; - public static System.Type GetViewModelType(System.Type requestType, System.Type responseType) => throw null; - public static bool IsCrud(this ServiceStack.MetadataOperationType op) => throw null; - public static bool IsCrudRead(this ServiceStack.MetadataOperationType op) => throw null; - public static bool IsCrudWrite(this ServiceStack.MetadataOperationType op) => throw null; - public static bool IsOperation(string operation) => throw null; - public const string Patch = default; - public const string Query = default; - public static System.Collections.Generic.List Read { get => throw null; } - public static string[] ReadInterfaces { get => throw null; } - public const string Save = default; - public static string ToHttpMethod(string operation) => throw null; - public static string ToHttpMethod(System.Type requestType) => throw null; - public static string ToOperation(System.Type genericDef) => throw null; - public const string Update = default; - public static System.Collections.Generic.List Write { get => throw null; } - public static string[] WriteInterfaces { get => throw null; } - } - - // Generated from `ServiceStack.AutoQueryData` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryData : ServiceStack.IAutoQueryDataOptions, ServiceStack.IAutoQueryData - { - public AutoQueryData() => throw null; - public ServiceStack.QueryDataContext CreateContext(ServiceStack.IQueryData requestDto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req) => throw null; - public ServiceStack.IDataQuery CreateQuery(ServiceStack.IQueryData requestDto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; - public ServiceStack.DataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; - public ServiceStack.DataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; - public bool EnableUntypedQueries { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary EndsWithConventions { get => throw null; set => throw null; } - public ServiceStack.QueryResponse Execute(ServiceStack.IQueryData dto, ServiceStack.DataQuery q, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; - public ServiceStack.QueryResponse Execute(ServiceStack.IQueryData dto, ServiceStack.DataQuery q, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; - public ServiceStack.IQueryResponse Execute(ServiceStack.IQueryData request, ServiceStack.IDataQuery q, ServiceStack.IQueryDataSource db) => throw null; - public ServiceStack.IDataQuery Filter(ServiceStack.IDataQuery q, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req) => throw null; - public ServiceStack.DataQuery Filter(ServiceStack.IDataQuery q, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req) => throw null; - public ServiceStack.IQueryDataSource GetDb(ServiceStack.QueryDataContext ctx) => throw null; - public ServiceStack.IQueryDataSource GetDb(ServiceStack.QueryDataContext ctx, System.Type type) => throw null; - public System.Type GetFromType(System.Type requestDtoType) => throw null; - public ServiceStack.ITypedQueryData GetTypedQuery(System.Type requestDtoType, System.Type fromType) => throw null; - public ServiceStack.QueryDataFilterDelegate GlobalQueryFilter { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet IgnoreProperties { get => throw null; set => throw null; } - public bool IncludeTotal { get => throw null; set => throw null; } - public int? MaxLimit { get => throw null; set => throw null; } - public bool OrderByPrimaryKeyOnLimitQuery { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary QueryFilters { get => throw null; set => throw null; } - public string RequiredRoleForRawSqlFilters { get => throw null; set => throw null; } - public ServiceStack.QueryResponse ResponseFilter(ServiceStack.IQueryDataSource db, ServiceStack.QueryResponse response, ServiceStack.DataQuery expr, ServiceStack.IQueryData dto) => throw null; - public System.Collections.Generic.List> ResponseFilters { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary StartsWithConventions { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoQueryDataExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AutoQueryDataExtensions - { - public static void And(this ServiceStack.IDataQuery q, System.Linq.Expressions.Expression> fieldExpr, ServiceStack.QueryCondition condition, object value) => throw null; - public static ServiceStack.DataQuery CreateQuery(this ServiceStack.IAutoQueryData autoQuery, ServiceStack.IQueryData model, ServiceStack.Web.IRequest request, ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; - public static ServiceStack.DataQuery CreateQuery(this ServiceStack.IAutoQueryData autoQuery, ServiceStack.IQueryData model, ServiceStack.Web.IRequest request, ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)) => throw null; - public static ServiceStack.IQueryDataSource MemorySource(this ServiceStack.QueryDataContext ctx, System.Func> sourceFn, ServiceStack.Caching.ICacheClient cache, System.TimeSpan? expiresIn = default(System.TimeSpan?), string cacheKey = default(string)) => throw null; - public static ServiceStack.IQueryDataSource MemorySource(this ServiceStack.QueryDataContext ctx, System.Collections.Generic.IEnumerable source) => throw null; - public static void Or(this ServiceStack.IDataQuery q, System.Linq.Expressions.Expression> fieldExpr, ServiceStack.QueryCondition condition, object value) => throw null; - public static ServiceStack.QueryDataField ToField(this ServiceStack.QueryDataFieldAttribute attr, System.Reflection.PropertyInfo pi, ServiceStack.AutoQueryDataFeature feature) => throw null; - } - - // Generated from `ServiceStack.AutoQueryDataFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryDataFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPostInitPlugin, ServiceStack.IPlugin - { - public ServiceStack.AutoQueryDataFeature AddDataSource(System.Func dataSourceFactory) => throw null; - public ServiceStack.AutoQueryDataFeature AddDataSource(System.Func> dataSourceFactory) => throw null; - public ServiceStack.AutoQueryDataFeature AddDataSource(System.Type type, System.Func dataSourceFactory) => throw null; - public void AfterPluginsLoaded(ServiceStack.IAppHost appHost) => throw null; - public AutoQueryDataFeature() => throw null; - public System.Type AutoQueryServiceBaseType { get => throw null; set => throw null; } - public System.Collections.Generic.List Conditions; - public System.Collections.Generic.Dictionary ConditionsAliases; - public System.Collections.Concurrent.ConcurrentDictionary> DataSources { get => throw null; set => throw null; } - public bool EnableAutoQueryViewer { get => throw null; set => throw null; } - public bool EnableUntypedQueries { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary EndsWithConventions; - public System.Action GenerateServiceFilter { get => throw null; set => throw null; } - public System.Func GetDataSource(System.Type type) => throw null; - public ServiceStack.QueryDataFilterDelegate GlobalQueryFilter { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet IgnoreProperties { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ImplicitConventions; - public void IncludeAggregates(ServiceStack.QueryDataFilterContext ctx) => throw null; - public bool IncludeTotal { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet LoadFromAssemblies { get => throw null; set => throw null; } - public int? MaxLimit { get => throw null; set => throw null; } - public bool OrderByPrimaryKeyOnPagedQuery { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary QueryFilters { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public ServiceStack.AutoQueryDataFeature RegisterQueryFilter(System.Action filterFn) => throw null; - public System.Collections.Generic.List> ResponseFilters { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary StartsWithConventions; - } - - // Generated from `ServiceStack.AutoQueryDataServiceBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AutoQueryDataServiceBase : ServiceStack.Service - { - public ServiceStack.IAutoQueryData AutoQuery { get => throw null; set => throw null; } - protected AutoQueryDataServiceBase() => throw null; - public virtual object Exec(ServiceStack.IQueryData dto) => throw null; - public virtual object Exec(ServiceStack.IQueryData dto) => throw null; - } - - // Generated from `ServiceStack.AutoQueryDataServiceSource` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AutoQueryDataServiceSource - { - public static System.Collections.Generic.List GetResults(object response) => throw null; - public static System.Collections.Generic.IEnumerable GetResults(object response) => throw null; - public static ServiceStack.QueryDataSource ServiceSource(this ServiceStack.QueryDataContext ctx, object requestDto, ServiceStack.Caching.ICacheClient cache, System.TimeSpan? expiresIn = default(System.TimeSpan?), string cacheKey = default(string)) => throw null; - public static ServiceStack.MemoryDataSource ServiceSource(this ServiceStack.QueryDataContext ctx, object requestDto) => throw null; - } - - // Generated from `ServiceStack.AutoQueryDtoType` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct AutoQueryDtoType - { - public AutoQueryDtoType(System.Type genericType, System.Type genericDefType) => throw null; - // Stub generator skipped constructor - public System.Type GenericDefType { get => throw null; } - public System.Type GenericType { get => throw null; } - public bool IsRead { get => throw null; } - public bool IsWrite { get => throw null; } - public System.Type ModelIntoType { get => throw null; } - public System.Type ModelType { get => throw null; } - public string Operation { get => throw null; } - } - - // Generated from `ServiceStack.AutoQueryMetadata` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryMetadata : ServiceStack.IReturn, ServiceStack.IReturn - { - public AutoQueryMetadata() => throw null; - } - - // Generated from `ServiceStack.AutoQueryMetadataFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryMetadataFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public AutoQueryMetadataFeature() => throw null; - public ServiceStack.AutoQueryViewerConfig AutoQueryViewerConfig { get => throw null; set => throw null; } - public System.Collections.Generic.List ExportTypes { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public int? MaxLimit { get => throw null; set => throw null; } - public System.Action MetadataFilter { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - } - - // Generated from `ServiceStack.AutoQueryMetadataResponse` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryMetadataResponse : ServiceStack.IMeta - { - public AutoQueryMetadataResponse() => throw null; - public ServiceStack.AutoQueryViewerConfig Config { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.List Operations { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Types { get => throw null; set => throw null; } - public ServiceStack.AutoQueryViewerUserInfo UserInfo { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoQueryMetadataService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryMetadataService : ServiceStack.Service - { - public object Any(ServiceStack.AutoQueryMetadata request) => throw null; - public AutoQueryMetadataService() => throw null; - public ServiceStack.NativeTypes.INativeTypesMetadata NativeTypesMetadata { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoQueryOperation` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryOperation : ServiceStack.IMeta - { - public AutoQueryOperation() => throw null; - public string From { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Request { get => throw null; set => throw null; } - public System.Collections.Generic.List Routes { get => throw null; set => throw null; } - public string To { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoQueryViewerConfig` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryViewerConfig : ServiceStack.AppInfo - { - public AutoQueryViewerConfig() => throw null; - public string DefaultSearchField { get => throw null; set => throw null; } - public string DefaultSearchText { get => throw null; set => throw null; } - public string DefaultSearchType { get => throw null; set => throw null; } - public string[] Formats { get => throw null; set => throw null; } - public System.Collections.Generic.List ImplicitConventions { get => throw null; set => throw null; } - public bool IsPublic { get => throw null; set => throw null; } - public int? MaxLimit { get => throw null; set => throw null; } - public bool OnlyShowAnnotatedServices { get => throw null; set => throw null; } - public string ServiceBaseUrl { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.AutoQueryViewerUserInfo` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AutoQueryViewerUserInfo : ServiceStack.IMeta - { - public AutoQueryViewerUserInfo() => throw null; - public bool IsAuthenticated { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public int QueryCount { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.BootstrapScripts` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BootstrapScripts : ServiceStack.Script.ScriptMethods - { - public BootstrapScripts() => throw null; - public ServiceStack.IRawString ValidationSuccess(ServiceStack.Script.ScriptScopeContext scope, string message, System.Collections.Generic.Dictionary divAttrs) => throw null; - public ServiceStack.IRawString ValidationSuccess(ServiceStack.Script.ScriptScopeContext scope, string message) => throw null; - public ServiceStack.IRawString formControl(ServiceStack.Script.ScriptScopeContext scope, object inputAttrs, string tagName, object inputOptions) => throw null; - public ServiceStack.IRawString formInput(ServiceStack.Script.ScriptScopeContext scope, object inputAttrs, object inputOptions) => throw null; - public ServiceStack.IRawString formInput(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; - public ServiceStack.IRawString formSelect(ServiceStack.Script.ScriptScopeContext scope, object inputAttrs, object inputOptions) => throw null; - public ServiceStack.IRawString formSelect(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; - public ServiceStack.IRawString formTextarea(ServiceStack.Script.ScriptScopeContext scope, object inputAttrs, object inputOptions) => throw null; - public ServiceStack.IRawString formTextarea(ServiceStack.Script.ScriptScopeContext scope, object args) => throw null; - public ServiceStack.IRawString nav(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems, System.Collections.Generic.Dictionary options) => throw null; - public ServiceStack.IRawString nav(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems) => throw null; - public ServiceStack.IRawString nav(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.IRawString navButtonGroup(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems, System.Collections.Generic.Dictionary options) => throw null; - public ServiceStack.IRawString navButtonGroup(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems) => throw null; - public ServiceStack.IRawString navButtonGroup(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.IRawString navLink(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.NavItem navItem, System.Collections.Generic.Dictionary options) => throw null; - public ServiceStack.IRawString navLink(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.NavItem navItem) => throw null; - public ServiceStack.IRawString navbar(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems, System.Collections.Generic.Dictionary options) => throw null; - public ServiceStack.IRawString navbar(ServiceStack.Script.ScriptScopeContext scope, System.Collections.Generic.List navItems) => throw null; - public ServiceStack.IRawString navbar(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.IRawString validationSummary(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable exceptFields, object htmlAttrs) => throw null; - public ServiceStack.IRawString validationSummary(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable exceptFields) => throw null; - public ServiceStack.IRawString validationSummary(ServiceStack.Script.ScriptScopeContext scope) => throw null; - } - - // Generated from `ServiceStack.CacheClientExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CacheClientExtensions - { - public static object Cache(this ServiceStack.Caching.ICacheClient cache, string cacheKey, object responseDto, ServiceStack.Web.IRequest req, System.TimeSpan? expireCacheIn = default(System.TimeSpan?)) => throw null; - public static System.Threading.Tasks.Task CacheAsync(this ServiceStack.Caching.ICacheClientAsync cache, string cacheKey, object responseDto, ServiceStack.Web.IRequest req, System.TimeSpan? expireCacheIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void ClearCaches(this ServiceStack.Caching.ICacheClient cache, params string[] cacheKeys) => throw null; - public static System.Threading.Tasks.Task ClearCachesAsync(this ServiceStack.Caching.ICacheClientAsync cache, string[] cacheKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.IEnumerable GetAllKeys(this ServiceStack.Caching.ICacheClient cache) => throw null; - public static System.Collections.Generic.IAsyncEnumerable GetAllKeysAsync(this ServiceStack.Caching.ICacheClientAsync cache) => throw null; - public static string GetCacheKeyForCompressed(string cacheKeySerialized, string compressionType) => throw null; - public static string GetCacheKeyForSerialized(string cacheKey, string mimeType, string modifiers) => throw null; - public static System.DateTime? GetDate(this ServiceStack.Web.IRequest req) => throw null; - public static System.DateTime? GetIfModifiedSince(this ServiceStack.Web.IRequest req) => throw null; - public static System.Collections.Generic.IEnumerable GetKeysByPattern(this ServiceStack.Caching.ICacheClient cache, string pattern) => throw null; - public static System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(this ServiceStack.Caching.ICacheClientAsync cache, string pattern) => throw null; - public static System.Collections.Generic.IEnumerable GetKeysStartingWith(this ServiceStack.Caching.ICacheClient cache, string prefix) => throw null; - public static System.Collections.Generic.IAsyncEnumerable GetKeysStartingWithAsync(this ServiceStack.Caching.ICacheClientAsync cache, string prefix) => throw null; - public static T GetOrCreate(this ServiceStack.Caching.ICacheClient cache, string key, System.TimeSpan expiresIn, System.Func createFn) => throw null; - public static T GetOrCreate(this ServiceStack.Caching.ICacheClient cache, string key, System.Func createFn) => throw null; - public static System.Threading.Tasks.Task GetOrCreateAsync(this ServiceStack.Caching.ICacheClientAsync cache, string key, System.TimeSpan expiresIn, System.Func> createFn) => throw null; - public static System.Threading.Tasks.Task GetOrCreateAsync(this ServiceStack.Caching.ICacheClientAsync cache, string key, System.Func> createFn) => throw null; - public static System.TimeSpan? GetTimeToLive(this ServiceStack.Caching.ICacheClient cache, string key) => throw null; - public static bool HasValidCache(this ServiceStack.Caching.ICacheClient cache, ServiceStack.Web.IRequest req, string cacheKey, System.DateTime? checkLastModified, out System.DateTime? lastModified) => throw null; - public static System.Threading.Tasks.Task HasValidCacheAsync(this ServiceStack.Caching.ICacheClientAsync cache, ServiceStack.Web.IRequest req, string cacheKey, System.DateTime? checkLastModified, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void RemoveByPattern(this ServiceStack.Caching.ICacheClient cacheClient, string pattern) => throw null; - public static System.Threading.Tasks.Task RemoveByPatternAsync(this ServiceStack.Caching.ICacheClientAsync cacheClient, string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void RemoveByRegex(this ServiceStack.Caching.ICacheClient cacheClient, string regex) => throw null; - public static System.Threading.Tasks.Task RemoveByRegexAsync(this ServiceStack.Caching.ICacheClientAsync cacheClient, string regex) => throw null; - public static object ResolveFromCache(this ServiceStack.Caching.ICacheClient cache, string cacheKey, ServiceStack.Web.IRequest req) => throw null; - public static System.Threading.Tasks.Task ResolveFromCacheAsync(this ServiceStack.Caching.ICacheClientAsync cache, string cacheKey, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void Set(this ServiceStack.Caching.ICacheClient cache, string cacheKey, T value, System.TimeSpan? expireCacheIn) => throw null; - public static System.Threading.Tasks.Task SetAsync(this ServiceStack.Caching.ICacheClientAsync cache, string cacheKey, T value, System.TimeSpan? expireCacheIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - // Generated from `ServiceStack.CacheClientExtensions+ValidCache` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public struct ValidCache - { - public bool IsValid { get => throw null; } - public System.DateTime LastModified { get => throw null; } - public static ServiceStack.CacheClientExtensions.ValidCache NotValid; - public ValidCache(bool isValid, System.DateTime lastModified) => throw null; - // Stub generator skipped constructor - } - - - } - - // Generated from `ServiceStack.CacheControl` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - [System.Flags] - public enum CacheControl - { - MustRevalidate, - NoCache, - NoStore, - NoTransform, - None, - Private, - ProxyRevalidate, - Public, - } - - // Generated from `ServiceStack.CacheInfo` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CacheInfo - { - public System.TimeSpan? Age { get => throw null; set => throw null; } - public ServiceStack.CacheControl CacheControl { get => throw null; set => throw null; } - public CacheInfo() => throw null; - public string CacheKey { get => throw null; } - public string ETag { get => throw null; set => throw null; } - public System.TimeSpan? ExpiresIn { get => throw null; set => throw null; } - public string KeyBase { get => throw null; set => throw null; } - public string KeyModifiers { get => throw null; set => throw null; } - public System.DateTime? LastModified { get => throw null; set => throw null; } - public bool LocalCache { get => throw null; set => throw null; } - public System.TimeSpan? MaxAge { get => throw null; set => throw null; } - public bool NoCompression { get => throw null; set => throw null; } - public bool VaryByUser { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.CacheInfoExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CacheInfoExtensions - { - public static ServiceStack.CacheInfo ToCacheInfo(this ServiceStack.HttpResult httpResult) => throw null; - } - - // Generated from `ServiceStack.CacheResponseAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CacheResponseAttribute : ServiceStack.RequestFilterAsyncAttribute - { - public ServiceStack.CacheControl CacheControl { get => throw null; set => throw null; } - public CacheResponseAttribute() => throw null; - public int Duration { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public bool LocalCache { get => throw null; set => throw null; } - public int MaxAge { get => throw null; set => throw null; } - public bool NoCompression { get => throw null; set => throw null; } - public string[] VaryByHeaders { get => throw null; set => throw null; } - public string[] VaryByRoles { get => throw null; set => throw null; } - public bool VaryByUser { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.CacheResponseExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CacheResponseExtensions - { - public static System.Threading.Tasks.Task HandleValidCache(this ServiceStack.Web.IRequest req, ServiceStack.CacheInfo cacheInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string LastModifiedKey(this ServiceStack.CacheInfo cacheInfo) => throw null; - } - - // Generated from `ServiceStack.CancellableRequestService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CancellableRequestService : ServiceStack.Service - { - public object Any(ServiceStack.CancelRequest request) => throw null; - public CancellableRequestService() => throw null; - } - - // Generated from `ServiceStack.CancellableRequestsExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CancellableRequestsExtensions - { - public static ServiceStack.ICancellableRequest CreateCancellableRequest(this ServiceStack.Web.IRequest req) => throw null; - public static ServiceStack.ICancellableRequest GetCancellableRequest(this ServiceStack.Web.IRequest req, string tag) => throw null; - } - - // Generated from `ServiceStack.CancellableRequestsFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CancellableRequestsFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string AtPath { get => throw null; set => throw null; } - public CancellableRequestsFeature() => throw null; - public string Id { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - } - - // Generated from `ServiceStack.CaseInsensitiveEqualCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CaseInsensitiveEqualCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public CaseInsensitiveEqualCondition() => throw null; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.ClientCanSwapTemplatesAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ClientCanSwapTemplatesAttribute : ServiceStack.RequestFilterAttribute - { - public ClientCanSwapTemplatesAttribute() => throw null; - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - } - - // Generated from `ServiceStack.CompareTypeUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CompareTypeUtils - { - public static object Add(object a, object b) => throw null; - public static object Aggregate(System.Collections.IEnumerable source, System.Func fn, object seed = default(object)) => throw null; - public static double? CoerceDouble(object o) => throw null; - public static System.Int64? CoerceLong(object o) => throw null; - public static string CoerceString(object o) => throw null; - public static int CompareTo(object a, object b) => throw null; - public static object Max(object a, object b) => throw null; - public static object Min(object a, object b) => throw null; - public static object Sum(System.Collections.IEnumerable values) => throw null; - } - - // Generated from `ServiceStack.CompressResponseAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CompressResponseAttribute : ServiceStack.ResponseFilterAsyncAttribute - { - public CompressResponseAttribute() => throw null; - public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; - } - - // Generated from `ServiceStack.CompressedFileResult` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CompressedFileResult : ServiceStack.Web.IStreamWriterAsync, ServiceStack.Web.IHasOptions - { - public const int Adler32ChecksumLength = default; - public CompressedFileResult(string filePath, string compressionType, string contentMimeType) => throw null; - public CompressedFileResult(string filePath, string compressionType) => throw null; - public CompressedFileResult(string filePath) => throw null; - public const string DefaultContentType = default; - public string FilePath { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Options { get => throw null; } - public System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.CompressedResult` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CompressedResult : ServiceStack.Web.IStreamWriterAsync, ServiceStack.Web.IHttpResult, ServiceStack.Web.IHasOptions - { - public const int Adler32ChecksumLength = default; - public CompressedResult(System.Byte[] contents, string compressionType, string contentMimeType) => throw null; - public CompressedResult(System.Byte[] contents, string compressionType) => throw null; - public CompressedResult(System.Byte[] contents) => throw null; - public string ContentType { get => throw null; set => throw null; } - public System.Byte[] Contents { get => throw null; } - public System.Collections.Generic.List Cookies { get => throw null; } - public const string DefaultContentType = default; - public System.Collections.Generic.Dictionary Headers { get => throw null; } - public System.DateTime? LastModified { set => throw null; } - public System.Collections.Generic.IDictionary Options { get => throw null; } - public int PaddingLength { get => throw null; set => throw null; } - public ServiceStack.Web.IRequest RequestContext { get => throw null; set => throw null; } - public object Response { get => throw null; set => throw null; } - public ServiceStack.Web.IContentTypeWriter ResponseFilter { get => throw null; set => throw null; } - public System.Func ResultScope { get => throw null; set => throw null; } - public int Status { get => throw null; set => throw null; } - public System.Net.HttpStatusCode StatusCode { get => throw null; set => throw null; } - public string StatusDescription { get => throw null; set => throw null; } - public System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.ConditionAlias` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ConditionAlias - { - public const string Between = default; - public const string Contains = default; - public const string EndsWith = default; - public const string Equals = default; - public const string False = default; - public const string Greater = default; - public const string GreaterEqual = default; - public const string In = default; - public const string Less = default; - public const string LessEqual = default; - public const string Like = default; - public const string NotEqual = default; - public const string StartsWith = default; - } - - // Generated from `ServiceStack.ConfigurationErrorsException` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConfigurationErrorsException : System.Exception - { - public ConfigurationErrorsException(string message, System.Exception innerException) => throw null; - public ConfigurationErrorsException(string message) => throw null; - public ConfigurationErrorsException() => throw null; - } - - // Generated from `ServiceStack.ConnectionInfoAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConnectionInfoAttribute : ServiceStack.RequestFilterAttribute - { - public ConnectionInfoAttribute() => throw null; - public string ConnectionString { get => throw null; set => throw null; } - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public string NamedConnection { get => throw null; set => throw null; } - public string ProviderName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ContainerNetCoreExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ContainerNetCoreExtensions - { - public static Funq.Container AddScoped(this Funq.Container services, System.Func implementationFactory) where TService : class => throw null; - public static Funq.Container AddScoped(this Funq.Container services) where TService : class => throw null; - public static Funq.Container AddScoped(this Funq.Container services, System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; - public static Funq.Container AddScoped(this Funq.Container services) where TImplementation : class, TService where TService : class => throw null; - public static Funq.Container AddScoped(this Funq.Container services, System.Type serviceType, System.Type implementationType) => throw null; - public static Funq.Container AddScoped(this Funq.Container services, System.Type serviceType) => throw null; - public static Funq.Container AddSingleton(this Funq.Container services, TService implementationInstance) where TService : class => throw null; - public static Funq.Container AddSingleton(this Funq.Container services, System.Func implementationFactory) where TService : class => throw null; - public static Funq.Container AddSingleton(this Funq.Container services) where TService : class => throw null; - public static Funq.Container AddSingleton(this Funq.Container services, System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; - public static Funq.Container AddSingleton(this Funq.Container services) where TImplementation : class, TService where TService : class => throw null; - public static Funq.Container AddSingleton(this Funq.Container services, System.Type serviceType, System.Type implementationType) => throw null; - public static Funq.Container AddSingleton(this Funq.Container services, System.Type serviceType) => throw null; - public static Funq.Container AddTransient(this Funq.Container services, System.Func implementationFactory) where TService : class => throw null; - public static Funq.Container AddTransient(this Funq.Container services) where TService : class => throw null; - public static Funq.Container AddTransient(this Funq.Container services, System.Func implementationFactory) where TImplementation : class, TService where TService : class => throw null; - public static Funq.Container AddTransient(this Funq.Container services) where TImplementation : class, TService where TService : class => throw null; - public static Funq.Container AddTransient(this Funq.Container services, System.Type serviceType, System.Type implementationType) => throw null; - public static Funq.Container AddTransient(this Funq.Container services, System.Type serviceType) => throw null; - } - - // Generated from `ServiceStack.ContainerTypeExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ContainerTypeExtensions - { - public static Funq.Container Register(this Funq.Container container, object instance, System.Type asType) => throw null; - public static void RegisterAutoWiredType(this Funq.Container container, string name, System.Type serviceType, System.Type inFunqAsType, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; - public static void RegisterAutoWiredType(this Funq.Container container, string name, System.Type serviceType, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; - public static void RegisterAutoWiredType(this Funq.Container container, System.Type serviceType, System.Type inFunqAsType, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; - public static void RegisterAutoWiredType(this Funq.Container container, System.Type serviceType, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; - public static void RegisterAutoWiredTypes(this Funq.Container container, System.Collections.Generic.IEnumerable serviceTypes, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; - } - - // Generated from `ServiceStack.ContainsCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ContainsCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public ContainsCondition() => throw null; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.CorsFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CorsFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public System.Collections.Generic.ICollection AllowOriginWhitelist { get => throw null; } - public bool AutoHandleOptionsRequests { get => throw null; set => throw null; } - public CorsFeature(string allowedOrigins = default(string), string allowedMethods = default(string), string allowedHeaders = default(string), bool allowCredentials = default(bool), string exposeHeaders = default(string), int? maxAge = default(int?)) => throw null; - public CorsFeature(System.Collections.Generic.ICollection allowOriginWhitelist, string allowedMethods = default(string), string allowedHeaders = default(string), bool allowCredentials = default(bool), string exposeHeaders = default(string), int? maxAge = default(int?)) => throw null; - public const string DefaultHeaders = default; - public const string DefaultMethods = default; - public const string DefaultOrigin = default; - public string Id { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - } - - // Generated from `ServiceStack.CsvOnly` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvOnly : ServiceStack.RequestFilterAttribute - { - public CsvOnly() => throw null; - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - } - - // Generated from `ServiceStack.CsvRequestLogger` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvRequestLogger : ServiceStack.Host.InMemoryRollingRequestLogger - { - public CsvRequestLogger(ServiceStack.IO.IVirtualFiles files = default(ServiceStack.IO.IVirtualFiles), string requestLogsPattern = default(string), string errorLogsPattern = default(string), System.TimeSpan? appendEvery = default(System.TimeSpan?)) => throw null; - public override System.Collections.Generic.List GetLatestLogs(int? take) => throw null; - public string GetLogFilePath(string logFilePattern, System.DateTime forDate) => throw null; - public override void Log(ServiceStack.Web.IRequest request, object requestDto, object response, System.TimeSpan requestDuration) => throw null; - protected virtual void OnFlush(object state) => throw null; - public System.Action OnReadLastEntryError { get => throw null; set => throw null; } - public System.Action, System.Exception> OnWriteLogsError { get => throw null; set => throw null; } - public virtual void WriteLogs(System.Collections.Generic.List logs, string logFile) => throw null; - } - - // Generated from `ServiceStack.CustomRequestFilter` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomRequestFilter : ServiceStack.IPlugin - { - public bool ApplyToMessaging { get => throw null; set => throw null; } - public CustomRequestFilter(System.Action filter) => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - } - - // Generated from `ServiceStack.CustomResponseFilter` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomResponseFilter : ServiceStack.IPlugin - { - public bool ApplyToMessaging { get => throw null; set => throw null; } - public CustomResponseFilter(System.Action filter) => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - } - - // Generated from `ServiceStack.DataConditionExpression` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DataConditionExpression - { - public System.Collections.Generic.IEnumerable Apply(System.Collections.Generic.IEnumerable source, System.Collections.Generic.IEnumerable original) => throw null; - public DataConditionExpression() => throw null; - public System.Reflection.PropertyInfo Field { get => throw null; set => throw null; } - public ServiceStack.GetMemberDelegate FieldGetter { get => throw null; set => throw null; } - public object GetFieldValue(object instance) => throw null; - public ServiceStack.QueryCondition QueryCondition { get => throw null; set => throw null; } - public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } - public object Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DataQuery<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DataQuery : ServiceStack.IDataQuery - { - public virtual void AddCondition(ServiceStack.QueryTerm term, System.Reflection.PropertyInfo field, ServiceStack.QueryCondition condition, object value) => throw null; - public virtual void And(string field, ServiceStack.QueryCondition condition, string value) => throw null; - public System.Collections.Generic.List Conditions { get => throw null; set => throw null; } - public DataQuery(ServiceStack.QueryDataContext context) => throw null; - public ServiceStack.IQueryData Dto { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary DynamicParams { get => throw null; set => throw null; } - public virtual System.Tuple FirstMatchingField(string field) => throw null; - public virtual bool HasConditions { get => throw null; } - public virtual void Join(System.Type joinType, System.Type type) => throw null; - public virtual void LeftJoin(System.Type joinType, System.Type type) => throw null; - public virtual void Limit(int? skip, int? take) => throw null; - public int? Offset { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet OnlyFields { get => throw null; set => throw null; } - public virtual void Or(string field, ServiceStack.QueryCondition condition, string value) => throw null; - public ServiceStack.OrderByExpression OrderBy { get => throw null; set => throw null; } - public virtual void OrderByFields(params string[] fieldNames) => throw null; - public virtual void OrderByFieldsDescending(params string[] fieldNames) => throw null; - public virtual void OrderByPrimaryKey() => throw null; - public int? Rows { get => throw null; set => throw null; } - public virtual void Select(string[] fields) => throw null; - public void Take(int take) => throw null; - } - - // Generated from `ServiceStack.DefaultRequestAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultRequestAttribute : ServiceStack.AttributeBase - { - public DefaultRequestAttribute(System.Type requestType) => throw null; - public System.Type RequestType { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DefaultViewAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultViewAttribute : ServiceStack.RequestFilterAttribute - { - public DefaultViewAttribute(string view, string template) => throw null; - public DefaultViewAttribute(string view) => throw null; - public DefaultViewAttribute() => throw null; - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public string Template { get => throw null; set => throw null; } - public string View { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.DisposableTracker` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DisposableTracker : System.IDisposable - { - public void Add(System.IDisposable instance) => throw null; - public DisposableTracker() => throw null; - public void Dispose() => throw null; - public const string HashId = default; - } - - // Generated from `ServiceStack.DtoUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DtoUtils - { - public static object CreateErrorResponse(string errorCode, string errorMessage, System.Collections.Generic.IEnumerable validationErrors) => throw null; - public static object CreateErrorResponse(object request, System.Exception ex, ServiceStack.ResponseStatus responseStatus) => throw null; - public static object CreateErrorResponse(object request, System.Exception ex) => throw null; - public static object CreateErrorResponse(object request, ServiceStack.Validation.ValidationErrorResult validationError) => throw null; - public static object CreateResponseDto(object request, ServiceStack.ResponseStatus responseStatus) => throw null; - public static ServiceStack.ResponseStatus CreateResponseStatus(string errorCode, string errorMessage) => throw null; - public static ServiceStack.ResponseStatus CreateResponseStatus(string errorCode) => throw null; - public static ServiceStack.ResponseStatus CreateResponseStatus(System.Exception ex, object request = default(object), bool debugMode = default(bool)) => throw null; - public static ServiceStack.ResponseStatus CreateSuccessResponse(string message) => throw null; - public const string ResponseStatusPropertyName = default; - public static ServiceStack.ResponseStatus ToResponseStatus(this System.Exception exception, object requestDto = default(object)) => throw null; - public static ServiceStack.ResponseStatus ToResponseStatus(this ServiceStack.Validation.ValidationErrorResult validationResult) => throw null; - public static ServiceStack.ResponseStatus ToResponseStatus(this ServiceStack.Validation.ValidationError validationException) => throw null; - } - - // Generated from `ServiceStack.EnableCorsAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EnableCorsAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IRequestFilterBase, ServiceStack.Web.IHasRequestFilterAsync - { - public bool AutoHandleOptionRequests { get => throw null; set => throw null; } - public ServiceStack.Web.IRequestFilterBase Copy() => throw null; - public EnableCorsAttribute(string allowedOrigins = default(string), string allowedMethods = default(string), string allowedHeaders = default(string), bool allowCredentials = default(bool)) => throw null; - public int Priority { get => throw null; set => throw null; } - public System.Threading.Tasks.Task RequestFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - } - - // Generated from `ServiceStack.EncryptedMessagesFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EncryptedMessagesFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public static System.TimeSpan DefaultMaxMaxRequestAge; - public EncryptedMessagesFeature() => throw null; - public static string ErrorInvalidMessage; - public static string ErrorKeyNotFound; - public static string ErrorNonceSeen; - public static string ErrorRequestTooOld; - public System.Collections.Generic.List FallbackPrivateKeys { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.TimeSpan MaxRequestAge { get => throw null; set => throw null; } - public System.Security.Cryptography.RSAParameters? PrivateKey { get => throw null; set => throw null; } - protected System.Collections.Generic.Dictionary PrivateKeyModulusMap { get => throw null; set => throw null; } - public string PrivateKeyXml { get => throw null; set => throw null; } - public string PublicKeyPath { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public static string RequestItemsAuthKey; - public static string RequestItemsCryptKey; - public static string RequestItemsIv; - public static System.Threading.Tasks.Task WriteEncryptedError(ServiceStack.Web.IRequest req, System.Byte[] cryptKey, System.Byte[] authKey, System.Byte[] iv, System.Exception ex, string description = default(string)) => throw null; - } - - // Generated from `ServiceStack.EncryptedMessagesFeatureExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class EncryptedMessagesFeatureExtensions - { - public static bool IsEncryptedMessage(this ServiceStack.Web.IRequest req) => throw null; - } - - // Generated from `ServiceStack.EncryptedMessagesService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EncryptedMessagesService : ServiceStack.Service - { - public object Any(ServiceStack.GetPublicKey request) => throw null; - public object Any(ServiceStack.EncryptedMessage request) => throw null; - public EncryptedMessagesService() => throw null; - } - - // Generated from `ServiceStack.EndsWithCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EndsWithCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public EndsWithCondition() => throw null; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.EnsureHttpsAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EnsureHttpsAttribute : ServiceStack.RequestFilterAttribute - { - public EnsureHttpsAttribute() => throw null; - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public bool SkipIfDebugMode { get => throw null; set => throw null; } - public bool SkipIfXForwardedFor { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.EqualsCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EqualsCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public EqualsCondition() => throw null; - public static ServiceStack.EqualsCondition Instance; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.ErrorMessages` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ErrorMessages - { - public static string ApiKeyDoesNotExist; - public static string ApiKeyHasBeenCancelled; - public static string ApiKeyHasExpired; - public static string ApiKeyIsInvalid; - public static string ApiKeyRequiresSecureConnection; - public static string AppSettingNotFoundFmt; - public static string AuthRepositoryNotExists; - public static string CacheFeatureMustBeEnabled; - public static string ClaimDoesNotExistFmt; - public static string ConnectionStringNotFoundFmt; - public static string ConstructorNotFoundForType; - public static string ContentTypeNotSupportedFmt; - public static string EmailAlreadyExists; - public static string EmailAlreadyExistsFmt; - public static string FileNotExistsFmt; - public static string HostDoesNotSupportSingletonRequest; - public static string IllegalUsername; - public static string InvalidAccessToken; - public static string InvalidBasicAuthCredentials; - public static string InvalidPermission; - public static string InvalidRole; - public static string InvalidUsernameOrPassword; - public static string JwtRequiresSecureConnection; - public static string NoExternalRedirects; - public static string NotAuthenticated; - public static string OnlyAllowedInAspNetHosts; - public static string PasswordsShouldMatch; - public static string PrimaryKeyRequired; - public static string RefreshTokenInvalid; - public static string RegisterUpdatesDisabled; - public static string RequestAlreadyProcessedFmt; - public static string ShouldNotRegisterAuthSession; - public static string SubscriptionForbiddenFmt; - public static string SubscriptionNotExistsFmt; - public static string TokenExpired; - public static string TokenInvalid; - public static string TokenInvalidAudienceFmt; - public static string TokenInvalidNotBefore; - public static string TokenInvalidated; - public static string UnknownAuthProviderFmt; - public static string UserAccountLocked; - public static string UserAlreadyExistsFmt; - public static string UserForApiKeyDoesNotExist; - public static string UserNotExists; - public static string UsernameAlreadyExists; - public static string UsernameOrEmailRequired; - public static string WindowsAuthFailed; - } - - // Generated from `ServiceStack.ErrorViewAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ErrorViewAttribute : ServiceStack.RequestFilterAttribute - { - public ErrorViewAttribute(string fieldName) => throw null; - public ErrorViewAttribute() => throw null; - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public string FieldName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.EventSubscription` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EventSubscription : ServiceStack.SubscriptionInfo, System.IDisposable, ServiceStack.IEventSubscription - { - public void Dispose() => throw null; - public static int DisposeMaxWaitMs { get => throw null; set => throw null; } - public EventSubscription(ServiceStack.Web.IResponse response) => throw null; - public bool IsClosed { get => throw null; } - public bool IsDisposed { get => throw null; } - public bool IsLocked { get => throw null; } - public string JsonArgs { get => throw null; } - public System.Int64 LastMessageId { get => throw null; } - public System.DateTime LastPulseAt { get => throw null; set => throw null; } - public string[] MergedChannels { get => throw null; set => throw null; } - public System.Action OnDispose { get => throw null; set => throw null; } - public System.Action OnError { get => throw null; set => throw null; } - public System.Action OnHungConnection { get => throw null; set => throw null; } - public System.Action OnPublish { get => throw null; set => throw null; } - public System.Func OnPublishAsync { get => throw null; set => throw null; } - public System.Action OnUnsubscribe { get => throw null; set => throw null; } - public System.Func OnUnsubscribeAsync { get => throw null; set => throw null; } - public void Publish(string selector, string message) => throw null; - public void Publish(string selector) => throw null; - public System.Threading.Tasks.Task PublishAsync(string selector, string message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void PublishRaw(string frame) => throw null; - public System.Threading.Tasks.Task PublishRawAsync(string frame, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Pulse() => throw null; - public void Release() => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; } - public ServiceStack.Web.IResponse Response { get => throw null; } - public static string SerializeDictionary(System.Collections.Generic.IDictionary map) => throw null; - public static string[] UnknownChannel; - public void Unsubscribe() => throw null; - public System.Threading.Tasks.Task UnsubscribeAsync() => throw null; - public void UpdateChannels(string[] channels) => throw null; - public System.Action WriteEvent { get => throw null; set => throw null; } - public System.Func WriteEventAsync { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.FileExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class FileExtensions - { - public static bool IsRelativePath(this string relativeOrAbsolutePath) => throw null; - public static string MapServerPath(this string relativePath) => throw null; - public static string ReadAllText(this System.IO.FileInfo file) => throw null; - public static System.Byte[] ReadFully(this System.IO.FileInfo file) => throw null; - public static void SaveTo(this ServiceStack.Web.IHttpFile httpFile, string filePath) => throw null; - public static void SaveTo(this ServiceStack.Web.IHttpFile httpFile, ServiceStack.IO.IVirtualFiles vfs, string filePath) => throw null; - public static void WriteTo(this ServiceStack.Web.IHttpFile httpFile, System.IO.Stream stream) => throw null; - } - - // Generated from `ServiceStack.FilterExpression` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class FilterExpression - { - public abstract System.Collections.Generic.IEnumerable Apply(System.Collections.Generic.IEnumerable source); - protected FilterExpression() => throw null; - } - - // Generated from `ServiceStack.GenericAppHost` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GenericAppHost : ServiceStack.ServiceStackHost - { - public System.Action ConfigFilter { get => throw null; set => throw null; } - public override void Configure(Funq.Container container) => throw null; - public System.Action ConfigureAppHost { get => throw null; set => throw null; } - public System.Action ConfigureContainer { get => throw null; set => throw null; } - public GenericAppHost(params System.Reflection.Assembly[] serviceAssemblies) : base(default(string), default(System.Reflection.Assembly[])) => throw null; - public override ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest req) => throw null; - public override void OnConfigLoad() => throw null; - } - - // Generated from `ServiceStack.GetFileService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetFileService : ServiceStack.Service - { - public object Get(ServiceStack.GetFile request) => throw null; - public GetFileService() => throw null; - } - - // Generated from `ServiceStack.GreaterCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GreaterCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public GreaterCondition() => throw null; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.GreaterEqualCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GreaterEqualCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public GreaterEqualCondition() => throw null; - public static ServiceStack.GreaterEqualCondition Instance; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.HasPermissionsValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HasPermissionsValidator : ServiceStack.TypeValidator, ServiceStack.IAuthTypeValidator - { - public static string DefaultErrorMessage { get => throw null; set => throw null; } - public HasPermissionsValidator(string[] permissions) : base(default(string), default(string), default(int?)) => throw null; - public HasPermissionsValidator(string permission) : base(default(string), default(string), default(int?)) => throw null; - public override System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; - public string[] Permissions { get => throw null; } - public override System.Threading.Tasks.Task ThrowIfNotValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; - } - - // Generated from `ServiceStack.HasRolesValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HasRolesValidator : ServiceStack.TypeValidator, ServiceStack.IAuthTypeValidator - { - public static string DefaultErrorMessage { get => throw null; set => throw null; } - public HasRolesValidator(string[] roles) : base(default(string), default(string), default(int?)) => throw null; - public HasRolesValidator(string role) : base(default(string), default(string), default(int?)) => throw null; - public override System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; - public string[] Roles { get => throw null; } - public override System.Threading.Tasks.Task ThrowIfNotValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; - } - - // Generated from `ServiceStack.HelpMessages` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HelpMessages - { - public static string NativeTypesDtoOptionsTip; - } - - // Generated from `ServiceStack.HostConfig` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HostConfig - { - public System.Collections.Generic.Dictionary AddMaxAgeForStaticMimeTypes { get => throw null; set => throw null; } - public bool AddRedirectParamsToQueryString { get => throw null; set => throw null; } - public string AdminAuthSecret { get => throw null; set => throw null; } - public bool AllowAclUrlReservation { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet AllowFileExtensions { get => throw null; set => throw null; } - public System.Collections.Generic.List AllowFilePaths { get => throw null; set => throw null; } - public bool AllowJsConfig { get => throw null; set => throw null; } - public bool AllowJsonpRequests { get => throw null; set => throw null; } - public bool AllowNonHttpOnlyCookies { set => throw null; } - public bool AllowPartialResponses { get => throw null; set => throw null; } - public bool AllowRouteContentTypeExtensions { get => throw null; set => throw null; } - public bool AllowSessionCookies { get => throw null; set => throw null; } - public bool AllowSessionIdsInHttpParams { get => throw null; set => throw null; } - public string ApiVersion { get => throw null; set => throw null; } - public ServiceStack.AppInfo AppInfo { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet AppendUtf8CharsetOnContentTypes { get => throw null; set => throw null; } - public bool BufferSyncSerializers { get => throw null; set => throw null; } - public System.Int64? CompressFilesLargerThanBytes { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet CompressFilesWithExtensions { get => throw null; set => throw null; } - public string DebugAspNetHostEnvironment { get => throw null; set => throw null; } - public string DebugHttpListenerHostEnvironment { get => throw null; set => throw null; } - public bool DebugMode { get => throw null; set => throw null; } - public string DefaultContentType { get => throw null; set => throw null; } - public System.Collections.Generic.List DefaultDocuments { get => throw null; set => throw null; } - public System.TimeSpan DefaultJsonpCacheExpiration { get => throw null; set => throw null; } - public string DefaultRedirectPath { get => throw null; set => throw null; } - public const string DefaultWsdlNamespace = default; - public bool DisposeDependenciesAfterUse { get => throw null; set => throw null; } - public System.Collections.Generic.List EmbeddedResourceBaseTypes { get => throw null; set => throw null; } - public System.Collections.Generic.List EmbeddedResourceSources { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet EmbeddedResourceTreatAsFiles { get => throw null; set => throw null; } - public bool EnableAccessRestrictions { get => throw null; set => throw null; } - public bool EnableAutoHtmlResponses { get => throw null; set => throw null; } - public ServiceStack.Feature EnableFeatures { get => throw null; set => throw null; } - public bool EnableOptimizations { get => throw null; set => throw null; } - public System.Collections.Generic.List FallbackPasswordHashers { get => throw null; set => throw null; } - public ServiceStack.Host.FallbackRestPathDelegate FallbackRestPath { get => throw null; set => throw null; } - public System.Collections.Generic.List ForbiddenPaths { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary GlobalResponseHeaders { get => throw null; set => throw null; } - public string HandlerFactoryPath { get => throw null; set => throw null; } - public HostConfig() => throw null; - public System.Collections.Generic.Dictionary HtmlReplaceTokens { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet IgnoreFormatsInMetadata { get => throw null; set => throw null; } - public bool IgnoreWarningsOnAllProperties { get => throw null; set => throw null; } - public System.Collections.Generic.List IgnoreWarningsOnPropertyNames { get => throw null; set => throw null; } - public static ServiceStack.HostConfig Instance { get => throw null; } - public System.Text.RegularExpressions.Regex IsMobileRegex { get => throw null; set => throw null; } - public ServiceStack.Logging.ILogFactory LogFactory { get => throw null; set => throw null; } - public bool LogUnobservedTaskExceptions { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary MapExceptionToStatusCode { get => throw null; set => throw null; } - public string MetadataRedirectPath { get => throw null; set => throw null; } - public ServiceStack.RequestAttributes MetadataVisibility { get => throw null; set => throw null; } - public static ServiceStack.HostConfig NewInstance() => throw null; - public bool OnlySendSessionCookiesSecurely { set => throw null; } - public string PathBase { get => throw null; set => throw null; } - public System.Collections.Generic.List PreferredContentTypes { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet RazorNamespaces { get => throw null; } - public bool RedirectDirectoriesToTrailingSlashes { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary RedirectPaths { get => throw null; set => throw null; } - public bool RedirectToDefaultDocuments { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary> RequestRules { get => throw null; set => throw null; } - public static ServiceStack.HostConfig ResetInstance() => throw null; - public string RestrictAllCookiesToDomain { get => throw null; set => throw null; } - public bool Return204NoContentForEmptyResponse { get => throw null; set => throw null; } - public bool ReturnsInnerException { get => throw null; set => throw null; } - public System.Collections.Generic.List RouteNamingConventions { get => throw null; set => throw null; } - public System.Collections.Generic.List ScanSkipPaths { get => throw null; set => throw null; } - public ServiceStack.Metadata.ServiceEndpointsMetadataConfig ServiceEndpointsMetadataConfig { get => throw null; set => throw null; } - public static string ServiceStackPath; - public bool SkipFormDataInCreatingRequest { get => throw null; set => throw null; } - public string SoapServiceName { get => throw null; set => throw null; } - public bool? StrictMode { get => throw null; set => throw null; } - public bool StripApplicationVirtualPath { get => throw null; set => throw null; } - public bool TreatNonNullableRefTypesAsRequired { get => throw null; set => throw null; } - public bool UseBclJsonSerializers { get => throw null; set => throw null; } - public bool UseCamelCase { get => throw null; set => throw null; } - public bool UseHttpOnlyCookies { get => throw null; set => throw null; } - public bool UseHttpsLinks { get => throw null; set => throw null; } - public bool UseJsObject { get => throw null; set => throw null; } - public bool UseSaltedHash { get => throw null; set => throw null; } - public bool? UseSameSiteCookies { get => throw null; set => throw null; } - public bool UseSecureCookies { get => throw null; set => throw null; } - public string WebHostPhysicalPath { get => throw null; set => throw null; } - public string WebHostUrl { get => throw null; set => throw null; } - public bool WriteErrorsToResponse { get => throw null; set => throw null; } - public string WsdlServiceNamespace { get => throw null; set => throw null; } - public System.Xml.XmlWriterSettings XmlWriterSettings { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.HostContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HostContext - { - public static ServiceStack.ServiceStackHost AppHost { get => throw null; } - public static ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; } - public static bool ApplyCustomHandlerRequestFilters(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public static bool ApplyPreRequestFilters(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public static System.Threading.Tasks.Task ApplyRequestFiltersAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, object requestDto) => throw null; - public static System.Threading.Tasks.Task ApplyResponseFiltersAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, object response) => throw null; - public static ServiceStack.ServiceStackHost AssertAppHost() => throw null; - public static T AssertPlugin() where T : class, ServiceStack.IPlugin => throw null; - public static ServiceStack.AsyncContext Async; - public static ServiceStack.Caching.ICacheClient Cache { get => throw null; } - public static ServiceStack.Caching.ICacheClientAsync CacheClientAsync { get => throw null; } - public static ServiceStack.HostConfig Config { get => throw null; } - public static Funq.Container Container { get => throw null; } - public static ServiceStack.IO.IVirtualDirectory ContentRootDirectory { get => throw null; } - public static ServiceStack.Web.IContentTypes ContentTypes { get => throw null; } - public static ServiceStack.Web.IServiceRunner CreateServiceRunner(ServiceStack.Host.ActionContext actionContext) => throw null; - public static bool DebugMode { get => throw null; } - public static string DefaultOperationNamespace { get => throw null; set => throw null; } - public static ServiceStack.IO.FileSystemVirtualFiles FileSystemVirtualFiles { get => throw null; } - public static int FindFreeTcpPort(int startingFrom = default(int), int endingAt = default(int)) => throw null; - public static ServiceStack.Web.IRequest GetCurrentRequest() => throw null; - public static string GetDefaultNamespace() => throw null; - public static T GetPlugin() where T : class, ServiceStack.IPlugin => throw null; - public static ServiceStack.IO.GistVirtualFiles GistVirtualFiles { get => throw null; } - public static bool HasFeature(ServiceStack.Feature feature) => throw null; - public static bool HasPlugin() where T : class, ServiceStack.IPlugin => throw null; - public static bool HasValidAuthSecret(ServiceStack.Web.IRequest httpReq) => throw null; - public static bool IsAspNetHost { get => throw null; } - public static bool IsHttpListenerHost { get => throw null; } - public static bool IsNetCore { get => throw null; } - public static ServiceStack.Caching.MemoryCacheClient LocalCache { get => throw null; } - public static ServiceStack.IO.MemoryVirtualFiles MemoryVirtualFiles { get => throw null; } - public static ServiceStack.Host.ServiceMetadata Metadata { get => throw null; } - public static ServiceStack.Metadata.MetadataPagesConfig MetadataPagesConfig { get => throw null; } - public static System.Threading.Tasks.Task RaiseAndHandleException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; - public static System.Threading.Tasks.Task RaiseGatewayException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; - public static System.Threading.Tasks.Task RaiseServiceException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; - public static System.Threading.Tasks.Task RaiseUncaughtException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; - public static void Release(object service) => throw null; - public static ServiceStack.RequestContext RequestContext { get => throw null; } - public static T Resolve() => throw null; - public static string ResolveAbsoluteUrl(string virtualPath, ServiceStack.Web.IRequest httpReq) => throw null; - public static string ResolveLocalizedString(string text, ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; - public static string ResolvePhysicalPath(string virtualPath, ServiceStack.Web.IRequest httpReq) => throw null; - public static T ResolveService(ServiceStack.Web.IRequest httpReq, T service) => throw null; - public static T ResolveService(ServiceStack.Web.IRequest httpReq) where T : class, ServiceStack.Web.IRequiresRequest => throw null; - public static ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } - public static ServiceStack.Host.ServiceController ServiceController { get => throw null; } - public static string ServiceName { get => throw null; } - public static bool StrictMode { get => throw null; } - public static bool TestMode { get => throw null; set => throw null; } - public static ServiceStack.Web.IRequest TryGetCurrentRequest() => throw null; - public static T TryResolve() => throw null; - public static System.UnauthorizedAccessException UnauthorizedAccess(ServiceStack.RequestAttributes requestAttrs) => throw null; - public static ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get => throw null; } - public static ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; } - } - - // Generated from `ServiceStack.HotReloadFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HotReloadFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string DefaultPattern { set => throw null; } - public HotReloadFeature() => throw null; - public string Id { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public ServiceStack.IO.IVirtualPathProvider VirtualFiles { set => throw null; } - } - - // Generated from `ServiceStack.HotReloadFiles` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HotReloadFiles : ServiceStack.IReturn, ServiceStack.IReturn - { - public string ETag { get => throw null; set => throw null; } - public HotReloadFiles() => throw null; - public string Pattern { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.HotReloadFilesService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HotReloadFilesService : ServiceStack.Service - { - public System.Threading.Tasks.Task Any(ServiceStack.HotReloadFiles request) => throw null; - public static System.TimeSpan CheckDelay; - public static string DefaultPattern { get => throw null; set => throw null; } - public static System.Collections.Generic.List ExcludePatterns { get => throw null; } - public HotReloadFilesService() => throw null; - public static System.TimeSpan LongPollDuration; - public static System.TimeSpan ModifiedDelay; - public static ServiceStack.IO.IVirtualPathProvider UseVirtualFiles { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.HotReloadPage` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HotReloadPage : ServiceStack.IReturn, ServiceStack.IReturn - { - public string ETag { get => throw null; set => throw null; } - public HotReloadPage() => throw null; - public string Path { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.HotReloadPageResponse` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HotReloadPageResponse - { - public string ETag { get => throw null; set => throw null; } - public HotReloadPageResponse() => throw null; - public string LastUpdatedPath { get => throw null; set => throw null; } - public bool Reload { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.HotReloadPageService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HotReloadPageService : ServiceStack.Service - { - public System.Threading.Tasks.Task Any(ServiceStack.HotReloadPage request) => throw null; - public static System.TimeSpan CheckDelay; - public HotReloadPageService() => throw null; - public static System.TimeSpan LongPollDuration; - public static System.TimeSpan ModifiedDelay; - public ServiceStack.Script.ISharpPages Pages { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.HtmlOnly` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlOnly : ServiceStack.RequestFilterAttribute - { - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public HtmlOnly() => throw null; - } - - // Generated from `ServiceStack.HttpCacheExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpCacheExtensions - { - public static bool ETagMatch(this ServiceStack.Web.IRequest req, string eTag) => throw null; - public static void EndNotModified(this ServiceStack.Web.IResponse res, string description = default(string)) => throw null; - public static bool Has(this ServiceStack.CacheControl cache, ServiceStack.CacheControl flag) => throw null; - public static bool HasValidCache(this ServiceStack.Web.IRequest req, string eTag, System.DateTime? lastModified) => throw null; - public static bool HasValidCache(this ServiceStack.Web.IRequest req, string eTag) => throw null; - public static bool HasValidCache(this ServiceStack.Web.IRequest req, System.DateTime? lastModified) => throw null; - public static bool NotModifiedSince(this ServiceStack.Web.IRequest req, System.DateTime? lastModified) => throw null; - public static bool ShouldAddLastModifiedToOptimizedResults(this ServiceStack.HttpCacheFeature feature) => throw null; - } - - // Generated from `ServiceStack.HttpCacheFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpCacheFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string BuildCacheControlHeader(ServiceStack.CacheInfo cacheInfo) => throw null; - public System.Func CacheControlFilter { get => throw null; set => throw null; } - public string CacheControlForOptimizedResults { get => throw null; set => throw null; } - public System.TimeSpan DefaultExpiresIn { get => throw null; set => throw null; } - public System.TimeSpan DefaultMaxAge { get => throw null; set => throw null; } - public bool DisableCaching { get => throw null; set => throw null; } - public System.Threading.Tasks.Task HandleCacheResponses(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; - public HttpCacheFeature() => throw null; - public string Id { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - } - - // Generated from `ServiceStack.HttpError` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpError : System.Exception, ServiceStack.Web.IHttpResult, ServiceStack.Web.IHttpError, ServiceStack.Web.IHasOptions, ServiceStack.Model.IResponseStatusConvertible, ServiceStack.IHasResponseStatus, ServiceStack.IHasErrorCode - { - public static System.Exception BadRequest(string message) => throw null; - public static System.Exception BadRequest(string errorCode, string message) => throw null; - public static System.Exception Conflict(string message) => throw null; - public string ContentType { get => throw null; set => throw null; } - public System.Collections.Generic.List Cookies { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public static System.Exception ExpectationFailed(string message) => throw null; - public static System.Exception Forbidden(string message) => throw null; - public System.Collections.Generic.List GetFieldErrors() => throw null; - public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } - public HttpError(string message, System.Exception innerException) => throw null; - public HttpError(string message) => throw null; - public HttpError(object responseDto, int statusCode, string errorCode, string errorMessage = default(string), System.Exception innerException = default(System.Exception)) => throw null; - public HttpError(object responseDto, System.Net.HttpStatusCode statusCode, string errorCode, string errorMessage) => throw null; - public HttpError(int statusCode, string errorCode, string errorMessage, System.Exception innerException = default(System.Exception)) => throw null; - public HttpError(int statusCode, string errorCode) => throw null; - public HttpError(System.Net.HttpStatusCode statusCode, string errorMessage) => throw null; - public HttpError(System.Net.HttpStatusCode statusCode, string errorCode, string errorMessage) => throw null; - public HttpError(System.Net.HttpStatusCode statusCode, System.Exception innerException) => throw null; - public HttpError(System.Net.HttpStatusCode statusCode) => throw null; - public HttpError() => throw null; - public static System.Exception MethodNotAllowed(string message) => throw null; - public static System.Exception NotFound(string message) => throw null; - public static System.Exception NotImplemented(string message) => throw null; - public System.Collections.Generic.IDictionary Options { get => throw null; } - public int PaddingLength { get => throw null; set => throw null; } - public static System.Exception PreconditionFailed(string message) => throw null; - public ServiceStack.Web.IRequest RequestContext { get => throw null; set => throw null; } - public object Response { get => throw null; set => throw null; } - public ServiceStack.Web.IContentTypeWriter ResponseFilter { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Func ResultScope { get => throw null; set => throw null; } - public static System.Exception ServiceUnavailable(string message) => throw null; - public int Status { get => throw null; set => throw null; } - public System.Net.HttpStatusCode StatusCode { get => throw null; set => throw null; } - public string StatusDescription { get => throw null; set => throw null; } - public ServiceStack.ResponseStatus ToResponseStatus() => throw null; - public static System.Exception Unauthorized(string message) => throw null; - public static System.Exception Validation(string errorCode, string errorMessage, string fieldName) => throw null; - } - - // Generated from `ServiceStack.HttpExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpExtensions - { - public static void EndHttpHandlerRequest(this ServiceStack.Web.IResponse httpRes, bool skipHeaders = default(bool), bool skipClose = default(bool), System.Action afterHeaders = default(System.Action)) => throw null; - public static System.Threading.Tasks.Task EndHttpHandlerRequestAsync(this ServiceStack.Web.IResponse httpRes, bool skipHeaders = default(bool), bool skipClose = default(bool), System.Func afterHeaders = default(System.Func)) => throw null; - public static void EndMqRequest(this ServiceStack.Web.IResponse httpRes, bool skipClose = default(bool)) => throw null; - public static void EndRequest(this ServiceStack.Web.IResponse httpRes, bool skipHeaders = default(bool)) => throw null; - public static System.Threading.Tasks.Task EndRequestAsync(this ServiceStack.Web.IResponse httpRes, bool skipHeaders = default(bool), System.Func afterHeaders = default(System.Func)) => throw null; - public static void EndRequestWithNoContent(this ServiceStack.Web.IResponse httpRes) => throw null; - public static string ToAbsoluteUri(this string relativeUrl, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public static string ToAbsoluteUri(this object requestDto, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; - public static string ToAbsoluteUri(this object requestDto, ServiceStack.Web.IRequest req, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; - public static string ToAbsoluteUri(this ServiceStack.IReturn requestDto, string httpMethod = default(string), string formatFallbackToPredefinedRoute = default(string)) => throw null; - } - - // Generated from `ServiceStack.HttpHandlerFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpHandlerFactory : ServiceStack.Host.IHttpHandlerFactory - { - public static string DebugLastHandlerArgs; - public static ServiceStack.Host.IHttpHandler DefaultHttpHandler; - public static string DefaultRootFileName; - public static ServiceStack.Host.IHttpHandler ForbiddenHttpHandler; - public static ServiceStack.Host.IHttpHandler GetHandler(ServiceStack.Web.IHttpRequest httpReq) => throw null; - public static ServiceStack.Host.IHttpHandler GetHandlerForPathInfo(ServiceStack.Web.IHttpRequest httpReq, string filePath) => throw null; - public HttpHandlerFactory() => throw null; - public static ServiceStack.Host.Handlers.RedirectHttpHandler NonRootModeDefaultHttpHandler; - public static ServiceStack.Host.IHttpHandler NotFoundHttpHandler; - public void ReleaseHandler(ServiceStack.Host.IHttpHandler handler) => throw null; - public static bool ShouldAllow(string pathInfo) => throw null; - public static ServiceStack.Host.IHttpHandler StaticFilesHandler; - public static string WebHostPhysicalPath; - } - - // Generated from `ServiceStack.HttpRequestExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpRequestExtensions - { - public static bool CanReadRequestBody(this ServiceStack.Web.IRequest req) => throw null; - public static System.Collections.Generic.Dictionary CookiesAsDictionary(this ServiceStack.Web.IRequest httpReq) => throw null; - public static bool DidReturn304NotModified(this ServiceStack.Web.IRequest httpReq, System.DateTime? dateTime, ServiceStack.Web.IResponse httpRes) => throw null; - public static void EachRequest(this ServiceStack.Web.IRequest httpReq, System.Action action) => throw null; - public static string GetAbsolutePath(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetAbsoluteUrl(this ServiceStack.Web.IRequest httpReq, string url) => throw null; - public static string GetApplicationUrl(this ServiceStack.Web.IRequest httpReq) => throw null; - public static ServiceStack.RequestAttributes GetAttributes(this ServiceStack.Web.IRequest request) => throw null; - public static ServiceStack.RequestAttributes GetAttributes(System.Net.IPAddress ipAddress) => throw null; - public static string GetBaseUrl(this ServiceStack.Web.IRequest httpReq) => throw null; - public static System.Collections.Generic.IEnumerable GetClaims(this ServiceStack.Web.IRequest req) => throw null; - public static string GetDirectoryPath(this ServiceStack.Web.IRequest request) => throw null; - public static string GetErrorView(this ServiceStack.Web.IRequest httpReq) => throw null; - public static System.Collections.Generic.Dictionary GetFlattenedRequestParams(this ServiceStack.Web.IRequest request) => throw null; - public static string GetFormatModifier(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetHttpMethodOverride(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetItemOrCookie(this ServiceStack.Web.IRequest httpReq, string name) => throw null; - public static string GetJsonpCallback(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetLastPathInfo(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; - public static string GetLeftAuthority(this System.Uri uri) => throw null; - public static string GetOperationName(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; - public static string GetOperationNameFromLastPathInfo(string lastPathInfo) => throw null; - public static System.Type GetOperationType(this ServiceStack.Web.IRequest req) => throw null; - public static string GetParam(this ServiceStack.Web.IRequest httpReq, string name) => throw null; - public static string GetParentAbsolutePath(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetParentBaseUrl(this ServiceStack.Web.IRequest request) => throw null; - public static string GetParentPathUrl(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetPathAndQuery(this Microsoft.AspNetCore.Http.HttpRequest request) => throw null; - public static string GetPathInfo(string fullPath, string mode, string appPath) => throw null; - public static string GetPathUrl(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetPhysicalPath(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetQueryStringContentType(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetQueryStringOrForm(this ServiceStack.Web.IRequest httpReq, string name) => throw null; - public static string GetRawUrl(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetRequestValue(this ServiceStack.Web.IHttpRequest req, string name) => throw null; - public static string GetResponseContentType(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetReturnUrl(this ServiceStack.Web.IRequest req) => throw null; - public static ServiceStack.Host.RestPath GetRoute(this ServiceStack.Web.IRequest req) => throw null; - public static string GetTemplate(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetUrlHostName(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetView(this ServiceStack.Web.IRequest httpReq) => throw null; - public static ServiceStack.IO.IVirtualNode GetVirtualNode(this ServiceStack.Web.IRequest httpReq) => throw null; - public static bool HasAnyOfContentTypes(this ServiceStack.Web.IRequest request, params string[] contentTypes) => throw null; - public static bool HasClaim(this System.Collections.Generic.IEnumerable claims, string type, string value) => throw null; - public static bool HasNotModifiedSince(this ServiceStack.Web.IRequest httpReq, System.DateTime? dateTime) => throw null; - public static bool HasRole(this System.Collections.Generic.IEnumerable claims, string role) => throw null; - public static bool HasScope(this System.Collections.Generic.IEnumerable claims, string scope) => throw null; - public static string InferBaseUrl(this string absoluteUri, string fromPathInfo = default(string)) => throw null; - public static bool IsContentType(this ServiceStack.Web.IRequest request, string contentType) => throw null; - public static bool IsHtml(this ServiceStack.Web.IRequest req) => throw null; - public static bool IsInLocalSubnet(this System.Net.IPAddress ipAddress) => throw null; - public static bool IsMultiRequest(this ServiceStack.Web.IRequest req) => throw null; - public static string NormalizeScheme(this string url, bool useHttps) => throw null; - public static string ResolveAbsoluteUrl(this ServiceStack.Web.IRequest httpReq, string virtualPath = default(string)) => throw null; - public static object ResolveItem(this ServiceStack.Web.IRequest httpReq, string itemKey, System.Func resolveFn) => throw null; - public static string ResolvePathInfoFromMappedPath(string fullPath, string mappedPathRoot) => throw null; - public static void SetAutoBatchCompletedHeader(this ServiceStack.Web.IRequest req, int completed) => throw null; - public static void SetErrorView(this ServiceStack.Web.IRequest httpReq, string viewName) => throw null; - public static void SetRoute(this ServiceStack.Web.IRequest req, ServiceStack.Host.RestPath route) => throw null; - public static void SetTemplate(this ServiceStack.Web.IRequest httpReq, string templateName) => throw null; - public static void SetView(this ServiceStack.Web.IRequest httpReq, string viewName) => throw null; - public static string ToErrorCode(this System.Exception ex) => throw null; - public static ServiceStack.RequestAttributes ToRequestAttributes(string[] attrNames) => throw null; - public static int ToStatusCode(this System.Exception ex) => throw null; - public static ServiceStack.WebServiceException ToWebServiceException(this ServiceStack.HttpError error) => throw null; - public static ServiceStack.WebServiceException ToWebServiceException(this ServiceStack.FluentValidation.Results.ValidationResult validationResult, object requestDto, ServiceStack.Validation.ValidationFeature feature) => throw null; - public static bool UseHttps(this ServiceStack.Web.IRequest httpReq) => throw null; - } - - // Generated from `ServiceStack.HttpResponseExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpResponseExtensions - { - public static void AddHeaderLastModified(this ServiceStack.Web.IResponse httpRes, System.DateTime? lastModified) => throw null; - public static string AddParam(this string url, string key, string val) => throw null; - public static string AddParam(this string url, string key, object val) => throw null; - public static ServiceStack.Web.IResponse AllowSyncIO(this ServiceStack.Web.IResponse res) => throw null; - public static ServiceStack.Web.IRequest AllowSyncIO(this ServiceStack.Web.IRequest req) => throw null; - public static Microsoft.AspNetCore.Http.HttpRequest AllowSyncIO(this Microsoft.AspNetCore.Http.HttpRequest req) => throw null; - public static Microsoft.AspNetCore.Http.HttpContext AllowSyncIO(this Microsoft.AspNetCore.Http.HttpContext ctx) => throw null; - public static void ClearCookies(this ServiceStack.Web.IResponse response) => throw null; - public static System.Collections.Generic.Dictionary CookiesAsDictionary(this ServiceStack.Web.IResponse httpRes) => throw null; - public static void DeleteCookie(this ServiceStack.Web.IResponse response, string cookieName) => throw null; - public static void EndWith(this ServiceStack.Web.IResponse res, System.Net.HttpStatusCode code, string description = default(string)) => throw null; - public static bool IsHttpListener; - public static bool IsMonoFastCgi; - public static bool IsNetCore; - public static void Redirect(this ServiceStack.Web.IResponse httpRes, string url) => throw null; - public static void RedirectToUrl(this ServiceStack.Web.IResponse httpRes, string url, System.Net.HttpStatusCode redirectStatusCode = default(System.Net.HttpStatusCode)) => throw null; - public static System.Threading.Tasks.Task ReturnAuthRequired(this ServiceStack.Web.IResponse httpRes, string authRealm) => throw null; - public static System.Threading.Tasks.Task ReturnAuthRequired(this ServiceStack.Web.IResponse httpRes, ServiceStack.AuthenticationHeaderType AuthType, string authRealm) => throw null; - public static System.Threading.Tasks.Task ReturnAuthRequired(this ServiceStack.Web.IResponse httpRes) => throw null; - public static System.Threading.Tasks.Task ReturnFailedAuthentication(this ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest request) => throw null; - public static void SetCookie(this ServiceStack.Web.IResponse response, string cookieName, string cookieValue, System.TimeSpan expiresIn, string path = default(string)) => throw null; - public static void SetCookie(this ServiceStack.Web.IResponse response, string cookieName, string cookieValue, System.DateTime expiresAt, string path = default(string)) => throw null; - public static void SetCookie(this ServiceStack.Web.IResponse response, System.Net.Cookie cookie) => throw null; - public static string SetParam(this string url, string key, string val) => throw null; - public static string SetParam(this string url, string key, object val) => throw null; - public static void SetPermanentCookie(this ServiceStack.Web.IResponse response, string cookieName, string cookieValue) => throw null; - public static void SetSessionCookie(this ServiceStack.Web.IResponse response, string cookieName, string cookieValue) => throw null; - public static void TransmitFile(this ServiceStack.Web.IResponse httpRes, string filePath) => throw null; - public static void Write(this ServiceStack.Web.IResponse response, string contents) => throw null; - public static System.Threading.Tasks.Task WriteAsync(this ServiceStack.Web.IResponse response, string contents) => throw null; - public static void WriteFile(this ServiceStack.Web.IResponse httpRes, string filePath) => throw null; - } - - // Generated from `ServiceStack.HttpResponseExtensionsInternal` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpResponseExtensionsInternal - { - public static void ApplyGlobalResponseHeaders(this ServiceStack.Web.IResponse httpRes) => throw null; - public static bool ShouldWriteGlobalHeaders(ServiceStack.Web.IResponse httpRes) => throw null; - public static System.Threading.Tasks.Task WriteBytesToResponse(this ServiceStack.Web.IResponse res, System.Byte[] responseBytes, string contentType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteError(this ServiceStack.Web.IResponse httpRes, object dto, string errorMessage) => throw null; - public static System.Threading.Tasks.Task WriteError(this ServiceStack.Web.IResponse httpRes, System.Exception ex, int statusCode = default(int), string errorMessage = default(string), string contentType = default(string)) => throw null; - public static System.Threading.Tasks.Task WriteError(this ServiceStack.Web.IResponse httpRes, ServiceStack.Web.IRequest httpReq, object dto, string errorMessage) => throw null; - public static System.Threading.Tasks.Task WriteErrorBody(this ServiceStack.Web.IResponse httpRes, System.Exception ex) => throw null; - public static System.Threading.Tasks.Task WriteErrorToResponse(this ServiceStack.Web.IResponse httpRes, ServiceStack.Web.IRequest httpReq, string contentType, string operationName, string errorMessage, System.Exception ex, int statusCode) => throw null; - public static bool WriteToOutputStream(ServiceStack.Web.IResponse response, object result, System.Byte[] bodyPrefix, System.Byte[] bodySuffix) => throw null; - public static System.Threading.Tasks.Task WriteToOutputStreamAsync(ServiceStack.Web.IResponse response, object result, System.Byte[] bodyPrefix, System.Byte[] bodySuffix, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse response, object result, ServiceStack.Web.StreamSerializerDelegateAsync defaultAction, ServiceStack.Web.IRequest request, System.Byte[] bodyPrefix, System.Byte[] bodySuffix, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse httpRes, object result, string contentType, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse httpRes, object result, ServiceStack.Web.StreamSerializerDelegateAsync serializer, ServiceStack.Web.IRequest serializationContext, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse httpRes, ServiceStack.Web.IRequest httpReq, object result, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task WriteToResponse(this ServiceStack.Web.IResponse httpRes, ServiceStack.Web.IRequest httpReq, object result, System.Byte[] bodyPrefix, System.Byte[] bodySuffix, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.HttpResult` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpResult : System.IDisposable, ServiceStack.Web.IStreamWriterAsync, ServiceStack.Web.IPartialWriterAsync, ServiceStack.Web.IHttpResult, ServiceStack.Web.IHasOptions - { - public System.TimeSpan? Age { get => throw null; set => throw null; } - public bool AllowsPartialResponse { get => throw null; set => throw null; } - public ServiceStack.CacheControl CacheControl { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public System.Collections.Generic.List Cookies { get => throw null; } - public void DeleteCookie(string name) => throw null; - public void Dispose() => throw null; - public string ETag { get => throw null; set => throw null; } - public System.DateTime? Expires { get => throw null; set => throw null; } - public System.IO.FileInfo FileInfo { get => throw null; } - public System.Int64? GetContentLength() => throw null; - public System.Collections.Generic.Dictionary Headers { get => throw null; } - public HttpResult(string responseText, string contentType) => throw null; - public HttpResult(object response, string contentType, System.Net.HttpStatusCode statusCode) => throw null; - public HttpResult(object response, string contentType) => throw null; - public HttpResult(object response, System.Net.HttpStatusCode statusCode) => throw null; - public HttpResult(object response) => throw null; - public HttpResult(System.Net.HttpStatusCode statusCode, string statusDescription) => throw null; - public HttpResult(System.IO.Stream responseStream, string contentType) => throw null; - public HttpResult(System.IO.FileInfo fileResponse, string contentType = default(string), bool asAttachment = default(bool)) => throw null; - public HttpResult(System.IO.FileInfo fileResponse, bool asAttachment) => throw null; - public HttpResult(System.Byte[] responseBytes, string contentType) => throw null; - public HttpResult(ServiceStack.IO.IVirtualFile fileResponse, string contentType = default(string), bool asAttachment = default(bool)) => throw null; - public HttpResult(ServiceStack.IO.IVirtualFile fileResponse, bool asAttachment) => throw null; - public HttpResult() => throw null; - public bool IsPartialRequest { get => throw null; } - public System.DateTime? LastModified { get => throw null; set => throw null; } - public string Location { set => throw null; } - public System.TimeSpan? MaxAge { get => throw null; set => throw null; } - public static ServiceStack.HttpResult NotModified(string description = default(string), ServiceStack.CacheControl? cacheControl = default(ServiceStack.CacheControl?), System.TimeSpan? maxAge = default(System.TimeSpan?), string eTag = default(string), System.DateTime? lastModified = default(System.DateTime?)) => throw null; - public System.Collections.Generic.IDictionary Options { get => throw null; } - public int PaddingLength { get => throw null; set => throw null; } - public static ServiceStack.HttpResult Redirect(string newLocationUri, System.Net.HttpStatusCode redirectStatus = default(System.Net.HttpStatusCode)) => throw null; - public ServiceStack.Web.IRequest RequestContext { get => throw null; set => throw null; } - public object Response { get => throw null; set => throw null; } - public ServiceStack.Web.IContentTypeWriter ResponseFilter { get => throw null; set => throw null; } - public System.IO.Stream ResponseStream { get => throw null; set => throw null; } - public string ResponseText { get => throw null; } - public System.Func ResultScope { get => throw null; set => throw null; } - public void SetCookie(string name, string value, System.TimeSpan expiresIn, string path) => throw null; - public void SetCookie(string name, string value, System.DateTime expiresAt, string path, bool secure = default(bool), bool httpOnly = default(bool)) => throw null; - public void SetPermanentCookie(string name, string value, string path) => throw null; - public void SetPermanentCookie(string name, string value) => throw null; - public void SetSessionCookie(string name, string value, string path) => throw null; - public void SetSessionCookie(string name, string value) => throw null; - public static ServiceStack.HttpResult SoftRedirect(string newLocationUri, object response = default(object)) => throw null; - public int Status { get => throw null; set => throw null; } - public static ServiceStack.HttpResult Status201Created(object response, string newLocationUri) => throw null; - public System.Net.HttpStatusCode StatusCode { get => throw null; set => throw null; } - public string StatusDescription { get => throw null; set => throw null; } - public string Template { get => throw null; set => throw null; } - public static ServiceStack.HttpResult TriggerEvent(object response, string eventName, string value = default(string)) => throw null; - public string View { get => throw null; set => throw null; } - public System.Threading.Tasks.Task WritePartialToAsync(ServiceStack.Web.IResponse response, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task WriteToAsync(System.IO.Stream responseStream, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.HttpResultExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpResultExtensions - { - public static ServiceStack.Web.IHttpResult AddCookie(this ServiceStack.Web.IHttpResult httpResult, ServiceStack.Web.IRequest req, System.Net.Cookie cookie) => throw null; - } - - // Generated from `ServiceStack.HttpResultUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpResultUtils - { - public static void AddHttpRangeResponseHeaders(this ServiceStack.Web.IResponse response, System.Int64 rangeStart, System.Int64 rangeEnd, System.Int64 contentLength) => throw null; - public static object CreateErrorResponse(this ServiceStack.Web.IHttpError httpError) => throw null; - public static void ExtractHttpRanges(this string rangeHeader, System.Int64 contentLength, out System.Int64 rangeStart, out System.Int64 rangeEnd) => throw null; - public static object GetDto(this object response) => throw null; - public static TResponse GetDto(this object response) where TResponse : class => throw null; - public static object GetResponseDto(this object response) => throw null; - public static TResponse GetResponseDto(this object response) where TResponse : class => throw null; - public static bool IsErrorResponse(this object response) => throw null; - public static void WritePartialTo(this System.IO.Stream fromStream, System.IO.Stream toStream, System.Int64 start, System.Int64 end) => throw null; - public static System.Threading.Tasks.Task WritePartialToAsync(this System.IO.Stream fromStream, System.IO.Stream toStream, System.Int64 start, System.Int64 end, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.IAfterInitAppHost` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAfterInitAppHost - { - void AfterInit(ServiceStack.IAppHost appHost); - } - - // Generated from `ServiceStack.IAppHost` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAppHost : ServiceStack.Configuration.IResolver - { - System.Collections.Generic.List AddVirtualFileSources { get; } - System.Collections.Generic.List> AfterInitCallbacks { get; } - ServiceStack.Configuration.IAppSettings AppSettings { get; } - System.Collections.Generic.List CatchAllHandlers { get; } - ServiceStack.HostConfig Config { get; } - ServiceStack.IO.IVirtualDirectory ContentRootDirectory { get; } - ServiceStack.Web.IContentTypes ContentTypes { get; } - ServiceStack.Web.IServiceRunner CreateServiceRunner(ServiceStack.Host.ActionContext actionContext); - System.Collections.Generic.Dictionary CustomErrorHttpHandlers { get; } - object EvalExpression(string expr); - object EvalExpressionCached(string expr); - object EvalScriptValue(ServiceStack.IScriptValue scriptValue, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)); - System.Threading.Tasks.Task EvalScriptValueAsync(ServiceStack.IScriptValue scriptValue, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)); - object ExecuteMessage(ServiceStack.Messaging.IMessage mqMessage); - System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage mqMessage, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Collections.Generic.List FallbackHandlers { get; } - System.Collections.Generic.List GatewayExceptionHandlers { get; } - System.Collections.Generic.List GatewayExceptionHandlersAsync { get; } - System.Collections.Generic.List> GatewayRequestFilters { get; } - System.Collections.Generic.List> GatewayResponseFilters { get; } - T GetRuntimeConfig(ServiceStack.Web.IRequest req, string name, T defaultValue); - ServiceStack.Host.Handlers.IServiceStackHandler GlobalHtmlErrorHttpHandler { get; } - System.Collections.Generic.List> GlobalMessageRequestFilters { get; } - System.Collections.Generic.List> GlobalMessageRequestFiltersAsync { get; } - System.Collections.Generic.List> GlobalMessageResponseFilters { get; } - System.Collections.Generic.List> GlobalMessageResponseFiltersAsync { get; } - System.Collections.Generic.List> GlobalRequestFilters { get; } - System.Collections.Generic.List> GlobalRequestFiltersAsync { get; } - System.Collections.Generic.List> GlobalResponseFilters { get; } - System.Collections.Generic.List> GlobalResponseFiltersAsync { get; set; } - System.Collections.Generic.List InsertVirtualFileSources { get; set; } - void LoadPlugin(params ServiceStack.IPlugin[] plugins); - string MapProjectPath(string relativePath); - ServiceStack.Host.ServiceMetadata Metadata { get; } - System.Collections.Generic.List> OnDisposeCallbacks { get; } - void OnEndRequest(ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)); - System.Collections.Generic.List> OnEndRequestCallbacks { get; } - string PathBase { get; } - System.Collections.Generic.List Plugins { get; } - System.Collections.Generic.List> PreRequestFilters { get; } - void PublishMessage(ServiceStack.Messaging.IMessageProducer messageProducer, T message); - System.Collections.Generic.List> RawHttpHandlers { get; } - void Register(T instance); - void RegisterAs() where T : TAs; - void RegisterService(System.Type serviceType, params string[] atRestPaths); - void RegisterServicesInAssembly(System.Reflection.Assembly assembly); - void RegisterTypedMessageRequestFilter(System.Action filterFn); - void RegisterTypedMessageResponseFilter(System.Action filterFn); - void RegisterTypedRequestFilter(System.Func> filter); - void RegisterTypedRequestFilter(System.Action filterFn); - void RegisterTypedRequestFilterAsync(System.Func filterFn); - void RegisterTypedRequestFilterAsync(System.Func> filter); - void RegisterTypedResponseFilter(System.Func> filter); - void RegisterTypedResponseFilter(System.Action filterFn); - void RegisterTypedResponseFilterAsync(System.Func filterFn); - void RegisterTypedResponseFilterAsync(System.Func> filter); - void Release(object instance); - System.Collections.Generic.Dictionary> RequestBinders { get; } - System.Collections.Generic.List>> RequestConverters { get; } - string ResolveAbsoluteUrl(string virtualPath, ServiceStack.Web.IRequest httpReq); - string ResolveLocalizedString(string text, ServiceStack.Web.IRequest request); - System.Collections.Generic.List>> ResponseConverters { get; } - ServiceStack.IO.IVirtualDirectory RootDirectory { get; } - ServiceStack.Web.IServiceRoutes Routes { get; } - ServiceStack.Script.ScriptContext ScriptContext { get; } - System.Collections.Generic.List ServiceAssemblies { get; } - ServiceStack.Host.ServiceController ServiceController { get; } - System.Collections.Generic.List ServiceExceptionHandlers { get; } - System.Collections.Generic.List ServiceExceptionHandlersAsync { get; } - System.Collections.Generic.List UncaughtExceptionHandlers { get; } - System.Collections.Generic.List UncaughtExceptionHandlersAsync { get; } - System.Collections.Generic.List ViewEngines { get; } - ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get; set; } - ServiceStack.IO.IVirtualFiles VirtualFiles { get; set; } - } - - // Generated from `ServiceStack.IAppHostNetCore` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAppHostNetCore : ServiceStack.IRequireConfiguration, ServiceStack.IAppHost, ServiceStack.Configuration.IResolver - { - Microsoft.AspNetCore.Builder.IApplicationBuilder App { get; } - Microsoft.AspNetCore.Hosting.IHostingEnvironment HostingEnvironment { get; } - } - - // Generated from `ServiceStack.IAuthPlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthPlugin - { - void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature); - } - - // Generated from `ServiceStack.IAuthTypeValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthTypeValidator - { - } - - // Generated from `ServiceStack.IAutoQueryData` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAutoQueryData - { - ServiceStack.QueryDataContext CreateContext(ServiceStack.IQueryData requestDto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req); - ServiceStack.IDataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req, ServiceStack.IQueryDataSource db); - ServiceStack.DataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)); - ServiceStack.DataQuery CreateQuery(ServiceStack.IQueryData dto, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)); - ServiceStack.QueryResponse Execute(ServiceStack.IQueryData request, ServiceStack.DataQuery q, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)); - ServiceStack.QueryResponse Execute(ServiceStack.IQueryData request, ServiceStack.DataQuery q, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), ServiceStack.IQueryDataSource db = default(ServiceStack.IQueryDataSource)); - ServiceStack.IQueryResponse Execute(ServiceStack.IQueryData request, ServiceStack.IDataQuery q, ServiceStack.IQueryDataSource db); - ServiceStack.IQueryDataSource GetDb(ServiceStack.QueryDataContext ctx); - ServiceStack.IQueryDataSource GetDb(ServiceStack.QueryDataContext ctx, System.Type type); - System.Type GetFromType(System.Type requestDtoType); - ServiceStack.ITypedQueryData GetTypedQuery(System.Type requestDtoType, System.Type fromType); - } - - // Generated from `ServiceStack.IAutoQueryDataOptions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAutoQueryDataOptions - { - bool EnableUntypedQueries { get; set; } - System.Collections.Generic.Dictionary EndsWithConventions { get; set; } - System.Collections.Generic.HashSet IgnoreProperties { get; set; } - bool IncludeTotal { get; set; } - int? MaxLimit { get; set; } - bool OrderByPrimaryKeyOnLimitQuery { get; set; } - System.Collections.Generic.Dictionary StartsWithConventions { get; set; } - } - - // Generated from `ServiceStack.IAutoQueryDbFilters` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAutoQueryDbFilters - { - object sendToAutoQuery(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName, object options); - } - - // Generated from `ServiceStack.ICancellableRequest` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICancellableRequest : System.IDisposable - { - System.TimeSpan Elapsed { get; } - System.Threading.CancellationToken Token { get; } - System.Threading.CancellationTokenSource TokenSource { get; } - } - - // Generated from `ServiceStack.IConfigureApp` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IConfigureApp - { - void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app); - } - - // Generated from `ServiceStack.IConfigureAppHost` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IConfigureAppHost - { - void Configure(ServiceStack.IAppHost appHost); - } - - // Generated from `ServiceStack.IConfigureServices` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IConfigureServices - { - void Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection services); - } - - // Generated from `ServiceStack.IDataQuery` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDataQuery - { - void AddCondition(ServiceStack.QueryTerm defaultTerm, System.Reflection.PropertyInfo field, ServiceStack.QueryCondition condition, object value); - void And(string field, ServiceStack.QueryCondition condition, string value); - System.Collections.Generic.List Conditions { get; } - ServiceStack.IQueryData Dto { get; } - System.Collections.Generic.Dictionary DynamicParams { get; } - System.Tuple FirstMatchingField(string name); - bool HasConditions { get; } - void Join(System.Type joinType, System.Type type); - void LeftJoin(System.Type joinType, System.Type type); - void Limit(int? skip, int? take); - int? Offset { get; } - System.Collections.Generic.HashSet OnlyFields { get; } - void Or(string field, ServiceStack.QueryCondition condition, string value); - ServiceStack.OrderByExpression OrderBy { get; } - void OrderByFields(string[] fieldNames); - void OrderByFieldsDescending(string[] fieldNames); - void OrderByPrimaryKey(); - int? Rows { get; } - void Select(string[] fields); - } - - // Generated from `ServiceStack.IEventSubscription` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IEventSubscription : System.IDisposable - { - string[] Channels { get; } - System.Collections.Generic.Dictionary ConnectArgs { get; set; } - System.DateTime CreatedAt { get; set; } - string DisplayName { get; } - bool IsAuthenticated { get; set; } - bool IsClosed { get; } - string JsonArgs { get; } - System.Int64 LastMessageId { get; } - System.DateTime LastPulseAt { get; set; } - string[] MergedChannels { get; } - System.Collections.Concurrent.ConcurrentDictionary Meta { get; set; } - System.Action OnUnsubscribe { get; set; } - System.Func OnUnsubscribeAsync { get; set; } - void Publish(string selector, string message); - System.Threading.Tasks.Task PublishAsync(string selector, string message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void PublishRaw(string frame); - System.Threading.Tasks.Task PublishRawAsync(string frame, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void Pulse(); - System.Collections.Generic.Dictionary ServerArgs { get; set; } - string SessionId { get; } - string SubscriptionId { get; } - void Unsubscribe(); - System.Threading.Tasks.Task UnsubscribeAsync(); - void UpdateChannels(string[] channels); - string UserAddress { get; set; } - string UserId { get; } - string UserName { get; } - } - - // Generated from `ServiceStack.IHasAppHost` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasAppHost - { - ServiceStack.IAppHost AppHost { get; } - } - - // Generated from `ServiceStack.IHasServiceScope` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasServiceScope : System.IServiceProvider - { - Microsoft.Extensions.DependencyInjection.IServiceScope ServiceScope { get; set; } - } - - // Generated from `ServiceStack.IHasServiceStackProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasServiceStackProvider - { - ServiceStack.IServiceStackProvider ServiceStackProvider { get; } - } - - // Generated from `ServiceStack.IHasTypeValidators` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasTypeValidators - { - System.Collections.Generic.List TypeValidators { get; } - } - - // Generated from `ServiceStack.ILogic` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILogic : ServiceStack.IRepository - { - ServiceStack.Caching.ICacheClient Cache { get; } - ServiceStack.Messaging.IMessageFactory MessageFactory { get; } - ServiceStack.Messaging.IMessageProducer MessageProducer { get; } - void PublishMessage(T message); - ServiceStack.Redis.IRedisClient Redis { get; } - ServiceStack.Redis.IRedisClientsManager RedisManager { get; } - } - - // Generated from `ServiceStack.IMarkdownTransformer` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMarkdownTransformer - { - string Transform(string markdown); - } - - // Generated from `ServiceStack.IMsgPackPlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMsgPackPlugin - { - } - - // Generated from `ServiceStack.INetSerializerPlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface INetSerializerPlugin - { - } - - // Generated from `ServiceStack.IPlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPlugin - { - void Register(ServiceStack.IAppHost appHost); - } - - // Generated from `ServiceStack.IPostInitPlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPostInitPlugin - { - void AfterPluginsLoaded(ServiceStack.IAppHost appHost); - } - - // Generated from `ServiceStack.IPreConfigureAppHost` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPreConfigureAppHost - { - void PreConfigure(ServiceStack.IAppHost appHost); - } - - // Generated from `ServiceStack.IPreInitPlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPreInitPlugin - { - void BeforePluginsLoaded(ServiceStack.IAppHost appHost); - } - - // Generated from `ServiceStack.IProtoBufPlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IProtoBufPlugin - { - string GetProto(System.Type type); - } - - // Generated from `ServiceStack.IQueryDataSource` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryDataSource : System.IDisposable - { - int Count(ServiceStack.IDataQuery q); - ServiceStack.IDataQuery From(); - System.Collections.Generic.List LoadSelect(ServiceStack.IDataQuery q); - object SelectAggregate(ServiceStack.IDataQuery q, string name, System.Collections.Generic.IEnumerable args); - } - - // Generated from `ServiceStack.IQueryDataSource<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryDataSource : System.IDisposable, ServiceStack.IQueryDataSource - { - } - - // Generated from `ServiceStack.IQueryMultiple` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryMultiple - { - } - - // Generated from `ServiceStack.IRazorPlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRazorPlugin - { - } - - // Generated from `ServiceStack.IRepository` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRepository - { - System.Data.IDbConnection Db { get; } - ServiceStack.Data.IDbConnectionFactory DbFactory { get; } - } - - // Generated from `ServiceStack.IRequireConfiguration` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequireConfiguration - { - Microsoft.Extensions.Configuration.IConfiguration Configuration { get; set; } - } - - // Generated from `ServiceStack.IServerEvents` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServerEvents : System.IDisposable - { - System.Collections.Generic.List GetAllSubscriptionInfos(); - System.Collections.Generic.List> GetAllSubscriptionsDetails(); - ServiceStack.MemoryServerEvents GetMemoryServerEvents(); - System.Int64 GetNextSequence(string sequenceId); - System.Collections.Generic.Dictionary GetStats(); - ServiceStack.SubscriptionInfo GetSubscriptionInfo(string id); - System.Collections.Generic.List GetSubscriptionInfosByUserId(string userId); - System.Collections.Generic.List> GetSubscriptionsDetails(params string[] channels); - void NotifyAll(string selector, object message); - System.Threading.Tasks.Task NotifyAllAsync(string selector, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task NotifyAllJsonAsync(string selector, string json, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void NotifyChannel(string channel, string selector, object message); - System.Threading.Tasks.Task NotifyChannelAsync(string channel, string selector, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task NotifyChannelJsonAsync(string channel, string selector, string json, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void NotifySession(string sessionId, string selector, object message, string channel = default(string)); - System.Threading.Tasks.Task NotifySessionAsync(string sessionId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task NotifySessionJsonAsync(string sessionId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void NotifySubscription(string subscriptionId, string selector, object message, string channel = default(string)); - System.Threading.Tasks.Task NotifySubscriptionAsync(string subscriptionId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task NotifySubscriptionJsonAsync(string subscriptionId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void NotifyUserId(string userId, string selector, object message, string channel = default(string)); - System.Threading.Tasks.Task NotifyUserIdAsync(string userId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task NotifyUserIdJsonAsync(string userId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void NotifyUserName(string userName, string selector, object message, string channel = default(string)); - System.Threading.Tasks.Task NotifyUserNameAsync(string userName, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task NotifyUserNameJsonAsync(string userName, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task PulseAsync(string subscriptionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void QueueAsyncTask(System.Func task); - System.Threading.Tasks.Task RegisterAsync(ServiceStack.IEventSubscription subscription, System.Collections.Generic.Dictionary connectArgs = default(System.Collections.Generic.Dictionary), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - int RemoveExpiredSubscriptions(); - System.Threading.Tasks.Task RemoveExpiredSubscriptionsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void Reset(); - void Start(); - void Stop(); - System.Threading.Tasks.Task StopAsync(); - void SubscribeToChannels(string subscriptionId, string[] channels); - System.Threading.Tasks.Task SubscribeToChannelsAsync(string subscriptionId, string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UnRegisterAsync(string subscriptionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void UnsubscribeFromChannels(string subscriptionId, string[] channels); - System.Threading.Tasks.Task UnsubscribeFromChannelsAsync(string subscriptionId, string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.IServiceBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceBase : ServiceStack.Web.IRequiresRequest, ServiceStack.Configuration.IResolver - { - ServiceStack.Configuration.IResolver GetResolver(); - T ResolveService(); - } - - // Generated from `ServiceStack.IServiceStackProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceStackProvider : System.IDisposable - { - ServiceStack.Configuration.IAppSettings AppSettings { get; } - ServiceStack.Auth.IAuthRepository AuthRepository { get; } - ServiceStack.Auth.IAuthRepositoryAsync AuthRepositoryAsync { get; } - ServiceStack.Caching.ICacheClient Cache { get; } - ServiceStack.Caching.ICacheClientAsync CacheAsync { get; } - void ClearSession(); - System.Threading.Tasks.Task ClearSessionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Data.IDbConnection Db { get; } - object Execute(object requestDto); - object Execute(ServiceStack.Web.IRequest request); - TResponse Execute(ServiceStack.IReturn requestDto); - ServiceStack.IServiceGateway Gateway { get; } - System.Threading.Tasks.ValueTask GetRedisAsync(); - ServiceStack.Configuration.IResolver GetResolver(); - ServiceStack.Auth.IAuthSession GetSession(bool reload = default(bool)); - System.Threading.Tasks.Task GetSessionAsync(bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - bool IsAuthenticated { get; } - ServiceStack.Messaging.IMessageProducer MessageProducer { get; } - void PublishMessage(T message); - ServiceStack.Redis.IRedisClient Redis { get; } - ServiceStack.Web.IHttpRequest Request { get; } - T ResolveService(); - ServiceStack.Web.IHttpResponse Response { get; } - ServiceStack.RpcGateway RpcGateway { get; } - TUserSession SessionAs(); - System.Threading.Tasks.Task SessionAsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Caching.ISession SessionBag { get; } - ServiceStack.Caching.ISessionAsync SessionBagAsync { get; } - ServiceStack.Caching.ISessionFactory SessionFactory { get; } - void SetResolver(ServiceStack.Configuration.IResolver resolver); - T TryResolve(); - } - - // Generated from `ServiceStack.ITypeValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypeValidator - { - string ErrorCode { get; set; } - System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request); - string Message { get; set; } - int? StatusCode { get; set; } - System.Threading.Tasks.Task ThrowIfNotValidAsync(object dto, ServiceStack.Web.IRequest request); - } - - // Generated from `ServiceStack.ITypedQueryData` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypedQueryData - { - ServiceStack.IDataQuery AddToQuery(ServiceStack.IDataQuery q, ServiceStack.IQueryData request, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.IAutoQueryDataOptions options = default(ServiceStack.IAutoQueryDataOptions)); - ServiceStack.IDataQuery CreateQuery(ServiceStack.IQueryDataSource db); - ServiceStack.QueryResponse Execute(ServiceStack.IQueryDataSource db, ServiceStack.IDataQuery query); - } - - // Generated from `ServiceStack.IWirePlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IWirePlugin - { - } - - // Generated from `ServiceStack.IWriteEvent` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IWriteEvent - { - void WriteEvent(string msg); - } - - // Generated from `ServiceStack.IWriteEventAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IWriteEventAsync - { - System.Threading.Tasks.Task WriteEventAsync(string msg, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.ImageExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ImageExtensions - { - public static System.IO.MemoryStream CropToPng(this System.Drawing.Image img, int newWidth, int newHeight, int startX = default(int), int startY = default(int)) => throw null; - public static System.IO.MemoryStream ResizeToPng(this System.Drawing.Image img, int newWidth, int newHeight) => throw null; - } - - // Generated from `ServiceStack.InBetweenCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InBetweenCondition : ServiceStack.QueryCondition, ServiceStack.IQueryMultiple - { - public override string Alias { get => throw null; } - public InBetweenCondition() => throw null; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.InCollectionCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InCollectionCondition : ServiceStack.QueryCondition, ServiceStack.IQueryMultiple - { - public override string Alias { get => throw null; } - public InCollectionCondition() => throw null; - public static ServiceStack.InCollectionCondition Instance; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.InProcessServiceGateway` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InProcessServiceGateway : ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceGateway - { - public InProcessServiceGateway(ServiceStack.Web.IRequest req) => throw null; - public void Publish(object requestDto) => throw null; - public void PublishAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; - public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; } - public TResponse Send(object requestDto) => throw null; - public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; - public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.InfoScripts` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InfoScripts : ServiceStack.Script.ScriptMethods - { - public InfoScripts() => throw null; - public string env(string variable) => throw null; - public string envCommandLine() => throw null; - public string[] envCommandLineArgs() => throw null; - public string envCurrentDirectory() => throw null; - public string envExpandVariables(string name) => throw null; - public string envFrameworkDescription() => throw null; - public bool envIs64BitOperatingSystem() => throw null; - public bool envIs64BitProcess() => throw null; - public bool envIsAndroid() => throw null; - public bool envIsIOS() => throw null; - public bool envIsLinux() => throw null; - public bool envIsMono() => throw null; - public bool envIsOSX() => throw null; - public bool envIsWindows() => throw null; - public string[] envLogicalDrives() => throw null; - public string envMachineName() => throw null; - public System.Runtime.InteropServices.Architecture envOSArchitecture() => throw null; - public string envOSDescription() => throw null; - public System.OperatingSystem envOSVersion() => throw null; - public System.Char envPathSeparator() => throw null; - public int envProcessorCount() => throw null; - public string envServerUserAgent() => throw null; - public System.Decimal envServiceStackVersion() => throw null; - public string envStackTrace() => throw null; - public string envSystemDirectory() => throw null; - public int envTickCount() => throw null; - public string envUserDomainName() => throw null; - public string envUserName() => throw null; - public string envVariable(string variable) => throw null; - public System.Collections.IDictionary envVariables() => throw null; - public System.Version envVersion() => throw null; - public ServiceStack.HostConfig hostConfig(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string hostServiceName(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool isUnix() => throw null; - public bool isWin() => throw null; - public string licensedFeatures() => throw null; - public System.Collections.Generic.List metaAllDtoNames() => throw null; - public System.Collections.Generic.HashSet metaAllDtos() => throw null; - public System.Collections.Generic.List metaAllOperationNames() => throw null; - public System.Collections.Generic.List metaAllOperationTypes() => throw null; - public System.Collections.Generic.IEnumerable metaAllOperations() => throw null; - public ServiceStack.Host.Operation metaOperation(string name) => throw null; - public System.Collections.Generic.List networkIpv4Addresses() => throw null; - public System.Collections.Generic.List networkIpv6Addresses() => throw null; - public System.Collections.Generic.List plugins() => throw null; - public string userEmail(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool userHasPermission(ServiceStack.Script.ScriptScopeContext scope, string permission) => throw null; - public bool userHasRole(ServiceStack.Script.ScriptScopeContext scope, string role) => throw null; - public string userId(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string userName(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string userPermanentSessionId(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.Auth.IAuthSession userSession(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string userSessionId(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.HashSet userSessionOptions(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string userTempSessionId(ServiceStack.Script.ScriptScopeContext scope) => throw null; - } - - // Generated from `ServiceStack.IsAuthenticatedValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IsAuthenticatedValidator : ServiceStack.TypeValidator, ServiceStack.IAuthTypeValidator - { - public static string DefaultErrorMessage { get => throw null; set => throw null; } - public static ServiceStack.IsAuthenticatedValidator Instance { get => throw null; } - public IsAuthenticatedValidator(string provider) : base(default(string), default(string), default(int?)) => throw null; - public IsAuthenticatedValidator() : base(default(string), default(string), default(int?)) => throw null; - public override System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; - public string Provider { get => throw null; } - } - - // Generated from `ServiceStack.JsonOnly` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonOnly : ServiceStack.RequestFilterAttribute - { - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public JsonOnly() => throw null; - } - - // Generated from `ServiceStack.JsvOnly` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsvOnly : ServiceStack.RequestFilterAttribute - { - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public JsvOnly() => throw null; - } - - // Generated from `ServiceStack.Keywords` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Keywords - { - public const string AccessTokenAuth = default; - public const string Allows = default; - public const string ApiKey = default; - public static string ApiKeyParam; - public const string Attributes = default; - public static string AuthSecret; - public const string Authorization = default; - public static string AutoBatchIndex; - public static string Bare; - public const string CacheInfo = default; - public static string Callback; - public const string Code = default; - public static string Continue; - public const string Count = default; - public const string DbInfo = default; - public static string Debug; - public const string DidAuthenticate = default; - public const string Dynamic = default; - public const string Embed = default; - public const string Error = default; - public const string ErrorStatus = default; - public const string ErrorView = default; - public const string EventModelId = default; - public static string Format; - public const string GrpcResponseStatus = default; - public const string HasGlobalHeaders = default; - public const string HasLogged = default; - public const string HasPreAuthenticated = default; - public const string HttpStatus = default; - public const string IRequest = default; - public const string Id = default; - public static string Ignore; - public const string IgnoreEvent = default; - public static string IgnorePlaceHolder; - public const string InvokeVerb = default; - public static string JsConfig; - public const string Model = default; - public static string NoRedirect; - public static string PermanentSessionId; - public static string Redirect; - public static string RefreshTokenCookie; - public const string RequestDuration = default; - public static string RequestInfo; - public const string Reset = default; - public const string Result = default; - public static string ReturnUrl; - public const string Route = default; - public const string RowVersion = default; - public const string Session = default; - public static string SessionId; - public static string SessionOptionsKey; - public static string SoapMessage; - public const string State = default; - public const string Template = default; - public static string TokenCookie; - public static string Version; - public static string VersionAbbr; - public const string View = default; - public static string XCookies; - public const string reset = default; - } - - // Generated from `ServiceStack.LessCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LessCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public LessCondition() => throw null; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.LessEqualCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LessEqualCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public static ServiceStack.LessEqualCondition Instance; - public LessEqualCondition() => throw null; - public override bool Match(object a, object b) => throw null; - } - - // Generated from `ServiceStack.LispReplTcpServer` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LispReplTcpServer : System.IDisposable, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPreInitPlugin, ServiceStack.IPlugin, ServiceStack.IAfterInitAppHost - { - public void AfterInit(ServiceStack.IAppHost appHost) => throw null; - public bool? AllowScriptingOfAllTypes { get => throw null; set => throw null; } - public void BeforePluginsLoaded(ServiceStack.IAppHost appHost) => throw null; - public void Dispose() => throw null; - public string Id { get => throw null; set => throw null; } - public LispReplTcpServer(string localIp, int port) => throw null; - public LispReplTcpServer(int port) => throw null; - public LispReplTcpServer(System.Net.IPAddress localIp, int port) => throw null; - public LispReplTcpServer() => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - public bool RequireAuthSecret { get => throw null; set => throw null; } - public System.Collections.Generic.List ScanAssemblies { get => throw null; set => throw null; } - public System.Collections.Generic.List ScanTypes { get => throw null; set => throw null; } - public System.Collections.Generic.List ScriptAssemblies { get => throw null; set => throw null; } - public System.Collections.Generic.List ScriptBlocks { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptContext ScriptContext { get => throw null; set => throw null; } - public System.Collections.Generic.List ScriptMethods { get => throw null; set => throw null; } - public System.Collections.Generic.List ScriptNamespaces { get => throw null; set => throw null; } - public System.Collections.Generic.List ScriptTypes { get => throw null; set => throw null; } - public void Start() => throw null; - public void StartListening() => throw null; - public void Stop() => throw null; - } - - // Generated from `ServiceStack.LocalizedStrings` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class LocalizedStrings - { - public const string AssignRoles = default; - public const string Auth = default; - public const string Authenticate = default; - public const string Login = default; - public const string NotModified = default; - public const string Redirect = default; - public const string UnassignRoles = default; - } - - // Generated from `ServiceStack.LogExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class LogExtensions - { - public static void ErrorStrict(this ServiceStack.Logging.ILog log, string message, System.Exception ex) => throw null; - public static bool IsNullOrNullLogFactory(this ServiceStack.Logging.ILogFactory factory) => throw null; - } - - // Generated from `ServiceStack.LogicBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class LogicBase : ServiceStack.RepositoryBase, ServiceStack.IRepository, ServiceStack.ILogic - { - public virtual ServiceStack.Caching.ICacheClient Cache { get => throw null; set => throw null; } - public override void Dispose() => throw null; - protected LogicBase() => throw null; - public virtual ServiceStack.Messaging.IMessageFactory MessageFactory { get => throw null; set => throw null; } - public virtual ServiceStack.Messaging.IMessageProducer MessageProducer { get => throw null; set => throw null; } - public virtual void PublishMessage(T message) => throw null; - public virtual ServiceStack.Redis.IRedisClient Redis { get => throw null; } - public virtual ServiceStack.Redis.IRedisClientsManager RedisManager { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MarkdownConfig` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MarkdownConfig - { - public static string Transform(string html) => throw null; - public static ServiceStack.IMarkdownTransformer Transformer { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MarkdownPageFormat` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MarkdownPageFormat : ServiceStack.Script.PageFormat - { - public MarkdownPageFormat() => throw null; - public static System.Threading.Tasks.Task TransformToHtml(System.IO.Stream markdownStream) => throw null; - } - - // Generated from `ServiceStack.MarkdownScriptBlock` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MarkdownScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public MarkdownScriptBlock() => throw null; - public override string Name { get => throw null; } - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.MarkdownScriptMethods` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MarkdownScriptMethods : ServiceStack.Script.ScriptMethods - { - public MarkdownScriptMethods() => throw null; - public ServiceStack.IRawString markdown(string markdown) => throw null; - } - - // Generated from `ServiceStack.MarkdownScriptPlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MarkdownScriptPlugin : ServiceStack.Script.IScriptPlugin - { - public MarkdownScriptPlugin() => throw null; - public void Register(ServiceStack.Script.ScriptContext context) => throw null; - public bool RegisterPageFormat { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MarkdownTemplateFilter` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MarkdownTemplateFilter : ServiceStack.MarkdownScriptMethods - { - public MarkdownTemplateFilter() => throw null; - } - - // Generated from `ServiceStack.MarkdownTemplatePlugin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MarkdownTemplatePlugin : ServiceStack.MarkdownScriptPlugin - { - public MarkdownTemplatePlugin() => throw null; - } - - // Generated from `ServiceStack.MemoryDataSource<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MemoryDataSource : ServiceStack.QueryDataSource - { - public System.Collections.Generic.IEnumerable Data { get => throw null; } - public override System.Collections.Generic.IEnumerable GetDataSource(ServiceStack.IDataQuery q) => throw null; - public MemoryDataSource(System.Collections.Generic.IEnumerable data, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req) : base(default(ServiceStack.QueryDataContext)) => throw null; - public MemoryDataSource(ServiceStack.QueryDataContext context, System.Collections.Generic.IEnumerable data) : base(default(ServiceStack.QueryDataContext)) => throw null; - } - - // Generated from `ServiceStack.MemoryServerEvents` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MemoryServerEvents : System.IDisposable, ServiceStack.IServerEvents - { - public System.Collections.Concurrent.ConcurrentDictionary> ChannelSubscriptions; - public void Dispose() => throw null; - public System.Threading.Tasks.Task DisposeAsync() => throw null; - protected System.Threading.Tasks.Task FlushNopAsync(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static bool FlushNopOnSubscription; - public System.Threading.Tasks.Task FlushNopToChannelsAsync(string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.List GetAllSubscriptionInfos() => throw null; - public System.Collections.Generic.List> GetAllSubscriptionsDetails() => throw null; - public ServiceStack.MemoryServerEvents GetMemoryServerEvents() => throw null; - public System.Int64 GetNextSequence(string sequenceId) => throw null; - public System.Collections.Generic.Dictionary GetStats() => throw null; - public ServiceStack.IEventSubscription GetSubscription(string id) => throw null; - public ServiceStack.SubscriptionInfo GetSubscriptionInfo(string id) => throw null; - public System.Collections.Generic.List GetSubscriptionInfosByUserId(string userId) => throw null; - public System.Collections.Generic.List> GetSubscriptionsDetails(params string[] channels) => throw null; - public System.TimeSpan HouseKeepingInterval { get => throw null; set => throw null; } - public System.TimeSpan IdleTimeout { get => throw null; set => throw null; } - public MemoryServerEvents() => throw null; - protected void Notify(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string selector, object message, string channel = default(string)) => throw null; - protected void Notify(System.Collections.Concurrent.ConcurrentDictionary map, string key, string selector, object message, string channel = default(string)) => throw null; - public void NotifyAll(string selector, object message) => throw null; - public System.Threading.Tasks.Task NotifyAllAsync(string selector, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task NotifyAllJsonAsync(string selector, string json, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected System.Threading.Tasks.Task NotifyAsync(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected System.Threading.Tasks.Task NotifyAsync(System.Collections.Concurrent.ConcurrentDictionary map, string key, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void NotifyChannel(string channel, string selector, object message) => throw null; - public System.Threading.Tasks.Task NotifyChannelAsync(string channel, string selector, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task NotifyChannelJsonAsync(string channel, string selector, string json, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public bool NotifyChannelOfSubscriptions { get => throw null; set => throw null; } - public System.Threading.Tasks.Task NotifyChannelsAsync(string[] channels, string selector, string body, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Func NotifyHeartbeatAsync { get => throw null; set => throw null; } - public System.Func NotifyJoinAsync { get => throw null; set => throw null; } - public System.Func NotifyLeaveAsync { get => throw null; set => throw null; } - protected void NotifyRaw(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string selector, string body, string channel = default(string)) => throw null; - protected System.Threading.Tasks.Task NotifyRawAsync(System.Collections.Concurrent.ConcurrentDictionary> map, string key, string selector, string body, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected System.Threading.Tasks.Task NotifyRawAsync(System.Collections.Concurrent.ConcurrentDictionary map, string key, string selector, string body, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void NotifySession(string sessionId, string selector, object message, string channel = default(string)) => throw null; - public System.Threading.Tasks.Task NotifySessionAsync(string sessionId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task NotifySessionJsonAsync(string sessionId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void NotifySubscription(string subscriptionId, string selector, object message, string channel = default(string)) => throw null; - public System.Threading.Tasks.Task NotifySubscriptionAsync(string subscriptionId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task NotifySubscriptionJsonAsync(string subscriptionId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Func NotifyUpdateAsync { get => throw null; set => throw null; } - public void NotifyUserId(string userId, string selector, object message, string channel = default(string)) => throw null; - public System.Threading.Tasks.Task NotifyUserIdAsync(string userId, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task NotifyUserIdJsonAsync(string userId, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void NotifyUserName(string userName, string selector, object message, string channel = default(string)) => throw null; - public System.Threading.Tasks.Task NotifyUserNameAsync(string userName, string selector, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task NotifyUserNameJsonAsync(string userName, string selector, string json, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Action OnError { get => throw null; set => throw null; } - public System.Func OnSubscribeAsync { get => throw null; set => throw null; } - public System.Func OnUnsubscribeAsync { get => throw null; set => throw null; } - public System.Func OnUpdateAsync { get => throw null; set => throw null; } - public bool Pulse(string id) => throw null; - public System.Threading.Tasks.Task PulseAsync(string id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void QueueAsyncTask(System.Func task) => throw null; - public System.Threading.Tasks.Task RegisterAsync(ServiceStack.IEventSubscription subscription, System.Collections.Generic.Dictionary connectArgs = default(System.Collections.Generic.Dictionary), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void RegisterHungConnection(ServiceStack.IEventSubscription sub) => throw null; - public int RemoveExpiredSubscriptions() => throw null; - public System.Threading.Tasks.Task RemoveExpiredSubscriptionsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Reset() => throw null; - public System.Func Serialize { get => throw null; set => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary> SessionSubscriptions; - public void Start() => throw null; - public void Stop() => throw null; - public System.Threading.Tasks.Task StopAsync() => throw null; - public void SubscribeToChannels(string subscriptionId, string[] channels) => throw null; - public System.Threading.Tasks.Task SubscribeToChannelsAsync(string subscriptionId, string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Concurrent.ConcurrentDictionary Subscriptions; - public void UnRegister(string subscriptionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task UnRegisterAsync(string subscriptionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void UnsubscribeFromChannels(string subscriptionId, string[] channels) => throw null; - public System.Threading.Tasks.Task UnsubscribeFromChannelsAsync(string subscriptionId, string[] channels, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Concurrent.ConcurrentDictionary> UserIdSubscriptions; - public System.Collections.Concurrent.ConcurrentDictionary> UserNameSubscriptions; - } - - // Generated from `ServiceStack.MemoryValidationSource` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MemoryValidationSource : ServiceStack.IValidationSourceAdmin, ServiceStack.IValidationSource, ServiceStack.Auth.IClearable - { - public void Clear() => throw null; - public System.Threading.Tasks.Task ClearCacheAsync() => throw null; - public System.Threading.Tasks.Task DeleteValidationRulesAsync(params int[] ids) => throw null; - public System.Threading.Tasks.Task> GetAllValidateRulesAsync(string typeName) => throw null; - public System.Threading.Tasks.Task> GetValidateRulesByIdsAsync(params int[] ids) => throw null; - public System.Collections.Generic.IEnumerable> GetValidationRules(System.Type type) => throw null; - public MemoryValidationSource() => throw null; - public System.Threading.Tasks.Task SaveValidationRulesAsync(System.Collections.Generic.List validateRules) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary[]> TypeRulesMap; - } - - // Generated from `ServiceStack.MetadataAppService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataAppService : ServiceStack.Service - { - public ServiceStack.AppMetadata Any(ServiceStack.MetadataApp request) => throw null; - public MetadataAppService() => throw null; - public ServiceStack.NativeTypes.INativeTypesMetadata NativeTypesMetadata { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataDebug` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataDebug : ServiceStack.IReturn, ServiceStack.IReturn - { - public string AuthSecret { get => throw null; set => throw null; } - public MetadataDebug() => throw null; - public string Script { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataDebugService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataDebugService : ServiceStack.Service - { - public System.Threading.Tasks.Task Any(ServiceStack.MetadataDebug request) => throw null; - public static string DefaultTemplate; - public System.Threading.Tasks.Task GetHtml(ServiceStack.MetadataDebug request) => throw null; - public MetadataDebugService() => throw null; - public static string Route; - } - - // Generated from `ServiceStack.MetadataFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public System.Collections.Generic.List> AppMetadataFilters { get => throw null; } - public System.Collections.Generic.Dictionary DebugLinks { get => throw null; set => throw null; } - public string DebugLinksTitle { get => throw null; set => throw null; } - public System.Action DetailPageFilter { get => throw null; set => throw null; } - public bool EnableAppMetadata { get => throw null; set => throw null; } - public bool EnableNav { get => throw null; set => throw null; } - public System.Collections.Generic.List ExportTypes { get => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Action IndexPageFilter { get => throw null; set => throw null; } - public MetadataFeature() => throw null; - public System.Collections.Generic.Dictionary PluginLinks { get => throw null; set => throw null; } - public string PluginLinksTitle { get => throw null; set => throw null; } - public virtual ServiceStack.Host.IHttpHandler ProcessRequest(string httpMethod, string pathInfo, string filePath) => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - public bool ShowResponseStatusInMetadataPages { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MetadataFeatureExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MetadataFeatureExtensions - { - public static ServiceStack.MetadataFeature AddDebugLink(this ServiceStack.MetadataFeature metadata, string href, string title) => throw null; - public static ServiceStack.MetadataFeature AddPluginLink(this ServiceStack.MetadataFeature metadata, string href, string title) => throw null; - public static ServiceStack.MetadataFeature RemoveDebugLink(this ServiceStack.MetadataFeature metadata, string href) => throw null; - public static ServiceStack.MetadataFeature RemovePluginLink(this ServiceStack.MetadataFeature metadata, string href) => throw null; - } - - // Generated from `ServiceStack.MetadataNavService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataNavService : ServiceStack.Service - { - public object Get(ServiceStack.GetNavItems request) => throw null; - public MetadataNavService() => throw null; - } - - // Generated from `ServiceStack.MinifyCssScriptBlock` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MinifyCssScriptBlock : ServiceStack.MinifyScriptBlockBase - { - public override ServiceStack.ICompressor Minifier { get => throw null; } - public MinifyCssScriptBlock() => throw null; - public override string Name { get => throw null; } - } - - // Generated from `ServiceStack.MinifyHtmlScriptBlock` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MinifyHtmlScriptBlock : ServiceStack.MinifyScriptBlockBase - { - public override ServiceStack.ICompressor Minifier { get => throw null; } - public MinifyHtmlScriptBlock() => throw null; - public override string Name { get => throw null; } - } - - // Generated from `ServiceStack.MinifyJsScriptBlock` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MinifyJsScriptBlock : ServiceStack.MinifyScriptBlockBase - { - public override ServiceStack.ICompressor Minifier { get => throw null; } - public MinifyJsScriptBlock() => throw null; - public override string Name { get => throw null; } - } - - // Generated from `ServiceStack.MinifyScriptBlockBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class MinifyScriptBlockBase : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public System.ReadOnlyMemory GetMinifiedOutputCache(System.ReadOnlyMemory contents) => throw null; - public abstract ServiceStack.ICompressor Minifier { get; } - protected MinifyScriptBlockBase() => throw null; - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.ModularExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ModularExtensions - { - public static System.Collections.Generic.List PriorityBelowZero(this System.Collections.Generic.List> instances) => throw null; - public static System.Collections.Generic.List PriorityOrdered(this System.Collections.Generic.List> instances) => throw null; - public static System.Collections.Generic.List PriorityZeroOrAbove(this System.Collections.Generic.List> instances) => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseModularStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) where TStartup : class => throw null; - public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseModularStartup(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) where TStartup : class => throw null; - public static System.Collections.Generic.List> WithPriority(this System.Collections.Generic.IEnumerable instances) => throw null; - } - - // Generated from `ServiceStack.ModularStartup` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ModularStartup : Microsoft.AspNetCore.Hosting.IStartup - { - public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; set => throw null; } - public void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public System.IServiceProvider ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - public static System.Type Create() => throw null; - public object CreateStartupInstance(System.Type type) => throw null; - public System.Collections.Generic.List> GetPriorityInstances() => throw null; - public System.Collections.Generic.List IgnoreTypes { get => throw null; set => throw null; } - public static ServiceStack.ModularStartup Instance { get => throw null; set => throw null; } - public virtual bool LoadType(System.Type startupType) => throw null; - public System.Collections.Generic.List LoadedConfigurations { get => throw null; set => throw null; } - protected ModularStartup(Microsoft.Extensions.Configuration.IConfiguration configuration, params System.Reflection.Assembly[] assemblies) => throw null; - protected ModularStartup(Microsoft.Extensions.Configuration.IConfiguration configuration, System.Type[] types) => throw null; - protected ModularStartup(Microsoft.Extensions.Configuration.IConfiguration configuration, System.Func> typesResolver) => throw null; - protected ModularStartup() => throw null; - public System.Collections.Generic.List ScanAssemblies { get => throw null; } - public System.Func> TypeResolver { get => throw null; } - } - - // Generated from `ServiceStack.ModularStartupActivator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ModularStartupActivator - { - protected Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; } - public virtual void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app) => throw null; - public virtual void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) => throw null; - protected ServiceStack.ModularStartup Instance; - public ModularStartupActivator(Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; - public static System.Type StartupType { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.MqExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MqExtensions - { - public static System.Collections.Generic.Dictionary ToHeaders(this ServiceStack.Messaging.IMessage message) => throw null; - } - - // Generated from `ServiceStack.NativeTypesFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NativeTypesFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public ServiceStack.NativeTypes.MetadataTypesGenerator DefaultGenerator { get => throw null; set => throw null; } - public static bool DisableTokenVerification { get => throw null; set => throw null; } - public void ExportAttribute(System.Func converter) => throw null; - public void ExportAttribute(System.Type attributeType, System.Func converter) => throw null; - public ServiceStack.NativeTypes.MetadataTypesGenerator GetGenerator() => throw null; - public string Id { get => throw null; set => throw null; } - public ServiceStack.MetadataTypesConfig MetadataTypesConfig { get => throw null; set => throw null; } - public NativeTypesFeature() => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - } - - // Generated from `ServiceStack.NetCoreAppHostExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class NetCoreAppHostExtensions - { - public static Microsoft.Extensions.DependencyInjection.IServiceScope CreateScope(this ServiceStack.Web.IRequest req) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder GetApp(this ServiceStack.IAppHost appHost) => throw null; - public static System.IServiceProvider GetApplicationServices(this ServiceStack.IAppHost appHost) => throw null; - public static Microsoft.Extensions.Configuration.IConfiguration GetConfiguration(this ServiceStack.IAppHost appHost) => throw null; - public static Microsoft.AspNetCore.Hosting.IHostingEnvironment GetHostingEnvironment(this ServiceStack.IAppHost appHost) => throw null; - public static System.Collections.Generic.IEnumerable GetServices(this ServiceStack.Web.IRequest req, System.Type type) => throw null; - public static System.Collections.Generic.IEnumerable GetServices(this ServiceStack.Web.IRequest req) => throw null; - public static bool IsDevelopmentEnvironment(this ServiceStack.IAppHost appHost) => throw null; - public static bool IsProductionEnvironment(this ServiceStack.IAppHost appHost) => throw null; - public static bool IsStagingEnvironment(this ServiceStack.IAppHost appHost) => throw null; - public static T Resolve(this System.IServiceProvider provider) => throw null; - public static object ResolveScoped(this ServiceStack.Web.IRequest req, System.Type type) => throw null; - public static T ResolveScoped(this ServiceStack.Web.IRequest req) => throw null; - public static ServiceStack.Web.IHttpRequest ToRequest(this Microsoft.AspNetCore.Http.HttpRequest request, string operationName = default(string)) => throw null; - public static ServiceStack.Web.IHttpRequest ToRequest(this Microsoft.AspNetCore.Http.HttpContext httpContext, string operationName = default(string)) => throw null; - public static T TryResolve(this System.IServiceProvider provider) => throw null; - public static object TryResolveScoped(this ServiceStack.Web.IRequest req, System.Type type) => throw null; - public static T TryResolveScoped(this ServiceStack.Web.IRequest req) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder Use(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, ServiceStack.Host.IHttpAsyncHandler httpHandler) => throw null; - public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseServiceStack(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, ServiceStack.AppHostBase appHost) => throw null; - } - - // Generated from `ServiceStack.NetCoreAppSettings` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreAppSettings : ServiceStack.Configuration.IAppSettings - { - public Microsoft.Extensions.Configuration.IConfiguration Configuration { get => throw null; } - public bool Exists(string key) => throw null; - public T Get(string name, T defaultValue) => throw null; - public T Get(string name) => throw null; - public System.Collections.Generic.Dictionary GetAll() => throw null; - public System.Collections.Generic.List GetAllKeys() => throw null; - public System.Collections.Generic.IDictionary GetDictionary(string key) => throw null; - public System.Collections.Generic.List> GetKeyValuePairs(string key) => throw null; - public System.Collections.Generic.IList GetList(string key) => throw null; - public string GetString(string name) => throw null; - public NetCoreAppSettings(Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; - public void Set(string key, T value) => throw null; - } - - // Generated from `ServiceStack.NotEqualCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NotEqualCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public override bool Match(object a, object b) => throw null; - public NotEqualCondition() => throw null; - } - - // Generated from `ServiceStack.OrderByExpression` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OrderByExpression : ServiceStack.FilterExpression - { - public override System.Collections.Generic.IEnumerable Apply(System.Collections.Generic.IEnumerable source) => throw null; - public ServiceStack.GetMemberDelegate[] FieldGetters { get => throw null; set => throw null; } - public string[] FieldNames { get => throw null; set => throw null; } - public bool[] OrderAsc { get => throw null; set => throw null; } - public OrderByExpression(string[] fieldNames, ServiceStack.GetMemberDelegate[] fieldGetters, bool[] orderAsc) => throw null; - public OrderByExpression(string fieldName, ServiceStack.GetMemberDelegate fieldGetter, bool orderAsc = default(bool)) => throw null; - } - - // Generated from `ServiceStack.Platform` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Platform - { - public virtual string GetAppConfigPath() => throw null; - public virtual string GetAppSetting(string key, string defaultValue) => throw null; - public virtual string GetAppSetting(string key) => throw null; - public virtual T GetAppSetting(string key, T defaultValue) => throw null; - public virtual string GetConnectionString(string key) => throw null; - public virtual System.Collections.Generic.Dictionary GetCookiesAsDictionary(ServiceStack.Web.IResponse httpRes) => throw null; - public virtual System.Collections.Generic.Dictionary GetCookiesAsDictionary(ServiceStack.Web.IRequest httpReq) => throw null; - public virtual string GetNullableAppSetting(string key) => throw null; - public virtual System.Collections.Generic.HashSet GetRazorNamespaces() => throw null; - public virtual void InitHostConfig(ServiceStack.HostConfig config) => throw null; - public static ServiceStack.Platform Instance; - public static T ParseTextValue(string textValue) => throw null; - public Platform() => throw null; - } - - // Generated from `ServiceStack.Plugins` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Plugins - { - public static void AddToAppMetadata(this ServiceStack.IAppHost appHost, System.Action fn) => throw null; - public const string AdminUsers = default; - public const string Auth = default; - public const string AutoQuery = default; - public const string AutoQueryData = default; - public const string AutoQueryMetadata = default; - public const string CancelRequests = default; - public const string Cors = default; - public const string Csv = default; - public const string Desktop = default; - public const string EncryptedMessaging = default; - public const string Grpc = default; - public const string HotReload = default; - public const string Html = default; - public const string HttpCache = default; - public const string LispTcpServer = default; - public const string Metadata = default; - public const string MiniProfiler = default; - public const string MsgPack = default; - public const string NativeTypes = default; - public const string OpenApi = default; - public const string Postman = default; - public const string PredefinedRoutes = default; - public const string ProtoBuf = default; - public const string Proxy = default; - public const string Razor = default; - public const string RedisErrorLogs = default; - public const string Register = default; - public const string RequestInfo = default; - public const string RequestLogs = default; - public const string ServerEvents = default; - public const string Session = default; - public const string SharpPages = default; - public const string Sitemap = default; - public const string Soap = default; - public const string Svg = default; - public const string Swagger = default; - public const string Validation = default; - public const string WebSudo = default; - } - - // Generated from `ServiceStack.Postman` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Postman - { - public bool ExportSession { get => throw null; set => throw null; } - public System.Collections.Generic.List Label { get => throw null; set => throw null; } - public Postman() => throw null; - public string ssid { get => throw null; set => throw null; } - public string ssopt { get => throw null; set => throw null; } - public string sspid { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.PostmanCollection` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PostmanCollection - { - public PostmanCollection() => throw null; - public string id { get => throw null; set => throw null; } - public string name { get => throw null; set => throw null; } - public System.Collections.Generic.List requests { get => throw null; set => throw null; } - public System.Int64 timestamp { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.PostmanData` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PostmanData - { - public PostmanData() => throw null; - public string key { get => throw null; set => throw null; } - public string type { get => throw null; set => throw null; } - public string value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.PostmanExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class PostmanExtensions - { - public static System.Collections.Generic.List ApplyPropertyTypes(this System.Collections.Generic.List data, System.Collections.Generic.Dictionary typeMap, string defaultValue = default(string)) => throw null; - public static System.Collections.Generic.Dictionary ApplyPropertyTypes(this System.Collections.Generic.IEnumerable names, System.Collections.Generic.Dictionary typeMap, string defaultValue = default(string)) => throw null; - public static string AsFriendlyName(this System.Type type, ServiceStack.PostmanFeature feature) => throw null; - public static string ToPostmanPathVariables(this string path) => throw null; - } - - // Generated from `ServiceStack.PostmanFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PostmanFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string AtRestPath { get => throw null; set => throw null; } - public System.Collections.Generic.List DefaultLabelFmt { get => throw null; set => throw null; } - public System.Collections.Generic.List DefaultVerbsForAny { get => throw null; set => throw null; } - public bool? EnableSessionExport { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary FriendlyTypeNames; - public string Headers { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public PostmanFeature() => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - } - - // Generated from `ServiceStack.PostmanRequest` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PostmanRequest - { - public PostmanRequest() => throw null; - public string collectionId { get => throw null; set => throw null; } - public System.Collections.Generic.List data { get => throw null; set => throw null; } - public string dataMode { get => throw null; set => throw null; } - public string description { get => throw null; set => throw null; } - public string headers { get => throw null; set => throw null; } - public string id { get => throw null; set => throw null; } - public string method { get => throw null; set => throw null; } - public string name { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary pathVariables { get => throw null; set => throw null; } - public System.Collections.Generic.List responses { get => throw null; set => throw null; } - public System.Int64 time { get => throw null; set => throw null; } - public string url { get => throw null; set => throw null; } - public int version { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.PostmanService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PostmanService : ServiceStack.Service - { - public object Any(ServiceStack.Postman request) => throw null; - public string GetName(ServiceStack.PostmanFeature feature, ServiceStack.Postman request, System.Type requestType, string virtualPath) => throw null; - public System.Collections.Generic.List GetRequests(ServiceStack.Postman request, string parentId, System.Collections.Generic.IEnumerable operations) => throw null; - public PostmanService() => throw null; - } - - // Generated from `ServiceStack.PredefinedRoutesFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PredefinedRoutesFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public System.Collections.Generic.Dictionary> HandlerMappings { get => throw null; } - public string Id { get => throw null; set => throw null; } - public PredefinedRoutesFeature() => throw null; - public ServiceStack.Host.IHttpHandler ProcessRequest(string httpMethod, string pathInfo, string filePath) => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - } - - // Generated from `ServiceStack.ProxyFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProxyFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string Id { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet IgnoreResponseHeaders; - public ProxyFeature(System.Func matchingRequests, System.Func resolveUrl) => throw null; - public System.Action ProxyRequestFilter { get => throw null; set => throw null; } - public System.Action ProxyResponseFilter { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public System.Func ResolveUrl; - public System.Func> TransformRequest { get => throw null; set => throw null; } - public System.Func> TransformResponse { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ProxyFeatureHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ProxyFeatureHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public virtual System.Threading.Tasks.Task CopyToResponse(ServiceStack.Web.IHttpResponse res, System.Net.HttpWebResponse webRes) => throw null; - public System.Collections.Generic.HashSet IgnoreResponseHeaders { get => throw null; set => throw null; } - public static void InitWebRequest(ServiceStack.Web.IHttpRequest httpReq, System.Net.HttpWebRequest webReq) => throw null; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse response, string operationName) => throw null; - public ProxyFeatureHandler() => throw null; - public virtual System.Threading.Tasks.Task ProxyRequestAsync(ServiceStack.Web.IHttpRequest httpReq, string url) => throw null; - public System.Threading.Tasks.Task ProxyRequestAsync(ServiceStack.Web.IHttpRequest httpReq, System.Net.HttpWebRequest webReq) => throw null; - public System.Action ProxyRequestFilter { get => throw null; set => throw null; } - public System.Action ProxyResponseFilter { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ProxyToResponse(ServiceStack.Web.IHttpResponse res, System.Net.HttpWebRequest webReq) => throw null; - public System.Func ResolveUrl { get => throw null; set => throw null; } - public override bool RunAsAsync() => throw null; - public System.Func> TransformRequest { get => throw null; set => throw null; } - public System.Func> TransformResponse { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class QueryCondition - { - public abstract string Alias { get; } - public virtual int CompareTo(object a, object b) => throw null; - public abstract bool Match(object a, object b); - protected QueryCondition() => throw null; - public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryDataContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class QueryDataContext - { - public ServiceStack.IQueryData Dto { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary DynamicParams { get => throw null; set => throw null; } - public QueryDataContext() => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public ServiceStack.ITypedQueryData TypedQuery { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryDataField` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class QueryDataField - { - public string Condition { get => throw null; set => throw null; } - public string Field { get => throw null; set => throw null; } - public ServiceStack.QueryCondition QueryCondition { get => throw null; set => throw null; } - public QueryDataField() => throw null; - public ServiceStack.QueryTerm Term { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryDataFilterContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class QueryDataFilterContext - { - public System.Collections.Generic.List Commands { get => throw null; set => throw null; } - public ServiceStack.IQueryDataSource Db { get => throw null; set => throw null; } - public ServiceStack.IQueryData Dto { get => throw null; set => throw null; } - public ServiceStack.IDataQuery Query { get => throw null; set => throw null; } - public QueryDataFilterContext() => throw null; - public ServiceStack.IQueryResponse Response { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.QueryDataFilterDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void QueryDataFilterDelegate(ServiceStack.IDataQuery q, ServiceStack.IQueryData dto, ServiceStack.Web.IRequest req); - - // Generated from `ServiceStack.QueryDataSource<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class QueryDataSource : System.IDisposable, ServiceStack.IQueryDataSource, ServiceStack.IQueryDataSource - { - public virtual System.Collections.Generic.IEnumerable ApplyConditions(System.Collections.Generic.IEnumerable data, System.Collections.Generic.IEnumerable conditions) => throw null; - public virtual System.Collections.Generic.IEnumerable ApplyLimits(System.Collections.Generic.IEnumerable source, int? skip, int? take) => throw null; - public virtual System.Collections.Generic.IEnumerable ApplySorting(System.Collections.Generic.IEnumerable source, ServiceStack.OrderByExpression orderBy) => throw null; - public virtual int Count(ServiceStack.IDataQuery q) => throw null; - public virtual void Dispose() => throw null; - public virtual ServiceStack.IDataQuery From() => throw null; - public abstract System.Collections.Generic.IEnumerable GetDataSource(ServiceStack.IDataQuery q); - public virtual System.Collections.Generic.List LoadSelect(ServiceStack.IDataQuery q) => throw null; - protected QueryDataSource(ServiceStack.QueryDataContext context) => throw null; - public virtual object SelectAggregate(ServiceStack.IDataQuery q, string name, System.Collections.Generic.IEnumerable args) => throw null; - } - - // Generated from `ServiceStack.RedisErrorLoggerFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisErrorLoggerFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public const string CombinedServiceLogId = default; - public object HandleServiceException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; - public void HandleUncaughtException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; - public string Id { get => throw null; set => throw null; } - public RedisErrorLoggerFeature(ServiceStack.Redis.IRedisClientsManager redisManager) => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - public const string UrnServiceErrorType = default; - } - - // Generated from `ServiceStack.RegistrationFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RegistrationFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public bool AllowUpdates { get => throw null; set => throw null; } - public string AtRestPath { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public RegistrationFeature() => throw null; - public ServiceStack.Auth.ValidateFn ValidateFn { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.RepositoryBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class RepositoryBase : System.IDisposable, ServiceStack.IRepository - { - public virtual System.Data.IDbConnection Db { get => throw null; } - public virtual ServiceStack.Data.IDbConnectionFactory DbFactory { get => throw null; set => throw null; } - public virtual void Dispose() => throw null; - protected RepositoryBase() => throw null; - } - - // Generated from `ServiceStack.RequestContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestContext - { - public static System.Threading.AsyncLocal AsyncRequestItems; - public void EndRequest() => throw null; - public T GetOrCreate(System.Func createFn) => throw null; - public static ServiceStack.RequestContext Instance; - public virtual System.Collections.IDictionary Items { get => throw null; set => throw null; } - public bool ReleaseDisposables() => throw null; - public RequestContext() => throw null; - public void StartRequestContext() => throw null; - public void TrackDisposable(System.IDisposable instance) => throw null; - } - - // Generated from `ServiceStack.RequestExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null; ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static partial class RequestExtensions - { - public static string GetCompressionType(this ServiceStack.Web.IRequest request) => throw null; - public static string GetContentEncoding(this ServiceStack.Web.IRequest request) => throw null; - public static ServiceStack.IO.IVirtualDirectory GetDirectory(this ServiceStack.Web.IRequest request) => throw null; - public static ServiceStack.IO.IVirtualFile GetFile(this ServiceStack.Web.IRequest request) => throw null; - public static string GetHeader(this ServiceStack.Web.IRequest request, string headerName) => throw null; - public static System.IO.Stream GetInputStream(this ServiceStack.Web.IRequest req, System.IO.Stream stream) => throw null; - public static object GetItem(this ServiceStack.Web.IRequest httpReq, string key) => throw null; - public static string GetParamInRequestHeader(this ServiceStack.Web.IRequest request, string name) => throw null; - public static T GetRuntimeConfig(this ServiceStack.Web.IRequest req, string name, T defaultValue) => throw null; - public static System.Threading.Tasks.Task GetSessionFromSourceAsync(this ServiceStack.Web.IRequest request, string userAuthId, System.Func validator, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static bool IsDirectory(this ServiceStack.Web.IRequest request) => throw null; - public static bool IsFile(this ServiceStack.Web.IRequest request) => throw null; - public static bool IsInProcessRequest(this ServiceStack.Web.IRequest httpReq) => throw null; - public static void RegisterForDispose(this ServiceStack.Web.IRequest request, System.IDisposable disposable) => throw null; - public static void ReleaseIfInProcessRequest(this ServiceStack.Web.IRequest httpReq) => throw null; - public static ServiceStack.AuthUserSession ReloadSession(this ServiceStack.Web.IRequest request) => throw null; - public static void SetInProcessRequest(this ServiceStack.Web.IRequest httpReq) => throw null; - public static void SetItem(this ServiceStack.Web.IRequest httpReq, string key, object value) => throw null; - public static object ToOptimizedResult(this ServiceStack.Web.IRequest request, object dto) => throw null; - public static System.Threading.Tasks.Task ToOptimizedResultAsync(this ServiceStack.Web.IRequest request, object dto) => throw null; - public static object ToOptimizedResultUsingCache(this ServiceStack.Web.IRequest req, ServiceStack.Caching.ICacheClient cacheClient, string cacheKey, System.TimeSpan? expireCacheIn, System.Func factoryFn) => throw null; - public static object ToOptimizedResultUsingCache(this ServiceStack.Web.IRequest req, ServiceStack.Caching.ICacheClient cacheClient, string cacheKey, System.Func factoryFn) => throw null; - public static System.Threading.Tasks.Task ToOptimizedResultUsingCacheAsync(this ServiceStack.Web.IRequest req, ServiceStack.Caching.ICacheClientAsync cacheClient, string cacheKey, System.TimeSpan? expireCacheIn, System.Func factoryFn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ToOptimizedResultUsingCacheAsync(this ServiceStack.Web.IRequest req, ServiceStack.Caching.ICacheClientAsync cacheClient, string cacheKey, System.Func factoryFn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.RequestFilterAsyncAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class RequestFilterAsyncAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IRequestFilterBase, ServiceStack.Web.IHasRequestFilterAsync - { - public ServiceStack.ApplyTo ApplyTo { get => throw null; set => throw null; } - public virtual ServiceStack.Web.IRequestFilterBase Copy() => throw null; - public abstract System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto); - public int Priority { get => throw null; set => throw null; } - public System.Threading.Tasks.Task RequestFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public RequestFilterAsyncAttribute(ServiceStack.ApplyTo applyTo) => throw null; - public RequestFilterAsyncAttribute() => throw null; - } - - // Generated from `ServiceStack.RequestFilterAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class RequestFilterAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IRequestFilterBase, ServiceStack.Web.IHasRequestFilter - { - public ServiceStack.ApplyTo ApplyTo { get => throw null; set => throw null; } - public virtual ServiceStack.Web.IRequestFilterBase Copy() => throw null; - public abstract void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto); - public int Priority { get => throw null; set => throw null; } - public void RequestFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public RequestFilterAttribute(ServiceStack.ApplyTo applyTo) => throw null; - public RequestFilterAttribute() => throw null; - } - - // Generated from `ServiceStack.RequestFilterPriority` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum RequestFilterPriority - { - Authenticate, - RequiredPermission, - RequiredRole, - } - - // Generated from `ServiceStack.RequestInfoFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestInfoFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string Id { get => throw null; set => throw null; } - public ServiceStack.Host.IHttpHandler ProcessRequest(string httpMethod, string pathInfo, string filePath) => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - public RequestInfoFeature() => throw null; - } - - // Generated from `ServiceStack.RequestLogsFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestLogsFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string AtRestPath { get => throw null; set => throw null; } - public int? Capacity { get => throw null; set => throw null; } - public System.Func CurrentDateFn { get => throw null; set => throw null; } - public bool DefaultIgnoreFilter(object o) => throw null; - public bool EnableErrorTracking { get => throw null; set => throw null; } - public bool EnableRequestBodyTracking { get => throw null; set => throw null; } - public bool EnableResponseTracking { get => throw null; set => throw null; } - public bool EnableSessionTracking { get => throw null; set => throw null; } - public System.Type[] ExcludeRequestDtoTypes { get => throw null; set => throw null; } - public System.Type[] HideRequestBodyForRequestDtoTypes { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Func IgnoreFilter { get => throw null; set => throw null; } - public System.Collections.Generic.List IgnoreTypes { get => throw null; set => throw null; } - public bool LimitToServiceRequests { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public System.Action RequestLogFilter { get => throw null; set => throw null; } - public ServiceStack.Web.IRequestLogger RequestLogger { get => throw null; set => throw null; } - public RequestLogsFeature(int capacity) => throw null; - public RequestLogsFeature() => throw null; - public string[] RequiredRoles { get => throw null; set => throw null; } - public System.Func SkipLogging { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.RequestUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RequestUtils - { - public static System.Threading.Tasks.Task AssertAccessRoleAsync(ServiceStack.Web.IRequest req, string accessRole = default(string), string authSecret = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AssertAccessRoleOrDebugModeAsync(ServiceStack.Web.IRequest req, string accessRole = default(string), string authSecret = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.RequiredClaimAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequiredClaimAttribute : ServiceStack.AuthenticateAttribute - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.RequiredClaimAttribute other) => throw null; - public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public override int GetHashCode() => throw null; - public static bool HasClaim(ServiceStack.Web.IRequest req, string type, string value) => throw null; - public RequiredClaimAttribute(string type, string value) => throw null; - public RequiredClaimAttribute(ServiceStack.ApplyTo applyTo, string type, string value) => throw null; - public string Type { get => throw null; set => throw null; } - public string Value { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.RequiredPermissionAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequiredPermissionAttribute : ServiceStack.AuthenticateAttribute - { - public static void AssertRequiredPermissions(ServiceStack.Web.IRequest req, params string[] requiredPermissions) => throw null; - public static System.Threading.Tasks.Task AssertRequiredPermissionsAsync(ServiceStack.Web.IRequest req, string[] requiredPermissions, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.RequiredPermissionAttribute other) => throw null; - public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public override int GetHashCode() => throw null; - public static bool HasAllPermissions(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredPermissions) => throw null; - public bool HasAllPermissions(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public static System.Threading.Tasks.Task HasAllPermissionsAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredPermissions, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task HasAllPermissionsAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; - public static bool HasRequiredPermissions(ServiceStack.Web.IRequest req, string[] requiredPermissions) => throw null; - public static System.Threading.Tasks.Task HasRequiredPermissionsAsync(ServiceStack.Web.IRequest req, string[] requiredPermissions) => throw null; - public RequiredPermissionAttribute(params string[] permissions) => throw null; - public RequiredPermissionAttribute(ServiceStack.ApplyTo applyTo, params string[] permissions) => throw null; - public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.RequiredRoleAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequiredRoleAttribute : ServiceStack.AuthenticateAttribute - { - public static System.Threading.Tasks.Task AssertRequiredRoleAsync(ServiceStack.Web.IRequest req, string requiredRole, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void AssertRequiredRoles(ServiceStack.Web.IRequest req, params string[] requiredRoles) => throw null; - public static System.Threading.Tasks.Task AssertRequiredRolesAsync(ServiceStack.Web.IRequest req, string[] requiredRoles, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.RequiredRoleAttribute other) => throw null; - public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public override int GetHashCode() => throw null; - public static bool HasAllRoles(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredRoles) => throw null; - public bool HasAllRoles(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public static System.Threading.Tasks.Task HasAllRolesAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.ICollection requiredRoles, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task HasAllRolesAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; - public static bool HasRequiredRoles(ServiceStack.Web.IRequest req, string[] requiredRoles) => throw null; - public static System.Threading.Tasks.Task HasRequiredRolesAsync(ServiceStack.Web.IRequest req, string[] requiredRoles) => throw null; - public RequiredRoleAttribute(params string[] roles) => throw null; - public RequiredRoleAttribute(ServiceStack.ApplyTo applyTo, params string[] roles) => throw null; - public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.RequiresAnyPermissionAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequiresAnyPermissionAttribute : ServiceStack.AuthenticateAttribute - { - public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public virtual bool HasAnyPermissions(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public bool HasAnyPermissions(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public virtual System.Threading.Tasks.Task HasAnyPermissionsAsync(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; - public System.Threading.Tasks.Task HasAnyPermissionsAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; - public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } - public RequiresAnyPermissionAttribute(params string[] permissions) => throw null; - public RequiresAnyPermissionAttribute(ServiceStack.ApplyTo applyTo, params string[] permissions) => throw null; - } - - // Generated from `ServiceStack.RequiresAnyRoleAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequiresAnyRoleAttribute : ServiceStack.AuthenticateAttribute - { - public static void AssertRequiredRoles(ServiceStack.Web.IRequest req, params string[] requiredRoles) => throw null; - public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public virtual bool HasAnyRoles(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public virtual bool HasAnyRoles(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public virtual System.Threading.Tasks.Task HasAnyRolesAsync(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; - public virtual System.Threading.Tasks.Task HasAnyRolesAsync(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; - public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } - public RequiresAnyRoleAttribute(params string[] roles) => throw null; - public RequiresAnyRoleAttribute(ServiceStack.ApplyTo applyTo, params string[] roles) => throw null; - } - - // Generated from `ServiceStack.RequiresSchemaProviders` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RequiresSchemaProviders - { - public static void InitSchema(this ServiceStack.Caching.ICacheClient cache) => throw null; - public static void InitSchema(this ServiceStack.Auth.IAuthRepositoryAsync authRepo) => throw null; - public static void InitSchema(this ServiceStack.Auth.IAuthRepository authRepo) => throw null; - } - - // Generated from `ServiceStack.ResponseFilterAsyncAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ResponseFilterAsyncAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IResponseFilterBase, ServiceStack.Web.IHasResponseFilterAsync - { - public ServiceStack.ApplyTo ApplyTo { get => throw null; set => throw null; } - public virtual ServiceStack.Web.IResponseFilterBase Copy() => throw null; - public abstract System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object responseDto); - public int Priority { get => throw null; set => throw null; } - public System.Threading.Tasks.Task ResponseFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; - public ResponseFilterAsyncAttribute(ServiceStack.ApplyTo applyTo) => throw null; - public ResponseFilterAsyncAttribute() => throw null; - } - - // Generated from `ServiceStack.ResponseFilterAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ResponseFilterAttribute : ServiceStack.AttributeBase, ServiceStack.Web.IResponseFilterBase, ServiceStack.Web.IHasResponseFilter - { - public ServiceStack.ApplyTo ApplyTo { get => throw null; set => throw null; } - public virtual ServiceStack.Web.IResponseFilterBase Copy() => throw null; - public abstract void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object responseDto); - public int Priority { get => throw null; set => throw null; } - public void ResponseFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; - public ResponseFilterAttribute(ServiceStack.ApplyTo applyTo) => throw null; - public ResponseFilterAttribute() => throw null; - } - - // Generated from `ServiceStack.ReturnExceptionsInJsonAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ReturnExceptionsInJsonAttribute : ServiceStack.ResponseFilterAttribute - { - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object responseDto) => throw null; - public ReturnExceptionsInJsonAttribute() => throw null; - } - - // Generated from `ServiceStack.RpcGateway` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RpcGateway - { - public static ServiceStack.HttpError CreateError(ServiceStack.Web.IResponse res, string errorCode = default(string), string errorMessage = default(string)) => throw null; - public static TResponse CreateErrorResponse(ServiceStack.Web.IResponse res, System.Exception ex) => throw null; - public virtual System.Threading.Tasks.Task ExecuteAsync(object requestDto, ServiceStack.Web.IRequest req) => throw null; - public virtual System.Threading.Tasks.Task ExecuteAsync(ServiceStack.IReturn requestDto, ServiceStack.Web.IRequest req) => throw null; - public static TResponse GetResponse(ServiceStack.Web.IResponse res, object ret) => throw null; - public RpcGateway(ServiceStack.ServiceStackHost appHost, ServiceStack.Web.IServiceExecutor executor) => throw null; - public RpcGateway(ServiceStack.ServiceStackHost appHost) => throw null; - } - - // Generated from `ServiceStack.ScriptAdmin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptAdmin : ServiceStack.IReturn, ServiceStack.IReturn - { - public string Actions { get => throw null; set => throw null; } - public ScriptAdmin() => throw null; - } - - // Generated from `ServiceStack.ScriptAdminResponse` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptAdminResponse - { - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public string[] Results { get => throw null; set => throw null; } - public ScriptAdminResponse() => throw null; - } - - // Generated from `ServiceStack.ScriptAdminService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptAdminService : ServiceStack.Service - { - public static string[] Actions; - public System.Threading.Tasks.Task Any(ServiceStack.ScriptAdmin request) => throw null; - public static string[] Routes { get => throw null; set => throw null; } - public ScriptAdminService() => throw null; - } - - // Generated from `ServiceStack.ScriptConditionValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptConditionValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IPredicateValidator - { - public ServiceStack.Script.SharpPage Code { get => throw null; } - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - protected override System.Threading.Tasks.Task IsValidAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; - public ScriptConditionValidator(ServiceStack.Script.SharpPage code) => throw null; - public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; - } - - // Generated from `ServiceStack.ScriptValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScriptValidator : ServiceStack.TypeValidator - { - public ServiceStack.Script.SharpPage Code { get => throw null; } - public string Condition { get => throw null; } - public override System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; - public ScriptValidator(ServiceStack.Script.SharpPage code, string condition) : base(default(string), default(string), default(int?)) => throw null; - } - - // Generated from `ServiceStack.Selector` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Selector - { - public static string Id() => throw null; - public static string Id(System.Type type) => throw null; - } - - // Generated from `ServiceStack.ServerEventExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServerEventExtensions - { - public static ServiceStack.SubscriptionInfo GetInfo(this ServiceStack.IEventSubscription sub) => throw null; - public static bool HasAnyChannel(this ServiceStack.IEventSubscription sub, string[] channels) => throw null; - public static bool HasChannel(this ServiceStack.IEventSubscription sub, string channel) => throw null; - public static void NotifyAll(this ServiceStack.IServerEvents server, object message) => throw null; - public static System.Threading.Tasks.Task NotifyAllAsync(this ServiceStack.IServerEvents server, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void NotifyChannel(this ServiceStack.IServerEvents server, string channel, object message) => throw null; - public static System.Threading.Tasks.Task NotifyChannelAsync(this ServiceStack.IServerEvents server, string channel, object message, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void NotifySession(this ServiceStack.IServerEvents server, string sspid, object message, string channel = default(string)) => throw null; - public static System.Threading.Tasks.Task NotifySessionAsync(this ServiceStack.IServerEvents server, string sspid, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void NotifySubscription(this ServiceStack.IServerEvents server, string subscriptionId, object message, string channel = default(string)) => throw null; - public static System.Threading.Tasks.Task NotifySubscriptionAsync(this ServiceStack.IServerEvents server, string subscriptionId, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void NotifyUserId(this ServiceStack.IServerEvents server, string userId, object message, string channel = default(string)) => throw null; - public static System.Threading.Tasks.Task NotifyUserIdAsync(this ServiceStack.IServerEvents server, string userId, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void NotifyUserName(this ServiceStack.IServerEvents server, string userName, object message, string channel = default(string)) => throw null; - public static System.Threading.Tasks.Task NotifyUserNameAsync(this ServiceStack.IServerEvents server, string userName, object message, string channel = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.ServerEventsFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventsFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public System.TimeSpan HeartbeatInterval { get => throw null; set => throw null; } - public string HeartbeatPath { get => throw null; set => throw null; } - public System.TimeSpan HouseKeepingInterval { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.TimeSpan IdleTimeout { get => throw null; set => throw null; } - public bool LimitToAuthenticatedUsers { get => throw null; set => throw null; } - public bool NotifyChannelOfSubscriptions { get => throw null; set => throw null; } - public System.Action> OnConnect { get => throw null; set => throw null; } - public System.Action OnCreated { get => throw null; set => throw null; } - public System.Action OnDispose { get => throw null; set => throw null; } - public System.Action OnError { get => throw null; set => throw null; } - public System.Action OnHeartbeatInit { get => throw null; set => throw null; } - public System.Action OnHungConnection { get => throw null; set => throw null; } - public System.Action OnInit { get => throw null; set => throw null; } - public System.Action OnPublish { get => throw null; set => throw null; } - public System.Func OnPublishAsync { get => throw null; set => throw null; } - public System.Action OnSubscribe { get => throw null; set => throw null; } - public System.Func OnSubscribeAsync { get => throw null; set => throw null; } - public System.Action OnUnsubscribe { get => throw null; set => throw null; } - public System.Func OnUnsubscribeAsync { get => throw null; set => throw null; } - public System.Func OnUpdateAsync { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public System.Func Serialize { get => throw null; set => throw null; } - public ServerEventsFeature() => throw null; - public string StreamPath { get => throw null; set => throw null; } - public string SubscribersPath { get => throw null; set => throw null; } - public string UnRegisterPath { get => throw null; set => throw null; } - public bool ValidateUserAddress { get => throw null; set => throw null; } - public System.Action WriteEvent { get => throw null; set => throw null; } - public System.Func WriteEventAsync { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ServerEventsHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventsHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string operationName) => throw null; - public static int RemoveExpiredSubscriptionsEvery { get => throw null; } - public override bool RunAsAsync() => throw null; - public ServerEventsHandler() => throw null; - } - - // Generated from `ServiceStack.ServerEventsHeartbeatHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventsHeartbeatHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string operationName) => throw null; - public override bool RunAsAsync() => throw null; - public ServerEventsHeartbeatHandler() => throw null; - } - - // Generated from `ServiceStack.ServerEventsSubscribersService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventsSubscribersService : ServiceStack.Service - { - public object Any(ServiceStack.GetEventSubscribers request) => throw null; - public ServiceStack.IServerEvents ServerEvents { get => throw null; set => throw null; } - public ServerEventsSubscribersService() => throw null; - } - - // Generated from `ServiceStack.ServerEventsUnRegisterService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServerEventsUnRegisterService : ServiceStack.Service - { - public System.Threading.Tasks.Task Any(ServiceStack.UpdateEventSubscriber request) => throw null; - public System.Threading.Tasks.Task Any(ServiceStack.UnRegisterEventSubscriber request) => throw null; - public ServiceStack.IServerEvents ServerEvents { get => throw null; set => throw null; } - public ServerEventsUnRegisterService() => throw null; - } - - // Generated from `ServiceStack.Service` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Service : System.IDisposable, System.IAsyncDisposable, ServiceStack.Web.IRequiresRequest, ServiceStack.IServiceFilters, ServiceStack.IServiceErrorFilter, ServiceStack.IServiceBeforeFilter, ServiceStack.IServiceBase, ServiceStack.IServiceAfterFilter, ServiceStack.IService, ServiceStack.Configuration.IResolver - { - public T AssertPlugin() where T : class, ServiceStack.IPlugin => throw null; - public virtual ServiceStack.Auth.IAuthRepository AuthRepository { get => throw null; } - public virtual ServiceStack.Auth.IAuthRepositoryAsync AuthRepositoryAsync { get => throw null; } - public virtual ServiceStack.Caching.ICacheClient Cache { get => throw null; } - public virtual ServiceStack.Caching.ICacheClientAsync CacheAsync { get => throw null; } - public virtual System.Data.IDbConnection Db { get => throw null; } - public virtual void Dispose() => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public virtual ServiceStack.IServiceGateway Gateway { get => throw null; } - public T GetPlugin() where T : class, ServiceStack.IPlugin => throw null; - public virtual System.Threading.Tasks.ValueTask GetRedisAsync() => throw null; - public virtual ServiceStack.Configuration.IResolver GetResolver() => throw null; - public virtual ServiceStack.Auth.IAuthSession GetSession(bool reload = default(bool)) => throw null; - public virtual System.Threading.Tasks.Task GetSessionAsync(bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static ServiceStack.Configuration.IResolver GlobalResolver { get => throw null; set => throw null; } - public virtual bool IsAuthenticated { get => throw null; } - public virtual ServiceStack.Caching.MemoryCacheClient LocalCache { get => throw null; } - public virtual ServiceStack.Messaging.IMessageProducer MessageProducer { get => throw null; } - public virtual object OnAfterExecute(object response) => throw null; - public virtual void OnBeforeExecute(object requestDto) => throw null; - public virtual System.Threading.Tasks.Task OnExceptionAsync(object requestDto, System.Exception ex) => throw null; - public virtual void PublishMessage(T message) => throw null; - public virtual ServiceStack.Redis.IRedisClient Redis { get => throw null; } - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public virtual T ResolveService() => throw null; - protected virtual ServiceStack.Web.IResponse Response { get => throw null; } - public Service() => throw null; - protected virtual TUserSession SessionAs() => throw null; - protected virtual System.Threading.Tasks.Task SessionAsAsync() => throw null; - public virtual ServiceStack.Caching.ISession SessionBag { get => throw null; } - public virtual ServiceStack.Caching.ISessionAsync SessionBagAsync { get => throw null; } - public virtual ServiceStack.Caching.ISessionFactory SessionFactory { get => throw null; } - public virtual ServiceStack.Service SetResolver(ServiceStack.Configuration.IResolver resolver) => throw null; - public virtual T TryResolve() => throw null; - public ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get => throw null; } - public ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; } - } - - // Generated from `ServiceStack.ServiceExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceExtensions - { - public static ServiceStack.Web.IHttpResult AuthenticationRequired(this ServiceStack.IServiceBase service) => throw null; - public static void CacheSet(this ServiceStack.Caching.ICacheClient cache, string key, T value, System.TimeSpan? expiresIn) => throw null; - public static System.Threading.Tasks.Task CacheSetAsync(this ServiceStack.Caching.ICacheClientAsync cache, string key, T value, System.TimeSpan? expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static ServiceStack.Caching.ICacheClient GetCacheClient(this ServiceStack.Web.IRequest request) => throw null; - public static ServiceStack.Caching.ICacheClientAsync GetCacheClientAsync(this ServiceStack.Web.IRequest request) => throw null; - public static ServiceStack.Caching.ICacheClient GetMemoryCacheClient(this ServiceStack.Web.IRequest request) => throw null; - public static ServiceStack.Auth.IAuthSession GetSession(this ServiceStack.Web.IRequest httpReq, bool reload = default(bool)) => throw null; - public static ServiceStack.Auth.IAuthSession GetSession(this ServiceStack.IServiceBase service, bool reload = default(bool)) => throw null; - public static System.Threading.Tasks.Task GetSessionAsync(this ServiceStack.Web.IRequest httpReq, bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetSessionAsync(this ServiceStack.IServiceBase service, bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GetSessionId(this ServiceStack.IServiceBase service) => throw null; - public static System.TimeSpan? GetSessionTimeToLive(this ServiceStack.Web.IRequest httpReq) => throw null; - public static System.TimeSpan? GetSessionTimeToLive(this ServiceStack.Caching.ICacheClient cache, string sessionId) => throw null; - public static System.Threading.Tasks.Task GetSessionTimeToLiveAsync(this ServiceStack.Web.IRequest httpReq, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetSessionTimeToLiveAsync(this ServiceStack.Caching.ICacheClientAsync cache, string sessionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static bool IsAuthenticated(this ServiceStack.Web.IRequest req) => throw null; - public static System.Threading.Tasks.Task IsAuthenticatedAsync(this ServiceStack.Web.IRequest req) => throw null; - public static ServiceStack.Logging.ILog Log; - public static ServiceStack.Web.IHttpResult Redirect(this ServiceStack.IServiceBase service, string url, string message) => throw null; - public static ServiceStack.Web.IHttpResult Redirect(this ServiceStack.IServiceBase service, string url) => throw null; - public static void RemoveSession(this ServiceStack.Web.IRequest httpReq, string sessionId) => throw null; - public static void RemoveSession(this ServiceStack.Web.IRequest httpReq) => throw null; - public static void RemoveSession(this ServiceStack.Service service) => throw null; - public static void RemoveSession(this ServiceStack.IServiceBase service) => throw null; - public static System.Threading.Tasks.Task RemoveSessionAsync(this ServiceStack.Web.IRequest httpReq, string sessionId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task RemoveSessionAsync(this ServiceStack.Web.IRequest httpReq, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task RemoveSessionAsync(this ServiceStack.Service service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task RemoveSessionAsync(this ServiceStack.IServiceBase service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static object RunAction(this TService service, TRequest request, System.Func invokeAction, ServiceStack.Web.IRequest requestContext = default(ServiceStack.Web.IRequest)) where TService : ServiceStack.IService => throw null; - public static void SaveSession(this ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; - public static void SaveSession(this ServiceStack.IServiceBase service, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; - public static System.Threading.Tasks.Task SaveSessionAsync(this ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task SaveSessionAsync(this ServiceStack.IServiceBase service, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static TUserSession SessionAs(this ServiceStack.Web.IRequest req) => throw null; - public static System.Threading.Tasks.Task SessionAsAsync(this ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.ServiceGatewayFactoryBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ServiceGatewayFactoryBase : ServiceStack.Web.IServiceGatewayFactory, ServiceStack.IServiceGatewayAsync, ServiceStack.IServiceGateway - { - public abstract ServiceStack.IServiceGateway GetGateway(System.Type requestType); - protected virtual ServiceStack.IServiceGatewayAsync GetGatewayAsync(System.Type requestType) => throw null; - public virtual ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest request) => throw null; - public void Publish(object requestDto) => throw null; - public void PublishAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; - public System.Threading.Tasks.Task PublishAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task PublishAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public TResponse Send(object requestDto) => throw null; - public System.Collections.Generic.List SendAll(System.Collections.Generic.IEnumerable requestDtos) => throw null; - public System.Threading.Tasks.Task> SendAllAsync(System.Collections.Generic.IEnumerable requestDtos, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SendAsync(object requestDto, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected ServiceGatewayFactoryBase() => throw null; - protected ServiceStack.InProcessServiceGateway localGateway; - } - - // Generated from `ServiceStack.ServiceResponseException` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceResponseException : System.Exception - { - public string ErrorCode { get => throw null; set => throw null; } - public ServiceResponseException(string message) => throw null; - public ServiceResponseException(string errorCode, string errorMessage, string serviceStackTrace) => throw null; - public ServiceResponseException(string errorCode, string errorMessage) => throw null; - public ServiceResponseException(ServiceStack.ResponseStatus responseStatus) => throw null; - public ServiceResponseException() => throw null; - public string ServiceStackTrace { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.ServiceRoutesExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceRoutesExtensions - { - public static ServiceStack.Web.IServiceRoutes Add(this ServiceStack.Web.IServiceRoutes routes, string restPath, ServiceStack.ApplyTo verbs) => throw null; - public static ServiceStack.Web.IServiceRoutes Add(this ServiceStack.Web.IServiceRoutes serviceRoutes, string restPath, ServiceStack.ApplyTo verbs, params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; - public static ServiceStack.Web.IServiceRoutes Add(this ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string restPath, ServiceStack.ApplyTo verbs) => throw null; - public static ServiceStack.Web.IServiceRoutes AddFromAssembly(this ServiceStack.Web.IServiceRoutes routes, params System.Reflection.Assembly[] assembliesWithServices) => throw null; - public static bool IsSubclassOfRawGeneric(this System.Type toCheck, System.Type generic) => throw null; - } - - // Generated from `ServiceStack.ServiceScopeExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceScopeExtensions - { - public static Microsoft.Extensions.DependencyInjection.IServiceScope StartScope(this ServiceStack.Web.IRequest request) => throw null; - } - - // Generated from `ServiceStack.ServiceStackCodePage` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ServiceStackCodePage : ServiceStack.Script.SharpCodePage, ServiceStack.Web.IRequiresRequest - { - public virtual ServiceStack.Auth.IAuthRepository AuthRepository { get => throw null; } - public virtual ServiceStack.Caching.ICacheClient Cache { get => throw null; } - public virtual System.Data.IDbConnection Db { get => throw null; } - public override void Dispose() => throw null; - public virtual ServiceStack.IServiceGateway Gateway { get => throw null; } - public virtual ServiceStack.Configuration.IResolver GetResolver() => throw null; - public virtual ServiceStack.Auth.IAuthSession GetSession(bool reload = default(bool)) => throw null; - public virtual bool IsAuthenticated { get => throw null; } - public virtual ServiceStack.Caching.MemoryCacheClient LocalCache { get => throw null; } - public virtual ServiceStack.Messaging.IMessageProducer MessageProducer { get => throw null; } - public virtual void PublishMessage(T message) => throw null; - public virtual ServiceStack.Redis.IRedisClient Redis { get => throw null; } - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public virtual T ResolveService() => throw null; - protected virtual ServiceStack.Web.IResponse Response { get => throw null; } - protected ServiceStackCodePage() : base(default(string)) => throw null; - protected virtual TUserSession SessionAs() => throw null; - public virtual ServiceStack.Caching.ISession SessionBag { get => throw null; } - public virtual ServiceStack.Caching.ISessionFactory SessionFactory { get => throw null; } - public virtual T TryResolve() => throw null; - public ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get => throw null; } - public ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; } - } - - // Generated from `ServiceStack.ServiceStackHost` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ServiceStackHost : System.IDisposable, ServiceStack.IAppHost, ServiceStack.Configuration.IResolver, Funq.IHasContainer, Funq.IFunqlet - { - public System.Collections.Generic.List AddVirtualFileSources { get => throw null; set => throw null; } - public System.Collections.Generic.List> AfterConfigure { get => throw null; set => throw null; } - public System.DateTime? AfterInitAt { get => throw null; set => throw null; } - public System.Collections.Generic.List> AfterInitCallbacks { get => throw null; set => throw null; } - protected virtual bool AllowSetCookie(ServiceStack.Web.IRequest req, string cookieName) => throw null; - public ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; set => throw null; } - public bool ApplyCustomHandlerRequestFilters(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public bool ApplyMessageRequestFilters(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public bool ApplyMessageResponseFilters(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; - public virtual System.Threading.Tasks.Task ApplyPreAuthenticateFiltersAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public bool ApplyPreRequestFilters(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public System.Threading.Tasks.Task ApplyRequestConvertersAsync(ServiceStack.Web.IRequest req, object requestDto) => throw null; - public bool ApplyRequestFilters(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public System.Threading.Tasks.Task ApplyRequestFiltersAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - protected System.Threading.Tasks.Task ApplyRequestFiltersSingleAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public System.Threading.Tasks.Task ApplyResponseConvertersAsync(ServiceStack.Web.IRequest req, object responseDto) => throw null; - public bool ApplyResponseFilters(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; - public System.Threading.Tasks.Task ApplyResponseFiltersAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; - protected System.Threading.Tasks.Task ApplyResponseFiltersSingleAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object response) => throw null; - public void AssertContentType(string contentType) => throw null; - public void AssertFeatures(ServiceStack.Feature usesFeatures) => throw null; - public System.Collections.Generic.List AsyncErrors { get => throw null; set => throw null; } - public System.Collections.Generic.List> BeforeConfigure { get => throw null; set => throw null; } - public System.Collections.Generic.List CatchAllHandlers { get => throw null; set => throw null; } - public ServiceStack.HostConfig Config { get => throw null; set => throw null; } - public abstract void Configure(Funq.Container container); - public virtual Funq.Container Container { get => throw null; set => throw null; } - public ServiceStack.IO.IVirtualDirectory ContentRootDirectory { get => throw null; } - public ServiceStack.Web.IContentTypes ContentTypes { get => throw null; set => throw null; } - public virtual void CookieOptionsFilter(System.Net.Cookie cookie, Microsoft.AspNetCore.Http.CookieOptions cookieOptions) => throw null; - public virtual ServiceStack.ErrorResponse CreateErrorResponse(System.Exception ex, object request = default(object)) => throw null; - public virtual ServiceStack.ResponseStatus CreateResponseStatus(System.Exception ex, object request = default(object)) => throw null; - protected virtual ServiceStack.Host.ServiceController CreateServiceController(params System.Type[] serviceTypes) => throw null; - protected virtual ServiceStack.Host.ServiceController CreateServiceController(params System.Reflection.Assembly[] assembliesWithServices) => throw null; - public virtual ServiceStack.Web.IServiceRunner CreateServiceRunner(ServiceStack.Host.ActionContext actionContext) => throw null; - public System.Collections.Generic.Dictionary CustomErrorHttpHandlers { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptContext DefaultScriptContext { get => throw null; set => throw null; } - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public virtual object EvalExpression(string expr) => throw null; - public virtual object EvalExpressionCached(string expr) => throw null; - public virtual object EvalScript(ServiceStack.Script.PageResult pageResult, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public virtual System.Threading.Tasks.Task EvalScriptAsync(ServiceStack.Script.PageResult pageResult, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public virtual object EvalScriptValue(ServiceStack.IScriptValue scriptValue, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public virtual System.Threading.Tasks.Task EvalScriptValueAsync(ServiceStack.IScriptValue scriptValue, ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest), System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public System.Collections.Generic.HashSet ExcludeAutoRegisteringServiceTypes { get => throw null; set => throw null; } - public void ExecTypedFilters(System.Collections.Generic.Dictionary typedFilters, ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto) => throw null; - public System.Threading.Tasks.Task ExecTypedFiltersAsync(System.Collections.Generic.Dictionary typedFilters, ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto) => throw null; - public virtual object ExecuteMessage(ServiceStack.Messaging.IMessage mqMessage) => throw null; - public virtual object ExecuteMessage(ServiceStack.Messaging.IMessage dto, ServiceStack.Web.IRequest req) => throw null; - public System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage mqMessage, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage mqMessage, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual object ExecuteService(object requestDto, ServiceStack.Web.IRequest req) => throw null; - public virtual object ExecuteService(object requestDto, ServiceStack.RequestAttributes requestAttributes) => throw null; - public virtual object ExecuteService(object requestDto) => throw null; - public virtual System.Threading.Tasks.Task ExecuteServiceAsync(object requestDto, ServiceStack.Web.IRequest req) => throw null; - public System.Collections.Generic.List FallbackHandlers { get => throw null; set => throw null; } - public System.Collections.Generic.List GatewayExceptionHandlers { get => throw null; set => throw null; } - public System.Collections.Generic.List GatewayExceptionHandlersAsync { get => throw null; set => throw null; } - public System.Collections.Generic.List> GatewayRequestFilters { get => throw null; set => throw null; } - public System.Collections.Generic.List> GatewayRequestFiltersAsync { get => throw null; set => throw null; } - public System.Collections.Generic.List> GatewayResponseFilters { get => throw null; set => throw null; } - public System.Collections.Generic.List> GatewayResponseFiltersAsync { get => throw null; set => throw null; } - public virtual string GenerateWsdl(ServiceStack.Metadata.WsdlTemplateBase wsdlTemplate) => throw null; - public virtual ServiceStack.Auth.IAuthRepository GetAuthRepository(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual ServiceStack.Auth.IAuthRepositoryAsync GetAuthRepositoryAsync(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual string GetAuthorization(ServiceStack.Web.IRequest req) => throw null; - public virtual string GetBaseUrl(ServiceStack.Web.IRequest httpReq) => throw null; - public virtual string GetBearerToken(ServiceStack.Web.IRequest req) => throw null; - public virtual ServiceStack.Caching.ICacheClient GetCacheClient(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual ServiceStack.Caching.ICacheClientAsync GetCacheClientAsync(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual ServiceStack.Web.ICookies GetCookies(ServiceStack.Web.IHttpResponse res) => throw null; - public ServiceStack.Host.Handlers.IServiceStackHandler GetCustomErrorHandler(int errorStatusCode) => throw null; - public ServiceStack.Host.Handlers.IServiceStackHandler GetCustomErrorHandler(System.Net.HttpStatusCode errorStatus) => throw null; - public ServiceStack.Host.IHttpHandler GetCustomErrorHttpHandler(System.Net.HttpStatusCode errorStatus) => throw null; - public virtual System.Data.IDbConnection GetDbConnection(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual System.TimeSpan GetDefaultSessionExpiry(ServiceStack.Web.IRequest req) => throw null; - public virtual string GetJwtToken(ServiceStack.Web.IRequest req) => throw null; - public virtual ServiceStack.Caching.MemoryCacheClient GetMemoryCacheClient(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual ServiceStack.Messaging.IMessageProducer GetMessageProducer(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual System.Collections.Generic.List GetMetadataPluginIds() => throw null; - public ServiceStack.Host.Handlers.IServiceStackHandler GetNotFoundHandler() => throw null; - public T GetPlugin() where T : class, ServiceStack.IPlugin => throw null; - public virtual ServiceStack.Redis.IRedisClient GetRedisClient(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual System.Threading.Tasks.ValueTask GetRedisClientAsync(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual ServiceStack.RouteAttribute[] GetRouteAttributes(System.Type requestType) => throw null; - public virtual T GetRuntimeConfig(ServiceStack.Web.IRequest req, string name, T defaultValue) => throw null; - public virtual ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest req) => throw null; - public virtual ServiceStack.IServiceGateway GetServiceGateway() => throw null; - public virtual ServiceStack.MetadataTypesConfig GetTypesConfigForMetadata(ServiceStack.Web.IRequest req) => throw null; - public virtual System.Collections.Generic.List GetVirtualFileSources() => throw null; - public virtual string GetWebRootPath() => throw null; - public ServiceStack.Host.Handlers.IServiceStackHandler GlobalHtmlErrorHttpHandler { get => throw null; set => throw null; } - public System.Collections.Generic.List> GlobalMessageRequestFilters { get => throw null; } - public System.Collections.Generic.List> GlobalMessageRequestFiltersAsync { get => throw null; } - public System.Collections.Generic.List> GlobalMessageResponseFilters { get => throw null; } - public System.Collections.Generic.List> GlobalMessageResponseFiltersAsync { get => throw null; } - public System.Collections.Generic.List> GlobalRequestFilters { get => throw null; set => throw null; } - public System.Collections.Generic.List> GlobalRequestFiltersAsync { get => throw null; set => throw null; } - public System.Collections.Generic.List> GlobalResponseFilters { get => throw null; set => throw null; } - public System.Collections.Generic.List> GlobalResponseFiltersAsync { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary GlobalTypedMessageRequestFilters { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary GlobalTypedMessageResponseFilters { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary GlobalTypedRequestFilters { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary GlobalTypedRequestFiltersAsync { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary GlobalTypedResponseFilters { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary GlobalTypedResponseFiltersAsync { get => throw null; set => throw null; } - public void HandleErrorResponse(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, System.Net.HttpStatusCode errorStatus, string errorStatusDescription = default(string)) => throw null; - public virtual System.Threading.Tasks.Task HandleResponseException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; - public virtual System.Threading.Tasks.Task HandleShortCircuitedErrors(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - protected virtual System.Threading.Tasks.Task HandleUncaughtException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; - public bool HasAccessToMetadata(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public bool HasFeature(ServiceStack.Feature feature) => throw null; - public bool HasPlugin() where T : class, ServiceStack.IPlugin => throw null; - public bool HasStarted { get => throw null; } - public bool HasValidAuthSecret(ServiceStack.Web.IRequest httpReq) => throw null; - public virtual ServiceStack.ServiceStackHost Init() => throw null; - public System.Collections.Generic.List InsertVirtualFileSources { get => throw null; set => throw null; } - public static ServiceStack.ServiceStackHost Instance { get => throw null; set => throw null; } - public bool IsDebugLogEnabled { get => throw null; } - public static bool IsReady() => throw null; - public virtual void LoadPlugin(params ServiceStack.IPlugin[] plugins) => throw null; - public virtual string MapProjectPath(string relativePath) => throw null; - public ServiceStack.Host.ServiceMetadata Metadata { get => throw null; set => throw null; } - public ServiceStack.Metadata.MetadataPagesConfig MetadataPagesConfig { get => throw null; } - public static string NormalizePathInfo(string pathInfo, string mode) => throw null; - public virtual void OnAfterConfigChanged() => throw null; - public virtual object OnAfterExecute(ServiceStack.Web.IRequest req, object requestDto, object response) => throw null; - public virtual void OnAfterInit() => throw null; - public virtual void OnApplicationStopping() => throw null; - public virtual void OnBeforeInit() => throw null; - public virtual void OnConfigLoad() => throw null; - public System.Collections.Generic.List> OnDisposeCallbacks { get => throw null; set => throw null; } - public virtual void OnEndRequest(ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; - public System.Collections.Generic.List> OnEndRequestCallbacks { get => throw null; set => throw null; } - public virtual void OnExceptionTypeFilter(System.Exception ex, ServiceStack.ResponseStatus responseStatus) => throw null; - public virtual System.Threading.Tasks.Task OnGatewayException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; - public virtual void OnLogError(System.Type type, string message, System.Exception innerEx = default(System.Exception)) => throw null; - public virtual object OnPostExecuteServiceFilter(ServiceStack.IService service, object response, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public virtual object OnPreExecuteServiceFilter(ServiceStack.IService service, object request, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public virtual void OnSaveSession(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?)) => throw null; - public virtual System.Threading.Tasks.Task OnSaveSessionAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.TimeSpan? expiresIn = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task OnServiceException(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex) => throw null; - public virtual ServiceStack.Auth.IAuthSession OnSessionFilter(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, string withSessionId) => throw null; - public virtual void OnStartupException(System.Exception ex) => throw null; - public virtual System.Threading.Tasks.Task OnUncaughtException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; - public virtual string PathBase { get => throw null; set => throw null; } - public System.Collections.Generic.List Plugins { get => throw null; set => throw null; } - public System.Collections.Generic.List PluginsLoaded { get => throw null; set => throw null; } - protected void PopulateArrayFilters() => throw null; - public System.Collections.Generic.List> PreRequestFilters { get => throw null; set => throw null; } - public virtual void PublishMessage(ServiceStack.Messaging.IMessageProducer messageProducer, T message) => throw null; - public System.Collections.Generic.List> RawHttpHandlers { get => throw null; set => throw null; } - public System.DateTime? ReadyAt { get => throw null; set => throw null; } - public virtual void Register(T instance) => throw null; - public virtual void RegisterAs() where T : TAs => throw null; - protected virtual void RegisterLicenseKey(string licenseKeyText) => throw null; - public virtual void RegisterService(params string[] atRestPaths) where T : ServiceStack.IService => throw null; - public virtual void RegisterService(System.Type serviceType, params string[] atRestPaths) => throw null; - public void RegisterServicesInAssembly(System.Reflection.Assembly assembly) => throw null; - public void RegisterTypedMessageRequestFilter(System.Action filterFn) => throw null; - public void RegisterTypedMessageResponseFilter(System.Action filterFn) => throw null; - public void RegisterTypedRequestFilter(System.Func> filter) => throw null; - public void RegisterTypedRequestFilter(System.Action filterFn) => throw null; - public void RegisterTypedRequestFilterAsync(System.Func filterFn) => throw null; - public void RegisterTypedRequestFilterAsync(System.Func> filter) => throw null; - public void RegisterTypedResponseFilter(System.Func> filter) => throw null; - public void RegisterTypedResponseFilter(System.Action filterFn) => throw null; - public void RegisterTypedResponseFilterAsync(System.Func filterFn) => throw null; - public void RegisterTypedResponseFilterAsync(System.Func> filter) => throw null; - public virtual void Release(object instance) => throw null; - public System.Collections.Generic.Dictionary> RequestBinders { get => throw null; } - public System.Collections.Generic.List>> RequestConverters { get => throw null; set => throw null; } - public virtual T Resolve() => throw null; - public virtual string ResolveAbsoluteUrl(string virtualPath, ServiceStack.Web.IRequest httpReq) => throw null; - public virtual string ResolveLocalizedString(string text, ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; - public virtual string ResolveLocalizedStringFormat(string text, object[] args, ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; - public virtual string ResolvePathInfo(ServiceStack.Web.IRequest request, string originalPathInfo) => throw null; - public virtual string ResolvePhysicalPath(string virtualPath, ServiceStack.Web.IRequest httpReq) => throw null; - public System.Collections.Generic.List>> ResponseConverters { get => throw null; set => throw null; } - public System.Collections.Generic.List RestPaths { get => throw null; set => throw null; } - public virtual ServiceStack.Host.IHttpHandler ReturnRedirectHandler(ServiceStack.Web.IHttpRequest httpReq) => throw null; - public virtual ServiceStack.Host.IHttpHandler ReturnRequestInfoHandler(ServiceStack.Web.IHttpRequest httpReq) => throw null; - public ServiceStack.IO.IVirtualDirectory RootDirectory { get => throw null; } - public ServiceStack.Web.IServiceRoutes Routes { get => throw null; set => throw null; } - public ServiceStack.RpcGateway RpcGateway { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptContext ScriptContext { get => throw null; } - public System.Collections.Generic.List ServiceAssemblies { get => throw null; set => throw null; } - public ServiceStack.Host.ServiceController ServiceController { get => throw null; set => throw null; } - public System.Collections.Generic.List ServiceExceptionHandlers { get => throw null; set => throw null; } - public System.Collections.Generic.List ServiceExceptionHandlersAsync { get => throw null; set => throw null; } - public string ServiceName { get => throw null; set => throw null; } - protected ServiceStackHost(string serviceName, params System.Reflection.Assembly[] assembliesWithServices) => throw null; - public virtual void SetConfig(ServiceStack.HostConfig config) => throw null; - public virtual bool SetCookieFilter(ServiceStack.Web.IRequest req, System.Net.Cookie cookie) => throw null; - public virtual bool ShouldCompressFile(ServiceStack.IO.IVirtualFile file) => throw null; - public virtual ServiceStack.ServiceStackHost Start(string urlBase) => throw null; - public System.Collections.Generic.List StartUpErrors { get => throw null; set => throw null; } - public System.DateTime StartedAt { get => throw null; set => throw null; } - public bool TestMode { get => throw null; set => throw null; } - public virtual ServiceStack.Web.IRequest TryGetCurrentRequest() => throw null; - public virtual void TryGetNativeCacheClient(ServiceStack.Web.IRequest req, out ServiceStack.Caching.ICacheClient cacheSync, out ServiceStack.Caching.ICacheClientAsync cacheAsync) => throw null; - public virtual T TryResolve() => throw null; - public System.Collections.Generic.List UncaughtExceptionHandlers { get => throw null; set => throw null; } - public System.Collections.Generic.List UncaughtExceptionHandlersAsync { get => throw null; set => throw null; } - public System.Exception UseException(System.Exception ex) => throw null; - public virtual bool UseHttps(ServiceStack.Web.IRequest httpReq) => throw null; - public System.Collections.Generic.List ViewEngines { get => throw null; set => throw null; } - public ServiceStack.IO.IVirtualPathProvider VirtualFileSources { get => throw null; set => throw null; } - public ServiceStack.IO.IVirtualFiles VirtualFiles { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task WriteAutoHtmlResponseAsync(ServiceStack.Web.IRequest request, object response, string html, System.IO.Stream outputStream) => throw null; - // ERR: Stub generator didn't handle member: ~ServiceStackHost - } - - // Generated from `ServiceStack.ServiceStackHttpHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceStackHttpHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public override void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public ServiceStackHttpHandler(ServiceStack.Host.Handlers.IServiceStackHandler servicestackHandler) => throw null; - } - - // Generated from `ServiceStack.ServiceStackProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceStackProvider : System.IDisposable, ServiceStack.IServiceStackProvider - { - public ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; } - public ServiceStack.Auth.IAuthRepository AuthRepository { get => throw null; } - public ServiceStack.Auth.IAuthRepositoryAsync AuthRepositoryAsync { get => throw null; } - public virtual ServiceStack.Caching.ICacheClient Cache { get => throw null; } - public virtual ServiceStack.Caching.ICacheClientAsync CacheAsync { get => throw null; } - public virtual void ClearSession() => throw null; - public System.Threading.Tasks.Task ClearSessionAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Data.IDbConnection Db { get => throw null; } - public virtual void Dispose() => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public object Execute(object requestDto) => throw null; - public object Execute(ServiceStack.Web.IRequest request) => throw null; - public TResponse Execute(ServiceStack.IReturn requestDto) => throw null; - public object ForwardRequest() => throw null; - public virtual ServiceStack.IServiceGateway Gateway { get => throw null; } - public virtual System.Threading.Tasks.ValueTask GetRedisAsync() => throw null; - public virtual ServiceStack.Configuration.IResolver GetResolver() => throw null; - public virtual ServiceStack.Auth.IAuthSession GetSession(bool reload = default(bool)) => throw null; - public virtual System.Threading.Tasks.Task GetSessionAsync(bool reload = default(bool), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual bool IsAuthenticated { get => throw null; } - public virtual ServiceStack.Messaging.IMessageProducer MessageProducer { get => throw null; } - public virtual void PublishMessage(T message) => throw null; - public virtual ServiceStack.Redis.IRedisClient Redis { get => throw null; } - public virtual ServiceStack.Web.IHttpRequest Request { get => throw null; } - public virtual T ResolveService() => throw null; - public virtual ServiceStack.Web.IHttpResponse Response { get => throw null; } - public ServiceStack.RpcGateway RpcGateway { get => throw null; } - public ServiceStackProvider(ServiceStack.Web.IHttpRequest request, ServiceStack.Configuration.IResolver resolver = default(ServiceStack.Configuration.IResolver)) => throw null; - public virtual TUserSession SessionAs() => throw null; - public virtual System.Threading.Tasks.Task SessionAsAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual ServiceStack.Caching.ISession SessionBag { get => throw null; } - public virtual ServiceStack.Caching.ISessionAsync SessionBagAsync { get => throw null; } - public virtual ServiceStack.Caching.ISessionFactory SessionFactory { get => throw null; } - public virtual void SetResolver(ServiceStack.Configuration.IResolver resolver) => throw null; - public virtual T TryResolve() => throw null; - } - - // Generated from `ServiceStack.ServiceStackProviderExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceStackProviderExtensions - { - public static bool HasAccess(this ServiceStack.IHasServiceStackProvider hasProvider, System.Collections.Generic.ICollection roleAttrs, System.Collections.Generic.ICollection anyRoleAttrs, System.Collections.Generic.ICollection permAttrs, System.Collections.Generic.ICollection anyPermAttrs) => throw null; - public static bool IsAuthorized(this ServiceStack.IHasServiceStackProvider hasProvider, ServiceStack.AuthenticateAttribute authAttr) => throw null; - public static ServiceStack.FluentValidation.IValidator ResolveValidator(this ServiceStack.IHasServiceStackProvider provider) => throw null; - } - - // Generated from `ServiceStack.ServiceStackScriptBlocks` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceStackScriptBlocks : ServiceStack.Script.IScriptPlugin - { - public void Register(ServiceStack.Script.ScriptContext context) => throw null; - public ServiceStackScriptBlocks() => throw null; - } - - // Generated from `ServiceStack.ServiceStackScriptUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceStackScriptUtils - { - public static ServiceStack.ResponseStatus GetErrorStatus(this ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static ServiceStack.Web.IHttpRequest GetHttpRequest(this ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static ServiceStack.Web.IRequest GetRequest(this ServiceStack.Script.ScriptScopeContext scope) => throw null; - public static System.Collections.Generic.HashSet GetUserAttributes(this ServiceStack.Web.IRequest request) => throw null; - public static string ResolveUrl(this ServiceStack.Script.ScriptScopeContext scope, string url) => throw null; - public static ServiceStack.NavOptions WithDefaults(this ServiceStack.NavOptions options, ServiceStack.Web.IRequest request) => throw null; - } - - // Generated from `ServiceStack.ServiceStackScripts` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceStackScripts : ServiceStack.Script.ScriptMethods, ServiceStack.Script.IConfigureScriptContext - { - public void Configure(ServiceStack.Script.ScriptContext context) => throw null; - public static ServiceStack.Logging.ILog Log; - public static System.Collections.Generic.List RemoveNewLinesFor { get => throw null; } - public ServiceStackScripts() => throw null; - public static ServiceStack.HttpResult ToHttpResult(System.Collections.Generic.Dictionary args) => throw null; - public object assertPermission(ServiceStack.Script.ScriptScopeContext scope, string permission, System.Collections.Generic.Dictionary options) => throw null; - public object assertPermission(ServiceStack.Script.ScriptScopeContext scope, string permission) => throw null; - public object assertRole(ServiceStack.Script.ScriptScopeContext scope, string role, System.Collections.Generic.Dictionary options) => throw null; - public object assertRole(ServiceStack.Script.ScriptScopeContext scope, string role) => throw null; - public ServiceStack.Auth.IAuthRepository authRepo(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object baseUrl(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.IRawString bundleCss(object virtualPaths, object options) => throw null; - public ServiceStack.IRawString bundleCss(object virtualPaths) => throw null; - public ServiceStack.IRawString bundleHtml(object virtualPaths, object options) => throw null; - public ServiceStack.IRawString bundleHtml(object virtualPaths) => throw null; - public ServiceStack.IRawString bundleJs(object virtualPaths, object options) => throw null; - public ServiceStack.IRawString bundleJs(object virtualPaths) => throw null; - public ServiceStack.Auth.IUserAuth createUserAuth(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; - public ServiceStack.Script.IgnoreResult deleteUserAuth(ServiceStack.Auth.IAuthRepository authRepo, string userAuthId) => throw null; - public object endIfAuthenticated(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; - public string errorResponse(ServiceStack.Script.ScriptScopeContext scope, string fieldName) => throw null; - public string errorResponse(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.ResponseStatus errorStatus, string fieldName) => throw null; - public string errorResponse(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string errorResponseExcept(ServiceStack.Script.ScriptScopeContext scope, System.Collections.IEnumerable fields) => throw null; - public string errorResponseExcept(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.ResponseStatus errorStatus, System.Collections.IEnumerable fields) => throw null; - public string errorResponseSummary(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.ResponseStatus errorStatus) => throw null; - public string errorResponseSummary(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object execService(ServiceStack.Script.ScriptScopeContext scope, string requestName, object options) => throw null; - public object execService(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; - public bool formCheckValue(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string formValue(ServiceStack.Script.ScriptScopeContext scope, string name, string defaultValue) => throw null; - public string formValue(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public string[] formValues(ServiceStack.Script.ScriptScopeContext scope, string name) => throw null; - public ServiceStack.ResponseStatus getErrorStatus(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.Web.IHttpResult getHttpResult(ServiceStack.Script.ScriptScopeContext scope, object options) => throw null; - public ServiceStack.Auth.IUserAuth getUserAuth(ServiceStack.Auth.IAuthRepository authRepo, string userAuthId) => throw null; - public ServiceStack.Auth.IUserAuth getUserAuthByUserName(ServiceStack.Auth.IAuthRepository authRepo, string userNameOrEmail) => throw null; - public System.Collections.Generic.List getUserAuths(ServiceStack.Auth.IAuthRepository authRepo, System.Collections.Generic.Dictionary options) => throw null; - public System.Collections.Generic.List getUserAuths(ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public object getUserSession(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool hasErrorStatus(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object hasPermission(ServiceStack.Script.ScriptScopeContext scope, string permission) => throw null; - public object hasRole(ServiceStack.Script.ScriptScopeContext scope, string role) => throw null; - public ServiceStack.IO.FileSystemVirtualFiles hostVfsFileSystem() => throw null; - public ServiceStack.IO.GistVirtualFiles hostVfsGist() => throw null; - public ServiceStack.IO.MemoryVirtualFiles hostVfsMemory() => throw null; - public ServiceStack.Web.IHttpRequest httpRequest(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.HttpResult httpResult(ServiceStack.Script.ScriptScopeContext scope, object options) => throw null; - public object ifAuthenticated(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object ifNotAuthenticated(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public bool isAuthenticated(ServiceStack.Script.ScriptScopeContext scope, string provider) => throw null; - public bool isAuthenticated(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.Auth.IUserAuth newUserAuth(ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public ServiceStack.Auth.IUserAuthDetails newUserAuthDetails(ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public object onlyIfAuthenticated(ServiceStack.Script.ScriptScopeContext scope, object value) => throw null; - public ServiceStack.Script.IgnoreResult publishMessage(ServiceStack.Script.ScriptScopeContext scope, string requestName, object dto, object options) => throw null; - public ServiceStack.Script.IgnoreResult publishMessage(ServiceStack.Script.ScriptScopeContext scope, string requestName, object dto) => throw null; - public object publishToGateway(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; - public object publishToGateway(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName, object options) => throw null; - public object publishToGateway(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName) => throw null; - public object redirectIfNotAuthenticated(ServiceStack.Script.ScriptScopeContext scope, string path) => throw null; - public object redirectIfNotAuthenticated(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public object redirectTo(ServiceStack.Script.ScriptScopeContext scope, string path) => throw null; - public object requestItem(ServiceStack.Script.ScriptScopeContext scope, string key) => throw null; - public object resolveUrl(ServiceStack.Script.ScriptScopeContext scope, string virtualPath) => throw null; - public ServiceStack.Script.IgnoreResult saveUserAuth(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth userAuth) => throw null; - public System.Collections.Generic.List searchUserAuths(ServiceStack.Auth.IAuthRepository authRepo, System.Collections.Generic.Dictionary options) => throw null; - public object sendToAutoQuery(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; - public object sendToAutoQuery(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName, object options) => throw null; - public object sendToAutoQuery(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName) => throw null; - public object sendToGateway(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; - public object sendToGateway(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName, object options) => throw null; - public object sendToGateway(ServiceStack.Script.ScriptScopeContext scope, object dto, string requestName) => throw null; - public ServiceStack.IRawString serviceStackLogoDataUri(string color) => throw null; - public ServiceStack.IRawString serviceStackLogoDataUri() => throw null; - public ServiceStack.IRawString serviceStackLogoDataUriLight() => throw null; - public ServiceStack.IRawString serviceStackLogoSvg(string color) => throw null; - public ServiceStack.IRawString serviceStackLogoSvg() => throw null; - public string serviceUrl(ServiceStack.Script.ScriptScopeContext scope, string requestName, System.Collections.Generic.Dictionary properties, string httpMethod) => throw null; - public string serviceUrl(ServiceStack.Script.ScriptScopeContext scope, string requestName, System.Collections.Generic.Dictionary properties) => throw null; - public string serviceUrl(ServiceStack.Script.ScriptScopeContext scope, string requestName) => throw null; - public ServiceStack.Script.IgnoreResult svgAdd(string svg, string name, string cssFile) => throw null; - public ServiceStack.Script.IgnoreResult svgAdd(string svg, string name) => throw null; - public ServiceStack.Script.IgnoreResult svgAddFile(ServiceStack.Script.ScriptScopeContext scope, string svgPath, string name, string cssFile) => throw null; - public ServiceStack.Script.IgnoreResult svgAddFile(ServiceStack.Script.ScriptScopeContext scope, string svgPath, string name) => throw null; - public ServiceStack.IRawString svgBackgroundImageCss(string name, string fillColor) => throw null; - public ServiceStack.IRawString svgBackgroundImageCss(string name) => throw null; - public string svgBaseUrl(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public System.Collections.Generic.Dictionary> svgCssFiles() => throw null; - public ServiceStack.IRawString svgDataUri(string name, string fillColor) => throw null; - public ServiceStack.IRawString svgDataUri(string name) => throw null; - public System.Collections.Generic.Dictionary svgDataUris() => throw null; - public ServiceStack.IRawString svgFill(string svg, string color) => throw null; - public ServiceStack.IRawString svgImage(string name, string fillColor) => throw null; - public ServiceStack.IRawString svgImage(string name) => throw null; - public System.Collections.Generic.Dictionary svgImages() => throw null; - public ServiceStack.IRawString svgInBackgroundImageCss(string svg) => throw null; - public object toResults(object dto) => throw null; - public ServiceStack.Auth.IUserAuth tryAuthenticate(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Auth.IAuthRepository authRepo, string userName, string password) => throw null; - public ServiceStack.Script.IgnoreResult updateUserAuth(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; - public ServiceStack.Auth.IUserAuth updateUserAuth(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser) => throw null; - public System.Collections.Generic.HashSet userAttributes(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string userAuthId(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string userAuthName(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public string userProfileUrl(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.Auth.IAuthSession userSession(ServiceStack.Script.ScriptScopeContext scope) => throw null; - public ServiceStack.IO.IVirtualFiles vfsContent() => throw null; - } - - // Generated from `ServiceStack.SessionExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SessionExtensions - { - public static System.Collections.Generic.HashSet AddSessionOptions(this ServiceStack.Web.IRequest req, params string[] options) => throw null; - public static bool Base64StringContainsUrlUnfriendlyChars(string base64) => throw null; - public static void ClearSession(this ServiceStack.Caching.ICacheClient cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)) => throw null; - public static System.Threading.Tasks.Task ClearSessionAsync(this ServiceStack.Caching.ICacheClientAsync cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string CreatePermanentSessionId(this ServiceStack.Web.IResponse res, ServiceStack.Web.IRequest req) => throw null; - public static string CreatePermanentSessionId(this ServiceStack.Web.IRequest req, string sessionId) => throw null; - public static string CreateRandomBase62Id(int size) => throw null; - public static string CreateRandomBase64Id(int size = default(int)) => throw null; - public static string CreateRandomSessionId() => throw null; - public static string CreateSessionId(this ServiceStack.Web.IResponse res, ServiceStack.Web.IRequest req) => throw null; - public static string CreateSessionId(this ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, string sessionKey, string sessionId) => throw null; - public static string CreateSessionIds(this ServiceStack.Web.IResponse res, ServiceStack.Web.IRequest req) => throw null; - public static string CreateTemporarySessionId(this ServiceStack.Web.IResponse res, ServiceStack.Web.IRequest req) => throw null; - public static string CreateTemporarySessionId(this ServiceStack.Web.IRequest req, string sessionId) => throw null; - public static void DeleteJwtCookie(this ServiceStack.Web.IResponse response) => throw null; - public static void DeleteSessionCookies(this ServiceStack.Web.IResponse response) => throw null; - public static System.Threading.Tasks.Task GenerateNewSessionCookiesAsync(this ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static T Get(this ServiceStack.Caching.ISession session) => throw null; - public static System.Threading.Tasks.Task GetAsync(this ServiceStack.Caching.ISessionAsync session, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GetOrCreateSessionId(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetPermanentSessionId(this ServiceStack.Web.IRequest httpReq) => throw null; - public static ServiceStack.Caching.ISession GetSessionBag(this ServiceStack.Web.IRequest request) => throw null; - public static ServiceStack.Caching.ISession GetSessionBag(this ServiceStack.IServiceBase service) => throw null; - public static ServiceStack.Caching.ISessionAsync GetSessionBagAsync(this ServiceStack.Web.IRequest request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static ServiceStack.Caching.ISessionAsync GetSessionBagAsync(this ServiceStack.IServiceBase service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GetSessionId(this ServiceStack.Web.IRequest req) => throw null; - public static string GetSessionKey(ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)) => throw null; - public static System.Collections.Generic.HashSet GetSessionOptions(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetSessionParam(this ServiceStack.Web.IRequest httpReq, string sessionKey) => throw null; - public static string GetTemporarySessionId(this ServiceStack.Web.IRequest httpReq) => throw null; - public static ServiceStack.Auth.IAuthSession GetUntypedSession(this ServiceStack.Caching.ICacheClient cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse)) => throw null; - public static System.Threading.Tasks.Task GetUntypedSessionAsync(this ServiceStack.Caching.ICacheClientAsync cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GetUserAuthIdOrName(this ServiceStack.Auth.IAuthSession session) => throw null; - public static string GetUserAuthName(this ServiceStack.Auth.IAuthSession session) => throw null; - public static bool IsPermanentSession(this ServiceStack.Web.IRequest req) => throw null; - public static void PopulateWithSecureRandomBytes(System.Byte[] bytes) => throw null; - public static void Remove(this ServiceStack.Caching.ISession session) => throw null; - public static System.Threading.Tasks.Task RemoveAsync(this ServiceStack.Caching.ISessionAsync session, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static TUserSession SessionAs(this ServiceStack.Caching.ICacheClient cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse)) => throw null; - public static System.Threading.Tasks.Task SessionAsAsync(this ServiceStack.Caching.ICacheClientAsync cache, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void Set(this ServiceStack.Caching.ISession session, T value) => throw null; - public static System.Threading.Tasks.Task SetAsync(this ServiceStack.Caching.ISessionAsync session, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void SetSessionId(this ServiceStack.Web.IRequest req, string sessionId) => throw null; - public static void UpdateFromUserAuthRepo(this ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthRepository authRepo = default(ServiceStack.Auth.IAuthRepository)) => throw null; - public static System.Threading.Tasks.Task UpdateFromUserAuthRepoAsync(this ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthRepositoryAsync authRepo = default(ServiceStack.Auth.IAuthRepositoryAsync)) => throw null; - public static void UpdateSession(this ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IUserAuth userAuth) => throw null; - } - - // Generated from `ServiceStack.SessionFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SessionFactory : ServiceStack.Caching.ISessionFactory - { - public ServiceStack.Caching.ISession CreateSession(string sessionId) => throw null; - public ServiceStack.Caching.ISessionAsync CreateSessionAsync(string sessionId) => throw null; - public ServiceStack.Caching.ISession GetOrCreateSession(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public ServiceStack.Caching.ISession GetOrCreateSession() => throw null; - public ServiceStack.Caching.ISessionAsync GetOrCreateSessionAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public ServiceStack.Caching.ISessionAsync GetOrCreateSessionAsync() => throw null; - // Generated from `ServiceStack.SessionFactory+SessionCacheClient` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SessionCacheClient : ServiceStack.Caching.ISession - { - public T Get(string key) => throw null; - public object this[string key] { get => throw null; set => throw null; } - public bool Remove(string key) => throw null; - public void RemoveAll() => throw null; - public SessionCacheClient(ServiceStack.Caching.ICacheClient cacheClient, string sessionId) => throw null; - public void Set(string key, T value) => throw null; - } - - - // Generated from `ServiceStack.SessionFactory+SessionCacheClientAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SessionCacheClientAsync : ServiceStack.Caching.ISessionAsync - { - public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public SessionCacheClientAsync(ServiceStack.Caching.ICacheClientAsync cacheClient, string sessionId) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - - public SessionFactory(ServiceStack.Caching.ICacheClient cacheClient, ServiceStack.Caching.ICacheClientAsync cacheClientAsync) => throw null; - public SessionFactory(ServiceStack.Caching.ICacheClient cacheClient) => throw null; - } - - // Generated from `ServiceStack.SessionFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SessionFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public static void AddSessionIdToRequestFilter(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public static ServiceStack.Auth.IAuthSession CreateNewSession(ServiceStack.Web.IRequest httpReq, string sessionId) => throw null; - public static ServiceStack.Auth.IAuthSession CreateNewSession(ServiceStack.Web.IRequest httpReq) => throw null; - public static string CreateSessionIds(ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse)) => throw null; - public static System.TimeSpan DefaultPermanentSessionExpiry; - public static System.TimeSpan DefaultSessionExpiry; - public static T GetOrCreateSession(ServiceStack.Caching.ICacheClient cache = default(ServiceStack.Caching.ICacheClient), ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse)) => throw null; - public static System.Threading.Tasks.Task GetOrCreateSessionAsync(ServiceStack.Caching.ICacheClientAsync cache = default(ServiceStack.Caching.ICacheClientAsync), ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest), ServiceStack.Web.IResponse httpRes = default(ServiceStack.Web.IResponse), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GetSessionKey(string sessionId) => throw null; - public static string GetSessionKey(ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)) => throw null; - public string Id { get => throw null; set => throw null; } - public System.TimeSpan? PermanentSessionExpiry { get => throw null; set => throw null; } - public const string PermanentSessionId = default; - public void Register(ServiceStack.IAppHost appHost) => throw null; - public System.TimeSpan? SessionBagExpiry { get => throw null; set => throw null; } - public System.TimeSpan? SessionExpiry { get => throw null; set => throw null; } - public SessionFeature() => throw null; - public const string SessionId = default; - public const string SessionOptionsKey = default; - public const string XUserAuthId = default; - } - - // Generated from `ServiceStack.SessionOptions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SessionOptions - { - public const string Permanent = default; - public SessionOptions() => throw null; - public const string Temporary = default; - } - - // Generated from `ServiceStack.SessionSourceResult` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SessionSourceResult - { - public System.Collections.Generic.IEnumerable Permissions { get => throw null; } - public System.Collections.Generic.IEnumerable Roles { get => throw null; } - public ServiceStack.Auth.IAuthSession Session { get => throw null; } - public SessionSourceResult(ServiceStack.Auth.IAuthSession session, System.Collections.Generic.IEnumerable roles, System.Collections.Generic.IEnumerable permissions) => throw null; - } - - // Generated from `ServiceStack.SetStatusAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SetStatusAttribute : ServiceStack.RequestFilterAttribute - { - public string Description { get => throw null; set => throw null; } - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public SetStatusAttribute(int status, string description) => throw null; - public SetStatusAttribute(System.Net.HttpStatusCode statusCode, string description) => throw null; - public SetStatusAttribute() => throw null; - public int? Status { get => throw null; set => throw null; } - public System.Net.HttpStatusCode? StatusCode { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.SharpApiService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SharpApiService : ServiceStack.Service - { - public System.Threading.Tasks.Task Any(ServiceStack.ApiPages request) => throw null; - public SharpApiService() => throw null; - } - - // Generated from `ServiceStack.SharpCodePageHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SharpCodePageHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public System.Collections.Generic.Dictionary Args { get => throw null; set => throw null; } - public object Model { get => throw null; set => throw null; } - public System.IO.Stream OutputStream { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public SharpCodePageHandler(ServiceStack.Script.SharpCodePage page, ServiceStack.Script.SharpPage layoutPage = default(ServiceStack.Script.SharpPage)) => throw null; - } - - // Generated from `ServiceStack.SharpPageHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SharpPageHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public System.Collections.Generic.Dictionary Args { get => throw null; set => throw null; } - public ServiceStack.Script.ScriptContext Context { get => throw null; set => throw null; } - public ServiceStack.Script.SharpPage LayoutPage { get => throw null; set => throw null; } - public object Model { get => throw null; set => throw null; } - public static ServiceStack.Script.ScriptContext NewContext(ServiceStack.IAppHost appHost) => throw null; - public System.IO.Stream OutputStream { get => throw null; set => throw null; } - public ServiceStack.Script.SharpPage Page { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public SharpPageHandler(string pagePath, string layoutPath = default(string)) => throw null; - public SharpPageHandler(ServiceStack.Script.SharpPage page, ServiceStack.Script.SharpPage layoutPage = default(ServiceStack.Script.SharpPage)) => throw null; - public System.Func ValidateFn { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.SharpPagesFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SharpPagesFeature : ServiceStack.Script.ScriptContext, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin, ServiceStack.Html.IViewEngine - { - public string ApiDefaultContentType { get => throw null; set => throw null; } - public string ApiPath { get => throw null; set => throw null; } - public string DebugDefaultTemplate { get => throw null; set => throw null; } - public bool DisablePageBasedRouting { get => throw null; set => throw null; } - public bool? EnableHotReload { get => throw null; set => throw null; } - public bool? EnableSpaFallback { get => throw null; set => throw null; } - public bool ExcludeProtectedFilters { set => throw null; } - public ServiceStack.Script.SharpPage GetRoutingPage(string pathInfo, out System.Collections.Generic.Dictionary routingArgs) => throw null; - public ServiceStack.Script.SharpPage GetViewPage(string viewName) => throw null; - public bool HasView(string viewName, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)) => throw null; - public string HtmlExtension { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public System.Collections.Generic.List IgnorePaths { get => throw null; set => throw null; } - public bool ImportRequestParams { get => throw null; set => throw null; } - public string MetadataDebugAdminRole { get => throw null; set => throw null; } - protected virtual ServiceStack.Host.IHttpHandler PageBasedRoutingHandler(string httpMethod, string pathInfo, string requestFilePath) => throw null; - public System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, object dto, System.IO.Stream outputStream) => throw null; - public virtual void Register(ServiceStack.IAppHost appHost) => throw null; - public string RenderPartial(string pageName, object model, bool renderHtml, System.IO.StreamWriter writer = default(System.IO.StreamWriter), ServiceStack.Html.IHtmlContext htmlHelper = default(ServiceStack.Html.IHtmlContext)) => throw null; - protected virtual ServiceStack.Host.IHttpHandler RequestHandler(string httpMethod, string pathInfo, string filePath) => throw null; - public string RunInitPage() => throw null; - public string ScriptAdminRole { get => throw null; set => throw null; } - public ServiceStack.ServiceStackScripts ServiceStackScripts { get => throw null; } - public SharpPagesFeature() => throw null; - } - - // Generated from `ServiceStack.SharpPagesFeatureExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SharpPagesFeatureExtensions - { - public static ServiceStack.Script.PageResult BindRequest(this ServiceStack.Script.PageResult result, ServiceStack.Web.IRequest request) => throw null; - public static System.Collections.Generic.Dictionary CreateRequestArgs(System.Collections.Generic.Dictionary args) => throw null; - public static ServiceStack.Script.SharpCodePage GetCodePage(this ServiceStack.Web.IRequest request, string virtualPath) => throw null; - public static ServiceStack.Script.SharpPage GetPage(this ServiceStack.Web.IRequest request, string virtualPath) => throw null; - public static ServiceStack.Script.PageResult GetPageResult(this ServiceStack.Web.IRequest request, string virtualPath, System.Collections.Generic.Dictionary args = default(System.Collections.Generic.Dictionary)) => throw null; - public static System.Collections.Generic.Dictionary GetScriptRequestParams(this ServiceStack.Web.IRequest request, bool importRequestParams = default(bool)) => throw null; - public static ServiceStack.ServiceStackScripts GetServiceStackFilters(this ServiceStack.Script.ScriptContext context) => throw null; - public static ServiceStack.Script.ScriptContext InitForSharpPages(this ServiceStack.Script.ScriptContext context, ServiceStack.IAppHost appHost) => throw null; - public static ServiceStack.Script.SharpPage OneTimePage(this ServiceStack.Web.IRequest request, string contents, string ext = default(string)) => throw null; - public static System.Collections.Generic.Dictionary SetRequestArgs(System.Collections.Generic.Dictionary args, ServiceStack.Web.IRequest request) => throw null; - public static ServiceStack.Script.ScriptContext UseAppHost(this ServiceStack.Script.ScriptContext context, ServiceStack.IAppHost appHost) => throw null; - public static ServiceStack.Script.SharpCodePage With(this ServiceStack.Script.SharpCodePage page, ServiceStack.Web.IRequest request) => throw null; - } - - // Generated from `ServiceStack.Sitemap` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Sitemap - { - public string AtPath { get => throw null; set => throw null; } - public string CustomXml { get => throw null; set => throw null; } - public System.DateTime? LastModified { get => throw null; set => throw null; } - public string Location { get => throw null; set => throw null; } - public Sitemap() => throw null; - public System.Collections.Generic.List UrlSet { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.SitemapCustomXml` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SitemapCustomXml - { - public SitemapCustomXml() => throw null; - public string SitemapIndexFooterXml { get => throw null; set => throw null; } - public string SitemapIndexHeaderXml { get => throw null; set => throw null; } - public string UrlSetFooterXml { get => throw null; set => throw null; } - public string UrlSetHeaderXml { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.SitemapFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SitemapFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string AtPath { get => throw null; set => throw null; } - public ServiceStack.SitemapCustomXml CustomXml { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public SitemapFeature() => throw null; - public System.Collections.Generic.List SitemapIndex { get => throw null; set => throw null; } - // Generated from `ServiceStack.SitemapFeature+SitemapIndexHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SitemapIndexHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public SitemapIndexHandler(ServiceStack.SitemapFeature feature) => throw null; - } - - - public System.Collections.Generic.Dictionary SitemapIndexNamespaces { get => throw null; set => throw null; } - // Generated from `ServiceStack.SitemapFeature+SitemapUrlSetHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SitemapUrlSetHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public SitemapUrlSetHandler(ServiceStack.SitemapFeature feature, System.Collections.Generic.List urlSet) => throw null; - } - - - public System.Collections.Generic.List UrlSet { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary UrlSetNamespaces { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.SitemapFrequency` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum SitemapFrequency - { - Always, - Daily, - Hourly, - Monthly, - Never, - Weekly, - Yearly, - } - - // Generated from `ServiceStack.SitemapUrl` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SitemapUrl - { - public ServiceStack.SitemapFrequency? ChangeFrequency { get => throw null; set => throw null; } - public string CustomXml { get => throw null; set => throw null; } - public System.DateTime? LastModified { get => throw null; set => throw null; } - public string Location { get => throw null; set => throw null; } - public System.Decimal? Priority { get => throw null; set => throw null; } - public SitemapUrl() => throw null; - } - - // Generated from `ServiceStack.SpaFallback` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SpaFallback : ServiceStack.IReturn, ServiceStack.IReturn - { - public string PathInfo { get => throw null; set => throw null; } - public SpaFallback() => throw null; - } - - // Generated from `ServiceStack.SpaFallbackService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SpaFallbackService : ServiceStack.Service - { - public object Any(ServiceStack.SpaFallback request) => throw null; - public SpaFallbackService() => throw null; - } - - // Generated from `ServiceStack.StartsWithCondition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StartsWithCondition : ServiceStack.QueryCondition - { - public override string Alias { get => throw null; } - public override bool Match(object a, object b) => throw null; - public StartsWithCondition() => throw null; - } - - // Generated from `ServiceStack.StrictModeCodes` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class StrictModeCodes - { - public const string CyclicalUserSession = default; - public const string ReturnsValueType = default; - } - - // Generated from `ServiceStack.SubscriptionInfo` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SubscriptionInfo - { - public string[] Channels { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ConnectArgs { get => throw null; set => throw null; } - public System.DateTime CreatedAt { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public bool IsAuthenticated { get => throw null; set => throw null; } - public System.Collections.Concurrent.ConcurrentDictionary Meta { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServerArgs { get => throw null; set => throw null; } - public string SessionId { get => throw null; set => throw null; } - public string SubscriptionId { get => throw null; set => throw null; } - public SubscriptionInfo() => throw null; - public string UserAddress { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Svg` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Svg - { - public static void AddImage(string svg, string name, string cssFile = default(string)) => throw null; - public static System.Collections.Generic.Dictionary AdjacentCssRules { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary AppendToCssFiles { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary> CssFiles { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary CssFillColor { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary DataUris { get => throw null; set => throw null; } - public static string Encode(string svg) => throw null; - public static string Fill(string svg, string fillColor) => throw null; - public static string[] FillColors { get => throw null; set => throw null; } - public static string GetBackgroundImageCss(string name, string fillColor) => throw null; - public static string GetBackgroundImageCss(string name) => throw null; - public static string GetDataUri(string name, string fillColor) => throw null; - public static string GetDataUri(string name) => throw null; - public static string GetImage(string name, string fillColor) => throw null; - public static string GetImage(string name) => throw null; - // Generated from `ServiceStack.Svg+Icons` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Icons - { - public const string DefaultProfile = default; - public const string Female = default; - public const string FemaleBusiness = default; - public const string FemaleColor = default; - public const string Male = default; - public const string MaleBusiness = default; - public const string MaleColor = default; - public const string Users = default; - } - - - public static System.Collections.Generic.Dictionary Images { get => throw null; set => throw null; } - public static string InBackgroundImageCss(string svg) => throw null; - public static string LightColor { get => throw null; set => throw null; } - public static void Load(ServiceStack.IO.IVirtualDirectory svgDir) => throw null; - // Generated from `ServiceStack.Svg+Logos` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Logos - { - public const string Apple = default; - public const string Facebook = default; - public const string GitHub = default; - public const string Google = default; - public const string LinkedIn = default; - public const string Microsoft = default; - public const string ServiceStack = default; - public const string Twitter = default; - } - - - public static string ToDataUri(string svg) => throw null; - } - - // Generated from `ServiceStack.SvgFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SvgFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPostInitPlugin, ServiceStack.IPlugin - { - public void AfterPluginsLoaded(ServiceStack.IAppHost appHost) => throw null; - public string Id { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public string RoutePath { get => throw null; set => throw null; } - public SvgFeature() => throw null; - public System.Func ValidateFn { get => throw null; set => throw null; } - public static void WriteAdjacentCss(System.Text.StringBuilder sb, System.Collections.Generic.List dataUris, System.Collections.Generic.Dictionary adjacentCssRules) => throw null; - public static void WriteDataUris(System.Text.StringBuilder sb, System.Collections.Generic.List dataUris) => throw null; - public static void WriteSvgCssFile(ServiceStack.IO.IVirtualFiles vfs, string name, System.Collections.Generic.List dataUris, System.Collections.Generic.Dictionary adjacentCssRules = default(System.Collections.Generic.Dictionary), System.Collections.Generic.Dictionary appendToCssFiles = default(System.Collections.Generic.Dictionary)) => throw null; - } - - // Generated from `ServiceStack.SvgFormatHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SvgFormatHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public string Fill { get => throw null; set => throw null; } - public string Format { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public SvgFormatHandler(string fileName) => throw null; - public SvgFormatHandler() => throw null; - } - - // Generated from `ServiceStack.SvgScriptBlock` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SvgScriptBlock : ServiceStack.Script.ScriptBlock - { - public override ServiceStack.Script.ScriptLanguage Body { get => throw null; } - public override string Name { get => throw null; } - public SvgScriptBlock() => throw null; - public override System.Threading.Tasks.Task WriteAsync(ServiceStack.Script.ScriptScopeContext scope, ServiceStack.Script.PageBlockFragment block, System.Threading.CancellationToken token) => throw null; - } - - // Generated from `ServiceStack.TemplateInfoFilters` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateInfoFilters : ServiceStack.InfoScripts - { - public TemplateInfoFilters() => throw null; - } - - // Generated from `ServiceStack.TemplateMarkdownBlock` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateMarkdownBlock : ServiceStack.MarkdownScriptBlock - { - public TemplateMarkdownBlock() => throw null; - } - - // Generated from `ServiceStack.TemplatePagesFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplatePagesFeature : ServiceStack.SharpPagesFeature - { - public ServiceStack.Script.DefaultScripts DefaultFilters { get => throw null; } - public ServiceStack.Script.HtmlScripts HtmlFilters { get => throw null; } - public ServiceStack.Script.ProtectedScripts ProtectedFilters { get => throw null; } - public override void Register(ServiceStack.IAppHost appHost) => throw null; - public System.Collections.Generic.List TemplateBlocks { get => throw null; } - public System.Collections.Generic.List TemplateFilters { get => throw null; } - public TemplatePagesFeature() => throw null; - } - - // Generated from `ServiceStack.TemplateServiceStackFilters` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TemplateServiceStackFilters : ServiceStack.ServiceStackScripts - { - public TemplateServiceStackFilters() => throw null; - } - - // Generated from `ServiceStack.TypeValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class TypeValidator : ServiceStack.ITypeValidator - { - public System.Collections.Generic.Dictionary ContextArgs { get => throw null; set => throw null; } - public string DefaultErrorCode { get => throw null; set => throw null; } - public string DefaultMessage { get => throw null; set => throw null; } - public int? DefaultStatusCode { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public virtual bool IsValid(object dto, ServiceStack.Web.IRequest request) => throw null; - public virtual System.Threading.Tasks.Task IsValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; - public string Message { get => throw null; set => throw null; } - protected string ResolveErrorCode() => throw null; - protected string ResolveErrorMessage(ServiceStack.Web.IRequest request, object dto) => throw null; - protected int ResolveStatusCode() => throw null; - public int? StatusCode { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task ThrowIfNotValidAsync(object dto, ServiceStack.Web.IRequest request) => throw null; - protected TypeValidator(string errorCode = default(string), string message = default(string), int? statusCode = default(int?)) => throw null; - } - - // Generated from `ServiceStack.TypedQueryData<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypedQueryData : ServiceStack.ITypedQueryData - { - public ServiceStack.IDataQuery AddToQuery(ServiceStack.IDataQuery q, ServiceStack.IQueryData request, System.Collections.Generic.Dictionary dynamicParams, ServiceStack.IAutoQueryDataOptions options = default(ServiceStack.IAutoQueryDataOptions)) => throw null; - public ServiceStack.IDataQuery CreateQuery(ServiceStack.IQueryDataSource db) => throw null; - public ServiceStack.QueryResponse Execute(ServiceStack.IQueryDataSource db, ServiceStack.IDataQuery query) => throw null; - public System.Type FromType { get => throw null; } - public System.Type QueryType { get => throw null; } - public TypedQueryData() => throw null; - } - - // Generated from `ServiceStack.UnRegisterEventSubscriber` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UnRegisterEventSubscriber : ServiceStack.IReturn>, ServiceStack.IReturn - { - public string Id { get => throw null; set => throw null; } - public UnRegisterEventSubscriber() => throw null; - } - - // Generated from `ServiceStack.ValidateScripts` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidateScripts : ServiceStack.Script.ScriptMethods - { - public ServiceStack.FluentValidation.Validators.IPropertyValidator CreditCard() => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator Email() => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator Empty(object defaultValue) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator Empty() => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator Enum(System.Type enumType) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator Equal(object value) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator ExactLength(int length) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator ExclusiveBetween(System.IComparable from, System.IComparable to) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator GreaterThan(int value) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator GreaterThanOrEqual(int value) => throw null; - public ServiceStack.ITypeValidator HasPermission(string permission) => throw null; - public ServiceStack.ITypeValidator HasPermissions(string[] permission) => throw null; - public ServiceStack.ITypeValidator HasRole(string role) => throw null; - public ServiceStack.ITypeValidator HasRoles(string[] roles) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator InclusiveBetween(System.IComparable from, System.IComparable to) => throw null; - public static ServiceStack.ValidateScripts Instance; - public ServiceStack.ITypeValidator IsAdmin() => throw null; - public ServiceStack.ITypeValidator IsAuthenticated(string provider) => throw null; - public ServiceStack.ITypeValidator IsAuthenticated() => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator Length(int min, int max) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator LessThan(int value) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator LessThanOrEqual(int value) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator MaximumLength(int max) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator MinimumLength(int min) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator NotEmpty(object defaultValue) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator NotEmpty() => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator NotEqual(object value) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator NotNull() => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator Null() => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator RegularExpression(string regex) => throw null; - public static System.Collections.Generic.HashSet RequiredValidators { get => throw null; } - public ServiceStack.FluentValidation.Validators.IPropertyValidator ScalePrecision(int scale, int precision) => throw null; - public ValidateScripts() => throw null; - } - - // Generated from `ServiceStack.ValidationResultExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ValidationResultExtensions - { - public static ServiceStack.Validation.ValidationErrorResult ToErrorResult(this ServiceStack.FluentValidation.Results.ValidationResult result) => throw null; - public static ServiceStack.Validation.ValidationError ToException(this ServiceStack.FluentValidation.Results.ValidationResult result) => throw null; - } - - // Generated from `ServiceStack.ValidationSourceUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ValidationSourceUtils - { - public static System.Threading.Tasks.Task ClearCacheAsync(this ServiceStack.IValidationSource source, params int[] ids) => throw null; - public static System.Threading.Tasks.Task DeleteValidationRulesAsync(this ServiceStack.IValidationSource source, params int[] ids) => throw null; - public static System.Threading.Tasks.Task> GetAllValidateRulesAsync(this ServiceStack.IValidationSource source, string typeName) => throw null; - public static System.Threading.Tasks.Task> GetValidateRulesByIdsAsync(this ServiceStack.IValidationSource source, params int[] ids) => throw null; - public static void InitSchema(this ServiceStack.IValidationSource source) => throw null; - public static System.Threading.Tasks.Task SaveValidationRulesAsync(this ServiceStack.IValidationSource source, System.Collections.Generic.List validateRules) => throw null; - } - - // Generated from `ServiceStack.ValidatorUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ValidatorUtils - { - public static ServiceStack.ITypeValidator Init(this ServiceStack.ITypeValidator validator, ServiceStack.IValidateRule rule) => throw null; - } - - // Generated from `ServiceStack.Validators` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Validators - { - public static void AddRule(this System.Collections.Generic.List validators, System.Reflection.PropertyInfo pi, ServiceStack.IValidateRule propRule) => throw null; - public static void AddRule(System.Type type, string name, ServiceStack.ValidateAttribute attr) => throw null; - public static void AddRule(System.Type type, System.Reflection.PropertyInfo pi, ServiceStack.ValidateAttribute attr) => throw null; - public static void AddTypeValidator(System.Collections.Generic.List to, ServiceStack.IValidateRule attr) => throw null; - public static void AppendDefaultValueOnEmptyValidators(System.Reflection.PropertyInfo pi, ServiceStack.IValidateRule rule) => throw null; - public static System.Threading.Tasks.Task AssertTypeValidatorsAsync(ServiceStack.Web.IRequest req, object requestDto, System.Type requestType) => throw null; - public static System.Collections.Generic.Dictionary ConditionErrorCodes { get => throw null; set => throw null; } - public static ServiceStack.FluentValidation.IValidationRule CreateCollectionPropertyRule(System.Type type, System.Reflection.PropertyInfo pi) => throw null; - public static ServiceStack.FluentValidation.IValidationRule CreatePropertyRule(System.Type type, System.Reflection.PropertyInfo pi) => throw null; - public static System.Collections.Generic.Dictionary ErrorCodeMessages { get => throw null; set => throw null; } - public static System.Collections.Generic.List GetPropertyRules(System.Type type) => throw null; - public static System.Collections.Generic.List GetTypeRules(System.Type type) => throw null; - public static bool HasValidateAttributes(System.Type type) => throw null; - public static bool HasValidateRequestAttributes(System.Type type) => throw null; - public static ServiceStack.Script.SharpPage ParseCondition(ServiceStack.Script.ScriptContext context, string condition) => throw null; - public static bool RegisterPropertyRulesFor(System.Type type) => throw null; - public static bool RegisterRequestRulesFor(System.Type type) => throw null; - public static System.Collections.Generic.List> RuleFilters { get => throw null; } - public static ServiceStack.Script.PageResult ToPageResult(this ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, ServiceStack.Script.SharpPage page) => throw null; - public static System.Collections.Generic.Dictionary> TypePropertyRulesMap { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary> TypeRulesMap { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.WebSudoAuthUserSession` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class WebSudoAuthUserSession : ServiceStack.AuthUserSession, ServiceStack.Auth.IWebSudoAuthSession, ServiceStack.Auth.IAuthSession - { - public System.DateTime AuthenticatedAt { get => throw null; set => throw null; } - public int AuthenticatedCount { get => throw null; set => throw null; } - public System.DateTime? AuthenticatedWebSudoUntil { get => throw null; set => throw null; } - public WebSudoAuthUserSession() => throw null; - } - - // Generated from `ServiceStack.WebSudoFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class WebSudoFeature : ServiceStack.Auth.AuthEvents, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string Id { get => throw null; set => throw null; } - public override void OnAuthenticated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public override void OnCreated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session) => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - public const string SessionCopyRequestItemKey = default; - public System.TimeSpan WebSudoDuration { get => throw null; set => throw null; } - public WebSudoFeature() => throw null; - } - - // Generated from `ServiceStack.WebSudoRequiredAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class WebSudoRequiredAttribute : ServiceStack.AuthenticateAttribute - { - public override System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public bool HasWebSudo(ServiceStack.Web.IRequest req, ServiceStack.Auth.IWebSudoAuthSession session) => throw null; - public WebSudoRequiredAttribute(ServiceStack.ApplyTo applyTo) => throw null; - public WebSudoRequiredAttribute() => throw null; - } - - // Generated from `ServiceStack.XmlOnly` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlOnly : ServiceStack.RequestFilterAttribute - { - public override void Execute(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public XmlOnly() => throw null; - } - - namespace Admin - { - // Generated from `ServiceStack.Admin.AdminUsersFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminUsersFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin, ServiceStack.IAfterInitAppHost - { - public string AdminRole { get => throw null; set => throw null; } - public AdminUsersFeature() => throw null; - public void AfterInit(ServiceStack.IAppHost appHost) => throw null; - public string Id { get => throw null; set => throw null; } - public System.Collections.Generic.List IncludeUserAuthDetailsProperties { get => throw null; set => throw null; } - public System.Collections.Generic.List IncludeUserAuthProperties { get => throw null; set => throw null; } - public System.Func OnAfterCreateUser { get => throw null; set => throw null; } - public System.Func OnAfterDeleteUser { get => throw null; set => throw null; } - public System.Func OnAfterUpdateUser { get => throw null; set => throw null; } - public System.Func OnBeforeCreateUser { get => throw null; set => throw null; } - public System.Func OnBeforeDeleteUser { get => throw null; set => throw null; } - public System.Func OnBeforeUpdateUser { get => throw null; set => throw null; } - public System.Collections.Generic.List QueryUserAuthProperties { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public System.Collections.Generic.List RestrictedUserAuthProperties { get => throw null; set => throw null; } - public ServiceStack.Auth.ValidateAsyncFn ValidateFn { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Admin.AdminUsersService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AdminUsersService : ServiceStack.Service - { - public AdminUsersService() => throw null; - public System.Threading.Tasks.Task Delete(ServiceStack.AdminDeleteUser request) => throw null; - public System.Threading.Tasks.Task Get(ServiceStack.AdminQueryUsers request) => throw null; - public System.Threading.Tasks.Task Get(ServiceStack.AdminGetUser request) => throw null; - public System.Threading.Tasks.Task Post(ServiceStack.AdminCreateUser request) => throw null; - public System.Threading.Tasks.Task Put(ServiceStack.AdminUpdateUser request) => throw null; - } - - // Generated from `ServiceStack.Admin.RequestLogs` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestLogs - { - public int? AfterId { get => throw null; set => throw null; } - public int? AfterSecs { get => throw null; set => throw null; } - public int? BeforeId { get => throw null; set => throw null; } - public int? BeforeSecs { get => throw null; set => throw null; } - public System.TimeSpan? DurationLessThan { get => throw null; set => throw null; } - public System.TimeSpan? DurationLongerThan { get => throw null; set => throw null; } - public bool? EnableErrorTracking { get => throw null; set => throw null; } - public bool? EnableResponseTracking { get => throw null; set => throw null; } - public bool? EnableSessionTracking { get => throw null; set => throw null; } - public string ForwardedFor { get => throw null; set => throw null; } - public bool? HasResponse { get => throw null; set => throw null; } - public System.Int64[] Ids { get => throw null; set => throw null; } - public string IpAddress { get => throw null; set => throw null; } - public string PathInfo { get => throw null; set => throw null; } - public string Referer { get => throw null; set => throw null; } - public RequestLogs() => throw null; - public string SessionId { get => throw null; set => throw null; } - public int Skip { get => throw null; set => throw null; } - public int? Take { get => throw null; set => throw null; } - public string UserAuthId { get => throw null; set => throw null; } - public bool? WithErrors { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Admin.RequestLogsResponse` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestLogsResponse - { - public RequestLogsResponse() => throw null; - public ServiceStack.ResponseStatus ResponseStatus { get => throw null; set => throw null; } - public System.Collections.Generic.List Results { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Usage { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Admin.RequestLogsService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestLogsService : ServiceStack.Service - { - public System.Threading.Tasks.Task Any(ServiceStack.Admin.RequestLogs request) => throw null; - public ServiceStack.Web.IRequestLogger RequestLogger { get => throw null; set => throw null; } - public RequestLogsService() => throw null; - } - - } - namespace Auth - { - // Generated from `ServiceStack.Auth.ApiKey` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ApiKey : ServiceStack.IMeta - { - public ApiKey() => throw null; - public System.DateTime? CancelledDate { get => throw null; set => throw null; } - public System.DateTime CreatedDate { get => throw null; set => throw null; } - public string Environment { get => throw null; set => throw null; } - public System.DateTime? ExpiryDate { get => throw null; set => throw null; } - public string Id { get => throw null; set => throw null; } - public string KeyType { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public string Notes { get => throw null; set => throw null; } - public int? RefId { get => throw null; set => throw null; } - public string RefIdStr { get => throw null; set => throw null; } - public string UserAuthId { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.ApiKeyAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ApiKeyAuthProvider : ServiceStack.Auth.AuthProvider, ServiceStack.IAuthPlugin, ServiceStack.Auth.IAuthWithRequest - { - public bool AllowInHttpParams { get => throw null; set => throw null; } - public ApiKeyAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public ApiKeyAuthProvider() => throw null; - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task CacheSessionAsync(ServiceStack.Web.IRequest req, string apiSessionKey) => throw null; - public virtual string CreateApiKey(string environment, string keyType, int sizeBytes) => throw null; - public System.Action CreateApiKeyFilter { get => throw null; set => throw null; } - public static string[] DefaultEnvironments; - public static int DefaultKeySizeBytes; - public static string[] DefaultTypes; - public string[] Environments { get => throw null; set => throw null; } - public System.TimeSpan? ExpireKeysAfter { get => throw null; set => throw null; } - public ServiceStack.Auth.CreateApiKeyDelegate GenerateApiKey { get => throw null; set => throw null; } - public System.Collections.Generic.List GenerateNewApiKeys(string userId, params string[] environments) => throw null; - protected virtual ServiceStack.Auth.ApiKey GetApiKey(ServiceStack.Web.IRequest req, string apiKey) => throw null; - public static string GetSessionKey(string apiKey) => throw null; - public virtual System.Threading.Tasks.Task HasCachedSessionAsync(ServiceStack.Web.IRequest req, string apiSessionKey) => throw null; - protected virtual void Init(ServiceStack.Configuration.IAppSettings appSettings = default(ServiceStack.Configuration.IAppSettings)) => throw null; - public bool InitSchema { get => throw null; set => throw null; } - public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public int KeySizeBytes { get => throw null; set => throw null; } - public string[] KeyTypes { get => throw null; set => throw null; } - public const string Name = default; - public override System.Threading.Tasks.Task OnFailedAuthentication(ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; - public System.Threading.Tasks.Task PreAuthenticateWithApiKeyAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, ServiceStack.Auth.ApiKey apiKey) => throw null; - public const string Realm = default; - public override void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature) => throw null; - public bool RequireSecureConnection { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - public System.TimeSpan? SessionCacheDuration { get => throw null; set => throw null; } - public override string Type { get => throw null; } - public virtual void ValidateApiKey(ServiceStack.Web.IRequest req, ServiceStack.Auth.ApiKey apiKey) => throw null; - } - - // Generated from `ServiceStack.Auth.AssignRolesService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AssignRolesService : ServiceStack.Service - { - public AssignRolesService() => throw null; - public System.Threading.Tasks.Task Post(ServiceStack.AssignRoles request) => throw null; - } - - // Generated from `ServiceStack.Auth.AuthContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthContext : ServiceStack.IMeta - { - public AuthContext() => throw null; - public System.Collections.Generic.Dictionary AuthInfo { get => throw null; set => throw null; } - public ServiceStack.Auth.AuthProvider AuthProvider { get => throw null; set => throw null; } - public ServiceStack.Auth.AuthProviderSync AuthProviderSync { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthRepository AuthRepository { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthRepositoryAsync AuthRepositoryAsync { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthTokens AuthTokens { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public ServiceStack.IServiceBase Service { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthSession Session { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.AuthEvents` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthEvents : ServiceStack.Auth.IAuthEventsAsync, ServiceStack.Auth.IAuthEvents - { - public AuthEvents() => throw null; - public virtual void OnAuthenticated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public virtual System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void OnCreated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session) => throw null; - public virtual System.Threading.Tasks.Task OnCreatedAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void OnLogout(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService) => throw null; - public virtual System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService) => throw null; - public virtual System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public virtual System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.Auth.AuthFilterContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthFilterContext - { - public bool AlreadyAuthenticated { get => throw null; set => throw null; } - public AuthFilterContext() => throw null; - public ServiceStack.Auth.IAuthProvider AuthProvider { get => throw null; set => throw null; } - public ServiceStack.Authenticate AuthRequest { get => throw null; set => throw null; } - public ServiceStack.AuthenticateResponse AuthResponse { get => throw null; set => throw null; } - public ServiceStack.Auth.AuthenticateService AuthService { get => throw null; set => throw null; } - public bool DidAuthenticate { get => throw null; set => throw null; } - public string ReferrerUrl { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthSession Session { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.AuthHttpGateway` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthHttpGateway : ServiceStack.Auth.IAuthHttpGateway - { - public AuthHttpGateway() => throw null; - public string CreateMicrosoftPhotoUrl(string accessToken, string savePhotoSize = default(string)) => throw null; - public System.Threading.Tasks.Task CreateMicrosoftPhotoUrlAsync(string accessToken, string savePhotoSize = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string DownloadFacebookUserInfo(string facebookCode, params string[] fields) => throw null; - public System.Threading.Tasks.Task DownloadFacebookUserInfoAsync(string facebookCode, string[] fields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string DownloadGithubUserEmailsInfo(string accessToken) => throw null; - public System.Threading.Tasks.Task DownloadGithubUserEmailsInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string DownloadGithubUserInfo(string accessToken) => throw null; - public System.Threading.Tasks.Task DownloadGithubUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string DownloadGoogleUserInfo(string accessToken) => throw null; - public System.Threading.Tasks.Task DownloadGoogleUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string DownloadMicrosoftUserInfo(string accessToken) => throw null; - public System.Threading.Tasks.Task DownloadMicrosoftUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string DownloadTwitterUserInfo(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string twitterUserId) => throw null; - public System.Threading.Tasks.Task DownloadTwitterUserInfoAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string twitterUserId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string DownloadYammerUserInfo(string yammerUserId) => throw null; - public System.Threading.Tasks.Task DownloadYammerUserInfoAsync(string yammerUserId) => throw null; - public static string FacebookUserUrl; - public static string FacebookVerifyTokenUrl; - public string GetJsonFromGitHub(string url, string accessToken) => throw null; - public System.Threading.Tasks.Task GetJsonFromGitHubAsync(string url, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GetJsonFromOAuthUrl(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string url, string data = default(string)) => throw null; - public static System.Threading.Tasks.Task GetJsonFromOAuthUrlAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string url, string data = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string GithubUserEmailsUrl; - public static string GithubUserUrl; - protected static ServiceStack.Logging.ILog Log; - public static string TwitterUserUrl; - public static string TwitterVerifyCredentialsUrl; - public bool VerifyFacebookAccessToken(string appId, string accessToken) => throw null; - public System.Threading.Tasks.Task VerifyFacebookAccessTokenAsync(string appId, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public bool VerifyTwitterAccessToken(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, out string userId, out string email) => throw null; - public System.Threading.Tasks.Task VerifyTwitterAccessTokenAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string YammerUserUrl; - } - - // Generated from `ServiceStack.Auth.AuthId` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthId - { - public AuthId() => throw null; - public string Email { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.AuthMetadataProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthMetadataProvider : ServiceStack.Auth.IAuthMetadataProvider - { - public virtual void AddMetadata(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public virtual void AddProfileUrl(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public AuthMetadataProvider() => throw null; - public virtual string GetProfileUrl(ServiceStack.Auth.IAuthSession authSession, string defaultUrl = default(string)) => throw null; - public static string GetRedirectUrlIfAny(string url) => throw null; - public string NoProfileImgUrl { get => throw null; set => throw null; } - public const string ProfileUrlKey = default; - } - - // Generated from `ServiceStack.Auth.AuthMetadataProviderExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AuthMetadataProviderExtensions - { - public static void SafeAddMetadata(this ServiceStack.Auth.IAuthMetadataProvider provider, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - } - - // Generated from `ServiceStack.Auth.AuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AuthProvider : ServiceStack.IAuthPlugin, ServiceStack.Auth.IAuthProvider - { - public System.Func AccessTokenUrlFilter; - public System.Func AccountLockedValidator { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthEvents AuthEvents { get => throw null; } - protected AuthProvider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; - protected AuthProvider() => throw null; - public string AuthRealm { get => throw null; set => throw null; } - public abstract System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - public string CallbackUrl { get => throw null; set => throw null; } - protected virtual object ConvertToClientError(object failedResult, bool isHtml) => throw null; - protected virtual ServiceStack.Auth.AuthContext CreateAuthContext(ServiceStack.IServiceBase authService = default(ServiceStack.IServiceBase), ServiceStack.Auth.IAuthSession session = default(ServiceStack.Auth.IAuthSession), ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens)) => throw null; - public virtual string CreateOrMergeAuthSession(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public System.Func CustomValidationFilter { get => throw null; set => throw null; } - protected virtual System.Threading.Tasks.Task EmailAlreadyExistsAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.HashSet ExcludeAuthInfoItems { get => throw null; set => throw null; } - public System.Func FailedRedirectUrlFilter; - protected string FallbackConfig(string fallback) => throw null; - protected virtual string GetAuthRedirectUrl(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session) => throw null; - protected virtual ServiceStack.Auth.IAuthRepository GetAuthRepository(ServiceStack.Web.IRequest req) => throw null; - protected virtual ServiceStack.Auth.IAuthRepositoryAsync GetAuthRepositoryAsync(ServiceStack.Web.IRequest req) => throw null; - protected virtual string GetReferrerUrl(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public ServiceStack.Auth.IUserAuthRepositoryAsync GetUserAuthRepositoryAsync(ServiceStack.Web.IRequest request) => throw null; - public static System.Threading.Tasks.Task HandleFailedAuth(ServiceStack.Auth.IAuthProvider authProvider, ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public virtual System.Threading.Tasks.Task IsAccountLockedAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepoAsync, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public abstract bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)); - public System.Action> LoadUserAuthFilter { get => throw null; set => throw null; } - protected void LoadUserAuthInfo(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - protected virtual System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> LoadUserAuthInfoFilterAsync { get => throw null; set => throw null; } - protected static ServiceStack.Logging.ILog Log; - protected static bool LoginMatchesSession(ServiceStack.Auth.IAuthSession session, string userName) => throw null; - public virtual System.Threading.Tasks.Task LogoutAsync(ServiceStack.IServiceBase service, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Func LogoutUrlFilter; - public virtual System.Collections.Generic.Dictionary Meta { get => throw null; } - public ServiceStack.NavItem NavItem { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task OnFailedAuthentication(ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public bool PersistSession { get => throw null; set => throw null; } - public System.Func PreAuthUrlFilter; - public string Provider { get => throw null; set => throw null; } - public string RedirectUrl { get => throw null; set => throw null; } - public virtual void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature) => throw null; - public bool? RestoreSessionFromState { get => throw null; set => throw null; } - public bool SaveExtendedUserInfo { get => throw null; set => throw null; } - public System.TimeSpan? SessionExpiry { get => throw null; set => throw null; } - public System.Func SuccessRedirectUrlFilter; - public virtual string Type { get => throw null; } - public static string UrlFilter(ServiceStack.Auth.AuthContext provider, string url) => throw null; - protected virtual System.Threading.Tasks.Task UserNameAlreadyExistsAsync(ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected virtual System.Threading.Tasks.Task ValidateAccountAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.Auth.AuthProviderExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AuthProviderExtensions - { - public static bool IsAuthorizedSafe(this ServiceStack.Auth.IAuthProvider authProvider, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public static void PopulatePasswordHashes(this ServiceStack.Auth.IUserAuth newUser, string password, ServiceStack.Auth.IUserAuth existingUser = default(ServiceStack.Auth.IUserAuth)) => throw null; - public static bool PopulateRequestDtoIfAuthenticated(this ServiceStack.Web.IRequest req, object requestDto) => throw null; - public static string SanitizeOAuthUrl(this string url) => throw null; - public static void SaveSession(this ServiceStack.Auth.IAuthProvider provider, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, System.TimeSpan? sessionExpiry = default(System.TimeSpan?)) => throw null; - public static System.Threading.Tasks.Task SaveSessionAsync(this ServiceStack.Auth.IAuthProvider provider, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, System.TimeSpan? sessionExpiry = default(System.TimeSpan?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static bool VerifyDigestAuth(this ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence) => throw null; - public static bool VerifyPassword(this ServiceStack.Auth.IUserAuth userAuth, string providedPassword, out bool needsRehash) => throw null; - } - - // Generated from `ServiceStack.Auth.AuthProviderSync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AuthProviderSync : ServiceStack.IAuthPlugin, ServiceStack.Auth.IAuthProvider - { - public System.Func AccessTokenUrlFilter; - public System.Func AccountLockedValidator { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthEvents AuthEvents { get => throw null; } - protected AuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; - protected AuthProviderSync() => throw null; - public string AuthRealm { get => throw null; set => throw null; } - public abstract object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request); - public System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string CallbackUrl { get => throw null; set => throw null; } - protected virtual object ConvertToClientError(object failedResult, bool isHtml) => throw null; - public virtual string CreateOrMergeAuthSession(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public System.Func CustomValidationFilter { get => throw null; set => throw null; } - protected virtual bool EmailAlreadyExists(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens)) => throw null; - public System.Collections.Generic.HashSet ExcludeAuthInfoItems { get => throw null; set => throw null; } - public System.Func FailedRedirectUrlFilter; - protected string FallbackConfig(string fallback) => throw null; - protected virtual string GetAuthRedirectUrl(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session) => throw null; - protected virtual ServiceStack.Auth.IAuthRepository GetAuthRepository(ServiceStack.Web.IRequest req) => throw null; - protected virtual string GetReferrerUrl(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public static System.Threading.Tasks.Task HandleFailedAuth(ServiceStack.Auth.IAuthProvider authProvider, ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public virtual bool IsAccountLocked(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens)) => throw null; - public abstract bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)); - public System.Action> LoadUserAuthFilter { get => throw null; set => throw null; } - protected virtual void LoadUserAuthInfo(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - protected static ServiceStack.Logging.ILog Log; - protected static bool LoginMatchesSession(ServiceStack.Auth.IAuthSession session, string userName) => throw null; - public virtual object Logout(ServiceStack.IServiceBase service, ServiceStack.Authenticate request) => throw null; - public System.Threading.Tasks.Task LogoutAsync(ServiceStack.IServiceBase service, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Func LogoutUrlFilter; - public virtual System.Collections.Generic.Dictionary Meta { get => throw null; } - public ServiceStack.NavItem NavItem { get => throw null; set => throw null; } - public virtual ServiceStack.Web.IHttpResult OnAuthenticated(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public virtual System.Threading.Tasks.Task OnFailedAuthentication(ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public bool PersistSession { get => throw null; set => throw null; } - public System.Func PreAuthUrlFilter; - public string Provider { get => throw null; set => throw null; } - public string RedirectUrl { get => throw null; set => throw null; } - public virtual void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature) => throw null; - public bool? RestoreSessionFromState { get => throw null; set => throw null; } - public bool SaveExtendedUserInfo { get => throw null; set => throw null; } - public System.TimeSpan? SessionExpiry { get => throw null; set => throw null; } - public System.Func SuccessRedirectUrlFilter; - public virtual string Type { get => throw null; } - public static string UrlFilter(ServiceStack.Auth.AuthProviderSync provider, string url) => throw null; - protected virtual bool UserNameAlreadyExists(ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthTokens tokens = default(ServiceStack.Auth.IAuthTokens)) => throw null; - protected virtual ServiceStack.Web.IHttpResult ValidateAccount(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; - } - - // Generated from `ServiceStack.Auth.AuthRepositoryUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AuthRepositoryUtils - { - public static string ParseOrderBy(string orderBy, out bool desc) => throw null; - public static System.Collections.Generic.IEnumerable SortAndPage(this System.Collections.Generic.IEnumerable q, string orderBy, int? skip, int? take) where TUserAuth : ServiceStack.Auth.IUserAuth => throw null; - } - - // Generated from `ServiceStack.Auth.AuthResultContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthResultContext - { - public AuthResultContext() => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public ServiceStack.Web.IHttpResult Result { get => throw null; set => throw null; } - public ServiceStack.IServiceBase Service { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthSession Session { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.AuthTokens` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthTokens : ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.Auth.IAuthTokens - { - public string AccessToken { get => throw null; set => throw null; } - public string AccessTokenSecret { get => throw null; set => throw null; } - public string Address { get => throw null; set => throw null; } - public string Address2 { get => throw null; set => throw null; } - public AuthTokens() => throw null; - public System.DateTime? BirthDate { get => throw null; set => throw null; } - public string BirthDateRaw { get => throw null; set => throw null; } - public string City { get => throw null; set => throw null; } - public string Company { get => throw null; set => throw null; } - public string Country { get => throw null; set => throw null; } - public string Culture { get => throw null; set => throw null; } - public string DisplayName { get => throw null; set => throw null; } - public string Email { get => throw null; set => throw null; } - public string FirstName { get => throw null; set => throw null; } - public string FullName { get => throw null; set => throw null; } - public string Gender { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public string Language { get => throw null; set => throw null; } - public string LastName { get => throw null; set => throw null; } - public string MailAddress { get => throw null; set => throw null; } - public string Nickname { get => throw null; set => throw null; } - public string PhoneNumber { get => throw null; set => throw null; } - public string PostalCode { get => throw null; set => throw null; } - public string Provider { get => throw null; set => throw null; } - public string RefreshToken { get => throw null; set => throw null; } - public System.DateTime? RefreshTokenExpiry { get => throw null; set => throw null; } - public string RequestToken { get => throw null; set => throw null; } - public string RequestTokenSecret { get => throw null; set => throw null; } - public string State { get => throw null; set => throw null; } - public string TimeZone { get => throw null; set => throw null; } - public string UserId { get => throw null; set => throw null; } - public string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.AuthenticateService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AuthenticateService : ServiceStack.Service - { - public const string ApiKeyProvider = default; - public static System.Func AuthResponseDecorator { get => throw null; set => throw null; } - public ServiceStack.AuthenticateResponse Authenticate(ServiceStack.Authenticate request) => throw null; - public System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public AuthenticateService() => throw null; - public const string BasicProvider = default; - public const string CredentialsAliasProvider = default; - public const string CredentialsProvider = default; - public static System.Func CurrentSessionFactory { get => throw null; set => throw null; } - public static string DefaultOAuthProvider { get => throw null; set => throw null; } - public static string DefaultOAuthRealm { get => throw null; set => throw null; } - public System.Threading.Tasks.Task DeleteAsync(ServiceStack.Authenticate request) => throw null; - public const string DigestProvider = default; - public System.Threading.Tasks.Task GetAsync(ServiceStack.Authenticate request) => throw null; - public static ServiceStack.Auth.IAuthProvider GetAuthProvider(string provider) => throw null; - public static ServiceStack.Auth.IAuthProvider[] GetAuthProviders(string provider = default(string)) => throw null; - public static ServiceStack.Auth.JwtAuthProviderReader GetJwtAuthProvider() => throw null; - public static ServiceStack.Auth.JwtAuthProviderReader GetRequiredJwtAuthProvider() => throw null; - public static ServiceStack.Auth.IUserSessionSource GetUserSessionSource() => throw null; - public static ServiceStack.Auth.IUserSessionSourceAsync GetUserSessionSourceAsync() => throw null; - public static string HtmlRedirect { get => throw null; set => throw null; } - public static string HtmlRedirectAccessDenied { get => throw null; set => throw null; } - public static string HtmlRedirectReturnParam { get => throw null; set => throw null; } - public static bool HtmlRedirectReturnPathOnly { get => throw null; set => throw null; } - public const string IdentityProvider = default; - public static void Init(System.Func sessionFactory, params ServiceStack.Auth.IAuthProvider[] authProviders) => throw null; - public const string JwtProvider = default; - public const string LogoutAction = default; - public void Options(ServiceStack.Authenticate request) => throw null; - public object Post(ServiceStack.Authenticate request) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.Authenticate request) => throw null; - public static ServiceStack.Auth.ValidateFn ValidateFn { get => throw null; set => throw null; } - public const string WindowsAuthProvider = default; - } - - // Generated from `ServiceStack.Auth.BasicAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicAuthProvider : ServiceStack.Auth.CredentialsAuthProvider, ServiceStack.Auth.IAuthWithRequest - { - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public BasicAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public BasicAuthProvider() => throw null; - public static string Name; - public virtual System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; - public static string Realm; - public override string Type { get => throw null; } - } - - // Generated from `ServiceStack.Auth.BasicAuthProviderSync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicAuthProviderSync : ServiceStack.Auth.CredentialsAuthProviderSync, ServiceStack.Auth.IAuthWithRequestSync - { - public override object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; - public BasicAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public BasicAuthProviderSync() => throw null; - public static string Name; - public virtual void PreAuthenticate(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; - public static string Realm; - public override string Type { get => throw null; } - } - - // Generated from `ServiceStack.Auth.ConvertSessionToTokenService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConvertSessionToTokenService : ServiceStack.Service - { - public object Any(ServiceStack.ConvertSessionToToken request) => throw null; - public ConvertSessionToTokenService() => throw null; - } - - // Generated from `ServiceStack.Auth.CreateApiKeyDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate string CreateApiKeyDelegate(string environment, string keyType, int keySizeBytes); - - // Generated from `ServiceStack.Auth.CredentialsAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CredentialsAuthProvider : ServiceStack.Auth.AuthProvider - { - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, string referrerUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected virtual System.Threading.Tasks.Task AuthenticatePrivateRequestAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, string referrerUrl, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public CredentialsAuthProvider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; - public CredentialsAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public CredentialsAuthProvider() => throw null; - public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public static string Name; - public static string Realm; - protected virtual System.Threading.Tasks.Task ResetSessionBeforeLoginAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public bool SkipPasswordVerificationForInProcessRequests { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task TryAuthenticateAsync(ServiceStack.IServiceBase authService, string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override string Type { get => throw null; } - } - - // Generated from `ServiceStack.Auth.CredentialsAuthProviderSync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CredentialsAuthProviderSync : ServiceStack.Auth.AuthProviderSync - { - public override object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; - protected object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, string referrerUrl) => throw null; - protected object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password) => throw null; - protected virtual object AuthenticatePrivateRequest(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, string referrerUrl) => throw null; - public CredentialsAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; - public CredentialsAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public CredentialsAuthProviderSync() => throw null; - public ServiceStack.Auth.IUserAuthRepository GetUserAuthRepository(ServiceStack.Web.IRequest request) => throw null; - public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public static string Name; - public override ServiceStack.Web.IHttpResult OnAuthenticated(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public static string Realm; - protected virtual ServiceStack.Auth.IAuthSession ResetSessionBeforeLogin(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName) => throw null; - public bool SkipPasswordVerificationForInProcessRequests { get => throw null; set => throw null; } - public virtual bool TryAuthenticate(ServiceStack.IServiceBase authService, string userName, string password) => throw null; - public override string Type { get => throw null; } - } - - // Generated from `ServiceStack.Auth.DigestAuthFunctions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DigestAuthFunctions - { - public string Base64Decode(string StringToDecode) => throw null; - public string Base64Encode(string StringToEncode) => throw null; - public string ConvertToHexString(System.Collections.Generic.IEnumerable hash) => throw null; - public string CreateAuthResponse(System.Collections.Generic.Dictionary digestHeaders, string Ha1, string Ha2) => throw null; - public string CreateAuthResponse(System.Collections.Generic.Dictionary digestHeaders, string Ha1) => throw null; - public string CreateHa1(string Username, string Realm, string Password) => throw null; - public string CreateHa1(System.Collections.Generic.Dictionary digestHeaders, string password) => throw null; - public string CreateHa2(System.Collections.Generic.Dictionary digestHeaders) => throw null; - public DigestAuthFunctions() => throw null; - public string GetNonce(string IPAddress, string PrivateKey) => throw null; - public string[] GetNonceParts(string nonce) => throw null; - public string PrivateHashEncode(string TimeStamp, string IPAddress, string PrivateKey) => throw null; - public bool StaleNonce(string nonce, int Timeout) => throw null; - public bool ValidateNonce(string nonce, string IPAddress, string PrivateKey) => throw null; - public bool ValidateResponse(System.Collections.Generic.Dictionary digestInfo, string PrivateKey, int NonceTimeOut, string DigestHA1, string sequence) => throw null; - } - - // Generated from `ServiceStack.Auth.DigestAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DigestAuthProvider : ServiceStack.Auth.AuthProvider, ServiceStack.Auth.IAuthWithRequest - { - public ServiceStack.Configuration.IAppSettings AppSettings { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public DigestAuthProvider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; - public DigestAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public DigestAuthProvider() => throw null; - public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public static string Name; - public static int NonceTimeOut; - public override System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override System.Threading.Tasks.Task OnFailedAuthentication(ServiceStack.Auth.IAuthSession session, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; - public string PrivateKey; - public static string Realm; - public virtual bool TryAuthenticate(ServiceStack.IServiceBase authService, string userName, string password) => throw null; - public override string Type { get => throw null; } - } - - // Generated from `ServiceStack.Auth.EmailAddresses` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmailAddresses - { - public string Address { get => throw null; set => throw null; } - public EmailAddresses() => throw null; - public string Type { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.FacebookAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FacebookAuthProvider : ServiceStack.Auth.OAuthProvider - { - public string AppId { get => throw null; set => throw null; } - public string AppSecret { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected virtual System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static string[] DefaultFields; - public FacebookAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public string[] Fields { get => throw null; set => throw null; } - protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public override System.Collections.Generic.Dictionary Meta { get => throw null; } - public const string Name = default; - public string[] Permissions { get => throw null; set => throw null; } - public static string PreAuthUrl; - public static string Realm; - public bool RetrieveUserPicture { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.FullRegistrationValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FullRegistrationValidator : ServiceStack.Auth.RegistrationValidator - { - public FullRegistrationValidator() => throw null; - } - - // Generated from `ServiceStack.Auth.GetAccessTokenService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetAccessTokenService : ServiceStack.Service - { - public System.Threading.Tasks.Task Any(ServiceStack.GetAccessToken request) => throw null; - public GetAccessTokenService() => throw null; - } - - // Generated from `ServiceStack.Auth.GetApiKeysService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetApiKeysService : ServiceStack.Service - { - public object Any(ServiceStack.GetApiKeys request) => throw null; - public GetApiKeysService() => throw null; - } - - // Generated from `ServiceStack.Auth.GithubAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GithubAuthProvider : ServiceStack.Auth.OAuthProvider - { - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected virtual System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string ClientId { get => throw null; set => throw null; } - public string ClientSecret { get => throw null; set => throw null; } - public const string DefaultPreAuthUrl = default; - public const string DefaultVerifyAccessTokenUrl = default; - public GithubAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public override System.Collections.Generic.Dictionary Meta { get => throw null; } - public const string Name = default; - public string PreAuthUrl { get => throw null; set => throw null; } - public static string Realm; - public string[] Scopes { get => throw null; set => throw null; } - public string VerifyAccessTokenUrl { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.GoogleAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GoogleAuthProvider : ServiceStack.Auth.OAuth2Provider - { - protected override System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Collections.Generic.Dictionary authInfo = default(System.Collections.Generic.Dictionary), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected override System.Threading.Tasks.Task> CreateAuthInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public const string DefaultAccessTokenUrl = default; - public const string DefaultAuthorizeUrl = default; - public const string DefaultUserProfileUrl = default; - public const string DefaultVerifyTokenUrl = default; - public GoogleAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) : base(default(ServiceStack.Configuration.IAppSettings), default(string), default(string)) => throw null; - public const string Name = default; - public virtual System.Threading.Tasks.Task OnVerifyAccessTokenAsync(string accessToken, ServiceStack.Auth.AuthContext ctx) => throw null; - public static string Realm; - } - - // Generated from `ServiceStack.Auth.HashExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HashExtensions - { - public static string HexHash(System.Security.Cryptography.HashAlgorithm hash, string s) => throw null; - public static string HexHash(System.Security.Cryptography.HashAlgorithm hash, System.Byte[] bytes) => throw null; - public static string ToSha1Hash(this string value) => throw null; - public static System.Byte[] ToSha1HashBytes(this System.Byte[] bytes) => throw null; - public static string ToSha256Hash(this string value) => throw null; - public static System.Byte[] ToSha256HashBytes(this System.Byte[] bytes) => throw null; - public static string ToSha512Hash(this string value) => throw null; - public static System.Byte[] ToSha512HashBytes(this System.Byte[] bytes) => throw null; - } - - // Generated from `ServiceStack.Auth.IAuthEvents` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthEvents - { - void OnAuthenticated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); - void OnCreated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session); - void OnLogout(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService); - void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService); - ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); - } - - // Generated from `ServiceStack.Auth.IAuthEventsAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthEventsAsync - { - System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IAuthHttpGateway` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthHttpGateway - { - string CreateMicrosoftPhotoUrl(string accessToken, string savePhotoSize = default(string)); - System.Threading.Tasks.Task CreateMicrosoftPhotoUrlAsync(string accessToken, string savePhotoSize = default(string), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string DownloadFacebookUserInfo(string facebookCode, params string[] fields); - System.Threading.Tasks.Task DownloadFacebookUserInfoAsync(string facebookCode, string[] fields, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string DownloadGithubUserEmailsInfo(string accessToken); - System.Threading.Tasks.Task DownloadGithubUserEmailsInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string DownloadGithubUserInfo(string accessToken); - System.Threading.Tasks.Task DownloadGithubUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string DownloadGoogleUserInfo(string accessToken); - System.Threading.Tasks.Task DownloadGoogleUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string DownloadMicrosoftUserInfo(string accessToken); - System.Threading.Tasks.Task DownloadMicrosoftUserInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string DownloadTwitterUserInfo(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string twitterUserId); - System.Threading.Tasks.Task DownloadTwitterUserInfoAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string twitterUserId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string DownloadYammerUserInfo(string yammerUserId); - System.Threading.Tasks.Task DownloadYammerUserInfoAsync(string yammerUserId); - bool VerifyFacebookAccessToken(string appId, string accessToken); - System.Threading.Tasks.Task VerifyFacebookAccessTokenAsync(string appId, string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - bool VerifyTwitterAccessToken(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, out string userId, out string email); - System.Threading.Tasks.Task VerifyTwitterAccessTokenAsync(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IAuthMetadataProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthMetadataProvider - { - void AddMetadata(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); - string GetProfileUrl(ServiceStack.Auth.IAuthSession authSession, string defaultUrl = default(string)); - } - - // Generated from `ServiceStack.Auth.IAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthProvider - { - string AuthRealm { get; set; } - System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string CallbackUrl { get; set; } - bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)); - System.Threading.Tasks.Task LogoutAsync(ServiceStack.IServiceBase service, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Collections.Generic.Dictionary Meta { get; } - string Provider { get; set; } - string Type { get; } - } - - // Generated from `ServiceStack.Auth.IAuthRepository` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthRepository - { - ServiceStack.Auth.IUserAuthDetails CreateOrMergeAuthSession(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens); - ServiceStack.Auth.IUserAuth GetUserAuth(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens); - ServiceStack.Auth.IUserAuth GetUserAuthByUserName(string userNameOrEmail); - System.Collections.Generic.List GetUserAuthDetails(string userAuthId); - void LoadUserAuth(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens); - void SaveUserAuth(ServiceStack.Auth.IUserAuth userAuth); - void SaveUserAuth(ServiceStack.Auth.IAuthSession authSession); - bool TryAuthenticate(string userName, string password, out ServiceStack.Auth.IUserAuth userAuth); - bool TryAuthenticate(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, out ServiceStack.Auth.IUserAuth userAuth); - } - - // Generated from `ServiceStack.Auth.IAuthRepositoryAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthRepositoryAsync - { - System.Threading.Tasks.Task CreateOrMergeAuthSessionAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetUserAuthByUserNameAsync(string userNameOrEmail, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetUserAuthDetailsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task LoadUserAuthAsync(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task TryAuthenticateAsync(string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task TryAuthenticateAsync(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IAuthResponseFilter` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthResponseFilter - { - void Execute(ServiceStack.Auth.AuthFilterContext authContext); - System.Threading.Tasks.Task ResultFilterAsync(ServiceStack.Auth.AuthResultContext authContext, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IAuthSession` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthSession - { - string AuthProvider { get; set; } - System.DateTime CreatedAt { get; set; } - string DisplayName { get; set; } - string Email { get; set; } - string FirstName { get; set; } - bool FromToken { get; set; } - bool HasPermission(string permission, ServiceStack.Auth.IAuthRepository authRepo); - System.Threading.Tasks.Task HasPermissionAsync(string permission, ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - bool HasRole(string role, ServiceStack.Auth.IAuthRepository authRepo); - System.Threading.Tasks.Task HasRoleAsync(string role, ServiceStack.Auth.IAuthRepositoryAsync authRepo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string Id { get; set; } - bool IsAuthenticated { get; set; } - bool IsAuthorized(string provider); - System.DateTime LastModified { get; set; } - string LastName { get; set; } - void OnAuthenticated(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); - void OnCreated(ServiceStack.Web.IRequest httpReq); - void OnLogout(ServiceStack.IServiceBase authService); - void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase service); - System.Collections.Generic.List Permissions { get; set; } - string ProfileUrl { get; set; } - System.Collections.Generic.List ProviderOAuthAccess { get; set; } - string ReferrerUrl { get; set; } - System.Collections.Generic.List Roles { get; set; } - string Sequence { get; set; } - string UserAuthId { get; set; } - string UserAuthName { get; set; } - string UserName { get; set; } - } - - // Generated from `ServiceStack.Auth.IAuthSessionExtended` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthSessionExtended : ServiceStack.Auth.IAuthSession - { - string Address { get; set; } - string Address2 { get; set; } - System.Collections.Generic.List Audiences { get; set; } - System.DateTime? BirthDate { get; set; } - string BirthDateRaw { get; set; } - string City { get; set; } - string Company { get; set; } - string Country { get; set; } - string Dns { get; set; } - bool? EmailConfirmed { get; set; } - string Gender { get; set; } - string Hash { get; set; } - string HomePhone { get; set; } - string MobilePhone { get; set; } - System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void OnLoad(ServiceStack.Web.IRequest httpReq); - System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase service, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string PhoneNumber { get; set; } - bool? PhoneNumberConfirmed { get; set; } - string PostalCode { get; set; } - string PrimaryEmail { get; set; } - string Rsa { get; set; } - System.Collections.Generic.List Scopes { get; set; } - string SecurityStamp { get; set; } - string Sid { get; set; } - string State { get; set; } - bool? TwoFactorEnabled { get; set; } - string Type { get; set; } - ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo); - System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - string Webpage { get; set; } - } - - // Generated from `ServiceStack.Auth.IAuthWithRequest` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthWithRequest - { - System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res); - } - - // Generated from `ServiceStack.Auth.IAuthWithRequestSync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IAuthWithRequestSync - { - void PreAuthenticate(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res); - } - - // Generated from `ServiceStack.Auth.IClearable` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IClearable - { - void Clear(); - } - - // Generated from `ServiceStack.Auth.IClearableAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IClearableAsync - { - System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.ICustomUserAuth` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICustomUserAuth - { - ServiceStack.Auth.IUserAuth CreateUserAuth(); - ServiceStack.Auth.IUserAuthDetails CreateUserAuthDetails(); - } - - // Generated from `ServiceStack.Auth.IHashProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHashProvider - { - void GetHashAndSaltString(string Data, out string Hash, out string Salt); - bool VerifyHashString(string Data, string Hash, string Salt); - } - - // Generated from `ServiceStack.Auth.IManageApiKeys` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IManageApiKeys - { - bool ApiKeyExists(string apiKey); - ServiceStack.Auth.ApiKey GetApiKey(string apiKey); - System.Collections.Generic.List GetUserApiKeys(string userId); - void InitApiKeySchema(); - void StoreAll(System.Collections.Generic.IEnumerable apiKeys); - } - - // Generated from `ServiceStack.Auth.IManageApiKeysAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IManageApiKeysAsync - { - System.Threading.Tasks.Task ApiKeyExistsAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetApiKeyAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetUserApiKeysAsync(string userId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - void InitApiKeySchema(); - System.Threading.Tasks.Task StoreAllAsync(System.Collections.Generic.IEnumerable apiKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IManageRoles` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IManageRoles - { - void AssignRoles(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)); - System.Collections.Generic.ICollection GetPermissions(string userAuthId); - System.Collections.Generic.ICollection GetRoles(string userAuthId); - void GetRolesAndPermissions(string userAuthId, out System.Collections.Generic.ICollection roles, out System.Collections.Generic.ICollection permissions); - bool HasPermission(string userAuthId, string permission); - bool HasRole(string userAuthId, string role); - void UnAssignRoles(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)); - } - - // Generated from `ServiceStack.Auth.IManageRolesAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IManageRolesAsync - { - System.Threading.Tasks.Task AssignRolesAsync(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetPermissionsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task, System.Collections.Generic.ICollection>> GetRolesAndPermissionsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetRolesAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task HasPermissionAsync(string userAuthId, string permission, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task HasRoleAsync(string userAuthId, string role, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UnAssignRolesAsync(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IMemoryAuthRepository` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMemoryAuthRepository : ServiceStack.Auth.IUserAuthRepository, ServiceStack.Auth.IManageApiKeys, ServiceStack.Auth.ICustomUserAuth, ServiceStack.Auth.IClearable, ServiceStack.Auth.IAuthRepository - { - System.Collections.Generic.Dictionary> Hashes { get; } - System.Collections.Generic.Dictionary> Sets { get; } - } - - // Generated from `ServiceStack.Auth.IOAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IOAuthProvider : ServiceStack.Auth.IAuthProvider - { - string AccessTokenUrl { get; set; } - ServiceStack.Auth.IAuthHttpGateway AuthHttpGateway { get; set; } - string AuthorizeUrl { get; set; } - string ConsumerKey { get; set; } - string ConsumerSecret { get; set; } - string RequestTokenUrl { get; set; } - } - - // Generated from `ServiceStack.Auth.IQueryUserAuth` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryUserAuth - { - System.Collections.Generic.List GetUserAuths(string orderBy = default(string), int? skip = default(int?), int? take = default(int?)); - System.Collections.Generic.List SearchUserAuths(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?)); - } - - // Generated from `ServiceStack.Auth.IQueryUserAuthAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IQueryUserAuthAsync - { - System.Threading.Tasks.Task> GetUserAuthsAsync(string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> SearchUserAuthsAsync(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IRedisClientFacade` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisClientFacade : System.IDisposable - { - void AddItemToSet(string setId, string item); - ServiceStack.Auth.ITypedRedisClientFacade As(); - void DeleteById(string id); - System.Collections.Generic.HashSet GetAllItemsFromSet(string setId); - string GetValueFromHash(string hashId, string key); - void RemoveEntryFromHash(string hashId, string key); - void SetEntryInHash(string hashId, string key, string value); - void Store(T item); - } - - // Generated from `ServiceStack.Auth.IRedisClientFacadeAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisClientFacadeAsync : System.IAsyncDisposable - { - System.Threading.Tasks.Task AddItemToSetAsync(string setId, string item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - ServiceStack.Auth.ITypedRedisClientFacadeAsync AsAsync(); - System.Threading.Tasks.Task DeleteByIdAsync(string id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetAllItemsFromSetAsync(string setId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetValueFromHashAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task RemoveEntryFromHashAsync(string hashId, string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task SetEntryInHashAsync(string hashId, string key, string value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task StoreAsync(T item, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IRedisClientManagerFacade` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRedisClientManagerFacade : ServiceStack.Auth.IClearableAsync, ServiceStack.Auth.IClearable - { - ServiceStack.Auth.IRedisClientFacade GetClient(); - System.Threading.Tasks.Task GetClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.ITypedRedisClientFacade<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypedRedisClientFacade - { - void DeleteById(string id); - void DeleteByIds(System.Collections.IEnumerable ids); - System.Collections.Generic.List GetAll(int? skip = default(int?), int? take = default(int?)); - T GetById(object id); - System.Collections.Generic.List GetByIds(System.Collections.IEnumerable ids); - int GetNextSequence(); - } - - // Generated from `ServiceStack.Auth.ITypedRedisClientFacadeAsync<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypedRedisClientFacadeAsync - { - System.Threading.Tasks.Task DeleteByIdAsync(string id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetAllAsync(int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetByIdAsync(object id, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task> GetByIdsAsync(System.Collections.IEnumerable ids, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetNextSequenceAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IUserAuthRepository` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUserAuthRepository : ServiceStack.Auth.IAuthRepository - { - ServiceStack.Auth.IUserAuth CreateUserAuth(ServiceStack.Auth.IUserAuth newUser, string password); - void DeleteUserAuth(string userAuthId); - ServiceStack.Auth.IUserAuth GetUserAuth(string userAuthId); - ServiceStack.Auth.IUserAuth UpdateUserAuth(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password); - ServiceStack.Auth.IUserAuth UpdateUserAuth(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser); - } - - // Generated from `ServiceStack.Auth.IUserAuthRepositoryAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUserAuthRepositoryAsync : ServiceStack.Auth.IAuthRepositoryAsync - { - System.Threading.Tasks.Task CreateUserAuthAsync(ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task DeleteUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task GetUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IUserSessionSource` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUserSessionSource - { - ServiceStack.Auth.IAuthSession GetUserSession(string userAuthId); - } - - // Generated from `ServiceStack.Auth.IUserSessionSourceAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IUserSessionSourceAsync - { - System.Threading.Tasks.Task GetUserSessionAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.Auth.IWebSudoAuthSession` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IWebSudoAuthSession : ServiceStack.Auth.IAuthSession - { - System.DateTime AuthenticatedAt { get; set; } - int AuthenticatedCount { get; set; } - System.DateTime? AuthenticatedWebSudoUntil { get; set; } - } - - // Generated from `ServiceStack.Auth.InMemoryAuthRepository` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryAuthRepository : ServiceStack.Auth.InMemoryAuthRepository - { - public InMemoryAuthRepository() => throw null; - } - - // Generated from `ServiceStack.Auth.InMemoryAuthRepository<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryAuthRepository : ServiceStack.Auth.RedisAuthRepository, ServiceStack.Auth.IUserAuthRepository, ServiceStack.Auth.IMemoryAuthRepository, ServiceStack.Auth.IManageApiKeys, ServiceStack.Auth.ICustomUserAuth, ServiceStack.Auth.IClearable, ServiceStack.Auth.IAuthRepository where TUserAuth : class, ServiceStack.Auth.IUserAuth where TUserAuthDetails : class, ServiceStack.Auth.IUserAuthDetails - { - public System.Collections.Generic.Dictionary> Hashes { get => throw null; set => throw null; } - public InMemoryAuthRepository() : base(default(ServiceStack.Auth.IRedisClientManagerFacade)) => throw null; - public static ServiceStack.Auth.InMemoryAuthRepository Instance; - public System.Collections.Generic.Dictionary> Sets { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.JwtAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JwtAuthProvider : ServiceStack.Auth.JwtAuthProviderReader, ServiceStack.Auth.IAuthResponseFilter - { - public static string CreateEncryptedJweToken(ServiceStack.Text.JsonObject jwtPayload, System.Security.Cryptography.RSAParameters publicKey) => throw null; - public static string CreateJwt(ServiceStack.Text.JsonObject jwtHeader, ServiceStack.Text.JsonObject jwtPayload, System.Func signData) => throw null; - public string CreateJwtBearerToken(ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session, System.Collections.Generic.IEnumerable roles = default(System.Collections.Generic.IEnumerable), System.Collections.Generic.IEnumerable perms = default(System.Collections.Generic.IEnumerable)) => throw null; - public string CreateJwtBearerToken(ServiceStack.Auth.IAuthSession session, System.Collections.Generic.IEnumerable roles = default(System.Collections.Generic.IEnumerable), System.Collections.Generic.IEnumerable perms = default(System.Collections.Generic.IEnumerable)) => throw null; - public static ServiceStack.Text.JsonObject CreateJwtHeader(string algorithm, string keyId = default(string)) => throw null; - public static ServiceStack.Text.JsonObject CreateJwtPayload(ServiceStack.Auth.IAuthSession session, string issuer, System.TimeSpan expireIn, System.Collections.Generic.IEnumerable audiences = default(System.Collections.Generic.IEnumerable), System.Collections.Generic.IEnumerable roles = default(System.Collections.Generic.IEnumerable), System.Collections.Generic.IEnumerable permissions = default(System.Collections.Generic.IEnumerable)) => throw null; - public string CreateJwtRefreshToken(string userId, System.TimeSpan expireRefreshTokenIn) => throw null; - public string CreateJwtRefreshToken(ServiceStack.Web.IRequest req, string userId, System.TimeSpan expireRefreshTokenIn) => throw null; - public static string Dump(string jwt) => throw null; - protected virtual bool EnableRefreshToken() => throw null; - public void Execute(ServiceStack.Auth.AuthFilterContext authContext) => throw null; - public System.Func GetHashAlgorithm(ServiceStack.Web.IRequest req) => throw null; - public System.Func GetHashAlgorithm() => throw null; - public override void Init(ServiceStack.Configuration.IAppSettings appSettings = default(ServiceStack.Configuration.IAppSettings)) => throw null; - public JwtAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public JwtAuthProvider() => throw null; - public static void PrintDump(string jwt) => throw null; - public System.Threading.Tasks.Task ResultFilterAsync(ServiceStack.Auth.AuthResultContext authContext, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public bool SetBearerTokenOnAuthenticateResponse { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.JwtAuthProviderReader` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JwtAuthProviderReader : ServiceStack.Auth.AuthProvider, ServiceStack.IAuthPlugin, ServiceStack.Auth.IAuthWithRequest - { - public bool AllowInFormData { get => throw null; set => throw null; } - public bool AllowInQueryString { get => throw null; set => throw null; } - public void AssertJwtPayloadIsValid(ServiceStack.Text.JsonObject jwtPayload) => throw null; - public void AssertRefreshJwtPayloadIsValid(ServiceStack.Text.JsonObject jwtPayload) => throw null; - public string Audience { get => throw null; set => throw null; } - public System.Collections.Generic.List Audiences { get => throw null; set => throw null; } - public System.Byte[] AuthKey { get => throw null; set => throw null; } - public string AuthKeyBase64 { set => throw null; } - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public object AuthenticateResponseDecorator(ServiceStack.Auth.AuthFilterContext authCtx) => throw null; - public virtual ServiceStack.Auth.IAuthSession ConvertJwtToSession(ServiceStack.Web.IRequest req, string jwt) => throw null; - public System.Action CreateHeaderFilter { get => throw null; set => throw null; } - public System.Action CreatePayloadFilter { get => throw null; set => throw null; } - public static ServiceStack.Auth.IAuthSession CreateSessionFromJwt(ServiceStack.Web.IRequest req) => throw null; - public virtual ServiceStack.Auth.IAuthSession CreateSessionFromPayload(ServiceStack.Web.IRequest req, ServiceStack.Text.JsonObject jwtPayload) => throw null; - public static System.Int64 DefaultResolveUnixTime(System.DateTime dateTime) => throw null; - public bool EncryptPayload { get => throw null; set => throw null; } - public System.TimeSpan ExpireRefreshTokensIn { get => throw null; set => throw null; } - public System.TimeSpan ExpireTokensIn { get => throw null; set => throw null; } - public int ExpireTokensInDays { set => throw null; } - public static System.Collections.Generic.Dictionary ExtractPayload(string jwt) => throw null; - public System.Collections.Generic.List FallbackAuthKeys { get => throw null; set => throw null; } - public System.Collections.Generic.List FallbackPrivateKeys { get => throw null; set => throw null; } - public System.Collections.Generic.List FallbackPublicKeys { get => throw null; set => throw null; } - public System.Byte[] GetAuthKey(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public System.Collections.Generic.List GetFallbackAuthKeys(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public System.Collections.Generic.List GetFallbackPrivateKeys(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public System.Collections.Generic.List GetFallbackPublicKeys(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public virtual string GetInvalidJwtPayloadError(ServiceStack.Text.JsonObject jwtPayload) => throw null; - public virtual string GetInvalidRefreshJwtPayloadError(ServiceStack.Text.JsonObject jwtPayload) => throw null; - public virtual string GetKeyId(ServiceStack.Web.IRequest req) => throw null; - public System.Security.Cryptography.RSAParameters? GetPrivateKey(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public System.Security.Cryptography.RSAParameters? GetPublicKey(ServiceStack.Web.IRequest req = default(ServiceStack.Web.IRequest)) => throw null; - public static System.Int64? GetUnixTime(System.Collections.Generic.Dictionary jwtPayload, string key) => throw null; - public virtual ServiceStack.Text.JsonObject GetValidJwtPayload(ServiceStack.Web.IRequest req, string jwt) => throw null; - public virtual ServiceStack.Text.JsonObject GetValidJwtPayload(ServiceStack.Web.IRequest req) => throw null; - public ServiceStack.Text.JsonObject GetValidJwtPayload(string jwt) => throw null; - public virtual ServiceStack.Text.JsonObject GetVerifiedJwePayload(ServiceStack.Web.IRequest req, string[] parts) => throw null; - public virtual ServiceStack.Text.JsonObject GetVerifiedJwtPayload(ServiceStack.Web.IRequest req, string[] parts) => throw null; - public virtual bool HasBeenInvalidated(ServiceStack.Text.JsonObject jwtPayload, System.Int64 unixTime) => throw null; - public virtual bool HasExpired(ServiceStack.Text.JsonObject jwtPayload) => throw null; - public virtual bool HasInvalidAudience(ServiceStack.Text.JsonObject jwtPayload, out string audience) => throw null; - public virtual bool HasInvalidNotBefore(ServiceStack.Text.JsonObject jwtPayload) => throw null; - public virtual bool HasInvalidatedId(ServiceStack.Text.JsonObject jwtPayload) => throw null; - public string HashAlgorithm { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary> HmacAlgorithms; - public static System.Collections.Generic.HashSet IgnoreForOperationTypes; - public bool IncludeJwtInConvertSessionToTokenResponse { get => throw null; set => throw null; } - public virtual void Init(ServiceStack.Configuration.IAppSettings appSettings = default(ServiceStack.Configuration.IAppSettings)) => throw null; - public System.Collections.Generic.HashSet InvalidateJwtIds { get => throw null; set => throw null; } - public System.DateTime? InvalidateRefreshTokensIssuedBefore { get => throw null; set => throw null; } - public System.DateTime? InvalidateTokensIssuedBefore { get => throw null; set => throw null; } - public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public bool IsJwtValid(string jwt) => throw null; - public bool IsJwtValid(ServiceStack.Web.IRequest req, string jwt) => throw null; - public bool IsJwtValid(ServiceStack.Web.IRequest req) => throw null; - public string Issuer { get => throw null; set => throw null; } - public JwtAuthProviderReader(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public JwtAuthProviderReader() => throw null; - public string KeyId { get => throw null; set => throw null; } - public string LastJwtId() => throw null; - public string LastRefreshJwtId() => throw null; - public const string Name = default; - public string NextJwtId() => throw null; - public string NextRefreshJwtId() => throw null; - public System.Action PopulateSessionFilter { get => throw null; set => throw null; } - public System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; - public System.Func, string> PreValidateJwtPayloadFilter { get => throw null; set => throw null; } - public System.Security.Cryptography.RSAParameters? PrivateKey { get => throw null; set => throw null; } - public string PrivateKeyXml { get => throw null; set => throw null; } - public System.Security.Cryptography.RSAParameters? PublicKey { get => throw null; set => throw null; } - public string PublicKeyXml { get => throw null; set => throw null; } - public const string Realm = default; - public override void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature feature) => throw null; - public bool RemoveInvalidTokenCookie { get => throw null; set => throw null; } - public bool RequireHashAlgorithm { get => throw null; set => throw null; } - public bool RequireSecureConnection { get => throw null; set => throw null; } - public bool RequiresAudience { get => throw null; set => throw null; } - public System.Func ResolveJwtId { get => throw null; set => throw null; } - public System.Func ResolveRefreshJwtId { get => throw null; set => throw null; } - public System.Func ResolveUnixTime { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary> RsaSignAlgorithms; - public static System.Collections.Generic.Dictionary> RsaVerifyAlgorithms; - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - public override string Type { get => throw null; } - public bool? UseRefreshTokenCookie { get => throw null; set => throw null; } - public static ServiceStack.RsaKeyLengths UseRsaKeyLength; - public bool UseTokenCookie { get => throw null; set => throw null; } - public System.Func ValidateRefreshToken { get => throw null; set => throw null; } - public System.Func ValidateToken { get => throw null; set => throw null; } - public virtual bool VerifyJwePayload(ServiceStack.Web.IRequest req, string[] parts, out System.Byte[] iv, out System.Byte[] cipherText, out System.Byte[] cryptKey) => throw null; - public virtual bool VerifyPayload(ServiceStack.Web.IRequest req, string algorithm, System.Byte[] bytesToSign, System.Byte[] sentSignatureBytes) => throw null; - } - - // Generated from `ServiceStack.Auth.LinkedInAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LinkedInAuthProvider : ServiceStack.Auth.OAuth2Provider - { - protected override System.Threading.Tasks.Task> CreateAuthInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public const string DefaultAccessTokenUrl = default; - public const string DefaultAuthorizeUrl = default; - public const string DefaultUserProfileUrl = default; - public LinkedInAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) : base(default(ServiceStack.Configuration.IAppSettings), default(string), default(string)) => throw null; - public const string Name = default; - public const string Realm = default; - } - - // Generated from `ServiceStack.Auth.MicrosoftGraphAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MicrosoftGraphAuthProvider : ServiceStack.Auth.OAuth2Provider - { - public string AppId { get => throw null; set => throw null; } - public string AppSecret { get => throw null; set => throw null; } - protected override System.Threading.Tasks.Task> CreateAuthInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public const string DefaultUserProfileUrl = default; - protected override System.Threading.Tasks.Task GetAccessTokenJsonAsync(string code, ServiceStack.Auth.AuthContext ctx, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public MicrosoftGraphAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) : base(default(ServiceStack.Configuration.IAppSettings), default(string), default(string)) => throw null; - public const string Name = default; - public static string PhotoUrl { get => throw null; set => throw null; } - public const string Realm = default; - public bool SavePhoto { get => throw null; set => throw null; } - public string SavePhotoSize { get => throw null; set => throw null; } - public string Tenant { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.MultiAuthEvents` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MultiAuthEvents : ServiceStack.Auth.IAuthEvents - { - public System.Collections.Generic.List ChildEvents { get => throw null; set => throw null; } - public System.Collections.Generic.List ChildEventsAsync { get => throw null; set => throw null; } - public MultiAuthEvents(System.Collections.Generic.IEnumerable authEvents = default(System.Collections.Generic.IEnumerable)) => throw null; - public void OnAuthenticated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public System.Threading.Tasks.Task OnAuthenticatedAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void OnCreated(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session) => throw null; - public void OnLogout(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService) => throw null; - public System.Threading.Tasks.Task OnLogoutAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase authService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void OnRegistered(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService) => throw null; - public System.Threading.Tasks.Task OnRegisteredAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Auth.IAuthSession session, ServiceStack.IServiceBase registrationService, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.Web.IHttpResult Validate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public System.Threading.Tasks.Task ValidateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.Auth.NetCoreIdentityAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreIdentityAuthProvider : ServiceStack.Auth.AuthProvider, ServiceStack.IAuthPlugin, ServiceStack.Auth.IAuthWithRequest - { - public System.Collections.Generic.List AdminRoles { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string AuthenticationType { get => throw null; set => throw null; } - public bool AutoSignInSessions { get => throw null; set => throw null; } - public System.Func AutoSignInSessionsMatching { get => throw null; set => throw null; } - public System.Func, ServiceStack.Auth.IAuthSession, ServiceStack.Web.IRequest, System.Security.Claims.ClaimsPrincipal> CreateClaimsPrincipal { get => throw null; set => throw null; } - public bool DefaultAutoSignInSessionsMatching(ServiceStack.Web.IRequest req) => throw null; - public string IdClaimType { get => throw null; set => throw null; } - public System.Collections.Generic.List IdClaimTypes { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet IgnoreAutoSignInForExtensions { get => throw null; set => throw null; } - public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public string Issuer { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary MapClaimsToSession { get => throw null; set => throw null; } - public const string Name = default; - public NetCoreIdentityAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public bool OverrideHtmlRedirect { get => throw null; set => throw null; } - public string PermissionClaimType { get => throw null; set => throw null; } - public System.Action PopulateSessionFilter { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task PreAuthenticateAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res) => throw null; - public const string Realm = default; - public override void Register(ServiceStack.IAppHost appHost, ServiceStack.AuthFeature authFeature) => throw null; - public System.Collections.Generic.List RestrictToClientIds { get => throw null; set => throw null; } - public string RoleClaimType { get => throw null; set => throw null; } - public System.Threading.Tasks.Task SignInAuthenticatedSessions(ServiceStack.Host.NetCore.NetCoreRequest req) => throw null; - public override string Type { get => throw null; } - } - - // Generated from `ServiceStack.Auth.OAuth2Provider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class OAuth2Provider : ServiceStack.Auth.OAuthProvider - { - protected virtual void AssertAccessTokenUrl() => throw null; - protected virtual void AssertAuthorizeUrl() => throw null; - protected override void AssertValidState() => throw null; - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected virtual System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Collections.Generic.Dictionary authInfo = default(System.Collections.Generic.Dictionary), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected abstract System.Threading.Tasks.Task> CreateAuthInfoAsync(string accessToken, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - protected virtual System.Threading.Tasks.Task GetAccessTokenJsonAsync(string code, ServiceStack.Auth.AuthContext ctx, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected virtual string GetUserAuthName(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public OAuth2Provider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider, string consumerKeyName, string consumerSecretName) => throw null; - public OAuth2Provider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; - public System.Func ResolveUnknownDisplayName { get => throw null; set => throw null; } - public string ResponseMode { get => throw null; set => throw null; } - public string[] Scopes { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.OAuth2ProviderSync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class OAuth2ProviderSync : ServiceStack.Auth.OAuthProviderSync - { - protected virtual void AssertAccessTokenUrl() => throw null; - protected virtual void AssertAuthorizeUrl() => throw null; - protected override void AssertValidState() => throw null; - public override object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; - protected virtual object AuthenticateWithAccessToken(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken, System.Collections.Generic.Dictionary authInfo = default(System.Collections.Generic.Dictionary)) => throw null; - protected abstract System.Collections.Generic.Dictionary CreateAuthInfo(string accessToken); - protected virtual string GetAccessTokenJson(string code) => throw null; - protected virtual string GetUserAuthName(ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - protected override void LoadUserAuthInfo(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public OAuth2ProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider, string consumerKeyName, string consumerSecretName) => throw null; - public OAuth2ProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; - public string ResponseMode { get => throw null; set => throw null; } - public string[] Scopes { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.OAuthAuthorizer` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OAuthAuthorizer - { - public string AccessToken; - public string AccessTokenSecret; - public bool AcquireAccessToken(string requestTokenSecret, string authorizationToken, string authorizationVerifier) => throw null; - public bool AcquireRequestToken() => throw null; - public System.Collections.Generic.Dictionary AuthInfo; - public string AuthorizationToken; - public string AuthorizationVerifier; - public static string AuthorizeRequest(string consumerKey, string consumerSecret, string oauthToken, string oauthTokenSecret, string method, System.Uri uri, string data) => throw null; - public static string AuthorizeRequest(ServiceStack.Auth.OAuthProvider provider, string oauthToken, string oauthTokenSecret, string method, System.Uri uri, string data) => throw null; - public static void AuthorizeTwitPic(ServiceStack.Auth.OAuthProvider provider, System.Net.HttpWebRequest wc, string oauthToken, string oauthTokenSecret) => throw null; - public OAuthAuthorizer(ServiceStack.Auth.IOAuthProvider provider) => throw null; - public static bool OrderHeadersLexically; - public string RequestToken; - public string RequestTokenSecret; - public string xAuthPassword; - public string xAuthUsername; - } - - // Generated from `ServiceStack.Auth.OAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class OAuthProvider : ServiceStack.Auth.AuthProvider, ServiceStack.Auth.IOAuthProvider, ServiceStack.Auth.IAuthProvider - { - public string AccessTokenUrl { get => throw null; set => throw null; } - protected virtual void AssertConsumerKey() => throw null; - protected virtual void AssertConsumerSecret() => throw null; - protected virtual void AssertValidState() => throw null; - public ServiceStack.Auth.IAuthHttpGateway AuthHttpGateway { get => throw null; set => throw null; } - public abstract override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)); - public string AuthorizeUrl { get => throw null; set => throw null; } - public string ConsumerKey { get => throw null; set => throw null; } - protected string ConsumerKeyName; - public string ConsumerSecret { get => throw null; set => throw null; } - protected string ConsumerSecretName; - protected ServiceStack.Auth.IAuthTokens Init(ServiceStack.IServiceBase authService, ref ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; - public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public string IssuerSigningKeysUrl { get => throw null; set => throw null; } - public virtual void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession userSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public override System.Collections.Generic.Dictionary Meta { get => throw null; } - public OAuthProvider(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider, string consumerKeyName = default(string), string consumerSecretName = default(string)) => throw null; - public OAuthProvider() => throw null; - public ServiceStack.Auth.OAuthAuthorizer OAuthUtils { get => throw null; set => throw null; } - public string RequestTokenUrl { get => throw null; set => throw null; } - public override string Type { get => throw null; } - public string UserProfileUrl { get => throw null; set => throw null; } - public System.Func> VerifyAccessTokenAsync { get => throw null; set => throw null; } - public string VerifyTokenUrl { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.OAuthProviderSync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class OAuthProviderSync : ServiceStack.Auth.AuthProviderSync, ServiceStack.Auth.IOAuthProvider, ServiceStack.Auth.IAuthProvider - { - public string AccessTokenUrl { get => throw null; set => throw null; } - protected virtual void AssertConsumerKey() => throw null; - protected virtual void AssertConsumerSecret() => throw null; - protected virtual void AssertValidState() => throw null; - public ServiceStack.Auth.IAuthHttpGateway AuthHttpGateway { get => throw null; set => throw null; } - public abstract override object Authenticate(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request); - public string AuthorizeUrl { get => throw null; set => throw null; } - public string ConsumerKey { get => throw null; set => throw null; } - protected string ConsumerKeyName; - public string ConsumerSecret { get => throw null; set => throw null; } - protected string ConsumerSecretName; - protected ServiceStack.Auth.IAuthTokens Init(ServiceStack.IServiceBase authService, ref ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request) => throw null; - public override bool IsAuthorized(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, ServiceStack.Authenticate request = default(ServiceStack.Authenticate)) => throw null; - public string IssuerSigningKeysUrl { get => throw null; set => throw null; } - public virtual void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession userSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public override System.Collections.Generic.Dictionary Meta { get => throw null; } - public OAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider, string consumerKeyName, string consumerSecretName) => throw null; - public OAuthProviderSync(ServiceStack.Configuration.IAppSettings appSettings, string authRealm, string oAuthProvider) => throw null; - public OAuthProviderSync() => throw null; - public ServiceStack.Auth.OAuthAuthorizer OAuthUtils { get => throw null; set => throw null; } - public string RequestTokenUrl { get => throw null; set => throw null; } - public override string Type { get => throw null; } - public string UserProfileUrl { get => throw null; set => throw null; } - public System.Func VerifyAccessToken { get => throw null; set => throw null; } - public string VerifyTokenUrl { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.OAuthUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class OAuthUtils - { - public static string PercentEncode(string s) => throw null; - } - - // Generated from `ServiceStack.Auth.OdnoklassnikiAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OdnoklassnikiAuthProvider : ServiceStack.Auth.OAuthProvider - { - public string ApplicationId { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public const string Name = default; - public OdnoklassnikiAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - public static string PreAuthUrl; - public string PublicKey { get => throw null; set => throw null; } - public static string Realm; - protected virtual void RequestFilter(System.Net.HttpWebRequest request) => throw null; - public string SecretKey { get => throw null; set => throw null; } - public static string TokenUrl; - } - - // Generated from `ServiceStack.Auth.PasswordHasher` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PasswordHasher : ServiceStack.Auth.IPasswordHasher - { - public const int DefaultIterationCount = default; - public virtual string HashPassword(string password) => throw null; - public int IterationCount { get => throw null; } - public static ServiceStack.Logging.ILog Log; - public PasswordHasher(int iterationCount) => throw null; - public PasswordHasher() => throw null; - public bool VerifyPassword(string hashedPassword, string providedPassword, out bool needsRehash) => throw null; - public System.Byte Version { get => throw null; } - } - - // Generated from `ServiceStack.Auth.Pbkdf2DeriveKeyDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate System.Byte[] Pbkdf2DeriveKeyDelegate(string password, System.Byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested); - - // Generated from `ServiceStack.Auth.Pbkdf2Provider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Pbkdf2Provider - { - public static ServiceStack.Auth.Pbkdf2DeriveKeyDelegate DeriveKey { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.RedisAuthRepository` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisAuthRepository : ServiceStack.Auth.RedisAuthRepository, ServiceStack.Auth.IUserAuthRepository, ServiceStack.Auth.IAuthRepository - { - public RedisAuthRepository(ServiceStack.Redis.IRedisClientsManager factory) : base(default(ServiceStack.Auth.IRedisClientManagerFacade)) => throw null; - public RedisAuthRepository(ServiceStack.Auth.IRedisClientManagerFacade factory) : base(default(ServiceStack.Auth.IRedisClientManagerFacade)) => throw null; - } - - // Generated from `ServiceStack.Auth.RedisAuthRepository<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisAuthRepository : ServiceStack.Auth.IUserAuthRepositoryAsync, ServiceStack.Auth.IUserAuthRepository, ServiceStack.Auth.IQueryUserAuthAsync, ServiceStack.Auth.IQueryUserAuth, ServiceStack.Auth.IManageApiKeysAsync, ServiceStack.Auth.IManageApiKeys, ServiceStack.Auth.ICustomUserAuth, ServiceStack.Auth.IClearableAsync, ServiceStack.Auth.IClearable, ServiceStack.Auth.IAuthRepositoryAsync, ServiceStack.Auth.IAuthRepository where TUserAuth : class, ServiceStack.Auth.IUserAuth where TUserAuthDetails : class, ServiceStack.Auth.IUserAuthDetails - { - public virtual bool ApiKeyExists(string apiKey) => throw null; - public virtual System.Threading.Tasks.Task ApiKeyExistsAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void Clear() => throw null; - public virtual System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual ServiceStack.Auth.IUserAuthDetails CreateOrMergeAuthSession(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public virtual System.Threading.Tasks.Task CreateOrMergeAuthSessionAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual ServiceStack.Auth.IUserAuth CreateUserAuth(ServiceStack.Auth.IUserAuth newUser, string password) => throw null; - public ServiceStack.Auth.IUserAuth CreateUserAuth() => throw null; - public virtual System.Threading.Tasks.Task CreateUserAuthAsync(ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.Auth.IUserAuthDetails CreateUserAuthDetails() => throw null; - public virtual void DeleteUserAuth(string userAuthId) => throw null; - public virtual System.Threading.Tasks.Task DeleteUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual ServiceStack.Auth.ApiKey GetApiKey(string apiKey) => throw null; - public virtual System.Threading.Tasks.Task GetApiKeyAsync(string apiKey, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Collections.Generic.List GetUserApiKeys(string userId) => throw null; - public virtual System.Threading.Tasks.Task> GetUserApiKeysAsync(string userId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual ServiceStack.Auth.IUserAuth GetUserAuth(string userAuthId) => throw null; - public virtual ServiceStack.Auth.IUserAuth GetUserAuth(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public virtual System.Threading.Tasks.Task GetUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task GetUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual ServiceStack.Auth.IUserAuth GetUserAuthByUserName(string userNameOrEmail) => throw null; - public virtual System.Threading.Tasks.Task GetUserAuthByUserNameAsync(string userNameOrEmail, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Collections.Generic.List GetUserAuthDetails(string userAuthId) => throw null; - public virtual System.Threading.Tasks.Task> GetUserAuthDetailsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.List GetUserAuths(string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; - public System.Threading.Tasks.Task> GetUserAuthsAsync(string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void InitApiKeySchema() => throw null; - public virtual System.Threading.Tasks.Task InitApiKeySchemaAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void LoadUserAuth(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public virtual System.Threading.Tasks.Task LoadUserAuthAsync(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string NamespacePrefix { get => throw null; set => throw null; } - public virtual System.Collections.Generic.List QueryUserAuths(System.Collections.Generic.List results, string query = default(string), string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; - public RedisAuthRepository(ServiceStack.Redis.IRedisClientsManager factory) => throw null; - public RedisAuthRepository(ServiceStack.Auth.IRedisClientManagerFacade factory) => throw null; - public void SaveUserAuth(ServiceStack.Auth.IUserAuth userAuth) => throw null; - public virtual void SaveUserAuth(ServiceStack.Auth.IAuthSession authSession) => throw null; - public virtual System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.List SearchUserAuths(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; - public System.Threading.Tasks.Task> SearchUserAuthsAsync(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual void StoreAll(System.Collections.Generic.IEnumerable apiKeys) => throw null; - public virtual System.Threading.Tasks.Task StoreAllAsync(System.Collections.Generic.IEnumerable apiKeys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual bool TryAuthenticate(string userName, string password, out ServiceStack.Auth.IUserAuth userAuth) => throw null; - public bool TryAuthenticate(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, out ServiceStack.Auth.IUserAuth userAuth) => throw null; - public virtual System.Threading.Tasks.Task TryAuthenticateAsync(string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task TryAuthenticateAsync(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual ServiceStack.Auth.IUserAuth UpdateUserAuth(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; - public virtual ServiceStack.Auth.IUserAuth UpdateUserAuth(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser) => throw null; - public virtual System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public virtual System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.Auth.RedisClientManagerFacade` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedisClientManagerFacade : ServiceStack.Auth.IRedisClientManagerFacade, ServiceStack.Auth.IClearableAsync, ServiceStack.Auth.IClearable - { - public void Clear() => throw null; - public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.Auth.IRedisClientFacade GetClient() => throw null; - public System.Threading.Tasks.Task GetClientAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public RedisClientManagerFacade(ServiceStack.Redis.IRedisClientsManager redisManager) => throw null; - } - - // Generated from `ServiceStack.Auth.RegenerateApiKeysService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RegenerateApiKeysService : ServiceStack.Service - { - public object Any(ServiceStack.RegenerateApiKeys request) => throw null; - public RegenerateApiKeysService() => throw null; - } - - // Generated from `ServiceStack.Auth.RegisterService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RegisterService : ServiceStack.Service - { - public static bool AllowUpdates { get => throw null; set => throw null; } - public ServiceStack.Auth.IAuthEvents AuthEvents { get => throw null; set => throw null; } - public object Post(ServiceStack.Register request) => throw null; - public System.Threading.Tasks.Task PostAsync(ServiceStack.Register request) => throw null; - public System.Threading.Tasks.Task PutAsync(ServiceStack.Register request) => throw null; - public RegisterService() => throw null; - public ServiceStack.FluentValidation.IValidator RegistrationValidator { get => throw null; set => throw null; } - public static ServiceStack.Auth.IUserAuth ToUserAuth(ServiceStack.Auth.ICustomUserAuth customUserAuth, ServiceStack.Register request) => throw null; - public object UpdateUserAuth(ServiceStack.Register request) => throw null; - public System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Register request) => throw null; - public static ServiceStack.Auth.ValidateFn ValidateFn { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.RegistrationValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RegistrationValidator : ServiceStack.FluentValidation.AbstractValidator - { - public RegistrationValidator() => throw null; - } - - // Generated from `ServiceStack.Auth.SaltedHash` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SaltedHash : ServiceStack.Auth.IHashProvider - { - public void GetHashAndSalt(System.Byte[] Data, out System.Byte[] Hash, out System.Byte[] Salt) => throw null; - public void GetHashAndSaltString(string Data, out string Hash, out string Salt) => throw null; - public SaltedHash(System.Security.Cryptography.HashAlgorithm HashAlgorithm, int theSaltLength) => throw null; - public SaltedHash() => throw null; - public bool VerifyHash(System.Byte[] Data, System.Byte[] Hash, System.Byte[] Salt) => throw null; - public bool VerifyHashString(string Data, string Hash, string Salt) => throw null; - } - - // Generated from `ServiceStack.Auth.SocialExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SocialExtensions - { - public static string ToGravatarUrl(this string email, int size = default(int)) => throw null; - } - - // Generated from `ServiceStack.Auth.TwitterAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TwitterAuthProvider : ServiceStack.Auth.OAuthProvider - { - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public const string DefaultAuthorizeUrl = default; - protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public override System.Collections.Generic.Dictionary Meta { get => throw null; } - public const string Name = default; - public static string Realm; - public bool RetrieveEmail { get => throw null; set => throw null; } - public TwitterAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - } - - // Generated from `ServiceStack.Auth.UnAssignRolesService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UnAssignRolesService : ServiceStack.Service - { - public System.Threading.Tasks.Task Post(ServiceStack.UnAssignRoles request) => throw null; - public UnAssignRolesService() => throw null; - } - - // Generated from `ServiceStack.Auth.UserAuth` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UserAuth : ServiceStack.IMeta, ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.Auth.IUserAuth - { - public virtual string Address { get => throw null; set => throw null; } - public virtual string Address2 { get => throw null; set => throw null; } - public virtual System.DateTime? BirthDate { get => throw null; set => throw null; } - public virtual string BirthDateRaw { get => throw null; set => throw null; } - public virtual string City { get => throw null; set => throw null; } - public virtual string Company { get => throw null; set => throw null; } - public virtual string Country { get => throw null; set => throw null; } - public virtual System.DateTime CreatedDate { get => throw null; set => throw null; } - public virtual string Culture { get => throw null; set => throw null; } - public virtual string DigestHa1Hash { get => throw null; set => throw null; } - public virtual string DisplayName { get => throw null; set => throw null; } - public virtual string Email { get => throw null; set => throw null; } - public virtual string FirstName { get => throw null; set => throw null; } - public virtual string FullName { get => throw null; set => throw null; } - public virtual string Gender { get => throw null; set => throw null; } - public virtual int Id { get => throw null; set => throw null; } - public virtual int InvalidLoginAttempts { get => throw null; set => throw null; } - public virtual string Language { get => throw null; set => throw null; } - public virtual System.DateTime? LastLoginAttempt { get => throw null; set => throw null; } - public virtual string LastName { get => throw null; set => throw null; } - public virtual System.DateTime? LockedDate { get => throw null; set => throw null; } - public virtual string MailAddress { get => throw null; set => throw null; } - public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public virtual System.DateTime ModifiedDate { get => throw null; set => throw null; } - public virtual string Nickname { get => throw null; set => throw null; } - public virtual string PasswordHash { get => throw null; set => throw null; } - public virtual System.Collections.Generic.List Permissions { get => throw null; set => throw null; } - public virtual string PhoneNumber { get => throw null; set => throw null; } - public virtual string PostalCode { get => throw null; set => throw null; } - public virtual string PrimaryEmail { get => throw null; set => throw null; } - public virtual string RecoveryToken { get => throw null; set => throw null; } - public virtual int? RefId { get => throw null; set => throw null; } - public virtual string RefIdStr { get => throw null; set => throw null; } - public virtual System.Collections.Generic.List Roles { get => throw null; set => throw null; } - public virtual string Salt { get => throw null; set => throw null; } - public virtual string State { get => throw null; set => throw null; } - public virtual string TimeZone { get => throw null; set => throw null; } - public UserAuth() => throw null; - public virtual string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.UserAuthDetails` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UserAuthDetails : ServiceStack.IMeta, ServiceStack.Auth.IUserAuthDetailsExtended, ServiceStack.Auth.IUserAuthDetails, ServiceStack.Auth.IAuthTokens - { - public virtual string AccessToken { get => throw null; set => throw null; } - public virtual string AccessTokenSecret { get => throw null; set => throw null; } - public virtual string Address { get => throw null; set => throw null; } - public virtual string Address2 { get => throw null; set => throw null; } - public virtual System.DateTime? BirthDate { get => throw null; set => throw null; } - public virtual string BirthDateRaw { get => throw null; set => throw null; } - public virtual string City { get => throw null; set => throw null; } - public virtual string Company { get => throw null; set => throw null; } - public virtual string Country { get => throw null; set => throw null; } - public virtual System.DateTime CreatedDate { get => throw null; set => throw null; } - public virtual string Culture { get => throw null; set => throw null; } - public virtual string DisplayName { get => throw null; set => throw null; } - public virtual string Email { get => throw null; set => throw null; } - public virtual string FirstName { get => throw null; set => throw null; } - public virtual string FullName { get => throw null; set => throw null; } - public virtual string Gender { get => throw null; set => throw null; } - public virtual int Id { get => throw null; set => throw null; } - public virtual System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public virtual string Language { get => throw null; set => throw null; } - public virtual string LastName { get => throw null; set => throw null; } - public virtual string MailAddress { get => throw null; set => throw null; } - public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public virtual System.DateTime ModifiedDate { get => throw null; set => throw null; } - public virtual string Nickname { get => throw null; set => throw null; } - public virtual string PhoneNumber { get => throw null; set => throw null; } - public virtual string PostalCode { get => throw null; set => throw null; } - public virtual string Provider { get => throw null; set => throw null; } - public virtual int? RefId { get => throw null; set => throw null; } - public virtual string RefIdStr { get => throw null; set => throw null; } - public virtual string RefreshToken { get => throw null; set => throw null; } - public virtual System.DateTime? RefreshTokenExpiry { get => throw null; set => throw null; } - public virtual string RequestToken { get => throw null; set => throw null; } - public virtual string RequestTokenSecret { get => throw null; set => throw null; } - public virtual string State { get => throw null; set => throw null; } - public virtual string TimeZone { get => throw null; set => throw null; } - public UserAuthDetails() => throw null; - public virtual int UserAuthId { get => throw null; set => throw null; } - public virtual string UserId { get => throw null; set => throw null; } - public virtual string UserName { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Auth.UserAuthExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class UserAuthExtensions - { - public static System.Collections.Generic.List ConvertSessionToClaims(this ServiceStack.Auth.IAuthSession session, string issuer = default(string), string roleClaimType = default(string), string permissionClaimType = default(string)) => throw null; - public static T Get(this ServiceStack.IMeta instance) => throw null; - public static void PopulateFromMap(this ServiceStack.Auth.IAuthSession session, System.Collections.Generic.Dictionary map) => throw null; - public static void PopulateMissing(this ServiceStack.Auth.IUserAuthDetails instance, ServiceStack.Auth.IAuthTokens tokens, bool overwriteReserved = default(bool)) => throw null; - public static void PopulateMissingExtended(this ServiceStack.Auth.IUserAuthDetailsExtended instance, ServiceStack.Auth.IUserAuthDetailsExtended other, bool overwriteReserved = default(bool)) => throw null; - public static void RecordInvalidLoginAttempt(this ServiceStack.Auth.IUserAuthRepository repo, ServiceStack.Auth.IUserAuth userAuth) => throw null; - public static System.Threading.Tasks.Task RecordInvalidLoginAttemptAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync repo, ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void RecordSuccessfulLogin(this ServiceStack.Auth.IUserAuthRepository repo, ServiceStack.Auth.IUserAuth userAuth, bool rehashPassword, string password) => throw null; - public static void RecordSuccessfulLogin(this ServiceStack.Auth.IUserAuthRepository repo, ServiceStack.Auth.IUserAuth userAuth) => throw null; - public static System.Threading.Tasks.Task RecordSuccessfulLoginAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync repo, ServiceStack.Auth.IUserAuth userAuth, bool rehashPassword, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task RecordSuccessfulLoginAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync repo, ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static T Set(this ServiceStack.IMeta instance, T value) => throw null; - public static ServiceStack.Auth.AuthTokens ToAuthTokens(this ServiceStack.Auth.IAuthTokens from) => throw null; - public static bool TryGet(this ServiceStack.IMeta instance, out T value) => throw null; - } - - // Generated from `ServiceStack.Auth.UserAuthRepositoryAsyncManageRolesWrapper` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UserAuthRepositoryAsyncManageRolesWrapper : ServiceStack.Auth.UserAuthRepositoryAsyncWrapper, ServiceStack.Auth.IManageRolesAsync - { - public System.Threading.Tasks.Task AssignRolesAsync(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> GetPermissionsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task, System.Collections.Generic.ICollection>> GetRolesAndPermissionsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> GetRolesAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task HasPermissionAsync(string userAuthId, string permission, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task HasRoleAsync(string userAuthId, string role, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task UnAssignRolesAsync(string userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public UserAuthRepositoryAsyncManageRolesWrapper(ServiceStack.Auth.IAuthRepository authRepo) : base(default(ServiceStack.Auth.IAuthRepository)) => throw null; - } - - // Generated from `ServiceStack.Auth.UserAuthRepositoryAsyncWrapper` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UserAuthRepositoryAsyncWrapper : ServiceStack.IRequiresSchema, ServiceStack.Auth.IUserAuthRepositoryAsync, ServiceStack.Auth.IQueryUserAuthAsync, ServiceStack.Auth.ICustomUserAuth, ServiceStack.Auth.IAuthRepositoryAsync - { - public ServiceStack.Auth.IAuthRepository AuthRepo { get => throw null; } - public System.Threading.Tasks.Task CreateOrMergeAuthSessionAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.Auth.IUserAuth CreateUserAuth() => throw null; - public System.Threading.Tasks.Task CreateUserAuthAsync(ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.Auth.IUserAuthDetails CreateUserAuthDetails() => throw null; - public System.Threading.Tasks.Task DeleteUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetUserAuthAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetUserAuthByUserNameAsync(string userNameOrEmail, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> GetUserAuthDetailsAsync(string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> GetUserAuthsAsync(string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void InitSchema() => throw null; - public System.Threading.Tasks.Task LoadUserAuthAsync(ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SaveUserAuthAsync(ServiceStack.Auth.IAuthSession authSession, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> SearchUserAuthsAsync(string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task TryAuthenticateAsync(string userName, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task TryAuthenticateAsync(System.Collections.Generic.Dictionary digestHeaders, string privateKey, int nonceTimeOut, string sequence, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task UpdateUserAuthAsync(ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public UserAuthRepositoryAsyncWrapper(ServiceStack.Auth.IAuthRepository authRepo) => throw null; - } - - // Generated from `ServiceStack.Auth.UserAuthRepositoryAsyncWrapperExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class UserAuthRepositoryAsyncWrapperExtensions - { - public static ServiceStack.Auth.IAuthRepositoryAsync AsAsync(this ServiceStack.Auth.IAuthRepository authRepo) => throw null; - public static bool TryGetNativeQueryAuth(this ServiceStack.Auth.IAuthRepository syncRepo, ServiceStack.Auth.IAuthRepositoryAsync asyncRepo, out ServiceStack.Auth.IQueryUserAuth queryUserAuth, out ServiceStack.Auth.IQueryUserAuthAsync queryUserAuthAsync) => throw null; - public static ServiceStack.Auth.IAuthRepository UnwrapAuthRepository(this ServiceStack.Auth.IAuthRepositoryAsync asyncRepo) => throw null; - } - - // Generated from `ServiceStack.Auth.UserAuthRepositoryExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class UserAuthRepositoryExtensions - { - public static void AssignRoles(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)) => throw null; - public static void AssignRoles(this ServiceStack.Auth.IAuthRepository userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)) => throw null; - public static System.Threading.Tasks.Task AssignRolesAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task AssignRolesAsync(this ServiceStack.Auth.IAuthRepositoryAsync userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static ServiceStack.Auth.IUserAuth CreateUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; - public static System.Threading.Tasks.Task CreateUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void DeleteUserAuth(this ServiceStack.Auth.IUserAuthRepository authRepo, int userAuthId) => throw null; - public static void DeleteUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, string userAuthId) => throw null; - public static System.Threading.Tasks.Task DeleteUserAuthAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync authRepo, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task DeleteUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.List GetAuthTokens(this ServiceStack.Auth.IAuthRepository repo, string userAuthId) => throw null; - public static System.Threading.Tasks.Task> GetAuthTokensAsync(this ServiceStack.Auth.IAuthRepositoryAsync repo, string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.ICollection GetPermissions(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId) => throw null; - public static System.Collections.Generic.ICollection GetPermissions(this ServiceStack.Auth.IAuthRepository userAuthRepo, ServiceStack.Auth.IUserAuth userAuth) => throw null; - public static System.Threading.Tasks.Task> GetPermissionsAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> GetPermissionsAsync(this ServiceStack.Auth.IAuthRepositoryAsync userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.ICollection GetRoles(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId) => throw null; - public static System.Collections.Generic.ICollection GetRoles(this ServiceStack.Auth.IAuthRepository userAuthRepo, ServiceStack.Auth.IUserAuth userAuth) => throw null; - public static System.Threading.Tasks.Task> GetRolesAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task> GetRolesAsync(this ServiceStack.Auth.IAuthRepositoryAsync userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static ServiceStack.Auth.IUserAuth GetUserAuth(this ServiceStack.Auth.IUserAuthRepository authRepo, int userAuthId) => throw null; - public static ServiceStack.Auth.IUserAuth GetUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, string userAuthId) => throw null; - public static System.Threading.Tasks.Task GetUserAuthAsync(this ServiceStack.Auth.IUserAuthRepositoryAsync authRepo, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task GetUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, string userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.List GetUserAuthDetails(this ServiceStack.Auth.IAuthRepository authRepo, int userAuthId) => throw null; - public static System.Threading.Tasks.Task> GetUserAuthDetailsAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, int userAuthId, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.List GetUserAuths(this ServiceStack.Auth.IAuthRepository authRepo, string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; - public static System.Threading.Tasks.Task> GetUserAuthsAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static bool HasPermission(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId, string permission) => throw null; - public static System.Threading.Tasks.Task HasPermissionAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, string permission, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static bool HasRole(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId, string role) => throw null; - public static System.Threading.Tasks.Task HasRoleAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, string role, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void PopulateSession(this ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthRepository authRepo = default(ServiceStack.Auth.IAuthRepository)) => throw null; - public static System.Threading.Tasks.Task PopulateSessionAsync(this ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IUserAuth userAuth, ServiceStack.Auth.IAuthRepositoryAsync authRepo = default(ServiceStack.Auth.IAuthRepositoryAsync), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Collections.Generic.List SearchUserAuths(this ServiceStack.Auth.IAuthRepository authRepo, string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?)) => throw null; - public static System.Threading.Tasks.Task> SearchUserAuthsAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, string query, string orderBy = default(string), int? skip = default(int?), int? take = default(int?), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void UnAssignRoles(this ServiceStack.Auth.IManageRoles manageRoles, int userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)) => throw null; - public static void UnAssignRoles(this ServiceStack.Auth.IAuthRepository userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection)) => throw null; - public static System.Threading.Tasks.Task UnAssignRolesAsync(this ServiceStack.Auth.IManageRolesAsync manageRoles, int userAuthId, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UnAssignRolesAsync(this ServiceStack.Auth.IAuthRepositoryAsync userAuthRepo, ServiceStack.Auth.IUserAuth userAuth, System.Collections.Generic.ICollection roles = default(System.Collections.Generic.ICollection), System.Collections.Generic.ICollection permissions = default(System.Collections.Generic.ICollection), System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static ServiceStack.Auth.IUserAuth UpdateUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password) => throw null; - public static ServiceStack.Auth.IUserAuth UpdateUserAuth(this ServiceStack.Auth.IAuthRepository authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser) => throw null; - public static System.Threading.Tasks.Task UpdateUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, string password, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task UpdateUserAuthAsync(this ServiceStack.Auth.IAuthRepositoryAsync authRepo, ServiceStack.Auth.IUserAuth existingUser, ServiceStack.Auth.IUserAuth newUser, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public static void ValidateNewUser(this ServiceStack.Auth.IUserAuth newUser, string password) => throw null; - public static void ValidateNewUser(this ServiceStack.Auth.IUserAuth newUser) => throw null; - } - - // Generated from `ServiceStack.Auth.UserAuthRole` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class UserAuthRole : ServiceStack.IMeta - { - public virtual System.DateTime CreatedDate { get => throw null; set => throw null; } - public virtual int Id { get => throw null; set => throw null; } - public virtual System.Collections.Generic.Dictionary Meta { get => throw null; set => throw null; } - public virtual System.DateTime ModifiedDate { get => throw null; set => throw null; } - public virtual string Permission { get => throw null; set => throw null; } - public virtual int? RefId { get => throw null; set => throw null; } - public virtual string RefIdStr { get => throw null; set => throw null; } - public virtual string Role { get => throw null; set => throw null; } - public virtual int UserAuthId { get => throw null; set => throw null; } - public UserAuthRole() => throw null; - } - - // Generated from `ServiceStack.Auth.ValidateAsyncFn` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate System.Threading.Tasks.Task ValidateAsyncFn(ServiceStack.IServiceBase service, string httpMethod, object requestDto); - - // Generated from `ServiceStack.Auth.ValidateFn` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ValidateFn(ServiceStack.IServiceBase service, string httpMethod, object requestDto); - - // Generated from `ServiceStack.Auth.VkAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class VkAuthProvider : ServiceStack.Auth.OAuthProvider - { - public string ApiVersion { get => throw null; set => throw null; } - public string ApplicationId { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected virtual System.Threading.Tasks.Task AuthenticateWithAccessTokenAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Auth.IAuthTokens tokens, string accessToken) => throw null; - protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public const string Name = default; - public static string PreAuthUrl; - public static string Realm; - protected virtual void RequestFilter(System.Net.HttpWebRequest request) => throw null; - public string Scope { get => throw null; set => throw null; } - public string SecureKey { get => throw null; set => throw null; } - public static string TokenUrl; - public VkAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - } - - // Generated from `ServiceStack.Auth.YammerAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class YammerAuthProvider : ServiceStack.Auth.OAuthProvider - { - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string ClientId { get => throw null; set => throw null; } - public string ClientSecret { get => throw null; set => throw null; } - protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public const string Name = default; - public string PreAuthUrl { get => throw null; set => throw null; } - public YammerAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - } - - // Generated from `ServiceStack.Auth.YandexAuthProvider` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class YandexAuthProvider : ServiceStack.Auth.OAuthProvider - { - public string ApplicationId { get => throw null; set => throw null; } - public string ApplicationPassword { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task AuthenticateAsync(ServiceStack.IServiceBase authService, ServiceStack.Auth.IAuthSession session, ServiceStack.Authenticate request, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - protected override System.Threading.Tasks.Task LoadUserAuthInfoAsync(ServiceStack.AuthUserSession userSession, ServiceStack.Auth.IAuthTokens tokens, System.Collections.Generic.Dictionary authInfo, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public override void LoadUserOAuthProvider(ServiceStack.Auth.IAuthSession authSession, ServiceStack.Auth.IAuthTokens tokens) => throw null; - public const string Name = default; - public static string PreAuthUrl; - public static string Realm; - public static string TokenUrl; - public YandexAuthProvider(ServiceStack.Configuration.IAppSettings appSettings) => throw null; - } - - } - namespace Caching - { - // Generated from `ServiceStack.Caching.CacheClientAsyncExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CacheClientAsyncExtensions - { - public static ServiceStack.Caching.ICacheClientAsync AsAsync(this ServiceStack.Caching.ICacheClient cache) => throw null; - public static ServiceStack.Caching.ICacheClient AsSync(this ServiceStack.Caching.ICacheClientAsync cache) => throw null; - public static ServiceStack.Caching.ICacheClient Unwrap(this ServiceStack.Caching.ICacheClientAsync cache) => throw null; - } - - // Generated from `ServiceStack.Caching.CacheClientAsyncWrapper` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CacheClientAsyncWrapper : System.IAsyncDisposable, ServiceStack.Caching.IRemoveByPatternAsync, ServiceStack.Caching.ICacheClientAsync - { - public System.Threading.Tasks.Task AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task AddAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public ServiceStack.Caching.ICacheClient Cache { get => throw null; } - public CacheClientAsyncWrapper(ServiceStack.Caching.ICacheClient cache) => throw null; - public System.Threading.Tasks.Task DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public System.Threading.Tasks.Task FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveByRegexAsync(string regex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveExpiredEntriesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.Caching.CacheClientWithPrefix` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CacheClientWithPrefix : System.IDisposable, ServiceStack.Caching.IRemoveByPattern, ServiceStack.Caching.ICacheClientExtended, ServiceStack.Caching.ICacheClient - { - public bool Add(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Add(string key, T value, System.DateTime expiresAt) => throw null; - public bool Add(string key, T value) => throw null; - public CacheClientWithPrefix(ServiceStack.Caching.ICacheClient cache, string prefix) => throw null; - public System.Int64 Decrement(string key, System.UInt32 amount) => throw null; - public void Dispose() => throw null; - public void FlushAll() => throw null; - public T Get(string key) => throw null; - public System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys) => throw null; - public System.Collections.Generic.IEnumerable GetKeysByPattern(string pattern) => throw null; - public System.TimeSpan? GetTimeToLive(string key) => throw null; - public System.Int64 Increment(string key, System.UInt32 amount) => throw null; - public string Prefix { get => throw null; } - public bool Remove(string key) => throw null; - public void RemoveAll(System.Collections.Generic.IEnumerable keys) => throw null; - public void RemoveByPattern(string pattern) => throw null; - public void RemoveByRegex(string regex) => throw null; - public void RemoveExpiredEntries() => throw null; - public bool Replace(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Replace(string key, T value, System.DateTime expiresAt) => throw null; - public bool Replace(string key, T value) => throw null; - public bool Set(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Set(string key, T value, System.DateTime expiresAt) => throw null; - public bool Set(string key, T value) => throw null; - public void SetAll(System.Collections.Generic.IDictionary values) => throw null; - } - - // Generated from `ServiceStack.Caching.CacheClientWithPrefixAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CacheClientWithPrefixAsync : System.IAsyncDisposable, ServiceStack.Caching.IRemoveByPatternAsync, ServiceStack.Caching.ICacheClientAsync - { - public System.Threading.Tasks.Task AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task AddAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public CacheClientWithPrefixAsync(ServiceStack.Caching.ICacheClientAsync cache, string prefix) => throw null; - public System.Threading.Tasks.Task DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public System.Threading.Tasks.Task FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task> GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string Prefix { get => throw null; } - public System.Threading.Tasks.Task RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveByRegexAsync(string regex, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveExpiredEntriesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.Caching.CacheClientWithPrefixAsyncExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CacheClientWithPrefixAsyncExtensions - { - public static ServiceStack.Caching.ICacheClientAsync WithPrefix(this ServiceStack.Caching.ICacheClientAsync cache, string prefix) => throw null; - } - - // Generated from `ServiceStack.Caching.CacheClientWithPrefixExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CacheClientWithPrefixExtensions - { - public static ServiceStack.Caching.ICacheClient WithPrefix(this ServiceStack.Caching.ICacheClient cache, string prefix) => throw null; - } - - // Generated from `ServiceStack.Caching.MemoryCacheClient` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MemoryCacheClient : System.IDisposable, ServiceStack.Caching.IRemoveByPattern, ServiceStack.Caching.ICacheClientExtended, ServiceStack.Caching.ICacheClient - { - public bool Add(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Add(string key, T value, System.DateTime expiresAt) => throw null; - public bool Add(string key, T value) => throw null; - public System.Int64 CleaningInterval { get => throw null; set => throw null; } - public System.Int64 Decrement(string key, System.UInt32 amount) => throw null; - public void Dispose() => throw null; - public void FlushAll() => throw null; - public bool FlushOnDispose { get => throw null; set => throw null; } - public object Get(string key, out System.Int64 lastModifiedTicks) => throw null; - public object Get(string key) => throw null; - public T Get(string key) => throw null; - public System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys) => throw null; - public System.Collections.Generic.IEnumerable GetKeysByPattern(string pattern) => throw null; - public System.Collections.Generic.List GetKeysByRegex(string pattern) => throw null; - public System.TimeSpan? GetTimeToLive(string key) => throw null; - public System.Int64 Increment(string key, System.UInt32 amount) => throw null; - public MemoryCacheClient() => throw null; - public bool Remove(string key) => throw null; - public void RemoveAll(System.Collections.Generic.IEnumerable keys) => throw null; - public void RemoveByPattern(string pattern) => throw null; - public void RemoveByRegex(string pattern) => throw null; - public void RemoveExpiredEntries() => throw null; - public bool Replace(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Replace(string key, T value, System.DateTime expiresAt) => throw null; - public bool Replace(string key, T value) => throw null; - public bool Set(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Set(string key, T value, System.DateTime expiresAt) => throw null; - public bool Set(string key, T value) => throw null; - public void SetAll(System.Collections.Generic.IDictionary values) => throw null; - } - - // Generated from `ServiceStack.Caching.MultiCacheClient` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MultiCacheClient : System.IDisposable, System.IAsyncDisposable, ServiceStack.Caching.ICacheClientAsync, ServiceStack.Caching.ICacheClient - { - public bool Add(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Add(string key, T value, System.DateTime expiresAt) => throw null; - public bool Add(string key, T value) => throw null; - public System.Threading.Tasks.Task AddAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task AddAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task AddAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Int64 Decrement(string key, System.UInt32 amount) => throw null; - public System.Threading.Tasks.Task DecrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void Dispose() => throw null; - public System.Threading.Tasks.ValueTask DisposeAsync() => throw null; - public void FlushAll() => throw null; - public System.Threading.Tasks.Task FlushAllAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public T Get(string key) => throw null; - public System.Collections.Generic.IDictionary GetAll(System.Collections.Generic.IEnumerable keys) => throw null; - public System.Threading.Tasks.Task> GetAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Collections.Generic.IAsyncEnumerable GetKeysByPatternAsync(string pattern, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GetTimeToLiveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Int64 Increment(string key, System.UInt32 amount) => throw null; - public System.Threading.Tasks.Task IncrementAsync(string key, System.UInt32 amount, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public MultiCacheClient(params ServiceStack.Caching.ICacheClient[] cacheClients) => throw null; - public MultiCacheClient(System.Collections.Generic.List cacheClients, System.Collections.Generic.List cacheClientsAsync) => throw null; - public bool Remove(string key) => throw null; - public void RemoveAll(System.Collections.Generic.IEnumerable keys) => throw null; - public System.Threading.Tasks.Task RemoveAllAsync(System.Collections.Generic.IEnumerable keys, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveAsync(string key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task RemoveExpiredEntriesAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public bool Replace(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Replace(string key, T value, System.DateTime expiresAt) => throw null; - public bool Replace(string key, T value) => throw null; - public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ReplaceAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public bool Set(string key, T value, System.TimeSpan expiresIn) => throw null; - public bool Set(string key, T value, System.DateTime expiresAt) => throw null; - public bool Set(string key, T value) => throw null; - public void SetAll(System.Collections.Generic.IDictionary values) => throw null; - public System.Threading.Tasks.Task SetAllAsync(System.Collections.Generic.IDictionary values, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.TimeSpan expiresIn, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task SetAsync(string key, T value, System.DateTime expiresAt, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - } - - } - namespace Configuration - { - // Generated from `ServiceStack.Configuration.AppSettings` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AppSettings : ServiceStack.Configuration.AppSettingsBase - { - public AppSettings(string tier = default(string)) : base(default(ServiceStack.Configuration.ISettings)) => throw null; - public override string GetString(string name) => throw null; - } - - // Generated from `ServiceStack.Configuration.AppSettingsBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AppSettingsBase : ServiceStack.Configuration.ISettingsWriter, ServiceStack.Configuration.ISettings, ServiceStack.Configuration.IAppSettings - { - public AppSettingsBase(ServiceStack.Configuration.ISettings settings = default(ServiceStack.Configuration.ISettings)) => throw null; - public virtual bool Exists(string key) => throw null; - public virtual T Get(string name, T defaultValue) => throw null; - public virtual T Get(string name) => throw null; - public string Get(string name) => throw null; - public virtual System.Collections.Generic.Dictionary GetAll() => throw null; - public virtual System.Collections.Generic.List GetAllKeys() => throw null; - public virtual System.Collections.Generic.IDictionary GetDictionary(string key) => throw null; - public virtual System.Collections.Generic.List> GetKeyValuePairs(string key) => throw null; - public virtual System.Collections.Generic.IList GetList(string key) => throw null; - public virtual string GetNullableString(string name) => throw null; - public virtual string GetRequiredString(string name) => throw null; - public virtual string GetString(string name) => throw null; - protected void Init(ServiceStack.Configuration.ISettings settings) => throw null; - public ServiceStack.Configuration.ParsingStrategyDelegate ParsingStrategy { get => throw null; set => throw null; } - public virtual void Set(string key, T value) => throw null; - public string Tier { get => throw null; set => throw null; } - protected ServiceStack.Configuration.ISettings settings; - protected ServiceStack.Configuration.ISettingsWriter settingsWriter; - } - - // Generated from `ServiceStack.Configuration.AppSettingsStrategy` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AppSettingsStrategy - { - public static string CollapseNewLines(string originalSetting) => throw null; - } - - // Generated from `ServiceStack.Configuration.AppSettingsUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AppSettingsUtils - { - public static string GetConnectionString(this ServiceStack.Configuration.IAppSettings appSettings, string name) => throw null; - public static string GetNullableString(this ServiceStack.Configuration.IAppSettings settings, string name) => throw null; - public static string GetRequiredString(this ServiceStack.Configuration.IAppSettings settings, string name) => throw null; - } - - // Generated from `ServiceStack.Configuration.Config` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Config - { - public Config() => throw null; - public const string DefaultNamespace = default; - } - - // Generated from `ServiceStack.Configuration.ConfigUtils` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ConfigUtils - { - public ConfigUtils() => throw null; - public static string GetAppSetting(string key, string defaultValue) => throw null; - public static string GetAppSetting(string key) => throw null; - public static T GetAppSetting(string key, T defaultValue) => throw null; - public static System.Collections.Generic.Dictionary GetAppSettingsMap() => throw null; - public static string GetConnectionString(string key) => throw null; - public static System.Collections.Generic.Dictionary GetDictionaryFromAppSetting(string key) => throw null; - public static System.Collections.Generic.Dictionary GetDictionaryFromAppSettingValue(string appSettingValue) => throw null; - public static System.Collections.Generic.List> GetKeyValuePairsFromAppSettingValue(string appSettingValue) => throw null; - public static System.Collections.Generic.List GetListFromAppSetting(string key) => throw null; - public static System.Collections.Generic.List GetListFromAppSettingValue(string appSettingValue) => throw null; - public static string GetNullableAppSetting(string key) => throw null; - public const System.Char ItemSeperator = default; - public const System.Char KeyValueSeperator = default; - } - - // Generated from `ServiceStack.Configuration.DictionarySettings` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DictionarySettings : ServiceStack.Configuration.AppSettingsBase, ServiceStack.Configuration.ISettings - { - public DictionarySettings(System.Collections.Generic.IEnumerable> map) : base(default(ServiceStack.Configuration.ISettings)) => throw null; - public DictionarySettings(System.Collections.Generic.Dictionary map = default(System.Collections.Generic.Dictionary)) : base(default(ServiceStack.Configuration.ISettings)) => throw null; - public override System.Collections.Generic.Dictionary GetAll() => throw null; - } - - // Generated from `ServiceStack.Configuration.EnvironmentVariableSettings` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EnvironmentVariableSettings : ServiceStack.Configuration.AppSettingsBase - { - public EnvironmentVariableSettings() : base(default(ServiceStack.Configuration.ISettings)) => throw null; - public override string GetString(string name) => throw null; - } - - // Generated from `ServiceStack.Configuration.ISettings` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISettings - { - string Get(string key); - System.Collections.Generic.List GetAllKeys(); - } - - // Generated from `ServiceStack.Configuration.ISettingsWriter` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ISettingsWriter : ServiceStack.Configuration.ISettings - { - void Set(string key, T value); - } - - // Generated from `ServiceStack.Configuration.MultiAppSettings` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MultiAppSettings : ServiceStack.Configuration.AppSettingsBase, ServiceStack.Configuration.ISettings - { - public ServiceStack.Configuration.IAppSettings[] AppSettings { get => throw null; } - public override T Get(string name, T defaultValue) => throw null; - public override T Get(string name) => throw null; - public MultiAppSettings(params ServiceStack.Configuration.IAppSettings[] appSettings) : base(default(ServiceStack.Configuration.ISettings)) => throw null; - } - - // Generated from `ServiceStack.Configuration.MultiAppSettingsBuilder` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MultiAppSettingsBuilder - { - public ServiceStack.Configuration.MultiAppSettingsBuilder AddAppSettings(string tier) => throw null; - public ServiceStack.Configuration.MultiAppSettingsBuilder AddAppSettings() => throw null; - public ServiceStack.Configuration.MultiAppSettingsBuilder AddDictionarySettings(System.Collections.Generic.Dictionary map) => throw null; - public ServiceStack.Configuration.MultiAppSettingsBuilder AddEnvironmentalVariables(string tier) => throw null; - public ServiceStack.Configuration.MultiAppSettingsBuilder AddEnvironmentalVariables() => throw null; - public ServiceStack.Configuration.MultiAppSettingsBuilder AddNetCore(Microsoft.Extensions.Configuration.IConfiguration configuration) => throw null; - public ServiceStack.Configuration.MultiAppSettingsBuilder AddTextFile(string path, string delimeter, string tier) => throw null; - public ServiceStack.Configuration.MultiAppSettingsBuilder AddTextFile(string path, string delimeter) => throw null; - public ServiceStack.Configuration.MultiAppSettingsBuilder AddTextFile(string path) => throw null; - public ServiceStack.Configuration.IAppSettings Build() => throw null; - public MultiAppSettingsBuilder(string tier = default(string)) => throw null; - } - - // Generated from `ServiceStack.Configuration.ParsingStrategyDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate string ParsingStrategyDelegate(string originalSetting); - - // Generated from `ServiceStack.Configuration.RoleNames` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RoleNames - { - public static string Admin; - public static string AllowAnon; - public static string AllowAnyUser; - } - - // Generated from `ServiceStack.Configuration.RuntimeAppSettings` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RuntimeAppSettings : ServiceStack.Configuration.IRuntimeAppSettings - { - public T Get(ServiceStack.Web.IRequest request, string name, T defaultValue) => throw null; - public RuntimeAppSettings() => throw null; - public System.Collections.Generic.Dictionary> Settings { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Configuration.TextFileSettings` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TextFileSettings : ServiceStack.Configuration.DictionarySettings - { - public TextFileSettings(string filePath, string delimiter = default(string)) : base(default(System.Collections.Generic.Dictionary)) => throw null; - } - - } - namespace FluentValidation - { - // Generated from `ServiceStack.FluentValidation.AbstractValidator<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AbstractValidator : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, ServiceStack.Web.IRequiresRequest, ServiceStack.IHasTypeValidators, ServiceStack.FluentValidation.IValidator, ServiceStack.FluentValidation.IValidator, ServiceStack.FluentValidation.IServiceStackValidator - { - protected AbstractValidator() => throw null; - protected void AddRule(ServiceStack.FluentValidation.IValidationRule rule) => throw null; - bool ServiceStack.FluentValidation.IValidator.CanValidateInstancesOfType(System.Type type) => throw null; - public ServiceStack.FluentValidation.CascadeMode CascadeMode { get => throw null; set => throw null; } - public virtual ServiceStack.FluentValidation.IValidatorDescriptor CreateDescriptor() => throw null; - protected virtual void EnsureInstanceNotNull(object instanceToValidate) => throw null; - public virtual ServiceStack.IServiceGateway Gateway { get => throw null; } - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - public void Include(System.Func rulesToInclude) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; - public void Include(ServiceStack.FluentValidation.IValidator rulesToInclude) => throw null; - protected virtual bool PreValidate(ServiceStack.FluentValidation.ValidationContext context, ServiceStack.FluentValidation.Results.ValidationResult result) => throw null; - protected virtual void RaiseValidationException(ServiceStack.FluentValidation.ValidationContext context, ServiceStack.FluentValidation.Results.ValidationResult result) => throw null; - public void RemovePropertyRules(System.Func where) => throw null; - public virtual ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public ServiceStack.FluentValidation.IRuleBuilderInitial RuleFor(System.Linq.Expressions.Expression> expression) => throw null; - public ServiceStack.FluentValidation.IRuleBuilderInitialCollection RuleForEach(System.Linq.Expressions.Expression>> expression) => throw null; - public void RuleSet(string ruleSetName, System.Action action) => throw null; - public void RuleSet(ServiceStack.ApplyTo appliesTo, System.Action action) => throw null; - public ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Linq.Expressions.Expression> from, System.Func to) => throw null; - public ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Linq.Expressions.Expression> from, System.Func to) => throw null; - public ServiceStack.FluentValidation.IRuleBuilderInitialCollection TransformForEach(System.Linq.Expressions.Expression>> expression, System.Func to) => throw null; - public ServiceStack.FluentValidation.IRuleBuilderInitialCollection TransformForEach(System.Linq.Expressions.Expression>> expression, System.Func to) => throw null; - public System.Collections.Generic.List TypeValidators { get => throw null; } - public ServiceStack.FluentValidation.IConditionBuilder Unless(System.Func predicate, System.Action action) => throw null; - public ServiceStack.FluentValidation.IConditionBuilder Unless(System.Func, bool> predicate, System.Action action) => throw null; - public ServiceStack.FluentValidation.IConditionBuilder UnlessAsync(System.Func> predicate, System.Action action) => throw null; - public ServiceStack.FluentValidation.IConditionBuilder UnlessAsync(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> predicate, System.Action action) => throw null; - public virtual ServiceStack.FluentValidation.Results.ValidationResult Validate(ServiceStack.FluentValidation.ValidationContext context) => throw null; - public ServiceStack.FluentValidation.Results.ValidationResult Validate(T instance) => throw null; - ServiceStack.FluentValidation.Results.ValidationResult ServiceStack.FluentValidation.IValidator.Validate(ServiceStack.FluentValidation.IValidationContext context) => throw null; - public virtual System.Threading.Tasks.Task ValidateAsync(ServiceStack.FluentValidation.ValidationContext context, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ValidateAsync(T instance, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)) => throw null; - System.Threading.Tasks.Task ServiceStack.FluentValidation.IValidator.ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation) => throw null; - public ServiceStack.FluentValidation.IConditionBuilder When(System.Func predicate, System.Action action) => throw null; - public ServiceStack.FluentValidation.IConditionBuilder When(System.Func, bool> predicate, System.Action action) => throw null; - public ServiceStack.FluentValidation.IConditionBuilder WhenAsync(System.Func> predicate, System.Action action) => throw null; - public ServiceStack.FluentValidation.IConditionBuilder WhenAsync(System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> predicate, System.Action action) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.ApplyConditionTo` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum ApplyConditionTo - { - AllValidators, - CurrentValidator, - } - - // Generated from `ServiceStack.FluentValidation.AssemblyScanner` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AssemblyScanner : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable - { - // Generated from `ServiceStack.FluentValidation.AssemblyScanner+AssemblyScanResult` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AssemblyScanResult - { - public AssemblyScanResult(System.Type interfaceType, System.Type validatorType) => throw null; - public System.Type InterfaceType { get => throw null; set => throw null; } - public System.Type ValidatorType { get => throw null; set => throw null; } - } - - - public AssemblyScanner(System.Collections.Generic.IEnumerable types) => throw null; - public static ServiceStack.FluentValidation.AssemblyScanner FindValidatorsInAssemblies(System.Collections.Generic.IEnumerable assemblies) => throw null; - public static ServiceStack.FluentValidation.AssemblyScanner FindValidatorsInAssembly(System.Reflection.Assembly assembly) => throw null; - public static ServiceStack.FluentValidation.AssemblyScanner FindValidatorsInAssemblyContaining() => throw null; - public static ServiceStack.FluentValidation.AssemblyScanner FindValidatorsInAssemblyContaining(System.Type type) => throw null; - public void ForEach(System.Action action) => throw null; - public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.CascadeMode` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum CascadeMode - { - Continue, - Stop, - StopOnFirstFailure, - } - - // Generated from `ServiceStack.FluentValidation.DefaultValidator<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultValidator : ServiceStack.FluentValidation.AbstractValidator, ServiceStack.FluentValidation.IDefaultValidator - { - public DefaultValidator() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.DefaultValidatorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DefaultValidatorExtensions - { - public static ServiceStack.FluentValidation.IRuleBuilderOptions ChildRules(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Action> action) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions CreditCard(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderInitial Custom(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Action action) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderInitial CustomAsync(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func action) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions EmailAddress(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, ServiceStack.FluentValidation.Validators.EmailValidationMode mode = default(ServiceStack.FluentValidation.Validators.EmailValidationMode)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Empty(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Equal(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty toCompare, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Equal(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions ExclusiveBetween(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty from, TProperty to) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions ExclusiveBetween(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty from, TProperty to) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions> ForEach(this ServiceStack.FluentValidation.IRuleBuilder> ruleBuilder, System.Action, TElement>> action) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions GreaterThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions InclusiveBetween(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty from, TProperty to) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions InclusiveBetween(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty from, TProperty to) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions IsEnumName(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Type enumType, bool caseSensitive = default(bool)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions IsInEnum(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Length(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int min, int max) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Length(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int exactLength) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Length(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func min, System.Func max) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Length(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func exactLength) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThan(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty valueToCompare) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : struct, System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions LessThanOrEqualTo(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression) where TProperty : System.IComparable, System.IComparable => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, string expression, System.Text.RegularExpressions.RegexOptions options) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, string expression) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Text.RegularExpressions.Regex regex) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func expression, System.Text.RegularExpressions.RegexOptions options) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func expression) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Matches(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func regex) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions MaximumLength(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int maximumLength) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions MinimumLength(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int minimumLength) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Must(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func predicate) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Must(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func predicate) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Must(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func predicate) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions MustAsync(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func> predicate) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions MustAsync(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func> predicate) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions MustAsync(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Func> predicate) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions NotEmpty(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions NotEqual(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, TProperty toCompare, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions NotEqual(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Linq.Expressions.Expression> expression, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions NotNull(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Null(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions ScalePrecision(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int scale, int precision, bool ignoreTrailingZeros = default(bool)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions ScalePrecision(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, int scale, int precision, bool ignoreTrailingZeros = default(bool)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions SetInheritanceValidator(this ServiceStack.FluentValidation.IRuleBuilder ruleBuilder, System.Action> validatorConfiguration) => throw null; - public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, T instance, params string[] properties) => throw null; - public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, T instance, params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; - public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Action> options) => throw null; - public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, T instance, ServiceStack.FluentValidation.Internal.IValidatorSelector selector = default(ServiceStack.FluentValidation.Internal.IValidatorSelector), string ruleSet = default(string)) => throw null; - public static void ValidateAndThrow(this ServiceStack.FluentValidation.IValidator validator, T instance, string ruleSet) => throw null; - public static void ValidateAndThrow(this ServiceStack.FluentValidation.IValidator validator, T instance) => throw null; - public static System.Threading.Tasks.Task ValidateAndThrowAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, string ruleSet, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ValidateAndThrowAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), params string[] properties) => throw null; - public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; - public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), ServiceStack.FluentValidation.Internal.IValidatorSelector selector = default(ServiceStack.FluentValidation.Internal.IValidatorSelector), string ruleSet = default(string)) => throw null; - public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, System.Action> options, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.DefaultValidatorExtensionsServiceStack` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DefaultValidatorExtensionsServiceStack - { - public static void ValidateAndThrow(this ServiceStack.FluentValidation.IValidator validator, T instance, ServiceStack.ApplyTo ruleSet) => throw null; - public static System.Threading.Tasks.Task ValidateAndThrowAsync(this ServiceStack.FluentValidation.IValidator validator, T instance, ServiceStack.ApplyTo ruleSet) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.DefaultValidatorOptions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DefaultValidatorOptions - { - public static ServiceStack.FluentValidation.IRuleBuilderInitialCollection Cascade(this ServiceStack.FluentValidation.IRuleBuilderInitialCollection ruleBuilder, ServiceStack.FluentValidation.CascadeMode cascadeMode) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderInitial Cascade(this ServiceStack.FluentValidation.IRuleBuilderInitial ruleBuilder, ServiceStack.FluentValidation.CascadeMode cascadeMode) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions DependentRules(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action action) => throw null; - public static string GetStringForValidator(this ServiceStack.FluentValidation.Resources.ILanguageManager languageManager) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions OnAnyFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action onFailure) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions OnAnyFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action> onFailure) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions OnFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action onFailure) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions OnFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action onFailure) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions OnFailure(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Action onFailure) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderInitialCollection OverrideIndexer(this ServiceStack.FluentValidation.IRuleBuilderInitialCollection rule, System.Func, TCollectionElement, int, string> callback) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions OverridePropertyName(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, string propertyName) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions OverridePropertyName(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Linq.Expressions.Expression> expr) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Unless(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions Unless(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func, bool> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions UnlessAsync(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions UnlessAsync(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions When(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions When(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func, bool> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WhenAsync(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WhenAsync(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderInitialCollection Where(this ServiceStack.FluentValidation.IRuleBuilderInitialCollection rule, System.Func predicate) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithErrorCode(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, string errorCode) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithMessage(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, string errorMessage) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithMessage(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func messageProvider) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithMessage(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func messageProvider) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithName(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, string overridePropertyName) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithName(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func nameProvider) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithSeverity(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func severityProvider) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithSeverity(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func severityProvider) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithSeverity(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, ServiceStack.FluentValidation.Severity severity) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithState(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func stateProvider) => throw null; - public static ServiceStack.FluentValidation.IRuleBuilderOptions WithState(this ServiceStack.FluentValidation.IRuleBuilderOptions rule, System.Func stateProvider) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.ICommonContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ICommonContext - { - object InstanceToValidate { get; } - ServiceStack.FluentValidation.ICommonContext ParentContext { get; } - object PropertyValue { get; } - } - - // Generated from `ServiceStack.FluentValidation.IConditionBuilder` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IConditionBuilder - { - void Otherwise(System.Action action); - } - - // Generated from `ServiceStack.FluentValidation.IDefaultValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IDefaultValidator - { - } - - // Generated from `ServiceStack.FluentValidation.IParameterValidatorFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IParameterValidatorFactory - { - ServiceStack.FluentValidation.IValidator GetValidator(System.Reflection.ParameterInfo parameterInfo); - } - - // Generated from `ServiceStack.FluentValidation.IRuleBuilder<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRuleBuilder - { - ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider, params string[] ruleSets) where TValidator : ServiceStack.FluentValidation.IValidator; - ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider, params string[] ruleSets) where TValidator : ServiceStack.FluentValidation.IValidator; - ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator validator); - ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(ServiceStack.FluentValidation.IValidator validator, params string[] ruleSets); - } - - // Generated from `ServiceStack.FluentValidation.IRuleBuilderInitial<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRuleBuilderInitial : ServiceStack.FluentValidation.Internal.IConfigurable>, ServiceStack.FluentValidation.IRuleBuilder - { - ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Func transformationFunc); - } - - // Generated from `ServiceStack.FluentValidation.IRuleBuilderInitialCollection<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRuleBuilderInitialCollection : ServiceStack.FluentValidation.Internal.IConfigurable, ServiceStack.FluentValidation.IRuleBuilderInitialCollection>, ServiceStack.FluentValidation.IRuleBuilder - { - ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Func transformationFunc); - } - - // Generated from `ServiceStack.FluentValidation.IRuleBuilderOptions<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRuleBuilderOptions : ServiceStack.FluentValidation.Internal.IConfigurable>, ServiceStack.FluentValidation.IRuleBuilder - { - } - - // Generated from `ServiceStack.FluentValidation.IServiceStackValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceStackValidator - { - void RemovePropertyRules(System.Func where); - } - - // Generated from `ServiceStack.FluentValidation.IValidationContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidationContext : ServiceStack.FluentValidation.ICommonContext - { - bool IsChildCollectionContext { get; } - bool IsChildContext { get; } - ServiceStack.FluentValidation.Internal.PropertyChain PropertyChain { get; } - ServiceStack.Web.IRequest Request { get; set; } - System.Collections.Generic.IDictionary RootContextData { get; } - ServiceStack.FluentValidation.Internal.IValidatorSelector Selector { get; } - } - - // Generated from `ServiceStack.FluentValidation.IValidationRule` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidationRule - { - void ApplyAsyncCondition(System.Func> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)); - void ApplyCondition(System.Func predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)); - void ApplySharedAsyncCondition(System.Func> condition); - void ApplySharedCondition(System.Func condition); - string[] RuleSets { get; set; } - System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.IValidationContext context); - System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation); - System.Collections.Generic.IEnumerable Validators { get; } - } - - // Generated from `ServiceStack.FluentValidation.IValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidator - { - bool CanValidateInstancesOfType(System.Type type); - ServiceStack.FluentValidation.IValidatorDescriptor CreateDescriptor(); - ServiceStack.FluentValidation.Results.ValidationResult Validate(ServiceStack.FluentValidation.IValidationContext context); - System.Threading.Tasks.Task ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.FluentValidation.IValidator<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidator : ServiceStack.FluentValidation.IValidator - { - ServiceStack.FluentValidation.CascadeMode CascadeMode { get; set; } - ServiceStack.FluentValidation.Results.ValidationResult Validate(T instance); - System.Threading.Tasks.Task ValidateAsync(T instance, System.Threading.CancellationToken cancellation = default(System.Threading.CancellationToken)); - } - - // Generated from `ServiceStack.FluentValidation.IValidatorDescriptor` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidatorDescriptor - { - System.Linq.ILookup GetMembersWithValidators(); - string GetName(string property); - System.Collections.Generic.IEnumerable GetRulesForMember(string name); - System.Collections.Generic.IEnumerable GetValidatorsForMember(string name); - } - - // Generated from `ServiceStack.FluentValidation.IValidatorFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidatorFactory - { - ServiceStack.FluentValidation.IValidator GetValidator(); - ServiceStack.FluentValidation.IValidator GetValidator(System.Type type); - } - - // Generated from `ServiceStack.FluentValidation.InlineValidator<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InlineValidator : ServiceStack.FluentValidation.AbstractValidator - { - public void Add(System.Func, ServiceStack.FluentValidation.IRuleBuilderOptions> ruleCreator) => throw null; - public InlineValidator() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.PropertyValidatorOptions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PropertyValidatorOptions - { - public void ApplyAsyncCondition(System.Func> condition) => throw null; - public void ApplyCondition(System.Func condition) => throw null; - public System.Func> AsyncCondition { get => throw null; set => throw null; } - public System.Func Condition { get => throw null; set => throw null; } - public System.Func CustomStateProvider { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public ServiceStack.FluentValidation.Resources.IStringSource ErrorCodeSource { get => throw null; set => throw null; } - public ServiceStack.FluentValidation.Resources.IStringSource ErrorMessageSource { get => throw null; set => throw null; } - protected virtual string GetDefaultMessageTemplate() => throw null; - public string GetErrorMessageTemplate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public bool HasAsyncCondition { get => throw null; } - public bool HasCondition { get => throw null; } - public PropertyValidatorOptions() => throw null; - public void SetErrorMessage(string errorMessage) => throw null; - public void SetErrorMessage(System.Func errorFactory) => throw null; - public System.Func SeverityProvider { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Severity` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum Severity - { - Error, - Info, - Warning, - } - - // Generated from `ServiceStack.FluentValidation.ValidationContext<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationContext : ServiceStack.FluentValidation.IValidationContext, ServiceStack.FluentValidation.ICommonContext - { - public ServiceStack.FluentValidation.ValidationContext CloneForChildCollectionValidator(TNew instanceToValidate, bool preserveParentContext = default(bool)) => throw null; - public ServiceStack.FluentValidation.ValidationContext CloneForChildValidator(TChild instanceToValidate, bool preserveParentContext = default(bool), ServiceStack.FluentValidation.Internal.IValidatorSelector selector = default(ServiceStack.FluentValidation.Internal.IValidatorSelector)) => throw null; - public static ServiceStack.FluentValidation.ValidationContext CreateWithOptions(T instanceToValidate, System.Action> options) => throw null; - public static ServiceStack.FluentValidation.ValidationContext GetFromNonGenericContext(ServiceStack.FluentValidation.IValidationContext context) => throw null; - public T InstanceToValidate { get => throw null; set => throw null; } - object ServiceStack.FluentValidation.ICommonContext.InstanceToValidate { get => throw null; } - public virtual bool IsChildCollectionContext { get => throw null; set => throw null; } - public virtual bool IsChildContext { get => throw null; set => throw null; } - ServiceStack.FluentValidation.ICommonContext ServiceStack.FluentValidation.ICommonContext.ParentContext { get => throw null; } - public ServiceStack.FluentValidation.Internal.PropertyChain PropertyChain { get => throw null; set => throw null; } - object ServiceStack.FluentValidation.ICommonContext.PropertyValue { get => throw null; } - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary RootContextData { get => throw null; set => throw null; } - public ServiceStack.FluentValidation.Internal.IValidatorSelector Selector { get => throw null; set => throw null; } - public bool ThrowOnFailures { get => throw null; set => throw null; } - public ValidationContext(T instanceToValidate, ServiceStack.FluentValidation.Internal.PropertyChain propertyChain, ServiceStack.FluentValidation.Internal.IValidatorSelector validatorSelector) => throw null; - public ValidationContext(T instanceToValidate) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.ValidationErrors` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ValidationErrors - { - public const string CreditCard = default; - public const string Email = default; - public const string Empty = default; - public const string Enum = default; - public const string Equal = default; - public const string ExclusiveBetween = default; - public const string GreaterThan = default; - public const string GreaterThanOrEqual = default; - public const string InclusiveBetween = default; - public const string Length = default; - public const string LessThan = default; - public const string LessThanOrEqual = default; - public const string NotEmpty = default; - public const string NotEqual = default; - public const string NotNull = default; - public const string Null = default; - public const string Predicate = default; - public const string RegularExpression = default; - public const string ScalePrecision = default; - } - - // Generated from `ServiceStack.FluentValidation.ValidationException` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationException : System.Exception, ServiceStack.Model.IResponseStatusConvertible - { - public System.Collections.Generic.IEnumerable Errors { get => throw null; set => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public ServiceStack.ResponseStatus ToResponseStatus() => throw null; - public ValidationException(string message, System.Collections.Generic.IEnumerable errors, bool appendDefaultMessage) => throw null; - public ValidationException(string message, System.Collections.Generic.IEnumerable errors) => throw null; - public ValidationException(string message) => throw null; - public ValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public ValidationException(System.Collections.Generic.IEnumerable errors) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.ValidatorConfiguration` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidatorConfiguration - { - public ServiceStack.FluentValidation.CascadeMode CascadeMode { get => throw null; set => throw null; } - public bool DisableAccessorCache { get => throw null; set => throw null; } - public System.Func DisplayNameResolver { get => throw null; set => throw null; } - public System.Func ErrorCodeResolver { get => throw null; set => throw null; } - public ServiceStack.FluentValidation.Resources.ILanguageManager LanguageManager { get => throw null; set => throw null; } - public System.Func MessageFormatterFactory { get => throw null; set => throw null; } - public string PropertyChainSeparator { get => throw null; set => throw null; } - public System.Func PropertyNameResolver { get => throw null; set => throw null; } - public ValidatorConfiguration() => throw null; - public ServiceStack.FluentValidation.ValidatorSelectorOptions ValidatorSelectors { get => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.ValidatorDescriptor<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidatorDescriptor : ServiceStack.FluentValidation.IValidatorDescriptor - { - public virtual System.Linq.ILookup GetMembersWithValidators() => throw null; - public virtual string GetName(string property) => throw null; - public virtual string GetName(System.Linq.Expressions.Expression> propertyExpression) => throw null; - public System.Collections.Generic.IEnumerable.RulesetMetadata> GetRulesByRuleset() => throw null; - public System.Collections.Generic.IEnumerable GetRulesForMember(string name) => throw null; - public System.Collections.Generic.IEnumerable GetValidatorsForMember(ServiceStack.FluentValidation.Internal.MemberAccessor accessor) => throw null; - public System.Collections.Generic.IEnumerable GetValidatorsForMember(string name) => throw null; - protected System.Collections.Generic.IEnumerable Rules { get => throw null; set => throw null; } - // Generated from `ServiceStack.FluentValidation.ValidatorDescriptor<>+RulesetMetadata` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RulesetMetadata - { - public string Name { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable Rules { get => throw null; set => throw null; } - public RulesetMetadata(string name, System.Collections.Generic.IEnumerable rules) => throw null; - } - - - public ValidatorDescriptor(System.Collections.Generic.IEnumerable ruleBuilders) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.ValidatorFactoryBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ValidatorFactoryBase : ServiceStack.FluentValidation.IValidatorFactory - { - public abstract ServiceStack.FluentValidation.IValidator CreateInstance(System.Type validatorType); - public ServiceStack.FluentValidation.IValidator GetValidator() => throw null; - public ServiceStack.FluentValidation.IValidator GetValidator(System.Type type) => throw null; - protected ValidatorFactoryBase() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.ValidatorOptions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ValidatorOptions - { - public static ServiceStack.FluentValidation.CascadeMode CascadeMode { get => throw null; set => throw null; } - public static bool DisableAccessorCache { get => throw null; set => throw null; } - public static System.Func DisplayNameResolver { get => throw null; set => throw null; } - public static System.Func ErrorCodeResolver { get => throw null; set => throw null; } - public static ServiceStack.FluentValidation.ValidatorConfiguration Global { get => throw null; } - public static ServiceStack.FluentValidation.Resources.ILanguageManager LanguageManager { get => throw null; set => throw null; } - public static System.Func MessageFormatterFactory { get => throw null; set => throw null; } - public static string PropertyChainSeparator { get => throw null; set => throw null; } - public static System.Func PropertyNameResolver { get => throw null; set => throw null; } - public static ServiceStack.FluentValidation.ValidatorSelectorOptions ValidatorSelectors { get => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.ValidatorSelectorOptions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidatorSelectorOptions - { - public System.Func DefaultValidatorSelectorFactory { get => throw null; set => throw null; } - public System.Func MemberNameValidatorSelectorFactory { get => throw null; set => throw null; } - public System.Func RulesetValidatorSelectorFactory { get => throw null; set => throw null; } - public ValidatorSelectorOptions() => throw null; - } - - namespace Attributes - { - // Generated from `ServiceStack.FluentValidation.Attributes.AttributedValidatorFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AttributedValidatorFactory : ServiceStack.FluentValidation.IValidatorFactory, ServiceStack.FluentValidation.IParameterValidatorFactory - { - public AttributedValidatorFactory(System.Func instanceFactory) => throw null; - public AttributedValidatorFactory() => throw null; - public virtual ServiceStack.FluentValidation.IValidator GetValidator(System.Type type) => throw null; - public virtual ServiceStack.FluentValidation.IValidator GetValidator(System.Reflection.ParameterInfo parameterInfo) => throw null; - public ServiceStack.FluentValidation.IValidator GetValidator() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Attributes.ValidatorAttribute` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidatorAttribute : System.Attribute - { - public ValidatorAttribute(System.Type validatorType) => throw null; - public System.Type ValidatorType { get => throw null; } - } - - } - namespace Internal - { - // Generated from `ServiceStack.FluentValidation.Internal.AccessorCache<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class AccessorCache - { - public static void Clear() => throw null; - public static System.Func GetCachedAccessor(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression> expression, bool bypassCache = default(bool)) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.CollectionPropertyRule<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CollectionPropertyRule : ServiceStack.FluentValidation.Internal.PropertyRule - { - public CollectionPropertyRule(System.Reflection.MemberInfo member, System.Func propertyFunc, System.Linq.Expressions.LambdaExpression expression, System.Func cascadeModeThunk, System.Type typeToValidate, System.Type containerType) : base(default(System.Reflection.MemberInfo), default(System.Func), default(System.Linq.Expressions.LambdaExpression), default(System.Func), default(System.Type), default(System.Type)) => throw null; - public static ServiceStack.FluentValidation.Internal.CollectionPropertyRule Create(System.Linq.Expressions.Expression>> expression, System.Func cascadeModeThunk) => throw null; - public System.Func Filter { get => throw null; set => throw null; } - public System.Func, TElement, int, string> IndexBuilder { get => throw null; set => throw null; } - protected override System.Collections.Generic.IEnumerable InvokePropertyValidator(ServiceStack.FluentValidation.IValidationContext context, ServiceStack.FluentValidation.Validators.IPropertyValidator validator, string propertyName) => throw null; - protected override System.Threading.Tasks.Task> InvokePropertyValidatorAsync(ServiceStack.FluentValidation.IValidationContext context, ServiceStack.FluentValidation.Validators.IPropertyValidator validator, string propertyName, System.Threading.CancellationToken cancellation) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.Comparer` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Comparer - { - public static int GetComparisonResult(System.IComparable value, System.IComparable valueToCompare) => throw null; - public static bool GetEqualsResult(System.IComparable value, System.IComparable valueToCompare) => throw null; - public static bool TryCompare(System.IComparable value, System.IComparable valueToCompare, out int result) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.DefaultValidatorSelector` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultValidatorSelector : ServiceStack.FluentValidation.Internal.IValidatorSelector - { - public bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context) => throw null; - public DefaultValidatorSelector() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.Extensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Extensions - { - public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; - public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; - public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; - public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; - public static System.Func> CoerceToNonGeneric(this System.Func> func) => throw null; - public static System.Func> CoerceToNonGeneric(this System.Func> func) => throw null; - public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; - public static System.Func CoerceToNonGeneric(this System.Func func) => throw null; - public static System.Action CoerceToNonGeneric(this System.Action action) => throw null; - public static System.Reflection.MemberInfo GetMember(this System.Linq.Expressions.Expression> expression) => throw null; - public static System.Reflection.MemberInfo GetMember(this System.Linq.Expressions.LambdaExpression expression) => throw null; - public static bool IsAsync(this ServiceStack.FluentValidation.IValidationContext ctx) => throw null; - public static bool IsParameterExpression(this System.Linq.Expressions.LambdaExpression expression) => throw null; - public static string SplitPascalCase(this string input) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.IConfigurable<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IConfigurable - { - TNext Configure(System.Action configurator); - } - - // Generated from `ServiceStack.FluentValidation.Internal.IExposesParentValidator<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - internal interface IExposesParentValidator - { - } - - // Generated from `ServiceStack.FluentValidation.Internal.IIncludeRule` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IIncludeRule - { - } - - // Generated from `ServiceStack.FluentValidation.Internal.IValidatorSelector` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidatorSelector - { - bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context); - } - - // Generated from `ServiceStack.FluentValidation.Internal.IncludeRule<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IncludeRule : ServiceStack.FluentValidation.Internal.PropertyRule, ServiceStack.FluentValidation.Internal.IIncludeRule - { - public static ServiceStack.FluentValidation.Internal.IncludeRule Create(System.Func func, System.Func cascadeModeThunk) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; - public static ServiceStack.FluentValidation.Internal.IncludeRule Create(ServiceStack.FluentValidation.IValidator validator, System.Func cascadeModeThunk) => throw null; - public IncludeRule(System.Func> func, System.Func cascadeModeThunk, System.Type typeToValidate, System.Type containerType, System.Type validatorType) : base(default(System.Reflection.MemberInfo), default(System.Func), default(System.Linq.Expressions.LambdaExpression), default(System.Func), default(System.Type), default(System.Type)) => throw null; - public IncludeRule(ServiceStack.FluentValidation.IValidator validator, System.Func cascadeModeThunk, System.Type typeToValidate, System.Type containerType) : base(default(System.Reflection.MemberInfo), default(System.Func), default(System.Linq.Expressions.LambdaExpression), default(System.Func), default(System.Type), default(System.Type)) => throw null; - public override System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.IValidationContext context) => throw null; - public override System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.MemberAccessor<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MemberAccessor - { - public override bool Equals(object obj) => throw null; - protected bool Equals(ServiceStack.FluentValidation.Internal.MemberAccessor other) => throw null; - public TValue Get(TObject target) => throw null; - public override int GetHashCode() => throw null; - public System.Reflection.MemberInfo Member { get => throw null; set => throw null; } - public MemberAccessor(System.Linq.Expressions.Expression> getExpression, bool writeable) => throw null; - public void Set(TObject target, TValue value) => throw null; - public static implicit operator System.Linq.Expressions.Expression>(ServiceStack.FluentValidation.Internal.MemberAccessor @this) => throw null; - public static implicit operator ServiceStack.FluentValidation.Internal.MemberAccessor(System.Linq.Expressions.Expression> @this) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.MemberNameValidatorSelector` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MemberNameValidatorSelector : ServiceStack.FluentValidation.Internal.IValidatorSelector - { - public bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context) => throw null; - public static ServiceStack.FluentValidation.Internal.MemberNameValidatorSelector FromExpressions(params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; - public MemberNameValidatorSelector(System.Collections.Generic.IEnumerable memberNames) => throw null; - public System.Collections.Generic.IEnumerable MemberNames { get => throw null; } - public static string[] MemberNamesFromExpressions(params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.MessageBuilderContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MessageBuilderContext : ServiceStack.FluentValidation.ICommonContext - { - public string DisplayName { get => throw null; } - public ServiceStack.FluentValidation.Resources.IStringSource ErrorSource { get => throw null; } - public string GetDefaultMessage() => throw null; - public object InstanceToValidate { get => throw null; } - public MessageBuilderContext(ServiceStack.FluentValidation.Validators.PropertyValidatorContext innerContext, ServiceStack.FluentValidation.Validators.IPropertyValidator propertyValidator) => throw null; - public MessageBuilderContext(ServiceStack.FluentValidation.Validators.PropertyValidatorContext innerContext, ServiceStack.FluentValidation.Resources.IStringSource errorSource, ServiceStack.FluentValidation.Validators.IPropertyValidator propertyValidator) => throw null; - public ServiceStack.FluentValidation.Internal.MessageFormatter MessageFormatter { get => throw null; } - public ServiceStack.FluentValidation.IValidationContext ParentContext { get => throw null; } - ServiceStack.FluentValidation.ICommonContext ServiceStack.FluentValidation.ICommonContext.ParentContext { get => throw null; } - public string PropertyName { get => throw null; } - public ServiceStack.FluentValidation.Validators.IPropertyValidator PropertyValidator { get => throw null; } - public object PropertyValue { get => throw null; } - public ServiceStack.FluentValidation.Internal.PropertyRule Rule { get => throw null; } - public static implicit operator ServiceStack.FluentValidation.Validators.PropertyValidatorContext(ServiceStack.FluentValidation.Internal.MessageBuilderContext ctx) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.MessageFormatter` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MessageFormatter - { - public object[] AdditionalArguments { get => throw null; } - public ServiceStack.FluentValidation.Internal.MessageFormatter AppendAdditionalArguments(params object[] additionalArgs) => throw null; - public ServiceStack.FluentValidation.Internal.MessageFormatter AppendArgument(string name, object value) => throw null; - public ServiceStack.FluentValidation.Internal.MessageFormatter AppendPropertyName(string name) => throw null; - public ServiceStack.FluentValidation.Internal.MessageFormatter AppendPropertyValue(object value) => throw null; - public virtual string BuildMessage(string messageTemplate) => throw null; - public MessageFormatter() => throw null; - public System.Collections.Generic.Dictionary PlaceholderValues { get => throw null; } - public const string PropertyName = default; - public const string PropertyValue = default; - protected virtual string ReplacePlaceholdersWithValues(string template, System.Collections.Generic.IDictionary values) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.PropertyChain` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PropertyChain - { - public void Add(string propertyName) => throw null; - public void Add(System.Reflection.MemberInfo member) => throw null; - public void AddIndexer(object indexer, bool surroundWithBrackets = default(bool)) => throw null; - public string BuildPropertyName(string propertyName) => throw null; - public int Count { get => throw null; } - public static ServiceStack.FluentValidation.Internal.PropertyChain FromExpression(System.Linq.Expressions.LambdaExpression expression) => throw null; - public bool IsChildChainOf(ServiceStack.FluentValidation.Internal.PropertyChain parentChain) => throw null; - public PropertyChain(System.Collections.Generic.IEnumerable memberNames) => throw null; - public PropertyChain(ServiceStack.FluentValidation.Internal.PropertyChain parent) => throw null; - public PropertyChain() => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.PropertyRule` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PropertyRule : ServiceStack.FluentValidation.IValidationRule - { - public void AddValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator validator) => throw null; - public void ApplyAsyncCondition(System.Func> predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public void ApplyCondition(System.Func predicate, ServiceStack.FluentValidation.ApplyConditionTo applyConditionTo = default(ServiceStack.FluentValidation.ApplyConditionTo)) => throw null; - public void ApplySharedAsyncCondition(System.Func> condition) => throw null; - public void ApplySharedCondition(System.Func condition) => throw null; - public System.Func> AsyncCondition { get => throw null; } - public ServiceStack.FluentValidation.CascadeMode CascadeMode { get => throw null; set => throw null; } - public void ClearValidators() => throw null; - public System.Func Condition { get => throw null; } - public static ServiceStack.FluentValidation.Internal.PropertyRule Create(System.Linq.Expressions.Expression> expression, System.Func cascadeModeThunk, bool bypassCache = default(bool)) => throw null; - public static ServiceStack.FluentValidation.Internal.PropertyRule Create(System.Linq.Expressions.Expression> expression) => throw null; - public ServiceStack.FluentValidation.Validators.IPropertyValidator CurrentValidator { get => throw null; } - public System.Collections.Generic.List DependentRules { get => throw null; } - public ServiceStack.FluentValidation.Resources.IStringSource DisplayName { get => throw null; set => throw null; } - public System.Linq.Expressions.LambdaExpression Expression { get => throw null; } - public string GetDisplayName(ServiceStack.FluentValidation.ICommonContext context) => throw null; - public string GetDisplayName() => throw null; - public bool HasAsyncCondition { get => throw null; } - public bool HasCondition { get => throw null; } - protected virtual System.Collections.Generic.IEnumerable InvokePropertyValidator(ServiceStack.FluentValidation.IValidationContext context, ServiceStack.FluentValidation.Validators.IPropertyValidator validator, string propertyName) => throw null; - protected virtual System.Threading.Tasks.Task> InvokePropertyValidatorAsync(ServiceStack.FluentValidation.IValidationContext context, ServiceStack.FluentValidation.Validators.IPropertyValidator validator, string propertyName, System.Threading.CancellationToken cancellation) => throw null; - public System.Reflection.MemberInfo Member { get => throw null; } - public System.Func MessageBuilder { get => throw null; set => throw null; } - public System.Action> OnFailure { get => throw null; set => throw null; } - public System.Func PropertyFunc { get => throw null; } - public string PropertyName { get => throw null; set => throw null; } - public PropertyRule(System.Reflection.MemberInfo member, System.Func propertyFunc, System.Linq.Expressions.LambdaExpression expression, System.Func cascadeModeThunk, System.Type typeToValidate, System.Type containerType) => throw null; - public void RemoveValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator original) => throw null; - public void ReplaceValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator original, ServiceStack.FluentValidation.Validators.IPropertyValidator newValidator) => throw null; - public string[] RuleSets { get => throw null; set => throw null; } - public void SetDisplayName(string name) => throw null; - public void SetDisplayName(System.Func factory) => throw null; - public System.Func Transformer { get => throw null; set => throw null; } - public System.Type TypeToValidate { get => throw null; } - public virtual System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.IValidationContext context) => throw null; - public virtual System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.IValidationContext context, System.Threading.CancellationToken cancellation) => throw null; - public System.Collections.Generic.IEnumerable Validators { get => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Internal.RuleBuilder<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RuleBuilder : ServiceStack.FluentValidation.Internal.IConfigurable>, ServiceStack.FluentValidation.Internal.IConfigurable>, ServiceStack.FluentValidation.Internal.IConfigurable, ServiceStack.FluentValidation.IRuleBuilderInitialCollection>, ServiceStack.FluentValidation.IRuleBuilderOptions, ServiceStack.FluentValidation.IRuleBuilderInitialCollection, ServiceStack.FluentValidation.IRuleBuilderInitial, ServiceStack.FluentValidation.IRuleBuilder - { - ServiceStack.FluentValidation.IRuleBuilderOptions ServiceStack.FluentValidation.Internal.IConfigurable>.Configure(System.Action configurator) => throw null; - ServiceStack.FluentValidation.IRuleBuilderInitialCollection ServiceStack.FluentValidation.Internal.IConfigurable, ServiceStack.FluentValidation.IRuleBuilderInitialCollection>.Configure(System.Action> configurator) => throw null; - ServiceStack.FluentValidation.IRuleBuilderInitial ServiceStack.FluentValidation.Internal.IConfigurable>.Configure(System.Action configurator) => throw null; - public ServiceStack.FluentValidation.IValidator ParentValidator { get => throw null; } - public ServiceStack.FluentValidation.Internal.PropertyRule Rule { get => throw null; } - public RuleBuilder(ServiceStack.FluentValidation.Internal.PropertyRule rule, ServiceStack.FluentValidation.IValidator parent) => throw null; - public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider, params string[] ruleSets) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; - public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider, params string[] ruleSets) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; - public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(System.Func validatorProvider) where TValidator : ServiceStack.FluentValidation.IValidator => throw null; - public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator validator) => throw null; - public ServiceStack.FluentValidation.IRuleBuilderOptions SetValidator(ServiceStack.FluentValidation.IValidator validator, params string[] ruleSets) => throw null; - public ServiceStack.FluentValidation.IRuleBuilderInitial Transform(System.Func transformationFunc) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Internal.RulesetValidatorSelector` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RulesetValidatorSelector : ServiceStack.FluentValidation.Internal.IValidatorSelector - { - public virtual bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context) => throw null; - public const string DefaultRuleSetName = default; - protected bool IsIncludeRule(ServiceStack.FluentValidation.IValidationRule rule) => throw null; - public string[] RuleSets { get => throw null; } - public RulesetValidatorSelector(params string[] rulesetsToExecute) => throw null; - public const string WildcardRuleSetName = default; - } - - // Generated from `ServiceStack.FluentValidation.Internal.ValidationStrategy<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationStrategy - { - public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeAllRuleSets() => throw null; - public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeProperties(params string[] properties) => throw null; - public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeProperties(params System.Linq.Expressions.Expression>[] propertyExpressions) => throw null; - public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeRuleSets(params string[] ruleSets) => throw null; - public ServiceStack.FluentValidation.Internal.ValidationStrategy IncludeRulesNotInRuleSet() => throw null; - public ServiceStack.FluentValidation.Internal.ValidationStrategy ThrowOnFailures() => throw null; - public ServiceStack.FluentValidation.Internal.ValidationStrategy UseCustomSelector(ServiceStack.FluentValidation.Internal.IValidatorSelector selector) => throw null; - } - - } - namespace Resources - { - // Generated from `ServiceStack.FluentValidation.Resources.FluentValidationMessageFormatException` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FluentValidationMessageFormatException : System.Exception - { - public FluentValidationMessageFormatException(string message, System.Exception innerException) => throw null; - public FluentValidationMessageFormatException(string message) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Resources.IContextAwareStringSource` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IContextAwareStringSource - { - } - - // Generated from `ServiceStack.FluentValidation.Resources.ILanguageManager` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILanguageManager - { - System.Globalization.CultureInfo Culture { get; set; } - bool Enabled { get; set; } - string GetString(string key, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)); - } - - // Generated from `ServiceStack.FluentValidation.Resources.IStringSource` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IStringSource - { - string GetString(ServiceStack.FluentValidation.ICommonContext context); - } - - // Generated from `ServiceStack.FluentValidation.Resources.Language` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class Language - { - public virtual string GetTranslation(string key) => throw null; - protected Language() => throw null; - public abstract string Name { get; } - public void Translate(string message) => throw null; - public virtual void Translate(string key, string message) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Resources.LanguageManager` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LanguageManager : ServiceStack.FluentValidation.Resources.ILanguageManager - { - public void AddTranslation(string language, string key, string message) => throw null; - public void Clear() => throw null; - public System.Globalization.CultureInfo Culture { get => throw null; set => throw null; } - public bool Enabled { get => throw null; set => throw null; } - public virtual string GetString(string key, System.Globalization.CultureInfo culture = default(System.Globalization.CultureInfo)) => throw null; - public LanguageManager() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Resources.LanguageStringSource` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LanguageStringSource : ServiceStack.FluentValidation.Resources.IStringSource - { - public virtual string GetString(ServiceStack.FluentValidation.ICommonContext context) => throw null; - public LanguageStringSource(string key) => throw null; - public LanguageStringSource(System.Func errorCodeFunc, string fallbackKey) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Resources.LazyStringSource` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LazyStringSource : ServiceStack.FluentValidation.Resources.IStringSource - { - public string GetString(ServiceStack.FluentValidation.ICommonContext context) => throw null; - public LazyStringSource(System.Func stringProvider) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Resources.StaticStringSource` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StaticStringSource : ServiceStack.FluentValidation.Resources.IStringSource - { - public string GetString(ServiceStack.FluentValidation.ICommonContext context) => throw null; - public StaticStringSource(string message) => throw null; - } - - } - namespace Results - { - // Generated from `ServiceStack.FluentValidation.Results.ValidationFailure` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationFailure - { - public object AttemptedValue { get => throw null; set => throw null; } - public object CustomState { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public static System.Collections.Generic.Dictionary ErrorCodeAliases; - public static System.Func ErrorCodeResolver { get => throw null; set => throw null; } - public string ErrorMessage { get => throw null; set => throw null; } - public object[] FormattedMessageArguments { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary FormattedMessagePlaceholderValues { get => throw null; set => throw null; } - public string PropertyName { get => throw null; set => throw null; } - public static string ServiceStackErrorCodeResolver(string errorCode) => throw null; - public ServiceStack.FluentValidation.Severity Severity { get => throw null; set => throw null; } - public override string ToString() => throw null; - public ValidationFailure(string propertyName, string errorMessage, object attemptedValue) => throw null; - public ValidationFailure(string propertyName, string errorMessage) => throw null; - public ValidationFailure(string propertyName, string error, object attemptedValue, string errorCode) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Results.ValidationResult` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationResult - { - public System.Collections.Generic.IList Errors { get => throw null; } - public virtual bool IsValid { get => throw null; } - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public string[] RuleSetsExecuted { get => throw null; set => throw null; } - public string ToString(string separator) => throw null; - public override string ToString() => throw null; - public ValidationResult(System.Collections.Generic.IEnumerable failures) => throw null; - public ValidationResult() => throw null; - } - - } - namespace TestHelper - { - // Generated from `ServiceStack.FluentValidation.TestHelper.ITestPropertyChain<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITestPropertyChain - { - ServiceStack.FluentValidation.TestHelper.ITestPropertyChain Property(System.Linq.Expressions.Expression> memberAccessor); - System.Collections.Generic.IEnumerable ShouldHaveValidationError(); - void ShouldNotHaveValidationError(); - } - - // Generated from `ServiceStack.FluentValidation.TestHelper.IValidationResultTester` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IValidationResultTester - { - System.Collections.Generic.IEnumerable ShouldHaveValidationError(System.Collections.Generic.IEnumerable properties); - void ShouldNotHaveValidationError(System.Collections.Generic.IEnumerable properties); - } - - // Generated from `ServiceStack.FluentValidation.TestHelper.TestValidationResult<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TestValidationResult : ServiceStack.FluentValidation.Results.ValidationResult where T : class - { - public System.Collections.Generic.IEnumerable ShouldHaveValidationErrorFor(System.Linq.Expressions.Expression> memberAccessor) => throw null; - public System.Collections.Generic.IEnumerable ShouldHaveValidationErrorFor(string propertyName) => throw null; - public void ShouldNotHaveValidationErrorFor(System.Linq.Expressions.Expression> memberAccessor) => throw null; - public void ShouldNotHaveValidationErrorFor(string propertyName) => throw null; - public TestValidationResult(ServiceStack.FluentValidation.Results.ValidationResult validationResult) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.TestHelper.ValidationTestException` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationTestException : System.Exception - { - public System.Collections.Generic.List Errors { get => throw null; } - public ValidationTestException(string message, System.Collections.Generic.List errors) => throw null; - public ValidationTestException(string message) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.TestHelper.ValidationTestExtension` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ValidationTestExtension - { - public static System.Collections.Generic.IEnumerable ShouldHaveAnyValidationError(this ServiceStack.FluentValidation.TestHelper.TestValidationResult testValidationResult) where T : class => throw null; - public static void ShouldHaveChildValidator(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, System.Type childValidatorType) => throw null; - public static System.Collections.Generic.IEnumerable ShouldHaveValidationErrorFor(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, TValue value, string ruleSet = default(string)) where T : class, new() => throw null; - public static System.Collections.Generic.IEnumerable ShouldHaveValidationErrorFor(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, T objectToTest, string ruleSet = default(string)) where T : class => throw null; - public static System.Threading.Tasks.Task> ShouldHaveValidationErrorForAsync(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, TValue value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class, new() => throw null; - public static System.Threading.Tasks.Task> ShouldHaveValidationErrorForAsync(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, T objectToTest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class => throw null; - public static void ShouldNotHaveAnyValidationErrors(this ServiceStack.FluentValidation.TestHelper.TestValidationResult testValidationResult) where T : class => throw null; - public static void ShouldNotHaveValidationErrorFor(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, TValue value, string ruleSet = default(string)) where T : class, new() => throw null; - public static void ShouldNotHaveValidationErrorFor(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, T objectToTest, string ruleSet = default(string)) where T : class => throw null; - public static System.Threading.Tasks.Task ShouldNotHaveValidationErrorForAsync(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, TValue value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class, new() => throw null; - public static System.Threading.Tasks.Task ShouldNotHaveValidationErrorForAsync(this ServiceStack.FluentValidation.IValidator validator, System.Linq.Expressions.Expression> expression, T objectToTest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class => throw null; - public static ServiceStack.FluentValidation.TestHelper.TestValidationResult TestValidate(this ServiceStack.FluentValidation.IValidator validator, T objectToTest, string ruleSet = default(string)) where T : class => throw null; - public static ServiceStack.FluentValidation.TestHelper.TestValidationResult TestValidate(this ServiceStack.FluentValidation.IValidator validator, T objectToTest, System.Action> options) where T : class => throw null; - public static System.Threading.Tasks.Task> TestValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T objectToTest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken), string ruleSet = default(string)) where T : class => throw null; - public static System.Threading.Tasks.Task> TestValidateAsync(this ServiceStack.FluentValidation.IValidator validator, T objectToTest, System.Action> options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class => throw null; - public static System.Collections.Generic.IEnumerable When(this System.Collections.Generic.IEnumerable failures, System.Func failurePredicate, string exceptionMessage = default(string)) => throw null; - public static System.Collections.Generic.IEnumerable WhenAll(this System.Collections.Generic.IEnumerable failures, System.Func failurePredicate, string exceptionMessage = default(string)) => throw null; - public static System.Collections.Generic.IEnumerable WithCustomState(this System.Collections.Generic.IEnumerable failures, object expectedCustomState) => throw null; - public static System.Collections.Generic.IEnumerable WithErrorCode(this System.Collections.Generic.IEnumerable failures, string expectedErrorCode) => throw null; - public static System.Collections.Generic.IEnumerable WithErrorMessage(this System.Collections.Generic.IEnumerable failures, string expectedErrorMessage) => throw null; - public static System.Collections.Generic.IEnumerable WithMessageArgument(this System.Collections.Generic.IEnumerable failures, string argumentKey, T argumentValue) => throw null; - public static System.Collections.Generic.IEnumerable WithSeverity(this System.Collections.Generic.IEnumerable failures, ServiceStack.FluentValidation.Severity expectedSeverity) => throw null; - public static System.Collections.Generic.IEnumerable WithoutCustomState(this System.Collections.Generic.IEnumerable failures, object unexpectedCustomState) => throw null; - public static System.Collections.Generic.IEnumerable WithoutErrorCode(this System.Collections.Generic.IEnumerable failures, string unexpectedErrorCode) => throw null; - public static System.Collections.Generic.IEnumerable WithoutErrorMessage(this System.Collections.Generic.IEnumerable failures, string unexpectedErrorMessage) => throw null; - public static System.Collections.Generic.IEnumerable WithoutSeverity(this System.Collections.Generic.IEnumerable failures, ServiceStack.FluentValidation.Severity unexpectedSeverity) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.TestHelper.ValidatorTester<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidatorTester where T : class - { - public void ValidateError(T instanceToValidate) => throw null; - public void ValidateNoError(T instanceToValidate) => throw null; - public ValidatorTester(System.Linq.Expressions.Expression> expression, ServiceStack.FluentValidation.IValidator validator, TValue value) => throw null; - } - - } - namespace Validators - { - // Generated from `ServiceStack.FluentValidation.Validators.AbstractComparisonValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AbstractComparisonValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IComparisonValidator - { - protected AbstractComparisonValidator(System.IComparable value, ServiceStack.FluentValidation.Resources.IStringSource errorSource) => throw null; - protected AbstractComparisonValidator(System.IComparable value) => throw null; - protected AbstractComparisonValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName, ServiceStack.FluentValidation.Resources.IStringSource errorSource) => throw null; - protected AbstractComparisonValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) => throw null; - public abstract ServiceStack.FluentValidation.Validators.Comparison Comparison { get; } - public System.IComparable GetComparableValue(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, object value) => throw null; - public System.IComparable GetComparisonValue(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public abstract bool IsValid(System.IComparable value, System.IComparable valueToCompare); - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public System.Reflection.MemberInfo MemberToCompare { get => throw null; set => throw null; } - public object ValueToCompare { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.AspNetCoreCompatibleEmailValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AspNetCoreCompatibleEmailValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IEmailValidator - { - public AspNetCoreCompatibleEmailValidator() => throw null; - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.AsyncPredicateValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class AsyncPredicateValidator : ServiceStack.FluentValidation.Validators.PropertyValidator - { - public AsyncPredicateValidator(System.Func> predicate) => throw null; - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - protected override System.Threading.Tasks.Task IsValidAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; - public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.AsyncValidatorBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class AsyncValidatorBase : ServiceStack.FluentValidation.Validators.PropertyValidator - { - protected AsyncValidatorBase(string errorMessage) => throw null; - protected AsyncValidatorBase(ServiceStack.FluentValidation.Resources.IStringSource errorSource) => throw null; - protected AsyncValidatorBase() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - protected abstract override System.Threading.Tasks.Task IsValidAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation); - public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.ChildValidatorAdaptor<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ChildValidatorAdaptor : ServiceStack.FluentValidation.Validators.NoopPropertyValidator, ServiceStack.FluentValidation.Validators.IChildValidatorAdaptor - { - public ChildValidatorAdaptor(System.Func> validatorProvider, System.Type validatorType) => throw null; - public ChildValidatorAdaptor(ServiceStack.FluentValidation.IValidator validator, System.Type validatorType) => throw null; - protected virtual ServiceStack.FluentValidation.IValidationContext CreateNewValidationContextForChildValidator(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, ServiceStack.FluentValidation.IValidator validator) => throw null; - protected ServiceStack.FluentValidation.IValidationContext CreateNewValidationContextForChildValidator(object instanceToValidate, ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public virtual ServiceStack.FluentValidation.IValidator GetValidator(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public string[] RuleSets { get => throw null; set => throw null; } - public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; - public override System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public override System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; - public System.Type ValidatorType { get => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.Comparison` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum Comparison - { - Equal, - GreaterThan, - GreaterThanOrEqual, - LessThan, - LessThanOrEqual, - NotEqual, - } - - // Generated from `ServiceStack.FluentValidation.Validators.CreditCardValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CreditCardValidator : ServiceStack.FluentValidation.Validators.PropertyValidator - { - public CreditCardValidator() => throw null; - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.CustomContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomContext : ServiceStack.FluentValidation.ICommonContext - { - public void AddFailure(string propertyName, string errorMessage) => throw null; - public void AddFailure(string errorMessage) => throw null; - public void AddFailure(ServiceStack.FluentValidation.Results.ValidationFailure failure) => throw null; - public CustomContext(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public string DisplayName { get => throw null; } - public object InstanceToValidate { get => throw null; } - public ServiceStack.FluentValidation.Internal.MessageFormatter MessageFormatter { get => throw null; } - public ServiceStack.FluentValidation.IValidationContext ParentContext { get => throw null; } - ServiceStack.FluentValidation.ICommonContext ServiceStack.FluentValidation.ICommonContext.ParentContext { get => throw null; } - public string PropertyName { get => throw null; } - public object PropertyValue { get => throw null; } - public ServiceStack.FluentValidation.Internal.PropertyRule Rule { get => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.CustomValidator<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomValidator : ServiceStack.FluentValidation.Validators.PropertyValidator - { - public CustomValidator(System.Func asyncAction) => throw null; - public CustomValidator(System.Action action) => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; - public override System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public override System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.EmailValidationMode` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum EmailValidationMode - { - AspNetCoreCompatible, - Net4xRegex, - } - - // Generated from `ServiceStack.FluentValidation.Validators.EmailValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmailValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IRegularExpressionValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IEmailValidator - { - public EmailValidator() => throw null; - public string Expression { get => throw null; } - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.EmptyValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EmptyValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IEmptyValidator - { - public EmptyValidator(object defaultValueForType) => throw null; - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.EnumValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EnumValidator : ServiceStack.FluentValidation.Validators.PropertyValidator - { - public EnumValidator(System.Type enumType) => throw null; - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.EqualValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class EqualValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IComparisonValidator - { - protected bool Compare(object comparisonValue, object propertyValue) => throw null; - public ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } - public EqualValidator(object valueToCompare, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; - public EqualValidator(System.Func comparisonProperty, System.Reflection.MemberInfo member, string memberDisplayName, System.Collections.IEqualityComparer comparer = default(System.Collections.IEqualityComparer)) => throw null; - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public System.Reflection.MemberInfo MemberToCompare { get => throw null; set => throw null; } - public object ValueToCompare { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.ExactLengthValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ExactLengthValidator : ServiceStack.FluentValidation.Validators.LengthValidator - { - public ExactLengthValidator(int length) : base(default(System.Func), default(System.Func)) => throw null; - public ExactLengthValidator(System.Func length) : base(default(System.Func), default(System.Func)) => throw null; - protected override string GetDefaultMessageTemplate() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.ExclusiveBetweenValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ExclusiveBetweenValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IBetweenValidator - { - public ExclusiveBetweenValidator(System.IComparable from, System.IComparable to) => throw null; - public System.IComparable From { get => throw null; } - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public System.IComparable To { get => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.GreaterThanOrEqualValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GreaterThanOrEqualValidator : ServiceStack.FluentValidation.Validators.AbstractComparisonValidator - { - public override ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } - protected override string GetDefaultMessageTemplate() => throw null; - public GreaterThanOrEqualValidator(System.IComparable value) : base(default(System.IComparable)) => throw null; - public GreaterThanOrEqualValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) : base(default(System.IComparable)) => throw null; - public override bool IsValid(System.IComparable value, System.IComparable valueToCompare) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.GreaterThanValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GreaterThanValidator : ServiceStack.FluentValidation.Validators.AbstractComparisonValidator - { - public override ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } - protected override string GetDefaultMessageTemplate() => throw null; - public GreaterThanValidator(System.IComparable value) : base(default(System.IComparable)) => throw null; - public GreaterThanValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) : base(default(System.IComparable)) => throw null; - public override bool IsValid(System.IComparable value, System.IComparable valueToCompare) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.IBetweenValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IBetweenValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - System.IComparable From { get; } - System.IComparable To { get; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.IChildValidatorAdaptor` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IChildValidatorAdaptor - { - System.Type ValidatorType { get; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.IComparisonValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IComparisonValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - ServiceStack.FluentValidation.Validators.Comparison Comparison { get; } - System.Reflection.MemberInfo MemberToCompare { get; } - object ValueToCompare { get; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.IEmailValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IEmailValidator - { - } - - // Generated from `ServiceStack.FluentValidation.Validators.IEmptyValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IEmptyValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - } - - // Generated from `ServiceStack.FluentValidation.Validators.ILengthValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ILengthValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - int Max { get; } - int Min { get; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.INotEmptyValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface INotEmptyValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - } - - // Generated from `ServiceStack.FluentValidation.Validators.INotNullValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface INotNullValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - } - - // Generated from `ServiceStack.FluentValidation.Validators.INullValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface INullValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - } - - // Generated from `ServiceStack.FluentValidation.Validators.IPredicateValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPredicateValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - } - - // Generated from `ServiceStack.FluentValidation.Validators.IPropertyValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IPropertyValidator - { - ServiceStack.FluentValidation.PropertyValidatorOptions Options { get; } - bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context); - System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context); - System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation); - } - - // Generated from `ServiceStack.FluentValidation.Validators.IRegularExpressionValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRegularExpressionValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - string Expression { get; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.InclusiveBetweenValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InclusiveBetweenValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IBetweenValidator - { - public System.IComparable From { get => throw null; } - protected override string GetDefaultMessageTemplate() => throw null; - public InclusiveBetweenValidator(System.IComparable from, System.IComparable to) => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public System.IComparable To { get => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.LengthValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LengthValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.ILengthValidator - { - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public LengthValidator(int min, int max) => throw null; - public LengthValidator(System.Func min, System.Func max) => throw null; - public int Max { get => throw null; } - public System.Func MaxFunc { get => throw null; set => throw null; } - public int Min { get => throw null; } - public System.Func MinFunc { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.LessThanOrEqualValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LessThanOrEqualValidator : ServiceStack.FluentValidation.Validators.AbstractComparisonValidator - { - public override ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } - protected override string GetDefaultMessageTemplate() => throw null; - public override bool IsValid(System.IComparable value, System.IComparable valueToCompare) => throw null; - public LessThanOrEqualValidator(System.IComparable value) : base(default(System.IComparable)) => throw null; - public LessThanOrEqualValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) : base(default(System.IComparable)) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.LessThanValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class LessThanValidator : ServiceStack.FluentValidation.Validators.AbstractComparisonValidator - { - public override ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } - protected override string GetDefaultMessageTemplate() => throw null; - public override bool IsValid(System.IComparable value, System.IComparable valueToCompare) => throw null; - public LessThanValidator(System.IComparable value) : base(default(System.IComparable)) => throw null; - public LessThanValidator(System.Func valueToCompareFunc, System.Reflection.MemberInfo member, string memberDisplayName) : base(default(System.IComparable)) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.MaximumLengthValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MaximumLengthValidator : ServiceStack.FluentValidation.Validators.LengthValidator - { - protected override string GetDefaultMessageTemplate() => throw null; - public MaximumLengthValidator(int max) : base(default(System.Func), default(System.Func)) => throw null; - public MaximumLengthValidator(System.Func max) : base(default(System.Func), default(System.Func)) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.MinimumLengthValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MinimumLengthValidator : ServiceStack.FluentValidation.Validators.LengthValidator - { - protected override string GetDefaultMessageTemplate() => throw null; - public MinimumLengthValidator(int min) : base(default(System.Func), default(System.Func)) => throw null; - public MinimumLengthValidator(System.Func min) : base(default(System.Func), default(System.Func)) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.NoopPropertyValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class NoopPropertyValidator : ServiceStack.FluentValidation.Validators.IPropertyValidator - { - protected NoopPropertyValidator() => throw null; - public ServiceStack.FluentValidation.PropertyValidatorOptions Options { get => throw null; } - public virtual bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; - public abstract System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context); - public virtual System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.NotEmptyValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NotEmptyValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.INotEmptyValidator - { - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public NotEmptyValidator(object defaultValueForType) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.NotEqualValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NotEqualValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IComparisonValidator - { - protected bool Compare(object comparisonValue, object propertyValue) => throw null; - public ServiceStack.FluentValidation.Validators.Comparison Comparison { get => throw null; } - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public System.Reflection.MemberInfo MemberToCompare { get => throw null; set => throw null; } - public NotEqualValidator(object comparisonValue, System.Collections.IEqualityComparer equalityComparer = default(System.Collections.IEqualityComparer)) => throw null; - public NotEqualValidator(System.Func func, System.Reflection.MemberInfo memberToCompare, string memberDisplayName, System.Collections.IEqualityComparer equalityComparer = default(System.Collections.IEqualityComparer)) => throw null; - public object ValueToCompare { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.NotNullValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NotNullValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.INotNullValidator - { - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public NotNullValidator() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.NullValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NullValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.INullValidator - { - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public NullValidator() => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.OnFailureValidator<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OnFailureValidator : ServiceStack.FluentValidation.Validators.NoopPropertyValidator, ServiceStack.FluentValidation.Validators.IChildValidatorAdaptor - { - public OnFailureValidator(ServiceStack.FluentValidation.Validators.IPropertyValidator innerValidator, System.Action onFailure) => throw null; - public override bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; - public override System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public override System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; - public System.Type ValidatorType { get => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.PolymorphicValidator<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PolymorphicValidator : ServiceStack.FluentValidation.Validators.ChildValidatorAdaptor - { - public ServiceStack.FluentValidation.Validators.PolymorphicValidator Add(System.Func> validatorFactory, params string[] ruleSets) where TDerived : TProperty => throw null; - public ServiceStack.FluentValidation.Validators.PolymorphicValidator Add(System.Func> validatorFactory, params string[] ruleSets) where TDerived : TProperty => throw null; - public ServiceStack.FluentValidation.Validators.PolymorphicValidator Add(ServiceStack.FluentValidation.IValidator derivedValidator, params string[] ruleSets) where TDerived : TProperty => throw null; - protected ServiceStack.FluentValidation.Validators.PolymorphicValidator Add(System.Type subclassType, ServiceStack.FluentValidation.IValidator validator, params string[] ruleSets) => throw null; - protected override ServiceStack.FluentValidation.IValidationContext CreateNewValidationContextForChildValidator(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, ServiceStack.FluentValidation.IValidator validator) => throw null; - public override ServiceStack.FluentValidation.IValidator GetValidator(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public PolymorphicValidator() : base(default(ServiceStack.FluentValidation.IValidator), default(System.Type)) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.PredicateValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PredicateValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator, ServiceStack.FluentValidation.Validators.IPredicateValidator - { - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - // Generated from `ServiceStack.FluentValidation.Validators.PredicateValidator+Predicate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate bool Predicate(object instanceToValidate, object propertyValue, ServiceStack.FluentValidation.Validators.PropertyValidatorContext propertyValidatorContext); - - - public PredicateValidator(ServiceStack.FluentValidation.Validators.PredicateValidator.Predicate predicate) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.PropertyValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class PropertyValidator : ServiceStack.FluentValidation.PropertyValidatorOptions, ServiceStack.FluentValidation.Validators.IPropertyValidator - { - protected virtual ServiceStack.FluentValidation.Results.ValidationFailure CreateValidationError(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - protected abstract bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context); - protected virtual System.Threading.Tasks.Task IsValidAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; - protected string Localized(string fallbackKey) => throw null; - public ServiceStack.FluentValidation.PropertyValidatorOptions Options { get => throw null; } - protected virtual void PrepareMessageFormatterForValidationError(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - protected PropertyValidator(string errorMessage) => throw null; - protected PropertyValidator(ServiceStack.FluentValidation.Resources.IStringSource errorMessageSource) => throw null; - protected PropertyValidator() => throw null; - public virtual bool ShouldValidateAsynchronously(ServiceStack.FluentValidation.IValidationContext context) => throw null; - public virtual System.Collections.Generic.IEnumerable Validate(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public virtual System.Threading.Tasks.Task> ValidateAsync(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context, System.Threading.CancellationToken cancellation) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.PropertyValidatorContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PropertyValidatorContext : ServiceStack.FluentValidation.ICommonContext - { - public string DisplayName { get => throw null; } - public object InstanceToValidate { get => throw null; } - public ServiceStack.FluentValidation.Internal.MessageFormatter MessageFormatter { get => throw null; } - public ServiceStack.FluentValidation.IValidationContext ParentContext { get => throw null; set => throw null; } - ServiceStack.FluentValidation.ICommonContext ServiceStack.FluentValidation.ICommonContext.ParentContext { get => throw null; } - public string PropertyName { get => throw null; set => throw null; } - public PropertyValidatorContext(ServiceStack.FluentValidation.IValidationContext parentContext, ServiceStack.FluentValidation.Internal.PropertyRule rule, string propertyName, object propertyValue) => throw null; - public PropertyValidatorContext(ServiceStack.FluentValidation.IValidationContext parentContext, ServiceStack.FluentValidation.Internal.PropertyRule rule, string propertyName, System.Lazy propertyValueAccessor) => throw null; - public PropertyValidatorContext(ServiceStack.FluentValidation.IValidationContext parentContext, ServiceStack.FluentValidation.Internal.PropertyRule rule, string propertyName) => throw null; - public object PropertyValue { get => throw null; } - public ServiceStack.FluentValidation.Internal.PropertyRule Rule { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.FluentValidation.Validators.RegularExpressionValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RegularExpressionValidator : ServiceStack.FluentValidation.Validators.PropertyValidator, ServiceStack.FluentValidation.Validators.IRegularExpressionValidator, ServiceStack.FluentValidation.Validators.IPropertyValidator - { - public string Expression { get => throw null; } - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public RegularExpressionValidator(string expression, System.Text.RegularExpressions.RegexOptions options) => throw null; - public RegularExpressionValidator(string expression) => throw null; - public RegularExpressionValidator(System.Text.RegularExpressions.Regex regex) => throw null; - public RegularExpressionValidator(System.Func expressionFunc) => throw null; - public RegularExpressionValidator(System.Func expression, System.Text.RegularExpressions.RegexOptions options) => throw null; - public RegularExpressionValidator(System.Func regexFunc) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.ScalePrecisionValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ScalePrecisionValidator : ServiceStack.FluentValidation.Validators.PropertyValidator - { - protected override string GetDefaultMessageTemplate() => throw null; - public bool IgnoreTrailingZeros { get => throw null; set => throw null; } - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public int Precision { get => throw null; set => throw null; } - public int Scale { get => throw null; set => throw null; } - public ScalePrecisionValidator(int scale, int precision) => throw null; - } - - // Generated from `ServiceStack.FluentValidation.Validators.StringEnumValidator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringEnumValidator : ServiceStack.FluentValidation.Validators.PropertyValidator - { - protected override string GetDefaultMessageTemplate() => throw null; - protected override bool IsValid(ServiceStack.FluentValidation.Validators.PropertyValidatorContext context) => throw null; - public StringEnumValidator(System.Type enumType, bool caseSensitive) => throw null; - } - - } - } - namespace Formats - { - // Generated from `ServiceStack.Formats.CsvFormat` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CsvFormat : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public CsvFormat() => throw null; - public string Id { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public void SerializeToStream(ServiceStack.Web.IRequest req, object request, System.IO.Stream stream) => throw null; - } - - // Generated from `ServiceStack.Formats.HtmlFormat` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlFormat : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin - { - public string DefaultResolveTemplate(ServiceStack.Web.IRequest req) => throw null; - public HtmlFormat() => throw null; - public static string HtmlTitleFormat; - public static bool Humanize; - public string Id { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary PathTemplates { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public static string ReplaceTokens(string html, ServiceStack.Web.IRequest req) => throw null; - public System.Func ResolveTemplate { get => throw null; set => throw null; } - public System.Threading.Tasks.Task SerializeToStreamAsync(ServiceStack.Web.IRequest req, object response, System.IO.Stream outputStream) => throw null; - public static string TitleFormat; - } - - // Generated from `ServiceStack.Formats.SpanFormats` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SpanFormats : ServiceStack.IPlugin - { - public ServiceStack.Text.MemoryProvider MemoryProvider { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public SpanFormats() => throw null; - } - - // Generated from `ServiceStack.Formats.XmlSerializerFormat` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlSerializerFormat : ServiceStack.IPlugin - { - public static object Deserialize(System.Type type, System.IO.Stream stream) => throw null; - public void Register(ServiceStack.IAppHost appHost) => throw null; - public static void Serialize(ServiceStack.Web.IRequest req, object response, System.IO.Stream stream) => throw null; - public XmlSerializerFormat() => throw null; - } - - } - namespace Host - { - // Generated from `ServiceStack.Host.ActionContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ActionContext - { - public ActionContext() => throw null; - public const string AnyAction = default; - public static string AnyFormatKey(string format, string requestDtoName) => throw null; - public static string AnyKey(string requestDtoName) => throw null; - public const string AnyMethod = default; - public string Id { get => throw null; set => throw null; } - public static string Key(string method, string requestDtoName) => throw null; - public ServiceStack.Web.IRequestFilterBase[] RequestFilters { get => throw null; set => throw null; } - public System.Type RequestType { get => throw null; set => throw null; } - public ServiceStack.Web.IResponseFilterBase[] ResponseFilters { get => throw null; set => throw null; } - public ServiceStack.Host.ActionInvokerFn ServiceAction { get => throw null; set => throw null; } - public System.Type ServiceType { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.ActionInvokerFn` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object ActionInvokerFn(object instance, object request); - - // Generated from `ServiceStack.Host.ActionMethod` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ActionMethod - { - public ActionMethod(System.Reflection.MethodInfo methodInfo) => throw null; - public object[] AllAttributes() => throw null; - public T[] AllAttributes() => throw null; - public const string Async = default; - public const string AsyncUpper = default; - public object[] GetCustomAttributes(bool inherit) => throw null; - public System.Reflection.ParameterInfo[] GetParameters() => throw null; - public bool IsAsync { get => throw null; } - public bool IsGenericMethod { get => throw null; } - public System.Reflection.MethodInfo MethodInfo { get => throw null; } - public string Name { get => throw null; } - public string NameUpper { get => throw null; } - public System.Type RequestType { get => throw null; } - public System.Type ReturnType { get => throw null; } - } - - // Generated from `ServiceStack.Host.BasicHttpRequest` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicHttpRequest : ServiceStack.Host.BasicRequest, ServiceStack.Web.IRequest, ServiceStack.Web.IHttpRequest, ServiceStack.Configuration.IResolver - { - public string Accept { get => throw null; set => throw null; } - public BasicHttpRequest(object requestDto, ServiceStack.RequestAttributes requestAttributes = default(ServiceStack.RequestAttributes)) : base(default(ServiceStack.Messaging.IMessage), default(ServiceStack.RequestAttributes)) => throw null; - public BasicHttpRequest() : base(default(ServiceStack.Messaging.IMessage), default(ServiceStack.RequestAttributes)) => throw null; - public string HttpMethod { get => throw null; set => throw null; } - public ServiceStack.Web.IHttpResponse HttpResponse { get => throw null; set => throw null; } - public string XForwardedFor { get => throw null; set => throw null; } - public int? XForwardedPort { get => throw null; set => throw null; } - public string XForwardedProtocol { get => throw null; set => throw null; } - public string XRealIp { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.BasicHttpResponse` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicHttpResponse : ServiceStack.Host.BasicResponse, ServiceStack.Web.IResponse, ServiceStack.Web.IHttpResponse - { - public BasicHttpResponse(ServiceStack.Host.BasicRequest requestContext) : base(default(ServiceStack.Host.BasicRequest)) => throw null; - public void ClearCookies() => throw null; - public ServiceStack.Web.ICookies Cookies { get => throw null; } - public void SetCookie(System.Net.Cookie cookie) => throw null; - } - - // Generated from `ServiceStack.Host.BasicRequest` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicRequest : System.IServiceProvider, ServiceStack.Web.IRequest, ServiceStack.IO.IHasVirtualFiles, ServiceStack.IHasServiceScope, ServiceStack.Configuration.IResolver, ServiceStack.Configuration.IHasResolver - { - public string AbsoluteUri { get => throw null; set => throw null; } - public string[] AcceptTypes { get => throw null; set => throw null; } - public string Authorization { get => throw null; set => throw null; } - public BasicRequest(object requestDto, ServiceStack.RequestAttributes requestAttributes = default(ServiceStack.RequestAttributes)) => throw null; - public BasicRequest(ServiceStack.Messaging.IMessage message = default(ServiceStack.Messaging.IMessage), ServiceStack.RequestAttributes requestAttributes = default(ServiceStack.RequestAttributes)) => throw null; - public string CompressionType { get => throw null; set => throw null; } - public System.Int64 ContentLength { get => throw null; } - public string ContentType { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Cookies { get => throw null; set => throw null; } - public object Dto { get => throw null; set => throw null; } - public ServiceStack.Web.IHttpFile[] Files { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection FormData { get => throw null; set => throw null; } - public ServiceStack.IO.IVirtualDirectory GetDirectory() => throw null; - public ServiceStack.IO.IVirtualFile GetFile() => throw null; - public string GetHeader(string headerName) => throw null; - public string GetRawBody() => throw null; - public System.Threading.Tasks.Task GetRawBodyAsync() => throw null; - public object GetService(System.Type serviceType) => throw null; - public bool HasExplicitResponseContentType { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } - public System.IO.Stream InputStream { get => throw null; set => throw null; } - public bool IsDirectory { get => throw null; set => throw null; } - public bool IsFile { get => throw null; set => throw null; } - public bool IsLocal { get => throw null; set => throw null; } - public bool IsSecureConnection { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public ServiceStack.Messaging.IMessage Message { get => throw null; set => throw null; } - public string OperationName { get => throw null; set => throw null; } - public string OriginalPathInfo { get => throw null; } - public object OriginalRequest { get => throw null; set => throw null; } - public string PathInfo { get => throw null; set => throw null; } - public ServiceStack.Host.BasicRequest PopulateWith(ServiceStack.Web.IRequest request) => throw null; - public System.Collections.Specialized.NameValueCollection QueryString { get => throw null; set => throw null; } - public string RawUrl { get => throw null; set => throw null; } - public string RemoteIp { get => throw null; set => throw null; } - public ServiceStack.RequestAttributes RequestAttributes { get => throw null; set => throw null; } - public ServiceStack.Web.IRequestPreferences RequestPreferences { get => throw null; } - public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } - public ServiceStack.Web.IResponse Response { get => throw null; set => throw null; } - public string ResponseContentType { get => throw null; set => throw null; } - public Microsoft.Extensions.DependencyInjection.IServiceScope ServiceScope { get => throw null; set => throw null; } - public T TryResolve() => throw null; - public System.Uri UrlReferrer { get => throw null; set => throw null; } - public bool UseBufferedStream { get => throw null; set => throw null; } - public string UserAgent { get => throw null; set => throw null; } - public string UserHostAddress { get => throw null; set => throw null; } - public string Verb { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.BasicResponse` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicResponse : ServiceStack.Web.IResponse, ServiceStack.Web.IHasHeaders - { - public void AddHeader(string name, string value) => throw null; - public BasicResponse(ServiceStack.Host.BasicRequest requestContext) => throw null; - public void Close() => throw null; - public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string ContentType { get => throw null; set => throw null; } - public object Dto { get => throw null; set => throw null; } - public void End() => throw null; - public void Flush() => throw null; - public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string GetHeader(string name) => throw null; - public bool HasStarted { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Headers { get => throw null; } - public bool IsClosed { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; } - public bool KeepAlive { get => throw null; set => throw null; } - public object OriginalResponse { get => throw null; set => throw null; } - public System.IO.Stream OutputStream { get => throw null; } - public void Redirect(string url) => throw null; - public void RemoveHeader(string name) => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; } - public void SetContentLength(System.Int64 contentLength) => throw null; - public int StatusCode { get => throw null; set => throw null; } - public string StatusDescription { get => throw null; set => throw null; } - public bool UseBufferedStream { get => throw null; set => throw null; } - public void Write(string text) => throw null; - } - - // Generated from `ServiceStack.Host.ContainerResolveCache` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ContainerResolveCache : ServiceStack.Configuration.ITypeFactory - { - public ContainerResolveCache(Funq.Container container) => throw null; - public object CreateInstance(ServiceStack.Configuration.IResolver resolver, System.Type type, bool tryResolve) => throw null; - public object CreateInstance(ServiceStack.Configuration.IResolver resolver, System.Type type) => throw null; - } - - // Generated from `ServiceStack.Host.ContentTypes` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ContentTypes : ServiceStack.Web.IContentTypes, ServiceStack.Web.IContentTypeWriter, ServiceStack.Web.IContentTypeReader - { - public System.Collections.Generic.Dictionary ContentTypeDeserializers; - public System.Collections.Generic.Dictionary ContentTypeDeserializersAsync; - public System.Collections.Generic.Dictionary ContentTypeFormats { get => throw null; } - public System.Collections.Generic.Dictionary ContentTypeSerializers; - public System.Collections.Generic.Dictionary ContentTypeSerializersAsync; - public System.Collections.Generic.Dictionary ContentTypeStringDeserializers; - public System.Collections.Generic.Dictionary ContentTypeStringSerializers; - public ContentTypes() => throw null; - public object DeserializeFromStream(string contentType, System.Type type, System.IO.Stream fromStream) => throw null; - public object DeserializeFromString(string contentType, System.Type type, string request) => throw null; - public string GetFormatContentType(string format) => throw null; - public ServiceStack.Web.StreamDeserializerDelegate GetStreamDeserializer(string contentType) => throw null; - public ServiceStack.Web.StreamDeserializerDelegateAsync GetStreamDeserializerAsync(string contentType) => throw null; - public ServiceStack.Web.StreamSerializerDelegate GetStreamSerializer(string contentType) => throw null; - public ServiceStack.Web.StreamSerializerDelegateAsync GetStreamSerializerAsync(string contentType) => throw null; - public static ServiceStack.Host.ContentTypes Instance; - public static System.Collections.Generic.HashSet KnownFormats; - public void Register(string contentType, ServiceStack.Web.StreamSerializerDelegate streamSerializer, ServiceStack.Web.StreamDeserializerDelegate streamDeserializer) => throw null; - public void RegisterAsync(string contentType, ServiceStack.Web.StreamSerializerDelegateAsync streamSerializer, ServiceStack.Web.StreamDeserializerDelegateAsync streamDeserializer) => throw null; - public void Remove(string contentType) => throw null; - public System.Byte[] SerializeToBytes(ServiceStack.Web.IRequest req, object response) => throw null; - public System.Threading.Tasks.Task SerializeToStreamAsync(ServiceStack.Web.IRequest req, object response, System.IO.Stream responseStream) => throw null; - public string SerializeToString(ServiceStack.Web.IRequest req, object response) => throw null; - public static System.Threading.Tasks.Task SerializeUnknownContentType(ServiceStack.Web.IRequest req, object response, System.IO.Stream stream) => throw null; - public void SetContentTypeDeserializer(string contentType, ServiceStack.Web.StreamDeserializerDelegate streamDeserializer) => throw null; - public void SetContentTypeSerializer(string contentType, ServiceStack.Web.StreamSerializerDelegate streamSerializer) => throw null; - public static ServiceStack.Web.StreamDeserializerDelegateAsync UnknownContentTypeDeserializer { get => throw null; set => throw null; } - public static ServiceStack.Web.StreamSerializerDelegateAsync UnknownContentTypeSerializer { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.Cookies` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Cookies : ServiceStack.Web.ICookies - { - public void AddPermanentCookie(string cookieName, string cookieValue, bool? secureOnly = default(bool?)) => throw null; - public void AddSessionCookie(string cookieName, string cookieValue, bool? secureOnly = default(bool?)) => throw null; - public Cookies(ServiceStack.Web.IHttpResponse httpRes) => throw null; - public void DeleteCookie(string cookieName) => throw null; - public const string RootPath = default; - } - - // Generated from `ServiceStack.Host.CookiesExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CookiesExtensions - { - public static string AsHeaderValue(this System.Net.Cookie cookie) => throw null; - public static Microsoft.AspNetCore.Http.CookieOptions ToCookieOptions(this System.Net.Cookie cookie) => throw null; - } - - // Generated from `ServiceStack.Host.DataBinder` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DataBinder - { - public DataBinder() => throw null; - public static string Eval(object container, string expression, string format) => throw null; - public static object Eval(object container, string expression) => throw null; - public static object GetDataItem(object container, out bool foundDataItem) => throw null; - public static object GetDataItem(object container) => throw null; - public static string GetIndexedPropertyValue(object container, string expr, string format) => throw null; - public static object GetIndexedPropertyValue(object container, string expr) => throw null; - public static string GetPropertyValue(object container, string propName, string format) => throw null; - public static object GetPropertyValue(object container, string propName) => throw null; - } - - // Generated from `ServiceStack.Host.DefaultHttpHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DefaultHttpHandler : ServiceStack.Host.IHttpHandler - { - public DefaultHttpHandler() => throw null; - } - - // Generated from `ServiceStack.Host.FallbackRestPathDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate ServiceStack.Host.RestPath FallbackRestPathDelegate(ServiceStack.Web.IHttpRequest httpReq); - - // Generated from `ServiceStack.Host.HandleGatewayExceptionAsyncDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate System.Threading.Tasks.Task HandleGatewayExceptionAsyncDelegate(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex); - - // Generated from `ServiceStack.Host.HandleGatewayExceptionDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void HandleGatewayExceptionDelegate(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex); - - // Generated from `ServiceStack.Host.HandleServiceExceptionAsyncDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate System.Threading.Tasks.Task HandleServiceExceptionAsyncDelegate(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex); - - // Generated from `ServiceStack.Host.HandleServiceExceptionDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object HandleServiceExceptionDelegate(ServiceStack.Web.IRequest httpReq, object request, System.Exception ex); - - // Generated from `ServiceStack.Host.HandleUncaughtExceptionAsyncDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate System.Threading.Tasks.Task HandleUncaughtExceptionAsyncDelegate(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex); - - // Generated from `ServiceStack.Host.HandleUncaughtExceptionDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void HandleUncaughtExceptionDelegate(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex); - - // Generated from `ServiceStack.Host.HtmlString` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlString : ServiceStack.Host.IHtmlString - { - public HtmlString(string value) => throw null; - public string ToHtmlString() => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Host.HttpException` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpException : System.Exception - { - public HttpException(string message, System.Exception innerException) => throw null; - public HttpException(string message) => throw null; - public HttpException(int statusCode, string statusDescription) => throw null; - public HttpException() => throw null; - public int StatusCode { get => throw null; } - public string StatusDescription { get => throw null; } - } - - // Generated from `ServiceStack.Host.HttpFile` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpFile : ServiceStack.Web.IHttpFile - { - public System.Int64 ContentLength { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public string FileName { get => throw null; set => throw null; } - public HttpFile() => throw null; - public System.IO.Stream InputStream { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.HttpHandlerResolverDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate ServiceStack.Host.IHttpHandler HttpHandlerResolverDelegate(string httpMethod, string pathInfo, string filePath); - - // Generated from `ServiceStack.Host.HttpRequestAuthentication` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HttpRequestAuthentication - { - public static string GetAuthorization(this ServiceStack.Web.IRequest req) => throw null; - public static string GetBasicAuth(this ServiceStack.Web.IRequest req) => throw null; - public static System.Collections.Generic.KeyValuePair? GetBasicAuthUserAndPassword(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetBearerToken(this ServiceStack.Web.IRequest req) => throw null; - public static string GetCookieValue(this ServiceStack.Web.IRequest httpReq, string cookieName) => throw null; - public static System.Collections.Generic.Dictionary GetDigestAuth(this ServiceStack.Web.IRequest httpReq) => throw null; - public static string GetItemStringValue(this ServiceStack.Web.IRequest httpReq, string itemName) => throw null; - public static string GetJwtToken(this ServiceStack.Web.IRequest req) => throw null; - } - - // Generated from `ServiceStack.Host.HttpResponseStreamWrapper` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HttpResponseStreamWrapper : ServiceStack.Web.IResponse, ServiceStack.Web.IHttpResponse, ServiceStack.Web.IHasHeaders - { - public void AddHeader(string name, string value) => throw null; - public void ClearCookies() => throw null; - public void Close() => throw null; - public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string ContentType { get => throw null; set => throw null; } - public ServiceStack.Web.ICookies Cookies { get => throw null; set => throw null; } - public object Dto { get => throw null; set => throw null; } - public void End() => throw null; - public void Flush() => throw null; - public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public void ForceClose() => throw null; - public string GetHeader(string name) => throw null; - public bool HasStarted { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } - public HttpResponseStreamWrapper(System.IO.Stream stream, ServiceStack.Web.IRequest request) => throw null; - public bool IsClosed { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public bool KeepAlive { get => throw null; set => throw null; } - public bool KeepOpen { get => throw null; set => throw null; } - public object OriginalResponse { get => throw null; } - public System.IO.Stream OutputStream { get => throw null; set => throw null; } - public void Redirect(string url) => throw null; - public void RemoveHeader(string name) => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public void SetContentLength(System.Int64 contentLength) => throw null; - 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 bool UseBufferedStream { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.IHasBufferedStream` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHasBufferedStream - { - System.IO.MemoryStream BufferedStream { get; } - } - - // Generated from `ServiceStack.Host.IHtmlString` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHtmlString - { - string ToHtmlString(); - } - - // Generated from `ServiceStack.Host.IHttpAsyncHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpAsyncHandler : ServiceStack.Host.IHttpHandler - { - System.Threading.Tasks.Task Middleware(Microsoft.AspNetCore.Http.HttpContext context, System.Func next); - } - - // Generated from `ServiceStack.Host.IHttpHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpHandler - { - } - - // Generated from `ServiceStack.Host.IHttpHandlerFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHttpHandlerFactory - { - } - - // Generated from `ServiceStack.Host.IServiceExec` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceExec - { - object Execute(ServiceStack.Web.IRequest requestContext, object instance, object request); - } - - // Generated from `ServiceStack.Host.ITypedFilter` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypedFilter - { - void Invoke(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto); - } - - // Generated from `ServiceStack.Host.ITypedFilter<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypedFilter - { - void Invoke(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, T dto); - } - - // Generated from `ServiceStack.Host.ITypedFilterAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypedFilterAsync - { - System.Threading.Tasks.Task InvokeAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto); - } - - // Generated from `ServiceStack.Host.ITypedFilterAsync<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface ITypedFilterAsync - { - System.Threading.Tasks.Task InvokeAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, T dto); - } - - // Generated from `ServiceStack.Host.InMemoryRollingRequestLogger` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryRollingRequestLogger : ServiceStack.Web.IRequestLogger - { - protected ServiceStack.RequestLogEntry CreateEntry(ServiceStack.Web.IRequest request, object requestDto, object response, System.TimeSpan requestDuration, System.Type requestType) => throw null; - public System.Func CurrentDateFn { get => throw null; set => throw null; } - public const int DefaultCapacity = default; - public bool EnableErrorTracking { get => throw null; set => throw null; } - public bool EnableRequestBodyTracking { get => throw null; set => throw null; } - public bool EnableResponseTracking { get => throw null; set => throw null; } - public bool EnableSessionTracking { get => throw null; set => throw null; } - public System.Type[] ExcludeRequestDtoTypes { get => throw null; set => throw null; } - protected bool ExcludeRequestType(System.Type requestType) => throw null; - public virtual System.Collections.Generic.List GetLatestLogs(int? take) => throw null; - public System.Type[] HideRequestBodyForRequestDtoTypes { get => throw null; set => throw null; } - public System.Func IgnoreFilter { get => throw null; set => throw null; } - public InMemoryRollingRequestLogger(int? capacity) => throw null; - protected InMemoryRollingRequestLogger() => throw null; - public bool LimitToServiceRequests { get => throw null; set => throw null; } - public virtual void Log(ServiceStack.Web.IRequest request, object requestDto, object response, System.TimeSpan requestDuration) => throw null; - public System.Action RequestLogFilter { get => throw null; set => throw null; } - public string[] RequiredRoles { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary SerializableItems(System.Collections.Generic.Dictionary items) => throw null; - public virtual bool ShouldSkip(ServiceStack.Web.IRequest req, object requestDto) => throw null; - public System.Func SkipLogging { get => throw null; set => throw null; } - public static object ToSerializableErrorResponse(object response) => throw null; - protected int capacity; - protected System.Collections.Concurrent.ConcurrentQueue logEntries; - } - - // Generated from `ServiceStack.Host.InstanceExecFn` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object InstanceExecFn(ServiceStack.Web.IRequest requestContext, object instance, object request); - - // Generated from `ServiceStack.Host.MetadataTypeExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MetadataTypeExtensions - { - public static System.Collections.Generic.HashSet CollectionTypes; - public static bool ExcludesFeature(this System.Type type, ServiceStack.Feature feature) => throw null; - public static string GetParamType(this ServiceStack.MetadataPropertyType prop, ServiceStack.MetadataType type, ServiceStack.Host.Operation op) => throw null; - public static string GetParamType(this ServiceStack.ApiMemberAttribute attr, System.Type type, string verb) => throw null; - public static bool Has(this ServiceStack.Feature feature, ServiceStack.Feature flag) => throw null; - public static bool IsAbstract(this ServiceStack.MetadataType type) => throw null; - public static bool IsArray(this ServiceStack.MetadataPropertyType prop) => throw null; - public static bool IsCollection(this ServiceStack.MetadataPropertyType prop) => throw null; - public static bool IsInterface(this ServiceStack.MetadataType type) => throw null; - public static bool? NullIfFalse(this bool value) => throw null; - public static System.Collections.Generic.Dictionary ToMetadataServiceRoutes(this System.Collections.Generic.Dictionary serviceRoutes, System.Action> filter = default(System.Action>)) => throw null; - } - - // Generated from `ServiceStack.Host.Operation` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Operation - { - public System.Collections.Generic.List Actions { get => throw null; set => throw null; } - public void AddRequestPropertyValidationRules(System.Collections.Generic.List propertyValidators) => throw null; - public void AddRequestTypeValidationRules(System.Collections.Generic.List typeValidators) => throw null; - public System.Type DataModelType { get => throw null; } - public bool IsOneWay { get => throw null; } - public string Name { get => throw null; } - public Operation() => throw null; - public System.Collections.Generic.List RequestFilterAttributes { get => throw null; set => throw null; } - public System.Collections.Generic.List RequestPropertyValidationRules { get => throw null; set => throw null; } - public System.Type RequestType { get => throw null; set => throw null; } - public System.Collections.Generic.List RequestTypeValidationRules { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiredPermissions { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiredRoles { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiresAnyPermission { get => throw null; set => throw null; } - public System.Collections.Generic.List RequiresAnyRole { get => throw null; set => throw null; } - public bool RequiresAuthentication { get => throw null; set => throw null; } - public System.Collections.Generic.List ResponseFilterAttributes { get => throw null; set => throw null; } - public System.Type ResponseType { get => throw null; set => throw null; } - public ServiceStack.RestrictAttribute RestrictTo { get => throw null; set => throw null; } - public System.Collections.Generic.List Routes { get => throw null; set => throw null; } - public System.Type ServiceType { get => throw null; set => throw null; } - public System.Collections.Generic.List Tags { get => throw null; set => throw null; } - public System.Type ViewModelType { get => throw null; } - } - - // Generated from `ServiceStack.Host.OperationDto` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OperationDto - { - public System.Collections.Generic.List Actions { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public OperationDto() => throw null; - public string ResponseName { get => throw null; set => throw null; } - public System.Collections.Generic.List RestrictTo { get => throw null; set => throw null; } - public System.Collections.Generic.List Routes { get => throw null; set => throw null; } - public string ServiceName { get => throw null; set => throw null; } - public System.Collections.Generic.List Tags { get => throw null; set => throw null; } - public System.Collections.Generic.List VisibleTo { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.RequestPreferences` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestPreferences : ServiceStack.Web.IRequestPreferences - { - public string AcceptEncoding { get => throw null; } - public bool AcceptsDeflate { get => throw null; } - public bool AcceptsGzip { get => throw null; } - public RequestPreferences(ServiceStack.Web.IRequest httpRequest) => throw null; - } - - // Generated from `ServiceStack.Host.RestHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RestHandler : ServiceStack.Host.Handlers.ServiceStackHandlerBase, ServiceStack.Host.Handlers.IRequestHttpHandler - { - public static object CreateRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IRestPath restPath, System.Collections.Generic.Dictionary requestParams, object requestDto) => throw null; - public static System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IRestPath restPath, System.Collections.Generic.Dictionary requestParams) => throw null; - public static System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IRestPath restPath) => throw null; - public System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest httpReq, string operationName) => throw null; - public static ServiceStack.Web.IRestPath FindMatchingRestPath(string httpMethod, string pathInfo, out string contentType) => throw null; - public static ServiceStack.Web.IRestPath FindMatchingRestPath(ServiceStack.Web.IHttpRequest httpReq, out string contentType) => throw null; - public ServiceStack.Web.IRestPath GetRestPath(ServiceStack.Web.IHttpRequest httpReq) => throw null; - public static string GetSanitizedPathInfo(string pathInfo, out string contentType) => throw null; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public string ResponseContentType { get => throw null; set => throw null; } - public RestHandler() => throw null; - public ServiceStack.Web.IRestPath RestPath { get => throw null; set => throw null; } - public override bool RunAsAsync() => throw null; - } - - // Generated from `ServiceStack.Host.RestPath` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RestPath : ServiceStack.Web.IRestPath - { - public void AfterInit() => throw null; - public string AllowedVerbs { get => throw null; } - public bool AllowsAllVerbs { get => throw null; } - public static System.Func CalculateMatchScore { get => throw null; set => throw null; } - public object CreateRequest(string pathInfo, System.Collections.Generic.Dictionary queryStringAndFormData, object fromInstance) => throw null; - public object CreateRequest(string pathInfo) => throw null; - public string FirstMatchHashKey { get => throw null; set => throw null; } - public static System.Collections.Generic.IEnumerable GetFirstMatchHashKeys(string[] pathPartsForMatching) => throw null; - public static System.Collections.Generic.IEnumerable GetFirstMatchWildCardHashKeys(string[] pathPartsForMatching) => throw null; - public override int GetHashCode() => throw null; - public static string[] GetPathPartsForMatching(string pathInfo) => throw null; - public System.Func GetRequestRule() => throw null; - public bool IsMatch(string httpMethod, string[] withPathInfoParts, out int wildcardMatchCount) => throw null; - public bool IsMatch(ServiceStack.Web.IHttpRequest httpReq) => throw null; - public bool IsValid { get => throw null; set => throw null; } - public bool IsVariable(string name) => throw null; - public bool IsWildCardPath { get => throw null; set => throw null; } - public string MatchRule { get => throw null; set => throw null; } - public int MatchScore(string httpMethod, string[] withPathInfoParts) => throw null; - public string Notes { get => throw null; set => throw null; } - public string Path { get => throw null; } - public int PathComponentsCount { get => throw null; set => throw null; } - public int Priority { get => throw null; set => throw null; } - public System.Type RequestType { get => throw null; } - public RestPath(System.Type requestType, string path, string verbs, string summary = default(string), string notes = default(string), string matchRule = default(string)) => throw null; - public RestPath(System.Type requestType, string path) => throw null; - public string Summary { get => throw null; set => throw null; } - public ServiceStack.RestRoute ToRestRoute() => throw null; - public int TotalComponentsCount { get => throw null; set => throw null; } - public string UniqueMatchHashKey { get => throw null; } - public int VariableArgsCount { get => throw null; set => throw null; } - public string[] Verbs { get => throw null; } - } - - // Generated from `ServiceStack.Host.RouteNamingConvention` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class RouteNamingConvention - { - public static System.Collections.Generic.List AttributeNamesToMatch; - public static System.Collections.Generic.List PropertyNamesToMatch; - public static void WithMatchingAttributes(ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string allowedVerbs) => throw null; - public static void WithMatchingPropertyNames(ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string allowedVerbs) => throw null; - public static void WithRequestDtoName(ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string allowedVerbs) => throw null; - } - - // Generated from `ServiceStack.Host.RouteNamingConventionDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void RouteNamingConventionDelegate(ServiceStack.Web.IServiceRoutes routes, System.Type requestType, string allowedVerbs); - - // Generated from `ServiceStack.Host.ServiceController` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceController : ServiceStack.Web.IServiceExecutor, ServiceStack.Web.IServiceController - { - public void AfterInit() => throw null; - public object ApplyResponseFilters(object response, ServiceStack.Web.IRequest req) => throw null; - public void AssertServiceRestrictions(System.Type requestType, ServiceStack.RequestAttributes actualAttributes) => throw null; - public string DefaultOperationsNamespace { get => throw null; set => throw null; } - public virtual object Execute(object requestDto, ServiceStack.Web.IRequest req) => throw null; - public object Execute(object requestDto, ServiceStack.Web.IRequest req, bool applyFilters) => throw null; - public object Execute(object requestDto) => throw null; - public object Execute(ServiceStack.Web.IRequest req, bool applyFilters) => throw null; - public virtual System.Threading.Tasks.Task ExecuteAsync(object requestDto, ServiceStack.Web.IRequest req) => throw null; - public object ExecuteMessage(ServiceStack.Messaging.IMessage mqMessage) => throw null; - public object ExecuteMessage(ServiceStack.Messaging.IMessage dto, ServiceStack.Web.IRequest req) => throw null; - public System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage mqMessage, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task ExecuteMessageAsync(ServiceStack.Messaging.IMessage dto, ServiceStack.Web.IRequest req, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public System.Threading.Tasks.Task GatewayExecuteAsync(object requestDto, ServiceStack.Web.IRequest req, bool applyFilters) => throw null; - public ServiceStack.Web.IRestPath GetRestPathForRequest(string httpMethod, string pathInfo) => throw null; - public ServiceStack.Host.RestPath GetRestPathForRequest(string httpMethod, string pathInfo, ServiceStack.Web.IHttpRequest httpReq) => throw null; - public virtual ServiceStack.Host.ServiceExecFn GetService(System.Type requestType) => throw null; - public ServiceStack.Host.ServiceController Init() => throw null; - public static bool IsServiceAction(string actionName, System.Type requestType) => throw null; - public static bool IsServiceAction(ServiceStack.Host.ActionMethod mi) => throw null; - public static bool IsServiceType(System.Type serviceType) => throw null; - public void RegisterRestPath(ServiceStack.Host.RestPath restPath) => throw null; - public void RegisterRestPaths(System.Type requestType) => throw null; - public void RegisterService(System.Type serviceType) => throw null; - public void RegisterService(ServiceStack.Configuration.ITypeFactory serviceFactoryFn, System.Type serviceType) => throw null; - public void RegisterServiceExecutor(System.Type requestType, System.Type serviceType, ServiceStack.Configuration.ITypeFactory serviceFactoryFn) => throw null; - public void RegisterServicesInAssembly(System.Reflection.Assembly assembly) => throw null; - public System.Collections.Generic.Dictionary> RequestTypeFactoryMap { get => throw null; set => throw null; } - public void ResetServiceExecCachesIfNeeded(System.Type serviceType, System.Type requestType) => throw null; - public System.Func> ResolveServicesFn { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary> RestPathMap; - public ServiceController(ServiceStack.ServiceStackHost appHost, params System.Reflection.Assembly[] assembliesWithServices) => throw null; - public ServiceController(ServiceStack.ServiceStackHost appHost, System.Func> resolveServicesFn) => throw null; - public ServiceController(ServiceStack.ServiceStackHost appHost) => throw null; - } - - // Generated from `ServiceStack.Host.ServiceExecExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceExecExtensions - { - public static System.Collections.Generic.List GetActions(this System.Type serviceType) => throw null; - public static System.Collections.Generic.List GetRequestActions(this System.Type serviceType, System.Type requestType) => throw null; - } - - // Generated from `ServiceStack.Host.ServiceExecFn` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate System.Threading.Tasks.Task ServiceExecFn(ServiceStack.Web.IRequest requestContext, object request); - - // Generated from `ServiceStack.Host.ServiceMetadata` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceMetadata - { - public void Add(System.Type serviceType, System.Type requestType, System.Type responseType) => throw null; - public static void AddReferencedTypes(System.Collections.Generic.HashSet to, System.Type type) => throw null; - public void AfterInit() => throw null; - public bool CanAccess(ServiceStack.Web.IRequest httpReq, ServiceStack.Format format, string operationName) => throw null; - public bool CanAccess(ServiceStack.RequestAttributes reqAttrs, ServiceStack.Format format, string operationName) => throw null; - public bool CanAccess(ServiceStack.Format format, string operationName) => throw null; - public object CreateRequestFromUrl(string relativeOrAbsoluteUrl, string method = default(string)) => throw null; - public System.Type FindDtoType(string typeName) => throw null; - public ServiceStack.Host.RestPath FindRoute(string pathInfo, string method = default(string)) => throw null; - public System.Collections.Generic.HashSet GetAllDtos() => throw null; - public System.Collections.Generic.List GetAllOperationNames() => throw null; - public System.Collections.Generic.List GetAllOperationTypes() => throw null; - public System.Collections.Generic.List GetAllPermissions() => throw null; - public System.Collections.Generic.List GetAllRoles() => throw null; - public System.Collections.Generic.List GetImplementedActions(System.Type serviceType, System.Type requestType) => throw null; - public System.Collections.Generic.List GetMetadataTypesForOperation(ServiceStack.Web.IRequest httpReq, ServiceStack.Host.Operation op) => throw null; - public ServiceStack.Host.Operation GetOperation(System.Type requestType) => throw null; - public System.Collections.Generic.List GetOperationAssemblies() => throw null; - public System.Collections.Generic.List GetOperationDtos() => throw null; - public System.Collections.Generic.List GetOperationNamesForMetadata(ServiceStack.Web.IRequest httpReq, ServiceStack.Format format) => throw null; - public System.Collections.Generic.List GetOperationNamesForMetadata(ServiceStack.Web.IRequest httpReq) => throw null; - public System.Type GetOperationType(string operationTypeName) => throw null; - public System.Collections.Generic.List GetOperationsByTag(string tag) => throw null; - public System.Collections.Generic.List GetOperationsByTags(string[] tags) => throw null; - public System.Type GetResponseTypeByRequest(System.Type requestType) => throw null; - public System.Type GetServiceTypeByRequest(System.Type requestType) => throw null; - public System.Type GetServiceTypeByResponse(System.Type responseType) => throw null; - public bool HasImplementation(ServiceStack.Host.Operation operation, ServiceStack.Format format) => throw null; - public bool IsAuthorized(ServiceStack.Host.Operation operation, ServiceStack.Web.IRequest req, ServiceStack.Auth.IAuthSession session) => throw null; - public bool IsVisible(ServiceStack.Web.IRequest httpReq, System.Type requestType) => throw null; - public bool IsVisible(ServiceStack.Web.IRequest httpReq, ServiceStack.Host.Operation operation) => throw null; - public bool IsVisible(ServiceStack.Web.IRequest httpReq, ServiceStack.Format format, string operationName) => throw null; - public System.Collections.Generic.Dictionary OperationNamesMap { get => throw null; set => throw null; } - public System.Collections.Generic.IEnumerable Operations { get => throw null; } - public System.Collections.Generic.Dictionary OperationsMap { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary OperationsResponseMap { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet RequestTypes { get => throw null; set => throw null; } - public System.Collections.Generic.HashSet ResponseTypes { get => throw null; set => throw null; } - public ServiceMetadata(System.Collections.Generic.List restPaths) => throw null; - public System.Collections.Generic.HashSet ServiceTypes { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.ServiceMetadataExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ServiceMetadataExtensions - { - public static System.Collections.Generic.List GetApiMembers(this System.Type operationType) => throw null; - public static System.Collections.Generic.List GetAssemblies(this ServiceStack.Host.Operation operation) => throw null; - public static ServiceStack.Host.OperationDto ToOperationDto(this ServiceStack.Host.Operation operation) => throw null; - } - - // Generated from `ServiceStack.Host.ServiceRequestExec<,>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceRequestExec : ServiceStack.Host.IServiceExec - { - public object Execute(ServiceStack.Web.IRequest requestContext, object instance, object request) => throw null; - public ServiceRequestExec() => throw null; - } - - // Generated from `ServiceStack.Host.ServiceRoutes` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceRoutes : ServiceStack.Web.IServiceRoutes - { - public ServiceStack.Web.IServiceRoutes Add(string restPath, string verbs) => throw null; - public ServiceStack.Web.IServiceRoutes Add(string restPath) => throw null; - public ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, string summary, string notes, string matches) => throw null; - public ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, string summary, string notes) => throw null; - public ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs, int priority) => throw null; - public ServiceStack.Web.IServiceRoutes Add(System.Type requestType, string restPath, string verbs) => throw null; - public ServiceRoutes(ServiceStack.ServiceStackHost appHost) => throw null; - } - - // Generated from `ServiceStack.Host.ServiceRunner<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceRunner : ServiceStack.Web.IServiceRunner, ServiceStack.Web.IServiceRunner - { - protected ServiceStack.Host.ActionContext ActionContext; - public virtual object AfterEachRequest(ServiceStack.Web.IRequest req, TRequest request, object response, object service) => throw null; - protected ServiceStack.IAppHost AppHost; - public virtual void BeforeEachRequest(ServiceStack.Web.IRequest req, TRequest request, object service) => throw null; - public virtual object Execute(ServiceStack.Web.IRequest req, object instance, TRequest requestDto) => throw null; - public virtual object Execute(ServiceStack.Web.IRequest req, object instance, ServiceStack.Messaging.IMessage request) => throw null; - public virtual System.Threading.Tasks.Task ExecuteAsync(ServiceStack.Web.IRequest req, object instance, TRequest requestDto) => throw null; - public object ExecuteOneWay(ServiceStack.Web.IRequest req, object instance, TRequest requestDto) => throw null; - public virtual System.Threading.Tasks.Task HandleExceptionAsync(ServiceStack.Web.IRequest req, TRequest requestDto, System.Exception ex, object service) => throw null; - public virtual System.Threading.Tasks.Task HandleExceptionAsync(ServiceStack.Web.IRequest req, TRequest requestDto, System.Exception ex) => throw null; - protected static ServiceStack.Logging.ILog Log; - public virtual object OnAfterExecute(ServiceStack.Web.IRequest req, object response, object service) => throw null; - public virtual object OnAfterExecute(ServiceStack.Web.IRequest req, object response) => throw null; - public virtual void OnBeforeExecute(ServiceStack.Web.IRequest req, TRequest request, object service) => throw null; - public virtual void OnBeforeExecute(ServiceStack.Web.IRequest req, TRequest request) => throw null; - public object Process(ServiceStack.Web.IRequest requestContext, object instance, object request) => throw null; - protected ServiceStack.Web.IRequestFilterBase[] RequestFilters; - public T ResolveService(ServiceStack.Web.IRequest requestContext) => throw null; - protected ServiceStack.Web.IResponseFilterBase[] ResponseFilters; - protected ServiceStack.Host.ActionInvokerFn ServiceAction; - public ServiceRunner(ServiceStack.IAppHost appHost, ServiceStack.Host.ActionContext actionContext) => throw null; - } - - // Generated from `ServiceStack.Host.StreamSerializerResolverDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate bool StreamSerializerResolverDelegate(ServiceStack.Web.IRequest requestContext, object dto, ServiceStack.Web.IResponse httpRes); - - // Generated from `ServiceStack.Host.TypedFilter<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypedFilter : ServiceStack.Host.ITypedFilter - { - public void Invoke(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto) => throw null; - public TypedFilter(System.Action action) => throw null; - } - - // Generated from `ServiceStack.Host.TypedFilterAsync<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypedFilterAsync : ServiceStack.Host.ITypedFilterAsync - { - public System.Threading.Tasks.Task InvokeAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object dto) => throw null; - public TypedFilterAsync(System.Func action) => throw null; - } - - // Generated from `ServiceStack.Host.VoidActionInvokerFn` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate void VoidActionInvokerFn(object instance, object request); - - // Generated from `ServiceStack.Host.XsdMetadata` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XsdMetadata - { - public bool Flash { get => throw null; set => throw null; } - public static System.Type GetBaseTypeWithTheSameName(System.Type type) => throw null; - public System.Collections.Generic.List GetOneWayOperationNames(ServiceStack.Format format, System.Collections.Generic.HashSet soapTypes) => throw null; - public System.Collections.Generic.List GetReplyOperationNames(ServiceStack.Format format, System.Collections.Generic.HashSet soapTypes) => throw null; - public ServiceStack.Host.ServiceMetadata Metadata { get => throw null; set => throw null; } - public XsdMetadata(ServiceStack.Host.ServiceMetadata metadata, bool flash = default(bool)) => throw null; - } - - namespace Handlers - { - // Generated from `ServiceStack.Host.Handlers.CustomActionHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomActionHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public System.Action Action { get => throw null; set => throw null; } - public CustomActionHandler(System.Action action) => throw null; - public override void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.CustomActionHandlerAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomActionHandlerAsync : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public System.Func Action { get => throw null; set => throw null; } - public CustomActionHandlerAsync(System.Func action) => throw null; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.CustomResponseHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomResponseHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public System.Func Action { get => throw null; set => throw null; } - public CustomResponseHandler(System.Func action, string operationName = default(string)) => throw null; - public override void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.CustomResponseHandlerAsync` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomResponseHandlerAsync : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public System.Func> Action { get => throw null; set => throw null; } - public CustomResponseHandlerAsync(System.Func> action, string operationName = default(string)) => throw null; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.ForbiddenHttpHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ForbiddenHttpHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public string DefaultHandler { get => throw null; set => throw null; } - public string DefaultRootFileName { get => throw null; set => throw null; } - public ForbiddenHttpHandler() => throw null; - public override bool IsReusable { get => throw null; } - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest request, ServiceStack.Web.IResponse response, string operationName) => throw null; - public override bool RunAsAsync() => throw null; - public string WebHostPhysicalPath { get => throw null; set => throw null; } - public string WebHostUrl { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.Handlers.GenericHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GenericHandler : ServiceStack.Host.Handlers.ServiceStackHandlerBase, ServiceStack.Host.Handlers.IRequestHttpHandler - { - public ServiceStack.RequestAttributes ContentTypeAttribute { get => throw null; set => throw null; } - public System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest req, string operationName) => throw null; - public GenericHandler(string contentType, ServiceStack.RequestAttributes handlerAttributes, ServiceStack.Feature format) => throw null; - public string HandlerContentType { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public override bool RunAsAsync() => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.HttpAsyncTaskHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class HttpAsyncTaskHandler : ServiceStack.Host.IHttpHandler, ServiceStack.Host.IHttpAsyncHandler, ServiceStack.Host.Handlers.IServiceStackHandler - { - protected virtual System.Threading.Tasks.Task CreateProcessRequestTask(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - protected System.Threading.Tasks.Task HandleException(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName, System.Exception ex) => throw null; - protected HttpAsyncTaskHandler() => throw null; - public virtual bool IsReusable { get => throw null; } - public virtual System.Threading.Tasks.Task Middleware(Microsoft.AspNetCore.Http.HttpContext context, System.Func next) => throw null; - public virtual void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public virtual System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public string RequestName { get => throw null; set => throw null; } - public virtual bool RunAsAsync() => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.IRequestHttpHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IRequestHttpHandler - { - System.Threading.Tasks.Task CreateRequestAsync(ServiceStack.Web.IRequest req, string operationName); - System.Threading.Tasks.Task GetResponseAsync(ServiceStack.Web.IRequest httpReq, object request); - System.Threading.Tasks.Task HandleResponse(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, object response); - string RequestName { get; } - } - - // Generated from `ServiceStack.Host.Handlers.IServiceStackHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IServiceStackHandler - { - void ProcessRequest(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName); - System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName); - string RequestName { get; } - } - - // Generated from `ServiceStack.Host.Handlers.JsonOneWayHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonOneWayHandler : ServiceStack.Host.Handlers.GenericHandler - { - public JsonOneWayHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.JsonReplyHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonReplyHandler : ServiceStack.Host.Handlers.GenericHandler - { - public JsonReplyHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.JsvOneWayHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsvOneWayHandler : ServiceStack.Host.Handlers.GenericHandler - { - public JsvOneWayHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.JsvReplyHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsvReplyHandler : ServiceStack.Host.Handlers.GenericHandler - { - public JsvReplyHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.NotFoundHttpHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NotFoundHttpHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public string DefaultHandler { get => throw null; set => throw null; } - public string DefaultRootFileName { get => throw null; set => throw null; } - public override bool IsReusable { get => throw null; } - public NotFoundHttpHandler() => throw null; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest request, ServiceStack.Web.IResponse response, string operationName) => throw null; - public string WebHostPhysicalPath { get => throw null; set => throw null; } - public string WebHostUrl { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.Handlers.RedirectHttpHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RedirectHttpHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public string AbsoluteUrl { get => throw null; set => throw null; } - public static string MakeRelative(string relativeUrl) => throw null; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest request, ServiceStack.Web.IResponse response, string operationName) => throw null; - public RedirectHttpHandler() => throw null; - public string RelativeUrl { get => throw null; set => throw null; } - public System.Net.HttpStatusCode StatusCode { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.Handlers.RequestHandlerInfo` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestHandlerInfo - { - public string HandlerType { get => throw null; set => throw null; } - public string OperationName { get => throw null; set => throw null; } - public string PathInfo { get => throw null; set => throw null; } - public RequestHandlerInfo() => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.RequestInfo` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestInfo - { - public RequestInfo() => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.RequestInfoHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestInfoHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public static ServiceStack.Host.Handlers.RequestInfoResponse GetRequestInfo(ServiceStack.Web.IRequest httpReq) => throw null; - public static ServiceStack.Host.Handlers.RequestHandlerInfo LastRequestInfo; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public ServiceStack.Host.Handlers.RequestInfoResponse RequestInfo { get => throw null; set => throw null; } - public RequestInfoHandler() => throw null; - public static System.Collections.Generic.Dictionary ToDictionary(System.Collections.Specialized.NameValueCollection nvc) => throw null; - public static string ToString(System.Collections.Specialized.NameValueCollection nvc) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.RequestInfoResponse` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class RequestInfoResponse - { - public string AbsoluteUri { get => throw null; set => throw null; } - public System.Collections.Generic.List AcceptTypes { get => throw null; set => throw null; } - public System.Collections.Generic.List AllOperationNames { get => throw null; set => throw null; } - public string ApplicationBaseUrl { get => throw null; set => throw null; } - public string ApplicationPath { get => throw null; set => throw null; } - public string ApplicationVirtualPath { get => throw null; set => throw null; } - public System.Collections.Generic.List AsyncErrors { get => throw null; set => throw null; } - public System.Int64 ContentLength { get => throw null; set => throw null; } - public string ContentRootDirectoryPath { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public string CurrentDirectory { get => throw null; set => throw null; } - public string Date { get => throw null; set => throw null; } - public string DebugString { get => throw null; set => throw null; } - public string ErrorCode { get => throw null; set => throw null; } - public string ErrorMessage { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary FormData { get => throw null; set => throw null; } - public string GetLeftPath { get => throw null; set => throw null; } - public string GetPathUrl { get => throw null; set => throw null; } - public string HandlerFactoryArgs { get => throw null; set => throw null; } - public string HandlerFactoryPath { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Headers { get => throw null; set => throw null; } - public string Host { get => throw null; set => throw null; } - public string HostType { get => throw null; set => throw null; } - public string HttpMethod { get => throw null; set => throw null; } - public string Ipv4Addresses { get => throw null; set => throw null; } - public string Ipv6Addresses { get => throw null; set => throw null; } - public ServiceStack.Host.Handlers.RequestHandlerInfo LastRequestInfo { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary LogonUserInfo { get => throw null; set => throw null; } - public string OperationName { get => throw null; set => throw null; } - public System.Collections.Generic.List OperationNames { get => throw null; set => throw null; } - public string OriginalPathInfo { get => throw null; set => throw null; } - public string Path { get => throw null; set => throw null; } - public string PathInfo { get => throw null; set => throw null; } - public System.Collections.Generic.List PluginsLoaded { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary QueryString { get => throw null; set => throw null; } - public string RawUrl { get => throw null; set => throw null; } - public string RequestAttributes { get => throw null; set => throw null; } - public RequestInfoResponse() => throw null; - public System.Collections.Generic.Dictionary RequestResponseMap { get => throw null; set => throw null; } - public string ResolveAbsoluteUrl { get => throw null; set => throw null; } - public string ResponseContentType { get => throw null; set => throw null; } - public string RootDirectoryPath { get => throw null; set => throw null; } - public string ServiceName { get => throw null; set => throw null; } - public System.Collections.Generic.List StartUpErrors { get => throw null; set => throw null; } - public string StartedAt { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Stats { get => throw null; set => throw null; } - public int Status { get => throw null; set => throw null; } - public bool StripApplicationVirtualPath { get => throw null; set => throw null; } - public string Url { get => throw null; set => throw null; } - public string Usage { get => throw null; set => throw null; } - public string UserHostAddress { get => throw null; set => throw null; } - public string VirtualAbsolutePathRoot { get => throw null; set => throw null; } - public string VirtualAppRelativePathRoot { get => throw null; set => throw null; } - public System.Collections.Generic.List VirtualPathProviderFiles { get => throw null; set => throw null; } - public string WebHostUrl { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.Handlers.ServiceStackHandlerBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class ServiceStackHandlerBase : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - protected bool AssertAccess(ServiceStack.Web.IHttpRequest httpReq, ServiceStack.Web.IHttpResponse httpRes, ServiceStack.Feature feature, string operationName) => throw null; - protected static void AssertOperationExists(string operationName, System.Type type) => throw null; - protected static System.Threading.Tasks.Task CreateContentTypeRequestAsync(ServiceStack.Web.IRequest httpReq, System.Type requestType, string contentType) => throw null; - public static System.Threading.Tasks.Task DeserializeHttpRequestAsync(System.Type operationType, ServiceStack.Web.IRequest httpReq, string contentType) => throw null; - protected static object ExecuteService(object request, ServiceStack.Web.IRequest httpReq) => throw null; - protected static object GetCustomRequestFromBinder(ServiceStack.Web.IRequest httpReq, System.Type requestType) => throw null; - public static System.Type GetOperationType(string operationName) => throw null; - public virtual System.Threading.Tasks.Task GetResponseAsync(ServiceStack.Web.IRequest httpReq, object request) => throw null; - public System.Threading.Tasks.Task HandleResponse(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, object response) => throw null; - public ServiceStack.RequestAttributes HandlerAttributes { get => throw null; set => throw null; } - public override bool IsReusable { get => throw null; } - protected ServiceStackHandlerBase() => throw null; - public void UpdateResponseContentType(ServiceStack.Web.IRequest httpReq, object response) => throw null; - public System.Threading.Tasks.Task WriteDebugResponse(ServiceStack.Web.IResponse httpRes, object response) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.StaticContentHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StaticContentHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - public StaticContentHandler(string textContents, string contentType) => throw null; - public StaticContentHandler(System.Byte[] bytes, string contentType) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.StaticFileHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StaticFileHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - public int BufferSize { get => throw null; set => throw null; } - public static int DefaultBufferSize; - public override bool IsReusable { get => throw null; } - public static bool MonoDirectoryExists(string dirPath, string appFilePath) => throw null; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest request, ServiceStack.Web.IResponse response, string operationName) => throw null; - public static System.Action ResponseFilter { get => throw null; set => throw null; } - public static void SetDefaultFile(string defaultFilePath, System.Byte[] defaultFileContents, System.DateTime defaultFileModified) => throw null; - public StaticFileHandler(string virtualPath) => throw null; - public StaticFileHandler(ServiceStack.IO.IVirtualFile virtualFile) => throw null; - public StaticFileHandler(ServiceStack.IO.IVirtualDirectory virtualDir) => throw null; - public StaticFileHandler() => throw null; - public ServiceStack.IO.IVirtualNode VirtualNode { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Host.Handlers.XmlOneWayHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlOneWayHandler : ServiceStack.Host.Handlers.GenericHandler - { - public XmlOneWayHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; - } - - // Generated from `ServiceStack.Host.Handlers.XmlReplyHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlReplyHandler : ServiceStack.Host.Handlers.GenericHandler - { - public XmlReplyHandler() : base(default(string), default(ServiceStack.RequestAttributes), default(ServiceStack.Feature)) => throw null; - } - - } - namespace NetCore - { - // Generated from `ServiceStack.Host.NetCore.NetCoreRequest` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreRequest : System.IServiceProvider, ServiceStack.Web.IRequest, ServiceStack.Web.IHttpRequest, ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IO.IHasVirtualFiles, ServiceStack.Host.IHasBufferedStream, ServiceStack.Configuration.IResolver, ServiceStack.Configuration.IHasResolver - { - public string AbsoluteUri { get => throw null; } - public string Accept { get => throw null; } - public string[] AcceptTypes { get => throw null; } - public string Authorization { get => throw null; } - public System.IO.MemoryStream BufferedStream { get => throw null; set => throw null; } - public System.Int64 ContentLength { get => throw null; } - public string ContentType { get => throw null; } - public System.Collections.Generic.IDictionary Cookies { get => throw null; } - public object Dto { get => throw null; set => throw null; } - public ServiceStack.Web.IHttpFile[] Files { get => throw null; } - public System.Collections.Specialized.NameValueCollection FormData { get => throw null; } - public ServiceStack.IO.IVirtualDirectory GetDirectory() => throw null; - public ServiceStack.IO.IVirtualFile GetFile() => throw null; - public string GetRawBody() => throw null; - public System.Threading.Tasks.Task GetRawBodyAsync() => throw null; - public object GetService(System.Type serviceType) => throw null; - public bool HasExplicitResponseContentType { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection Headers { get => throw null; } - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } - public string HttpMethod { get => throw null; } - public Microsoft.AspNetCore.Http.HttpRequest HttpRequest { get => throw null; } - public ServiceStack.Web.IHttpResponse HttpResponse { get => throw null; } - public string Id { get => throw null; } - public System.IO.Stream InputStream { get => throw null; } - public bool IsDirectory { get => throw null; } - public bool IsFile { get => throw null; } - public bool IsLocal { get => throw null; } - public bool IsSecureConnection { get => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; } - public NetCoreRequest(Microsoft.AspNetCore.Http.HttpContext context, string operationName, ServiceStack.RequestAttributes attrs = default(ServiceStack.RequestAttributes), string pathInfo = default(string)) => throw null; - public string OperationName { get => throw null; set => throw null; } - public string OriginalPathInfo { get => throw null; } - public object OriginalRequest { get => throw null; } - public string PathInfo { get => throw null; } - public System.Collections.Specialized.NameValueCollection QueryString { get => throw null; } - public string RawUrl { get => throw null; } - public string RemoteIp { get => throw null; } - public ServiceStack.RequestAttributes RequestAttributes { get => throw null; set => throw null; } - public ServiceStack.Web.IRequestPreferences RequestPreferences { get => throw null; } - public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } - public ServiceStack.Web.IResponse Response { get => throw null; } - public string ResponseContentType { get => throw null; set => throw null; } - public T TryResolve() => throw null; - public System.Uri UrlReferrer { get => throw null; } - public bool UseBufferedStream { get => throw null; set => throw null; } - public string UserAgent { get => throw null; } - public string UserHostAddress { get => throw null; } - public string Verb { get => throw null; } - public string XForwardedFor { get => throw null; } - public int? XForwardedPort { get => throw null; } - public string XForwardedProtocol { get => throw null; } - public string XRealIp { get => throw null; } - public static ServiceStack.Logging.ILog log; - } - - // Generated from `ServiceStack.Host.NetCore.NetCoreResponse` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreResponse : ServiceStack.Web.IResponse, ServiceStack.Web.IHttpResponse, ServiceStack.Web.IHasHeaders - { - public void AddHeader(string name, string value) => throw null; - public System.IO.MemoryStream BufferedStream { get => throw null; set => throw null; } - public void ClearCookies() => throw null; - public void Close() => throw null; - public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string ContentType { get => throw null; set => throw null; } - public ServiceStack.Web.ICookies Cookies { get => throw null; } - public object Dto { get => throw null; set => throw null; } - public void End() => throw null; - public void Flush() => throw null; - public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string GetHeader(string name) => throw null; - public bool HasStarted { get => throw null; } - public System.Collections.Generic.Dictionary Headers { get => throw null; } - public Microsoft.AspNetCore.Http.HttpContext HttpContext { get => throw null; } - public Microsoft.AspNetCore.Http.HttpResponse HttpResponse { get => throw null; } - public bool IsClosed { get => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public bool KeepAlive { get => throw null; set => throw null; } - public NetCoreResponse(ServiceStack.Host.NetCore.NetCoreRequest request, Microsoft.AspNetCore.Http.HttpResponse response) => throw null; - public object OriginalResponse { get => throw null; } - public System.IO.Stream OutputStream { get => throw null; } - public void Redirect(string url) => throw null; - public void RemoveHeader(string name) => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; } - public void SetContentLength(System.Int64 contentLength) => throw null; - 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 bool UseBufferedStream { get => throw null; set => throw null; } - } - - } - } - namespace Html - { - // Generated from `ServiceStack.Html.BasicHtmlMinifier` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicHtmlMinifier : ServiceStack.ICompressor - { - public BasicHtmlMinifier() => throw null; - public string Compress(string html) => throw null; - public static string MinifyHtml(string html) => throw null; - } - - // Generated from `ServiceStack.Html.CssMinifier` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CssMinifier : ServiceStack.ICompressor - { - public string Compress(string source) => throw null; - public CssMinifier() => throw null; - public static string MinifyCss(string css) => throw null; - } - - // Generated from `ServiceStack.Html.HtmlCompressor` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlCompressor : ServiceStack.ICompressor - { - public static string ALL_TAGS; - public static string BLOCK_TAGS_MAX; - public static string BLOCK_TAGS_MIN; - public string Compress(string html) => throw null; - public bool CompressCss; - public bool CompressJavaScript; - public ServiceStack.ICompressor CssCompressor; - public bool Enabled; - public bool GenerateStatistics; - public HtmlCompressor() => throw null; - public ServiceStack.ICompressor JavaScriptCompressor; - public static System.Text.RegularExpressions.Regex PHP_TAG_PATTERN; - public bool PreserveLineBreaks; - public System.Collections.Generic.List PreservePatterns; - public bool RemoveComments; - public bool RemoveFormAttributes; - public bool RemoveHttpProtocol; - public bool RemoveHttpsProtocol; - public bool RemoveInputAttributes; - public bool RemoveIntertagSpaces; - public bool RemoveJavaScriptProtocol; - public bool RemoveLinkAttributes; - public bool RemoveMultiSpaces; - public bool RemoveQuotes; - public bool RemoveScriptAttributes; - public bool RemoveStyleAttributes; - public string RemoveSurroundingSpaces; - public static System.Text.RegularExpressions.Regex SERVER_SCRIPT_TAG_PATTERN; - public static System.Text.RegularExpressions.Regex SERVER_SIDE_INCLUDE_PATTERN; - public bool SimpleBooleanAttributes; - public bool SimpleDoctype; - public ServiceStack.Html.HtmlCompressorStatistics Statistics; - } - - // Generated from `ServiceStack.Html.HtmlCompressorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HtmlCompressorExtensions - { - public static void AddPreservePattern(this ServiceStack.Html.HtmlCompressor compressor, params System.Text.RegularExpressions.Regex[] regexes) => throw null; - } - - // Generated from `ServiceStack.Html.HtmlCompressorStatistics` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlCompressorStatistics - { - public ServiceStack.Html.HtmlMetrics CompressedMetrics; - public HtmlCompressorStatistics() => throw null; - public ServiceStack.Html.HtmlMetrics OriginalMetrics; - public int PreservedSize; - public System.Int64 Time; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Html.HtmlContextExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HtmlContextExtensions - { - public static ServiceStack.Web.IRequest GetHttpRequest(this ServiceStack.Html.IHtmlContext html) => throw null; - } - - // Generated from `ServiceStack.Html.HtmlMetrics` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlMetrics - { - public int EmptyChars; - public int Filesize; - public HtmlMetrics() => throw null; - public int InlineEventSize; - public int InlineScriptSize; - public int InlineStyleSize; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.Html.HtmlStringExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HtmlStringExtensions - { - public static ServiceStack.Host.IHtmlString AsRaw(this ServiceStack.IHtmlString htmlString) => throw null; - } - - // Generated from `ServiceStack.Html.IHtmlContext` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IHtmlContext - { - ServiceStack.Web.IHttpRequest HttpRequest { get; } - } - - // Generated from `ServiceStack.Html.IViewEngine` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IViewEngine - { - bool HasView(string viewName, ServiceStack.Web.IRequest httpReq = default(ServiceStack.Web.IRequest)); - System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest req, object dto, System.IO.Stream outputStream); - string RenderPartial(string pageName, object model, bool renderHtml, System.IO.StreamWriter writer = default(System.IO.StreamWriter), ServiceStack.Html.IHtmlContext htmlHelper = default(ServiceStack.Html.IHtmlContext)); - } - - // Generated from `ServiceStack.Html.JSMinifier` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JSMinifier : ServiceStack.ICompressor - { - public string Compress(string js) => throw null; - public JSMinifier() => throw null; - public static string MinifyJs(string js, bool ignoreErrors = default(bool)) => throw null; - } - - // Generated from `ServiceStack.Html.Minifiers` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Minifiers - { - public static ServiceStack.ICompressor Css; - public static ServiceStack.ICompressor Html; - public static ServiceStack.ICompressor HtmlAdvanced; - public static ServiceStack.ICompressor JavaScript; - } - - } - namespace Internal - { - // Generated from `ServiceStack.Internal.IServiceStackAsyncDisposable` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - internal interface IServiceStackAsyncDisposable - { - } - - } - namespace Messaging - { - // Generated from `ServiceStack.Messaging.BackgroundMqClient` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BackgroundMqClient : System.IDisposable, ServiceStack.Messaging.IMessageQueueClient, ServiceStack.Messaging.IMessageProducer, ServiceStack.IOneWayClient - { - public void Ack(ServiceStack.Messaging.IMessage message) => throw null; - public BackgroundMqClient(ServiceStack.Messaging.BackgroundMqService mqService) => throw null; - public ServiceStack.Messaging.IMessage CreateMessage(object mqResponse) => throw null; - public void Dispose() => throw null; - public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; - public ServiceStack.Messaging.IMessage GetAsync(string queueName) => throw null; - public string GetTempQueueName() => throw null; - public void Nak(ServiceStack.Messaging.IMessage message, bool requeue, System.Exception exception = default(System.Exception)) => throw null; - public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(T messageBody) => throw null; - public void Publish(ServiceStack.Messaging.IMessage message) => throw null; - public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public void SendAllOneWay(System.Collections.Generic.IEnumerable requests) => throw null; - public void SendOneWay(string queueName, object requestDto) => throw null; - public void SendOneWay(object requestDto) => throw null; - } - - // Generated from `ServiceStack.Messaging.BackgroundMqCollection<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BackgroundMqCollection : System.IDisposable, ServiceStack.Messaging.IMqCollection - { - public void Add(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public BackgroundMqCollection(ServiceStack.Messaging.BackgroundMqClient mqClient, ServiceStack.Messaging.IMessageHandlerFactory handlerFactory, int threadCount, int outQMaxSize) => throw null; - public void Clear(string queueName) => throw null; - public ServiceStack.Messaging.IMqWorker CreateWorker(string mqName) => throw null; - public void Dispose() => throw null; - public string GetDescription() => throw null; - public System.Collections.Generic.Dictionary GetDescriptionMap() => throw null; - public ServiceStack.Messaging.IMessageHandlerFactory HandlerFactory { get => throw null; } - public ServiceStack.Messaging.BackgroundMqClient MqClient { get => throw null; } - public int OutQMaxSize { get => throw null; set => throw null; } - public System.Type QueueType { get => throw null; } - public int ThreadCount { get => throw null; } - public bool TryTake(string queueName, out ServiceStack.Messaging.IMessage message, System.TimeSpan timeout) => throw null; - public bool TryTake(string queueName, out ServiceStack.Messaging.IMessage message) => throw null; - } - - // Generated from `ServiceStack.Messaging.BackgroundMqMessageFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BackgroundMqMessageFactory : System.IDisposable, ServiceStack.Messaging.IMessageQueueClientFactory, ServiceStack.Messaging.IMessageFactory - { - public BackgroundMqMessageFactory(ServiceStack.Messaging.BackgroundMqClient mqClient) => throw null; - public ServiceStack.Messaging.IMessageProducer CreateMessageProducer() => throw null; - public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; - public void Dispose() => throw null; - } - - // Generated from `ServiceStack.Messaging.BackgroundMqService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BackgroundMqService : System.IDisposable, ServiceStack.Messaging.IMessageService - { - public BackgroundMqService() => throw null; - protected ServiceStack.Messaging.IMessageHandlerFactory CreateMessageHandlerFactory(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; - public bool DisablePriorityQueues { set => throw null; } - public bool DisablePublishingResponses { set => throw null; } - public bool DisablePublishingToOutq { set => throw null; } - public void Dispose() => throw null; - public bool EnablePriorityQueues { set => throw null; } - public ServiceStack.Messaging.IMessage Get(string queueName, System.TimeSpan? timeout = default(System.TimeSpan?)) => throw null; - public ServiceStack.Messaging.IMqWorker[] GetAllWorkers() => throw null; - public ServiceStack.Messaging.IMqCollection GetCollection(System.Type type) => throw null; - public ServiceStack.Messaging.IMessageHandlerStats GetStats() => throw null; - public string GetStatsDescription() => throw null; - public string GetStatus() => throw null; - public ServiceStack.Messaging.IMqWorker[] GetWorkers(string queueName) => throw null; - public ServiceStack.Messaging.IMessageFactory MessageFactory { get => throw null; } - public void Notify(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public System.Collections.Generic.List> OutHandlers { get => throw null; } - public int OutQMaxSize { get => throw null; set => throw null; } - public string[] PriorityQueuesWhitelist { get => throw null; set => throw null; } - public void Publish(string queueName, ServiceStack.Messaging.IMessage message) => throw null; - public string[] PublishResponsesWhitelist { get => throw null; set => throw null; } - public string[] PublishToOutqWhitelist { get => throw null; set => throw null; } - public void RegisterHandler(System.Func, object> processMessageFn, int noOfThreads) => throw null; - public void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx, int noOfThreads) => throw null; - public void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; - public void RegisterHandler(System.Func, object> processMessageFn) => throw null; - public System.Collections.Generic.List RegisteredTypes { get => throw null; } - public System.Func RequestFilter { get => throw null; set => throw null; } - public System.Func ResponseFilter { get => throw null; set => throw null; } - public int RetryCount { get => throw null; set => throw null; } - public void Start() => throw null; - public void Stop() => throw null; - public ServiceStack.Messaging.IMessage TryGet(string queueName) => throw null; - } - - // Generated from `ServiceStack.Messaging.BackgroundMqWorker` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BackgroundMqWorker : System.IDisposable, ServiceStack.Messaging.IMqWorker - { - public BackgroundMqWorker(string queueName, System.Collections.Concurrent.BlockingCollection queue, ServiceStack.Messaging.BackgroundMqClient mqClient, ServiceStack.Messaging.IMessageHandler handler) => throw null; - public void Dispose() => throw null; - public ServiceStack.Messaging.IMessageHandlerStats GetStats() => throw null; - public string QueueName { get => throw null; } - public void Stop() => throw null; - } - - // Generated from `ServiceStack.Messaging.IMessageHandlerDisposer` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessageHandlerDisposer - { - void DisposeMessageHandler(ServiceStack.Messaging.IMessageHandler messageHandler); - } - - // Generated from `ServiceStack.Messaging.IMessageHandlerFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMessageHandlerFactory - { - ServiceStack.Messaging.IMessageHandler CreateMessageHandler(); - } - - // Generated from `ServiceStack.Messaging.IMqCollection` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMqCollection : System.IDisposable - { - void Add(string queueName, ServiceStack.Messaging.IMessage message); - void Clear(string queueName); - ServiceStack.Messaging.IMqWorker CreateWorker(string mqName); - string GetDescription(); - System.Collections.Generic.Dictionary GetDescriptionMap(); - System.Type QueueType { get; } - int ThreadCount { get; } - bool TryTake(string queueName, out ServiceStack.Messaging.IMessage message, System.TimeSpan timeout); - bool TryTake(string queueName, out ServiceStack.Messaging.IMessage message); - } - - // Generated from `ServiceStack.Messaging.IMqWorker` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IMqWorker : System.IDisposable - { - ServiceStack.Messaging.IMessageHandlerStats GetStats(); - string QueueName { get; } - void Stop(); - } - - // Generated from `ServiceStack.Messaging.InMemoryTransientMessageFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryTransientMessageFactory : System.IDisposable, ServiceStack.Messaging.IMessageQueueClientFactory, ServiceStack.Messaging.IMessageFactory - { - public ServiceStack.Messaging.IMessageProducer CreateMessageProducer() => throw null; - public ServiceStack.Messaging.IMessageQueueClient CreateMessageQueueClient() => throw null; - public ServiceStack.Messaging.IMessageService CreateMessageService() => throw null; - public void Dispose() => throw null; - public InMemoryTransientMessageFactory(ServiceStack.Messaging.InMemoryTransientMessageService transientMessageService) => throw null; - public InMemoryTransientMessageFactory() => throw null; - } - - // Generated from `ServiceStack.Messaging.InMemoryTransientMessageService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class InMemoryTransientMessageService : ServiceStack.Messaging.TransientMessageServiceBase - { - public InMemoryTransientMessageService(ServiceStack.Messaging.InMemoryTransientMessageFactory factory) => throw null; - public InMemoryTransientMessageService() => throw null; - public override ServiceStack.Messaging.IMessageFactory MessageFactory { get => throw null; } - public ServiceStack.Messaging.MessageQueueClientFactory MessageQueueFactory { get => throw null; } - } - - // Generated from `ServiceStack.Messaging.MessageHandler<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MessageHandler : System.IDisposable, ServiceStack.Messaging.IMessageHandler - { - public const int DefaultRetryCount = default; - public void Dispose() => throw null; - public ServiceStack.Messaging.IMessageHandlerStats GetStats() => throw null; - public System.DateTime? LastMessageProcessed { get => throw null; set => throw null; } - public MessageHandler(ServiceStack.Messaging.IMessageService messageService, System.Func, object> processMessageFn, System.Action, System.Exception> processInExceptionFn, int retryCount) => throw null; - public MessageHandler(ServiceStack.Messaging.IMessageService messageService, System.Func, object> processMessageFn) => throw null; - public System.Type MessageType { get => throw null; } - public ServiceStack.Messaging.IMessageQueueClient MqClient { get => throw null; set => throw null; } - public void Process(ServiceStack.Messaging.IMessageQueueClient mqClient) => throw null; - public void ProcessMessage(ServiceStack.Messaging.IMessageQueueClient mqClient, object mqResponse) => throw null; - public void ProcessMessage(ServiceStack.Messaging.IMessageQueueClient mqClient, ServiceStack.Messaging.IMessage message) => throw null; - public int ProcessQueue(ServiceStack.Messaging.IMessageQueueClient mqClient, string queueName, System.Func doNext = default(System.Func)) => throw null; - public string[] ProcessQueueNames { get => throw null; set => throw null; } - public string[] PublishResponsesWhitelist { get => throw null; set => throw null; } - public string[] PublishToOutqWhitelist { get => throw null; set => throw null; } - public System.Func ReplyClientFactory { get => throw null; set => throw null; } - public int TotalMessagesFailed { get => throw null; set => throw null; } - public int TotalMessagesProcessed { get => throw null; set => throw null; } - public int TotalNormalMessagesReceived { get => throw null; set => throw null; } - public int TotalOutMessagesReceived { get => throw null; set => throw null; } - public int TotalPriorityMessagesReceived { get => throw null; set => throw null; } - public int TotalRetries { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Messaging.MessageHandlerFactory<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MessageHandlerFactory : ServiceStack.Messaging.IMessageHandlerFactory - { - public ServiceStack.Messaging.IMessageHandler CreateMessageHandler() => throw null; - public const int DefaultRetryCount = default; - public MessageHandlerFactory(ServiceStack.Messaging.IMessageService messageService, System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; - public MessageHandlerFactory(ServiceStack.Messaging.IMessageService messageService, System.Func, object> processMessageFn) => throw null; - public string[] PublishResponsesWhitelist { get => throw null; set => throw null; } - public string[] PublishToOutqWhitelist { get => throw null; set => throw null; } - public System.Func RequestFilter { get => throw null; set => throw null; } - public System.Func ResponseFilter { get => throw null; set => throw null; } - public int RetryCount { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Messaging.TransientMessageServiceBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class TransientMessageServiceBase : System.IDisposable, ServiceStack.Messaging.IMessageService, ServiceStack.Messaging.IMessageHandlerDisposer - { - protected ServiceStack.Messaging.IMessageHandlerFactory CreateMessageHandlerFactory(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; - public const int DefaultRetryCount = default; - public virtual void Dispose() => throw null; - public virtual void DisposeMessageHandler(ServiceStack.Messaging.IMessageHandler messageHandler) => throw null; - public ServiceStack.Messaging.IMessageHandlerStats GetStats() => throw null; - public string GetStatsDescription() => throw null; - public string GetStatus() => throw null; - public abstract ServiceStack.Messaging.IMessageFactory MessageFactory { get; } - public int PoolSize { get => throw null; set => throw null; } - public void RegisterHandler(System.Func, object> processMessageFn, int noOfThreads) => throw null; - public void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx, int noOfThreads) => throw null; - public void RegisterHandler(System.Func, object> processMessageFn, System.Action, System.Exception> processExceptionEx) => throw null; - public void RegisterHandler(System.Func, object> processMessageFn) => throw null; - public System.Collections.Generic.List RegisteredTypes { get => throw null; } - public System.TimeSpan? RequestTimeOut { get => throw null; set => throw null; } - public int RetryCount { get => throw null; set => throw null; } - public virtual void Start() => throw null; - public virtual void Stop() => throw null; - protected TransientMessageServiceBase(int retryAttempts, System.TimeSpan? requestTimeOut) => throw null; - protected TransientMessageServiceBase() => throw null; - } - - // Generated from `ServiceStack.Messaging.WorkerOperation` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class WorkerOperation - { - public const string ControlCommand = default; - public const int NoOp = default; - public const int Reset = default; - public const int Restart = default; - public const int Stop = default; - } - - } - namespace Metadata - { - // Generated from `ServiceStack.Metadata.BaseMetadataHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class BaseMetadataHandler : ServiceStack.Host.Handlers.HttpAsyncTaskHandler - { - protected bool AssertAccess(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - protected BaseMetadataHandler() => throw null; - public string ContentFormat { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - protected abstract string CreateMessage(System.Type dtoType); - public virtual string CreateResponse(System.Type type) => throw null; - public abstract ServiceStack.Format Format { get; } - protected virtual System.Threading.Tasks.Task ProcessOperationsAsync(System.IO.Stream writer, ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes) => throw null; - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - protected virtual System.Threading.Tasks.Task RenderOperationAsync(System.IO.Stream output, ServiceStack.Web.IRequest httpReq, string operationName, string requestMessage, string responseMessage, string metadataHtml, ServiceStack.Host.Operation operation) => throw null; - protected virtual System.Threading.Tasks.Task RenderOperationsAsync(System.IO.Stream output, ServiceStack.Web.IRequest httpReq, ServiceStack.Host.ServiceMetadata metadata) => throw null; - } - - // Generated from `ServiceStack.Metadata.BaseSoapMetadataHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class BaseSoapMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler - { - protected BaseSoapMetadataHandler() => throw null; - public string OperationName { get => throw null; set => throw null; } - public override System.Threading.Tasks.Task ProcessRequestAsync(ServiceStack.Web.IRequest httpReq, ServiceStack.Web.IResponse httpRes, string operationName) => throw null; - } - - // Generated from `ServiceStack.Metadata.CustomMetadataHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CustomMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler - { - protected override string CreateMessage(System.Type dtoType) => throw null; - public CustomMetadataHandler(string contentType, string format) => throw null; - public override ServiceStack.Format Format { get => throw null; } - } - - // Generated from `ServiceStack.Metadata.IndexMetadataHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IndexMetadataHandler : ServiceStack.Metadata.BaseSoapMetadataHandler - { - protected override string CreateMessage(System.Type dtoType) => throw null; - public override ServiceStack.Format Format { get => throw null; } - public IndexMetadataHandler() => throw null; - } - - // Generated from `ServiceStack.Metadata.IndexOperationsControl` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class IndexOperationsControl - { - public IndexOperationsControl() => throw null; - public ServiceStack.Metadata.MetadataPagesConfig MetadataConfig { get => throw null; set => throw null; } - public System.Collections.Generic.List OperationNames { get => throw null; set => throw null; } - public System.Threading.Tasks.Task RenderAsync(System.IO.Stream output) => throw null; - public string RenderRow(string operationName) => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public string Title { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ToAbsoluteUrls(System.Collections.Generic.Dictionary linksMap) => throw null; - public int XsdServiceTypesIndex { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Xsds { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Metadata.JsonMetadataHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsonMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler - { - protected override string CreateMessage(System.Type dtoType) => throw null; - public override ServiceStack.Format Format { get => throw null; } - public JsonMetadataHandler() => throw null; - } - - // Generated from `ServiceStack.Metadata.JsvMetadataHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JsvMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler - { - protected override string CreateMessage(System.Type dtoType) => throw null; - public override ServiceStack.Format Format { get => throw null; } - public JsvMetadataHandler() => throw null; - } - - // Generated from `ServiceStack.Metadata.MetadataConfig` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataConfig - { - public string AsyncOneWayUri { get => throw null; set => throw null; } - public ServiceStack.Metadata.MetadataConfig Create(string format, string name = default(string)) => throw null; - public string DefaultMetadataUri { get => throw null; set => throw null; } - public string Format { get => throw null; set => throw null; } - public MetadataConfig(string format, string name, string syncReplyUri, string asyncOneWayUri, string defaultMetadataUri) => throw null; - public string Name { get => throw null; set => throw null; } - public string SyncReplyUri { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Metadata.MetadataPagesConfig` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataPagesConfig - { - public bool AlwaysHideInMetadata(string operationName) => throw null; - public System.Collections.Generic.List AvailableFormatConfigs { get => throw null; set => throw null; } - public bool CanAccess(ServiceStack.Web.IRequest httpRequest, ServiceStack.Format format, string operation) => throw null; - public bool CanAccess(ServiceStack.Format format, string operation) => throw null; - public ServiceStack.Metadata.MetadataConfig GetMetadataConfig(string format) => throw null; - public bool IsVisible(ServiceStack.Web.IRequest httpRequest, ServiceStack.Format format, string operation) => throw null; - public MetadataPagesConfig(ServiceStack.Host.ServiceMetadata metadata, ServiceStack.Metadata.ServiceEndpointsMetadataConfig metadataConfig, System.Collections.Generic.HashSet ignoredFormats, System.Collections.Generic.List contentTypeFormats) => throw null; - } - - // Generated from `ServiceStack.Metadata.OperationControl` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class OperationControl - { - public string ContentFormat { get => throw null; set => throw null; } - public string ContentType { get => throw null; set => throw null; } - public ServiceStack.Format Format { set => throw null; } - public virtual string GetHttpRequestTemplate() => throw null; - public string HostName { get => throw null; set => throw null; } - public ServiceStack.Web.IRequest HttpRequest { get => throw null; set => throw null; } - public virtual string HttpRequestTemplateWithBody(string httpMethod) => throw null; - public virtual string HttpRequestTemplateWithoutBody(string httpMethod) => throw null; - public virtual string HttpResponseTemplate { get => throw null; } - public ServiceStack.Metadata.ServiceEndpointsMetadataConfig MetadataConfig { get => throw null; set => throw null; } - public string MetadataHtml { get => throw null; set => throw null; } - public ServiceStack.Host.Operation Operation { get => throw null; set => throw null; } - public OperationControl() => throw null; - public string OperationName { get => throw null; set => throw null; } - public virtual System.Threading.Tasks.Task RenderAsync(System.IO.Stream output) => throw null; - public string RequestMessage { get => throw null; set => throw null; } - public virtual string RequestUri { get => throw null; } - public string ResponseMessage { get => throw null; set => throw null; } - public virtual string ResponseTemplate { get => throw null; } - public string Title { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Metadata.ServiceEndpointsMetadataConfig` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ServiceEndpointsMetadataConfig - { - public static ServiceStack.Metadata.ServiceEndpointsMetadataConfig Create(string serviceStackHandlerPrefix) => throw null; - public ServiceStack.Metadata.MetadataConfig Custom { get => throw null; set => throw null; } - public string DefaultMetadataUri { get => throw null; set => throw null; } - public ServiceStack.Metadata.MetadataConfig GetEndpointConfig(string format) => throw null; - public ServiceStack.Metadata.SoapMetadataConfig Soap11 { get => throw null; set => throw null; } - public ServiceStack.Metadata.SoapMetadataConfig Soap12 { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Metadata.Soap11WsdlTemplate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Soap11WsdlTemplate : ServiceStack.Metadata.WsdlTemplateBase - { - protected override string OneWayActionsTemplate { get => throw null; } - protected override string OneWayBindingContainerTemplate { get => throw null; } - protected override string OneWayEndpointUriTemplate { get => throw null; } - protected override string ReplyActionsTemplate { get => throw null; } - protected override string ReplyBindingContainerTemplate { get => throw null; } - protected override string ReplyEndpointUriTemplate { get => throw null; } - public Soap11WsdlTemplate() => throw null; - public override string WsdlName { get => throw null; } - } - - // Generated from `ServiceStack.Metadata.Soap12WsdlTemplate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Soap12WsdlTemplate : ServiceStack.Metadata.WsdlTemplateBase - { - protected override string OneWayActionsTemplate { get => throw null; } - protected override string OneWayBindingContainerTemplate { get => throw null; } - protected override string OneWayEndpointUriTemplate { get => throw null; } - protected override string ReplyActionsTemplate { get => throw null; } - protected override string ReplyBindingContainerTemplate { get => throw null; } - protected override string ReplyEndpointUriTemplate { get => throw null; } - public Soap12WsdlTemplate() => throw null; - public override string WsdlName { get => throw null; } - } - - // Generated from `ServiceStack.Metadata.SoapMetadataConfig` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SoapMetadataConfig : ServiceStack.Metadata.MetadataConfig - { - public SoapMetadataConfig(string format, string name, string syncReplyUri, string asyncOneWayUri, string defaultMetadataUri, string wsdlMetadataUri) : base(default(string), default(string), default(string), default(string), default(string)) => throw null; - public string WsdlMetadataUri { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Metadata.WsdlTemplateBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public abstract class WsdlTemplateBase - { - protected virtual string OneWayActionsTemplate { get => throw null; } - protected abstract string OneWayBindingContainerTemplate { get; } - public string OneWayEndpointUri { get => throw null; set => throw null; } - protected abstract string OneWayEndpointUriTemplate { get; } - protected virtual string OneWayMessagesTemplate { get => throw null; } - public System.Collections.Generic.IList OneWayOperationNames { get => throw null; set => throw null; } - protected virtual string OneWayOperationsTemplate { get => throw null; } - public string RepeaterTemplate(string template, object arg0, System.Collections.Generic.IEnumerable dataSource) => throw null; - public string RepeaterTemplate(string template, System.Collections.Generic.IEnumerable dataSource) => throw null; - protected virtual string ReplyActionsTemplate { get => throw null; } - protected abstract string ReplyBindingContainerTemplate { get; } - public string ReplyEndpointUri { get => throw null; set => throw null; } - protected abstract string ReplyEndpointUriTemplate { get; } - protected virtual string ReplyMessagesTemplate { get => throw null; } - public System.Collections.Generic.IList ReplyOperationNames { get => throw null; set => throw null; } - protected virtual string ReplyOperationsTemplate { get => throw null; } - public string ServiceName { get => throw null; set => throw null; } - public override string ToString() => throw null; - public abstract string WsdlName { get; } - protected WsdlTemplateBase() => throw null; - public string Xsd { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Metadata.XmlMetadataHandler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class XmlMetadataHandler : ServiceStack.Metadata.BaseMetadataHandler - { - protected override string CreateMessage(System.Type dtoType) => throw null; - public override ServiceStack.Format Format { get => throw null; } - public XmlMetadataHandler() => throw null; - } - - } - namespace MiniProfiler - { - // Generated from `ServiceStack.MiniProfiler.HtmlString` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class HtmlString : ServiceStack.IHtmlString, ServiceStack.Host.IHtmlString - { - public static ServiceStack.MiniProfiler.HtmlString Empty; - public HtmlString(string value) => throw null; - public string ToHtmlString() => throw null; - public override string ToString() => throw null; - } - - // Generated from `ServiceStack.MiniProfiler.IProfiler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface IProfiler - { - ServiceStack.IHtmlString RenderIncludes(ServiceStack.MiniProfiler.RenderPosition? position = default(ServiceStack.MiniProfiler.RenderPosition?), bool? showTrivial = default(bool?), bool? showTimeWithChildren = default(bool?), int? maxTracesToShow = default(int?), bool xhtml = default(bool), bool? showControls = default(bool?)); - ServiceStack.MiniProfiler.IProfiler Start(); - System.IDisposable Step(string name); - void Stop(); - } - - // Generated from `ServiceStack.MiniProfiler.NullProfiler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NullProfiler : ServiceStack.MiniProfiler.IProfiler - { - public static ServiceStack.MiniProfiler.NullProfiler Instance; - public NullProfiler() => throw null; - public ServiceStack.IHtmlString RenderIncludes(ServiceStack.MiniProfiler.RenderPosition? position = default(ServiceStack.MiniProfiler.RenderPosition?), bool? showTrivial = default(bool?), bool? showTimeWithChildren = default(bool?), int? maxTracesToShow = default(int?), bool xhtml = default(bool), bool? showControls = default(bool?)) => throw null; - public ServiceStack.MiniProfiler.IProfiler Start() => throw null; - public System.IDisposable Step(string name) => throw null; - public void Stop() => throw null; - } - - // Generated from `ServiceStack.MiniProfiler.Profiler` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class Profiler - { - public static ServiceStack.MiniProfiler.IProfiler Current { get => throw null; set => throw null; } - public static ServiceStack.IHtmlString RenderIncludes(ServiceStack.MiniProfiler.RenderPosition? position = default(ServiceStack.MiniProfiler.RenderPosition?), bool? showTrivial = default(bool?), bool? showTimeWithChildren = default(bool?), int? maxTracesToShow = default(int?), bool xhtml = default(bool), bool? showControls = default(bool?)) => throw null; - public static ServiceStack.MiniProfiler.IProfiler Start() => throw null; - public static System.IDisposable Step(string name) => throw null; - public static void Stop() => throw null; - } - - // Generated from `ServiceStack.MiniProfiler.RenderPosition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public enum RenderPosition - { - Left, - Right, - } - - } - namespace NativeTypes - { - // Generated from `ServiceStack.NativeTypes.AddCodeDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate string AddCodeDelegate(System.Collections.Generic.List allTypes, ServiceStack.MetadataTypesConfig config); - - // Generated from `ServiceStack.NativeTypes.CreateTypeOptions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CreateTypeOptions - { - public CreateTypeOptions() => throw null; - public System.Func ImplementsFn { get => throw null; set => throw null; } - public bool IsNestedType { get => throw null; set => throw null; } - public bool IsRequest { get => throw null; set => throw null; } - public bool IsResponse { get => throw null; set => throw null; } - public bool IsType { get => throw null; set => throw null; } - public ServiceStack.MetadataOperationType Op { get => throw null; set => throw null; } - public System.Collections.Generic.List Routes { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.NativeTypes.INativeTypesMetadata` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public interface INativeTypesMetadata - { - ServiceStack.MetadataTypesConfig GetConfig(ServiceStack.NativeTypes.NativeTypesBase req); - ServiceStack.NativeTypes.MetadataTypesGenerator GetGenerator(); - ServiceStack.MetadataTypes GetMetadataTypes(ServiceStack.Web.IRequest req, ServiceStack.MetadataTypesConfig config = default(ServiceStack.MetadataTypesConfig), System.Func predicate = default(System.Func)); - } - - // Generated from `ServiceStack.NativeTypes.MetadataExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class MetadataExtensions - { - public static System.Collections.Generic.List CreateSortedTypeList(this System.Collections.Generic.List allTypes) => throw null; - public static void Emit(this ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, ServiceStack.Lang lang) => throw null; - public static void Emit(this ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataPropertyType propType, ServiceStack.Lang lang) => throw null; - public static System.Collections.Generic.List GetAllMetadataTypes(this ServiceStack.MetadataTypes metadata) => throw null; - public static System.Collections.Generic.List GetAllTypes(this ServiceStack.MetadataTypes metadata) => throw null; - public static System.Collections.Generic.List GetAllTypesOrdered(this ServiceStack.MetadataTypes metadata) => throw null; - public static string GetAttributeName(this System.Attribute attr) => throw null; - public static System.Collections.Generic.HashSet GetDefaultNamespaces(this ServiceStack.MetadataTypesConfig config, ServiceStack.MetadataTypes metadata) => throw null; - public static System.Collections.Generic.IEnumerable GetDepTypes(System.Collections.Generic.Dictionary> deps, System.Collections.Generic.Dictionary typesMap, System.Collections.Generic.HashSet considered, ServiceStack.MetadataType type) => throw null; - public static System.Type[] GetDirectInterfaces(this System.Type type) => throw null; - public static string GetEnumMemberValue(this ServiceStack.MetadataType type, int i) => throw null; - public static System.Collections.Generic.List GetIncludeList(ServiceStack.MetadataTypes metadata, ServiceStack.MetadataTypesConfig config) => throw null; - public static System.Collections.Generic.HashSet GetReferencedTypeNames(this ServiceStack.MetadataType type, ServiceStack.MetadataTypes metadataTypes) => throw null; - public static string GetTypeName(this ServiceStack.MetadataPropertyType prop, ServiceStack.MetadataTypesConfig config, System.Collections.Generic.List allTypes) => throw null; - public static System.Collections.Generic.List GetValues(this System.Collections.Generic.Dictionary> map, string key) => throw null; - public static bool IgnoreSystemType(this ServiceStack.MetadataType type) => throw null; - public static bool IgnoreType(this ServiceStack.MetadataType type, ServiceStack.MetadataTypesConfig config, System.Collections.Generic.List overrideIncludeType = default(System.Collections.Generic.List)) => throw null; - public static bool IsServiceStackType(this System.Type type) => throw null; - public static System.Collections.Generic.List OrderTypesByDeps(this System.Collections.Generic.List types) => throw null; - public static System.Collections.Generic.List PopulatePrimaryKey(this System.Collections.Generic.List props) => throw null; - public static void Push(this System.Collections.Generic.Dictionary> map, string key, string value) => throw null; - public static string QuotedSafeValue(this string value) => throw null; - public static System.Collections.Generic.List RemoveIgnoredTypes(this ServiceStack.MetadataTypes metadata, ServiceStack.MetadataTypesConfig config) => throw null; - public static void RemoveIgnoredTypesForNet(this ServiceStack.MetadataTypes metadata, ServiceStack.MetadataTypesConfig config) => throw null; - public static string SafeComment(this string comment) => throw null; - public static string SafeToken(this string token) => throw null; - public static string SafeValue(this string value) => throw null; - public static string SanitizeType(this string typeName) => throw null; - public static string StripGenericType(string type, string subType) => throw null; - public static ServiceStack.MetadataAttribute ToMetadataAttribute(this ServiceStack.MetadataRoute route) => throw null; - public static ServiceStack.MetadataType ToMetadataType(this ServiceStack.MetadataTypeName type) => throw null; - public static ServiceStack.MetadataTypeName ToMetadataTypeName(this ServiceStack.MetadataType type) => throw null; - public static string ToPrettyName(this System.Type type) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.MetadataTypesGenerator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MetadataTypesGenerator - { - public static System.Collections.Generic.Dictionary> AttributeConverters { get => throw null; } - public static System.Reflection.FieldInfo GetEnumMember(System.Type type, string name) => throw null; - public static System.Reflection.PropertyInfo[] GetInstancePublicProperties(System.Type type) => throw null; - public ServiceStack.MetadataTypes GetMetadataTypes(ServiceStack.Web.IRequest req, System.Func predicate = default(System.Func)) => throw null; - public System.Collections.Generic.HashSet GetNamespacesUsed(System.Type type) => throw null; - public bool IncludeAttrsFilter(System.Attribute x) => throw null; - public MetadataTypesGenerator(ServiceStack.Host.ServiceMetadata meta, ServiceStack.MetadataTypesConfig config) => throw null; - public System.Collections.Generic.List NonDefaultProperties(System.Attribute attr) => throw null; - public System.Collections.Generic.List Properties(System.Attribute attr) => throw null; - public static string PropertyStringValue(System.Reflection.PropertyInfo pi, object value) => throw null; - public static string PropertyValue(System.Reflection.PropertyInfo pi, object instance, object ignoreIfValue = default(object)) => throw null; - public ServiceStack.MetadataAttribute ToAttribute(System.Attribute attr) => throw null; - public System.Collections.Generic.List ToAttributes(object[] attrs) => throw null; - public System.Collections.Generic.List ToAttributes(System.Type type) => throw null; - public System.Collections.Generic.List ToAttributes(System.Collections.Generic.IEnumerable attrs) => throw null; - public static ServiceStack.MetadataDataMember ToDataMember(System.Runtime.Serialization.DataMemberAttribute attr) => throw null; - public ServiceStack.MetadataType ToFlattenedType(System.Type type) => throw null; - public static string[] ToGenericArgs(System.Type propType) => throw null; - public ServiceStack.MetadataAttribute ToMetadataAttribute(System.Attribute attr) => throw null; - public System.Collections.Generic.List ToProperties(System.Type type) => throw null; - public ServiceStack.MetadataPropertyType ToProperty(System.Reflection.PropertyInfo pi, object instance = default(object), System.Collections.Generic.Dictionary ignoreValues = default(System.Collections.Generic.Dictionary)) => throw null; - public ServiceStack.MetadataPropertyType ToProperty(System.Reflection.ParameterInfo pi) => throw null; - public ServiceStack.MetadataType ToType(System.Type type) => throw null; - public ServiceStack.MetadataTypeName ToTypeName(System.Type type) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.NativeTypesBase` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NativeTypesBase - { - public bool? AddDataContractAttributes { get => throw null; set => throw null; } - public string AddDefaultXmlNamespace { get => throw null; set => throw null; } - public bool? AddDescriptionAsComments { get => throw null; set => throw null; } - public bool? AddGeneratedCodeAttributes { get => throw null; set => throw null; } - public int? AddImplicitVersion { get => throw null; set => throw null; } - public bool? AddIndexesToDataMembers { get => throw null; set => throw null; } - public bool? AddModelExtensions { get => throw null; set => throw null; } - public System.Collections.Generic.List AddNamespaces { get => throw null; set => throw null; } - public bool? AddPropertyAccessors { get => throw null; set => throw null; } - public bool? AddResponseStatus { get => throw null; set => throw null; } - public bool? AddReturnMarker { get => throw null; set => throw null; } - public bool? AddServiceStackTypes { get => throw null; set => throw null; } - public string BaseClass { get => throw null; set => throw null; } - public string BaseUrl { get => throw null; set => throw null; } - public System.Collections.Generic.List DefaultImports { get => throw null; set => throw null; } - public System.Collections.Generic.List DefaultNamespaces { get => throw null; set => throw null; } - public bool? ExcludeGenericBaseTypes { get => throw null; set => throw null; } - public bool? ExcludeNamespace { get => throw null; set => throw null; } - public System.Collections.Generic.List ExcludeTypes { get => throw null; set => throw null; } - public bool? ExportAsTypes { get => throw null; set => throw null; } - public bool? ExportValueTypes { get => throw null; set => throw null; } - public string GlobalNamespace { get => throw null; set => throw null; } - public System.Collections.Generic.List IncludeTypes { get => throw null; set => throw null; } - public bool? InitializeCollections { get => throw null; set => throw null; } - public bool? MakeDataContractsExtensible { get => throw null; set => throw null; } - public bool? MakeInternal { get => throw null; set => throw null; } - public bool? MakePartial { get => throw null; set => throw null; } - public bool? MakePropertiesOptional { get => throw null; set => throw null; } - public bool? MakeVirtual { get => throw null; set => throw null; } - public NativeTypesBase() => throw null; - public string Package { get => throw null; set => throw null; } - public bool? SettersReturnThis { get => throw null; set => throw null; } - public System.Collections.Generic.List TreatTypesAsStrings { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.NativeTypes.NativeTypesMetadata` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NativeTypesMetadata : ServiceStack.NativeTypes.INativeTypesMetadata - { - public ServiceStack.MetadataTypesConfig GetConfig(ServiceStack.NativeTypes.NativeTypesBase req) => throw null; - public ServiceStack.NativeTypes.MetadataTypesGenerator GetGenerator(ServiceStack.MetadataTypesConfig config) => throw null; - public ServiceStack.NativeTypes.MetadataTypesGenerator GetGenerator() => throw null; - public ServiceStack.MetadataTypes GetMetadataTypes(ServiceStack.Web.IRequest req, ServiceStack.MetadataTypesConfig config = default(ServiceStack.MetadataTypesConfig), System.Func predicate = default(System.Func)) => throw null; - public NativeTypesMetadata(ServiceStack.Host.ServiceMetadata meta, ServiceStack.MetadataTypesConfig defaults) => throw null; - public static System.Collections.Generic.List TrimArgs(System.Collections.Generic.List from) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.NativeTypesService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NativeTypesService : ServiceStack.Service - { - public object Any(ServiceStack.NativeTypes.TypesVbNet request) => throw null; - public object Any(ServiceStack.NativeTypes.TypesTypeScriptDefinition request) => throw null; - public object Any(ServiceStack.NativeTypes.TypesTypeScript request) => throw null; - public object Any(ServiceStack.NativeTypes.TypesSwift4 request) => throw null; - public object Any(ServiceStack.NativeTypes.TypesSwift request) => throw null; - public object Any(ServiceStack.NativeTypes.TypesKotlin request) => throw null; - public object Any(ServiceStack.NativeTypes.TypesJava request) => throw null; - public object Any(ServiceStack.NativeTypes.TypesFSharp request) => throw null; - public object Any(ServiceStack.NativeTypes.TypesDart request) => throw null; - public object Any(ServiceStack.NativeTypes.TypesCSharp request) => throw null; - public object Any(ServiceStack.NativeTypes.TypeLinks request) => throw null; - public ServiceStack.MetadataTypes Any(ServiceStack.NativeTypes.TypesMetadata request) => throw null; - public static System.Collections.Generic.List BuiltInClientDtos; - public static System.Collections.Generic.List BuiltinInterfaces; - public string GenerateTypeScript(ServiceStack.NativeTypes.NativeTypesBase request, ServiceStack.MetadataTypesConfig typesConfig) => throw null; - public ServiceStack.NativeTypes.INativeTypesMetadata NativeTypesMetadata { get => throw null; set => throw null; } - public NativeTypesService() => throw null; - public static ServiceStack.MetadataTypes ResolveMetadataTypes(ServiceStack.MetadataTypesConfig typesConfig, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypesMetadata, ServiceStack.Web.IRequest req) => throw null; - public ServiceStack.MetadataTypes ResolveMetadataTypes(ServiceStack.MetadataTypesConfig typesConfig) => throw null; - public static System.Collections.Generic.List ReturnInterfaces; - public static System.Collections.Generic.List>> TypeLinksFilters { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.NativeTypes.StringBuilderWrapper` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class StringBuilderWrapper - { - public void AppendLine(string str = default(string)) => throw null; - public ServiceStack.NativeTypes.StringBuilderWrapper Indent() => throw null; - public int Length { get => throw null; } - public StringBuilderWrapper(System.Text.StringBuilder sb, int indent = default(int)) => throw null; - public override string ToString() => throw null; - public ServiceStack.NativeTypes.StringBuilderWrapper UnIndent() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypeFilterDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate string TypeFilterDelegate(string typeName, string[] genericArgs); - - // Generated from `ServiceStack.NativeTypes.TypeLinks` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypeLinks : ServiceStack.NativeTypes.NativeTypesBase, ServiceStack.IReturn>, ServiceStack.IReturn - { - public TypeLinks() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesCSharp` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesCSharp : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesCSharp() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesDart` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesDart : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesDart() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesFSharp` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesFSharp : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesFSharp() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesJava` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesJava : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesJava() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesKotlin` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesKotlin : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesKotlin() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesMetadata` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesMetadata : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesMetadata() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesSwift` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesSwift : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesSwift() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesSwift4` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesSwift4 : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesSwift4() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesTypeScript` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesTypeScript : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesTypeScript() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesTypeScriptDefinition` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesTypeScriptDefinition : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesTypeScriptDefinition() => throw null; - } - - // Generated from `ServiceStack.NativeTypes.TypesVbNet` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypesVbNet : ServiceStack.NativeTypes.NativeTypesBase - { - public TypesVbNet() => throw null; - } - - namespace CSharp - { - // Generated from `ServiceStack.NativeTypes.CSharp.CSharpGenerator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class CSharpGenerator - { - public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } - public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; - public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; - public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; - public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; - public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; - public static System.Collections.Generic.Dictionary AttributeConstructorArgs { get => throw null; set => throw null; } - public CSharpGenerator(ServiceStack.MetadataTypesConfig config) => throw null; - public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; - public static System.Func, System.Collections.Generic.List> FilterTypes; - public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request) => throw null; - public string GetPropertyName(string name) => throw null; - public static System.Action InnerTypeFilter { get => throw null; set => throw null; } - public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } - public static string NameOnly(string type, bool includeNested = default(bool)) => throw null; - public static System.Action PostPropertyFilter { get => throw null; set => throw null; } - public static System.Action PostTypeFilter { get => throw null; set => throw null; } - public static System.Action PrePropertyFilter { get => throw null; set => throw null; } - public static System.Action PreTypeFilter { get => throw null; set => throw null; } - public string Type(string type, string[] genericArgs, bool includeNested = default(bool)) => throw null; - public string Type(ServiceStack.MetadataTypeName typeName, bool includeNested = default(bool)) => throw null; - public static string TypeAlias(string type, bool includeNested = default(bool)) => throw null; - public static System.Collections.Generic.Dictionary TypeAliases; - public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } - public string TypeValue(string type, string value) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.CSharp.CSharpGeneratorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class CSharpGeneratorExtensions - { - public static ServiceStack.MetadataTypeName GetInherits(this ServiceStack.MetadataType type) => throw null; - } - - } - namespace Dart - { - // Generated from `ServiceStack.NativeTypes.Dart.DartGenerator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class DartGenerator - { - public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } - public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; - public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; - public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; - public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; - public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; - public static System.Collections.Generic.HashSet ArrayTypes; - public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; - public DartGenerator(ServiceStack.MetadataTypesConfig config) => throw null; - public string DartLiteral(string typeName) => throw null; - public static System.Collections.Generic.Dictionary DartToJsonConverters; - public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; - public static System.Collections.Generic.List DefaultImports; - public static System.Collections.Generic.HashSet DictionaryTypes; - public static System.Func, System.Collections.Generic.List> FilterTypes; - public static bool GenerateServiceStackTypes { get => throw null; } - public string GenericArg(string arg) => throw null; - public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; - public string GetPropertyName(string name) => throw null; - public static System.Collections.Generic.HashSet IgnoreTypeInfosFor; - public static System.Action InnerTypeFilter { get => throw null; set => throw null; } - public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } - public string NameOnly(string type) => throw null; - public static System.Action PostPropertyFilter { get => throw null; set => throw null; } - public static System.Action PostTypeFilter { get => throw null; set => throw null; } - public static System.Action PrePropertyFilter { get => throw null; set => throw null; } - public static System.Action PreTypeFilter { get => throw null; set => throw null; } - public string RawGenericArg(string arg) => throw null; - public string RawGenericType(string type, string[] genericArgs) => throw null; - public string RawType(ServiceStack.TextNode node) => throw null; - public void RegisterPropertyType(ServiceStack.MetadataPropertyType prop, string dartType) => throw null; - public static System.Collections.Generic.HashSet SetTypes; - public string Type(string type, string[] genericArgs) => throw null; - public string Type(ServiceStack.MetadataTypeName typeName) => throw null; - public static System.Collections.Generic.Dictionary TypeAliases; - public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } - public string TypeValue(string type, string value) => throw null; - public bool UseTypeConversion(ServiceStack.MetadataPropertyType prop) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.Dart.DartGeneratorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class DartGeneratorExtensions - { - public static System.Collections.Generic.HashSet DartKeyWords; - public static bool HasEnumFlags(ServiceStack.MetadataType type) => throw null; - public static string InDeclarationType(this string type) => throw null; - public static bool IsKeyWord(string name) => throw null; - public static string PropertyName(this string name) => throw null; - public static string PropertyStyle(this string name) => throw null; - } - - } - namespace FSharp - { - // Generated from `ServiceStack.NativeTypes.FSharp.FSharpGenerator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class FSharpGenerator - { - public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } - public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; - public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; - public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; - public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; - public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; - public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; - public FSharpGenerator(ServiceStack.MetadataTypesConfig config) => throw null; - public static System.Func, System.Collections.Generic.List> FilterTypes; - public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request) => throw null; - public string GetPropertyName(string name) => throw null; - public static System.Action InnerTypeFilter { get => throw null; set => throw null; } - public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } - public string NameOnly(string type) => throw null; - public static System.Action PostPropertyFilter { get => throw null; set => throw null; } - public static System.Action PostTypeFilter { get => throw null; set => throw null; } - public static System.Action PrePropertyFilter { get => throw null; set => throw null; } - public static System.Action PreTypeFilter { get => throw null; set => throw null; } - public string Type(string type, string[] genericArgs) => throw null; - public string Type(ServiceStack.MetadataTypeName typeName) => throw null; - public static System.Collections.Generic.Dictionary TypeAliases; - public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } - public string TypeValue(string type, string value) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.FSharp.FSharpGeneratorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class FSharpGeneratorExtensions - { - public static bool Contains(this System.Collections.Generic.Dictionary> map, string key, string value) => throw null; - } - - } - namespace Java - { - // Generated from `ServiceStack.NativeTypes.Java.JavaGenerator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class JavaGenerator - { - public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } - public static bool AddGsonImport { set => throw null; } - public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus, bool addPropertyAccessors, string settersReturnType) => throw null; - public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; - public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; - public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; - public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary ArrayAliases; - public static System.Collections.Generic.HashSet ArrayTypes; - public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; - public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; - public static string DefaultGlobalNamespace; - public static System.Collections.Generic.List DefaultImports; - public static System.Collections.Generic.HashSet DictionaryTypes; - public static System.Func, System.Collections.Generic.List> FilterTypes; - public static string GSonAnnotationsNamespace; - public static string GSonReflectNamespace; - public string GenericArg(string arg) => throw null; - public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; - public string GetPropertyName(string name) => throw null; - public static System.Collections.Generic.HashSet IgnoreTypeNames; - public static System.Action InnerTypeFilter { get => throw null; set => throw null; } - public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } - public JavaGenerator(ServiceStack.MetadataTypesConfig config) => throw null; - public static string JavaIoNamespace; - public string NameOnly(string type) => throw null; - public static System.Action PostPropertyFilter { get => throw null; set => throw null; } - public static System.Action PostTypeFilter { get => throw null; set => throw null; } - public static System.Action PrePropertyFilter { get => throw null; set => throw null; } - public static System.Action PreTypeFilter { get => throw null; set => throw null; } - public string Type(string type, string[] genericArgs) => throw null; - public string Type(ServiceStack.MetadataTypeName typeName) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary TypeAliases; - public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } - public string TypeValue(string type, string value) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.Java.JavaGeneratorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class JavaGeneratorExtensions - { - public static ServiceStack.NativeTypes.StringBuilderWrapper AppendPropertyAccessor(this ServiceStack.NativeTypes.StringBuilderWrapper sb, string type, string fieldName, string settersReturnThis) => throw null; - public static ServiceStack.NativeTypes.StringBuilderWrapper AppendPropertyAccessor(this ServiceStack.NativeTypes.StringBuilderWrapper sb, string type, string fieldName, string accessorName, string settersReturnThis) => throw null; - public static string InheritedType(this string type) => throw null; - public static bool IsKeyWord(this string name) => throw null; - public static System.Collections.Generic.HashSet JavaKeyWords; - public static string PropertyStyle(this string name) => throw null; - public static ServiceStack.MetadataAttribute ToMetadataAttribute(this ServiceStack.MetadataRoute route) => throw null; - } - - } - namespace Kotlin - { - // Generated from `ServiceStack.NativeTypes.Kotlin.KotlinGenerator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class KotlinGenerator - { - public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } - public static bool AddGsonImport { set => throw null; } - public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool initCollections, bool includeResponseStatus) => throw null; - public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; - public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; - public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; - public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary ArrayAliases; - public static System.Collections.Generic.HashSet ArrayTypes; - public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; - public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; - public static System.Collections.Generic.List DefaultImports; - public static System.Collections.Generic.HashSet DictionaryTypes; - public static System.Func, System.Collections.Generic.List> FilterTypes; - public static string GSonAnnotationsNamespace; - public static string GSonReflectNamespace; - public string GenericArg(string arg) => throw null; - public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; - public string GetPropertyName(string name) => throw null; - public static System.Collections.Generic.HashSet IgnoreTypeNames; - public static System.Action InnerTypeFilter { get => throw null; set => throw null; } - public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } - public static string JavaIoNamespace; - public KotlinGenerator(ServiceStack.MetadataTypesConfig config) => throw null; - public string NameOnly(string type) => throw null; - public static System.Action PostPropertyFilter { get => throw null; set => throw null; } - public static System.Action PostTypeFilter { get => throw null; set => throw null; } - public static System.Action PrePropertyFilter { get => throw null; set => throw null; } - public static System.Action PreTypeFilter { get => throw null; set => throw null; } - public string Type(string type, string[] genericArgs) => throw null; - public string Type(ServiceStack.MetadataTypeName typeName) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary TypeAliases; - public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } - public string TypeValue(string type, string value) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.Kotlin.KotlinGeneratorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class KotlinGeneratorExtensions - { - public static ServiceStack.NativeTypes.StringBuilderWrapper AppendPropertyAccessor(this ServiceStack.NativeTypes.StringBuilderWrapper sb, string type, string fieldName, string settersReturnThis) => throw null; - public static ServiceStack.NativeTypes.StringBuilderWrapper AppendPropertyAccessor(this ServiceStack.NativeTypes.StringBuilderWrapper sb, string type, string fieldName, string accessorName, string settersReturnThis) => throw null; - public static string InheritedType(this string type) => throw null; - public static bool IsKeyWord(this string name) => throw null; - public static System.Collections.Generic.HashSet KotlinKeyWords; - public static string PropertyStyle(this string name) => throw null; - public static ServiceStack.MetadataAttribute ToMetadataAttribute(this ServiceStack.MetadataRoute route) => throw null; - } - - } - namespace Swift - { - // Generated from `ServiceStack.NativeTypes.Swift.Swift4Generator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class Swift4Generator - { - public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } - public static string AddGenericConstraints(string typeDef) => throw null; - public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool initCollections, bool includeResponseStatus) => throw null; - public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; - public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; - public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; - public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; - public static System.Collections.Generic.HashSet ArrayTypes; - public static string CSharpStyleEnums(string enumName) => throw null; - public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; - public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; - public static System.Collections.Generic.List DefaultImports; - public static System.Collections.Generic.HashSet DictionaryTypes; - public static System.Func EnumNameStrategy { get => throw null; set => throw null; } - public static System.Func, System.Collections.Generic.List> FilterTypes; - public ServiceStack.MetadataType FindType(string typeName, string typeNamespace, params string[] genericArgs) => throw null; - public ServiceStack.MetadataType FindType(ServiceStack.MetadataTypeName typeName) => throw null; - public string GenericArg(string arg) => throw null; - public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request) => throw null; - public System.Collections.Generic.List GetProperties(ServiceStack.MetadataType type) => throw null; - public string GetPropertyName(string name) => throw null; - public static bool IgnoreArrayReturnTypes; - public static System.Collections.Generic.HashSet IgnorePropertyNames; - public static System.Collections.Generic.HashSet IgnorePropertyTypeNames; - public static System.Collections.Generic.HashSet IgnoreTypeNames; - public static System.Action InnerTypeFilter { get => throw null; set => throw null; } - public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } - public string NameOnly(string type) => throw null; - public static System.Collections.Generic.HashSet OverrideInitForBaseClasses; - public static System.Action PostPropertyFilter { get => throw null; set => throw null; } - public static System.Action PostTypeFilter { get => throw null; set => throw null; } - public static System.Action PrePropertyFilter { get => throw null; set => throw null; } - public static System.Action PreTypeFilter { get => throw null; set => throw null; } - public string ReturnType(string type, string[] genericArgs) => throw null; - public Swift4Generator(ServiceStack.MetadataTypesConfig config) => throw null; - public static string SwiftStyleEnums(string enumName) => throw null; - public string Type(string type, string[] genericArgs) => throw null; - public string Type(ServiceStack.MetadataTypeName typeName) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary TypeAliases; - public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } - public string TypeValue(string type, string value) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.Swift.SwiftGenerator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SwiftGenerator - { - public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } - public static string AddGenericConstraints(string typeDef) => throw null; - public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool initCollections, bool includeResponseStatus) => throw null; - public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; - public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; - public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; - public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; - public static System.Collections.Generic.HashSet ArrayTypes; - public static string CSharpStyleEnums(string enumName) => throw null; - public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary Converters; - public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; - public static System.Collections.Generic.List DefaultImports; - public static System.Collections.Generic.HashSet DictionaryTypes; - public static System.Func EnumNameStrategy { get => throw null; set => throw null; } - public static System.Func, System.Collections.Generic.List> FilterTypes; - public ServiceStack.MetadataType FindType(string typeName, string typeNamespace, params string[] genericArgs) => throw null; - public ServiceStack.MetadataType FindType(ServiceStack.MetadataTypeName typeName) => throw null; - public string GenericArg(string arg) => throw null; - public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request) => throw null; - public System.Collections.Generic.List GetProperties(ServiceStack.MetadataType type) => throw null; - public string GetPropertyName(string name) => throw null; - public static bool IgnoreArrayReturnTypes; - public static System.Collections.Generic.HashSet IgnorePropertyNames; - public static System.Collections.Generic.HashSet IgnorePropertyTypeNames; - public static System.Collections.Generic.HashSet IgnoreTypeNames; - public static System.Action InnerTypeFilter { get => throw null; set => throw null; } - public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } - public string NameOnly(string type) => throw null; - public static System.Collections.Generic.HashSet OverrideInitForBaseClasses; - public static System.Action PostPropertyFilter { get => throw null; set => throw null; } - public static System.Action PostTypeFilter { get => throw null; set => throw null; } - public static System.Action PrePropertyFilter { get => throw null; set => throw null; } - public static System.Action PreTypeFilter { get => throw null; set => throw null; } - public string ReturnType(string type, string[] genericArgs) => throw null; - public SwiftGenerator(ServiceStack.MetadataTypesConfig config) => throw null; - public static string SwiftStyleEnums(string enumName) => throw null; - public string Type(string type, string[] genericArgs) => throw null; - public string Type(ServiceStack.MetadataTypeName typeName) => throw null; - public static System.Collections.Concurrent.ConcurrentDictionary TypeAliases; - public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } - public string TypeValue(string type, string value) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.Swift.SwiftGeneratorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class SwiftGeneratorExtensions - { - public static string InheritedType(this string type) => throw null; - public static string PropertyStyle(this string name) => throw null; - public static System.Collections.Generic.HashSet SwiftKeyWords; - public static string UnescapeReserved(this string name) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.Swift.SwiftTypeConverter` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class SwiftTypeConverter - { - public string Attribute { get => throw null; set => throw null; } - public string DecodeMethod { get => throw null; set => throw null; } - public string EncodeMethod { get => throw null; set => throw null; } - public SwiftTypeConverter() => throw null; - } - - } - namespace TypeScript - { - // Generated from `ServiceStack.NativeTypes.TypeScript.TypeScriptGenerator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class TypeScriptGenerator - { - public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } - public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; - public System.Collections.Generic.HashSet AddedDeclarations { get => throw null; set => throw null; } - public System.Collections.Generic.List AllTypes { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet AllowedKeyTypes; - public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; - public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; - public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; - public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; - public static System.Collections.Generic.HashSet ArrayTypes; - public ServiceStack.MetadataTypesConfig Config; - public string ConvertFromCSharp(ServiceStack.TextNode node) => throw null; - public static System.Func CookedDeclarationTypeFilter { get => throw null; set => throw null; } - public static System.Func CookedTypeFilter { get => throw null; set => throw null; } - public string DeclarationType(string type, string[] genericArgs, out string addDeclaration) => throw null; - public static ServiceStack.NativeTypes.TypeFilterDelegate DeclarationTypeFilter { get => throw null; set => throw null; } - public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; - public static System.Collections.Generic.List DefaultImports; - public static bool? DefaultIsPropertyOptional(ServiceStack.NativeTypes.TypeScript.TypeScriptGenerator generator, ServiceStack.MetadataType type, ServiceStack.MetadataPropertyType prop) => throw null; - public string DictionaryDeclaration { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet DictionaryTypes; - public static bool EmitPartialConstructors { get => throw null; set => throw null; } - public static System.Func, System.Collections.Generic.List> FilterTypes { get => throw null; set => throw null; } - public string GenericArg(string arg) => throw null; - public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request, ServiceStack.NativeTypes.INativeTypesMetadata nativeTypes) => throw null; - public string GetPropertyName(string name) => throw null; - public virtual string GetPropertyType(ServiceStack.MetadataPropertyType prop, out bool isNullable) => throw null; - public static System.Action InnerTypeFilter { get => throw null; set => throw null; } - public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } - public static bool InsertTsNoCheck { get => throw null; set => throw null; } - public static System.Func IsPropertyOptional { get => throw null; set => throw null; } - public string NameOnly(string type) => throw null; - public static System.Action PostPropertyFilter { get => throw null; set => throw null; } - public static System.Action PostTypeFilter { get => throw null; set => throw null; } - public static System.Action PrePropertyFilter { get => throw null; set => throw null; } - public static System.Action PreTypeFilter { get => throw null; set => throw null; } - public static System.Func PropertyTypeFilter { get => throw null; set => throw null; } - public static System.Func ReturnMarkerFilter { get => throw null; set => throw null; } - public string Type(string type, string[] genericArgs) => throw null; - public string Type(ServiceStack.MetadataTypeName typeName) => throw null; - public static System.Collections.Generic.Dictionary TypeAliases; - public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } - public TypeScriptGenerator(ServiceStack.MetadataTypesConfig config) => throw null; - public string TypeValue(string type, string value) => throw null; - public static bool UseNullableProperties { set => throw null; } - public static bool UseUnionTypeEnums { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.NativeTypes.TypeScript.TypeScriptGeneratorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class TypeScriptGeneratorExtensions - { - public static string InReturnMarker(this string type) => throw null; - public static string PropertyStyle(this string name) => throw null; - } - - } - namespace VbNet - { - // Generated from `ServiceStack.NativeTypes.VbNet.VbNetGenerator` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class VbNetGenerator - { - public static ServiceStack.NativeTypes.AddCodeDelegate AddCodeFilter { get => throw null; set => throw null; } - public void AddProperties(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataType type, bool includeResponseStatus) => throw null; - public bool AppendAttributes(ServiceStack.NativeTypes.StringBuilderWrapper sb, System.Collections.Generic.List attributes) => throw null; - public bool AppendComments(ServiceStack.NativeTypes.StringBuilderWrapper sb, string desc) => throw null; - public void AppendDataContract(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataContract dcMeta) => throw null; - public bool AppendDataMember(ServiceStack.NativeTypes.StringBuilderWrapper sb, ServiceStack.MetadataDataMember dmMeta, int dataMemberIndex) => throw null; - public static System.Collections.Generic.List DefaultFilterTypes(System.Collections.Generic.List types) => throw null; - public string EscapeKeyword(string name) => throw null; - public static System.Func, System.Collections.Generic.List> FilterTypes; - public string GetCode(ServiceStack.MetadataTypes metadata, ServiceStack.Web.IRequest request) => throw null; - public string GetPropertyName(string name) => throw null; - public static System.Action InnerTypeFilter { get => throw null; set => throw null; } - public static ServiceStack.NativeTypes.AddCodeDelegate InsertCodeFilter { get => throw null; set => throw null; } - public static System.Collections.Generic.HashSet KeyWords; - public string NameOnly(string type, bool includeNested = default(bool)) => throw null; - public static System.Action PostPropertyFilter { get => throw null; set => throw null; } - public static System.Action PostTypeFilter { get => throw null; set => throw null; } - public static System.Action PrePropertyFilter { get => throw null; set => throw null; } - public static System.Action PreTypeFilter { get => throw null; set => throw null; } - public string Type(string type, string[] genericArgs, bool includeNested = default(bool)) => throw null; - public string Type(ServiceStack.MetadataTypeName typeName, bool includeNested = default(bool)) => throw null; - public static System.Collections.Generic.Dictionary TypeAliases; - public static ServiceStack.NativeTypes.TypeFilterDelegate TypeFilter { get => throw null; set => throw null; } - public string TypeValue(string type, string value) => throw null; - public VbNetGenerator(ServiceStack.MetadataTypesConfig config) => throw null; - } - - // Generated from `ServiceStack.NativeTypes.VbNet.VbNetGeneratorExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class VbNetGeneratorExtensions - { - public static string QuotedSafeValue(this string value) => throw null; - public static string SafeComment(this string comment) => throw null; - public static string SafeToken(this string token) => throw null; - public static string SafeValue(this string value) => throw null; - public static ServiceStack.MetadataAttribute ToMetadataAttribute(this ServiceStack.MetadataRoute route) => throw null; - } - - } - } - namespace NetCore - { - // Generated from `ServiceStack.NetCore.NetCoreContainerAdapter` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreContainerAdapter : System.IDisposable, ServiceStack.Configuration.IResolver, ServiceStack.Configuration.IContainerAdapter - { - public void Dispose() => throw null; - public NetCoreContainerAdapter(System.IServiceProvider appServices) => throw null; - public T Resolve() => throw null; - public T TryResolve() => throw null; - } - - // Generated from `ServiceStack.NetCore.NetCoreHeadersCollection` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreHeadersCollection : System.Collections.Specialized.NameValueCollection - { - public override void Add(string name, string value) => throw null; - public override string[] AllKeys { get => throw null; } - public override void Clear() => throw null; - public override int Count { get => throw null; } - public override string Get(string name) => throw null; - public override string Get(int index) => throw null; - public override System.Collections.IEnumerator GetEnumerator() => throw null; - public override string GetKey(int index) => throw null; - public override string[] GetValues(string name) => throw null; - public bool HasKeys() => throw null; - public bool IsSynchronized { get => throw null; } - public NetCoreHeadersCollection(Microsoft.AspNetCore.Http.IHeaderDictionary original) => throw null; - public object Original { get => throw null; } - public override void Remove(string name) => throw null; - public override void Set(string key, string value) => throw null; - public object SyncRoot { get => throw null; } - } - - // Generated from `ServiceStack.NetCore.NetCoreLog` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreLog : ServiceStack.Logging.ILog - { - 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 FatalFormat(string format, params object[] args) => 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 NetCoreLog(Microsoft.Extensions.Logging.ILogger logger, bool debugEnabled = default(bool)) => 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 `ServiceStack.NetCore.NetCoreLogFactory` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreLogFactory : ServiceStack.Logging.ILogFactory - { - public static Microsoft.Extensions.Logging.ILoggerFactory FallbackLoggerFactory { get => throw null; set => throw null; } - public ServiceStack.Logging.ILog GetLogger(string typeName) => throw null; - public ServiceStack.Logging.ILog GetLogger(System.Type type) => throw null; - public NetCoreLogFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool debugEnabled = default(bool)) => throw null; - } - - // Generated from `ServiceStack.NetCore.NetCoreQueryStringCollection` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class NetCoreQueryStringCollection : System.Collections.Specialized.NameValueCollection - { - public override void Add(string name, string value) => throw null; - public override string[] AllKeys { get => throw null; } - public override void Clear() => throw null; - public override int Count { get => throw null; } - public override string Get(string name) => throw null; - public override string Get(int index) => throw null; - public override System.Collections.IEnumerator GetEnumerator() => throw null; - public override string GetKey(int index) => throw null; - public override string[] GetValues(string name) => throw null; - public bool IsSynchronized { get => throw null; } - public NetCoreQueryStringCollection(Microsoft.AspNetCore.Http.IQueryCollection originalQuery) => throw null; - public object Original { get => throw null; } - public override void Remove(string name) => throw null; - public override void Set(string key, string value) => throw null; - public object SyncRoot { get => throw null; } - public override string ToString() => throw null; - } - - } - namespace Platforms - { - // Generated from `ServiceStack.Platforms.PlatformNetCore` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class PlatformNetCore : ServiceStack.Platform - { - public static System.Collections.Generic.List AppConfigPaths; - public const string ConfigNullValue = default; - public override string GetAppConfigPath() => throw null; - public override string GetAppSetting(string key, string defaultValue) => throw null; - public override string GetAppSetting(string key) => throw null; - public override T GetAppSetting(string key, T defaultValue) => throw null; - public override string GetConnectionString(string key) => throw null; - public override string GetNullableAppSetting(string key) => throw null; - public static ServiceStack.ServiceStackHost HostInstance { get => throw null; set => throw null; } - public PlatformNetCore() => throw null; - } - - } - namespace Support - { - namespace WebHost - { - // Generated from `ServiceStack.Support.WebHost.FilterAttributeCache` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class FilterAttributeCache - { - public static ServiceStack.Web.IRequestFilterBase[] GetRequestFilterAttributes(System.Type requestDtoType) => throw null; - public static ServiceStack.Web.IResponseFilterBase[] GetResponseFilterAttributes(System.Type requestDtoType) => throw null; - } - - } - } - namespace Templates - { - // Generated from `ServiceStack.Templates.HtmlTemplates` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class HtmlTemplates - { - public static string Format(string template, params object[] args) => throw null; - public static string GetHtmlFormatTemplate() => throw null; - public static string GetHtmlRedirectTemplate(string url) => throw null; - public static string GetIndexOperationsTemplate() => throw null; - public static string GetLoginTemplate() => throw null; - public static string GetMetadataDebugTemplate() => throw null; - public static string GetOperationControlTemplate() => throw null; - public static string GetSvgTemplatePath() => throw null; - public static string GetTemplatePath(string templateName) => throw null; - } - - } - namespace Testing - { - // Generated from `ServiceStack.Testing.BasicAppHost` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicAppHost : ServiceStack.ServiceStackHost - { - public BasicAppHost(params System.Reflection.Assembly[] serviceAssemblies) : base(default(string), default(System.Reflection.Assembly[])) => throw null; - public System.Action ConfigFilter { get => throw null; set => throw null; } - public override void Configure(Funq.Container container) => throw null; - public System.Action ConfigureAppHost { get => throw null; set => throw null; } - public System.Action ConfigureContainer { get => throw null; set => throw null; } - public override ServiceStack.IServiceGateway GetServiceGateway(ServiceStack.Web.IRequest req) => throw null; - public override void OnConfigLoad() => throw null; - public System.Func UseServiceController { set => throw null; } - } - - // Generated from `ServiceStack.Testing.BasicResolver` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class BasicResolver : ServiceStack.Configuration.IResolver - { - public BasicResolver(Funq.Container container) => throw null; - public BasicResolver() => throw null; - public T TryResolve() => throw null; - } - - // Generated from `ServiceStack.Testing.MockHttpRequest` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MockHttpRequest : System.IServiceProvider, ServiceStack.Web.IRequest, ServiceStack.Web.IHttpRequest, ServiceStack.IO.IHasVirtualFiles, ServiceStack.IHasServiceScope, ServiceStack.Configuration.IResolver, ServiceStack.Configuration.IHasResolver - { - public string AbsoluteUri { get => throw null; } - public string Accept { get => throw null; set => throw null; } - public string[] AcceptTypes { get => throw null; set => throw null; } - public void AddSessionCookies() => throw null; - public string ApplicationFilePath { get => throw null; set => throw null; } - public string Authorization { get => throw null; set => throw null; } - public System.Int64 ContentLength { get => throw null; } - public string ContentType { get => throw null; set => throw null; } - public System.Collections.Generic.IDictionary Cookies { get => throw null; set => throw null; } - public object Dto { get => throw null; set => throw null; } - public ServiceStack.Web.IHttpFile[] Files { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection FormData { get => throw null; set => throw null; } - public ServiceStack.IO.IVirtualDirectory GetDirectory() => throw null; - public ServiceStack.IO.IVirtualFile GetFile() => throw null; - public string GetRawBody() => throw null; - public System.Threading.Tasks.Task GetRawBodyAsync() => throw null; - public object GetService(System.Type serviceType) => throw null; - public bool HasExplicitResponseContentType { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection Headers { get => throw null; set => throw null; } - public string HttpMethod { get => throw null; set => throw null; } - public ServiceStack.Web.IHttpResponse HttpResponse { get => throw null; set => throw null; } - public System.IO.Stream InputStream { get => throw null; set => throw null; } - public bool IsDirectory { get => throw null; } - public bool IsFile { get => throw null; } - public bool IsLocal { get => throw null; set => throw null; } - public bool IsSecureConnection { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; set => throw null; } - public MockHttpRequest(string operationName, string httpMethod, string contentType, string pathInfo, System.Collections.Specialized.NameValueCollection queryString, System.IO.Stream inputStream, System.Collections.Specialized.NameValueCollection formData) => throw null; - public MockHttpRequest() => throw null; - public string OperationName { get => throw null; set => throw null; } - public string OriginalPathInfo { get => throw null; } - public object OriginalRequest { get => throw null; } - public string PathInfo { get => throw null; set => throw null; } - public System.Collections.Specialized.NameValueCollection QueryString { get => throw null; set => throw null; } - public string RawUrl { get => throw null; set => throw null; } - public ServiceStack.AuthUserSession ReloadSession() => throw null; - public string RemoteIp { get => throw null; } - public ServiceStack.AuthUserSession RemoveSession() => throw null; - public ServiceStack.RequestAttributes RequestAttributes { get => throw null; set => throw null; } - public ServiceStack.Web.IRequestPreferences RequestPreferences { get => throw null; } - public ServiceStack.Configuration.IResolver Resolver { get => throw null; set => throw null; } - public ServiceStack.Web.IResponse Response { get => throw null; } - public string ResponseContentType { get => throw null; set => throw null; } - public Microsoft.Extensions.DependencyInjection.IServiceScope ServiceScope { get => throw null; set => throw null; } - public T TryResolve() => throw null; - public System.Uri UrlReferrer { get => throw null; } - public bool UseBufferedStream { get => throw null; set => throw null; } - public string UserAgent { get => throw null; set => throw null; } - public string UserHostAddress { get => throw null; set => throw null; } - public string Verb { get => throw null; } - public string XForwardedFor { get => throw null; set => throw null; } - public int? XForwardedPort { get => throw null; set => throw null; } - public string XForwardedProtocol { get => throw null; set => throw null; } - public string XRealIp { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Testing.MockHttpResponse` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MockHttpResponse : ServiceStack.Web.IResponse, ServiceStack.Web.IHttpResponse, ServiceStack.Web.IHasHeaders - { - public void AddHeader(string name, string value) => throw null; - public void ClearCookies() => throw null; - public void Close() => throw null; - public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string ContentType { get => throw null; set => throw null; } - public ServiceStack.Web.ICookies Cookies { get => throw null; set => throw null; } - public object Dto { get => throw null; set => throw null; } - public void End() => throw null; - public void Flush() => throw null; - public System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) => throw null; - public string GetHeader(string name) => throw null; - public bool HasStarted { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Headers { get => throw null; } - public bool IsClosed { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary Items { get => throw null; } - public bool KeepAlive { get => throw null; set => throw null; } - public MockHttpResponse(ServiceStack.Web.IRequest request = default(ServiceStack.Web.IRequest)) => throw null; - public object OriginalResponse { get => throw null; set => throw null; } - public System.IO.Stream OutputStream { get => throw null; } - public System.Byte[] ReadAsBytes() => throw null; - public string ReadAsString() => throw null; - public void Redirect(string url) => throw null; - public void RemoveHeader(string name) => throw null; - public ServiceStack.Web.IRequest Request { get => throw null; set => throw null; } - public void SetContentLength(System.Int64 contentLength) => throw null; - 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 System.Text.StringBuilder TextWritten { get => throw null; set => throw null; } - public bool UseBufferedStream { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Testing.MockRestGateway` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MockRestGateway : ServiceStack.IRestGateway - { - public T Delete(ServiceStack.IReturn request) => throw null; - public T Get(ServiceStack.IReturn request) => throw null; - public MockRestGateway() => throw null; - public T Post(ServiceStack.IReturn request) => throw null; - public T Put(ServiceStack.IReturn request) => throw null; - public ServiceStack.Testing.RestGatewayDelegate ResultsFilter { get => throw null; set => throw null; } - public T Send(ServiceStack.IReturn request) => throw null; - } - - // Generated from `ServiceStack.Testing.RestGatewayDelegate` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public delegate object RestGatewayDelegate(string httpVerb, System.Type responseType, object requestDto); - - } - namespace Validation - { - // Generated from `ServiceStack.Validation.ExecOnceOnly` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ExecOnceOnly : System.IDisposable - { - public void Commit() => throw null; - public void Dispose() => throw null; - public ExecOnceOnly(ServiceStack.Redis.IRedisClientsManager redisManager, string hashKey, string correlationId) => throw null; - public ExecOnceOnly(ServiceStack.Redis.IRedisClientsManager redisManager, System.Type forType, string correlationId) => throw null; - public ExecOnceOnly(ServiceStack.Redis.IRedisClientsManager redisManager, System.Type forType, System.Guid? correlationId) => throw null; - public bool Executed { get => throw null; set => throw null; } - public void Rollback() => throw null; - } - - // Generated from `ServiceStack.Validation.GetValidationRulesService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class GetValidationRulesService : ServiceStack.Service - { - public System.Threading.Tasks.Task Any(ServiceStack.GetValidationRules request) => throw null; - public GetValidationRulesService() => throw null; - public ServiceStack.IValidationSource ValidationSource { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Validation.ModifyValidationRulesService` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ModifyValidationRulesService : ServiceStack.Service - { - public System.Threading.Tasks.Task Any(ServiceStack.ModifyValidationRules request) => throw null; - public ModifyValidationRulesService() => throw null; - public ServiceStack.IValidationSource ValidationSource { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Validation.MultiRuleSetValidatorSelector` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class MultiRuleSetValidatorSelector : ServiceStack.FluentValidation.Internal.IValidatorSelector - { - public bool CanExecute(ServiceStack.FluentValidation.IValidationRule rule, string propertyPath, ServiceStack.FluentValidation.IValidationContext context) => throw null; - public MultiRuleSetValidatorSelector(params string[] rulesetsToExecute) => throw null; - } - - // Generated from `ServiceStack.Validation.ValidationExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ValidationExtensions - { - public static bool HasAsyncValidators(this ServiceStack.FluentValidation.IValidator validator, ServiceStack.FluentValidation.IValidationContext context, string ruleSet = default(string)) => throw null; - public static void Init(System.Reflection.Assembly[] assemblies) => throw null; - public static void RegisterValidator(this Funq.Container container, System.Type validator, Funq.ReuseScope scope = default(Funq.ReuseScope)) => throw null; - public static void RegisterValidators(this Funq.Container container, params System.Reflection.Assembly[] assemblies) => throw null; - public static void RegisterValidators(this Funq.Container container, Funq.ReuseScope scope, params System.Reflection.Assembly[] assemblies) => throw null; - public static System.Collections.Generic.HashSet RegisteredDtoValidators { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Validation.ValidationFeature` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidationFeature : ServiceStack.Model.IHasStringId, ServiceStack.Model.IHasId, ServiceStack.IPlugin, ServiceStack.IAfterInitAppHost - { - public string AccessRole { get => throw null; set => throw null; } - public void AfterInit(ServiceStack.IAppHost appHost) => throw null; - public System.Collections.Generic.Dictionary ConditionErrorCodes { get => throw null; } - public bool EnableDeclarativeValidation { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ErrorCodeMessages { get => throw null; } - public System.Func ErrorResponseFilter { get => throw null; set => throw null; } - public virtual string GetRequestErrorBody(object request) => throw null; - public string Id { get => throw null; set => throw null; } - public bool ImplicitlyValidateChildProperties { get => throw null; set => throw null; } - public void Register(ServiceStack.IAppHost appHost) => throw null; - public bool ScanAppHostAssemblies { get => throw null; set => throw null; } - public System.Collections.Generic.Dictionary ServiceRoutes { get => throw null; set => throw null; } - public bool TreatInfoAndWarningsAsErrors { get => throw null; set => throw null; } - public ValidationFeature() => throw null; - public ServiceStack.IValidationSource ValidationSource { get => throw null; set => throw null; } - } - - // Generated from `ServiceStack.Validation.ValidationFilters` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ValidationFilters - { - public static System.Threading.Tasks.Task RequestFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public static System.Threading.Tasks.Task RequestFilterAsyncIgnoreWarningsInfo(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public static System.Threading.Tasks.Task ResponseFilterAsync(ServiceStack.Web.IRequest req, ServiceStack.Web.IResponse res, object requestDto) => throw null; - public static ServiceStack.FluentValidation.Results.ValidationResult Validate(this ServiceStack.FluentValidation.IValidator validator, ServiceStack.Web.IRequest req, object requestDto) => throw null; - public static System.Threading.Tasks.Task ValidateAsync(this ServiceStack.FluentValidation.IValidator validator, ServiceStack.Web.IRequest req, object requestDto) => throw null; - } - - // Generated from `ServiceStack.Validation.ValidatorCache` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ValidatorCache - { - public static ServiceStack.FluentValidation.IValidator GetValidator(ServiceStack.Web.IRequest httpReq, System.Type type) => throw null; - } - - // Generated from `ServiceStack.Validation.ValidatorCache<>` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public class ValidatorCache - { - public static ServiceStack.FluentValidation.IValidator GetValidator(ServiceStack.Web.IRequest httpReq) => throw null; - public ValidatorCache() => throw null; - } - - } -} -namespace System -{ - namespace Runtime - { - namespace CompilerServices - { - /* Duplicate type 'IsReadOnlyAttribute' is not stubbed in this assembly 'ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null'. */ - - } - } - namespace Threading - { - // Generated from `System.Threading.ThreadExtensions` in `ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null` - public static class ThreadExtensions - { - public static void Abort(this System.Threading.Thread thread) => throw null; - public static void Interrupt(this System.Threading.Thread thread) => throw null; - public static bool Join(this System.Threading.Thread thread, System.TimeSpan timeSpan) => throw null; - } - - } -} diff --git a/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.csproj b/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.csproj deleted file mode 100644 index 1358797c51a..00000000000 --- a/csharp/ql/test/resources/stubs/ServiceStack/5.11.0/ServiceStack.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - - - - - - diff --git a/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.cs b/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.cs deleted file mode 100644 index ab0989ce694..00000000000 --- a/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.cs +++ /dev/null @@ -1,3168 +0,0 @@ -// This file contains auto-generated code. - -namespace System -{ - namespace Drawing - { - // Generated from `System.Drawing.Bitmap` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Bitmap : System.Drawing.Image - { - public Bitmap(string filename, bool useIcm) => throw null; - public Bitmap(string filename) => throw null; - public Bitmap(int width, int height, int stride, System.Drawing.Imaging.PixelFormat format, System.IntPtr scan0) => throw null; - public Bitmap(int width, int height, System.Drawing.Imaging.PixelFormat format) => throw null; - public Bitmap(int width, int height, System.Drawing.Graphics g) => throw null; - public Bitmap(int width, int height) => throw null; - public Bitmap(System.Type type, string resource) => throw null; - public Bitmap(System.IO.Stream stream, bool useIcm) => throw null; - public Bitmap(System.IO.Stream stream) => throw null; - public Bitmap(System.Drawing.Image original, int width, int height) => throw null; - public Bitmap(System.Drawing.Image original, System.Drawing.Size newSize) => throw null; - public Bitmap(System.Drawing.Image original) => throw null; - public System.Drawing.Bitmap Clone(System.Drawing.RectangleF rect, System.Drawing.Imaging.PixelFormat format) => throw null; - public System.Drawing.Bitmap Clone(System.Drawing.Rectangle rect, System.Drawing.Imaging.PixelFormat format) => throw null; - public static System.Drawing.Bitmap FromHicon(System.IntPtr hicon) => throw null; - public static System.Drawing.Bitmap FromResource(System.IntPtr hinstance, string bitmapName) => throw null; - public System.IntPtr GetHbitmap(System.Drawing.Color background) => throw null; - public System.IntPtr GetHbitmap() => throw null; - public System.IntPtr GetHicon() => throw null; - public System.Drawing.Color GetPixel(int x, int y) => throw null; - public System.Drawing.Imaging.BitmapData LockBits(System.Drawing.Rectangle rect, System.Drawing.Imaging.ImageLockMode flags, System.Drawing.Imaging.PixelFormat format, System.Drawing.Imaging.BitmapData bitmapData) => throw null; - public System.Drawing.Imaging.BitmapData LockBits(System.Drawing.Rectangle rect, System.Drawing.Imaging.ImageLockMode flags, System.Drawing.Imaging.PixelFormat format) => throw null; - public void MakeTransparent(System.Drawing.Color transparentColor) => throw null; - public void MakeTransparent() => throw null; - public void SetPixel(int x, int y, System.Drawing.Color color) => throw null; - public void SetResolution(float xDpi, float yDpi) => throw null; - public void UnlockBits(System.Drawing.Imaging.BitmapData bitmapdata) => throw null; - } - - // Generated from `System.Drawing.BitmapSuffixInSameAssemblyAttribute` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class BitmapSuffixInSameAssemblyAttribute : System.Attribute - { - public BitmapSuffixInSameAssemblyAttribute() => throw null; - } - - // Generated from `System.Drawing.BitmapSuffixInSatelliteAssemblyAttribute` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class BitmapSuffixInSatelliteAssemblyAttribute : System.Attribute - { - public BitmapSuffixInSatelliteAssemblyAttribute() => throw null; - } - - // Generated from `System.Drawing.Brush` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class Brush : System.MarshalByRefObject, System.IDisposable, System.ICloneable - { - protected Brush() => throw null; - public abstract object Clone(); - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - protected internal void SetNativeBrush(System.IntPtr brush) => throw null; - // ERR: Stub generator didn't handle member: ~Brush - } - - // Generated from `System.Drawing.Brushes` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class Brushes - { - public static System.Drawing.Brush AliceBlue { get => throw null; } - public static System.Drawing.Brush AntiqueWhite { get => throw null; } - public static System.Drawing.Brush Aqua { get => throw null; } - public static System.Drawing.Brush Aquamarine { get => throw null; } - public static System.Drawing.Brush Azure { get => throw null; } - public static System.Drawing.Brush Beige { get => throw null; } - public static System.Drawing.Brush Bisque { get => throw null; } - public static System.Drawing.Brush Black { get => throw null; } - public static System.Drawing.Brush BlanchedAlmond { get => throw null; } - public static System.Drawing.Brush Blue { get => throw null; } - public static System.Drawing.Brush BlueViolet { get => throw null; } - public static System.Drawing.Brush Brown { get => throw null; } - public static System.Drawing.Brush BurlyWood { get => throw null; } - public static System.Drawing.Brush CadetBlue { get => throw null; } - public static System.Drawing.Brush Chartreuse { get => throw null; } - public static System.Drawing.Brush Chocolate { get => throw null; } - public static System.Drawing.Brush Coral { get => throw null; } - public static System.Drawing.Brush CornflowerBlue { get => throw null; } - public static System.Drawing.Brush Cornsilk { get => throw null; } - public static System.Drawing.Brush Crimson { get => throw null; } - public static System.Drawing.Brush Cyan { get => throw null; } - public static System.Drawing.Brush DarkBlue { get => throw null; } - public static System.Drawing.Brush DarkCyan { get => throw null; } - public static System.Drawing.Brush DarkGoldenrod { get => throw null; } - public static System.Drawing.Brush DarkGray { get => throw null; } - public static System.Drawing.Brush DarkGreen { get => throw null; } - public static System.Drawing.Brush DarkKhaki { get => throw null; } - public static System.Drawing.Brush DarkMagenta { get => throw null; } - public static System.Drawing.Brush DarkOliveGreen { get => throw null; } - public static System.Drawing.Brush DarkOrange { get => throw null; } - public static System.Drawing.Brush DarkOrchid { get => throw null; } - public static System.Drawing.Brush DarkRed { get => throw null; } - public static System.Drawing.Brush DarkSalmon { get => throw null; } - public static System.Drawing.Brush DarkSeaGreen { get => throw null; } - public static System.Drawing.Brush DarkSlateBlue { get => throw null; } - public static System.Drawing.Brush DarkSlateGray { get => throw null; } - public static System.Drawing.Brush DarkTurquoise { get => throw null; } - public static System.Drawing.Brush DarkViolet { get => throw null; } - public static System.Drawing.Brush DeepPink { get => throw null; } - public static System.Drawing.Brush DeepSkyBlue { get => throw null; } - public static System.Drawing.Brush DimGray { get => throw null; } - public static System.Drawing.Brush DodgerBlue { get => throw null; } - public static System.Drawing.Brush Firebrick { get => throw null; } - public static System.Drawing.Brush FloralWhite { get => throw null; } - public static System.Drawing.Brush ForestGreen { get => throw null; } - public static System.Drawing.Brush Fuchsia { get => throw null; } - public static System.Drawing.Brush Gainsboro { get => throw null; } - public static System.Drawing.Brush GhostWhite { get => throw null; } - public static System.Drawing.Brush Gold { get => throw null; } - public static System.Drawing.Brush Goldenrod { get => throw null; } - public static System.Drawing.Brush Gray { get => throw null; } - public static System.Drawing.Brush Green { get => throw null; } - public static System.Drawing.Brush GreenYellow { get => throw null; } - public static System.Drawing.Brush Honeydew { get => throw null; } - public static System.Drawing.Brush HotPink { get => throw null; } - public static System.Drawing.Brush IndianRed { get => throw null; } - public static System.Drawing.Brush Indigo { get => throw null; } - public static System.Drawing.Brush Ivory { get => throw null; } - public static System.Drawing.Brush Khaki { get => throw null; } - public static System.Drawing.Brush Lavender { get => throw null; } - public static System.Drawing.Brush LavenderBlush { get => throw null; } - public static System.Drawing.Brush LawnGreen { get => throw null; } - public static System.Drawing.Brush LemonChiffon { get => throw null; } - public static System.Drawing.Brush LightBlue { get => throw null; } - public static System.Drawing.Brush LightCoral { get => throw null; } - public static System.Drawing.Brush LightCyan { get => throw null; } - public static System.Drawing.Brush LightGoldenrodYellow { get => throw null; } - public static System.Drawing.Brush LightGray { get => throw null; } - public static System.Drawing.Brush LightGreen { get => throw null; } - public static System.Drawing.Brush LightPink { get => throw null; } - public static System.Drawing.Brush LightSalmon { get => throw null; } - public static System.Drawing.Brush LightSeaGreen { get => throw null; } - public static System.Drawing.Brush LightSkyBlue { get => throw null; } - public static System.Drawing.Brush LightSlateGray { get => throw null; } - public static System.Drawing.Brush LightSteelBlue { get => throw null; } - public static System.Drawing.Brush LightYellow { get => throw null; } - public static System.Drawing.Brush Lime { get => throw null; } - public static System.Drawing.Brush LimeGreen { get => throw null; } - public static System.Drawing.Brush Linen { get => throw null; } - public static System.Drawing.Brush Magenta { get => throw null; } - public static System.Drawing.Brush Maroon { get => throw null; } - public static System.Drawing.Brush MediumAquamarine { get => throw null; } - public static System.Drawing.Brush MediumBlue { get => throw null; } - public static System.Drawing.Brush MediumOrchid { get => throw null; } - public static System.Drawing.Brush MediumPurple { get => throw null; } - public static System.Drawing.Brush MediumSeaGreen { get => throw null; } - public static System.Drawing.Brush MediumSlateBlue { get => throw null; } - public static System.Drawing.Brush MediumSpringGreen { get => throw null; } - public static System.Drawing.Brush MediumTurquoise { get => throw null; } - public static System.Drawing.Brush MediumVioletRed { get => throw null; } - public static System.Drawing.Brush MidnightBlue { get => throw null; } - public static System.Drawing.Brush MintCream { get => throw null; } - public static System.Drawing.Brush MistyRose { get => throw null; } - public static System.Drawing.Brush Moccasin { get => throw null; } - public static System.Drawing.Brush NavajoWhite { get => throw null; } - public static System.Drawing.Brush Navy { get => throw null; } - public static System.Drawing.Brush OldLace { get => throw null; } - public static System.Drawing.Brush Olive { get => throw null; } - public static System.Drawing.Brush OliveDrab { get => throw null; } - public static System.Drawing.Brush Orange { get => throw null; } - public static System.Drawing.Brush OrangeRed { get => throw null; } - public static System.Drawing.Brush Orchid { get => throw null; } - public static System.Drawing.Brush PaleGoldenrod { get => throw null; } - public static System.Drawing.Brush PaleGreen { get => throw null; } - public static System.Drawing.Brush PaleTurquoise { get => throw null; } - public static System.Drawing.Brush PaleVioletRed { get => throw null; } - public static System.Drawing.Brush PapayaWhip { get => throw null; } - public static System.Drawing.Brush PeachPuff { get => throw null; } - public static System.Drawing.Brush Peru { get => throw null; } - public static System.Drawing.Brush Pink { get => throw null; } - public static System.Drawing.Brush Plum { get => throw null; } - public static System.Drawing.Brush PowderBlue { get => throw null; } - public static System.Drawing.Brush Purple { get => throw null; } - public static System.Drawing.Brush Red { get => throw null; } - public static System.Drawing.Brush RosyBrown { get => throw null; } - public static System.Drawing.Brush RoyalBlue { get => throw null; } - public static System.Drawing.Brush SaddleBrown { get => throw null; } - public static System.Drawing.Brush Salmon { get => throw null; } - public static System.Drawing.Brush SandyBrown { get => throw null; } - public static System.Drawing.Brush SeaGreen { get => throw null; } - public static System.Drawing.Brush SeaShell { get => throw null; } - public static System.Drawing.Brush Sienna { get => throw null; } - public static System.Drawing.Brush Silver { get => throw null; } - public static System.Drawing.Brush SkyBlue { get => throw null; } - public static System.Drawing.Brush SlateBlue { get => throw null; } - public static System.Drawing.Brush SlateGray { get => throw null; } - public static System.Drawing.Brush Snow { get => throw null; } - public static System.Drawing.Brush SpringGreen { get => throw null; } - public static System.Drawing.Brush SteelBlue { get => throw null; } - public static System.Drawing.Brush Tan { get => throw null; } - public static System.Drawing.Brush Teal { get => throw null; } - public static System.Drawing.Brush Thistle { get => throw null; } - public static System.Drawing.Brush Tomato { get => throw null; } - public static System.Drawing.Brush Transparent { get => throw null; } - public static System.Drawing.Brush Turquoise { get => throw null; } - public static System.Drawing.Brush Violet { get => throw null; } - public static System.Drawing.Brush Wheat { get => throw null; } - public static System.Drawing.Brush White { get => throw null; } - public static System.Drawing.Brush WhiteSmoke { get => throw null; } - public static System.Drawing.Brush Yellow { get => throw null; } - public static System.Drawing.Brush YellowGreen { get => throw null; } - } - - // Generated from `System.Drawing.BufferedGraphics` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class BufferedGraphics : System.IDisposable - { - public void Dispose() => throw null; - public System.Drawing.Graphics Graphics { get => throw null; } - public void Render(System.IntPtr targetDC) => throw null; - public void Render(System.Drawing.Graphics target) => throw null; - public void Render() => throw null; - // ERR: Stub generator didn't handle member: ~BufferedGraphics - } - - // Generated from `System.Drawing.BufferedGraphicsContext` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class BufferedGraphicsContext : System.IDisposable - { - public System.Drawing.BufferedGraphics Allocate(System.IntPtr targetDC, System.Drawing.Rectangle targetRectangle) => throw null; - public System.Drawing.BufferedGraphics Allocate(System.Drawing.Graphics targetGraphics, System.Drawing.Rectangle targetRectangle) => throw null; - public BufferedGraphicsContext() => throw null; - public void Dispose() => throw null; - public void Invalidate() => throw null; - public System.Drawing.Size MaximumBuffer { get => throw null; set => throw null; } - // ERR: Stub generator didn't handle member: ~BufferedGraphicsContext - } - - // Generated from `System.Drawing.BufferedGraphicsManager` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class BufferedGraphicsManager - { - public static System.Drawing.BufferedGraphicsContext Current { get => throw null; } - } - - // Generated from `System.Drawing.CharacterRange` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public struct CharacterRange - { - public static bool operator !=(System.Drawing.CharacterRange cr1, System.Drawing.CharacterRange cr2) => throw null; - public static bool operator ==(System.Drawing.CharacterRange cr1, System.Drawing.CharacterRange cr2) => throw null; - public CharacterRange(int First, int Length) => throw null; - // Stub generator skipped constructor - public override bool Equals(object obj) => throw null; - public int First { get => throw null; set => throw null; } - public override int GetHashCode() => throw null; - public int Length { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.ContentAlignment` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum ContentAlignment - { - BottomCenter, - BottomLeft, - BottomRight, - MiddleCenter, - MiddleLeft, - MiddleRight, - TopCenter, - TopLeft, - TopRight, - } - - // Generated from `System.Drawing.CopyPixelOperation` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum CopyPixelOperation - { - Blackness, - CaptureBlt, - DestinationInvert, - MergeCopy, - MergePaint, - NoMirrorBitmap, - NotSourceCopy, - NotSourceErase, - PatCopy, - PatInvert, - PatPaint, - SourceAnd, - SourceCopy, - SourceErase, - SourceInvert, - SourcePaint, - Whiteness, - } - - // Generated from `System.Drawing.Font` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Font : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable, System.IDisposable, System.ICloneable - { - public bool Bold { get => throw null; } - public object Clone() => throw null; - public void Dispose() => throw null; - public override bool Equals(object obj) => throw null; - public Font(string familyName, float emSize, System.Drawing.GraphicsUnit unit) => throw null; - public Font(string familyName, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet, bool gdiVerticalFont) => throw null; - public Font(string familyName, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet) => throw null; - public Font(string familyName, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit) => throw null; - public Font(string familyName, float emSize, System.Drawing.FontStyle style) => throw null; - public Font(string familyName, float emSize) => throw null; - public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.GraphicsUnit unit) => throw null; - public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet, bool gdiVerticalFont) => throw null; - public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet) => throw null; - public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit) => throw null; - public Font(System.Drawing.FontFamily family, float emSize, System.Drawing.FontStyle style) => throw null; - public Font(System.Drawing.FontFamily family, float emSize) => throw null; - public Font(System.Drawing.Font prototype, System.Drawing.FontStyle newStyle) => throw null; - public System.Drawing.FontFamily FontFamily { get => throw null; } - public static System.Drawing.Font FromHdc(System.IntPtr hdc) => throw null; - public static System.Drawing.Font FromHfont(System.IntPtr hfont) => throw null; - public static System.Drawing.Font FromLogFont(object lf, System.IntPtr hdc) => throw null; - public static System.Drawing.Font FromLogFont(object lf) => throw null; - public System.Byte GdiCharSet { get => throw null; } - public bool GdiVerticalFont { get => throw null; } - public override int GetHashCode() => throw null; - public float GetHeight(float dpi) => throw null; - public float GetHeight(System.Drawing.Graphics graphics) => throw null; - public float GetHeight() => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null; - public int Height { get => throw null; } - public bool IsSystemFont { get => throw null; } - public bool Italic { get => throw null; } - public string Name { get => throw null; } - public string OriginalFontName { get => throw null; } - public float Size { get => throw null; } - public float SizeInPoints { get => throw null; } - public bool Strikeout { get => throw null; } - public System.Drawing.FontStyle Style { get => throw null; } - public string SystemFontName { get => throw null; } - public System.IntPtr ToHfont() => throw null; - public void ToLogFont(object logFont, System.Drawing.Graphics graphics) => throw null; - public void ToLogFont(object logFont) => throw null; - public override string ToString() => throw null; - public bool Underline { get => throw null; } - public System.Drawing.GraphicsUnit Unit { get => throw null; } - // ERR: Stub generator didn't handle member: ~Font - } - - // Generated from `System.Drawing.FontFamily` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class FontFamily : System.MarshalByRefObject, System.IDisposable - { - public void Dispose() => throw null; - public override bool Equals(object obj) => throw null; - public static System.Drawing.FontFamily[] Families { get => throw null; } - public FontFamily(string name, System.Drawing.Text.FontCollection fontCollection) => throw null; - public FontFamily(string name) => throw null; - public FontFamily(System.Drawing.Text.GenericFontFamilies genericFamily) => throw null; - public static System.Drawing.FontFamily GenericMonospace { get => throw null; } - public static System.Drawing.FontFamily GenericSansSerif { get => throw null; } - public static System.Drawing.FontFamily GenericSerif { get => throw null; } - public int GetCellAscent(System.Drawing.FontStyle style) => throw null; - public int GetCellDescent(System.Drawing.FontStyle style) => throw null; - public int GetEmHeight(System.Drawing.FontStyle style) => throw null; - public static System.Drawing.FontFamily[] GetFamilies(System.Drawing.Graphics graphics) => throw null; - public override int GetHashCode() => throw null; - public int GetLineSpacing(System.Drawing.FontStyle style) => throw null; - public string GetName(int language) => throw null; - public bool IsStyleAvailable(System.Drawing.FontStyle style) => throw null; - public string Name { get => throw null; } - public override string ToString() => throw null; - // ERR: Stub generator didn't handle member: ~FontFamily - } - - // Generated from `System.Drawing.FontStyle` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum FontStyle - { - Bold, - Italic, - Regular, - Strikeout, - Underline, - } - - // Generated from `System.Drawing.Graphics` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Graphics : System.MarshalByRefObject, System.IDisposable, System.Drawing.IDeviceContext - { - public void AddMetafileComment(System.Byte[] data) => throw null; - public System.Drawing.Drawing2D.GraphicsContainer BeginContainer(System.Drawing.RectangleF dstrect, System.Drawing.RectangleF srcrect, System.Drawing.GraphicsUnit unit) => throw null; - public System.Drawing.Drawing2D.GraphicsContainer BeginContainer(System.Drawing.Rectangle dstrect, System.Drawing.Rectangle srcrect, System.Drawing.GraphicsUnit unit) => throw null; - public System.Drawing.Drawing2D.GraphicsContainer BeginContainer() => throw null; - public void Clear(System.Drawing.Color color) => throw null; - public System.Drawing.Region Clip { get => throw null; set => throw null; } - public System.Drawing.RectangleF ClipBounds { get => throw null; } - public System.Drawing.Drawing2D.CompositingMode CompositingMode { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.CompositingQuality CompositingQuality { get => throw null; set => throw null; } - public void CopyFromScreen(int sourceX, int sourceY, int destinationX, int destinationY, System.Drawing.Size blockRegionSize, System.Drawing.CopyPixelOperation copyPixelOperation) => throw null; - public void CopyFromScreen(int sourceX, int sourceY, int destinationX, int destinationY, System.Drawing.Size blockRegionSize) => throw null; - public void CopyFromScreen(System.Drawing.Point upperLeftSource, System.Drawing.Point upperLeftDestination, System.Drawing.Size blockRegionSize, System.Drawing.CopyPixelOperation copyPixelOperation) => throw null; - public void CopyFromScreen(System.Drawing.Point upperLeftSource, System.Drawing.Point upperLeftDestination, System.Drawing.Size blockRegionSize) => throw null; - public void Dispose() => throw null; - public float DpiX { get => throw null; } - public float DpiY { get => throw null; } - public void DrawArc(System.Drawing.Pen pen, int x, int y, int width, int height, int startAngle, int sweepAngle) => throw null; - public void DrawArc(System.Drawing.Pen pen, float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; - public void DrawArc(System.Drawing.Pen pen, System.Drawing.RectangleF rect, float startAngle, float sweepAngle) => throw null; - public void DrawArc(System.Drawing.Pen pen, System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; - public void DrawBezier(System.Drawing.Pen pen, float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4) => throw null; - public void DrawBezier(System.Drawing.Pen pen, System.Drawing.PointF pt1, System.Drawing.PointF pt2, System.Drawing.PointF pt3, System.Drawing.PointF pt4) => throw null; - public void DrawBezier(System.Drawing.Pen pen, System.Drawing.Point pt1, System.Drawing.Point pt2, System.Drawing.Point pt3, System.Drawing.Point pt4) => throw null; - public void DrawBeziers(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; - public void DrawBeziers(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; - public void DrawClosedCurve(System.Drawing.Pen pen, System.Drawing.Point[] points, float tension, System.Drawing.Drawing2D.FillMode fillmode) => throw null; - public void DrawClosedCurve(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; - public void DrawClosedCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points, float tension, System.Drawing.Drawing2D.FillMode fillmode) => throw null; - public void DrawClosedCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; - public void DrawCurve(System.Drawing.Pen pen, System.Drawing.Point[] points, int offset, int numberOfSegments, float tension) => throw null; - public void DrawCurve(System.Drawing.Pen pen, System.Drawing.Point[] points, float tension) => throw null; - public void DrawCurve(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; - public void DrawCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points, int offset, int numberOfSegments, float tension) => throw null; - public void DrawCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points, int offset, int numberOfSegments) => throw null; - public void DrawCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points, float tension) => throw null; - public void DrawCurve(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; - public void DrawEllipse(System.Drawing.Pen pen, int x, int y, int width, int height) => throw null; - public void DrawEllipse(System.Drawing.Pen pen, float x, float y, float width, float height) => throw null; - public void DrawEllipse(System.Drawing.Pen pen, System.Drawing.RectangleF rect) => throw null; - public void DrawEllipse(System.Drawing.Pen pen, System.Drawing.Rectangle rect) => throw null; - public void DrawIcon(System.Drawing.Icon icon, int x, int y) => throw null; - public void DrawIcon(System.Drawing.Icon icon, System.Drawing.Rectangle targetRect) => throw null; - public void DrawIconUnstretched(System.Drawing.Icon icon, System.Drawing.Rectangle targetRect) => throw null; - public void DrawImage(System.Drawing.Image image, int x, int y, int width, int height) => throw null; - public void DrawImage(System.Drawing.Image image, int x, int y, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; - public void DrawImage(System.Drawing.Image image, int x, int y) => throw null; - public void DrawImage(System.Drawing.Image image, float x, float y, float width, float height) => throw null; - public void DrawImage(System.Drawing.Image image, float x, float y, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; - public void DrawImage(System.Drawing.Image image, float x, float y) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.RectangleF rect) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.RectangleF destRect, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle rect) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs, System.Drawing.Graphics.DrawImageAbort callback, System.IntPtr callbackData) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs, System.Drawing.Graphics.DrawImageAbort callback, System.IntPtr callbackData) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs, System.Drawing.Graphics.DrawImageAbort callback) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback, int callbackData) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback, int callbackData) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.PointF point) => throw null; - public void DrawImage(System.Drawing.Image image, System.Drawing.Point point) => throw null; - // Generated from `System.Drawing.Graphics+DrawImageAbort` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate bool DrawImageAbort(System.IntPtr callbackdata); - - - public void DrawImageUnscaled(System.Drawing.Image image, int x, int y, int width, int height) => throw null; - public void DrawImageUnscaled(System.Drawing.Image image, int x, int y) => throw null; - public void DrawImageUnscaled(System.Drawing.Image image, System.Drawing.Rectangle rect) => throw null; - public void DrawImageUnscaled(System.Drawing.Image image, System.Drawing.Point point) => throw null; - public void DrawImageUnscaledAndClipped(System.Drawing.Image image, System.Drawing.Rectangle rect) => throw null; - public void DrawLine(System.Drawing.Pen pen, int x1, int y1, int x2, int y2) => throw null; - public void DrawLine(System.Drawing.Pen pen, float x1, float y1, float x2, float y2) => throw null; - public void DrawLine(System.Drawing.Pen pen, System.Drawing.PointF pt1, System.Drawing.PointF pt2) => throw null; - public void DrawLine(System.Drawing.Pen pen, System.Drawing.Point pt1, System.Drawing.Point pt2) => throw null; - public void DrawLines(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; - public void DrawLines(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; - public void DrawPath(System.Drawing.Pen pen, System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public void DrawPie(System.Drawing.Pen pen, int x, int y, int width, int height, int startAngle, int sweepAngle) => throw null; - public void DrawPie(System.Drawing.Pen pen, float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; - public void DrawPie(System.Drawing.Pen pen, System.Drawing.RectangleF rect, float startAngle, float sweepAngle) => throw null; - public void DrawPie(System.Drawing.Pen pen, System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; - public void DrawPolygon(System.Drawing.Pen pen, System.Drawing.Point[] points) => throw null; - public void DrawPolygon(System.Drawing.Pen pen, System.Drawing.PointF[] points) => throw null; - public void DrawRectangle(System.Drawing.Pen pen, int x, int y, int width, int height) => throw null; - public void DrawRectangle(System.Drawing.Pen pen, float x, float y, float width, float height) => throw null; - public void DrawRectangle(System.Drawing.Pen pen, System.Drawing.Rectangle rect) => throw null; - public void DrawRectangles(System.Drawing.Pen pen, System.Drawing.Rectangle[] rects) => throw null; - public void DrawRectangles(System.Drawing.Pen pen, System.Drawing.RectangleF[] rects) => throw null; - public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, float x, float y, System.Drawing.StringFormat format) => throw null; - public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, float x, float y) => throw null; - public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, System.Drawing.RectangleF layoutRectangle, System.Drawing.StringFormat format) => throw null; - public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, System.Drawing.RectangleF layoutRectangle) => throw null; - public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, System.Drawing.PointF point, System.Drawing.StringFormat format) => throw null; - public void DrawString(string s, System.Drawing.Font font, System.Drawing.Brush brush, System.Drawing.PointF point) => throw null; - public void EndContainer(System.Drawing.Drawing2D.GraphicsContainer container) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.RectangleF destRect, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Rectangle destRect, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF[] destPoints, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.PointF destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit unit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback, System.IntPtr callbackData) => throw null; - public void EnumerateMetafile(System.Drawing.Imaging.Metafile metafile, System.Drawing.Point destPoint, System.Drawing.Graphics.EnumerateMetafileProc callback) => throw null; - // Generated from `System.Drawing.Graphics+EnumerateMetafileProc` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate bool EnumerateMetafileProc(System.Drawing.Imaging.EmfPlusRecordType recordType, int flags, int dataSize, System.IntPtr data, System.Drawing.Imaging.PlayRecordCallback callbackData); - - - public void ExcludeClip(System.Drawing.Region region) => throw null; - public void ExcludeClip(System.Drawing.Rectangle rect) => throw null; - public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.Point[] points, System.Drawing.Drawing2D.FillMode fillmode, float tension) => throw null; - public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.Point[] points, System.Drawing.Drawing2D.FillMode fillmode) => throw null; - public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.Point[] points) => throw null; - public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.PointF[] points, System.Drawing.Drawing2D.FillMode fillmode, float tension) => throw null; - public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.PointF[] points, System.Drawing.Drawing2D.FillMode fillmode) => throw null; - public void FillClosedCurve(System.Drawing.Brush brush, System.Drawing.PointF[] points) => throw null; - public void FillEllipse(System.Drawing.Brush brush, int x, int y, int width, int height) => throw null; - public void FillEllipse(System.Drawing.Brush brush, float x, float y, float width, float height) => throw null; - public void FillEllipse(System.Drawing.Brush brush, System.Drawing.RectangleF rect) => throw null; - public void FillEllipse(System.Drawing.Brush brush, System.Drawing.Rectangle rect) => throw null; - public void FillPath(System.Drawing.Brush brush, System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public void FillPie(System.Drawing.Brush brush, int x, int y, int width, int height, int startAngle, int sweepAngle) => throw null; - public void FillPie(System.Drawing.Brush brush, float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; - public void FillPie(System.Drawing.Brush brush, System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; - public void FillPolygon(System.Drawing.Brush brush, System.Drawing.Point[] points, System.Drawing.Drawing2D.FillMode fillMode) => throw null; - public void FillPolygon(System.Drawing.Brush brush, System.Drawing.Point[] points) => throw null; - public void FillPolygon(System.Drawing.Brush brush, System.Drawing.PointF[] points, System.Drawing.Drawing2D.FillMode fillMode) => throw null; - public void FillPolygon(System.Drawing.Brush brush, System.Drawing.PointF[] points) => throw null; - public void FillRectangle(System.Drawing.Brush brush, int x, int y, int width, int height) => throw null; - public void FillRectangle(System.Drawing.Brush brush, float x, float y, float width, float height) => throw null; - public void FillRectangle(System.Drawing.Brush brush, System.Drawing.RectangleF rect) => throw null; - public void FillRectangle(System.Drawing.Brush brush, System.Drawing.Rectangle rect) => throw null; - public void FillRectangles(System.Drawing.Brush brush, System.Drawing.Rectangle[] rects) => throw null; - public void FillRectangles(System.Drawing.Brush brush, System.Drawing.RectangleF[] rects) => throw null; - public void FillRegion(System.Drawing.Brush brush, System.Drawing.Region region) => throw null; - public void Flush(System.Drawing.Drawing2D.FlushIntention intention) => throw null; - public void Flush() => throw null; - public static System.Drawing.Graphics FromHdc(System.IntPtr hdc, System.IntPtr hdevice) => throw null; - public static System.Drawing.Graphics FromHdc(System.IntPtr hdc) => throw null; - public static System.Drawing.Graphics FromHdcInternal(System.IntPtr hdc) => throw null; - public static System.Drawing.Graphics FromHwnd(System.IntPtr hwnd) => throw null; - public static System.Drawing.Graphics FromHwndInternal(System.IntPtr hwnd) => throw null; - public static System.Drawing.Graphics FromImage(System.Drawing.Image image) => throw null; - public object GetContextInfo() => throw null; - public static System.IntPtr GetHalftonePalette() => throw null; - public System.IntPtr GetHdc() => throw null; - public System.Drawing.Color GetNearestColor(System.Drawing.Color color) => throw null; - public System.Drawing.Drawing2D.InterpolationMode InterpolationMode { get => throw null; set => throw null; } - public void IntersectClip(System.Drawing.Region region) => throw null; - public void IntersectClip(System.Drawing.RectangleF rect) => throw null; - public void IntersectClip(System.Drawing.Rectangle rect) => throw null; - public bool IsClipEmpty { get => throw null; } - public bool IsVisible(int x, int y, int width, int height) => throw null; - public bool IsVisible(int x, int y) => throw null; - public bool IsVisible(float x, float y, float width, float height) => throw null; - public bool IsVisible(float x, float y) => throw null; - public bool IsVisible(System.Drawing.RectangleF rect) => throw null; - public bool IsVisible(System.Drawing.Rectangle rect) => throw null; - public bool IsVisible(System.Drawing.PointF point) => throw null; - public bool IsVisible(System.Drawing.Point point) => throw null; - public bool IsVisibleClipEmpty { get => throw null; } - public System.Drawing.Region[] MeasureCharacterRanges(string text, System.Drawing.Font font, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat stringFormat) => throw null; - public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, int width, System.Drawing.StringFormat format) => throw null; - public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, int width) => throw null; - public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat stringFormat, out int charactersFitted, out int linesFilled) => throw null; - public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat stringFormat) => throw null; - public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea) => throw null; - public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font, System.Drawing.PointF origin, System.Drawing.StringFormat stringFormat) => throw null; - public System.Drawing.SizeF MeasureString(string text, System.Drawing.Font font) => throw null; - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public float PageScale { get => throw null; set => throw null; } - public System.Drawing.GraphicsUnit PageUnit { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.PixelOffsetMode PixelOffsetMode { get => throw null; set => throw null; } - public void ReleaseHdc(System.IntPtr hdc) => throw null; - public void ReleaseHdc() => throw null; - public void ReleaseHdcInternal(System.IntPtr hdc) => throw null; - public System.Drawing.Point RenderingOrigin { get => throw null; set => throw null; } - public void ResetClip() => throw null; - public void ResetTransform() => throw null; - public void Restore(System.Drawing.Drawing2D.GraphicsState gstate) => throw null; - public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void RotateTransform(float angle) => throw null; - public System.Drawing.Drawing2D.GraphicsState Save() => throw null; - public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void ScaleTransform(float sx, float sy) => throw null; - public void SetClip(System.Drawing.Region region, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; - public void SetClip(System.Drawing.RectangleF rect, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; - public void SetClip(System.Drawing.RectangleF rect) => throw null; - public void SetClip(System.Drawing.Rectangle rect, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; - public void SetClip(System.Drawing.Rectangle rect) => throw null; - public void SetClip(System.Drawing.Graphics g, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; - public void SetClip(System.Drawing.Graphics g) => throw null; - public void SetClip(System.Drawing.Drawing2D.GraphicsPath path, System.Drawing.Drawing2D.CombineMode combineMode) => throw null; - public void SetClip(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public System.Drawing.Drawing2D.SmoothingMode SmoothingMode { get => throw null; set => throw null; } - public int TextContrast { get => throw null; set => throw null; } - public System.Drawing.Text.TextRenderingHint TextRenderingHint { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } - public void TransformPoints(System.Drawing.Drawing2D.CoordinateSpace destSpace, System.Drawing.Drawing2D.CoordinateSpace srcSpace, System.Drawing.Point[] pts) => throw null; - public void TransformPoints(System.Drawing.Drawing2D.CoordinateSpace destSpace, System.Drawing.Drawing2D.CoordinateSpace srcSpace, System.Drawing.PointF[] pts) => throw null; - public void TranslateClip(int dx, int dy) => throw null; - public void TranslateClip(float dx, float dy) => throw null; - public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void TranslateTransform(float dx, float dy) => throw null; - public System.Drawing.RectangleF VisibleClipBounds { get => throw null; } - // ERR: Stub generator didn't handle member: ~Graphics - } - - // Generated from `System.Drawing.GraphicsUnit` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum GraphicsUnit - { - Display, - Document, - Inch, - Millimeter, - Pixel, - Point, - World, - } - - // Generated from `System.Drawing.IDeviceContext` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public interface IDeviceContext : System.IDisposable - { - System.IntPtr GetHdc(); - void ReleaseHdc(); - } - - // Generated from `System.Drawing.Icon` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Icon : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable, System.IDisposable, System.ICloneable - { - public object Clone() => throw null; - public void Dispose() => throw null; - public static System.Drawing.Icon ExtractAssociatedIcon(string filePath) => throw null; - public static System.Drawing.Icon FromHandle(System.IntPtr handle) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public System.IntPtr Handle { get => throw null; } - public int Height { get => throw null; } - public Icon(string fileName, int width, int height) => throw null; - public Icon(string fileName, System.Drawing.Size size) => throw null; - public Icon(string fileName) => throw null; - public Icon(System.Type type, string resource) => throw null; - public Icon(System.IO.Stream stream, int width, int height) => throw null; - public Icon(System.IO.Stream stream, System.Drawing.Size size) => throw null; - public Icon(System.IO.Stream stream) => throw null; - public Icon(System.Drawing.Icon original, int width, int height) => throw null; - public Icon(System.Drawing.Icon original, System.Drawing.Size size) => throw null; - public void Save(System.IO.Stream outputStream) => throw null; - public System.Drawing.Size Size { get => throw null; } - public System.Drawing.Bitmap ToBitmap() => throw null; - public override string ToString() => throw null; - public int Width { get => throw null; } - // ERR: Stub generator didn't handle member: ~Icon - } - - // Generated from `System.Drawing.Image` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class Image : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable, System.IDisposable, System.ICloneable - { - public object Clone() => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public int Flags { get => throw null; } - public System.Guid[] FrameDimensionsList { get => throw null; } - public static System.Drawing.Image FromFile(string filename, bool useEmbeddedColorManagement) => throw null; - public static System.Drawing.Image FromFile(string filename) => throw null; - public static System.Drawing.Bitmap FromHbitmap(System.IntPtr hbitmap, System.IntPtr hpalette) => throw null; - public static System.Drawing.Bitmap FromHbitmap(System.IntPtr hbitmap) => throw null; - public static System.Drawing.Image FromStream(System.IO.Stream stream, bool useEmbeddedColorManagement, bool validateImageData) => throw null; - public static System.Drawing.Image FromStream(System.IO.Stream stream, bool useEmbeddedColorManagement) => throw null; - public static System.Drawing.Image FromStream(System.IO.Stream stream) => throw null; - public System.Drawing.RectangleF GetBounds(ref System.Drawing.GraphicsUnit pageUnit) => throw null; - public System.Drawing.Imaging.EncoderParameters GetEncoderParameterList(System.Guid encoder) => throw null; - public int GetFrameCount(System.Drawing.Imaging.FrameDimension dimension) => throw null; - void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public static int GetPixelFormatSize(System.Drawing.Imaging.PixelFormat pixfmt) => throw null; - public System.Drawing.Imaging.PropertyItem GetPropertyItem(int propid) => throw null; - public System.Drawing.Image GetThumbnailImage(int thumbWidth, int thumbHeight, System.Drawing.Image.GetThumbnailImageAbort callback, System.IntPtr callbackData) => throw null; - // Generated from `System.Drawing.Image+GetThumbnailImageAbort` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate bool GetThumbnailImageAbort(); - - - public int Height { get => throw null; } - public float HorizontalResolution { get => throw null; } - internal Image() => throw null; - public static bool IsAlphaPixelFormat(System.Drawing.Imaging.PixelFormat pixfmt) => throw null; - public static bool IsCanonicalPixelFormat(System.Drawing.Imaging.PixelFormat pixfmt) => throw null; - public static bool IsExtendedPixelFormat(System.Drawing.Imaging.PixelFormat pixfmt) => throw null; - public System.Drawing.Imaging.ColorPalette Palette { get => throw null; set => throw null; } - public System.Drawing.SizeF PhysicalDimension { get => throw null; } - public System.Drawing.Imaging.PixelFormat PixelFormat { get => throw null; } - public int[] PropertyIdList { get => throw null; } - public System.Drawing.Imaging.PropertyItem[] PropertyItems { get => throw null; } - public System.Drawing.Imaging.ImageFormat RawFormat { get => throw null; } - public void RemovePropertyItem(int propid) => throw null; - public void RotateFlip(System.Drawing.RotateFlipType rotateFlipType) => throw null; - public void Save(string filename, System.Drawing.Imaging.ImageFormat format) => throw null; - public void Save(string filename, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams) => throw null; - public void Save(string filename) => throw null; - public void Save(System.IO.Stream stream, System.Drawing.Imaging.ImageFormat format) => throw null; - public void Save(System.IO.Stream stream, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams) => throw null; - public void SaveAdd(System.Drawing.Imaging.EncoderParameters encoderParams) => throw null; - public void SaveAdd(System.Drawing.Image image, System.Drawing.Imaging.EncoderParameters encoderParams) => throw null; - public int SelectActiveFrame(System.Drawing.Imaging.FrameDimension dimension, int frameIndex) => throw null; - public void SetPropertyItem(System.Drawing.Imaging.PropertyItem propitem) => throw null; - public System.Drawing.Size Size { get => throw null; } - public object Tag { get => throw null; set => throw null; } - public float VerticalResolution { get => throw null; } - public int Width { get => throw null; } - // ERR: Stub generator didn't handle member: ~Image - } - - // Generated from `System.Drawing.ImageAnimator` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ImageAnimator - { - public static void Animate(System.Drawing.Image image, System.EventHandler onFrameChangedHandler) => throw null; - public static bool CanAnimate(System.Drawing.Image image) => throw null; - public static void StopAnimate(System.Drawing.Image image, System.EventHandler onFrameChangedHandler) => throw null; - public static void UpdateFrames(System.Drawing.Image image) => throw null; - public static void UpdateFrames() => throw null; - } - - // Generated from `System.Drawing.Pen` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Pen : System.MarshalByRefObject, System.IDisposable, System.ICloneable - { - public System.Drawing.Drawing2D.PenAlignment Alignment { get => throw null; set => throw null; } - public System.Drawing.Brush Brush { get => throw null; set => throw null; } - public object Clone() => throw null; - public System.Drawing.Color Color { get => throw null; set => throw null; } - public float[] CompoundArray { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.CustomLineCap CustomEndCap { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.CustomLineCap CustomStartCap { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.DashCap DashCap { get => throw null; set => throw null; } - public float DashOffset { get => throw null; set => throw null; } - public float[] DashPattern { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.DashStyle DashStyle { get => throw null; set => throw null; } - public void Dispose() => throw null; - public System.Drawing.Drawing2D.LineCap EndCap { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.LineJoin LineJoin { get => throw null; set => throw null; } - public float MiterLimit { get => throw null; set => throw null; } - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public Pen(System.Drawing.Color color, float width) => throw null; - public Pen(System.Drawing.Color color) => throw null; - public Pen(System.Drawing.Brush brush, float width) => throw null; - public Pen(System.Drawing.Brush brush) => throw null; - public System.Drawing.Drawing2D.PenType PenType { get => throw null; } - public void ResetTransform() => throw null; - public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void RotateTransform(float angle) => throw null; - public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void ScaleTransform(float sx, float sy) => throw null; - public void SetLineCap(System.Drawing.Drawing2D.LineCap startCap, System.Drawing.Drawing2D.LineCap endCap, System.Drawing.Drawing2D.DashCap dashCap) => throw null; - public System.Drawing.Drawing2D.LineCap StartCap { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } - public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void TranslateTransform(float dx, float dy) => throw null; - public float Width { get => throw null; set => throw null; } - // ERR: Stub generator didn't handle member: ~Pen - } - - // Generated from `System.Drawing.Pens` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class Pens - { - public static System.Drawing.Pen AliceBlue { get => throw null; } - public static System.Drawing.Pen AntiqueWhite { get => throw null; } - public static System.Drawing.Pen Aqua { get => throw null; } - public static System.Drawing.Pen Aquamarine { get => throw null; } - public static System.Drawing.Pen Azure { get => throw null; } - public static System.Drawing.Pen Beige { get => throw null; } - public static System.Drawing.Pen Bisque { get => throw null; } - public static System.Drawing.Pen Black { get => throw null; } - public static System.Drawing.Pen BlanchedAlmond { get => throw null; } - public static System.Drawing.Pen Blue { get => throw null; } - public static System.Drawing.Pen BlueViolet { get => throw null; } - public static System.Drawing.Pen Brown { get => throw null; } - public static System.Drawing.Pen BurlyWood { get => throw null; } - public static System.Drawing.Pen CadetBlue { get => throw null; } - public static System.Drawing.Pen Chartreuse { get => throw null; } - public static System.Drawing.Pen Chocolate { get => throw null; } - public static System.Drawing.Pen Coral { get => throw null; } - public static System.Drawing.Pen CornflowerBlue { get => throw null; } - public static System.Drawing.Pen Cornsilk { get => throw null; } - public static System.Drawing.Pen Crimson { get => throw null; } - public static System.Drawing.Pen Cyan { get => throw null; } - public static System.Drawing.Pen DarkBlue { get => throw null; } - public static System.Drawing.Pen DarkCyan { get => throw null; } - public static System.Drawing.Pen DarkGoldenrod { get => throw null; } - public static System.Drawing.Pen DarkGray { get => throw null; } - public static System.Drawing.Pen DarkGreen { get => throw null; } - public static System.Drawing.Pen DarkKhaki { get => throw null; } - public static System.Drawing.Pen DarkMagenta { get => throw null; } - public static System.Drawing.Pen DarkOliveGreen { get => throw null; } - public static System.Drawing.Pen DarkOrange { get => throw null; } - public static System.Drawing.Pen DarkOrchid { get => throw null; } - public static System.Drawing.Pen DarkRed { get => throw null; } - public static System.Drawing.Pen DarkSalmon { get => throw null; } - public static System.Drawing.Pen DarkSeaGreen { get => throw null; } - public static System.Drawing.Pen DarkSlateBlue { get => throw null; } - public static System.Drawing.Pen DarkSlateGray { get => throw null; } - public static System.Drawing.Pen DarkTurquoise { get => throw null; } - public static System.Drawing.Pen DarkViolet { get => throw null; } - public static System.Drawing.Pen DeepPink { get => throw null; } - public static System.Drawing.Pen DeepSkyBlue { get => throw null; } - public static System.Drawing.Pen DimGray { get => throw null; } - public static System.Drawing.Pen DodgerBlue { get => throw null; } - public static System.Drawing.Pen Firebrick { get => throw null; } - public static System.Drawing.Pen FloralWhite { get => throw null; } - public static System.Drawing.Pen ForestGreen { get => throw null; } - public static System.Drawing.Pen Fuchsia { get => throw null; } - public static System.Drawing.Pen Gainsboro { get => throw null; } - public static System.Drawing.Pen GhostWhite { get => throw null; } - public static System.Drawing.Pen Gold { get => throw null; } - public static System.Drawing.Pen Goldenrod { get => throw null; } - public static System.Drawing.Pen Gray { get => throw null; } - public static System.Drawing.Pen Green { get => throw null; } - public static System.Drawing.Pen GreenYellow { get => throw null; } - public static System.Drawing.Pen Honeydew { get => throw null; } - public static System.Drawing.Pen HotPink { get => throw null; } - public static System.Drawing.Pen IndianRed { get => throw null; } - public static System.Drawing.Pen Indigo { get => throw null; } - public static System.Drawing.Pen Ivory { get => throw null; } - public static System.Drawing.Pen Khaki { get => throw null; } - public static System.Drawing.Pen Lavender { get => throw null; } - public static System.Drawing.Pen LavenderBlush { get => throw null; } - public static System.Drawing.Pen LawnGreen { get => throw null; } - public static System.Drawing.Pen LemonChiffon { get => throw null; } - public static System.Drawing.Pen LightBlue { get => throw null; } - public static System.Drawing.Pen LightCoral { get => throw null; } - public static System.Drawing.Pen LightCyan { get => throw null; } - public static System.Drawing.Pen LightGoldenrodYellow { get => throw null; } - public static System.Drawing.Pen LightGray { get => throw null; } - public static System.Drawing.Pen LightGreen { get => throw null; } - public static System.Drawing.Pen LightPink { get => throw null; } - public static System.Drawing.Pen LightSalmon { get => throw null; } - public static System.Drawing.Pen LightSeaGreen { get => throw null; } - public static System.Drawing.Pen LightSkyBlue { get => throw null; } - public static System.Drawing.Pen LightSlateGray { get => throw null; } - public static System.Drawing.Pen LightSteelBlue { get => throw null; } - public static System.Drawing.Pen LightYellow { get => throw null; } - public static System.Drawing.Pen Lime { get => throw null; } - public static System.Drawing.Pen LimeGreen { get => throw null; } - public static System.Drawing.Pen Linen { get => throw null; } - public static System.Drawing.Pen Magenta { get => throw null; } - public static System.Drawing.Pen Maroon { get => throw null; } - public static System.Drawing.Pen MediumAquamarine { get => throw null; } - public static System.Drawing.Pen MediumBlue { get => throw null; } - public static System.Drawing.Pen MediumOrchid { get => throw null; } - public static System.Drawing.Pen MediumPurple { get => throw null; } - public static System.Drawing.Pen MediumSeaGreen { get => throw null; } - public static System.Drawing.Pen MediumSlateBlue { get => throw null; } - public static System.Drawing.Pen MediumSpringGreen { get => throw null; } - public static System.Drawing.Pen MediumTurquoise { get => throw null; } - public static System.Drawing.Pen MediumVioletRed { get => throw null; } - public static System.Drawing.Pen MidnightBlue { get => throw null; } - public static System.Drawing.Pen MintCream { get => throw null; } - public static System.Drawing.Pen MistyRose { get => throw null; } - public static System.Drawing.Pen Moccasin { get => throw null; } - public static System.Drawing.Pen NavajoWhite { get => throw null; } - public static System.Drawing.Pen Navy { get => throw null; } - public static System.Drawing.Pen OldLace { get => throw null; } - public static System.Drawing.Pen Olive { get => throw null; } - public static System.Drawing.Pen OliveDrab { get => throw null; } - public static System.Drawing.Pen Orange { get => throw null; } - public static System.Drawing.Pen OrangeRed { get => throw null; } - public static System.Drawing.Pen Orchid { get => throw null; } - public static System.Drawing.Pen PaleGoldenrod { get => throw null; } - public static System.Drawing.Pen PaleGreen { get => throw null; } - public static System.Drawing.Pen PaleTurquoise { get => throw null; } - public static System.Drawing.Pen PaleVioletRed { get => throw null; } - public static System.Drawing.Pen PapayaWhip { get => throw null; } - public static System.Drawing.Pen PeachPuff { get => throw null; } - public static System.Drawing.Pen Peru { get => throw null; } - public static System.Drawing.Pen Pink { get => throw null; } - public static System.Drawing.Pen Plum { get => throw null; } - public static System.Drawing.Pen PowderBlue { get => throw null; } - public static System.Drawing.Pen Purple { get => throw null; } - public static System.Drawing.Pen Red { get => throw null; } - public static System.Drawing.Pen RosyBrown { get => throw null; } - public static System.Drawing.Pen RoyalBlue { get => throw null; } - public static System.Drawing.Pen SaddleBrown { get => throw null; } - public static System.Drawing.Pen Salmon { get => throw null; } - public static System.Drawing.Pen SandyBrown { get => throw null; } - public static System.Drawing.Pen SeaGreen { get => throw null; } - public static System.Drawing.Pen SeaShell { get => throw null; } - public static System.Drawing.Pen Sienna { get => throw null; } - public static System.Drawing.Pen Silver { get => throw null; } - public static System.Drawing.Pen SkyBlue { get => throw null; } - public static System.Drawing.Pen SlateBlue { get => throw null; } - public static System.Drawing.Pen SlateGray { get => throw null; } - public static System.Drawing.Pen Snow { get => throw null; } - public static System.Drawing.Pen SpringGreen { get => throw null; } - public static System.Drawing.Pen SteelBlue { get => throw null; } - public static System.Drawing.Pen Tan { get => throw null; } - public static System.Drawing.Pen Teal { get => throw null; } - public static System.Drawing.Pen Thistle { get => throw null; } - public static System.Drawing.Pen Tomato { get => throw null; } - public static System.Drawing.Pen Transparent { get => throw null; } - public static System.Drawing.Pen Turquoise { get => throw null; } - public static System.Drawing.Pen Violet { get => throw null; } - public static System.Drawing.Pen Wheat { get => throw null; } - public static System.Drawing.Pen White { get => throw null; } - public static System.Drawing.Pen WhiteSmoke { get => throw null; } - public static System.Drawing.Pen Yellow { get => throw null; } - public static System.Drawing.Pen YellowGreen { get => throw null; } - } - - // Generated from `System.Drawing.Region` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Region : System.MarshalByRefObject, System.IDisposable - { - public System.Drawing.Region Clone() => throw null; - public void Complement(System.Drawing.Region region) => throw null; - public void Complement(System.Drawing.RectangleF rect) => throw null; - public void Complement(System.Drawing.Rectangle rect) => throw null; - public void Complement(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public void Dispose() => throw null; - public bool Equals(System.Drawing.Region region, System.Drawing.Graphics g) => throw null; - public void Exclude(System.Drawing.Region region) => throw null; - public void Exclude(System.Drawing.RectangleF rect) => throw null; - public void Exclude(System.Drawing.Rectangle rect) => throw null; - public void Exclude(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public static System.Drawing.Region FromHrgn(System.IntPtr hrgn) => throw null; - public System.Drawing.RectangleF GetBounds(System.Drawing.Graphics g) => throw null; - public System.IntPtr GetHrgn(System.Drawing.Graphics g) => throw null; - public System.Drawing.Drawing2D.RegionData GetRegionData() => throw null; - public System.Drawing.RectangleF[] GetRegionScans(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public void Intersect(System.Drawing.Region region) => throw null; - public void Intersect(System.Drawing.RectangleF rect) => throw null; - public void Intersect(System.Drawing.Rectangle rect) => throw null; - public void Intersect(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public bool IsEmpty(System.Drawing.Graphics g) => throw null; - public bool IsInfinite(System.Drawing.Graphics g) => throw null; - public bool IsVisible(int x, int y, int width, int height, System.Drawing.Graphics g) => throw null; - public bool IsVisible(int x, int y, int width, int height) => throw null; - public bool IsVisible(int x, int y, System.Drawing.Graphics g) => throw null; - public bool IsVisible(float x, float y, float width, float height, System.Drawing.Graphics g) => throw null; - public bool IsVisible(float x, float y, float width, float height) => throw null; - public bool IsVisible(float x, float y, System.Drawing.Graphics g) => throw null; - public bool IsVisible(float x, float y) => throw null; - public bool IsVisible(System.Drawing.RectangleF rect, System.Drawing.Graphics g) => throw null; - public bool IsVisible(System.Drawing.RectangleF rect) => throw null; - public bool IsVisible(System.Drawing.Rectangle rect, System.Drawing.Graphics g) => throw null; - public bool IsVisible(System.Drawing.Rectangle rect) => throw null; - public bool IsVisible(System.Drawing.PointF point, System.Drawing.Graphics g) => throw null; - public bool IsVisible(System.Drawing.PointF point) => throw null; - public bool IsVisible(System.Drawing.Point point, System.Drawing.Graphics g) => throw null; - public bool IsVisible(System.Drawing.Point point) => throw null; - public void MakeEmpty() => throw null; - public void MakeInfinite() => throw null; - public Region(System.Drawing.RectangleF rect) => throw null; - public Region(System.Drawing.Rectangle rect) => throw null; - public Region(System.Drawing.Drawing2D.RegionData rgnData) => throw null; - public Region(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public Region() => throw null; - public void ReleaseHrgn(System.IntPtr regionHandle) => throw null; - public void Transform(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public void Translate(int dx, int dy) => throw null; - public void Translate(float dx, float dy) => throw null; - public void Union(System.Drawing.Region region) => throw null; - public void Union(System.Drawing.RectangleF rect) => throw null; - public void Union(System.Drawing.Rectangle rect) => throw null; - public void Union(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public void Xor(System.Drawing.Region region) => throw null; - public void Xor(System.Drawing.RectangleF rect) => throw null; - public void Xor(System.Drawing.Rectangle rect) => throw null; - public void Xor(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - // ERR: Stub generator didn't handle member: ~Region - } - - // Generated from `System.Drawing.RotateFlipType` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum RotateFlipType - { - Rotate180FlipNone, - Rotate180FlipX, - Rotate180FlipXY, - Rotate180FlipY, - Rotate270FlipNone, - Rotate270FlipX, - Rotate270FlipXY, - Rotate270FlipY, - Rotate90FlipNone, - Rotate90FlipX, - Rotate90FlipXY, - Rotate90FlipY, - RotateNoneFlipNone, - RotateNoneFlipX, - RotateNoneFlipXY, - RotateNoneFlipY, - } - - // Generated from `System.Drawing.SolidBrush` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class SolidBrush : System.Drawing.Brush - { - public override object Clone() => throw null; - public System.Drawing.Color Color { get => throw null; set => throw null; } - protected override void Dispose(bool disposing) => throw null; - public SolidBrush(System.Drawing.Color color) => throw null; - } - - // Generated from `System.Drawing.StringAlignment` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum StringAlignment - { - Center, - Far, - Near, - } - - // Generated from `System.Drawing.StringDigitSubstitute` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum StringDigitSubstitute - { - National, - None, - Traditional, - User, - } - - // Generated from `System.Drawing.StringFormat` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StringFormat : System.MarshalByRefObject, System.IDisposable, System.ICloneable - { - public System.Drawing.StringAlignment Alignment { get => throw null; set => throw null; } - public object Clone() => throw null; - public int DigitSubstitutionLanguage { get => throw null; } - public System.Drawing.StringDigitSubstitute DigitSubstitutionMethod { get => throw null; } - public void Dispose() => throw null; - public System.Drawing.StringFormatFlags FormatFlags { get => throw null; set => throw null; } - public static System.Drawing.StringFormat GenericDefault { get => throw null; } - public static System.Drawing.StringFormat GenericTypographic { get => throw null; } - public float[] GetTabStops(out float firstTabOffset) => throw null; - public System.Drawing.Text.HotkeyPrefix HotkeyPrefix { get => throw null; set => throw null; } - public System.Drawing.StringAlignment LineAlignment { get => throw null; set => throw null; } - public void SetDigitSubstitution(int language, System.Drawing.StringDigitSubstitute substitute) => throw null; - public void SetMeasurableCharacterRanges(System.Drawing.CharacterRange[] ranges) => throw null; - public void SetTabStops(float firstTabOffset, float[] tabStops) => throw null; - public StringFormat(System.Drawing.StringFormatFlags options, int language) => throw null; - public StringFormat(System.Drawing.StringFormatFlags options) => throw null; - public StringFormat(System.Drawing.StringFormat format) => throw null; - public StringFormat() => throw null; - public override string ToString() => throw null; - public System.Drawing.StringTrimming Trimming { get => throw null; set => throw null; } - // ERR: Stub generator didn't handle member: ~StringFormat - } - - // Generated from `System.Drawing.StringFormatFlags` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum StringFormatFlags - { - DirectionRightToLeft, - DirectionVertical, - DisplayFormatControl, - FitBlackBox, - LineLimit, - MeasureTrailingSpaces, - NoClip, - NoFontFallback, - NoWrap, - } - - // Generated from `System.Drawing.StringTrimming` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum StringTrimming - { - Character, - EllipsisCharacter, - EllipsisPath, - EllipsisWord, - None, - Word, - } - - // Generated from `System.Drawing.StringUnit` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum StringUnit - { - Display, - Document, - Em, - Inch, - Millimeter, - Pixel, - Point, - World, - } - - // Generated from `System.Drawing.SystemBrushes` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class SystemBrushes - { - public static System.Drawing.Brush ActiveBorder { get => throw null; } - public static System.Drawing.Brush ActiveCaption { get => throw null; } - public static System.Drawing.Brush ActiveCaptionText { get => throw null; } - public static System.Drawing.Brush AppWorkspace { get => throw null; } - public static System.Drawing.Brush ButtonFace { get => throw null; } - public static System.Drawing.Brush ButtonHighlight { get => throw null; } - public static System.Drawing.Brush ButtonShadow { get => throw null; } - public static System.Drawing.Brush Control { get => throw null; } - public static System.Drawing.Brush ControlDark { get => throw null; } - public static System.Drawing.Brush ControlDarkDark { get => throw null; } - public static System.Drawing.Brush ControlLight { get => throw null; } - public static System.Drawing.Brush ControlLightLight { get => throw null; } - public static System.Drawing.Brush ControlText { get => throw null; } - public static System.Drawing.Brush Desktop { get => throw null; } - public static System.Drawing.Brush FromSystemColor(System.Drawing.Color c) => throw null; - public static System.Drawing.Brush GradientActiveCaption { get => throw null; } - public static System.Drawing.Brush GradientInactiveCaption { get => throw null; } - public static System.Drawing.Brush GrayText { get => throw null; } - public static System.Drawing.Brush Highlight { get => throw null; } - public static System.Drawing.Brush HighlightText { get => throw null; } - public static System.Drawing.Brush HotTrack { get => throw null; } - public static System.Drawing.Brush InactiveBorder { get => throw null; } - public static System.Drawing.Brush InactiveCaption { get => throw null; } - public static System.Drawing.Brush InactiveCaptionText { get => throw null; } - public static System.Drawing.Brush Info { get => throw null; } - public static System.Drawing.Brush InfoText { get => throw null; } - public static System.Drawing.Brush Menu { get => throw null; } - public static System.Drawing.Brush MenuBar { get => throw null; } - public static System.Drawing.Brush MenuHighlight { get => throw null; } - public static System.Drawing.Brush MenuText { get => throw null; } - public static System.Drawing.Brush ScrollBar { get => throw null; } - public static System.Drawing.Brush Window { get => throw null; } - public static System.Drawing.Brush WindowFrame { get => throw null; } - public static System.Drawing.Brush WindowText { get => throw null; } - } - - // Generated from `System.Drawing.SystemFonts` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class SystemFonts - { - public static System.Drawing.Font CaptionFont { get => throw null; } - public static System.Drawing.Font DefaultFont { get => throw null; } - public static System.Drawing.Font DialogFont { get => throw null; } - public static System.Drawing.Font GetFontByName(string systemFontName) => throw null; - public static System.Drawing.Font IconTitleFont { get => throw null; } - public static System.Drawing.Font MenuFont { get => throw null; } - public static System.Drawing.Font MessageBoxFont { get => throw null; } - public static System.Drawing.Font SmallCaptionFont { get => throw null; } - public static System.Drawing.Font StatusFont { get => throw null; } - } - - // Generated from `System.Drawing.SystemIcons` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class SystemIcons - { - public static System.Drawing.Icon Application { get => throw null; } - public static System.Drawing.Icon Asterisk { get => throw null; } - public static System.Drawing.Icon Error { get => throw null; } - public static System.Drawing.Icon Exclamation { get => throw null; } - public static System.Drawing.Icon Hand { get => throw null; } - public static System.Drawing.Icon Information { get => throw null; } - public static System.Drawing.Icon Question { get => throw null; } - public static System.Drawing.Icon Shield { get => throw null; } - public static System.Drawing.Icon Warning { get => throw null; } - public static System.Drawing.Icon WinLogo { get => throw null; } - } - - // Generated from `System.Drawing.SystemPens` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public static class SystemPens - { - public static System.Drawing.Pen ActiveBorder { get => throw null; } - public static System.Drawing.Pen ActiveCaption { get => throw null; } - public static System.Drawing.Pen ActiveCaptionText { get => throw null; } - public static System.Drawing.Pen AppWorkspace { get => throw null; } - public static System.Drawing.Pen ButtonFace { get => throw null; } - public static System.Drawing.Pen ButtonHighlight { get => throw null; } - public static System.Drawing.Pen ButtonShadow { get => throw null; } - public static System.Drawing.Pen Control { get => throw null; } - public static System.Drawing.Pen ControlDark { get => throw null; } - public static System.Drawing.Pen ControlDarkDark { get => throw null; } - public static System.Drawing.Pen ControlLight { get => throw null; } - public static System.Drawing.Pen ControlLightLight { get => throw null; } - public static System.Drawing.Pen ControlText { get => throw null; } - public static System.Drawing.Pen Desktop { get => throw null; } - public static System.Drawing.Pen FromSystemColor(System.Drawing.Color c) => throw null; - public static System.Drawing.Pen GradientActiveCaption { get => throw null; } - public static System.Drawing.Pen GradientInactiveCaption { get => throw null; } - public static System.Drawing.Pen GrayText { get => throw null; } - public static System.Drawing.Pen Highlight { get => throw null; } - public static System.Drawing.Pen HighlightText { get => throw null; } - public static System.Drawing.Pen HotTrack { get => throw null; } - public static System.Drawing.Pen InactiveBorder { get => throw null; } - public static System.Drawing.Pen InactiveCaption { get => throw null; } - public static System.Drawing.Pen InactiveCaptionText { get => throw null; } - public static System.Drawing.Pen Info { get => throw null; } - public static System.Drawing.Pen InfoText { get => throw null; } - public static System.Drawing.Pen Menu { get => throw null; } - public static System.Drawing.Pen MenuBar { get => throw null; } - public static System.Drawing.Pen MenuHighlight { get => throw null; } - public static System.Drawing.Pen MenuText { get => throw null; } - public static System.Drawing.Pen ScrollBar { get => throw null; } - public static System.Drawing.Pen Window { get => throw null; } - public static System.Drawing.Pen WindowFrame { get => throw null; } - public static System.Drawing.Pen WindowText { get => throw null; } - } - - // Generated from `System.Drawing.TextureBrush` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class TextureBrush : System.Drawing.Brush - { - public override object Clone() => throw null; - public System.Drawing.Image Image { get => throw null; } - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public void ResetTransform() => throw null; - public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void RotateTransform(float angle) => throw null; - public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void ScaleTransform(float sx, float sy) => throw null; - public TextureBrush(System.Drawing.Image image, System.Drawing.RectangleF dstRect, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public TextureBrush(System.Drawing.Image image, System.Drawing.RectangleF dstRect) => throw null; - public TextureBrush(System.Drawing.Image image, System.Drawing.Rectangle dstRect, System.Drawing.Imaging.ImageAttributes imageAttr) => throw null; - public TextureBrush(System.Drawing.Image image, System.Drawing.Rectangle dstRect) => throw null; - public TextureBrush(System.Drawing.Image image, System.Drawing.Drawing2D.WrapMode wrapMode, System.Drawing.RectangleF dstRect) => throw null; - public TextureBrush(System.Drawing.Image image, System.Drawing.Drawing2D.WrapMode wrapMode, System.Drawing.Rectangle dstRect) => throw null; - public TextureBrush(System.Drawing.Image image, System.Drawing.Drawing2D.WrapMode wrapMode) => throw null; - public TextureBrush(System.Drawing.Image bitmap) => throw null; - public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } - public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void TranslateTransform(float dx, float dy) => throw null; - public System.Drawing.Drawing2D.WrapMode WrapMode { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.ToolboxBitmapAttribute` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ToolboxBitmapAttribute : System.Attribute - { - public static System.Drawing.ToolboxBitmapAttribute Default; - public override bool Equals(object value) => throw null; - public override int GetHashCode() => throw null; - public System.Drawing.Image GetImage(object component, bool large) => throw null; - public System.Drawing.Image GetImage(object component) => throw null; - public System.Drawing.Image GetImage(System.Type type, string imgName, bool large) => throw null; - public System.Drawing.Image GetImage(System.Type type, bool large) => throw null; - public System.Drawing.Image GetImage(System.Type type) => throw null; - public static System.Drawing.Image GetImageFromResource(System.Type t, string imageName, bool large) => throw null; - public ToolboxBitmapAttribute(string imageFile) => throw null; - public ToolboxBitmapAttribute(System.Type t, string name) => throw null; - public ToolboxBitmapAttribute(System.Type t) => throw null; - } - - namespace Design - { - // Generated from `System.Drawing.Design.CategoryNameCollection` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class CategoryNameCollection : System.Collections.ReadOnlyCollectionBase - { - public CategoryNameCollection(string[] value) => throw null; - public CategoryNameCollection(System.Drawing.Design.CategoryNameCollection value) => throw null; - public bool Contains(string value) => throw null; - public void CopyTo(string[] array, int index) => throw null; - public int IndexOf(string value) => throw null; - public string this[int index] { get => throw null; } - } - - } - namespace Drawing2D - { - // Generated from `System.Drawing.Drawing2D.AdjustableArrowCap` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class AdjustableArrowCap : System.Drawing.Drawing2D.CustomLineCap - { - public AdjustableArrowCap(float width, float height, bool isFilled) : base(default(System.Drawing.Drawing2D.GraphicsPath), default(System.Drawing.Drawing2D.GraphicsPath)) => throw null; - public AdjustableArrowCap(float width, float height) : base(default(System.Drawing.Drawing2D.GraphicsPath), default(System.Drawing.Drawing2D.GraphicsPath)) => throw null; - public bool Filled { get => throw null; set => throw null; } - public float Height { get => throw null; set => throw null; } - public float MiddleInset { get => throw null; set => throw null; } - public float Width { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Drawing2D.Blend` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Blend - { - public Blend(int count) => throw null; - public Blend() => throw null; - public float[] Factors { get => throw null; set => throw null; } - public float[] Positions { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Drawing2D.ColorBlend` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ColorBlend - { - public ColorBlend(int count) => throw null; - public ColorBlend() => throw null; - public System.Drawing.Color[] Colors { get => throw null; set => throw null; } - public float[] Positions { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Drawing2D.CombineMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum CombineMode - { - Complement, - Exclude, - Intersect, - Replace, - Union, - Xor, - } - - // Generated from `System.Drawing.Drawing2D.CompositingMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum CompositingMode - { - SourceCopy, - SourceOver, - } - - // Generated from `System.Drawing.Drawing2D.CompositingQuality` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum CompositingQuality - { - AssumeLinear, - Default, - GammaCorrected, - HighQuality, - HighSpeed, - Invalid, - } - - // Generated from `System.Drawing.Drawing2D.CoordinateSpace` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum CoordinateSpace - { - Device, - Page, - World, - } - - // Generated from `System.Drawing.Drawing2D.CustomLineCap` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class CustomLineCap : System.MarshalByRefObject, System.IDisposable, System.ICloneable - { - public System.Drawing.Drawing2D.LineCap BaseCap { get => throw null; set => throw null; } - public float BaseInset { get => throw null; set => throw null; } - public object Clone() => throw null; - public CustomLineCap(System.Drawing.Drawing2D.GraphicsPath fillPath, System.Drawing.Drawing2D.GraphicsPath strokePath, System.Drawing.Drawing2D.LineCap baseCap, float baseInset) => throw null; - public CustomLineCap(System.Drawing.Drawing2D.GraphicsPath fillPath, System.Drawing.Drawing2D.GraphicsPath strokePath, System.Drawing.Drawing2D.LineCap baseCap) => throw null; - public CustomLineCap(System.Drawing.Drawing2D.GraphicsPath fillPath, System.Drawing.Drawing2D.GraphicsPath strokePath) => throw null; - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public void GetStrokeCaps(out System.Drawing.Drawing2D.LineCap startCap, out System.Drawing.Drawing2D.LineCap endCap) => throw null; - public void SetStrokeCaps(System.Drawing.Drawing2D.LineCap startCap, System.Drawing.Drawing2D.LineCap endCap) => throw null; - public System.Drawing.Drawing2D.LineJoin StrokeJoin { get => throw null; set => throw null; } - public float WidthScale { get => throw null; set => throw null; } - // ERR: Stub generator didn't handle member: ~CustomLineCap - } - - // Generated from `System.Drawing.Drawing2D.DashCap` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum DashCap - { - Flat, - Round, - Triangle, - } - - // Generated from `System.Drawing.Drawing2D.DashStyle` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum DashStyle - { - Custom, - Dash, - DashDot, - DashDotDot, - Dot, - Solid, - } - - // Generated from `System.Drawing.Drawing2D.FillMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum FillMode - { - Alternate, - Winding, - } - - // Generated from `System.Drawing.Drawing2D.FlushIntention` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum FlushIntention - { - Flush, - Sync, - } - - // Generated from `System.Drawing.Drawing2D.GraphicsContainer` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class GraphicsContainer : System.MarshalByRefObject - { - } - - // Generated from `System.Drawing.Drawing2D.GraphicsPath` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class GraphicsPath : System.MarshalByRefObject, System.IDisposable, System.ICloneable - { - public void AddArc(int x, int y, int width, int height, float startAngle, float sweepAngle) => throw null; - public void AddArc(float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; - public void AddArc(System.Drawing.RectangleF rect, float startAngle, float sweepAngle) => throw null; - public void AddArc(System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; - public void AddBezier(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) => throw null; - public void AddBezier(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4) => throw null; - public void AddBezier(System.Drawing.PointF pt1, System.Drawing.PointF pt2, System.Drawing.PointF pt3, System.Drawing.PointF pt4) => throw null; - public void AddBezier(System.Drawing.Point pt1, System.Drawing.Point pt2, System.Drawing.Point pt3, System.Drawing.Point pt4) => throw null; - public void AddBeziers(params System.Drawing.Point[] points) => throw null; - public void AddBeziers(System.Drawing.PointF[] points) => throw null; - public void AddClosedCurve(System.Drawing.Point[] points, float tension) => throw null; - public void AddClosedCurve(System.Drawing.Point[] points) => throw null; - public void AddClosedCurve(System.Drawing.PointF[] points, float tension) => throw null; - public void AddClosedCurve(System.Drawing.PointF[] points) => throw null; - public void AddCurve(System.Drawing.Point[] points, int offset, int numberOfSegments, float tension) => throw null; - public void AddCurve(System.Drawing.Point[] points, float tension) => throw null; - public void AddCurve(System.Drawing.Point[] points) => throw null; - public void AddCurve(System.Drawing.PointF[] points, int offset, int numberOfSegments, float tension) => throw null; - public void AddCurve(System.Drawing.PointF[] points, float tension) => throw null; - public void AddCurve(System.Drawing.PointF[] points) => throw null; - public void AddEllipse(int x, int y, int width, int height) => throw null; - public void AddEllipse(float x, float y, float width, float height) => throw null; - public void AddEllipse(System.Drawing.RectangleF rect) => throw null; - public void AddEllipse(System.Drawing.Rectangle rect) => throw null; - public void AddLine(int x1, int y1, int x2, int y2) => throw null; - public void AddLine(float x1, float y1, float x2, float y2) => throw null; - public void AddLine(System.Drawing.PointF pt1, System.Drawing.PointF pt2) => throw null; - public void AddLine(System.Drawing.Point pt1, System.Drawing.Point pt2) => throw null; - public void AddLines(System.Drawing.Point[] points) => throw null; - public void AddLines(System.Drawing.PointF[] points) => throw null; - public void AddPath(System.Drawing.Drawing2D.GraphicsPath addingPath, bool connect) => throw null; - public void AddPie(int x, int y, int width, int height, float startAngle, float sweepAngle) => throw null; - public void AddPie(float x, float y, float width, float height, float startAngle, float sweepAngle) => throw null; - public void AddPie(System.Drawing.Rectangle rect, float startAngle, float sweepAngle) => throw null; - public void AddPolygon(System.Drawing.Point[] points) => throw null; - public void AddPolygon(System.Drawing.PointF[] points) => throw null; - public void AddRectangle(System.Drawing.RectangleF rect) => throw null; - public void AddRectangle(System.Drawing.Rectangle rect) => throw null; - public void AddRectangles(System.Drawing.Rectangle[] rects) => throw null; - public void AddRectangles(System.Drawing.RectangleF[] rects) => throw null; - public void AddString(string s, System.Drawing.FontFamily family, int style, float emSize, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat format) => throw null; - public void AddString(string s, System.Drawing.FontFamily family, int style, float emSize, System.Drawing.Rectangle layoutRect, System.Drawing.StringFormat format) => throw null; - public void AddString(string s, System.Drawing.FontFamily family, int style, float emSize, System.Drawing.PointF origin, System.Drawing.StringFormat format) => throw null; - public void AddString(string s, System.Drawing.FontFamily family, int style, float emSize, System.Drawing.Point origin, System.Drawing.StringFormat format) => throw null; - public void ClearMarkers() => throw null; - public object Clone() => throw null; - public void CloseAllFigures() => throw null; - public void CloseFigure() => throw null; - public void Dispose() => throw null; - public System.Drawing.Drawing2D.FillMode FillMode { get => throw null; set => throw null; } - public void Flatten(System.Drawing.Drawing2D.Matrix matrix, float flatness) => throw null; - public void Flatten(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public void Flatten() => throw null; - public System.Drawing.RectangleF GetBounds(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Pen pen) => throw null; - public System.Drawing.RectangleF GetBounds(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public System.Drawing.RectangleF GetBounds() => throw null; - public System.Drawing.PointF GetLastPoint() => throw null; - public GraphicsPath(System.Drawing.Point[] pts, System.Byte[] types, System.Drawing.Drawing2D.FillMode fillMode) => throw null; - public GraphicsPath(System.Drawing.Point[] pts, System.Byte[] types) => throw null; - public GraphicsPath(System.Drawing.PointF[] pts, System.Byte[] types, System.Drawing.Drawing2D.FillMode fillMode) => throw null; - public GraphicsPath(System.Drawing.PointF[] pts, System.Byte[] types) => throw null; - public GraphicsPath(System.Drawing.Drawing2D.FillMode fillMode) => throw null; - public GraphicsPath() => throw null; - public bool IsOutlineVisible(int x, int y, System.Drawing.Pen pen, System.Drawing.Graphics graphics) => throw null; - public bool IsOutlineVisible(int x, int y, System.Drawing.Pen pen) => throw null; - public bool IsOutlineVisible(float x, float y, System.Drawing.Pen pen, System.Drawing.Graphics graphics) => throw null; - public bool IsOutlineVisible(float x, float y, System.Drawing.Pen pen) => throw null; - public bool IsOutlineVisible(System.Drawing.PointF pt, System.Drawing.Pen pen, System.Drawing.Graphics graphics) => throw null; - public bool IsOutlineVisible(System.Drawing.PointF point, System.Drawing.Pen pen) => throw null; - public bool IsOutlineVisible(System.Drawing.Point pt, System.Drawing.Pen pen, System.Drawing.Graphics graphics) => throw null; - public bool IsOutlineVisible(System.Drawing.Point point, System.Drawing.Pen pen) => throw null; - public bool IsVisible(int x, int y, System.Drawing.Graphics graphics) => throw null; - public bool IsVisible(int x, int y) => throw null; - public bool IsVisible(float x, float y, System.Drawing.Graphics graphics) => throw null; - public bool IsVisible(float x, float y) => throw null; - public bool IsVisible(System.Drawing.PointF pt, System.Drawing.Graphics graphics) => throw null; - public bool IsVisible(System.Drawing.PointF point) => throw null; - public bool IsVisible(System.Drawing.Point pt, System.Drawing.Graphics graphics) => throw null; - public bool IsVisible(System.Drawing.Point point) => throw null; - public System.Drawing.Drawing2D.PathData PathData { get => throw null; } - public System.Drawing.PointF[] PathPoints { get => throw null; } - public System.Byte[] PathTypes { get => throw null; } - public int PointCount { get => throw null; } - public void Reset() => throw null; - public void Reverse() => throw null; - public void SetMarkers() => throw null; - public void StartFigure() => throw null; - public void Transform(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public void Warp(System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.WarpMode warpMode, float flatness) => throw null; - public void Warp(System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.WarpMode warpMode) => throw null; - public void Warp(System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.Drawing2D.Matrix matrix) => throw null; - public void Warp(System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect) => throw null; - public void Widen(System.Drawing.Pen pen, System.Drawing.Drawing2D.Matrix matrix, float flatness) => throw null; - public void Widen(System.Drawing.Pen pen, System.Drawing.Drawing2D.Matrix matrix) => throw null; - public void Widen(System.Drawing.Pen pen) => throw null; - // ERR: Stub generator didn't handle member: ~GraphicsPath - } - - // Generated from `System.Drawing.Drawing2D.GraphicsPathIterator` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class GraphicsPathIterator : System.MarshalByRefObject, System.IDisposable - { - public int CopyData(ref System.Drawing.PointF[] points, ref System.Byte[] types, int startIndex, int endIndex) => throw null; - public int Count { get => throw null; } - public void Dispose() => throw null; - public int Enumerate(ref System.Drawing.PointF[] points, ref System.Byte[] types) => throw null; - public GraphicsPathIterator(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public bool HasCurve() => throw null; - public int NextMarker(out int startIndex, out int endIndex) => throw null; - public int NextMarker(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public int NextPathType(out System.Byte pathType, out int startIndex, out int endIndex) => throw null; - public int NextSubpath(out int startIndex, out int endIndex, out bool isClosed) => throw null; - public int NextSubpath(System.Drawing.Drawing2D.GraphicsPath path, out bool isClosed) => throw null; - public void Rewind() => throw null; - public int SubpathCount { get => throw null; } - // ERR: Stub generator didn't handle member: ~GraphicsPathIterator - } - - // Generated from `System.Drawing.Drawing2D.GraphicsState` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class GraphicsState : System.MarshalByRefObject - { - } - - // Generated from `System.Drawing.Drawing2D.HatchBrush` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class HatchBrush : System.Drawing.Brush - { - public System.Drawing.Color BackgroundColor { get => throw null; } - public override object Clone() => throw null; - public System.Drawing.Color ForegroundColor { get => throw null; } - public HatchBrush(System.Drawing.Drawing2D.HatchStyle hatchstyle, System.Drawing.Color foreColor, System.Drawing.Color backColor) => throw null; - public HatchBrush(System.Drawing.Drawing2D.HatchStyle hatchstyle, System.Drawing.Color foreColor) => throw null; - public System.Drawing.Drawing2D.HatchStyle HatchStyle { get => throw null; } - } - - // Generated from `System.Drawing.Drawing2D.HatchStyle` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum HatchStyle - { - BackwardDiagonal, - Cross, - DarkDownwardDiagonal, - DarkHorizontal, - DarkUpwardDiagonal, - DarkVertical, - DashedDownwardDiagonal, - DashedHorizontal, - DashedUpwardDiagonal, - DashedVertical, - DiagonalBrick, - DiagonalCross, - Divot, - DottedDiamond, - DottedGrid, - ForwardDiagonal, - Horizontal, - HorizontalBrick, - LargeCheckerBoard, - LargeConfetti, - LargeGrid, - LightDownwardDiagonal, - LightHorizontal, - LightUpwardDiagonal, - LightVertical, - Max, - Min, - NarrowHorizontal, - NarrowVertical, - OutlinedDiamond, - Percent05, - Percent10, - Percent20, - Percent25, - Percent30, - Percent40, - Percent50, - Percent60, - Percent70, - Percent75, - Percent80, - Percent90, - Plaid, - Shingle, - SmallCheckerBoard, - SmallConfetti, - SmallGrid, - SolidDiamond, - Sphere, - Trellis, - Vertical, - Wave, - Weave, - WideDownwardDiagonal, - WideUpwardDiagonal, - ZigZag, - } - - // Generated from `System.Drawing.Drawing2D.InterpolationMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum InterpolationMode - { - Bicubic, - Bilinear, - Default, - High, - HighQualityBicubic, - HighQualityBilinear, - Invalid, - Low, - NearestNeighbor, - } - - // Generated from `System.Drawing.Drawing2D.LineCap` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum LineCap - { - AnchorMask, - ArrowAnchor, - Custom, - DiamondAnchor, - Flat, - NoAnchor, - Round, - RoundAnchor, - Square, - SquareAnchor, - Triangle, - } - - // Generated from `System.Drawing.Drawing2D.LineJoin` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum LineJoin - { - Bevel, - Miter, - MiterClipped, - Round, - } - - // Generated from `System.Drawing.Drawing2D.LinearGradientBrush` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class LinearGradientBrush : System.Drawing.Brush - { - public System.Drawing.Drawing2D.Blend Blend { get => throw null; set => throw null; } - public override object Clone() => throw null; - public bool GammaCorrection { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.ColorBlend InterpolationColors { get => throw null; set => throw null; } - public System.Drawing.Color[] LinearColors { get => throw null; set => throw null; } - public LinearGradientBrush(System.Drawing.RectangleF rect, System.Drawing.Color color1, System.Drawing.Color color2, float angle, bool isAngleScaleable) => throw null; - public LinearGradientBrush(System.Drawing.RectangleF rect, System.Drawing.Color color1, System.Drawing.Color color2, float angle) => throw null; - public LinearGradientBrush(System.Drawing.RectangleF rect, System.Drawing.Color color1, System.Drawing.Color color2, System.Drawing.Drawing2D.LinearGradientMode linearGradientMode) => throw null; - public LinearGradientBrush(System.Drawing.Rectangle rect, System.Drawing.Color color1, System.Drawing.Color color2, float angle, bool isAngleScaleable) => throw null; - public LinearGradientBrush(System.Drawing.Rectangle rect, System.Drawing.Color color1, System.Drawing.Color color2, float angle) => throw null; - public LinearGradientBrush(System.Drawing.Rectangle rect, System.Drawing.Color color1, System.Drawing.Color color2, System.Drawing.Drawing2D.LinearGradientMode linearGradientMode) => throw null; - public LinearGradientBrush(System.Drawing.PointF point1, System.Drawing.PointF point2, System.Drawing.Color color1, System.Drawing.Color color2) => throw null; - public LinearGradientBrush(System.Drawing.Point point1, System.Drawing.Point point2, System.Drawing.Color color1, System.Drawing.Color color2) => throw null; - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public System.Drawing.RectangleF Rectangle { get => throw null; } - public void ResetTransform() => throw null; - public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void RotateTransform(float angle) => throw null; - public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void ScaleTransform(float sx, float sy) => throw null; - public void SetBlendTriangularShape(float focus, float scale) => throw null; - public void SetBlendTriangularShape(float focus) => throw null; - public void SetSigmaBellShape(float focus, float scale) => throw null; - public void SetSigmaBellShape(float focus) => throw null; - public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } - public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void TranslateTransform(float dx, float dy) => throw null; - public System.Drawing.Drawing2D.WrapMode WrapMode { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Drawing2D.LinearGradientMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum LinearGradientMode - { - BackwardDiagonal, - ForwardDiagonal, - Horizontal, - Vertical, - } - - // Generated from `System.Drawing.Drawing2D.Matrix` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Matrix : System.MarshalByRefObject, System.IDisposable - { - public System.Drawing.Drawing2D.Matrix Clone() => throw null; - public void Dispose() => throw null; - public float[] Elements { get => throw null; } - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public void Invert() => throw null; - public bool IsIdentity { get => throw null; } - public bool IsInvertible { get => throw null; } - public Matrix(float m11, float m12, float m21, float m22, float dx, float dy) => throw null; - public Matrix(System.Drawing.RectangleF rect, System.Drawing.PointF[] plgpts) => throw null; - public Matrix(System.Drawing.Rectangle rect, System.Drawing.Point[] plgpts) => throw null; - public Matrix() => throw null; - public void Multiply(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void Multiply(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public float OffsetX { get => throw null; } - public float OffsetY { get => throw null; } - public void Reset() => throw null; - public void Rotate(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void Rotate(float angle) => throw null; - public void RotateAt(float angle, System.Drawing.PointF point, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void RotateAt(float angle, System.Drawing.PointF point) => throw null; - public void Scale(float scaleX, float scaleY, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void Scale(float scaleX, float scaleY) => throw null; - public void Shear(float shearX, float shearY, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void Shear(float shearX, float shearY) => throw null; - public void TransformPoints(System.Drawing.Point[] pts) => throw null; - public void TransformPoints(System.Drawing.PointF[] pts) => throw null; - public void TransformVectors(System.Drawing.Point[] pts) => throw null; - public void TransformVectors(System.Drawing.PointF[] pts) => throw null; - public void Translate(float offsetX, float offsetY, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void Translate(float offsetX, float offsetY) => throw null; - public void VectorTransformPoints(System.Drawing.Point[] pts) => throw null; - // ERR: Stub generator didn't handle member: ~Matrix - } - - // Generated from `System.Drawing.Drawing2D.MatrixOrder` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum MatrixOrder - { - Append, - Prepend, - } - - // Generated from `System.Drawing.Drawing2D.PathData` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PathData - { - public PathData() => throw null; - public System.Drawing.PointF[] Points { get => throw null; set => throw null; } - public System.Byte[] Types { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Drawing2D.PathGradientBrush` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PathGradientBrush : System.Drawing.Brush - { - public System.Drawing.Drawing2D.Blend Blend { get => throw null; set => throw null; } - public System.Drawing.Color CenterColor { get => throw null; set => throw null; } - public System.Drawing.PointF CenterPoint { get => throw null; set => throw null; } - public override object Clone() => throw null; - public System.Drawing.PointF FocusScales { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.ColorBlend InterpolationColors { get => throw null; set => throw null; } - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void MultiplyTransform(System.Drawing.Drawing2D.Matrix matrix) => throw null; - public PathGradientBrush(System.Drawing.Point[] points, System.Drawing.Drawing2D.WrapMode wrapMode) => throw null; - public PathGradientBrush(System.Drawing.Point[] points) => throw null; - public PathGradientBrush(System.Drawing.PointF[] points, System.Drawing.Drawing2D.WrapMode wrapMode) => throw null; - public PathGradientBrush(System.Drawing.PointF[] points) => throw null; - public PathGradientBrush(System.Drawing.Drawing2D.GraphicsPath path) => throw null; - public System.Drawing.RectangleF Rectangle { get => throw null; } - public void ResetTransform() => throw null; - public void RotateTransform(float angle, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void RotateTransform(float angle) => throw null; - public void ScaleTransform(float sx, float sy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void ScaleTransform(float sx, float sy) => throw null; - public void SetBlendTriangularShape(float focus, float scale) => throw null; - public void SetBlendTriangularShape(float focus) => throw null; - public void SetSigmaBellShape(float focus, float scale) => throw null; - public void SetSigmaBellShape(float focus) => throw null; - public System.Drawing.Color[] SurroundColors { get => throw null; set => throw null; } - public System.Drawing.Drawing2D.Matrix Transform { get => throw null; set => throw null; } - public void TranslateTransform(float dx, float dy, System.Drawing.Drawing2D.MatrixOrder order) => throw null; - public void TranslateTransform(float dx, float dy) => throw null; - public System.Drawing.Drawing2D.WrapMode WrapMode { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Drawing2D.PathPointType` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PathPointType - { - Bezier, - Bezier3, - CloseSubpath, - DashMode, - Line, - PathMarker, - PathTypeMask, - Start, - } - - // Generated from `System.Drawing.Drawing2D.PenAlignment` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PenAlignment - { - Center, - Inset, - Left, - Outset, - Right, - } - - // Generated from `System.Drawing.Drawing2D.PenType` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PenType - { - HatchFill, - LinearGradient, - PathGradient, - SolidColor, - TextureFill, - } - - // Generated from `System.Drawing.Drawing2D.PixelOffsetMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PixelOffsetMode - { - Default, - Half, - HighQuality, - HighSpeed, - Invalid, - None, - } - - // Generated from `System.Drawing.Drawing2D.QualityMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum QualityMode - { - Default, - High, - Invalid, - Low, - } - - // Generated from `System.Drawing.Drawing2D.RegionData` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class RegionData - { - public System.Byte[] Data { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Drawing2D.SmoothingMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum SmoothingMode - { - AntiAlias, - Default, - HighQuality, - HighSpeed, - Invalid, - None, - } - - // Generated from `System.Drawing.Drawing2D.WarpMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum WarpMode - { - Bilinear, - Perspective, - } - - // Generated from `System.Drawing.Drawing2D.WrapMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum WrapMode - { - Clamp, - Tile, - TileFlipX, - TileFlipXY, - TileFlipY, - } - - } - namespace Imaging - { - // Generated from `System.Drawing.Imaging.BitmapData` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class BitmapData - { - public BitmapData() => throw null; - public int Height { get => throw null; set => throw null; } - public System.Drawing.Imaging.PixelFormat PixelFormat { get => throw null; set => throw null; } - public int Reserved { get => throw null; set => throw null; } - public System.IntPtr Scan0 { get => throw null; set => throw null; } - public int Stride { get => throw null; set => throw null; } - public int Width { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Imaging.ColorAdjustType` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum ColorAdjustType - { - Any, - Bitmap, - Brush, - Count, - Default, - Pen, - Text, - } - - // Generated from `System.Drawing.Imaging.ColorChannelFlag` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum ColorChannelFlag - { - ColorChannelC, - ColorChannelK, - ColorChannelLast, - ColorChannelM, - ColorChannelY, - } - - // Generated from `System.Drawing.Imaging.ColorMap` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ColorMap - { - public ColorMap() => throw null; - public System.Drawing.Color NewColor { get => throw null; set => throw null; } - public System.Drawing.Color OldColor { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Imaging.ColorMapType` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum ColorMapType - { - Brush, - Default, - } - - // Generated from `System.Drawing.Imaging.ColorMatrix` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ColorMatrix - { - public ColorMatrix(float[][] newColorMatrix) => throw null; - public ColorMatrix() => throw null; - public float this[int row, int column] { get => throw null; set => throw null; } - public float Matrix00 { get => throw null; set => throw null; } - public float Matrix01 { get => throw null; set => throw null; } - public float Matrix02 { get => throw null; set => throw null; } - public float Matrix03 { get => throw null; set => throw null; } - public float Matrix04 { get => throw null; set => throw null; } - public float Matrix10 { get => throw null; set => throw null; } - public float Matrix11 { get => throw null; set => throw null; } - public float Matrix12 { get => throw null; set => throw null; } - public float Matrix13 { get => throw null; set => throw null; } - public float Matrix14 { get => throw null; set => throw null; } - public float Matrix20 { get => throw null; set => throw null; } - public float Matrix21 { get => throw null; set => throw null; } - public float Matrix22 { get => throw null; set => throw null; } - public float Matrix23 { get => throw null; set => throw null; } - public float Matrix24 { get => throw null; set => throw null; } - public float Matrix30 { get => throw null; set => throw null; } - public float Matrix31 { get => throw null; set => throw null; } - public float Matrix32 { get => throw null; set => throw null; } - public float Matrix33 { get => throw null; set => throw null; } - public float Matrix34 { get => throw null; set => throw null; } - public float Matrix40 { get => throw null; set => throw null; } - public float Matrix41 { get => throw null; set => throw null; } - public float Matrix42 { get => throw null; set => throw null; } - public float Matrix43 { get => throw null; set => throw null; } - public float Matrix44 { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Imaging.ColorMatrixFlag` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum ColorMatrixFlag - { - AltGrays, - Default, - SkipGrays, - } - - // Generated from `System.Drawing.Imaging.ColorMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum ColorMode - { - Argb32Mode, - Argb64Mode, - } - - // Generated from `System.Drawing.Imaging.ColorPalette` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ColorPalette - { - public System.Drawing.Color[] Entries { get => throw null; } - public int Flags { get => throw null; } - } - - // Generated from `System.Drawing.Imaging.EmfPlusRecordType` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum EmfPlusRecordType - { - BeginContainer, - BeginContainerNoParams, - Clear, - Comment, - DrawArc, - DrawBeziers, - DrawClosedCurve, - DrawCurve, - DrawDriverString, - DrawEllipse, - DrawImage, - DrawImagePoints, - DrawLines, - DrawPath, - DrawPie, - DrawRects, - DrawString, - EmfAbortPath, - EmfAlphaBlend, - EmfAngleArc, - EmfArcTo, - EmfBeginPath, - EmfBitBlt, - EmfChord, - EmfCloseFigure, - EmfColorCorrectPalette, - EmfColorMatchToTargetW, - EmfCreateBrushIndirect, - EmfCreateColorSpace, - EmfCreateColorSpaceW, - EmfCreateDibPatternBrushPt, - EmfCreateMonoBrush, - EmfCreatePalette, - EmfCreatePen, - EmfDeleteColorSpace, - EmfDeleteObject, - EmfDrawEscape, - EmfEllipse, - EmfEndPath, - EmfEof, - EmfExcludeClipRect, - EmfExtCreateFontIndirect, - EmfExtCreatePen, - EmfExtEscape, - EmfExtFloodFill, - EmfExtSelectClipRgn, - EmfExtTextOutA, - EmfExtTextOutW, - EmfFillPath, - EmfFillRgn, - EmfFlattenPath, - EmfForceUfiMapping, - EmfFrameRgn, - EmfGdiComment, - EmfGlsBoundedRecord, - EmfGlsRecord, - EmfGradientFill, - EmfHeader, - EmfIntersectClipRect, - EmfInvertRgn, - EmfLineTo, - EmfMaskBlt, - EmfMax, - EmfMin, - EmfModifyWorldTransform, - EmfMoveToEx, - EmfNamedEscpae, - EmfOffsetClipRgn, - EmfPaintRgn, - EmfPie, - EmfPixelFormat, - EmfPlgBlt, - EmfPlusRecordBase, - EmfPolyBezier, - EmfPolyBezier16, - EmfPolyBezierTo, - EmfPolyBezierTo16, - EmfPolyDraw, - EmfPolyDraw16, - EmfPolyLineTo, - EmfPolyPolygon, - EmfPolyPolygon16, - EmfPolyPolyline, - EmfPolyPolyline16, - EmfPolyTextOutA, - EmfPolyTextOutW, - EmfPolygon, - EmfPolygon16, - EmfPolyline, - EmfPolyline16, - EmfPolylineTo16, - EmfRealizePalette, - EmfRectangle, - EmfReserved069, - EmfReserved117, - EmfResizePalette, - EmfRestoreDC, - EmfRoundArc, - EmfRoundRect, - EmfSaveDC, - EmfScaleViewportExtEx, - EmfScaleWindowExtEx, - EmfSelectClipPath, - EmfSelectObject, - EmfSelectPalette, - EmfSetArcDirection, - EmfSetBkColor, - EmfSetBkMode, - EmfSetBrushOrgEx, - EmfSetColorAdjustment, - EmfSetColorSpace, - EmfSetDIBitsToDevice, - EmfSetIcmMode, - EmfSetIcmProfileA, - EmfSetIcmProfileW, - EmfSetLayout, - EmfSetLinkedUfis, - EmfSetMapMode, - EmfSetMapperFlags, - EmfSetMetaRgn, - EmfSetMiterLimit, - EmfSetPaletteEntries, - EmfSetPixelV, - EmfSetPolyFillMode, - EmfSetROP2, - EmfSetStretchBltMode, - EmfSetTextAlign, - EmfSetTextColor, - EmfSetTextJustification, - EmfSetViewportExtEx, - EmfSetViewportOrgEx, - EmfSetWindowExtEx, - EmfSetWindowOrgEx, - EmfSetWorldTransform, - EmfSmallTextOut, - EmfStartDoc, - EmfStretchBlt, - EmfStretchDIBits, - EmfStrokeAndFillPath, - EmfStrokePath, - EmfTransparentBlt, - EmfWidenPath, - EndContainer, - EndOfFile, - FillClosedCurve, - FillEllipse, - FillPath, - FillPie, - FillPolygon, - FillRects, - FillRegion, - GetDC, - Header, - Invalid, - Max, - Min, - MultiFormatEnd, - MultiFormatSection, - MultiFormatStart, - MultiplyWorldTransform, - Object, - OffsetClip, - ResetClip, - ResetWorldTransform, - Restore, - RotateWorldTransform, - Save, - ScaleWorldTransform, - SetAntiAliasMode, - SetClipPath, - SetClipRect, - SetClipRegion, - SetCompositingMode, - SetCompositingQuality, - SetInterpolationMode, - SetPageTransform, - SetPixelOffsetMode, - SetRenderingOrigin, - SetTextContrast, - SetTextRenderingHint, - SetWorldTransform, - Total, - TranslateWorldTransform, - WmfAnimatePalette, - WmfArc, - WmfBitBlt, - WmfChord, - WmfCreateBrushIndirect, - WmfCreateFontIndirect, - WmfCreatePalette, - WmfCreatePatternBrush, - WmfCreatePenIndirect, - WmfCreateRegion, - WmfDeleteObject, - WmfDibBitBlt, - WmfDibCreatePatternBrush, - WmfDibStretchBlt, - WmfEllipse, - WmfEscape, - WmfExcludeClipRect, - WmfExtFloodFill, - WmfExtTextOut, - WmfFillRegion, - WmfFloodFill, - WmfFrameRegion, - WmfIntersectClipRect, - WmfInvertRegion, - WmfLineTo, - WmfMoveTo, - WmfOffsetCilpRgn, - WmfOffsetViewportOrg, - WmfOffsetWindowOrg, - WmfPaintRegion, - WmfPatBlt, - WmfPie, - WmfPolyPolygon, - WmfPolygon, - WmfPolyline, - WmfRealizePalette, - WmfRecordBase, - WmfRectangle, - WmfResizePalette, - WmfRestoreDC, - WmfRoundRect, - WmfSaveDC, - WmfScaleViewportExt, - WmfScaleWindowExt, - WmfSelectClipRegion, - WmfSelectObject, - WmfSelectPalette, - WmfSetBkColor, - WmfSetBkMode, - WmfSetDibToDev, - WmfSetLayout, - WmfSetMapMode, - WmfSetMapperFlags, - WmfSetPalEntries, - WmfSetPixel, - WmfSetPolyFillMode, - WmfSetROP2, - WmfSetRelAbs, - WmfSetStretchBltMode, - WmfSetTextAlign, - WmfSetTextCharExtra, - WmfSetTextColor, - WmfSetTextJustification, - WmfSetViewportExt, - WmfSetViewportOrg, - WmfSetWindowExt, - WmfSetWindowOrg, - WmfStretchBlt, - WmfStretchDib, - WmfTextOut, - } - - // Generated from `System.Drawing.Imaging.EmfType` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum EmfType - { - EmfOnly, - EmfPlusDual, - EmfPlusOnly, - } - - // Generated from `System.Drawing.Imaging.Encoder` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Encoder - { - public static System.Drawing.Imaging.Encoder ChrominanceTable; - public static System.Drawing.Imaging.Encoder ColorDepth; - public static System.Drawing.Imaging.Encoder Compression; - public Encoder(System.Guid guid) => throw null; - public System.Guid Guid { get => throw null; } - public static System.Drawing.Imaging.Encoder LuminanceTable; - public static System.Drawing.Imaging.Encoder Quality; - public static System.Drawing.Imaging.Encoder RenderMethod; - public static System.Drawing.Imaging.Encoder SaveFlag; - public static System.Drawing.Imaging.Encoder ScanMethod; - public static System.Drawing.Imaging.Encoder Transformation; - public static System.Drawing.Imaging.Encoder Version; - } - - // Generated from `System.Drawing.Imaging.EncoderParameter` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EncoderParameter : System.IDisposable - { - public void Dispose() => throw null; - public System.Drawing.Imaging.Encoder Encoder { get => throw null; set => throw null; } - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, string value) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int[] numerator1, int[] denominator1, int[] numerator2, int[] denominator2) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int[] numerator, int[] denominator) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int numerator1, int demoninator1, int numerator2, int demoninator2) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int numerator, int denominator) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int numberValues, System.Drawing.Imaging.EncoderParameterValueType type, System.IntPtr value) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, int NumberOfValues, int Type, int Value) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int64[] value) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int64[] rangebegin, System.Int64[] rangeend) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int64 value) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int64 rangebegin, System.Int64 rangeend) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int16[] value) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Int16 value) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Byte[] value, bool undefined) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Byte[] value) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Byte value, bool undefined) => throw null; - public EncoderParameter(System.Drawing.Imaging.Encoder encoder, System.Byte value) => throw null; - public int NumberOfValues { get => throw null; } - public System.Drawing.Imaging.EncoderParameterValueType Type { get => throw null; } - public System.Drawing.Imaging.EncoderParameterValueType ValueType { get => throw null; } - // ERR: Stub generator didn't handle member: ~EncoderParameter - } - - // Generated from `System.Drawing.Imaging.EncoderParameterValueType` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum EncoderParameterValueType - { - ValueTypeAscii, - ValueTypeByte, - ValueTypeLong, - ValueTypeLongRange, - ValueTypeRational, - ValueTypeRationalRange, - ValueTypeShort, - ValueTypeUndefined, - } - - // Generated from `System.Drawing.Imaging.EncoderParameters` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class EncoderParameters : System.IDisposable - { - public void Dispose() => throw null; - public EncoderParameters(int count) => throw null; - public EncoderParameters() => throw null; - public System.Drawing.Imaging.EncoderParameter[] Param { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Imaging.EncoderValue` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum EncoderValue - { - ColorTypeCMYK, - ColorTypeYCCK, - CompressionCCITT3, - CompressionCCITT4, - CompressionLZW, - CompressionNone, - CompressionRle, - Flush, - FrameDimensionPage, - FrameDimensionResolution, - FrameDimensionTime, - LastFrame, - MultiFrame, - RenderNonProgressive, - RenderProgressive, - ScanMethodInterlaced, - ScanMethodNonInterlaced, - TransformFlipHorizontal, - TransformFlipVertical, - TransformRotate180, - TransformRotate270, - TransformRotate90, - VersionGif87, - VersionGif89, - } - - // Generated from `System.Drawing.Imaging.FrameDimension` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class FrameDimension - { - public override bool Equals(object o) => throw null; - public FrameDimension(System.Guid guid) => throw null; - public override int GetHashCode() => throw null; - public System.Guid Guid { get => throw null; } - public static System.Drawing.Imaging.FrameDimension Page { get => throw null; } - public static System.Drawing.Imaging.FrameDimension Resolution { get => throw null; } - public static System.Drawing.Imaging.FrameDimension Time { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `System.Drawing.Imaging.ImageAttributes` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ImageAttributes : System.IDisposable, System.ICloneable - { - public void ClearBrushRemapTable() => throw null; - public void ClearColorKey(System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void ClearColorKey() => throw null; - public void ClearColorMatrix(System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void ClearColorMatrix() => throw null; - public void ClearGamma(System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void ClearGamma() => throw null; - public void ClearNoOp(System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void ClearNoOp() => throw null; - public void ClearOutputChannel(System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void ClearOutputChannel() => throw null; - public void ClearOutputChannelColorProfile(System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void ClearOutputChannelColorProfile() => throw null; - public void ClearRemapTable(System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void ClearRemapTable() => throw null; - public void ClearThreshold(System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void ClearThreshold() => throw null; - public object Clone() => throw null; - public void Dispose() => throw null; - public void GetAdjustedPalette(System.Drawing.Imaging.ColorPalette palette, System.Drawing.Imaging.ColorAdjustType type) => throw null; - public ImageAttributes() => throw null; - public void SetBrushRemapTable(System.Drawing.Imaging.ColorMap[] map) => throw null; - public void SetColorKey(System.Drawing.Color colorLow, System.Drawing.Color colorHigh, System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void SetColorKey(System.Drawing.Color colorLow, System.Drawing.Color colorHigh) => throw null; - public void SetColorMatrices(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrix grayMatrix, System.Drawing.Imaging.ColorMatrixFlag mode, System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void SetColorMatrices(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrix grayMatrix, System.Drawing.Imaging.ColorMatrixFlag flags) => throw null; - public void SetColorMatrices(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrix grayMatrix) => throw null; - public void SetColorMatrix(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrixFlag mode, System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void SetColorMatrix(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrixFlag flags) => throw null; - public void SetColorMatrix(System.Drawing.Imaging.ColorMatrix newColorMatrix) => throw null; - public void SetGamma(float gamma, System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void SetGamma(float gamma) => throw null; - public void SetNoOp(System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void SetNoOp() => throw null; - public void SetOutputChannel(System.Drawing.Imaging.ColorChannelFlag flags, System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void SetOutputChannel(System.Drawing.Imaging.ColorChannelFlag flags) => throw null; - public void SetOutputChannelColorProfile(string colorProfileFilename, System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void SetOutputChannelColorProfile(string colorProfileFilename) => throw null; - public void SetRemapTable(System.Drawing.Imaging.ColorMap[] map, System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void SetRemapTable(System.Drawing.Imaging.ColorMap[] map) => throw null; - public void SetThreshold(float threshold, System.Drawing.Imaging.ColorAdjustType type) => throw null; - public void SetThreshold(float threshold) => throw null; - public void SetWrapMode(System.Drawing.Drawing2D.WrapMode mode, System.Drawing.Color color, bool clamp) => throw null; - public void SetWrapMode(System.Drawing.Drawing2D.WrapMode mode, System.Drawing.Color color) => throw null; - public void SetWrapMode(System.Drawing.Drawing2D.WrapMode mode) => throw null; - // ERR: Stub generator didn't handle member: ~ImageAttributes - } - - // Generated from `System.Drawing.Imaging.ImageCodecFlags` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum ImageCodecFlags - { - BlockingDecode, - Builtin, - Decoder, - Encoder, - SeekableEncode, - SupportBitmap, - SupportVector, - System, - User, - } - - // Generated from `System.Drawing.Imaging.ImageCodecInfo` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ImageCodecInfo - { - public System.Guid Clsid { get => throw null; set => throw null; } - public string CodecName { get => throw null; set => throw null; } - public string DllName { get => throw null; set => throw null; } - public string FilenameExtension { get => throw null; set => throw null; } - public System.Drawing.Imaging.ImageCodecFlags Flags { get => throw null; set => throw null; } - public string FormatDescription { get => throw null; set => throw null; } - public System.Guid FormatID { get => throw null; set => throw null; } - public static System.Drawing.Imaging.ImageCodecInfo[] GetImageDecoders() => throw null; - public static System.Drawing.Imaging.ImageCodecInfo[] GetImageEncoders() => throw null; - public string MimeType { get => throw null; set => throw null; } - public System.Byte[][] SignatureMasks { get => throw null; set => throw null; } - public System.Byte[][] SignaturePatterns { get => throw null; set => throw null; } - public int Version { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Imaging.ImageFlags` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum ImageFlags - { - Caching, - ColorSpaceCmyk, - ColorSpaceGray, - ColorSpaceRgb, - ColorSpaceYcbcr, - ColorSpaceYcck, - HasAlpha, - HasRealDpi, - HasRealPixelSize, - HasTranslucent, - None, - PartiallyScalable, - ReadOnly, - Scalable, - } - - // Generated from `System.Drawing.Imaging.ImageFormat` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class ImageFormat - { - public static System.Drawing.Imaging.ImageFormat Bmp { get => throw null; } - public static System.Drawing.Imaging.ImageFormat Emf { get => throw null; } - public override bool Equals(object o) => throw null; - public static System.Drawing.Imaging.ImageFormat Exif { get => throw null; } - public override int GetHashCode() => throw null; - public static System.Drawing.Imaging.ImageFormat Gif { get => throw null; } - public System.Guid Guid { get => throw null; } - public static System.Drawing.Imaging.ImageFormat Icon { get => throw null; } - public ImageFormat(System.Guid guid) => throw null; - public static System.Drawing.Imaging.ImageFormat Jpeg { get => throw null; } - public static System.Drawing.Imaging.ImageFormat MemoryBmp { get => throw null; } - public static System.Drawing.Imaging.ImageFormat Png { get => throw null; } - public static System.Drawing.Imaging.ImageFormat Tiff { get => throw null; } - public override string ToString() => throw null; - public static System.Drawing.Imaging.ImageFormat Wmf { get => throw null; } - } - - // Generated from `System.Drawing.Imaging.ImageLockMode` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum ImageLockMode - { - ReadOnly, - ReadWrite, - UserInputBuffer, - WriteOnly, - } - - // Generated from `System.Drawing.Imaging.MetaHeader` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class MetaHeader - { - public System.Int16 HeaderSize { get => throw null; set => throw null; } - public int MaxRecord { get => throw null; set => throw null; } - public MetaHeader() => throw null; - public System.Int16 NoObjects { get => throw null; set => throw null; } - public System.Int16 NoParameters { get => throw null; set => throw null; } - public int Size { get => throw null; set => throw null; } - public System.Int16 Type { get => throw null; set => throw null; } - public System.Int16 Version { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Imaging.Metafile` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Metafile : System.Drawing.Image - { - public System.IntPtr GetHenhmetafile() => throw null; - public static System.Drawing.Imaging.MetafileHeader GetMetafileHeader(string fileName) => throw null; - public static System.Drawing.Imaging.MetafileHeader GetMetafileHeader(System.IntPtr hmetafile, System.Drawing.Imaging.WmfPlaceableFileHeader wmfHeader) => throw null; - public static System.Drawing.Imaging.MetafileHeader GetMetafileHeader(System.IntPtr henhmetafile) => throw null; - public static System.Drawing.Imaging.MetafileHeader GetMetafileHeader(System.IO.Stream stream) => throw null; - public System.Drawing.Imaging.MetafileHeader GetMetafileHeader() => throw null; - public Metafile(string filename) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, string desc) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, string description) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType type, string description) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType type) => throw null; - public Metafile(string fileName, System.IntPtr referenceHdc) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string desc) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType emfType, string description) => throw null; - public Metafile(System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType emfType) => throw null; - public Metafile(System.IntPtr hmetafile, System.Drawing.Imaging.WmfPlaceableFileHeader wmfHeader, bool deleteWmf) => throw null; - public Metafile(System.IntPtr hmetafile, System.Drawing.Imaging.WmfPlaceableFileHeader wmfHeader) => throw null; - public Metafile(System.IntPtr henhmetafile, bool deleteEmf) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.RectangleF frameRect) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type, string description) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit, System.Drawing.Imaging.EmfType type) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect, System.Drawing.Imaging.MetafileFrameUnit frameUnit) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Rectangle frameRect) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType type, string description) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc, System.Drawing.Imaging.EmfType type) => throw null; - public Metafile(System.IO.Stream stream, System.IntPtr referenceHdc) => throw null; - public Metafile(System.IO.Stream stream) => throw null; - public void PlayRecord(System.Drawing.Imaging.EmfPlusRecordType recordType, int flags, int dataSize, System.Byte[] data) => throw null; - } - - // Generated from `System.Drawing.Imaging.MetafileFrameUnit` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum MetafileFrameUnit - { - Document, - GdiCompatible, - Inch, - Millimeter, - Pixel, - Point, - } - - // Generated from `System.Drawing.Imaging.MetafileHeader` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class MetafileHeader - { - public System.Drawing.Rectangle Bounds { get => throw null; } - public float DpiX { get => throw null; } - public float DpiY { get => throw null; } - public int EmfPlusHeaderSize { get => throw null; } - public bool IsDisplay() => throw null; - public bool IsEmf() => throw null; - public bool IsEmfOrEmfPlus() => throw null; - public bool IsEmfPlus() => throw null; - public bool IsEmfPlusDual() => throw null; - public bool IsEmfPlusOnly() => throw null; - public bool IsWmf() => throw null; - public bool IsWmfPlaceable() => throw null; - public int LogicalDpiX { get => throw null; } - public int LogicalDpiY { get => throw null; } - public int MetafileSize { get => throw null; } - public System.Drawing.Imaging.MetafileType Type { get => throw null; } - public int Version { get => throw null; } - public System.Drawing.Imaging.MetaHeader WmfHeader { get => throw null; } - } - - // Generated from `System.Drawing.Imaging.MetafileType` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum MetafileType - { - Emf, - EmfPlusDual, - EmfPlusOnly, - Invalid, - Wmf, - WmfPlaceable, - } - - // Generated from `System.Drawing.Imaging.PaletteFlags` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - [System.Flags] - public enum PaletteFlags - { - GrayScale, - Halftone, - HasAlpha, - } - - // Generated from `System.Drawing.Imaging.PixelFormat` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PixelFormat - { - Alpha, - Canonical, - DontCare, - Extended, - Format16bppArgb1555, - Format16bppGrayScale, - Format16bppRgb555, - Format16bppRgb565, - Format1bppIndexed, - Format24bppRgb, - Format32bppArgb, - Format32bppPArgb, - Format32bppRgb, - Format48bppRgb, - Format4bppIndexed, - Format64bppArgb, - Format64bppPArgb, - Format8bppIndexed, - Gdi, - Indexed, - Max, - PAlpha, - Undefined, - } - - // Generated from `System.Drawing.Imaging.PlayRecordCallback` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate void PlayRecordCallback(System.Drawing.Imaging.EmfPlusRecordType recordType, int flags, int dataSize, System.IntPtr recordData); - - // Generated from `System.Drawing.Imaging.PropertyItem` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PropertyItem - { - public int Id { get => throw null; set => throw null; } - public int Len { get => throw null; set => throw null; } - public System.Int16 Type { get => throw null; set => throw null; } - public System.Byte[] Value { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Imaging.WmfPlaceableFileHeader` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class WmfPlaceableFileHeader - { - public System.Int16 BboxBottom { get => throw null; set => throw null; } - public System.Int16 BboxLeft { get => throw null; set => throw null; } - public System.Int16 BboxRight { get => throw null; set => throw null; } - public System.Int16 BboxTop { get => throw null; set => throw null; } - public System.Int16 Checksum { get => throw null; set => throw null; } - public System.Int16 Hmf { get => throw null; set => throw null; } - public System.Int16 Inch { get => throw null; set => throw null; } - public int Key { get => throw null; set => throw null; } - public int Reserved { get => throw null; set => throw null; } - public WmfPlaceableFileHeader() => throw null; - } - - } - namespace Printing - { - // Generated from `System.Drawing.Printing.Duplex` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum Duplex - { - Default, - Horizontal, - Simplex, - Vertical, - } - - // Generated from `System.Drawing.Printing.InvalidPrinterException` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class InvalidPrinterException : System.SystemException - { - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - public InvalidPrinterException(System.Drawing.Printing.PrinterSettings settings) => throw null; - protected InvalidPrinterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; - } - - // Generated from `System.Drawing.Printing.Margins` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class Margins : System.ICloneable - { - public static bool operator !=(System.Drawing.Printing.Margins m1, System.Drawing.Printing.Margins m2) => throw null; - public static bool operator ==(System.Drawing.Printing.Margins m1, System.Drawing.Printing.Margins m2) => throw null; - public int Bottom { get => throw null; set => throw null; } - public object Clone() => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public int Left { get => throw null; set => throw null; } - public Margins(int left, int right, int top, int bottom) => throw null; - public Margins() => throw null; - public int Right { get => throw null; set => throw null; } - public override string ToString() => throw null; - public int Top { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Printing.PageSettings` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PageSettings : System.ICloneable - { - public System.Drawing.Rectangle Bounds { get => throw null; } - public object Clone() => throw null; - public bool Color { get => throw null; set => throw null; } - public void CopyToHdevmode(System.IntPtr hdevmode) => throw null; - public float HardMarginX { get => throw null; } - public float HardMarginY { get => throw null; } - public bool Landscape { get => throw null; set => throw null; } - public System.Drawing.Printing.Margins Margins { get => throw null; set => throw null; } - public PageSettings(System.Drawing.Printing.PrinterSettings printerSettings) => throw null; - public PageSettings() => throw null; - public System.Drawing.Printing.PaperSize PaperSize { get => throw null; set => throw null; } - public System.Drawing.Printing.PaperSource PaperSource { get => throw null; set => throw null; } - public System.Drawing.RectangleF PrintableArea { get => throw null; } - public System.Drawing.Printing.PrinterResolution PrinterResolution { get => throw null; set => throw null; } - public System.Drawing.Printing.PrinterSettings PrinterSettings { get => throw null; set => throw null; } - public void SetHdevmode(System.IntPtr hdevmode) => throw null; - public override string ToString() => throw null; - } - - // Generated from `System.Drawing.Printing.PaperKind` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PaperKind - { - A2, - A3, - A3Extra, - A3ExtraTransverse, - A3Rotated, - A3Transverse, - A4, - A4Extra, - A4Plus, - A4Rotated, - A4Small, - A4Transverse, - A5, - A5Extra, - A5Rotated, - A5Transverse, - A6, - A6Rotated, - APlus, - B4, - B4Envelope, - B4JisRotated, - B5, - B5Envelope, - B5Extra, - B5JisRotated, - B5Transverse, - B6Envelope, - B6Jis, - B6JisRotated, - BPlus, - C3Envelope, - C4Envelope, - C5Envelope, - C65Envelope, - C6Envelope, - CSheet, - Custom, - DLEnvelope, - DSheet, - ESheet, - Executive, - Folio, - GermanLegalFanfold, - GermanStandardFanfold, - InviteEnvelope, - IsoB4, - ItalyEnvelope, - JapaneseDoublePostcard, - JapaneseDoublePostcardRotated, - JapaneseEnvelopeChouNumber3, - JapaneseEnvelopeChouNumber3Rotated, - JapaneseEnvelopeChouNumber4, - JapaneseEnvelopeChouNumber4Rotated, - JapaneseEnvelopeKakuNumber2, - JapaneseEnvelopeKakuNumber2Rotated, - JapaneseEnvelopeKakuNumber3, - JapaneseEnvelopeKakuNumber3Rotated, - JapaneseEnvelopeYouNumber4, - JapaneseEnvelopeYouNumber4Rotated, - JapanesePostcard, - JapanesePostcardRotated, - Ledger, - Legal, - LegalExtra, - Letter, - LetterExtra, - LetterExtraTransverse, - LetterPlus, - LetterRotated, - LetterSmall, - LetterTransverse, - MonarchEnvelope, - Note, - Number10Envelope, - Number11Envelope, - Number12Envelope, - Number14Envelope, - Number9Envelope, - PersonalEnvelope, - Prc16K, - Prc16KRotated, - Prc32K, - Prc32KBig, - Prc32KBigRotated, - Prc32KRotated, - PrcEnvelopeNumber1, - PrcEnvelopeNumber10, - PrcEnvelopeNumber10Rotated, - PrcEnvelopeNumber1Rotated, - PrcEnvelopeNumber2, - PrcEnvelopeNumber2Rotated, - PrcEnvelopeNumber3, - PrcEnvelopeNumber3Rotated, - PrcEnvelopeNumber4, - PrcEnvelopeNumber4Rotated, - PrcEnvelopeNumber5, - PrcEnvelopeNumber5Rotated, - PrcEnvelopeNumber6, - PrcEnvelopeNumber6Rotated, - PrcEnvelopeNumber7, - PrcEnvelopeNumber7Rotated, - PrcEnvelopeNumber8, - PrcEnvelopeNumber8Rotated, - PrcEnvelopeNumber9, - PrcEnvelopeNumber9Rotated, - Quarto, - Standard10x11, - Standard10x14, - Standard11x17, - Standard12x11, - Standard15x11, - Standard9x11, - Statement, - Tabloid, - TabloidExtra, - USStandardFanfold, - } - - // Generated from `System.Drawing.Printing.PaperSize` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PaperSize - { - public int Height { get => throw null; set => throw null; } - public System.Drawing.Printing.PaperKind Kind { get => throw null; } - public string PaperName { get => throw null; set => throw null; } - public PaperSize(string name, int width, int height) => throw null; - public PaperSize() => throw null; - public int RawKind { get => throw null; set => throw null; } - public override string ToString() => throw null; - public int Width { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Printing.PaperSource` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PaperSource - { - public System.Drawing.Printing.PaperSourceKind Kind { get => throw null; } - public PaperSource() => throw null; - public int RawKind { get => throw null; set => throw null; } - public string SourceName { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `System.Drawing.Printing.PaperSourceKind` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PaperSourceKind - { - AutomaticFeed, - Cassette, - Custom, - Envelope, - FormSource, - LargeCapacity, - LargeFormat, - Lower, - Manual, - ManualFeed, - Middle, - SmallFormat, - TractorFeed, - Upper, - } - - // Generated from `System.Drawing.Printing.PreviewPageInfo` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PreviewPageInfo - { - public System.Drawing.Image Image { get => throw null; } - public System.Drawing.Size PhysicalSize { get => throw null; } - public PreviewPageInfo(System.Drawing.Image image, System.Drawing.Size physicalSize) => throw null; - } - - // Generated from `System.Drawing.Printing.PreviewPrintController` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PreviewPrintController : System.Drawing.Printing.PrintController - { - public System.Drawing.Printing.PreviewPageInfo[] GetPreviewPageInfo() => throw null; - public override bool IsPreview { get => throw null; } - public override void OnEndPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; - public override void OnEndPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; - public override System.Drawing.Graphics OnStartPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; - public override void OnStartPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; - public PreviewPrintController() => throw null; - public virtual bool UseAntiAlias { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Printing.PrintAction` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PrintAction - { - PrintToFile, - PrintToPreview, - PrintToPrinter, - } - - // Generated from `System.Drawing.Printing.PrintController` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class PrintController - { - public virtual bool IsPreview { get => throw null; } - public virtual void OnEndPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; - public virtual void OnEndPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; - public virtual System.Drawing.Graphics OnStartPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; - public virtual void OnStartPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; - protected PrintController() => throw null; - } - - // Generated from `System.Drawing.Printing.PrintDocument` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrintDocument : System.ComponentModel.Component - { - public event System.Drawing.Printing.PrintEventHandler BeginPrint; - public System.Drawing.Printing.PageSettings DefaultPageSettings { get => throw null; set => throw null; } - public string DocumentName { get => throw null; set => throw null; } - public event System.Drawing.Printing.PrintEventHandler EndPrint; - protected virtual void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e) => throw null; - protected virtual void OnEndPrint(System.Drawing.Printing.PrintEventArgs e) => throw null; - protected virtual void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e) => throw null; - protected virtual void OnQueryPageSettings(System.Drawing.Printing.QueryPageSettingsEventArgs e) => throw null; - public bool OriginAtMargins { get => throw null; set => throw null; } - public void Print() => throw null; - public System.Drawing.Printing.PrintController PrintController { get => throw null; set => throw null; } - public PrintDocument() => throw null; - public event System.Drawing.Printing.PrintPageEventHandler PrintPage; - public System.Drawing.Printing.PrinterSettings PrinterSettings { get => throw null; set => throw null; } - public event System.Drawing.Printing.QueryPageSettingsEventHandler QueryPageSettings; - public override string ToString() => throw null; - } - - // Generated from `System.Drawing.Printing.PrintEventArgs` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrintEventArgs : System.ComponentModel.CancelEventArgs - { - public System.Drawing.Printing.PrintAction PrintAction { get => throw null; } - public PrintEventArgs() => throw null; - } - - // Generated from `System.Drawing.Printing.PrintEventHandler` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate void PrintEventHandler(object sender, System.Drawing.Printing.PrintEventArgs e); - - // Generated from `System.Drawing.Printing.PrintPageEventArgs` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrintPageEventArgs : System.EventArgs - { - public bool Cancel { get => throw null; set => throw null; } - public System.Drawing.Graphics Graphics { get => throw null; } - public bool HasMorePages { get => throw null; set => throw null; } - public System.Drawing.Rectangle MarginBounds { get => throw null; } - public System.Drawing.Rectangle PageBounds { get => throw null; } - public System.Drawing.Printing.PageSettings PageSettings { get => throw null; } - public PrintPageEventArgs(System.Drawing.Graphics graphics, System.Drawing.Rectangle marginBounds, System.Drawing.Rectangle pageBounds, System.Drawing.Printing.PageSettings pageSettings) => throw null; - } - - // Generated from `System.Drawing.Printing.PrintPageEventHandler` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate void PrintPageEventHandler(object sender, System.Drawing.Printing.PrintPageEventArgs e); - - // Generated from `System.Drawing.Printing.PrintRange` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PrintRange - { - AllPages, - CurrentPage, - Selection, - SomePages, - } - - // Generated from `System.Drawing.Printing.PrinterResolution` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrinterResolution - { - public System.Drawing.Printing.PrinterResolutionKind Kind { get => throw null; set => throw null; } - public PrinterResolution() => throw null; - public override string ToString() => throw null; - public int X { get => throw null; set => throw null; } - public int Y { get => throw null; set => throw null; } - } - - // Generated from `System.Drawing.Printing.PrinterResolutionKind` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PrinterResolutionKind - { - Custom, - Draft, - High, - Low, - Medium, - } - - // Generated from `System.Drawing.Printing.PrinterSettings` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrinterSettings : System.ICloneable - { - public bool CanDuplex { get => throw null; } - public object Clone() => throw null; - public bool Collate { get => throw null; set => throw null; } - public System.Int16 Copies { get => throw null; set => throw null; } - public System.Drawing.Graphics CreateMeasurementGraphics(bool honorOriginAtMargins) => throw null; - public System.Drawing.Graphics CreateMeasurementGraphics(System.Drawing.Printing.PageSettings pageSettings, bool honorOriginAtMargins) => throw null; - public System.Drawing.Graphics CreateMeasurementGraphics(System.Drawing.Printing.PageSettings pageSettings) => throw null; - public System.Drawing.Graphics CreateMeasurementGraphics() => throw null; - public System.Drawing.Printing.PageSettings DefaultPageSettings { get => throw null; } - public System.Drawing.Printing.Duplex Duplex { get => throw null; set => throw null; } - public int FromPage { get => throw null; set => throw null; } - public System.IntPtr GetHdevmode(System.Drawing.Printing.PageSettings pageSettings) => throw null; - public System.IntPtr GetHdevmode() => throw null; - public System.IntPtr GetHdevnames() => throw null; - public static System.Drawing.Printing.PrinterSettings.StringCollection InstalledPrinters { get => throw null; } - public bool IsDefaultPrinter { get => throw null; } - public bool IsDirectPrintingSupported(System.Drawing.Imaging.ImageFormat imageFormat) => throw null; - public bool IsDirectPrintingSupported(System.Drawing.Image image) => throw null; - public bool IsPlotter { get => throw null; } - public bool IsValid { get => throw null; } - public int LandscapeAngle { get => throw null; } - public int MaximumCopies { get => throw null; } - public int MaximumPage { get => throw null; set => throw null; } - public int MinimumPage { get => throw null; set => throw null; } - // Generated from `System.Drawing.Printing.PrinterSettings+PaperSizeCollection` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PaperSizeCollection : System.Collections.IEnumerable, System.Collections.ICollection - { - public int Add(System.Drawing.Printing.PaperSize paperSize) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(System.Drawing.Printing.PaperSize[] paperSizes, int index) => throw null; - public int Count { get => throw null; } - int System.Collections.ICollection.Count { get => 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.Drawing.Printing.PaperSize this[int index] { get => throw null; } - public PaperSizeCollection(System.Drawing.Printing.PaperSize[] array) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - - public System.Drawing.Printing.PrinterSettings.PaperSizeCollection PaperSizes { get => throw null; } - // Generated from `System.Drawing.Printing.PrinterSettings+PaperSourceCollection` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PaperSourceCollection : System.Collections.IEnumerable, System.Collections.ICollection - { - public int Add(System.Drawing.Printing.PaperSource paperSource) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(System.Drawing.Printing.PaperSource[] paperSources, int index) => throw null; - public int Count { get => throw null; } - int System.Collections.ICollection.Count { get => 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.Drawing.Printing.PaperSource this[int index] { get => throw null; } - public PaperSourceCollection(System.Drawing.Printing.PaperSource[] array) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - - public System.Drawing.Printing.PrinterSettings.PaperSourceCollection PaperSources { get => throw null; } - public string PrintFileName { get => throw null; set => throw null; } - public System.Drawing.Printing.PrintRange PrintRange { get => throw null; set => throw null; } - public bool PrintToFile { get => throw null; set => throw null; } - public string PrinterName { get => throw null; set => throw null; } - // Generated from `System.Drawing.Printing.PrinterSettings+PrinterResolutionCollection` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrinterResolutionCollection : System.Collections.IEnumerable, System.Collections.ICollection - { - public int Add(System.Drawing.Printing.PrinterResolution printerResolution) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(System.Drawing.Printing.PrinterResolution[] printerResolutions, int index) => throw null; - public int Count { get => throw null; } - int System.Collections.ICollection.Count { get => 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.Drawing.Printing.PrinterResolution this[int index] { get => throw null; } - public PrinterResolutionCollection(System.Drawing.Printing.PrinterResolution[] array) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - - public System.Drawing.Printing.PrinterSettings.PrinterResolutionCollection PrinterResolutions { get => throw null; } - public PrinterSettings() => throw null; - public void SetHdevmode(System.IntPtr hdevmode) => throw null; - public void SetHdevnames(System.IntPtr hdevnames) => throw null; - // Generated from `System.Drawing.Printing.PrinterSettings+StringCollection` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StringCollection : System.Collections.IEnumerable, System.Collections.ICollection - { - public int Add(string value) => throw null; - void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; - public void CopyTo(string[] strings, int index) => throw null; - public int Count { get => throw null; } - int System.Collections.ICollection.Count { get => 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 string this[int index] { get => throw null; } - public StringCollection(string[] array) => throw null; - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - - public bool SupportsColor { get => throw null; } - public int ToPage { get => throw null; set => throw null; } - public override string ToString() => throw null; - } - - // Generated from `System.Drawing.Printing.PrinterUnit` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum PrinterUnit - { - Display, - HundredthsOfAMillimeter, - TenthsOfAMillimeter, - ThousandthsOfAnInch, - } - - // Generated from `System.Drawing.Printing.PrinterUnitConvert` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrinterUnitConvert - { - public static int Convert(int value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; - public static double Convert(double value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; - public static System.Drawing.Size Convert(System.Drawing.Size value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; - public static System.Drawing.Rectangle Convert(System.Drawing.Rectangle value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; - public static System.Drawing.Printing.Margins Convert(System.Drawing.Printing.Margins value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; - public static System.Drawing.Point Convert(System.Drawing.Point value, System.Drawing.Printing.PrinterUnit fromUnit, System.Drawing.Printing.PrinterUnit toUnit) => throw null; - } - - // Generated from `System.Drawing.Printing.QueryPageSettingsEventArgs` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class QueryPageSettingsEventArgs : System.Drawing.Printing.PrintEventArgs - { - public System.Drawing.Printing.PageSettings PageSettings { get => throw null; set => throw null; } - public QueryPageSettingsEventArgs(System.Drawing.Printing.PageSettings pageSettings) => throw null; - } - - // Generated from `System.Drawing.Printing.QueryPageSettingsEventHandler` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public delegate void QueryPageSettingsEventHandler(object sender, System.Drawing.Printing.QueryPageSettingsEventArgs e); - - // Generated from `System.Drawing.Printing.StandardPrintController` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class StandardPrintController : System.Drawing.Printing.PrintController - { - public override void OnEndPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; - public override void OnEndPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; - public override System.Drawing.Graphics OnStartPage(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintPageEventArgs e) => throw null; - public override void OnStartPrint(System.Drawing.Printing.PrintDocument document, System.Drawing.Printing.PrintEventArgs e) => throw null; - public StandardPrintController() => throw null; - } - - } - namespace Text - { - // Generated from `System.Drawing.Text.FontCollection` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public abstract class FontCollection : System.IDisposable - { - public void Dispose() => throw null; - protected virtual void Dispose(bool disposing) => throw null; - public System.Drawing.FontFamily[] Families { get => throw null; } - internal FontCollection() => throw null; - // ERR: Stub generator didn't handle member: ~FontCollection - } - - // Generated from `System.Drawing.Text.GenericFontFamilies` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum GenericFontFamilies - { - Monospace, - SansSerif, - Serif, - } - - // Generated from `System.Drawing.Text.HotkeyPrefix` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum HotkeyPrefix - { - Hide, - None, - Show, - } - - // Generated from `System.Drawing.Text.InstalledFontCollection` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class InstalledFontCollection : System.Drawing.Text.FontCollection - { - public InstalledFontCollection() => throw null; - } - - // Generated from `System.Drawing.Text.PrivateFontCollection` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public class PrivateFontCollection : System.Drawing.Text.FontCollection - { - public void AddFontFile(string filename) => throw null; - public void AddMemoryFont(System.IntPtr memory, int length) => throw null; - protected override void Dispose(bool disposing) => throw null; - public PrivateFontCollection() => throw null; - } - - // Generated from `System.Drawing.Text.TextRenderingHint` in `System.Drawing.Common, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51` - public enum TextRenderingHint - { - AntiAlias, - AntiAliasGridFit, - ClearTypeGridFit, - SingleBitPerPixel, - SingleBitPerPixelGridFit, - SystemDefault, - } - - } - } -} diff --git a/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.csproj b/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/System.Drawing.Common/4.7.0/System.Drawing.Common.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - From 6d96da1838c4b4aff01eb45b8b557600307adc09 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 12:44:23 +0200 Subject: [PATCH 673/736] C#: Use ASP.NET Core stub instead of Microsoft.Extensions.Primitives and manual written ASP.NET Core stubs. --- .../dataflow/flowsources/aspremote/options | 3 +- .../library-tests/dataflow/library/options | 2 +- .../Security Features/CWE-079/XSS/options | 3 +- .../CWE-601/UrlRedirect/options | 2 +- .../CWE-601/UrlRedirect/stubs.cs | 138 ------------- csharp/ql/test/resources/stubs/AspNetCore.cs | 191 ------------------ 6 files changed, 4 insertions(+), 335 deletions(-) delete mode 100644 csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/stubs.cs delete mode 100644 csharp/ql/test/resources/stubs/AspNetCore.cs diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/options b/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/options index 97781fc59f2..414c6f3f490 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/options +++ b/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/options @@ -1,4 +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/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj -semmle-extractor-options: ${testdir}/../../../../resources/stubs/AspNetCore.cs +semmle-extractor-options: --load-sources-from-project:../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj diff --git a/csharp/ql/test/library-tests/dataflow/library/options b/csharp/ql/test/library-tests/dataflow/library/options index 5e36c5aee13..c5ce92614ab 100644 --- a/csharp/ql/test/library-tests/dataflow/library/options +++ b/csharp/ql/test/library-tests/dataflow/library/options @@ -1,4 +1,4 @@ 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/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.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 diff --git a/csharp/ql/test/query-tests/Security Features/CWE-079/XSS/options b/csharp/ql/test/query-tests/Security Features/CWE-079/XSS/options index da79d489c9b..9864339f5c9 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-079/XSS/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-079/XSS/options @@ -1,4 +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/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj -semmle-extractor-options: ${testdir}/../../../../resources/stubs/AspNetCore.cs \ No newline at end of file +semmle-extractor-options: --load-sources-from-project:../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/options b/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/options index d8d11e2ebba..fb116749418 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/options @@ -1,4 +1,4 @@ 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/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.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 diff --git a/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/stubs.cs b/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/stubs.cs deleted file mode 100644 index 20bcf485e9d..00000000000 --- a/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/stubs.cs +++ /dev/null @@ -1,138 +0,0 @@ -namespace Microsoft -{ - namespace AspNetCore - { - namespace Http - { - // Generated from `Microsoft.AspNetCore.Http.HeaderDictionaryExtensions` in `Microsoft.AspNetCore.Http.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - static public 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 void SetCommaSeparatedValues(this Microsoft.AspNetCore.Http.IHeaderDictionary headers, string key, params string[] values) => throw null; - } - - // Generated from `Microsoft.AspNetCore.Http.HttpResponse` in `Microsoft.AspNetCore.Http.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - abstract public class HttpResponse - { - public abstract Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get; } - public virtual void Redirect(string location) => throw null; - } - - // Generated from `Microsoft.AspNetCore.Http.IHeaderDictionary` in `Microsoft.AspNetCore.Http.Features, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IHeaderDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> - { - Microsoft.Extensions.Primitives.StringValues this[string key] { get; set; } - } - - namespace Headers - { - // Generated from `Microsoft.AspNetCore.Http.Headers.ResponseHeaders` in `Microsoft.AspNetCore.Http.Extensions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ResponseHeaders - { - public ResponseHeaders(Microsoft.AspNetCore.Http.IHeaderDictionary headers) => throw null; - public System.Uri Location { get => throw null; set => throw null; } - } - - } - } - namespace Mvc - { - // Generated from `Microsoft.AspNetCore.Mvc.ActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - abstract public class ActionResult : Microsoft.AspNetCore.Mvc.IActionResult - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.ControllerBase` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - abstract public class ControllerBase - { - public Microsoft.AspNetCore.Http.HttpResponse Response { get => throw null; } - public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get => throw null; set => throw null; } - public virtual Microsoft.AspNetCore.Mvc.RedirectResult Redirect(string url) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToActionResult RedirectToActionPermanent(string actionName) => throw null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToPageResult RedirectToPage(string pageName) => throw null; - } - - // Generated from `Microsoft.AspNetCore.Mvc.FromBodyAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FromBodyAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata - { - public FromBodyAttribute() => throw null; - } - - // Generated from `Microsoft.AspNetCore.Mvc.HttpPostAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HttpPostAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpPostAttribute() => throw null; - public HttpPostAttribute(string template) => throw null; - } - - // Generated from `Microsoft.AspNetCore.Mvc.HttpPutAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HttpPutAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpPutAttribute() => throw null; - public HttpPutAttribute(string template) => throw null; - } - - // Generated from `Microsoft.AspNetCore.Mvc.IActionResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IActionResult - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.IUrlHelper` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IUrlHelper - { - bool IsLocalUrl(string url); - } - - // Generated from `Microsoft.AspNetCore.Mvc.RedirectResult` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RedirectResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.RedirectToActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RedirectToActionResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.RedirectToPageResult` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class RedirectToPageResult : Microsoft.AspNetCore.Mvc.ActionResult, Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult, Microsoft.AspNetCore.Mvc.IActionResult - { - } - - namespace ModelBinding - { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IBindingSourceMetadata - { - } - - } - namespace Routing - { - // Generated from `Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - abstract public class HttpMethodAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider, Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IActionHttpMethodProvider - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IRouteTemplateProvider - { - } - - } - namespace ViewFeatures - { - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.IKeepTempDataResult` in `Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IKeepTempDataResult : Microsoft.AspNetCore.Mvc.IActionResult - { - } - - } - } - } -} diff --git a/csharp/ql/test/resources/stubs/AspNetCore.cs b/csharp/ql/test/resources/stubs/AspNetCore.cs deleted file mode 100644 index 9f03e70389a..00000000000 --- a/csharp/ql/test/resources/stubs/AspNetCore.cs +++ /dev/null @@ -1,191 +0,0 @@ -namespace Microsoft -{ - namespace AspNetCore - { - namespace Html - { - // Generated from `Microsoft.AspNetCore.Html.HtmlString` in `Microsoft.AspNetCore.Html.Abstractions, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HtmlString : Microsoft.AspNetCore.Html.IHtmlContent - { - public HtmlString(string value) => throw null; - public override string ToString() => throw null; - } - - // Generated from `Microsoft.AspNetCore.Html.IHtmlContent` in `Microsoft.AspNetCore.Html.Abstractions, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IHtmlContent - { - } - - } - namespace Http - { - // Generated from `Microsoft.AspNetCore.Http.HttpRequest` in `Microsoft.AspNetCore.Http.Abstractions, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - abstract public class HttpRequest - { - public abstract Microsoft.AspNetCore.Http.IHeaderDictionary Headers { get; } - public abstract Microsoft.AspNetCore.Http.IQueryCollection Query { get; set; } - public abstract Microsoft.AspNetCore.Http.QueryString QueryString { get; set; } - public abstract string ContentType { get; set; } - } - - // Generated from `Microsoft.AspNetCore.Http.IHeaderDictionary` in `Microsoft.AspNetCore.Http.Features, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IHeaderDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> - { - Microsoft.Extensions.Primitives.StringValues this[string key] { get; set; } - } - - // Generated from `Microsoft.AspNetCore.Http.IQueryCollection` in `Microsoft.AspNetCore.Http.Features, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IQueryCollection : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable> - { - Microsoft.Extensions.Primitives.StringValues this[string key] { get; } - bool TryGetValue(string key, out Microsoft.Extensions.Primitives.StringValues value); - } - - // Generated from `Microsoft.AspNetCore.Http.QueryString` in `Microsoft.AspNetCore.Http.Abstractions, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct QueryString : System.IEquatable - { - public bool Equals(Microsoft.AspNetCore.Http.QueryString other) => throw null; - public override bool Equals(object obj) => throw null; - public override int GetHashCode() => throw null; - public override string ToString() => throw null; - public string Value { get => throw null; } - } - - } - namespace Mvc - { - // Generated from `Microsoft.AspNetCore.Mvc.ActionResult` in `Microsoft.AspNetCore.Mvc.Core, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - abstract public class ActionResult : Microsoft.AspNetCore.Mvc.IActionResult - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.ControllerBase` in `Microsoft.AspNetCore.Mvc.Core, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - abstract public class ControllerBase - { - public Microsoft.AspNetCore.Http.HttpRequest Request { get => throw null; } - } - - // Generated from `Microsoft.AspNetCore.Mvc.Controller` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - abstract public class Controller : Microsoft.AspNetCore.Mvc.ControllerBase, System.IDisposable, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter, Microsoft.AspNetCore.Mvc.Filters.IActionFilter - { - public virtual Microsoft.AspNetCore.Mvc.ViewResult View(object model) => throw null; - public void Dispose() => throw null; - } - - // Generated from `Microsoft.AspNetCore.Mvc.FromQueryAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class FromQueryAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider, Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata - { - public FromQueryAttribute() => throw null; - } - - // Generated from `Microsoft.AspNetCore.Mvc.HttpPostAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class HttpPostAttribute : Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute - { - public HttpPostAttribute() => throw null; - public HttpPostAttribute(string template) => throw null; - } - - // Generated from `Microsoft.AspNetCore.Mvc.IActionResult` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IActionResult - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ValidateAntiForgeryTokenAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter, Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata, Microsoft.AspNetCore.Mvc.Filters.IFilterFactory - { - public ValidateAntiForgeryTokenAttribute() => throw null; - } - - // Generated from `Microsoft.AspNetCore.Mvc.ViewResult` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ViewResult : Microsoft.AspNetCore.Mvc.ActionResult - { - public Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData { get => throw null; set => throw null; } - public ViewResult() => throw null; - } - - namespace Filters - { - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IActionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IActionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IAsyncActionFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterFactory` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IFilterFactory : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IFilterMetadata - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.Filters.IOrderedFilter` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IOrderedFilter : Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata - { - } - - } - namespace ModelBinding - { - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IBindingSourceMetadata` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IBindingSourceMetadata - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.ModelBinding.IModelNameProvider` in `Microsoft.AspNetCore.Mvc.Abstractions, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IModelNameProvider - { - } - - } - namespace Routing - { - // Generated from `Microsoft.AspNetCore.Mvc.Routing.HttpMethodAttribute` in `Microsoft.AspNetCore.Mvc.Core, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - abstract public class HttpMethodAttribute : System.Attribute, Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider, Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.Routing.IActionHttpMethodProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IActionHttpMethodProvider - { - } - - // Generated from `Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider` in `Microsoft.AspNetCore.Mvc.Core, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IRouteTemplateProvider - { - } - - } - namespace ViewFeatures - { - // Generated from `Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary` in `Microsoft.AspNetCore.Mvc.ViewFeatures, Version=1.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class ViewDataDictionary : System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> - { - 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 Values { get => throw null; } - public System.Collections.Generic.ICollection Keys { get => throw null; } - public bool Contains(System.Collections.Generic.KeyValuePair item) => throw null; - public bool ContainsKey(string key) => throw null; - public bool IsReadOnly { 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 object value) => throw null; - public int Count { get => throw null; } - public object this[string index] { get => throw null; set => throw null; } - public void Add(System.Collections.Generic.KeyValuePair item) => throw null; - public void Add(string key, object value) => throw null; - public void Clear() => throw null; - public void CopyTo(System.Collections.Generic.KeyValuePair[] array, int arrayIndex) => throw null; - } - - } - } - } -} From 7c689470356cb135482ab70a9dac1fef32c2b70e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 12:45:13 +0200 Subject: [PATCH 674/736] C#: Update flow summaries expected out as we now include ASP.NET Core as stubs for these tests. --- .../dataflow/library/FlowSummaries.expected | 768 ++++++++++++++++++ .../library/FlowSummariesFiltered.expected | 565 +++++++++++++ 2 files changed, 1333 insertions(+) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index 03cbee43970..91a6bd12235 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -1,3 +1,161 @@ +| Microsoft.AspNetCore.Authentication.OAuth.Claims;ClaimActionCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Authentication.OAuth.Claims;ClaimActionCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Components.RenderTree;ArrayBuilderSegment<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Components.RenderTree;ArrayBuilderSegment<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;Add;(System.Object,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;Add;(System.Object,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;get_Values;();;Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Connections;ConnectionItems;false;set_Item;(System.Object,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Http.Extensions;QueryBuilder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Http.Extensions;QueryBuilder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Http.Features;FeatureCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Http.Features;FeatureCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Http;EndpointMetadataCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Http;EndpointMetadataCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Http;FormCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Http;FormCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Http;HeaderDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Http;HeaderDictionary;false;Add;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Http;HeaderDictionary;false;Add;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Http;HeaderDictionary;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| Microsoft.AspNetCore.Http;HeaderDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Http;HeaderDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Http;HeaderDictionary;false;get_Item;(System.String);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | +| Microsoft.AspNetCore.Http;HeaderDictionary;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | +| Microsoft.AspNetCore.Http;HeaderDictionary;false;get_Values;();;Argument[Qualifier].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[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Http;QueryCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Http;QueryCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.DataAnnotations;MvcDataAnnotationsLocalizationOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.DataAnnotations;MvcDataAnnotationsLocalizationOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Diagnostics;EventData;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Diagnostics;EventData;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Formatters.Xml;DelegatingEnumerable<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Formatters.Xml;DelegatingEnumerable<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Formatters.Xml;MvcXmlOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Formatters.Xml;MvcXmlOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;Add;(System.Object,Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationStateEntry);;Argument[0];Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding.Validation;ValidationStateDictionary;false;get_Values;();;Argument[Qualifier].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[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+KeyEnumerable;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+KeyEnumerable;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+PrefixEnumerable;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+PrefixEnumerable;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+ValueEnumerable;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary+ValueEnumerable;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ModelStateDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ValueProviderResult;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ModelBinding;ValueProviderResult;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.RazorPages;RazorPagesOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.RazorPages;RazorPagesOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Rendering;MultiSelectList;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.Rendering;MultiSelectList;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;Add;(System.String,System.String);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;Add;(System.String,System.String);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;get_Item;(System.String);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;get_Values;();;Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;AttributeDictionary;false;set_Item;(System.String,System.String);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;Add;(System.String,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;Add;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;get_Item;(System.String);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;get_Values;();;Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;TempDataDictionary;false;set_Item;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;Add;(System.String,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;Add;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;get_Item;(System.String);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;get_Values;();;Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;false;set_Item;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Mvc;ApiBehaviorOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc;ApiBehaviorOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc;MvcOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc;MvcOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc;MvcViewOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Mvc;MvcViewOptions;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Mvc;RemoteAttributeBase;false;FormatErrorMessage;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.AspNetCore.Razor.TagHelpers;NullHtmlEncoder;false;Encode;(System.IO.TextWriter,System.Char[],System.Int32,System.Int32);;Argument[1].Element;Argument[0];taint;generated | +| Microsoft.AspNetCore.Razor.TagHelpers;NullHtmlEncoder;false;Encode;(System.IO.TextWriter,System.String,System.Int32,System.Int32);;Argument[1];Argument[0];taint;generated | +| Microsoft.AspNetCore.Razor.TagHelpers;NullHtmlEncoder;false;Encode;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.AspNetCore.Razor.TagHelpers;TagHelperAttributeList;false;Add;(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Razor.TagHelpers;TagHelperAttributeList;false;Insert;(System.Int32,Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute);;Argument[1];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Razor.TagHelpers;TagHelperAttributeList;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | +| Microsoft.AspNetCore.Razor.TagHelpers;TagHelperAttributeList;false;set_Item;(System.Int32,Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute);;Argument[1];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;Add;(System.String,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;Add;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;get_Item;(System.String);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;set_Item;(System.String,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Microsoft.AspNetCore.Routing;RouteValueDictionary;false;set_Item;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Microsoft.AspNetCore.Server.HttpSys;UrlPrefixCollection;false;Add;(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.AspNetCore.Server.HttpSys;UrlPrefixCollection;false;CopyTo;(Microsoft.AspNetCore.Server.HttpSys.UrlPrefix[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| Microsoft.AspNetCore.Server.HttpSys;UrlPrefixCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.AspNetCore.Server.HttpSys;UrlPrefixCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.AspNetCore.Server.IIS.Core;ThrowingWasUpgradedWriteOnlyStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | +| Microsoft.AspNetCore.Server.IIS.Core;ThrowingWasUpgradedWriteOnlyStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | +| Microsoft.AspNetCore.Server.IIS.Core;WriteOnlyStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | +| Microsoft.AspNetCore.Server.IIS.Core;WriteOnlyStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | +| Microsoft.AspNetCore.WebUtilities;BufferedReadStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | +| Microsoft.AspNetCore.WebUtilities;BufferedReadStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | +| Microsoft.AspNetCore.WebUtilities;BufferedReadStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | +| Microsoft.AspNetCore.WebUtilities;BufferedReadStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingReadStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingWriteStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingWriteStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingWriteStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | +| Microsoft.AspNetCore.WebUtilities;FileBufferingWriteStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual | +| Microsoft.AspNetCore.WebUtilities;HttpRequestStreamReader;false;Read;();;Argument[Qualifier];ReturnValue;taint;manual | +| Microsoft.AspNetCore.WebUtilities;HttpRequestStreamReader;false;Read;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | +| Microsoft.AspNetCore.WebUtilities;HttpRequestStreamReader;false;Read;(System.Span);;Argument[Qualifier];ReturnValue;taint;manual | +| Microsoft.AspNetCore.WebUtilities;HttpRequestStreamReader;false;ReadAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | +| Microsoft.AspNetCore.WebUtilities;HttpRequestStreamReader;false;ReadAsync;(System.Memory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;manual | +| Microsoft.AspNetCore.WebUtilities;HttpRequestStreamReader;false;ReadLine;();;Argument[Qualifier];ReturnValue;taint;manual | +| Microsoft.AspNetCore.WebUtilities;HttpRequestStreamReader;false;ReadLineAsync;();;Argument[Qualifier];ReturnValue;taint;manual | +| Microsoft.AspNetCore.WebUtilities;HttpRequestStreamReader;false;ReadToEndAsync;();;Argument[Qualifier];ReturnValue;taint;manual | +| Microsoft.AspNetCore.WebUtilities;HttpResponseStreamWriter;false;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| Microsoft.AspNetCore.WebUtilities;HttpResponseStreamWriter;false;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;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;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;generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;Convert;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Type,System.Type);;Argument[2];ReturnValue;taint;generated | @@ -17,6 +175,322 @@ | Microsoft.CSharp.RuntimeBinder;Binder;false;SetMember;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.String,System.Type,System.Collections.Generic.IEnumerable);;Argument[3].Element;ReturnValue;taint;generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;UnaryOperation;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Linq.Expressions.ExpressionType,System.Type,System.Collections.Generic.IEnumerable);;Argument[2];ReturnValue;taint;generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;UnaryOperation;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Linq.Expressions.ExpressionType,System.Type,System.Collections.Generic.IEnumerable);;Argument[3].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.DateTimeOffset);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.DateTimeOffset);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.DateTimeOffset);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;get_AbsoluteExpiration;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;get_AbsoluteExpirationRelativeToNow;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;get_SlidingExpiration;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_AbsoluteExpiration;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_AbsoluteExpirationRelativeToNow;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_SlidingExpiration;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Primitives.IChangeToken);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.DateTimeOffset);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetOptions;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetOptions;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetOptions;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetPriority;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.CacheItemPriority);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetSize;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Int64);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem);;Argument[2];ReturnValue;taint;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;generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,Microsoft.Extensions.Primitives.IChangeToken);;Argument[2];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,System.DateTimeOffset);;Argument[2];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,System.TimeSpan);;Argument[2];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCache;false;CreateEntry;(System.Object);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCache;false;MemoryCache;(Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Primitives.IChangeToken);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetPriority;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.CacheItemPriority);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetSize;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.Int64);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;get_AbsoluteExpiration;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;get_AbsoluteExpirationRelativeToNow;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;get_Size;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;get_SlidingExpiration;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;set_AbsoluteExpiration;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;set_AbsoluteExpirationRelativeToNow;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;set_Size;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;set_SlidingExpiration;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;get_SizeLimit;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;get_Value;();;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;set_SizeLimit;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration.EnvironmentVariables;EnvironmentVariablesConfigurationProvider;false;EnvironmentVariablesConfigurationProvider;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration.EnvironmentVariables;EnvironmentVariablesConfigurationProvider;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration.Memory;MemoryConfigurationProvider;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.Extensions.Configuration.Memory;MemoryConfigurationProvider;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.Extensions.Configuration.Memory;MemoryConfigurationProvider;false;MemoryConfigurationProvider;(Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration.Memory;MemoryConfigurationSource;false;Build;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration.UserSecrets;PathHelper;false;GetSecretsPathFromSecretsId;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration.Xml;XmlDocumentDecryptor;false;CreateDecryptingXmlReader;(System.IO.Stream,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedBuilderExtensions;false;AddConfiguration;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedBuilderExtensions;false;AddConfiguration;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;GetChildKeys;(System.Collections.Generic.IEnumerable,System.String);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;GetReloadToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;TryGet;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[]);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[],System.Collections.Generic.IDictionary);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get<>;(Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);;Argument[3];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);;Argument[2];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBuilder;false;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetConnectionString;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetRequiredSection;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetRequiredSection;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;Build;();;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;GetReloadToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;GetSection;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;GetSection;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;get_Item;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;get_Properties;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;get_Providers;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;get_Sources;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationPath;false;Combine;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationPath;false;Combine;(System.String[]);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationPath;false;GetParentPath;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationPath;false;GetSectionKey;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationProvider;false;GetReloadToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationProvider;true;GetChildKeys;(System.Collections.Generic.IEnumerable,System.String);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;ConfigurationRoot;(System.Collections.Generic.IList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;GetReloadToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;GetSection;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;GetSection;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;get_Item;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;get_Providers;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;false;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Item;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Path;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetBasePath;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetFileProvider;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider);;Argument[0];ReturnValue;taint;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;generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;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;generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;MemoryConfigurationBuilderExtensions;false;AddInMemoryCollection;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;MemoryConfigurationBuilderExtensions;false;AddInMemoryCollection;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Reflection.Assembly);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Reflection.Assembly,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Reflection.Assembly,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;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;generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;RemoveAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;RemoveAll<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Replace;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Replace;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Replace;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAdd;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAdd;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection;ActivatorUtilities;false;GetServiceOrCreateInstance;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ActivatorUtilities;false;GetServiceOrCreateInstance<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;AsyncServiceScope;false;AsyncServiceScope;(Microsoft.Extensions.DependencyInjection.IServiceScope);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.DependencyInjection;AsyncServiceScope;false;get_ServiceProvider;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;DefaultServiceProviderFactory;false;CreateBuilder;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;DefaultServiceProviderFactory;false;DefaultServiceProviderFactory;(Microsoft.Extensions.DependencyInjection.ServiceProviderOptions);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<,>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;SetHandlerLifetime;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;false;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;Bind<>;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderDataAnnotationsExtensions;false;ValidateDataAnnotations<>;(Microsoft.Extensions.Options.OptionsBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderExtensions;false;ValidateOnStart<>;(Microsoft.Extensions.Options.OptionsBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;AddOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollection;false;Add;(Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[0];Argument[Qualifier].Element;value;manual | +| Microsoft.Extensions.DependencyInjection;ServiceCollection;false;CopyTo;(Microsoft.Extensions.DependencyInjection.ServiceDescriptor[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| Microsoft.Extensions.DependencyInjection;ServiceCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.Extensions.DependencyInjection;ServiceCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.Extensions.DependencyInjection;ServiceCollection;false;Insert;(System.Int32,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[Qualifier].Element;value;manual | +| Microsoft.Extensions.DependencyInjection;ServiceCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | +| Microsoft.Extensions.DependencyInjection;ServiceCollection;false;set_Item;(System.Int32,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[Qualifier].Element;value;manual | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;false;AddHostedService<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,TService);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetRequiredService;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetRequiredService<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetService<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetServices;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetServices<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList,System.String);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.Extensions.FileProviders.Internal;PhysicalDirectoryContents;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.Extensions.FileProviders.Internal;PhysicalDirectoryContents;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.Extensions.FileProviders.Internal;PhysicalDirectoryContents;false;PhysicalDirectoryContents;(System.String,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalDirectoryInfo;false;PhysicalDirectoryInfo;(System.IO.DirectoryInfo);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalFileInfo;false;PhysicalFileInfo;(System.IO.FileInfo);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalFileInfo;false;get_PhysicalPath;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalFilesWatcher;false;PhysicalFilesWatcher;(System.String,System.IO.FileSystemWatcher,System.Boolean,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalFilesWatcher;false;PhysicalFilesWatcher;(System.String,System.IO.FileSystemWatcher,System.Boolean,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PollingFileChangeToken;false;PollingFileChangeToken;(System.IO.FileInfo);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;CompositeFileProvider;(Microsoft.Extensions.FileProviders.IFileProvider[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;CompositeFileProvider;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;GetDirectoryContents;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;GetDirectoryContents;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;get_FileProviders;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders;NotFoundDirectoryContents;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | +| Microsoft.Extensions.FileProviders;NotFoundDirectoryContents;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| Microsoft.Extensions.FileProviders;PhysicalFileProvider;false;GetDirectoryContents;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Abstractions;DirectoryInfoWrapper;false;GetDirectory;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;false;FileInfoWrapper;(System.IO.FileInfo);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;false;get_FullName;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContext<>;false;PushDataFrame;(TFrame);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextLinear+FrameData;false;get_Stem;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextLinear;false;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged+FrameData;false;get_Stem;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;false;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);;Argument[Qualifier];ReturnValue;taint;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[Qualifier];taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;EnumerateFileSystemInfos;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;GetDirectory;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;GetFile;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;get_ParentDirectory;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;Matcher;false;AddExclude;(System.String);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.FileSystemGlobbing;Matcher;false;AddInclude;(System.String);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;ApplicationLifetime;(Microsoft.Extensions.Logging.ILogger);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;get_ApplicationStarted;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;get_ApplicationStopped;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;get_ApplicationStopping;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;BackgroundService;true;StartAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;BackgroundService;true;get_ExecuteTask;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.String[]);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseContentRoot;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseEnvironment;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingScopeHttpMessageHandler;false;LoggingScopeHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingScopeHttpMessageHandler;false;LoggingScopeHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingScopeHttpMessageHandler;false;LoggingScopeHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http;HttpClientFactoryOptions;false;get_HandlerLifetime;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Http;HttpClientFactoryOptions;false;set_HandlerLifetime;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http;HttpMessageHandlerBuilder;false;CreateHandlerPipeline;(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Http;HttpMessageHandlerBuilder;false;CreateHandlerPipeline;(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;ConsoleLoggerProvider;(Microsoft.Extensions.Options.IOptionsMonitor,System.Collections.Generic.IEnumerable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;CreateLogger;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;CreateLogger;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;SetScopeProvider;(Microsoft.Extensions.Logging.IExternalScopeProvider);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.Debug;DebugLoggerProvider;false;CreateLogger;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;CreateLogger;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;CreateLogger;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;EventLogLoggerProvider;(Microsoft.Extensions.Logging.EventLog.EventLogSettings);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;SetScopeProvider;(Microsoft.Extensions.Logging.IExternalScopeProvider);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.EventSource;EventSourceLoggerProvider;false;CreateLogger;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.EventSource;EventSourceLoggerProvider;false;EventSourceLoggerProvider;(Microsoft.Extensions.Logging.EventSource.LoggingEventSource);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsoleFormatter<,>;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;false;AddDebug;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.EventLog.EventLogSettings);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;EventSourceLoggerFactoryExtensions;false;AddEventSourceLogger;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;Logger<>;false;BeginScope<>;(TState);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggerExtensions;false;BeginScope;(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[]);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggerExternalScopeProvider;false;Push;(System.Object);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;AddConfiguration;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;AddProvider;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.ILoggerProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;ClearProviders;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;SetMinimumLevel;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Diagnostics.SourceSwitch);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Diagnostics.TraceListener);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Options;ConfigurationChangeTokenSource<>;false;ConfigurationChangeTokenSource;(System.String,Microsoft.Extensions.Configuration.IConfiguration);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;ConfigurationChangeTokenSource<>;false;GetChangeToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[1].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[2].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsManager<>;false;OptionsManager;(Microsoft.Extensions.Options.IOptionsFactory);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsMonitor<>;false;OptionsMonitor;(Microsoft.Extensions.Options.IOptionsFactory,System.Collections.Generic.IEnumerable>,Microsoft.Extensions.Options.IOptionsMonitorCache);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsMonitor<>;false;OptionsMonitor;(Microsoft.Extensions.Options.IOptionsFactory,System.Collections.Generic.IEnumerable>,Microsoft.Extensions.Options.IOptionsMonitorCache);;Argument[2];Argument[Qualifier];taint;generated | | Microsoft.Extensions.Primitives;Extensions;false;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);;Argument[0];ReturnValue;taint;generated | | Microsoft.Extensions.Primitives;StringSegment;false;Split;(System.Char[]);;Argument[0].Element;ReturnValue;taint;generated | | Microsoft.Extensions.Primitives;StringSegment;false;Split;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;generated | @@ -89,6 +563,15 @@ | Microsoft.Extensions.Primitives;StringValues;false;set_Item;(System.Int32,System.String);;Argument[1];Argument[Qualifier].Element;value;manual | | Microsoft.Extensions.Primitives;StringValues;false;set_Item;(System.Int32,System.String);;Argument[1];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;set_Item;(System.Int32,System.String);;Argument[Qualifier];ReturnValue;taint;manual | +| Microsoft.Extensions.WebEncoders.Testing;HtmlTestEncoder;false;Encode;(System.IO.TextWriter,System.Char[],System.Int32,System.Int32);;Argument[1].Element;Argument[0];taint;generated | +| Microsoft.Extensions.WebEncoders.Testing;HtmlTestEncoder;false;Encode;(System.IO.TextWriter,System.String,System.Int32,System.Int32);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.WebEncoders.Testing;HtmlTestEncoder;false;Encode;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.WebEncoders.Testing;JavaScriptTestEncoder;false;Encode;(System.IO.TextWriter,System.Char[],System.Int32,System.Int32);;Argument[1].Element;Argument[0];taint;generated | +| Microsoft.Extensions.WebEncoders.Testing;JavaScriptTestEncoder;false;Encode;(System.IO.TextWriter,System.String,System.Int32,System.Int32);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.WebEncoders.Testing;JavaScriptTestEncoder;false;Encode;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.WebEncoders.Testing;UrlTestEncoder;false;Encode;(System.IO.TextWriter,System.Char[],System.Int32,System.Int32);;Argument[1].Element;Argument[0];taint;generated | +| Microsoft.Extensions.WebEncoders.Testing;UrlTestEncoder;false;Encode;(System.IO.TextWriter,System.String,System.Int32,System.Int32);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.WebEncoders.Testing;UrlTestEncoder;false;Encode;(System.String);;Argument[0];ReturnValue;taint;generated | | Microsoft.VisualBasic;Collection;false;Add;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual | | Microsoft.VisualBasic;Collection;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | Microsoft.VisualBasic;Collection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | @@ -2515,6 +2998,10 @@ | System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>);;Argument[0];ReturnValue;taint;generated | | System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver>);;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;DiagnosticSource;false;StartActivity;(System.Diagnostics.Activity,System.Object);;Argument[0];ReturnValue;taint;generated | +| System.Diagnostics;EventLogEntryCollection;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Diagnostics;EventLogEntryCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Diagnostics;EventLogTraceListener;false;get_Name;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Diagnostics;EventLogTraceListener;false;set_Name;(System.String);;Argument[0];Argument[Qualifier];taint;generated | | System.Diagnostics;FileVersionInfo;false;GetVersionInfo;(System.String);;Argument[0];ReturnValue;taint;generated | | System.Diagnostics;FileVersionInfo;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;FileVersionInfo;false;get_Comments;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -2942,6 +3429,20 @@ | System.IO.MemoryMappedFiles;MemoryMappedFile;false;get_SafeMemoryMappedFileHandle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.MemoryMappedFiles;MemoryMappedViewAccessor;false;get_SafeMemoryMappedViewHandle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.MemoryMappedFiles;MemoryMappedViewStream;false;get_SafeMemoryMappedViewHandle;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;Pipe;false;Pipe;(System.IO.Pipelines.PipeOptions);;Argument[0];Argument[Qualifier];taint;generated | +| System.IO.Pipelines;Pipe;false;get_Reader;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;Pipe;false;get_Writer;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;false;Create;(System.Buffers.ReadOnlySequence);;Argument[0];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;false;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeReaderOptions);;Argument[1];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;false;ReadAtLeastAsync;(System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;true;AsStream;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;true;CopyToAsync;(System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;true;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeWriter;true;AsStream;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;ReadResult;false;ReadResult;(System.Buffers.ReadOnlySequence,System.Boolean,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| System.IO.Pipelines;ReadResult;false;get_Buffer;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;StreamPipeExtensions;false;CopyToAsync;(System.IO.Stream,System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.IO.Pipes;AnonymousPipeClientStream;false;AnonymousPipeClientStream;(System.IO.Pipes.PipeDirection,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[1];Argument[Qualifier];taint;generated | | System.IO.Pipes;AnonymousPipeServerStream;false;AnonymousPipeServerStream;(System.IO.Pipes.PipeDirection,Microsoft.Win32.SafeHandles.SafePipeHandle,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[1];Argument[Qualifier];taint;generated | | System.IO.Pipes;AnonymousPipeServerStream;false;AnonymousPipeServerStream;(System.IO.Pipes.PipeDirection,Microsoft.Win32.SafeHandles.SafePipeHandle,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[2];Argument[Qualifier];taint;generated | @@ -6764,6 +7265,273 @@ | System.Security.Cryptography.X509Certificates;X509SignatureGenerator;false;get_PublicKey;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography.X509Certificates;X509SubjectKeyIdentifierExtension;false;CopyFrom;(System.Security.Cryptography.AsnEncodedData);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography.X509Certificates;X509SubjectKeyIdentifierExtension;false;get_SubjectKeyIdentifier;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;CipherData;(System.Security.Cryptography.Xml.CipherReference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;get_CipherReference;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;get_CipherValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;set_CipherReference;(System.Security.Cryptography.Xml.CipherReference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;CipherReference;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;CipherReference;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DSAKeyValue;false;DSAKeyValue;(System.Security.Cryptography.DSA);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DSAKeyValue;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DSAKeyValue;false;set_Key;(System.Security.Cryptography.DSA);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;DataObject;(System.String,System.String,System.String,System.Xml.XmlElement);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;DataObject;(System.String,System.String,System.String,System.Xml.XmlElement);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;DataObject;(System.String,System.String,System.String,System.Xml.XmlElement);;Argument[2];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;DataObject;(System.String,System.String,System.String,System.Xml.XmlElement);;Argument[3].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;get_Data;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;get_MimeType;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;set_Data;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;set_Encoding;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;set_MimeType;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedData;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedData;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;AddReference;(System.Security.Cryptography.Xml.DataReference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;AddReference;(System.Security.Cryptography.Xml.KeyReference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;get_CarriedKeyName;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;get_Recipient;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;get_ReferenceList;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;set_CarriedKeyName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;set_Recipient;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;EncryptedReference;(System.String,System.Security.Cryptography.Xml.TransformChain);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;EncryptedReference;(System.String,System.Security.Cryptography.Xml.TransformChain);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;get_ReferenceType;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;get_TransformChain;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;get_Uri;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;set_ReferenceType;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;set_TransformChain;(System.Security.Cryptography.Xml.TransformChain);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;set_Uri;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;true;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;true;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;false;get_KeyInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;false;set_KeyInfo;(System.Security.Cryptography.Xml.KeyInfo);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_CipherData;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_EncryptionMethod;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_EncryptionProperties;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_MimeType;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_Type;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_CipherData;(System.Security.Cryptography.Xml.CipherData);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_Encoding;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_EncryptionMethod;(System.Security.Cryptography.Xml.EncryptionMethod);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_MimeType;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_Type;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;EncryptedXml;(System.Xml.XmlDocument,System.Security.Policy.Evidence);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;EncryptedXml;(System.Xml.XmlDocument,System.Security.Policy.Evidence);;Argument[1].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;GetDecryptionKey;(System.Security.Cryptography.Xml.EncryptedData,System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;GetIdElement;(System.Xml.XmlDocument,System.String);;Argument[0].Element;ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;get_DocumentEvidence;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;get_Recipient;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;get_Resolver;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;set_DocumentEvidence;(System.Security.Policy.Evidence);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;set_Encoding;(System.Text.Encoding);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;set_Recipient;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;set_Resolver;(System.Xml.XmlResolver);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;EncryptionMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;get_KeyAlgorithm;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;set_KeyAlgorithm;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;EncryptionProperty;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;get_PropertyElement;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;get_Target;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;set_PropertyElement;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;Add;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;Add;(System.Security.Cryptography.Xml.EncryptionProperty);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;CopyTo;(System.Security.Cryptography.Xml.EncryptionProperty[],System.Int32);;Argument[Qualifier];Argument[0].Element;taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;Insert;(System.Int32,System.Security.Cryptography.Xml.EncryptionProperty);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;get_ItemOf;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;set_ItemOf;(System.Int32,System.Security.Cryptography.Xml.EncryptionProperty);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfo;false;AddClause;(System.Security.Cryptography.Xml.KeyInfoClause);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfo;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Security.Cryptography.Xml;KeyInfo;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfo;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfo;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;KeyInfoEncryptedKey;(System.Security.Cryptography.Xml.EncryptedKey);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;get_EncryptedKey;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;set_EncryptedKey;(System.Security.Cryptography.Xml.EncryptedKey);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoName;false;KeyInfoName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoName;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoName;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoName;false;set_Value;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;KeyInfoNode;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;set_Value;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;KeyInfoRetrievalMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;KeyInfoRetrievalMethod;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;KeyInfoRetrievalMethod;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;get_Type;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;get_Uri;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;set_Type;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;set_Uri;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;AddSubjectKeyId;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;AddSubjectName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_CRL;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_Certificates;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_IssuerSerials;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_SubjectKeyIds;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_SubjectNames;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;set_CRL;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;RSAKeyValue;false;RSAKeyValue;(System.Security.Cryptography.RSA);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;RSAKeyValue;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;RSAKeyValue;false;set_Key;(System.Security.Cryptography.RSA);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;AddTransform;(System.Security.Cryptography.Xml.Transform);;Argument[Qualifier];Argument[0];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;Reference;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;Reference;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_DigestMethod;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_DigestValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_TransformChain;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_Type;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_Uri;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_DigestMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_DigestValue;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_TransformChain;(System.Security.Cryptography.Xml.TransformChain);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_Type;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_Uri;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;ReferenceList;false;Add;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Security.Cryptography.Xml;ReferenceList;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Security.Cryptography.Xml;ReferenceList;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Security.Cryptography.Xml;ReferenceList;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Security.Cryptography.Xml;ReferenceList;false;Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;ReferenceList;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual | +| System.Security.Cryptography.Xml;ReferenceList;false;get_ItemOf;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;ReferenceList;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;ReferenceList;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | +| System.Security.Cryptography.Xml;ReferenceList;false;set_ItemOf;(System.Int32,System.Security.Cryptography.Xml.EncryptedReference);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;AddObject;(System.Security.Cryptography.Xml.DataObject);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_KeyInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_ObjectList;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_SignatureValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_SignedInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_KeyInfo;(System.Security.Cryptography.Xml.KeyInfo);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_ObjectList;(System.Collections.IList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_SignatureValue;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_SignedInfo;(System.Security.Cryptography.Xml.SignedInfo);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;AddReference;(System.Security.Cryptography.Xml.Reference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;AddReference;(System.Security.Cryptography.Xml.Reference);;Argument[Qualifier];Argument[0];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | +| System.Security.Cryptography.Xml;SignedInfo;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | +| System.Security.Cryptography.Xml;SignedInfo;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_CanonicalizationMethod;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_CanonicalizationMethodObject;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_References;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_SignatureLength;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_SignatureMethod;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;set_CanonicalizationMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;set_SignatureLength;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;set_SignatureMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;GetIdElement;(System.Xml.XmlDocument,System.String);;Argument[0].Element;ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;SignedXml;(System.Xml.XmlDocument);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;SignedXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_EncryptedXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_KeyInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SafeCanonicalizationMethods;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_Signature;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SignatureFormatValidator;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SignatureValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SignedInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SigningKey;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SigningKeyName;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_EncryptedXml;(System.Security.Cryptography.Xml.EncryptedXml);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_KeyInfo;(System.Security.Cryptography.Xml.KeyInfo);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_Resolver;(System.Xml.XmlResolver);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_SigningKey;(System.Security.Cryptography.AsymmetricAlgorithm);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_SigningKeyName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Transform;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Transform;false;get_Algorithm;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Transform;false;get_Context;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Transform;false;get_PropagatedNamespaces;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Transform;false;set_Algorithm;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Transform;false;set_Context;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Transform;false;set_Resolver;(System.Xml.XmlResolver);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;TransformChain;false;Add;(System.Security.Cryptography.Xml.Transform);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;TransformChain;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;AddExceptUri;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;LoadInnerXml;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;get_EncryptedXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;set_EncryptedXml;(System.Security.Cryptography.Xml.EncryptedXml);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigBase64Transform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigBase64Transform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigBase64Transform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigBase64Transform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;LoadInnerXml;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;XmlDsigExcC14NTransform;(System.Boolean,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;get_InclusiveNamespacesPrefixList;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;set_InclusiveNamespacesPrefixList;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXPathTransform;false;LoadInnerXml;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXPathTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXPathTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXPathTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;GetInnerXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;LoadInnerXml;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;get_Decryptor;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;set_Decryptor;(System.Security.Cryptography.Xml.IRelDecryptor);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;AsnEncodedData;false;AsnEncodedData;(System.Security.Cryptography.AsnEncodedData);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;AsnEncodedData;false;AsnEncodedData;(System.Security.Cryptography.Oid,System.Byte[]);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;AsnEncodedData;false;AsnEncodedData;(System.Security.Cryptography.Oid,System.ReadOnlySpan);;Argument[0];Argument[Qualifier];taint;generated | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index 9f6938d44ea..8b7bd50931f 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -17,6 +17,307 @@ | Microsoft.CSharp.RuntimeBinder;Binder;false;SetMember;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.String,System.Type,System.Collections.Generic.IEnumerable);;Argument[3].Element;ReturnValue;taint;generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;UnaryOperation;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Linq.Expressions.ExpressionType,System.Type,System.Collections.Generic.IEnumerable);;Argument[2];ReturnValue;taint;generated | | Microsoft.CSharp.RuntimeBinder;Binder;false;UnaryOperation;(Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,System.Linq.Expressions.ExpressionType,System.Type,System.Collections.Generic.IEnumerable);;Argument[3].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.DateTimeOffset);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.DateTimeOffset);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.DateTimeOffset);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;get_AbsoluteExpiration;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;get_AbsoluteExpirationRelativeToNow;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;get_SlidingExpiration;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_AbsoluteExpiration;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_AbsoluteExpirationRelativeToNow;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Distributed;DistributedCacheEntryOptions;false;set_SlidingExpiration;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Primitives.IChangeToken);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.DateTimeOffset);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetOptions;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetOptions;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetOptions;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetPriority;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.CacheItemPriority);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetSize;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Int64);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;false;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem);;Argument[2];ReturnValue;taint;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;generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,Microsoft.Extensions.Primitives.IChangeToken);;Argument[2];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,System.DateTimeOffset);;Argument[2];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;CacheExtensions;false;Set<>;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,TItem,System.TimeSpan);;Argument[2];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCache;false;CreateEntry;(System.Object);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCache;false;MemoryCache;(Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.ILoggerFactory);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Primitives.IChangeToken);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetPriority;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.CacheItemPriority);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetSize;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.Int64);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[1];Argument[0];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;false;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;get_AbsoluteExpiration;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;get_AbsoluteExpirationRelativeToNow;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;get_Size;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;get_SlidingExpiration;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;set_AbsoluteExpiration;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;set_AbsoluteExpirationRelativeToNow;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;set_Size;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryOptions;false;set_SlidingExpiration;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;get_SizeLimit;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;get_Value;();;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Caching.Memory;MemoryCacheOptions;false;set_SizeLimit;(System.Nullable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration.EnvironmentVariables;EnvironmentVariablesConfigurationProvider;false;EnvironmentVariablesConfigurationProvider;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration.EnvironmentVariables;EnvironmentVariablesConfigurationProvider;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration.Memory;MemoryConfigurationProvider;false;MemoryConfigurationProvider;(Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration.Memory;MemoryConfigurationSource;false;Build;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration.UserSecrets;PathHelper;false;GetSecretsPathFromSecretsId;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration.Xml;XmlDocumentDecryptor;false;CreateDecryptingXmlReader;(System.IO.Stream,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedBuilderExtensions;false;AddConfiguration;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedBuilderExtensions;false;AddConfiguration;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;GetChildKeys;(System.Collections.Generic.IEnumerable,System.String);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;GetReloadToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ChainedConfigurationProvider;false;TryGet;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[]);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;false;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[],System.Collections.Generic.IDictionary);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;Get<>;(Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);;Argument[3];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;false;GetValue<>;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);;Argument[2];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationBuilder;false;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetConnectionString;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetRequiredSection;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationExtensions;false;GetRequiredSection;(Microsoft.Extensions.Configuration.IConfiguration,System.String);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;Build;();;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;GetReloadToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;GetSection;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;GetSection;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;get_Item;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;get_Properties;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;get_Providers;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationManager;false;get_Sources;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationPath;false;Combine;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationPath;false;Combine;(System.String[]);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationPath;false;GetParentPath;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationPath;false;GetSectionKey;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationProvider;false;GetReloadToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationProvider;true;GetChildKeys;(System.Collections.Generic.IEnumerable,System.String);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;ConfigurationRoot;(System.Collections.Generic.IList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;GetReloadToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;GetSection;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;GetSection;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;get_Item;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRoot;false;get_Providers;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;false;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Item;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Path;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;ConfigurationSection;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetBasePath;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;FileConfigurationExtensions;false;SetFileProvider;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider);;Argument[0];ReturnValue;taint;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;generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;IniConfigurationExtensions;false;AddIniStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;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;generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;false;AddJsonStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;MemoryConfigurationBuilderExtensions;false;AddInMemoryCollection;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;MemoryConfigurationBuilderExtensions;false;AddInMemoryCollection;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Collections.Generic.IEnumerable>);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Reflection.Assembly);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Reflection.Assembly,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Reflection.Assembly,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;false;AddUserSecrets<>;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;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;generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;false;AddXmlStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Add;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;RemoveAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;RemoveAll<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Replace;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Replace;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;Replace;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAdd;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAdd;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable);;Argument[1].Element;Argument[0].Element;taint;generated | +| Microsoft.Extensions.DependencyInjection;ActivatorUtilities;false;GetServiceOrCreateInstance;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ActivatorUtilities;false;GetServiceOrCreateInstance<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;AsyncServiceScope;false;AsyncServiceScope;(Microsoft.Extensions.DependencyInjection.IServiceScope);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.DependencyInjection;AsyncServiceScope;false;get_ServiceProvider;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;DefaultServiceProviderFactory;false;CreateBuilder;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;DefaultServiceProviderFactory;false;DefaultServiceProviderFactory;(Microsoft.Extensions.DependencyInjection.ServiceProviderOptions);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<,>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler<>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;SetHandlerLifetime;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.TimeSpan);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;false;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;Bind<>;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderDataAnnotationsExtensions;false;ValidateDataAnnotations<>;(Microsoft.Extensions.Options.OptionsBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsBuilderExtensions;false;ValidateOnStart<>;(Microsoft.Extensions.Options.OptionsBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;false;Configure<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;AddOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;false;ConfigureOptions<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;false;AddHostedService<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddSingleton<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,TService);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<,>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetRequiredService;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetRequiredService<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetService<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetServices;(System.IServiceProvider,System.Type);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.DependencyInjection;ServiceProviderServiceExtensions;false;GetServices<>;(System.IServiceProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList,System.String);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Internal;PhysicalDirectoryContents;false;PhysicalDirectoryContents;(System.String,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalDirectoryInfo;false;PhysicalDirectoryInfo;(System.IO.DirectoryInfo);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalFileInfo;false;PhysicalFileInfo;(System.IO.FileInfo);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalFileInfo;false;get_PhysicalPath;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalFilesWatcher;false;PhysicalFilesWatcher;(System.String,System.IO.FileSystemWatcher,System.Boolean,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PhysicalFilesWatcher;false;PhysicalFilesWatcher;(System.String,System.IO.FileSystemWatcher,System.Boolean,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders.Physical;PollingFileChangeToken;false;PollingFileChangeToken;(System.IO.FileInfo);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;CompositeFileProvider;(Microsoft.Extensions.FileProviders.IFileProvider[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;CompositeFileProvider;(System.Collections.Generic.IEnumerable);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;GetDirectoryContents;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;GetDirectoryContents;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders;CompositeFileProvider;false;get_FileProviders;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileProviders;PhysicalFileProvider;false;GetDirectoryContents;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Abstractions;DirectoryInfoWrapper;false;GetDirectory;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;false;FileInfoWrapper;(System.IO.FileInfo);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;false;get_FullName;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContext<>;false;PushDataFrame;(TFrame);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextLinear+FrameData;false;get_Stem;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextLinear;false;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged+FrameData;false;get_Stem;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;false;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);;Argument[Qualifier];ReturnValue;taint;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[Qualifier];taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;EnumerateFileSystemInfos;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;GetDirectory;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;GetFile;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;InMemoryDirectoryInfo;false;get_ParentDirectory;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.FileSystemGlobbing;Matcher;false;AddExclude;(System.String);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.FileSystemGlobbing;Matcher;false;AddInclude;(System.String);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;ApplicationLifetime;(Microsoft.Extensions.Logging.ILogger);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;get_ApplicationStarted;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;get_ApplicationStopped;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting.Internal;ApplicationLifetime;false;get_ApplicationStopping;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;BackgroundService;true;StartAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;BackgroundService;true;get_ExecuteTask;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);;Argument[Qualifier];ReturnValue;value;generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.String[]);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseContentRoot;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseEnvironment;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;false;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingScopeHttpMessageHandler;false;LoggingScopeHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingScopeHttpMessageHandler;false;LoggingScopeHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http.Logging;LoggingScopeHttpMessageHandler;false;LoggingScopeHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http;HttpClientFactoryOptions;false;get_HandlerLifetime;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Http;HttpClientFactoryOptions;false;set_HandlerLifetime;(System.TimeSpan);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Http;HttpMessageHandlerBuilder;false;CreateHandlerPipeline;(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Http;HttpMessageHandlerBuilder;false;CreateHandlerPipeline;(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable);;Argument[1].Element;ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;ConsoleLoggerProvider;(Microsoft.Extensions.Options.IOptionsMonitor,System.Collections.Generic.IEnumerable);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;CreateLogger;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;CreateLogger;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.Console;ConsoleLoggerProvider;false;SetScopeProvider;(Microsoft.Extensions.Logging.IExternalScopeProvider);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.Debug;DebugLoggerProvider;false;CreateLogger;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;CreateLogger;(System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;CreateLogger;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;EventLogLoggerProvider;(Microsoft.Extensions.Logging.EventLog.EventLogSettings);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.EventLog;EventLogLoggerProvider;false;SetScopeProvider;(Microsoft.Extensions.Logging.IExternalScopeProvider);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.EventSource;EventSourceLoggerProvider;false;CreateLogger;(System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging.EventSource;EventSourceLoggerProvider;false;EventSourceLoggerProvider;(Microsoft.Extensions.Logging.EventSource.LoggingEventSource);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsoleFormatter<,>;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;false;AddDebug;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.EventLog.EventLogSettings);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;EventSourceLoggerFactoryExtensions;false;AddEventSourceLogger;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;false;AddFilter<>;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;Logger<>;false;BeginScope<>;(TState);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggerExtensions;false;BeginScope;(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[]);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggerExternalScopeProvider;false;Push;(System.Object);;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;AddConfiguration;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;AddProvider;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.ILoggerProvider);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;ClearProviders;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;LoggingBuilderExtensions;false;SetMinimumLevel;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.LogLevel);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Diagnostics.SourceSwitch);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Logging;TraceSourceFactoryExtensions;false;AddTraceSource;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Diagnostics.TraceListener);;Argument[0];ReturnValue;taint;generated | +| Microsoft.Extensions.Options;ConfigurationChangeTokenSource<>;false;ConfigurationChangeTokenSource;(System.String,Microsoft.Extensions.Configuration.IConfiguration);;Argument[1];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;ConfigurationChangeTokenSource<>;false;GetChangeToken;();;Argument[Qualifier];ReturnValue;taint;generated | +| Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[0].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[1].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsFactory<>;false;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);;Argument[2].Element;Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsManager<>;false;OptionsManager;(Microsoft.Extensions.Options.IOptionsFactory);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsMonitor<>;false;OptionsMonitor;(Microsoft.Extensions.Options.IOptionsFactory,System.Collections.Generic.IEnumerable>,Microsoft.Extensions.Options.IOptionsMonitorCache);;Argument[0];Argument[Qualifier];taint;generated | +| Microsoft.Extensions.Options;OptionsMonitor<>;false;OptionsMonitor;(Microsoft.Extensions.Options.IOptionsFactory,System.Collections.Generic.IEnumerable>,Microsoft.Extensions.Options.IOptionsMonitorCache);;Argument[2];Argument[Qualifier];taint;generated | | Microsoft.Extensions.Primitives;Extensions;false;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);;Argument[0];ReturnValue;taint;generated | | Microsoft.Extensions.Primitives;StringSegment;false;Split;(System.Char[]);;Argument[0].Element;ReturnValue;taint;generated | | Microsoft.Extensions.Primitives;StringSegment;false;Split;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2319,6 +2620,20 @@ | System.IO.MemoryMappedFiles;MemoryMappedFile;false;get_SafeMemoryMappedFileHandle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.MemoryMappedFiles;MemoryMappedViewAccessor;false;get_SafeMemoryMappedViewHandle;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.MemoryMappedFiles;MemoryMappedViewStream;false;get_SafeMemoryMappedViewHandle;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;Pipe;false;Pipe;(System.IO.Pipelines.PipeOptions);;Argument[0];Argument[Qualifier];taint;generated | +| System.IO.Pipelines;Pipe;false;get_Reader;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;Pipe;false;get_Writer;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;false;Create;(System.Buffers.ReadOnlySequence);;Argument[0];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;false;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeReaderOptions);;Argument[1];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;false;ReadAtLeastAsync;(System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;true;AsStream;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;true;CopyToAsync;(System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeReader;true;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[1];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeWriter;true;AsStream;(System.Boolean);;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;PipeWriter;true;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;ReadResult;false;ReadResult;(System.Buffers.ReadOnlySequence,System.Boolean,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | +| System.IO.Pipelines;ReadResult;false;get_Buffer;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.IO.Pipelines;StreamPipeExtensions;false;CopyToAsync;(System.IO.Stream,System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken);;Argument[2];ReturnValue;taint;generated | | System.IO.Pipes;AnonymousPipeClientStream;false;AnonymousPipeClientStream;(System.IO.Pipes.PipeDirection,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[1];Argument[Qualifier];taint;generated | | System.IO.Pipes;AnonymousPipeServerStream;false;AnonymousPipeServerStream;(System.IO.Pipes.PipeDirection,Microsoft.Win32.SafeHandles.SafePipeHandle,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[1];Argument[Qualifier];taint;generated | | System.IO.Pipes;AnonymousPipeServerStream;false;AnonymousPipeServerStream;(System.IO.Pipes.PipeDirection,Microsoft.Win32.SafeHandles.SafePipeHandle,Microsoft.Win32.SafeHandles.SafePipeHandle);;Argument[2];Argument[Qualifier];taint;generated | @@ -5816,6 +6131,256 @@ | System.Security.Cryptography.X509Certificates;X509SignatureGenerator;false;get_PublicKey;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Security.Cryptography.X509Certificates;X509SubjectKeyIdentifierExtension;false;CopyFrom;(System.Security.Cryptography.AsnEncodedData);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography.X509Certificates;X509SubjectKeyIdentifierExtension;false;get_SubjectKeyIdentifier;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;CipherData;(System.Security.Cryptography.Xml.CipherReference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;get_CipherReference;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;get_CipherValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;CipherData;false;set_CipherReference;(System.Security.Cryptography.Xml.CipherReference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DSAKeyValue;false;DSAKeyValue;(System.Security.Cryptography.DSA);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DSAKeyValue;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DSAKeyValue;false;set_Key;(System.Security.Cryptography.DSA);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;DataObject;(System.String,System.String,System.String,System.Xml.XmlElement);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;DataObject;(System.String,System.String,System.String,System.Xml.XmlElement);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;DataObject;(System.String,System.String,System.String,System.Xml.XmlElement);;Argument[2];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;DataObject;(System.String,System.String,System.String,System.Xml.XmlElement);;Argument[3].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;get_Data;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;get_MimeType;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;set_Data;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;set_Encoding;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;DataObject;false;set_MimeType;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedData;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedData;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;AddReference;(System.Security.Cryptography.Xml.DataReference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;AddReference;(System.Security.Cryptography.Xml.KeyReference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;get_CarriedKeyName;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;get_Recipient;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;get_ReferenceList;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;set_CarriedKeyName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedKey;false;set_Recipient;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;EncryptedReference;(System.String,System.Security.Cryptography.Xml.TransformChain);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;EncryptedReference;(System.String,System.Security.Cryptography.Xml.TransformChain);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;get_ReferenceType;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;get_TransformChain;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;get_Uri;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;set_ReferenceType;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;set_TransformChain;(System.Security.Cryptography.Xml.TransformChain);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;false;set_Uri;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;true;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedReference;true;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;false;get_KeyInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;false;set_KeyInfo;(System.Security.Cryptography.Xml.KeyInfo);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_CipherData;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_EncryptionMethod;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_EncryptionProperties;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_MimeType;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;get_Type;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_CipherData;(System.Security.Cryptography.Xml.CipherData);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_Encoding;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_EncryptionMethod;(System.Security.Cryptography.Xml.EncryptionMethod);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_MimeType;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedType;true;set_Type;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;EncryptedXml;(System.Xml.XmlDocument,System.Security.Policy.Evidence);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;EncryptedXml;(System.Xml.XmlDocument,System.Security.Policy.Evidence);;Argument[1].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;GetDecryptionKey;(System.Security.Cryptography.Xml.EncryptedData,System.String);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;GetIdElement;(System.Xml.XmlDocument,System.String);;Argument[0].Element;ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;get_DocumentEvidence;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;get_Recipient;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;get_Resolver;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;set_DocumentEvidence;(System.Security.Policy.Evidence);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;set_Encoding;(System.Text.Encoding);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;set_Recipient;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptedXml;false;set_Resolver;(System.Xml.XmlResolver);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;EncryptionMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;get_KeyAlgorithm;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionMethod;false;set_KeyAlgorithm;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;EncryptionProperty;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;get_PropertyElement;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;get_Target;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionProperty;false;set_PropertyElement;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;Add;(System.Security.Cryptography.Xml.EncryptionProperty);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;CopyTo;(System.Security.Cryptography.Xml.EncryptionProperty[],System.Int32);;Argument[Qualifier];Argument[0].Element;taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;Insert;(System.Int32,System.Security.Cryptography.Xml.EncryptionProperty);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;get_ItemOf;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;EncryptionPropertyCollection;false;set_ItemOf;(System.Int32,System.Security.Cryptography.Xml.EncryptionProperty);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfo;false;AddClause;(System.Security.Cryptography.Xml.KeyInfoClause);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfo;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfo;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfo;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;KeyInfoEncryptedKey;(System.Security.Cryptography.Xml.EncryptedKey);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;get_EncryptedKey;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;false;set_EncryptedKey;(System.Security.Cryptography.Xml.EncryptedKey);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoName;false;KeyInfoName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoName;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoName;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoName;false;set_Value;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;KeyInfoNode;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoNode;false;set_Value;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;KeyInfoRetrievalMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;KeyInfoRetrievalMethod;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;KeyInfoRetrievalMethod;(System.String,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;get_Type;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;get_Uri;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;set_Type;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoRetrievalMethod;false;set_Uri;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;AddSubjectKeyId;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;AddSubjectName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_CRL;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_Certificates;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_IssuerSerials;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_SubjectKeyIds;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;get_SubjectNames;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;KeyInfoX509Data;false;set_CRL;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;RSAKeyValue;false;RSAKeyValue;(System.Security.Cryptography.RSA);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;RSAKeyValue;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;RSAKeyValue;false;set_Key;(System.Security.Cryptography.RSA);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;AddTransform;(System.Security.Cryptography.Xml.Transform);;Argument[Qualifier];Argument[0];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;Reference;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;Reference;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_DigestMethod;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_DigestValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_TransformChain;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_Type;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;get_Uri;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_DigestMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_DigestValue;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_TransformChain;(System.Security.Cryptography.Xml.TransformChain);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_Type;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Reference;false;set_Uri;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;ReferenceList;false;Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;ReferenceList;false;get_ItemOf;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;ReferenceList;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;ReferenceList;false;set_ItemOf;(System.Int32,System.Security.Cryptography.Xml.EncryptedReference);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;AddObject;(System.Security.Cryptography.Xml.DataObject);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_KeyInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_ObjectList;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_SignatureValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;get_SignedInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_KeyInfo;(System.Security.Cryptography.Xml.KeyInfo);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_ObjectList;(System.Collections.IList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_SignatureValue;(System.Byte[]);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Signature;false;set_SignedInfo;(System.Security.Cryptography.Xml.SignedInfo);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;AddReference;(System.Security.Cryptography.Xml.Reference);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;AddReference;(System.Security.Cryptography.Xml.Reference);;Argument[Qualifier];Argument[0];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_CanonicalizationMethod;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_CanonicalizationMethodObject;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_Id;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_References;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_SignatureLength;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;get_SignatureMethod;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;set_CanonicalizationMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;set_Id;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;set_SignatureLength;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedInfo;false;set_SignatureMethod;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;GetIdElement;(System.Xml.XmlDocument,System.String);;Argument[0].Element;ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;LoadXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;SignedXml;(System.Xml.XmlDocument);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;SignedXml;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_EncryptedXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_KeyInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SafeCanonicalizationMethods;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_Signature;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SignatureFormatValidator;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SignatureValue;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SignedInfo;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SigningKey;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;get_SigningKeyName;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_EncryptedXml;(System.Security.Cryptography.Xml.EncryptedXml);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_KeyInfo;(System.Security.Cryptography.Xml.KeyInfo);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_Resolver;(System.Xml.XmlResolver);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_SigningKey;(System.Security.Cryptography.AsymmetricAlgorithm);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;SignedXml;false;set_SigningKeyName;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Transform;false;GetXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Transform;false;get_Algorithm;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Transform;false;get_Context;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Transform;false;get_PropagatedNamespaces;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;Transform;false;set_Algorithm;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Transform;false;set_Context;(System.Xml.XmlElement);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;Transform;false;set_Resolver;(System.Xml.XmlResolver);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;TransformChain;false;Add;(System.Security.Cryptography.Xml.Transform);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;TransformChain;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;AddExceptUri;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;LoadInnerXml;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;get_EncryptedXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDecryptionTransform;false;set_EncryptedXml;(System.Security.Cryptography.Xml.EncryptedXml);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigBase64Transform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigBase64Transform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigBase64Transform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigBase64Transform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigC14NTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigEnvelopedSignatureTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;LoadInnerXml;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;XmlDsigExcC14NTransform;(System.Boolean,System.String);;Argument[1];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;get_InclusiveNamespacesPrefixList;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;false;set_InclusiveNamespacesPrefixList;(System.String);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXPathTransform;false;LoadInnerXml;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXPathTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXPathTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXPathTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;GetInnerXml;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;LoadInnerXml;(System.Xml.XmlNodeList);;Argument[0].Element;Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;LoadInput;(System.Object);;Argument[0];Argument[Qualifier];taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlDsigXsltTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;GetOutput;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;GetOutput;(System.Type);;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;get_Decryptor;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;get_InputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;get_OutputTypes;();;Argument[Qualifier];ReturnValue;taint;generated | +| System.Security.Cryptography.Xml;XmlLicenseTransform;false;set_Decryptor;(System.Security.Cryptography.Xml.IRelDecryptor);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;AsnEncodedData;false;AsnEncodedData;(System.Security.Cryptography.AsnEncodedData);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;AsnEncodedData;false;AsnEncodedData;(System.Security.Cryptography.Oid,System.Byte[]);;Argument[0];Argument[Qualifier];taint;generated | | System.Security.Cryptography;AsnEncodedData;false;AsnEncodedData;(System.Security.Cryptography.Oid,System.ReadOnlySpan);;Argument[0];Argument[Qualifier];taint;generated | From 3ba893dfa8946887acfa027e70e8a6d72595044d Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 13:15:44 +0200 Subject: [PATCH 675/736] C#: Remove System.Data.SqlClient 4.8.2 stub. --- .../Security Features/CWE-089/options | 2 +- .../4.8.2/System.Data.SqlClient.cs | 972 ------------------ .../4.8.2/System.Data.SqlClient.csproj | 12 - 3 files changed, 1 insertion(+), 985 deletions(-) delete mode 100644 csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.cs delete mode 100644 csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.csproj diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/options b/csharp/ql/test/query-tests/Security Features/CWE-089/options index f8eeead67d5..00db4a60d64 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/options @@ -1,5 +1,5 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/Dapper/2.0.90/Dapper.csproj -semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.csproj +semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/System.Data.SqlClient/4.8.3/System.Data.SqlClient.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/EntityFramework.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs diff --git a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.cs b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.cs deleted file mode 100644 index 5dc70543b3f..00000000000 --- a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.cs +++ /dev/null @@ -1,972 +0,0 @@ -// This file contains auto-generated code. - -namespace Microsoft -{ - namespace SqlServer - { - namespace Server - { - // Generated from `Microsoft.SqlServer.Server.DataAccessKind` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum DataAccessKind - { - None, - Read, - } - - // Generated from `Microsoft.SqlServer.Server.Format` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum Format - { - Native, - Unknown, - UserDefined, - } - - // Generated from `Microsoft.SqlServer.Server.IBinarySerialize` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public interface IBinarySerialize - { - void Read(System.IO.BinaryReader r); - void Write(System.IO.BinaryWriter w); - } - - // Generated from `Microsoft.SqlServer.Server.InvalidUdtException` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class InvalidUdtException : System.SystemException - { - } - - // Generated from `Microsoft.SqlServer.Server.SqlDataRecord` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlDataRecord : System.Data.IDataRecord - { - public virtual int FieldCount { get => throw null; } - public virtual bool GetBoolean(int ordinal) => throw null; - public virtual System.Byte GetByte(int ordinal) => throw null; - public virtual System.Int64 GetBytes(int ordinal, System.Int64 fieldOffset, System.Byte[] buffer, int bufferOffset, int length) => throw null; - public virtual System.Char GetChar(int ordinal) => throw null; - public virtual System.Int64 GetChars(int ordinal, System.Int64 fieldOffset, System.Char[] buffer, int bufferOffset, int length) => throw null; - System.Data.IDataReader System.Data.IDataRecord.GetData(int ordinal) => throw null; - public virtual string GetDataTypeName(int ordinal) => throw null; - public virtual System.DateTime GetDateTime(int ordinal) => throw null; - public virtual System.DateTimeOffset GetDateTimeOffset(int ordinal) => throw null; - public virtual System.Decimal GetDecimal(int ordinal) => throw null; - public virtual double GetDouble(int ordinal) => throw null; - public virtual System.Type GetFieldType(int ordinal) => throw null; - public virtual float GetFloat(int ordinal) => throw null; - public virtual System.Guid GetGuid(int ordinal) => throw null; - public virtual System.Int16 GetInt16(int ordinal) => throw null; - public virtual int GetInt32(int ordinal) => throw null; - public virtual System.Int64 GetInt64(int ordinal) => throw null; - public virtual string GetName(int ordinal) => throw null; - public virtual int GetOrdinal(string name) => throw null; - public virtual System.Data.SqlTypes.SqlBinary GetSqlBinary(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlBoolean GetSqlBoolean(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlByte GetSqlByte(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlBytes GetSqlBytes(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlChars GetSqlChars(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlDateTime GetSqlDateTime(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlDecimal GetSqlDecimal(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlDouble GetSqlDouble(int ordinal) => throw null; - public virtual System.Type GetSqlFieldType(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlGuid GetSqlGuid(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlInt16 GetSqlInt16(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlInt32 GetSqlInt32(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlInt64 GetSqlInt64(int ordinal) => throw null; - public virtual Microsoft.SqlServer.Server.SqlMetaData GetSqlMetaData(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlMoney GetSqlMoney(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlSingle GetSqlSingle(int ordinal) => throw null; - public virtual System.Data.SqlTypes.SqlString GetSqlString(int ordinal) => throw null; - public virtual object GetSqlValue(int ordinal) => throw null; - public virtual int GetSqlValues(object[] values) => throw null; - public virtual System.Data.SqlTypes.SqlXml GetSqlXml(int ordinal) => throw null; - public virtual string GetString(int ordinal) => throw null; - public virtual System.TimeSpan GetTimeSpan(int ordinal) => throw null; - public virtual object GetValue(int ordinal) => throw null; - public virtual int GetValues(object[] values) => throw null; - public virtual bool IsDBNull(int ordinal) => throw null; - public virtual object this[string name] { get => throw null; } - public virtual object this[int ordinal] { get => throw null; } - public virtual void SetBoolean(int ordinal, bool value) => throw null; - public virtual void SetByte(int ordinal, System.Byte value) => throw null; - public virtual void SetBytes(int ordinal, System.Int64 fieldOffset, System.Byte[] buffer, int bufferOffset, int length) => throw null; - public virtual void SetChar(int ordinal, System.Char value) => throw null; - public virtual void SetChars(int ordinal, System.Int64 fieldOffset, System.Char[] buffer, int bufferOffset, int length) => throw null; - public virtual void SetDBNull(int ordinal) => throw null; - public virtual void SetDateTime(int ordinal, System.DateTime value) => throw null; - public virtual void SetDateTimeOffset(int ordinal, System.DateTimeOffset value) => throw null; - public virtual void SetDecimal(int ordinal, System.Decimal value) => throw null; - public virtual void SetDouble(int ordinal, double value) => throw null; - public virtual void SetFloat(int ordinal, float value) => throw null; - public virtual void SetGuid(int ordinal, System.Guid value) => throw null; - public virtual void SetInt16(int ordinal, System.Int16 value) => throw null; - public virtual void SetInt32(int ordinal, int value) => throw null; - public virtual void SetInt64(int ordinal, System.Int64 value) => throw null; - public virtual void SetSqlBinary(int ordinal, System.Data.SqlTypes.SqlBinary value) => throw null; - public virtual void SetSqlBoolean(int ordinal, System.Data.SqlTypes.SqlBoolean value) => throw null; - public virtual void SetSqlByte(int ordinal, System.Data.SqlTypes.SqlByte value) => throw null; - public virtual void SetSqlBytes(int ordinal, System.Data.SqlTypes.SqlBytes value) => throw null; - public virtual void SetSqlChars(int ordinal, System.Data.SqlTypes.SqlChars value) => throw null; - public virtual void SetSqlDateTime(int ordinal, System.Data.SqlTypes.SqlDateTime value) => throw null; - public virtual void SetSqlDecimal(int ordinal, System.Data.SqlTypes.SqlDecimal value) => throw null; - public virtual void SetSqlDouble(int ordinal, System.Data.SqlTypes.SqlDouble value) => throw null; - public virtual void SetSqlGuid(int ordinal, System.Data.SqlTypes.SqlGuid value) => throw null; - public virtual void SetSqlInt16(int ordinal, System.Data.SqlTypes.SqlInt16 value) => throw null; - public virtual void SetSqlInt32(int ordinal, System.Data.SqlTypes.SqlInt32 value) => throw null; - public virtual void SetSqlInt64(int ordinal, System.Data.SqlTypes.SqlInt64 value) => throw null; - public virtual void SetSqlMoney(int ordinal, System.Data.SqlTypes.SqlMoney value) => throw null; - public virtual void SetSqlSingle(int ordinal, System.Data.SqlTypes.SqlSingle value) => throw null; - public virtual void SetSqlString(int ordinal, System.Data.SqlTypes.SqlString value) => throw null; - public virtual void SetSqlXml(int ordinal, System.Data.SqlTypes.SqlXml value) => throw null; - public virtual void SetString(int ordinal, string value) => throw null; - public virtual void SetTimeSpan(int ordinal, System.TimeSpan value) => throw null; - public virtual void SetValue(int ordinal, object value) => throw null; - public virtual int SetValues(params object[] values) => throw null; - public SqlDataRecord(params Microsoft.SqlServer.Server.SqlMetaData[] metaData) => throw null; - } - - // Generated from `Microsoft.SqlServer.Server.SqlFacetAttribute` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlFacetAttribute : System.Attribute - { - public bool IsFixedLength { get => throw null; set => throw null; } - public bool IsNullable { get => throw null; set => throw null; } - public int MaxSize { 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 SqlFacetAttribute() => throw null; - } - - // Generated from `Microsoft.SqlServer.Server.SqlFunctionAttribute` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlFunctionAttribute : System.Attribute - { - public Microsoft.SqlServer.Server.DataAccessKind DataAccess { get => throw null; set => throw null; } - public string FillRowMethodName { get => throw null; set => throw null; } - public bool IsDeterministic { get => throw null; set => throw null; } - public bool IsPrecise { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public SqlFunctionAttribute() => throw null; - public Microsoft.SqlServer.Server.SystemDataAccessKind SystemDataAccess { get => throw null; set => throw null; } - public string TableDefinition { get => throw null; set => throw null; } - } - - // Generated from `Microsoft.SqlServer.Server.SqlMetaData` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlMetaData - { - public string Adjust(string value) => throw null; - public object Adjust(object value) => throw null; - public int Adjust(int value) => throw null; - public float Adjust(float value) => throw null; - public double Adjust(double value) => throw null; - public bool Adjust(bool value) => throw null; - public System.TimeSpan Adjust(System.TimeSpan value) => throw null; - public System.Int64 Adjust(System.Int64 value) => throw null; - public System.Int16 Adjust(System.Int16 value) => throw null; - public System.Guid Adjust(System.Guid value) => throw null; - public System.Decimal Adjust(System.Decimal value) => throw null; - public System.DateTimeOffset Adjust(System.DateTimeOffset value) => throw null; - public System.DateTime Adjust(System.DateTime value) => throw null; - public System.Data.SqlTypes.SqlXml Adjust(System.Data.SqlTypes.SqlXml value) => throw null; - public System.Data.SqlTypes.SqlString Adjust(System.Data.SqlTypes.SqlString value) => throw null; - public System.Data.SqlTypes.SqlSingle Adjust(System.Data.SqlTypes.SqlSingle value) => throw null; - public System.Data.SqlTypes.SqlMoney Adjust(System.Data.SqlTypes.SqlMoney value) => throw null; - public System.Data.SqlTypes.SqlInt64 Adjust(System.Data.SqlTypes.SqlInt64 value) => throw null; - public System.Data.SqlTypes.SqlInt32 Adjust(System.Data.SqlTypes.SqlInt32 value) => throw null; - public System.Data.SqlTypes.SqlInt16 Adjust(System.Data.SqlTypes.SqlInt16 value) => throw null; - public System.Data.SqlTypes.SqlGuid Adjust(System.Data.SqlTypes.SqlGuid value) => throw null; - public System.Data.SqlTypes.SqlDouble Adjust(System.Data.SqlTypes.SqlDouble value) => throw null; - public System.Data.SqlTypes.SqlDecimal Adjust(System.Data.SqlTypes.SqlDecimal value) => throw null; - public System.Data.SqlTypes.SqlDateTime Adjust(System.Data.SqlTypes.SqlDateTime value) => throw null; - public System.Data.SqlTypes.SqlChars Adjust(System.Data.SqlTypes.SqlChars value) => throw null; - public System.Data.SqlTypes.SqlBytes Adjust(System.Data.SqlTypes.SqlBytes value) => throw null; - public System.Data.SqlTypes.SqlByte Adjust(System.Data.SqlTypes.SqlByte value) => throw null; - public System.Data.SqlTypes.SqlBoolean Adjust(System.Data.SqlTypes.SqlBoolean value) => throw null; - public System.Data.SqlTypes.SqlBinary Adjust(System.Data.SqlTypes.SqlBinary value) => throw null; - public System.Char[] Adjust(System.Char[] value) => throw null; - public System.Char Adjust(System.Char value) => throw null; - public System.Byte[] Adjust(System.Byte[] value) => throw null; - public System.Byte Adjust(System.Byte value) => throw null; - public System.Data.SqlTypes.SqlCompareOptions CompareOptions { get => throw null; } - public System.Data.DbType DbType { get => throw null; } - public static Microsoft.SqlServer.Server.SqlMetaData InferFromValue(object value, string name) => throw null; - public bool IsUniqueKey { get => throw null; } - public System.Int64 LocaleId { get => throw null; } - public static System.Int64 Max { get => throw null; } - public System.Int64 MaxLength { get => throw null; } - public string Name { get => throw null; } - public System.Byte Precision { get => throw null; } - public System.Byte Scale { get => throw null; } - public System.Data.SqlClient.SortOrder SortOrder { get => throw null; } - public int SortOrdinal { get => throw null; } - public System.Data.SqlDbType SqlDbType { get => throw null; } - public SqlMetaData(string name, System.Data.SqlDbType dbType, string database, string owningSchema, string objectName, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, string database, string owningSchema, string objectName) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Type userDefinedType, string serverTypeName, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Type userDefinedType, string serverTypeName) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Type userDefinedType) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Int64 maxLength, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Int64 maxLength, System.Int64 locale, System.Data.SqlTypes.SqlCompareOptions compareOptions, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Int64 maxLength, System.Int64 locale, System.Data.SqlTypes.SqlCompareOptions compareOptions) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Int64 maxLength, System.Byte precision, System.Byte scale, System.Int64 localeId, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Type userDefinedType, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Int64 maxLength, System.Byte precision, System.Byte scale, System.Int64 locale, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Type userDefinedType) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Int64 maxLength) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Byte precision, System.Byte scale, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Byte precision, System.Byte scale) => throw null; - public SqlMetaData(string name, System.Data.SqlDbType dbType) => throw null; - public System.Type Type { get => throw null; } - public string TypeName { get => throw null; } - public bool UseServerDefault { get => throw null; } - public string XmlSchemaCollectionDatabase { get => throw null; } - public string XmlSchemaCollectionName { get => throw null; } - public string XmlSchemaCollectionOwningSchema { get => throw null; } - } - - // Generated from `Microsoft.SqlServer.Server.SqlMethodAttribute` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlMethodAttribute : Microsoft.SqlServer.Server.SqlFunctionAttribute - { - public bool InvokeIfReceiverIsNull { get => throw null; set => throw null; } - public bool IsMutator { get => throw null; set => throw null; } - public bool OnNullCall { get => throw null; set => throw null; } - public SqlMethodAttribute() => throw null; - } - - // Generated from `Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlUserDefinedAggregateAttribute : System.Attribute - { - public Microsoft.SqlServer.Server.Format Format { get => throw null; } - public bool IsInvariantToDuplicates { get => throw null; set => throw null; } - public bool IsInvariantToNulls { get => throw null; set => throw null; } - public bool IsInvariantToOrder { get => throw null; set => throw null; } - public bool IsNullIfEmpty { get => throw null; set => throw null; } - public int MaxByteSize { get => throw null; set => throw null; } - public const int MaxByteSizeValue = default; - public string Name { get => throw null; set => throw null; } - public SqlUserDefinedAggregateAttribute(Microsoft.SqlServer.Server.Format format) => throw null; - } - - // Generated from `Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlUserDefinedTypeAttribute : System.Attribute - { - public Microsoft.SqlServer.Server.Format Format { get => throw null; } - public bool IsByteOrdered { get => throw null; set => throw null; } - public bool IsFixedLength { get => throw null; set => throw null; } - public int MaxByteSize { get => throw null; set => throw null; } - public string Name { get => throw null; set => throw null; } - public SqlUserDefinedTypeAttribute(Microsoft.SqlServer.Server.Format format) => throw null; - public string ValidationMethodName { get => throw null; set => throw null; } - } - - // Generated from `Microsoft.SqlServer.Server.SystemDataAccessKind` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum SystemDataAccessKind - { - None, - Read, - } - - } - } -} -namespace System -{ - namespace Data - { - // Generated from `System.Data.OperationAbortedException` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class OperationAbortedException : System.SystemException - { - } - - namespace Sql - { - // Generated from `System.Data.Sql.SqlNotificationRequest` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlNotificationRequest - { - public string Options { get => throw null; set => throw null; } - public SqlNotificationRequest(string userData, string options, int timeout) => throw null; - public SqlNotificationRequest() => throw null; - public int Timeout { get => throw null; set => throw null; } - public string UserData { get => throw null; set => throw null; } - } - - } - namespace SqlClient - { - // Generated from `System.Data.SqlClient.ApplicationIntent` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum ApplicationIntent - { - ReadOnly, - ReadWrite, - } - - // Generated from `System.Data.SqlClient.OnChangeEventHandler` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public delegate void OnChangeEventHandler(object sender, System.Data.SqlClient.SqlNotificationEventArgs e); - - // Generated from `System.Data.SqlClient.PoolBlockingPeriod` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum PoolBlockingPeriod - { - AlwaysBlock, - Auto, - NeverBlock, - } - - // Generated from `System.Data.SqlClient.SortOrder` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum SortOrder - { - Ascending, - Descending, - Unspecified, - } - - // Generated from `System.Data.SqlClient.SqlBulkCopy` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlBulkCopy : System.IDisposable - { - public int BatchSize { get => throw null; set => throw null; } - public int BulkCopyTimeout { get => throw null; set => throw null; } - public void Close() => throw null; - public System.Data.SqlClient.SqlBulkCopyColumnMappingCollection ColumnMappings { get => throw null; } - public string DestinationTableName { get => throw null; set => throw null; } - void System.IDisposable.Dispose() => throw null; - public bool EnableStreaming { get => throw null; set => throw null; } - public int NotifyAfter { get => throw null; set => throw null; } - public SqlBulkCopy(string connectionString, System.Data.SqlClient.SqlBulkCopyOptions copyOptions) => throw null; - public SqlBulkCopy(string connectionString) => throw null; - public SqlBulkCopy(System.Data.SqlClient.SqlConnection connection, System.Data.SqlClient.SqlBulkCopyOptions copyOptions, System.Data.SqlClient.SqlTransaction externalTransaction) => throw null; - public SqlBulkCopy(System.Data.SqlClient.SqlConnection connection) => throw null; - public event System.Data.SqlClient.SqlRowsCopiedEventHandler SqlRowsCopied; - public void WriteToServer(System.Data.IDataReader reader) => throw null; - public void WriteToServer(System.Data.DataTable table, System.Data.DataRowState rowState) => throw null; - public void WriteToServer(System.Data.DataTable table) => throw null; - public void WriteToServer(System.Data.DataRow[] rows) => throw null; - public void WriteToServer(System.Data.Common.DbDataReader reader) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.IDataReader reader, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.IDataReader reader) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Data.DataRowState rowState, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Data.DataRowState rowState) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataRow[] rows, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataRow[] rows) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.Common.DbDataReader reader) => throw null; - } - - // Generated from `System.Data.SqlClient.SqlBulkCopyColumnMapping` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlBulkCopyColumnMapping - { - public string DestinationColumn { get => throw null; set => throw null; } - public int DestinationOrdinal { get => throw null; set => throw null; } - public string SourceColumn { get => throw null; set => throw null; } - public int SourceOrdinal { get => throw null; set => throw null; } - public SqlBulkCopyColumnMapping(string sourceColumn, string destinationColumn) => throw null; - public SqlBulkCopyColumnMapping(string sourceColumn, int destinationOrdinal) => throw null; - public SqlBulkCopyColumnMapping(int sourceColumnOrdinal, string destinationColumn) => throw null; - public SqlBulkCopyColumnMapping(int sourceColumnOrdinal, int destinationOrdinal) => throw null; - public SqlBulkCopyColumnMapping() => throw null; - } - - // Generated from `System.Data.SqlClient.SqlBulkCopyColumnMappingCollection` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlBulkCopyColumnMappingCollection : System.Collections.CollectionBase - { - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(string sourceColumn, string destinationColumn) => throw null; - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(string sourceColumn, int destinationColumnIndex) => throw null; - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(int sourceColumnIndex, string destinationColumn) => throw null; - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(int sourceColumnIndex, int destinationColumnIndex) => throw null; - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(System.Data.SqlClient.SqlBulkCopyColumnMapping bulkCopyColumnMapping) => throw null; - public void Clear() => throw null; - public bool Contains(System.Data.SqlClient.SqlBulkCopyColumnMapping value) => throw null; - public void CopyTo(System.Data.SqlClient.SqlBulkCopyColumnMapping[] array, int index) => throw null; - public int IndexOf(System.Data.SqlClient.SqlBulkCopyColumnMapping value) => throw null; - public void Insert(int index, System.Data.SqlClient.SqlBulkCopyColumnMapping value) => throw null; - public System.Data.SqlClient.SqlBulkCopyColumnMapping this[int index] { get => throw null; } - public void Remove(System.Data.SqlClient.SqlBulkCopyColumnMapping value) => throw null; - public void RemoveAt(int index) => throw null; - } - - // Generated from `System.Data.SqlClient.SqlBulkCopyOptions` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - [System.Flags] - public enum SqlBulkCopyOptions - { - CheckConstraints, - Default, - FireTriggers, - KeepIdentity, - KeepNulls, - TableLock, - UseInternalTransaction, - } - - // Generated from `System.Data.SqlClient.SqlClientFactory` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlClientFactory : System.Data.Common.DbProviderFactory - { - public override System.Data.Common.DbCommand CreateCommand() => throw null; - public override System.Data.Common.DbCommandBuilder CreateCommandBuilder() => throw null; - public override System.Data.Common.DbConnection CreateConnection() => throw null; - public override System.Data.Common.DbConnectionStringBuilder CreateConnectionStringBuilder() => throw null; - public override System.Data.Common.DbDataAdapter CreateDataAdapter() => throw null; - public override System.Data.Common.DbParameter CreateParameter() => throw null; - public static System.Data.SqlClient.SqlClientFactory Instance; - } - - // Generated from `System.Data.SqlClient.SqlClientMetaDataCollectionNames` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public static class SqlClientMetaDataCollectionNames - { - public static string Columns; - public static string Databases; - public static string ForeignKeys; - public static string IndexColumns; - public static string Indexes; - public static string Parameters; - public static string ProcedureColumns; - public static string Procedures; - public static string Tables; - public static string UserDefinedTypes; - public static string Users; - public static string ViewColumns; - public static string Views; - } - - // Generated from `System.Data.SqlClient.SqlCommand` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlCommand : System.Data.Common.DbCommand, System.ICloneable - { - public System.IAsyncResult BeginExecuteNonQuery(System.AsyncCallback callback, object stateObject) => throw null; - public System.IAsyncResult BeginExecuteNonQuery() => throw null; - public System.IAsyncResult BeginExecuteReader(System.Data.CommandBehavior behavior) => throw null; - public System.IAsyncResult BeginExecuteReader(System.AsyncCallback callback, object stateObject, System.Data.CommandBehavior behavior) => throw null; - public System.IAsyncResult BeginExecuteReader(System.AsyncCallback callback, object stateObject) => throw null; - public System.IAsyncResult BeginExecuteReader() => throw null; - public System.IAsyncResult BeginExecuteXmlReader(System.AsyncCallback callback, object stateObject) => throw null; - public System.IAsyncResult BeginExecuteXmlReader() => throw null; - public override void Cancel() => throw null; - public System.Data.SqlClient.SqlCommand Clone() => throw null; - object System.ICloneable.Clone() => throw null; - public override string CommandText { get => throw null; set => throw null; } - public override int CommandTimeout { get => throw null; set => throw null; } - public override System.Data.CommandType CommandType { get => throw null; set => throw null; } - public System.Data.SqlClient.SqlConnection Connection { get => throw null; set => throw null; } - protected override System.Data.Common.DbParameter CreateDbParameter() => throw null; - public System.Data.SqlClient.SqlParameter CreateParameter() => throw null; - protected override System.Data.Common.DbConnection DbConnection { get => throw null; set => throw null; } - protected override System.Data.Common.DbParameterCollection DbParameterCollection { get => throw null; } - protected override System.Data.Common.DbTransaction DbTransaction { get => throw null; set => throw null; } - public override bool DesignTimeVisible { get => throw null; set => throw null; } - protected override void Dispose(bool disposing) => throw null; - public int EndExecuteNonQuery(System.IAsyncResult asyncResult) => throw null; - public System.Data.SqlClient.SqlDataReader EndExecuteReader(System.IAsyncResult asyncResult) => throw null; - public System.Xml.XmlReader EndExecuteXmlReader(System.IAsyncResult asyncResult) => throw null; - protected override System.Data.Common.DbDataReader ExecuteDbDataReader(System.Data.CommandBehavior behavior) => throw null; - protected override System.Threading.Tasks.Task ExecuteDbDataReaderAsync(System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken) => throw null; - public override int ExecuteNonQuery() => throw null; - public override System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public System.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior) => throw null; - public System.Data.SqlClient.SqlDataReader ExecuteReader() => throw null; - public System.Threading.Tasks.Task ExecuteReaderAsync(System.Threading.CancellationToken cancellationToken) => 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.Data.CommandBehavior behavior) => throw null; - public System.Threading.Tasks.Task ExecuteReaderAsync() => throw null; - public override object ExecuteScalar() => throw null; - public override System.Threading.Tasks.Task ExecuteScalarAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public System.Xml.XmlReader ExecuteXmlReader() => throw null; - public System.Threading.Tasks.Task ExecuteXmlReaderAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public System.Threading.Tasks.Task ExecuteXmlReaderAsync() => throw null; - public System.Data.Sql.SqlNotificationRequest Notification { get => throw null; set => throw null; } - public System.Data.SqlClient.SqlParameterCollection Parameters { get => throw null; } - public override void Prepare() => throw null; - public void ResetCommandTimeout() => throw null; - public SqlCommand(string cmdText, System.Data.SqlClient.SqlConnection connection, System.Data.SqlClient.SqlTransaction transaction) => throw null; - public SqlCommand(string cmdText, System.Data.SqlClient.SqlConnection connection) => throw null; - public SqlCommand(string cmdText) => throw null; - public SqlCommand() => throw null; - public event System.Data.StatementCompletedEventHandler StatementCompleted; - public System.Data.SqlClient.SqlTransaction Transaction { get => throw null; set => throw null; } - public override System.Data.UpdateRowSource UpdatedRowSource { get => throw null; set => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlCommandBuilder` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlCommandBuilder : System.Data.Common.DbCommandBuilder - { - protected override void ApplyParameterInfo(System.Data.Common.DbParameter parameter, System.Data.DataRow datarow, System.Data.StatementType statementType, bool whereClause) => throw null; - public override System.Data.Common.CatalogLocation CatalogLocation { get => throw null; set => throw null; } - public override string CatalogSeparator { get => throw null; set => throw null; } - public System.Data.SqlClient.SqlDataAdapter DataAdapter { get => throw null; set => throw null; } - public static void DeriveParameters(System.Data.SqlClient.SqlCommand command) => throw null; - public System.Data.SqlClient.SqlCommand GetDeleteCommand(bool useColumnsForParameterNames) => throw null; - public System.Data.SqlClient.SqlCommand GetDeleteCommand() => throw null; - public System.Data.SqlClient.SqlCommand GetInsertCommand(bool useColumnsForParameterNames) => throw null; - public System.Data.SqlClient.SqlCommand GetInsertCommand() => throw null; - protected override string GetParameterName(string parameterName) => throw null; - protected override string GetParameterName(int parameterOrdinal) => throw null; - protected override string GetParameterPlaceholder(int parameterOrdinal) => throw null; - protected override System.Data.DataTable GetSchemaTable(System.Data.Common.DbCommand srcCommand) => throw null; - public System.Data.SqlClient.SqlCommand GetUpdateCommand(bool useColumnsForParameterNames) => throw null; - public System.Data.SqlClient.SqlCommand GetUpdateCommand() => throw null; - protected override System.Data.Common.DbCommand InitializeCommand(System.Data.Common.DbCommand command) => throw null; - public override string QuoteIdentifier(string unquotedIdentifier) => throw null; - public override string QuotePrefix { get => throw null; set => throw null; } - public override string QuoteSuffix { get => throw null; set => throw null; } - public override string SchemaSeparator { get => throw null; set => throw null; } - protected override void SetRowUpdatingHandler(System.Data.Common.DbDataAdapter adapter) => throw null; - public SqlCommandBuilder(System.Data.SqlClient.SqlDataAdapter adapter) => throw null; - public SqlCommandBuilder() => throw null; - public override string UnquoteIdentifier(string quotedIdentifier) => throw null; - } - - // Generated from `System.Data.SqlClient.SqlConnection` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlConnection : System.Data.Common.DbConnection, System.ICloneable - { - public string AccessToken { get => throw null; set => throw null; } - protected override System.Data.Common.DbTransaction BeginDbTransaction(System.Data.IsolationLevel isolationLevel) => throw null; - public System.Data.SqlClient.SqlTransaction BeginTransaction(string transactionName) => throw null; - public System.Data.SqlClient.SqlTransaction BeginTransaction(System.Data.IsolationLevel iso, string transactionName) => throw null; - public System.Data.SqlClient.SqlTransaction BeginTransaction(System.Data.IsolationLevel iso) => throw null; - public System.Data.SqlClient.SqlTransaction BeginTransaction() => throw null; - public override void ChangeDatabase(string database) => throw null; - public static void ChangePassword(string connectionString, string newPassword) => throw null; - public static void ChangePassword(string connectionString, System.Data.SqlClient.SqlCredential credential, System.Security.SecureString newPassword) => throw null; - public static void ClearAllPools() => throw null; - public static void ClearPool(System.Data.SqlClient.SqlConnection connection) => throw null; - public System.Guid ClientConnectionId { get => throw null; } - object System.ICloneable.Clone() => throw null; - public override void Close() => throw null; - public override string ConnectionString { get => throw null; set => throw null; } - public override int ConnectionTimeout { get => throw null; } - public System.Data.SqlClient.SqlCommand CreateCommand() => throw null; - protected override System.Data.Common.DbCommand CreateDbCommand() => throw null; - public System.Data.SqlClient.SqlCredential Credential { get => throw null; set => throw null; } - public override string DataSource { get => throw null; } - public override string Database { get => throw null; } - protected override void Dispose(bool disposing) => throw null; - public bool FireInfoMessageEventOnUserErrors { get => throw null; set => throw null; } - public override System.Data.DataTable GetSchema(string collectionName, string[] restrictionValues) => throw null; - public override System.Data.DataTable GetSchema(string collectionName) => throw null; - public override System.Data.DataTable GetSchema() => throw null; - public event System.Data.SqlClient.SqlInfoMessageEventHandler InfoMessage; - public override void Open() => throw null; - public override System.Threading.Tasks.Task OpenAsync(System.Threading.CancellationToken cancellationToken) => throw null; - public int PacketSize { get => throw null; } - public void ResetStatistics() => throw null; - public System.Collections.IDictionary RetrieveStatistics() => throw null; - public override string ServerVersion { get => throw null; } - public SqlConnection(string connectionString, System.Data.SqlClient.SqlCredential credential) => throw null; - public SqlConnection(string connectionString) => throw null; - public SqlConnection() => throw null; - public override System.Data.ConnectionState State { get => throw null; } - public bool StatisticsEnabled { get => throw null; set => throw null; } - public string WorkstationId { get => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlConnectionStringBuilder` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder - { - public System.Data.SqlClient.ApplicationIntent ApplicationIntent { get => throw null; set => throw null; } - public string ApplicationName { get => throw null; set => throw null; } - public string AttachDBFilename { get => throw null; set => throw null; } - public override void Clear() => throw null; - public int ConnectRetryCount { get => throw null; set => throw null; } - public int ConnectRetryInterval { get => throw null; set => throw null; } - public int ConnectTimeout { get => throw null; set => throw null; } - public override bool ContainsKey(string keyword) => throw null; - public string CurrentLanguage { get => throw null; set => throw null; } - public string DataSource { get => throw null; set => throw null; } - public bool Encrypt { get => throw null; set => throw null; } - public bool Enlist { get => throw null; set => throw null; } - public string FailoverPartner { get => throw null; set => throw null; } - public string InitialCatalog { get => throw null; set => throw null; } - public bool IntegratedSecurity { get => throw null; set => throw null; } - public override object this[string keyword] { get => throw null; set => throw null; } - public override System.Collections.ICollection Keys { get => throw null; } - public int LoadBalanceTimeout { get => throw null; set => throw null; } - public int MaxPoolSize { get => throw null; set => throw null; } - public int MinPoolSize { get => throw null; set => throw null; } - public bool MultiSubnetFailover { get => throw null; set => throw null; } - public bool MultipleActiveResultSets { get => throw null; set => throw null; } - public int PacketSize { get => throw null; set => throw null; } - public string Password { get => throw null; set => throw null; } - public bool PersistSecurityInfo { get => throw null; set => throw null; } - public System.Data.SqlClient.PoolBlockingPeriod PoolBlockingPeriod { get => throw null; set => throw null; } - public bool Pooling { get => throw null; set => throw null; } - public override bool Remove(string keyword) => throw null; - public bool Replication { get => throw null; set => throw null; } - public override bool ShouldSerialize(string keyword) => throw null; - public SqlConnectionStringBuilder(string connectionString) => throw null; - public SqlConnectionStringBuilder() => throw null; - public string TransactionBinding { get => throw null; set => throw null; } - public bool TrustServerCertificate { get => throw null; set => throw null; } - public override bool TryGetValue(string keyword, out object value) => throw null; - public string TypeSystemVersion { get => throw null; set => throw null; } - public string UserID { get => throw null; set => throw null; } - public bool UserInstance { get => throw null; set => throw null; } - public override System.Collections.ICollection Values { get => throw null; } - public string WorkstationID { get => throw null; set => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlCredential` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlCredential - { - public System.Security.SecureString Password { get => throw null; } - public SqlCredential(string userId, System.Security.SecureString password) => throw null; - public string UserId { get => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlDataAdapter` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlDataAdapter : System.Data.Common.DbDataAdapter, System.ICloneable, System.Data.IDbDataAdapter, System.Data.IDataAdapter - { - object System.ICloneable.Clone() => throw null; - public System.Data.SqlClient.SqlCommand DeleteCommand { get => throw null; set => throw null; } - System.Data.IDbCommand System.Data.IDbDataAdapter.DeleteCommand { get => throw null; set => throw null; } - public System.Data.SqlClient.SqlCommand InsertCommand { get => throw null; set => throw null; } - System.Data.IDbCommand System.Data.IDbDataAdapter.InsertCommand { get => throw null; set => throw null; } - protected override void OnRowUpdated(System.Data.Common.RowUpdatedEventArgs value) => throw null; - protected override void OnRowUpdating(System.Data.Common.RowUpdatingEventArgs value) => throw null; - public event System.Data.SqlClient.SqlRowUpdatedEventHandler RowUpdated; - public event System.Data.SqlClient.SqlRowUpdatingEventHandler RowUpdating; - public System.Data.SqlClient.SqlCommand SelectCommand { get => throw null; set => throw null; } - System.Data.IDbCommand System.Data.IDbDataAdapter.SelectCommand { get => throw null; set => throw null; } - public SqlDataAdapter(string selectCommandText, string selectConnectionString) => throw null; - public SqlDataAdapter(string selectCommandText, System.Data.SqlClient.SqlConnection selectConnection) => throw null; - public SqlDataAdapter(System.Data.SqlClient.SqlCommand selectCommand) => throw null; - public SqlDataAdapter() => throw null; - public override int UpdateBatchSize { get => throw null; set => throw null; } - public System.Data.SqlClient.SqlCommand UpdateCommand { get => throw null; set => throw null; } - System.Data.IDbCommand System.Data.IDbDataAdapter.UpdateCommand { get => throw null; set => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlDataReader` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlDataReader : System.Data.Common.DbDataReader, System.IDisposable, System.Data.Common.IDbColumnSchemaGenerator - { - protected System.Data.SqlClient.SqlConnection Connection { get => throw null; } - public override int Depth { get => 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 dataIndex, System.Byte[] buffer, int bufferIndex, int length) => throw null; - public override System.Char GetChar(int i) => throw null; - public override System.Int64 GetChars(int i, System.Int64 dataIndex, System.Char[] buffer, int bufferIndex, int length) => throw null; - public System.Collections.ObjectModel.ReadOnlyCollection GetColumnSchema() => throw null; - public override string GetDataTypeName(int i) => throw null; - public override System.DateTime GetDateTime(int i) => throw null; - public virtual System.DateTimeOffset GetDateTimeOffset(int i) => throw null; - public override System.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 T GetFieldValue(int i) => throw null; - public override System.Threading.Tasks.Task GetFieldValueAsync(int i, System.Threading.CancellationToken cancellationToken) => 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 int GetInt32(int i) => throw null; - public override System.Int64 GetInt64(int i) => throw null; - public override string GetName(int i) => throw null; - public override int GetOrdinal(string name) => throw null; - public override System.Type GetProviderSpecificFieldType(int i) => throw null; - public override object GetProviderSpecificValue(int i) => throw null; - public override int GetProviderSpecificValues(object[] values) => throw null; - public override System.Data.DataTable GetSchemaTable() => throw null; - public virtual System.Data.SqlTypes.SqlBinary GetSqlBinary(int i) => throw null; - public virtual System.Data.SqlTypes.SqlBoolean GetSqlBoolean(int i) => throw null; - public virtual System.Data.SqlTypes.SqlByte GetSqlByte(int i) => throw null; - public virtual System.Data.SqlTypes.SqlBytes GetSqlBytes(int i) => throw null; - public virtual System.Data.SqlTypes.SqlChars GetSqlChars(int i) => throw null; - public virtual System.Data.SqlTypes.SqlDateTime GetSqlDateTime(int i) => throw null; - public virtual System.Data.SqlTypes.SqlDecimal GetSqlDecimal(int i) => throw null; - public virtual System.Data.SqlTypes.SqlDouble GetSqlDouble(int i) => throw null; - public virtual System.Data.SqlTypes.SqlGuid GetSqlGuid(int i) => throw null; - public virtual System.Data.SqlTypes.SqlInt16 GetSqlInt16(int i) => throw null; - public virtual System.Data.SqlTypes.SqlInt32 GetSqlInt32(int i) => throw null; - public virtual System.Data.SqlTypes.SqlInt64 GetSqlInt64(int i) => throw null; - public virtual System.Data.SqlTypes.SqlMoney GetSqlMoney(int i) => throw null; - public virtual System.Data.SqlTypes.SqlSingle GetSqlSingle(int i) => throw null; - public virtual System.Data.SqlTypes.SqlString GetSqlString(int i) => throw null; - public virtual object GetSqlValue(int i) => throw null; - public virtual int GetSqlValues(object[] values) => throw null; - public virtual System.Data.SqlTypes.SqlXml GetSqlXml(int i) => throw null; - public override System.IO.Stream GetStream(int i) => throw null; - public override string GetString(int i) => throw null; - public override System.IO.TextReader GetTextReader(int i) => throw null; - public virtual System.TimeSpan GetTimeSpan(int i) => throw null; - public override object GetValue(int i) => throw null; - public override int GetValues(object[] values) => throw null; - public virtual System.Xml.XmlReader GetXmlReader(int i) => throw null; - public override bool HasRows { get => throw null; } - public override bool IsClosed { get => throw null; } - protected internal bool IsCommandBehavior(System.Data.CommandBehavior condition) => throw null; - public override bool IsDBNull(int i) => throw null; - public override System.Threading.Tasks.Task IsDBNullAsync(int i, 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 int VisibleFieldCount { get => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlDependency` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlDependency - { - public void AddCommandDependency(System.Data.SqlClient.SqlCommand command) => throw null; - public bool HasChanges { get => throw null; } - public string Id { get => throw null; } - public event System.Data.SqlClient.OnChangeEventHandler OnChange; - public SqlDependency(System.Data.SqlClient.SqlCommand command, string options, int timeout) => throw null; - public SqlDependency(System.Data.SqlClient.SqlCommand command) => throw null; - public SqlDependency() => throw null; - public static bool Start(string connectionString, string queue) => throw null; - public static bool Start(string connectionString) => throw null; - public static bool Stop(string connectionString, string queue) => throw null; - public static bool Stop(string connectionString) => throw null; - } - - // Generated from `System.Data.SqlClient.SqlError` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlError - { - public System.Byte Class { get => throw null; } - public int LineNumber { get => throw null; } - public string Message { get => throw null; } - public int Number { get => throw null; } - public string Procedure { get => throw null; } - public string Server { get => throw null; } - public string Source { get => throw null; } - public System.Byte State { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `System.Data.SqlClient.SqlErrorCollection` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlErrorCollection : System.Collections.IEnumerable, System.Collections.ICollection - { - public void CopyTo(System.Data.SqlClient.SqlError[] array, int index) => 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; - bool System.Collections.ICollection.IsSynchronized { get => throw null; } - public System.Data.SqlClient.SqlError this[int index] { get => throw null; } - object System.Collections.ICollection.SyncRoot { get => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlException` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlException : System.Data.Common.DbException - { - public System.Byte Class { get => throw null; } - public System.Guid ClientConnectionId { get => throw null; } - public System.Data.SqlClient.SqlErrorCollection Errors { get => throw null; } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null; - public int LineNumber { get => throw null; } - public int Number { get => throw null; } - public string Procedure { get => throw null; } - public string Server { get => throw null; } - public override string Source { get => throw null; } - public System.Byte State { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `System.Data.SqlClient.SqlInfoMessageEventArgs` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlInfoMessageEventArgs : System.EventArgs - { - public System.Data.SqlClient.SqlErrorCollection Errors { get => throw null; } - public string Message { get => throw null; } - public string Source { get => throw null; } - public override string ToString() => throw null; - } - - // Generated from `System.Data.SqlClient.SqlInfoMessageEventHandler` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public delegate void SqlInfoMessageEventHandler(object sender, System.Data.SqlClient.SqlInfoMessageEventArgs e); - - // Generated from `System.Data.SqlClient.SqlNotificationEventArgs` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlNotificationEventArgs : System.EventArgs - { - public System.Data.SqlClient.SqlNotificationInfo Info { get => throw null; } - public System.Data.SqlClient.SqlNotificationSource Source { get => throw null; } - public SqlNotificationEventArgs(System.Data.SqlClient.SqlNotificationType type, System.Data.SqlClient.SqlNotificationInfo info, System.Data.SqlClient.SqlNotificationSource source) => throw null; - public System.Data.SqlClient.SqlNotificationType Type { get => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlNotificationInfo` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum SqlNotificationInfo - { - AlreadyChanged, - Alter, - Delete, - Drop, - Error, - Expired, - Insert, - Invalid, - Isolation, - Merge, - Options, - PreviousFire, - Query, - Resource, - Restart, - TemplateLimit, - Truncate, - Unknown, - Update, - } - - // Generated from `System.Data.SqlClient.SqlNotificationSource` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum SqlNotificationSource - { - Client, - Data, - Database, - Environment, - Execution, - Object, - Owner, - Statement, - System, - Timeout, - Unknown, - } - - // Generated from `System.Data.SqlClient.SqlNotificationType` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public enum SqlNotificationType - { - Change, - Subscribe, - Unknown, - } - - // Generated from `System.Data.SqlClient.SqlParameter` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlParameter : System.Data.Common.DbParameter, System.ICloneable - { - object System.ICloneable.Clone() => throw null; - public System.Data.SqlTypes.SqlCompareOptions CompareInfo { get => throw null; set => throw null; } - public override System.Data.DbType DbType { get => throw null; set => throw null; } - public override System.Data.ParameterDirection Direction { get => throw null; set => throw null; } - public override bool IsNullable { get => throw null; set => throw null; } - public int LocaleId { get => throw null; set => throw null; } - public int Offset { get => throw null; set => throw null; } - public override string ParameterName { get => throw null; set => throw null; } - public System.Byte Precision { get => throw null; set => throw null; } - public override void ResetDbType() => throw null; - public void ResetSqlDbType() => throw null; - public System.Byte Scale { get => throw null; set => throw null; } - public override int Size { get => throw null; set => throw null; } - public override string SourceColumn { get => throw null; set => throw null; } - public override bool SourceColumnNullMapping { get => throw null; set => throw null; } - public override System.Data.DataRowVersion SourceVersion { get => throw null; set => throw null; } - public System.Data.SqlDbType SqlDbType { get => throw null; set => throw null; } - public SqlParameter(string parameterName, object value) => throw null; - public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, string sourceColumn) => throw null; - public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, System.Data.ParameterDirection direction, bool isNullable, System.Byte precision, System.Byte scale, string sourceColumn, System.Data.DataRowVersion sourceVersion, object value) => throw null; - public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, System.Data.ParameterDirection direction, System.Byte precision, System.Byte scale, string sourceColumn, System.Data.DataRowVersion sourceVersion, bool sourceColumnNullMapping, object value, string xmlSchemaCollectionDatabase, string xmlSchemaCollectionOwningSchema, string xmlSchemaCollectionName) => throw null; - public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size) => throw null; - public SqlParameter(string parameterName, System.Data.SqlDbType dbType) => throw null; - public SqlParameter() => throw null; - public object SqlValue { get => throw null; set => throw null; } - public override string ToString() => throw null; - public string TypeName { get => throw null; set => throw null; } - public string UdtTypeName { get => throw null; set => throw null; } - public override object Value { get => throw null; set => throw null; } - public string XmlSchemaCollectionDatabase { get => throw null; set => throw null; } - public string XmlSchemaCollectionName { get => throw null; set => throw null; } - public string XmlSchemaCollectionOwningSchema { get => throw null; set => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlParameterCollection` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlParameterCollection : System.Data.Common.DbParameterCollection - { - public override int Add(object value) => throw null; - public System.Data.SqlClient.SqlParameter Add(string parameterName, System.Data.SqlDbType sqlDbType, int size, string sourceColumn) => throw null; - public System.Data.SqlClient.SqlParameter Add(string parameterName, System.Data.SqlDbType sqlDbType, int size) => throw null; - public System.Data.SqlClient.SqlParameter Add(string parameterName, System.Data.SqlDbType sqlDbType) => throw null; - public System.Data.SqlClient.SqlParameter Add(System.Data.SqlClient.SqlParameter value) => throw null; - public void AddRange(System.Data.SqlClient.SqlParameter[] values) => throw null; - public override void AddRange(System.Array values) => throw null; - public System.Data.SqlClient.SqlParameter AddWithValue(string parameterName, object value) => throw null; - public override void Clear() => throw null; - public override bool Contains(string value) => throw null; - public override bool Contains(object value) => throw null; - public bool Contains(System.Data.SqlClient.SqlParameter value) => throw null; - public void CopyTo(System.Data.SqlClient.SqlParameter[] array, int index) => throw null; - public override void CopyTo(System.Array array, int index) => throw null; - public override int Count { get => throw null; } - public override System.Collections.IEnumerator GetEnumerator() => throw null; - protected override System.Data.Common.DbParameter GetParameter(string parameterName) => throw null; - protected override System.Data.Common.DbParameter GetParameter(int index) => throw null; - public override int IndexOf(string parameterName) => throw null; - public override int IndexOf(object value) => throw null; - public int IndexOf(System.Data.SqlClient.SqlParameter value) => throw null; - public void Insert(int index, System.Data.SqlClient.SqlParameter value) => throw null; - public override void Insert(int index, object value) => throw null; - public override bool IsFixedSize { get => throw null; } - public override bool IsReadOnly { get => throw null; } - public System.Data.SqlClient.SqlParameter this[string parameterName] { get => throw null; set => throw null; } - public System.Data.SqlClient.SqlParameter this[int index] { get => throw null; set => throw null; } - public void Remove(System.Data.SqlClient.SqlParameter value) => throw null; - public override void Remove(object value) => throw null; - public override void RemoveAt(string parameterName) => throw null; - public override void RemoveAt(int index) => throw null; - protected override void SetParameter(string parameterName, System.Data.Common.DbParameter value) => throw null; - protected override void SetParameter(int index, System.Data.Common.DbParameter value) => throw null; - public override object SyncRoot { get => throw null; } - } - - // Generated from `System.Data.SqlClient.SqlRowUpdatedEventArgs` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlRowUpdatedEventArgs : System.Data.Common.RowUpdatedEventArgs - { - public System.Data.SqlClient.SqlCommand Command { get => throw null; } - public SqlRowUpdatedEventArgs(System.Data.DataRow row, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) : base(default(System.Data.DataRow), default(System.Data.IDbCommand), default(System.Data.StatementType), default(System.Data.Common.DataTableMapping)) => throw null; - } - - // Generated from `System.Data.SqlClient.SqlRowUpdatedEventHandler` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public delegate void SqlRowUpdatedEventHandler(object sender, System.Data.SqlClient.SqlRowUpdatedEventArgs e); - - // Generated from `System.Data.SqlClient.SqlRowUpdatingEventArgs` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlRowUpdatingEventArgs : System.Data.Common.RowUpdatingEventArgs - { - protected override System.Data.IDbCommand BaseCommand { get => throw null; set => throw null; } - public System.Data.SqlClient.SqlCommand Command { get => throw null; set => throw null; } - public SqlRowUpdatingEventArgs(System.Data.DataRow row, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) : base(default(System.Data.DataRow), default(System.Data.IDbCommand), default(System.Data.StatementType), default(System.Data.Common.DataTableMapping)) => throw null; - } - - // Generated from `System.Data.SqlClient.SqlRowUpdatingEventHandler` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public delegate void SqlRowUpdatingEventHandler(object sender, System.Data.SqlClient.SqlRowUpdatingEventArgs e); - - // Generated from `System.Data.SqlClient.SqlRowsCopiedEventArgs` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlRowsCopiedEventArgs : System.EventArgs - { - public bool Abort { get => throw null; set => throw null; } - public System.Int64 RowsCopied { get => throw null; } - public SqlRowsCopiedEventArgs(System.Int64 rowsCopied) => throw null; - } - - // Generated from `System.Data.SqlClient.SqlRowsCopiedEventHandler` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public delegate void SqlRowsCopiedEventHandler(object sender, System.Data.SqlClient.SqlRowsCopiedEventArgs e); - - // Generated from `System.Data.SqlClient.SqlTransaction` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlTransaction : System.Data.Common.DbTransaction - { - public override void Commit() => throw null; - public System.Data.SqlClient.SqlConnection Connection { get => throw null; } - protected override System.Data.Common.DbConnection DbConnection { get => throw null; } - protected override void Dispose(bool disposing) => throw null; - public override System.Data.IsolationLevel IsolationLevel { get => throw null; } - public void Rollback(string transactionName) => throw null; - public override void Rollback() => throw null; - public void Save(string savePointName) => throw null; - } - - } - namespace SqlTypes - { - // Generated from `System.Data.SqlTypes.SqlFileStream` in `System.Data.SqlClient, Version=4.6.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a` - public class SqlFileStream : 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 void Flush() => throw null; - public override System.Int64 Length { get => throw null; } - public 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 System.Int64 Seek(System.Int64 offset, System.IO.SeekOrigin origin) => throw null; - public override void SetLength(System.Int64 value) => throw null; - public SqlFileStream(string path, System.Byte[] transactionContext, System.IO.FileAccess access, System.IO.FileOptions options, System.Int64 allocationSize) => throw null; - public SqlFileStream(string path, System.Byte[] transactionContext, System.IO.FileAccess access) => throw null; - public System.Byte[] TransactionContext { get => throw null; } - public override void Write(System.Byte[] buffer, int offset, int count) => throw null; - } - - } - } -} diff --git a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.csproj b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.8.2/System.Data.SqlClient.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - From 1a2fc2b56516667e7b7160a79fc656314209c4a9 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 13:52:59 +0200 Subject: [PATCH 676/736] C#: Remove unused stubs. --- .../4.7.0/Microsoft.CSharp.csproj | 12 - ...ns.DependencyInjection.Abstractions.csproj | 12 - ...soft.Extensions.DependencyInjection.csproj | 14 -- .../6.0.0/Microsoft.Extensions.Http.csproj | 16 -- ...oft.Extensions.Logging.Abstractions.csproj | 12 - .../6.0.0/Microsoft.Extensions.Logging.csproj | 17 -- .../6.0.0/Microsoft.Extensions.Options.csproj | 14 -- .../6.0.0/Microsoft.Extensions.Primitives.cs | 208 ------------------ .../Microsoft.Extensions.Primitives.csproj | 13 -- ...System.Diagnostics.DiagnosticSource.csproj | 13 -- .../System.Memory/4.5.4/System.Memory.csproj | 12 - ...tem.Runtime.CompilerServices.Unsafe.csproj | 12 - 12 files changed, 355 deletions(-) delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/6.0.0/Microsoft.Extensions.DependencyInjection.csproj delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/6.0.0/Microsoft.Extensions.Http.csproj delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/6.0.0/Microsoft.Extensions.Logging.Abstractions.csproj delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/6.0.0/Microsoft.Extensions.Logging.csproj delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/6.0.0/Microsoft.Extensions.Options.csproj delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.cs delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj delete mode 100644 csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.0/System.Diagnostics.DiagnosticSource.csproj delete mode 100644 csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj delete mode 100644 csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj diff --git a/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj b/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/6.0.0/Microsoft.Extensions.DependencyInjection.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/6.0.0/Microsoft.Extensions.DependencyInjection.csproj deleted file mode 100644 index 25609b26038..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/6.0.0/Microsoft.Extensions.DependencyInjection.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - - diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/6.0.0/Microsoft.Extensions.Http.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/6.0.0/Microsoft.Extensions.Http.csproj deleted file mode 100644 index e9d79c6ec5d..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/6.0.0/Microsoft.Extensions.Http.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - - - - diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/6.0.0/Microsoft.Extensions.Logging.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/6.0.0/Microsoft.Extensions.Logging.Abstractions.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/6.0.0/Microsoft.Extensions.Logging.Abstractions.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/6.0.0/Microsoft.Extensions.Logging.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/6.0.0/Microsoft.Extensions.Logging.csproj deleted file mode 100644 index ce74d5604a3..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/6.0.0/Microsoft.Extensions.Logging.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - - - - - diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/6.0.0/Microsoft.Extensions.Options.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/6.0.0/Microsoft.Extensions.Options.csproj deleted file mode 100644 index 69cae697119..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/6.0.0/Microsoft.Extensions.Options.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - - diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.cs b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.cs deleted file mode 100644 index 3f38528bd9a..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.cs +++ /dev/null @@ -1,208 +0,0 @@ -// This file contains auto-generated code. - -namespace Microsoft -{ - namespace Extensions - { - namespace Primitives - { - // Generated from `Microsoft.Extensions.Primitives.CancellationChangeToken` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class CancellationChangeToken : Microsoft.Extensions.Primitives.IChangeToken - { - public bool ActiveChangeCallbacks { get => throw null; set => throw null; } - public CancellationChangeToken(System.Threading.CancellationToken cancellationToken) => throw null; - public bool HasChanged { get => throw null; } - public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; - } - - // Generated from `Microsoft.Extensions.Primitives.ChangeToken` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - 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; - } - - // Generated from `Microsoft.Extensions.Primitives.CompositeChangeToken` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public class CompositeChangeToken : Microsoft.Extensions.Primitives.IChangeToken - { - public bool ActiveChangeCallbacks { get => throw null; } - public System.Collections.Generic.IReadOnlyList ChangeTokens { get => throw null; } - public CompositeChangeToken(System.Collections.Generic.IReadOnlyList changeTokens) => throw null; - public bool HasChanged { get => throw null; } - public System.IDisposable RegisterChangeCallback(System.Action callback, object state) => throw null; - } - - // Generated from `Microsoft.Extensions.Primitives.Extensions` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public static class Extensions - { - public static System.Text.StringBuilder Append(this System.Text.StringBuilder builder, Microsoft.Extensions.Primitives.StringSegment segment) => throw null; - } - - // Generated from `Microsoft.Extensions.Primitives.IChangeToken` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public interface IChangeToken - { - bool ActiveChangeCallbacks { get; } - bool HasChanged { get; } - System.IDisposable RegisterChangeCallback(System.Action callback, object state); - } - - // Generated from `Microsoft.Extensions.Primitives.StringSegment` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - 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 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 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 override bool Equals(object obj) => throw null; - public bool Equals(string text) => throw null; - bool System.IEquatable.Equals(string other) => 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 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 Length { get => throw null; } - public int Offset { get => throw null; } - public Microsoft.Extensions.Primitives.StringTokenizer Split(System.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 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; - } - - // Generated from `Microsoft.Extensions.Primitives.StringSegmentComparer` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - 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; - public bool Equals(Microsoft.Extensions.Primitives.StringSegment x, Microsoft.Extensions.Primitives.StringSegment y) => throw null; - public int GetHashCode(Microsoft.Extensions.Primitives.StringSegment obj) => throw null; - public static Microsoft.Extensions.Primitives.StringSegmentComparer Ordinal { get => throw null; } - public static Microsoft.Extensions.Primitives.StringSegmentComparer OrdinalIgnoreCase { get => throw null; } - } - - // Generated from `Microsoft.Extensions.Primitives.StringTokenizer` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct StringTokenizer : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable - { - // Generated from `Microsoft.Extensions.Primitives.StringTokenizer+Enumerator` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - public struct Enumerator : System.Collections.Generic.IEnumerator, System.Collections.IEnumerator, System.IDisposable - { - public Microsoft.Extensions.Primitives.StringSegment Current { get => throw null; set => 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; - } - - // Generated from `Microsoft.Extensions.Primitives.StringValues` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - 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 - { - // Generated from `Microsoft.Extensions.Primitives.StringValues+Enumerator` in `Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` - 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; - 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 static Microsoft.Extensions.Primitives.StringValues Empty; - 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 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 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; - public override int GetHashCode() => throw null; - int System.Collections.Generic.IList.IndexOf(string item) => throw null; - 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; - 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; - } - - } - } -} diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj deleted file mode 100644 index 0b613573699..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/6.0.0/Microsoft.Extensions.Primitives.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.0/System.Diagnostics.DiagnosticSource.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.0/System.Diagnostics.DiagnosticSource.csproj deleted file mode 100644 index 0b613573699..00000000000 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.0/System.Diagnostics.DiagnosticSource.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - - diff --git a/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj b/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - diff --git a/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj b/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj deleted file mode 100644 index a04faa3ef58..00000000000 --- a/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - bin\ - false - - - - - - From 3a908ac4b8ed47015893533ab1fa7a18ee441fa8 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 13:53:31 +0200 Subject: [PATCH 677/736] C#: Cleanup stub project references. --- .../stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.csproj | 1 - .../ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.csproj | 1 - .../stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.csproj | 3 --- 3 files changed, 5 deletions(-) diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.csproj index 2a0517584ca..536f96f7a5c 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Common/6.2.0/ServiceStack.Common.csproj @@ -9,7 +9,6 @@ - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.csproj index 2f55ebb810d..59549366b06 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/6.2.0/ServiceStack.OrmLite.csproj @@ -8,7 +8,6 @@ - diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.csproj index d64daa7e680..a04faa3ef58 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Text/6.2.0/ServiceStack.Text.csproj @@ -7,9 +7,6 @@ - - - From 28c8d9b88522f1a2dd6ace35b34f282b08da0471 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 9 Aug 2022 14:17:07 +0200 Subject: [PATCH 678/736] Ruby: Add two more hash flow tests --- .../dataflow/hash-flow/hash-flow.expected | 2282 +++++++++-------- .../dataflow/hash-flow/hash_flow.rb | 8 + 2 files changed, 1159 insertions(+), 1131 deletions(-) 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 2d2aa24b2df..76d7b77a729 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 @@ -55,473 +55,481 @@ edges | hash_flow.rb:68:13:68:39 | ...[...] [element :a] : | hash_flow.rb:69:10:69:14 | 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:76:13:76:42 | call to [] [element :a] : | hash_flow.rb:77:10:77:14 | hash1 [element :a] : | -| hash_flow.rb:76:26:76:35 | call to taint : | hash_flow.rb:76:13:76:42 | call to [] [element :a] : | -| hash_flow.rb:77:10:77:14 | hash1 [element :a] : | hash_flow.rb:77:10:77:18 | ...[...] | -| hash_flow.rb:85:15:85:24 | call to taint : | hash_flow.rb:88:30:88:33 | hash [element :a] : | -| hash_flow.rb:88:13:88:34 | call to try_convert [element :a] : | hash_flow.rb:89:10:89:14 | hash2 [element :a] : | -| hash_flow.rb:88:30:88:33 | hash [element :a] : | hash_flow.rb:88:13:88:34 | call to try_convert [element :a] : | -| hash_flow.rb:89:10:89:14 | hash2 [element :a] : | hash_flow.rb:89:10:89:18 | ...[...] | -| hash_flow.rb:97:21:97:30 | call to taint : | hash_flow.rb:98:10:98:10 | b | -| hash_flow.rb:105:9:105:12 | [post] hash [element :a] : | hash_flow.rb:106:10:106:13 | hash [element :a] : | -| hash_flow.rb:105:9:105:34 | call to store : | hash_flow.rb:107:10:107:10 | b | -| hash_flow.rb:105:24:105:33 | call to taint : | hash_flow.rb:105:9:105:12 | [post] hash [element :a] : | -| hash_flow.rb:105:24:105:33 | call to taint : | hash_flow.rb:105:9:105:34 | call to store : | -| hash_flow.rb:106:10:106:13 | hash [element :a] : | hash_flow.rb:106:10:106:17 | ...[...] | -| hash_flow.rb:110:9:110:12 | [post] hash [element] : | hash_flow.rb:111:10:111:13 | hash [element] : | -| hash_flow.rb:110:9:110:12 | [post] hash [element] : | hash_flow.rb:112:10:112:13 | hash [element] : | -| hash_flow.rb:110:9:110:33 | call to store : | hash_flow.rb:113:10:113:10 | c | -| hash_flow.rb:110:23:110:32 | call to taint : | hash_flow.rb:110:9:110:12 | [post] hash [element] : | -| hash_flow.rb:110:23:110:32 | call to taint : | hash_flow.rb:110:9:110:33 | call to store : | -| hash_flow.rb:111:10:111:13 | hash [element] : | hash_flow.rb:111:10:111:17 | ...[...] | -| hash_flow.rb:112:10:112:13 | hash [element] : | hash_flow.rb:112:10:112:17 | ...[...] | -| hash_flow.rb:120:15:120:24 | call to taint : | hash_flow.rb:123:5:123:8 | hash [element :a] : | -| hash_flow.rb:120:15:120:24 | call to taint : | hash_flow.rb:126:5:126:8 | hash [element :a] : | -| hash_flow.rb:123:5:123:8 | hash [element :a] : | hash_flow.rb:123:18:123:29 | key_or_value : | -| hash_flow.rb:123:18:123:29 | key_or_value : | hash_flow.rb:124:14:124:25 | key_or_value | -| hash_flow.rb:126:5:126:8 | hash [element :a] : | hash_flow.rb:126:22:126:26 | value : | -| hash_flow.rb:126:22:126:26 | value : | hash_flow.rb:128:14:128:18 | value | -| hash_flow.rb:136:15:136:25 | call to taint : | hash_flow.rb:139:9:139:12 | hash [element :a] : | -| hash_flow.rb:136:15:136:25 | call to taint : | hash_flow.rb:143:9:143:12 | hash [element :a] : | -| hash_flow.rb:139:9:139:12 | hash [element :a] : | hash_flow.rb:139:9:139:22 | call to assoc [element 1] : | -| hash_flow.rb:139:9:139:22 | call to assoc [element 1] : | hash_flow.rb:141:10:141:10 | b [element 1] : | -| hash_flow.rb:139:9:139:22 | call to assoc [element 1] : | hash_flow.rb:142:10:142:10 | b [element 1] : | -| hash_flow.rb:141:10:141:10 | b [element 1] : | hash_flow.rb:141:10:141:13 | ...[...] | -| hash_flow.rb:142:10:142:10 | b [element 1] : | hash_flow.rb:142:10:142:13 | ...[...] | -| hash_flow.rb:143:9:143:12 | hash [element :a] : | hash_flow.rb:143:9:143:21 | call to assoc [element 1] : | -| hash_flow.rb:143:9:143:21 | call to assoc [element 1] : | hash_flow.rb:144:10:144:10 | c [element 1] : | -| hash_flow.rb:144:10:144:10 | c [element 1] : | hash_flow.rb:144:10:144:13 | ...[...] | -| hash_flow.rb:162:15:162:25 | call to taint : | hash_flow.rb:165:9:165:12 | hash [element :a] : | -| hash_flow.rb:165:9:165:12 | hash [element :a] : | hash_flow.rb:165:9:165:20 | call to compact [element :a] : | -| hash_flow.rb:165:9:165:20 | call to compact [element :a] : | hash_flow.rb:166:10:166:10 | a [element :a] : | -| hash_flow.rb:166:10:166:10 | a [element :a] : | hash_flow.rb:166:10:166:14 | ...[...] | -| hash_flow.rb:174:15:174:25 | call to taint : | hash_flow.rb:177:9:177:12 | hash [element :a] : | -| hash_flow.rb:177:9:177:12 | hash [element :a] : | hash_flow.rb:177:9:177:23 | call to delete : | -| hash_flow.rb:177:9:177:23 | call to delete : | hash_flow.rb:178:10:178:10 | a | -| hash_flow.rb:186:15:186:25 | call to taint : | hash_flow.rb:189:9:189:12 | hash [element :a] : | -| hash_flow.rb:186:15:186:25 | call to taint : | hash_flow.rb:194:10:194:13 | hash [element :a] : | -| hash_flow.rb:189:9:189:12 | [post] hash [element :a] : | hash_flow.rb:194:10:194:13 | hash [element :a] : | -| hash_flow.rb:189:9:189:12 | hash [element :a] : | hash_flow.rb:189:9:189:12 | [post] hash [element :a] : | -| hash_flow.rb:189:9:189:12 | hash [element :a] : | hash_flow.rb:189:9:192:7 | call to delete_if [element :a] : | -| hash_flow.rb:189:9:189:12 | hash [element :a] : | hash_flow.rb:189:33:189:37 | value : | -| hash_flow.rb:189:9:192:7 | call to delete_if [element :a] : | hash_flow.rb:193:10:193:10 | a [element :a] : | -| hash_flow.rb:189:33:189:37 | value : | hash_flow.rb:191:14:191:18 | value | -| hash_flow.rb:193:10:193:10 | a [element :a] : | hash_flow.rb:193:10:193:14 | ...[...] | -| hash_flow.rb:194:10:194:13 | hash [element :a] : | hash_flow.rb:194:10:194:17 | ...[...] | -| hash_flow.rb:202:15:202:25 | call to taint : | hash_flow.rb:209:10:209:13 | hash [element :a] : | -| hash_flow.rb:205:19:205:29 | call to taint : | hash_flow.rb:211:10:211:13 | hash [element :c, element :d] : | -| hash_flow.rb:209:10:209:13 | hash [element :a] : | hash_flow.rb:209:10:209:21 | call to dig | -| hash_flow.rb:211:10:211:13 | hash [element :c, element :d] : | hash_flow.rb:211:10:211:24 | call to dig | -| hash_flow.rb:219:15:219:25 | call to taint : | hash_flow.rb:222:9:222:12 | hash [element :a] : | -| hash_flow.rb:222:9:222:12 | hash [element :a] : | hash_flow.rb:222:9:225:7 | call to each [element :a] : | -| hash_flow.rb:222:9:222:12 | hash [element :a] : | hash_flow.rb:222:28:222:32 | value : | -| hash_flow.rb:222:9:225:7 | call to each [element :a] : | hash_flow.rb:226:10:226:10 | x [element :a] : | -| hash_flow.rb:222:28:222:32 | value : | hash_flow.rb:224:14:224:18 | value | -| hash_flow.rb:226:10:226:10 | x [element :a] : | hash_flow.rb:226:10:226:14 | ...[...] | -| hash_flow.rb:234:15:234:25 | call to taint : | hash_flow.rb:237:9:237:12 | hash [element :a] : | -| hash_flow.rb:237:9:237:12 | hash [element :a] : | hash_flow.rb:237:9:239:7 | call to each_key [element :a] : | -| hash_flow.rb:237:9:239:7 | call to each_key [element :a] : | hash_flow.rb:240:10:240:10 | x [element :a] : | -| hash_flow.rb:240:10:240:10 | x [element :a] : | hash_flow.rb:240:10:240:14 | ...[...] | -| hash_flow.rb:248:15:248:25 | call to taint : | hash_flow.rb:251:9:251:12 | hash [element :a] : | -| hash_flow.rb:251:9:251:12 | hash [element :a] : | hash_flow.rb:251:9:254:7 | call to each_pair [element :a] : | -| hash_flow.rb:251:9:251:12 | hash [element :a] : | hash_flow.rb:251:33:251:37 | value : | -| hash_flow.rb:251:9:254:7 | call to each_pair [element :a] : | hash_flow.rb:255:10:255:10 | x [element :a] : | -| hash_flow.rb:251:33:251:37 | value : | hash_flow.rb:253:14:253:18 | value | -| hash_flow.rb:255:10:255:10 | x [element :a] : | hash_flow.rb:255:10:255:14 | ...[...] | -| hash_flow.rb:263:15:263:25 | call to taint : | hash_flow.rb:266:9:266:12 | hash [element :a] : | -| hash_flow.rb:266:9:266:12 | hash [element :a] : | hash_flow.rb:266:9:268:7 | call to each_value [element :a] : | -| hash_flow.rb:266:9:266:12 | hash [element :a] : | hash_flow.rb:266:29:266:33 | value : | -| hash_flow.rb:266:9:268:7 | call to each_value [element :a] : | hash_flow.rb:269:10:269:10 | x [element :a] : | -| hash_flow.rb:266:29:266:33 | value : | hash_flow.rb:267:14:267:18 | value | -| hash_flow.rb:269:10:269:10 | x [element :a] : | hash_flow.rb:269:10:269:14 | ...[...] | -| hash_flow.rb:279:15:279:25 | call to taint : | hash_flow.rb:282:9:282:12 | hash [element :c] : | -| hash_flow.rb:282:9:282:12 | hash [element :c] : | hash_flow.rb:282:9:282:28 | call to except [element :c] : | -| hash_flow.rb:282:9:282:28 | call to except [element :c] : | hash_flow.rb:285:10:285:10 | x [element :c] : | -| hash_flow.rb:285:10:285:10 | x [element :c] : | hash_flow.rb:285:10:285:14 | ...[...] | -| hash_flow.rb:293:15:293:25 | call to taint : | hash_flow.rb:297:9:297:12 | hash [element :a] : | -| hash_flow.rb:293:15:293:25 | call to taint : | hash_flow.rb:301:9:301:12 | hash [element :a] : | -| hash_flow.rb:293:15:293:25 | call to taint : | hash_flow.rb:303:9:303:12 | hash [element :a] : | -| hash_flow.rb:293:15:293:25 | call to taint : | hash_flow.rb:307:9:307:12 | hash [element :a] : | -| hash_flow.rb:295:15:295:25 | call to taint : | hash_flow.rb:297:9:297:12 | hash [element :c] : | -| hash_flow.rb:295:15:295:25 | call to taint : | hash_flow.rb:307:9:307:12 | hash [element :c] : | -| hash_flow.rb:297:9:297:12 | hash [element :a] : | hash_flow.rb:297:9:299:7 | call to fetch : | -| hash_flow.rb:297:9:297:12 | hash [element :c] : | hash_flow.rb:297:9:299:7 | call to fetch : | -| hash_flow.rb:297:9:299:7 | call to fetch : | hash_flow.rb:300:10:300:10 | b | -| hash_flow.rb:297:20:297:30 | call to taint : | hash_flow.rb:297:37:297:37 | x : | -| hash_flow.rb:297:37:297:37 | x : | hash_flow.rb:298:14:298:14 | x | -| hash_flow.rb:301:9:301:12 | hash [element :a] : | hash_flow.rb:301:9:301:22 | call to fetch : | -| hash_flow.rb:301:9:301:22 | call to fetch : | hash_flow.rb:302:10:302:10 | b | -| hash_flow.rb:303:9:303:12 | hash [element :a] : | hash_flow.rb:303:9:303:35 | call to fetch : | -| hash_flow.rb:303:9:303:35 | call to fetch : | hash_flow.rb:304:10:304:10 | b | -| hash_flow.rb:303:24:303:34 | call to taint : | hash_flow.rb:303:9:303:35 | call to fetch : | -| hash_flow.rb:305:9:305:35 | call to fetch : | hash_flow.rb:306:10:306:10 | b | -| hash_flow.rb:305:24:305:34 | call to taint : | hash_flow.rb:305:9:305:35 | call to fetch : | -| hash_flow.rb:307:9:307:12 | hash [element :a] : | hash_flow.rb:307:9:307:34 | call to fetch : | -| hash_flow.rb:307:9:307:12 | hash [element :c] : | hash_flow.rb:307:9:307:34 | call to fetch : | -| hash_flow.rb:307:9:307:34 | call to fetch : | hash_flow.rb:308:10:308:10 | b | -| hash_flow.rb:307:23:307:33 | call to taint : | hash_flow.rb:307:9:307:34 | call to fetch : | -| hash_flow.rb:315:15:315:25 | call to taint : | hash_flow.rb:319:9:319:12 | hash [element :a] : | -| hash_flow.rb:315:15:315:25 | call to taint : | hash_flow.rb:324:9:324:12 | hash [element :a] : | -| hash_flow.rb:315:15:315:25 | call to taint : | hash_flow.rb:326:9:326:12 | hash [element :a] : | -| hash_flow.rb:317:15:317:25 | call to taint : | hash_flow.rb:319:9:319:12 | hash [element :c] : | -| hash_flow.rb:317:15:317:25 | call to taint : | hash_flow.rb:326:9:326:12 | hash [element :c] : | -| hash_flow.rb:319:9:319:12 | hash [element :a] : | hash_flow.rb:319:9:322:7 | call to fetch_values [element] : | -| hash_flow.rb:319:9:319:12 | hash [element :c] : | hash_flow.rb:319:9:322:7 | call to fetch_values [element] : | -| hash_flow.rb:319:9:322:7 | call to fetch_values [element] : | hash_flow.rb:323:10:323:10 | b [element] : | -| hash_flow.rb:319:27:319:37 | call to taint : | hash_flow.rb:319:44:319:44 | x : | -| hash_flow.rb:319:44:319:44 | x : | hash_flow.rb:320:14:320:14 | x | -| hash_flow.rb:321:9:321:19 | call to taint : | hash_flow.rb:319:9:322:7 | call to fetch_values [element] : | -| hash_flow.rb:323:10:323:10 | b [element] : | hash_flow.rb:323:10:323:13 | ...[...] | -| hash_flow.rb:324:9:324:12 | hash [element :a] : | hash_flow.rb:324:9:324:29 | call to fetch_values [element] : | -| hash_flow.rb:324:9:324:29 | call to fetch_values [element] : | hash_flow.rb:325:10:325:10 | b [element] : | -| hash_flow.rb:325:10:325:10 | b [element] : | hash_flow.rb:325:10:325:13 | ...[...] | -| hash_flow.rb:326:9:326:12 | hash [element :a] : | hash_flow.rb:326:9:326:31 | call to fetch_values [element] : | -| hash_flow.rb:326:9:326:12 | hash [element :c] : | hash_flow.rb:326:9:326:31 | call to fetch_values [element] : | -| hash_flow.rb:326:9:326:31 | call to fetch_values [element] : | hash_flow.rb:327:10:327:10 | b [element] : | -| hash_flow.rb:327:10:327:10 | b [element] : | hash_flow.rb:327:10:327:13 | ...[...] | -| hash_flow.rb:334:15:334:25 | call to taint : | hash_flow.rb:338:9:338:12 | hash [element :a] : | -| hash_flow.rb:336:15:336:25 | call to taint : | hash_flow.rb:338:9:338:12 | hash [element :c] : | -| hash_flow.rb:338:9:338:12 | hash [element :a] : | hash_flow.rb:338:9:342:7 | call to filter [element :a] : | -| hash_flow.rb:338:9:338:12 | hash [element :a] : | hash_flow.rb:338:30:338:34 | value : | -| hash_flow.rb:338:9:338:12 | hash [element :c] : | hash_flow.rb:338:30:338:34 | value : | -| hash_flow.rb:338:9:342:7 | call to filter [element :a] : | hash_flow.rb:343:11:343:11 | b [element :a] : | -| hash_flow.rb:338:30:338:34 | value : | hash_flow.rb:340:14:340:18 | value | -| hash_flow.rb:343:11:343:11 | b [element :a] : | hash_flow.rb:343:11:343:15 | ...[...] : | -| hash_flow.rb:343:11:343:15 | ...[...] : | hash_flow.rb:343:10:343:16 | ( ... ) | -| hash_flow.rb:350:15:350:25 | call to taint : | hash_flow.rb:354:5:354:8 | hash [element :a] : | -| hash_flow.rb:352:15:352:25 | call to taint : | hash_flow.rb:354:5:354:8 | hash [element :c] : | -| hash_flow.rb:354:5:354:8 | [post] hash [element :a] : | hash_flow.rb:359:11:359:14 | hash [element :a] : | -| hash_flow.rb:354:5:354:8 | hash [element :a] : | hash_flow.rb:354:5:354:8 | [post] hash [element :a] : | -| hash_flow.rb:354:5:354:8 | hash [element :a] : | hash_flow.rb:354:27:354:31 | value : | -| hash_flow.rb:354:5:354:8 | hash [element :c] : | hash_flow.rb:354:27:354:31 | value : | -| hash_flow.rb:354:27:354:31 | value : | hash_flow.rb:356:14:356:18 | value | -| hash_flow.rb:359:11:359:14 | hash [element :a] : | hash_flow.rb:359:11:359:18 | ...[...] : | -| hash_flow.rb:359:11:359:18 | ...[...] : | hash_flow.rb:359:10:359:19 | ( ... ) | -| hash_flow.rb:366:15:366:25 | call to taint : | hash_flow.rb:370:9:370:12 | hash [element :a] : | -| hash_flow.rb:368:15:368:25 | call to taint : | hash_flow.rb:370:9:370:12 | hash [element :c] : | -| hash_flow.rb:370:9:370:12 | hash [element :a] : | hash_flow.rb:370:9:370:20 | call to flatten [element] : | -| hash_flow.rb:370:9:370:12 | hash [element :c] : | hash_flow.rb:370:9:370:20 | call to flatten [element] : | -| hash_flow.rb:370:9:370:20 | call to flatten [element] : | hash_flow.rb:371:11:371:11 | b [element] : | -| hash_flow.rb:371:11:371:11 | b [element] : | hash_flow.rb:371:11:371:14 | ...[...] : | -| hash_flow.rb:371:11:371:14 | ...[...] : | hash_flow.rb:371:10:371:15 | ( ... ) | -| hash_flow.rb:378:15:378:25 | call to taint : | hash_flow.rb:382:9:382:12 | hash [element :a] : | -| hash_flow.rb:380:15:380:25 | call to taint : | hash_flow.rb:382:9:382:12 | hash [element :c] : | -| hash_flow.rb:382:9:382:12 | [post] hash [element :a] : | hash_flow.rb:387:11:387:14 | hash [element :a] : | -| hash_flow.rb:382:9:382:12 | hash [element :a] : | hash_flow.rb:382:9:382:12 | [post] hash [element :a] : | -| hash_flow.rb:382:9:382:12 | hash [element :a] : | hash_flow.rb:382:9:386:7 | call to keep_if [element :a] : | -| hash_flow.rb:382:9:382:12 | hash [element :a] : | hash_flow.rb:382:31:382:35 | value : | -| hash_flow.rb:382:9:382:12 | hash [element :c] : | hash_flow.rb:382:31:382:35 | value : | -| hash_flow.rb:382:9:386:7 | call to keep_if [element :a] : | hash_flow.rb:388:11:388:11 | b [element :a] : | -| hash_flow.rb:382:31:382:35 | value : | hash_flow.rb:384:14:384:18 | value | -| hash_flow.rb:387:11:387:14 | hash [element :a] : | hash_flow.rb:387:11:387:18 | ...[...] : | -| hash_flow.rb:387:11:387:18 | ...[...] : | hash_flow.rb:387:10:387:19 | ( ... ) | -| hash_flow.rb:388:11:388:11 | b [element :a] : | hash_flow.rb:388:11:388:15 | ...[...] : | -| hash_flow.rb:388:11:388:15 | ...[...] : | hash_flow.rb:388:10:388:16 | ( ... ) | -| hash_flow.rb:395:15:395:25 | call to taint : | hash_flow.rb:404:12:404:16 | hash1 [element :a] : | -| hash_flow.rb:397:15:397:25 | call to taint : | hash_flow.rb:404:12:404:16 | hash1 [element :c] : | -| hash_flow.rb:400:15:400:25 | call to taint : | hash_flow.rb:404:24:404:28 | hash2 [element :d] : | -| hash_flow.rb:402:15:402:25 | call to taint : | hash_flow.rb:404:24:404:28 | hash2 [element :f] : | -| hash_flow.rb:404:12:404:16 | hash1 [element :a] : | hash_flow.rb:404:12:408:7 | call to merge [element :a] : | -| hash_flow.rb:404:12:404:16 | hash1 [element :a] : | hash_flow.rb:404:40:404:48 | old_value : | -| hash_flow.rb:404:12:404:16 | hash1 [element :a] : | hash_flow.rb:404:51:404:59 | new_value : | -| hash_flow.rb:404:12:404:16 | hash1 [element :c] : | hash_flow.rb:404:12:408:7 | call to merge [element :c] : | -| hash_flow.rb:404:12:404:16 | hash1 [element :c] : | hash_flow.rb:404:40:404:48 | old_value : | -| hash_flow.rb:404:12:404:16 | hash1 [element :c] : | hash_flow.rb:404:51:404:59 | new_value : | -| hash_flow.rb:404:12:408:7 | call to merge [element :a] : | hash_flow.rb:409:11:409:14 | hash [element :a] : | -| hash_flow.rb:404:12:408:7 | call to merge [element :c] : | hash_flow.rb:411:11:411:14 | hash [element :c] : | -| hash_flow.rb:404:12:408:7 | call to merge [element :d] : | hash_flow.rb:412:11:412:14 | hash [element :d] : | -| hash_flow.rb:404:12:408:7 | call to merge [element :f] : | hash_flow.rb:414:11:414:14 | hash [element :f] : | -| hash_flow.rb:404:24:404:28 | hash2 [element :d] : | hash_flow.rb:404:12:408:7 | call to merge [element :d] : | -| hash_flow.rb:404:24:404:28 | hash2 [element :d] : | hash_flow.rb:404:40:404:48 | old_value : | -| hash_flow.rb:404:24:404:28 | hash2 [element :d] : | hash_flow.rb:404:51:404:59 | new_value : | -| hash_flow.rb:404:24:404:28 | hash2 [element :f] : | hash_flow.rb:404:12:408:7 | call to merge [element :f] : | -| hash_flow.rb:404:24:404:28 | hash2 [element :f] : | hash_flow.rb:404:40:404:48 | old_value : | -| hash_flow.rb:404:24:404:28 | hash2 [element :f] : | hash_flow.rb:404:51:404:59 | new_value : | -| hash_flow.rb:404:40:404:48 | old_value : | hash_flow.rb:406:14:406:22 | old_value | -| hash_flow.rb:404:51:404:59 | new_value : | hash_flow.rb:407:14:407:22 | new_value | -| hash_flow.rb:409:11:409:14 | hash [element :a] : | hash_flow.rb:409:11:409:18 | ...[...] : | -| hash_flow.rb:409:11:409:18 | ...[...] : | hash_flow.rb:409:10:409:19 | ( ... ) | -| hash_flow.rb:411:11:411:14 | hash [element :c] : | hash_flow.rb:411:11:411:18 | ...[...] : | -| hash_flow.rb:411:11:411:18 | ...[...] : | hash_flow.rb:411:10:411:19 | ( ... ) | -| hash_flow.rb:412:11:412:14 | hash [element :d] : | hash_flow.rb:412:11:412:18 | ...[...] : | -| hash_flow.rb:412:11:412:18 | ...[...] : | hash_flow.rb:412:10:412:19 | ( ... ) | -| hash_flow.rb:414:11:414:14 | hash [element :f] : | hash_flow.rb:414:11:414:18 | ...[...] : | -| hash_flow.rb:414:11:414:18 | ...[...] : | hash_flow.rb:414:10:414:19 | ( ... ) | -| hash_flow.rb:421:15:421:25 | call to taint : | hash_flow.rb:430:12:430:16 | hash1 [element :a] : | -| hash_flow.rb:423:15:423:25 | call to taint : | hash_flow.rb:430:12:430:16 | hash1 [element :c] : | -| hash_flow.rb:426:15:426:25 | call to taint : | hash_flow.rb:430:25:430:29 | hash2 [element :d] : | -| hash_flow.rb:428:15:428:25 | call to taint : | hash_flow.rb:430:25:430:29 | hash2 [element :f] : | -| hash_flow.rb:430:12:430:16 | [post] hash1 [element :a] : | hash_flow.rb:442:11:442:15 | hash1 [element :a] : | -| hash_flow.rb:430:12:430:16 | [post] hash1 [element :c] : | hash_flow.rb:444:11:444:15 | hash1 [element :c] : | -| hash_flow.rb:430:12:430:16 | [post] hash1 [element :d] : | hash_flow.rb:445:11:445:15 | hash1 [element :d] : | -| hash_flow.rb:430:12:430:16 | [post] hash1 [element :f] : | hash_flow.rb:447:11:447:15 | hash1 [element :f] : | -| hash_flow.rb:430:12:430:16 | hash1 [element :a] : | hash_flow.rb:430:12:430:16 | [post] hash1 [element :a] : | -| hash_flow.rb:430:12:430:16 | hash1 [element :a] : | hash_flow.rb:430:12:434:7 | call to merge! [element :a] : | -| hash_flow.rb:430:12:430:16 | hash1 [element :a] : | hash_flow.rb:430:41:430:49 | old_value : | -| hash_flow.rb:430:12:430:16 | hash1 [element :a] : | hash_flow.rb:430:52:430:60 | new_value : | -| hash_flow.rb:430:12:430:16 | hash1 [element :c] : | hash_flow.rb:430:12:430:16 | [post] hash1 [element :c] : | -| hash_flow.rb:430:12:430:16 | hash1 [element :c] : | hash_flow.rb:430:12:434:7 | call to merge! [element :c] : | -| hash_flow.rb:430:12:430:16 | hash1 [element :c] : | hash_flow.rb:430:41:430:49 | old_value : | -| hash_flow.rb:430:12:430:16 | hash1 [element :c] : | hash_flow.rb:430:52:430:60 | new_value : | -| hash_flow.rb:430:12:434:7 | call to merge! [element :a] : | hash_flow.rb:435:11:435:14 | hash [element :a] : | -| hash_flow.rb:430:12:434:7 | call to merge! [element :c] : | hash_flow.rb:437:11:437:14 | hash [element :c] : | -| hash_flow.rb:430:12:434:7 | call to merge! [element :d] : | hash_flow.rb:438:11:438:14 | hash [element :d] : | -| hash_flow.rb:430:12:434:7 | call to merge! [element :f] : | hash_flow.rb:440:11:440:14 | hash [element :f] : | -| hash_flow.rb:430:25:430:29 | hash2 [element :d] : | hash_flow.rb:430:12:430:16 | [post] hash1 [element :d] : | -| hash_flow.rb:430:25:430:29 | hash2 [element :d] : | hash_flow.rb:430:12:434:7 | call to merge! [element :d] : | -| hash_flow.rb:430:25:430:29 | hash2 [element :d] : | hash_flow.rb:430:41:430:49 | old_value : | -| hash_flow.rb:430:25:430:29 | hash2 [element :d] : | hash_flow.rb:430:52:430:60 | new_value : | -| hash_flow.rb:430:25:430:29 | hash2 [element :f] : | hash_flow.rb:430:12:430:16 | [post] hash1 [element :f] : | -| hash_flow.rb:430:25:430:29 | hash2 [element :f] : | hash_flow.rb:430:12:434:7 | call to merge! [element :f] : | -| hash_flow.rb:430:25:430:29 | hash2 [element :f] : | hash_flow.rb:430:41:430:49 | old_value : | -| hash_flow.rb:430:25:430:29 | hash2 [element :f] : | hash_flow.rb:430:52:430:60 | new_value : | -| hash_flow.rb:430:41:430:49 | old_value : | hash_flow.rb:432:14:432:22 | old_value | -| hash_flow.rb:430:52:430:60 | new_value : | hash_flow.rb:433:14:433:22 | new_value | -| hash_flow.rb:435:11:435:14 | hash [element :a] : | hash_flow.rb:435:11:435:18 | ...[...] : | -| hash_flow.rb:435:11:435:18 | ...[...] : | hash_flow.rb:435:10:435:19 | ( ... ) | -| hash_flow.rb:437:11:437:14 | hash [element :c] : | hash_flow.rb:437:11:437:18 | ...[...] : | -| hash_flow.rb:437:11:437:18 | ...[...] : | hash_flow.rb:437:10:437:19 | ( ... ) | -| hash_flow.rb:438:11:438:14 | hash [element :d] : | hash_flow.rb:438:11:438:18 | ...[...] : | -| hash_flow.rb:438:11:438:18 | ...[...] : | hash_flow.rb:438:10:438:19 | ( ... ) | -| hash_flow.rb:440:11:440:14 | hash [element :f] : | hash_flow.rb:440:11:440:18 | ...[...] : | -| hash_flow.rb:440:11:440:18 | ...[...] : | hash_flow.rb:440:10:440:19 | ( ... ) | -| hash_flow.rb:442:11:442:15 | hash1 [element :a] : | hash_flow.rb:442:11:442:19 | ...[...] : | -| hash_flow.rb:442:11:442:19 | ...[...] : | hash_flow.rb:442:10:442:20 | ( ... ) | -| hash_flow.rb:444:11:444:15 | hash1 [element :c] : | hash_flow.rb:444:11:444:19 | ...[...] : | -| hash_flow.rb:444:11:444:19 | ...[...] : | hash_flow.rb:444:10:444:20 | ( ... ) | -| hash_flow.rb:445:11:445:15 | hash1 [element :d] : | hash_flow.rb:445:11:445:19 | ...[...] : | -| hash_flow.rb:445:11:445:19 | ...[...] : | hash_flow.rb:445:10:445:20 | ( ... ) | -| hash_flow.rb:447:11:447:15 | hash1 [element :f] : | hash_flow.rb:447:11:447:19 | ...[...] : | -| hash_flow.rb:447:11:447:19 | ...[...] : | hash_flow.rb:447:10:447:20 | ( ... ) | -| hash_flow.rb:454:15:454:25 | call to taint : | hash_flow.rb:457:9:457:12 | hash [element :a] : | -| hash_flow.rb:457:9:457:12 | hash [element :a] : | hash_flow.rb:457:9:457:22 | call to rassoc [element 1] : | -| hash_flow.rb:457:9:457:22 | call to rassoc [element 1] : | hash_flow.rb:459:10:459:10 | b [element 1] : | -| hash_flow.rb:459:10:459:10 | b [element 1] : | hash_flow.rb:459:10:459:13 | ...[...] | -| hash_flow.rb:466:15:466:25 | call to taint : | hash_flow.rb:469:9:469:12 | hash [element :a] : | -| hash_flow.rb:469:9:469:12 | hash [element :a] : | hash_flow.rb:469:9:473:7 | call to reject [element :a] : | -| hash_flow.rb:469:9:469:12 | hash [element :a] : | hash_flow.rb:469:29:469:33 | value : | -| hash_flow.rb:469:9:473:7 | call to reject [element :a] : | hash_flow.rb:474:10:474:10 | b [element :a] : | -| hash_flow.rb:469:29:469:33 | value : | hash_flow.rb:471:14:471:18 | value | -| hash_flow.rb:474:10:474:10 | b [element :a] : | hash_flow.rb:474:10:474:14 | ...[...] | -| hash_flow.rb:481:15:481:25 | call to taint : | hash_flow.rb:484:9:484:12 | hash [element :a] : | -| hash_flow.rb:481:15:481:25 | call to taint : | hash_flow.rb:490:10:490:13 | hash [element :a] : | -| hash_flow.rb:484:9:484:12 | [post] hash [element :a] : | hash_flow.rb:490:10:490:13 | hash [element :a] : | -| hash_flow.rb:484:9:484:12 | hash [element :a] : | hash_flow.rb:484:9:484:12 | [post] hash [element :a] : | -| hash_flow.rb:484:9:484:12 | hash [element :a] : | hash_flow.rb:484:9:488:7 | call to reject! [element :a] : | -| hash_flow.rb:484:9:484:12 | hash [element :a] : | hash_flow.rb:484:30:484:34 | value : | -| hash_flow.rb:484:9:488:7 | call to reject! [element :a] : | hash_flow.rb:489:10:489:10 | b [element :a] : | -| hash_flow.rb:484:30:484:34 | value : | hash_flow.rb:486:14:486:18 | value | -| hash_flow.rb:489:10:489:10 | b [element :a] : | hash_flow.rb:489:10:489:14 | ...[...] | -| hash_flow.rb:490:10:490:13 | hash [element :a] : | hash_flow.rb:490:10:490:17 | ...[...] | -| hash_flow.rb:497:15:497:25 | call to taint : | hash_flow.rb:504:19:504:22 | hash [element :a] : | -| hash_flow.rb:499:15:499:25 | call to taint : | hash_flow.rb:504:19:504:22 | hash [element :c] : | -| hash_flow.rb:504:5:504:9 | [post] hash2 [element :a] : | hash_flow.rb:505:11:505:15 | hash2 [element :a] : | -| hash_flow.rb:504:5:504:9 | [post] hash2 [element :c] : | hash_flow.rb:507:11:507:15 | hash2 [element :c] : | -| hash_flow.rb:504:19:504:22 | hash [element :a] : | hash_flow.rb:504:5:504:9 | [post] hash2 [element :a] : | -| hash_flow.rb:504:19:504:22 | hash [element :c] : | hash_flow.rb:504:5:504:9 | [post] hash2 [element :c] : | -| hash_flow.rb:505:11:505:15 | hash2 [element :a] : | hash_flow.rb:505:11:505:19 | ...[...] : | -| hash_flow.rb:505:11:505:19 | ...[...] : | hash_flow.rb:505:10:505:20 | ( ... ) | -| hash_flow.rb:507:11:507:15 | hash2 [element :c] : | hash_flow.rb:507:11:507:19 | ...[...] : | -| hash_flow.rb:507:11:507:19 | ...[...] : | hash_flow.rb:507:10:507:20 | ( ... ) | -| hash_flow.rb:512:15:512:25 | call to taint : | hash_flow.rb:516:9:516:12 | hash [element :a] : | -| hash_flow.rb:514:15:514:25 | call to taint : | hash_flow.rb:516:9:516:12 | hash [element :c] : | -| hash_flow.rb:516:9:516:12 | hash [element :a] : | hash_flow.rb:516:9:520:7 | call to select [element :a] : | -| hash_flow.rb:516:9:516:12 | hash [element :a] : | hash_flow.rb:516:30:516:34 | value : | -| hash_flow.rb:516:9:516:12 | hash [element :c] : | hash_flow.rb:516:30:516:34 | value : | -| hash_flow.rb:516:9:520:7 | call to select [element :a] : | hash_flow.rb:521:11:521:11 | b [element :a] : | -| hash_flow.rb:516:30:516:34 | value : | hash_flow.rb:518:14:518:18 | value | -| hash_flow.rb:521:11:521:11 | b [element :a] : | hash_flow.rb:521:11:521:15 | ...[...] : | -| hash_flow.rb:521:11:521:15 | ...[...] : | hash_flow.rb:521:10:521:16 | ( ... ) | -| hash_flow.rb:528:15:528:25 | call to taint : | hash_flow.rb:532:5:532:8 | hash [element :a] : | -| hash_flow.rb:530:15:530:25 | call to taint : | hash_flow.rb:532:5:532:8 | hash [element :c] : | -| hash_flow.rb:532:5:532:8 | [post] hash [element :a] : | hash_flow.rb:537:11:537:14 | hash [element :a] : | -| hash_flow.rb:532:5:532:8 | hash [element :a] : | hash_flow.rb:532:5:532:8 | [post] hash [element :a] : | -| hash_flow.rb:532:5:532:8 | hash [element :a] : | hash_flow.rb:532:27:532:31 | value : | -| hash_flow.rb:532:5:532:8 | hash [element :c] : | hash_flow.rb:532:27:532:31 | value : | -| hash_flow.rb:532:27:532:31 | value : | hash_flow.rb:534:14:534:18 | value | -| hash_flow.rb:537:11:537:14 | hash [element :a] : | hash_flow.rb:537:11:537:18 | ...[...] : | -| hash_flow.rb:537:11:537:18 | ...[...] : | hash_flow.rb:537:10:537:19 | ( ... ) | -| hash_flow.rb:544:15:544:25 | call to taint : | hash_flow.rb:548:9:548:12 | hash [element :a] : | -| hash_flow.rb:546:15:546:25 | call to taint : | hash_flow.rb:548:9:548:12 | hash [element :c] : | -| hash_flow.rb:548:9:548:12 | [post] hash [element :a] : | hash_flow.rb:549:11:549:14 | hash [element :a] : | -| hash_flow.rb:548:9:548:12 | hash [element :a] : | hash_flow.rb:548:9:548:12 | [post] hash [element :a] : | -| hash_flow.rb:548:9:548:12 | hash [element :a] : | hash_flow.rb:548:9:548:18 | call to shift [element 1] : | -| hash_flow.rb:548:9:548:12 | hash [element :c] : | hash_flow.rb:548:9:548:18 | call to shift [element 1] : | -| hash_flow.rb:548:9:548:18 | call to shift [element 1] : | hash_flow.rb:551:11:551:11 | b [element 1] : | -| hash_flow.rb:549:11:549:14 | hash [element :a] : | hash_flow.rb:549:11:549:18 | ...[...] : | -| hash_flow.rb:549:11:549:18 | ...[...] : | hash_flow.rb:549:10:549:19 | ( ... ) | -| hash_flow.rb:551:11:551:11 | b [element 1] : | hash_flow.rb:551:11:551:14 | ...[...] : | -| hash_flow.rb:551:11:551:14 | ...[...] : | hash_flow.rb:551:10:551:15 | ( ... ) | -| hash_flow.rb:558:15:558:25 | call to taint : | hash_flow.rb:562:9:562:12 | hash [element :a] : | -| hash_flow.rb:558:15:558:25 | call to taint : | hash_flow.rb:567:9:567:12 | hash [element :a] : | -| hash_flow.rb:560:15:560:25 | call to taint : | hash_flow.rb:567:9:567:12 | hash [element :c] : | -| hash_flow.rb:562:9:562:12 | hash [element :a] : | hash_flow.rb:562:9:562:26 | call to slice [element :a] : | -| hash_flow.rb:562:9:562:26 | call to slice [element :a] : | hash_flow.rb:563:11:563:11 | b [element :a] : | -| hash_flow.rb:563:11:563:11 | b [element :a] : | hash_flow.rb:563:11:563:15 | ...[...] : | -| hash_flow.rb:563:11:563:15 | ...[...] : | hash_flow.rb:563:10:563:16 | ( ... ) | -| hash_flow.rb:567:9:567:12 | hash [element :a] : | hash_flow.rb:567:9:567:25 | call to slice [element :a] : | -| hash_flow.rb:567:9:567:12 | hash [element :c] : | hash_flow.rb:567:9:567:25 | call to slice [element :c] : | -| hash_flow.rb:567:9:567:25 | call to slice [element :a] : | hash_flow.rb:568:11:568:11 | c [element :a] : | -| hash_flow.rb:567:9:567:25 | call to slice [element :c] : | hash_flow.rb:570:11:570:11 | c [element :c] : | -| hash_flow.rb:568:11:568:11 | c [element :a] : | hash_flow.rb:568:11:568:15 | ...[...] : | -| hash_flow.rb:568:11:568:15 | ...[...] : | hash_flow.rb:568:10:568:16 | ( ... ) | -| hash_flow.rb:570:11:570:11 | c [element :c] : | hash_flow.rb:570:11:570:15 | ...[...] : | -| hash_flow.rb:570:11:570:15 | ...[...] : | hash_flow.rb:570:10:570:16 | ( ... ) | -| hash_flow.rb:577:15:577:25 | call to taint : | hash_flow.rb:581:9:581:12 | hash [element :a] : | -| hash_flow.rb:579:15:579:25 | call to taint : | hash_flow.rb:581:9:581:12 | hash [element :c] : | -| hash_flow.rb:581:9:581:12 | hash [element :a] : | hash_flow.rb:581:9:581:17 | call to to_a [element, element 1] : | -| hash_flow.rb:581:9:581:12 | hash [element :c] : | hash_flow.rb:581:9:581:17 | call to to_a [element, element 1] : | -| hash_flow.rb:581:9:581:17 | call to to_a [element, element 1] : | hash_flow.rb:583:11:583:11 | a [element, element 1] : | -| hash_flow.rb:583:11:583:11 | a [element, element 1] : | hash_flow.rb:583:11:583:14 | ...[...] [element 1] : | -| hash_flow.rb:583:11:583:14 | ...[...] [element 1] : | hash_flow.rb:583:11:583:17 | ...[...] : | -| hash_flow.rb:583:11:583:17 | ...[...] : | hash_flow.rb:583:10:583:18 | ( ... ) | -| hash_flow.rb:590:15:590:25 | call to taint : | hash_flow.rb:594:9:594:12 | hash [element :a] : | -| hash_flow.rb:590:15:590:25 | call to taint : | hash_flow.rb:599:9:599:12 | hash [element :a] : | -| hash_flow.rb:592:15:592:25 | call to taint : | hash_flow.rb:594:9:594:12 | hash [element :c] : | -| hash_flow.rb:592:15:592:25 | call to taint : | hash_flow.rb:599:9:599:12 | hash [element :c] : | -| hash_flow.rb:594:9:594:12 | hash [element :a] : | hash_flow.rb:594:9:594:17 | call to to_h [element :a] : | -| hash_flow.rb:594:9:594:12 | hash [element :c] : | hash_flow.rb:594:9:594:17 | call to to_h [element :c] : | -| hash_flow.rb:594:9:594:17 | call to to_h [element :a] : | hash_flow.rb:595:11:595:11 | a [element :a] : | -| hash_flow.rb:594:9:594:17 | call to to_h [element :c] : | hash_flow.rb:597:11:597:11 | a [element :c] : | -| hash_flow.rb:595:11:595:11 | a [element :a] : | hash_flow.rb:595:11:595:15 | ...[...] : | -| hash_flow.rb:595:11:595:15 | ...[...] : | hash_flow.rb:595:10:595:16 | ( ... ) | -| hash_flow.rb:597:11:597:11 | a [element :c] : | hash_flow.rb:597:11:597:15 | ...[...] : | -| hash_flow.rb:597:11:597:15 | ...[...] : | hash_flow.rb:597:10:597:16 | ( ... ) | -| hash_flow.rb:599:9:599:12 | hash [element :a] : | hash_flow.rb:599:28:599:32 | value : | -| hash_flow.rb:599:9:599:12 | hash [element :c] : | hash_flow.rb:599:28:599:32 | value : | -| hash_flow.rb:599:9:603:7 | call to to_h [element] : | hash_flow.rb:604:11:604:11 | b [element] : | -| hash_flow.rb:599:28:599:32 | value : | hash_flow.rb:601:14:601:18 | value | -| hash_flow.rb:602:14:602:24 | call to taint : | hash_flow.rb:599:9:603:7 | call to to_h [element] : | -| hash_flow.rb:604:11:604:11 | b [element] : | hash_flow.rb:604:11:604:15 | ...[...] : | -| hash_flow.rb:604:11:604:15 | ...[...] : | hash_flow.rb:604:10:604:16 | ( ... ) | -| hash_flow.rb:611:15:611:25 | call to taint : | hash_flow.rb:615:9:615:12 | hash [element :a] : | -| hash_flow.rb:613:15:613:25 | call to taint : | hash_flow.rb:615:9:615:12 | hash [element :c] : | -| hash_flow.rb:615:9:615:12 | hash [element :a] : | hash_flow.rb:615:9:615:45 | call to transform_keys [element] : | -| hash_flow.rb:615:9:615:12 | hash [element :c] : | hash_flow.rb:615:9:615:45 | call to transform_keys [element] : | -| hash_flow.rb:615:9:615:45 | call to transform_keys [element] : | hash_flow.rb:616:11:616:11 | a [element] : | -| hash_flow.rb:615:9:615:45 | call to transform_keys [element] : | hash_flow.rb:617:11:617:11 | a [element] : | -| hash_flow.rb:615:9:615:45 | call to transform_keys [element] : | hash_flow.rb:618:11:618:11 | a [element] : | -| hash_flow.rb:616:11:616:11 | a [element] : | hash_flow.rb:616:11:616:16 | ...[...] : | -| hash_flow.rb:616:11:616:16 | ...[...] : | hash_flow.rb:616:10:616:17 | ( ... ) | -| hash_flow.rb:617:11:617:11 | a [element] : | hash_flow.rb:617:11:617:16 | ...[...] : | -| hash_flow.rb:617:11:617:16 | ...[...] : | hash_flow.rb:617:10:617:17 | ( ... ) | -| hash_flow.rb:618:11:618:11 | a [element] : | hash_flow.rb:618:11:618:16 | ...[...] : | -| hash_flow.rb:618:11:618:16 | ...[...] : | hash_flow.rb:618:10:618:17 | ( ... ) | -| hash_flow.rb:625:15:625:25 | call to taint : | hash_flow.rb:629:5:629:8 | hash [element :a] : | -| hash_flow.rb:627:15:627:25 | call to taint : | hash_flow.rb:629:5:629:8 | hash [element :c] : | -| hash_flow.rb:629:5:629:8 | [post] hash [element] : | hash_flow.rb:630:11:630:14 | hash [element] : | -| hash_flow.rb:629:5:629:8 | [post] hash [element] : | hash_flow.rb:631:11:631:14 | hash [element] : | -| hash_flow.rb:629:5:629:8 | [post] hash [element] : | hash_flow.rb:632:11:632:14 | hash [element] : | -| hash_flow.rb:629:5:629:8 | hash [element :a] : | hash_flow.rb:629:5:629:8 | [post] hash [element] : | -| hash_flow.rb:629:5:629:8 | hash [element :c] : | hash_flow.rb:629:5:629:8 | [post] hash [element] : | -| hash_flow.rb:630:11:630:14 | hash [element] : | hash_flow.rb:630:11:630:19 | ...[...] : | -| hash_flow.rb:630:11:630:19 | ...[...] : | hash_flow.rb:630:10:630:20 | ( ... ) | -| hash_flow.rb:631:11:631:14 | hash [element] : | hash_flow.rb:631:11:631:19 | ...[...] : | -| hash_flow.rb:631:11:631:19 | ...[...] : | hash_flow.rb:631:10:631:20 | ( ... ) | -| hash_flow.rb:632:11:632:14 | hash [element] : | hash_flow.rb:632:11:632:19 | ...[...] : | -| hash_flow.rb:632:11:632:19 | ...[...] : | hash_flow.rb:632:10:632:20 | ( ... ) | -| hash_flow.rb:639:15:639:25 | call to taint : | hash_flow.rb:643:9:643:12 | hash [element :a] : | -| hash_flow.rb:639:15:639:25 | call to taint : | hash_flow.rb:647:11:647:14 | hash [element :a] : | -| hash_flow.rb:641:15:641:25 | call to taint : | hash_flow.rb:643:9:643:12 | hash [element :c] : | -| hash_flow.rb:643:9:643:12 | hash [element :a] : | hash_flow.rb:643:35:643:39 | value : | -| hash_flow.rb:643:9:643:12 | hash [element :c] : | hash_flow.rb:643:35:643:39 | value : | -| hash_flow.rb:643:9:646:7 | call to transform_values [element] : | hash_flow.rb:648:11:648:11 | b [element] : | -| hash_flow.rb:643:35:643:39 | value : | hash_flow.rb:644:14:644:18 | value | -| hash_flow.rb:645:9:645:19 | call to taint : | hash_flow.rb:643:9:646:7 | call to transform_values [element] : | -| hash_flow.rb:647:11:647:14 | hash [element :a] : | hash_flow.rb:647:11:647:18 | ...[...] : | -| hash_flow.rb:647:11:647:18 | ...[...] : | hash_flow.rb:647:10:647:19 | ( ... ) | -| hash_flow.rb:648:11:648:11 | b [element] : | hash_flow.rb:648:11:648:15 | ...[...] : | -| hash_flow.rb:648:11:648:15 | ...[...] : | hash_flow.rb:648:10:648:16 | ( ... ) | -| hash_flow.rb:655:15:655:25 | call to taint : | hash_flow.rb:659:5:659:8 | hash [element :a] : | -| hash_flow.rb:657:15:657:25 | call to taint : | hash_flow.rb:659:5:659:8 | hash [element :c] : | -| hash_flow.rb:659:5:659:8 | [post] hash [element] : | hash_flow.rb:663:11:663:14 | hash [element] : | -| hash_flow.rb:659:5:659:8 | hash [element :a] : | hash_flow.rb:659:32:659:36 | value : | -| hash_flow.rb:659:5:659:8 | hash [element :c] : | hash_flow.rb:659:32:659:36 | value : | -| hash_flow.rb:659:32:659:36 | value : | hash_flow.rb:660:14:660:18 | value | -| hash_flow.rb:661:9:661:19 | call to taint : | hash_flow.rb:659:5:659:8 | [post] hash [element] : | -| hash_flow.rb:663:11:663:14 | hash [element] : | hash_flow.rb:663:11:663:18 | ...[...] : | -| hash_flow.rb:663:11:663:18 | ...[...] : | hash_flow.rb:663:10:663:19 | ( ... ) | -| hash_flow.rb:670:15:670:25 | call to taint : | hash_flow.rb:679:12:679:16 | hash1 [element :a] : | -| hash_flow.rb:672:15:672:25 | call to taint : | hash_flow.rb:679:12:679:16 | hash1 [element :c] : | -| hash_flow.rb:675:15:675:25 | call to taint : | hash_flow.rb:679:25:679:29 | hash2 [element :d] : | -| hash_flow.rb:677:15:677:25 | call to taint : | hash_flow.rb:679:25:679:29 | hash2 [element :f] : | -| hash_flow.rb:679:12:679:16 | [post] hash1 [element :a] : | hash_flow.rb:691:11:691:15 | hash1 [element :a] : | -| hash_flow.rb:679:12:679:16 | [post] hash1 [element :c] : | hash_flow.rb:693:11:693:15 | hash1 [element :c] : | -| hash_flow.rb:679:12:679:16 | [post] hash1 [element :d] : | hash_flow.rb:694:11:694:15 | hash1 [element :d] : | -| hash_flow.rb:679:12:679:16 | [post] hash1 [element :f] : | hash_flow.rb:696:11:696:15 | hash1 [element :f] : | -| hash_flow.rb:679:12:679:16 | hash1 [element :a] : | hash_flow.rb:679:12:679:16 | [post] hash1 [element :a] : | -| hash_flow.rb:679:12:679:16 | hash1 [element :a] : | hash_flow.rb:679:12:683:7 | call to update [element :a] : | -| hash_flow.rb:679:12:679:16 | hash1 [element :a] : | hash_flow.rb:679:41:679:49 | old_value : | -| hash_flow.rb:679:12:679:16 | hash1 [element :a] : | hash_flow.rb:679:52:679:60 | new_value : | -| hash_flow.rb:679:12:679:16 | hash1 [element :c] : | hash_flow.rb:679:12:679:16 | [post] hash1 [element :c] : | -| hash_flow.rb:679:12:679:16 | hash1 [element :c] : | hash_flow.rb:679:12:683:7 | call to update [element :c] : | -| hash_flow.rb:679:12:679:16 | hash1 [element :c] : | hash_flow.rb:679:41:679:49 | old_value : | -| hash_flow.rb:679:12:679:16 | hash1 [element :c] : | hash_flow.rb:679:52:679:60 | new_value : | -| hash_flow.rb:679:12:683:7 | call to update [element :a] : | hash_flow.rb:684:11:684:14 | hash [element :a] : | -| hash_flow.rb:679:12:683:7 | call to update [element :c] : | hash_flow.rb:686:11:686:14 | hash [element :c] : | -| hash_flow.rb:679:12:683:7 | call to update [element :d] : | hash_flow.rb:687:11:687:14 | hash [element :d] : | -| hash_flow.rb:679:12:683:7 | call to update [element :f] : | hash_flow.rb:689:11:689:14 | hash [element :f] : | -| hash_flow.rb:679:25:679:29 | hash2 [element :d] : | hash_flow.rb:679:12:679:16 | [post] hash1 [element :d] : | -| hash_flow.rb:679:25:679:29 | hash2 [element :d] : | hash_flow.rb:679:12:683:7 | call to update [element :d] : | -| hash_flow.rb:679:25:679:29 | hash2 [element :d] : | hash_flow.rb:679:41:679:49 | old_value : | -| hash_flow.rb:679:25:679:29 | hash2 [element :d] : | hash_flow.rb:679:52:679:60 | new_value : | -| hash_flow.rb:679:25:679:29 | hash2 [element :f] : | hash_flow.rb:679:12:679:16 | [post] hash1 [element :f] : | -| hash_flow.rb:679:25:679:29 | hash2 [element :f] : | hash_flow.rb:679:12:683:7 | call to update [element :f] : | -| hash_flow.rb:679:25:679:29 | hash2 [element :f] : | hash_flow.rb:679:41:679:49 | old_value : | -| hash_flow.rb:679:25:679:29 | hash2 [element :f] : | hash_flow.rb:679:52:679:60 | new_value : | -| hash_flow.rb:679:41:679:49 | old_value : | hash_flow.rb:681:14:681:22 | old_value | -| hash_flow.rb:679:52:679:60 | new_value : | hash_flow.rb:682:14:682:22 | new_value | -| hash_flow.rb:684:11:684:14 | hash [element :a] : | hash_flow.rb:684:11:684:18 | ...[...] : | -| hash_flow.rb:684:11:684:18 | ...[...] : | hash_flow.rb:684:10:684:19 | ( ... ) | -| hash_flow.rb:686:11:686:14 | hash [element :c] : | hash_flow.rb:686:11:686:18 | ...[...] : | -| hash_flow.rb:686:11:686:18 | ...[...] : | hash_flow.rb:686:10:686:19 | ( ... ) | -| hash_flow.rb:687:11:687:14 | hash [element :d] : | hash_flow.rb:687:11:687:18 | ...[...] : | -| hash_flow.rb:687:11:687:18 | ...[...] : | hash_flow.rb:687:10:687:19 | ( ... ) | -| hash_flow.rb:689:11:689:14 | hash [element :f] : | hash_flow.rb:689:11:689:18 | ...[...] : | -| hash_flow.rb:689:11:689:18 | ...[...] : | hash_flow.rb:689:10:689:19 | ( ... ) | -| hash_flow.rb:691:11:691:15 | hash1 [element :a] : | hash_flow.rb:691:11:691:19 | ...[...] : | -| hash_flow.rb:691:11:691:19 | ...[...] : | hash_flow.rb:691:10:691:20 | ( ... ) | -| hash_flow.rb:693:11:693:15 | hash1 [element :c] : | hash_flow.rb:693:11:693:19 | ...[...] : | -| hash_flow.rb:693:11:693:19 | ...[...] : | hash_flow.rb:693:10:693:20 | ( ... ) | -| hash_flow.rb:694:11:694:15 | hash1 [element :d] : | hash_flow.rb:694:11:694:19 | ...[...] : | -| hash_flow.rb:694:11:694:19 | ...[...] : | hash_flow.rb:694:10:694:20 | ( ... ) | -| hash_flow.rb:696:11:696:15 | hash1 [element :f] : | hash_flow.rb:696:11:696:19 | ...[...] : | -| hash_flow.rb:696:11:696:19 | ...[...] : | hash_flow.rb:696:10:696:20 | ( ... ) | -| hash_flow.rb:703:15:703:25 | call to taint : | hash_flow.rb:707:9:707:12 | hash [element :a] : | -| hash_flow.rb:705:15:705:25 | call to taint : | hash_flow.rb:707:9:707:12 | hash [element :c] : | -| hash_flow.rb:707:9:707:12 | hash [element :a] : | hash_flow.rb:707:9:707:19 | call to values [element] : | -| hash_flow.rb:707:9:707:12 | hash [element :c] : | hash_flow.rb:707:9:707:19 | call to values [element] : | -| hash_flow.rb:707:9:707:19 | call to values [element] : | hash_flow.rb:708:11:708:11 | a [element] : | -| hash_flow.rb:708:11:708:11 | a [element] : | hash_flow.rb:708:11:708:14 | ...[...] : | -| hash_flow.rb:708:11:708:14 | ...[...] : | hash_flow.rb:708:10:708:15 | ( ... ) | -| hash_flow.rb:715:15:715:25 | call to taint : | hash_flow.rb:719:9:719:12 | hash [element :a] : | -| hash_flow.rb:715:15:715:25 | call to taint : | hash_flow.rb:721:9:721:12 | hash [element :a] : | -| hash_flow.rb:717:15:717:25 | call to taint : | hash_flow.rb:721:9:721:12 | hash [element :c] : | -| hash_flow.rb:719:9:719:12 | hash [element :a] : | hash_flow.rb:719:9:719:26 | call to values_at [element 0] : | -| hash_flow.rb:719:9:719:26 | call to values_at [element 0] : | hash_flow.rb:720:10:720:10 | b [element 0] : | -| hash_flow.rb:720:10:720:10 | b [element 0] : | hash_flow.rb:720:10:720:13 | ...[...] | -| hash_flow.rb:721:9:721:12 | hash [element :a] : | hash_flow.rb:721:9:721:31 | call to fetch_values [element] : | -| hash_flow.rb:721:9:721:12 | hash [element :c] : | hash_flow.rb:721:9:721:31 | call to fetch_values [element] : | -| hash_flow.rb:721:9:721:31 | call to fetch_values [element] : | hash_flow.rb:722:10:722:10 | b [element] : | -| hash_flow.rb:722:10:722:10 | b [element] : | hash_flow.rb:722:10:722:13 | ...[...] | -| hash_flow.rb:729:15:729:25 | call to taint : | hash_flow.rb:738:16:738:20 | hash1 [element :a] : | -| hash_flow.rb:731:15:731:25 | call to taint : | hash_flow.rb:738:16:738:20 | hash1 [element :c] : | -| hash_flow.rb:734:15:734:25 | call to taint : | hash_flow.rb:738:44:738:48 | hash2 [element :d] : | -| hash_flow.rb:736:15:736:25 | call to taint : | hash_flow.rb:738:44:738:48 | hash2 [element :f] : | -| hash_flow.rb:738:14:738:20 | ** ... [element :a] : | hash_flow.rb:739:10:739:13 | hash [element :a] : | -| hash_flow.rb:738:14:738:20 | ** ... [element :c] : | hash_flow.rb:741:10:741:13 | hash [element :c] : | -| hash_flow.rb:738:16:738:20 | hash1 [element :a] : | hash_flow.rb:738:14:738:20 | ** ... [element :a] : | -| hash_flow.rb:738:16:738:20 | hash1 [element :c] : | hash_flow.rb:738:14:738:20 | ** ... [element :c] : | -| hash_flow.rb:738:29:738:39 | call to taint : | hash_flow.rb:745:10:745:13 | hash [element :g] : | -| hash_flow.rb:738:42:738:48 | ** ... [element :d] : | hash_flow.rb:742:10:742:13 | hash [element :d] : | -| hash_flow.rb:738:42:738:48 | ** ... [element :f] : | hash_flow.rb:744:10:744:13 | hash [element :f] : | -| hash_flow.rb:738:44:738:48 | hash2 [element :d] : | hash_flow.rb:738:42:738:48 | ** ... [element :d] : | -| hash_flow.rb:738:44:738:48 | hash2 [element :f] : | hash_flow.rb:738:42:738:48 | ** ... [element :f] : | -| hash_flow.rb:739:10:739:13 | hash [element :a] : | hash_flow.rb:739:10:739:17 | ...[...] | -| hash_flow.rb:741:10:741:13 | hash [element :c] : | hash_flow.rb:741:10:741:17 | ...[...] | -| hash_flow.rb:742:10:742:13 | hash [element :d] : | hash_flow.rb:742:10:742:17 | ...[...] | -| hash_flow.rb:744:10:744:13 | hash [element :f] : | hash_flow.rb:744:10:744:17 | ...[...] | -| hash_flow.rb:745:10:745:13 | hash [element :g] : | hash_flow.rb:745:10:745:17 | ...[...] | +| hash_flow.rb:72:13:72:45 | ...[...] [element a] : | hash_flow.rb:73:10:73:14 | hash5 [element a] : | +| hash_flow.rb:72:18:72:34 | Pair [pair a] : | hash_flow.rb:72:13:72:45 | ...[...] [element a] : | +| hash_flow.rb:72:25:72:34 | call to taint : | hash_flow.rb:72:18:72:34 | Pair [pair a] : | +| hash_flow.rb:73:10:73:14 | hash5 [element a] : | hash_flow.rb:73:10:73:19 | ...[...] | +| hash_flow.rb:76:13:76:47 | ...[...] [element a] : | hash_flow.rb:77:10:77:14 | hash6 [element a] : | +| hash_flow.rb:76:19:76:35 | Pair [pair a] : | hash_flow.rb:76:13:76:47 | ...[...] [element a] : | +| hash_flow.rb:76:26:76:35 | call to taint : | hash_flow.rb:76:19:76:35 | Pair [pair a] : | +| hash_flow.rb:77:10:77:14 | hash6 [element a] : | hash_flow.rb:77:10:77:19 | ...[...] | +| hash_flow.rb:84:13:84:42 | call to [] [element :a] : | hash_flow.rb:85:10:85:14 | hash1 [element :a] : | +| hash_flow.rb:84:26:84:35 | call to taint : | hash_flow.rb:84:13:84:42 | call to [] [element :a] : | +| hash_flow.rb:85:10:85:14 | hash1 [element :a] : | hash_flow.rb:85:10:85:18 | ...[...] | +| hash_flow.rb:93:15:93:24 | call to taint : | 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: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:21:105:30 | call to taint : | hash_flow.rb:106:10:106: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:115:10:115:10 | b | +| hash_flow.rb:113:24:113:33 | call to taint : | hash_flow.rb:113:9:113:12 | [post] hash [element :a] : | +| hash_flow.rb:113:24:113:33 | call to taint : | hash_flow.rb:113:9:113:34 | call to store : | +| hash_flow.rb:114:10:114:13 | hash [element :a] : | hash_flow.rb:114:10:114:17 | ...[...] | +| hash_flow.rb:118:9:118:12 | [post] hash [element] : | hash_flow.rb:119:10:119:13 | hash [element] : | +| hash_flow.rb:118:9:118:12 | [post] hash [element] : | hash_flow.rb:120:10:120:13 | hash [element] : | +| hash_flow.rb:118:9:118:33 | call to store : | hash_flow.rb:121:10:121:10 | c | +| hash_flow.rb:118:23:118:32 | call to taint : | hash_flow.rb:118:9:118:12 | [post] hash [element] : | +| hash_flow.rb:118:23:118:32 | call to taint : | hash_flow.rb:118:9:118:33 | call to store : | +| hash_flow.rb:119:10:119:13 | hash [element] : | hash_flow.rb:119:10:119:17 | ...[...] | +| hash_flow.rb:120:10:120:13 | hash [element] : | hash_flow.rb:120:10:120:17 | ...[...] | +| hash_flow.rb:128:15:128:24 | call to taint : | hash_flow.rb:131:5:131:8 | hash [element :a] : | +| hash_flow.rb:128:15:128:24 | call to taint : | hash_flow.rb:134:5:134:8 | hash [element :a] : | +| hash_flow.rb:131:5:131:8 | hash [element :a] : | hash_flow.rb:131:18:131:29 | key_or_value : | +| hash_flow.rb:131:18:131:29 | key_or_value : | hash_flow.rb:132:14:132:25 | key_or_value | +| hash_flow.rb:134:5:134:8 | hash [element :a] : | hash_flow.rb:134:22:134:26 | value : | +| hash_flow.rb:134:22:134:26 | value : | hash_flow.rb:136:14:136:18 | value | +| hash_flow.rb:144:15:144:25 | call to taint : | hash_flow.rb:147:9:147:12 | hash [element :a] : | +| hash_flow.rb:144:15:144:25 | call to taint : | hash_flow.rb:151:9:151:12 | hash [element :a] : | +| hash_flow.rb:147:9:147:12 | hash [element :a] : | hash_flow.rb:147:9:147:22 | call to assoc [element 1] : | +| hash_flow.rb:147:9:147:22 | call to assoc [element 1] : | hash_flow.rb:149:10:149:10 | b [element 1] : | +| hash_flow.rb:147:9:147:22 | call to assoc [element 1] : | hash_flow.rb:150:10:150:10 | b [element 1] : | +| hash_flow.rb:149:10:149:10 | b [element 1] : | hash_flow.rb:149:10:149:13 | ...[...] | +| hash_flow.rb:150:10:150:10 | b [element 1] : | hash_flow.rb:150:10:150:13 | ...[...] | +| hash_flow.rb:151:9:151:12 | hash [element :a] : | hash_flow.rb:151:9:151:21 | call to assoc [element 1] : | +| hash_flow.rb:151:9:151:21 | call to assoc [element 1] : | hash_flow.rb:152:10:152:10 | c [element 1] : | +| hash_flow.rb:152:10:152:10 | c [element 1] : | hash_flow.rb:152:10:152:13 | ...[...] | +| hash_flow.rb:170:15:170:25 | call to taint : | hash_flow.rb:173:9:173:12 | hash [element :a] : | +| hash_flow.rb:173:9:173:12 | hash [element :a] : | hash_flow.rb:173:9:173:20 | call to compact [element :a] : | +| hash_flow.rb:173:9:173:20 | call to compact [element :a] : | hash_flow.rb:174:10:174:10 | a [element :a] : | +| hash_flow.rb:174:10:174:10 | a [element :a] : | hash_flow.rb:174:10:174:14 | ...[...] | +| hash_flow.rb:182:15:182:25 | call to taint : | hash_flow.rb:185:9:185:12 | hash [element :a] : | +| hash_flow.rb:185:9:185:12 | hash [element :a] : | hash_flow.rb:185:9:185:23 | call to delete : | +| hash_flow.rb:185:9:185:23 | call to delete : | hash_flow.rb:186:10:186:10 | a | +| hash_flow.rb:194:15:194:25 | call to taint : | hash_flow.rb:197:9:197:12 | hash [element :a] : | +| hash_flow.rb:194:15:194:25 | call to taint : | hash_flow.rb:202:10:202:13 | hash [element :a] : | +| hash_flow.rb:197:9:197:12 | [post] hash [element :a] : | hash_flow.rb:202:10:202:13 | hash [element :a] : | +| hash_flow.rb:197:9:197:12 | hash [element :a] : | hash_flow.rb:197:9:197:12 | [post] hash [element :a] : | +| hash_flow.rb:197:9:197:12 | hash [element :a] : | hash_flow.rb:197:9:200:7 | call to delete_if [element :a] : | +| hash_flow.rb:197:9:197:12 | hash [element :a] : | hash_flow.rb:197:33:197:37 | value : | +| hash_flow.rb:197:9:200:7 | call to delete_if [element :a] : | hash_flow.rb:201:10:201:10 | a [element :a] : | +| hash_flow.rb:197:33:197:37 | value : | hash_flow.rb:199:14:199:18 | value | +| hash_flow.rb:201:10:201:10 | a [element :a] : | hash_flow.rb:201:10:201:14 | ...[...] | +| hash_flow.rb:202:10:202:13 | hash [element :a] : | hash_flow.rb:202:10:202:17 | ...[...] | +| hash_flow.rb:210:15:210:25 | call to taint : | hash_flow.rb:217:10:217:13 | hash [element :a] : | +| hash_flow.rb:213:19:213:29 | call to taint : | hash_flow.rb:219:10:219:13 | hash [element :c, element :d] : | +| hash_flow.rb:217:10:217:13 | hash [element :a] : | hash_flow.rb:217:10:217:21 | call to dig | +| hash_flow.rb:219:10:219:13 | hash [element :c, element :d] : | hash_flow.rb:219:10:219:24 | call to dig | +| hash_flow.rb:227:15:227:25 | call to taint : | hash_flow.rb:230:9:230:12 | hash [element :a] : | +| hash_flow.rb:230:9:230:12 | hash [element :a] : | hash_flow.rb:230:9:233:7 | call to each [element :a] : | +| hash_flow.rb:230:9:230:12 | hash [element :a] : | hash_flow.rb:230:28:230:32 | value : | +| hash_flow.rb:230:9:233:7 | call to each [element :a] : | hash_flow.rb:234:10:234:10 | x [element :a] : | +| hash_flow.rb:230:28:230:32 | value : | hash_flow.rb:232:14:232:18 | value | +| hash_flow.rb:234:10:234:10 | x [element :a] : | hash_flow.rb:234:10:234:14 | ...[...] | +| hash_flow.rb:242:15:242:25 | call to taint : | hash_flow.rb:245:9:245:12 | hash [element :a] : | +| hash_flow.rb:245:9:245:12 | hash [element :a] : | hash_flow.rb:245:9:247:7 | call to each_key [element :a] : | +| hash_flow.rb:245:9:247:7 | call to each_key [element :a] : | hash_flow.rb:248:10:248:10 | x [element :a] : | +| hash_flow.rb:248:10:248:10 | x [element :a] : | hash_flow.rb:248:10:248:14 | ...[...] | +| hash_flow.rb:256:15:256:25 | call to taint : | hash_flow.rb:259:9:259:12 | hash [element :a] : | +| hash_flow.rb:259:9:259:12 | hash [element :a] : | hash_flow.rb:259:9:262:7 | call to each_pair [element :a] : | +| hash_flow.rb:259:9:259:12 | hash [element :a] : | hash_flow.rb:259:33:259:37 | value : | +| hash_flow.rb:259:9:262:7 | call to each_pair [element :a] : | hash_flow.rb:263:10:263:10 | x [element :a] : | +| hash_flow.rb:259:33:259:37 | value : | hash_flow.rb:261:14:261:18 | value | +| hash_flow.rb:263:10:263:10 | x [element :a] : | hash_flow.rb:263:10:263:14 | ...[...] | +| hash_flow.rb:271:15:271:25 | call to taint : | hash_flow.rb:274:9:274:12 | hash [element :a] : | +| hash_flow.rb:274:9:274:12 | hash [element :a] : | hash_flow.rb:274:9:276:7 | call to each_value [element :a] : | +| hash_flow.rb:274:9:274:12 | hash [element :a] : | hash_flow.rb:274:29:274:33 | value : | +| hash_flow.rb:274:9:276:7 | call to each_value [element :a] : | hash_flow.rb:277:10:277:10 | x [element :a] : | +| hash_flow.rb:274:29:274:33 | value : | hash_flow.rb:275:14:275:18 | value | +| hash_flow.rb:277:10:277:10 | x [element :a] : | hash_flow.rb:277:10:277:14 | ...[...] | +| hash_flow.rb:287:15:287:25 | call to taint : | hash_flow.rb:290:9:290:12 | hash [element :c] : | +| hash_flow.rb:290:9:290:12 | hash [element :c] : | hash_flow.rb:290:9:290:28 | call to except [element :c] : | +| hash_flow.rb:290:9:290:28 | call to except [element :c] : | hash_flow.rb:293:10:293:10 | x [element :c] : | +| hash_flow.rb:293:10:293:10 | x [element :c] : | hash_flow.rb:293:10:293:14 | ...[...] | +| hash_flow.rb:301:15:301:25 | call to taint : | hash_flow.rb:305:9:305:12 | hash [element :a] : | +| hash_flow.rb:301:15:301:25 | call to taint : | hash_flow.rb:309:9:309:12 | hash [element :a] : | +| hash_flow.rb:301:15:301:25 | call to taint : | hash_flow.rb:311:9:311:12 | hash [element :a] : | +| hash_flow.rb:301:15:301:25 | call to taint : | hash_flow.rb:315:9:315:12 | hash [element :a] : | +| hash_flow.rb:303:15:303:25 | call to taint : | hash_flow.rb:305:9:305:12 | hash [element :c] : | +| hash_flow.rb:303:15:303:25 | call to taint : | hash_flow.rb:315:9:315:12 | hash [element :c] : | +| hash_flow.rb:305:9:305:12 | hash [element :a] : | hash_flow.rb:305:9:307:7 | call to fetch : | +| hash_flow.rb:305:9:305:12 | hash [element :c] : | hash_flow.rb:305:9:307:7 | call to fetch : | +| hash_flow.rb:305:9:307:7 | call to fetch : | hash_flow.rb:308:10:308:10 | b | +| hash_flow.rb:305:20:305:30 | call to taint : | hash_flow.rb:305:37:305:37 | x : | +| hash_flow.rb:305:37:305:37 | x : | hash_flow.rb:306:14:306:14 | x | +| hash_flow.rb:309:9:309:12 | hash [element :a] : | hash_flow.rb:309:9:309:22 | call to fetch : | +| hash_flow.rb:309:9:309:22 | call to fetch : | hash_flow.rb:310:10:310:10 | b | +| hash_flow.rb:311:9:311:12 | hash [element :a] : | hash_flow.rb:311:9:311:35 | call to fetch : | +| hash_flow.rb:311:9:311:35 | call to fetch : | hash_flow.rb:312:10:312:10 | b | +| hash_flow.rb:311:24:311:34 | call to taint : | hash_flow.rb:311:9:311:35 | call to fetch : | +| hash_flow.rb:313:9:313:35 | call to fetch : | hash_flow.rb:314:10:314:10 | b | +| hash_flow.rb:313:24:313:34 | call to taint : | hash_flow.rb:313:9:313:35 | call to fetch : | +| hash_flow.rb:315:9:315:12 | hash [element :a] : | hash_flow.rb:315:9:315:34 | call to fetch : | +| hash_flow.rb:315:9:315:12 | hash [element :c] : | hash_flow.rb:315:9:315:34 | call to fetch : | +| hash_flow.rb:315:9:315:34 | call to fetch : | hash_flow.rb:316:10:316:10 | b | +| hash_flow.rb:315:23:315:33 | call to taint : | hash_flow.rb:315:9:315:34 | call to fetch : | +| hash_flow.rb:323:15:323:25 | call to taint : | hash_flow.rb:327:9:327:12 | hash [element :a] : | +| hash_flow.rb:323:15:323:25 | call to taint : | hash_flow.rb:332:9:332:12 | hash [element :a] : | +| hash_flow.rb:323:15:323:25 | call to taint : | hash_flow.rb:334:9:334:12 | hash [element :a] : | +| hash_flow.rb:325:15:325:25 | call to taint : | hash_flow.rb:327:9:327:12 | hash [element :c] : | +| hash_flow.rb:325:15:325:25 | call to taint : | hash_flow.rb:334:9:334:12 | hash [element :c] : | +| hash_flow.rb:327:9:327:12 | hash [element :a] : | hash_flow.rb:327:9:330:7 | call to fetch_values [element] : | +| hash_flow.rb:327:9:327:12 | hash [element :c] : | hash_flow.rb:327:9:330:7 | call to fetch_values [element] : | +| hash_flow.rb:327:9:330:7 | call to fetch_values [element] : | hash_flow.rb:331:10:331:10 | b [element] : | +| hash_flow.rb:327:27:327:37 | call to taint : | hash_flow.rb:327:44:327:44 | x : | +| hash_flow.rb:327:44:327:44 | x : | hash_flow.rb:328:14:328:14 | x | +| hash_flow.rb:329:9:329:19 | call to taint : | hash_flow.rb:327:9:330:7 | call to fetch_values [element] : | +| hash_flow.rb:331:10:331:10 | b [element] : | hash_flow.rb:331:10:331:13 | ...[...] | +| hash_flow.rb:332:9:332:12 | hash [element :a] : | hash_flow.rb:332:9:332:29 | call to fetch_values [element] : | +| hash_flow.rb:332:9:332:29 | call to fetch_values [element] : | hash_flow.rb:333:10:333:10 | b [element] : | +| hash_flow.rb:333:10:333:10 | b [element] : | hash_flow.rb:333:10:333:13 | ...[...] | +| hash_flow.rb:334:9:334:12 | hash [element :a] : | hash_flow.rb:334:9:334:31 | call to fetch_values [element] : | +| hash_flow.rb:334:9:334:12 | hash [element :c] : | hash_flow.rb:334:9:334:31 | call to fetch_values [element] : | +| hash_flow.rb:334:9:334:31 | call to fetch_values [element] : | hash_flow.rb:335:10:335:10 | b [element] : | +| hash_flow.rb:335:10:335:10 | b [element] : | hash_flow.rb:335:10:335:13 | ...[...] | +| hash_flow.rb:342:15:342:25 | call to taint : | hash_flow.rb:346:9:346:12 | hash [element :a] : | +| hash_flow.rb:344:15:344:25 | call to taint : | hash_flow.rb:346:9:346:12 | hash [element :c] : | +| hash_flow.rb:346:9:346:12 | hash [element :a] : | hash_flow.rb:346:9:350:7 | call to filter [element :a] : | +| hash_flow.rb:346:9:346:12 | hash [element :a] : | hash_flow.rb:346:30:346:34 | value : | +| hash_flow.rb:346:9:346:12 | hash [element :c] : | hash_flow.rb:346:30:346:34 | value : | +| hash_flow.rb:346:9:350:7 | call to filter [element :a] : | hash_flow.rb:351:11:351:11 | b [element :a] : | +| hash_flow.rb:346:30:346:34 | value : | hash_flow.rb:348:14:348:18 | value | +| hash_flow.rb:351:11:351:11 | b [element :a] : | hash_flow.rb:351:11:351:15 | ...[...] : | +| hash_flow.rb:351:11:351:15 | ...[...] : | hash_flow.rb:351:10:351:16 | ( ... ) | +| hash_flow.rb:358:15:358:25 | call to taint : | hash_flow.rb:362:5:362:8 | hash [element :a] : | +| hash_flow.rb:360:15:360:25 | call to taint : | hash_flow.rb:362:5:362:8 | hash [element :c] : | +| hash_flow.rb:362:5:362:8 | [post] hash [element :a] : | hash_flow.rb:367:11:367:14 | hash [element :a] : | +| hash_flow.rb:362:5:362:8 | hash [element :a] : | hash_flow.rb:362:5:362:8 | [post] hash [element :a] : | +| hash_flow.rb:362:5:362:8 | hash [element :a] : | hash_flow.rb:362:27:362:31 | value : | +| hash_flow.rb:362:5:362:8 | hash [element :c] : | hash_flow.rb:362:27:362:31 | value : | +| hash_flow.rb:362:27:362:31 | value : | hash_flow.rb:364:14:364:18 | value | +| hash_flow.rb:367:11:367:14 | hash [element :a] : | hash_flow.rb:367:11:367:18 | ...[...] : | +| hash_flow.rb:367:11:367:18 | ...[...] : | hash_flow.rb:367:10:367:19 | ( ... ) | +| hash_flow.rb:374:15:374:25 | call to taint : | hash_flow.rb:378:9:378:12 | hash [element :a] : | +| hash_flow.rb:376:15:376:25 | call to taint : | hash_flow.rb:378:9:378:12 | hash [element :c] : | +| hash_flow.rb:378:9:378:12 | hash [element :a] : | hash_flow.rb:378:9:378:20 | call to flatten [element] : | +| hash_flow.rb:378:9:378:12 | hash [element :c] : | hash_flow.rb:378:9:378:20 | call to flatten [element] : | +| hash_flow.rb:378:9:378:20 | call to flatten [element] : | hash_flow.rb:379:11:379:11 | b [element] : | +| hash_flow.rb:379:11:379:11 | b [element] : | hash_flow.rb:379:11:379:14 | ...[...] : | +| hash_flow.rb:379:11:379:14 | ...[...] : | hash_flow.rb:379:10:379:15 | ( ... ) | +| hash_flow.rb:386:15:386:25 | call to taint : | hash_flow.rb:390:9:390:12 | hash [element :a] : | +| hash_flow.rb:388:15:388:25 | call to taint : | hash_flow.rb:390:9:390:12 | hash [element :c] : | +| hash_flow.rb:390:9:390:12 | [post] hash [element :a] : | hash_flow.rb:395:11:395:14 | hash [element :a] : | +| hash_flow.rb:390:9:390:12 | hash [element :a] : | hash_flow.rb:390:9:390:12 | [post] hash [element :a] : | +| hash_flow.rb:390:9:390:12 | hash [element :a] : | hash_flow.rb:390:9:394:7 | call to keep_if [element :a] : | +| hash_flow.rb:390:9:390:12 | hash [element :a] : | hash_flow.rb:390:31:390:35 | value : | +| hash_flow.rb:390:9:390:12 | hash [element :c] : | hash_flow.rb:390:31:390:35 | value : | +| hash_flow.rb:390:9:394:7 | call to keep_if [element :a] : | hash_flow.rb:396:11:396:11 | b [element :a] : | +| hash_flow.rb:390:31:390:35 | value : | hash_flow.rb:392:14:392:18 | value | +| hash_flow.rb:395:11:395:14 | hash [element :a] : | hash_flow.rb:395:11:395:18 | ...[...] : | +| hash_flow.rb:395:11:395:18 | ...[...] : | hash_flow.rb:395:10:395:19 | ( ... ) | +| hash_flow.rb:396:11:396:11 | b [element :a] : | hash_flow.rb:396:11:396:15 | ...[...] : | +| hash_flow.rb:396:11:396:15 | ...[...] : | hash_flow.rb:396:10:396:16 | ( ... ) | +| hash_flow.rb:403:15:403:25 | call to taint : | hash_flow.rb:412:12:412:16 | hash1 [element :a] : | +| hash_flow.rb:405:15:405:25 | call to taint : | hash_flow.rb:412:12:412:16 | hash1 [element :c] : | +| hash_flow.rb:408:15:408:25 | call to taint : | hash_flow.rb:412:24:412:28 | hash2 [element :d] : | +| hash_flow.rb:410:15:410:25 | call to taint : | hash_flow.rb:412:24:412:28 | hash2 [element :f] : | +| hash_flow.rb:412:12:412:16 | hash1 [element :a] : | hash_flow.rb:412:12:416:7 | call to merge [element :a] : | +| hash_flow.rb:412:12:412:16 | hash1 [element :a] : | hash_flow.rb:412:40:412:48 | old_value : | +| hash_flow.rb:412:12:412:16 | hash1 [element :a] : | hash_flow.rb:412:51:412:59 | new_value : | +| hash_flow.rb:412:12:412:16 | hash1 [element :c] : | hash_flow.rb:412:12:416:7 | call to merge [element :c] : | +| hash_flow.rb:412:12:412:16 | hash1 [element :c] : | hash_flow.rb:412:40:412:48 | old_value : | +| hash_flow.rb:412:12:412:16 | hash1 [element :c] : | hash_flow.rb:412:51:412:59 | new_value : | +| hash_flow.rb:412:12:416:7 | call to merge [element :a] : | hash_flow.rb:417:11:417:14 | hash [element :a] : | +| hash_flow.rb:412:12:416:7 | call to merge [element :c] : | hash_flow.rb:419:11:419:14 | hash [element :c] : | +| hash_flow.rb:412:12:416:7 | call to merge [element :d] : | hash_flow.rb:420:11:420:14 | hash [element :d] : | +| hash_flow.rb:412:12:416:7 | call to merge [element :f] : | hash_flow.rb:422:11:422:14 | hash [element :f] : | +| hash_flow.rb:412:24:412:28 | hash2 [element :d] : | hash_flow.rb:412:12:416:7 | call to merge [element :d] : | +| hash_flow.rb:412:24:412:28 | hash2 [element :d] : | hash_flow.rb:412:40:412:48 | old_value : | +| hash_flow.rb:412:24:412:28 | hash2 [element :d] : | hash_flow.rb:412:51:412:59 | new_value : | +| hash_flow.rb:412:24:412:28 | hash2 [element :f] : | hash_flow.rb:412:12:416:7 | call to merge [element :f] : | +| hash_flow.rb:412:24:412:28 | hash2 [element :f] : | hash_flow.rb:412:40:412:48 | old_value : | +| hash_flow.rb:412:24:412:28 | hash2 [element :f] : | hash_flow.rb:412:51:412:59 | new_value : | +| hash_flow.rb:412:40:412:48 | old_value : | hash_flow.rb:414:14:414:22 | old_value | +| hash_flow.rb:412:51:412:59 | new_value : | hash_flow.rb:415:14:415:22 | new_value | +| hash_flow.rb:417:11:417:14 | hash [element :a] : | hash_flow.rb:417:11:417:18 | ...[...] : | +| hash_flow.rb:417:11:417:18 | ...[...] : | hash_flow.rb:417:10:417:19 | ( ... ) | +| hash_flow.rb:419:11:419:14 | hash [element :c] : | hash_flow.rb:419:11:419:18 | ...[...] : | +| hash_flow.rb:419:11:419:18 | ...[...] : | hash_flow.rb:419:10:419:19 | ( ... ) | +| hash_flow.rb:420:11:420:14 | hash [element :d] : | hash_flow.rb:420:11:420:18 | ...[...] : | +| hash_flow.rb:420:11:420:18 | ...[...] : | hash_flow.rb:420:10:420:19 | ( ... ) | +| hash_flow.rb:422:11:422:14 | hash [element :f] : | hash_flow.rb:422:11:422:18 | ...[...] : | +| hash_flow.rb:422:11:422:18 | ...[...] : | hash_flow.rb:422:10:422:19 | ( ... ) | +| hash_flow.rb:429:15:429:25 | call to taint : | hash_flow.rb:438:12:438:16 | hash1 [element :a] : | +| hash_flow.rb:431:15:431:25 | call to taint : | hash_flow.rb:438:12:438:16 | hash1 [element :c] : | +| hash_flow.rb:434:15:434:25 | call to taint : | hash_flow.rb:438:25:438:29 | hash2 [element :d] : | +| hash_flow.rb:436:15:436:25 | call to taint : | hash_flow.rb:438:25:438:29 | hash2 [element :f] : | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :a] : | hash_flow.rb:450:11:450:15 | hash1 [element :a] : | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :c] : | hash_flow.rb:452:11:452:15 | hash1 [element :c] : | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :d] : | hash_flow.rb:453:11:453:15 | hash1 [element :d] : | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :f] : | hash_flow.rb:455:11:455:15 | hash1 [element :f] : | +| hash_flow.rb:438:12:438:16 | hash1 [element :a] : | hash_flow.rb:438:12:438:16 | [post] hash1 [element :a] : | +| hash_flow.rb:438:12:438:16 | hash1 [element :a] : | hash_flow.rb:438:12:442:7 | call to merge! [element :a] : | +| hash_flow.rb:438:12:438:16 | hash1 [element :a] : | hash_flow.rb:438:41:438:49 | old_value : | +| hash_flow.rb:438:12:438:16 | hash1 [element :a] : | hash_flow.rb:438:52:438:60 | new_value : | +| hash_flow.rb:438:12:438:16 | hash1 [element :c] : | hash_flow.rb:438:12:438:16 | [post] hash1 [element :c] : | +| hash_flow.rb:438:12:438:16 | hash1 [element :c] : | hash_flow.rb:438:12:442:7 | call to merge! [element :c] : | +| hash_flow.rb:438:12:438:16 | hash1 [element :c] : | hash_flow.rb:438:41:438:49 | old_value : | +| hash_flow.rb:438:12:438:16 | hash1 [element :c] : | hash_flow.rb:438:52:438:60 | new_value : | +| hash_flow.rb:438:12:442:7 | call to merge! [element :a] : | hash_flow.rb:443:11:443:14 | hash [element :a] : | +| hash_flow.rb:438:12:442:7 | call to merge! [element :c] : | hash_flow.rb:445:11:445:14 | hash [element :c] : | +| hash_flow.rb:438:12:442:7 | call to merge! [element :d] : | hash_flow.rb:446:11:446:14 | hash [element :d] : | +| hash_flow.rb:438:12:442:7 | call to merge! [element :f] : | hash_flow.rb:448:11:448:14 | hash [element :f] : | +| hash_flow.rb:438:25:438:29 | hash2 [element :d] : | hash_flow.rb:438:12:438:16 | [post] hash1 [element :d] : | +| hash_flow.rb:438:25:438:29 | hash2 [element :d] : | hash_flow.rb:438:12:442:7 | call to merge! [element :d] : | +| hash_flow.rb:438:25:438:29 | hash2 [element :d] : | hash_flow.rb:438:41:438:49 | old_value : | +| hash_flow.rb:438:25:438:29 | hash2 [element :d] : | hash_flow.rb:438:52:438:60 | new_value : | +| hash_flow.rb:438:25:438:29 | hash2 [element :f] : | hash_flow.rb:438:12:438:16 | [post] hash1 [element :f] : | +| hash_flow.rb:438:25:438:29 | hash2 [element :f] : | hash_flow.rb:438:12:442:7 | call to merge! [element :f] : | +| hash_flow.rb:438:25:438:29 | hash2 [element :f] : | hash_flow.rb:438:41:438:49 | old_value : | +| hash_flow.rb:438:25:438:29 | hash2 [element :f] : | hash_flow.rb:438:52:438:60 | new_value : | +| hash_flow.rb:438:41:438:49 | old_value : | hash_flow.rb:440:14:440:22 | old_value | +| hash_flow.rb:438:52:438:60 | new_value : | hash_flow.rb:441:14:441:22 | new_value | +| hash_flow.rb:443:11:443:14 | hash [element :a] : | hash_flow.rb:443:11:443:18 | ...[...] : | +| hash_flow.rb:443:11:443:18 | ...[...] : | hash_flow.rb:443:10:443:19 | ( ... ) | +| hash_flow.rb:445:11:445:14 | hash [element :c] : | hash_flow.rb:445:11:445:18 | ...[...] : | +| hash_flow.rb:445:11:445:18 | ...[...] : | hash_flow.rb:445:10:445:19 | ( ... ) | +| hash_flow.rb:446:11:446:14 | hash [element :d] : | hash_flow.rb:446:11:446:18 | ...[...] : | +| hash_flow.rb:446:11:446:18 | ...[...] : | hash_flow.rb:446:10:446:19 | ( ... ) | +| hash_flow.rb:448:11:448:14 | hash [element :f] : | hash_flow.rb:448:11:448:18 | ...[...] : | +| hash_flow.rb:448:11:448:18 | ...[...] : | hash_flow.rb:448:10:448:19 | ( ... ) | +| hash_flow.rb:450:11:450:15 | hash1 [element :a] : | hash_flow.rb:450:11:450:19 | ...[...] : | +| hash_flow.rb:450:11:450:19 | ...[...] : | hash_flow.rb:450:10:450:20 | ( ... ) | +| hash_flow.rb:452:11:452:15 | hash1 [element :c] : | hash_flow.rb:452:11:452:19 | ...[...] : | +| hash_flow.rb:452:11:452:19 | ...[...] : | hash_flow.rb:452:10:452:20 | ( ... ) | +| hash_flow.rb:453:11:453:15 | hash1 [element :d] : | hash_flow.rb:453:11:453:19 | ...[...] : | +| hash_flow.rb:453:11:453:19 | ...[...] : | hash_flow.rb:453:10:453:20 | ( ... ) | +| hash_flow.rb:455:11:455:15 | hash1 [element :f] : | hash_flow.rb:455:11:455:19 | ...[...] : | +| hash_flow.rb:455:11:455:19 | ...[...] : | hash_flow.rb:455:10:455:20 | ( ... ) | +| hash_flow.rb:462:15:462:25 | call to taint : | hash_flow.rb:465:9:465:12 | hash [element :a] : | +| hash_flow.rb:465:9:465:12 | hash [element :a] : | hash_flow.rb:465:9:465:22 | call to rassoc [element 1] : | +| hash_flow.rb:465:9:465:22 | call to rassoc [element 1] : | hash_flow.rb:467:10:467:10 | b [element 1] : | +| hash_flow.rb:467:10:467:10 | b [element 1] : | hash_flow.rb:467:10:467:13 | ...[...] | +| hash_flow.rb:474:15:474:25 | call to taint : | hash_flow.rb:477:9:477:12 | hash [element :a] : | +| hash_flow.rb:477:9:477:12 | hash [element :a] : | hash_flow.rb:477:9:481:7 | call to reject [element :a] : | +| hash_flow.rb:477:9:477:12 | hash [element :a] : | hash_flow.rb:477:29:477:33 | value : | +| hash_flow.rb:477:9:481:7 | call to reject [element :a] : | hash_flow.rb:482:10:482:10 | b [element :a] : | +| hash_flow.rb:477:29:477:33 | value : | hash_flow.rb:479:14:479:18 | value | +| hash_flow.rb:482:10:482:10 | b [element :a] : | hash_flow.rb:482:10:482:14 | ...[...] | +| hash_flow.rb:489:15:489:25 | call to taint : | hash_flow.rb:492:9:492:12 | hash [element :a] : | +| hash_flow.rb:489:15:489:25 | call to taint : | hash_flow.rb:498:10:498:13 | hash [element :a] : | +| hash_flow.rb:492:9:492:12 | [post] hash [element :a] : | hash_flow.rb:498:10:498:13 | hash [element :a] : | +| hash_flow.rb:492:9:492:12 | hash [element :a] : | hash_flow.rb:492:9:492:12 | [post] hash [element :a] : | +| hash_flow.rb:492:9:492:12 | hash [element :a] : | hash_flow.rb:492:9:496:7 | call to reject! [element :a] : | +| hash_flow.rb:492:9:492:12 | hash [element :a] : | hash_flow.rb:492:30:492:34 | value : | +| hash_flow.rb:492:9:496:7 | call to reject! [element :a] : | hash_flow.rb:497:10:497:10 | b [element :a] : | +| hash_flow.rb:492:30:492:34 | value : | hash_flow.rb:494:14:494:18 | value | +| hash_flow.rb:497:10:497:10 | b [element :a] : | hash_flow.rb:497:10:497:14 | ...[...] | +| hash_flow.rb:498:10:498:13 | hash [element :a] : | hash_flow.rb:498:10:498:17 | ...[...] | +| hash_flow.rb:505:15:505:25 | call to taint : | hash_flow.rb:512:19:512:22 | hash [element :a] : | +| hash_flow.rb:507:15:507:25 | call to taint : | hash_flow.rb:512:19:512:22 | hash [element :c] : | +| hash_flow.rb:512:5:512:9 | [post] hash2 [element :a] : | hash_flow.rb:513:11:513:15 | hash2 [element :a] : | +| hash_flow.rb:512:5:512:9 | [post] hash2 [element :c] : | hash_flow.rb:515:11:515:15 | hash2 [element :c] : | +| hash_flow.rb:512:19:512:22 | hash [element :a] : | hash_flow.rb:512:5:512:9 | [post] hash2 [element :a] : | +| hash_flow.rb:512:19:512:22 | hash [element :c] : | hash_flow.rb:512:5:512:9 | [post] hash2 [element :c] : | +| hash_flow.rb:513:11:513:15 | hash2 [element :a] : | hash_flow.rb:513:11:513:19 | ...[...] : | +| hash_flow.rb:513:11:513:19 | ...[...] : | hash_flow.rb:513:10:513:20 | ( ... ) | +| hash_flow.rb:515:11:515:15 | hash2 [element :c] : | hash_flow.rb:515:11:515:19 | ...[...] : | +| hash_flow.rb:515:11:515:19 | ...[...] : | hash_flow.rb:515:10:515:20 | ( ... ) | +| hash_flow.rb:520:15:520:25 | call to taint : | hash_flow.rb:524:9:524:12 | hash [element :a] : | +| hash_flow.rb:522:15:522:25 | call to taint : | hash_flow.rb:524:9:524:12 | hash [element :c] : | +| hash_flow.rb:524:9:524:12 | hash [element :a] : | hash_flow.rb:524:9:528:7 | call to select [element :a] : | +| hash_flow.rb:524:9:524:12 | hash [element :a] : | hash_flow.rb:524:30:524:34 | value : | +| hash_flow.rb:524:9:524:12 | hash [element :c] : | hash_flow.rb:524:30:524:34 | value : | +| hash_flow.rb:524:9:528:7 | call to select [element :a] : | hash_flow.rb:529:11:529:11 | b [element :a] : | +| hash_flow.rb:524:30:524:34 | value : | hash_flow.rb:526:14:526:18 | value | +| hash_flow.rb:529:11:529:11 | b [element :a] : | hash_flow.rb:529:11:529:15 | ...[...] : | +| hash_flow.rb:529:11:529:15 | ...[...] : | hash_flow.rb:529:10:529:16 | ( ... ) | +| hash_flow.rb:536:15:536:25 | call to taint : | hash_flow.rb:540:5:540:8 | hash [element :a] : | +| hash_flow.rb:538:15:538:25 | call to taint : | hash_flow.rb:540:5:540:8 | hash [element :c] : | +| hash_flow.rb:540:5:540:8 | [post] hash [element :a] : | hash_flow.rb:545:11:545:14 | hash [element :a] : | +| hash_flow.rb:540:5:540:8 | hash [element :a] : | hash_flow.rb:540:5:540:8 | [post] hash [element :a] : | +| hash_flow.rb:540:5:540:8 | hash [element :a] : | hash_flow.rb:540:27:540:31 | value : | +| hash_flow.rb:540:5:540:8 | hash [element :c] : | hash_flow.rb:540:27:540:31 | value : | +| hash_flow.rb:540:27:540:31 | value : | hash_flow.rb:542:14:542:18 | value | +| hash_flow.rb:545:11:545:14 | hash [element :a] : | hash_flow.rb:545:11:545:18 | ...[...] : | +| hash_flow.rb:545:11:545:18 | ...[...] : | hash_flow.rb:545:10:545:19 | ( ... ) | +| hash_flow.rb:552:15:552:25 | call to taint : | hash_flow.rb:556:9:556:12 | hash [element :a] : | +| hash_flow.rb:554:15:554:25 | call to taint : | hash_flow.rb:556:9:556:12 | hash [element :c] : | +| hash_flow.rb:556:9:556:12 | [post] hash [element :a] : | hash_flow.rb:557:11:557:14 | hash [element :a] : | +| hash_flow.rb:556:9:556:12 | hash [element :a] : | hash_flow.rb:556:9:556:12 | [post] hash [element :a] : | +| hash_flow.rb:556:9:556:12 | hash [element :a] : | hash_flow.rb:556:9:556:18 | call to shift [element 1] : | +| hash_flow.rb:556:9:556:12 | hash [element :c] : | hash_flow.rb:556:9:556:18 | call to shift [element 1] : | +| hash_flow.rb:556:9:556:18 | call to shift [element 1] : | hash_flow.rb:559:11:559:11 | b [element 1] : | +| hash_flow.rb:557:11:557:14 | hash [element :a] : | hash_flow.rb:557:11:557:18 | ...[...] : | +| hash_flow.rb:557:11:557:18 | ...[...] : | hash_flow.rb:557:10:557:19 | ( ... ) | +| hash_flow.rb:559:11:559:11 | b [element 1] : | hash_flow.rb:559:11:559:14 | ...[...] : | +| hash_flow.rb:559:11:559:14 | ...[...] : | hash_flow.rb:559:10:559:15 | ( ... ) | +| hash_flow.rb:566:15:566:25 | call to taint : | hash_flow.rb:570:9:570:12 | hash [element :a] : | +| hash_flow.rb:566:15:566:25 | call to taint : | hash_flow.rb:575:9:575:12 | hash [element :a] : | +| hash_flow.rb:568:15:568:25 | call to taint : | hash_flow.rb:575:9:575:12 | hash [element :c] : | +| hash_flow.rb:570:9:570:12 | hash [element :a] : | hash_flow.rb:570:9:570:26 | call to slice [element :a] : | +| hash_flow.rb:570:9:570:26 | call to slice [element :a] : | hash_flow.rb:571:11:571:11 | b [element :a] : | +| hash_flow.rb:571:11:571:11 | b [element :a] : | hash_flow.rb:571:11:571:15 | ...[...] : | +| hash_flow.rb:571:11:571:15 | ...[...] : | hash_flow.rb:571:10:571:16 | ( ... ) | +| hash_flow.rb:575:9:575:12 | hash [element :a] : | hash_flow.rb:575:9:575:25 | call to slice [element :a] : | +| hash_flow.rb:575:9:575:12 | hash [element :c] : | hash_flow.rb:575:9:575:25 | call to slice [element :c] : | +| hash_flow.rb:575:9:575:25 | call to slice [element :a] : | hash_flow.rb:576:11:576:11 | c [element :a] : | +| hash_flow.rb:575:9:575:25 | call to slice [element :c] : | hash_flow.rb:578:11:578:11 | c [element :c] : | +| hash_flow.rb:576:11:576:11 | c [element :a] : | hash_flow.rb:576:11:576:15 | ...[...] : | +| hash_flow.rb:576:11:576:15 | ...[...] : | hash_flow.rb:576:10:576:16 | ( ... ) | +| hash_flow.rb:578:11:578:11 | c [element :c] : | hash_flow.rb:578:11:578:15 | ...[...] : | +| hash_flow.rb:578:11:578:15 | ...[...] : | hash_flow.rb:578:10:578:16 | ( ... ) | +| hash_flow.rb:585:15:585:25 | call to taint : | hash_flow.rb:589:9:589:12 | hash [element :a] : | +| hash_flow.rb:587:15:587:25 | call to taint : | hash_flow.rb:589:9:589:12 | hash [element :c] : | +| hash_flow.rb:589:9:589:12 | hash [element :a] : | hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] : | +| hash_flow.rb:589:9:589:12 | hash [element :c] : | hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] : | +| hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] : | hash_flow.rb:591:11:591:11 | a [element, element 1] : | +| hash_flow.rb:591:11:591:11 | a [element, element 1] : | hash_flow.rb:591:11:591:14 | ...[...] [element 1] : | +| hash_flow.rb:591:11:591:14 | ...[...] [element 1] : | hash_flow.rb:591:11:591:17 | ...[...] : | +| hash_flow.rb:591:11:591:17 | ...[...] : | hash_flow.rb:591:10:591:18 | ( ... ) | +| hash_flow.rb:598:15:598:25 | call to taint : | hash_flow.rb:602:9:602:12 | hash [element :a] : | +| hash_flow.rb:598:15:598:25 | call to taint : | hash_flow.rb:607:9:607:12 | hash [element :a] : | +| hash_flow.rb:600:15:600:25 | call to taint : | hash_flow.rb:602:9:602:12 | hash [element :c] : | +| hash_flow.rb:600:15:600:25 | call to taint : | hash_flow.rb:607:9:607:12 | hash [element :c] : | +| hash_flow.rb:602:9:602:12 | hash [element :a] : | hash_flow.rb:602:9:602:17 | call to to_h [element :a] : | +| hash_flow.rb:602:9:602:12 | hash [element :c] : | hash_flow.rb:602:9:602:17 | call to to_h [element :c] : | +| hash_flow.rb:602:9:602:17 | call to to_h [element :a] : | hash_flow.rb:603:11:603:11 | a [element :a] : | +| hash_flow.rb:602:9:602:17 | call to to_h [element :c] : | hash_flow.rb:605:11:605:11 | a [element :c] : | +| hash_flow.rb:603:11:603:11 | a [element :a] : | hash_flow.rb:603:11:603:15 | ...[...] : | +| hash_flow.rb:603:11:603:15 | ...[...] : | hash_flow.rb:603:10:603:16 | ( ... ) | +| hash_flow.rb:605:11:605:11 | a [element :c] : | hash_flow.rb:605:11:605:15 | ...[...] : | +| hash_flow.rb:605:11:605:15 | ...[...] : | hash_flow.rb:605:10:605:16 | ( ... ) | +| hash_flow.rb:607:9:607:12 | hash [element :a] : | hash_flow.rb:607:28:607:32 | value : | +| hash_flow.rb:607:9:607:12 | hash [element :c] : | hash_flow.rb:607:28:607:32 | value : | +| hash_flow.rb:607:9:611:7 | call to to_h [element] : | hash_flow.rb:612:11:612:11 | b [element] : | +| hash_flow.rb:607:28:607:32 | value : | hash_flow.rb:609:14:609:18 | value | +| hash_flow.rb:610:14:610:24 | call to taint : | hash_flow.rb:607:9:611:7 | call to to_h [element] : | +| hash_flow.rb:612:11:612:11 | b [element] : | hash_flow.rb:612:11:612:15 | ...[...] : | +| hash_flow.rb:612:11:612:15 | ...[...] : | hash_flow.rb:612:10:612:16 | ( ... ) | +| hash_flow.rb:619:15:619:25 | call to taint : | hash_flow.rb:623:9:623:12 | hash [element :a] : | +| hash_flow.rb:621:15:621:25 | call to taint : | hash_flow.rb:623:9:623:12 | hash [element :c] : | +| hash_flow.rb:623:9:623:12 | hash [element :a] : | hash_flow.rb:623:9:623:45 | call to transform_keys [element] : | +| hash_flow.rb:623:9:623:12 | hash [element :c] : | hash_flow.rb:623:9:623:45 | call to transform_keys [element] : | +| hash_flow.rb:623:9:623:45 | call to transform_keys [element] : | hash_flow.rb:624:11:624:11 | a [element] : | +| hash_flow.rb:623:9:623:45 | call to transform_keys [element] : | hash_flow.rb:625:11:625:11 | a [element] : | +| hash_flow.rb:623:9:623:45 | call to transform_keys [element] : | hash_flow.rb:626:11:626:11 | a [element] : | +| hash_flow.rb:624:11:624:11 | a [element] : | hash_flow.rb:624:11:624:16 | ...[...] : | +| hash_flow.rb:624:11:624:16 | ...[...] : | hash_flow.rb:624:10:624:17 | ( ... ) | +| hash_flow.rb:625:11:625:11 | a [element] : | hash_flow.rb:625:11:625:16 | ...[...] : | +| hash_flow.rb:625:11:625:16 | ...[...] : | hash_flow.rb:625:10:625:17 | ( ... ) | +| hash_flow.rb:626:11:626:11 | a [element] : | hash_flow.rb:626:11:626:16 | ...[...] : | +| hash_flow.rb:626:11:626:16 | ...[...] : | hash_flow.rb:626:10:626:17 | ( ... ) | +| hash_flow.rb:633:15:633:25 | call to taint : | hash_flow.rb:637:5:637:8 | hash [element :a] : | +| hash_flow.rb:635:15:635:25 | call to taint : | hash_flow.rb:637:5:637:8 | hash [element :c] : | +| hash_flow.rb:637:5:637:8 | [post] hash [element] : | hash_flow.rb:638:11:638:14 | hash [element] : | +| hash_flow.rb:637:5:637:8 | [post] hash [element] : | hash_flow.rb:639:11:639:14 | hash [element] : | +| hash_flow.rb:637:5:637:8 | [post] hash [element] : | hash_flow.rb:640:11:640:14 | hash [element] : | +| hash_flow.rb:637:5:637:8 | hash [element :a] : | hash_flow.rb:637:5:637:8 | [post] hash [element] : | +| hash_flow.rb:637:5:637:8 | hash [element :c] : | hash_flow.rb:637:5:637:8 | [post] hash [element] : | +| hash_flow.rb:638:11:638:14 | hash [element] : | hash_flow.rb:638:11:638:19 | ...[...] : | +| hash_flow.rb:638:11:638:19 | ...[...] : | hash_flow.rb:638:10:638:20 | ( ... ) | +| hash_flow.rb:639:11:639:14 | hash [element] : | hash_flow.rb:639:11:639:19 | ...[...] : | +| hash_flow.rb:639:11:639:19 | ...[...] : | hash_flow.rb:639:10:639:20 | ( ... ) | +| hash_flow.rb:640:11:640:14 | hash [element] : | hash_flow.rb:640:11:640:19 | ...[...] : | +| hash_flow.rb:640:11:640:19 | ...[...] : | hash_flow.rb:640:10:640:20 | ( ... ) | +| hash_flow.rb:647:15:647:25 | call to taint : | hash_flow.rb:651:9:651:12 | hash [element :a] : | +| hash_flow.rb:647:15:647:25 | call to taint : | hash_flow.rb:655:11:655:14 | hash [element :a] : | +| hash_flow.rb:649:15:649:25 | call to taint : | hash_flow.rb:651:9:651:12 | hash [element :c] : | +| hash_flow.rb:651:9:651:12 | hash [element :a] : | hash_flow.rb:651:35:651:39 | value : | +| hash_flow.rb:651:9:651:12 | hash [element :c] : | hash_flow.rb:651:35:651:39 | value : | +| hash_flow.rb:651:9:654:7 | call to transform_values [element] : | hash_flow.rb:656:11:656:11 | b [element] : | +| hash_flow.rb:651:35:651:39 | value : | hash_flow.rb:652:14:652:18 | value | +| hash_flow.rb:653:9:653:19 | call to taint : | hash_flow.rb:651:9:654:7 | call to transform_values [element] : | +| hash_flow.rb:655:11:655:14 | hash [element :a] : | hash_flow.rb:655:11:655:18 | ...[...] : | +| hash_flow.rb:655:11:655:18 | ...[...] : | hash_flow.rb:655:10:655:19 | ( ... ) | +| hash_flow.rb:656:11:656:11 | b [element] : | hash_flow.rb:656:11:656:15 | ...[...] : | +| hash_flow.rb:656:11:656:15 | ...[...] : | hash_flow.rb:656:10:656:16 | ( ... ) | +| hash_flow.rb:663:15:663:25 | call to taint : | hash_flow.rb:667:5:667:8 | hash [element :a] : | +| hash_flow.rb:665:15:665:25 | call to taint : | hash_flow.rb:667:5:667:8 | hash [element :c] : | +| hash_flow.rb:667:5:667:8 | [post] hash [element] : | hash_flow.rb:671:11:671:14 | hash [element] : | +| hash_flow.rb:667:5:667:8 | hash [element :a] : | hash_flow.rb:667:32:667:36 | value : | +| hash_flow.rb:667:5:667:8 | hash [element :c] : | hash_flow.rb:667:32:667:36 | value : | +| hash_flow.rb:667:32:667:36 | value : | hash_flow.rb:668:14:668:18 | value | +| hash_flow.rb:669:9:669:19 | call to taint : | hash_flow.rb:667:5:667:8 | [post] hash [element] : | +| hash_flow.rb:671:11:671:14 | hash [element] : | hash_flow.rb:671:11:671:18 | ...[...] : | +| hash_flow.rb:671:11:671:18 | ...[...] : | hash_flow.rb:671:10:671:19 | ( ... ) | +| hash_flow.rb:678:15:678:25 | call to taint : | hash_flow.rb:687:12:687:16 | hash1 [element :a] : | +| hash_flow.rb:680:15:680:25 | call to taint : | hash_flow.rb:687:12:687:16 | hash1 [element :c] : | +| hash_flow.rb:683:15:683:25 | call to taint : | hash_flow.rb:687:25:687:29 | hash2 [element :d] : | +| hash_flow.rb:685:15:685:25 | call to taint : | hash_flow.rb:687:25:687:29 | hash2 [element :f] : | +| hash_flow.rb:687:12:687:16 | [post] hash1 [element :a] : | hash_flow.rb:699:11:699:15 | hash1 [element :a] : | +| hash_flow.rb:687:12:687:16 | [post] hash1 [element :c] : | hash_flow.rb:701:11:701:15 | hash1 [element :c] : | +| hash_flow.rb:687:12:687:16 | [post] hash1 [element :d] : | hash_flow.rb:702:11:702:15 | hash1 [element :d] : | +| hash_flow.rb:687:12:687:16 | [post] hash1 [element :f] : | hash_flow.rb:704:11:704:15 | hash1 [element :f] : | +| hash_flow.rb:687:12:687:16 | hash1 [element :a] : | hash_flow.rb:687:12:687:16 | [post] hash1 [element :a] : | +| hash_flow.rb:687:12:687:16 | hash1 [element :a] : | hash_flow.rb:687:12:691:7 | call to update [element :a] : | +| hash_flow.rb:687:12:687:16 | hash1 [element :a] : | hash_flow.rb:687:41:687:49 | old_value : | +| hash_flow.rb:687:12:687:16 | hash1 [element :a] : | hash_flow.rb:687:52:687:60 | new_value : | +| hash_flow.rb:687:12:687:16 | hash1 [element :c] : | hash_flow.rb:687:12:687:16 | [post] hash1 [element :c] : | +| hash_flow.rb:687:12:687:16 | hash1 [element :c] : | hash_flow.rb:687:12:691:7 | call to update [element :c] : | +| hash_flow.rb:687:12:687:16 | hash1 [element :c] : | hash_flow.rb:687:41:687:49 | old_value : | +| hash_flow.rb:687:12:687:16 | hash1 [element :c] : | hash_flow.rb:687:52:687:60 | new_value : | +| hash_flow.rb:687:12:691:7 | call to update [element :a] : | hash_flow.rb:692:11:692:14 | hash [element :a] : | +| hash_flow.rb:687:12:691:7 | call to update [element :c] : | hash_flow.rb:694:11:694:14 | hash [element :c] : | +| hash_flow.rb:687:12:691:7 | call to update [element :d] : | hash_flow.rb:695:11:695:14 | hash [element :d] : | +| hash_flow.rb:687:12:691:7 | call to update [element :f] : | hash_flow.rb:697:11:697:14 | hash [element :f] : | +| hash_flow.rb:687:25:687:29 | hash2 [element :d] : | hash_flow.rb:687:12:687:16 | [post] hash1 [element :d] : | +| hash_flow.rb:687:25:687:29 | hash2 [element :d] : | hash_flow.rb:687:12:691:7 | call to update [element :d] : | +| hash_flow.rb:687:25:687:29 | hash2 [element :d] : | hash_flow.rb:687:41:687:49 | old_value : | +| hash_flow.rb:687:25:687:29 | hash2 [element :d] : | hash_flow.rb:687:52:687:60 | new_value : | +| hash_flow.rb:687:25:687:29 | hash2 [element :f] : | hash_flow.rb:687:12:687:16 | [post] hash1 [element :f] : | +| hash_flow.rb:687:25:687:29 | hash2 [element :f] : | hash_flow.rb:687:12:691:7 | call to update [element :f] : | +| hash_flow.rb:687:25:687:29 | hash2 [element :f] : | hash_flow.rb:687:41:687:49 | old_value : | +| hash_flow.rb:687:25:687:29 | hash2 [element :f] : | hash_flow.rb:687:52:687:60 | new_value : | +| hash_flow.rb:687:41:687:49 | old_value : | hash_flow.rb:689:14:689:22 | old_value | +| hash_flow.rb:687:52:687:60 | new_value : | hash_flow.rb:690:14:690:22 | new_value | +| hash_flow.rb:692:11:692:14 | hash [element :a] : | hash_flow.rb:692:11:692:18 | ...[...] : | +| hash_flow.rb:692:11:692:18 | ...[...] : | hash_flow.rb:692:10:692:19 | ( ... ) | +| hash_flow.rb:694:11:694:14 | hash [element :c] : | hash_flow.rb:694:11:694:18 | ...[...] : | +| hash_flow.rb:694:11:694:18 | ...[...] : | hash_flow.rb:694:10:694:19 | ( ... ) | +| hash_flow.rb:695:11:695:14 | hash [element :d] : | hash_flow.rb:695:11:695:18 | ...[...] : | +| hash_flow.rb:695:11:695:18 | ...[...] : | hash_flow.rb:695:10:695:19 | ( ... ) | +| hash_flow.rb:697:11:697:14 | hash [element :f] : | hash_flow.rb:697:11:697:18 | ...[...] : | +| hash_flow.rb:697:11:697:18 | ...[...] : | hash_flow.rb:697:10:697:19 | ( ... ) | +| hash_flow.rb:699:11:699:15 | hash1 [element :a] : | hash_flow.rb:699:11:699:19 | ...[...] : | +| hash_flow.rb:699:11:699:19 | ...[...] : | hash_flow.rb:699:10:699:20 | ( ... ) | +| hash_flow.rb:701:11:701:15 | hash1 [element :c] : | hash_flow.rb:701:11:701:19 | ...[...] : | +| hash_flow.rb:701:11:701:19 | ...[...] : | hash_flow.rb:701:10:701:20 | ( ... ) | +| hash_flow.rb:702:11:702:15 | hash1 [element :d] : | hash_flow.rb:702:11:702:19 | ...[...] : | +| hash_flow.rb:702:11:702:19 | ...[...] : | hash_flow.rb:702:10:702:20 | ( ... ) | +| hash_flow.rb:704:11:704:15 | hash1 [element :f] : | hash_flow.rb:704:11:704:19 | ...[...] : | +| hash_flow.rb:704:11:704:19 | ...[...] : | hash_flow.rb:704:10:704:20 | ( ... ) | +| hash_flow.rb:711:15:711:25 | call to taint : | hash_flow.rb:715:9:715:12 | hash [element :a] : | +| hash_flow.rb:713:15:713:25 | call to taint : | hash_flow.rb:715:9:715:12 | hash [element :c] : | +| hash_flow.rb:715:9:715:12 | hash [element :a] : | hash_flow.rb:715:9:715:19 | call to values [element] : | +| hash_flow.rb:715:9:715:12 | hash [element :c] : | hash_flow.rb:715:9:715:19 | call to values [element] : | +| hash_flow.rb:715:9:715:19 | call to values [element] : | hash_flow.rb:716:11:716:11 | a [element] : | +| hash_flow.rb:716:11:716:11 | a [element] : | hash_flow.rb:716:11:716:14 | ...[...] : | +| hash_flow.rb:716:11:716:14 | ...[...] : | hash_flow.rb:716:10:716:15 | ( ... ) | +| hash_flow.rb:723:15:723:25 | call to taint : | hash_flow.rb:727:9:727:12 | hash [element :a] : | +| hash_flow.rb:723:15:723:25 | call to taint : | hash_flow.rb:729:9:729:12 | hash [element :a] : | +| hash_flow.rb:725:15:725:25 | call to taint : | hash_flow.rb:729:9:729:12 | hash [element :c] : | +| hash_flow.rb:727:9:727:12 | hash [element :a] : | hash_flow.rb:727:9:727:26 | call to values_at [element 0] : | +| hash_flow.rb:727:9:727:26 | call to values_at [element 0] : | hash_flow.rb:728:10:728:10 | b [element 0] : | +| hash_flow.rb:728:10:728:10 | b [element 0] : | hash_flow.rb:728:10:728:13 | ...[...] | +| hash_flow.rb:729:9:729:12 | hash [element :a] : | hash_flow.rb:729:9:729:31 | call to fetch_values [element] : | +| hash_flow.rb:729:9:729:12 | hash [element :c] : | hash_flow.rb:729:9:729:31 | call to fetch_values [element] : | +| hash_flow.rb:729:9:729:31 | call to fetch_values [element] : | hash_flow.rb:730:10:730:10 | b [element] : | +| hash_flow.rb:730:10:730:10 | b [element] : | hash_flow.rb:730:10:730:13 | ...[...] | +| hash_flow.rb:737:15:737:25 | call to taint : | hash_flow.rb:746:16:746:20 | hash1 [element :a] : | +| hash_flow.rb:739:15:739:25 | call to taint : | hash_flow.rb:746:16:746:20 | hash1 [element :c] : | +| hash_flow.rb:742:15:742:25 | call to taint : | hash_flow.rb:746:44:746:48 | hash2 [element :d] : | +| hash_flow.rb:744:15:744:25 | call to taint : | hash_flow.rb:746:44:746:48 | hash2 [element :f] : | +| hash_flow.rb:746:14:746:20 | ** ... [element :a] : | hash_flow.rb:747:10:747:13 | hash [element :a] : | +| hash_flow.rb:746:14:746:20 | ** ... [element :c] : | hash_flow.rb:749:10:749:13 | hash [element :c] : | +| hash_flow.rb:746:16:746:20 | hash1 [element :a] : | hash_flow.rb:746:14:746:20 | ** ... [element :a] : | +| hash_flow.rb:746:16:746:20 | hash1 [element :c] : | hash_flow.rb:746:14:746:20 | ** ... [element :c] : | +| hash_flow.rb:746:29:746:39 | call to taint : | hash_flow.rb:753:10:753:13 | hash [element :g] : | +| hash_flow.rb:746:42:746:48 | ** ... [element :d] : | hash_flow.rb:750:10:750:13 | hash [element :d] : | +| hash_flow.rb:746:42:746:48 | ** ... [element :f] : | hash_flow.rb:752:10:752:13 | hash [element :f] : | +| hash_flow.rb:746:44:746:48 | hash2 [element :d] : | hash_flow.rb:746:42:746:48 | ** ... [element :d] : | +| hash_flow.rb:746:44:746:48 | hash2 [element :f] : | hash_flow.rb:746:42:746:48 | ** ... [element :f] : | +| hash_flow.rb:747:10:747:13 | hash [element :a] : | hash_flow.rb:747:10:747:17 | ...[...] | +| hash_flow.rb:749:10:749:13 | hash [element :c] : | hash_flow.rb:749:10:749:17 | ...[...] | +| hash_flow.rb:750:10:750:13 | hash [element :d] : | hash_flow.rb:750:10:750:17 | ...[...] | +| hash_flow.rb:752:10:752:13 | hash [element :f] : | hash_flow.rb:752:10:752:17 | ...[...] | +| hash_flow.rb:753:10:753:13 | hash [element :g] : | hash_flow.rb:753:10:753:17 | ...[...] | nodes | hash_flow.rb:11:15:11:24 | call to taint : | semmle.label | call to taint : | | hash_flow.rb:13:12:13:21 | call to taint : | semmle.label | call to taint : | @@ -590,515 +598,525 @@ 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:76:13:76:42 | call to [] [element :a] : | semmle.label | call to [] [element :a] : | +| hash_flow.rb:72:13:72:45 | ...[...] [element a] : | semmle.label | ...[...] [element a] : | +| hash_flow.rb:72:18:72:34 | Pair [pair a] : | semmle.label | Pair [pair 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:19 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:76:13:76:47 | ...[...] [element a] : | semmle.label | ...[...] [element a] : | +| hash_flow.rb:76:19:76:35 | Pair [pair a] : | semmle.label | Pair [pair a] : | | hash_flow.rb:76:26:76:35 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:77:10:77:14 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | -| hash_flow.rb:77:10:77:18 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:85:15:85:24 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:88:13:88:34 | call to try_convert [element :a] : | semmle.label | call to try_convert [element :a] : | -| hash_flow.rb:88:30:88:33 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:89:10:89:14 | hash2 [element :a] : | semmle.label | hash2 [element :a] : | -| hash_flow.rb:89:10:89:18 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:97:21:97:30 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:98:10:98:10 | b | semmle.label | b | -| hash_flow.rb:105:9:105:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | -| hash_flow.rb:105:9:105:34 | call to store : | semmle.label | call to store : | -| hash_flow.rb:105:24:105:33 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:106:10:106:13 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:106:10:106:17 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:107:10:107:10 | b | semmle.label | b | -| hash_flow.rb:110:9:110:12 | [post] hash [element] : | semmle.label | [post] hash [element] : | -| hash_flow.rb:110:9:110:33 | call to store : | semmle.label | call to store : | -| hash_flow.rb:110:23:110:32 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:111:10:111:13 | hash [element] : | semmle.label | hash [element] : | -| hash_flow.rb:111:10:111:17 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:112:10:112:13 | hash [element] : | semmle.label | hash [element] : | -| hash_flow.rb:112:10:112:17 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:113:10:113:10 | c | semmle.label | c | -| hash_flow.rb:120:15:120:24 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:123:5:123:8 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:123:18:123:29 | key_or_value : | semmle.label | key_or_value : | -| hash_flow.rb:124:14:124:25 | key_or_value | semmle.label | key_or_value | -| hash_flow.rb:126:5:126:8 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:126:22:126:26 | value : | semmle.label | value : | -| hash_flow.rb:128:14:128:18 | value | semmle.label | value | -| hash_flow.rb:136:15:136:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:139:9:139:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:139:9:139:22 | call to assoc [element 1] : | semmle.label | call to assoc [element 1] : | -| hash_flow.rb:141:10:141:10 | b [element 1] : | semmle.label | b [element 1] : | -| hash_flow.rb:141:10:141:13 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:142:10:142:10 | b [element 1] : | semmle.label | b [element 1] : | -| hash_flow.rb:142:10:142:13 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:143:9:143:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:143:9:143:21 | call to assoc [element 1] : | semmle.label | call to assoc [element 1] : | -| hash_flow.rb:144:10:144:10 | c [element 1] : | semmle.label | c [element 1] : | -| hash_flow.rb:144:10:144:13 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:162:15:162:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:165:9:165:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:165:9:165:20 | call to compact [element :a] : | semmle.label | call to compact [element :a] : | -| hash_flow.rb:166:10:166:10 | a [element :a] : | semmle.label | a [element :a] : | -| hash_flow.rb:166:10:166:14 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:174:15:174:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:177:9:177:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:177:9:177:23 | call to delete : | semmle.label | call to delete : | -| hash_flow.rb:178:10:178:10 | a | semmle.label | a | -| hash_flow.rb:186:15:186:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:189:9:189:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | -| hash_flow.rb:189:9:189:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:189:9:192:7 | call to delete_if [element :a] : | semmle.label | call to delete_if [element :a] : | -| hash_flow.rb:189:33:189:37 | value : | semmle.label | value : | -| hash_flow.rb:191:14:191:18 | value | semmle.label | value | -| hash_flow.rb:193:10:193:10 | a [element :a] : | semmle.label | a [element :a] : | -| hash_flow.rb:193:10:193:14 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:194:10:194:13 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:194:10:194:17 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:202:15:202:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:205:19:205:29 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:209:10:209:13 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:209:10:209:21 | call to dig | semmle.label | call to dig | -| hash_flow.rb:211:10:211:13 | hash [element :c, element :d] : | semmle.label | hash [element :c, element :d] : | -| hash_flow.rb:211:10:211:24 | call to dig | semmle.label | call to dig | -| hash_flow.rb:219:15:219:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:222:9:222:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:222:9:225:7 | call to each [element :a] : | semmle.label | call to each [element :a] : | -| hash_flow.rb:222:28:222:32 | value : | semmle.label | value : | -| hash_flow.rb:224:14:224:18 | value | semmle.label | value | -| hash_flow.rb:226:10:226:10 | x [element :a] : | semmle.label | x [element :a] : | -| hash_flow.rb:226:10:226:14 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:234:15:234:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:237:9:237:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:237:9:239:7 | call to each_key [element :a] : | semmle.label | call to each_key [element :a] : | -| hash_flow.rb:240:10:240:10 | x [element :a] : | semmle.label | x [element :a] : | -| hash_flow.rb:240:10:240:14 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:248:15:248:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:251:9:251:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:251:9:254:7 | call to each_pair [element :a] : | semmle.label | call to each_pair [element :a] : | -| hash_flow.rb:251:33:251:37 | value : | semmle.label | value : | -| hash_flow.rb:253:14:253:18 | value | semmle.label | value | -| hash_flow.rb:255:10:255:10 | x [element :a] : | semmle.label | x [element :a] : | -| hash_flow.rb:255:10:255:14 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:263:15:263:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:266:9:266:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:266:9:268:7 | call to each_value [element :a] : | semmle.label | call to each_value [element :a] : | -| hash_flow.rb:266:29:266:33 | value : | semmle.label | value : | -| hash_flow.rb:267:14:267:18 | value | semmle.label | value | -| hash_flow.rb:269:10:269:10 | x [element :a] : | semmle.label | x [element :a] : | -| hash_flow.rb:269:10:269:14 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:279:15:279:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:282:9:282:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:282:9:282:28 | call to except [element :c] : | semmle.label | call to except [element :c] : | -| hash_flow.rb:285:10:285:10 | x [element :c] : | semmle.label | x [element :c] : | -| hash_flow.rb:285:10:285:14 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:293:15:293:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:295:15:295:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:297:9:297:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:297:9:297:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:297:9:299:7 | call to fetch : | semmle.label | call to fetch : | -| hash_flow.rb:297:20:297:30 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:297:37:297:37 | x : | semmle.label | x : | -| hash_flow.rb:298:14:298:14 | x | semmle.label | x | -| hash_flow.rb:300:10:300:10 | b | semmle.label | b | -| hash_flow.rb:301:9:301:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:301:9:301:22 | call to fetch : | semmle.label | call to fetch : | -| hash_flow.rb:302:10:302:10 | b | semmle.label | b | -| hash_flow.rb:303:9:303:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:303:9:303:35 | call to fetch : | semmle.label | call to fetch : | -| hash_flow.rb:303:24:303:34 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:304:10:304:10 | b | semmle.label | b | -| hash_flow.rb:305:9:305:35 | call to fetch : | semmle.label | call to fetch : | -| hash_flow.rb:305:24:305:34 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:306:10:306:10 | b | semmle.label | b | -| hash_flow.rb:307:9:307:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:307:9:307:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:307:9:307:34 | call to fetch : | semmle.label | call to fetch : | -| hash_flow.rb:307:23:307:33 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:77:10:77:14 | hash6 [element a] : | semmle.label | hash6 [element a] : | +| hash_flow.rb:77:10:77:19 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:84:13:84:42 | call to [] [element :a] : | semmle.label | call to [] [element :a] : | +| hash_flow.rb:84:26:84:35 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:85:10:85:14 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | +| hash_flow.rb:85:10:85:18 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:93:15:93:24 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:96:13:96:34 | call to try_convert [element :a] : | semmle.label | call to try_convert [element :a] : | +| hash_flow.rb:96:30:96:33 | hash [element :a] : | semmle.label | hash [element :a] : | +| 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: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:9:113:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | +| hash_flow.rb:113:9:113:34 | call to store : | semmle.label | call to store : | +| hash_flow.rb:113:24:113:33 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:114:10:114:13 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:114:10:114:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:115:10:115:10 | b | semmle.label | b | +| hash_flow.rb:118:9:118:12 | [post] hash [element] : | semmle.label | [post] hash [element] : | +| hash_flow.rb:118:9:118:33 | call to store : | semmle.label | call to store : | +| hash_flow.rb:118:23:118:32 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:119:10:119:13 | hash [element] : | semmle.label | hash [element] : | +| hash_flow.rb:119:10:119:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:120:10:120:13 | hash [element] : | semmle.label | hash [element] : | +| hash_flow.rb:120:10:120:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:121:10:121:10 | c | semmle.label | c | +| hash_flow.rb:128:15:128:24 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:131:5:131:8 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:131:18:131:29 | key_or_value : | semmle.label | key_or_value : | +| hash_flow.rb:132:14:132:25 | key_or_value | semmle.label | key_or_value | +| hash_flow.rb:134:5:134:8 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:134:22:134:26 | value : | semmle.label | value : | +| hash_flow.rb:136:14:136:18 | value | semmle.label | value | +| hash_flow.rb:144:15:144:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:147:9:147:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:147:9:147:22 | call to assoc [element 1] : | semmle.label | call to assoc [element 1] : | +| hash_flow.rb:149:10:149:10 | b [element 1] : | semmle.label | b [element 1] : | +| hash_flow.rb:149:10:149:13 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:150:10:150:10 | b [element 1] : | semmle.label | b [element 1] : | +| hash_flow.rb:150:10:150:13 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:151:9:151:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:151:9:151:21 | call to assoc [element 1] : | semmle.label | call to assoc [element 1] : | +| hash_flow.rb:152:10:152:10 | c [element 1] : | semmle.label | c [element 1] : | +| hash_flow.rb:152:10:152:13 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:170:15:170:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:173:9:173:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:173:9:173:20 | call to compact [element :a] : | semmle.label | call to compact [element :a] : | +| hash_flow.rb:174:10:174:10 | a [element :a] : | semmle.label | a [element :a] : | +| hash_flow.rb:174:10:174:14 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:182:15:182:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:185:9:185:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:185:9:185:23 | call to delete : | semmle.label | call to delete : | +| hash_flow.rb:186:10:186:10 | a | semmle.label | a | +| hash_flow.rb:194:15:194:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:197:9:197:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | +| hash_flow.rb:197:9:197:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:197:9:200:7 | call to delete_if [element :a] : | semmle.label | call to delete_if [element :a] : | +| hash_flow.rb:197:33:197:37 | value : | semmle.label | value : | +| hash_flow.rb:199:14:199:18 | value | semmle.label | value | +| hash_flow.rb:201:10:201:10 | a [element :a] : | semmle.label | a [element :a] : | +| hash_flow.rb:201:10:201:14 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:202:10:202:13 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:202:10:202:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:210:15:210:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:213:19:213:29 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:217:10:217:13 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:217:10:217:21 | call to dig | semmle.label | call to dig | +| hash_flow.rb:219:10:219:13 | hash [element :c, element :d] : | semmle.label | hash [element :c, element :d] : | +| hash_flow.rb:219:10:219:24 | call to dig | semmle.label | call to dig | +| hash_flow.rb:227:15:227:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:230:9:230:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:230:9:233:7 | call to each [element :a] : | semmle.label | call to each [element :a] : | +| hash_flow.rb:230:28:230:32 | value : | semmle.label | value : | +| hash_flow.rb:232:14:232:18 | value | semmle.label | value | +| hash_flow.rb:234:10:234:10 | x [element :a] : | semmle.label | x [element :a] : | +| hash_flow.rb:234:10:234:14 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:242:15:242:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:245:9:245:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:245:9:247:7 | call to each_key [element :a] : | semmle.label | call to each_key [element :a] : | +| hash_flow.rb:248:10:248:10 | x [element :a] : | semmle.label | x [element :a] : | +| hash_flow.rb:248:10:248:14 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:256:15:256:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:259:9:259:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:259:9:262:7 | call to each_pair [element :a] : | semmle.label | call to each_pair [element :a] : | +| hash_flow.rb:259:33:259:37 | value : | semmle.label | value : | +| hash_flow.rb:261:14:261:18 | value | semmle.label | value | +| hash_flow.rb:263:10:263:10 | x [element :a] : | semmle.label | x [element :a] : | +| hash_flow.rb:263:10:263:14 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:271:15:271:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:274:9:274:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:274:9:276:7 | call to each_value [element :a] : | semmle.label | call to each_value [element :a] : | +| hash_flow.rb:274:29:274:33 | value : | semmle.label | value : | +| hash_flow.rb:275:14:275:18 | value | semmle.label | value | +| hash_flow.rb:277:10:277:10 | x [element :a] : | semmle.label | x [element :a] : | +| hash_flow.rb:277:10:277:14 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:287:15:287:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:290:9:290:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:290:9:290:28 | call to except [element :c] : | semmle.label | call to except [element :c] : | +| hash_flow.rb:293:10:293:10 | x [element :c] : | semmle.label | x [element :c] : | +| hash_flow.rb:293:10:293:14 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:301:15:301:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:303:15:303:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:305:9:305:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:305:9:305:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:305:9:307:7 | call to fetch : | semmle.label | call to fetch : | +| hash_flow.rb:305:20:305:30 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:305:37:305:37 | x : | semmle.label | x : | +| hash_flow.rb:306:14:306:14 | x | semmle.label | x | | hash_flow.rb:308:10:308:10 | b | semmle.label | b | -| hash_flow.rb:315:15:315:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:317:15:317:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:319:9:319:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:319:9:319:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:319:9:322:7 | call to fetch_values [element] : | semmle.label | call to fetch_values [element] : | -| hash_flow.rb:319:27:319:37 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:319:44:319:44 | x : | semmle.label | x : | -| hash_flow.rb:320:14:320:14 | x | semmle.label | x | -| hash_flow.rb:321:9:321:19 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:323:10:323:10 | b [element] : | semmle.label | b [element] : | -| hash_flow.rb:323:10:323:13 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:324:9:324:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:324:9:324:29 | call to fetch_values [element] : | semmle.label | call to fetch_values [element] : | -| hash_flow.rb:325:10:325:10 | b [element] : | semmle.label | b [element] : | -| hash_flow.rb:325:10:325:13 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:326:9:326:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:326:9:326:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:326:9:326:31 | call to fetch_values [element] : | semmle.label | call to fetch_values [element] : | -| hash_flow.rb:327:10:327:10 | b [element] : | semmle.label | b [element] : | -| hash_flow.rb:327:10:327:13 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:334:15:334:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:336:15:336:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:338:9:338:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:338:9:338:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:338:9:342:7 | call to filter [element :a] : | semmle.label | call to filter [element :a] : | -| hash_flow.rb:338:30:338:34 | value : | semmle.label | value : | -| hash_flow.rb:340:14:340:18 | value | semmle.label | value | -| hash_flow.rb:343:10:343:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:343:11:343:11 | b [element :a] : | semmle.label | b [element :a] : | -| hash_flow.rb:343:11:343:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:350:15:350:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:352:15:352:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:354:5:354:8 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | -| hash_flow.rb:354:5:354:8 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:354:5:354:8 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:354:27:354:31 | value : | semmle.label | value : | -| hash_flow.rb:356:14:356:18 | value | semmle.label | value | -| hash_flow.rb:359:10:359:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:359:11:359:14 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:359:11:359:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:366:15:366:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:368:15:368:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:370:9:370:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:370:9:370:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:370:9:370:20 | call to flatten [element] : | semmle.label | call to flatten [element] : | -| hash_flow.rb:371:10:371:15 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:371:11:371:11 | b [element] : | semmle.label | b [element] : | -| hash_flow.rb:371:11:371:14 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:378:15:378:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:380:15:380:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:382:9:382:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | -| hash_flow.rb:382:9:382:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:382:9:382:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:382:9:386:7 | call to keep_if [element :a] : | semmle.label | call to keep_if [element :a] : | -| hash_flow.rb:382:31:382:35 | value : | semmle.label | value : | -| hash_flow.rb:384:14:384:18 | value | semmle.label | value | -| hash_flow.rb:387:10:387:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:387:11:387:14 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:387:11:387:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:388:10:388:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:388:11:388:11 | b [element :a] : | semmle.label | b [element :a] : | -| hash_flow.rb:388:11:388:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:395:15:395:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:397:15:397:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:400:15:400:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:402:15:402:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:404:12:404:16 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | -| hash_flow.rb:404:12:404:16 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | -| hash_flow.rb:404:12:408:7 | call to merge [element :a] : | semmle.label | call to merge [element :a] : | -| hash_flow.rb:404:12:408:7 | call to merge [element :c] : | semmle.label | call to merge [element :c] : | -| hash_flow.rb:404:12:408:7 | call to merge [element :d] : | semmle.label | call to merge [element :d] : | -| hash_flow.rb:404:12:408:7 | call to merge [element :f] : | semmle.label | call to merge [element :f] : | -| hash_flow.rb:404:24:404:28 | hash2 [element :d] : | semmle.label | hash2 [element :d] : | -| hash_flow.rb:404:24:404:28 | hash2 [element :f] : | semmle.label | hash2 [element :f] : | -| hash_flow.rb:404:40:404:48 | old_value : | semmle.label | old_value : | -| hash_flow.rb:404:51:404:59 | new_value : | semmle.label | new_value : | -| hash_flow.rb:406:14:406:22 | old_value | semmle.label | old_value | -| hash_flow.rb:407:14:407:22 | new_value | semmle.label | new_value | -| hash_flow.rb:409:10:409:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:409:11:409:14 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:409:11:409:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:411:10:411:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:411:11:411:14 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:411:11:411:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:412:10:412:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:412:11:412:14 | hash [element :d] : | semmle.label | hash [element :d] : | -| hash_flow.rb:412:11:412:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:414:10:414:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:414:11:414:14 | hash [element :f] : | semmle.label | hash [element :f] : | -| hash_flow.rb:414:11:414:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:421:15:421:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:423:15:423:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:426:15:426:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:428:15:428:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:430:12:430:16 | [post] hash1 [element :a] : | semmle.label | [post] hash1 [element :a] : | -| hash_flow.rb:430:12:430:16 | [post] hash1 [element :c] : | semmle.label | [post] hash1 [element :c] : | -| hash_flow.rb:430:12:430:16 | [post] hash1 [element :d] : | semmle.label | [post] hash1 [element :d] : | -| hash_flow.rb:430:12:430:16 | [post] hash1 [element :f] : | semmle.label | [post] hash1 [element :f] : | -| hash_flow.rb:430:12:430:16 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | -| hash_flow.rb:430:12:430:16 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | -| hash_flow.rb:430:12:434:7 | call to merge! [element :a] : | semmle.label | call to merge! [element :a] : | -| hash_flow.rb:430:12:434:7 | call to merge! [element :c] : | semmle.label | call to merge! [element :c] : | -| hash_flow.rb:430:12:434:7 | call to merge! [element :d] : | semmle.label | call to merge! [element :d] : | -| hash_flow.rb:430:12:434:7 | call to merge! [element :f] : | semmle.label | call to merge! [element :f] : | -| hash_flow.rb:430:25:430:29 | hash2 [element :d] : | semmle.label | hash2 [element :d] : | -| hash_flow.rb:430:25:430:29 | hash2 [element :f] : | semmle.label | hash2 [element :f] : | -| hash_flow.rb:430:41:430:49 | old_value : | semmle.label | old_value : | -| hash_flow.rb:430:52:430:60 | new_value : | semmle.label | new_value : | -| hash_flow.rb:432:14:432:22 | old_value | semmle.label | old_value | -| hash_flow.rb:433:14:433:22 | new_value | semmle.label | new_value | -| hash_flow.rb:435:10:435:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:435:11:435:14 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:435:11:435:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:437:10:437:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:437:11:437:14 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:437:11:437:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:438:10:438:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:438:11:438:14 | hash [element :d] : | semmle.label | hash [element :d] : | -| hash_flow.rb:438:11:438:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:440:10:440:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:440:11:440:14 | hash [element :f] : | semmle.label | hash [element :f] : | -| hash_flow.rb:440:11:440:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:442:10:442:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:442:11:442:15 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | -| hash_flow.rb:442:11:442:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:444:10:444:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:444:11:444:15 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | -| hash_flow.rb:444:11:444:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:445:10:445:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:445:11:445:15 | hash1 [element :d] : | semmle.label | hash1 [element :d] : | -| hash_flow.rb:445:11:445:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:447:10:447:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:447:11:447:15 | hash1 [element :f] : | semmle.label | hash1 [element :f] : | -| hash_flow.rb:447:11:447:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:454:15:454:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:457:9:457:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:457:9:457:22 | call to rassoc [element 1] : | semmle.label | call to rassoc [element 1] : | -| hash_flow.rb:459:10:459:10 | b [element 1] : | semmle.label | b [element 1] : | -| hash_flow.rb:459:10:459:13 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:466:15:466:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:469:9:469:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:469:9:473:7 | call to reject [element :a] : | semmle.label | call to reject [element :a] : | -| hash_flow.rb:469:29:469:33 | value : | semmle.label | value : | -| hash_flow.rb:471:14:471:18 | value | semmle.label | value | -| hash_flow.rb:474:10:474:10 | b [element :a] : | semmle.label | b [element :a] : | -| hash_flow.rb:474:10:474:14 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:481:15:481:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:484:9:484:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | -| hash_flow.rb:484:9:484:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:484:9:488:7 | call to reject! [element :a] : | semmle.label | call to reject! [element :a] : | -| hash_flow.rb:484:30:484:34 | value : | semmle.label | value : | -| hash_flow.rb:486:14:486:18 | value | semmle.label | value | -| hash_flow.rb:489:10:489:10 | b [element :a] : | semmle.label | b [element :a] : | -| hash_flow.rb:489:10:489:14 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:490:10:490:13 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:490:10:490:17 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:497:15:497:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:499:15:499:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:504:5:504:9 | [post] hash2 [element :a] : | semmle.label | [post] hash2 [element :a] : | -| hash_flow.rb:504:5:504:9 | [post] hash2 [element :c] : | semmle.label | [post] hash2 [element :c] : | -| hash_flow.rb:504:19:504:22 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:504:19:504:22 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:505:10:505:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:505:11:505:15 | hash2 [element :a] : | semmle.label | hash2 [element :a] : | -| hash_flow.rb:505:11:505:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:507:10:507:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:507:11:507:15 | hash2 [element :c] : | semmle.label | hash2 [element :c] : | -| hash_flow.rb:507:11:507:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:512:15:512:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:514:15:514:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:516:9:516:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:516:9:516:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:516:9:520:7 | call to select [element :a] : | semmle.label | call to select [element :a] : | -| hash_flow.rb:516:30:516:34 | value : | semmle.label | value : | -| hash_flow.rb:518:14:518:18 | value | semmle.label | value | -| hash_flow.rb:521:10:521:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:521:11:521:11 | b [element :a] : | semmle.label | b [element :a] : | -| hash_flow.rb:521:11:521:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:528:15:528:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:530:15:530:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:532:5:532:8 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | -| hash_flow.rb:532:5:532:8 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:532:5:532:8 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:532:27:532:31 | value : | semmle.label | value : | -| hash_flow.rb:534:14:534:18 | value | semmle.label | value | -| hash_flow.rb:537:10:537:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:537:11:537:14 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:537:11:537:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:544:15:544:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:546:15:546:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:548:9:548:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | -| hash_flow.rb:548:9:548:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:548:9:548:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:548:9:548:18 | call to shift [element 1] : | semmle.label | call to shift [element 1] : | -| hash_flow.rb:549:10:549:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:549:11:549:14 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:549:11:549:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:551:10:551:15 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:551:11:551:11 | b [element 1] : | semmle.label | b [element 1] : | -| hash_flow.rb:551:11:551:14 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:558:15:558:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:560:15:560:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:562:9:562:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:562:9:562:26 | call to slice [element :a] : | semmle.label | call to slice [element :a] : | -| hash_flow.rb:563:10:563:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:563:11:563:11 | b [element :a] : | semmle.label | b [element :a] : | -| hash_flow.rb:563:11:563:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:567:9:567:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:567:9:567:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:567:9:567:25 | call to slice [element :a] : | semmle.label | call to slice [element :a] : | -| hash_flow.rb:567:9:567:25 | call to slice [element :c] : | semmle.label | call to slice [element :c] : | -| hash_flow.rb:568:10:568:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:568:11:568:11 | c [element :a] : | semmle.label | c [element :a] : | -| hash_flow.rb:568:11:568:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:570:10:570:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:570:11:570:11 | c [element :c] : | semmle.label | c [element :c] : | -| hash_flow.rb:570:11:570:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:577:15:577:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:579:15:579:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:581:9:581:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:581:9:581:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:581:9:581:17 | call to to_a [element, element 1] : | semmle.label | call to to_a [element, element 1] : | -| hash_flow.rb:583:10:583:18 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:583:11:583:11 | a [element, element 1] : | semmle.label | a [element, element 1] : | -| hash_flow.rb:583:11:583:14 | ...[...] [element 1] : | semmle.label | ...[...] [element 1] : | -| hash_flow.rb:583:11:583:17 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:590:15:590:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:592:15:592:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:594:9:594:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:594:9:594:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:594:9:594:17 | call to to_h [element :a] : | semmle.label | call to to_h [element :a] : | -| hash_flow.rb:594:9:594:17 | call to to_h [element :c] : | semmle.label | call to to_h [element :c] : | -| hash_flow.rb:595:10:595:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:595:11:595:11 | a [element :a] : | semmle.label | a [element :a] : | -| hash_flow.rb:595:11:595:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:597:10:597:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:597:11:597:11 | a [element :c] : | semmle.label | a [element :c] : | -| hash_flow.rb:597:11:597:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:599:9:599:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:599:9:599:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:599:9:603:7 | call to to_h [element] : | semmle.label | call to to_h [element] : | -| hash_flow.rb:599:28:599:32 | value : | semmle.label | value : | -| hash_flow.rb:601:14:601:18 | value | semmle.label | value | -| hash_flow.rb:602:14:602:24 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:604:10:604:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:604:11:604:11 | b [element] : | semmle.label | b [element] : | -| hash_flow.rb:604:11:604:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:611:15:611:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:613:15:613:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:615:9:615:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:615:9:615:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:615:9:615:45 | call to transform_keys [element] : | semmle.label | call to transform_keys [element] : | -| hash_flow.rb:616:10:616:17 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:616:11:616:11 | a [element] : | semmle.label | a [element] : | -| hash_flow.rb:616:11:616:16 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:617:10:617:17 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:617:11:617:11 | a [element] : | semmle.label | a [element] : | -| hash_flow.rb:617:11:617:16 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:618:10:618:17 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:618:11:618:11 | a [element] : | semmle.label | a [element] : | -| hash_flow.rb:618:11:618:16 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:625:15:625:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:627:15:627:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:629:5:629:8 | [post] hash [element] : | semmle.label | [post] hash [element] : | -| hash_flow.rb:629:5:629:8 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:629:5:629:8 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:630:10:630:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:630:11:630:14 | hash [element] : | semmle.label | hash [element] : | -| hash_flow.rb:630:11:630:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:631:10:631:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:631:11:631:14 | hash [element] : | semmle.label | hash [element] : | -| hash_flow.rb:631:11:631:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:632:10:632:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:632:11:632:14 | hash [element] : | semmle.label | hash [element] : | -| hash_flow.rb:632:11:632:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:639:15:639:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:641:15:641:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:643:9:643:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:643:9:643:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:643:9:646:7 | call to transform_values [element] : | semmle.label | call to transform_values [element] : | -| hash_flow.rb:643:35:643:39 | value : | semmle.label | value : | -| hash_flow.rb:644:14:644:18 | value | semmle.label | value | -| hash_flow.rb:645:9:645:19 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:647:10:647:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:647:11:647:14 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:647:11:647:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:648:10:648:16 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:648:11:648:11 | b [element] : | semmle.label | b [element] : | -| hash_flow.rb:648:11:648:15 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:655:15:655:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:657:15:657:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:659:5:659:8 | [post] hash [element] : | semmle.label | [post] hash [element] : | -| hash_flow.rb:659:5:659:8 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:659:5:659:8 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:659:32:659:36 | value : | semmle.label | value : | -| hash_flow.rb:660:14:660:18 | value | semmle.label | value | -| hash_flow.rb:661:9:661:19 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:663:10:663:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:663:11:663:14 | hash [element] : | semmle.label | hash [element] : | -| hash_flow.rb:663:11:663:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:670:15:670:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:672:15:672:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:675:15:675:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:677:15:677:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:679:12:679:16 | [post] hash1 [element :a] : | semmle.label | [post] hash1 [element :a] : | -| hash_flow.rb:679:12:679:16 | [post] hash1 [element :c] : | semmle.label | [post] hash1 [element :c] : | -| hash_flow.rb:679:12:679:16 | [post] hash1 [element :d] : | semmle.label | [post] hash1 [element :d] : | -| hash_flow.rb:679:12:679:16 | [post] hash1 [element :f] : | semmle.label | [post] hash1 [element :f] : | -| hash_flow.rb:679:12:679:16 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | -| hash_flow.rb:679:12:679:16 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | -| hash_flow.rb:679:12:683:7 | call to update [element :a] : | semmle.label | call to update [element :a] : | -| hash_flow.rb:679:12:683:7 | call to update [element :c] : | semmle.label | call to update [element :c] : | -| hash_flow.rb:679:12:683:7 | call to update [element :d] : | semmle.label | call to update [element :d] : | -| hash_flow.rb:679:12:683:7 | call to update [element :f] : | semmle.label | call to update [element :f] : | -| hash_flow.rb:679:25:679:29 | hash2 [element :d] : | semmle.label | hash2 [element :d] : | -| hash_flow.rb:679:25:679:29 | hash2 [element :f] : | semmle.label | hash2 [element :f] : | -| hash_flow.rb:679:41:679:49 | old_value : | semmle.label | old_value : | -| hash_flow.rb:679:52:679:60 | new_value : | semmle.label | new_value : | -| hash_flow.rb:681:14:681:22 | old_value | semmle.label | old_value | -| hash_flow.rb:682:14:682:22 | new_value | semmle.label | new_value | -| hash_flow.rb:684:10:684:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:684:11:684:14 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:684:11:684:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:686:10:686:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:686:11:686:14 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:686:11:686:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:687:10:687:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:687:11:687:14 | hash [element :d] : | semmle.label | hash [element :d] : | -| hash_flow.rb:687:11:687:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:689:10:689:19 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:689:11:689:14 | hash [element :f] : | semmle.label | hash [element :f] : | -| hash_flow.rb:689:11:689:18 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:691:10:691:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:691:11:691:15 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | -| hash_flow.rb:691:11:691:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:693:10:693:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:693:11:693:15 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | -| hash_flow.rb:693:11:693:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:694:10:694:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:694:11:694:15 | hash1 [element :d] : | semmle.label | hash1 [element :d] : | -| hash_flow.rb:694:11:694:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:696:10:696:20 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:696:11:696:15 | hash1 [element :f] : | semmle.label | hash1 [element :f] : | -| hash_flow.rb:696:11:696:19 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:703:15:703:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:705:15:705:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:707:9:707:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:707:9:707:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:707:9:707:19 | call to values [element] : | semmle.label | call to values [element] : | -| hash_flow.rb:708:10:708:15 | ( ... ) | semmle.label | ( ... ) | -| hash_flow.rb:708:11:708:11 | a [element] : | semmle.label | a [element] : | -| hash_flow.rb:708:11:708:14 | ...[...] : | semmle.label | ...[...] : | -| hash_flow.rb:715:15:715:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:717:15:717:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:719:9:719:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:719:9:719:26 | call to values_at [element 0] : | semmle.label | call to values_at [element 0] : | -| hash_flow.rb:720:10:720:10 | b [element 0] : | semmle.label | b [element 0] : | -| hash_flow.rb:720:10:720:13 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:721:9:721:12 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:721:9:721:12 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:721:9:721:31 | call to fetch_values [element] : | semmle.label | call to fetch_values [element] : | -| hash_flow.rb:722:10:722:10 | b [element] : | semmle.label | b [element] : | -| hash_flow.rb:722:10:722:13 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:729:15:729:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:731:15:731:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:734:15:734:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:736:15:736:25 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:738:14:738:20 | ** ... [element :a] : | semmle.label | ** ... [element :a] : | -| hash_flow.rb:738:14:738:20 | ** ... [element :c] : | semmle.label | ** ... [element :c] : | -| hash_flow.rb:738:16:738:20 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | -| hash_flow.rb:738:16:738:20 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | -| hash_flow.rb:738:29:738:39 | call to taint : | semmle.label | call to taint : | -| hash_flow.rb:738:42:738:48 | ** ... [element :d] : | semmle.label | ** ... [element :d] : | -| hash_flow.rb:738:42:738:48 | ** ... [element :f] : | semmle.label | ** ... [element :f] : | -| hash_flow.rb:738:44:738:48 | hash2 [element :d] : | semmle.label | hash2 [element :d] : | -| hash_flow.rb:738:44:738:48 | hash2 [element :f] : | semmle.label | hash2 [element :f] : | -| hash_flow.rb:739:10:739:13 | hash [element :a] : | semmle.label | hash [element :a] : | -| hash_flow.rb:739:10:739:17 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:741:10:741:13 | hash [element :c] : | semmle.label | hash [element :c] : | -| hash_flow.rb:741:10:741:17 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:742:10:742:13 | hash [element :d] : | semmle.label | hash [element :d] : | -| hash_flow.rb:742:10:742:17 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:744:10:744:13 | hash [element :f] : | semmle.label | hash [element :f] : | -| hash_flow.rb:744:10:744:17 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:745:10:745:13 | hash [element :g] : | semmle.label | hash [element :g] : | -| hash_flow.rb:745:10:745:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:309:9:309:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:309:9:309:22 | call to fetch : | semmle.label | call to fetch : | +| hash_flow.rb:310:10:310:10 | b | semmle.label | b | +| hash_flow.rb:311:9:311:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:311:9:311:35 | call to fetch : | semmle.label | call to fetch : | +| hash_flow.rb:311:24:311:34 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:312:10:312:10 | b | semmle.label | b | +| hash_flow.rb:313:9:313:35 | call to fetch : | semmle.label | call to fetch : | +| hash_flow.rb:313:24:313:34 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:314:10:314:10 | b | semmle.label | b | +| hash_flow.rb:315:9:315:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:315:9:315:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:315:9:315:34 | call to fetch : | semmle.label | call to fetch : | +| hash_flow.rb:315:23:315:33 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:316:10:316:10 | b | semmle.label | b | +| hash_flow.rb:323:15:323:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:325:15:325:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:327:9:327:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:327:9:327:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:327:9:330:7 | call to fetch_values [element] : | semmle.label | call to fetch_values [element] : | +| hash_flow.rb:327:27:327:37 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:327:44:327:44 | x : | semmle.label | x : | +| hash_flow.rb:328:14:328:14 | x | semmle.label | x | +| hash_flow.rb:329:9:329:19 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:331:10:331:10 | b [element] : | semmle.label | b [element] : | +| hash_flow.rb:331:10:331:13 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:332:9:332:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:332:9:332:29 | call to fetch_values [element] : | semmle.label | call to fetch_values [element] : | +| hash_flow.rb:333:10:333:10 | b [element] : | semmle.label | b [element] : | +| hash_flow.rb:333:10:333:13 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:334:9:334:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:334:9:334:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:334:9:334:31 | call to fetch_values [element] : | semmle.label | call to fetch_values [element] : | +| hash_flow.rb:335:10:335:10 | b [element] : | semmle.label | b [element] : | +| hash_flow.rb:335:10:335:13 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:342:15:342:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:344:15:344:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:346:9:346:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:346:9:346:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:346:9:350:7 | call to filter [element :a] : | semmle.label | call to filter [element :a] : | +| hash_flow.rb:346:30:346:34 | value : | semmle.label | value : | +| hash_flow.rb:348:14:348:18 | value | semmle.label | value | +| hash_flow.rb:351:10:351:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:351:11:351:11 | b [element :a] : | semmle.label | b [element :a] : | +| hash_flow.rb:351:11:351:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:358:15:358:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:360:15:360:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:362:5:362:8 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | +| hash_flow.rb:362:5:362:8 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:362:5:362:8 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:362:27:362:31 | value : | semmle.label | value : | +| hash_flow.rb:364:14:364:18 | value | semmle.label | value | +| hash_flow.rb:367:10:367:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:367:11:367:14 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:367:11:367:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:374:15:374:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:376:15:376:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:378:9:378:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:378:9:378:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:378:9:378:20 | call to flatten [element] : | semmle.label | call to flatten [element] : | +| hash_flow.rb:379:10:379:15 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:379:11:379:11 | b [element] : | semmle.label | b [element] : | +| hash_flow.rb:379:11:379:14 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:386:15:386:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:388:15:388:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:390:9:390:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | +| hash_flow.rb:390:9:390:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:390:9:390:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:390:9:394:7 | call to keep_if [element :a] : | semmle.label | call to keep_if [element :a] : | +| hash_flow.rb:390:31:390:35 | value : | semmle.label | value : | +| hash_flow.rb:392:14:392:18 | value | semmle.label | value | +| hash_flow.rb:395:10:395:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:395:11:395:14 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:395:11:395:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:396:10:396:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:396:11:396:11 | b [element :a] : | semmle.label | b [element :a] : | +| hash_flow.rb:396:11:396:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:403:15:403:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:405:15:405:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:408:15:408:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:410:15:410:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:412:12:412:16 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | +| hash_flow.rb:412:12:412:16 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | +| hash_flow.rb:412:12:416:7 | call to merge [element :a] : | semmle.label | call to merge [element :a] : | +| hash_flow.rb:412:12:416:7 | call to merge [element :c] : | semmle.label | call to merge [element :c] : | +| hash_flow.rb:412:12:416:7 | call to merge [element :d] : | semmle.label | call to merge [element :d] : | +| hash_flow.rb:412:12:416:7 | call to merge [element :f] : | semmle.label | call to merge [element :f] : | +| hash_flow.rb:412:24:412:28 | hash2 [element :d] : | semmle.label | hash2 [element :d] : | +| hash_flow.rb:412:24:412:28 | hash2 [element :f] : | semmle.label | hash2 [element :f] : | +| hash_flow.rb:412:40:412:48 | old_value : | semmle.label | old_value : | +| hash_flow.rb:412:51:412:59 | new_value : | semmle.label | new_value : | +| hash_flow.rb:414:14:414:22 | old_value | semmle.label | old_value | +| hash_flow.rb:415:14:415:22 | new_value | semmle.label | new_value | +| hash_flow.rb:417:10:417:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:417:11:417:14 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:417:11:417:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:419:10:419:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:419:11:419:14 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:419:11:419:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:420:10:420:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:420:11:420:14 | hash [element :d] : | semmle.label | hash [element :d] : | +| hash_flow.rb:420:11:420:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:422:10:422:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:422:11:422:14 | hash [element :f] : | semmle.label | hash [element :f] : | +| hash_flow.rb:422:11:422:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:429:15:429:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:431:15:431:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:434:15:434:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:436:15:436:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :a] : | semmle.label | [post] hash1 [element :a] : | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :c] : | semmle.label | [post] hash1 [element :c] : | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :d] : | semmle.label | [post] hash1 [element :d] : | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :f] : | semmle.label | [post] hash1 [element :f] : | +| hash_flow.rb:438:12:438:16 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | +| hash_flow.rb:438:12:438:16 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | +| hash_flow.rb:438:12:442:7 | call to merge! [element :a] : | semmle.label | call to merge! [element :a] : | +| hash_flow.rb:438:12:442:7 | call to merge! [element :c] : | semmle.label | call to merge! [element :c] : | +| hash_flow.rb:438:12:442:7 | call to merge! [element :d] : | semmle.label | call to merge! [element :d] : | +| hash_flow.rb:438:12:442:7 | call to merge! [element :f] : | semmle.label | call to merge! [element :f] : | +| hash_flow.rb:438:25:438:29 | hash2 [element :d] : | semmle.label | hash2 [element :d] : | +| hash_flow.rb:438:25:438:29 | hash2 [element :f] : | semmle.label | hash2 [element :f] : | +| hash_flow.rb:438:41:438:49 | old_value : | semmle.label | old_value : | +| hash_flow.rb:438:52:438:60 | new_value : | semmle.label | new_value : | +| hash_flow.rb:440:14:440:22 | old_value | semmle.label | old_value | +| hash_flow.rb:441:14:441:22 | new_value | semmle.label | new_value | +| hash_flow.rb:443:10:443:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:443:11:443:14 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:443:11:443:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:445:10:445:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:445:11:445:14 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:445:11:445:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:446:10:446:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:446:11:446:14 | hash [element :d] : | semmle.label | hash [element :d] : | +| hash_flow.rb:446:11:446:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:448:10:448:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:448:11:448:14 | hash [element :f] : | semmle.label | hash [element :f] : | +| hash_flow.rb:448:11:448:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:450:10:450:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:450:11:450:15 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | +| hash_flow.rb:450:11:450:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:452:10:452:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:452:11:452:15 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | +| hash_flow.rb:452:11:452:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:453:10:453:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:453:11:453:15 | hash1 [element :d] : | semmle.label | hash1 [element :d] : | +| hash_flow.rb:453:11:453:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:455:10:455:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:455:11:455:15 | hash1 [element :f] : | semmle.label | hash1 [element :f] : | +| hash_flow.rb:455:11:455:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:462:15:462:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:465:9:465:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:465:9:465:22 | call to rassoc [element 1] : | semmle.label | call to rassoc [element 1] : | +| hash_flow.rb:467:10:467:10 | b [element 1] : | semmle.label | b [element 1] : | +| hash_flow.rb:467:10:467:13 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:474:15:474:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:477:9:477:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:477:9:481:7 | call to reject [element :a] : | semmle.label | call to reject [element :a] : | +| hash_flow.rb:477:29:477:33 | value : | semmle.label | value : | +| hash_flow.rb:479:14:479:18 | value | semmle.label | value | +| hash_flow.rb:482:10:482:10 | b [element :a] : | semmle.label | b [element :a] : | +| hash_flow.rb:482:10:482:14 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:489:15:489:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:492:9:492:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | +| hash_flow.rb:492:9:492:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:492:9:496:7 | call to reject! [element :a] : | semmle.label | call to reject! [element :a] : | +| hash_flow.rb:492:30:492:34 | value : | semmle.label | value : | +| hash_flow.rb:494:14:494:18 | value | semmle.label | value | +| hash_flow.rb:497:10:497:10 | b [element :a] : | semmle.label | b [element :a] : | +| hash_flow.rb:497:10:497:14 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:498:10:498:13 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:498:10:498:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:505:15:505:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:507:15:507:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:512:5:512:9 | [post] hash2 [element :a] : | semmle.label | [post] hash2 [element :a] : | +| hash_flow.rb:512:5:512:9 | [post] hash2 [element :c] : | semmle.label | [post] hash2 [element :c] : | +| hash_flow.rb:512:19:512:22 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:512:19:512:22 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:513:10:513:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:513:11:513:15 | hash2 [element :a] : | semmle.label | hash2 [element :a] : | +| hash_flow.rb:513:11:513:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:515:10:515:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:515:11:515:15 | hash2 [element :c] : | semmle.label | hash2 [element :c] : | +| hash_flow.rb:515:11:515:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:520:15:520:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:522:15:522:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:524:9:524:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:524:9:524:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:524:9:528:7 | call to select [element :a] : | semmle.label | call to select [element :a] : | +| hash_flow.rb:524:30:524:34 | value : | semmle.label | value : | +| hash_flow.rb:526:14:526:18 | value | semmle.label | value | +| hash_flow.rb:529:10:529:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:529:11:529:11 | b [element :a] : | semmle.label | b [element :a] : | +| hash_flow.rb:529:11:529:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:536:15:536:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:538:15:538:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:540:5:540:8 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | +| hash_flow.rb:540:5:540:8 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:540:5:540:8 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:540:27:540:31 | value : | semmle.label | value : | +| hash_flow.rb:542:14:542:18 | value | semmle.label | value | +| hash_flow.rb:545:10:545:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:545:11:545:14 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:545:11:545:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:552:15:552:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:554:15:554:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:556:9:556:12 | [post] hash [element :a] : | semmle.label | [post] hash [element :a] : | +| hash_flow.rb:556:9:556:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:556:9:556:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:556:9:556:18 | call to shift [element 1] : | semmle.label | call to shift [element 1] : | +| hash_flow.rb:557:10:557:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:557:11:557:14 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:557:11:557:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:559:10:559:15 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:559:11:559:11 | b [element 1] : | semmle.label | b [element 1] : | +| hash_flow.rb:559:11:559:14 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:566:15:566:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:568:15:568:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:570:9:570:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:570:9:570:26 | call to slice [element :a] : | semmle.label | call to slice [element :a] : | +| hash_flow.rb:571:10:571:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:571:11:571:11 | b [element :a] : | semmle.label | b [element :a] : | +| hash_flow.rb:571:11:571:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:575:9:575:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:575:9:575:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:575:9:575:25 | call to slice [element :a] : | semmle.label | call to slice [element :a] : | +| hash_flow.rb:575:9:575:25 | call to slice [element :c] : | semmle.label | call to slice [element :c] : | +| hash_flow.rb:576:10:576:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:576:11:576:11 | c [element :a] : | semmle.label | c [element :a] : | +| hash_flow.rb:576:11:576:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:578:10:578:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:578:11:578:11 | c [element :c] : | semmle.label | c [element :c] : | +| hash_flow.rb:578:11:578:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:585:15:585:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:587:15:587:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:589:9:589:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:589:9:589:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] : | semmle.label | call to to_a [element, element 1] : | +| hash_flow.rb:591:10:591:18 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:591:11:591:11 | a [element, element 1] : | semmle.label | a [element, element 1] : | +| hash_flow.rb:591:11:591:14 | ...[...] [element 1] : | semmle.label | ...[...] [element 1] : | +| hash_flow.rb:591:11:591:17 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:598:15:598:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:600:15:600:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:602:9:602:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:602:9:602:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:602:9:602:17 | call to to_h [element :a] : | semmle.label | call to to_h [element :a] : | +| hash_flow.rb:602:9:602:17 | call to to_h [element :c] : | semmle.label | call to to_h [element :c] : | +| hash_flow.rb:603:10:603:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:603:11:603:11 | a [element :a] : | semmle.label | a [element :a] : | +| hash_flow.rb:603:11:603:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:605:10:605:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:605:11:605:11 | a [element :c] : | semmle.label | a [element :c] : | +| hash_flow.rb:605:11:605:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:607:9:607:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:607:9:607:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:607:9:611:7 | call to to_h [element] : | semmle.label | call to to_h [element] : | +| hash_flow.rb:607:28:607:32 | value : | semmle.label | value : | +| hash_flow.rb:609:14:609:18 | value | semmle.label | value | +| hash_flow.rb:610:14:610:24 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:612:10:612:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:612:11:612:11 | b [element] : | semmle.label | b [element] : | +| hash_flow.rb:612:11:612:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:619:15:619:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:621:15:621:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:623:9:623:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:623:9:623:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:623:9:623:45 | call to transform_keys [element] : | semmle.label | call to transform_keys [element] : | +| hash_flow.rb:624:10:624:17 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:624:11:624:11 | a [element] : | semmle.label | a [element] : | +| hash_flow.rb:624:11:624:16 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:625:10:625:17 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:625:11:625:11 | a [element] : | semmle.label | a [element] : | +| hash_flow.rb:625:11:625:16 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:626:10:626:17 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:626:11:626:11 | a [element] : | semmle.label | a [element] : | +| hash_flow.rb:626:11:626:16 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:633:15:633:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:635:15:635:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:637:5:637:8 | [post] hash [element] : | semmle.label | [post] hash [element] : | +| hash_flow.rb:637:5:637:8 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:637:5:637:8 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:638:10:638:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:638:11:638:14 | hash [element] : | semmle.label | hash [element] : | +| hash_flow.rb:638:11:638:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:639:10:639:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:639:11:639:14 | hash [element] : | semmle.label | hash [element] : | +| hash_flow.rb:639:11:639:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:640:10:640:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:640:11:640:14 | hash [element] : | semmle.label | hash [element] : | +| hash_flow.rb:640:11:640:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:647:15:647:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:649:15:649:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:651:9:651:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:651:9:651:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:651:9:654:7 | call to transform_values [element] : | semmle.label | call to transform_values [element] : | +| hash_flow.rb:651:35:651:39 | value : | semmle.label | value : | +| hash_flow.rb:652:14:652:18 | value | semmle.label | value | +| hash_flow.rb:653:9:653:19 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:655:10:655:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:655:11:655:14 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:655:11:655:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:656:10:656:16 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:656:11:656:11 | b [element] : | semmle.label | b [element] : | +| hash_flow.rb:656:11:656:15 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:663:15:663:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:665:15:665:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:667:5:667:8 | [post] hash [element] : | semmle.label | [post] hash [element] : | +| hash_flow.rb:667:5:667:8 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:667:5:667:8 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:667:32:667:36 | value : | semmle.label | value : | +| hash_flow.rb:668:14:668:18 | value | semmle.label | value | +| hash_flow.rb:669:9:669:19 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:671:10:671:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:671:11:671:14 | hash [element] : | semmle.label | hash [element] : | +| hash_flow.rb:671:11:671:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:678:15:678:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:680:15:680:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:683:15:683:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:685:15:685:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:687:12:687:16 | [post] hash1 [element :a] : | semmle.label | [post] hash1 [element :a] : | +| hash_flow.rb:687:12:687:16 | [post] hash1 [element :c] : | semmle.label | [post] hash1 [element :c] : | +| hash_flow.rb:687:12:687:16 | [post] hash1 [element :d] : | semmle.label | [post] hash1 [element :d] : | +| hash_flow.rb:687:12:687:16 | [post] hash1 [element :f] : | semmle.label | [post] hash1 [element :f] : | +| hash_flow.rb:687:12:687:16 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | +| hash_flow.rb:687:12:687:16 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | +| hash_flow.rb:687:12:691:7 | call to update [element :a] : | semmle.label | call to update [element :a] : | +| hash_flow.rb:687:12:691:7 | call to update [element :c] : | semmle.label | call to update [element :c] : | +| hash_flow.rb:687:12:691:7 | call to update [element :d] : | semmle.label | call to update [element :d] : | +| hash_flow.rb:687:12:691:7 | call to update [element :f] : | semmle.label | call to update [element :f] : | +| hash_flow.rb:687:25:687:29 | hash2 [element :d] : | semmle.label | hash2 [element :d] : | +| hash_flow.rb:687:25:687:29 | hash2 [element :f] : | semmle.label | hash2 [element :f] : | +| hash_flow.rb:687:41:687:49 | old_value : | semmle.label | old_value : | +| hash_flow.rb:687:52:687:60 | new_value : | semmle.label | new_value : | +| hash_flow.rb:689:14:689:22 | old_value | semmle.label | old_value | +| hash_flow.rb:690:14:690:22 | new_value | semmle.label | new_value | +| hash_flow.rb:692:10:692:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:692:11:692:14 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:692:11:692:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:694:10:694:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:694:11:694:14 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:694:11:694:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:695:10:695:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:695:11:695:14 | hash [element :d] : | semmle.label | hash [element :d] : | +| hash_flow.rb:695:11:695:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:697:10:697:19 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:697:11:697:14 | hash [element :f] : | semmle.label | hash [element :f] : | +| hash_flow.rb:697:11:697:18 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:699:10:699:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:699:11:699:15 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | +| hash_flow.rb:699:11:699:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:701:10:701:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:701:11:701:15 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | +| hash_flow.rb:701:11:701:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:702:10:702:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:702:11:702:15 | hash1 [element :d] : | semmle.label | hash1 [element :d] : | +| hash_flow.rb:702:11:702:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:704:10:704:20 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:704:11:704:15 | hash1 [element :f] : | semmle.label | hash1 [element :f] : | +| hash_flow.rb:704:11:704:19 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:711:15:711:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:713:15:713:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:715:9:715:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:715:9:715:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:715:9:715:19 | call to values [element] : | semmle.label | call to values [element] : | +| hash_flow.rb:716:10:716:15 | ( ... ) | semmle.label | ( ... ) | +| hash_flow.rb:716:11:716:11 | a [element] : | semmle.label | a [element] : | +| hash_flow.rb:716:11:716:14 | ...[...] : | semmle.label | ...[...] : | +| hash_flow.rb:723:15:723:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:725:15:725:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:727:9:727:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:727:9:727:26 | call to values_at [element 0] : | semmle.label | call to values_at [element 0] : | +| hash_flow.rb:728:10:728:10 | b [element 0] : | semmle.label | b [element 0] : | +| hash_flow.rb:728:10:728:13 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:729:9:729:12 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:729:9:729:12 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:729:9:729:31 | call to fetch_values [element] : | semmle.label | call to fetch_values [element] : | +| hash_flow.rb:730:10:730:10 | b [element] : | semmle.label | b [element] : | +| hash_flow.rb:730:10:730:13 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:737:15:737:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:739:15:739:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:742:15:742:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:744:15:744:25 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:746:14:746:20 | ** ... [element :a] : | semmle.label | ** ... [element :a] : | +| hash_flow.rb:746:14:746:20 | ** ... [element :c] : | semmle.label | ** ... [element :c] : | +| hash_flow.rb:746:16:746:20 | hash1 [element :a] : | semmle.label | hash1 [element :a] : | +| hash_flow.rb:746:16:746:20 | hash1 [element :c] : | semmle.label | hash1 [element :c] : | +| hash_flow.rb:746:29:746:39 | call to taint : | semmle.label | call to taint : | +| hash_flow.rb:746:42:746:48 | ** ... [element :d] : | semmle.label | ** ... [element :d] : | +| hash_flow.rb:746:42:746:48 | ** ... [element :f] : | semmle.label | ** ... [element :f] : | +| hash_flow.rb:746:44:746:48 | hash2 [element :d] : | semmle.label | hash2 [element :d] : | +| hash_flow.rb:746:44:746:48 | hash2 [element :f] : | semmle.label | hash2 [element :f] : | +| hash_flow.rb:747:10:747:13 | hash [element :a] : | semmle.label | hash [element :a] : | +| hash_flow.rb:747:10:747:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:749:10:749:13 | hash [element :c] : | semmle.label | hash [element :c] : | +| hash_flow.rb:749:10:749:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:750:10:750:13 | hash [element :d] : | semmle.label | hash [element :d] : | +| hash_flow.rb:750:10:750:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:752:10:752:13 | hash [element :f] : | semmle.label | hash [element :f] : | +| hash_flow.rb:752:10:752:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:753:10:753:13 | hash [element :g] : | semmle.label | hash [element :g] : | +| hash_flow.rb:753:10:753:17 | ...[...] | semmle.label | ...[...] | subpaths #select | hash_flow.rb:22:10:22:17 | ...[...] | hash_flow.rb:11:15:11:24 | call to taint : | hash_flow.rb:22:10:22:17 | ...[...] | $@ | hash_flow.rb:11:15:11:24 | call to taint : | call to taint : | @@ -1114,160 +1132,162 @@ subpaths | hash_flow.rb:65:10:65:18 | ...[...] | hash_flow.rb:64:24:64:33 | call to taint : | hash_flow.rb:65:10:65:18 | ...[...] | $@ | hash_flow.rb:64:24:64:33 | call to taint : | call to taint : | | hash_flow.rb:66:10:66:18 | ...[...] | hash_flow.rb:64:24:64:33 | call to taint : | hash_flow.rb:66:10:66:18 | ...[...] | $@ | hash_flow.rb:64:24:64:33 | call to taint : | call to taint : | | hash_flow.rb:69:10:69:18 | ...[...] | hash_flow.rb:68:22:68:31 | call to taint : | hash_flow.rb:69:10:69:18 | ...[...] | $@ | hash_flow.rb:68:22:68:31 | call to taint : | call to taint : | -| hash_flow.rb:77:10:77:18 | ...[...] | hash_flow.rb:76:26:76:35 | call to taint : | hash_flow.rb:77:10:77:18 | ...[...] | $@ | hash_flow.rb:76:26:76:35 | call to taint : | call to taint : | -| hash_flow.rb:89:10:89:18 | ...[...] | hash_flow.rb:85:15:85:24 | call to taint : | hash_flow.rb:89:10:89:18 | ...[...] | $@ | hash_flow.rb:85:15:85:24 | call to taint : | call to taint : | -| hash_flow.rb:98:10:98:10 | b | hash_flow.rb:97:21:97:30 | call to taint : | hash_flow.rb:98:10:98:10 | b | $@ | hash_flow.rb:97:21:97:30 | call to taint : | call to taint : | -| hash_flow.rb:106:10:106:17 | ...[...] | hash_flow.rb:105:24:105:33 | call to taint : | hash_flow.rb:106:10:106:17 | ...[...] | $@ | hash_flow.rb:105:24:105:33 | call to taint : | call to taint : | -| hash_flow.rb:107:10:107:10 | b | hash_flow.rb:105:24:105:33 | call to taint : | hash_flow.rb:107:10:107:10 | b | $@ | hash_flow.rb:105:24:105:33 | call to taint : | call to taint : | -| hash_flow.rb:111:10:111:17 | ...[...] | hash_flow.rb:110:23:110:32 | call to taint : | hash_flow.rb:111:10:111:17 | ...[...] | $@ | hash_flow.rb:110:23:110:32 | call to taint : | call to taint : | -| hash_flow.rb:112:10:112:17 | ...[...] | hash_flow.rb:110:23:110:32 | call to taint : | hash_flow.rb:112:10:112:17 | ...[...] | $@ | hash_flow.rb:110:23:110:32 | call to taint : | call to taint : | -| hash_flow.rb:113:10:113:10 | c | hash_flow.rb:110:23:110:32 | call to taint : | hash_flow.rb:113:10:113:10 | c | $@ | hash_flow.rb:110:23:110:32 | call to taint : | call to taint : | -| hash_flow.rb:124:14:124:25 | key_or_value | hash_flow.rb:120:15:120:24 | call to taint : | hash_flow.rb:124:14:124:25 | key_or_value | $@ | hash_flow.rb:120:15:120:24 | call to taint : | call to taint : | -| hash_flow.rb:128:14:128:18 | value | hash_flow.rb:120:15:120:24 | call to taint : | hash_flow.rb:128:14:128:18 | value | $@ | hash_flow.rb:120:15:120:24 | call to taint : | call to taint : | -| hash_flow.rb:141:10:141:13 | ...[...] | hash_flow.rb:136:15:136:25 | call to taint : | hash_flow.rb:141:10:141:13 | ...[...] | $@ | hash_flow.rb:136:15:136:25 | call to taint : | call to taint : | -| hash_flow.rb:142:10:142:13 | ...[...] | hash_flow.rb:136:15:136:25 | call to taint : | hash_flow.rb:142:10:142:13 | ...[...] | $@ | hash_flow.rb:136:15:136:25 | call to taint : | call to taint : | -| hash_flow.rb:144:10:144:13 | ...[...] | hash_flow.rb:136:15:136:25 | call to taint : | hash_flow.rb:144:10:144:13 | ...[...] | $@ | hash_flow.rb:136:15:136:25 | call to taint : | call to taint : | -| hash_flow.rb:166:10:166:14 | ...[...] | hash_flow.rb:162:15:162:25 | call to taint : | hash_flow.rb:166:10:166:14 | ...[...] | $@ | hash_flow.rb:162:15:162:25 | call to taint : | call to taint : | -| hash_flow.rb:178:10:178:10 | a | hash_flow.rb:174:15:174:25 | call to taint : | hash_flow.rb:178:10:178:10 | a | $@ | hash_flow.rb:174:15:174:25 | call to taint : | call to taint : | -| hash_flow.rb:191:14:191:18 | value | hash_flow.rb:186:15:186:25 | call to taint : | hash_flow.rb:191:14:191:18 | value | $@ | hash_flow.rb:186:15:186:25 | call to taint : | call to taint : | -| hash_flow.rb:193:10:193:14 | ...[...] | hash_flow.rb:186:15:186:25 | call to taint : | hash_flow.rb:193:10:193:14 | ...[...] | $@ | hash_flow.rb:186:15:186:25 | call to taint : | call to taint : | -| hash_flow.rb:194:10:194:17 | ...[...] | hash_flow.rb:186:15:186:25 | call to taint : | hash_flow.rb:194:10:194:17 | ...[...] | $@ | hash_flow.rb:186:15:186:25 | call to taint : | call to taint : | -| hash_flow.rb:209:10:209:21 | call to dig | hash_flow.rb:202:15:202:25 | call to taint : | hash_flow.rb:209:10:209:21 | call to dig | $@ | hash_flow.rb:202:15:202:25 | call to taint : | call to taint : | -| hash_flow.rb:211:10:211:24 | call to dig | hash_flow.rb:205:19:205:29 | call to taint : | hash_flow.rb:211:10:211:24 | call to dig | $@ | hash_flow.rb:205:19:205:29 | call to taint : | call to taint : | -| hash_flow.rb:224:14:224:18 | value | hash_flow.rb:219:15:219:25 | call to taint : | hash_flow.rb:224:14:224:18 | value | $@ | hash_flow.rb:219:15:219:25 | call to taint : | call to taint : | -| hash_flow.rb:226:10:226:14 | ...[...] | hash_flow.rb:219:15:219:25 | call to taint : | hash_flow.rb:226:10:226:14 | ...[...] | $@ | hash_flow.rb:219:15:219:25 | call to taint : | call to taint : | -| hash_flow.rb:240:10:240:14 | ...[...] | hash_flow.rb:234:15:234:25 | call to taint : | hash_flow.rb:240:10:240:14 | ...[...] | $@ | hash_flow.rb:234:15:234:25 | call to taint : | call to taint : | -| hash_flow.rb:253:14:253:18 | value | hash_flow.rb:248:15:248:25 | call to taint : | hash_flow.rb:253:14:253:18 | value | $@ | hash_flow.rb:248:15:248:25 | call to taint : | call to taint : | -| hash_flow.rb:255:10:255:14 | ...[...] | hash_flow.rb:248:15:248:25 | call to taint : | hash_flow.rb:255:10:255:14 | ...[...] | $@ | hash_flow.rb:248:15:248:25 | call to taint : | call to taint : | -| hash_flow.rb:267:14:267:18 | value | hash_flow.rb:263:15:263:25 | call to taint : | hash_flow.rb:267:14:267:18 | value | $@ | hash_flow.rb:263:15:263:25 | call to taint : | call to taint : | -| hash_flow.rb:269:10:269:14 | ...[...] | hash_flow.rb:263:15:263:25 | call to taint : | hash_flow.rb:269:10:269:14 | ...[...] | $@ | hash_flow.rb:263:15:263:25 | call to taint : | call to taint : | -| hash_flow.rb:285:10:285:14 | ...[...] | hash_flow.rb:279:15:279:25 | call to taint : | hash_flow.rb:285:10:285:14 | ...[...] | $@ | hash_flow.rb:279:15:279:25 | call to taint : | call to taint : | -| hash_flow.rb:298:14:298:14 | x | hash_flow.rb:297:20:297:30 | call to taint : | hash_flow.rb:298:14:298:14 | x | $@ | hash_flow.rb:297:20:297:30 | call to taint : | call to taint : | -| hash_flow.rb:300:10:300:10 | b | hash_flow.rb:293:15:293:25 | call to taint : | hash_flow.rb:300:10:300:10 | b | $@ | hash_flow.rb:293:15:293:25 | call to taint : | call to taint : | -| hash_flow.rb:300:10:300:10 | b | hash_flow.rb:295:15:295:25 | call to taint : | hash_flow.rb:300:10:300:10 | b | $@ | hash_flow.rb:295:15:295:25 | call to taint : | call to taint : | -| hash_flow.rb:302:10:302:10 | b | hash_flow.rb:293:15:293:25 | call to taint : | hash_flow.rb:302:10:302:10 | b | $@ | hash_flow.rb:293:15:293:25 | call to taint : | call to taint : | -| hash_flow.rb:304:10:304:10 | b | hash_flow.rb:293:15:293:25 | call to taint : | hash_flow.rb:304:10:304:10 | b | $@ | hash_flow.rb:293:15:293:25 | call to taint : | call to taint : | -| hash_flow.rb:304:10:304:10 | b | hash_flow.rb:303:24:303:34 | call to taint : | hash_flow.rb:304:10:304:10 | b | $@ | hash_flow.rb:303:24:303:34 | call to taint : | call to taint : | -| hash_flow.rb:306:10:306:10 | b | hash_flow.rb:305:24:305:34 | call to taint : | hash_flow.rb:306:10:306:10 | b | $@ | hash_flow.rb:305:24:305:34 | call to taint : | call to taint : | -| hash_flow.rb:308:10:308:10 | b | hash_flow.rb:293:15:293:25 | call to taint : | hash_flow.rb:308:10:308:10 | b | $@ | hash_flow.rb:293:15:293:25 | call to taint : | call to taint : | -| hash_flow.rb:308:10:308:10 | b | hash_flow.rb:295:15:295:25 | call to taint : | hash_flow.rb:308:10:308:10 | b | $@ | hash_flow.rb:295:15:295:25 | call to taint : | call to taint : | -| hash_flow.rb:308:10:308:10 | b | hash_flow.rb:307:23:307:33 | call to taint : | hash_flow.rb:308:10:308:10 | b | $@ | hash_flow.rb:307:23:307:33 | call to taint : | call to taint : | -| hash_flow.rb:320:14:320:14 | x | hash_flow.rb:319:27:319:37 | call to taint : | hash_flow.rb:320:14:320:14 | x | $@ | hash_flow.rb:319:27:319:37 | call to taint : | call to taint : | -| hash_flow.rb:323:10:323:13 | ...[...] | hash_flow.rb:315:15:315:25 | call to taint : | hash_flow.rb:323:10:323:13 | ...[...] | $@ | hash_flow.rb:315:15:315:25 | call to taint : | call to taint : | -| hash_flow.rb:323:10:323:13 | ...[...] | hash_flow.rb:317:15:317:25 | call to taint : | hash_flow.rb:323:10:323:13 | ...[...] | $@ | hash_flow.rb:317:15:317:25 | call to taint : | call to taint : | -| hash_flow.rb:323:10:323:13 | ...[...] | hash_flow.rb:321:9:321:19 | call to taint : | hash_flow.rb:323:10:323:13 | ...[...] | $@ | hash_flow.rb:321:9:321:19 | call to taint : | call to taint : | -| hash_flow.rb:325:10:325:13 | ...[...] | hash_flow.rb:315:15:315:25 | call to taint : | hash_flow.rb:325:10:325:13 | ...[...] | $@ | hash_flow.rb:315:15:315:25 | call to taint : | call to taint : | -| hash_flow.rb:327:10:327:13 | ...[...] | hash_flow.rb:315:15:315:25 | call to taint : | hash_flow.rb:327:10:327:13 | ...[...] | $@ | hash_flow.rb:315:15:315:25 | call to taint : | call to taint : | -| hash_flow.rb:327:10:327:13 | ...[...] | hash_flow.rb:317:15:317:25 | call to taint : | hash_flow.rb:327:10:327:13 | ...[...] | $@ | hash_flow.rb:317:15:317:25 | call to taint : | call to taint : | -| hash_flow.rb:340:14:340:18 | value | hash_flow.rb:334:15:334:25 | call to taint : | hash_flow.rb:340:14:340:18 | value | $@ | hash_flow.rb:334:15:334:25 | call to taint : | call to taint : | -| hash_flow.rb:340:14:340:18 | value | hash_flow.rb:336:15:336:25 | call to taint : | hash_flow.rb:340:14:340:18 | value | $@ | hash_flow.rb:336:15:336:25 | call to taint : | call to taint : | -| hash_flow.rb:343:10:343:16 | ( ... ) | hash_flow.rb:334:15:334:25 | call to taint : | hash_flow.rb:343:10:343:16 | ( ... ) | $@ | hash_flow.rb:334:15:334:25 | call to taint : | call to taint : | -| hash_flow.rb:356:14:356:18 | value | hash_flow.rb:350:15:350:25 | call to taint : | hash_flow.rb:356:14:356:18 | value | $@ | hash_flow.rb:350:15:350:25 | call to taint : | call to taint : | -| hash_flow.rb:356:14:356:18 | value | hash_flow.rb:352:15:352:25 | call to taint : | hash_flow.rb:356:14:356:18 | value | $@ | hash_flow.rb:352:15:352:25 | call to taint : | call to taint : | -| hash_flow.rb:359:10:359:19 | ( ... ) | hash_flow.rb:350:15:350:25 | call to taint : | hash_flow.rb:359:10:359:19 | ( ... ) | $@ | hash_flow.rb:350:15:350:25 | call to taint : | call to taint : | -| hash_flow.rb:371:10:371:15 | ( ... ) | hash_flow.rb:366:15:366:25 | call to taint : | hash_flow.rb:371:10:371:15 | ( ... ) | $@ | hash_flow.rb:366:15:366:25 | call to taint : | call to taint : | -| hash_flow.rb:371:10:371:15 | ( ... ) | hash_flow.rb:368:15:368:25 | call to taint : | hash_flow.rb:371:10:371:15 | ( ... ) | $@ | hash_flow.rb:368:15:368:25 | call to taint : | call to taint : | -| hash_flow.rb:384:14:384:18 | value | hash_flow.rb:378:15:378:25 | call to taint : | hash_flow.rb:384:14:384:18 | value | $@ | hash_flow.rb:378:15:378:25 | call to taint : | call to taint : | -| hash_flow.rb:384:14:384:18 | value | hash_flow.rb:380:15:380:25 | call to taint : | hash_flow.rb:384:14:384:18 | value | $@ | hash_flow.rb:380:15:380:25 | call to taint : | call to taint : | -| hash_flow.rb:387:10:387:19 | ( ... ) | hash_flow.rb:378:15:378:25 | call to taint : | hash_flow.rb:387:10:387:19 | ( ... ) | $@ | hash_flow.rb:378:15:378:25 | call to taint : | call to taint : | -| hash_flow.rb:388:10:388:16 | ( ... ) | hash_flow.rb:378:15:378:25 | call to taint : | hash_flow.rb:388:10:388:16 | ( ... ) | $@ | hash_flow.rb:378:15:378:25 | call to taint : | call to taint : | -| hash_flow.rb:406:14:406:22 | old_value | hash_flow.rb:395:15:395:25 | call to taint : | hash_flow.rb:406:14:406:22 | old_value | $@ | hash_flow.rb:395:15:395:25 | call to taint : | call to taint : | -| hash_flow.rb:406:14:406:22 | old_value | hash_flow.rb:397:15:397:25 | call to taint : | hash_flow.rb:406:14:406:22 | old_value | $@ | hash_flow.rb:397:15:397:25 | call to taint : | call to taint : | -| hash_flow.rb:406:14:406:22 | old_value | hash_flow.rb:400:15:400:25 | call to taint : | hash_flow.rb:406:14:406:22 | old_value | $@ | hash_flow.rb:400:15:400:25 | call to taint : | call to taint : | -| hash_flow.rb:406:14:406:22 | old_value | hash_flow.rb:402:15:402:25 | call to taint : | hash_flow.rb:406:14:406:22 | old_value | $@ | hash_flow.rb:402:15:402:25 | call to taint : | call to taint : | -| hash_flow.rb:407:14:407:22 | new_value | hash_flow.rb:395:15:395:25 | call to taint : | hash_flow.rb:407:14:407:22 | new_value | $@ | hash_flow.rb:395:15:395:25 | call to taint : | call to taint : | -| hash_flow.rb:407:14:407:22 | new_value | hash_flow.rb:397:15:397:25 | call to taint : | hash_flow.rb:407:14:407:22 | new_value | $@ | hash_flow.rb:397:15:397:25 | call to taint : | call to taint : | -| hash_flow.rb:407:14:407:22 | new_value | hash_flow.rb:400:15:400:25 | call to taint : | hash_flow.rb:407:14:407:22 | new_value | $@ | hash_flow.rb:400:15:400:25 | call to taint : | call to taint : | -| hash_flow.rb:407:14:407:22 | new_value | hash_flow.rb:402:15:402:25 | call to taint : | hash_flow.rb:407:14:407:22 | new_value | $@ | hash_flow.rb:402:15:402:25 | call to taint : | call to taint : | -| hash_flow.rb:409:10:409:19 | ( ... ) | hash_flow.rb:395:15:395:25 | call to taint : | hash_flow.rb:409:10:409:19 | ( ... ) | $@ | hash_flow.rb:395:15:395:25 | call to taint : | call to taint : | -| hash_flow.rb:411:10:411:19 | ( ... ) | hash_flow.rb:397:15:397:25 | call to taint : | hash_flow.rb:411:10:411:19 | ( ... ) | $@ | hash_flow.rb:397:15:397:25 | call to taint : | call to taint : | -| hash_flow.rb:412:10:412:19 | ( ... ) | hash_flow.rb:400:15:400:25 | call to taint : | hash_flow.rb:412:10:412:19 | ( ... ) | $@ | hash_flow.rb:400:15:400:25 | call to taint : | call to taint : | -| hash_flow.rb:414:10:414:19 | ( ... ) | hash_flow.rb:402:15:402:25 | call to taint : | hash_flow.rb:414:10:414:19 | ( ... ) | $@ | hash_flow.rb:402:15:402:25 | call to taint : | call to taint : | -| hash_flow.rb:432:14:432:22 | old_value | hash_flow.rb:421:15:421:25 | call to taint : | hash_flow.rb:432:14:432:22 | old_value | $@ | hash_flow.rb:421:15:421:25 | call to taint : | call to taint : | -| hash_flow.rb:432:14:432:22 | old_value | hash_flow.rb:423:15:423:25 | call to taint : | hash_flow.rb:432:14:432:22 | old_value | $@ | hash_flow.rb:423:15:423:25 | call to taint : | call to taint : | -| hash_flow.rb:432:14:432:22 | old_value | hash_flow.rb:426:15:426:25 | call to taint : | hash_flow.rb:432:14:432:22 | old_value | $@ | hash_flow.rb:426:15:426:25 | call to taint : | call to taint : | -| hash_flow.rb:432:14:432:22 | old_value | hash_flow.rb:428:15:428:25 | call to taint : | hash_flow.rb:432:14:432:22 | old_value | $@ | hash_flow.rb:428:15:428:25 | call to taint : | call to taint : | -| hash_flow.rb:433:14:433:22 | new_value | hash_flow.rb:421:15:421:25 | call to taint : | hash_flow.rb:433:14:433:22 | new_value | $@ | hash_flow.rb:421:15:421:25 | call to taint : | call to taint : | -| hash_flow.rb:433:14:433:22 | new_value | hash_flow.rb:423:15:423:25 | call to taint : | hash_flow.rb:433:14:433:22 | new_value | $@ | hash_flow.rb:423:15:423:25 | call to taint : | call to taint : | -| hash_flow.rb:433:14:433:22 | new_value | hash_flow.rb:426:15:426:25 | call to taint : | hash_flow.rb:433:14:433:22 | new_value | $@ | hash_flow.rb:426:15:426:25 | call to taint : | call to taint : | -| hash_flow.rb:433:14:433:22 | new_value | hash_flow.rb:428:15:428:25 | call to taint : | hash_flow.rb:433:14:433:22 | new_value | $@ | hash_flow.rb:428:15:428:25 | call to taint : | call to taint : | -| hash_flow.rb:435:10:435:19 | ( ... ) | hash_flow.rb:421:15:421:25 | call to taint : | hash_flow.rb:435:10:435:19 | ( ... ) | $@ | hash_flow.rb:421:15:421:25 | call to taint : | call to taint : | -| hash_flow.rb:437:10:437:19 | ( ... ) | hash_flow.rb:423:15:423:25 | call to taint : | hash_flow.rb:437:10:437:19 | ( ... ) | $@ | hash_flow.rb:423:15:423:25 | call to taint : | call to taint : | -| hash_flow.rb:438:10:438:19 | ( ... ) | hash_flow.rb:426:15:426:25 | call to taint : | hash_flow.rb:438:10:438:19 | ( ... ) | $@ | hash_flow.rb:426:15:426:25 | call to taint : | call to taint : | -| hash_flow.rb:440:10:440:19 | ( ... ) | hash_flow.rb:428:15:428:25 | call to taint : | hash_flow.rb:440:10:440:19 | ( ... ) | $@ | hash_flow.rb:428:15:428:25 | call to taint : | call to taint : | -| hash_flow.rb:442:10:442:20 | ( ... ) | hash_flow.rb:421:15:421:25 | call to taint : | hash_flow.rb:442:10:442:20 | ( ... ) | $@ | hash_flow.rb:421:15:421:25 | call to taint : | call to taint : | -| hash_flow.rb:444:10:444:20 | ( ... ) | hash_flow.rb:423:15:423:25 | call to taint : | hash_flow.rb:444:10:444:20 | ( ... ) | $@ | hash_flow.rb:423:15:423:25 | call to taint : | call to taint : | -| hash_flow.rb:445:10:445:20 | ( ... ) | hash_flow.rb:426:15:426:25 | call to taint : | hash_flow.rb:445:10:445:20 | ( ... ) | $@ | hash_flow.rb:426:15:426:25 | call to taint : | call to taint : | -| hash_flow.rb:447:10:447:20 | ( ... ) | hash_flow.rb:428:15:428:25 | call to taint : | hash_flow.rb:447:10:447:20 | ( ... ) | $@ | hash_flow.rb:428:15:428:25 | call to taint : | call to taint : | -| hash_flow.rb:459:10:459:13 | ...[...] | hash_flow.rb:454:15:454:25 | call to taint : | hash_flow.rb:459:10:459:13 | ...[...] | $@ | hash_flow.rb:454:15:454:25 | call to taint : | call to taint : | -| hash_flow.rb:471:14:471:18 | value | hash_flow.rb:466:15:466:25 | call to taint : | hash_flow.rb:471:14:471:18 | value | $@ | hash_flow.rb:466:15:466:25 | call to taint : | call to taint : | -| hash_flow.rb:474:10:474:14 | ...[...] | hash_flow.rb:466:15:466:25 | call to taint : | hash_flow.rb:474:10:474:14 | ...[...] | $@ | hash_flow.rb:466:15:466:25 | call to taint : | call to taint : | -| hash_flow.rb:486:14:486:18 | value | hash_flow.rb:481:15:481:25 | call to taint : | hash_flow.rb:486:14:486:18 | value | $@ | hash_flow.rb:481:15:481:25 | call to taint : | call to taint : | -| hash_flow.rb:489:10:489:14 | ...[...] | hash_flow.rb:481:15:481:25 | call to taint : | hash_flow.rb:489:10:489:14 | ...[...] | $@ | hash_flow.rb:481:15:481:25 | call to taint : | call to taint : | -| hash_flow.rb:490:10:490:17 | ...[...] | hash_flow.rb:481:15:481:25 | call to taint : | hash_flow.rb:490:10:490:17 | ...[...] | $@ | hash_flow.rb:481:15:481:25 | call to taint : | call to taint : | -| hash_flow.rb:505:10:505:20 | ( ... ) | hash_flow.rb:497:15:497:25 | call to taint : | hash_flow.rb:505:10:505:20 | ( ... ) | $@ | hash_flow.rb:497:15:497:25 | call to taint : | call to taint : | -| hash_flow.rb:507:10:507:20 | ( ... ) | hash_flow.rb:499:15:499:25 | call to taint : | hash_flow.rb:507:10:507:20 | ( ... ) | $@ | hash_flow.rb:499:15:499:25 | call to taint : | call to taint : | -| hash_flow.rb:518:14:518:18 | value | hash_flow.rb:512:15:512:25 | call to taint : | hash_flow.rb:518:14:518:18 | value | $@ | hash_flow.rb:512:15:512:25 | call to taint : | call to taint : | -| hash_flow.rb:518:14:518:18 | value | hash_flow.rb:514:15:514:25 | call to taint : | hash_flow.rb:518:14:518:18 | value | $@ | hash_flow.rb:514:15:514:25 | call to taint : | call to taint : | -| hash_flow.rb:521:10:521:16 | ( ... ) | hash_flow.rb:512:15:512:25 | call to taint : | hash_flow.rb:521:10:521:16 | ( ... ) | $@ | hash_flow.rb:512:15:512:25 | call to taint : | call to taint : | -| hash_flow.rb:534:14:534:18 | value | hash_flow.rb:528:15:528:25 | call to taint : | hash_flow.rb:534:14:534:18 | value | $@ | hash_flow.rb:528:15:528:25 | call to taint : | call to taint : | -| hash_flow.rb:534:14:534:18 | value | hash_flow.rb:530:15:530:25 | call to taint : | hash_flow.rb:534:14:534:18 | value | $@ | hash_flow.rb:530:15:530:25 | call to taint : | call to taint : | -| hash_flow.rb:537:10:537:19 | ( ... ) | hash_flow.rb:528:15:528:25 | call to taint : | hash_flow.rb:537:10:537:19 | ( ... ) | $@ | hash_flow.rb:528:15:528:25 | call to taint : | call to taint : | -| hash_flow.rb:549:10:549:19 | ( ... ) | hash_flow.rb:544:15:544:25 | call to taint : | hash_flow.rb:549:10:549:19 | ( ... ) | $@ | hash_flow.rb:544:15:544:25 | call to taint : | call to taint : | -| hash_flow.rb:551:10:551:15 | ( ... ) | hash_flow.rb:544:15:544:25 | call to taint : | hash_flow.rb:551:10:551:15 | ( ... ) | $@ | hash_flow.rb:544:15:544:25 | call to taint : | call to taint : | -| hash_flow.rb:551:10:551:15 | ( ... ) | hash_flow.rb:546:15:546:25 | call to taint : | hash_flow.rb:551:10:551:15 | ( ... ) | $@ | hash_flow.rb:546:15:546:25 | call to taint : | call to taint : | -| hash_flow.rb:563:10:563:16 | ( ... ) | hash_flow.rb:558:15:558:25 | call to taint : | hash_flow.rb:563:10:563:16 | ( ... ) | $@ | hash_flow.rb:558:15:558:25 | call to taint : | call to taint : | -| hash_flow.rb:568:10:568:16 | ( ... ) | hash_flow.rb:558:15:558:25 | call to taint : | hash_flow.rb:568:10:568:16 | ( ... ) | $@ | hash_flow.rb:558:15:558:25 | call to taint : | call to taint : | -| hash_flow.rb:570:10:570:16 | ( ... ) | hash_flow.rb:560:15:560:25 | call to taint : | hash_flow.rb:570:10:570:16 | ( ... ) | $@ | hash_flow.rb:560:15:560:25 | call to taint : | call to taint : | -| hash_flow.rb:583:10:583:18 | ( ... ) | hash_flow.rb:577:15:577:25 | call to taint : | hash_flow.rb:583:10:583:18 | ( ... ) | $@ | hash_flow.rb:577:15:577:25 | call to taint : | call to taint : | -| hash_flow.rb:583:10:583:18 | ( ... ) | hash_flow.rb:579:15:579:25 | call to taint : | hash_flow.rb:583:10:583:18 | ( ... ) | $@ | hash_flow.rb:579:15:579:25 | call to taint : | call to taint : | -| hash_flow.rb:595:10:595:16 | ( ... ) | hash_flow.rb:590:15:590:25 | call to taint : | hash_flow.rb:595:10:595:16 | ( ... ) | $@ | hash_flow.rb:590:15:590:25 | call to taint : | call to taint : | -| hash_flow.rb:597:10:597:16 | ( ... ) | hash_flow.rb:592:15:592:25 | call to taint : | hash_flow.rb:597:10:597:16 | ( ... ) | $@ | hash_flow.rb:592:15:592:25 | call to taint : | call to taint : | -| hash_flow.rb:601:14:601:18 | value | hash_flow.rb:590:15:590:25 | call to taint : | hash_flow.rb:601:14:601:18 | value | $@ | hash_flow.rb:590:15:590:25 | call to taint : | call to taint : | -| hash_flow.rb:601:14:601:18 | value | hash_flow.rb:592:15:592:25 | call to taint : | hash_flow.rb:601:14:601:18 | value | $@ | hash_flow.rb:592:15:592:25 | call to taint : | call to taint : | -| hash_flow.rb:604:10:604:16 | ( ... ) | hash_flow.rb:602:14:602:24 | call to taint : | hash_flow.rb:604:10:604:16 | ( ... ) | $@ | hash_flow.rb:602:14:602:24 | call to taint : | call to taint : | -| hash_flow.rb:616:10:616:17 | ( ... ) | hash_flow.rb:611:15:611:25 | call to taint : | hash_flow.rb:616:10:616:17 | ( ... ) | $@ | hash_flow.rb:611:15:611:25 | call to taint : | call to taint : | -| hash_flow.rb:616:10:616:17 | ( ... ) | hash_flow.rb:613:15:613:25 | call to taint : | hash_flow.rb:616:10:616:17 | ( ... ) | $@ | hash_flow.rb:613:15:613:25 | call to taint : | call to taint : | -| hash_flow.rb:617:10:617:17 | ( ... ) | hash_flow.rb:611:15:611:25 | call to taint : | hash_flow.rb:617:10:617:17 | ( ... ) | $@ | hash_flow.rb:611:15:611:25 | call to taint : | call to taint : | -| hash_flow.rb:617:10:617:17 | ( ... ) | hash_flow.rb:613:15:613:25 | call to taint : | hash_flow.rb:617:10:617:17 | ( ... ) | $@ | hash_flow.rb:613:15:613:25 | call to taint : | call to taint : | -| hash_flow.rb:618:10:618:17 | ( ... ) | hash_flow.rb:611:15:611:25 | call to taint : | hash_flow.rb:618:10:618:17 | ( ... ) | $@ | hash_flow.rb:611:15:611:25 | call to taint : | call to taint : | -| hash_flow.rb:618:10:618:17 | ( ... ) | hash_flow.rb:613:15:613:25 | call to taint : | hash_flow.rb:618:10:618:17 | ( ... ) | $@ | hash_flow.rb:613:15:613:25 | call to taint : | call to taint : | -| hash_flow.rb:630:10:630:20 | ( ... ) | hash_flow.rb:625:15:625:25 | call to taint : | hash_flow.rb:630:10:630:20 | ( ... ) | $@ | hash_flow.rb:625:15:625:25 | call to taint : | call to taint : | -| hash_flow.rb:630:10:630:20 | ( ... ) | hash_flow.rb:627:15:627:25 | call to taint : | hash_flow.rb:630:10:630:20 | ( ... ) | $@ | hash_flow.rb:627:15:627:25 | call to taint : | call to taint : | -| hash_flow.rb:631:10:631:20 | ( ... ) | hash_flow.rb:625:15:625:25 | call to taint : | hash_flow.rb:631:10:631:20 | ( ... ) | $@ | hash_flow.rb:625:15:625:25 | call to taint : | call to taint : | -| hash_flow.rb:631:10:631:20 | ( ... ) | hash_flow.rb:627:15:627:25 | call to taint : | hash_flow.rb:631:10:631:20 | ( ... ) | $@ | hash_flow.rb:627:15:627:25 | call to taint : | call to taint : | -| hash_flow.rb:632:10:632:20 | ( ... ) | hash_flow.rb:625:15:625:25 | call to taint : | hash_flow.rb:632:10:632:20 | ( ... ) | $@ | hash_flow.rb:625:15:625:25 | call to taint : | call to taint : | -| hash_flow.rb:632:10:632:20 | ( ... ) | hash_flow.rb:627:15:627:25 | call to taint : | hash_flow.rb:632:10:632:20 | ( ... ) | $@ | hash_flow.rb:627:15:627:25 | call to taint : | call to taint : | -| hash_flow.rb:644:14:644:18 | value | hash_flow.rb:639:15:639:25 | call to taint : | hash_flow.rb:644:14:644:18 | value | $@ | hash_flow.rb:639:15:639:25 | call to taint : | call to taint : | -| hash_flow.rb:644:14:644:18 | value | hash_flow.rb:641:15:641:25 | call to taint : | hash_flow.rb:644:14:644:18 | value | $@ | hash_flow.rb:641:15:641:25 | call to taint : | call to taint : | -| hash_flow.rb:647:10:647:19 | ( ... ) | hash_flow.rb:639:15:639:25 | call to taint : | hash_flow.rb:647:10:647:19 | ( ... ) | $@ | hash_flow.rb:639:15:639:25 | call to taint : | call to taint : | -| hash_flow.rb:648:10:648:16 | ( ... ) | hash_flow.rb:645:9:645:19 | call to taint : | hash_flow.rb:648:10:648:16 | ( ... ) | $@ | hash_flow.rb:645:9:645:19 | call to taint : | call to taint : | -| hash_flow.rb:660:14:660:18 | value | hash_flow.rb:655:15:655:25 | call to taint : | hash_flow.rb:660:14:660:18 | value | $@ | hash_flow.rb:655:15:655:25 | call to taint : | call to taint : | -| hash_flow.rb:660:14:660:18 | value | hash_flow.rb:657:15:657:25 | call to taint : | hash_flow.rb:660:14:660:18 | value | $@ | hash_flow.rb:657:15:657:25 | call to taint : | call to taint : | -| hash_flow.rb:663:10:663:19 | ( ... ) | hash_flow.rb:661:9:661:19 | call to taint : | hash_flow.rb:663:10:663:19 | ( ... ) | $@ | hash_flow.rb:661:9:661:19 | call to taint : | call to taint : | -| hash_flow.rb:681:14:681:22 | old_value | hash_flow.rb:670:15:670:25 | call to taint : | hash_flow.rb:681:14:681:22 | old_value | $@ | hash_flow.rb:670:15:670:25 | call to taint : | call to taint : | -| hash_flow.rb:681:14:681:22 | old_value | hash_flow.rb:672:15:672:25 | call to taint : | hash_flow.rb:681:14:681:22 | old_value | $@ | hash_flow.rb:672:15:672:25 | call to taint : | call to taint : | -| hash_flow.rb:681:14:681:22 | old_value | hash_flow.rb:675:15:675:25 | call to taint : | hash_flow.rb:681:14:681:22 | old_value | $@ | hash_flow.rb:675:15:675:25 | call to taint : | call to taint : | -| hash_flow.rb:681:14:681:22 | old_value | hash_flow.rb:677:15:677:25 | call to taint : | hash_flow.rb:681:14:681:22 | old_value | $@ | hash_flow.rb:677:15:677:25 | call to taint : | call to taint : | -| hash_flow.rb:682:14:682:22 | new_value | hash_flow.rb:670:15:670:25 | call to taint : | hash_flow.rb:682:14:682:22 | new_value | $@ | hash_flow.rb:670:15:670:25 | call to taint : | call to taint : | -| hash_flow.rb:682:14:682:22 | new_value | hash_flow.rb:672:15:672:25 | call to taint : | hash_flow.rb:682:14:682:22 | new_value | $@ | hash_flow.rb:672:15:672:25 | call to taint : | call to taint : | -| hash_flow.rb:682:14:682:22 | new_value | hash_flow.rb:675:15:675:25 | call to taint : | hash_flow.rb:682:14:682:22 | new_value | $@ | hash_flow.rb:675:15:675:25 | call to taint : | call to taint : | -| hash_flow.rb:682:14:682:22 | new_value | hash_flow.rb:677:15:677:25 | call to taint : | hash_flow.rb:682:14:682:22 | new_value | $@ | hash_flow.rb:677:15:677:25 | call to taint : | call to taint : | -| hash_flow.rb:684:10:684:19 | ( ... ) | hash_flow.rb:670:15:670:25 | call to taint : | hash_flow.rb:684:10:684:19 | ( ... ) | $@ | hash_flow.rb:670:15:670:25 | call to taint : | call to taint : | -| hash_flow.rb:686:10:686:19 | ( ... ) | hash_flow.rb:672:15:672:25 | call to taint : | hash_flow.rb:686:10:686:19 | ( ... ) | $@ | hash_flow.rb:672:15:672:25 | call to taint : | call to taint : | -| hash_flow.rb:687:10:687:19 | ( ... ) | hash_flow.rb:675:15:675:25 | call to taint : | hash_flow.rb:687:10:687:19 | ( ... ) | $@ | hash_flow.rb:675:15:675:25 | call to taint : | call to taint : | -| hash_flow.rb:689:10:689:19 | ( ... ) | hash_flow.rb:677:15:677:25 | call to taint : | hash_flow.rb:689:10:689:19 | ( ... ) | $@ | hash_flow.rb:677:15:677:25 | call to taint : | call to taint : | -| hash_flow.rb:691:10:691:20 | ( ... ) | hash_flow.rb:670:15:670:25 | call to taint : | hash_flow.rb:691:10:691:20 | ( ... ) | $@ | hash_flow.rb:670:15:670:25 | call to taint : | call to taint : | -| hash_flow.rb:693:10:693:20 | ( ... ) | hash_flow.rb:672:15:672:25 | call to taint : | hash_flow.rb:693:10:693:20 | ( ... ) | $@ | hash_flow.rb:672:15:672:25 | call to taint : | call to taint : | -| hash_flow.rb:694:10:694:20 | ( ... ) | hash_flow.rb:675:15:675:25 | call to taint : | hash_flow.rb:694:10:694:20 | ( ... ) | $@ | hash_flow.rb:675:15:675:25 | call to taint : | call to taint : | -| hash_flow.rb:696:10:696:20 | ( ... ) | hash_flow.rb:677:15:677:25 | call to taint : | hash_flow.rb:696:10:696:20 | ( ... ) | $@ | hash_flow.rb:677:15:677:25 | call to taint : | call to taint : | -| hash_flow.rb:708:10:708:15 | ( ... ) | hash_flow.rb:703:15:703:25 | call to taint : | hash_flow.rb:708:10:708:15 | ( ... ) | $@ | hash_flow.rb:703:15:703:25 | call to taint : | call to taint : | -| hash_flow.rb:708:10:708:15 | ( ... ) | hash_flow.rb:705:15:705:25 | call to taint : | hash_flow.rb:708:10:708:15 | ( ... ) | $@ | hash_flow.rb:705:15:705:25 | call to taint : | call to taint : | -| hash_flow.rb:720:10:720:13 | ...[...] | hash_flow.rb:715:15:715:25 | call to taint : | hash_flow.rb:720:10:720:13 | ...[...] | $@ | hash_flow.rb:715:15:715:25 | call to taint : | call to taint : | -| hash_flow.rb:722:10:722:13 | ...[...] | hash_flow.rb:715:15:715:25 | call to taint : | hash_flow.rb:722:10:722:13 | ...[...] | $@ | hash_flow.rb:715:15:715:25 | call to taint : | call to taint : | -| hash_flow.rb:722:10:722:13 | ...[...] | hash_flow.rb:717:15:717:25 | call to taint : | hash_flow.rb:722:10:722:13 | ...[...] | $@ | hash_flow.rb:717:15:717:25 | call to taint : | call to taint : | -| hash_flow.rb:739:10:739:17 | ...[...] | hash_flow.rb:729:15:729:25 | call to taint : | hash_flow.rb:739:10:739:17 | ...[...] | $@ | hash_flow.rb:729:15:729:25 | call to taint : | call to taint : | -| hash_flow.rb:741:10:741:17 | ...[...] | hash_flow.rb:731:15:731:25 | call to taint : | hash_flow.rb:741:10:741:17 | ...[...] | $@ | hash_flow.rb:731:15:731:25 | call to taint : | call to taint : | -| hash_flow.rb:742:10:742:17 | ...[...] | hash_flow.rb:734:15:734:25 | call to taint : | hash_flow.rb:742:10:742:17 | ...[...] | $@ | hash_flow.rb:734:15:734:25 | call to taint : | call to taint : | -| hash_flow.rb:744:10:744:17 | ...[...] | hash_flow.rb:736:15:736:25 | call to taint : | hash_flow.rb:744:10:744:17 | ...[...] | $@ | hash_flow.rb:736:15:736:25 | call to taint : | call to taint : | -| hash_flow.rb:745:10:745:17 | ...[...] | hash_flow.rb:738:29:738:39 | call to taint : | hash_flow.rb:745:10:745:17 | ...[...] | $@ | hash_flow.rb:738:29:738:39 | call to taint : | call to taint : | +| hash_flow.rb:73:10:73:19 | ...[...] | hash_flow.rb:72:25:72:34 | call to taint : | hash_flow.rb:73:10:73:19 | ...[...] | $@ | hash_flow.rb:72:25:72:34 | call to taint : | call to taint : | +| hash_flow.rb:77:10:77:19 | ...[...] | hash_flow.rb:76:26:76:35 | call to taint : | hash_flow.rb:77:10:77:19 | ...[...] | $@ | hash_flow.rb:76:26:76:35 | call to taint : | call to taint : | +| hash_flow.rb:85:10:85:18 | ...[...] | hash_flow.rb:84:26:84:35 | call to taint : | hash_flow.rb:85:10:85:18 | ...[...] | $@ | hash_flow.rb:84:26:84:35 | call to taint : | call to taint : | +| hash_flow.rb:97:10:97:18 | ...[...] | hash_flow.rb:93:15:93:24 | call to taint : | hash_flow.rb:97:10:97:18 | ...[...] | $@ | hash_flow.rb:93:15:93:24 | call to taint : | call to taint : | +| hash_flow.rb:106:10:106:10 | b | hash_flow.rb:105:21:105:30 | call to taint : | hash_flow.rb:106:10:106:10 | b | $@ | hash_flow.rb:105:21:105:30 | call to taint : | call to taint : | +| hash_flow.rb:114:10:114:17 | ...[...] | hash_flow.rb:113:24:113:33 | call to taint : | hash_flow.rb:114:10:114:17 | ...[...] | $@ | hash_flow.rb:113:24:113:33 | call to taint : | call to taint : | +| hash_flow.rb:115:10:115:10 | b | hash_flow.rb:113:24:113:33 | call to taint : | hash_flow.rb:115:10:115:10 | b | $@ | hash_flow.rb:113:24:113:33 | call to taint : | call to taint : | +| hash_flow.rb:119:10:119:17 | ...[...] | hash_flow.rb:118:23:118:32 | call to taint : | hash_flow.rb:119:10:119:17 | ...[...] | $@ | hash_flow.rb:118:23:118:32 | call to taint : | call to taint : | +| hash_flow.rb:120:10:120:17 | ...[...] | hash_flow.rb:118:23:118:32 | call to taint : | hash_flow.rb:120:10:120:17 | ...[...] | $@ | hash_flow.rb:118:23:118:32 | call to taint : | call to taint : | +| hash_flow.rb:121:10:121:10 | c | hash_flow.rb:118:23:118:32 | call to taint : | hash_flow.rb:121:10:121:10 | c | $@ | hash_flow.rb:118:23:118:32 | call to taint : | call to taint : | +| hash_flow.rb:132:14:132:25 | key_or_value | hash_flow.rb:128:15:128:24 | call to taint : | hash_flow.rb:132:14:132:25 | key_or_value | $@ | hash_flow.rb:128:15:128:24 | call to taint : | call to taint : | +| hash_flow.rb:136:14:136:18 | value | hash_flow.rb:128:15:128:24 | call to taint : | hash_flow.rb:136:14:136:18 | value | $@ | hash_flow.rb:128:15:128:24 | call to taint : | call to taint : | +| hash_flow.rb:149:10:149:13 | ...[...] | hash_flow.rb:144:15:144:25 | call to taint : | hash_flow.rb:149:10:149:13 | ...[...] | $@ | hash_flow.rb:144:15:144:25 | call to taint : | call to taint : | +| hash_flow.rb:150:10:150:13 | ...[...] | hash_flow.rb:144:15:144:25 | call to taint : | hash_flow.rb:150:10:150:13 | ...[...] | $@ | hash_flow.rb:144:15:144:25 | call to taint : | call to taint : | +| hash_flow.rb:152:10:152:13 | ...[...] | hash_flow.rb:144:15:144:25 | call to taint : | hash_flow.rb:152:10:152:13 | ...[...] | $@ | hash_flow.rb:144:15:144:25 | call to taint : | call to taint : | +| hash_flow.rb:174:10:174:14 | ...[...] | hash_flow.rb:170:15:170:25 | call to taint : | hash_flow.rb:174:10:174:14 | ...[...] | $@ | hash_flow.rb:170:15:170:25 | call to taint : | call to taint : | +| hash_flow.rb:186:10:186:10 | a | hash_flow.rb:182:15:182:25 | call to taint : | hash_flow.rb:186:10:186:10 | a | $@ | hash_flow.rb:182:15:182:25 | call to taint : | call to taint : | +| hash_flow.rb:199:14:199:18 | value | hash_flow.rb:194:15:194:25 | call to taint : | hash_flow.rb:199:14:199:18 | value | $@ | hash_flow.rb:194:15:194:25 | call to taint : | call to taint : | +| hash_flow.rb:201:10:201:14 | ...[...] | hash_flow.rb:194:15:194:25 | call to taint : | hash_flow.rb:201:10:201:14 | ...[...] | $@ | hash_flow.rb:194:15:194:25 | call to taint : | call to taint : | +| hash_flow.rb:202:10:202:17 | ...[...] | hash_flow.rb:194:15:194:25 | call to taint : | hash_flow.rb:202:10:202:17 | ...[...] | $@ | hash_flow.rb:194:15:194:25 | call to taint : | call to taint : | +| hash_flow.rb:217:10:217:21 | call to dig | hash_flow.rb:210:15:210:25 | call to taint : | hash_flow.rb:217:10:217:21 | call to dig | $@ | hash_flow.rb:210:15:210:25 | call to taint : | call to taint : | +| hash_flow.rb:219:10:219:24 | call to dig | hash_flow.rb:213:19:213:29 | call to taint : | hash_flow.rb:219:10:219:24 | call to dig | $@ | hash_flow.rb:213:19:213:29 | call to taint : | call to taint : | +| hash_flow.rb:232:14:232:18 | value | hash_flow.rb:227:15:227:25 | call to taint : | hash_flow.rb:232:14:232:18 | value | $@ | hash_flow.rb:227:15:227:25 | call to taint : | call to taint : | +| hash_flow.rb:234:10:234:14 | ...[...] | hash_flow.rb:227:15:227:25 | call to taint : | hash_flow.rb:234:10:234:14 | ...[...] | $@ | hash_flow.rb:227:15:227:25 | call to taint : | call to taint : | +| hash_flow.rb:248:10:248:14 | ...[...] | hash_flow.rb:242:15:242:25 | call to taint : | hash_flow.rb:248:10:248:14 | ...[...] | $@ | hash_flow.rb:242:15:242:25 | call to taint : | call to taint : | +| hash_flow.rb:261:14:261:18 | value | hash_flow.rb:256:15:256:25 | call to taint : | hash_flow.rb:261:14:261:18 | value | $@ | hash_flow.rb:256:15:256:25 | call to taint : | call to taint : | +| hash_flow.rb:263:10:263:14 | ...[...] | hash_flow.rb:256:15:256:25 | call to taint : | hash_flow.rb:263:10:263:14 | ...[...] | $@ | hash_flow.rb:256:15:256:25 | call to taint : | call to taint : | +| hash_flow.rb:275:14:275:18 | value | hash_flow.rb:271:15:271:25 | call to taint : | hash_flow.rb:275:14:275:18 | value | $@ | hash_flow.rb:271:15:271:25 | call to taint : | call to taint : | +| hash_flow.rb:277:10:277:14 | ...[...] | hash_flow.rb:271:15:271:25 | call to taint : | hash_flow.rb:277:10:277:14 | ...[...] | $@ | hash_flow.rb:271:15:271:25 | call to taint : | call to taint : | +| hash_flow.rb:293:10:293:14 | ...[...] | hash_flow.rb:287:15:287:25 | call to taint : | hash_flow.rb:293:10:293:14 | ...[...] | $@ | hash_flow.rb:287:15:287:25 | call to taint : | call to taint : | +| hash_flow.rb:306:14:306:14 | x | hash_flow.rb:305:20:305:30 | call to taint : | hash_flow.rb:306:14:306:14 | x | $@ | hash_flow.rb:305:20:305:30 | call to taint : | call to taint : | +| hash_flow.rb:308:10:308:10 | b | hash_flow.rb:301:15:301:25 | call to taint : | hash_flow.rb:308:10:308:10 | b | $@ | hash_flow.rb:301:15:301:25 | call to taint : | call to taint : | +| hash_flow.rb:308:10:308:10 | b | hash_flow.rb:303:15:303:25 | call to taint : | hash_flow.rb:308:10:308:10 | b | $@ | hash_flow.rb:303:15:303:25 | call to taint : | call to taint : | +| hash_flow.rb:310:10:310:10 | b | hash_flow.rb:301:15:301:25 | call to taint : | hash_flow.rb:310:10:310:10 | b | $@ | hash_flow.rb:301:15:301:25 | call to taint : | call to taint : | +| hash_flow.rb:312:10:312:10 | b | hash_flow.rb:301:15:301:25 | call to taint : | hash_flow.rb:312:10:312:10 | b | $@ | hash_flow.rb:301:15:301:25 | call to taint : | call to taint : | +| hash_flow.rb:312:10:312:10 | b | hash_flow.rb:311:24:311:34 | call to taint : | hash_flow.rb:312:10:312:10 | b | $@ | hash_flow.rb:311:24:311:34 | call to taint : | call to taint : | +| hash_flow.rb:314:10:314:10 | b | hash_flow.rb:313:24:313:34 | call to taint : | hash_flow.rb:314:10:314:10 | b | $@ | hash_flow.rb:313:24:313:34 | call to taint : | call to taint : | +| hash_flow.rb:316:10:316:10 | b | hash_flow.rb:301:15:301:25 | call to taint : | hash_flow.rb:316:10:316:10 | b | $@ | hash_flow.rb:301:15:301:25 | call to taint : | call to taint : | +| hash_flow.rb:316:10:316:10 | b | hash_flow.rb:303:15:303:25 | call to taint : | hash_flow.rb:316:10:316:10 | b | $@ | hash_flow.rb:303:15:303:25 | call to taint : | call to taint : | +| hash_flow.rb:316:10:316:10 | b | hash_flow.rb:315:23:315:33 | call to taint : | hash_flow.rb:316:10:316:10 | b | $@ | hash_flow.rb:315:23:315:33 | call to taint : | call to taint : | +| hash_flow.rb:328:14:328:14 | x | hash_flow.rb:327:27:327:37 | call to taint : | hash_flow.rb:328:14:328:14 | x | $@ | hash_flow.rb:327:27:327:37 | call to taint : | call to taint : | +| hash_flow.rb:331:10:331:13 | ...[...] | hash_flow.rb:323:15:323:25 | call to taint : | hash_flow.rb:331:10:331:13 | ...[...] | $@ | hash_flow.rb:323:15:323:25 | call to taint : | call to taint : | +| hash_flow.rb:331:10:331:13 | ...[...] | hash_flow.rb:325:15:325:25 | call to taint : | hash_flow.rb:331:10:331:13 | ...[...] | $@ | hash_flow.rb:325:15:325:25 | call to taint : | call to taint : | +| hash_flow.rb:331:10:331:13 | ...[...] | hash_flow.rb:329:9:329:19 | call to taint : | hash_flow.rb:331:10:331:13 | ...[...] | $@ | hash_flow.rb:329:9:329:19 | call to taint : | call to taint : | +| hash_flow.rb:333:10:333:13 | ...[...] | hash_flow.rb:323:15:323:25 | call to taint : | hash_flow.rb:333:10:333:13 | ...[...] | $@ | hash_flow.rb:323:15:323:25 | call to taint : | call to taint : | +| hash_flow.rb:335:10:335:13 | ...[...] | hash_flow.rb:323:15:323:25 | call to taint : | hash_flow.rb:335:10:335:13 | ...[...] | $@ | hash_flow.rb:323:15:323:25 | call to taint : | call to taint : | +| hash_flow.rb:335:10:335:13 | ...[...] | hash_flow.rb:325:15:325:25 | call to taint : | hash_flow.rb:335:10:335:13 | ...[...] | $@ | hash_flow.rb:325:15:325:25 | call to taint : | call to taint : | +| hash_flow.rb:348:14:348:18 | value | hash_flow.rb:342:15:342:25 | call to taint : | hash_flow.rb:348:14:348:18 | value | $@ | hash_flow.rb:342:15:342:25 | call to taint : | call to taint : | +| hash_flow.rb:348:14:348:18 | value | hash_flow.rb:344:15:344:25 | call to taint : | hash_flow.rb:348:14:348:18 | value | $@ | hash_flow.rb:344:15:344:25 | call to taint : | call to taint : | +| hash_flow.rb:351:10:351:16 | ( ... ) | hash_flow.rb:342:15:342:25 | call to taint : | hash_flow.rb:351:10:351:16 | ( ... ) | $@ | hash_flow.rb:342:15:342:25 | call to taint : | call to taint : | +| hash_flow.rb:364:14:364:18 | value | hash_flow.rb:358:15:358:25 | call to taint : | hash_flow.rb:364:14:364:18 | value | $@ | hash_flow.rb:358:15:358:25 | call to taint : | call to taint : | +| hash_flow.rb:364:14:364:18 | value | hash_flow.rb:360:15:360:25 | call to taint : | hash_flow.rb:364:14:364:18 | value | $@ | hash_flow.rb:360:15:360:25 | call to taint : | call to taint : | +| hash_flow.rb:367:10:367:19 | ( ... ) | hash_flow.rb:358:15:358:25 | call to taint : | hash_flow.rb:367:10:367:19 | ( ... ) | $@ | hash_flow.rb:358:15:358:25 | call to taint : | call to taint : | +| hash_flow.rb:379:10:379:15 | ( ... ) | hash_flow.rb:374:15:374:25 | call to taint : | hash_flow.rb:379:10:379:15 | ( ... ) | $@ | hash_flow.rb:374:15:374:25 | call to taint : | call to taint : | +| hash_flow.rb:379:10:379:15 | ( ... ) | hash_flow.rb:376:15:376:25 | call to taint : | hash_flow.rb:379:10:379:15 | ( ... ) | $@ | hash_flow.rb:376:15:376:25 | call to taint : | call to taint : | +| hash_flow.rb:392:14:392:18 | value | hash_flow.rb:386:15:386:25 | call to taint : | hash_flow.rb:392:14:392:18 | value | $@ | hash_flow.rb:386:15:386:25 | call to taint : | call to taint : | +| hash_flow.rb:392:14:392:18 | value | hash_flow.rb:388:15:388:25 | call to taint : | hash_flow.rb:392:14:392:18 | value | $@ | hash_flow.rb:388:15:388:25 | call to taint : | call to taint : | +| hash_flow.rb:395:10:395:19 | ( ... ) | hash_flow.rb:386:15:386:25 | call to taint : | hash_flow.rb:395:10:395:19 | ( ... ) | $@ | hash_flow.rb:386:15:386:25 | call to taint : | call to taint : | +| hash_flow.rb:396:10:396:16 | ( ... ) | hash_flow.rb:386:15:386:25 | call to taint : | hash_flow.rb:396:10:396:16 | ( ... ) | $@ | hash_flow.rb:386:15:386:25 | call to taint : | call to taint : | +| hash_flow.rb:414:14:414:22 | old_value | hash_flow.rb:403:15:403:25 | call to taint : | hash_flow.rb:414:14:414:22 | old_value | $@ | hash_flow.rb:403:15:403:25 | call to taint : | call to taint : | +| hash_flow.rb:414:14:414:22 | old_value | hash_flow.rb:405:15:405:25 | call to taint : | hash_flow.rb:414:14:414:22 | old_value | $@ | hash_flow.rb:405:15:405:25 | call to taint : | call to taint : | +| hash_flow.rb:414:14:414:22 | old_value | hash_flow.rb:408:15:408:25 | call to taint : | hash_flow.rb:414:14:414:22 | old_value | $@ | hash_flow.rb:408:15:408:25 | call to taint : | call to taint : | +| hash_flow.rb:414:14:414:22 | old_value | hash_flow.rb:410:15:410:25 | call to taint : | hash_flow.rb:414:14:414:22 | old_value | $@ | hash_flow.rb:410:15:410:25 | call to taint : | call to taint : | +| hash_flow.rb:415:14:415:22 | new_value | hash_flow.rb:403:15:403:25 | call to taint : | hash_flow.rb:415:14:415:22 | new_value | $@ | hash_flow.rb:403:15:403:25 | call to taint : | call to taint : | +| hash_flow.rb:415:14:415:22 | new_value | hash_flow.rb:405:15:405:25 | call to taint : | hash_flow.rb:415:14:415:22 | new_value | $@ | hash_flow.rb:405:15:405:25 | call to taint : | call to taint : | +| hash_flow.rb:415:14:415:22 | new_value | hash_flow.rb:408:15:408:25 | call to taint : | hash_flow.rb:415:14:415:22 | new_value | $@ | hash_flow.rb:408:15:408:25 | call to taint : | call to taint : | +| hash_flow.rb:415:14:415:22 | new_value | hash_flow.rb:410:15:410:25 | call to taint : | hash_flow.rb:415:14:415:22 | new_value | $@ | hash_flow.rb:410:15:410:25 | call to taint : | call to taint : | +| hash_flow.rb:417:10:417:19 | ( ... ) | hash_flow.rb:403:15:403:25 | call to taint : | hash_flow.rb:417:10:417:19 | ( ... ) | $@ | hash_flow.rb:403:15:403:25 | call to taint : | call to taint : | +| hash_flow.rb:419:10:419:19 | ( ... ) | hash_flow.rb:405:15:405:25 | call to taint : | hash_flow.rb:419:10:419:19 | ( ... ) | $@ | hash_flow.rb:405:15:405:25 | call to taint : | call to taint : | +| hash_flow.rb:420:10:420:19 | ( ... ) | hash_flow.rb:408:15:408:25 | call to taint : | hash_flow.rb:420:10:420:19 | ( ... ) | $@ | hash_flow.rb:408:15:408:25 | call to taint : | call to taint : | +| hash_flow.rb:422:10:422:19 | ( ... ) | hash_flow.rb:410:15:410:25 | call to taint : | hash_flow.rb:422:10:422:19 | ( ... ) | $@ | hash_flow.rb:410:15:410:25 | call to taint : | call to taint : | +| hash_flow.rb:440:14:440:22 | old_value | hash_flow.rb:429:15:429:25 | call to taint : | hash_flow.rb:440:14:440:22 | old_value | $@ | hash_flow.rb:429:15:429:25 | call to taint : | call to taint : | +| hash_flow.rb:440:14:440:22 | old_value | hash_flow.rb:431:15:431:25 | call to taint : | hash_flow.rb:440:14:440:22 | old_value | $@ | hash_flow.rb:431:15:431:25 | call to taint : | call to taint : | +| hash_flow.rb:440:14:440:22 | old_value | hash_flow.rb:434:15:434:25 | call to taint : | hash_flow.rb:440:14:440:22 | old_value | $@ | hash_flow.rb:434:15:434:25 | call to taint : | call to taint : | +| hash_flow.rb:440:14:440:22 | old_value | hash_flow.rb:436:15:436:25 | call to taint : | hash_flow.rb:440:14:440:22 | old_value | $@ | hash_flow.rb:436:15:436:25 | call to taint : | call to taint : | +| hash_flow.rb:441:14:441:22 | new_value | hash_flow.rb:429:15:429:25 | call to taint : | hash_flow.rb:441:14:441:22 | new_value | $@ | hash_flow.rb:429:15:429:25 | call to taint : | call to taint : | +| hash_flow.rb:441:14:441:22 | new_value | hash_flow.rb:431:15:431:25 | call to taint : | hash_flow.rb:441:14:441:22 | new_value | $@ | hash_flow.rb:431:15:431:25 | call to taint : | call to taint : | +| hash_flow.rb:441:14:441:22 | new_value | hash_flow.rb:434:15:434:25 | call to taint : | hash_flow.rb:441:14:441:22 | new_value | $@ | hash_flow.rb:434:15:434:25 | call to taint : | call to taint : | +| hash_flow.rb:441:14:441:22 | new_value | hash_flow.rb:436:15:436:25 | call to taint : | hash_flow.rb:441:14:441:22 | new_value | $@ | hash_flow.rb:436:15:436:25 | call to taint : | call to taint : | +| hash_flow.rb:443:10:443:19 | ( ... ) | hash_flow.rb:429:15:429:25 | call to taint : | hash_flow.rb:443:10:443:19 | ( ... ) | $@ | hash_flow.rb:429:15:429:25 | call to taint : | call to taint : | +| hash_flow.rb:445:10:445:19 | ( ... ) | hash_flow.rb:431:15:431:25 | call to taint : | hash_flow.rb:445:10:445:19 | ( ... ) | $@ | hash_flow.rb:431:15:431:25 | call to taint : | call to taint : | +| hash_flow.rb:446:10:446:19 | ( ... ) | hash_flow.rb:434:15:434:25 | call to taint : | hash_flow.rb:446:10:446:19 | ( ... ) | $@ | hash_flow.rb:434:15:434:25 | call to taint : | call to taint : | +| hash_flow.rb:448:10:448:19 | ( ... ) | hash_flow.rb:436:15:436:25 | call to taint : | hash_flow.rb:448:10:448:19 | ( ... ) | $@ | hash_flow.rb:436:15:436:25 | call to taint : | call to taint : | +| hash_flow.rb:450:10:450:20 | ( ... ) | hash_flow.rb:429:15:429:25 | call to taint : | hash_flow.rb:450:10:450:20 | ( ... ) | $@ | hash_flow.rb:429:15:429:25 | call to taint : | call to taint : | +| hash_flow.rb:452:10:452:20 | ( ... ) | hash_flow.rb:431:15:431:25 | call to taint : | hash_flow.rb:452:10:452:20 | ( ... ) | $@ | hash_flow.rb:431:15:431:25 | call to taint : | call to taint : | +| hash_flow.rb:453:10:453:20 | ( ... ) | hash_flow.rb:434:15:434:25 | call to taint : | hash_flow.rb:453:10:453:20 | ( ... ) | $@ | hash_flow.rb:434:15:434:25 | call to taint : | call to taint : | +| hash_flow.rb:455:10:455:20 | ( ... ) | hash_flow.rb:436:15:436:25 | call to taint : | hash_flow.rb:455:10:455:20 | ( ... ) | $@ | hash_flow.rb:436:15:436:25 | call to taint : | call to taint : | +| hash_flow.rb:467:10:467:13 | ...[...] | hash_flow.rb:462:15:462:25 | call to taint : | hash_flow.rb:467:10:467:13 | ...[...] | $@ | hash_flow.rb:462:15:462:25 | call to taint : | call to taint : | +| hash_flow.rb:479:14:479:18 | value | hash_flow.rb:474:15:474:25 | call to taint : | hash_flow.rb:479:14:479:18 | value | $@ | hash_flow.rb:474:15:474:25 | call to taint : | call to taint : | +| hash_flow.rb:482:10:482:14 | ...[...] | hash_flow.rb:474:15:474:25 | call to taint : | hash_flow.rb:482:10:482:14 | ...[...] | $@ | hash_flow.rb:474:15:474:25 | call to taint : | call to taint : | +| hash_flow.rb:494:14:494:18 | value | hash_flow.rb:489:15:489:25 | call to taint : | hash_flow.rb:494:14:494:18 | value | $@ | hash_flow.rb:489:15:489:25 | call to taint : | call to taint : | +| hash_flow.rb:497:10:497:14 | ...[...] | hash_flow.rb:489:15:489:25 | call to taint : | hash_flow.rb:497:10:497:14 | ...[...] | $@ | hash_flow.rb:489:15:489:25 | call to taint : | call to taint : | +| hash_flow.rb:498:10:498:17 | ...[...] | hash_flow.rb:489:15:489:25 | call to taint : | hash_flow.rb:498:10:498:17 | ...[...] | $@ | hash_flow.rb:489:15:489:25 | call to taint : | call to taint : | +| hash_flow.rb:513:10:513:20 | ( ... ) | hash_flow.rb:505:15:505:25 | call to taint : | hash_flow.rb:513:10:513:20 | ( ... ) | $@ | hash_flow.rb:505:15:505:25 | call to taint : | call to taint : | +| hash_flow.rb:515:10:515:20 | ( ... ) | hash_flow.rb:507:15:507:25 | call to taint : | hash_flow.rb:515:10:515:20 | ( ... ) | $@ | hash_flow.rb:507:15:507:25 | call to taint : | call to taint : | +| hash_flow.rb:526:14:526:18 | value | hash_flow.rb:520:15:520:25 | call to taint : | hash_flow.rb:526:14:526:18 | value | $@ | hash_flow.rb:520:15:520:25 | call to taint : | call to taint : | +| hash_flow.rb:526:14:526:18 | value | hash_flow.rb:522:15:522:25 | call to taint : | hash_flow.rb:526:14:526:18 | value | $@ | hash_flow.rb:522:15:522:25 | call to taint : | call to taint : | +| hash_flow.rb:529:10:529:16 | ( ... ) | hash_flow.rb:520:15:520:25 | call to taint : | hash_flow.rb:529:10:529:16 | ( ... ) | $@ | hash_flow.rb:520:15:520:25 | call to taint : | call to taint : | +| hash_flow.rb:542:14:542:18 | value | hash_flow.rb:536:15:536:25 | call to taint : | hash_flow.rb:542:14:542:18 | value | $@ | hash_flow.rb:536:15:536:25 | call to taint : | call to taint : | +| hash_flow.rb:542:14:542:18 | value | hash_flow.rb:538:15:538:25 | call to taint : | hash_flow.rb:542:14:542:18 | value | $@ | hash_flow.rb:538:15:538:25 | call to taint : | call to taint : | +| hash_flow.rb:545:10:545:19 | ( ... ) | hash_flow.rb:536:15:536:25 | call to taint : | hash_flow.rb:545:10:545:19 | ( ... ) | $@ | hash_flow.rb:536:15:536:25 | call to taint : | call to taint : | +| hash_flow.rb:557:10:557:19 | ( ... ) | hash_flow.rb:552:15:552:25 | call to taint : | hash_flow.rb:557:10:557:19 | ( ... ) | $@ | hash_flow.rb:552:15:552:25 | call to taint : | call to taint : | +| hash_flow.rb:559:10:559:15 | ( ... ) | hash_flow.rb:552:15:552:25 | call to taint : | hash_flow.rb:559:10:559:15 | ( ... ) | $@ | hash_flow.rb:552:15:552:25 | call to taint : | call to taint : | +| hash_flow.rb:559:10:559:15 | ( ... ) | hash_flow.rb:554:15:554:25 | call to taint : | hash_flow.rb:559:10:559:15 | ( ... ) | $@ | hash_flow.rb:554:15:554:25 | call to taint : | call to taint : | +| hash_flow.rb:571:10:571:16 | ( ... ) | hash_flow.rb:566:15:566:25 | call to taint : | hash_flow.rb:571:10:571:16 | ( ... ) | $@ | hash_flow.rb:566:15:566:25 | call to taint : | call to taint : | +| hash_flow.rb:576:10:576:16 | ( ... ) | hash_flow.rb:566:15:566:25 | call to taint : | hash_flow.rb:576:10:576:16 | ( ... ) | $@ | hash_flow.rb:566:15:566:25 | call to taint : | call to taint : | +| hash_flow.rb:578:10:578:16 | ( ... ) | hash_flow.rb:568:15:568:25 | call to taint : | hash_flow.rb:578:10:578:16 | ( ... ) | $@ | hash_flow.rb:568:15:568:25 | call to taint : | call to taint : | +| hash_flow.rb:591:10:591:18 | ( ... ) | hash_flow.rb:585:15:585:25 | call to taint : | hash_flow.rb:591:10:591:18 | ( ... ) | $@ | hash_flow.rb:585:15:585:25 | call to taint : | call to taint : | +| hash_flow.rb:591:10:591:18 | ( ... ) | hash_flow.rb:587:15:587:25 | call to taint : | hash_flow.rb:591:10:591:18 | ( ... ) | $@ | hash_flow.rb:587:15:587:25 | call to taint : | call to taint : | +| hash_flow.rb:603:10:603:16 | ( ... ) | hash_flow.rb:598:15:598:25 | call to taint : | hash_flow.rb:603:10:603:16 | ( ... ) | $@ | hash_flow.rb:598:15:598:25 | call to taint : | call to taint : | +| hash_flow.rb:605:10:605:16 | ( ... ) | hash_flow.rb:600:15:600:25 | call to taint : | hash_flow.rb:605:10:605:16 | ( ... ) | $@ | hash_flow.rb:600:15:600:25 | call to taint : | call to taint : | +| hash_flow.rb:609:14:609:18 | value | hash_flow.rb:598:15:598:25 | call to taint : | hash_flow.rb:609:14:609:18 | value | $@ | hash_flow.rb:598:15:598:25 | call to taint : | call to taint : | +| hash_flow.rb:609:14:609:18 | value | hash_flow.rb:600:15:600:25 | call to taint : | hash_flow.rb:609:14:609:18 | value | $@ | hash_flow.rb:600:15:600:25 | call to taint : | call to taint : | +| hash_flow.rb:612:10:612:16 | ( ... ) | hash_flow.rb:610:14:610:24 | call to taint : | hash_flow.rb:612:10:612:16 | ( ... ) | $@ | hash_flow.rb:610:14:610:24 | call to taint : | call to taint : | +| hash_flow.rb:624:10:624:17 | ( ... ) | hash_flow.rb:619:15:619:25 | call to taint : | hash_flow.rb:624:10:624:17 | ( ... ) | $@ | hash_flow.rb:619:15:619:25 | call to taint : | call to taint : | +| hash_flow.rb:624:10:624:17 | ( ... ) | hash_flow.rb:621:15:621:25 | call to taint : | hash_flow.rb:624:10:624:17 | ( ... ) | $@ | hash_flow.rb:621:15:621:25 | call to taint : | call to taint : | +| hash_flow.rb:625:10:625:17 | ( ... ) | hash_flow.rb:619:15:619:25 | call to taint : | hash_flow.rb:625:10:625:17 | ( ... ) | $@ | hash_flow.rb:619:15:619:25 | call to taint : | call to taint : | +| hash_flow.rb:625:10:625:17 | ( ... ) | hash_flow.rb:621:15:621:25 | call to taint : | hash_flow.rb:625:10:625:17 | ( ... ) | $@ | hash_flow.rb:621:15:621:25 | call to taint : | call to taint : | +| hash_flow.rb:626:10:626:17 | ( ... ) | hash_flow.rb:619:15:619:25 | call to taint : | hash_flow.rb:626:10:626:17 | ( ... ) | $@ | hash_flow.rb:619:15:619:25 | call to taint : | call to taint : | +| hash_flow.rb:626:10:626:17 | ( ... ) | hash_flow.rb:621:15:621:25 | call to taint : | hash_flow.rb:626:10:626:17 | ( ... ) | $@ | hash_flow.rb:621:15:621:25 | call to taint : | call to taint : | +| hash_flow.rb:638:10:638:20 | ( ... ) | hash_flow.rb:633:15:633:25 | call to taint : | hash_flow.rb:638:10:638:20 | ( ... ) | $@ | hash_flow.rb:633:15:633:25 | call to taint : | call to taint : | +| hash_flow.rb:638:10:638:20 | ( ... ) | hash_flow.rb:635:15:635:25 | call to taint : | hash_flow.rb:638:10:638:20 | ( ... ) | $@ | hash_flow.rb:635:15:635:25 | call to taint : | call to taint : | +| hash_flow.rb:639:10:639:20 | ( ... ) | hash_flow.rb:633:15:633:25 | call to taint : | hash_flow.rb:639:10:639:20 | ( ... ) | $@ | hash_flow.rb:633:15:633:25 | call to taint : | call to taint : | +| hash_flow.rb:639:10:639:20 | ( ... ) | hash_flow.rb:635:15:635:25 | call to taint : | hash_flow.rb:639:10:639:20 | ( ... ) | $@ | hash_flow.rb:635:15:635:25 | call to taint : | call to taint : | +| hash_flow.rb:640:10:640:20 | ( ... ) | hash_flow.rb:633:15:633:25 | call to taint : | hash_flow.rb:640:10:640:20 | ( ... ) | $@ | hash_flow.rb:633:15:633:25 | call to taint : | call to taint : | +| hash_flow.rb:640:10:640:20 | ( ... ) | hash_flow.rb:635:15:635:25 | call to taint : | hash_flow.rb:640:10:640:20 | ( ... ) | $@ | hash_flow.rb:635:15:635:25 | call to taint : | call to taint : | +| hash_flow.rb:652:14:652:18 | value | hash_flow.rb:647:15:647:25 | call to taint : | hash_flow.rb:652:14:652:18 | value | $@ | hash_flow.rb:647:15:647:25 | call to taint : | call to taint : | +| hash_flow.rb:652:14:652:18 | value | hash_flow.rb:649:15:649:25 | call to taint : | hash_flow.rb:652:14:652:18 | value | $@ | hash_flow.rb:649:15:649:25 | call to taint : | call to taint : | +| hash_flow.rb:655:10:655:19 | ( ... ) | hash_flow.rb:647:15:647:25 | call to taint : | hash_flow.rb:655:10:655:19 | ( ... ) | $@ | hash_flow.rb:647:15:647:25 | call to taint : | call to taint : | +| hash_flow.rb:656:10:656:16 | ( ... ) | hash_flow.rb:653:9:653:19 | call to taint : | hash_flow.rb:656:10:656:16 | ( ... ) | $@ | hash_flow.rb:653:9:653:19 | call to taint : | call to taint : | +| hash_flow.rb:668:14:668:18 | value | hash_flow.rb:663:15:663:25 | call to taint : | hash_flow.rb:668:14:668:18 | value | $@ | hash_flow.rb:663:15:663:25 | call to taint : | call to taint : | +| hash_flow.rb:668:14:668:18 | value | hash_flow.rb:665:15:665:25 | call to taint : | hash_flow.rb:668:14:668:18 | value | $@ | hash_flow.rb:665:15:665:25 | call to taint : | call to taint : | +| hash_flow.rb:671:10:671:19 | ( ... ) | hash_flow.rb:669:9:669:19 | call to taint : | hash_flow.rb:671:10:671:19 | ( ... ) | $@ | hash_flow.rb:669:9:669:19 | call to taint : | call to taint : | +| hash_flow.rb:689:14:689:22 | old_value | hash_flow.rb:678:15:678:25 | call to taint : | hash_flow.rb:689:14:689:22 | old_value | $@ | hash_flow.rb:678:15:678:25 | call to taint : | call to taint : | +| hash_flow.rb:689:14:689:22 | old_value | hash_flow.rb:680:15:680:25 | call to taint : | hash_flow.rb:689:14:689:22 | old_value | $@ | hash_flow.rb:680:15:680:25 | call to taint : | call to taint : | +| hash_flow.rb:689:14:689:22 | old_value | hash_flow.rb:683:15:683:25 | call to taint : | hash_flow.rb:689:14:689:22 | old_value | $@ | hash_flow.rb:683:15:683:25 | call to taint : | call to taint : | +| hash_flow.rb:689:14:689:22 | old_value | hash_flow.rb:685:15:685:25 | call to taint : | hash_flow.rb:689:14:689:22 | old_value | $@ | hash_flow.rb:685:15:685:25 | call to taint : | call to taint : | +| hash_flow.rb:690:14:690:22 | new_value | hash_flow.rb:678:15:678:25 | call to taint : | hash_flow.rb:690:14:690:22 | new_value | $@ | hash_flow.rb:678:15:678:25 | call to taint : | call to taint : | +| hash_flow.rb:690:14:690:22 | new_value | hash_flow.rb:680:15:680:25 | call to taint : | hash_flow.rb:690:14:690:22 | new_value | $@ | hash_flow.rb:680:15:680:25 | call to taint : | call to taint : | +| hash_flow.rb:690:14:690:22 | new_value | hash_flow.rb:683:15:683:25 | call to taint : | hash_flow.rb:690:14:690:22 | new_value | $@ | hash_flow.rb:683:15:683:25 | call to taint : | call to taint : | +| hash_flow.rb:690:14:690:22 | new_value | hash_flow.rb:685:15:685:25 | call to taint : | hash_flow.rb:690:14:690:22 | new_value | $@ | hash_flow.rb:685:15:685:25 | call to taint : | call to taint : | +| hash_flow.rb:692:10:692:19 | ( ... ) | hash_flow.rb:678:15:678:25 | call to taint : | hash_flow.rb:692:10:692:19 | ( ... ) | $@ | hash_flow.rb:678:15:678:25 | call to taint : | call to taint : | +| hash_flow.rb:694:10:694:19 | ( ... ) | hash_flow.rb:680:15:680:25 | call to taint : | hash_flow.rb:694:10:694:19 | ( ... ) | $@ | hash_flow.rb:680:15:680:25 | call to taint : | call to taint : | +| hash_flow.rb:695:10:695:19 | ( ... ) | hash_flow.rb:683:15:683:25 | call to taint : | hash_flow.rb:695:10:695:19 | ( ... ) | $@ | hash_flow.rb:683:15:683:25 | call to taint : | call to taint : | +| hash_flow.rb:697:10:697:19 | ( ... ) | hash_flow.rb:685:15:685:25 | call to taint : | hash_flow.rb:697:10:697:19 | ( ... ) | $@ | hash_flow.rb:685:15:685:25 | call to taint : | call to taint : | +| hash_flow.rb:699:10:699:20 | ( ... ) | hash_flow.rb:678:15:678:25 | call to taint : | hash_flow.rb:699:10:699:20 | ( ... ) | $@ | hash_flow.rb:678:15:678:25 | call to taint : | call to taint : | +| hash_flow.rb:701:10:701:20 | ( ... ) | hash_flow.rb:680:15:680:25 | call to taint : | hash_flow.rb:701:10:701:20 | ( ... ) | $@ | hash_flow.rb:680:15:680:25 | call to taint : | call to taint : | +| hash_flow.rb:702:10:702:20 | ( ... ) | hash_flow.rb:683:15:683:25 | call to taint : | hash_flow.rb:702:10:702:20 | ( ... ) | $@ | hash_flow.rb:683:15:683:25 | call to taint : | call to taint : | +| hash_flow.rb:704:10:704:20 | ( ... ) | hash_flow.rb:685:15:685:25 | call to taint : | hash_flow.rb:704:10:704:20 | ( ... ) | $@ | hash_flow.rb:685:15:685:25 | call to taint : | call to taint : | +| hash_flow.rb:716:10:716:15 | ( ... ) | hash_flow.rb:711:15:711:25 | call to taint : | hash_flow.rb:716:10:716:15 | ( ... ) | $@ | hash_flow.rb:711:15:711:25 | call to taint : | call to taint : | +| hash_flow.rb:716:10:716:15 | ( ... ) | hash_flow.rb:713:15:713:25 | call to taint : | hash_flow.rb:716:10:716:15 | ( ... ) | $@ | hash_flow.rb:713:15:713:25 | call to taint : | call to taint : | +| hash_flow.rb:728:10:728:13 | ...[...] | hash_flow.rb:723:15:723:25 | call to taint : | hash_flow.rb:728:10:728:13 | ...[...] | $@ | hash_flow.rb:723:15:723:25 | call to taint : | call to taint : | +| hash_flow.rb:730:10:730:13 | ...[...] | hash_flow.rb:723:15:723:25 | call to taint : | hash_flow.rb:730:10:730:13 | ...[...] | $@ | hash_flow.rb:723:15:723:25 | call to taint : | call to taint : | +| hash_flow.rb:730:10:730:13 | ...[...] | hash_flow.rb:725:15:725:25 | call to taint : | hash_flow.rb:730:10:730:13 | ...[...] | $@ | hash_flow.rb:725:15:725:25 | call to taint : | call to taint : | +| hash_flow.rb:747:10:747:17 | ...[...] | hash_flow.rb:737:15:737:25 | call to taint : | hash_flow.rb:747:10:747:17 | ...[...] | $@ | hash_flow.rb:737:15:737:25 | call to taint : | call to taint : | +| hash_flow.rb:749:10:749:17 | ...[...] | hash_flow.rb:739:15:739:25 | call to taint : | hash_flow.rb:749:10:749:17 | ...[...] | $@ | hash_flow.rb:739:15:739:25 | call to taint : | call to taint : | +| hash_flow.rb:750:10:750:17 | ...[...] | hash_flow.rb:742:15:742:25 | call to taint : | hash_flow.rb:750:10:750:17 | ...[...] | $@ | hash_flow.rb:742:15:742:25 | call to taint : | call to taint : | +| hash_flow.rb:752:10:752:17 | ...[...] | hash_flow.rb:744:15:744:25 | call to taint : | hash_flow.rb:752:10:752:17 | ...[...] | $@ | hash_flow.rb:744:15:744:25 | call to taint : | call to taint : | +| hash_flow.rb:753:10:753:17 | ...[...] | hash_flow.rb:746:29:746:39 | call to taint : | hash_flow.rb:753:10:753:17 | ...[...] | $@ | hash_flow.rb:746:29:746:39 | call to taint : | call to taint : | diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb b/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb index f9de83dd47c..6802475b89b 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb @@ -68,6 +68,14 @@ def m3() hash4 = Hash[:a, taint(3.4), :b, 1] sink(hash4[:a]) # $ hasValueFlow=3.4 sink(hash4[:b]) + + hash5 = Hash["a" => taint(3.5), "b" => 1] + sink(hash5["a"]) # $ hasValueFlow=3.5 + sink(hash5["b"]) + + hash6 = Hash[{"a" => taint(3.6), "b" => 1}] + sink(hash6["a"]) # $ hasValueFlow=3.6 + sink(hash6["b"]) end m3() From d6880f059d1b5afe4e1aee951df9497b66d8d13d Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 14:32:19 +0200 Subject: [PATCH 679/736] C#: Use generated stubs for CookieHttpOnlyFalseAspNetCore testcases and update test output with new line numbers. --- .../CookieBuilder/HttpOnly.expected | 4 ++-- .../CookieBuilder/Program.cs | 2 -- .../NoPolicy/HttpOnly.expected | 8 ++++---- .../CookieHttpOnlyFalseAspNetCore/NoPolicy/Program.cs | 2 -- .../UseCookiePolicyCallback/Program.cs | 2 -- .../CWE-1004/CookieHttpOnlyFalseAspNetCore/options | 3 +++ 6 files changed, 9 insertions(+), 12 deletions(-) create mode 100644 csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/options diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/CookieBuilder/HttpOnly.expected b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/CookieBuilder/HttpOnly.expected index 1977832a79f..cf0986a446c 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/CookieBuilder/HttpOnly.expected +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/CookieBuilder/HttpOnly.expected @@ -1,2 +1,2 @@ -| Program.cs:15:33:15:37 | false | Cookie attribute 'HttpOnly' is not set to true. | -| Program.cs:22:39:22:43 | false | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:13:33:13:37 | false | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:20:39:20:43 | false | Cookie attribute 'HttpOnly' is not set to true. | diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/CookieBuilder/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/CookieBuilder/Program.cs index 6a36c277b7c..4f51bdb5bc5 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/CookieBuilder/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/CookieBuilder/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.cs ${testdir}/../../../../../resources/stubs/Microsoft.Extensions.DependencyInjection.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/NoPolicy/HttpOnly.expected b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/NoPolicy/HttpOnly.expected index 1f9eb0372be..968e28976a8 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/NoPolicy/HttpOnly.expected +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/NoPolicy/HttpOnly.expected @@ -1,4 +1,4 @@ -| Program.cs:27:34:27:38 | false | Cookie attribute 'HttpOnly' is not set to true. | -| Program.cs:40:88:40:92 | false | Cookie attribute 'HttpOnly' is not set to true. | -| Program.cs:63:34:63:34 | access to local variable v | Cookie attribute 'HttpOnly' is not set to true. | -| Program.cs:70:88:70:88 | access to local variable v | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:25:34:25:38 | false | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:38:88:38:92 | false | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:61:34:61:34 | access to local variable v | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:68:88:68:88 | access to local variable v | Cookie attribute 'HttpOnly' is not set to true. | diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/NoPolicy/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/NoPolicy/Program.cs index 9443e580e21..6f12958fba7 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/NoPolicy/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/NoPolicy/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs - public class MyController : Microsoft.AspNetCore.Mvc.Controller { public void CookieDelete() diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/UseCookiePolicyCallback/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/UseCookiePolicyCallback/Program.cs index fca9d0cba84..60f217eff20 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/UseCookiePolicyCallback/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/UseCookiePolicyCallback/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.cs ${testdir}/../../../../../resources/stubs/Microsoft.Extensions.DependencyInjection.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/options new file mode 100644 index 00000000000..ce3f295ed11 --- /dev/null +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseAspNetCore/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 From 77a321ee9afcf5c9611704a50bebb3456fc0a5d4 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 14:52:54 +0200 Subject: [PATCH 680/736] C#: Manually re-order the values in the HttpOnlyPolicy enum. --- .../Microsoft.AspNetCore.CookiePolicy.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 a7d9bcff4d1..1052886d8b7 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 @@ -66,8 +66,8 @@ namespace Microsoft // Generated from `Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy` in `Microsoft.AspNetCore.CookiePolicy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum HttpOnlyPolicy { - Always, None, + Always, } } From 98f8bed037a6542e252a9dbab4fbfb3a7c16600a Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 14:54:19 +0200 Subject: [PATCH 681/736] C#: Update CookieWithoutHttpOnlyAspNetCore tests to use generated stubs and update line numbers in test output. --- .../NoPolicy/HttpOnly.expected | 4 ++-- .../CookieWithoutHttpOnlyAspNetCore/NoPolicy/Program.cs | 2 -- .../UseCookiePolicyAlways/Program.cs | 2 -- .../UseCookiePolicyCallback/Program.cs | 2 -- .../UseCookiePolicyNone/HttpOnly.expected | 4 ++-- .../UseCookiePolicyNone/Program.cs | 4 +--- .../CWE-1004/CookieWithoutHttpOnlyAspNetCore/options | 3 +++ 7 files changed, 8 insertions(+), 13 deletions(-) create mode 100644 csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/options diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/NoPolicy/HttpOnly.expected b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/NoPolicy/HttpOnly.expected index c8ea28a08f3..aac50988302 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/NoPolicy/HttpOnly.expected +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/NoPolicy/HttpOnly.expected @@ -1,2 +1,2 @@ -| Program.cs:7:9:7:49 | call to method Append | Cookie attribute 'HttpOnly' is not set to true. | -| Program.cs:17:29:17:73 | object creation of type CookieOptions | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:5:9:5:49 | call to method Append | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:15:29:15:73 | object creation of type CookieOptions | Cookie attribute 'HttpOnly' is not set to true. | diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/NoPolicy/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/NoPolicy/Program.cs index a4333bde0f4..945c5be55db 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/NoPolicy/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/NoPolicy/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs - public class MyController : Microsoft.AspNetCore.Mvc.Controller { public void CookieDefault() diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyAlways/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyAlways/Program.cs index a6933676a7f..115f448a39b 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyAlways/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyAlways/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyCallback/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyCallback/Program.cs index a282055fdb5..417b1f77277 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyCallback/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyCallback/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.cs ${testdir}/../../../../../resources/stubs/Microsoft.Extensions.DependencyInjection.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyNone/HttpOnly.expected b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyNone/HttpOnly.expected index 429aeeb75b3..adfb1ab3efa 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyNone/HttpOnly.expected +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyNone/HttpOnly.expected @@ -1,2 +1,2 @@ -| Program.cs:10:9:10:49 | call to method Append | Cookie attribute 'HttpOnly' is not set to true. | -| Program.cs:15:29:15:73 | object creation of type CookieOptions | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:8:9:8:49 | call to method Append | Cookie attribute 'HttpOnly' is not set to true. | +| Program.cs:13:29:13:73 | object creation of type CookieOptions | Cookie attribute 'HttpOnly' is not set to true. | diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyNone/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyNone/Program.cs index 65d4babaac4..7be845aadfe 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyNone/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/UseCookiePolicyNone/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -22,6 +20,6 @@ public class Startup // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { - app.UseCookiePolicy(new CookiePolicyOptions() { HttpOnly = Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy.None}); + app.UseCookiePolicy(new CookiePolicyOptions() { HttpOnly = Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy.None }); } } diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/options new file mode 100644 index 00000000000..ce3f295ed11 --- /dev/null +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlyAspNetCore/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 From a23be5ca3b757ece0a64f2d43e0caaf906553253 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 15:17:14 +0200 Subject: [PATCH 682/736] C#: Manually re-order the values in the CookieSecurePolicy enum. --- .../Microsoft.AspNetCore.Http.Abstractions.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 4029b83dfed..e02b74b35a1 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 @@ -178,9 +178,9 @@ namespace Microsoft // Generated from `Microsoft.AspNetCore.Http.CookieSecurePolicy` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` public enum CookieSecurePolicy { - Always, - None, SameAsRequest, + Always, + None } // Generated from `Microsoft.AspNetCore.Http.Endpoint` in `Microsoft.AspNetCore.Http.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60` From cdd1172cee8b786467ade43f23f12c513208966f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 15:18:34 +0200 Subject: [PATCH 683/736] C#: Use generated stubs in the RequireSSLAspNetCore like tests and update test results with new line numbers. --- .../CWE-614/RequireSSLAspNetCore/NoPolicy/Program.cs | 2 -- .../RequireSSLAspNetCore/NoPolicy/RequireSSL.expected | 4 ++-- .../RequireSSLAspNetCore/UseCookiePolicyAlways/Program.cs | 2 -- .../UseCookiePolicyCallback/Program.cs | 2 -- .../RequireSSLAspNetCore/UseCookiePolicyNone/Program.cs | 2 -- .../UseCookiePolicyNone/RequireSSL.expected | 4 ++-- .../CWE-614/RequireSSLAspNetCore/options | 3 +++ .../RequireSSLFalseAspNetCore/CookieBuilder/Program.cs | 2 -- .../CookieBuilder/RequireSSL.expected | 4 ++-- .../CWE-614/RequireSSLFalseAspNetCore/NoPolicy/Program.cs | 2 -- .../NoPolicy/RequireSSL.expected | 8 ++++---- .../UseCookiePolicyCallback/Program.cs | 2 -- .../CWE-614/RequireSSLFalseAspNetCore/options | 3 +++ 13 files changed, 16 insertions(+), 24 deletions(-) create mode 100644 csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/options create mode 100644 csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/options diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/NoPolicy/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/NoPolicy/Program.cs index 52a0c995c19..9c21416940b 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/NoPolicy/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/NoPolicy/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs - public class MyController : Microsoft.AspNetCore.Mvc.Controller { public void CookieDefault() diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/NoPolicy/RequireSSL.expected b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/NoPolicy/RequireSSL.expected index 008ef0fbb84..f96df31ad21 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/NoPolicy/RequireSSL.expected +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/NoPolicy/RequireSSL.expected @@ -1,2 +1,2 @@ -| Program.cs:7:9:7:48 | call to method Append | Cookie attribute 'Secure' is not set to true. | -| Program.cs:12:29:12:73 | object creation of type CookieOptions | Cookie attribute 'Secure' is not set to true. | +| Program.cs:5:9:5:48 | call to method Append | Cookie attribute 'Secure' is not set to true. | +| Program.cs:10:29:10:73 | object creation of type CookieOptions | Cookie attribute 'Secure' is not set to true. | diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyAlways/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyAlways/Program.cs index e9e86db940e..7c125f9265d 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyAlways/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyAlways/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyCallback/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyCallback/Program.cs index 29aa2991b22..85bd3bedd6d 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyCallback/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyCallback/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.cs ${testdir}/../../../../../resources/stubs/Microsoft.Extensions.DependencyInjection.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyNone/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyNone/Program.cs index 4bbf7b3df50..9db1f5380d4 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyNone/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyNone/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyNone/RequireSSL.expected b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyNone/RequireSSL.expected index 391e494a128..030293f7b7e 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyNone/RequireSSL.expected +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/UseCookiePolicyNone/RequireSSL.expected @@ -1,2 +1,2 @@ -| Program.cs:10:9:10:49 | call to method Append | Cookie attribute 'Secure' is not set to true. | -| Program.cs:15:29:15:73 | object creation of type CookieOptions | Cookie attribute 'Secure' is not set to true. | +| Program.cs:8:9:8:49 | call to method Append | Cookie attribute 'Secure' is not set to true. | +| Program.cs:13:29:13:73 | object creation of type CookieOptions | Cookie attribute 'Secure' is not set to true. | diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/options new file mode 100644 index 00000000000..ce3f295ed11 --- /dev/null +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLAspNetCore/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 diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/CookieBuilder/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/CookieBuilder/Program.cs index 6a36c277b7c..4f51bdb5bc5 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/CookieBuilder/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/CookieBuilder/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.cs ${testdir}/../../../../../resources/stubs/Microsoft.Extensions.DependencyInjection.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/CookieBuilder/RequireSSL.expected b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/CookieBuilder/RequireSSL.expected index c7a591c2295..fdddb5357bd 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/CookieBuilder/RequireSSL.expected +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/CookieBuilder/RequireSSL.expected @@ -1,2 +1,2 @@ -| Program.cs:16:37:16:85 | access to constant None | Cookie attribute 'Secure' is not set to true. | -| Program.cs:21:43:21:91 | access to constant None | Cookie attribute 'Secure' is not set to true. | +| Program.cs:14:37:14:85 | access to constant None | Cookie attribute 'Secure' is not set to true. | +| Program.cs:19:43:19:91 | access to constant None | Cookie attribute 'Secure' is not set to true. | diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/NoPolicy/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/NoPolicy/Program.cs index 4830cfed6bb..b1ad1aede91 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/NoPolicy/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/NoPolicy/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs - public class MyController : Microsoft.AspNetCore.Mvc.Controller { public void CookieDelete() diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/NoPolicy/RequireSSL.expected b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/NoPolicy/RequireSSL.expected index 82b51e28248..7b7bc343942 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/NoPolicy/RequireSSL.expected +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/NoPolicy/RequireSSL.expected @@ -1,4 +1,4 @@ -| Program.cs:27:32:27:36 | false | Cookie attribute 'Secure' is not set to true. | -| Program.cs:33:86:33:90 | false | Cookie attribute 'Secure' is not set to true. | -| Program.cs:56:32:56:32 | access to local variable v | Cookie attribute 'Secure' is not set to true. | -| Program.cs:63:86:63:86 | access to local variable v | Cookie attribute 'Secure' is not set to true. | +| Program.cs:25:32:25:36 | false | Cookie attribute 'Secure' is not set to true. | +| Program.cs:31:86:31:90 | false | Cookie attribute 'Secure' is not set to true. | +| Program.cs:54:32:54:32 | access to local variable v | Cookie attribute 'Secure' is not set to true. | +| Program.cs:61:86:61:86 | access to local variable v | Cookie attribute 'Secure' is not set to true. | diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/UseCookiePolicyCallback/Program.cs b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/UseCookiePolicyCallback/Program.cs index 58b87107547..542b1a298fa 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/UseCookiePolicyCallback/Program.cs +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/UseCookiePolicyCallback/Program.cs @@ -1,5 +1,3 @@ -// semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Authentication.cs ${testdir}/../../../../../resources/stubs/Microsoft.Extensions.DependencyInjection.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Hosting.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Http.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Mvc.cs ${testdir}/../../../../../resources/stubs/Microsoft.AspNetCore.Builder.cs - using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/options new file mode 100644 index 00000000000..ce3f295ed11 --- /dev/null +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseAspNetCore/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 From eb190907462feccee654deb7dd2aff65aee56a4a Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 9 Aug 2022 15:23:43 +0200 Subject: [PATCH 684/736] C#: Remove unused hand written stubs. --- ...osoft.AspNetCore.Authentication.Cookies.cs | 49 ------ .../Microsoft.AspNetCore.Authentication.cs | 10 -- .../stubs/Microsoft.AspNetCore.Builder.cs | 85 ----------- .../Microsoft.AspNetCore.CookiePolicy.cs | 143 ------------------ .../stubs/Microsoft.AspNetCore.Hosting.cs | 6 - .../stubs/Microsoft.AspNetCore.Http.cs | 87 ----------- .../stubs/Microsoft.AspNetCore.Mvc.cs | 15 -- ...icrosoft.Extensions.DependencyInjection.cs | 48 ------ 8 files changed, 443 deletions(-) delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Authentication.cs delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Builder.cs delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Hosting.cs delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Http.cs delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Mvc.cs delete mode 100644 csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.cs diff --git a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs b/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs deleted file mode 100644 index 6d7bb47bc3c..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Authentication.Cookies.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Microsoft.AspNetCore.Http; -using System; -using System.Runtime.CompilerServices; -using Microsoft.AspNetCore.Authentication; - -namespace Microsoft.AspNetCore.Authentication.Cookies -{ - public class CookieAuthenticationOptions : AuthenticationSchemeOptions - { - public CookieBuilder Cookie - { - get - { - throw null; - } - set - { - } - } - - public bool CookieHttpOnly - { - get - { - return Cookie.HttpOnly; - } - set - { - Cookie.HttpOnly = value; - } - } - - public CookieSecurePolicy CookieSecure - { - get - { - return Cookie.SecurePolicy; - } - set - { - Cookie.SecurePolicy = value; - } - } - - public CookieAuthenticationOptions() - { - } - } -} \ No newline at end of file diff --git a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Authentication.cs b/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Authentication.cs deleted file mode 100644 index 7ea67f651ef..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Authentication.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Microsoft.AspNetCore.Authentication -{ - public class AuthenticationBuilder - { - } - - public class AuthenticationSchemeOptions - { - } -} \ No newline at end of file diff --git a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Builder.cs b/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Builder.cs deleted file mode 100644 index 349d7534512..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Builder.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.CookiePolicy; - -namespace Microsoft.AspNetCore.Builder -{ - public interface IApplicationBuilder - { - IApplicationBuilder Use(Func middleware); - } - - public class CookiePolicyOptions - { - public HttpOnlyPolicy HttpOnly - { - get - { - throw null; - } - set - { - } - } - - public Action OnAppendCookie - { - get - { - throw null; - } - set - { - } - } - - public Action OnDeleteCookie - { - get - { - throw null; - } - set - { - } - } - - public CookieSecurePolicy Secure - { - get - { - throw null; - } - set - { - } - } - } - - public static class CookiePolicyAppBuilderExtensions - { - public static IApplicationBuilder UseCookiePolicy(this IApplicationBuilder app) - { - throw null; - } - - public static IApplicationBuilder UseCookiePolicy(this IApplicationBuilder app, CookiePolicyOptions options) - { - throw null; - } - } - - public class SessionOptions - { - public CookieBuilder Cookie - { - get - { - throw null; - } - set - { - } - } - } -} \ No newline at end of file diff --git a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs b/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs deleted file mode 100644 index 7165410f80c..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.CookiePolicy.cs +++ /dev/null @@ -1,143 +0,0 @@ -using Microsoft.AspNetCore.Http; - -namespace Microsoft.AspNetCore.CookiePolicy -{ - public enum HttpOnlyPolicy - { - None, - Always - } - - public class AppendCookieContext - { - public HttpContext Context - { - get - { - throw null; - } - } - - public string CookieName - { - get - { - throw null; - } - set - { - } - } - - public CookieOptions CookieOptions - { - get - { - throw null; - } - } - - public string CookieValue - { - get - { - throw null; - } - set - { - } - } - - public bool HasConsent - { - get - { - throw null; - } - } - - public bool IsConsentNeeded - { - get - { - throw null; - } - } - - public bool IssueCookie - { - get - { - throw null; - } - set - { - } - } - - public AppendCookieContext(HttpContext context, CookieOptions options, string name, string value) - { - } - } - - public class DeleteCookieContext - { - public HttpContext Context - { - get - { - throw null; - } - } - - public string CookieName - { - get - { - throw null; - } - set - { - } - } - - public CookieOptions CookieOptions - { - get - { - throw null; - } - } - - public bool HasConsent - { - get - { - throw null; - } - } - - public bool IsConsentNeeded - { - get - { - throw null; - } - } - - public bool IssueCookie - { - get - { - throw null; - } - set - { - } - } - - public DeleteCookieContext(HttpContext context, CookieOptions options, string name) - { - } - } -} \ No newline at end of file diff --git a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Hosting.cs b/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Hosting.cs deleted file mode 100644 index 3de9b29fc22..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Hosting.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Microsoft.AspNetCore.Hosting -{ - public interface IWebHostEnvironment - { - } -} diff --git a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Http.cs b/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Http.cs deleted file mode 100644 index 2bdf11451b3..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Http.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System.Threading.Tasks; - -namespace Microsoft.AspNetCore.Http -{ - public interface IResponseCookies - { - void Append(string key, string value); - - void Append(string key, string value, CookieOptions options); - - void Delete(string key); - - void Delete(string key, CookieOptions options); - } - - public abstract class HttpResponse - { - public abstract IResponseCookies Cookies - { - get; - } - } - - public class CookieOptions - { - public bool HttpOnly - { - get - { - throw null; - } - set - { - } - } - - public bool Secure - { - get - { - throw null; - } - set - { - } - } - } - - public delegate Task RequestDelegate(HttpContext context); - - public abstract class HttpContext - { - } - - public enum CookieSecurePolicy - { - SameAsRequest, - Always, - None - } - - public class CookieBuilder - { - public virtual bool HttpOnly - { - get - { - throw null; - } - set - { - } - } - - public virtual CookieSecurePolicy SecurePolicy - { - get - { - throw null; - } - set - { - } - } - - } -} \ No newline at end of file diff --git a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Mvc.cs b/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Mvc.cs deleted file mode 100644 index 66eb0515f99..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.AspNetCore.Mvc.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Microsoft.AspNetCore.Http; - -namespace Microsoft.AspNetCore.Mvc -{ - public abstract class Controller - { - public HttpResponse Response - { - get - { - throw null; - } - } - } -} \ No newline at end of file diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.cs b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.cs deleted file mode 100644 index 786ef893861..00000000000 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Authentication.Cookies; - -namespace Microsoft.Extensions.DependencyInjection -{ - public interface IServiceCollection - { - } - - public static class OptionsServiceCollectionExtensions - { - public static IServiceCollection Configure(this IServiceCollection services, Action configureOptions) where TOptions : class - { - throw null; - } - } - - public static class AuthenticationServiceCollectionExtensions - { - public static AuthenticationBuilder AddAuthentication(this IServiceCollection services) - { - throw null; - } - } - - public static class CookieExtensions - { - public static AuthenticationBuilder AddCookie(this AuthenticationBuilder builder, Action configureOptions) - { - throw null; - } - } - - public static class SessionServiceCollectionExtensions - { - public static IServiceCollection AddSession(this IServiceCollection services) - { - throw null; - } - - public static IServiceCollection AddSession(this IServiceCollection services, Action configure) - { - throw null; - } - } -} \ No newline at end of file From 06fecf3869ec2739f946ad69250147c320ffe18e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 9 Aug 2022 15:12:31 +0100 Subject: [PATCH 685/736] Swift: Include 'any!' in the the CFG tree for 'any' expressions. --- .../swift/controlflow/internal/ControlFlowGraphImpl.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index b367aa80d52..2b7e7b5b963 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -1676,8 +1676,8 @@ module Exprs { } } - private class TryTree extends AstStandardPostOrderTree { - override TryExpr ast; + private class AnyTryTree extends AstStandardPostOrderTree { + override AnyTryExpr ast; override ControlFlowElement getChildElement(int i) { i = 0 and From 5ee11c3d7b4009e224169a5ab6dbb33d8b997df3 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 9 Aug 2022 15:12:42 +0100 Subject: [PATCH 686/736] Swift: Accept test changes. --- .../controlflow/graph/Cfg.expected | 82 +++++++++++++++++++ .../CWE-079/UnsafeWebViewFetch.expected | 12 +++ .../Security/CWE-079/UnsafeWebViewFetch.swift | 6 +- 3 files changed, 97 insertions(+), 3 deletions(-) diff --git a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected index e7ea8fc83b6..c6e8d620e85 100644 --- a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -200,6 +200,7 @@ cfg.swift: #-----| -> Did not throw. # 29| call to print(_:separator:terminator:) +#-----| -> mightThrow(x:) # 29| default separator #-----| -> default terminator @@ -219,6 +220,43 @@ cfg.swift: # 29| [...] #-----| -> [...] +# 30| try! ... +#-----| -> print(_:separator:terminator:) + +# 30| mightThrow(x:) +#-----| -> 0 + +# 30| call to mightThrow(x:) +#-----| -> try! ... +#-----| exception -> case ... + +# 30| 0 +#-----| -> call to mightThrow(x:) + +# 31| print(_:separator:terminator:) +#-----| -> Still did not throw. + +# 31| call to print(_:separator:terminator:) +#-----| -> 0 + +# 31| default separator +#-----| -> default terminator + +# 31| default terminator +#-----| -> call to print(_:separator:terminator:) + +# 31| (Any) ... +#-----| -> [...] + +# 31| Still did not throw. +#-----| -> (Any) ... + +# 31| [...] +#-----| -> default separator + +# 31| [...] +#-----| -> [...] + # 33| case ... #-----| -> ... is ... @@ -5306,6 +5344,7 @@ cfg.swift: #-----| -> Did not throw. # 386| call to print(_:separator:terminator:) +#-----| -> mightThrow(x:) # 386| default separator #-----| -> default terminator @@ -5325,6 +5364,49 @@ cfg.swift: # 386| [...] #-----| -> [...] +# 387| try! ... +#-----| -> print(_:separator:terminator:) + +# 387| mightThrow(x:) +#-----| -> 0 + +# 387| call to mightThrow(x:) +#-----| exception -> exit doWithoutCatch(x:) (normal) +#-----| -> try! ... + +# 387| 0 +#-----| -> call to mightThrow(x:) + +# 388| print(_:separator:terminator:) +#-----| -> Still did not throw. + +# 388| call to print(_:separator:terminator:) +#-----| -> 0 + +# 388| default separator +#-----| -> default terminator + +# 388| default terminator +#-----| -> call to print(_:separator:terminator:) + +# 388| (Any) ... +#-----| -> [...] + +# 388| Still did not throw. +#-----| -> (Any) ... + +# 388| [...] +#-----| -> default separator + +# 388| [...] +#-----| -> [...] + +# 390| return ... +#-----| return -> exit doWithoutCatch(x:) (normal) + +# 390| 0 +#-----| -> return ... + # 394| (unnamed function decl) # 394| enter (unnamed function decl) 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 53983de94c5..f11e0bbe6f2 100644 --- a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected +++ b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected @@ -5,6 +5,9 @@ edges | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() : | | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | +| UnsafeWebViewFetch.swift:103:30:103:84 | call to ... : | UnsafeWebViewFetch.swift:103:25:103:84 | try! ... | +| UnsafeWebViewFetch.swift:105:18:105:72 | call to ... : | UnsafeWebViewFetch.swift:106:25:106:25 | data | +| UnsafeWebViewFetch.swift:109:30:109:53 | call to ... : | UnsafeWebViewFetch.swift:109:25:109:53 | try! ... | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | @@ -36,6 +39,12 @@ edges nodes | UnsafeWebViewFetch.swift:94:10:94:37 | try ... : | semmle.label | try ... : | | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | semmle.label | call to ... : | +| UnsafeWebViewFetch.swift:103:25:103:84 | try! ... | semmle.label | try! ... | +| UnsafeWebViewFetch.swift:103:30:103:84 | call to ... : | semmle.label | call to ... : | +| UnsafeWebViewFetch.swift:105:18:105:72 | call to ... : | semmle.label | call to ... : | +| UnsafeWebViewFetch.swift:106:25:106:25 | data | semmle.label | data | +| UnsafeWebViewFetch.swift:109:25:109:53 | try! ... | semmle.label | try! ... | +| UnsafeWebViewFetch.swift:109:30:109:53 | call to ... : | semmle.label | call to ... : | | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() : | semmle.label | call to getRemoteData() : | | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | semmle.label | call to getRemoteData() | | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | semmle.label | remoteString | @@ -71,6 +80,9 @@ nodes | UnsafeWebViewFetch.swift:211:25:211:25 | htmlData | semmle.label | htmlData | subpaths #select +| UnsafeWebViewFetch.swift:103:25:103:84 | try! ... | UnsafeWebViewFetch.swift:103:30:103:84 | call to ... : | UnsafeWebViewFetch.swift:103:25:103:84 | try! ... | Tainted data is used in a WebView fetch without restricting the base URL. | +| UnsafeWebViewFetch.swift:106:25:106:25 | data | UnsafeWebViewFetch.swift:105:18:105:72 | call to ... : | UnsafeWebViewFetch.swift:106:25:106:25 | data | Tainted data is used in a WebView fetch without restricting the base URL. | +| UnsafeWebViewFetch.swift:109:25:109:53 | try! ... | UnsafeWebViewFetch.swift:109:30:109:53 | call to ... : | UnsafeWebViewFetch.swift:109:25:109:53 | try! ... | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | Tainted data is used in a WebView fetch without restricting the base URL. | | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | UnsafeWebViewFetch.swift:94:14:94:37 | call to ... : | UnsafeWebViewFetch.swift:124:25:124:51 | ... call to +(_:_:) ... | Tainted data is used in a WebView fetch without restricting the base URL. | diff --git a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift index c6fc1628fbe..6ee075b4d3d 100644 --- a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift +++ b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.swift @@ -100,13 +100,13 @@ func getRemoteData() -> String { func testSimpleFlows() { let webview = UIWebView() - webview.loadHTMLString(try! String(contentsOf: URL(string: "http://example.com/")!), baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString(try! String(contentsOf: URL(string: "http://example.com/")!), baseURL: nil) // BAD let data = try! String(contentsOf: URL(string: "http://example.com/")!) - webview.loadHTMLString(data, baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString(data, baseURL: nil) // BAD let url = URL(string: "http://example.com/") - webview.loadHTMLString(try! String(contentsOf: url!), baseURL: nil) // BAD [NOT DETECTED] + webview.loadHTMLString(try! String(contentsOf: url!), baseURL: nil) // BAD } func testUIWebView() { From 014160970317bab86e06f2764fe6880ed83a0261 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 9 Aug 2022 12:26:49 +0100 Subject: [PATCH 687/736] Swift: Rename test. --- .../dataflow/taint/LocalTaint.expected | 242 +++++++++--------- .../dataflow/taint/Taint.expected | 32 +-- .../taint/{test.swift => string.swift} | 0 3 files changed, 137 insertions(+), 137 deletions(-) rename swift/ql/test/library-tests/dataflow/taint/{test.swift => string.swift} (100%) diff --git a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected index 6796c2e8c40..6c4467277f4 100644 --- a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected @@ -1,121 +1,121 @@ -| file://:0:0:0:0 | Phi | test.swift:7:14:7:14 | $interpolation | -| file://:0:0:0:0 | Phi | test.swift:9:14:9:14 | $interpolation | -| file://:0:0:0:0 | Phi | test.swift:11:14:11:14 | $interpolation | -| file://:0:0:0:0 | Phi | test.swift:14:14:14:14 | $interpolation | -| file://:0:0:0:0 | Phi | test.swift:16:14:16:14 | $interpolation | -| file://:0:0:0:0 | Phi | test.swift:18:14:18:14 | $interpolation | -| file://:0:0:0:0 | Phi | test.swift:21:14:21:14 | $interpolation | -| test.swift:5:7:5:7 | WriteDef | test.swift:7:16:7:16 | x | -| test.swift:5:11:5:18 | call to source() | test.swift:5:7:5:7 | WriteDef | -| test.swift:7:13:7:13 | WriteDef | file://:0:0:0:0 | Phi | -| test.swift:7:14:7:14 | $interpolation | test.swift:7:14:7:14 | &... | -| test.swift:7:14:7:14 | : &... | test.swift:7:14:7:14 | WriteDef | -| test.swift:7:14:7:14 | WriteDef | test.swift:7:15:7:15 | $interpolation | -| test.swift:7:15:7:15 | $interpolation | test.swift:7:15:7:15 | &... | -| test.swift:7:15:7:15 | : &... | test.swift:7:15:7:15 | WriteDef | -| test.swift:7:15:7:15 | WriteDef | test.swift:7:18:7:18 | $interpolation | -| test.swift:7:16:7:16 | x | test.swift:9:16:9:16 | x | -| test.swift:7:18:7:18 | $interpolation | test.swift:7:18:7:18 | &... | -| test.swift:7:18:7:18 | : &... | test.swift:7:18:7:18 | WriteDef | -| test.swift:7:18:7:18 | WriteDef | test.swift:7:13:7:13 | TapExpr | -| test.swift:9:13:9:13 | WriteDef | file://:0:0:0:0 | Phi | -| test.swift:9:14:9:14 | $interpolation | test.swift:9:14:9:14 | &... | -| test.swift:9:14:9:14 | : &... | test.swift:9:14:9:14 | WriteDef | -| test.swift:9:14:9:14 | WriteDef | test.swift:9:15:9:15 | $interpolation | -| test.swift:9:15:9:15 | $interpolation | test.swift:9:15:9:15 | &... | -| test.swift:9:15:9:15 | : &... | test.swift:9:15:9:15 | WriteDef | -| test.swift:9:15:9:15 | WriteDef | test.swift:9:18:9:18 | $interpolation | -| test.swift:9:16:9:16 | x | test.swift:9:21:9:21 | x | -| test.swift:9:18:9:18 | $interpolation | test.swift:9:18:9:18 | &... | -| test.swift:9:18:9:18 | : &... | test.swift:9:18:9:18 | WriteDef | -| test.swift:9:18:9:18 | WriteDef | test.swift:9:20:9:20 | $interpolation | -| test.swift:9:20:9:20 | $interpolation | test.swift:9:20:9:20 | &... | -| test.swift:9:20:9:20 | : &... | test.swift:9:20:9:20 | WriteDef | -| test.swift:9:20:9:20 | WriteDef | test.swift:9:23:9:23 | $interpolation | -| test.swift:9:21:9:21 | x | test.swift:11:16:11:16 | x | -| test.swift:9:23:9:23 | $interpolation | test.swift:9:23:9:23 | &... | -| test.swift:9:23:9:23 | : &... | test.swift:9:23:9:23 | WriteDef | -| test.swift:9:23:9:23 | WriteDef | test.swift:9:13:9:13 | TapExpr | -| test.swift:11:13:11:13 | WriteDef | file://:0:0:0:0 | Phi | -| test.swift:11:14:11:14 | $interpolation | test.swift:11:14:11:14 | &... | -| test.swift:11:14:11:14 | : &... | test.swift:11:14:11:14 | WriteDef | -| test.swift:11:14:11:14 | WriteDef | test.swift:11:15:11:15 | $interpolation | -| test.swift:11:15:11:15 | $interpolation | test.swift:11:15:11:15 | &... | -| test.swift:11:15:11:15 | : &... | test.swift:11:15:11:15 | WriteDef | -| test.swift:11:15:11:15 | WriteDef | test.swift:11:18:11:18 | $interpolation | -| test.swift:11:16:11:16 | x | test.swift:11:26:11:26 | x | -| test.swift:11:18:11:18 | $interpolation | test.swift:11:18:11:18 | &... | -| test.swift:11:18:11:18 | : &... | test.swift:11:18:11:18 | WriteDef | -| test.swift:11:18:11:18 | WriteDef | test.swift:11:20:11:20 | $interpolation | -| test.swift:11:20:11:20 | $interpolation | test.swift:11:20:11:20 | &... | -| test.swift:11:20:11:20 | : &... | test.swift:11:20:11:20 | WriteDef | -| test.swift:11:20:11:20 | WriteDef | test.swift:11:23:11:23 | $interpolation | -| test.swift:11:23:11:23 | $interpolation | test.swift:11:23:11:23 | &... | -| test.swift:11:23:11:23 | : &... | test.swift:11:23:11:23 | WriteDef | -| test.swift:11:23:11:23 | WriteDef | test.swift:11:25:11:25 | $interpolation | -| test.swift:11:25:11:25 | $interpolation | test.swift:11:25:11:25 | &... | -| test.swift:11:25:11:25 | : &... | test.swift:11:25:11:25 | WriteDef | -| test.swift:11:25:11:25 | WriteDef | test.swift:11:28:11:28 | $interpolation | -| test.swift:11:26:11:26 | x | test.swift:16:16:16:16 | x | -| test.swift:11:28:11:28 | $interpolation | test.swift:11:28:11:28 | &... | -| test.swift:11:28:11:28 | : &... | test.swift:11:28:11:28 | WriteDef | -| test.swift:11:28:11:28 | WriteDef | test.swift:11:13:11:13 | TapExpr | -| test.swift:13:7:13:7 | WriteDef | test.swift:14:16:14:16 | y | -| test.swift:13:11:13:11 | 42 | test.swift:13:7:13:7 | WriteDef | -| test.swift:14:13:14:13 | WriteDef | file://:0:0:0:0 | Phi | -| test.swift:14:14:14:14 | $interpolation | test.swift:14:14:14:14 | &... | -| test.swift:14:14:14:14 | : &... | test.swift:14:14:14:14 | WriteDef | -| test.swift:14:14:14:14 | WriteDef | test.swift:14:15:14:15 | $interpolation | -| test.swift:14:15:14:15 | $interpolation | test.swift:14:15:14:15 | &... | -| test.swift:14:15:14:15 | : &... | test.swift:14:15:14:15 | WriteDef | -| test.swift:14:15:14:15 | WriteDef | test.swift:14:18:14:18 | $interpolation | -| test.swift:14:16:14:16 | y | test.swift:16:27:16:27 | y | -| test.swift:14:18:14:18 | $interpolation | test.swift:14:18:14:18 | &... | -| test.swift:14:18:14:18 | : &... | test.swift:14:18:14:18 | WriteDef | -| test.swift:14:18:14:18 | WriteDef | test.swift:14:13:14:13 | TapExpr | -| test.swift:16:13:16:13 | WriteDef | file://:0:0:0:0 | Phi | -| test.swift:16:14:16:14 | $interpolation | test.swift:16:14:16:14 | &... | -| test.swift:16:14:16:14 | : &... | test.swift:16:14:16:14 | WriteDef | -| test.swift:16:14:16:14 | WriteDef | test.swift:16:15:16:15 | $interpolation | -| test.swift:16:15:16:15 | $interpolation | test.swift:16:15:16:15 | &... | -| test.swift:16:15:16:15 | : &... | test.swift:16:15:16:15 | WriteDef | -| test.swift:16:15:16:15 | WriteDef | test.swift:16:18:16:18 | $interpolation | -| test.swift:16:16:16:16 | x | test.swift:18:27:18:27 | x | -| test.swift:16:18:16:18 | $interpolation | test.swift:16:18:16:18 | &... | -| test.swift:16:18:16:18 | : &... | test.swift:16:18:16:18 | WriteDef | -| test.swift:16:18:16:18 | WriteDef | test.swift:16:26:16:26 | $interpolation | -| test.swift:16:26:16:26 | $interpolation | test.swift:16:26:16:26 | &... | -| test.swift:16:26:16:26 | : &... | test.swift:16:26:16:26 | WriteDef | -| test.swift:16:26:16:26 | WriteDef | test.swift:16:29:16:29 | $interpolation | -| test.swift:16:27:16:27 | y | test.swift:18:16:18:16 | y | -| test.swift:16:29:16:29 | $interpolation | test.swift:16:29:16:29 | &... | -| test.swift:16:29:16:29 | : &... | test.swift:16:29:16:29 | WriteDef | -| test.swift:16:29:16:29 | WriteDef | test.swift:16:13:16:13 | TapExpr | -| test.swift:18:13:18:13 | WriteDef | file://:0:0:0:0 | Phi | -| test.swift:18:14:18:14 | $interpolation | test.swift:18:14:18:14 | &... | -| test.swift:18:14:18:14 | : &... | test.swift:18:14:18:14 | WriteDef | -| test.swift:18:14:18:14 | WriteDef | test.swift:18:15:18:15 | $interpolation | -| test.swift:18:15:18:15 | $interpolation | test.swift:18:15:18:15 | &... | -| test.swift:18:15:18:15 | : &... | test.swift:18:15:18:15 | WriteDef | -| test.swift:18:15:18:15 | WriteDef | test.swift:18:18:18:18 | $interpolation | -| test.swift:18:18:18:18 | $interpolation | test.swift:18:18:18:18 | &... | -| test.swift:18:18:18:18 | : &... | test.swift:18:18:18:18 | WriteDef | -| test.swift:18:18:18:18 | WriteDef | test.swift:18:26:18:26 | $interpolation | -| test.swift:18:26:18:26 | $interpolation | test.swift:18:26:18:26 | &... | -| test.swift:18:26:18:26 | : &... | test.swift:18:26:18:26 | WriteDef | -| test.swift:18:26:18:26 | WriteDef | test.swift:18:29:18:29 | $interpolation | -| test.swift:18:29:18:29 | $interpolation | test.swift:18:29:18:29 | &... | -| test.swift:18:29:18:29 | : &... | test.swift:18:29:18:29 | WriteDef | -| test.swift:18:29:18:29 | WriteDef | test.swift:18:13:18:13 | TapExpr | -| test.swift:20:3:20:7 | WriteDef | test.swift:21:16:21:16 | x | -| test.swift:20:7:20:7 | 0 | test.swift:20:3:20:7 | WriteDef | -| test.swift:21:13:21:13 | WriteDef | file://:0:0:0:0 | Phi | -| test.swift:21:14:21:14 | $interpolation | test.swift:21:14:21:14 | &... | -| test.swift:21:14:21:14 | : &... | test.swift:21:14:21:14 | WriteDef | -| test.swift:21:14:21:14 | WriteDef | test.swift:21:15:21:15 | $interpolation | -| test.swift:21:15:21:15 | $interpolation | test.swift:21:15:21:15 | &... | -| test.swift:21:15:21:15 | : &... | test.swift:21:15:21:15 | WriteDef | -| test.swift:21:15:21:15 | WriteDef | test.swift:21:18:21:18 | $interpolation | -| test.swift:21:18:21:18 | $interpolation | test.swift:21:18:21:18 | &... | -| test.swift:21:18:21:18 | : &... | test.swift:21:18:21:18 | WriteDef | -| test.swift:21:18:21:18 | WriteDef | test.swift:21:13:21:13 | TapExpr | +| file://:0:0:0:0 | Phi | string.swift:7:14:7:14 | $interpolation | +| file://:0:0:0:0 | Phi | string.swift:9:14:9:14 | $interpolation | +| file://:0:0:0:0 | Phi | string.swift:11:14:11:14 | $interpolation | +| file://:0:0:0:0 | Phi | string.swift:14:14:14:14 | $interpolation | +| file://:0:0:0:0 | Phi | string.swift:16:14:16:14 | $interpolation | +| file://:0:0:0:0 | Phi | string.swift:18:14:18:14 | $interpolation | +| file://:0:0:0:0 | Phi | string.swift:21:14:21:14 | $interpolation | +| string.swift:5:7:5:7 | WriteDef | string.swift:7:16:7:16 | x | +| string.swift:5:11:5:18 | call to source() | string.swift:5:7:5:7 | WriteDef | +| string.swift:7:13:7:13 | WriteDef | file://:0:0:0:0 | Phi | +| string.swift:7:14:7:14 | $interpolation | string.swift:7:14:7:14 | &... | +| string.swift:7:14:7:14 | : &... | string.swift:7:14:7:14 | WriteDef | +| string.swift:7:14:7:14 | WriteDef | string.swift:7:15:7:15 | $interpolation | +| string.swift:7:15:7:15 | $interpolation | string.swift:7:15:7:15 | &... | +| string.swift:7:15:7:15 | : &... | string.swift:7:15:7:15 | WriteDef | +| string.swift:7:15:7:15 | WriteDef | string.swift:7:18:7:18 | $interpolation | +| string.swift:7:16:7:16 | x | string.swift:9:16:9:16 | x | +| string.swift:7:18:7:18 | $interpolation | string.swift:7:18:7:18 | &... | +| string.swift:7:18:7:18 | : &... | string.swift:7:18:7:18 | WriteDef | +| string.swift:7:18:7:18 | WriteDef | string.swift:7:13:7:13 | TapExpr | +| string.swift:9:13:9:13 | WriteDef | file://:0:0:0:0 | Phi | +| string.swift:9:14:9:14 | $interpolation | string.swift:9:14:9:14 | &... | +| string.swift:9:14:9:14 | : &... | string.swift:9:14:9:14 | WriteDef | +| string.swift:9:14:9:14 | WriteDef | string.swift:9:15:9:15 | $interpolation | +| string.swift:9:15:9:15 | $interpolation | string.swift:9:15:9:15 | &... | +| string.swift:9:15:9:15 | : &... | string.swift:9:15:9:15 | WriteDef | +| string.swift:9:15:9:15 | WriteDef | string.swift:9:18:9:18 | $interpolation | +| string.swift:9:16:9:16 | x | string.swift:9:21:9:21 | x | +| string.swift:9:18:9:18 | $interpolation | string.swift:9:18:9:18 | &... | +| string.swift:9:18:9:18 | : &... | string.swift:9:18:9:18 | WriteDef | +| string.swift:9:18:9:18 | WriteDef | string.swift:9:20:9:20 | $interpolation | +| string.swift:9:20:9:20 | $interpolation | string.swift:9:20:9:20 | &... | +| string.swift:9:20:9:20 | : &... | string.swift:9:20:9:20 | WriteDef | +| string.swift:9:20:9:20 | WriteDef | string.swift:9:23:9:23 | $interpolation | +| string.swift:9:21:9:21 | x | string.swift:11:16:11:16 | x | +| string.swift:9:23:9:23 | $interpolation | string.swift:9:23:9:23 | &... | +| string.swift:9:23:9:23 | : &... | string.swift:9:23:9:23 | WriteDef | +| string.swift:9:23:9:23 | WriteDef | string.swift:9:13:9:13 | TapExpr | +| string.swift:11:13:11:13 | WriteDef | file://:0:0:0:0 | Phi | +| string.swift:11:14:11:14 | $interpolation | string.swift:11:14:11:14 | &... | +| string.swift:11:14:11:14 | : &... | string.swift:11:14:11:14 | WriteDef | +| string.swift:11:14:11:14 | WriteDef | string.swift:11:15:11:15 | $interpolation | +| string.swift:11:15:11:15 | $interpolation | string.swift:11:15:11:15 | &... | +| string.swift:11:15:11:15 | : &... | string.swift:11:15:11:15 | WriteDef | +| string.swift:11:15:11:15 | WriteDef | string.swift:11:18:11:18 | $interpolation | +| string.swift:11:16:11:16 | x | string.swift:11:26:11:26 | x | +| string.swift:11:18:11:18 | $interpolation | string.swift:11:18:11:18 | &... | +| string.swift:11:18:11:18 | : &... | string.swift:11:18:11:18 | WriteDef | +| string.swift:11:18:11:18 | WriteDef | string.swift:11:20:11:20 | $interpolation | +| string.swift:11:20:11:20 | $interpolation | string.swift:11:20:11:20 | &... | +| string.swift:11:20:11:20 | : &... | string.swift:11:20:11:20 | WriteDef | +| string.swift:11:20:11:20 | WriteDef | string.swift:11:23:11:23 | $interpolation | +| string.swift:11:23:11:23 | $interpolation | string.swift:11:23:11:23 | &... | +| string.swift:11:23:11:23 | : &... | string.swift:11:23:11:23 | WriteDef | +| string.swift:11:23:11:23 | WriteDef | string.swift:11:25:11:25 | $interpolation | +| string.swift:11:25:11:25 | $interpolation | string.swift:11:25:11:25 | &... | +| string.swift:11:25:11:25 | : &... | string.swift:11:25:11:25 | WriteDef | +| string.swift:11:25:11:25 | WriteDef | string.swift:11:28:11:28 | $interpolation | +| string.swift:11:26:11:26 | x | string.swift:16:16:16:16 | x | +| string.swift:11:28:11:28 | $interpolation | string.swift:11:28:11:28 | &... | +| string.swift:11:28:11:28 | : &... | string.swift:11:28:11:28 | WriteDef | +| string.swift:11:28:11:28 | WriteDef | string.swift:11:13:11:13 | TapExpr | +| string.swift:13:7:13:7 | WriteDef | string.swift:14:16:14:16 | y | +| string.swift:13:11:13:11 | 42 | string.swift:13:7:13:7 | WriteDef | +| string.swift:14:13:14:13 | WriteDef | file://:0:0:0:0 | Phi | +| string.swift:14:14:14:14 | $interpolation | string.swift:14:14:14:14 | &... | +| string.swift:14:14:14:14 | : &... | string.swift:14:14:14:14 | WriteDef | +| string.swift:14:14:14:14 | WriteDef | string.swift:14:15:14:15 | $interpolation | +| string.swift:14:15:14:15 | $interpolation | string.swift:14:15:14:15 | &... | +| string.swift:14:15:14:15 | : &... | string.swift:14:15:14:15 | WriteDef | +| string.swift:14:15:14:15 | WriteDef | string.swift:14:18:14:18 | $interpolation | +| string.swift:14:16:14:16 | y | string.swift:16:27:16:27 | y | +| string.swift:14:18:14:18 | $interpolation | string.swift:14:18:14:18 | &... | +| string.swift:14:18:14:18 | : &... | string.swift:14:18:14:18 | WriteDef | +| string.swift:14:18:14:18 | WriteDef | string.swift:14:13:14:13 | TapExpr | +| string.swift:16:13:16:13 | WriteDef | file://:0:0:0:0 | Phi | +| string.swift:16:14:16:14 | $interpolation | string.swift:16:14:16:14 | &... | +| string.swift:16:14:16:14 | : &... | string.swift:16:14:16:14 | WriteDef | +| string.swift:16:14:16:14 | WriteDef | string.swift:16:15:16:15 | $interpolation | +| string.swift:16:15:16:15 | $interpolation | string.swift:16:15:16:15 | &... | +| string.swift:16:15:16:15 | : &... | string.swift:16:15:16:15 | WriteDef | +| string.swift:16:15:16:15 | WriteDef | string.swift:16:18:16:18 | $interpolation | +| string.swift:16:16:16:16 | x | string.swift:18:27:18:27 | x | +| string.swift:16:18:16:18 | $interpolation | string.swift:16:18:16:18 | &... | +| string.swift:16:18:16:18 | : &... | string.swift:16:18:16:18 | WriteDef | +| string.swift:16:18:16:18 | WriteDef | string.swift:16:26:16:26 | $interpolation | +| string.swift:16:26:16:26 | $interpolation | string.swift:16:26:16:26 | &... | +| string.swift:16:26:16:26 | : &... | string.swift:16:26:16:26 | WriteDef | +| string.swift:16:26:16:26 | WriteDef | string.swift:16:29:16:29 | $interpolation | +| string.swift:16:27:16:27 | y | string.swift:18:16:18:16 | y | +| string.swift:16:29:16:29 | $interpolation | string.swift:16:29:16:29 | &... | +| string.swift:16:29:16:29 | : &... | string.swift:16:29:16:29 | WriteDef | +| string.swift:16:29:16:29 | WriteDef | string.swift:16:13:16:13 | TapExpr | +| string.swift:18:13:18:13 | WriteDef | file://:0:0:0:0 | Phi | +| string.swift:18:14:18:14 | $interpolation | string.swift:18:14:18:14 | &... | +| string.swift:18:14:18:14 | : &... | string.swift:18:14:18:14 | WriteDef | +| string.swift:18:14:18:14 | WriteDef | string.swift:18:15:18:15 | $interpolation | +| string.swift:18:15:18:15 | $interpolation | string.swift:18:15:18:15 | &... | +| string.swift:18:15:18:15 | : &... | string.swift:18:15:18:15 | WriteDef | +| string.swift:18:15:18:15 | WriteDef | string.swift:18:18:18:18 | $interpolation | +| string.swift:18:18:18:18 | $interpolation | string.swift:18:18:18:18 | &... | +| string.swift:18:18:18:18 | : &... | string.swift:18:18:18:18 | WriteDef | +| string.swift:18:18:18:18 | WriteDef | string.swift:18:26:18:26 | $interpolation | +| string.swift:18:26:18:26 | $interpolation | string.swift:18:26:18:26 | &... | +| string.swift:18:26:18:26 | : &... | string.swift:18:26:18:26 | WriteDef | +| string.swift:18:26:18:26 | WriteDef | string.swift:18:29:18:29 | $interpolation | +| string.swift:18:29:18:29 | $interpolation | string.swift:18:29:18:29 | &... | +| string.swift:18:29:18:29 | : &... | string.swift:18:29:18:29 | WriteDef | +| string.swift:18:29:18:29 | WriteDef | string.swift:18:13:18:13 | TapExpr | +| string.swift:20:3:20:7 | WriteDef | string.swift:21:16:21:16 | x | +| string.swift:20:7:20:7 | 0 | string.swift:20:3:20:7 | WriteDef | +| string.swift:21:13:21:13 | WriteDef | file://:0:0:0:0 | Phi | +| string.swift:21:14:21:14 | $interpolation | string.swift:21:14:21:14 | &... | +| string.swift:21:14:21:14 | : &... | string.swift:21:14:21:14 | WriteDef | +| string.swift:21:14:21:14 | WriteDef | string.swift:21:15:21:15 | $interpolation | +| string.swift:21:15:21:15 | $interpolation | string.swift:21:15:21:15 | &... | +| string.swift:21:15:21:15 | : &... | string.swift:21:15:21:15 | WriteDef | +| string.swift:21:15:21:15 | WriteDef | string.swift:21:18:21:18 | $interpolation | +| string.swift:21:18:21:18 | $interpolation | string.swift:21:18:21:18 | &... | +| string.swift:21:18:21:18 | : &... | string.swift:21:18:21:18 | WriteDef | +| string.swift:21:18:21:18 | WriteDef | string.swift:21:13:21:13 | TapExpr | diff --git a/swift/ql/test/library-tests/dataflow/taint/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/Taint.expected index fea536d78c0..8995eef7c1e 100644 --- a/swift/ql/test/library-tests/dataflow/taint/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/Taint.expected @@ -1,20 +1,20 @@ edges -| test.swift:5:11:5:18 | call to source() : | test.swift:7:13:7:13 | "..." | -| test.swift:5:11:5:18 | call to source() : | test.swift:9:13:9:13 | "..." | -| test.swift:5:11:5:18 | call to source() : | test.swift:11:13:11:13 | "..." | -| test.swift:5:11:5:18 | call to source() : | test.swift:16:13:16:13 | "..." | -| test.swift:5:11:5:18 | call to source() : | test.swift:18:13:18:13 | "..." | +| string.swift:5:11:5:18 | call to source() : | string.swift:7:13:7:13 | "..." | +| string.swift:5:11:5:18 | call to source() : | string.swift:9:13:9:13 | "..." | +| string.swift:5:11:5:18 | call to source() : | string.swift:11:13:11:13 | "..." | +| string.swift:5:11:5:18 | call to source() : | string.swift:16:13:16:13 | "..." | +| string.swift:5:11:5:18 | call to source() : | string.swift:18:13:18:13 | "..." | nodes -| test.swift:5:11:5:18 | call to source() : | semmle.label | call to source() : | -| test.swift:7:13:7:13 | "..." | semmle.label | "..." | -| test.swift:9:13:9:13 | "..." | semmle.label | "..." | -| test.swift:11:13:11:13 | "..." | semmle.label | "..." | -| test.swift:16:13:16:13 | "..." | semmle.label | "..." | -| test.swift:18:13:18:13 | "..." | semmle.label | "..." | +| string.swift:5:11:5:18 | call to source() : | semmle.label | call to source() : | +| string.swift:7:13:7:13 | "..." | semmle.label | "..." | +| string.swift:9:13:9:13 | "..." | semmle.label | "..." | +| string.swift:11:13:11:13 | "..." | semmle.label | "..." | +| string.swift:16:13:16:13 | "..." | semmle.label | "..." | +| string.swift:18:13:18:13 | "..." | semmle.label | "..." | subpaths #select -| test.swift:7:13:7:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:7:13:7:13 | "..." | result | -| test.swift:9:13:9:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:9:13:9:13 | "..." | result | -| test.swift:11:13:11:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:11:13:11:13 | "..." | result | -| test.swift:16:13:16:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:16:13:16:13 | "..." | result | -| test.swift:18:13:18:13 | "..." | test.swift:5:11:5:18 | call to source() : | test.swift:18:13:18:13 | "..." | result | +| string.swift:7:13:7:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:7:13:7:13 | "..." | result | +| string.swift:9:13:9:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:9:13:9:13 | "..." | result | +| string.swift:11:13:11:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:11:13:11:13 | "..." | result | +| string.swift:16:13:16:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:16:13:16:13 | "..." | result | +| string.swift:18:13:18:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:18:13:18:13 | "..." | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/test.swift b/swift/ql/test/library-tests/dataflow/taint/string.swift similarity index 100% rename from swift/ql/test/library-tests/dataflow/taint/test.swift rename to swift/ql/test/library-tests/dataflow/taint/string.swift From 068ec8ea20c2be25f70c379c7be6c58b72d935a1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 9 Aug 2022 13:07:23 +0100 Subject: [PATCH 688/736] Swift: More tests of taint flow through Strings. --- .../dataflow/taint/LocalTaint.expected | 55 +++++++++++++++ .../dataflow/taint/Taint.expected | 4 ++ .../library-tests/dataflow/taint/Taint.ql | 4 +- .../library-tests/dataflow/taint/string.swift | 69 ++++++++++++++++++- 4 files changed, 129 insertions(+), 3 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected index 6c4467277f4..e084a24a2bd 100644 --- a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected @@ -119,3 +119,58 @@ | string.swift:21:18:21:18 | $interpolation | string.swift:21:18:21:18 | &... | | string.swift:21:18:21:18 | : &... | string.swift:21:18:21:18 | WriteDef | | string.swift:21:18:21:18 | WriteDef | string.swift:21:13:21:13 | TapExpr | +| string.swift:27:7:27:7 | WriteDef | string.swift:30:13:30:13 | clean | +| string.swift:27:15:27:15 | abcdef | string.swift:27:7:27:7 | WriteDef | +| string.swift:28:7:28:7 | WriteDef | string.swift:31:13:31:13 | tainted | +| string.swift:28:17:28:25 | call to source2() | string.swift:28:7:28:7 | WriteDef | +| string.swift:30:13:30:13 | clean | string.swift:33:13:33:13 | clean | +| string.swift:31:13:31:13 | tainted | string.swift:34:21:34:21 | tainted | +| string.swift:33:13:33:13 | clean | string.swift:33:21:33:21 | clean | +| string.swift:33:21:33:21 | clean | string.swift:34:13:34:13 | clean | +| string.swift:34:13:34:13 | clean | string.swift:35:23:35:23 | clean | +| string.swift:34:21:34:21 | tainted | string.swift:35:13:35:13 | tainted | +| string.swift:35:13:35:13 | tainted | string.swift:36:13:36:13 | tainted | +| string.swift:35:23:35:23 | clean | string.swift:38:19:38:19 | clean | +| string.swift:36:13:36:13 | tainted | string.swift:36:23:36:23 | tainted | +| string.swift:36:23:36:23 | tainted | string.swift:39:19:39:19 | tainted | +| string.swift:41:7:41:7 | WriteDef | string.swift:43:13:43:13 | str | +| string.swift:41:13:41:13 | abc | string.swift:41:7:41:7 | WriteDef | +| string.swift:43:13:43:13 | str | string.swift:45:3:45:3 | str | +| string.swift:45:3:45:3 | : &... | string.swift:45:3:45:10 | WriteDef | +| string.swift:45:3:45:3 | str | string.swift:45:3:45:3 | &... | +| string.swift:45:3:45:10 | WriteDef | string.swift:46:13:46:13 | str | +| string.swift:46:13:46:13 | str | string.swift:48:3:48:3 | str | +| string.swift:48:3:48:3 | : &... | string.swift:48:3:48:18 | WriteDef | +| string.swift:48:3:48:3 | str | string.swift:48:3:48:3 | &... | +| string.swift:48:3:48:18 | WriteDef | string.swift:49:13:49:13 | str | +| string.swift:51:7:51:7 | WriteDef | string.swift:53:13:53:13 | str2 | +| string.swift:51:14:51:14 | abc | string.swift:51:7:51:7 | WriteDef | +| string.swift:53:13:53:13 | str2 | string.swift:55:3:55:3 | str2 | +| string.swift:55:3:55:3 | : &... | string.swift:55:3:55:8 | WriteDef | +| string.swift:55:3:55:3 | str2 | string.swift:55:3:55:3 | &... | +| string.swift:55:3:55:8 | WriteDef | string.swift:56:13:56:13 | str2 | +| string.swift:56:13:56:13 | str2 | string.swift:58:3:58:3 | str2 | +| string.swift:58:3:58:3 | : &... | string.swift:58:3:58:8 | WriteDef | +| string.swift:58:3:58:3 | str2 | string.swift:58:3:58:3 | &... | +| string.swift:58:3:58:8 | WriteDef | string.swift:59:13:59:13 | str2 | +| string.swift:59:13:59:13 | str2 | string.swift:69:13:69:13 | str2 | +| string.swift:61:7:61:7 | WriteDef | string.swift:63:13:63:13 | str3 | +| string.swift:61:14:61:14 | abc | string.swift:61:7:61:7 | WriteDef | +| string.swift:63:13:63:13 | str3 | string.swift:65:3:65:3 | str3 | +| string.swift:65:3:65:3 | : &... | string.swift:65:3:65:8 | WriteDef | +| string.swift:65:3:65:3 | str3 | string.swift:65:3:65:3 | &... | +| string.swift:65:3:65:8 | WriteDef | string.swift:66:13:66:13 | str3 | +| string.swift:66:13:66:13 | str3 | string.swift:68:3:68:3 | str3 | +| string.swift:68:3:68:3 | str3 | string.swift:68:3:68:3 | &... | +| string.swift:73:7:73:7 | WriteDef | string.swift:77:20:77:20 | clean | +| string.swift:73:15:73:15 | | string.swift:73:7:73:7 | WriteDef | +| string.swift:74:7:74:7 | WriteDef | string.swift:78:20:78:20 | tainted | +| string.swift:74:17:74:25 | call to source2() | string.swift:74:7:74:7 | WriteDef | +| string.swift:75:7:75:7 | WriteDef | string.swift:79:20:79:20 | taintedInt | +| string.swift:75:20:75:27 | call to source() | string.swift:75:7:75:7 | WriteDef | +| string.swift:77:20:77:20 | clean | string.swift:81:31:81:31 | clean | +| string.swift:78:20:78:20 | tainted | string.swift:82:31:82:31 | tainted | +| string.swift:81:31:81:31 | clean | string.swift:84:13:84:13 | clean | +| string.swift:82:31:82:31 | tainted | string.swift:85:13:85:13 | tainted | +| string.swift:84:13:84:13 | clean | string.swift:87:13:87:13 | clean | +| string.swift:85:13:85:13 | tainted | string.swift:88:13:88:13 | tainted | diff --git a/swift/ql/test/library-tests/dataflow/taint/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/Taint.expected index 8995eef7c1e..1b488a7e141 100644 --- a/swift/ql/test/library-tests/dataflow/taint/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/Taint.expected @@ -4,6 +4,7 @@ edges | string.swift:5:11:5:18 | call to source() : | string.swift:11:13:11:13 | "..." | | string.swift:5:11:5:18 | call to source() : | string.swift:16:13:16:13 | "..." | | string.swift:5:11:5:18 | call to source() : | string.swift:18:13:18:13 | "..." | +| string.swift:28:17:28:25 | call to source2() : | string.swift:31:13:31:13 | tainted | nodes | string.swift:5:11:5:18 | call to source() : | semmle.label | call to source() : | | string.swift:7:13:7:13 | "..." | semmle.label | "..." | @@ -11,6 +12,8 @@ nodes | string.swift:11:13:11:13 | "..." | semmle.label | "..." | | string.swift:16:13:16:13 | "..." | semmle.label | "..." | | string.swift:18:13:18:13 | "..." | semmle.label | "..." | +| string.swift:28:17:28:25 | call to source2() : | semmle.label | call to source2() : | +| string.swift:31:13:31:13 | tainted | semmle.label | tainted | subpaths #select | string.swift:7:13:7:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:7:13:7:13 | "..." | result | @@ -18,3 +21,4 @@ subpaths | string.swift:11:13:11:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:11:13:11:13 | "..." | result | | string.swift:16:13:16:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:16:13:16:13 | "..." | result | | string.swift:18:13:18:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:18:13:18:13 | "..." | result | +| string.swift:31:13:31:13 | tainted | string.swift:28:17:28:25 | call to source2() : | string.swift:31:13:31:13 | tainted | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/Taint.ql b/swift/ql/test/library-tests/dataflow/taint/Taint.ql index 35836c4cffc..73297606888 100644 --- a/swift/ql/test/library-tests/dataflow/taint/Taint.ql +++ b/swift/ql/test/library-tests/dataflow/taint/Taint.ql @@ -11,12 +11,12 @@ class TestConfiguration extends TaintTracking::Configuration { TestConfiguration() { this = "TestConfiguration" } override predicate isSource(Node src) { - src.asExpr().(CallExpr).getStaticTarget().getName() = "source()" + src.asExpr().(CallExpr).getStaticTarget().getName().matches("source%") } override predicate isSink(Node sink) { exists(CallExpr sinkCall | - sinkCall.getStaticTarget().getName() = "sink(arg:)" and + sinkCall.getStaticTarget().getName().matches("sink%") and sinkCall.getAnArgument().getExpr() = sink.asExpr() ) } diff --git a/swift/ql/test/library-tests/dataflow/taint/string.swift b/swift/ql/test/library-tests/dataflow/taint/string.swift index 36ff201788b..12357d81dc6 100644 --- a/swift/ql/test/library-tests/dataflow/taint/string.swift +++ b/swift/ql/test/library-tests/dataflow/taint/string.swift @@ -19,4 +19,71 @@ func taintThroughInterpolatedStrings() { x = 0 sink(arg: "\(x)") // clean -} \ No newline at end of file +} + +func source2() -> String { return ""; } + +func taintThroughStringConcatenation() { + var clean = "abcdef" + var tainted = source2() + + sink(arg: clean) + sink(arg: tainted) // tainted + + sink(arg: clean + clean) + sink(arg: clean + tainted) // tainted [NOT DETECTED] + sink(arg: tainted + clean) // tainted [NOT DETECTED] + sink(arg: tainted + tainted) // tainted [NOT DETECTED] + + sink(arg: ">" + clean + "<") + sink(arg: ">" + tainted + "<") // tainted [NOT DETECTED] + + var str = "abc" + + sink(arg: str) + + str += "def" + sink(arg: str) + + str += source2() + sink(arg: str) // tainted [NOT DETECTED] + + var str2 = "abc" + + sink(arg: str2) + + str2.append("def") + sink(arg: str2) + + str2.append(source2()) + sink(arg: str2) // tainted [NOT DETECTED] + + var str3 = "abc" + + sink(arg: str3) + + str3.append(contentsOf: "def") + sink(arg: str3) + + str3.append(contentsOf: source2()) + sink(arg: str2) // tainted [NOT DETECTED] +} + +func taintThroughStringOperations() { + var clean = "" + var tainted = source2() + var taintedInt = source() + + sink(arg: String(clean)) + sink(arg: String(tainted)) // tainted [NOT DETECTED] + sink(arg: String(taintedInt)) // tainted [NOT DETECTED] + + sink(arg: String(repeating: clean, count: 2)) + sink(arg: String(repeating: tainted, count: 2)) // tainted [NOT DETECTED] + + sink(arg: clean.description) + sink(arg: tainted.description) // tainted [NOT DETECTED] + + sink(arg: clean.debugDescription) + sink(arg: tainted.debugDescription) // tainted [NOT DETECTED] +} From 42c3e29a290a759d6bc59febc8057af7d031ced2 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 9 Aug 2022 12:27:07 +0100 Subject: [PATCH 689/736] Swift: Add taint test of URL. --- .../dataflow/taint/LocalTaint.expected | 22 ++++++++++ .../library-tests/dataflow/taint/url.swift | 40 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 swift/ql/test/library-tests/dataflow/taint/url.swift diff --git a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected index e084a24a2bd..715141dba15 100644 --- a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected @@ -174,3 +174,25 @@ | string.swift:82:31:82:31 | tainted | string.swift:85:13:85:13 | tainted | | string.swift:84:13:84:13 | clean | string.swift:87:13:87:13 | clean | | string.swift:85:13:85:13 | tainted | string.swift:88:13:88:13 | tainted | +| url.swift:12:6:12:6 | WriteDef | url.swift:14:29:14:29 | clean | +| url.swift:12:14:12:14 | http://example.com/ | url.swift:12:6:12:6 | WriteDef | +| url.swift:13:6:13:6 | WriteDef | url.swift:15:31:15:31 | tainted | +| url.swift:13:16:13:23 | call to source() | url.swift:13:6:13:6 | WriteDef | +| url.swift:14:6:14:6 | WriteDef | url.swift:17:12:17:12 | urlClean | +| url.swift:14:17:14:35 | ...! | url.swift:14:6:14:6 | WriteDef | +| url.swift:14:29:14:29 | clean | url.swift:20:24:20:24 | clean | +| url.swift:15:6:15:6 | WriteDef | url.swift:18:12:18:12 | urlTainted | +| url.swift:15:19:15:39 | ...! | url.swift:15:6:15:6 | WriteDef | +| url.swift:15:31:15:31 | tainted | url.swift:21:24:21:24 | tainted | +| url.swift:17:12:17:12 | urlClean | url.swift:22:43:22:43 | urlClean | +| url.swift:18:12:18:12 | urlTainted | url.swift:23:43:23:43 | urlTainted | +| url.swift:20:24:20:24 | clean | url.swift:22:24:22:24 | clean | +| url.swift:21:24:21:24 | tainted | url.swift:29:25:29:25 | tainted | +| url.swift:22:24:22:24 | clean | url.swift:23:24:23:24 | clean | +| url.swift:23:24:23:24 | clean | url.swift:25:25:25:25 | clean | +| url.swift:25:25:25:25 | clean | url.swift:34:26:34:26 | clean | +| url.swift:29:25:29:25 | tainted | url.swift:38:28:38:28 | tainted | +| url.swift:34:2:34:31 | WriteDef | url.swift:35:12:35:12 | urlClean2 | +| url.swift:34:14:34:31 | call to ... | url.swift:34:2:34:31 | WriteDef | +| url.swift:38:2:38:35 | WriteDef | url.swift:39:12:39:12 | urlTainted2 | +| url.swift:38:16:38:35 | call to ... | url.swift:38:2:38:35 | WriteDef | diff --git a/swift/ql/test/library-tests/dataflow/taint/url.swift b/swift/ql/test/library-tests/dataflow/taint/url.swift new file mode 100644 index 00000000000..06ec9829b56 --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/url.swift @@ -0,0 +1,40 @@ + +class URL +{ + init?(string: String) {} + init?(string: String, relativeTo: URL?) {} +} + +func source() -> String { return "" } +func sink(arg: URL) {} + +func taintThroughURL() { + let clean = "http://example.com/" + let tainted = source() + let urlClean = URL(string: clean)! + let urlTainted = URL(string: tainted)! + + sink(arg: urlClean) + sink(arg: urlTainted) // tainted [NOT DETECTED] + + sink(arg: URL(string: clean, relativeTo: nil)!) + sink(arg: URL(string: tainted, relativeTo: nil)!) // tainted [NOT DETECTED] + sink(arg: URL(string: clean, relativeTo: urlClean)!) + sink(arg: URL(string: clean, relativeTo: urlTainted)!) // tainted [NOT DETECTED] + + if let x = URL(string: clean) { + sink(arg: x) + } + + if let y = URL(string: tainted) { + sink(arg: y) // tainted [NOT DETECTED] + } + + var urlClean2 : URL! + urlClean2 = URL(string: clean) + sink(arg: urlClean2) + + var urlTainted2 : URL! + urlTainted2 = URL(string: tainted) + sink(arg: urlTainted2) // tainted [NOT DETECTED] +} From 3bda9af97a66ed69bcbe07d7fb9f64f7df18589d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 9 Aug 2022 12:31:42 +0100 Subject: [PATCH 690/736] Swift: Add taint test of Data. --- .../dataflow/taint/LocalTaint.expected | 8 ++++++ .../library-tests/dataflow/taint/data.swift | 25 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 swift/ql/test/library-tests/dataflow/taint/data.swift diff --git a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected index 715141dba15..cd153ef905e 100644 --- a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected @@ -1,3 +1,11 @@ +| data.swift:12:6:12:6 | WriteDef | data.swift:16:12:16:12 | dataClean | +| data.swift:12:18:12:36 | call to ... | data.swift:12:6:12:6 | WriteDef | +| data.swift:13:6:13:6 | WriteDef | data.swift:14:26:14:26 | dataTainted | +| data.swift:13:20:13:38 | call to ... | data.swift:13:6:13:6 | WriteDef | +| data.swift:14:6:14:6 | WriteDef | data.swift:18:12:18:12 | dataTainted2 | +| data.swift:14:21:14:37 | call to ... | data.swift:14:6:14:6 | WriteDef | +| data.swift:14:26:14:26 | dataTainted | data.swift:17:12:17:12 | dataTainted | +| data.swift:16:12:16:12 | dataClean | data.swift:20:33:20:33 | dataClean | | file://:0:0:0:0 | Phi | string.swift:7:14:7:14 | $interpolation | | file://:0:0:0:0 | Phi | string.swift:9:14:9:14 | $interpolation | | file://:0:0:0:0 | Phi | string.swift:11:14:11:14 | $interpolation | diff --git a/swift/ql/test/library-tests/dataflow/taint/data.swift b/swift/ql/test/library-tests/dataflow/taint/data.swift new file mode 100644 index 00000000000..a1fddd129af --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/data.swift @@ -0,0 +1,25 @@ + +class Data +{ + init(_ elements: S) {} +} + +func source() -> String { return "" } +func sink(arg: Data) {} +func sink2(arg: String) {} + +func taintThroughData() { + let dataClean = Data("123456".utf8) + let dataTainted = Data(source().utf8) + let dataTainted2 = Data(dataTainted) + + sink(arg: dataClean) + sink(arg: dataTainted) // tainted [NOT DETECTED] + sink(arg: dataTainted2) // tainted [NOT DETECTED] + + let stringClean = String(data: dataClean, encoding: String.Encoding.utf8) + let stringTainted = String(data: dataTainted, encoding: String.Encoding.utf8) + + sink2(arg: stringClean!) // tainted [NOT DETECTED] + sink2(arg: stringTainted!) // tainted [NOT DETECTED] +} From 242dc80907b703edaad8b9111549a48c877dd95c Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 9 Aug 2022 17:18:45 +0100 Subject: [PATCH 691/736] Swift: Add taint test of try. --- .../library-tests/dataflow/taint/try.swift | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 swift/ql/test/library-tests/dataflow/taint/try.swift diff --git a/swift/ql/test/library-tests/dataflow/taint/try.swift b/swift/ql/test/library-tests/dataflow/taint/try.swift new file mode 100644 index 00000000000..caa851dc0b0 --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/try.swift @@ -0,0 +1,19 @@ +func clean() throws -> String { return ""; } +func source() throws -> String { return ""; } +func sink(arg: String) {} + +func taintThroughTry() { + do + { + sink(arg: try clean()) + sink(arg: try source()) // tainted [NOT DETECTED] + } catch { + // ... + } + + sink(arg: try! clean()) + sink(arg: try! source()) // tainted [NOT DETECTED] + + sink(arg: (try? clean())!) + sink(arg: (try? source())!) // tainted [NOT DETECTED] +} From 36f410b9f751979b0f56c956da29458b8f1437b8 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 8 Aug 2022 16:07:01 +0100 Subject: [PATCH 692/736] Swift: Move taint logic from isAdditionalTaintStep to defaultAdditionalTaintStep. --- .../internal/TaintTrackingPrivate.qll | 21 ++++++++++++++ .../Security/CWE-079/UnsafeWebViewFetch.ql | 24 --------------- .../dataflow/taint/Taint.expected | 29 +++++++++++++++++++ .../library-tests/dataflow/taint/string.swift | 8 ++--- .../library-tests/dataflow/taint/try.swift | 2 +- .../library-tests/dataflow/taint/url.swift | 8 ++--- 6 files changed, 59 insertions(+), 33 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll index 58e29b61bba..b2aed5db8fc 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll @@ -36,11 +36,32 @@ private module Cached { nodeTo.asDefinition().(Ssa::WriteDefinition).isInoutDef(e) ) or + // allow flow through `try!` and similar constructs + // TODO: this should probably be part of DataFlow / TaintTracking? + nodeFrom.asExpr() = nodeTo.asExpr().(AnyTryExpr).getSubExpr() + or + // allow flow through `!` + // TODO: this should probably be part of DataFlow / TaintTracking? + nodeFrom.asExpr() = nodeTo.asExpr().(ForceValueExpr).getSubExpr() + or // Flow from the computation of the interpolated string literal to the result of the interpolation. exists(InterpolatedStringLiteralExpr interpolated | nodeTo.asExpr() = interpolated and nodeFrom.asExpr() = interpolated.getAppendingExpr() ) + or + // allow flow through string concatenation. + nodeTo.asExpr().(AddExpr).getAnOperand() = nodeFrom.asExpr() + or + // allow flow through `URL.init`. + exists(CallExpr call, ClassDecl c, AbstractFunctionDecl f | + c.getName() = "URL" and + c.getAMember() = f and + f.getName() = ["init(string:)", "init(string:relativeTo:)"] and + call.getFunction().(ApplyExpr).getStaticTarget() = f and + nodeFrom.asExpr() = call.getAnArgument().getExpr() and + nodeTo.asExpr() = call + ) } /** diff --git a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql index b952a0c74c3..37bf5ec21c4 100644 --- a/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql +++ b/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql @@ -81,30 +81,6 @@ class UnsafeWebViewFetchConfig extends TaintTracking::Configuration { node instanceof Sink or node.asExpr() = any(Sink s).getBaseUrl() } - - override predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) { - // allow flow through `try!` and similar constructs - // TODO: this should probably be part of DataFlow / TaintTracking. - node1.asExpr() = node2.asExpr().(AnyTryExpr).getSubExpr() - or - // allow flow through `!` - // TODO: this should probably be part of DataFlow / TaintTracking. - node1.asExpr() = node2.asExpr().(ForceValueExpr).getSubExpr() - or - // allow flow through string concatenation. - // TODO: this should probably be part of TaintTracking. - node2.asExpr().(AddExpr).getAnOperand() = node1.asExpr() - or - // allow flow through `URL.init`. - exists(CallExpr call, ClassDecl c, AbstractFunctionDecl f | - c.getName() = "URL" and - c.getAMember() = f and - f.getName() = ["init(string:)", "init(string:relativeTo:)"] and - call.getFunction().(ApplyExpr).getStaticTarget() = f and - node1.asExpr() = call.getAnArgument().getExpr() and - node2.asExpr() = call - ) - } } from diff --git a/swift/ql/test/library-tests/dataflow/taint/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/Taint.expected index 1b488a7e141..e594a9d4fc4 100644 --- a/swift/ql/test/library-tests/dataflow/taint/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/Taint.expected @@ -5,6 +5,15 @@ edges | string.swift:5:11:5:18 | call to source() : | string.swift:16:13:16:13 | "..." | | string.swift:5:11:5:18 | call to source() : | string.swift:18:13:18:13 | "..." | | string.swift:28:17:28:25 | call to source2() : | string.swift:31:13:31:13 | tainted | +| string.swift:28:17:28:25 | call to source2() : | string.swift:34:13:34:21 | ... call to +(_:_:) ... | +| string.swift:28:17:28:25 | call to source2() : | string.swift:35:13:35:23 | ... call to +(_:_:) ... | +| string.swift:28:17:28:25 | call to source2() : | string.swift:36:13:36:23 | ... call to +(_:_:) ... | +| string.swift:28:17:28:25 | call to source2() : | string.swift:39:13:39:29 | ... call to +(_:_:) ... | +| try.swift:9:17:9:24 | call to source() : | try.swift:9:13:9:24 | try ... | +| url.swift:13:16:13:23 | call to source() : | url.swift:18:12:18:12 | urlTainted | +| url.swift:13:16:13:23 | call to source() : | url.swift:21:12:21:49 | ...! | +| url.swift:13:16:13:23 | call to source() : | url.swift:23:12:23:54 | ...! | +| url.swift:13:16:13:23 | call to source() : | url.swift:39:12:39:12 | ...! | nodes | string.swift:5:11:5:18 | call to source() : | semmle.label | call to source() : | | string.swift:7:13:7:13 | "..." | semmle.label | "..." | @@ -14,6 +23,17 @@ nodes | string.swift:18:13:18:13 | "..." | semmle.label | "..." | | string.swift:28:17:28:25 | call to source2() : | semmle.label | call to source2() : | | string.swift:31:13:31:13 | tainted | semmle.label | tainted | +| string.swift:34:13:34:21 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | +| string.swift:35:13:35:23 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | +| string.swift:36:13:36:23 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | +| string.swift:39:13:39:29 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | +| try.swift:9:13:9:24 | try ... | semmle.label | try ... | +| try.swift:9:17:9:24 | call to source() : | semmle.label | call to source() : | +| url.swift:13:16:13:23 | call to source() : | semmle.label | call to source() : | +| url.swift:18:12:18:12 | urlTainted | semmle.label | urlTainted | +| url.swift:21:12:21:49 | ...! | semmle.label | ...! | +| url.swift:23:12:23:54 | ...! | semmle.label | ...! | +| url.swift:39:12:39:12 | ...! | semmle.label | ...! | subpaths #select | string.swift:7:13:7:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:7:13:7:13 | "..." | result | @@ -22,3 +42,12 @@ subpaths | string.swift:16:13:16:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:16:13:16:13 | "..." | result | | string.swift:18:13:18:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:18:13:18:13 | "..." | result | | string.swift:31:13:31:13 | tainted | string.swift:28:17:28:25 | call to source2() : | string.swift:31:13:31:13 | tainted | result | +| string.swift:34:13:34:21 | ... call to +(_:_:) ... | string.swift:28:17:28:25 | call to source2() : | string.swift:34:13:34:21 | ... call to +(_:_:) ... | result | +| string.swift:35:13:35:23 | ... call to +(_:_:) ... | string.swift:28:17:28:25 | call to source2() : | string.swift:35:13:35:23 | ... call to +(_:_:) ... | result | +| string.swift:36:13:36:23 | ... call to +(_:_:) ... | string.swift:28:17:28:25 | call to source2() : | string.swift:36:13:36:23 | ... call to +(_:_:) ... | result | +| string.swift:39:13:39:29 | ... call to +(_:_:) ... | string.swift:28:17:28:25 | call to source2() : | string.swift:39:13:39:29 | ... call to +(_:_:) ... | 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 | +| url.swift:18:12:18:12 | urlTainted | url.swift:13:16:13:23 | call to source() : | url.swift:18:12:18:12 | urlTainted | result | +| url.swift:21:12:21:49 | ...! | url.swift:13:16:13:23 | call to source() : | url.swift:21:12:21:49 | ...! | result | +| url.swift:23:12:23:54 | ...! | url.swift:13:16:13:23 | call to source() : | url.swift:23:12:23:54 | ...! | result | +| url.swift:39:12:39:12 | ...! | url.swift:13:16:13:23 | call to source() : | url.swift:39:12:39:12 | ...! | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/string.swift b/swift/ql/test/library-tests/dataflow/taint/string.swift index 12357d81dc6..0855c6d91b0 100644 --- a/swift/ql/test/library-tests/dataflow/taint/string.swift +++ b/swift/ql/test/library-tests/dataflow/taint/string.swift @@ -31,12 +31,12 @@ func taintThroughStringConcatenation() { sink(arg: tainted) // tainted sink(arg: clean + clean) - sink(arg: clean + tainted) // tainted [NOT DETECTED] - sink(arg: tainted + clean) // tainted [NOT DETECTED] - sink(arg: tainted + tainted) // tainted [NOT DETECTED] + sink(arg: clean + tainted) // tainted + sink(arg: tainted + clean) // tainted + sink(arg: tainted + tainted) // tainted sink(arg: ">" + clean + "<") - sink(arg: ">" + tainted + "<") // tainted [NOT DETECTED] + sink(arg: ">" + tainted + "<") // tainted var str = "abc" diff --git a/swift/ql/test/library-tests/dataflow/taint/try.swift b/swift/ql/test/library-tests/dataflow/taint/try.swift index caa851dc0b0..8a5ab8389d4 100644 --- a/swift/ql/test/library-tests/dataflow/taint/try.swift +++ b/swift/ql/test/library-tests/dataflow/taint/try.swift @@ -6,7 +6,7 @@ func taintThroughTry() { do { sink(arg: try clean()) - sink(arg: try source()) // tainted [NOT DETECTED] + sink(arg: try source()) // tainted } catch { // ... } diff --git a/swift/ql/test/library-tests/dataflow/taint/url.swift b/swift/ql/test/library-tests/dataflow/taint/url.swift index 06ec9829b56..c7cb5ab12db 100644 --- a/swift/ql/test/library-tests/dataflow/taint/url.swift +++ b/swift/ql/test/library-tests/dataflow/taint/url.swift @@ -15,12 +15,12 @@ func taintThroughURL() { let urlTainted = URL(string: tainted)! sink(arg: urlClean) - sink(arg: urlTainted) // tainted [NOT DETECTED] + sink(arg: urlTainted) // tainted sink(arg: URL(string: clean, relativeTo: nil)!) - sink(arg: URL(string: tainted, relativeTo: nil)!) // tainted [NOT DETECTED] + sink(arg: URL(string: tainted, relativeTo: nil)!) // tainted sink(arg: URL(string: clean, relativeTo: urlClean)!) - sink(arg: URL(string: clean, relativeTo: urlTainted)!) // tainted [NOT DETECTED] + sink(arg: URL(string: clean, relativeTo: urlTainted)!) // tainted if let x = URL(string: clean) { sink(arg: x) @@ -36,5 +36,5 @@ func taintThroughURL() { var urlTainted2 : URL! urlTainted2 = URL(string: tainted) - sink(arg: urlTainted2) // tainted [NOT DETECTED] + sink(arg: urlTainted2) // tainted } From 6f696ccc3cbc172d95cc3fdf586e7847c4d6bb6e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:02:12 +0100 Subject: [PATCH 693/736] Swift: Effect of merging with main to get the AnyTryExpr fix. --- swift/ql/test/library-tests/dataflow/taint/Taint.expected | 8 ++++++++ swift/ql/test/library-tests/dataflow/taint/try.swift | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/Taint.expected index e594a9d4fc4..dbfb89540bf 100644 --- a/swift/ql/test/library-tests/dataflow/taint/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/Taint.expected @@ -10,6 +10,8 @@ edges | string.swift:28:17:28:25 | call to source2() : | string.swift:36:13:36:23 | ... call to +(_:_:) ... | | string.swift:28:17:28:25 | call to source2() : | string.swift:39:13:39:29 | ... call to +(_:_:) ... | | try.swift:9:17:9:24 | call to source() : | try.swift:9:13:9:24 | try ... | +| try.swift:15:17:15:24 | call to source() : | try.swift:15:12:15:24 | try! ... | +| try.swift:18:18:18:25 | call to source() : | try.swift:18:12:18:27 | ...! | | url.swift:13:16:13:23 | call to source() : | url.swift:18:12:18:12 | urlTainted | | url.swift:13:16:13:23 | call to source() : | url.swift:21:12:21:49 | ...! | | url.swift:13:16:13:23 | call to source() : | url.swift:23:12:23:54 | ...! | @@ -29,6 +31,10 @@ nodes | string.swift:39:13:39:29 | ... call to +(_:_:) ... | semmle.label | ... call to +(_:_:) ... | | try.swift:9:13:9:24 | try ... | semmle.label | try ... | | try.swift:9:17:9:24 | call to source() : | semmle.label | call to source() : | +| try.swift:15:12:15:24 | try! ... | semmle.label | try! ... | +| try.swift:15:17:15:24 | call to source() : | semmle.label | call to source() : | +| try.swift:18:12:18:27 | ...! | semmle.label | ...! | +| try.swift:18:18:18:25 | call to source() : | semmle.label | call to source() : | | url.swift:13:16:13:23 | call to source() : | semmle.label | call to source() : | | url.swift:18:12:18:12 | urlTainted | semmle.label | urlTainted | | url.swift:21:12:21:49 | ...! | semmle.label | ...! | @@ -47,6 +53,8 @@ subpaths | string.swift:36:13:36:23 | ... call to +(_:_:) ... | string.swift:28:17:28:25 | call to source2() : | string.swift:36:13:36:23 | ... call to +(_:_:) ... | result | | string.swift:39:13:39:29 | ... call to +(_:_:) ... | string.swift:28:17:28:25 | call to source2() : | string.swift:39:13:39:29 | ... call to +(_:_:) ... | 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 | +| try.swift:15:12:15:24 | try! ... | try.swift:15:17:15:24 | call to source() : | try.swift:15:12:15:24 | try! ... | result | +| try.swift:18:12:18:27 | ...! | try.swift:18:18:18:25 | call to source() : | try.swift:18:12:18:27 | ...! | result | | url.swift:18:12:18:12 | urlTainted | url.swift:13:16:13:23 | call to source() : | url.swift:18:12:18:12 | urlTainted | result | | url.swift:21:12:21:49 | ...! | url.swift:13:16:13:23 | call to source() : | url.swift:21:12:21:49 | ...! | result | | url.swift:23:12:23:54 | ...! | url.swift:13:16:13:23 | call to source() : | url.swift:23:12:23:54 | ...! | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/try.swift b/swift/ql/test/library-tests/dataflow/taint/try.swift index 8a5ab8389d4..80c0bbc07a6 100644 --- a/swift/ql/test/library-tests/dataflow/taint/try.swift +++ b/swift/ql/test/library-tests/dataflow/taint/try.swift @@ -12,8 +12,8 @@ func taintThroughTry() { } sink(arg: try! clean()) - sink(arg: try! source()) // tainted [NOT DETECTED] + sink(arg: try! source()) // tainted sink(arg: (try? clean())!) - sink(arg: (try? source())!) // tainted [NOT DETECTED] + sink(arg: (try? source())!) // tainted } From cb19ae2638027fdc51cc792fd1983da355aa2014 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 00:16:31 +0000 Subject: [PATCH 694/736] Add changed framework coverage reports --- .../library-coverage/coverage.csv | 55 ++++++++++--------- .../library-coverage/coverage.rst | 6 +- 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/csharp/documentation/library-coverage/coverage.csv b/csharp/documentation/library-coverage/coverage.csv index 2bc6ca863ac..485242620f3 100644 --- a/csharp/documentation/library-coverage/coverage.csv +++ b/csharp/documentation/library-coverage/coverage.csv @@ -1,27 +1,28 @@ -package,sink,source,summary,sink:code,sink:html,sink:remote,sink:sql,sink:xss,source:local,summary:taint,summary:value -Dapper,55,,,,,,55,,,, -JsonToItemsTaskFactory,,,7,,,,,,,7, -Microsoft.ApplicationBlocks.Data,28,,,,,,28,,,, -Microsoft.CSharp,,,24,,,,,,,24, -Microsoft.EntityFrameworkCore,6,,,,,,6,,,, -Microsoft.Extensions.Caching.Distributed,,,15,,,,,,,15, -Microsoft.Extensions.Caching.Memory,,,46,,,,,,,45,1 -Microsoft.Extensions.Configuration,,,83,,,,,,,80,3 -Microsoft.Extensions.DependencyInjection,,,62,,,,,,,62, -Microsoft.Extensions.DependencyModel,,,12,,,,,,,12, -Microsoft.Extensions.FileProviders,,,15,,,,,,,15, -Microsoft.Extensions.FileSystemGlobbing,,,15,,,,,,,13,2 -Microsoft.Extensions.Hosting,,,17,,,,,,,16,1 -Microsoft.Extensions.Http,,,10,,,,,,,10, -Microsoft.Extensions.Logging,,,37,,,,,,,37, -Microsoft.Extensions.Options,,,8,,,,,,,8, -Microsoft.Extensions.Primitives,,,63,,,,,,,63, -Microsoft.Interop,,,27,,,,,,,27, -Microsoft.NET.Build.Tasks,,,1,,,,,,,1, -Microsoft.NETCore.Platforms.BuildTasks,,,4,,,,,,,4, -Microsoft.VisualBasic,,,9,,,,,,,5,4 -Microsoft.Win32,,,8,,,,,,,8, -MySql.Data.MySqlClient,48,,,,,,48,,,, -Newtonsoft.Json,,,91,,,,,,,73,18 -ServiceStack,194,,7,27,,75,92,,,7, -System,28,3,12038,,4,,23,1,3,10096,1942 +package,sink,source,summary,sink:code,sink:encryption-decryptor,sink:encryption-encryptor,sink:encryption-keyprop,sink:encryption-symmetrickey,sink:html,sink:remote,sink:sql,sink:xss,source:local,summary:taint,summary:value +Dapper,55,,,,,,,,,,55,,,, +JsonToItemsTaskFactory,,,7,,,,,,,,,,,7, +Microsoft.ApplicationBlocks.Data,28,,,,,,,,,,28,,,, +Microsoft.CSharp,,,24,,,,,,,,,,,24, +Microsoft.EntityFrameworkCore,6,,,,,,,,,,6,,,, +Microsoft.Extensions.Caching.Distributed,,,15,,,,,,,,,,,15, +Microsoft.Extensions.Caching.Memory,,,46,,,,,,,,,,,45,1 +Microsoft.Extensions.Configuration,,,83,,,,,,,,,,,80,3 +Microsoft.Extensions.DependencyInjection,,,62,,,,,,,,,,,62, +Microsoft.Extensions.DependencyModel,,,12,,,,,,,,,,,12, +Microsoft.Extensions.FileProviders,,,15,,,,,,,,,,,15, +Microsoft.Extensions.FileSystemGlobbing,,,15,,,,,,,,,,,13,2 +Microsoft.Extensions.Hosting,,,17,,,,,,,,,,,16,1 +Microsoft.Extensions.Http,,,10,,,,,,,,,,,10, +Microsoft.Extensions.Logging,,,37,,,,,,,,,,,37, +Microsoft.Extensions.Options,,,8,,,,,,,,,,,8, +Microsoft.Extensions.Primitives,,,63,,,,,,,,,,,63, +Microsoft.Interop,,,27,,,,,,,,,,,27, +Microsoft.NET.Build.Tasks,,,1,,,,,,,,,,,1, +Microsoft.NETCore.Platforms.BuildTasks,,,4,,,,,,,,,,,4, +Microsoft.VisualBasic,,,9,,,,,,,,,,,5,4 +Microsoft.Win32,,,8,,,,,,,,,,,8, +MySql.Data.MySqlClient,48,,,,,,,,,,48,,,, +Newtonsoft.Json,,,91,,,,,,,,,,,73,18 +ServiceStack,194,,7,27,,,,,,75,92,,,7, +System,35,3,11796,,1,1,1,,4,,25,3,3,9854,1942 +Windows.Security.Cryptography.Core,1,,,,,,,1,,,,,,, diff --git a/csharp/documentation/library-coverage/coverage.rst b/csharp/documentation/library-coverage/coverage.rst index 076d2078d4b..d088c041e8b 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``",3,12038,28,5 - 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``",,554,137, - Totals,,3,12599,359,5 + System,"``System.*``, ``System``",3,11796,35,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``",,554,138, + Totals,,3,12357,367,7 From 2bb9e4859f692d149166a6584bd6b40bfe23399d Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 8 Aug 2022 10:43:29 +0200 Subject: [PATCH 695/736] C#: Handle `dotnet exec csc.dll` and the likes in the Lua tracer --- csharp/tools/tracing-config.lua | 104 ++++++++++++++++++++++++-------- 1 file changed, 78 insertions(+), 26 deletions(-) diff --git a/csharp/tools/tracing-config.lua b/csharp/tools/tracing-config.lua index efa936b41dd..1392b45c36d 100644 --- a/csharp/tools/tracing-config.lua +++ b/csharp/tools/tracing-config.lua @@ -1,6 +1,6 @@ function RegisterExtractorPack(id) local extractor = GetPlatformToolsDirectory() .. - 'Semmle.Extraction.CSharp.Driver' + 'Semmle.Extraction.CSharp.Driver' if OperatingSystem == 'windows' then extractor = extractor .. '.exe' end function DotnetMatcherBuild(compilerName, compilerPath, compilerArguments, @@ -24,7 +24,7 @@ function RegisterExtractorPack(id) -- let's hope that this split matches the escaping rules `dotnet` applies to command line arguments -- or, at least, that it is close enough argv = - NativeArgumentsToArgv(compilerArguments.nativeArgumentPointer) + NativeArgumentsToArgv(compilerArguments.nativeArgumentPointer) end for i, arg in ipairs(argv) do -- dotnet options start with either - or / (both are legal) @@ -39,8 +39,8 @@ function RegisterExtractorPack(id) return { order = ORDER_REPLACE, invocation = BuildExtractorInvocation(id, compilerPath, - compilerPath, - compilerArguments, nil, { + compilerPath, + compilerArguments, nil, { '/p:UseSharedCompilation=false' }) } @@ -50,44 +50,96 @@ function RegisterExtractorPack(id) local windowsMatchers = { DotnetMatcherBuild, - CreatePatternMatcher({'^dotnet%.exe$'}, MatchCompilerName, extractor, { - prepend = {'--dotnetexec', '--cil'}, + CreatePatternMatcher({ '^csc.*%.exe$' }, MatchCompilerName, extractor, { + prepend = { '--cil', '--compiler', '"${compiler}"' }, order = ORDER_BEFORE }), - CreatePatternMatcher({'^csc.*%.exe$'}, MatchCompilerName, extractor, { - prepend = {'--compiler', '"${compiler}"', '--cil'}, - order = ORDER_BEFORE - }), - CreatePatternMatcher({'^fakes.*%.exe$', 'moles.*%.exe'}, - MatchCompilerName, nil, {trace = false}) + CreatePatternMatcher({ '^fakes.*%.exe$', 'moles.*%.exe' }, + MatchCompilerName, nil, { trace = false }), + function(compilerName, compilerPath, compilerArguments, _languageId) + -- handle cases like `dotnet.exe exec csc.dll ` + if compilerName ~= 'dotnet.exe' then + return nil + end + + local seenCompilerCall = false + local argv = NativeArgumentsToArgv(compilerArguments.nativeArgumentPointer) + local extractorArgs = { '--cil', '--compiler' } + for _, arg in ipairs(argv) do + if arg:match('csc%.dll$') then + seenCompilerCall = true + end + if seenCompilerCall then + table.insert(extractorArgs, '"' .. arg .. '"') + end + end + + if seenCompilerCall then + return { + order = ORDER_BEFORE, + invocation = { + path = AbsolutifyExtractorPath(id, extractor), + arguments = { + commandLineString = table.concat(extractorArgs, " ") + } + } + } + end + return nil + end } local posixMatchers = { DotnetMatcherBuild, - CreatePatternMatcher({'^mono', '^dotnet$'}, MatchCompilerName, - extractor, { - prepend = {'--dotnetexec', '--cil'}, - order = ORDER_BEFORE - }), - CreatePatternMatcher({'^mcs%.exe$', '^csc%.exe$'}, MatchCompilerName, - extractor, { - prepend = {'--compiler', '"${compiler}"', '--cil'}, + CreatePatternMatcher({ '^mcs%.exe$', '^csc%.exe$' }, MatchCompilerName, + extractor, { + prepend = { '--cil', '--compiler', '"${compiler}"' }, order = ORDER_BEFORE }), function(compilerName, compilerPath, compilerArguments, _languageId) if MatchCompilerName('^msbuild$', compilerName, compilerPath, - compilerArguments) or + compilerArguments) or MatchCompilerName('^xbuild$', compilerName, compilerPath, - compilerArguments) then + compilerArguments) then return { order = ORDER_REPLACE, invocation = BuildExtractorInvocation(id, compilerPath, - compilerPath, - compilerArguments, - nil, { + compilerPath, + compilerArguments, + nil, { '/p:UseSharedCompilation=false' }) } end + end, function(compilerName, compilerPath, compilerArguments, _languageId) + -- handle cases like `dotnet exec csc.dll ` and `mono(-sgen64) csc.exe ` + if compilerName ~= 'dotnet' and not compilerName:match('^mono') then + return nil + end + + local seenCompilerCall = false + local argv = compilerArguments.argv + local extractorArgs = { '--cil', '--compiler' } + for _, arg in ipairs(argv) do + if arg:match('csc%.dll$') or arg:match('csc%.exe$') or arg:match('mcs%.exe$') then + seenCompilerCall = true + end + if seenCompilerCall then + table.insert(extractorArgs, arg) + end + end + + if seenCompilerCall then + return { + order = ORDER_BEFORE, + invocation = { + path = AbsolutifyExtractorPath(id, extractor), + arguments = { + argv = extractorArgs + } + } + } + end + return nil end } if OperatingSystem == 'windows' then @@ -99,4 +151,4 @@ end -- Return a list of minimum supported versions of the configuration file format -- return one entry per supported major version. -function GetCompatibleVersions() return {'1.0.0'} end +function GetCompatibleVersions() return { '1.0.0' } end From 554aea1bb816029bb1b699ea305114d5c8242601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 9 Aug 2022 14:52:45 +0200 Subject: [PATCH 696/736] New strcpy-variant in StrncpyFlippedArgs test Added wcsxfrm_l, which is not currently caught by the query, meaning that in this case a successful test implies missing functionality. --- .../StrncpyFlippedArgs.expected | 22 +++++++++---------- .../StrncpyFlippedArgs/test.cpp | 16 ++++++++++++++ 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/StrncpyFlippedArgs.expected b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/StrncpyFlippedArgs.expected index 88a953b0196..afefbe20256 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/StrncpyFlippedArgs.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/StrncpyFlippedArgs.expected @@ -1,18 +1,18 @@ | test.c:22:2:22:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | | test.c:33:2:33:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | -| test.cpp:19:2:19:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | -| test.cpp:20:2:20:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | | test.cpp:21:2:21:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | -| test.cpp:30:2:30:8 | call to wcsncpy | Potentially unsafe call to wcsncpy; third argument should be size of destination. | +| test.cpp:22:2:22:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | +| test.cpp:23:2:23:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | | test.cpp:32:2:32:8 | call to wcsncpy | Potentially unsafe call to wcsncpy; third argument should be size of destination. | -| test.cpp:33:2:33:8 | call to wcsncpy | Potentially unsafe call to wcsncpy; third argument should be size of destination. | | test.cpp:34:2:34:8 | call to wcsncpy | Potentially unsafe call to wcsncpy; third argument should be size of destination. | | test.cpp:35:2:35:8 | call to wcsncpy | Potentially unsafe call to wcsncpy; third argument should be size of destination. | -| test.cpp:45:2:45:9 | call to strcpy_s | Potentially unsafe call to strcpy_s; second argument should be size of destination. | -| test.cpp:46:2:46:9 | call to strcpy_s | Potentially unsafe call to strcpy_s; second argument should be size of destination. | +| test.cpp:36:2:36:8 | call to wcsncpy | Potentially unsafe call to wcsncpy; third argument should be size of destination. | +| test.cpp:37:2:37:8 | call to wcsncpy | Potentially unsafe call to wcsncpy; third argument should be size of destination. | | test.cpp:47:2:47:9 | call to strcpy_s | Potentially unsafe call to strcpy_s; second argument should be size of destination. | -| test.cpp:60:3:60:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | -| test.cpp:63:3:63:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | -| test.cpp:68:2:68:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | -| test.cpp:79:3:79:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | -| test.cpp:82:3:82:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | +| test.cpp:48:2:48:9 | call to strcpy_s | Potentially unsafe call to strcpy_s; second argument should be size of destination. | +| test.cpp:49:2:49:9 | call to strcpy_s | Potentially unsafe call to strcpy_s; second argument should be size of destination. | +| test.cpp:62:3:62:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | +| test.cpp:65:3:65:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | +| test.cpp:70:2:70:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | +| test.cpp:81:3:81:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | +| test.cpp:84:3:84:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/test.cpp b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/test.cpp index b31e8762467..fac671d70dc 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/test.cpp +++ b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/test.cpp @@ -1,9 +1,11 @@ typedef unsigned int size_t; typedef unsigned int errno_t; +typedef void *locale_t; char *strncpy(char *__restrict destination, const char *__restrict source, size_t num); wchar_t *wcsncpy(wchar_t *__restrict destination, const wchar_t *__restrict source, size_t num); +size_t wcsxfrm_l(wchar_t *ws1, const wchar_t *ws2, size_t n, locale_t locale); errno_t strcpy_s(char *strDestination, size_t numberOfElements, const char *strSource); size_t strlen(const char *str); @@ -93,3 +95,17 @@ void test8(char x[], char y[]) { // that it will be a false positive if we report it. strncpy(x, y, 32); } + +void test9() +{ + wchar_t buf1[10]; + wchar_t buf2[20]; + const wchar_t *str = L"01234567890123456789"; + + wcsxfrm_l(buf1, str, sizeof(buf1), nullptr); // (bad, but not a strncpyflippedargs bug) + wcsxfrm_l(buf1, str, sizeof(buf1) / sizeof(wchar_t), nullptr); + wcsxfrm_l(buf1, str, wcslen(str), nullptr); // BAD + wcsxfrm_l(buf1, str, wcslen(str) + 1, nullptr); // BAD + wcsxfrm_l(buf1, buf2, sizeof(buf2), nullptr); // BAD + wcsxfrm_l(buf1, buf2, sizeof(buf2) / sizeof(wchar_t), nullptr); // BAD [NOT DETECTED] +} From df419003ad6b365616621579e282d6d0590edfd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 9 Aug 2022 15:59:41 +0200 Subject: [PATCH 697/736] Use Strcpy.qll in StrncpyFlippedArgs.ql As a result, the query gets access to more types of strncpy-like functions, as demonstrated by test.cpp, which now "fails" (i.e. works) for the new test cases instroduced in the previous commit. --- .../Memory Management/StrncpyFlippedArgs.ql | 34 +++---------------- .../StrncpyFlippedArgs/test.cpp | 6 ++-- 2 files changed, 8 insertions(+), 32 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql b/cpp/ql/src/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql index f7eca2304b3..1c38305f8a6 100644 --- a/cpp/ql/src/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql +++ b/cpp/ql/src/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql @@ -18,6 +18,7 @@ import cpp import Buffer private import semmle.code.cpp.valuenumbering.GlobalValueNumbering +private import semmle.code.cpp.models.implementations.Strcpy predicate isSizePlus(Expr e, BufferSizeExpr baseSize, int plus) { // baseSize @@ -41,33 +42,6 @@ predicate isSizePlus(Expr e, BufferSizeExpr baseSize, int plus) { ) } -predicate strncpyFunction(Function f, int argDest, int argSrc, int argLimit) { - exists(string name | name = f.getName() | - name = - [ - "strcpy_s", // strcpy_s(dst, max_amount, src) - "wcscpy_s", // wcscpy_s(dst, max_amount, src) - "_mbscpy_s" // _mbscpy_s(dst, max_amount, src) - ] and - argDest = 0 and - argSrc = 2 and - argLimit = 1 - or - name = - [ - "strncpy", // strncpy(dst, src, max_amount) - "strncpy_l", // strncpy_l(dst, src, max_amount, locale) - "wcsncpy", // wcsncpy(dst, src, max_amount) - "_wcsncpy_l", // _wcsncpy_l(dst, src, max_amount, locale) - "_mbsncpy", // _mbsncpy(dst, src, max_amount) - "_mbsncpy_l" // _mbsncpy_l(dst, src, max_amount, locale) - ] and - argDest = 0 and - argSrc = 1 and - argLimit = 2 - ) -} - string nthString(int num) { num = 0 and result = "first" @@ -96,11 +70,13 @@ int arrayExprFixedSize(Expr e) { } from - Function f, FunctionCall fc, int argDest, int argSrc, int argLimit, int charSize, Access copyDest, + StrcpyFunction f, FunctionCall fc, int argDest, int argSrc, int argLimit, int charSize, Access copyDest, Access copySource, string name, string nth where f = fc.getTarget() and - strncpyFunction(f, argDest, argSrc, argLimit) and + argDest = f.getParamDest() and + argSrc = f.getParamSrc() and + argLimit = f.getParamSize() and copyDest = fc.getArgument(argDest) and copySource = fc.getArgument(argSrc) and // Some of the functions operate on a larger char type, like `wchar_t`, so we diff --git a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/test.cpp b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/test.cpp index fac671d70dc..ad2e39b748e 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/test.cpp +++ b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/test.cpp @@ -102,10 +102,10 @@ void test9() wchar_t buf2[20]; const wchar_t *str = L"01234567890123456789"; - wcsxfrm_l(buf1, str, sizeof(buf1), nullptr); // (bad, but not a strncpyflippedargs bug) - wcsxfrm_l(buf1, str, sizeof(buf1) / sizeof(wchar_t), nullptr); + wcsxfrm_l(buf1, str, sizeof(buf1), nullptr); // BAD (but not a StrncpyFlippedArgs bug) + wcsxfrm_l(buf1, str, sizeof(buf1) / sizeof(wchar_t), nullptr); // GOOD wcsxfrm_l(buf1, str, wcslen(str), nullptr); // BAD wcsxfrm_l(buf1, str, wcslen(str) + 1, nullptr); // BAD wcsxfrm_l(buf1, buf2, sizeof(buf2), nullptr); // BAD - wcsxfrm_l(buf1, buf2, sizeof(buf2) / sizeof(wchar_t), nullptr); // BAD [NOT DETECTED] + wcsxfrm_l(buf1, buf2, sizeof(buf2) / sizeof(wchar_t), nullptr); // BAD } From 8e60a4a478195a237465c4212913a4f16639be83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 9 Aug 2022 17:53:04 +0200 Subject: [PATCH 698/736] Update StrncpyFlippedArgs.expected Add output lines for the newly implemented test case, test.cpp/test9(). --- .../StrncpyFlippedArgs/StrncpyFlippedArgs.expected | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/StrncpyFlippedArgs.expected b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/StrncpyFlippedArgs.expected index afefbe20256..1fe46acbdde 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/StrncpyFlippedArgs.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Memory Management/StrncpyFlippedArgs/StrncpyFlippedArgs.expected @@ -16,3 +16,8 @@ | test.cpp:70:2:70:8 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | | test.cpp:81:3:81:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | | test.cpp:84:3:84:9 | call to strncpy | Potentially unsafe call to strncpy; third argument should be size of destination. | +| test.cpp:105:2:105:10 | call to wcsxfrm_l | Potentially unsafe call to wcsxfrm_l; third argument should be size of destination. | +| test.cpp:107:2:107:10 | call to wcsxfrm_l | Potentially unsafe call to wcsxfrm_l; third argument should be size of destination. | +| test.cpp:108:2:108:10 | call to wcsxfrm_l | Potentially unsafe call to wcsxfrm_l; third argument should be size of destination. | +| test.cpp:109:2:109:10 | call to wcsxfrm_l | Potentially unsafe call to wcsxfrm_l; third argument should be size of destination. | +| test.cpp:110:2:110:10 | call to wcsxfrm_l | Potentially unsafe call to wcsxfrm_l; third argument should be size of destination. | From 05f4f98aa0e940cf9c16c31c43d0d3de55bbb948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 10 Aug 2022 13:25:45 +0200 Subject: [PATCH 699/736] Add change note --- .../2021-08-10-use-strcpyfunction-in-bad-strncpy-size.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/src/change-notes/2021-08-10-use-strcpyfunction-in-bad-strncpy-size.md diff --git a/cpp/ql/src/change-notes/2021-08-10-use-strcpyfunction-in-bad-strncpy-size.md b/cpp/ql/src/change-notes/2021-08-10-use-strcpyfunction-in-bad-strncpy-size.md new file mode 100644 index 00000000000..3468fec4c8d --- /dev/null +++ b/cpp/ql/src/change-notes/2021-08-10-use-strcpyfunction-in-bad-strncpy-size.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `cpp/bad-strncpy-size` now covers more `strncpy`-like functions than before, including `strxfrm`(`_l`), `wcsxfrm`(`_l`), and `stpncpy`. Users of this query may see an increase in results. From 60f40493882f3151304d4adafab701d2727d8cb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 10 Aug 2022 14:14:42 +0200 Subject: [PATCH 700/736] Re-autoformat StrncpyFlippedArgs.ql --- .../src/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql b/cpp/ql/src/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql index 1c38305f8a6..a3a2c5b83be 100644 --- a/cpp/ql/src/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql +++ b/cpp/ql/src/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql @@ -70,8 +70,8 @@ int arrayExprFixedSize(Expr e) { } from - StrcpyFunction f, FunctionCall fc, int argDest, int argSrc, int argLimit, int charSize, Access copyDest, - Access copySource, string name, string nth + StrcpyFunction f, FunctionCall fc, int argDest, int argSrc, int argLimit, int charSize, + Access copyDest, Access copySource, string name, string nth where f = fc.getTarget() and argDest = f.getParamDest() and From 5659db73d39ded2663bf93a5e3b7fc3c0d05089a Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 10 Aug 2022 14:17:16 +0200 Subject: [PATCH 701/736] C#: Update alle manually written summaries for constructors to use Argument[Qualifier] instead of ReturnValue. --- .../semmle/code/csharp/frameworks/JsonNET.qll | 8 +- .../code/csharp/frameworks/ServiceStack.qll | 14 +- .../semmle/code/csharp/frameworks/System.qll | 158 +++++++++--------- .../microsoft/extensions/Primitives.qll | 4 +- .../csharp/frameworks/system/Collections.qll | 32 ++-- .../frameworks/system/ComponentModel.qll | 8 +- .../csharp/frameworks/system/Diagnostics.qll | 4 +- .../code/csharp/frameworks/system/IO.qll | 12 +- .../code/csharp/frameworks/system/Text.qll | 6 +- .../system/collections/Concurrent.qll | 12 +- .../frameworks/system/collections/Generic.qll | 36 ++-- .../system/collections/ObjectModel.qll | 4 +- .../frameworks/system/io/Compression.qll | 8 +- .../frameworks/system/threading/Tasks.qll | 16 +- 14 files changed, 161 insertions(+), 161 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/JsonNET.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/JsonNET.qll index 221c0f0fac6..5fb1c2f1aa5 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/JsonNET.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/JsonNET.qll @@ -255,10 +255,10 @@ module JsonNET { [ "Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].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;get_Item;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual", diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/ServiceStack.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/ServiceStack.qll index 1145933352f..2f54ae3e08b 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/ServiceStack.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/ServiceStack.qll @@ -282,13 +282,13 @@ private class ServiceStackXssSummaryModelCsv extends SummaryModelCsv { override predicate row(string row) { row = [ - "ServiceStack;HttpResult;false;HttpResult;(System.String,System.String);;Argument[0];ReturnValue;taint;manual", - "ServiceStack;HttpResult;false;HttpResult;(System.Object,System.String,System.Net.HttpStatusCode);;Argument[0];ReturnValue;taint;manual", - "ServiceStack;HttpResult;false;HttpResult;(System.Object,System.String);;Argument[0];ReturnValue;taint;manual", - "ServiceStack;HttpResult;false;HttpResult;(System.Object,System.Net.HttpStatusCode);;Argument[0];ReturnValue;taint;manual", - "ServiceStack;HttpResult;false;HttpResult;(System.Object);;Argument[0];ReturnValue;taint;manual", - "ServiceStack;HttpResult;false;HttpResult;(System.IO.Stream,System.String);;Argument[0];ReturnValue;taint;manual", - "ServiceStack;HttpResult;false;HttpResult;(System.Byte[],System.String);;Argument[0];ReturnValue;taint;manual" + "ServiceStack;HttpResult;false;HttpResult;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;manual", + "ServiceStack;HttpResult;false;HttpResult;(System.Object,System.String,System.Net.HttpStatusCode);;Argument[0];Argument[Qualifier];taint;manual", + "ServiceStack;HttpResult;false;HttpResult;(System.Object,System.String);;Argument[0];Argument[Qualifier];taint;manual", + "ServiceStack;HttpResult;false;HttpResult;(System.Object,System.Net.HttpStatusCode);;Argument[0];Argument[Qualifier];taint;manual", + "ServiceStack;HttpResult;false;HttpResult;(System.Object);;Argument[0];Argument[Qualifier];taint;manual", + "ServiceStack;HttpResult;false;HttpResult;(System.IO.Stream,System.String);;Argument[0];Argument[Qualifier];taint;manual", + "ServiceStack;HttpResult;false;HttpResult;(System.Byte[],System.String);;Argument[0];Argument[Qualifier];taint;manual" ] } } diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/System.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/System.qll index b4eb0b00fc5..6621c6a7835 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/System.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/System.qll @@ -622,9 +622,9 @@ private class SystemLazyFlowModelCsv extends SummaryModelCsv { override predicate row(string row) { row = [ - "System;Lazy<>;false;Lazy;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Lazy<>.Value];value;manual", - "System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0].ReturnValue;ReturnValue.Property[System.Lazy<>.Value];value;manual", - "System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;ReturnValue.Property[System.Lazy<>.Value];value;manual", + "System;Lazy<>;false;Lazy;(System.Func);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual", + "System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual", + "System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual", "System;Lazy<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual", ] } @@ -667,7 +667,7 @@ private class SystemNullableFlowModelCsv extends SummaryModelCsv { "System;Nullable<>;false;GetValueOrDefault;();;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;value;manual", "System;Nullable<>;false;GetValueOrDefault;(T);;Argument[0];ReturnValue;value;manual", "System;Nullable<>;false;GetValueOrDefault;(T);;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;value;manual", - "System;Nullable<>;false;Nullable;(T);;Argument[0];ReturnValue.Property[System.Nullable<>.Value];value;manual", + "System;Nullable<>;false;Nullable;(T);;Argument[0];Argument[Qualifier].Property[System.Nullable<>.Value];value;manual", "System;Nullable<>;false;get_HasValue;();;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;taint;manual", "System;Nullable<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual", ] @@ -981,8 +981,8 @@ private class SystemStringFlowModelCsv extends SummaryModelCsv { "System;String;false;Split;(System.String,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual", "System;String;false;Split;(System.String[],System.Int32,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual", "System;String;false;Split;(System.String[],System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual", - "System;String;false;String;(System.Char[]);;Argument[0].Element;ReturnValue;taint;manual", - "System;String;false;String;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;manual", + "System;String;false;String;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;manual", + "System;String;false;String;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual", "System;String;false;Substring;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual", "System;String;false;Substring;(System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual", "System;String;false;ToLower;();;Argument[Qualifier];ReturnValue;taint;manual", @@ -1073,9 +1073,9 @@ private class SystemUriFlowModelCsv extends SummaryModelCsv { row = [ "System;Uri;false;ToString;();;Argument[Qualifier];ReturnValue;taint;manual", - "System;Uri;false;Uri;(System.String);;Argument[0];ReturnValue;taint;manual", - "System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];ReturnValue;taint;manual", - "System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];ReturnValue;taint;manual", + "System;Uri;false;Uri;(System.String);;Argument[0];Argument[Qualifier];taint;manual", + "System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual", + "System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];Argument[Qualifier];taint;manual", "System;Uri;false;get_OriginalString;();;Argument[Qualifier];ReturnValue;taint;manual", "System;Uri;false;get_PathAndQuery;();;Argument[Qualifier];ReturnValue;taint;manual", "System;Uri;false;get_Query;();;Argument[Qualifier];ReturnValue;taint;manual", @@ -1364,13 +1364,13 @@ private class SystemTupleTFlowModelCsv extends SummaryModelCsv { override predicate row(string row) { row = [ - "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];ReturnValue.Property[System.Tuple<,,,,,,,>.Item1];value;manual", - "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];ReturnValue.Property[System.Tuple<,,,,,,,>.Item2];value;manual", - "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];ReturnValue.Property[System.Tuple<,,,,,,,>.Item3];value;manual", - "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];ReturnValue.Property[System.Tuple<,,,,,,,>.Item4];value;manual", - "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];ReturnValue.Property[System.Tuple<,,,,,,,>.Item5];value;manual", - "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];ReturnValue.Property[System.Tuple<,,,,,,,>.Item6];value;manual", - "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];ReturnValue.Property[System.Tuple<,,,,,,,>.Item7];value;manual", + "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item1];value;manual", + "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item2];value;manual", + "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item3];value;manual", + "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item4];value;manual", + "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item5];value;manual", + "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item6];value;manual", + "System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item7];value;manual", "System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item1];ReturnValue;value;manual", "System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item2];ReturnValue;value;manual", "System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item3];ReturnValue;value;manual", @@ -1378,13 +1378,13 @@ private class SystemTupleTFlowModelCsv extends SummaryModelCsv { "System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item5];ReturnValue;value;manual", "System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item6];ReturnValue;value;manual", "System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item7];ReturnValue;value;manual", - "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];ReturnValue.Property[System.Tuple<,,,,,,>.Item1];value;manual", - "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];ReturnValue.Property[System.Tuple<,,,,,,>.Item2];value;manual", - "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];ReturnValue.Property[System.Tuple<,,,,,,>.Item3];value;manual", - "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];ReturnValue.Property[System.Tuple<,,,,,,>.Item4];value;manual", - "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];ReturnValue.Property[System.Tuple<,,,,,,>.Item5];value;manual", - "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];ReturnValue.Property[System.Tuple<,,,,,,>.Item6];value;manual", - "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];ReturnValue.Property[System.Tuple<,,,,,,>.Item7];value;manual", + "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item1];value;manual", + "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item2];value;manual", + "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item3];value;manual", + "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item4];value;manual", + "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item5];value;manual", + "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item6];value;manual", + "System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item7];value;manual", "System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item1];ReturnValue;value;manual", "System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item2];ReturnValue;value;manual", "System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item3];ReturnValue;value;manual", @@ -1392,47 +1392,47 @@ private class SystemTupleTFlowModelCsv extends SummaryModelCsv { "System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item5];ReturnValue;value;manual", "System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item6];ReturnValue;value;manual", "System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item7];ReturnValue;value;manual", - "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[0];ReturnValue.Property[System.Tuple<,,,,,>.Item1];value;manual", - "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[1];ReturnValue.Property[System.Tuple<,,,,,>.Item2];value;manual", - "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[2];ReturnValue.Property[System.Tuple<,,,,,>.Item3];value;manual", - "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[3];ReturnValue.Property[System.Tuple<,,,,,>.Item4];value;manual", - "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[4];ReturnValue.Property[System.Tuple<,,,,,>.Item5];value;manual", - "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[5];ReturnValue.Property[System.Tuple<,,,,,>.Item6];value;manual", + "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item1];value;manual", + "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item2];value;manual", + "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item3];value;manual", + "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item4];value;manual", + "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item5];value;manual", + "System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item6];value;manual", "System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item1];ReturnValue;value;manual", "System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item2];ReturnValue;value;manual", "System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item3];ReturnValue;value;manual", "System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item4];ReturnValue;value;manual", "System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item5];ReturnValue;value;manual", "System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item6];ReturnValue;value;manual", - "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[0];ReturnValue.Property[System.Tuple<,,,,>.Item1];value;manual", - "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[1];ReturnValue.Property[System.Tuple<,,,,>.Item2];value;manual", - "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[2];ReturnValue.Property[System.Tuple<,,,,>.Item3];value;manual", - "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[3];ReturnValue.Property[System.Tuple<,,,,>.Item4];value;manual", - "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[4];ReturnValue.Property[System.Tuple<,,,,>.Item5];value;manual", + "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,>.Item1];value;manual", + "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,>.Item2];value;manual", + "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,>.Item3];value;manual", + "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,>.Item4];value;manual", + "System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,>.Item5];value;manual", "System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item1];ReturnValue;value;manual", "System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item2];ReturnValue;value;manual", "System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item3];ReturnValue;value;manual", "System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item4];ReturnValue;value;manual", "System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item5];ReturnValue;value;manual", - "System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[0];ReturnValue.Property[System.Tuple<,,,>.Item1];value;manual", - "System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[1];ReturnValue.Property[System.Tuple<,,,>.Item2];value;manual", - "System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[2];ReturnValue.Property[System.Tuple<,,,>.Item3];value;manual", - "System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[3];ReturnValue.Property[System.Tuple<,,,>.Item4];value;manual", + "System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,>.Item1];value;manual", + "System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,>.Item2];value;manual", + "System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,>.Item3];value;manual", + "System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,>.Item4];value;manual", "System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item1];ReturnValue;value;manual", "System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item2];ReturnValue;value;manual", "System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item3];ReturnValue;value;manual", "System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item4];ReturnValue;value;manual", - "System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[0];ReturnValue.Property[System.Tuple<,,>.Item1];value;manual", - "System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[1];ReturnValue.Property[System.Tuple<,,>.Item2];value;manual", - "System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[2];ReturnValue.Property[System.Tuple<,,>.Item3];value;manual", + "System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,>.Item1];value;manual", + "System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,>.Item2];value;manual", + "System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,>.Item3];value;manual", "System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item1];ReturnValue;value;manual", "System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item2];ReturnValue;value;manual", "System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item3];ReturnValue;value;manual", - "System;Tuple<,>;false;Tuple;(T1,T2);;Argument[0];ReturnValue.Property[System.Tuple<,>.Item1];value;manual", - "System;Tuple<,>;false;Tuple;(T1,T2);;Argument[1];ReturnValue.Property[System.Tuple<,>.Item2];value;manual", + "System;Tuple<,>;false;Tuple;(T1,T2);;Argument[0];Argument[Qualifier].Property[System.Tuple<,>.Item1];value;manual", + "System;Tuple<,>;false;Tuple;(T1,T2);;Argument[1];Argument[Qualifier].Property[System.Tuple<,>.Item2];value;manual", "System;Tuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,>.Item1];ReturnValue;value;manual", "System;Tuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,>.Item2];ReturnValue;value;manual", - "System;Tuple<>;false;Tuple;(T1);;Argument[0];ReturnValue.Property[System.Tuple<>.Item1];value;manual", + "System;Tuple<>;false;Tuple;(T1);;Argument[0];Argument[Qualifier].Property[System.Tuple<>.Item1];value;manual", "System;Tuple<>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<>.Item1];ReturnValue;value;manual", ] } @@ -1622,13 +1622,13 @@ private class SystemValueTupleTFlowModelCsv extends SummaryModelCsv { override predicate row(string row) { row = [ - "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item1];value;manual", - "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item2];value;manual", - "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item3];value;manual", - "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item4];value;manual", - "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item5];value;manual", - "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item6];value;manual", - "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item7];value;manual", + "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item1];value;manual", + "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item2];value;manual", + "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item3];value;manual", + "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item4];value;manual", + "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item5];value;manual", + "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item6];value;manual", + "System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item7];value;manual", "System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item1];ReturnValue;value;manual", "System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item2];ReturnValue;value;manual", "System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item3];ReturnValue;value;manual", @@ -1636,13 +1636,13 @@ private class SystemValueTupleTFlowModelCsv extends SummaryModelCsv { "System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item5];ReturnValue;value;manual", "System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item6];ReturnValue;value;manual", "System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item7];ReturnValue;value;manual", - "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item1];value;manual", - "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item2];value;manual", - "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item3];value;manual", - "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item4];value;manual", - "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item5];value;manual", - "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item6];value;manual", - "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item7];value;manual", + "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item1];value;manual", + "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item2];value;manual", + "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item3];value;manual", + "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item4];value;manual", + "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item5];value;manual", + "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item6];value;manual", + "System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item7];value;manual", "System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item1];ReturnValue;value;manual", "System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item2];ReturnValue;value;manual", "System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item3];ReturnValue;value;manual", @@ -1650,47 +1650,47 @@ private class SystemValueTupleTFlowModelCsv extends SummaryModelCsv { "System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item5];ReturnValue;value;manual", "System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item6];ReturnValue;value;manual", "System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item7];ReturnValue;value;manual", - "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,,>.Item1];value;manual", - "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,,>.Item2];value;manual", - "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,,>.Item3];value;manual", - "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,,>.Item4];value;manual", - "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,,>.Item5];value;manual", - "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[5];ReturnValue.Field[System.ValueTuple<,,,,,>.Item6];value;manual", + "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item1];value;manual", + "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item2];value;manual", + "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item3];value;manual", + "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item4];value;manual", + "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item5];value;manual", + "System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item6];value;manual", "System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item1];ReturnValue;value;manual", "System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item2];ReturnValue;value;manual", "System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item3];ReturnValue;value;manual", "System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item4];ReturnValue;value;manual", "System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item5];ReturnValue;value;manual", "System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item6];ReturnValue;value;manual", - "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,>.Item1];value;manual", - "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,>.Item2];value;manual", - "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,>.Item3];value;manual", - "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,>.Item4];value;manual", - "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,>.Item5];value;manual", + "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item1];value;manual", + "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item2];value;manual", + "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item3];value;manual", + "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item4];value;manual", + "System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item5];value;manual", "System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item1];ReturnValue;value;manual", "System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item2];ReturnValue;value;manual", "System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item3];ReturnValue;value;manual", "System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item4];ReturnValue;value;manual", "System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item5];ReturnValue;value;manual", - "System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,>.Item1];value;manual", - "System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,>.Item2];value;manual", - "System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,>.Item3];value;manual", - "System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,>.Item4];value;manual", + "System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item1];value;manual", + "System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item2];value;manual", + "System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item3];value;manual", + "System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item4];value;manual", "System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item1];ReturnValue;value;manual", "System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item2];ReturnValue;value;manual", "System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item3];ReturnValue;value;manual", "System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item4];ReturnValue;value;manual", - "System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[0];ReturnValue.Field[System.ValueTuple<,,>.Item1];value;manual", - "System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[1];ReturnValue.Field[System.ValueTuple<,,>.Item2];value;manual", - "System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[2];ReturnValue.Field[System.ValueTuple<,,>.Item3];value;manual", + "System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,>.Item1];value;manual", + "System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,>.Item2];value;manual", + "System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,>.Item3];value;manual", "System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item1];ReturnValue;value;manual", "System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item2];ReturnValue;value;manual", "System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item3];ReturnValue;value;manual", - "System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[0];ReturnValue.Field[System.ValueTuple<,>.Item1];value;manual", - "System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[1];ReturnValue.Field[System.ValueTuple<,>.Item2];value;manual", + "System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,>.Item1];value;manual", + "System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,>.Item2];value;manual", "System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,>.Item1];ReturnValue;value;manual", "System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,>.Item2];ReturnValue;value;manual", - "System;ValueTuple<>;false;ValueTuple;(T1);;Argument[0];ReturnValue.Field[System.ValueTuple<>.Item1];value;manual", + "System;ValueTuple<>;false;ValueTuple;(T1);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<>.Item1];value;manual", "System;ValueTuple<>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<>.Item1];ReturnValue;value;manual", ] } diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/microsoft/extensions/Primitives.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/microsoft/extensions/Primitives.qll index c8aadc81506..1e4c0d9153d 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/microsoft/extensions/Primitives.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/microsoft/extensions/Primitives.qll @@ -50,8 +50,8 @@ private class MicrosoftExtensionsPrimitivesStringValuesFlowModelCsv extends Summ "Microsoft.Extensions.Primitives;StringValues;false;Remove;(System.String);;Argument[Qualifier];ReturnValue;taint;manual", "Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[0];ReturnValue;taint;manual", "Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual", - "Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String);;Argument[0];ReturnValue;taint;manual", - "Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String[]);;Argument[0].Element;ReturnValue;taint;manual", + "Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String);;Argument[0];Argument[Qualifier];taint;manual", + "Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String[]);;Argument[0].Element;Argument[Qualifier];taint;manual", "Microsoft.Extensions.Primitives;StringValues;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;manual", "Microsoft.Extensions.Primitives;StringValues;false;ToString;();;Argument[Qualifier];ReturnValue;taint;manual", "Microsoft.Extensions.Primitives;StringValues;false;get_Count;();;Argument[Qualifier];ReturnValue;taint;manual", diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/Collections.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/Collections.qll index e91308f148a..eec549d6679 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/Collections.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/Collections.qll @@ -130,18 +130,18 @@ private class SystemCollectionsHashtableFlowModelCsv extends SummaryModelCsv { row = [ "System.Collections;Hashtable;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", ] } } @@ -154,10 +154,10 @@ private class SystemCollectionsSortedListFlowModelCsv extends SummaryModelCsv { "System.Collections;SortedList;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual", "System.Collections;SortedList;false;GetByIndex;(System.Int32);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual", "System.Collections;SortedList;false;GetValueList;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual", - "System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", ] } } diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/ComponentModel.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/ComponentModel.qll index 5db216f9cc7..5d91f1549e9 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/ComponentModel.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/ComponentModel.qll @@ -15,10 +15,10 @@ private class SystemComponentModelPropertyDescriptorCollectionFlowModelCsv exten "System.ComponentModel;PropertyDescriptorCollection;false;Find;(System.String,System.Boolean);;Argument[Qualifier].Element;ReturnValue;value;manual", "System.ComponentModel;PropertyDescriptorCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual", "System.ComponentModel;PropertyDescriptorCollection;false;Insert;(System.Int32,System.ComponentModel.PropertyDescriptor);;Argument[1];Argument[Qualifier].Element;value;manual", - "System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual", "System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual", "System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual", diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/Diagnostics.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/Diagnostics.qll index cce90f8a268..b471a775205 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/Diagnostics.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/Diagnostics.qll @@ -86,8 +86,8 @@ private class SystemDiagnosticsActivityTagsCollectionFlowModelCsv extends Summar override predicate row(string row) { row = [ - "System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", "System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.Diagnostics;ActivityTagsCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Diagnostics.ActivityTagsCollection+Enumerator.Current];value;manual", diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/IO.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/IO.qll index 457906db8bb..14632ca90b5 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/IO.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/IO.qll @@ -105,7 +105,7 @@ class SystemIOStringReaderClass extends SystemIOClass { private class SystemIOStringReaderFlowModelCsv extends SummaryModelCsv { override predicate row(string row) { row = - "System.IO;StringReader;false;StringReader;(System.String);;Argument[0];ReturnValue;taint;manual" + "System.IO;StringReader;false;StringReader;(System.String);;Argument[0];Argument[Qualifier];taint;manual" } } @@ -183,11 +183,11 @@ private class SystemIOMemoryStreamFlowModelCsv extends SummaryModelCsv { override predicate row(string row) { row = [ - "System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];ReturnValue;taint;manual", - "System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0].Element;ReturnValue;taint;manual", - "System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;manual", - "System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Argument[0].Element;ReturnValue;taint;manual", - "System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0].Element;ReturnValue;taint;manual", + "System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];Argument[Qualifier];taint;manual", + "System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual", + "System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual", + "System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual", + "System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual", "System.IO;MemoryStream;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;manual" ] } diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/Text.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/Text.qll index c980d507e7c..0ffef8542b7 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/Text.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/Text.qll @@ -120,9 +120,9 @@ private class SystemTextStringBuilderFlowModelCsv extends SummaryModelCsv { "System.Text;StringBuilder;false;AppendLine;();;Argument[Qualifier];ReturnValue;value;manual", "System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual", "System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[Qualifier];ReturnValue;value;manual", - "System.Text;StringBuilder;false;StringBuilder;(System.String);;Argument[0];ReturnValue.Element;value;manual", - "System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32);;Argument[0];ReturnValue.Element;value;manual", - "System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];ReturnValue.Element;value;manual", + "System.Text;StringBuilder;false;StringBuilder;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual", + "System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual", + "System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual", "System.Text;StringBuilder;false;ToString;();;Argument[Qualifier].Element;ReturnValue;taint;manual", "System.Text;StringBuilder;false;ToString;(System.Int32,System.Int32);;Argument[Qualifier].Element;ReturnValue;taint;manual", ] diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Concurrent.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Concurrent.qll index 26712678845..83d9468ec3f 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Concurrent.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Concurrent.qll @@ -9,12 +9,12 @@ private class SystemCollectionsConcurrentConcurrentDictionaryFlowModelCsv extend [ "System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.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];ReturnValue.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];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];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<,>.Key];ReturnValue.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];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].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[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];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<,>.Key];Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual", "System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual", ] diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Generic.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Generic.qll index 5eaac9394d9..76db120c4b7 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Generic.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Generic.qll @@ -171,8 +171,8 @@ private class SystemCollectionsGenericKeyValuePairStructFlowModelCsv extends Sum override predicate row(string row) { row = [ - "System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual" + "System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];Argument[Qualifier].Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];Argument[Qualifier].Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual" ] } } @@ -240,14 +240,14 @@ private class SystemCollectionsGenericDictionaryFlowModelCsv extends SummaryMode "System.Collections.Generic;Dictionary<,>+ValueCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+ValueCollection+Enumerator.Current];value;manual", "System.Collections.Generic;Dictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", "System.Collections.Generic;Dictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.Collections.Generic;Dictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+Enumerator.Current];value;manual", "System.Collections.Generic;Dictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual", "System.Collections.Generic;Dictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual", @@ -265,10 +265,10 @@ private class SystemCollectionsGenericSortedDictionaryFlowModelCsv extends Summa "System.Collections.Generic;SortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", "System.Collections.Generic;SortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.Collections.Generic;SortedDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary<,>+Enumerator.Current];value;manual", - "System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.Collections.Generic;SortedDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual", "System.Collections.Generic;SortedDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual", ] @@ -283,10 +283,10 @@ private class SystemCollectionsGenericSortedListFlowModelCsv extends SummaryMode "System.Collections.Generic;SortedList<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", "System.Collections.Generic;SortedList<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.Collections.Generic;SortedList<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual", - "System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.Collections.Generic;SortedList<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual", "System.Collections.Generic;SortedList<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual", ] diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/ObjectModel.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/ObjectModel.qll index 52e61c521a1..5b56834b4b8 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/ObjectModel.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/ObjectModel.qll @@ -10,8 +10,8 @@ private class SystemCollectionsObjectModelReadOnlyDictionaryFlowModelCsv extends "System.Collections.ObjectModel;ReadOnlyCollection<>;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual", "System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", "System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", - "System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", - "System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", + "System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual", + "System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual", "System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual", "System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual", "System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual", diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/io/Compression.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/io/Compression.qll index 4d9268ef495..e4bd2808996 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/io/Compression.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/io/Compression.qll @@ -27,10 +27,10 @@ private class SystemIOCompressionDeflateStreamFlowModelCsv extends SummaryModelC override predicate row(string row) { row = [ - "System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];ReturnValue;taint;manual", - "System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];ReturnValue;taint;manual", - "System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];ReturnValue;taint;manual", - "System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];ReturnValue;taint;manual" + "System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];Argument[Qualifier];taint;manual", + "System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual", + "System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];Argument[Qualifier];taint;manual", + "System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual" ] } } diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/threading/Tasks.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/threading/Tasks.qll index 6f9dd72b32f..95828477235 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/threading/Tasks.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/threading/Tasks.qll @@ -157,17 +157,17 @@ private class SystemThreadingTasksTaskTFlowModelCsv extends SummaryModelCsv { "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;GetAwaiter;();;Argument[Qualifier];ReturnValue.SyntheticField[m_task_task_awaiter];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);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual", + "System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];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);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual", + "System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[Qualifier].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[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;ReturnValue.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].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];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,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual", - "System.Threading.Tasks;Task<>;false;Task;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual", - "System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.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].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual", - "System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual", + "System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual", + "System.Threading.Tasks;Task<>;false;Task;(System.Func);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual", + "System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[Qualifier].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].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual", + "System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual", "System.Threading.Tasks;Task<>;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;manual" ] } From 736ae4f7d62fdab811dd17b57f8602b26a349598 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 10 Aug 2022 14:23:54 +0200 Subject: [PATCH 702/736] C#: Update FlowSummaries expected output. --- .../dataflow/library/FlowSummaries.expected | 308 +++++++++--------- .../library/FlowSummariesFiltered.expected | 308 +++++++++--------- 2 files changed, 308 insertions(+), 308 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index 91a6bd12235..3b4f5cb1144 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -550,8 +550,8 @@ | Microsoft.Extensions.Primitives;StringValues;false;Remove;(System.String);;Argument[Qualifier];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[0];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | -| Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String);;Argument[0];ReturnValue;taint;manual | -| Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String[]);;Argument[0].Element;ReturnValue;taint;manual | +| Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String);;Argument[0];Argument[Qualifier];taint;manual | +| Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String[]);;Argument[0].Element;Argument[Qualifier];taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;ToString;();;Argument[Qualifier];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;get_Count;();;Argument[Qualifier];ReturnValue;taint;manual | @@ -618,10 +618,10 @@ | Newtonsoft.Json.Linq;JObject;false;Add;(System.String,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | Newtonsoft.Json.Linq;JObject;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | Newtonsoft.Json.Linq;JObject;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | -| Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].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;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | @@ -817,12 +817,12 @@ | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Object,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(TKey,TValue);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(TKey,TValue);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.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];ReturnValue.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];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];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<,>.Key];ReturnValue.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];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].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[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];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<,>.Key];Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | @@ -892,14 +892,14 @@ | System.Collections.Generic;Dictionary<,>;false;Add;(TKey,TValue);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;Dictionary<,>;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Dictionary<,>;false;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Int32,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[Qualifier];taint;generated | | System.Collections.Generic;Dictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+Enumerator.Current];value;manual | | System.Collections.Generic;Dictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | @@ -940,8 +940,8 @@ | System.Collections.Generic;IList<>;true;set_Item;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.Generic;ISet<>;true;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Collections.Generic;KeyValuePair<,>;false;Deconstruct;(TKey,TValue);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];Argument[Qualifier].Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];Argument[Qualifier].Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;KeyValuePair<,>;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;KeyValuePair<,>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;LinkedList<>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -1076,10 +1076,10 @@ | System.Collections.Generic;SortedDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Generic;SortedDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary<,>+Enumerator.Current];value;manual | | System.Collections.Generic;SortedDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | -| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;SortedDictionary<,>;false;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.Generic;SortedDictionary<,>;false;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.Generic;SortedDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | @@ -1101,10 +1101,10 @@ | System.Collections.Generic;SortedList<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Generic;SortedList<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IComparer);;Argument[0];Argument[Qualifier];taint;generated | -| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;SortedList<,>;false;TryGetValue;(TKey,TValue);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;SortedList<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;SortedList<,>;false;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | @@ -1642,8 +1642,8 @@ | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Dictionary;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | @@ -1834,18 +1834,18 @@ | System.Collections;Hashtable;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections;Hashtable;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections;Hashtable;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections;Hashtable;false;Hashtable;(System.Int32,System.Single,System.Collections.IEqualityComparer);;Argument[2];Argument[Qualifier];taint;generated | | System.Collections;Hashtable;false;Hashtable;(System.Int32,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[2];Argument[Qualifier];taint;generated | | System.Collections;Hashtable;false;Hashtable;(System.Int32,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[3];Argument[Qualifier];taint;generated | @@ -1899,10 +1899,10 @@ | System.Collections;SortedList;false;GetValueList;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | System.Collections;SortedList;false;SetByIndex;(System.Int32,System.Object);;Argument[1];Argument[Qualifier];taint;generated | | System.Collections;SortedList;false;SortedList;(System.Collections.IComparer);;Argument[0];Argument[Qualifier];taint;generated | -| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections;SortedList;false;Synchronized;(System.Collections.SortedList);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections;SortedList;false;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections;SortedList;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | @@ -2175,10 +2175,10 @@ | System.ComponentModel;PropertyDescriptorCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.ComponentModel;PropertyDescriptorCollection;false;Insert;(System.Int32,System.ComponentModel.PropertyDescriptor);;Argument[1];Argument[Qualifier].Element;value;manual | | System.ComponentModel;PropertyDescriptorCollection;false;Insert;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual | -| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.ComponentModel;PropertyDescriptorCollection;false;Sort;();;Argument[Qualifier];ReturnValue;taint;generated | | System.ComponentModel;PropertyDescriptorCollection;false;Sort;(System.Collections.IComparer);;Argument[0];ReturnValue;taint;generated | | System.ComponentModel;PropertyDescriptorCollection;false;Sort;(System.Collections.IComparer);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2964,8 +2964,8 @@ | System.Diagnostics;ActivitySpanId;false;ToHexString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;ActivitySpanId;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;ActivityTagsCollection+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0];Argument[Qualifier].Element;value;manual | @@ -3350,10 +3350,10 @@ | System.IO.Compression;DeflateStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO.Compression;DeflateStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual | | System.IO.Compression;DeflateStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | -| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];ReturnValue;taint;manual | -| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];ReturnValue;taint;manual | -| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];ReturnValue;taint;manual | -| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];ReturnValue;taint;manual | +| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];Argument[Qualifier];taint;manual | +| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual | +| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];Argument[Qualifier];taint;manual | +| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual | | System.IO.Compression;DeflateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO.Compression;DeflateStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO.Compression;DeflateStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | @@ -3578,11 +3578,11 @@ | System.IO;MemoryStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual | | System.IO;MemoryStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;MemoryStream;false;GetBuffer;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];ReturnValue;taint;manual | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;manual | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];Argument[Qualifier];taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;MemoryStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;MemoryStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual | | System.IO;MemoryStream;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;manual | @@ -3714,7 +3714,7 @@ | System.IO;StringReader;false;ReadLineAsync;();;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;StringReader;false;ReadToEnd;();;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;StringReader;false;ReadToEndAsync;();;Argument[Qualifier];ReturnValue;taint;manual | -| System.IO;StringReader;false;StringReader;(System.String);;Argument[0];ReturnValue;taint;manual | +| System.IO;StringReader;false;StringReader;(System.String);;Argument[0];Argument[Qualifier];taint;manual | | System.IO;StringWriter;false;GetStringBuilder;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;StringWriter;(System.Text.StringBuilder,System.IFormatProvider);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -8055,9 +8055,9 @@ | System.Text;StringBuilder;false;Replace;(System.Char,System.Char,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;generated | | System.Text;StringBuilder;false;Replace;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;Replace;(System.String,System.String,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;generated | -| System.Text;StringBuilder;false;StringBuilder;(System.String);;Argument[0];ReturnValue.Element;value;manual | -| System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32);;Argument[0];ReturnValue.Element;value;manual | -| System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];ReturnValue.Element;value;manual | +| System.Text;StringBuilder;false;StringBuilder;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Text;StringBuilder;false;ToString;();;Argument[Qualifier].Element;ReturnValue;taint;manual | | System.Text;StringBuilder;false;ToString;(System.Int32,System.Int32);;Argument[Qualifier].Element;ReturnValue;taint;manual | | System.Text;StringRuneEnumerator;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | @@ -8277,18 +8277,18 @@ | 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[Qualifier];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;GetAwaiter;();;Argument[Qualifier];ReturnValue.SyntheticField[m_task_task_awaiter];value;manual | -| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];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;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];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;ReturnValue.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].ReturnValue;Argument[Qualifier].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[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];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;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | -| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.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].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | -| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[Qualifier].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].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | @@ -10621,9 +10621,9 @@ | System;Lazy<,>;false;Lazy;(TMetadata,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System;Lazy<,>;false;Lazy;(TMetadata,System.Threading.LazyThreadSafetyMode);;Argument[0];Argument[Qualifier];taint;generated | | System;Lazy<,>;false;get_Metadata;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Lazy<>;false;Lazy;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Lazy<>.Value];value;manual | -| System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0].ReturnValue;ReturnValue.Property[System.Lazy<>.Value];value;manual | -| System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;ReturnValue.Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual | | System;Lazy<>;false;Lazy;(T);;Argument[0];Argument[Qualifier];taint;generated | | System;Lazy<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Lazy<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual | @@ -10710,7 +10710,7 @@ | System;Nullable<>;false;GetValueOrDefault;();;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;value;manual | | System;Nullable<>;false;GetValueOrDefault;(T);;Argument[0];ReturnValue;value;manual | | System;Nullable<>;false;GetValueOrDefault;(T);;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;value;manual | -| System;Nullable<>;false;Nullable;(T);;Argument[0];ReturnValue.Property[System.Nullable<>.Value];value;manual | +| System;Nullable<>;false;Nullable;(T);;Argument[0];Argument[Qualifier].Property[System.Nullable<>.Value];value;manual | | System;Nullable<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Nullable<>;false;get_HasValue;();;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;taint;manual | | System;Nullable<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual | @@ -10846,8 +10846,8 @@ | System;String;false;Split;(System.String,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | | System;String;false;Split;(System.String[],System.Int32,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | | System;String;false;Split;(System.String[],System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | -| System;String;false;String;(System.Char[]);;Argument[0].Element;ReturnValue;taint;manual | -| System;String;false;String;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;manual | +| System;String;false;String;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System;String;false;String;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System;String;false;Substring;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | | System;String;false;Substring;(System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | | System;String;false;ToDateTime;(System.IFormatProvider);;Argument[Qualifier];ReturnValue;taint;generated | @@ -10966,13 +10966,13 @@ | System;Tuple;false;Create<,>;(T1,T2);;Argument[1];ReturnValue.Property[System.Tuple<,>.Item2];value;manual | | System;Tuple;false;Create<>;(T1);;Argument[0];ReturnValue.Property[System.Tuple<>.Item1];value;manual | | System;Tuple<,,,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];ReturnValue.Property[System.Tuple<,,,,,,,>.Item1];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];ReturnValue.Property[System.Tuple<,,,,,,,>.Item2];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];ReturnValue.Property[System.Tuple<,,,,,,,>.Item3];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];ReturnValue.Property[System.Tuple<,,,,,,,>.Item4];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];ReturnValue.Property[System.Tuple<,,,,,,,>.Item5];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];ReturnValue.Property[System.Tuple<,,,,,,,>.Item6];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];ReturnValue.Property[System.Tuple<,,,,,,,>.Item7];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item1];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item2];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item3];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item4];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item5];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item6];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item7];value;manual | | System;Tuple<,,,,,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -10989,13 +10989,13 @@ | System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item7];ReturnValue;value;manual | | System;Tuple<,,,,,,,>;false;get_Rest;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];ReturnValue.Property[System.Tuple<,,,,,,>.Item1];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];ReturnValue.Property[System.Tuple<,,,,,,>.Item2];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];ReturnValue.Property[System.Tuple<,,,,,,>.Item3];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];ReturnValue.Property[System.Tuple<,,,,,,>.Item4];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];ReturnValue.Property[System.Tuple<,,,,,,>.Item5];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];ReturnValue.Property[System.Tuple<,,,,,,>.Item6];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];ReturnValue.Property[System.Tuple<,,,,,,>.Item7];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item1];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item2];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item3];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item4];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item5];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item6];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item7];value;manual | | System;Tuple<,,,,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -11011,12 +11011,12 @@ | System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item6];ReturnValue;value;manual | | System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item7];ReturnValue;value;manual | | System;Tuple<,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[0];ReturnValue.Property[System.Tuple<,,,,,>.Item1];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[1];ReturnValue.Property[System.Tuple<,,,,,>.Item2];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[2];ReturnValue.Property[System.Tuple<,,,,,>.Item3];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[3];ReturnValue.Property[System.Tuple<,,,,,>.Item4];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[4];ReturnValue.Property[System.Tuple<,,,,,>.Item5];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[5];ReturnValue.Property[System.Tuple<,,,,,>.Item6];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item1];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item2];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item3];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item4];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item5];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item6];value;manual | | System;Tuple<,,,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -11030,11 +11030,11 @@ | System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item5];ReturnValue;value;manual | | System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item6];ReturnValue;value;manual | | System;Tuple<,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[0];ReturnValue.Property[System.Tuple<,,,,>.Item1];value;manual | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[1];ReturnValue.Property[System.Tuple<,,,,>.Item2];value;manual | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[2];ReturnValue.Property[System.Tuple<,,,,>.Item3];value;manual | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[3];ReturnValue.Property[System.Tuple<,,,,>.Item4];value;manual | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[4];ReturnValue.Property[System.Tuple<,,,,>.Item5];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,>.Item1];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,>.Item2];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,>.Item3];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,>.Item4];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,>.Item5];value;manual | | System;Tuple<,,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -11046,10 +11046,10 @@ | System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item4];ReturnValue;value;manual | | System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item5];ReturnValue;value;manual | | System;Tuple<,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[0];ReturnValue.Property[System.Tuple<,,,>.Item1];value;manual | -| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[1];ReturnValue.Property[System.Tuple<,,,>.Item2];value;manual | -| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[2];ReturnValue.Property[System.Tuple<,,,>.Item3];value;manual | -| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[3];ReturnValue.Property[System.Tuple<,,,>.Item4];value;manual | +| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,>.Item1];value;manual | +| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,>.Item2];value;manual | +| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,>.Item3];value;manual | +| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,>.Item4];value;manual | | System;Tuple<,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -11059,9 +11059,9 @@ | System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item3];ReturnValue;value;manual | | System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item4];ReturnValue;value;manual | | System;Tuple<,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[0];ReturnValue.Property[System.Tuple<,,>.Item1];value;manual | -| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[1];ReturnValue.Property[System.Tuple<,,>.Item2];value;manual | -| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[2];ReturnValue.Property[System.Tuple<,,>.Item3];value;manual | +| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,>.Item1];value;manual | +| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,>.Item2];value;manual | +| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,>.Item3];value;manual | | System;Tuple<,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -11069,14 +11069,14 @@ | System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item2];ReturnValue;value;manual | | System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item3];ReturnValue;value;manual | | System;Tuple<,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,>;false;Tuple;(T1,T2);;Argument[0];ReturnValue.Property[System.Tuple<,>.Item1];value;manual | -| System;Tuple<,>;false;Tuple;(T1,T2);;Argument[1];ReturnValue.Property[System.Tuple<,>.Item2];value;manual | +| System;Tuple<,>;false;Tuple;(T1,T2);;Argument[0];Argument[Qualifier].Property[System.Tuple<,>.Item1];value;manual | +| System;Tuple<,>;false;Tuple;(T1,T2);;Argument[1];Argument[Qualifier].Property[System.Tuple<,>.Item2];value;manual | | System;Tuple<,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,>.Item1];ReturnValue;value;manual | | System;Tuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,>.Item2];ReturnValue;value;manual | | System;Tuple<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<>;false;Tuple;(T1);;Argument[0];ReturnValue.Property[System.Tuple<>.Item1];value;manual | +| System;Tuple<>;false;Tuple;(T1);;Argument[0];Argument[Qualifier].Property[System.Tuple<>.Item1];value;manual | | System;Tuple<>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<>.Item1];ReturnValue;value;manual | | System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21);;Argument[0].Property[System.Tuple<,,,,,,,>.Item1];Argument[1];value;manual | @@ -11293,10 +11293,10 @@ | System;Uri;false;TryCreate;(System.Uri,System.Uri,System.Uri);;Argument[1];ReturnValue;taint;generated | | System;Uri;false;UnescapeDataString;(System.String);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;Uri;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[Qualifier];taint;generated | -| System;Uri;false;Uri;(System.String);;Argument[0];ReturnValue;taint;manual | -| System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];ReturnValue;taint;manual | +| System;Uri;false;Uri;(System.String);;Argument[0];Argument[Qualifier];taint;manual | +| System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual | | System;Uri;false;Uri;(System.String,System.UriCreationOptions);;Argument[0];Argument[Qualifier];taint;generated | -| System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];ReturnValue;taint;manual | +| System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];Argument[Qualifier];taint;manual | | System;Uri;false;Uri;(System.Uri,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.Uri,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.Uri,System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | @@ -11378,13 +11378,13 @@ | System;ValueTuple;false;Create<,>;(T1,T2);;Argument[1];ReturnValue.Field[System.ValueTuple<,>.Item2];value;manual | | System;ValueTuple;false;Create<>;(T1);;Argument[0];ReturnValue.Field[System.ValueTuple<>.Item1];value;manual | | System;ValueTuple<,,,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item1];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item2];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item3];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item4];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item5];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item6];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item7];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item1];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item2];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item3];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item4];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item5];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item6];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item7];value;manual | | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item3];ReturnValue;value;manual | @@ -11393,13 +11393,13 @@ | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item6];ReturnValue;value;manual | | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item7];ReturnValue;value;manual | | System;ValueTuple<,,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item1];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item2];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item3];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item4];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item5];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item6];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item7];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item1];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item2];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item3];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item4];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item5];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item6];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item7];value;manual | | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item3];ReturnValue;value;manual | @@ -11408,12 +11408,12 @@ | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item6];ReturnValue;value;manual | | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item7];ReturnValue;value;manual | | System;ValueTuple<,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,,>.Item1];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,,>.Item2];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,,>.Item3];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,,>.Item4];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,,>.Item5];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[5];ReturnValue.Field[System.ValueTuple<,,,,,>.Item6];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item1];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item2];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item3];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item4];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item5];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item6];value;manual | | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item3];ReturnValue;value;manual | @@ -11421,37 +11421,37 @@ | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item5];ReturnValue;value;manual | | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item6];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,>.Item1];value;manual | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,>.Item2];value;manual | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,>.Item3];value;manual | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,>.Item4];value;manual | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,>.Item5];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item1];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item2];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item3];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item4];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item5];value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item3];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item4];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item5];ReturnValue;value;manual | | System;ValueTuple<,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,>.Item1];value;manual | -| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,>.Item2];value;manual | -| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,>.Item3];value;manual | -| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,>.Item4];value;manual | +| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item1];value;manual | +| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item2];value;manual | +| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item3];value;manual | +| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item4];value;manual | | System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item3];ReturnValue;value;manual | | System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item4];ReturnValue;value;manual | | System;ValueTuple<,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[0];ReturnValue.Field[System.ValueTuple<,,>.Item1];value;manual | -| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[1];ReturnValue.Field[System.ValueTuple<,,>.Item2];value;manual | -| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[2];ReturnValue.Field[System.ValueTuple<,,>.Item3];value;manual | +| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,>.Item1];value;manual | +| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,>.Item2];value;manual | +| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,>.Item3];value;manual | | System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item3];ReturnValue;value;manual | | System;ValueTuple<,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[0];ReturnValue.Field[System.ValueTuple<,>.Item1];value;manual | -| System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[1];ReturnValue.Field[System.ValueTuple<,>.Item2];value;manual | +| System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,>.Item1];value;manual | +| System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,>.Item2];value;manual | | System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,>.Item2];ReturnValue;value;manual | | System;ValueTuple<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<>;false;ValueTuple;(T1);;Argument[0];ReturnValue.Field[System.ValueTuple<>.Item1];value;manual | +| System;ValueTuple<>;false;ValueTuple;(T1);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<>.Item1];value;manual | | System;ValueTuple<>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<>.Item1];ReturnValue;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 8b7bd50931f..e5bdad31fa9 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -370,8 +370,8 @@ | Microsoft.Extensions.Primitives;StringValues;false;Remove;(System.String);;Argument[Qualifier];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[0];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | -| Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String);;Argument[0];ReturnValue;taint;manual | -| Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String[]);;Argument[0].Element;ReturnValue;taint;manual | +| Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String);;Argument[0];Argument[Qualifier];taint;manual | +| Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String[]);;Argument[0].Element;Argument[Qualifier];taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;ToString;();;Argument[Qualifier];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;false;get_Count;();;Argument[Qualifier];ReturnValue;taint;manual | @@ -400,10 +400,10 @@ | Newtonsoft.Json.Linq;JContainer;true;Add;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual | | Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].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;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | @@ -554,12 +554,12 @@ | System.Collections.Concurrent;ConcurrentBag<>;false;TryTake;(T);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.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];ReturnValue.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];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];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<,>.Key];ReturnValue.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];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].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[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];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<,>.Key];Argument[Qualifier].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[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;GetOrAdd;(TKey,TValue);;Argument[1];ReturnValue;taint;generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | @@ -594,14 +594,14 @@ | System.Collections.Generic;Dictionary<,>+ValueCollection;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;Dictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Generic;Dictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Int32,System.Collections.Generic.IEqualityComparer);;Argument[1];Argument[Qualifier];taint;generated | | System.Collections.Generic;Dictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+Enumerator.Current];value;manual | | System.Collections.Generic;Dictionary<,>;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | @@ -630,8 +630,8 @@ | System.Collections.Generic;IList<>;true;set_Item;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual | | System.Collections.Generic;ISet<>;true;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Collections.Generic;KeyValuePair<,>;false;Deconstruct;(TKey,TValue);;Argument[Qualifier];ReturnValue;taint;generated | -| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];ReturnValue.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];Argument[Qualifier].Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];Argument[Qualifier].Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;KeyValuePair<,>;false;get_Key;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;KeyValuePair<,>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;LinkedList<>+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -725,10 +725,10 @@ | System.Collections.Generic;SortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.Generic;SortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;SortedDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary<,>+Enumerator.Current];value;manual | -| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;SortedDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | | System.Collections.Generic;SortedDictionary<,>;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;SortedDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | @@ -736,10 +736,10 @@ | System.Collections.Generic;SortedList<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;SortedList<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual | | System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IComparer);;Argument[0];Argument[Qualifier];taint;generated | -| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary,System.Collections.Generic.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.Generic;SortedList<,>;false;TryGetValue;(TKey,TValue);;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;SortedList<,>;false;get_Comparer;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.Generic;SortedList<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | @@ -1106,8 +1106,8 @@ | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Dictionary;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual | @@ -1226,18 +1226,18 @@ | System.Collections;Hashtable;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual | | System.Collections;Hashtable;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Collections;Hashtable;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[Qualifier];Argument[0];taint;generated | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections;Hashtable;false;Hashtable;(System.Int32,System.Single,System.Collections.IEqualityComparer);;Argument[2];Argument[Qualifier];taint;generated | | System.Collections;Hashtable;false;Hashtable;(System.Int32,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[2];Argument[Qualifier];taint;generated | | System.Collections;Hashtable;false;Hashtable;(System.Int32,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[3];Argument[Qualifier];taint;generated | @@ -1278,10 +1278,10 @@ | System.Collections;SortedList;false;GetValueList;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual | | System.Collections;SortedList;false;SetByIndex;(System.Int32,System.Object);;Argument[1];Argument[Qualifier];taint;generated | | System.Collections;SortedList;false;SortedList;(System.Collections.IComparer);;Argument[0];Argument[Qualifier];taint;generated | -| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Collections;SortedList;false;Synchronized;(System.Collections.SortedList);;Argument[0].Element;ReturnValue;taint;generated | | System.Collections;SortedList;false;get_SyncRoot;();;Argument[Qualifier];ReturnValue;value;generated | | System.Collections;Stack;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual | @@ -1512,10 +1512,10 @@ | System.ComponentModel;PropertyDescriptorCollection;false;Find;(System.String,System.Boolean);;Argument[Qualifier].Element;ReturnValue;value;manual | | System.ComponentModel;PropertyDescriptorCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.ComponentModel;PropertyDescriptorCollection;false;Insert;(System.Int32,System.ComponentModel.PropertyDescriptor);;Argument[1];Argument[Qualifier].Element;value;manual | -| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | -| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.ComponentModel;PropertyDescriptorCollection;false;Sort;();;Argument[Qualifier];ReturnValue;taint;generated | | System.ComponentModel;PropertyDescriptorCollection;false;Sort;(System.Collections.IComparer);;Argument[0];ReturnValue;taint;generated | | System.ComponentModel;PropertyDescriptorCollection;false;Sort;(System.Collections.IComparer);;Argument[Qualifier];ReturnValue;taint;generated | @@ -2231,8 +2231,8 @@ | System.Diagnostics;ActivitySpanId;false;ToHexString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;ActivitySpanId;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System.Diagnostics;ActivityTagsCollection+Enumerator;false;get_Current;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | -| System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | +| System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | +| System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual | | System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual | | System.Diagnostics;ActivityTagsCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Diagnostics.ActivityTagsCollection+Enumerator.Current];value;manual | @@ -2569,10 +2569,10 @@ | System.IO.Compression;BrotliStream;false;BrotliStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System.IO.Compression;BrotliStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO.Compression;BrotliStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];ReturnValue;taint;manual | -| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];ReturnValue;taint;manual | -| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];ReturnValue;taint;manual | -| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];ReturnValue;taint;manual | +| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];Argument[Qualifier];taint;manual | +| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual | +| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];Argument[Qualifier];taint;manual | +| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual | | System.IO.Compression;DeflateStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO.Compression;DeflateStream;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO.Compression;GZipStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | @@ -2742,11 +2742,11 @@ | System.IO;FileSystemWatcher;false;set_Site;(System.ComponentModel.ISite);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;MemoryStream;false;FlushAsync;(System.Threading.CancellationToken);;Argument[0];ReturnValue;taint;generated | | System.IO;MemoryStream;false;GetBuffer;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];ReturnValue;taint;manual | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;manual | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | -| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0].Element;ReturnValue;taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];Argument[Qualifier];taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual | | System.IO;MemoryStream;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;manual | | System.IO;MemoryStream;false;TryGetBuffer;(System.ArraySegment);;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;MemoryStream;false;WriteTo;(System.IO.Stream);;Argument[Qualifier];Argument[0];taint;generated | @@ -2823,7 +2823,7 @@ | System.IO;StreamWriter;false;StreamWriter;(System.IO.Stream,System.Text.Encoding,System.Int32,System.Boolean);;Argument[1];Argument[Qualifier];taint;generated | | System.IO;StreamWriter;false;get_BaseStream;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StreamWriter;false;get_Encoding;();;Argument[Qualifier];ReturnValue;taint;generated | -| System.IO;StringReader;false;StringReader;(System.String);;Argument[0];ReturnValue;taint;manual | +| System.IO;StringReader;false;StringReader;(System.String);;Argument[0];Argument[Qualifier];taint;manual | | System.IO;StringWriter;false;GetStringBuilder;();;Argument[Qualifier];ReturnValue;taint;generated | | System.IO;StringWriter;false;StringWriter;(System.Text.StringBuilder,System.IFormatProvider);;Argument[0];Argument[Qualifier];taint;generated | | System.IO;StringWriter;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -6822,9 +6822,9 @@ | System.Text;StringBuilder;false;Replace;(System.Char,System.Char,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;generated | | System.Text;StringBuilder;false;Replace;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;generated | | System.Text;StringBuilder;false;Replace;(System.String,System.String,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;generated | -| System.Text;StringBuilder;false;StringBuilder;(System.String);;Argument[0];ReturnValue.Element;value;manual | -| System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32);;Argument[0];ReturnValue.Element;value;manual | -| System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];ReturnValue.Element;value;manual | +| System.Text;StringBuilder;false;StringBuilder;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual | +| System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual | | System.Text;StringBuilder;false;ToString;();;Argument[Qualifier].Element;ReturnValue;taint;manual | | System.Text;StringBuilder;false;ToString;(System.Int32,System.Int32);;Argument[Qualifier].Element;ReturnValue;taint;manual | | System.Text;StringRuneEnumerator;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;value;generated | @@ -7008,18 +7008,18 @@ | 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[Qualifier];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task<>;false;GetAwaiter;();;Argument[Qualifier];ReturnValue.SyntheticField[m_task_task_awaiter];value;manual | -| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];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;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];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;ReturnValue.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].ReturnValue;Argument[Qualifier].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[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];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;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | -| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.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].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | -| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[Qualifier].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].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual | +| System.Threading.Tasks;Task<>;false;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan);;Argument[Qualifier];ReturnValue;taint;generated | | System.Threading.Tasks;Task<>;false;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;generated | @@ -9175,9 +9175,9 @@ | System;Lazy<,>;false;Lazy;(TMetadata,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | | System;Lazy<,>;false;Lazy;(TMetadata,System.Threading.LazyThreadSafetyMode);;Argument[0];Argument[Qualifier];taint;generated | | System;Lazy<,>;false;get_Metadata;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Lazy<>;false;Lazy;(System.Func);;Argument[0].ReturnValue;ReturnValue.Property[System.Lazy<>.Value];value;manual | -| System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0].ReturnValue;ReturnValue.Property[System.Lazy<>.Value];value;manual | -| System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;ReturnValue.Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func,System.Boolean);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual | +| System;Lazy<>;false;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual | | System;Lazy<>;false;Lazy;(T);;Argument[0];Argument[Qualifier];taint;generated | | System;Lazy<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Lazy<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual | @@ -9261,7 +9261,7 @@ | System;Nullable<>;false;GetValueOrDefault;();;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;value;manual | | System;Nullable<>;false;GetValueOrDefault;(T);;Argument[0];ReturnValue;value;manual | | System;Nullable<>;false;GetValueOrDefault;(T);;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;value;manual | -| System;Nullable<>;false;Nullable;(T);;Argument[0];ReturnValue.Property[System.Nullable<>.Value];value;manual | +| System;Nullable<>;false;Nullable;(T);;Argument[0];Argument[Qualifier].Property[System.Nullable<>.Value];value;manual | | System;Nullable<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Nullable<>;false;get_HasValue;();;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;taint;manual | | System;Nullable<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual | @@ -9396,8 +9396,8 @@ | System;String;false;Split;(System.String,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | | System;String;false;Split;(System.String[],System.Int32,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | | System;String;false;Split;(System.String[],System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual | -| System;String;false;String;(System.Char[]);;Argument[0].Element;ReturnValue;taint;manual | -| System;String;false;String;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;ReturnValue;taint;manual | +| System;String;false;String;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;manual | +| System;String;false;String;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual | | System;String;false;Substring;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | | System;String;false;Substring;(System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual | | System;String;false;ToDateTime;(System.IFormatProvider);;Argument[Qualifier];ReturnValue;taint;generated | @@ -9516,13 +9516,13 @@ | System;Tuple;false;Create<,>;(T1,T2);;Argument[1];ReturnValue.Property[System.Tuple<,>.Item2];value;manual | | System;Tuple;false;Create<>;(T1);;Argument[0];ReturnValue.Property[System.Tuple<>.Item1];value;manual | | System;Tuple<,,,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];ReturnValue.Property[System.Tuple<,,,,,,,>.Item1];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];ReturnValue.Property[System.Tuple<,,,,,,,>.Item2];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];ReturnValue.Property[System.Tuple<,,,,,,,>.Item3];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];ReturnValue.Property[System.Tuple<,,,,,,,>.Item4];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];ReturnValue.Property[System.Tuple<,,,,,,,>.Item5];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];ReturnValue.Property[System.Tuple<,,,,,,,>.Item6];value;manual | -| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];ReturnValue.Property[System.Tuple<,,,,,,,>.Item7];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item1];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item2];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item3];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item4];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item5];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item6];value;manual | +| System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item7];value;manual | | System;Tuple<,,,,,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -9539,13 +9539,13 @@ | System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item7];ReturnValue;value;manual | | System;Tuple<,,,,,,,>;false;get_Rest;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];ReturnValue.Property[System.Tuple<,,,,,,>.Item1];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];ReturnValue.Property[System.Tuple<,,,,,,>.Item2];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];ReturnValue.Property[System.Tuple<,,,,,,>.Item3];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];ReturnValue.Property[System.Tuple<,,,,,,>.Item4];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];ReturnValue.Property[System.Tuple<,,,,,,>.Item5];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];ReturnValue.Property[System.Tuple<,,,,,,>.Item6];value;manual | -| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];ReturnValue.Property[System.Tuple<,,,,,,>.Item7];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item1];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item2];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item3];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item4];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item5];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item6];value;manual | +| System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item7];value;manual | | System;Tuple<,,,,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -9561,12 +9561,12 @@ | System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item6];ReturnValue;value;manual | | System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item7];ReturnValue;value;manual | | System;Tuple<,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[0];ReturnValue.Property[System.Tuple<,,,,,>.Item1];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[1];ReturnValue.Property[System.Tuple<,,,,,>.Item2];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[2];ReturnValue.Property[System.Tuple<,,,,,>.Item3];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[3];ReturnValue.Property[System.Tuple<,,,,,>.Item4];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[4];ReturnValue.Property[System.Tuple<,,,,,>.Item5];value;manual | -| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[5];ReturnValue.Property[System.Tuple<,,,,,>.Item6];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item1];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item2];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item3];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item4];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item5];value;manual | +| System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item6];value;manual | | System;Tuple<,,,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -9580,11 +9580,11 @@ | System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item5];ReturnValue;value;manual | | System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item6];ReturnValue;value;manual | | System;Tuple<,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[0];ReturnValue.Property[System.Tuple<,,,,>.Item1];value;manual | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[1];ReturnValue.Property[System.Tuple<,,,,>.Item2];value;manual | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[2];ReturnValue.Property[System.Tuple<,,,,>.Item3];value;manual | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[3];ReturnValue.Property[System.Tuple<,,,,>.Item4];value;manual | -| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[4];ReturnValue.Property[System.Tuple<,,,,>.Item5];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,>.Item1];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,>.Item2];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,>.Item3];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,>.Item4];value;manual | +| System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,>.Item5];value;manual | | System;Tuple<,,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -9596,10 +9596,10 @@ | System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item4];ReturnValue;value;manual | | System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item5];ReturnValue;value;manual | | System;Tuple<,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[0];ReturnValue.Property[System.Tuple<,,,>.Item1];value;manual | -| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[1];ReturnValue.Property[System.Tuple<,,,>.Item2];value;manual | -| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[2];ReturnValue.Property[System.Tuple<,,,>.Item3];value;manual | -| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[3];ReturnValue.Property[System.Tuple<,,,>.Item4];value;manual | +| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,>.Item1];value;manual | +| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,>.Item2];value;manual | +| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,>.Item3];value;manual | +| System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,>.Item4];value;manual | | System;Tuple<,,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -9609,9 +9609,9 @@ | System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item3];ReturnValue;value;manual | | System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item4];ReturnValue;value;manual | | System;Tuple<,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[0];ReturnValue.Property[System.Tuple<,,>.Item1];value;manual | -| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[1];ReturnValue.Property[System.Tuple<,,>.Item2];value;manual | -| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[2];ReturnValue.Property[System.Tuple<,,>.Item3];value;manual | +| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,>.Item1];value;manual | +| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,>.Item2];value;manual | +| System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,>.Item3];value;manual | | System;Tuple<,,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,,>;false;get_Item3;();;Argument[Qualifier];ReturnValue;taint;generated | @@ -9619,14 +9619,14 @@ | System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item2];ReturnValue;value;manual | | System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item3];ReturnValue;value;manual | | System;Tuple<,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<,>;false;Tuple;(T1,T2);;Argument[0];ReturnValue.Property[System.Tuple<,>.Item1];value;manual | -| System;Tuple<,>;false;Tuple;(T1,T2);;Argument[1];ReturnValue.Property[System.Tuple<,>.Item2];value;manual | +| System;Tuple<,>;false;Tuple;(T1,T2);;Argument[0];Argument[Qualifier].Property[System.Tuple<,>.Item1];value;manual | +| System;Tuple<,>;false;Tuple;(T1,T2);;Argument[1];Argument[Qualifier].Property[System.Tuple<,>.Item2];value;manual | | System;Tuple<,>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,>;false;get_Item2;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,>.Item1];ReturnValue;value;manual | | System;Tuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,>.Item2];ReturnValue;value;manual | | System;Tuple<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;Tuple<>;false;Tuple;(T1);;Argument[0];ReturnValue.Property[System.Tuple<>.Item1];value;manual | +| System;Tuple<>;false;Tuple;(T1);;Argument[0];Argument[Qualifier].Property[System.Tuple<>.Item1];value;manual | | System;Tuple<>;false;get_Item1;();;Argument[Qualifier];ReturnValue;taint;generated | | System;Tuple<>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<>.Item1];ReturnValue;value;manual | | System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21);;Argument[0].Property[System.Tuple<,,,,,,,>.Item1];Argument[1];value;manual | @@ -9843,10 +9843,10 @@ | System;Uri;false;TryCreate;(System.Uri,System.Uri,System.Uri);;Argument[1];ReturnValue;taint;generated | | System;Uri;false;UnescapeDataString;(System.String);;Argument[0];ReturnValue;taint;generated | | System;Uri;false;Uri;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[Qualifier];taint;generated | -| System;Uri;false;Uri;(System.String);;Argument[0];ReturnValue;taint;manual | -| System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];ReturnValue;taint;manual | +| System;Uri;false;Uri;(System.String);;Argument[0];Argument[Qualifier];taint;manual | +| System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual | | System;Uri;false;Uri;(System.String,System.UriCreationOptions);;Argument[0];Argument[Qualifier];taint;generated | -| System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];ReturnValue;taint;manual | +| System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];Argument[Qualifier];taint;manual | | System;Uri;false;Uri;(System.Uri,System.String);;Argument[0];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.Uri,System.String);;Argument[1];Argument[Qualifier];taint;generated | | System;Uri;false;Uri;(System.Uri,System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;generated | @@ -9928,13 +9928,13 @@ | System;ValueTuple;false;Create<,>;(T1,T2);;Argument[1];ReturnValue.Field[System.ValueTuple<,>.Item2];value;manual | | System;ValueTuple;false;Create<>;(T1);;Argument[0];ReturnValue.Field[System.ValueTuple<>.Item1];value;manual | | System;ValueTuple<,,,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item1];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item2];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item3];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item4];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item5];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item6];value;manual | -| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];ReturnValue.Field[System.ValueTuple<,,,,,,,>.Item7];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item1];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item2];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item3];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item4];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item5];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item6];value;manual | +| System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item7];value;manual | | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item3];ReturnValue;value;manual | @@ -9943,13 +9943,13 @@ | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item6];ReturnValue;value;manual | | System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item7];ReturnValue;value;manual | | System;ValueTuple<,,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item1];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item2];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item3];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item4];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item5];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item6];value;manual | -| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];ReturnValue.Field[System.ValueTuple<,,,,,,>.Item7];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item1];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item2];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item3];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item4];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item5];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item6];value;manual | +| System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item7];value;manual | | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item3];ReturnValue;value;manual | @@ -9958,12 +9958,12 @@ | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item6];ReturnValue;value;manual | | System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item7];ReturnValue;value;manual | | System;ValueTuple<,,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,,>.Item1];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,,>.Item2];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,,>.Item3];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,,>.Item4];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,,>.Item5];value;manual | -| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[5];ReturnValue.Field[System.ValueTuple<,,,,,>.Item6];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item1];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item2];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item3];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item4];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item5];value;manual | +| System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item6];value;manual | | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item3];ReturnValue;value;manual | @@ -9971,37 +9971,37 @@ | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item5];ReturnValue;value;manual | | System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item6];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,,>.Item1];value;manual | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,,>.Item2];value;manual | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,,>.Item3];value;manual | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,,>.Item4];value;manual | -| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[4];ReturnValue.Field[System.ValueTuple<,,,,>.Item5];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item1];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item2];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item3];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item4];value;manual | +| System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item5];value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item3];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item4];ReturnValue;value;manual | | System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item5];ReturnValue;value;manual | | System;ValueTuple<,,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[0];ReturnValue.Field[System.ValueTuple<,,,>.Item1];value;manual | -| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[1];ReturnValue.Field[System.ValueTuple<,,,>.Item2];value;manual | -| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[2];ReturnValue.Field[System.ValueTuple<,,,>.Item3];value;manual | -| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[3];ReturnValue.Field[System.ValueTuple<,,,>.Item4];value;manual | +| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item1];value;manual | +| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item2];value;manual | +| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item3];value;manual | +| System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item4];value;manual | | System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item3];ReturnValue;value;manual | | System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item4];ReturnValue;value;manual | | System;ValueTuple<,,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[0];ReturnValue.Field[System.ValueTuple<,,>.Item1];value;manual | -| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[1];ReturnValue.Field[System.ValueTuple<,,>.Item2];value;manual | -| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[2];ReturnValue.Field[System.ValueTuple<,,>.Item3];value;manual | +| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,>.Item1];value;manual | +| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,>.Item2];value;manual | +| System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,>.Item3];value;manual | | System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item2];ReturnValue;value;manual | | System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item3];ReturnValue;value;manual | | System;ValueTuple<,>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[0];ReturnValue.Field[System.ValueTuple<,>.Item1];value;manual | -| System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[1];ReturnValue.Field[System.ValueTuple<,>.Item2];value;manual | +| System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,>.Item1];value;manual | +| System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,>.Item2];value;manual | | System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,>.Item1];ReturnValue;value;manual | | System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,>.Item2];ReturnValue;value;manual | | System;ValueTuple<>;false;ToString;();;Argument[Qualifier];ReturnValue;taint;generated | -| System;ValueTuple<>;false;ValueTuple;(T1);;Argument[0];ReturnValue.Field[System.ValueTuple<>.Item1];value;manual | +| System;ValueTuple<>;false;ValueTuple;(T1);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<>.Item1];value;manual | | System;ValueTuple<>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<>.Item1];ReturnValue;value;manual | From ecc15a1f952ed7526e1003b3b4b9c0f1cf2705a7 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 10 Aug 2022 14:28:07 +0200 Subject: [PATCH 703/736] Java: Remove SensitiveLoggingQuery results that flow through a source. --- .../lib/semmle/code/java/security/SensitiveLoggingQuery.qll | 2 ++ java/ql/src/change-notes/2022-08-10-sensitive-log-dedup.md | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 java/ql/src/change-notes/2022-08-10-sensitive-log-dedup.md diff --git a/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll b/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll index 0eebd1c79fe..6e83e4dd1fe 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll @@ -28,4 +28,6 @@ class SensitiveLoggerConfiguration extends TaintTracking::Configuration { override predicate isSanitizer(DataFlow::Node sanitizer) { sanitizer.asExpr() instanceof LiveLiteral } + + override predicate isSanitizerIn(Node node) { isSource(node) } } diff --git a/java/ql/src/change-notes/2022-08-10-sensitive-log-dedup.md b/java/ql/src/change-notes/2022-08-10-sensitive-log-dedup.md new file mode 100644 index 00000000000..b8fe317f98d --- /dev/null +++ b/java/ql/src/change-notes/2022-08-10-sensitive-log-dedup.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* The query `java/sensitive-log` has been improved to no longer report results that are effectively duplicates due to one source flowing to another source. From f3499e98a4b6dbb169b863eb1171604f35f6d256 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Aug 2022 15:08:25 +0100 Subject: [PATCH 704/736] Swift: Move try, ! to dataflow. --- .../swift/dataflow/internal/DataFlowPrivate.qll | 6 ++++++ .../dataflow/internal/TaintTrackingPrivate.qll | 8 -------- .../dataflow/taint/LocalTaint.expected | 16 ++++++++++++++++ 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index c1984e0b80f..474e4131b37 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -106,6 +106,12 @@ private module Cached { //or // step from previous read to Phi node localFlowSsaInput(nodeFrom, def, nodeTo.asDefinition()) + or + // flow through `try!` and similar constructs + nodeFrom.asExpr() = nodeTo.asExpr().(AnyTryExpr).getSubExpr() + or + // flow through `!` + nodeFrom.asExpr() = nodeTo.asExpr().(ForceValueExpr).getSubExpr() ) or exists(ParamReturnKind kind, ExprCfgNode arg | diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll index b2aed5db8fc..e238af86669 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll @@ -36,14 +36,6 @@ private module Cached { nodeTo.asDefinition().(Ssa::WriteDefinition).isInoutDef(e) ) or - // allow flow through `try!` and similar constructs - // TODO: this should probably be part of DataFlow / TaintTracking? - nodeFrom.asExpr() = nodeTo.asExpr().(AnyTryExpr).getSubExpr() - or - // allow flow through `!` - // TODO: this should probably be part of DataFlow / TaintTracking? - nodeFrom.asExpr() = nodeTo.asExpr().(ForceValueExpr).getSubExpr() - or // Flow from the computation of the interpolated string literal to the result of the interpolation. exists(InterpolatedStringLiteralExpr interpolated | nodeTo.asExpr() = interpolated and diff --git a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected index cd153ef905e..a7c44e9b566 100644 --- a/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected @@ -182,25 +182,41 @@ | string.swift:82:31:82:31 | tainted | string.swift:85:13:85:13 | tainted | | string.swift:84:13:84:13 | clean | string.swift:87:13:87:13 | clean | | string.swift:85:13:85:13 | tainted | string.swift:88:13:88:13 | tainted | +| try.swift:8:17:8:23 | call to clean() | try.swift:8:13:8:23 | try ... | +| try.swift:9:17:9:24 | call to source() | try.swift:9:13:9:24 | try ... | +| try.swift:14:17:14:23 | call to clean() | try.swift:14:12:14:23 | try! ... | +| try.swift:15:17:15:24 | call to source() | try.swift:15:12:15:24 | try! ... | +| try.swift:17:13:17:24 | try? ... | try.swift:17:12:17:26 | ...! | +| try.swift:17:18:17:24 | call to clean() | try.swift:17:13:17:24 | try? ... | +| try.swift:18:13:18:25 | try? ... | try.swift:18:12:18:27 | ...! | +| try.swift:18:18:18:25 | call to source() | try.swift:18:13:18:25 | try? ... | | url.swift:12:6:12:6 | WriteDef | url.swift:14:29:14:29 | clean | | url.swift:12:14:12:14 | http://example.com/ | url.swift:12:6:12:6 | WriteDef | | url.swift:13:6:13:6 | WriteDef | url.swift:15:31:15:31 | tainted | | url.swift:13:16:13:23 | call to source() | url.swift:13:6:13:6 | WriteDef | | url.swift:14:6:14:6 | WriteDef | url.swift:17:12:17:12 | urlClean | +| url.swift:14:17:14:34 | call to ... | url.swift:14:17:14:35 | ...! | | url.swift:14:17:14:35 | ...! | url.swift:14:6:14:6 | WriteDef | | url.swift:14:29:14:29 | clean | url.swift:20:24:20:24 | clean | | url.swift:15:6:15:6 | WriteDef | url.swift:18:12:18:12 | urlTainted | +| url.swift:15:19:15:38 | call to ... | url.swift:15:19:15:39 | ...! | | url.swift:15:19:15:39 | ...! | url.swift:15:6:15:6 | WriteDef | | url.swift:15:31:15:31 | tainted | url.swift:21:24:21:24 | tainted | | url.swift:17:12:17:12 | urlClean | url.swift:22:43:22:43 | urlClean | | url.swift:18:12:18:12 | urlTainted | url.swift:23:43:23:43 | urlTainted | +| url.swift:20:12:20:46 | call to ... | url.swift:20:12:20:47 | ...! | | url.swift:20:24:20:24 | clean | url.swift:22:24:22:24 | clean | +| url.swift:21:12:21:48 | call to ... | url.swift:21:12:21:49 | ...! | | url.swift:21:24:21:24 | tainted | url.swift:29:25:29:25 | tainted | +| url.swift:22:12:22:51 | call to ... | url.swift:22:12:22:52 | ...! | | url.swift:22:24:22:24 | clean | url.swift:23:24:23:24 | clean | +| url.swift:23:12:23:53 | call to ... | url.swift:23:12:23:54 | ...! | | url.swift:23:24:23:24 | clean | url.swift:25:25:25:25 | clean | | url.swift:25:25:25:25 | clean | url.swift:34:26:34:26 | clean | | url.swift:29:25:29:25 | tainted | url.swift:38:28:38:28 | tainted | | url.swift:34:2:34:31 | WriteDef | url.swift:35:12:35:12 | urlClean2 | | url.swift:34:14:34:31 | call to ... | url.swift:34:2:34:31 | WriteDef | +| url.swift:35:12:35:12 | urlClean2 | url.swift:35:12:35:12 | ...! | | url.swift:38:2:38:35 | WriteDef | url.swift:39:12:39:12 | urlTainted2 | | url.swift:38:16:38:35 | call to ... | url.swift:38:2:38:35 | WriteDef | +| url.swift:39:12:39:12 | urlTainted2 | url.swift:39:12:39:12 | ...! | From e09e64ee85e2bf359c6eb2ed037c58c147748088 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Aug 2022 15:25:40 +0100 Subject: [PATCH 705/736] Swift: Restrict taint flow through + to strings. --- .../codeql/swift/dataflow/internal/TaintTrackingPrivate.qll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll index e238af86669..1292e0cf181 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll @@ -43,7 +43,11 @@ private module Cached { ) or // allow flow through string concatenation. - nodeTo.asExpr().(AddExpr).getAnOperand() = nodeFrom.asExpr() + exists(AddExpr ae | + ae.getAnOperand() = nodeFrom.asExpr() and + ae = nodeTo.asExpr() and + ae.getType().getName() = "String" + ) or // allow flow through `URL.init`. exists(CallExpr call, ClassDecl c, AbstractFunctionDecl f | From 537caf85f2ee7037a547188b1d2776d86a1a4c60 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Aug 2022 15:41:28 +0100 Subject: [PATCH 706/736] Swift: Fix cartesian product. --- .../swift/dataflow/internal/DataFlowPrivate.qll | 12 ++++++------ 1 file changed, 6 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 474e4131b37..a80f99e81c2 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -106,12 +106,6 @@ private module Cached { //or // step from previous read to Phi node localFlowSsaInput(nodeFrom, def, nodeTo.asDefinition()) - or - // flow through `try!` and similar constructs - nodeFrom.asExpr() = nodeTo.asExpr().(AnyTryExpr).getSubExpr() - or - // flow through `!` - nodeFrom.asExpr() = nodeTo.asExpr().(ForceValueExpr).getSubExpr() ) or exists(ParamReturnKind kind, ExprCfgNode arg | @@ -120,6 +114,12 @@ private module Cached { ) or nodeFrom.asExpr() = nodeTo.asExpr().(InOutExpr).getSubExpr() + or + // flow through `try!` and similar constructs + nodeFrom.asExpr() = nodeTo.asExpr().(AnyTryExpr).getSubExpr() + or + // flow through `!` + nodeFrom.asExpr() = nodeTo.asExpr().(ForceValueExpr).getSubExpr() } /** From 6ffe5fcaed2fd9e929ae292f921e86128cadf9b4 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Aug 2022 15:45:18 +0100 Subject: [PATCH 707/736] Swift: Comment some other cases. --- swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index a80f99e81c2..c4a2f2dfd2f 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -108,11 +108,13 @@ private module Cached { localFlowSsaInput(nodeFrom, def, nodeTo.asDefinition()) ) or + // flow through writes to inout parameters exists(ParamReturnKind kind, ExprCfgNode arg | arg = nodeFrom.(InOutUpdateNode).getCall(kind).asCall().getArgument(kind.getIndex()) and nodeTo.asDefinition().(Ssa::WriteDefinition).isInoutDef(arg) ) or + // flow through `&` (inout argument) nodeFrom.asExpr() = nodeTo.asExpr().(InOutExpr).getSubExpr() or // flow through `try!` and similar constructs From 341241cf43f96ce69b52e4121cceb71d410429af Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 10 Aug 2022 17:28:14 +0100 Subject: [PATCH 708/736] Use SrcFloatingPointLiteral --- .../test/library-tests/literals/floatLiterals/floatLiterals.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql b/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql index 765a3cfc7d1..930d734f5d2 100644 --- a/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql +++ b/java/ql/test/library-tests/literals/floatLiterals/floatLiterals.ql @@ -4,5 +4,5 @@ class SrcFloatingPointLiteral extends FloatLiteral { SrcFloatingPointLiteral() { this.getCompilationUnit().fromSource() } } -from FloatLiteral lit +from SrcFloatingPointLiteral lit select lit, lit.getValue(), lit.getFloatValue() From c2ee5fe258f3115d4975126c4b2972b2ae89a4f3 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Aug 2022 17:12:11 +0100 Subject: [PATCH 709/736] Swift: Add inlineExpectations test. --- .../dataflow/taint/TaintInline.expected | 17 ++++++++ .../dataflow/taint/TaintInline.ql | 42 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 swift/ql/test/library-tests/dataflow/taint/TaintInline.expected create mode 100644 swift/ql/test/library-tests/dataflow/taint/TaintInline.ql diff --git a/swift/ql/test/library-tests/dataflow/taint/TaintInline.expected b/swift/ql/test/library-tests/dataflow/taint/TaintInline.expected new file mode 100644 index 00000000000..9afc29d0338 --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/TaintInline.expected @@ -0,0 +1,17 @@ +| string.swift:7:13:7:13 | "..." | Unexpected result: taintedFromLine=5 | +| string.swift:9:13:9:13 | "..." | Unexpected result: taintedFromLine=5 | +| string.swift:11:13:11:13 | "..." | Unexpected result: taintedFromLine=5 | +| string.swift:16:13:16:13 | "..." | Unexpected result: taintedFromLine=5 | +| string.swift:18:13:18:13 | "..." | Unexpected result: taintedFromLine=5 | +| string.swift:31:13:31:13 | tainted | Unexpected result: taintedFromLine=28 | +| string.swift:34:13:34:21 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 | +| string.swift:35:13:35:23 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 | +| string.swift:36:13:36:23 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 | +| string.swift:39:13:39:29 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 | +| try.swift:9:13:9:24 | try ... | Unexpected result: taintedFromLine=9 | +| try.swift:15:12:15:24 | try! ... | Unexpected result: taintedFromLine=15 | +| try.swift:18:12:18:27 | ...! | Unexpected result: taintedFromLine=18 | +| url.swift:18:12:18:12 | urlTainted | Unexpected result: taintedFromLine=13 | +| url.swift:21:12:21:49 | ...! | Unexpected result: taintedFromLine=13 | +| url.swift:23:12:23:54 | ...! | Unexpected result: taintedFromLine=13 | +| url.swift:39:12:39:12 | ...! | Unexpected result: taintedFromLine=13 | diff --git a/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql b/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql new file mode 100644 index 00000000000..489d8f4f7e5 --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql @@ -0,0 +1,42 @@ +/** + * @kind path-problem + */ + +import swift +import codeql.swift.dataflow.TaintTracking +import codeql.swift.dataflow.DataFlow::DataFlow +import TestUtilities.InlineExpectationsTest + +class TestConfiguration extends TaintTracking::Configuration { + TestConfiguration() { this = "TestConfiguration" } + + override predicate isSource(Node src) { + src.asExpr().(CallExpr).getStaticTarget().getName().matches("source%") + } + + override predicate isSink(Node sink) { + exists(CallExpr sinkCall | + sinkCall.getStaticTarget().getName().matches("sink%") and + sinkCall.getAnArgument().getExpr() = sink.asExpr() + ) + } + + override int explorationLimit() { result = 100 } +} + +class TaintTest extends InlineExpectationsTest { + TaintTest() { this = "taintedFromLine" } + + override string getARelevantTag() { result = "taintedFromLine" } + + override predicate hasActualResult(Location location, string element, string tag, string value) { + exists(TestConfiguration config, Node source, Node sink, Expr sinkExpr | + config.hasFlow(source, sink) and + sinkExpr = sink.asExpr() and + location = sinkExpr.getLocation() and + element = sinkExpr.toString() and + tag = "taintedFromLine" and + value = source.asExpr().getLocation().getStartLine().toString() + ) + } +} From 11f45cf20ce8b5e0fcc23349f51f0fce4b2a493d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Aug 2022 18:37:18 +0100 Subject: [PATCH 710/736] Swift: Add expectation annotations. --- .../dataflow/taint/TaintInline.expected | 17 --------- .../library-tests/dataflow/taint/data.swift | 8 ++--- .../library-tests/dataflow/taint/string.swift | 36 +++++++++---------- .../library-tests/dataflow/taint/try.swift | 6 ++-- .../library-tests/dataflow/taint/url.swift | 10 +++--- 5 files changed, 30 insertions(+), 47 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/TaintInline.expected b/swift/ql/test/library-tests/dataflow/taint/TaintInline.expected index 9afc29d0338..e69de29bb2d 100644 --- a/swift/ql/test/library-tests/dataflow/taint/TaintInline.expected +++ b/swift/ql/test/library-tests/dataflow/taint/TaintInline.expected @@ -1,17 +0,0 @@ -| string.swift:7:13:7:13 | "..." | Unexpected result: taintedFromLine=5 | -| string.swift:9:13:9:13 | "..." | Unexpected result: taintedFromLine=5 | -| string.swift:11:13:11:13 | "..." | Unexpected result: taintedFromLine=5 | -| string.swift:16:13:16:13 | "..." | Unexpected result: taintedFromLine=5 | -| string.swift:18:13:18:13 | "..." | Unexpected result: taintedFromLine=5 | -| string.swift:31:13:31:13 | tainted | Unexpected result: taintedFromLine=28 | -| string.swift:34:13:34:21 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 | -| string.swift:35:13:35:23 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 | -| string.swift:36:13:36:23 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 | -| string.swift:39:13:39:29 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 | -| try.swift:9:13:9:24 | try ... | Unexpected result: taintedFromLine=9 | -| try.swift:15:12:15:24 | try! ... | Unexpected result: taintedFromLine=15 | -| try.swift:18:12:18:27 | ...! | Unexpected result: taintedFromLine=18 | -| url.swift:18:12:18:12 | urlTainted | Unexpected result: taintedFromLine=13 | -| url.swift:21:12:21:49 | ...! | Unexpected result: taintedFromLine=13 | -| url.swift:23:12:23:54 | ...! | Unexpected result: taintedFromLine=13 | -| url.swift:39:12:39:12 | ...! | Unexpected result: taintedFromLine=13 | diff --git a/swift/ql/test/library-tests/dataflow/taint/data.swift b/swift/ql/test/library-tests/dataflow/taint/data.swift index a1fddd129af..578d66374d4 100644 --- a/swift/ql/test/library-tests/dataflow/taint/data.swift +++ b/swift/ql/test/library-tests/dataflow/taint/data.swift @@ -14,12 +14,12 @@ func taintThroughData() { let dataTainted2 = Data(dataTainted) sink(arg: dataClean) - sink(arg: dataTainted) // tainted [NOT DETECTED] - sink(arg: dataTainted2) // tainted [NOT DETECTED] + sink(arg: dataTainted) // $ MISSING: taintedFromLine=13 + sink(arg: dataTainted2) // $ MISSING: taintedFromLine=13 let stringClean = String(data: dataClean, encoding: String.Encoding.utf8) let stringTainted = String(data: dataTainted, encoding: String.Encoding.utf8) - sink2(arg: stringClean!) // tainted [NOT DETECTED] - sink2(arg: stringTainted!) // tainted [NOT DETECTED] + sink2(arg: stringClean!) // $ MISSING: taintedFromLine=13 + sink2(arg: stringTainted!) // $ MISSING: taintedFromLine=13 } diff --git a/swift/ql/test/library-tests/dataflow/taint/string.swift b/swift/ql/test/library-tests/dataflow/taint/string.swift index 0855c6d91b0..a11fefb07ba 100644 --- a/swift/ql/test/library-tests/dataflow/taint/string.swift +++ b/swift/ql/test/library-tests/dataflow/taint/string.swift @@ -4,18 +4,18 @@ func sink(arg: String) {} func taintThroughInterpolatedStrings() { var x = source() - sink(arg: "\(x)") // tainted + sink(arg: "\(x)") // $ taintedFromLine=5 - sink(arg: "\(x) \(x)") // tainted + sink(arg: "\(x) \(x)") // $ taintedFromLine=5 - sink(arg: "\(x) \(0) \(x)") // tainted + sink(arg: "\(x) \(0) \(x)") // $ taintedFromLine=5 var y = 42 sink(arg: "\(y)") // clean - sink(arg: "\(x) hello \(y)") // tainted + sink(arg: "\(x) hello \(y)") // $ taintedFromLine=5 - sink(arg: "\(y) world \(x)") // tainted + sink(arg: "\(y) world \(x)") // $ taintedFromLine=5 x = 0 sink(arg: "\(x)") // clean @@ -28,15 +28,15 @@ func taintThroughStringConcatenation() { var tainted = source2() sink(arg: clean) - sink(arg: tainted) // tainted + sink(arg: tainted) // $ taintedFromLine=28 sink(arg: clean + clean) - sink(arg: clean + tainted) // tainted - sink(arg: tainted + clean) // tainted - sink(arg: tainted + tainted) // tainted + sink(arg: clean + tainted) // $ taintedFromLine=28 + sink(arg: tainted + clean) // $ taintedFromLine=28 + sink(arg: tainted + tainted) // $ taintedFromLine=28 sink(arg: ">" + clean + "<") - sink(arg: ">" + tainted + "<") // tainted + sink(arg: ">" + tainted + "<") // $ taintedFromLine=28 var str = "abc" @@ -46,7 +46,7 @@ func taintThroughStringConcatenation() { sink(arg: str) str += source2() - sink(arg: str) // tainted [NOT DETECTED] + sink(arg: str) // $ MISSING: taintedFromLine=48 var str2 = "abc" @@ -56,7 +56,7 @@ func taintThroughStringConcatenation() { sink(arg: str2) str2.append(source2()) - sink(arg: str2) // tainted [NOT DETECTED] + sink(arg: str2) // $ MISSING: taintedFromLine=58 var str3 = "abc" @@ -66,7 +66,7 @@ func taintThroughStringConcatenation() { sink(arg: str3) str3.append(contentsOf: source2()) - sink(arg: str2) // tainted [NOT DETECTED] + sink(arg: str2) // $ MISSING: taintedFromLine=68 } func taintThroughStringOperations() { @@ -75,15 +75,15 @@ func taintThroughStringOperations() { var taintedInt = source() sink(arg: String(clean)) - sink(arg: String(tainted)) // tainted [NOT DETECTED] - sink(arg: String(taintedInt)) // tainted [NOT DETECTED] + sink(arg: String(tainted)) // $ MISSING: taintedFromLine=74 + sink(arg: String(taintedInt)) // $ MISSING: taintedFromLine=75 sink(arg: String(repeating: clean, count: 2)) - sink(arg: String(repeating: tainted, count: 2)) // tainted [NOT DETECTED] + sink(arg: String(repeating: tainted, count: 2)) // $ MISSING: taintedFromLine=74 sink(arg: clean.description) - sink(arg: tainted.description) // tainted [NOT DETECTED] + sink(arg: tainted.description) // $ MISSING: taintedFromLine=74 sink(arg: clean.debugDescription) - sink(arg: tainted.debugDescription) // tainted [NOT DETECTED] + sink(arg: tainted.debugDescription) // $ MISSING: taintedFromLine=74 } diff --git a/swift/ql/test/library-tests/dataflow/taint/try.swift b/swift/ql/test/library-tests/dataflow/taint/try.swift index 80c0bbc07a6..57cb668bd6f 100644 --- a/swift/ql/test/library-tests/dataflow/taint/try.swift +++ b/swift/ql/test/library-tests/dataflow/taint/try.swift @@ -6,14 +6,14 @@ func taintThroughTry() { do { sink(arg: try clean()) - sink(arg: try source()) // tainted + sink(arg: try source()) // $ taintedFromLine=9 } catch { // ... } sink(arg: try! clean()) - sink(arg: try! source()) // tainted + sink(arg: try! source()) // $ taintedFromLine=15 sink(arg: (try? clean())!) - sink(arg: (try? source())!) // tainted + sink(arg: (try? source())!) // $ taintedFromLine=18 } diff --git a/swift/ql/test/library-tests/dataflow/taint/url.swift b/swift/ql/test/library-tests/dataflow/taint/url.swift index c7cb5ab12db..0a56e3c4060 100644 --- a/swift/ql/test/library-tests/dataflow/taint/url.swift +++ b/swift/ql/test/library-tests/dataflow/taint/url.swift @@ -15,19 +15,19 @@ func taintThroughURL() { let urlTainted = URL(string: tainted)! sink(arg: urlClean) - sink(arg: urlTainted) // tainted + sink(arg: urlTainted) // $ taintedFromLine=13 sink(arg: URL(string: clean, relativeTo: nil)!) - sink(arg: URL(string: tainted, relativeTo: nil)!) // tainted + sink(arg: URL(string: tainted, relativeTo: nil)!) // $ taintedFromLine=13 sink(arg: URL(string: clean, relativeTo: urlClean)!) - sink(arg: URL(string: clean, relativeTo: urlTainted)!) // tainted + sink(arg: URL(string: clean, relativeTo: urlTainted)!) // $ taintedFromLine=13 if let x = URL(string: clean) { sink(arg: x) } if let y = URL(string: tainted) { - sink(arg: y) // tainted [NOT DETECTED] + sink(arg: y) // $ MISSING: taintedFromLine=13 } var urlClean2 : URL! @@ -36,5 +36,5 @@ func taintThroughURL() { var urlTainted2 : URL! urlTainted2 = URL(string: tainted) - sink(arg: urlTainted2) // tainted + sink(arg: urlTainted2) // $ taintedFromLine=13 } From d7f50eafae81306eb3d0ede8c0faa6807406e624 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Aug 2022 18:57:31 +0100 Subject: [PATCH 711/736] Swift: Minor fixes. --- swift/ql/test/library-tests/dataflow/taint/TaintInline.ql | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql b/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql index 489d8f4f7e5..334fec2584c 100644 --- a/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql +++ b/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql @@ -1,7 +1,3 @@ -/** - * @kind path-problem - */ - import swift import codeql.swift.dataflow.TaintTracking import codeql.swift.dataflow.DataFlow::DataFlow @@ -25,7 +21,7 @@ class TestConfiguration extends TaintTracking::Configuration { } class TaintTest extends InlineExpectationsTest { - TaintTest() { this = "taintedFromLine" } + TaintTest() { this = "TaintTest" } override string getARelevantTag() { result = "taintedFromLine" } From d16a7754e13cd8e6b3e3d8239a57c72217c373d9 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 10 Aug 2022 18:59:34 +0100 Subject: [PATCH 712/736] Swift: Take out common code. --- .../library-tests/dataflow/taint/Taint.ql | 20 +------------------ .../library-tests/dataflow/taint/Taint.qll | 20 +++++++++++++++++++ .../dataflow/taint/TaintInline.ql | 20 +------------------ 3 files changed, 22 insertions(+), 38 deletions(-) create mode 100644 swift/ql/test/library-tests/dataflow/taint/Taint.qll diff --git a/swift/ql/test/library-tests/dataflow/taint/Taint.ql b/swift/ql/test/library-tests/dataflow/taint/Taint.ql index 73297606888..a15e1b652df 100644 --- a/swift/ql/test/library-tests/dataflow/taint/Taint.ql +++ b/swift/ql/test/library-tests/dataflow/taint/Taint.ql @@ -3,27 +3,9 @@ */ import swift -import codeql.swift.dataflow.TaintTracking -import codeql.swift.dataflow.DataFlow::DataFlow +import Taint import PathGraph -class TestConfiguration extends TaintTracking::Configuration { - TestConfiguration() { this = "TestConfiguration" } - - override predicate isSource(Node src) { - src.asExpr().(CallExpr).getStaticTarget().getName().matches("source%") - } - - override predicate isSink(Node sink) { - exists(CallExpr sinkCall | - sinkCall.getStaticTarget().getName().matches("sink%") and - sinkCall.getAnArgument().getExpr() = sink.asExpr() - ) - } - - override int explorationLimit() { result = 100 } -} - from PathNode src, PathNode sink, TestConfiguration test where test.hasFlowPath(src, sink) select sink, src, sink, "result" diff --git a/swift/ql/test/library-tests/dataflow/taint/Taint.qll b/swift/ql/test/library-tests/dataflow/taint/Taint.qll new file mode 100644 index 00000000000..a40098d71a4 --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/Taint.qll @@ -0,0 +1,20 @@ +import swift +import codeql.swift.dataflow.TaintTracking +import codeql.swift.dataflow.DataFlow::DataFlow + +class TestConfiguration extends TaintTracking::Configuration { + TestConfiguration() { this = "TestConfiguration" } + + override predicate isSource(Node src) { + src.asExpr().(CallExpr).getStaticTarget().getName().matches("source%") + } + + override predicate isSink(Node sink) { + exists(CallExpr sinkCall | + sinkCall.getStaticTarget().getName().matches("sink%") and + sinkCall.getAnArgument().getExpr() = sink.asExpr() + ) + } + + override int explorationLimit() { result = 100 } +} diff --git a/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql b/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql index 334fec2584c..fbb89439c77 100644 --- a/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql +++ b/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql @@ -1,25 +1,7 @@ import swift -import codeql.swift.dataflow.TaintTracking -import codeql.swift.dataflow.DataFlow::DataFlow +import Taint import TestUtilities.InlineExpectationsTest -class TestConfiguration extends TaintTracking::Configuration { - TestConfiguration() { this = "TestConfiguration" } - - override predicate isSource(Node src) { - src.asExpr().(CallExpr).getStaticTarget().getName().matches("source%") - } - - override predicate isSink(Node sink) { - exists(CallExpr sinkCall | - sinkCall.getStaticTarget().getName().matches("sink%") and - sinkCall.getAnArgument().getExpr() = sink.asExpr() - ) - } - - override int explorationLimit() { result = 100 } -} - class TaintTest extends InlineExpectationsTest { TaintTest() { this = "TaintTest" } From 0e12c9d8b149d98db82ea5c9bb9d17c75d997997 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 4 Aug 2022 16:38:25 +0200 Subject: [PATCH 713/736] C++: Simplify `this` suppression for specifiers --- cpp/ql/lib/semmle/code/cpp/Specifier.qll | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/Specifier.qll b/cpp/ql/lib/semmle/code/cpp/Specifier.qll index 7a13b13e8c2..b3cf16cff4f 100644 --- a/cpp/ql/lib/semmle/code/cpp/Specifier.qll +++ b/cpp/ql/lib/semmle/code/cpp/Specifier.qll @@ -12,7 +12,7 @@ private import semmle.code.cpp.internal.ResolveClass class Specifier extends Element, @specifier { /** Gets a dummy location for the specifier. */ override Location getLocation() { - suppressUnusedThis(this) and + exists(this) and result instanceof UnknownDefaultLocation } @@ -300,5 +300,3 @@ class AttributeArgument extends Element, @attribute_arg { ) } } - -private predicate suppressUnusedThis(Specifier s) { any() } From 9ae9b89529ed3f03bb8c535ba25f8dd534ef85d5 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 4 Aug 2022 16:39:07 +0200 Subject: [PATCH 714/736] C++: Improve accuracy of `AttributeArgument.getValueText` QLDoc --- cpp/ql/lib/semmle/code/cpp/Specifier.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/Specifier.qll b/cpp/ql/lib/semmle/code/cpp/Specifier.qll index b3cf16cff4f..b6094eb14ea 100644 --- a/cpp/ql/lib/semmle/code/cpp/Specifier.qll +++ b/cpp/ql/lib/semmle/code/cpp/Specifier.qll @@ -256,7 +256,7 @@ class AttributeArgument extends Element, @attribute_arg { /** * Gets the text for the value of this argument, if its value is - * a string or a number. + * a constant or token. */ string getValueText() { attribute_arg_value(underlyingElement(this), result) } From 553f1c496e2c3a689b03dfa9e73f456891503fce Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 4 Aug 2022 17:12:49 +0200 Subject: [PATCH 715/736] C++: Update DB scheme to allow for constant expression as attribute arguments --- cpp/ql/lib/semmlecode.cpp.dbscheme | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 23f7cbb88a4..34549c3b093 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -899,6 +899,7 @@ case @attribute_arg.kind of | 1 = @attribute_arg_token | 2 = @attribute_arg_constant | 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr ; attribute_arg_value( @@ -909,6 +910,10 @@ 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 From b20961a06540222ba91d51043425b74f708b4f53 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 4 Aug 2022 17:13:59 +0200 Subject: [PATCH 716/736] C++: Expose constant expressions as attribute arguments --- cpp/ql/lib/semmle/code/cpp/Specifier.qll | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/Specifier.qll b/cpp/ql/lib/semmle/code/cpp/Specifier.qll index b6094eb14ea..a2d9c4b9388 100644 --- a/cpp/ql/lib/semmle/code/cpp/Specifier.qll +++ b/cpp/ql/lib/semmle/code/cpp/Specifier.qll @@ -258,7 +258,11 @@ class AttributeArgument extends Element, @attribute_arg { * Gets the text for the value of this argument, if its value is * a constant or token. */ - string getValueText() { attribute_arg_value(underlyingElement(this), result) } + string getValueText() { + if underlyingElement(this) instanceof @attribute_arg_constant_expr + then result = this.getValueConstant().getValue() + else attribute_arg_value(underlyingElement(this), result) + } /** * Gets the value of this argument, if its value is integral. @@ -270,6 +274,13 @@ class AttributeArgument extends Element, @attribute_arg { */ Type getValueType() { attribute_arg_type(underlyingElement(this), unresolveElement(result)) } + /** + * Gets the value of this argument, if its value is a constant. + */ + Expr getValueConstant() { + attribute_arg_constant(underlyingElement(this), unresolveElement(result)) + } + /** * Gets the attribute to which this is an argument. */ @@ -294,7 +305,10 @@ class AttributeArgument extends Element, @attribute_arg { ( if underlyingElement(this) instanceof @attribute_arg_type then tail = this.getValueType().getName() - else tail = this.getValueText() + else + if underlyingElement(this) instanceof @attribute_arg_constant_expr + then tail = this.getValueConstant().toString() + else tail = this.getValueText() ) and result = prefix + tail ) From 8528e6b8e17f3bff2303dfda83eedbf8abe93e40 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 4 Aug 2022 17:14:56 +0200 Subject: [PATCH 717/736] C++: Update test results for exposing attribute arguments as proper constants --- cpp/ql/test/library-tests/constants/strlen/expr.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/ql/test/library-tests/constants/strlen/expr.expected b/cpp/ql/test/library-tests/constants/strlen/expr.expected index 570ac1317f4..3564cedca30 100644 --- a/cpp/ql/test/library-tests/constants/strlen/expr.expected +++ b/cpp/ql/test/library-tests/constants/strlen/expr.expected @@ -1,3 +1,4 @@ +| strlen.cpp:7:49:7:49 | 1 | | strlen.cpp:11:39:11:48 | array to pointer conversion | | strlen.cpp:11:39:11:48 | file.ext | | strlen.cpp:12:35:12:40 | call to strlen | From bdd8f2bbe94e844735ecb4d0cd1a5745dd5a8dd4 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 4 Aug 2022 21:57:19 +0200 Subject: [PATCH 718/736] C++: Update DB scheme stats file --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 9288 +++++++++++----------- 1 file changed, 4645 insertions(+), 4643 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index 35eb9c7e6de..6ab07086478 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -2,147 +2,147 @@ @compilation - 9978 - - - @externalDataElement - 65 + 9948 @external_package 4 + + @externalDataElement + 65 + @svnentry 575525 @location_stmt - 3805465 + 3813503 @diagnostic - 72312 + 72092 @file - 124196 + 122193 @folder - 15994 + 15274 @location_default - 30132211 + 29655056 @location_expr - 13128120 + 13165921 @macroinvocation - 33889080 + 33818017 @function - 4726519 + 4628077 @fun_decl - 5097227 + 4995583 @type_decl - 3284148 + 3240440 @namespace_decl - 306973 + 307432 @using - 374941 + 369357 @static_assert - 130418 + 130562 @var_decl - 8543677 + 8391080 @parameter - 6660502 + 6536424 @membervariable - 1050083 + 1052962 @globalvariable - 318724 + 300708 @localvariable - 581690 + 581169 @enumconstant - 240613 + 241273 @builtintype - 22110 + 21754 @derivedtype - 4413676 + 4324907 @decltype - 31049 + 28696 @usertype - 5343268 + 5230250 @mangledname - 1975901 + 2114402 @type_mention - 4011511 + 4022510 @routinetype - 546661 + 547156 @ptrtomember - 38105 + 37491 @specifier - 24933 + 24531 @gnuattribute - 664262 + 653549 @stdattribute - 469081 + 468565 @alignas - 8938 + 8794 @declspec - 238545 + 239199 @msattribute @@ -150,135 +150,139 @@ @attribute_arg_token - 25403 - - - @attribute_arg_constant - 326486 + 24994 @attribute_arg_type - 470 + 462 + + + @attribute_arg_constant_expr + 322609 @attribute_arg_empty 1 + + @attribute_arg_constant + 1 + @derivation - 402152 + 368264 @frienddecl - 714656 + 716133 @comment - 8783134 + 8773472 @namespace - 12701 + 12497 @specialnamequalifyingelement - 470 + 462 @namequalifier - 1618866 + 1536058 @value - 10646153 + 10759270 @initialiser - 1732353 + 1733596 @lambdacapture - 28226 + 27771 @stmt_expr - 1480415 + 1483542 @stmt_if - 723174 + 724702 @stmt_while - 30201 + 30109 @stmt_label - 53044 + 53054 @stmt_return - 1306414 + 1285345 @stmt_block - 1446605 + 1423276 @stmt_end_test_while - 148599 + 148628 @stmt_for - 61324 + 61453 @stmt_switch_case - 191399 + 209699 @stmt_switch - 20901 + 20747 @stmt_try_block - 42699 + 46934 @stmt_decl - 608387 + 606536 @stmt_empty - 193484 + 193311 @stmt_continue - 22507 + 22525 @stmt_break - 102232 + 102345 @stmt_range_based_for - 8467 + 8331 @stmt_handler - 59429 + 65331 @stmt_constexpr_if - 52562 + 52504 @stmt_goto - 110487 + 110508 @stmt_asm - 110589 + 109773 @stmt_microsoft_try @@ -290,11 +294,11 @@ @stmt_vla_decl - 21 + 22 @stmt_assigned_goto - 9059 + 9060 @stmt_co_return @@ -302,55 +306,55 @@ @delete_array_expr - 1410 + 1406 @new_array_expr - 5099 + 5104 @ctordirectinit - 112747 + 112980 @ctorvirtualinit - 6532 + 6512 @ctorfieldinit - 200671 + 201086 @ctordelegatinginit - 3345 + 3352 @dtordirectdestruct - 41690 + 41776 @dtorvirtualdestruct - 4119 + 4128 @dtorfielddestruct - 41620 + 41706 @static_cast - 211675 + 210928 @reinterpret_cast - 30783 + 30749 @const_cast - 35285 + 35247 @dynamic_cast - 1040 + 1037 @c_style_cast @@ -358,15 +362,15 @@ @lambdaexpr - 21640 + 21291 @param_ref - 375271 + 244969 @errorexpr - 46796 + 46893 @address_of @@ -374,27 +378,27 @@ @reference_to - 1596067 + 1592318 @indirect - 292106 + 292162 @ref_indirect - 1938685 + 1938635 @array_to_pointer - 1424884 + 1428562 @vacuous_destructor_call - 8133 + 8150 @parexpr - 3572549 + 3581771 @arithnegexpr @@ -402,111 +406,111 @@ @complementexpr - 27786 + 27791 @notexpr - 277993 + 275941 @postincrexpr - 61774 + 61943 @postdecrexpr - 41860 + 41968 @preincrexpr - 70307 + 70456 @predecrexpr - 26108 + 26164 @conditionalexpr - 654502 + 656192 @addexpr - 400358 + 397789 @subexpr - 339340 + 340216 @mulexpr - 305891 + 305921 @divexpr - 133731 + 132913 @remexpr - 15810 + 15842 @paddexpr - 86502 + 86519 @psubexpr - 49681 + 49818 @pdiffexpr - 35495 + 35456 @lshiftexpr - 562988 + 565473 @rshiftexpr - 141617 + 140572 @andexpr - 491818 + 488189 @orexpr - 146267 + 145188 @xorexpr - 53938 + 54086 @eqexpr - 468873 + 469864 @neexpr - 300411 + 301187 @gtexpr - 100674 + 99050 @ltexpr - 106319 + 104605 @geexpr - 58989 + 59151 @leexpr - 212134 + 212175 @assignexpr - 933420 + 935391 @assignaddexpr @@ -514,15 +518,15 @@ @assignsubexpr - 11157 + 11180 @assignmulexpr - 7168 + 7146 @assigndivexpr - 4972 + 4985 @assignremexpr @@ -530,7 +534,7 @@ @assignlshiftexpr - 2704 + 2712 @assignrshiftexpr @@ -538,119 +542,119 @@ @assignandexpr - 4852 + 4817 @assignorexpr - 23850 + 23829 @assignxorexpr - 21803 + 21807 @assignpaddexpr - 13577 + 13606 @andlogicalexpr - 249009 + 249535 @orlogicalexpr - 864018 + 864675 @commaexpr - 181530 + 124044 @subscriptexpr - 367910 + 367580 @callexpr - 309079 + 304095 @vastartexpr - 3703 + 3707 @vaendexpr - 2822 + 2777 @vacopyexpr - 140 + 141 @varaccess - 6006368 + 6019055 @thisaccess - 1125919 + 1127165 @new_expr - 47571 + 47669 @delete_expr - 11725 + 11749 @throw_expr - 21760 + 21694 @condition_decl - 38593 + 42438 @braced_init_list - 1008 + 1108 @type_id - 36408 + 36484 @runtime_sizeof - 289268 + 295484 @runtime_alignof - 48521 + 49892 @sizeof_pack - 5645 + 5554 @routineexpr - 3047738 + 2917668 @type_operand - 1126029 + 1126886 @isemptyexpr - 2303 + 1481 @ispodexpr - 635 + 634 @hastrivialdestructor - 470 + 462 @literal - 4350894 + 4406598 @aggregateliteral @@ -658,39 +662,39 @@ @istrivialexpr - 940 + 925 @istriviallycopyableexpr - 3763 + 3702 @isconstructibleexpr - 2722 + 462 @isfinalexpr - 2094 + 1693 @noexceptexpr - 23573 + 25724 @builtinaddressof - 13274 + 13302 @temp_init - 760646 + 826875 @assume - 3200 + 3203 @unaryplusexpr - 2903 + 2911 @conjugation @@ -738,7 +742,7 @@ @assignpsubexpr - 1148 + 1150 @virtfunptrexpr @@ -750,11 +754,11 @@ @expr_stmt - 94929 + 94228 @offsetofexpr - 20103 + 19954 @hasassignexpr @@ -798,7 +802,7 @@ @isabstractexpr - 18 + 19 @isbaseofexpr @@ -806,15 +810,15 @@ @isclassexpr - 1835 + 1837 @isconvtoexpr - 1151 + 104 @isenumexpr - 1256 + 522 @ispolyexpr @@ -826,7 +830,7 @@ @typescompexpr - 562416 + 562843 @intaddrexpr @@ -834,7 +838,7 @@ @uuidof - 19993 + 20022 @foldexpr @@ -846,7 +850,7 @@ @istriviallyconstructibleexpr - 2827 + 732 @isdestructibleexpr @@ -858,19 +862,19 @@ @istriviallydestructibleexpr - 5 + 836 @istriviallyassignableexpr - 523 + 3 @isnothrowassignableexpr - 2094 + 4183 @isstandardlayoutexpr - 837 + 2 @isliteraltypeexpr @@ -890,7 +894,7 @@ @isnothrowconstructibleexpr - 4816 + 14433 @hasfinalizerexpr @@ -930,7 +934,7 @@ @builtinchooseexpr - 9136 + 9069 @vec_fill @@ -958,7 +962,7 @@ @isassignable - 2617 + 3 @isaggregate @@ -974,55 +978,55 @@ @builtinshuffle - 1965 + 1959 @ppd_if - 672260 + 661418 @ppd_ifdef - 265328 + 261049 @ppd_ifndef - 268621 + 264289 @ppd_elif - 25403 + 24994 @ppd_else - 210757 + 207358 @ppd_endif - 1206210 + 1186757 @ppd_plain_include - 313784 + 308723 @ppd_define - 2435769 + 2433089 @ppd_undef - 262035 + 257809 @ppd_pragma - 312337 + 311993 @ppd_include_next - 1881 + 1851 @ppd_line - 27780 + 27755 @ppd_error @@ -1038,7 +1042,7 @@ @link_target - 1471 + 1475 @xmldtd @@ -1068,11 +1072,11 @@ compilations - 9978 + 9948 id - 9978 + 9948 cwd @@ -1090,7 +1094,7 @@ 1 2 - 9978 + 9948 @@ -1116,19 +1120,19 @@ compilation_args - 656151 + 651309 id - 5544 + 5503 num - 713 + 707 arg - 34651 + 34395 @@ -1142,17 +1146,17 @@ 23 69 - 489 + 485 71 102 - 276 + 274 126 127 - 3889 + 3861 127 @@ -1162,7 +1166,7 @@ 131 132 - 819 + 813 134 @@ -1183,17 +1187,17 @@ 23 57 - 489 + 485 57 106 - 292 + 290 106 107 - 3852 + 3824 107 @@ -1203,7 +1207,7 @@ 109 110 - 819 + 813 111 @@ -1229,7 +1233,7 @@ 898 899 - 133 + 132 911 @@ -1249,12 +1253,12 @@ 970 989 - 37 + 36 999 1000 - 74 + 73 1001 @@ -1274,7 +1278,7 @@ 1042 1043 - 122 + 121 @@ -1305,7 +1309,7 @@ 8 13 - 53 + 52 13 @@ -1350,7 +1354,7 @@ 169 819 - 53 + 52 @@ -1366,12 +1370,12 @@ 1 2 - 32576 + 32335 2 1043 - 2075 + 2059 @@ -1387,12 +1391,12 @@ 1 2 - 33438 + 33191 2 56 - 1213 + 1204 @@ -1402,19 +1406,19 @@ compilation_compiling_files - 11495 + 11527 id - 1988 + 1994 num - 3301 + 3310 file - 9984 + 10011 @@ -1428,7 +1432,7 @@ 1 2 - 994 + 997 2 @@ -1443,7 +1447,7 @@ 4 5 - 238 + 239 5 @@ -1479,7 +1483,7 @@ 1 2 - 994 + 997 2 @@ -1494,7 +1498,7 @@ 4 5 - 238 + 239 5 @@ -1530,27 +1534,27 @@ 1 2 - 1750 + 1755 2 3 - 715 + 717 3 4 - 357 + 358 4 13 - 278 + 279 13 51 - 198 + 199 @@ -1566,27 +1570,27 @@ 1 2 - 1750 + 1755 2 3 - 715 + 717 3 4 - 357 + 358 4 13 - 278 + 279 13 49 - 198 + 199 @@ -1602,12 +1606,12 @@ 1 2 - 8989 + 9014 2 4 - 835 + 837 4 @@ -1628,12 +1632,12 @@ 1 2 - 9148 + 9173 2 4 - 795 + 797 4 @@ -1648,15 +1652,15 @@ compilation_time - 45982 + 46108 id - 1988 + 1994 num - 3301 + 3310 kind @@ -1664,7 +1668,7 @@ seconds - 9586 + 14239 @@ -1678,7 +1682,7 @@ 1 2 - 994 + 997 2 @@ -1693,7 +1697,7 @@ 4 5 - 238 + 239 5 @@ -1729,7 +1733,7 @@ 4 5 - 1988 + 1994 @@ -1745,27 +1749,27 @@ 3 4 - 715 + 279 4 5 - 278 + 717 6 - 8 + 9 159 - 8 + 9 10 - 159 + 79 10 11 - 79 + 119 11 @@ -1773,19 +1777,19 @@ 159 - 17 - 19 + 14 + 18 159 - 20 - 27 + 18 + 22 159 - 40 - 77 - 119 + 24 + 124 + 159 @@ -1801,27 +1805,27 @@ 1 2 - 1750 + 1755 2 3 - 715 + 717 3 4 - 357 + 358 4 13 - 278 + 279 13 51 - 198 + 199 @@ -1837,7 +1841,7 @@ 4 5 - 3301 + 3310 @@ -1853,42 +1857,47 @@ 3 4 - 835 + 598 4 5 - 914 + 1156 5 6 - 238 + 199 6 7 - 437 + 319 7 8 - 79 + 199 8 9 - 278 + 159 9 - 26 - 278 + 12 + 279 - 26 - 92 - 238 + 13 + 41 + 279 + + + 41 + 96 + 119 @@ -1933,24 +1942,19 @@ 12 - - 3 - 4 - 39 - 4 5 + 79 + + + 177 + 178 39 - 112 - 113 - 39 - - - 129 - 130 + 179 + 180 39 @@ -1967,27 +1971,22 @@ 1 2 - 5449 + 9373 2 3 - 1670 + 3510 3 - 4 - 1272 - - - 4 5 - 676 + 1196 5 - 42 - 517 + 46 + 159 @@ -2003,32 +2002,22 @@ 1 2 - 5091 + 8735 2 3 - 1392 + 3589 3 4 - 954 + 1116 4 - 5 - 875 - - - 5 - 7 - 795 - - - 7 - 67 - 477 + 74 + 797 @@ -2044,12 +2033,12 @@ 1 2 - 9307 + 14000 2 - 3 - 278 + 4 + 239 @@ -2059,15 +2048,15 @@ diagnostic_for - 891808 + 889095 diagnostic - 72312 + 72092 compilation - 9585 + 9556 file_number @@ -2075,7 +2064,7 @@ file_number_diagnostic_number - 6856 + 6835 @@ -2089,17 +2078,17 @@ 1 2 - 9631 + 9602 2 3 - 59836 + 59654 254 825 - 2844 + 2835 @@ -2115,7 +2104,7 @@ 1 2 - 72312 + 72092 @@ -2131,7 +2120,7 @@ 1 2 - 72312 + 72092 @@ -2152,27 +2141,27 @@ 7 8 - 6093 + 6074 8 9 - 497 + 495 247 248 - 1965 + 1959 263 444 - 763 + 760 446 594 - 208 + 207 @@ -2188,7 +2177,7 @@ 1 2 - 9585 + 9556 @@ -2209,27 +2198,27 @@ 7 8 - 6093 + 6074 8 9 - 497 + 495 247 248 - 1965 + 1959 263 444 - 763 + 760 446 594 - 208 + 207 @@ -2293,22 +2282,22 @@ 1 2 - 2821 + 2812 2 5 - 601 + 599 5 6 - 1017 + 1014 7 14 - 543 + 541 15 @@ -2318,22 +2307,22 @@ 17 18 - 601 + 599 18 23 - 462 + 461 26 40 - 555 + 553 42 830 - 196 + 195 @@ -2349,17 +2338,17 @@ 4 9 - 589 + 587 10 11 - 1005 + 1002 14 27 - 543 + 541 30 @@ -2369,27 +2358,27 @@ 34 35 - 601 + 599 36 45 - 462 + 461 52 79 - 555 + 553 84 85 - 185 + 184 254 255 - 2763 + 2755 297 @@ -2410,7 +2399,7 @@ 1 2 - 6856 + 6835 @@ -2420,15 +2409,15 @@ compilation_finished - 9978 + 9948 id - 9978 + 9948 cpu_seconds - 7850 + 7688 elapsed_seconds @@ -2446,7 +2435,7 @@ 1 2 - 9978 + 9948 @@ -2462,7 +2451,7 @@ 1 2 - 9978 + 9948 @@ -2478,17 +2467,17 @@ 1 2 - 6498 + 6363 2 3 - 1005 + 853 3 15 - 346 + 472 @@ -2504,12 +2493,12 @@ 1 2 - 7423 + 7123 2 3 - 427 + 564 @@ -2530,51 +2519,51 @@ 2 3 - 11 + 34 - 3 - 4 - 23 + 6 + 7 + 11 8 9 - 23 - - - 11 - 12 11 - 24 - 25 + 12 + 13 11 - 49 - 50 + 21 + 22 11 - 104 - 105 + 46 + 47 11 - 155 - 156 + 135 + 136 11 - 239 - 240 + 158 + 159 11 - 255 - 256 + 232 + 233 + 11 + + + 237 + 238 11 @@ -2596,51 +2585,51 @@ 2 3 - 11 + 34 - 3 - 4 - 23 + 6 + 7 + 11 8 9 - 23 - - - 11 - 12 11 - 24 - 25 + 12 + 13 11 - 49 - 50 + 21 + 22 11 - 104 - 105 + 45 + 46 11 - 111 - 112 + 110 + 111 11 - 174 - 175 + 122 + 123 11 - 217 - 218 + 162 + 163 + 11 + + + 222 + 223 11 @@ -2867,11 +2856,11 @@ sourceLocationPrefix - 470 + 462 prefix - 470 + 462 @@ -4365,31 +4354,31 @@ locations_default - 30132211 + 29655056 id - 30132211 + 29655056 container - 140191 + 137467 startLine - 2115102 + 2080991 startColumn - 37164 + 36565 endLine - 2117925 + 2083768 endColumn - 48455 + 47673 @@ -4403,7 +4392,7 @@ 1 2 - 30132211 + 29655056 @@ -4419,7 +4408,7 @@ 1 2 - 30132211 + 29655056 @@ -4435,7 +4424,7 @@ 1 2 - 30132211 + 29655056 @@ -4451,7 +4440,7 @@ 1 2 - 30132211 + 29655056 @@ -4467,7 +4456,7 @@ 1 2 - 30132211 + 29655056 @@ -4483,67 +4472,67 @@ 1 2 - 16465 + 15737 2 12 - 10820 + 10645 13 20 - 11761 + 11571 21 36 - 11290 + 11108 36 55 - 11290 + 11108 55 77 - 10820 + 10645 77 102 - 10820 + 10645 102 149 - 10820 + 10645 149 227 - 11290 + 11108 228 350 - 10820 + 10645 351 604 - 10820 + 10645 - 627 + 630 1479 - 10820 + 10645 1925 2380 - 2352 + 2314 @@ -4559,67 +4548,67 @@ 1 2 - 16465 + 15737 2 9 - 10820 + 10645 9 16 - 11761 + 11571 16 25 - 11290 + 11108 25 40 - 10820 + 10645 40 57 - 10820 + 10645 58 72 - 10820 + 10645 73 103 - 11290 + 11108 106 141 - 11761 + 11571 148 226 - 11290 + 11108 226 373 - 10820 + 10645 381 1456 - 10820 + 10645 1464 - 1613 - 1411 + 1614 + 1388 @@ -4635,67 +4624,67 @@ 1 2 - 16465 + 15737 2 4 - 8938 + 8794 4 5 - 7527 + 7405 5 6 - 7527 + 7405 6 8 - 11761 + 11571 8 13 - 12231 + 12034 13 17 - 10820 + 10645 17 25 - 11290 + 11108 25 31 - 11761 + 11571 31 38 - 10820 + 10645 38 52 - 10820 + 10645 52 64 - 10820 + 10645 65 77 - 9408 + 9257 @@ -4711,67 +4700,67 @@ 1 2 - 16465 + 15737 2 9 - 10820 + 10645 9 16 - 11761 + 11571 16 25 - 11290 + 11108 25 40 - 10820 + 10645 40 57 - 10820 + 10645 58 71 - 10820 + 10645 72 98 - 10820 + 10645 101 140 - 11761 + 11571 140 224 - 10820 + 10645 224 360 - 10820 + 10645 364 1185 - 10820 + 10645 1254 - 1610 - 2352 + 1611 + 2314 @@ -4787,62 +4776,62 @@ 1 2 - 16465 + 15737 2 10 - 11290 + 11108 10 14 - 10820 + 10645 14 21 - 11290 + 11108 22 31 - 11290 + 11108 31 39 - 12701 + 12497 39 48 - 12231 + 12034 48 56 - 11761 + 11571 56 64 - 11761 + 11571 64 72 - 10820 + 10645 72 77 - 11290 + 11108 77 90 - 8467 + 8331 @@ -4858,52 +4847,52 @@ 1 2 - 581935 + 572087 2 3 - 318018 + 312426 3 4 - 199466 + 196250 4 6 - 160890 + 159221 6 10 - 190058 + 186993 10 16 - 166065 + 163387 16 25 - 168888 + 166164 25 46 - 163713 + 161073 46 169 - 159009 + 156444 170 - 299 - 7056 + 298 + 6942 @@ -4919,42 +4908,42 @@ 1 2 - 869845 + 855354 2 3 - 280853 + 275860 3 5 - 191469 + 189307 5 8 - 181119 + 178198 8 12 - 162302 + 159684 12 18 - 166536 + 163850 18 39 - 159949 + 157370 39 - 299 - 103026 + 298 + 101365 @@ -4970,47 +4959,47 @@ 1 2 - 612514 + 601710 2 3 - 313313 + 308260 3 4 - 202760 + 199952 4 6 - 184412 + 181901 6 9 - 180649 + 177735 9 13 - 167006 + 164313 13 19 - 173592 + 170793 19 29 - 167476 + 164776 29 52 - 113376 + 111547 @@ -5026,22 +5015,22 @@ 1 2 - 1545868 + 1520938 2 3 - 351419 + 345751 3 5 - 164654 + 161998 5 16 - 53159 + 52302 @@ -5057,52 +5046,52 @@ 1 2 - 586639 + 576716 2 3 - 318958 + 313352 3 4 - 201819 + 198564 4 6 - 167476 + 165701 6 9 - 160420 + 157833 9 14 - 178297 + 175421 14 21 - 176415 + 173570 21 32 - 163243 + 160610 32 61 - 159009 + 156444 61 66 - 2822 + 2777 @@ -5118,72 +5107,72 @@ 1 31 - 2822 + 2777 42 85 - 2822 + 2777 86 128 - 2822 + 2777 129 229 - 2822 + 2777 248 292 - 2822 + 2777 - 292 + 293 360 - 2822 + 2777 376 459 - 2822 + 2777 - 476 - 558 - 2822 + 475 + 559 + 2777 565 - 620 - 2822 + 623 + 2777 626 699 - 2822 + 2777 699 796 - 2822 + 2777 819 1548 - 2822 + 2777 1705 - 5645 - 2822 + 5646 + 2777 15306 15307 - 470 + 462 @@ -5199,67 +5188,67 @@ 1 18 - 2822 + 2777 23 35 - 3293 + 3239 38 43 - 2822 + 2777 44 61 - 2822 + 2777 65 73 - 2822 + 2777 73 84 - 3293 + 3239 84 97 - 3293 + 3239 98 101 - 2352 + 2314 101 105 - 3293 + 3239 106 111 - 2822 + 2777 111 123 - 2822 + 2777 127 153 - 2822 + 2777 169 - 299 - 1881 + 298 + 1851 @@ -5275,72 +5264,72 @@ 1 19 - 2822 + 2777 30 72 - 2822 + 2777 83 122 - 2822 + 2777 122 205 - 2822 + 2777 214 261 - 2822 + 2777 264 322 - 2822 + 2777 325 380 - 2822 + 2777 403 436 - 2822 + 2777 454 474 - 2822 + 2777 - 477 + 478 514 - 2822 + 2777 517 586 - 2822 + 2777 587 832 - 2822 + 2777 1116 2197 - 2822 + 2777 2387 2388 - 470 + 462 @@ -5356,72 +5345,72 @@ 1 19 - 2822 + 2777 30 72 - 2822 + 2777 83 122 - 2822 + 2777 122 205 - 2822 + 2777 214 261 - 2822 + 2777 264 322 - 2822 + 2777 325 380 - 2822 + 2777 403 435 - 2822 + 2777 454 474 - 2822 + 2777 - 476 + 477 513 - 2822 + 2777 520 585 - 2822 + 2777 587 831 - 2822 + 2777 1121 2205 - 2822 + 2777 2383 2384 - 470 + 462 @@ -5437,67 +5426,67 @@ 1 7 - 2822 + 2777 7 11 - 3293 + 3239 11 16 - 3293 + 3239 16 22 - 2822 + 2777 22 24 - 2352 + 2314 24 27 - 3293 + 3239 28 33 - 2822 + 2777 33 40 - 3293 + 3239 40 43 - 2822 + 2777 43 49 - 2822 + 2777 49 54 - 2822 + 2777 54 74 - 2822 + 2777 75 86 - 1881 + 1851 @@ -5513,52 +5502,52 @@ 1 2 - 589932 + 579956 2 3 - 312372 + 306872 3 4 - 198996 + 196250 4 6 - 161361 + 159221 6 10 - 189587 + 186530 10 16 - 163713 + 161073 16 25 - 170770 + 168016 25 45 - 159949 + 157370 45 160 - 159949 + 157370 160 - 299 - 11290 + 298 + 11108 @@ -5574,47 +5563,47 @@ 1 2 - 881606 + 866925 2 3 - 270033 + 265215 3 4 - 123255 + 122193 4 6 - 142073 + 139781 6 10 - 195703 + 192547 10 15 - 168417 + 165238 15 26 - 165595 + 163387 26 120 - 159479 + 156907 121 - 299 - 11761 + 298 + 11571 @@ -5630,22 +5619,22 @@ 1 2 - 1538812 + 1513995 2 3 - 349067 + 343437 3 5 - 172181 + 169404 5 10 - 57864 + 56931 @@ -5661,47 +5650,47 @@ 1 2 - 621922 + 610967 2 3 - 304375 + 299466 3 4 - 204641 + 201804 4 6 - 186765 + 184215 6 9 - 177826 + 174958 9 13 - 169358 + 166627 13 19 - 174533 + 171718 19 29 - 162772 + 160147 29 52 - 115728 + 113862 @@ -5717,52 +5706,52 @@ 1 2 - 596519 + 586436 2 3 - 311431 + 305946 3 4 - 198996 + 196250 4 6 - 171710 + 169404 6 9 - 157597 + 155056 9 14 - 173592 + 170793 14 21 - 180178 + 177273 21 32 - 165124 + 162461 32 60 - 159009 + 156444 60 65 - 3763 + 3702 @@ -5778,67 +5767,67 @@ 1 2 - 5174 + 5091 2 8 - 3763 + 3702 9 186 - 3763 + 3702 196 295 - 3763 + 3702 - 298 + 297 498 - 3763 + 3702 503 - 553 - 3763 + 554 + 3702 563 634 - 3763 + 3702 - 639 + 640 762 - 3763 + 3702 - 763 + 765 871 - 3763 + 3702 879 1082 - 3763 + 3702 1083 - 1286 - 3763 + 1283 + 3702 1310 - 1590 - 3763 + 1591 + 3702 1682 2419 - 1881 + 1851 @@ -5854,67 +5843,67 @@ 1 2 - 5645 + 5554 2 6 - 3763 + 3702 6 65 - 3763 + 3702 70 100 - 3763 + 3702 100 111 - 3763 + 3702 112 122 - 3763 + 3702 122 134 - 3763 + 3702 139 152 - 3763 + 3702 152 160 - 4233 + 4165 160 172 - 3763 + 3702 172 176 - 3763 + 3702 176 208 - 3763 + 3702 240 - 299 - 940 + 298 + 925 @@ -5930,67 +5919,67 @@ 1 2 - 5645 + 5554 2 8 - 3763 + 3702 9 106 - 3763 + 3702 155 241 - 3763 + 3702 253 335 - 3763 + 3702 340 426 - 3763 + 3702 437 488 - 3763 + 3702 - 488 + 489 574 - 3763 + 3702 575 627 - 3763 + 3702 630 698 - 4233 + 4165 701 817 - 3763 + 3702 - 843 + 841 1107 - 3763 + 3702 - 1160 + 1163 1174 - 940 + 925 @@ -6006,67 +5995,67 @@ 1 2 - 6115 + 6017 2 4 - 3763 + 3702 4 8 - 4233 + 4165 8 15 - 3763 + 3702 15 23 - 3763 + 3702 23 29 - 3763 + 3702 29 35 - 4233 + 4165 35 39 - 3293 + 3239 39 42 - 3763 + 3702 42 44 - 2822 + 2777 44 46 - 3763 + 3702 46 49 - 3763 + 3702 49 53 - 1411 + 1388 @@ -6082,67 +6071,67 @@ 1 2 - 5645 + 5554 2 8 - 3763 + 3702 9 156 - 3763 + 3702 159 240 - 3763 + 3702 251 334 - 3763 + 3702 342 430 - 3763 + 3702 435 490 - 4233 + 3702 - 504 - 576 - 3763 + 490 + 575 + 3702 - 576 - 631 - 3763 + 575 + 626 + 3702 - 635 - 702 - 3763 + 630 + 700 + 3702 - 702 - 813 - 3763 + 701 + 811 + 3702 - 838 - 1109 - 3763 + 812 + 992 + 3702 - 1161 + 1108 1181 - 940 + 1388 @@ -6152,31 +6141,31 @@ locations_stmt - 3805465 + 3813503 id - 3805465 + 3813503 container - 3076 + 3082 startLine - 199416 + 199837 startColumn - 1866 + 1870 endLine - 193694 + 194103 endColumn - 2358 + 2363 @@ -6190,7 +6179,7 @@ 1 2 - 3805465 + 3813503 @@ -6206,7 +6195,7 @@ 1 2 - 3805465 + 3813503 @@ -6222,7 +6211,7 @@ 1 2 - 3805465 + 3813503 @@ -6238,7 +6227,7 @@ 1 2 - 3805465 + 3813503 @@ -6254,7 +6243,7 @@ 1 2 - 3805465 + 3813503 @@ -6361,7 +6350,7 @@ 169 371 - 266 + 267 393 @@ -6422,12 +6411,12 @@ 1 3 - 225 + 226 3 7 - 266 + 267 7 @@ -6442,12 +6431,12 @@ 11 13 - 225 + 226 13 14 - 225 + 226 14 @@ -6599,7 +6588,7 @@ 56 63 - 266 + 267 63 @@ -6614,7 +6603,7 @@ 69 71 - 225 + 226 71 @@ -6655,67 +6644,67 @@ 1 2 - 21494 + 21539 2 3 - 15259 + 15291 3 4 - 12449 + 12475 4 6 - 14418 + 14448 6 8 - 12490 + 12516 8 11 - 16674 + 16709 11 16 - 17228 + 17264 16 22 - 15320 + 15353 22 29 - 16941 + 16976 29 37 - 17330 + 17367 37 45 - 15054 + 15085 45 56 - 16141 + 16175 56 73 - 8614 + 8632 @@ -6731,67 +6720,67 @@ 1 2 - 22253 + 22300 2 3 - 15689 + 15723 3 4 - 12654 + 12681 4 6 - 14356 + 14387 6 8 - 12695 + 12722 8 11 - 17535 + 17572 11 16 - 16325 + 16360 16 22 - 16182 + 16216 22 29 - 16920 + 16956 29 36 - 15956 + 15990 36 44 - 16284 + 16319 44 54 - 15607 + 15640 54 69 - 6952 + 6967 @@ -6807,57 +6796,57 @@ 1 2 - 26765 + 26821 2 3 - 20796 + 20840 3 4 - 16776 + 16812 4 5 - 16038 + 16072 5 6 - 17392 + 17429 6 7 - 19812 + 19854 7 8 - 22704 + 22752 8 9 - 20345 + 20388 9 10 - 14972 + 15003 10 12 - 16612 + 16648 12 18 - 7198 + 7214 @@ -6873,67 +6862,67 @@ 1 2 - 34517 + 34590 2 3 - 25739 + 25794 3 4 - 18397 + 18436 4 5 - 16182 + 16216 5 6 - 12757 + 12784 6 7 - 11998 + 12023 7 8 - 10152 + 10173 8 9 - 10952 + 10975 9 10 - 10706 + 10728 10 11 - 10501 + 10523 11 12 - 10152 + 10173 12 14 - 15751 + 15784 14 24 - 11608 + 11633 @@ -6949,67 +6938,67 @@ 1 2 - 22089 + 22135 2 3 - 16161 + 16195 3 4 - 12921 + 12948 4 6 - 16038 + 16072 6 8 - 14664 + 14695 8 10 - 13167 + 13195 10 14 - 18253 + 18292 14 18 - 16982 + 17017 18 22 - 17535 + 17572 22 26 - 18458 + 18497 26 30 - 16346 + 16380 30 36 - 15197 + 15229 36 42 - 1599 + 1603 @@ -7025,7 +7014,7 @@ 1 2 - 225 + 226 2 @@ -7172,7 +7161,7 @@ 1 2 - 225 + 226 2 @@ -7248,7 +7237,7 @@ 1 2 - 225 + 226 2 @@ -7395,67 +7384,67 @@ 1 2 - 17371 + 17408 2 3 - 14377 + 14407 3 4 - 11464 + 11489 4 6 - 15566 + 15599 6 8 - 12469 + 12496 8 11 - 15423 + 15455 11 15 - 14602 + 14633 15 21 - 16059 + 16093 21 27 - 15382 + 15414 27 34 - 14910 + 14942 34 42 - 15710 + 15743 42 52 - 15977 + 16010 52 130 - 14377 + 14407 @@ -7471,62 +7460,62 @@ 1 2 - 24898 + 24951 2 3 - 16100 + 16134 3 4 - 12736 + 12763 4 6 - 15628 + 15661 6 8 - 14972 + 15003 8 11 - 15854 + 15887 11 16 - 17412 + 17449 16 20 - 14561 + 14592 20 26 - 17125 + 17161 26 32 - 16223 + 16257 32 39 - 14828 + 14859 39 59 - 13351 + 13380 @@ -7542,62 +7531,62 @@ 1 2 - 32405 + 32473 2 3 - 23709 + 23759 3 4 - 18417 + 18456 4 5 - 15115 + 15147 5 6 - 13844 + 13873 6 7 - 11649 + 11674 7 8 - 11711 + 11735 8 9 - 10890 + 10913 9 10 - 10152 + 10173 10 12 - 17925 + 17963 12 15 - 17679 + 17716 15 100 - 10193 + 10214 @@ -7613,57 +7602,57 @@ 1 2 - 24898 + 24951 2 3 - 20345 + 20388 3 4 - 16797 + 16832 4 5 - 17761 + 17798 5 6 - 18540 + 18579 6 7 - 20386 + 20429 7 8 - 22376 + 22423 8 9 - 18704 + 18744 9 10 - 12900 + 12927 10 12 - 14992 + 15024 12 18 - 5988 + 6001 @@ -7679,67 +7668,67 @@ 1 2 - 24652 + 24704 2 3 - 16592 + 16627 3 4 - 12510 + 12537 4 6 - 17781 + 17819 6 8 - 15300 + 15332 8 10 - 12798 + 12825 10 13 - 14377 + 14407 13 16 - 14992 + 15024 16 19 - 14623 + 14654 19 22 - 14008 + 14037 22 26 - 17084 + 17120 26 31 - 15300 + 15332 31 39 - 3671 + 3679 @@ -8134,31 +8123,31 @@ locations_expr - 13128120 + 13165921 id - 13128120 + 13165921 container - 4348 + 4644 startLine - 191499 + 191904 startColumn - 2461 + 2466 endLine - 191479 + 191883 endColumn - 2789 + 2795 @@ -8172,7 +8161,7 @@ 1 2 - 13128120 + 13165921 @@ -8188,7 +8177,7 @@ 1 2 - 13128120 + 13165921 @@ -8204,7 +8193,7 @@ 1 2 - 13128120 + 13165921 @@ -8220,7 +8209,7 @@ 1 2 - 13128120 + 13165921 @@ -8236,7 +8225,7 @@ 1 2 - 13128120 + 13165921 @@ -8252,72 +8241,72 @@ 1 2 - 369 + 411 2 6 - 266 + 328 6 - 10 - 348 + 11 + 369 - 10 - 34 - 328 + 12 + 26 + 369 - 46 - 136 - 328 + 27 + 96 + 349 - 166 - 594 - 328 + 100 + 514 + 349 - 677 - 1614 - 328 + 525 + 1401 + 349 - 1623 - 2416 - 328 + 1526 + 2343 + 349 - 2490 - 3669 - 328 + 2404 + 3615 + 349 - 3705 - 5161 - 328 + 3668 + 5162 + 349 5341 - 6838 - 328 + 7345 + 349 - 7344 - 9012 - 328 + 7399 + 9307 + 349 - 9073 - 13259 - 328 + 9382 + 16759 + 349 - 13617 + 18811 18812 - 82 + 20 @@ -8333,67 +8322,67 @@ 1 2 - 451 + 493 2 - 5 - 348 + 4 + 369 - 5 + 4 10 - 328 + 369 10 - 22 - 328 + 20 + 349 - 24 - 87 - 328 + 20 + 51 + 349 - 97 - 207 - 328 + 65 + 151 + 349 - 213 - 437 - 328 + 161 + 360 + 349 - 454 - 689 - 328 + 361 + 577 + 349 - 719 - 977 - 328 + 590 + 923 + 349 - 997 - 1292 - 328 + 928 + 1265 + 349 - 1332 - 1781 - 328 + 1268 + 1742 + 349 - 1851 + 1781 2320 - 328 + 349 2491 4241 - 266 + 267 @@ -8409,47 +8398,52 @@ 1 2 - 451 + 493 2 - 5 - 389 + 4 + 349 - 5 - 10 + 4 + 7 + 390 + + + 7 + 16 + 349 + + + 16 + 37 + 349 + + + 37 + 59 + 390 + + + 59 + 66 369 - 10 - 27 - 328 + 66 + 68 + 267 - 27 - 55 - 369 - - - 55 - 64 - 348 - - - 64 - 67 - 246 - - - 67 + 68 69 - 369 + 205 69 70 - 307 + 308 70 @@ -8459,22 +8453,22 @@ 71 72 - 307 + 308 72 74 - 266 + 267 74 - 83 - 328 + 92 + 369 - 90 - 108 - 82 + 94 + 109 + 41 @@ -8490,67 +8484,67 @@ 1 2 - 451 + 493 2 - 5 - 348 + 4 + 369 - 5 + 4 10 - 328 + 369 10 - 22 - 328 + 20 + 349 - 24 - 87 - 328 + 20 + 51 + 349 - 97 - 207 - 328 + 65 + 151 + 349 - 214 - 437 - 328 + 162 + 360 + 349 - 454 - 691 - 328 + 361 + 578 + 349 - 719 - 978 - 328 + 591 + 926 + 349 - 998 - 1293 - 328 + 930 + 1266 + 349 - 1332 - 1785 - 328 + 1272 + 1742 + 349 - 1855 + 1785 2324 - 328 + 349 2500 4416 - 266 + 267 @@ -8566,37 +8560,42 @@ 1 2 - 410 + 452 2 - 5 - 389 - - - 5 - 9 + 4 328 - 9 - 29 - 328 + 4 + 7 + 369 - 30 - 55 - 328 + 7 + 15 + 349 - 55 - 69 - 389 + 15 + 36 + 349 - 69 + 36 + 61 + 349 + + + 61 + 70 + 349 + + + 70 73 - 348 + 267 73 @@ -8611,22 +8610,22 @@ 76 77 - 410 + 411 77 79 - 348 + 349 79 - 83 - 328 + 84 + 349 - 83 + 84 116 - 287 + 267 @@ -8642,67 +8641,67 @@ 1 5 - 16079 + 16113 5 9 - 16448 + 16483 9 15 - 15997 + 16031 15 23 - 15074 + 15106 23 32 - 15115 + 15147 32 44 - 14972 + 15003 44 60 - 14726 + 14757 60 80 - 14808 + 14818 80 103 - 14582 + 14633 103 130 - 14787 + 14777 130 159 - 14561 + 14531 159 194 - 14561 + 14613 194 302 - 9783 + 9886 @@ -8718,62 +8717,62 @@ 1 2 - 23463 + 23512 2 3 - 15587 + 15620 3 4 - 11321 + 11345 4 6 - 16325 + 16360 6 8 - 13597 + 13626 8 11 - 16407 + 16442 11 16 - 17330 + 17346 16 21 - 16407 + 16442 21 28 - 16612 + 16648 28 35 - 15956 + 15805 35 43 - 15936 + 15846 43 60 - 12551 + 12907 @@ -8789,62 +8788,62 @@ 1 4 - 15936 + 15969 4 7 - 17494 + 17531 7 11 - 16653 + 16689 11 16 - 17371 + 17408 16 21 - 17474 + 17511 21 26 - 15033 + 15065 26 31 - 16141 + 16175 31 36 - 17699 + 17716 36 40 - 15792 + 15702 40 44 - 16530 + 16298 44 49 - 16592 + 16894 49 63 - 8778 + 8940 @@ -8860,27 +8859,27 @@ 1 2 - 101769 + 101943 2 3 - 44567 + 44620 3 4 - 27503 + 27643 4 6 - 14541 + 14572 6 23 - 3117 + 3124 @@ -8896,67 +8895,67 @@ 1 4 - 16920 + 16956 4 7 - 16612 + 16648 7 11 - 16387 + 16421 11 16 - 16182 + 16216 16 21 - 16407 + 16442 21 27 - 16735 + 16771 27 33 - 16407 + 16442 33 38 - 14459 + 14469 38 43 - 15505 + 15538 43 47 - 14746 + 14695 47 52 - 16715 + 16771 52 65 - 14377 + 14448 - 66 + 65 70 - 41 + 82 @@ -8972,7 +8971,7 @@ 1 2 - 307 + 308 2 @@ -8991,41 +8990,41 @@ 43 - 251 + 253 184 - 279 - 840 + 280 + 849 184 - 951 - 1889 + 956 + 1895 184 - 2097 - 4180 + 2100 + 4183 184 - 4240 - 7018 + 4242 + 7021 184 - 7166 - 11389 + 7174 + 11394 184 - 12326 - 15119 + 12337 + 15120 184 - 15349 + 15374 30165 184 @@ -9067,48 +9066,53 @@ 7 - 28 + 32 184 - 41 - 98 + 43 + 99 184 - 103 - 122 + 104 + 123 184 - 123 - 130 - 205 - - - 132 - 138 + 124 + 133 184 - 138 + 133 + 139 + 164 + + + 139 142 - 205 + 164 142 144 - 184 + 143 144 - 148 - 184 + 147 + 226 - 149 + 148 155 - 164 + 205 + + + 155 + 158 + 41 @@ -9124,7 +9128,7 @@ 1 2 - 307 + 308 2 @@ -9143,36 +9147,36 @@ 20 - 151 + 152 184 - 196 - 585 + 199 + 589 184 - 622 - 1287 + 633 + 1290 184 - 1368 - 2342 + 1370 + 2344 184 - 2570 + 2574 3505 184 - 3522 + 3527 4711 184 - 4732 + 4734 5298 184 @@ -9200,7 +9204,7 @@ 1 2 - 307 + 308 2 @@ -9219,36 +9223,36 @@ 20 - 151 + 152 184 - 196 - 585 + 199 + 589 184 - 647 - 1289 + 651 + 1292 184 - 1368 - 2346 + 1370 + 2348 184 - 2573 + 2575 3511 184 - 3528 + 3533 4712 184 - 4735 + 4737 5324 184 @@ -9330,13 +9334,13 @@ 74 - 83 - 184 + 84 + 226 - 83 + 84 96 - 143 + 102 @@ -9352,67 +9356,67 @@ 1 5 - 16100 + 16134 5 9 - 16448 + 16483 9 15 - 15772 + 15805 15 23 - 15054 + 15085 23 32 - 15607 + 15640 32 44 - 14705 + 14736 44 60 - 14459 + 14489 60 80 - 15238 + 15250 80 103 - 14479 + 14531 103 130 - 14787 + 14757 130 - 159 - 14459 + 160 + 14880 - 159 - 193 - 14377 + 160 + 195 + 14551 - 193 + 195 299 - 9988 + 9536 @@ -9428,67 +9432,67 @@ 1 2 - 23463 + 23512 2 3 - 15525 + 15558 3 4 - 11321 + 11345 4 6 - 16018 + 16051 6 8 - 13454 + 13482 8 11 - 16469 + 16504 11 15 - 14459 + 14428 15 20 - 16674 + 16771 20 26 - 14972 + 14983 26 33 - 16120 + 16051 33 40 - 14726 + 14633 40 49 - 14726 + 14592 49 60 - 3548 + 3966 @@ -9504,27 +9508,27 @@ 1 2 - 95349 + 95469 2 3 - 49838 + 50005 3 4 - 29308 + 29370 4 6 - 15566 + 15599 6 11 - 1415 + 1438 @@ -9540,62 +9544,62 @@ 1 4 - 15792 + 15825 4 7 - 17412 + 17449 7 11 - 16448 + 16483 11 16 - 17310 + 17346 16 21 - 17269 + 17305 21 26 - 15115 + 15147 26 31 - 16264 + 16298 31 36 - 17679 + 17675 36 40 - 15341 + 15291 40 44 - 16592 + 16442 44 49 - 16735 + 16976 49 63 - 9516 + 9639 @@ -9611,67 +9615,62 @@ 1 4 - 17146 + 17182 4 7 - 16756 + 16791 7 11 - 16387 + 16421 11 16 - 16838 + 16874 16 21 - 15977 + 16010 21 26 - 14479 + 14510 26 32 - 16120 + 16154 32 - 37 - 14377 + 38 + 17490 - 37 - 42 - 15833 + 38 + 43 + 16134 - 42 - 46 - 14233 + 43 + 47 + 14469 - 46 - 51 - 17248 + 47 + 52 + 16565 - 51 - 59 - 14459 - - - 59 + 52 69 - 1620 + 13277 @@ -9687,12 +9686,12 @@ 1 2 - 225 + 226 2 4 - 225 + 226 4 @@ -9707,45 +9706,45 @@ 16 51 - 225 + 226 56 - 615 - 225 + 617 + 226 - 834 - 2288 - 225 + 835 + 2297 + 226 2328 - 4150 - 225 + 4152 + 226 4177 - 7135 - 225 + 7139 + 226 - 8237 - 11757 - 225 + 8241 + 11758 + 226 - 12358 + 12367 15463 - 225 + 226 - 15685 - 18241 - 225 + 15690 + 18245 + 226 - 18731 + 18733 19130 82 @@ -9778,52 +9777,52 @@ 6 12 - 225 + 226 12 41 - 225 + 226 50 - 113 - 225 + 114 + 226 - 113 + 115 128 - 225 + 226 128 - 135 + 137 205 - 135 - 139 + 137 + 142 246 - 139 - 146 - 205 + 142 + 147 + 143 - 146 + 147 148 - 205 + 123 148 - 152 + 151 246 - 152 - 153 - 41 + 151 + 163 + 184 @@ -9839,7 +9838,7 @@ 1 2 - 307 + 308 2 @@ -9854,47 +9853,47 @@ 8 15 - 225 + 226 18 - 53 - 225 + 54 + 226 74 491 - 225 + 226 - 512 - 1332 - 225 + 514 + 1335 + 226 - 1392 - 2419 - 225 + 1397 + 2422 + 226 - 2763 + 2764 3740 - 225 + 226 3801 - 4530 - 225 + 4533 + 226 - 4641 - 5303 - 225 + 4642 + 5304 + 226 5377 5735 - 225 + 226 5747 @@ -9915,7 +9914,7 @@ 1 2 - 266 + 267 2 @@ -9934,43 +9933,43 @@ 14 - 21 - 225 + 22 + 246 - 21 + 23 28 - 246 + 226 28 36 - 246 + 226 36 - 42 - 246 + 41 + 226 - 42 - 49 - 246 + 41 + 47 + 226 - 49 - 59 - 225 + 47 + 56 + 226 - 59 - 65 - 184 + 56 + 64 + 226 - 66 - 71 - 205 + 64 + 72 + 226 @@ -9986,7 +9985,7 @@ 1 2 - 307 + 308 2 @@ -10001,47 +10000,47 @@ 8 15 - 225 + 226 17 - 53 - 225 + 54 + 226 74 473 - 225 + 226 - 500 - 1302 - 225 + 502 + 1306 + 226 - 1356 + 1361 2389 - 225 + 226 - 2626 + 2627 3666 - 225 + 226 3731 - 4489 - 225 + 4491 + 226 - 4638 - 5281 - 225 + 4639 + 5282 + 226 - 5366 + 5367 5729 - 225 + 226 5734 @@ -10056,23 +10055,23 @@ numlines - 1406618 + 1383933 element_id - 1399561 + 1376990 num_lines - 102556 + 100902 num_code - 85620 + 84239 num_comment - 60216 + 59245 @@ -10086,12 +10085,12 @@ 1 2 - 1392505 + 1370047 2 3 - 7056 + 6942 @@ -10107,12 +10106,12 @@ 1 2 - 1393446 + 1370973 2 3 - 6115 + 6017 @@ -10128,7 +10127,7 @@ 1 2 - 1399561 + 1376990 @@ -10144,27 +10143,27 @@ 1 2 - 68684 + 67576 2 3 - 12231 + 12034 3 4 - 7527 + 7405 4 21 - 7997 + 7868 29 926 - 6115 + 6017 @@ -10180,27 +10179,27 @@ 1 2 - 71036 + 69890 2 3 - 12231 + 12034 3 4 - 8467 + 8331 4 6 - 9408 + 9257 6 7 - 1411 + 1388 @@ -10216,22 +10215,22 @@ 1 2 - 70095 + 68965 2 3 - 15054 + 14811 3 4 - 10820 + 10645 4 7 - 6586 + 6479 @@ -10247,27 +10246,27 @@ 1 2 - 53159 + 52302 2 3 - 14583 + 14348 3 5 - 6586 + 6479 5 42 - 6586 + 6479 44 927 - 4704 + 4628 @@ -10283,27 +10282,27 @@ 1 2 - 53159 + 52302 2 3 - 16935 + 16662 3 5 - 6115 + 6017 5 8 - 6586 + 6479 8 12 - 2822 + 2777 @@ -10319,27 +10318,27 @@ 1 2 - 53630 + 52765 2 3 - 15994 + 15737 3 5 - 7527 + 7405 5 7 - 5174 + 5091 7 10 - 3293 + 3239 @@ -10355,32 +10354,32 @@ 1 2 - 34812 + 34251 2 3 - 9408 + 9257 3 4 - 4233 + 4165 4 6 - 4704 + 4628 6 11 - 5174 + 5091 17 2622 - 1881 + 1851 @@ -10396,32 +10395,32 @@ 1 2 - 34812 + 34251 2 3 - 9408 + 9257 3 4 - 4233 + 4165 4 6 - 4704 + 4628 6 8 - 4704 + 4628 10 38 - 2352 + 2314 @@ -10437,32 +10436,32 @@ 1 2 - 34812 + 34251 2 3 - 9408 + 9257 3 4 - 4233 + 4165 4 6 - 4704 + 4628 6 10 - 4704 + 4628 10 37 - 2352 + 2314 @@ -10472,11 +10471,11 @@ diagnostics - 72312 + 72092 id - 72312 + 72092 severity @@ -10488,15 +10487,15 @@ error_message - 127 + 126 full_error_message - 62738 + 62547 location - 150 + 149 @@ -10510,7 +10509,7 @@ 1 2 - 72312 + 72092 @@ -10526,7 +10525,7 @@ 1 2 - 72312 + 72092 @@ -10542,7 +10541,7 @@ 1 2 - 72312 + 72092 @@ -10558,7 +10557,7 @@ 1 2 - 72312 + 72092 @@ -10574,7 +10573,7 @@ 1 2 - 72312 + 72092 @@ -10901,7 +10900,7 @@ 1 2 - 127 + 126 @@ -10917,7 +10916,7 @@ 1 2 - 127 + 126 @@ -11005,7 +11004,7 @@ 1 2 - 62726 + 62536 829 @@ -11026,7 +11025,7 @@ 1 2 - 62738 + 62547 @@ -11042,7 +11041,7 @@ 1 2 - 62738 + 62547 @@ -11058,7 +11057,7 @@ 1 2 - 62738 + 62547 @@ -11074,7 +11073,7 @@ 1 2 - 62738 + 62547 @@ -11111,7 +11110,7 @@ 1 2 - 150 + 149 @@ -11184,15 +11183,15 @@ files - 124196 + 122193 id - 124196 + 122193 name - 124196 + 122193 @@ -11206,7 +11205,7 @@ 1 2 - 124196 + 122193 @@ -11222,7 +11221,7 @@ 1 2 - 124196 + 122193 @@ -11232,15 +11231,15 @@ folders - 15994 + 15274 id - 15994 + 15274 name - 15994 + 15274 @@ -11254,7 +11253,7 @@ 1 2 - 15994 + 15274 @@ -11270,7 +11269,7 @@ 1 2 - 15994 + 15274 @@ -11280,15 +11279,15 @@ containerparent - 139250 + 136541 parent - 15994 + 15274 child - 139250 + 136541 @@ -11302,32 +11301,32 @@ 1 2 - 7056 + 6479 2 3 - 3293 + 3239 3 5 - 1411 + 1388 5 12 - 1411 + 1388 23 28 - 1411 + 1388 40 67 - 1411 + 1388 @@ -11343,7 +11342,7 @@ 1 2 - 139250 + 136541 @@ -11353,11 +11352,11 @@ fileannotations - 5253841 + 5237857 id - 5018 + 5002 kind @@ -11365,11 +11364,11 @@ name - 56101 + 55930 value - 47163 + 47020 @@ -11383,12 +11382,12 @@ 1 2 - 173 + 172 2 3 - 4844 + 4829 @@ -11404,42 +11403,42 @@ 1 102 - 393 + 391 102 225 - 381 + 380 227 299 - 381 + 380 301 452 - 404 + 403 452 555 - 381 + 380 559 626 - 381 + 380 626 716 - 381 + 380 729 904 - 381 + 380 904 @@ -11449,12 +11448,12 @@ 936 937 - 1456 + 1452 1083 2036 - 381 + 380 2293 @@ -11475,52 +11474,52 @@ 1 114 - 393 + 391 114 275 - 381 + 380 275 363 - 381 + 380 393 638 - 381 + 380 643 744 - 381 + 380 751 955 - 381 + 380 955 1087 - 381 + 380 1088 1501 - 254 + 253 1501 1502 - 1456 + 1452 1504 1874 - 381 + 380 1972 @@ -11604,62 +11603,62 @@ 1 2 - 9076 + 9048 2 3 - 6370 + 6351 3 5 - 4278 + 4265 5 9 - 4370 + 4357 9 14 - 4081 + 4069 14 18 - 4278 + 4265 18 20 - 4833 + 4818 20 34 - 4324 + 4311 34 128 - 4613 + 4599 128 229 - 4220 + 4207 229 387 - 4347 + 4334 387 434 - 1306 + 1302 @@ -11675,7 +11674,7 @@ 1 2 - 56101 + 55930 @@ -11691,62 +11690,62 @@ 1 2 - 9088 + 9060 2 3 - 8255 + 8230 3 4 - 2624 + 2616 4 6 - 4625 + 4610 6 9 - 4231 + 4219 9 14 - 4312 + 4299 14 17 - 4231 + 4219 17 22 - 4705 + 4691 22 41 - 4312 + 4299 41 82 - 4266 + 4253 82 157 - 4208 + 4195 158 1895 - 1237 + 1233 @@ -11762,67 +11761,67 @@ 1 2 - 7330 + 7308 2 5 - 2289 + 2282 5 8 - 3410 + 3400 8 15 - 3619 + 3608 15 17 - 2601 + 2593 17 19 - 4243 + 4230 19 34 - 3410 + 3400 34 189 - 3711 + 3700 189 201 - 3700 + 3688 201 266 - 3642 + 3631 266 321 - 3769 + 3757 322 399 - 4046 + 4034 399 435 - 1387 + 1383 @@ -11838,7 +11837,7 @@ 1 2 - 47152 + 47008 2 @@ -11859,67 +11858,67 @@ 1 2 - 7353 + 7331 2 5 - 2647 + 2639 5 8 - 3595 + 3585 8 15 - 3642 + 3631 15 17 - 2902 + 2893 17 19 - 3676 + 3665 19 29 - 3595 + 3585 29 39 - 3757 + 3746 39 48 - 3700 + 3688 48 74 - 3653 + 3642 74 102 - 3538 + 3527 102 119 - 3688 + 3677 119 146 - 1410 + 1406 @@ -11929,15 +11928,15 @@ inmacroexpansion - 109313388 + 109604497 id - 17941927 + 17996941 inv - 2682069 + 2695871 @@ -11951,37 +11950,37 @@ 1 3 - 1566019 + 1578646 3 5 - 1071345 + 1074226 5 6 - 1179815 + 1182860 6 7 - 4800003 + 4812393 7 8 - 6359384 + 6375799 8 9 - 2595250 + 2601948 9 150 - 370109 + 371065 @@ -11997,57 +11996,57 @@ 1 2 - 371856 + 377822 2 3 - 540113 + 543235 3 4 - 349917 + 350956 4 7 - 199815 + 200339 7 8 - 206290 + 206822 8 9 - 240882 + 241503 9 10 - 2201 + 2206 10 11 - 324132 + 324968 11 337 - 223913 + 224493 339 - 422 - 201383 + 423 + 206025 - 422 + 423 7616 - 21563 + 17496 @@ -12057,15 +12056,15 @@ affectedbymacroexpansion - 35540555 + 35632294 id - 5135280 + 5148536 inv - 2773183 + 2780342 @@ -12079,37 +12078,37 @@ 1 2 - 2804214 + 2811452 2 3 - 557797 + 559237 3 4 - 263804 + 264485 4 5 - 563439 + 564894 5 12 - 390272 + 391280 12 50 - 405706 + 406753 50 9900 - 150045 + 150433 @@ -12125,67 +12124,67 @@ 1 4 - 228162 + 228751 4 7 - 230824 + 231419 7 9 - 219560 + 220127 9 12 - 250043 + 250688 12 13 - 332588 + 333446 13 14 - 164899 + 165325 14 15 - 297600 + 298368 15 16 - 121336 + 121649 16 17 - 275457 + 276168 17 18 - 146329 + 146706 18 20 - 251085 + 251734 20 25 - 208109 + 208646 25 109 - 47186 + 47308 @@ -12195,19 +12194,19 @@ macroinvocations - 33889080 + 33818017 id - 33889080 + 33818017 macro_id - 81423 + 81175 location - 778830 + 776461 kind @@ -12225,7 +12224,7 @@ 1 2 - 33889080 + 33818017 @@ -12241,7 +12240,7 @@ 1 2 - 33889080 + 33818017 @@ -12257,7 +12256,7 @@ 1 2 - 33889080 + 33818017 @@ -12273,57 +12272,57 @@ 1 2 - 17575 + 17521 2 3 - 16973 + 16922 3 4 - 3700 + 3688 4 5 - 4879 + 4853 5 8 - 6047 + 6005 8 14 - 6440 + 6432 14 29 - 6313 + 6305 29 73 - 6220 + 6201 73 257 - 6139 + 6097 257 - 5769 - 6116 + 5161 + 6097 - 6272 + 5432 168296 - 1017 + 1048 @@ -12339,37 +12338,37 @@ 1 2 - 43498 + 43366 2 3 - 10649 + 10616 3 4 - 5284 + 5268 4 6 - 7018 + 6997 6 13 - 6636 + 6616 13 66 - 6151 + 6132 66 3614 - 2185 + 2178 @@ -12385,12 +12384,12 @@ 1 2 - 75538 + 75308 2 3 - 5885 + 5867 @@ -12406,37 +12405,37 @@ 1 2 - 321115 + 320046 2 3 - 177878 + 170824 3 4 - 47313 + 50732 4 5 - 59616 + 61717 5 9 - 68542 + 68887 9 23 - 58414 + 58340 23 244365 - 45949 + 45913 @@ -12452,12 +12451,12 @@ 1 2 - 731563 + 729337 2 350 - 47267 + 47123 @@ -12473,7 +12472,7 @@ 1 2 - 778830 + 776461 @@ -12492,8 +12491,8 @@ 11 - 2910469 - 2910470 + 2913248 + 2913249 11 @@ -12546,15 +12545,15 @@ macroparent - 30449647 + 30368148 id - 30449647 + 30368148 parent_id - 23693599 + 23632653 @@ -12568,7 +12567,7 @@ 1 2 - 30449647 + 30368148 @@ -12584,17 +12583,17 @@ 1 2 - 18303643 + 18259095 2 3 - 4539159 + 4525350 3 88 - 850796 + 848207 @@ -12604,15 +12603,15 @@ macrolocationbind - 3984515 + 4036896 id - 2778799 + 2826220 location - 1988392 + 2017729 @@ -12626,22 +12625,22 @@ 1 2 - 2183036 + 2225956 2 3 - 336432 + 340592 3 7 - 229808 + 230144 7 57 - 29522 + 29528 @@ -12657,22 +12656,22 @@ 1 2 - 1589539 + 1608672 2 3 - 169641 + 177047 3 8 - 154228 + 156640 8 723 - 74982 + 75368 @@ -12682,19 +12681,19 @@ macro_argument_unexpanded - 86159621 + 85909146 invocation - 26563044 + 26486648 argument_index - 763 + 760 text - 326029 + 325037 @@ -12708,22 +12707,22 @@ 1 2 - 7435302 + 7413109 2 3 - 10859530 + 10827242 3 4 - 6255563 + 6239771 4 67 - 2012648 + 2006525 @@ -12739,22 +12738,22 @@ 1 2 - 7506504 + 7484094 2 3 - 11009369 + 10976626 3 4 - 6086021 + 6070745 4 67 - 1961148 + 1955182 @@ -12770,7 +12769,7 @@ 41230 41231 - 670 + 668 41432 @@ -12778,8 +12777,8 @@ 57 - 715085 - 2297334 + 715366 + 2297717 34 @@ -12796,7 +12795,7 @@ 2 3 - 670 + 668 13 @@ -12822,57 +12821,57 @@ 1 2 - 40850 + 40726 2 3 - 65594 + 65394 3 4 - 15181 + 15135 4 5 - 45093 + 44945 5 8 - 25576 + 25510 8 12 - 16060 + 16000 12 16 - 22292 + 22213 16 23 - 26512 + 26420 23 43 - 24743 + 24691 43 - 164 - 24454 + 165 + 24391 - 164 + 165 521384 - 19667 + 19608 @@ -12888,17 +12887,17 @@ 1 2 - 235783 + 235066 2 3 - 79712 + 79469 3 9 - 10533 + 10501 @@ -12908,19 +12907,19 @@ macro_argument_expanded - 86159621 + 85909146 invocation - 26563044 + 26486648 argument_index - 763 + 760 text - 197580 + 196979 @@ -12934,22 +12933,22 @@ 1 2 - 7435302 + 7413109 2 3 - 10859530 + 10827242 3 4 - 6255563 + 6239771 4 67 - 2012648 + 2006525 @@ -12965,22 +12964,22 @@ 1 2 - 10745593 + 10713329 2 3 - 9372273 + 9344510 3 4 - 5305941 + 5293039 4 9 - 1139235 + 1135769 @@ -12996,7 +12995,7 @@ 41230 41231 - 670 + 668 41432 @@ -13004,8 +13003,8 @@ 57 - 715085 - 2297334 + 715366 + 2297717 34 @@ -13022,7 +13021,7 @@ 1 2 - 659 + 657 2 @@ -13048,62 +13047,62 @@ 1 2 - 24547 + 24472 2 3 - 41151 + 41025 3 4 - 6925 + 6904 4 5 - 16361 + 16311 5 6 - 2994 + 2985 6 7 - 23286 + 23204 7 9 - 15991 + 15953 9 15 - 16696 + 16622 15 31 - 15586 + 15527 31 97 - 15077 + 15054 97 775 - 15482 + 15446 775 - 1052906 - 3480 + 1052972 + 3469 @@ -13119,17 +13118,17 @@ 1 2 - 99992 + 99688 2 3 - 82834 + 82582 3 66 - 14753 + 14708 @@ -13139,19 +13138,19 @@ functions - 4726519 + 4628077 id - 4726519 + 4628077 name - 1934453 + 1902792 kind - 3293 + 3239 @@ -13165,7 +13164,7 @@ 1 2 - 4726519 + 4628077 @@ -13181,7 +13180,7 @@ 1 2 - 4726519 + 4628077 @@ -13197,22 +13196,22 @@ 1 2 - 1516701 + 1492704 2 3 - 154304 + 151816 3 5 - 151011 + 149038 5 - 1724 - 112435 + 1692 + 109233 @@ -13228,12 +13227,12 @@ 1 2 - 1933982 + 1902329 2 3 - 470 + 462 @@ -13249,37 +13248,37 @@ 6 7 - 470 + 462 64 65 - 470 + 462 173 174 - 470 + 462 195 196 - 470 + 462 - 1358 - 1359 - 470 + 1348 + 1349 + 462 - 2432 - 2433 - 470 + 2400 + 2401 + 462 - 5819 - 5820 - 470 + 5813 + 5814 + 462 @@ -13295,37 +13294,37 @@ 3 4 - 470 + 462 33 34 - 470 + 462 39 40 - 470 + 462 94 95 - 470 + 462 195 196 - 470 + 462 - 244 - 245 - 470 + 243 + 244 + 462 3505 3506 - 470 + 462 @@ -13335,15 +13334,15 @@ function_entry_point - 1177043 + 1158060 id - 1167163 + 1148340 entry_point - 1177043 + 1158060 @@ -13357,12 +13356,12 @@ 1 2 - 1157284 + 1138620 2 3 - 9879 + 9719 @@ -13378,7 +13377,7 @@ 1 2 - 1177043 + 1158060 @@ -13388,15 +13387,15 @@ function_return_type - 4734987 + 4636408 id - 4726519 + 4628077 return_type - 1016622 + 990970 @@ -13410,12 +13409,12 @@ 1 2 - 4719463 + 4621134 2 5 - 7056 + 6942 @@ -13431,22 +13430,22 @@ 1 2 - 523130 + 512842 2 3 - 390465 + 376763 3 - 11 - 78563 + 10 + 74519 - 11 - 2516 - 24462 + 10 + 2506 + 26845 @@ -13768,48 +13767,48 @@ purefunctions - 99447 + 99575 id - 99447 + 99575 function_deleted - 140661 + 138393 id - 140661 + 138393 function_defaulted - 74329 + 73130 id - 74329 + 73130 member_function_this_type - 553316 + 554460 id - 553316 + 554460 this_type - 189579 + 189971 @@ -13823,7 +13822,7 @@ 1 2 - 553316 + 554460 @@ -13839,32 +13838,32 @@ 1 2 - 68486 + 68628 2 3 - 45387 + 45481 3 4 - 30458 + 30521 4 5 - 15528 + 15560 5 7 - 15598 + 15631 7 66 - 14119 + 14149 @@ -13874,27 +13873,27 @@ fun_decls - 5102402 + 5000674 id - 5097227 + 4995583 function - 4578801 + 4485518 type_id - 1013329 + 989581 name - 1836130 + 1806056 location - 3461504 + 3404291 @@ -13908,7 +13907,7 @@ 1 2 - 5097227 + 4995583 @@ -13924,12 +13923,12 @@ 1 2 - 5092052 + 4990491 2 3 - 5174 + 5091 @@ -13945,7 +13944,7 @@ 1 2 - 5097227 + 4995583 @@ -13961,7 +13960,7 @@ 1 2 - 5097227 + 4995583 @@ -13977,17 +13976,17 @@ 1 2 - 4141291 + 4055063 2 3 - 363180 + 357323 3 7 - 74329 + 73130 @@ -14003,12 +14002,12 @@ 1 2 - 4536932 + 4444324 2 5 - 41869 + 41194 @@ -14024,7 +14023,7 @@ 1 2 - 4578801 + 4485518 @@ -14040,17 +14039,17 @@ 1 2 - 4198214 + 4111069 2 4 - 379175 + 373060 4 6 - 1411 + 1388 @@ -14066,22 +14065,22 @@ 1 2 - 445977 + 438785 2 3 - 453505 + 438785 3 - 9 - 79504 + 8 + 74519 - 9 - 2768 - 34342 + 8 + 2758 + 37491 @@ -14097,22 +14096,22 @@ 1 2 - 530657 + 522099 2 3 - 381998 + 368431 3 11 - 77152 + 75908 11 - 2477 - 23522 + 2467 + 23142 @@ -14128,17 +14127,17 @@ 1 2 - 883958 + 862297 2 5 - 90324 + 88867 5 - 822 - 39046 + 821 + 38416 @@ -14154,22 +14153,22 @@ 1 2 - 779520 + 759543 2 3 - 133134 + 130987 3 11 - 78093 + 76833 11 - 2030 - 22581 + 2029 + 22216 @@ -14185,27 +14184,27 @@ 1 2 - 1245257 + 1225174 2 3 - 269562 + 265215 3 4 - 80445 + 79148 4 6 - 138780 + 136541 6 - 1758 - 102085 + 1726 + 99976 @@ -14221,22 +14220,22 @@ 1 2 - 1425906 + 1402910 2 3 - 153363 + 150890 3 5 - 145366 + 143021 5 - 1708 - 111494 + 1676 + 109233 @@ -14252,17 +14251,17 @@ 1 2 - 1615964 + 1589440 2 4 - 135016 + 132839 4 - 954 - 85149 + 938 + 83776 @@ -14278,27 +14277,27 @@ 1 2 - 1266897 + 1246002 2 3 - 296377 + 291598 3 4 - 79504 + 78222 4 8 - 139250 + 137004 8 - 664 - 54100 + 661 + 53228 @@ -14314,17 +14313,17 @@ 1 2 - 2995767 + 2947454 2 4 - 302023 + 297152 4 55 - 163713 + 159684 @@ -14340,17 +14339,17 @@ 1 2 - 3063511 + 3014105 2 6 - 268621 + 264289 6 55 - 129371 + 125896 @@ -14366,12 +14365,12 @@ 1 2 - 3246042 + 3193692 2 27 - 215461 + 210598 @@ -14387,12 +14386,12 @@ 1 2 - 3285559 + 3231646 2 13 - 175944 + 172644 @@ -14402,48 +14401,48 @@ fun_def - 1964090 + 1932415 id - 1964090 + 1932415 fun_specialized - 26344 + 25919 id - 26344 + 25919 fun_implicit - 198 + 199 id - 198 + 199 fun_decl_specifiers - 2937433 + 2890060 id - 1710993 + 1683400 name - 2822 + 2777 @@ -14457,17 +14456,17 @@ 1 2 - 503371 + 495253 2 3 - 1188804 + 1169632 3 4 - 18817 + 18514 @@ -14483,32 +14482,32 @@ 50 51 - 470 + 462 203 204 - 470 + 462 209 210 - 470 + 462 657 658 - 470 + 462 2561 2562 - 470 + 462 2564 2565 - 470 + 462 @@ -14639,26 +14638,26 @@ fun_decl_empty_throws - 1978204 + 1926861 fun_decl - 1978204 + 1926861 fun_decl_noexcept - 61252 + 61185 fun_decl - 61252 + 61185 constant - 61148 + 61080 @@ -14672,7 +14671,7 @@ 1 2 - 61252 + 61185 @@ -14688,7 +14687,7 @@ 1 2 - 61043 + 60976 2 @@ -14703,22 +14702,22 @@ fun_decl_empty_noexcept - 888192 + 873868 fun_decl - 888192 + 873868 fun_decl_typedef_type - 2891 + 2888 fun_decl - 2891 + 2888 typedeftype_id @@ -14736,7 +14735,7 @@ 1 2 - 2891 + 2888 @@ -14752,7 +14751,7 @@ 1 2 - 42 + 41 2 @@ -14812,19 +14811,19 @@ param_decl_bind - 7472483 + 7337161 id - 7472483 + 7337161 index - 7997 + 7868 fun_decl - 4286657 + 4202714 @@ -14838,7 +14837,7 @@ 1 2 - 7472483 + 7337161 @@ -14854,7 +14853,7 @@ 1 2 - 7472483 + 7337161 @@ -14870,72 +14869,72 @@ 2 3 - 940 + 925 5 6 - 470 + 462 7 8 - 470 + 462 10 11 - 940 + 925 11 12 - 470 + 462 12 13 - 940 + 925 13 14 - 470 + 462 25 26 - 470 + 462 78 79 - 470 + 462 245 246 - 470 + 462 636 637 - 470 + 462 1713 1714 - 470 + 462 3991 3992 - 470 + 462 - 9112 - 9113 - 470 + 9080 + 9081 + 462 @@ -14951,72 +14950,72 @@ 2 3 - 940 + 925 5 6 - 470 + 462 7 8 - 470 + 462 10 11 - 940 + 925 11 12 - 470 + 462 12 13 - 940 + 925 13 14 - 470 + 462 25 26 - 470 + 462 78 79 - 470 + 462 245 246 - 470 + 462 636 637 - 470 + 462 1713 1714 - 470 + 462 3991 3992 - 470 + 462 - 9112 - 9113 - 470 + 9080 + 9081 + 462 @@ -15032,22 +15031,22 @@ 1 2 - 2409127 + 2355464 2 3 - 1071664 + 1054381 3 4 - 506664 + 498493 4 18 - 299200 + 294375 @@ -15063,22 +15062,22 @@ 1 2 - 2409127 + 2355464 2 3 - 1071664 + 1054381 3 4 - 506664 + 498493 4 18 - 299200 + 294375 @@ -15088,27 +15087,27 @@ var_decls - 8612362 + 8458657 id - 8543677 + 8391080 variable - 7520468 + 7384372 type_id - 2430768 + 2376755 name - 672730 + 661881 location - 5365378 + 5278849 @@ -15122,7 +15121,7 @@ 1 2 - 8543677 + 8391080 @@ -15138,12 +15137,12 @@ 1 2 - 8474993 + 8323503 2 3 - 68684 + 67576 @@ -15159,7 +15158,7 @@ 1 2 - 8543677 + 8391080 @@ -15175,7 +15174,7 @@ 1 2 - 8543677 + 8391080 @@ -15191,17 +15190,17 @@ 1 2 - 6658620 + 6536424 2 3 - 707072 + 695669 3 7 - 154775 + 152278 @@ -15217,12 +15216,12 @@ 1 2 - 7347346 + 7214042 2 4 - 173122 + 170330 @@ -15238,12 +15237,12 @@ 1 2 - 7403328 + 7269122 2 3 - 117139 + 115250 @@ -15259,12 +15258,12 @@ 1 2 - 6967700 + 6840519 2 4 - 552768 + 543853 @@ -15280,27 +15279,27 @@ 1 2 - 1505881 + 1466784 2 3 - 516073 + 507750 3 4 - 98792 + 97199 4 7 - 188646 + 185604 7 780 - 121373 + 119416 @@ -15316,22 +15315,22 @@ 1 2 - 1640427 + 1599160 2 3 - 491140 + 483219 3 7 - 188176 + 185141 7 742 - 111024 + 109233 @@ -15347,17 +15346,17 @@ 1 2 - 1918928 + 1873170 2 3 - 388584 + 382317 3 128 - 123255 + 121267 @@ -15373,22 +15372,22 @@ 1 2 - 1743924 + 1700988 2 3 - 406931 + 400368 3 8 - 190058 + 186993 8 595 - 89854 + 88405 @@ -15404,37 +15403,37 @@ 1 2 - 343892 + 338346 2 3 - 87502 + 86090 3 4 - 48925 + 48136 4 6 - 52218 + 51376 6 12 - 52689 + 51839 12 33 - 50807 + 49988 34 - 3281 - 36694 + 3249 + 36102 @@ -15450,37 +15449,37 @@ 1 2 - 371648 + 365654 2 3 - 78563 + 77296 3 4 - 45632 + 44896 4 6 - 49866 + 49062 6 14 - 53630 + 52765 14 56 - 51278 + 50451 56 - 3198 - 22110 + 3166 + 21754 @@ -15496,27 +15495,27 @@ 1 2 - 460561 + 453134 2 3 - 94558 + 93033 3 5 - 47044 + 46285 5 19 - 51278 + 50451 19 - 1979 - 19288 + 1947 + 18977 @@ -15532,32 +15531,32 @@ 1 2 - 381998 + 375837 2 3 - 91265 + 89793 3 5 - 60216 + 59245 5 9 - 51748 + 50913 9 21 - 50807 + 49988 21 1020 - 36694 + 36102 @@ -15573,17 +15572,17 @@ 1 2 - 4535991 + 4462838 2 3 - 550415 + 541539 3 - 1783 - 278971 + 1751 + 274472 @@ -15599,17 +15598,17 @@ 1 2 - 4940100 + 4860429 2 17 - 414458 + 407774 17 - 1779 - 10820 + 1747 + 10645 @@ -15625,12 +15624,12 @@ 1 2 - 5016782 + 4935875 2 - 1561 - 348596 + 1529 + 342974 @@ -15646,12 +15645,12 @@ 1 2 - 5361144 + 5274684 2 24 - 4233 + 4165 @@ -15661,26 +15660,26 @@ var_def - 4083897 + 4018035 id - 4083897 + 4018035 var_decl_specifiers - 334953 + 329552 id - 334953 + 329552 name - 1411 + 1388 @@ -15694,7 +15693,7 @@ 1 2 - 334953 + 329552 @@ -15710,17 +15709,17 @@ 15 16 - 470 + 462 66 67 - 470 + 462 631 632 - 470 + 462 @@ -15741,19 +15740,19 @@ type_decls - 3284148 + 3240440 id - 3284148 + 3240440 type_id - 3233340 + 3190452 location - 3204173 + 3161755 @@ -15767,7 +15766,7 @@ 1 2 - 3284148 + 3240440 @@ -15783,7 +15782,7 @@ 1 2 - 3284148 + 3240440 @@ -15799,12 +15798,12 @@ 1 2 - 3191471 + 3149258 2 5 - 41869 + 41194 @@ -15820,12 +15819,12 @@ 1 2 - 3191471 + 3149258 2 5 - 41869 + 41194 @@ -15841,12 +15840,12 @@ 1 2 - 3163244 + 3121487 2 20 - 40928 + 40268 @@ -15862,12 +15861,12 @@ 1 2 - 3163244 + 3121487 2 20 - 40928 + 40268 @@ -15877,45 +15876,45 @@ type_def - 2660813 + 2627159 id - 2660813 + 2627159 type_decl_top - 755998 + 743806 type_decl - 755998 + 743806 namespace_decls - 306973 + 307432 id - 306973 + 307432 namespace_id - 1414 + 1416 location - 306973 + 307432 bodylocation - 306973 + 307432 @@ -15929,7 +15928,7 @@ 1 2 - 306973 + 307432 @@ -15945,7 +15944,7 @@ 1 2 - 306973 + 307432 @@ -15961,7 +15960,7 @@ 1 2 - 306973 + 307432 @@ -15992,12 +15991,12 @@ 6 14 - 106 + 107 14 30 - 106 + 107 30 @@ -16012,21 +16011,21 @@ 80 127 - 106 + 107 129 199 - 106 + 107 201 504 - 106 + 107 512 - 12128 + 12133 69 @@ -16058,12 +16057,12 @@ 6 14 - 106 + 107 14 30 - 106 + 107 30 @@ -16078,21 +16077,21 @@ 80 127 - 106 + 107 129 199 - 106 + 107 201 504 - 106 + 107 512 - 12128 + 12133 69 @@ -16124,12 +16123,12 @@ 6 14 - 106 + 107 14 30 - 106 + 107 30 @@ -16144,21 +16143,21 @@ 80 127 - 106 + 107 129 199 - 106 + 107 201 504 - 106 + 107 512 - 12128 + 12133 69 @@ -16175,7 +16174,7 @@ 1 2 - 306973 + 307432 @@ -16191,7 +16190,7 @@ 1 2 - 306973 + 307432 @@ -16207,7 +16206,7 @@ 1 2 - 306973 + 307432 @@ -16223,7 +16222,7 @@ 1 2 - 306973 + 307432 @@ -16239,7 +16238,7 @@ 1 2 - 306973 + 307432 @@ -16255,7 +16254,7 @@ 1 2 - 306973 + 307432 @@ -16265,19 +16264,19 @@ usings - 374941 + 369357 id - 374941 + 369357 element_id - 318488 + 313815 location - 249804 + 246238 @@ -16291,7 +16290,7 @@ 1 2 - 374941 + 369357 @@ -16307,7 +16306,7 @@ 1 2 - 374941 + 369357 @@ -16323,17 +16322,17 @@ 1 2 - 263917 + 260123 2 3 - 53159 + 52302 3 5 - 1411 + 1388 @@ -16349,17 +16348,17 @@ 1 2 - 263917 + 260123 2 3 - 53159 + 52302 3 5 - 1411 + 1388 @@ -16375,22 +16374,22 @@ 1 2 - 203700 + 200878 2 4 - 11290 + 11108 4 5 - 31519 + 31011 5 11 - 3293 + 3239 @@ -16406,22 +16405,22 @@ 1 2 - 203700 + 200878 2 4 - 11290 + 11108 4 5 - 31519 + 31011 5 11 - 3293 + 3239 @@ -16431,15 +16430,15 @@ using_container - 478100 + 476668 parent - 11296 + 11285 child - 303147 + 302247 @@ -16453,42 +16452,42 @@ 1 2 - 3353 + 3365 2 4 - 959 + 956 4 6 - 427 + 426 6 7 - 2555 + 2547 7 17 - 925 + 922 19 143 - 786 + 783 178 179 - 1329 + 1325 179 183 - 878 + 876 201 @@ -16509,22 +16508,22 @@ 1 2 - 223585 + 222928 2 3 - 52979 + 52818 3 11 - 24396 + 24322 13 41 - 2185 + 2178 @@ -16534,27 +16533,27 @@ static_asserts - 130418 + 130562 id - 130418 + 130562 condition - 130418 + 130562 message - 29456 + 29488 location - 16774 + 16793 enclosing - 1942 + 1944 @@ -16568,7 +16567,7 @@ 1 2 - 130418 + 130562 @@ -16584,7 +16583,7 @@ 1 2 - 130418 + 130562 @@ -16600,7 +16599,7 @@ 1 2 - 130418 + 130562 @@ -16616,7 +16615,7 @@ 1 2 - 130418 + 130562 @@ -16632,7 +16631,7 @@ 1 2 - 130418 + 130562 @@ -16648,7 +16647,7 @@ 1 2 - 130418 + 130562 @@ -16664,7 +16663,7 @@ 1 2 - 130418 + 130562 @@ -16680,7 +16679,7 @@ 1 2 - 130418 + 130562 @@ -16696,7 +16695,7 @@ 1 2 - 21949 + 21973 2 @@ -16706,22 +16705,22 @@ 3 4 - 2766 + 2769 4 11 - 1420 + 1422 12 17 - 2376 + 2379 17 513 - 540 + 541 @@ -16737,7 +16736,7 @@ 1 2 - 21949 + 21973 2 @@ -16747,22 +16746,22 @@ 3 4 - 2766 + 2769 4 11 - 1420 + 1422 12 17 - 2376 + 2379 17 513 - 540 + 541 @@ -16778,12 +16777,12 @@ 1 2 - 27343 + 27373 2 33 - 2112 + 2114 @@ -16799,7 +16798,7 @@ 1 2 - 23363 + 23389 2 @@ -16809,17 +16808,17 @@ 3 4 - 2565 + 2568 4 11 - 1263 + 1265 12 21 - 2074 + 2077 @@ -16835,22 +16834,22 @@ 1 2 - 3131 + 3134 2 3 - 2697 + 2700 3 4 - 1307 + 1309 5 6 - 3621 + 3625 6 @@ -16860,7 +16859,7 @@ 14 15 - 2049 + 2051 16 @@ -16870,12 +16869,12 @@ 17 18 - 3401 + 3405 19 52 - 345 + 346 @@ -16891,22 +16890,22 @@ 1 2 - 3131 + 3134 2 3 - 2697 + 2700 3 4 - 1307 + 1309 5 6 - 3621 + 3625 6 @@ -16916,7 +16915,7 @@ 14 15 - 2049 + 2051 16 @@ -16926,12 +16925,12 @@ 17 18 - 3401 + 3405 19 52 - 345 + 346 @@ -16947,17 +16946,17 @@ 1 2 - 4627 + 4632 2 3 - 5941 + 5948 3 4 - 6023 + 6029 4 @@ -16978,22 +16977,22 @@ 1 2 - 3734 + 3738 2 3 - 6111 + 6118 3 4 - 1081 + 1082 4 5 - 3590 + 3594 5 @@ -17003,7 +17002,7 @@ 13 14 - 2049 + 2051 16 @@ -17024,7 +17023,7 @@ 1 2 - 1370 + 1372 2 @@ -17060,7 +17059,7 @@ 1 2 - 1370 + 1372 2 @@ -17096,12 +17095,12 @@ 1 2 - 1540 + 1542 2 5 - 150 + 151 5 @@ -17127,7 +17126,7 @@ 1 2 - 1527 + 1529 2 @@ -17152,23 +17151,23 @@ params - 6826097 + 6699348 id - 6660502 + 6536424 function - 3940413 + 3860202 index - 7997 + 7868 type_id - 2234594 + 2182819 @@ -17182,7 +17181,7 @@ 1 2 - 6660502 + 6536424 @@ -17198,7 +17197,7 @@ 1 2 - 6660502 + 6536424 @@ -17214,12 +17213,12 @@ 1 2 - 6535365 + 6413305 2 4 - 125137 + 123119 @@ -17235,22 +17234,22 @@ 1 2 - 2303278 + 2249470 2 3 - 960640 + 945147 3 4 - 433276 + 426288 4 18 - 243217 + 239295 @@ -17266,22 +17265,22 @@ 1 2 - 2303278 + 2249470 2 3 - 960640 + 945147 3 4 - 433276 + 426288 4 18 - 243217 + 239295 @@ -17297,22 +17296,22 @@ 1 2 - 2605772 + 2547085 2 3 - 831269 + 817863 3 4 - 349537 + 343900 4 12 - 153834 + 151353 @@ -17328,72 +17327,72 @@ 2 3 - 940 + 925 4 5 - 470 + 462 6 7 - 470 + 462 8 9 - 940 + 925 9 10 - 470 + 462 10 11 - 940 + 925 11 12 - 470 + 462 19 20 - 470 + 462 64 65 - 470 + 462 194 195 - 470 + 462 517 518 - 470 + 462 1438 1439 - 470 + 462 3480 3481 - 470 + 462 - 8376 - 8377 - 470 + 8340 + 8341 + 462 @@ -17409,72 +17408,72 @@ 2 3 - 940 + 925 4 5 - 470 + 462 6 7 - 470 + 462 8 9 - 940 + 925 9 10 - 470 + 462 10 11 - 940 + 925 11 12 - 470 + 462 19 20 - 470 + 462 64 65 - 470 + 462 194 195 - 470 + 462 517 518 - 470 + 462 1438 1439 - 470 + 462 3480 3481 - 470 + 462 - 8376 - 8377 - 470 + 8340 + 8341 + 462 @@ -17490,67 +17489,67 @@ 1 2 - 940 + 925 3 4 - 470 + 462 4 5 - 470 + 462 5 6 - 470 + 462 6 7 - 1411 + 1388 7 8 - 940 + 925 11 12 - 470 + 462 42 43 - 470 + 462 106 107 - 470 + 462 228 229 - 470 + 462 582 583 - 470 + 462 1275 1276 - 470 + 462 - 3666 - 3667 - 470 + 3632 + 3633 + 462 @@ -17566,22 +17565,22 @@ 1 2 - 1525639 + 1485298 2 3 - 446448 + 439248 3 8 - 171710 + 168941 8 - 522 - 90795 + 520 + 89330 @@ -17597,22 +17596,22 @@ 1 2 - 1749099 + 1705154 2 3 - 250745 + 246701 3 9 - 169829 + 167090 9 - 506 - 64920 + 504 + 63873 @@ -17628,17 +17627,17 @@ 1 2 - 1801788 + 1756993 2 3 - 353301 + 347603 3 13 - 79504 + 78222 @@ -17648,15 +17647,15 @@ overrides - 159824 + 160001 new - 125023 + 125162 old - 15095 + 15112 @@ -17670,12 +17669,12 @@ 1 2 - 90229 + 90329 2 3 - 34787 + 34826 3 @@ -17696,37 +17695,37 @@ 1 2 - 7922 + 7930 2 3 - 1905 + 1907 3 4 - 987 + 988 4 5 - 1320 + 1321 5 11 - 1213 + 1214 11 60 - 1163 + 1164 61 231 - 584 + 585 @@ -17736,19 +17735,19 @@ membervariables - 1051873 + 1054757 id - 1050083 + 1052962 type_id - 326294 + 327188 name - 449643 + 450876 @@ -17762,12 +17761,12 @@ 1 2 - 1048373 + 1051247 2 4 - 1710 + 1715 @@ -17783,7 +17782,7 @@ 1 2 - 1050083 + 1052962 @@ -17799,22 +17798,22 @@ 1 2 - 241965 + 242629 2 3 - 51670 + 51812 3 10 - 25417 + 25487 10 4152 - 7239 + 7259 @@ -17830,22 +17829,22 @@ 1 2 - 254137 + 254834 2 3 - 46261 + 46387 3 40 - 24502 + 24570 41 2031 - 1392 + 1396 @@ -17861,22 +17860,22 @@ 1 2 - 294034 + 294840 2 3 - 86157 + 86394 3 5 - 41010 + 41122 5 646 - 28440 + 28518 @@ -17892,17 +17891,17 @@ 1 2 - 366230 + 367234 2 3 - 51511 + 51652 3 650 - 31901 + 31988 @@ -17912,19 +17911,19 @@ globalvariables - 318724 + 300716 id - 318724 + 300708 type_id - 7852 + 1405 name - 86905 + 294738 @@ -17938,7 +17937,12 @@ 1 2 - 318724 + 300700 + + + 2 + 3 + 8 @@ -17954,7 +17958,7 @@ 1 2 - 318724 + 300708 @@ -17970,32 +17974,27 @@ 1 2 - 5130 + 977 2 3 - 209 + 159 3 - 4 - 628 + 7 + 114 - 4 - 9 - 628 + 7 + 77 + 106 - 18 - 31 - 628 - - - 35 - 1226 - 628 + 83 + 169397 + 49 @@ -18011,32 +18010,27 @@ 1 2 - 5130 + 1010 2 3 - 209 + 135 3 - 4 - 628 + 7 + 112 - 4 - 9 - 628 + 7 + 105 + 106 - 14 - 25 - 628 - - - 35 - 209 - 628 + 106 + 168448 + 42 @@ -18052,17 +18046,12 @@ 1 2 - 75911 + 290989 2 - 11 - 6596 - - - 11 - 449 - 4397 + 33 + 3749 @@ -18078,12 +18067,12 @@ 1 2 - 76644 + 294142 2 - 3 - 10261 + 12 + 596 @@ -18093,19 +18082,19 @@ localvariables - 581690 + 581169 id - 581690 + 581169 type_id - 37909 + 37871 name - 91402 + 91320 @@ -18119,7 +18108,7 @@ 1 2 - 581690 + 581169 @@ -18135,7 +18124,7 @@ 1 2 - 581690 + 581169 @@ -18151,32 +18140,32 @@ 1 2 - 21207 + 21188 2 3 - 5413 + 5408 3 4 - 2483 + 2477 4 7 - 3412 + 3409 7 18 - 2874 + 2876 18 15847 - 2517 + 2511 @@ -18192,22 +18181,22 @@ 1 2 - 26994 + 26970 2 3 - 4606 + 4602 3 5 - 2950 + 2943 5 31 - 2845 + 2842 31 @@ -18228,27 +18217,27 @@ 1 2 - 57570 + 57518 2 3 - 14419 + 14406 3 5 - 8388 + 8381 5 15 - 7048 + 7041 15 5176 - 3975 + 3972 @@ -18264,17 +18253,17 @@ 1 2 - 77214 + 77144 2 3 - 7481 + 7474 3 1486 - 6707 + 6701 @@ -18284,15 +18273,15 @@ autoderivation - 149519 + 149355 var - 149519 + 149355 derivation_type - 523 + 522 @@ -18306,7 +18295,7 @@ 1 2 - 149519 + 149355 @@ -18352,19 +18341,19 @@ enumconstants - 240613 + 241273 id - 240613 + 241273 parent - 28401 + 28478 index - 10183 + 10210 type_id @@ -18372,11 +18361,11 @@ name - 240335 + 240994 location - 220605 + 221210 @@ -18390,7 +18379,7 @@ 1 2 - 240613 + 241273 @@ -18406,7 +18395,7 @@ 1 2 - 240613 + 241273 @@ -18422,7 +18411,7 @@ 1 2 - 240613 + 241273 @@ -18438,7 +18427,7 @@ 1 2 - 240613 + 241273 @@ -18454,7 +18443,7 @@ 1 2 - 240613 + 241273 @@ -18470,57 +18459,57 @@ 1 2 - 994 + 997 2 3 - 4017 + 4028 3 4 - 5767 + 5783 4 5 - 3898 + 3908 5 6 - 3062 + 3071 6 7 - 1829 + 1834 7 8 - 1471 + 1475 8 11 - 2585 + 2592 11 17 - 2346 + 2353 17 84 - 2147 + 2153 94 257 - 278 + 279 @@ -18536,57 +18525,57 @@ 1 2 - 994 + 997 2 3 - 4017 + 4028 3 4 - 5767 + 5783 4 5 - 3898 + 3908 5 6 - 3062 + 3071 6 7 - 1829 + 1834 7 8 - 1471 + 1475 8 11 - 2585 + 2592 11 17 - 2346 + 2353 17 84 - 2147 + 2153 94 257 - 278 + 279 @@ -18602,7 +18591,7 @@ 1 2 - 28401 + 28478 @@ -18618,57 +18607,57 @@ 1 2 - 994 + 997 2 3 - 4017 + 4028 3 4 - 5767 + 5783 4 5 - 3898 + 3908 5 6 - 3062 + 3071 6 7 - 1829 + 1834 7 8 - 1471 + 1475 8 11 - 2585 + 2592 11 17 - 2346 + 2353 17 84 - 2147 + 2153 94 257 - 278 + 279 @@ -18684,52 +18673,52 @@ 1 2 - 1431 + 1435 2 3 - 4176 + 4188 3 4 - 5807 + 5823 4 5 - 3858 + 3868 5 6 - 3062 + 3071 6 7 - 1789 + 1794 7 8 - 1392 + 1396 8 11 - 2505 + 2512 11 17 - 2227 + 2233 17 257 - 2147 + 2153 @@ -18745,47 +18734,47 @@ 1 2 - 2028 + 2034 2 3 - 1630 + 1635 3 4 - 1750 + 1755 4 5 - 875 + 877 5 9 - 795 + 797 9 12 - 835 + 837 12 20 - 875 + 877 20 69 - 795 + 797 77 715 - 596 + 598 @@ -18801,47 +18790,47 @@ 1 2 - 2028 + 2034 2 3 - 1630 + 1635 3 4 - 1750 + 1755 4 5 - 875 + 877 5 9 - 795 + 797 9 12 - 835 + 837 12 20 - 875 + 877 20 69 - 795 + 797 77 715 - 596 + 598 @@ -18857,7 +18846,7 @@ 1 2 - 10183 + 10210 @@ -18873,47 +18862,47 @@ 1 2 - 2028 + 2034 2 3 - 1630 + 1635 3 4 - 1750 + 1755 4 5 - 875 + 877 5 9 - 795 + 797 9 12 - 835 + 837 12 20 - 875 + 877 20 69 - 795 + 797 77 712 - 596 + 598 @@ -18929,47 +18918,47 @@ 1 2 - 2028 + 2034 2 3 - 1630 + 1635 3 4 - 1750 + 1755 4 5 - 875 + 877 5 9 - 795 + 797 9 12 - 835 + 837 12 20 - 875 + 877 20 69 - 795 + 797 77 715 - 596 + 598 @@ -19065,12 +19054,12 @@ 1 2 - 240056 + 240714 2 3 - 278 + 279 @@ -19086,12 +19075,12 @@ 1 2 - 240056 + 240714 2 3 - 278 + 279 @@ -19107,7 +19096,7 @@ 1 2 - 240335 + 240994 @@ -19123,7 +19112,7 @@ 1 2 - 240335 + 240994 @@ -19139,12 +19128,12 @@ 1 2 - 240056 + 240714 2 3 - 278 + 279 @@ -19160,12 +19149,12 @@ 1 2 - 219849 + 220452 2 205 - 755 + 757 @@ -19181,7 +19170,7 @@ 1 2 - 220605 + 221210 @@ -19197,12 +19186,12 @@ 1 2 - 219849 + 220452 2 205 - 755 + 757 @@ -19218,7 +19207,7 @@ 1 2 - 220605 + 221210 @@ -19234,12 +19223,12 @@ 1 2 - 219849 + 220452 2 205 - 755 + 757 @@ -19249,31 +19238,31 @@ builtintypes - 22110 + 21754 id - 22110 + 21754 name - 22110 + 21754 kind - 22110 + 21754 size - 3293 + 3239 sign - 1411 + 1388 alignment - 2352 + 2314 @@ -19287,7 +19276,7 @@ 1 2 - 22110 + 21754 @@ -19303,7 +19292,7 @@ 1 2 - 22110 + 21754 @@ -19319,7 +19308,7 @@ 1 2 - 22110 + 21754 @@ -19335,7 +19324,7 @@ 1 2 - 22110 + 21754 @@ -19351,7 +19340,7 @@ 1 2 - 22110 + 21754 @@ -19367,7 +19356,7 @@ 1 2 - 22110 + 21754 @@ -19383,7 +19372,7 @@ 1 2 - 22110 + 21754 @@ -19399,7 +19388,7 @@ 1 2 - 22110 + 21754 @@ -19415,7 +19404,7 @@ 1 2 - 22110 + 21754 @@ -19431,7 +19420,7 @@ 1 2 - 22110 + 21754 @@ -19447,7 +19436,7 @@ 1 2 - 22110 + 21754 @@ -19463,7 +19452,7 @@ 1 2 - 22110 + 21754 @@ -19479,7 +19468,7 @@ 1 2 - 22110 + 21754 @@ -19495,7 +19484,7 @@ 1 2 - 22110 + 21754 @@ -19511,7 +19500,7 @@ 1 2 - 22110 + 21754 @@ -19527,37 +19516,37 @@ 1 2 - 470 + 462 2 3 - 470 + 462 4 5 - 470 + 462 7 8 - 470 + 462 9 10 - 470 + 462 11 12 - 470 + 462 13 14 - 470 + 462 @@ -19573,37 +19562,37 @@ 1 2 - 470 + 462 2 3 - 470 + 462 4 5 - 470 + 462 7 8 - 470 + 462 9 10 - 470 + 462 11 12 - 470 + 462 13 14 - 470 + 462 @@ -19619,37 +19608,37 @@ 1 2 - 470 + 462 2 3 - 470 + 462 4 5 - 470 + 462 7 8 - 470 + 462 9 10 - 470 + 462 11 12 - 470 + 462 13 14 - 470 + 462 @@ -19665,12 +19654,12 @@ 1 2 - 940 + 925 3 4 - 2352 + 2314 @@ -19686,12 +19675,12 @@ 1 2 - 2352 + 2314 2 3 - 940 + 925 @@ -19707,17 +19696,17 @@ 6 7 - 470 + 462 12 13 - 470 + 462 29 30 - 470 + 462 @@ -19733,17 +19722,17 @@ 6 7 - 470 + 462 12 13 - 470 + 462 29 30 - 470 + 462 @@ -19759,17 +19748,17 @@ 6 7 - 470 + 462 12 13 - 470 + 462 29 30 - 470 + 462 @@ -19785,12 +19774,12 @@ 5 6 - 940 + 925 7 8 - 470 + 462 @@ -19806,7 +19795,7 @@ 5 6 - 1411 + 1388 @@ -19822,27 +19811,27 @@ 4 5 - 470 + 462 8 9 - 470 + 462 10 11 - 470 + 462 12 13 - 470 + 462 13 14 - 470 + 462 @@ -19858,27 +19847,27 @@ 4 5 - 470 + 462 8 9 - 470 + 462 10 11 - 470 + 462 12 13 - 470 + 462 13 14 - 470 + 462 @@ -19894,27 +19883,27 @@ 4 5 - 470 + 462 8 9 - 470 + 462 10 11 - 470 + 462 12 13 - 470 + 462 13 14 - 470 + 462 @@ -19930,12 +19919,12 @@ 1 2 - 470 + 462 2 3 - 1881 + 1851 @@ -19951,7 +19940,7 @@ 3 4 - 2352 + 2314 @@ -19961,23 +19950,23 @@ derivedtypes - 4413676 + 4324907 id - 4413676 + 4324907 name - 2205427 + 2161065 kind - 2822 + 2777 type_id - 2729498 + 2666964 @@ -19991,7 +19980,7 @@ 1 2 - 4413676 + 4324907 @@ -20007,7 +19996,7 @@ 1 2 - 4413676 + 4324907 @@ -20023,7 +20012,7 @@ 1 2 - 4413676 + 4324907 @@ -20039,17 +20028,17 @@ 1 2 - 1935864 + 1901404 2 5 - 171240 + 162924 5 - 1173 - 98322 + 1167 + 96736 @@ -20065,12 +20054,12 @@ 1 2 - 2204486 + 2160139 2 3 - 940 + 925 @@ -20086,17 +20075,17 @@ 1 2 - 1935864 + 1901404 2 5 - 171240 + 162924 5 - 1155 - 98322 + 1149 + 96736 @@ -20110,34 +20099,34 @@ 12 - 199 - 200 - 470 + 236 + 237 + 462 - 1103 - 1104 - 470 + 1085 + 1086 + 462 - 1154 - 1155 - 470 + 1148 + 1149 + 462 - 1223 - 1224 - 470 + 1220 + 1221 + 462 - 2193 - 2194 - 470 + 2177 + 2178 + 462 - 3510 - 3511 - 470 + 3478 + 3479 + 462 @@ -20153,32 +20142,32 @@ 1 2 - 470 + 462 - 164 - 165 - 470 + 201 + 202 + 462 - 611 - 612 - 470 + 609 + 610 + 462 - 783 - 784 - 470 + 768 + 769 + 462 - 1149 - 1150 - 470 + 1136 + 1137 + 462 - 1982 - 1983 - 470 + 1956 + 1957 + 462 @@ -20194,32 +20183,32 @@ 84 85 - 470 + 462 - 1103 - 1104 - 470 + 1085 + 1086 + 462 - 1154 - 1155 - 470 + 1148 + 1149 + 462 - 1223 - 1224 - 470 + 1220 + 1221 + 462 - 2148 - 2149 - 470 + 2132 + 2133 + 462 - 3510 - 3511 - 470 + 3478 + 3479 + 462 @@ -20235,22 +20224,22 @@ 1 2 - 1686060 + 1649148 2 3 - 568763 + 558201 3 4 - 367414 + 354083 4 - 54 - 107260 + 72 + 105530 @@ -20266,22 +20255,22 @@ 1 2 - 1697350 + 1660257 2 3 - 561236 + 550796 3 4 - 364591 + 351306 4 - 54 - 106319 + 72 + 104605 @@ -20297,22 +20286,22 @@ 1 2 - 1690294 + 1653314 2 3 - 572526 + 561904 3 4 - 366473 + 353157 4 6 - 100203 + 98587 @@ -20322,19 +20311,19 @@ pointerishsize - 3312399 + 3208041 id - 3312399 + 3208041 size - 35 + 462 alignment - 35 + 462 @@ -20348,7 +20337,7 @@ 1 2 - 3312399 + 3208041 @@ -20364,7 +20353,7 @@ 1 2 - 3312399 + 3208041 @@ -20378,9 +20367,9 @@ 12 - 94071 - 94072 - 35 + 6931 + 6932 + 462 @@ -20396,7 +20385,7 @@ 1 2 - 35 + 462 @@ -20410,9 +20399,9 @@ 12 - 94071 - 94072 - 35 + 6931 + 6932 + 462 @@ -20428,7 +20417,7 @@ 1 2 - 35 + 462 @@ -20438,23 +20427,23 @@ arraysizes - 71507 + 87479 id - 71507 + 87479 num_elements - 23522 + 31474 bytesize - 26344 + 32862 alignment - 1881 + 1851 @@ -20468,7 +20457,7 @@ 1 2 - 71507 + 87479 @@ -20484,7 +20473,7 @@ 1 2 - 71507 + 87479 @@ -20500,7 +20489,7 @@ 1 2 - 71507 + 87479 @@ -20516,32 +20505,27 @@ 1 2 - 2352 + 1851 2 3 - 15054 + 23605 3 - 4 - 1411 + 5 + 2777 - 4 - 6 - 1881 + 5 + 13 + 2777 - 6 - 11 - 1881 - - - 12 + 13 14 - 940 + 462 @@ -20557,22 +20541,17 @@ 1 2 - 18347 + 26382 2 3 - 2352 + 2314 3 - 4 - 1881 - - - 4 7 - 940 + 2777 @@ -20588,22 +20567,17 @@ 1 2 - 18347 + 26382 2 3 - 2822 + 2777 3 - 4 - 1411 - - - 4 5 - 940 + 2314 @@ -20619,27 +20593,27 @@ 1 2 - 2822 + 1851 2 3 - 16935 + 23605 3 4 - 3293 + 3239 4 - 8 - 2352 + 6 + 2314 - 11 + 7 16 - 940 + 1851 @@ -20655,17 +20629,17 @@ 1 2 - 21640 + 27308 2 3 - 3293 + 3702 3 5 - 1411 + 1851 @@ -20681,17 +20655,17 @@ 1 2 - 22110 + 27308 2 3 - 3293 + 4628 4 5 - 940 + 925 @@ -20707,22 +20681,22 @@ 5 6 - 470 + 462 16 17 - 470 + 462 31 32 - 470 + 462 - 100 - 101 - 470 + 137 + 138 + 462 @@ -20738,17 +20712,17 @@ 4 5 - 470 + 462 7 8 - 940 + 925 - 50 - 51 - 470 + 68 + 69 + 462 @@ -20764,22 +20738,22 @@ 4 5 - 470 + 462 7 8 - 470 + 462 8 9 - 470 + 462 - 50 - 51 - 470 + 68 + 69 + 462 @@ -20789,15 +20763,15 @@ typedefbase - 1736730 + 1722225 id - 1736730 + 1722225 type_id - 810523 + 809049 @@ -20811,7 +20785,7 @@ 1 2 - 1736730 + 1722225 @@ -20827,22 +20801,22 @@ 1 2 - 629130 + 629268 2 3 - 85019 + 85025 3 6 - 64576 + 63319 6 - 5443 - 31797 + 5437 + 31435 @@ -20852,23 +20826,23 @@ decltypes - 355894 + 172290 id - 23951 + 17347 expr - 355894 + 172290 base_type - 17180 + 10357 parentheses_would_change_meaning - 18 + 19 @@ -20882,37 +20856,37 @@ 1 2 - 5960 + 5307 2 3 - 7491 + 6436 3 - 4 - 3259 + 5 + 1128 - 4 - 7 - 1999 + 5 + 12 + 1346 - 7 + 12 18 - 1980 + 1406 18 - 42 - 2035 + 46 + 1307 - 42 - 1767 - 1224 + 51 + 740 + 415 @@ -20928,7 +20902,7 @@ 1 2 - 23951 + 17347 @@ -20944,7 +20918,7 @@ 1 2 - 23951 + 17347 @@ -20960,7 +20934,7 @@ 1 2 - 355894 + 172290 @@ -20976,7 +20950,7 @@ 1 2 - 355894 + 172290 @@ -20992,7 +20966,7 @@ 1 2 - 355894 + 172290 @@ -21008,17 +20982,17 @@ 1 2 - 14479 + 7525 2 3 - 2215 + 2356 - 3 + 4 149 - 486 + 475 @@ -21034,37 +21008,37 @@ 1 2 - 1800 + 752 2 3 - 7347 + 6376 3 4 - 3079 + 356 4 5 - 1422 + 1009 5 - 11 - 1368 + 7 + 792 - 11 - 43 - 1566 + 7 + 31 + 792 - 43 - 6569 - 594 + 31 + 3872 + 277 @@ -21080,7 +21054,7 @@ 1 2 - 17180 + 10357 @@ -21094,9 +21068,9 @@ 12 - 1330 - 1331 - 18 + 876 + 877 + 19 @@ -21110,9 +21084,9 @@ 12 - 19762 - 19763 - 18 + 8700 + 8701 + 19 @@ -21126,9 +21100,9 @@ 12 - 954 - 955 - 18 + 523 + 524 + 19 @@ -21138,19 +21112,19 @@ usertypes - 5343268 + 5230250 id - 5343268 + 5230250 name - 1383096 + 1349682 kind - 5174 + 5091 @@ -21164,7 +21138,7 @@ 1 2 - 5343268 + 5230250 @@ -21180,7 +21154,7 @@ 1 2 - 5343268 + 5230250 @@ -21196,27 +21170,27 @@ 1 2 - 1002039 + 980787 2 3 - 161361 + 154593 3 7 - 107730 + 104605 7 - 80 - 104437 + 66 + 101365 - 80 - 885 - 7527 + 79 + 886 + 8331 @@ -21232,17 +21206,17 @@ 1 2 - 1240552 + 1209437 2 3 - 127019 + 124970 3 7 - 15524 + 15274 @@ -21258,57 +21232,57 @@ 6 7 - 470 + 462 10 11 - 470 + 462 26 27 - 470 + 462 124 125 - 470 + 462 - 139 - 140 - 470 + 136 + 137 + 462 - 700 - 701 - 470 + 664 + 665 + 462 861 862 - 470 + 462 963 964 - 470 + 462 - 1762 - 1763 - 470 + 1756 + 1757 + 462 - 1899 - 1900 - 470 + 1868 + 1869 + 462 - 4868 - 4869 - 470 + 4886 + 4887 + 462 @@ -21324,57 +21298,57 @@ 5 6 - 470 + 462 6 7 - 470 + 462 14 15 - 470 + 462 30 31 - 470 + 462 44 45 - 470 + 462 126 127 - 470 + 462 - 269 - 270 - 470 + 268 + 269 + 462 373 374 - 470 + 462 433 434 - 470 + 462 748 749 - 470 + 462 - 1236 - 1237 - 470 + 1212 + 1213 + 462 @@ -21384,19 +21358,19 @@ usertypesize - 1755685 + 1711634 id - 1755685 + 1711634 size - 13642 + 13422 alignment - 2352 + 2314 @@ -21410,7 +21384,7 @@ 1 2 - 1755685 + 1711634 @@ -21426,7 +21400,7 @@ 1 2 - 1755685 + 1711634 @@ -21442,47 +21416,47 @@ 1 2 - 3293 + 3239 2 3 - 4233 + 4165 3 4 - 470 + 462 4 5 - 940 + 925 6 8 - 940 + 925 9 15 - 940 + 925 37 84 - 940 + 925 92 163 - 940 + 925 748 - 2539 - 940 + 2505 + 925 @@ -21498,17 +21472,17 @@ 1 2 - 10349 + 10182 2 3 - 2822 + 2777 3 4 - 470 + 462 @@ -21524,27 +21498,27 @@ 2 3 - 470 + 462 6 7 - 470 + 462 184 185 - 470 + 462 254 255 - 470 + 462 - 3286 - 3287 - 470 + 3252 + 3253 + 462 @@ -21560,27 +21534,27 @@ 1 2 - 470 + 462 2 3 - 470 + 462 3 4 - 470 + 462 9 10 - 470 + 462 22 23 - 470 + 462 @@ -21590,26 +21564,26 @@ usertype_final - 9528 + 9517 id - 9528 + 9517 usertype_uuid - 36101 + 36167 id - 36101 + 36167 uuid - 35737 + 35795 @@ -21623,7 +21597,7 @@ 1 2 - 36101 + 36167 @@ -21639,12 +21613,12 @@ 1 2 - 35372 + 35424 2 3 - 364 + 371 @@ -21654,15 +21628,15 @@ mangled_name - 5301398 + 5184427 id - 5301398 + 5184427 mangled_name - 1272072 + 1244614 @@ -21676,7 +21650,7 @@ 1 2 - 5301398 + 5184427 @@ -21692,32 +21666,32 @@ 1 2 - 767759 + 754452 2 3 - 178297 + 174495 3 4 - 84679 + 81925 4 7 - 114787 + 110622 7 - 25 - 95499 + 26 + 97662 - 25 - 885 - 31049 + 26 + 886 + 25456 @@ -21727,59 +21701,59 @@ is_pod_class - 554216 + 534132 id - 554216 + 534132 is_standard_layout_class - 1296064 + 1259425 id - 1296064 + 1259425 is_complete - 1694528 + 1651463 id - 1694528 + 1651463 is_class_template - 405049 + 398517 id - 405049 + 398517 class_instantiation - 1122001 + 1092104 to - 1122001 + 1090870 from - 170770 + 70259 @@ -21793,7 +21767,12 @@ 1 2 - 1122001 + 1089729 + + + 2 + 4 + 1141 @@ -21809,42 +21788,47 @@ 1 2 - 58805 + 20818 2 3 - 30108 + 12772 3 4 - 16465 + 7089 4 5 - 14583 + 4887 5 7 - 15524 + 5717 7 - 13 - 13172 + 10 + 5175 - 13 - 29 - 13172 + 10 + 17 + 5475 - 30 - 84 - 8938 + 17 + 66 + 5279 + + + 66 + 3994 + 3043 @@ -21854,19 +21838,19 @@ class_template_argument - 2977520 + 2918536 type_id - 1355443 + 1329545 index - 1295 + 1291 arg_type - 863214 + 856542 @@ -21880,27 +21864,27 @@ 1 2 - 551453 + 544138 2 3 - 411511 + 404518 3 4 - 245970 + 235642 4 7 - 122331 + 121141 7 113 - 24177 + 24103 @@ -21916,22 +21900,22 @@ 1 2 - 577306 + 569833 2 3 - 424854 + 416288 3 4 - 257833 + 248830 4 113 - 95448 + 94593 @@ -21952,31 +21936,31 @@ 2 3 - 820 + 818 3 26 - 104 + 103 29 64 - 104 + 103 69 411 - 104 + 103 592 - 8835 - 104 + 8747 + 103 - 13776 - 114840 + 12910 + 113008 46 @@ -21998,7 +21982,7 @@ 2 3 - 820 + 818 3 @@ -22008,21 +21992,21 @@ 14 26 - 104 + 103 28 145 - 104 + 103 195 - 4197 - 104 + 3442 + 103 - 10467 - 39739 + 10455 + 39609 34 @@ -22039,27 +22023,27 @@ 1 2 - 535542 + 533452 2 3 - 181034 + 179089 3 4 - 52563 + 51746 4 10 - 65675 + 64334 10 - 11334 - 28397 + 10167 + 27919 @@ -22075,17 +22059,17 @@ 1 2 - 755532 + 755723 2 3 - 85724 + 82570 3 22 - 21957 + 18247 @@ -22095,19 +22079,19 @@ class_template_argument_value - 508546 + 494790 type_id - 316606 + 305946 index - 1881 + 1851 arg_value - 508546 + 494790 @@ -22121,17 +22105,17 @@ 1 2 - 261094 + 251329 2 3 - 53630 + 52765 3 4 - 1881 + 1851 @@ -22147,22 +22131,22 @@ 1 2 - 200407 + 191621 2 3 - 81856 + 80536 3 - 5 - 29167 + 4 + 12034 - 5 + 4 9 - 5174 + 21754 @@ -22178,22 +22162,22 @@ 18 19 - 470 + 462 92 93 - 470 + 462 - 309 - 310 - 470 + 297 + 298 + 462 376 377 - 470 + 462 @@ -22209,22 +22193,22 @@ 19 20 - 470 + 462 124 125 - 470 + 462 - 425 - 426 - 470 + 413 + 414 + 462 513 514 - 470 + 462 @@ -22240,7 +22224,7 @@ 1 2 - 508546 + 494790 @@ -22256,7 +22240,7 @@ 1 2 - 508546 + 494790 @@ -22266,15 +22250,15 @@ is_proxy_class_for - 65391 + 62948 id - 65391 + 62948 templ_param_id - 65391 + 62948 @@ -22288,7 +22272,7 @@ 1 2 - 65391 + 62948 @@ -22304,7 +22288,7 @@ 1 2 - 65391 + 62948 @@ -22314,19 +22298,19 @@ type_mentions - 4011511 + 4022510 id - 4011511 + 4022510 type_id - 197335 + 197876 location - 3978138 + 3989045 kind @@ -22344,7 +22328,7 @@ 1 2 - 4011511 + 4022510 @@ -22360,7 +22344,7 @@ 1 2 - 4011511 + 4022510 @@ -22376,7 +22360,7 @@ 1 2 - 4011511 + 4022510 @@ -22392,42 +22376,42 @@ 1 2 - 97176 + 97442 2 3 - 21638 + 21698 3 4 - 8194 + 8216 4 5 - 10739 + 10769 5 7 - 14319 + 14359 7 12 - 15791 + 15834 12 27 - 15115 + 15156 27 8555 - 14359 + 14399 @@ -22443,42 +22427,42 @@ 1 2 - 97176 + 97442 2 3 - 21638 + 21698 3 4 - 8194 + 8216 4 5 - 10739 + 10769 5 7 - 14319 + 14359 7 12 - 15791 + 15834 12 27 - 15115 + 15156 27 8555 - 14359 + 14399 @@ -22494,7 +22478,7 @@ 1 2 - 197335 + 197876 @@ -22510,12 +22494,12 @@ 1 2 - 3944765 + 3955580 2 3 - 33373 + 33464 @@ -22531,12 +22515,12 @@ 1 2 - 3944765 + 3955580 2 3 - 33373 + 33464 @@ -22552,7 +22536,7 @@ 1 2 - 3978138 + 3989045 @@ -22610,26 +22594,26 @@ is_function_template - 1413674 + 1390876 id - 1413674 + 1390876 function_instantiation - 905891 + 907164 to - 905891 + 907164 from - 145917 + 146148 @@ -22643,7 +22627,7 @@ 1 2 - 905891 + 907164 @@ -22659,27 +22643,27 @@ 1 2 - 101092 + 101266 2 3 - 14472 + 14466 3 6 - 12007 + 12032 6 21 - 12042 + 12067 22 869 - 6302 + 6315 @@ -22689,19 +22673,19 @@ function_template_argument - 2338443 + 2342325 function_id - 1317621 + 1319745 index - 563 + 564 arg_type - 304862 + 304999 @@ -22715,22 +22699,22 @@ 1 2 - 679268 + 680426 2 3 - 387856 + 388305 3 4 - 179861 + 180233 4 15 - 70634 + 70780 @@ -22746,22 +22730,22 @@ 1 2 - 694445 + 695633 2 3 - 393173 + 393633 3 4 - 150882 + 151194 4 9 - 79120 + 79284 @@ -22820,13 +22804,13 @@ 35 - 17489 - 17490 + 17479 + 17480 35 - 34459 - 34460 + 34442 + 34443 35 @@ -22886,13 +22870,13 @@ 35 - 2404 - 2405 + 2397 + 2398 35 - 5842 - 5843 + 5835 + 5836 35 @@ -22909,32 +22893,32 @@ 1 2 - 186868 + 187007 2 3 - 44824 + 44670 3 5 - 23204 + 23287 5 16 - 23521 + 23534 16 107 - 22993 + 23040 108 955 - 3450 + 3457 @@ -22950,17 +22934,17 @@ 1 2 - 274756 + 274830 2 4 - 25986 + 26039 4 17 - 4119 + 4128 @@ -22970,19 +22954,19 @@ function_template_argument_value - 362786 + 363536 function_id - 181234 + 181609 index - 563 + 564 arg_value - 360145 + 360889 @@ -22996,12 +22980,12 @@ 1 2 - 171868 + 172223 2 8 - 9366 + 9385 @@ -23017,17 +23001,17 @@ 1 2 - 151339 + 151652 2 3 - 20669 + 20711 3 97 - 9225 + 9244 @@ -23165,12 +23149,12 @@ 1 2 - 357504 + 358243 2 3 - 2640 + 2646 @@ -23186,7 +23170,7 @@ 1 2 - 360145 + 360889 @@ -23196,26 +23180,26 @@ is_variable_template - 47326 + 47274 id - 47326 + 47274 variable_instantiation - 258309 + 168076 to - 258309 + 168076 from - 26281 + 25729 @@ -23229,7 +23213,7 @@ 1 2 - 258309 + 168076 @@ -23245,42 +23229,37 @@ 1 2 - 11203 + 14015 2 3 - 3559 + 2719 3 4 - 1675 + 1359 4 - 6 - 1884 + 7 + 1987 - 6 - 8 - 1884 + 7 + 10 + 2196 - 8 - 14 - 2408 + 10 + 22 + 1987 - 15 - 26 - 1989 - - - 32 - 371 - 1675 + 26 + 277 + 1464 @@ -23290,19 +23269,19 @@ variable_template_argument - 448035 + 295468 variable_id - 247943 + 159709 index - 1779 + 1778 arg_type - 217578 + 165462 @@ -23316,22 +23295,22 @@ 1 2 - 119469 + 81894 2 3 - 99889 + 49575 3 4 - 18218 + 18826 4 17 - 10365 + 9413 @@ -23347,273 +23326,22 @@ 1 2 - 129206 + 85555 2 3 - 91408 + 51876 3 - 5 - 22825 - - - 5 - 17 - 4502 - - - - - - - index - variable_id - - - 12 - - - 11 - 12 - 104 - - - 22 - 23 - 628 - - - 29 - 30 - 104 - - - 30 - 31 - 314 - - - 44 - 45 - 104 - - - 93 - 94 - 104 - - - 222 - 223 - 104 - - - 588 - 589 - 104 - - - 1090 - 1091 - 104 - - - 1974 - 1975 - 104 - - - - - - - index - arg_type - - - 12 - - - 1 - 2 - 104 - - - 12 - 13 - 628 - - - 13 - 14 - 104 - - - 14 - 15 - 314 - - - 24 - 25 - 104 - - - 32 - 33 - 104 - - - 128 - 129 - 104 - - - 437 - 438 - 104 - - - 640 - 641 - 104 - - - 897 - 898 - 104 - - - - - - - arg_type - variable_id - - - 12 - - - 1 - 2 - 171403 - - - 2 - 3 - 25024 - - - 3 - 8 - 17067 - - - 8 - 94 - 4083 - - - - - - - arg_type - index - - - 12 - - - 1 - 2 - 200302 - - - 2 - 5 - 16857 - - - 5 - 6 - 418 - - - - - - - - - variable_template_argument_value - 15810 - - - variable_id - 6596 - - - index - 418 - - - arg_value - 12041 - - - - - variable_id - index - - - 12 - - - 1 - 2 - 5968 - - - 2 - 3 - 628 - - - - - - - variable_id - arg_value - - - 12 - - - 1 - 2 - 314 - - - 2 - 3 - 5235 + 4 + 13701 4 - 5 - 837 - - - 8 - 9 - 209 + 17 + 8576 @@ -23631,19 +23359,255 @@ 7 104 + + 12 + 13 + 627 + 19 20 + 418 + + + 40 + 41 104 - 20 - 21 + 86 + 87 104 - 24 - 25 + 178 + 179 + 104 + + + 540 + 541 + 104 + + + 609 + 610 + 104 + + + 1218 + 1219 + 104 + + + + + + + index + arg_type + + + 12 + + + 1 + 2 + 104 + + + 7 + 8 + 627 + + + 9 + 10 + 418 + + + 26 + 27 + 104 + + + 45 + 46 + 104 + + + 127 + 128 + 104 + + + 372 + 373 + 104 + + + 388 + 389 + 104 + + + 729 + 730 + 104 + + + + + + + arg_type + variable_id + + + 12 + + + 1 + 2 + 133352 + + + 2 + 3 + 18094 + + + 3 + 15 + 12446 + + + 17 + 109 + 1568 + + + + + + + arg_type + index + + + 12 + + + 1 + 2 + 149564 + + + 2 + 3 + 13805 + + + 3 + 6 + 2091 + + + + + + + + + variable_template_argument_value + 11818 + + + variable_id + 7739 + + + index + 418 + + + arg_value + 11818 + + + + + variable_id + index + + + 12 + + + 1 + 2 + 7321 + + + 2 + 3 + 418 + + + + + + + variable_id + arg_value + + + 12 + + + 1 + 2 + 4288 + + + 2 + 3 + 3137 + + + 4 + 5 + 313 + + + + + + + index + variable_id + + + 12 + + + 4 + 5 + 104 + + + 18 + 19 + 104 + + + 26 + 27 + 104 + + + 30 + 31 104 @@ -23658,23 +23622,23 @@ 12 - 12 - 13 + 7 + 8 104 - 30 - 31 + 27 + 28 104 - 33 - 34 + 38 + 39 104 - 40 - 41 + 41 + 42 104 @@ -23691,12 +23655,7 @@ 1 2 - 8271 - - - 2 - 3 - 3769 + 11818 @@ -23712,7 +23671,7 @@ 1 2 - 12041 + 11818 @@ -23722,15 +23681,15 @@ routinetypes - 546661 + 547156 id - 546661 + 547156 return_type - 285778 + 285769 @@ -23744,7 +23703,7 @@ 1 2 - 546661 + 547156 @@ -23760,17 +23719,17 @@ 1 2 - 249087 + 249002 2 3 - 21303 + 21347 3 3594 - 15387 + 15419 @@ -23780,19 +23739,19 @@ routinetypeargs - 993571 + 975696 routine - 429042 + 420271 index - 7997 + 7868 type_id - 229575 + 224947 @@ -23806,27 +23765,27 @@ 1 2 - 155715 + 151353 2 3 - 135486 + 133301 3 4 - 63979 + 62948 4 5 - 46103 + 45359 5 18 - 27756 + 27308 @@ -23842,27 +23801,27 @@ 1 2 - 185824 + 180975 2 3 - 135016 + 132839 3 4 - 59275 + 58319 4 5 - 33871 + 33325 5 11 - 15054 + 14811 @@ -23878,67 +23837,67 @@ 2 3 - 940 + 925 4 5 - 470 + 462 6 7 - 470 + 462 8 9 - 940 + 925 9 10 - 470 + 462 10 11 - 1411 + 1388 13 14 - 470 + 462 28 29 - 470 + 462 59 60 - 470 + 462 157 158 - 470 + 462 293 294 - 470 + 462 581 582 - 470 + 462 - 912 - 913 - 470 + 908 + 909 + 462 @@ -23954,57 +23913,57 @@ 1 2 - 940 + 925 3 4 - 940 + 925 4 5 - 1411 + 1388 5 6 - 940 + 925 6 7 - 940 + 925 10 11 - 470 + 462 14 15 - 470 + 462 47 48 - 470 + 462 90 91 - 470 + 462 176 177 - 470 + 462 - 349 - 350 - 470 + 347 + 348 + 462 @@ -24020,27 +23979,27 @@ 1 2 - 148659 + 145336 2 3 - 31049 + 30548 3 5 - 16935 + 16662 5 12 - 18347 + 18051 12 - 113 - 14583 + 111 + 14348 @@ -24056,22 +24015,22 @@ 1 2 - 175004 + 171255 2 3 - 31049 + 30548 3 6 - 18817 + 18514 6 14 - 4704 + 4628 @@ -24081,19 +24040,19 @@ ptrtomembers - 38105 + 37491 id - 38105 + 37491 type_id - 38105 + 37491 class_id - 15524 + 15274 @@ -24107,7 +24066,7 @@ 1 2 - 38105 + 37491 @@ -24123,7 +24082,7 @@ 1 2 - 38105 + 37491 @@ -24139,7 +24098,7 @@ 1 2 - 38105 + 37491 @@ -24155,7 +24114,7 @@ 1 2 - 38105 + 37491 @@ -24171,17 +24130,17 @@ 1 2 - 13642 + 13422 8 9 - 1411 + 1388 28 29 - 470 + 462 @@ -24197,17 +24156,17 @@ 1 2 - 13642 + 13422 8 9 - 1411 + 1388 28 29 - 470 + 462 @@ -24217,15 +24176,15 @@ specifiers - 24933 + 24531 id - 24933 + 24531 str - 24933 + 24531 @@ -24239,7 +24198,7 @@ 1 2 - 24933 + 24531 @@ -24255,7 +24214,7 @@ 1 2 - 24933 + 24531 @@ -24265,15 +24224,15 @@ typespecifiers - 1317234 + 1287196 type_id - 1298887 + 1269145 spec_id - 3763 + 3702 @@ -24287,12 +24246,12 @@ 1 2 - 1280540 + 1251094 2 3 - 18347 + 18051 @@ -24308,42 +24267,42 @@ 8 9 - 470 + 462 36 37 - 470 + 462 51 52 - 470 + 462 86 87 - 470 + 462 105 106 - 470 + 462 219 220 - 470 + 462 - 226 - 227 - 470 + 223 + 224 + 462 - 2069 - 2070 - 470 + 2053 + 2054 + 462 @@ -24353,15 +24312,15 @@ funspecifiers - 13041848 + 12354933 func_id - 3972829 + 3802185 spec_id - 704 + 705 @@ -24375,27 +24334,27 @@ 1 2 - 314792 + 315090 2 3 - 544231 + 545110 3 4 - 1144767 + 1147133 4 5 - 1731112 + 1556434 5 8 - 237925 + 238417 @@ -24439,8 +24398,8 @@ 35 - 716 - 717 + 709 + 710 35 @@ -24484,23 +24443,23 @@ 35 - 52896 - 52897 + 47844 + 47845 35 - 79931 - 79932 + 74862 + 74863 35 - 91328 - 91329 + 86276 + 86277 35 - 99658 - 99659 + 94606 + 94607 35 @@ -24511,15 +24470,15 @@ varspecifiers - 2347970 + 2310104 var_id - 1255136 + 1234894 spec_id - 3763 + 3702 @@ -24533,22 +24492,22 @@ 1 2 - 735769 + 723903 2 3 - 203230 + 199952 3 4 - 58805 + 57856 4 5 - 257331 + 253181 @@ -24564,42 +24523,42 @@ 112 113 - 470 + 462 315 316 - 470 + 462 414 415 - 470 + 462 560 561 - 470 + 462 692 693 - 470 + 462 700 701 - 470 + 462 732 733 - 470 + 462 1466 1467 - 470 + 462 @@ -24609,19 +24568,19 @@ attributes - 696502 + 695736 id - 696502 + 695736 kind - 314 + 313 name - 1675 + 1673 name_space @@ -24629,7 +24588,7 @@ location - 483949 + 483417 @@ -24643,7 +24602,7 @@ 1 2 - 696502 + 695736 @@ -24659,7 +24618,7 @@ 1 2 - 696502 + 695736 @@ -24675,7 +24634,7 @@ 1 2 - 696502 + 695736 @@ -24691,7 +24650,7 @@ 1 2 - 696502 + 695736 @@ -24887,7 +24846,7 @@ 1 2 - 1465 + 1464 2 @@ -24908,7 +24867,7 @@ 1 2 - 1675 + 1673 @@ -24924,7 +24883,7 @@ 1 2 - 314 + 313 2 @@ -25084,17 +25043,17 @@ 1 2 - 442591 + 442104 2 9 - 36856 + 36815 9 201 - 4502 + 4497 @@ -25110,7 +25069,7 @@ 1 2 - 483949 + 483417 @@ -25126,12 +25085,12 @@ 1 2 - 479656 + 479129 2 3 - 4292 + 4288 @@ -25147,7 +25106,7 @@ 1 2 - 483949 + 483417 @@ -25157,27 +25116,27 @@ attribute_args - 352360 + 348066 id - 352360 + 348066 kind - 1411 + 1388 attribute - 270503 + 267529 index - 1411 + 1388 location - 329308 + 324923 @@ -25191,7 +25150,7 @@ 1 2 - 352360 + 348066 @@ -25207,7 +25166,7 @@ 1 2 - 352360 + 348066 @@ -25223,7 +25182,7 @@ 1 2 - 352360 + 348066 @@ -25239,7 +25198,7 @@ 1 2 - 352360 + 348066 @@ -25255,17 +25214,17 @@ 1 2 - 470 + 462 54 55 - 470 + 462 - 694 - 695 - 470 + 697 + 698 + 462 @@ -25281,17 +25240,17 @@ 1 2 - 470 + 462 54 55 - 470 + 462 - 542 - 543 - 470 + 545 + 546 + 462 @@ -25307,12 +25266,12 @@ 1 2 - 940 + 925 3 4 - 470 + 462 @@ -25328,17 +25287,17 @@ 1 2 - 470 + 462 54 55 - 470 + 462 - 672 - 673 - 470 + 674 + 675 + 462 @@ -25354,17 +25313,17 @@ 1 2 - 204641 + 202730 2 3 - 49866 + 49062 3 4 - 15994 + 15737 @@ -25380,12 +25339,12 @@ 1 2 - 260153 + 257346 2 3 - 10349 + 10182 @@ -25401,17 +25360,17 @@ 1 2 - 204641 + 202730 2 3 - 49866 + 49062 3 4 - 15994 + 15737 @@ -25427,17 +25386,17 @@ 1 2 - 204641 + 202730 2 3 - 49866 + 49062 3 4 - 15994 + 15737 @@ -25453,17 +25412,17 @@ 34 35 - 470 + 462 140 141 - 470 + 462 - 575 - 576 - 470 + 578 + 579 + 462 @@ -25479,12 +25438,12 @@ 1 2 - 940 + 925 3 4 - 470 + 462 @@ -25500,17 +25459,17 @@ 34 35 - 470 + 462 140 141 - 470 + 462 - 575 - 576 - 470 + 578 + 579 + 462 @@ -25526,17 +25485,17 @@ 34 35 - 470 + 462 140 141 - 470 + 462 - 526 - 527 - 470 + 528 + 529 + 462 @@ -25552,12 +25511,12 @@ 1 2 - 315195 + 311037 2 - 16 - 14113 + 17 + 13885 @@ -25573,12 +25532,12 @@ 1 2 - 316606 + 312426 2 3 - 12701 + 12497 @@ -25594,12 +25553,12 @@ 1 2 - 315195 + 311037 2 - 16 - 14113 + 17 + 13885 @@ -25615,7 +25574,7 @@ 1 2 - 329308 + 324923 @@ -25625,15 +25584,15 @@ attribute_arg_value - 351889 + 24994 arg - 351889 + 24994 value - 34812 + 15737 @@ -25647,7 +25606,7 @@ 1 2 - 351889 + 24994 @@ -25663,22 +25622,12 @@ 1 2 - 16935 + 14348 2 - 3 - 12231 - - - 3 - 14 - 2822 - - - 15 - 247 - 2822 + 16 + 1388 @@ -25688,15 +25637,15 @@ attribute_arg_type - 470 + 462 arg - 470 + 462 type_id - 470 + 462 @@ -25710,7 +25659,7 @@ 1 2 - 470 + 462 @@ -25726,7 +25675,55 @@ 1 2 - 470 + 462 + + + + + + + + + attribute_arg_constant + 367506 + + + arg + 367506 + + + constant + 367506 + + + + + arg + constant + + + 12 + + + 1 + 2 + 367506 + + + + + + + constant + arg + + + 12 + + + 1 + 2 + 367506 @@ -25789,15 +25786,15 @@ typeattributes - 62509 + 62440 type_id - 62090 + 62022 spec_id - 62509 + 62440 @@ -25811,7 +25808,7 @@ 1 2 - 61671 + 61603 2 @@ -25832,7 +25829,7 @@ 1 2 - 62509 + 62440 @@ -25842,15 +25839,15 @@ funcattributes - 635565 + 629948 func_id - 447389 + 592296 spec_id - 635565 + 629948 @@ -25864,22 +25861,12 @@ 1 2 - 341540 + 558408 2 - 3 - 64920 - - - 3 - 6 - 39987 - - - 6 7 - 940 + 33887 @@ -25895,7 +25882,7 @@ 1 2 - 635565 + 629948 @@ -25963,15 +25950,15 @@ stmtattributes - 1005 + 1002 stmt_id - 1005 + 1002 spec_id - 1005 + 1002 @@ -25985,7 +25972,7 @@ 1 2 - 1005 + 1002 @@ -26001,7 +25988,7 @@ 1 2 - 1005 + 1002 @@ -26011,15 +25998,15 @@ unspecifiedtype - 10353463 + 10137428 type_id - 10353463 + 10137428 unspecified_type_id - 6956409 + 6822468 @@ -26033,7 +26020,7 @@ 1 2 - 10353463 + 10137428 @@ -26049,17 +26036,17 @@ 1 2 - 4676182 + 4591048 2 3 - 2037950 + 1996752 3 147 - 242277 + 234666 @@ -26069,19 +26056,19 @@ member - 5131470 + 4925926 parent - 689163 + 618819 index - 8802 + 8821 child - 5067737 + 4862061 @@ -26095,42 +26082,42 @@ 1 3 - 18873 + 18912 3 4 - 390462 + 320347 4 5 - 39049 + 38283 5 7 - 53028 + 53138 7 10 - 52817 + 52926 10 - 16 - 57535 + 15 + 50315 - 16 - 30 - 52923 + 15 + 24 + 49609 - 30 + 24 251 - 24472 + 35284 @@ -26146,42 +26133,42 @@ 1 3 - 18873 + 18912 3 4 - 390427 + 320312 4 5 - 39084 + 38318 5 7 - 53134 + 53244 7 10 - 53134 + 53244 10 - 16 - 57289 + 15 + 49998 - 16 - 29 - 52711 + 15 + 24 + 49962 - 29 + 24 253 - 24507 + 34825 @@ -26197,62 +26184,62 @@ 1 2 - 1408 + 1411 2 3 - 809 + 811 3 4 - 950 + 952 5 22 - 669 + 670 22 42 - 669 + 670 42 56 - 669 + 670 56 100 - 669 + 670 104 164 - 669 + 670 181 299 - 669 + 670 300 727 - 669 + 670 845 4002 - 669 + 670 4606 - 19241 - 281 + 17207 + 282 @@ -26268,62 +26255,62 @@ 1 2 - 809 + 811 2 3 - 880 + 882 3 4 - 1161 + 1164 4 15 - 669 + 670 16 35 - 739 + 740 36 55 - 669 + 670 57 93 - 739 + 740 97 135 - 669 + 670 140 256 - 669 + 670 268 612 - 669 + 670 619 2611 - 669 + 670 2770 - 19253 - 457 + 17219 + 458 @@ -26339,7 +26326,7 @@ 1 2 - 5067737 + 4862061 @@ -26355,12 +26342,12 @@ 1 2 - 5005483 + 4799678 2 8 - 62254 + 62382 @@ -26370,15 +26357,15 @@ enclosingfunction - 121719 + 121348 child - 121719 + 121348 parent - 69490 + 69279 @@ -26392,7 +26379,7 @@ 1 2 - 121719 + 121348 @@ -26408,22 +26395,22 @@ 1 2 - 36687 + 36576 2 3 - 21587 + 21521 3 4 - 6105 + 6086 4 45 - 5110 + 5095 @@ -26433,15 +26420,15 @@ derivations - 402152 + 368264 derivation - 402152 + 368264 sub - 381659 + 347728 index @@ -26449,11 +26436,11 @@ super - 206340 + 203873 location - 38134 + 38213 @@ -26467,7 +26454,7 @@ 1 2 - 402152 + 368264 @@ -26483,7 +26470,7 @@ 1 2 - 402152 + 368264 @@ -26499,7 +26486,7 @@ 1 2 - 402152 + 368264 @@ -26515,7 +26502,7 @@ 1 2 - 402152 + 368264 @@ -26531,12 +26518,12 @@ 1 2 - 366518 + 332556 2 7 - 15141 + 15172 @@ -26552,12 +26539,12 @@ 1 2 - 366518 + 332556 2 7 - 15141 + 15172 @@ -26573,12 +26560,12 @@ 1 2 - 366518 + 332556 2 7 - 15141 + 15172 @@ -26594,12 +26581,12 @@ 1 2 - 366518 + 332556 2 7 - 15141 + 15172 @@ -26628,8 +26615,8 @@ 35 - 10839 - 10840 + 9855 + 9856 35 @@ -26659,8 +26646,8 @@ 35 - 10839 - 10840 + 9855 + 9856 35 @@ -26695,8 +26682,8 @@ 35 - 5505 - 5506 + 5423 + 5424 35 @@ -26744,12 +26731,12 @@ 1 2 - 199016 + 196534 2 - 1225 - 7324 + 1216 + 7339 @@ -26765,12 +26752,12 @@ 1 2 - 199016 + 196534 2 - 1225 - 7324 + 1216 + 7339 @@ -26786,12 +26773,12 @@ 1 2 - 205882 + 203415 2 4 - 457 + 458 @@ -26807,12 +26794,12 @@ 1 2 - 202748 + 200274 2 108 - 3591 + 3599 @@ -26828,27 +26815,27 @@ 1 2 - 28310 + 28827 2 5 - 3133 + 3140 5 16 - 2992 + 2928 17 - 133 - 2992 + 178 + 2928 - 142 + 192 474 - 704 + 388 @@ -26864,27 +26851,27 @@ 1 2 - 28310 + 28827 2 5 - 3133 + 3140 5 16 - 2992 + 2928 17 - 133 - 2992 + 178 + 2928 - 142 + 192 474 - 704 + 388 @@ -26900,7 +26887,7 @@ 1 2 - 38134 + 38213 @@ -26916,22 +26903,22 @@ 1 2 - 30739 + 31120 2 5 - 3415 + 3210 5 - 55 - 2887 + 63 + 2893 - 60 - 420 - 1091 + 63 + 415 + 987 @@ -26941,15 +26928,15 @@ derspecifiers - 404054 + 370169 der_id - 401765 + 367876 spec_id - 140 + 141 @@ -26963,12 +26950,12 @@ 1 2 - 399476 + 365582 2 3 - 2288 + 2293 @@ -26992,13 +26979,13 @@ 35 - 1132 - 1133 + 1127 + 1128 35 - 10185 - 10186 + 9206 + 9207 35 @@ -27009,11 +26996,11 @@ direct_base_offsets - 372891 + 338942 der_id - 372891 + 338942 offset @@ -27031,7 +27018,7 @@ 1 2 - 372891 + 338942 @@ -27070,8 +27057,8 @@ 35 - 10484 - 10485 + 9500 + 9501 35 @@ -27082,19 +27069,19 @@ virtual_base_offsets - 6660 + 6639 sub - 3676 + 3665 super - 508 + 507 offset - 254 + 253 @@ -27108,12 +27095,12 @@ 1 2 - 2890 + 2881 2 4 - 323 + 322 4 @@ -27123,7 +27110,7 @@ 7 11 - 196 + 195 @@ -27139,12 +27126,12 @@ 1 2 - 3098 + 3089 2 4 - 312 + 311 4 @@ -27226,7 +27213,7 @@ 1 2 - 289 + 288 2 @@ -27373,23 +27360,23 @@ frienddecls - 714656 + 716133 id - 714656 + 716133 type_id - 42359 + 42447 decl_id - 70141 + 70286 location - 6338 + 6351 @@ -27403,7 +27390,7 @@ 1 2 - 714656 + 716133 @@ -27419,7 +27406,7 @@ 1 2 - 714656 + 716133 @@ -27435,7 +27422,7 @@ 1 2 - 714656 + 716133 @@ -27451,47 +27438,47 @@ 1 2 - 6197 + 6210 2 3 - 13204 + 13231 3 6 - 2957 + 2963 6 10 - 3204 + 3210 10 17 - 3274 + 3281 17 24 - 3345 + 3352 25 36 - 3309 + 3316 37 55 - 3239 + 3246 55 103 - 3626 + 3634 @@ -27507,47 +27494,47 @@ 1 2 - 6197 + 6210 2 3 - 13204 + 13231 3 6 - 2957 + 2963 6 10 - 3204 + 3210 10 17 - 3274 + 3281 17 24 - 3345 + 3352 25 36 - 3309 + 3316 37 55 - 3239 + 3246 55 103 - 3626 + 3634 @@ -27563,12 +27550,12 @@ 1 2 - 40915 + 41000 2 13 - 1443 + 1446 @@ -27584,37 +27571,37 @@ 1 2 - 40458 + 40541 2 3 - 5880 + 5892 3 8 - 6021 + 6033 8 15 - 5422 + 5433 15 32 - 5281 + 5292 32 71 - 5281 + 5292 72 160 - 1795 + 1799 @@ -27630,37 +27617,37 @@ 1 2 - 40458 + 40541 2 3 - 5880 + 5892 3 8 - 6021 + 6033 8 15 - 5422 + 5433 15 32 - 5281 + 5292 32 71 - 5281 + 5292 72 160 - 1795 + 1799 @@ -27676,12 +27663,12 @@ 1 2 - 69472 + 69616 2 5 - 669 + 670 @@ -27697,12 +27684,12 @@ 1 2 - 5950 + 5963 2 20106 - 387 + 388 @@ -27718,12 +27705,12 @@ 1 2 - 6197 + 6210 2 1105 - 140 + 141 @@ -27739,7 +27726,7 @@ 1 2 - 5985 + 5998 2 @@ -27754,19 +27741,19 @@ comments - 8783134 + 8773472 id - 8783134 + 8773472 contents - 3343672 + 3339994 location - 8783134 + 8773472 @@ -27780,7 +27767,7 @@ 1 2 - 8783134 + 8773472 @@ -27796,7 +27783,7 @@ 1 2 - 8783134 + 8773472 @@ -27812,17 +27799,17 @@ 1 2 - 3058872 + 3055507 2 7 - 251189 + 250912 7 32784 - 33610 + 33573 @@ -27838,17 +27825,17 @@ 1 2 - 3058872 + 3055507 2 7 - 251189 + 250912 7 32784 - 33610 + 33573 @@ -27864,7 +27851,7 @@ 1 2 - 8783134 + 8773472 @@ -27880,7 +27867,7 @@ 1 2 - 8783134 + 8773472 @@ -27890,15 +27877,15 @@ commentbinding - 3145838 + 3095104 id - 2490514 + 2450349 element - 3068686 + 3019196 @@ -27912,12 +27899,12 @@ 1 2 - 2408187 + 2369349 2 97 - 82327 + 80999 @@ -27933,12 +27920,12 @@ 1 2 - 2991533 + 2943288 2 3 - 77152 + 75908 @@ -27948,15 +27935,15 @@ exprconv - 7003755 + 7021832 converted - 7003755 + 7021832 conversion - 7003755 + 7021832 @@ -27970,7 +27957,7 @@ 1 2 - 7003755 + 7021832 @@ -27986,7 +27973,7 @@ 1 2 - 7003755 + 7021832 @@ -27996,30 +27983,30 @@ compgenerated - 8493976 + 8328197 id - 8493976 + 8328197 synthetic_destructor_call - 133104 + 144327 element - 103479 + 111770 i - 306 + 336 destructor_call - 117760 + 129098 @@ -28033,17 +28020,17 @@ 1 2 - 85542 + 92066 2 3 - 11831 + 12991 3 18 - 6105 + 6713 @@ -28059,17 +28046,17 @@ 1 2 - 85542 + 92066 2 3 - 11831 + 12991 3 18 - 6105 + 6713 @@ -28085,67 +28072,67 @@ 1 2 - 18 + 19 2 3 - 54 + 59 3 4 - 18 + 19 4 5 - 54 + 59 6 7 - 18 + 19 11 12 - 18 + 19 20 21 - 18 + 19 34 35 - 18 + 19 65 66 - 18 + 19 152 153 - 18 + 19 339 340 - 18 + 19 - 996 - 997 - 18 + 995 + 996 + 19 - 5746 - 5747 - 18 + 5644 + 5645 + 19 @@ -28161,67 +28148,67 @@ 1 2 - 18 + 19 2 3 - 54 + 59 3 4 - 18 + 19 4 5 - 54 + 59 6 7 - 18 + 19 11 12 - 18 + 19 20 21 - 18 + 19 34 35 - 18 + 19 65 66 - 18 + 19 151 152 - 18 + 19 338 339 - 18 + 19 - 995 - 996 - 18 + 994 + 995 + 19 - 4897 - 4898 - 18 + 4878 + 4879 + 19 @@ -28237,12 +28224,12 @@ 1 2 - 115743 + 127059 2 26 - 2017 + 2039 @@ -28258,7 +28245,7 @@ 1 2 - 117760 + 129098 @@ -28268,15 +28255,15 @@ namespaces - 12701 + 12497 id - 12701 + 12497 name - 10349 + 10182 @@ -28290,7 +28277,7 @@ 1 2 - 12701 + 12497 @@ -28306,17 +28293,17 @@ 1 2 - 8938 + 8794 2 3 - 470 + 462 3 4 - 940 + 925 @@ -28326,26 +28313,26 @@ namespace_inline - 1411 + 1388 id - 1411 + 1388 namespacembrs - 2463228 + 2389715 parentid - 10820 + 10645 memberid - 2463228 + 2389715 @@ -28359,57 +28346,57 @@ 1 2 - 1881 + 1851 2 3 - 940 + 925 3 4 - 470 + 462 4 5 - 940 + 925 5 7 - 940 + 925 7 8 - 940 + 925 8 12 - 940 + 925 17 30 - 940 + 925 43 47 - 940 + 925 52 143 - 940 + 925 253 - 4592 - 940 + 4519 + 925 @@ -28425,7 +28412,7 @@ 1 2 - 2463228 + 2389715 @@ -28435,19 +28422,19 @@ exprparents - 14152891 + 14182785 expr_id - 14152891 + 14182785 child_index - 14602 + 14633 parent_id - 9418005 + 9437898 @@ -28461,7 +28448,7 @@ 1 2 - 14152891 + 14182785 @@ -28477,7 +28464,7 @@ 1 2 - 14152891 + 14182785 @@ -28493,37 +28480,37 @@ 1 2 - 2809 + 2815 2 3 - 1107 + 1109 3 4 - 266 + 267 4 5 - 6542 + 6556 5 8 - 1210 + 1212 8 11 - 1189 + 1192 11 53 - 1107 + 1109 56 @@ -28544,37 +28531,37 @@ 1 2 - 2809 + 2815 2 3 - 1107 + 1109 3 4 - 266 + 267 4 5 - 6542 + 6556 5 8 - 1210 + 1212 8 11 - 1189 + 1192 11 53 - 1107 + 1109 56 @@ -28595,17 +28582,17 @@ 1 2 - 5388942 + 5400325 2 3 - 3692599 + 3700399 3 712 - 336462 + 337173 @@ -28621,17 +28608,17 @@ 1 2 - 5388942 + 5400325 2 3 - 3692599 + 3700399 3 712 - 336462 + 337173 @@ -28641,11 +28628,11 @@ expr_isload - 4981688 + 4982130 expr_id - 4981688 + 4982130 @@ -28725,15 +28712,15 @@ iscall - 3078281 + 2951156 caller - 3078281 + 2951156 kind - 54 + 59 @@ -28747,7 +28734,7 @@ 1 2 - 3078281 + 2951156 @@ -28761,19 +28748,19 @@ 12 - 1378 - 1379 - 18 + 1318 + 1319 + 19 - 2512 - 2513 - 18 + 2470 + 2471 + 19 - 167040 - 167041 - 18 + 145234 + 145235 + 19 @@ -28783,15 +28770,15 @@ numtemplatearguments - 543548 + 396244 expr_id - 543548 + 396244 num - 72 + 317 @@ -28805,7 +28792,7 @@ 1 2 - 543548 + 396244 @@ -28819,24 +28806,39 @@ 12 - 26 - 27 - 18 + 1 + 2 + 105 - 28 - 29 - 18 + 4 + 5 + 35 - 220 - 221 - 18 + 20 + 21 + 35 - 29908 - 29909 - 18 + 101 + 102 + 35 + + + 179 + 180 + 35 + + + 227 + 228 + 35 + + + 10696 + 10697 + 35 @@ -28846,15 +28848,15 @@ specialnamequalifyingelements - 470 + 462 id - 470 + 462 name - 470 + 462 @@ -28868,7 +28870,7 @@ 1 2 - 470 + 462 @@ -28884,7 +28886,7 @@ 1 2 - 470 + 462 @@ -28894,23 +28896,23 @@ namequalifiers - 1618866 + 1536058 id - 1618866 + 1536058 qualifiableelement - 1618866 + 1536058 qualifyingelement - 79653 + 83412 location - 282705 + 306003 @@ -28924,7 +28926,7 @@ 1 2 - 1618866 + 1536058 @@ -28940,7 +28942,7 @@ 1 2 - 1618866 + 1536058 @@ -28956,7 +28958,7 @@ 1 2 - 1618866 + 1536058 @@ -28972,7 +28974,7 @@ 1 2 - 1618866 + 1536058 @@ -28988,7 +28990,7 @@ 1 2 - 1618866 + 1536058 @@ -29004,7 +29006,7 @@ 1 2 - 1618866 + 1536058 @@ -29020,27 +29022,27 @@ 1 2 - 45526 + 46617 2 3 - 17162 + 20615 3 4 - 6195 + 5049 4 - 8 - 6087 + 7 + 6396 - 8 - 31227 - 4682 + 7 + 21072 + 4733 @@ -29056,27 +29058,27 @@ 1 2 - 45526 + 46617 2 3 - 17162 + 20615 3 4 - 6195 + 5049 4 - 8 - 6087 + 7 + 6396 - 8 - 31227 - 4682 + 7 + 21072 + 4733 @@ -29092,27 +29094,27 @@ 1 2 - 49704 + 50954 2 3 - 15992 + 19526 3 4 - 6411 + 4851 4 - 9 - 6123 + 8 + 6257 - 9 + 8 7095 - 1422 + 1821 @@ -29128,32 +29130,32 @@ 1 2 - 91737 + 98304 2 3 - 25644 + 27408 3 4 - 42177 + 45884 4 6 - 12894 + 14080 6 7 - 89865 + 98878 7 - 2135 - 20386 + 782 + 21447 @@ -29169,32 +29171,32 @@ 1 2 - 91737 + 98304 2 3 - 25644 + 27408 3 4 - 42177 + 45884 4 6 - 12894 + 14080 6 7 - 89865 + 98878 7 - 2135 - 20386 + 782 + 21447 @@ -29210,22 +29212,22 @@ 1 2 - 125162 + 134426 2 3 - 52352 + 56796 3 4 - 96618 + 105968 4 - 152 - 8572 + 143 + 8812 @@ -29235,15 +29237,15 @@ varbind - 6006368 + 6019055 expr - 6006368 + 6019055 var - 765629 + 767246 @@ -29257,7 +29259,7 @@ 1 2 - 6006368 + 6019055 @@ -29273,52 +29275,52 @@ 1 2 - 125745 + 126011 2 3 - 137353 + 137644 3 4 - 105891 + 106115 4 5 - 84889 + 85069 5 6 - 61057 + 61186 6 7 - 47931 + 48032 7 9 - 59396 + 59521 9 13 - 59047 + 59172 13 28 - 58657 + 58781 28 5137 - 25657 + 25711 @@ -29328,15 +29330,15 @@ funbind - 3080676 + 2954265 expr - 3077056 + 2951453 fun - 514013 + 533842 @@ -29350,12 +29352,12 @@ 1 2 - 3073437 + 2948641 2 3 - 3619 + 2812 @@ -29371,32 +29373,32 @@ 1 2 - 306531 + 329787 2 3 - 78789 + 82184 3 4 - 37224 + 31883 4 7 - 43473 + 48043 7 - 38 - 38701 + 158 + 40042 - 38 + 159 4943 - 9292 + 1901 @@ -29406,11 +29408,11 @@ expr_allocator - 46514 + 46610 expr - 46514 + 46610 func @@ -29432,7 +29434,7 @@ 1 2 - 46514 + 46610 @@ -29448,7 +29450,7 @@ 1 2 - 46514 + 46610 @@ -29532,11 +29534,11 @@ expr_deallocator - 55282 + 55396 expr - 55282 + 55396 func @@ -29558,7 +29560,7 @@ 1 2 - 55282 + 55396 @@ -29574,7 +29576,7 @@ 1 2 - 55282 + 55396 @@ -29668,26 +29670,26 @@ expr_cond_two_operand - 484 + 480 cond - 484 + 480 expr_cond_guard - 654502 + 656192 cond - 654502 + 656192 guard - 654502 + 656192 @@ -29701,7 +29703,7 @@ 1 2 - 654502 + 656192 @@ -29717,7 +29719,7 @@ 1 2 - 654502 + 656192 @@ -29727,15 +29729,15 @@ expr_cond_true - 654500 + 656189 cond - 654500 + 656189 true - 654500 + 656189 @@ -29749,7 +29751,7 @@ 1 2 - 654500 + 656189 @@ -29765,7 +29767,7 @@ 1 2 - 654500 + 656189 @@ -29775,15 +29777,15 @@ expr_cond_false - 654502 + 656192 cond - 654502 + 656192 false - 654502 + 656192 @@ -29797,7 +29799,7 @@ 1 2 - 654502 + 656192 @@ -29813,7 +29815,7 @@ 1 2 - 654502 + 656192 @@ -29823,15 +29825,15 @@ values - 10646153 + 10759270 id - 10646153 + 10759270 str - 86639 + 87848 @@ -29845,7 +29847,7 @@ 1 2 - 10646153 + 10759270 @@ -29861,27 +29863,27 @@ 1 2 - 58708 + 59389 2 3 - 12259 + 12364 3 6 - 6747 + 6924 6 - 62 - 6513 + 56 + 6612 - 62 - 451065 - 2410 + 57 + 452050 + 2556 @@ -29891,15 +29893,15 @@ valuetext - 4756702 + 4757155 id - 4756702 + 4757155 text - 703921 + 703935 @@ -29913,7 +29915,7 @@ 1 2 - 4756702 + 4757155 @@ -29929,22 +29931,22 @@ 1 2 - 527529 + 527534 2 3 - 102490 + 102488 3 7 - 56757 + 56764 7 425881 - 17145 + 17149 @@ -29954,15 +29956,15 @@ valuebind - 11083057 + 11192950 val - 10646153 + 10759270 expr - 11083057 + 11192950 @@ -29976,12 +29978,12 @@ 1 2 - 10232029 + 10348201 2 7 - 414124 + 411068 @@ -29997,7 +29999,7 @@ 1 2 - 11083057 + 11192950 @@ -30007,19 +30009,19 @@ fieldoffsets - 1050083 + 1052962 id - 1050083 + 1052962 byteoffset - 22593 + 22655 bitoffset - 318 + 319 @@ -30033,7 +30035,7 @@ 1 2 - 1050083 + 1052962 @@ -30049,7 +30051,7 @@ 1 2 - 1050083 + 1052962 @@ -30065,37 +30067,37 @@ 1 2 - 12967 + 13002 2 3 - 1710 + 1715 3 5 - 1789 + 1794 5 12 - 1909 + 1914 12 35 - 1710 + 1715 35 205 - 1710 + 1715 244 5638 - 795 + 797 @@ -30111,12 +30113,12 @@ 1 2 - 21917 + 21977 2 9 - 676 + 678 @@ -30208,19 +30210,19 @@ bitfield - 20941 + 20918 id - 20941 + 20918 bits - 2617 + 2614 declared_bits - 2617 + 2614 @@ -30234,7 +30236,7 @@ 1 2 - 20941 + 20918 @@ -30250,7 +30252,7 @@ 1 2 - 20941 + 20918 @@ -30271,7 +30273,7 @@ 2 3 - 628 + 627 3 @@ -30317,7 +30319,7 @@ 1 2 - 2617 + 2614 @@ -30338,7 +30340,7 @@ 2 3 - 628 + 627 3 @@ -30384,7 +30386,7 @@ 1 2 - 2617 + 2614 @@ -30394,23 +30396,23 @@ initialisers - 1732353 + 1733596 init - 1732353 + 1733596 var - 721222 + 722038 expr - 1732353 + 1733596 location - 390438 + 390813 @@ -30424,7 +30426,7 @@ 1 2 - 1732353 + 1733596 @@ -30440,7 +30442,7 @@ 1 2 - 1732353 + 1733596 @@ -30456,7 +30458,7 @@ 1 2 - 1732353 + 1733596 @@ -30472,17 +30474,17 @@ 1 2 - 632463 + 633767 2 16 - 32109 + 31559 16 25 - 56649 + 56711 @@ -30498,17 +30500,17 @@ 1 2 - 632463 + 633767 2 16 - 32109 + 31559 16 25 - 56649 + 56711 @@ -30524,7 +30526,7 @@ 1 2 - 721215 + 722032 2 @@ -30545,7 +30547,7 @@ 1 2 - 1732353 + 1733596 @@ -30561,7 +30563,7 @@ 1 2 - 1732353 + 1733596 @@ -30577,7 +30579,7 @@ 1 2 - 1732353 + 1733596 @@ -30593,22 +30595,22 @@ 1 2 - 317957 + 318365 2 3 - 23835 + 23842 3 15 - 30789 + 30753 15 - 111459 - 17856 + 111523 + 17850 @@ -30624,17 +30626,17 @@ 1 2 - 340698 + 341138 2 4 - 35642 + 35619 4 - 12738 - 14096 + 12802 + 14055 @@ -30650,22 +30652,22 @@ 1 2 - 317957 + 318365 2 3 - 23835 + 23842 3 15 - 30789 + 30753 15 - 111459 - 17856 + 111523 + 17850 @@ -30675,26 +30677,26 @@ braced_initialisers - 41525 + 41632 init - 41525 + 41632 expr_ancestor - 121668 + 133396 exp - 121668 + 133396 ancestor - 84876 + 92957 @@ -30708,7 +30710,7 @@ 1 2 - 121668 + 133396 @@ -30724,22 +30726,22 @@ 1 2 - 61374 + 67133 2 3 - 16784 + 18437 3 8 - 6483 + 7129 8 18 - 234 + 257 @@ -30749,19 +30751,19 @@ exprs - 18300152 + 18356790 id - 18300152 + 18356790 kind - 3380 + 3387 location - 3559831 + 3591749 @@ -30775,7 +30777,7 @@ 1 2 - 18300152 + 18356790 @@ -30791,7 +30793,7 @@ 1 2 - 18300152 + 18356790 @@ -30806,68 +30808,68 @@ 1 - 5 - 281 + 3 + 246 - 5 + 4 14 - 211 + 282 14 38 - 281 + 282 42 - 66 - 281 + 83 + 282 - 82 - 135 - 281 + 85 + 142 + 282 - 141 - 334 - 281 + 145 + 339 + 282 - 338 - 509 - 281 + 364 + 564 + 282 - 563 + 653 830 - 281 + 282 - 831 - 1183 - 281 + 973 + 1185 + 282 - 1184 - 2071 - 281 + 1329 + 2628 + 282 - 2627 - 5700 - 281 + 3015 + 6254 + 282 - 6528 - 63599 - 281 + 6592 + 78899 + 282 - 79044 - 109592 - 70 + 109462 + 109463 + 35 @@ -30883,7 +30885,7 @@ 1 2 - 281 + 282 2 @@ -30893,17 +30895,17 @@ 3 6 - 281 + 282 6 13 - 281 + 282 14 26 - 281 + 282 28 @@ -30913,37 +30915,37 @@ 63 83 - 281 + 282 91 183 - 281 + 282 206 342 - 281 + 282 353 448 - 281 + 282 468 - 1018 - 281 + 1019 + 282 1051 14618 - 281 + 282 - 16981 - 32757 - 140 + 16977 + 32762 + 141 @@ -30959,32 +30961,32 @@ 1 2 - 1935551 + 1941352 2 3 - 816946 + 837336 3 4 - 247397 + 248367 4 8 - 280461 + 284181 8 - 137 - 267010 + 155 + 269397 - 137 - 54140 - 12464 + 155 + 53476 + 11114 @@ -31000,22 +31002,22 @@ 1 2 - 2362352 + 2391758 2 3 - 873426 + 875231 3 6 - 307151 + 307821 6 25 - 16901 + 16936 @@ -31025,19 +31027,19 @@ expr_types - 18357798 + 18411724 id - 18300152 + 18356790 typeid - 829243 + 881136 value_category - 54 + 59 @@ -31051,12 +31053,12 @@ 1 2 - 18242577 + 18301855 2 - 5 - 57574 + 3 + 54934 @@ -31072,7 +31074,7 @@ 1 2 - 18300152 + 18356790 @@ -31088,42 +31090,42 @@ 1 2 - 292376 + 316816 2 3 - 161054 + 172230 3 4 - 70343 + 69450 4 5 - 60978 + 68262 5 7 - 66993 + 69728 7 12 - 65336 + 69886 12 35 - 62653 + 66916 35 - 78689 - 49506 + 73116 + 47845 @@ -31139,17 +31141,17 @@ 1 2 - 715462 + 758038 2 3 - 102993 + 111869 3 4 - 10787 + 11228 @@ -31163,19 +31165,19 @@ 12 - 11826 - 11827 - 18 + 7159 + 7160 + 19 - 253755 - 253756 - 18 + 235315 + 235316 + 19 - 750585 - 750586 - 18 + 684473 + 684474 + 19 @@ -31189,19 +31191,19 @@ 12 - 1484 - 1485 - 18 + 1406 + 1407 + 19 - 11980 - 11981 - 18 + 11860 + 11861 + 19 - 39499 - 39500 - 18 + 38011 + 38012 + 19 @@ -31211,15 +31213,15 @@ new_allocated_type - 47571 + 47669 expr - 47571 + 47669 type_id - 28134 + 28192 @@ -31233,7 +31235,7 @@ 1 2 - 47571 + 47669 @@ -31249,17 +31251,17 @@ 1 2 - 11760 + 11785 2 3 - 14894 + 14925 3 19 - 1478 + 1481 @@ -31269,15 +31271,15 @@ new_array_allocated_type - 5099 + 5104 expr - 5099 + 5104 type_id - 2194 + 2196 @@ -31291,7 +31293,7 @@ 1 2 - 5099 + 5104 @@ -31312,7 +31314,7 @@ 2 3 - 1942 + 1944 3 @@ -31879,15 +31881,15 @@ condition_decl_bind - 38593 + 42438 expr - 38593 + 42438 decl - 38593 + 42438 @@ -31901,7 +31903,7 @@ 1 2 - 38593 + 42438 @@ -31917,7 +31919,7 @@ 1 2 - 38593 + 42438 @@ -31927,15 +31929,15 @@ typeid_bind - 36408 + 36484 expr - 36408 + 36484 type_id - 16373 + 16407 @@ -31949,7 +31951,7 @@ 1 2 - 36408 + 36484 @@ -31965,12 +31967,12 @@ 1 2 - 15950 + 15983 3 328 - 422 + 423 @@ -31980,15 +31982,15 @@ uuidof_bind - 19993 + 20022 expr - 19993 + 20022 type_id - 19798 + 19827 @@ -32002,7 +32004,7 @@ 1 2 - 19993 + 20022 @@ -32018,7 +32020,7 @@ 1 2 - 19635 + 19663 2 @@ -32033,15 +32035,15 @@ sizeof_bind - 191854 + 198889 expr - 191854 + 198889 type_id - 8194 + 8165 @@ -32055,7 +32057,7 @@ 1 2 - 191854 + 198889 @@ -32071,12 +32073,12 @@ 1 2 - 2697 + 2683 2 3 - 2330 + 2329 3 @@ -32086,27 +32088,27 @@ 4 5 - 750 + 739 5 6 - 212 + 211 6 9 - 723 + 713 9 133 - 649 + 654 164 18023 - 53 + 58 @@ -32164,19 +32166,19 @@ lambdas - 21640 + 21291 expr - 21640 + 21291 default_capture - 470 + 462 has_explicit_return_type - 470 + 462 @@ -32190,7 +32192,7 @@ 1 2 - 21640 + 21291 @@ -32206,7 +32208,7 @@ 1 2 - 21640 + 21291 @@ -32222,7 +32224,7 @@ 46 47 - 470 + 462 @@ -32238,7 +32240,7 @@ 1 2 - 470 + 462 @@ -32254,7 +32256,7 @@ 46 47 - 470 + 462 @@ -32270,7 +32272,7 @@ 1 2 - 470 + 462 @@ -32280,35 +32282,35 @@ lambda_capture - 28226 + 27771 id - 28226 + 27771 lambda - 20699 + 20365 index - 940 + 925 field - 28226 + 27771 captured_by_reference - 470 + 462 is_implicit - 470 + 462 location - 2822 + 2777 @@ -32322,7 +32324,7 @@ 1 2 - 28226 + 27771 @@ -32338,7 +32340,7 @@ 1 2 - 28226 + 27771 @@ -32354,7 +32356,7 @@ 1 2 - 28226 + 27771 @@ -32370,7 +32372,7 @@ 1 2 - 28226 + 27771 @@ -32386,7 +32388,7 @@ 1 2 - 28226 + 27771 @@ -32402,7 +32404,7 @@ 1 2 - 28226 + 27771 @@ -32418,12 +32420,12 @@ 1 2 - 13172 + 12959 2 3 - 7527 + 7405 @@ -32439,12 +32441,12 @@ 1 2 - 13172 + 12959 2 3 - 7527 + 7405 @@ -32460,12 +32462,12 @@ 1 2 - 13172 + 12959 2 3 - 7527 + 7405 @@ -32481,7 +32483,7 @@ 1 2 - 20699 + 20365 @@ -32497,7 +32499,7 @@ 1 2 - 20699 + 20365 @@ -32513,12 +32515,12 @@ 1 2 - 13172 + 12959 2 3 - 7527 + 7405 @@ -32534,12 +32536,12 @@ 16 17 - 470 + 462 44 45 - 470 + 462 @@ -32555,12 +32557,12 @@ 16 17 - 470 + 462 44 45 - 470 + 462 @@ -32576,12 +32578,12 @@ 16 17 - 470 + 462 44 45 - 470 + 462 @@ -32597,7 +32599,7 @@ 1 2 - 940 + 925 @@ -32613,7 +32615,7 @@ 1 2 - 940 + 925 @@ -32629,12 +32631,12 @@ 2 3 - 470 + 462 4 5 - 470 + 462 @@ -32650,7 +32652,7 @@ 1 2 - 28226 + 27771 @@ -32666,7 +32668,7 @@ 1 2 - 28226 + 27771 @@ -32682,7 +32684,7 @@ 1 2 - 28226 + 27771 @@ -32698,7 +32700,7 @@ 1 2 - 28226 + 27771 @@ -32714,7 +32716,7 @@ 1 2 - 28226 + 27771 @@ -32730,7 +32732,7 @@ 1 2 - 28226 + 27771 @@ -32746,7 +32748,7 @@ 60 61 - 470 + 462 @@ -32762,7 +32764,7 @@ 44 45 - 470 + 462 @@ -32778,7 +32780,7 @@ 2 3 - 470 + 462 @@ -32794,7 +32796,7 @@ 60 61 - 470 + 462 @@ -32810,7 +32812,7 @@ 1 2 - 470 + 462 @@ -32826,7 +32828,7 @@ 6 7 - 470 + 462 @@ -32842,7 +32844,7 @@ 60 61 - 470 + 462 @@ -32858,7 +32860,7 @@ 44 45 - 470 + 462 @@ -32874,7 +32876,7 @@ 2 3 - 470 + 462 @@ -32890,7 +32892,7 @@ 60 61 - 470 + 462 @@ -32906,7 +32908,7 @@ 1 2 - 470 + 462 @@ -32922,7 +32924,7 @@ 6 7 - 470 + 462 @@ -32938,12 +32940,12 @@ 8 9 - 1881 + 1851 14 15 - 940 + 925 @@ -32959,12 +32961,12 @@ 8 9 - 1881 + 1851 14 15 - 940 + 925 @@ -32980,7 +32982,7 @@ 1 2 - 2822 + 2777 @@ -32996,12 +32998,12 @@ 8 9 - 1881 + 1851 14 15 - 940 + 925 @@ -33017,7 +33019,7 @@ 1 2 - 2822 + 2777 @@ -33033,7 +33035,7 @@ 1 2 - 2822 + 2777 @@ -33159,19 +33161,19 @@ stmts - 4661289 + 4653233 id - 4661289 + 4653233 kind - 1989 + 1987 location - 2287401 + 2284884 @@ -33185,7 +33187,7 @@ 1 2 - 4661289 + 4653233 @@ -33201,7 +33203,7 @@ 1 2 - 4661289 + 4653233 @@ -33295,8 +33297,8 @@ 104 - 8770 - 8771 + 8756 + 8757 104 @@ -33305,8 +33307,8 @@ 104 - 13297 - 13298 + 13283 + 13284 104 @@ -33429,22 +33431,22 @@ 1 2 - 1892555 + 1890473 2 4 - 176010 + 175816 4 12 - 176219 + 176025 12 - 699 - 42615 + 687 + 42568 @@ -33460,12 +33462,12 @@ 1 2 - 2230127 + 2227673 2 8 - 57274 + 57211 @@ -33523,15 +33525,15 @@ variable_vla - 21 + 22 var - 21 + 22 decl - 21 + 22 @@ -33545,7 +33547,7 @@ 1 2 - 21 + 22 @@ -33561,7 +33563,7 @@ 1 2 - 21 + 22 @@ -33571,15 +33573,15 @@ if_initialization - 314 + 313 if_stmt - 314 + 313 init_id - 314 + 313 @@ -33593,7 +33595,7 @@ 1 2 - 314 + 313 @@ -33609,7 +33611,7 @@ 1 2 - 314 + 313 @@ -33619,15 +33621,15 @@ if_then - 723174 + 724702 if_stmt - 723174 + 724702 then_id - 723174 + 724702 @@ -33641,7 +33643,7 @@ 1 2 - 723174 + 724702 @@ -33657,7 +33659,7 @@ 1 2 - 723174 + 724702 @@ -33667,15 +33669,15 @@ if_else - 183972 + 184361 if_stmt - 183972 + 184361 else_id - 183972 + 184361 @@ -33689,7 +33691,7 @@ 1 2 - 183972 + 184361 @@ -33705,7 +33707,7 @@ 1 2 - 183972 + 184361 @@ -33763,15 +33765,15 @@ constexpr_if_then - 52562 + 52504 constexpr_if_stmt - 52562 + 52504 then_id - 52562 + 52504 @@ -33785,7 +33787,7 @@ 1 2 - 52562 + 52504 @@ -33801,7 +33803,7 @@ 1 2 - 52562 + 52504 @@ -33811,15 +33813,15 @@ constexpr_if_else - 30888 + 30854 constexpr_if_stmt - 30888 + 30854 else_id - 30888 + 30854 @@ -33833,7 +33835,7 @@ 1 2 - 30888 + 30854 @@ -33849,7 +33851,7 @@ 1 2 - 30888 + 30854 @@ -33859,15 +33861,15 @@ while_body - 30201 + 30109 while_stmt - 30201 + 30109 body_id - 30201 + 30109 @@ -33881,7 +33883,7 @@ 1 2 - 30201 + 30109 @@ -33897,7 +33899,7 @@ 1 2 - 30201 + 30109 @@ -33907,15 +33909,15 @@ do_body - 148599 + 148628 do_stmt - 148599 + 148628 body_id - 148599 + 148628 @@ -33929,7 +33931,7 @@ 1 2 - 148599 + 148628 @@ -33945,7 +33947,7 @@ 1 2 - 148599 + 148628 @@ -34003,19 +34005,19 @@ switch_case - 191399 + 209699 switch_stmt - 10301 + 11228 index - 4430 + 4871 case_id - 191399 + 209699 @@ -34029,57 +34031,57 @@ 2 3 - 54 + 59 3 4 - 2269 + 2495 4 5 - 1656 + 1821 5 6 - 1008 + 1089 6 - 7 - 756 + 8 + 1029 - 7 + 8 9 - 720 + 554 9 10 - 972 + 1069 10 - 11 - 324 + 12 + 1029 - 11 - 14 - 864 + 12 + 25 + 871 - 14 - 31 - 828 + 30 + 152 + 851 - 36 + 181 247 - 846 + 356 @@ -34095,57 +34097,57 @@ 2 3 - 54 + 59 3 4 - 2269 + 2495 4 5 - 1656 + 1821 5 6 - 1008 + 1089 6 - 7 - 756 + 8 + 1029 - 7 + 8 9 - 720 + 554 9 10 - 972 + 1069 10 - 11 - 324 + 12 + 1029 - 11 - 14 - 864 + 12 + 25 + 871 - 14 - 31 - 828 + 30 + 152 + 851 - 36 + 181 247 - 846 + 356 @@ -34161,32 +34163,32 @@ 14 15 - 1170 + 1287 18 19 - 540 + 594 32 33 - 1908 + 2099 33 62 - 378 + 415 66 - 296 - 342 + 292 + 376 - 351 - 573 - 90 + 346 + 568 + 99 @@ -34202,32 +34204,32 @@ 14 15 - 1170 + 1287 18 19 - 540 + 594 32 33 - 1908 + 2099 33 62 - 378 + 415 66 - 296 - 342 + 292 + 376 - 351 - 573 - 90 + 346 + 568 + 99 @@ -34243,7 +34245,7 @@ 1 2 - 191399 + 209699 @@ -34259,7 +34261,7 @@ 1 2 - 191399 + 209699 @@ -34269,15 +34271,15 @@ switch_body - 20901 + 20747 switch_stmt - 20901 + 20747 body_id - 20901 + 20747 @@ -34291,7 +34293,7 @@ 1 2 - 20901 + 20747 @@ -34307,7 +34309,7 @@ 1 2 - 20901 + 20747 @@ -34317,15 +34319,15 @@ for_initialization - 53202 + 53314 for_stmt - 53202 + 53314 init_id - 53202 + 53314 @@ -34339,7 +34341,7 @@ 1 2 - 53202 + 53314 @@ -34355,7 +34357,7 @@ 1 2 - 53202 + 53314 @@ -34365,15 +34367,15 @@ for_condition - 55458 + 55575 for_stmt - 55458 + 55575 condition_id - 55458 + 55575 @@ -34387,7 +34389,7 @@ 1 2 - 55458 + 55575 @@ -34403,7 +34405,7 @@ 1 2 - 55458 + 55575 @@ -34413,15 +34415,15 @@ for_update - 53304 + 53417 for_stmt - 53304 + 53417 update_id - 53304 + 53417 @@ -34435,7 +34437,7 @@ 1 2 - 53304 + 53417 @@ -34451,7 +34453,7 @@ 1 2 - 53304 + 53417 @@ -34461,15 +34463,15 @@ for_body - 61324 + 61453 for_stmt - 61324 + 61453 body_id - 61324 + 61453 @@ -34483,7 +34485,7 @@ 1 2 - 61324 + 61453 @@ -34499,7 +34501,7 @@ 1 2 - 61324 + 61453 @@ -34509,19 +34511,19 @@ stmtparents - 4052323 + 4056811 id - 4052323 + 4056811 index - 12210 + 12223 parent - 1719470 + 1721378 @@ -34535,7 +34537,7 @@ 1 2 - 4052323 + 4056811 @@ -34551,7 +34553,7 @@ 1 2 - 4052323 + 4056811 @@ -34567,12 +34569,12 @@ 1 2 - 4011 + 4015 2 3 - 999 + 1000 3 @@ -34582,37 +34584,37 @@ 4 5 - 1552 + 1554 7 8 - 1018 + 1019 8 12 - 792 + 793 12 29 - 1075 + 1076 29 38 - 917 + 918 41 77 - 924 + 925 77 - 196940 - 697 + 196941 + 698 @@ -34628,12 +34630,12 @@ 1 2 - 4011 + 4015 2 3 - 999 + 1000 3 @@ -34643,37 +34645,37 @@ 4 5 - 1552 + 1554 7 8 - 1018 + 1019 8 12 - 792 + 793 12 29 - 1075 + 1076 29 38 - 917 + 918 41 77 - 924 + 925 77 - 196940 - 697 + 196941 + 698 @@ -34689,32 +34691,32 @@ 1 2 - 987321 + 988419 2 3 - 372965 + 373378 3 4 - 105746 + 105863 4 6 - 111242 + 111365 6 17 - 129833 + 129977 17 1943 - 12360 + 12374 @@ -34730,32 +34732,32 @@ 1 2 - 987321 + 988419 2 3 - 372965 + 373378 3 4 - 105746 + 105863 4 6 - 111242 + 111365 6 17 - 129833 + 129977 17 1943 - 12360 + 12374 @@ -34765,22 +34767,22 @@ ishandler - 59429 + 65331 block - 59429 + 65331 stmt_decl_bind - 585624 + 585099 stmt - 545474 + 544986 num @@ -34788,7 +34790,7 @@ decl - 585519 + 584994 @@ -34802,12 +34804,12 @@ 1 2 - 524595 + 524125 2 19 - 20879 + 20860 @@ -34823,12 +34825,12 @@ 1 2 - 524595 + 524125 2 19 - 20879 + 20860 @@ -35026,7 +35028,7 @@ 1 2 - 585481 + 584956 2 @@ -35047,7 +35049,7 @@ 1 2 - 585519 + 584994 @@ -35057,11 +35059,11 @@ stmt_decl_entry_bind - 528033 + 527560 stmt - 488186 + 487748 num @@ -35069,7 +35071,7 @@ decl_entry - 527974 + 527501 @@ -35083,12 +35085,12 @@ 1 2 - 467571 + 467152 2 19 - 20614 + 20596 @@ -35104,12 +35106,12 @@ 1 2 - 467571 + 467152 2 19 - 20614 + 20596 @@ -35307,12 +35309,12 @@ 1 2 - 527953 + 527480 3 6 - 21 + 20 @@ -35328,7 +35330,7 @@ 1 2 - 527974 + 527501 @@ -35338,15 +35340,15 @@ blockscope - 1438137 + 1414944 block - 1438137 + 1414944 enclosing - 1321939 + 1300619 @@ -35360,7 +35362,7 @@ 1 2 - 1438137 + 1414944 @@ -35376,12 +35378,12 @@ 1 2 - 1256077 + 1235820 2 13 - 65861 + 64799 @@ -35391,19 +35393,19 @@ jumpinfo - 253987 + 254036 id - 253987 + 254036 str - 21151 + 21155 target - 53044 + 53054 @@ -35417,7 +35419,7 @@ 1 2 - 253987 + 254036 @@ -35433,7 +35435,7 @@ 1 2 - 253987 + 254036 @@ -35449,12 +35451,12 @@ 2 3 - 9875 + 9877 3 4 - 4246 + 4247 4 @@ -35469,7 +35471,7 @@ 6 10 - 1699 + 1700 10 @@ -35495,12 +35497,12 @@ 1 2 - 16716 + 16720 2 3 - 2631 + 2632 3 @@ -35531,27 +35533,27 @@ 2 3 - 26427 + 26432 3 4 - 12897 + 12899 4 5 - 5342 + 5343 5 8 - 4690 + 4691 8 2124 - 3661 + 3662 @@ -35567,7 +35569,7 @@ 1 2 - 53044 + 53054 @@ -35577,19 +35579,19 @@ preprocdirects - 4432193 + 4427317 id - 4432193 + 4427317 kind - 1047 + 1045 location - 4429680 + 4424807 @@ -35603,7 +35605,7 @@ 1 2 - 4432193 + 4427317 @@ -35619,7 +35621,7 @@ 1 2 - 4432193 + 4427317 @@ -35757,7 +35759,7 @@ 1 2 - 4429575 + 4424702 25 @@ -35778,7 +35780,7 @@ 1 2 - 4429680 + 4424807 @@ -35788,15 +35790,15 @@ preprocpair - 1442371 + 1419110 begin - 1206210 + 1186757 elseelifend - 1442371 + 1419110 @@ -35810,17 +35812,17 @@ 1 2 - 986044 + 970142 2 3 - 209816 + 206432 3 11 - 10349 + 10182 @@ -35836,7 +35838,7 @@ 1 2 - 1442371 + 1419110 @@ -35846,41 +35848,41 @@ preproctrue - 783284 + 770651 branch - 783284 + 770651 preprocfalse - 326956 + 321683 branch - 326956 + 321683 preproctext - 3573396 + 3569465 id - 3573396 + 3569465 head - 2592094 + 2589243 body - 1516138 + 1514470 @@ -35894,7 +35896,7 @@ 1 2 - 3573396 + 3569465 @@ -35910,7 +35912,7 @@ 1 2 - 3573396 + 3569465 @@ -35926,12 +35928,12 @@ 1 2 - 2444983 + 2442293 2 740 - 147111 + 146949 @@ -35947,12 +35949,12 @@ 1 2 - 2529899 + 2527116 2 5 - 62195 + 62126 @@ -35968,17 +35970,17 @@ 1 2 - 1372482 + 1370972 2 6 - 113710 + 113585 6 11572 - 29945 + 29912 @@ -35994,17 +35996,17 @@ 1 2 - 1375519 + 1374005 2 7 - 114024 + 113899 7 2959 - 26595 + 26565 @@ -36014,15 +36016,15 @@ includes - 315665 + 310575 id - 315665 + 310575 included - 118080 + 116176 @@ -36036,7 +36038,7 @@ 1 2 - 315665 + 310575 @@ -36052,32 +36054,32 @@ 1 2 - 61627 + 60633 2 3 - 22110 + 21754 3 4 - 12701 + 12497 4 6 - 10349 + 10182 6 14 - 8938 + 8794 14 47 - 2352 + 2314 @@ -36087,15 +36089,15 @@ link_targets - 1471 + 1475 id - 1471 + 1475 binary - 1471 + 1475 @@ -36109,7 +36111,7 @@ 1 2 - 1471 + 1475 @@ -36125,7 +36127,7 @@ 1 2 - 1471 + 1475 @@ -36135,11 +36137,11 @@ link_parent - 40119536 + 38279611 element - 5112984 + 4843995 link_target @@ -36157,17 +36159,17 @@ 1 2 - 701522 + 645317 2 9 - 44120 + 25334 9 10 - 4367341 + 4173343 @@ -36186,48 +36188,48 @@ 35 - 124207 - 124208 + 118453 + 118454 35 - 124311 - 124312 + 118557 + 118558 35 - 124409 - 124410 + 118652 + 118653 35 - 124447 - 124448 + 118687 + 118688 35 - 124454 - 124455 + 118693 + 118694 35 - 124463 - 124464 + 118709 + 118710 35 - 126339 - 126340 + 120575 + 120576 35 - 132460 - 132461 + 125080 + 125081 35 - 134288 - 134289 + 127476 + 127477 35 From 32db845af8e79a9693d0998780ee56e092489124 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 5 Aug 2022 00:24:32 +0200 Subject: [PATCH 719/736] C++: Add DB scheme upgrade and downgrade scripts --- .../attribute_args.ql | 17 + .../old.dbscheme | 2130 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2125 ++++++++++++++++ .../upgrade.properties | 4 + .../old.dbscheme | 2125 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2130 +++++++++++++++++ .../upgrade.properties | 2 + 7 files changed, 8533 insertions(+) create mode 100644 cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/attribute_args.ql create mode 100644 cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/old.dbscheme create mode 100644 cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/upgrade.properties diff --git a/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/attribute_args.ql b/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/attribute_args.ql new file mode 100644 index 00000000000..bc7bf989aac --- /dev/null +++ b/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/attribute_args.ql @@ -0,0 +1,17 @@ +class AttributeArgument extends @attribute_arg { + string toString() { none() } +} + +class Attribute extends @attribute { + string toString() { none() } +} + +class LocationDefault extends @location_default { + string toString() { none() } +} + +from AttributeArgument arg, int kind, Attribute attr, int index, LocationDefault location +where + attribute_args(arg, kind, attr, index, location) and + not arg instanceof @attribute_arg_constant_expr +select arg, kind, attr, index, location diff --git a/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/old.dbscheme b/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/old.dbscheme new file mode 100644 index 00000000000..34549c3b093 --- /dev/null +++ b/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/old.dbscheme @@ -0,0 +1,2130 @@ + +/** + * 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 @macroinvocations.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 + | 2 = constructor + | 3 = destructor + | 4 = conversion + | 5 = operator + | 6 = builtin // 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 +); + +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 = error + | 2 = unknown + | 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 = __int8 // Microsoft-specific + | 21 = __int16 // Microsoft-specific + | 22 = __int32 // Microsoft-specific + | 23 = __int64 // Microsoft-specific + | 24 = float + | 25 = double + | 26 = long_double + | 27 = _Complex_float // C99-specific + | 28 = _Complex_double // C99-specific + | 29 = _Complex_long double // C99-specific + | 30 = _Imaginary_float // C99-specific + | 31 = _Imaginary_double // C99-specific + | 32 = _Imaginary_long_double // C99-specific + | 33 = wchar_t // Microsoft-specific + | 34 = decltype_nullptr // C++11 + | 35 = __int128 + | 36 = unsigned___int128 + | 37 = signed___int128 + | 38 = __float128 + | 39 = _Complex___float128 + | 40 = _Decimal32 + | 41 = _Decimal64 + | 42 = _Decimal128 + | 43 = char16_t + | 44 = char32_t + | 45 = _Float32 + | 46 = _Float32x + | 47 = _Float64 + | 48 = _Float64x + | 49 = _Float128 + | 50 = _Float128x + | 51 = char8_t + ; +*/ +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 EDG frontend. See symbol_ref.h there. + 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 + +/* + 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 // EDG 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 +; + +@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 + ; + +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. + */ +#keyset[aggregate, field] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. + */ +#keyset[aggregate, element_index] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: 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/34549c3b0937002f11037d01822ebe99442c1402/semmlecode.cpp.dbscheme b/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..23f7cbb88a4 --- /dev/null +++ b/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/semmlecode.cpp.dbscheme @@ -0,0 +1,2125 @@ + +/** + * 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 @macroinvocations.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 + | 2 = constructor + | 3 = destructor + | 4 = conversion + | 5 = operator + | 6 = builtin // 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 +); + +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 = error + | 2 = unknown + | 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 = __int8 // Microsoft-specific + | 21 = __int16 // Microsoft-specific + | 22 = __int32 // Microsoft-specific + | 23 = __int64 // Microsoft-specific + | 24 = float + | 25 = double + | 26 = long_double + | 27 = _Complex_float // C99-specific + | 28 = _Complex_double // C99-specific + | 29 = _Complex_long double // C99-specific + | 30 = _Imaginary_float // C99-specific + | 31 = _Imaginary_double // C99-specific + | 32 = _Imaginary_long_double // C99-specific + | 33 = wchar_t // Microsoft-specific + | 34 = decltype_nullptr // C++11 + | 35 = __int128 + | 36 = unsigned___int128 + | 37 = signed___int128 + | 38 = __float128 + | 39 = _Complex___float128 + | 40 = _Decimal32 + | 41 = _Decimal64 + | 42 = _Decimal128 + | 43 = char16_t + | 44 = char32_t + | 45 = _Float32 + | 46 = _Float32x + | 47 = _Float64 + | 48 = _Float64x + | 49 = _Float128 + | 50 = _Float128x + | 51 = char8_t + ; +*/ +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 EDG frontend. See symbol_ref.h there. + 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 +; + +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_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 + +/* + 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 // EDG 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 +; + +@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 + ; + +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. + */ +#keyset[aggregate, field] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. + */ +#keyset[aggregate, element_index] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: 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/34549c3b0937002f11037d01822ebe99442c1402/upgrade.properties b/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/upgrade.properties new file mode 100644 index 00000000000..b8154844dbd --- /dev/null +++ b/cpp/downgrades/34549c3b0937002f11037d01822ebe99442c1402/upgrade.properties @@ -0,0 +1,4 @@ +description: Support all constant attribute arguments +compatibility: backwards +attribute_arg_constant.rel: delete +attribute_args.rel: run attribute_args.qlo diff --git a/cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/old.dbscheme b/cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/old.dbscheme new file mode 100644 index 00000000000..23f7cbb88a4 --- /dev/null +++ b/cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/old.dbscheme @@ -0,0 +1,2125 @@ + +/** + * 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 @macroinvocations.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 + | 2 = constructor + | 3 = destructor + | 4 = conversion + | 5 = operator + | 6 = builtin // 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 +); + +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 = error + | 2 = unknown + | 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 = __int8 // Microsoft-specific + | 21 = __int16 // Microsoft-specific + | 22 = __int32 // Microsoft-specific + | 23 = __int64 // Microsoft-specific + | 24 = float + | 25 = double + | 26 = long_double + | 27 = _Complex_float // C99-specific + | 28 = _Complex_double // C99-specific + | 29 = _Complex_long double // C99-specific + | 30 = _Imaginary_float // C99-specific + | 31 = _Imaginary_double // C99-specific + | 32 = _Imaginary_long_double // C99-specific + | 33 = wchar_t // Microsoft-specific + | 34 = decltype_nullptr // C++11 + | 35 = __int128 + | 36 = unsigned___int128 + | 37 = signed___int128 + | 38 = __float128 + | 39 = _Complex___float128 + | 40 = _Decimal32 + | 41 = _Decimal64 + | 42 = _Decimal128 + | 43 = char16_t + | 44 = char32_t + | 45 = _Float32 + | 46 = _Float32x + | 47 = _Float64 + | 48 = _Float64x + | 49 = _Float128 + | 50 = _Float128x + | 51 = char8_t + ; +*/ +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 EDG frontend. See symbol_ref.h there. + 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 +; + +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_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 + +/* + 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 // EDG 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 +; + +@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 + ; + +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. + */ +#keyset[aggregate, field] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. + */ +#keyset[aggregate, element_index] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: 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/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..34549c3b093 --- /dev/null +++ b/cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/semmlecode.cpp.dbscheme @@ -0,0 +1,2130 @@ + +/** + * 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 @macroinvocations.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 + | 2 = constructor + | 3 = destructor + | 4 = conversion + | 5 = operator + | 6 = builtin // 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 +); + +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 = error + | 2 = unknown + | 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 = __int8 // Microsoft-specific + | 21 = __int16 // Microsoft-specific + | 22 = __int32 // Microsoft-specific + | 23 = __int64 // Microsoft-specific + | 24 = float + | 25 = double + | 26 = long_double + | 27 = _Complex_float // C99-specific + | 28 = _Complex_double // C99-specific + | 29 = _Complex_long double // C99-specific + | 30 = _Imaginary_float // C99-specific + | 31 = _Imaginary_double // C99-specific + | 32 = _Imaginary_long_double // C99-specific + | 33 = wchar_t // Microsoft-specific + | 34 = decltype_nullptr // C++11 + | 35 = __int128 + | 36 = unsigned___int128 + | 37 = signed___int128 + | 38 = __float128 + | 39 = _Complex___float128 + | 40 = _Decimal32 + | 41 = _Decimal64 + | 42 = _Decimal128 + | 43 = char16_t + | 44 = char32_t + | 45 = _Float32 + | 46 = _Float32x + | 47 = _Float64 + | 48 = _Float64x + | 49 = _Float128 + | 50 = _Float128x + | 51 = char8_t + ; +*/ +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 EDG frontend. See symbol_ref.h there. + 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 + +/* + 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 // EDG 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 +; + +@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 + ; + +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. + */ +#keyset[aggregate, field] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. + */ +#keyset[aggregate, element_index] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: 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/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/upgrade.properties b/cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/upgrade.properties new file mode 100644 index 00000000000..1b45a2696ee --- /dev/null +++ b/cpp/ql/lib/upgrades/23f7cbb88a4eb29f30c3490363dc201bc054c5ff/upgrade.properties @@ -0,0 +1,2 @@ +description: Support all constant attribute arguments +compatibility: partial From 32a2363f8518d12d965e1a50842f3b1095739e5a Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 10 Aug 2022 06:43:32 +0200 Subject: [PATCH 720/736] C++: Add change note --- .../2022-08-10-constant-attribute-argument-support.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2022-08-10-constant-attribute-argument-support.md diff --git a/cpp/ql/lib/change-notes/2022-08-10-constant-attribute-argument-support.md b/cpp/ql/lib/change-notes/2022-08-10-constant-attribute-argument-support.md new file mode 100644 index 00000000000..056190026a8 --- /dev/null +++ b/cpp/ql/lib/change-notes/2022-08-10-constant-attribute-argument-support.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added a predicate `getValueConstant` to `AttributeArgument` that yields the argument value as an `Expr` when the value is a constant expression. From db614bda291e110c3f53cd42eb1057f0684279b5 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 23:30:29 +0200 Subject: [PATCH 721/736] generalize the ql/misspelling query to work on all kinds of comments --- ql/ql/src/codeql_ql/style/MisspellingQuery.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ql/ql/src/codeql_ql/style/MisspellingQuery.qll b/ql/ql/src/codeql_ql/style/MisspellingQuery.qll index 3c51df79a00..822a1cfcb07 100644 --- a/ql/ql/src/codeql_ql/style/MisspellingQuery.qll +++ b/ql/ql/src/codeql_ql/style/MisspellingQuery.qll @@ -52,8 +52,8 @@ bindingset[s] string getACommentWord(string s) { result = s.regexpFind("\\b\\w+\\b", _, _) } string getAWord(AstNode node, string kind) { - result = getACommentWord(node.(QLDoc).getContents()).toLowerCase() and - kind = "QLDoc comment" + result = getACommentWord(node.(Comment).getContents()).toLowerCase() and + kind = "comment" or exists(string nodeKind | result = getACamelCaseWord(getName(node, nodeKind)).toLowerCase() and From 887f6557edd3b21062a0ea523a4143bc6743f3b8 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 23:31:47 +0200 Subject: [PATCH 722/736] fix common misspellings throughout github/codeql --- cpp/ql/lib/semmle/code/cpp/controlflow/BasicBlocks.qll | 2 +- .../semmle/code/cpp/models/implementations/Allocation.qll | 2 +- cpp/ql/lib/semmle/code/cpp/security/Overflow.qll | 4 ++-- .../src/Likely Bugs/Likely Typos/AssignWhereCompareMeant.ql | 2 +- .../Likely Bugs/Likely Typos/inconsistentLoopDirection.ql | 2 +- .../csharp/controlflow/internal/ControlFlowGraphImpl.qll | 2 +- .../code/csharp/dataflow/internal/TaintTrackingPrivate.qll | 2 +- go/ql/lib/semmle/go/Expr.qll | 2 +- go/ql/lib/semmle/go/dataflow/FlowSummary.qll | 2 +- .../lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll | 2 +- go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll | 2 +- go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll | 4 ++-- go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll | 2 +- go/ql/lib/semmle/go/security/ExternalAPIs.qll | 4 ++-- .../semmle/go/security/IncorrectIntegerConversionLib.qll | 2 +- go/ql/lib/semmle/go/security/Xss.qll | 2 +- go/ql/src/experimental/CWE-807/SensitiveConditionBypass.ql | 4 ++-- java/ql/lib/semmle/code/java/frameworks/android/Intent.qll | 2 +- java/ql/lib/semmle/code/java/frameworks/guava/Cache.qll | 2 +- .../lib/semmle/code/java/frameworks/guava/Collections.qll | 4 ++-- .../lib/semmle/code/java/frameworks/spring/SpringHttp.qll | 2 +- java/ql/lib/semmle/code/java/regex/RegexTreeView.qll | 4 ++-- java/ql/lib/semmle/code/java/regex/regex.qll | 2 +- .../test/endpoint_large_scale/FilteredTruePositives.ql | 2 +- javascript/ql/lib/semmle/javascript/PrintAst.qll | 2 +- javascript/ql/lib/semmle/javascript/Routing.qll | 2 +- .../ql/lib/semmle/javascript/frameworks/XmlParsers.qll | 2 +- .../ql/src/Declarations/UnreachableMethodOverloads.ql | 2 +- python/ql/lib/semmle/python/Files.qll | 2 +- .../semmle/python/dataflow/new/internal/DataFlowUtil.qll | 2 +- .../semmle/python/frameworks/internal/SubclassFinder.qll | 2 +- .../ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIs.qll | 2 +- ql/ql/src/codeql_ql/ast/Ast.qll | 2 +- ql/ql/src/codeql_ql/ast/internal/AstNodes.qll | 2 +- .../codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll | 2 +- ruby/ql/lib/codeql/ruby/frameworks/ActiveSupport.qll | 2 +- .../frameworks/data/internal/ApiGraphModelsSpecific.qll | 2 +- .../swift/controlflow/internal/ControlFlowElements.qll | 4 ++-- .../swift/controlflow/internal/ControlFlowGraphImpl.qll | 6 +++--- 39 files changed, 48 insertions(+), 48 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/BasicBlocks.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/BasicBlocks.qll index 11a7e8f9e64..ebea83e47e5 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/BasicBlocks.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/BasicBlocks.qll @@ -231,7 +231,7 @@ class BasicBlock extends ControlFlowNodeBase { exists(Function f | f.getBlock() = this) or exists(TryStmt t, BasicBlock tryblock | - // a `Handler` preceeds the `CatchBlock`, and is always the beginning + // a `Handler` precedes the `CatchBlock`, and is always the beginning // of a new `BasicBlock` (see `primitive_basic_block_entry_node`). this.(Handler).getTryStmt() = t and tryblock.isReachable() and diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/Allocation.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/Allocation.qll index 892673ff1c8..325f6a6470b 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/Allocation.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/Allocation.qll @@ -218,7 +218,7 @@ private class CallAllocationExpr extends AllocationExpr, FunctionCall { exists(target.getReallocPtrArg()) and this.getArgument(target.getSizeArg()).getValue().toInt() = 0 ) and - // these are modelled directly (and more accurately), avoid duplication + // these are modeled directly (and more accurately), avoid duplication not exists(NewOrNewArrayExpr new | new.getAllocatorCall() = this) } diff --git a/cpp/ql/lib/semmle/code/cpp/security/Overflow.qll b/cpp/ql/lib/semmle/code/cpp/security/Overflow.qll index 4d6d22c086a..cf0d633cb6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/Overflow.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/Overflow.qll @@ -50,7 +50,7 @@ VariableAccess varUse(LocalScopeVariable v) { result = v.getAnAccess() } * Holds if `e` potentially overflows and `use` is an operand of `e` that is not guarded. */ predicate missingGuardAgainstOverflow(Operation e, VariableAccess use) { - // Since `e` is guarenteed to be a `BinaryArithmeticOperation`, a `UnaryArithmeticOperation` or + // Since `e` is guaranteed to be a `BinaryArithmeticOperation`, a `UnaryArithmeticOperation` or // an `AssignArithmeticOperation` by the other constraints in this predicate, we know that // `convertedExprMightOverflowPositively` will have a result even when `e` is not analyzable // by `SimpleRangeAnalysis`. @@ -80,7 +80,7 @@ predicate missingGuardAgainstOverflow(Operation e, VariableAccess use) { * Holds if `e` potentially underflows and `use` is an operand of `e` that is not guarded. */ predicate missingGuardAgainstUnderflow(Operation e, VariableAccess use) { - // Since `e` is guarenteed to be a `BinaryArithmeticOperation`, a `UnaryArithmeticOperation` or + // Since `e` is guaranteed to be a `BinaryArithmeticOperation`, a `UnaryArithmeticOperation` or // an `AssignArithmeticOperation` by the other constraints in this predicate, we know that // `convertedExprMightOverflowNegatively` will have a result even when `e` is not analyzable // by `SimpleRangeAnalysis`. diff --git a/cpp/ql/src/Likely Bugs/Likely Typos/AssignWhereCompareMeant.ql b/cpp/ql/src/Likely Bugs/Likely Typos/AssignWhereCompareMeant.ql index e60b763bc53..3d2f6830bf5 100644 --- a/cpp/ql/src/Likely Bugs/Likely Typos/AssignWhereCompareMeant.ql +++ b/cpp/ql/src/Likely Bugs/Likely Typos/AssignWhereCompareMeant.ql @@ -68,7 +68,7 @@ class BooleanControllingAssignmentInExpr extends BooleanControllingAssignment { // if((a = b) && use_value(a)) { ... } // ``` // where the assignment is meant to update the value of `a` before it's used in some other boolean - // subexpression that is guarenteed to be evaluate _after_ the assignment. + // subexpression that is guaranteed to be evaluate _after_ the assignment. this.isParenthesised() and exists(LogicalAndExpr parent, Variable var, VariableAccess access | var = this.getLValue().(VariableAccess).getTarget() and diff --git a/cpp/ql/src/Likely Bugs/Likely Typos/inconsistentLoopDirection.ql b/cpp/ql/src/Likely Bugs/Likely Typos/inconsistentLoopDirection.ql index 9646d8b3adf..38cda5d0560 100644 --- a/cpp/ql/src/Likely Bugs/Likely Typos/inconsistentLoopDirection.ql +++ b/cpp/ql/src/Likely Bugs/Likely Typos/inconsistentLoopDirection.ql @@ -51,7 +51,7 @@ predicate illDefinedDecrForStmt( ( upperBound(initialCondition) < lowerBound(terminalCondition) and ( - // exclude cases where the loop counter is `unsigned` (where wrapping behaviour can be used deliberately) + // exclude cases where the loop counter is `unsigned` (where wrapping behavior can be used deliberately) v.getUnspecifiedType().(IntegralType).isSigned() or initialCondition.getValue().toInt() = 0 ) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index b63d804216b..6bd0d5d033f 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -1288,7 +1288,7 @@ module Statements { } final override predicate first(ControlFlowElement first) { - // Unlike most other statements, `foreach` statements are not modelled in + // Unlike most other statements, `foreach` statements are not modeled in // pre-order, because we use the `foreach` node itself to represent the // emptiness test that determines whether to execute the loop body first(this.getIterableExpr(), first) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll index f263ee0114b..ec29d704248 100755 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll @@ -149,7 +149,7 @@ private module Cached { // Taint members readStep(nodeFrom, any(TaintedMember m).(FieldOrProperty).getContent(), nodeTo) or - // Although flow through collections is modelled precisely using stores/reads, we still + // Although flow through collections is modeled precisely using stores/reads, we still // allow flow out of a _tainted_ collection. This is needed in order to support taint- // tracking configurations where the source is a collection readStep(nodeFrom, TElementContent(), nodeTo) diff --git a/go/ql/lib/semmle/go/Expr.qll b/go/ql/lib/semmle/go/Expr.qll index d32d87287fe..f3aaa2f1c2c 100644 --- a/go/ql/lib/semmle/go/Expr.qll +++ b/go/ql/lib/semmle/go/Expr.qll @@ -1671,7 +1671,7 @@ class MulExpr extends @mulexpr, ArithmeticBinaryExpr { } /** - * A divison or quotient expression using `/`. + * A division or quotient expression using `/`. * * Examples: * diff --git a/go/ql/lib/semmle/go/dataflow/FlowSummary.qll b/go/ql/lib/semmle/go/dataflow/FlowSummary.qll index 39f8774716a..271e185a7f6 100644 --- a/go/ql/lib/semmle/go/dataflow/FlowSummary.qll +++ b/go/ql/lib/semmle/go/dataflow/FlowSummary.qll @@ -1,5 +1,5 @@ /** - * Provides classes and predicates for definining flow summaries. + * Provides classes and predicates for defining flow summaries. */ import go diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll index c28ceabb438..c139593b1b8 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll @@ -280,7 +280,7 @@ cached private module Cached { /** * If needed, call this predicate from `DataFlowImplSpecific.qll` in order to - * force a stage-dependency on the `DataFlowImplCommon.qll` stage and therby + * force a stage-dependency on the `DataFlowImplCommon.qll` stage and thereby * collapsing the two stages. */ cached diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll index 9b8cfb194d7..8bbd9030d82 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll @@ -110,7 +110,7 @@ predicate jumpStep(Node n1, Node n2) { * value of `node1`. */ predicate storeStep(Node node1, Content c, Node node2) { - // a write `(*p).f = rhs` is modelled as two store steps: `rhs` is flows into field `f` of `(*p)`, + // a write `(*p).f = rhs` is modeled as two store steps: `rhs` is flows into field `f` of `(*p)`, // which in turn flows into the pointer content of `p` exists(Write w, Field f, DataFlow::Node base, DataFlow::Node rhs | w.writesField(base, f, rhs) | node1 = rhs and diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll index 1ad9e6fb6ac..d0a92a322c0 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll @@ -269,7 +269,7 @@ module BarrierGuard { } /** - * Holds if `guard` markes a point in the control-flow graph where this node + * Holds if `guard` marks a point in the control-flow graph where this node * is known to validate `nd`, which is represented by `ap`. * * This predicate exists to enforce a good join order in `getAGuardedNode`. @@ -280,7 +280,7 @@ module BarrierGuard { } /** - * Holds if `guard` markes a point in the control-flow graph where this node + * Holds if `guard` marks a point in the control-flow graph where this node * is known to validate `nd`. */ private predicate guards(Node g, ControlFlow::ConditionGuardNode guard, Node nd) { diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll index 05ecba7dd19..c5e48e7d295 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll @@ -149,7 +149,7 @@ module NetHttp { ) or exists(TaintTracking::FunctionModel model | - // A modelled function conveying taint from some input to the response writer, + // A modeled function conveying taint from some input to the response writer, // e.g. `io.Copy(responseWriter, someTaintedReader)` model.taintStep(this, responseWriter) and responseWriter.getType().implements("net/http", "ResponseWriter") diff --git a/go/ql/lib/semmle/go/security/ExternalAPIs.qll b/go/ql/lib/semmle/go/security/ExternalAPIs.qll index a1172a66f8d..d09f6aaa4c5 100644 --- a/go/ql/lib/semmle/go/security/ExternalAPIs.qll +++ b/go/ql/lib/semmle/go/security/ExternalAPIs.qll @@ -65,7 +65,7 @@ class ExternalAPIDataNode extends DataFlow::Node { this = call.getReceiver() and i = -1 ) and - // Not defined in the code that is being analysed + // Not defined in the code that is being analyzed not exists(call.getACallee().getBody()) and // Not a function pointer, unless it's declared at package scope not isProbableLocalFunctionPointer(call) and @@ -124,7 +124,7 @@ Package getAPackageWithFunctionModels() { Package getAPackageWithModels() { result = getAPackageWithFunctionModels() or - // An incomplete list of packages which have been modelled but do not have any function models + // An incomplete list of packages which have been modeled but do not have any function models result.getPath() in [ Logrus::packagePath(), GolangOrgXNetWebsocket::packagePath(), GorillaWebsocket::packagePath() ] diff --git a/go/ql/lib/semmle/go/security/IncorrectIntegerConversionLib.qll b/go/ql/lib/semmle/go/security/IncorrectIntegerConversionLib.qll index 2ef5814c9fa..fbe73ae1128 100644 --- a/go/ql/lib/semmle/go/security/IncorrectIntegerConversionLib.qll +++ b/go/ql/lib/semmle/go/security/IncorrectIntegerConversionLib.qll @@ -98,7 +98,7 @@ class ConversionWithoutBoundsCheckConfig extends TaintTracking::Configuration { ) and // `effectiveBitSize` could be any value between 0 and 64, but we // can round it up to the nearest size of an integer type without - // changing behaviour. + // changing behavior. sourceBitSize = min(int b | b in [0, 8, 16, 32, 64] and b >= effectiveBitSize) ) } diff --git a/go/ql/lib/semmle/go/security/Xss.qll b/go/ql/lib/semmle/go/security/Xss.qll index 234007e4390..2ed5c5761a7 100644 --- a/go/ql/lib/semmle/go/security/Xss.qll +++ b/go/ql/lib/semmle/go/security/Xss.qll @@ -14,7 +14,7 @@ module SharedXss { /** * Gets the kind of vulnerability to report in the alert message. * - * Defaults to `Cross-site scripting`, but may be overriden for sinks + * Defaults to `Cross-site scripting`, but may be overridden for sinks * that do not allow script injection, but injection of other undesirable HTML elements. */ string getVulnerabilityKind() { result = "Cross-site scripting" } diff --git a/go/ql/src/experimental/CWE-807/SensitiveConditionBypass.ql b/go/ql/src/experimental/CWE-807/SensitiveConditionBypass.ql index 35ba33bd056..632e90065e6 100644 --- a/go/ql/src/experimental/CWE-807/SensitiveConditionBypass.ql +++ b/go/ql/src/experimental/CWE-807/SensitiveConditionBypass.ql @@ -20,9 +20,9 @@ from where // there should be a flow between source and the operand sink config.hasFlowPath(source, operand) and - // both the operand should belong to the same comparision expression + // both the operand should belong to the same comparison expression operand.getNode().asExpr() = comp.getAnOperand() and - // get the ConditionGuardNode corresponding to the comparision expr. + // get the ConditionGuardNode corresponding to the comparison expr. guard.getCondition() = comp and // the sink `sensitiveSink` should be sensitive, isSensitive(sensitiveSink, classification) and diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll b/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll index d9aceb3de21..51ee5088314 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll @@ -283,7 +283,7 @@ private class IntentBundleFlowSteps extends SummaryModelCsv { "android.os;Bundle;true;putStringArrayList;;;Argument[1];Argument[-1].MapValue;value;manual", "android.os;Bundle;true;readFromParcel;;;Argument[0];Argument[-1].MapKey;taint;manual", "android.os;Bundle;true;readFromParcel;;;Argument[0];Argument[-1].MapValue;taint;manual", - // currently only the Extras part of the intent and the data field are fully modelled + // currently only the Extras part of the intent and the data field are fully modeled "android.content;Intent;false;Intent;(Intent);;Argument[0].SyntheticField[android.content.Intent.extras].MapKey;Argument[-1].SyntheticField[android.content.Intent.extras].MapKey;value;manual", "android.content;Intent;false;Intent;(Intent);;Argument[0].SyntheticField[android.content.Intent.extras].MapValue;Argument[-1].SyntheticField[android.content.Intent.extras].MapValue;value;manual", "android.content;Intent;false;Intent;(String,Uri);;Argument[1];Argument[-1].SyntheticField[android.content.Intent.data];value;manual", diff --git a/java/ql/lib/semmle/code/java/frameworks/guava/Cache.qll b/java/ql/lib/semmle/code/java/frameworks/guava/Cache.qll index 4240dc31b9c..d1f8cf4f776 100644 --- a/java/ql/lib/semmle/code/java/frameworks/guava/Cache.qll +++ b/java/ql/lib/semmle/code/java/frameworks/guava/Cache.qll @@ -13,7 +13,7 @@ private class GuavaBaseCsv extends SummaryModelCsv { // lambda flow from Argument[1] not implemented "com.google.common.cache;Cache;true;get;(Object,Callable);;Argument[-1].MapValue;ReturnValue;value;manual", "com.google.common.cache;Cache;true;getIfPresent;(Object);;Argument[-1].MapValue;ReturnValue;value;manual", - // the true flow to MapKey of ReturnValue for getAllPresent is the intersection of the these inputs, but intersections cannot be modelled fully accurately. + // the true flow to MapKey of ReturnValue for getAllPresent is the intersection of the these inputs, but intersections cannot be modeled fully accurately. "com.google.common.cache;Cache;true;getAllPresent;(Iterable);;Argument[-1].MapKey;ReturnValue.MapKey;value;manual", "com.google.common.cache;Cache;true;getAllPresent;(Iterable);;Argument[0].Element;ReturnValue.MapKey;value;manual", "com.google.common.cache;Cache;true;getAllPresent;(Iterable);;Argument[-1].MapValue;ReturnValue.MapValue;value;manual", diff --git a/java/ql/lib/semmle/code/java/frameworks/guava/Collections.qll b/java/ql/lib/semmle/code/java/frameworks/guava/Collections.qll index 31e78a1b32d..d662e7ee7cd 100644 --- a/java/ql/lib/semmle/code/java/frameworks/guava/Collections.qll +++ b/java/ql/lib/semmle/code/java/frameworks/guava/Collections.qll @@ -13,8 +13,8 @@ private class GuavaCollectCsv extends SummaryModelCsv { row = [ //"package;type;overrides;name;signature;ext;inputspec;outputspec;kind", - // Methods depending on lambda flow are not currently modelled - // Methods depending on stronger aliasing properties than we support are also not modelled. + // Methods depending on lambda flow are not currently modeled + // Methods depending on stronger aliasing properties than we support are also not modeled. "com.google.common.collect;ArrayListMultimap;true;create;(Multimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual", "com.google.common.collect;ArrayListMultimap;true;create;(Multimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual", "com.google.common.collect;ArrayTable;true;create;(Iterable,Iterable);;Argument[0].Element;ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual", diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll index 072a5cbaadc..2114b4fcc75 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll @@ -160,7 +160,7 @@ private class SpringXssSink extends XSS::XssSink { | // If a Spring request mapping method is either annotated with @ResponseBody (or equivalent), // or returns a HttpEntity or sub-type, then the return value of the method is converted into - // a HTTP reponse using a HttpMessageConverter implementation. The implementation is chosen + // a HTTP response using a HttpMessageConverter implementation. The implementation is chosen // based on the return type of the method, and the Accept header of the request. // // By default, the only message converter which produces a response which is vulnerable to diff --git a/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll b/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll index c3592634fa0..de2ab7ca181 100644 --- a/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll +++ b/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll @@ -6,7 +6,7 @@ private import semmle.code.java.regex.regex /** * An element containing a regular expression term, that is, either * a string literal (parsed as a regular expression; the root of the parse tree) - * or another regular expression term (a decendent of the root). + * or another regular expression term (a descendant of the root). * * For sequences and alternations, we require at least two children. * Otherwise, we wish to represent the term differently. @@ -52,7 +52,7 @@ private newtype TRegExpParent = /** * An element containing a regular expression term, that is, either * a string literal (parsed as a regular expression; the root of the parse tree) - * or another regular expression term (a decendent of the root). + * or another regular expression term (a descendant of the root). */ class RegExpParent extends TRegExpParent { /** Gets a textual representation of this element. */ diff --git a/java/ql/lib/semmle/code/java/regex/regex.qll b/java/ql/lib/semmle/code/java/regex/regex.qll index ff20b17b6fa..aca51b74a03 100644 --- a/java/ql/lib/semmle/code/java/regex/regex.qll +++ b/java/ql/lib/semmle/code/java/regex/regex.qll @@ -62,7 +62,7 @@ abstract class RegexString extends StringLiteral { /** * Helper predicate for `quote`. - * Holds if the char at `pos` is the one-based `index`th occurence of a quote delimiter (`\Q` or `\E`) + * Holds if the char at `pos` is the one-based `index`th occurrence of a quote delimiter (`\Q` or `\E`) * Result is `true` for `\Q` and `false` for `\E`. */ private boolean quoteDelimiter(int index, int pos) { diff --git a/javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/FilteredTruePositives.ql b/javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/FilteredTruePositives.ql index 1e1f7c91ae2..9edae6cec5e 100644 --- a/javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/FilteredTruePositives.ql +++ b/javascript/ql/experimental/adaptivethreatmodeling/test/endpoint_large_scale/FilteredTruePositives.ql @@ -3,7 +3,7 @@ * * This test checks several components of the endpoint filters for each query to see whether they * filter out any known sinks. It explicitly does not check the endpoint filtering step that's based - * on whether the endpoint is an argument to a modelled function, since this necessarily filters out + * on whether the endpoint is an argument to a modeled function, since this necessarily filters out * all known sinks. However, we can test all the other filtering steps against the set of known * sinks. * diff --git a/javascript/ql/lib/semmle/javascript/PrintAst.qll b/javascript/ql/lib/semmle/javascript/PrintAst.qll index 672c2ab5a9e..95c722f5402 100644 --- a/javascript/ql/lib/semmle/javascript/PrintAst.qll +++ b/javascript/ql/lib/semmle/javascript/PrintAst.qll @@ -36,7 +36,7 @@ private predicate isNotNeeded(Locatable el) { el.getLocation().getStartLine() = 0 and el.getLocation().getStartColumn() = 0 or - // relaxing aggresive type inference. + // relaxing aggressive type inference. none() } diff --git a/javascript/ql/lib/semmle/javascript/Routing.qll b/javascript/ql/lib/semmle/javascript/Routing.qll index b89a2e257a8..96d3e0a7f51 100644 --- a/javascript/ql/lib/semmle/javascript/Routing.qll +++ b/javascript/ql/lib/semmle/javascript/Routing.qll @@ -245,7 +245,7 @@ module Routing { */ pragma[inline] private predicate isGuardedByNodeInternal(Node guard) { - // Look for a common ancestor `fork` whose child leading to `guard` ("base1") preceeds + // Look for a common ancestor `fork` whose child leading to `guard` ("base1") precedes // the child leading to `this` ("base2"). // // Schematically: diff --git a/javascript/ql/lib/semmle/javascript/frameworks/XmlParsers.qll b/javascript/ql/lib/semmle/javascript/frameworks/XmlParsers.qll index 143d3b23763..bf8ff72e412 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/XmlParsers.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/XmlParsers.qll @@ -198,7 +198,7 @@ module XML { override predicate resolvesEntities(XML::EntityKind kind) { kind = InternalEntity() } // The result is an XMLDocument (https://developer.mozilla.org/en-US/docs/Web/API/XMLDocument). - // The API of the XMLDocument is not modelled. + // The API of the XMLDocument is not modeled. override DataFlow::Node getAResult() { result.asExpr() = this } } diff --git a/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql b/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql index cb3dbffff35..23406eb0b72 100644 --- a/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql +++ b/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql @@ -111,7 +111,7 @@ private MethodSignature getMethodSignatureWithFingerprint( * Holds if the two method signatures are overloads of each other and have the same parameter types. */ predicate signaturesMatch(MethodSignature method, MethodSignature other) { - // the intial search for another overload in a single call for better join-order. + // the initial search for another overload in a single call for better join-order. other = getMethodSignatureWithFingerprint(method.getDeclaringType(), method.getName(), method.getBody().getNumParameter(), getKind(method)) and diff --git a/python/ql/lib/semmle/python/Files.qll b/python/ql/lib/semmle/python/Files.qll index 6de19807ac1..4d331a26308 100644 --- a/python/ql/lib/semmle/python/Files.qll +++ b/python/ql/lib/semmle/python/Files.qll @@ -21,7 +21,7 @@ class File extends Container, @file { /** Whether this file is a source code file. */ predicate fromSource() { - /* If we start to analyse .pyc files, then this will have to change. */ + /* If we start to analyze .pyc files, then this will have to change. */ any() } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowUtil.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowUtil.qll index 4d0d52e9a4b..ca10138dd58 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowUtil.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowUtil.qll @@ -71,7 +71,7 @@ deprecated Node importNode(string name) { // ``` // // Where `foo_module_tracker` is a type tracker that tracks references to the `foo` module. - // Because named imports are modelled as `AttrRead`s, the statement `from foo import bar as baz` + // Because named imports are modeled as `AttrRead`s, the statement `from foo import bar as baz` // is interpreted as if it was an assignment `baz = foo.bar`, which means `baz` gets tracked as a // reference to `foo.bar`, as desired. exists(ImportExpr imp_expr | diff --git a/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll b/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll index 04b0a9e4afd..65125d20f80 100644 --- a/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll +++ b/python/ql/lib/semmle/python/frameworks/internal/SubclassFinder.qll @@ -42,7 +42,7 @@ private module NotExposed { // Implementation below // --------------------------------------------------------------------------- // - // We are looking to find all subclassed of the already modelled classes, and ideally + // We are looking to find all subclassed of the already modeled classes, and ideally // we would identify an `API::Node` for each (then `toString` would give the API // path). // diff --git a/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIs.qll b/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIs.qll index 120a7967b3a..15cc032ca37 100644 --- a/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIs.qll +++ b/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIs.qll @@ -35,7 +35,7 @@ private import semmle.python.objects.ObjectInternal // functionality into `BuiltinFunctionValue` and `BuiltinMethodValue`, but will // probably require some more work: for this query, it's totally ok to use // `builtins.open` for the code `open(f)`, but well, it requires a bit of thinking to -// figure out if that is desireable in general. I simply skipped a corner here! +// figure out if that is desirable in general. I simply skipped a corner here! // 4. TaintTrackingPrivate: Nothing else gives us access to `defaultAdditionalTaintStep` :( /** * A callable that is considered a "safe" external API from a security perspective. diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index 03a26868657..90ab7395018 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -23,7 +23,7 @@ class AstNode extends TAstNode { /** Gets the location of the AST node. */ cached - Location getLocation() { result = this.getFullLocation() } // overriden in some subclasses + Location getLocation() { result = this.getFullLocation() } // overridden in some subclasses /** Gets the location that spans the entire AST node. */ cached diff --git a/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll b/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll index ce5cd352dd8..8b362e8b3a4 100644 --- a/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll +++ b/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll @@ -233,7 +233,7 @@ module AstConsistency { not exists(node.getParent()) and not node.getLocation().getStartColumn() = 1 and // startcolumn = 1 <=> top level in file <=> fine to have no parent exists(node.toString()) and // <- there are a few parse errors in "global-data-flow-java-1.ql", this way we filter them out. - not node instanceof YAML::YAMLNode and // parents for YAML doens't work + not node instanceof YAML::YAMLNode and // parents for YAML does't work not (node instanceof QLDoc and node.getLocation().getFile().getExtension() = "dbscheme") // qldoc in dbschemes are not hooked up } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll index 2d7687db9ac..95a2602f87c 100755 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll @@ -96,7 +96,7 @@ private module Cached { or FlowSummaryImpl::Private::Steps::summaryLocalStep(nodeFrom, nodeTo, false) or - // Although flow through collections is modelled precisely using stores/reads, we still + // Although flow through collections is modeled precisely using stores/reads, we still // allow flow out of a _tainted_ collection. This is needed in order to support taint- // tracking configurations where the source is a collection. exists(DataFlow::ContentSet c | readStep(nodeFrom, c, nodeTo) | diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveSupport.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveSupport.qll index 11b2019e9cf..fc2b7c44cda 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveSupport.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveSupport.qll @@ -40,7 +40,7 @@ module ActiveSupport { * Flow summary for methods which transform the receiver in some way, possibly preserving taint. */ private class StringTransformSummary extends SummarizedCallable { - // We're modelling a lot of different methods, so we make up a name for this summary. + // We're modeling a lot of different methods, so we make up a name for this summary. StringTransformSummary() { this = "ActiveSupportStringTransform" } override MethodCall getACall() { 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 b1a85a9ec8a..af99bec76dc 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsSpecific.qll @@ -40,7 +40,7 @@ private import codeql.ruby.dataflow.internal.DataFlowDispatch as DataFlowDispatc */ bindingset[package] predicate isPackageUsed(string package) { - // For now everything is modelled as an access path starting at any top-level, so the package name has no effect. + // For now everything is modeled as an access path starting at any top-level, so the package name has no effect. // // We allow an arbitrary package name so that the model can record the name of the package in case it's needed in the future. // diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowElements.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowElements.qll index 87d73c2c388..3e0cc8f56b9 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowElements.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowElements.qll @@ -91,11 +91,11 @@ predicate isPropertyObserverElement( } class ControlFlowElement extends TControlFlowElement { - string toString() { none() } // overriden in subclasses + string toString() { none() } // overridden in subclasses AstNode asAstNode() { none() } - Location getLocation() { none() } // overriden in subclasses + Location getLocation() { none() } // overridden in subclasses } class AstElement extends ControlFlowElement, TAstElement { diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index 2b7e7b5b963..bbcd68d116a 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -286,7 +286,7 @@ module Stmts { astLast(ast.getAnElement().getPattern().getFullyUnresolved(), last, c) and not c.(MatchingCompletion).isMatch() or - // Stop if we sucesfully evaluated all the conditionals + // Stop if we successfully evaluated all the conditionals ( astLast(ast.getLastElement().getBoolean().getFullyConverted(), last, c) or @@ -470,7 +470,7 @@ module Stmts { } final override predicate first(ControlFlowElement first) { - // Unlike most other statements, `foreach` statements are not modelled in + // Unlike most other statements, `foreach` statements are not modeled in // pre-order, because we use the `foreach` node itself to represent the // emptiness test that determines whether to execute the loop body astFirst(ast.getSequence().getFullyConverted(), first) @@ -605,7 +605,7 @@ module Stmts { c.(MatchingCompletion).isNonMatch() or // Or because, there is no guard (in which case we can also finish the evaluation - // here on a succesful match). + // here on a successful match). c.(MatchingCompletion).isMatch() and not ast.hasGuard() ) From a66229ee9df67cb3711cf31e8067711c0d2cc418 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Jul 2022 23:39:12 +0200 Subject: [PATCH 723/736] update the expected output of the misspelling test --- ql/ql/test/queries/style/Misspelling/Misspelling.expected | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ql/ql/test/queries/style/Misspelling/Misspelling.expected b/ql/ql/test/queries/style/Misspelling/Misspelling.expected index 65f9f245d3b..59d2204d953 100644 --- a/ql/ql/test/queries/style/Misspelling/Misspelling.expected +++ b/ql/ql/test/queries/style/Misspelling/Misspelling.expected @@ -1,6 +1,6 @@ -| Test.qll:1:1:3:3 | QLDoc | This QLDoc comment contains the common misspelling 'mispelled', which should instead be 'misspelled'. | +| Test.qll:1:1:3:3 | QLDoc | This comment contains the common misspelling 'mispelled', which should instead be 'misspelled'. | | Test.qll:4:7:4:26 | Class PublicallyAccessible | This class name contains the common misspelling 'publically', which should instead be 'publicly'. | | Test.qll:5:3:5:20 | FieldDecl | This field name contains the common misspelling 'occurences', which should instead be 'occurrences'. | | Test.qll:10:13:10:23 | ClassPredicate hasAgrument | This classPredicate name contains the common misspelling 'agrument', which should instead be 'argument'. | -| Test.qll:13:1:16:3 | QLDoc | This QLDoc comment contains the non-US spelling 'colour', which should instead be 'color'. | +| Test.qll:13:1:16:3 | QLDoc | This comment contains the non-US spelling 'colour', which should instead be 'color'. | | Test.qll:17:7:17:17 | Class AnalysedInt | This class name contains the non-US spelling 'analysed', which should instead be 'analyzed'. | From 803e079dabe0922ecdf05d87c6fdc08ea1744d7f Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 10 Aug 2022 23:23:32 +0200 Subject: [PATCH 724/736] fix accidental typo Co-authored-by: Chris Smowton --- ql/ql/src/codeql_ql/ast/internal/AstNodes.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll b/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll index 8b362e8b3a4..ad8ba6b04e1 100644 --- a/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll +++ b/ql/ql/src/codeql_ql/ast/internal/AstNodes.qll @@ -233,7 +233,7 @@ module AstConsistency { not exists(node.getParent()) and not node.getLocation().getStartColumn() = 1 and // startcolumn = 1 <=> top level in file <=> fine to have no parent exists(node.toString()) and // <- there are a few parse errors in "global-data-flow-java-1.ql", this way we filter them out. - not node instanceof YAML::YAMLNode and // parents for YAML does't work + not node instanceof YAML::YAMLNode and // parents for YAML doesn't work not (node instanceof QLDoc and node.getLocation().getFile().getExtension() = "dbscheme") // qldoc in dbschemes are not hooked up } From 33ce9552cb88f4950f11ec5947571e8e0c1c4fc7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 00:17:52 +0000 Subject: [PATCH 725/736] 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 598035e03c3..0849396b1ba 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -36,7 +36,7 @@ java.lang,13,,58,,,,,,,,,,,8,,,,,4,,,1,,,,,,,,,,,,,,,46,12 java.net,10,3,7,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,3,7, java.nio,15,,6,,13,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,6, java.sql,11,,,,,,,,,4,,,,,,,,,,,,,,,,7,,,,,,,,,,,, -java.util,44,,458,,,,,,,,,,,34,,,,,,5,2,,1,2,,,,,,,,,,,,,36,422 +java.util,44,,461,,,,,,,,,,,34,,,,,,5,2,,1,2,,,,,,,,,,,,,36,425 javax.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,7,, javax.jms,,9,57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,57, javax.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index 06101b6633d..36e3cd89238 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -15,9 +15,9 @@ Java framework & library support `Apache HttpComponents `_,"``org.apache.hc.core5.*``, ``org.apache.http``",5,136,28,,,3,,,,25 `Google Guava `_,``com.google.common.*``,,728,39,,6,,,,, `JSON-java `_,``org.json``,,236,,,,,,,, - Java Standard Library,``java.*``,3,569,130,28,,,7,,,10 + Java Standard Library,``java.*``,3,572,130,28,,,7,,,10 Java extensions,"``javax.*``, ``jakarta.*``",63,609,32,,,4,,1,1,2 `Spring `_,``org.springframework.*``,29,476,101,,,,19,14,,29 Others,"``androidx.slice``, ``cn.hutool.core.codec``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.opensymphony.xwork2.ognl``, ``com.rabbitmq.client``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``groovy.lang``, ``groovy.util``, ``jodd.json``, ``kotlin.jvm.internal``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.apache.commons.codec``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.logging``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.logging.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.hibernate``, ``org.jboss.logging``, ``org.jdbi.v3.core``, ``org.jooq``, ``org.mvel2``, ``org.scijava.log``, ``org.slf4j``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",65,395,932,,,,14,18,,3 - Totals,,217,6430,1474,117,6,10,107,33,1,84 + Totals,,217,6433,1474,117,6,10,107,33,1,84 From 74b05d2aa4eb88b84ec1c78e323c7021f5af8e75 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Aug 2022 09:48:10 +0200 Subject: [PATCH 726/736] Kotlin: Reflection test should not refer to DataFlowPrivate. --- java/ql/test/kotlin/library-tests/reflection/reflection.ql | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/java/ql/test/kotlin/library-tests/reflection/reflection.ql b/java/ql/test/kotlin/library-tests/reflection/reflection.ql index 6957e71a188..98b6964af3b 100644 --- a/java/ql/test/kotlin/library-tests/reflection/reflection.ql +++ b/java/ql/test/kotlin/library-tests/reflection/reflection.ql @@ -1,5 +1,4 @@ import java -import semmle.code.java.dataflow.internal.DataFlowPrivate // Stop external filepaths from appearing in the results class ClassOrInterfaceLocation extends ClassOrInterface { @@ -30,9 +29,9 @@ query predicate variableInitializerType( decl.getInitializer().getType() = t2 and t2.extendsOrImplements(t3) and ( - compatible = true and compatibleTypes(t1, t2) + compatible = true and haveIntersection(t1, t2) or - compatible = false and not compatibleTypes(t1, t2) + compatible = false and notHaveIntersection(t1, t2) ) } From eb6c2882f99a71aefab27b17cd571f30d4848836 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Thu, 11 Aug 2022 10:22:32 +0200 Subject: [PATCH 727/736] cleanup pack in QL-for-QL --- .github/workflows/ql-for-ql-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index f5df6291b62..7c3b8ccb78c 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -40,6 +40,7 @@ jobs: "${CODEQL}" pack create cd .codeql/pack/codeql/ql/0.0.0 zip "${PACKZIP}" -r . + rm -rf * env: CODEQL: ${{ steps.find-codeql.outputs.codeql-path }} PACKZIP: ${{ runner.temp }}/query-pack.zip @@ -117,6 +118,7 @@ jobs: fi cd pack zip -rq ../codeql-ql.zip . + rm -rf * - uses: actions/upload-artifact@v3 with: name: codeql-ql-pack From a5239bc1e8884d115ad8615565330daf3a7c4e7c Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Thu, 11 Aug 2022 10:27:20 +0200 Subject: [PATCH 728/736] fix one more misspelling in swift --- .../codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index bbcd68d116a..41c2eaa01d9 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -1364,7 +1364,7 @@ module Exprs { or // And finally, we visit the body that potentially mutates the local variable. // Note that the CFG for the body will skip the first element in the - // body because it's guarenteed to be the variable declaration + // body because it's guaranteed to be the variable declaration // that we've already visited at i = 0. See the explanation // in `BraceStmtTree` for why this is necessary. i = 2 and From 548d7ac37daaa0aa6b082cd1e7f8e90b9b9ae61a Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Thu, 11 Aug 2022 10:49:40 +0200 Subject: [PATCH 729/736] C#: Regenerate Newtonsoft.Json test stub The newly generated stubs contain the actual values of enum constants. --- .../Newtonsoft.Json/13.0.1/Newtonsoft.Json.cs | 1168 ++++++++--------- 1 file changed, 584 insertions(+), 584 deletions(-) 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.1/Newtonsoft.Json.cs index 040a752ebbf..b506c7f4cbc 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.1/Newtonsoft.Json.cs @@ -7,32 +7,32 @@ namespace Newtonsoft // Generated from `Newtonsoft.Json.ConstructorHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum ConstructorHandling { - AllowNonPublicDefaultConstructor, - Default, + AllowNonPublicDefaultConstructor = 1, + Default = 0, } // Generated from `Newtonsoft.Json.DateFormatHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum DateFormatHandling { - IsoDateFormat, - MicrosoftDateFormat, + IsoDateFormat = 0, + MicrosoftDateFormat = 1, } // Generated from `Newtonsoft.Json.DateParseHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum DateParseHandling { - DateTime, - DateTimeOffset, - None, + 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, - RoundtripKind, - Unspecified, - Utc, + Local = 0, + RoundtripKind = 3, + Unspecified = 2, + Utc = 1, } // Generated from `Newtonsoft.Json.DefaultJsonNameTable` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` @@ -47,32 +47,32 @@ namespace Newtonsoft [System.Flags] public enum DefaultValueHandling { - Ignore, - IgnoreAndPopulate, - Include, - Populate, + Ignore = 1, + IgnoreAndPopulate = 3, + Include = 0, + Populate = 2, } // Generated from `Newtonsoft.Json.FloatFormatHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum FloatFormatHandling { - DefaultValue, - String, - Symbol, + DefaultValue = 2, + String = 0, + Symbol = 1, } // Generated from `Newtonsoft.Json.FloatParseHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum FloatParseHandling { - Decimal, - Double, + Decimal = 1, + Double = 0, } // Generated from `Newtonsoft.Json.Formatting` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum Formatting { - Indented, - None, + Indented = 1, + None = 0, } // Generated from `Newtonsoft.Json.IArrayPool<>` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` @@ -94,9 +94,9 @@ namespace Newtonsoft public class JsonArrayAttribute : Newtonsoft.Json.JsonContainerAttribute { public bool AllowNullItems { get => throw null; set => throw null; } - public JsonArrayAttribute(string id) => throw null; - public JsonArrayAttribute(bool allowNullItems) => throw null; 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` @@ -116,8 +116,8 @@ namespace Newtonsoft 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(string id) => 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; } @@ -127,70 +127,70 @@ namespace Newtonsoft public static class JsonConvert { public static System.Func DefaultSettings { get => throw null; set => throw null; } - public static T DeserializeAnonymousType(string value, T anonymousTypeObject, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static T DeserializeAnonymousType(string value, T anonymousTypeObject) => 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 object DeserializeObject(string value, System.Type type) => throw null; - public static object DeserializeObject(string value, Newtonsoft.Json.JsonSerializerSettings settings) => 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 T DeserializeObject(string value, params Newtonsoft.Json.JsonConverter[] converters) => throw null; - public static T DeserializeObject(string value, Newtonsoft.Json.JsonSerializerSettings settings) => 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 System.Xml.Linq.XDocument DeserializeXNode(string value, string deserializeRootElementName, bool writeArrayAttribute, bool encodeSpecialCharacters) => 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) => 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.XmlDocument DeserializeXmlNode(string value, string deserializeRootElementName, bool writeArrayAttribute, bool encodeSpecialCharacters) => 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) => 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 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 string False; public static string NaN; public static string NegativeInfinity; public static string Null; - public static void PopulateObject(string value, object target, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static void PopulateObject(string value, object target) => throw null; + public static void PopulateObject(string value, object target, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static string PositiveInfinity; - public static string SerializeObject(object value, params Newtonsoft.Json.JsonConverter[] converters) => throw null; - public static string SerializeObject(object value, System.Type type, 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, Newtonsoft.Json.JsonSerializerSettings settings) => 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.Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) => throw null; - public static string SerializeObject(object value, Newtonsoft.Json.Formatting formatting) => throw null; public static string SerializeObject(object value) => throw null; - public static string SerializeXNode(System.Xml.Linq.XObject node, Newtonsoft.Json.Formatting formatting, bool omitRootObject) => throw null; - public static string SerializeXNode(System.Xml.Linq.XObject node, Newtonsoft.Json.Formatting formatting) => 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, 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 SerializeXmlNode(System.Xml.XmlNode node, Newtonsoft.Json.Formatting formatting, bool omitRootObject) => throw null; - public static string SerializeXmlNode(System.Xml.XmlNode node, Newtonsoft.Json.Formatting formatting) => 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 SerializeXmlNode(System.Xml.XmlNode node) => throw null; - public static string ToString(string value, System.Char delimiter, Newtonsoft.Json.StringEscapeHandling stringEscapeHandling) => throw null; - public static string ToString(string value, System.Char delimiter) => throw null; - public static string ToString(string value) => throw null; - public static string ToString(object value) => throw null; - public static string ToString(int value) => throw null; - public static string ToString(float value) => throw null; - public static string ToString(double value) => throw null; - public static string ToString(bool value) => throw null; - public static string ToString(System.Uri value) => throw null; - public static string ToString(System.UInt64 value) => throw null; - public static string ToString(System.UInt32 value) => throw null; - public static string ToString(System.UInt16 value) => throw null; - public static string ToString(System.TimeSpan value) => throw null; - public static string ToString(System.SByte value) => throw null; - public static string ToString(System.Int64 value) => throw null; - public static string ToString(System.Int16 value) => throw null; - public static string ToString(System.Guid value) => throw null; - public static string ToString(System.Enum value) => throw null; - public static string ToString(System.Decimal value) => throw null; - public static string ToString(System.DateTimeOffset value, Newtonsoft.Json.DateFormatHandling format) => throw null; - public static string ToString(System.DateTimeOffset value) => throw null; - public static string ToString(System.DateTime value, Newtonsoft.Json.DateFormatHandling format, Newtonsoft.Json.DateTimeZoneHandling timeZoneHandling) => 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 ToString(System.DateTime value) => throw null; - public static string ToString(System.Char 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(System.Enum 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 True; public static string Undefined; } @@ -211,10 +211,10 @@ namespace Newtonsoft { public override bool CanConvert(System.Type objectType) => throw null; protected JsonConverter() => throw null; - public override 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 void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) => throw null; + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, 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` @@ -222,8 +222,8 @@ namespace Newtonsoft { public object[] ConverterParameters { get => throw null; } public System.Type ConverterType { get => throw null; } - public JsonConverterAttribute(System.Type converterType, params object[] converterParameters) => 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` @@ -235,17 +235,17 @@ namespace Newtonsoft // Generated from `Newtonsoft.Json.JsonDictionaryAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public class JsonDictionaryAttribute : Newtonsoft.Json.JsonContainerAttribute { - public JsonDictionaryAttribute(string id) => throw null; 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(string message, System.Exception innerException) => throw null; - public JsonException(string message) => throw null; - public JsonException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; 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; } // Generated from `Newtonsoft.Json.JsonExtensionDataAttribute` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` @@ -274,9 +274,9 @@ namespace Newtonsoft { public Newtonsoft.Json.NullValueHandling ItemNullValueHandling { get => throw null; set => throw null; } public Newtonsoft.Json.Required ItemRequired { get => throw null; set => throw null; } - public JsonObjectAttribute(string id) => throw null; - public JsonObjectAttribute(Newtonsoft.Json.MemberSerialization memberSerialization) => 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; } } @@ -291,8 +291,8 @@ namespace Newtonsoft 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(string propertyName) => 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; } @@ -307,6 +307,25 @@ namespace Newtonsoft // Generated from `Newtonsoft.Json.JsonReader` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public abstract class JsonReader : 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; } @@ -341,30 +360,11 @@ namespace Newtonsoft public virtual System.Threading.Tasks.Task ReadAsStringAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual System.Threading.Tasks.Task ReadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; protected void SetStateBasedOnCurrent() => throw null; - protected void SetToken(Newtonsoft.Json.JsonToken newToken, object value, bool updateIndex) => throw null; - protected void SetToken(Newtonsoft.Json.JsonToken newToken, object value) => throw null; protected void SetToken(Newtonsoft.Json.JsonToken newToken) => throw null; + protected void SetToken(Newtonsoft.Json.JsonToken newToken, object value) => throw null; + 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; - // Generated from `Newtonsoft.Json.JsonReader+State` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - protected internal enum State - { - Array, - ArrayStart, - Closed, - Complete, - Constructor, - ConstructorStart, - Error, - Finished, - Object, - ObjectStart, - PostValue, - Property, - Start, - } - - public bool SupportMultipleContent { get => throw null; set => throw null; } public virtual Newtonsoft.Json.JsonToken TokenType { get => throw null; } public virtual object Value { get => throw null; } @@ -374,11 +374,11 @@ namespace Newtonsoft // 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(string message, string path, int lineNumber, int linePosition, System.Exception innerException) => throw null; - public JsonReaderException(string message, System.Exception innerException) => throw null; - public JsonReaderException(string message) => throw null; - public JsonReaderException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; 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(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; } @@ -393,11 +393,11 @@ namespace Newtonsoft // 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(string message, string path, int lineNumber, int linePosition, System.Exception innerException) => throw null; - public JsonSerializationException(string message, System.Exception innerException) => throw null; - public JsonSerializationException(string message) => throw null; - public JsonSerializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; 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(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; } @@ -412,19 +412,19 @@ namespace Newtonsoft 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 Newtonsoft.Json.JsonConverterCollection Converters { get => throw null; } - public static Newtonsoft.Json.JsonSerializer Create(Newtonsoft.Json.JsonSerializerSettings settings) => throw null; public static Newtonsoft.Json.JsonSerializer Create() => throw null; - public static Newtonsoft.Json.JsonSerializer CreateDefault(Newtonsoft.Json.JsonSerializerSettings settings) => 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 object Deserialize(System.IO.TextReader reader, System.Type objectType) => throw null; - public object Deserialize(Newtonsoft.Json.JsonReader reader, System.Type objectType) => throw null; 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; @@ -437,16 +437,16 @@ namespace Newtonsoft 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(System.IO.TextReader reader, object target) => throw null; public void Populate(Newtonsoft.Json.JsonReader reader, object target) => throw null; + 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(System.IO.TextWriter textWriter, object value, System.Type objectType) => throw null; - 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(Newtonsoft.Json.JsonWriter jsonWriter, 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) => 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; } @@ -549,10 +549,10 @@ namespace Newtonsoft protected override System.Threading.Tasks.Task WriteIndentSpaceAsync(System.Threading.CancellationToken cancellationToken) => throw null; public override void WriteNull() => throw null; public override System.Threading.Tasks.Task WriteNullAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public override void WritePropertyName(string name, bool escape) => throw null; public override void WritePropertyName(string name) => throw null; - public override System.Threading.Tasks.Task WritePropertyNameAsync(string name, bool escape, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void WritePropertyName(string name, bool escape) => throw null; public override System.Threading.Tasks.Task WritePropertyNameAsync(string name, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.Task WritePropertyNameAsync(string name, bool escape, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override void WriteRaw(string json) => throw null; public override System.Threading.Tasks.Task WriteRawAsync(string json, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public override System.Threading.Tasks.Task WriteRawValueAsync(string json, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; @@ -564,67 +564,67 @@ 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(string value) => throw null; - public override void WriteValue(object value) => throw null; - public override void WriteValue(int 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(System.Uri value) => throw null; - public override void WriteValue(System.UInt64 value) => throw null; - public override void WriteValue(System.UInt32 value) => throw null; - public override void WriteValue(System.UInt16 value) => throw null; - public override void WriteValue(System.TimeSpan value) => throw null; - public override void WriteValue(System.SByte value) => throw null; - public override void WriteValue(System.Int64 value) => throw null; - public override void WriteValue(System.Int16 value) => throw null; - public override void WriteValue(System.Guid value) => throw null; - public override void WriteValue(System.Decimal value) => throw null; - public override void WriteValue(System.DateTimeOffset value) => throw null; - public override void WriteValue(System.DateTime value) => throw null; - public override void WriteValue(System.Char value) => 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 System.Threading.Tasks.Task WriteValueAsync(string 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(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(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(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(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.Uri 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.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.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(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.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(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(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.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(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.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.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 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(System.Byte? 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(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(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(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(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; 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; @@ -634,24 +634,24 @@ namespace Newtonsoft // Generated from `Newtonsoft.Json.JsonToken` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum JsonToken { - Boolean, - Bytes, - Comment, - Date, - EndArray, - EndConstructor, - EndObject, - Float, - Integer, - None, - Null, - PropertyName, - Raw, - StartArray, - StartConstructor, - StartObject, - String, - Undefined, + 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, + StartArray = 2, + StartConstructor = 3, + StartObject = 1, + String = 9, + Undefined = 12, } // Generated from `Newtonsoft.Json.JsonValidatingReader` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` @@ -723,10 +723,10 @@ namespace Newtonsoft protected virtual System.Threading.Tasks.Task WriteIndentSpaceAsync(System.Threading.CancellationToken cancellationToken) => throw null; public virtual void WriteNull() => throw null; public virtual System.Threading.Tasks.Task WriteNullAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public virtual void WritePropertyName(string name, bool escape) => throw null; public virtual void WritePropertyName(string name) => throw null; - public virtual System.Threading.Tasks.Task WritePropertyNameAsync(string name, bool escape, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual void WritePropertyName(string name, bool escape) => throw null; public virtual System.Threading.Tasks.Task WritePropertyNameAsync(string name, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task WritePropertyNameAsync(string name, bool escape, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual void WriteRaw(string json) => throw null; public virtual System.Threading.Tasks.Task WriteRawAsync(string json, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public virtual void WriteRawValue(string json) => throw null; @@ -738,92 +738,92 @@ namespace Newtonsoft public virtual void WriteStartObject() => throw null; public virtual System.Threading.Tasks.Task WriteStartObjectAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; public Newtonsoft.Json.WriteState WriteState { get => throw null; } - public void WriteToken(Newtonsoft.Json.JsonToken token, object value) => throw null; - public void WriteToken(Newtonsoft.Json.JsonToken token) => throw null; - public void WriteToken(Newtonsoft.Json.JsonReader reader, bool writeChildren) => throw null; public void WriteToken(Newtonsoft.Json.JsonReader reader) => 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 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.JsonReader reader, bool writeChildren, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => 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 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(string value) => throw null; - public virtual void WriteValue(object value) => throw null; - public virtual void WriteValue(int? value) => throw null; - public virtual void WriteValue(int value) => throw null; - public virtual void WriteValue(float? value) => throw null; - public virtual void WriteValue(float value) => throw null; - public virtual void WriteValue(double? value) => throw null; - public virtual void WriteValue(double value) => throw null; - public virtual void WriteValue(bool? value) => throw null; - public virtual void WriteValue(bool value) => throw null; - public virtual void WriteValue(System.Uri 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.UInt32? value) => throw null; - public virtual void WriteValue(System.UInt32 value) => throw null; - public virtual void WriteValue(System.UInt16? value) => throw null; - public virtual void WriteValue(System.UInt16 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.SByte? value) => throw null; - public virtual void WriteValue(System.SByte 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(System.Int16? value) => throw null; - public virtual void WriteValue(System.Int16 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.Decimal? value) => throw null; - public virtual void WriteValue(System.Decimal 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.DateTime? value) => throw null; - public virtual void WriteValue(System.DateTime 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.Byte[] value) => 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 System.Threading.Tasks.Task WriteValueAsync(string 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(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(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(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(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.Uri 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.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.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(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.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(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(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.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(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.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.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 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 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.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(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(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(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(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; 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; @@ -833,115 +833,115 @@ namespace Newtonsoft // 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(string message, string path, System.Exception innerException) => throw null; - public JsonWriterException(string message, System.Exception innerException) => throw null; - public JsonWriterException(string message) => throw null; - public JsonWriterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; 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(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, - OptIn, - OptOut, + 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, - Ignore, - ReadAhead, + 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, - Ignore, + 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, - Include, + 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, - Replace, - Reuse, + 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, - Arrays, - None, - Objects, + 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, - Ignore, - Serialize, + 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, - Always, - Default, - DisallowNull, + 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, - EscapeHtml, - EscapeNonAscii, + 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, - Simple, + 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, - Arrays, - Auto, - None, - Objects, + 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, - Closed, - Constructor, - Error, - Object, - Property, - Start, + Array = 3, + Closed = 1, + Constructor = 4, + Error = 0, + Object = 2, + Property = 5, + Start = 6, } namespace Bson @@ -956,10 +956,10 @@ namespace Newtonsoft // 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.Stream stream, bool readRootValueAsArray, System.DateTimeKind dateTimeKindHandling) => throw null; - public BsonReader(System.IO.Stream stream) => throw null; - public BsonReader(System.IO.BinaryReader reader, bool readRootValueAsArray, System.DateTimeKind dateTimeKindHandling) => throw null; 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; } @@ -970,8 +970,8 @@ namespace Newtonsoft // 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.Stream stream) => throw null; 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; @@ -987,27 +987,27 @@ 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(string value) => throw null; - public override void WriteValue(object value) => throw null; - public override void WriteValue(int 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(System.Uri value) => throw null; - public override void WriteValue(System.UInt64 value) => throw null; - public override void WriteValue(System.UInt32 value) => throw null; - public override void WriteValue(System.UInt16 value) => throw null; - public override void WriteValue(System.TimeSpan value) => throw null; - public override void WriteValue(System.SByte value) => throw null; - public override void WriteValue(System.Int64 value) => throw null; - public override void WriteValue(System.Int16 value) => throw null; - public override void WriteValue(System.Guid value) => throw null; - public override void WriteValue(System.Decimal value) => throw null; - public override void WriteValue(System.DateTimeOffset value) => throw null; - public override void WriteValue(System.DateTime value) => throw null; - public override void WriteValue(System.Char value) => 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; } } @@ -1140,12 +1140,12 @@ namespace Newtonsoft 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(bool camelCaseText) => throw null; - public StringEnumConverter(System.Type namingStrategyType, object[] namingStrategyParameters, bool allowIntegerValues) => throw null; - public StringEnumConverter(System.Type namingStrategyType, object[] namingStrategyParameters) => throw null; - public StringEnumConverter(System.Type namingStrategyType) => throw null; - public StringEnumConverter(Newtonsoft.Json.Serialization.NamingStrategy namingStrategy, bool allowIntegerValues = default(bool)) => 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; } @@ -1185,16 +1185,16 @@ namespace Newtonsoft // Generated from `Newtonsoft.Json.Linq.CommentHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum CommentHandling { - Ignore, - Load, + 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, - Ignore, - Replace, + Error = 2, + Ignore = 1, + Replace = 0, } // Generated from `Newtonsoft.Json.Linq.Extensions` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` @@ -1202,53 +1202,53 @@ namespace Newtonsoft { 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) 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 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) => throw null; public static U Value(this System.Collections.Generic.IEnumerable value) where T : Newtonsoft.Json.Linq.JToken => 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; - public static Newtonsoft.Json.Linq.IJEnumerable Values(this System.Collections.Generic.IEnumerable source, object key) => 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 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 System.Collections.Generic.IEnumerable Values(this System.Collections.Generic.IEnumerable source, object key) => 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.IEnumerable, System.Collections.Generic.IEnumerable where T : Newtonsoft.Json.Linq.JToken + 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.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection + public class JArray : Newtonsoft.Json.Linq.JContainer, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, 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 static Newtonsoft.Json.Linq.JArray FromObject(object o, Newtonsoft.Json.JsonSerializer jsonSerializer) => 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 override Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set => throw null; } public Newtonsoft.Json.Linq.JToken this[int index] { get => throw null; set => throw null; } - public JArray(params object[] content) => throw null; - public JArray(object content) => throw null; - public JArray(Newtonsoft.Json.Linq.JArray other) => throw null; + public override Newtonsoft.Json.Linq.JToken this[object key] { get => throw null; set => throw null; } public JArray() => throw null; - public static Newtonsoft.Json.Linq.JArray Load(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => 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; 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 static Newtonsoft.Json.Linq.JArray Parse(string json, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; public static Newtonsoft.Json.Linq.JArray Parse(string json) => throw null; + 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.JTokenType Type { get => throw null; } @@ -1261,13 +1261,13 @@ namespace Newtonsoft { 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(string name, params object[] content) => throw null; - public JConstructor(string name, object content) => throw null; - public JConstructor(string name) => throw null; - public JConstructor(Newtonsoft.Json.Linq.JConstructor other) => throw null; public JConstructor() => throw null; - public static Newtonsoft.Json.Linq.JConstructor Load(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => 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 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; } @@ -1277,7 +1277,7 @@ namespace Newtonsoft } // 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.ComponentModel.ITypedList, System.ComponentModel.IBindingList, System.Collections.Specialized.INotifyCollectionChanged, System.Collections.IList, System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.Generic.IList, System.Collections.Generic.IEnumerable, System.Collections.Generic.ICollection + 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 { void System.Collections.Generic.ICollection.Add(Newtonsoft.Json.Linq.JToken item) => throw null; public virtual void Add(object content) => throw null; @@ -1292,11 +1292,11 @@ namespace Newtonsoft void System.ComponentModel.IBindingList.ApplySort(System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection direction) => throw null; public override Newtonsoft.Json.Linq.JEnumerable Children() => throw null; protected abstract System.Collections.Generic.IList ChildrenTokens { get; } - void System.Collections.IList.Clear() => throw null; void System.Collections.Generic.ICollection.Clear() => throw null; + void System.Collections.IList.Clear() => throw null; public event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged; - bool System.Collections.IList.Contains(object value) => throw null; 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; public int Count { get => throw null; } @@ -1308,30 +1308,30 @@ namespace Newtonsoft System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ITypedList.GetItemProperties(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; string System.ComponentModel.ITypedList.GetListName(System.ComponentModel.PropertyDescriptor[] listAccessors) => throw null; public override bool HasValues { get => throw null; } - int System.Collections.IList.IndexOf(object value) => throw null; int System.Collections.Generic.IList.IndexOf(Newtonsoft.Json.Linq.JToken item) => throw null; - void System.Collections.IList.Insert(int index, object value) => throw null; + int System.Collections.IList.IndexOf(object value) => throw null; void System.Collections.Generic.IList.Insert(int index, Newtonsoft.Json.Linq.JToken item) => 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.Generic.ICollection.IsReadOnly { 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; } 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; public override Newtonsoft.Json.Linq.JToken Last { get => throw null; } public event System.ComponentModel.ListChangedEventHandler ListChanged; - public void Merge(object content, Newtonsoft.Json.Linq.JsonMergeSettings settings) => throw null; 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; protected virtual void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) => throw null; protected virtual void OnListChanged(System.ComponentModel.ListChangedEventArgs e) => throw null; - void System.Collections.IList.Remove(object value) => throw null; bool System.Collections.Generic.ICollection.Remove(Newtonsoft.Json.Linq.JToken item) => throw null; + void System.Collections.IList.Remove(object value) => throw null; public void RemoveAll() => throw null; - void System.Collections.IList.RemoveAt(int index) => throw null; void System.Collections.Generic.IList.RemoveAt(int index) => 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; public void ReplaceAll(object content) => throw null; @@ -1345,21 +1345,21 @@ namespace Newtonsoft } // Generated from `Newtonsoft.Json.Linq.JEnumerable<>` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` - public struct JEnumerable : System.IEquatable>, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, Newtonsoft.Json.Linq.IJEnumerable where T : Newtonsoft.Json.Linq.JToken + public struct JEnumerable : Newtonsoft.Json.Linq.IJEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IEquatable> where T : Newtonsoft.Json.Linq.JToken { public static Newtonsoft.Json.Linq.JEnumerable Empty; - public override bool Equals(object obj) => throw null; public bool Equals(Newtonsoft.Json.Linq.JEnumerable other) => 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 Newtonsoft.Json.Linq.IJEnumerable this[object key] { get => throw null; } + // Stub generator skipped constructor public JEnumerable(System.Collections.Generic.IEnumerable enumerable) => throw null; - // Stub generator skipped constructor } // 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.ComponentModel.INotifyPropertyChanging, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.ICustomTypeDescriptor, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable>, System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection> + 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 { 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; @@ -1368,8 +1368,8 @@ namespace Newtonsoft 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 static Newtonsoft.Json.Linq.JObject FromObject(object o, Newtonsoft.Json.JsonSerializer jsonSerializer) => 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; string System.ComponentModel.ICustomTypeDescriptor.GetClassName() => throw null; string System.ComponentModel.ICustomTypeDescriptor.GetComponentName() => throw null; @@ -1378,40 +1378,40 @@ 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(System.Attribute[] attributes) => throw null; System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents() => throw null; + System.ComponentModel.EventDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[] attributes) => throw null; protected override System.Dynamic.DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter) => throw null; - System.ComponentModel.PropertyDescriptorCollection System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[] attributes) => 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 Newtonsoft.Json.Linq.JToken GetValue(string propertyName, System.StringComparison comparison) => throw null; 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(params object[] content) => throw null; - public JObject(object content) => throw null; - public JObject(Newtonsoft.Json.Linq.JObject other) => 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, Newtonsoft.Json.Linq.JsonLoadSettings settings) => 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; 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; protected virtual void OnPropertyChanged(string propertyName) => throw null; protected virtual void OnPropertyChanging(string propertyName) => throw null; - public static Newtonsoft.Json.Linq.JObject Parse(string json, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; public static Newtonsoft.Json.Linq.JObject Parse(string json) => throw null; + public static Newtonsoft.Json.Linq.JObject Parse(string json, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; public System.Collections.Generic.IEnumerable Properties() => throw null; - public Newtonsoft.Json.Linq.JProperty Property(string name, System.StringComparison comparison) => 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 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; - public bool TryGetValue(string propertyName, out Newtonsoft.Json.Linq.JToken value) => throw null; + public bool Remove(string propertyName) => throw null; 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; } System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get => throw null; } public override void WriteTo(Newtonsoft.Json.JsonWriter writer, params Newtonsoft.Json.JsonConverter[] converters) => throw null; @@ -1422,11 +1422,11 @@ namespace Newtonsoft public class JProperty : Newtonsoft.Json.Linq.JContainer { protected override System.Collections.Generic.IList ChildrenTokens { get => throw null; } - public JProperty(string name, params object[] content) => throw null; - public JProperty(string name, object content) => throw null; public JProperty(Newtonsoft.Json.Linq.JProperty other) => throw null; - public static Newtonsoft.Json.Linq.JProperty Load(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => throw null; + public JProperty(string name, object content) => throw null; + public JProperty(string name, params 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; } @@ -1456,12 +1456,12 @@ namespace Newtonsoft { public static Newtonsoft.Json.Linq.JRaw Create(Newtonsoft.Json.JsonReader reader) => throw null; public static System.Threading.Tasks.Task CreateAsync(Newtonsoft.Json.JsonReader reader, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; - public JRaw(object rawJson) : base(default(Newtonsoft.Json.Linq.JValue)) => throw null; 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 : System.ICloneable, System.Dynamic.IDynamicMetaObjectProvider, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable, Newtonsoft.Json.Linq.IJEnumerable, Newtonsoft.Json.IJsonLineInfo + public abstract class JToken : Newtonsoft.Json.IJsonLineInfo, Newtonsoft.Json.Linq.IJEnumerable, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Dynamic.IDynamicMetaObjectProvider, System.ICloneable { public void AddAfterSelf(object content) => throw null; public void AddAnnotation(object annotation) => throw null; @@ -1482,10 +1482,10 @@ namespace Newtonsoft 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, Newtonsoft.Json.JsonSerializer jsonSerializer) => throw null; public static Newtonsoft.Json.Linq.JToken FromObject(object o) => throw null; - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => 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; 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; @@ -1496,115 +1496,115 @@ namespace Newtonsoft 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, Newtonsoft.Json.Linq.JsonLoadSettings settings) => 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 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 static Newtonsoft.Json.Linq.JToken Parse(string json, Newtonsoft.Json.Linq.JsonLoadSettings settings) => 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 static Newtonsoft.Json.Linq.JToken ReadFrom(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings) => 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() where T : class => throw null; public void RemoveAnnotations(System.Type type) => throw null; + public void RemoveAnnotations() where T : class => 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, bool errorWhenNoMatch) => 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) => throw null; - public System.Collections.Generic.IEnumerable SelectTokens(string path, bool errorWhenNoMatch) => throw null; - public System.Collections.Generic.IEnumerable SelectTokens(string path, Newtonsoft.Json.Linq.JsonSelectSettings settings) => 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 System.Collections.Generic.IEnumerable SelectTokens(string path) => 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 System.Collections.Generic.IEnumerable SelectTokens(string path, bool errorWhenNoMatch) => 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 T ToObject() => throw null; - public string ToString(Newtonsoft.Json.Formatting formatting, params Newtonsoft.Json.JsonConverter[] converters) => throw null; + public T ToObject(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; } public virtual T Value(object key) => throw null; public virtual System.Collections.Generic.IEnumerable Values() => throw null; 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 string(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 float?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator float(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 bool?(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator bool(Newtonsoft.Json.Linq.JToken value) => throw null; - public static explicit operator System.Uri(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.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.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.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.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.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.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.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.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.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.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.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.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 implicit operator Newtonsoft.Json.Linq.JToken(string 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(float? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(float 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(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.Uri 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.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.UInt16? 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.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.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.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.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(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.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(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.DateTime? value) => throw null; - public static implicit operator Newtonsoft.Json.Linq.JToken(System.DateTime 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.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` @@ -1620,8 +1620,8 @@ namespace Newtonsoft { public Newtonsoft.Json.Linq.JToken CurrentToken { get => throw null; } bool Newtonsoft.Json.IJsonLineInfo.HasLineInfo() => throw null; - public JTokenReader(Newtonsoft.Json.Linq.JToken token, string initialPath) => throw null; public JTokenReader(Newtonsoft.Json.Linq.JToken token) => throw null; + public JTokenReader(Newtonsoft.Json.Linq.JToken token, string initialPath) => 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; } @@ -1631,24 +1631,24 @@ namespace Newtonsoft // Generated from `Newtonsoft.Json.Linq.JTokenType` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum JTokenType { - Array, - Boolean, - Bytes, - Comment, - Constructor, - Date, - Float, - Guid, - Integer, - None, - Null, - Object, - Property, - Raw, - String, - TimeSpan, - Undefined, - Uri, + Array = 2, + Boolean = 9, + Bytes = 14, + Comment = 5, + Constructor = 3, + Date = 12, + Float = 7, + Guid = 15, + Integer = 6, + None = 0, + Null = 10, + Object = 1, + Property = 4, + Raw = 13, + String = 8, + TimeSpan = 17, + Undefined = 11, + Uri = 16, } // Generated from `Newtonsoft.Json.Linq.JTokenWriter` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` @@ -1657,8 +1657,8 @@ namespace Newtonsoft public override void Close() => throw null; public Newtonsoft.Json.Linq.JToken CurrentToken { get => throw null; } public override void Flush() => throw null; - public JTokenWriter(Newtonsoft.Json.Linq.JContainer container) => 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,31 +1669,31 @@ 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(string value) => throw null; - public override void WriteValue(object value) => throw null; - public override void WriteValue(int 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(System.Uri value) => throw null; - public override void WriteValue(System.UInt64 value) => throw null; - public override void WriteValue(System.UInt32 value) => throw null; - public override void WriteValue(System.UInt16 value) => throw null; - public override void WriteValue(System.TimeSpan value) => throw null; - public override void WriteValue(System.SByte value) => throw null; - public override void WriteValue(System.Int64 value) => throw null; - public override void WriteValue(System.Int16 value) => throw null; - public override void WriteValue(System.Guid value) => throw null; - public override void WriteValue(System.Decimal value) => throw null; - public override void WriteValue(System.DateTimeOffset value) => throw null; - public override void WriteValue(System.DateTime value) => throw null; - public override void WriteValue(System.Char value) => 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; } // 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.IFormattable, System.IEquatable, System.IConvertible, System.IComparable, System.IComparable + public class JValue : Newtonsoft.Json.Linq.JToken, System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.IFormattable { public int CompareTo(Newtonsoft.Json.Linq.JValue obj) => throw null; int System.IComparable.CompareTo(object obj) => throw null; @@ -1701,27 +1701,27 @@ namespace Newtonsoft 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 override bool Equals(object obj) => 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(string value) => throw null; - public JValue(object value) => throw null; - public JValue(float value) => throw null; - public JValue(double value) => throw null; - public JValue(bool value) => throw null; - public JValue(System.Uri value) => throw null; - public JValue(System.UInt64 value) => throw null; - public JValue(System.TimeSpan value) => throw null; - public JValue(System.Int64 value) => throw null; - public JValue(System.Guid value) => throw null; - public JValue(System.Decimal value) => throw null; - public JValue(System.DateTimeOffset value) => throw null; public JValue(System.DateTime value) => throw null; - public JValue(System.Char 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; @@ -1733,10 +1733,10 @@ namespace Newtonsoft 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 string ToString(string format, System.IFormatProvider formatProvider) => throw null; - public string ToString(string format) => throw null; - public string ToString(System.IFormatProvider formatProvider) => 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(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; @@ -1776,25 +1776,25 @@ namespace Newtonsoft // Generated from `Newtonsoft.Json.Linq.LineInfoHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum LineInfoHandling { - Ignore, - Load, + 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, - Merge, - Replace, - Union, + Concat = 0, + Merge = 3, + Replace = 2, + Union = 1, } // Generated from `Newtonsoft.Json.Linq.MergeNullValueHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` [System.Flags] public enum MergeNullValueHandling { - Ignore, - Merge, + Ignore = 0, + Merge = 1, } } @@ -1803,10 +1803,10 @@ namespace Newtonsoft // Generated from `Newtonsoft.Json.Schema.Extensions` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public static class Extensions { - 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 bool IsValid(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; + 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` @@ -1835,14 +1835,14 @@ namespace Newtonsoft 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 static Newtonsoft.Json.Schema.JsonSchema Parse(string json, Newtonsoft.Json.Schema.JsonSchemaResolver resolver) => throw null; 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 static Newtonsoft.Json.Schema.JsonSchema Read(Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Schema.JsonSchemaResolver resolver) => throw null; 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; } @@ -1851,17 +1851,17 @@ namespace Newtonsoft 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 void WriteTo(Newtonsoft.Json.JsonWriter writer, Newtonsoft.Json.Schema.JsonSchemaResolver resolver) => throw null; 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(string message, System.Exception innerException) => throw null; - public JsonSchemaException(string message) => throw null; - public JsonSchemaException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; 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 int LineNumber { get => throw null; } public int LinePosition { get => throw null; } public string Path { get => throw null; } @@ -1871,10 +1871,10 @@ namespace Newtonsoft public class JsonSchemaGenerator { public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { get => throw null; set => throw null; } - public Newtonsoft.Json.Schema.JsonSchema Generate(System.Type type, bool rootSchemaNullable) => 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, Newtonsoft.Json.Schema.JsonSchemaResolver resolver) => 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; } } @@ -1891,23 +1891,23 @@ namespace Newtonsoft [System.Flags] public enum JsonSchemaType { - Any, - Array, - Boolean, - Float, - Integer, - None, - Null, - Object, - String, + Any = 127, + Array = 32, + Boolean = 8, + Float = 2, + Integer = 4, + None = 0, + Null = 64, + Object = 16, + String = 1, } // Generated from `Newtonsoft.Json.Schema.UndefinedSchemaIdHandling` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public enum UndefinedSchemaIdHandling { - None, - UseAssemblyQualifiedName, - UseTypeName, + None = 0, + UseAssemblyQualifiedName = 2, + UseTypeName = 1, } // Generated from `Newtonsoft.Json.Schema.ValidationEventArgs` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` @@ -1927,9 +1927,9 @@ namespace Newtonsoft // 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(bool processDictionaryKeys, bool overrideSpecifiedNames, bool processExtensionDataNames) => throw null; - public CamelCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames) => throw null; public CamelCaseNamingStrategy() => throw null; + public CamelCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames) => throw null; + public CamelCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames, bool processExtensionDataNames) => throw null; protected override string ResolvePropertyName(string name) => throw null; } @@ -2033,8 +2033,8 @@ namespace Newtonsoft // 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(bool inherit); System.Collections.Generic.IList GetAttributes(System.Type attributeType, bool inherit); + System.Collections.Generic.IList GetAttributes(bool inherit); } // Generated from `Newtonsoft.Json.Serialization.IContractResolver` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` @@ -2222,9 +2222,9 @@ namespace Newtonsoft // 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(bool processDictionaryKeys, bool overrideSpecifiedNames, bool processExtensionDataNames) => throw null; - public KebabCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames) => throw null; public KebabCaseNamingStrategy() => throw null; + public KebabCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames) => throw null; + public KebabCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames, bool processExtensionDataNames) => throw null; protected override string ResolvePropertyName(string name) => throw null; } @@ -2241,8 +2241,8 @@ namespace Newtonsoft // Generated from `Newtonsoft.Json.Serialization.NamingStrategy` in `Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed` public abstract class NamingStrategy { - public override bool Equals(object obj) => throw null; protected bool Equals(Newtonsoft.Json.Serialization.NamingStrategy other) => throw null; + public override bool Equals(object obj) => throw null; public virtual string GetDictionaryKey(string key) => throw null; public virtual string GetExtensionDataName(string name) => throw null; public override int GetHashCode() => throw null; @@ -2266,8 +2266,8 @@ namespace Newtonsoft // 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(bool inherit) => throw null; 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; } @@ -2289,9 +2289,9 @@ namespace Newtonsoft public class SnakeCaseNamingStrategy : Newtonsoft.Json.Serialization.NamingStrategy { protected override string ResolvePropertyName(string name) => throw null; - public SnakeCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames, bool processExtensionDataNames) => throw null; - public SnakeCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames) => throw null; public SnakeCaseNamingStrategy() => throw null; + public SnakeCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames) => throw null; + public SnakeCaseNamingStrategy(bool processDictionaryKeys, bool overrideSpecifiedNames, bool processExtensionDataNames) => throw null; } } From c778b38a77bd18f7a39735427b462bee4c2c3ec6 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Thu, 11 Aug 2022 10:56:58 +0200 Subject: [PATCH 730/736] delete the dead TypeRepr files --- .../ql/lib/codeql/swift/elements/typerepr/ArrayTypeRepr.qll | 5 ----- .../codeql/swift/elements/typerepr/AttributedTypeRepr.qll | 5 ----- .../swift/elements/typerepr/CompileTimeConstTypeRepr.qll | 5 ----- .../codeql/swift/elements/typerepr/CompoundIdentTypeRepr.qll | 5 ----- .../codeql/swift/elements/typerepr/DictionaryTypeRepr.qll | 5 ----- .../lib/codeql/swift/elements/typerepr/FunctionTypeRepr.qll | 5 ----- .../codeql/swift/elements/typerepr/GenericIdentTypeRepr.qll | 5 ----- .../typerepr/ImplicitlyUnwrappedOptionalTypeRepr.qll | 5 ----- .../ql/lib/codeql/swift/elements/typerepr/InOutTypeRepr.qll | 5 ----- .../lib/codeql/swift/elements/typerepr/IsolatedTypeRepr.qll | 5 ----- .../lib/codeql/swift/elements/typerepr/MetatypeTypeRepr.qll | 5 ----- .../lib/codeql/swift/elements/typerepr/OptionalTypeRepr.qll | 5 ----- .../ql/lib/codeql/swift/elements/typerepr/OwnedTypeRepr.qll | 5 ----- .../lib/codeql/swift/elements/typerepr/ProtocolTypeRepr.qll | 5 ----- .../ql/lib/codeql/swift/elements/typerepr/SharedTypeRepr.qll | 5 ----- .../ql/lib/codeql/swift/elements/typerepr/SilBoxTypeRepr.qll | 5 ----- .../ql/lib/codeql/swift/elements/typerepr/TupleTypeRepr.qll | 5 ----- 17 files changed, 85 deletions(-) delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/ArrayTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/AttributedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/CompileTimeConstTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/CompoundIdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/DictionaryTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/FunctionTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/GenericIdentTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/ImplicitlyUnwrappedOptionalTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/InOutTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/IsolatedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/MetatypeTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/OptionalTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/OwnedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/ProtocolTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/SharedTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/SilBoxTypeRepr.qll delete mode 100644 swift/ql/lib/codeql/swift/elements/typerepr/TupleTypeRepr.qll diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/ArrayTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/ArrayTypeRepr.qll deleted file mode 100644 index 551e846daad..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/ArrayTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.ArrayTypeRepr - -class ArrayTypeRepr extends ArrayTypeReprBase { - override string toString() { result = "[...]" } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/AttributedTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/AttributedTypeRepr.qll deleted file mode 100644 index 96ae6d613fc..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/AttributedTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.AttributedTypeRepr - -class AttributedTypeRepr extends AttributedTypeReprBase { - override string toString() { result = "@..." } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/CompileTimeConstTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/CompileTimeConstTypeRepr.qll deleted file mode 100644 index 0527a978c92..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/CompileTimeConstTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.CompileTimeConstTypeRepr - -class CompileTimeConstTypeRepr extends CompileTimeConstTypeReprBase { - override string toString() { result = "_const ..." } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/CompoundIdentTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/CompoundIdentTypeRepr.qll deleted file mode 100644 index 6b0270e074f..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/CompoundIdentTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.CompoundIdentTypeRepr - -class CompoundIdentTypeRepr extends CompoundIdentTypeReprBase { - override string toString() { result = "...<...>" } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/DictionaryTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/DictionaryTypeRepr.qll deleted file mode 100644 index d28f8e972e1..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/DictionaryTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.DictionaryTypeRepr - -class DictionaryTypeRepr extends DictionaryTypeReprBase { - override string toString() { result = "[... : ...]" } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/FunctionTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/FunctionTypeRepr.qll deleted file mode 100644 index 4441903d045..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/FunctionTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.FunctionTypeRepr - -class FunctionTypeRepr extends FunctionTypeReprBase { - override string toString() { result = "... -> ..." } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/GenericIdentTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/GenericIdentTypeRepr.qll deleted file mode 100644 index 54e388d5e7b..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/GenericIdentTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.GenericIdentTypeRepr - -class GenericIdentTypeRepr extends GenericIdentTypeReprBase { - override string toString() { result = "...<...>" } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/ImplicitlyUnwrappedOptionalTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/ImplicitlyUnwrappedOptionalTypeRepr.qll deleted file mode 100644 index ace8103e1ca..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/ImplicitlyUnwrappedOptionalTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.ImplicitlyUnwrappedOptionalTypeRepr - -class ImplicitlyUnwrappedOptionalTypeRepr extends ImplicitlyUnwrappedOptionalTypeReprBase { - override string toString() { result = "...!" } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/InOutTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/InOutTypeRepr.qll deleted file mode 100644 index 3be97d2f9fa..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/InOutTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.InOutTypeRepr - -class InOutTypeRepr extends InOutTypeReprBase { - override string toString() { result = "inout ..." } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/IsolatedTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/IsolatedTypeRepr.qll deleted file mode 100644 index d7a9eb48345..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/IsolatedTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.IsolatedTypeRepr - -class IsolatedTypeRepr extends IsolatedTypeReprBase { - override string toString() { result = "isolated ..." } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/MetatypeTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/MetatypeTypeRepr.qll deleted file mode 100644 index f48ac07816d..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/MetatypeTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.MetatypeTypeRepr - -class MetatypeTypeRepr extends MetatypeTypeReprBase { - override string toString() { result = ".Type" } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/OptionalTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/OptionalTypeRepr.qll deleted file mode 100644 index b9046b00955..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/OptionalTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.OptionalTypeRepr - -class OptionalTypeRepr extends OptionalTypeReprBase { - override string toString() { result = "...?" } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/OwnedTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/OwnedTypeRepr.qll deleted file mode 100644 index 88e90d479d7..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/OwnedTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.OwnedTypeRepr - -class OwnedTypeRepr extends OwnedTypeReprBase { - override string toString() { result = "owned ..." } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/ProtocolTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/ProtocolTypeRepr.qll deleted file mode 100644 index 8701fceaf53..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/ProtocolTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.ProtocolTypeRepr - -class ProtocolTypeRepr extends ProtocolTypeReprBase { - override string toString() { result = ".Protocol" } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/SharedTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/SharedTypeRepr.qll deleted file mode 100644 index ed31dc0bf10..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/SharedTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.SharedTypeRepr - -class SharedTypeRepr extends SharedTypeReprBase { - override string toString() { result = "shared ..." } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/SilBoxTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/SilBoxTypeRepr.qll deleted file mode 100644 index 7949d10849b..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/SilBoxTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.SilBoxTypeRepr - -class SilBoxTypeRepr extends SilBoxTypeReprBase { - override string toString() { result = "{ ... }" } -} diff --git a/swift/ql/lib/codeql/swift/elements/typerepr/TupleTypeRepr.qll b/swift/ql/lib/codeql/swift/elements/typerepr/TupleTypeRepr.qll deleted file mode 100644 index 745fb39b9e5..00000000000 --- a/swift/ql/lib/codeql/swift/elements/typerepr/TupleTypeRepr.qll +++ /dev/null @@ -1,5 +0,0 @@ -private import codeql.swift.generated.typerepr.TupleTypeRepr - -class TupleTypeRepr extends TupleTypeReprBase { - override string toString() { result = "(...)" } -} From 6e6bd208b173ee5996ed08e45a17eea23fc7f21c Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Thu, 11 Aug 2022 10:52:18 +0200 Subject: [PATCH 731/736] C#: Add test case for `JsonConvert.DeserializeObject` in unsafe deserialization tests --- .../Test.cs | 27 +++++++++++++++ ...safeDeserializationUntrustedInput.expected | 33 +++++++++++++++++++ .../UnsafeDeserializationUntrustedInput.qlref | 1 + .../options | 1 + 4 files changed, 62 insertions(+) create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.qlref create mode 100644 csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs new file mode 100644 index 00000000000..b34bbc9ed66 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs @@ -0,0 +1,27 @@ +using Newtonsoft; +using Newtonsoft.Json; +using System.Web.UI.WebControls; + +class Test +{ + public static object Deserialize1(TextBox data) + { + return JsonConvert.DeserializeObject(data.Text, new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.None // OK + }); + } + + public static object Deserialize2(TextBox data) + { + return JsonConvert.DeserializeObject(data.Text, new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto // BAD + }); + } + + public static object Deserialize(TextBox data) + { + return JsonConvert.DeserializeObject(data.Text); + } +} diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected new file mode 100644 index 00000000000..fbe9635fa6b --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected @@ -0,0 +1,33 @@ +edges +| ../../../../resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.cs:930:20:930:20 | 4 : Int32 | Test.cs:19:32:19:52 | access to constant Auto : Int32 | +| Test.cs:9:46:9:49 | access to parameter data : TextBox | Test.cs:9:46:9:54 | access to property Text | +| Test.cs:9:46:9:49 | access to parameter data : TextBox | Test.cs:9:46:9:54 | access to property Text | +| Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | +| Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | +| Test.cs:19:32:19:52 | access to constant Auto : Int32 | Test.cs:17:57:20:9 | object creation of type JsonSerializerSettings | +| Test.cs:19:32:19:52 | access to constant Auto : TypeNameHandling | Test.cs:17:57:20:9 | object creation of type JsonSerializerSettings | +| Test.cs:25:46:25:49 | access to parameter data : TextBox | Test.cs:25:46:25:54 | access to property Text | +| Test.cs:25:46:25:49 | access to parameter data : TextBox | Test.cs:25:46:25:54 | access to property Text | +nodes +| ../../../../resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.cs:930:20:930:20 | 4 : Int32 | semmle.label | 4 : Int32 | +| Test.cs:9:46:9:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | +| Test.cs:9:46:9:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | +| Test.cs:9:46:9:54 | access to property Text | semmle.label | access to property Text | +| Test.cs:9:46:9:54 | access to property Text | semmle.label | access to property Text | +| Test.cs:17:46:17:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | +| Test.cs:17:46:17:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | +| Test.cs:17:46:17:54 | access to property Text | semmle.label | access to property Text | +| Test.cs:17:46:17:54 | access to property Text | semmle.label | access to property Text | +| Test.cs:17:57:20:9 | object creation of type JsonSerializerSettings | semmle.label | object creation of type JsonSerializerSettings | +| Test.cs:19:32:19:52 | access to constant Auto : Int32 | semmle.label | access to constant Auto : Int32 | +| Test.cs:19:32:19:52 | access to constant Auto : TypeNameHandling | semmle.label | access to constant Auto : TypeNameHandling | +| Test.cs:25:46:25:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | +| Test.cs:25:46:25:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | +| Test.cs:25:46:25:54 | access to property Text | semmle.label | access to property Text | +| Test.cs:25:46:25:54 | access to property Text | semmle.label | access to property Text | +subpaths +#select +| Test.cs:9:46:9:54 | access to property Text | Test.cs:9:46:9:49 | access to parameter data : TextBox | Test.cs:9:46:9:54 | access to property Text | $@ flows to unsafe deserializer. | Test.cs:9:46:9:49 | access to parameter data : TextBox | User-provided data | +| Test.cs:17:46:17:54 | access to property Text | Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | $@ flows to unsafe deserializer. | Test.cs:17:46:17:49 | access to parameter data : TextBox | User-provided data | +| Test.cs:17:46:17:54 | access to property Text | Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | $@ flows to unsafe deserializer. | Test.cs:17:46:17:49 | access to parameter data : TextBox | User-provided data | +| Test.cs:25:46:25:54 | access to property Text | Test.cs:25:46:25:49 | access to parameter data : TextBox | Test.cs:25:46:25:54 | access to property Text | $@ flows to unsafe deserializer. | Test.cs:25:46:25:49 | access to parameter data : TextBox | User-provided data | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.qlref b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.qlref new file mode 100644 index 00000000000..626bcae9b33 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.qlref @@ -0,0 +1 @@ +Security Features/CWE-502/UnsafeDeserializationUntrustedInput.ql \ No newline at end of file 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 new file mode 100644 index 00000000000..bd183f95f5c --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options @@ -0,0 +1 @@ +semmle-extractor-options: /nostdlib /noconfig --load-sources-from-project:${testdir}/../../../../resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.csproj ${testdir}/../../../../resources/stubs/System.Web.cs From 7a406d8e414291d4696c47b8ce8b807060925189 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Thu, 11 Aug 2022 10:57:04 +0200 Subject: [PATCH 732/736] C#: Fix unsafe deserialization with `JsonConvert.DeserializeObject` Remove false positives when `JsonConvert.DeserializeObject` is called with not necessarily unsafe settings. --- .../security/dataflow/UnsafeDeserializationQuery.qll | 2 +- .../Test.cs | 2 +- .../UnsafeDeserializationUntrustedInput.expected | 12 ------------ 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll index f7bab643985..6f75a712386 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll @@ -889,7 +889,7 @@ private class YamlDotNetDeserializerDeserializeMethodSink extends ConstructorOrS } /** Newtonsoft.Json.JsonConvert */ -private class NewtonsoftJsonConvertDeserializeObjectMethodSink extends ConstructorOrStaticMethodSink { +private class NewtonsoftJsonConvertDeserializeObjectMethodSink extends Sink { NewtonsoftJsonConvertDeserializeObjectMethodSink() { exists(MethodCall mc, Method m | m = mc.getTarget() and diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs index b34bbc9ed66..c8c5cbb0098 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs @@ -22,6 +22,6 @@ class Test public static object Deserialize(TextBox data) { - return JsonConvert.DeserializeObject(data.Text); + return JsonConvert.DeserializeObject(data.Text); // OK, not checking if JsonSerializerSettings is set globally with unsafe settings } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected index fbe9635fa6b..7ba93b2f17a 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected @@ -1,33 +1,21 @@ edges | ../../../../resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.cs:930:20:930:20 | 4 : Int32 | Test.cs:19:32:19:52 | access to constant Auto : Int32 | | Test.cs:9:46:9:49 | access to parameter data : TextBox | Test.cs:9:46:9:54 | access to property Text | -| Test.cs:9:46:9:49 | access to parameter data : TextBox | Test.cs:9:46:9:54 | access to property Text | -| Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | | Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | | Test.cs:19:32:19:52 | access to constant Auto : Int32 | Test.cs:17:57:20:9 | object creation of type JsonSerializerSettings | | Test.cs:19:32:19:52 | access to constant Auto : TypeNameHandling | Test.cs:17:57:20:9 | object creation of type JsonSerializerSettings | | Test.cs:25:46:25:49 | access to parameter data : TextBox | Test.cs:25:46:25:54 | access to property Text | -| Test.cs:25:46:25:49 | access to parameter data : TextBox | Test.cs:25:46:25:54 | access to property Text | nodes | ../../../../resources/stubs/Newtonsoft.Json/13.0.1/Newtonsoft.Json.cs:930:20:930:20 | 4 : Int32 | semmle.label | 4 : Int32 | | Test.cs:9:46:9:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | -| Test.cs:9:46:9:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | -| Test.cs:9:46:9:54 | access to property Text | semmle.label | access to property Text | | Test.cs:9:46:9:54 | access to property Text | semmle.label | access to property Text | | Test.cs:17:46:17:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | -| Test.cs:17:46:17:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | -| Test.cs:17:46:17:54 | access to property Text | semmle.label | access to property Text | | Test.cs:17:46:17:54 | access to property Text | semmle.label | access to property Text | | Test.cs:17:57:20:9 | object creation of type JsonSerializerSettings | semmle.label | object creation of type JsonSerializerSettings | | Test.cs:19:32:19:52 | access to constant Auto : Int32 | semmle.label | access to constant Auto : Int32 | | Test.cs:19:32:19:52 | access to constant Auto : TypeNameHandling | semmle.label | access to constant Auto : TypeNameHandling | | Test.cs:25:46:25:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | -| Test.cs:25:46:25:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | -| Test.cs:25:46:25:54 | access to property Text | semmle.label | access to property Text | | Test.cs:25:46:25:54 | access to property Text | semmle.label | access to property Text | subpaths #select -| Test.cs:9:46:9:54 | access to property Text | Test.cs:9:46:9:49 | access to parameter data : TextBox | Test.cs:9:46:9:54 | access to property Text | $@ flows to unsafe deserializer. | Test.cs:9:46:9:49 | access to parameter data : TextBox | User-provided data | | Test.cs:17:46:17:54 | access to property Text | Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | $@ flows to unsafe deserializer. | Test.cs:17:46:17:49 | access to parameter data : TextBox | User-provided data | -| Test.cs:17:46:17:54 | access to property Text | Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | $@ flows to unsafe deserializer. | Test.cs:17:46:17:49 | access to parameter data : TextBox | User-provided data | -| Test.cs:25:46:25:54 | access to property Text | Test.cs:25:46:25:49 | access to parameter data : TextBox | Test.cs:25:46:25:54 | access to property Text | $@ flows to unsafe deserializer. | Test.cs:25:46:25:49 | access to parameter data : TextBox | User-provided data | From faaf1ec30d2ffb49044c13f90b87513d13466e53 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 11 Aug 2022 11:31:21 +0200 Subject: [PATCH 733/736] C++: Improve QLDoc based on earlier review --- cpp/ql/lib/semmle/code/cpp/Specifier.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/Specifier.qll b/cpp/ql/lib/semmle/code/cpp/Specifier.qll index a2d9c4b9388..19622bbdc56 100644 --- a/cpp/ql/lib/semmle/code/cpp/Specifier.qll +++ b/cpp/ql/lib/semmle/code/cpp/Specifier.qll @@ -256,7 +256,7 @@ class AttributeArgument extends Element, @attribute_arg { /** * Gets the text for the value of this argument, if its value is - * a constant or token. + * a constant or a token. */ string getValueText() { if underlyingElement(this) instanceof @attribute_arg_constant_expr From c89592cda74e87f6ca5fdd9cccc8fa7dfbff409e Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 11 Aug 2022 11:39:52 +0200 Subject: [PATCH 734/736] C++: Add internal metrics query for IR consistency --- cpp/ql/src/Metrics/Internal/IRConsistency.ql | 37 ++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 cpp/ql/src/Metrics/Internal/IRConsistency.ql diff --git a/cpp/ql/src/Metrics/Internal/IRConsistency.ql b/cpp/ql/src/Metrics/Internal/IRConsistency.ql new file mode 100644 index 00000000000..5f45d15b8e2 --- /dev/null +++ b/cpp/ql/src/Metrics/Internal/IRConsistency.ql @@ -0,0 +1,37 @@ +/** + * @name Count IR inconsistencies + * @description Counts the various IR inconsistencies that may occur. + * This query is for internal use only and may change without notice. + * @kind table + * @id cpp/count-ir-inconsistencies + */ + +import cpp +import semmle.code.cpp.ir.implementation.aliased_ssa.IR +import semmle.code.cpp.ir.implementation.aliased_ssa.IRConsistency as IRConsistency + +select count(Instruction i | IRConsistency::missingOperand(i, _, _, _) | i) as missingOperand, + count(Instruction i | IRConsistency::unexpectedOperand(i, _, _, _) | i) as unexpectedOperand, + count(Instruction i | IRConsistency::duplicateOperand(i, _, _, _) | i) as duplicateOperand, + count(PhiInstruction i | IRConsistency::missingPhiOperand(i, _, _, _) | i) as missingPhiOperand, + count(Operand o | IRConsistency::missingOperandType(o, _, _, _) | o) as missingOperandType, + count(ChiInstruction i | IRConsistency::duplicateChiOperand(i, _, _, _) | i) as duplicateChiOperand, + count(Instruction i | IRConsistency::sideEffectWithoutPrimary(i, _, _, _) | i) as sideEffectWithoutPrimary, + count(Instruction i | IRConsistency::instructionWithoutSuccessor(i, _, _, _) | i) as instructionWithoutSuccessor, + count(Instruction i | IRConsistency::ambiguousSuccessors(i, _, _, _) | i) as ambiguousSuccessors, + count(Instruction i | IRConsistency::unexplainedLoop(i, _, _, _) | i) as unexplainedLoop, + count(PhiInstruction i | IRConsistency::unnecessaryPhiInstruction(i, _, _, _) | i) as unnecessaryPhiInstruction, + count(Instruction i | IRConsistency::memoryOperandDefinitionIsUnmodeled(i, _, _, _) | i) as memoryOperandDefinitionIsUnmodeled, + count(Operand o | IRConsistency::operandAcrossFunctions(o, _, _, _, _, _) | o) as operandAcrossFunctions, + count(IRFunction f | IRConsistency::containsLoopOfForwardEdges(f, _) | f) as containsLoopOfForwardEdges, + count(IRBlock i | IRConsistency::lostReachability(i, _, _, _) | i) as lostReachability, + count(string m | IRConsistency::backEdgeCountMismatch(_, m) | m) as backEdgeCountMismatch, + count(Operand o | IRConsistency::useNotDominatedByDefinition(o, _, _, _) | o) as useNotDominatedByDefinition, + count(SwitchInstruction i | IRConsistency::switchInstructionWithoutDefaultEdge(i, _, _, _) | i) as switchInstructionWithoutDefaultEdge, + count(Instruction i | IRConsistency::notMarkedAsConflated(i, _, _, _) | i) as notMarkedAsConflated, + count(Instruction i | IRConsistency::wronglyMarkedAsConflated(i, _, _, _) | i) as wronglyMarkedAsConflated, + count(MemoryOperand o | IRConsistency::invalidOverlap(o, _, _, _) | o) as invalidOverlap, + count(Instruction i | IRConsistency::nonUniqueEnclosingIRFunction(i, _, _, _) | i) as nonUniqueEnclosingIRFunction, + count(FieldAddressInstruction i | IRConsistency::fieldAddressOnNonPointer(i, _, _, _) | i) as fieldAddressOnNonPointer, + count(Instruction i | IRConsistency::thisArgumentIsNonPointer(i, _, _, _) | i) as thisArgumentIsNonPointer, + count(Instruction i | IRConsistency::nonUniqueIRVariable(i, _, _, _) | i) as nonUniqueIRVariable From 1dcc44ff2f86d579915e5ec708740f0c548689d8 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 11 Aug 2022 11:01:05 +0100 Subject: [PATCH 735/736] Swift: taintedFromLine -> tainted. --- .../dataflow/taint/TaintInline.ql | 4 +-- .../library-tests/dataflow/taint/data.swift | 8 ++--- .../library-tests/dataflow/taint/string.swift | 36 +++++++++---------- .../library-tests/dataflow/taint/try.swift | 6 ++-- .../library-tests/dataflow/taint/url.swift | 10 +++--- 5 files changed, 32 insertions(+), 32 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql b/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql index fbb89439c77..b2248d12971 100644 --- a/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql +++ b/swift/ql/test/library-tests/dataflow/taint/TaintInline.ql @@ -5,7 +5,7 @@ import TestUtilities.InlineExpectationsTest class TaintTest extends InlineExpectationsTest { TaintTest() { this = "TaintTest" } - override string getARelevantTag() { result = "taintedFromLine" } + override string getARelevantTag() { result = "tainted" } override predicate hasActualResult(Location location, string element, string tag, string value) { exists(TestConfiguration config, Node source, Node sink, Expr sinkExpr | @@ -13,7 +13,7 @@ class TaintTest extends InlineExpectationsTest { sinkExpr = sink.asExpr() and location = sinkExpr.getLocation() and element = sinkExpr.toString() and - tag = "taintedFromLine" and + tag = "tainted" and value = source.asExpr().getLocation().getStartLine().toString() ) } diff --git a/swift/ql/test/library-tests/dataflow/taint/data.swift b/swift/ql/test/library-tests/dataflow/taint/data.swift index 578d66374d4..0098f423424 100644 --- a/swift/ql/test/library-tests/dataflow/taint/data.swift +++ b/swift/ql/test/library-tests/dataflow/taint/data.swift @@ -14,12 +14,12 @@ func taintThroughData() { let dataTainted2 = Data(dataTainted) sink(arg: dataClean) - sink(arg: dataTainted) // $ MISSING: taintedFromLine=13 - sink(arg: dataTainted2) // $ MISSING: taintedFromLine=13 + sink(arg: dataTainted) // $ MISSING: tainted=13 + sink(arg: dataTainted2) // $ MISSING: tainted=13 let stringClean = String(data: dataClean, encoding: String.Encoding.utf8) let stringTainted = String(data: dataTainted, encoding: String.Encoding.utf8) - sink2(arg: stringClean!) // $ MISSING: taintedFromLine=13 - sink2(arg: stringTainted!) // $ MISSING: taintedFromLine=13 + sink2(arg: stringClean!) // $ MISSING: tainted=13 + sink2(arg: stringTainted!) // $ MISSING: tainted=13 } diff --git a/swift/ql/test/library-tests/dataflow/taint/string.swift b/swift/ql/test/library-tests/dataflow/taint/string.swift index a11fefb07ba..fe0425baa0b 100644 --- a/swift/ql/test/library-tests/dataflow/taint/string.swift +++ b/swift/ql/test/library-tests/dataflow/taint/string.swift @@ -4,18 +4,18 @@ func sink(arg: String) {} func taintThroughInterpolatedStrings() { var x = source() - sink(arg: "\(x)") // $ taintedFromLine=5 + sink(arg: "\(x)") // $ tainted=5 - sink(arg: "\(x) \(x)") // $ taintedFromLine=5 + sink(arg: "\(x) \(x)") // $ tainted=5 - sink(arg: "\(x) \(0) \(x)") // $ taintedFromLine=5 + sink(arg: "\(x) \(0) \(x)") // $ tainted=5 var y = 42 sink(arg: "\(y)") // clean - sink(arg: "\(x) hello \(y)") // $ taintedFromLine=5 + sink(arg: "\(x) hello \(y)") // $ tainted=5 - sink(arg: "\(y) world \(x)") // $ taintedFromLine=5 + sink(arg: "\(y) world \(x)") // $ tainted=5 x = 0 sink(arg: "\(x)") // clean @@ -28,15 +28,15 @@ func taintThroughStringConcatenation() { var tainted = source2() sink(arg: clean) - sink(arg: tainted) // $ taintedFromLine=28 + sink(arg: tainted) // $ tainted=28 sink(arg: clean + clean) - sink(arg: clean + tainted) // $ taintedFromLine=28 - sink(arg: tainted + clean) // $ taintedFromLine=28 - sink(arg: tainted + tainted) // $ taintedFromLine=28 + sink(arg: clean + tainted) // $ tainted=28 + sink(arg: tainted + clean) // $ tainted=28 + sink(arg: tainted + tainted) // $ tainted=28 sink(arg: ">" + clean + "<") - sink(arg: ">" + tainted + "<") // $ taintedFromLine=28 + sink(arg: ">" + tainted + "<") // $ tainted=28 var str = "abc" @@ -46,7 +46,7 @@ func taintThroughStringConcatenation() { sink(arg: str) str += source2() - sink(arg: str) // $ MISSING: taintedFromLine=48 + sink(arg: str) // $ MISSING: tainted=48 var str2 = "abc" @@ -56,7 +56,7 @@ func taintThroughStringConcatenation() { sink(arg: str2) str2.append(source2()) - sink(arg: str2) // $ MISSING: taintedFromLine=58 + sink(arg: str2) // $ MISSING: tainted=58 var str3 = "abc" @@ -66,7 +66,7 @@ func taintThroughStringConcatenation() { sink(arg: str3) str3.append(contentsOf: source2()) - sink(arg: str2) // $ MISSING: taintedFromLine=68 + sink(arg: str2) // $ MISSING: tainted=68 } func taintThroughStringOperations() { @@ -75,15 +75,15 @@ func taintThroughStringOperations() { var taintedInt = source() sink(arg: String(clean)) - sink(arg: String(tainted)) // $ MISSING: taintedFromLine=74 - sink(arg: String(taintedInt)) // $ MISSING: taintedFromLine=75 + sink(arg: String(tainted)) // $ MISSING: tainted=74 + sink(arg: String(taintedInt)) // $ MISSING: tainted=75 sink(arg: String(repeating: clean, count: 2)) - sink(arg: String(repeating: tainted, count: 2)) // $ MISSING: taintedFromLine=74 + sink(arg: String(repeating: tainted, count: 2)) // $ MISSING: tainted=74 sink(arg: clean.description) - sink(arg: tainted.description) // $ MISSING: taintedFromLine=74 + sink(arg: tainted.description) // $ MISSING: tainted=74 sink(arg: clean.debugDescription) - sink(arg: tainted.debugDescription) // $ MISSING: taintedFromLine=74 + sink(arg: tainted.debugDescription) // $ MISSING: tainted=74 } diff --git a/swift/ql/test/library-tests/dataflow/taint/try.swift b/swift/ql/test/library-tests/dataflow/taint/try.swift index 57cb668bd6f..ebb9dfc8cc7 100644 --- a/swift/ql/test/library-tests/dataflow/taint/try.swift +++ b/swift/ql/test/library-tests/dataflow/taint/try.swift @@ -6,14 +6,14 @@ func taintThroughTry() { do { sink(arg: try clean()) - sink(arg: try source()) // $ taintedFromLine=9 + sink(arg: try source()) // $ tainted=9 } catch { // ... } sink(arg: try! clean()) - sink(arg: try! source()) // $ taintedFromLine=15 + sink(arg: try! source()) // $ tainted=15 sink(arg: (try? clean())!) - sink(arg: (try? source())!) // $ taintedFromLine=18 + sink(arg: (try? source())!) // $ tainted=18 } diff --git a/swift/ql/test/library-tests/dataflow/taint/url.swift b/swift/ql/test/library-tests/dataflow/taint/url.swift index 0a56e3c4060..e7e34c026b6 100644 --- a/swift/ql/test/library-tests/dataflow/taint/url.swift +++ b/swift/ql/test/library-tests/dataflow/taint/url.swift @@ -15,19 +15,19 @@ func taintThroughURL() { let urlTainted = URL(string: tainted)! sink(arg: urlClean) - sink(arg: urlTainted) // $ taintedFromLine=13 + sink(arg: urlTainted) // $ tainted=13 sink(arg: URL(string: clean, relativeTo: nil)!) - sink(arg: URL(string: tainted, relativeTo: nil)!) // $ taintedFromLine=13 + sink(arg: URL(string: tainted, relativeTo: nil)!) // $ tainted=13 sink(arg: URL(string: clean, relativeTo: urlClean)!) - sink(arg: URL(string: clean, relativeTo: urlTainted)!) // $ taintedFromLine=13 + sink(arg: URL(string: clean, relativeTo: urlTainted)!) // $ tainted=13 if let x = URL(string: clean) { sink(arg: x) } if let y = URL(string: tainted) { - sink(arg: y) // $ MISSING: taintedFromLine=13 + sink(arg: y) // $ MISSING: tainted=13 } var urlClean2 : URL! @@ -36,5 +36,5 @@ func taintThroughURL() { var urlTainted2 : URL! urlTainted2 = URL(string: tainted) - sink(arg: urlTainted2) // $ taintedFromLine=13 + sink(arg: urlTainted2) // $ tainted=13 } From 740265dc38a541e9993841ae14ef23bd6d5d7c41 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Thu, 11 Aug 2022 13:32:49 +0200 Subject: [PATCH 736/736] Add change note --- .../ql/src/change-notes/2022-08-11-unsafe-deserialization.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/src/change-notes/2022-08-11-unsafe-deserialization.md diff --git a/csharp/ql/src/change-notes/2022-08-11-unsafe-deserialization.md b/csharp/ql/src/change-notes/2022-08-11-unsafe-deserialization.md new file mode 100644 index 00000000000..f1a0318e667 --- /dev/null +++ b/csharp/ql/src/change-notes/2022-08-11-unsafe-deserialization.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `cs/unsafe-deserialization-untrusted-input` is not reporting on all calls of `JsonConvert.DeserializeObject` any longer, it only covers cases that explicitly use unsafe serialization settings.